From b05d96078ab660c65cb2d5f4458d0cc6968d5ca7 Mon Sep 17 00:00:00 2001 From: Joel Thomas Clemmer <=> Date: Mon, 6 Jun 2022 10:10:43 -0600 Subject: [PATCH 01/35] Adding extra property vector to bonds --- doc/src/bond_bpm_rotational.rst | 14 ++++++++ doc/src/bond_bpm_spring.rst | 7 ++++ doc/src/compute_bond_local.rst | 18 ++++++++-- src/BPM/bond_bpm_rotational.cpp | 31 ++++++++++++++-- src/BPM/bond_bpm_spring.cpp | 9 +++++ src/bond.cpp | 3 ++ src/bond.h | 3 ++ src/bond_hybrid.cpp | 63 +++++++++++++++++++++++++++++++++ src/bond_hybrid.h | 4 +++ src/compute_bond_local.cpp | 18 ++++++++-- src/compute_bond_local.h | 2 +- 11 files changed, 165 insertions(+), 7 deletions(-) diff --git a/doc/src/bond_bpm_rotational.rst b/doc/src/bond_bpm_rotational.rst index b13d27dfbe..7211781a4a 100644 --- a/doc/src/bond_bpm_rotational.rst +++ b/doc/src/bond_bpm_rotational.rst @@ -201,6 +201,20 @@ output options. The vector or array will be floating point values that correspond to the specified attribute. +The single() function of this bond style returns 0.0 for the energy +of a bonded interaction, since energy is not conserved in these +dissipative potentials. It also returns only the normal component of +the bonded interaction force. However, the single() function also +calculates 7 extra bond quantities. The first 4 are data from the +reference state of the bond including the magnitude :math:`r_0` +followed by the :math:`x`, :math:`y`, and :math:`z` components of the +initial unit vector pointing to particle I from particle J. The next 3 +(5-7) are the components of the total force, including normal and +tangential contributions, acting on particle I. + +These extra quantities can be accessed by the :doc:`compute bond/local ` +command, as *b1*, *b2*, ..., *b7*\ . + Restrictions """""""""""" diff --git a/doc/src/bond_bpm_spring.rst b/doc/src/bond_bpm_spring.rst index 1d2f12701d..619f6c0e8c 100644 --- a/doc/src/bond_bpm_spring.rst +++ b/doc/src/bond_bpm_spring.rst @@ -163,6 +163,13 @@ output options. The vector or array will be floating point values that correspond to the specified attribute. +The single() function of this bond style returns 0.0 for the energy +of a bonded interaction, since energy is not conserved in these +dissipative potentials. The single() function also calculates an +extra bond quantity, the initial distance :math:`r_0`. This +extra quantity can be accessed by the +:doc:`compute bond/local ` command as *b1*\ . + Restrictions """""""""""" diff --git a/doc/src/compute_bond_local.rst b/doc/src/compute_bond_local.rst index 24b0943484..138d2d1b2a 100644 --- a/doc/src/compute_bond_local.rst +++ b/doc/src/compute_bond_local.rst @@ -13,7 +13,7 @@ Syntax * ID, group-ID are documented in :doc:`compute ` command * bond/local = style name of this compute command * one or more values may be appended -* value = *dist* or *dx* or *dy* or *dz* or *engpot* or *force* or *fx* or *fy* or *fz* or *engvib* or *engrot* or *engtrans* or *omega* or *velvib* or *v_name* +* value = *dist* or *dx* or *dy* or *dz* or *engpot* or *force* or *fx* or *fy* or *fz* or *engvib* or *engrot* or *engtrans* or *omega* or *velvib* or *v_name* or *bN* .. parsed-literal:: @@ -29,6 +29,7 @@ Syntax *omega* = magnitude of bond angular velocity *velvib* = vibrational velocity along the bond length *v_name* = equal-style variable with name (see below) + *bN* = bond style specific quantities for allowed N values * zero or more keyword/args pairs may be appended * keyword = *set* @@ -47,7 +48,7 @@ Examples compute 1 all bond/local engpot compute 1 all bond/local dist engpot force - compute 1 all bond/local dist fx fy fz + compute 1 all bond/local dist fx fy fz b1 b2 compute 1 all angle/local dist v_distsq set dist d @@ -145,6 +146,19 @@ those quantities via the :doc:`compute reduce ` command with thermo output. And the :doc:`fix ave/histo ` command will histogram the distance\^2 values and write them to a file. +A bond style may define additional bond quantities which can be +accessed as *b1* to *bN*, where N is defined by the bond style. Most +bond styles do not define any additional quantities, so N = 0. An +example of ones that do are the :doc:`BPM bond styles ` +which store the reference state between two particles. See +individual bond styles for details. + +When using *bN* with bond style *hybrid*, the output will be the Nth +quantity from the sub-style that computes the bonded interaction +(based on bond type). If that sub-style does not define a *bN*, +the output will be 0.0. The maximum allowed N is the maximum number +of quantities provided by any sub-style. + ---------- The local data stored by this command is generated by looping over all diff --git a/src/BPM/bond_bpm_rotational.cpp b/src/BPM/bond_bpm_rotational.cpp index a43b4c7500..f885dead28 100644 --- a/src/BPM/bond_bpm_rotational.cpp +++ b/src/BPM/bond_bpm_rotational.cpp @@ -49,12 +49,17 @@ BondBPMRotational::BondBPMRotational(LAMMPS *_lmp) : BondBPM(_lmp) gtwist = nullptr; partial_flag = 1; smooth_flag = 1; + + single_extra = 7; + svector = new double[7]; } /* ---------------------------------------------------------------------- */ BondBPMRotational::~BondBPMRotational() { + delete[] svector; + if (allocated) { memory->destroy(setflag); memory->destroy(Kr); @@ -753,11 +758,12 @@ double BondBPMRotational::single(int type, double rsq, int i, int j, double &ffo // Not yet enabled if (type <= 0) return 0.0; - int itmp; + int flipped = 0; if (atom->tag[j] < atom->tag[i]) { - itmp = i; + int itmp = i; i = j; j = itmp; + flipped = 1; } double r0_mag, r_mag, r_mag_inv; @@ -792,5 +798,26 @@ double BondBPMRotational::single(int type, double rsq, int i, int j, double &ffo smooth = 1.0 - smooth * smooth; fforce *= smooth; } + + // set single_extra quantities + + svector[0] = r0_mag; + if (flipped) { + svector[1] = -r0[0]; + svector[2] = -r0[1]; + svector[3] = -r0[2]; + svector[4] = force1on2[0]; + svector[5] = force1on2[1]; + svector[6] = force1on2[2]; + } else { + svector[1] = r0[0]; + svector[2] = r0[1]; + svector[3] = r0[2]; + svector[4] = -force1on2[0]; + svector[5] = -force1on2[1]; + svector[6] = -force1on2[2]; + } + + return 0.0; } diff --git a/src/BPM/bond_bpm_spring.cpp b/src/BPM/bond_bpm_spring.cpp index d5935f612c..855080d28e 100644 --- a/src/BPM/bond_bpm_spring.cpp +++ b/src/BPM/bond_bpm_spring.cpp @@ -34,12 +34,17 @@ BondBPMSpring::BondBPMSpring(LAMMPS *_lmp) : { partial_flag = 1; smooth_flag = 1; + + single_extra = 1; + svector = new double[1]; } /* ---------------------------------------------------------------------- */ BondBPMSpring::~BondBPMSpring() { + delete[] svector; + if (allocated) { memory->destroy(setflag); memory->destroy(k); @@ -377,5 +382,9 @@ double BondBPMSpring::single(int type, double rsq, int i, int j, double &fforce) fforce *= smooth; } + // set single_extra quantities + + svector[0] = r0; + return 0.0; } diff --git a/src/bond.cpp b/src/bond.cpp index 280f383da0..363385ff48 100644 --- a/src/bond.cpp +++ b/src/bond.cpp @@ -52,6 +52,9 @@ Bond::Bond(LAMMPS *_lmp) : Pointers(_lmp) born_matrix_enable = 0; partial_flag = 0; + single_extra = 0; + svector = nullptr; + maxeatom = maxvatom = 0; eatom = nullptr; vatom = nullptr; diff --git a/src/bond.h b/src/bond.h index f0207f1113..dc64e40ae8 100644 --- a/src/bond.h +++ b/src/bond.h @@ -42,6 +42,9 @@ class Bond : protected Pointers { int reinitflag; // 0 if not compatible with fix adapt // extract() method may still need to be added + int single_extra; // number of extra single values calculated + double *svector; // vector of extra single quantities + // KOKKOS host/device flag and data masks ExecutionSpace execution_space; diff --git a/src/bond_hybrid.cpp b/src/bond_hybrid.cpp index 5410e9a98b..ec49871506 100644 --- a/src/bond_hybrid.cpp +++ b/src/bond_hybrid.cpp @@ -50,6 +50,8 @@ BondHybrid::~BondHybrid() delete[] keywords; } + delete[] svector; + if (allocated) { memory->destroy(setflag); memory->destroy(map); @@ -238,6 +240,49 @@ void BondHybrid::settings(int narg, char **arg) i = jarg; nstyles++; } + + // set bond flags from sub-style flags + + flags(); +} + +/* ---------------------------------------------------------------------- + set top-level bond flags from sub-style flags +------------------------------------------------------------------------- */ + +void BondHybrid::flags() +{ + int m; + + // set comm_forward, comm_reverse, comm_reverse_off to max of any sub-style + + for (m = 0; m < nstyles; m++) { + if (styles[m]) comm_forward = MAX(comm_forward,styles[m]->comm_forward); + if (styles[m]) comm_reverse = MAX(comm_reverse,styles[m]->comm_reverse); + if (styles[m]) comm_reverse_off = MAX(comm_reverse_off, + styles[m]->comm_reverse_off); + } + + init_svector(); +} + +/* ---------------------------------------------------------------------- + initialize Bond::svector array +------------------------------------------------------------------------- */ + +void BondHybrid::init_svector() +{ + // single_extra = list all sub-style single_extra + // allocate svector + + single_extra = 0; + for (int m = 0; m < nstyles; m++) + single_extra = MAX(single_extra,styles[m]->single_extra); + + if (single_extra) { + delete[] svector; + svector = new double[single_extra]; + } } /* ---------------------------------------------------------------------- @@ -359,9 +404,27 @@ double BondHybrid::single(int type, double rsq, int i, int j, double &fforce) { if (map[type] < 0) error->one(FLERR, "Invoked bond single on bond style none"); + + if (single_extra) copy_svector(type); return styles[map[type]]->single(type, rsq, i, j, fforce); } +/* ---------------------------------------------------------------------- + copy Bond::svector data +------------------------------------------------------------------------- */ + +void BondHybrid::copy_svector(int type) +{ + memset(svector,0,single_extra*sizeof(double)); + + // there is only one style in bond style hybrid for a bond type + Bond *this_style = styles[map[type]]; + + for (int l = 0; this_style->single_extra; ++l) { + svector[l] = this_style->svector[l]; + } +} + /* ---------------------------------------------------------------------- memory usage ------------------------------------------------------------------------- */ diff --git a/src/bond_hybrid.h b/src/bond_hybrid.h index 6288772836..ce689488b0 100644 --- a/src/bond_hybrid.h +++ b/src/bond_hybrid.h @@ -52,6 +52,10 @@ class BondHybrid : public Bond { int ***bondlist; // bondlist for each sub-style void allocate(); + void flags(); + + virtual void init_svector(); + virtual void copy_svector(int); }; } // namespace LAMMPS_NS diff --git a/src/compute_bond_local.cpp b/src/compute_bond_local.cpp index 11a8ed7148..3eceb9af91 100644 --- a/src/compute_bond_local.cpp +++ b/src/compute_bond_local.cpp @@ -34,7 +34,7 @@ using namespace LAMMPS_NS; #define DELTA 10000 #define EPSILON 1.0e-12 -enum{DIST,DX,DY,DZ,VELVIB,OMEGA,ENGTRANS,ENGVIB,ENGROT,ENGPOT,FORCE,FX,FY,FZ,VARIABLE}; +enum{DIST,DX,DY,DZ,VELVIB,OMEGA,ENGTRANS,ENGVIB,ENGROT,ENGPOT,FORCE,FX,FY,FZ,VARIABLE,BN}; /* ---------------------------------------------------------------------- */ @@ -54,6 +54,7 @@ ComputeBondLocal::ComputeBondLocal(LAMMPS *lmp, int narg, char **arg) : nvalues = narg - 3; bstyle = new int[nvalues]; + bindex = new int[nvalues]; vstr = new char*[nvalues]; vvar = new int[nvalues]; @@ -80,6 +81,11 @@ ComputeBondLocal::ComputeBondLocal(LAMMPS *lmp, int narg, char **arg) : bstyle[nvalues++] = VARIABLE; vstr[nvar] = utils::strdup(&arg[iarg][2]); nvar++; + } else if (arg[iarg][0] == 'b') { + int n = atoi(&arg[iarg][1]); + if (n <= 0) error->all(FLERR, "Invalid keyword in compute bond/local command"); + bstyle[nvalues] = BN; + bindex[nvalues++] = n - 1; } else break; } @@ -131,7 +137,7 @@ ComputeBondLocal::ComputeBondLocal(LAMMPS *lmp, int narg, char **arg) : velflag = 0; for (int i = 0; i < nvalues; i++) { if (bstyle[i] == ENGPOT || bstyle[i] == FORCE || bstyle[i] == FX || - bstyle[i] == FY || bstyle[i] == FZ) singleflag = 1; + bstyle[i] == FY || bstyle[i] == FZ || bstyle[i] == BN) singleflag = 1; if (bstyle[i] == VELVIB || bstyle[i] == OMEGA || bstyle[i] == ENGTRANS || bstyle[i] == ENGVIB || bstyle[i] == ENGROT) velflag = 1; } @@ -151,6 +157,7 @@ ComputeBondLocal::ComputeBondLocal(LAMMPS *lmp, int narg, char **arg) : ComputeBondLocal::~ComputeBondLocal() { delete [] bstyle; + delete [] bindex; for (int i = 0; i < nvar; i++) delete [] vstr[i]; delete [] vstr; delete [] vvar; @@ -168,6 +175,10 @@ void ComputeBondLocal::init() if (force->bond == nullptr) error->all(FLERR,"No bond style is defined for compute bond/local"); + for (int i = 0; i < nvalues; i++) + if (bstyle[i] == BN && bindex[i] >= force->bond->single_extra) + error->all(FLERR, "Bond style does not have extra field requested by compute bond/local"); + if (nvar) { for (int i = 0; i < nvar; i++) { vvar[i] = input->variable->find(vstr[i]); @@ -438,6 +449,9 @@ int ComputeBondLocal::compute_bonds(int flag) ptr[n] = input->variable->compute_equal(vvar[ivar]); ivar++; break; + case BN: + ptr[n] = bond->svector[bindex[n]]; + break; } } } diff --git a/src/compute_bond_local.h b/src/compute_bond_local.h index 0e52ba50ab..078c957dcd 100644 --- a/src/compute_bond_local.h +++ b/src/compute_bond_local.h @@ -39,7 +39,7 @@ class ComputeBondLocal : public Compute { int singleflag, velflag, ghostvelflag, initflag; int dvar; - int *bstyle, *vvar; + int *bstyle, *bindex, *vvar; char *dstr; char **vstr; From 49e04d56430d2d695e0fd78a13d40800ca8ba5ce Mon Sep 17 00:00:00 2001 From: Joel Thomas Clemmer <=> Date: Mon, 6 Jun 2022 10:33:22 -0600 Subject: [PATCH 02/35] Removing unnecessary variables in compute nbond --- src/BPM/compute_nbond_atom.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/BPM/compute_nbond_atom.cpp b/src/BPM/compute_nbond_atom.cpp index 38fad5ec96..b0fbacf038 100644 --- a/src/BPM/compute_nbond_atom.cpp +++ b/src/BPM/compute_nbond_atom.cpp @@ -33,8 +33,6 @@ ComputeNBondAtom::ComputeNBondAtom(LAMMPS *_lmp, int narg, char **arg) : peratom_flag = 1; size_peratom_cols = 0; - peatomflag = 1; - timeflag = 1; comm_reverse = 1; nmax = 0; @@ -51,11 +49,6 @@ ComputeNBondAtom::~ComputeNBondAtom() void ComputeNBondAtom::compute_peratom() { - - invoked_peratom = update->ntimestep; - if (update->eflag_atom != invoked_peratom) - error->all(FLERR, "Per-atom nbond was not tallied on needed timestep"); - // grow local nbond array if necessary // needs to be atom->nmax in length From 43a01b4fe41e0b4cd38e93320007a2371d0b83e1 Mon Sep 17 00:00:00 2001 From: Joel Thomas Clemmer <=> Date: Mon, 6 Jun 2022 11:18:11 -0600 Subject: [PATCH 03/35] Adding option to forward nbond, useful for fixes that need bondcounts --- src/BPM/compute_nbond_atom.cpp | 36 +++++++++++++++++++++++++++++++++- src/BPM/compute_nbond_atom.h | 2 ++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/BPM/compute_nbond_atom.cpp b/src/BPM/compute_nbond_atom.cpp index b0fbacf038..9947c9b09e 100644 --- a/src/BPM/compute_nbond_atom.cpp +++ b/src/BPM/compute_nbond_atom.cpp @@ -29,11 +29,17 @@ using namespace LAMMPS_NS; ComputeNBondAtom::ComputeNBondAtom(LAMMPS *_lmp, int narg, char **arg) : Compute(_lmp, narg, arg), nbond(nullptr) { - if (narg < 3) error->all(FLERR, "Illegal compute nbond/atom command"); + if ((narg < 3) || (narg > 4)) error->all(FLERR, "Illegal compute nbond/atom command"); peratom_flag = 1; size_peratom_cols = 0; comm_reverse = 1; + comm_forward = 0; + + if (narg == 4) { + if (utils::strmatch(arg[3], "forward")) comm_forward = 1; + else error->all(FLERR, "Illegal compute nbond/atom command"); + } nmax = 0; } @@ -100,6 +106,9 @@ void ComputeNBondAtom::compute_peratom() for (i = 0; i < nlocal; i++) if (!(mask[i] & groupbit)) nbond[i] = 0.0; + + // forward to ghosts if requested + if (comm_forward != 0) comm->forward_comm(this); } /* ---------------------------------------------------------------------- */ @@ -126,6 +135,31 @@ void ComputeNBondAtom::unpack_reverse_comm(int n, int *list, double *buf) nbond[j] += buf[m++]; } } +/* ---------------------------------------------------------------------- */ + +int ComputeNBondAtom::pack_forward_comm(int n, int *list, double *buf, + int /*pbc_flag*/, int * /*pbc*/) +{ + int i,j,m; + + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = nbond[j]; + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +void ComputeNBondAtom::unpack_forward_comm(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) nbond[i] = buf[m++]; +} /* ---------------------------------------------------------------------- memory usage of local atom-based array diff --git a/src/BPM/compute_nbond_atom.h b/src/BPM/compute_nbond_atom.h index 32d4ca2462..fe793cc05f 100644 --- a/src/BPM/compute_nbond_atom.h +++ b/src/BPM/compute_nbond_atom.h @@ -32,6 +32,8 @@ class ComputeNBondAtom : public Compute { void compute_peratom() override; int pack_reverse_comm(int, int, double *) override; void unpack_reverse_comm(int, int *, double *) override; + int pack_forward_comm(int, int *, double *, int, int *) override; + void unpack_forward_comm(int, int, double *) override; double memory_usage() override; private: From 2638213a5cf166283fe052e909aae348aaf2b8e8 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Mon, 13 Jun 2022 11:04:28 -0600 Subject: [PATCH 04/35] Fixing documentation and adding colname to local --- doc/src/Howto_bpm.rst | 110 ++++++++++++++++++++-------------- doc/src/dump_modify.rst | 10 ++-- examples/bpm/pour/in.bpm.pour | 5 ++ src/dump.cpp | 2 +- src/dump_local.cpp | 21 ++++++- src/dump_local.h | 1 + 6 files changed, 95 insertions(+), 54 deletions(-) diff --git a/doc/src/Howto_bpm.rst b/doc/src/Howto_bpm.rst index 2f015162e0..7147401182 100644 --- a/doc/src/Howto_bpm.rst +++ b/doc/src/Howto_bpm.rst @@ -33,46 +33,6 @@ reference state of a bond. Bonds that are created midway into a run, such as those created by pouring grains using :doc:`fix pour `, are initialized on that timestep. -As bonds can be broken between neighbor list builds, the -:doc:`special_bonds ` command works differently for BPM -bond styles. There are two possible settings which determine how pair -interactions work between bonded particles. First, one can turn off -all pair interactions between bonded particles. Unlike :doc:`bond -quartic `, this is not done by subtracting pair forces -during the bond computation but rather by dynamically updating the -special bond list. This is the default behavior of BPM bond styles and -is done by updating the 1-2 special bond list as bonds break. To do -this, LAMMPS requires :doc:`newton ` bond off such that all -processors containing an atom know when a bond breaks. Additionally, -one must do either (A) or (B). - -A) Use the following special bond settings - - .. code-block:: LAMMPS - - special_bonds lj 0 1 1 coul 1 1 1 - - These settings accomplish two goals. First, they turn off 1-3 and 1-4 - special bond lists, which are not currently supported for BPMs. As - BPMs often have dense bond networks, generating 1-3 and 1-4 special - bond lists is expensive. By setting the lj weight for 1-2 bonds to - zero, this turns off pairwise interactions. Even though there are no - charges in BPM models, setting a nonzero coul weight for 1-2 bonds - ensures all bonded neighbors are still included in the neighbor list - in case bonds break between neighbor list builds. - -B) Alternatively, one can simply overlay pair interactions such that all - bonded particles also feel pair interactions. This can be - accomplished by using the *overlay/pair* keyword present in all bpm - bond styles and by using the following special bond settings - - .. code-block:: LAMMPS - - special_bonds lj/coul 1 1 1 - -See the :doc:`Howto ` page on broken bonds for -more information. - ---------- Currently there are two types of bonds included in the BPM @@ -91,12 +51,6 @@ This also requires a unique integrator :doc:`fix nve/bpm/sphere ` which numerically integrates orientation similar to :doc:`fix nve/asphere `. -To monitor the fracture of bonds in the system, all BPM bond styles -have the ability to record instances of bond breakage to output using -the :doc:`dump local ` command. Additionally, one can use -:doc:`compute nbond/atom ` to tally the current -number of bonds per atom. - In addition to bond styles, a new pair style :doc:`pair bpm/spring ` was added to accompany the bpm/spring bond style. This pair style is simply a hookean repulsion with similar @@ -104,6 +58,70 @@ velocity damping as its sister bond style. ---------- +Bond data can be output using a combination of standard LAMMPS comamnds. +A list of IDs for bonded atoms can be generated using the +:doc:`compute property/local ` command. +Various properties of bonds can be computed using the +:doc:`compute property/bond ` command. This +command allows one to access data saved to the bond's history +such as the reference length of the bond. More information on +historical data can be found on the documentation pages for the specific +BPM bond styles. Finally, this data can be output using `dump local `. +As one may output many columns from the same compute, the +:doc:`dump modify ` *colname* option may be used to provide +more helpful column names. An example of this procedure is found in +/examples/bpm/pour/. External software, such as OVITO, can read these dump +files to render bond data. + +---------- + +As bonds can be broken between neighbor list builds, the +:doc:`special_bonds ` command works differently for BPM +bond styles. There are two possible settings which determine how pair +interactions work between bonded particles. First, one can overlay +pair forces with bond forces such that all bonded particles also +feel pair interactions. This can be accomplished by using the *overlay/pair* keyword present in all bpm bond styles and by using the following special bond settings + + .. code-block:: LAMMPS + + special_bonds lj/coul 1 1 1 + +Alternatively, one can turn off all pair interactions between bonded particles. Unlike :doc:`bond quartic `, this is not done +by subtracting pair forces during the bond computation but rather by +dynamically updating the special bond list. This is the default behavior +of BPM bond styles and is done by updating the 1-2 special bond list as +bonds break. To do this, LAMMPS requires :doc:`newton ` bond off +such that all processors containing an atom know when a bond breaks. +Additionally, one must use the following special bond settings + + .. code-block:: LAMMPS + + special_bonds lj 0 1 1 coul 1 1 1 + +These settings accomplish two goals. First, they turn off 1-3 and 1-4 +special bond lists, which are not currently supported for BPMs. As +BPMs often have dense bond networks, generating 1-3 and 1-4 special +bond lists is expensive. By setting the lj weight for 1-2 bonds to +zero, this turns off pairwise interactions. Even though there are no +charges in BPM models, setting a nonzero coul weight for 1-2 bonds +ensures all bonded neighbors are still included in the neighbor list +in case bonds break between neighbor list builds. + +To monitor the fracture of bonds in the system, all BPM bond styles +have the ability to record instances of bond breakage to output using +the :doc:`dump local ` command. Since one may frequently output +a list of broken bonds and the time they broke, the +:doc:`dump modify ` option *header no* may be useful to +avoid repeatedly printing the header of the dump file. An example of +this procedure is found in /examples/bpm/impact/. Additionally, +one can use :doc:`compute nbond/atom ` to tally the +current number of bonds per atom. + +See the :doc:`Howto ` page on broken bonds for +more information. + +---------- + While LAMMPS has many utilities to create and delete bonds, *only* the following are currently compatible with BPM bond styles: diff --git a/doc/src/dump_modify.rst b/doc/src/dump_modify.rst index fd916beb4e..75c8d3f4c7 100644 --- a/doc/src/dump_modify.rst +++ b/doc/src/dump_modify.rst @@ -17,7 +17,7 @@ Syntax * one or more keyword/value pairs may be appended * these keywords apply to various dump styles -* keyword = *append* or *at* or *balance* or *buffer* or *delay* or *element* or *every* or *every/time* or *fileper* or *first* or *flush* or *format* or *header* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *units* or *unwrap* +* keyword = *append* or *at* or *balance* or *buffer* or *colname* or *delay* or *element* or *every* or *every/time* or *fileper* or *first* or *flush* or *format* or *header* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *units* or *unwrap* .. parsed-literal:: @@ -381,10 +381,10 @@ performed with dump style *xtc*\ . ---------- The *colname* keyword can be used to change the default header keyword -for dump styles: *atom*, *custom*, and *cfg* and their compressed, ADIOS, -and MPIIO variants. The setting for *ID string* replaces the default -text with the provided string. *ID* can be a positive integer when it -represents the column number counting from the left, a negative integer +for dump styles: *atom*, *custom*, *cfg*, and *local* and their compressed, +ADIOS, and MPIIO variants. The setting for *ID string* replaces the +default text with the provided string. *ID* can be a positive integer when +it represents the column number counting from the left, a negative integer when it represents the column number from the right (i.e. -1 is the last column/keyword), or a custom dump keyword (or compute, fix, property, or variable reference) and then it replaces the string for that specific diff --git a/examples/bpm/pour/in.bpm.pour b/examples/bpm/pour/in.bpm.pour index e4cc8557a3..d9bb60674a 100644 --- a/examples/bpm/pour/in.bpm.pour +++ b/examples/bpm/pour/in.bpm.pour @@ -19,6 +19,9 @@ bond_coeff 1 1.0 0.2 0.01 0.01 2.0 0.4 0.02 0.02 0.2 0.04 0.002 0.002 compute nbond all nbond/atom compute tbond all reduce sum c_nbond +compute bond_ids all property/local batom1 batom2 +compute bond_properties all bond/local dist b1 + compute_modify thermo_temp dynamic/dof yes fix 1 all wall/gran hertz/history 1.0 NULL 0.5 NULL 0.1 1 zplane 0.0 NULL @@ -31,5 +34,7 @@ timestep 0.05 thermo_style custom step ke pe pxx pyy pzz c_tbond thermo 100 #dump 1 all custom 500 atomDump id radius x y z c_nbond mol +#dump 2 all local 500 bondDump c_bond_ids[*] c_bond_properties[*] +#dump_modify 2 colname 1 "id1" colname 2 "id2" colname 3 "r" colname 4 "r0" run 100000 diff --git a/src/dump.cpp b/src/dump.cpp index 3569d32165..602a0fcc2d 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -1146,7 +1146,7 @@ void Dump::modify_params(int narg, char **arg) } } if ((icol < 0) || (icol >= (int)keyword_user.size())) - error->all(FLERR, "Illegal thermo_modify command"); + error->all(FLERR, "Illegal dump_modify command"); keyword_user[icol] = arg[iarg+2]; iarg += 3; } diff --git a/src/dump_local.cpp b/src/dump_local.cpp index 012e8b95dd..5c4ffb1344 100644 --- a/src/dump_local.cpp +++ b/src/dump_local.cpp @@ -101,11 +101,15 @@ DumpLocal::DumpLocal(LAMMPS *lmp, int narg, char **arg) : // setup column string std::string cols; + cols.clear(); + keyword_user.resize(nfield); for (int iarg = 0; iarg < nfield; iarg++) { + key2col[earg[iarg]] = iarg; + keyword_user[iarg].clear(); + if (cols.size()) cols += " "; cols += earg[iarg]; - cols += " "; } - columns = utils::strdup(cols); + columns_default = utils::strdup(cols); // setup default label string @@ -153,6 +157,19 @@ void DumpLocal::init_style() if (sort_flag && sortcol == 0) error->all(FLERR,"Dump local cannot sort by atom ID"); + // assemble ITEMS: column string from defaults and user values + + delete[] columns; + std::string combined; + int icol = 0; + for (auto item : utils::split_words(columns_default)) { + if (combined.size()) combined += " "; + if (keyword_user[icol].size()) combined += keyword_user[icol]; + else combined += item; + ++icol; + } + columns = utils::strdup(combined); + // format = copy of default or user-specified line format delete[] format; diff --git a/src/dump_local.h b/src/dump_local.h index 160ff87f0a..da06092522 100644 --- a/src/dump_local.h +++ b/src/dump_local.h @@ -38,6 +38,7 @@ class DumpLocal : public Dump { char **vformat; // format string for each vector element char *columns; // column labels + char *columns_default; int nfield; // # of keywords listed by user From 2084e18ad214dfcc55f4e7652892034559271ae6 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Mon, 13 Jun 2022 12:46:29 -0600 Subject: [PATCH 05/35] Removing junk copied during write_data --- doc/src/bond_bpm_rotational.rst | 4 +++- doc/src/bond_bpm_spring.rst | 4 +++- src/fix_bond_history.cpp | 4 +++- src/fix_property_atom.cpp | 6 +++++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/doc/src/bond_bpm_rotational.rst b/doc/src/bond_bpm_rotational.rst index 7211781a4a..cd9d6438be 100644 --- a/doc/src/bond_bpm_rotational.rst +++ b/doc/src/bond_bpm_rotational.rst @@ -178,7 +178,9 @@ Restart and other info This bond style writes the reference state of each bond to :doc:`binary restart files `. Loading a restart file will -properly resume bonds. +properly resume bonds. However, the reference state is NOT +written to data files. Therefore reading a data file will not +restore bonds which will recalculate their reference state. The single() function of these pair styles returns 0.0 for the energy of a pairwise interaction, since energy is not conserved in these diff --git a/doc/src/bond_bpm_spring.rst b/doc/src/bond_bpm_spring.rst index 619f6c0e8c..8297e5b147 100644 --- a/doc/src/bond_bpm_spring.rst +++ b/doc/src/bond_bpm_spring.rst @@ -141,7 +141,9 @@ Restart and other info This bond style writes the reference state of each bond to :doc:`binary restart files `. Loading a restart -file will properly resume bonds. +file will properly restore bonds. However, the reference state is NOT +written to data files. Therefore reading a data file will not +restore bonds which will recalculate their reference state. The single() function of these pair styles returns 0.0 for the energy of a pairwise interaction, since energy is not conserved in these diff --git a/src/fix_bond_history.cpp b/src/fix_bond_history.cpp index a0af563b3b..b5b51a963c 100644 --- a/src/fix_bond_history.cpp +++ b/src/fix_bond_history.cpp @@ -82,10 +82,12 @@ int FixBondHistory::setmask() void FixBondHistory::post_constructor() { // Store saved bond quantities for each atom using fix property atom + // Don't copy history to data files because this fix is typically + // not yet instantiated - history is only preserved across restarts id_fix = utils::strdup(id + std::string("_FIX_PROP_ATOM")); id_array = utils::strdup(std::string("d2_") + id); - modify->add_fix(fmt::format("{} {} property/atom {} {}", id_fix, group->names[igroup], id_array, + modify->add_fix(fmt::format("{} {} property/atom {} {} writedata no", id_fix, group->names[igroup], id_array, nbond * ndata)); int tmp1, tmp2; index = atom->find_custom(&id_array[3], tmp1, tmp2); diff --git a/src/fix_property_atom.cpp b/src/fix_property_atom.cpp index a6a1b997e3..38dd00c364 100644 --- a/src/fix_property_atom.cpp +++ b/src/fix_property_atom.cpp @@ -35,7 +35,7 @@ FixPropertyAtom::FixPropertyAtom(LAMMPS *lmp, int narg, char **arg) : if (narg < 4) error->all(FLERR, "Illegal fix property/atom command"); restart_peratom = 1; - wd_section = 1; + wd_section = 1; // can be overwitten using optional arguments int iarg = 3; nvalue = narg - iarg; @@ -153,6 +153,10 @@ FixPropertyAtom::FixPropertyAtom(LAMMPS *lmp, int narg, char **arg) : if (iarg + 2 > narg) error->all(FLERR, "Illegal fix property/atom command"); border = utils::logical(FLERR, arg[iarg + 1], false, lmp); iarg += 2; + } else if (strcmp(arg[iarg], "writedata") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal fix property/atom command"); + wd_section = utils::logical(FLERR,arg[iarg+1],false,lmp); + iarg += 2; } else error->all(FLERR, "Illegal fix property/atom command"); } From 80257099de276b8f2905641cf31f1d6e568572c3 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Tue, 30 Aug 2022 10:58:55 -0600 Subject: [PATCH 06/35] Adding methods needed to efficiently create bonds --- src/fix_update_special_bonds.cpp | 91 +++++++++++++++++++++++++++----- src/fix_update_special_bonds.h | 6 +++ src/neighbor.cpp | 10 ++++ src/neighbor.h | 1 + src/ntopo.cpp | 16 ++++++ src/ntopo.h | 1 + 6 files changed, 113 insertions(+), 12 deletions(-) diff --git a/src/fix_update_special_bonds.cpp b/src/fix_update_special_bonds.cpp index c31aefd28d..f2715beebc 100644 --- a/src/fix_update_special_bonds.cpp +++ b/src/fix_update_special_bonds.cpp @@ -26,6 +26,8 @@ using namespace LAMMPS_NS; using namespace FixConst; +#define DELTA 10000 + /* ---------------------------------------------------------------------- */ FixUpdateSpecialBonds::FixUpdateSpecialBonds(LAMMPS *lmp, int narg, char **arg) : @@ -61,13 +63,17 @@ void FixUpdateSpecialBonds::setup(int /*vflag*/) if (force->special_coul[1] != 1.0 || force->special_coul[2] != 1.0 || force->special_coul[3] != 1.0) error->all(FLERR, "Fix update/special/bonds requires special Coulomb weights = 1,1,1"); + // Implies neighbor->special_flag = [X, 2, 1, 1] new_broken_pairs.clear(); broken_pairs.clear(); + + new_created_pairs.clear(); + created_pairs.clear(); } /* ---------------------------------------------------------------------- - Update special bond list and atom bond arrays, empty broken bond list + Update special bond list and atom bond arrays, empty broken/created lists ------------------------------------------------------------------------- */ void FixUpdateSpecialBonds::pre_exchange() @@ -83,21 +89,19 @@ void FixUpdateSpecialBonds::pre_exchange() for (auto const &it : broken_pairs) { tagi = it.first; tagj = it.second; - i = atom->map(tagi); j = atom->map(tagj); // remove i from special bond list for atom j and vice versa + // ignore n2, n3 since 1-3, 1-4 special factors required to be 1.0 if (i < nlocal) { slist = special[i]; n1 = nspecial[i][0]; for (m = 0; m < n1; m++) if (slist[m] == tagj) break; - n3 = nspecial[i][2]; - for (; m < n3 - 1; m++) slist[m] = slist[m + 1]; + for (; m < n1 - 1; m++) slist[m] = slist[m + 1]; nspecial[i][0]--; - nspecial[i][1]--; - nspecial[i][2]--; + nspecial[i][1] = nspecial[i][2] = nspecial[i][0]; } if (j < nlocal) { @@ -105,19 +109,43 @@ void FixUpdateSpecialBonds::pre_exchange() n1 = nspecial[j][0]; for (m = 0; m < n1; m++) if (slist[m] == tagi) break; - n3 = nspecial[j][2]; - for (; m < n3 - 1; m++) slist[m] = slist[m + 1]; + for (; m < n1 - 1; m++) slist[m] = slist[m + 1]; nspecial[j][0]--; - nspecial[j][1]--; - nspecial[j][2]--; + nspecial[j][1] = nspecial[j][2] = nspecial[j][0]; } } + for (auto const &it : created_pairs) { + tagi = it.first; + tagj = it.second; + i = atom->map(tagi); + j = atom->map(tagj); + + // add i to special bond list for atom j and vice versa + // ignore n2, n3 since 1-3, 1-4 special factors required to be 1.0 + n1 = nspecial[i][0]; + if (n1 >= atom->maxspecial) + error->one(FLERR,"Special list size exceeded in fix update/special/bond"); + special[i][n1] = tagj; + nspecial[i][0] += 1; + nspecial[i][1] = nspecial[i][2] = nspecial[i][0]; + + n1 = nspecial[j][0]; + if (n1 >= atom->maxspecial) + error->one(FLERR,"Special list size exceeded in fix update/special/bond"); + special[j][n1] = tagi; + nspecial[j][0] += 1; + nspecial[j][1] = nspecial[j][2] = nspecial[j][0]; + } + broken_pairs.clear(); + created_pairs.clear(); } /* ---------------------------------------------------------------------- - Loop neighbor list and update special bond lists for recently broken bonds + Update special lists for recently broken/created bonds + Assumes appropriate atom/bond arrays were updated, e.g. had called + neighbor->add_temporary_bond(i1, i2, btype); ------------------------------------------------------------------------- */ void FixUpdateSpecialBonds::pre_force(int /*vflag*/) @@ -129,7 +157,7 @@ void FixUpdateSpecialBonds::pre_force(int /*vflag*/) int nlocal = atom->nlocal; tagint *tag = atom->tag; - NeighList *list = force->pair->list; // may need to be generalized to work with pair hybrid* + NeighList *list = force->pair->list; // may need to be generalized for pair hybrid* numneigh = list->numneigh; firstneigh = list->firstneigh; @@ -163,7 +191,37 @@ void FixUpdateSpecialBonds::pre_force(int /*vflag*/) } } } + + for (auto const &it : new_created_pairs) { + tag1 = it.first; + tag2 = it.second; + i1 = atom->map(tag1); + i2 = atom->map(tag2); + + // Loop through atoms of owned atoms i j and update SB bits + if (i1 < nlocal) { + jlist = firstneigh[i1]; + jnum = numneigh[i1]; + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + if (j >> SBBITS & 3 != 0) continue; // Skip bonded pairs + if (tag[j] == tag2) jlist[jj] = j ^ (1 << SBBITS); // Add 1-2 special bond bits + } + } + + if (i2 < nlocal) { + jlist = firstneigh[i2]; + jnum = numneigh[i2]; + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + if (j >> SBBITS & 3 != 0) continue; // Skip bonded pairs + if (tag[j] == tag1) jlist[jj] = j ^ (1 << SBBITS); // Add 1-2 special bond bits + } + } + } + new_broken_pairs.clear(); + new_created_pairs.clear(); } /* ---------------------------------------------------------------------- */ @@ -174,3 +232,12 @@ void FixUpdateSpecialBonds::add_broken_bond(int i, int j) new_broken_pairs.push_back(tag_pair); broken_pairs.push_back(tag_pair); } + +/* ---------------------------------------------------------------------- */ + +void FixUpdateSpecialBonds::add_created_bond(int i, int j) +{ + auto tag_pair = std::make_pair(atom->tag[i], atom->tag[j]); + new_created_pairs.push_back(tag_pair); + created_pairs.push_back(tag_pair); +} \ No newline at end of file diff --git a/src/fix_update_special_bonds.h b/src/fix_update_special_bonds.h index 52981d4d99..825977d37f 100644 --- a/src/fix_update_special_bonds.h +++ b/src/fix_update_special_bonds.h @@ -35,12 +35,18 @@ class FixUpdateSpecialBonds : public Fix { void pre_exchange() override; void pre_force(int) override; void add_broken_bond(int, int); + void add_created_bond(int, int); protected: // Create two arrays to store bonds broken this timestep (new) // and since the last neighbor list build std::vector> new_broken_pairs; std::vector> broken_pairs; + + // Create two arrays to store newly created this timestep (new) + // and since the last neighbor list build + std::vector> new_created_pairs; + std::vector> created_pairs; }; } // namespace LAMMPS_NS diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 560392ae6d..ec4f11d1bd 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -2829,6 +2829,16 @@ bigint Neighbor::get_nneigh_half() return nneighhalf; } +/* ---------------------------------------------------------------------- + add pair of atoms to bondlist array + will only persist until the next neighbor build +------------------------------------------------------------------------- */ + +void Neighbor::add_temporary_bond(int i1, int i2, int btype) +{ + neigh_bond->add_temporary_bond(i1, i2, btype); +} + /* ---------------------------------------------------------------------- return # of bytes of allocated memory ------------------------------------------------------------------------- */ diff --git a/src/neighbor.h b/src/neighbor.h index 3492693766..33a228d46a 100644 --- a/src/neighbor.h +++ b/src/neighbor.h @@ -165,6 +165,7 @@ class Neighbor : protected Pointers { bigint get_nneigh_full(); // return number of neighbors in a regular full neighbor list bigint get_nneigh_half(); // return number of neighbors in a regular half neighbor list + void add_temporary_bond(int, int, int); // add temporary bond to bondlist array double memory_usage(); bigint last_setup_bins; // step of last neighbor::setup_bins() call diff --git a/src/ntopo.cpp b/src/ntopo.cpp index 68b251be0f..f1cd547e44 100644 --- a/src/ntopo.cpp +++ b/src/ntopo.cpp @@ -24,6 +24,7 @@ using namespace LAMMPS_NS; #define LB_FACTOR 1.5 +#define DELTA 10000 /* ---------------------------------------------------------------------- */ @@ -207,6 +208,21 @@ void NTopo::dihedral_check(int nlist, int **list) /* ---------------------------------------------------------------------- */ +void NTopo::add_temporary_bond(int i1, int i2, int btype) +{ + if (nbondlist == maxbond) { + maxbond += DELTA; + memory->grow(bondlist, maxbond, 3, "neigh_topo:bondlist"); + } + + bondlist[nbondlist][0] = i1; + bondlist[nbondlist][1] = i2; + bondlist[nbondlist][2] = btype; + nbondlist++; +} + +/* ---------------------------------------------------------------------- */ + double NTopo::memory_usage() { double bytes = 0; diff --git a/src/ntopo.h b/src/ntopo.h index c60d94d52d..e03cf809a9 100644 --- a/src/ntopo.h +++ b/src/ntopo.h @@ -28,6 +28,7 @@ class NTopo : protected Pointers { virtual void build() = 0; + void add_temporary_bond(int, int, int); double memory_usage(); protected: From 8fafd4d8fb9ff27a6ea917931824f33e3ee51418 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Tue, 30 Aug 2022 13:25:36 -0600 Subject: [PATCH 07/35] Restarting additional BPM settings, adding virial contributions from tangential bonds --- examples/bpm/impact/brokenDump | 7087 +++++++++-------- .../log.17Feb2022.impact.rotational.g++.4 | 219 - .../log.4May2022.impact.rotational.g++.4 | 219 + examples/bpm/pour/log.17Feb2022.pour.g++.4 | 1091 --- examples/bpm/pour/log.4May2022.pour.g++.4 | 1096 +++ src/BPM/bond_bpm.cpp | 28 + src/BPM/bond_bpm.h | 5 +- src/BPM/bond_bpm_rotational.cpp | 73 +- src/BPM/bond_bpm_rotational.h | 6 +- src/BPM/bond_bpm_spring.cpp | 25 + src/BPM/bond_bpm_spring.h | 2 + src/bond.cpp | 85 + src/bond.h | 1 + src/fix_update_special_bonds.cpp | 6 + 14 files changed, 5424 insertions(+), 4519 deletions(-) delete mode 100644 examples/bpm/impact/log.17Feb2022.impact.rotational.g++.4 create mode 100644 examples/bpm/impact/log.4May2022.impact.rotational.g++.4 delete mode 100644 examples/bpm/pour/log.17Feb2022.pour.g++.4 create mode 100644 examples/bpm/pour/log.4May2022.pour.g++.4 diff --git a/examples/bpm/impact/brokenDump b/examples/bpm/impact/brokenDump index ef78518c91..0a2316cd5e 100644 --- a/examples/bpm/impact/brokenDump +++ b/examples/bpm/impact/brokenDump @@ -1,3173 +1,3914 @@ -276 5469 5471 -288 1815 1931 -290 1810 1815 -293 1815 1816 -295 5350 5351 -300 1813 1815 -288 1815 1931 -276 5469 5471 -278 5475 5477 -283 5349 5350 -287 5470 5477 -290 5472 5477 -292 5350 5352 -294 5477 5478 -295 5350 5351 -305 1702 1704 -308 1705 5351 -313 1699 1704 -324 1820 5471 -327 1813 1814 -332 1937 1938 -339 5228 5349 -350 1811 1818 -353 1817 5348 -361 1588 1700 -362 1700 5348 -364 1817 5469 -368 1700 5228 -368 1704 1819 -372 1817 5467 -373 5351 5470 -374 1701 1818 -374 1817 5468 -377 1584 1694 -380 5231 5349 -383 1588 5349 -383 5231 5350 -386 1458 1574 -388 1811 1812 -399 1464 1580 -399 1817 1822 -306 1938 5471 -308 1928 1933 -309 1933 1934 -310 1933 2048 -311 5712 5830 -313 1931 1933 -332 1937 1938 -333 1938 1939 -333 2056 2171 -338 1938 1940 -340 2172 2174 -352 2172 5712 -353 2056 2057 -355 2056 2172 -359 5712 5831 -362 2057 2169 -367 1932 1938 -368 2052 5709 -372 2052 2053 -375 5712 5713 -375 2172 2173 -377 2174 2286 -385 5711 5712 -385 2169 5709 -386 1935 1936 -387 2054 2055 -387 2169 5829 -398 2277 2278 -399 2057 2171 -303 5232 5350 -303 5477 5595 -304 5352 5470 -306 1938 5471 -306 5483 5484 -312 5350 5355 -312 5481 5483 -312 5471 5591 -316 5471 5590 -318 5357 5470 -324 1820 5471 -330 5470 5475 -331 5354 5473 -332 5476 5481 -332 5471 5589 -332 5483 5601 -339 5228 5349 -341 5473 5474 -343 5358 5476 -346 5349 5352 -346 5355 5357 -347 5237 5350 -350 5357 5358 -351 5354 5467 -353 1817 5348 -358 5348 5467 -362 1700 5348 -362 5601 5602 -366 5470 5471 -367 5472 5475 -371 5476 5477 -372 1817 5467 -372 5480 5593 -373 5351 5470 -373 5601 5603 -374 1817 5468 -380 5231 5349 -383 1588 5349 -383 5231 5350 -387 5478 5481 -388 5234 5353 -389 5596 5601 -397 5484 5486 -400 5593 5601 -303 5477 5595 -311 5712 5830 -312 5471 5591 -316 5471 5590 -319 5717 5719 -325 5831 5833 -332 5471 5589 -349 5603 5604 -355 5717 5722 -359 5712 5831 -368 2052 5709 -370 5720 5722 -372 5480 5593 -372 5600 5603 -373 5600 5604 -373 5601 5603 -374 5587 5594 -375 5712 5713 -379 5588 5708 -381 5600 5714 -383 5720 5721 -385 5711 5712 -385 2169 5709 -387 2169 5829 -388 5722 5723 -391 5828 5829 -394 5833 5948 -398 5710 5712 -400 5593 5601 -401 1820 1822 -403 1817 1819 -404 1586 1588 -405 1569 1685 -410 1821 1938 -411 1822 5469 -412 1568 1575 -413 1822 1937 -421 1699 1819 -421 5232 5349 -422 1704 1814 -423 1582 1584 -431 1565 1572 -431 1578 1688 -431 1812 1929 -433 5469 5472 -435 1467 1585 -442 1809 1810 -448 1685 1692 -448 1698 1808 -451 1703 5349 -454 1563 1679 -454 1935 1937 -455 1703 5351 -457 1582 1694 -458 1813 1816 -459 1695 1805 -460 1926 1927 -461 1699 1814 -468 1810 1816 -471 1814 1819 -476 1701 1819 -478 1566 1682 -480 1818 1929 -481 1920 1925 -482 1580 1587 -485 5468 5469 -486 1689 1805 -490 1457 1464 -490 1806 1810 -493 1587 1588 -493 1814 1816 -497 1682 1689 -498 1699 1816 -500 1688 1805 -500 1689 1695 -402 2049 2051 -402 2054 2057 -410 1821 1938 -416 2052 5588 -417 2055 2056 -420 1939 2049 -423 1923 1930 -423 2161 2271 -426 2050 2160 -431 1812 1929 -431 2044 2154 -437 2284 2393 -441 1940 2054 -441 2174 5832 -442 2166 2173 -448 1927 1928 -449 2286 5949 -451 2163 2170 -452 2037 2038 -457 2396 2397 -460 1926 1927 -461 1936 2046 -461 2406 2513 -464 1930 1934 -465 2055 5712 -471 1931 1934 -473 1940 5710 -474 2154 2159 -475 2274 2275 -477 1933 2049 -478 1923 2040 -479 2037 2039 -479 2399 2400 -480 1818 1929 -481 1920 1925 -482 1930 2048 -482 2039 2042 -482 2164 2280 -482 2174 5830 -485 1930 1931 -486 1930 1936 -486 2046 2053 -487 1928 1930 -488 2167 2283 -495 2156 2159 -498 1928 1934 -403 5368 5369 -407 5484 5601 -409 5601 5604 -412 5232 5352 -414 5476 5596 -416 5123 5236 -419 5484 5602 -421 5232 5349 -421 5472 5595 -422 5129 5242 -425 5362 5363 -426 5347 5354 -426 5352 5355 -430 5246 5359 -433 5469 5472 -434 5481 5484 -437 5135 5248 -438 5365 5366 -439 5358 5478 -439 5483 5596 -441 5362 5369 -450 5363 5482 -450 5484 5487 -456 5484 5607 -458 5480 5599 -459 5242 5243 -461 5235 5236 -463 5479 5486 -464 5482 5483 -467 5234 5347 -467 5361 5362 -469 5232 5355 -470 5474 5475 -474 5116 5117 -475 5356 5363 -480 5234 5240 -481 5485 5487 -484 5480 5484 -485 5468 5469 -488 5476 5478 -493 5233 5238 -494 5356 5361 -495 5118 5238 -496 5363 5483 -497 5018 5128 -498 5233 5240 -500 5370 5488 -406 5591 5711 -406 5722 5724 -406 5969 5976 -407 5721 5725 -408 5600 5720 -409 5601 5604 -413 5597 5717 -419 5970 6089 -421 5472 5595 -421 6074 6081 -425 5719 5722 -425 5964 6083 -426 5594 5598 -426 5831 5838 -429 5840 5841 -436 5833 5838 -437 5724 5843 -439 5593 5595 -441 5951 5958 -444 5830 5831 -446 5713 5831 -449 5831 5951 -449 2286 5949 -453 5722 5725 -453 5709 5829 -454 5599 5600 -454 5591 5710 -455 5834 5842 -458 5480 5599 -459 5724 5837 -462 5589 5592 -462 6084 6202 -464 5598 5603 -465 2055 5712 -472 5954 5955 -473 1940 5710 -476 5594 5708 -477 5856 5975 -482 2174 5830 -482 5844 5963 -484 5714 5721 -488 5592 5708 -490 6083 6090 -501 1802 1807 -503 1805 1807 -504 1689 1806 -507 1569 1679 -507 1693 1805 -510 1688 1693 -511 1575 1690 -518 1799 1807 -520 1227 1340 -521 1803 1804 -522 1347 1463 -525 1575 1691 -528 1804 1925 -529 1581 1697 -531 1446 1562 -531 1573 1576 -535 1574 1575 -536 1802 1809 -548 1692 1693 -552 1693 1807 -553 1575 1692 -553 1819 1821 -555 1699 1813 -560 1922 1925 -569 5109 5111 -569 1705 1819 -576 1570 1690 -580 1808 1809 -584 1581 1696 -586 1471 5111 -589 1459 1576 -599 1702 1705 -502 2160 2167 -503 1922 1924 -503 2036 2037 -504 1922 2037 -504 2169 5830 -505 2057 2174 -505 2168 2283 -507 1924 2040 -507 2281 2390 -514 2162 2167 -514 2167 2168 -515 1929 1934 -515 2044 2159 -524 1929 1936 -530 2165 2167 -536 2167 2282 -549 2158 2274 -549 2519 2520 -560 1922 1925 -560 2035 2039 -560 2158 2276 -561 2289 5832 -562 1932 1939 -562 2263 2372 -567 2041 2157 -567 2381 2382 -581 1920 2037 -583 1920 1927 -583 5950 5953 -586 2042 2045 -593 5951 5952 -596 5833 5950 -600 2158 2159 -502 5254 5255 -507 5232 5237 -508 5473 5478 -511 5239 5240 -512 5111 5112 -513 5233 5353 -519 4901 5011 -519 5012 5122 -522 5235 5238 -522 5240 5241 -523 5260 5261 -523 5364 5369 -525 5490 5608 -528 5237 5238 -538 5479 5480 -542 5488 5493 -553 5611 5613 -555 5246 5365 -555 5489 5608 -557 4895 5005 -561 5481 5601 -564 5140 5141 -569 5109 5111 -571 5114 5235 -572 5488 5495 -573 5230 5237 -582 5490 5492 -584 5024 5134 -586 1471 5111 -587 5244 5367 -587 5352 5354 -587 5490 5495 -591 5486 5599 -594 5347 5348 -502 5959 6077 -504 2169 5830 -507 5606 5726 -519 5835 5948 -521 5967 6086 -523 5733 5852 -524 5719 5842 -529 5609 5728 -529 5833 5836 -541 5956 5958 -541 5968 5971 -547 5717 5723 -549 5961 6074 -551 6071 6190 -553 5611 5613 -554 5588 5710 -558 5594 5714 -559 5592 5713 -561 5481 5601 -564 5970 6083 -568 5853 5972 -569 5592 5716 -574 5606 5727 -574 5835 5955 -579 5592 5710 -583 5950 5953 -590 5855 5862 -591 5486 5599 -591 5718 5831 -593 5951 5952 -596 5605 5726 -596 5833 5950 -602 1820 1821 -603 1461 1571 -606 1683 1793 -607 1808 1815 -609 1322 1329 -610 1583 1585 -615 1576 1579 -616 1699 1811 -621 1557 1673 -622 1583 5229 -630 1468 1470 -634 1470 1471 -634 5111 5229 -635 1469 1471 -635 1469 1586 -639 1572 1576 -639 1698 1814 -639 1809 1926 -644 5229 5230 -645 1588 1702 -649 1690 1693 -652 1696 1813 -656 1574 1579 -657 1693 1813 -658 1819 1820 -659 1467 1577 -661 1455 1565 -669 1695 1811 -677 1100 1107 -678 1221 1334 -679 1433 1440 -679 1688 1696 -680 1687 1807 -682 1812 1816 -683 1689 1799 -689 1585 5229 -690 1701 1811 -692 1007 1014 -693 1466 1471 -696 1328 1335 -699 1582 1585 -601 1928 2048 -606 2619 2620 -610 2162 2165 -613 2387 2388 -615 2040 2047 -615 2266 2375 -619 2039 2159 -622 2053 2057 -624 2151 2156 -626 2053 2171 -627 2169 2174 -627 2287 2402 -628 2172 5830 -629 2291 2402 -634 2619 2621 -637 2034 2042 -639 1809 1926 -641 2613 2614 -646 1924 2034 -649 2145 2152 -649 2136 2137 -652 2626 2730 -653 2148 2155 -654 1932 1933 -655 1934 2048 -656 2501 2502 -660 2274 2276 -662 2253 2254 -672 1934 1937 -673 2369 2370 -675 2146 2262 -678 1917 1924 -685 2052 2054 -689 1929 1930 -697 1917 2034 -700 2057 5709 -604 5611 5618 -605 4907 5017 -611 5244 5359 -628 5245 5252 -634 5111 5229 -644 5229 5230 -647 5023 5024 -648 5012 5128 -651 4897 4898 -658 5111 5230 -659 5267 5380 -660 5608 5613 -661 5602 5603 -667 5236 5238 -675 5159 5272 -675 5247 5250 -681 5604 5607 -684 5386 5387 -684 5475 5478 -603 5953 5956 -604 5611 5618 -605 6076 6078 -617 6440 6447 -622 5716 5717 -625 5966 5973 -627 5956 6076 -628 2172 5830 -631 6071 6078 -634 5610 5612 -640 5592 5598 -643 5595 5598 -645 5599 5604 -646 5987 5994 -647 5610 5615 -648 5959 6076 -658 5605 5606 -658 5729 5734 -660 5608 5613 -661 5602 5603 -662 5593 5598 -664 6331 6338 -676 5615 5734 -681 5604 5607 -689 5726 5727 -690 5603 5723 -690 5604 5723 -690 5833 5953 -691 5867 5874 -694 5598 5717 -697 5714 5716 -700 2057 5709 -701 1448 1449 -710 1810 1813 -711 1467 1583 -714 1574 1581 -727 1459 1573 -749 1453 1459 -753 1571 1573 -755 1442 1449 -755 1799 1806 -759 1661 1668 -759 1685 1690 -762 1453 1456 -764 1804 1920 -770 1571 1572 -772 1442 1448 -774 1581 1691 -778 1319 1326 -778 1699 1702 -778 1698 1813 -784 1587 1697 -788 1570 1576 -789 1684 1690 -791 1796 1803 -792 1106 1113 -794 1583 1586 -797 1335 1445 -797 5107 5109 -799 1451 1452 -800 1806 1809 -702 5829 5948 -704 1919 1920 -708 2376 2483 -711 2291 5949 -716 2037 2044 -721 2160 2162 -724 2489 2490 -728 1918 1919 -728 1927 2042 -730 2496 2601 -731 5832 5950 -732 1928 1931 -734 2279 2281 -738 2020 2130 -750 1918 2034 -752 2055 5710 -757 2608 2712 -764 1804 1920 -772 2276 2277 -773 2153 2156 -775 2275 2390 -783 2401 2403 -787 2286 5829 -791 1929 1937 -792 2035 2151 -798 1932 1934 -708 4793 4900 -709 5036 5146 -711 5243 5356 -724 5152 5153 -726 5239 5246 -733 5483 5602 -746 5245 5253 -754 5236 5243 -756 5245 5250 -758 5230 5232 -762 4919 5029 -764 5607 5610 -770 5347 5355 -771 5364 5487 -787 5234 5235 -789 5125 5132 -791 5364 5484 -797 5107 5109 -702 5829 5948 -703 5732 5734 -710 6227 6343 -711 2291 5949 -711 6221 6337 -719 5597 5711 -719 5846 5847 -725 5753 5760 -730 5618 5732 -731 5832 5950 -734 5853 5966 -734 6080 6081 -745 5958 6071 -751 6101 6108 -752 2055 5710 -754 5598 5601 -755 5721 5834 -755 6107 6114 -759 5965 6088 -764 5607 5610 -770 5725 5728 -771 5954 6074 -772 5963 5965 -774 5965 6082 -775 5845 5848 -793 6199 6200 -793 6446 6453 -795 5727 5840 -795 5961 6082 -799 5734 5737 -804 1454 1455 -805 1098 1211 -807 1687 1689 -809 1331 1332 -810 984 1094 -817 1332 1450 -820 1326 1442 -826 1442 1444 -827 1221 1333 -834 1911 1918 -846 1095 1208 -846 1821 1822 -851 1691 1692 -855 1800 1804 -858 1574 1580 -865 1338 1448 -867 995 1002 -871 1703 1704 -872 1196 1203 -872 1687 1799 -876 1819 1822 -880 1197 1310 -882 1332 1333 -883 881 989 -883 1687 1801 -886 1082 1089 -887 1587 1704 -887 1689 1807 -888 1704 5351 -890 1818 1937 -897 1690 1691 -804 1919 1922 -809 2149 2265 -824 1921 2037 -825 2052 5710 -834 1911 1918 -834 2041 2158 -835 2041 2045 -849 1921 2031 -856 2037 2042 -872 1917 1919 -888 5950 5952 -890 1818 1937 -803 5467 5468 -807 5011 5018 -808 5130 5250 -808 5254 5261 -813 5130 5253 -819 5131 5132 -819 5485 5492 -819 5488 5490 -834 4882 4883 -842 5364 5370 -845 5352 5467 -847 5227 5234 -848 5370 5490 -853 5125 5131 -855 5485 5493 -862 5020 5021 -863 5228 5348 -871 5599 5601 -874 5108 5114 -876 5366 5370 -878 5008 5015 -878 5369 5488 -879 5015 5133 -885 5021 5131 -888 1704 5351 -890 5125 5133 -890 5366 5485 -812 6081 6085 -814 5850 5968 -818 6452 6459 -819 5725 5730 -820 5723 5725 -825 2052 5710 -826 5604 5728 -832 5725 5842 -837 6102 6220 -846 5959 6082 -846 5973 6086 -861 6084 6201 -870 5598 5716 -871 5599 5601 -871 5725 5845 -871 6085 6201 -887 6233 6349 -892 6077 6196 -899 6337 6344 -903 1576 1578 -904 1336 1339 -909 1704 1705 -909 1806 1917 -913 1218 1325 -913 1700 1705 -923 1470 1586 -924 1304 1311 -929 880 887 -929 978 1088 -931 875 983 -934 1325 1330 -936 1459 1574 -940 1571 1576 -948 1695 1813 -950 1325 1332 -955 1821 1937 -962 1212 1325 -968 1421 1428 -970 1336 1450 -972 1816 1821 -974 1817 1818 -978 1076 1083 -980 1806 1807 -986 1577 1579 -987 1325 1333 -994 1457 1458 -995 1216 1328 -999 1214 1215 -1000 1810 1925 -904 2162 2277 -907 1923 1924 -907 2172 5832 -909 1806 1917 -909 2396 2403 -916 2291 6070 -917 2391 2504 -918 5829 5830 -919 2157 2158 -921 2405 5952 -923 1915 1916 -923 2259 2266 -940 2043 2050 -948 1913 1916 -951 2040 2048 -952 2279 2398 -955 1821 1937 -955 2405 2519 -964 2276 2282 -964 2498 2505 -967 2256 2263 -973 2043 2160 -979 1932 1937 -984 2390 2392 -998 2392 2395 -1000 1810 1925 -902 5132 5251 -904 5131 5251 -911 4786 4787 -922 5242 5249 -934 5360 5479 -939 5136 5138 -946 5488 5489 -969 5249 5362 -976 5364 5367 -979 5257 5259 -979 5257 5264 -981 5249 5368 -983 5243 5362 -988 5393 5506 -994 5248 5255 -906 5966 5974 -907 2172 5832 -916 2291 6070 -918 5829 5830 -926 6092 6093 -936 5600 5722 -936 5963 5968 -937 5963 5964 -940 5853 5974 -941 5851 5856 -946 5966 5971 -948 5858 5859 -951 5840 5960 -963 5847 5960 -966 5605 5612 -973 5838 5951 -979 5852 5857 -987 5851 5974 -988 5730 5843 -993 5841 5845 -994 6355 6362 -996 5851 5854 -997 5965 5968 -1007 1683 1801 -1015 1575 1581 -1016 1693 1696 -1017 1465 1582 -1018 1676 1677 -1019 1332 1336 -1024 1464 1574 -1026 1532 1539 -1027 1212 1319 -1036 1442 1559 -1042 1087 1090 -1043 1790 1797 -1044 1678 1681 -1044 1804 1919 -1059 1330 1444 -1059 1458 1568 -1066 1690 1692 -1071 1792 1905 -1073 1692 1807 -1074 1212 1216 -1077 1690 1807 -1080 1071 1184 -1083 1326 1436 -1090 1705 5469 -1098 1681 1684 -1003 2505 2610 -1004 2168 2288 -1013 2257 2372 -1029 2372 2373 -1037 2154 2161 -1037 2162 2168 -1040 2279 2282 -1044 1804 1919 -1050 1933 1939 -1055 2276 2279 -1064 2389 2506 -1071 1792 1905 -1073 2162 2282 -1078 2278 2392 -1084 2156 2161 -1085 6072 6190 -1089 2719 2820 -1014 5512 5513 -1019 5370 5487 -1026 5010 5013 -1032 5228 5347 -1032 5244 5362 -1033 5130 5135 -1059 5009 5013 -1064 5240 5244 -1070 5488 5608 -1076 5480 5481 -1078 5015 5016 -1085 5029 5030 -1088 5252 5253 -1089 5130 5133 -1090 5127 5128 -1090 1705 5469 -1091 5118 5241 -1094 5487 5490 -1096 5235 5237 -1002 6081 6199 -1004 5962 5964 -1008 5955 5956 -1010 5841 5847 -1011 5968 5969 -1014 5961 6080 -1015 5954 5961 -1016 6206 6316 -1018 5948 5956 -1020 6671 6678 -1022 5844 5845 -1023 5714 5715 -1023 5841 5842 -1032 5843 5844 -1032 5841 5844 -1033 5967 5968 -1038 5963 5969 -1039 5972 5973 -1041 6238 6245 -1044 5844 5962 -1048 5966 5968 -1052 5839 5841 -1053 6428 6435 -1054 5953 5958 -1056 5961 5967 -1060 6076 6079 -1071 6083 6084 -1071 6322 6323 -1072 5839 5954 -1082 6433 6435 -1085 6072 6190 -1088 5754 5873 -1088 5834 5841 -1097 5728 5729 -1098 5843 5849 -1102 1336 1456 -1113 1688 1695 -1117 1801 1802 -1118 731 738 -1118 1696 1698 -1121 1335 1450 -1132 1327 1330 -1136 1453 1455 -1139 1330 1442 -1139 1686 1801 -1142 646 653 -1149 1802 1803 -1155 1327 1444 -1157 953 960 -1158 1216 1327 -1169 1341 1451 -1173 643 650 -1176 1806 1923 -1178 1696 1699 -1181 552 652 -1184 1216 1330 -1185 1330 1335 -1186 1686 1796 -1198 640 647 -1101 2839 2937 -1102 2044 2160 -1107 2274 2279 -1112 6069 6073 -1114 2152 2268 -1128 1912 2028 -1131 2165 2168 -1144 2043 2048 -1148 2402 6068 -1152 2269 2384 -1156 2051 2171 -1159 2150 2270 -1174 2269 2378 -1176 1806 1923 -1176 2269 2386 -1181 2385 2492 -1193 2404 2407 -1194 2516 2521 -1198 1930 2046 -1199 2384 2385 -1103 5611 5616 -1105 5015 5019 -1111 5014 5021 -1113 5493 5496 -1114 4892 5010 -1115 5250 5253 -1127 4891 4892 -1128 5248 5250 -1131 5132 5245 -1133 5136 5259 -1133 5256 5371 -1135 5253 5256 -1139 5495 5496 -1142 4890 4892 -1144 4880 4884 -1146 5014 5022 -1156 5014 5016 -1157 5244 5249 -1159 5011 5128 -1163 5258 5377 -1164 4483 4582 -1174 4360 4361 -1174 5015 5131 -1176 5014 5019 -1178 5239 5247 -1179 5262 5265 -1181 5247 5249 -1187 4772 4885 -1187 5016 5019 -1187 5130 5248 -1190 4588 4589 -1194 4476 4477 -1200 5247 5248 -1103 5611 5616 -1103 6107 6108 -1105 6204 6207 -1111 6201 6202 -1112 6069 6073 -1112 6210 6324 -1114 5739 5860 -1128 5597 5716 -1135 5852 5858 -1141 6084 6090 -1148 2402 6068 -1148 6200 6204 -1150 5865 5978 -1150 6206 6323 -1152 5720 5727 -1157 5854 5857 -1160 5833 5951 -1168 5604 5606 -1168 5849 5850 -1173 6074 6075 -1175 5743 5860 -1180 5959 5962 -1181 5610 5728 -1190 5960 5967 -1195 5951 5956 -1195 6204 6318 -1212 641 743 -1212 1692 1808 -1213 1680 1796 -1215 557 564 -1216 664 671 -1216 737 744 -1220 1098 1205 -1231 1680 1681 -1234 1451 1457 -1237 1681 1795 -1245 1179 1292 -1247 1576 1690 -1249 1092 1199 -1249 1324 1436 -1254 473 480 -1260 468 563 -1260 551 558 -1260 1695 1696 -1265 1211 1212 -1265 1693 1695 -1269 1332 1442 -1272 1808 1810 -1277 1670 1677 -1280 1178 1185 -1287 1320 1430 -1289 1679 1685 -1291 1694 1696 -1294 1212 1218 -1294 1564 1678 -1296 844 851 -1297 549 649 -1298 1324 1438 -1298 1670 1675 -1210 2165 2171 -1211 2500 2506 -1214 2279 2284 -1227 6068 6069 -1233 2269 2273 -1233 2492 2499 -1235 2153 2270 -1248 2385 2498 -1258 2263 2378 -1267 2516 6187 -1268 2050 2166 -1268 2146 2264 -1268 3111 3198 -1269 1906 1907 -1272 2500 2501 -1273 2493 2604 -1277 2497 2499 -1277 2521 6306 -1280 2395 2398 -1283 2054 2171 -1283 2501 2508 -1292 2401 2407 -1295 2800 2898 -1299 3034 3125 -1201 5258 5379 -1203 4902 5014 -1204 5256 5258 -1207 5248 5249 -1209 4595 4698 -1213 5242 5362 -1214 4704 4705 -1214 4784 4897 -1216 5131 5133 -1220 4367 4464 -1222 5359 5360 -1231 5467 5475 -1232 5244 5361 -1234 4373 4470 -1234 5500 5501 -1235 4168 4255 -1239 5490 5613 -1244 5129 5247 -1254 5607 5608 -1255 5131 5136 -1260 4261 4262 -1262 5124 5241 -1262 5260 5262 -1271 5611 5612 -1272 5124 5129 -1273 5120 5241 -1281 5128 5129 -1282 5020 5027 -1283 5264 5265 -1286 5262 5267 -1293 4370 4467 -1296 4363 4364 -1299 4711 4816 -1202 5957 5958 -1203 5723 5728 -1214 5969 5971 -1215 6329 6437 -1217 5837 5842 -1220 5730 5848 -1221 5610 5731 -1221 5853 5854 -1227 5957 5959 -1227 6068 6069 -1228 6684 6791 -1230 6379 6386 -1230 6477 6590 -1230 6902 6909 -1236 5849 5851 -1239 5490 5613 -1243 5729 5736 -1245 6077 6078 -1253 5610 5734 -1257 5609 5723 -1265 5963 6083 -1267 2516 6187 -1271 5611 5612 -1273 5956 5959 -1278 5745 5858 -1278 5863 5866 -1279 5962 5965 -1279 6079 6082 -1279 6262 6269 -1281 6690 6797 -1284 5840 5847 -1285 6992 7088 -1288 5966 5967 -1288 6584 6591 -1288 6579 6689 -1290 6090 6202 -1293 6780 6884 -1296 5721 5840 -1297 5597 5598 -1297 5853 5857 -1300 5745 5749 -1302 1235 1236 -1303 1455 1573 -1304 1222 1333 -1311 1678 1679 -1313 1210 1216 -1324 548 555 -1328 1796 1797 -1329 1329 1439 -1331 1670 1671 -1341 1210 1213 -1342 1584 1700 -1344 1678 1680 -1356 4995 5109 -1361 1801 1804 -1366 1807 1808 -1367 459 554 -1374 1314 1424 -1374 1287 1403 -1376 1215 1322 -1377 750 856 -1382 1328 1330 -1388 647 749 -1395 1096 1207 -1399 1330 1445 -1307 2689 2790 -1308 2497 2612 -1315 2154 2156 -1316 2521 6188 -1318 2171 2173 -1320 2264 2267 -1325 2695 2796 -1326 2898 2899 -1328 3028 3119 -1329 2799 2800 -1331 3138 3225 -1332 2908 3003 -1334 2045 2048 -1334 2045 2047 -1337 2500 2503 -1338 2161 2277 -1343 2261 2380 -1343 2910 2911 -1349 2045 2051 -1352 2264 2270 -1353 1922 2042 -1353 2565 2566 -1356 2454 2559 -1356 2676 2677 -1358 1917 1918 -1358 2803 2901 -1360 2057 2172 -1364 2577 2578 -1366 2815 2913 -1370 3131 3132 -1374 2707 2808 -1384 2229 2230 -1397 3031 3122 -1399 2162 2274 -1302 4473 4474 -1304 5370 5493 -1305 4364 4461 -1307 4271 4363 -1308 4990 4995 -1310 5263 5270 -1311 4592 4695 -1316 5122 5129 -1316 5133 5136 -1317 5072 5182 -1317 5256 5261 -1318 4274 4366 -1320 4701 4702 -1320 4828 4829 -1321 5375 5493 -1325 4480 4579 -1326 5489 5490 -1330 5241 5242 -1330 5374 5375 -1333 4717 4822 -1333 5024 5141 -1350 4364 4368 -1352 4262 4360 -1355 4363 4368 -1356 4995 5109 -1357 4585 4586 -1362 5370 5373 -1367 5496 5613 -1369 4155 4156 -1369 5239 5241 -1375 5473 5480 -1375 5617 5622 -1376 4708 4813 -1377 4835 4942 -1380 4585 4695 -1388 5132 5138 -1389 4162 4249 -1389 4265 4357 -1393 5241 5247 -1398 5107 5114 -1309 6327 6330 -1310 5898 6017 -1314 6578 6585 -1319 5725 5848 -1321 5717 5718 -1324 5739 5745 -1333 6208 6209 -1341 6322 6437 -1343 5832 5951 -1354 5590 5595 -1363 5957 5964 -1367 5496 5613 -1368 5604 5722 -1374 5745 5866 -1375 5617 5622 -1380 5732 5852 -1380 5839 5845 -1387 5839 5956 -1388 5594 5595 -1393 5749 5866 -1395 5751 5864 -1395 6443 6444 -1401 1286 1293 -1403 1096 1205 -1404 1205 1213 -1407 554 561 -1407 1327 1328 -1410 474 569 -1411 1800 1801 -1420 1575 1576 -1422 1328 1333 -1422 1397 1404 -1426 1448 1450 -1433 1458 1573 -1448 1327 1329 -1451 1070 1077 -1454 560 567 -1454 850 857 -1463 1564 1684 -1464 1684 1687 -1467 1664 1781 -1479 1453 1458 -1481 1324 1326 -1481 1585 1588 -1486 1587 1702 -1489 1468 1471 -1497 1564 1569 -1405 2919 2920 -1407 2157 2162 -1413 2393 2399 -1418 2700 2707 -1435 3021 3022 -1436 2809 2907 -1437 2375 2380 -1442 2391 2392 -1454 2925 2926 -1461 2598 2605 -1463 2157 2164 -1465 2034 2041 -1483 2259 2265 -1483 2393 2395 -1483 2497 2502 -1493 2393 2400 -1405 5246 5250 -1434 5253 5255 -1436 5107 5115 -1449 5373 5493 -1458 5254 5374 -1470 4367 4368 -1476 5467 5469 -1476 5372 5491 -1483 4899 4902 -1485 5116 5123 -1493 5263 5264 -1496 4790 4903 -1499 4707 4708 -1409 5743 5861 -1415 6333 6445 -1419 5616 5737 -1421 5742 5855 -1422 5970 6088 -1434 6367 6374 -1435 6330 6445 -1441 5739 5858 -1451 5856 5969 -1456 5618 5740 -1459 5624 5744 -1459 5739 5852 -1460 5731 5851 -1469 5971 5974 -1473 6356 6470 -1480 5999 6006 -1484 5993 6000 -1486 5840 5842 -1491 5737 5740 -1492 5844 5957 -1496 5871 5984 -1498 5732 5737 -1500 5829 5833 -1502 1450 1451 -1514 1227 1334 -1514 1324 1329 -1515 1464 1465 -1518 1085 1086 -1518 1448 1453 -1532 1085 1087 -1537 1081 1084 -1537 1552 1672 -1543 1093 1096 -1546 1693 1808 -1551 1800 1911 -1556 973 1087 -1559 1676 1683 -1563 1096 1101 -1563 1329 1444 -1566 1086 1087 -1571 1101 1208 -1576 1090 1093 -1576 1466 5108 -1577 985 1099 -1580 1094 1101 -1581 1085 1199 -1583 974 975 -1587 1082 1084 -1600 983 990 -1505 2379 2380 -1506 2049 2056 -1512 3128 3129 -1516 2383 2385 -1519 2700 2701 -1521 2155 2271 -1526 2384 2391 -1532 2606 2609 -1534 2156 2270 -1535 2402 5949 -1536 2170 2286 -1537 2053 2169 -1538 2036 2039 -1539 2507 2508 -1551 1800 1911 -1553 2604 2606 -1555 2498 2500 -1560 2931 2932 -1561 2599 2709 -1562 2035 2041 -1568 2713 2814 -1571 2389 2500 -1577 2694 2701 -1597 2383 2492 -1598 2701 2808 -1503 5491 5493 -1505 5260 5380 -1510 5013 5127 -1526 4889 4999 -1530 5376 5491 -1531 5118 5124 -1532 5142 5259 -1536 4897 4904 -1548 5131 5138 -1550 5246 5367 -1553 4706 4708 -1566 5136 5142 -1571 5371 5379 -1576 1466 5108 -1579 5165 5278 -1580 5352 5475 -1580 5382 5385 -1582 5478 5483 -1501 5977 6094 -1506 6005 6012 -1515 5869 5872 -1526 5954 5959 -1535 2402 5949 -1536 5842 5845 -1537 5871 5991 -1543 5766 5885 -1548 5965 5967 -1550 5849 5856 -1576 5632 5633 -1585 5875 5992 -1590 5844 5850 -1590 6244 6251 -1595 5742 5861 -1595 5990 5991 -1596 5748 5861 -1605 1207 1208 -1614 1235 1237 -1618 1088 1090 -1621 1210 1215 -1652 1088 1095 -1652 1330 1332 -1653 979 981 -1665 1208 1210 -1668 1092 1205 -1672 876 988 -1689 1683 1799 -1700 1451 1453 -1605 2256 2261 -1613 2045 2165 -1625 2155 2272 -1629 2389 2498 -1632 2038 2039 -1644 2381 2388 -1654 2493 2606 -1660 2144 2261 -1660 2279 2392 -1679 2278 2279 -1683 2151 2159 -1689 2254 2255 -1700 2261 2264 -1609 5136 5139 -1612 4789 4796 -1620 5123 5124 -1622 5232 5234 -1645 5237 5355 -1646 4902 5022 -1675 5255 5373 -1679 4905 4908 -1693 5255 5256 -1695 4889 4890 -1609 5621 5735 -1620 5750 5752 -1631 6074 6082 -1632 6098 6099 -1633 5855 5857 -1638 5743 5866 -1639 5725 5727 -1653 5854 5856 -1667 5960 5961 -1670 5977 6092 -1672 5749 5751 -1698 5970 5971 -1699 6080 6085 -1704 979 982 -1707 1106 1108 -1746 1002 1113 -1756 1227 1339 -1759 1685 1686 -1764 1793 1800 -1765 1122 1236 -1771 866 968 -1774 1216 1333 -1779 1689 1693 -1792 1187 1188 -1702 2250 2257 -1704 2387 2394 -1716 2153 2154 -1729 2258 2261 -1744 1903 2013 -1755 2517 2622 -1757 2039 2153 -1759 2045 2050 -1762 2521 2628 -1770 2251 2366 -1772 2265 2272 -1774 2151 2153 -1780 2395 2397 -1786 1922 2036 -1793 2593 2703 -1800 2631 2632 -1702 5251 5252 -1707 5504 5510 -1710 5384 5390 -1711 5254 5256 -1715 5390 5503 -1724 5258 5371 -1726 5503 5504 -1727 5018 5134 -1728 4905 5022 -1728 5121 5124 -1739 5503 5505 -1740 4544 4647 -1759 4996 5004 -1759 5384 5503 -1765 5256 5374 -1767 4431 4432 -1767 4896 5010 -1769 4772 4886 -1778 5384 5504 -1785 5114 5115 -1787 5470 5472 -1790 5149 5150 -1790 5267 5385 -1794 5119 5121 -1795 4886 4890 -1799 5123 5241 -1704 5839 5962 -1716 6217 6218 -1722 5960 5968 -1723 6084 6085 -1726 6080 6088 -1738 6078 6195 -1738 6317 6318 -1741 5720 5725 -1753 6077 6083 -1761 6317 6321 -1763 6090 6091 -1764 6092 6094 -1765 5965 6080 -1771 5974 5975 -1776 6097 6100 -1782 5737 5742 -1789 5967 5973 -1789 6092 6097 -1796 5976 5977 -1796 6215 6325 -1806 1100 1102 -1814 1354 5109 -1825 1324 1327 -1825 1570 1685 -1829 1798 1800 -1832 1575 1685 -1834 1563 1678 -1843 1352 4994 -1844 1576 1581 -1844 1799 1801 -1849 1208 1209 -1851 1579 1582 -1856 1339 1341 -1860 1198 1203 -1860 1218 1333 -1865 1122 1237 -1868 1210 1327 -1877 1554 1670 -1892 1230 1345 -1894 1670 1678 -1898 973 976 -1900 1222 1339 -1807 6305 6306 -1814 2616 2617 -1815 2011 2017 -1816 2034 2035 -1820 2625 2632 -1824 2015 2017 -1833 2264 2266 -1833 2282 2284 -1840 2017 2018 -1841 2017 2133 -1847 2016 2017 -1848 2603 2608 -1851 2010 2018 -1857 2377 2380 -1858 2017 2135 -1859 2603 2717 -1863 2742 6308 -1869 2164 2168 -1871 2608 2717 -1871 2626 2735 -1881 2375 2382 -1890 2150 2153 -1890 2606 2607 -1898 2133 2134 -1804 5266 5268 -1805 5265 5268 -1810 5352 5357 -1813 5259 5260 -1814 1354 5109 -1814 5257 5262 -1814 5377 5379 -1821 5006 5122 -1824 4895 5010 -1831 4759 4760 -1837 5268 5271 -1843 1352 4994 -1843 5270 5271 -1848 4663 4768 -1850 5269 5276 -1850 5268 5273 -1852 5629 5634 -1867 5251 5258 -1877 4992 4995 -1881 5267 5268 -1883 5510 5631 -1884 5256 5373 -1887 5271 5274 -1888 5386 5506 -1889 5635 5636 -1894 5112 5114 -1894 5114 5233 -1803 5977 6097 -1807 6305 6306 -1811 6090 6207 -1812 5972 5974 -1814 6073 6187 -1830 6426 6430 -1833 6331 6332 -1834 6099 6211 -1836 6088 6090 -1837 6093 6094 -1846 6089 6090 -1847 6223 6224 -1848 5630 5750 -1852 5629 5634 -1857 6309 6419 -1860 5960 5965 -1860 6085 6207 -1867 6310 6318 -1872 5865 5986 -1872 5973 5974 -1872 6218 6328 -1874 6444 6448 -1875 6211 6219 -1875 6216 6219 -1880 6310 6311 -1883 5510 5631 -1889 5635 5636 -1889 6230 6340 -1894 6311 6419 -1896 6311 6427 -1897 6098 6105 -1910 1349 4991 -1915 975 1086 -1915 1115 1120 -1922 1463 1464 -1923 1350 4991 -1925 989 990 -1926 990 1094 -1938 1084 1087 -1942 1085 1090 -1942 1089 1196 -1945 1570 1575 -1946 1466 5109 -1950 1213 1215 -1979 860 962 -1980 1095 1202 -1997 1096 1208 -1999 1332 1449 -1918 2168 2282 -1921 2384 2386 -1923 2134 2252 -1923 2520 2631 -1931 2260 2376 -1932 1918 2028 -1933 2255 2374 -1936 2156 2276 -1938 2625 2627 -1939 2519 6189 -1951 2496 2607 -1951 2515 2630 -1955 6191 6307 -1959 2163 2164 -1962 2152 2270 -1967 2056 5712 -1974 2516 2518 -1975 2377 2489 -1977 2028 2035 -1988 2605 2715 -1992 2626 2736 -1994 2493 2598 -1998 2238 2245 -1906 5119 5120 -1910 1349 4991 -1910 5274 5389 -1915 5156 5275 -1920 4760 4761 -1923 1350 4991 -1925 5388 5505 -1929 5017 5024 -1929 5117 5236 -1931 4874 4992 -1931 5508 5511 -1933 5233 5235 -1937 5375 5494 -1943 5011 5012 -1946 1466 5109 -1951 5385 5505 -1953 5386 5393 -1964 5154 5274 -1967 4873 4881 -1976 5508 5513 -1980 5113 5120 -1989 5266 5273 -1991 4886 4996 -1994 5269 5270 -1995 5371 5373 -1904 6434 6441 -1905 6339 6451 -1906 6222 6225 -1906 6445 6446 -1910 5719 5724 -1922 5985 6104 -1924 6085 6090 -1925 6325 6332 -1935 6448 6559 -1937 5867 5868 -1937 6107 6109 -1948 6217 6222 -1955 6191 6307 -1956 5959 5961 -1962 6081 6082 -1965 6456 6563 -1966 6236 6346 -1966 6310 6315 -1979 5730 5849 -1979 6446 6447 -1985 6228 6231 -2002 984 990 -2009 1216 1325 -2019 984 1088 -2024 1081 1195 -2025 1091 1092 -2038 1080 1081 -2039 1078 1189 -2046 1565 1570 -2047 864 970 -2048 752 753 -2057 1079 1080 -2062 1329 1445 -2064 968 976 -2070 1331 1338 -2075 1802 1804 -2076 1073 1074 -2083 974 979 -2088 980 981 -2098 1224 1331 -2014 2389 2394 -2015 2601 2608 -2017 2255 2371 -2017 2379 2494 -2022 2711 2714 -2026 2609 2612 -2034 2709 2716 -2038 2249 2368 -2044 2140 2144 -2044 2156 2271 -2052 2251 2368 -2054 2613 2615 -2056 2282 2398 -2056 2710 2817 -2058 2155 2270 -2059 2489 2495 -2060 2369 2371 -2063 2379 2486 -2067 2028 2034 -2074 2486 2487 -2074 2496 2497 -2086 2491 2494 -2088 2371 2374 -2092 2260 2375 -2092 2374 2375 -2100 2390 2391 -2004 5277 5280 -2006 5386 5392 -2007 5014 5015 -2008 5382 5384 -2021 5138 5259 -2023 5259 5262 -2027 5269 5274 -2027 5490 5493 -2030 5155 5162 -2033 5122 5128 -2040 5378 5379 -2043 5009 5119 -2046 5271 5272 -2061 5277 5279 -2064 5268 5391 -2073 4996 5003 -2074 5162 5163 -2076 5160 5283 -2080 5274 5277 -2089 5233 5234 -2094 4993 5000 -2098 5268 5385 -2014 5850 5969 -2016 6203 6318 -2018 6557 6558 -2021 5849 5854 -2028 5721 5842 -2032 5729 5849 -2034 6449 6450 -2045 5731 5854 -2060 6203 6204 -2070 6663 6764 -2090 6559 6560 -2098 5730 5736 -2099 6210 6325 -2099 6327 6329 -2102 1082 1083 -2105 1330 1450 -2114 1093 1094 -2129 971 976 -2132 1088 1093 -2138 1336 1338 -2159 863 864 -2162 1067 1068 -2166 977 978 -2168 759 859 -2173 861 864 -2173 1076 1078 -2188 869 971 -2198 861 867 -2199 1090 1095 -2103 2704 2811 -2105 2602 2712 -2106 2285 2398 -2107 2503 2615 -2108 2607 2612 -2114 2259 2261 -2117 2368 2369 -2123 2615 2618 -2128 2282 2285 -2129 2255 2369 -2130 2377 2382 -2135 2706 2713 -2136 2382 2495 -2136 2611 2721 -2156 2150 2264 -2159 2255 2368 -2172 2604 2605 -2182 2805 2812 -2195 2708 2819 -2196 2811 2817 -2199 2262 2264 -2103 5153 5272 -2108 5045 5161 -2109 4878 4993 -2110 5278 5285 -2111 5256 5379 -2112 5160 5275 -2113 5161 5162 -2118 5629 5636 -2121 4648 4759 -2121 5044 5051 -2139 5159 5277 -2148 5163 5166 -2156 5273 5392 -2159 5386 5388 -2165 5168 5281 -2176 5166 5169 -2179 5158 5278 -2180 4907 5023 -2185 4794 4911 -2196 5164 5166 -2198 4880 4998 -2114 6353 6461 -2118 5629 5636 -2123 6079 6201 -2125 6327 6332 -2130 6454 6565 -2131 5610 5726 -2137 6564 6668 -2150 6569 6570 -2154 6558 6559 -2158 6234 6237 -2162 5846 5848 -2168 5882 5883 -2172 6322 6324 -2177 6453 6560 -2177 6558 6564 -2184 5964 5965 -2184 6202 6207 -2187 6199 6201 -2187 6562 6670 -2192 6203 6209 -2194 6557 6564 -2196 6207 6209 -2197 6685 6796 -2203 1803 1920 -2206 981 1091 -2211 62 63 -2220 757 861 -2223 860 861 -2223 1079 1086 -2228 1088 1094 -2231 976 978 -2233 859 866 -2233 1095 1207 -2238 419 420 -2239 1321 1327 -2240 1074 1075 -2251 335 419 -2257 413 414 -2258 757 859 -2262 751 754 -2266 1073 1080 -2267 420 509 -2270 145 146 -2271 1319 1327 -2273 414 503 -2273 650 746 -2274 329 413 -2274 979 1093 -2275 328 329 -2275 1797 1914 -2278 1322 1327 -2290 648 650 -2294 753 853 -2202 2265 2267 -2203 1803 1920 -2206 2811 2818 -2207 2621 2729 -2227 2377 2494 -2230 2814 2819 -2234 2602 2713 -2236 2360 2367 -2240 2033 2150 -2243 2609 2723 -2244 2813 2816 -2254 2806 2910 -2256 2361 2474 -2261 2812 2816 -2263 1918 2036 -2265 1916 2030 -2271 2817 2818 -2275 1797 1914 -2281 2373 2379 -2285 2609 2614 -2288 2810 2918 -2291 2148 2150 -2294 2145 2150 -2295 2383 2388 -2201 5159 5278 -2214 5165 5166 -2214 5373 5376 -2224 5165 5284 -2230 5000 5115 -2233 5154 5277 -2234 5465 5578 -2235 5007 5121 -2235 5504 5508 -2238 5168 5287 -2244 5578 5580 -2247 5165 5283 -2247 5168 5289 -2253 4906 4913 -2253 5464 5465 -2254 5273 5391 -2255 4438 4543 -2268 4995 5000 -2273 4990 4991 -2273 5268 5383 -2276 4875 4877 -2280 5003 5113 -2285 5162 5281 -2295 5160 5278 -2297 5173 5180 -2212 6445 6448 -2220 6209 6210 -2226 6080 6082 -2231 6582 6686 -2232 6448 6560 -2232 6568 6571 -2248 5705 5825 -2248 6562 6671 -2261 6580 6582 -2262 6688 6691 -2263 6205 6206 -2265 6575 6576 -2273 6676 6679 -2276 6574 6682 -2277 6557 6559 -2284 5730 5731 -2285 6562 6567 -2286 6582 6694 -2289 6202 6203 -2295 6325 6330 -2296 6451 6565 -2302 1075 1078 -2304 324 327 -2305 859 867 -2307 1092 1207 -2309 1210 1212 -2310 975 1085 -2312 1072 1075 -2317 752 859 -2325 746 751 -2326 1072 1189 -2328 330 418 -2331 1072 1078 -2336 1326 1444 -2340 1576 1688 -2346 757 867 -2348 325 326 -2354 1658 1665 -2355 864 867 -2355 1087 1089 -2356 421 424 -2359 326 410 -2360 1067 1074 -2363 247 325 -2365 756 856 -2371 418 420 -2385 416 417 -2386 420 421 -2396 864 866 -2397 521 522 -2398 975 1079 -2301 3570 3572 -2303 2733 2740 -2303 2814 2821 -2306 2810 2816 -2307 2904 2911 -2315 2261 2266 -2315 2382 2388 -2315 2824 2922 -2325 2922 2930 -2328 2816 2918 -2336 2256 2257 -2340 2804 2912 -2343 3606 3613 -2344 2494 2497 -2352 2147 2150 -2353 2929 3024 -2359 2918 2921 -2373 1942 1948 -2375 2366 2372 -2379 2383 2389 -2383 2264 2265 -2383 2700 2808 -2385 2494 2495 -2389 1942 1947 -2392 1942 1946 -2392 2273 2386 -2395 2267 2272 -2396 2918 2920 -2397 3500 3505 -2398 1948 2064 -2400 2703 2709 -2304 4764 4881 -2304 5167 5174 -2307 5141 5260 -2311 5172 5289 -2323 5170 5171 -2335 5608 5609 -2340 5001 5116 -2346 5287 5288 -2362 5118 5236 -2364 5172 5295 -2365 5372 5485 -2371 5463 5465 -2383 5458 5465 -2384 5276 5277 -2385 5054 5171 -2392 5154 5271 -2395 5290 5297 -2397 4790 4796 -2399 5459 5465 -2304 6329 6443 -2306 6204 6319 -2309 6680 6681 -2319 6204 6321 -2322 6567 6671 -2328 6447 6448 -2335 5608 5609 -2337 7478 7479 -2339 6676 6784 -2344 6332 6440 -2349 6443 6445 -2350 6675 6776 -2351 6448 6450 -2351 6568 6682 -2354 2057 5830 -2361 6570 6574 -2373 7289 7361 -2376 6447 6560 -2378 6444 6557 -2379 6322 6327 -2380 6580 6688 -2390 6077 6082 -2393 6449 6563 -2393 6673 6676 -2396 6680 6685 -2400 6206 6210 -2404 1334 1336 -2410 862 863 -2424 427 520 -2453 421 514 -2456 527 528 -2457 324 412 -2459 861 862 -2464 1181 1188 -2477 749 750 -2488 1183 1186 -2493 326 330 -2497 748 749 -2497 753 754 -2497 1205 1206 -2407 2257 2366 -2408 3430 3500 -2413 3505 3568 -2421 2909 3014 -2422 2496 2608 -2423 2383 2500 -2423 3484 3546 -2439 2468 2475 -2444 3599 3600 -2449 3341 3343 -2451 1954 2064 -2452 2703 2710 -2457 1831 1946 -2464 2711 2712 -2479 3478 3546 -2482 2263 2267 -2483 3702 7498 -2485 2708 2713 -2494 2711 2713 -2413 5272 5279 -2418 5175 5295 -2426 5578 5583 -2434 4684 4795 -2434 5175 5178 -2435 5155 5161 -2435 5272 5274 -2437 5334 5452 -2444 5141 5259 -2451 5452 5459 -2460 4794 4799 -2467 5164 5171 -2469 5451 5452 -2480 5453 5566 -2482 5290 5291 -2482 5605 5613 -2494 4905 4906 -2496 4906 4912 -2499 5127 5129 -2500 5049 5169 -2403 6450 6565 -2408 6674 6680 -2412 6082 6083 -2412 6554 6560 -2434 6329 6445 -2434 6679 6784 -2439 6573 6677 -2444 7144 7230 -2445 6561 6665 -2449 7252 7253 -2451 5833 5956 -2452 6557 6565 -2455 6206 6322 -2461 5592 5711 -2461 7144 7145 -2462 6450 6557 -2463 6668 6675 -2467 6680 6682 -2468 6562 6568 -2468 7221 7222 -2477 7379 7380 -2478 7204 7282 -2478 7416 7472 -2479 7253 7325 -2480 6640 6642 -2482 5605 5613 -2482 6668 6676 -2496 7434 7490 -2502 523 526 -2504 1182 1295 -2512 331 332 -2513 979 984 -2519 648 651 -2535 1199 1205 -2543 425 426 -2544 432 521 -2546 1235 4874 -2556 1074 1187 -2560 864 976 -2562 507 601 -2563 426 520 -2565 427 523 -2568 1079 1084 -2569 644 740 -2573 424 426 -2578 1379 1380 -2582 1092 1096 -2587 751 756 -2594 1573 1574 -2600 648 754 -2513 3702 3703 -2518 2383 2495 -2522 2599 2710 -2527 2808 2810 -2531 2812 2916 -2544 3506 3570 -2551 2703 2811 -2573 2603 2712 -2585 3701 3702 -2587 3504 3511 -2598 2606 2608 -2505 5452 5457 -2510 5583 5586 -2512 5447 5560 -2522 4544 4653 -2524 5446 5447 -2526 5292 5295 -2528 4789 4797 -2542 5243 5361 -2546 1235 4874 -2551 5019 5139 -2555 5119 5126 -2561 5290 5292 -2565 4684 4688 -2567 5008 5014 -2567 5446 5448 -2569 4903 4904 -2572 5440 5447 -2583 5459 5460 -2589 5446 5453 -2590 4647 4654 -2590 5289 5290 -2594 5295 5296 -2597 5445 5447 -2501 5843 5845 -2505 6532 6642 -2508 7307 7379 -2513 5860 5863 -2513 6794 6795 -2515 6562 6676 -2515 7409 7410 -2516 6669 6776 -2517 7264 7265 -2524 6316 6317 -2539 5615 5735 -2539 6554 6561 -2548 6670 6673 -2550 7475 7477 -2556 6562 6668 -2568 5717 5724 -2568 6531 6642 -2568 6782 6783 -2569 7343 7344 -2571 7414 7416 -2572 6784 6785 -2581 6776 6782 -2581 7479 7480 -2585 6321 6324 -2591 6559 6561 -2592 7345 7414 -2592 7480 7526 -2594 5855 5860 -2598 6199 6204 -2607 1289 1296 -2609 601 602 -2616 417 421 -2619 1072 1077 -2621 245 327 -2627 1730 1731 -2628 1180 1186 -2629 512 513 -2629 534 628 -2631 330 333 -2632 1183 1297 -2633 1180 1297 -2641 529 627 -2643 1077 1184 -2644 746 754 -2644 1485 1602 -2647 1731 1842 -2650 547 651 -2658 326 327 -2661 653 755 -2668 1183 1184 -2668 1291 1294 -2669 1290 1406 -2686 653 749 -2695 1731 1848 -2607 2611 2715 -2612 2386 2500 -2612 3437 3509 -2615 3600 3607 -2619 2822 2825 -2628 2497 2604 -2630 2905 3006 -2631 3257 3340 -2635 2614 2723 -2640 3540 3547 -2647 1731 1842 -2653 2822 2827 -2654 2391 2395 -2667 2492 2500 -2668 3567 3570 -2683 2815 2919 -2695 1731 1848 -2615 5460 5575 -2617 5328 5451 -2620 5440 5441 -2631 4103 4110 -2631 5281 5287 -2631 5333 5451 -2634 4462 4567 -2638 4794 4797 -2643 5018 5019 -2658 5440 5442 -2661 5434 5435 -2662 5442 5445 -2665 5260 5267 -2666 5008 5013 -2666 5330 5451 -2669 5233 5241 -2678 5459 5572 -2678 5465 5583 -2679 4902 5016 -2679 5270 5389 -2679 5292 5297 -2682 5328 5445 -2684 5147 5267 -2685 5337 5339 -2687 4682 4797 -2687 5322 5445 -2687 5327 5445 -2688 5122 5127 -2690 5460 5577 -2692 5164 5170 -2694 5324 5445 -2698 5294 5407 -2609 6787 6895 -2618 7436 7437 -2625 7320 7391 -2640 7371 7436 -2643 7435 7437 -2646 6788 6789 -2647 6782 6784 -2654 6890 6897 -2659 6330 6332 -2663 7375 7443 -2665 6781 6889 -2666 6684 6790 -2672 6638 6640 -2674 7409 7414 -2676 6082 6085 -2678 7416 7478 -2692 6638 6642 -2705 645 651 -2710 553 652 -2712 332 416 -2713 1731 1847 -2717 1072 1184 -2722 93 157 -2726 1400 1407 -2731 645 648 -2740 896 1004 -2740 1400 1401 -2744 421 512 -2744 753 757 -2745 546 646 -2748 328 330 -2748 336 424 -2749 553 657 -2750 1290 1296 -2754 422 423 -2755 634 635 -2756 112 113 -2756 429 518 -2762 325 328 -2763 1730 1737 -2767 528 622 -2769 1205 1207 -2770 113 179 -2770 1088 1089 -2771 864 869 -2775 552 651 -2775 1081 1083 -2776 1092 1093 -2786 330 336 -2787 553 649 -2791 111 181 -2791 1078 1083 -2792 1208 1213 -2798 1076 1077 -2800 1288 1408 -2703 2721 2722 -2712 2497 2607 -2714 1916 1918 -2723 2152 2153 -2737 2372 2377 -2744 2052 2057 -2750 2912 2915 -2752 3501 3508 -2793 2495 2502 -2702 5135 5254 -2708 4904 5020 -2716 4683 4690 -2717 5454 5457 -2719 5440 5445 -2728 5251 5259 -2732 5578 5579 -2737 5320 5321 -2739 4891 4898 -2742 5339 5452 -2745 5435 5554 -2748 5137 5138 -2749 5298 5415 -2755 5054 5170 -2756 4685 4688 -2756 4794 4796 -2757 4684 4796 -2759 4684 4797 -2778 5466 5583 -2779 5052 5169 -2783 5460 5462 -2786 4573 4580 -2786 5454 5456 -2787 5300 5413 -2790 5257 5258 -2796 5052 5055 -2797 4903 4910 -2798 5454 5572 -2704 6678 6785 -2707 6206 6324 -2725 7411 7414 -2731 7337 7339 -2733 6684 6785 -2747 6770 6777 -2761 6570 6674 -2763 6784 6787 -2770 6677 6678 -2770 6667 6778 -2771 6085 6202 -2776 5843 5848 -2777 7344 7414 -2788 6691 6694 -2793 7343 7350 -2799 6562 6565 -2806 1189 1192 -2810 111 113 -2810 528 629 -2818 433 526 -2820 250 328 -2821 553 555 -2822 111 114 -2825 1075 1077 -2834 1078 1081 -2841 113 187 -2854 1718 1720 -2858 642 740 -2861 556 559 -2869 640 641 -2872 554 556 -2873 1484 1491 -2874 555 556 -2874 1182 1186 -2890 556 657 -2894 463 554 -2813 2146 2150 -2855 2810 2913 -2869 2257 2374 -2898 2814 2816 -2809 5251 5256 -2809 5583 5584 -2813 5263 5268 -2818 5320 5322 -2826 5294 5415 -2828 4898 5016 -2828 5297 5410 -2837 5275 5282 -2841 5457 5460 -2846 5448 5451 -2846 5460 5465 -2848 5315 5434 -2852 5454 5571 -2852 5582 5583 -2855 4677 4683 -2864 5294 5413 -2871 5171 5290 -2875 4574 4683 -2883 5386 5391 -2884 5243 5244 -2890 5462 5583 -2801 6332 6445 -2812 7339 7342 -2814 6685 6688 -2815 7480 7485 -2832 6692 6693 -2832 6882 6976 -2836 7259 7337 -2842 6982 6983 -2844 6562 6564 -2849 5681 5801 -2849 7406 7414 -2851 6556 6561 -2866 6786 6890 -2866 7265 7266 -2868 7480 7483 -2875 6686 6688 -2876 6670 6778 -2877 7263 7265 -2889 7265 7343 -2891 6881 6889 -2893 7417 7477 -2899 7260 7265 -2901 638 734 -2904 1289 1294 -2910 1183 1185 -2911 1288 1405 -2917 463 562 -2918 1397 1402 -2919 1188 1189 -2926 1212 1213 -2927 1073 1078 -2929 647 743 -2934 1485 1600 -2937 462 557 -2937 1400 1405 -2938 157 164 -2941 1282 1402 -2943 1187 1194 -2953 1205 1210 -2968 642 648 -2969 1399 1402 -2984 1184 1186 -2988 648 748 -2990 1278 1394 -2994 1596 1712 -2994 1718 1725 -2919 2361 2476 -2922 1921 1922 -2927 2262 2263 -2938 2810 2912 -2979 2255 2366 -2985 2809 2913 -2901 4578 4691 -2905 4474 4579 -2905 5277 5278 -2907 5259 5261 -2917 5161 5166 -2921 5419 5420 -2924 5460 5583 -2936 5454 5460 -2938 5560 5567 -2944 4474 4478 -2948 5436 5439 -2950 5273 5386 -2958 5434 5439 -2959 5554 5555 -2963 5436 5554 -2965 5326 5446 -2970 5436 5553 -2973 5333 5446 -2974 5438 5439 -2980 5436 5438 -2982 5428 5435 -2989 5265 5267 -2989 5435 5548 -2993 5431 5436 -2999 5431 5439 -2909 6570 6681 -2909 6772 6775 -2909 6776 6783 -2909 7180 7258 -2922 6783 6889 -2922 7262 7265 -2928 7258 7263 -2934 6675 6784 -2943 7265 7342 -2953 6204 6206 -2954 6665 6672 -2961 6883 6886 -2964 6673 6675 -2973 7260 7336 -2975 6558 6562 -2978 6668 6673 -2981 7256 7260 -2984 6880 6886 -2989 6786 6884 -2990 5957 5962 -2993 5954 5962 -3002 1181 1186 -3005 1290 1408 -3029 1403 1404 -3030 981 1093 -3030 1182 1297 -3034 157 162 -3036 642 647 -3062 981 985 -3063 1085 1092 -3067 756 863 -3067 1723 1725 -3075 1078 1195 -3077 1597 1712 -3080 645 646 -3090 467 468 -3096 469 568 -3006 2909 3009 -3009 2806 2912 -3029 2153 2155 -3039 1800 1919 -3064 2812 2813 -3065 2914 3015 -3006 5298 5413 -3010 5318 5438 -3016 4904 5022 -3020 5452 5453 -3021 5441 5447 -3027 4904 4908 -3031 5321 5322 -3033 5130 5247 -3033 5296 5297 -3034 5241 5244 -3037 5169 5171 -3038 5431 5438 -3048 5453 5454 -3056 5327 5440 -3069 5419 5426 -3073 5166 5168 -3083 5418 5421 -3085 5256 5259 -3085 5419 5424 -3093 5306 5425 -3001 7079 7080 -3026 7339 7414 -3037 6667 6670 -3047 7083 7089 -3053 7422 7478 -3057 6764 6771 -3072 6662 6670 -3073 6881 6883 -3078 7476 7480 -3082 6886 6984 -3084 6085 6088 -3089 6982 6984 -3089 7480 7525 -3091 6884 6886 -3092 6878 6883 -3093 6667 6669 -3099 6777 6883 -3100 5839 5842 -3133 469 563 -3135 560 562 -3139 1607 1614 -3152 464 471 -3152 465 560 -3156 1723 1726 -3157 1597 1717 -3164 1080 1193 -3166 471 560 -3171 472 568 -3174 465 471 -3190 1292 1299 -3103 2709 2710 -3121 2793 2898 -3132 2904 2905 -3149 3000 3007 -3176 2804 2906 -3106 5287 5292 -3106 5421 5423 -3127 4904 4905 -3135 5421 5424 -3137 5304 5424 -3146 5420 5421 -3157 5156 5162 -3157 5295 5297 -3167 5427 5428 -3101 6780 6878 -3107 6775 6878 -3107 6882 6883 -3110 6663 6770 -3113 6878 6880 -3114 6884 6891 -3116 6775 6875 -3119 6875 6878 -3124 6987 7081 -3126 6671 6672 -3126 6880 6883 -3128 6780 6883 -3147 6877 6878 -3149 7480 7527 -3152 7477 7480 -3156 6678 6679 -3191 6986 7082 -3197 6885 6886 -3203 1289 1297 -3205 1180 1185 -3215 552 646 -3215 642 742 -3246 553 651 -3246 631 632 -3249 1290 1294 -3255 636 639 -3264 1404 1405 -3280 756 861 -3284 1520 1521 -3218 2055 2057 -3280 2034 2036 -3220 5419 5425 -3222 5310 5425 -3224 5318 5437 -3236 5266 5267 -3251 5377 5378 -3253 5304 5427 -3254 5276 5280 -3265 5431 5432 -3274 5432 5433 -3285 5312 5425 -3290 5309 5427 -3297 5298 5416 -3298 5160 5162 -3248 6981 6987 -3257 6560 6561 -3273 5837 5844 -3285 6785 6786 -3300 6769 6869 -3303 464 472 -3318 463 557 -3318 636 638 -3318 1083 1196 -3322 380 464 -3338 638 742 -3341 966 1070 -3347 1402 1404 -3366 1077 1190 -3377 469 475 -3377 1640 1647 -3380 1284 1394 -3395 1402 1519 -3397 961 1069 -3302 5592 5594 -3301 5416 5421 -3310 5271 5273 -3314 5306 5427 -3314 5428 5429 -3321 5303 5422 -3324 5310 5427 -3327 5303 5416 -3350 5310 5433 -3358 5174 5287 -3364 5312 5433 -3369 5171 5172 -3302 5592 5594 -3304 6671 6676 -3305 6976 6984 -3309 6983 6987 -3311 6882 6982 -3319 6869 6877 -3335 6769 6877 -3347 7170 7171 -3366 6987 7079 -3367 7080 7084 -3376 6881 6888 -3387 6874 6877 -3389 7080 7170 -3392 6890 6891 -3397 7172 7174 -3402 647 748 -3410 373 374 -3415 1069 1075 -3430 373 375 -3438 647 750 -3441 1399 1519 -3456 1388 1395 -3463 633 639 -3467 1277 1278 -3469 1282 1285 -3471 465 554 -3471 642 645 -3475 961 1072 -3480 535 633 -3482 1168 1279 -3419 2362 2363 -3430 5304 5422 -3456 5421 5422 -3457 5437 5438 -3409 6783 6887 -3434 7255 7256 -3454 7262 7334 -3459 6787 6790 -3459 6984 6986 -3490 6559 6562 -3496 6783 6787 -3501 1164 1271 -3518 1173 1280 -3523 1286 1287 -3527 957 1061 -3532 540 634 -3537 749 754 -3546 1291 1293 -3565 1180 1292 -3569 958 1069 -3589 955 958 -3592 531 625 -3502 2005 2115 -3507 5258 5259 -3529 5316 5439 -3562 5318 5439 -3581 5275 5276 -3597 5293 5294 -3505 6787 6789 -3511 6884 6889 -3524 5622 5624 -3541 7169 7172 -3549 5593 5594 -3561 6983 7079 -3571 6985 6986 -3598 7076 7083 -3604 1280 1286 -3608 533 634 -3639 533 534 -3655 1288 1402 -3658 1162 1271 -3665 1388 1393 -3677 642 743 -3681 1265 1382 -3685 1167 1279 -3625 5462 5575 -3634 5316 5433 -3637 5204 5323 -3646 5508 5510 -3652 5324 5443 -3697 5503 5508 -3674 5839 5844 -3711 529 532 -3718 1167 1274 -3720 1162 1273 -3728 1277 1282 -3730 950 951 -3752 1157 1158 -3759 1067 1069 -3766 527 529 -3795 641 737 -3703 5596 5598 -3714 6581 6582 -3812 1044 1151 -3816 642 748 -3840 1293 1409 -3843 643 648 -3873 1186 1189 -3878 1230 1337 -3830 5593 5600 -3812 5271 5277 -3840 5304 5421 -3827 5598 5600 -3830 5593 5600 -3903 1403 1408 -3910 957 1067 -3918 978 1082 -3960 646 651 -3965 1283 1284 -3968 958 961 -3978 646 647 -3909 5303 5421 -3967 5154 5272 -3974 5459 5578 -3981 5309 5422 -3995 5275 5280 -3979 7252 7259 -4028 1463 1468 -4040 1260 1370 -4064 1071 1072 -4070 1184 1190 -4057 2922 2923 -4038 5321 5440 -4013 7337 7344 -4023 7344 7409 -4041 5968 5970 -4047 7342 7344 -4061 7344 7415 -4129 944 945 -4131 851 958 -4154 1250 1251 -4169 1143 1250 -4171 918 1022 -4186 1138 1250 -4191 1244 1250 -4197 1072 1074 -4122 2614 2718 -4144 1818 1822 -4171 5596 5603 -4114 5434 5441 -4122 5172 5287 -4173 5434 5436 -4178 5453 5572 -4110 7174 7252 -4112 7260 7342 -4171 5596 5603 -4183 7257 7260 -4222 1250 1255 -4280 1229 1237 -4294 1233 1340 -4299 1344 1460 -4218 2139 2140 -4244 2140 2250 -4255 2010 2011 -4202 5171 5289 -4209 5572 5577 -4221 5448 5566 -4242 5178 5295 -4254 5415 5417 -4262 5297 5298 -4280 5417 5418 -4289 5177 5295 -4292 5445 5446 -4211 7413 7477 -4216 7416 7477 -4239 6328 6335 -4245 7409 7416 -4263 7411 7416 -4269 7472 7477 -4272 7417 7475 -4296 7483 7485 -4307 1003 1109 -4317 1149 1256 -4325 1265 1266 -4329 1256 1257 -4336 1137 1244 -4347 999 1109 -4359 1189 1190 -4360 1116 1120 -4365 1228 1339 -4393 1265 1273 -4349 2055 5591 -4377 6078 6079 -4386 2822 2922 -4376 5425 5433 -4381 5442 5447 -4392 5430 5433 -4301 7417 7422 -4304 7416 7417 -4343 7260 7263 -4356 6787 6887 -4367 6578 6689 -4377 6078 6079 -4385 7341 7406 -4425 1224 1230 -4431 1265 1270 -4484 2138 2253 -4427 5439 5442 -4433 5298 5421 -4444 4878 4880 -4449 5433 5553 -4455 4877 4878 -4457 4878 4990 -4464 4880 4883 -4473 4880 4881 -4499 5444 5557 -4452 7413 7469 -4566 1035 1142 -4547 5450 5563 -4614 1136 1137 -4666 1023 1130 -4623 2920 3021 -4626 1887 1888 -4655 1818 1935 -4656 2137 2247 -4665 1770 1881 -4626 5428 5430 -4666 5439 5559 -4703 2808 2815 -4729 1894 2004 -4731 2135 2137 -4750 1897 2007 -4775 1891 2001 -4701 5444 5448 -4731 5456 5569 -4752 5448 5453 -4758 5454 5569 -4733 7082 7089 -4736 6676 6678 -4819 2397 2504 -4822 1886 1891 -4844 2013 2014 -4854 1891 2006 -4825 5444 5563 -4895 5450 5569 -4819 6985 6992 -4957 1532 1533 -4959 1579 1580 -4991 1469 1470 -5003 461 468 -5019 524 525 -5019 1082 1087 -5042 955 960 -5008 5615 5729 -5041 7349 7350 -5046 7258 7265 -5112 960 1064 -5115 846 952 -5145 650 753 -5180 1284 1400 -5183 1398 1514 -5188 973 975 -5197 851 953 -5127 1799 1805 -5167 1937 1940 -5223 518 524 -5226 836 938 -5228 646 648 -5265 1515 1631 -5272 862 864 -5290 421 426 -5257 3001 3098 -5231 6991 6998 -5319 537 631 -5320 1396 1399 -5321 1284 1285 -5336 524 529 -5340 543 643 -5342 530 531 -5360 644 748 -5392 975 976 -5372 5054 5164 -5392 5047 5054 -5401 524 526 -5403 419 424 -5410 429 526 -5410 974 981 -5425 1085 1093 -5431 638 740 -5470 648 653 -5490 973 978 -5447 5272 5277 -5427 6893 6894 -5453 6981 7081 -5523 631 636 -5582 524 531 -5583 427 518 -5503 5585 5698 -5555 4936 4937 -5566 4934 5050 -5573 5052 5053 -5586 5203 5210 -5504 6698 6699 -5563 6984 6987 -5602 631 638 -5607 423 512 -5627 427 432 -5644 427 521 -5646 427 526 -5646 4820 4933 -5673 4933 4934 -5697 5586 5701 -5704 529 531 -5733 416 512 -5740 1920 1921 -5716 4934 4938 -5764 5096 5212 -5772 5212 5219 -5776 5089 5096 -5789 5094 5096 -5800 5212 5214 -5850 535 538 -5853 526 527 -5859 1799 1804 -5802 5091 5096 -5814 5096 5102 -5816 5049 5054 -5862 5101 5106 -5865 5206 5213 -5887 6878 6885 -5901 431 432 -5932 633 634 -5970 341 432 -5992 529 534 -5932 5102 5218 -5966 5103 5223 -6089 2051 2166 -6092 5217 5220 -6574 418 419 -6597 4707 4714 -6640 334 335 -6664 4701 4708 -6773 4713 4720 -6791 4477 4582 -6753 5984 5991 -6773 5991 6110 -6845 534 635 -6812 4689 4696 -6824 4576 4583 -6828 4476 4483 -6854 4586 4695 -6953 6882 6886 -7017 522 616 -7051 2397 2401 -7009 7262 7340 -7033 5865 5866 -7050 6984 6985 -7092 5608 5615 -7114 1282 1399 -7170 5852 5860 -7249 426 427 -7296 979 1087 -7247 5864 5871 -7399 2401 2406 -7387 5048 5054 -7448 1406 1407 -7427 2400 2406 -7443 2406 2518 -7442 4938 5052 -7496 4823 4930 +599 1817 5468 +600 1808 1815 +554 1938 5471 +548 5471 5591 +554 1938 5471 +571 5471 5590 +572 5471 5589 +599 1817 5468 +548 5471 5591 +571 5471 5590 +572 5471 5589 +608 1814 1815 +616 1815 1926 +622 5231 5350 +622 1818 1935 +635 1818 1929 +638 5468 5469 +648 1806 1923 +648 1818 1937 +649 1811 1812 +650 1822 5468 +650 1822 1935 +652 5469 5472 +655 1822 5589 +660 1812 1813 +662 1816 1929 +666 1810 1923 +672 1935 1937 +676 1810 1812 +676 1822 1938 +677 1806 1917 +677 1822 1937 +679 1812 1816 +683 1819 1937 +683 1816 1931 +684 1816 1937 +686 1810 1931 +695 1583 1584 +699 1821 1822 +700 1812 1929 +616 1815 1926 +635 1818 1929 +648 1806 1923 +650 1822 1935 +660 1923 1930 +662 1816 1929 +666 1810 1923 +671 1935 1936 +672 1935 1937 +676 1822 1938 +677 1806 1917 +683 1816 1931 +686 1810 1931 +687 2052 5709 +692 1923 2040 +692 2169 5709 +694 2052 5588 +696 1936 1940 +700 1812 1929 +605 5477 5596 +610 5467 5468 +611 5237 5350 +622 5231 5350 +628 5467 5474 +629 5473 5474 +635 5467 5472 +637 5473 5480 +638 5468 5469 +640 5474 5475 +646 5354 5467 +647 5467 5475 +650 1822 5468 +652 5347 5354 +652 5469 5472 +653 5479 5480 +658 5473 5478 +661 5472 5475 +661 5474 5478 +663 5480 5481 +665 5358 5478 +668 5227 5234 +669 5480 5593 +670 5347 5355 +671 5234 5347 +672 5479 5486 +674 5352 5354 +674 5475 5478 +677 5471 5472 +678 5478 5593 +679 5478 5481 +681 5352 5355 +682 5352 5475 +682 5468 5471 +687 5352 5357 +687 5486 5599 +689 5232 5234 +689 5481 5601 +690 5476 5478 +691 5480 5484 +693 5484 5599 +694 5471 5477 +700 5479 5484 +655 1822 5589 +669 5480 5593 +678 5478 5593 +687 5486 5599 +687 2052 5709 +692 2169 5709 +693 5484 5599 +693 5594 5600 +694 2052 5588 +695 5600 5714 +699 5828 5829 +700 5951 5958 +704 1806 1925 +706 1810 1925 +711 1816 1932 +711 1937 1940 +712 1800 1917 +716 1926 1931 +720 1457 1464 +721 1804 1917 +722 5469 5470 +722 1803 1920 +728 1820 5471 +729 1802 1809 +730 1925 1928 +734 1353 1469 +735 1923 1925 +737 5230 5231 +738 1804 1925 +739 1810 1926 +739 1816 1821 +740 1911 1918 +743 1822 5471 +745 1821 1937 +746 1458 1574 +755 1586 5231 +756 1469 4994 +756 1463 1470 +756 1467 1577 +756 1815 1931 +757 1804 1919 +758 1683 1793 +758 1800 1919 +760 1809 1810 +762 1692 1808 +763 5469 5471 +763 1932 1937 +765 1808 1810 +766 1914 1915 +769 1804 1806 +769 1821 1938 +771 1806 1809 +774 1926 1933 +776 1459 1574 +776 1568 1575 +776 1573 1574 +779 4994 5110 +779 5111 5229 +779 5229 5230 +781 1804 1807 +783 1797 1908 +783 1800 1806 +784 5112 5229 +787 1799 1804 +788 1799 1805 +789 1464 1580 +789 1802 1807 +795 1807 1810 +800 1674 1790 +800 1790 1797 +703 2057 5709 +704 5952 6071 +711 1816 1932 +711 1937 1940 +711 2052 5710 +712 1800 1917 +716 1926 1931 +717 2169 5829 +719 2277 2278 +721 1804 1917 +722 1803 1920 +724 2037 2038 +727 1940 2052 +730 1925 1928 +730 1940 2054 +731 1928 1930 +734 2169 5830 +735 1923 1925 +736 1928 1931 +736 1924 2040 +736 2044 2154 +736 2057 5710 +740 1911 1918 +745 1928 1934 +746 1923 1928 +746 1923 1931 +748 1921 2031 +749 1939 1940 +750 2170 2286 +751 1928 2048 +754 1928 2040 +755 1931 1933 +756 1917 1919 +756 1815 1931 +757 1804 1919 +758 1800 1919 +758 1933 2043 +759 1930 2040 +761 2057 5830 +762 1921 2038 +762 2283 2284 +763 1932 1937 +764 2287 2402 +766 1914 1915 +766 2040 2047 +769 1821 1938 +771 2161 2271 +774 1926 1933 +774 2406 2513 +778 2040 2042 +782 1930 1931 +784 2174 5829 +785 1912 2028 +788 2043 2048 +788 2041 2157 +790 1923 1924 +793 1940 2055 +795 2038 2039 +796 2174 5830 +799 1931 1934 +799 1937 1938 +799 2286 2287 +702 5114 5233 +702 5484 5601 +703 5470 5472 +704 5116 5117 +704 5255 5368 +707 5352 5470 +707 5495 5608 +710 5232 5237 +711 5232 5355 +713 5483 5602 +714 5478 5483 +716 5476 5477 +717 5232 5235 +718 5470 5471 +720 5227 5235 +721 5230 5232 +721 5599 5607 +722 5469 5470 +722 5482 5483 +725 5364 5484 +726 5123 5236 +728 1820 5471 +729 5366 5485 +729 5483 5601 +734 5350 5355 +737 5230 5231 +737 5350 5357 +739 5234 5235 +741 5374 5375 +742 5488 5495 +743 1822 5471 +745 5481 5484 +746 5114 5227 +749 5500 5501 +749 5606 5607 +751 5486 5605 +751 5604 5607 +751 5614 5615 +753 5479 5487 +760 5601 5602 +762 5113 5120 +763 5000 5110 +763 5469 5471 +763 5492 5605 +765 5108 5114 +767 5112 5227 +771 5472 5477 +773 5476 5596 +775 5381 5494 +778 5486 5487 +779 4994 5110 +779 5111 5229 +779 5229 5230 +779 5375 5488 +779 5470 5477 +781 5107 5108 +783 5116 5118 +784 5112 5229 +784 5242 5243 +784 5602 5604 +787 5368 5369 +787 5475 5477 +789 5233 5235 +791 5129 5242 +791 5602 5603 +792 5248 5249 +794 5485 5486 +795 5477 5478 +702 5484 5601 +703 2057 5709 +704 5952 6071 +708 5957 5964 +709 5593 5600 +711 2052 5710 +717 2169 5829 +718 5709 5829 +720 5736 5855 +721 5593 5601 +721 5599 5607 +722 5720 5721 +729 5483 5601 +730 5598 5600 +730 5828 5830 +733 5735 5742 +733 5709 5830 +733 5958 6077 +734 2169 5830 +736 2057 5710 +738 5714 5722 +740 5598 5601 +747 5605 5606 +749 5606 5607 +751 5486 5605 +751 5604 5607 +751 5614 5615 +751 5849 5856 +757 5841 5954 +759 5621 5741 +760 5601 5602 +761 5721 5722 +761 2057 5830 +761 5828 5833 +763 5492 5605 +769 5835 5948 +772 5721 5725 +776 5615 5735 +784 5602 5604 +784 2174 5829 +785 5833 5835 +786 5969 5976 +790 5726 5727 +791 5602 5603 +795 5831 5951 +796 2174 5830 +798 5605 5726 +799 5960 5961 +801 1568 1685 +801 1586 5229 +802 1463 1465 +802 1799 1800 +803 4991 5107 +803 1673 1680 +803 1685 1692 +803 5108 5112 +804 1799 1806 +804 1806 1807 +804 1911 1916 +805 1799 1802 +807 1807 1809 +808 1573 1575 +808 1586 1588 +808 5350 5351 +808 5351 5352 +810 1354 1469 +813 4994 5109 +813 1353 1468 +816 1580 1587 +816 1819 1821 +818 5351 5470 +819 1685 1690 +820 1689 1799 +821 1463 1468 +821 1911 1912 +823 1464 1574 +823 1575 1685 +823 1689 1806 +824 1471 5229 +824 1685 1687 +824 1799 1801 +825 1570 1575 +827 1583 1586 +827 1676 1677 +831 1463 1464 +833 1683 1801 +835 1805 1806 +836 5108 5109 +841 1586 1587 +841 1687 1807 +842 1686 1687 +843 1686 1802 +845 1681 1793 +847 1676 1681 +848 1471 5108 +849 1570 1690 +849 1687 1689 +849 1692 1802 +850 1684 1690 +851 1808 1809 +852 1676 1678 +853 1348 1465 +853 1464 1465 +854 1462 1464 +854 1464 1579 +854 1471 1583 +856 1348 1468 +857 1684 1687 +857 1687 1801 +857 1687 1799 +858 1570 1576 +859 1806 1810 +860 1585 5229 +860 1585 1588 +864 1462 1465 +865 1354 5109 +868 1681 1683 +870 1459 1576 +871 1573 1576 +872 1354 1468 +872 1683 1799 +873 1686 1801 +876 1585 1587 +877 1459 1579 +879 1687 1802 +882 1683 1686 +885 1584 1585 +885 1681 1801 +886 1466 5108 +886 1583 1585 +893 4995 5109 +896 1459 1464 +900 1354 1466 +900 1682 1684 +801 2045 2047 +802 2041 2158 +802 2396 2403 +803 1929 1931 +803 2039 2154 +804 1911 1916 +805 2045 2048 +805 2154 2159 +808 2040 2048 +812 1918 1919 +812 2045 2051 +812 2045 2157 +814 2040 2045 +814 2154 2161 +817 1928 1933 +818 1932 1938 +819 1932 1934 +819 2047 2050 +821 1911 1912 +821 2045 2165 +821 2156 2161 +822 2048 2050 +823 2286 5829 +825 2055 5710 +825 2047 2157 +828 2036 2038 +829 2156 2159 +829 2172 5830 +831 2161 2276 +831 2274 2281 +838 2167 2277 +839 1931 1932 +839 2022 2029 +841 1938 1939 +842 2159 2161 +842 2164 2280 +844 2276 2277 +848 2039 2153 +849 6191 6307 +852 2049 2050 +855 2050 2051 +856 2047 2165 +859 2161 2162 +861 5710 5712 +861 2157 2164 +863 5830 5832 +868 2162 2276 +869 2050 2165 +873 2631 6191 +874 5831 5832 +875 2276 2282 +876 2031 2036 +876 2290 2399 +879 2044 2161 +879 5712 5830 +881 2163 2165 +881 2161 2277 +884 2051 2165 +884 2507 2508 +885 2055 5591 +887 2051 2166 +889 2277 2279 +890 2160 2161 +890 2519 2520 +892 1933 1934 +896 2163 2164 +897 2393 2394 +897 2394 2501 +898 2282 2284 +898 2405 5952 +803 4991 5107 +803 5108 5112 +803 5118 5123 +803 5366 5487 +806 5477 5590 +808 5350 5351 +808 5351 5352 +812 5507 5620 +818 5351 5470 +822 5115 5116 +822 5122 5123 +822 5483 5596 +822 5484 5602 +824 5247 5248 +825 5365 5372 +825 5364 5487 +826 5129 5247 +829 5255 5373 +829 5364 5370 +832 5477 5595 +832 5483 5484 +832 5484 5486 +832 5611 5612 +834 5123 5241 +837 5124 5129 +840 5373 5374 +841 5000 5115 +842 5250 5255 +843 5130 5247 +843 5349 5350 +844 5122 5124 +846 5366 5370 +848 5248 5250 +848 5363 5483 +850 5249 5250 +853 5499 5500 +856 5365 5370 +859 5118 5121 +859 5235 5238 +859 5481 5482 +862 5124 5127 +865 5230 5237 +865 5256 5373 +865 5367 5370 +869 4995 5110 +869 5476 5483 +874 5350 5352 +875 5250 5256 +876 5374 5376 +877 5364 5482 +877 5376 5381 +879 5130 5250 +884 5250 5253 +884 5365 5373 +888 5001 5115 +891 5364 5369 +891 5381 5499 +891 5481 5483 +893 4995 5109 +894 4990 4997 +897 4997 5113 +898 5245 5250 +899 4995 5115 +900 5245 5247 +900 5371 5378 +803 5604 5609 +803 5970 6089 +805 5620 5627 +806 5477 5590 +810 5606 5610 +811 6196 6203 +812 5507 5620 +813 5612 5726 +815 6197 6313 +816 5856 5975 +816 6083 6090 +823 2286 5829 +825 2055 5710 +829 2172 5830 +832 5477 5595 +832 5611 5612 +832 5854 5855 +833 6084 6202 +833 6197 6307 +836 5971 5976 +837 5835 5955 +840 5971 6089 +840 6084 6090 +841 5732 5733 +843 5969 5974 +847 5737 5742 +847 5958 6071 +848 6075 6187 +849 6201 6202 +849 6085 6202 +849 6191 6307 +850 5727 5840 +852 5954 5955 +853 5855 5862 +855 5609 5723 +856 5610 5726 +858 6201 6203 +859 5740 5741 +861 5710 5712 +862 5604 5728 +862 5955 6074 +862 5955 5959 +863 5830 5832 +863 5954 5956 +864 5737 5855 +865 5955 5956 +865 5953 6071 +865 6088 6089 +866 5970 6088 +866 6083 6085 +866 6197 6312 +867 5835 5956 +867 5974 5976 +867 6083 6088 +868 5961 5967 +869 6085 6090 +871 5610 5728 +871 5954 5959 +872 5606 5728 +872 5740 5742 +872 5954 6074 +873 5857 5862 +873 6088 6090 +874 5831 5832 +877 5857 5975 +877 5948 5956 +877 6068 6075 +878 6074 6076 +879 5712 5830 +880 5974 5975 +881 5833 5836 +882 6192 6307 +883 5955 6076 +885 2055 5591 +888 5954 5957 +888 6201 6204 +891 6198 6203 +893 5961 6074 +894 5609 5728 +895 6198 6313 +897 5740 5743 +898 5830 5833 +898 5959 5961 +900 6068 6076 +901 1683 1684 +904 1570 1682 +906 1815 1816 +907 1677 1793 +913 1570 1572 +916 1571 1573 +918 1572 1573 +925 1467 1583 +928 1459 1571 +931 1582 1585 +937 1459 1461 +938 1810 1815 +942 1580 1582 +943 1566 1683 +944 1465 1582 +945 1560 1670 +949 1821 1932 +953 1461 1462 +958 1821 1939 +962 1577 1585 +965 1676 1683 +967 1566 1682 +968 1460 1465 +978 1460 1462 +979 1813 1815 +984 1348 1460 +986 1350 1468 +989 1565 1572 +994 1455 1571 +902 2165 2171 +904 2284 2285 +905 2277 2284 +907 2279 2282 +908 6191 6306 +910 2164 2165 +910 2285 2399 +912 1933 2048 +912 2400 2513 +914 2282 2398 +915 2163 2168 +916 2162 2164 +918 2033 2036 +920 2274 2276 +921 2401 2513 +923 2166 2171 +923 2164 2274 +925 1915 1916 +925 2274 2279 +926 2289 2290 +928 2056 2166 +929 1916 2031 +929 5712 5713 +929 2156 2158 +929 2158 2276 +931 2151 2156 +931 2279 2281 +932 2151 2158 +933 2030 2036 +935 2285 2398 +936 2162 2168 +936 2168 2170 +938 2165 2168 +940 2513 2518 +941 2399 2404 +949 1821 1932 +949 2274 2275 +949 2518 2520 +954 2056 2173 +957 2166 2168 +958 1821 1939 +958 5711 5712 +958 2274 2282 +959 2520 6191 +960 2399 2405 +961 2281 2398 +964 1932 1939 +964 1933 1939 +965 2170 2280 +967 2151 2153 +969 2168 2171 +969 2171 2173 +969 2512 2513 +970 2396 2398 +970 2521 2631 +971 1933 2049 +974 5712 5832 +974 2151 2152 +974 5832 5833 +977 2158 2268 +977 6192 6306 +985 2519 2521 +987 2289 5832 +990 2035 2153 +991 2281 2390 +995 5829 5833 +996 5712 5831 +997 2512 2514 +999 2172 2173 +904 5123 5242 +904 5252 5253 +904 5250 5252 +905 5245 5248 +906 5376 5379 +911 5245 5253 +912 5501 5502 +913 5245 5252 +913 5371 5372 +916 5121 5124 +917 5113 5121 +919 5118 5124 +920 5252 5256 +921 5130 5245 +922 5246 5250 +925 5367 5369 +926 5120 5121 +926 5245 5246 +926 5371 5374 +929 5123 5124 +935 5367 5368 +938 5363 5482 +939 5119 5124 +943 5132 5245 +944 5126 5130 +944 5256 5371 +945 5382 5499 +946 5363 5369 +948 5126 5247 +948 5502 5620 +953 5119 5239 +956 5117 5230 +956 5362 5368 +956 5499 5502 +957 5232 5350 +960 4995 5107 +961 5502 5619 +963 5001 5113 +963 5119 5120 +965 5118 5233 +965 5378 5381 +968 5371 5379 +971 5126 5127 +972 5116 5123 +974 5378 5379 +992 5125 5126 +902 5737 5860 +904 5728 5729 +905 5726 5734 +906 5971 6094 +907 5723 5730 +908 5732 5852 +911 5831 5833 +912 5728 5734 +912 5852 5855 +915 5829 5830 +916 5974 5977 +921 5742 5855 +923 5833 5838 +925 5833 5956 +926 5953 5956 +926 6198 6318 +927 5620 5625 +927 5723 5843 +927 5953 5955 +929 5712 5713 +929 5857 5980 +930 5728 5730 +930 5974 5980 +930 6088 6094 +932 6085 6207 +933 5733 5734 +933 5961 6082 +934 6088 6207 +934 6085 6091 +935 5953 6076 +936 5965 6088 +937 5728 5731 +939 5833 5951 +939 6073 6075 +939 6198 6312 +940 5956 6076 +944 6088 6091 +946 5726 5731 +946 5733 5737 +948 5502 5620 +949 5621 5622 +949 5831 5838 +950 5857 5860 +951 5724 5843 +951 6192 6312 +952 5727 5731 +952 5959 5962 +954 5852 5860 +955 6080 6081 +957 5718 5838 +957 5730 5736 +958 5711 5712 +959 5729 5730 +961 5502 5619 +964 5836 5838 +966 5739 5852 +966 5951 5953 +967 5855 5860 +967 6192 6309 +968 5620 5622 +970 5731 5846 +971 5958 6076 +974 5739 5860 +974 5832 5833 +974 5953 5958 +975 5724 5844 +975 5837 5838 +977 5725 5730 +977 6192 6306 +979 5737 5852 +980 5731 5733 +985 5730 5849 +986 5725 5843 +987 6199 6207 +987 2289 5832 +988 5837 5844 +989 5619 5625 +993 5843 5849 +993 6193 6194 +995 5730 5731 +995 5837 5839 +995 5829 5833 +996 5712 5831 +999 5619 5622 +1000 6199 6204 +1004 1460 1461 +1006 1465 1577 +1020 1580 1581 +1026 1574 1581 +1027 1454 1461 +1028 1344 1460 +1033 1579 1580 +1043 1574 1579 +1047 1461 1465 +1047 1465 1579 +1049 1350 1460 +1056 1350 1466 +1057 1681 1684 +1062 1799 1807 +1085 1343 1460 +1086 1574 1576 +1093 1466 4991 +1002 2401 2404 +1004 2170 2288 +1005 2507 2514 +1006 2404 2406 +1007 2172 5832 +1008 2173 2174 +1010 2033 2035 +1010 2405 2406 +1014 5950 5951 +1019 2521 6189 +1021 2521 6191 +1024 2035 2145 +1024 2510 2517 +1028 2396 2401 +1032 2028 2145 +1032 2515 2518 +1034 2162 2282 +1034 2512 2515 +1034 2518 2521 +1039 5829 5950 +1039 2510 2515 +1042 2028 2033 +1047 2167 2168 +1048 2401 2403 +1051 2507 2509 +1057 2509 2512 +1058 2028 2029 +1059 1916 2030 +1060 2401 2407 +1061 2396 2397 +1061 2506 2507 +1062 2174 2289 +1062 2406 2407 +1071 2504 2507 +1073 2517 2518 +1074 5832 5950 +1077 2507 2512 +1080 2274 2277 +1081 2028 2030 +1085 2511 2512 +1086 2403 2510 +1088 2394 2506 +1091 2395 2507 +1092 2162 2277 +1092 2516 2517 +1092 6190 6191 +1093 2166 2173 +1100 2516 2518 +1003 5003 5113 +1006 5252 5365 +1008 5118 5120 +1010 5119 5126 +1014 5251 5252 +1017 5378 5382 +1025 5258 5371 +1037 5126 5245 +1040 5377 5378 +1046 5362 5369 +1047 5498 5502 +1049 5118 5238 +1064 5235 5237 +1073 5382 5497 +1075 5118 5241 +1080 4997 5001 +1088 5497 5502 +1091 4995 4997 +1094 5497 5505 +1095 5236 5237 +1001 5730 5850 +1001 5848 5849 +1004 5730 5848 +1005 6087 6207 +1006 5729 5731 +1007 5739 5858 +1007 5835 5838 +1007 5972 5975 +1008 5622 5740 +1009 5731 5848 +1009 5739 5743 +1010 5727 5730 +1010 5731 5849 +1013 5733 5854 +1014 5950 5951 +1017 5725 5848 +1017 5846 5849 +1019 5731 5736 +1019 5848 5854 +1019 5973 6094 +1019 2521 6189 +1020 5842 5843 +1020 5973 5977 +1020 6087 6091 +1021 5731 5851 +1021 6086 6091 +1023 6086 6094 +1024 5852 5858 +1025 5725 5845 +1026 5849 5854 +1026 5849 5850 +1028 5852 5859 +1029 5736 5854 +1031 5731 5854 +1031 5842 5844 +1034 5849 5851 +1037 5730 5843 +1038 6200 6204 +1039 6198 6310 +1048 5836 5839 +1049 5731 5734 +1049 5842 5845 +1049 5733 5852 +1049 5972 5977 +1053 6068 6073 +1056 5736 5737 +1059 5736 5849 +1059 5737 5854 +1060 5839 5842 +1064 5610 5731 +1067 5727 5848 +1068 5729 5849 +1069 5857 5859 +1071 5841 5842 +1072 5972 5980 +1073 5834 5839 +1074 6200 6318 +1076 5859 5972 +1077 6199 6205 +1078 6194 6312 +1079 5738 5743 +1083 5835 5839 +1084 5972 5978 +1086 6075 6195 +1089 5972 5979 +1089 6193 6310 +1092 5618 5622 +1092 5857 5972 +1092 6190 6191 +1115 1349 1466 +1131 4991 4995 +1133 1574 1575 +1143 1354 4991 +1150 1350 4991 +1154 4990 4991 +1157 4991 4992 +1158 1908 1913 +1167 1905 1906 +1171 1349 4991 +1179 1349 4874 +1180 1905 1910 +1184 4874 4991 +1184 5107 5109 +1186 1349 4992 +1194 1905 1907 +1194 1905 1908 +1197 1574 1580 +1199 4991 5109 +1102 2277 2282 +1105 2167 2282 +1107 1912 2030 +1107 2174 2288 +1107 2400 2507 +1108 5951 5952 +1108 2394 2507 +1110 2510 2511 +1115 2403 2518 +1119 1913 2030 +1120 2174 5950 +1120 2405 2519 +1121 2516 2521 +1122 2041 2159 +1126 5829 5948 +1129 1913 1915 +1133 2407 2518 +1137 1912 2022 +1137 2151 2159 +1138 2166 2283 +1138 2521 6188 +1146 6069 6073 +1152 1910 1912 +1158 1908 1913 +1165 6188 6306 +1167 1905 1906 +1168 1910 1913 +1180 1905 1910 +1181 2407 2519 +1181 6069 6187 +1186 2045 2159 +1187 2174 2286 +1188 2504 2511 +1192 2628 6188 +1194 1905 1907 +1198 2519 6072 +1200 1899 1906 +1200 2039 2159 +1113 5230 5235 +1114 5502 5617 +1117 4996 4997 +1130 5236 5238 +1131 4991 4995 +1136 5249 5368 +1138 5247 5250 +1154 4990 4991 +1155 5384 5497 +1156 5617 5622 +1166 4997 4998 +1171 5250 5367 +1184 5107 5109 +1184 5236 5243 +1185 5617 5625 +1199 5118 5236 +1103 6192 6304 +1108 5951 5952 +1109 6194 6310 +1114 6070 6071 +1114 6070 6076 +1115 5834 5841 +1115 6087 6205 +1119 5972 6092 +1122 5840 5842 +1124 5972 5974 +1126 5829 5948 +1126 5973 6092 +1128 5745 5858 +1130 5725 5840 +1135 5622 5738 +1145 5855 5857 +1146 6069 6073 +1153 5739 5745 +1153 5853 5972 +1156 5617 5622 +1157 6200 6310 +1159 5973 6093 +1160 6086 6093 +1165 5855 5856 +1167 5727 5846 +1174 5738 5745 +1181 6069 6187 +1185 5617 5625 +1186 6070 6073 +1188 5738 5746 +1198 2519 6072 +1200 5721 5840 +1200 5835 5954 +1205 1349 1354 +1214 1809 1920 +1217 1240 1349 +1229 1792 1907 +1229 1792 1908 +1235 1686 1796 +1236 1804 1809 +1244 5109 5112 +1245 1788 1907 +1246 5109 5110 +1246 1809 1925 +1251 1809 1926 +1253 1788 1899 +1254 1350 1354 +1254 1925 1926 +1256 1791 1792 +1278 1348 1350 +1280 1680 1797 +1280 1790 1792 +1288 1680 1796 +1290 1788 1791 +1300 1349 1350 +1205 6188 6304 +1208 2174 5832 +1211 2519 6189 +1214 1809 1920 +1215 2041 2045 +1229 1792 1907 +1243 1926 1927 +1245 1788 1907 +1251 1809 1926 +1253 1788 1899 +1254 1925 1926 +1258 5832 5838 +1259 2042 2045 +1262 2167 2283 +1263 2039 2044 +1267 2040 2041 +1274 1927 1928 +1278 2282 2283 +1282 2166 2167 +1215 5617 5624 +1228 5504 5617 +1231 5236 5241 +1243 5250 5365 +1244 5109 5112 +1246 5109 5110 +1268 5497 5504 +1205 6188 6304 +1211 2519 6189 +1212 6194 6304 +1214 5624 5738 +1215 5617 5624 +1224 6189 6191 +1228 6194 6311 +1258 5832 5838 +1259 6191 6192 +1261 5958 5959 +1269 5726 5728 +1276 6199 6206 +1301 1681 1796 +1305 1790 1795 +1315 1680 1795 +1319 1343 1350 +1323 1681 1795 +1329 1782 1899 +1333 1350 1351 +1354 1789 1795 +1354 1789 1792 +1354 5110 5111 +1355 1675 1795 +1359 1786 1788 +1367 1675 1792 +1372 1787 1790 +1378 1786 1899 +1380 1786 1907 +1390 1782 1893 +1393 1788 1789 +1306 1924 1928 +1309 2519 6191 +1310 1928 2043 +1312 5832 5951 +1313 2165 2167 +1320 2162 2167 +1321 1928 2042 +1329 1782 1899 +1378 1786 1899 +1380 1786 1907 +1316 5111 5112 +1354 5110 5111 +1382 5501 5619 +1384 5501 5620 +1309 2519 6191 +1312 5832 5951 +1317 6200 6316 +1338 5733 5846 +1364 5606 5726 +1368 5619 5620 +1372 5620 5621 +1378 5614 5620 +1382 5501 5619 +1384 5501 5620 +1396 5619 5621 +1403 1782 1901 +1405 1677 1681 +1410 1804 1920 +1415 1787 1789 +1427 1677 1678 +1445 1675 1677 +1447 1787 1788 +1450 5111 5230 +1451 1675 1787 +1472 1671 1787 +1477 1670 1677 +1495 1462 1463 +1499 1469 5110 +1410 1804 1920 +1416 2279 2284 +1425 2044 2159 +1445 2284 2393 +1458 2516 6187 +1472 2031 2038 +1484 2284 2398 +1486 2032 2038 +1488 2042 2043 +1495 1927 2043 +1404 5368 5370 +1430 5006 5116 +1446 5116 5121 +1450 5111 5230 +1479 4999 5116 +1489 5129 5248 +1499 1469 5110 +1416 5621 5740 +1420 5614 5621 +1435 5616 5621 +1439 5733 5853 +1458 2516 6187 +1516 1347 1463 +1520 1781 1788 +1557 1338 1448 +1558 1348 1463 +1580 1560 1678 +1593 1454 1455 +1594 1782 1788 +1598 1564 1678 +1504 2398 2399 +1510 2038 2148 +1512 2033 2038 +1512 6069 6189 +1516 2393 2399 +1521 2284 2399 +1543 2033 2153 +1556 2037 2044 +1567 2038 2154 +1568 2038 2153 +1598 2042 2044 +1598 2504 2509 +1508 5000 5116 +1516 5129 5130 +1530 5127 5130 +1538 5001 5116 +1550 4880 4996 +1567 5128 5129 +1568 5128 5135 +1574 5128 5130 +1589 5009 5125 +1512 6069 6189 +1574 6072 6073 +1606 1459 1462 +1610 1353 1463 +1612 1558 1560 +1618 1553 1670 +1626 1679 1684 +1630 1448 1456 +1631 1684 1686 +1635 1553 1554 +1637 1455 1456 +1642 1553 1558 +1644 1554 1664 +1645 1558 1561 +1654 1557 1673 +1661 1439 1446 +1661 1440 1446 +1664 1440 1556 +1666 1455 1459 +1669 1547 1548 +1671 1553 1555 +1675 1556 1557 +1676 1680 1790 +1678 1673 1674 +1680 1554 1555 +1684 1437 1547 +1685 1564 1679 +1690 1331 1332 +1690 1555 1558 +1690 1679 1685 +1694 1453 1456 +1699 1563 1564 +1620 2275 2390 +1630 2390 2391 +1630 2518 2519 +1630 2506 2509 +1631 2275 2279 +1632 2511 2616 +1637 2390 2392 +1637 2399 2400 +1638 2275 2391 +1640 2397 2504 +1647 2262 2269 +1648 2384 2391 +1649 2505 2509 +1662 2276 2279 +1662 2504 2512 +1664 2029 2030 +1675 2279 2392 +1677 2395 2506 +1677 2505 2616 +1678 2406 2519 +1681 2392 2395 +1683 2263 2378 +1686 2278 2279 +1693 2391 2395 +1698 2506 2508 +1699 2504 2616 +1700 2510 2518 +1603 5121 5123 +1604 5125 5127 +1620 5013 5125 +1628 5009 5013 +1633 5251 5258 +1650 5008 5009 +1655 5010 5013 +1660 5127 5128 +1660 5256 5374 +1669 5122 5128 +1670 5256 5379 +1672 5013 5127 +1673 5008 5010 +1676 5255 5374 +1678 5256 5261 +1679 5012 5128 +1680 4892 5008 +1682 5138 5257 +1682 5255 5261 +1684 5258 5379 +1691 5377 5382 +1693 5254 5255 +1694 5012 5127 +1697 5258 5377 +1700 5254 5256 +1607 6071 6072 +1702 1561 1563 +1704 1569 1679 +1709 1554 1672 +1710 1336 1338 +1715 1437 1555 +1717 1563 1569 +1719 1672 1673 +1720 1556 1561 +1720 1557 1558 +1722 1440 1441 +1723 1441 1555 +1723 1547 1554 +1723 1552 1664 +1724 1329 1445 +1726 1439 1441 +1734 1563 1679 +1741 1439 1444 +1742 1674 1675 +1744 1675 1790 +1745 1441 1556 +1747 1681 1686 +1748 1435 1441 +1749 1435 1437 +1751 1569 1686 +1755 1217 1218 +1756 1329 1444 +1763 1679 1686 +1766 1329 1335 +1770 1438 1441 +1771 1224 1331 +1773 1562 1563 +1776 1670 1671 +1781 1453 1459 +1783 1331 1338 +1791 1437 1438 +1792 1430 1547 +1793 1555 1556 +1794 1436 1438 +1800 1459 1573 +1800 1563 1678 +1701 2394 2395 +1701 2385 2498 +1701 2492 2499 +1703 2030 2033 +1703 2610 2616 +1705 2278 2394 +1710 2027 2029 +1711 2023 2139 +1711 2512 2518 +1714 2506 2618 +1714 2505 2618 +1715 2391 2504 +1715 2407 6189 +1719 2389 2391 +1719 2501 2508 +1722 2250 2257 +1730 2610 2617 +1736 2385 2500 +1737 2504 2506 +1739 2503 2508 +1740 2399 2406 +1742 2389 2506 +1743 2389 2501 +1744 2401 2518 +1745 2401 2406 +1746 2031 2033 +1748 2610 2618 +1752 2503 2618 +1753 2389 2498 +1756 2400 2406 +1757 2391 2392 +1757 2493 2604 +1758 2612 2618 +1759 2389 2500 +1761 2386 2500 +1762 2492 2500 +1762 2504 2505 +1762 2503 2613 +1763 2610 2615 +1764 2615 2618 +1765 2140 2256 +1766 2388 2389 +1767 2611 2721 +1771 2503 2615 +1772 2383 2500 +1772 2502 2508 +1779 2399 2401 +1781 2032 2033 +1784 2492 2497 +1786 2611 2615 +1787 2027 2147 +1787 2387 2388 +1787 2383 2389 +1789 2493 2497 +1790 2502 2613 +1791 2612 2615 +1792 2027 2139 +1792 2386 2388 +1793 2392 2393 +1797 2612 2613 +1800 2391 2506 +1703 5258 5262 +1704 5251 5259 +1710 4896 5008 +1714 5138 5259 +1714 5253 5254 +1715 5377 5384 +1718 5256 5259 +1719 5012 5129 +1720 4891 4898 +1722 5258 5259 +1727 5258 5264 +1730 5010 5011 +1731 5377 5385 +1732 5012 5013 +1733 4896 4898 +1736 5264 5385 +1738 5264 5383 +1739 5011 5012 +1743 5136 5259 +1744 5257 5264 +1747 4896 5016 +1752 5257 5258 +1757 5136 5253 +1758 5136 5254 +1761 5263 5270 +1762 5135 5248 +1765 5135 5253 +1769 5135 5254 +1774 5138 5142 +1774 5251 5256 +1776 5262 5385 +1777 5136 5141 +1780 5000 5001 +1788 5137 5257 +1790 5136 5142 +1795 4898 4899 +1715 2407 6189 +1736 6072 6189 +1756 5957 5958 +1761 6072 6190 +1801 1336 1456 +1811 1430 1431 +1814 1670 1672 +1816 1430 1437 +1816 1554 1558 +1818 1458 1459 +1822 1670 1675 +1823 1430 1435 +1829 1110 1217 +1829 1324 1444 +1829 1457 1458 +1834 1672 1675 +1842 1558 1672 +1846 1456 1459 +1849 1552 1554 +1851 1324 1436 +1854 1552 1558 +1861 1435 1438 +1863 1324 1326 +1866 1675 1789 +1874 1454 1459 +1877 880 887 +1877 1320 1436 +1877 1446 1563 +1878 1671 1675 +1881 1457 1459 +1887 1554 1670 +1888 862 869 +1888 874 881 +1888 1329 1330 +1892 1671 1789 +1893 1304 1311 +1894 1314 1424 +1894 1671 1672 +1897 868 875 +1899 1671 1674 +1802 2721 2723 +1807 2721 2722 +1808 2715 2722 +1817 2383 2386 +1818 2615 2723 +1819 2492 2495 +1821 2032 2147 +1822 2133 2140 +1822 2383 2385 +1825 2406 2518 +1826 2383 2388 +1826 2385 2492 +1827 2381 2386 +1829 2728 2829 +1837 2032 2148 +1837 2272 2381 +1841 2378 2383 +1842 2614 2615 +1844 2721 2726 +1851 2267 2383 +1852 2267 2381 +1853 2244 2251 +1858 2391 2498 +1859 2278 2393 +1862 2726 2728 +1871 2378 2379 +1871 2395 2504 +1875 2134 2250 +1884 2835 2836 +1885 2378 2380 +1886 2267 2380 +1891 2726 2729 +1894 2263 2380 +1898 2612 2614 +1900 2266 2267 +1803 4896 5010 +1806 5130 5135 +1809 5256 5258 +1835 5137 5144 +1836 5269 5270 +1837 5134 5141 +1842 5134 5136 +1844 5137 5142 +1845 5139 5141 +1847 5139 5142 +1848 5027 5144 +1851 5130 5133 +1852 4777 4784 +1853 5250 5373 +1860 4896 5011 +1860 5027 5143 +1863 5137 5140 +1864 5139 5140 +1866 5137 5145 +1877 5027 5145 +1880 5135 5136 +1883 5377 5379 +1886 5026 5033 +1888 4784 4891 +1895 5025 5145 +1898 4891 4899 +1901 1327 1444 +1902 1197 1310 +1902 1670 1678 +1904 1446 1556 +1906 1675 1678 +1908 780 886 +1910 1319 1320 +1913 1673 1675 +1916 1331 1339 +1917 863 971 +1919 683 785 +1920 868 869 +1921 1319 1324 +1921 1678 1680 +1921 1669 1671 +1925 1675 1680 +1928 880 881 +1928 1324 1327 +1935 1671 1781 +1936 1082 1089 +1938 1664 1671 +1941 779 786 +1941 1196 1203 +1942 867 869 +1942 868 870 +1944 1327 1329 +1946 880 882 +1946 1558 1678 +1951 965 972 +1951 1305 1421 +1951 1680 1681 +1955 879 881 +1956 768 874 +1957 864 869 +1957 1321 1327 +1961 1083 1196 +1964 689 785 +1965 1322 1327 +1966 874 876 +1966 1212 1319 +1966 1319 1321 +1969 874 875 +1971 880 885 +1974 780 885 +1975 873 875 +1978 864 971 +1979 689 791 +1983 978 1088 +1983 1205 1206 +1983 1210 1324 +1985 763 870 +1985 1328 1329 +1985 1673 1678 +1986 1415 1422 +1989 1103 1104 +1989 1679 1680 +1995 1210 1212 +1997 780 781 +1997 1304 1309 +1998 970 971 +1999 779 781 +2000 873 876 +1919 2265 2266 +1923 2516 6189 +1927 2931 2932 +1930 2611 2614 +1931 2808 2809 +1932 2263 2372 +1934 2264 2266 +1934 2815 2913 +1937 2261 2263 +1937 2829 2837 +1939 2251 2366 +1944 2259 2265 +1945 2472 2577 +1949 2465 2466 +1949 2502 2607 +1952 2261 2264 +1952 2925 2926 +1954 2352 2459 +1956 2583 2584 +1957 2821 2919 +1958 2257 2372 +1962 2345 2346 +1962 2695 2701 +1963 2257 2373 +1964 2229 2230 +1965 2701 2802 +1965 2829 2836 +1969 2257 2261 +1970 2810 2913 +1972 2256 2261 +1973 2366 2372 +1975 1995 1996 +1975 2144 2261 +1976 2919 2920 +1977 2694 2695 +1977 2726 2837 +1979 2809 2810 +1979 3034 3125 +1982 2257 2374 +1985 2113 2229 +1987 2924 2926 +1989 2257 2366 +1991 2149 2265 +1992 1879 1995 +1992 2230 2345 +1992 2467 2472 +1992 2807 2809 +1993 2913 2918 +1993 3131 3132 +1994 2112 2113 +1994 2577 2582 +1999 2465 2467 +1904 4782 4784 +1907 5031 5143 +1914 5025 5140 +1917 4896 4899 +1917 4896 4901 +1920 5024 5134 +1922 5027 5031 +1923 4784 4785 +1927 4782 4899 +1929 4465 4564 +1931 5024 5139 +1933 4805 4912 +1944 5033 5143 +1948 4452 4453 +1948 5031 5145 +1950 4916 5032 +1951 5024 5141 +1953 4459 4558 +1953 5019 5024 +1957 5033 5034 +1961 5025 5030 +1962 4895 5011 +1964 5024 5140 +1965 4704 4705 +1971 4471 4570 +1974 4894 4900 +1981 4440 4441 +1982 4894 4901 +1989 4680 4686 +1995 4894 4899 +1995 5032 5033 +1998 5024 5030 +2000 4337 4434 +1913 5956 5959 +1923 2516 6189 +1926 5957 5959 +1995 6080 6082 +1999 5965 6082 +2004 684 785 +2004 867 870 +2005 1197 1309 +2011 695 791 +2011 4330 4331 +2012 1643 1650 +2013 1199 1205 +2014 1210 1321 +2015 1532 1539 +2016 1650 1760 +2017 1197 1198 +2017 1206 1319 +2018 970 972 +2018 1533 1649 +2018 1878 1879 +2019 879 882 +2022 689 790 +2022 966 1076 +2023 688 695 +2024 694 4331 +2024 683 784 +2024 876 879 +2026 775 885 +2026 867 976 +2029 1760 1767 +2031 1091 1092 +2034 1210 1327 +2035 870 873 +2035 1761 1878 +2037 690 791 +2037 1206 1210 +2037 1415 1420 +2041 779 784 +2041 1210 1216 +2042 864 973 +2043 778 885 +2043 1070 1077 +2043 1210 1322 +2046 694 695 +2046 1304 1306 +2047 967 972 +2048 865 870 +2050 1215 1322 +2051 878 879 +2051 1760 1765 +2052 970 973 +2052 1305 1306 +2052 1645 1650 +2053 1235 1236 +2054 864 976 +2055 694 696 +2055 1422 1532 +2055 1533 1534 +2059 1532 1537 +2059 1877 1878 +2060 778 781 +2060 1209 1210 +2060 1305 1420 +2062 693 695 +2062 1122 1235 +2063 1196 1197 +2064 1760 1878 +2065 678 784 +2066 1235 1237 +2066 1417 1422 +2067 684 787 +2067 967 1076 +2068 1532 1649 +2069 689 695 +2071 1236 1240 +2071 1532 1534 +2072 684 790 +2072 1417 1537 +2073 1098 1205 +2075 877 879 +2075 1192 1198 +2076 684 784 +2080 4329 4331 +2081 1235 1240 +2082 690 790 +2084 866 870 +2084 1648 1649 +2085 1529 1532 +2085 1648 1650 +2085 1761 1762 +2085 1762 1767 +2086 680 784 +2088 684 782 +2088 690 695 +2089 1531 1534 +2090 1192 1309 +2096 1417 1420 +2097 690 796 +2099 1300 1420 +2099 1534 1648 +2002 2464 2465 +2002 2611 2723 +2004 2259 2264 +2004 2802 2807 +2005 2694 2696 +2006 2695 2696 +2007 2467 2470 +2009 2918 2920 +2010 2693 2694 +2011 2258 2261 +2011 2347 2352 +2011 2696 2802 +2012 2344 2345 +2013 2230 2231 +2013 2352 2464 +2014 2696 2701 +2014 2926 2927 +2015 2584 2688 +2016 3138 3225 +2017 1996 2112 +2017 2113 2114 +2017 2228 2229 +2018 1878 1879 +2018 2582 2584 +2019 2255 2366 +2020 2584 2694 +2020 2584 2585 +2022 2353 2464 +2027 2255 2257 +2028 2810 2912 +2029 1996 1997 +2030 2607 2612 +2031 2579 2582 +2032 2919 2926 +2036 1994 1995 +2036 2345 2347 +2038 2579 2585 +2039 2256 2259 +2039 2467 2582 +2041 2347 2353 +2042 2111 2112 +2046 2347 2350 +2046 2693 2695 +2050 2516 6188 +2051 2231 2344 +2052 2149 2259 +2054 2920 2921 +2055 2585 2693 +2057 1879 1880 +2059 1877 1878 +2061 2696 2804 +2062 2804 2807 +2064 2467 2469 +2065 2137 2247 +2065 2143 2149 +2065 2144 2259 +2066 1997 2111 +2068 2228 2231 +2069 2142 2149 +2070 2609 2612 +2070 2696 2801 +2073 2114 2228 +2074 2462 2467 +2079 2921 3021 +2081 1994 1997 +2082 2111 2114 +2083 1880 1994 +2085 2258 2260 +2086 1877 1880 +2092 2462 2464 +2094 2574 2582 +2096 2609 2611 +2098 2258 2259 +2001 4787 4894 +2005 5023 5025 +2011 4330 4331 +2014 4577 4680 +2015 4464 4465 +2019 5254 5374 +2020 5031 5033 +2023 5031 5151 +2025 4780 4781 +2029 4349 4446 +2034 5023 5024 +2035 4782 4787 +2039 5254 5261 +2040 4783 4785 +2041 4440 4447 +2041 5025 5028 +2043 4672 4783 +2051 4361 4458 +2055 4785 4788 +2060 4686 4687 +2061 4459 4564 +2063 5027 5028 +2066 4687 4693 +2066 5022 5023 +2073 5020 5028 +2089 4459 4563 +2091 5261 5374 +2092 5034 5037 +2094 4676 4783 +2094 5254 5259 +2096 4915 4922 +2099 4907 5017 +2100 4440 4442 +2012 5962 5964 +2042 5964 5965 +2049 5963 5964 +2050 2516 6188 +2102 1760 1762 +2102 1762 1877 +2104 1121 1122 +2104 1207 1210 +2105 693 696 +2105 1075 1076 +2105 1126 1235 +2106 1208 1215 +2107 1240 4874 +2108 1205 1207 +2109 967 1081 +2109 1645 1765 +2112 775 877 +2112 1648 1651 +2114 1195 1196 +2115 1300 1306 +2117 1195 1198 +2118 1759 1762 +2119 1192 1306 +2120 872 873 +2120 968 971 +2120 1096 1207 +2121 1417 1419 +2123 696 4329 +2125 866 976 +2125 1092 1207 +2125 1195 1201 +2125 1645 1651 +2128 690 788 +2129 1092 1199 +2129 1205 1208 +2129 1208 1209 +2130 1092 1205 +2130 1303 1306 +2131 1208 1210 +2132 686 790 +2133 686 782 +2133 871 876 +2133 1207 1208 +2134 1092 1096 +2144 1085 1199 +2147 968 973 +2149 1096 1205 +2152 1101 1214 +2152 1417 1529 +2153 1092 1093 +2154 1240 4875 +2155 1085 1086 +2156 4329 4332 +2159 1646 1648 +2162 975 1086 +2162 1090 1092 +2163 1208 1213 +2164 968 976 +2164 1095 1208 +2166 690 692 +2168 776 784 +2168 1085 1090 +2169 1095 1096 +2170 1530 1534 +2171 975 1079 +2171 981 1085 +2172 1086 1087 +2172 1529 1531 +2174 1122 1126 +2175 1205 1210 +2181 1090 1093 +2181 1100 1107 +2181 1647 1648 +2189 776 781 +2190 1354 4992 +2194 1758 1762 +2195 1010 4648 +2195 1645 1647 +2199 1085 1087 +2102 1762 1877 +2105 2227 2231 +2107 2142 2147 +2108 2250 2255 +2108 2360 2367 +2108 2693 2696 +2111 2142 2259 +2113 2231 2342 +2113 2366 2368 +2114 2349 2464 +2116 2915 2918 +2118 2692 2696 +2120 2226 2231 +2120 2347 2349 +2121 2110 2114 +2123 2342 2350 +2128 2255 2258 +2128 2367 2368 +2131 2226 2227 +2132 2349 2456 +2132 2921 3020 +2133 2227 2342 +2133 2342 2347 +2134 1875 1877 +2134 2342 2349 +2134 2806 2807 +2135 2144 2149 +2135 2806 2810 +2136 2349 2350 +2136 2604 2609 +2137 2691 2693 +2138 2932 3027 +2139 2579 2581 +2142 2349 2353 +2143 1992 1994 +2143 2497 2607 +2145 2114 2226 +2146 1993 1997 +2146 2144 2264 +2148 2581 2693 +2152 2927 3027 +2154 2226 2234 +2157 2462 2463 +2159 2361 2474 +2159 2927 3026 +2160 2696 2799 +2161 2144 2146 +2161 2799 2807 +2162 2109 2114 +2162 2144 2147 +2162 3027 3032 +2165 2109 2226 +2165 2143 2144 +2166 2611 2715 +2169 2116 2226 +2169 2349 2462 +2169 2709 2716 +2170 2348 2349 +2172 2469 2574 +2174 2144 2256 +2175 2253 2258 +2175 2932 3034 +2176 1876 1880 +2178 2226 2233 +2179 3026 3027 +2180 2921 2926 +2182 2256 2258 +2182 3027 3034 +2183 2574 2581 +2185 2365 2367 +2185 2926 3027 +2187 2109 2110 +2189 2139 2144 +2189 2250 2251 +2190 3027 3029 +2192 2139 2142 +2192 2146 2256 +2195 2109 2111 +2195 2605 2715 +2197 2257 2258 +2104 4452 4454 +2106 4669 4774 +2107 4330 4332 +2108 4343 4446 +2108 4907 5022 +2110 5026 5027 +2117 4808 4921 +2118 5133 5136 +2123 5132 5133 +2127 4902 4907 +2128 4785 4787 +2131 4908 5022 +2140 4344 4446 +2140 4780 4787 +2141 4678 4789 +2147 4908 5020 +2149 5374 5379 +2150 4662 4663 +2154 4337 4439 +2154 4900 4901 +2156 4329 4332 +2156 4451 4453 +2156 4678 4684 +2157 5019 5136 +2162 4439 4440 +2163 4332 4337 +2165 4904 4908 +2168 4338 4439 +2169 4335 4439 +2169 4446 4451 +2169 4910 5026 +2170 4337 4440 +2173 4905 5022 +2174 4332 4335 +2175 4454 4459 +2176 4337 4338 +2178 4786 4787 +2182 4900 4902 +2182 4910 5028 +2185 4780 4782 +2190 4902 4905 +2191 4335 4337 +2192 4343 4445 +2193 4437 4440 +2194 4440 4445 +2198 5136 5139 +2109 5965 6083 +2110 5963 6083 +2129 5970 6083 +2140 5979 6092 +2143 5751 5864 +2147 6205 6206 +2150 5741 5742 +2159 6098 6099 +2160 5873 5880 +2169 5744 5745 +2174 5977 6092 +2174 6120 6238 +2177 6202 6203 +2180 6098 6217 +2187 6202 6209 +2188 5870 5871 +2191 5622 5743 +2192 6089 6090 +2192 6092 6100 +2192 6452 6459 +2195 5977 6097 +2198 5745 5746 +2198 6099 6100 +2198 6090 6202 +2200 5743 5746 +2200 6105 6217 +2201 1085 1092 +2201 1240 4992 +2202 1412 1420 +2203 1080 1187 +2208 777 885 +2209 975 1087 +2210 1083 1084 +2211 968 969 +2212 691 696 +2223 1456 1458 +2225 1757 1765 +2226 777 781 +2234 1302 1420 +2239 1084 1195 +2240 777 883 +2252 777 877 +2256 1302 1306 +2256 1757 1762 +2257 1530 1646 +2259 1082 1087 +2260 969 973 +2261 865 872 +2262 686 788 +2264 979 1087 +2264 1529 1530 +2270 969 970 +2271 1758 1875 +2272 692 693 +2273 1640 1646 +2280 1082 1084 +2289 978 1082 +2294 776 783 +2295 871 872 +2202 2605 2609 +2203 2810 2910 +2207 2226 2228 +2208 2257 2263 +2212 2256 2264 +2215 2606 2609 +2219 2143 2258 +2220 2365 2474 +2224 1993 2109 +2225 2910 2918 +2225 3027 3028 +2228 2142 2144 +2233 2251 2252 +2236 2252 2255 +2236 2605 2717 +2238 2031 2032 +2240 2139 2140 +2248 2917 2918 +2249 2139 2141 +2251 2917 2921 +2254 2709 2717 +2258 2025 2031 +2258 2581 2685 +2261 1915 2031 +2266 1875 1876 +2271 1758 1875 +2274 2251 2255 +2275 2805 2806 +2276 2474 2476 +2276 2691 2692 +2280 2921 3018 +2283 2368 2371 +2287 2030 2031 +2288 2921 3026 +2289 1992 1993 +2294 2468 2475 +2294 2698 2799 +2295 1876 1992 +2202 4336 4337 +2206 4338 4445 +2206 4904 4905 +2210 4678 4791 +2211 4676 4791 +2212 4678 4783 +2213 4344 4445 +2216 4899 4901 +2224 5374 5381 +2228 4897 4905 +2229 4678 4682 +2230 4343 4440 +2233 4338 4440 +2235 4344 4448 +2237 4779 4780 +2237 4788 4902 +2241 4330 4337 +2247 4899 4902 +2249 4454 4457 +2253 4336 4440 +2253 4677 4684 +2258 4338 4437 +2260 4448 4451 +2266 4327 4332 +2266 4451 4454 +2266 4669 4779 +2274 4450 4451 +2275 4903 5020 +2281 4443 4451 +2282 4785 4786 +2284 4677 4682 +2291 4910 5020 +2296 5635 5636 +2202 5977 6094 +2202 6440 6447 +2203 5976 6089 +2204 5757 5870 +2205 6446 6453 +2209 6202 6207 +2212 5975 5976 +2212 6452 6453 +2214 6097 6100 +2220 6548 6555 +2221 6099 6103 +2224 6451 6453 +2225 5741 5743 +2226 5744 5749 +2232 6316 6317 +2234 5746 5749 +2235 6103 6217 +2235 6202 6204 +2240 5744 5751 +2240 5749 5752 +2241 6452 6454 +2244 5746 5748 +2247 6232 6239 +2248 6316 6318 +2250 5747 5749 +2255 5741 5748 +2258 5751 5752 +2258 6448 6453 +2260 6344 6458 +2261 6103 6219 +2265 6217 6225 +2266 5766 5885 +2267 6219 6225 +2268 5750 5751 +2268 6005 6012 +2271 5627 5748 +2275 6343 6458 +2277 6094 6095 +2281 5747 5748 +2282 5630 5750 +2283 6095 6097 +2283 6080 6085 +2289 6223 6224 +2290 6224 6225 +2290 6343 6350 +2293 5892 6005 +2294 5885 5886 +2296 5635 5636 +2296 6119 6126 +2296 6343 6349 +2298 6653 6660 +2300 5750 5755 +2301 4762 4763 +2302 1081 1084 +2302 1640 1647 +2305 1757 1764 +2307 1647 1757 +2312 973 975 +2318 866 974 +2318 1126 1237 +2328 1193 1195 +2330 680 782 +2333 685 692 +2334 1301 1306 +2338 1301 1309 +2345 4328 4329 +2346 771 877 +2347 973 976 +2349 973 1087 +2351 1007 1014 +2352 691 692 +2352 1080 1084 +2360 1124 4651 +2363 1007 1008 +2363 1096 1213 +2364 973 978 +2365 1194 1195 +2367 1192 1194 +2374 971 972 +2380 1101 1213 +2383 1007 1009 +2386 971 973 +2391 1013 1014 +2394 1011 1121 +2398 691 4328 +2400 686 692 +2305 2812 2910 +2309 2365 2482 +2310 2495 2502 +2311 2143 2259 +2312 2255 2368 +2331 2586 2593 +2353 2254 2255 +2358 2368 2369 +2361 2513 2520 +2363 2916 2917 +2370 2253 2255 +2374 2253 2260 +2374 2917 2923 +2393 2110 2226 +2398 2513 2625 +2301 4762 4763 +2303 4903 4904 +2306 4344 4443 +2310 4340 4445 +2310 5629 5636 +2313 4332 4334 +2324 4460 4564 +2326 4334 4439 +2326 5141 5254 +2329 4683 4690 +2334 4768 4769 +2340 4899 4900 +2345 4328 4329 +2347 4568 4677 +2347 4657 4762 +2348 4897 4902 +2357 4775 4882 +2368 4460 4566 +2369 5638 5645 +2371 4460 4563 +2375 4897 4898 +2376 4679 4682 +2376 4676 4786 +2378 4779 4781 +2386 4465 4570 +2386 4664 4774 +2394 4327 4328 +2397 4465 4569 +2398 691 4328 +2399 4449 4454 +2302 5752 5755 +2303 6097 6102 +2306 5752 5754 +2306 6090 6207 +2309 5747 5754 +2310 5629 5636 +2310 6222 6225 +2310 6233 6349 +2313 6345 6458 +2315 6006 6125 +2315 6090 6208 +2316 6345 6350 +2319 6224 6228 +2323 5645 5759 +2323 5757 5878 +2324 6094 6096 +2325 6653 6654 +2328 6090 6091 +2330 6102 6219 +2341 5976 6095 +2343 6334 6335 +2348 5752 5753 +2350 5765 5766 +2352 6219 6220 +2353 6348 6350 +2355 6348 6349 +2359 5755 5758 +2362 6457 6458 +2365 5755 5757 +2365 6234 6349 +2366 6340 6341 +2367 6457 6459 +2369 5638 5645 +2370 6224 6340 +2376 6234 6239 +2379 5884 5885 +2386 6096 6097 +2391 6340 6342 +2396 6237 6239 +2397 5640 5645 +2409 1080 1193 +2426 1079 1084 +2433 1121 1123 +2434 1079 1087 +2437 4650 4651 +2451 1413 1529 +2461 1192 1301 +2469 1079 1086 +2469 1641 1647 +2476 1412 1419 +2494 1354 4994 +2496 968 975 +2422 2917 3018 +2425 2474 2475 +2426 2254 2369 +2459 2253 2369 +2467 2368 2370 +2467 2513 2514 +2473 2233 2342 +2486 2365 2370 +2404 4774 4779 +2412 4782 4785 +2413 4460 4569 +2421 4897 4904 +2425 4346 4443 +2426 4466 4570 +2427 5525 5638 +2429 4776 4779 +2434 4779 4782 +2437 4650 4651 +2437 4663 4774 +2440 4327 4431 +2443 4340 4443 +2447 5635 5642 +2448 4768 4770 +2449 4683 4684 +2452 4684 4685 +2455 5635 5640 +2459 4466 4572 +2461 4460 4561 +2464 4773 4779 +2465 4683 4688 +2471 4768 4775 +2477 4664 4773 +2478 4778 4779 +2481 4466 4569 +2485 4663 4773 +2489 4658 4664 +2491 4334 4431 +2492 4663 4664 +2493 4340 4437 +2493 4544 4653 +2494 4462 4569 +2497 4682 4685 +2500 4658 4773 +2405 6218 6328 +2406 6228 6342 +2408 6237 6238 +2408 6345 6463 +2409 6220 6222 +2423 6097 6214 +2423 6121 6238 +2424 6121 6126 +2426 6348 6463 +2438 5766 5767 +2438 6340 6345 +2441 5876 5883 +2442 5976 5977 +2444 6457 6463 +2447 5635 5642 +2455 5635 5640 +2462 6089 6094 +2469 5636 5637 +2472 6455 6456 +2477 5633 5753 +2480 6234 6354 +2485 6228 6345 +2485 6340 6347 +2487 6005 6010 +2490 6124 6126 +2520 1123 1126 +2553 1187 1194 +2561 1010 4538 +2569 1188 1194 +2579 1010 4649 +2588 1301 1303 +2589 1015 4648 +2589 1188 1301 +2591 1302 1418 +2600 978 1087 +2502 2476 2479 +2507 2475 2476 +2519 2476 2588 +2530 2473 2475 +2534 2025 2032 +2537 2365 2477 +2543 2469 2580 +2549 2030 2032 +2557 2473 2580 +2558 2476 2477 +2572 2027 2032 +2575 3018 3020 +2578 2473 2588 +2579 2607 2613 +2584 2032 2142 +2590 2580 2582 +2593 2476 2478 +2503 4567 4569 +2507 4456 4563 +2508 4334 4437 +2512 4462 4567 +2512 4661 4663 +2515 4570 4575 +2516 4771 4779 +2517 4567 4570 +2519 4663 4768 +2519 4664 4771 +2520 4657 4767 +2522 4462 4568 +2524 4561 4569 +2524 4685 4688 +2524 4777 4782 +2531 4767 4769 +2531 4777 4778 +2532 4572 4575 +2537 4660 4664 +2544 4575 4577 +2547 4658 4768 +2552 4657 4768 +2554 4567 4572 +2556 4454 4456 +2556 4658 4661 +2561 1010 4538 +2564 4685 4687 +2569 4660 4773 +2571 4676 4681 +2585 4666 4778 +2589 4666 4771 +2596 4658 4767 +2598 4686 4688 +2599 4780 4786 +2501 6005 6007 +2505 5876 5881 +2507 5882 5883 +2517 5886 5887 +2518 6124 6125 +2519 6006 6007 +2520 6348 6354 +2524 5761 5878 +2524 5876 5878 +2541 5976 6094 +2546 6348 6351 +2554 5742 5861 +2555 6237 6240 +2557 5883 5884 +2568 5742 5743 +2570 5753 5755 +2573 5767 5885 +2575 6347 6348 +2578 6004 6007 +2581 5887 5892 +2583 5881 5884 +2583 6446 6447 +2599 6001 6007 +2605 1096 1208 +2613 1015 1121 +2615 1101 1208 +2628 1015 4761 +2628 1093 1095 +2646 1908 1915 +2654 1240 4877 +2659 1301 1302 +2667 1301 1418 +2688 1295 1301 +2696 1085 1088 +2607 2254 2370 +2617 2469 2582 +2619 2613 2614 +2621 2581 2582 +2646 1908 1915 +2655 2473 2478 +2655 2615 2724 +2662 1909 1915 +2665 2473 2583 +2676 2582 2585 +2685 2364 2477 +2690 1915 2025 +2700 2363 2370 +2611 4655 4767 +2616 4572 4577 +2616 4679 4685 +2620 4449 4450 +2624 4683 4691 +2626 5522 5641 +2628 1015 4761 +2636 4576 4577 +2644 4455 4561 +2644 4570 4577 +2649 4680 4685 +2662 4462 4561 +2670 4573 4580 +2675 4652 4657 +2677 5521 5528 +2679 4658 4765 +2683 4659 4660 +2692 4686 4693 +2694 4675 4786 +2601 6124 6243 +2602 5885 5887 +2604 6124 6127 +2606 6121 6243 +2618 6457 6460 +2619 5887 6010 +2619 5889 6002 +2619 6085 6088 +2626 5522 5641 +2626 5755 5760 +2637 6345 6347 +2641 5753 5873 +2641 5760 5878 +2645 5883 5887 +2648 5753 5754 +2648 5887 6002 +2654 5767 5772 +2656 5887 5890 +2660 5887 5893 +2661 5767 5890 +2663 5765 5772 +2667 6102 6214 +2669 5887 6004 +2687 5651 5771 +2688 5761 5879 +2689 5760 5873 +2717 871 878 +2730 1352 4992 +2738 1015 4649 +2744 901 4538 +2752 906 4538 +2762 1012 4649 +2763 906 4649 +2768 1087 1088 +2769 1015 4651 +2797 1013 4649 +2797 1125 1126 +2704 2025 2030 +2705 1910 2030 +2710 1910 1915 +2745 2027 2030 +2750 1915 2030 +2751 2022 2030 +2752 2473 2582 +2762 2604 2605 +2718 4660 4661 +2720 4572 4574 +2720 4692 4693 +2722 4572 4685 +2723 4456 4555 +2727 4679 4681 +2728 4677 4685 +2736 4456 4561 +2739 4691 4693 +2744 901 4538 +2749 4567 4568 +2749 4688 4691 +2750 4674 4681 +2752 906 4538 +2753 4679 4680 +2756 4555 4561 +2784 4692 4694 +2785 4690 4691 +2791 4691 4694 +2705 6095 6096 +2712 6220 6221 +2715 5889 6010 +2719 5879 5884 +2723 6089 6096 +2723 6096 6102 +2724 5884 5886 +2725 5766 5879 +2737 6214 6220 +2740 6007 6124 +2745 5760 5879 +2752 5889 6008 +2756 6003 6007 +2763 5895 6008 +2763 6122 6124 +2765 6002 6007 +2780 6002 6010 +2799 5893 6008 +2817 901 4432 +2818 1013 1015 +2819 1013 4651 +2820 1238 4875 +2827 1124 4761 +2832 1124 1126 +2832 1126 1238 +2833 4541 4649 +2837 901 4539 +2839 1088 1090 +2847 1012 1013 +2849 906 4539 +2852 1238 4877 +2858 1352 4877 +2872 1238 4763 +2872 1352 4994 +2808 3012 3019 +2812 2471 2478 +2848 3020 3023 +2849 2472 2582 +2854 3019 3020 +2880 3017 3019 +2810 4692 4699 +2814 4677 4683 +2817 901 4432 +2823 4698 4699 +2827 1124 4761 +2832 4694 4697 +2833 4541 4649 +2835 4697 4699 +2848 4574 4677 +2865 4689 4694 +2868 4658 4660 +2873 4705 4810 +2885 4689 4690 +2898 4699 4700 +2811 5893 6010 +2813 5893 6013 +2818 6014 6015 +2842 6002 6009 +2847 5766 5886 +2868 5887 6005 +2870 6003 6122 +2881 6008 6016 +2908 794 4432 +2911 971 976 +2938 1124 4763 +2940 971 978 +2946 869 971 +2958 799 4432 +2969 869 978 +2982 869 976 +2988 794 4431 +2990 799 4539 +2901 2620 2724 +2918 2724 2729 +2934 2472 2583 +2903 4680 4682 +2904 4700 4810 +2906 4689 4696 +2908 794 4432 +2921 4571 4680 +2942 4700 4809 +2958 799 4432 +2966 4680 4687 +2980 4810 4815 +2984 4653 4660 +2988 794 4431 +2990 4572 4680 +2902 5892 6012 +2904 5904 6023 +2907 6015 6016 +2913 5892 6010 +2918 6235 6238 +2922 6123 6127 +2928 6013 6016 +2928 6304 6305 +2929 6017 6024 +2937 6122 6123 +2949 5893 6011 +2950 6002 6122 +2957 6123 6243 +2960 6021 6134 +2973 5892 6011 +2974 6235 6243 +2980 6014 6019 +2983 5891 6011 +2984 5892 5898 +2995 5892 5893 +2995 5898 6011 +2999 6455 6463 +3000 6347 6455 +3014 794 4328 +3039 794 4433 +3073 696 4328 +3090 1353 4994 +3092 906 4541 +3021 2724 2731 +3040 2692 2799 +3014 794 4328 +3021 4654 4765 +3039 794 4433 +3039 4816 4817 +3054 4817 4823 +3073 696 4328 +3075 4650 4652 +3079 4654 4658 +3080 4696 4697 +3092 906 4541 +3002 5891 5898 +3004 6235 6240 +3005 5893 6016 +3006 5891 5892 +3010 5893 5898 +3021 6011 6016 +3025 6016 6018 +3027 6016 6019 +3028 5778 5891 +3028 5885 5891 +3029 6236 6240 +3030 5890 5892 +3030 6454 6459 +3040 6236 6354 +3045 5885 5890 +3052 5896 5898 +3052 6235 6241 +3058 6346 6354 +3068 5772 5885 +3071 6235 6242 +3075 6123 6241 +3075 6346 6351 +3083 6346 6347 +3093 5896 5897 +3096 6455 6460 +3107 904 4539 +3112 799 4433 +3116 906 1013 +3158 1090 1095 +3161 866 968 +3171 1088 1095 +3191 1088 1089 +3141 2729 2731 +3107 4652 4655 +3112 799 4433 +3164 4653 4654 +3188 4654 4655 +3102 5778 5897 +3106 5895 6016 +3118 6346 6352 +3120 6454 6566 +3132 6236 6352 +3135 6089 6091 +3141 6453 6454 +3150 5896 5899 +3155 6445 6447 +3157 6454 6571 +3170 6451 6565 +3184 6448 6560 +3187 5777 5784 +3198 6019 6021 +3213 1013 4650 +3225 1095 1207 +3233 1301 1308 +3213 1013 4650 +3202 6448 6565 +3206 6456 6460 +3209 6454 6565 +3213 6447 6560 +3227 6456 6462 +3233 6456 6571 +3243 6304 6306 +3245 5895 5899 +3246 6561 6671 +3250 6554 6560 +3251 6450 6565 +3267 6559 6560 +3271 6455 6462 +3273 5895 6014 +3278 6557 6560 +3284 6560 6561 +3290 6559 6562 +3294 6557 6565 +3297 6561 6562 +3371 4649 4651 +3383 4649 4652 +3394 1095 1202 +3325 2934 2941 +3337 2935 3036 +3340 2836 2940 +3345 2513 2515 +3327 4680 4681 +3338 4695 4702 +3363 4697 4700 +3369 4695 4696 +3371 5381 5500 +3383 4649 4652 +3305 6557 6562 +3311 6564 6565 +3313 6561 6670 +3316 6450 6557 +3320 6563 6564 +3326 6557 6564 +3327 6345 6348 +3329 6563 6565 +3333 6563 6571 +3334 5894 5899 +3334 6558 6562 +3336 6561 6665 +3353 6346 6461 +3355 6563 6568 +3357 6346 6353 +3363 6555 6665 +3367 6456 6569 +3368 6558 6564 +3379 5894 5901 +3382 6556 6665 +3464 696 4433 +3489 1302 1412 +3414 3029 3032 +3424 2728 2837 +3425 3029 3034 +3432 3125 3130 +3435 3130 3132 +3408 5381 5387 +3421 4680 4792 +3427 5379 5382 +3431 4695 4700 +3460 5381 5382 +3464 696 4433 +3482 5380 5381 +3494 5379 5380 +3417 6555 6666 +3418 6556 6670 +3466 6222 6227 +3476 6563 6570 +3477 6664 6665 +3489 6343 6345 +3500 6552 6662 +3508 1295 1412 +3509 1300 1302 +3529 1085 1093 +3531 799 4435 +3542 797 4433 +3546 975 1085 +3569 979 1085 +3512 3131 3133 +3527 3127 3130 +3574 2836 2840 +3583 2940 2942 +3590 2834 2837 +3524 4698 4700 +3528 5262 5379 +3531 799 4435 +3537 5261 5380 +3542 797 4433 +3544 5261 5381 +3549 4702 4703 +3552 5261 5379 +3560 4700 4703 +3563 4592 4701 +3581 4701 4703 +3595 4592 4598 +3598 4703 4706 +3505 6342 6343 +3515 5781 5900 +3518 6227 6342 +3521 6651 6752 +3526 6343 6344 +3528 5894 5902 +3528 6659 6666 +3540 5781 5902 +3540 6664 6666 +3555 6664 6667 +3560 6659 6660 +3561 5779 5902 +3561 6661 6666 +3563 6660 6666 +3577 6658 6660 +3585 5780 5787 +3588 6758 6759 +3598 6558 6670 +3601 1302 1303 +3608 3030 3037 +3623 2836 2837 +3625 2939 2941 +3625 2941 3036 +3642 2941 2942 +3653 2840 2942 +3663 2941 3044 +3676 3037 3134 +3680 3049 3140 +3685 3042 3043 +3687 2942 2945 +3611 4591 4598 +3618 4698 4705 +3630 4596 4701 +3639 4596 4598 +3646 4596 4706 +3674 4703 4705 +3676 4596 4709 +3694 4492 4591 +3602 5779 5897 +3606 5781 5785 +3614 6662 6664 +3615 6655 6660 +3617 6556 6662 +3623 5780 5785 +3632 6659 6661 +3642 5780 5786 +3647 5666 5786 +3647 6558 6668 +3655 5782 5785 +3665 5672 5786 +3673 5779 5784 +3691 5780 5788 +3694 5666 5788 +3696 5672 5792 +3702 1013 4541 +3739 3146 3147 +3748 3042 3044 +3755 3147 3240 +3771 3036 3038 +3775 3047 3049 +3781 2739 6420 +3787 3031 3128 +3796 2942 2943 +3702 1013 4541 +3711 4704 4706 +3713 4591 4599 +3721 4485 4492 +3737 4490 4492 +3748 4704 4709 +3771 4490 4599 +3774 4596 4599 +3776 4388 4492 +3782 4594 4599 +3785 4388 4491 +3800 4704 4711 +3701 5670 5786 +3718 5664 5788 +3722 6305 6419 +3726 5782 5784 +3726 6227 6337 +3737 5672 5794 +3748 6661 6667 +3750 5670 5788 +3769 6305 6309 +3775 5783 5785 +3781 2739 6420 +3797 5672 5676 +3810 2832 2837 +3815 3140 3148 +3817 2740 2847 +3822 3147 3151 +3824 2945 3044 +3834 3044 3050 +3836 3042 3047 +3839 3235 3322 +3844 3047 3050 +3845 3234 3241 +3849 3047 3148 +3850 3044 3047 +3852 3042 3050 +3852 3147 3148 +3853 3042 3049 +3853 3047 3052 +3855 3045 3050 +3856 3043 3047 +3857 2944 2945 +3857 3045 3047 +3858 2945 3042 +3858 3050 3052 +3863 2945 3045 +3865 3145 3148 +3866 3143 3148 +3874 2941 2947 +3875 2943 2944 +3879 2944 2950 +3880 2947 3042 +3880 3051 3052 +3887 2941 2945 +3889 2940 2941 +3892 3052 3053 +3895 2950 3045 +3895 3234 3242 +3898 3147 3242 +3801 4596 4601 +3803 4492 4493 +3803 4495 4599 +3820 4491 4493 +3822 4594 4601 +3827 5671 5676 +3829 4493 4496 +3850 5673 5794 +3856 4392 4491 +3858 4601 4704 +3863 4495 4496 +3865 4704 4710 +3871 4387 4394 +3886 4392 4394 +3890 5677 5684 +3897 4493 4499 +3812 5678 5792 +3813 5669 5788 +3816 6306 6309 +3818 5783 5788 +3824 5663 5784 +3827 5671 5676 +3839 5678 5798 +3843 5670 5794 +3843 5783 5784 +3850 5673 5794 +3864 5676 5792 +3864 5678 5800 +3878 5676 5678 +3880 5678 5682 +3881 5670 5789 +3890 5677 5684 +3891 5676 5794 +3933 1295 1302 +3987 859 860 +3904 2838 2839 +3909 3145 3242 +3912 2839 2840 +3914 3145 3150 +3914 3239 3241 +3919 3239 3242 +3922 2837 2839 +3922 3143 3149 +3923 3237 3242 +3937 3150 3237 +3944 3052 3143 +3944 3143 3150 +3951 3322 3324 +3952 2839 2943 +3952 3322 3323 +3956 3145 3237 +3957 3239 3322 +3965 3239 3330 +3973 3242 3244 +3982 3323 3404 +3987 2726 2731 +3988 3046 3052 +3991 3239 3244 +3992 3322 3327 +3993 2731 2832 +3994 3052 3149 +3996 3045 3052 +3996 3322 3325 +3999 3052 3148 +3901 4392 4499 +3903 5677 5682 +3909 4495 4600 +3925 4494 4496 +3931 5683 5684 +3953 4295 4393 +3961 4494 4499 +3964 5684 5685 +3973 5679 5682 +3973 5562 5682 +3981 4394 4395 +3991 4494 4501 +3991 5682 5685 +3992 5683 5690 +3996 4393 4395 +3903 5677 5682 +3905 5676 5797 +3908 5783 5790 +3914 5676 5800 +3921 5675 5794 +3930 5676 5795 +3931 5683 5684 +3939 6558 6669 +3940 6558 6662 +3941 5783 5789 +3948 6661 6664 +3949 6647 6654 +3954 5676 5681 +3964 5684 5685 +3971 6663 6664 +3973 5562 5682 +3973 5679 5682 +3973 6658 6661 +3977 5669 5789 +3988 6468 6575 +3989 6656 6663 +3991 5682 5685 +3992 5683 5690 +4007 2923 3026 +4010 3327 3329 +4011 3327 3330 +4012 2923 3025 +4014 3404 3405 +4020 2923 3018 +4025 3237 3244 +4033 3325 3330 +4040 3238 3244 +4044 3404 3406 +4048 3013 3110 +4053 3244 3325 +4063 3323 3327 +4012 4395 4398 +4016 4394 4397 +4019 5683 5688 +4023 4397 4499 +4034 5570 5689 +4044 4294 4301 +4053 4397 4398 +4062 5568 5688 +4065 5685 5688 +4082 4299 4393 +4094 4397 4500 +4019 5683 5688 +4028 6569 6570 +4029 6661 6663 +4045 6569 6680 +4053 6019 6022 +4055 6581 6582 +4055 6663 6764 +4062 5568 5688 +4062 6569 6571 +4062 6576 6680 +4065 5685 5688 +4068 5675 5789 +4082 6021 6142 +4084 6570 6574 +4085 6569 6574 +4096 5680 5682 +4097 6680 6688 +4099 6574 6680 +4128 696 4331 +4141 797 4331 +4150 797 4435 +4102 3327 3404 +4105 3024 3026 +4112 3327 3412 +4117 3405 3480 +4119 3405 3409 +4121 3406 3412 +4133 3404 3409 +4154 3024 3029 +4158 3474 3481 +4161 3406 3409 +4168 2508 2613 +4170 3327 3332 +4198 3029 3031 +4102 4299 4301 +4124 4299 4401 +4147 4207 4300 +4147 5576 5689 +4148 5683 5691 +4149 5679 5681 +4150 797 4435 +4151 5574 5689 +4153 4396 4398 +4154 5570 5691 +4158 4331 4433 +4163 5685 5687 +4164 4294 4302 +4166 4331 4435 +4167 4331 4332 +4174 5568 5691 +4182 4331 4434 +4197 5574 5691 +4106 5675 5795 +4108 6574 6682 +4112 6680 6683 +4115 6017 6019 +4117 6022 6142 +4117 6021 6140 +4117 6680 6685 +4119 6570 6680 +4120 6680 6682 +4123 6027 6140 +4123 6570 6571 +4130 6764 6771 +4132 6460 6571 +4135 6674 6680 +4136 6568 6571 +4137 6681 6788 +4138 6681 6685 +4140 6025 6140 +4142 6687 6788 +4147 5576 5689 +4148 5683 5691 +4149 5679 5681 +4151 5574 5689 +4151 6680 6681 +4154 5570 5691 +4163 5685 5687 +4165 6025 6142 +4166 6685 6687 +4168 6685 6688 +4174 5568 5691 +4174 6146 6147 +4176 6080 6199 +4176 6661 6772 +4180 6764 6772 +4182 6140 6148 +4183 6573 6574 +4187 6794 6795 +4189 6687 6795 +4190 6019 6024 +4195 6147 6148 +4197 5574 5691 +4201 962 969 +4210 1440 1555 +4204 3029 3130 +4209 3325 3332 +4227 3133 3138 +4239 3130 3133 +4253 3024 3025 +4271 3405 3482 +4282 3327 3407 +4290 3474 3482 +4238 5576 5695 +4246 5674 5681 +4259 5582 5695 +4275 5576 5697 +4294 5574 5694 +4299 5574 5697 +4211 6788 6796 +4214 6687 6796 +4219 6146 6265 +4220 6571 6573 +4226 6566 6571 +4232 6024 6142 +4233 6682 6683 +4237 6795 6799 +4238 5576 5695 +4241 6794 6899 +4242 6794 6796 +4245 6147 6151 +4246 5674 5681 +4249 6795 6899 +4254 6017 6018 +4258 6145 6148 +4259 5582 5695 +4266 6691 6796 +4275 5576 5697 +4278 6153 6265 +4286 6683 6684 +4287 6899 6900 +4291 6899 6901 +4294 5574 5694 +4296 6142 6143 +4296 6151 6265 +4299 5574 5697 +4300 6683 6685 +4301 3138 3230 +4302 3129 3130 +4306 3122 3130 +4317 3133 3136 +4345 3406 3407 +4352 3406 3482 +4364 3403 3482 +4370 3231 3232 +4302 4206 4213 +4308 4299 4302 +4309 5582 5701 +4339 4396 4401 +4340 4301 4302 +4349 5580 5695 +4384 4300 4302 +4388 4301 4304 +4390 5582 5703 +4305 6151 6267 +4306 6796 6799 +4306 6799 6901 +4326 6271 6272 +4328 6024 6137 +4337 6899 6904 +4337 6906 7000 +4341 6265 6273 +4349 5580 5695 +4360 6573 6683 +4360 6685 6690 +4363 6272 6273 +4365 6143 6145 +4368 6796 6797 +4368 6904 6906 +4369 5680 5681 +4375 5680 5687 +4397 6690 6796 +4405 3128 3133 +4408 3479 3481 +4411 3475 3543 +4455 3326 3332 +4457 3479 3482 +4458 3138 3231 +4476 3481 3543 +4497 3408 3409 +4408 5685 5686 +4431 5573 5691 +4433 5568 5686 +4447 5580 5697 +4472 4302 4305 +4474 5586 5701 +4477 5574 5692 +4479 4302 4308 +4480 5580 5700 +4408 5685 5686 +4416 6661 6767 +4417 7006 7007 +4425 6278 6388 +4431 5573 5691 +4433 5568 5686 +4434 6145 6150 +4434 6904 6907 +4439 6904 6910 +4442 6150 6267 +4443 6453 6459 +4445 6272 6276 +4447 5580 5697 +4451 5686 5688 +4452 5686 5691 +4456 6798 6799 +4464 6143 6144 +4465 6276 6388 +4465 7000 7008 +4467 6459 6566 +4470 6572 6573 +4470 6904 7008 +4474 6901 6902 +4475 7000 7007 +4477 7007 7097 +4480 5580 5700 +4480 6270 6273 +4485 6904 6909 +4487 6265 6268 +4489 5686 5687 +4492 6902 6904 +4500 7005 7007 +4502 3326 3407 +4508 3144 3237 +4518 3408 3483 +4524 3128 3129 +4533 3031 3122 +4534 3144 3231 +4550 3479 3551 +4559 3139 3231 +4566 3139 3230 +4567 3407 3408 +4567 3408 3482 +4568 3144 3236 +4573 3477 3482 +4596 3479 3543 +4598 3142 3236 +4507 4211 4300 +4530 4211 4213 +4535 5580 5703 +4555 5586 5703 +4568 4304 4401 +4585 5586 5707 +4586 4211 4308 +4511 7005 7008 +4512 6267 6268 +4519 6276 6390 +4521 7003 7008 +4526 7097 7105 +4536 7005 7105 +4545 6690 6791 +4547 7097 7104 +4553 7103 7104 +4554 7102 7105 +4556 6660 6661 +4563 6268 6270 +4564 6797 6798 +4572 6798 6902 +4572 7104 7188 +4574 7102 7104 +4580 6150 6262 +4587 5686 5693 +4595 6902 6903 +4598 7194 7195 +4627 904 4541 +4660 904 4435 +4667 1413 1523 +4672 962 963 +4691 854 963 +4699 962 967 +4609 3145 3236 +4610 3543 3545 +4618 3139 3236 +4618 3537 3544 +4641 3133 3135 +4645 3139 3228 +4663 3479 3484 +4667 3141 3236 +4667 3544 3545 +4676 3135 3139 +4686 3477 3484 +4606 4327 4334 +4627 904 4541 +4636 4235 4327 +4645 5572 5692 +4655 4327 4335 +4660 904 4435 +4667 4213 4214 +4692 5573 5692 +4616 6394 6395 +4635 7188 7196 +4647 7005 7010 +4653 7102 7196 +4657 7100 7105 +4669 6388 6396 +4674 6903 6909 +4674 7188 7195 +4688 6909 7003 +4699 7003 7010 +4711 967 970 +4718 1406 1407 +4735 854 956 +4742 963 964 +4746 848 854 +4754 956 964 +4762 852 956 +4765 961 964 +4770 964 967 +4788 964 966 +4790 965 967 +4710 3542 3544 +4720 3545 3548 +4730 3135 3136 +4733 3544 3597 +4743 3141 3228 +4746 3234 3236 +4766 3134 3135 +4766 3546 3551 +4789 3545 3605 +4794 3484 3546 +4706 4141 4228 +4708 5579 5697 +4711 5579 5692 +4721 4233 4235 +4723 4228 4235 +4739 4233 4335 +4744 4228 4236 +4763 4134 4141 +4776 4233 4236 +4776 5585 5703 +4779 4139 4141 +4789 4330 4335 +4708 5579 5697 +4710 6395 6396 +4710 7102 7107 +4755 7193 7196 +4767 7189 7273 +4768 7191 7196 +4780 7195 7196 +4782 7201 7279 +4792 6270 6275 +4801 959 964 +4806 848 950 +4807 965 966 +4813 848 956 +4825 848 958 +4832 852 854 +4833 852 964 +4840 852 958 +4858 846 848 +4888 841 846 +4891 841 842 +4895 852 959 +4898 959 965 +4802 3234 3235 +4804 3597 3604 +4807 3546 3548 +4808 3546 3553 +4828 3598 3604 +4831 3128 3135 +4831 3597 3605 +4836 3542 3605 +4841 3234 3239 +4851 3547 3548 +4857 3542 3602 +4859 3547 3605 +4864 3602 3604 +4872 3600 3605 +4873 3597 3602 +4879 3604 3645 +4883 3602 3605 +4900 3645 3652 +4807 4053 4134 +4808 4139 4236 +4828 5698 5703 +4839 4134 4142 +4840 4233 4238 +4884 5585 5704 +4892 4231 4236 +4896 4238 4330 +4802 5697 5698 +4808 6275 6390 +4809 6393 6396 +4809 7193 7199 +4809 7195 7199 +4811 7196 7198 +4828 5698 5703 +4829 7199 7281 +4830 7010 7100 +4833 7285 7286 +4836 6269 6275 +4844 6268 6269 +4845 6150 6269 +4857 7107 7191 +4867 7199 7279 +4873 7279 7287 +4876 5698 5700 +4883 7198 7199 +4884 5585 5704 +4896 6395 6399 +4899 7286 7287 +4904 857 959 +4906 851 852 +4908 850 959 +4910 846 849 +4914 851 959 +4917 1758 1869 +4922 849 851 +4938 850 851 +4943 1758 1877 +4945 841 843 +4952 735 842 +4963 843 849 +4971 735 835 +4979 844 851 +4990 735 843 +4925 3645 3653 +4943 1758 1877 +4949 3602 3653 +4958 3605 3607 +4972 3646 3678 +4979 3645 3650 +4985 3602 3650 +4985 3646 3650 +4995 3647 3650 +4998 3645 3648 +4939 4231 4238 +4947 4139 4142 +4910 7100 7107 +4926 7284 7287 +4935 7286 7364 +4937 7199 7282 +4940 7286 7290 +4963 5698 5705 +4967 7364 7365 +4981 7364 7366 +4984 6275 6385 +4991 7282 7287 +5002 739 843 +5011 736 843 +5018 1752 1869 +5022 1756 1869 +5027 844 846 +5031 1752 1863 +5036 733 735 +5036 1752 1871 +5044 844 845 +5065 1756 1877 +5072 1746 1863 +5073 1756 1871 +5076 843 844 +5084 733 835 +5015 3646 3679 +5017 3602 3607 +5030 3547 3606 +5034 3600 3607 +5036 1752 1871 +5048 3675 3679 +5065 1756 1877 +5065 2336 2343 +5073 1756 1871 +5084 3602 3648 +5036 5586 5704 +5032 7371 7436 +5036 5586 5704 +5049 7290 7366 +5088 7364 7369 +5102 733 843 +5118 729 835 +5121 1750 1863 +5101 3648 3653 +5104 3648 3650 +5119 3644 3679 +5148 3649 3650 +5154 3648 3655 +5161 3649 3679 +5187 3607 3648 +5188 2227 2344 +5127 4396 4403 +5185 4299 4304 +5119 7287 7289 +5127 7369 7371 +5130 7191 7197 +5131 5698 5699 +5154 7436 7443 +5168 6655 6761 +5171 6390 6391 +5193 7369 7372 +5243 3677 3679 +5291 3649 3680 +5224 4304 4396 +5263 4125 4206 +5217 7197 7198 +5243 7289 7290 +5252 7204 7282 +5258 7369 7443 +5299 7289 7295 +5310 4206 4214 +5372 4118 4125 +5311 7366 7367 +5314 7288 7289 +5346 6766 6772 +5360 7367 7369 +5365 7369 7374 +5373 7289 7367 +5418 728 735 +5478 632 728 +5481 733 736 +5489 728 736 +5406 4123 4125 +5414 4304 4305 +5439 4118 4124 +5459 4304 4403 +5463 4211 4214 +5478 4208 4214 +5482 4042 4124 +5496 4123 4214 +5415 7441 7443 +5529 1761 1877 +5542 738 843 +5529 1761 1877 +5509 4123 4129 +5523 4118 4126 +5526 4123 4126 +5546 4302 4303 +5564 4304 4402 +5568 4042 4118 +5583 4211 4216 +5506 7439 7443 +5521 7367 7368 +5557 7374 7439 +5602 4211 4303 +5612 4209 4214 +5616 4041 4126 +5617 4297 4303 +5621 4042 4045 +5627 4123 4128 +5628 4042 4126 +5634 4210 4303 +5659 4043 4045 +5662 4303 4304 +5696 4043 4044 +5789 630 728 +5789 630 733 +5795 738 838 +5715 4121 4126 +5849 733 738 +5856 732 738 +5833 4209 4216 +5888 4044 4126 +5909 731 733 +5941 731 732 +5944 630 730 +5946 625 626 +5951 626 630 +5956 730 731 +5959 627 730 +5973 626 627 +5983 629 730 +5988 619 626 +5917 4121 4128 +6013 629 725 +6037 619 624 +6039 624 627 +6050 619 620 +6063 624 629 +6083 519 620 +6009 4044 4045 +6013 4044 4127 +6052 4128 4209 +6228 620 621 +6242 621 624 +6250 4046 4047 +6259 622 624 +6292 519 613 +6250 4046 4047 +6337 618 621 +6354 613 621 +6364 621 623 +6378 622 623 +6445 616 621 +6514 517 613 +6539 6275 6391 +6656 517 615 +6724 513 517 +6760 517 616 +6765 512 513 +6784 506 512 +6792 513 514 +6801 522 616 +6831 516 517 +6853 506 514 +6854 515 616 +6877 511 514 +6885 417 506 +6908 514 516 +6921 415 506 +6942 515 516 +6947 411 506 +6959 509 515 +6966 509 514 +7022 411 500 +7023 420 509 +7043 411 508 +7047 415 508 +7068 412 508 +7093 415 509 +7099 409 500 +7102 413 509 +7135 409 502 +7160 414 508 +7161 409 508 +7174 409 503 +7175 409 411 +7177 409 415 +7180 414 509 +7185 409 414 +7194 409 412 +7173 6274 6281 +7231 414 503 +7204 6280 6281 diff --git a/examples/bpm/impact/log.17Feb2022.impact.rotational.g++.4 b/examples/bpm/impact/log.17Feb2022.impact.rotational.g++.4 deleted file mode 100644 index b76854d5d9..0000000000 --- a/examples/bpm/impact/log.17Feb2022.impact.rotational.g++.4 +++ /dev/null @@ -1,219 +0,0 @@ -LAMMPS (17 Feb 2022) -units lj -dimension 3 -boundary f f f -atom_style bpm/sphere -special_bonds lj 0.0 1.0 1.0 coul 0.0 1.0 1.0 -newton on off -comm_modify vel yes cutoff 2.6 -lattice fcc 1.0 -Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011 -region box block -25 15 -22 22 -22 22 -create_box 1 box bond/types 2 extra/bond/per/atom 20 extra/special/per/atom 50 -Created orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823) - 1 by 2 by 2 MPI processor grid - -region disk cylinder x 0.0 0.0 20.0 -0.5 0.5 -create_atoms 1 region disk -Created 7529 atoms - using lattice units in orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823) - create_atoms CPU = 0.002 seconds -group plate region disk -7529 atoms in group plate - -region ball sphere 8.0 0.0 0.0 6.0 -create_atoms 1 region ball -Created 3589 atoms - using lattice units in orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823) - create_atoms CPU = 0.001 seconds -group projectile region ball -3589 atoms in group projectile - -displace_atoms all random 0.1 0.1 0.1 134598738 -Displacing atoms ... - -neighbor 1.0 bin -pair_style gran/hooke/history 1.0 NULL 0.5 NULL 0.1 1 -pair_coeff 1 1 - -fix 1 all nve/bpm/sphere - -create_bonds many plate plate 1 0.0 1.5 - generated 0 of 0 mixed pair_coeff terms from geometric mixing rule -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2.6 - binsize = 1, bins = 64 70 70 - 2 neighbor lists, perpetual/occasional/extra = 1 1 0 - (1) command create_bonds, occasional - attributes: full, newton on - pair build: full/bin - stencil: full/bin/3d - bin: standard - (2) pair gran/hooke/history, perpetual - attributes: half, newton on, size, history - pair build: half/size/bin/newton - stencil: half/bin/3d - bin: standard -Added 38559 bonds, new total = 38559 -Finding 1-2 1-3 1-4 neighbors ... - special bond factors lj: 0 1 1 - special bond factors coul: 0 1 1 - 15 = max # of 1-2 neighbors - 101 = max # of special neighbors - special bonds CPU = 0.001 seconds -create_bonds many projectile projectile 2 0.0 1.5 - generated 0 of 0 mixed pair_coeff terms from geometric mixing rule -WARNING: Bonds are defined but no bond style is set (../force.cpp:192) -WARNING: Likewise 1-2 special neighbor interactions != 1.0 (../force.cpp:194) -Added 21869 bonds, new total = 60428 -Finding 1-2 1-3 1-4 neighbors ... - special bond factors lj: 0 1 1 - special bond factors coul: 0 1 1 - 16 = max # of 1-2 neighbors - 101 = max # of special neighbors - special bonds CPU = 0.001 seconds - -neighbor 0.3 bin -special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0 - -bond_style bpm/rotational store/local brkbond 100 time id1 id2 -bond_coeff 1 1.0 0.2 0.02 0.02 0.05 0.01 0.01 0.01 0.1 0.2 0.002 0.002 -bond_coeff 2 1.0 0.2 0.02 0.02 0.20 0.04 0.04 0.04 0.1 0.2 0.002 0.002 - -velocity projectile set -0.05 0.0 0.0 -compute nbond all nbond/atom -compute tbond all reduce sum c_nbond - -timestep 0.05 -thermo_style custom step ke pe pxx pyy pzz c_tbond -thermo 100 -thermo_modify lost ignore lost/bond ignore -#dump 1 all custom 100 atomDump id radius x y z c_nbond - -dump 2 all local 100 brokenDump f_brkbond[1] f_brkbond[2] f_brkbond[3] -dump_modify 2 header no - -run 7500 - generated 0 of 0 mixed pair_coeff terms from geometric mixing rule -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.3 - ghost atom cutoff = 2.6 - binsize = 0.65, bins = 98 108 108 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair gran/hooke/history, perpetual - attributes: half, newton on, size, history - pair build: half/size/bin/newton - stencil: half/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 33.34 | 33.34 | 33.35 Mbytes -Step KinEng PotEng Pxx Pyy Pzz c_tbond - 0 0.00053238861 0 3.8217307e-05 0 0 10.8703 - 100 0.00053238861 0 3.8217307e-05 1.2166373e-20 1.2308212e-20 10.8703 - 200 0.00053238861 0 3.8217307e-05 1.2454467e-20 1.2479589e-20 10.8703 - 300 0.00053238861 0 3.8217307e-05 1.2256702e-20 1.2621091e-20 10.8703 - 400 0.00053238861 0 3.8217307e-05 1.2170534e-20 1.2751666e-20 10.8703 - 500 0.00053093549 0 3.8484194e-05 7.645531e-08 1.4861825e-07 10.8703 - 600 0.00051485902 0 4.0340751e-05 3.8615876e-07 4.8663463e-07 10.869221 - 700 0.00049942978 0 3.8684008e-05 4.5363318e-07 4.4560229e-07 10.85501 - 800 0.00049465262 0 3.6604612e-05 1.4755468e-07 2.0062093e-07 10.820651 - 900 0.00048784775 0 3.5333139e-05 3.5118328e-07 6.6697625e-07 10.769563 - 1000 0.00048345699 0 3.4702137e-05 7.0312998e-07 4.0218318e-07 10.730347 - 1100 0.00047945073 0 3.5065961e-05 6.2813891e-07 7.4640359e-07 10.703184 - 1200 0.00047512604 0 3.4833144e-05 8.5208604e-07 8.7277583e-07 10.686634 - 1300 0.00047401428 0 3.4236869e-05 1.0321827e-06 7.4545242e-07 10.678 - 1400 0.00047619121 0 3.4416549e-05 8.7518021e-07 7.3979503e-07 10.671704 - 1500 0.0004668728 0 3.4495751e-05 1.4077823e-06 1.517373e-06 10.666127 - 1600 0.00045088371 0 3.3264301e-05 1.8499661e-06 1.9842415e-06 10.66073 - 1700 0.00044275099 0 3.2471064e-05 1.9028747e-06 2.2248947e-06 10.6458 - 1800 0.0004424362 0 3.1846336e-05 1.6208492e-06 1.9291602e-06 10.620615 - 1900 0.00043678957 0 3.1260936e-05 1.4673956e-06 1.6120523e-06 10.603166 - 2000 0.00042747562 0 3.0652107e-05 1.6455486e-06 1.53127e-06 10.576003 - 2100 0.0004214344 0 3.0240727e-05 1.8873967e-06 1.5258622e-06 10.539845 - 2200 0.00041712779 0 3.0329566e-05 1.8846152e-06 1.4971471e-06 10.49937 - 2300 0.00041095769 0 3.0000572e-05 2.3585924e-06 1.6773177e-06 10.471668 - 2400 0.00040883568 0 2.9625158e-05 1.9105554e-06 1.8720763e-06 10.45116 - 2500 0.00040762685 0 2.9441541e-05 1.6848938e-06 1.8877532e-06 10.437309 - 2600 0.00040579873 0 2.9255988e-05 1.7523874e-06 1.636423e-06 10.422378 - 2700 0.00040340975 0 2.9035693e-05 1.673158e-06 1.9038932e-06 10.410505 - 2800 0.00040170914 0 2.8829361e-05 1.6711978e-06 1.9776001e-06 10.400792 - 2900 0.00040015113 0 2.8614186e-05 1.5982427e-06 1.7994733e-06 10.393416 - 3000 0.00040029253 0 2.8470718e-05 1.5589166e-06 1.6682302e-06 10.385321 - 3100 0.00040037329 0 2.8483376e-05 1.2831526e-06 1.4788005e-06 10.378485 - 3200 0.00040142612 0 2.8481287e-05 1.1577988e-06 1.3495778e-06 10.373988 - 3300 0.00040105092 0 2.8547009e-05 1.2155138e-06 1.2633439e-06 10.370031 - 3400 0.00039950673 0 2.8340939e-05 1.1182251e-06 1.1624668e-06 10.364274 - 3500 0.00039715236 0 2.824813e-05 1.3086462e-06 1.2029185e-06 10.360496 - 3600 0.00039446552 0 2.8112283e-05 1.1232321e-06 1.0077217e-06 10.353121 - 3700 0.00039263296 0 2.7927975e-05 1.1083636e-06 1.2091857e-06 10.346645 - 3800 0.00039061341 0 2.7819957e-05 1.1836841e-06 1.3566272e-06 10.341069 - 3900 0.00038985051 0 2.7681947e-05 1.3588359e-06 1.4099727e-06 10.329196 - 4000 0.00038815347 0 2.7492102e-05 1.1111719e-06 1.1700718e-06 10.318043 - 4100 0.00038651302 0 2.7444105e-05 9.9563429e-07 1.4085969e-06 10.311027 - 4200 0.00038565809 0 2.7177341e-05 9.5736307e-07 1.0404482e-06 10.299155 - 4300 0.0003847255 0 2.7029216e-05 9.6204756e-07 1.140804e-06 10.292319 - 4400 0.0003844421 0 2.6841047e-05 9.6570404e-07 1.2319818e-06 10.286203 - 4500 0.0003842788 0 2.6633558e-05 9.6452478e-07 1.1954945e-06 10.278287 - 4600 0.00038365139 0 2.6514403e-05 9.6185846e-07 1.2002452e-06 10.270732 - 4700 0.00038271503 0 2.6374349e-05 9.4061833e-07 1.1774211e-06 10.264796 - 4800 0.00038233688 0 2.638398e-05 1.1644119e-06 1.3746239e-06 10.25742 - 4900 0.00038223496 0 2.6279821e-05 1.1345508e-06 1.4709213e-06 10.246987 - 5000 0.00038219402 0 2.6188871e-05 1.0115151e-06 1.2024203e-06 10.240511 - 5100 0.00038195153 0 2.6137945e-05 1.009856e-06 1.1961088e-06 10.236014 - 5200 0.00038170903 0 2.6103563e-05 1.0046761e-06 1.1881008e-06 10.232236 - 5300 0.00038194303 0 2.6111938e-05 1.0533375e-06 1.2621634e-06 10.230617 - 5400 0.00038147407 0 2.6078641e-05 1.082228e-06 1.2915223e-06 10.230098 - 5500 0.00038156894 0 2.6084488e-05 1.1395485e-06 1.3592644e-06 10.227759 - 5600 0.00038169434 0 2.6085704e-05 1.1173618e-06 1.3003599e-06 10.2256 - 5700 0.00038219734 0 2.6095279e-05 1.1026614e-06 1.280455e-06 10.223621 - 5800 0.00038268758 0 2.6113437e-05 1.1096198e-06 1.2565503e-06 10.222902 - 5900 0.00038300658 0 2.6131709e-05 1.1123595e-06 1.235992e-06 10.222182 - 6000 0.00038250316 0 2.606995e-05 1.1590744e-06 1.2888416e-06 10.221123 - 6100 0.0003821526 0 2.6025605e-05 1.1434025e-06 1.3141861e-06 10.219503 - 6200 0.00038185711 0 2.5991255e-05 1.1471391e-06 1.3427373e-06 10.219503 - 6300 0.00038197679 0 2.5996965e-05 1.1338082e-06 1.3315258e-06 10.218604 - 6400 0.00038232311 0 2.6035805e-05 1.1353407e-06 1.3306683e-06 10.217884 - 6500 0.00038255543 0 2.6091572e-05 1.1768703e-06 1.3629611e-06 10.217704 - 6600 0.00038251887 0 2.6068968e-05 1.1808094e-06 1.3969697e-06 10.217344 - 6700 0.00038177389 0 2.6004288e-05 1.1659866e-06 1.423638e-06 10.218084 - 6800 0.00038096291 0 2.5969494e-05 1.1377343e-06 1.4348787e-06 10.218103 - 6900 0.00038090601 0 2.5951546e-05 1.1327767e-06 1.4311663e-06 10.217024 - 7000 0.00038088094 0 2.5946255e-05 1.1652568e-06 1.4567559e-06 10.215944 - 7100 0.00038094624 0 2.5972593e-05 1.1558871e-06 1.4692935e-06 10.214684 - 7200 0.00038168738 0 2.6002e-05 1.1562707e-06 1.4881081e-06 10.212705 - 7300 0.00038200854 0 2.6038768e-05 1.1339903e-06 1.4808455e-06 10.212345 - 7400 0.00038187543 0 2.6044759e-05 1.101743e-06 1.4758679e-06 10.213084 - 7500 0.00038165297 0 2.6004536e-05 1.0892731e-06 1.4872621e-06 10.214742 -Loop time of 28.804 on 4 procs for 7500 steps with 11111 atoms - -Performance: 1124843.305 tau/day, 260.380 timesteps/s -97.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.26977 | 0.28058 | 0.2866 | 1.3 | 0.97 -Bond | 22.742 | 23.598 | 24.671 | 16.6 | 81.92 -Neigh | 0.54555 | 0.5728 | 0.60272 | 3.2 | 1.99 -Comm | 1.4024 | 2.5619 | 3.5079 | 54.8 | 8.89 -Output | 0.025307 | 0.025833 | 0.027022 | 0.4 | 0.09 -Modify | 1.592 | 1.6506 | 1.7059 | 4.0 | 5.73 -Other | | 0.1147 | | | 0.40 - -Nlocal: 2777.75 ave 2887 max 2682 min -Histogram: 1 0 0 0 2 0 0 0 0 1 -Nghost: 1152.5 ave 1189 max 1125 min -Histogram: 1 0 1 0 0 1 0 0 0 1 -Neighs: 11515.5 ave 12520 max 10831 min -Histogram: 1 1 0 0 1 0 0 0 0 1 - -Total # of neighbors = 46062 -Ave neighs/atom = 4.1456215 -Ave special neighs/atom = 10.214742 -Neighbor list builds = 408 -Dangerous builds = 0 -Total wall time: 0:00:28 diff --git a/examples/bpm/impact/log.4May2022.impact.rotational.g++.4 b/examples/bpm/impact/log.4May2022.impact.rotational.g++.4 new file mode 100644 index 0000000000..8eb87d3c2e --- /dev/null +++ b/examples/bpm/impact/log.4May2022.impact.rotational.g++.4 @@ -0,0 +1,219 @@ +LAMMPS (4 May 2022) +units lj +dimension 3 +boundary f f f +atom_style bpm/sphere +special_bonds lj 0.0 1.0 1.0 coul 0.0 1.0 1.0 +newton on off +comm_modify vel yes cutoff 2.6 +lattice fcc 1.0 +Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011 +region box block -25 15 -22 22 -22 22 +create_box 1 box bond/types 2 extra/bond/per/atom 20 extra/special/per/atom 50 +Created orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823) + 1 by 2 by 2 MPI processor grid + +region disk cylinder x 0.0 0.0 20.0 -0.5 0.5 +create_atoms 1 region disk +Created 7529 atoms + using lattice units in orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823) + create_atoms CPU = 0.002 seconds +group plate region disk +7529 atoms in group plate + +region ball sphere 8.0 0.0 0.0 6.0 +create_atoms 1 region ball +Created 3589 atoms + using lattice units in orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823) + create_atoms CPU = 0.001 seconds +group projectile region ball +3589 atoms in group projectile + +displace_atoms all random 0.1 0.1 0.1 134598738 +Displacing atoms ... + +neighbor 1.0 bin +pair_style gran/hooke/history 1.0 NULL 0.5 NULL 0.1 1 +pair_coeff 1 1 + +fix 1 all nve/bpm/sphere + +create_bonds many plate plate 1 0.0 1.5 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2.6 + binsize = 1, bins = 64 70 70 + 2 neighbor lists, perpetual/occasional/extra = 1 1 0 + (1) command create_bonds, occasional + attributes: full, newton on + pair build: full/bin + stencil: full/bin/3d + bin: standard + (2) pair gran/hooke/history, perpetual + attributes: half, newton on, size, history + pair build: half/size/bin/newton + stencil: half/bin/3d + bin: standard +Added 38559 bonds, new total = 38559 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 1 1 + 15 = max # of 1-2 neighbors + 101 = max # of special neighbors + special bonds CPU = 0.001 seconds +create_bonds many projectile projectile 2 0.0 1.5 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +WARNING: Bonds are defined but no bond style is set (../force.cpp:192) +WARNING: Likewise 1-2 special neighbor interactions != 1.0 (../force.cpp:194) +Added 21869 bonds, new total = 60428 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 1 1 + 16 = max # of 1-2 neighbors + 101 = max # of special neighbors + special bonds CPU = 0.002 seconds + +neighbor 0.3 bin +special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0 + +bond_style bpm/rotational store/local brkbond 100 time id1 id2 +bond_coeff 1 1.0 0.2 0.02 0.02 0.05 0.01 0.01 0.01 0.1 0.2 0.002 0.002 +bond_coeff 2 1.0 0.2 0.02 0.02 0.20 0.04 0.04 0.04 0.1 0.2 0.002 0.002 + +velocity projectile set -0.05 0.0 0.0 +compute nbond all nbond/atom +compute tbond all reduce sum c_nbond + +timestep 0.05 +thermo_style custom step ke pe pxx pyy pzz c_tbond +thermo 100 +thermo_modify lost ignore lost/bond ignore +#dump 1 all custom 100 atomDump id radius x y z c_nbond + +dump 2 all local 100 brokenDump f_brkbond[1] f_brkbond[2] f_brkbond[3] +dump_modify 2 header no + +run 7500 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 2.6 + binsize = 0.65, bins = 98 108 108 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair gran/hooke/history, perpetual + attributes: half, newton on, size, history + pair build: half/size/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 33.22 | 33.22 | 33.22 Mbytes + Step KinEng PotEng Pxx Pyy Pzz c_tbond + 0 0.00053238861 0 3.8217307e-05 -7.6534847e-14 1.9906102e-13 10.8703 + 100 0.00053238861 0 3.8217307e-05 -4.2831948e-13 5.7428612e-13 10.8703 + 200 0.00053238861 0 3.8217307e-05 -1.4067913e-12 1.4975493e-12 10.8703 + 300 0.00053238861 0 3.8217307e-05 -8.77782e-13 3.8245851e-13 10.8703 + 400 0.00053238861 0 3.8217307e-05 -8.5835238e-13 6.5448014e-13 10.8703 + 500 0.00053093549 0 4.0340893e-05 4.501394e-07 5.3690512e-07 10.8703 + 600 0.00051485902 0 6.6761034e-05 4.6258948e-06 5.2285428e-06 10.869221 + 700 0.00049942978 0 9.5499005e-05 9.3031413e-07 4.5389354e-06 10.85501 + 800 0.00049465262 0 5.6810167e-05 -5.5619903e-06 -1.6010295e-06 10.820651 + 900 0.00048784775 0 1.5747004e-05 2.0522042e-05 2.5481542e-05 10.769563 + 1000 0.00048345699 0 2.1159666e-05 1.2232747e-05 1.4767665e-05 10.730347 + 1100 0.00047945073 0 5.2779833e-05 -2.6136504e-05 -2.7689007e-05 10.703184 + 1200 0.00047512604 0 6.3234312e-05 -1.7082136e-05 -2.9178979e-05 10.686634 + 1300 0.00047401428 0 2.5474717e-05 -7.4782876e-06 -1.9808965e-05 10.678 + 1400 0.00047619121 0 2.5189461e-05 2.9476227e-06 -4.4149511e-06 10.671704 + 1500 0.0004668728 0 5.8798861e-05 -2.6192143e-06 1.0805172e-06 10.666127 + 1600 0.00045088371 0 5.8377694e-05 2.2911269e-06 4.339717e-06 10.66073 + 1700 0.00044275099 0 4.0766018e-05 2.7748031e-05 2.8202527e-05 10.6458 + 1800 0.0004424362 0 3.0460351e-05 2.9690484e-05 3.3464889e-05 10.620615 + 1900 0.00043678957 0 3.809598e-05 2.4448755e-06 1.2651201e-05 10.603166 + 2000 0.00042747562 0 4.2315209e-05 -7.6783024e-06 -3.3357359e-06 10.576003 + 2100 0.0004214344 0 2.6171505e-05 5.5424035e-06 -4.1153085e-06 10.539845 + 2200 0.00041712779 0 3.0796803e-05 1.1362383e-05 7.7103875e-07 10.49937 + 2300 0.00041095769 0 4.141148e-05 1.4142023e-06 -1.0982633e-05 10.471668 + 2400 0.00040883568 0 3.5835323e-05 -1.0216635e-05 -2.3669763e-05 10.45116 + 2500 0.00040762685 0 2.879385e-05 -1.4074395e-05 -1.9314875e-05 10.437309 + 2600 0.00040579873 0 2.771644e-05 -2.316844e-05 -2.2961097e-05 10.422378 + 2700 0.00040340975 0 3.4482945e-05 -3.075929e-05 -2.3321344e-05 10.410505 + 2800 0.00040170914 0 3.1147943e-05 -2.4329639e-05 -1.1787678e-05 10.400792 + 2900 0.00040015113 0 2.3214992e-05 -1.8068374e-05 3.8127871e-06 10.393416 + 3000 0.00040029253 0 2.7275906e-05 -7.0762689e-06 1.3782424e-05 10.385321 + 3100 0.00040037329 0 2.962113e-05 -1.3795312e-06 5.3267315e-06 10.378485 + 3200 0.00040142612 0 2.86096e-05 4.4289601e-06 -3.3950404e-06 10.373988 + 3300 0.00040105092 0 2.5423615e-05 9.5689359e-06 -2.5296344e-06 10.370031 + 3400 0.00039950673 0 2.6405258e-05 9.5776239e-06 -7.3789982e-07 10.364274 + 3500 0.00039715236 0 3.115696e-05 1.0986224e-05 6.6898207e-06 10.360496 + 3600 0.00039446552 0 2.8426837e-05 9.6296098e-06 1.5057875e-05 10.353121 + 3700 0.00039263296 0 2.567768e-05 6.347291e-06 2.4842157e-05 10.346645 + 3800 0.00039061341 0 2.7635193e-05 5.0165135e-06 2.5989901e-05 10.341069 + 3900 0.00038985051 0 2.8639932e-05 1.056365e-05 2.4463803e-05 10.329196 + 4000 0.00038815347 0 2.6613146e-05 2.0316396e-05 2.1434368e-05 10.318043 + 4100 0.00038651302 0 2.4759493e-05 1.9632349e-05 1.3524912e-05 10.311027 + 4200 0.00038565809 0 2.5290845e-05 1.9908233e-05 8.3895516e-06 10.299155 + 4300 0.0003847255 0 2.6461182e-05 1.9385332e-05 5.664874e-06 10.292319 + 4400 0.0003844421 0 2.4464435e-05 1.4675545e-05 6.8223863e-06 10.286203 + 4500 0.0003842788 0 2.3080348e-05 7.1469159e-06 6.8395849e-06 10.278287 + 4600 0.00038365139 0 2.4937615e-05 2.3854793e-06 4.6100509e-06 10.270732 + 4700 0.00038271503 0 2.431281e-05 -3.127707e-06 3.8840673e-07 10.264796 + 4800 0.00038233688 0 2.3727372e-05 -3.9575833e-06 1.5658614e-06 10.25742 + 4900 0.00038223496 0 2.3842519e-05 2.6005447e-06 4.5031882e-06 10.246987 + 5000 0.00038219402 0 2.4705111e-05 8.2018492e-06 4.0121467e-06 10.240511 + 5100 0.00038195153 0 2.5112089e-05 9.1687723e-06 3.3825795e-06 10.236014 + 5200 0.00038170903 0 2.4166312e-05 4.6680528e-06 3.0359762e-06 10.232236 + 5300 0.00038194303 0 2.4293657e-05 3.067111e-06 2.1353614e-06 10.230617 + 5400 0.00038147407 0 2.472142e-05 5.2915485e-06 -1.7472423e-06 10.230098 + 5500 0.00038156894 0 2.4839317e-05 6.6216457e-06 -2.7544087e-06 10.227759 + 5600 0.00038169434 0 2.4600407e-05 3.8679618e-06 1.2622251e-07 10.2256 + 5700 0.00038219734 0 2.4459589e-05 2.0025919e-07 -1.1917672e-08 10.223621 + 5800 0.00038268758 0 2.4768428e-05 8.7913744e-07 -1.4000329e-06 10.222902 + 5900 0.00038300658 0 2.4827866e-05 3.6621944e-06 -2.2178729e-07 10.222182 + 6000 0.00038250316 0 2.4309432e-05 4.3755483e-06 2.2736019e-06 10.221123 + 6100 0.0003821526 0 2.4396115e-05 3.3855804e-06 4.4742551e-06 10.219503 + 6200 0.00038185711 0 2.4795348e-05 1.7569948e-06 4.3229904e-06 10.219503 + 6300 0.00038197679 0 2.4817115e-05 1.237731e-07 3.9285574e-06 10.218604 + 6400 0.00038232311 0 2.4723664e-05 -8.7946112e-07 2.6215619e-06 10.217884 + 6500 0.00038255543 0 2.4821878e-05 -4.8948257e-07 3.9392146e-07 10.217704 + 6600 0.00038251887 0 2.4923895e-05 -1.1107041e-07 -8.3900047e-07 10.217344 + 6700 0.00038177389 0 2.4664007e-05 -6.4474733e-07 -2.1004826e-06 10.218084 + 6800 0.00038096291 0 2.4262293e-05 -1.7159941e-06 -2.8149643e-06 10.218103 + 6900 0.00038090601 0 2.4179172e-05 -2.2622259e-06 -2.1268271e-06 10.217024 + 7000 0.00038088094 0 2.4363443e-05 -2.4652531e-06 -8.209416e-07 10.215944 + 7100 0.00038094624 0 2.5119358e-05 -1.5432706e-06 1.1465135e-06 10.214684 + 7200 0.00038168738 0 2.5565338e-05 -1.4052753e-07 3.3146851e-06 10.212705 + 7300 0.00038200854 0 2.5436565e-05 4.353807e-07 3.3504276e-06 10.212345 + 7400 0.00038187543 0 2.4764819e-05 6.7297502e-07 1.5923471e-06 10.213084 + 7500 0.00038165297 0 2.4015684e-05 7.8657712e-07 1.0138435e-06 10.214742 +Loop time of 32.2292 on 4 procs for 7500 steps with 11111 atoms + +Performance: 1005300.744 tau/day, 232.709 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 | 0.29763 | 0.30464 | 0.31393 | 1.1 | 0.95 +Bond | 25.936 | 26.533 | 27.431 | 11.7 | 82.33 +Neigh | 0.60911 | 0.63557 | 0.66475 | 2.8 | 1.97 +Comm | 1.7247 | 2.7138 | 3.3823 | 40.5 | 8.42 +Output | 0.020408 | 0.020935 | 0.02227 | 0.5 | 0.06 +Modify | 1.8299 | 1.8724 | 1.9325 | 2.9 | 5.81 +Other | | 0.1491 | | | 0.46 + +Nlocal: 2777.75 ave 2887 max 2682 min +Histogram: 1 0 0 0 2 0 0 0 0 1 +Nghost: 1152.5 ave 1189 max 1125 min +Histogram: 1 0 1 0 0 1 0 0 0 1 +Neighs: 11515.5 ave 12520 max 10831 min +Histogram: 1 1 0 0 1 0 0 0 0 1 + +Total # of neighbors = 46062 +Ave neighs/atom = 4.1456215 +Ave special neighs/atom = 10.214742 +Neighbor list builds = 408 +Dangerous builds = 0 +Total wall time: 0:00:32 diff --git a/examples/bpm/pour/log.17Feb2022.pour.g++.4 b/examples/bpm/pour/log.17Feb2022.pour.g++.4 deleted file mode 100644 index a61c0f1181..0000000000 --- a/examples/bpm/pour/log.17Feb2022.pour.g++.4 +++ /dev/null @@ -1,1091 +0,0 @@ -LAMMPS (17 Feb 2022) -units lj -dimension 3 -boundary m m m -atom_style bpm/sphere -special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0 -newton on off -comm_modify vel yes cutoff 3.3 -region box block -15 15 -15 15 0 60.0 -create_box 1 box bond/types 1 extra/bond/per/atom 15 extra/special/per/atom 50 -Created orthogonal box = (-15 -15 0) to (15 15 60) - 1 by 1 by 4 MPI processor grid - -molecule my_mol "rect.mol" -Read molecule template my_mol: - 1 molecules - 0 fragments - 63 atoms with max type 1 - 297 bonds with max type 1 - 0 angles with max type 0 - 0 dihedrals with max type 0 - 0 impropers with max type 0 -region wall_cyl cylinder z 0.0 0.0 10.0 EDGE EDGE side in -region dropzone cylinder z 0.0 0.0 10.0 40.0 50.0 side in - -pair_style gran/hertz/history 1.0 NULL 0.5 NULL 0.1 1 -bond_style bpm/rotational -pair_coeff 1 1 -bond_coeff 1 1.0 0.2 0.01 0.01 2.0 0.4 0.02 0.02 0.2 0.04 0.002 0.002 - -compute nbond all nbond/atom -compute tbond all reduce sum c_nbond -compute_modify thermo_temp dynamic/dof yes - -fix 1 all wall/gran hertz/history 1.0 NULL 0.5 NULL 0.1 1 zplane 0.0 NULL -fix 2 all wall/gran/region hertz/history 1.0 NULL 0.5 NULL 0.1 1 region wall_cyl -fix 3 all gravity 1e-4 vector 0 0 -1 -fix 4 all deposit 40 0 1500 712511343 mol my_mol region dropzone near 2.0 vz -0.05 -0.05 -fix 5 all nve/bpm/sphere - -timestep 0.05 -thermo_style custom step ke pe pxx pyy pzz c_tbond -thermo 100 -#dump 1 all custom 500 atomDump id radius x y z c_nbond mol - -run 100000 - generated 0 of 0 mixed pair_coeff terms from geometric mixing rule -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.3 - ghost atom cutoff = 3.3 - binsize = 0.65, bins = 47 47 93 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair gran/hertz/history, perpetual - attributes: half, newton on, size, history - pair build: half/size/bin/newton - stencil: half/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 6.515 | 6.515 | 6.515 Mbytes -Step KinEng PotEng Pxx Pyy Pzz c_tbond - 0 -0 0 0 0 0 0 - 100 0.0018331948 0 2.0050936e-07 1.2082282e-06 2.8712165e-06 9.4285714 - 200 0.0025933558 0 7.3469794e-07 2.0155735e-06 3.3061759e-06 9.4285714 - 300 0.0036964813 0 3.7946479e-07 5.3005435e-06 2.9691719e-06 9.4285714 - 400 0.0060104433 0 1.5778321e-06 8.4396021e-06 4.0232206e-06 9.4285714 - 500 0.0074435972 0 1.6102287e-06 1.1551491e-05 4.2257246e-06 9.4285714 - 600 0.0077862298 0 1.048357e-06 1.3758458e-05 3.3770448e-06 9.4285714 - 700 0.0075577591 0 1.1527593e-06 1.2533681e-05 3.9545936e-06 9.4285714 - 800 0.0073958844 0 1.1164823e-06 1.2917327e-05 3.2263757e-06 9.4285714 - 900 0.007553697 0 1.190904e-06 1.3294768e-05 3.1421027e-06 9.4285714 - 1000 0.0075815901 0 1.0181785e-06 1.3265265e-05 3.4107996e-06 9.4285714 - 1100 0.0075277384 0 2.0708356e-06 1.2219251e-05 3.2773337e-06 9.4285714 - 1200 0.0075026507 0 1.8286317e-06 1.2395764e-05 3.2819583e-06 9.4285714 - 1300 0.0075665473 0 1.8498736e-06 1.2455125e-05 3.3519775e-06 9.4285714 - 1400 0.0076224701 0 3.1234422e-06 1.0777609e-05 3.8865172e-06 9.4285714 - 1500 0.007603467 0 2.8536732e-06 1.1077739e-05 3.8107558e-06 9.4285714 - 1600 0.0059810407 0 4.3809396e-06 1.6996767e-05 6.5539764e-06 9.4285714 - 1700 0.0080230318 0 5.7884097e-06 2.4435559e-05 7.2370109e-06 9.4285714 - 1800 0.0087482398 0 5.9323986e-06 2.7190078e-05 7.7151041e-06 9.4285714 - 1900 0.0086877574 0 6.1023555e-06 2.6625737e-05 7.8193078e-06 9.4285714 - 2000 0.0086771118 0 6.1635853e-06 2.633267e-05 8.0008845e-06 9.4285714 - 2100 0.0084670091 0 6.7873752e-06 2.5434046e-05 9.0971224e-06 9.4285714 - 2200 0.0083650907 0 8.1704442e-06 2.3699108e-05 8.4515642e-06 9.4285714 - 2300 0.0083549595 0 8.2648511e-06 2.2510949e-05 8.2508581e-06 9.4285714 - 2400 0.0083151535 0 7.7718631e-06 2.2224878e-05 8.8086351e-06 9.4285714 - 2500 0.0083898757 0 7.1987828e-06 2.2855932e-05 9.1000336e-06 9.4285714 - 2600 0.0084145705 0 6.968992e-06 2.3030741e-05 9.2694955e-06 9.4285714 - 2700 0.0082712696 0 7.5971438e-06 2.3186553e-05 1.026296e-05 9.4285714 - 2800 0.0073688706 0 1.0092165e-05 1.6341178e-05 1.0496887e-05 9.4285714 - 2900 0.0072732669 0 8.9857642e-06 1.454313e-05 1.0637501e-05 9.4285714 - 3000 0.0072225948 0 8.5616417e-06 1.4225089e-05 1.0924921e-05 9.4285714 - 3100 0.0048244969 0 6.912522e-06 1.30395e-05 1.3824006e-05 9.4285714 - 3200 0.0045717035 0 5.7159512e-06 1.1181938e-05 1.5108391e-05 9.4285714 - 3300 0.0047679567 0 6.0163783e-06 1.1603014e-05 1.5759942e-05 9.4285714 - 3400 0.0048448212 0 6.3252851e-06 1.2378054e-05 1.5212593e-05 9.4285714 - 3500 0.0048364711 0 6.4847771e-06 1.2719874e-05 1.4888067e-05 9.4285714 - 3600 0.0047125947 0 7.5131511e-06 1.375252e-05 1.5244253e-05 9.4285714 - 3700 0.0045641049 0 7.3441262e-06 1.2981907e-05 1.5049034e-05 9.4285714 - 3800 0.0045540235 0 6.8443099e-06 1.1748155e-05 1.4685806e-05 9.4285714 - 3900 0.0047271202 0 6.7919886e-06 1.2153009e-05 1.4801772e-05 9.4285714 - 4000 0.0049115261 0 6.9084016e-06 1.2385892e-05 1.5231153e-05 9.4285714 - 4100 0.0046819157 0 6.4190119e-06 1.1228312e-05 1.5132413e-05 9.4285714 - 4200 0.0035133816 0 3.6896921e-06 6.5442286e-06 1.4368405e-05 9.4285714 - 4300 0.0031933917 0 1.9641761e-06 3.4983806e-06 1.6912795e-05 9.4285714 - 4400 0.0033515272 0 2.3967939e-06 4.0160705e-06 1.7056596e-05 9.4285714 - 4500 0.0034928951 0 3.0724834e-06 4.4355514e-06 1.6962392e-05 9.4285714 - 4600 0.0029992338 0 3.319899e-06 4.3436095e-06 2.0334274e-05 9.4285714 - 4700 0.0030650658 0 3.9633397e-06 5.6588274e-06 1.8991224e-05 9.4285714 - 4800 0.0031180382 0 4.925768e-06 6.3708181e-06 1.7810728e-05 9.4285714 - 4900 0.0030365003 0 4.6849771e-06 5.6291872e-06 1.8029418e-05 9.4285714 - 5000 0.0030259714 0 5.1846803e-06 5.5730554e-06 1.7488984e-05 9.4285714 - 5100 0.0030499975 0 5.6322417e-06 5.9148203e-06 1.6923105e-05 9.4285714 - 5200 0.003005436 0 5.6903188e-06 5.6637593e-06 1.6700127e-05 9.4285714 - 5300 0.0030000941 0 5.7591855e-06 5.3398134e-06 1.6904108e-05 9.4285714 - 5400 0.0031465827 0 6.1148362e-06 6.2148373e-06 1.7041724e-05 9.4285714 - 5500 0.0031981585 0 5.8718482e-06 5.9970835e-06 1.7984043e-05 9.4285714 - 5600 0.0031525115 0 5.3390747e-06 5.1610119e-06 1.8924721e-05 9.4285714 - 5700 0.0032128781 0 5.6775112e-06 5.2023225e-06 1.9109577e-05 9.4285714 - 5800 0.0030092855 0 5.7676512e-06 4.4808095e-06 2.1160289e-05 9.4285714 - 5900 0.0025015767 0 6.5110611e-06 5.0853279e-06 2.290709e-05 9.4285714 - 6000 0.0024438438 0 6.4803568e-06 4.9314657e-06 2.1450483e-05 9.4285714 - 6100 0.0023816456 0 4.2004621e-06 4.3412206e-06 2.3366694e-05 9.4285714 - 6200 0.0024459343 0 3.4052114e-06 2.3122757e-06 2.3018902e-05 9.4285714 - 6300 0.0025205884 0 3.0607555e-06 2.7404005e-06 2.3612151e-05 9.4285714 - 6400 0.0033754198 0 5.4041464e-06 1.0129204e-05 2.3881911e-05 9.4285714 - 6500 0.0037812296 0 6.9287106e-06 1.2845513e-05 2.4385157e-05 9.4285714 - 6600 0.0038043567 0 4.4366794e-06 1.559564e-05 2.4372156e-05 9.4285714 - 6700 0.0038213959 0 5.6461713e-06 1.6081939e-05 2.556403e-05 9.4285714 - 6800 0.0036977776 0 6.1083638e-06 1.3260883e-05 2.8030458e-05 9.4285714 - 6900 0.0034769765 0 4.281986e-06 1.4287795e-05 2.803258e-05 9.4285714 - 7000 0.0031526409 0 4.8687091e-06 1.1290097e-05 2.9635973e-05 9.4285714 - 7100 0.00317737 0 4.866629e-06 9.8108506e-06 3.1076433e-05 9.4285714 - 7200 0.0034448361 0 4.6533797e-06 1.15597e-05 3.0195614e-05 9.4285714 - 7300 0.0036147362 0 3.4867601e-06 1.2192841e-05 3.0431851e-05 9.4285714 - 7400 0.0035651675 0 2.812314e-06 1.0900977e-05 2.9422055e-05 9.4285714 - 7500 0.0036394064 0 2.6684242e-06 1.038371e-05 2.9650533e-05 9.4285714 - 7600 0.0033086177 0 2.6357178e-06 1.0363505e-05 3.3327311e-05 9.4285714 - 7700 0.0033410425 0 3.9955363e-06 9.2059943e-06 3.3580724e-05 9.4285714 - 7800 0.0035764747 0 7.127102e-06 8.9311151e-06 3.402089e-05 9.4285714 - 7900 0.0039500913 0 1.1222589e-05 9.0137729e-06 3.5074285e-05 9.4285714 - 8000 0.0042963353 0 1.5982303e-05 8.4904673e-06 3.5704562e-05 9.4285714 - 8100 0.0048297614 0 2.2809259e-05 7.6782291e-06 3.714467e-05 9.4285714 - 8200 0.0052301447 0 2.8015774e-05 6.9131186e-06 3.8310186e-05 9.4285714 - 8300 0.005169511 0 2.8580467e-05 6.1476914e-06 3.7651259e-05 9.4285714 - 8400 0.005224324 0 2.9402221e-05 5.0117679e-06 3.873174e-05 9.4285714 - 8500 0.0053049309 0 3.0666777e-05 4.125785e-06 3.9482985e-05 9.4285714 - 8600 0.0052459952 0 3.0525628e-05 4.1952646e-06 3.8726938e-05 9.4285714 - 8700 0.0052955657 0 3.0177531e-05 5.0224986e-06 3.8941323e-05 9.4285714 - 8800 0.0053972257 0 3.1021226e-05 5.261711e-06 3.9283466e-05 9.4285714 - 8900 0.0053679679 0 3.1133172e-05 4.9109387e-06 3.9111316e-05 9.4285714 - 9000 0.0053793586 0 3.0629197e-05 5.8147275e-06 3.8870113e-05 9.4285714 - 9100 0.0048447626 0 3.0571485e-05 6.6542996e-06 4.1908678e-05 9.4285714 - 9200 0.0048688926 0 3.0874982e-05 6.5780749e-06 4.2143302e-05 9.4285714 - 9300 0.0048538957 0 3.0564193e-05 8.1762092e-06 4.2503239e-05 9.4285714 - 9400 0.0046986454 0 2.8378911e-05 1.0639019e-05 4.4317403e-05 9.4285714 - 9500 0.0046145139 0 2.513485e-05 1.036053e-05 4.5570422e-05 9.4285714 - 9600 0.0045277961 0 2.056713e-05 9.8647996e-06 4.5858869e-05 9.4285714 - 9700 0.0043935298 0 1.8390341e-05 9.0322729e-06 4.6271482e-05 9.4285714 - 9800 0.0045363488 0 2.0469706e-05 9.7216528e-06 4.5805899e-05 9.4285714 - 9900 0.0046509978 0 1.9525081e-05 9.5233466e-06 4.862056e-05 9.4285714 - 10000 0.0046493894 0 1.7602305e-05 9.4408537e-06 5.0053515e-05 9.4285714 - 10100 0.0046514856 0 1.6724832e-05 9.9699479e-06 4.928713e-05 9.4285714 - 10200 0.0046209533 0 1.4889196e-05 1.0767419e-05 4.9829248e-05 9.4285714 - 10300 0.0044651031 0 1.0578209e-05 1.1339471e-05 5.1024934e-05 9.4285714 - 10400 0.0041834162 0 6.5253227e-06 1.099852e-05 5.0813498e-05 9.4285714 - 10500 0.0043218845 0 7.2170142e-06 1.2622523e-05 5.0759877e-05 9.4285714 - 10600 0.0045795722 0 1.0140572e-05 2.1058806e-05 5.4332689e-05 9.4285714 - 10700 0.0053833569 0 1.2245942e-05 3.2705455e-05 5.5584298e-05 9.4285714 - 10800 0.0056805981 0 9.642689e-06 4.0045088e-05 5.6378884e-05 9.4285714 - 10900 0.0057157307 0 9.8421383e-06 3.9670248e-05 5.7196914e-05 9.4285714 - 11000 0.005696424 0 1.1871435e-05 3.7351501e-05 5.7130853e-05 9.4285714 - 11100 0.0052078884 0 9.5005747e-06 3.612037e-05 5.1606236e-05 9.4285714 - 11200 0.0052849159 0 1.433919e-05 3.596257e-05 4.8371986e-05 9.4285714 - 11300 0.0054074494 0 1.2828165e-05 3.7628808e-05 5.0495681e-05 9.4285714 - 11400 0.0055432168 0 1.1770167e-05 3.7223129e-05 5.4498301e-05 9.4285714 - 11500 0.0054679467 0 1.1215128e-05 3.5612418e-05 5.5880978e-05 9.4285714 - 11600 0.0052706441 0 1.0611988e-05 3.5785457e-05 5.8094083e-05 9.4285714 - 11700 0.0053724243 0 1.1867616e-05 3.484887e-05 5.7967416e-05 9.4285714 - 11800 0.0054759961 0 9.3774866e-06 3.3307362e-05 6.0256027e-05 9.4285714 - 11900 0.0051146604 0 9.5582838e-06 3.1092749e-05 5.4847298e-05 9.4285714 - 12000 0.0049723565 0 8.4734692e-06 3.1240602e-05 5.3118854e-05 9.4285714 - 12100 0.0046920113 0 8.8947651e-06 3.3402795e-05 5.6254952e-05 9.4285714 - 12200 0.0049570244 0 1.0006616e-05 3.306729e-05 6.1049649e-05 9.4285714 - 12300 0.0049181458 0 8.1394364e-06 3.2634327e-05 6.2527089e-05 9.4285714 - 12400 0.0049245342 0 8.1971979e-06 3.3145464e-05 6.2091332e-05 9.4285714 - 12500 0.0049753042 0 8.9911646e-06 3.4018861e-05 6.1487068e-05 9.4285714 - 12600 0.0048148791 0 8.560766e-06 2.9647432e-05 6.2929427e-05 9.4285714 - 12700 0.0043852178 0 7.5889296e-06 1.8576839e-05 6.5947945e-05 9.4285714 - 12800 0.0041967317 0 8.6473249e-06 1.3892779e-05 6.6599779e-05 9.4285714 - 12900 0.0041911278 0 9.3489002e-06 1.8180223e-05 6.3308096e-05 9.4285714 - 13000 0.0043107924 0 8.5274073e-06 2.2286145e-05 5.9964925e-05 9.4285714 - 13100 0.0043976521 0 8.2741734e-06 2.4530103e-05 5.9567889e-05 9.4285714 - 13200 0.0043474635 0 9.2173493e-06 2.7514155e-05 5.4579308e-05 9.4285714 - 13300 0.0044593969 0 9.3356325e-06 3.0558484e-05 5.3771437e-05 9.4285714 - 13400 0.0044814342 0 9.2387466e-06 2.8998024e-05 5.5887559e-05 9.4285714 - 13500 0.0043982498 0 9.4867492e-06 2.5493297e-05 5.7396094e-05 9.4285714 - 13600 0.0039378503 0 1.0789003e-05 1.9448677e-05 6.1667698e-05 9.4285714 - 13700 0.0036474735 0 1.0885233e-05 1.5729573e-05 5.8520214e-05 9.4285714 - 13800 0.0038236277 0 1.3819358e-05 2.0470733e-05 5.4960098e-05 9.4285714 - 13900 0.0040574402 0 1.6741444e-05 2.391221e-05 5.4045411e-05 9.4285714 - 14000 0.0046440817 0 2.2494809e-05 2.9264007e-05 5.6648145e-05 9.4285714 - 14100 0.0048045755 0 2.2568279e-05 3.260884e-05 5.6960992e-05 9.4285714 - 14200 0.004634799 0 2.2650329e-05 2.7912328e-05 5.7597129e-05 9.4285714 - 14300 0.0046822822 0 2.3142295e-05 2.8536673e-05 5.7795199e-05 9.4285714 - 14400 0.0048282958 0 2.2560586e-05 3.2744704e-05 5.8133575e-05 9.4285714 - 14500 0.004799276 0 2.1374014e-05 3.1342428e-05 6.0569089e-05 9.4285714 - 14600 0.0046554419 0 2.0804876e-05 2.8534311e-05 6.0800428e-05 9.4285714 - 14700 0.0045262414 0 2.1835372e-05 2.8168699e-05 6.2901651e-05 9.4285714 - 14800 0.0043347498 0 1.9615887e-05 3.1686326e-05 6.4194237e-05 9.4285714 - 14900 0.0040641791 0 1.8621801e-05 2.7440899e-05 6.4602045e-05 9.4285714 - 15000 0.0040014911 0 1.6461776e-05 2.5832508e-05 6.08965e-05 9.4285714 - 15100 0.0040015198 0 2.2331361e-05 2.6108777e-05 5.9319862e-05 9.4285714 - 15200 0.004656209 0 3.5268101e-05 3.0082568e-05 5.958373e-05 9.4285714 - 15300 0.0047390215 0 4.1830227e-05 2.7233725e-05 5.8274008e-05 9.4285714 - 15400 0.0047219857 0 4.2798722e-05 2.8282959e-05 5.786682e-05 9.4285714 - 15500 0.0049597215 0 4.5190515e-05 2.9504603e-05 6.2435065e-05 9.4285714 - 15600 0.0049081505 0 4.3186089e-05 2.9977425e-05 6.1726635e-05 9.4285714 - 15700 0.0047978977 0 4.1446883e-05 2.7814159e-05 5.7947919e-05 9.4285714 - 15800 0.0048176861 0 3.9941014e-05 2.6548461e-05 5.9246093e-05 9.4285714 - 15900 0.0049895331 0 4.0485733e-05 2.8703855e-05 6.3382653e-05 9.4285714 - 16000 0.0049288669 0 3.892315e-05 2.9191325e-05 6.2118616e-05 9.4285714 - 16100 0.0048010252 0 3.7199431e-05 2.7134167e-05 6.1752588e-05 9.4285714 - 16200 0.0047925554 0 3.5806262e-05 2.5024463e-05 6.3068301e-05 9.4285714 - 16300 0.0047652048 0 3.3940221e-05 2.6543134e-05 6.7111166e-05 9.4285714 - 16400 0.0043495894 0 3.4655351e-05 1.8892916e-05 6.5825804e-05 9.4285714 - 16500 0.0042677893 0 3.4188541e-05 1.7570016e-05 6.3850178e-05 9.4285714 - 16600 0.0039924053 0 3.2417741e-05 1.7848282e-05 6.5817879e-05 9.4285714 - 16700 0.004110225 0 3.3539186e-05 1.9943078e-05 6.4568545e-05 9.4285714 - 16800 0.0041003344 0 3.6503679e-05 2.0546394e-05 6.2227252e-05 9.4285714 - 16900 0.0040916821 0 3.7342085e-05 2.384663e-05 6.0859481e-05 9.4285714 - 17000 0.0039812122 0 3.671505e-05 2.4137888e-05 5.6933083e-05 9.4285714 - 17100 0.0042480582 0 3.9654732e-05 2.4691844e-05 5.8210554e-05 9.4285714 - 17200 0.0044450353 0 4.0933677e-05 3.019578e-05 5.5604765e-05 9.4285714 - 17300 0.0045016689 0 4.0563484e-05 3.4710888e-05 5.2933625e-05 9.4285714 - 17400 0.0044798864 0 4.0768397e-05 3.3076261e-05 5.2287655e-05 9.4285714 - 17500 0.0044624458 0 3.8361144e-05 3.4320802e-05 5.4620342e-05 9.4285714 - 17600 0.0044477024 0 3.6643486e-05 3.6449296e-05 5.4759028e-05 9.4285714 - 17700 0.0044103517 0 3.8319719e-05 3.7509764e-05 5.0738749e-05 9.4285714 - 17800 0.004341948 0 3.8052635e-05 3.6850602e-05 5.0481977e-05 9.4285714 - 17900 0.0042623319 0 3.5909432e-05 3.5619615e-05 5.2184073e-05 9.4285714 - 18000 0.003726239 0 1.8245827e-05 3.791319e-05 5.0575431e-05 9.4285714 - 18100 0.0034893305 0 1.7957847e-05 3.6788428e-05 5.281228e-05 9.4285714 - 18200 0.0035481187 0 2.2513253e-05 3.461697e-05 5.1791689e-05 9.4285714 - 18300 0.0036251402 0 2.5159661e-05 3.4782379e-05 5.0946509e-05 9.4285714 - 18400 0.0036369749 0 2.4150699e-05 3.6305943e-05 5.0273557e-05 9.4285714 - 18500 0.0034279849 0 2.050142e-05 3.3762641e-05 5.0772554e-05 9.4285714 - 18600 0.0033615572 0 1.8397654e-05 3.3183402e-05 5.2215005e-05 9.4285714 - 18700 0.003406225 0 1.9609619e-05 3.4353871e-05 5.1091792e-05 9.4285714 - 18800 0.0034922323 0 1.9330569e-05 3.4176016e-05 5.2688824e-05 9.4285714 - 18900 0.0034820625 0 1.9280274e-05 3.3807796e-05 5.372272e-05 9.4285714 - 19000 0.0033272524 0 1.6873326e-05 3.594881e-05 5.3862535e-05 9.4285714 - 19100 0.0034010912 0 1.8030816e-05 3.582088e-05 5.4236353e-05 9.4285714 - 19200 0.0030932535 0 1.4863995e-05 2.7793367e-05 5.3934101e-05 9.4285714 - 19300 0.002624051 0 1.210198e-05 1.6467088e-05 5.2583223e-05 9.4285714 - 19400 0.0027583806 0 1.2008108e-05 2.1017092e-05 5.309485e-05 9.4285714 - 19500 0.0029775174 0 1.3352592e-05 2.4636522e-05 5.4043107e-05 9.4285714 - 19600 0.0028689969 0 1.3488363e-05 2.4373881e-05 5.7585286e-05 9.4285714 - 19700 0.0026399127 0 1.4002066e-05 2.7370388e-05 5.4220539e-05 9.4285714 - 19800 0.0025439904 0 1.668679e-05 2.7178009e-05 5.3083248e-05 9.4285714 - 19900 0.0027074939 0 1.5155901e-05 2.5194957e-05 5.3757244e-05 9.4285714 - 20000 0.0027181793 0 1.2268581e-05 2.5236301e-05 5.1395997e-05 9.4285714 - 20100 0.0027315362 0 1.2532955e-05 2.4069296e-05 5.2648391e-05 9.4285714 - 20200 0.0027204191 0 1.2457637e-05 2.419839e-05 5.2229242e-05 9.4285714 - 20300 0.0026457344 0 1.3573924e-05 2.3628429e-05 4.9330286e-05 9.4285714 - 20400 0.0026592475 0 1.3439645e-05 2.4469429e-05 5.1570429e-05 9.4285714 - 20500 0.0026129298 0 1.3261647e-05 2.4468607e-05 5.1163936e-05 9.4285714 - 20600 0.0026532045 0 1.5275975e-05 2.3494207e-05 5.0569472e-05 9.4285714 - 20700 0.0026172433 0 1.4720887e-05 2.1839292e-05 5.0769214e-05 9.4285714 - 20800 0.0025282343 0 1.3852135e-05 2.0845003e-05 4.9690546e-05 9.4285714 - 20900 0.0025383322 0 1.353444e-05 2.2097076e-05 5.1303519e-05 9.4285714 - 21000 0.0024848857 0 1.4032657e-05 2.1964185e-05 5.3050324e-05 9.4285714 - 21100 0.0025091105 0 1.5334232e-05 2.1760041e-05 5.508965e-05 9.4285714 - 21200 0.0027229411 0 1.9418427e-05 2.2335523e-05 5.5657372e-05 9.4285714 - 21300 0.0028888226 0 2.3631969e-05 2.2967648e-05 5.5948438e-05 9.4285714 - 21400 0.0029336429 0 2.5044169e-05 2.2567194e-05 5.5413722e-05 9.4285714 - 21500 0.0029354446 0 2.4712642e-05 2.2624219e-05 5.5920832e-05 9.4285714 - 21600 0.0029270648 0 2.3842417e-05 2.3011885e-05 5.6087719e-05 9.4285714 - 21700 0.0029288781 0 2.3942959e-05 2.2810041e-05 5.7045772e-05 9.4285714 - 21800 0.002884005 0 2.4455829e-05 2.3081577e-05 5.6212968e-05 9.4285714 - 21900 0.0028362206 0 2.3350532e-05 2.49708e-05 5.3642917e-05 9.4285714 - 22000 0.0027784436 0 2.3311918e-05 2.3033334e-05 5.4359393e-05 9.4285714 - 22100 0.0027479829 0 2.4623514e-05 2.0287924e-05 5.3550114e-05 9.4285714 - 22200 0.0027598842 0 2.6073037e-05 2.1629185e-05 5.3119193e-05 9.4285714 - 22300 0.0026078138 0 2.6348246e-05 2.3093425e-05 5.4029431e-05 9.4285714 - 22400 0.0026057112 0 2.7316001e-05 2.4771567e-05 5.3484921e-05 9.4285714 - 22500 0.0026641722 0 2.6434166e-05 2.5849367e-05 5.2175653e-05 9.4285714 - 22600 0.0023728105 0 2.4436322e-05 2.4147316e-05 5.3971034e-05 9.4285714 - 22700 0.0021999097 0 2.4191892e-05 2.2725939e-05 5.3125105e-05 9.4285714 - 22800 0.002178124 0 2.4122577e-05 2.0194755e-05 5.3468522e-05 9.4285714 - 22900 0.0022903704 0 2.1332487e-05 1.8921598e-05 5.4657879e-05 9.4285714 - 23000 0.0022114595 0 1.930828e-05 1.4423335e-05 5.5387271e-05 9.4285714 - 23100 0.0022473179 0 2.0911663e-05 1.3467616e-05 5.4325686e-05 9.4285714 - 23200 0.0022787302 0 2.1538492e-05 1.5779872e-05 5.3591578e-05 9.4285714 - 23300 0.002254193 0 2.0552374e-05 1.7158208e-05 5.201196e-05 9.4285714 - 23400 0.0022032528 0 2.0514024e-05 1.6045426e-05 5.1691057e-05 9.4285714 - 23500 0.0022103262 0 2.2570839e-05 1.4990595e-05 5.0102702e-05 9.4285714 - 23600 0.0022767949 0 2.153875e-05 1.5934866e-05 4.9843486e-05 9.4285714 - 23700 0.002283034 0 2.0348727e-05 1.5852737e-05 4.9211887e-05 9.4285714 - 23800 0.0022293403 0 2.045052e-05 1.3951752e-05 4.9265994e-05 9.4285714 - 23900 0.0022421499 0 2.0541393e-05 1.3873188e-05 4.9783702e-05 9.4285714 - 24000 0.0022708179 0 2.0733448e-05 1.4464939e-05 5.0156761e-05 9.4285714 - 24100 0.0022311644 0 2.1753043e-05 1.4644732e-05 5.3630645e-05 9.4285714 - 24200 0.0022566051 0 2.3030277e-05 1.4212031e-05 5.3868685e-05 9.4285714 - 24300 0.0022547585 0 2.3946322e-05 1.331734e-05 5.2948407e-05 9.4285714 - 24400 0.0022901257 0 2.552016e-05 1.4594528e-05 5.3067402e-05 9.4285714 - 24500 0.0023537103 0 2.9369007e-05 1.5861923e-05 5.3200721e-05 9.4285714 - 24600 0.0023613708 0 2.9444021e-05 1.3691716e-05 5.4296289e-05 9.4285714 - 24700 0.0023237992 0 2.8805716e-05 1.1616027e-05 5.4142589e-05 9.4285714 - 24800 0.0024221927 0 3.1070958e-05 1.2059146e-05 5.406912e-05 9.4285714 - 24900 0.0025882547 0 3.7453428e-05 1.2082125e-05 5.4439426e-05 9.4285714 - 25000 0.0027152266 0 4.2549028e-05 1.1637136e-05 5.4292043e-05 9.4285714 - 25100 0.0028201154 0 4.6710609e-05 1.2903782e-05 5.3790595e-05 9.4285714 - 25200 0.0029086169 0 4.756645e-05 1.3260261e-05 5.7165687e-05 9.4285714 - 25300 0.0028528211 0 4.8705176e-05 1.1918164e-05 5.632163e-05 9.4285714 - 25400 0.0027655631 0 4.7538544e-05 1.186744e-05 5.3917832e-05 9.4285714 - 25500 0.0027631455 0 4.7296868e-05 1.2125391e-05 5.2651056e-05 9.4285714 - 25600 0.0027455338 0 4.8477007e-05 1.2403172e-05 5.7029384e-05 9.4285714 - 25700 0.0027314337 0 4.8377711e-05 1.254263e-05 5.7035789e-05 9.4285714 - 25800 0.0026789336 0 4.9232002e-05 1.1749936e-05 5.7580068e-05 9.4285714 - 25900 0.0026686904 0 5.0376929e-05 1.2811492e-05 5.9087927e-05 9.4285714 - 26000 0.0026703643 0 5.0974299e-05 1.3064292e-05 5.7801118e-05 9.4285714 - 26100 0.0026825353 0 4.9500137e-05 1.1676376e-05 5.695664e-05 9.4285714 - 26200 0.0026825174 0 4.972182e-05 1.0546822e-05 5.7622991e-05 9.4285714 - 26300 0.0025517718 0 4.36237e-05 1.082888e-05 5.8496458e-05 9.4285714 - 26400 0.002448155 0 3.6914303e-05 1.1208368e-05 6.0071981e-05 9.4285714 - 26500 0.0023334395 0 3.2968743e-05 1.0745176e-05 6.0011765e-05 9.4285714 - 26600 0.0023097701 0 3.0179184e-05 1.1497687e-05 5.9980393e-05 9.4285714 - 26700 0.0023614287 0 3.1929774e-05 1.4076482e-05 5.767606e-05 9.4285714 - 26800 0.0023955623 0 3.1551792e-05 1.7121208e-05 5.8187883e-05 9.4285714 - 26900 0.0019993736 0 1.8807723e-05 1.6770089e-05 5.7954922e-05 9.4285714 - 27000 0.0019497677 0 1.7354388e-05 1.6608976e-05 5.6225802e-05 9.4285714 - 27100 0.0020363076 0 2.1348268e-05 1.6918233e-05 5.7949239e-05 9.4285714 - 27200 0.0021974785 0 2.5205825e-05 2.0142198e-05 5.5376701e-05 9.4285714 - 27300 0.002350289 0 2.8900121e-05 2.3754068e-05 5.5263555e-05 9.4285714 - 27400 0.0026460053 0 3.2553147e-05 3.227333e-05 5.7954104e-05 9.4285714 - 27500 0.0027599044 0 3.2851254e-05 3.674649e-05 5.6341966e-05 9.4285714 - 27600 0.0026660556 0 3.2389038e-05 3.4626306e-05 5.5414375e-05 9.4285714 - 27700 0.0026060398 0 3.3223431e-05 3.2391399e-05 5.3340397e-05 9.4285714 - 27800 0.002724511 0 3.372415e-05 3.4485846e-05 5.4707128e-05 9.4285714 - 27900 0.0027318479 0 3.3234708e-05 3.5304313e-05 5.5589046e-05 9.4285714 - 28000 0.0026231478 0 3.2741313e-05 3.3225541e-05 5.398932e-05 9.4285714 - 28100 0.0025508556 0 3.3833477e-05 3.1513842e-05 5.4023598e-05 9.4285714 - 28200 0.0025807152 0 3.4548289e-05 3.3420009e-05 5.5627424e-05 9.4285714 - 28300 0.0024074206 0 3.0461599e-05 3.4140994e-05 5.6820341e-05 9.4285714 - 28400 0.0021292859 0 2.3624321e-05 3.4194604e-05 5.3656462e-05 9.4285714 - 28500 0.0022172558 0 1.8989998e-05 3.8241372e-05 5.0308571e-05 9.4285714 - 28600 0.0022653927 0 2.0006228e-05 4.1839298e-05 5.3834698e-05 9.4285714 - 28700 0.0025914898 0 2.4417865e-05 5.4161998e-05 5.2309701e-05 9.4285714 - 28800 0.0028276024 0 2.7173934e-05 5.9987722e-05 5.1277434e-05 9.4285714 - 28900 0.0029326653 0 2.9972273e-05 5.9404465e-05 5.3442041e-05 9.4285714 - 29000 0.002965493 0 3.0732118e-05 5.8813779e-05 5.4010354e-05 9.4285714 - 29100 0.0029096903 0 2.789911e-05 5.6948857e-05 5.3811328e-05 9.4285714 - 29200 0.0028604262 0 2.8541368e-05 5.5433392e-05 5.5266978e-05 9.4285714 - 29300 0.0028093312 0 3.1626568e-05 5.2793462e-05 5.9393321e-05 9.4285714 - 29400 0.0026786162 0 2.6580766e-05 4.1761109e-05 6.3731211e-05 9.4285714 - 29500 0.0025387867 0 2.4586262e-05 3.1439522e-05 6.5207101e-05 9.4285714 - 29600 0.0026569564 0 2.658665e-05 3.344894e-05 6.5578568e-05 9.4285714 - 29700 0.0027207144 0 2.4629031e-05 3.1640582e-05 7.3229358e-05 9.4285714 - 29800 0.0026892821 0 2.0092233e-05 2.9124688e-05 8.0756571e-05 9.4285714 - 29900 0.002643369 0 2.0481401e-05 3.0183662e-05 7.7273404e-05 9.4285714 - 30000 0.0026484998 0 1.9889243e-05 3.0560067e-05 7.7261634e-05 9.4285714 - 30100 0.0028058509 0 2.6399165e-05 3.004015e-05 8.3212623e-05 9.4285714 - 30200 0.0030353215 0 3.6921703e-05 3.4899864e-05 7.8543173e-05 9.4285714 - 30300 0.0030244988 0 4.0706399e-05 3.6091245e-05 7.4921988e-05 9.4285714 - 30400 0.0030855053 0 4.2502388e-05 3.8438853e-05 7.6268037e-05 9.4285714 - 30500 0.0031141819 0 4.3996743e-05 4.3726389e-05 6.8459715e-05 9.4285714 - 30600 0.0030115458 0 4.436657e-05 4.2288168e-05 6.5970726e-05 9.4285714 - 30700 0.0029700178 0 4.2448638e-05 4.1066034e-05 6.7905919e-05 9.4285714 - 30800 0.0029985358 0 4.3581039e-05 4.2782359e-05 6.616813e-05 9.4285714 - 30900 0.0029689517 0 4.3664983e-05 4.0341198e-05 6.6701993e-05 9.4285714 - 31000 0.0029622718 0 4.3233863e-05 3.8109114e-05 6.615517e-05 9.4285714 - 31100 0.0029693917 0 4.3443429e-05 3.6045147e-05 6.6807218e-05 9.4285714 - 31200 0.0027246348 0 3.8812502e-05 2.5969873e-05 6.9745525e-05 9.4285714 - 31300 0.0025368424 0 3.4331267e-05 2.1427734e-05 6.9565964e-05 9.4285714 - 31400 0.0023736698 0 3.2043786e-05 1.9880875e-05 6.6817156e-05 9.4285714 - 31500 0.0023946514 0 3.3170726e-05 1.9958211e-05 7.0242984e-05 9.4285714 - 31600 0.0025648037 0 3.5948214e-05 2.4022282e-05 7.8512704e-05 9.4285714 - 31700 0.0026956511 0 3.9195772e-05 3.3270216e-05 7.4223245e-05 9.4285714 - 31800 0.002677722 0 3.8651034e-05 3.4084086e-05 7.3747643e-05 9.4285714 - 31900 0.0026705496 0 3.8515991e-05 3.3258169e-05 7.4757118e-05 9.4285714 - 32000 0.0026466417 0 4.2241836e-05 3.449171e-05 7.0551161e-05 9.4285714 - 32100 0.0026464292 0 4.0974715e-05 3.6570061e-05 6.5387411e-05 9.4285714 - 32200 0.0023705665 0 2.951869e-05 3.011444e-05 6.6589524e-05 9.4285714 - 32300 0.0023183595 0 2.2729207e-05 3.0010044e-05 7.2706128e-05 9.4285714 - 32400 0.0023882969 0 2.372595e-05 3.1302357e-05 7.3782281e-05 9.4285714 - 32500 0.0023801754 0 2.2337455e-05 3.0476386e-05 7.5659736e-05 9.4285714 - 32600 0.0024127958 0 2.5510841e-05 3.0854572e-05 7.4410799e-05 9.4285714 - 32700 0.0024031675 0 2.7736693e-05 3.1958346e-05 7.1486437e-05 9.4285714 - 32800 0.0023770089 0 2.6385534e-05 3.3252416e-05 7.2822578e-05 9.4285714 - 32900 0.0023568819 0 2.8634678e-05 3.3258031e-05 6.7686839e-05 9.4285714 - 33000 0.0023407285 0 2.6769773e-05 3.2579304e-05 6.6690925e-05 9.4285714 - 33100 0.002327332 0 2.6645781e-05 3.4007498e-05 6.9628993e-05 9.4285714 - 33200 0.0023912585 0 2.3830565e-05 3.3441643e-05 7.4913813e-05 9.4285714 - 33300 0.0022984153 0 2.4483639e-05 3.2969557e-05 7.7726941e-05 9.4285714 - 33400 0.0022416368 0 2.3898793e-05 3.1031269e-05 7.686001e-05 9.4285714 - 33500 0.0022470637 0 2.0975902e-05 3.0084834e-05 7.570705e-05 9.4285714 - 33600 0.002256129 0 2.0520324e-05 2.8645032e-05 7.7384366e-05 9.4285714 - 33700 0.0022125246 0 1.9872713e-05 2.9850887e-05 7.5881174e-05 9.4285714 - 33800 0.0021842197 0 1.9711523e-05 2.983205e-05 7.3213854e-05 9.4285714 - 33900 0.0021690567 0 1.8055303e-05 2.828677e-05 7.3059722e-05 9.4285714 - 34000 0.0022206311 0 1.8792994e-05 2.8714121e-05 7.5766963e-05 9.4285714 - 34100 0.0022494061 0 2.1426406e-05 2.9683277e-05 7.5164305e-05 9.4285714 - 34200 0.0022085859 0 2.1896897e-05 2.8930132e-05 7.2805525e-05 9.4285714 - 34300 0.0021855633 0 2.0480867e-05 2.9992196e-05 7.2354191e-05 9.4285714 - 34400 0.0021798298 0 2.1236448e-05 3.2053048e-05 7.283282e-05 9.4285714 - 34500 0.0021267289 0 2.2129794e-05 2.8881701e-05 7.1551685e-05 9.4285714 - 34600 0.0020466804 0 2.3010184e-05 2.7531882e-05 7.2523946e-05 9.4285714 - 34700 0.0020969555 0 2.1337061e-05 3.0266865e-05 7.0863423e-05 9.4285714 - 34800 0.0022946237 0 2.2123517e-05 3.8911524e-05 7.2703415e-05 9.4285714 - 34900 0.0024490201 0 2.8420828e-05 5.0378173e-05 7.1772848e-05 9.4285714 - 35000 0.0023320217 0 2.8176618e-05 5.1789577e-05 6.8023074e-05 9.4285714 - 35100 0.0021890324 0 2.4442013e-05 5.2547725e-05 6.1661973e-05 9.4285714 - 35200 0.0022124553 0 2.4530724e-05 5.096875e-05 6.5186855e-05 9.4285714 - 35300 0.0022584165 0 2.7542443e-05 5.427333e-05 6.7536963e-05 9.4285714 - 35400 0.0022737238 0 2.504131e-05 5.4367041e-05 6.7123718e-05 9.4285714 - 35500 0.0021537481 0 2.1567488e-05 4.8699315e-05 6.7335416e-05 9.4285714 - 35600 0.0019831613 0 1.8746091e-05 4.3656184e-05 6.3180625e-05 9.4285714 - 35700 0.0019041909 0 1.9945089e-05 4.3868252e-05 5.8115913e-05 9.4285714 - 35800 0.0018216502 0 2.2392614e-05 4.2188069e-05 5.7629004e-05 9.4285714 - 35900 0.0018071574 0 2.1141753e-05 4.1327783e-05 5.630057e-05 9.4285714 - 36000 0.0018645267 0 2.2735521e-05 4.4296822e-05 5.4259075e-05 9.4285714 - 36100 0.0018474198 0 2.5295637e-05 4.6128849e-05 5.7469914e-05 9.4285714 - 36200 0.0017366166 0 2.6021589e-05 4.5563756e-05 5.5296808e-05 9.4285714 - 36300 0.0016630877 0 2.4135763e-05 4.58324e-05 5.2179718e-05 9.4285714 - 36400 0.0016809967 0 2.3427379e-05 4.7533202e-05 4.714932e-05 9.4285714 - 36500 0.0017478488 0 2.4021161e-05 4.6508842e-05 4.3949519e-05 9.4285714 - 36600 0.0017244649 0 2.3504871e-05 4.3628584e-05 4.3171518e-05 9.4285714 - 36700 0.001694793 0 2.2302323e-05 4.2349904e-05 4.396766e-05 9.4285714 - 36800 0.0016321204 0 2.1042421e-05 3.6396346e-05 4.4901304e-05 9.4285714 - 36900 0.0015208954 0 2.0456403e-05 2.7850556e-05 4.5155127e-05 9.4285714 - 37000 0.0014068755 0 2.0241724e-05 2.1785718e-05 4.5528636e-05 9.4285714 - 37100 0.0013361229 0 1.675977e-05 2.1314381e-05 4.6611487e-05 9.4285714 - 37200 0.001331474 0 1.6204509e-05 2.3621819e-05 5.0433204e-05 9.4285714 - 37300 0.0013895388 0 1.6721652e-05 3.0265014e-05 5.0091541e-05 9.4285714 - 37400 0.001407333 0 1.738976e-05 2.8850978e-05 5.1334019e-05 9.4285714 - 37500 0.0013815772 0 1.6241641e-05 3.0837468e-05 4.6825094e-05 9.4285714 - 37600 0.001367937 0 1.1983552e-05 2.9613642e-05 5.0754355e-05 9.4285714 - 37700 0.0013781896 0 1.1915379e-05 2.9242244e-05 4.8777649e-05 9.4285714 - 37800 0.0013938097 0 1.1529951e-05 3.1628776e-05 4.7715639e-05 9.4285714 - 37900 0.0013788852 0 1.2561324e-05 3.1951817e-05 4.7999073e-05 9.4285714 - 38000 0.0013409916 0 1.2473952e-05 3.1146722e-05 4.8401798e-05 9.4285714 - 38100 0.0013548793 0 1.1004651e-05 2.7320574e-05 4.9651495e-05 9.4285714 - 38200 0.0013619894 0 1.2229314e-05 2.574689e-05 4.9387883e-05 9.4285714 - 38300 0.0013593654 0 1.3392954e-05 2.427172e-05 5.1848635e-05 9.4285714 - 38400 0.0013488508 0 1.256534e-05 2.449982e-05 5.4623064e-05 9.4285714 - 38500 0.0013399961 0 1.2037162e-05 2.0814078e-05 5.6078474e-05 9.4285714 - 38600 0.0013473117 0 1.1744489e-05 1.6853428e-05 5.7231621e-05 9.4285714 - 38700 0.0013275262 0 1.093468e-05 1.4795508e-05 5.769577e-05 9.4285714 - 38800 0.001304838 0 1.1068283e-05 1.3115698e-05 6.0324982e-05 9.4285714 - 38900 0.0012981525 0 1.1709325e-05 1.3131645e-05 5.9760468e-05 9.4285714 - 39000 0.0013241474 0 1.261896e-05 1.4616086e-05 6.0256213e-05 9.4285714 - 39100 0.0013302715 0 1.1838509e-05 1.5600129e-05 6.432053e-05 9.4285714 - 39200 0.0013338793 0 1.2403697e-05 1.6279003e-05 6.2961888e-05 9.4285714 - 39300 0.001337749 0 1.3137034e-05 1.6207867e-05 6.0627848e-05 9.4285714 - 39400 0.0014184127 0 1.6180184e-05 1.8165982e-05 5.8887905e-05 9.4285714 - 39500 0.0015076229 0 1.9522159e-05 1.9795428e-05 5.910332e-05 9.4285714 - 39600 0.001584196 0 2.4027089e-05 2.0838917e-05 5.7603421e-05 9.4285714 - 39700 0.0016673141 0 2.9500045e-05 2.3045542e-05 5.5891462e-05 9.4285714 - 39800 0.0016983633 0 3.0305739e-05 2.4453535e-05 5.5981899e-05 9.4285714 - 39900 0.001721388 0 3.1340689e-05 2.4975831e-05 5.5548483e-05 9.4285714 - 40000 0.0016511866 0 3.370998e-05 2.6328206e-05 5.671433e-05 9.4285714 - 40100 0.0015902117 0 3.3681877e-05 2.5663116e-05 5.3013557e-05 9.4285714 - 40200 0.0016248457 0 3.0865269e-05 2.5397352e-05 5.1452424e-05 9.4285714 - 40300 0.001639017 0 3.1973896e-05 2.5525448e-05 5.4813301e-05 9.4285714 - 40400 0.0015947128 0 3.5965857e-05 2.5225505e-05 5.6385827e-05 9.4285714 - 40500 0.0014886812 0 3.7017265e-05 2.4882355e-05 5.2995469e-05 9.4285714 - 40600 0.001483951 0 3.4221499e-05 2.1479298e-05 5.4046331e-05 9.4285714 - 40700 0.0014877422 0 3.362595e-05 1.8839863e-05 5.5203171e-05 9.4285714 - 40800 0.0014974798 0 3.6392277e-05 1.7485578e-05 5.7247772e-05 9.4285714 - 40900 0.0014499802 0 3.3431089e-05 1.9674968e-05 5.6160238e-05 9.4285714 - 41000 0.001395913 0 2.9658496e-05 1.8273286e-05 5.6527772e-05 9.4285714 - 41100 0.0014079985 0 2.9771219e-05 1.6179289e-05 5.9153644e-05 9.4285714 - 41200 0.0014187083 0 2.7845336e-05 1.9035184e-05 5.7573549e-05 9.4285714 - 41300 0.0014072972 0 2.4886378e-05 2.0795562e-05 5.4986012e-05 9.4285714 - 41400 0.0014168981 0 2.358191e-05 2.1908287e-05 5.4674995e-05 9.4285714 - 41500 0.0014248439 0 2.3385735e-05 2.3170658e-05 5.3269277e-05 9.4285714 - 41600 0.0014225044 0 2.376616e-05 2.5694883e-05 5.2138491e-05 9.4285714 - 41700 0.0014075811 0 2.2374247e-05 2.7567814e-05 5.1299283e-05 9.4285714 - 41800 0.0012680617 0 2.2171263e-05 2.5019906e-05 5.4594068e-05 9.4285714 - 41900 0.0010587818 0 1.5440824e-05 2.093143e-05 5.3361822e-05 9.4285714 - 42000 0.0010007004 0 1.2044875e-05 1.7303459e-05 5.3021476e-05 9.4285714 - 42100 0.0011304402 0 1.2464466e-05 1.9304071e-05 5.5030158e-05 9.4285714 - 42200 0.0012833154 0 1.6978814e-05 2.4344322e-05 5.4664913e-05 9.4285714 - 42300 0.0013573853 0 1.8276863e-05 2.7764513e-05 5.4832226e-05 9.4285714 - 42400 0.0013330633 0 1.7445663e-05 2.5994427e-05 5.6219048e-05 9.4285714 - 42500 0.0012896373 0 1.7549999e-05 2.4461263e-05 5.5316804e-05 9.4285714 - 42600 0.001296775 0 1.7579818e-05 2.4729094e-05 5.4786174e-05 9.4285714 - 42700 0.0013193969 0 1.7589942e-05 2.6653321e-05 5.5601741e-05 9.4285714 - 42800 0.0013144903 0 1.7344148e-05 2.7396405e-05 5.6063261e-05 9.4285714 - 42900 0.0013053554 0 1.812017e-05 2.4357577e-05 5.5400672e-05 9.4285714 - 43000 0.0013061323 0 1.7976023e-05 2.5672617e-05 5.5591174e-05 9.4285714 - 43100 0.0013149372 0 1.8049252e-05 2.7694066e-05 5.7517507e-05 9.4285714 - 43200 0.0013063189 0 1.8000018e-05 2.5312637e-05 5.7758611e-05 9.4285714 - 43300 0.0012669853 0 1.7756679e-05 2.3718058e-05 5.7316755e-05 9.4285714 - 43400 0.0012238388 0 2.0194584e-05 2.1983277e-05 5.5573072e-05 9.4285714 - 43500 0.0012053096 0 2.0662764e-05 2.2371854e-05 5.3240833e-05 9.4285714 - 43600 0.001243323 0 2.3521544e-05 2.3272124e-05 5.4438848e-05 9.4285714 - 43700 0.001354992 0 2.8388806e-05 2.6835727e-05 5.1695181e-05 9.4285714 - 43800 0.0015252788 0 3.4452462e-05 3.2972955e-05 5.1148386e-05 9.4285714 - 43900 0.0016845587 0 3.7891883e-05 3.7259267e-05 5.3712665e-05 9.4285714 - 44000 0.0016987088 0 3.794299e-05 3.9188564e-05 5.22906e-05 9.4285714 - 44100 0.0016663634 0 3.6807094e-05 3.9253716e-05 5.2294244e-05 9.4285714 - 44200 0.0016642734 0 3.7043503e-05 3.9518624e-05 5.2702041e-05 9.4285714 - 44300 0.0016877933 0 3.8179716e-05 4.0630461e-05 5.3339506e-05 9.4285714 - 44400 0.0016937941 0 3.7131293e-05 4.1066259e-05 5.432841e-05 9.4285714 - 44500 0.001658184 0 3.5564842e-05 3.9986051e-05 5.4994687e-05 9.4285714 - 44600 0.0016202756 0 3.6182348e-05 4.0514972e-05 5.4343097e-05 9.4285714 - 44700 0.0012624519 0 3.6496068e-05 3.330838e-05 6.0193182e-05 9.4285714 - 44800 0.0012148648 0 3.7546572e-05 2.4531512e-05 6.0795743e-05 9.4285714 - 44900 0.0012565599 0 2.9767991e-05 2.3526786e-05 5.730112e-05 9.4285714 - 45000 0.0012298496 0 3.3326423e-05 2.2497973e-05 5.3986547e-05 9.4285714 - 45100 0.0012274205 0 3.310721e-05 2.2786466e-05 5.5167469e-05 9.4285714 - 45200 0.0012389066 0 3.4925053e-05 2.3497387e-05 5.4884661e-05 9.4285714 - 45300 0.0012251609 0 3.615161e-05 2.3152279e-05 5.3650078e-05 9.4285714 - 45400 0.0012814774 0 3.746516e-05 2.4153096e-05 5.1029288e-05 9.4285714 - 45500 0.0013450626 0 3.9489551e-05 2.6213973e-05 5.0267505e-05 9.4285714 - 45600 0.0013741472 0 4.2751714e-05 2.6741902e-05 4.9140966e-05 9.4285714 - 45700 0.0014351223 0 4.3930849e-05 2.6748326e-05 4.9411273e-05 9.4285714 - 45800 0.0015284371 0 4.6485067e-05 2.8704517e-05 4.9999511e-05 9.4285714 - 45900 0.001575355 0 4.5717321e-05 3.011393e-05 5.1143199e-05 9.4285714 - 46000 0.0015147792 0 4.1325851e-05 3.0384448e-05 5.1923e-05 9.4285714 - 46100 0.0014504182 0 3.9540594e-05 3.1635289e-05 5.0948968e-05 9.4285714 - 46200 0.0014410639 0 3.965176e-05 3.0362005e-05 4.8786102e-05 9.4285714 - 46300 0.0014810525 0 4.1568241e-05 3.0756475e-05 4.8680363e-05 9.4285714 - 46400 0.0014640215 0 4.309465e-05 2.985089e-05 4.9009517e-05 9.4285714 - 46500 0.0014424933 0 4.2309209e-05 2.9280621e-05 4.8629444e-05 9.4285714 - 46600 0.001441165 0 4.2539286e-05 3.0934085e-05 4.9784857e-05 9.4285714 - 46700 0.0015025344 0 4.4979228e-05 3.1000179e-05 4.8462809e-05 9.4285714 - 46800 0.0015582176 0 4.7282405e-05 3.2706414e-05 4.5724526e-05 9.4285714 - 46900 0.0015803324 0 4.7650091e-05 3.4907217e-05 4.4832148e-05 9.4285714 - 47000 0.001675143 0 5.1693701e-05 3.6882816e-05 4.6006875e-05 9.4285714 - 47100 0.0017769921 0 5.6400585e-05 3.9830957e-05 4.6950937e-05 9.4285714 - 47200 0.0018358006 0 5.9232345e-05 4.3665585e-05 4.6768506e-05 9.4285714 - 47300 0.0017951326 0 5.6422198e-05 4.3944608e-05 4.8336201e-05 9.4285714 - 47400 0.0017057371 0 5.4710398e-05 3.9941549e-05 4.7652027e-05 9.4285714 - 47500 0.0016744493 0 5.2852149e-05 3.7232824e-05 4.5384467e-05 9.4285714 - 47600 0.0014031951 0 4.1326626e-05 3.0025176e-05 4.3875657e-05 9.4285714 - 47700 0.0013373039 0 3.7514245e-05 2.9655038e-05 4.316088e-05 9.4285714 - 47800 0.0014704003 0 4.1417238e-05 3.4940895e-05 4.447442e-05 9.4285714 - 47900 0.0014934525 0 4.3132757e-05 3.7137359e-05 4.4062556e-05 9.4285714 - 48000 0.0014895856 0 4.6046202e-05 3.6927333e-05 4.3726122e-05 9.4285714 - 48100 0.00146967 0 4.6872982e-05 3.9649234e-05 4.597459e-05 9.4285714 - 48200 0.0015682986 0 4.8924923e-05 4.738992e-05 4.3767565e-05 9.4285714 - 48300 0.0017163505 0 5.2171663e-05 5.3787554e-05 4.4084292e-05 9.4285714 - 48400 0.0014261936 0 4.3093196e-05 5.6810791e-05 5.4178929e-05 9.4285714 - 48500 0.0014236361 0 3.9093573e-05 4.8266345e-05 5.346877e-05 9.4285714 - 48600 0.0014562257 0 4.0734834e-05 4.2323892e-05 4.8295024e-05 9.4285714 - 48700 0.0013758282 0 3.6847543e-05 3.5139344e-05 4.8073535e-05 9.4285714 - 48800 0.0014316476 0 3.7554019e-05 3.5556116e-05 4.7370089e-05 9.4285714 - 48900 0.0014805023 0 3.5226264e-05 3.3817592e-05 5.2499511e-05 9.4285714 - 49000 0.0013776549 0 3.2439848e-05 2.997493e-05 5.3101978e-05 9.4285714 - 49100 0.0013617488 0 3.2279492e-05 3.0772411e-05 5.1632538e-05 9.4285714 - 49200 0.0013342401 0 2.8600175e-05 3.2651245e-05 5.3349695e-05 9.4285714 - 49300 0.001276486 0 2.7777544e-05 2.96306e-05 5.4374435e-05 9.4285714 - 49400 0.0011795288 0 2.2827442e-05 2.8085944e-05 5.2012108e-05 9.4285714 - 49500 0.0011435859 0 2.2873378e-05 2.7199584e-05 4.8565744e-05 9.4285714 - 49600 0.001247689 0 2.5002038e-05 3.0378272e-05 5.4987332e-05 9.4285714 - 49700 0.0013371245 0 2.6349724e-05 3.4033827e-05 5.8350385e-05 9.4285714 - 49800 0.001301722 0 2.4983049e-05 3.3355962e-05 5.7259996e-05 9.4285714 - 49900 0.0012728363 0 2.4271773e-05 3.366383e-05 5.4969958e-05 9.4285714 - 50000 0.0013286836 0 2.4626397e-05 3.4888455e-05 5.6333036e-05 9.4285714 - 50100 0.0013460063 0 2.5626025e-05 3.4617082e-05 5.8834535e-05 9.4285714 - 50200 0.0012868089 0 2.3749355e-05 3.3262754e-05 5.7555068e-05 9.4285714 - 50300 0.0012765172 0 2.3286644e-05 3.285494e-05 5.6753429e-05 9.4285714 - 50400 0.0012703222 0 2.2664849e-05 3.2123476e-05 5.8001158e-05 9.4285714 - 50500 0.0011906512 0 1.8988144e-05 2.5734872e-05 6.0360828e-05 9.4285714 - 50600 0.0011537339 0 1.7108695e-05 2.2700119e-05 6.3433107e-05 9.4285714 - 50700 0.0011267336 0 1.7970895e-05 2.4672948e-05 5.8568632e-05 9.4285714 - 50800 0.0011753482 0 1.9468991e-05 2.5939765e-05 5.9862885e-05 9.4285714 - 50900 0.0011919232 0 2.0208188e-05 2.7321787e-05 5.9048906e-05 9.4285714 - 51000 0.0011838525 0 2.1827961e-05 2.9118892e-05 5.2803692e-05 9.4285714 - 51100 0.0011883954 0 2.2709257e-05 2.8506733e-05 5.4654615e-05 9.4285714 - 51200 0.0012349694 0 2.5890907e-05 2.8698467e-05 5.7896353e-05 9.4285714 - 51300 0.0012337432 0 2.7687089e-05 2.7653507e-05 5.9917212e-05 9.4285714 - 51400 0.0011577306 0 2.8378044e-05 2.3224364e-05 5.8057014e-05 9.4285714 - 51500 0.0011811724 0 2.8435714e-05 2.1929674e-05 5.9722575e-05 9.4285714 - 51600 0.0012159313 0 3.1521829e-05 2.2796335e-05 5.924849e-05 9.4285714 - 51700 0.0011936762 0 3.4012729e-05 2.3864808e-05 5.7265759e-05 9.4285714 - 51800 0.00119466 0 3.5158377e-05 2.5231988e-05 5.8412082e-05 9.4285714 - 51900 0.0012013641 0 3.3334001e-05 2.6816388e-05 5.861301e-05 9.4285714 - 52000 0.0011652185 0 3.0940041e-05 2.6655324e-05 5.7090011e-05 9.4285714 - 52100 0.0011222289 0 3.1077905e-05 2.4541748e-05 5.5666069e-05 9.4285714 - 52200 0.0011223637 0 3.2939544e-05 2.5096815e-05 5.6416173e-05 9.4285714 - 52300 0.00108781 0 3.4613486e-05 2.7303053e-05 5.6746437e-05 9.4285714 - 52400 0.0010329114 0 3.6196201e-05 2.8068523e-05 5.2439815e-05 9.4285714 - 52500 0.0010414794 0 3.673215e-05 2.7272718e-05 5.143023e-05 9.4285714 - 52600 0.0011160581 0 3.5468006e-05 2.7495373e-05 5.401667e-05 9.4285714 - 52700 0.0011365494 0 3.6522651e-05 2.8130517e-05 5.1952685e-05 9.4285714 - 52800 0.0011528486 0 3.8067909e-05 3.2231442e-05 4.9590134e-05 9.4285714 - 52900 0.001215765 0 4.2804899e-05 3.6927536e-05 5.1170177e-05 9.4285714 - 53000 0.0013368124 0 4.5592002e-05 4.1563931e-05 5.4427869e-05 9.4285714 - 53100 0.0013407312 0 4.5591201e-05 4.3600841e-05 4.9047373e-05 9.4285714 - 53200 0.0013326843 0 4.4821382e-05 4.1764227e-05 4.6186223e-05 9.4285714 - 53300 0.0013239729 0 4.3827862e-05 4.4020784e-05 4.3852213e-05 9.4285714 - 53400 0.0013217143 0 4.3572994e-05 4.7084118e-05 4.3149657e-05 9.4285714 - 53500 0.0012781803 0 4.460572e-05 4.8061498e-05 4.2708059e-05 9.4285714 - 53600 0.001268382 0 4.458824e-05 4.5673787e-05 4.1230488e-05 9.4285714 - 53700 0.0012069904 0 4.1562438e-05 4.2697726e-05 4.1986265e-05 9.4285714 - 53800 0.0011968988 0 4.5963049e-05 4.0317052e-05 4.3564542e-05 9.4285714 - 53900 0.0011731954 0 4.5626132e-05 3.9016561e-05 4.2699438e-05 9.4285714 - 54000 0.0011606061 0 4.2734103e-05 3.8922865e-05 4.2063758e-05 9.4285714 - 54100 0.0011658982 0 3.9764581e-05 3.672962e-05 4.7476053e-05 9.4285714 - 54200 0.0011195165 0 3.5569124e-05 3.3590873e-05 4.8421311e-05 9.4285714 - 54300 0.0010220393 0 3.2252593e-05 3.0968164e-05 4.987935e-05 9.4285714 - 54400 0.0010086172 0 3.6631232e-05 3.0359237e-05 5.1629214e-05 9.4285714 - 54500 0.0010183988 0 3.7406525e-05 2.632072e-05 5.1823266e-05 9.4285714 - 54600 0.0010068716 0 3.6673782e-05 2.3899354e-05 4.883163e-05 9.4285714 - 54700 0.00099012603 0 3.3975738e-05 2.2165277e-05 4.788027e-05 9.4285714 - 54800 0.0009683722 0 3.235553e-05 2.2982659e-05 5.0112286e-05 9.4285714 - 54900 0.00097629715 0 3.2268492e-05 2.5601046e-05 4.8627644e-05 9.4285714 - 55000 0.00095157382 0 3.1040046e-05 2.437472e-05 4.637034e-05 9.4285714 - 55100 0.00090688968 0 2.9340275e-05 2.1953227e-05 4.3141384e-05 9.4285714 - 55200 0.00088813057 0 2.8284065e-05 2.1733676e-05 4.2934237e-05 9.4285714 - 55300 0.00092557007 0 2.8620339e-05 2.3675426e-05 4.3885475e-05 9.4285714 - 55400 0.00091327263 0 2.762239e-05 2.641616e-05 4.4396082e-05 9.4285714 - 55500 0.00079921186 0 2.9224842e-05 2.5168399e-05 4.3290943e-05 9.4285714 - 55600 0.00081947901 0 2.8418244e-05 2.2268749e-05 4.9968371e-05 9.4285714 - 55700 0.00084804465 0 2.1646302e-05 2.3720621e-05 5.205521e-05 9.4285714 - 55800 0.00085118568 0 2.2504085e-05 2.2872302e-05 4.9963437e-05 9.4285714 - 55900 0.00079015144 0 2.1456661e-05 1.9796776e-05 4.8884464e-05 9.4285714 - 56000 0.00077424122 0 2.2875959e-05 1.721853e-05 4.7217244e-05 9.4285714 - 56100 0.00078729859 0 2.750101e-05 1.8189823e-05 4.7065369e-05 9.4285714 - 56200 0.00073803593 0 2.8848488e-05 1.8153302e-05 4.571796e-05 9.4285714 - 56300 0.00072042566 0 2.842146e-05 1.5690166e-05 4.4828579e-05 9.4285714 - 56400 0.00072618636 0 2.7559372e-05 1.5504007e-05 4.399204e-05 9.4285714 - 56500 0.00072889383 0 2.7924251e-05 1.6823511e-05 4.2305183e-05 9.4285714 - 56600 0.00071687768 0 2.9101443e-05 1.6332857e-05 4.2086891e-05 9.4285714 - 56700 0.00070767909 0 3.0080534e-05 1.532979e-05 4.2661404e-05 9.4285714 - 56800 0.0007079533 0 2.8817943e-05 1.6206535e-05 4.2253735e-05 9.4285714 - 56900 0.00068006672 0 2.7371942e-05 1.7051153e-05 3.9711699e-05 9.4285714 - 57000 0.000671041 0 2.6892964e-05 1.5542748e-05 3.8373488e-05 9.4285714 - 57100 0.00074371147 0 2.8066609e-05 1.8321889e-05 3.9806125e-05 9.4285714 - 57200 0.00081400221 0 2.8670502e-05 2.8899856e-05 4.0663376e-05 9.4285714 - 57300 0.000917037 0 2.7824502e-05 3.9014624e-05 4.2174406e-05 9.4285714 - 57400 0.00094626663 0 2.5794485e-05 4.1535293e-05 4.2086614e-05 9.4285714 - 57500 0.00093346301 0 2.5487117e-05 4.0862488e-05 4.1990151e-05 9.4285714 - 57600 0.00093999622 0 2.6720752e-05 4.0748175e-05 4.3650361e-05 9.4285714 - 57700 0.00094337314 0 2.639701e-05 4.0729782e-05 4.5121665e-05 9.4285714 - 57800 0.00092645123 0 2.6909739e-05 4.0150191e-05 4.3822005e-05 9.4285714 - 57900 0.00091253668 0 2.5642193e-05 3.6671075e-05 4.4028328e-05 9.4285714 - 58000 0.0009262852 0 2.4409205e-05 3.4409346e-05 4.4000636e-05 9.4285714 - 58100 0.00093298888 0 2.3677747e-05 3.2551966e-05 4.3694114e-05 9.4285714 - 58200 0.00093354721 0 2.2375814e-05 3.2117822e-05 4.4639312e-05 9.4285714 - 58300 0.00093283167 0 2.2884257e-05 3.090895e-05 4.5086768e-05 9.4285714 - 58400 0.00093485322 0 2.3712272e-05 3.0236548e-05 4.5930955e-05 9.4285714 - 58500 0.00092566721 0 2.405659e-05 2.87637e-05 4.8903625e-05 9.4285714 - 58600 0.00093205032 0 2.3525309e-05 2.8285934e-05 5.2291285e-05 9.4285714 - 58700 0.00094034992 0 2.4008311e-05 2.5804337e-05 5.3505489e-05 9.4285714 - 58800 0.00096489026 0 2.4355825e-05 2.8532919e-05 5.3761099e-05 9.4285714 - 58900 0.00097781296 0 2.6084526e-05 3.1039765e-05 5.2910774e-05 9.4285714 - 59000 0.00095088201 0 2.7035865e-05 3.1452129e-05 5.3165727e-05 9.4285714 - 59100 0.00092096092 0 2.6786706e-05 3.382956e-05 5.0768712e-05 9.4285714 - 59200 0.0009112309 0 2.5867113e-05 3.4359567e-05 4.9291183e-05 9.4285714 - 59300 0.00090372653 0 2.5622941e-05 3.7144276e-05 4.7289805e-05 9.4285714 - 59400 0.00086115007 0 2.2280155e-05 3.5823023e-05 4.6830658e-05 9.4285714 - 59500 0.00078451189 0 2.2220981e-05 2.6156784e-05 4.6914457e-05 9.4285714 - 59600 0.00078587175 0 2.3370931e-05 2.5032607e-05 4.9704371e-05 9.4285714 - 59700 0.00080103949 0 2.387346e-05 2.8536648e-05 4.7938414e-05 9.4285714 - 59800 0.00078782591 0 2.319423e-05 2.8210585e-05 4.7677072e-05 9.4285714 - 59900 0.00077243837 0 2.3631843e-05 2.8691006e-05 4.7228518e-05 9.4285714 - 60000 0.00075159859 0 2.3775193e-05 2.9335754e-05 4.5277107e-05 9.4285714 - 60100 0.00072169229 0 2.1979779e-05 3.0104074e-05 4.5923405e-05 9.4285714 - 60200 0.00067937954 0 2.0306575e-05 2.8735522e-05 4.5275658e-05 9.4285714 - 60300 0.00067260226 0 2.0810173e-05 2.6609433e-05 4.3648953e-05 9.4285714 - 60400 0.00069286984 0 2.4253823e-05 2.5126495e-05 4.258699e-05 9.4285714 - 60500 0.00069736312 0 2.7101459e-05 2.4283276e-05 4.2346847e-05 9.4285714 - 60600 0.00069858614 0 2.5781332e-05 2.4087945e-05 4.2183121e-05 9.4285714 - 60700 0.00069821214 0 2.4965653e-05 2.080958e-05 4.1576529e-05 9.4285714 - 60800 0.0007035508 0 2.5136105e-05 1.82106e-05 4.2416771e-05 9.4285714 - 60900 0.00070770846 0 2.4339709e-05 1.7024772e-05 4.3565509e-05 9.4285714 - 61000 0.00070195965 0 2.4160978e-05 1.561415e-05 4.4516846e-05 9.4285714 - 61100 0.00067865064 0 2.4754436e-05 1.6095324e-05 4.5917833e-05 9.4285714 - 61200 0.00063690893 0 2.2652857e-05 1.7060397e-05 4.715524e-05 9.4285714 - 61300 0.00064194236 0 2.2650362e-05 1.4267909e-05 4.3531168e-05 9.4285714 - 61400 0.00063121847 0 2.1529461e-05 1.2841701e-05 4.0585367e-05 9.4285714 - 61500 0.00065356029 0 2.3536414e-05 1.3344947e-05 4.1167487e-05 9.4285714 - 61600 0.00066743886 0 2.4866121e-05 1.3946269e-05 4.176316e-05 9.4285714 - 61700 0.00064876312 0 2.3723161e-05 1.3749913e-05 4.2058416e-05 9.4285714 - 61800 0.00063251553 0 2.3037843e-05 1.2308212e-05 4.1311007e-05 9.4285714 - 61900 0.00065196202 0 2.371008e-05 1.2119818e-05 4.1136972e-05 9.4285714 - 62000 0.00066211487 0 2.4305587e-05 1.3415536e-05 4.1013521e-05 9.4285714 - 62100 0.00063838911 0 2.3294318e-05 1.377487e-05 4.0954053e-05 9.4285714 - 62200 0.00062154839 0 2.1558175e-05 1.3359191e-05 4.1245046e-05 9.4285714 - 62300 0.00063042258 0 2.1018073e-05 1.3643859e-05 4.2295629e-05 9.4285714 - 62400 0.00064307282 0 2.2417944e-05 1.3691778e-05 4.3440168e-05 9.4285714 - 62500 0.00062261967 0 2.2993973e-05 1.3754566e-05 4.4100385e-05 9.4285714 - 62600 0.00053916399 0 1.5362019e-05 1.2502815e-05 4.4138039e-05 9.4285714 - 62700 0.00057010612 0 1.5796506e-05 1.2697622e-05 4.4452456e-05 9.4285714 - 62800 0.00057237373 0 1.5874305e-05 1.325341e-05 4.3827972e-05 9.4285714 - 62900 0.00056115858 0 1.6555148e-05 1.3080646e-05 4.434918e-05 9.4285714 - 63000 0.0005691916 0 1.7337274e-05 1.3018716e-05 4.5966666e-05 9.4285714 - 63100 0.00056814223 0 1.8372705e-05 1.3213928e-05 4.5013147e-05 9.4285714 - 63200 0.00055359969 0 1.7755667e-05 1.226889e-05 4.4263871e-05 9.4285714 - 63300 0.00053663894 0 1.6493197e-05 1.0859989e-05 4.3835591e-05 9.4285714 - 63400 0.00055318219 0 1.7265416e-05 1.2265785e-05 4.2879248e-05 9.4285714 - 63500 0.0005601025 0 1.7295499e-05 1.4239119e-05 4.3011721e-05 9.4285714 - 63600 0.00054583913 0 1.6525634e-05 1.4678843e-05 4.2469934e-05 9.4285714 - 63700 0.00053483868 0 1.6625875e-05 1.5078172e-05 4.2493824e-05 9.4285714 - 63800 0.00055522493 0 1.7480604e-05 1.5374684e-05 4.272595e-05 9.4285714 - 63900 0.00056121598 0 1.7772973e-05 1.5172133e-05 4.2798662e-05 9.4285714 - 64000 0.00054407633 0 1.6885044e-05 1.413276e-05 4.2546454e-05 9.4285714 - 64100 0.00053661653 0 1.6234338e-05 1.403684e-05 4.2825695e-05 9.4285714 - 64200 0.00055006192 0 1.6649951e-05 1.4056747e-05 4.3482046e-05 9.4285714 - 64300 0.00055163304 0 1.6461598e-05 1.3167903e-05 4.3726787e-05 9.4285714 - 64400 0.00053078787 0 1.6251525e-05 1.19464e-05 4.3358318e-05 9.4285714 - 64500 0.00052058058 0 1.6643557e-05 1.2630836e-05 4.3429169e-05 9.4285714 - 64600 0.00052834957 0 1.7353655e-05 1.364227e-05 4.2400392e-05 9.4285714 - 64700 0.00051311026 0 1.758087e-05 1.4884436e-05 4.228116e-05 9.4285714 - 64800 0.00048606856 0 1.8167314e-05 1.5185881e-05 4.1313198e-05 9.4285714 - 64900 0.00047345864 0 1.8776746e-05 1.5164217e-05 3.998748e-05 9.4285714 - 65000 0.00048454696 0 1.8995386e-05 1.4818088e-05 3.9244802e-05 9.4285714 - 65100 0.00048928041 0 1.8341025e-05 1.3978549e-05 3.9434274e-05 9.4285714 - 65200 0.00047037779 0 1.7440302e-05 1.2970355e-05 3.8631037e-05 9.4285714 - 65300 0.000474477 0 1.7730462e-05 1.2778417e-05 3.8374171e-05 9.4285714 - 65400 0.00047558993 0 1.8645893e-05 1.303845e-05 3.9299974e-05 9.4285714 - 65500 0.00046258212 0 1.8683635e-05 1.2737042e-05 3.99647e-05 9.4285714 - 65600 0.00044433429 0 1.6571796e-05 1.2754279e-05 3.8518715e-05 9.4285714 - 65700 0.00045238336 0 1.5273478e-05 1.2923777e-05 3.6940008e-05 9.4285714 - 65800 0.00045926142 0 1.5338149e-05 1.2009407e-05 3.6438821e-05 9.4285714 - 65900 0.00045814994 0 1.5980648e-05 1.1749036e-05 3.6297575e-05 9.4285714 - 66000 0.00045395179 0 1.7924167e-05 1.2624087e-05 3.7065746e-05 9.4285714 - 66100 0.00044097892 0 1.9034226e-05 1.356976e-05 3.8933851e-05 9.4285714 - 66200 0.00041508101 0 1.8402026e-05 1.4705713e-05 3.8748663e-05 9.4285714 - 66300 0.00041227685 0 1.908236e-05 1.6649716e-05 3.7753553e-05 9.4285714 - 66400 0.00039539458 0 1.8057048e-05 1.6143874e-05 3.7074006e-05 9.4285714 - 66500 0.00038647539 0 1.698015e-05 1.3801339e-05 3.5358951e-05 9.4285714 - 66600 0.00037432719 0 1.7509843e-05 1.4033428e-05 3.5206119e-05 9.4285714 - 66700 0.00035679642 0 1.8373478e-05 1.412795e-05 3.2664378e-05 9.4285714 - 66800 0.00034618795 0 1.9514845e-05 1.4608894e-05 3.2352472e-05 9.4285714 - 66900 0.00032906055 0 1.8736605e-05 1.523461e-05 3.3161408e-05 9.4285714 - 67000 0.00031945785 0 1.6984612e-05 1.4969242e-05 3.3142807e-05 9.4285714 - 67100 0.00031672216 0 1.7483062e-05 1.5927363e-05 3.3297451e-05 9.4285714 - 67200 0.00030445379 0 1.7092794e-05 1.5979956e-05 3.3953736e-05 9.4285714 - 67300 0.00028386109 0 1.6371034e-05 1.4946504e-05 3.3294272e-05 9.4285714 - 67400 0.00028463754 0 1.6562782e-05 1.522773e-05 3.3193414e-05 9.4285714 - 67500 0.00028212316 0 1.7000058e-05 1.688192e-05 3.0305767e-05 9.4285714 - 67600 0.00027447589 0 1.7252228e-05 1.7793217e-05 2.7940287e-05 9.4285714 - 67700 0.00026388856 0 1.788708e-05 1.7737963e-05 2.7767523e-05 9.4285714 - 67800 0.00024769801 0 1.7986182e-05 1.6911674e-05 2.6242072e-05 9.4285714 - 67900 0.00024192231 0 1.8117237e-05 1.6810584e-05 2.5489128e-05 9.4285714 - 68000 0.00023732277 0 1.7792025e-05 1.6237435e-05 2.3955138e-05 9.4285714 - 68100 0.0002230537 0 1.8040504e-05 1.509807e-05 2.4258324e-05 9.4285714 - 68200 0.00020295655 0 1.7396258e-05 1.432954e-05 2.2297953e-05 9.4285714 - 68300 0.0002040692 0 1.4709241e-05 1.3357816e-05 1.9379008e-05 9.4285714 - 68400 0.0001928169 0 1.3319281e-05 1.3285272e-05 1.9247674e-05 9.4285714 - 68500 0.00019326451 0 1.3554406e-05 1.3433023e-05 2.0649044e-05 9.4285714 - 68600 0.00019061041 0 1.3385102e-05 1.3584385e-05 1.9332432e-05 9.4285714 - 68700 0.00017904605 0 1.3288304e-05 1.3807963e-05 1.7099578e-05 9.4285714 - 68800 0.00017200167 0 1.4014515e-05 1.3305447e-05 1.6005157e-05 9.4285714 - 68900 0.00016728354 0 1.4358398e-05 1.4318143e-05 1.7530654e-05 9.4285714 - 69000 0.00015703321 0 1.5503927e-05 1.5119926e-05 1.7369909e-05 9.4285714 - 69100 0.00014835113 0 1.6646462e-05 1.3971022e-05 1.6344915e-05 9.4285714 - 69200 0.00014631648 0 1.5954987e-05 1.2795675e-05 1.6309035e-05 9.4285714 - 69300 0.00014587978 0 1.5293418e-05 1.2677732e-05 1.7233536e-05 9.4285714 - 69400 0.0001418924 0 1.5258493e-05 1.3019793e-05 1.7515483e-05 9.4285714 - 69500 0.00013332024 0 1.4812384e-05 1.303409e-05 1.7383204e-05 9.4285714 - 69600 0.00013320187 0 1.4156146e-05 1.3180657e-05 1.7662244e-05 9.4285714 - 69700 0.00013039836 0 1.3247552e-05 1.2811783e-05 1.6799406e-05 9.4285714 - 69800 0.00012003394 0 1.2945301e-05 1.2559804e-05 1.5746066e-05 9.4285714 - 69900 0.00011651147 0 1.2355239e-05 1.2393181e-05 1.4350427e-05 9.4285714 - 70000 0.00012197106 0 1.1842768e-05 1.3044816e-05 1.4170863e-05 9.4285714 - 70100 0.00011813389 0 1.1625743e-05 1.3313213e-05 1.5063448e-05 9.4285714 - 70200 0.00011097253 0 1.1590401e-05 1.2554923e-05 1.4597134e-05 9.4285714 - 70300 0.00010887364 0 1.1158154e-05 1.1895927e-05 1.31874e-05 9.4285714 - 70400 0.00010916786 0 1.0956876e-05 1.180273e-05 1.2846539e-05 9.4285714 - 70500 0.00010031774 0 1.0360778e-05 1.1514343e-05 1.2521203e-05 9.4285714 - 70600 9.1002834e-05 0 1.0300514e-05 1.117085e-05 1.1527003e-05 9.4285714 - 70700 8.9186179e-05 0 1.0609829e-05 1.0737094e-05 1.0837865e-05 9.4285714 - 70800 9.1206485e-05 0 1.0401734e-05 9.9843249e-06 1.0249157e-05 9.4285714 - 70900 9.2333335e-05 0 1.0193791e-05 9.0808065e-06 9.8992907e-06 9.4285714 - 71000 9.1646266e-05 0 1.0160677e-05 8.7435373e-06 9.7169582e-06 9.4285714 - 71100 8.9976882e-05 0 1.0153135e-05 9.1409494e-06 9.5718498e-06 9.4285714 - 71200 8.7702811e-05 0 9.8902233e-06 9.1879521e-06 9.8218671e-06 9.4285714 - 71300 8.6905185e-05 0 9.5383545e-06 8.7211783e-06 1.0499374e-05 9.4285714 - 71400 8.5684023e-05 0 9.253314e-06 8.3885129e-06 1.0606272e-05 9.4285714 - 71500 8.303695e-05 0 8.8819413e-06 8.3461936e-06 1.0273368e-05 9.4285714 - 71600 8.0199459e-05 0 8.9747038e-06 8.2066881e-06 9.9704252e-06 9.4285714 - 71700 7.8917712e-05 0 9.0271304e-06 7.7429742e-06 9.9361512e-06 9.4285714 - 71800 8.006745e-05 0 8.8187404e-06 7.4107567e-06 9.9020703e-06 9.4285714 - 71900 7.8740588e-05 0 8.5325535e-06 7.4640436e-06 9.6978695e-06 9.4285714 - 72000 7.758597e-05 0 8.4232259e-06 7.4096936e-06 1.0295265e-05 9.4285714 - 72100 7.7221401e-05 0 8.2221646e-06 7.0735469e-06 1.0729758e-05 9.4285714 - 72200 7.6375029e-05 0 7.8256335e-06 6.6839282e-06 1.0036496e-05 9.4285714 - 72300 7.2834947e-05 0 7.3129398e-06 6.5549375e-06 9.3647818e-06 9.4285714 - 72400 7.2648265e-05 0 7.1756961e-06 6.6155121e-06 9.9549307e-06 9.4285714 - 72500 7.3708292e-05 0 7.2472933e-06 6.3958474e-06 1.0123332e-05 9.4285714 - 72600 7.1153221e-05 0 7.3278587e-06 6.1367701e-06 9.7342661e-06 9.4285714 - 72700 6.9093949e-05 0 7.4363962e-06 5.9533119e-06 9.7560578e-06 9.4285714 - 72800 7.0003138e-05 0 7.5425112e-06 5.8275253e-06 1.0368232e-05 9.4285714 - 72900 7.097186e-05 0 7.4852771e-06 5.9091762e-06 1.0469988e-05 9.4285714 - 73000 6.9754446e-05 0 7.1428704e-06 6.0128613e-06 9.845617e-06 9.4285714 - 73100 6.8919462e-05 0 6.8577848e-06 6.0078752e-06 9.5062768e-06 9.4285714 - 73200 7.0813485e-05 0 6.915193e-06 5.8464766e-06 9.5542243e-06 9.4285714 - 73300 7.2448906e-05 0 7.202029e-06 5.9255145e-06 9.366303e-06 9.4285714 - 73400 7.1636811e-05 0 7.3658376e-06 6.0353436e-06 9.0035204e-06 9.4285714 - 73500 7.0735739e-05 0 7.3378932e-06 5.9233113e-06 9.2103137e-06 9.4285714 - 73600 7.103569e-05 0 7.4016369e-06 5.7191072e-06 9.590302e-06 9.4285714 - 73700 7.1516165e-05 0 7.5406525e-06 5.5544712e-06 9.2023549e-06 9.4285714 - 73800 7.0454708e-05 0 7.349261e-06 5.3580841e-06 8.44158e-06 9.4285714 - 73900 7.0921505e-05 0 7.0116409e-06 5.019628e-06 8.392926e-06 9.4285714 - 74000 7.3462894e-05 0 6.8708293e-06 4.6604305e-06 8.6159539e-06 9.4285714 - 74100 7.3200399e-05 0 6.760504e-06 4.5172181e-06 8.6590907e-06 9.4285714 - 74200 7.1848724e-05 0 6.598806e-06 4.5142909e-06 8.9015449e-06 9.4285714 - 74300 7.2382347e-05 0 6.4910604e-06 4.55638e-06 9.5190459e-06 9.4285714 - 74400 7.3931763e-05 0 6.5463337e-06 4.557173e-06 9.9812236e-06 9.4285714 - 74500 7.4402751e-05 0 6.7422317e-06 4.5967137e-06 9.9997382e-06 9.4285714 - 74600 7.3859362e-05 0 6.7302615e-06 4.5719524e-06 9.8667104e-06 9.4285714 - 74700 7.5361374e-05 0 6.6009004e-06 4.5572386e-06 9.8530775e-06 9.4285714 - 74800 7.7630509e-05 0 6.5656345e-06 4.6832234e-06 9.892975e-06 9.4285714 - 74900 7.7455142e-05 0 6.6195469e-06 4.8215952e-06 9.8988386e-06 9.4285714 - 75000 7.6480769e-05 0 6.6957621e-06 4.8937859e-06 1.0118373e-05 9.4285714 - 75100 7.7275693e-05 0 6.8416988e-06 5.0008953e-06 1.0508524e-05 9.4285714 - 75200 7.8822667e-05 0 7.0137661e-06 5.114046e-06 1.0681512e-05 9.4285714 - 75300 7.923137e-05 0 7.0852228e-06 5.2313082e-06 1.088256e-05 9.4285714 - 75400 7.9015035e-05 0 7.0293657e-06 5.2742411e-06 1.1348177e-05 9.4285714 - 75500 8.0621162e-05 0 6.8467092e-06 5.2679705e-06 1.1831246e-05 9.4285714 - 75600 8.2299447e-05 0 6.6752346e-06 5.2465333e-06 1.1929829e-05 9.4285714 - 75700 8.1993378e-05 0 6.6903556e-06 5.2647445e-06 1.1895978e-05 9.4285714 - 75800 8.1758987e-05 0 6.8566142e-06 5.3086877e-06 1.1919614e-05 9.4285714 - 75900 8.3084215e-05 0 7.0165672e-06 5.385502e-06 1.2070322e-05 9.4285714 - 76000 8.197148e-05 0 7.2302761e-06 5.8394738e-06 1.2278973e-05 9.4285714 - 76100 7.3534139e-05 0 7.7489979e-06 6.0492251e-06 1.2550083e-05 9.4285714 - 76200 6.8283079e-05 0 7.2365372e-06 6.0007678e-06 1.2602817e-05 9.4285714 - 76300 7.8227289e-05 0 6.526694e-06 6.0271465e-06 1.2329383e-05 9.4285714 - 76400 8.2994806e-05 0 6.1815571e-06 5.9430881e-06 1.1701935e-05 9.4285714 - 76500 8.3014892e-05 0 6.1364257e-06 5.9854633e-06 1.1722691e-05 9.4285714 - 76600 8.4226362e-05 0 6.1828506e-06 6.107284e-06 1.1920214e-05 9.4285714 - 76700 8.6131526e-05 0 6.3343928e-06 6.350283e-06 1.228658e-05 9.4285714 - 76800 8.5731394e-05 0 6.4776958e-06 6.4683255e-06 1.249724e-05 9.4285714 - 76900 8.5941781e-05 0 6.4853553e-06 6.4244197e-06 1.2593229e-05 9.4285714 - 77000 8.8001094e-05 0 6.5171523e-06 6.6329655e-06 1.2912514e-05 9.4285714 - 77100 8.7224729e-05 0 6.8494875e-06 7.3872568e-06 1.3297612e-05 9.4285714 - 77200 8.4102799e-05 0 7.0894804e-06 7.3299263e-06 1.367949e-05 9.4285714 - 77300 8.0313409e-05 0 7.4098021e-06 7.2858555e-06 1.3836101e-05 9.4285714 - 77400 7.9230413e-05 0 8.2603924e-06 7.7732932e-06 1.3810185e-05 9.4285714 - 77500 7.811033e-05 0 8.7674355e-06 7.5406409e-06 1.4227076e-05 9.4285714 - 77600 7.7683573e-05 0 9.0788292e-06 7.8133163e-06 1.471022e-05 9.4285714 - 77700 7.5680467e-05 0 8.9108768e-06 8.317342e-06 1.4999553e-05 9.4285714 - 77800 7.3449559e-05 0 8.9694781e-06 8.6900526e-06 1.5086204e-05 9.4285714 - 77900 7.3292429e-05 0 9.139058e-06 8.6084679e-06 1.492615e-05 9.4285714 - 78000 7.2392133e-05 0 9.6080208e-06 8.4852396e-06 1.4857893e-05 9.4285714 - 78100 7.0315679e-05 0 9.945291e-06 8.3218765e-06 1.4719636e-05 9.4285714 - 78200 7.1047062e-05 0 9.8105393e-06 8.1347429e-06 1.4828339e-05 9.4285714 - 78300 6.8370248e-05 0 9.9255038e-06 7.8989844e-06 1.558545e-05 9.4285714 - 78400 6.5550877e-05 0 1.0372272e-05 7.8133098e-06 1.6112e-05 9.4285714 - 78500 6.1683926e-05 0 1.0744202e-05 7.939033e-06 1.6539381e-05 9.4285714 - 78600 6.024047e-05 0 1.0791202e-05 7.9498532e-06 1.6361859e-05 9.4285714 - 78700 5.8543178e-05 0 1.0974316e-05 7.8193457e-06 1.5667857e-05 9.4285714 - 78800 5.5383435e-05 0 1.0534755e-05 7.6453258e-06 1.4396004e-05 9.4285714 - 78900 5.6871546e-05 0 1.0546809e-05 7.6401983e-06 1.380849e-05 9.4285714 - 79000 5.7192958e-05 0 1.0550826e-05 8.0833789e-06 1.3441933e-05 9.4285714 - 79100 4.9998926e-05 0 1.0683768e-05 7.9938172e-06 1.3882479e-05 9.4285714 - 79200 4.9597887e-05 0 1.0901088e-05 7.7919421e-06 1.273575e-05 9.4285714 - 79300 4.8603326e-05 0 1.0971813e-05 8.0875397e-06 1.2027443e-05 9.4285714 - 79400 4.7839304e-05 0 1.0874179e-05 8.144737e-06 1.1956832e-05 9.4285714 - 79500 4.5739018e-05 0 1.076245e-05 8.3910868e-06 1.1534616e-05 9.4285714 - 79600 4.2632104e-05 0 1.0609664e-05 8.6397142e-06 1.1473552e-05 9.4285714 - 79700 4.2716432e-05 0 1.0262604e-05 8.711707e-06 1.0969998e-05 9.4285714 - 79800 4.3345358e-05 0 9.9282847e-06 8.9481901e-06 1.0983222e-05 9.4285714 - 79900 4.2476967e-05 0 9.7375039e-06 9.2548149e-06 1.1285625e-05 9.4285714 - 80000 4.0478442e-05 0 9.558123e-06 8.9295053e-06 1.0784448e-05 9.4285714 - 80100 3.7842198e-05 0 9.0334781e-06 8.2704782e-06 1.0278932e-05 9.4285714 - 80200 2.8735215e-05 0 7.9350731e-06 7.8543447e-06 1.0121553e-05 9.4285714 - 80300 2.5008575e-05 0 7.4613405e-06 7.3076318e-06 9.699202e-06 9.4285714 - 80400 2.7560228e-05 0 7.839602e-06 7.0844901e-06 9.4586824e-06 9.4285714 - 80500 3.0888649e-05 0 8.1838091e-06 6.9204111e-06 9.2656765e-06 9.4285714 - 80600 3.2512804e-05 0 8.4973372e-06 6.7089195e-06 9.1713286e-06 9.4285714 - 80700 3.0635649e-05 0 8.6601613e-06 6.5637472e-06 8.8278453e-06 9.4285714 - 80800 2.7803874e-05 0 8.6135955e-06 6.4140616e-06 8.6556889e-06 9.4285714 - 80900 2.7488104e-05 0 8.7028796e-06 6.3379797e-06 8.3509842e-06 9.4285714 - 81000 2.5760367e-05 0 9.2034736e-06 6.7611736e-06 8.6536526e-06 9.4285714 - 81100 2.0516969e-05 0 9.0513498e-06 6.8144281e-06 9.1119465e-06 9.4285714 - 81200 1.7005384e-05 0 8.916831e-06 6.7768397e-06 9.5240286e-06 9.4285714 - 81300 1.8000969e-05 0 8.7376342e-06 6.8615088e-06 9.6206194e-06 9.4285714 - 81400 1.8404948e-05 0 8.2208204e-06 6.7371396e-06 9.0504462e-06 9.4285714 - 81500 1.7001638e-05 0 8.0003097e-06 6.7725682e-06 8.8647013e-06 9.4285714 - 81600 1.718853e-05 0 7.6914646e-06 6.9104324e-06 8.8869789e-06 9.4285714 - 81700 1.7653551e-05 0 7.3471225e-06 6.8867378e-06 8.8253446e-06 9.4285714 - 81800 1.60697e-05 0 7.0404737e-06 6.8479859e-06 8.5427076e-06 9.4285714 - 81900 1.5286837e-05 0 7.0172686e-06 6.9297068e-06 8.2722832e-06 9.4285714 - 82000 1.6023107e-05 0 7.0983015e-06 6.9736613e-06 8.1332821e-06 9.4285714 - 82100 1.5242285e-05 0 7.0688546e-06 6.8167975e-06 7.6908928e-06 9.4285714 - 82200 1.3697011e-05 0 7.0223727e-06 6.4952373e-06 7.3342404e-06 9.4285714 - 82300 1.3126258e-05 0 7.1571217e-06 6.3810604e-06 7.2195212e-06 9.4285714 - 82400 1.3101796e-05 0 7.2890863e-06 6.3506356e-06 6.9818415e-06 9.4285714 - 82500 1.2930812e-05 0 7.151416e-06 6.216239e-06 6.5772477e-06 9.4285714 - 82600 1.2105591e-05 0 6.7542664e-06 6.1120283e-06 6.3663068e-06 9.4285714 - 82700 1.1430058e-05 0 6.5788951e-06 6.0514089e-06 6.4433754e-06 9.4285714 - 82800 1.1220674e-05 0 6.5791612e-06 6.0531604e-06 6.6770698e-06 9.4285714 - 82900 1.0833337e-05 0 6.47818e-06 6.0122996e-06 6.8321143e-06 9.4285714 - 83000 9.6966107e-06 0 6.2531746e-06 5.9309876e-06 6.8402408e-06 9.4285714 - 83100 9.7912048e-06 0 6.1233799e-06 5.8467558e-06 6.8017122e-06 9.4285714 - 83200 1.0342776e-05 0 6.1812546e-06 5.7996644e-06 6.7456475e-06 9.4285714 - 83300 9.1053605e-06 0 6.2862234e-06 5.7715058e-06 6.6864541e-06 9.4285714 - 83400 8.1376574e-06 0 6.3534217e-06 5.8081229e-06 6.6544011e-06 9.4285714 - 83500 8.3013823e-06 0 6.4049353e-06 5.8627471e-06 6.6442675e-06 9.4285714 - 83600 7.5747246e-06 0 6.3101238e-06 5.9294619e-06 6.6505997e-06 9.4285714 - 83700 6.7051973e-06 0 6.1464953e-06 5.8827036e-06 6.6813364e-06 9.4285714 - 83800 6.7732855e-06 0 6.1039107e-06 5.7663207e-06 6.7463747e-06 9.4285714 - 83900 6.455146e-06 0 6.191176e-06 5.719103e-06 6.7193618e-06 9.4285714 - 84000 6.033363e-06 0 6.1987406e-06 5.6639744e-06 6.7404074e-06 9.4285714 - 84100 6.1544361e-06 0 6.1093662e-06 5.4981158e-06 6.9178146e-06 9.4285714 - 84200 5.8120515e-06 0 5.8682237e-06 5.4078594e-06 7.1748608e-06 9.4285714 - 84300 5.5925414e-06 0 5.8299675e-06 5.4425557e-06 7.3447739e-06 9.4285714 - 84400 5.9495987e-06 0 5.8440449e-06 5.5318695e-06 7.3677152e-06 9.4285714 - 84500 5.7713446e-06 0 5.8137185e-06 5.672038e-06 7.2420253e-06 9.4285714 - 84600 5.2346414e-06 0 5.7724697e-06 5.8135669e-06 7.089944e-06 9.4285714 - 84700 5.3677312e-06 0 5.7932199e-06 5.8900538e-06 6.986661e-06 9.4285714 - 84800 5.5545452e-06 0 5.8402198e-06 5.8520541e-06 6.892677e-06 9.4285714 - 84900 5.35857e-06 0 5.8265347e-06 5.8000233e-06 6.8516545e-06 9.4285714 - 85000 5.4081539e-06 0 5.783936e-06 5.7703706e-06 6.8630043e-06 9.4285714 - 85100 5.6686315e-06 0 5.7695537e-06 5.7106213e-06 6.8449127e-06 9.4285714 - 85200 5.6470622e-06 0 5.8250423e-06 5.6629171e-06 6.774264e-06 9.4285714 - 85300 5.4542991e-06 0 5.9016498e-06 5.6655349e-06 6.7281738e-06 9.4285714 - 85400 5.5974388e-06 0 5.9646597e-06 5.6947162e-06 6.6806947e-06 9.4285714 - 85500 5.9109345e-06 0 5.967179e-06 5.6810561e-06 6.6036521e-06 9.4285714 - 85600 5.8895141e-06 0 5.9638498e-06 5.6150965e-06 6.5709969e-06 9.4285714 - 85700 5.8470051e-06 0 6.0226793e-06 5.5476887e-06 6.650327e-06 9.4285714 - 85800 6.060997e-06 0 6.0805171e-06 5.5114717e-06 6.7408394e-06 9.4285714 - 85900 6.1217894e-06 0 6.1343577e-06 5.5394005e-06 6.8609753e-06 9.4285714 - 86000 5.7550467e-06 0 6.1710899e-06 5.6424943e-06 6.9634617e-06 9.4285714 - 86100 5.6513685e-06 0 6.1564873e-06 5.8517272e-06 6.9818339e-06 9.4285714 - 86200 5.7555479e-06 0 6.1071953e-06 5.9846538e-06 6.9607131e-06 9.4285714 - 86300 5.7587322e-06 0 6.1027542e-06 6.0234009e-06 6.969152e-06 9.4285714 - 86400 5.8389333e-06 0 6.1697397e-06 6.0477528e-06 7.0119472e-06 9.4285714 - 86500 5.9431034e-06 0 6.2597537e-06 6.0475988e-06 7.0667343e-06 9.4285714 - 86600 5.9655129e-06 0 6.2896528e-06 6.0010507e-06 7.0437962e-06 9.4285714 - 86700 6.042955e-06 0 6.2709737e-06 5.8440573e-06 6.9441762e-06 9.4285714 - 86800 6.2666413e-06 0 6.1964071e-06 5.6894309e-06 6.8811779e-06 9.4285714 - 86900 6.5118003e-06 0 6.1051139e-06 5.6557711e-06 6.8722493e-06 9.4285714 - 87000 6.7509257e-06 0 6.0291493e-06 5.6830661e-06 6.916898e-06 9.4285714 - 87100 6.9118143e-06 0 6.0183397e-06 5.6796551e-06 7.0011007e-06 9.4285714 - 87200 6.9983412e-06 0 6.040127e-06 5.6529434e-06 7.127229e-06 9.4285714 - 87300 7.2267392e-06 0 6.0286797e-06 5.6230076e-06 7.2573882e-06 9.4285714 - 87400 7.3928522e-06 0 6.0129878e-06 5.5947139e-06 7.4524445e-06 9.4285714 - 87500 7.1675783e-06 0 6.0469379e-06 5.7445703e-06 7.5694621e-06 9.4285714 - 87600 6.9310557e-06 0 6.1331355e-06 5.8982521e-06 7.5787155e-06 9.4285714 - 87700 6.8020949e-06 0 6.312632e-06 5.9646e-06 7.5159198e-06 9.4285714 - 87800 6.7871509e-06 0 6.4438446e-06 5.8625717e-06 7.4014079e-06 9.4285714 - 87900 7.1459737e-06 0 6.5483239e-06 5.7458287e-06 7.3742373e-06 9.4285714 - 88000 7.4791665e-06 0 6.6494489e-06 5.7733829e-06 7.5763999e-06 9.4285714 - 88100 7.4418527e-06 0 6.7353307e-06 5.903551e-06 7.7655167e-06 9.4285714 - 88200 6.8171325e-06 0 6.9359356e-06 6.0764899e-06 8.0003945e-06 9.4285714 - 88300 5.9535317e-06 0 7.0673476e-06 6.2127209e-06 8.2558166e-06 9.4285714 - 88400 5.8054385e-06 0 7.0393025e-06 6.295728e-06 8.3249618e-06 9.4285714 - 88500 5.7381974e-06 0 6.986322e-06 6.3150237e-06 8.3161166e-06 9.4285714 - 88600 5.8193958e-06 0 6.9610838e-06 6.2643723e-06 8.3456298e-06 9.4285714 - 88700 5.7843884e-06 0 7.025256e-06 6.1780449e-06 8.4360622e-06 9.4285714 - 88800 5.36122e-06 0 7.1886768e-06 6.1335975e-06 8.6566218e-06 9.4285714 - 88900 4.9662584e-06 0 7.2896286e-06 6.1156834e-06 8.7588271e-06 9.4285714 - 89000 5.0244565e-06 0 7.2730496e-06 6.083749e-06 8.7659659e-06 9.4285714 - 89100 5.2140172e-06 0 7.1617638e-06 6.0498839e-06 8.7631514e-06 9.4285714 - 89200 5.4241028e-06 0 7.0779466e-06 6.0064798e-06 8.7654482e-06 9.4285714 - 89300 5.354843e-06 0 7.0385405e-06 5.9746409e-06 8.8526601e-06 9.4285714 - 89400 4.9583346e-06 0 6.9725874e-06 5.9883731e-06 8.8784101e-06 9.4285714 - 89500 4.7804845e-06 0 6.8896169e-06 6.0555358e-06 8.7411283e-06 9.4285714 - 89600 4.5353969e-06 0 6.8441433e-06 6.1441445e-06 8.5998496e-06 9.4285714 - 89700 4.3528727e-06 0 6.9096594e-06 6.2696259e-06 8.4806368e-06 9.4285714 - 89800 4.0677397e-06 0 7.0681849e-06 6.3600745e-06 8.3821485e-06 9.4285714 - 89900 3.4743886e-06 0 7.208934e-06 6.2417154e-06 8.2590362e-06 9.4285714 - 90000 2.9448035e-06 0 7.2648444e-06 6.1025056e-06 8.1567217e-06 9.4285714 - 90100 2.8584378e-06 0 7.2361844e-06 6.0292519e-06 8.1323675e-06 9.4285714 - 90200 3.0154097e-06 0 7.1912833e-06 5.9880227e-06 8.1509776e-06 9.4285714 - 90300 3.0998012e-06 0 7.1621354e-06 5.9387681e-06 8.1447795e-06 9.4285714 - 90400 3.0622205e-06 0 7.1346468e-06 5.8551087e-06 8.0849875e-06 9.4285714 - 90500 2.8987354e-06 0 7.0808755e-06 5.7480505e-06 8.0655448e-06 9.4285714 - 90600 2.6710434e-06 0 7.0205199e-06 5.7165534e-06 8.0846444e-06 9.4285714 - 90700 2.4095074e-06 0 6.9439805e-06 5.7493599e-06 8.0259105e-06 9.4285714 - 90800 2.202904e-06 0 6.9317463e-06 5.8100449e-06 7.9027214e-06 9.4285714 - 90900 2.3181295e-06 0 7.0034101e-06 5.8778489e-06 7.7654197e-06 9.4285714 - 91000 2.3141951e-06 0 7.0766754e-06 5.9435646e-06 7.6679494e-06 9.4285714 - 91100 2.0683071e-06 0 7.0355929e-06 5.9830977e-06 7.5547272e-06 9.4285714 - 91200 1.8857219e-06 0 6.886975e-06 5.9803391e-06 7.3843659e-06 9.4285714 - 91300 1.8327584e-06 0 6.7232199e-06 5.8972482e-06 7.172749e-06 9.4285714 - 91400 1.804747e-06 0 6.6658239e-06 5.7775933e-06 6.9879557e-06 9.4285714 - 91500 1.6349771e-06 0 6.6744755e-06 5.6582742e-06 6.8615206e-06 9.4285714 - 91600 1.5216476e-06 0 6.6865456e-06 5.5795361e-06 6.7883528e-06 9.4285714 - 91700 1.6141413e-06 0 6.68539e-06 5.5586295e-06 6.7422583e-06 9.4285714 - 91800 1.6435107e-06 0 6.6317895e-06 5.6102143e-06 6.7060043e-06 9.4285714 - 91900 1.5649292e-06 0 6.5474777e-06 5.6787362e-06 6.6783459e-06 9.4285714 - 92000 1.5598003e-06 0 6.4984086e-06 5.7448839e-06 6.6563568e-06 9.4285714 - 92100 1.5645521e-06 0 6.502615e-06 5.7854556e-06 6.6299693e-06 9.4285714 - 92200 1.5384794e-06 0 6.5324855e-06 5.791917e-06 6.5998087e-06 9.4285714 - 92300 1.5428705e-06 0 6.5828146e-06 5.7573607e-06 6.564701e-06 9.4285714 - 92400 1.5481835e-06 0 6.6310796e-06 5.6780865e-06 6.551415e-06 9.4285714 - 92500 1.5193765e-06 0 6.6560684e-06 5.5916813e-06 6.568409e-06 9.4285714 - 92600 1.4779648e-06 0 6.6374647e-06 5.5138194e-06 6.605645e-06 9.4285714 - 92700 1.4401385e-06 0 6.5783557e-06 5.466179e-06 6.6343577e-06 9.4285714 - 92800 1.4263884e-06 0 6.5032532e-06 5.4548714e-06 6.6667781e-06 9.4285714 - 92900 1.4318392e-06 0 6.4100939e-06 5.475169e-06 6.7074201e-06 9.4285714 - 93000 1.4336111e-06 0 6.3386325e-06 5.5075916e-06 6.7333938e-06 9.4285714 - 93100 1.4541758e-06 0 6.3430387e-06 5.5366002e-06 6.7522163e-06 9.4285714 - 93200 1.4657669e-06 0 6.4329416e-06 5.581062e-06 6.8176723e-06 9.4285714 - 93300 1.4040886e-06 0 6.5434258e-06 5.6428482e-06 6.9238384e-06 9.4285714 - 93400 1.2988064e-06 0 6.6210628e-06 5.7043118e-06 7.0589134e-06 9.4285714 - 93500 1.2005872e-06 0 6.6510605e-06 5.7583138e-06 7.1470838e-06 9.4285714 - 93600 1.1148329e-06 0 6.6739621e-06 5.8031724e-06 7.198744e-06 9.4285714 - 93700 1.0710007e-06 0 6.7180944e-06 5.8357751e-06 7.2627754e-06 9.4285714 - 93800 1.0923979e-06 0 6.7838026e-06 5.857069e-06 7.3553254e-06 9.4285714 - 93900 1.1070785e-06 0 6.8474162e-06 5.8724205e-06 7.4260353e-06 9.4285714 - 94000 1.0836182e-06 0 6.9184593e-06 5.9063218e-06 7.4593908e-06 9.4285714 - 94100 1.0712532e-06 0 6.9659007e-06 5.9417663e-06 7.4976223e-06 9.4285714 - 94200 1.1089242e-06 0 6.9714436e-06 5.970624e-06 7.55674e-06 9.4285714 - 94300 1.1709624e-06 0 6.9375714e-06 5.9802014e-06 7.6084264e-06 9.4285714 - 94400 1.1698851e-06 0 6.8899943e-06 5.96701e-06 7.6232022e-06 9.4285714 - 94500 1.1331311e-06 0 6.8607818e-06 5.9576831e-06 7.6330828e-06 9.4285714 - 94600 1.1611176e-06 0 6.8775071e-06 5.9659895e-06 7.6539239e-06 9.4285714 - 94700 1.2014763e-06 0 6.9225704e-06 5.978896e-06 7.6602657e-06 9.4285714 - 94800 1.1833928e-06 0 6.9903173e-06 5.9981741e-06 7.6474584e-06 9.4285714 - 94900 1.1648449e-06 0 7.0650539e-06 6.0150496e-06 7.633387e-06 9.4285714 - 95000 1.1252279e-06 0 7.1072978e-06 6.0184786e-06 7.6094493e-06 9.4285714 - 95100 1.0516851e-06 0 7.1142631e-06 6.0065025e-06 7.5761571e-06 9.4285714 - 95200 1.0245214e-06 0 7.1018948e-06 5.993948e-06 7.5486922e-06 9.4285714 - 95300 1.0235812e-06 0 7.0867307e-06 6.0211446e-06 7.52964e-06 9.4285714 - 95400 9.6956254e-07 0 7.0870353e-06 6.072303e-06 7.5090138e-06 9.4285714 - 95500 8.9262312e-07 0 7.0987772e-06 6.1168082e-06 7.5033557e-06 9.4285714 - 95600 8.6064987e-07 0 7.1067297e-06 6.1317068e-06 7.4962696e-06 9.4285714 - 95700 8.7096432e-07 0 7.0919507e-06 6.1268237e-06 7.4461295e-06 9.4285714 - 95800 8.5278957e-07 0 7.0664924e-06 6.1151121e-06 7.3946799e-06 9.4285714 - 95900 7.9717781e-07 0 7.0485109e-06 6.0993542e-06 7.3743405e-06 9.4285714 - 96000 7.7875968e-07 0 7.0534076e-06 6.0721804e-06 7.38935e-06 9.4285714 - 96100 7.8525813e-07 0 7.0843748e-06 6.0420863e-06 7.4393684e-06 9.4285714 - 96200 7.7518366e-07 0 7.1238098e-06 6.028226e-06 7.5045929e-06 9.4285714 - 96300 7.6015915e-07 0 7.1481733e-06 6.0364027e-06 7.5368435e-06 9.4285714 - 96400 7.4067407e-07 0 7.1459565e-06 6.041338e-06 7.4989132e-06 9.4285714 - 96500 7.0061605e-07 0 7.1268071e-06 6.029068e-06 7.4151813e-06 9.4285714 - 96600 6.6164038e-07 0 7.098925e-06 6.0009667e-06 7.3139003e-06 9.4285714 - 96700 6.5255615e-07 0 7.0627067e-06 5.9576708e-06 7.2100844e-06 9.4285714 - 96800 6.5992528e-07 0 7.023092e-06 5.8964071e-06 7.1287006e-06 9.4285714 - 96900 6.618124e-07 0 6.9850613e-06 5.8360203e-06 7.0798167e-06 9.4285714 - 97000 6.7139818e-07 0 6.9588277e-06 5.8062928e-06 7.0552706e-06 9.4285714 - 97100 6.8703272e-07 0 6.9537175e-06 5.8222057e-06 7.0414456e-06 9.4285714 - 97200 6.9368757e-07 0 6.9628009e-06 5.8702813e-06 7.0384753e-06 9.4285714 - 97300 6.9652913e-07 0 6.9734824e-06 5.9290926e-06 7.0544858e-06 9.4285714 - 97400 6.9671901e-07 0 6.9846061e-06 6.0012529e-06 7.083092e-06 9.4285714 - 97500 6.891306e-07 0 6.9869142e-06 6.0395379e-06 7.0939696e-06 9.4285714 - 97600 6.76426e-07 0 6.9788679e-06 6.0215323e-06 7.0606545e-06 9.4285714 - 97700 6.5763751e-07 0 6.9653816e-06 5.9723094e-06 7.0096441e-06 9.4285714 - 97800 6.4854556e-07 0 6.9554426e-06 5.9303617e-06 6.9747745e-06 9.4285714 - 97900 6.5336861e-07 0 6.9405484e-06 5.9124736e-06 6.9578336e-06 9.4285714 - 98000 6.6394525e-07 0 6.9149722e-06 5.9089903e-06 6.9531064e-06 9.4285714 - 98100 6.8885885e-07 0 6.8891311e-06 5.9064849e-06 6.9546779e-06 9.4285714 - 98200 7.2201864e-07 0 6.8704207e-06 5.8899045e-06 6.9512899e-06 9.4285714 - 98300 7.3816538e-07 0 6.8523223e-06 5.8601846e-06 6.9459414e-06 9.4285714 - 98400 7.3631403e-07 0 6.8416192e-06 5.8365194e-06 6.9566027e-06 9.4285714 - 98500 7.2568853e-07 0 6.8359315e-06 5.8202579e-06 6.9826678e-06 9.4285714 - 98600 7.0490905e-07 0 6.8305302e-06 5.8023655e-06 7.0037387e-06 9.4285714 - 98700 6.8484202e-07 0 6.8328514e-06 5.7856688e-06 7.0152903e-06 9.4285714 - 98800 6.6994522e-07 0 6.8665586e-06 5.776709e-06 7.0248186e-06 9.4285714 - 98900 6.2867752e-07 0 6.922678e-06 5.7832988e-06 7.0496494e-06 9.4285714 - 99000 5.6999626e-07 0 6.9604759e-06 5.803298e-06 7.0910089e-06 9.4285714 - 99100 5.2675078e-07 0 6.9689516e-06 5.8313501e-06 7.1326482e-06 9.4285714 - 99200 4.9993032e-07 0 6.9639452e-06 5.8639097e-06 7.1679106e-06 9.4285714 - 99300 4.8034362e-07 0 6.9673566e-06 5.8886473e-06 7.2061899e-06 9.4285714 - 99400 4.633455e-07 0 6.9801545e-06 5.9075721e-06 7.2565116e-06 9.4285714 - 99500 4.423417e-07 0 6.9834282e-06 5.9253367e-06 7.3084834e-06 9.4285714 - 99600 4.2336865e-07 0 6.967599e-06 5.9390331e-06 7.3503483e-06 9.4285714 - 99700 4.0950396e-07 0 6.9366188e-06 5.9452518e-06 7.3763135e-06 9.4285714 - 99800 3.8946719e-07 0 6.9087461e-06 5.9409744e-06 7.3965059e-06 9.4285714 - 99900 3.5789226e-07 0 6.9005219e-06 5.9283255e-06 7.4220159e-06 9.4285714 - 100000 3.23165e-07 0 6.8942094e-06 5.9113196e-06 7.4570026e-06 9.4285714 -Loop time of 178.804 on 4 procs for 100000 steps with 2520 atoms - -Performance: 2416052.451 tau/day, 559.271 timesteps/s -99.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.068905 | 1.0142 | 3.632 | 150.2 | 0.57 -Bond | 2.4179 | 45.255 | 152.45 | 922.4 | 25.31 -Neigh | 2.7318 | 2.7504 | 2.7587 | 0.7 | 1.54 -Comm | 2.2428 | 62.076 | 153.59 | 708.9 | 34.72 -Output | 0.14703 | 1.3253 | 2.7063 | 102.7 | 0.74 -Modify | 0.66661 | 4.887 | 15.428 | 276.1 | 2.73 -Other | | 61.5 | | | 34.39 - -Nlocal: 630 ave 2513 max 0 min -Histogram: 3 0 0 0 0 0 0 0 0 1 -Nghost: 39.25 ave 150 max 0 min -Histogram: 3 0 0 0 0 0 0 0 0 1 -Neighs: 2458 ave 9821 max 0 min -Histogram: 3 0 0 0 0 0 0 0 0 1 - -Total # of neighbors = 9832 -Ave neighs/atom = 3.9015873 -Ave special neighs/atom = 36.31746 -Neighbor list builds = 5178 -Dangerous builds = 314 -Total wall time: 0:02:58 diff --git a/examples/bpm/pour/log.4May2022.pour.g++.4 b/examples/bpm/pour/log.4May2022.pour.g++.4 new file mode 100644 index 0000000000..5fc31df976 --- /dev/null +++ b/examples/bpm/pour/log.4May2022.pour.g++.4 @@ -0,0 +1,1096 @@ +LAMMPS (4 May 2022) +units lj +dimension 3 +boundary m m m +atom_style bpm/sphere +special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0 +newton on off +comm_modify vel yes cutoff 3.3 +region box block -15 15 -15 15 0 60.0 +create_box 1 box bond/types 1 extra/bond/per/atom 15 extra/special/per/atom 50 +Created orthogonal box = (-15 -15 0) to (15 15 60) + 1 by 1 by 4 MPI processor grid + +molecule my_mol "rect.mol" +Read molecule template my_mol: + 1 molecules + 0 fragments + 63 atoms with max type 1 + 297 bonds with max type 1 + 0 angles with max type 0 + 0 dihedrals with max type 0 + 0 impropers with max type 0 +region wall_cyl cylinder z 0.0 0.0 10.0 EDGE EDGE side in +region dropzone cylinder z 0.0 0.0 10.0 40.0 50.0 side in + +pair_style gran/hertz/history 1.0 NULL 0.5 NULL 0.1 1 +bond_style bpm/rotational +pair_coeff 1 1 +bond_coeff 1 1.0 0.2 0.01 0.01 2.0 0.4 0.02 0.02 0.2 0.04 0.002 0.002 + +compute nbond all nbond/atom +compute tbond all reduce sum c_nbond +compute bond_ids all property/local batom1 batom2 +compute bond_properties all bond/local dist b1 + +compute_modify thermo_temp dynamic/dof yes + +fix 1 all wall/gran hertz/history 1.0 NULL 0.5 NULL 0.1 1 zplane 0.0 NULL +fix 2 all wall/gran/region hertz/history 1.0 NULL 0.5 NULL 0.1 1 region wall_cyl +fix 3 all gravity 1e-4 vector 0 0 -1 +fix 4 all deposit 40 0 1500 712511343 mol my_mol region dropzone near 2.0 vz -0.05 -0.05 +fix 5 all nve/bpm/sphere + +timestep 0.05 +thermo_style custom step ke pe pxx pyy pzz c_tbond +thermo 100 +#dump 1 all custom 500 atomDump id radius x y z c_nbond mol +#dump 2 all local 500 bondDump c_bond_ids[*] c_bond_properties[*] +#dump_modify 2 colname 1 "id1" colname 2 "id2" colname 3 "r" colname 4 "r0" + +run 100000 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 3.3 + binsize = 0.65, bins = 47 47 93 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair gran/hertz/history, perpetual + attributes: half, newton on, size, history + pair build: half/size/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.515 | 6.515 | 6.515 Mbytes + Step KinEng PotEng Pxx Pyy Pzz c_tbond + 0 -0 0 0 0 0 0 + 100 0.0018331948 0 1.2795343e-05 1.3162764e-05 6.0889226e-06 9.4285714 + 200 0.0025933558 0 -9.7246963e-07 4.2628093e-07 2.254606e-06 9.4285714 + 300 0.0036964813 0 -5.214277e-06 9.6942542e-06 8.1928448e-07 9.4285714 + 400 0.0060104433 0 2.3353405e-05 1.8273171e-05 1.2647691e-05 9.4285714 + 500 0.0074435972 0 -1.7839575e-05 3.8686256e-06 -5.120219e-06 9.4285714 + 600 0.0077862298 0 3.8676586e-06 1.3499487e-05 4.1914953e-06 9.4285714 + 700 0.0075577591 0 2.995232e-06 1.2051677e-05 4.8789862e-06 9.4285714 + 800 0.0073958844 0 -1.4258432e-05 1.2272397e-05 -6.8630878e-06 9.4285714 + 900 0.007553697 0 9.9219152e-06 1.2918228e-05 8.8713909e-06 9.4285714 + 1000 0.0075815901 0 -6.1095276e-06 1.2607282e-05 -2.1917025e-06 9.4285714 + 1100 0.0075277384 0 -5.4044191e-06 1.0815313e-05 -3.3464998e-06 9.4285714 + 1200 0.0075026507 0 6.9770766e-06 1.3988236e-05 8.5114688e-06 9.4285714 + 1300 0.0075665473 0 -4.6433628e-06 8.6190703e-06 -3.8381153e-06 9.4285714 + 1400 0.0076224701 0 1.1589382e-06 7.9617716e-06 1.1941326e-06 9.4285714 + 1500 0.007603467 0 3.5774148e-06 1.3039063e-05 5.2641947e-06 9.4285714 + 1600 0.0059810407 0 4.8299936e-06 1.5343107e-05 4.8809408e-06 9.4285714 + 1700 0.0080230318 0 7.7953676e-06 2.5215962e-05 1.2492975e-05 9.4285714 + 1800 0.0087482398 0 4.7318071e-06 1.9559769e-05 4.2711986e-07 9.4285714 + 1900 0.0086877574 0 4.8038566e-06 1.8020212e-05 2.1297032e-06 9.4285714 + 2000 0.0086771118 0 6.1316671e-06 2.6348435e-05 8.9167408e-06 9.4285714 + 2100 0.0084670091 0 5.0586292e-06 1.9876458e-05 4.6539619e-06 9.4285714 + 2200 0.0083650907 0 9.4046949e-06 1.9264472e-05 1.0344742e-05 9.4285714 + 2300 0.0083549595 0 6.3002517e-06 2.0954839e-05 3.9631836e-06 9.4285714 + 2400 0.0083151535 0 4.9801292e-06 1.2138211e-05 6.2493867e-06 9.4285714 + 2500 0.0083898757 0 6.8667997e-06 1.9182698e-05 9.8363046e-06 9.4285714 + 2600 0.0084145705 0 4.1851e-06 1.8890376e-05 5.497773e-06 9.4285714 + 2700 0.0082712696 0 4.9701934e-06 1.7886474e-05 8.3184582e-06 9.4285714 + 2800 0.0073688706 0 1.144302e-05 1.3902577e-05 9.8542094e-06 9.4285714 + 2900 0.0072732669 0 8.2228374e-06 1.2550063e-05 8.7486939e-06 9.4285714 + 3000 0.0072225948 0 1.1788696e-05 1.6856873e-05 1.0219519e-05 9.4285714 + 3100 0.0048244969 0 2.6913622e-05 2.6037751e-05 1.5435674e-05 9.4285714 + 3200 0.0045717035 0 2.3464139e-05 2.1215606e-05 1.7659066e-05 9.4285714 + 3300 0.0047679567 0 6.5564192e-06 1.2866169e-05 1.4234937e-05 9.4285714 + 3400 0.0048448212 0 2.6268527e-06 9.1565649e-06 1.2387928e-05 9.4285714 + 3500 0.0048364711 0 2.8817245e-06 1.0066061e-05 1.1158512e-05 9.4285714 + 3600 0.0047125947 0 4.936496e-06 1.4195118e-05 1.5418285e-05 9.4285714 + 3700 0.0045641049 0 5.9769788e-06 9.8945153e-06 2.0158644e-05 9.4285714 + 3800 0.0045540235 0 6.1868269e-06 9.9425305e-06 1.6312008e-05 9.4285714 + 3900 0.0047271202 0 4.6825739e-06 1.3424496e-05 1.3234307e-05 9.4285714 + 4000 0.0049115261 0 5.5722312e-06 9.2060522e-06 1.6284048e-05 9.4285714 + 4100 0.0046819157 0 7.2200038e-06 1.0870694e-05 1.0519325e-05 9.4285714 + 4200 0.0035133816 0 3.6321041e-05 4.1100939e-05 1.8321255e-05 9.4285714 + 4300 0.0031933917 0 2.4951011e-05 2.5521457e-05 2.588421e-05 9.4285714 + 4400 0.0033515272 0 -5.6220845e-06 -2.4430502e-06 1.0942893e-05 9.4285714 + 4500 0.0034928951 0 6.2053481e-06 4.7764245e-06 1.991749e-05 9.4285714 + 4600 0.0029992338 0 2.369557e-06 4.59349e-06 2.0911379e-05 9.4285714 + 4700 0.0030650658 0 -2.7066449e-06 1.83391e-06 6.7096837e-06 9.4285714 + 4800 0.0031180382 0 3.4620044e-06 3.3494935e-06 1.7175961e-05 9.4285714 + 4900 0.0030365003 0 3.6295178e-06 6.2514468e-06 1.3401316e-05 9.4285714 + 5000 0.0030259714 0 5.1566588e-06 1.3494605e-05 9.7456367e-06 9.4285714 + 5100 0.0030499975 0 6.7608769e-06 1.9415863e-05 1.2078691e-05 9.4285714 + 5200 0.003005436 0 6.7275739e-06 2.0656574e-05 5.906659e-06 9.4285714 + 5300 0.0030000941 0 6.9641454e-06 1.54531e-05 1.7021736e-05 9.4285714 + 5400 0.0031465827 0 6.540246e-06 1.0837198e-05 1.0192016e-05 9.4285714 + 5500 0.0031981585 0 4.9292412e-06 4.6915838e-06 3.029257e-06 9.4285714 + 5600 0.0031525115 0 4.3125052e-06 2.8841432e-06 1.9324111e-05 9.4285714 + 5700 0.0032128781 0 5.1973159e-06 4.7261232e-06 1.5155154e-05 9.4285714 + 5800 0.0030092855 0 5.1574375e-06 1.3330205e-06 1.6470501e-05 9.4285714 + 5900 0.0025015767 0 9.468608e-06 6.3045435e-06 3.0961055e-05 9.4285714 + 6000 0.0024438438 0 8.0212466e-06 1.0032087e-05 2.8378471e-05 9.4285714 + 6100 0.0023816456 0 3.7802286e-06 -3.8999559e-06 1.8398107e-05 9.4285714 + 6200 0.0024459343 0 5.9964052e-07 8.2000754e-07 1.6404949e-05 9.4285714 + 6300 0.0025205884 0 4.7129599e-06 8.6972388e-06 2.9892106e-05 9.4285714 + 6400 0.0033754198 0 6.5856871e-06 2.3744673e-05 2.4721217e-05 9.4285714 + 6500 0.0037812296 0 1.376462e-07 2.0230253e-05 1.9719688e-05 9.4285714 + 6600 0.0038043567 0 -2.2279638e-06 1.4780176e-05 2.3799652e-05 9.4285714 + 6700 0.0038213959 0 1.1073632e-05 2.2516034e-05 2.5410459e-05 9.4285714 + 6800 0.0036977776 0 -1.0765937e-05 1.3667142e-05 1.7835133e-05 9.4285714 + 6900 0.0034769765 0 6.7509492e-06 2.840882e-05 2.435267e-05 9.4285714 + 7000 0.0031526409 0 1.4168552e-05 4.4965769e-05 4.5646226e-05 9.4285714 + 7100 0.00317737 0 -5.4803238e-06 3.1967885e-05 2.9211214e-05 9.4285714 + 7200 0.0034448361 0 4.8507597e-06 2.1591795e-05 2.3816498e-05 9.4285714 + 7300 0.0036147362 0 -2.791278e-06 2.9367843e-05 2.072129e-05 9.4285714 + 7400 0.0035651675 0 -1.6177129e-06 7.9033092e-06 2.3377855e-05 9.4285714 + 7500 0.0036394064 0 5.7414518e-06 1.246586e-05 2.8461253e-05 9.4285714 + 7600 0.0033086177 0 -3.6547872e-06 1.9730955e-05 2.8892436e-05 9.4285714 + 7700 0.0033410425 0 6.9618203e-06 6.4576188e-06 3.1766455e-05 9.4285714 + 7800 0.0035764747 0 1.2110077e-05 6.3850506e-06 3.5436107e-05 9.4285714 + 7900 0.0039500913 0 1.1250888e-05 5.2728547e-06 3.4972007e-05 9.4285714 + 8000 0.0042963353 0 1.8776503e-05 4.2083124e-06 3.5010281e-05 9.4285714 + 8100 0.0048297614 0 2.5603506e-05 3.3748362e-06 4.0838382e-05 9.4285714 + 8200 0.0052301447 0 2.2727386e-05 4.8879987e-06 3.4821083e-05 9.4285714 + 8300 0.005169511 0 2.5022891e-05 1.0062389e-05 3.3976429e-05 9.4285714 + 8400 0.005224324 0 2.4238943e-05 7.0296204e-06 4.2543264e-05 9.4285714 + 8500 0.0053049309 0 2.6217015e-05 1.0282354e-06 2.6559275e-05 9.4285714 + 8600 0.0052459952 0 3.0123571e-05 -5.4843616e-07 3.3857424e-05 9.4285714 + 8700 0.0052955657 0 2.3843911e-05 -3.117634e-06 3.9683886e-05 9.4285714 + 8800 0.0053972257 0 2.6944951e-05 -1.9297854e-06 2.1931602e-05 9.4285714 + 8900 0.0053679679 0 3.1169997e-05 -9.4576351e-07 3.1987255e-05 9.4285714 + 9000 0.0053793586 0 2.6261243e-05 -3.1509839e-07 3.3111749e-05 9.4285714 + 9100 0.0048447626 0 2.5562708e-05 9.5708437e-07 3.1370618e-05 9.4285714 + 9200 0.0048688926 0 2.8696471e-05 1.7677464e-06 3.5234397e-05 9.4285714 + 9300 0.0048538957 0 2.9337564e-05 6.1059713e-06 2.8008268e-05 9.4285714 + 9400 0.0046986454 0 3.0831262e-05 4.6561014e-06 3.5247122e-05 9.4285714 + 9500 0.0046145139 0 2.6082124e-05 4.2214681e-06 3.2773769e-05 9.4285714 + 9600 0.0045277961 0 1.2434258e-05 8.6375534e-06 2.284049e-05 9.4285714 + 9700 0.0043935298 0 2.5929984e-05 1.409283e-05 4.9159861e-05 9.4285714 + 9800 0.0045363488 0 1.9700734e-05 7.7797381e-06 4.4404362e-05 9.4285714 + 9900 0.0046509978 0 4.052959e-07 1.0265502e-06 3.1360974e-05 9.4285714 + 10000 0.0046493894 0 1.6553229e-05 1.0076346e-05 5.1789914e-05 9.4285714 + 10100 0.0046514856 0 1.8327939e-05 9.8302174e-06 3.7624599e-05 9.4285714 + 10200 0.0046209533 0 2.4256813e-05 1.3730576e-05 3.1575089e-05 9.4285714 + 10300 0.0044651031 0 3.3601226e-05 2.3983568e-05 5.6565625e-05 9.4285714 + 10400 0.0041834162 0 4.805126e-05 7.6642091e-06 4.2641571e-05 9.4285714 + 10500 0.0043218845 0 4.6826294e-05 1.9078519e-05 3.6250139e-05 9.4285714 + 10600 0.0045795722 0 8.2629139e-06 1.6451196e-05 5.4195508e-05 9.4285714 + 10700 0.0053833569 0 5.3717062e-06 6.8337125e-06 4.9804395e-05 9.4285714 + 10800 0.0056805981 0 1.0439371e-05 6.3964706e-05 5.0857116e-05 9.4285714 + 10900 0.0057157307 0 8.6953546e-06 6.7276441e-05 3.9725389e-05 9.4285714 + 11000 0.005696424 0 8.1149094e-06 2.2104406e-05 5.1852506e-05 9.4285714 + 11100 0.0052078884 0 1.5579258e-05 5.0215785e-05 9.2364613e-05 9.4285714 + 11200 0.0052849159 0 2.443959e-05 6.5869489e-05 5.1237777e-05 9.4285714 + 11300 0.0054074494 0 -2.0510258e-05 2.0196205e-05 2.5051885e-05 9.4285714 + 11400 0.0055432168 0 1.5343164e-05 2.5482368e-05 5.4336948e-05 9.4285714 + 11500 0.0054679467 0 -8.3474301e-06 3.553783e-05 5.2027159e-05 9.4285714 + 11600 0.0052706441 0 -1.5151807e-05 3.9562266e-05 5.7900102e-05 9.4285714 + 11700 0.0053724243 0 2.9852987e-05 4.4807737e-05 5.5405662e-05 9.4285714 + 11800 0.0054759961 0 -2.4309686e-05 3.0092677e-06 5.4742672e-05 9.4285714 + 11900 0.0051146604 0 5.1194747e-06 2.8620342e-05 6.4679345e-05 9.4285714 + 12000 0.0049723565 0 2.675912e-05 4.6202817e-05 4.7309269e-05 9.4285714 + 12100 0.0046920113 0 8.7155181e-06 1.0297631e-05 5.3185103e-05 9.4285714 + 12200 0.0049570244 0 1.6383054e-05 2.2699433e-05 6.347138e-05 9.4285714 + 12300 0.0049181458 0 -2.6116723e-05 3.300058e-05 5.177444e-05 9.4285714 + 12400 0.0049245342 0 1.7614092e-05 2.1986541e-05 6.3820521e-05 9.4285714 + 12500 0.0049753042 0 1.7024231e-05 2.7328487e-05 4.8334342e-05 9.4285714 + 12600 0.0048148791 0 -1.7042812e-05 3.3512772e-05 5.9422643e-05 9.4285714 + 12700 0.0043852178 0 1.1418683e-05 6.3690455e-05 7.8362127e-05 9.4285714 + 12800 0.0041967317 0 6.1295424e-06 2.691552e-05 5.3900077e-05 9.4285714 + 12900 0.0041911278 0 1.1373508e-05 -9.9114041e-06 5.6629663e-05 9.4285714 + 13000 0.0043107924 0 8.5398832e-06 1.2632925e-05 5.6578871e-05 9.4285714 + 13100 0.0043976521 0 -1.9373679e-05 2.745136e-05 5.4632008e-05 9.4285714 + 13200 0.0043474635 0 2.0343582e-05 1.7768236e-05 1.1895158e-05 9.4285714 + 13300 0.0044593969 0 1.0895451e-05 2.1880107e-05 3.4032783e-05 9.4285714 + 13400 0.0044814342 0 -1.3547218e-05 1.9974451e-05 4.4513918e-05 9.4285714 + 13500 0.0043982498 0 1.0722877e-05 2.3728571e-05 2.7665112e-05 9.4285714 + 13600 0.0039378503 0 1.2229889e-05 3.0770266e-05 5.2614428e-05 9.4285714 + 13700 0.0036474735 0 9.5048999e-06 1.6734153e-05 7.4271827e-05 9.4285714 + 13800 0.0038236277 0 1.6680429e-05 4.7691782e-05 9.2160112e-05 9.4285714 + 13900 0.0040574402 0 6.7570974e-06 3.6492091e-05 5.2053836e-05 9.4285714 + 14000 0.0046440817 0 2.7735053e-05 6.6227204e-06 3.9436561e-05 9.4285714 + 14100 0.0048045755 0 2.0601942e-05 2.959681e-05 4.9880076e-05 9.4285714 + 14200 0.004634799 0 8.0658747e-06 5.2774385e-06 5.2189551e-05 9.4285714 + 14300 0.0046822822 0 2.1714615e-05 3.0364731e-05 5.2132518e-05 9.4285714 + 14400 0.0048282958 0 2.0587615e-05 2.530458e-05 4.4110535e-05 9.4285714 + 14500 0.004799276 0 1.0813724e-05 2.2458541e-06 4.4546542e-05 9.4285714 + 14600 0.0046554419 0 1.859323e-05 4.5863598e-05 5.9021103e-05 9.4285714 + 14700 0.0045262414 0 2.0625232e-05 3.9707287e-05 6.1007118e-05 9.4285714 + 14800 0.0043347498 0 1.6697069e-05 3.1666259e-05 4.7172267e-05 9.4285714 + 14900 0.0040641791 0 1.3497064e-05 5.9866835e-05 6.6917505e-05 9.4285714 + 15000 0.0040014911 0 7.1453431e-06 2.5483385e-05 6.7987038e-05 9.4285714 + 15100 0.0040015198 0 4.2135705e-05 2.0671772e-05 6.4280017e-05 9.4285714 + 15200 0.004656209 0 2.6684328e-05 4.474018e-05 5.916807e-05 9.4285714 + 15300 0.0047390215 0 3.3127952e-05 4.6355585e-06 5.6740658e-05 9.4285714 + 15400 0.0047219857 0 5.6866539e-05 4.8092122e-05 6.3199152e-05 9.4285714 + 15500 0.0049597215 0 3.4278993e-05 2.5111668e-05 6.5359107e-05 9.4285714 + 15600 0.0049081505 0 1.2068327e-05 6.9210759e-06 6.2272418e-05 9.4285714 + 15700 0.0047978977 0 4.7482116e-05 5.8014048e-05 5.5647569e-05 9.4285714 + 15800 0.0048176861 0 5.0196994e-05 5.8789855e-06 4.5752404e-05 9.4285714 + 15900 0.0049895331 0 2.0966545e-05 1.4091817e-05 4.9992598e-05 9.4285714 + 16000 0.0049288669 0 2.268795e-05 3.980733e-05 5.1840856e-05 9.4285714 + 16100 0.0048010252 0 2.6781521e-05 1.2145851e-05 5.6545128e-05 9.4285714 + 16200 0.0047925554 0 4.0057978e-05 3.9037828e-05 5.8580861e-05 9.4285714 + 16300 0.0047652048 0 2.9783669e-05 4.8617786e-05 5.7899464e-05 9.4285714 + 16400 0.0043495894 0 4.1024094e-05 2.2097063e-05 7.9895344e-05 9.4285714 + 16500 0.0042677893 0 4.9740295e-05 3.3483257e-05 7.2860145e-05 9.4285714 + 16600 0.0039924053 0 1.7513538e-05 4.3222405e-05 6.2148808e-05 9.4285714 + 16700 0.004110225 0 4.4412384e-05 9.35409e-06 6.8831113e-05 9.4285714 + 16800 0.0041003344 0 2.4419982e-05 2.7202073e-05 6.5806688e-05 9.4285714 + 16900 0.0040916821 0 1.4965068e-05 3.6816647e-05 7.2328503e-05 9.4285714 + 17000 0.0039812122 0 4.3173586e-05 4.3996263e-05 7.7949852e-05 9.4285714 + 17100 0.0042480582 0 4.1959057e-05 6.6432813e-05 6.3893449e-05 9.4285714 + 17200 0.0044450353 0 3.1558002e-05 4.6146848e-05 5.5409103e-05 9.4285714 + 17300 0.0045016689 0 3.8307434e-05 3.6423601e-05 4.6361333e-05 9.4285714 + 17400 0.0044798864 0 3.6969292e-05 3.0041841e-05 5.013181e-05 9.4285714 + 17500 0.0044624458 0 4.5965488e-05 2.640968e-05 6.3999899e-05 9.4285714 + 17600 0.0044477024 0 2.0966517e-05 1.8953464e-05 4.7160807e-05 9.4285714 + 17700 0.0044103517 0 2.7440925e-05 3.0023335e-05 2.6847111e-05 9.4285714 + 17800 0.004341948 0 3.7548931e-05 2.7684114e-05 5.1464098e-05 9.4285714 + 17900 0.0042623319 0 3.2079768e-05 2.0530818e-05 3.5314593e-05 9.4285714 + 18000 0.003726239 0 2.5075988e-05 3.3133097e-05 4.1995217e-05 9.4285714 + 18100 0.0034893305 0 1.3220245e-05 3.020125e-05 7.1713105e-05 9.4285714 + 18200 0.0035481187 0 3.2523043e-05 2.7387192e-05 3.6749668e-05 9.4285714 + 18300 0.0036251402 0 4.5667311e-05 2.9230799e-05 7.1782706e-05 9.4285714 + 18400 0.0036369749 0 -1.014622e-06 3.5201729e-05 3.9709522e-05 9.4285714 + 18500 0.0034279849 0 2.1947889e-05 3.9001906e-05 3.3701879e-05 9.4285714 + 18600 0.0033615572 0 5.3790038e-05 3.9573549e-05 8.1596316e-05 9.4285714 + 18700 0.003406225 0 7.3625431e-06 3.4584743e-05 4.8640801e-05 9.4285714 + 18800 0.0034922323 0 2.6182422e-05 3.1791119e-05 4.170957e-05 9.4285714 + 18900 0.0034820625 0 2.9857402e-05 2.5799449e-05 5.5291228e-05 9.4285714 + 19000 0.0033272524 0 1.844591e-05 4.0826323e-05 6.2101661e-05 9.4285714 + 19100 0.0034010912 0 3.0145616e-05 3.644045e-05 6.0246878e-05 9.4285714 + 19200 0.0030932535 0 8.7227973e-06 2.9814304e-05 4.6597247e-05 9.4285714 + 19300 0.002624051 0 6.3914236e-05 2.9323041e-05 6.0029293e-05 9.4285714 + 19400 0.0027583806 0 4.2039411e-05 2.7933876e-05 4.8958797e-05 9.4285714 + 19500 0.0029775174 0 -2.6335479e-05 2.2879667e-05 4.4610482e-05 9.4285714 + 19600 0.0028689969 0 3.5884554e-05 2.1352512e-05 6.0208946e-05 9.4285714 + 19700 0.0026399127 0 1.8473989e-05 2.2707825e-05 6.171175e-05 9.4285714 + 19800 0.0025439904 0 -1.2073435e-06 2.0399124e-05 6.9687415e-05 9.4285714 + 19900 0.0027074939 0 3.0062292e-05 3.2667714e-05 5.1372476e-05 9.4285714 + 20000 0.0027181793 0 -1.7035119e-06 1.177054e-05 4.0159702e-05 9.4285714 + 20100 0.0027315362 0 -1.3742365e-06 2.3564155e-05 5.7172718e-05 9.4285714 + 20200 0.0027204191 0 2.0041145e-05 2.052408e-05 4.7725285e-05 9.4285714 + 20300 0.0026457344 0 3.3984829e-06 4.8524174e-06 5.3280292e-05 9.4285714 + 20400 0.0026592475 0 5.1173158e-06 3.9458314e-05 5.5560611e-05 9.4285714 + 20500 0.0026129298 0 2.419217e-05 2.7154017e-05 5.5129038e-05 9.4285714 + 20600 0.0026532045 0 1.9753712e-05 1.46246e-05 4.9293256e-05 9.4285714 + 20700 0.0026172433 0 1.0984198e-06 3.1572908e-05 4.2775817e-05 9.4285714 + 20800 0.0025282343 0 1.9683388e-05 2.2901129e-05 5.64033e-05 9.4285714 + 20900 0.0025383322 0 2.2352257e-05 2.534911e-05 6.380687e-05 9.4285714 + 21000 0.0024848857 0 1.4023463e-05 2.6731904e-05 5.2051725e-05 9.4285714 + 21100 0.0025091105 0 2.7673099e-05 2.9475402e-05 7.684648e-05 9.4285714 + 21200 0.0027229411 0 6.1574133e-06 2.5611393e-05 5.6801847e-05 9.4285714 + 21300 0.0028888226 0 1.9686043e-05 1.033069e-05 3.656491e-05 9.4285714 + 21400 0.0029336429 0 2.3706857e-05 1.5440041e-05 6.4192795e-05 9.4285714 + 21500 0.0029354446 0 4.443655e-06 1.8094788e-05 3.797507e-05 9.4285714 + 21600 0.0029270648 0 2.4289752e-05 1.6933392e-05 3.9618516e-05 9.4285714 + 21700 0.0029288781 0 2.2403205e-05 1.3655312e-05 6.3273854e-05 9.4285714 + 21800 0.002884005 0 9.5665801e-06 1.2718071e-05 5.613979e-05 9.4285714 + 21900 0.0028362206 0 1.6764675e-05 2.2612976e-05 5.3866016e-05 9.4285714 + 22000 0.0027784436 0 2.0373617e-05 2.134133e-05 5.6687534e-05 9.4285714 + 22100 0.0027479829 0 3.1605707e-05 2.9016826e-05 5.0412111e-05 9.4285714 + 22200 0.0027598842 0 3.1818095e-05 1.898738e-05 6.5167547e-05 9.4285714 + 22300 0.0026078138 0 1.4200853e-05 2.8283323e-05 6.7071904e-05 9.4285714 + 22400 0.0026057112 0 2.7502142e-05 4.1407395e-05 8.4619483e-05 9.4285714 + 22500 0.0026641722 0 9.9423891e-06 1.4635552e-05 6.8501238e-05 9.4285714 + 22600 0.0023728105 0 6.7736501e-06 3.0299151e-05 5.894177e-05 9.4285714 + 22700 0.0021999097 0 3.4516939e-05 4.5285607e-05 8.996035e-05 9.4285714 + 22800 0.002178124 0 2.9545388e-05 1.9567086e-05 9.6343476e-05 9.4285714 + 22900 0.0022903704 0 4.8666623e-06 1.5551535e-05 5.8697755e-05 9.4285714 + 23000 0.0022114595 0 3.9089014e-05 1.3185973e-05 7.0843777e-05 9.4285714 + 23100 0.0022473179 0 3.0609778e-05 1.6190628e-05 7.2843834e-05 9.4285714 + 23200 0.0022787302 0 1.3694799e-05 2.8211464e-06 3.8403815e-05 9.4285714 + 23300 0.002254193 0 1.0608785e-05 2.087358e-05 6.337886e-05 9.4285714 + 23400 0.0022032528 0 2.914759e-05 2.8493674e-05 6.0474318e-05 9.4285714 + 23500 0.0022103262 0 2.9804777e-05 1.2383546e-05 4.0491877e-05 9.4285714 + 23600 0.0022767949 0 1.8461506e-05 2.3591158e-05 5.2725816e-05 9.4285714 + 23700 0.002283034 0 1.9374068e-05 2.570172e-05 4.622802e-05 9.4285714 + 23800 0.0022293403 0 3.3214067e-05 1.0752104e-05 4.2971028e-05 9.4285714 + 23900 0.0022421499 0 3.3973428e-05 1.4548851e-05 4.8022214e-05 9.4285714 + 24000 0.0022708179 0 1.3175798e-05 1.5539147e-05 4.5563964e-05 9.4285714 + 24100 0.0022311644 0 1.320215e-05 1.3317185e-05 5.7572825e-05 9.4285714 + 24200 0.0022566051 0 2.3442037e-05 7.9298663e-06 5.2246081e-05 9.4285714 + 24300 0.0022547585 0 2.1667142e-05 6.4075914e-06 5.1028376e-05 9.4285714 + 24400 0.0022901257 0 3.8132396e-05 1.5652454e-05 7.8308938e-05 9.4285714 + 24500 0.0023537103 0 1.7910524e-05 1.573637e-05 6.9737249e-05 9.4285714 + 24600 0.0023613708 0 4.9912312e-05 1.9777052e-05 4.9415062e-05 9.4285714 + 24700 0.0023237992 0 5.4833746e-05 2.9532114e-05 7.4218996e-05 9.4285714 + 24800 0.0024221927 0 4.0966596e-05 6.3998314e-06 5.9553095e-05 9.4285714 + 24900 0.0025882547 0 6.045015e-05 6.220892e-06 5.4328816e-05 9.4285714 + 25000 0.0027152266 0 5.4969197e-05 2.6430135e-05 4.603937e-05 9.4285714 + 25100 0.0028201154 0 4.3938431e-05 3.0418239e-06 5.8688084e-05 9.4285714 + 25200 0.0029086169 0 3.9184289e-05 -1.53382e-06 4.5684354e-05 9.4285714 + 25300 0.0028528211 0 4.4996759e-05 2.6609485e-06 4.2673517e-05 9.4285714 + 25400 0.0027655631 0 4.2432926e-05 2.1473821e-05 6.8108741e-05 9.4285714 + 25500 0.0027631455 0 5.0514226e-05 2.7797928e-05 5.8437613e-05 9.4285714 + 25600 0.0027455338 0 4.3507582e-05 -1.0456464e-05 5.1578934e-05 9.4285714 + 25700 0.0027314337 0 3.7998608e-05 2.5300155e-05 5.954794e-05 9.4285714 + 25800 0.0026789336 0 5.6853762e-05 2.33174e-05 5.8401995e-05 9.4285714 + 25900 0.0026686904 0 6.7084502e-05 -1.1954024e-05 5.9379012e-05 9.4285714 + 26000 0.0026703643 0 5.6882192e-05 2.5357526e-05 5.608238e-05 9.4285714 + 26100 0.0026825353 0 5.3411638e-05 2.2603349e-05 5.7143751e-05 9.4285714 + 26200 0.0026825174 0 4.4889326e-05 6.9889785e-06 5.8696773e-05 9.4285714 + 26300 0.0025517718 0 5.0976225e-05 2.6619688e-05 6.2081286e-05 9.4285714 + 26400 0.002448155 0 4.6795755e-05 2.6745973e-05 6.9058563e-05 9.4285714 + 26500 0.0023334395 0 3.6329495e-05 2.1444416e-05 6.3642539e-05 9.4285714 + 26600 0.0023097701 0 1.4550567e-05 2.0382944e-05 7.4206161e-05 9.4285714 + 26700 0.0023614287 0 3.6837945e-05 7.9340854e-06 4.7722434e-05 9.4285714 + 26800 0.0023955623 0 3.3758906e-05 1.7850933e-05 5.5370197e-05 9.4285714 + 26900 0.0019993736 0 2.401514e-05 7.8783626e-06 6.8777068e-05 9.4285714 + 27000 0.0019497677 0 3.4976669e-05 2.0510247e-05 8.2493412e-05 9.4285714 + 27100 0.0020363076 0 3.0367221e-05 2.8074655e-05 6.8056692e-05 9.4285714 + 27200 0.0021974785 0 2.8659262e-05 1.6294524e-05 5.6354701e-05 9.4285714 + 27300 0.002350289 0 4.0543677e-05 3.479231e-05 9.0764702e-05 9.4285714 + 27400 0.0026460053 0 3.662854e-05 3.4426146e-05 5.8695061e-05 9.4285714 + 27500 0.0027599044 0 2.6446889e-05 2.899965e-05 3.1521376e-05 9.4285714 + 27600 0.0026660556 0 3.9779618e-05 4.4458176e-05 6.7754246e-05 9.4285714 + 27700 0.0026060398 0 4.7271306e-05 3.8365324e-05 8.0132483e-05 9.4285714 + 27800 0.002724511 0 3.2724273e-05 3.0569502e-05 3.8076705e-05 9.4285714 + 27900 0.0027318479 0 3.2565575e-05 4.4661949e-05 3.5502056e-05 9.4285714 + 28000 0.0026231478 0 3.0921183e-05 6.0356667e-05 6.119464e-05 9.4285714 + 28100 0.0025508556 0 3.8236605e-05 7.3664001e-05 6.7713451e-05 9.4285714 + 28200 0.0025807152 0 2.9349952e-05 7.4140709e-05 6.1882214e-05 9.4285714 + 28300 0.0024074206 0 4.7886113e-05 5.3408061e-05 7.1587209e-05 9.4285714 + 28400 0.0021292859 0 3.9661978e-05 4.0501829e-05 8.4104354e-05 9.4285714 + 28500 0.0022172558 0 9.263267e-06 3.0058013e-05 6.6166187e-05 9.4285714 + 28600 0.0022653927 0 1.0971373e-05 3.0295081e-05 5.9537447e-05 9.4285714 + 28700 0.0025914898 0 3.6755792e-05 6.2489978e-05 7.3424188e-05 9.4285714 + 28800 0.0028276024 0 3.411427e-05 6.1657699e-05 5.2554821e-05 9.4285714 + 28900 0.0029326653 0 2.9451988e-05 5.2815959e-05 4.9287892e-05 9.4285714 + 29000 0.002965493 0 4.3028891e-05 5.075017e-05 4.0608877e-05 9.4285714 + 29100 0.0029096903 0 2.3691422e-05 5.351833e-05 5.2666702e-05 9.4285714 + 29200 0.0028604262 0 2.3683149e-05 7.0673759e-05 5.6222633e-05 9.4285714 + 29300 0.0028093312 0 2.7695636e-05 3.7456562e-05 5.2008785e-05 9.4285714 + 29400 0.0026786162 0 1.7501321e-05 4.5402961e-05 3.9525304e-05 9.4285714 + 29500 0.0025387867 0 2.6252438e-05 0.00011675762 5.4076857e-05 9.4285714 + 29600 0.0026569564 0 2.0179873e-05 3.5543954e-05 5.8794028e-05 9.4285714 + 29700 0.0027207144 0 1.4132151e-05 -1.0930379e-05 4.9793098e-05 9.4285714 + 29800 0.0026892821 0 1.5975512e-05 3.2195344e-05 7.7929499e-05 9.4285714 + 29900 0.002643369 0 9.7678707e-06 1.514329e-05 6.9299393e-05 9.4285714 + 30000 0.0026484998 0 1.8316171e-05 2.1415077e-05 7.6825888e-05 9.4285714 + 30100 0.0028058509 0 2.8010974e-05 3.0588454e-05 8.9088871e-05 9.4285714 + 30200 0.0030353215 0 3.0063085e-05 2.9104606e-05 5.9605817e-05 9.4285714 + 30300 0.0030244988 0 5.9349189e-05 5.3259974e-05 8.9481653e-05 9.4285714 + 30400 0.0030855053 0 3.9650015e-05 3.414212e-05 7.0405413e-05 9.4285714 + 30500 0.0031141819 0 1.5522675e-05 3.9813856e-05 3.5114379e-05 9.4285714 + 30600 0.0030115458 0 6.207961e-05 6.9753316e-05 7.8366207e-05 9.4285714 + 30700 0.0029700178 0 5.3239082e-05 6.3389177e-05 5.4097351e-05 9.4285714 + 30800 0.0029985358 0 5.2375856e-05 5.1058091e-05 3.3422572e-05 9.4285714 + 30900 0.0029689517 0 7.9332461e-05 4.3886728e-05 5.4365146e-05 9.4285714 + 31000 0.0029622718 0 4.1523447e-05 3.6825764e-05 4.5694556e-05 9.4285714 + 31100 0.0029693917 0 3.9693868e-05 3.1903074e-05 5.8747157e-05 9.4285714 + 31200 0.0027246348 0 4.7276494e-05 2.7079375e-05 7.6416899e-05 9.4285714 + 31300 0.0025368424 0 2.0106344e-05 1.9267294e-05 6.5804133e-05 9.4285714 + 31400 0.0023736698 0 3.4928557e-05 2.8361754e-05 7.2137201e-05 9.4285714 + 31500 0.0023946514 0 4.2754557e-05 3.7950211e-05 8.8735068e-05 9.4285714 + 31600 0.0025648037 0 3.7965284e-05 3.50089e-05 8.1900334e-05 9.4285714 + 31700 0.0026956511 0 4.4264259e-05 3.1634807e-05 7.4263237e-05 9.4285714 + 31800 0.002677722 0 4.2244917e-05 3.2173533e-05 8.3389862e-05 9.4285714 + 31900 0.0026705496 0 3.6129898e-05 4.4926239e-05 0.00010110824 9.4285714 + 32000 0.0026466417 0 2.9725035e-05 2.3414537e-05 7.220946e-05 9.4285714 + 32100 0.0026464292 0 5.4134116e-05 3.4177457e-05 6.0288821e-05 9.4285714 + 32200 0.0023705665 0 8.9404512e-05 4.9292654e-05 7.4340835e-05 9.4285714 + 32300 0.0023183595 0 3.1106601e-05 1.969535e-05 7.2988393e-05 9.4285714 + 32400 0.0023882969 0 3.0033e-05 3.3991058e-05 7.1203923e-05 9.4285714 + 32500 0.0023801754 0 2.0067694e-05 3.609562e-05 7.429963e-05 9.4285714 + 32600 0.0024127958 0 1.860145e-05 1.673518e-05 6.100357e-05 9.4285714 + 32700 0.0024031675 0 1.6548008e-05 3.1315194e-05 8.701554e-05 9.4285714 + 32800 0.0023770089 0 3.1288811e-05 3.9427918e-05 5.6604914e-05 9.4285714 + 32900 0.0023568819 0 2.1325065e-05 3.2192459e-05 4.8319222e-05 9.4285714 + 33000 0.0023407285 0 2.2054448e-05 2.8803406e-05 5.5905315e-05 9.4285714 + 33100 0.002327332 0 4.0361707e-05 3.7589399e-05 4.2886312e-05 9.4285714 + 33200 0.0023912585 0 -9.7229548e-07 2.5787094e-05 6.5015833e-05 9.4285714 + 33300 0.0022984153 0 3.2373497e-05 2.5040091e-05 6.9835525e-05 9.4285714 + 33400 0.0022416368 0 2.669143e-05 3.3965765e-05 6.2323403e-05 9.4285714 + 33500 0.0022470637 0 2.3937493e-05 3.2027546e-05 6.683839e-05 9.4285714 + 33600 0.002256129 0 5.0952751e-05 1.2468902e-05 8.4446592e-05 9.4285714 + 33700 0.0022125246 0 3.093841e-05 2.8287747e-05 6.9499172e-05 9.4285714 + 33800 0.0021842197 0 3.5838423e-05 4.2090475e-05 6.9350286e-05 9.4285714 + 33900 0.0021690567 0 2.1933016e-05 2.3178404e-05 6.7082352e-05 9.4285714 + 34000 0.0022206311 0 1.6269784e-05 1.1538009e-05 6.9266998e-05 9.4285714 + 34100 0.0022494061 0 9.1490397e-06 2.3350968e-05 6.8389039e-05 9.4285714 + 34200 0.0022085859 0 1.1855555e-05 3.1674183e-05 7.1002559e-05 9.4285714 + 34300 0.0021855633 0 3.6129131e-05 3.1747187e-05 7.3965145e-05 9.4285714 + 34400 0.0021798298 0 2.9737106e-05 3.3328648e-05 6.9329253e-05 9.4285714 + 34500 0.0021267289 0 3.0875724e-05 3.9773694e-05 7.6428461e-05 9.4285714 + 34600 0.0020466804 0 4.5953975e-05 3.604981e-05 9.1419852e-05 9.4285714 + 34700 0.0020969555 0 2.1591871e-05 2.7684452e-05 7.3703867e-05 9.4285714 + 34800 0.0022946237 0 2.5522835e-05 5.2438515e-05 7.4505556e-05 9.4285714 + 34900 0.0024490201 0 3.0917851e-05 4.7710261e-05 6.8019936e-05 9.4285714 + 35000 0.0023320217 0 1.3576325e-05 2.3430256e-05 9.5266861e-05 9.4285714 + 35100 0.0021890324 0 3.4077104e-05 7.0143939e-05 0.00014586007 9.4285714 + 35200 0.0022124553 0 3.9202113e-05 6.7232341e-05 0.00011830019 9.4285714 + 35300 0.0022584165 0 3.2352745e-05 3.4532597e-05 0.00010884414 9.4285714 + 35400 0.0022737238 0 2.6169969e-05 5.4509206e-05 0.00013180587 9.4285714 + 35500 0.0021537481 0 1.3607191e-05 6.4837671e-05 0.00010851886 9.4285714 + 35600 0.0019831613 0 3.7737426e-05 3.5351631e-05 0.00011069142 9.4285714 + 35700 0.0019041909 0 5.8970853e-05 4.7427627e-05 8.3590155e-05 9.4285714 + 35800 0.0018216502 0 2.0975612e-05 6.7395457e-05 8.6545139e-05 9.4285714 + 35900 0.0018071574 0 4.9077297e-05 5.6297007e-05 8.6311389e-05 9.4285714 + 36000 0.0018645267 0 4.3766063e-05 6.3882304e-05 7.7447784e-05 9.4285714 + 36100 0.0018474198 0 2.7934971e-05 4.1953568e-05 7.3607852e-05 9.4285714 + 36200 0.0017366166 0 6.3710459e-05 5.0034173e-05 8.7289442e-05 9.4285714 + 36300 0.0016630877 0 7.6673753e-05 7.2721043e-05 6.987444e-05 9.4285714 + 36400 0.0016809967 0 7.7155302e-05 5.3898957e-05 5.1930662e-05 9.4285714 + 36500 0.0017478488 0 4.3901858e-05 4.0429824e-05 5.2253472e-05 9.4285714 + 36600 0.0017244649 0 2.428819e-05 4.6012488e-05 3.7569881e-05 9.4285714 + 36700 0.001694793 0 4.1551489e-05 5.7262857e-05 5.4986708e-05 9.4285714 + 36800 0.0016321204 0 2.4522843e-05 6.8176422e-05 5.0512524e-05 9.4285714 + 36900 0.0015208954 0 2.4066113e-05 6.9956589e-05 3.100353e-05 9.4285714 + 37000 0.0014068755 0 3.7418687e-05 3.3424302e-05 4.5889741e-05 9.4285714 + 37100 0.0013361229 0 2.3700045e-05 5.9655032e-05 5.8355744e-05 9.4285714 + 37200 0.001331474 0 2.4647885e-05 2.9564413e-05 6.151617e-05 9.4285714 + 37300 0.0013895388 0 3.1218344e-05 5.3264584e-05 5.4150714e-05 9.4285714 + 37400 0.001407333 0 2.9698504e-05 3.9474095e-05 6.2202002e-05 9.4285714 + 37500 0.0013815772 0 1.8291183e-05 3.6964703e-05 4.5117987e-05 9.4285714 + 37600 0.001367937 0 7.4389408e-06 4.5115277e-05 6.3566279e-05 9.4285714 + 37700 0.0013781896 0 1.1284658e-05 3.3828999e-05 3.0356852e-05 9.4285714 + 37800 0.0013938097 0 7.4598099e-06 2.7777999e-05 4.0234563e-05 9.4285714 + 37900 0.0013788852 0 1.5446137e-05 3.4929786e-05 5.4102572e-05 9.4285714 + 38000 0.0013409916 0 1.4441923e-05 3.3307632e-05 3.9082488e-05 9.4285714 + 38100 0.0013548793 0 6.7717499e-06 2.1259364e-05 6.6745044e-05 9.4285714 + 38200 0.0013619894 0 6.5554231e-06 2.8685491e-05 5.3680355e-05 9.4285714 + 38300 0.0013593654 0 1.056312e-05 2.2266742e-05 4.345309e-05 9.4285714 + 38400 0.0013488508 0 1.557872e-05 2.3814902e-05 6.6112512e-05 9.4285714 + 38500 0.0013399961 0 1.5993586e-05 2.3166151e-05 6.6558579e-05 9.4285714 + 38600 0.0013473117 0 1.5515364e-05 1.4310057e-05 5.3828044e-05 9.4285714 + 38700 0.0013275262 0 1.3467545e-05 3.6691606e-05 5.4651816e-05 9.4285714 + 38800 0.001304838 0 1.2622031e-05 1.8240819e-05 6.8478029e-05 9.4285714 + 38900 0.0012981525 0 1.5965351e-05 7.301553e-07 6.0493525e-05 9.4285714 + 39000 0.0013241474 0 1.090791e-05 1.3786425e-05 5.8612758e-05 9.4285714 + 39100 0.0013302715 0 1.3962184e-05 7.7290833e-06 7.2626585e-05 9.4285714 + 39200 0.0013338793 0 1.9124677e-05 1.2103012e-05 6.4272665e-05 9.4285714 + 39300 0.001337749 0 1.2034083e-05 2.0304797e-05 5.5832191e-05 9.4285714 + 39400 0.0014184127 0 2.3587723e-05 2.6667391e-05 6.1393117e-05 9.4285714 + 39500 0.0015076229 0 3.3529982e-05 2.8742772e-05 5.1854875e-05 9.4285714 + 39600 0.001584196 0 3.329731e-05 3.2142836e-05 5.5667568e-05 9.4285714 + 39700 0.0016673141 0 4.3874089e-05 3.911096e-05 6.1078216e-05 9.4285714 + 39800 0.0016983633 0 3.5412377e-05 3.3834797e-05 4.7630906e-05 9.4285714 + 39900 0.001721388 0 3.933382e-05 3.2179967e-05 4.124963e-05 9.4285714 + 40000 0.0016511866 0 4.0224006e-05 3.6540739e-05 6.1229941e-05 9.4285714 + 40100 0.0015902117 0 3.6395621e-05 3.46428e-05 5.5755476e-05 9.4285714 + 40200 0.0016248457 0 3.4583893e-05 3.816918e-05 4.6174117e-05 9.4285714 + 40300 0.001639017 0 3.2218286e-05 2.1195869e-05 5.094444e-05 9.4285714 + 40400 0.0015947128 0 3.6248764e-05 2.1295273e-05 6.3147523e-05 9.4285714 + 40500 0.0014886812 0 4.7131763e-05 2.4191444e-05 7.2883457e-05 9.4285714 + 40600 0.001483951 0 3.6448135e-05 2.6739025e-05 5.5832321e-05 9.4285714 + 40700 0.0014877422 0 3.5828172e-05 1.4229622e-05 5.437453e-05 9.4285714 + 40800 0.0014974798 0 3.9713792e-05 5.9573135e-06 7.8424652e-05 9.4285714 + 40900 0.0014499802 0 3.0640365e-05 1.6594208e-05 5.5042674e-05 9.4285714 + 41000 0.001395913 0 4.4086797e-05 2.1374448e-05 6.842533e-05 9.4285714 + 41100 0.0014079985 0 3.4018478e-05 4.769345e-06 8.7786364e-05 9.4285714 + 41200 0.0014187083 0 2.5282617e-05 1.068147e-05 4.998439e-05 9.4285714 + 41300 0.0014072972 0 3.8324312e-05 2.7053184e-05 7.2652898e-05 9.4285714 + 41400 0.0014168981 0 2.2198923e-05 2.385181e-05 5.9696044e-05 9.4285714 + 41500 0.0014248439 0 2.2507889e-05 2.4943991e-05 4.8133783e-05 9.4285714 + 41600 0.0014225044 0 1.7477309e-05 2.4821833e-05 7.3031953e-05 9.4285714 + 41700 0.0014075811 0 6.0477226e-06 3.3082497e-05 4.6074646e-05 9.4285714 + 41800 0.0012680617 0 4.0229918e-05 4.5845799e-05 4.7760436e-05 9.4285714 + 41900 0.0010587818 0 8.7500075e-05 2.7520625e-05 8.5329729e-05 9.4285714 + 42000 0.0010007004 0 7.957049e-05 2.7796479e-05 7.179911e-05 9.4285714 + 42100 0.0011304402 0 6.7932609e-05 3.0223682e-05 8.4046251e-05 9.4285714 + 42200 0.0012833154 0 4.4695908e-05 3.1025337e-05 8.6333525e-05 9.4285714 + 42300 0.0013573853 0 3.7885389e-06 3.242561e-05 4.6636393e-05 9.4285714 + 42400 0.0013330633 0 2.5305413e-05 3.6210128e-05 7.9624924e-05 9.4285714 + 42500 0.0012896373 0 4.4892704e-05 4.5307645e-05 8.8376567e-05 9.4285714 + 42600 0.001296775 0 1.2123487e-05 3.1329317e-05 4.689266e-05 9.4285714 + 42700 0.0013193969 0 2.5015346e-05 3.7644129e-05 6.9158547e-05 9.4285714 + 42800 0.0013144903 0 2.7945886e-05 4.3976185e-05 7.2258209e-05 9.4285714 + 42900 0.0013053554 0 2.4932516e-05 2.56847e-05 5.5060153e-05 9.4285714 + 43000 0.0013061323 0 3.505508e-05 3.6703149e-05 6.4102162e-05 9.4285714 + 43100 0.0013149372 0 2.038307e-05 3.6535953e-05 7.001205e-05 9.4285714 + 43200 0.0013063189 0 2.268783e-05 3.1284363e-05 7.1489703e-05 9.4285714 + 43300 0.0012669853 0 4.2151966e-05 3.9616841e-05 8.600203e-05 9.4285714 + 43400 0.0012238388 0 5.3831605e-05 3.1663968e-05 0.00010748716 9.4285714 + 43500 0.0012053096 0 4.8917941e-05 4.1146437e-05 8.2504846e-05 9.4285714 + 43600 0.001243323 0 5.6671957e-05 4.1809653e-05 6.8354881e-05 9.4285714 + 43700 0.001354992 0 6.1374672e-05 3.8833483e-05 7.767147e-05 9.4285714 + 43800 0.0015252788 0 5.8329091e-05 4.5092041e-05 6.9458926e-05 9.4285714 + 43900 0.0016845587 0 5.2409784e-05 4.1549162e-05 6.3318187e-05 9.4285714 + 44000 0.0016987088 0 4.7336939e-05 3.8434001e-05 3.9736647e-05 9.4285714 + 44100 0.0016663634 0 5.3015191e-05 4.4114496e-05 6.0593021e-05 9.4285714 + 44200 0.0016642734 0 5.214706e-05 4.2354707e-05 7.5907264e-05 9.4285714 + 44300 0.0016877933 0 5.0208545e-05 4.4720314e-05 4.2475579e-05 9.4285714 + 44400 0.0016937941 0 5.5355055e-05 4.3854147e-05 5.5002022e-05 9.4285714 + 44500 0.001658184 0 3.9777309e-05 4.0596489e-05 7.2900309e-05 9.4285714 + 44600 0.0016202756 0 2.9046764e-05 4.4611362e-05 8.4216927e-05 9.4285714 + 44700 0.0012624519 0 5.8118979e-05 5.1336615e-05 8.5097154e-05 9.4285714 + 44800 0.0012148648 0 4.7990064e-05 4.5865246e-05 0.00010159441 9.4285714 + 44900 0.0012565599 0 2.0587612e-05 1.8054993e-05 7.9471736e-05 9.4285714 + 45000 0.0012298496 0 5.4851152e-05 4.3491138e-05 8.0059008e-05 9.4285714 + 45100 0.0012274205 0 5.2324153e-05 3.6704358e-05 8.9721391e-05 9.4285714 + 45200 0.0012389066 0 3.7648091e-05 4.0944545e-05 9.5234226e-05 9.4285714 + 45300 0.0012251609 0 6.0261206e-05 5.1852752e-05 9.0949936e-05 9.4285714 + 45400 0.0012814774 0 6.4393391e-05 3.7667283e-05 7.6665383e-05 9.4285714 + 45500 0.0013450626 0 5.3955889e-05 3.333518e-05 6.2323361e-05 9.4285714 + 45600 0.0013741472 0 7.6840597e-05 4.8885582e-05 7.5101429e-05 9.4285714 + 45700 0.0014351223 0 6.9926667e-05 4.095132e-05 6.4348005e-05 9.4285714 + 45800 0.0015284371 0 6.5168141e-05 5.0243258e-05 5.8089422e-05 9.4285714 + 45900 0.001575355 0 6.7430051e-05 6.1147022e-05 7.5616361e-05 9.4285714 + 46000 0.0015147792 0 5.974587e-05 5.4339958e-05 6.89933e-05 9.4285714 + 46100 0.0014504182 0 5.7541539e-05 5.0006578e-05 7.0543678e-05 9.4285714 + 46200 0.0014410639 0 5.8653588e-05 5.2586065e-05 8.1219081e-05 9.4285714 + 46300 0.0014810525 0 4.7027763e-05 3.957261e-05 4.9542345e-05 9.4285714 + 46400 0.0014640215 0 4.979541e-05 1.7965262e-05 6.0180114e-05 9.4285714 + 46500 0.0014424933 0 5.8745985e-05 5.7017286e-05 6.8960391e-05 9.4285714 + 46600 0.001441165 0 6.0140939e-05 4.6475918e-05 5.6358378e-05 9.4285714 + 46700 0.0015025344 0 5.7998976e-05 1.9007372e-05 6.9395672e-05 9.4285714 + 46800 0.0015582176 0 5.9436654e-05 4.8677122e-05 5.618251e-05 9.4285714 + 46900 0.0015803324 0 5.4329951e-05 4.4548088e-05 4.6224761e-05 9.4285714 + 47000 0.001675143 0 6.7118862e-05 5.1584703e-05 6.351515e-05 9.4285714 + 47100 0.0017769921 0 6.6842957e-05 5.3736059e-05 5.062399e-05 9.4285714 + 47200 0.0018358006 0 7.1689975e-05 5.6118418e-05 4.7990149e-05 9.4285714 + 47300 0.0017951326 0 7.4127289e-05 7.3816363e-05 5.0104237e-05 9.4285714 + 47400 0.0017057371 0 7.2774664e-05 4.7651294e-05 3.5218695e-05 9.4285714 + 47500 0.0016744493 0 6.6367496e-05 5.9365352e-05 5.0217044e-05 9.4285714 + 47600 0.0014031951 0 7.8136546e-05 6.6155937e-05 6.7384693e-05 9.4285714 + 47700 0.0013373039 0 7.0639329e-05 2.511137e-05 3.9534806e-05 9.4285714 + 47800 0.0014704003 0 6.5287146e-05 6.1682091e-05 5.2105143e-05 9.4285714 + 47900 0.0014934525 0 5.7380229e-05 6.0784906e-05 5.1933873e-05 9.4285714 + 48000 0.0014895856 0 5.7777082e-05 3.2566077e-05 5.6885486e-05 9.4285714 + 48100 0.00146967 0 6.2296437e-05 5.9058125e-05 8.2342951e-05 9.4285714 + 48200 0.0015682986 0 5.6963813e-05 6.9617445e-05 5.2534658e-05 9.4285714 + 48300 0.0017163505 0 6.1379044e-05 7.1818241e-05 5.7325956e-05 9.4285714 + 48400 0.0014261936 0 7.3161005e-05 6.1824088e-05 8.2548349e-05 9.4285714 + 48500 0.0014236361 0 6.1449743e-05 4.8278985e-05 4.0124971e-05 9.4285714 + 48600 0.0014562257 0 4.5352973e-05 6.5203729e-05 2.9114173e-05 9.4285714 + 48700 0.0013758282 0 5.142512e-05 5.5645429e-05 5.0808976e-05 9.4285714 + 48800 0.0014316476 0 4.7089175e-05 2.3932718e-05 6.2491645e-05 9.4285714 + 48900 0.0014805023 0 3.202017e-05 2.5779532e-05 2.4693407e-05 9.4285714 + 49000 0.0013776549 0 4.5921287e-05 3.5365771e-05 4.1227618e-05 9.4285714 + 49100 0.0013617488 0 3.9474501e-05 4.6966656e-05 9.1036599e-05 9.4285714 + 49200 0.0013342401 0 7.8714486e-05 3.901494e-05 4.6082427e-05 9.4285714 + 49300 0.001276486 0 8.5308627e-05 4.9747481e-05 6.6920379e-05 9.4285714 + 49400 0.0011795288 0 5.385526e-05 7.1565933e-05 7.5941735e-05 9.4285714 + 49500 0.0011435859 0 6.7438968e-05 5.252065e-05 4.4969603e-05 9.4285714 + 49600 0.001247689 0 4.8189516e-05 5.606737e-05 7.5562669e-05 9.4285714 + 49700 0.0013371245 0 3.0586887e-05 3.3461339e-05 5.7168685e-05 9.4285714 + 49800 0.001301722 0 3.5961521e-05 4.0225086e-05 5.5419691e-05 9.4285714 + 49900 0.0012728363 0 3.781088e-05 6.7681947e-05 7.3469228e-05 9.4285714 + 50000 0.0013286836 0 2.0747917e-05 3.2920899e-05 5.6036366e-05 9.4285714 + 50100 0.0013460063 0 2.2076031e-05 3.3652205e-05 6.008755e-05 9.4285714 + 50200 0.0012868089 0 2.9384106e-05 5.6767755e-05 7.0843856e-05 9.4285714 + 50300 0.0012765172 0 3.4521368e-05 4.9418831e-05 7.0177943e-05 9.4285714 + 50400 0.0012703222 0 3.6291462e-05 6.8474511e-05 7.0682948e-05 9.4285714 + 50500 0.0011906512 0 4.1093781e-05 7.1478191e-05 7.2068398e-05 9.4285714 + 50600 0.0011537339 0 3.1556882e-05 4.1722061e-05 7.9155785e-05 9.4285714 + 50700 0.0011267336 0 2.9306562e-05 5.3537978e-05 0.00010138475 9.4285714 + 50800 0.0011753482 0 4.1295435e-05 4.117216e-05 0.00010940627 9.4285714 + 50900 0.0011919232 0 3.5291826e-05 2.7690085e-05 6.4859546e-05 9.4285714 + 51000 0.0011838525 0 3.7804427e-05 4.3372281e-05 7.4969581e-05 9.4285714 + 51100 0.0011883954 0 6.1459693e-05 4.6697285e-05 7.7009321e-05 9.4285714 + 51200 0.0012349694 0 4.8996624e-05 3.1792466e-05 4.2980098e-05 9.4285714 + 51300 0.0012337432 0 3.0225925e-05 3.3059018e-05 6.4590344e-05 9.4285714 + 51400 0.0011577306 0 8.2698384e-05 3.8030266e-05 9.1759993e-05 9.4285714 + 51500 0.0011811724 0 5.9469946e-05 3.0730225e-05 9.4515804e-05 9.4285714 + 51600 0.0012159313 0 4.752115e-05 2.2092938e-05 8.3450965e-05 9.4285714 + 51700 0.0011936762 0 5.9485961e-05 3.9926221e-05 9.155953e-05 9.4285714 + 51800 0.00119466 0 3.5951585e-05 4.0938525e-05 8.2492561e-05 9.4285714 + 51900 0.0012013641 0 3.9985087e-05 3.1268943e-05 6.9196585e-05 9.4285714 + 52000 0.0011652185 0 4.7598806e-05 4.0944772e-05 8.152202e-05 9.4285714 + 52100 0.0011222289 0 3.739268e-05 4.0163882e-05 7.9877837e-05 9.4285714 + 52200 0.0011223637 0 4.1767012e-05 4.3238615e-05 8.1620009e-05 9.4285714 + 52300 0.00108781 0 4.2621468e-05 4.8449175e-05 8.8351917e-05 9.4285714 + 52400 0.0010329114 0 4.2272037e-05 4.6831094e-05 9.0371289e-05 9.4285714 + 52500 0.0010414794 0 5.8841141e-05 4.2908938e-05 9.7364103e-05 9.4285714 + 52600 0.0011160581 0 5.0413342e-05 4.0018307e-05 8.1832238e-05 9.4285714 + 52700 0.0011365494 0 5.4799404e-05 3.9990197e-05 6.8582155e-05 9.4285714 + 52800 0.0011528486 0 5.9449422e-05 4.4180114e-05 7.8135764e-05 9.4285714 + 52900 0.001215765 0 7.724582e-05 6.6093449e-05 0.0001064278 9.4285714 + 53000 0.0013368124 0 7.3703922e-05 5.0858461e-05 7.6836114e-05 9.4285714 + 53100 0.0013407312 0 6.2171068e-05 5.3889729e-05 6.880048e-05 9.4285714 + 53200 0.0013326843 0 6.4548253e-05 6.224984e-05 8.4641195e-05 9.4285714 + 53300 0.0013239729 0 6.0319543e-05 5.8209843e-05 6.5588436e-05 9.4285714 + 53400 0.0013217143 0 5.3952234e-05 6.2188072e-05 5.7866618e-05 9.4285714 + 53500 0.0012781803 0 6.1927188e-05 7.8771424e-05 6.5769719e-05 9.4285714 + 53600 0.001268382 0 6.6769939e-05 6.7552155e-05 7.9292264e-05 9.4285714 + 53700 0.0012069904 0 6.3035353e-05 7.6839293e-05 6.4761494e-05 9.4285714 + 53800 0.0011968988 0 7.7775234e-05 8.0850068e-05 6.4073986e-05 9.4285714 + 53900 0.0011731954 0 7.8942799e-05 6.415663e-05 6.8798682e-05 9.4285714 + 54000 0.0011606061 0 7.0843597e-05 6.4421097e-05 5.9264639e-05 9.4285714 + 54100 0.0011658982 0 7.3791408e-05 5.9714351e-05 5.9388294e-05 9.4285714 + 54200 0.0011195165 0 7.5062867e-05 5.1967479e-05 6.6867658e-05 9.4285714 + 54300 0.0010220393 0 7.1628947e-05 5.5455247e-05 7.5330768e-05 9.4285714 + 54400 0.0010086172 0 7.5800982e-05 4.2581182e-05 9.7752447e-05 9.4285714 + 54500 0.0010183988 0 6.9462298e-05 2.7534816e-05 9.3677455e-05 9.4285714 + 54600 0.0010068716 0 6.3307701e-05 4.0044863e-05 6.4661139e-05 9.4285714 + 54700 0.00099012603 0 6.054033e-05 3.7788592e-05 7.4230926e-05 9.4285714 + 54800 0.0009683722 0 7.7618706e-05 3.4929403e-05 8.2615118e-05 9.4285714 + 54900 0.00097629715 0 6.0748376e-05 4.7953003e-05 6.5727568e-05 9.4285714 + 55000 0.00095157382 0 5.7032086e-05 3.6371601e-05 6.1479859e-05 9.4285714 + 55100 0.00090688968 0 6.6813633e-05 3.8068449e-05 6.0136453e-05 9.4285714 + 55200 0.00088813057 0 5.4468645e-05 4.2209266e-05 5.6362466e-05 9.4285714 + 55300 0.00092557007 0 4.5622928e-05 3.7235869e-05 5.519561e-05 9.4285714 + 55400 0.00091327263 0 3.1184159e-05 4.7698311e-05 4.1473986e-05 9.4285714 + 55500 0.00079921186 0 4.2037172e-05 5.9276972e-05 5.152938e-05 9.4285714 + 55600 0.00081947901 0 5.355572e-05 6.752627e-05 7.3883049e-05 9.4285714 + 55700 0.00084804465 0 1.9648479e-05 2.4946587e-05 7.3095049e-05 9.4285714 + 55800 0.00085118568 0 2.6490199e-05 4.8069956e-05 5.690315e-05 9.4285714 + 55900 0.00079015144 0 5.1906966e-05 3.7090677e-05 6.8990067e-05 9.4285714 + 56000 0.00077424122 0 5.5619324e-05 2.6584622e-05 7.9553055e-05 9.4285714 + 56100 0.00078729859 0 5.7527201e-05 5.8252464e-05 5.5596022e-05 9.4285714 + 56200 0.00073803593 0 6.0864638e-05 2.5528312e-05 6.7041285e-05 9.4285714 + 56300 0.00072042566 0 6.6197657e-05 2.6713058e-05 8.9317267e-05 9.4285714 + 56400 0.00072618636 0 7.0243805e-05 4.6306853e-05 6.6723713e-05 9.4285714 + 56500 0.00072889383 0 6.1503242e-05 3.1283082e-05 5.6818079e-05 9.4285714 + 56600 0.00071687768 0 6.0574003e-05 3.8132065e-05 7.2674723e-05 9.4285714 + 56700 0.00070767909 0 6.2668821e-05 3.182732e-05 6.6720519e-05 9.4285714 + 56800 0.0007079533 0 5.0107283e-05 2.8951951e-05 7.3466661e-05 9.4285714 + 56900 0.00068006672 0 6.2013944e-05 5.565292e-05 6.162706e-05 9.4285714 + 57000 0.000671041 0 6.7800283e-05 4.9108988e-05 5.0514824e-05 9.4285714 + 57100 0.00074371147 0 6.0778783e-05 4.6623614e-05 7.0016036e-05 9.4285714 + 57200 0.00081400221 0 6.6854831e-05 5.6455913e-05 4.7909892e-05 9.4285714 + 57300 0.000917037 0 6.037679e-05 5.831922e-05 3.0276201e-05 9.4285714 + 57400 0.00094626663 0 3.6929202e-05 5.5118126e-05 6.3066718e-05 9.4285714 + 57500 0.00093346301 0 4.2929284e-05 6.1155376e-05 5.975267e-05 9.4285714 + 57600 0.00093999622 0 5.4774372e-05 5.4704358e-05 6.248684e-05 9.4285714 + 57700 0.00094337314 0 5.1052798e-05 5.8541842e-05 7.5050098e-05 9.4285714 + 57800 0.00092645123 0 5.4055981e-05 6.1848007e-05 6.7174441e-05 9.4285714 + 57900 0.00091253668 0 4.336952e-05 5.0710047e-05 6.1963165e-05 9.4285714 + 58000 0.0009262852 0 4.2890115e-05 4.3909161e-05 6.5498785e-05 9.4285714 + 58100 0.00093298888 0 3.4648981e-05 3.9769303e-05 4.8809176e-05 9.4285714 + 58200 0.00093354721 0 2.9625295e-05 3.8316918e-05 4.9736312e-05 9.4285714 + 58300 0.00093283167 0 3.7120772e-05 3.3230543e-05 5.9892908e-05 9.4285714 + 58400 0.00093485322 0 3.2158058e-05 3.1324318e-05 4.9175918e-05 9.4285714 + 58500 0.00092566721 0 3.7365351e-05 2.89221e-05 5.5349063e-05 9.4285714 + 58600 0.00093205032 0 5.0065939e-05 5.3559803e-05 6.3571654e-05 9.4285714 + 58700 0.00094034992 0 3.8592173e-05 3.491305e-05 6.5379756e-05 9.4285714 + 58800 0.00096489026 0 4.1216942e-05 2.6009902e-05 7.102403e-05 9.4285714 + 58900 0.00097781296 0 6.3787952e-05 5.0445974e-05 6.6836738e-05 9.4285714 + 59000 0.00095088201 0 3.1388682e-05 2.6786636e-05 7.0766736e-05 9.4285714 + 59100 0.00092096092 0 4.7421629e-05 4.3182864e-05 7.2537665e-05 9.4285714 + 59200 0.0009112309 0 5.9256553e-05 5.4527325e-05 6.2965257e-05 9.4285714 + 59300 0.00090372653 0 3.3360205e-05 4.1028509e-05 6.9712928e-05 9.4285714 + 59400 0.00086115007 0 5.1420253e-05 8.2036947e-05 6.6038419e-05 9.4285714 + 59500 0.00078451189 0 7.66347e-05 7.591886e-05 6.2707873e-05 9.4285714 + 59600 0.00078587175 0 3.7807167e-05 3.6366682e-05 6.7965056e-05 9.4285714 + 59700 0.00080103949 0 5.7673906e-05 4.7966293e-05 7.051971e-05 9.4285714 + 59800 0.00078782591 0 4.4966944e-05 4.2368336e-05 6.5414206e-05 9.4285714 + 59900 0.00077243837 0 2.4721291e-05 4.6742391e-05 6.6324623e-05 9.4285714 + 60000 0.00075159859 0 5.8959702e-05 5.3911659e-05 7.3517042e-05 9.4285714 + 60100 0.00072169229 0 5.5959875e-05 5.9933611e-05 7.0405063e-05 9.4285714 + 60200 0.00067937954 0 8.4634924e-05 6.6869788e-05 7.3608653e-05 9.4285714 + 60300 0.00067260226 0 0.0001081277 4.7614083e-05 7.0175997e-05 9.4285714 + 60400 0.00069286984 0 5.9196097e-05 4.3191533e-05 5.2139603e-05 9.4285714 + 60500 0.00069736312 0 5.085609e-05 5.5875528e-05 6.6887124e-05 9.4285714 + 60600 0.00069858614 0 4.9289319e-05 4.5459761e-05 7.1668508e-05 9.4285714 + 60700 0.00069821214 0 3.1823553e-05 3.3716244e-05 5.5201529e-05 9.4285714 + 60800 0.0007035508 0 5.1159207e-05 3.5328208e-05 6.3688313e-05 9.4285714 + 60900 0.00070770846 0 4.0687682e-05 2.1755707e-05 6.6080801e-05 9.4285714 + 61000 0.00070195965 0 3.7971557e-05 2.1957987e-05 6.0082676e-05 9.4285714 + 61100 0.00067865064 0 5.7377129e-05 2.5987671e-05 6.872458e-05 9.4285714 + 61200 0.00063690893 0 3.9606468e-05 2.5848129e-05 6.6201193e-05 9.4285714 + 61300 0.00064194236 0 5.2441034e-05 3.4655185e-05 5.8671505e-05 9.4285714 + 61400 0.00063121847 0 4.7935018e-05 2.2491486e-05 5.8084377e-05 9.4285714 + 61500 0.00065356029 0 3.7527612e-05 2.0937477e-05 4.887051e-05 9.4285714 + 61600 0.00066743886 0 3.8559623e-05 2.5014056e-05 4.3951677e-05 9.4285714 + 61700 0.00064876312 0 3.2600293e-05 2.2241219e-05 5.700072e-05 9.4285714 + 61800 0.00063251553 0 3.7962233e-05 2.4996757e-05 6.3827843e-05 9.4285714 + 61900 0.00065196202 0 4.1125532e-05 2.1960645e-05 5.3369952e-05 9.4285714 + 62000 0.00066211487 0 3.5477887e-05 2.2798208e-05 4.6798579e-05 9.4285714 + 62100 0.00063838911 0 4.2783526e-05 3.0011478e-05 5.2953097e-05 9.4285714 + 62200 0.00062154839 0 4.2874196e-05 2.533148e-05 6.0806919e-05 9.4285714 + 62300 0.00063042258 0 3.7398998e-05 2.3748859e-05 5.50952e-05 9.4285714 + 62400 0.00064307282 0 4.2219258e-05 2.4395739e-05 4.2906023e-05 9.4285714 + 62500 0.00062261967 0 4.3025073e-05 2.0264778e-05 4.8658599e-05 9.4285714 + 62600 0.00053916399 0 3.5096062e-05 2.6627415e-05 6.589849e-05 9.4285714 + 62700 0.00057010612 0 3.1052104e-05 2.4098754e-05 5.5807999e-05 9.4285714 + 62800 0.00057237373 0 2.4705173e-05 2.7289243e-05 5.0697954e-05 9.4285714 + 62900 0.00056115858 0 3.4438793e-05 2.5529621e-05 6.6910453e-05 9.4285714 + 63000 0.0005691916 0 3.2831951e-05 3.4373261e-05 6.7414973e-05 9.4285714 + 63100 0.00056814223 0 3.0683193e-05 4.0598453e-05 6.0776437e-05 9.4285714 + 63200 0.00055359969 0 3.3021543e-05 2.205701e-05 6.6701949e-05 9.4285714 + 63300 0.00053663894 0 2.9793234e-05 2.4124459e-05 6.7366363e-05 9.4285714 + 63400 0.00055318219 0 3.5076151e-05 3.7492408e-05 6.7248496e-05 9.4285714 + 63500 0.0005601025 0 3.1596017e-05 2.838392e-05 5.758537e-05 9.4285714 + 63600 0.00054583913 0 3.1887335e-05 3.3258333e-05 6.4545104e-05 9.4285714 + 63700 0.00053483868 0 4.1596672e-05 3.1294263e-05 7.517425e-05 9.4285714 + 63800 0.00055522493 0 3.672744e-05 2.2703198e-05 5.6489688e-05 9.4285714 + 63900 0.00056121598 0 3.7366567e-05 3.3134619e-05 5.2202899e-05 9.4285714 + 64000 0.00054407633 0 4.3628447e-05 2.8715277e-05 6.6320822e-05 9.4285714 + 64100 0.00053661653 0 3.9455768e-05 2.7513024e-05 6.5322037e-05 9.4285714 + 64200 0.00055006192 0 3.8096257e-05 3.5652328e-05 5.7299498e-05 9.4285714 + 64300 0.00055163304 0 3.6955416e-05 3.1648454e-05 5.7391176e-05 9.4285714 + 64400 0.00053078787 0 3.7098375e-05 3.3595793e-05 6.6463932e-05 9.4285714 + 64500 0.00052058058 0 4.6628247e-05 3.4753784e-05 7.0892035e-05 9.4285714 + 64600 0.00052834957 0 4.414476e-05 3.6395151e-05 6.316293e-05 9.4285714 + 64700 0.00051311026 0 3.5727083e-05 3.8183336e-05 6.671273e-05 9.4285714 + 64800 0.00048606856 0 4.2559508e-05 4.0103891e-05 8.1477875e-05 9.4285714 + 64900 0.00047345864 0 5.0985821e-05 4.0731547e-05 7.1758651e-05 9.4285714 + 65000 0.00048454696 0 4.7098363e-05 4.2424083e-05 5.9782966e-05 9.4285714 + 65100 0.00048928041 0 3.8488893e-05 3.3069689e-05 6.763104e-05 9.4285714 + 65200 0.00047037779 0 3.7164979e-05 2.9130535e-05 6.7155792e-05 9.4285714 + 65300 0.000474477 0 3.9218249e-05 4.196618e-05 6.8795241e-05 9.4285714 + 65400 0.00047558993 0 3.8521073e-05 3.1043813e-05 7.1815292e-05 9.4285714 + 65500 0.00046258212 0 4.1593649e-05 3.414273e-05 7.5432256e-05 9.4285714 + 65600 0.00044433429 0 3.5579651e-05 5.4040477e-05 7.7356068e-05 9.4285714 + 65700 0.00045238336 0 3.9273267e-05 4.3267794e-05 6.3398702e-05 9.4285714 + 65800 0.00045926142 0 3.9114883e-05 4.3180432e-05 5.1925433e-05 9.4285714 + 65900 0.00045814994 0 3.5346175e-05 4.9168887e-05 5.5917302e-05 9.4285714 + 66000 0.00045395179 0 4.1802785e-05 4.1841434e-05 5.4654623e-05 9.4285714 + 66100 0.00044097892 0 4.303704e-05 4.8028086e-05 5.8818816e-05 9.4285714 + 66200 0.00041508101 0 4.8543666e-05 3.9621607e-05 7.3522108e-05 9.4285714 + 66300 0.00041227685 0 5.2084505e-05 4.5979245e-05 6.8430336e-05 9.4285714 + 66400 0.00039539458 0 4.6843181e-05 6.5667377e-05 6.7548286e-05 9.4285714 + 66500 0.00038647539 0 4.608784e-05 4.6277662e-05 6.9495307e-05 9.4285714 + 66600 0.00037432719 0 4.3913456e-05 3.8070862e-05 6.6935341e-05 9.4285714 + 66700 0.00035679642 0 5.5360539e-05 5.3483363e-05 7.063512e-05 9.4285714 + 66800 0.00034618795 0 5.847549e-05 4.4325179e-05 7.0488097e-05 9.4285714 + 66900 0.00032906055 0 5.8213474e-05 3.75252e-05 6.6649118e-05 9.4285714 + 67000 0.00031945785 0 6.3298441e-05 5.2701267e-05 7.7167191e-05 9.4285714 + 67100 0.00031672216 0 4.489739e-05 3.7559519e-05 7.3281523e-05 9.4285714 + 67200 0.00030445379 0 4.5513665e-05 4.0230046e-05 7.5439548e-05 9.4285714 + 67300 0.00028386109 0 5.0694754e-05 5.3700723e-05 8.5557097e-05 9.4285714 + 67400 0.00028463754 0 3.8391205e-05 3.3590941e-05 7.797623e-05 9.4285714 + 67500 0.00028212316 0 4.2863805e-05 4.5202441e-05 7.749573e-05 9.4285714 + 67600 0.00027447589 0 5.543118e-05 5.8396501e-05 7.4714483e-05 9.4285714 + 67700 0.00026388856 0 5.0592736e-05 4.4055104e-05 6.9911544e-05 9.4285714 + 67800 0.00024769801 0 6.5177148e-05 4.5745739e-05 6.5602599e-05 9.4285714 + 67900 0.00024192231 0 6.9377263e-05 4.6139865e-05 5.8414044e-05 9.4285714 + 68000 0.00023732277 0 5.0197197e-05 3.9809922e-05 5.4178627e-05 9.4285714 + 68100 0.0002230537 0 5.4643625e-05 4.3410202e-05 5.8363052e-05 9.4285714 + 68200 0.00020295655 0 5.7973425e-05 4.2934462e-05 5.3811509e-05 9.4285714 + 68300 0.0002040692 0 5.3065138e-05 3.4839799e-05 4.2275493e-05 9.4285714 + 68400 0.0001928169 0 6.1792781e-05 3.7412012e-05 4.3570824e-05 9.4285714 + 68500 0.00019326451 0 5.2340518e-05 3.8984277e-05 4.7626124e-05 9.4285714 + 68600 0.00019061041 0 3.3931824e-05 3.7677933e-05 4.0928013e-05 9.4285714 + 68700 0.00017904605 0 4.0673445e-05 4.3141559e-05 3.9727826e-05 9.4285714 + 68800 0.00017200167 0 3.8350528e-05 4.2946416e-05 3.8465748e-05 9.4285714 + 68900 0.00016728354 0 3.1344975e-05 4.3170379e-05 3.887812e-05 9.4285714 + 69000 0.00015703321 0 3.5673797e-05 4.8001887e-05 3.8324617e-05 9.4285714 + 69100 0.00014835113 0 4.4420071e-05 4.5039258e-05 3.7284097e-05 9.4285714 + 69200 0.00014631648 0 4.5177892e-05 3.9830143e-05 4.212271e-05 9.4285714 + 69300 0.00014587978 0 4.3274932e-05 3.563871e-05 4.1406359e-05 9.4285714 + 69400 0.0001418924 0 4.1983462e-05 3.3903645e-05 3.9133291e-05 9.4285714 + 69500 0.00013332024 0 4.1111435e-05 3.5405818e-05 4.5389867e-05 9.4285714 + 69600 0.00013320187 0 4.3136478e-05 3.8499769e-05 4.2978866e-05 9.4285714 + 69700 0.00013039836 0 3.9889343e-05 3.984009e-05 3.8089701e-05 9.4285714 + 69800 0.00012003394 0 4.0502669e-05 3.8418635e-05 4.4259944e-05 9.4285714 + 69900 0.00011651147 0 4.3215219e-05 3.6715848e-05 3.8146062e-05 9.4285714 + 70000 0.00012197106 0 3.5974329e-05 3.7263458e-05 3.1823087e-05 9.4285714 + 70100 0.00011813389 0 3.3261682e-05 3.922066e-05 3.7223065e-05 9.4285714 + 70200 0.00011097253 0 4.3507998e-05 4.1005238e-05 3.6828442e-05 9.4285714 + 70300 0.00010887364 0 4.2691098e-05 4.1645364e-05 3.1923473e-05 9.4285714 + 70400 0.00010916786 0 3.8897532e-05 3.8882274e-05 3.0505603e-05 9.4285714 + 70500 0.00010031774 0 4.4471407e-05 3.8144163e-05 3.4373186e-05 9.4285714 + 70600 9.1002834e-05 0 4.7098547e-05 3.649462e-05 3.426412e-05 9.4285714 + 70700 8.9186179e-05 0 4.3097819e-05 3.3856047e-05 2.6847974e-05 9.4285714 + 70800 9.1206485e-05 0 3.7704331e-05 3.2681829e-05 2.5848378e-05 9.4285714 + 70900 9.2333335e-05 0 3.5465377e-05 2.9981706e-05 2.5583227e-05 9.4285714 + 71000 9.1646266e-05 0 3.5132909e-05 2.8584216e-05 1.9282618e-05 9.4285714 + 71100 8.9976882e-05 0 3.1203655e-05 2.8088468e-05 2.108987e-05 9.4285714 + 71200 8.7702811e-05 0 2.9776889e-05 2.7094367e-05 2.4903607e-05 9.4285714 + 71300 8.6905185e-05 0 3.0520731e-05 2.732226e-05 2.3630509e-05 9.4285714 + 71400 8.5684023e-05 0 3.1640955e-05 2.8295849e-05 2.5514683e-05 9.4285714 + 71500 8.303695e-05 0 3.1906051e-05 2.8942238e-05 2.6131204e-05 9.4285714 + 71600 8.0199459e-05 0 3.0761704e-05 2.9470436e-05 2.487383e-05 9.4285714 + 71700 7.8917712e-05 0 3.2914973e-05 2.7677434e-05 2.5055145e-05 9.4285714 + 71800 8.006745e-05 0 3.1497824e-05 2.5000482e-05 2.4489101e-05 9.4285714 + 71900 7.8740588e-05 0 2.6991222e-05 2.460004e-05 2.3419712e-05 9.4285714 + 72000 7.758597e-05 0 2.8819401e-05 2.2478384e-05 2.4645592e-05 9.4285714 + 72100 7.7221401e-05 0 2.5009767e-05 1.991734e-05 2.4408972e-05 9.4285714 + 72200 7.6375029e-05 0 2.2842085e-05 2.1163227e-05 2.2915187e-05 9.4285714 + 72300 7.2834947e-05 0 2.6583555e-05 2.3097898e-05 2.3018668e-05 9.4285714 + 72400 7.2648265e-05 0 2.236431e-05 2.2607332e-05 2.3603044e-05 9.4285714 + 72500 7.3708292e-05 0 2.0776311e-05 2.25305e-05 2.4103466e-05 9.4285714 + 72600 7.1153221e-05 0 2.4306783e-05 2.313245e-05 2.3536247e-05 9.4285714 + 72700 6.9093949e-05 0 2.3601182e-05 2.178735e-05 2.3525837e-05 9.4285714 + 72800 7.0003138e-05 0 2.575131e-05 2.0944617e-05 2.5430066e-05 9.4285714 + 72900 7.097186e-05 0 2.6452603e-05 2.1328369e-05 2.53877e-05 9.4285714 + 73000 6.9754446e-05 0 2.213547e-05 2.0988145e-05 2.4646738e-05 9.4285714 + 73100 6.8919462e-05 0 2.2747069e-05 2.1416306e-05 2.4400352e-05 9.4285714 + 73200 7.0813485e-05 0 2.2484425e-05 2.0251199e-05 2.3243164e-05 9.4285714 + 73300 7.2448906e-05 0 1.9804724e-05 1.9246194e-05 2.1950811e-05 9.4285714 + 73400 7.1636811e-05 0 2.1255199e-05 2.0486399e-05 2.1055118e-05 9.4285714 + 73500 7.0735739e-05 0 2.0995952e-05 2.0423027e-05 2.0958957e-05 9.4285714 + 73600 7.103569e-05 0 2.0353207e-05 1.8013285e-05 2.1741465e-05 9.4285714 + 73700 7.1516165e-05 0 2.2806996e-05 1.7981222e-05 2.0668719e-05 9.4285714 + 73800 7.0454708e-05 0 2.2580346e-05 2.035185e-05 1.8435762e-05 9.4285714 + 73900 7.0921505e-05 0 2.1137284e-05 1.954202e-05 1.8049504e-05 9.4285714 + 74000 7.3462894e-05 0 2.0796149e-05 1.672734e-05 1.7886189e-05 9.4285714 + 74100 7.3200399e-05 0 1.9484009e-05 1.6171253e-05 1.7946802e-05 9.4285714 + 74200 7.1848724e-05 0 1.9770963e-05 1.743579e-05 1.9028311e-05 9.4285714 + 74300 7.2382347e-05 0 2.0879182e-05 1.7718467e-05 2.0981856e-05 9.4285714 + 74400 7.3931763e-05 0 2.0659065e-05 1.6936936e-05 2.2013677e-05 9.4285714 + 74500 7.4402751e-05 0 2.1252227e-05 1.8306621e-05 2.2140434e-05 9.4285714 + 74600 7.3859362e-05 0 2.1524301e-05 1.984441e-05 2.2433352e-05 9.4285714 + 74700 7.5361374e-05 0 2.0479515e-05 1.8257955e-05 2.2346749e-05 9.4285714 + 74800 7.7630509e-05 0 1.9658252e-05 1.7440486e-05 2.2082059e-05 9.4285714 + 74900 7.7455142e-05 0 1.9321421e-05 1.8948852e-05 2.2192267e-05 9.4285714 + 75000 7.6480769e-05 0 1.9864233e-05 1.958709e-05 2.2733891e-05 9.4285714 + 75100 7.7275693e-05 0 2.0777179e-05 1.8582778e-05 2.3848355e-05 9.4285714 + 75200 7.8822667e-05 0 2.0204804e-05 1.83074e-05 2.4082458e-05 9.4285714 + 75300 7.923137e-05 0 2.0681311e-05 2.0382671e-05 2.5228862e-05 9.4285714 + 75400 7.9015035e-05 0 2.1545898e-05 2.0989157e-05 2.7089143e-05 9.4285714 + 75500 8.0621162e-05 0 2.0520236e-05 1.9823266e-05 2.7897725e-05 9.4285714 + 75600 8.2299447e-05 0 1.9866765e-05 2.0164834e-05 2.7806735e-05 9.4285714 + 75700 8.1993378e-05 0 1.969152e-05 2.0690749e-05 2.7317517e-05 9.4285714 + 75800 8.1758987e-05 0 2.1884472e-05 2.0805882e-05 2.7195769e-05 9.4285714 + 75900 8.3084215e-05 0 2.4065485e-05 2.0289009e-05 2.8137854e-05 9.4285714 + 76000 8.197148e-05 0 2.3344459e-05 2.1043448e-05 2.9166608e-05 9.4285714 + 76100 7.3534139e-05 0 2.3656353e-05 2.1820885e-05 3.1715958e-05 9.4285714 + 76200 6.8283079e-05 0 1.8356974e-05 2.3351418e-05 3.3215539e-05 9.4285714 + 76300 7.8227289e-05 0 1.7533203e-05 2.0633655e-05 2.9627901e-05 9.4285714 + 76400 8.2994806e-05 0 2.2219758e-05 1.9318399e-05 2.6222999e-05 9.4285714 + 76500 8.3014892e-05 0 2.0667316e-05 2.3535727e-05 2.7388901e-05 9.4285714 + 76600 8.4226362e-05 0 1.8578669e-05 1.9657192e-05 2.6838122e-05 9.4285714 + 76700 8.6131526e-05 0 2.1318346e-05 1.9704283e-05 2.730706e-05 9.4285714 + 76800 8.5731394e-05 0 2.1580982e-05 2.4368187e-05 2.8520608e-05 9.4285714 + 76900 8.5941781e-05 0 2.0964064e-05 2.1327147e-05 2.8452609e-05 9.4285714 + 77000 8.8001094e-05 0 2.1055465e-05 2.1153136e-05 2.9261736e-05 9.4285714 + 77100 8.7224729e-05 0 2.157166e-05 2.54706e-05 3.1080633e-05 9.4285714 + 77200 8.4102799e-05 0 2.3215324e-05 2.4317882e-05 3.2166454e-05 9.4285714 + 77300 8.0313409e-05 0 2.3799728e-05 2.6151429e-05 3.549803e-05 9.4285714 + 77400 7.9230413e-05 0 2.5607704e-05 2.6668597e-05 3.4909306e-05 9.4285714 + 77500 7.811033e-05 0 2.7044141e-05 2.3924967e-05 3.6517465e-05 9.4285714 + 77600 7.7683573e-05 0 2.8108404e-05 2.590653e-05 4.0314953e-05 9.4285714 + 77700 7.5680467e-05 0 2.7599437e-05 2.6044761e-05 4.0283563e-05 9.4285714 + 77800 7.3449559e-05 0 2.8230675e-05 2.6304803e-05 4.0873298e-05 9.4285714 + 77900 7.3292429e-05 0 2.9736972e-05 2.7258167e-05 4.1876044e-05 9.4285714 + 78000 7.2392133e-05 0 3.1088456e-05 2.6772279e-05 4.2237468e-05 9.4285714 + 78100 7.0315679e-05 0 3.2315727e-05 2.629787e-05 4.2149426e-05 9.4285714 + 78200 7.1047062e-05 0 3.1623093e-05 2.447182e-05 4.0466876e-05 9.4285714 + 78300 6.8370248e-05 0 3.0139466e-05 2.3241895e-05 4.2084152e-05 9.4285714 + 78400 6.5550877e-05 0 3.5775791e-05 2.5111452e-05 4.5314214e-05 9.4285714 + 78500 6.1683926e-05 0 3.8020582e-05 2.4959462e-05 4.6453459e-05 9.4285714 + 78600 6.024047e-05 0 3.2986067e-05 2.5137808e-05 4.5563449e-05 9.4285714 + 78700 5.8543178e-05 0 3.3264031e-05 2.7364741e-05 4.56211e-05 9.4285714 + 78800 5.5383435e-05 0 3.3858442e-05 2.688989e-05 4.3178362e-05 9.4285714 + 78900 5.6871546e-05 0 3.3719755e-05 2.876403e-05 4.0383023e-05 9.4285714 + 79000 5.7192958e-05 0 3.419205e-05 3.2389045e-05 3.7915888e-05 9.4285714 + 79100 4.9998926e-05 0 3.9072498e-05 3.2982953e-05 4.5441877e-05 9.4285714 + 79200 4.9597887e-05 0 3.9993615e-05 3.3651972e-05 4.2214811e-05 9.4285714 + 79300 4.8603326e-05 0 3.4873095e-05 2.8101438e-05 2.9613495e-05 9.4285714 + 79400 4.7839304e-05 0 3.7935926e-05 2.6994548e-05 3.9174337e-05 9.4285714 + 79500 4.5739018e-05 0 3.7706927e-05 2.8505307e-05 3.9904116e-05 9.4285714 + 79600 4.2632104e-05 0 3.6880213e-05 3.0862386e-05 3.7417378e-05 9.4285714 + 79700 4.2716432e-05 0 3.862769e-05 3.295245e-05 4.4025915e-05 9.4285714 + 79800 4.3345358e-05 0 3.3850977e-05 2.8351966e-05 3.6271267e-05 9.4285714 + 79900 4.2476967e-05 0 3.1294363e-05 3.0560471e-05 3.5478598e-05 9.4285714 + 80000 4.0478442e-05 0 3.266321e-05 3.0397886e-05 3.74445e-05 9.4285714 + 80100 3.7842198e-05 0 3.3319254e-05 2.6553639e-05 3.0532809e-05 9.4285714 + 80200 2.8735215e-05 0 3.5014894e-05 3.2176514e-05 3.410418e-05 9.4285714 + 80300 2.5008575e-05 0 3.4679934e-05 3.3840734e-05 3.4314525e-05 9.4285714 + 80400 2.7560228e-05 0 3.2852873e-05 2.8962633e-05 3.0394406e-05 9.4285714 + 80500 3.0888649e-05 0 3.1507484e-05 2.597095e-05 3.271808e-05 9.4285714 + 80600 3.2512804e-05 0 3.0931277e-05 2.304269e-05 3.0253759e-05 9.4285714 + 80700 3.0635649e-05 0 3.1660238e-05 2.2282821e-05 2.8199016e-05 9.4285714 + 80800 2.7803874e-05 0 3.1776181e-05 2.4038027e-05 2.845472e-05 9.4285714 + 80900 2.7488104e-05 0 3.1599213e-05 2.3316746e-05 2.5212454e-05 9.4285714 + 81000 2.5760367e-05 0 3.5293658e-05 2.354429e-05 2.7532559e-05 9.4285714 + 81100 2.0516969e-05 0 3.67195e-05 2.8706508e-05 2.9782185e-05 9.4285714 + 81200 1.7005384e-05 0 3.5049273e-05 2.3159655e-05 2.8465517e-05 9.4285714 + 81300 1.8000969e-05 0 3.3259531e-05 2.0532469e-05 3.0967269e-05 9.4285714 + 81400 1.8404948e-05 0 2.8386836e-05 2.4730451e-05 2.8965301e-05 9.4285714 + 81500 1.7001638e-05 0 2.6431741e-05 2.1156098e-05 2.5679646e-05 9.4285714 + 81600 1.718853e-05 0 2.6737455e-05 2.2477484e-05 2.9190604e-05 9.4285714 + 81700 1.7653551e-05 0 2.5412396e-05 2.4251603e-05 2.8969143e-05 9.4285714 + 81800 1.60697e-05 0 2.5869197e-05 2.308932e-05 2.7379341e-05 9.4285714 + 81900 1.5286837e-05 0 2.6529612e-05 2.5419771e-05 2.8440593e-05 9.4285714 + 82000 1.6023107e-05 0 2.5756598e-05 2.4387052e-05 2.6106537e-05 9.4285714 + 82100 1.5242285e-05 0 2.7061408e-05 2.3032818e-05 2.4388599e-05 9.4285714 + 82200 1.3697011e-05 0 2.8635719e-05 2.3780226e-05 2.4906811e-05 9.4285714 + 82300 1.3126258e-05 0 2.9891427e-05 2.2014465e-05 2.4307976e-05 9.4285714 + 82400 1.3101796e-05 0 2.974623e-05 2.1196997e-05 2.3335031e-05 9.4285714 + 82500 1.2930812e-05 0 2.776572e-05 2.1405191e-05 2.1856013e-05 9.4285714 + 82600 1.2105591e-05 0 2.677033e-05 2.1158183e-05 2.1053083e-05 9.4285714 + 82700 1.1430058e-05 0 2.6491101e-05 2.2185095e-05 2.1741395e-05 9.4285714 + 82800 1.1220674e-05 0 2.5798118e-05 2.2107127e-05 2.2026313e-05 9.4285714 + 82900 1.0833337e-05 0 2.6248963e-05 2.2128181e-05 2.2633178e-05 9.4285714 + 83000 9.6966107e-06 0 2.6264061e-05 2.2728458e-05 2.4189433e-05 9.4285714 + 83100 9.7912048e-06 0 2.5500083e-05 2.1832923e-05 2.4004267e-05 9.4285714 + 83200 1.0342776e-05 0 2.5894996e-05 2.1114752e-05 2.2781046e-05 9.4285714 + 83300 9.1053605e-06 0 2.6844449e-05 2.1683135e-05 2.3018942e-05 9.4285714 + 83400 8.1376574e-06 0 2.7698506e-05 2.1715141e-05 2.3249723e-05 9.4285714 + 83500 8.3013823e-06 0 2.7841933e-05 2.1301843e-05 2.2608819e-05 9.4285714 + 83600 7.5747246e-06 0 2.7285945e-05 2.1917666e-05 2.1940362e-05 9.4285714 + 83700 6.7051973e-06 0 2.6570578e-05 2.2457872e-05 2.1768e-05 9.4285714 + 83800 6.7732855e-06 0 2.5876203e-05 2.1870094e-05 2.1810098e-05 9.4285714 + 83900 6.455146e-06 0 2.613284e-05 2.1133229e-05 2.141307e-05 9.4285714 + 84000 6.033363e-06 0 2.5796758e-05 2.0740854e-05 2.1789962e-05 9.4285714 + 84100 6.1544361e-06 0 2.4880893e-05 2.034968e-05 2.2632001e-05 9.4285714 + 84200 5.8120515e-06 0 2.4372967e-05 2.0939262e-05 2.3739495e-05 9.4285714 + 84300 5.5925414e-06 0 2.5190413e-05 2.2054067e-05 2.5134858e-05 9.4285714 + 84400 5.9495987e-06 0 2.5163487e-05 2.2235018e-05 2.5089027e-05 9.4285714 + 84500 5.7713446e-06 0 2.5203284e-05 2.2008136e-05 2.4683255e-05 9.4285714 + 84600 5.2346414e-06 0 2.5750616e-05 2.2385286e-05 2.5060127e-05 9.4285714 + 84700 5.3677312e-06 0 2.5671418e-05 2.2504517e-05 2.477615e-05 9.4285714 + 84800 5.5545452e-06 0 2.5270776e-05 2.203669e-05 2.4371077e-05 9.4285714 + 84900 5.35857e-06 0 2.4990364e-05 2.1994432e-05 2.4434211e-05 9.4285714 + 85000 5.4081539e-06 0 2.4614554e-05 2.1826659e-05 2.4080584e-05 9.4285714 + 85100 5.6686315e-06 0 2.4255405e-05 2.1348341e-05 2.3692087e-05 9.4285714 + 85200 5.6470622e-06 0 2.4490625e-05 2.1444906e-05 2.3461274e-05 9.4285714 + 85300 5.4542991e-06 0 2.5038089e-05 2.159186e-05 2.3411228e-05 9.4285714 + 85400 5.5974388e-06 0 2.5208624e-05 2.1456353e-05 2.3090313e-05 9.4285714 + 85500 5.9109345e-06 0 2.5019187e-05 2.1326993e-05 2.2631876e-05 9.4285714 + 85600 5.8895141e-06 0 2.4816097e-05 2.1032266e-05 2.2641694e-05 9.4285714 + 85700 5.8470051e-06 0 2.4753057e-05 2.1011299e-05 2.2893303e-05 9.4285714 + 85800 6.060997e-06 0 2.4718385e-05 2.1024683e-05 2.3160395e-05 9.4285714 + 85900 6.1217894e-06 0 2.4939406e-05 2.0910983e-05 2.3606002e-05 9.4285714 + 86000 5.7550467e-06 0 2.5292227e-05 2.1210494e-05 2.3980265e-05 9.4285714 + 86100 5.6513685e-06 0 2.5336254e-05 2.1695151e-05 2.4295958e-05 9.4285714 + 86200 5.7555479e-06 0 2.5214702e-05 2.2162992e-05 2.4153262e-05 9.4285714 + 86300 5.7587322e-06 0 2.5471626e-05 2.2752108e-05 2.4566282e-05 9.4285714 + 86400 5.8389333e-06 0 2.5581374e-05 2.2866696e-05 2.5080456e-05 9.4285714 + 86500 5.9431034e-06 0 2.5603078e-05 2.2611552e-05 2.557061e-05 9.4285714 + 86600 5.9655129e-06 0 2.5809196e-05 2.2505729e-05 2.5920358e-05 9.4285714 + 86700 6.042955e-06 0 2.5516399e-05 2.207345e-05 2.4941272e-05 9.4285714 + 86800 6.2666413e-06 0 2.5017309e-05 2.1757271e-05 2.4325659e-05 9.4285714 + 86900 6.5118003e-06 0 2.4709906e-05 2.1733726e-05 2.4359289e-05 9.4285714 + 87000 6.7509257e-06 0 2.424948e-05 2.1511123e-05 2.4005052e-05 9.4285714 + 87100 6.9118143e-06 0 2.4403465e-05 2.1411555e-05 2.4138929e-05 9.4285714 + 87200 6.9983412e-06 0 2.4855429e-05 2.1301042e-05 2.4635518e-05 9.4285714 + 87300 7.2267392e-06 0 2.4726242e-05 2.1200486e-05 2.4816636e-05 9.4285714 + 87400 7.3928522e-06 0 2.4568177e-05 2.1782095e-05 2.546145e-05 9.4285714 + 87500 7.1675783e-06 0 2.4583963e-05 2.2927936e-05 2.610685e-05 9.4285714 + 87600 6.9310557e-06 0 2.4419972e-05 2.3641933e-05 2.674206e-05 9.4285714 + 87700 6.8020949e-06 0 2.4799319e-05 2.3877016e-05 2.686282e-05 9.4285714 + 87800 6.7871509e-06 0 2.5501599e-05 2.3391832e-05 2.6476337e-05 9.4285714 + 87900 7.1459737e-06 0 2.5746275e-05 2.2468174e-05 2.6106668e-05 9.4285714 + 88000 7.4791665e-06 0 2.6452673e-05 2.2371733e-05 2.6426643e-05 9.4285714 + 88100 7.4418527e-06 0 2.7237517e-05 2.2696988e-05 2.6866222e-05 9.4285714 + 88200 6.8171325e-06 0 2.835739e-05 2.2805248e-05 2.7767937e-05 9.4285714 + 88300 5.9535317e-06 0 3.0022892e-05 2.3162212e-05 2.9121854e-05 9.4285714 + 88400 5.8054385e-06 0 3.0267499e-05 2.4036541e-05 2.9451731e-05 9.4285714 + 88500 5.7381974e-06 0 2.987853e-05 2.4412659e-05 2.9022854e-05 9.4285714 + 88600 5.8193958e-06 0 2.9306631e-05 2.4291387e-05 2.9042278e-05 9.4285714 + 88700 5.7843884e-06 0 2.8474902e-05 2.407517e-05 2.9342631e-05 9.4285714 + 88800 5.36122e-06 0 2.9228687e-05 2.4074387e-05 3.0069005e-05 9.4285714 + 88900 4.9662584e-06 0 2.9640221e-05 2.4381438e-05 3.0842974e-05 9.4285714 + 89000 5.0244565e-06 0 2.9242167e-05 2.3718494e-05 3.0959647e-05 9.4285714 + 89100 5.2140172e-06 0 2.9460854e-05 2.2966219e-05 3.0745899e-05 9.4285714 + 89200 5.4241028e-06 0 2.8931798e-05 2.2787347e-05 3.0505146e-05 9.4285714 + 89300 5.354843e-06 0 2.8226483e-05 2.2430309e-05 3.0543304e-05 9.4285714 + 89400 4.9583346e-06 0 2.8529104e-05 2.2510089e-05 3.0744349e-05 9.4285714 + 89500 4.7804845e-06 0 2.8283425e-05 2.3168387e-05 3.0368794e-05 9.4285714 + 89600 4.5353969e-06 0 2.8369715e-05 2.3890917e-05 2.9944272e-05 9.4285714 + 89700 4.3528727e-06 0 2.916536e-05 2.4717547e-05 2.9897586e-05 9.4285714 + 89800 4.0677397e-06 0 2.9671051e-05 2.5069631e-05 2.9727134e-05 9.4285714 + 89900 3.4743886e-06 0 3.0546148e-05 2.5204424e-05 2.9429413e-05 9.4285714 + 90000 2.9448035e-06 0 3.1386975e-05 2.504163e-05 2.8941476e-05 9.4285714 + 90100 2.8584378e-06 0 3.0989836e-05 2.426512e-05 2.8680422e-05 9.4285714 + 90200 3.0154097e-06 0 3.0109363e-05 2.3659678e-05 2.879077e-05 9.4285714 + 90300 3.0998012e-06 0 2.9214408e-05 2.3299406e-05 2.8821376e-05 9.4285714 + 90400 3.0622205e-06 0 2.866651e-05 2.2666679e-05 2.8865145e-05 9.4285714 + 90500 2.8987354e-06 0 2.8403824e-05 2.1925714e-05 2.8481892e-05 9.4285714 + 90600 2.6710434e-06 0 2.8143313e-05 2.1522559e-05 2.8171438e-05 9.4285714 + 90700 2.4095074e-06 0 2.8048981e-05 2.1523007e-05 2.8016792e-05 9.4285714 + 90800 2.202904e-06 0 2.8166412e-05 2.1813639e-05 2.7412255e-05 9.4285714 + 90900 2.3181295e-06 0 2.8435465e-05 2.2251451e-05 2.6819024e-05 9.4285714 + 91000 2.3141951e-06 0 2.8538853e-05 2.2733208e-05 2.6507917e-05 9.4285714 + 91100 2.0683071e-06 0 2.8191515e-05 2.3157829e-05 2.609377e-05 9.4285714 + 91200 1.8857219e-06 0 2.7771042e-05 2.3580857e-05 2.55034e-05 9.4285714 + 91300 1.8327584e-06 0 2.7428616e-05 2.360497e-05 2.4609829e-05 9.4285714 + 91400 1.804747e-06 0 2.713938e-05 2.3052505e-05 2.3890628e-05 9.4285714 + 91500 1.6349771e-06 0 2.7072497e-05 2.2465059e-05 2.3592759e-05 9.4285714 + 91600 1.5216476e-06 0 2.6887207e-05 2.1845019e-05 2.327018e-05 9.4285714 + 91700 1.6141413e-06 0 2.6727574e-05 2.134873e-05 2.3175757e-05 9.4285714 + 91800 1.6435107e-06 0 2.6837186e-05 2.1372811e-05 2.3272056e-05 9.4285714 + 91900 1.5649292e-06 0 2.6814814e-05 2.149563e-05 2.3262763e-05 9.4285714 + 92000 1.5598003e-06 0 2.6894688e-05 2.1612813e-05 2.3333181e-05 9.4285714 + 92100 1.5645521e-06 0 2.7093666e-05 2.1677323e-05 2.3393885e-05 9.4285714 + 92200 1.5384794e-06 0 2.725352e-05 2.1871439e-05 2.3309607e-05 9.4285714 + 92300 1.5428705e-06 0 2.7534493e-05 2.2028165e-05 2.3281919e-05 9.4285714 + 92400 1.5481835e-06 0 2.7738128e-05 2.1877013e-05 2.3365103e-05 9.4285714 + 92500 1.5193765e-06 0 2.7807402e-05 2.1697756e-05 2.3422801e-05 9.4285714 + 92600 1.4779648e-06 0 2.7822075e-05 2.1595936e-05 2.3653604e-05 9.4285714 + 92700 1.4401385e-06 0 2.7498575e-05 2.1565328e-05 2.3855716e-05 9.4285714 + 92800 1.4263884e-06 0 2.7219859e-05 2.1753979e-05 2.3901241e-05 9.4285714 + 92900 1.4318392e-06 0 2.696367e-05 2.202186e-05 2.4060393e-05 9.4285714 + 93000 1.4336111e-06 0 2.6591513e-05 2.2195157e-05 2.4122065e-05 9.4285714 + 93100 1.4541758e-06 0 2.6692487e-05 2.2344968e-05 2.4065021e-05 9.4285714 + 93200 1.4657669e-06 0 2.7168313e-05 2.2538418e-05 2.4214674e-05 9.4285714 + 93300 1.4040886e-06 0 2.7561907e-05 2.2761637e-05 2.4475223e-05 9.4285714 + 93400 1.2988064e-06 0 2.7861831e-05 2.2852224e-05 2.4956596e-05 9.4285714 + 93500 1.2005872e-06 0 2.7794033e-05 2.2910857e-05 2.5291935e-05 9.4285714 + 93600 1.1148329e-06 0 2.7652398e-05 2.3024188e-05 2.5433821e-05 9.4285714 + 93700 1.0710007e-06 0 2.7712404e-05 2.3143904e-05 2.5669435e-05 9.4285714 + 93800 1.0923979e-06 0 2.7720612e-05 2.3112739e-05 2.5821686e-05 9.4285714 + 93900 1.1070785e-06 0 2.7887865e-05 2.3159397e-05 2.5903855e-05 9.4285714 + 94000 1.0836182e-06 0 2.8174509e-05 2.3354232e-05 2.6074704e-05 9.4285714 + 94100 1.0712532e-06 0 2.8077928e-05 2.3330714e-05 2.6150142e-05 9.4285714 + 94200 1.1089242e-06 0 2.802336e-05 2.3220275e-05 2.6308674e-05 9.4285714 + 94300 1.1709624e-06 0 2.7885676e-05 2.3027073e-05 2.647883e-05 9.4285714 + 94400 1.1698851e-06 0 2.7597204e-05 2.2765961e-05 2.6575165e-05 9.4285714 + 94500 1.1331311e-06 0 2.7664548e-05 2.2696186e-05 2.6782703e-05 9.4285714 + 94600 1.1611176e-06 0 2.7821396e-05 2.2709988e-05 2.6961488e-05 9.4285714 + 94700 1.2014763e-06 0 2.8024363e-05 2.2788622e-05 2.7146644e-05 9.4285714 + 94800 1.1833928e-06 0 2.8490371e-05 2.3037146e-05 2.7316537e-05 9.4285714 + 94900 1.1648449e-06 0 2.8748715e-05 2.3166372e-05 2.7288373e-05 9.4285714 + 95000 1.1252279e-06 0 2.8777487e-05 2.3105996e-05 2.7264426e-05 9.4285714 + 95100 1.0516851e-06 0 2.8696839e-05 2.2985372e-05 2.7310067e-05 9.4285714 + 95200 1.0245214e-06 0 2.8641497e-05 2.2873e-05 2.7310438e-05 9.4285714 + 95300 1.0235812e-06 0 2.8690066e-05 2.3000448e-05 2.7335977e-05 9.4285714 + 95400 9.6956254e-07 0 2.8724738e-05 2.3259027e-05 2.7322308e-05 9.4285714 + 95500 8.9262312e-07 0 2.8843131e-05 2.3531751e-05 2.7254991e-05 9.4285714 + 95600 8.6064987e-07 0 2.8996711e-05 2.3635882e-05 2.7093251e-05 9.4285714 + 95700 8.7096432e-07 0 2.8878604e-05 2.3473478e-05 2.6743784e-05 9.4285714 + 95800 8.5278957e-07 0 2.8703214e-05 2.3266697e-05 2.6409822e-05 9.4285714 + 95900 7.9717781e-07 0 2.8645528e-05 2.3062215e-05 2.6251555e-05 9.4285714 + 96000 7.7875968e-07 0 2.8643986e-05 2.2987641e-05 2.6323848e-05 9.4285714 + 96100 7.8525813e-07 0 2.8773044e-05 2.3055913e-05 2.6556088e-05 9.4285714 + 96200 7.7518366e-07 0 2.8878871e-05 2.3101151e-05 2.6812081e-05 9.4285714 + 96300 7.6015915e-07 0 2.8820245e-05 2.3136672e-05 2.6915584e-05 9.4285714 + 96400 7.4067407e-07 0 2.8661992e-05 2.3169734e-05 2.6801804e-05 9.4285714 + 96500 7.0061605e-07 0 2.8400346e-05 2.3121121e-05 2.6529198e-05 9.4285714 + 96600 6.6164038e-07 0 2.8306211e-05 2.3011655e-05 2.6142152e-05 9.4285714 + 96700 6.5255615e-07 0 2.8340108e-05 2.2886154e-05 2.5768282e-05 9.4285714 + 96800 6.5992528e-07 0 2.8315654e-05 2.2712955e-05 2.5506907e-05 9.4285714 + 96900 6.618124e-07 0 2.8440952e-05 2.2580367e-05 2.5361502e-05 9.4285714 + 97000 6.7139818e-07 0 2.8508432e-05 2.253211e-05 2.5304698e-05 9.4285714 + 97100 6.8703272e-07 0 2.8403291e-05 2.25734e-05 2.5272649e-05 9.4285714 + 97200 6.9368757e-07 0 2.8254045e-05 2.2793415e-05 2.5257036e-05 9.4285714 + 97300 6.9652913e-07 0 2.8016561e-05 2.3040992e-05 2.5228068e-05 9.4285714 + 97400 6.9671901e-07 0 2.7837036e-05 2.330333e-05 2.5157239e-05 9.4285714 + 97500 6.891306e-07 0 2.7789433e-05 2.3471237e-05 2.5141846e-05 9.4285714 + 97600 6.76426e-07 0 2.7838847e-05 2.3472664e-05 2.518892e-05 9.4285714 + 97700 6.5763751e-07 0 2.794167e-05 2.3370888e-05 2.5139127e-05 9.4285714 + 97800 6.4854556e-07 0 2.7951511e-05 2.3224106e-05 2.5036326e-05 9.4285714 + 97900 6.5336861e-07 0 2.7923239e-05 2.3092342e-05 2.4920514e-05 9.4285714 + 98000 6.6394525e-07 0 2.7871431e-05 2.2947013e-05 2.480383e-05 9.4285714 + 98100 6.8885885e-07 0 2.7765273e-05 2.2790639e-05 2.4801777e-05 9.4285714 + 98200 7.2201864e-07 0 2.7755504e-05 2.2661812e-05 2.4861739e-05 9.4285714 + 98300 7.3816538e-07 0 2.7765573e-05 2.258486e-05 2.4844206e-05 9.4285714 + 98400 7.3631403e-07 0 2.7757701e-05 2.2578908e-05 2.4841191e-05 9.4285714 + 98500 7.2568853e-07 0 2.7848802e-05 2.2595958e-05 2.4892777e-05 9.4285714 + 98600 7.0490905e-07 0 2.7912207e-05 2.2591875e-05 2.4898698e-05 9.4285714 + 98700 6.8484202e-07 0 2.8009272e-05 2.2597685e-05 2.4985899e-05 9.4285714 + 98800 6.6994522e-07 0 2.8202402e-05 2.2643734e-05 2.5127513e-05 9.4285714 + 98900 6.2867752e-07 0 2.8292405e-05 2.2674349e-05 2.5309578e-05 9.4285714 + 99000 5.6999626e-07 0 2.8348569e-05 2.2698075e-05 2.5569326e-05 9.4285714 + 99100 5.2675078e-07 0 2.838436e-05 2.2796837e-05 2.5828965e-05 9.4285714 + 99200 4.9993032e-07 0 2.8326221e-05 2.2925652e-05 2.6095918e-05 9.4285714 + 99300 4.8034362e-07 0 2.8358043e-05 2.3048697e-05 2.6357518e-05 9.4285714 + 99400 4.633455e-07 0 2.8395008e-05 2.3187019e-05 2.6590148e-05 9.4285714 + 99500 4.423417e-07 0 2.840813e-05 2.3327273e-05 2.679518e-05 9.4285714 + 99600 4.2336865e-07 0 2.8409328e-05 2.3446846e-05 2.6875881e-05 9.4285714 + 99700 4.0950396e-07 0 2.831088e-05 2.347619e-05 2.6867125e-05 9.4285714 + 99800 3.8946719e-07 0 2.8187415e-05 2.3361958e-05 2.6862163e-05 9.4285714 + 99900 3.5789226e-07 0 2.8087326e-05 2.3222723e-05 2.6889683e-05 9.4285714 + 100000 3.23165e-07 0 2.7995448e-05 2.3145322e-05 2.7024051e-05 9.4285714 +Loop time of 205.426 on 4 procs for 100000 steps with 2520 atoms + +Performance: 2102947.143 tau/day, 486.793 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 | 0.17838 | 1.2371 | 4.1955 | 153.6 | 0.60 +Bond | 3.018 | 52.249 | 174.87 | 982.2 | 25.43 +Neigh | 3.0057 | 3.0272 | 3.0411 | 0.8 | 1.47 +Comm | 2.8631 | 70.899 | 175.73 | 758.8 | 34.51 +Output | 0.1676 | 1.5052 | 3.0742 | 109.6 | 0.73 +Modify | 1.0679 | 5.7589 | 17.359 | 279.9 | 2.80 +Other | | 70.75 | | | 34.44 + +Nlocal: 630 ave 2513 max 0 min +Histogram: 3 0 0 0 0 0 0 0 0 1 +Nghost: 39.25 ave 150 max 0 min +Histogram: 3 0 0 0 0 0 0 0 0 1 +Neighs: 2458 ave 9821 max 0 min +Histogram: 3 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 9832 +Ave neighs/atom = 3.9015873 +Ave special neighs/atom = 36.31746 +Neighbor list builds = 5178 +Dangerous builds = 314 +Total wall time: 0:03:25 diff --git a/src/BPM/bond_bpm.cpp b/src/BPM/bond_bpm.cpp index b019815cfa..90aebccc9d 100644 --- a/src/BPM/bond_bpm.cpp +++ b/src/BPM/bond_bpm.cpp @@ -14,6 +14,7 @@ #include "bond_bpm.h" #include "atom.h" +#include "comm.h" #include "domain.h" #include "error.h" #include "fix_bond_history.h" @@ -286,6 +287,33 @@ double BondBPM::equilibrium_distance(int /*i*/) return max_stretch * r0_max_estimate / 1.5; } +/* ---------------------------------------------------------------------- + proc 0 writes to restart file + ------------------------------------------------------------------------- */ + +void BondBPM::write_restart(FILE *fp) +{ + fwrite(&max_stretch, sizeof(double), 1, fp); + fwrite(&r0_max_estimate, sizeof(double), 1, fp); + fwrite(&overlay_flag, sizeof(int), 1, fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts + ------------------------------------------------------------------------- */ + +void BondBPM::read_restart(FILE *fp) +{ + if (comm->me == 0) { + utils::sfread(FLERR, &max_stretch, sizeof(double), 1, fp, nullptr, error); + utils::sfread(FLERR, &r0_max_estimate, sizeof(double), 1, fp, nullptr, error); + utils::sfread(FLERR, &overlay_flag, sizeof(int), 1, fp, nullptr, error); + } + MPI_Bcast(&max_stretch, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&r0_max_estimate, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&overlay_flag, 1, MPI_INT, 0, world); +} + /* ---------------------------------------------------------------------- */ void BondBPM::process_broken(int i, int j) diff --git a/src/BPM/bond_bpm.h b/src/BPM/bond_bpm.h index 914e91ff82..7a32ec2d0d 100644 --- a/src/BPM/bond_bpm.h +++ b/src/BPM/bond_bpm.h @@ -29,9 +29,8 @@ class BondBPM : public Bond { void init_style() override; void settings(int, char **) override; double equilibrium_distance(int) override; - void write_restart(FILE *) override{}; - void read_restart(FILE *) override{}; - void write_data(FILE *) override{}; + void write_restart(FILE *) override; + void read_restart(FILE *) override; double single(int, double, int, int, double &) override = 0; protected: diff --git a/src/BPM/bond_bpm_rotational.cpp b/src/BPM/bond_bpm_rotational.cpp index f885dead28..fe1071e127 100644 --- a/src/BPM/bond_bpm_rotational.cpp +++ b/src/BPM/bond_bpm_rotational.cpp @@ -35,18 +35,6 @@ using namespace LAMMPS_NS; BondBPMRotational::BondBPMRotational(LAMMPS *_lmp) : BondBPM(_lmp) { - Kr = nullptr; - Ks = nullptr; - Kt = nullptr; - Kb = nullptr; - Fcr = nullptr; - Fcs = nullptr; - Tct = nullptr; - Tcb = nullptr; - gnorm = nullptr; - gslide = nullptr; - groll = nullptr; - gtwist = nullptr; partial_flag = 1; smooth_flag = 1; @@ -195,7 +183,7 @@ void BondBPMRotational::store_data() 2) P. Mora & Y. Wang Advances in Geomcomputing 2009 ---------------------------------------------------------------------- */ -double BondBPMRotational::elastic_forces(int i1, int i2, int type, double &Fr, double r_mag, +double BondBPMRotational::elastic_forces(int i1, int i2, int type, double r_mag, double r0_mag, double r_mag_inv, double * /*rhat*/, double *r, double *r0, double *force1on2, double *torque1on2, double *torque2on1) @@ -208,7 +196,7 @@ double BondBPMRotational::elastic_forces(int i1, int i2, int type, double &Fr, d double q1[4], q2[4]; double q2inv[4], mq[4], mqinv[4], qp21[4], q21[4], qtmp[4]; double rb[3], rb_x_r0[3], s[3], t[3]; - double Fs[3], Fsp[3], F_rot[3], Ftmp[3]; + double Fr, Fs[3], Fsp[3], F_rot[3], Ftmp[3]; double Ts[3], Tb[3], Tt[3], Tbp[3], Ttp[3], Tsp[3], T_rot[3], Ttmp[3]; double **quat = atom->quat; @@ -377,7 +365,7 @@ double BondBPMRotational::elastic_forces(int i1, int i2, int type, double &Fr, d Note: n points towards 1 vs pointing towards 2 ---------------------------------------------------------------------- */ -void BondBPMRotational::damping_forces(int i1, int i2, int type, double &Fr, double *rhat, +void BondBPMRotational::damping_forces(int i1, int i2, int type, double *rhat, double *r, double *force1on2, double *torque1on2, double *torque2on1) { @@ -398,7 +386,6 @@ void BondBPMRotational::damping_forces(int i1, int i2, int type, double &Fr, dou MathExtra::sub3(vn1, vn2, tmp); MathExtra::scale3(gnorm[type], tmp); - Fr = MathExtra::lensq3(tmp); MathExtra::add3(force1on2, tmp, force1on2); // Damp tangential objective velocities @@ -464,7 +451,7 @@ void BondBPMRotational::compute(int eflag, int vflag) int i1, i2, itmp, n, type; double r[3], r0[3], rhat[3]; double rsq, r0_mag, r_mag, r_mag_inv; - double Fr, breaking, smooth; + double breaking, smooth; double force1on2[3], torque1on2[3], torque2on1[3]; ev_init(eflag, vflag); @@ -520,7 +507,7 @@ void BondBPMRotational::compute(int eflag, int vflag) // Calculate forces, check if bond breaks // ------------------------------------------------------// - breaking = elastic_forces(i1, i2, type, Fr, r_mag, r0_mag, r_mag_inv, rhat, r, r0, force1on2, + breaking = elastic_forces(i1, i2, type, r_mag, r0_mag, r_mag_inv, rhat, r, r0, force1on2, torque1on2, torque2on1); if (breaking >= 1.0) { @@ -529,7 +516,7 @@ void BondBPMRotational::compute(int eflag, int vflag) continue; } - damping_forces(i1, i2, type, Fr, rhat, r, force1on2, torque1on2, torque2on1); + damping_forces(i1, i2, type, rhat, r, force1on2, torque1on2, torque2on1); if (smooth_flag) { smooth = breaking * breaking; @@ -562,7 +549,7 @@ void BondBPMRotational::compute(int eflag, int vflag) torque[i2][2] += torque1on2[2] * smooth; } - if (evflag) ev_tally(i1, i2, nlocal, newton_bond, 0.0, Fr * smooth, r[0], r[1], r[2]); + if (evflag) ev_tally_xyz(i1, i2, nlocal, newton_bond, 0.0, -force1on2[0] * smooth, -force1on2[1] * smooth, -force1on2[2] * smooth, r[0], r[1], r[2]); } } @@ -688,6 +675,9 @@ void BondBPMRotational::settings(int narg, char **arg) void BondBPMRotational::write_restart(FILE *fp) { + BondBPM::write_restart(fp); + write_restart_settings(fp); + fwrite(&Kr[1], sizeof(double), atom->nbondtypes, fp); fwrite(&Ks[1], sizeof(double), atom->nbondtypes, fp); fwrite(&Kt[1], sizeof(double), atom->nbondtypes, fp); @@ -708,6 +698,8 @@ void BondBPMRotational::write_restart(FILE *fp) void BondBPMRotational::read_restart(FILE *fp) { + BondBPM::read_restart(fp); + read_restart_settings(fp); allocate(); if (comm->me == 0) { @@ -740,6 +732,26 @@ void BondBPMRotational::read_restart(FILE *fp) for (int i = 1; i <= atom->nbondtypes; i++) setflag[i] = 1; } +/* ---------------------------------------------------------------------- + proc 0 writes to restart file + ------------------------------------------------------------------------- */ + +void BondBPMRotational::write_restart_settings(FILE *fp) +{ + fwrite(&smooth_flag, sizeof(int), 1, fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts + ------------------------------------------------------------------------- */ + +void BondBPMRotational::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) + utils::sfread(FLERR, &smooth_flag, sizeof(int), 1, fp, nullptr, error); + MPI_Bcast(&smooth_flag, 1, MPI_INT, 0, world); +} + /* ---------------------------------------------------------------------- proc 0 writes to data file ------------------------------------------------------------------------- */ @@ -785,14 +797,13 @@ double BondBPMRotational::single(int type, double rsq, int i, int j, double &ffo r_mag_inv = 1.0 / r_mag; MathExtra::scale3(r_mag_inv, r, rhat); - double breaking, smooth, Fr; double force1on2[3], torque1on2[3], torque2on1[3]; - breaking = elastic_forces(i, j, type, Fr, r_mag, r0_mag, r_mag_inv, rhat, r, r0, force1on2, + double breaking = elastic_forces(i, j, type, r_mag, r0_mag, r_mag_inv, rhat, r, r0, force1on2, torque1on2, torque2on1); - fforce = Fr; - damping_forces(i, j, type, Fr, rhat, r, force1on2, torque1on2, torque2on1); - fforce += Fr; + damping_forces(i, j, type, rhat, r, force1on2, torque1on2, torque2on1); + fforce = MathExtra::len3(force1on2); + double smooth = 1.0; if (smooth_flag) { smooth = breaking * breaking; smooth = 1.0 - smooth * smooth; @@ -806,16 +817,16 @@ double BondBPMRotational::single(int type, double rsq, int i, int j, double &ffo svector[1] = -r0[0]; svector[2] = -r0[1]; svector[3] = -r0[2]; - svector[4] = force1on2[0]; - svector[5] = force1on2[1]; - svector[6] = force1on2[2]; + svector[4] = force1on2[0] * smooth; + svector[5] = force1on2[1] * smooth; + svector[6] = force1on2[2] * smooth; } else { svector[1] = r0[0]; svector[2] = r0[1]; svector[3] = r0[2]; - svector[4] = -force1on2[0]; - svector[5] = -force1on2[1]; - svector[6] = -force1on2[2]; + svector[4] = -force1on2[0] * smooth; + svector[5] = -force1on2[1] * smooth; + svector[6] = -force1on2[2] * smooth; } diff --git a/src/BPM/bond_bpm_rotational.h b/src/BPM/bond_bpm_rotational.h index 952995e949..050b766880 100644 --- a/src/BPM/bond_bpm_rotational.h +++ b/src/BPM/bond_bpm_rotational.h @@ -34,6 +34,8 @@ class BondBPMRotational : public BondBPM { void settings(int, char **) override; void write_restart(FILE *) override; void read_restart(FILE *) override; + void write_restart_settings(FILE *) override; + void read_restart_settings(FILE *) override; void write_data(FILE *) override; double single(int, double, int, int, double &) override; @@ -44,9 +46,9 @@ class BondBPMRotational : public BondBPM { double acos_limit(double); - double elastic_forces(int, int, int, double &, double, double, double, double *, double *, + double elastic_forces(int, int, int, double, double, double, double *, double *, double *, double *, double *, double *); - void damping_forces(int, int, int, double &, double *, double *, double *, double *, double *); + void damping_forces(int, int, int, double *, double *, double *, double *, double *); void allocate(); void store_data(); diff --git a/src/BPM/bond_bpm_spring.cpp b/src/BPM/bond_bpm_spring.cpp index 855080d28e..8172a596cf 100644 --- a/src/BPM/bond_bpm_spring.cpp +++ b/src/BPM/bond_bpm_spring.cpp @@ -311,6 +311,8 @@ void BondBPMSpring::settings(int narg, char **arg) void BondBPMSpring::write_restart(FILE *fp) { + write_restart_settings(fp); + fwrite(&k[1], sizeof(double), atom->nbondtypes, fp); fwrite(&ecrit[1], sizeof(double), atom->nbondtypes, fp); fwrite(&gamma[1], sizeof(double), atom->nbondtypes, fp); @@ -322,6 +324,7 @@ void BondBPMSpring::write_restart(FILE *fp) void BondBPMSpring::read_restart(FILE *fp) { + read_restart_settings(fp); allocate(); if (comm->me == 0) { @@ -336,6 +339,28 @@ void BondBPMSpring::read_restart(FILE *fp) for (int i = 1; i <= atom->nbondtypes; i++) setflag[i] = 1; } +/* ---------------------------------------------------------------------- + proc 0 writes to restart file + ------------------------------------------------------------------------- */ + +void BondBPMSpring::write_restart_settings(FILE *fp) +{ + BondBPM::write_restart_settings(fp); + fwrite(&smooth_flag, sizeof(int), 1, fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts + ------------------------------------------------------------------------- */ + +void BondBPMSpring::read_restart_settings(FILE *fp) +{ + BondBPM::read_restart_settings(fp); + if (comm->me == 0) + utils::sfread(FLERR, &smooth_flag, sizeof(int), 1, fp, nullptr, error); + MPI_Bcast(&smooth_flag, 1, MPI_INT, 0, world); +} + /* ---------------------------------------------------------------------- proc 0 writes to data file ------------------------------------------------------------------------- */ diff --git a/src/BPM/bond_bpm_spring.h b/src/BPM/bond_bpm_spring.h index 1528dbcd07..9be014e8dc 100644 --- a/src/BPM/bond_bpm_spring.h +++ b/src/BPM/bond_bpm_spring.h @@ -34,6 +34,8 @@ class BondBPMSpring : public BondBPM { void settings(int, char **) override; void write_restart(FILE *) override; void read_restart(FILE *) override; + void write_restart_settings(FILE *) override; + void read_restart_settings(FILE *) override; void write_data(FILE *) override; double single(int, double, int, int, double &) override; diff --git a/src/bond.cpp b/src/bond.cpp index 363385ff48..1a184e1ed1 100644 --- a/src/bond.cpp +++ b/src/bond.cpp @@ -250,6 +250,91 @@ void Bond::ev_tally(int i, int j, int nlocal, int newton_bond, double ebond, dou } } +/* ---------------------------------------------------------------------- + tally energy and virial into global or per-atom accumulators + for virial, have delx,dely,delz and fx,fy,fz +------------------------------------------------------------------------- */ + +void Bond::ev_tally_xyz(int i, int j, int nlocal, int newton_bond, + double ebond, double fx, double fy, double fz, + double delx, double dely, double delz) +{ + double ebondhalf,v[6]; + + if (eflag_either) { + if (eflag_global) { + if (newton_bond) { + energy += ebond; + } else { + ebondhalf = 0.5 * ebond; + if (i < nlocal) energy += ebondhalf; + if (j < nlocal) energy += ebondhalf; + } + } + if (eflag_atom) { + ebondhalf = 0.5 * ebond; + if (newton_bond || i < nlocal) eatom[i] += ebondhalf; + if (newton_bond || j < nlocal) eatom[j] += ebondhalf; + } + } + + if (vflag_either) { + v[0] = delx * fx; + v[1] = dely * fy; + v[2] = delz * fz; + v[3] = delx * fy; + v[4] = delx * fz; + v[5] = dely * fz; + + if (vflag_global) { + if (newton_bond) { + virial[0] += v[0]; + virial[1] += v[1]; + virial[2] += v[2]; + virial[3] += v[3]; + virial[4] += v[4]; + virial[5] += v[5]; + } else { + if (i < nlocal) { + virial[0] += 0.5 * v[0]; + virial[1] += 0.5 * v[1]; + virial[2] += 0.5 * v[2]; + virial[3] += 0.5 * v[3]; + virial[4] += 0.5 * v[4]; + virial[5] += 0.5 * v[5]; + } + if (j < nlocal) { + virial[0] += 0.5 * v[0]; + virial[1] += 0.5 * v[1]; + virial[2] += 0.5 * v[2]; + virial[3] += 0.5 * v[3]; + virial[4] += 0.5 * v[4]; + virial[5] += 0.5 * v[5]; + } + } + } + + if (vflag_atom) { + if (newton_bond || i < nlocal) { + vatom[i][0] += 0.5 * v[0]; + vatom[i][1] += 0.5 * v[1]; + vatom[i][2] += 0.5 * v[2]; + vatom[i][3] += 0.5 * v[3]; + vatom[i][4] += 0.5 * v[4]; + vatom[i][5] += 0.5 * v[5]; + } + if (newton_bond || j < nlocal) { + vatom[j][0] += 0.5 * v[0]; + vatom[j][1] += 0.5 * v[1]; + vatom[j][2] += 0.5 * v[2]; + vatom[j][3] += 0.5 * v[3]; + vatom[j][4] += 0.5 * v[4]; + vatom[j][5] += 0.5 * v[5]; + } + } + } +} + /* ---------------------------------------------------------------------- write a table of bond potential energy/force vs distance to a file ------------------------------------------------------------------------- */ diff --git a/src/bond.h b/src/bond.h index dc64e40ae8..3bae8f48b9 100644 --- a/src/bond.h +++ b/src/bond.h @@ -102,6 +102,7 @@ class Bond : protected Pointers { } void ev_setup(int, int, int alloc = 1); void ev_tally(int, int, int, int, double, double, double, double, double); + void ev_tally_xyz(int, int, int, int, double, double, double, double, double, double, double); }; } // namespace LAMMPS_NS diff --git a/src/fix_update_special_bonds.cpp b/src/fix_update_special_bonds.cpp index f2715beebc..719eafceb8 100644 --- a/src/fix_update_special_bonds.cpp +++ b/src/fix_update_special_bonds.cpp @@ -17,6 +17,7 @@ #include "atom_vec.h" #include "error.h" #include "force.h" +#include "modify.h" #include "neigh_list.h" #include "neighbor.h" #include "pair.h" @@ -50,6 +51,11 @@ int FixUpdateSpecialBonds::setmask() void FixUpdateSpecialBonds::setup(int /*vflag*/) { + // error if more than one fix update/special/bonds + + if (modify->get_fix_by_style("UPDATE_SPECIAL_BONDS").size() > 1) + error->all(FLERR,"More than one fix update/special/bonds"); + // Require atoms know about all of their bonds and if they break if (force->newton_bond) error->all(FLERR, "Fix update/special/bonds requires Newton bond off"); From edfac129a1313096d4b0d5bb6628df49f9f03faf Mon Sep 17 00:00:00 2001 From: jtclemm Date: Sat, 3 Sep 2022 15:33:29 -0600 Subject: [PATCH 08/35] Fixing estimated r0 on restart, other small edits --- src/BPM/bond_bpm.cpp | 58 ++++++++++++++++++++------------- src/BPM/bond_bpm_rotational.cpp | 3 +- src/BPM/bond_bpm_spring.cpp | 4 +-- src/dump_local.cpp | 13 -------- 4 files changed, 39 insertions(+), 39 deletions(-) diff --git a/src/BPM/bond_bpm.cpp b/src/BPM/bond_bpm.cpp index 124e7cac16..55c3a11028 100644 --- a/src/BPM/bond_bpm.cpp +++ b/src/BPM/bond_bpm.cpp @@ -257,24 +257,43 @@ double BondBPM::equilibrium_distance(int /*i*/) { // Ghost atoms may not yet be communicated, this may only be an estimate if (r0_max_estimate == 0) { - int type, j; - double delx, dely, delz, r; - double **x = atom->x; - for (int i = 0; i < atom->nlocal; i++) { - for (int m = 0; m < atom->num_bond[i]; m++) { - type = atom->bond_type[i][m]; - if (type == 0) continue; + if (!fix_bond_history->restart_reset) { + int type, j; + double delx, dely, delz, r; + double **x = atom->x; + for (int i = 0; i < atom->nlocal; i++) { + for (int m = 0; m < atom->num_bond[i]; m++) { + type = atom->bond_type[i][m]; + if (type == 0) continue; - j = atom->map(atom->bond_atom[i][m]); - if (j == -1) continue; + j = atom->map(atom->bond_atom[i][m]); + if (j == -1) continue; - delx = x[i][0] - x[j][0]; - dely = x[i][1] - x[j][1]; - delz = x[i][2] - x[j][2]; - domain->minimum_image(delx, dely, delz); + delx = x[i][0] - x[j][0]; + dely = x[i][1] - x[j][1]; + delz = x[i][2] - x[j][2]; + domain->minimum_image(delx, dely, delz); - r = sqrt(delx * delx + dely * dely + delz * delz); - if (r > r0_max_estimate) r0_max_estimate = r; + r = sqrt(delx * delx + dely * dely + delz * delz); + if (r > r0_max_estimate) r0_max_estimate = r; + } + } + } else { + int type, j; + double delx, dely, delz, r; + double **x = atom->x; + for (int i = 0; i < atom->nlocal; i++) { + for (int m = 0; m < atom->num_bond[i]; m++) { + type = atom->bond_type[i][m]; + if (type == 0) continue; + + j = atom->map(atom->bond_atom[i][m]); + if (j == -1) continue; + + // First value must always be reference length + r = fix_bond_history->get_atom_value(i, m, 0); + if (r > r0_max_estimate) r0_max_estimate = r; + } } } @@ -293,8 +312,6 @@ double BondBPM::equilibrium_distance(int /*i*/) void BondBPM::write_restart(FILE *fp) { - fwrite(&max_stretch, sizeof(double), 1, fp); - fwrite(&r0_max_estimate, sizeof(double), 1, fp); fwrite(&overlay_flag, sizeof(int), 1, fp); } @@ -304,13 +321,8 @@ void BondBPM::write_restart(FILE *fp) void BondBPM::read_restart(FILE *fp) { - if (comm->me == 0) { - utils::sfread(FLERR, &max_stretch, sizeof(double), 1, fp, nullptr, error); - utils::sfread(FLERR, &r0_max_estimate, sizeof(double), 1, fp, nullptr, error); + if (comm->me == 0) utils::sfread(FLERR, &overlay_flag, sizeof(int), 1, fp, nullptr, error); - } - MPI_Bcast(&max_stretch, 1, MPI_DOUBLE, 0, world); - MPI_Bcast(&r0_max_estimate, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&overlay_flag, 1, MPI_INT, 0, world); } diff --git a/src/BPM/bond_bpm_rotational.cpp b/src/BPM/bond_bpm_rotational.cpp index fe1071e127..986adce4cb 100644 --- a/src/BPM/bond_bpm_rotational.cpp +++ b/src/BPM/bond_bpm_rotational.cpp @@ -801,7 +801,8 @@ double BondBPMRotational::single(int type, double rsq, int i, int j, double &ffo double breaking = elastic_forces(i, j, type, r_mag, r0_mag, r_mag_inv, rhat, r, r0, force1on2, torque1on2, torque2on1); damping_forces(i, j, type, rhat, r, force1on2, torque1on2, torque2on1); - fforce = MathExtra::len3(force1on2); + fforce = MathExtra::dot3(force1on2, r); + fforce *= -1; double smooth = 1.0; if (smooth_flag) { diff --git a/src/BPM/bond_bpm_spring.cpp b/src/BPM/bond_bpm_spring.cpp index 8172a596cf..cb49639010 100644 --- a/src/BPM/bond_bpm_spring.cpp +++ b/src/BPM/bond_bpm_spring.cpp @@ -311,6 +311,7 @@ void BondBPMSpring::settings(int narg, char **arg) void BondBPMSpring::write_restart(FILE *fp) { + BondBPM::write_restart(fp); write_restart_settings(fp); fwrite(&k[1], sizeof(double), atom->nbondtypes, fp); @@ -324,6 +325,7 @@ void BondBPMSpring::write_restart(FILE *fp) void BondBPMSpring::read_restart(FILE *fp) { + BondBPM::read_restart(fp); read_restart_settings(fp); allocate(); @@ -345,7 +347,6 @@ void BondBPMSpring::read_restart(FILE *fp) void BondBPMSpring::write_restart_settings(FILE *fp) { - BondBPM::write_restart_settings(fp); fwrite(&smooth_flag, sizeof(int), 1, fp); } @@ -355,7 +356,6 @@ void BondBPMSpring::write_restart_settings(FILE *fp) void BondBPMSpring::read_restart_settings(FILE *fp) { - BondBPM::read_restart_settings(fp); if (comm->me == 0) utils::sfread(FLERR, &smooth_flag, sizeof(int), 1, fp, nullptr, error); MPI_Bcast(&smooth_flag, 1, MPI_INT, 0, world); diff --git a/src/dump_local.cpp b/src/dump_local.cpp index 63a1822c20..bf26890b05 100644 --- a/src/dump_local.cpp +++ b/src/dump_local.cpp @@ -172,19 +172,6 @@ void DumpLocal::init_style() if (sort_flag && sortcol == 0) error->all(FLERR,"Dump local cannot sort by atom ID"); - // assemble ITEMS: column string from defaults and user values - - delete[] columns; - std::string combined; - int icol = 0; - for (auto item : utils::split_words(columns_default)) { - if (combined.size()) combined += " "; - if (keyword_user[icol].size()) combined += keyword_user[icol]; - else combined += item; - ++icol; - } - columns = utils::strdup(combined); - // format = copy of default or user-specified line format delete[] format; From 71970858cf3e5b5a386b68546bd775f40448ade8 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Sat, 3 Sep 2022 16:44:21 -0600 Subject: [PATCH 09/35] Updating error messages, small changes to doc --- src/BPM/bond_bpm_rotational.cpp | 4 ++-- src/BPM/bond_bpm_spring.cpp | 4 ++-- src/BPM/compute_nbond_atom.cpp | 2 +- src/compute_bond_local.cpp | 2 +- src/fix_update_special_bonds.cpp | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/BPM/bond_bpm_rotational.cpp b/src/BPM/bond_bpm_rotational.cpp index 986adce4cb..49b66a77a7 100644 --- a/src/BPM/bond_bpm_rotational.cpp +++ b/src/BPM/bond_bpm_rotational.cpp @@ -660,11 +660,11 @@ void BondBPMRotational::settings(int narg, char **arg) for (std::size_t i = 0; i < leftover_iarg.size(); i++) { iarg = leftover_iarg[i]; if (strcmp(arg[iarg], "smooth") == 0) { - if (iarg + 1 > narg) error->all(FLERR, "Illegal bond bpm command"); + if (iarg + 1 > narg) error->all(FLERR, "Illegal bond bpm command, missing option for smooth"); smooth_flag = utils::logical(FLERR, arg[iarg + 1], false, lmp); i += 1; } else { - error->all(FLERR, "Illegal bond_style command"); + error->all(FLERR, "Illegal bond bpm command, invalid argument {}", arg[iarg]); } } } diff --git a/src/BPM/bond_bpm_spring.cpp b/src/BPM/bond_bpm_spring.cpp index cb49639010..a4c824db29 100644 --- a/src/BPM/bond_bpm_spring.cpp +++ b/src/BPM/bond_bpm_spring.cpp @@ -296,11 +296,11 @@ void BondBPMSpring::settings(int narg, char **arg) for (std::size_t i = 0; i < leftover_iarg.size(); i++) { iarg = leftover_iarg[i]; if (strcmp(arg[iarg], "smooth") == 0) { - if (iarg + 1 > narg) error->all(FLERR, "Illegal bond bpm command"); + if (iarg + 1 > narg) error->all(FLERR, "Illegal bond bpm command, missing option for smooth"); smooth_flag = utils::logical(FLERR, arg[iarg + 1], false, lmp); i += 1; } else { - error->all(FLERR, "Illegal bond_style command"); + error->all(FLERR, "Illegal bond bpm command, invalid argument {}", arg[iarg]); } } } diff --git a/src/BPM/compute_nbond_atom.cpp b/src/BPM/compute_nbond_atom.cpp index 9947c9b09e..5cec50b587 100644 --- a/src/BPM/compute_nbond_atom.cpp +++ b/src/BPM/compute_nbond_atom.cpp @@ -38,7 +38,7 @@ ComputeNBondAtom::ComputeNBondAtom(LAMMPS *_lmp, int narg, char **arg) : if (narg == 4) { if (utils::strmatch(arg[3], "forward")) comm_forward = 1; - else error->all(FLERR, "Illegal compute nbond/atom command"); + else error->all(FLERR, "Illegal compute nbond/atom argument {}", arg[3]); } nmax = 0; diff --git a/src/compute_bond_local.cpp b/src/compute_bond_local.cpp index 3eceb9af91..19561cc6bf 100644 --- a/src/compute_bond_local.cpp +++ b/src/compute_bond_local.cpp @@ -83,7 +83,7 @@ ComputeBondLocal::ComputeBondLocal(LAMMPS *lmp, int narg, char **arg) : nvar++; } else if (arg[iarg][0] == 'b') { int n = atoi(&arg[iarg][1]); - if (n <= 0) error->all(FLERR, "Invalid keyword in compute bond/local command"); + if (n <= 0) error->all(FLERR, "Invalid keyword {} in compute bond/local command", arg[iarg]); bstyle[nvalues] = BN; bindex[nvalues++] = n - 1; } else break; diff --git a/src/fix_update_special_bonds.cpp b/src/fix_update_special_bonds.cpp index 719eafceb8..2eb24ff726 100644 --- a/src/fix_update_special_bonds.cpp +++ b/src/fix_update_special_bonds.cpp @@ -246,4 +246,4 @@ void FixUpdateSpecialBonds::add_created_bond(int i, int j) auto tag_pair = std::make_pair(atom->tag[i], atom->tag[j]); new_created_pairs.push_back(tag_pair); created_pairs.push_back(tag_pair); -} \ No newline at end of file +} From 8b3c1a20a8f7f65ccbe462ca9f4a28592c9675f8 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Tue, 6 Sep 2022 10:13:59 -0600 Subject: [PATCH 10/35] Removing unneeded feature --- doc/src/Howto_bpm.rst | 13 +++++++----- doc/src/bond_bpm_rotational.rst | 13 ++++++------ doc/src/bond_bpm_spring.rst | 2 +- doc/src/pair_bpm_spring.rst | 2 +- src/BPM/compute_nbond_atom.cpp | 36 +-------------------------------- src/BPM/compute_nbond_atom.h | 2 -- 6 files changed, 18 insertions(+), 50 deletions(-) diff --git a/doc/src/Howto_bpm.rst b/doc/src/Howto_bpm.rst index 7147401182..9dc043a7e1 100644 --- a/doc/src/Howto_bpm.rst +++ b/doc/src/Howto_bpm.rst @@ -65,9 +65,9 @@ Various properties of bonds can be computed using the :doc:`compute property/bond ` command. This command allows one to access data saved to the bond's history such as the reference length of the bond. More information on -historical data can be found on the documentation pages for the specific -BPM bond styles. Finally, this data can be output using `dump local `. -As one may output many columns from the same compute, the +bond history data can be found on the documentation pages for the specific +BPM bond styles. Finally, this data can be output using a :doc:`dump local ` +command. As one may output many columns from the same compute, the :doc:`dump modify ` *colname* option may be used to provide more helpful column names. An example of this procedure is found in /examples/bpm/pour/. External software, such as OVITO, can read these dump @@ -80,13 +80,16 @@ As bonds can be broken between neighbor list builds, the bond styles. There are two possible settings which determine how pair interactions work between bonded particles. First, one can overlay pair forces with bond forces such that all bonded particles also -feel pair interactions. This can be accomplished by using the *overlay/pair* keyword present in all bpm bond styles and by using the following special bond settings +feel pair interactions. This can be accomplished by using the *overlay/pair* +keyword present in all bpm bond styles and by using the following special +bond settings .. code-block:: LAMMPS special_bonds lj/coul 1 1 1 -Alternatively, one can turn off all pair interactions between bonded particles. Unlike :doc:`bond quartic `, this is not done +Alternatively, one can turn off all pair interactions between bonded +particles. Unlike :doc:`bond quartic `, this is not done by subtracting pair forces during the bond computation but rather by dynamically updating the special bond list. This is the default behavior of BPM bond styles and is done by updating the 1-2 special bond list as diff --git a/doc/src/bond_bpm_rotational.rst b/doc/src/bond_bpm_rotational.rst index b25d5d9af2..e665de466f 100644 --- a/doc/src/bond_bpm_rotational.rst +++ b/doc/src/bond_bpm_rotational.rst @@ -179,7 +179,7 @@ This bond style writes the reference state of each bond to :doc:`binary restart files `. Loading a restart file will properly resume bonds. However, the reference state is NOT written to data files. Therefore reading a data file will not -restore bonds which will recalculate their reference state. +restore bonds and will cause their reference states to be redefined. The single() function of these pair styles returns 0.0 for the energy of a pairwise interaction, since energy is not conserved in these @@ -207,11 +207,12 @@ of a bonded interaction, since energy is not conserved in these dissipative potentials. It also returns only the normal component of the bonded interaction force. However, the single() function also calculates 7 extra bond quantities. The first 4 are data from the -reference state of the bond including the magnitude :math:`r_0` -followed by the :math:`x`, :math:`y`, and :math:`z` components of the -initial unit vector pointing to particle I from particle J. The next 3 -(5-7) are the components of the total force, including normal and -tangential contributions, acting on particle I. +reference state of the bond including the initial distance between particles +:math:`r_0` followed by the :math:`x`, :math:`y`, and :math:`z` components +of the initial unit vector pointing to particle I from particle J. The next 3 +quantities (5-7) are the :math:`x`, :math:`y`, and :math:`z` components +of the total force, including normal and tangential contributions, acting +on particle I. These extra quantities can be accessed by the :doc:`compute bond/local ` command, as *b1*, *b2*, ..., *b7*\ . diff --git a/doc/src/bond_bpm_spring.rst b/doc/src/bond_bpm_spring.rst index 8297e5b147..7f781e4657 100644 --- a/doc/src/bond_bpm_spring.rst +++ b/doc/src/bond_bpm_spring.rst @@ -143,7 +143,7 @@ This bond style writes the reference state of each bond to :doc:`binary restart files `. Loading a restart file will properly restore bonds. However, the reference state is NOT written to data files. Therefore reading a data file will not -restore bonds which will recalculate their reference state. +restore bonds and will cause their reference states to be redefined. The single() function of these pair styles returns 0.0 for the energy of a pairwise interaction, since energy is not conserved in these diff --git a/doc/src/pair_bpm_spring.rst b/doc/src/pair_bpm_spring.rst index 8235b1c624..a9a4bbee70 100644 --- a/doc/src/pair_bpm_spring.rst +++ b/doc/src/pair_bpm_spring.rst @@ -59,7 +59,7 @@ include this pair interaction and overlay the pair force over the bond force or to exclude this pair interaction such that the two particles only interact via the bond force. See discussion of the *overlay/pair* option for BPM bond styles and the :doc:`special_bonds ` -command in the `:doc: how to ` page on BPMs for more details. +command in the :doc:`how to ` page on BPMs for more details. The following coefficients must be defined for each pair of atom types via the :doc:`pair_coeff ` command as in the examples diff --git a/src/BPM/compute_nbond_atom.cpp b/src/BPM/compute_nbond_atom.cpp index 5cec50b587..b0fbacf038 100644 --- a/src/BPM/compute_nbond_atom.cpp +++ b/src/BPM/compute_nbond_atom.cpp @@ -29,17 +29,11 @@ using namespace LAMMPS_NS; ComputeNBondAtom::ComputeNBondAtom(LAMMPS *_lmp, int narg, char **arg) : Compute(_lmp, narg, arg), nbond(nullptr) { - if ((narg < 3) || (narg > 4)) error->all(FLERR, "Illegal compute nbond/atom command"); + if (narg < 3) error->all(FLERR, "Illegal compute nbond/atom command"); peratom_flag = 1; size_peratom_cols = 0; comm_reverse = 1; - comm_forward = 0; - - if (narg == 4) { - if (utils::strmatch(arg[3], "forward")) comm_forward = 1; - else error->all(FLERR, "Illegal compute nbond/atom argument {}", arg[3]); - } nmax = 0; } @@ -106,9 +100,6 @@ void ComputeNBondAtom::compute_peratom() for (i = 0; i < nlocal; i++) if (!(mask[i] & groupbit)) nbond[i] = 0.0; - - // forward to ghosts if requested - if (comm_forward != 0) comm->forward_comm(this); } /* ---------------------------------------------------------------------- */ @@ -135,31 +126,6 @@ void ComputeNBondAtom::unpack_reverse_comm(int n, int *list, double *buf) nbond[j] += buf[m++]; } } -/* ---------------------------------------------------------------------- */ - -int ComputeNBondAtom::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int * /*pbc*/) -{ - int i,j,m; - - m = 0; - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = nbond[j]; - } - return m; -} - -/* ---------------------------------------------------------------------- */ - -void ComputeNBondAtom::unpack_forward_comm(int n, int first, double *buf) -{ - int i,m,last; - - m = 0; - last = first + n; - for (i = first; i < last; i++) nbond[i] = buf[m++]; -} /* ---------------------------------------------------------------------- memory usage of local atom-based array diff --git a/src/BPM/compute_nbond_atom.h b/src/BPM/compute_nbond_atom.h index fe793cc05f..32d4ca2462 100644 --- a/src/BPM/compute_nbond_atom.h +++ b/src/BPM/compute_nbond_atom.h @@ -32,8 +32,6 @@ class ComputeNBondAtom : public Compute { void compute_peratom() override; int pack_reverse_comm(int, int, double *) override; void unpack_reverse_comm(int, int *, double *) override; - int pack_forward_comm(int, int *, double *, int, int *) override; - void unpack_forward_comm(int, int, double *) override; double memory_usage() override; private: From f764260c530ff4bebff74c7dde436275d2ce0832 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Thu, 15 Sep 2022 15:47:31 -0600 Subject: [PATCH 11/35] Removing BPM bond coefficients from data files --- doc/src/bond_bpm_rotational.rst | 3 --- doc/src/bond_bpm_spring.rst | 3 --- src/BPM/bond_bpm.cpp | 1 - src/BPM/bond_bpm_rotational.cpp | 11 ----------- src/BPM/bond_bpm_rotational.h | 1 - src/BPM/bond_bpm_spring.cpp | 10 ---------- src/BPM/bond_bpm_spring.h | 1 - 7 files changed, 30 deletions(-) diff --git a/doc/src/bond_bpm_rotational.rst b/doc/src/bond_bpm_rotational.rst index e665de466f..d8fbd27c95 100644 --- a/doc/src/bond_bpm_rotational.rst +++ b/doc/src/bond_bpm_rotational.rst @@ -186,9 +186,6 @@ of a pairwise interaction, since energy is not conserved in these dissipative potentials. It also returns only the normal component of the pairwise interaction force. -The accumulated data is not written to restart files and should be -output before a restart file is written to avoid missing data. - The internal fix calculates a local vector or local array depending on the number of input values. The length of the vector or number of rows in the array is the number of recorded, lost interactions. If a single diff --git a/doc/src/bond_bpm_spring.rst b/doc/src/bond_bpm_spring.rst index 7f781e4657..6a05e7d3c1 100644 --- a/doc/src/bond_bpm_spring.rst +++ b/doc/src/bond_bpm_spring.rst @@ -149,9 +149,6 @@ The single() function of these pair styles returns 0.0 for the energy of a pairwise interaction, since energy is not conserved in these dissipative potentials. -The accumulated data is not written to restart files and should be -output before a restart file is written to avoid missing data. - The internal fix calculates a local vector or local array depending on the number of input values. The length of the vector or number of rows in the array is the number of recorded, lost interactions. If a single diff --git a/src/BPM/bond_bpm.cpp b/src/BPM/bond_bpm.cpp index dd7d14b3f3..c35e5d4b9b 100644 --- a/src/BPM/bond_bpm.cpp +++ b/src/BPM/bond_bpm.cpp @@ -36,7 +36,6 @@ BondBPM::BondBPM(LAMMPS *_lmp) : id_fix_bond_history(nullptr), id_fix_store_local(nullptr), id_fix_prop_atom(nullptr), fix_store_local(nullptr), fix_bond_history(nullptr), fix_update_special_bonds(nullptr), pack_choice(nullptr), output_data(nullptr) - { overlay_flag = 0; prop_atom_flag = 0; diff --git a/src/BPM/bond_bpm_rotational.cpp b/src/BPM/bond_bpm_rotational.cpp index 49b66a77a7..6aa851331c 100644 --- a/src/BPM/bond_bpm_rotational.cpp +++ b/src/BPM/bond_bpm_rotational.cpp @@ -752,17 +752,6 @@ void BondBPMRotational::read_restart_settings(FILE *fp) MPI_Bcast(&smooth_flag, 1, MPI_INT, 0, world); } -/* ---------------------------------------------------------------------- - proc 0 writes to data file -------------------------------------------------------------------------- */ - -void BondBPMRotational::write_data(FILE *fp) -{ - for (int i = 1; i <= atom->nbondtypes; i++) - fprintf(fp, "%d %g %g %g %g %g %g %g %g %g %g %g %g\n", i, Kr[i], Ks[i], Kt[i], Kb[i], Fcr[i], - Fcs[i], Tct[i], Tcb[i], gnorm[i], gslide[i], groll[i], gtwist[i]); -} - /* ---------------------------------------------------------------------- */ double BondBPMRotational::single(int type, double rsq, int i, int j, double &fforce) diff --git a/src/BPM/bond_bpm_rotational.h b/src/BPM/bond_bpm_rotational.h index 050b766880..e52b1a9182 100644 --- a/src/BPM/bond_bpm_rotational.h +++ b/src/BPM/bond_bpm_rotational.h @@ -36,7 +36,6 @@ class BondBPMRotational : public BondBPM { void read_restart(FILE *) override; void write_restart_settings(FILE *) override; void read_restart_settings(FILE *) override; - void write_data(FILE *) override; double single(int, double, int, int, double &) override; protected: diff --git a/src/BPM/bond_bpm_spring.cpp b/src/BPM/bond_bpm_spring.cpp index a4c824db29..e87419e178 100644 --- a/src/BPM/bond_bpm_spring.cpp +++ b/src/BPM/bond_bpm_spring.cpp @@ -361,16 +361,6 @@ void BondBPMSpring::read_restart_settings(FILE *fp) MPI_Bcast(&smooth_flag, 1, MPI_INT, 0, world); } -/* ---------------------------------------------------------------------- - proc 0 writes to data file -------------------------------------------------------------------------- */ - -void BondBPMSpring::write_data(FILE *fp) -{ - for (int i = 1; i <= atom->nbondtypes; i++) - fprintf(fp, "%d %g %g %g\n", i, k[i], ecrit[i], gamma[i]); -} - /* ---------------------------------------------------------------------- */ double BondBPMSpring::single(int type, double rsq, int i, int j, double &fforce) diff --git a/src/BPM/bond_bpm_spring.h b/src/BPM/bond_bpm_spring.h index 9be014e8dc..4bea7266a5 100644 --- a/src/BPM/bond_bpm_spring.h +++ b/src/BPM/bond_bpm_spring.h @@ -36,7 +36,6 @@ class BondBPMSpring : public BondBPM { void read_restart(FILE *) override; void write_restart_settings(FILE *) override; void read_restart_settings(FILE *) override; - void write_data(FILE *) override; double single(int, double, int, int, double &) override; protected: From 85bbc4ae47ee7742db07d399997e9868023fb161 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Thu, 15 Sep 2022 16:08:33 -0600 Subject: [PATCH 12/35] Clarifying documentation on use of store/local BPM option --- doc/src/bond_bpm_rotational.rst | 36 ++++++++++++++------------------- doc/src/bond_bpm_spring.rst | 35 ++++++++++++++------------------ 2 files changed, 30 insertions(+), 41 deletions(-) diff --git a/doc/src/bond_bpm_rotational.rst b/doc/src/bond_bpm_rotational.rst index d8fbd27c95..5c43071274 100644 --- a/doc/src/bond_bpm_rotational.rst +++ b/doc/src/bond_bpm_rotational.rst @@ -138,15 +138,14 @@ the *overlay/pair* keyword. These settings require specific restrictions. Further details can be found in the `:doc: how to ` page on BPMs. -If the *store/local* keyword is used, this fix will track bonds that +If the *store/local* keyword is used, an internal fix will track bonds that break during the simulation. Whenever a bond breaks, data is processed and transferred to an internal fix labeled *fix_ID*. This allows the -local data to be accessed by other LAMMPS commands. -Following any optional keyword/value arguments, a list of one or more -attributes is specified. These include the IDs of the two atoms in -the bond. The other attributes for the two atoms include the timestep -during which the bond broke and the current/initial center of mass -position of the two atoms. +local data to be accessed by other LAMMPS commands. Following this optional +keyword, a list of one or more attributes is specified. These include the +IDs of the two atoms in the bond. The other attributes for the two atoms +include the timestep during which the bond broke and the current/initial +center of mass position of the two atoms. Data is continuously accumulated over intervals of *N* timesteps. At the end of each interval, all of the saved accumulated @@ -181,20 +180,15 @@ properly resume bonds. However, the reference state is NOT written to data files. Therefore reading a data file will not restore bonds and will cause their reference states to be redefined. -The single() function of these pair styles returns 0.0 for the energy -of a pairwise interaction, since energy is not conserved in these -dissipative potentials. It also returns only the normal component of -the pairwise interaction force. - -The internal fix calculates a local vector or local array depending on the -number of input values. The length of the vector or number of rows in -the array is the number of recorded, lost interactions. 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 the -:doc:`Howto output ` page for an overview of LAMMPS -output options. +If the *store/local* option is used, an internal fix will calculate +a local vector or local array depending on the number of input values. +The length of the vector or number of rows in the array is the number +of recorded, broken bonds. 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 the :doc:`Howto output ` page +for an overview of LAMMPS output options. The vector or array will be floating point values that correspond to the specified attribute. diff --git a/doc/src/bond_bpm_spring.rst b/doc/src/bond_bpm_spring.rst index 6a05e7d3c1..de31357afe 100644 --- a/doc/src/bond_bpm_spring.rst +++ b/doc/src/bond_bpm_spring.rst @@ -103,15 +103,14 @@ the *overlay/pair* keyword. These settings require specific restrictions. Further details can be found in the `:doc: how to ` page on BPMs. -If the *store/local* keyword is used, this fix will track bonds that +If the *store/local* keyword is used, an internal fix will track bonds that break during the simulation. Whenever a bond breaks, data is processed and transferred to an internal fix labeled *fix_ID*. This allows the -local data to be accessed by other LAMMPS commands. -Following any optional keyword/value arguments, a list of one or more -attributes is specified. These include the IDs of the two atoms in -the bond. The other attributes for the two atoms include the timestep -during which the bond broke and the current/initial center of mass -position of the two atoms. +local data to be accessed by other LAMMPS commands. Following this optional +keyword, a list of one or more attributes is specified. These include the +IDs of the two atoms in the bond. The other attributes for the two atoms +include the timestep during which the bond broke and the current/initial +center of mass position of the two atoms. Data is continuously accumulated over intervals of *N* timesteps. At the end of each interval, all of the saved accumulated @@ -145,19 +144,15 @@ file will properly restore bonds. However, the reference state is NOT written to data files. Therefore reading a data file will not restore bonds and will cause their reference states to be redefined. -The single() function of these pair styles returns 0.0 for the energy -of a pairwise interaction, since energy is not conserved in these -dissipative potentials. - -The internal fix calculates a local vector or local array depending on the -number of input values. The length of the vector or number of rows in -the array is the number of recorded, lost interactions. 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 the -:doc:`Howto output ` page for an overview of LAMMPS -output options. +If the *store/local* option is used, an internal fix will calculate +a local vector or local array depending on the number of input values. +The length of the vector or number of rows in the array is the number +of recorded, broken bonds. 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 the :doc:`Howto output ` page +for an overview of LAMMPS output options. The vector or array will be floating point values that correspond to the specified attribute. From fc7e39be059ebd510965bac5bfaf1856cb6aa29a Mon Sep 17 00:00:00 2001 From: jtclemm Date: Thu, 15 Sep 2022 16:13:53 -0600 Subject: [PATCH 13/35] Fixing overlooked merge conflict in dump_modify.rst --- doc/src/dump_modify.rst | 31 ++----------------------------- 1 file changed, 2 insertions(+), 29 deletions(-) diff --git a/doc/src/dump_modify.rst b/doc/src/dump_modify.rst index 2747cac1e1..29f59ffaef 100644 --- a/doc/src/dump_modify.rst +++ b/doc/src/dump_modify.rst @@ -181,8 +181,8 @@ extra buffering. .. versionadded:: 4May2022 The *colname* keyword can be used to change the default header keyword -for dump styles: *atom*, *custom*, and *cfg* and their compressed, ADIOS, -and MPIIO variants. The setting for *ID string* replaces the default +for dump styles: *atom*, *custom*, *cfg*, and *local* and their compressed, +ADIOS, and MPIIO variants. The setting for *ID string* replaces the default text with the provided string. *ID* can be a positive integer when it represents the column number counting from the left, a negative integer when it represents the column number from the right (i.e. -1 is the last @@ -415,33 +415,6 @@ performed with dump style *xtc*\ . ---------- -<<<<<<< HEAD -.. versionadded:: 4May2022 - -The *colname* keyword can be used to change the default header keyword -for dump styles: *atom*, *custom*, *cfg*, and *local* and their compressed, -ADIOS, and MPIIO variants. The setting for *ID string* replaces the -default text with the provided string. *ID* can be a positive integer when -it represents the column number counting from the left, a negative integer -when it represents the column number from the right (i.e. -1 is the last -column/keyword), or a custom dump keyword (or compute, fix, property, or -variable reference) and then it replaces the string for that specific -keyword. For *atom* dump styles only the keywords "id", "type", "x", -"y", "z", "ix", "iy", "iz" can be accessed via string regardless of -whether scaled or unwrapped coordinates were enabled or disabled, and -it always assumes 8 columns for indexing regardless of whether image -flags are enabled or not. For dump style *cfg* only changes to the -"auxiliary" keywords (6th or later keyword) will become visible. - -The *colname* keyword can be used multiple times. If multiple *colname* -settings refer to the same keyword, the last setting has precedence. A -setting of *default* clears all previous settings, reverting all values -to their default names. - ----------- - -======= ->>>>>>> develop The *format* keyword can be used to change the default numeric format output by the text-based dump styles: *atom*, *local*, *custom*, *cfg*, and *xyz* styles, and their MPIIO variants. Only the *line* or *none* From 8d6629cb8032b6e59ae45d4e61647473039d51ae Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 18 Sep 2022 11:04:57 -0400 Subject: [PATCH 14/35] update MDI library to version 1.4.12 which plugs memory leaks on initialization --- cmake/Modules/Packages/MDI.cmake | 4 ++-- lib/mdi/Install.py | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cmake/Modules/Packages/MDI.cmake b/cmake/Modules/Packages/MDI.cmake index 8f7c87b684..edae4ffcbd 100644 --- a/cmake/Modules/Packages/MDI.cmake +++ b/cmake/Modules/Packages/MDI.cmake @@ -8,8 +8,8 @@ option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an al if(DOWNLOAD_MDI) message(STATUS "MDI download requested - we will build our own") - set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.11.tar.gz" CACHE STRING "URL for MDI tarball") - set(MDI_MD5 "3791fe5081405c14aac07d4687f1cc58" CACHE STRING "MD5 checksum for MDI tarball") + set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.12.tar.gz" CACHE STRING "URL for MDI tarball") + set(MDI_MD5 "7a222353ae8e03961d5365e6cd48baee" CACHE STRING "MD5 checksum for MDI tarball") mark_as_advanced(MDI_URL) mark_as_advanced(MDI_MD5) enable_language(C) diff --git a/lib/mdi/Install.py b/lib/mdi/Install.py index 1ef6a515da..59d218b1f9 100644 --- a/lib/mdi/Install.py +++ b/lib/mdi/Install.py @@ -32,12 +32,13 @@ make lib-mdi args="-m mpi" # build MDI lib with same settings as in the mpi Make # settings -version = "1.4.11" +version = "1.4.12" url = "https://github.com/MolSSI-MDI/MDI_Library/archive/v%s.tar.gz" % version # known checksums for different MDI versions. used to validate the download. checksums = { \ '1.4.11' : '3791fe5081405c14aac07d4687f1cc58', \ + '1.4.12' : '7a222353ae8e03961d5365e6cd48baee', \ } # print error message or help From 72fab8d5f58bd639900c962b75e7d57b98814361 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 18 Sep 2022 16:35:28 -0400 Subject: [PATCH 15/35] must depend on libflammps so that there is no race condition --- unittest/fortran/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittest/fortran/CMakeLists.txt b/unittest/fortran/CMakeLists.txt index 7aa2177918..9e46cef23e 100644 --- a/unittest/fortran/CMakeLists.txt +++ b/unittest/fortran/CMakeLists.txt @@ -33,7 +33,7 @@ if(CMAKE_Fortran_COMPILER) add_library(flammps STATIC ${LAMMPS_FORTRAN_MODULE}) add_executable(test_fortran_create wrap_create.cpp test_fortran_create.f90) - target_link_libraries(test_fortran_create PRIVATE lammps MPI::MPI_Fortran GTest::GTestMain) + target_link_libraries(test_fortran_create PRIVATE flammps lammps MPI::MPI_Fortran GTest::GTestMain) target_include_directories(test_fortran_create PRIVATE "${LAMMPS_SOURCE_DIR}/../fortran") add_test(NAME FortranOpen COMMAND test_fortran_create) From 83b36f7e4b90de6618f495b9306395baa0de213d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 21 Sep 2022 09:41:55 -0400 Subject: [PATCH 16/35] fix some minor documentation issues --- doc/src/Howto_bpm.rst | 4 ++-- doc/src/pair_bpm_spring.rst | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Howto_bpm.rst b/doc/src/Howto_bpm.rst index 9dc043a7e1..46e7e70131 100644 --- a/doc/src/Howto_bpm.rst +++ b/doc/src/Howto_bpm.rst @@ -58,11 +58,11 @@ velocity damping as its sister bond style. ---------- -Bond data can be output using a combination of standard LAMMPS comamnds. +Bond data can be output using a combination of standard LAMMPS commands. A list of IDs for bonded atoms can be generated using the :doc:`compute property/local ` command. Various properties of bonds can be computed using the -:doc:`compute property/bond ` command. This +:doc:`compute bond/local ` command. This command allows one to access data saved to the bond's history such as the reference length of the bond. More information on bond history data can be found on the documentation pages for the specific diff --git a/doc/src/pair_bpm_spring.rst b/doc/src/pair_bpm_spring.rst index a9a4bbee70..72e0083bd8 100644 --- a/doc/src/pair_bpm_spring.rst +++ b/doc/src/pair_bpm_spring.rst @@ -59,7 +59,7 @@ include this pair interaction and overlay the pair force over the bond force or to exclude this pair interaction such that the two particles only interact via the bond force. See discussion of the *overlay/pair* option for BPM bond styles and the :doc:`special_bonds ` -command in the :doc:`how to ` page on BPMs for more details. +command in the :doc:`how to ` page on BPMs for more details. The following coefficients must be defined for each pair of atom types via the :doc:`pair_coeff ` command as in the examples From 7c2013d86273298783895f1dd3d287be6680bb6a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 21 Sep 2022 10:01:53 -0400 Subject: [PATCH 17/35] silence compiler warnings --- src/BPM/bond_bpm.cpp | 3 +-- src/MC/fix_gcmc.h | 2 +- src/fix_pair.cpp | 2 +- src/fix_update_special_bonds.cpp | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/BPM/bond_bpm.cpp b/src/BPM/bond_bpm.cpp index c35e5d4b9b..5a20059860 100644 --- a/src/BPM/bond_bpm.cpp +++ b/src/BPM/bond_bpm.cpp @@ -279,8 +279,7 @@ double BondBPM::equilibrium_distance(int /*i*/) } } else { int type, j; - double delx, dely, delz, r; - double **x = atom->x; + double r; for (int i = 0; i < atom->nlocal; i++) { for (int m = 0; m < atom->num_bond[i]; m++) { type = atom->bond_type[i][m]; diff --git a/src/MC/fix_gcmc.h b/src/MC/fix_gcmc.h index 2bdd9eb461..685451aaa1 100644 --- a/src/MC/fix_gcmc.h +++ b/src/MC/fix_gcmc.h @@ -35,7 +35,7 @@ class FixGCMC : public Fix { double memory_usage() override; void write_restart(FILE *) override; void restart(char *) override; - void *extract(const char *, int &); + void *extract(const char *, int &) override; private: int molecule_group, molecule_group_bit; diff --git a/src/fix_pair.cpp b/src/fix_pair.cpp index 5f9363daaa..4ef42b2f8b 100644 --- a/src/fix_pair.cpp +++ b/src/fix_pair.cpp @@ -84,7 +84,7 @@ FixPair::FixPair(LAMMPS *lmp, int narg, char **arg) : for (int ifield = 0; ifield < nfield; ifield++) { int columns = 0; // set in case fieldname not recognized by pstyle - void *pvoid = pstyle->extract_peratom(fieldname[ifield],columns); + pstyle->extract_peratom(fieldname[ifield],columns); if (columns) ncols += columns; else ncols++; if (trigger[ifield]) { diff --git a/src/fix_update_special_bonds.cpp b/src/fix_update_special_bonds.cpp index 2eb24ff726..4b06b39ad4 100644 --- a/src/fix_update_special_bonds.cpp +++ b/src/fix_update_special_bonds.cpp @@ -84,7 +84,7 @@ void FixUpdateSpecialBonds::setup(int /*vflag*/) void FixUpdateSpecialBonds::pre_exchange() { - int i, j, m, n1, n3; + int i, j, m, n1; tagint tagi, tagj; int nlocal = atom->nlocal; From 51b323fc76f465b3b63f49c7d7a36ca5e33f526f Mon Sep 17 00:00:00 2001 From: Evangelos Voyiatzis Date: Wed, 21 Sep 2022 20:01:38 +0200 Subject: [PATCH 18/35] Fixing typo in pair_gayberne.rst Fixing typo in the documentation --- doc/src/pair_gayberne.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/pair_gayberne.rst b/doc/src/pair_gayberne.rst index 09bc3706c2..84d3d1a282 100644 --- a/doc/src/pair_gayberne.rst +++ b/doc/src/pair_gayberne.rst @@ -129,7 +129,7 @@ that type. e.g. in a "pair_coeff I J" command. .. note:: - If the :math:`\epsilon` a = b = c for an atom type, and if the shape + If the :math:`\epsilon_{a}` = :math:`\epsilon_{b}` = :math:`\epsilon_{c}` for an atom type, and if the shape of the particle itself is spherical, meaning its 3 shape parameters are all the same, then the particle is treated as an LJ sphere by the Gay-Berne potential. This is significant because if two LJ spheres @@ -137,7 +137,7 @@ that type. e.g. in a "pair_coeff I J" command. their interaction energy/force using the specified epsilon and sigma as the standard LJ parameters. This is much cheaper to compute than the full Gay-Berne formula. To treat the particle as a LJ sphere - with sigma = D, you should normally set :math:`\epsilon` a = b = c = + with sigma = D, you should normally set :math:`\epsilon_{a}` = :math:`\epsilon_{b}` = :math:`\epsilon_{c}` = 1.0, set the pair_coeff :math:`\sigma = D`, and also set the 3 shape parameters for the particle to D. The one exception is that if the 3 shape parameters are set to 0.0, which is a valid way in LAMMPS to From 0343ad09ea7db0e90b6b3a078f1779a359e8f648 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 21 Sep 2022 15:54:25 -0400 Subject: [PATCH 19/35] additional formatting updates --- doc/src/pair_gayberne.rst | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/doc/src/pair_gayberne.rst b/doc/src/pair_gayberne.rst index 84d3d1a282..553cbdd8d3 100644 --- a/doc/src/pair_gayberne.rst +++ b/doc/src/pair_gayberne.rst @@ -44,14 +44,15 @@ ellipsoidal and spherical particle via the formulas U_r = & 4 \epsilon ( \varrho^{12} - \varrho^6) \\ \varrho = & \frac{\sigma}{ h_{12} + \gamma \sigma} -where A1 and A2 are the transformation matrices from the simulation box -frame to the body frame and :math:`r_{12}` is the center to center -vector between the particles. :math:`U_r` controls the shifted distance -dependent interaction based on the distance of closest approach of the -two particles (:math:`h_{12}`) and the user-specified shift parameter -gamma. When both particles are spherical, the formula reduces to the -usual Lennard-Jones interaction (see details below for when Gay-Berne -treats a particle as "spherical"). +where :math:`\mathbf{A}_1` and :math:`\mathbf{A}_2` are the +transformation matrices from the simulation box frame to the body frame +and :math:`r_{12}` is the center to center vector between the particles. +:math:`U_r` controls the shifted distance dependent interaction based on +the distance of closest approach of the two particles (:math:`h_{12}`) +and the user-specified shift parameter :math:`\gamma`. When both +particles are spherical, the formula reduces to the usual Lennard-Jones +interaction (see details below for when Gay-Berne treats a particle as +"spherical"). For large uniform molecules it has been shown that the energy parameters are approximately representable in terms of local contact @@ -74,8 +75,9 @@ listed below and in `this supplementary document `_ Use of this pair style requires the NVE, NVT, or NPT fixes with the *asphere* extension (e.g. :doc:`fix nve/asphere `) in -order to integrate particle rotation. Additionally, :doc:`atom_style ellipsoid ` should be used since it defines the -rotational state and the size and shape of each ellipsoidal particle. +order to integrate particle rotation. Additionally, :doc:`atom_style +ellipsoid ` should be used since it defines the rotational +state and the size and shape of each ellipsoidal particle. The following coefficients must be defined for each pair of atoms types via the :doc:`pair_coeff ` command as in the examples From 39763444c5e7eecbb33588b6c4a205b20cb11596 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Wed, 21 Sep 2022 14:03:04 -0600 Subject: [PATCH 20/35] add lasttime check to fix pair --- src/fix_pair.cpp | 23 +++++++++++++++++++++-- src/fix_pair.h | 2 ++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/fix_pair.cpp b/src/fix_pair.cpp index 5f9363daaa..8d3ce717d3 100644 --- a/src/fix_pair.cpp +++ b/src/fix_pair.cpp @@ -120,7 +120,8 @@ FixPair::FixPair(LAMMPS *lmp, int narg, char **arg) : atom->add_callback(Atom::GROW); // zero the vector/array since dump may access it on timestep 0 - // zero the vector/array since a variable may access it before first run + // zero the vector/array since a variable may access it before first ru + // initialize lasttime so step 0 will trigger/extract int nlocal = atom->nlocal; @@ -132,6 +133,8 @@ FixPair::FixPair(LAMMPS *lmp, int narg, char **arg) : for (int m = 0; m < ncols; m++) array[i][m] = 0.0; } + + lasttime = -1; } /* ---------------------------------------------------------------------- */ @@ -188,6 +191,13 @@ void FixPair::setup(int vflag) /* ---------------------------------------------------------------------- */ +void FixPair::min_setup(int vflag) +{ + setup(vflag); +} + +/* ---------------------------------------------------------------------- */ + void FixPair::setup_pre_force(int vflag) { pre_force(vflag); @@ -195,14 +205,18 @@ void FixPair::setup_pre_force(int vflag) /* ---------------------------------------------------------------------- trigger pair style computation on steps which are multiples of Nevery + lasttime prevents mulitiple triggers by min linesearch on same iteration ------------------------------------------------------------------------- */ void FixPair::pre_force(int /*vflag*/) { if (update->ntimestep % nevery) return; + if (update->ntimestep == lasttime) return; // set pair style triggers + printf("FPAIR preforce: set trigger %ld\n",update->ntimestep); + for (int ifield = 0; ifield < nfield; ifield++) if (trigger[ifield]) *(triggerptr[ifield]) = 1; } @@ -215,12 +229,15 @@ void FixPair::min_pre_force(int vflag) } /* ---------------------------------------------------------------------- - extract results from pair style + extract results from pair style on steps which are multiples of Nevery + lasttime prevents mulitiple extracts by min linesearch on same iteration ------------------------------------------------------------------------- */ void FixPair::post_force(int /*vflag*/) { if (update->ntimestep % nevery) return; + if (update->ntimestep == lasttime) return; + lasttime = update->ntimestep; // extract pair style fields one by one // store their values in this fix @@ -230,6 +247,8 @@ void FixPair::post_force(int /*vflag*/) int icol = 0; int columns; + printf("FPAIR postforce: extract %ld\n",update->ntimestep); + for (int ifield = 0; ifield < nfield; ifield++) { void *pvoid = pstyle->extract_peratom(fieldname[ifield],columns); if (pvoid == nullptr) diff --git a/src/fix_pair.h b/src/fix_pair.h index c4d0bb593c..c3d8454185 100644 --- a/src/fix_pair.h +++ b/src/fix_pair.h @@ -31,6 +31,7 @@ class FixPair : public Fix { int setmask() override; void init() override; void setup(int) override; + void min_setup(int) override; void setup_pre_force(int) override; void pre_force(int) override; void min_pre_force(int) override; @@ -46,6 +47,7 @@ class FixPair : public Fix { private: int nevery,nfield,ncols; + bigint lasttime; char *pairname; char **fieldname,**triggername; int *trigger; From fc969bc99b91a77747d7c1c767a60b88c19e1bbc Mon Sep 17 00:00:00 2001 From: jtclemm Date: Wed, 21 Sep 2022 15:28:23 -0600 Subject: [PATCH 21/35] Adding parentheses to logic statement in fix update/special/bonds --- src/fix_update_special_bonds.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fix_update_special_bonds.cpp b/src/fix_update_special_bonds.cpp index 2eb24ff726..00cb0a85cb 100644 --- a/src/fix_update_special_bonds.cpp +++ b/src/fix_update_special_bonds.cpp @@ -210,7 +210,7 @@ void FixUpdateSpecialBonds::pre_force(int /*vflag*/) jnum = numneigh[i1]; for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; - if (j >> SBBITS & 3 != 0) continue; // Skip bonded pairs + if (((j >> SBBITS) & 3) != 0) continue; // Skip bonded pairs if (tag[j] == tag2) jlist[jj] = j ^ (1 << SBBITS); // Add 1-2 special bond bits } } @@ -220,7 +220,7 @@ void FixUpdateSpecialBonds::pre_force(int /*vflag*/) jnum = numneigh[i2]; for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; - if (j >> SBBITS & 3 != 0) continue; // Skip bonded pairs + if (((j >> SBBITS) & 3) != 0) continue; // Skip bonded pairs if (tag[j] == tag1) jlist[jj] = j ^ (1 << SBBITS); // Add 1-2 special bond bits } } From 2b27fd8acb2fc993b85300b51e2be79dbdec37de Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Sep 2022 10:34:23 -0400 Subject: [PATCH 22/35] address possible initialization issues reported by coverity scan --- src/MC/fix_charge_regulation.cpp | 7 ++----- src/OPENMP/fix_nvt_sllod_omp.cpp | 7 +++---- src/fix_nvt_sllod.cpp | 7 +++---- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/MC/fix_charge_regulation.cpp b/src/MC/fix_charge_regulation.cpp index 795ccb75d1..e97b8ccafb 100644 --- a/src/MC/fix_charge_regulation.cpp +++ b/src/MC/fix_charge_regulation.cpp @@ -377,11 +377,8 @@ void FixChargeRegulation::forward_acid() { double energy_before = energy_stored; double factor; double dummyp[3]; - double pos[3]; - pos[0] = 0; - pos[1] = 0; - pos[2] = 0; // acid/base particle position - double pos_all[3]; + double pos[3] = {0.0, 0.0, 0.0}; // acid/base particle position + double pos_all[3] = {0.0, 0.0, 0.0}; int m1 = -1, m2 = -1; m1 = get_random_particle(acid_type, 0, 0, dummyp); diff --git a/src/OPENMP/fix_nvt_sllod_omp.cpp b/src/OPENMP/fix_nvt_sllod_omp.cpp index 866592728d..d1d8910af1 100644 --- a/src/OPENMP/fix_nvt_sllod_omp.cpp +++ b/src/OPENMP/fix_nvt_sllod_omp.cpp @@ -56,9 +56,9 @@ FixNVTSllodOMP::FixNVTSllodOMP(LAMMPS *lmp, int narg, char **arg) : // id = fix-ID + temp id_temp = utils::strdup(std::string(id) + "_temp"); - modify->add_compute(fmt::format("{} {} temp/deform", - id_temp,group->names[igroup])); + modify->add_compute(fmt::format("{} {} temp/deform",id_temp,group->names[igroup])); tcomputeflag = 1; + nondeformbias = 0; } /* ---------------------------------------------------------------------- */ @@ -79,8 +79,7 @@ void FixNVTSllodOMP::init() for (i = 0; i < modify->nfix; i++) if (utils::strmatch(modify->fix[i]->style,"^deform")) { if ((dynamic_cast(modify->fix[i]))->remapflag != Domain::V_REMAP) - error->all(FLERR,"Using fix nvt/sllod/omp with inconsistent fix " - "deform remap option"); + error->all(FLERR,"Using fix nvt/sllod/omp with inconsistent fix deform remap option"); break; } if (i == modify->nfix) diff --git a/src/fix_nvt_sllod.cpp b/src/fix_nvt_sllod.cpp index a721afd2ee..610d310e3f 100644 --- a/src/fix_nvt_sllod.cpp +++ b/src/fix_nvt_sllod.cpp @@ -51,9 +51,9 @@ FixNVTSllod::FixNVTSllod(LAMMPS *lmp, int narg, char **arg) : // id = fix-ID + temp id_temp = utils::strdup(std::string(id) + "_temp"); - modify->add_compute(fmt::format("{} {} temp/deform", - id_temp,group->names[igroup])); + modify->add_compute(fmt::format("{} {} temp/deform",id_temp,group->names[igroup])); tcomputeflag = 1; + nondeformbias = 0; } /* ---------------------------------------------------------------------- */ @@ -74,8 +74,7 @@ void FixNVTSllod::init() for (i = 0; i < modify->nfix; i++) if (strncmp(modify->fix[i]->style,"deform",6) == 0) { if ((dynamic_cast(modify->fix[i]))->remapflag != Domain::V_REMAP) - error->all(FLERR,"Using fix nvt/sllod with inconsistent fix deform " - "remap option"); + error->all(FLERR,"Using fix nvt/sllod with inconsistent fix deform remap option"); break; } if (i == modify->nfix) From 6c9c61e7631f320992b5d0b0fb08e36bda546065 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Sep 2022 10:45:53 -0400 Subject: [PATCH 23/35] remove debug output --- src/fix_pair.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/fix_pair.cpp b/src/fix_pair.cpp index 8d3ce717d3..9bc4619adc 100644 --- a/src/fix_pair.cpp +++ b/src/fix_pair.cpp @@ -215,8 +215,6 @@ void FixPair::pre_force(int /*vflag*/) // set pair style triggers - printf("FPAIR preforce: set trigger %ld\n",update->ntimestep); - for (int ifield = 0; ifield < nfield; ifield++) if (trigger[ifield]) *(triggerptr[ifield]) = 1; } @@ -247,8 +245,6 @@ void FixPair::post_force(int /*vflag*/) int icol = 0; int columns; - printf("FPAIR postforce: extract %ld\n",update->ntimestep); - for (int ifield = 0; ifield < nfield; ifield++) { void *pvoid = pstyle->extract_peratom(fieldname[ifield],columns); if (pvoid == nullptr) From 6fac8f168881b3af77cf5605aa499e331d753850 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Sep 2022 11:32:14 -0400 Subject: [PATCH 24/35] remove unused NeighRequest member variable index --- src/neigh_request.cpp | 3 +-- src/neigh_request.h | 3 +-- src/neighbor.cpp | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/neigh_request.cpp b/src/neigh_request.cpp index 37da50eaea..dc38205d55 100644 --- a/src/neigh_request.cpp +++ b/src/neigh_request.cpp @@ -99,9 +99,8 @@ NeighRequest::NeighRequest(LAMMPS *_lmp) : Pointers(_lmp) /* ---------------------------------------------------------------------- */ -NeighRequest::NeighRequest(LAMMPS *_lmp, int idx, void *ptr, int num) : NeighRequest(_lmp) +NeighRequest::NeighRequest(LAMMPS *_lmp, void *ptr, int num) : NeighRequest(_lmp) { - index = idx; requestor = ptr; requestor_instance = num; } diff --git a/src/neigh_request.h b/src/neigh_request.h index 13b5b11466..9f2d56add8 100644 --- a/src/neigh_request.h +++ b/src/neigh_request.h @@ -29,7 +29,6 @@ class NeighRequest : protected Pointers { friend class FixIntel; protected: - int index; // index of which neigh request this is void *requestor; // class that made request int requestor_instance; // instance of that class (only Fix, Compute, Pair) int id; // ID of request as stored by requestor @@ -122,7 +121,7 @@ class NeighRequest : protected Pointers { // methods public: NeighRequest(class LAMMPS *); - NeighRequest(class LAMMPS *, int, void *, int); + NeighRequest(class LAMMPS *, void *, int); NeighRequest(NeighRequest *); ~NeighRequest() override; diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 298ec29994..6af4094a21 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -2163,13 +2163,13 @@ int Neighbor::request(void *requestor, int instance) memory->srealloc(requests,maxrequest*sizeof(NeighRequest *), "neighbor:requests"); } - requests[nrequest] = new NeighRequest(lmp, nrequest, requestor, instance); + requests[nrequest] = new NeighRequest(lmp, requestor, instance); nrequest++; return nrequest-1; } /* ---------------------------------------------------------------------- - called by other classes to request a pairwise neighbor list + add_request() is called by other classes to request a pairwise neighbor list ------------------------------------------------------------------------- */ NeighRequest *Neighbor::add_request(Pair *requestor, int flags) From e3729e51e8407a79a2add351f27975bde015ae65 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Sep 2022 12:23:52 -0400 Subject: [PATCH 25/35] remove unused method, modernize errors and access to molecule class, reformat --- src/MC/fix_widom.cpp | 302 +++++++++++++------------------------------ src/MC/fix_widom.h | 10 +- 2 files changed, 95 insertions(+), 217 deletions(-) diff --git a/src/MC/fix_widom.cpp b/src/MC/fix_widom.cpp index d1bc5dfa58..72c02203e3 100644 --- a/src/MC/fix_widom.cpp +++ b/src/MC/fix_widom.cpp @@ -48,20 +48,18 @@ using namespace LAMMPS_NS; using namespace FixConst; -using namespace MathConst; +using MathConst::MY_2PI; #define MAXENERGYTEST 1.0e50 - -enum{EXCHATOM,EXCHMOL}; // exchmode +enum { EXCHATOM, EXCHMOL }; // exchmode /* ---------------------------------------------------------------------- */ FixWidom::FixWidom(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg), - region(nullptr), idregion(nullptr), full_flag(false), local_gas_list(nullptr), - molcoords(nullptr),molq(nullptr), molimage(nullptr), random_equal(nullptr) + Fix(lmp, narg, arg), region(nullptr), idregion(nullptr), full_flag(false), molcoords(nullptr), + molq(nullptr), molimage(nullptr), random_equal(nullptr), c_pe(nullptr) { - if (narg < 8) error->all(FLERR,"Illegal fix widom command"); + if (narg < 8) utils::missing_cmd_args(FLERR, "fix widom", error); if (atom->molecular == Atom::TEMPLATE) error->all(FLERR,"Fix widom does not (yet) work with atom_style template"); @@ -83,11 +81,11 @@ FixWidom::FixWidom(LAMMPS *lmp, int narg, char **arg) : seed = utils::inumeric(FLERR,arg[6],false,lmp); insertion_temperature = utils::numeric(FLERR,arg[7],false,lmp); - if (nevery <= 0) error->all(FLERR,"Illegal fix widom command"); - if (ninsertions < 0) error->all(FLERR,"Illegal fix widom command"); - if (seed <= 0) error->all(FLERR,"Illegal fix widom command"); + if (nevery <= 0) error->all(FLERR,"Invalid fix widom every argument: {}", nevery); + if (ninsertions < 0) error->all(FLERR,"Invalid fix widom insertions argument: {}", ninsertions); + if (seed <= 0) error->all(FLERR,"Invalid fix widom seed argument: {}", seed); if (insertion_temperature < 0.0) - error->all(FLERR,"Illegal fix widom command"); + error->all(FLERR,"Invalid fix widom temperature argument: {}", insertion_temperature); // read options from end of input line @@ -99,13 +97,12 @@ FixWidom::FixWidom(LAMMPS *lmp, int narg, char **arg) : // error checks on region and its extent being inside simulation box - region_xlo = region_xhi = region_ylo = region_yhi = - region_zlo = region_zhi = 0.0; + region_xlo = region_xhi = region_ylo = region_yhi = region_zlo = region_zhi = 0.0; if (region) { if (region->bboxflag == 0) - error->all(FLERR,"Fix widom region does not support a bounding box"); + error->all(FLERR,"Fix widom region {} does not support a bounding box", region->id); if (region->dynamic_check()) - error->all(FLERR,"Fix widom region cannot be dynamic"); + error->all(FLERR,"Fix widom region {} cannot be dynamic", region->id); region_xlo = region->extent_xlo; region_xhi = region->extent_xhi; @@ -117,7 +114,7 @@ FixWidom::FixWidom(LAMMPS *lmp, int narg, char **arg) : if (region_xlo < domain->boxlo[0] || region_xhi > domain->boxhi[0] || region_ylo < domain->boxlo[1] || region_yhi > domain->boxhi[1] || region_zlo < domain->boxlo[2] || region_zhi > domain->boxhi[2]) - error->all(FLERR,"Fix widom region extends outside simulation box"); + error->all(FLERR,"Fix widom region {} extends outside simulation box", region->id); // estimate region volume using MC trials @@ -132,8 +129,8 @@ FixWidom::FixWidom(LAMMPS *lmp, int narg, char **arg) : inside++; } - double max_region_volume = (region_xhi - region_xlo) * - (region_yhi - region_ylo) * (region_zhi - region_zlo); + double max_region_volume = (region_xhi - region_xlo) * (region_yhi - region_ylo) + * (region_zhi - region_zlo); region_volume = max_region_volume * static_cast(inside) / static_cast(attempts); } @@ -141,28 +138,25 @@ FixWidom::FixWidom(LAMMPS *lmp, int narg, char **arg) : // error check and further setup for exchmode = EXCHMOL if (exchmode == EXCHMOL) { - if (onemols[imol]->xflag == 0) - error->all(FLERR,"Fix widom molecule must have coordinates"); - if (onemols[imol]->typeflag == 0) - error->all(FLERR,"Fix widom molecule must have atom types"); + if (onemol->xflag == 0) + error->all(FLERR,"Fix widom molecule {} must have coordinates", onemol->id); + if (onemol->typeflag == 0) + error->all(FLERR,"Fix widom molecule {} must have atom types", onemol->id); if (nwidom_type != 0) error->all(FLERR,"Atom type must be zero in fix widom mol command"); - if (onemols[imol]->qflag == 1 && atom->q == nullptr) - error->all(FLERR,"Fix widom molecule has charges, but atom style does not"); + if (onemol->qflag == 1 && atom->q == nullptr) + error->all(FLERR,"Fix widom molecule {} has charges, but atom style does not", onemol->id); - if (atom->molecular == Atom::TEMPLATE && onemols != atom->avec->onemols) - error->all(FLERR,"Fix widom molecule template ID must be same " - "as atom_style template ID"); - onemols[imol]->check_attributes(); + onemol->check_attributes(); } if (charge_flag && atom->q == nullptr) - error->all(FLERR,"Fix Widom atom has charge, but atom style does not"); + error->all(FLERR,"Fix widom atom has charge, but atom style does not"); // setup of array of coordinates for molecule insertion if (exchmode == EXCHATOM) natoms_per_molecule = 1; - else natoms_per_molecule = onemols[imol]->natoms; + else natoms_per_molecule = onemol->natoms; nmaxmolatoms = natoms_per_molecule; grow_molecule_arrays(nmaxmolatoms); @@ -173,7 +167,7 @@ FixWidom::FixWidom(LAMMPS *lmp, int narg, char **arg) : // zero out counters widom_nmax = 0; - local_gas_list = nullptr; + ave_widom_chemical_potential = 0.0; } /* ---------------------------------------------------------------------- @@ -201,17 +195,16 @@ void FixWidom::options(int narg, char **arg) int iarg = 0; while (iarg < narg) { - if (strcmp(arg[iarg],"mol") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix widom command"); - imol = atom->find_molecule(arg[iarg+1]); - if (imol == -1) - error->all(FLERR,"Molecule template ID for fix widom does not exist"); - if (atom->molecules[imol]->nset > 1 && comm->me == 0) - error->warning(FLERR,"Molecule template for " - "fix widom has multiple molecules"); + if (strcmp(arg[iarg],"mol") == 0) { + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "fix widom mol", error); + auto onemols = atom->get_molecule_by_id(arg[iarg+1]); + if (onemols.size() == 0) + error->all(FLERR,"Molecule template ID {} for fix widom does not exist", arg[iarg+1]); + if (onemols.size() > 1 && comm->me == 0) + error->warning(FLERR,"Molecule template {} for fix widom has multiple molecules; " + "will use only the first molecule", arg[iarg+1]); exchmode = EXCHMOL; - onemols = atom->molecules; - nmol = onemols[imol]->nset; + onemol = onemols[0]; iarg += 2; } else if (strcmp(arg[iarg],"region") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix widom command"); @@ -243,7 +236,6 @@ FixWidom::~FixWidom() delete[] idregion; delete random_equal; - memory->destroy(local_gas_list); memory->destroy(molcoords); memory->destroy(molq); memory->destroy(molimage); @@ -292,7 +284,7 @@ void FixWidom::init() } } - if (full_flag) c_pe = modify->compute[modify->find_compute("thermo_pe")]; + if (full_flag) c_pe = modify->get_compute_by_id("thermo_pe"); if (exchmode == EXCHATOM) { if (nwidom_type <= 0 || nwidom_type > atom->ntypes) @@ -360,22 +352,21 @@ void FixWidom::init() if (exchmode == EXCHMOL) { - onemols[imol]->compute_mass(); - onemols[imol]->compute_com(); - gas_mass = onemols[imol]->masstotal; - for (int i = 0; i < onemols[imol]->natoms; i++) { - onemols[imol]->x[i][0] -= onemols[imol]->com[0]; - onemols[imol]->x[i][1] -= onemols[imol]->com[1]; - onemols[imol]->x[i][2] -= onemols[imol]->com[2]; + onemol->compute_mass(); + onemol->compute_com(); + gas_mass = onemol->masstotal; + for (int i = 0; i < onemol->natoms; i++) { + onemol->x[i][0] -= onemol->com[0]; + onemol->x[i][1] -= onemol->com[1]; + onemol->x[i][2] -= onemol->com[2]; } - onemols[imol]->com[0] = 0; - onemols[imol]->com[1] = 0; - onemols[imol]->com[2] = 0; + onemol->com[0] = 0; + onemol->com[1] = 0; + onemol->com[2] = 0; } else gas_mass = atom->mass[nwidom_type]; - if (gas_mass <= 0.0) - error->all(FLERR,"Illegal fix widom gas mass <= 0"); + if (gas_mass <= 0.0) error->all(FLERR,"Illegal fix widom gas mass <= 0"); // check that no deletable atoms are in atom->firstgroup // deleting such an atom would not leave firstgroup atoms first @@ -443,7 +434,6 @@ void FixWidom::pre_exchange() atom->nghost = 0; comm->borders(); if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); - update_gas_atoms_list(); if (full_flag) { energy_stored = energy_full(); @@ -525,12 +515,12 @@ void FixWidom::attempt_atomic_insertion() if (!domain->inside(coord)) error->one(FLERR,"Fix widom put atom outside box"); if (coord[0] >= sublo[0] && coord[0] < subhi[0] && - coord[1] >= sublo[1] && coord[1] < subhi[1] && - coord[2] >= sublo[2] && coord[2] < subhi[2]) proc_flag = 1; + coord[1] >= sublo[1] && coord[1] < subhi[1] && + coord[2] >= sublo[2] && coord[2] < subhi[2]) proc_flag = 1; } else { if (lamda[0] >= sublo[0] && lamda[0] < subhi[0] && - lamda[1] >= sublo[1] && lamda[1] < subhi[1] && - lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1; + lamda[1] >= sublo[1] && lamda[1] < subhi[1] && + lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1; } if (proc_flag) { @@ -545,9 +535,7 @@ void FixWidom::attempt_atomic_insertion() double incr_chem_pot = (inst_chem_pot - ave_widom_chemical_potential); ave_widom_chemical_potential += incr_chem_pot / (imove + 1); } - } - } /* ---------------------------------------------------------------------- @@ -571,13 +559,13 @@ void FixWidom::attempt_molecule_insertion() com_coord[2] = region_zlo + random_equal->uniform() * (region_zhi-region_zlo); while (region->match(com_coord[0],com_coord[1], - com_coord[2]) == 0) { + com_coord[2]) == 0) { com_coord[0] = region_xlo + random_equal->uniform() * - (region_xhi-region_xlo); + (region_xhi-region_xlo); com_coord[1] = region_ylo + random_equal->uniform() * - (region_yhi-region_ylo); + (region_yhi-region_ylo); com_coord[2] = region_zlo + random_equal->uniform() * - (region_zhi-region_zlo); + (region_zhi-region_zlo); region_attempt++; if (region_attempt >= max_region_attempts) return; } @@ -622,7 +610,7 @@ void FixWidom::attempt_molecule_insertion() auto procflag = new bool[natoms_per_molecule]; for (int i = 0; i < natoms_per_molecule; i++) { - MathExtra::matvec(rotmat,onemols[imol]->x[i],molcoords[i]); + MathExtra::matvec(rotmat,onemol->x[i],molcoords[i]); molcoords[i][0] += com_coord[0]; molcoords[i][1] += com_coord[1]; molcoords[i][2] += com_coord[2]; @@ -641,40 +629,37 @@ void FixWidom::attempt_molecule_insertion() procflag[i] = false; if (triclinic == 0) { if (xtmp[0] >= sublo[0] && xtmp[0] < subhi[0] && - xtmp[1] >= sublo[1] && xtmp[1] < subhi[1] && - xtmp[2] >= sublo[2] && xtmp[2] < subhi[2]) procflag[i] = true; + xtmp[1] >= sublo[1] && xtmp[1] < subhi[1] && + xtmp[2] >= sublo[2] && xtmp[2] < subhi[2]) procflag[i] = true; } else { domain->x2lamda(xtmp,lamda); if (lamda[0] >= sublo[0] && lamda[0] < subhi[0] && - lamda[1] >= sublo[1] && lamda[1] < subhi[1] && - lamda[2] >= sublo[2] && lamda[2] < subhi[2]) procflag[i] = true; + lamda[1] >= sublo[1] && lamda[1] < subhi[1] && + lamda[2] >= sublo[2] && lamda[2] < subhi[2]) procflag[i] = true; } if (procflag[i]) { int ii = -1; - if (onemols[imol]->qflag == 1) { - ii = atom->nlocal + atom->nghost; - if (ii >= atom->nmax) atom->avec->grow(0); - atom->q[ii] = onemols[imol]->q[i]; + if (onemol->qflag == 1) { + ii = atom->nlocal + atom->nghost; + if (ii >= atom->nmax) atom->avec->grow(0); + atom->q[ii] = onemol->q[i]; } - insertion_energy += energy(ii,onemols[imol]->type[i],-1,xtmp); + insertion_energy += energy(ii,onemol->type[i],-1,xtmp); } } double insertion_energy_sum = 0.0; MPI_Allreduce(&insertion_energy,&insertion_energy_sum,1, - MPI_DOUBLE,MPI_SUM,world); + MPI_DOUBLE,MPI_SUM,world); // the insertion_energy_sum is the variable with the energy of inserting one molecule double inst_chem_pot = exp(-insertion_energy_sum*beta); double incr_chem_pot = (inst_chem_pot - ave_widom_chemical_potential); ave_widom_chemical_potential += incr_chem_pot / (imove + 1); - delete[] procflag; - } - } /* ---------------------------------------------------------------------- @@ -727,12 +712,12 @@ void FixWidom::attempt_atomic_insertion_full() if (!domain->inside(coord)) error->one(FLERR,"Fix widom put atom outside box"); if (coord[0] >= sublo[0] && coord[0] < subhi[0] && - coord[1] >= sublo[1] && coord[1] < subhi[1] && - coord[2] >= sublo[2] && coord[2] < subhi[2]) proc_flag = 1; + coord[1] >= sublo[1] && coord[1] < subhi[1] && + coord[2] >= sublo[2] && coord[2] < subhi[2]) proc_flag = 1; } else { if (lamda[0] >= sublo[0] && lamda[0] < subhi[0] && - lamda[1] >= sublo[1] && lamda[1] < subhi[1] && - lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1; + lamda[1] >= sublo[1] && lamda[1] < subhi[1] && + lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1; } if (proc_flag) { @@ -770,11 +755,7 @@ void FixWidom::attempt_atomic_insertion_full() if (proc_flag) atom->nlocal--; if (force->kspace) force->kspace->qsum_qsq(); if (force->pair->tail_flag) force->pair->reinit(); - - update_gas_atoms_list(); - } - } /* ---------------------------------------------------------------------- @@ -803,20 +784,13 @@ void FixWidom::attempt_molecule_insertion_full() double com_coord[3]; if (region) { int region_attempt = 0; - com_coord[0] = region_xlo + random_equal->uniform() * - (region_xhi-region_xlo); - com_coord[1] = region_ylo + random_equal->uniform() * - (region_yhi-region_ylo); - com_coord[2] = region_zlo + random_equal->uniform() * - (region_zhi-region_zlo); - while (region->match(com_coord[0],com_coord[1], - com_coord[2]) == 0) { - com_coord[0] = region_xlo + random_equal->uniform() * - (region_xhi-region_xlo); - com_coord[1] = region_ylo + random_equal->uniform() * - (region_yhi-region_ylo); - com_coord[2] = region_zlo + random_equal->uniform() * - (region_zhi-region_zlo); + com_coord[0] = region_xlo + random_equal->uniform() * (region_xhi-region_xlo); + com_coord[1] = region_ylo + random_equal->uniform() * (region_yhi-region_ylo); + com_coord[2] = region_zlo + random_equal->uniform() * (region_zhi-region_zlo); + while (region->match(com_coord[0],com_coord[1], com_coord[2]) == 0) { + com_coord[0] = region_xlo + random_equal->uniform() * (region_xhi-region_xlo); + com_coord[1] = region_ylo + random_equal->uniform() * (region_yhi-region_ylo); + com_coord[2] = region_zlo + random_equal->uniform() * (region_zhi-region_zlo); region_attempt++; if (region_attempt >= max_region_attempts) return; } @@ -861,7 +835,7 @@ void FixWidom::attempt_molecule_insertion_full() for (int i = 0; i < natoms_per_molecule; i++) { double xtmp[3]; - MathExtra::matvec(rotmat,onemols[imol]->x[i],xtmp); + MathExtra::matvec(rotmat,onemol->x[i],xtmp); xtmp[0] += com_coord[0]; xtmp[1] += com_coord[1]; xtmp[2] += com_coord[2]; @@ -876,40 +850,39 @@ void FixWidom::attempt_molecule_insertion_full() int proc_flag = 0; if (triclinic == 0) { if (xtmp[0] >= sublo[0] && xtmp[0] < subhi[0] && - xtmp[1] >= sublo[1] && xtmp[1] < subhi[1] && - xtmp[2] >= sublo[2] && xtmp[2] < subhi[2]) proc_flag = 1; + xtmp[1] >= sublo[1] && xtmp[1] < subhi[1] && + xtmp[2] >= sublo[2] && xtmp[2] < subhi[2]) proc_flag = 1; } else { domain->x2lamda(xtmp,lamda); if (lamda[0] >= sublo[0] && lamda[0] < subhi[0] && - lamda[1] >= sublo[1] && lamda[1] < subhi[1] && - lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1; + lamda[1] >= sublo[1] && lamda[1] < subhi[1] && + lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1; } if (proc_flag) { - atom->avec->create_atom(onemols[imol]->type[i],xtmp); + atom->avec->create_atom(onemol->type[i],xtmp); int m = atom->nlocal - 1; atom->image[m] = imagetmp; atom->molecule[m] = insertion_molecule; if (maxtag_all+i+1 >= MAXTAGINT) - error->all(FLERR,"Fix widom ran out of available atom IDs"); + error->all(FLERR,"Fix widom ran out of available atom IDs"); atom->tag[m] = maxtag_all + i + 1; atom->v[m][0] = 0; atom->v[m][1] = 0; atom->v[m][2] = 0; - atom->add_molecule_atom(onemols[imol],i,m,maxtag_all); + atom->add_molecule_atom(onemol,i,m,maxtag_all); modify->create_attribute(m); } } atom->natoms += natoms_per_molecule; - if (atom->natoms < 0) - error->all(FLERR,"Too many total atoms"); - atom->nbonds += onemols[imol]->nbonds; - atom->nangles += onemols[imol]->nangles; - atom->ndihedrals += onemols[imol]->ndihedrals; - atom->nimpropers += onemols[imol]->nimpropers; + if (atom->natoms < 0) error->all(FLERR,"Too many total atoms"); + atom->nbonds += onemol->nbonds; + atom->nangles += onemol->nangles; + atom->ndihedrals += onemol->ndihedrals; + atom->nimpropers += onemol->nimpropers; if (atom->map_style != Atom::MAP_NONE) atom->map_init(); atom->nghost = 0; if (triclinic) domain->x2lamda(atom->nlocal); @@ -924,10 +897,10 @@ void FixWidom::attempt_molecule_insertion_full() double incr_chem_pot = (inst_chem_pot - ave_widom_chemical_potential); ave_widom_chemical_potential += incr_chem_pot / (imove + 1); - atom->nbonds -= onemols[imol]->nbonds; - atom->nangles -= onemols[imol]->nangles; - atom->ndihedrals -= onemols[imol]->ndihedrals; - atom->nimpropers -= onemols[imol]->nimpropers; + atom->nbonds -= onemol->nbonds; + atom->nangles -= onemol->nangles; + atom->ndihedrals -= onemol->ndihedrals; + atom->nimpropers -= onemol->nimpropers; atom->natoms -= natoms_per_molecule; int i = 0; @@ -939,9 +912,6 @@ void FixWidom::attempt_molecule_insertion_full() } if (force->kspace) force->kspace->qsum_qsq(); if (force->pair->tail_flag) force->pair->reinit(); - - update_gas_atoms_list(); - } } @@ -1061,92 +1031,6 @@ double FixWidom::energy_full() return total_energy; } -/* ---------------------------------------------------------------------- - update the list of gas atoms -------------------------------------------------------------------------- */ - -void FixWidom::update_gas_atoms_list() -{ - int nlocal = atom->nlocal; - int *mask = atom->mask; - tagint *molecule = atom->molecule; - double **x = atom->x; - - if (atom->nmax > widom_nmax) { - memory->sfree(local_gas_list); - widom_nmax = atom->nmax; - local_gas_list = (int *) memory->smalloc(widom_nmax*sizeof(int), - "Widom:local_gas_list"); - } - - ngas_local = 0; - - if (region) { - - if (exchmode == EXCHMOL) { - - tagint maxmol = 0; - for (int i = 0; i < nlocal; i++) maxmol = MAX(maxmol,molecule[i]); - tagint maxmol_all; - MPI_Allreduce(&maxmol,&maxmol_all,1,MPI_LMP_TAGINT,MPI_MAX,world); - auto comx = new double[maxmol_all]; - auto comy = new double[maxmol_all]; - auto comz = new double[maxmol_all]; - for (int imolecule = 0; imolecule < maxmol_all; imolecule++) { - for (int i = 0; i < nlocal; i++) { - if (molecule[i] == imolecule) { - mask[i] |= molecule_group_bit; - } else { - mask[i] &= molecule_group_inversebit; - } - } - double com[3]; - com[0] = com[1] = com[2] = 0.0; - group->xcm(molecule_group,gas_mass,com); - - // remap unwrapped com into periodic box - - domain->remap(com); - comx[imolecule] = com[0]; - comy[imolecule] = com[1]; - comz[imolecule] = com[2]; - } - - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - if (region->match(comx[molecule[i]], - comy[molecule[i]],comz[molecule[i]]) == 1) { - local_gas_list[ngas_local] = i; - ngas_local++; - } - } - } - delete[] comx; - delete[] comy; - delete[] comz; - } else { - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - if (region->match(x[i][0],x[i][1],x[i][2]) == 1) { - local_gas_list[ngas_local] = i; - ngas_local++; - } - } - } - } - - } else { - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - local_gas_list[ngas_local] = i; - ngas_local++; - } - } - } - - MPI_Allreduce(&ngas_local,&ngas,1,MPI_INT,MPI_SUM,world); -} - /* ---------------------------------------------------------------------- return acceptance ratios ------------------------------------------------------------------------- */ diff --git a/src/MC/fix_widom.h b/src/MC/fix_widom.h index dd388ec8e5..cf9a54fe02 100644 --- a/src/MC/fix_widom.h +++ b/src/MC/fix_widom.h @@ -40,7 +40,6 @@ class FixWidom : public Fix { double energy(int, int, tagint, double *); double molecule_energy(tagint); double energy_full(); - void update_gas_atoms_list(); double compute_vector(int) override; double memory_usage() override; void write_restart(FILE *) override; @@ -53,10 +52,7 @@ class FixWidom : public Fix { int exclusion_group, exclusion_group_bit; int nwidom_type, nevery, seed; int ninsertions; - int ngas; // # of gas atoms on all procs - int ngas_local; // # of gas atoms on this proc int exchmode; // exchange ATOM or MOLECULE - int movemode; // move ATOM or MOLECULE class Region *region; // widom region char *idregion; // widom region id bool charge_flag; // true if user specified atomic charge @@ -71,14 +67,13 @@ class FixWidom : public Fix { int max_region_attempts; double gas_mass; double insertion_temperature; - double beta, sigma, volume; + double beta, volume; double charge; double xlo, xhi, ylo, yhi, zlo, zhi; double region_xlo, region_xhi, region_ylo, region_yhi, region_zlo, region_zhi; double region_volume; double energy_stored; // full energy of old/current configuration double *sublo, *subhi; - int *local_gas_list; double **cutsq; double **molcoords; double *molq; @@ -93,8 +88,7 @@ class FixWidom : public Fix { class Atom *model_atom; - class Molecule **onemols; - int imol, nmol; + class Molecule *onemol; int triclinic; // 0 = orthog box, 1 = triclinic class Compute *c_pe; From 4a072d10db599969662d5adaa4f8a115a332aa5c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Sep 2022 12:24:09 -0400 Subject: [PATCH 26/35] make sure array is initialized --- src/MC/fix_charge_regulation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MC/fix_charge_regulation.cpp b/src/MC/fix_charge_regulation.cpp index e97b8ccafb..18f812dc05 100644 --- a/src/MC/fix_charge_regulation.cpp +++ b/src/MC/fix_charge_regulation.cpp @@ -376,7 +376,7 @@ void FixChargeRegulation::forward_acid() { double energy_before = energy_stored; double factor; - double dummyp[3]; + double dummyp[3] = {0.0, 0.0, 0.0}; double pos[3] = {0.0, 0.0, 0.0}; // acid/base particle position double pos_all[3] = {0.0, 0.0, 0.0}; int m1 = -1, m2 = -1; From 4f0caca9d84490b932a348ac042bf0717da662a0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Sep 2022 13:05:32 -0400 Subject: [PATCH 27/35] make sure data is initialized --- src/COLVARS/group_ndx.cpp | 5 ++--- src/EFF/fix_nvt_sllod_eff.cpp | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/COLVARS/group_ndx.cpp b/src/COLVARS/group_ndx.cpp index a45c0c1bf0..0e9da8cce3 100644 --- a/src/COLVARS/group_ndx.cpp +++ b/src/COLVARS/group_ndx.cpp @@ -47,7 +47,7 @@ static int cmptagint(const void *p1, const void *p2) void Group2Ndx::command(int narg, char **arg) { - FILE *fp; + FILE *fp = nullptr; if (narg < 1) error->all(FLERR,"Illegal group2ndx command"); @@ -57,8 +57,7 @@ void Group2Ndx::command(int narg, char **arg) if (comm->me == 0) { fp = fopen(arg[0], "w"); if (fp == nullptr) - error->one(FLERR,"Cannot open index file for writing: {}", - utils::getsyserror()); + error->one(FLERR,"Cannot open index file for writing: {}", utils::getsyserror()); utils::logmesg(lmp,"Writing groups to index file {}:\n",arg[0]); } diff --git a/src/EFF/fix_nvt_sllod_eff.cpp b/src/EFF/fix_nvt_sllod_eff.cpp index 8b7c6bac9b..333c98668c 100644 --- a/src/EFF/fix_nvt_sllod_eff.cpp +++ b/src/EFF/fix_nvt_sllod_eff.cpp @@ -51,6 +51,7 @@ FixNVTSllodEff::FixNVTSllodEff(LAMMPS *lmp, int narg, char **arg) : modify->add_compute(fmt::format("{} {} tmp/deform/eff", id_temp,group->names[igroup])); tcomputeflag = 1; + nondeformbias = 0; } /* ---------------------------------------------------------------------- */ From 96f04237c179cab6a1c469886981174831ba3cc2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Sep 2022 13:12:15 -0400 Subject: [PATCH 28/35] fix memory leak and avoid uninitialized data access --- src/MC/fix_charge_regulation.cpp | 79 +++++++++++++++++++++++--------- 1 file changed, 57 insertions(+), 22 deletions(-) diff --git a/src/MC/fix_charge_regulation.cpp b/src/MC/fix_charge_regulation.cpp index 18f812dc05..c1bcba007f 100644 --- a/src/MC/fix_charge_regulation.cpp +++ b/src/MC/fix_charge_regulation.cpp @@ -140,6 +140,8 @@ FixChargeRegulation::FixChargeRegulation(LAMMPS *lmp, int narg, char **arg) : nsalt_successes = 0; } +/* ---------------------------------------------------------------------- */ + FixChargeRegulation::~FixChargeRegulation() { memory->destroy(ptype_ID); @@ -153,14 +155,23 @@ FixChargeRegulation::~FixChargeRegulation() { int igroupall = group->find("all"); neighbor->exclusion_group_group_delete(exclusion_group, igroupall); } + + if (groupstrings) { + for (int i = 0; i < ngroups; ++i) delete[] groupstrings[i]; + memory->destroy(groupstrings); + } } +/* ---------------------------------------------------------------------- */ + int FixChargeRegulation::setmask() { int mask = 0; mask |= PRE_EXCHANGE; return mask; } +/* ---------------------------------------------------------------------- */ + void FixChargeRegulation::init() { triclinic = domain->triclinic; @@ -246,6 +257,8 @@ void FixChargeRegulation::init() { } } +/* ---------------------------------------------------------------------- */ + void FixChargeRegulation::pre_exchange() { if (next_reneighbor != update->ntimestep) return; @@ -372,6 +385,8 @@ void FixChargeRegulation::pre_exchange() { next_reneighbor = update->ntimestep + nevery; } +/* ---------------------------------------------------------------------- */ + void FixChargeRegulation::forward_acid() { double energy_before = energy_stored; @@ -429,17 +444,16 @@ void FixChargeRegulation::forward_acid() { } } +/* ---------------------------------------------------------------------- */ + void FixChargeRegulation::backward_acid() { double energy_before = energy_stored; double factor; int mask_tmp; - double dummyp[3]; - double pos[3]; - pos[0] = 0; - pos[1] = 0; - pos[2] = 0; // acid/base particle position - double pos_all[3]; + double dummyp[3] = {0.0, 0.0, 0.0}; + double pos[3] = {0.0, 0.0, 0.0}; // acid/base particle position + double pos_all[3] = {0.0, 0.0, 0.0}; int m1 = -1, m2 = -1; m1 = get_random_particle(acid_type, -1, 0, dummyp); @@ -507,16 +521,15 @@ void FixChargeRegulation::backward_acid() { } } +/* ---------------------------------------------------------------------- */ + void FixChargeRegulation::forward_base() { double energy_before = energy_stored; double factor; - double dummyp[3]; - double pos[3]; - pos[0] = 0; - pos[1] = 0; - pos[2] = 0; // acid/base particle position - double pos_all[3]; + double dummyp[3] = {0.0, 0.0, 0.0}; + double pos[3] = {0.0, 0.0, 0.0}; // acid/base particle position + double pos_all[3] = {0.0, 0.0, 0.0}; int m1 = -1, m2 = -1; m1 = get_random_particle(base_type, 0, 0, dummyp); @@ -567,17 +580,16 @@ void FixChargeRegulation::forward_base() { } } +/* ---------------------------------------------------------------------- */ + void FixChargeRegulation::backward_base() { double energy_before = energy_stored; double factor; - double dummyp[3]; + double dummyp[3] = {0.0, 0.0, 0.0}; + double pos[3] = {0.0, 0.0, 0.0}; // acid/base particle position + double pos_all[3] = {0.0, 0.0, 0.0}; int mask_tmp; - double pos[3]; - pos[0] = 0; - pos[1] = 0; - pos[2] = 0; // acid/base particle position - double pos_all[3]; int m1 = -1, m2 = -1; m1 = get_random_particle(base_type, 1, 0, dummyp); @@ -644,11 +656,13 @@ void FixChargeRegulation::backward_base() { } } +/* ---------------------------------------------------------------------- */ + void FixChargeRegulation::forward_ions() { double energy_before = energy_stored; double factor; - double dummyp[3]; + double dummyp[3] = {0.0, 0.0, 0.0}; int m1 = -1, m2 = -1; factor = volume_rx * volume_rx * c10pI_plus * c10pI_minus / ((1 + ncation) * (1 + nanion)); @@ -679,13 +693,14 @@ void FixChargeRegulation::forward_ions() { } } +/* ---------------------------------------------------------------------- */ void FixChargeRegulation::backward_ions() { double energy_before = energy_stored; double factor; int mask1_tmp = 0, mask2_tmp = 0; - double dummyp[3]; + double dummyp[3] = {0.0, 0.0, 0.0}; int m1 = -1, m2 = -1; m1 = get_random_particle(cation_type, +1, 0, dummyp); @@ -761,11 +776,13 @@ void FixChargeRegulation::backward_ions() { } } +/* ---------------------------------------------------------------------- */ + void FixChargeRegulation::forward_ions_multival() { double energy_before = energy_stored; double factor = 1; - double dummyp[3]; + double dummyp[3] = {0.0, 0.0, 0.0}; // particle ID array for all ions to be inserted auto mm = std::unique_ptr(new int[salt_charge_ratio + 1]); @@ -819,11 +836,13 @@ void FixChargeRegulation::forward_ions_multival() { } } +/* ---------------------------------------------------------------------- */ + void FixChargeRegulation::backward_ions_multival() { double energy_before = energy_stored; double factor = 1; - double dummyp[3]; // dummy particle + double dummyp[3] = {0.0, 0.0, 0.0}; // dummy particle // particle ID array for all deleted ions auto mm = std::unique_ptr(new int[salt_charge_ratio + 1]); // charge array for all deleted ions @@ -940,6 +959,8 @@ void FixChargeRegulation::backward_ions_multival() { } } +/* ---------------------------------------------------------------------- */ + int FixChargeRegulation::insert_particle(int ptype, double charge, double rd, double *target) { // insert a particle of type (ptype) with charge (charge) within distance (rd) of (target) @@ -1010,6 +1031,8 @@ int FixChargeRegulation::insert_particle(int ptype, double charge, double rd, do return m; } +/* ---------------------------------------------------------------------- */ + int FixChargeRegulation::get_random_particle(int ptype, double charge, double rd, double *target) { // returns a randomly chosen particle of type (ptype) with charge (charge) @@ -1074,6 +1097,8 @@ int FixChargeRegulation::get_random_particle(int ptype, double charge, double rd return -1; } +/* ---------------------------------------------------------------------- */ + double FixChargeRegulation::energy_full() { if (triclinic) domain->x2lamda(atom->nlocal); domain->pbc(); @@ -1133,6 +1158,8 @@ double FixChargeRegulation::energy_full() { return total_energy; } +/* ---------------------------------------------------------------------- */ + int FixChargeRegulation::particle_number_xrd(int ptype, double charge, double rd, double *target) { int count = 0; @@ -1162,6 +1189,8 @@ int FixChargeRegulation::particle_number_xrd(int ptype, double charge, double rd return count_sum; } +/* ---------------------------------------------------------------------- */ + int FixChargeRegulation::particle_number(int ptype, double charge) { int count = 0; @@ -1174,6 +1203,8 @@ int FixChargeRegulation::particle_number(int ptype, double charge) { return count_sum; } +/* ---------------------------------------------------------------------- */ + double FixChargeRegulation::compute_vector(int n) { if (n == 0) { return nacid_attempts + nbase_attempts + nsalt_attempts; @@ -1250,6 +1281,8 @@ void FixChargeRegulation::restart(char *buf) error->all(FLERR,"Must not reset timestep when restarting fix gcmc"); } +/* ---------------------------------------------------------------------- */ + void FixChargeRegulation::setThermoTemperaturePointer() { int ifix = -1; ifix = modify->find_fix(idftemp); @@ -1263,6 +1296,8 @@ void FixChargeRegulation::setThermoTemperaturePointer() { } +/* ---------------------------------------------------------------------- */ + void FixChargeRegulation::assign_tags() { // Assign tags to ions with zero tags if (atom->tag_enable) { From 24fd02725ce8fa456f840556ecf3cc87d2ef08c0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Sep 2022 13:21:33 -0400 Subject: [PATCH 29/35] make operator precedence explicit --- src/KSPACE/ewald_disp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KSPACE/ewald_disp.cpp b/src/KSPACE/ewald_disp.cpp index cff419de76..d5ebc4dd36 100644 --- a/src/KSPACE/ewald_disp.cpp +++ b/src/KSPACE/ewald_disp.cpp @@ -398,7 +398,7 @@ void EwaldDisp::reallocate() h[0] = unit[0]*ix; h[1] = unit[5]*ix+unit[1]*iy; h[2] = unit[4]*ix+unit[3]*iy+unit[2]*iz; - if ((*(flag++) = h[0]*h[0]+h[1]*h[1]+h[2]*h[2]<=gsqmx)) ++nkvec; + if ((*(flag++) = (h[0]*h[0]+h[1]*h[1]+h[2]*h[2]<=gsqmx))) ++nkvec; } if (nkvec>nkvec_max) { From 3c5e44616572d1682de20ace65edf29af5937af1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 22 Sep 2022 13:21:54 -0400 Subject: [PATCH 30/35] avoid null pointer dereference --- src/atom.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/atom.cpp b/src/atom.cpp index f66570e57b..3d843cbbbc 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -779,9 +779,11 @@ std::string Atom::get_style() std::string retval = atom_style; if (retval == "hybrid") { auto avec_hybrid = dynamic_cast(avec); - for (int i = 0; i < avec_hybrid->nstyles; i++) { - retval += ' '; - retval += avec_hybrid->keywords[i]; + if (avec_hybrid) { + for (int i = 0; i < avec_hybrid->nstyles; i++) { + retval += ' '; + retval += avec_hybrid->keywords[i]; + } } } return retval; From 6532640362cd7b2a38b9d9f023f3574cfe17cb4e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 23 Sep 2022 10:23:32 -0400 Subject: [PATCH 31/35] spelling --- doc/src/Fortran.rst | 6 +++--- doc/utils/sphinx-config/false_positives.txt | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/src/Fortran.rst b/doc/src/Fortran.rst index 28436c813f..b9c1d24ad9 100644 --- a/doc/src/Fortran.rst +++ b/doc/src/Fortran.rst @@ -330,7 +330,7 @@ Procedures Bound to the lammps Derived Type Note that a frequent use case of this function is to extract only one or more of the options rather than all seven. For example, assuming "lmp" - represents a properly-initalized LAMMPS instance, the following code will + represents a properly-initialized LAMMPS instance, the following code will extract the periodic box settings into the variable "periodic": .. code-block:: Fortran @@ -378,7 +378,7 @@ Procedures Bound to the lammps Derived Type .. note:: The C library interface currently returns type "int" instead of type - "MPI_Fint", which is the C type correspending to Fortran "INTEGER" + "MPI_Fint", which is the C type corresponding to Fortran "INTEGER" types of the default kind. On most compilers, these are the same anyway, but this interface exchanges values this way to avoid warning messages. @@ -465,7 +465,7 @@ Procedures Bound to the lammps Derived Type :p character(len=\*) name: string with the name of the extracted property :r polymorphic: pointer to LAMMPS data. The left-hand side of the assignment - should be either a string (if expecting string data) or a C-interoperable + should be either a string (if expecting string data) or a C-compatible pointer (e.g., ``INTEGER (c_int), POINTER :: nlocal``) to the extracted property. If expecting vector data, the pointer should have dimension ":". diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 15316b4f09..937836a9b9 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1081,6 +1081,7 @@ filesystems Fily Fincham Finchham +Fint fingerprintconstants fingerprintsperelement Finnis From 2a14397318db438df4600241d54ec31ed0edcdd6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 23 Sep 2022 10:41:21 -0400 Subject: [PATCH 32/35] fix broken link --- doc/src/Fortran.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Fortran.rst b/doc/src/Fortran.rst index b9c1d24ad9..aa599a3dbd 100644 --- a/doc/src/Fortran.rst +++ b/doc/src/Fortran.rst @@ -122,8 +122,8 @@ Executing LAMMPS commands Once a LAMMPS instance is created, it is possible to "drive" the LAMMPS simulation by telling LAMMPS to read commands from a file or to pass individual or multiple commands from strings or lists of strings. This -is done similarly to how it is implemented in the `C-library -` interface. Before handing off the calls to the +is done similarly to how it is implemented in the :doc:`C-library +interface `. Before handing off the calls to the C-library interface, the corresponding Fortran versions of the calls (:f:func:`file`, :f:func:`command`, :f:func:`commands_list`, and :f:func:`commands_string`) have to make a copy of the strings passed as From d9e2be4b75a112d65fc4af1b9f1eb82dc687d695 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 23 Sep 2022 12:41:31 -0400 Subject: [PATCH 33/35] updates to the fortran module docs to make it more consistent, fix links, add example similar to C library docs --- doc/src/Fortran.rst | 185 +++++++++++++------- doc/src/Library_properties.rst | 30 ++-- doc/utils/sphinx-config/false_positives.txt | 1 + 3 files changed, 142 insertions(+), 74 deletions(-) diff --git a/doc/src/Fortran.rst b/doc/src/Fortran.rst index aa599a3dbd..2dd04439a1 100644 --- a/doc/src/Fortran.rst +++ b/doc/src/Fortran.rst @@ -3,7 +3,9 @@ The ``LIBLAMMPS`` Fortran Module The ``LIBLAMMPS`` module provides an interface to call LAMMPS from a Fortran code. It is based on the LAMMPS C-library interface and -requires a Fortran 2003 compatible compiler to be compiled. +requires a Fortran 2003 compatible compiler to be compiled. It is +designed to be self-contained and not require any support functions +written in C, C++, or Fortran. While C libraries have a defined binary interface (ABI) and can thus be used from multiple compiler versions from different vendors for as long @@ -19,12 +21,20 @@ for a simple program using the Fortran interface would be: mpifort -o testlib.x lammps.f90 testlib.f90 -L. -llammps Please note, that the MPI compiler wrapper is only required when the -calling the library from an MPI parallel code. Please also note the -order of the source files: the ``lammps.f90`` file needs to be compiled -first, since it provides the ``LIBLAMMPS`` module that is imported by -the Fortran code using the interface. A working example code can be -found together with equivalent examples in C and C++ in the -``examples/COUPLE/simple`` folder of the LAMMPS distribution. +calling the library from an MPI parallel code. Otherwise, using the +fortran compiler (gfortran, ifort, flang, etc.) will suffice. It may be +necessary to link to additional libraries depending on how LAMMPS was +configured and whether the LAMMPS library :doc:`was compiled as a static +or shared library `. + +If the LAMMPS library itself has been compiled with MPI support, the +resulting executable will still be able to run LAMMPS in parallel with +``mpirun`` or equivalent. Please also note that the order of the source +files matters: the ``lammps.f90`` file needs to be compiled first, since +it provides the ``LIBLAMMPS`` module that is imported by the Fortran +code using the interface. A working example code can be found together +with equivalent examples in C and C++ in the ``examples/COUPLE/simple`` +folder of the LAMMPS distribution. .. versionadded:: 9Oct2020 @@ -57,9 +67,10 @@ LIBLAMMPS`` statement. Internally it will call either :cpp:func:`lammps_open_fortran` or :cpp:func:`lammps_open_no_mpi` from the C library API to create the class instance. All arguments are optional and :cpp:func:`lammps_mpi_init` will be called automatically, -if it is needed. Similarly, a possible call to :cpp:func:`lammps_finalize` -is integrated into the :f:func:`close` function and triggered with -the optional logical argument set to ``.true.``. Here is a simple example: +if it is needed. Similarly, a possible call to +:cpp:func:`lammps_mpi_finalize` is integrated into the :f:func:`close` +function and triggered with the optional logical argument set to +``.true.``. Here is a simple example: .. code-block:: fortran @@ -81,10 +92,10 @@ the optional logical argument set to ``.true.``. Here is a simple example: It is also possible to pass command line flags from Fortran to C/C++ and thus make the resulting executable behave similarly to the standalone -executable (it will ignore the `-in/-i` flag, though). This allows one to -use the command line to configure accelerator and suffix settings, +executable (it will ignore the `-in/-i` flag, though). This allows +using the command line to configure accelerator and suffix settings, configure screen and logfile output, or to set index style variables -from the command line and more. Here is a correspondingly adapted +from the command line and more. Here is a correspondingly adapted version of the previous example: .. code-block:: fortran @@ -165,6 +176,57 @@ Below is a small demonstration of the uses of the different functions: --------------- +Accessing system properties +=========================== + +The C-library interface allows the :doc:`extraction of different kinds +of information ` about the active simulation +instance and also - in some cases - to apply modifications to it. In +some cases, the C-library interface makes pointers to internal data +structures accessible, thus when accessing them from Fortran, special +care is needed to avoid data corruption and crashes. Thus please see +the documentation of the individual type bound procedures for details. + +Below is an example demonstrating some of the possible uses. + +.. code-block:: fortran + + PROGRAM testprop + USE LIBLAMMPS + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_double, c_int64_t + TYPE(lammps) :: lmp + INTEGER(kind=8) :: natoms + REAL(c_double), POINTER :: dt + INTEGER(c_int64_t), POINTER :: ntimestep + REAL(kind=8) :: pe, ke + + lmp = lammps() + CALL lmp%file('in.sysinit') + natoms = INT(lmp%get_natoms(),8) + WRITE(6,'(A,I8,A)') 'Running a simulation with', natoms, ' atoms' + WRITE(6,'(I8,A,I8,A,I3,A)') lmp%extract_setting('nlocal'), ' local and', & + lmp%extract_setting('nghost'), ' ghost atom. ', & + lmp%extract_setting('ntypes'), ' atom types' + + CALL lmp%command('run 2 post no') + dt = lmp%extract_global('dt') + ntimestep = lmp%extract_global('ntimestep') + WRITE(6,'(A,I4,A,F4.1,A)') 'At step:', ntimestep, ' Changing timestep from', dt, ' to 0.5' + dt = 0.5 + CALL lmp%command('run 2 post no') + + WRITE(6,'(A,I4)') 'At step:', ntimestep + pe = lmp%get_thermo('pe') + ke = lmp%get_thermo('ke') + PRINT*, 'PE = ', pe + PRINT*, 'KE = ', ke + + CALL lmp%close(.TRUE.) + + END PROGRAM testprop + +--------------- + The ``LIBLAMMPS`` module API **************************** @@ -292,7 +354,7 @@ Procedures Bound to the lammps Derived Type This function will call :cpp:func:`lammps_get_natoms` and return the number of atoms in the system. - :r real(C_double): number of atoms + :r real(c_double): number of atoms -------- @@ -302,16 +364,17 @@ Procedures Bound to the lammps Derived Type of the corresponding thermodynamic keyword. :p character(len=\*) name: string with the name of the thermo keyword - :r real(C_double): value of the requested thermo property or 0.0_C_double + :r real(c_double): value of the requested thermo property or `0.0_c_double` -------- .. f:subroutine:: extract_box([boxlo][, boxhi][, xy][, yz][, xz][, pflags][, boxflag]) - This subroutine will call :cpp:func:`lammps_extract_box`. All parameters - are optional, though obviously at least one should be present. The - parameters *pflags* and *boxflag* are stored in LAMMPS as integers, but - should be declared as ``LOGICAL`` variables when calling from Fortran. + This subroutine will call :cpp:func:`lammps_extract_box`. All + parameters are optional, though obviously at least one should be + present. The parameters *pflags* and *boxflag* are stored in LAMMPS + as integers, but should be declared as ``LOGICAL`` variables when + calling from Fortran. :o real(c_double) boxlo [dimension(3),optional]: vector in which to store lower-bounds of simulation box @@ -377,17 +440,18 @@ Procedures Bound to the lammps Derived Type .. note:: - The C library interface currently returns type "int" instead of type - "MPI_Fint", which is the C type corresponding to Fortran "INTEGER" - types of the default kind. On most compilers, these are the same anyway, - but this interface exchanges values this way to avoid warning messages. + The C library interface currently returns type ``int`` instead of + type ``MPI_Fint``, which is the C type corresponding to Fortran + ``INTEGER`` types of the default kind. On most compilers, these + are the same anyway, but this interface exchanges values this way + to avoid warning messages. .. note:: - The MPI_F08 module, which defines Fortran 2008 bindings for MPI, is not - directly supported by this function. However, you should be able to - convert between the two using the MPI_VAL member of the communicator. - For example, + The `MPI_F08` module, which defines Fortran 2008 bindings for MPI, + is not directly supported by this function. However, you should be + able to convert between the two using the `MPI_VAL` member of the + communicator. For example, .. code-block:: fortran @@ -398,14 +462,14 @@ Procedures Bound to the lammps Derived Type ! ... [commands to set up LAMMPS/etc.] comm%MPI_VAL = lmp%get_mpi_comm() - should assign an MPI_F08 communicator properly. + should assign an `MPI_F08` communicator properly. -------- .. f:function:: extract_setting(keyword) Query LAMMPS about global settings. See the documentation for the - :c:func:`lammps_extract_setting` function from the C library. + :cpp:func:`lammps_extract_setting` function from the C library. :p character(len=\*) keyword: string containing the name of the thermo keyword :r integer(c_int): value of the queried setting or :math:`-1` if unknown @@ -414,35 +478,36 @@ Procedures Bound to the lammps Derived Type .. f:function:: extract_global(name) - This function calls :c:func:`lammps_extract_global` and returns either a - string or a pointer to internal global LAMMPS data, depending on the data - requested through *name*. + This function calls :cpp:func:`lammps_extract_global` and returns + either a string or a pointer to internal global LAMMPS data, + depending on the data requested through *name*. Note that this function actually does not return a value, but rather - associates the pointer on the left side of the assignment to point - to internal LAMMPS data (with the exception of string data, which are - copied and returned as ordinary Fortran strings). Pointers must be of the - correct data type to point to said data (typically INTEGER(c_int), - INTEGER(c_int64_t), or REAL(c_double)) and have compatible kind and rank. - The pointer being associated with LAMMPS data is type-, kind-, and - rank-checked at run-time via an overloaded assignment operator. - The pointers returned by this function are generally persistent; therefore - it is not necessary to call the function again, unless a :doc:`clear` - command has been issued, which wipes out and recreates the contents of - the :cpp:class:`LAMMPS ` class. + associates the pointer on the left side of the assignment to point to + internal LAMMPS data (with the exception of string data, which are + copied and returned as ordinary Fortran strings). Pointers must be of + the correct data type to point to said data (typically + ``INTEGER(c_int)``, ``INTEGER(c_int64_t)``, or ``REAL(c_double)``) + and have compatible kind and rank. The pointer being associated with + LAMMPS data is type-, kind-, and rank-checked at run-time via an + overloaded assignment operator. The pointers returned by this + function are generally persistent; therefore it is not necessary to + call the function again, unless a :doc:`clear` command has been + issued, which wipes out and recreates the contents of the + :cpp:class:`LAMMPS ` class. For example, .. code-block:: fortran PROGRAM demo - USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_int64_t + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int64_t USE LIBLAMMPS TYPE(lammps) :: lmp - INTEGER(C_int), POINTER :: nlocal - INTEGER(C_int64_t), POINTER :: ntimestep + INTEGER(c_int), POINTER :: nlocal + INTEGER(c_int64_t), POINTER :: ntimestep CHARACTER(LEN=10) :: units - REAL(C_double), POINTER :: dt + REAL(c_double), POINTER :: dt lmp = lammps() ! other commands nlocal = lmp%extract_global('nlocal') @@ -457,11 +522,13 @@ Procedures Bound to the lammps Derived Type the size of the current time step, and the units being used into the variables *nlocal*, *ntimestep*, *dt*, and *units*, respectively. - *Note*: if this function returns a string, the string must have - length greater than or equal to the length of the string (not including the - terminal NULL character) that LAMMPS returns. If the variable's length is - too short, the string will be truncated. As usual in Fortran, strings - are padded with spaces at the end. + .. note:: + + if this function returns a string, the string must have + length greater than or equal to the length of the string (not including the + terminal NULL character) that LAMMPS returns. If the variable's length is + too short, the string will be truncated. As usual in Fortran, strings + are padded with spaces at the end. :p character(len=\*) name: string with the name of the extracted property :r polymorphic: pointer to LAMMPS data. The left-hand side of the assignment @@ -469,11 +536,11 @@ Procedures Bound to the lammps Derived Type pointer (e.g., ``INTEGER (c_int), POINTER :: nlocal``) to the extracted property. If expecting vector data, the pointer should have dimension ":". - .. warning:: +.. warning:: - Modifying the data in the location pointed to by the returned pointer - may lead to inconsistent internal data and thus may cause failures or - crashes or bogus simulations. In general it is thus usually better - to use a LAMMPS input command that sets or changes these parameters. - Those will take care of all side effects and necessary updates of - settings derived from such settings. + Modifying the data in the location pointed to by the returned pointer + may lead to inconsistent internal data and thus may cause failures or + crashes or bogus simulations. In general it is thus usually better + to use a LAMMPS input command that sets or changes these parameters. + Those will take care of all side effects and necessary updates of + settings derived from such settings. diff --git a/doc/src/Library_properties.rst b/doc/src/Library_properties.rst index e023c78185..a5c9c79c64 100644 --- a/doc/src/Library_properties.rst +++ b/doc/src/Library_properties.rst @@ -15,21 +15,21 @@ This section documents the following functions: -------------------- -The library interface allows extraction of different kinds of -information about the active simulation instance and also -modifications to it. This enables combining of a LAMMPS simulation -with other processing and simulation methods computed by the calling -code, or by another code that is coupled to LAMMPS via the library -interface. In some cases the data returned is direct reference to the -original data inside LAMMPS, cast to a void pointer. In that case the -data needs to be cast to a suitable pointer for the calling program to -access it, and you may need to know the correct dimensions and -lengths. This also means you can directly change those value(s) from -the calling program, e.g. to modify atom positions. Of course, this -should be done with care. When accessing per-atom data, please note -that this data is the per-processor **local** data and is indexed -accordingly. Per-atom data can change sizes and ordering at every -neighbor list rebuild or atom sort event as atoms migrate between +The library interface allows the extraction of different kinds of +information about the active simulation instance and also - in some +cases - to apply modifications to it. This enables combining of a +LAMMPS simulation with other processing and simulation methods computed +by the calling code, or by another code that is coupled to LAMMPS via +the library interface. In some cases the data returned is direct +reference to the original data inside LAMMPS, cast to a void pointer. +In that case the data needs to be cast to a suitable pointer for the +calling program to access it, and you may need to know the correct +dimensions and lengths. This also means you can directly change those +value(s) from the calling program, e.g. to modify atom positions. Of +course, this should be done with care. When accessing per-atom data, +please note that this data is the per-processor **local** data and is +indexed accordingly. Per-atom data can change sizes and ordering at +every neighbor list rebuild or atom sort event as atoms migrate between sub-domains and processors. .. code-block:: C diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 937836a9b9..aba474d257 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1094,6 +1094,7 @@ flagHI flaglog flagN flagVF +flang fld floralwhite Florez From 86d1aacf7ed750bda61b2917dd42fc7067ec4184 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 23 Sep 2022 16:28:15 -0400 Subject: [PATCH 34/35] add function to dispatch LAMMPS errors to library interfaces --- doc/src/Fortran.rst | 17 +++++++- doc/src/Library_create.rst | 6 +++ fortran/lammps.f90 | 52 ++++++++++++++---------- python/lammps/constants.py | 44 +++++++++++--------- python/lammps/core.py | 26 +++++++++++- src/library.cpp | 83 ++++++++++++++++++++++++++++++++++++++ src/library.h | 14 +++++++ 7 files changed, 197 insertions(+), 45 deletions(-) diff --git a/doc/src/Fortran.rst b/doc/src/Fortran.rst index 2dd04439a1..e15555bc4e 100644 --- a/doc/src/Fortran.rst +++ b/doc/src/Fortran.rst @@ -128,7 +128,7 @@ version of the previous example: -------------------- Executing LAMMPS commands -========================= +************************* Once a LAMMPS instance is created, it is possible to "drive" the LAMMPS simulation by telling LAMMPS to read commands from a file or to pass @@ -177,7 +177,7 @@ Below is a small demonstration of the uses of the different functions: --------------- Accessing system properties -=========================== +*************************** The C-library interface allows the :doc:`extraction of different kinds of information ` about the active simulation @@ -241,6 +241,7 @@ of the contents of the ``LIBLAMMPS`` Fortran interface to LAMMPS. :f c_ptr handle: reference to the LAMMPS class :f subroutine close: :f:func:`close` + :f subroutine error: :f:func:`error` :f function version: :f:func:`version` :f subroutine file: :f:func:`file` :f subroutine command: :f:func:`command` @@ -305,6 +306,18 @@ Procedures Bound to the lammps Derived Type -------- +.. f:subroutine:: error(error_type, error_text) + + This method is a wrapper around the :cpp:func:`lammps_error` function and will dispatch + an error through the LAMMPS Error class. + + .. versionadded:: TBD + + :p integer error_type: constant to select which Error class function to call + :p character(len=\*) error_text: error message + +-------- + .. f:function:: version() This method returns the numeric LAMMPS version like :cpp:func:`lammps_version` diff --git a/doc/src/Library_create.rst b/doc/src/Library_create.rst index 8043819891..8ccc2e80ce 100644 --- a/doc/src/Library_create.rst +++ b/doc/src/Library_create.rst @@ -11,6 +11,7 @@ This section documents the following functions: - :cpp:func:`lammps_mpi_finalize` - :cpp:func:`lammps_kokkos_finalize` - :cpp:func:`lammps_python_finalize` +- :cpp:func:`lammps_error` -------------------- @@ -115,3 +116,8 @@ calling program. .. doxygenfunction:: lammps_python_finalize :project: progguide + +----------------------- + +.. doxygenfunction:: lammps_error + :project: progguide diff --git a/fortran/lammps.f90 b/fortran/lammps.f90 index 7541bf7c0f..98378c833a 100644 --- a/fortran/lammps.f90 +++ b/fortran/lammps.f90 @@ -56,6 +56,7 @@ MODULE LIBLAMMPS TYPE(c_ptr) :: handle CONTAINS PROCEDURE :: close => lmp_close + PROCEDURE :: error => lmp_error PROCEDURE :: file => lmp_file PROCEDURE :: command => lmp_command PROCEDURE :: commands_list => lmp_commands_list @@ -144,6 +145,14 @@ MODULE LIBLAMMPS SUBROUTINE lammps_kokkos_finalize() BIND(C) END SUBROUTINE lammps_kokkos_finalize + SUBROUTINE lammps_error(handle, error_type, error_text) BIND(C) + IMPORT :: c_ptr, c_int + IMPLICIT NONE + TYPE(c_ptr), VALUE :: handle + INTEGER(c_int), VALUE :: error_type + TYPE(c_ptr), VALUE :: error_text + END SUBROUTINE lammps_error + SUBROUTINE lammps_file(handle, filename) BIND(C) IMPORT :: c_ptr IMPLICIT NONE @@ -417,6 +426,18 @@ CONTAINS END IF END SUBROUTINE lmp_close + ! equivalent function to lammps_error() + SUBROUTINE lmp_error(self, error_type, error_text) + CLASS(lammps) :: self + INTEGER :: error_type + CHARACTER(len=*) :: error_text + TYPE(c_ptr) :: str + + str = f2c_string(error_text) + CALL lammps_error(self%handle, error_type, str) + CALL lammps_free(str) + END SUBROUTINE lmp_error + ! equivalent function to lammps_file() SUBROUTINE lmp_file(self, filename) CLASS(lammps) :: self @@ -492,7 +513,7 @@ CONTAINS END FUNCTION lmp_get_thermo ! equivalent subroutine to lammps_extract_box - SUBROUTINE lmp_extract_box (self, boxlo, boxhi, xy, yz, xz, pflags, boxflag) + SUBROUTINE lmp_extract_box(self, boxlo, boxhi, xy, yz, xz, pflags, boxflag) CLASS(lammps), INTENT(IN) :: self REAL(c_double), INTENT(OUT), TARGET, OPTIONAL :: boxlo(3), boxhi(3) REAL(c_double), INTENT(OUT), TARGET, OPTIONAL :: xy, yz, xz @@ -515,11 +536,11 @@ CONTAINS END SUBROUTINE lmp_extract_box ! equivalent function to lammps_reset_box - SUBROUTINE lmp_reset_box (self, boxlo, boxhi, xy, yz, xz) + SUBROUTINE lmp_reset_box(self, boxlo, boxhi, xy, yz, xz) CLASS(lammps), INTENT(IN) :: self REAL(C_double), INTENT(IN) :: boxlo(3), boxhi(3), xy, yz, xz - CALL lammps_reset_box (self%handle, boxlo, boxhi, xy, yz, xz) + CALL lammps_reset_box(self%handle, boxlo, boxhi, xy, yz, xz) END SUBROUTINE lmp_reset_box ! equivalent function to lammps_memory_usage @@ -532,14 +553,14 @@ CONTAINS END SUBROUTINE lmp_memory_usage ! equivalent function to lammps_get_mpi_comm - INTEGER FUNCTION lmp_get_mpi_comm (self) + INTEGER FUNCTION lmp_get_mpi_comm(self) CLASS(lammps), INTENT(IN) :: self lmp_get_mpi_comm = lammps_get_mpi_comm(self%handle) END FUNCTION lmp_get_mpi_comm ! equivalent function to lammps_extract_setting - INTEGER (c_int) FUNCTION lmp_extract_setting (self, keyword) + INTEGER (c_int) FUNCTION lmp_extract_setting(self, keyword) CLASS(lammps), INTENT(IN) :: self CHARACTER(LEN=*), INTENT(IN) :: keyword TYPE(c_ptr) :: Ckeyword @@ -549,22 +570,10 @@ CONTAINS CALL lammps_free(Ckeyword) END FUNCTION lmp_extract_setting -! FIXME Do we need this to be visible to the user? -! ! equivalent function to lammps_extract_global_datatype -! INTEGER (c_int) FUNCTION lmp_extract_global_datatype (name) -! CHARACTER(LEN=*), INTENT(IN) :: name -! TYPE(c_ptr) :: Cname -! -! Cname = f2c_string(name) -! lmp_extract_global_datatype -! = lammps_extract_global_datatype(c_null_ptr, Cname) -! CALL lammps_free(Cname) -! END FUNCTION lmp_extract_global_datatype - ! equivalent function to lammps_extract_global ! the assignment is actually overloaded so as to bind the pointers to ! lammps data based on the information available from LAMMPS - FUNCTION lmp_extract_global (self, name) RESULT (global_data) + FUNCTION lmp_extract_global(self, name) RESULT (global_data) CLASS(lammps), INTENT(IN) :: self CHARACTER(LEN=*), INTENT(IN) :: name TYPE(lammps_data) :: global_data @@ -625,10 +634,9 @@ CONTAINS FORALL ( I=1:length ) global_data%str(i:i) = Fptr(i) END FORALL - CASE DEFAULT - WRITE(ERROR_UNIT,'(A)') 'ERROR: Unknown pointer type in& - & extract_global' - STOP 2 + CASE DEFAULT + ! FIXME convert to use symbolic constants later + CALL lmp_error(self, 6, 'Unknown pointer type in extract_global') END SELECT END FUNCTION diff --git a/python/lammps/constants.py b/python/lammps/constants.py index a50d58b28f..26bb92626a 100644 --- a/python/lammps/constants.py +++ b/python/lammps/constants.py @@ -13,29 +13,35 @@ # various symbolic constants to be used # in certain calls to select data formats -LAMMPS_AUTODETECT = None -LAMMPS_INT = 0 -LAMMPS_INT_2D = 1 -LAMMPS_DOUBLE = 2 -LAMMPS_DOUBLE_2D = 3 -LAMMPS_INT64 = 4 -LAMMPS_INT64_2D = 5 -LAMMPS_STRING = 6 +LAMMPS_AUTODETECT = None +LAMMPS_INT = 0 +LAMMPS_INT_2D = 1 +LAMMPS_DOUBLE = 2 +LAMMPS_DOUBLE_2D = 3 +LAMMPS_INT64 = 4 +LAMMPS_INT64_2D = 5 +LAMMPS_STRING = 6 # these must be kept in sync with the enums in library.h -LMP_STYLE_GLOBAL = 0 -LMP_STYLE_ATOM = 1 -LMP_STYLE_LOCAL = 2 +LMP_STYLE_GLOBAL = 0 +LMP_STYLE_ATOM = 1 +LMP_STYLE_LOCAL = 2 -LMP_TYPE_SCALAR = 0 -LMP_TYPE_VECTOR = 1 -LMP_TYPE_ARRAY = 2 -LMP_SIZE_VECTOR = 3 -LMP_SIZE_ROWS = 4 -LMP_SIZE_COLS = 5 +LMP_TYPE_SCALAR = 0 +LMP_TYPE_VECTOR = 1 +LMP_TYPE_ARRAY = 2 +LMP_SIZE_VECTOR = 3 +LMP_SIZE_ROWS = 4 +LMP_SIZE_COLS = 5 -LMP_VAR_EQUAL = 0 -LMP_VAR_ATOM = 1 +LMP_ERROR_WARNING = 0 +LMP_ERROR_ONE = 1 +LMP_ERROR_ALL = 2 +LMP_ERROR_WORLD = 4 +LMP_ERROR_UNIVERSE = 8 + +LMP_VAR_EQUAL = 0 +LMP_VAR_ATOM = 1 # ------------------------------------------------------------------------- diff --git a/python/lammps/core.py b/python/lammps/core.py index 930a40a4b0..aa4aae13db 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -167,6 +167,8 @@ class lammps(object): self.lib.lammps_flush_buffers.argtypes = [c_void_p] self.lib.lammps_free.argtypes = [c_void_p] + self.lib.lammps_error.argtypes = [c_void_p, c_int, c_char_p] + self.lib.lammps_file.argtypes = [c_void_p, c_char_p] self.lib.lammps_file.restype = None @@ -486,6 +488,26 @@ class lammps(object): # ------------------------------------------------------------------------- + def error(self, error_type, error_text): + """Forward error to the LAMMPS Error class. + + This is a wrapper around the :cpp:func:`lammps_error` function of the C-library interface. + + .. versionadded:: TBD + + :param error_type: + :type error_type: int + :param error_text: + :type error_text: string + """ + if error_text: error_text = error_text.encode() + else: error_text = "(unknown error)".encode() + + with ExceptionCheck(self): + self.lib.lammps_error(self.lmp, error_type, error_text) + + # ------------------------------------------------------------------------- + def version(self): """Return a numerical representation of the LAMMPS version in use. @@ -1622,8 +1644,8 @@ class lammps(object): """Return a string with detailed information about any devices that are usable by the GPU package. - This is a wrapper around the :cpp:func:`lammps_get_gpu_device_info` - function of the C-library interface. + This is a wrapper around the :cpp:func:`lammps_get_gpu_device_info` + function of the C-library interface. :return: GPU device info string :rtype: string diff --git a/src/library.cpp b/src/library.cpp index 8fa8b4c17b..cc547106f2 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -416,6 +416,89 @@ void lammps_python_finalize() Python::finalize(); } + +/* ---------------------------------------------------------------------- */ + +/** Call a LAMMPS Error class function + * +\verbatim embed:rst + +This function is a wrapper around functions in the ``Error`` to print an +error message and then stop LAMMPS. + +The *error_type* parameter selects which function to call. It is a sum +of constants from :cpp:enum:`_LMP_ERROR_CONST`. If the value does not +match any valid combination of constants a warning is printed and the +function returns. + +.. versionadded:: TBD + +\endverbatim + * + * \param handle pointer to a previously created LAMMPS instance + * \param error_type parameter to select function in the Error class + * \param error_text error message */ + +void lammps_error(void *handle, int error_type, const char *error_text) +{ + auto lmp = (LAMMPS *) handle; + + BEGIN_CAPTURE + { + switch (error_type) { + case LMP_ERROR_WARNING: + lmp->error->warning("(library)", 0, error_text); + break; + case LMP_ERROR_ONE: + lmp->error->one("(library)", 0, error_text); + break; + case LMP_ERROR_ALL: + lmp->error->all("(library)", 0, error_text); + break; + case LMP_ERROR_WARNING|LMP_ERROR_WORLD: + lmp->error->warning("(library)", 0, error_text); + break; + case LMP_ERROR_ONE|LMP_ERROR_WORLD: + lmp->error->one("(library)", 0, error_text); + break; + case LMP_ERROR_ALL|LMP_ERROR_WORLD: + lmp->error->all("(library)", 0, error_text); + break; + case LMP_ERROR_WARNING|LMP_ERROR_UNIVERSE: + lmp->error->universe_warn("(library)", 0, error_text); + break; + case LMP_ERROR_ONE|LMP_ERROR_UNIVERSE: + lmp->error->universe_one("(library)", 0, error_text); + break; + case LMP_ERROR_ALL|LMP_ERROR_UNIVERSE: + lmp->error->universe_all("(library)", 0, error_text); + break; + default: + auto mesg = fmt::format("Unknown error type {} for message: {}", error_type, error_text); + lmp->error->warning("(library)", 0, mesg); + } + } + END_CAPTURE + +#if defined(LAMMPS_EXCEPTIONS) + // with enabled exceptions the above code will simply throw an + // exception and record the error message. So we have to explicitly + // stop here like we do in main.cpp + if (lammps_has_error(handle)) { + if (error_type & 1) { + lammps_kokkos_finalize(); + lammps_python_finalize(); + MPI_Abort(lmp->universe->uworld, 1); + } else if (error_type & 2) { + lammps_kokkos_finalize(); + lammps_python_finalize(); + lammps_mpi_finalize(); + exit(1); + } + } +#endif +} + // ---------------------------------------------------------------------- // Library functions to process commands // ---------------------------------------------------------------------- diff --git a/src/library.h b/src/library.h index 311219e5ba..4e50cbee84 100644 --- a/src/library.h +++ b/src/library.h @@ -75,6 +75,18 @@ enum _LMP_TYPE_CONST { LMP_SIZE_COLS = 5 /*!< return number of columns */ }; +/** Error codes to select the suitable function in the Error class + * + * Must be kept in sync with the equivalent constants in lammps/constants.py */ + +enum _LMP_ERROR_CONST { + LMP_ERROR_WARNING = 0, /*!< call Error::warning() */ + LMP_ERROR_ONE = 1, /*!< called from one MPI rank */ + LMP_ERROR_ALL = 2, /*!< called from all MPI ranks */ + LMP_ERROR_WORLD = 4, /*!< error on Comm::world */ + LMP_ERROR_UNIVERSE = 8 /*!< error on Comm::universe */ +}; + /* Ifdefs to allow this file to be included in C and C++ programs */ #ifdef __cplusplus @@ -97,6 +109,8 @@ void lammps_mpi_finalize(); void lammps_kokkos_finalize(); void lammps_python_finalize(); +void lammps_error(void *handle, int error_type, const char *error_text); + /* ---------------------------------------------------------------------- * Library functions to process commands * ---------------------------------------------------------------------- */ From a94cfe175b887ec0bfa92110ceb646699db1ca27 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 23 Sep 2022 18:59:29 -0400 Subject: [PATCH 35/35] add c/python unit tests for lammps_error() --- unittest/c-library/test_library_open.cpp | 29 ++++++++++++++++++++++++ unittest/python/python-open.py | 14 ++++++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/unittest/c-library/test_library_open.cpp b/unittest/c-library/test_library_open.cpp index c75fd3738b..1cd65d843d 100644 --- a/unittest/c-library/test_library_open.cpp +++ b/unittest/c-library/test_library_open.cpp @@ -198,3 +198,32 @@ TEST(lammps_open_fortran, no_args) if (verbose) std::cout << output; MPI_Comm_free(&mycomm); } + +TEST(lammps_open_no_mpi, lammps_error) +{ + const char *args[] = {"liblammps", "-log", "none", "-nocite"}; + char **argv = (char **)args; + int argc = sizeof(args) / sizeof(char *); + + ::testing::internal::CaptureStdout(); + void *alt_ptr; + void *handle = lammps_open_no_mpi(argc, argv, &alt_ptr); + std::string output = ::testing::internal::GetCapturedStdout(); + EXPECT_EQ(handle, alt_ptr); + LAMMPS_NS::LAMMPS *lmp = (LAMMPS_NS::LAMMPS *)handle; + + EXPECT_EQ(lmp->world, MPI_COMM_WORLD); + EXPECT_EQ(lmp->infile, stdin); + EXPECT_NE(lmp->screen, nullptr); + EXPECT_EQ(lmp->logfile, nullptr); + EXPECT_EQ(lmp->citeme, nullptr); + EXPECT_EQ(lmp->suffix_enable, 0); + + EXPECT_STREQ(lmp->exename, "liblammps"); + EXPECT_EQ(lmp->num_package, 0); + ::testing::internal::CaptureStdout(); + lammps_error(handle, 0, "test_warning"); + output = ::testing::internal::GetCapturedStdout(); + EXPECT_THAT(output, HasSubstr("WARNING: test_warning")); +} + diff --git a/unittest/python/python-open.py b/unittest/python/python-open.py index 328745ded0..3c9165b8c8 100644 --- a/unittest/python/python-open.py +++ b/unittest/python/python-open.py @@ -45,11 +45,21 @@ class PythonOpen(unittest.TestCase): def testWithArgs(self): """Create LAMMPS instance with a few arguments""" - lmp=lammps(name=self.machine, - cmdargs=['-nocite','-sf','opt','-log','none']) + lmp=lammps(name=self.machine,cmdargs=['-nocite','-sf','opt','-log','none']) self.assertIsNot(lmp.lmp,None) self.assertEqual(lmp.opened,1) + def testError(self): + """Print warning message through LAMMPS Error class""" + lmp=lammps(name=self.machine,cmdargs=['-nocite','-log','none','-screen','tmp.error.output']) + lmp.error(0,'test_warning') + lmp.close() + with open('tmp.error.output','r') as f: + output = f.read() + self.assertTrue('LAMMPS' in output) + self.assertTrue('Total wall time' in output) + self.assertTrue('WARNING: test_warning' in output) + def testContextManager(self): """Automatically clean up LAMMPS instance""" with lammps(name=self.machine) as lmp: