diff --git a/doc/src/Eqs/pair_kolmogorov_crespi_full.jpg b/doc/src/Eqs/pair_kolmogorov_crespi_full.jpg index e9d306d505..7ac14f3d0b 100644 Binary files a/doc/src/Eqs/pair_kolmogorov_crespi_full.jpg and b/doc/src/Eqs/pair_kolmogorov_crespi_full.jpg differ diff --git a/doc/src/Eqs/pair_kolmogorov_crespi_full.tex b/doc/src/Eqs/pair_kolmogorov_crespi_full.tex index 606aa8b5fe..16bbc25abf 100644 --- a/doc/src/Eqs/pair_kolmogorov_crespi_full.tex +++ b/doc/src/Eqs/pair_kolmogorov_crespi_full.tex @@ -27,7 +27,7 @@ V_{ij} & = & e^{-\lambda (r_{ij} -z_0)} \left [ C + f(\rho_{ij}) + f(\rho_{ji}) - A \left ( \frac{r_{ij}}{z_0}\right )^{-6} \right ] \\ \rho_{ij}^2 & = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{i})^2 \\[15pt] \rho_{ji}^2 & = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{j})^2 \\[15pt] - f(\rho) & = & e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { \rho/\delta }^{2n} + f(\rho) & = & e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { (\rho/\delta) }^{2n} \end{eqnarray*} \endgroup \end{document} diff --git a/doc/src/pair_coul_shield.txt b/doc/src/pair_coul_shield.txt index df04e76de9..8152a1a12e 100644 --- a/doc/src/pair_coul_shield.txt +++ b/doc/src/pair_coul_shield.txt @@ -13,7 +13,7 @@ pair_style coul/shield command :h3 pair_style coul/shield cutoff tap_flag :pre cutoff = global cutoff (distance units) -tap_flag = 0/1 to turn off/on the taper function +tap_flag = 0/1 to turn off/on the taper function :ul [Examples:] diff --git a/doc/src/pair_ilp_graphene_hbn.txt b/doc/src/pair_ilp_graphene_hbn.txt index 4dd244c17f..0e8ac5e9c5 100644 --- a/doc/src/pair_ilp_graphene_hbn.txt +++ b/doc/src/pair_ilp_graphene_hbn.txt @@ -13,17 +13,17 @@ pair_style ilp/graphene/hbn command :h3 pair_style \[hybrid/overlay ...\] ilp/graphene/hbn cutoff tap_flag :pre cutoff = global cutoff (distance units) -tap_flag = 0/1 to turn off/on the taper function +tap_flag = 0/1 to turn off/on the taper function :ul [Examples:] -pair_style hybrid/overlay ilp/graphene/hbn 16.0 1 -pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C :pre +pair_style hybrid/overlay ilp/graphene/hbn 16.0 1 +pair_coeff * * ilp/graphene/hbn ../potentials/BNCH.ILP B N C :pre pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 -pair_coeff * * rebo CH.rebo NULL NULL C -pair_coeff * * tersoff BNC.tersoff B N NULL -pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C +pair_coeff * * rebo ../potentials/CH.rebo NULL NULL C +pair_coeff * * tersoff ../potentials/BNC.tersoff B N NULL +pair_coeff * * ilp/graphene/hbn ../potentials/BNCH.ILP B N C pair_coeff 1 1 coul/shield 0.70 pair_coeff 1 2 coul/shield 0.695 pair_coeff 2 2 coul/shield 0.69 :pre @@ -85,6 +85,22 @@ be found in "(Ouyang)"_#Ouyang. This potential must be used in combination with hybrid/overlay. Other interactions can be set to zero using pair_style {none}. +This pair style tallies a breakdown of the total interlayer potential +energy into sub-categories, which can be accessed via the "compute +pair"_compute_pair.html command as a vector of values of length 2. +The 2 values correspond to the following sub-categories: + +{E_vdW} = vdW (attractive) energy +{E_Rep} = Repulsive energy :ol + +To print these quantities to the log file (with descriptive column +headings) the following commands could be included in an input script: + +compute 0 all pair ilp/graphene/hbn +variable Evdw equal c_0\[1\] +variable Erep equal c_0\[2\] +thermo_style custom step temp epair v_Erep v_Evdw :pre + :line [Mixing, shift, table, tail correction, restart, rRESPA info]: diff --git a/doc/src/pair_kolmogorov_crespi_full.txt b/doc/src/pair_kolmogorov_crespi_full.txt index 9ad5bfea84..bfadc33e30 100644 --- a/doc/src/pair_kolmogorov_crespi_full.txt +++ b/doc/src/pair_kolmogorov_crespi_full.txt @@ -13,17 +13,17 @@ pair_style kolmogorov/crespi/full command :h3 pair_style hybrid/overlay kolmogorov/crespi/full cutoff tap_flag :pre cutoff = global cutoff (distance units) -tap_flag = 0/1 to turn off/on the taper function +tap_flag = 0/1 to turn off/on the taper function :ul [Examples:] pair_style hybrid/overlay kolmogorov/crespi/full 20.0 0 pair_coeff * * none -pair_coeff * * kolmogorov/crespi/full CH.KC C C :pre +pair_coeff * * kolmogorov/crespi/full ../potentials/CH.KC C C :pre pair_style hybrid/overlay rebo kolmogorov/crespi/full 16.0 1 -pair_coeff * * rebo CH.rebo C H -pair_coeff * * kolmogorov/crespi/full CH_taper.KC C H :pre +pair_coeff * * rebo ../potentials/CH.rebo C H +pair_coeff * * kolmogorov/crespi/full ../potentials/CH_taper.KC C H :pre [Description:] @@ -74,6 +74,22 @@ comparison of these parameters can be found in "(Ouyang)"_#Ouyang1. This potential must be used in combination with hybrid/overlay. Other interactions can be set to zero using pair_style {none}. +This pair style tallies a breakdown of the total interlayer potential +energy into sub-categories, which can be accessed via the "compute +pair"_compute_pair.html command as a vector of values of length 2. +The 2 values correspond to the following sub-categories: + +{E_vdW} = vdW (attractive) energy +{E_Rep} = Repulsive energy :ol + +To print these quantities to the log file (with descriptive column +headings) the following commands could be included in an input script: + +compute 0 all pair kolmogorov/crespi/full +variable Evdw equal c_0\[1\] +variable Erep equal c_0\[2\] +thermo_style custom step temp epair v_Erep v_Evdw :pre + :line [Mixing, shift, table, tail correction, restart, rRESPA info]: diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/BNCH.ILP b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/BNCH.ILP new file mode 120000 index 0000000000..b970e23f95 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/BNCH.ILP @@ -0,0 +1 @@ +../../../../../potentials/BNCH.ILP \ No newline at end of file diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/Bi_gr_AB_stack_2L_noH.data b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/Bi_gr_AB_stack_2L_noH.data new file mode 100644 index 0000000000..756123a6f1 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/Bi_gr_AB_stack_2L_noH.data @@ -0,0 +1,1372 @@ + Generate Bi-layer graphene + + 1360 atoms + + 2 atom types + + 0.000000000000000 42.599999999999994 xlo xhi + 0.000000000000000 41.811706494712695 ylo yhi + 0.000000000000000 100.000000000000000 zlo zhi + + Atoms + + 1 1 1 0.000000000000000 0.000000000000000 1.229756073373903 0.000000000000000 + 2 1 1 0.000000000000000 0.710000000000000 0.000000000000000 0.000000000000000 + 3 1 1 0.000000000000000 2.130000000000000 0.000000000000000 0.000000000000000 + 4 1 1 0.000000000000000 2.840000000000000 1.229756073373903 0.000000000000000 + 5 1 1 0.000000000000000 4.260000000000000 1.229756073373903 0.000000000000000 + 6 1 1 0.000000000000000 4.970000000000000 0.000000000000000 0.000000000000000 + 7 1 1 0.000000000000000 6.390000000000000 0.000000000000000 0.000000000000000 + 8 1 1 0.000000000000000 7.100000000000000 1.229756073373903 0.000000000000000 + 9 1 1 0.000000000000000 8.520000000000000 1.229756073373903 0.000000000000000 + 10 1 1 0.000000000000000 9.230000000000000 0.000000000000000 0.000000000000000 + 11 1 1 0.000000000000000 10.649999999999999 0.000000000000000 0.000000000000000 + 12 1 1 0.000000000000000 11.359999999999999 1.229756073373903 0.000000000000000 + 13 1 1 0.000000000000000 12.779999999999999 1.229756073373903 0.000000000000000 + 14 1 1 0.000000000000000 13.489999999999998 0.000000000000000 0.000000000000000 + 15 1 1 0.000000000000000 14.910000000000000 0.000000000000000 0.000000000000000 + 16 1 1 0.000000000000000 15.619999999999999 1.229756073373903 0.000000000000000 + 17 1 1 0.000000000000000 17.039999999999999 1.229756073373903 0.000000000000000 + 18 1 1 0.000000000000000 17.750000000000000 0.000000000000000 0.000000000000000 + 19 1 1 0.000000000000000 19.169999999999998 0.000000000000000 0.000000000000000 + 20 1 1 0.000000000000000 19.879999999999999 1.229756073373903 0.000000000000000 + 21 1 1 0.000000000000000 21.299999999999997 1.229756073373903 0.000000000000000 + 22 1 1 0.000000000000000 22.009999999999998 0.000000000000000 0.000000000000000 + 23 1 1 0.000000000000000 23.429999999999996 0.000000000000000 0.000000000000000 + 24 1 1 0.000000000000000 24.139999999999997 1.229756073373903 0.000000000000000 + 25 1 1 0.000000000000000 25.559999999999999 1.229756073373903 0.000000000000000 + 26 1 1 0.000000000000000 26.270000000000000 0.000000000000000 0.000000000000000 + 27 1 1 0.000000000000000 27.689999999999998 0.000000000000000 0.000000000000000 + 28 1 1 0.000000000000000 28.399999999999999 1.229756073373903 0.000000000000000 + 29 1 1 0.000000000000000 29.820000000000000 1.229756073373903 0.000000000000000 + 30 1 1 0.000000000000000 30.530000000000001 0.000000000000000 0.000000000000000 + 31 1 1 0.000000000000000 31.949999999999999 0.000000000000000 0.000000000000000 + 32 1 1 0.000000000000000 32.659999999999997 1.229756073373903 0.000000000000000 + 33 1 1 0.000000000000000 34.079999999999998 1.229756073373903 0.000000000000000 + 34 1 1 0.000000000000000 34.789999999999999 0.000000000000000 0.000000000000000 + 35 1 1 0.000000000000000 36.210000000000001 0.000000000000000 0.000000000000000 + 36 1 1 0.000000000000000 36.920000000000002 1.229756073373903 0.000000000000000 + 37 1 1 0.000000000000000 38.339999999999996 1.229756073373903 0.000000000000000 + 38 1 1 0.000000000000000 39.049999999999997 0.000000000000000 0.000000000000000 + 39 1 1 0.000000000000000 40.469999999999999 0.000000000000000 0.000000000000000 + 40 1 1 0.000000000000000 41.179999999999993 1.229756073373903 0.000000000000000 + 41 1 1 0.000000000000000 0.000000000000000 3.689268220121709 0.000000000000000 + 42 1 1 0.000000000000000 0.710000000000000 2.459512146747806 0.000000000000000 + 43 1 1 0.000000000000000 2.130000000000000 2.459512146747806 0.000000000000000 + 44 1 1 0.000000000000000 2.840000000000000 3.689268220121709 0.000000000000000 + 45 1 1 0.000000000000000 4.260000000000000 3.689268220121709 0.000000000000000 + 46 1 1 0.000000000000000 4.970000000000000 2.459512146747806 0.000000000000000 + 47 1 1 0.000000000000000 6.390000000000000 2.459512146747806 0.000000000000000 + 48 1 1 0.000000000000000 7.100000000000000 3.689268220121709 0.000000000000000 + 49 1 1 0.000000000000000 8.520000000000000 3.689268220121709 0.000000000000000 + 50 1 1 0.000000000000000 9.230000000000000 2.459512146747806 0.000000000000000 + 51 1 1 0.000000000000000 10.649999999999999 2.459512146747806 0.000000000000000 + 52 1 1 0.000000000000000 11.359999999999999 3.689268220121709 0.000000000000000 + 53 1 1 0.000000000000000 12.779999999999999 3.689268220121709 0.000000000000000 + 54 1 1 0.000000000000000 13.489999999999998 2.459512146747806 0.000000000000000 + 55 1 1 0.000000000000000 14.910000000000000 2.459512146747806 0.000000000000000 + 56 1 1 0.000000000000000 15.619999999999999 3.689268220121709 0.000000000000000 + 57 1 1 0.000000000000000 17.039999999999999 3.689268220121709 0.000000000000000 + 58 1 1 0.000000000000000 17.750000000000000 2.459512146747806 0.000000000000000 + 59 1 1 0.000000000000000 19.169999999999998 2.459512146747806 0.000000000000000 + 60 1 1 0.000000000000000 19.879999999999999 3.689268220121709 0.000000000000000 + 61 1 1 0.000000000000000 21.299999999999997 3.689268220121709 0.000000000000000 + 62 1 1 0.000000000000000 22.009999999999998 2.459512146747806 0.000000000000000 + 63 1 1 0.000000000000000 23.429999999999996 2.459512146747806 0.000000000000000 + 64 1 1 0.000000000000000 24.139999999999997 3.689268220121709 0.000000000000000 + 65 1 1 0.000000000000000 25.559999999999999 3.689268220121709 0.000000000000000 + 66 1 1 0.000000000000000 26.270000000000000 2.459512146747806 0.000000000000000 + 67 1 1 0.000000000000000 27.689999999999998 2.459512146747806 0.000000000000000 + 68 1 1 0.000000000000000 28.399999999999999 3.689268220121709 0.000000000000000 + 69 1 1 0.000000000000000 29.820000000000000 3.689268220121709 0.000000000000000 + 70 1 1 0.000000000000000 30.530000000000001 2.459512146747806 0.000000000000000 + 71 1 1 0.000000000000000 31.949999999999999 2.459512146747806 0.000000000000000 + 72 1 1 0.000000000000000 32.659999999999997 3.689268220121709 0.000000000000000 + 73 1 1 0.000000000000000 34.079999999999998 3.689268220121709 0.000000000000000 + 74 1 1 0.000000000000000 34.789999999999999 2.459512146747806 0.000000000000000 + 75 1 1 0.000000000000000 36.210000000000001 2.459512146747806 0.000000000000000 + 76 1 1 0.000000000000000 36.920000000000002 3.689268220121709 0.000000000000000 + 77 1 1 0.000000000000000 38.339999999999996 3.689268220121709 0.000000000000000 + 78 1 1 0.000000000000000 39.049999999999997 2.459512146747806 0.000000000000000 + 79 1 1 0.000000000000000 40.469999999999999 2.459512146747806 0.000000000000000 + 80 1 1 0.000000000000000 41.179999999999993 3.689268220121709 0.000000000000000 + 81 1 1 0.000000000000000 0.000000000000000 6.148780366869514 0.000000000000000 + 82 1 1 0.000000000000000 0.710000000000000 4.919024293495611 0.000000000000000 + 83 1 1 0.000000000000000 2.130000000000000 4.919024293495611 0.000000000000000 + 84 1 1 0.000000000000000 2.840000000000000 6.148780366869514 0.000000000000000 + 85 1 1 0.000000000000000 4.260000000000000 6.148780366869514 0.000000000000000 + 86 1 1 0.000000000000000 4.970000000000000 4.919024293495611 0.000000000000000 + 87 1 1 0.000000000000000 6.390000000000000 4.919024293495611 0.000000000000000 + 88 1 1 0.000000000000000 7.100000000000000 6.148780366869514 0.000000000000000 + 89 1 1 0.000000000000000 8.520000000000000 6.148780366869514 0.000000000000000 + 90 1 1 0.000000000000000 9.230000000000000 4.919024293495611 0.000000000000000 + 91 1 1 0.000000000000000 10.649999999999999 4.919024293495611 0.000000000000000 + 92 1 1 0.000000000000000 11.359999999999999 6.148780366869514 0.000000000000000 + 93 1 1 0.000000000000000 12.779999999999999 6.148780366869514 0.000000000000000 + 94 1 1 0.000000000000000 13.489999999999998 4.919024293495611 0.000000000000000 + 95 1 1 0.000000000000000 14.910000000000000 4.919024293495611 0.000000000000000 + 96 1 1 0.000000000000000 15.619999999999999 6.148780366869514 0.000000000000000 + 97 1 1 0.000000000000000 17.039999999999999 6.148780366869514 0.000000000000000 + 98 1 1 0.000000000000000 17.750000000000000 4.919024293495611 0.000000000000000 + 99 1 1 0.000000000000000 19.169999999999998 4.919024293495611 0.000000000000000 + 100 1 1 0.000000000000000 19.879999999999999 6.148780366869514 0.000000000000000 + 101 1 1 0.000000000000000 21.299999999999997 6.148780366869514 0.000000000000000 + 102 1 1 0.000000000000000 22.009999999999998 4.919024293495611 0.000000000000000 + 103 1 1 0.000000000000000 23.429999999999996 4.919024293495611 0.000000000000000 + 104 1 1 0.000000000000000 24.139999999999997 6.148780366869514 0.000000000000000 + 105 1 1 0.000000000000000 25.559999999999999 6.148780366869514 0.000000000000000 + 106 1 1 0.000000000000000 26.270000000000000 4.919024293495611 0.000000000000000 + 107 1 1 0.000000000000000 27.689999999999998 4.919024293495611 0.000000000000000 + 108 1 1 0.000000000000000 28.399999999999999 6.148780366869514 0.000000000000000 + 109 1 1 0.000000000000000 29.820000000000000 6.148780366869514 0.000000000000000 + 110 1 1 0.000000000000000 30.530000000000001 4.919024293495611 0.000000000000000 + 111 1 1 0.000000000000000 31.949999999999999 4.919024293495611 0.000000000000000 + 112 1 1 0.000000000000000 32.659999999999997 6.148780366869514 0.000000000000000 + 113 1 1 0.000000000000000 34.079999999999998 6.148780366869514 0.000000000000000 + 114 1 1 0.000000000000000 34.789999999999999 4.919024293495611 0.000000000000000 + 115 1 1 0.000000000000000 36.210000000000001 4.919024293495611 0.000000000000000 + 116 1 1 0.000000000000000 36.920000000000002 6.148780366869514 0.000000000000000 + 117 1 1 0.000000000000000 38.339999999999996 6.148780366869514 0.000000000000000 + 118 1 1 0.000000000000000 39.049999999999997 4.919024293495611 0.000000000000000 + 119 1 1 0.000000000000000 40.469999999999999 4.919024293495611 0.000000000000000 + 120 1 1 0.000000000000000 41.179999999999993 6.148780366869514 0.000000000000000 + 121 1 1 0.000000000000000 0.000000000000000 8.608292513617320 0.000000000000000 + 122 1 1 0.000000000000000 0.710000000000000 7.378536440243417 0.000000000000000 + 123 1 1 0.000000000000000 2.130000000000000 7.378536440243417 0.000000000000000 + 124 1 1 0.000000000000000 2.840000000000000 8.608292513617320 0.000000000000000 + 125 1 1 0.000000000000000 4.260000000000000 8.608292513617320 0.000000000000000 + 126 1 1 0.000000000000000 4.970000000000000 7.378536440243417 0.000000000000000 + 127 1 1 0.000000000000000 6.390000000000000 7.378536440243417 0.000000000000000 + 128 1 1 0.000000000000000 7.100000000000000 8.608292513617320 0.000000000000000 + 129 1 1 0.000000000000000 8.520000000000000 8.608292513617320 0.000000000000000 + 130 1 1 0.000000000000000 9.230000000000000 7.378536440243417 0.000000000000000 + 131 1 1 0.000000000000000 10.649999999999999 7.378536440243417 0.000000000000000 + 132 1 1 0.000000000000000 11.359999999999999 8.608292513617320 0.000000000000000 + 133 1 1 0.000000000000000 12.779999999999999 8.608292513617320 0.000000000000000 + 134 1 1 0.000000000000000 13.489999999999998 7.378536440243417 0.000000000000000 + 135 1 1 0.000000000000000 14.910000000000000 7.378536440243417 0.000000000000000 + 136 1 1 0.000000000000000 15.619999999999999 8.608292513617320 0.000000000000000 + 137 1 1 0.000000000000000 17.039999999999999 8.608292513617320 0.000000000000000 + 138 1 1 0.000000000000000 17.750000000000000 7.378536440243417 0.000000000000000 + 139 1 1 0.000000000000000 19.169999999999998 7.378536440243417 0.000000000000000 + 140 1 1 0.000000000000000 19.879999999999999 8.608292513617320 0.000000000000000 + 141 1 1 0.000000000000000 21.299999999999997 8.608292513617320 0.000000000000000 + 142 1 1 0.000000000000000 22.009999999999998 7.378536440243417 0.000000000000000 + 143 1 1 0.000000000000000 23.429999999999996 7.378536440243417 0.000000000000000 + 144 1 1 0.000000000000000 24.139999999999997 8.608292513617320 0.000000000000000 + 145 1 1 0.000000000000000 25.559999999999999 8.608292513617320 0.000000000000000 + 146 1 1 0.000000000000000 26.270000000000000 7.378536440243417 0.000000000000000 + 147 1 1 0.000000000000000 27.689999999999998 7.378536440243417 0.000000000000000 + 148 1 1 0.000000000000000 28.399999999999999 8.608292513617320 0.000000000000000 + 149 1 1 0.000000000000000 29.820000000000000 8.608292513617320 0.000000000000000 + 150 1 1 0.000000000000000 30.530000000000001 7.378536440243417 0.000000000000000 + 151 1 1 0.000000000000000 31.949999999999999 7.378536440243417 0.000000000000000 + 152 1 1 0.000000000000000 32.659999999999997 8.608292513617320 0.000000000000000 + 153 1 1 0.000000000000000 34.079999999999998 8.608292513617320 0.000000000000000 + 154 1 1 0.000000000000000 34.789999999999999 7.378536440243417 0.000000000000000 + 155 1 1 0.000000000000000 36.210000000000001 7.378536440243417 0.000000000000000 + 156 1 1 0.000000000000000 36.920000000000002 8.608292513617320 0.000000000000000 + 157 1 1 0.000000000000000 38.339999999999996 8.608292513617320 0.000000000000000 + 158 1 1 0.000000000000000 39.049999999999997 7.378536440243417 0.000000000000000 + 159 1 1 0.000000000000000 40.469999999999999 7.378536440243417 0.000000000000000 + 160 1 1 0.000000000000000 41.179999999999993 8.608292513617320 0.000000000000000 + 161 1 1 0.000000000000000 0.000000000000000 11.067804660365125 0.000000000000000 + 162 1 1 0.000000000000000 0.710000000000000 9.838048586991222 0.000000000000000 + 163 1 1 0.000000000000000 2.130000000000000 9.838048586991222 0.000000000000000 + 164 1 1 0.000000000000000 2.840000000000000 11.067804660365125 0.000000000000000 + 165 1 1 0.000000000000000 4.260000000000000 11.067804660365125 0.000000000000000 + 166 1 1 0.000000000000000 4.970000000000000 9.838048586991222 0.000000000000000 + 167 1 1 0.000000000000000 6.390000000000000 9.838048586991222 0.000000000000000 + 168 1 1 0.000000000000000 7.100000000000000 11.067804660365125 0.000000000000000 + 169 1 1 0.000000000000000 8.520000000000000 11.067804660365125 0.000000000000000 + 170 1 1 0.000000000000000 9.230000000000000 9.838048586991222 0.000000000000000 + 171 1 1 0.000000000000000 10.649999999999999 9.838048586991222 0.000000000000000 + 172 1 1 0.000000000000000 11.359999999999999 11.067804660365125 0.000000000000000 + 173 1 1 0.000000000000000 12.779999999999999 11.067804660365125 0.000000000000000 + 174 1 1 0.000000000000000 13.489999999999998 9.838048586991222 0.000000000000000 + 175 1 1 0.000000000000000 14.910000000000000 9.838048586991222 0.000000000000000 + 176 1 1 0.000000000000000 15.619999999999999 11.067804660365125 0.000000000000000 + 177 1 1 0.000000000000000 17.039999999999999 11.067804660365125 0.000000000000000 + 178 1 1 0.000000000000000 17.750000000000000 9.838048586991222 0.000000000000000 + 179 1 1 0.000000000000000 19.169999999999998 9.838048586991222 0.000000000000000 + 180 1 1 0.000000000000000 19.879999999999999 11.067804660365125 0.000000000000000 + 181 1 1 0.000000000000000 21.299999999999997 11.067804660365125 0.000000000000000 + 182 1 1 0.000000000000000 22.009999999999998 9.838048586991222 0.000000000000000 + 183 1 1 0.000000000000000 23.429999999999996 9.838048586991222 0.000000000000000 + 184 1 1 0.000000000000000 24.139999999999997 11.067804660365125 0.000000000000000 + 185 1 1 0.000000000000000 25.559999999999999 11.067804660365125 0.000000000000000 + 186 1 1 0.000000000000000 26.270000000000000 9.838048586991222 0.000000000000000 + 187 1 1 0.000000000000000 27.689999999999998 9.838048586991222 0.000000000000000 + 188 1 1 0.000000000000000 28.399999999999999 11.067804660365125 0.000000000000000 + 189 1 1 0.000000000000000 29.820000000000000 11.067804660365125 0.000000000000000 + 190 1 1 0.000000000000000 30.530000000000001 9.838048586991222 0.000000000000000 + 191 1 1 0.000000000000000 31.949999999999999 9.838048586991222 0.000000000000000 + 192 1 1 0.000000000000000 32.659999999999997 11.067804660365125 0.000000000000000 + 193 1 1 0.000000000000000 34.079999999999998 11.067804660365125 0.000000000000000 + 194 1 1 0.000000000000000 34.789999999999999 9.838048586991222 0.000000000000000 + 195 1 1 0.000000000000000 36.210000000000001 9.838048586991222 0.000000000000000 + 196 1 1 0.000000000000000 36.920000000000002 11.067804660365125 0.000000000000000 + 197 1 1 0.000000000000000 38.339999999999996 11.067804660365125 0.000000000000000 + 198 1 1 0.000000000000000 39.049999999999997 9.838048586991222 0.000000000000000 + 199 1 1 0.000000000000000 40.469999999999999 9.838048586991222 0.000000000000000 + 200 1 1 0.000000000000000 41.179999999999993 11.067804660365125 0.000000000000000 + 201 1 1 0.000000000000000 0.000000000000000 13.527316807112930 0.000000000000000 + 202 1 1 0.000000000000000 0.710000000000000 12.297560733739028 0.000000000000000 + 203 1 1 0.000000000000000 2.130000000000000 12.297560733739028 0.000000000000000 + 204 1 1 0.000000000000000 2.840000000000000 13.527316807112930 0.000000000000000 + 205 1 1 0.000000000000000 4.260000000000000 13.527316807112930 0.000000000000000 + 206 1 1 0.000000000000000 4.970000000000000 12.297560733739028 0.000000000000000 + 207 1 1 0.000000000000000 6.390000000000000 12.297560733739028 0.000000000000000 + 208 1 1 0.000000000000000 7.100000000000000 13.527316807112930 0.000000000000000 + 209 1 1 0.000000000000000 8.520000000000000 13.527316807112930 0.000000000000000 + 210 1 1 0.000000000000000 9.230000000000000 12.297560733739028 0.000000000000000 + 211 1 1 0.000000000000000 10.649999999999999 12.297560733739028 0.000000000000000 + 212 1 1 0.000000000000000 11.359999999999999 13.527316807112930 0.000000000000000 + 213 1 1 0.000000000000000 12.779999999999999 13.527316807112930 0.000000000000000 + 214 1 1 0.000000000000000 13.489999999999998 12.297560733739028 0.000000000000000 + 215 1 1 0.000000000000000 14.910000000000000 12.297560733739028 0.000000000000000 + 216 1 1 0.000000000000000 15.619999999999999 13.527316807112930 0.000000000000000 + 217 1 1 0.000000000000000 17.039999999999999 13.527316807112930 0.000000000000000 + 218 1 1 0.000000000000000 17.750000000000000 12.297560733739028 0.000000000000000 + 219 1 1 0.000000000000000 19.169999999999998 12.297560733739028 0.000000000000000 + 220 1 1 0.000000000000000 19.879999999999999 13.527316807112930 0.000000000000000 + 221 1 1 0.000000000000000 21.299999999999997 13.527316807112930 0.000000000000000 + 222 1 1 0.000000000000000 22.009999999999998 12.297560733739028 0.000000000000000 + 223 1 1 0.000000000000000 23.429999999999996 12.297560733739028 0.000000000000000 + 224 1 1 0.000000000000000 24.139999999999997 13.527316807112930 0.000000000000000 + 225 1 1 0.000000000000000 25.559999999999999 13.527316807112930 0.000000000000000 + 226 1 1 0.000000000000000 26.270000000000000 12.297560733739028 0.000000000000000 + 227 1 1 0.000000000000000 27.689999999999998 12.297560733739028 0.000000000000000 + 228 1 1 0.000000000000000 28.399999999999999 13.527316807112930 0.000000000000000 + 229 1 1 0.000000000000000 29.820000000000000 13.527316807112930 0.000000000000000 + 230 1 1 0.000000000000000 30.530000000000001 12.297560733739028 0.000000000000000 + 231 1 1 0.000000000000000 31.949999999999999 12.297560733739028 0.000000000000000 + 232 1 1 0.000000000000000 32.659999999999997 13.527316807112930 0.000000000000000 + 233 1 1 0.000000000000000 34.079999999999998 13.527316807112930 0.000000000000000 + 234 1 1 0.000000000000000 34.789999999999999 12.297560733739028 0.000000000000000 + 235 1 1 0.000000000000000 36.210000000000001 12.297560733739028 0.000000000000000 + 236 1 1 0.000000000000000 36.920000000000002 13.527316807112930 0.000000000000000 + 237 1 1 0.000000000000000 38.339999999999996 13.527316807112930 0.000000000000000 + 238 1 1 0.000000000000000 39.049999999999997 12.297560733739028 0.000000000000000 + 239 1 1 0.000000000000000 40.469999999999999 12.297560733739028 0.000000000000000 + 240 1 1 0.000000000000000 41.179999999999993 13.527316807112930 0.000000000000000 + 241 1 1 0.000000000000000 0.000000000000000 15.986828953860737 0.000000000000000 + 242 1 1 0.000000000000000 0.710000000000000 14.757072880486835 0.000000000000000 + 243 1 1 0.000000000000000 2.130000000000000 14.757072880486835 0.000000000000000 + 244 1 1 0.000000000000000 2.840000000000000 15.986828953860737 0.000000000000000 + 245 1 1 0.000000000000000 4.260000000000000 15.986828953860737 0.000000000000000 + 246 1 1 0.000000000000000 4.970000000000000 14.757072880486835 0.000000000000000 + 247 1 1 0.000000000000000 6.390000000000000 14.757072880486835 0.000000000000000 + 248 1 1 0.000000000000000 7.100000000000000 15.986828953860737 0.000000000000000 + 249 1 1 0.000000000000000 8.520000000000000 15.986828953860737 0.000000000000000 + 250 1 1 0.000000000000000 9.230000000000000 14.757072880486835 0.000000000000000 + 251 1 1 0.000000000000000 10.649999999999999 14.757072880486835 0.000000000000000 + 252 1 1 0.000000000000000 11.359999999999999 15.986828953860737 0.000000000000000 + 253 1 1 0.000000000000000 12.779999999999999 15.986828953860737 0.000000000000000 + 254 1 1 0.000000000000000 13.489999999999998 14.757072880486835 0.000000000000000 + 255 1 1 0.000000000000000 14.910000000000000 14.757072880486835 0.000000000000000 + 256 1 1 0.000000000000000 15.619999999999999 15.986828953860737 0.000000000000000 + 257 1 1 0.000000000000000 17.039999999999999 15.986828953860737 0.000000000000000 + 258 1 1 0.000000000000000 17.750000000000000 14.757072880486835 0.000000000000000 + 259 1 1 0.000000000000000 19.169999999999998 14.757072880486835 0.000000000000000 + 260 1 1 0.000000000000000 19.879999999999999 15.986828953860737 0.000000000000000 + 261 1 1 0.000000000000000 21.299999999999997 15.986828953860737 0.000000000000000 + 262 1 1 0.000000000000000 22.009999999999998 14.757072880486835 0.000000000000000 + 263 1 1 0.000000000000000 23.429999999999996 14.757072880486835 0.000000000000000 + 264 1 1 0.000000000000000 24.139999999999997 15.986828953860737 0.000000000000000 + 265 1 1 0.000000000000000 25.559999999999999 15.986828953860737 0.000000000000000 + 266 1 1 0.000000000000000 26.270000000000000 14.757072880486835 0.000000000000000 + 267 1 1 0.000000000000000 27.689999999999998 14.757072880486835 0.000000000000000 + 268 1 1 0.000000000000000 28.399999999999999 15.986828953860737 0.000000000000000 + 269 1 1 0.000000000000000 29.820000000000000 15.986828953860737 0.000000000000000 + 270 1 1 0.000000000000000 30.530000000000001 14.757072880486835 0.000000000000000 + 271 1 1 0.000000000000000 31.949999999999999 14.757072880486835 0.000000000000000 + 272 1 1 0.000000000000000 32.659999999999997 15.986828953860737 0.000000000000000 + 273 1 1 0.000000000000000 34.079999999999998 15.986828953860737 0.000000000000000 + 274 1 1 0.000000000000000 34.789999999999999 14.757072880486835 0.000000000000000 + 275 1 1 0.000000000000000 36.210000000000001 14.757072880486835 0.000000000000000 + 276 1 1 0.000000000000000 36.920000000000002 15.986828953860737 0.000000000000000 + 277 1 1 0.000000000000000 38.339999999999996 15.986828953860737 0.000000000000000 + 278 1 1 0.000000000000000 39.049999999999997 14.757072880486835 0.000000000000000 + 279 1 1 0.000000000000000 40.469999999999999 14.757072880486835 0.000000000000000 + 280 1 1 0.000000000000000 41.179999999999993 15.986828953860737 0.000000000000000 + 281 1 1 0.000000000000000 0.000000000000000 18.446341100608542 0.000000000000000 + 282 1 1 0.000000000000000 0.710000000000000 17.216585027234640 0.000000000000000 + 283 1 1 0.000000000000000 2.130000000000000 17.216585027234640 0.000000000000000 + 284 1 1 0.000000000000000 2.840000000000000 18.446341100608542 0.000000000000000 + 285 1 1 0.000000000000000 4.260000000000000 18.446341100608542 0.000000000000000 + 286 1 1 0.000000000000000 4.970000000000000 17.216585027234640 0.000000000000000 + 287 1 1 0.000000000000000 6.390000000000000 17.216585027234640 0.000000000000000 + 288 1 1 0.000000000000000 7.100000000000000 18.446341100608542 0.000000000000000 + 289 1 1 0.000000000000000 8.520000000000000 18.446341100608542 0.000000000000000 + 290 1 1 0.000000000000000 9.230000000000000 17.216585027234640 0.000000000000000 + 291 1 1 0.000000000000000 10.649999999999999 17.216585027234640 0.000000000000000 + 292 1 1 0.000000000000000 11.359999999999999 18.446341100608542 0.000000000000000 + 293 1 1 0.000000000000000 12.779999999999999 18.446341100608542 0.000000000000000 + 294 1 1 0.000000000000000 13.489999999999998 17.216585027234640 0.000000000000000 + 295 1 1 0.000000000000000 14.910000000000000 17.216585027234640 0.000000000000000 + 296 1 1 0.000000000000000 15.619999999999999 18.446341100608542 0.000000000000000 + 297 1 1 0.000000000000000 17.039999999999999 18.446341100608542 0.000000000000000 + 298 1 1 0.000000000000000 17.750000000000000 17.216585027234640 0.000000000000000 + 299 1 1 0.000000000000000 19.169999999999998 17.216585027234640 0.000000000000000 + 300 1 1 0.000000000000000 19.879999999999999 18.446341100608542 0.000000000000000 + 301 1 1 0.000000000000000 21.299999999999997 18.446341100608542 0.000000000000000 + 302 1 1 0.000000000000000 22.009999999999998 17.216585027234640 0.000000000000000 + 303 1 1 0.000000000000000 23.429999999999996 17.216585027234640 0.000000000000000 + 304 1 1 0.000000000000000 24.139999999999997 18.446341100608542 0.000000000000000 + 305 1 1 0.000000000000000 25.559999999999999 18.446341100608542 0.000000000000000 + 306 1 1 0.000000000000000 26.270000000000000 17.216585027234640 0.000000000000000 + 307 1 1 0.000000000000000 27.689999999999998 17.216585027234640 0.000000000000000 + 308 1 1 0.000000000000000 28.399999999999999 18.446341100608542 0.000000000000000 + 309 1 1 0.000000000000000 29.820000000000000 18.446341100608542 0.000000000000000 + 310 1 1 0.000000000000000 30.530000000000001 17.216585027234640 0.000000000000000 + 311 1 1 0.000000000000000 31.949999999999999 17.216585027234640 0.000000000000000 + 312 1 1 0.000000000000000 32.659999999999997 18.446341100608542 0.000000000000000 + 313 1 1 0.000000000000000 34.079999999999998 18.446341100608542 0.000000000000000 + 314 1 1 0.000000000000000 34.789999999999999 17.216585027234640 0.000000000000000 + 315 1 1 0.000000000000000 36.210000000000001 17.216585027234640 0.000000000000000 + 316 1 1 0.000000000000000 36.920000000000002 18.446341100608542 0.000000000000000 + 317 1 1 0.000000000000000 38.339999999999996 18.446341100608542 0.000000000000000 + 318 1 1 0.000000000000000 39.049999999999997 17.216585027234640 0.000000000000000 + 319 1 1 0.000000000000000 40.469999999999999 17.216585027234640 0.000000000000000 + 320 1 1 0.000000000000000 41.179999999999993 18.446341100608542 0.000000000000000 + 321 1 1 0.000000000000000 0.000000000000000 20.905853247356347 0.000000000000000 + 322 1 1 0.000000000000000 0.710000000000000 19.676097173982445 0.000000000000000 + 323 1 1 0.000000000000000 2.130000000000000 19.676097173982445 0.000000000000000 + 324 1 1 0.000000000000000 2.840000000000000 20.905853247356347 0.000000000000000 + 325 1 1 0.000000000000000 4.260000000000000 20.905853247356347 0.000000000000000 + 326 1 1 0.000000000000000 4.970000000000000 19.676097173982445 0.000000000000000 + 327 1 1 0.000000000000000 6.390000000000000 19.676097173982445 0.000000000000000 + 328 1 1 0.000000000000000 7.100000000000000 20.905853247356347 0.000000000000000 + 329 1 1 0.000000000000000 8.520000000000000 20.905853247356347 0.000000000000000 + 330 1 1 0.000000000000000 9.230000000000000 19.676097173982445 0.000000000000000 + 331 1 1 0.000000000000000 10.649999999999999 19.676097173982445 0.000000000000000 + 332 1 1 0.000000000000000 11.359999999999999 20.905853247356347 0.000000000000000 + 333 1 1 0.000000000000000 12.779999999999999 20.905853247356347 0.000000000000000 + 334 1 1 0.000000000000000 13.489999999999998 19.676097173982445 0.000000000000000 + 335 1 1 0.000000000000000 14.910000000000000 19.676097173982445 0.000000000000000 + 336 1 1 0.000000000000000 15.619999999999999 20.905853247356347 0.000000000000000 + 337 1 1 0.000000000000000 17.039999999999999 20.905853247356347 0.000000000000000 + 338 1 1 0.000000000000000 17.750000000000000 19.676097173982445 0.000000000000000 + 339 1 1 0.000000000000000 19.169999999999998 19.676097173982445 0.000000000000000 + 340 1 1 0.000000000000000 19.879999999999999 20.905853247356347 0.000000000000000 + 341 1 1 0.000000000000000 21.299999999999997 20.905853247356347 0.000000000000000 + 342 1 1 0.000000000000000 22.009999999999998 19.676097173982445 0.000000000000000 + 343 1 1 0.000000000000000 23.429999999999996 19.676097173982445 0.000000000000000 + 344 1 1 0.000000000000000 24.139999999999997 20.905853247356347 0.000000000000000 + 345 1 1 0.000000000000000 25.559999999999999 20.905853247356347 0.000000000000000 + 346 1 1 0.000000000000000 26.270000000000000 19.676097173982445 0.000000000000000 + 347 1 1 0.000000000000000 27.689999999999998 19.676097173982445 0.000000000000000 + 348 1 1 0.000000000000000 28.399999999999999 20.905853247356347 0.000000000000000 + 349 1 1 0.000000000000000 29.820000000000000 20.905853247356347 0.000000000000000 + 350 1 1 0.000000000000000 30.530000000000001 19.676097173982445 0.000000000000000 + 351 1 1 0.000000000000000 31.949999999999999 19.676097173982445 0.000000000000000 + 352 1 1 0.000000000000000 32.659999999999997 20.905853247356347 0.000000000000000 + 353 1 1 0.000000000000000 34.079999999999998 20.905853247356347 0.000000000000000 + 354 1 1 0.000000000000000 34.789999999999999 19.676097173982445 0.000000000000000 + 355 1 1 0.000000000000000 36.210000000000001 19.676097173982445 0.000000000000000 + 356 1 1 0.000000000000000 36.920000000000002 20.905853247356347 0.000000000000000 + 357 1 1 0.000000000000000 38.339999999999996 20.905853247356347 0.000000000000000 + 358 1 1 0.000000000000000 39.049999999999997 19.676097173982445 0.000000000000000 + 359 1 1 0.000000000000000 40.469999999999999 19.676097173982445 0.000000000000000 + 360 1 1 0.000000000000000 41.179999999999993 20.905853247356347 0.000000000000000 + 361 1 1 0.000000000000000 0.000000000000000 23.365365394104153 0.000000000000000 + 362 1 1 0.000000000000000 0.710000000000000 22.135609320730250 0.000000000000000 + 363 1 1 0.000000000000000 2.130000000000000 22.135609320730250 0.000000000000000 + 364 1 1 0.000000000000000 2.840000000000000 23.365365394104153 0.000000000000000 + 365 1 1 0.000000000000000 4.260000000000000 23.365365394104153 0.000000000000000 + 366 1 1 0.000000000000000 4.970000000000000 22.135609320730250 0.000000000000000 + 367 1 1 0.000000000000000 6.390000000000000 22.135609320730250 0.000000000000000 + 368 1 1 0.000000000000000 7.100000000000000 23.365365394104153 0.000000000000000 + 369 1 1 0.000000000000000 8.520000000000000 23.365365394104153 0.000000000000000 + 370 1 1 0.000000000000000 9.230000000000000 22.135609320730250 0.000000000000000 + 371 1 1 0.000000000000000 10.649999999999999 22.135609320730250 0.000000000000000 + 372 1 1 0.000000000000000 11.359999999999999 23.365365394104153 0.000000000000000 + 373 1 1 0.000000000000000 12.779999999999999 23.365365394104153 0.000000000000000 + 374 1 1 0.000000000000000 13.489999999999998 22.135609320730250 0.000000000000000 + 375 1 1 0.000000000000000 14.910000000000000 22.135609320730250 0.000000000000000 + 376 1 1 0.000000000000000 15.619999999999999 23.365365394104153 0.000000000000000 + 377 1 1 0.000000000000000 17.039999999999999 23.365365394104153 0.000000000000000 + 378 1 1 0.000000000000000 17.750000000000000 22.135609320730250 0.000000000000000 + 379 1 1 0.000000000000000 19.169999999999998 22.135609320730250 0.000000000000000 + 380 1 1 0.000000000000000 19.879999999999999 23.365365394104153 0.000000000000000 + 381 1 1 0.000000000000000 21.299999999999997 23.365365394104153 0.000000000000000 + 382 1 1 0.000000000000000 22.009999999999998 22.135609320730250 0.000000000000000 + 383 1 1 0.000000000000000 23.429999999999996 22.135609320730250 0.000000000000000 + 384 1 1 0.000000000000000 24.139999999999997 23.365365394104153 0.000000000000000 + 385 1 1 0.000000000000000 25.559999999999999 23.365365394104153 0.000000000000000 + 386 1 1 0.000000000000000 26.270000000000000 22.135609320730250 0.000000000000000 + 387 1 1 0.000000000000000 27.689999999999998 22.135609320730250 0.000000000000000 + 388 1 1 0.000000000000000 28.399999999999999 23.365365394104153 0.000000000000000 + 389 1 1 0.000000000000000 29.820000000000000 23.365365394104153 0.000000000000000 + 390 1 1 0.000000000000000 30.530000000000001 22.135609320730250 0.000000000000000 + 391 1 1 0.000000000000000 31.949999999999999 22.135609320730250 0.000000000000000 + 392 1 1 0.000000000000000 32.659999999999997 23.365365394104153 0.000000000000000 + 393 1 1 0.000000000000000 34.079999999999998 23.365365394104153 0.000000000000000 + 394 1 1 0.000000000000000 34.789999999999999 22.135609320730250 0.000000000000000 + 395 1 1 0.000000000000000 36.210000000000001 22.135609320730250 0.000000000000000 + 396 1 1 0.000000000000000 36.920000000000002 23.365365394104153 0.000000000000000 + 397 1 1 0.000000000000000 38.339999999999996 23.365365394104153 0.000000000000000 + 398 1 1 0.000000000000000 39.049999999999997 22.135609320730250 0.000000000000000 + 399 1 1 0.000000000000000 40.469999999999999 22.135609320730250 0.000000000000000 + 400 1 1 0.000000000000000 41.179999999999993 23.365365394104153 0.000000000000000 + 401 1 1 0.000000000000000 0.000000000000000 25.824877540851958 0.000000000000000 + 402 1 1 0.000000000000000 0.710000000000000 24.595121467478055 0.000000000000000 + 403 1 1 0.000000000000000 2.130000000000000 24.595121467478055 0.000000000000000 + 404 1 1 0.000000000000000 2.840000000000000 25.824877540851958 0.000000000000000 + 405 1 1 0.000000000000000 4.260000000000000 25.824877540851958 0.000000000000000 + 406 1 1 0.000000000000000 4.970000000000000 24.595121467478055 0.000000000000000 + 407 1 1 0.000000000000000 6.390000000000000 24.595121467478055 0.000000000000000 + 408 1 1 0.000000000000000 7.100000000000000 25.824877540851958 0.000000000000000 + 409 1 1 0.000000000000000 8.520000000000000 25.824877540851958 0.000000000000000 + 410 1 1 0.000000000000000 9.230000000000000 24.595121467478055 0.000000000000000 + 411 1 1 0.000000000000000 10.649999999999999 24.595121467478055 0.000000000000000 + 412 1 1 0.000000000000000 11.359999999999999 25.824877540851958 0.000000000000000 + 413 1 1 0.000000000000000 12.779999999999999 25.824877540851958 0.000000000000000 + 414 1 1 0.000000000000000 13.489999999999998 24.595121467478055 0.000000000000000 + 415 1 1 0.000000000000000 14.910000000000000 24.595121467478055 0.000000000000000 + 416 1 1 0.000000000000000 15.619999999999999 25.824877540851958 0.000000000000000 + 417 1 1 0.000000000000000 17.039999999999999 25.824877540851958 0.000000000000000 + 418 1 1 0.000000000000000 17.750000000000000 24.595121467478055 0.000000000000000 + 419 1 1 0.000000000000000 19.169999999999998 24.595121467478055 0.000000000000000 + 420 1 1 0.000000000000000 19.879999999999999 25.824877540851958 0.000000000000000 + 421 1 1 0.000000000000000 21.299999999999997 25.824877540851958 0.000000000000000 + 422 1 1 0.000000000000000 22.009999999999998 24.595121467478055 0.000000000000000 + 423 1 1 0.000000000000000 23.429999999999996 24.595121467478055 0.000000000000000 + 424 1 1 0.000000000000000 24.139999999999997 25.824877540851958 0.000000000000000 + 425 1 1 0.000000000000000 25.559999999999999 25.824877540851958 0.000000000000000 + 426 1 1 0.000000000000000 26.270000000000000 24.595121467478055 0.000000000000000 + 427 1 1 0.000000000000000 27.689999999999998 24.595121467478055 0.000000000000000 + 428 1 1 0.000000000000000 28.399999999999999 25.824877540851958 0.000000000000000 + 429 1 1 0.000000000000000 29.820000000000000 25.824877540851958 0.000000000000000 + 430 1 1 0.000000000000000 30.530000000000001 24.595121467478055 0.000000000000000 + 431 1 1 0.000000000000000 31.949999999999999 24.595121467478055 0.000000000000000 + 432 1 1 0.000000000000000 32.659999999999997 25.824877540851958 0.000000000000000 + 433 1 1 0.000000000000000 34.079999999999998 25.824877540851958 0.000000000000000 + 434 1 1 0.000000000000000 34.789999999999999 24.595121467478055 0.000000000000000 + 435 1 1 0.000000000000000 36.210000000000001 24.595121467478055 0.000000000000000 + 436 1 1 0.000000000000000 36.920000000000002 25.824877540851958 0.000000000000000 + 437 1 1 0.000000000000000 38.339999999999996 25.824877540851958 0.000000000000000 + 438 1 1 0.000000000000000 39.049999999999997 24.595121467478055 0.000000000000000 + 439 1 1 0.000000000000000 40.469999999999999 24.595121467478055 0.000000000000000 + 440 1 1 0.000000000000000 41.179999999999993 25.824877540851958 0.000000000000000 + 441 1 1 0.000000000000000 0.000000000000000 28.284389687599763 0.000000000000000 + 442 1 1 0.000000000000000 0.710000000000000 27.054633614225860 0.000000000000000 + 443 1 1 0.000000000000000 2.130000000000000 27.054633614225860 0.000000000000000 + 444 1 1 0.000000000000000 2.840000000000000 28.284389687599763 0.000000000000000 + 445 1 1 0.000000000000000 4.260000000000000 28.284389687599763 0.000000000000000 + 446 1 1 0.000000000000000 4.970000000000000 27.054633614225860 0.000000000000000 + 447 1 1 0.000000000000000 6.390000000000000 27.054633614225860 0.000000000000000 + 448 1 1 0.000000000000000 7.100000000000000 28.284389687599763 0.000000000000000 + 449 1 1 0.000000000000000 8.520000000000000 28.284389687599763 0.000000000000000 + 450 1 1 0.000000000000000 9.230000000000000 27.054633614225860 0.000000000000000 + 451 1 1 0.000000000000000 10.649999999999999 27.054633614225860 0.000000000000000 + 452 1 1 0.000000000000000 11.359999999999999 28.284389687599763 0.000000000000000 + 453 1 1 0.000000000000000 12.779999999999999 28.284389687599763 0.000000000000000 + 454 1 1 0.000000000000000 13.489999999999998 27.054633614225860 0.000000000000000 + 455 1 1 0.000000000000000 14.910000000000000 27.054633614225860 0.000000000000000 + 456 1 1 0.000000000000000 15.619999999999999 28.284389687599763 0.000000000000000 + 457 1 1 0.000000000000000 17.039999999999999 28.284389687599763 0.000000000000000 + 458 1 1 0.000000000000000 17.750000000000000 27.054633614225860 0.000000000000000 + 459 1 1 0.000000000000000 19.169999999999998 27.054633614225860 0.000000000000000 + 460 1 1 0.000000000000000 19.879999999999999 28.284389687599763 0.000000000000000 + 461 1 1 0.000000000000000 21.299999999999997 28.284389687599763 0.000000000000000 + 462 1 1 0.000000000000000 22.009999999999998 27.054633614225860 0.000000000000000 + 463 1 1 0.000000000000000 23.429999999999996 27.054633614225860 0.000000000000000 + 464 1 1 0.000000000000000 24.139999999999997 28.284389687599763 0.000000000000000 + 465 1 1 0.000000000000000 25.559999999999999 28.284389687599763 0.000000000000000 + 466 1 1 0.000000000000000 26.270000000000000 27.054633614225860 0.000000000000000 + 467 1 1 0.000000000000000 27.689999999999998 27.054633614225860 0.000000000000000 + 468 1 1 0.000000000000000 28.399999999999999 28.284389687599763 0.000000000000000 + 469 1 1 0.000000000000000 29.820000000000000 28.284389687599763 0.000000000000000 + 470 1 1 0.000000000000000 30.530000000000001 27.054633614225860 0.000000000000000 + 471 1 1 0.000000000000000 31.949999999999999 27.054633614225860 0.000000000000000 + 472 1 1 0.000000000000000 32.659999999999997 28.284389687599763 0.000000000000000 + 473 1 1 0.000000000000000 34.079999999999998 28.284389687599763 0.000000000000000 + 474 1 1 0.000000000000000 34.789999999999999 27.054633614225860 0.000000000000000 + 475 1 1 0.000000000000000 36.210000000000001 27.054633614225860 0.000000000000000 + 476 1 1 0.000000000000000 36.920000000000002 28.284389687599763 0.000000000000000 + 477 1 1 0.000000000000000 38.339999999999996 28.284389687599763 0.000000000000000 + 478 1 1 0.000000000000000 39.049999999999997 27.054633614225860 0.000000000000000 + 479 1 1 0.000000000000000 40.469999999999999 27.054633614225860 0.000000000000000 + 480 1 1 0.000000000000000 41.179999999999993 28.284389687599763 0.000000000000000 + 481 1 1 0.000000000000000 0.000000000000000 30.743901834347572 0.000000000000000 + 482 1 1 0.000000000000000 0.710000000000000 29.514145760973669 0.000000000000000 + 483 1 1 0.000000000000000 2.130000000000000 29.514145760973669 0.000000000000000 + 484 1 1 0.000000000000000 2.840000000000000 30.743901834347572 0.000000000000000 + 485 1 1 0.000000000000000 4.260000000000000 30.743901834347572 0.000000000000000 + 486 1 1 0.000000000000000 4.970000000000000 29.514145760973669 0.000000000000000 + 487 1 1 0.000000000000000 6.390000000000000 29.514145760973669 0.000000000000000 + 488 1 1 0.000000000000000 7.100000000000000 30.743901834347572 0.000000000000000 + 489 1 1 0.000000000000000 8.520000000000000 30.743901834347572 0.000000000000000 + 490 1 1 0.000000000000000 9.230000000000000 29.514145760973669 0.000000000000000 + 491 1 1 0.000000000000000 10.649999999999999 29.514145760973669 0.000000000000000 + 492 1 1 0.000000000000000 11.359999999999999 30.743901834347572 0.000000000000000 + 493 1 1 0.000000000000000 12.779999999999999 30.743901834347572 0.000000000000000 + 494 1 1 0.000000000000000 13.489999999999998 29.514145760973669 0.000000000000000 + 495 1 1 0.000000000000000 14.910000000000000 29.514145760973669 0.000000000000000 + 496 1 1 0.000000000000000 15.619999999999999 30.743901834347572 0.000000000000000 + 497 1 1 0.000000000000000 17.039999999999999 30.743901834347572 0.000000000000000 + 498 1 1 0.000000000000000 17.750000000000000 29.514145760973669 0.000000000000000 + 499 1 1 0.000000000000000 19.169999999999998 29.514145760973669 0.000000000000000 + 500 1 1 0.000000000000000 19.879999999999999 30.743901834347572 0.000000000000000 + 501 1 1 0.000000000000000 21.299999999999997 30.743901834347572 0.000000000000000 + 502 1 1 0.000000000000000 22.009999999999998 29.514145760973669 0.000000000000000 + 503 1 1 0.000000000000000 23.429999999999996 29.514145760973669 0.000000000000000 + 504 1 1 0.000000000000000 24.139999999999997 30.743901834347572 0.000000000000000 + 505 1 1 0.000000000000000 25.559999999999999 30.743901834347572 0.000000000000000 + 506 1 1 0.000000000000000 26.270000000000000 29.514145760973669 0.000000000000000 + 507 1 1 0.000000000000000 27.689999999999998 29.514145760973669 0.000000000000000 + 508 1 1 0.000000000000000 28.399999999999999 30.743901834347572 0.000000000000000 + 509 1 1 0.000000000000000 29.820000000000000 30.743901834347572 0.000000000000000 + 510 1 1 0.000000000000000 30.530000000000001 29.514145760973669 0.000000000000000 + 511 1 1 0.000000000000000 31.949999999999999 29.514145760973669 0.000000000000000 + 512 1 1 0.000000000000000 32.659999999999997 30.743901834347572 0.000000000000000 + 513 1 1 0.000000000000000 34.079999999999998 30.743901834347572 0.000000000000000 + 514 1 1 0.000000000000000 34.789999999999999 29.514145760973669 0.000000000000000 + 515 1 1 0.000000000000000 36.210000000000001 29.514145760973669 0.000000000000000 + 516 1 1 0.000000000000000 36.920000000000002 30.743901834347572 0.000000000000000 + 517 1 1 0.000000000000000 38.339999999999996 30.743901834347572 0.000000000000000 + 518 1 1 0.000000000000000 39.049999999999997 29.514145760973669 0.000000000000000 + 519 1 1 0.000000000000000 40.469999999999999 29.514145760973669 0.000000000000000 + 520 1 1 0.000000000000000 41.179999999999993 30.743901834347572 0.000000000000000 + 521 1 1 0.000000000000000 0.000000000000000 33.203413981095380 0.000000000000000 + 522 1 1 0.000000000000000 0.710000000000000 31.973657907721474 0.000000000000000 + 523 1 1 0.000000000000000 2.130000000000000 31.973657907721474 0.000000000000000 + 524 1 1 0.000000000000000 2.840000000000000 33.203413981095380 0.000000000000000 + 525 1 1 0.000000000000000 4.260000000000000 33.203413981095380 0.000000000000000 + 526 1 1 0.000000000000000 4.970000000000000 31.973657907721474 0.000000000000000 + 527 1 1 0.000000000000000 6.390000000000000 31.973657907721474 0.000000000000000 + 528 1 1 0.000000000000000 7.100000000000000 33.203413981095380 0.000000000000000 + 529 1 1 0.000000000000000 8.520000000000000 33.203413981095380 0.000000000000000 + 530 1 1 0.000000000000000 9.230000000000000 31.973657907721474 0.000000000000000 + 531 1 1 0.000000000000000 10.649999999999999 31.973657907721474 0.000000000000000 + 532 1 1 0.000000000000000 11.359999999999999 33.203413981095380 0.000000000000000 + 533 1 1 0.000000000000000 12.779999999999999 33.203413981095380 0.000000000000000 + 534 1 1 0.000000000000000 13.489999999999998 31.973657907721474 0.000000000000000 + 535 1 1 0.000000000000000 14.910000000000000 31.973657907721474 0.000000000000000 + 536 1 1 0.000000000000000 15.619999999999999 33.203413981095380 0.000000000000000 + 537 1 1 0.000000000000000 17.039999999999999 33.203413981095380 0.000000000000000 + 538 1 1 0.000000000000000 17.750000000000000 31.973657907721474 0.000000000000000 + 539 1 1 0.000000000000000 19.169999999999998 31.973657907721474 0.000000000000000 + 540 1 1 0.000000000000000 19.879999999999999 33.203413981095380 0.000000000000000 + 541 1 1 0.000000000000000 21.299999999999997 33.203413981095380 0.000000000000000 + 542 1 1 0.000000000000000 22.009999999999998 31.973657907721474 0.000000000000000 + 543 1 1 0.000000000000000 23.429999999999996 31.973657907721474 0.000000000000000 + 544 1 1 0.000000000000000 24.139999999999997 33.203413981095380 0.000000000000000 + 545 1 1 0.000000000000000 25.559999999999999 33.203413981095380 0.000000000000000 + 546 1 1 0.000000000000000 26.270000000000000 31.973657907721474 0.000000000000000 + 547 1 1 0.000000000000000 27.689999999999998 31.973657907721474 0.000000000000000 + 548 1 1 0.000000000000000 28.399999999999999 33.203413981095380 0.000000000000000 + 549 1 1 0.000000000000000 29.820000000000000 33.203413981095380 0.000000000000000 + 550 1 1 0.000000000000000 30.530000000000001 31.973657907721474 0.000000000000000 + 551 1 1 0.000000000000000 31.949999999999999 31.973657907721474 0.000000000000000 + 552 1 1 0.000000000000000 32.659999999999997 33.203413981095380 0.000000000000000 + 553 1 1 0.000000000000000 34.079999999999998 33.203413981095380 0.000000000000000 + 554 1 1 0.000000000000000 34.789999999999999 31.973657907721474 0.000000000000000 + 555 1 1 0.000000000000000 36.210000000000001 31.973657907721474 0.000000000000000 + 556 1 1 0.000000000000000 36.920000000000002 33.203413981095380 0.000000000000000 + 557 1 1 0.000000000000000 38.339999999999996 33.203413981095380 0.000000000000000 + 558 1 1 0.000000000000000 39.049999999999997 31.973657907721474 0.000000000000000 + 559 1 1 0.000000000000000 40.469999999999999 31.973657907721474 0.000000000000000 + 560 1 1 0.000000000000000 41.179999999999993 33.203413981095380 0.000000000000000 + 561 1 1 0.000000000000000 0.000000000000000 35.662926127843185 0.000000000000000 + 562 1 1 0.000000000000000 0.710000000000000 34.433170054469279 0.000000000000000 + 563 1 1 0.000000000000000 2.130000000000000 34.433170054469279 0.000000000000000 + 564 1 1 0.000000000000000 2.840000000000000 35.662926127843185 0.000000000000000 + 565 1 1 0.000000000000000 4.260000000000000 35.662926127843185 0.000000000000000 + 566 1 1 0.000000000000000 4.970000000000000 34.433170054469279 0.000000000000000 + 567 1 1 0.000000000000000 6.390000000000000 34.433170054469279 0.000000000000000 + 568 1 1 0.000000000000000 7.100000000000000 35.662926127843185 0.000000000000000 + 569 1 1 0.000000000000000 8.520000000000000 35.662926127843185 0.000000000000000 + 570 1 1 0.000000000000000 9.230000000000000 34.433170054469279 0.000000000000000 + 571 1 1 0.000000000000000 10.649999999999999 34.433170054469279 0.000000000000000 + 572 1 1 0.000000000000000 11.359999999999999 35.662926127843185 0.000000000000000 + 573 1 1 0.000000000000000 12.779999999999999 35.662926127843185 0.000000000000000 + 574 1 1 0.000000000000000 13.489999999999998 34.433170054469279 0.000000000000000 + 575 1 1 0.000000000000000 14.910000000000000 34.433170054469279 0.000000000000000 + 576 1 1 0.000000000000000 15.619999999999999 35.662926127843185 0.000000000000000 + 577 1 1 0.000000000000000 17.039999999999999 35.662926127843185 0.000000000000000 + 578 1 1 0.000000000000000 17.750000000000000 34.433170054469279 0.000000000000000 + 579 1 1 0.000000000000000 19.169999999999998 34.433170054469279 0.000000000000000 + 580 1 1 0.000000000000000 19.879999999999999 35.662926127843185 0.000000000000000 + 581 1 1 0.000000000000000 21.299999999999997 35.662926127843185 0.000000000000000 + 582 1 1 0.000000000000000 22.009999999999998 34.433170054469279 0.000000000000000 + 583 1 1 0.000000000000000 23.429999999999996 34.433170054469279 0.000000000000000 + 584 1 1 0.000000000000000 24.139999999999997 35.662926127843185 0.000000000000000 + 585 1 1 0.000000000000000 25.559999999999999 35.662926127843185 0.000000000000000 + 586 1 1 0.000000000000000 26.270000000000000 34.433170054469279 0.000000000000000 + 587 1 1 0.000000000000000 27.689999999999998 34.433170054469279 0.000000000000000 + 588 1 1 0.000000000000000 28.399999999999999 35.662926127843185 0.000000000000000 + 589 1 1 0.000000000000000 29.820000000000000 35.662926127843185 0.000000000000000 + 590 1 1 0.000000000000000 30.530000000000001 34.433170054469279 0.000000000000000 + 591 1 1 0.000000000000000 31.949999999999999 34.433170054469279 0.000000000000000 + 592 1 1 0.000000000000000 32.659999999999997 35.662926127843185 0.000000000000000 + 593 1 1 0.000000000000000 34.079999999999998 35.662926127843185 0.000000000000000 + 594 1 1 0.000000000000000 34.789999999999999 34.433170054469279 0.000000000000000 + 595 1 1 0.000000000000000 36.210000000000001 34.433170054469279 0.000000000000000 + 596 1 1 0.000000000000000 36.920000000000002 35.662926127843185 0.000000000000000 + 597 1 1 0.000000000000000 38.339999999999996 35.662926127843185 0.000000000000000 + 598 1 1 0.000000000000000 39.049999999999997 34.433170054469279 0.000000000000000 + 599 1 1 0.000000000000000 40.469999999999999 34.433170054469279 0.000000000000000 + 600 1 1 0.000000000000000 41.179999999999993 35.662926127843185 0.000000000000000 + 601 1 1 0.000000000000000 0.000000000000000 38.122438274590991 0.000000000000000 + 602 1 1 0.000000000000000 0.710000000000000 36.892682201217085 0.000000000000000 + 603 1 1 0.000000000000000 2.130000000000000 36.892682201217085 0.000000000000000 + 604 1 1 0.000000000000000 2.840000000000000 38.122438274590991 0.000000000000000 + 605 1 1 0.000000000000000 4.260000000000000 38.122438274590991 0.000000000000000 + 606 1 1 0.000000000000000 4.970000000000000 36.892682201217085 0.000000000000000 + 607 1 1 0.000000000000000 6.390000000000000 36.892682201217085 0.000000000000000 + 608 1 1 0.000000000000000 7.100000000000000 38.122438274590991 0.000000000000000 + 609 1 1 0.000000000000000 8.520000000000000 38.122438274590991 0.000000000000000 + 610 1 1 0.000000000000000 9.230000000000000 36.892682201217085 0.000000000000000 + 611 1 1 0.000000000000000 10.649999999999999 36.892682201217085 0.000000000000000 + 612 1 1 0.000000000000000 11.359999999999999 38.122438274590991 0.000000000000000 + 613 1 1 0.000000000000000 12.779999999999999 38.122438274590991 0.000000000000000 + 614 1 1 0.000000000000000 13.489999999999998 36.892682201217085 0.000000000000000 + 615 1 1 0.000000000000000 14.910000000000000 36.892682201217085 0.000000000000000 + 616 1 1 0.000000000000000 15.619999999999999 38.122438274590991 0.000000000000000 + 617 1 1 0.000000000000000 17.039999999999999 38.122438274590991 0.000000000000000 + 618 1 1 0.000000000000000 17.750000000000000 36.892682201217085 0.000000000000000 + 619 1 1 0.000000000000000 19.169999999999998 36.892682201217085 0.000000000000000 + 620 1 1 0.000000000000000 19.879999999999999 38.122438274590991 0.000000000000000 + 621 1 1 0.000000000000000 21.299999999999997 38.122438274590991 0.000000000000000 + 622 1 1 0.000000000000000 22.009999999999998 36.892682201217085 0.000000000000000 + 623 1 1 0.000000000000000 23.429999999999996 36.892682201217085 0.000000000000000 + 624 1 1 0.000000000000000 24.139999999999997 38.122438274590991 0.000000000000000 + 625 1 1 0.000000000000000 25.559999999999999 38.122438274590991 0.000000000000000 + 626 1 1 0.000000000000000 26.270000000000000 36.892682201217085 0.000000000000000 + 627 1 1 0.000000000000000 27.689999999999998 36.892682201217085 0.000000000000000 + 628 1 1 0.000000000000000 28.399999999999999 38.122438274590991 0.000000000000000 + 629 1 1 0.000000000000000 29.820000000000000 38.122438274590991 0.000000000000000 + 630 1 1 0.000000000000000 30.530000000000001 36.892682201217085 0.000000000000000 + 631 1 1 0.000000000000000 31.949999999999999 36.892682201217085 0.000000000000000 + 632 1 1 0.000000000000000 32.659999999999997 38.122438274590991 0.000000000000000 + 633 1 1 0.000000000000000 34.079999999999998 38.122438274590991 0.000000000000000 + 634 1 1 0.000000000000000 34.789999999999999 36.892682201217085 0.000000000000000 + 635 1 1 0.000000000000000 36.210000000000001 36.892682201217085 0.000000000000000 + 636 1 1 0.000000000000000 36.920000000000002 38.122438274590991 0.000000000000000 + 637 1 1 0.000000000000000 38.339999999999996 38.122438274590991 0.000000000000000 + 638 1 1 0.000000000000000 39.049999999999997 36.892682201217085 0.000000000000000 + 639 1 1 0.000000000000000 40.469999999999999 36.892682201217085 0.000000000000000 + 640 1 1 0.000000000000000 41.179999999999993 38.122438274590991 0.000000000000000 + 641 1 1 0.000000000000000 0.000000000000000 40.581950421338796 0.000000000000000 + 642 1 1 0.000000000000000 0.710000000000000 39.352194347964890 0.000000000000000 + 643 1 1 0.000000000000000 2.130000000000000 39.352194347964890 0.000000000000000 + 644 1 1 0.000000000000000 2.840000000000000 40.581950421338796 0.000000000000000 + 645 1 1 0.000000000000000 4.260000000000000 40.581950421338796 0.000000000000000 + 646 1 1 0.000000000000000 4.970000000000000 39.352194347964890 0.000000000000000 + 647 1 1 0.000000000000000 6.390000000000000 39.352194347964890 0.000000000000000 + 648 1 1 0.000000000000000 7.100000000000000 40.581950421338796 0.000000000000000 + 649 1 1 0.000000000000000 8.520000000000000 40.581950421338796 0.000000000000000 + 650 1 1 0.000000000000000 9.230000000000000 39.352194347964890 0.000000000000000 + 651 1 1 0.000000000000000 10.649999999999999 39.352194347964890 0.000000000000000 + 652 1 1 0.000000000000000 11.359999999999999 40.581950421338796 0.000000000000000 + 653 1 1 0.000000000000000 12.779999999999999 40.581950421338796 0.000000000000000 + 654 1 1 0.000000000000000 13.489999999999998 39.352194347964890 0.000000000000000 + 655 1 1 0.000000000000000 14.910000000000000 39.352194347964890 0.000000000000000 + 656 1 1 0.000000000000000 15.619999999999999 40.581950421338796 0.000000000000000 + 657 1 1 0.000000000000000 17.039999999999999 40.581950421338796 0.000000000000000 + 658 1 1 0.000000000000000 17.750000000000000 39.352194347964890 0.000000000000000 + 659 1 1 0.000000000000000 19.169999999999998 39.352194347964890 0.000000000000000 + 660 1 1 0.000000000000000 19.879999999999999 40.581950421338796 0.000000000000000 + 661 1 1 0.000000000000000 21.299999999999997 40.581950421338796 0.000000000000000 + 662 1 1 0.000000000000000 22.009999999999998 39.352194347964890 0.000000000000000 + 663 1 1 0.000000000000000 23.429999999999996 39.352194347964890 0.000000000000000 + 664 1 1 0.000000000000000 24.139999999999997 40.581950421338796 0.000000000000000 + 665 1 1 0.000000000000000 25.559999999999999 40.581950421338796 0.000000000000000 + 666 1 1 0.000000000000000 26.270000000000000 39.352194347964890 0.000000000000000 + 667 1 1 0.000000000000000 27.689999999999998 39.352194347964890 0.000000000000000 + 668 1 1 0.000000000000000 28.399999999999999 40.581950421338796 0.000000000000000 + 669 1 1 0.000000000000000 29.820000000000000 40.581950421338796 0.000000000000000 + 670 1 1 0.000000000000000 30.530000000000001 39.352194347964890 0.000000000000000 + 671 1 1 0.000000000000000 31.949999999999999 39.352194347964890 0.000000000000000 + 672 1 1 0.000000000000000 32.659999999999997 40.581950421338796 0.000000000000000 + 673 1 1 0.000000000000000 34.079999999999998 40.581950421338796 0.000000000000000 + 674 1 1 0.000000000000000 34.789999999999999 39.352194347964890 0.000000000000000 + 675 1 1 0.000000000000000 36.210000000000001 39.352194347964890 0.000000000000000 + 676 1 1 0.000000000000000 36.920000000000002 40.581950421338796 0.000000000000000 + 677 1 1 0.000000000000000 38.339999999999996 40.581950421338796 0.000000000000000 + 678 1 1 0.000000000000000 39.049999999999997 39.352194347964890 0.000000000000000 + 679 1 1 0.000000000000000 40.469999999999999 39.352194347964890 0.000000000000000 + 680 1 1 0.000000000000000 41.179999999999993 40.581950421338796 0.000000000000000 + 681 2 2 0.000000000000000 1.420000000000000 1.229756073373903 3.3000000000000000 + 682 2 2 0.000000000000000 2.130000000000000 0.000000000000000 3.3000000000000000 + 683 2 2 0.000000000000000 3.550000000000000 0.000000000000000 3.3000000000000000 + 684 2 2 0.000000000000000 4.260000000000000 1.229756073373903 3.3000000000000000 + 685 2 2 0.000000000000000 5.680000000000000 1.229756073373903 3.3000000000000000 + 686 2 2 0.000000000000000 6.390000000000000 0.000000000000000 3.3000000000000000 + 687 2 2 0.000000000000000 7.810000000000000 0.000000000000000 3.3000000000000000 + 688 2 2 0.000000000000000 8.520000000000000 1.229756073373903 3.3000000000000000 + 689 2 2 0.000000000000000 9.940000000000000 1.229756073373903 3.3000000000000000 + 690 2 2 0.000000000000000 10.650000000000000 0.000000000000000 3.3000000000000000 + 691 2 2 0.000000000000000 12.069999999999999 0.000000000000000 3.3000000000000000 + 692 2 2 0.000000000000000 12.779999999999999 1.229756073373903 3.3000000000000000 + 693 2 2 0.000000000000000 14.199999999999999 1.229756073373903 3.3000000000000000 + 694 2 2 0.000000000000000 14.909999999999998 0.000000000000000 3.3000000000000000 + 695 2 2 0.000000000000000 16.329999999999998 0.000000000000000 3.3000000000000000 + 696 2 2 0.000000000000000 17.039999999999999 1.229756073373903 3.3000000000000000 + 697 2 2 0.000000000000000 18.460000000000001 1.229756073373903 3.3000000000000000 + 698 2 2 0.000000000000000 19.170000000000002 0.000000000000000 3.3000000000000000 + 699 2 2 0.000000000000000 20.589999999999996 0.000000000000000 3.3000000000000000 + 700 2 2 0.000000000000000 21.299999999999997 1.229756073373903 3.3000000000000000 + 701 2 2 0.000000000000000 22.719999999999999 1.229756073373903 3.3000000000000000 + 702 2 2 0.000000000000000 23.430000000000000 0.000000000000000 3.3000000000000000 + 703 2 2 0.000000000000000 24.849999999999994 0.000000000000000 3.3000000000000000 + 704 2 2 0.000000000000000 25.559999999999995 1.229756073373903 3.3000000000000000 + 705 2 2 0.000000000000000 26.979999999999997 1.229756073373903 3.3000000000000000 + 706 2 2 0.000000000000000 27.689999999999998 0.000000000000000 3.3000000000000000 + 707 2 2 0.000000000000000 29.109999999999999 0.000000000000000 3.3000000000000000 + 708 2 2 0.000000000000000 29.820000000000000 1.229756073373903 3.3000000000000000 + 709 2 2 0.000000000000000 31.240000000000002 1.229756073373903 3.3000000000000000 + 710 2 2 0.000000000000000 31.950000000000003 0.000000000000000 3.3000000000000000 + 711 2 2 0.000000000000000 33.369999999999997 0.000000000000000 3.3000000000000000 + 712 2 2 0.000000000000000 34.079999999999998 1.229756073373903 3.3000000000000000 + 713 2 2 0.000000000000000 35.500000000000000 1.229756073373903 3.3000000000000000 + 714 2 2 0.000000000000000 36.210000000000001 0.000000000000000 3.3000000000000000 + 715 2 2 0.000000000000000 37.630000000000003 0.000000000000000 3.3000000000000000 + 716 2 2 0.000000000000000 38.340000000000003 1.229756073373903 3.3000000000000000 + 717 2 2 0.000000000000000 39.759999999999998 1.229756073373903 3.3000000000000000 + 718 2 2 0.000000000000000 40.469999999999999 0.000000000000000 3.3000000000000000 + 719 2 2 0.000000000000000 41.890000000000001 0.000000000000000 3.3000000000000000 + 720 2 2 0.000000000000000 42.599999999999994 1.229756073373903 3.3000000000000000 + 721 2 2 0.000000000000000 1.420000000000000 3.689268220121709 3.3000000000000000 + 722 2 2 0.000000000000000 2.130000000000000 2.459512146747806 3.3000000000000000 + 723 2 2 0.000000000000000 3.550000000000000 2.459512146747806 3.3000000000000000 + 724 2 2 0.000000000000000 4.260000000000000 3.689268220121709 3.3000000000000000 + 725 2 2 0.000000000000000 5.680000000000000 3.689268220121709 3.3000000000000000 + 726 2 2 0.000000000000000 6.390000000000000 2.459512146747806 3.3000000000000000 + 727 2 2 0.000000000000000 7.810000000000000 2.459512146747806 3.3000000000000000 + 728 2 2 0.000000000000000 8.520000000000000 3.689268220121709 3.3000000000000000 + 729 2 2 0.000000000000000 9.940000000000000 3.689268220121709 3.3000000000000000 + 730 2 2 0.000000000000000 10.650000000000000 2.459512146747806 3.3000000000000000 + 731 2 2 0.000000000000000 12.069999999999999 2.459512146747806 3.3000000000000000 + 732 2 2 0.000000000000000 12.779999999999999 3.689268220121709 3.3000000000000000 + 733 2 2 0.000000000000000 14.199999999999999 3.689268220121709 3.3000000000000000 + 734 2 2 0.000000000000000 14.909999999999998 2.459512146747806 3.3000000000000000 + 735 2 2 0.000000000000000 16.329999999999998 2.459512146747806 3.3000000000000000 + 736 2 2 0.000000000000000 17.039999999999999 3.689268220121709 3.3000000000000000 + 737 2 2 0.000000000000000 18.460000000000001 3.689268220121709 3.3000000000000000 + 738 2 2 0.000000000000000 19.170000000000002 2.459512146747806 3.3000000000000000 + 739 2 2 0.000000000000000 20.589999999999996 2.459512146747806 3.3000000000000000 + 740 2 2 0.000000000000000 21.299999999999997 3.689268220121709 3.3000000000000000 + 741 2 2 0.000000000000000 22.719999999999999 3.689268220121709 3.3000000000000000 + 742 2 2 0.000000000000000 23.430000000000000 2.459512146747806 3.3000000000000000 + 743 2 2 0.000000000000000 24.849999999999994 2.459512146747806 3.3000000000000000 + 744 2 2 0.000000000000000 25.559999999999995 3.689268220121709 3.3000000000000000 + 745 2 2 0.000000000000000 26.979999999999997 3.689268220121709 3.3000000000000000 + 746 2 2 0.000000000000000 27.689999999999998 2.459512146747806 3.3000000000000000 + 747 2 2 0.000000000000000 29.109999999999999 2.459512146747806 3.3000000000000000 + 748 2 2 0.000000000000000 29.820000000000000 3.689268220121709 3.3000000000000000 + 749 2 2 0.000000000000000 31.240000000000002 3.689268220121709 3.3000000000000000 + 750 2 2 0.000000000000000 31.950000000000003 2.459512146747806 3.3000000000000000 + 751 2 2 0.000000000000000 33.369999999999997 2.459512146747806 3.3000000000000000 + 752 2 2 0.000000000000000 34.079999999999998 3.689268220121709 3.3000000000000000 + 753 2 2 0.000000000000000 35.500000000000000 3.689268220121709 3.3000000000000000 + 754 2 2 0.000000000000000 36.210000000000001 2.459512146747806 3.3000000000000000 + 755 2 2 0.000000000000000 37.630000000000003 2.459512146747806 3.3000000000000000 + 756 2 2 0.000000000000000 38.340000000000003 3.689268220121709 3.3000000000000000 + 757 2 2 0.000000000000000 39.759999999999998 3.689268220121709 3.3000000000000000 + 758 2 2 0.000000000000000 40.469999999999999 2.459512146747806 3.3000000000000000 + 759 2 2 0.000000000000000 41.890000000000001 2.459512146747806 3.3000000000000000 + 760 2 2 0.000000000000000 42.599999999999994 3.689268220121709 3.3000000000000000 + 761 2 2 0.000000000000000 1.420000000000000 6.148780366869514 3.3000000000000000 + 762 2 2 0.000000000000000 2.130000000000000 4.919024293495611 3.3000000000000000 + 763 2 2 0.000000000000000 3.550000000000000 4.919024293495611 3.3000000000000000 + 764 2 2 0.000000000000000 4.260000000000000 6.148780366869514 3.3000000000000000 + 765 2 2 0.000000000000000 5.680000000000000 6.148780366869514 3.3000000000000000 + 766 2 2 0.000000000000000 6.390000000000000 4.919024293495611 3.3000000000000000 + 767 2 2 0.000000000000000 7.810000000000000 4.919024293495611 3.3000000000000000 + 768 2 2 0.000000000000000 8.520000000000000 6.148780366869514 3.3000000000000000 + 769 2 2 0.000000000000000 9.940000000000000 6.148780366869514 3.3000000000000000 + 770 2 2 0.000000000000000 10.650000000000000 4.919024293495611 3.3000000000000000 + 771 2 2 0.000000000000000 12.069999999999999 4.919024293495611 3.3000000000000000 + 772 2 2 0.000000000000000 12.779999999999999 6.148780366869514 3.3000000000000000 + 773 2 2 0.000000000000000 14.199999999999999 6.148780366869514 3.3000000000000000 + 774 2 2 0.000000000000000 14.909999999999998 4.919024293495611 3.3000000000000000 + 775 2 2 0.000000000000000 16.329999999999998 4.919024293495611 3.3000000000000000 + 776 2 2 0.000000000000000 17.039999999999999 6.148780366869514 3.3000000000000000 + 777 2 2 0.000000000000000 18.460000000000001 6.148780366869514 3.3000000000000000 + 778 2 2 0.000000000000000 19.170000000000002 4.919024293495611 3.3000000000000000 + 779 2 2 0.000000000000000 20.589999999999996 4.919024293495611 3.3000000000000000 + 780 2 2 0.000000000000000 21.299999999999997 6.148780366869514 3.3000000000000000 + 781 2 2 0.000000000000000 22.719999999999999 6.148780366869514 3.3000000000000000 + 782 2 2 0.000000000000000 23.430000000000000 4.919024293495611 3.3000000000000000 + 783 2 2 0.000000000000000 24.849999999999994 4.919024293495611 3.3000000000000000 + 784 2 2 0.000000000000000 25.559999999999995 6.148780366869514 3.3000000000000000 + 785 2 2 0.000000000000000 26.979999999999997 6.148780366869514 3.3000000000000000 + 786 2 2 0.000000000000000 27.689999999999998 4.919024293495611 3.3000000000000000 + 787 2 2 0.000000000000000 29.109999999999999 4.919024293495611 3.3000000000000000 + 788 2 2 0.000000000000000 29.820000000000000 6.148780366869514 3.3000000000000000 + 789 2 2 0.000000000000000 31.240000000000002 6.148780366869514 3.3000000000000000 + 790 2 2 0.000000000000000 31.950000000000003 4.919024293495611 3.3000000000000000 + 791 2 2 0.000000000000000 33.369999999999997 4.919024293495611 3.3000000000000000 + 792 2 2 0.000000000000000 34.079999999999998 6.148780366869514 3.3000000000000000 + 793 2 2 0.000000000000000 35.500000000000000 6.148780366869514 3.3000000000000000 + 794 2 2 0.000000000000000 36.210000000000001 4.919024293495611 3.3000000000000000 + 795 2 2 0.000000000000000 37.630000000000003 4.919024293495611 3.3000000000000000 + 796 2 2 0.000000000000000 38.340000000000003 6.148780366869514 3.3000000000000000 + 797 2 2 0.000000000000000 39.759999999999998 6.148780366869514 3.3000000000000000 + 798 2 2 0.000000000000000 40.469999999999999 4.919024293495611 3.3000000000000000 + 799 2 2 0.000000000000000 41.890000000000001 4.919024293495611 3.3000000000000000 + 800 2 2 0.000000000000000 42.599999999999994 6.148780366869514 3.3000000000000000 + 801 2 2 0.000000000000000 1.420000000000000 8.608292513617320 3.3000000000000000 + 802 2 2 0.000000000000000 2.130000000000000 7.378536440243417 3.3000000000000000 + 803 2 2 0.000000000000000 3.550000000000000 7.378536440243417 3.3000000000000000 + 804 2 2 0.000000000000000 4.260000000000000 8.608292513617320 3.3000000000000000 + 805 2 2 0.000000000000000 5.680000000000000 8.608292513617320 3.3000000000000000 + 806 2 2 0.000000000000000 6.390000000000000 7.378536440243417 3.3000000000000000 + 807 2 2 0.000000000000000 7.810000000000000 7.378536440243417 3.3000000000000000 + 808 2 2 0.000000000000000 8.520000000000000 8.608292513617320 3.3000000000000000 + 809 2 2 0.000000000000000 9.940000000000000 8.608292513617320 3.3000000000000000 + 810 2 2 0.000000000000000 10.650000000000000 7.378536440243417 3.3000000000000000 + 811 2 2 0.000000000000000 12.069999999999999 7.378536440243417 3.3000000000000000 + 812 2 2 0.000000000000000 12.779999999999999 8.608292513617320 3.3000000000000000 + 813 2 2 0.000000000000000 14.199999999999999 8.608292513617320 3.3000000000000000 + 814 2 2 0.000000000000000 14.909999999999998 7.378536440243417 3.3000000000000000 + 815 2 2 0.000000000000000 16.329999999999998 7.378536440243417 3.3000000000000000 + 816 2 2 0.000000000000000 17.039999999999999 8.608292513617320 3.3000000000000000 + 817 2 2 0.000000000000000 18.460000000000001 8.608292513617320 3.3000000000000000 + 818 2 2 0.000000000000000 19.170000000000002 7.378536440243417 3.3000000000000000 + 819 2 2 0.000000000000000 20.589999999999996 7.378536440243417 3.3000000000000000 + 820 2 2 0.000000000000000 21.299999999999997 8.608292513617320 3.3000000000000000 + 821 2 2 0.000000000000000 22.719999999999999 8.608292513617320 3.3000000000000000 + 822 2 2 0.000000000000000 23.430000000000000 7.378536440243417 3.3000000000000000 + 823 2 2 0.000000000000000 24.849999999999994 7.378536440243417 3.3000000000000000 + 824 2 2 0.000000000000000 25.559999999999995 8.608292513617320 3.3000000000000000 + 825 2 2 0.000000000000000 26.979999999999997 8.608292513617320 3.3000000000000000 + 826 2 2 0.000000000000000 27.689999999999998 7.378536440243417 3.3000000000000000 + 827 2 2 0.000000000000000 29.109999999999999 7.378536440243417 3.3000000000000000 + 828 2 2 0.000000000000000 29.820000000000000 8.608292513617320 3.3000000000000000 + 829 2 2 0.000000000000000 31.240000000000002 8.608292513617320 3.3000000000000000 + 830 2 2 0.000000000000000 31.950000000000003 7.378536440243417 3.3000000000000000 + 831 2 2 0.000000000000000 33.369999999999997 7.378536440243417 3.3000000000000000 + 832 2 2 0.000000000000000 34.079999999999998 8.608292513617320 3.3000000000000000 + 833 2 2 0.000000000000000 35.500000000000000 8.608292513617320 3.3000000000000000 + 834 2 2 0.000000000000000 36.210000000000001 7.378536440243417 3.3000000000000000 + 835 2 2 0.000000000000000 37.630000000000003 7.378536440243417 3.3000000000000000 + 836 2 2 0.000000000000000 38.340000000000003 8.608292513617320 3.3000000000000000 + 837 2 2 0.000000000000000 39.759999999999998 8.608292513617320 3.3000000000000000 + 838 2 2 0.000000000000000 40.469999999999999 7.378536440243417 3.3000000000000000 + 839 2 2 0.000000000000000 41.890000000000001 7.378536440243417 3.3000000000000000 + 840 2 2 0.000000000000000 42.599999999999994 8.608292513617320 3.3000000000000000 + 841 2 2 0.000000000000000 1.420000000000000 11.067804660365125 3.3000000000000000 + 842 2 2 0.000000000000000 2.130000000000000 9.838048586991222 3.3000000000000000 + 843 2 2 0.000000000000000 3.550000000000000 9.838048586991222 3.3000000000000000 + 844 2 2 0.000000000000000 4.260000000000000 11.067804660365125 3.3000000000000000 + 845 2 2 0.000000000000000 5.680000000000000 11.067804660365125 3.3000000000000000 + 846 2 2 0.000000000000000 6.390000000000000 9.838048586991222 3.3000000000000000 + 847 2 2 0.000000000000000 7.810000000000000 9.838048586991222 3.3000000000000000 + 848 2 2 0.000000000000000 8.520000000000000 11.067804660365125 3.3000000000000000 + 849 2 2 0.000000000000000 9.940000000000000 11.067804660365125 3.3000000000000000 + 850 2 2 0.000000000000000 10.650000000000000 9.838048586991222 3.3000000000000000 + 851 2 2 0.000000000000000 12.069999999999999 9.838048586991222 3.3000000000000000 + 852 2 2 0.000000000000000 12.779999999999999 11.067804660365125 3.3000000000000000 + 853 2 2 0.000000000000000 14.199999999999999 11.067804660365125 3.3000000000000000 + 854 2 2 0.000000000000000 14.909999999999998 9.838048586991222 3.3000000000000000 + 855 2 2 0.000000000000000 16.329999999999998 9.838048586991222 3.3000000000000000 + 856 2 2 0.000000000000000 17.039999999999999 11.067804660365125 3.3000000000000000 + 857 2 2 0.000000000000000 18.460000000000001 11.067804660365125 3.3000000000000000 + 858 2 2 0.000000000000000 19.170000000000002 9.838048586991222 3.3000000000000000 + 859 2 2 0.000000000000000 20.589999999999996 9.838048586991222 3.3000000000000000 + 860 2 2 0.000000000000000 21.299999999999997 11.067804660365125 3.3000000000000000 + 861 2 2 0.000000000000000 22.719999999999999 11.067804660365125 3.3000000000000000 + 862 2 2 0.000000000000000 23.430000000000000 9.838048586991222 3.3000000000000000 + 863 2 2 0.000000000000000 24.849999999999994 9.838048586991222 3.3000000000000000 + 864 2 2 0.000000000000000 25.559999999999995 11.067804660365125 3.3000000000000000 + 865 2 2 0.000000000000000 26.979999999999997 11.067804660365125 3.3000000000000000 + 866 2 2 0.000000000000000 27.689999999999998 9.838048586991222 3.3000000000000000 + 867 2 2 0.000000000000000 29.109999999999999 9.838048586991222 3.3000000000000000 + 868 2 2 0.000000000000000 29.820000000000000 11.067804660365125 3.3000000000000000 + 869 2 2 0.000000000000000 31.240000000000002 11.067804660365125 3.3000000000000000 + 870 2 2 0.000000000000000 31.950000000000003 9.838048586991222 3.3000000000000000 + 871 2 2 0.000000000000000 33.369999999999997 9.838048586991222 3.3000000000000000 + 872 2 2 0.000000000000000 34.079999999999998 11.067804660365125 3.3000000000000000 + 873 2 2 0.000000000000000 35.500000000000000 11.067804660365125 3.3000000000000000 + 874 2 2 0.000000000000000 36.210000000000001 9.838048586991222 3.3000000000000000 + 875 2 2 0.000000000000000 37.630000000000003 9.838048586991222 3.3000000000000000 + 876 2 2 0.000000000000000 38.340000000000003 11.067804660365125 3.3000000000000000 + 877 2 2 0.000000000000000 39.759999999999998 11.067804660365125 3.3000000000000000 + 878 2 2 0.000000000000000 40.469999999999999 9.838048586991222 3.3000000000000000 + 879 2 2 0.000000000000000 41.890000000000001 9.838048586991222 3.3000000000000000 + 880 2 2 0.000000000000000 42.599999999999994 11.067804660365125 3.3000000000000000 + 881 2 2 0.000000000000000 1.420000000000000 13.527316807112930 3.3000000000000000 + 882 2 2 0.000000000000000 2.130000000000000 12.297560733739028 3.3000000000000000 + 883 2 2 0.000000000000000 3.550000000000000 12.297560733739028 3.3000000000000000 + 884 2 2 0.000000000000000 4.260000000000000 13.527316807112930 3.3000000000000000 + 885 2 2 0.000000000000000 5.680000000000000 13.527316807112930 3.3000000000000000 + 886 2 2 0.000000000000000 6.390000000000000 12.297560733739028 3.3000000000000000 + 887 2 2 0.000000000000000 7.810000000000000 12.297560733739028 3.3000000000000000 + 888 2 2 0.000000000000000 8.520000000000000 13.527316807112930 3.3000000000000000 + 889 2 2 0.000000000000000 9.940000000000000 13.527316807112930 3.3000000000000000 + 890 2 2 0.000000000000000 10.650000000000000 12.297560733739028 3.3000000000000000 + 891 2 2 0.000000000000000 12.069999999999999 12.297560733739028 3.3000000000000000 + 892 2 2 0.000000000000000 12.779999999999999 13.527316807112930 3.3000000000000000 + 893 2 2 0.000000000000000 14.199999999999999 13.527316807112930 3.3000000000000000 + 894 2 2 0.000000000000000 14.909999999999998 12.297560733739028 3.3000000000000000 + 895 2 2 0.000000000000000 16.329999999999998 12.297560733739028 3.3000000000000000 + 896 2 2 0.000000000000000 17.039999999999999 13.527316807112930 3.3000000000000000 + 897 2 2 0.000000000000000 18.460000000000001 13.527316807112930 3.3000000000000000 + 898 2 2 0.000000000000000 19.170000000000002 12.297560733739028 3.3000000000000000 + 899 2 2 0.000000000000000 20.589999999999996 12.297560733739028 3.3000000000000000 + 900 2 2 0.000000000000000 21.299999999999997 13.527316807112930 3.3000000000000000 + 901 2 2 0.000000000000000 22.719999999999999 13.527316807112930 3.3000000000000000 + 902 2 2 0.000000000000000 23.430000000000000 12.297560733739028 3.3000000000000000 + 903 2 2 0.000000000000000 24.849999999999994 12.297560733739028 3.3000000000000000 + 904 2 2 0.000000000000000 25.559999999999995 13.527316807112930 3.3000000000000000 + 905 2 2 0.000000000000000 26.979999999999997 13.527316807112930 3.3000000000000000 + 906 2 2 0.000000000000000 27.689999999999998 12.297560733739028 3.3000000000000000 + 907 2 2 0.000000000000000 29.109999999999999 12.297560733739028 3.3000000000000000 + 908 2 2 0.000000000000000 29.820000000000000 13.527316807112930 3.3000000000000000 + 909 2 2 0.000000000000000 31.240000000000002 13.527316807112930 3.3000000000000000 + 910 2 2 0.000000000000000 31.950000000000003 12.297560733739028 3.3000000000000000 + 911 2 2 0.000000000000000 33.369999999999997 12.297560733739028 3.3000000000000000 + 912 2 2 0.000000000000000 34.079999999999998 13.527316807112930 3.3000000000000000 + 913 2 2 0.000000000000000 35.500000000000000 13.527316807112930 3.3000000000000000 + 914 2 2 0.000000000000000 36.210000000000001 12.297560733739028 3.3000000000000000 + 915 2 2 0.000000000000000 37.630000000000003 12.297560733739028 3.3000000000000000 + 916 2 2 0.000000000000000 38.340000000000003 13.527316807112930 3.3000000000000000 + 917 2 2 0.000000000000000 39.759999999999998 13.527316807112930 3.3000000000000000 + 918 2 2 0.000000000000000 40.469999999999999 12.297560733739028 3.3000000000000000 + 919 2 2 0.000000000000000 41.890000000000001 12.297560733739028 3.3000000000000000 + 920 2 2 0.000000000000000 42.599999999999994 13.527316807112930 3.3000000000000000 + 921 2 2 0.000000000000000 1.420000000000000 15.986828953860737 3.3000000000000000 + 922 2 2 0.000000000000000 2.130000000000000 14.757072880486835 3.3000000000000000 + 923 2 2 0.000000000000000 3.550000000000000 14.757072880486835 3.3000000000000000 + 924 2 2 0.000000000000000 4.260000000000000 15.986828953860737 3.3000000000000000 + 925 2 2 0.000000000000000 5.680000000000000 15.986828953860737 3.3000000000000000 + 926 2 2 0.000000000000000 6.390000000000000 14.757072880486835 3.3000000000000000 + 927 2 2 0.000000000000000 7.810000000000000 14.757072880486835 3.3000000000000000 + 928 2 2 0.000000000000000 8.520000000000000 15.986828953860737 3.3000000000000000 + 929 2 2 0.000000000000000 9.940000000000000 15.986828953860737 3.3000000000000000 + 930 2 2 0.000000000000000 10.650000000000000 14.757072880486835 3.3000000000000000 + 931 2 2 0.000000000000000 12.069999999999999 14.757072880486835 3.3000000000000000 + 932 2 2 0.000000000000000 12.779999999999999 15.986828953860737 3.3000000000000000 + 933 2 2 0.000000000000000 14.199999999999999 15.986828953860737 3.3000000000000000 + 934 2 2 0.000000000000000 14.909999999999998 14.757072880486835 3.3000000000000000 + 935 2 2 0.000000000000000 16.329999999999998 14.757072880486835 3.3000000000000000 + 936 2 2 0.000000000000000 17.039999999999999 15.986828953860737 3.3000000000000000 + 937 2 2 0.000000000000000 18.460000000000001 15.986828953860737 3.3000000000000000 + 938 2 2 0.000000000000000 19.170000000000002 14.757072880486835 3.3000000000000000 + 939 2 2 0.000000000000000 20.589999999999996 14.757072880486835 3.3000000000000000 + 940 2 2 0.000000000000000 21.299999999999997 15.986828953860737 3.3000000000000000 + 941 2 2 0.000000000000000 22.719999999999999 15.986828953860737 3.3000000000000000 + 942 2 2 0.000000000000000 23.430000000000000 14.757072880486835 3.3000000000000000 + 943 2 2 0.000000000000000 24.849999999999994 14.757072880486835 3.3000000000000000 + 944 2 2 0.000000000000000 25.559999999999995 15.986828953860737 3.3000000000000000 + 945 2 2 0.000000000000000 26.979999999999997 15.986828953860737 3.3000000000000000 + 946 2 2 0.000000000000000 27.689999999999998 14.757072880486835 3.3000000000000000 + 947 2 2 0.000000000000000 29.109999999999999 14.757072880486835 3.3000000000000000 + 948 2 2 0.000000000000000 29.820000000000000 15.986828953860737 3.3000000000000000 + 949 2 2 0.000000000000000 31.240000000000002 15.986828953860737 3.3000000000000000 + 950 2 2 0.000000000000000 31.950000000000003 14.757072880486835 3.3000000000000000 + 951 2 2 0.000000000000000 33.369999999999997 14.757072880486835 3.3000000000000000 + 952 2 2 0.000000000000000 34.079999999999998 15.986828953860737 3.3000000000000000 + 953 2 2 0.000000000000000 35.500000000000000 15.986828953860737 3.3000000000000000 + 954 2 2 0.000000000000000 36.210000000000001 14.757072880486835 3.3000000000000000 + 955 2 2 0.000000000000000 37.630000000000003 14.757072880486835 3.3000000000000000 + 956 2 2 0.000000000000000 38.340000000000003 15.986828953860737 3.3000000000000000 + 957 2 2 0.000000000000000 39.759999999999998 15.986828953860737 3.3000000000000000 + 958 2 2 0.000000000000000 40.469999999999999 14.757072880486835 3.3000000000000000 + 959 2 2 0.000000000000000 41.890000000000001 14.757072880486835 3.3000000000000000 + 960 2 2 0.000000000000000 42.599999999999994 15.986828953860737 3.3000000000000000 + 961 2 2 0.000000000000000 1.420000000000000 18.446341100608542 3.3000000000000000 + 962 2 2 0.000000000000000 2.130000000000000 17.216585027234640 3.3000000000000000 + 963 2 2 0.000000000000000 3.550000000000000 17.216585027234640 3.3000000000000000 + 964 2 2 0.000000000000000 4.260000000000000 18.446341100608542 3.3000000000000000 + 965 2 2 0.000000000000000 5.680000000000000 18.446341100608542 3.3000000000000000 + 966 2 2 0.000000000000000 6.390000000000000 17.216585027234640 3.3000000000000000 + 967 2 2 0.000000000000000 7.810000000000000 17.216585027234640 3.3000000000000000 + 968 2 2 0.000000000000000 8.520000000000000 18.446341100608542 3.3000000000000000 + 969 2 2 0.000000000000000 9.940000000000000 18.446341100608542 3.3000000000000000 + 970 2 2 0.000000000000000 10.650000000000000 17.216585027234640 3.3000000000000000 + 971 2 2 0.000000000000000 12.069999999999999 17.216585027234640 3.3000000000000000 + 972 2 2 0.000000000000000 12.779999999999999 18.446341100608542 3.3000000000000000 + 973 2 2 0.000000000000000 14.199999999999999 18.446341100608542 3.3000000000000000 + 974 2 2 0.000000000000000 14.909999999999998 17.216585027234640 3.3000000000000000 + 975 2 2 0.000000000000000 16.329999999999998 17.216585027234640 3.3000000000000000 + 976 2 2 0.000000000000000 17.039999999999999 18.446341100608542 3.3000000000000000 + 977 2 2 0.000000000000000 18.460000000000001 18.446341100608542 3.3000000000000000 + 978 2 2 0.000000000000000 19.170000000000002 17.216585027234640 3.3000000000000000 + 979 2 2 0.000000000000000 20.589999999999996 17.216585027234640 3.3000000000000000 + 980 2 2 0.000000000000000 21.299999999999997 18.446341100608542 3.3000000000000000 + 981 2 2 0.000000000000000 22.719999999999999 18.446341100608542 3.3000000000000000 + 982 2 2 0.000000000000000 23.430000000000000 17.216585027234640 3.3000000000000000 + 983 2 2 0.000000000000000 24.849999999999994 17.216585027234640 3.3000000000000000 + 984 2 2 0.000000000000000 25.559999999999995 18.446341100608542 3.3000000000000000 + 985 2 2 0.000000000000000 26.979999999999997 18.446341100608542 3.3000000000000000 + 986 2 2 0.000000000000000 27.689999999999998 17.216585027234640 3.3000000000000000 + 987 2 2 0.000000000000000 29.109999999999999 17.216585027234640 3.3000000000000000 + 988 2 2 0.000000000000000 29.820000000000000 18.446341100608542 3.3000000000000000 + 989 2 2 0.000000000000000 31.240000000000002 18.446341100608542 3.3000000000000000 + 990 2 2 0.000000000000000 31.950000000000003 17.216585027234640 3.3000000000000000 + 991 2 2 0.000000000000000 33.369999999999997 17.216585027234640 3.3000000000000000 + 992 2 2 0.000000000000000 34.079999999999998 18.446341100608542 3.3000000000000000 + 993 2 2 0.000000000000000 35.500000000000000 18.446341100608542 3.3000000000000000 + 994 2 2 0.000000000000000 36.210000000000001 17.216585027234640 3.3000000000000000 + 995 2 2 0.000000000000000 37.630000000000003 17.216585027234640 3.3000000000000000 + 996 2 2 0.000000000000000 38.340000000000003 18.446341100608542 3.3000000000000000 + 997 2 2 0.000000000000000 39.759999999999998 18.446341100608542 3.3000000000000000 + 998 2 2 0.000000000000000 40.469999999999999 17.216585027234640 3.3000000000000000 + 999 2 2 0.000000000000000 41.890000000000001 17.216585027234640 3.3000000000000000 + 1000 2 2 0.000000000000000 42.599999999999994 18.446341100608542 3.3000000000000000 + 1001 2 2 0.000000000000000 1.420000000000000 20.905853247356347 3.3000000000000000 + 1002 2 2 0.000000000000000 2.130000000000000 19.676097173982445 3.3000000000000000 + 1003 2 2 0.000000000000000 3.550000000000000 19.676097173982445 3.3000000000000000 + 1004 2 2 0.000000000000000 4.260000000000000 20.905853247356347 3.3000000000000000 + 1005 2 2 0.000000000000000 5.680000000000000 20.905853247356347 3.3000000000000000 + 1006 2 2 0.000000000000000 6.390000000000000 19.676097173982445 3.3000000000000000 + 1007 2 2 0.000000000000000 7.810000000000000 19.676097173982445 3.3000000000000000 + 1008 2 2 0.000000000000000 8.520000000000000 20.905853247356347 3.3000000000000000 + 1009 2 2 0.000000000000000 9.940000000000000 20.905853247356347 3.3000000000000000 + 1010 2 2 0.000000000000000 10.650000000000000 19.676097173982445 3.3000000000000000 + 1011 2 2 0.000000000000000 12.069999999999999 19.676097173982445 3.3000000000000000 + 1012 2 2 0.000000000000000 12.779999999999999 20.905853247356347 3.3000000000000000 + 1013 2 2 0.000000000000000 14.199999999999999 20.905853247356347 3.3000000000000000 + 1014 2 2 0.000000000000000 14.909999999999998 19.676097173982445 3.3000000000000000 + 1015 2 2 0.000000000000000 16.329999999999998 19.676097173982445 3.3000000000000000 + 1016 2 2 0.000000000000000 17.039999999999999 20.905853247356347 3.3000000000000000 + 1017 2 2 0.000000000000000 18.460000000000001 20.905853247356347 3.3000000000000000 + 1018 2 2 0.000000000000000 19.170000000000002 19.676097173982445 3.3000000000000000 + 1019 2 2 0.000000000000000 20.589999999999996 19.676097173982445 3.3000000000000000 + 1020 2 2 0.000000000000000 21.299999999999997 20.905853247356347 3.3000000000000000 + 1021 2 2 0.000000000000000 22.719999999999999 20.905853247356347 3.3000000000000000 + 1022 2 2 0.000000000000000 23.430000000000000 19.676097173982445 3.3000000000000000 + 1023 2 2 0.000000000000000 24.849999999999994 19.676097173982445 3.3000000000000000 + 1024 2 2 0.000000000000000 25.559999999999995 20.905853247356347 3.3000000000000000 + 1025 2 2 0.000000000000000 26.979999999999997 20.905853247356347 3.3000000000000000 + 1026 2 2 0.000000000000000 27.689999999999998 19.676097173982445 3.3000000000000000 + 1027 2 2 0.000000000000000 29.109999999999999 19.676097173982445 3.3000000000000000 + 1028 2 2 0.000000000000000 29.820000000000000 20.905853247356347 3.3000000000000000 + 1029 2 2 0.000000000000000 31.240000000000002 20.905853247356347 3.3000000000000000 + 1030 2 2 0.000000000000000 31.950000000000003 19.676097173982445 3.3000000000000000 + 1031 2 2 0.000000000000000 33.369999999999997 19.676097173982445 3.3000000000000000 + 1032 2 2 0.000000000000000 34.079999999999998 20.905853247356347 3.3000000000000000 + 1033 2 2 0.000000000000000 35.500000000000000 20.905853247356347 3.3000000000000000 + 1034 2 2 0.000000000000000 36.210000000000001 19.676097173982445 3.3000000000000000 + 1035 2 2 0.000000000000000 37.630000000000003 19.676097173982445 3.3000000000000000 + 1036 2 2 0.000000000000000 38.340000000000003 20.905853247356347 3.3000000000000000 + 1037 2 2 0.000000000000000 39.759999999999998 20.905853247356347 3.3000000000000000 + 1038 2 2 0.000000000000000 40.469999999999999 19.676097173982445 3.3000000000000000 + 1039 2 2 0.000000000000000 41.890000000000001 19.676097173982445 3.3000000000000000 + 1040 2 2 0.000000000000000 42.599999999999994 20.905853247356347 3.3000000000000000 + 1041 2 2 0.000000000000000 1.420000000000000 23.365365394104153 3.3000000000000000 + 1042 2 2 0.000000000000000 2.130000000000000 22.135609320730250 3.3000000000000000 + 1043 2 2 0.000000000000000 3.550000000000000 22.135609320730250 3.3000000000000000 + 1044 2 2 0.000000000000000 4.260000000000000 23.365365394104153 3.3000000000000000 + 1045 2 2 0.000000000000000 5.680000000000000 23.365365394104153 3.3000000000000000 + 1046 2 2 0.000000000000000 6.390000000000000 22.135609320730250 3.3000000000000000 + 1047 2 2 0.000000000000000 7.810000000000000 22.135609320730250 3.3000000000000000 + 1048 2 2 0.000000000000000 8.520000000000000 23.365365394104153 3.3000000000000000 + 1049 2 2 0.000000000000000 9.940000000000000 23.365365394104153 3.3000000000000000 + 1050 2 2 0.000000000000000 10.650000000000000 22.135609320730250 3.3000000000000000 + 1051 2 2 0.000000000000000 12.069999999999999 22.135609320730250 3.3000000000000000 + 1052 2 2 0.000000000000000 12.779999999999999 23.365365394104153 3.3000000000000000 + 1053 2 2 0.000000000000000 14.199999999999999 23.365365394104153 3.3000000000000000 + 1054 2 2 0.000000000000000 14.909999999999998 22.135609320730250 3.3000000000000000 + 1055 2 2 0.000000000000000 16.329999999999998 22.135609320730250 3.3000000000000000 + 1056 2 2 0.000000000000000 17.039999999999999 23.365365394104153 3.3000000000000000 + 1057 2 2 0.000000000000000 18.460000000000001 23.365365394104153 3.3000000000000000 + 1058 2 2 0.000000000000000 19.170000000000002 22.135609320730250 3.3000000000000000 + 1059 2 2 0.000000000000000 20.589999999999996 22.135609320730250 3.3000000000000000 + 1060 2 2 0.000000000000000 21.299999999999997 23.365365394104153 3.3000000000000000 + 1061 2 2 0.000000000000000 22.719999999999999 23.365365394104153 3.3000000000000000 + 1062 2 2 0.000000000000000 23.430000000000000 22.135609320730250 3.3000000000000000 + 1063 2 2 0.000000000000000 24.849999999999994 22.135609320730250 3.3000000000000000 + 1064 2 2 0.000000000000000 25.559999999999995 23.365365394104153 3.3000000000000000 + 1065 2 2 0.000000000000000 26.979999999999997 23.365365394104153 3.3000000000000000 + 1066 2 2 0.000000000000000 27.689999999999998 22.135609320730250 3.3000000000000000 + 1067 2 2 0.000000000000000 29.109999999999999 22.135609320730250 3.3000000000000000 + 1068 2 2 0.000000000000000 29.820000000000000 23.365365394104153 3.3000000000000000 + 1069 2 2 0.000000000000000 31.240000000000002 23.365365394104153 3.3000000000000000 + 1070 2 2 0.000000000000000 31.950000000000003 22.135609320730250 3.3000000000000000 + 1071 2 2 0.000000000000000 33.369999999999997 22.135609320730250 3.3000000000000000 + 1072 2 2 0.000000000000000 34.079999999999998 23.365365394104153 3.3000000000000000 + 1073 2 2 0.000000000000000 35.500000000000000 23.365365394104153 3.3000000000000000 + 1074 2 2 0.000000000000000 36.210000000000001 22.135609320730250 3.3000000000000000 + 1075 2 2 0.000000000000000 37.630000000000003 22.135609320730250 3.3000000000000000 + 1076 2 2 0.000000000000000 38.340000000000003 23.365365394104153 3.3000000000000000 + 1077 2 2 0.000000000000000 39.759999999999998 23.365365394104153 3.3000000000000000 + 1078 2 2 0.000000000000000 40.469999999999999 22.135609320730250 3.3000000000000000 + 1079 2 2 0.000000000000000 41.890000000000001 22.135609320730250 3.3000000000000000 + 1080 2 2 0.000000000000000 42.599999999999994 23.365365394104153 3.3000000000000000 + 1081 2 2 0.000000000000000 1.420000000000000 25.824877540851958 3.3000000000000000 + 1082 2 2 0.000000000000000 2.130000000000000 24.595121467478055 3.3000000000000000 + 1083 2 2 0.000000000000000 3.550000000000000 24.595121467478055 3.3000000000000000 + 1084 2 2 0.000000000000000 4.260000000000000 25.824877540851958 3.3000000000000000 + 1085 2 2 0.000000000000000 5.680000000000000 25.824877540851958 3.3000000000000000 + 1086 2 2 0.000000000000000 6.390000000000000 24.595121467478055 3.3000000000000000 + 1087 2 2 0.000000000000000 7.810000000000000 24.595121467478055 3.3000000000000000 + 1088 2 2 0.000000000000000 8.520000000000000 25.824877540851958 3.3000000000000000 + 1089 2 2 0.000000000000000 9.940000000000000 25.824877540851958 3.3000000000000000 + 1090 2 2 0.000000000000000 10.650000000000000 24.595121467478055 3.3000000000000000 + 1091 2 2 0.000000000000000 12.069999999999999 24.595121467478055 3.3000000000000000 + 1092 2 2 0.000000000000000 12.779999999999999 25.824877540851958 3.3000000000000000 + 1093 2 2 0.000000000000000 14.199999999999999 25.824877540851958 3.3000000000000000 + 1094 2 2 0.000000000000000 14.909999999999998 24.595121467478055 3.3000000000000000 + 1095 2 2 0.000000000000000 16.329999999999998 24.595121467478055 3.3000000000000000 + 1096 2 2 0.000000000000000 17.039999999999999 25.824877540851958 3.3000000000000000 + 1097 2 2 0.000000000000000 18.460000000000001 25.824877540851958 3.3000000000000000 + 1098 2 2 0.000000000000000 19.170000000000002 24.595121467478055 3.3000000000000000 + 1099 2 2 0.000000000000000 20.589999999999996 24.595121467478055 3.3000000000000000 + 1100 2 2 0.000000000000000 21.299999999999997 25.824877540851958 3.3000000000000000 + 1101 2 2 0.000000000000000 22.719999999999999 25.824877540851958 3.3000000000000000 + 1102 2 2 0.000000000000000 23.430000000000000 24.595121467478055 3.3000000000000000 + 1103 2 2 0.000000000000000 24.849999999999994 24.595121467478055 3.3000000000000000 + 1104 2 2 0.000000000000000 25.559999999999995 25.824877540851958 3.3000000000000000 + 1105 2 2 0.000000000000000 26.979999999999997 25.824877540851958 3.3000000000000000 + 1106 2 2 0.000000000000000 27.689999999999998 24.595121467478055 3.3000000000000000 + 1107 2 2 0.000000000000000 29.109999999999999 24.595121467478055 3.3000000000000000 + 1108 2 2 0.000000000000000 29.820000000000000 25.824877540851958 3.3000000000000000 + 1109 2 2 0.000000000000000 31.240000000000002 25.824877540851958 3.3000000000000000 + 1110 2 2 0.000000000000000 31.950000000000003 24.595121467478055 3.3000000000000000 + 1111 2 2 0.000000000000000 33.369999999999997 24.595121467478055 3.3000000000000000 + 1112 2 2 0.000000000000000 34.079999999999998 25.824877540851958 3.3000000000000000 + 1113 2 2 0.000000000000000 35.500000000000000 25.824877540851958 3.3000000000000000 + 1114 2 2 0.000000000000000 36.210000000000001 24.595121467478055 3.3000000000000000 + 1115 2 2 0.000000000000000 37.630000000000003 24.595121467478055 3.3000000000000000 + 1116 2 2 0.000000000000000 38.340000000000003 25.824877540851958 3.3000000000000000 + 1117 2 2 0.000000000000000 39.759999999999998 25.824877540851958 3.3000000000000000 + 1118 2 2 0.000000000000000 40.469999999999999 24.595121467478055 3.3000000000000000 + 1119 2 2 0.000000000000000 41.890000000000001 24.595121467478055 3.3000000000000000 + 1120 2 2 0.000000000000000 42.599999999999994 25.824877540851958 3.3000000000000000 + 1121 2 2 0.000000000000000 1.420000000000000 28.284389687599763 3.3000000000000000 + 1122 2 2 0.000000000000000 2.130000000000000 27.054633614225860 3.3000000000000000 + 1123 2 2 0.000000000000000 3.550000000000000 27.054633614225860 3.3000000000000000 + 1124 2 2 0.000000000000000 4.260000000000000 28.284389687599763 3.3000000000000000 + 1125 2 2 0.000000000000000 5.680000000000000 28.284389687599763 3.3000000000000000 + 1126 2 2 0.000000000000000 6.390000000000000 27.054633614225860 3.3000000000000000 + 1127 2 2 0.000000000000000 7.810000000000000 27.054633614225860 3.3000000000000000 + 1128 2 2 0.000000000000000 8.520000000000000 28.284389687599763 3.3000000000000000 + 1129 2 2 0.000000000000000 9.940000000000000 28.284389687599763 3.3000000000000000 + 1130 2 2 0.000000000000000 10.650000000000000 27.054633614225860 3.3000000000000000 + 1131 2 2 0.000000000000000 12.069999999999999 27.054633614225860 3.3000000000000000 + 1132 2 2 0.000000000000000 12.779999999999999 28.284389687599763 3.3000000000000000 + 1133 2 2 0.000000000000000 14.199999999999999 28.284389687599763 3.3000000000000000 + 1134 2 2 0.000000000000000 14.909999999999998 27.054633614225860 3.3000000000000000 + 1135 2 2 0.000000000000000 16.329999999999998 27.054633614225860 3.3000000000000000 + 1136 2 2 0.000000000000000 17.039999999999999 28.284389687599763 3.3000000000000000 + 1137 2 2 0.000000000000000 18.460000000000001 28.284389687599763 3.3000000000000000 + 1138 2 2 0.000000000000000 19.170000000000002 27.054633614225860 3.3000000000000000 + 1139 2 2 0.000000000000000 20.589999999999996 27.054633614225860 3.3000000000000000 + 1140 2 2 0.000000000000000 21.299999999999997 28.284389687599763 3.3000000000000000 + 1141 2 2 0.000000000000000 22.719999999999999 28.284389687599763 3.3000000000000000 + 1142 2 2 0.000000000000000 23.430000000000000 27.054633614225860 3.3000000000000000 + 1143 2 2 0.000000000000000 24.849999999999994 27.054633614225860 3.3000000000000000 + 1144 2 2 0.000000000000000 25.559999999999995 28.284389687599763 3.3000000000000000 + 1145 2 2 0.000000000000000 26.979999999999997 28.284389687599763 3.3000000000000000 + 1146 2 2 0.000000000000000 27.689999999999998 27.054633614225860 3.3000000000000000 + 1147 2 2 0.000000000000000 29.109999999999999 27.054633614225860 3.3000000000000000 + 1148 2 2 0.000000000000000 29.820000000000000 28.284389687599763 3.3000000000000000 + 1149 2 2 0.000000000000000 31.240000000000002 28.284389687599763 3.3000000000000000 + 1150 2 2 0.000000000000000 31.950000000000003 27.054633614225860 3.3000000000000000 + 1151 2 2 0.000000000000000 33.369999999999997 27.054633614225860 3.3000000000000000 + 1152 2 2 0.000000000000000 34.079999999999998 28.284389687599763 3.3000000000000000 + 1153 2 2 0.000000000000000 35.500000000000000 28.284389687599763 3.3000000000000000 + 1154 2 2 0.000000000000000 36.210000000000001 27.054633614225860 3.3000000000000000 + 1155 2 2 0.000000000000000 37.630000000000003 27.054633614225860 3.3000000000000000 + 1156 2 2 0.000000000000000 38.340000000000003 28.284389687599763 3.3000000000000000 + 1157 2 2 0.000000000000000 39.759999999999998 28.284389687599763 3.3000000000000000 + 1158 2 2 0.000000000000000 40.469999999999999 27.054633614225860 3.3000000000000000 + 1159 2 2 0.000000000000000 41.890000000000001 27.054633614225860 3.3000000000000000 + 1160 2 2 0.000000000000000 42.599999999999994 28.284389687599763 3.3000000000000000 + 1161 2 2 0.000000000000000 1.420000000000000 30.743901834347572 3.3000000000000000 + 1162 2 2 0.000000000000000 2.130000000000000 29.514145760973669 3.3000000000000000 + 1163 2 2 0.000000000000000 3.550000000000000 29.514145760973669 3.3000000000000000 + 1164 2 2 0.000000000000000 4.260000000000000 30.743901834347572 3.3000000000000000 + 1165 2 2 0.000000000000000 5.680000000000000 30.743901834347572 3.3000000000000000 + 1166 2 2 0.000000000000000 6.390000000000000 29.514145760973669 3.3000000000000000 + 1167 2 2 0.000000000000000 7.810000000000000 29.514145760973669 3.3000000000000000 + 1168 2 2 0.000000000000000 8.520000000000000 30.743901834347572 3.3000000000000000 + 1169 2 2 0.000000000000000 9.940000000000000 30.743901834347572 3.3000000000000000 + 1170 2 2 0.000000000000000 10.650000000000000 29.514145760973669 3.3000000000000000 + 1171 2 2 0.000000000000000 12.069999999999999 29.514145760973669 3.3000000000000000 + 1172 2 2 0.000000000000000 12.779999999999999 30.743901834347572 3.3000000000000000 + 1173 2 2 0.000000000000000 14.199999999999999 30.743901834347572 3.3000000000000000 + 1174 2 2 0.000000000000000 14.909999999999998 29.514145760973669 3.3000000000000000 + 1175 2 2 0.000000000000000 16.329999999999998 29.514145760973669 3.3000000000000000 + 1176 2 2 0.000000000000000 17.039999999999999 30.743901834347572 3.3000000000000000 + 1177 2 2 0.000000000000000 18.460000000000001 30.743901834347572 3.3000000000000000 + 1178 2 2 0.000000000000000 19.170000000000002 29.514145760973669 3.3000000000000000 + 1179 2 2 0.000000000000000 20.589999999999996 29.514145760973669 3.3000000000000000 + 1180 2 2 0.000000000000000 21.299999999999997 30.743901834347572 3.3000000000000000 + 1181 2 2 0.000000000000000 22.719999999999999 30.743901834347572 3.3000000000000000 + 1182 2 2 0.000000000000000 23.430000000000000 29.514145760973669 3.3000000000000000 + 1183 2 2 0.000000000000000 24.849999999999994 29.514145760973669 3.3000000000000000 + 1184 2 2 0.000000000000000 25.559999999999995 30.743901834347572 3.3000000000000000 + 1185 2 2 0.000000000000000 26.979999999999997 30.743901834347572 3.3000000000000000 + 1186 2 2 0.000000000000000 27.689999999999998 29.514145760973669 3.3000000000000000 + 1187 2 2 0.000000000000000 29.109999999999999 29.514145760973669 3.3000000000000000 + 1188 2 2 0.000000000000000 29.820000000000000 30.743901834347572 3.3000000000000000 + 1189 2 2 0.000000000000000 31.240000000000002 30.743901834347572 3.3000000000000000 + 1190 2 2 0.000000000000000 31.950000000000003 29.514145760973669 3.3000000000000000 + 1191 2 2 0.000000000000000 33.369999999999997 29.514145760973669 3.3000000000000000 + 1192 2 2 0.000000000000000 34.079999999999998 30.743901834347572 3.3000000000000000 + 1193 2 2 0.000000000000000 35.500000000000000 30.743901834347572 3.3000000000000000 + 1194 2 2 0.000000000000000 36.210000000000001 29.514145760973669 3.3000000000000000 + 1195 2 2 0.000000000000000 37.630000000000003 29.514145760973669 3.3000000000000000 + 1196 2 2 0.000000000000000 38.340000000000003 30.743901834347572 3.3000000000000000 + 1197 2 2 0.000000000000000 39.759999999999998 30.743901834347572 3.3000000000000000 + 1198 2 2 0.000000000000000 40.469999999999999 29.514145760973669 3.3000000000000000 + 1199 2 2 0.000000000000000 41.890000000000001 29.514145760973669 3.3000000000000000 + 1200 2 2 0.000000000000000 42.599999999999994 30.743901834347572 3.3000000000000000 + 1201 2 2 0.000000000000000 1.420000000000000 33.203413981095380 3.3000000000000000 + 1202 2 2 0.000000000000000 2.130000000000000 31.973657907721474 3.3000000000000000 + 1203 2 2 0.000000000000000 3.550000000000000 31.973657907721474 3.3000000000000000 + 1204 2 2 0.000000000000000 4.260000000000000 33.203413981095380 3.3000000000000000 + 1205 2 2 0.000000000000000 5.680000000000000 33.203413981095380 3.3000000000000000 + 1206 2 2 0.000000000000000 6.390000000000000 31.973657907721474 3.3000000000000000 + 1207 2 2 0.000000000000000 7.810000000000000 31.973657907721474 3.3000000000000000 + 1208 2 2 0.000000000000000 8.520000000000000 33.203413981095380 3.3000000000000000 + 1209 2 2 0.000000000000000 9.940000000000000 33.203413981095380 3.3000000000000000 + 1210 2 2 0.000000000000000 10.650000000000000 31.973657907721474 3.3000000000000000 + 1211 2 2 0.000000000000000 12.069999999999999 31.973657907721474 3.3000000000000000 + 1212 2 2 0.000000000000000 12.779999999999999 33.203413981095380 3.3000000000000000 + 1213 2 2 0.000000000000000 14.199999999999999 33.203413981095380 3.3000000000000000 + 1214 2 2 0.000000000000000 14.909999999999998 31.973657907721474 3.3000000000000000 + 1215 2 2 0.000000000000000 16.329999999999998 31.973657907721474 3.3000000000000000 + 1216 2 2 0.000000000000000 17.039999999999999 33.203413981095380 3.3000000000000000 + 1217 2 2 0.000000000000000 18.460000000000001 33.203413981095380 3.3000000000000000 + 1218 2 2 0.000000000000000 19.170000000000002 31.973657907721474 3.3000000000000000 + 1219 2 2 0.000000000000000 20.589999999999996 31.973657907721474 3.3000000000000000 + 1220 2 2 0.000000000000000 21.299999999999997 33.203413981095380 3.3000000000000000 + 1221 2 2 0.000000000000000 22.719999999999999 33.203413981095380 3.3000000000000000 + 1222 2 2 0.000000000000000 23.430000000000000 31.973657907721474 3.3000000000000000 + 1223 2 2 0.000000000000000 24.849999999999994 31.973657907721474 3.3000000000000000 + 1224 2 2 0.000000000000000 25.559999999999995 33.203413981095380 3.3000000000000000 + 1225 2 2 0.000000000000000 26.979999999999997 33.203413981095380 3.3000000000000000 + 1226 2 2 0.000000000000000 27.689999999999998 31.973657907721474 3.3000000000000000 + 1227 2 2 0.000000000000000 29.109999999999999 31.973657907721474 3.3000000000000000 + 1228 2 2 0.000000000000000 29.820000000000000 33.203413981095380 3.3000000000000000 + 1229 2 2 0.000000000000000 31.240000000000002 33.203413981095380 3.3000000000000000 + 1230 2 2 0.000000000000000 31.950000000000003 31.973657907721474 3.3000000000000000 + 1231 2 2 0.000000000000000 33.369999999999997 31.973657907721474 3.3000000000000000 + 1232 2 2 0.000000000000000 34.079999999999998 33.203413981095380 3.3000000000000000 + 1233 2 2 0.000000000000000 35.500000000000000 33.203413981095380 3.3000000000000000 + 1234 2 2 0.000000000000000 36.210000000000001 31.973657907721474 3.3000000000000000 + 1235 2 2 0.000000000000000 37.630000000000003 31.973657907721474 3.3000000000000000 + 1236 2 2 0.000000000000000 38.340000000000003 33.203413981095380 3.3000000000000000 + 1237 2 2 0.000000000000000 39.759999999999998 33.203413981095380 3.3000000000000000 + 1238 2 2 0.000000000000000 40.469999999999999 31.973657907721474 3.3000000000000000 + 1239 2 2 0.000000000000000 41.890000000000001 31.973657907721474 3.3000000000000000 + 1240 2 2 0.000000000000000 42.599999999999994 33.203413981095380 3.3000000000000000 + 1241 2 2 0.000000000000000 1.420000000000000 35.662926127843185 3.3000000000000000 + 1242 2 2 0.000000000000000 2.130000000000000 34.433170054469279 3.3000000000000000 + 1243 2 2 0.000000000000000 3.550000000000000 34.433170054469279 3.3000000000000000 + 1244 2 2 0.000000000000000 4.260000000000000 35.662926127843185 3.3000000000000000 + 1245 2 2 0.000000000000000 5.680000000000000 35.662926127843185 3.3000000000000000 + 1246 2 2 0.000000000000000 6.390000000000000 34.433170054469279 3.3000000000000000 + 1247 2 2 0.000000000000000 7.810000000000000 34.433170054469279 3.3000000000000000 + 1248 2 2 0.000000000000000 8.520000000000000 35.662926127843185 3.3000000000000000 + 1249 2 2 0.000000000000000 9.940000000000000 35.662926127843185 3.3000000000000000 + 1250 2 2 0.000000000000000 10.650000000000000 34.433170054469279 3.3000000000000000 + 1251 2 2 0.000000000000000 12.069999999999999 34.433170054469279 3.3000000000000000 + 1252 2 2 0.000000000000000 12.779999999999999 35.662926127843185 3.3000000000000000 + 1253 2 2 0.000000000000000 14.199999999999999 35.662926127843185 3.3000000000000000 + 1254 2 2 0.000000000000000 14.909999999999998 34.433170054469279 3.3000000000000000 + 1255 2 2 0.000000000000000 16.329999999999998 34.433170054469279 3.3000000000000000 + 1256 2 2 0.000000000000000 17.039999999999999 35.662926127843185 3.3000000000000000 + 1257 2 2 0.000000000000000 18.460000000000001 35.662926127843185 3.3000000000000000 + 1258 2 2 0.000000000000000 19.170000000000002 34.433170054469279 3.3000000000000000 + 1259 2 2 0.000000000000000 20.589999999999996 34.433170054469279 3.3000000000000000 + 1260 2 2 0.000000000000000 21.299999999999997 35.662926127843185 3.3000000000000000 + 1261 2 2 0.000000000000000 22.719999999999999 35.662926127843185 3.3000000000000000 + 1262 2 2 0.000000000000000 23.430000000000000 34.433170054469279 3.3000000000000000 + 1263 2 2 0.000000000000000 24.849999999999994 34.433170054469279 3.3000000000000000 + 1264 2 2 0.000000000000000 25.559999999999995 35.662926127843185 3.3000000000000000 + 1265 2 2 0.000000000000000 26.979999999999997 35.662926127843185 3.3000000000000000 + 1266 2 2 0.000000000000000 27.689999999999998 34.433170054469279 3.3000000000000000 + 1267 2 2 0.000000000000000 29.109999999999999 34.433170054469279 3.3000000000000000 + 1268 2 2 0.000000000000000 29.820000000000000 35.662926127843185 3.3000000000000000 + 1269 2 2 0.000000000000000 31.240000000000002 35.662926127843185 3.3000000000000000 + 1270 2 2 0.000000000000000 31.950000000000003 34.433170054469279 3.3000000000000000 + 1271 2 2 0.000000000000000 33.369999999999997 34.433170054469279 3.3000000000000000 + 1272 2 2 0.000000000000000 34.079999999999998 35.662926127843185 3.3000000000000000 + 1273 2 2 0.000000000000000 35.500000000000000 35.662926127843185 3.3000000000000000 + 1274 2 2 0.000000000000000 36.210000000000001 34.433170054469279 3.3000000000000000 + 1275 2 2 0.000000000000000 37.630000000000003 34.433170054469279 3.3000000000000000 + 1276 2 2 0.000000000000000 38.340000000000003 35.662926127843185 3.3000000000000000 + 1277 2 2 0.000000000000000 39.759999999999998 35.662926127843185 3.3000000000000000 + 1278 2 2 0.000000000000000 40.469999999999999 34.433170054469279 3.3000000000000000 + 1279 2 2 0.000000000000000 41.890000000000001 34.433170054469279 3.3000000000000000 + 1280 2 2 0.000000000000000 42.599999999999994 35.662926127843185 3.3000000000000000 + 1281 2 2 0.000000000000000 1.420000000000000 38.122438274590991 3.3000000000000000 + 1282 2 2 0.000000000000000 2.130000000000000 36.892682201217085 3.3000000000000000 + 1283 2 2 0.000000000000000 3.550000000000000 36.892682201217085 3.3000000000000000 + 1284 2 2 0.000000000000000 4.260000000000000 38.122438274590991 3.3000000000000000 + 1285 2 2 0.000000000000000 5.680000000000000 38.122438274590991 3.3000000000000000 + 1286 2 2 0.000000000000000 6.390000000000000 36.892682201217085 3.3000000000000000 + 1287 2 2 0.000000000000000 7.810000000000000 36.892682201217085 3.3000000000000000 + 1288 2 2 0.000000000000000 8.520000000000000 38.122438274590991 3.3000000000000000 + 1289 2 2 0.000000000000000 9.940000000000000 38.122438274590991 3.3000000000000000 + 1290 2 2 0.000000000000000 10.650000000000000 36.892682201217085 3.3000000000000000 + 1291 2 2 0.000000000000000 12.069999999999999 36.892682201217085 3.3000000000000000 + 1292 2 2 0.000000000000000 12.779999999999999 38.122438274590991 3.3000000000000000 + 1293 2 2 0.000000000000000 14.199999999999999 38.122438274590991 3.3000000000000000 + 1294 2 2 0.000000000000000 14.909999999999998 36.892682201217085 3.3000000000000000 + 1295 2 2 0.000000000000000 16.329999999999998 36.892682201217085 3.3000000000000000 + 1296 2 2 0.000000000000000 17.039999999999999 38.122438274590991 3.3000000000000000 + 1297 2 2 0.000000000000000 18.460000000000001 38.122438274590991 3.3000000000000000 + 1298 2 2 0.000000000000000 19.170000000000002 36.892682201217085 3.3000000000000000 + 1299 2 2 0.000000000000000 20.589999999999996 36.892682201217085 3.3000000000000000 + 1300 2 2 0.000000000000000 21.299999999999997 38.122438274590991 3.3000000000000000 + 1301 2 2 0.000000000000000 22.719999999999999 38.122438274590991 3.3000000000000000 + 1302 2 2 0.000000000000000 23.430000000000000 36.892682201217085 3.3000000000000000 + 1303 2 2 0.000000000000000 24.849999999999994 36.892682201217085 3.3000000000000000 + 1304 2 2 0.000000000000000 25.559999999999995 38.122438274590991 3.3000000000000000 + 1305 2 2 0.000000000000000 26.979999999999997 38.122438274590991 3.3000000000000000 + 1306 2 2 0.000000000000000 27.689999999999998 36.892682201217085 3.3000000000000000 + 1307 2 2 0.000000000000000 29.109999999999999 36.892682201217085 3.3000000000000000 + 1308 2 2 0.000000000000000 29.820000000000000 38.122438274590991 3.3000000000000000 + 1309 2 2 0.000000000000000 31.240000000000002 38.122438274590991 3.3000000000000000 + 1310 2 2 0.000000000000000 31.950000000000003 36.892682201217085 3.3000000000000000 + 1311 2 2 0.000000000000000 33.369999999999997 36.892682201217085 3.3000000000000000 + 1312 2 2 0.000000000000000 34.079999999999998 38.122438274590991 3.3000000000000000 + 1313 2 2 0.000000000000000 35.500000000000000 38.122438274590991 3.3000000000000000 + 1314 2 2 0.000000000000000 36.210000000000001 36.892682201217085 3.3000000000000000 + 1315 2 2 0.000000000000000 37.630000000000003 36.892682201217085 3.3000000000000000 + 1316 2 2 0.000000000000000 38.340000000000003 38.122438274590991 3.3000000000000000 + 1317 2 2 0.000000000000000 39.759999999999998 38.122438274590991 3.3000000000000000 + 1318 2 2 0.000000000000000 40.469999999999999 36.892682201217085 3.3000000000000000 + 1319 2 2 0.000000000000000 41.890000000000001 36.892682201217085 3.3000000000000000 + 1320 2 2 0.000000000000000 42.599999999999994 38.122438274590991 3.3000000000000000 + 1321 2 2 0.000000000000000 1.420000000000000 40.581950421338796 3.3000000000000000 + 1322 2 2 0.000000000000000 2.130000000000000 39.352194347964890 3.3000000000000000 + 1323 2 2 0.000000000000000 3.550000000000000 39.352194347964890 3.3000000000000000 + 1324 2 2 0.000000000000000 4.260000000000000 40.581950421338796 3.3000000000000000 + 1325 2 2 0.000000000000000 5.680000000000000 40.581950421338796 3.3000000000000000 + 1326 2 2 0.000000000000000 6.390000000000000 39.352194347964890 3.3000000000000000 + 1327 2 2 0.000000000000000 7.810000000000000 39.352194347964890 3.3000000000000000 + 1328 2 2 0.000000000000000 8.520000000000000 40.581950421338796 3.3000000000000000 + 1329 2 2 0.000000000000000 9.940000000000000 40.581950421338796 3.3000000000000000 + 1330 2 2 0.000000000000000 10.650000000000000 39.352194347964890 3.3000000000000000 + 1331 2 2 0.000000000000000 12.069999999999999 39.352194347964890 3.3000000000000000 + 1332 2 2 0.000000000000000 12.779999999999999 40.581950421338796 3.3000000000000000 + 1333 2 2 0.000000000000000 14.199999999999999 40.581950421338796 3.3000000000000000 + 1334 2 2 0.000000000000000 14.909999999999998 39.352194347964890 3.3000000000000000 + 1335 2 2 0.000000000000000 16.329999999999998 39.352194347964890 3.3000000000000000 + 1336 2 2 0.000000000000000 17.039999999999999 40.581950421338796 3.3000000000000000 + 1337 2 2 0.000000000000000 18.460000000000001 40.581950421338796 3.3000000000000000 + 1338 2 2 0.000000000000000 19.170000000000002 39.352194347964890 3.3000000000000000 + 1339 2 2 0.000000000000000 20.589999999999996 39.352194347964890 3.3000000000000000 + 1340 2 2 0.000000000000000 21.299999999999997 40.581950421338796 3.3000000000000000 + 1341 2 2 0.000000000000000 22.719999999999999 40.581950421338796 3.3000000000000000 + 1342 2 2 0.000000000000000 23.430000000000000 39.352194347964890 3.3000000000000000 + 1343 2 2 0.000000000000000 24.849999999999994 39.352194347964890 3.3000000000000000 + 1344 2 2 0.000000000000000 25.559999999999995 40.581950421338796 3.3000000000000000 + 1345 2 2 0.000000000000000 26.979999999999997 40.581950421338796 3.3000000000000000 + 1346 2 2 0.000000000000000 27.689999999999998 39.352194347964890 3.3000000000000000 + 1347 2 2 0.000000000000000 29.109999999999999 39.352194347964890 3.3000000000000000 + 1348 2 2 0.000000000000000 29.820000000000000 40.581950421338796 3.3000000000000000 + 1349 2 2 0.000000000000000 31.240000000000002 40.581950421338796 3.3000000000000000 + 1350 2 2 0.000000000000000 31.950000000000003 39.352194347964890 3.3000000000000000 + 1351 2 2 0.000000000000000 33.369999999999997 39.352194347964890 3.3000000000000000 + 1352 2 2 0.000000000000000 34.079999999999998 40.581950421338796 3.3000000000000000 + 1353 2 2 0.000000000000000 35.500000000000000 40.581950421338796 3.3000000000000000 + 1354 2 2 0.000000000000000 36.210000000000001 39.352194347964890 3.3000000000000000 + 1355 2 2 0.000000000000000 37.630000000000003 39.352194347964890 3.3000000000000000 + 1356 2 2 0.000000000000000 38.340000000000003 40.581950421338796 3.3000000000000000 + 1357 2 2 0.000000000000000 39.759999999999998 40.581950421338796 3.3000000000000000 + 1358 2 2 0.000000000000000 40.469999999999999 39.352194347964890 3.3000000000000000 + 1359 2 2 0.000000000000000 41.890000000000001 39.352194347964890 3.3000000000000000 + 1360 2 2 0.000000000000000 42.599999999999994 40.581950421338796 3.3000000000000000 diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/CH.rebo b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/CH.rebo new file mode 120000 index 0000000000..b98001a7fd --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/CH.rebo @@ -0,0 +1 @@ +../../../../../potentials/CH.rebo \ No newline at end of file diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/in.bilayer-graphene b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/in.bilayer-graphene index 8674917af2..949de4b74c 100644 --- a/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/in.bilayer-graphene +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/in.bilayer-graphene @@ -5,21 +5,22 @@ atom_style full processors * * 1 # domain decomposition over x and y # System and atom definition -# we use 2 atom types so that inter- and intra-layer +# we use different molecule ids for each layer of hBN +# so that inter- and intra-layer # interactions can be specified separately -# read lammps data file -read_data Bi_gr_AB_stack_2L_noH_300K.data + +read_data Bi_gr_AB_stack_2L_noH.data mass 1 12.0107 # carbon mass (g/mole) | membrane mass 2 12.0107 # carbon mass (g/mole) | adsorbate # Separate atom groups -group membrane type 1 -group adsorbate type 2 +group layer1 molecule 1 +group layer2 molecule 2 ######################## Potential defition ######################## pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0 #################################################################### -pair_coeff * * rebo CH.airebo NULL C # chemical -pair_coeff * * ilp/graphene/hbn BNCH-old.ILP C C # long range +pair_coeff * * rebo CH.rebo C C # chemical +pair_coeff * * ilp/graphene/hbn BNCH.ILP C C # long range #################################################################### # Neighbor update settings neighbor 2.0 bin @@ -27,35 +28,25 @@ neigh_modify every 1 neigh_modify delay 0 neigh_modify check yes -# calculate the COM -variable adsxcom equal xcm(adsorbate,x) -variable adsycom equal xcm(adsorbate,y) -variable adszcom equal xcm(adsorbate,z) -variable adsvxcom equal vcm(adsorbate,x) -variable adsvycom equal vcm(adsorbate,y) -variable adsvzcom equal vcm(adsorbate,z) - #### Simulation settings #### -timestep 0.001 -#velocity adsorbate create 300.0 12345 -fix subf membrane setforce 0.0 0.0 0.0 -fix thermostat all nve +timestep 0.001 +velocity all create 300.0 12345 -compute 0 all pair rebo -compute 1 all pair ilp/graphene/hbn -variable REBO equal c_0 -variable ILP equal c_1 +compute 0 all pair rebo +compute 1 all pair ilp/graphene/hbn +variable REBO equal c_0 # REBO energy +variable ILP equal c_1 # total interlayer energy +variable Evdw equal c_1[1] # attractive energy +variable Erep equal c_1[2] # repulsive energy ############################ # Output thermo 100 -thermo_style custom step etotal pe ke v_REBO v_ILP temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom -thermo_modify line one format float %.10f +thermo_style custom step cpu etotal pe ke v_REBO v_ILP v_Erep v_Evdw temp +thermo_modify line one format float %.16f thermo_modify flush yes norm no lost warn -#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu -#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes - ###### Run molecular dynamics ###### -run 1000 +fix thermostat all nve +run 1000 diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/log.5Jun19.bilayer-graphene.icc.1 b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/log.5Jun19.bilayer-graphene.icc.1 new file mode 100644 index 0000000000..bb36f22d81 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/log.5Jun19.bilayer-graphene.icc.1 @@ -0,0 +1,128 @@ +LAMMPS (5 Jun 2019) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88) + using 1 OpenMP thread(s) per MPI task +# Initialization +units metal +boundary p p p +atom_style full +processors * * 1 # domain decomposition over x and y + +# System and atom definition +# we use 2 molecule ids so that inter- and intra-layer +# interactions can be specified separately +# read lammps data file +read_data Bi_gr_AB_stack_2L_noH.data + orthogonal box = (0 0 0) to (42.6 41.8117 100) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1360 atoms + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.00018123 secs + read_data CPU = 0.00179349 secs +mass 1 12.0107 # carbon mass (g/mole) | membrane +mass 2 12.0107 # carbon mass (g/mole) | adsorbate +# Separate atom groups +group layer1 molecule 1 +680 atoms in group layer1 +group layer2 molecule 2 +680 atoms in group layer2 + +######################## Potential defition ######################## +pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0 +#################################################################### +pair_coeff * * rebo CH.rebo C C # chemical +Reading potential file CH.rebo with DATE: 2018-7-3 +pair_coeff * * ilp/graphene/hbn BNCH.ILP C C # long range +#################################################################### +# Neighbor update settings +neighbor 2.0 bin +neigh_modify every 1 +neigh_modify delay 0 +neigh_modify check yes + +#### Simulation settings #### +timestep 0.001 +velocity all create 300.0 12345 + +compute 0 all pair rebo +compute 1 all pair ilp/graphene/hbn +variable REBO equal c_0 # REBO energy +variable ILP equal c_1 # total interlayer energy +variable Evdw equal c_1[1] # attractive energy +variable Erep equal c_1[2] # repulsive energy + +############################ + +# Output +thermo 100 +thermo_style custom step cpu etotal pe ke v_REBO v_ILP v_Erep v_Evdw temp +thermo_modify line one format float %.16f +thermo_modify flush yes norm no lost warn + +###### Run molecular dynamics ###### +fix thermostat all nve +run 1000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 18 + ghost atom cutoff = 18 + binsize = 9, bins = 5 5 12 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair rebo, perpetual + attributes: full, newton on, ghost + pair build: full/bin/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) pair ilp/graphene/hbn, perpetual, copy from (1) + attributes: full, newton on, ghost + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 20.52 | 20.52 | 20.52 Mbytes +Step CPU TotEng PotEng KinEng v_REBO v_ILP v_Erep v_Evdw Temp + 0 0.0000000000000000 -10037.2853168513975106 -10089.9846779678973689 52.6993611164999436 -10057.1894932863488066 -32.7951846815484842 43.6401037466550932 -76.4352884281863538 299.9999999999996589 + 100 5.4714687280356884 -10037.0338552868142870 -10064.7651651140276954 27.7313098272134866 -10032.1809546658514591 -32.5842104481769326 34.7308676709731401 -67.3150781191208409 157.8651576016785896 + 200 10.9391297820257023 -10036.9626863095945737 -10061.1437965401473775 24.1811102305520329 -10028.8556641958457476 -32.2881323443021699 28.1799358234288526 -60.4680681676962450 137.6550477173489071 + 300 16.5882020250428468 -10037.0034097789539373 -10063.5001355365984637 26.4967257576440751 -10030.8230306457862753 -32.6771048908121244 34.9238490632189666 -67.6009539540019659 150.8370795942042264 + 400 22.1194989730138332 -10037.0320901258455706 -10064.3886163746337843 27.3565262487876240 -10031.8532011416427849 -32.5354152329904451 44.2423469839209460 -76.7777622168925546 155.7316388806602561 + 500 27.6722563949879259 -10037.0233394483148004 -10064.1136184894730832 27.0902790411580163 -10031.4312007416901906 -32.6824177477829565 37.2292320482101289 -69.9116497959676906 154.2159817531989177 + 600 33.2032995349727571 -10037.0033561502987141 -10063.6570740290953836 26.6537178787960869 -10031.3274097829344100 -32.3296642461602843 28.5090732059975061 -60.8387374521216842 151.7307837178934449 + 700 38.6685221369843930 -10037.0041655805853225 -10063.3498627390818001 26.3456971584966979 -10030.8006321783104795 -32.5492305607709014 32.5646861904578486 -65.1139167511948074 149.9773238251721921 + 800 44.2185375869739801 -10037.0245724491269357 -10064.2193369538654224 27.1947645047377584 -10031.7656842933574808 -32.4536526605085243 43.3815569718683705 -75.8352096323569498 154.8107828743098082 + 900 49.6989215560024604 -10037.0283918584391358 -10064.6675188165245345 27.6391269580851500 -10032.1673975747289660 -32.5001212417962648 39.9934500237055133 -72.4935712654787778 157.3403910741040761 + 1000 55.1455117090372369 -10037.0033475406326033 -10063.6621727186211501 26.6588251779885006 -10031.3371200905367004 -32.3250526280852100 29.5735783776502288 -61.8986310057011480 151.7598578798047697 +Loop time of 55.1456 on 1 procs for 1000 steps with 1360 atoms + +Performance: 1.567 ns/day, 15.318 hours/ns, 18.134 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 55.092 | 55.092 | 55.092 | 0.0 | 99.90 +Bond | 0.00050265 | 0.00050265 | 0.00050265 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.032649 | 0.032649 | 0.032649 | 0.0 | 0.06 +Output | 0.00060948 | 0.00060948 | 0.00060948 | 0.0 | 0.00 +Modify | 0.0093351 | 0.0093351 | 0.0093351 | 0.0 | 0.02 +Other | | 0.01008 | | | 0.02 + +Nlocal: 1360 ave 1360 max 1360 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 7964 ave 7964 max 7964 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 1.037e+06 ave 1.037e+06 max 1.037e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 1037000 +Ave neighs/atom = 762.5 +Ave special neighs/atom = 0 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:55 diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/log.5Jun19.bilayer-graphene.icc.4 b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/log.5Jun19.bilayer-graphene.icc.4 new file mode 100644 index 0000000000..95c495b677 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-graphene/log.5Jun19.bilayer-graphene.icc.4 @@ -0,0 +1,128 @@ +LAMMPS (5 Jun 2019) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88) + using 1 OpenMP thread(s) per MPI task +# Initialization +units metal +boundary p p p +atom_style full +processors * * 1 # domain decomposition over x and y + +# System and atom definition +# we use 2 molecule ids so that inter- and intra-layer +# interactions can be specified separately +# read lammps data file +read_data Bi_gr_AB_stack_2L_noH.data + orthogonal box = (0 0 0) to (42.6 41.8117 100) + 2 by 2 by 1 MPI processor grid + reading atoms ... + 1360 atoms + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000147377 secs + read_data CPU = 0.0025185 secs +mass 1 12.0107 # carbon mass (g/mole) | membrane +mass 2 12.0107 # carbon mass (g/mole) | adsorbate +# Separate atom groups +group layer1 molecule 1 +680 atoms in group layer1 +group layer2 molecule 2 +680 atoms in group layer2 + +######################## Potential defition ######################## +pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0 +#################################################################### +pair_coeff * * rebo CH.rebo C C # chemical +Reading potential file CH.rebo with DATE: 2018-7-3 +pair_coeff * * ilp/graphene/hbn BNCH.ILP C C # long range +#################################################################### +# Neighbor update settings +neighbor 2.0 bin +neigh_modify every 1 +neigh_modify delay 0 +neigh_modify check yes + +#### Simulation settings #### +timestep 0.001 +velocity all create 300.0 12345 + +compute 0 all pair rebo +compute 1 all pair ilp/graphene/hbn +variable REBO equal c_0 # REBO energy +variable ILP equal c_1 # total interlayer energy +variable Evdw equal c_1[1] # attractive energy +variable Erep equal c_1[2] # repulsive energy + +############################ + +# Output +thermo 100 +thermo_style custom step cpu etotal pe ke v_REBO v_ILP v_Erep v_Evdw temp +thermo_modify line one format float %.16f +thermo_modify flush yes norm no lost warn + +###### Run molecular dynamics ###### +fix thermostat all nve +run 1000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 18 + ghost atom cutoff = 18 + binsize = 9, bins = 5 5 12 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair rebo, perpetual + attributes: full, newton on, ghost + pair build: full/bin/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) pair ilp/graphene/hbn, perpetual, copy from (1) + attributes: full, newton on, ghost + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 11.64 | 11.64 | 11.64 Mbytes +Step CPU TotEng PotEng KinEng v_REBO v_ILP v_Erep v_Evdw Temp + 0 0.0000000000000000 -10037.2853168516194273 -10089.9846779681192857 52.6993611164999933 -10057.1894932866325689 -32.7951846814872354 43.6401037466782640 -76.4352884281594527 299.9999999999999432 + 100 1.5180878639221191 -10037.0338552867851831 -10064.7651651139967726 27.7313098272123320 -10032.1809546658569161 -32.5842104481406381 34.7308676709827395 -67.3150781191209546 157.8651576016720242 + 200 3.0293023219564930 -10036.9626863095381850 -10061.1437965400909889 24.1811102305529495 -10028.8556641958311957 -32.2881323442601911 28.1799358234373614 -60.4680681676959750 137.6550477173541367 + 300 4.5289151089964435 -10037.0034097789121006 -10063.5001355365566269 26.4967257576439188 -10030.8230306457808183 -32.6771048907772084 34.9238490632284311 -67.6009539540031454 150.8370795942033453 + 400 6.0309539699228480 -10037.0320901258182857 -10064.3886163746046805 27.3565262487870413 -10031.8532011416427849 -32.5354152329611424 44.2423469839354624 -76.7777622168941747 155.7316388806569307 + 500 7.5873900629812852 -10037.0233394482729636 -10064.1136184894312464 27.0902790411581904 -10031.4312007416810957 -32.6824177477510176 37.2292320482201404 -69.9116497959683159 154.2159817531999124 + 600 9.1088078819448128 -10037.0033561502586963 -10063.6570740290553658 26.6537178787959803 -10031.3274097829398670 -32.3296642461160033 28.5090732060055281 -60.8387374521202773 151.7307837178928480 + 700 10.6168858460150659 -10037.0041655805125629 -10063.3498627390090405 26.3456971584962574 -10030.8006321782777377 -32.5492305607314165 32.5646861904650535 -65.1139167511946653 149.9773238251696910 + 800 12.1294107990106568 -10037.0245724491123838 -10064.2193369538508705 27.1947645047383304 -10031.7656842933720327 -32.4536526604775162 43.3815569718824179 -75.8352096323571629 154.8107828743130767 + 900 13.6509861790109426 -10037.0283918584264029 -10064.6675188165099826 27.6391269580827625 -10032.1673975747471559 -32.5001212417642336 39.9934500237184380 -72.4935712654798436 157.3403910740904905 + 1000 15.1634582940023392 -10037.0033475405834906 -10063.6621727185720374 26.6588251779879926 -10031.3371200905276055 -32.3250526280445740 29.5735783776581442 -61.8986310057012972 151.7598578798018707 +Loop time of 15.1635 on 4 procs for 1000 steps with 1360 atoms + +Performance: 5.698 ns/day, 4.212 hours/ns, 65.948 timesteps/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 13.997 | 14.363 | 14.741 | 9.0 | 94.72 +Bond | 0.00036359 | 0.00040186 | 0.00044586 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.40664 | 0.78485 | 1.1509 | 38.6 | 5.18 +Output | 0.00027687 | 0.00036825 | 0.00063194 | 0.0 | 0.00 +Modify | 0.0043962 | 0.0045847 | 0.0047857 | 0.2 | 0.03 +Other | | 0.01055 | | | 0.07 + +Nlocal: 340 ave 340 max 340 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 4628 ave 4628 max 4628 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 259250 ave 259250 max 259250 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 1037000 +Ave neighs/atom = 762.5 +Ave special neighs/atom = 0 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:15 diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/BNC.tersoff b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/BNC.tersoff new file mode 120000 index 0000000000..0c35f80da1 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/BNC.tersoff @@ -0,0 +1 @@ +../../../../../potentials/BNC.tersoff \ No newline at end of file diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/BNCH.ILP b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/BNCH.ILP new file mode 120000 index 0000000000..b970e23f95 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/BNCH.ILP @@ -0,0 +1 @@ +../../../../../potentials/BNCH.ILP \ No newline at end of file diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/hBN_AA_prime_stack_2L_noH.data b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/hBN_AA_prime_stack_2L_noH.data new file mode 100644 index 0000000000..b965f74d30 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/hBN_AA_prime_stack_2L_noH.data @@ -0,0 +1,1372 @@ + Generate Bi-layer hBN + + 1360 atoms + + 4 atom types + + 0.000000000000000 43.379999999999995 xlo xhi + 0.000000000000000 42.577272951658138 ylo yhi + 0.000000000000000 100.000000000000000 zlo zhi + + Atoms + + 1 1 1 0.42000 0.000000000000000 1.252272733872298 0.000000000000000 + 2 1 2 -0.42000 0.723000000000000 0.000000000000000 0.000000000000000 + 3 1 1 0.42000 2.169000000000000 0.000000000000000 0.000000000000000 + 4 1 2 -0.42000 2.892000000000000 1.252272733872298 0.000000000000000 + 5 1 1 0.42000 4.338000000000000 1.252272733872298 0.000000000000000 + 6 1 2 -0.42000 5.061000000000000 0.000000000000000 0.000000000000000 + 7 1 1 0.42000 6.507000000000000 0.000000000000000 0.000000000000000 + 8 1 2 -0.42000 7.230000000000000 1.252272733872298 0.000000000000000 + 9 1 1 0.42000 8.676000000000000 1.252272733872298 0.000000000000000 + 10 1 2 -0.42000 9.399000000000001 0.000000000000000 0.000000000000000 + 11 1 1 0.42000 10.845000000000001 0.000000000000000 0.000000000000000 + 12 1 2 -0.42000 11.568000000000000 1.252272733872298 0.000000000000000 + 13 1 1 0.42000 13.013999999999999 1.252272733872298 0.000000000000000 + 14 1 2 -0.42000 13.737000000000000 0.000000000000000 0.000000000000000 + 15 1 1 0.42000 15.183000000000000 0.000000000000000 0.000000000000000 + 16 1 2 -0.42000 15.905999999999999 1.252272733872298 0.000000000000000 + 17 1 1 0.42000 17.352000000000000 1.252272733872298 0.000000000000000 + 18 1 2 -0.42000 18.074999999999999 0.000000000000000 0.000000000000000 + 19 1 1 0.42000 19.521000000000001 0.000000000000000 0.000000000000000 + 20 1 2 -0.42000 20.244000000000000 1.252272733872298 0.000000000000000 + 21 1 1 0.42000 21.690000000000001 1.252272733872298 0.000000000000000 + 22 1 2 -0.42000 22.413000000000000 0.000000000000000 0.000000000000000 + 23 1 1 0.42000 23.859000000000002 0.000000000000000 0.000000000000000 + 24 1 2 -0.42000 24.582000000000001 1.252272733872298 0.000000000000000 + 25 1 1 0.42000 26.027999999999999 1.252272733872298 0.000000000000000 + 26 1 2 -0.42000 26.750999999999998 0.000000000000000 0.000000000000000 + 27 1 1 0.42000 28.196999999999999 0.000000000000000 0.000000000000000 + 28 1 2 -0.42000 28.919999999999998 1.252272733872298 0.000000000000000 + 29 1 1 0.42000 30.366000000000000 1.252272733872298 0.000000000000000 + 30 1 2 -0.42000 31.088999999999999 0.000000000000000 0.000000000000000 + 31 1 1 0.42000 32.534999999999997 0.000000000000000 0.000000000000000 + 32 1 2 -0.42000 33.258000000000003 1.252272733872298 0.000000000000000 + 33 1 1 0.42000 34.704000000000001 1.252272733872298 0.000000000000000 + 34 1 2 -0.42000 35.427000000000000 0.000000000000000 0.000000000000000 + 35 1 1 0.42000 36.872999999999998 0.000000000000000 0.000000000000000 + 36 1 2 -0.42000 37.596000000000004 1.252272733872298 0.000000000000000 + 37 1 1 0.42000 39.042000000000002 1.252272733872298 0.000000000000000 + 38 1 2 -0.42000 39.765000000000001 0.000000000000000 0.000000000000000 + 39 1 1 0.42000 41.210999999999999 0.000000000000000 0.000000000000000 + 40 1 2 -0.42000 41.934000000000005 1.252272733872298 0.000000000000000 + 41 1 1 0.42000 0.000000000000000 3.756818201616894 0.000000000000000 + 42 1 2 -0.42000 0.723000000000000 2.504545467744596 0.000000000000000 + 43 1 1 0.42000 2.169000000000000 2.504545467744596 0.000000000000000 + 44 1 2 -0.42000 2.892000000000000 3.756818201616894 0.000000000000000 + 45 1 1 0.42000 4.338000000000000 3.756818201616894 0.000000000000000 + 46 1 2 -0.42000 5.061000000000000 2.504545467744596 0.000000000000000 + 47 1 1 0.42000 6.507000000000000 2.504545467744596 0.000000000000000 + 48 1 2 -0.42000 7.230000000000000 3.756818201616894 0.000000000000000 + 49 1 1 0.42000 8.676000000000000 3.756818201616894 0.000000000000000 + 50 1 2 -0.42000 9.399000000000001 2.504545467744596 0.000000000000000 + 51 1 1 0.42000 10.845000000000001 2.504545467744596 0.000000000000000 + 52 1 2 -0.42000 11.568000000000000 3.756818201616894 0.000000000000000 + 53 1 1 0.42000 13.013999999999999 3.756818201616894 0.000000000000000 + 54 1 2 -0.42000 13.737000000000000 2.504545467744596 0.000000000000000 + 55 1 1 0.42000 15.183000000000000 2.504545467744596 0.000000000000000 + 56 1 2 -0.42000 15.905999999999999 3.756818201616894 0.000000000000000 + 57 1 1 0.42000 17.352000000000000 3.756818201616894 0.000000000000000 + 58 1 2 -0.42000 18.074999999999999 2.504545467744596 0.000000000000000 + 59 1 1 0.42000 19.521000000000001 2.504545467744596 0.000000000000000 + 60 1 2 -0.42000 20.244000000000000 3.756818201616894 0.000000000000000 + 61 1 1 0.42000 21.690000000000001 3.756818201616894 0.000000000000000 + 62 1 2 -0.42000 22.413000000000000 2.504545467744596 0.000000000000000 + 63 1 1 0.42000 23.859000000000002 2.504545467744596 0.000000000000000 + 64 1 2 -0.42000 24.582000000000001 3.756818201616894 0.000000000000000 + 65 1 1 0.42000 26.027999999999999 3.756818201616894 0.000000000000000 + 66 1 2 -0.42000 26.750999999999998 2.504545467744596 0.000000000000000 + 67 1 1 0.42000 28.196999999999999 2.504545467744596 0.000000000000000 + 68 1 2 -0.42000 28.919999999999998 3.756818201616894 0.000000000000000 + 69 1 1 0.42000 30.366000000000000 3.756818201616894 0.000000000000000 + 70 1 2 -0.42000 31.088999999999999 2.504545467744596 0.000000000000000 + 71 1 1 0.42000 32.534999999999997 2.504545467744596 0.000000000000000 + 72 1 2 -0.42000 33.258000000000003 3.756818201616894 0.000000000000000 + 73 1 1 0.42000 34.704000000000001 3.756818201616894 0.000000000000000 + 74 1 2 -0.42000 35.427000000000000 2.504545467744596 0.000000000000000 + 75 1 1 0.42000 36.872999999999998 2.504545467744596 0.000000000000000 + 76 1 2 -0.42000 37.596000000000004 3.756818201616894 0.000000000000000 + 77 1 1 0.42000 39.042000000000002 3.756818201616894 0.000000000000000 + 78 1 2 -0.42000 39.765000000000001 2.504545467744596 0.000000000000000 + 79 1 1 0.42000 41.210999999999999 2.504545467744596 0.000000000000000 + 80 1 2 -0.42000 41.934000000000005 3.756818201616894 0.000000000000000 + 81 1 1 0.42000 0.000000000000000 6.261363669361490 0.000000000000000 + 82 1 2 -0.42000 0.723000000000000 5.009090935489192 0.000000000000000 + 83 1 1 0.42000 2.169000000000000 5.009090935489192 0.000000000000000 + 84 1 2 -0.42000 2.892000000000000 6.261363669361490 0.000000000000000 + 85 1 1 0.42000 4.338000000000000 6.261363669361490 0.000000000000000 + 86 1 2 -0.42000 5.061000000000000 5.009090935489192 0.000000000000000 + 87 1 1 0.42000 6.507000000000000 5.009090935489192 0.000000000000000 + 88 1 2 -0.42000 7.230000000000000 6.261363669361490 0.000000000000000 + 89 1 1 0.42000 8.676000000000000 6.261363669361490 0.000000000000000 + 90 1 2 -0.42000 9.399000000000001 5.009090935489192 0.000000000000000 + 91 1 1 0.42000 10.845000000000001 5.009090935489192 0.000000000000000 + 92 1 2 -0.42000 11.568000000000000 6.261363669361490 0.000000000000000 + 93 1 1 0.42000 13.013999999999999 6.261363669361490 0.000000000000000 + 94 1 2 -0.42000 13.737000000000000 5.009090935489192 0.000000000000000 + 95 1 1 0.42000 15.183000000000000 5.009090935489192 0.000000000000000 + 96 1 2 -0.42000 15.905999999999999 6.261363669361490 0.000000000000000 + 97 1 1 0.42000 17.352000000000000 6.261363669361490 0.000000000000000 + 98 1 2 -0.42000 18.074999999999999 5.009090935489192 0.000000000000000 + 99 1 1 0.42000 19.521000000000001 5.009090935489192 0.000000000000000 + 100 1 2 -0.42000 20.244000000000000 6.261363669361490 0.000000000000000 + 101 1 1 0.42000 21.690000000000001 6.261363669361490 0.000000000000000 + 102 1 2 -0.42000 22.413000000000000 5.009090935489192 0.000000000000000 + 103 1 1 0.42000 23.859000000000002 5.009090935489192 0.000000000000000 + 104 1 2 -0.42000 24.582000000000001 6.261363669361490 0.000000000000000 + 105 1 1 0.42000 26.027999999999999 6.261363669361490 0.000000000000000 + 106 1 2 -0.42000 26.750999999999998 5.009090935489192 0.000000000000000 + 107 1 1 0.42000 28.196999999999999 5.009090935489192 0.000000000000000 + 108 1 2 -0.42000 28.919999999999998 6.261363669361490 0.000000000000000 + 109 1 1 0.42000 30.366000000000000 6.261363669361490 0.000000000000000 + 110 1 2 -0.42000 31.088999999999999 5.009090935489192 0.000000000000000 + 111 1 1 0.42000 32.534999999999997 5.009090935489192 0.000000000000000 + 112 1 2 -0.42000 33.258000000000003 6.261363669361490 0.000000000000000 + 113 1 1 0.42000 34.704000000000001 6.261363669361490 0.000000000000000 + 114 1 2 -0.42000 35.427000000000000 5.009090935489192 0.000000000000000 + 115 1 1 0.42000 36.872999999999998 5.009090935489192 0.000000000000000 + 116 1 2 -0.42000 37.596000000000004 6.261363669361490 0.000000000000000 + 117 1 1 0.42000 39.042000000000002 6.261363669361490 0.000000000000000 + 118 1 2 -0.42000 39.765000000000001 5.009090935489192 0.000000000000000 + 119 1 1 0.42000 41.210999999999999 5.009090935489192 0.000000000000000 + 120 1 2 -0.42000 41.934000000000005 6.261363669361490 0.000000000000000 + 121 1 1 0.42000 0.000000000000000 8.765909137106087 0.000000000000000 + 122 1 2 -0.42000 0.723000000000000 7.513636403233789 0.000000000000000 + 123 1 1 0.42000 2.169000000000000 7.513636403233789 0.000000000000000 + 124 1 2 -0.42000 2.892000000000000 8.765909137106087 0.000000000000000 + 125 1 1 0.42000 4.338000000000000 8.765909137106087 0.000000000000000 + 126 1 2 -0.42000 5.061000000000000 7.513636403233789 0.000000000000000 + 127 1 1 0.42000 6.507000000000000 7.513636403233789 0.000000000000000 + 128 1 2 -0.42000 7.230000000000000 8.765909137106087 0.000000000000000 + 129 1 1 0.42000 8.676000000000000 8.765909137106087 0.000000000000000 + 130 1 2 -0.42000 9.399000000000001 7.513636403233789 0.000000000000000 + 131 1 1 0.42000 10.845000000000001 7.513636403233789 0.000000000000000 + 132 1 2 -0.42000 11.568000000000000 8.765909137106087 0.000000000000000 + 133 1 1 0.42000 13.013999999999999 8.765909137106087 0.000000000000000 + 134 1 2 -0.42000 13.737000000000000 7.513636403233789 0.000000000000000 + 135 1 1 0.42000 15.183000000000000 7.513636403233789 0.000000000000000 + 136 1 2 -0.42000 15.905999999999999 8.765909137106087 0.000000000000000 + 137 1 1 0.42000 17.352000000000000 8.765909137106087 0.000000000000000 + 138 1 2 -0.42000 18.074999999999999 7.513636403233789 0.000000000000000 + 139 1 1 0.42000 19.521000000000001 7.513636403233789 0.000000000000000 + 140 1 2 -0.42000 20.244000000000000 8.765909137106087 0.000000000000000 + 141 1 1 0.42000 21.690000000000001 8.765909137106087 0.000000000000000 + 142 1 2 -0.42000 22.413000000000000 7.513636403233789 0.000000000000000 + 143 1 1 0.42000 23.859000000000002 7.513636403233789 0.000000000000000 + 144 1 2 -0.42000 24.582000000000001 8.765909137106087 0.000000000000000 + 145 1 1 0.42000 26.027999999999999 8.765909137106087 0.000000000000000 + 146 1 2 -0.42000 26.750999999999998 7.513636403233789 0.000000000000000 + 147 1 1 0.42000 28.196999999999999 7.513636403233789 0.000000000000000 + 148 1 2 -0.42000 28.919999999999998 8.765909137106087 0.000000000000000 + 149 1 1 0.42000 30.366000000000000 8.765909137106087 0.000000000000000 + 150 1 2 -0.42000 31.088999999999999 7.513636403233789 0.000000000000000 + 151 1 1 0.42000 32.534999999999997 7.513636403233789 0.000000000000000 + 152 1 2 -0.42000 33.258000000000003 8.765909137106087 0.000000000000000 + 153 1 1 0.42000 34.704000000000001 8.765909137106087 0.000000000000000 + 154 1 2 -0.42000 35.427000000000000 7.513636403233789 0.000000000000000 + 155 1 1 0.42000 36.872999999999998 7.513636403233789 0.000000000000000 + 156 1 2 -0.42000 37.596000000000004 8.765909137106087 0.000000000000000 + 157 1 1 0.42000 39.042000000000002 8.765909137106087 0.000000000000000 + 158 1 2 -0.42000 39.765000000000001 7.513636403233789 0.000000000000000 + 159 1 1 0.42000 41.210999999999999 7.513636403233789 0.000000000000000 + 160 1 2 -0.42000 41.934000000000005 8.765909137106087 0.000000000000000 + 161 1 1 0.42000 0.000000000000000 11.270454604850682 0.000000000000000 + 162 1 2 -0.42000 0.723000000000000 10.018181870978385 0.000000000000000 + 163 1 1 0.42000 2.169000000000000 10.018181870978385 0.000000000000000 + 164 1 2 -0.42000 2.892000000000000 11.270454604850682 0.000000000000000 + 165 1 1 0.42000 4.338000000000000 11.270454604850682 0.000000000000000 + 166 1 2 -0.42000 5.061000000000000 10.018181870978385 0.000000000000000 + 167 1 1 0.42000 6.507000000000000 10.018181870978385 0.000000000000000 + 168 1 2 -0.42000 7.230000000000000 11.270454604850682 0.000000000000000 + 169 1 1 0.42000 8.676000000000000 11.270454604850682 0.000000000000000 + 170 1 2 -0.42000 9.399000000000001 10.018181870978385 0.000000000000000 + 171 1 1 0.42000 10.845000000000001 10.018181870978385 0.000000000000000 + 172 1 2 -0.42000 11.568000000000000 11.270454604850682 0.000000000000000 + 173 1 1 0.42000 13.013999999999999 11.270454604850682 0.000000000000000 + 174 1 2 -0.42000 13.737000000000000 10.018181870978385 0.000000000000000 + 175 1 1 0.42000 15.183000000000000 10.018181870978385 0.000000000000000 + 176 1 2 -0.42000 15.905999999999999 11.270454604850682 0.000000000000000 + 177 1 1 0.42000 17.352000000000000 11.270454604850682 0.000000000000000 + 178 1 2 -0.42000 18.074999999999999 10.018181870978385 0.000000000000000 + 179 1 1 0.42000 19.521000000000001 10.018181870978385 0.000000000000000 + 180 1 2 -0.42000 20.244000000000000 11.270454604850682 0.000000000000000 + 181 1 1 0.42000 21.690000000000001 11.270454604850682 0.000000000000000 + 182 1 2 -0.42000 22.413000000000000 10.018181870978385 0.000000000000000 + 183 1 1 0.42000 23.859000000000002 10.018181870978385 0.000000000000000 + 184 1 2 -0.42000 24.582000000000001 11.270454604850682 0.000000000000000 + 185 1 1 0.42000 26.027999999999999 11.270454604850682 0.000000000000000 + 186 1 2 -0.42000 26.750999999999998 10.018181870978385 0.000000000000000 + 187 1 1 0.42000 28.196999999999999 10.018181870978385 0.000000000000000 + 188 1 2 -0.42000 28.919999999999998 11.270454604850682 0.000000000000000 + 189 1 1 0.42000 30.366000000000000 11.270454604850682 0.000000000000000 + 190 1 2 -0.42000 31.088999999999999 10.018181870978385 0.000000000000000 + 191 1 1 0.42000 32.534999999999997 10.018181870978385 0.000000000000000 + 192 1 2 -0.42000 33.258000000000003 11.270454604850682 0.000000000000000 + 193 1 1 0.42000 34.704000000000001 11.270454604850682 0.000000000000000 + 194 1 2 -0.42000 35.427000000000000 10.018181870978385 0.000000000000000 + 195 1 1 0.42000 36.872999999999998 10.018181870978385 0.000000000000000 + 196 1 2 -0.42000 37.596000000000004 11.270454604850682 0.000000000000000 + 197 1 1 0.42000 39.042000000000002 11.270454604850682 0.000000000000000 + 198 1 2 -0.42000 39.765000000000001 10.018181870978385 0.000000000000000 + 199 1 1 0.42000 41.210999999999999 10.018181870978385 0.000000000000000 + 200 1 2 -0.42000 41.934000000000005 11.270454604850682 0.000000000000000 + 201 1 1 0.42000 0.000000000000000 13.775000072595278 0.000000000000000 + 202 1 2 -0.42000 0.723000000000000 12.522727338722980 0.000000000000000 + 203 1 1 0.42000 2.169000000000000 12.522727338722980 0.000000000000000 + 204 1 2 -0.42000 2.892000000000000 13.775000072595278 0.000000000000000 + 205 1 1 0.42000 4.338000000000000 13.775000072595278 0.000000000000000 + 206 1 2 -0.42000 5.061000000000000 12.522727338722980 0.000000000000000 + 207 1 1 0.42000 6.507000000000000 12.522727338722980 0.000000000000000 + 208 1 2 -0.42000 7.230000000000000 13.775000072595278 0.000000000000000 + 209 1 1 0.42000 8.676000000000000 13.775000072595278 0.000000000000000 + 210 1 2 -0.42000 9.399000000000001 12.522727338722980 0.000000000000000 + 211 1 1 0.42000 10.845000000000001 12.522727338722980 0.000000000000000 + 212 1 2 -0.42000 11.568000000000000 13.775000072595278 0.000000000000000 + 213 1 1 0.42000 13.013999999999999 13.775000072595278 0.000000000000000 + 214 1 2 -0.42000 13.737000000000000 12.522727338722980 0.000000000000000 + 215 1 1 0.42000 15.183000000000000 12.522727338722980 0.000000000000000 + 216 1 2 -0.42000 15.905999999999999 13.775000072595278 0.000000000000000 + 217 1 1 0.42000 17.352000000000000 13.775000072595278 0.000000000000000 + 218 1 2 -0.42000 18.074999999999999 12.522727338722980 0.000000000000000 + 219 1 1 0.42000 19.521000000000001 12.522727338722980 0.000000000000000 + 220 1 2 -0.42000 20.244000000000000 13.775000072595278 0.000000000000000 + 221 1 1 0.42000 21.690000000000001 13.775000072595278 0.000000000000000 + 222 1 2 -0.42000 22.413000000000000 12.522727338722980 0.000000000000000 + 223 1 1 0.42000 23.859000000000002 12.522727338722980 0.000000000000000 + 224 1 2 -0.42000 24.582000000000001 13.775000072595278 0.000000000000000 + 225 1 1 0.42000 26.027999999999999 13.775000072595278 0.000000000000000 + 226 1 2 -0.42000 26.750999999999998 12.522727338722980 0.000000000000000 + 227 1 1 0.42000 28.196999999999999 12.522727338722980 0.000000000000000 + 228 1 2 -0.42000 28.919999999999998 13.775000072595278 0.000000000000000 + 229 1 1 0.42000 30.366000000000000 13.775000072595278 0.000000000000000 + 230 1 2 -0.42000 31.088999999999999 12.522727338722980 0.000000000000000 + 231 1 1 0.42000 32.534999999999997 12.522727338722980 0.000000000000000 + 232 1 2 -0.42000 33.258000000000003 13.775000072595278 0.000000000000000 + 233 1 1 0.42000 34.704000000000001 13.775000072595278 0.000000000000000 + 234 1 2 -0.42000 35.427000000000000 12.522727338722980 0.000000000000000 + 235 1 1 0.42000 36.872999999999998 12.522727338722980 0.000000000000000 + 236 1 2 -0.42000 37.596000000000004 13.775000072595278 0.000000000000000 + 237 1 1 0.42000 39.042000000000002 13.775000072595278 0.000000000000000 + 238 1 2 -0.42000 39.765000000000001 12.522727338722980 0.000000000000000 + 239 1 1 0.42000 41.210999999999999 12.522727338722980 0.000000000000000 + 240 1 2 -0.42000 41.934000000000005 13.775000072595278 0.000000000000000 + 241 1 1 0.42000 0.000000000000000 16.279545540339875 0.000000000000000 + 242 1 2 -0.42000 0.723000000000000 15.027272806467577 0.000000000000000 + 243 1 1 0.42000 2.169000000000000 15.027272806467577 0.000000000000000 + 244 1 2 -0.42000 2.892000000000000 16.279545540339875 0.000000000000000 + 245 1 1 0.42000 4.338000000000000 16.279545540339875 0.000000000000000 + 246 1 2 -0.42000 5.061000000000000 15.027272806467577 0.000000000000000 + 247 1 1 0.42000 6.507000000000000 15.027272806467577 0.000000000000000 + 248 1 2 -0.42000 7.230000000000000 16.279545540339875 0.000000000000000 + 249 1 1 0.42000 8.676000000000000 16.279545540339875 0.000000000000000 + 250 1 2 -0.42000 9.399000000000001 15.027272806467577 0.000000000000000 + 251 1 1 0.42000 10.845000000000001 15.027272806467577 0.000000000000000 + 252 1 2 -0.42000 11.568000000000000 16.279545540339875 0.000000000000000 + 253 1 1 0.42000 13.013999999999999 16.279545540339875 0.000000000000000 + 254 1 2 -0.42000 13.737000000000000 15.027272806467577 0.000000000000000 + 255 1 1 0.42000 15.183000000000000 15.027272806467577 0.000000000000000 + 256 1 2 -0.42000 15.905999999999999 16.279545540339875 0.000000000000000 + 257 1 1 0.42000 17.352000000000000 16.279545540339875 0.000000000000000 + 258 1 2 -0.42000 18.074999999999999 15.027272806467577 0.000000000000000 + 259 1 1 0.42000 19.521000000000001 15.027272806467577 0.000000000000000 + 260 1 2 -0.42000 20.244000000000000 16.279545540339875 0.000000000000000 + 261 1 1 0.42000 21.690000000000001 16.279545540339875 0.000000000000000 + 262 1 2 -0.42000 22.413000000000000 15.027272806467577 0.000000000000000 + 263 1 1 0.42000 23.859000000000002 15.027272806467577 0.000000000000000 + 264 1 2 -0.42000 24.582000000000001 16.279545540339875 0.000000000000000 + 265 1 1 0.42000 26.027999999999999 16.279545540339875 0.000000000000000 + 266 1 2 -0.42000 26.750999999999998 15.027272806467577 0.000000000000000 + 267 1 1 0.42000 28.196999999999999 15.027272806467577 0.000000000000000 + 268 1 2 -0.42000 28.919999999999998 16.279545540339875 0.000000000000000 + 269 1 1 0.42000 30.366000000000000 16.279545540339875 0.000000000000000 + 270 1 2 -0.42000 31.088999999999999 15.027272806467577 0.000000000000000 + 271 1 1 0.42000 32.534999999999997 15.027272806467577 0.000000000000000 + 272 1 2 -0.42000 33.258000000000003 16.279545540339875 0.000000000000000 + 273 1 1 0.42000 34.704000000000001 16.279545540339875 0.000000000000000 + 274 1 2 -0.42000 35.427000000000000 15.027272806467577 0.000000000000000 + 275 1 1 0.42000 36.872999999999998 15.027272806467577 0.000000000000000 + 276 1 2 -0.42000 37.596000000000004 16.279545540339875 0.000000000000000 + 277 1 1 0.42000 39.042000000000002 16.279545540339875 0.000000000000000 + 278 1 2 -0.42000 39.765000000000001 15.027272806467577 0.000000000000000 + 279 1 1 0.42000 41.210999999999999 15.027272806467577 0.000000000000000 + 280 1 2 -0.42000 41.934000000000005 16.279545540339875 0.000000000000000 + 281 1 1 0.42000 0.000000000000000 18.784091008084474 0.000000000000000 + 282 1 2 -0.42000 0.723000000000000 17.531818274212174 0.000000000000000 + 283 1 1 0.42000 2.169000000000000 17.531818274212174 0.000000000000000 + 284 1 2 -0.42000 2.892000000000000 18.784091008084474 0.000000000000000 + 285 1 1 0.42000 4.338000000000000 18.784091008084474 0.000000000000000 + 286 1 2 -0.42000 5.061000000000000 17.531818274212174 0.000000000000000 + 287 1 1 0.42000 6.507000000000000 17.531818274212174 0.000000000000000 + 288 1 2 -0.42000 7.230000000000000 18.784091008084474 0.000000000000000 + 289 1 1 0.42000 8.676000000000000 18.784091008084474 0.000000000000000 + 290 1 2 -0.42000 9.399000000000001 17.531818274212174 0.000000000000000 + 291 1 1 0.42000 10.845000000000001 17.531818274212174 0.000000000000000 + 292 1 2 -0.42000 11.568000000000000 18.784091008084474 0.000000000000000 + 293 1 1 0.42000 13.013999999999999 18.784091008084474 0.000000000000000 + 294 1 2 -0.42000 13.737000000000000 17.531818274212174 0.000000000000000 + 295 1 1 0.42000 15.183000000000000 17.531818274212174 0.000000000000000 + 296 1 2 -0.42000 15.905999999999999 18.784091008084474 0.000000000000000 + 297 1 1 0.42000 17.352000000000000 18.784091008084474 0.000000000000000 + 298 1 2 -0.42000 18.074999999999999 17.531818274212174 0.000000000000000 + 299 1 1 0.42000 19.521000000000001 17.531818274212174 0.000000000000000 + 300 1 2 -0.42000 20.244000000000000 18.784091008084474 0.000000000000000 + 301 1 1 0.42000 21.690000000000001 18.784091008084474 0.000000000000000 + 302 1 2 -0.42000 22.413000000000000 17.531818274212174 0.000000000000000 + 303 1 1 0.42000 23.859000000000002 17.531818274212174 0.000000000000000 + 304 1 2 -0.42000 24.582000000000001 18.784091008084474 0.000000000000000 + 305 1 1 0.42000 26.027999999999999 18.784091008084474 0.000000000000000 + 306 1 2 -0.42000 26.750999999999998 17.531818274212174 0.000000000000000 + 307 1 1 0.42000 28.196999999999999 17.531818274212174 0.000000000000000 + 308 1 2 -0.42000 28.919999999999998 18.784091008084474 0.000000000000000 + 309 1 1 0.42000 30.366000000000000 18.784091008084474 0.000000000000000 + 310 1 2 -0.42000 31.088999999999999 17.531818274212174 0.000000000000000 + 311 1 1 0.42000 32.534999999999997 17.531818274212174 0.000000000000000 + 312 1 2 -0.42000 33.258000000000003 18.784091008084474 0.000000000000000 + 313 1 1 0.42000 34.704000000000001 18.784091008084474 0.000000000000000 + 314 1 2 -0.42000 35.427000000000000 17.531818274212174 0.000000000000000 + 315 1 1 0.42000 36.872999999999998 17.531818274212174 0.000000000000000 + 316 1 2 -0.42000 37.596000000000004 18.784091008084474 0.000000000000000 + 317 1 1 0.42000 39.042000000000002 18.784091008084474 0.000000000000000 + 318 1 2 -0.42000 39.765000000000001 17.531818274212174 0.000000000000000 + 319 1 1 0.42000 41.210999999999999 17.531818274212174 0.000000000000000 + 320 1 2 -0.42000 41.934000000000005 18.784091008084474 0.000000000000000 + 321 1 1 0.42000 0.000000000000000 21.288636475829069 0.000000000000000 + 322 1 2 -0.42000 0.723000000000000 20.036363741956770 0.000000000000000 + 323 1 1 0.42000 2.169000000000000 20.036363741956770 0.000000000000000 + 324 1 2 -0.42000 2.892000000000000 21.288636475829069 0.000000000000000 + 325 1 1 0.42000 4.338000000000000 21.288636475829069 0.000000000000000 + 326 1 2 -0.42000 5.061000000000000 20.036363741956770 0.000000000000000 + 327 1 1 0.42000 6.507000000000000 20.036363741956770 0.000000000000000 + 328 1 2 -0.42000 7.230000000000000 21.288636475829069 0.000000000000000 + 329 1 1 0.42000 8.676000000000000 21.288636475829069 0.000000000000000 + 330 1 2 -0.42000 9.399000000000001 20.036363741956770 0.000000000000000 + 331 1 1 0.42000 10.845000000000001 20.036363741956770 0.000000000000000 + 332 1 2 -0.42000 11.568000000000000 21.288636475829069 0.000000000000000 + 333 1 1 0.42000 13.013999999999999 21.288636475829069 0.000000000000000 + 334 1 2 -0.42000 13.737000000000000 20.036363741956770 0.000000000000000 + 335 1 1 0.42000 15.183000000000000 20.036363741956770 0.000000000000000 + 336 1 2 -0.42000 15.905999999999999 21.288636475829069 0.000000000000000 + 337 1 1 0.42000 17.352000000000000 21.288636475829069 0.000000000000000 + 338 1 2 -0.42000 18.074999999999999 20.036363741956770 0.000000000000000 + 339 1 1 0.42000 19.521000000000001 20.036363741956770 0.000000000000000 + 340 1 2 -0.42000 20.244000000000000 21.288636475829069 0.000000000000000 + 341 1 1 0.42000 21.690000000000001 21.288636475829069 0.000000000000000 + 342 1 2 -0.42000 22.413000000000000 20.036363741956770 0.000000000000000 + 343 1 1 0.42000 23.859000000000002 20.036363741956770 0.000000000000000 + 344 1 2 -0.42000 24.582000000000001 21.288636475829069 0.000000000000000 + 345 1 1 0.42000 26.027999999999999 21.288636475829069 0.000000000000000 + 346 1 2 -0.42000 26.750999999999998 20.036363741956770 0.000000000000000 + 347 1 1 0.42000 28.196999999999999 20.036363741956770 0.000000000000000 + 348 1 2 -0.42000 28.919999999999998 21.288636475829069 0.000000000000000 + 349 1 1 0.42000 30.366000000000000 21.288636475829069 0.000000000000000 + 350 1 2 -0.42000 31.088999999999999 20.036363741956770 0.000000000000000 + 351 1 1 0.42000 32.534999999999997 20.036363741956770 0.000000000000000 + 352 1 2 -0.42000 33.258000000000003 21.288636475829069 0.000000000000000 + 353 1 1 0.42000 34.704000000000001 21.288636475829069 0.000000000000000 + 354 1 2 -0.42000 35.427000000000000 20.036363741956770 0.000000000000000 + 355 1 1 0.42000 36.872999999999998 20.036363741956770 0.000000000000000 + 356 1 2 -0.42000 37.596000000000004 21.288636475829069 0.000000000000000 + 357 1 1 0.42000 39.042000000000002 21.288636475829069 0.000000000000000 + 358 1 2 -0.42000 39.765000000000001 20.036363741956770 0.000000000000000 + 359 1 1 0.42000 41.210999999999999 20.036363741956770 0.000000000000000 + 360 1 2 -0.42000 41.934000000000005 21.288636475829069 0.000000000000000 + 361 1 1 0.42000 0.000000000000000 23.793181943573664 0.000000000000000 + 362 1 2 -0.42000 0.723000000000000 22.540909209701365 0.000000000000000 + 363 1 1 0.42000 2.169000000000000 22.540909209701365 0.000000000000000 + 364 1 2 -0.42000 2.892000000000000 23.793181943573664 0.000000000000000 + 365 1 1 0.42000 4.338000000000000 23.793181943573664 0.000000000000000 + 366 1 2 -0.42000 5.061000000000000 22.540909209701365 0.000000000000000 + 367 1 1 0.42000 6.507000000000000 22.540909209701365 0.000000000000000 + 368 1 2 -0.42000 7.230000000000000 23.793181943573664 0.000000000000000 + 369 1 1 0.42000 8.676000000000000 23.793181943573664 0.000000000000000 + 370 1 2 -0.42000 9.399000000000001 22.540909209701365 0.000000000000000 + 371 1 1 0.42000 10.845000000000001 22.540909209701365 0.000000000000000 + 372 1 2 -0.42000 11.568000000000000 23.793181943573664 0.000000000000000 + 373 1 1 0.42000 13.013999999999999 23.793181943573664 0.000000000000000 + 374 1 2 -0.42000 13.737000000000000 22.540909209701365 0.000000000000000 + 375 1 1 0.42000 15.183000000000000 22.540909209701365 0.000000000000000 + 376 1 2 -0.42000 15.905999999999999 23.793181943573664 0.000000000000000 + 377 1 1 0.42000 17.352000000000000 23.793181943573664 0.000000000000000 + 378 1 2 -0.42000 18.074999999999999 22.540909209701365 0.000000000000000 + 379 1 1 0.42000 19.521000000000001 22.540909209701365 0.000000000000000 + 380 1 2 -0.42000 20.244000000000000 23.793181943573664 0.000000000000000 + 381 1 1 0.42000 21.690000000000001 23.793181943573664 0.000000000000000 + 382 1 2 -0.42000 22.413000000000000 22.540909209701365 0.000000000000000 + 383 1 1 0.42000 23.859000000000002 22.540909209701365 0.000000000000000 + 384 1 2 -0.42000 24.582000000000001 23.793181943573664 0.000000000000000 + 385 1 1 0.42000 26.027999999999999 23.793181943573664 0.000000000000000 + 386 1 2 -0.42000 26.750999999999998 22.540909209701365 0.000000000000000 + 387 1 1 0.42000 28.196999999999999 22.540909209701365 0.000000000000000 + 388 1 2 -0.42000 28.919999999999998 23.793181943573664 0.000000000000000 + 389 1 1 0.42000 30.366000000000000 23.793181943573664 0.000000000000000 + 390 1 2 -0.42000 31.088999999999999 22.540909209701365 0.000000000000000 + 391 1 1 0.42000 32.534999999999997 22.540909209701365 0.000000000000000 + 392 1 2 -0.42000 33.258000000000003 23.793181943573664 0.000000000000000 + 393 1 1 0.42000 34.704000000000001 23.793181943573664 0.000000000000000 + 394 1 2 -0.42000 35.427000000000000 22.540909209701365 0.000000000000000 + 395 1 1 0.42000 36.872999999999998 22.540909209701365 0.000000000000000 + 396 1 2 -0.42000 37.596000000000004 23.793181943573664 0.000000000000000 + 397 1 1 0.42000 39.042000000000002 23.793181943573664 0.000000000000000 + 398 1 2 -0.42000 39.765000000000001 22.540909209701365 0.000000000000000 + 399 1 1 0.42000 41.210999999999999 22.540909209701365 0.000000000000000 + 400 1 2 -0.42000 41.934000000000005 23.793181943573664 0.000000000000000 + 401 1 1 0.42000 0.000000000000000 26.297727411318260 0.000000000000000 + 402 1 2 -0.42000 0.723000000000000 25.045454677445960 0.000000000000000 + 403 1 1 0.42000 2.169000000000000 25.045454677445960 0.000000000000000 + 404 1 2 -0.42000 2.892000000000000 26.297727411318260 0.000000000000000 + 405 1 1 0.42000 4.338000000000000 26.297727411318260 0.000000000000000 + 406 1 2 -0.42000 5.061000000000000 25.045454677445960 0.000000000000000 + 407 1 1 0.42000 6.507000000000000 25.045454677445960 0.000000000000000 + 408 1 2 -0.42000 7.230000000000000 26.297727411318260 0.000000000000000 + 409 1 1 0.42000 8.676000000000000 26.297727411318260 0.000000000000000 + 410 1 2 -0.42000 9.399000000000001 25.045454677445960 0.000000000000000 + 411 1 1 0.42000 10.845000000000001 25.045454677445960 0.000000000000000 + 412 1 2 -0.42000 11.568000000000000 26.297727411318260 0.000000000000000 + 413 1 1 0.42000 13.013999999999999 26.297727411318260 0.000000000000000 + 414 1 2 -0.42000 13.737000000000000 25.045454677445960 0.000000000000000 + 415 1 1 0.42000 15.183000000000000 25.045454677445960 0.000000000000000 + 416 1 2 -0.42000 15.905999999999999 26.297727411318260 0.000000000000000 + 417 1 1 0.42000 17.352000000000000 26.297727411318260 0.000000000000000 + 418 1 2 -0.42000 18.074999999999999 25.045454677445960 0.000000000000000 + 419 1 1 0.42000 19.521000000000001 25.045454677445960 0.000000000000000 + 420 1 2 -0.42000 20.244000000000000 26.297727411318260 0.000000000000000 + 421 1 1 0.42000 21.690000000000001 26.297727411318260 0.000000000000000 + 422 1 2 -0.42000 22.413000000000000 25.045454677445960 0.000000000000000 + 423 1 1 0.42000 23.859000000000002 25.045454677445960 0.000000000000000 + 424 1 2 -0.42000 24.582000000000001 26.297727411318260 0.000000000000000 + 425 1 1 0.42000 26.027999999999999 26.297727411318260 0.000000000000000 + 426 1 2 -0.42000 26.750999999999998 25.045454677445960 0.000000000000000 + 427 1 1 0.42000 28.196999999999999 25.045454677445960 0.000000000000000 + 428 1 2 -0.42000 28.919999999999998 26.297727411318260 0.000000000000000 + 429 1 1 0.42000 30.366000000000000 26.297727411318260 0.000000000000000 + 430 1 2 -0.42000 31.088999999999999 25.045454677445960 0.000000000000000 + 431 1 1 0.42000 32.534999999999997 25.045454677445960 0.000000000000000 + 432 1 2 -0.42000 33.258000000000003 26.297727411318260 0.000000000000000 + 433 1 1 0.42000 34.704000000000001 26.297727411318260 0.000000000000000 + 434 1 2 -0.42000 35.427000000000000 25.045454677445960 0.000000000000000 + 435 1 1 0.42000 36.872999999999998 25.045454677445960 0.000000000000000 + 436 1 2 -0.42000 37.596000000000004 26.297727411318260 0.000000000000000 + 437 1 1 0.42000 39.042000000000002 26.297727411318260 0.000000000000000 + 438 1 2 -0.42000 39.765000000000001 25.045454677445960 0.000000000000000 + 439 1 1 0.42000 41.210999999999999 25.045454677445960 0.000000000000000 + 440 1 2 -0.42000 41.934000000000005 26.297727411318260 0.000000000000000 + 441 1 1 0.42000 0.000000000000000 28.802272879062858 0.000000000000000 + 442 1 2 -0.42000 0.723000000000000 27.550000145190559 0.000000000000000 + 443 1 1 0.42000 2.169000000000000 27.550000145190559 0.000000000000000 + 444 1 2 -0.42000 2.892000000000000 28.802272879062858 0.000000000000000 + 445 1 1 0.42000 4.338000000000000 28.802272879062858 0.000000000000000 + 446 1 2 -0.42000 5.061000000000000 27.550000145190559 0.000000000000000 + 447 1 1 0.42000 6.507000000000000 27.550000145190559 0.000000000000000 + 448 1 2 -0.42000 7.230000000000000 28.802272879062858 0.000000000000000 + 449 1 1 0.42000 8.676000000000000 28.802272879062858 0.000000000000000 + 450 1 2 -0.42000 9.399000000000001 27.550000145190559 0.000000000000000 + 451 1 1 0.42000 10.845000000000001 27.550000145190559 0.000000000000000 + 452 1 2 -0.42000 11.568000000000000 28.802272879062858 0.000000000000000 + 453 1 1 0.42000 13.013999999999999 28.802272879062858 0.000000000000000 + 454 1 2 -0.42000 13.737000000000000 27.550000145190559 0.000000000000000 + 455 1 1 0.42000 15.183000000000000 27.550000145190559 0.000000000000000 + 456 1 2 -0.42000 15.905999999999999 28.802272879062858 0.000000000000000 + 457 1 1 0.42000 17.352000000000000 28.802272879062858 0.000000000000000 + 458 1 2 -0.42000 18.074999999999999 27.550000145190559 0.000000000000000 + 459 1 1 0.42000 19.521000000000001 27.550000145190559 0.000000000000000 + 460 1 2 -0.42000 20.244000000000000 28.802272879062858 0.000000000000000 + 461 1 1 0.42000 21.690000000000001 28.802272879062858 0.000000000000000 + 462 1 2 -0.42000 22.413000000000000 27.550000145190559 0.000000000000000 + 463 1 1 0.42000 23.859000000000002 27.550000145190559 0.000000000000000 + 464 1 2 -0.42000 24.582000000000001 28.802272879062858 0.000000000000000 + 465 1 1 0.42000 26.027999999999999 28.802272879062858 0.000000000000000 + 466 1 2 -0.42000 26.750999999999998 27.550000145190559 0.000000000000000 + 467 1 1 0.42000 28.196999999999999 27.550000145190559 0.000000000000000 + 468 1 2 -0.42000 28.919999999999998 28.802272879062858 0.000000000000000 + 469 1 1 0.42000 30.366000000000000 28.802272879062858 0.000000000000000 + 470 1 2 -0.42000 31.088999999999999 27.550000145190559 0.000000000000000 + 471 1 1 0.42000 32.534999999999997 27.550000145190559 0.000000000000000 + 472 1 2 -0.42000 33.258000000000003 28.802272879062858 0.000000000000000 + 473 1 1 0.42000 34.704000000000001 28.802272879062858 0.000000000000000 + 474 1 2 -0.42000 35.427000000000000 27.550000145190559 0.000000000000000 + 475 1 1 0.42000 36.872999999999998 27.550000145190559 0.000000000000000 + 476 1 2 -0.42000 37.596000000000004 28.802272879062858 0.000000000000000 + 477 1 1 0.42000 39.042000000000002 28.802272879062858 0.000000000000000 + 478 1 2 -0.42000 39.765000000000001 27.550000145190559 0.000000000000000 + 479 1 1 0.42000 41.210999999999999 27.550000145190559 0.000000000000000 + 480 1 2 -0.42000 41.934000000000005 28.802272879062858 0.000000000000000 + 481 1 1 0.42000 0.000000000000000 31.306818346807454 0.000000000000000 + 482 1 2 -0.42000 0.723000000000000 30.054545612935154 0.000000000000000 + 483 1 1 0.42000 2.169000000000000 30.054545612935154 0.000000000000000 + 484 1 2 -0.42000 2.892000000000000 31.306818346807454 0.000000000000000 + 485 1 1 0.42000 4.338000000000000 31.306818346807454 0.000000000000000 + 486 1 2 -0.42000 5.061000000000000 30.054545612935154 0.000000000000000 + 487 1 1 0.42000 6.507000000000000 30.054545612935154 0.000000000000000 + 488 1 2 -0.42000 7.230000000000000 31.306818346807454 0.000000000000000 + 489 1 1 0.42000 8.676000000000000 31.306818346807454 0.000000000000000 + 490 1 2 -0.42000 9.399000000000001 30.054545612935154 0.000000000000000 + 491 1 1 0.42000 10.845000000000001 30.054545612935154 0.000000000000000 + 492 1 2 -0.42000 11.568000000000000 31.306818346807454 0.000000000000000 + 493 1 1 0.42000 13.013999999999999 31.306818346807454 0.000000000000000 + 494 1 2 -0.42000 13.737000000000000 30.054545612935154 0.000000000000000 + 495 1 1 0.42000 15.183000000000000 30.054545612935154 0.000000000000000 + 496 1 2 -0.42000 15.905999999999999 31.306818346807454 0.000000000000000 + 497 1 1 0.42000 17.352000000000000 31.306818346807454 0.000000000000000 + 498 1 2 -0.42000 18.074999999999999 30.054545612935154 0.000000000000000 + 499 1 1 0.42000 19.521000000000001 30.054545612935154 0.000000000000000 + 500 1 2 -0.42000 20.244000000000000 31.306818346807454 0.000000000000000 + 501 1 1 0.42000 21.690000000000001 31.306818346807454 0.000000000000000 + 502 1 2 -0.42000 22.413000000000000 30.054545612935154 0.000000000000000 + 503 1 1 0.42000 23.859000000000002 30.054545612935154 0.000000000000000 + 504 1 2 -0.42000 24.582000000000001 31.306818346807454 0.000000000000000 + 505 1 1 0.42000 26.027999999999999 31.306818346807454 0.000000000000000 + 506 1 2 -0.42000 26.750999999999998 30.054545612935154 0.000000000000000 + 507 1 1 0.42000 28.196999999999999 30.054545612935154 0.000000000000000 + 508 1 2 -0.42000 28.919999999999998 31.306818346807454 0.000000000000000 + 509 1 1 0.42000 30.366000000000000 31.306818346807454 0.000000000000000 + 510 1 2 -0.42000 31.088999999999999 30.054545612935154 0.000000000000000 + 511 1 1 0.42000 32.534999999999997 30.054545612935154 0.000000000000000 + 512 1 2 -0.42000 33.258000000000003 31.306818346807454 0.000000000000000 + 513 1 1 0.42000 34.704000000000001 31.306818346807454 0.000000000000000 + 514 1 2 -0.42000 35.427000000000000 30.054545612935154 0.000000000000000 + 515 1 1 0.42000 36.872999999999998 30.054545612935154 0.000000000000000 + 516 1 2 -0.42000 37.596000000000004 31.306818346807454 0.000000000000000 + 517 1 1 0.42000 39.042000000000002 31.306818346807454 0.000000000000000 + 518 1 2 -0.42000 39.765000000000001 30.054545612935154 0.000000000000000 + 519 1 1 0.42000 41.210999999999999 30.054545612935154 0.000000000000000 + 520 1 2 -0.42000 41.934000000000005 31.306818346807454 0.000000000000000 + 521 1 1 0.42000 0.000000000000000 33.811363814552045 0.000000000000000 + 522 1 2 -0.42000 0.723000000000000 32.559091080679750 0.000000000000000 + 523 1 1 0.42000 2.169000000000000 32.559091080679750 0.000000000000000 + 524 1 2 -0.42000 2.892000000000000 33.811363814552045 0.000000000000000 + 525 1 1 0.42000 4.338000000000000 33.811363814552045 0.000000000000000 + 526 1 2 -0.42000 5.061000000000000 32.559091080679750 0.000000000000000 + 527 1 1 0.42000 6.507000000000000 32.559091080679750 0.000000000000000 + 528 1 2 -0.42000 7.230000000000000 33.811363814552045 0.000000000000000 + 529 1 1 0.42000 8.676000000000000 33.811363814552045 0.000000000000000 + 530 1 2 -0.42000 9.399000000000001 32.559091080679750 0.000000000000000 + 531 1 1 0.42000 10.845000000000001 32.559091080679750 0.000000000000000 + 532 1 2 -0.42000 11.568000000000000 33.811363814552045 0.000000000000000 + 533 1 1 0.42000 13.013999999999999 33.811363814552045 0.000000000000000 + 534 1 2 -0.42000 13.737000000000000 32.559091080679750 0.000000000000000 + 535 1 1 0.42000 15.183000000000000 32.559091080679750 0.000000000000000 + 536 1 2 -0.42000 15.905999999999999 33.811363814552045 0.000000000000000 + 537 1 1 0.42000 17.352000000000000 33.811363814552045 0.000000000000000 + 538 1 2 -0.42000 18.074999999999999 32.559091080679750 0.000000000000000 + 539 1 1 0.42000 19.521000000000001 32.559091080679750 0.000000000000000 + 540 1 2 -0.42000 20.244000000000000 33.811363814552045 0.000000000000000 + 541 1 1 0.42000 21.690000000000001 33.811363814552045 0.000000000000000 + 542 1 2 -0.42000 22.413000000000000 32.559091080679750 0.000000000000000 + 543 1 1 0.42000 23.859000000000002 32.559091080679750 0.000000000000000 + 544 1 2 -0.42000 24.582000000000001 33.811363814552045 0.000000000000000 + 545 1 1 0.42000 26.027999999999999 33.811363814552045 0.000000000000000 + 546 1 2 -0.42000 26.750999999999998 32.559091080679750 0.000000000000000 + 547 1 1 0.42000 28.196999999999999 32.559091080679750 0.000000000000000 + 548 1 2 -0.42000 28.919999999999998 33.811363814552045 0.000000000000000 + 549 1 1 0.42000 30.366000000000000 33.811363814552045 0.000000000000000 + 550 1 2 -0.42000 31.088999999999999 32.559091080679750 0.000000000000000 + 551 1 1 0.42000 32.534999999999997 32.559091080679750 0.000000000000000 + 552 1 2 -0.42000 33.258000000000003 33.811363814552045 0.000000000000000 + 553 1 1 0.42000 34.704000000000001 33.811363814552045 0.000000000000000 + 554 1 2 -0.42000 35.427000000000000 32.559091080679750 0.000000000000000 + 555 1 1 0.42000 36.872999999999998 32.559091080679750 0.000000000000000 + 556 1 2 -0.42000 37.596000000000004 33.811363814552045 0.000000000000000 + 557 1 1 0.42000 39.042000000000002 33.811363814552045 0.000000000000000 + 558 1 2 -0.42000 39.765000000000001 32.559091080679750 0.000000000000000 + 559 1 1 0.42000 41.210999999999999 32.559091080679750 0.000000000000000 + 560 1 2 -0.42000 41.934000000000005 33.811363814552045 0.000000000000000 + 561 1 1 0.42000 0.000000000000000 36.315909282296644 0.000000000000000 + 562 1 2 -0.42000 0.723000000000000 35.063636548424348 0.000000000000000 + 563 1 1 0.42000 2.169000000000000 35.063636548424348 0.000000000000000 + 564 1 2 -0.42000 2.892000000000000 36.315909282296644 0.000000000000000 + 565 1 1 0.42000 4.338000000000000 36.315909282296644 0.000000000000000 + 566 1 2 -0.42000 5.061000000000000 35.063636548424348 0.000000000000000 + 567 1 1 0.42000 6.507000000000000 35.063636548424348 0.000000000000000 + 568 1 2 -0.42000 7.230000000000000 36.315909282296644 0.000000000000000 + 569 1 1 0.42000 8.676000000000000 36.315909282296644 0.000000000000000 + 570 1 2 -0.42000 9.399000000000001 35.063636548424348 0.000000000000000 + 571 1 1 0.42000 10.845000000000001 35.063636548424348 0.000000000000000 + 572 1 2 -0.42000 11.568000000000000 36.315909282296644 0.000000000000000 + 573 1 1 0.42000 13.013999999999999 36.315909282296644 0.000000000000000 + 574 1 2 -0.42000 13.737000000000000 35.063636548424348 0.000000000000000 + 575 1 1 0.42000 15.183000000000000 35.063636548424348 0.000000000000000 + 576 1 2 -0.42000 15.905999999999999 36.315909282296644 0.000000000000000 + 577 1 1 0.42000 17.352000000000000 36.315909282296644 0.000000000000000 + 578 1 2 -0.42000 18.074999999999999 35.063636548424348 0.000000000000000 + 579 1 1 0.42000 19.521000000000001 35.063636548424348 0.000000000000000 + 580 1 2 -0.42000 20.244000000000000 36.315909282296644 0.000000000000000 + 581 1 1 0.42000 21.690000000000001 36.315909282296644 0.000000000000000 + 582 1 2 -0.42000 22.413000000000000 35.063636548424348 0.000000000000000 + 583 1 1 0.42000 23.859000000000002 35.063636548424348 0.000000000000000 + 584 1 2 -0.42000 24.582000000000001 36.315909282296644 0.000000000000000 + 585 1 1 0.42000 26.027999999999999 36.315909282296644 0.000000000000000 + 586 1 2 -0.42000 26.750999999999998 35.063636548424348 0.000000000000000 + 587 1 1 0.42000 28.196999999999999 35.063636548424348 0.000000000000000 + 588 1 2 -0.42000 28.919999999999998 36.315909282296644 0.000000000000000 + 589 1 1 0.42000 30.366000000000000 36.315909282296644 0.000000000000000 + 590 1 2 -0.42000 31.088999999999999 35.063636548424348 0.000000000000000 + 591 1 1 0.42000 32.534999999999997 35.063636548424348 0.000000000000000 + 592 1 2 -0.42000 33.258000000000003 36.315909282296644 0.000000000000000 + 593 1 1 0.42000 34.704000000000001 36.315909282296644 0.000000000000000 + 594 1 2 -0.42000 35.427000000000000 35.063636548424348 0.000000000000000 + 595 1 1 0.42000 36.872999999999998 35.063636548424348 0.000000000000000 + 596 1 2 -0.42000 37.596000000000004 36.315909282296644 0.000000000000000 + 597 1 1 0.42000 39.042000000000002 36.315909282296644 0.000000000000000 + 598 1 2 -0.42000 39.765000000000001 35.063636548424348 0.000000000000000 + 599 1 1 0.42000 41.210999999999999 35.063636548424348 0.000000000000000 + 600 1 2 -0.42000 41.934000000000005 36.315909282296644 0.000000000000000 + 601 1 1 0.42000 0.000000000000000 38.820454750041236 0.000000000000000 + 602 1 2 -0.42000 0.723000000000000 37.568182016168940 0.000000000000000 + 603 1 1 0.42000 2.169000000000000 37.568182016168940 0.000000000000000 + 604 1 2 -0.42000 2.892000000000000 38.820454750041236 0.000000000000000 + 605 1 1 0.42000 4.338000000000000 38.820454750041236 0.000000000000000 + 606 1 2 -0.42000 5.061000000000000 37.568182016168940 0.000000000000000 + 607 1 1 0.42000 6.507000000000000 37.568182016168940 0.000000000000000 + 608 1 2 -0.42000 7.230000000000000 38.820454750041236 0.000000000000000 + 609 1 1 0.42000 8.676000000000000 38.820454750041236 0.000000000000000 + 610 1 2 -0.42000 9.399000000000001 37.568182016168940 0.000000000000000 + 611 1 1 0.42000 10.845000000000001 37.568182016168940 0.000000000000000 + 612 1 2 -0.42000 11.568000000000000 38.820454750041236 0.000000000000000 + 613 1 1 0.42000 13.013999999999999 38.820454750041236 0.000000000000000 + 614 1 2 -0.42000 13.737000000000000 37.568182016168940 0.000000000000000 + 615 1 1 0.42000 15.183000000000000 37.568182016168940 0.000000000000000 + 616 1 2 -0.42000 15.905999999999999 38.820454750041236 0.000000000000000 + 617 1 1 0.42000 17.352000000000000 38.820454750041236 0.000000000000000 + 618 1 2 -0.42000 18.074999999999999 37.568182016168940 0.000000000000000 + 619 1 1 0.42000 19.521000000000001 37.568182016168940 0.000000000000000 + 620 1 2 -0.42000 20.244000000000000 38.820454750041236 0.000000000000000 + 621 1 1 0.42000 21.690000000000001 38.820454750041236 0.000000000000000 + 622 1 2 -0.42000 22.413000000000000 37.568182016168940 0.000000000000000 + 623 1 1 0.42000 23.859000000000002 37.568182016168940 0.000000000000000 + 624 1 2 -0.42000 24.582000000000001 38.820454750041236 0.000000000000000 + 625 1 1 0.42000 26.027999999999999 38.820454750041236 0.000000000000000 + 626 1 2 -0.42000 26.750999999999998 37.568182016168940 0.000000000000000 + 627 1 1 0.42000 28.196999999999999 37.568182016168940 0.000000000000000 + 628 1 2 -0.42000 28.919999999999998 38.820454750041236 0.000000000000000 + 629 1 1 0.42000 30.366000000000000 38.820454750041236 0.000000000000000 + 630 1 2 -0.42000 31.088999999999999 37.568182016168940 0.000000000000000 + 631 1 1 0.42000 32.534999999999997 37.568182016168940 0.000000000000000 + 632 1 2 -0.42000 33.258000000000003 38.820454750041236 0.000000000000000 + 633 1 1 0.42000 34.704000000000001 38.820454750041236 0.000000000000000 + 634 1 2 -0.42000 35.427000000000000 37.568182016168940 0.000000000000000 + 635 1 1 0.42000 36.872999999999998 37.568182016168940 0.000000000000000 + 636 1 2 -0.42000 37.596000000000004 38.820454750041236 0.000000000000000 + 637 1 1 0.42000 39.042000000000002 38.820454750041236 0.000000000000000 + 638 1 2 -0.42000 39.765000000000001 37.568182016168940 0.000000000000000 + 639 1 1 0.42000 41.210999999999999 37.568182016168940 0.000000000000000 + 640 1 2 -0.42000 41.934000000000005 38.820454750041236 0.000000000000000 + 641 1 1 0.42000 0.000000000000000 41.325000217785835 0.000000000000000 + 642 1 2 -0.42000 0.723000000000000 40.072727483913539 0.000000000000000 + 643 1 1 0.42000 2.169000000000000 40.072727483913539 0.000000000000000 + 644 1 2 -0.42000 2.892000000000000 41.325000217785835 0.000000000000000 + 645 1 1 0.42000 4.338000000000000 41.325000217785835 0.000000000000000 + 646 1 2 -0.42000 5.061000000000000 40.072727483913539 0.000000000000000 + 647 1 1 0.42000 6.507000000000000 40.072727483913539 0.000000000000000 + 648 1 2 -0.42000 7.230000000000000 41.325000217785835 0.000000000000000 + 649 1 1 0.42000 8.676000000000000 41.325000217785835 0.000000000000000 + 650 1 2 -0.42000 9.399000000000001 40.072727483913539 0.000000000000000 + 651 1 1 0.42000 10.845000000000001 40.072727483913539 0.000000000000000 + 652 1 2 -0.42000 11.568000000000000 41.325000217785835 0.000000000000000 + 653 1 1 0.42000 13.013999999999999 41.325000217785835 0.000000000000000 + 654 1 2 -0.42000 13.737000000000000 40.072727483913539 0.000000000000000 + 655 1 1 0.42000 15.183000000000000 40.072727483913539 0.000000000000000 + 656 1 2 -0.42000 15.905999999999999 41.325000217785835 0.000000000000000 + 657 1 1 0.42000 17.352000000000000 41.325000217785835 0.000000000000000 + 658 1 2 -0.42000 18.074999999999999 40.072727483913539 0.000000000000000 + 659 1 1 0.42000 19.521000000000001 40.072727483913539 0.000000000000000 + 660 1 2 -0.42000 20.244000000000000 41.325000217785835 0.000000000000000 + 661 1 1 0.42000 21.690000000000001 41.325000217785835 0.000000000000000 + 662 1 2 -0.42000 22.413000000000000 40.072727483913539 0.000000000000000 + 663 1 1 0.42000 23.859000000000002 40.072727483913539 0.000000000000000 + 664 1 2 -0.42000 24.582000000000001 41.325000217785835 0.000000000000000 + 665 1 1 0.42000 26.027999999999999 41.325000217785835 0.000000000000000 + 666 1 2 -0.42000 26.750999999999998 40.072727483913539 0.000000000000000 + 667 1 1 0.42000 28.196999999999999 40.072727483913539 0.000000000000000 + 668 1 2 -0.42000 28.919999999999998 41.325000217785835 0.000000000000000 + 669 1 1 0.42000 30.366000000000000 41.325000217785835 0.000000000000000 + 670 1 2 -0.42000 31.088999999999999 40.072727483913539 0.000000000000000 + 671 1 1 0.42000 32.534999999999997 40.072727483913539 0.000000000000000 + 672 1 2 -0.42000 33.258000000000003 41.325000217785835 0.000000000000000 + 673 1 1 0.42000 34.704000000000001 41.325000217785835 0.000000000000000 + 674 1 2 -0.42000 35.427000000000000 40.072727483913539 0.000000000000000 + 675 1 1 0.42000 36.872999999999998 40.072727483913539 0.000000000000000 + 676 1 2 -0.42000 37.596000000000004 41.325000217785835 0.000000000000000 + 677 1 1 0.42000 39.042000000000002 41.325000217785835 0.000000000000000 + 678 1 2 -0.42000 39.765000000000001 40.072727483913539 0.000000000000000 + 679 1 1 0.42000 41.210999999999999 40.072727483913539 0.000000000000000 + 680 1 2 -0.42000 41.934000000000005 41.325000217785835 0.000000000000000 + 681 2 4 -0.42000 0.000000000000000 1.252272733872298 3.330000000000000 + 682 2 3 0.42000 0.723000000000000 0.000000000000000 3.330000000000000 + 683 2 4 -0.42000 2.169000000000000 0.000000000000000 3.330000000000000 + 684 2 3 0.42000 2.892000000000000 1.252272733872298 3.330000000000000 + 685 2 4 -0.42000 4.338000000000000 1.252272733872298 3.330000000000000 + 686 2 3 0.42000 5.061000000000000 0.000000000000000 3.330000000000000 + 687 2 4 -0.42000 6.507000000000000 0.000000000000000 3.330000000000000 + 688 2 3 0.42000 7.230000000000000 1.252272733872298 3.330000000000000 + 689 2 4 -0.42000 8.676000000000000 1.252272733872298 3.330000000000000 + 690 2 3 0.42000 9.399000000000001 0.000000000000000 3.330000000000000 + 691 2 4 -0.42000 10.845000000000001 0.000000000000000 3.330000000000000 + 692 2 3 0.42000 11.568000000000000 1.252272733872298 3.330000000000000 + 693 2 4 -0.42000 13.013999999999999 1.252272733872298 3.330000000000000 + 694 2 3 0.42000 13.737000000000000 0.000000000000000 3.330000000000000 + 695 2 4 -0.42000 15.183000000000000 0.000000000000000 3.330000000000000 + 696 2 3 0.42000 15.905999999999999 1.252272733872298 3.330000000000000 + 697 2 4 -0.42000 17.352000000000000 1.252272733872298 3.330000000000000 + 698 2 3 0.42000 18.074999999999999 0.000000000000000 3.330000000000000 + 699 2 4 -0.42000 19.521000000000001 0.000000000000000 3.330000000000000 + 700 2 3 0.42000 20.244000000000000 1.252272733872298 3.330000000000000 + 701 2 4 -0.42000 21.690000000000001 1.252272733872298 3.330000000000000 + 702 2 3 0.42000 22.413000000000000 0.000000000000000 3.330000000000000 + 703 2 4 -0.42000 23.859000000000002 0.000000000000000 3.330000000000000 + 704 2 3 0.42000 24.582000000000001 1.252272733872298 3.330000000000000 + 705 2 4 -0.42000 26.027999999999999 1.252272733872298 3.330000000000000 + 706 2 3 0.42000 26.750999999999998 0.000000000000000 3.330000000000000 + 707 2 4 -0.42000 28.196999999999999 0.000000000000000 3.330000000000000 + 708 2 3 0.42000 28.919999999999998 1.252272733872298 3.330000000000000 + 709 2 4 -0.42000 30.366000000000000 1.252272733872298 3.330000000000000 + 710 2 3 0.42000 31.088999999999999 0.000000000000000 3.330000000000000 + 711 2 4 -0.42000 32.534999999999997 0.000000000000000 3.330000000000000 + 712 2 3 0.42000 33.258000000000003 1.252272733872298 3.330000000000000 + 713 2 4 -0.42000 34.704000000000001 1.252272733872298 3.330000000000000 + 714 2 3 0.42000 35.427000000000000 0.000000000000000 3.330000000000000 + 715 2 4 -0.42000 36.872999999999998 0.000000000000000 3.330000000000000 + 716 2 3 0.42000 37.596000000000004 1.252272733872298 3.330000000000000 + 717 2 4 -0.42000 39.042000000000002 1.252272733872298 3.330000000000000 + 718 2 3 0.42000 39.765000000000001 0.000000000000000 3.330000000000000 + 719 2 4 -0.42000 41.210999999999999 0.000000000000000 3.330000000000000 + 720 2 3 0.42000 41.934000000000005 1.252272733872298 3.330000000000000 + 721 2 4 -0.42000 0.000000000000000 3.756818201616894 3.330000000000000 + 722 2 3 0.42000 0.723000000000000 2.504545467744596 3.330000000000000 + 723 2 4 -0.42000 2.169000000000000 2.504545467744596 3.330000000000000 + 724 2 3 0.42000 2.892000000000000 3.756818201616894 3.330000000000000 + 725 2 4 -0.42000 4.338000000000000 3.756818201616894 3.330000000000000 + 726 2 3 0.42000 5.061000000000000 2.504545467744596 3.330000000000000 + 727 2 4 -0.42000 6.507000000000000 2.504545467744596 3.330000000000000 + 728 2 3 0.42000 7.230000000000000 3.756818201616894 3.330000000000000 + 729 2 4 -0.42000 8.676000000000000 3.756818201616894 3.330000000000000 + 730 2 3 0.42000 9.399000000000001 2.504545467744596 3.330000000000000 + 731 2 4 -0.42000 10.845000000000001 2.504545467744596 3.330000000000000 + 732 2 3 0.42000 11.568000000000000 3.756818201616894 3.330000000000000 + 733 2 4 -0.42000 13.013999999999999 3.756818201616894 3.330000000000000 + 734 2 3 0.42000 13.737000000000000 2.504545467744596 3.330000000000000 + 735 2 4 -0.42000 15.183000000000000 2.504545467744596 3.330000000000000 + 736 2 3 0.42000 15.905999999999999 3.756818201616894 3.330000000000000 + 737 2 4 -0.42000 17.352000000000000 3.756818201616894 3.330000000000000 + 738 2 3 0.42000 18.074999999999999 2.504545467744596 3.330000000000000 + 739 2 4 -0.42000 19.521000000000001 2.504545467744596 3.330000000000000 + 740 2 3 0.42000 20.244000000000000 3.756818201616894 3.330000000000000 + 741 2 4 -0.42000 21.690000000000001 3.756818201616894 3.330000000000000 + 742 2 3 0.42000 22.413000000000000 2.504545467744596 3.330000000000000 + 743 2 4 -0.42000 23.859000000000002 2.504545467744596 3.330000000000000 + 744 2 3 0.42000 24.582000000000001 3.756818201616894 3.330000000000000 + 745 2 4 -0.42000 26.027999999999999 3.756818201616894 3.330000000000000 + 746 2 3 0.42000 26.750999999999998 2.504545467744596 3.330000000000000 + 747 2 4 -0.42000 28.196999999999999 2.504545467744596 3.330000000000000 + 748 2 3 0.42000 28.919999999999998 3.756818201616894 3.330000000000000 + 749 2 4 -0.42000 30.366000000000000 3.756818201616894 3.330000000000000 + 750 2 3 0.42000 31.088999999999999 2.504545467744596 3.330000000000000 + 751 2 4 -0.42000 32.534999999999997 2.504545467744596 3.330000000000000 + 752 2 3 0.42000 33.258000000000003 3.756818201616894 3.330000000000000 + 753 2 4 -0.42000 34.704000000000001 3.756818201616894 3.330000000000000 + 754 2 3 0.42000 35.427000000000000 2.504545467744596 3.330000000000000 + 755 2 4 -0.42000 36.872999999999998 2.504545467744596 3.330000000000000 + 756 2 3 0.42000 37.596000000000004 3.756818201616894 3.330000000000000 + 757 2 4 -0.42000 39.042000000000002 3.756818201616894 3.330000000000000 + 758 2 3 0.42000 39.765000000000001 2.504545467744596 3.330000000000000 + 759 2 4 -0.42000 41.210999999999999 2.504545467744596 3.330000000000000 + 760 2 3 0.42000 41.934000000000005 3.756818201616894 3.330000000000000 + 761 2 4 -0.42000 0.000000000000000 6.261363669361490 3.330000000000000 + 762 2 3 0.42000 0.723000000000000 5.009090935489192 3.330000000000000 + 763 2 4 -0.42000 2.169000000000000 5.009090935489192 3.330000000000000 + 764 2 3 0.42000 2.892000000000000 6.261363669361490 3.330000000000000 + 765 2 4 -0.42000 4.338000000000000 6.261363669361490 3.330000000000000 + 766 2 3 0.42000 5.061000000000000 5.009090935489192 3.330000000000000 + 767 2 4 -0.42000 6.507000000000000 5.009090935489192 3.330000000000000 + 768 2 3 0.42000 7.230000000000000 6.261363669361490 3.330000000000000 + 769 2 4 -0.42000 8.676000000000000 6.261363669361490 3.330000000000000 + 770 2 3 0.42000 9.399000000000001 5.009090935489192 3.330000000000000 + 771 2 4 -0.42000 10.845000000000001 5.009090935489192 3.330000000000000 + 772 2 3 0.42000 11.568000000000000 6.261363669361490 3.330000000000000 + 773 2 4 -0.42000 13.013999999999999 6.261363669361490 3.330000000000000 + 774 2 3 0.42000 13.737000000000000 5.009090935489192 3.330000000000000 + 775 2 4 -0.42000 15.183000000000000 5.009090935489192 3.330000000000000 + 776 2 3 0.42000 15.905999999999999 6.261363669361490 3.330000000000000 + 777 2 4 -0.42000 17.352000000000000 6.261363669361490 3.330000000000000 + 778 2 3 0.42000 18.074999999999999 5.009090935489192 3.330000000000000 + 779 2 4 -0.42000 19.521000000000001 5.009090935489192 3.330000000000000 + 780 2 3 0.42000 20.244000000000000 6.261363669361490 3.330000000000000 + 781 2 4 -0.42000 21.690000000000001 6.261363669361490 3.330000000000000 + 782 2 3 0.42000 22.413000000000000 5.009090935489192 3.330000000000000 + 783 2 4 -0.42000 23.859000000000002 5.009090935489192 3.330000000000000 + 784 2 3 0.42000 24.582000000000001 6.261363669361490 3.330000000000000 + 785 2 4 -0.42000 26.027999999999999 6.261363669361490 3.330000000000000 + 786 2 3 0.42000 26.750999999999998 5.009090935489192 3.330000000000000 + 787 2 4 -0.42000 28.196999999999999 5.009090935489192 3.330000000000000 + 788 2 3 0.42000 28.919999999999998 6.261363669361490 3.330000000000000 + 789 2 4 -0.42000 30.366000000000000 6.261363669361490 3.330000000000000 + 790 2 3 0.42000 31.088999999999999 5.009090935489192 3.330000000000000 + 791 2 4 -0.42000 32.534999999999997 5.009090935489192 3.330000000000000 + 792 2 3 0.42000 33.258000000000003 6.261363669361490 3.330000000000000 + 793 2 4 -0.42000 34.704000000000001 6.261363669361490 3.330000000000000 + 794 2 3 0.42000 35.427000000000000 5.009090935489192 3.330000000000000 + 795 2 4 -0.42000 36.872999999999998 5.009090935489192 3.330000000000000 + 796 2 3 0.42000 37.596000000000004 6.261363669361490 3.330000000000000 + 797 2 4 -0.42000 39.042000000000002 6.261363669361490 3.330000000000000 + 798 2 3 0.42000 39.765000000000001 5.009090935489192 3.330000000000000 + 799 2 4 -0.42000 41.210999999999999 5.009090935489192 3.330000000000000 + 800 2 3 0.42000 41.934000000000005 6.261363669361490 3.330000000000000 + 801 2 4 -0.42000 0.000000000000000 8.765909137106087 3.330000000000000 + 802 2 3 0.42000 0.723000000000000 7.513636403233789 3.330000000000000 + 803 2 4 -0.42000 2.169000000000000 7.513636403233789 3.330000000000000 + 804 2 3 0.42000 2.892000000000000 8.765909137106087 3.330000000000000 + 805 2 4 -0.42000 4.338000000000000 8.765909137106087 3.330000000000000 + 806 2 3 0.42000 5.061000000000000 7.513636403233789 3.330000000000000 + 807 2 4 -0.42000 6.507000000000000 7.513636403233789 3.330000000000000 + 808 2 3 0.42000 7.230000000000000 8.765909137106087 3.330000000000000 + 809 2 4 -0.42000 8.676000000000000 8.765909137106087 3.330000000000000 + 810 2 3 0.42000 9.399000000000001 7.513636403233789 3.330000000000000 + 811 2 4 -0.42000 10.845000000000001 7.513636403233789 3.330000000000000 + 812 2 3 0.42000 11.568000000000000 8.765909137106087 3.330000000000000 + 813 2 4 -0.42000 13.013999999999999 8.765909137106087 3.330000000000000 + 814 2 3 0.42000 13.737000000000000 7.513636403233789 3.330000000000000 + 815 2 4 -0.42000 15.183000000000000 7.513636403233789 3.330000000000000 + 816 2 3 0.42000 15.905999999999999 8.765909137106087 3.330000000000000 + 817 2 4 -0.42000 17.352000000000000 8.765909137106087 3.330000000000000 + 818 2 3 0.42000 18.074999999999999 7.513636403233789 3.330000000000000 + 819 2 4 -0.42000 19.521000000000001 7.513636403233789 3.330000000000000 + 820 2 3 0.42000 20.244000000000000 8.765909137106087 3.330000000000000 + 821 2 4 -0.42000 21.690000000000001 8.765909137106087 3.330000000000000 + 822 2 3 0.42000 22.413000000000000 7.513636403233789 3.330000000000000 + 823 2 4 -0.42000 23.859000000000002 7.513636403233789 3.330000000000000 + 824 2 3 0.42000 24.582000000000001 8.765909137106087 3.330000000000000 + 825 2 4 -0.42000 26.027999999999999 8.765909137106087 3.330000000000000 + 826 2 3 0.42000 26.750999999999998 7.513636403233789 3.330000000000000 + 827 2 4 -0.42000 28.196999999999999 7.513636403233789 3.330000000000000 + 828 2 3 0.42000 28.919999999999998 8.765909137106087 3.330000000000000 + 829 2 4 -0.42000 30.366000000000000 8.765909137106087 3.330000000000000 + 830 2 3 0.42000 31.088999999999999 7.513636403233789 3.330000000000000 + 831 2 4 -0.42000 32.534999999999997 7.513636403233789 3.330000000000000 + 832 2 3 0.42000 33.258000000000003 8.765909137106087 3.330000000000000 + 833 2 4 -0.42000 34.704000000000001 8.765909137106087 3.330000000000000 + 834 2 3 0.42000 35.427000000000000 7.513636403233789 3.330000000000000 + 835 2 4 -0.42000 36.872999999999998 7.513636403233789 3.330000000000000 + 836 2 3 0.42000 37.596000000000004 8.765909137106087 3.330000000000000 + 837 2 4 -0.42000 39.042000000000002 8.765909137106087 3.330000000000000 + 838 2 3 0.42000 39.765000000000001 7.513636403233789 3.330000000000000 + 839 2 4 -0.42000 41.210999999999999 7.513636403233789 3.330000000000000 + 840 2 3 0.42000 41.934000000000005 8.765909137106087 3.330000000000000 + 841 2 4 -0.42000 0.000000000000000 11.270454604850682 3.330000000000000 + 842 2 3 0.42000 0.723000000000000 10.018181870978385 3.330000000000000 + 843 2 4 -0.42000 2.169000000000000 10.018181870978385 3.330000000000000 + 844 2 3 0.42000 2.892000000000000 11.270454604850682 3.330000000000000 + 845 2 4 -0.42000 4.338000000000000 11.270454604850682 3.330000000000000 + 846 2 3 0.42000 5.061000000000000 10.018181870978385 3.330000000000000 + 847 2 4 -0.42000 6.507000000000000 10.018181870978385 3.330000000000000 + 848 2 3 0.42000 7.230000000000000 11.270454604850682 3.330000000000000 + 849 2 4 -0.42000 8.676000000000000 11.270454604850682 3.330000000000000 + 850 2 3 0.42000 9.399000000000001 10.018181870978385 3.330000000000000 + 851 2 4 -0.42000 10.845000000000001 10.018181870978385 3.330000000000000 + 852 2 3 0.42000 11.568000000000000 11.270454604850682 3.330000000000000 + 853 2 4 -0.42000 13.013999999999999 11.270454604850682 3.330000000000000 + 854 2 3 0.42000 13.737000000000000 10.018181870978385 3.330000000000000 + 855 2 4 -0.42000 15.183000000000000 10.018181870978385 3.330000000000000 + 856 2 3 0.42000 15.905999999999999 11.270454604850682 3.330000000000000 + 857 2 4 -0.42000 17.352000000000000 11.270454604850682 3.330000000000000 + 858 2 3 0.42000 18.074999999999999 10.018181870978385 3.330000000000000 + 859 2 4 -0.42000 19.521000000000001 10.018181870978385 3.330000000000000 + 860 2 3 0.42000 20.244000000000000 11.270454604850682 3.330000000000000 + 861 2 4 -0.42000 21.690000000000001 11.270454604850682 3.330000000000000 + 862 2 3 0.42000 22.413000000000000 10.018181870978385 3.330000000000000 + 863 2 4 -0.42000 23.859000000000002 10.018181870978385 3.330000000000000 + 864 2 3 0.42000 24.582000000000001 11.270454604850682 3.330000000000000 + 865 2 4 -0.42000 26.027999999999999 11.270454604850682 3.330000000000000 + 866 2 3 0.42000 26.750999999999998 10.018181870978385 3.330000000000000 + 867 2 4 -0.42000 28.196999999999999 10.018181870978385 3.330000000000000 + 868 2 3 0.42000 28.919999999999998 11.270454604850682 3.330000000000000 + 869 2 4 -0.42000 30.366000000000000 11.270454604850682 3.330000000000000 + 870 2 3 0.42000 31.088999999999999 10.018181870978385 3.330000000000000 + 871 2 4 -0.42000 32.534999999999997 10.018181870978385 3.330000000000000 + 872 2 3 0.42000 33.258000000000003 11.270454604850682 3.330000000000000 + 873 2 4 -0.42000 34.704000000000001 11.270454604850682 3.330000000000000 + 874 2 3 0.42000 35.427000000000000 10.018181870978385 3.330000000000000 + 875 2 4 -0.42000 36.872999999999998 10.018181870978385 3.330000000000000 + 876 2 3 0.42000 37.596000000000004 11.270454604850682 3.330000000000000 + 877 2 4 -0.42000 39.042000000000002 11.270454604850682 3.330000000000000 + 878 2 3 0.42000 39.765000000000001 10.018181870978385 3.330000000000000 + 879 2 4 -0.42000 41.210999999999999 10.018181870978385 3.330000000000000 + 880 2 3 0.42000 41.934000000000005 11.270454604850682 3.330000000000000 + 881 2 4 -0.42000 0.000000000000000 13.775000072595278 3.330000000000000 + 882 2 3 0.42000 0.723000000000000 12.522727338722980 3.330000000000000 + 883 2 4 -0.42000 2.169000000000000 12.522727338722980 3.330000000000000 + 884 2 3 0.42000 2.892000000000000 13.775000072595278 3.330000000000000 + 885 2 4 -0.42000 4.338000000000000 13.775000072595278 3.330000000000000 + 886 2 3 0.42000 5.061000000000000 12.522727338722980 3.330000000000000 + 887 2 4 -0.42000 6.507000000000000 12.522727338722980 3.330000000000000 + 888 2 3 0.42000 7.230000000000000 13.775000072595278 3.330000000000000 + 889 2 4 -0.42000 8.676000000000000 13.775000072595278 3.330000000000000 + 890 2 3 0.42000 9.399000000000001 12.522727338722980 3.330000000000000 + 891 2 4 -0.42000 10.845000000000001 12.522727338722980 3.330000000000000 + 892 2 3 0.42000 11.568000000000000 13.775000072595278 3.330000000000000 + 893 2 4 -0.42000 13.013999999999999 13.775000072595278 3.330000000000000 + 894 2 3 0.42000 13.737000000000000 12.522727338722980 3.330000000000000 + 895 2 4 -0.42000 15.183000000000000 12.522727338722980 3.330000000000000 + 896 2 3 0.42000 15.905999999999999 13.775000072595278 3.330000000000000 + 897 2 4 -0.42000 17.352000000000000 13.775000072595278 3.330000000000000 + 898 2 3 0.42000 18.074999999999999 12.522727338722980 3.330000000000000 + 899 2 4 -0.42000 19.521000000000001 12.522727338722980 3.330000000000000 + 900 2 3 0.42000 20.244000000000000 13.775000072595278 3.330000000000000 + 901 2 4 -0.42000 21.690000000000001 13.775000072595278 3.330000000000000 + 902 2 3 0.42000 22.413000000000000 12.522727338722980 3.330000000000000 + 903 2 4 -0.42000 23.859000000000002 12.522727338722980 3.330000000000000 + 904 2 3 0.42000 24.582000000000001 13.775000072595278 3.330000000000000 + 905 2 4 -0.42000 26.027999999999999 13.775000072595278 3.330000000000000 + 906 2 3 0.42000 26.750999999999998 12.522727338722980 3.330000000000000 + 907 2 4 -0.42000 28.196999999999999 12.522727338722980 3.330000000000000 + 908 2 3 0.42000 28.919999999999998 13.775000072595278 3.330000000000000 + 909 2 4 -0.42000 30.366000000000000 13.775000072595278 3.330000000000000 + 910 2 3 0.42000 31.088999999999999 12.522727338722980 3.330000000000000 + 911 2 4 -0.42000 32.534999999999997 12.522727338722980 3.330000000000000 + 912 2 3 0.42000 33.258000000000003 13.775000072595278 3.330000000000000 + 913 2 4 -0.42000 34.704000000000001 13.775000072595278 3.330000000000000 + 914 2 3 0.42000 35.427000000000000 12.522727338722980 3.330000000000000 + 915 2 4 -0.42000 36.872999999999998 12.522727338722980 3.330000000000000 + 916 2 3 0.42000 37.596000000000004 13.775000072595278 3.330000000000000 + 917 2 4 -0.42000 39.042000000000002 13.775000072595278 3.330000000000000 + 918 2 3 0.42000 39.765000000000001 12.522727338722980 3.330000000000000 + 919 2 4 -0.42000 41.210999999999999 12.522727338722980 3.330000000000000 + 920 2 3 0.42000 41.934000000000005 13.775000072595278 3.330000000000000 + 921 2 4 -0.42000 0.000000000000000 16.279545540339875 3.330000000000000 + 922 2 3 0.42000 0.723000000000000 15.027272806467577 3.330000000000000 + 923 2 4 -0.42000 2.169000000000000 15.027272806467577 3.330000000000000 + 924 2 3 0.42000 2.892000000000000 16.279545540339875 3.330000000000000 + 925 2 4 -0.42000 4.338000000000000 16.279545540339875 3.330000000000000 + 926 2 3 0.42000 5.061000000000000 15.027272806467577 3.330000000000000 + 927 2 4 -0.42000 6.507000000000000 15.027272806467577 3.330000000000000 + 928 2 3 0.42000 7.230000000000000 16.279545540339875 3.330000000000000 + 929 2 4 -0.42000 8.676000000000000 16.279545540339875 3.330000000000000 + 930 2 3 0.42000 9.399000000000001 15.027272806467577 3.330000000000000 + 931 2 4 -0.42000 10.845000000000001 15.027272806467577 3.330000000000000 + 932 2 3 0.42000 11.568000000000000 16.279545540339875 3.330000000000000 + 933 2 4 -0.42000 13.013999999999999 16.279545540339875 3.330000000000000 + 934 2 3 0.42000 13.737000000000000 15.027272806467577 3.330000000000000 + 935 2 4 -0.42000 15.183000000000000 15.027272806467577 3.330000000000000 + 936 2 3 0.42000 15.905999999999999 16.279545540339875 3.330000000000000 + 937 2 4 -0.42000 17.352000000000000 16.279545540339875 3.330000000000000 + 938 2 3 0.42000 18.074999999999999 15.027272806467577 3.330000000000000 + 939 2 4 -0.42000 19.521000000000001 15.027272806467577 3.330000000000000 + 940 2 3 0.42000 20.244000000000000 16.279545540339875 3.330000000000000 + 941 2 4 -0.42000 21.690000000000001 16.279545540339875 3.330000000000000 + 942 2 3 0.42000 22.413000000000000 15.027272806467577 3.330000000000000 + 943 2 4 -0.42000 23.859000000000002 15.027272806467577 3.330000000000000 + 944 2 3 0.42000 24.582000000000001 16.279545540339875 3.330000000000000 + 945 2 4 -0.42000 26.027999999999999 16.279545540339875 3.330000000000000 + 946 2 3 0.42000 26.750999999999998 15.027272806467577 3.330000000000000 + 947 2 4 -0.42000 28.196999999999999 15.027272806467577 3.330000000000000 + 948 2 3 0.42000 28.919999999999998 16.279545540339875 3.330000000000000 + 949 2 4 -0.42000 30.366000000000000 16.279545540339875 3.330000000000000 + 950 2 3 0.42000 31.088999999999999 15.027272806467577 3.330000000000000 + 951 2 4 -0.42000 32.534999999999997 15.027272806467577 3.330000000000000 + 952 2 3 0.42000 33.258000000000003 16.279545540339875 3.330000000000000 + 953 2 4 -0.42000 34.704000000000001 16.279545540339875 3.330000000000000 + 954 2 3 0.42000 35.427000000000000 15.027272806467577 3.330000000000000 + 955 2 4 -0.42000 36.872999999999998 15.027272806467577 3.330000000000000 + 956 2 3 0.42000 37.596000000000004 16.279545540339875 3.330000000000000 + 957 2 4 -0.42000 39.042000000000002 16.279545540339875 3.330000000000000 + 958 2 3 0.42000 39.765000000000001 15.027272806467577 3.330000000000000 + 959 2 4 -0.42000 41.210999999999999 15.027272806467577 3.330000000000000 + 960 2 3 0.42000 41.934000000000005 16.279545540339875 3.330000000000000 + 961 2 4 -0.42000 0.000000000000000 18.784091008084474 3.330000000000000 + 962 2 3 0.42000 0.723000000000000 17.531818274212174 3.330000000000000 + 963 2 4 -0.42000 2.169000000000000 17.531818274212174 3.330000000000000 + 964 2 3 0.42000 2.892000000000000 18.784091008084474 3.330000000000000 + 965 2 4 -0.42000 4.338000000000000 18.784091008084474 3.330000000000000 + 966 2 3 0.42000 5.061000000000000 17.531818274212174 3.330000000000000 + 967 2 4 -0.42000 6.507000000000000 17.531818274212174 3.330000000000000 + 968 2 3 0.42000 7.230000000000000 18.784091008084474 3.330000000000000 + 969 2 4 -0.42000 8.676000000000000 18.784091008084474 3.330000000000000 + 970 2 3 0.42000 9.399000000000001 17.531818274212174 3.330000000000000 + 971 2 4 -0.42000 10.845000000000001 17.531818274212174 3.330000000000000 + 972 2 3 0.42000 11.568000000000000 18.784091008084474 3.330000000000000 + 973 2 4 -0.42000 13.013999999999999 18.784091008084474 3.330000000000000 + 974 2 3 0.42000 13.737000000000000 17.531818274212174 3.330000000000000 + 975 2 4 -0.42000 15.183000000000000 17.531818274212174 3.330000000000000 + 976 2 3 0.42000 15.905999999999999 18.784091008084474 3.330000000000000 + 977 2 4 -0.42000 17.352000000000000 18.784091008084474 3.330000000000000 + 978 2 3 0.42000 18.074999999999999 17.531818274212174 3.330000000000000 + 979 2 4 -0.42000 19.521000000000001 17.531818274212174 3.330000000000000 + 980 2 3 0.42000 20.244000000000000 18.784091008084474 3.330000000000000 + 981 2 4 -0.42000 21.690000000000001 18.784091008084474 3.330000000000000 + 982 2 3 0.42000 22.413000000000000 17.531818274212174 3.330000000000000 + 983 2 4 -0.42000 23.859000000000002 17.531818274212174 3.330000000000000 + 984 2 3 0.42000 24.582000000000001 18.784091008084474 3.330000000000000 + 985 2 4 -0.42000 26.027999999999999 18.784091008084474 3.330000000000000 + 986 2 3 0.42000 26.750999999999998 17.531818274212174 3.330000000000000 + 987 2 4 -0.42000 28.196999999999999 17.531818274212174 3.330000000000000 + 988 2 3 0.42000 28.919999999999998 18.784091008084474 3.330000000000000 + 989 2 4 -0.42000 30.366000000000000 18.784091008084474 3.330000000000000 + 990 2 3 0.42000 31.088999999999999 17.531818274212174 3.330000000000000 + 991 2 4 -0.42000 32.534999999999997 17.531818274212174 3.330000000000000 + 992 2 3 0.42000 33.258000000000003 18.784091008084474 3.330000000000000 + 993 2 4 -0.42000 34.704000000000001 18.784091008084474 3.330000000000000 + 994 2 3 0.42000 35.427000000000000 17.531818274212174 3.330000000000000 + 995 2 4 -0.42000 36.872999999999998 17.531818274212174 3.330000000000000 + 996 2 3 0.42000 37.596000000000004 18.784091008084474 3.330000000000000 + 997 2 4 -0.42000 39.042000000000002 18.784091008084474 3.330000000000000 + 998 2 3 0.42000 39.765000000000001 17.531818274212174 3.330000000000000 + 999 2 4 -0.42000 41.210999999999999 17.531818274212174 3.330000000000000 + 1000 2 3 0.42000 41.934000000000005 18.784091008084474 3.330000000000000 + 1001 2 4 -0.42000 0.000000000000000 21.288636475829069 3.330000000000000 + 1002 2 3 0.42000 0.723000000000000 20.036363741956770 3.330000000000000 + 1003 2 4 -0.42000 2.169000000000000 20.036363741956770 3.330000000000000 + 1004 2 3 0.42000 2.892000000000000 21.288636475829069 3.330000000000000 + 1005 2 4 -0.42000 4.338000000000000 21.288636475829069 3.330000000000000 + 1006 2 3 0.42000 5.061000000000000 20.036363741956770 3.330000000000000 + 1007 2 4 -0.42000 6.507000000000000 20.036363741956770 3.330000000000000 + 1008 2 3 0.42000 7.230000000000000 21.288636475829069 3.330000000000000 + 1009 2 4 -0.42000 8.676000000000000 21.288636475829069 3.330000000000000 + 1010 2 3 0.42000 9.399000000000001 20.036363741956770 3.330000000000000 + 1011 2 4 -0.42000 10.845000000000001 20.036363741956770 3.330000000000000 + 1012 2 3 0.42000 11.568000000000000 21.288636475829069 3.330000000000000 + 1013 2 4 -0.42000 13.013999999999999 21.288636475829069 3.330000000000000 + 1014 2 3 0.42000 13.737000000000000 20.036363741956770 3.330000000000000 + 1015 2 4 -0.42000 15.183000000000000 20.036363741956770 3.330000000000000 + 1016 2 3 0.42000 15.905999999999999 21.288636475829069 3.330000000000000 + 1017 2 4 -0.42000 17.352000000000000 21.288636475829069 3.330000000000000 + 1018 2 3 0.42000 18.074999999999999 20.036363741956770 3.330000000000000 + 1019 2 4 -0.42000 19.521000000000001 20.036363741956770 3.330000000000000 + 1020 2 3 0.42000 20.244000000000000 21.288636475829069 3.330000000000000 + 1021 2 4 -0.42000 21.690000000000001 21.288636475829069 3.330000000000000 + 1022 2 3 0.42000 22.413000000000000 20.036363741956770 3.330000000000000 + 1023 2 4 -0.42000 23.859000000000002 20.036363741956770 3.330000000000000 + 1024 2 3 0.42000 24.582000000000001 21.288636475829069 3.330000000000000 + 1025 2 4 -0.42000 26.027999999999999 21.288636475829069 3.330000000000000 + 1026 2 3 0.42000 26.750999999999998 20.036363741956770 3.330000000000000 + 1027 2 4 -0.42000 28.196999999999999 20.036363741956770 3.330000000000000 + 1028 2 3 0.42000 28.919999999999998 21.288636475829069 3.330000000000000 + 1029 2 4 -0.42000 30.366000000000000 21.288636475829069 3.330000000000000 + 1030 2 3 0.42000 31.088999999999999 20.036363741956770 3.330000000000000 + 1031 2 4 -0.42000 32.534999999999997 20.036363741956770 3.330000000000000 + 1032 2 3 0.42000 33.258000000000003 21.288636475829069 3.330000000000000 + 1033 2 4 -0.42000 34.704000000000001 21.288636475829069 3.330000000000000 + 1034 2 3 0.42000 35.427000000000000 20.036363741956770 3.330000000000000 + 1035 2 4 -0.42000 36.872999999999998 20.036363741956770 3.330000000000000 + 1036 2 3 0.42000 37.596000000000004 21.288636475829069 3.330000000000000 + 1037 2 4 -0.42000 39.042000000000002 21.288636475829069 3.330000000000000 + 1038 2 3 0.42000 39.765000000000001 20.036363741956770 3.330000000000000 + 1039 2 4 -0.42000 41.210999999999999 20.036363741956770 3.330000000000000 + 1040 2 3 0.42000 41.934000000000005 21.288636475829069 3.330000000000000 + 1041 2 4 -0.42000 0.000000000000000 23.793181943573664 3.330000000000000 + 1042 2 3 0.42000 0.723000000000000 22.540909209701365 3.330000000000000 + 1043 2 4 -0.42000 2.169000000000000 22.540909209701365 3.330000000000000 + 1044 2 3 0.42000 2.892000000000000 23.793181943573664 3.330000000000000 + 1045 2 4 -0.42000 4.338000000000000 23.793181943573664 3.330000000000000 + 1046 2 3 0.42000 5.061000000000000 22.540909209701365 3.330000000000000 + 1047 2 4 -0.42000 6.507000000000000 22.540909209701365 3.330000000000000 + 1048 2 3 0.42000 7.230000000000000 23.793181943573664 3.330000000000000 + 1049 2 4 -0.42000 8.676000000000000 23.793181943573664 3.330000000000000 + 1050 2 3 0.42000 9.399000000000001 22.540909209701365 3.330000000000000 + 1051 2 4 -0.42000 10.845000000000001 22.540909209701365 3.330000000000000 + 1052 2 3 0.42000 11.568000000000000 23.793181943573664 3.330000000000000 + 1053 2 4 -0.42000 13.013999999999999 23.793181943573664 3.330000000000000 + 1054 2 3 0.42000 13.737000000000000 22.540909209701365 3.330000000000000 + 1055 2 4 -0.42000 15.183000000000000 22.540909209701365 3.330000000000000 + 1056 2 3 0.42000 15.905999999999999 23.793181943573664 3.330000000000000 + 1057 2 4 -0.42000 17.352000000000000 23.793181943573664 3.330000000000000 + 1058 2 3 0.42000 18.074999999999999 22.540909209701365 3.330000000000000 + 1059 2 4 -0.42000 19.521000000000001 22.540909209701365 3.330000000000000 + 1060 2 3 0.42000 20.244000000000000 23.793181943573664 3.330000000000000 + 1061 2 4 -0.42000 21.690000000000001 23.793181943573664 3.330000000000000 + 1062 2 3 0.42000 22.413000000000000 22.540909209701365 3.330000000000000 + 1063 2 4 -0.42000 23.859000000000002 22.540909209701365 3.330000000000000 + 1064 2 3 0.42000 24.582000000000001 23.793181943573664 3.330000000000000 + 1065 2 4 -0.42000 26.027999999999999 23.793181943573664 3.330000000000000 + 1066 2 3 0.42000 26.750999999999998 22.540909209701365 3.330000000000000 + 1067 2 4 -0.42000 28.196999999999999 22.540909209701365 3.330000000000000 + 1068 2 3 0.42000 28.919999999999998 23.793181943573664 3.330000000000000 + 1069 2 4 -0.42000 30.366000000000000 23.793181943573664 3.330000000000000 + 1070 2 3 0.42000 31.088999999999999 22.540909209701365 3.330000000000000 + 1071 2 4 -0.42000 32.534999999999997 22.540909209701365 3.330000000000000 + 1072 2 3 0.42000 33.258000000000003 23.793181943573664 3.330000000000000 + 1073 2 4 -0.42000 34.704000000000001 23.793181943573664 3.330000000000000 + 1074 2 3 0.42000 35.427000000000000 22.540909209701365 3.330000000000000 + 1075 2 4 -0.42000 36.872999999999998 22.540909209701365 3.330000000000000 + 1076 2 3 0.42000 37.596000000000004 23.793181943573664 3.330000000000000 + 1077 2 4 -0.42000 39.042000000000002 23.793181943573664 3.330000000000000 + 1078 2 3 0.42000 39.765000000000001 22.540909209701365 3.330000000000000 + 1079 2 4 -0.42000 41.210999999999999 22.540909209701365 3.330000000000000 + 1080 2 3 0.42000 41.934000000000005 23.793181943573664 3.330000000000000 + 1081 2 4 -0.42000 0.000000000000000 26.297727411318260 3.330000000000000 + 1082 2 3 0.42000 0.723000000000000 25.045454677445960 3.330000000000000 + 1083 2 4 -0.42000 2.169000000000000 25.045454677445960 3.330000000000000 + 1084 2 3 0.42000 2.892000000000000 26.297727411318260 3.330000000000000 + 1085 2 4 -0.42000 4.338000000000000 26.297727411318260 3.330000000000000 + 1086 2 3 0.42000 5.061000000000000 25.045454677445960 3.330000000000000 + 1087 2 4 -0.42000 6.507000000000000 25.045454677445960 3.330000000000000 + 1088 2 3 0.42000 7.230000000000000 26.297727411318260 3.330000000000000 + 1089 2 4 -0.42000 8.676000000000000 26.297727411318260 3.330000000000000 + 1090 2 3 0.42000 9.399000000000001 25.045454677445960 3.330000000000000 + 1091 2 4 -0.42000 10.845000000000001 25.045454677445960 3.330000000000000 + 1092 2 3 0.42000 11.568000000000000 26.297727411318260 3.330000000000000 + 1093 2 4 -0.42000 13.013999999999999 26.297727411318260 3.330000000000000 + 1094 2 3 0.42000 13.737000000000000 25.045454677445960 3.330000000000000 + 1095 2 4 -0.42000 15.183000000000000 25.045454677445960 3.330000000000000 + 1096 2 3 0.42000 15.905999999999999 26.297727411318260 3.330000000000000 + 1097 2 4 -0.42000 17.352000000000000 26.297727411318260 3.330000000000000 + 1098 2 3 0.42000 18.074999999999999 25.045454677445960 3.330000000000000 + 1099 2 4 -0.42000 19.521000000000001 25.045454677445960 3.330000000000000 + 1100 2 3 0.42000 20.244000000000000 26.297727411318260 3.330000000000000 + 1101 2 4 -0.42000 21.690000000000001 26.297727411318260 3.330000000000000 + 1102 2 3 0.42000 22.413000000000000 25.045454677445960 3.330000000000000 + 1103 2 4 -0.42000 23.859000000000002 25.045454677445960 3.330000000000000 + 1104 2 3 0.42000 24.582000000000001 26.297727411318260 3.330000000000000 + 1105 2 4 -0.42000 26.027999999999999 26.297727411318260 3.330000000000000 + 1106 2 3 0.42000 26.750999999999998 25.045454677445960 3.330000000000000 + 1107 2 4 -0.42000 28.196999999999999 25.045454677445960 3.330000000000000 + 1108 2 3 0.42000 28.919999999999998 26.297727411318260 3.330000000000000 + 1109 2 4 -0.42000 30.366000000000000 26.297727411318260 3.330000000000000 + 1110 2 3 0.42000 31.088999999999999 25.045454677445960 3.330000000000000 + 1111 2 4 -0.42000 32.534999999999997 25.045454677445960 3.330000000000000 + 1112 2 3 0.42000 33.258000000000003 26.297727411318260 3.330000000000000 + 1113 2 4 -0.42000 34.704000000000001 26.297727411318260 3.330000000000000 + 1114 2 3 0.42000 35.427000000000000 25.045454677445960 3.330000000000000 + 1115 2 4 -0.42000 36.872999999999998 25.045454677445960 3.330000000000000 + 1116 2 3 0.42000 37.596000000000004 26.297727411318260 3.330000000000000 + 1117 2 4 -0.42000 39.042000000000002 26.297727411318260 3.330000000000000 + 1118 2 3 0.42000 39.765000000000001 25.045454677445960 3.330000000000000 + 1119 2 4 -0.42000 41.210999999999999 25.045454677445960 3.330000000000000 + 1120 2 3 0.42000 41.934000000000005 26.297727411318260 3.330000000000000 + 1121 2 4 -0.42000 0.000000000000000 28.802272879062858 3.330000000000000 + 1122 2 3 0.42000 0.723000000000000 27.550000145190559 3.330000000000000 + 1123 2 4 -0.42000 2.169000000000000 27.550000145190559 3.330000000000000 + 1124 2 3 0.42000 2.892000000000000 28.802272879062858 3.330000000000000 + 1125 2 4 -0.42000 4.338000000000000 28.802272879062858 3.330000000000000 + 1126 2 3 0.42000 5.061000000000000 27.550000145190559 3.330000000000000 + 1127 2 4 -0.42000 6.507000000000000 27.550000145190559 3.330000000000000 + 1128 2 3 0.42000 7.230000000000000 28.802272879062858 3.330000000000000 + 1129 2 4 -0.42000 8.676000000000000 28.802272879062858 3.330000000000000 + 1130 2 3 0.42000 9.399000000000001 27.550000145190559 3.330000000000000 + 1131 2 4 -0.42000 10.845000000000001 27.550000145190559 3.330000000000000 + 1132 2 3 0.42000 11.568000000000000 28.802272879062858 3.330000000000000 + 1133 2 4 -0.42000 13.013999999999999 28.802272879062858 3.330000000000000 + 1134 2 3 0.42000 13.737000000000000 27.550000145190559 3.330000000000000 + 1135 2 4 -0.42000 15.183000000000000 27.550000145190559 3.330000000000000 + 1136 2 3 0.42000 15.905999999999999 28.802272879062858 3.330000000000000 + 1137 2 4 -0.42000 17.352000000000000 28.802272879062858 3.330000000000000 + 1138 2 3 0.42000 18.074999999999999 27.550000145190559 3.330000000000000 + 1139 2 4 -0.42000 19.521000000000001 27.550000145190559 3.330000000000000 + 1140 2 3 0.42000 20.244000000000000 28.802272879062858 3.330000000000000 + 1141 2 4 -0.42000 21.690000000000001 28.802272879062858 3.330000000000000 + 1142 2 3 0.42000 22.413000000000000 27.550000145190559 3.330000000000000 + 1143 2 4 -0.42000 23.859000000000002 27.550000145190559 3.330000000000000 + 1144 2 3 0.42000 24.582000000000001 28.802272879062858 3.330000000000000 + 1145 2 4 -0.42000 26.027999999999999 28.802272879062858 3.330000000000000 + 1146 2 3 0.42000 26.750999999999998 27.550000145190559 3.330000000000000 + 1147 2 4 -0.42000 28.196999999999999 27.550000145190559 3.330000000000000 + 1148 2 3 0.42000 28.919999999999998 28.802272879062858 3.330000000000000 + 1149 2 4 -0.42000 30.366000000000000 28.802272879062858 3.330000000000000 + 1150 2 3 0.42000 31.088999999999999 27.550000145190559 3.330000000000000 + 1151 2 4 -0.42000 32.534999999999997 27.550000145190559 3.330000000000000 + 1152 2 3 0.42000 33.258000000000003 28.802272879062858 3.330000000000000 + 1153 2 4 -0.42000 34.704000000000001 28.802272879062858 3.330000000000000 + 1154 2 3 0.42000 35.427000000000000 27.550000145190559 3.330000000000000 + 1155 2 4 -0.42000 36.872999999999998 27.550000145190559 3.330000000000000 + 1156 2 3 0.42000 37.596000000000004 28.802272879062858 3.330000000000000 + 1157 2 4 -0.42000 39.042000000000002 28.802272879062858 3.330000000000000 + 1158 2 3 0.42000 39.765000000000001 27.550000145190559 3.330000000000000 + 1159 2 4 -0.42000 41.210999999999999 27.550000145190559 3.330000000000000 + 1160 2 3 0.42000 41.934000000000005 28.802272879062858 3.330000000000000 + 1161 2 4 -0.42000 0.000000000000000 31.306818346807454 3.330000000000000 + 1162 2 3 0.42000 0.723000000000000 30.054545612935154 3.330000000000000 + 1163 2 4 -0.42000 2.169000000000000 30.054545612935154 3.330000000000000 + 1164 2 3 0.42000 2.892000000000000 31.306818346807454 3.330000000000000 + 1165 2 4 -0.42000 4.338000000000000 31.306818346807454 3.330000000000000 + 1166 2 3 0.42000 5.061000000000000 30.054545612935154 3.330000000000000 + 1167 2 4 -0.42000 6.507000000000000 30.054545612935154 3.330000000000000 + 1168 2 3 0.42000 7.230000000000000 31.306818346807454 3.330000000000000 + 1169 2 4 -0.42000 8.676000000000000 31.306818346807454 3.330000000000000 + 1170 2 3 0.42000 9.399000000000001 30.054545612935154 3.330000000000000 + 1171 2 4 -0.42000 10.845000000000001 30.054545612935154 3.330000000000000 + 1172 2 3 0.42000 11.568000000000000 31.306818346807454 3.330000000000000 + 1173 2 4 -0.42000 13.013999999999999 31.306818346807454 3.330000000000000 + 1174 2 3 0.42000 13.737000000000000 30.054545612935154 3.330000000000000 + 1175 2 4 -0.42000 15.183000000000000 30.054545612935154 3.330000000000000 + 1176 2 3 0.42000 15.905999999999999 31.306818346807454 3.330000000000000 + 1177 2 4 -0.42000 17.352000000000000 31.306818346807454 3.330000000000000 + 1178 2 3 0.42000 18.074999999999999 30.054545612935154 3.330000000000000 + 1179 2 4 -0.42000 19.521000000000001 30.054545612935154 3.330000000000000 + 1180 2 3 0.42000 20.244000000000000 31.306818346807454 3.330000000000000 + 1181 2 4 -0.42000 21.690000000000001 31.306818346807454 3.330000000000000 + 1182 2 3 0.42000 22.413000000000000 30.054545612935154 3.330000000000000 + 1183 2 4 -0.42000 23.859000000000002 30.054545612935154 3.330000000000000 + 1184 2 3 0.42000 24.582000000000001 31.306818346807454 3.330000000000000 + 1185 2 4 -0.42000 26.027999999999999 31.306818346807454 3.330000000000000 + 1186 2 3 0.42000 26.750999999999998 30.054545612935154 3.330000000000000 + 1187 2 4 -0.42000 28.196999999999999 30.054545612935154 3.330000000000000 + 1188 2 3 0.42000 28.919999999999998 31.306818346807454 3.330000000000000 + 1189 2 4 -0.42000 30.366000000000000 31.306818346807454 3.330000000000000 + 1190 2 3 0.42000 31.088999999999999 30.054545612935154 3.330000000000000 + 1191 2 4 -0.42000 32.534999999999997 30.054545612935154 3.330000000000000 + 1192 2 3 0.42000 33.258000000000003 31.306818346807454 3.330000000000000 + 1193 2 4 -0.42000 34.704000000000001 31.306818346807454 3.330000000000000 + 1194 2 3 0.42000 35.427000000000000 30.054545612935154 3.330000000000000 + 1195 2 4 -0.42000 36.872999999999998 30.054545612935154 3.330000000000000 + 1196 2 3 0.42000 37.596000000000004 31.306818346807454 3.330000000000000 + 1197 2 4 -0.42000 39.042000000000002 31.306818346807454 3.330000000000000 + 1198 2 3 0.42000 39.765000000000001 30.054545612935154 3.330000000000000 + 1199 2 4 -0.42000 41.210999999999999 30.054545612935154 3.330000000000000 + 1200 2 3 0.42000 41.934000000000005 31.306818346807454 3.330000000000000 + 1201 2 4 -0.42000 0.000000000000000 33.811363814552045 3.330000000000000 + 1202 2 3 0.42000 0.723000000000000 32.559091080679750 3.330000000000000 + 1203 2 4 -0.42000 2.169000000000000 32.559091080679750 3.330000000000000 + 1204 2 3 0.42000 2.892000000000000 33.811363814552045 3.330000000000000 + 1205 2 4 -0.42000 4.338000000000000 33.811363814552045 3.330000000000000 + 1206 2 3 0.42000 5.061000000000000 32.559091080679750 3.330000000000000 + 1207 2 4 -0.42000 6.507000000000000 32.559091080679750 3.330000000000000 + 1208 2 3 0.42000 7.230000000000000 33.811363814552045 3.330000000000000 + 1209 2 4 -0.42000 8.676000000000000 33.811363814552045 3.330000000000000 + 1210 2 3 0.42000 9.399000000000001 32.559091080679750 3.330000000000000 + 1211 2 4 -0.42000 10.845000000000001 32.559091080679750 3.330000000000000 + 1212 2 3 0.42000 11.568000000000000 33.811363814552045 3.330000000000000 + 1213 2 4 -0.42000 13.013999999999999 33.811363814552045 3.330000000000000 + 1214 2 3 0.42000 13.737000000000000 32.559091080679750 3.330000000000000 + 1215 2 4 -0.42000 15.183000000000000 32.559091080679750 3.330000000000000 + 1216 2 3 0.42000 15.905999999999999 33.811363814552045 3.330000000000000 + 1217 2 4 -0.42000 17.352000000000000 33.811363814552045 3.330000000000000 + 1218 2 3 0.42000 18.074999999999999 32.559091080679750 3.330000000000000 + 1219 2 4 -0.42000 19.521000000000001 32.559091080679750 3.330000000000000 + 1220 2 3 0.42000 20.244000000000000 33.811363814552045 3.330000000000000 + 1221 2 4 -0.42000 21.690000000000001 33.811363814552045 3.330000000000000 + 1222 2 3 0.42000 22.413000000000000 32.559091080679750 3.330000000000000 + 1223 2 4 -0.42000 23.859000000000002 32.559091080679750 3.330000000000000 + 1224 2 3 0.42000 24.582000000000001 33.811363814552045 3.330000000000000 + 1225 2 4 -0.42000 26.027999999999999 33.811363814552045 3.330000000000000 + 1226 2 3 0.42000 26.750999999999998 32.559091080679750 3.330000000000000 + 1227 2 4 -0.42000 28.196999999999999 32.559091080679750 3.330000000000000 + 1228 2 3 0.42000 28.919999999999998 33.811363814552045 3.330000000000000 + 1229 2 4 -0.42000 30.366000000000000 33.811363814552045 3.330000000000000 + 1230 2 3 0.42000 31.088999999999999 32.559091080679750 3.330000000000000 + 1231 2 4 -0.42000 32.534999999999997 32.559091080679750 3.330000000000000 + 1232 2 3 0.42000 33.258000000000003 33.811363814552045 3.330000000000000 + 1233 2 4 -0.42000 34.704000000000001 33.811363814552045 3.330000000000000 + 1234 2 3 0.42000 35.427000000000000 32.559091080679750 3.330000000000000 + 1235 2 4 -0.42000 36.872999999999998 32.559091080679750 3.330000000000000 + 1236 2 3 0.42000 37.596000000000004 33.811363814552045 3.330000000000000 + 1237 2 4 -0.42000 39.042000000000002 33.811363814552045 3.330000000000000 + 1238 2 3 0.42000 39.765000000000001 32.559091080679750 3.330000000000000 + 1239 2 4 -0.42000 41.210999999999999 32.559091080679750 3.330000000000000 + 1240 2 3 0.42000 41.934000000000005 33.811363814552045 3.330000000000000 + 1241 2 4 -0.42000 0.000000000000000 36.315909282296644 3.330000000000000 + 1242 2 3 0.42000 0.723000000000000 35.063636548424348 3.330000000000000 + 1243 2 4 -0.42000 2.169000000000000 35.063636548424348 3.330000000000000 + 1244 2 3 0.42000 2.892000000000000 36.315909282296644 3.330000000000000 + 1245 2 4 -0.42000 4.338000000000000 36.315909282296644 3.330000000000000 + 1246 2 3 0.42000 5.061000000000000 35.063636548424348 3.330000000000000 + 1247 2 4 -0.42000 6.507000000000000 35.063636548424348 3.330000000000000 + 1248 2 3 0.42000 7.230000000000000 36.315909282296644 3.330000000000000 + 1249 2 4 -0.42000 8.676000000000000 36.315909282296644 3.330000000000000 + 1250 2 3 0.42000 9.399000000000001 35.063636548424348 3.330000000000000 + 1251 2 4 -0.42000 10.845000000000001 35.063636548424348 3.330000000000000 + 1252 2 3 0.42000 11.568000000000000 36.315909282296644 3.330000000000000 + 1253 2 4 -0.42000 13.013999999999999 36.315909282296644 3.330000000000000 + 1254 2 3 0.42000 13.737000000000000 35.063636548424348 3.330000000000000 + 1255 2 4 -0.42000 15.183000000000000 35.063636548424348 3.330000000000000 + 1256 2 3 0.42000 15.905999999999999 36.315909282296644 3.330000000000000 + 1257 2 4 -0.42000 17.352000000000000 36.315909282296644 3.330000000000000 + 1258 2 3 0.42000 18.074999999999999 35.063636548424348 3.330000000000000 + 1259 2 4 -0.42000 19.521000000000001 35.063636548424348 3.330000000000000 + 1260 2 3 0.42000 20.244000000000000 36.315909282296644 3.330000000000000 + 1261 2 4 -0.42000 21.690000000000001 36.315909282296644 3.330000000000000 + 1262 2 3 0.42000 22.413000000000000 35.063636548424348 3.330000000000000 + 1263 2 4 -0.42000 23.859000000000002 35.063636548424348 3.330000000000000 + 1264 2 3 0.42000 24.582000000000001 36.315909282296644 3.330000000000000 + 1265 2 4 -0.42000 26.027999999999999 36.315909282296644 3.330000000000000 + 1266 2 3 0.42000 26.750999999999998 35.063636548424348 3.330000000000000 + 1267 2 4 -0.42000 28.196999999999999 35.063636548424348 3.330000000000000 + 1268 2 3 0.42000 28.919999999999998 36.315909282296644 3.330000000000000 + 1269 2 4 -0.42000 30.366000000000000 36.315909282296644 3.330000000000000 + 1270 2 3 0.42000 31.088999999999999 35.063636548424348 3.330000000000000 + 1271 2 4 -0.42000 32.534999999999997 35.063636548424348 3.330000000000000 + 1272 2 3 0.42000 33.258000000000003 36.315909282296644 3.330000000000000 + 1273 2 4 -0.42000 34.704000000000001 36.315909282296644 3.330000000000000 + 1274 2 3 0.42000 35.427000000000000 35.063636548424348 3.330000000000000 + 1275 2 4 -0.42000 36.872999999999998 35.063636548424348 3.330000000000000 + 1276 2 3 0.42000 37.596000000000004 36.315909282296644 3.330000000000000 + 1277 2 4 -0.42000 39.042000000000002 36.315909282296644 3.330000000000000 + 1278 2 3 0.42000 39.765000000000001 35.063636548424348 3.330000000000000 + 1279 2 4 -0.42000 41.210999999999999 35.063636548424348 3.330000000000000 + 1280 2 3 0.42000 41.934000000000005 36.315909282296644 3.330000000000000 + 1281 2 4 -0.42000 0.000000000000000 38.820454750041236 3.330000000000000 + 1282 2 3 0.42000 0.723000000000000 37.568182016168940 3.330000000000000 + 1283 2 4 -0.42000 2.169000000000000 37.568182016168940 3.330000000000000 + 1284 2 3 0.42000 2.892000000000000 38.820454750041236 3.330000000000000 + 1285 2 4 -0.42000 4.338000000000000 38.820454750041236 3.330000000000000 + 1286 2 3 0.42000 5.061000000000000 37.568182016168940 3.330000000000000 + 1287 2 4 -0.42000 6.507000000000000 37.568182016168940 3.330000000000000 + 1288 2 3 0.42000 7.230000000000000 38.820454750041236 3.330000000000000 + 1289 2 4 -0.42000 8.676000000000000 38.820454750041236 3.330000000000000 + 1290 2 3 0.42000 9.399000000000001 37.568182016168940 3.330000000000000 + 1291 2 4 -0.42000 10.845000000000001 37.568182016168940 3.330000000000000 + 1292 2 3 0.42000 11.568000000000000 38.820454750041236 3.330000000000000 + 1293 2 4 -0.42000 13.013999999999999 38.820454750041236 3.330000000000000 + 1294 2 3 0.42000 13.737000000000000 37.568182016168940 3.330000000000000 + 1295 2 4 -0.42000 15.183000000000000 37.568182016168940 3.330000000000000 + 1296 2 3 0.42000 15.905999999999999 38.820454750041236 3.330000000000000 + 1297 2 4 -0.42000 17.352000000000000 38.820454750041236 3.330000000000000 + 1298 2 3 0.42000 18.074999999999999 37.568182016168940 3.330000000000000 + 1299 2 4 -0.42000 19.521000000000001 37.568182016168940 3.330000000000000 + 1300 2 3 0.42000 20.244000000000000 38.820454750041236 3.330000000000000 + 1301 2 4 -0.42000 21.690000000000001 38.820454750041236 3.330000000000000 + 1302 2 3 0.42000 22.413000000000000 37.568182016168940 3.330000000000000 + 1303 2 4 -0.42000 23.859000000000002 37.568182016168940 3.330000000000000 + 1304 2 3 0.42000 24.582000000000001 38.820454750041236 3.330000000000000 + 1305 2 4 -0.42000 26.027999999999999 38.820454750041236 3.330000000000000 + 1306 2 3 0.42000 26.750999999999998 37.568182016168940 3.330000000000000 + 1307 2 4 -0.42000 28.196999999999999 37.568182016168940 3.330000000000000 + 1308 2 3 0.42000 28.919999999999998 38.820454750041236 3.330000000000000 + 1309 2 4 -0.42000 30.366000000000000 38.820454750041236 3.330000000000000 + 1310 2 3 0.42000 31.088999999999999 37.568182016168940 3.330000000000000 + 1311 2 4 -0.42000 32.534999999999997 37.568182016168940 3.330000000000000 + 1312 2 3 0.42000 33.258000000000003 38.820454750041236 3.330000000000000 + 1313 2 4 -0.42000 34.704000000000001 38.820454750041236 3.330000000000000 + 1314 2 3 0.42000 35.427000000000000 37.568182016168940 3.330000000000000 + 1315 2 4 -0.42000 36.872999999999998 37.568182016168940 3.330000000000000 + 1316 2 3 0.42000 37.596000000000004 38.820454750041236 3.330000000000000 + 1317 2 4 -0.42000 39.042000000000002 38.820454750041236 3.330000000000000 + 1318 2 3 0.42000 39.765000000000001 37.568182016168940 3.330000000000000 + 1319 2 4 -0.42000 41.210999999999999 37.568182016168940 3.330000000000000 + 1320 2 3 0.42000 41.934000000000005 38.820454750041236 3.330000000000000 + 1321 2 4 -0.42000 0.000000000000000 41.325000217785835 3.330000000000000 + 1322 2 3 0.42000 0.723000000000000 40.072727483913539 3.330000000000000 + 1323 2 4 -0.42000 2.169000000000000 40.072727483913539 3.330000000000000 + 1324 2 3 0.42000 2.892000000000000 41.325000217785835 3.330000000000000 + 1325 2 4 -0.42000 4.338000000000000 41.325000217785835 3.330000000000000 + 1326 2 3 0.42000 5.061000000000000 40.072727483913539 3.330000000000000 + 1327 2 4 -0.42000 6.507000000000000 40.072727483913539 3.330000000000000 + 1328 2 3 0.42000 7.230000000000000 41.325000217785835 3.330000000000000 + 1329 2 4 -0.42000 8.676000000000000 41.325000217785835 3.330000000000000 + 1330 2 3 0.42000 9.399000000000001 40.072727483913539 3.330000000000000 + 1331 2 4 -0.42000 10.845000000000001 40.072727483913539 3.330000000000000 + 1332 2 3 0.42000 11.568000000000000 41.325000217785835 3.330000000000000 + 1333 2 4 -0.42000 13.013999999999999 41.325000217785835 3.330000000000000 + 1334 2 3 0.42000 13.737000000000000 40.072727483913539 3.330000000000000 + 1335 2 4 -0.42000 15.183000000000000 40.072727483913539 3.330000000000000 + 1336 2 3 0.42000 15.905999999999999 41.325000217785835 3.330000000000000 + 1337 2 4 -0.42000 17.352000000000000 41.325000217785835 3.330000000000000 + 1338 2 3 0.42000 18.074999999999999 40.072727483913539 3.330000000000000 + 1339 2 4 -0.42000 19.521000000000001 40.072727483913539 3.330000000000000 + 1340 2 3 0.42000 20.244000000000000 41.325000217785835 3.330000000000000 + 1341 2 4 -0.42000 21.690000000000001 41.325000217785835 3.330000000000000 + 1342 2 3 0.42000 22.413000000000000 40.072727483913539 3.330000000000000 + 1343 2 4 -0.42000 23.859000000000002 40.072727483913539 3.330000000000000 + 1344 2 3 0.42000 24.582000000000001 41.325000217785835 3.330000000000000 + 1345 2 4 -0.42000 26.027999999999999 41.325000217785835 3.330000000000000 + 1346 2 3 0.42000 26.750999999999998 40.072727483913539 3.330000000000000 + 1347 2 4 -0.42000 28.196999999999999 40.072727483913539 3.330000000000000 + 1348 2 3 0.42000 28.919999999999998 41.325000217785835 3.330000000000000 + 1349 2 4 -0.42000 30.366000000000000 41.325000217785835 3.330000000000000 + 1350 2 3 0.42000 31.088999999999999 40.072727483913539 3.330000000000000 + 1351 2 4 -0.42000 32.534999999999997 40.072727483913539 3.330000000000000 + 1352 2 3 0.42000 33.258000000000003 41.325000217785835 3.330000000000000 + 1353 2 4 -0.42000 34.704000000000001 41.325000217785835 3.330000000000000 + 1354 2 3 0.42000 35.427000000000000 40.072727483913539 3.330000000000000 + 1355 2 4 -0.42000 36.872999999999998 40.072727483913539 3.330000000000000 + 1356 2 3 0.42000 37.596000000000004 41.325000217785835 3.330000000000000 + 1357 2 4 -0.42000 39.042000000000002 41.325000217785835 3.330000000000000 + 1358 2 3 0.42000 39.765000000000001 40.072727483913539 3.330000000000000 + 1359 2 4 -0.42000 41.210999999999999 40.072727483913539 3.330000000000000 + 1360 2 3 0.42000 41.934000000000005 41.325000217785835 3.330000000000000 diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/in.bilayer-hBN b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/in.bilayer-hBN new file mode 100644 index 0000000000..0e02104d59 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/in.bilayer-hBN @@ -0,0 +1,57 @@ +# Initialization +units metal +boundary p p p +atom_style full +processors * * 1 # domain decomposition over x and y + +# System and atom definition +# we use different molecule ids for each layer of hBN +# so that inter- and intra-layer +# interactions can be specified separately +read_data hBN_AA_prime_stack_2L_noH.data +mass 1 10.8110 # boron mass (g/mole) | membrane +mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate +mass 3 10.8110 # boron mass (g/mole) | membrane +mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate +# Separate atom groups +group layer1 molecule 1 +group layer2 molecule 2 + +######################## Potential defition ######################## +pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1 +#################################################################### +pair_coeff * * tersoff BNC.tersoff B N B N # chemical +pair_coeff * * ilp/graphene/hbn BNCH.ILP B N B N # long range +pair_coeff 1 3 coul/shield 0.70 +pair_coeff 1 4 coul/shield 0.69498201415576216335 +pair_coeff 2 3 coul/shield 0.69498201415576216335 +pair_coeff 2 4 coul/shield 0.69 +#################################################################### +# Neighbor update settings +neighbor 2.0 bin +neigh_modify every 1 +neigh_modify delay 0 +neigh_modify check yes + +#### Simulation settings #### +timestep 0.001 +velocity all create 300.0 12345 dist gaussian mom yes rot yes +fix thermostat all nve + +compute 0 all pair tersoff +compute 1 all pair coul/shield ecoul +compute 2 all pair ilp/graphene/hbn +variable Tersoff equal c_0 # Tersoff energy +variable Ecoul equal c_1 # Coulomb energy +variable EILP equal c_2 # total interlayer energy +variable Evdw equal c_2[1] # attractive energy +variable Erep equal c_2[2] # repulsive energy + +############# Output ############### +thermo 100 +thermo_style custom step cpu etotal pe ke v_Evdw v_Tersoff v_EILP v_Erep v_Evdw v_Ecoul temp +thermo_modify line one format float %.10f +thermo_modify flush yes norm no lost error + +###### Run molecular dynamics ###### +run 1000 diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/log.5Jun19.bilayer_hBN.icc.1 b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/log.5Jun19.bilayer_hBN.icc.1 new file mode 100644 index 0000000000..abebb8df27 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/log.5Jun19.bilayer_hBN.icc.1 @@ -0,0 +1,144 @@ +LAMMPS (5 Jun 2019) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88) + using 1 OpenMP thread(s) per MPI task +# Initialization +units metal +boundary p p p +atom_style full +processors * * 1 # domain decomposition over x and y + +# System and atom definition +# we use different molecule ids for each layer of hBN +# so that inter- and intra-layer +# interactions can be specified separately +read_data hBN_AA_prime_stack_2L_noH.data + orthogonal box = (0 0 0) to (43.38 42.5773 100) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1360 atoms + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000162885 secs + read_data CPU = 0.00152144 secs +mass 1 10.8110 # boron mass (g/mole) | membrane +mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate +mass 3 10.8110 # boron mass (g/mole) | membrane +mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate +# Separate atom groups +group layer1 molecule 1 +680 atoms in group layer1 +group layer2 molecule 2 +680 atoms in group layer2 + +######################## Potential defition ######################## +pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1 +#################################################################### +pair_coeff * * tersoff BNC.tersoff B N B N # chemical +Reading potential file BNC.tersoff with DATE: 2013-03-21 +pair_coeff * * ilp/graphene/hbn BNCH.ILP B N B N # long range +pair_coeff 1 3 coul/shield 0.70 +pair_coeff 1 4 coul/shield 0.69498201415576216335 +pair_coeff 2 3 coul/shield 0.69498201415576216335 +pair_coeff 2 4 coul/shield 0.69 +#################################################################### +# Neighbor update settings +neighbor 2.0 bin +neigh_modify every 1 +neigh_modify delay 0 +neigh_modify check yes + +#### Simulation settings #### +timestep 0.001 +velocity all create 300.0 12345 dist gaussian mom yes rot yes +fix thermostat all nve + +compute 0 all pair tersoff +compute 1 all pair coul/shield ecoul +compute 2 all pair ilp/graphene/hbn +variable Tersoff equal c_0 # Tersoff energy +variable Ecoul equal c_1 # Coulomb energy +variable EILP equal c_2 # total interlayer energy +variable Evdw equal c_2[1] # attractive energy +variable Erep equal c_2[2] # repulsive energy + +############# Output ############### +thermo 100 +thermo_style custom step cpu etotal pe ke v_Evdw v_Tersoff v_EILP v_Erep v_Evdw v_Ecoul temp +thermo_modify line one format float %.10f +thermo_modify flush yes norm no lost error + +###### Run molecular dynamics ###### +run 1000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 18 + ghost atom cutoff = 18 + binsize = 9, bins = 5 5 12 + 4 neighbor lists, perpetual/occasional/extra = 4 0 0 + (1) pair tersoff, perpetual + attributes: full, newton on + pair build: full/bin + stencil: full/bin/3d + bin: standard + (2) pair ilp/graphene/hbn, perpetual + attributes: full, newton on, ghost + pair build: full/bin/ghost + stencil: full/ghost/bin/3d + bin: standard + (3) pair coul/shield, perpetual, skip from (4) + attributes: half, newton on + pair build: skip + stencil: none + bin: none + (4) neighbor class addition, perpetual, half/full from (1) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 39.16 | 39.16 | 39.16 Mbytes +Step CPU TotEng PotEng KinEng v_Evdw v_Tersoff v_EILP v_Erep v_Evdw v_Ecoul Temp + 0 0.0000000000 -10193.1380848266 -10245.8374459431 52.6993611165 -77.5570687695 -10208.7302118650 -36.7764829084 40.7805858612 -77.5570687695 -0.3307511697 300.0000000000 + 100 6.7965245070 -10192.8138221665 -10215.1933919318 22.3795697653 -80.9976194405 -10177.8775571602 -36.9677356248 44.0298838157 -80.9976194405 -0.3480991468 127.3994748197 + 200 13.6121753111 -10192.9217984546 -10221.8066529747 28.8848545200 -86.3703194681 -10184.2512197444 -37.1689855905 49.2013338776 -86.3703194681 -0.3864476398 164.4319052911 + 300 20.4697002331 -10192.8780091121 -10219.0294731325 26.1514640204 -83.0639240055 -10182.3487520151 -36.3041195435 46.7598044620 -83.0639240055 -0.3766015739 148.8716189324 + 400 27.2477328760 -10192.8915023008 -10218.8337311224 25.9422288216 -78.3942416895 -10181.3978178066 -37.1109676261 41.2832740634 -78.3942416895 -0.3249456897 147.6805122794 + 500 34.0398510781 -10192.9091924320 -10221.3314056924 28.4222132604 -81.7685306349 -10184.0302799036 -36.9462261394 44.8223044955 -81.7685306349 -0.3548996493 161.7982419039 + 600 40.8147194131 -10192.8859685989 -10219.3709182378 26.4849496389 -86.2783346104 -10182.6694059460 -36.2951497597 49.9831848507 -86.2783346104 -0.4063625321 150.7700420526 + 700 47.6096971680 -10192.9015812429 -10220.9496893393 28.0481080963 -82.2887300963 -10183.2081700333 -37.3937397296 44.8949903667 -82.2887300963 -0.3477795764 159.6685851711 + 800 54.4165411390 -10192.8798040842 -10218.5099898620 25.6301857778 -78.0110194568 -10181.4267315419 -36.7542088970 41.2568105599 -78.0110194568 -0.3290494232 145.9041546318 + 900 61.2580328170 -10192.8940657565 -10220.5595028458 27.6654370893 -82.4743793723 -10183.8013123118 -36.3811572492 46.0932221231 -82.4743793723 -0.3770332848 157.4901659330 + 1000 68.0452993071 -10192.8973362869 -10219.0104657947 26.1131295079 -87.1256831340 -10181.2524878789 -37.3618984004 49.7637847337 -87.1256831340 -0.3960795154 148.6533932553 +Loop time of 68.0453 on 1 procs for 1000 steps with 1360 atoms + +Performance: 1.270 ns/day, 18.901 hours/ns, 14.696 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 67.995 | 67.995 | 67.995 | 0.0 | 99.93 +Bond | 0.00047219 | 0.00047219 | 0.00047219 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.030427 | 0.030427 | 0.030427 | 0.0 | 0.04 +Output | 0.000568 | 0.000568 | 0.000568 | 0.0 | 0.00 +Modify | 0.0089312 | 0.0089312 | 0.0089312 | 0.0 | 0.01 +Other | | 0.01005 | | | 0.01 + +Nlocal: 1360 ave 1360 max 1360 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 7836 ave 7836 max 7836 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 249560 ave 249560 max 249560 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 1.00504e+06 ave 1.00504e+06 max 1.00504e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 1005040 +Ave neighs/atom = 739 +Ave special neighs/atom = 0 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:01:08 diff --git a/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/log.5Jun19.bilayer_hBN.icc.4 b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/log.5Jun19.bilayer_hBN.icc.4 new file mode 100644 index 0000000000..8ad5875282 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/bilayer-hBN/log.5Jun19.bilayer_hBN.icc.4 @@ -0,0 +1,144 @@ +LAMMPS (5 Jun 2019) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88) + using 1 OpenMP thread(s) per MPI task +# Initialization +units metal +boundary p p p +atom_style full +processors * * 1 # domain decomposition over x and y + +# System and atom definition +# we use different molecule ids for each layer of hBN +# so that inter- and intra-layer +# interactions can be specified separately +read_data hBN_AA_prime_stack_2L_noH.data + orthogonal box = (0 0 0) to (43.38 42.5773 100) + 2 by 2 by 1 MPI processor grid + reading atoms ... + 1360 atoms + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.00013403 secs + read_data CPU = 0.00236647 secs +mass 1 10.8110 # boron mass (g/mole) | membrane +mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate +mass 3 10.8110 # boron mass (g/mole) | membrane +mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate +# Separate atom groups +group layer1 molecule 1 +680 atoms in group layer1 +group layer2 molecule 2 +680 atoms in group layer2 + +######################## Potential defition ######################## +pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1 +#################################################################### +pair_coeff * * tersoff BNC.tersoff B N B N # chemical +Reading potential file BNC.tersoff with DATE: 2013-03-21 +pair_coeff * * ilp/graphene/hbn BNCH.ILP B N B N # long range +pair_coeff 1 3 coul/shield 0.70 +pair_coeff 1 4 coul/shield 0.69498201415576216335 +pair_coeff 2 3 coul/shield 0.69498201415576216335 +pair_coeff 2 4 coul/shield 0.69 +#################################################################### +# Neighbor update settings +neighbor 2.0 bin +neigh_modify every 1 +neigh_modify delay 0 +neigh_modify check yes + +#### Simulation settings #### +timestep 0.001 +velocity all create 300.0 12345 dist gaussian mom yes rot yes +fix thermostat all nve + +compute 0 all pair tersoff +compute 1 all pair coul/shield ecoul +compute 2 all pair ilp/graphene/hbn +variable Tersoff equal c_0 # Tersoff energy +variable Ecoul equal c_1 # Coulomb energy +variable EILP equal c_2 # total interlayer energy +variable Evdw equal c_2[1] # attractive energy +variable Erep equal c_2[2] # repulsive energy + +############# Output ############### +thermo 100 +thermo_style custom step cpu etotal pe ke v_Evdw v_Tersoff v_EILP v_Erep v_Evdw v_Ecoul temp +thermo_modify line one format float %.10f +thermo_modify flush yes norm no lost error + +###### Run molecular dynamics ###### +run 1000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 18 + ghost atom cutoff = 18 + binsize = 9, bins = 5 5 12 + 4 neighbor lists, perpetual/occasional/extra = 4 0 0 + (1) pair tersoff, perpetual + attributes: full, newton on + pair build: full/bin + stencil: full/bin/3d + bin: standard + (2) pair ilp/graphene/hbn, perpetual + attributes: full, newton on, ghost + pair build: full/bin/ghost + stencil: full/ghost/bin/3d + bin: standard + (3) pair coul/shield, perpetual, skip from (4) + attributes: half, newton on + pair build: skip + stencil: none + bin: none + (4) neighbor class addition, perpetual, half/full from (1) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 20.72 | 20.72 | 20.72 Mbytes +Step CPU TotEng PotEng KinEng v_Evdw v_Tersoff v_EILP v_Erep v_Evdw v_Ecoul Temp + 0 0.0000000000 -10193.1380848270 -10245.8374459435 52.6993611165 -77.5570687695 -10208.7302118654 -36.7764829083 40.7805858612 -77.5570687695 -0.3307511697 300.0000000000 + 100 2.1550989150 -10192.8138221665 -10215.1933919317 22.3795697653 -80.9976194405 -10177.8775571601 -36.9677356248 44.0298838158 -80.9976194405 -0.3480991468 127.3994748197 + 200 4.3479236889 -10192.9217984546 -10221.8066529746 28.8848545200 -86.3703194681 -10184.2512197444 -37.1689855904 49.2013338777 -86.3703194681 -0.3864476398 164.4319052911 + 300 6.5410459590 -10192.8780091121 -10219.0294731324 26.1514640204 -83.0639240055 -10182.3487520151 -36.3041195435 46.7598044620 -83.0639240055 -0.3766015739 148.8716189324 + 400 8.7036962360 -10192.8915023008 -10218.8337311224 25.9422288216 -78.3942416895 -10181.3978178066 -37.1109676261 41.2832740634 -78.3942416895 -0.3249456897 147.6805122794 + 500 10.8535934120 -10192.9091924320 -10221.3314056923 28.4222132604 -81.7685306349 -10184.0302799036 -36.9462261394 44.8223044955 -81.7685306349 -0.3548996493 161.7982419039 + 600 12.9922130840 -10192.8859685988 -10219.3709182377 26.4849496389 -86.2783346104 -10182.6694059459 -36.2951497597 49.9831848507 -86.2783346104 -0.4063625321 150.7700420526 + 700 15.1486390879 -10192.9015812430 -10220.9496893393 28.0481080963 -82.2887300963 -10183.2081700333 -37.3937397295 44.8949903668 -82.2887300963 -0.3477795764 159.6685851711 + 800 17.3069961029 -10192.8798040842 -10218.5099898620 25.6301857778 -78.0110194568 -10181.4267315419 -36.7542088969 41.2568105599 -78.0110194568 -0.3290494232 145.9041546318 + 900 19.4832645269 -10192.8940657564 -10220.5595028457 27.6654370893 -82.4743793723 -10183.8013123118 -36.3811572492 46.0932221231 -82.4743793723 -0.3770332848 157.4901659330 + 1000 21.6507079899 -10192.8973362868 -10219.0104657947 26.1131295079 -87.1256831340 -10181.2524878789 -37.3618984003 49.7637847337 -87.1256831340 -0.3960795154 148.6533932553 +Loop time of 21.6507 on 4 procs for 1000 steps with 1360 atoms + +Performance: 3.991 ns/day, 6.014 hours/ns, 46.188 timesteps/s +99.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 20.152 | 20.681 | 21.202 | 8.2 | 95.52 +Bond | 0.00039643 | 0.00043971 | 0.00048381 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.43171 | 0.9526 | 1.482 | 38.2 | 4.40 +Output | 0.00028839 | 0.00037988 | 0.00064771 | 0.0 | 0.00 +Modify | 0.0046368 | 0.0047831 | 0.0050183 | 0.2 | 0.02 +Other | | 0.01106 | | | 0.05 + +Nlocal: 340 ave 340 max 340 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 4536 ave 4536 max 4536 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 62390 ave 62390 max 62390 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 251260 ave 251260 max 251260 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 1005040 +Ave neighs/atom = 739 +Ave special neighs/atom = 0 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:21 diff --git a/examples/USER/misc/ilp_graphene_hbn/gr-hBN/BNCH.ILP b/examples/USER/misc/ilp_graphene_hbn/gr-hBN/BNCH.ILP new file mode 120000 index 0000000000..b970e23f95 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/gr-hBN/BNCH.ILP @@ -0,0 +1 @@ +../../../../../potentials/BNCH.ILP \ No newline at end of file diff --git a/examples/USER/misc/ilp_graphene_hbn/gr-hBN/CH.rebo b/examples/USER/misc/ilp_graphene_hbn/gr-hBN/CH.rebo new file mode 120000 index 0000000000..b98001a7fd --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/gr-hBN/CH.rebo @@ -0,0 +1 @@ +../../../../../potentials/CH.rebo \ No newline at end of file diff --git a/examples/USER/misc/ilp_graphene_hbn/gr-hBN/in.grhBN b/examples/USER/misc/ilp_graphene_hbn/gr-hBN/in.grhBN index bad7b17fde..1ae1704dec 100644 --- a/examples/USER/misc/ilp_graphene_hbn/gr-hBN/in.grhBN +++ b/examples/USER/misc/ilp_graphene_hbn/gr-hBN/in.grhBN @@ -5,22 +5,23 @@ atom_style full processors * * 1 # domain decomposition over x and y # System and atom definition -# we use 2 atom types so that inter- and intra-layer +# we use different molecule ids for each layer +# so that inter- and intra-layer # interactions can be specified separately read_data gr_hBN_Cstack_2L_noH.data mass 1 10.8110 # boron mass (g/mole) | membrane mass 2 14.0067 # nitrogen mass (g/mole) | membrane mass 3 12.0107 # carbon mass (g/mole) | adsorbate # Separate atom groups -group membrane type 1 2 -group adsorbate type 3 +group hBN molecule 1 +group gr molecule 2 ######################## Potential defition ######################## pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 #################################################################### -pair_coeff * * rebo CH.airebo NULL NULL C # chemical -pair_coeff * * tersoff BNC.tersoff B N NULL # chemical -pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N C # long range +pair_coeff * * rebo CH.rebo NULL NULL C # chemical +pair_coeff * * tersoff BNC.tersoff B N NULL # chemical +pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C # long range pair_coeff 1 1 coul/shield 0.70 pair_coeff 1 2 coul/shield 0.69498201415576216335 pair_coeff 2 2 coul/shield 0.69 @@ -31,41 +32,26 @@ neigh_modify every 1 neigh_modify delay 0 neigh_modify check yes -# calculate the COM -variable adsxcom equal xcm(adsorbate,x) -variable adsycom equal xcm(adsorbate,y) -variable adszcom equal xcm(adsorbate,z) -variable adsvxcom equal vcm(adsorbate,x) -variable adsvycom equal vcm(adsorbate,y) -variable adsvzcom equal vcm(adsorbate,z) - #### Simulation settings #### -timestep 0.001 -velocity all create 300.0 12345 -fix thermostat all nve +timestep 0.001 +velocity all create 300.0 12345 dist gaussian mom yes rot yes +fix thermostat all nve -compute 0 all pair rebo -compute 1 all pair tersoff -compute 2 all pair ilp/graphene/hbn -compute 3 all pair coul/shield -variable REBO equal c_0 -variable Tersoff equal c_1 -variable EILP equal c_2 -variable Ecoul equal c_3 +compute 0 all pair rebo +compute 1 all pair tersoff +compute 2 all pair ilp/graphene/hbn +compute 3 all pair coul/shield +variable REBO equal c_0 +variable Tersoff equal c_1 +variable EILP equal c_2 # total interlayer energy +variable Evdw equal c_2[1] # attractive energy +variable Erep equal c_2[2] # repulsive energy +variable Ecoul equal c_3 -# Calculate the pair potential between the substrate and slider -compute sldsub adsorbate group/group membrane -variable Evdw equal c_sldsub - -############################ - -# Output +############# Output ############## thermo 100 -thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom +thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Erep v_Evdw v_Ecoul temp thermo_modify line one format float %.10f -#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu -#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes - ###### Run molecular dynamics ###### -run 1000 +run 1000 diff --git a/examples/USER/misc/ilp_graphene_hbn/gr-hBN/log.5Jun19.grhBN.icc.1 b/examples/USER/misc/ilp_graphene_hbn/gr-hBN/log.5Jun19.grhBN.icc.1 new file mode 100644 index 0000000000..65e32502f0 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/gr-hBN/log.5Jun19.grhBN.icc.1 @@ -0,0 +1,155 @@ +LAMMPS (5 Jun 2019) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88) + using 1 OpenMP thread(s) per MPI task +# Initialization +units metal +boundary p p p +atom_style full +processors * * 1 # domain decomposition over x and y + +# System and atom definition +# we use different molecule ids for each layer +# so that inter- and intra-layer +# interactions can be specified separately +read_data gr_hBN_Cstack_2L_noH.data + orthogonal box = (0 0 0) to (44.583 42.9 100) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1440 atoms + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000152684 secs + read_data CPU = 0.00139584 secs +mass 1 10.8110 # boron mass (g/mole) | membrane +mass 2 14.0067 # nitrogen mass (g/mole) | membrane +mass 3 12.0107 # carbon mass (g/mole) | adsorbate +# Separate atom groups +group hBN molecule 1 +720 atoms in group hBN +group gr molecule 2 +720 atoms in group gr + +######################## Potential defition ######################## +pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 +#################################################################### +pair_coeff * * rebo CH.rebo NULL NULL C # chemical +Reading potential file CH.rebo with DATE: 2018-7-3 +pair_coeff * * tersoff BNC.tersoff B N NULL # chemical +Reading potential file BNC.tersoff with DATE: 2013-03-21 +pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C # long range +pair_coeff 1 1 coul/shield 0.70 +pair_coeff 1 2 coul/shield 0.69498201415576216335 +pair_coeff 2 2 coul/shield 0.69 +#################################################################### +# Neighbor update settings +neighbor 2.0 bin +neigh_modify every 1 +neigh_modify delay 0 +neigh_modify check yes + +#### Simulation settings #### +timestep 0.001 +velocity all create 300.0 12345 dist gaussian mom yes rot yes +fix thermostat all nve + +compute 0 all pair rebo +compute 1 all pair tersoff +compute 2 all pair ilp/graphene/hbn +compute 3 all pair coul/shield +variable REBO equal c_0 +variable Tersoff equal c_1 +variable EILP equal c_2 # total interlayer energy +variable Evdw equal c_2[1] # attractive energy +variable Erep equal c_2[2] # repulsive energy +variable Ecoul equal c_3 + +############# Output ############## +thermo 100 +thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Erep v_Evdw v_Ecoul temp +thermo_modify line one format float %.10f + +###### Run molecular dynamics ###### +run 1000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 18 + ghost atom cutoff = 18 + binsize = 9, bins = 5 5 12 + 6 neighbor lists, perpetual/occasional/extra = 6 0 0 + (1) pair rebo, perpetual, skip from (3) + attributes: full, newton on, ghost + pair build: skip/ghost + stencil: none + bin: none + (2) pair tersoff, perpetual, skip from (5) + attributes: full, newton on + pair build: skip + stencil: none + bin: none + (3) pair ilp/graphene/hbn, perpetual + attributes: full, newton on, ghost + pair build: full/bin/ghost + stencil: full/ghost/bin/3d + bin: standard + (4) pair coul/shield, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton/skip + stencil: none + bin: none + (5) neighbor class addition, perpetual, copy from (3) + attributes: full, newton on + pair build: copy + stencil: none + bin: none + (6) neighbor class addition, perpetual, half/full from (5) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 25.93 | 25.93 | 25.93 Mbytes +Step TotEng PotEng KinEng v_Evdw v_Tersoff v_REBO v_EILP v_Erep v_Evdw v_Ecoul Temp + 0 -10707.2836653377 -10763.0852699342 55.8016045965 -75.2477261362 -5401.7347845703 -5322.2780768034 -39.0724085605 36.1753175757 -75.2477261362 0.0000000000 300.0000000000 + 100 -10707.0738132278 -10737.1273434298 30.0535302020 -73.2173218622 -5389.9568321958 -5309.2004092412 -37.9701019928 35.2472198694 -73.2173218622 0.0000000000 161.5734731251 + 200 -10707.0160305531 -10734.9317906949 27.9157601418 -71.6030968581 -5389.1293717071 -5307.7455440517 -38.0568749361 33.5462219220 -71.6030968581 0.0000000000 150.0804162013 + 300 -10707.0133459577 -10734.9870508108 27.9737048532 -75.0821335395 -5388.9196081501 -5308.1164952096 -37.9509474511 37.1311860884 -75.0821335395 0.0000000000 150.3919379493 + 400 -10707.0118845924 -10735.4980560195 28.4861714271 -76.3398711857 -5389.1656629670 -5308.1529507210 -38.1794423315 38.1604288542 -76.3398711857 0.0000000000 153.1470553564 + 500 -10707.0073064907 -10734.6814074933 27.6741010026 -73.3123544614 -5388.7261058688 -5307.7383573628 -38.2169442617 35.0954101998 -73.3123544614 0.0000000000 148.7812108775 + 600 -10707.0179599067 -10735.8330915547 28.8151316481 -71.9277634955 -5389.0797599186 -5308.5959984739 -38.1573331622 33.7704303333 -71.9277634955 0.0000000000 154.9156078382 + 700 -10707.0202991119 -10735.6556762202 28.6353771083 -74.6793707186 -5389.2970704981 -5308.1866033124 -38.1720024097 36.5073683089 -74.6793707186 0.0000000000 153.9492133711 + 800 -10707.0042706783 -10734.3516957279 27.3474250495 -76.3712879764 -5388.5923210533 -5307.7206382682 -38.0387364064 38.3325515700 -76.3712879764 0.0000000000 147.0249390530 + 900 -10707.0144790011 -10735.8318835748 28.8174045738 -73.6993318112 -5388.9674133804 -5308.7963924816 -38.0680777128 35.6312540984 -73.6993318112 0.0000000000 154.9278275177 + 1000 -10706.9953891527 -10733.5615396283 26.5661504756 -71.4398677888 -5388.0186485439 -5307.4414386685 -38.1014524159 33.3384153730 -71.4398677888 0.0000000000 142.8246589021 +Loop time of 55.1175 on 1 procs for 1000 steps with 1440 atoms + +Performance: 1.568 ns/day, 15.310 hours/ns, 18.143 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 55.062 | 55.062 | 55.062 | 0.0 | 99.90 +Bond | 0.00046717 | 0.00046717 | 0.00046717 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.034313 | 0.034313 | 0.034313 | 0.0 | 0.06 +Output | 0.00034028 | 0.00034028 | 0.00034028 | 0.0 | 0.00 +Modify | 0.010012 | 0.010012 | 0.010012 | 0.0 | 0.02 +Other | | 0.01061 | | | 0.02 + +Nlocal: 1440 ave 1440 max 1440 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 8180 ave 8180 max 8180 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 140400 ave 140400 max 140400 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 280800 ave 280800 max 280800 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 280800 +Ave neighs/atom = 195 +Ave special neighs/atom = 0 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:55 diff --git a/examples/USER/misc/ilp_graphene_hbn/gr-hBN/log.5Jun19.grhBN.icc.4 b/examples/USER/misc/ilp_graphene_hbn/gr-hBN/log.5Jun19.grhBN.icc.4 new file mode 100644 index 0000000000..9ea23fb6e3 --- /dev/null +++ b/examples/USER/misc/ilp_graphene_hbn/gr-hBN/log.5Jun19.grhBN.icc.4 @@ -0,0 +1,155 @@ +LAMMPS (5 Jun 2019) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88) + using 1 OpenMP thread(s) per MPI task +# Initialization +units metal +boundary p p p +atom_style full +processors * * 1 # domain decomposition over x and y + +# System and atom definition +# we use different molecule ids for each layer +# so that inter- and intra-layer +# interactions can be specified separately +read_data gr_hBN_Cstack_2L_noH.data + orthogonal box = (0 0 0) to (44.583 42.9 100) + 2 by 2 by 1 MPI processor grid + reading atoms ... + 1440 atoms + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000148868 secs + read_data CPU = 0.00332732 secs +mass 1 10.8110 # boron mass (g/mole) | membrane +mass 2 14.0067 # nitrogen mass (g/mole) | membrane +mass 3 12.0107 # carbon mass (g/mole) | adsorbate +# Separate atom groups +group hBN molecule 1 +720 atoms in group hBN +group gr molecule 2 +720 atoms in group gr + +######################## Potential defition ######################## +pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 +#################################################################### +pair_coeff * * rebo CH.rebo NULL NULL C # chemical +Reading potential file CH.rebo with DATE: 2018-7-3 +pair_coeff * * tersoff BNC.tersoff B N NULL # chemical +Reading potential file BNC.tersoff with DATE: 2013-03-21 +pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C # long range +pair_coeff 1 1 coul/shield 0.70 +pair_coeff 1 2 coul/shield 0.69498201415576216335 +pair_coeff 2 2 coul/shield 0.69 +#################################################################### +# Neighbor update settings +neighbor 2.0 bin +neigh_modify every 1 +neigh_modify delay 0 +neigh_modify check yes + +#### Simulation settings #### +timestep 0.001 +velocity all create 300.0 12345 dist gaussian mom yes rot yes +fix thermostat all nve + +compute 0 all pair rebo +compute 1 all pair tersoff +compute 2 all pair ilp/graphene/hbn +compute 3 all pair coul/shield +variable REBO equal c_0 +variable Tersoff equal c_1 +variable EILP equal c_2 # total interlayer energy +variable Evdw equal c_2[1] # attractive energy +variable Erep equal c_2[2] # repulsive energy +variable Ecoul equal c_3 + +############# Output ############## +thermo 100 +thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Erep v_Evdw v_Ecoul temp +thermo_modify line one format float %.10f + +###### Run molecular dynamics ###### +run 1000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 18 + ghost atom cutoff = 18 + binsize = 9, bins = 5 5 12 + 6 neighbor lists, perpetual/occasional/extra = 6 0 0 + (1) pair rebo, perpetual, skip from (3) + attributes: full, newton on, ghost + pair build: skip/ghost + stencil: none + bin: none + (2) pair tersoff, perpetual, skip from (5) + attributes: full, newton on + pair build: skip + stencil: none + bin: none + (3) pair ilp/graphene/hbn, perpetual + attributes: full, newton on, ghost + pair build: full/bin/ghost + stencil: full/ghost/bin/3d + bin: standard + (4) pair coul/shield, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton/skip + stencil: none + bin: none + (5) neighbor class addition, perpetual, copy from (3) + attributes: full, newton on + pair build: copy + stencil: none + bin: none + (6) neighbor class addition, perpetual, half/full from (5) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 14.25 | 14.25 | 14.25 Mbytes +Step TotEng PotEng KinEng v_Evdw v_Tersoff v_REBO v_EILP v_Erep v_Evdw v_Ecoul Temp + 0 -10707.2836653376 -10763.0852699341 55.8016045965 -75.2477261361 -5401.7347845703 -5322.2780768034 -39.0724085604 36.1753175757 -75.2477261361 0.0000000000 300.0000000000 + 100 -10707.0738132277 -10737.1273434298 30.0535302020 -73.2173218622 -5389.9568321958 -5309.2004092412 -37.9701019928 35.2472198694 -73.2173218622 0.0000000000 161.5734731251 + 200 -10707.0160305531 -10734.9317906949 27.9157601418 -71.6030968581 -5389.1293717071 -5307.7455440517 -38.0568749361 33.5462219220 -71.6030968581 0.0000000000 150.0804162013 + 300 -10707.0133459576 -10734.9870508108 27.9737048532 -75.0821335395 -5388.9196081501 -5308.1164952096 -37.9509474511 37.1311860885 -75.0821335395 0.0000000000 150.3919379493 + 400 -10707.0118845923 -10735.4980560194 28.4861714271 -76.3398711857 -5389.1656629669 -5308.1529507210 -38.1794423315 38.1604288542 -76.3398711857 0.0000000000 153.1470553564 + 500 -10707.0073064907 -10734.6814074932 27.6741010026 -73.3123544614 -5388.7261058688 -5307.7383573628 -38.2169442616 35.0954101998 -73.3123544614 0.0000000000 148.7812108775 + 600 -10707.0179599066 -10735.8330915547 28.8151316481 -71.9277634955 -5389.0797599186 -5308.5959984739 -38.1573331622 33.7704303333 -71.9277634955 0.0000000000 154.9156078382 + 700 -10707.0202991119 -10735.6556762202 28.6353771083 -74.6793707186 -5389.2970704981 -5308.1866033124 -38.1720024097 36.5073683089 -74.6793707186 0.0000000000 153.9492133711 + 800 -10707.0042706783 -10734.3516957278 27.3474250495 -76.3712879764 -5388.5923210533 -5307.7206382682 -38.0387364063 38.3325515701 -76.3712879764 0.0000000000 147.0249390530 + 900 -10707.0144790010 -10735.8318835748 28.8174045738 -73.6993318112 -5388.9674133804 -5308.7963924816 -38.0680777128 35.6312540984 -73.6993318112 0.0000000000 154.9278275177 + 1000 -10706.9953891527 -10733.5615396283 26.5661504756 -71.4398677888 -5388.0186485439 -5307.4414386685 -38.1014524158 33.3384153730 -71.4398677888 0.0000000000 142.8246589021 +Loop time of 15.7325 on 4 procs for 1000 steps with 1440 atoms + +Performance: 5.492 ns/day, 4.370 hours/ns, 63.563 timesteps/s +99.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 13.905 | 14.645 | 15.391 | 14.5 | 93.08 +Bond | 0.00029796 | 0.00040495 | 0.00046212 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.3261 | 1.0722 | 1.8116 | 53.4 | 6.82 +Output | 0.00028242 | 0.00030932 | 0.00037515 | 0.0 | 0.00 +Modify | 0.0046079 | 0.0047365 | 0.0048651 | 0.2 | 0.03 +Other | | 0.01031 | | | 0.07 + +Nlocal: 360 ave 380 max 340 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 4716 ave 4736 max 4696 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 35100 ave 37050 max 33150 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +FullNghs: 70200 ave 74100 max 66300 min +Histogram: 2 0 0 0 0 0 0 0 0 2 + +Total # of neighbors = 280800 +Ave neighs/atom = 195 +Ave special neighs/atom = 0 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:15 diff --git a/src/USER-MISC/pair_ilp_graphene_hbn.cpp b/src/USER-MISC/pair_ilp_graphene_hbn.cpp index b94db6a871..a050f1f613 100644 --- a/src/USER-MISC/pair_ilp_graphene_hbn.cpp +++ b/src/USER-MISC/pair_ilp_graphene_hbn.cpp @@ -20,11 +20,12 @@ [Kolmogorov & Crespi, Phys. Rev. B 71, 235415 (2005)] ------------------------------------------------------------------------- */ -#include "pair_ilp_graphene_hbn.h" #include #include +#include #include #include +#include "pair_ilp_graphene_hbn.h" #include "atom.h" #include "comm.h" #include "force.h" @@ -48,6 +49,9 @@ PairILPGrapheneHBN::PairILPGrapheneHBN(LAMMPS *lmp) : Pair(lmp) restartinfo = 0; one_coeff = 1; + nextra = 2; + pvector = new double[nextra]; + // initialize element to parameter maps nelements = 0; elements = NULL; @@ -70,9 +74,7 @@ PairILPGrapheneHBN::PairILPGrapheneHBN(LAMMPS *lmp) : Pair(lmp) // always compute energy offset offset_flag = 1; - - // set comm size needed by this pair style - comm_forward = 39; + // turn on the taper function tap_flag = 1; } @@ -83,6 +85,7 @@ PairILPGrapheneHBN::~PairILPGrapheneHBN() memory->destroy(ILP_numneigh); memory->sfree(ILP_firstneigh); delete [] ipage; + delete [] pvector; memory->destroy(normal); memory->destroy(dnormal); memory->destroy(dnormdri); @@ -103,649 +106,6 @@ PairILPGrapheneHBN::~PairILPGrapheneHBN() if (allocated) delete [] map; } -/* ---------------------------------------------------------------------- */ - -void PairILPGrapheneHBN::compute(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype,k,l,kk,ll; - tagint itag,jtag; - double prodnorm1,prodnorm2,fkcx,fkcy,fkcz; - double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair,fpair1,fpair2; - double rsq,r,Rcut,rhosq1,rhosq2,exp0,exp1,exp2,r2inv,r6inv,r8inv,Tap,dTap,Vilp; - double frho1,frho2,TSvdw,TSvdw2inv,Erep,fsum,rdsq1,rdsq2; - int *ilist,*jlist,*numneigh,**firstneigh; - int *ILP_neighs_i,*ILP_neighs_j; - - evdwl = 0.0; - ev_init(eflag,vflag); - - double **x = atom->x; - double **f = atom->f; - int *type = atom->type; - tagint *tag = atom->tag; - int nlocal = atom->nlocal; - int newton_pair = force->newton_pair; - double dprodnorm1[3] = {0.0, 0.0, 0.0}; - double dprodnorm2[3] = {0.0, 0.0, 0.0}; - double fp1[3] = {0.0, 0.0, 0.0}; - double fp2[3] = {0.0, 0.0, 0.0}; - double fprod1[3] = {0.0, 0.0, 0.0}; - double fprod2[3] = {0.0, 0.0, 0.0}; - double fk[3] = {0.0, 0.0, 0.0}; - double fl[3] = {0.0, 0.0, 0.0}; - double delkj[3] = {0.0, 0.0, 0.0}; - double delli[3] = {0.0, 0.0, 0.0}; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - // Build full neighbor list - ILP_neigh(); - // Calculate the normals - calc_normal(); - - // communicate the normal vector and its derivatives - comm->forward_comm_pair(this); - - // loop over neighbors of my atoms - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - itag = tag[i]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = type[i]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - jtype = type[j]; - jtag = tag[j]; - - // two-body interactions from full neighbor list, skip half of them - if (itag > jtag) { - if ((itag+jtag) % 2 == 0) continue; - } else if (itag < jtag) { - if ((itag+jtag) % 2 == 1) continue; - } else { - if (x[j][2] < ztmp) continue; - if (x[j][2] == ztmp && x[j][1] < ytmp) continue; - if (x[j][2] == ztmp && x[j][1] == ytmp && x[j][0] < xtmp) continue; - } - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - - // only include the interation between different layers - if (rsq < cutsq[itype][jtype] && atom->molecule[i] != atom->molecule[j]) { - - int iparam_ij = elem2param[map[itype]][map[jtype]]; - Param& p = params[iparam_ij]; - - r = sqrt(rsq); - r2inv = 1.0/rsq; - r6inv = r2inv*r2inv*r2inv; - r8inv = r6inv*r2inv; - // turn on/off taper function - if (tap_flag) { - Rcut = sqrt(cutsq[itype][jtype]); - Tap = calc_Tap(r,Rcut); - dTap = calc_dTap(r,Rcut); - } else {Tap = 1.0; dTap = 0.0;} - - // Calculate the transverse distance - // note that rho_ij does not equal to rho_ji except when normals are all along z - prodnorm1 = normal[i][0]*delx + normal[i][1]*dely + normal[i][2]*delz; - prodnorm2 = normal[j][0]*delx + normal[j][1]*dely + normal[j][2]*delz; - rhosq1 = rsq - prodnorm1*prodnorm1; // rho_ij - rhosq2 = rsq - prodnorm2*prodnorm2; // rho_ji - rdsq1 = rhosq1*p.delta2inv; // (rho_ij/delta)^2 - rdsq2 = rhosq2*p.delta2inv; // (rho_ji/delta)^2 - - // store exponents - exp0 = exp(-p.lambda*(r-p.z0)); - exp1 = exp(-rdsq1); - exp2 = exp(-rdsq2); - - TSvdw = 1.0 + exp(-p.d*(r/p.seff - 1.0)); - TSvdw2inv = 1.0/pow(TSvdw,2.0); - frho1 = exp1*p.C; - frho2 = exp2*p.C; - Erep = p.epsilon + frho1 + frho2; - Vilp = -p.C6*r6inv/TSvdw + exp0*Erep; - - // derivatives - fpair = -6.0*p.C6*r8inv/TSvdw + p.d/p.seff*p.C6*(TSvdw-1.0)*TSvdw2inv*r8inv*r + p.lambda*exp0/r*Erep; - fpair1 = 2.0*exp0*frho1*p.delta2inv; - fpair2 = 2.0*exp0*frho2*p.delta2inv; - fsum = fpair + fpair1 + fpair2; - // derivatives of the product of rij and ni, the result is a vector - dprodnorm1[0] = dnormdri[0][0][i]*delx + dnormdri[1][0][i]*dely + dnormdri[2][0][i]*delz; - dprodnorm1[1] = dnormdri[0][1][i]*delx + dnormdri[1][1][i]*dely + dnormdri[2][1][i]*delz; - dprodnorm1[2] = dnormdri[0][2][i]*delx + dnormdri[1][2][i]*dely + dnormdri[2][2][i]*delz; - // derivatives of the product of rji and nj, the result is a vector - dprodnorm2[0] = dnormdri[0][0][j]*delx + dnormdri[1][0][j]*dely + dnormdri[2][0][j]*delz; - dprodnorm2[1] = dnormdri[0][1][j]*delx + dnormdri[1][1][j]*dely + dnormdri[2][1][j]*delz; - dprodnorm2[2] = dnormdri[0][2][j]*delx + dnormdri[1][2][j]*dely + dnormdri[2][2][j]*delz; - fp1[0] = prodnorm1*normal[i][0]*fpair1; - fp1[1] = prodnorm1*normal[i][1]*fpair1; - fp1[2] = prodnorm1*normal[i][2]*fpair1; - fp2[0] = prodnorm2*normal[j][0]*fpair2; - fp2[1] = prodnorm2*normal[j][1]*fpair2; - fp2[2] = prodnorm2*normal[j][2]*fpair2; - fprod1[0] = prodnorm1*dprodnorm1[0]*fpair1; - fprod1[1] = prodnorm1*dprodnorm1[1]*fpair1; - fprod1[2] = prodnorm1*dprodnorm1[2]*fpair1; - fprod2[0] = prodnorm2*dprodnorm2[0]*fpair2; - fprod2[1] = prodnorm2*dprodnorm2[1]*fpair2; - fprod2[2] = prodnorm2*dprodnorm2[2]*fpair2; - fkcx = (delx*fsum - fp1[0] - fp2[0])*Tap - Vilp*dTap*delx/r; - fkcy = (dely*fsum - fp1[1] - fp2[1])*Tap - Vilp*dTap*dely/r; - fkcz = (delz*fsum - fp1[2] - fp2[2])*Tap - Vilp*dTap*delz/r; - - f[i][0] += fkcx - fprod1[0]*Tap; - f[i][1] += fkcy - fprod1[1]*Tap; - f[i][2] += fkcz - fprod1[2]*Tap; - f[j][0] -= fkcx + fprod2[0]*Tap; - f[j][1] -= fkcy + fprod2[1]*Tap; - f[j][2] -= fkcz + fprod2[2]*Tap; - - // calculate the forces acted on the neighbors of atom i from atom j - ILP_neighs_i = ILP_firstneigh[i]; - for (kk = 0; kk < ILP_numneigh[i]; kk++) { - k = ILP_neighs_i[kk]; - if (k == i) continue; - // derivatives of the product of rij and ni respect to rk, k=0,1,2, where atom k is the neighbors of atom i - dprodnorm1[0] = dnormal[0][0][kk][i]*delx + dnormal[1][0][kk][i]*dely + dnormal[2][0][kk][i]*delz; - dprodnorm1[1] = dnormal[0][1][kk][i]*delx + dnormal[1][1][kk][i]*dely + dnormal[2][1][kk][i]*delz; - dprodnorm1[2] = dnormal[0][2][kk][i]*delx + dnormal[1][2][kk][i]*dely + dnormal[2][2][kk][i]*delz; - fk[0] = (-prodnorm1*dprodnorm1[0]*fpair1)*Tap; - fk[1] = (-prodnorm1*dprodnorm1[1]*fpair1)*Tap; - fk[2] = (-prodnorm1*dprodnorm1[2]*fpair1)*Tap; - f[k][0] += fk[0]; - f[k][1] += fk[1]; - f[k][2] += fk[2]; - delkj[0] = x[k][0] - x[j][0]; - delkj[1] = x[k][1] - x[j][1]; - delkj[2] = x[k][2] - x[j][2]; - if (evflag) ev_tally_xyz(k,j,nlocal,newton_pair,0.0,0.0,fk[0],fk[1],fk[2],delkj[0],delkj[1],delkj[2]); - } - - // calculate the forces acted on the neighbors of atom j from atom i - ILP_neighs_j = ILP_firstneigh[j]; - for (ll = 0; ll < ILP_numneigh[j]; ll++) { - l = ILP_neighs_j[ll]; - if (l == j) continue; - // derivatives of the product of rji and nj respect to rl, l=0,1,2, where atom l is the neighbors of atom j - dprodnorm2[0] = dnormal[0][0][ll][j]*delx + dnormal[1][0][ll][j]*dely + dnormal[2][0][ll][j]*delz; - dprodnorm2[1] = dnormal[0][1][ll][j]*delx + dnormal[1][1][ll][j]*dely + dnormal[2][1][ll][j]*delz; - dprodnorm2[2] = dnormal[0][2][ll][j]*delx + dnormal[1][2][ll][j]*dely + dnormal[2][2][ll][j]*delz; - fl[0] = (-prodnorm2*dprodnorm2[0]*fpair2)*Tap; - fl[1] = (-prodnorm2*dprodnorm2[1]*fpair2)*Tap; - fl[2] = (-prodnorm2*dprodnorm2[2]*fpair2)*Tap; - f[l][0] += fl[0]; - f[l][1] += fl[1]; - f[l][2] += fl[2]; - delli[0] = x[l][0] - x[i][0]; - delli[1] = x[l][1] - x[i][1]; - delli[2] = x[l][2] - x[i][2]; - if (evflag) ev_tally_xyz(l,i,nlocal,newton_pair,0.0,0.0,fl[0],fl[1],fl[2],delli[0],delli[1],delli[2]); - } - - if (eflag) { - if (tap_flag) evdwl = Tap*Vilp; - else evdwl = Vilp - offset[itype][jtype]; - } - - if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0.0,fkcx,fkcy,fkcz,delx,dely,delz); - } - } - } - if (vflag_fdotr) virial_fdotr_compute(); -} - -/* ---------------------------------------------------------------------- - Calculate the normals for each atom -------------------------------------------------------------------------- */ -void PairILPGrapheneHBN::calc_normal() -{ - int i,j,ii,jj,inum,jnum; - int cont,id,ip,m; - double nn,xtp,ytp,ztp,delx,dely,delz,nn2; - int *ilist,*jlist; - double pv12[3],pv31[3],pv23[3],n1[3],dni[3],dnn[3][3],vet[3][3],dpvdri[3][3]; - double dn1[3][3][3],dpv12[3][3][3],dpv23[3][3][3],dpv31[3][3][3]; - - double **x = atom->x; - - // grow normal array if necessary - - if (atom->nmax > nmax) { - memory->destroy(normal); - memory->destroy(dnormal); - memory->destroy(dnormdri); - nmax = atom->nmax; - memory->create(normal,nmax,3,"ILPGrapheneHBN:normal"); - memory->create(dnormdri,3,3,nmax,"ILPGrapheneHBN:dnormdri"); - memory->create(dnormal,3,3,3,nmax,"ILPGrapheneHBN:dnormal"); - } - - inum = list->inum; - ilist = list->ilist; - //Calculate normals - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtp = x[i][0]; - ytp = x[i][1]; - ztp = x[i][2]; - - // Initialize the arrays - for (id = 0; id < 3; id++){ - pv12[id] = 0.0; - pv31[id] = 0.0; - pv23[id] = 0.0; - n1[id] = 0.0; - dni[id] = 0.0; - normal[i][id] = 0.0; - for (ip = 0; ip < 3; ip++){ - vet[ip][id] = 0.0; - dnn[ip][id] = 0.0; - dpvdri[ip][id] = 0.0; - dnormdri[ip][id][i] = 0.0; - for (m = 0; m < 3; m++){ - dpv12[ip][id][m] = 0.0; - dpv31[ip][id][m] = 0.0; - dpv23[ip][id][m] = 0.0; - dn1[ip][id][m] = 0.0; - dnormal[ip][id][m][i] = 0.0; - } - } - } - - cont = 0; - jlist = ILP_firstneigh[i]; - jnum = ILP_numneigh[i]; - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - - delx = x[j][0] - xtp; - dely = x[j][1] - ytp; - delz = x[j][2] - ztp; - vet[cont][0] = delx; - vet[cont][1] = dely; - vet[cont][2] = delz; - cont++; - } - - if (cont <= 1) { - normal[i][0] = 0.0; - normal[i][1] = 0.0; - normal[i][2] = 1.0; - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormdri[id][ip][i] = 0.0; - for (m = 0; m < 3; m++){ - dnormal[id][ip][m][i] = 0.0; - } - } - } - } - else if (cont == 2) { - pv12[0] = vet[0][1]*vet[1][2] - vet[1][1]*vet[0][2]; - pv12[1] = vet[0][2]*vet[1][0] - vet[1][2]*vet[0][0]; - pv12[2] = vet[0][0]*vet[1][1] - vet[1][0]*vet[0][1]; - // derivatives of pv12[0] to ri - dpvdri[0][0] = 0.0; - dpvdri[0][1] = vet[0][2]-vet[1][2]; - dpvdri[0][2] = vet[1][1]-vet[0][1]; - // derivatives of pv12[1] to ri - dpvdri[1][0] = vet[1][2]-vet[0][2]; - dpvdri[1][1] = 0.0; - dpvdri[1][2] = vet[0][0]-vet[1][0]; - // derivatives of pv12[2] to ri - dpvdri[2][0] = vet[0][1]-vet[1][1]; - dpvdri[2][1] = vet[1][0]-vet[0][0]; - dpvdri[2][2] = 0.0; - - dpv12[0][0][0] = 0.0; - dpv12[0][1][0] = vet[1][2]; - dpv12[0][2][0] = -vet[1][1]; - dpv12[1][0][0] = -vet[1][2]; - dpv12[1][1][0] = 0.0; - dpv12[1][2][0] = vet[1][0]; - dpv12[2][0][0] = vet[1][1]; - dpv12[2][1][0] = -vet[1][0]; - dpv12[2][2][0] = 0.0; - - // derivatives respect to the second neighbor, atom l - dpv12[0][0][1] = 0.0; - dpv12[0][1][1] = -vet[0][2]; - dpv12[0][2][1] = vet[0][1]; - dpv12[1][0][1] = vet[0][2]; - dpv12[1][1][1] = 0.0; - dpv12[1][2][1] = -vet[0][0]; - dpv12[2][0][1] = -vet[0][1]; - dpv12[2][1][1] = vet[0][0]; - dpv12[2][2][1] = 0.0; - - // derivatives respect to the third neighbor, atom n - // derivatives of pv12 to rn is zero - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dpv12[id][ip][2] = 0.0; - } - } - - n1[0] = pv12[0]; - n1[1] = pv12[1]; - n1[2] = pv12[2]; - // the magnitude of the normal vector - nn2 = n1[0]*n1[0] + n1[1]*n1[1] + n1[2]*n1[2]; - nn = sqrt(nn2); - if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero"); - // the unit normal vector - normal[i][0] = n1[0]/nn; - normal[i][1] = n1[1]/nn; - normal[i][2] = n1[2]/nn; - // derivatives of nn, dnn:3x1 vector - dni[0] = (n1[0]*dpvdri[0][0] + n1[1]*dpvdri[1][0] + n1[2]*dpvdri[2][0])/nn; - dni[1] = (n1[0]*dpvdri[0][1] + n1[1]*dpvdri[1][1] + n1[2]*dpvdri[2][1])/nn; - dni[2] = (n1[0]*dpvdri[0][2] + n1[1]*dpvdri[1][2] + n1[2]*dpvdri[2][2])/nn; - // derivatives of unit vector ni respect to ri, the result is 3x3 matrix - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormdri[id][ip][i] = dpvdri[id][ip]/nn - n1[id]*dni[ip]/nn2; - } - } - // derivatives of non-normalized normal vector, dn1:3x3x3 array - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - for (m = 0; m < 3; m++){ - dn1[id][ip][m] = dpv12[id][ip][m]; - } - } - } - // derivatives of nn, dnn:3x3 vector - // dnn[id][m]: the derivative of nn respect to r[id][m], id,m=0,1,2 - // r[id][m]: the id's component of atom m - for (m = 0; m < 3; m++){ - for (id = 0; id < 3; id++){ - dnn[id][m] = (n1[0]*dn1[0][id][m] + n1[1]*dn1[1][id][m] + n1[2]*dn1[2][id][m])/nn; - } - } - // dnormal[id][ip][m][i]: the derivative of normal[id] respect to r[ip][m], id,ip=0,1,2 - // for atom m, which is a neighbor atom of atom i, m=0,jnum-1 - for (m = 0; m < 3; m++){ - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormal[id][ip][m][i] = dn1[id][ip][m]/nn - n1[id]*dnn[ip][m]/nn2; - } - } - } - } -//############################################################################################## - - else if(cont == 3) { - pv12[0] = vet[0][1]*vet[1][2] - vet[1][1]*vet[0][2]; - pv12[1] = vet[0][2]*vet[1][0] - vet[1][2]*vet[0][0]; - pv12[2] = vet[0][0]*vet[1][1] - vet[1][0]*vet[0][1]; - // derivatives respect to the first neighbor, atom k - dpv12[0][0][0] = 0.0; - dpv12[0][1][0] = vet[1][2]; - dpv12[0][2][0] = -vet[1][1]; - dpv12[1][0][0] = -vet[1][2]; - dpv12[1][1][0] = 0.0; - dpv12[1][2][0] = vet[1][0]; - dpv12[2][0][0] = vet[1][1]; - dpv12[2][1][0] = -vet[1][0]; - dpv12[2][2][0] = 0.0; - // derivatives respect to the second neighbor, atom l - dpv12[0][0][1] = 0.0; - dpv12[0][1][1] = -vet[0][2]; - dpv12[0][2][1] = vet[0][1]; - dpv12[1][0][1] = vet[0][2]; - dpv12[1][1][1] = 0.0; - dpv12[1][2][1] = -vet[0][0]; - dpv12[2][0][1] = -vet[0][1]; - dpv12[2][1][1] = vet[0][0]; - dpv12[2][2][1] = 0.0; - - // derivatives respect to the third neighbor, atom n - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dpv12[id][ip][2] = 0.0; - } - } - - pv31[0] = vet[2][1]*vet[0][2] - vet[0][1]*vet[2][2]; - pv31[1] = vet[2][2]*vet[0][0] - vet[0][2]*vet[2][0]; - pv31[2] = vet[2][0]*vet[0][1] - vet[0][0]*vet[2][1]; - // derivatives respect to the first neighbor, atom k - dpv31[0][0][0] = 0.0; - dpv31[0][1][0] = -vet[2][2]; - dpv31[0][2][0] = vet[2][1]; - dpv31[1][0][0] = vet[2][2]; - dpv31[1][1][0] = 0.0; - dpv31[1][2][0] = -vet[2][0]; - dpv31[2][0][0] = -vet[2][1]; - dpv31[2][1][0] = vet[2][0]; - dpv31[2][2][0] = 0.0; - // derivatives respect to the third neighbor, atom n - dpv31[0][0][2] = 0.0; - dpv31[0][1][2] = vet[0][2]; - dpv31[0][2][2] = -vet[0][1]; - dpv31[1][0][2] = -vet[0][2]; - dpv31[1][1][2] = 0.0; - dpv31[1][2][2] = vet[0][0]; - dpv31[2][0][2] = vet[0][1]; - dpv31[2][1][2] = -vet[0][0]; - dpv31[2][2][2] = 0.0; - // derivatives respect to the second neighbor, atom l - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dpv31[id][ip][1] = 0.0; - } - } - - pv23[0] = vet[1][1]*vet[2][2] - vet[2][1]*vet[1][2]; - pv23[1] = vet[1][2]*vet[2][0] - vet[2][2]*vet[1][0]; - pv23[2] = vet[1][0]*vet[2][1] - vet[2][0]*vet[1][1]; - // derivatives respect to the second neighbor, atom k - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dpv23[id][ip][0] = 0.0; - } - } - // derivatives respect to the second neighbor, atom l - dpv23[0][0][1] = 0.0; - dpv23[0][1][1] = vet[2][2]; - dpv23[0][2][1] = -vet[2][1]; - dpv23[1][0][1] = -vet[2][2]; - dpv23[1][1][1] = 0.0; - dpv23[1][2][1] = vet[2][0]; - dpv23[2][0][1] = vet[2][1]; - dpv23[2][1][1] = -vet[2][0]; - dpv23[2][2][1] = 0.0; - // derivatives respect to the third neighbor, atom n - dpv23[0][0][2] = 0.0; - dpv23[0][1][2] = -vet[1][2]; - dpv23[0][2][2] = vet[1][1]; - dpv23[1][0][2] = vet[1][2]; - dpv23[1][1][2] = 0.0; - dpv23[1][2][2] = -vet[1][0]; - dpv23[2][0][2] = -vet[1][1]; - dpv23[2][1][2] = vet[1][0]; - dpv23[2][2][2] = 0.0; - -//############################################################################################ - // average the normal vectors by using the 3 neighboring planes - n1[0] = (pv12[0] + pv31[0] + pv23[0])/cont; - n1[1] = (pv12[1] + pv31[1] + pv23[1])/cont; - n1[2] = (pv12[2] + pv31[2] + pv23[2])/cont; - // the magnitude of the normal vector - nn2 = n1[0]*n1[0] + n1[1]*n1[1] + n1[2]*n1[2]; - nn = sqrt(nn2); - if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero"); - // the unit normal vector - normal[i][0] = n1[0]/nn; - normal[i][1] = n1[1]/nn; - normal[i][2] = n1[2]/nn; - - // for the central atoms, dnormdri is always zero - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormdri[id][ip][i] = 0.0; - } - } - - // derivatives of non-normalized normal vector, dn1:3x3x3 array - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - for (m = 0; m < 3; m++){ - dn1[id][ip][m] = (dpv12[id][ip][m] + dpv23[id][ip][m] + dpv31[id][ip][m])/cont; - } - } - } - // derivatives of nn, dnn:3x3 vector - // dnn[id][m]: the derivative of nn respect to r[id][m], id,m=0,1,2 - // r[id][m]: the id's component of atom m - for (m = 0; m < 3; m++){ - for (id = 0; id < 3; id++){ - dnn[id][m] = (n1[0]*dn1[0][id][m] + n1[1]*dn1[1][id][m] + n1[2]*dn1[2][id][m])/nn; - } - } - // dnormal[id][ip][m][i]: the derivative of normal[id] respect to r[ip][m], id,ip=0,1,2 - // for atom m, which is a neighbor atom of atom i, m=0,jnum-1 - for (m = 0; m < 3; m++){ - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormal[id][ip][m][i] = dn1[id][ip][m]/nn - n1[id]*dnn[ip][m]/nn2; - } - } - } - } - else { - error->one(FLERR,"There are too many neighbors for calculating normals"); - } - -//############################################################################################## - } -} - -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -void PairILPGrapheneHBN::init_style() -{ - if (force->newton_pair == 0) - error->all(FLERR,"Pair style ilp/graphene/hbn requires newton pair on"); - if (!atom->molecule_flag) - error->all(FLERR,"Pair style ilp/graphene/hbn requires atom attribute molecule"); - - // need a full neighbor list, including neighbors of ghosts - - int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->half = 0; - neighbor->requests[irequest]->full = 1; - neighbor->requests[irequest]->ghost = 1; - - // local ILP neighbor list - // create pages if first time or if neighbor pgsize/oneatom has changed - - int create = 0; - if (ipage == NULL) create = 1; - if (pgsize != neighbor->pgsize) create = 1; - if (oneatom != neighbor->oneatom) create = 1; - - if (create) { - delete [] ipage; - pgsize = neighbor->pgsize; - oneatom = neighbor->oneatom; - - int nmypage= comm->nthreads; - ipage = new MyPage[nmypage]; - for (int i = 0; i < nmypage; i++) - ipage[i].init(oneatom,pgsize,PGDELTA); - } -} - - -/* ---------------------------------------------------------------------- - create ILP neighbor list from main neighbor list to calcualte normals -------------------------------------------------------------------------- */ - -void PairILPGrapheneHBN::ILP_neigh() -{ - int i,j,ii,jj,n,allnum,jnum,itype,jtype; - double xtmp,ytmp,ztmp,delx,dely,delz,rsq; - int *ilist,*jlist,*numneigh,**firstneigh; - int *neighptr; - - double **x = atom->x; - int *type = atom->type; - - if (atom->nmax > maxlocal) { - maxlocal = atom->nmax; - memory->destroy(ILP_numneigh); - memory->sfree(ILP_firstneigh); - memory->create(ILP_numneigh,maxlocal,"ILPGrapheneHBN:numneigh"); - ILP_firstneigh = (int **) memory->smalloc(maxlocal*sizeof(int *),"ILPGrapheneHBN:firstneigh"); - } - - allnum = list->inum + list->gnum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - - // store all ILP neighs of owned and ghost atoms - // scan full neighbor list of I - - ipage->reset(); - - for (ii = 0; ii < allnum; ii++) { - i = ilist[ii]; - - n = 0; - neighptr = ipage->vget(); - - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = map[type[i]]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - jtype = map[type[j]]; - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - - if (rsq != 0 && rsq < cutILPsq[itype][jtype] && atom->molecule[i] == atom->molecule[j]) { - neighptr[n++] = j; - } - } - - ILP_firstneigh[i] = neighptr; - ILP_numneigh[i] = n; - if (n > 3) error->one(FLERR,"There are too many neighbors for some atoms, please check your configuration"); - ipage->vgot(n); - if (ipage->status()) - error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); - } -} - - /* ---------------------------------------------------------------------- allocate all arrays ------------------------------------------------------------------------- */ @@ -1027,6 +387,712 @@ void PairILPGrapheneHBN::read_file(char *filename) delete [] words; } +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairILPGrapheneHBN::init_style() +{ + if (force->newton_pair == 0) + error->all(FLERR,"Pair style ilp/graphene/hbn requires newton pair on"); + if (!atom->molecule_flag) + error->all(FLERR,"Pair style ilp/graphene/hbn requires atom attribute molecule"); + + // need a full neighbor list, including neighbors of ghosts + + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; + neighbor->requests[irequest]->ghost = 1; + + // local ILP neighbor list + // create pages if first time or if neighbor pgsize/oneatom has changed + + int create = 0; + if (ipage == NULL) create = 1; + if (pgsize != neighbor->pgsize) create = 1; + if (oneatom != neighbor->oneatom) create = 1; + + if (create) { + delete [] ipage; + pgsize = neighbor->pgsize; + oneatom = neighbor->oneatom; + + int nmypage= comm->nthreads; + ipage = new MyPage[nmypage]; + for (int i = 0; i < nmypage; i++) + ipage[i].init(oneatom,pgsize,PGDELTA); + } +} + +/* ---------------------------------------------------------------------- */ +void PairILPGrapheneHBN::compute(int eflag, int vflag) +{ + ev_init(eflag,vflag); + pvector[0] = pvector[1] = 0.0; + + // Build full neighbor list + ILP_neigh(); + // Calculate the normals and its derivatives + calc_normal(); + // Calculate the van der Waals force and energy + calc_FvdW(eflag,vflag); + // Calculate the repulsive force and energy + calc_FRep(eflag,vflag); + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- + van der Waals forces and energy +------------------------------------------------------------------------- */ + +void PairILPGrapheneHBN::calc_FvdW(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype,k,l,kk,ll; + tagint itag,jtag; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; + double rsq,r,Rcut,r2inv,r6inv,r8inv,Tap,dTap,Vilp,TSvdw,TSvdw2inv,fsum; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = 0.0; + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + tagint *tag = atom->tag; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // loop over neighbors of my atoms + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + itag = tag[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + jtype = type[j]; + jtag = tag[j]; + + // two-body interactions from full neighbor list, skip half of them + if (itag > jtag) { + if ((itag+jtag) % 2 == 0) continue; + } else if (itag < jtag) { + if ((itag+jtag) % 2 == 1) continue; + } else { + if (x[j][2] < ztmp) continue; + if (x[j][2] == ztmp && x[j][1] < ytmp) continue; + if (x[j][2] == ztmp && x[j][1] == ytmp && x[j][0] < xtmp) continue; + } + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + // only include the interation between different layers + if (rsq < cutsq[itype][jtype] && atom->molecule[i] != atom->molecule[j]) { + + int iparam_ij = elem2param[map[itype]][map[jtype]]; + Param& p = params[iparam_ij]; + + r = sqrt(rsq); + r2inv = 1.0/rsq; + r6inv = r2inv*r2inv*r2inv; + r8inv = r6inv*r2inv; + // turn on/off taper function + if (tap_flag) { + Rcut = sqrt(cutsq[itype][jtype]); + Tap = calc_Tap(r,Rcut); + dTap = calc_dTap(r,Rcut); + } else {Tap = 1.0; dTap = 0.0;} + + TSvdw = 1.0 + exp(-p.d*(r/p.seff - 1.0)); + TSvdw2inv = pow(TSvdw,-2.0); + Vilp = -p.C6*r6inv/TSvdw; + + // derivatives + fpair = -6.0*p.C6*r8inv/TSvdw + p.C6*p.d/p.seff*(TSvdw-1.0)*TSvdw2inv*r8inv*r; + fsum = fpair*Tap - Vilp*dTap/r; + + f[i][0] += fsum*delx; + f[i][1] += fsum*dely; + f[i][2] += fsum*delz; + f[j][0] -= fsum*delx; + f[j][1] -= fsum*dely; + f[j][2] -= fsum*delz; + + if (eflag) pvector[0] += evdwl = Vilp*Tap; + if (evflag) ev_tally(i,j,nlocal,newton_pair, + evdwl,0.0,fsum,delx,dely,delz); + } + } + } +} + +/* ---------------------------------------------------------------------- + Repulsive forces and energy +------------------------------------------------------------------------- */ + +void PairILPGrapheneHBN::calc_FRep(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype,k,kk; + double prodnorm1,fkcx,fkcy,fkcz; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair,fpair1; + double rsq,r,Rcut,rhosq1,exp0,exp1,r2inv,r6inv,r8inv,Tap,dTap,Vilp; + double frho1,TSvdw,TSvdw2inv,Erep,fsum,rdsq1; + int *ilist,*jlist,*numneigh,**firstneigh; + int *ILP_neighs_i,*ILP_neighs_j; + + evdwl = 0.0; + + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + double dprodnorm1[3] = {0.0, 0.0, 0.0}; + double fp1[3] = {0.0, 0.0, 0.0}; + double fprod1[3] = {0.0, 0.0, 0.0}; + double delkj[3] = {0.0, 0.0, 0.0}; + double fk[3] = {0.0, 0.0, 0.0}; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + //calculate exp(-lambda*(r-z0))*[epsilon/2 + f(rho_ij)] + // loop over neighbors of owned atoms + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + if (ILP_numneigh[i] == -1) { + continue; + } + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + if (ILP_numneigh[j] == -1) { + continue; + } + jtype = type[j]; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + // only include the interation between different layers + if (rsq < cutsq[itype][jtype] && atom->molecule[i] != atom->molecule[j]) { + + int iparam_ij = elem2param[map[itype]][map[jtype]]; + Param& p = params[iparam_ij]; + + r = sqrt(rsq); + // turn on/off taper function + if (tap_flag) { + Rcut = sqrt(cutsq[itype][jtype]); + Tap = calc_Tap(r,Rcut); + dTap = calc_dTap(r,Rcut); + } else {Tap = 1.0; dTap = 0.0;} + + // Calculate the transverse distance + prodnorm1 = normal[i][0]*delx + normal[i][1]*dely + normal[i][2]*delz; + rhosq1 = rsq - prodnorm1*prodnorm1; // rho_ij + rdsq1 = rhosq1*p.delta2inv; // (rho_ij/delta)^2 + + // store exponents + exp0 = exp(-p.lambda*(r-p.z0)); + exp1 = exp(-rdsq1); + + frho1 = exp1*p.C; + Erep = 0.5*p.epsilon + frho1; + Vilp = exp0*Erep; + + // derivatives + fpair = p.lambda*exp0/r*Erep; + fpair1 = 2.0*exp0*frho1*p.delta2inv; + fsum = fpair + fpair1; + // derivatives of the product of rij and ni, the result is a vector + dprodnorm1[0] = dnormdri[0][0][i]*delx + dnormdri[1][0][i]*dely + dnormdri[2][0][i]*delz; + dprodnorm1[1] = dnormdri[0][1][i]*delx + dnormdri[1][1][i]*dely + dnormdri[2][1][i]*delz; + dprodnorm1[2] = dnormdri[0][2][i]*delx + dnormdri[1][2][i]*dely + dnormdri[2][2][i]*delz; + fp1[0] = prodnorm1*normal[i][0]*fpair1; + fp1[1] = prodnorm1*normal[i][1]*fpair1; + fp1[2] = prodnorm1*normal[i][2]*fpair1; + fprod1[0] = prodnorm1*dprodnorm1[0]*fpair1; + fprod1[1] = prodnorm1*dprodnorm1[1]*fpair1; + fprod1[2] = prodnorm1*dprodnorm1[2]*fpair1; + + fkcx = (delx*fsum - fp1[0])*Tap - Vilp*dTap*delx/r; + fkcy = (dely*fsum - fp1[1])*Tap - Vilp*dTap*dely/r; + fkcz = (delz*fsum - fp1[2])*Tap - Vilp*dTap*delz/r; + + f[i][0] += fkcx - fprod1[0]*Tap; + f[i][1] += fkcy - fprod1[1]*Tap; + f[i][2] += fkcz - fprod1[2]*Tap; + f[j][0] -= fkcx; + f[j][1] -= fkcy; + f[j][2] -= fkcz; + + // calculate the forces acted on the neighbors of atom i from atom j + ILP_neighs_i = ILP_firstneigh[i]; + for (kk = 0; kk < ILP_numneigh[i]; kk++) { + k = ILP_neighs_i[kk]; + if (k == i) continue; + // derivatives of the product of rij and ni respect to rk, k=0,1,2, where atom k is the neighbors of atom i + dprodnorm1[0] = dnormal[0][0][kk][i]*delx + dnormal[1][0][kk][i]*dely + dnormal[2][0][kk][i]*delz; + dprodnorm1[1] = dnormal[0][1][kk][i]*delx + dnormal[1][1][kk][i]*dely + dnormal[2][1][kk][i]*delz; + dprodnorm1[2] = dnormal[0][2][kk][i]*delx + dnormal[1][2][kk][i]*dely + dnormal[2][2][kk][i]*delz; + fk[0] = (-prodnorm1*dprodnorm1[0]*fpair1)*Tap; + fk[1] = (-prodnorm1*dprodnorm1[1]*fpair1)*Tap; + fk[2] = (-prodnorm1*dprodnorm1[2]*fpair1)*Tap; + f[k][0] += fk[0]; + f[k][1] += fk[1]; + f[k][2] += fk[2]; + delkj[0] = x[k][0] - x[j][0]; + delkj[1] = x[k][1] - x[j][1]; + delkj[2] = x[k][2] - x[j][2]; + if (evflag) ev_tally_xyz(k,j,nlocal,newton_pair,0.0,0.0,fk[0],fk[1],fk[2],delkj[0],delkj[1],delkj[2]); + } + + if (eflag) pvector[1] += evdwl = Tap*Vilp; + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0.0,fkcx,fkcy,fkcz,delx,dely,delz); + } + } // loop over jj + } // loop over ii +} + +/* ---------------------------------------------------------------------- + create ILP neighbor list from main neighbor list to calcualte normals +------------------------------------------------------------------------- */ + +void PairILPGrapheneHBN::ILP_neigh() +{ + int i,j,ii,jj,n,allnum,inum,jnum,itype,jtype; + double xtmp,ytmp,ztmp,delx,dely,delz,rsq; + int *ilist,*jlist,*numneigh,**firstneigh; + int *neighptr; + + double **x = atom->x; + int *type = atom->type; + + if (atom->nmax > maxlocal) { + maxlocal = atom->nmax; + memory->destroy(ILP_numneigh); + memory->sfree(ILP_firstneigh); + memory->create(ILP_numneigh,maxlocal,"ILPGrapheneHBN:numneigh"); + ILP_firstneigh = (int **) memory->smalloc(maxlocal*sizeof(int *),"ILPGrapheneHBN:firstneigh"); + } + + inum = list->inum; + allnum = list->inum + list->gnum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // store all ILP neighs of owned and ghost atoms + // scan full neighbor list of I + + ipage->reset(); + + for (ii = 0; ii < allnum; ii++) { + i = ilist[ii]; + + n = 0; + neighptr = ipage->vget(); + + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = map[type[i]]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + jtype = map[type[j]]; + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + if (rsq != 0 && rsq < cutILPsq[itype][jtype] && atom->molecule[i] == atom->molecule[j]) { + neighptr[n++] = j; + } + } // loop over jj + + ILP_firstneigh[i] = neighptr; + if (n == 3) { + ILP_numneigh[i] = n; + } + else if (n < 3) { + if (i < inum) { + ILP_numneigh[i] = n; + } else { + ILP_numneigh[i] = -1; + } + } + else if (n > 3) error->one(FLERR,"There are too many neighbors for some atoms, please check your configuration"); + + ipage->vgot(n); + if (ipage->status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } +} + +/* ---------------------------------------------------------------------- + Calculate the normals for each atom +------------------------------------------------------------------------- */ +void PairILPGrapheneHBN::calc_normal() +{ + int i,j,ii,jj,inum,jnum; + int cont,id,ip,m; + double nn,xtp,ytp,ztp,delx,dely,delz,nn2; + int *ilist,*jlist; + double pv12[3],pv31[3],pv23[3],n1[3],dni[3],dnn[3][3],vet[3][3],dpvdri[3][3]; + double dn1[3][3][3],dpv12[3][3][3],dpv23[3][3][3],dpv31[3][3][3]; + + double **x = atom->x; + + // grow normal array if necessary + + if (atom->nmax > nmax) { + memory->destroy(normal); + memory->destroy(dnormal); + memory->destroy(dnormdri); + nmax = atom->nmax; + memory->create(normal,nmax,3,"ILPGrapheneHBN:normal"); + memory->create(dnormdri,3,3,nmax,"ILPGrapheneHBN:dnormdri"); + memory->create(dnormal,3,3,3,nmax,"ILPGrapheneHBN:dnormal"); + } + + inum = list->inum; + ilist = list->ilist; + //Calculate normals + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + + // Initialize the arrays + for (id = 0; id < 3; id++){ + pv12[id] = 0.0; + pv31[id] = 0.0; + pv23[id] = 0.0; + n1[id] = 0.0; + dni[id] = 0.0; + normal[i][id] = 0.0; + for (ip = 0; ip < 3; ip++){ + vet[ip][id] = 0.0; + dnn[ip][id] = 0.0; + dpvdri[ip][id] = 0.0; + dnormdri[ip][id][i] = 0.0; + for (m = 0; m < 3; m++){ + dpv12[ip][id][m] = 0.0; + dpv31[ip][id][m] = 0.0; + dpv23[ip][id][m] = 0.0; + dn1[ip][id][m] = 0.0; + dnormal[ip][id][m][i] = 0.0; + } + } + } + + if (ILP_numneigh[i] == -1) { + continue; + } + xtp = x[i][0]; + ytp = x[i][1]; + ztp = x[i][2]; + + cont = 0; + jlist = ILP_firstneigh[i]; + jnum = ILP_numneigh[i]; + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = x[j][0] - xtp; + dely = x[j][1] - ytp; + delz = x[j][2] - ztp; + vet[cont][0] = delx; + vet[cont][1] = dely; + vet[cont][2] = delz; + cont++; + } + + if (cont <= 1) { + normal[i][0] = 0.0; + normal[i][1] = 0.0; + normal[i][2] = 1.0; + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dnormdri[id][ip][i] = 0.0; + for (m = 0; m < 3; m++){ + dnormal[id][ip][m][i] = 0.0; + } + } + } + } + else if (cont == 2) { + pv12[0] = vet[0][1]*vet[1][2] - vet[1][1]*vet[0][2]; + pv12[1] = vet[0][2]*vet[1][0] - vet[1][2]*vet[0][0]; + pv12[2] = vet[0][0]*vet[1][1] - vet[1][0]*vet[0][1]; + // derivatives of pv12[0] to ri + dpvdri[0][0] = 0.0; + dpvdri[0][1] = vet[0][2]-vet[1][2]; + dpvdri[0][2] = vet[1][1]-vet[0][1]; + // derivatives of pv12[1] to ri + dpvdri[1][0] = vet[1][2]-vet[0][2]; + dpvdri[1][1] = 0.0; + dpvdri[1][2] = vet[0][0]-vet[1][0]; + // derivatives of pv12[2] to ri + dpvdri[2][0] = vet[0][1]-vet[1][1]; + dpvdri[2][1] = vet[1][0]-vet[0][0]; + dpvdri[2][2] = 0.0; + + dpv12[0][0][0] = 0.0; + dpv12[0][1][0] = vet[1][2]; + dpv12[0][2][0] = -vet[1][1]; + dpv12[1][0][0] = -vet[1][2]; + dpv12[1][1][0] = 0.0; + dpv12[1][2][0] = vet[1][0]; + dpv12[2][0][0] = vet[1][1]; + dpv12[2][1][0] = -vet[1][0]; + dpv12[2][2][0] = 0.0; + + // derivatives respect to the second neighbor, atom l + dpv12[0][0][1] = 0.0; + dpv12[0][1][1] = -vet[0][2]; + dpv12[0][2][1] = vet[0][1]; + dpv12[1][0][1] = vet[0][2]; + dpv12[1][1][1] = 0.0; + dpv12[1][2][1] = -vet[0][0]; + dpv12[2][0][1] = -vet[0][1]; + dpv12[2][1][1] = vet[0][0]; + dpv12[2][2][1] = 0.0; + + // derivatives respect to the third neighbor, atom n + // derivatives of pv12 to rn is zero + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dpv12[id][ip][2] = 0.0; + } + } + + n1[0] = pv12[0]; + n1[1] = pv12[1]; + n1[2] = pv12[2]; + // the magnitude of the normal vector + nn2 = n1[0]*n1[0] + n1[1]*n1[1] + n1[2]*n1[2]; + nn = sqrt(nn2); + if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero"); + // the unit normal vector + normal[i][0] = n1[0]/nn; + normal[i][1] = n1[1]/nn; + normal[i][2] = n1[2]/nn; + // derivatives of nn, dnn:3x1 vector + dni[0] = (n1[0]*dpvdri[0][0] + n1[1]*dpvdri[1][0] + n1[2]*dpvdri[2][0])/nn; + dni[1] = (n1[0]*dpvdri[0][1] + n1[1]*dpvdri[1][1] + n1[2]*dpvdri[2][1])/nn; + dni[2] = (n1[0]*dpvdri[0][2] + n1[1]*dpvdri[1][2] + n1[2]*dpvdri[2][2])/nn; + // derivatives of unit vector ni respect to ri, the result is 3x3 matrix + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dnormdri[id][ip][i] = dpvdri[id][ip]/nn - n1[id]*dni[ip]/nn2; + } + } + // derivatives of non-normalized normal vector, dn1:3x3x3 array + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + for (m = 0; m < 3; m++){ + dn1[id][ip][m] = dpv12[id][ip][m]; + } + } + } + // derivatives of nn, dnn:3x3 vector + // dnn[id][m]: the derivative of nn respect to r[id][m], id,m=0,1,2 + // r[id][m]: the id's component of atom m + for (m = 0; m < 3; m++){ + for (id = 0; id < 3; id++){ + dnn[id][m] = (n1[0]*dn1[0][id][m] + n1[1]*dn1[1][id][m] + n1[2]*dn1[2][id][m])/nn; + } + } + // dnormal[id][ip][m][i]: the derivative of normal[id] respect to r[ip][m], id,ip=0,1,2 + // for atom m, which is a neighbor atom of atom i, m=0,jnum-1 + for (m = 0; m < 3; m++){ + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dnormal[id][ip][m][i] = dn1[id][ip][m]/nn - n1[id]*dnn[ip][m]/nn2; + } + } + } + } +//############################################################################################## + + else if(cont == 3) { + pv12[0] = vet[0][1]*vet[1][2] - vet[1][1]*vet[0][2]; + pv12[1] = vet[0][2]*vet[1][0] - vet[1][2]*vet[0][0]; + pv12[2] = vet[0][0]*vet[1][1] - vet[1][0]*vet[0][1]; + // derivatives respect to the first neighbor, atom k + dpv12[0][0][0] = 0.0; + dpv12[0][1][0] = vet[1][2]; + dpv12[0][2][0] = -vet[1][1]; + dpv12[1][0][0] = -vet[1][2]; + dpv12[1][1][0] = 0.0; + dpv12[1][2][0] = vet[1][0]; + dpv12[2][0][0] = vet[1][1]; + dpv12[2][1][0] = -vet[1][0]; + dpv12[2][2][0] = 0.0; + // derivatives respect to the second neighbor, atom l + dpv12[0][0][1] = 0.0; + dpv12[0][1][1] = -vet[0][2]; + dpv12[0][2][1] = vet[0][1]; + dpv12[1][0][1] = vet[0][2]; + dpv12[1][1][1] = 0.0; + dpv12[1][2][1] = -vet[0][0]; + dpv12[2][0][1] = -vet[0][1]; + dpv12[2][1][1] = vet[0][0]; + dpv12[2][2][1] = 0.0; + + // derivatives respect to the third neighbor, atom n + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dpv12[id][ip][2] = 0.0; + } + } + + pv31[0] = vet[2][1]*vet[0][2] - vet[0][1]*vet[2][2]; + pv31[1] = vet[2][2]*vet[0][0] - vet[0][2]*vet[2][0]; + pv31[2] = vet[2][0]*vet[0][1] - vet[0][0]*vet[2][1]; + // derivatives respect to the first neighbor, atom k + dpv31[0][0][0] = 0.0; + dpv31[0][1][0] = -vet[2][2]; + dpv31[0][2][0] = vet[2][1]; + dpv31[1][0][0] = vet[2][2]; + dpv31[1][1][0] = 0.0; + dpv31[1][2][0] = -vet[2][0]; + dpv31[2][0][0] = -vet[2][1]; + dpv31[2][1][0] = vet[2][0]; + dpv31[2][2][0] = 0.0; + // derivatives respect to the third neighbor, atom n + dpv31[0][0][2] = 0.0; + dpv31[0][1][2] = vet[0][2]; + dpv31[0][2][2] = -vet[0][1]; + dpv31[1][0][2] = -vet[0][2]; + dpv31[1][1][2] = 0.0; + dpv31[1][2][2] = vet[0][0]; + dpv31[2][0][2] = vet[0][1]; + dpv31[2][1][2] = -vet[0][0]; + dpv31[2][2][2] = 0.0; + // derivatives respect to the second neighbor, atom l + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dpv31[id][ip][1] = 0.0; + } + } + + pv23[0] = vet[1][1]*vet[2][2] - vet[2][1]*vet[1][2]; + pv23[1] = vet[1][2]*vet[2][0] - vet[2][2]*vet[1][0]; + pv23[2] = vet[1][0]*vet[2][1] - vet[2][0]*vet[1][1]; + // derivatives respect to the second neighbor, atom k + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dpv23[id][ip][0] = 0.0; + } + } + // derivatives respect to the second neighbor, atom l + dpv23[0][0][1] = 0.0; + dpv23[0][1][1] = vet[2][2]; + dpv23[0][2][1] = -vet[2][1]; + dpv23[1][0][1] = -vet[2][2]; + dpv23[1][1][1] = 0.0; + dpv23[1][2][1] = vet[2][0]; + dpv23[2][0][1] = vet[2][1]; + dpv23[2][1][1] = -vet[2][0]; + dpv23[2][2][1] = 0.0; + // derivatives respect to the third neighbor, atom n + dpv23[0][0][2] = 0.0; + dpv23[0][1][2] = -vet[1][2]; + dpv23[0][2][2] = vet[1][1]; + dpv23[1][0][2] = vet[1][2]; + dpv23[1][1][2] = 0.0; + dpv23[1][2][2] = -vet[1][0]; + dpv23[2][0][2] = -vet[1][1]; + dpv23[2][1][2] = vet[1][0]; + dpv23[2][2][2] = 0.0; + +//############################################################################################ + // average the normal vectors by using the 3 neighboring planes + n1[0] = (pv12[0] + pv31[0] + pv23[0])/cont; + n1[1] = (pv12[1] + pv31[1] + pv23[1])/cont; + n1[2] = (pv12[2] + pv31[2] + pv23[2])/cont; + // the magnitude of the normal vector + nn2 = n1[0]*n1[0] + n1[1]*n1[1] + n1[2]*n1[2]; + nn = sqrt(nn2); + if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero"); + // the unit normal vector + normal[i][0] = n1[0]/nn; + normal[i][1] = n1[1]/nn; + normal[i][2] = n1[2]/nn; + + // for the central atoms, dnormdri is always zero + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dnormdri[id][ip][i] = 0.0; + } + } + + // derivatives of non-normalized normal vector, dn1:3x3x3 array + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + for (m = 0; m < 3; m++){ + dn1[id][ip][m] = (dpv12[id][ip][m] + dpv23[id][ip][m] + dpv31[id][ip][m])/cont; + } + } + } + // derivatives of nn, dnn:3x3 vector + // dnn[id][m]: the derivative of nn respect to r[id][m], id,m=0,1,2 + // r[id][m]: the id's component of atom m + for (m = 0; m < 3; m++){ + for (id = 0; id < 3; id++){ + dnn[id][m] = (n1[0]*dn1[0][id][m] + n1[1]*dn1[1][id][m] + n1[2]*dn1[2][id][m])/nn; + } + } + // dnormal[id][ip][m][i]: the derivative of normal[id] respect to r[ip][m], id,ip=0,1,2 + // for atom m, which is a neighbor atom of atom i, m=0,jnum-1 + for (m = 0; m < 3; m++){ + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dnormal[id][ip][m][i] = dn1[id][ip][m]/nn - n1[id]*dnn[ip][m]/nn2; + } + } + } + } + else { + error->one(FLERR,"There are too many neighbors for calculating normals"); + } + +//############################################################################################## + } +} + /* ---------------------------------------------------------------------- */ double PairILPGrapheneHBN::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, @@ -1061,70 +1127,3 @@ double PairILPGrapheneHBN::single(int /*i*/, int /*j*/, int itype, int jtype, do philj = Vilp*Tap; return factor_lj*philj; } - - -/* ---------------------------------------------------------------------- */ - -int PairILPGrapheneHBN::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int * /*pbc*/) -{ - int i,j,m,id,ip,l; - - m = 0; - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = normal[j][0]; - buf[m++] = normal[j][1]; - buf[m++] = normal[j][2]; - buf[m++] = dnormdri[0][0][j]; - buf[m++] = dnormdri[0][1][j]; - buf[m++] = dnormdri[0][2][j]; - buf[m++] = dnormdri[1][0][j]; - buf[m++] = dnormdri[1][1][j]; - buf[m++] = dnormdri[1][2][j]; - buf[m++] = dnormdri[2][0][j]; - buf[m++] = dnormdri[2][1][j]; - buf[m++] = dnormdri[2][2][j]; - for (l = 0; l < 3; l++){ - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - buf[m++] = dnormal[id][ip][l][j]; - } - } - } - } - return m; -} - -/* ---------------------------------------------------------------------- */ - -void PairILPGrapheneHBN::unpack_forward_comm(int n, int first, double *buf) -{ - int i,m,last,id,ip,l; - - m = 0; - last = first + n; - for (i = first; i < last; i++) { - normal[i][0] = buf[m++]; - normal[i][1] = buf[m++]; - normal[i][2] = buf[m++]; - dnormdri[0][0][i] = buf[m++]; - dnormdri[0][1][i] = buf[m++]; - dnormdri[0][2][i] = buf[m++]; - dnormdri[1][0][i] = buf[m++]; - dnormdri[1][1][i] = buf[m++]; - dnormdri[1][2][i] = buf[m++]; - dnormdri[2][0][i] = buf[m++]; - dnormdri[2][1][i] = buf[m++]; - dnormdri[2][2][i] = buf[m++]; - for (l = 0; l < 3; l++){ - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormal[id][ip][l][i] = buf[m++]; - } - } - } - } -} - -/* ---------------------------------------------------------------------- */ diff --git a/src/USER-MISC/pair_ilp_graphene_hbn.h b/src/USER-MISC/pair_ilp_graphene_hbn.h index ae4662cdc5..32bee4a10f 100644 --- a/src/USER-MISC/pair_ilp_graphene_hbn.h +++ b/src/USER-MISC/pair_ilp_graphene_hbn.h @@ -21,6 +21,8 @@ PairStyle(ilp/graphene/hbn,PairILPGrapheneHBN) #define LMP_PAIR_ILP_GRAPHENE_HBN_H #include "pair.h" +#include "my_page.h" +#include namespace LAMMPS_NS { @@ -34,9 +36,10 @@ class PairILPGrapheneHBN : public Pair { void coeff(int, char **); double init_one(int, int); void init_style(); + void ILP_neigh(); void calc_normal(); - int pack_forward_comm(int, int *, double *, int, int *); - void unpack_forward_comm(int, int, double *); + void calc_FRep(int, int); + void calc_FvdW(int, int); double single(int, int, int, int, double, double, double, double &); protected: @@ -74,7 +77,6 @@ class PairILPGrapheneHBN : public Pair { void read_file( char * ); void allocate(); - void ILP_neigh(); /* ----Calculate the long-range cutoff term */ inline double calc_Tap(double r_ij, double Rcut) { diff --git a/src/USER-MISC/pair_kolmogorov_crespi_full.cpp b/src/USER-MISC/pair_kolmogorov_crespi_full.cpp index 0009531ca8..bfebb0c553 100644 --- a/src/USER-MISC/pair_kolmogorov_crespi_full.cpp +++ b/src/USER-MISC/pair_kolmogorov_crespi_full.cpp @@ -20,11 +20,12 @@ [Kolmogorov & Crespi, Phys. Rev. B 71, 235415 (2005)] ------------------------------------------------------------------------- */ -#include "pair_kolmogorov_crespi_full.h" #include +#include #include #include #include +#include "pair_kolmogorov_crespi_full.h" #include "atom.h" #include "comm.h" #include "force.h" @@ -48,6 +49,9 @@ PairKolmogorovCrespiFull::PairKolmogorovCrespiFull(LAMMPS *lmp) : Pair(lmp) restartinfo = 0; one_coeff = 1; + nextra = 2; + pvector = new double[nextra]; + // initialize element to parameter maps nelements = 0; elements = NULL; @@ -71,8 +75,7 @@ PairKolmogorovCrespiFull::PairKolmogorovCrespiFull(LAMMPS *lmp) : Pair(lmp) // always compute energy offset offset_flag = 1; - // set comm size needed by this Pair - comm_forward = 39; + // turn on the taper function tap_flag = 0; } @@ -83,6 +86,7 @@ PairKolmogorovCrespiFull::~PairKolmogorovCrespiFull() memory->destroy(KC_numneigh); memory->sfree(KC_firstneigh); delete [] ipage; + delete [] pvector; memory->destroy(normal); memory->destroy(dnormal); memory->destroy(dnormdri); @@ -103,655 +107,6 @@ PairKolmogorovCrespiFull::~PairKolmogorovCrespiFull() if (allocated) delete [] map; } -/* ---------------------------------------------------------------------- */ - -void PairKolmogorovCrespiFull::compute(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype,k,l,kk,ll; - tagint itag,jtag; - double prodnorm1,prodnorm2,fkcx,fkcy,fkcz; - double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair,fpair1,fpair2; - double rsq,r,rhosq1,rhosq2,exp0,exp1,exp2,r2inv,r6inv,r8inv,Tap,dTap,Vkc; - double frho1,frho2,sumC1,sumC2,sumC11,sumC22,sumCff,fsum,rdsq1,rdsq2; - int *ilist,*jlist,*numneigh,**firstneigh; - int *KC_neighs_i,*KC_neighs_j; - - evdwl = 0.0; - ev_init(eflag,vflag); - - double **x = atom->x; - double **f = atom->f; - int *type = atom->type; - tagint *tag = atom->tag; - int nlocal = atom->nlocal; - int newton_pair = force->newton_pair; - double dprodnorm1[3] = {0.0, 0.0, 0.0}; - double dprodnorm2[3] = {0.0, 0.0, 0.0}; - double fp1[3] = {0.0, 0.0, 0.0}; - double fp2[3] = {0.0, 0.0, 0.0}; - double fprod1[3] = {0.0, 0.0, 0.0}; - double fprod2[3] = {0.0, 0.0, 0.0}; - double fk[3] = {0.0, 0.0, 0.0}; - double fl[3] = {0.0, 0.0, 0.0}; - double delkj[3] = {0.0, 0.0, 0.0}; - double delli[3] = {0.0, 0.0, 0.0}; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - // Build full neighbor list - KC_neigh(); - // Calculate the normals - calc_normal(); - - // communicate the normal vector and its derivatives - comm->forward_comm_pair(this); - - // loop over neighbors of my atoms - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - itag = tag[i]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = type[i]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - jtype = type[j]; - jtag = tag[j]; - - // two-body interactions from full neighbor list, skip half of them - if (itag > jtag) { - if ((itag+jtag) % 2 == 0) continue; - } else if (itag < jtag) { - if ((itag+jtag) % 2 == 1) continue; - } else { - if (x[j][2] < ztmp) continue; - if (x[j][2] == ztmp && x[j][1] < ytmp) continue; - if (x[j][2] == ztmp && x[j][1] == ytmp && x[j][0] < xtmp) continue; - } - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - - // only include the interation between different layers - if (rsq < cutsq[itype][jtype] && atom->molecule[i] != atom->molecule[j]) { - - int iparam_ij = elem2param[map[itype]][map[jtype]]; - Param& p = params[iparam_ij]; - - r = sqrt(rsq); - r2inv = 1.0/rsq; - r6inv = r2inv*r2inv*r2inv; - r8inv = r2inv*r6inv; - // turn on/off taper function - if (tap_flag) { - Tap = calc_Tap(r,sqrt(cutsq[itype][jtype])); - dTap = calc_dTap(r,sqrt(cutsq[itype][jtype])); - } else {Tap = 1.0; dTap = 0.0;} - - // Calculate the transverse distance - // note that rho_ij does not equal to rho_ji except when normals are all along z - prodnorm1 = normal[i][0]*delx + normal[i][1]*dely + normal[i][2]*delz; - prodnorm2 = normal[j][0]*delx + normal[j][1]*dely + normal[j][2]*delz; - rhosq1 = rsq - prodnorm1*prodnorm1; // rho_ij - rhosq2 = rsq - prodnorm2*prodnorm2; // rho_ji - rdsq1 = rhosq1*p.delta2inv; // (rho_ij/delta)^2 - rdsq2 = rhosq2*p.delta2inv; // (rho_ji/delta)^2 - - // store exponents - exp0 = exp(-p.lambda*(r-p.z0)); - exp1 = exp(-rdsq1); - exp2 = exp(-rdsq2); - - sumC1 = p.C0 + p.C2*rdsq1 + p.C4*rdsq1*rdsq1; - sumC2 = p.C0 + p.C2*rdsq2 + p.C4*rdsq2*rdsq2; - sumC11 = (p.C2 + 2.0*p.C4*rdsq1)*p.delta2inv; - sumC22 = (p.C2 + 2.0*p.C4*rdsq2)*p.delta2inv; - frho1 = exp1*sumC1; - frho2 = exp2*sumC2; - sumCff = p.C + frho1 + frho2; - Vkc = -p.A*p.z06*r6inv + exp0*sumCff; - - // derivatives - fpair = -6.0*p.A*p.z06*r8inv + p.lambda*exp0/r*sumCff; - fpair1 = 2.0*exp0*exp1*(p.delta2inv*sumC1 - sumC11); - fpair2 = 2.0*exp0*exp2*(p.delta2inv*sumC2 - sumC22); - fsum = fpair + fpair1 + fpair2; - // derivatives of the product of rij and ni, the result is a vector - dprodnorm1[0] = dnormdri[0][0][i]*delx + dnormdri[1][0][i]*dely + dnormdri[2][0][i]*delz; - dprodnorm1[1] = dnormdri[0][1][i]*delx + dnormdri[1][1][i]*dely + dnormdri[2][1][i]*delz; - dprodnorm1[2] = dnormdri[0][2][i]*delx + dnormdri[1][2][i]*dely + dnormdri[2][2][i]*delz; - // derivatives of the product of rji and nj, the result is a vector - dprodnorm2[0] = dnormdri[0][0][j]*delx + dnormdri[1][0][j]*dely + dnormdri[2][0][j]*delz; - dprodnorm2[1] = dnormdri[0][1][j]*delx + dnormdri[1][1][j]*dely + dnormdri[2][1][j]*delz; - dprodnorm2[2] = dnormdri[0][2][j]*delx + dnormdri[1][2][j]*dely + dnormdri[2][2][j]*delz; - fp1[0] = prodnorm1*normal[i][0]*fpair1; - fp1[1] = prodnorm1*normal[i][1]*fpair1; - fp1[2] = prodnorm1*normal[i][2]*fpair1; - fp2[0] = prodnorm2*normal[j][0]*fpair2; - fp2[1] = prodnorm2*normal[j][1]*fpair2; - fp2[2] = prodnorm2*normal[j][2]*fpair2; - fprod1[0] = prodnorm1*dprodnorm1[0]*fpair1; - fprod1[1] = prodnorm1*dprodnorm1[1]*fpair1; - fprod1[2] = prodnorm1*dprodnorm1[2]*fpair1; - fprod2[0] = prodnorm2*dprodnorm2[0]*fpair2; - fprod2[1] = prodnorm2*dprodnorm2[1]*fpair2; - fprod2[2] = prodnorm2*dprodnorm2[2]*fpair2; - fkcx = (delx*fsum - fp1[0] - fp2[0])*Tap - Vkc*dTap*delx/r; - fkcy = (dely*fsum - fp1[1] - fp2[1])*Tap - Vkc*dTap*dely/r; - fkcz = (delz*fsum - fp1[2] - fp2[2])*Tap - Vkc*dTap*delz/r; - - f[i][0] += fkcx - fprod1[0]*Tap; - f[i][1] += fkcy - fprod1[1]*Tap; - f[i][2] += fkcz - fprod1[2]*Tap; - f[j][0] -= fkcx + fprod2[0]*Tap; - f[j][1] -= fkcy + fprod2[1]*Tap; - f[j][2] -= fkcz + fprod2[2]*Tap; - - // calculate the forces acted on the neighbors of atom i from atom j - KC_neighs_i = KC_firstneigh[i]; - for (kk = 0; kk < KC_numneigh[i]; kk++) { - k = KC_neighs_i[kk]; - if (k == i) continue; - // derivatives of the product of rij and ni respect to rk, k=0,1,2, where atom k is the neighbors of atom i - dprodnorm1[0] = dnormal[0][0][kk][i]*delx + dnormal[1][0][kk][i]*dely + dnormal[2][0][kk][i]*delz; - dprodnorm1[1] = dnormal[0][1][kk][i]*delx + dnormal[1][1][kk][i]*dely + dnormal[2][1][kk][i]*delz; - dprodnorm1[2] = dnormal[0][2][kk][i]*delx + dnormal[1][2][kk][i]*dely + dnormal[2][2][kk][i]*delz; - fk[0] = (-prodnorm1*dprodnorm1[0]*fpair1)*Tap; - fk[1] = (-prodnorm1*dprodnorm1[1]*fpair1)*Tap; - fk[2] = (-prodnorm1*dprodnorm1[2]*fpair1)*Tap; - f[k][0] += fk[0]; - f[k][1] += fk[1]; - f[k][2] += fk[2]; - delkj[0] = x[k][0] - x[j][0]; - delkj[1] = x[k][1] - x[j][1]; - delkj[2] = x[k][2] - x[j][2]; - if (evflag) ev_tally_xyz(k,j,nlocal,newton_pair,0.0,0.0,fk[0],fk[1],fk[2],delkj[0],delkj[1],delkj[2]); - } - - // calculate the forces acted on the neighbors of atom j from atom i - KC_neighs_j = KC_firstneigh[j]; - for (ll = 0; ll < KC_numneigh[j]; ll++) { - l = KC_neighs_j[ll]; - if (l == j) continue; - // derivatives of the product of rji and nj respect to rl, l=0,1,2, where atom l is the neighbors of atom j - dprodnorm2[0] = dnormal[0][0][ll][j]*delx + dnormal[1][0][ll][j]*dely + dnormal[2][0][ll][j]*delz; - dprodnorm2[1] = dnormal[0][1][ll][j]*delx + dnormal[1][1][ll][j]*dely + dnormal[2][1][ll][j]*delz; - dprodnorm2[2] = dnormal[0][2][ll][j]*delx + dnormal[1][2][ll][j]*dely + dnormal[2][2][ll][j]*delz; - fl[0] = (-prodnorm2*dprodnorm2[0]*fpair2)*Tap; - fl[1] = (-prodnorm2*dprodnorm2[1]*fpair2)*Tap; - fl[2] = (-prodnorm2*dprodnorm2[2]*fpair2)*Tap; - f[l][0] += fl[0]; - f[l][1] += fl[1]; - f[l][2] += fl[2]; - delli[0] = x[l][0] - x[i][0]; - delli[1] = x[l][1] - x[i][1]; - delli[2] = x[l][2] - x[i][2]; - if (evflag) ev_tally_xyz(l,i,nlocal,newton_pair,0.0,0.0,fl[0],fl[1],fl[2],delli[0],delli[1],delli[2]); - } - - if (eflag) { - if (tap_flag) evdwl = Tap*Vkc; - else evdwl = Vkc - offset[itype][jtype]; - } - - if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0,fkcx,fkcy,fkcz,delx,dely,delz); - } - } - } - if (vflag_fdotr) virial_fdotr_compute(); -} - -/* ---------------------------------------------------------------------- - Calculate the normals for each atom -------------------------------------------------------------------------- */ -void PairKolmogorovCrespiFull::calc_normal() -{ - int i,j,ii,jj,inum,jnum; - int cont,id,ip,m; - double nn,xtp,ytp,ztp,delx,dely,delz,nn2; - int *ilist,*jlist; - double pv12[3],pv31[3],pv23[3],n1[3],dni[3],dnn[3][3],vet[3][3],dpvdri[3][3]; - double dn1[3][3][3],dpv12[3][3][3],dpv23[3][3][3],dpv31[3][3][3]; - - double **x = atom->x; - - // grow normal array if necessary - - if (atom->nmax > nmax) { - memory->destroy(normal); - memory->destroy(dnormal); - memory->destroy(dnormdri); - nmax = atom->nmax; - memory->create(normal,nmax,3,"KolmogorovCrespiFull:normal"); - memory->create(dnormdri,3,3,nmax,"KolmogorovCrespiFull:dnormdri"); - memory->create(dnormal,3,3,3,nmax,"KolmogorovCrespiFull:dnormal"); - } - - inum = list->inum; - ilist = list->ilist; - //Calculate normals - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtp = x[i][0]; - ytp = x[i][1]; - ztp = x[i][2]; - - // Initialize the arrays - for (id = 0; id < 3; id++){ - pv12[id] = 0.0; - pv31[id] = 0.0; - pv23[id] = 0.0; - n1[id] = 0.0; - dni[id] = 0.0; - normal[i][id] = 0.0; - for (ip = 0; ip < 3; ip++){ - vet[ip][id] = 0.0; - dnn[ip][id] = 0.0; - dpvdri[ip][id] = 0.0; - dnormdri[ip][id][i] = 0.0; - for (m = 0; m < 3; m++){ - dpv12[ip][id][m] = 0.0; - dpv31[ip][id][m] = 0.0; - dpv23[ip][id][m] = 0.0; - dn1[ip][id][m] = 0.0; - dnormal[ip][id][m][i] = 0.0; - } - } - } - - cont = 0; - jlist = KC_firstneigh[i]; - jnum = KC_numneigh[i]; - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - - delx = x[j][0] - xtp; - dely = x[j][1] - ytp; - delz = x[j][2] - ztp; - vet[cont][0] = delx; - vet[cont][1] = dely; - vet[cont][2] = delz; - cont++; - } - - if (cont <= 1) { - normal[i][0] = 0.0; - normal[i][1] = 0.0; - normal[i][2] = 1.0; - // derivatives of normal vector is zero - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormdri[id][ip][i] = 0.0; - for (m = 0; m < 3; m++){ - dnormal[id][ip][m][i] = 0.0; - } - } - } - } - else if (cont == 2) { - // for the atoms at the edge who has only two neighbor atoms - pv12[0] = vet[0][1]*vet[1][2] - vet[1][1]*vet[0][2]; - pv12[1] = vet[0][2]*vet[1][0] - vet[1][2]*vet[0][0]; - pv12[2] = vet[0][0]*vet[1][1] - vet[1][0]*vet[0][1]; - dpvdri[0][0] = 0.0; - dpvdri[0][1] = vet[0][2]-vet[1][2]; - dpvdri[0][2] = vet[1][1]-vet[0][1]; - dpvdri[1][0] = vet[1][2]-vet[0][2]; - dpvdri[1][1] = 0.0; - dpvdri[1][2] = vet[0][0]-vet[1][0]; - dpvdri[2][0] = vet[0][1]-vet[1][1]; - dpvdri[2][1] = vet[1][0]-vet[0][0]; - dpvdri[2][2] = 0.0; - - // derivatives respect to the first neighbor, atom k - dpv12[0][0][0] = 0.0; - dpv12[0][1][0] = vet[1][2]; - dpv12[0][2][0] = -vet[1][1]; - dpv12[1][0][0] = -vet[1][2]; - dpv12[1][1][0] = 0.0; - dpv12[1][2][0] = vet[1][0]; - dpv12[2][0][0] = vet[1][1]; - dpv12[2][1][0] = -vet[1][0]; - dpv12[2][2][0] = 0.0; - - // derivatives respect to the second neighbor, atom l - dpv12[0][0][1] = 0.0; - dpv12[0][1][1] = -vet[0][2]; - dpv12[0][2][1] = vet[0][1]; - dpv12[1][0][1] = vet[0][2]; - dpv12[1][1][1] = 0.0; - dpv12[1][2][1] = -vet[0][0]; - dpv12[2][0][1] = -vet[0][1]; - dpv12[2][1][1] = vet[0][0]; - dpv12[2][2][1] = 0.0; - - // derivatives respect to the third neighbor, atom n - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dpv12[id][ip][2] = 0.0; - } - } - - n1[0] = pv12[0]; - n1[1] = pv12[1]; - n1[2] = pv12[2]; - // the magnitude of the normal vector - nn2 = n1[0]*n1[0] + n1[1]*n1[1] + n1[2]*n1[2]; - nn = sqrt(nn2); - if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero"); - // the unit normal vector - normal[i][0] = n1[0]/nn; - normal[i][1] = n1[1]/nn; - normal[i][2] = n1[2]/nn; - // derivatives of nn, dnn:3x1 vector - dni[0] = (n1[0]*dpvdri[0][0] + n1[1]*dpvdri[1][0] + n1[2]*dpvdri[2][0])/nn; - dni[1] = (n1[0]*dpvdri[0][1] + n1[1]*dpvdri[1][1] + n1[2]*dpvdri[2][1])/nn; - dni[2] = (n1[0]*dpvdri[0][2] + n1[1]*dpvdri[1][2] + n1[2]*dpvdri[2][2])/nn; - // derivatives of unit vector ni respect to ri, the result is 3x3 matrix - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormdri[id][ip][i] = dpvdri[id][ip]/nn - n1[id]*dni[ip]/nn2; - } - } - - // derivatives of non-normalized normal vector, dn1:3x3x3 array - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - for (m = 0; m < 3; m++){ - dn1[id][ip][m] = dpv12[id][ip][m]; - } - } - } - // derivatives of nn, dnn:3x3 vector - // dnn[id][m]: the derivative of nn respect to r[id][m], id,m=0,1,2 - // r[id][m]: the id's component of atom m - for (m = 0; m < 3; m++){ - for (id = 0; id < 3; id++){ - dnn[id][m] = (n1[0]*dn1[0][id][m] + n1[1]*dn1[1][id][m] + n1[2]*dn1[2][id][m])/nn; - } - } - // dnormal[id][ip][m][i]: the derivative of normal[id] respect to r[ip][m], id,ip=0,1,2 - // for atom m, which is a neighbor atom of atom i, m=0,jnum-1 - for (m = 0; m < 3; m++){ - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormal[id][ip][m][i] = dn1[id][ip][m]/nn - n1[id]*dnn[ip][m]/nn2; - } - } - } - } -//############################################################################################## - - else if(cont == 3) { - // for the atoms at the edge who has only two neighbor atoms - pv12[0] = vet[0][1]*vet[1][2] - vet[1][1]*vet[0][2]; - pv12[1] = vet[0][2]*vet[1][0] - vet[1][2]*vet[0][0]; - pv12[2] = vet[0][0]*vet[1][1] - vet[1][0]*vet[0][1]; - // derivatives respect to the first neighbor, atom k - dpv12[0][0][0] = 0.0; - dpv12[0][1][0] = vet[1][2]; - dpv12[0][2][0] = -vet[1][1]; - dpv12[1][0][0] = -vet[1][2]; - dpv12[1][1][0] = 0.0; - dpv12[1][2][0] = vet[1][0]; - dpv12[2][0][0] = vet[1][1]; - dpv12[2][1][0] = -vet[1][0]; - dpv12[2][2][0] = 0.0; - // derivatives respect to the second neighbor, atom l - dpv12[0][0][1] = 0.0; - dpv12[0][1][1] = -vet[0][2]; - dpv12[0][2][1] = vet[0][1]; - dpv12[1][0][1] = vet[0][2]; - dpv12[1][1][1] = 0.0; - dpv12[1][2][1] = -vet[0][0]; - dpv12[2][0][1] = -vet[0][1]; - dpv12[2][1][1] = vet[0][0]; - dpv12[2][2][1] = 0.0; - - // derivatives respect to the third neighbor, atom n - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dpv12[id][ip][2] = 0.0; - } - } - - pv31[0] = vet[2][1]*vet[0][2] - vet[0][1]*vet[2][2]; - pv31[1] = vet[2][2]*vet[0][0] - vet[0][2]*vet[2][0]; - pv31[2] = vet[2][0]*vet[0][1] - vet[0][0]*vet[2][1]; - // derivatives respect to the first neighbor, atom k - dpv31[0][0][0] = 0.0; - dpv31[0][1][0] = -vet[2][2]; - dpv31[0][2][0] = vet[2][1]; - dpv31[1][0][0] = vet[2][2]; - dpv31[1][1][0] = 0.0; - dpv31[1][2][0] = -vet[2][0]; - dpv31[2][0][0] = -vet[2][1]; - dpv31[2][1][0] = vet[2][0]; - dpv31[2][2][0] = 0.0; - // derivatives respect to the third neighbor, atom n - dpv31[0][0][2] = 0.0; - dpv31[0][1][2] = vet[0][2]; - dpv31[0][2][2] = -vet[0][1]; - // derivatives of pv13[1] to rn - dpv31[1][0][2] = -vet[0][2]; - dpv31[1][1][2] = 0.0; - dpv31[1][2][2] = vet[0][0]; - // derivatives of pv13[2] to rn - dpv31[2][0][2] = vet[0][1]; - dpv31[2][1][2] = -vet[0][0]; - dpv31[2][2][2] = 0.0; - - // derivatives respect to the second neighbor, atom l - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dpv31[id][ip][1] = 0.0; - } - } - - pv23[0] = vet[1][1]*vet[2][2] - vet[2][1]*vet[1][2]; - pv23[1] = vet[1][2]*vet[2][0] - vet[2][2]*vet[1][0]; - pv23[2] = vet[1][0]*vet[2][1] - vet[2][0]*vet[1][1]; - // derivatives respect to the second neighbor, atom k - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dpv23[id][ip][0] = 0.0; - } - } - // derivatives respect to the second neighbor, atom l - dpv23[0][0][1] = 0.0; - dpv23[0][1][1] = vet[2][2]; - dpv23[0][2][1] = -vet[2][1]; - dpv23[1][0][1] = -vet[2][2]; - dpv23[1][1][1] = 0.0; - dpv23[1][2][1] = vet[2][0]; - dpv23[2][0][1] = vet[2][1]; - dpv23[2][1][1] = -vet[2][0]; - dpv23[2][2][1] = 0.0; - // derivatives respect to the third neighbor, atom n - dpv23[0][0][2] = 0.0; - dpv23[0][1][2] = -vet[1][2]; - dpv23[0][2][2] = vet[1][1]; - dpv23[1][0][2] = vet[1][2]; - dpv23[1][1][2] = 0.0; - dpv23[1][2][2] = -vet[1][0]; - dpv23[2][0][2] = -vet[1][1]; - dpv23[2][1][2] = vet[1][0]; - dpv23[2][2][2] = 0.0; - -//############################################################################################ - // average the normal vectors by using the 3 neighboring planes - n1[0] = (pv12[0] + pv31[0] + pv23[0])/cont; - n1[1] = (pv12[1] + pv31[1] + pv23[1])/cont; - n1[2] = (pv12[2] + pv31[2] + pv23[2])/cont; - // the magnitude of the normal vector - nn2 = n1[0]*n1[0] + n1[1]*n1[1] + n1[2]*n1[2]; - nn = sqrt(nn2); - if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero"); - // the unit normal vector - normal[i][0] = n1[0]/nn; - normal[i][1] = n1[1]/nn; - normal[i][2] = n1[2]/nn; - - // for the central atoms, dnormdri is always zero - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormdri[id][ip][i] = 0.0; - } - } // end of derivatives of normals respect to atom i - - // derivatives of non-normalized normal vector, dn1:3x3x3 array - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - for (m = 0; m < 3; m++){ - dn1[id][ip][m] = (dpv12[id][ip][m] + dpv23[id][ip][m] + dpv31[id][ip][m])/cont; - } - } - } - // derivatives of nn, dnn:3x3 vector - // dnn[id][m]: the derivative of nn respect to r[id][m], id,m=0,1,2 - // r[id][m]: the id's component of atom m - for (m = 0; m < 3; m++){ - for (id = 0; id < 3; id++){ - dnn[id][m] = (n1[0]*dn1[0][id][m] + n1[1]*dn1[1][id][m] + n1[2]*dn1[2][id][m])/nn; - } - } - // dnormal[id][ip][m][i]: the derivative of normal[id] respect to r[ip][m], id,ip=0,1,2 - // for atom m, which is a neighbor atom of atom i, m=0,jnum-1 - for (m = 0; m < 3; m++){ - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormal[id][ip][m][i] = dn1[id][ip][m]/nn - n1[id]*dnn[ip][m]/nn2; - } - } - } - } - else { - error->one(FLERR,"There are too many neighbors for calculating normals"); - } - -//############################################################################################## - } -} - -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -void PairKolmogorovCrespiFull::init_style() -{ - if (force->newton_pair == 0) - error->all(FLERR,"Pair style kolmolgorov/crespi/full requires newton pair on"); - if (!atom->molecule_flag) - error->all(FLERR,"Pair style kolmolgorov/crespi/full requires atom attribute molecule"); - - // need a full neighbor list, including neighbors of ghosts - - int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->half = 0; - neighbor->requests[irequest]->full = 1; - neighbor->requests[irequest]->ghost = 1; - - // local KC neighbor list - // create pages if first time or if neighbor pgsize/oneatom has changed - - int create = 0; - if (ipage == NULL) create = 1; - if (pgsize != neighbor->pgsize) create = 1; - if (oneatom != neighbor->oneatom) create = 1; - - if (create) { - delete [] ipage; - pgsize = neighbor->pgsize; - oneatom = neighbor->oneatom; - - int nmypage= comm->nthreads; - ipage = new MyPage[nmypage]; - for (int i = 0; i < nmypage; i++) - ipage[i].init(oneatom,pgsize,PGDELTA); - } -} - - -/* ---------------------------------------------------------------------- - create neighbor list from main neighbor list for calculating the normals -------------------------------------------------------------------------- */ - -void PairKolmogorovCrespiFull::KC_neigh() -{ - int i,j,ii,jj,n,allnum,jnum,itype,jtype; - double xtmp,ytmp,ztmp,delx,dely,delz,rsq; - int *ilist,*jlist,*numneigh,**firstneigh; - int *neighptr; - - double **x = atom->x; - int *type = atom->type; - - if (atom->nmax > maxlocal) { - maxlocal = atom->nmax; - memory->destroy(KC_numneigh); - memory->sfree(KC_firstneigh); - memory->create(KC_numneigh,maxlocal,"KolmogorovCrespiFull:numneigh"); - KC_firstneigh = (int **) memory->smalloc(maxlocal*sizeof(int *), - "KolmogorovCrespiFull:firstneigh"); - } - - allnum = list->inum + list->gnum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - - // store all KC neighs of owned and ghost atoms - // scan full neighbor list of I - - ipage->reset(); - - for (ii = 0; ii < allnum; ii++) { - i = ilist[ii]; - - n = 0; - neighptr = ipage->vget(); - - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = map[type[i]]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - jtype = map[type[j]]; - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - - if (rsq != 0 && rsq < cutKCsq[itype][jtype] && atom->molecule[i] == atom->molecule[j]) { - neighptr[n++] = j; - } - } - - KC_firstneigh[i] = neighptr; - KC_numneigh[i] = n; - if (n > 3) error->one(FLERR,"There are too many neighbors for some atoms, please check your configuration"); - ipage->vgot(n); - if (ipage->status()) - error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); - } -} - - /* ---------------------------------------------------------------------- allocate all arrays ------------------------------------------------------------------------- */ @@ -1033,6 +388,722 @@ void PairKolmogorovCrespiFull::read_file(char *filename) delete [] words; } +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairKolmogorovCrespiFull::init_style() +{ + if (force->newton_pair == 0) + error->all(FLERR,"Pair style kolmolgorov/crespi/full requires newton pair on"); + if (!atom->molecule_flag) + error->all(FLERR,"Pair style kolmolgorov/crespi/full requires atom attribute molecule"); + + // need a full neighbor list, including neighbors of ghosts + + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; + neighbor->requests[irequest]->ghost = 1; + + // local KC neighbor list + // create pages if first time or if neighbor pgsize/oneatom has changed + + int create = 0; + if (ipage == NULL) create = 1; + if (pgsize != neighbor->pgsize) create = 1; + if (oneatom != neighbor->oneatom) create = 1; + + if (create) { + delete [] ipage; + pgsize = neighbor->pgsize; + oneatom = neighbor->oneatom; + + int nmypage= comm->nthreads; + ipage = new MyPage[nmypage]; + for (int i = 0; i < nmypage; i++) + ipage[i].init(oneatom,pgsize,PGDELTA); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairKolmogorovCrespiFull::compute(int eflag, int vflag) +{ + ev_init(eflag,vflag); + pvector[0] = pvector[1] = 0.0; + + // Build full neighbor list + KC_neigh(); + // Calculate the normals and its derivatives + calc_normal(); + // Calculate the van der Waals force and energy + calc_FvdW(eflag,vflag); + // Calculate the repulsive force and energy + calc_FRep(eflag,vflag); + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- + van der Waals forces and energy +------------------------------------------------------------------------- */ + +void PairKolmogorovCrespiFull::calc_FvdW(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype,k,l,kk,ll; + tagint itag,jtag; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; + double rsq,r,Rcut,r2inv,r6inv,r8inv,Tap,dTap,Vkc,fsum; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = 0.0; + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + tagint *tag = atom->tag; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // loop over neighbors of my atoms + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + itag = tag[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + jtype = type[j]; + jtag = tag[j]; + + // two-body interactions from full neighbor list, skip half of them + if (itag > jtag) { + if ((itag+jtag) % 2 == 0) continue; + } else if (itag < jtag) { + if ((itag+jtag) % 2 == 1) continue; + } else { + if (x[j][2] < ztmp) continue; + if (x[j][2] == ztmp && x[j][1] < ytmp) continue; + if (x[j][2] == ztmp && x[j][1] == ytmp && x[j][0] < xtmp) continue; + } + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + // only include the interation between different layers + if (rsq < cutsq[itype][jtype] && atom->molecule[i] != atom->molecule[j]) { + + int iparam_ij = elem2param[map[itype]][map[jtype]]; + Param& p = params[iparam_ij]; + + r = sqrt(rsq); + r2inv = 1.0/rsq; + r6inv = r2inv*r2inv*r2inv; + r8inv = r6inv*r2inv; + // turn on/off taper function + if (tap_flag) { + Rcut = sqrt(cutsq[itype][jtype]); + Tap = calc_Tap(r,Rcut); + dTap = calc_dTap(r,Rcut); + } else {Tap = 1.0; dTap = 0.0;} + + Vkc = -p.A*p.z06*r6inv; + + // derivatives + fpair = -6.0*p.A*p.z06*r8inv; + fsum = fpair*Tap - Vkc*dTap/r; + + f[i][0] += fsum*delx; + f[i][1] += fsum*dely; + f[i][2] += fsum*delz; + f[j][0] -= fsum*delx; + f[j][1] -= fsum*dely; + f[j][2] -= fsum*delz; + + if (eflag) pvector[0] += evdwl = Vkc*Tap; + if (evflag) ev_tally(i,j,nlocal,newton_pair, + evdwl,0.0,fsum,delx,dely,delz); + } + } + } +} + +/* ---------------------------------------------------------------------- + Repulsive forces and energy +------------------------------------------------------------------------- */ + +void PairKolmogorovCrespiFull::calc_FRep(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype,k,kk; + double prodnorm1,fkcx,fkcy,fkcz; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair,fpair1; + double rsq,r,rhosq1,exp0,exp1,r2inv,r6inv,r8inv,Tap,dTap,Vkc; + double frho_ij,sumC1,sumC11,sumCff,fsum,rho_ij; + int *ilist,*jlist,*numneigh,**firstneigh; + int *KC_neighs_i,*KC_neighs_j; + + evdwl = 0.0; + + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + double dprodnorm1[3] = {0.0, 0.0, 0.0}; + double fp1[3] = {0.0, 0.0, 0.0}; + double fprod1[3] = {0.0, 0.0, 0.0}; + double delkj[3] = {0.0, 0.0, 0.0}; + double fk[3] = {0.0, 0.0, 0.0}; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + //calculate exp(-lambda*(r-z0))*[epsilon/2 + f(rho_ij)] + // loop over neighbors of owned atoms + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + if (KC_numneigh[i] == -1) { + continue; + } + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + if (KC_numneigh[j] == -1) { + continue; + } + jtype = type[j]; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + // only include the interation between different layers + if (rsq < cutsq[itype][jtype] && atom->molecule[i] != atom->molecule[j]) { + + int iparam_ij = elem2param[map[itype]][map[jtype]]; + Param& p = params[iparam_ij]; + + r = sqrt(rsq); + r2inv = 1.0/rsq; + r6inv = r2inv*r2inv*r2inv; + r8inv = r2inv*r6inv; + // turn on/off taper function + if (tap_flag) { + Tap = calc_Tap(r,sqrt(cutsq[itype][jtype])); + dTap = calc_dTap(r,sqrt(cutsq[itype][jtype])); + } else {Tap = 1.0; dTap = 0.0;} + + // Calculate the transverse distance + prodnorm1 = normal[i][0]*delx + normal[i][1]*dely + normal[i][2]*delz; + rhosq1 = rsq - prodnorm1*prodnorm1; // rho_ij + rho_ij = rhosq1*p.delta2inv; // (rho_ij/delta)^2 + + // store exponents + exp0 = exp(-p.lambda*(r-p.z0)); + exp1 = exp(-rho_ij); + + sumC1 = p.C0 + p.C2*rho_ij + p.C4*rho_ij*rho_ij; + sumC11 = (p.C2 + 2.0*p.C4*rho_ij)*p.delta2inv; + frho_ij = exp1*sumC1; + sumCff = 0.5*p.C + frho_ij; + Vkc = exp0*sumCff; + + // derivatives + fpair = p.lambda*exp0/r*sumCff; + fpair1 = 2.0*exp0*exp1*(p.delta2inv*sumC1 - sumC11); + fsum = fpair + fpair1; + // derivatives of the product of rij and ni, the result is a vector + dprodnorm1[0] = dnormdri[0][0][i]*delx + dnormdri[1][0][i]*dely + dnormdri[2][0][i]*delz; + dprodnorm1[1] = dnormdri[0][1][i]*delx + dnormdri[1][1][i]*dely + dnormdri[2][1][i]*delz; + dprodnorm1[2] = dnormdri[0][2][i]*delx + dnormdri[1][2][i]*dely + dnormdri[2][2][i]*delz; + fp1[0] = prodnorm1*normal[i][0]*fpair1; + fp1[1] = prodnorm1*normal[i][1]*fpair1; + fp1[2] = prodnorm1*normal[i][2]*fpair1; + fprod1[0] = prodnorm1*dprodnorm1[0]*fpair1; + fprod1[1] = prodnorm1*dprodnorm1[1]*fpair1; + fprod1[2] = prodnorm1*dprodnorm1[2]*fpair1; + fkcx = (delx*fsum - fp1[0])*Tap - Vkc*dTap*delx/r; + fkcy = (dely*fsum - fp1[1])*Tap - Vkc*dTap*dely/r; + fkcz = (delz*fsum - fp1[2])*Tap - Vkc*dTap*delz/r; + + f[i][0] += fkcx - fprod1[0]*Tap; + f[i][1] += fkcy - fprod1[1]*Tap; + f[i][2] += fkcz - fprod1[2]*Tap; + f[j][0] -= fkcx; + f[j][1] -= fkcy; + f[j][2] -= fkcz; + + // calculate the forces acted on the neighbors of atom i from atom j + KC_neighs_i = KC_firstneigh[i]; + for (kk = 0; kk < KC_numneigh[i]; kk++) { + k = KC_neighs_i[kk]; + if (k == i) continue; + // derivatives of the product of rij and ni respect to rk, k=0,1,2, where atom k is the neighbors of atom i + dprodnorm1[0] = dnormal[0][0][kk][i]*delx + dnormal[1][0][kk][i]*dely + dnormal[2][0][kk][i]*delz; + dprodnorm1[1] = dnormal[0][1][kk][i]*delx + dnormal[1][1][kk][i]*dely + dnormal[2][1][kk][i]*delz; + dprodnorm1[2] = dnormal[0][2][kk][i]*delx + dnormal[1][2][kk][i]*dely + dnormal[2][2][kk][i]*delz; + fk[0] = (-prodnorm1*dprodnorm1[0]*fpair1)*Tap; + fk[1] = (-prodnorm1*dprodnorm1[1]*fpair1)*Tap; + fk[2] = (-prodnorm1*dprodnorm1[2]*fpair1)*Tap; + f[k][0] += fk[0]; + f[k][1] += fk[1]; + f[k][2] += fk[2]; + delkj[0] = x[k][0] - x[j][0]; + delkj[1] = x[k][1] - x[j][1]; + delkj[2] = x[k][2] - x[j][2]; + if (evflag) ev_tally_xyz(k,j,nlocal,newton_pair,0.0,0.0,fk[0],fk[1],fk[2],delkj[0],delkj[1],delkj[2]); + } + + if (eflag) { + if (tap_flag) pvector[1] += evdwl = Tap*Vkc; + else pvector[1] += evdwl = Vkc - offset[itype][jtype]; + } + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0.0,fkcx,fkcy,fkcz,delx,dely,delz); + } + } // loop over jj + } // loop over ii +} + +/* ---------------------------------------------------------------------- + create neighbor list from main neighbor list for calculating the normals +------------------------------------------------------------------------- */ + +void PairKolmogorovCrespiFull::KC_neigh() +{ + int i,j,ii,jj,n,allnum,inum,jnum,itype,jtype; + double xtmp,ytmp,ztmp,delx,dely,delz,rsq; + int *ilist,*jlist,*numneigh,**firstneigh; + int *neighptr; + + double **x = atom->x; + int *type = atom->type; + + if (atom->nmax > maxlocal) { + maxlocal = atom->nmax; + memory->destroy(KC_numneigh); + memory->sfree(KC_firstneigh); + memory->create(KC_numneigh,maxlocal,"KolmogorovCrespiFull:numneigh"); + KC_firstneigh = (int **) memory->smalloc(maxlocal*sizeof(int *), + "KolmogorovCrespiFull:firstneigh"); + } + + inum = list->inum; + allnum = list->inum + list->gnum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // store all KC neighs of owned and ghost atoms + // scan full neighbor list of I + + ipage->reset(); + + for (ii = 0; ii < allnum; ii++) { + i = ilist[ii]; + + n = 0; + neighptr = ipage->vget(); + + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = map[type[i]]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + jtype = map[type[j]]; + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + if (rsq != 0 && rsq < cutKCsq[itype][jtype] && atom->molecule[i] == atom->molecule[j]) { + neighptr[n++] = j; + } + } + + KC_firstneigh[i] = neighptr; + if (n == 3) { + KC_numneigh[i] = n; + } + else if (n < 3) { + if (i < inum) { + KC_numneigh[i] = n; + } else { + KC_numneigh[i] = -1; + } + } + else if (n > 3) error->one(FLERR,"There are too many neighbors for some atoms, please check your configuration"); + + ipage->vgot(n); + if (ipage->status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } +} + +/* ---------------------------------------------------------------------- + Calculate the normals for each atom +------------------------------------------------------------------------- */ +void PairKolmogorovCrespiFull::calc_normal() +{ + int i,j,ii,jj,inum,jnum; + int cont,id,ip,m; + double nn,xtp,ytp,ztp,delx,dely,delz,nn2; + int *ilist,*jlist; + double pv12[3],pv31[3],pv23[3],n1[3],dni[3],dnn[3][3],vet[3][3],dpvdri[3][3]; + double dn1[3][3][3],dpv12[3][3][3],dpv23[3][3][3],dpv31[3][3][3]; + + double **x = atom->x; + + // grow normal array if necessary + + if (atom->nmax > nmax) { + memory->destroy(normal); + memory->destroy(dnormal); + memory->destroy(dnormdri); + nmax = atom->nmax; + memory->create(normal,nmax,3,"KolmogorovCrespiFull:normal"); + memory->create(dnormdri,3,3,nmax,"KolmogorovCrespiFull:dnormdri"); + memory->create(dnormal,3,3,3,nmax,"KolmogorovCrespiFull:dnormal"); + } + + inum = list->inum; + ilist = list->ilist; + //Calculate normals + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + + // Initialize the arrays + for (id = 0; id < 3; id++){ + pv12[id] = 0.0; + pv31[id] = 0.0; + pv23[id] = 0.0; + n1[id] = 0.0; + dni[id] = 0.0; + normal[i][id] = 0.0; + for (ip = 0; ip < 3; ip++){ + vet[ip][id] = 0.0; + dnn[ip][id] = 0.0; + dpvdri[ip][id] = 0.0; + dnormdri[ip][id][i] = 0.0; + for (m = 0; m < 3; m++){ + dpv12[ip][id][m] = 0.0; + dpv31[ip][id][m] = 0.0; + dpv23[ip][id][m] = 0.0; + dn1[ip][id][m] = 0.0; + dnormal[ip][id][m][i] = 0.0; + } + } + } + + if (KC_numneigh[i] == -1) { + continue; + } + xtp = x[i][0]; + ytp = x[i][1]; + ztp = x[i][2]; + + cont = 0; + jlist = KC_firstneigh[i]; + jnum = KC_numneigh[i]; + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = x[j][0] - xtp; + dely = x[j][1] - ytp; + delz = x[j][2] - ztp; + vet[cont][0] = delx; + vet[cont][1] = dely; + vet[cont][2] = delz; + cont++; + } + + if (cont <= 1) { + normal[i][0] = 0.0; + normal[i][1] = 0.0; + normal[i][2] = 1.0; + // derivatives of normal vector is zero + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dnormdri[id][ip][i] = 0.0; + for (m = 0; m < 3; m++){ + dnormal[id][ip][m][i] = 0.0; + } + } + } + } + else if (cont == 2) { + // for the atoms at the edge who has only two neighbor atoms + pv12[0] = vet[0][1]*vet[1][2] - vet[1][1]*vet[0][2]; + pv12[1] = vet[0][2]*vet[1][0] - vet[1][2]*vet[0][0]; + pv12[2] = vet[0][0]*vet[1][1] - vet[1][0]*vet[0][1]; + dpvdri[0][0] = 0.0; + dpvdri[0][1] = vet[0][2]-vet[1][2]; + dpvdri[0][2] = vet[1][1]-vet[0][1]; + dpvdri[1][0] = vet[1][2]-vet[0][2]; + dpvdri[1][1] = 0.0; + dpvdri[1][2] = vet[0][0]-vet[1][0]; + dpvdri[2][0] = vet[0][1]-vet[1][1]; + dpvdri[2][1] = vet[1][0]-vet[0][0]; + dpvdri[2][2] = 0.0; + + // derivatives respect to the first neighbor, atom k + dpv12[0][0][0] = 0.0; + dpv12[0][1][0] = vet[1][2]; + dpv12[0][2][0] = -vet[1][1]; + dpv12[1][0][0] = -vet[1][2]; + dpv12[1][1][0] = 0.0; + dpv12[1][2][0] = vet[1][0]; + dpv12[2][0][0] = vet[1][1]; + dpv12[2][1][0] = -vet[1][0]; + dpv12[2][2][0] = 0.0; + + // derivatives respect to the second neighbor, atom l + dpv12[0][0][1] = 0.0; + dpv12[0][1][1] = -vet[0][2]; + dpv12[0][2][1] = vet[0][1]; + dpv12[1][0][1] = vet[0][2]; + dpv12[1][1][1] = 0.0; + dpv12[1][2][1] = -vet[0][0]; + dpv12[2][0][1] = -vet[0][1]; + dpv12[2][1][1] = vet[0][0]; + dpv12[2][2][1] = 0.0; + + // derivatives respect to the third neighbor, atom n + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dpv12[id][ip][2] = 0.0; + } + } + + n1[0] = pv12[0]; + n1[1] = pv12[1]; + n1[2] = pv12[2]; + // the magnitude of the normal vector + nn2 = n1[0]*n1[0] + n1[1]*n1[1] + n1[2]*n1[2]; + nn = sqrt(nn2); + if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero"); + // the unit normal vector + normal[i][0] = n1[0]/nn; + normal[i][1] = n1[1]/nn; + normal[i][2] = n1[2]/nn; + // derivatives of nn, dnn:3x1 vector + dni[0] = (n1[0]*dpvdri[0][0] + n1[1]*dpvdri[1][0] + n1[2]*dpvdri[2][0])/nn; + dni[1] = (n1[0]*dpvdri[0][1] + n1[1]*dpvdri[1][1] + n1[2]*dpvdri[2][1])/nn; + dni[2] = (n1[0]*dpvdri[0][2] + n1[1]*dpvdri[1][2] + n1[2]*dpvdri[2][2])/nn; + // derivatives of unit vector ni respect to ri, the result is 3x3 matrix + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dnormdri[id][ip][i] = dpvdri[id][ip]/nn - n1[id]*dni[ip]/nn2; + } + } + + // derivatives of non-normalized normal vector, dn1:3x3x3 array + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + for (m = 0; m < 3; m++){ + dn1[id][ip][m] = dpv12[id][ip][m]; + } + } + } + // derivatives of nn, dnn:3x3 vector + // dnn[id][m]: the derivative of nn respect to r[id][m], id,m=0,1,2 + // r[id][m]: the id's component of atom m + for (m = 0; m < 3; m++){ + for (id = 0; id < 3; id++){ + dnn[id][m] = (n1[0]*dn1[0][id][m] + n1[1]*dn1[1][id][m] + n1[2]*dn1[2][id][m])/nn; + } + } + // dnormal[id][ip][m][i]: the derivative of normal[id] respect to r[ip][m], id,ip=0,1,2 + // for atom m, which is a neighbor atom of atom i, m=0,jnum-1 + for (m = 0; m < 3; m++){ + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dnormal[id][ip][m][i] = dn1[id][ip][m]/nn - n1[id]*dnn[ip][m]/nn2; + } + } + } + } +//############################################################################################## + + else if(cont == 3) { + // for the atoms at the edge who has only two neighbor atoms + pv12[0] = vet[0][1]*vet[1][2] - vet[1][1]*vet[0][2]; + pv12[1] = vet[0][2]*vet[1][0] - vet[1][2]*vet[0][0]; + pv12[2] = vet[0][0]*vet[1][1] - vet[1][0]*vet[0][1]; + // derivatives respect to the first neighbor, atom k + dpv12[0][0][0] = 0.0; + dpv12[0][1][0] = vet[1][2]; + dpv12[0][2][0] = -vet[1][1]; + dpv12[1][0][0] = -vet[1][2]; + dpv12[1][1][0] = 0.0; + dpv12[1][2][0] = vet[1][0]; + dpv12[2][0][0] = vet[1][1]; + dpv12[2][1][0] = -vet[1][0]; + dpv12[2][2][0] = 0.0; + // derivatives respect to the second neighbor, atom l + dpv12[0][0][1] = 0.0; + dpv12[0][1][1] = -vet[0][2]; + dpv12[0][2][1] = vet[0][1]; + dpv12[1][0][1] = vet[0][2]; + dpv12[1][1][1] = 0.0; + dpv12[1][2][1] = -vet[0][0]; + dpv12[2][0][1] = -vet[0][1]; + dpv12[2][1][1] = vet[0][0]; + dpv12[2][2][1] = 0.0; + + // derivatives respect to the third neighbor, atom n + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dpv12[id][ip][2] = 0.0; + } + } + + pv31[0] = vet[2][1]*vet[0][2] - vet[0][1]*vet[2][2]; + pv31[1] = vet[2][2]*vet[0][0] - vet[0][2]*vet[2][0]; + pv31[2] = vet[2][0]*vet[0][1] - vet[0][0]*vet[2][1]; + // derivatives respect to the first neighbor, atom k + dpv31[0][0][0] = 0.0; + dpv31[0][1][0] = -vet[2][2]; + dpv31[0][2][0] = vet[2][1]; + dpv31[1][0][0] = vet[2][2]; + dpv31[1][1][0] = 0.0; + dpv31[1][2][0] = -vet[2][0]; + dpv31[2][0][0] = -vet[2][1]; + dpv31[2][1][0] = vet[2][0]; + dpv31[2][2][0] = 0.0; + // derivatives respect to the third neighbor, atom n + dpv31[0][0][2] = 0.0; + dpv31[0][1][2] = vet[0][2]; + dpv31[0][2][2] = -vet[0][1]; + // derivatives of pv13[1] to rn + dpv31[1][0][2] = -vet[0][2]; + dpv31[1][1][2] = 0.0; + dpv31[1][2][2] = vet[0][0]; + // derivatives of pv13[2] to rn + dpv31[2][0][2] = vet[0][1]; + dpv31[2][1][2] = -vet[0][0]; + dpv31[2][2][2] = 0.0; + + // derivatives respect to the second neighbor, atom l + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dpv31[id][ip][1] = 0.0; + } + } + + pv23[0] = vet[1][1]*vet[2][2] - vet[2][1]*vet[1][2]; + pv23[1] = vet[1][2]*vet[2][0] - vet[2][2]*vet[1][0]; + pv23[2] = vet[1][0]*vet[2][1] - vet[2][0]*vet[1][1]; + // derivatives respect to the second neighbor, atom k + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dpv23[id][ip][0] = 0.0; + } + } + // derivatives respect to the second neighbor, atom l + dpv23[0][0][1] = 0.0; + dpv23[0][1][1] = vet[2][2]; + dpv23[0][2][1] = -vet[2][1]; + dpv23[1][0][1] = -vet[2][2]; + dpv23[1][1][1] = 0.0; + dpv23[1][2][1] = vet[2][0]; + dpv23[2][0][1] = vet[2][1]; + dpv23[2][1][1] = -vet[2][0]; + dpv23[2][2][1] = 0.0; + // derivatives respect to the third neighbor, atom n + dpv23[0][0][2] = 0.0; + dpv23[0][1][2] = -vet[1][2]; + dpv23[0][2][2] = vet[1][1]; + dpv23[1][0][2] = vet[1][2]; + dpv23[1][1][2] = 0.0; + dpv23[1][2][2] = -vet[1][0]; + dpv23[2][0][2] = -vet[1][1]; + dpv23[2][1][2] = vet[1][0]; + dpv23[2][2][2] = 0.0; + +//############################################################################################ + // average the normal vectors by using the 3 neighboring planes + n1[0] = (pv12[0] + pv31[0] + pv23[0])/cont; + n1[1] = (pv12[1] + pv31[1] + pv23[1])/cont; + n1[2] = (pv12[2] + pv31[2] + pv23[2])/cont; + // the magnitude of the normal vector + nn2 = n1[0]*n1[0] + n1[1]*n1[1] + n1[2]*n1[2]; + nn = sqrt(nn2); + if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero"); + // the unit normal vector + normal[i][0] = n1[0]/nn; + normal[i][1] = n1[1]/nn; + normal[i][2] = n1[2]/nn; + + // for the central atoms, dnormdri is always zero + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dnormdri[id][ip][i] = 0.0; + } + } // end of derivatives of normals respect to atom i + + // derivatives of non-normalized normal vector, dn1:3x3x3 array + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + for (m = 0; m < 3; m++){ + dn1[id][ip][m] = (dpv12[id][ip][m] + dpv23[id][ip][m] + dpv31[id][ip][m])/cont; + } + } + } + // derivatives of nn, dnn:3x3 vector + // dnn[id][m]: the derivative of nn respect to r[id][m], id,m=0,1,2 + // r[id][m]: the id's component of atom m + for (m = 0; m < 3; m++){ + for (id = 0; id < 3; id++){ + dnn[id][m] = (n1[0]*dn1[0][id][m] + n1[1]*dn1[1][id][m] + n1[2]*dn1[2][id][m])/nn; + } + } + // dnormal[id][ip][m][i]: the derivative of normal[id] respect to r[ip][m], id,ip=0,1,2 + // for atom m, which is a neighbor atom of atom i, m=0,jnum-1 + for (m = 0; m < 3; m++){ + for (id = 0; id < 3; id++){ + for (ip = 0; ip < 3; ip++){ + dnormal[id][ip][m][i] = dn1[id][ip][m]/nn - n1[id]*dnn[ip][m]/nn2; + } + } + } + } + else { + error->one(FLERR,"There are too many neighbors for calculating normals"); + } + +//############################################################################################## + } +} + /* ---------------------------------------------------------------------- */ double PairKolmogorovCrespiFull::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, @@ -1066,69 +1137,3 @@ double PairKolmogorovCrespiFull::single(int /*i*/, int /*j*/, int itype, int jty else philj = Vkc - offset[itype][jtype]; return factor_lj*philj; } - -/* ---------------------------------------------------------------------- */ - -int PairKolmogorovCrespiFull::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int * /*pbc*/) -{ - int i,j,m,l,ip,id; - - m = 0; - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = normal[j][0]; - buf[m++] = normal[j][1]; - buf[m++] = normal[j][2]; - buf[m++] = dnormdri[0][0][j]; - buf[m++] = dnormdri[0][1][j]; - buf[m++] = dnormdri[0][2][j]; - buf[m++] = dnormdri[1][0][j]; - buf[m++] = dnormdri[1][1][j]; - buf[m++] = dnormdri[1][2][j]; - buf[m++] = dnormdri[2][0][j]; - buf[m++] = dnormdri[2][1][j]; - buf[m++] = dnormdri[2][2][j]; - for (l = 0; l < 3; l++){ - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - buf[m++] = dnormal[id][ip][l][j]; - } - } - } - } - return m; -} - -/* ---------------------------------------------------------------------- */ - -void PairKolmogorovCrespiFull::unpack_forward_comm(int n, int first, double *buf) -{ - int i,m,last,l,ip,id; - - m = 0; - last = first + n; - for (i = first; i < last; i++) { - normal[i][0] = buf[m++]; - normal[i][1] = buf[m++]; - normal[i][2] = buf[m++]; - dnormdri[0][0][i] = buf[m++]; - dnormdri[0][1][i] = buf[m++]; - dnormdri[0][2][i] = buf[m++]; - dnormdri[1][0][i] = buf[m++]; - dnormdri[1][1][i] = buf[m++]; - dnormdri[1][2][i] = buf[m++]; - dnormdri[2][0][i] = buf[m++]; - dnormdri[2][1][i] = buf[m++]; - dnormdri[2][2][i] = buf[m++]; - for (l = 0; l < 3; l++){ - for (id = 0; id < 3; id++){ - for (ip = 0; ip < 3; ip++){ - dnormal[id][ip][l][i] = buf[m++]; - } - } - } - } -} - -/* ---------------------------------------------------------------------- */ diff --git a/src/USER-MISC/pair_kolmogorov_crespi_full.h b/src/USER-MISC/pair_kolmogorov_crespi_full.h index 68dede0dd5..81ab1984da 100644 --- a/src/USER-MISC/pair_kolmogorov_crespi_full.h +++ b/src/USER-MISC/pair_kolmogorov_crespi_full.h @@ -21,6 +21,8 @@ PairStyle(kolmogorov/crespi/full,PairKolmogorovCrespiFull) #define LMP_PAIR_KolmogorovCrespi_FULL_H #include "pair.h" +#include "my_page.h" +#include namespace LAMMPS_NS { @@ -34,9 +36,10 @@ class PairKolmogorovCrespiFull : public Pair { void coeff(int, char **); double init_one(int, int); void init_style(); + void KC_neigh(); void calc_normal(); - int pack_forward_comm(int, int *, double *, int, int *); - void unpack_forward_comm(int, int, double *); + void calc_FRep(int, int); + void calc_FvdW(int, int); double single(int, int, int, int, double, double, double, double &); protected: @@ -75,7 +78,6 @@ class PairKolmogorovCrespiFull : public Pair { void read_file( char * ); void allocate(); - void KC_neigh(); /* ----Calculate the long-range cutoff term */