diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..5ace4600a1 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index f9503e0e1f..07f7564727 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -5,12 +5,19 @@ on: push: branches: [develop] + workflow_dispatch: + jobs: analyze: name: Analyze if: ${{ github.repository == 'lammps/lammps' }} runs-on: ubuntu-latest + permissions: + security-events: write + actions: read + contents: read + strategy: fail-fast: false matrix: @@ -18,17 +25,17 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 2 - name: Setup Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: '3.x' - name: Initialize CodeQL - uses: github/codeql-action/init@v1 + uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} config-file: ./.github/codeql/${{ matrix.language }}.yml @@ -46,4 +53,4 @@ jobs: cmake --build . --parallel 2 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/compile-msvc.yml b/.github/workflows/compile-msvc.yml index b31c262e32..7747be7b46 100644 --- a/.github/workflows/compile-msvc.yml +++ b/.github/workflows/compile-msvc.yml @@ -5,6 +5,8 @@ on: push: branches: [develop] + workflow_dispatch: + jobs: build: name: Windows Compilation Test @@ -13,12 +15,12 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 2 - name: Select Python version - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: '3.10' diff --git a/.github/workflows/unittest-macos.yml b/.github/workflows/unittest-macos.yml index a222380f60..e6e5ccfdc8 100644 --- a/.github/workflows/unittest-macos.yml +++ b/.github/workflows/unittest-macos.yml @@ -5,6 +5,8 @@ on: push: branches: [develop] + workflow_dispatch: + jobs: build: name: MacOS Unit Test @@ -15,7 +17,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 2 @@ -26,7 +28,7 @@ jobs: run: mkdir build - name: Set up ccache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ env.CCACHE_DIR }} key: macos-ccache-${{ github.sha }} diff --git a/cmake/CMakeLists.jpeg b/cmake/CMakeLists.jpeg new file mode 100644 index 0000000000..f0bd85a90d --- /dev/null +++ b/cmake/CMakeLists.jpeg @@ -0,0 +1,615 @@ +cmake_minimum_required(VERSION 3.10) +# When using CMake 3.4 and later, don't export symbols from executables unless +# the CMAKE_ENABLE_EXPORTS variable is set. +if(POLICY CMP0065) + cmake_policy(SET CMP0065 NEW) +endif() +if (POLICY CMP0077) + cmake_policy(SET CMP0077 NEW) +endif() +if(CMAKE_EXECUTABLE_SUFFIX) + set(CMAKE_EXECUTABLE_SUFFIX_TMP ${CMAKE_EXECUTABLE_SUFFIX}) +endif() + +project(libjpeg-turbo C) +set(VERSION 2.1.3) +set(COPYRIGHT_YEAR "1991-2022") +string(REPLACE "." ";" VERSION_TRIPLET ${VERSION}) +list(GET VERSION_TRIPLET 0 VERSION_MAJOR) +list(GET VERSION_TRIPLET 1 VERSION_MINOR) +list(GET VERSION_TRIPLET 2 VERSION_REVISION) +function(pad_number NUMBER OUTPUT_LEN) + string(LENGTH "${${NUMBER}}" INPUT_LEN) + if(INPUT_LEN LESS OUTPUT_LEN) + math(EXPR ZEROES "${OUTPUT_LEN} - ${INPUT_LEN} - 1") + set(NUM ${${NUMBER}}) + foreach(C RANGE ${ZEROES}) + set(NUM "0${NUM}") + endforeach() + set(${NUMBER} ${NUM} PARENT_SCOPE) + endif() +endfunction() +pad_number(VERSION_MINOR 3) +pad_number(VERSION_REVISION 3) +set(LIBJPEG_TURBO_VERSION_NUMBER ${VERSION_MAJOR}${VERSION_MINOR}${VERSION_REVISION}) + +# CMake 3.14 and later sets CMAKE_MACOSX_BUNDLE to TRUE by default when +# CMAKE_SYSTEM_NAME is iOS, tvOS, or watchOS, which breaks the libjpeg-turbo +# build. (Specifically, when CMAKE_MACOSX_BUNDLE is TRUE, executables for +# Apple platforms are built as application bundles, which causes CMake to +# complain that our install() directives for executables do not specify a +# BUNDLE DESTINATION. Even if CMake did not complain, building executables as +# application bundles would break our iOS packages.) +set(CMAKE_MACOSX_BUNDLE FALSE) + +string(TIMESTAMP DEFAULT_BUILD "%Y%m%d") +set(BUILD ${DEFAULT_BUILD} CACHE STRING "Build string (default: ${DEFAULT_BUILD})") + +# NOTE: On Windows, this does nothing except when using MinGW or Cygwin. +# CMAKE_BUILD_TYPE has no meaning in Visual Studio, and it always defaults to +# Debug when using NMake. +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif() +message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}") + +message(STATUS "VERSION = ${VERSION}, BUILD = ${BUILD}") + +include(cmakescripts/PackageInfo.cmake) + +# Detect CPU type and whether we're building 64-bit or 32-bit code +math(EXPR BITS "${CMAKE_SIZEOF_VOID_P} * 8") +string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR_LC) +set(COUNT 1) +foreach(ARCH ${CMAKE_OSX_ARCHITECTURES}) + if(COUNT GREATER 1) + message(FATAL_ERROR "The libjpeg-turbo build system does not support multiple values in CMAKE_OSX_ARCHITECTURES.") + endif() + math(EXPR COUNT "${COUNT}+1") +endforeach() +if(CMAKE_SYSTEM_PROCESSOR_LC MATCHES "x86_64" OR + CMAKE_SYSTEM_PROCESSOR_LC MATCHES "amd64" OR + CMAKE_SYSTEM_PROCESSOR_LC MATCHES "i[0-9]86" OR + CMAKE_SYSTEM_PROCESSOR_LC MATCHES "x86" OR + CMAKE_SYSTEM_PROCESSOR_LC MATCHES "ia32") + if(BITS EQUAL 64 OR CMAKE_C_COMPILER_ABI MATCHES "ELF X32") + set(CPU_TYPE x86_64) + else() + set(CPU_TYPE i386) + endif() + if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL ${CPU_TYPE}) + set(CMAKE_SYSTEM_PROCESSOR ${CPU_TYPE}) + endif() +elseif(CMAKE_SYSTEM_PROCESSOR_LC STREQUAL "aarch64" OR + CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^arm") + if(BITS EQUAL 64) + set(CPU_TYPE arm64) + else() + set(CPU_TYPE arm) + endif() +elseif(CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^ppc" OR + CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^powerpc") + set(CPU_TYPE powerpc) +else() + set(CPU_TYPE ${CMAKE_SYSTEM_PROCESSOR_LC}) +endif() +if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR + CMAKE_OSX_ARCHITECTURES MATCHES "arm64" OR + CMAKE_OSX_ARCHITECTURES MATCHES "i386") + set(CPU_TYPE ${CMAKE_OSX_ARCHITECTURES}) +endif() +if(CMAKE_OSX_ARCHITECTURES MATCHES "ppc") + set(CPU_TYPE powerpc) +endif() +if(MSVC_IDE AND CMAKE_GENERATOR_PLATFORM MATCHES "arm64") + set(CPU_TYPE arm64) +endif() + +message(STATUS "${BITS}-bit build (${CPU_TYPE})") + +macro(report_directory var) + if(CMAKE_INSTALL_${var} STREQUAL CMAKE_INSTALL_FULL_${var}) + message(STATUS "CMAKE_INSTALL_${var} = ${CMAKE_INSTALL_${var}}") + else() + message(STATUS "CMAKE_INSTALL_${var} = ${CMAKE_INSTALL_${var}} (${CMAKE_INSTALL_FULL_${var}})") + endif() + mark_as_advanced(CLEAR CMAKE_INSTALL_${var}) +endmacro() + +set(DIRLIST "BINDIR;DATAROOTDIR;DOCDIR;INCLUDEDIR;LIBDIR") +if(UNIX) + list(APPEND DIRLIST "MANDIR") +endif() +foreach(dir ${DIRLIST}) + report_directory(${dir}) +endforeach() + + +############################################################################### +# CONFIGURATION OPTIONS +############################################################################### + +macro(boolean_number var) + if(${var}) + set(${var} 1 ${ARGN}) + else() + set(${var} 0 ${ARGN}) + endif() +endmacro() + +option(ENABLE_SHARED "Build shared libraries" FALSE) +boolean_number(ENABLE_SHARED) +option(ENABLE_STATIC "Build static libraries" TRUE) +boolean_number(ENABLE_STATIC) +option(REQUIRE_SIMD "Generate a fatal error if SIMD extensions are not available for this platform (default is to fall back to a non-SIMD build)" FALSE) +boolean_number(REQUIRE_SIMD) +option(WITH_12BIT "Encode/decode JPEG images with 12-bit samples (implies WITH_ARITH_DEC=0 WITH_ARITH_ENC=0 WITH_JAVA=0 WITH_SIMD=0 WITH_TURBOJPEG=0 )" FALSE) +boolean_number(WITH_12BIT) +option(WITH_ARITH_DEC "Include arithmetic decoding support when emulating the libjpeg v6b API/ABI" TRUE) +boolean_number(WITH_ARITH_DEC) +option(WITH_ARITH_ENC "Include arithmetic encoding support when emulating the libjpeg v6b API/ABI" TRUE) +boolean_number(WITH_ARITH_ENC) +if(CMAKE_C_COMPILER_ABI MATCHES "ELF X32") + set(WITH_JAVA 0) +else() + option(WITH_JAVA "Build Java wrapper for the TurboJPEG API library (implies ENABLE_SHARED=1)" FALSE) + boolean_number(WITH_JAVA) +endif() +option(WITH_JPEG7 "Emulate libjpeg v7 API/ABI (this makes ${CMAKE_PROJECT_NAME} backward-incompatible with libjpeg v6b)" FALSE) +boolean_number(WITH_JPEG7) +option(WITH_JPEG8 "Emulate libjpeg v8 API/ABI (this makes ${CMAKE_PROJECT_NAME} backward-incompatible with libjpeg v6b)" FALSE) +boolean_number(WITH_JPEG8) +option(WITH_MEM_SRCDST "Include in-memory source/destination manager functions when emulating the libjpeg v6b or v7 API/ABI" TRUE) +boolean_number(WITH_MEM_SRCDST) +option(WITH_SIMD "Include SIMD extensions, if available for this platform" FALSE) +boolean_number(WITH_SIMD) +option(WITH_TURBOJPEG "Include the TurboJPEG API library and associated test programs" FALSE) +boolean_number(WITH_TURBOJPEG) +option(WITH_FUZZ "Build fuzz targets" FALSE) + +macro(report_option var desc) + if(${var}) + message(STATUS "${desc} enabled (${var} = ${${var}})") + else() + message(STATUS "${desc} disabled (${var} = ${${var}})") + endif() +endmacro() + +if(WITH_JAVA) + set(ENABLE_SHARED 1) +endif() + +# Explicitly setting CMAKE_POSITION_INDEPENDENT_CODE=FALSE disables PIC for all +# targets, which will cause the shared library builds to fail. Thus, if shared +# libraries are enabled and CMAKE_POSITION_INDEPENDENT_CODE is explicitly set +# to FALSE, we need to unset it, thus restoring the default behavior +# (automatically using PIC for shared library targets.) +if(DEFINED CMAKE_POSITION_INDEPENDENT_CODE AND + NOT CMAKE_POSITION_INDEPENDENT_CODE AND ENABLE_SHARED) + unset(CMAKE_POSITION_INDEPENDENT_CODE CACHE) +endif() + +report_option(ENABLE_SHARED "Shared libraries") +report_option(ENABLE_STATIC "Static libraries") + +if(ENABLE_SHARED) + set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}) +endif() + +if(WITH_JPEG8 OR WITH_JPEG7) + set(WITH_ARITH_ENC 1) + set(WITH_ARITH_DEC 1) +endif() +if(WITH_JPEG8) + set(WITH_MEM_SRCDST 0) +endif() + +if(WITH_12BIT) + set(WITH_ARITH_DEC 0) + set(WITH_ARITH_ENC 0) + set(WITH_JAVA 0) + set(WITH_SIMD 0) + set(WITH_TURBOJPEG 0) + set(BITS_IN_JSAMPLE 12) +else() + set(BITS_IN_JSAMPLE 8) +endif() +report_option(WITH_12BIT "12-bit JPEG support") + +if(WITH_ARITH_DEC) + set(D_ARITH_CODING_SUPPORTED 1) +endif() +if(NOT WITH_12BIT) + report_option(WITH_ARITH_DEC "Arithmetic decoding support") +endif() + +if(WITH_ARITH_ENC) + set(C_ARITH_CODING_SUPPORTED 1) +endif() +if(NOT WITH_12BIT) + report_option(WITH_ARITH_ENC "Arithmetic encoding support") +endif() + +if(NOT WITH_12BIT) + report_option(WITH_TURBOJPEG "TurboJPEG API library") + report_option(WITH_JAVA "TurboJPEG Java wrapper") +endif() + +if(WITH_MEM_SRCDST) + set(MEM_SRCDST_SUPPORTED 1) + set(MEM_SRCDST_FUNCTIONS "global: jpeg_mem_dest; jpeg_mem_src;") +endif() +if(NOT WITH_JPEG8) + report_option(WITH_MEM_SRCDST "In-memory source/destination managers") +endif() + +set(SO_AGE 2) +if(WITH_MEM_SRCDST) + set(SO_AGE 3) +endif() + +if(WITH_JPEG8) + set(JPEG_LIB_VERSION 80) +elseif(WITH_JPEG7) + set(JPEG_LIB_VERSION 70) +else() + set(JPEG_LIB_VERSION 62) +endif() + +math(EXPR JPEG_LIB_VERSION_DIV10 "${JPEG_LIB_VERSION} / 10") +math(EXPR JPEG_LIB_VERSION_MOD10 "${JPEG_LIB_VERSION} % 10") +if(JPEG_LIB_VERSION STREQUAL "62") + set(DEFAULT_SO_MAJOR_VERSION ${JPEG_LIB_VERSION}) +else() + set(DEFAULT_SO_MAJOR_VERSION ${JPEG_LIB_VERSION_DIV10}) +endif() +if(JPEG_LIB_VERSION STREQUAL "80") + set(DEFAULT_SO_MINOR_VERSION 2) +else() + set(DEFAULT_SO_MINOR_VERSION 0) +endif() + +# This causes SO_MAJOR_VERSION/SO_MINOR_VERSION to reset to defaults if +# WITH_JPEG7 or WITH_JPEG8 has changed. +if((DEFINED WITH_JPEG7_INT AND NOT WITH_JPEG7 EQUAL WITH_JPEG7_INT) OR + (DEFINED WITH_JPEG8_INT AND NOT WITH_JPEG8 EQUAL WITH_JPEG8_INT)) + set(FORCE_SO_VERSION "FORCE") +endif() +set(WITH_JPEG7_INT ${WITH_JPEG7} CACHE INTERNAL "") +set(WITH_JPEG8_INT ${WITH_JPEG8} CACHE INTERNAL "") + +set(SO_MAJOR_VERSION ${DEFAULT_SO_MAJOR_VERSION} CACHE STRING + "Major version of the libjpeg API shared library (default: ${DEFAULT_SO_MAJOR_VERSION})" + ${FORCE_SO_VERSION}) +set(SO_MINOR_VERSION ${DEFAULT_SO_MINOR_VERSION} CACHE STRING + "Minor version of the libjpeg API shared library (default: ${DEFAULT_SO_MINOR_VERSION})" + ${FORCE_SO_VERSION}) + +set(JPEG_LIB_VERSION_DECIMAL "${JPEG_LIB_VERSION_DIV10}.${JPEG_LIB_VERSION_MOD10}") +message(STATUS "Emulating libjpeg API/ABI v${JPEG_LIB_VERSION_DECIMAL} (WITH_JPEG7 = ${WITH_JPEG7}, WITH_JPEG8 = ${WITH_JPEG8})") +message(STATUS "libjpeg API shared library version = ${SO_MAJOR_VERSION}.${SO_AGE}.${SO_MINOR_VERSION}") + +# Because the TurboJPEG API library uses versioned symbols and changes the +# names of functions whenever they are modified in a backward-incompatible +# manner, it is always backward-ABI-compatible with itself, so the major and +# minor SO versions don't change. However, we increase the middle number (the +# SO "age") whenever functions are added to the API. +set(TURBOJPEG_SO_MAJOR_VERSION 0) +set(TURBOJPEG_SO_AGE 2) +set(TURBOJPEG_SO_VERSION 0.${TURBOJPEG_SO_AGE}.0) + + +############################################################################### +# COMPILER SETTINGS +############################################################################### + +if(MSVC) + option(WITH_CRT_DLL + "Link all ${CMAKE_PROJECT_NAME} libraries and executables with the C run-time DLL (msvcr*.dll) instead of the static C run-time library (libcmt*.lib.) The default is to use the C run-time DLL only with the libraries and executables that need it." + FALSE) + if(NOT WITH_CRT_DLL) + # Use the static C library for all build types + foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) + if(${var} MATCHES "/MD") + string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}") + endif() + endforeach() + endif() + add_definitions(-D_CRT_NONSTDC_NO_WARNINGS) +endif() + +if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID STREQUAL "Clang") + # Use the maximum optimization level for release builds + foreach(var CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO) + if(${var} MATCHES "-O2") + string(REGEX REPLACE "-O2" "-O3" ${var} "${${var}}") + endif() + endforeach() +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "SunOS") + if(CMAKE_C_COMPILER_ID MATCHES "SunPro") + # Use the maximum optimization level for release builds + foreach(var CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO) + if(${var} MATCHES "-xO3") + string(REGEX REPLACE "-xO3" "-xO5" ${var} "${${var}}") + endif() + if(${var} MATCHES "-xO2") + string(REGEX REPLACE "-xO2" "-xO5" ${var} "${${var}}") + endif() + endforeach() + endif() +endif() + +string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UC) + +set(EFFECTIVE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UC}}") +message(STATUS "Compiler flags = ${EFFECTIVE_C_FLAGS}") + +set(EFFECTIVE_LD_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE_UC}}") +message(STATUS "Linker flags = ${EFFECTIVE_LD_FLAGS}") + +include(CheckCSourceCompiles) +include(CheckIncludeFiles) +include(CheckTypeSize) + +check_type_size("size_t" SIZE_T) +check_type_size("unsigned long" UNSIGNED_LONG) + +if(SIZE_T EQUAL UNSIGNED_LONG) + check_c_source_compiles("int main(int argc, char **argv) { unsigned long a = argc; return __builtin_ctzl(a); }" + HAVE_BUILTIN_CTZL) +endif() +if(MSVC) + check_include_files("intrin.h" HAVE_INTRIN_H) +endif() + +if(UNIX) + if(CMAKE_CROSSCOMPILING) + set(RIGHT_SHIFT_IS_UNSIGNED 0) + else() + include(CheckCSourceRuns) + check_c_source_runs(" + #include + #include + int is_shifting_signed (long arg) { + long res = arg >> 4; + if (res == -0x7F7E80CL) + return 1; /* right shift is signed */ + /* see if unsigned-shift hack will fix it. */ + /* we can't just test exact value since it depends on width of long... */ + res |= (~0L) << (32-4); + if (res == -0x7F7E80CL) + return 0; /* right shift is unsigned */ + printf(\"Right shift isn't acting as I expect it to.\\\\n\"); + printf(\"I fear the JPEG software will not work at all.\\\\n\\\\n\"); + return 0; /* try it with unsigned anyway */ + } + int main (void) { + exit(is_shifting_signed(-0x7F7E80B1L)); + }" RIGHT_SHIFT_IS_UNSIGNED) + endif() +endif() + +if(MSVC) + set(INLINE_OPTIONS "__inline;inline") +else() + set(INLINE_OPTIONS "__inline__;inline") +endif() +option(FORCE_INLINE "Force function inlining" TRUE) +boolean_number(FORCE_INLINE) +if(FORCE_INLINE) + if(MSVC) + list(INSERT INLINE_OPTIONS 0 "__forceinline") + else() + list(INSERT INLINE_OPTIONS 0 "inline __attribute__((always_inline))") + list(INSERT INLINE_OPTIONS 0 "__inline__ __attribute__((always_inline))") + endif() +endif() +foreach(inline ${INLINE_OPTIONS}) + check_c_source_compiles("${inline} static int foo(void) { return 0; } int main(void) { return foo(); }" + INLINE_WORKS) + if(INLINE_WORKS) + set(INLINE ${inline}) + break() + endif() +endforeach() +if(NOT INLINE_WORKS) + message(FATAL_ERROR "Could not determine how to inline functions.") +endif() +message(STATUS "INLINE = ${INLINE} (FORCE_INLINE = ${FORCE_INLINE})") + +if(WITH_TURBOJPEG) + if(MSVC) + set(THREAD_LOCAL "__declspec(thread)") + else() + set(THREAD_LOCAL "__thread") + endif() + check_c_source_compiles("${THREAD_LOCAL} int i; int main(void) { i = 0; return i; }" HAVE_THREAD_LOCAL) + if(HAVE_THREAD_LOCAL) + message(STATUS "THREAD_LOCAL = ${THREAD_LOCAL}") + else() + message(WARNING "Thread-local storage is not available. The TurboJPEG API library's global error handler will not be thread-safe.") + unset(THREAD_LOCAL) + endif() +endif() + +if(UNIX AND NOT APPLE) + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map "VERS_1 { global: *; };") + set(CMAKE_REQUIRED_FLAGS + "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/conftest.map") + check_c_source_compiles("int main(void) { return 0; }" HAVE_VERSION_SCRIPT) + set(CMAKE_REQUIRED_FLAGS) + file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map) + if(HAVE_VERSION_SCRIPT) + message(STATUS "Linker supports GNU-style version scripts") + set(MAPFLAG "-Wl,--version-script,") + set(TJMAPFLAG "-Wl,--version-script,") + else() + message(STATUS "Linker does not support GNU-style version scripts") + if(CMAKE_SYSTEM_NAME STREQUAL "SunOS") + # The Solaris linker doesn't like our version script for the libjpeg API + # library, but the version script for the TurboJPEG API library should + # still work. + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map + "VERS_1 { global: foo; local: *; }; VERS_2 { global: foo2; } VERS_1;") + set(CMAKE_REQUIRED_FLAGS "-Wl,-M,${CMAKE_CURRENT_BINARY_DIR}/conftest.map -shared") + check_c_source_compiles("int foo() { return 0; } int foo2() { return 2; }" + HAVE_MAPFILE) + set(CMAKE_REQUIRED_FLAGS) + file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/conftest.map) + if(HAVE_MAPFILE) + message(STATUS "Linker supports mapfiles") + set(TJMAPFLAG "-Wl,-M,") + else() + message(STATUS "Linker does not support mapfiles") + endif() + endif() + endif() +endif() + +# Generate files +if(WIN32) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/win/jconfig.h.in jconfig.h) +else() + configure_file(jconfig.h.in jconfig.h) +endif() +configure_file(jconfigint.h.in jconfigint.h) +configure_file(jversion.h.in jversion.h) +if(UNIX) + configure_file(libjpeg.map.in libjpeg.map) +endif() + +# Include directories and compiler definitions +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) + + +############################################################################### +# TARGETS +############################################################################### + +if(CMAKE_EXECUTABLE_SUFFIX_TMP) + set(CMAKE_EXECUTABLE_SUFFIX ${CMAKE_EXECUTABLE_SUFFIX_TMP}) +endif() +message(STATUS "CMAKE_EXECUTABLE_SUFFIX = ${CMAKE_EXECUTABLE_SUFFIX}") + +set(JPEG_SOURCES jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c + jcicc.c jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c + jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdatadst.c + jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdicc.c jdinput.c + jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c jdpostct.c jdsample.c + jdtrans.c jerror.c jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c + jidctint.c jidctred.c jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c) + +if(WITH_ARITH_ENC OR WITH_ARITH_DEC) + set(JPEG_SOURCES ${JPEG_SOURCES} jaricom.c) +endif() + +if(WITH_ARITH_ENC) + set(JPEG_SOURCES ${JPEG_SOURCES} jcarith.c) +endif() + +if(WITH_ARITH_DEC) + set(JPEG_SOURCES ${JPEG_SOURCES} jdarith.c) +endif() + +if(WITH_SIMD) + add_subdirectory(simd) + if(NEON_INTRINSICS) + add_definitions(-DNEON_INTRINSICS) + endif() +elseif(NOT WITH_12BIT) + message(STATUS "SIMD extensions: None (WITH_SIMD = ${WITH_SIMD})") +endif() +if(WITH_SIMD) + message(STATUS "SIMD extensions: ${CPU_TYPE} (WITH_SIMD = ${WITH_SIMD})") + if(MSVC_IDE OR XCODE) + set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1) + endif() +else() + add_library(simd OBJECT jsimd_none.c) + if(NOT WIN32 AND (CMAKE_POSITION_INDEPENDENT_CODE OR ENABLE_SHARED)) + set_target_properties(simd PROPERTIES POSITION_INDEPENDENT_CODE 1) + endif() +endif() + +if(WITH_JAVA) + add_subdirectory(java) +endif() + +if(ENABLE_SHARED) + add_subdirectory(sharedlib) +endif() + +if(ENABLE_STATIC) + add_library(jpeg-static STATIC ${JPEG_SOURCES} $ + ${SIMD_OBJS}) + if(NOT MSVC) + set_target_properties(jpeg-static PROPERTIES OUTPUT_NAME jpeg) + endif() +endif() + +if(WITH_TURBOJPEG) + if(ENABLE_SHARED) + set(TURBOJPEG_SOURCES ${JPEG_SOURCES} $ ${SIMD_OBJS} + turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c rdbmp.c rdppm.c + wrbmp.c wrppm.c) + set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile) + if(WITH_JAVA) + set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} turbojpeg-jni.c) + include_directories(${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) + set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile.jni) + endif() + if(MSVC) + configure_file(${CMAKE_SOURCE_DIR}/win/turbojpeg.rc.in + ${CMAKE_BINARY_DIR}/win/turbojpeg.rc) + set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} + ${CMAKE_BINARY_DIR}/win/turbojpeg.rc) + endif() + add_library(turbojpeg SHARED ${TURBOJPEG_SOURCES}) + set_property(TARGET turbojpeg PROPERTY COMPILE_FLAGS + "-DBMP_SUPPORTED -DPPM_SUPPORTED") + if(WIN32) + set_target_properties(turbojpeg PROPERTIES DEFINE_SYMBOL DLLDEFINE) + endif() + if(MINGW) + set_target_properties(turbojpeg PROPERTIES LINK_FLAGS -Wl,--kill-at) + endif() + if(APPLE AND (NOT CMAKE_OSX_DEPLOYMENT_TARGET OR + CMAKE_OSX_DEPLOYMENT_TARGET VERSION_GREATER 10.4)) + if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG) + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") + endif() + set_target_properties(turbojpeg PROPERTIES MACOSX_RPATH 1) + endif() + set_target_properties(turbojpeg PROPERTIES + SOVERSION ${TURBOJPEG_SO_MAJOR_VERSION} VERSION ${TURBOJPEG_SO_VERSION}) + if(TJMAPFLAG) + set_target_properties(turbojpeg PROPERTIES + LINK_FLAGS "${TJMAPFLAG}${TJMAPFILE}") + endif() + endif() + + if(ENABLE_STATIC) + add_library(turbojpeg-static STATIC ${JPEG_SOURCES} $ + ${SIMD_OBJS} turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c rdbmp.c + rdppm.c wrbmp.c wrppm.c) + set_property(TARGET turbojpeg-static PROPERTY COMPILE_FLAGS + "-DBMP_SUPPORTED -DPPM_SUPPORTED") + if(NOT MSVC) + set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg) + endif() + endif() +endif() + +if(WIN32) + set(USE_SETMODE "-DUSE_SETMODE") +endif() +if(WITH_12BIT) + set(COMPILE_FLAGS "-DGIF_SUPPORTED -DPPM_SUPPORTED ${USE_SETMODE}") +else() + set(COMPILE_FLAGS "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED ${USE_SETMODE}") + set(CJPEG_BMP_SOURCES rdbmp.c rdtarga.c) + set(DJPEG_BMP_SOURCES wrbmp.c wrtarga.c) +endif() \ No newline at end of file diff --git a/cmake/CMakeLists.png b/cmake/CMakeLists.png new file mode 100644 index 0000000000..2521ab41be --- /dev/null +++ b/cmake/CMakeLists.png @@ -0,0 +1,741 @@ +# CMakeLists.txt + +# Copyright (C) 2018 Cosmin Truta +# Copyright (C) 2007,2009-2018 Glenn Randers-Pehrson +# Written by Christian Ehrlicher, 2007 +# Revised by Roger Lowman, 2009-2010 +# Revised by Clifford Yapp, 2011-2012,2017 +# Revised by Roger Leigh, 2016 +# Revised by Andreas Franek, 2016 +# Revised by Sam Serrels, 2017 +# Revised by Vadim Barkov, 2017 +# Revised by Vicky Pfau, 2018 +# Revised by Cameron Cawley, 2018 +# Revised by Cosmin Truta, 2018 +# Revised by Kyle Bentley, 2018 + +# This code is released under the libpng license. +# For conditions of distribution and use, see the disclaimer +# and license in png.h + +cmake_minimum_required(VERSION 3.10) +cmake_policy(VERSION 3.1) +# When using CMake 3.4 and later, don't export symbols from executables unless +# the CMAKE_ENABLE_EXPORTS variable is set. +if(POLICY CMP0065) + cmake_policy(SET CMP0065 NEW) +endif() +if (POLICY CMP0077) + cmake_policy(SET CMP0077 NEW) +endif() +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) + +project(libpng C ASM) +enable_testing() + +set(PNGLIB_MAJOR 1) +set(PNGLIB_MINOR 6) +set(PNGLIB_RELEASE 37) +set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR}) +set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE}) + +include(GNUInstallDirs) + +# needed packages + +# Allow users to specify location of Zlib. +# Useful if zlib is being built alongside this as a sub-project. +option(PNG_BUILD_ZLIB "Custom zlib Location, else find_package is used" ON) + +if(NOT PNG_BUILD_ZLIB) + find_package(ZLIB REQUIRED) + include_directories(${ZLIB_INCLUDE_DIR}) +endif() + +if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU) + find_library(M_LIBRARY m) +else() + # libm is not needed and/or not available + set(M_LIBRARY "") +endif() + +# COMMAND LINE OPTIONS +option(PNG_SHARED "Build shared lib" OFF) +option(PNG_STATIC "Build static lib" ON) +option(PNG_TESTS "Build libpng tests" OFF) + +# Many more configuration options could be added here +option(PNG_FRAMEWORK "Build OS X framework" OFF) +option(PNG_DEBUG "Build with debug output" OFF) +option(PNG_HARDWARE_OPTIMIZATIONS "Enable hardware optimizations" OFF) + +set(PNG_PREFIX "" CACHE STRING "Prefix to add to the API function names") +set(DFA_XTRA "" CACHE FILEPATH "File containing extra configuration settings") + +if(PNG_HARDWARE_OPTIMIZATIONS) + +# set definitions and sources for arm +if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") + set(PNG_ARM_NEON_POSSIBLE_VALUES check on off) + set(PNG_ARM_NEON "check" CACHE STRING "Enable ARM NEON optimizations: + check: (default) use internal checking code; + off: disable the optimizations; + on: turn on unconditionally.") + set_property(CACHE PNG_ARM_NEON PROPERTY STRINGS + ${PNG_ARM_NEON_POSSIBLE_VALUES}) + list(FIND PNG_ARM_NEON_POSSIBLE_VALUES ${PNG_ARM_NEON} index) + if(index EQUAL -1) + message(FATAL_ERROR + "PNG_ARM_NEON must be one of [${PNG_ARM_NEON_POSSIBLE_VALUES}]") + elseif(NOT ${PNG_ARM_NEON} STREQUAL "off") + set(libpng_arm_sources + arm/arm_init.c + arm/filter_neon.S + arm/filter_neon_intrinsics.c + arm/palette_neon_intrinsics.c) + + if(${PNG_ARM_NEON} STREQUAL "on") + add_definitions(-DPNG_ARM_NEON_OPT=2) + elseif(${PNG_ARM_NEON} STREQUAL "check") + add_definitions(-DPNG_ARM_NEON_CHECK_SUPPORTED) + endif() + else() + add_definitions(-DPNG_ARM_NEON_OPT=0) + endif() +endif() + +# set definitions and sources for powerpc +if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*") + set(PNG_POWERPC_VSX_POSSIBLE_VALUES on off) + set(PNG_POWERPC_VSX "on" CACHE STRING "Enable POWERPC VSX optimizations: + off: disable the optimizations.") + set_property(CACHE PNG_POWERPC_VSX PROPERTY STRINGS + ${PNG_POWERPC_VSX_POSSIBLE_VALUES}) + list(FIND PNG_POWERPC_VSX_POSSIBLE_VALUES ${PNG_POWERPC_VSX} index) + if(index EQUAL -1) + message(FATAL_ERROR + "PNG_POWERPC_VSX must be one of [${PNG_POWERPC_VSX_POSSIBLE_VALUES}]") + elseif(NOT ${PNG_POWERPC_VSX} STREQUAL "off") + set(libpng_powerpc_sources + powerpc/powerpc_init.c + powerpc/filter_vsx_intrinsics.c) + if(${PNG_POWERPC_VSX} STREQUAL "on") + add_definitions(-DPNG_POWERPC_VSX_OPT=2) + endif() + else() + add_definitions(-DPNG_POWERPC_VSX_OPT=0) + endif() +endif() + +# set definitions and sources for intel +if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*") + set(PNG_INTEL_SSE_POSSIBLE_VALUES on off) + set(PNG_INTEL_SSE "on" CACHE STRING "Enable INTEL_SSE optimizations: + off: disable the optimizations") + set_property(CACHE PNG_INTEL_SSE PROPERTY STRINGS + ${PNG_INTEL_SSE_POSSIBLE_VALUES}) + list(FIND PNG_INTEL_SSE_POSSIBLE_VALUES ${PNG_INTEL_SSE} index) + if(index EQUAL -1) + message(FATAL_ERROR + "PNG_INTEL_SSE must be one of [${PNG_INTEL_SSE_POSSIBLE_VALUES}]") + elseif(NOT ${PNG_INTEL_SSE} STREQUAL "off") + set(libpng_intel_sources + intel/intel_init.c + intel/filter_sse2_intrinsics.c) + if(${PNG_INTEL_SSE} STREQUAL "on") + add_definitions(-DPNG_INTEL_SSE_OPT=1) + endif() + else() + add_definitions(-DPNG_INTEL_SSE_OPT=0) + endif() +endif() + +# set definitions and sources for MIPS +if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*") + set(PNG_MIPS_MSA_POSSIBLE_VALUES on off) + set(PNG_MIPS_MSA "on" CACHE STRING "Enable MIPS_MSA optimizations: + off: disable the optimizations") + set_property(CACHE PNG_MIPS_MSA PROPERTY STRINGS + ${PNG_MIPS_MSA_POSSIBLE_VALUES}) + list(FIND PNG_MIPS_MSA_POSSIBLE_VALUES ${PNG_MIPS_MSA} index) + if(index EQUAL -1) + message(FATAL_ERROR + "PNG_MIPS_MSA must be one of [${PNG_MIPS_MSA_POSSIBLE_VALUES}]") + elseif(NOT ${PNG_MIPS_MSA} STREQUAL "off") + set(libpng_mips_sources + mips/mips_init.c + mips/filter_msa_intrinsics.c) + if(${PNG_MIPS_MSA} STREQUAL "on") + add_definitions(-DPNG_MIPS_MSA_OPT=2) + endif() + else() + add_definitions(-DPNG_MIPS_MSA_OPT=0) + endif() +endif() + +else(PNG_HARDWARE_OPTIMIZATIONS) + +# set definitions and sources for arm +if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") + add_definitions(-DPNG_ARM_NEON_OPT=0) +endif() + +# set definitions and sources for powerpc +if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*") + add_definitions(-DPNG_POWERPC_VSX_OPT=0) +endif() + +# set definitions and sources for intel +if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*") + add_definitions(-DPNG_INTEL_SSE_OPT=0) +endif() + +# set definitions and sources for MIPS +if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*") + add_definitions(-DPNG_MIPS_MSA_OPT=0) +endif() + +endif(PNG_HARDWARE_OPTIMIZATIONS) + +# SET LIBNAME +set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR}) + +# to distinguish between debug and release lib +set(CMAKE_DEBUG_POSTFIX "d") + +include(CheckCSourceCompiles) +option(ld-version-script "Enable linker version script" ON) +if(ld-version-script AND NOT APPLE) + # Check if LD supports linker scripts. + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/conftest.map" "VERS_1 { + global: sym; + local: *; +}; + +VERS_2 { + global: sym2; + main; +} VERS_1; +") + set(CMAKE_REQUIRED_FLAGS_SAVE ${CMAKE_REQUIRED_FLAGS}) + set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS} "-Wl,--version-script='${CMAKE_CURRENT_BINARY_DIR}/conftest.map'") + check_c_source_compiles("void sym(void) {} +void sym2(void) {} +int main(void) {return 0;} +" HAVE_LD_VERSION_SCRIPT) + if(NOT HAVE_LD_VERSION_SCRIPT) + set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_SAVE} "-Wl,-M -Wl,${CMAKE_CURRENT_BINARY_DIR}/conftest.map") + check_c_source_compiles("void sym(void) {} +void sym2(void) {} +int main(void) {return 0;} +" HAVE_SOLARIS_LD_VERSION_SCRIPT) + endif() + set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_SAVE}) + file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/conftest.map") +endif() + +# Find symbol prefix. Likely obsolete and unnecessary with recent +# toolchains (it's not done in many other projects). +function(symbol_prefix) + set(SYMBOL_PREFIX) + + execute_process(COMMAND "${CMAKE_C_COMPILER}" "-E" "-" + INPUT_FILE /dev/null + OUTPUT_VARIABLE OUT + RESULT_VARIABLE STATUS) + + if(CPP_FAIL) + message(WARNING "Failed to run the C preprocessor") + endif() + + string(REPLACE "\n" ";" OUT "${OUT}") + foreach(line ${OUT}) + string(REGEX MATCH "^PREFIX=" found_match "${line}") + if(found_match) + string(REGEX REPLACE "^PREFIX=(.*\)" "\\1" prefix "${line}") + string(REGEX MATCH "__USER_LABEL_PREFIX__" found_match "${prefix}") + if(found_match) + string(REGEX REPLACE "(.*)__USER_LABEL_PREFIX__(.*)" "\\1\\2" prefix "${prefix}") + endif() + set(SYMBOL_PREFIX "${prefix}") + endif() + endforeach() + + message(STATUS "Symbol prefix: ${SYMBOL_PREFIX}") + set(SYMBOL_PREFIX "${SYMBOL_PREFIX}" PARENT_SCOPE) +endfunction() + +if(UNIX) + symbol_prefix() +endif() + +find_program(AWK NAMES gawk awk) + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +if(NOT AWK OR ANDROID) + # No awk available to generate sources; use pre-built pnglibconf.h + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt + ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h) + add_custom_target(genfiles) # Dummy +else() + include(CMakeParseArguments) + # Generate .chk from .out with awk + # generate_chk(INPUT inputfile OUTPUT outputfile [DEPENDS dep1 [dep2...]]) + function(generate_chk) + set(options) + set(oneValueArgs INPUT OUTPUT) + set(multiValueArgs DEPENDS) + cmake_parse_arguments(_GC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + if(NOT _GC_INPUT) + message(FATAL_ERROR "generate_chk: Missing INPUT argument") + endif() + if(NOT _GC_OUTPUT) + message(FATAL_ERROR "generate_chk: Missing OUTPUT argument") + endif() + + add_custom_command(OUTPUT "${_GC_OUTPUT}" + COMMAND "${CMAKE_COMMAND}" + "-DINPUT=${_GC_INPUT}" + "-DOUTPUT=${_GC_OUTPUT}" + -P "${CMAKE_CURRENT_BINARY_DIR}/scripts/genchk.cmake" + DEPENDS "${_GC_INPUT}" ${_GC_DEPENDS} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + endfunction() + + # Generate .out from .c with awk + # generate_out(INPUT inputfile OUTPUT outputfile [DEPENDS dep1 [dep2...]]) + function(generate_out) + set(options) + set(oneValueArgs INPUT OUTPUT) + set(multiValueArgs DEPENDS) + cmake_parse_arguments(_GO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + if(NOT _GO_INPUT) + message(FATAL_ERROR "generate_out: Missing INPUT argument") + endif() + if(NOT _GO_OUTPUT) + message(FATAL_ERROR "generate_out: Missing OUTPUT argument") + endif() + + add_custom_command(OUTPUT "${_GO_OUTPUT}" + COMMAND "${CMAKE_COMMAND}" + "-DINPUT=${_GO_INPUT}" + "-DOUTPUT=${_GO_OUTPUT}" + -P "${CMAKE_CURRENT_BINARY_DIR}/scripts/genout.cmake" + DEPENDS "${_GO_INPUT}" ${_GO_DEPENDS} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + endfunction() + + # Generate specific source file with awk + # generate_source(OUTPUT outputfile [DEPENDS dep1 [dep2...]]) + function(generate_source) + set(options) + set(oneValueArgs OUTPUT) + set(multiValueArgs DEPENDS) + cmake_parse_arguments(_GSO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + if(NOT _GSO_OUTPUT) + message(FATAL_ERROR "generate_source: Missing OUTPUT argument") + endif() + + add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${_GSO_OUTPUT}" + COMMAND "${CMAKE_COMMAND}" + "-DOUTPUT=${_GSO_OUTPUT}" + -P "${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake" + DEPENDS ${_GSO_DEPENDS} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + endfunction() + + # Copy file + function(generate_copy source destination) + add_custom_command(OUTPUT "${destination}" + COMMAND "${CMAKE_COMMAND}" -E remove "${destination}" + COMMAND "${CMAKE_COMMAND}" -E copy "${source}" + "${destination}" + DEPENDS "${source}") + endfunction() + + # Generate scripts/pnglibconf.h + generate_source(OUTPUT "scripts/pnglibconf.c" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.dfa" + "${CMAKE_CURRENT_SOURCE_DIR}/scripts/options.awk" + "${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h") + + # Generate pnglibconf.c + generate_source(OUTPUT "pnglibconf.c" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.dfa" + "${CMAKE_CURRENT_SOURCE_DIR}/scripts/options.awk" + "${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h") + + if(PNG_PREFIX) + set(PNGLIBCONF_H_EXTRA_DEPENDS + "${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out" + "${CMAKE_CURRENT_SOURCE_DIR}/scripts/macro.lst") + set(PNGPREFIX_H_EXTRA_DEPENDS + "${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out") + endif() + + generate_out(INPUT "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.c" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out") + + # Generate pnglibconf.h + generate_source(OUTPUT "pnglibconf.h" + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out" + ${PNGLIBCONF_H_EXTRA_DEPENDS}) + + generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/intprefix.c" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out" + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h") + + generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/prefix.c" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h" + "${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h" + "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out") + + # Generate pngprefix.h + generate_source(OUTPUT "pngprefix.h" + DEPENDS ${PNGPREFIX_H_EXTRA_DEPENDS}) + + generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/sym.c" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out" + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h") + + generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/symbols.c" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h" + "${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h" + "${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt") + + generate_out(INPUT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/vers.c" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/png.h" + "${CMAKE_CURRENT_SOURCE_DIR}/pngconf.h" + "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h") + + generate_chk(INPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/checksym.awk" + "${CMAKE_CURRENT_SOURCE_DIR}/scripts/symbols.def") + + add_custom_target(symbol-check DEPENDS + "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk") + + generate_copy("${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out" + "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym") + generate_copy("${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out" + "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers") + + add_custom_target(genvers DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers") + add_custom_target(gensym DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym") + + add_custom_target("genprebuilt" + COMMAND "${CMAKE_COMMAND}" + "-DOUTPUT=scripts/pnglibconf.h.prebuilt" + -P "${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + + # A single target handles generation of all generated files. If + # they are depended upon separately by multiple targets, this + # confuses parallel make (it would require a separate top-level + # target for each file to track the dependencies properly). + add_custom_target(genfiles DEPENDS + "${CMAKE_CURRENT_BINARY_DIR}/libpng.sym" + "${CMAKE_CURRENT_BINARY_DIR}/libpng.vers" + "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.c" + "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h" + "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.out" + "${CMAKE_CURRENT_BINARY_DIR}/pngprefix.h" + "${CMAKE_CURRENT_BINARY_DIR}/scripts/intprefix.out" + "${CMAKE_CURRENT_BINARY_DIR}/scripts/pnglibconf.c" + "${CMAKE_CURRENT_BINARY_DIR}/scripts/prefix.out" + "${CMAKE_CURRENT_BINARY_DIR}/scripts/sym.out" + "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk" + "${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out" + "${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out") +endif(NOT AWK OR ANDROID) + +# OUR SOURCES +set(libpng_public_hdrs + png.h + pngconf.h + "${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h" +) +set(libpng_private_hdrs + pngpriv.h + pngdebug.h + pnginfo.h + pngstruct.h +) +if(AWK AND NOT ANDROID) + list(APPEND libpng_private_hdrs "${CMAKE_CURRENT_BINARY_DIR}/pngprefix.h") +endif() +set(libpng_sources + ${libpng_public_hdrs} + ${libpng_private_hdrs} + png.c + pngerror.c + pngget.c + pngmem.c + pngpread.c + pngread.c + pngrio.c + pngrtran.c + pngrutil.c + pngset.c + pngtrans.c + pngwio.c + pngwrite.c + pngwtran.c + pngwutil.c + ${libpng_arm_sources} + ${libpng_intel_sources} + ${libpng_mips_sources} + ${libpng_powerpc_sources} +) +set(pngtest_sources + pngtest.c +) +set(pngvalid_sources + contrib/libtests/pngvalid.c +) +set(pngstest_sources + contrib/libtests/pngstest.c +) +set(pngunknown_sources + contrib/libtests/pngunknown.c +) +set(pngimage_sources + contrib/libtests/pngimage.c +) +set(pngfix_sources + contrib/tools/pngfix.c +) +set(png_fix_itxt_sources + contrib/tools/png-fix-itxt.c +) + +if(MSVC) + add_definitions(-D_CRT_SECURE_NO_DEPRECATE) +endif() + +if(PNG_DEBUG) + add_definitions(-DPNG_DEBUG) +endif() + +# NOW BUILD OUR TARGET +include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR}) + +unset(PNG_LIB_TARGETS) + +if(PNG_STATIC) + # does not work without changing name + set(PNG_LIB_NAME_STATIC png_static) + add_library(png_static STATIC ${libpng_sources}) + add_dependencies(png_static genfiles) + # MSVC doesn't use a different file extension for shared vs. static + # libs. We are able to change OUTPUT_NAME to remove the _static + # for all other platforms. + if(NOT MSVC) + set_target_properties(png_static PROPERTIES + OUTPUT_NAME "${PNG_LIB_NAME}" + CLEAN_DIRECT_OUTPUT 1) + else() + set_target_properties(png_static PROPERTIES + OUTPUT_NAME "${PNG_LIB_NAME}_static" + CLEAN_DIRECT_OUTPUT 1) + endif() + list(APPEND PNG_LIB_TARGETS png_static) + if(MSVC) + # msvc does not append 'lib' - do it here to have consistent name + set_target_properties(png_static PROPERTIES PREFIX "lib") + endif() + target_link_libraries(png_static ${M_LIBRARY}) +endif() + +if(NOT PNG_LIB_TARGETS) + message(SEND_ERROR + "No library variant selected to build. " + "Please enable at least one of the following options: " + "PNG_STATIC, PNG_SHARED, PNG_FRAMEWORK") +endif() + +# Set a variable with CMake code which: +# Creates a symlink from src to dest (if possible) or alternatively +# copies if different. +include(CMakeParseArguments) + +function(create_symlink DEST_FILE) + + cmake_parse_arguments(S "" "FILE;TARGET" "" ${ARGN}) + + if(NOT S_TARGET AND NOT S_FILE) + message(FATAL_ERROR "create_symlink: Missing TARGET or FILE argument") + endif() + + if(S_TARGET AND S_FILE) + message(FATAL_ERROR "create_symlink: Both source file ${S_FILE} and build target ${S_TARGET} arguments are present; can only have one.") + endif() + + if(S_FILE) + # If we don't need to symlink something that's coming from a build target, + # we can go ahead and symlink/copy at configure time. + if(CMAKE_HOST_WIN32 AND NOT CYGWIN) + execute_process( + COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${S_FILE} ${DEST_FILE} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + else() + execute_process( + COMMAND ${CMAKE_COMMAND} -E create_symlink ${S_FILE} ${DEST_FILE} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + endif() + endif() + + if(S_TARGET) + # We need to use generator expressions, which can be a bit tricky, so for + # simplicity make the symlink a POST_BUILD step and use the TARGET + # signature of add_custom_command. + if(CMAKE_HOST_WIN32 AND NOT CYGWIN) + add_custom_command(TARGET ${S_TARGET} POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E copy_if_different $ $/${DEST_FILE}) + else() + add_custom_command(TARGET ${S_TARGET} POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E create_symlink $ $/${DEST_FILE}) + endif() + endif() + +endfunction() + +# Create source generation scripts. +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/genchk.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/scripts/genchk.cmake @ONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/genout.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/scripts/genout.cmake @ONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/gensrc.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake @ONLY) + +# libpng is a library so default to 'lib' +if(NOT DEFINED CMAKE_INSTALL_LIBDIR) + set(CMAKE_INSTALL_LIBDIR lib) +endif() + +# CREATE PKGCONFIG FILES +# We use the same files like ./configure, so we have to set its vars. +# Only do this on Windows for Cygwin - the files don't make much sense outside +# of a UNIX look-alike. +if(NOT WIN32 OR CYGWIN OR MINGW) + set(prefix ${CMAKE_INSTALL_PREFIX}) + set(exec_prefix ${CMAKE_INSTALL_PREFIX}) + set(libdir ${CMAKE_INSTALL_FULL_LIBDIR}) + set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR}) + set(LIBS "-lz -lm") + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY) + create_symlink(libpng.pc FILE ${PNGLIB_NAME}.pc) + + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in + ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY) + create_symlink(libpng-config FILE ${PNGLIB_NAME}-config) +endif() + +# SET UP LINKS +if(PNG_SHARED) + set_target_properties(png PROPERTIES +# VERSION 16.${PNGLIB_RELEASE}.1.6.37 + VERSION 16.${PNGLIB_RELEASE}.0 + SOVERSION 16 + CLEAN_DIRECT_OUTPUT 1) +endif() + +# INSTALL +if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) + install(TARGETS ${PNG_LIB_TARGETS} + EXPORT libpng + RUNTIME DESTINATION bin + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}) + + if(PNG_SHARED) + # Create a symlink for libpng.dll.a => libpng16.dll.a on Cygwin + if(CYGWIN OR MINGW) + create_symlink(libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} TARGET png) + install(FILES $/libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} + DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + + if(NOT WIN32) + create_symlink(libpng${CMAKE_SHARED_LIBRARY_SUFFIX} TARGET png) + install(FILES $/libpng${CMAKE_SHARED_LIBRARY_SUFFIX} + DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + endif() + + if(PNG_STATIC) + if(NOT WIN32 OR CYGWIN OR MINGW) + create_symlink(libpng${CMAKE_STATIC_LIBRARY_SUFFIX} TARGET png_static) + install(FILES $/libpng${CMAKE_STATIC_LIBRARY_SUFFIX} + DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + endif() +endif() + +if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL) + install(FILES ${libpng_public_hdrs} DESTINATION include) + install(FILES ${libpng_public_hdrs} DESTINATION include/${PNGLIB_NAME}) +endif() +if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL) + if(NOT WIN32 OR CYGWIN OR MINGW) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config DESTINATION bin) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config DESTINATION bin) + endif() +endif() + +if(NOT SKIP_INSTALL_PROGRAMS AND NOT SKIP_INSTALL_ALL) + install(TARGETS ${PNG_BIN_TARGETS} + RUNTIME DESTINATION bin) +endif() + +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL) + # Install man pages + if(NOT PNG_MAN_DIR) + set(PNG_MAN_DIR "share/man") + endif() + install(FILES libpng.3 libpngpf.3 DESTINATION ${PNG_MAN_DIR}/man3) + install(FILES png.5 DESTINATION ${PNG_MAN_DIR}/man5) + # Install pkg-config files + if(NOT CMAKE_HOST_WIN32 OR CYGWIN OR MINGW) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config + DESTINATION bin) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config + DESTINATION bin) + endif() +endif() + +# Create an export file that CMake users can include() to import our targets. +if(NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL) + install(EXPORT libpng DESTINATION lib/libpng FILE lib${PNG_LIB_NAME}.cmake) +endif() + +# what's with libpng-manual.txt and all the extra files? + +# UNINSTALL +# do we need this? + +# DIST +# do we need this? + +# to create msvc import lib for mingw compiled shared lib +# pexports libpng.dll > libpng.def +# lib /def:libpng.def /machine:x86 diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index c5a3707865..42d3de00d6 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -135,9 +135,14 @@ set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Use compiler extensions") # ugly hacks for MSVC which by default always reports an old C++ standard in the __cplusplus macro # and prints lots of pointless warnings about "unsafe" functions if(MSVC) - add_compile_options(/Zc:__cplusplus) - add_compile_options(/wd4244) - add_compile_options(/wd4267) + if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + add_compile_options(/Zc:__cplusplus) + add_compile_options(/wd4244) + add_compile_options(/wd4267) + if(LAMMPS_EXCEPTIONS) + add_compile_options(/EHsc) + endif() + endif() add_compile_definitions(_CRT_SECURE_NO_WARNINGS) endif() @@ -189,6 +194,7 @@ option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF) set(STANDARD_PACKAGES ADIOS + AMOEBA ASPHERE ATC AWPMD @@ -353,6 +359,7 @@ pkg_depends(MPIIO MPI) pkg_depends(ATC MANYBODY) pkg_depends(LATBOLTZ MPI) pkg_depends(SCAFACOS MPI) +pkg_depends(AMOEBA KSPACE) pkg_depends(DIELECTRIC KSPACE) pkg_depends(DIELECTRIC EXTRA-PAIR) pkg_depends(CG-DNA MOLECULE) @@ -781,14 +788,16 @@ if(BUILD_SHARED_LIBS) find_package(Python COMPONENTS Interpreter) endif() if(BUILD_IS_MULTI_CONFIG) - set(LIBLAMMPS_SHARED_BINARY ${CMAKE_BINARY_DIR}/$/liblammps${LAMMPS_MACHINE}${CMAKE_SHARED_LIBRARY_SUFFIX}) + set(MY_BUILD_DIR ${CMAKE_BINARY_DIR}/$) else() - set(LIBLAMMPS_SHARED_BINARY ${CMAKE_BINARY_DIR}/liblammps${LAMMPS_MACHINE}${CMAKE_SHARED_LIBRARY_SUFFIX}) + set(MY_BUILD_DIR ${CMAKE_BINARY_DIR}) endif() + set(LIBLAMMPS_SHARED_BINARY ${MY_BUILD_DIR}/liblammps${LAMMPS_MACHINE}${CMAKE_SHARED_LIBRARY_SUFFIX}) if(Python_EXECUTABLE) add_custom_target( install-python ${CMAKE_COMMAND} -E remove_directory build - COMMAND ${Python_EXECUTABLE} ${LAMMPS_PYTHON_DIR}/install.py -p ${LAMMPS_PYTHON_DIR}/lammps -l ${LIBLAMMPS_SHARED_BINARY} + COMMAND ${Python_EXECUTABLE} ${LAMMPS_PYTHON_DIR}/install.py -p ${LAMMPS_PYTHON_DIR}/lammps + -l ${LIBLAMMPS_SHARED_BINARY} -w ${MY_BUILD_DIR} COMMENT "Installing LAMMPS Python module") else() add_custom_target( diff --git a/cmake/CMakeLists.zlib b/cmake/CMakeLists.zlib new file mode 100644 index 0000000000..a33f14ce64 --- /dev/null +++ b/cmake/CMakeLists.zlib @@ -0,0 +1,195 @@ +cmake_minimum_required(VERSION 3.10) +# When using CMake 3.4 and later, don't export symbols from executables unless +# the CMAKE_ENABLE_EXPORTS variable is set. +if(POLICY CMP0065) + cmake_policy(SET CMP0065 NEW) +endif() +if (POLICY CMP0077) + cmake_policy(SET CMP0077 NEW) +endif() +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) + +project(zlib C) + +set(VERSION "1.2.11") + +option(ASM686 "Enable building i686 assembly implementation" OFF) +option(AMD64 "Enable building amd64 assembly implementation" OFF) + +set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") +set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") +set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") +set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages") +set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") + +include(CheckTypeSize) +include(CheckFunctionExists) +include(CheckIncludeFile) +include(CheckCSourceCompiles) + +check_include_file(sys/types.h HAVE_SYS_TYPES_H) +check_include_file(stdint.h HAVE_STDINT_H) +check_include_file(stddef.h HAVE_STDDEF_H) + +# +# Check to see if we have large file support +# +set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1) +# We add these other definitions here because CheckTypeSize.cmake +# in CMake 2.4.x does not automatically do so and we want +# compatibility with CMake 2.4.x. +if(HAVE_SYS_TYPES_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H) +endif() +if(HAVE_STDINT_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H) +endif() +if(HAVE_STDDEF_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H) +endif() +check_type_size(off64_t OFF64_T) +check_type_size(off64_t OFF64_T) +if(HAVE_OFF64_T) + add_definitions(-D_LARGEFILE64_SOURCE=1) +endif() +set(CMAKE_REQUIRED_DEFINITIONS) # clear variable + +# +# Check for fseeko +# +check_function_exists(fseeko HAVE_FSEEKO) +if(NOT HAVE_FSEEKO) + add_definitions(-DNO_FSEEKO) +endif() + +# +# Check for unistd.h +# +check_include_file(unistd.h Z_HAVE_UNISTD_H) + +if(MSVC) + set(CMAKE_DEBUG_POSTFIX "d") + add_definitions(-D_CRT_SECURE_NO_DEPRECATE) + add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +endif() + +if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) + # If we're doing an out of source build and the user has a zconf.h + # in their source tree... + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h) + file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included) + endif() +endif() + +set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein + ${ZLIB_PC} @ONLY) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY) +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) + + +#============================================================================ +# zlib +#============================================================================ + +set(ZLIB_PUBLIC_HDRS + ${CMAKE_CURRENT_BINARY_DIR}/zconf.h + zlib.h +) +set(ZLIB_PRIVATE_HDRS + crc32.h + deflate.h + gzguts.h + inffast.h + inffixed.h + inflate.h + inftrees.h + trees.h + zutil.h +) +set(ZLIB_SRCS + adler32.c + compress.c + crc32.c + deflate.c + gzclose.c + gzlib.c + gzread.c + gzwrite.c + inflate.c + infback.c + inftrees.c + inffast.c + trees.c + uncompr.c + zutil.c +) + +if(NOT MINGW) + set(ZLIB_DLL_SRCS + win32/zlib1.rc # If present will override custom build rule below. + ) +endif() + +if(CMAKE_COMPILER_IS_GNUCC) + if(ASM686) + set(ZLIB_ASMS contrib/asm686/match.S) + elseif (AMD64) + set(ZLIB_ASMS contrib/amd64/amd64-match.S) + endif () + + if(ZLIB_ASMS) + add_definitions(-DASMV) + set_source_files_properties(${ZLIB_ASMS} PROPERTIES LANGUAGE C COMPILE_FLAGS -DNO_UNDERLINE) + endif() +endif() + +if(MSVC) + if(ASM686) + ENABLE_LANGUAGE(ASM_MASM) + set(ZLIB_ASMS + contrib/masmx86/inffas32.asm + contrib/masmx86/match686.asm + ) + elseif (AMD64) + ENABLE_LANGUAGE(ASM_MASM) + set(ZLIB_ASMS + contrib/masmx64/gvmat64.asm + contrib/masmx64/inffasx64.asm + ) + endif() + + if(ZLIB_ASMS) + add_definitions(-DASMV -DASMINF) + endif() +endif() + +# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION +file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents) +string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*" + "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents}) + +if(MINGW) + # This gets us DLL resource information when compiling on MinGW. + if(NOT CMAKE_RC_COMPILER) + set(CMAKE_RC_COMPILER windres.exe) + endif() + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + COMMAND ${CMAKE_RC_COMPILER} + -D GCC_WINDRES + -I ${CMAKE_CURRENT_SOURCE_DIR} + -I ${CMAKE_CURRENT_BINARY_DIR} + -o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj + -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc) + set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) +endif(MINGW) + +add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) + +if(UNIX) + # On unix-like platforms the library is almost always called libz + set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z) +endif() \ No newline at end of file diff --git a/cmake/CMakeSettings.json b/cmake/CMakeSettings.json index b0f940277f..c139114c0b 100644 --- a/cmake/CMakeSettings.json +++ b/cmake/CMakeSettings.json @@ -8,7 +8,7 @@ "installRoot": "${workspaceRoot}\\install\\${name}", "cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake", "buildCommandArgs": "", - "ctestCommandArgs": "", + "ctestCommandArgs": "-V", "inheritEnvironments": [ "msvc_x64_x64" ], "variables": [ { @@ -26,11 +26,6 @@ "value": "True", "type": "BOOL" }, - { - "name": "PKG_PYTHON", - "value": "True", - "type": "BOOL" - }, { "name": "ENABLE_TESTING", "value": "True", @@ -46,7 +41,7 @@ "installRoot": "${workspaceRoot}\\install\\${name}", "cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake", "buildCommandArgs": "", - "ctestCommandArgs": "", + "ctestCommandArgs": "-V", "inheritEnvironments": [ "msvc_x64_x64" ], "variables": [ { @@ -64,11 +59,6 @@ "value": "True", "type": "BOOL" }, - { - "name": "PKG_PYTHON", - "value": "True", - "type": "BOOL" - }, { "name": "ENABLE_TESTING", "value": "True", @@ -102,11 +92,6 @@ "value": "True", "type": "BOOL" }, - { - "name": "PKG_PYTHON", - "value": "True", - "type": "BOOL" - }, { "name": "ENABLE_TESTING", "value": "True", @@ -122,7 +107,7 @@ "installRoot": "${workspaceRoot}\\install\\${name}", "cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe", "buildCommandArgs": "", - "ctestCommandArgs": "", + "ctestCommandArgs": "-V", "inheritEnvironments": [ "clang_cl_x64" ], "variables": [ { @@ -140,11 +125,6 @@ "value": "True", "type": "BOOL" }, - { - "name": "PKG_PYTHON", - "value": "True", - "type": "BOOL" - }, { "name": "ENABLE_TESTING", "value": "True", @@ -158,9 +138,16 @@ "configurationType": "Debug", "buildRoot": "${workspaceRoot}\\build\\${name}", "installRoot": "${workspaceRoot}\\install\\${name}", + "buildCommandArgs": "", + "ctestCommandArgs": "-V", "inheritEnvironments": [], "cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows-intel-llvm.cmake -C ${workspaceRoot}\\cmake\\presets\\windows.cmake", "variables": [ + { + "name": "PKG_ELECTRODE", + "value": "True", + "type": "BOOL" + }, { "name": "BUILD_SHARED_LIBS", "value": "True", @@ -176,11 +163,6 @@ "value": "True", "type": "BOOL" }, - { - "name": "PKG_PYTHON", - "value": "True", - "type": "BOOL" - }, { "name": "ENABLE_TESTING", "value": "True", @@ -190,11 +172,6 @@ "name": "FFT", "value": "MKL", "type": "STRING" - }, - { - "name": "PKG_PLUGIN", - "value": "True", - "type": "BOOL" } ] }, @@ -205,8 +182,15 @@ "buildRoot": "${workspaceRoot}\\build\\${name}", "installRoot": "${workspaceRoot}\\install\\${name}", "cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows-intel-llvm.cmake -C ${workspaceRoot}\\cmake\\presets\\windows.cmake", + "buildCommandArgs": "", + "ctestCommandArgs": "-V", "inheritEnvironments": [], "variables": [ + { + "name": "PKG_ELECTRODE", + "value": "True", + "type": "BOOL" + }, { "name": "BUILD_SHARED_LIBS", "value": "True", @@ -222,11 +206,6 @@ "value": "True", "type": "BOOL" }, - { - "name": "PKG_PYTHON", - "value": "True", - "type": "BOOL" - }, { "name": "ENABLE_TESTING", "value": "True", @@ -236,11 +215,6 @@ "name": "FFT", "value": "MKL", "type": "STRING" - }, - { - "name": "PKG_PLUGIN", - "value": "True", - "type": "BOOL" } ] }, @@ -251,8 +225,15 @@ "buildRoot": "${workspaceRoot}\\build\\${name}", "installRoot": "${workspaceRoot}\\install\\${name}", "cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows-intel-classic.cmake -C ${workspaceRoot}\\cmake\\presets\\windows.cmake", + "buildCommandArgs": "", + "ctestCommandArgs": "-V", "inheritEnvironments": [], "variables": [ + { + "name": "PKG_ELECTRODE", + "value": "True", + "type": "BOOL" + }, { "name": "BUILD_SHARED_LIBS", "value": "True", @@ -268,11 +249,6 @@ "value": "True", "type": "BOOL" }, - { - "name": "PKG_PYTHON", - "value": "True", - "type": "BOOL" - }, { "name": "ENABLE_TESTING", "value": "False", @@ -282,11 +258,6 @@ "name": "FFT", "value": "MKL", "type": "STRING" - }, - { - "name": "PKG_PLUGIN", - "value": "True", - "type": "BOOL" } ] }, @@ -297,8 +268,15 @@ "buildRoot": "${workspaceRoot}\\build\\${name}", "installRoot": "${workspaceRoot}\\install\\${name}", "cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows-intel-classic.cmake -C ${workspaceRoot}\\cmake\\presets\\windows.cmake", + "buildCommandArgs": "", + "ctestCommandArgs": "-V", "inheritEnvironments": [], "variables": [ + { + "name": "PKG_ELECTRODE", + "value": "True", + "type": "BOOL" + }, { "name": "BUILD_SHARED_LIBS", "value": "True", @@ -314,11 +292,6 @@ "value": "True", "type": "BOOL" }, - { - "name": "PKG_PYTHON", - "value": "True", - "type": "BOOL" - }, { "name": "ENABLE_TESTING", "value": "False", @@ -328,13 +301,8 @@ "name": "FFT", "value": "MKL", "type": "STRING" - }, - { - "name": "PKG_PLUGIN", - "value": "True", - "type": "BOOL" } ] } ] -} \ No newline at end of file +} diff --git a/cmake/Modules/LAMMPSInterfacePlugin.cmake b/cmake/Modules/LAMMPSInterfacePlugin.cmake new file mode 100644 index 0000000000..95bb707e86 --- /dev/null +++ b/cmake/Modules/LAMMPSInterfacePlugin.cmake @@ -0,0 +1,208 @@ +# CMake script code to define LAMMPS settings required for building LAMMPS plugins + +# enforce out-of-source build +if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) + message(FATAL_ERROR "In-source builds are not allowed. You must create and use a build directory. " + "Please remove CMakeCache.txt and CMakeFiles first.") +endif() + +set(LAMMPS_THIRDPARTY_URL "https://download.lammps.org/thirdparty" + CACHE STRING "URL for thirdparty package downloads") + +# global LAMMPS/plugin build settings +set(LAMMPS_SOURCE_DIR "" CACHE PATH "Location of LAMMPS sources folder") +if(NOT LAMMPS_SOURCE_DIR) + message(FATAL_ERROR "Must set LAMMPS_SOURCE_DIR") +endif() + +# by default, install into $HOME/.local (not /usr/local), +# so that no root access (and sudo) is needed +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH "Default install path" FORCE) +endif() + +# ugly hacks for MSVC which by default always reports an old C++ standard in the __cplusplus macro +# and prints lots of pointless warnings about "unsafe" functions +if(MSVC) + if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + add_compile_options(/Zc:__cplusplus) + add_compile_options(/wd4244) + add_compile_options(/wd4267) + if(LAMMPS_EXCEPTIONS) + add_compile_options(/EHsc) + endif() + endif() + add_compile_definitions(_CRT_SECURE_NO_WARNINGS) +endif() + +# C++11 is required +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# Need -restrict with Intel compilers +if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict") +endif() +set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) + +####### +# helper functions from LAMMPSUtils.cmake +function(validate_option name values) + string(TOLOWER ${${name}} needle_lower) + string(TOUPPER ${${name}} needle_upper) + list(FIND ${values} ${needle_lower} IDX_LOWER) + list(FIND ${values} ${needle_upper} IDX_UPPER) + if(${IDX_LOWER} LESS 0 AND ${IDX_UPPER} LESS 0) + list_to_bulletpoints(POSSIBLE_VALUE_LIST ${${values}}) + message(FATAL_ERROR "\n########################################################################\n" + "Invalid value '${${name}}' for option ${name}\n" + "\n" + "Possible values are:\n" + "${POSSIBLE_VALUE_LIST}" + "########################################################################") + endif() +endfunction(validate_option) + +# helper function for getting the most recently modified file or folder from a glob pattern +function(get_newest_file path variable) + file(GLOB _dirs ${path}) + set(_besttime 2000-01-01T00:00:00) + set(_bestfile "") + foreach(_dir ${_dirs}) + file(TIMESTAMP ${_dir} _newtime) + if(_newtime IS_NEWER_THAN _besttime) + set(_bestfile ${_dir}) + set(_besttime ${_newtime}) + endif() + endforeach() + if(_bestfile STREQUAL "") + message(FATAL_ERROR "Could not find valid path at: ${path}") + endif() + set(${variable} ${_bestfile} PARENT_SCOPE) +endfunction() + +# get LAMMPS version date +function(get_lammps_version version_header variable) + file(STRINGS ${version_header} line REGEX LAMMPS_VERSION) + string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\1\\2\\3" date "${line}") + set(${variable} "${date}" PARENT_SCOPE) +endfunction() + +################################################################################# +# LAMMPS C++ interface. We only need the header related parts except on windows. +add_library(lammps INTERFACE) +target_include_directories(lammps INTERFACE ${LAMMPS_SOURCE_DIR}) +if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING) + target_link_libraries(lammps INTERFACE ${CMAKE_BINARY_DIR}/../liblammps.dll.a) +endif() + +################################################################################ +# MPI configuration +if(NOT CMAKE_CROSSCOMPILING) + set(MPI_CXX_SKIP_MPICXX TRUE) + find_package(MPI QUIET) + option(BUILD_MPI "Build MPI version" ${MPI_FOUND}) +else() + option(BUILD_MPI "Build MPI version" OFF) +endif() + +if(BUILD_MPI) + # do not include the (obsolete) MPI C++ bindings which makes + # for leaner object files and avoids namespace conflicts + set(MPI_CXX_SKIP_MPICXX TRUE) + # We use a non-standard procedure to cross-compile with MPI on Windows + if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING) + # Download and configure custom MPICH files for Windows + message(STATUS "Downloading and configuring MPICH-1.4.1 for Windows") + set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win64-devel.tar.gz" CACHE STRING "URL for MPICH2 (win64) tarball") + set(MPICH2_WIN32_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win32-devel.tar.gz" CACHE STRING "URL for MPICH2 (win32) tarball") + set(MPICH2_WIN64_DEVEL_MD5 "4939fdb59d13182fd5dd65211e469f14" CACHE STRING "MD5 checksum of MPICH2 (win64) tarball") + set(MPICH2_WIN32_DEVEL_MD5 "a61d153500dce44e21b755ee7257e031" CACHE STRING "MD5 checksum of MPICH2 (win32) tarball") + mark_as_advanced(MPICH2_WIN64_DEVEL_URL) + mark_as_advanced(MPICH2_WIN32_DEVEL_URL) + mark_as_advanced(MPICH2_WIN64_DEVEL_MD5) + mark_as_advanced(MPICH2_WIN32_DEVEL_MD5) + + include(ExternalProject) + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + ExternalProject_Add(mpi4win_build + URL ${MPICH2_WIN64_DEVEL_URL} + URL_MD5 ${MPICH2_WIN64_DEVEL_MD5} + CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" + BUILD_BYPRODUCTS /lib/libmpi.a) + else() + ExternalProject_Add(mpi4win_build + URL ${MPICH2_WIN32_DEVEL_URL} + URL_MD5 ${MPICH2_WIN32_DEVEL_MD5} + CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" + BUILD_BYPRODUCTS /lib/libmpi.a) + endif() + + ExternalProject_get_property(mpi4win_build SOURCE_DIR) + file(MAKE_DIRECTORY "${SOURCE_DIR}/include") + add_library(MPI::MPI_CXX UNKNOWN IMPORTED) + set_target_properties(MPI::MPI_CXX PROPERTIES + IMPORTED_LOCATION "${SOURCE_DIR}/lib/libmpi.a" + INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include" + INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") + add_dependencies(MPI::MPI_CXX mpi4win_build) + + # set variables for status reporting at the end of CMake run + set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include") + set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") + set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmpi.a") + else() + find_package(MPI REQUIRED) + option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF) + if(LAMMPS_LONGLONG_TO_LONG) + target_compile_definitions(lammps INTERFACE -DLAMMPS_LONGLONG_TO_LONG) + endif() + endif() + target_link_libraries(lammps INTERFACE MPI::MPI_CXX) +else() + add_library(mpi_stubs INTERFACE) + target_include_directories(mpi_stubs INTERFACE $) + target_link_libraries(lammps INTERFACE mpi_stubs) +endif() + +################################################################################ +# detect if we may enable OpenMP support by default +set(BUILD_OMP_DEFAULT OFF) +find_package(OpenMP QUIET) +if(OpenMP_FOUND) + check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE) + if(HAVE_OMP_H_INCLUDE) + set(BUILD_OMP_DEFAULT ON) + endif() +endif() + +option(BUILD_OMP "Build with OpenMP support" ${BUILD_OMP_DEFAULT}) + +if(BUILD_OMP) + find_package(OpenMP REQUIRED) + check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE) + if(NOT HAVE_OMP_H_INCLUDE) + message(FATAL_ERROR "Cannot find the 'omp.h' header file required for full OpenMP support") + endif() + + if (((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.0)) OR + (CMAKE_CXX_COMPILER_ID STREQUAL "PGI") OR + ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR + ((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0))) + # GCC 9.x and later plus Clang 10.x and later implement strict OpenMP 4.0 semantics for consts. + # Intel 18.0 was tested to support both, so we switch to OpenMP 4+ from 19.x onward to be safe. + target_compile_definitions(lammps INTERFACE -DLAMMPS_OMP_COMPAT=4) + else() + target_compile_definitions(lammps INTERFACE -DLAMMPS_OMP_COMPAT=3) + endif() + target_link_libraries(lammps INTERFACE OpenMP::OpenMP_CXX) +endif() + +################ +# integer size selection +set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallsmall: all 32-bit, smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)") +set(LAMMPS_SIZES_VALUES smallbig bigbig smallsmall) +set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES}) +validate_option(LAMMPS_SIZES LAMMPS_SIZES_VALUES) +string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES) +target_compile_definitions(lammps INTERFACE -DLAMMPS_${LAMMPS_SIZES}) diff --git a/cmake/Modules/LAMMPSUtils.cmake b/cmake/Modules/LAMMPSUtils.cmake index 943c3d851e..9f624fc007 100644 --- a/cmake/Modules/LAMMPSUtils.cmake +++ b/cmake/Modules/LAMMPSUtils.cmake @@ -24,6 +24,24 @@ function(validate_option name values) endif() endfunction(validate_option) +# helper function for getting the most recently modified file or folder from a glob pattern +function(get_newest_file path variable) + file(GLOB _dirs ${path}) + set(_besttime 2000-01-01T00:00:00) + set(_bestfile "") + foreach(_dir ${_dirs}) + file(TIMESTAMP ${_dir} _newtime) + if(_newtime IS_NEWER_THAN _besttime) + set(_bestfile ${_dir}) + set(_besttime ${_newtime}) + endif() + endforeach() + if(_bestfile STREQUAL "") + message(FATAL_ERROR "Could not find valid path at: ${path}") + endif() + set(${variable} ${_bestfile} PARENT_SCOPE) +endfunction() + function(get_lammps_version version_header variable) file(STRINGS ${version_header} line REGEX LAMMPS_VERSION) set(MONTHS x Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec) diff --git a/cmake/Modules/Packages/KOKKOS.cmake b/cmake/Modules/Packages/KOKKOS.cmake index cf3d19c720..7f23a6f777 100644 --- a/cmake/Modules/Packages/KOKKOS.cmake +++ b/cmake/Modules/Packages/KOKKOS.cmake @@ -47,8 +47,8 @@ if(DOWNLOAD_KOKKOS) list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}") list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") include(ExternalProject) - set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.6.00.tar.gz" CACHE STRING "URL for KOKKOS tarball") - set(KOKKOS_MD5 "b5c44ea961031795f434002cd7b31c20" CACHE STRING "MD5 checksum of KOKKOS tarball") + set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.6.01.tar.gz" CACHE STRING "URL for KOKKOS tarball") + set(KOKKOS_MD5 "0ec97fc0c356dd65bd2487defe81a7bf" CACHE STRING "MD5 checksum of KOKKOS tarball") mark_as_advanced(KOKKOS_URL) mark_as_advanced(KOKKOS_MD5) ExternalProject_Add(kokkos_build @@ -72,7 +72,7 @@ if(DOWNLOAD_KOKKOS) add_dependencies(LAMMPS::KOKKOSCORE kokkos_build) add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build) elseif(EXTERNAL_KOKKOS) - find_package(Kokkos 3.6.00 REQUIRED CONFIG) + find_package(Kokkos 3.6.01 REQUIRED CONFIG) target_link_libraries(lammps PRIVATE Kokkos::kokkos) target_link_libraries(lmp PRIVATE Kokkos::kokkos) else() diff --git a/cmake/Modules/Packages/MDI.cmake b/cmake/Modules/Packages/MDI.cmake index 88859f0285..1a14d5273a 100644 --- a/cmake/Modules/Packages/MDI.cmake +++ b/cmake/Modules/Packages/MDI.cmake @@ -8,8 +8,8 @@ option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an al if(DOWNLOAD_MDI) message(STATUS "MDI download requested - we will build our own") - set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.3.2.tar.gz" CACHE STRING "URL for MDI tarball") - set(MDI_MD5 "836f5da400d8cff0f0e4435640f9454f" CACHE STRING "MD5 checksum for MDI tarball") + set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.1.tar.gz" CACHE STRING "URL for MDI tarball") + set(MDI_MD5 "f9505fccd4c79301a619f6452dad4ad9" CACHE STRING "MD5 checksum for MDI tarball") mark_as_advanced(MDI_URL) mark_as_advanced(MDI_MD5) enable_language(C) @@ -44,7 +44,7 @@ if(DOWNLOAD_MDI) ExternalProject_Add(mdi_build URL ${MDI_URL} URL_MD5 ${MDI_MD5} - CMAKE_ARGS ${CMAKE_REQUEST_PIC} + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} @@ -54,6 +54,7 @@ if(DOWNLOAD_MDI) -Dlanguage=C -Dlibtype=STATIC -Dmpi=${MDI_USE_MPI} + -Dplugins=ON -Dpython_plugins=${MDI_USE_PYTHON_PLUGINS} UPDATE_COMMAND "" INSTALL_COMMAND "" diff --git a/cmake/Modules/Packages/ML-HDNNP.cmake b/cmake/Modules/Packages/ML-HDNNP.cmake index f52d7ca6f3..f71d08f3ab 100644 --- a/cmake/Modules/Packages/ML-HDNNP.cmake +++ b/cmake/Modules/Packages/ML-HDNNP.cmake @@ -44,7 +44,9 @@ if(DOWNLOAD_N2P2) else() # get path to MPI include directory get_target_property(N2P2_MPI_INCLUDE MPI::MPI_CXX INTERFACE_INCLUDE_DIRECTORIES) - set(N2P2_PROJECT_OPTIONS "-I${N2P2_MPI_INCLUDE}") + foreach (_INCL ${N2P2_MPI_INCLUDE}) + set(N2P2_PROJECT_OPTIONS "${N2P2_PROJECT_OPTIONS} -I${_INCL}") + endforeach() endif() # prefer GNU make, if available. N2P2 lib seems to need it. @@ -75,7 +77,7 @@ if(DOWNLOAD_N2P2) UPDATE_COMMAND "" CONFIGURE_COMMAND "" PATCH_COMMAND sed -i -e "s/\\(MPI_\\(P\\|Unp\\)ack(\\)/\\1(void *) /" src/libnnpif/LAMMPS/InterfaceLammps.cpp - BUILD_COMMAND ${N2P2_MAKE} -f makefile libnnpif ${N2P2_BUILD_OPTIONS} + BUILD_COMMAND ${N2P2_MAKE} -C /src -f makefile libnnpif ${N2P2_BUILD_OPTIONS} BUILD_ALWAYS YES INSTALL_COMMAND "" BUILD_IN_SOURCE 1 diff --git a/cmake/Modules/Packages/ML-PACE.cmake b/cmake/Modules/Packages/ML-PACE.cmake index 635a9ff2f5..c553809ff1 100644 --- a/cmake/Modules/Packages/ML-PACE.cmake +++ b/cmake/Modules/Packages/ML-PACE.cmake @@ -1,6 +1,6 @@ -set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2021.10.25.fix.tar.gz" CACHE STRING "URL for PACE evaluator library sources") +set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2021.10.25.fix2.tar.gz" CACHE STRING "URL for PACE evaluator library sources") -set(PACELIB_MD5 "e0572de57039d4afedefb25707b6ceae" CACHE STRING "MD5 checksum of PACE evaluator library tarball") +set(PACELIB_MD5 "32394d799bc282bb57696c78c456e64f" CACHE STRING "MD5 checksum of PACE evaluator library tarball") mark_as_advanced(PACELIB_URL) mark_as_advanced(PACELIB_MD5) @@ -13,8 +13,8 @@ execute_process( COMMAND ${CMAKE_COMMAND} -E tar xzf libpace.tar.gz WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) +get_newest_file(${CMAKE_BINARY_DIR}/lammps-user-pace-* lib-pace) -file(GLOB lib-pace ${CMAKE_BINARY_DIR}/lammps-user-pace-*) # enforce building libyaml-cpp as static library and turn off optional features set(YAML_BUILD_SHARED_LIBS OFF) set(YAML_CPP_BUILD_CONTRIB OFF) @@ -32,5 +32,6 @@ target_include_directories(pace PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR} ${YAML_CPP_ target_link_libraries(pace PRIVATE yaml-cpp-pace) - -target_link_libraries(lammps PRIVATE pace) +if(CMAKE_PROJECT_NAME STREQUAL "lammps") + target_link_libraries(lammps PRIVATE pace) +endif() diff --git a/cmake/Modules/Packages/ML-QUIP.cmake b/cmake/Modules/Packages/ML-QUIP.cmake index 4db1eb1541..56221accab 100644 --- a/cmake/Modules/Packages/ML-QUIP.cmake +++ b/cmake/Modules/Packages/ML-QUIP.cmake @@ -43,6 +43,7 @@ if(DOWNLOAD_QUIP) file(WRITE ${CMAKE_BINARY_DIR}/quip.config "${temp}") message(STATUS "QUIP download via git requested - we will build our own") + set(CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY CHECKOUT) # QUIP has no releases (except for a tag marking the end of Python 2 support). We use the current "public" branch # The LAMMPS interface wrapper has a compatibility constant that is being checked at runtime. include(ExternalProject) diff --git a/cmake/Modules/generate_lmpgitversion.cmake b/cmake/Modules/generate_lmpgitversion.cmake index f066269723..32aaf6f2c5 100644 --- a/cmake/Modules/generate_lmpgitversion.cmake +++ b/cmake/Modules/generate_lmpgitversion.cmake @@ -31,5 +31,7 @@ set(temp "${temp}const char *LAMMPS_NS::LAMMPS::git_descriptor() { return \"${te set(temp "${temp}#endif\n\n") message(STATUS "Generating lmpgitversion.h...") -file(WRITE "${LAMMPS_STYLE_HEADERS_DIR}/lmpgitversion.h.tmp" "${temp}" ) -execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${LAMMPS_STYLE_HEADERS_DIR}/lmpgitversion.h.tmp" "${LAMMPS_STYLE_HEADERS_DIR}/lmpgitversion.h") + +string(REPLACE "\\ " " " LAMMPS_GIT_HEADER "${LAMMPS_STYLE_HEADERS_DIR}/lmpgitversion.h") +file(WRITE "${LAMMPS_GIT_HEADER}.tmp" "${temp}" ) +execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${LAMMPS_GIT_HEADER}.tmp" "${LAMMPS_GIT_HEADER}") diff --git a/cmake/presets/all_off.cmake b/cmake/presets/all_off.cmake index 895f26845f..92e79c02c7 100644 --- a/cmake/presets/all_off.cmake +++ b/cmake/presets/all_off.cmake @@ -3,6 +3,7 @@ set(ALL_PACKAGES ADIOS + AMOEBA ASPHERE ATC AWPMD diff --git a/cmake/presets/all_on.cmake b/cmake/presets/all_on.cmake index 90b0f02c4b..3cc705a126 100644 --- a/cmake/presets/all_on.cmake +++ b/cmake/presets/all_on.cmake @@ -5,6 +5,7 @@ set(ALL_PACKAGES ADIOS + AMOEBA ASPHERE ATC AWPMD diff --git a/cmake/presets/mingw-cross.cmake b/cmake/presets/mingw-cross.cmake index 81db71729a..843dd5e4ad 100644 --- a/cmake/presets/mingw-cross.cmake +++ b/cmake/presets/mingw-cross.cmake @@ -1,4 +1,5 @@ set(WIN_PACKAGES + AMOEBA ASPHERE ATC AWPMD @@ -46,8 +47,8 @@ set(WIN_PACKAGES MISC ML-HDNNP ML-IAP - ML-SNAP ML-RANN + ML-SNAP MOFFF MOLECULE MOLFILE @@ -56,6 +57,7 @@ set(WIN_PACKAGES ORIENT PERI PHONON + PLUGIN POEMS PTM QEQ diff --git a/cmake/presets/most.cmake b/cmake/presets/most.cmake index 5e408f17cf..b3e0f5ca6c 100644 --- a/cmake/presets/most.cmake +++ b/cmake/presets/most.cmake @@ -3,6 +3,7 @@ # are removed. The resulting binary should be able to run most inputs. set(ALL_PACKAGES + AMOEBA ASPHERE BOCS BODY diff --git a/cmake/presets/windows.cmake b/cmake/presets/windows.cmake index c83b16d855..5189a90bfe 100644 --- a/cmake/presets/windows.cmake +++ b/cmake/presets/windows.cmake @@ -1,4 +1,5 @@ set(WIN_PACKAGES + AMOEBA ASPHERE BOCS BODY @@ -43,6 +44,7 @@ set(WIN_PACKAGES PERI PHONON POEMS + PLUGIN PTM QEQ QTB diff --git a/doc/Makefile b/doc/Makefile index 113a64ec10..8841ae4825 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -13,6 +13,7 @@ VENV = $(BUILDDIR)/docenv ANCHORCHECK = $(VENV)/bin/rst_anchor_check SPHINXCONFIG = $(BUILDDIR)/utils/sphinx-config MATHJAX = $(SPHINXCONFIG)/_static/mathjax +MATHJAXTAG = 3.2.2 PYTHON = $(word 3,$(shell type python3)) DOXYGEN = $(word 3,$(shell type doxygen)) @@ -230,12 +231,13 @@ $(VENV): $(PYTHON) -m venv $(VENV); \ . $(VENV)/bin/activate; \ pip $(PIP_OPTIONS) install --upgrade pip; \ + pip $(PIP_OPTIONS) install --upgrade wheel; \ pip $(PIP_OPTIONS) install -r $(BUILDDIR)/utils/requirements.txt; \ deactivate;\ ) $(MATHJAX): - @git clone -b 3.2.0 -c advice.detachedHead=0 --depth 1 https://github.com/mathjax/MathJax.git $@ + @git clone -b $(MATHJAXTAG) -c advice.detachedHead=0 --depth 1 https://github.com/mathjax/MathJax.git $@ $(ANCHORCHECK): $(VENV) @( \ diff --git a/doc/lammps.1 b/doc/lammps.1 index 8ce751844a..5f1c25867e 100644 --- a/doc/lammps.1 +++ b/doc/lammps.1 @@ -1,7 +1,7 @@ -.TH LAMMPS "1" "4 May 2022" "2022-5-4" +.TH LAMMPS "1" "23 June 2022" "2022-6-23" .SH NAME .B LAMMPS -\- Molecular Dynamics Simulator. Version 24 March 2022 +\- Molecular Dynamics Simulator. Version 23 June 2022 .SH SYNOPSIS .B lmp diff --git a/doc/src/Build_settings.rst b/doc/src/Build_settings.rst index 6053bdbf8a..7e627a052f 100644 --- a/doc/src/Build_settings.rst +++ b/doc/src/Build_settings.rst @@ -287,8 +287,8 @@ Output of JPG, PNG, and movie files The :doc:`dump image ` command has options to output JPEG or PNG image files. Likewise the :doc:`dump movie ` command -outputs movie files in MPEG format. Using these options requires the -following settings: +outputs movie files in a variety of movie formats. Using these options +requires the following settings: .. tabs:: @@ -328,11 +328,12 @@ following settings: JPG_LIB = -ljpeg -lpng -lz # library names As with CMake, you do not need to set ``JPG_INC`` or ``JPG_PATH``, - if make can find the graphics header and library files. You must - specify ``JPG_LIB`` with a list of graphics libraries to include - in the link. You must insure ffmpeg is in a directory where - LAMMPS can find it at runtime, that is a directory in your PATH - environment variable. + if make can find the graphics header and library files in their + default system locations. You must specify ``JPG_LIB`` with a + list of graphics libraries to include in the link. You must make + certain that the ffmpeg executable (or ffmpeg.exe on Windows) is + in a directory where LAMMPS can find it at runtime; that is + usually a directory list in your ``PATH`` environment variable. Using ``ffmpeg`` to output movie files requires that your machine supports the "popen" function in the standard runtime library. diff --git a/doc/src/Commands_bond.rst b/doc/src/Commands_bond.rst index 28c0882c56..0be24a5555 100644 --- a/doc/src/Commands_bond.rst +++ b/doc/src/Commands_bond.rst @@ -74,6 +74,7 @@ OPT. * * * + * :doc:`amoeba ` * :doc:`charmm (iko) ` * :doc:`class2 (ko) ` * :doc:`class2/p6 ` @@ -152,6 +153,7 @@ OPT. * * * + * :doc:`amoeba ` * :doc:`class2 (ko) ` * :doc:`cossq (o) ` * :doc:`cvff (io) ` diff --git a/doc/src/Commands_compute.rst b/doc/src/Commands_compute.rst index 61c5e83eda..bb0c3e9c2a 100644 --- a/doc/src/Commands_compute.rst +++ b/doc/src/Commands_compute.rst @@ -138,6 +138,8 @@ KOKKOS, o = OPENMP, t = OPT. * :doc:`smd/vol ` * :doc:`snap ` * :doc:`sna/atom ` + * :doc:`sna/grid ` + * :doc:`sna/grid/local ` * :doc:`snad/atom ` * :doc:`snav/atom ` * :doc:`sph/e/atom ` diff --git a/doc/src/Commands_fix.rst b/doc/src/Commands_fix.rst index 7dc3f324b4..4e40523c44 100644 --- a/doc/src/Commands_fix.rst +++ b/doc/src/Commands_fix.rst @@ -28,6 +28,8 @@ OPT. * :doc:`adapt/fep ` * :doc:`addforce ` * :doc:`addtorque ` + * :doc:`amoeba/bitorsion ` + * :doc:`amoeba/pitorsion ` * :doc:`append/atoms ` * :doc:`atc ` * :doc:`atom/swap ` @@ -103,7 +105,7 @@ OPT. * :doc:`lb/viscous ` * :doc:`lineforce ` * :doc:`manifoldforce ` - * :doc:`mdi/aimd ` + * :doc:`mdi/qm ` * :doc:`meso/move ` * :doc:`mol/swap ` * :doc:`momentum (k) ` diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index c5782f5e04..57e7873222 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -38,6 +38,7 @@ OPT. * :doc:`agni (o) ` * :doc:`airebo (io) ` * :doc:`airebo/morse (io) ` + * :doc:`amoeba ` * :doc:`atm ` * :doc:`awpmd/cut ` * :doc:`beck (go) ` @@ -124,6 +125,7 @@ OPT. * :doc:`hbond/dreiding/lj (o) ` * :doc:`hbond/dreiding/morse (o) ` * :doc:`hdnnp ` + * :doc:`hippo ` * :doc:`ilp/graphene/hbn (t) ` * :doc:`ilp/tmd (t) ` * :doc:`kolmogorov/crespi/full ` @@ -194,7 +196,7 @@ OPT. * :doc:`lubricateU/poly ` * :doc:`mdpd ` * :doc:`mdpd/rhosum ` - * :doc:`meam ` + * :doc:`meam (k) ` * :doc:`meam/spline (o) ` * :doc:`meam/sw/spline ` * :doc:`mesocnt ` @@ -269,6 +271,7 @@ OPT. * :doc:`spin/neel ` * :doc:`srp ` * :doc:`sw (giko) ` + * :doc:`sw/angle/table ` * :doc:`sw/mod (o) ` * :doc:`table (gko) ` * :doc:`table/rx (k) ` @@ -279,6 +282,7 @@ OPT. * :doc:`tersoff/table (o) ` * :doc:`tersoff/zbl (gko) ` * :doc:`thole ` + * :doc:`threebody/table ` * :doc:`tip4p/cut (o) ` * :doc:`tip4p/long (o) ` * :doc:`tip4p/long/soft (o) ` diff --git a/doc/src/Developer_plugins.rst b/doc/src/Developer_plugins.rst index 9bf52801a7..36fdd010b3 100644 --- a/doc/src/Developer_plugins.rst +++ b/doc/src/Developer_plugins.rst @@ -276,10 +276,27 @@ Compilation of the plugin can be managed via both, CMake or traditional GNU makefiles. Some examples that can be used as a template are in the ``examples/plugins`` folder. The CMake script code has some small adjustments to allow building the plugins for running unit tests with -them. Another example that converts the KIM package into a plugin can be -found in the ``examples/kim/plugin`` folder. No changes to the sources -of the KIM package themselves are needed; only the plugin interface and -loader code needs to be added. This example only supports building with -CMake, but is probably a more typical example. To compile you need to -run CMake with -DLAMMPS_SOURCE_DIR=. Other +them. + +Another example that converts the KIM package into a plugin can be found +in the ``examples/kim/plugin`` folder. No changes to the sources of the +KIM package themselves are needed; only the plugin interface and loader +code needs to be added. This example only supports building with CMake, +but is probably a more typical example. To compile you need to run CMake +with -DLAMMPS_SOURCE_DIR=. Other configuration setting are identical to those for compiling LAMMPS. + +A second example for a plugin from a package is in the +``examples/PACKAGES/pace/plugin`` folder that will create a plugin from +the ML-PACE package. In this case the bulk of the code is in a static +external library that is being downloaded and compiled first and then +combined with the pair style wrapper and the plugin loader. This +example also contains a NSIS script that can be used to create an +Installer package for Windows (the mutual licensing terms of the +external library and LAMMPS conflict when distributing binaries, so the +ML-PACE package cannot be linked statically, but the LAMMPS headers +required to build the plugin are also available under a less restrictive +license). This will automatically set the required environment variable +and launching a (compatible) LAMMPS binary will load and register the +plugin and the ML-PACE package can then be used as it was linked into +LAMMPS. diff --git a/doc/src/Developer_utils.rst b/doc/src/Developer_utils.rst index 0932276a58..43f12ef377 100644 --- a/doc/src/Developer_utils.rst +++ b/doc/src/Developer_utils.rst @@ -154,6 +154,9 @@ and parsing files or arguments. .. doxygenfunction:: trim_and_count_words :project: progguide +.. doxygenfunction:: join_words + :project: progguide + .. doxygenfunction:: split_words :project: progguide diff --git a/doc/src/Errors_warnings.rst b/doc/src/Errors_warnings.rst index 2d588a1b77..ab06ac523c 100644 --- a/doc/src/Errors_warnings.rst +++ b/doc/src/Errors_warnings.rst @@ -470,6 +470,12 @@ This will most likely cause errors in kinetic fluctuations. *More than one compute sna/atom* Self-explanatory. +*More than one compute sna/grid* + Self-explanatory. + +*More than one compute sna/grid/local* + Self-explanatory. + *More than one compute snad/atom* Self-explanatory. diff --git a/doc/src/Howto.rst b/doc/src/Howto.rst index 0f1abcd7d7..b4f14bccfa 100644 --- a/doc/src/Howto.rst +++ b/doc/src/Howto.rst @@ -65,6 +65,7 @@ Force fields howto :maxdepth: 1 Howto_bioFF + Howto_amoeba Howto_tip3p Howto_tip4p Howto_spc diff --git a/doc/src/Howto_amoeba.rst b/doc/src/Howto_amoeba.rst new file mode 100644 index 0000000000..44458fcfdc --- /dev/null +++ b/doc/src/Howto_amoeba.rst @@ -0,0 +1,324 @@ +AMOEBA and HIPPO force fields +============================= + +The AMOEBA and HIPPO polarizable force fields were developed by Jay +Ponder's group at the U Washington at St Louis. Their implementation +in LAMMPS was done using F90 code provided by the Ponder group from +their `Tinker MD code `_. + +The current implementation (July 2022) of AMOEBA in LAMMPS matches the +version discussed in :ref:`(Ponder) `, :ref:`(Ren) +`, and :ref:`(Shi) `. Likewise the current +implementation of HIPPO in LAMMPS matches the version discussed in +:ref:`(Rackers) `. + +These force fields can be used when polarization effects are desired +in simulations of water, organic molecules, and biomolecules including +proteins, provided that parameterizations (Tinker PRM force field +files) are available for the systems you are interested in. Files in +the LAMMPS potentials directory with a "amoeba" or "hippo" suffix can +be used. The Tinker distribution and website have additional force +field files as well: +`https://github.com/TinkerTools/tinker/tree/release/params +`_. + +Note that currently, HIPPO can only be used for water systems, but +HIPPO files for a variety of small organic and biomolecules are in +preparation by the Ponder group. Those force field files will be +included in the LAMMPS distribution when available. + +To use the AMOEBA or HIPPO force fields, a simulation must be 3d, and +fully periodic or fully non-periodic, and use an orthogonal (not +triclinic) simulation box. + +---------- + +The AMOEBA and HIPPO force fields contain the following terms in their +energy (U) computation. Further details for AMOEBA equations are in +:ref:`(Ponder) `, further details for the HIPPO +equations are in :ref:`(Rackers) `. + +.. math:: + + U & = U_{intermolecular} + U_{intramolecular} \\ + U_{intermolecular} & = U_{hal} + U_{repulsion} + U_{dispersion} + U_{multipole} + U_{polar} + U_{qxfer} \\ + U_{intramolecular} & = U_{bond} + U_{angle} + U_{torsion} + U_{oop} + U_{b\theta} + U_{UB} + U_{pitorsion} + U_{bitorsion} + +For intermolecular terms, the AMOEBA force field includes only the +:math:`U_{hal}`, :math:`U_{multipole}`, :math:`U_{polar}` terms. The +HIPPO force field includes all but the :math:`U_{hal}` term. In +LAMMPS, these are all computed by the :doc:`pair_style amoeba or hippo +` command. Note that the :math:`U_{multipole}` and +:math:`U_{polar}` terms in this formula are not the same for the +AMOEBA and HIPPO force fields. + +For intramolecular terms, the :math:`U_{bond}`, :math:`U_{angle}`, +:math:`U_{torsion}`, :math:`U_{oop}` terms are computed by the +:doc:`bond_style class2 ` :doc:`angle_style amoeba +`, :doc:`dihedral_style fourier `, and +:doc:`improper_style amoeba ` commands respectively. +The :doc:`angle_style amoeba ` command includes the +:math:`U_{b\theta}` bond-angle cross term, and the :math:`U_{UB}` term +for a Urey-Bradley bond contribution between the I,K atoms in the IJK +angle. + +The :math:`U_{pitorsion}` term is computed by the :doc:`fix +amoeba/pitorsion ` command. It computes 6-body +interaction between a pair of bonded atoms which each have 2 +additional bond partners. + +The :math:`U_{bitorsion}` term is computed by the :doc:`fix +amoeba/bitorsion ` command. It computes 5-body +interaction between two 4-body torsions (dihedrals) which overlap, +having 3 atoms in common. + +These command doc pages have additional details on the terms they +compute: + +* :doc:`pair_style amoeba or hippo ` +* :doc:`bond_style class2 ` +* :doc:`angle_style amoeba ` +* :doc:`dihedral_style fourier ` +* :doc:`improper_style amoeba ` +* :doc:`fix amoeba/pitorsion ` +* :doc:`fix amoeba/bitorsion ` + +---------- + +To use the AMOEBA or HIPPO force fields in LAMMPS, use commands like +the following appropriately in your input script. The only change +needed for AMOEBA vs HIPPO simulation is for the :doc:`pair_style +` and :doc:`pair_coeff ` commands, as shown +below. See examples/amoeba for example input scripts for both AMOEBA +and HIPPO. + +.. code-block:: LAMMPS + + units real # required + atom_style amoeba + bond_style class2 # CLASS2 package + angle_style amoeba + dihedral_style fourier # EXTRA-MOLECULE package + improper_style amoeba + # required per-atom data + fix amtype all property/atom i_amtype ghost yes + fix extra all property/atom & + i_amgroup i_ired i_xaxis i_yaxis i_zaxis d_pval ghost yes + fix polaxe all property/atom i_polaxe + + fix pit all amoeba/pitorsion # PiTorsion terms in FF + fix_modify pit energy yes + # Bitorsion terms in FF + fix bit all amoeba/bitorsion bitorsion.ubiquitin.data + fix_modify bit energy yes + + read_data data.ubiquitin fix amtype NULL "Tinker Types" & + fix pit "pitorsion types" "PiTorsion Coeffs" & + fix pit pitorsions PiTorsions & + fix bit bitorsions BiTorsions + + pair_style amoeba # AMOEBA FF + pair_coeff * * amoeba_ubiquitin.prm amoeba_ubiquitin.key + + pair_style hippo # HIPPO FF + pair_coeff * * hippo_water.prm hippo_water.key + + special_bonds lj/coul 0.5 0.5 0.5 one/five yes # 1-5 neighbors + +The data file read by the :doc:`read_data ` command should +be created by the tools/tinker/tinker2lmp.py conversion program +described below. It will create a section in the data file with the +header "Tinker Types". A :doc:`fix property/atom ` +command for the data must be specified before the read_data command. +In the example above the fix ID is *amtype*. + +Similarly, if the system you are simulating defines AMOEBA/HIPPO +pitorsion or bitorsion interactions, there will be entries in the data +file for those interactions. They require a :doc:`fix +amoeba/pitortion ` and :doc:`fix +amoeba/bitorsion ` command be defined. In the +example above, the IDs for these two fixes are *pit* and *bit*. + +Of course, if the system being modeled does not have one or more of +the following -- bond, angle, dihedral, improper, pitorsion, +bitorsion interactions -- then the corresponding style and fix +commands above do not need to be used. See the example scripts in +examples/amoeba for water systems as examples; they are simpler than +what is listed above. + +The two :doc:`fix property/atom ` commands with IDs +(in the example above) *extra* and *polaxe* are also needed to define +internal per-atom quantities used by the AMOEBA and HIPPO force +fields. + +The :doc:`pair_coeff ` command used for either the AMOEBA +or HIPPO force field takes two arguments for Tinker force field files, +namely a PRM and KEY file. The keyfile can be specified as NULL and +default values for a various settings will be used. Note that these 2 +files are meant to allow use of native Tinker files as-is. However +LAMMPS does not support all the options which can be included +in a Tinker PRM or KEY file. See specifics below. + +A :doc:`special_bonds ` command with the *one/five* +option is required, since the AMOEBA/HIPPO force fields define +weighting factors for not only 1-2, 1-3, 1-4 interactions, but also +1-5 interactions. This command will trigger a per-atom list of 1-5 +neighbors to be generated. The AMOEBA and HIPPO force fields define +their own custom weighting factors for all the 1-2, 1-3, 1-4, 1-5 +terms which in the Tinker PRM and KEY files; they can be different for +different terms in the force field. + +In addition to the list above, these command doc pages have additional +details: + +* :doc:`atom_style amoeba ` +* :doc:`fix property/atom ` +* :doc:`special_bonds ` + +---------- + +Tinker PRM and KEY files + +A Tinker PRM file is composed of sections, each of which has multiple +lines. This is the list of PRM sections LAMMPS knows how to parse and +use. Any other sections are skipped: + +* Angle Bending Parameters +* Atom Type Definitions +* Atomic Multipole Parameters +* Bond Stretching Parameters +* Charge Penetration Parameters +* Charge Transfer Parameters +* Dipole Polarizability Parameters +* Dispersion Parameters +* Force Field Definition +* Literature References +* Out-of-Plane Bend Parameters +* Pauli Repulsion Parameters +* Pi-Torsion Parameters +* Stretch-Bend Parameters +* Torsion-Torsion Parameters +* Torsional Parameters +* Urey-Bradley Parameters +* Van der Waals Pair Parameters +* Van der Waals Parameters + +A Tinker KEY file is composed of lines, each of which has a keyword +followed by zero or more parameters. This is the list of keywords +LAMMPS knows how to parse and use in the same manner Tinker does. Any +other keywords are skipped. The value in parenthesis is the default +value for the keyword if it is not specified, or if the keyfile in the +:doc:`pair_coeff ` command is specified as NULL: + +* a-axis (0.0) +* b-axis (0.0) +* c-axis (0.0) +* ctrn-cutoff (6.0) +* ctrn-taper (0.9 * ctrn-cutoff) +* cutoff +* delta-halgren (0.07) +* dewald (no long-range dispersion unless specified) +* dewald-alpha (0.4) +* dewald-cutoff (7.0) +* dispersion-cutoff (9.0) +* dispersion-taper (9.0 * dispersion-cutoff) +* dpme-grid +* dpme-order (4) +* ewald (no long-range electrostatics unless specified) +* ewald-alpha (0.4) +* ewald-cutoff (7.0) +* gamma-halgren (0.12) +* mpole-cutoff (9.0) +* mpole-taper (0.65 * mpole-cutoff) +* pcg-guess (enabled by default) +* pcg-noguess (disable pcg-guess if specified) +* pcg-noprecond (disable pcg-precond if specified) +* pcg-peek (1.0) +* pcg-precond (enabled by default) +* pewald-alpha (0.4) +* pme-grid +* pme-order (5) +* polar-eps (1.0e-6) +* polar-iter (100) +* polar-predict (no prediction operation unless specified) +* ppme-order (5) +* repulsion-cutoff (6.0) +* repulsion-taper (0.9 * repulsion-cutoff) +* taper +* usolve-cutoff (4.5) +* usolve-diag (2.0) +* vdw-cutoff (9.0) +* vdw-taper (0.9 * vdw-cutoff) + +---------- + +Tinker2lmp.py tool + +This conversion tool is found in the tools/tinker directory. +As shown in examples/amoeba/README, these commands produce +the data files found in examples/amoeba, and also illustrate +all the options available to use with the tinker2lmp.py script: + +.. code-block:: bash + + % python tinker2lmp.py -xyz water_dimer.xyz -amoeba amoeba_water.prm -data data.water_dimer.amoeba # AMOEBA non-periodic system + % python tinker2lmp.py -xyz water_dimer.xyz -hippo hippo_water.prm -data data.water_dimer.hippo # HIPPO non-periodic system + % python tinker2lmp.py -xyz water_box.xyz -amoeba amoeba_water.prm -data data.water_box.amoeba -pbc 18.643 18.643 18.643 # AMOEBA periodic system + % python tinker2lmp.py -xyz water_box.xyz -hippo hippo_water.prm -data data.water_box.hippo -pbc 18.643 18.643 18.643 # HIPPO periodic system + % python tinker2lmp.py -xyz ubiquitin.xyz -amoeba amoeba_ubiquitin.prm -data data.ubiquitin.new -pbc 54.99 41.91 41.91 -bitorsion bitorsion.ubiquitin.data.new # system with bitorsions + +Switches and their arguments may be specified in any order. + +The -xyz switch is required and specifies an input XYZ file as an +argument. The format of this file is an extended XYZ format defined +and used by Tinker for its input. Example \*.xyz files are in the +examples/amoeba directory. The file lists the atoms in the system. +Each atom has the following information: Tinker species name (ignored +by LAMMPS), xyz coordinates, Tinker numeric type, and a list of atom +IDs the atom is bonded to. + +Here is more information about the extended XYZ format defined and +used by Tinker, and links to programs that convert standard PDB files +to the extended XYZ format: + +* `http://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html `_ +* `https://github.com/emleddin/pdbxyz-xyzpdb `_ +* `https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f `_ + +The -amoeba or -hippo switch is required. It specifies an input +AMOEBA or HIPPO PRM force field file as an argument. This should be +the same file used by the :doc:`pair_style ` command in +the input script. + +The -data switch is required. It specifies an output file name for +the LAMMPS data file that will be produced. + +For periodic systems, the -pbc switch is required. It specifies the +periodic box size for each dimension (x,y,z). For a Tinker simulation +these are specified in the KEY file. + +The -bitorsion switch is only needed if the system contains Tinker +bitorsion interactions. The data for each type of bitorsion +interaction will be written to the specified file, and read by the +:doc:`fix amoeba/bitorsion ` command. The data +includes 2d arrays of values to which splines are fit, and thus is not +compatible with the LAMMPS data file format. + +---------- + +.. _howto-Ponder: + +**(Ponder)** Ponder, Wu, Ren, Pande, Chodera, Schnieders, Haque, Mobley, Lambrecht, DiStasio Jr, M. Head-Gordon, Clark, Johnson, T. Head-Gordon, J Phys Chem B, 114, 2549-2564 (2010). + +.. _howto-Rackers: + +**(Rackers)** Rackers, Silva, Wang, Ponder, J Chem Theory Comput, 17, 7056-7084 (2021). + +.. _howto-Ren: + +**(Ren)** Ren and Ponder, J Phys Chem B, 107, 5933 (2003). + +.. _howto-Shi: + +**(Shi)** Shi, Xia, Zhang, Best, Wu, Ponder, Ren, J Chem Theory Comp, 9, 4046, 2013. + diff --git a/doc/src/Howto_body.rst b/doc/src/Howto_body.rst index cc02e3d52f..88fa2d9c97 100644 --- a/doc/src/Howto_body.rst +++ b/doc/src/Howto_body.rst @@ -239,7 +239,7 @@ is consistent with the 6 moments of inertia: ixx iyy izz ixy ixz iyz = .. parsed-literal:: - 3 1 27 + 3 1 19 4 1 1 4 0 0 0 -0.7071 -0.7071 0 diff --git a/doc/src/Howto_mdi.rst b/doc/src/Howto_mdi.rst index f5aab0be22..14bef1a546 100644 --- a/doc/src/Howto_mdi.rst +++ b/doc/src/Howto_mdi.rst @@ -5,9 +5,9 @@ Client/server coupling of two (or more) codes is where one code is the "client" and sends request messages (data) to one (or more) "server" code(s). A server responds to each request with a reply message (data). This enables two (or more) codes to work in tandem to perform -a simulation. LAMMPS can act as either a client or server code; it -does this by using the `MolSSI Driver Interface (MDI) library -`_, +a simulation. In this context, LAMMPS can act as either a client or +server code. It does this by using the `MolSSI Driver Interface (MDI) +library `_, developed by the `Molecular Sciences Software Institute (MolSSI) `_, which is supported by the :ref:`MDI ` package. @@ -63,22 +63,39 @@ The package also provides a :doc:`mdi plugin ` command which enables LAMMPS to operate as an MDI driver and load an MDI engine as a plugin library. -The package also has a `fix mdi/aimd ` command in which -LAMMPS operates as an MDI driver to perform *ab initio* MD simulations -in conjunction with a quantum mechanics code. Its post_force() method -illustrates how a driver issues MDI commands to another code. This -command can be used to couple to an MDI engine which is either a -stand-alone code or a plugin library. +The package also has a `fix mdi/qm ` command in which +LAMMPS operates as an MDI driver in conjunction with a quantum +mechanics code as an MDI engine. The post_force() method of the +fix_mdi_qm.cpp file shows how a driver issues MDI commands to another +code. This command can be used to couple to an MDI engine which is +either a stand-alone code or a plugin library. + +As explained on the `fix mdi/qm ` command doc page, it can +be used to perform *ab initio* MD simulations or energy minimizations, +or to evaluate the quantum energy and forces for a series of +independent systems. The examples/mdi directory has example input +scripts for all of these use cases. ---------- The examples/mdi directory contains Python scripts and LAMMPS input script which use LAMMPS as either an MDI driver or engine or both. -Three example use cases are provided: +Currently, 5 example use cases are provided: -* Run ab initio MD (AIMD) using 2 instances of LAMMPS, one as driver - and one as an engine. As an engine, LAMMPS is a surrogate for a - quantum code. +* Run ab initio MD (AIMD) using 2 instances of LAMMPS. As a driver + LAMMPS performs the timestepping in either NVE or NPT mode. As an + engine, LAMMPS computes forces and is a surrogate for a quantum + code. + +* As a driver, LAMMPS runs an MD simulation. Every N steps it passes + the current snapshot to an MDI engine to evaluate the energy, + virial, and peratom forces. As the engine LAMMPS is a surrogate for + a quantum code. + +* As a driver, LAMMPS loops over a series of data files and passes the + configuration to an MDI engine to evaluate the energy, virial, and + peratom forces. As the engine LAMMPS is a surrogate for a quantum + code. * A Python script driver invokes a sequence of unrelated LAMMPS calculations. Calculations can be single-point energy/force @@ -91,20 +108,22 @@ Three example use cases are provided: Note that in any of these example where LAMMPS is used as an engine, an actual QM code (which supports MDI) could be used in its place, -without modifying other code or scripts, except to specify the name of -the QM code. +without modifying the input scripts or launch commands, except to +specify the name of the QM code. -The examples/mdi/README file explains how to launch both driver and +The examples/mdi/Run.sh file illustrates how to launch both driver and engine codes so that they communicate using the MDI library via either -MPI or sockets. +MPI or sockets. Or using the engine as a stand-alone code or plugin +library. ------------- -Currently there are two quantum DFT codes which have direct MDI -support, `Quantum ESPRESSO (QE) `_ -and `INQ `_. There are also -several QM codes which have indirect support through QCEngine or i-PI. -The former means they require a wrapper program (QCEngine) with MDI +Currently there are at least two quantum DFT codes which have direct +MDI support, `Quantum ESPRESSO (QE) +`_ and `INQ +`_. There are also several QM +codes which have indirect support through QCEngine or i-PI. The +former means they require a wrapper program (QCEngine) with MDI support which writes/read files to pass data to the quantum code itself. The list of QCEngine-supported and i-PI-supported quantum codes is on the `MDI webpage diff --git a/doc/src/Howto_structured_data.rst b/doc/src/Howto_structured_data.rst index 4ea6c28086..18a5dfd775 100644 --- a/doc/src/Howto_structured_data.rst +++ b/doc/src/Howto_structured_data.rst @@ -184,7 +184,7 @@ frame. .. code-block:: python - import re, yaml + import yaml import pandas as pd try: @@ -193,7 +193,7 @@ frame. from yaml import SafeLoader as Loader with open("ave.yaml") as f: - ave = yaml.load(docs, Loader=Loader) + ave = yaml.load(f, Loader=Loader) keys = ave['keywords'] df = {} diff --git a/doc/src/Howto_viscosity.rst b/doc/src/Howto_viscosity.rst index 5cabf63de3..3c97628179 100644 --- a/doc/src/Howto_viscosity.rst +++ b/doc/src/Howto_viscosity.rst @@ -68,7 +68,8 @@ liquid Ar via the GK formalism: # Sample LAMMPS input script for viscosity of liquid Ar units real - variable T equal 86.4956 + variable T equal 200.0 # run temperature + variable Tinit equal 250.0 # equilibration temperature variable V equal vol variable dt equal 4.0 variable p equal 400 # correlation length @@ -99,12 +100,14 @@ liquid Ar via the GK formalism: # equilibration and thermalization - velocity all create $T 102486 mom yes rot yes dist gaussian - fix NVT all nvt temp $T $T 10 drag 0.2 + velocity all create ${Tinit} 102486 mom yes rot yes dist gaussian + fix NVT all nvt temp ${Tinit} ${Tinit} 10 drag 0.2 run 8000 # viscosity calculation, switch to NVE if desired + velocity all create $T 102486 mom yes rot yes dist gaussian + fix NVT all nvt temp $T $T 10 drag 0.2 #unfix NVT #fix NVE all nve @@ -122,7 +125,7 @@ liquid Ar via the GK formalism: run 100000 variable v equal (v_v11+v_v22+v_v33)/3.0 variable ndens equal count(all)/vol - print "average viscosity: $v [Pa.s] @ $T K, ${ndens} /A^3" + print "average viscosity: $v [Pa.s] @ $T K, ${ndens} atoms/A^3" The fifth method is related to the above Green-Kubo method, but uses the Einstein formulation, analogous to the Einstein @@ -131,9 +134,9 @@ time-integrated momentum fluxes play the role of Cartesian coordinates, whose mean-square displacement increases linearly with time at sufficiently long times. -The sixth is periodic perturbation method. It is also a non-equilibrium MD method. -However, instead of measure the momentum flux in response of applied velocity gradient, -it measures the velocity profile in response of applied stress. +The sixth is the periodic perturbation method, which is also a non-equilibrium MD method. +However, instead of measuring the momentum flux in response to an applied velocity gradient, +it measures the velocity profile in response to applied stress. A cosine-shaped periodic acceleration is added to the system via the :doc:`fix accelerate/cos ` command, and the :doc:`compute viscosity/cos` command is used to monitor the diff --git a/doc/src/Intro_citing.rst b/doc/src/Intro_citing.rst index 9f761a7616..e10b1857f1 100644 --- a/doc/src/Intro_citing.rst +++ b/doc/src/Intro_citing.rst @@ -30,8 +30,8 @@ initial versions of LAMMPS is: `S. Plimpton, Fast Parallel Algorithms for Short-Range Molecular Dynamics, J Comp Phys, 117, 1-19 (1995). `_ -DOI for the LAMMPS code -^^^^^^^^^^^^^^^^^^^^^^^ +DOI for the LAMMPS source code +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LAMMPS developers use the `Zenodo service at CERN `_ to create digital object identifies (DOI) for stable releases of the diff --git a/doc/src/PDF/colvars-refman-lammps.pdf b/doc/src/PDF/colvars-refman-lammps.pdf index 71eaee867a..59d12f9253 100644 Binary files a/doc/src/PDF/colvars-refman-lammps.pdf and b/doc/src/PDF/colvars-refman-lammps.pdf differ diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index aaac06a4a8..cb828de0a2 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -27,6 +27,7 @@ page gives those details. :columns: 6 * :ref:`ADIOS ` + * :ref:`AMOEBA ` * :ref:`ASPHERE ` * :ref:`ATC ` * :ref:`AWPMD ` @@ -149,6 +150,24 @@ This package has :ref:`specific installation instructions ` on the :doc:` ---------- +.. _PKG-AMOEBA: + +AMOEBA package +--------------- + +**Contents:** + +TODO + +**Supporting info:** + +* src/AMOEBA: filenames -> commands +* :doc:`AMOEBA and HIPPO howto ` +* examples/amoeba +* TODO + +---------- + .. _PKG-ASPHERE: ASPHERE package @@ -657,7 +676,7 @@ advection-diffusion-reaction systems. The equations of motion of these DPD extensions are integrated through a modified velocity-Verlet (MVV) algorithm. -**Author:** Zhen Li (Division of Applied Mathematics, Brown University) +**Author:** Zhen Li (Department of Mechanical Engineering, Clemson University) **Supporting info:** @@ -1479,7 +1498,7 @@ the :doc:`Build extras ` page. * lib/mdi/README * :doc:`Howto MDI ` * :doc:`mdi ` -* :doc:`fix mdi/aimd ` +* :doc:`fix mdi/qm ` * examples/PACKAGES/mdi ---------- @@ -1801,6 +1820,8 @@ computes which analyze attributes of the potential. * src/ML-SNAP: filenames -> commands * :doc:`pair_style snap ` * :doc:`compute sna/atom ` +* :doc:`compute sna/grid ` +* :doc:`compute sna/grid/local ` * :doc:`compute snad/atom ` * :doc:`compute snav/atom ` * examples/snap diff --git a/doc/src/Packages_list.rst b/doc/src/Packages_list.rst index 3cd19e6e03..a280985f4c 100644 --- a/doc/src/Packages_list.rst +++ b/doc/src/Packages_list.rst @@ -33,6 +33,11 @@ whether an extra library is needed to build and use the package: - :doc:`dump adios ` - PACKAGES/adios - ext + * - :ref:`AMOEBA ` + - AMOEBA and HIPPO force fields + - :doc:`AMOEBA and HIPPO howto ` + - amoeba + - no * - :ref:`ASPHERE ` - aspherical particle models - :doc:`Howto spherical ` diff --git a/doc/src/Speed_measure.rst b/doc/src/Speed_measure.rst index 1daf49f4c4..888e8d9790 100644 --- a/doc/src/Speed_measure.rst +++ b/doc/src/Speed_measure.rst @@ -42,5 +42,4 @@ inaccurate relative timing data, because processors have to wait when communication occurs for other processors to catch up. Thus the reported times for "Communication" or "Other" may be higher than they really are, due to load-imbalance. If this is an issue, you can -uncomment the MPI_Barrier() lines in src/timer.cpp, and re-compile -LAMMPS, to obtain synchronized timings. +use the :doc:`timer sync ` command to obtain synchronized timings. diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index ef403daa84..b57c91ffee 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -95,7 +95,7 @@ Miscellaneous tools * :ref:`LAMMPS shell ` * :ref:`LAMMPS magic patterns for file(1) ` * :ref:`Offline build tool ` - * :ref:`singularity ` + * :ref:`singularity/apptainer ` * :ref:`SWIG interface ` * :ref:`vim ` @@ -1007,14 +1007,15 @@ Ivanov, at University of Iceland (ali5 at hi.is). .. _singularity_tool: -singularity tool ----------------------------------------- +singularity/apptainer tool +-------------------------- -The singularity sub-directory contains container definitions files -that can be used to build container images for building and testing -LAMMPS on specific OS variants using the `Singularity `_ -container software. Contributions for additional variants are welcome. -For more details please see the README.md file in that folder. +The singularity sub-directory contains container definitions files that +can be used to build container images for building and testing LAMMPS on +specific OS variants using the `Apptainer `_ or +`Singularity `_ container software. Contributions for +additional variants are welcome. For more details please see the +README.md file in that folder. ---------- diff --git a/doc/src/angle_amoeba.rst b/doc/src/angle_amoeba.rst new file mode 100644 index 0000000000..265c4812f9 --- /dev/null +++ b/doc/src/angle_amoeba.rst @@ -0,0 +1,138 @@ +.. index:: angle_style amoeba + +angle_style amoeba command +========================== + + +Syntax +"""""" + +.. code-block:: LAMMPS + + angle_style amoeba + +Examples +"""""""" + +.. code-block:: LAMMPS + + angle_style amoeba + angle_coeff * 75.0 -25.0 1.0 0.3 0.02 0.003 + angle_coeff * ba 3.6551 24.895 1.0119 1.5228 + angle_coeff * ub -7.6 1.5537 + +Description +""""""""""" + +The *amoeba* angle style uses the potential + +.. math:: + + E & = E_a + E_{ba} + E_{ub} \\ + E_a & = K_2\left(\theta - \theta_0\right)^2 + K_3\left(\theta - \theta_0\right)^3 + K_4\left(\theta - \theta_0\right)^4 + K_5\left(\theta - \theta_0\right)^5 + K_6\left(\theta - \theta_0\right)^6 \\ + E_{ba} & = N_1 (r_{ij} - r_1) (\theta - \theta_0) + N_2(r_{jk} - r_2)(\theta - \theta_0) \\ + E_{UB} & = K_{ub} (r_{ik} - r_{ub})^2 + +where :math:`E_a` is the angle term, :math:`E_{ba}` is a bond-angle +term, :math:`E_{UB}` is a Urey-Bradley bond term, :math:`\theta_0` is +the equilibrium angle, :math:`r_1` and :math:`r_2` are the equilibrium +bond lengths, and :math:`r_{ub}` is the equilibrium Urey-Bradley bond +length. + +These formulas match how the Tinker MD code performs its angle +calculations for the AMOEBA and HIPPO force fields. See the +:doc:`Howto amoeba ` page for more information about +the implementation of AMOEBA and HIPPO in LAMMPS. + +Note that the :math:`E_a` and :math:`E_{ba}` formulas are identical to +those used for the :doc:`angle_style class2/p6 ` +command, however there is no bond-bond cross term formula for +:math:`E_{bb}`. Additionally, there is a :math:`E_{UB}` term for a +Urey-Bradley bond. It is effectively a harmonic bond between the I +and K atoms of angle IJK, even though that bond is not enumerated in +the "Bonds" section of the data file. + +There are also two ways that Tinker computes the angle :math:`\theta` +in the :math:`E_a` formula. The first is the standard way of treating +IJK as an "in-plane" angle. The second is an "out-of-plane" method +which Tinker may use if the center atom J in the angle is bonded to +one additional atom in addition to I and K. In this case, all 4 atoms +are used to compute the :math:`E_a` formula, resulting in forces on +all 4 atoms. In the Tinker PRM file, these 2 options are denoted by +*angle* versus *anglep* entries in the "Angle Bending Parameters" +section of the PRM force field file. The *pflag* coefficient +described below selects between the 2 options. + +---------- + + +Coefficients for the :math:`E_a`, :math:`E_{bb}`, and :math:`E_{ub}` +formulas must be defined for each angle type via the :doc:`angle_coeff +` command as in the example above, or in the data file or +restart files read by the :doc:`read_data ` or +:doc:`read_restart ` commands. + +These are the 8 coefficients for the :math:`E_a` formula: + +* pflag = 0 or 1 +* ubflag = 0 or 1 +* :math:`\theta_0` (degrees) +* :math:`K_2` (energy) +* :math:`K_3` (energy) +* :math:`K_4` (energy) +* :math:`K_5` (energy) +* :math:`K_6` (energy) + +A pflag value of 0 vs 1 selects between the "in-plane" and +"out-of-plane" options described above. Ubflag is 1 if there is a +Urey-Bradley term associated with this angle type, else it is 0. +:math:`\theta_0` is specified in degrees, but LAMMPS converts it to +radians internally; hence the various :math:`K` values are effectively +energy per radian\^2 or radian\^3 or radian\^4 or radian\^5 or +radian\^6. + +For the :math:`E_{ba}` formula, each line in a :doc:`angle_coeff +` command in the input script lists 5 coefficients, the +first of which is "ba" to indicate they are BondAngle coefficients. +In a data file, these coefficients should be listed under a "BondAngle +Coeffs" heading and you must leave out the "ba", i.e. only list 4 +coefficients after the angle type. + +* ba +* :math:`N_1` (energy/distance\^2) +* :math:`N_2` (energy/distance\^2) +* :math:`r_1` (distance) +* :math:`r_2` (distance) + +The :math:`\theta_0` value in the :math:`E_{ba}` formula is not specified, +since it is the same value from the :math:`E_a` formula. + +For the :math:`E_{ub}` formula, each line in a :doc:`angle_coeff +` command in the input script lists 3 coefficients, the +first of which is "ub" to indicate they are UreyBradley coefficients. +In a data file, these coefficients should be listed under a +"UreyBradley Coeffs" heading and you must leave out the "ub", +i.e. only list 2 coefficients after the angle type. + +* ub +* :math:`K_{ub}` (energy/distance\^2) +* :math:`r_{ub}` (distance) + +---------- + +Restrictions +"""""""""""" + +This angle style can only be used if LAMMPS was built with the AMOEBA +package. See the :doc:`Build package ` doc page for +more info. + +Related commands +"""""""""""""""" + +:doc:`angle_coeff ` + +Default +""""""" + +none diff --git a/doc/src/angle_class2.rst b/doc/src/angle_class2.rst index 4e8e515564..f697af47f8 100644 --- a/doc/src/angle_class2.rst +++ b/doc/src/angle_class2.rst @@ -24,7 +24,7 @@ Examples .. code-block:: LAMMPS angle_style class2 - angle_coeff * 75.0 + angle_coeff * 75.0 25.0 0.3 0.002 angle_coeff 1 bb 10.5872 1.0119 1.5228 angle_coeff * ba 3.6551 24.895 1.0119 1.5228 diff --git a/doc/src/angle_style.rst b/doc/src/angle_style.rst index c7001cff18..85d87618dd 100644 --- a/doc/src/angle_style.rst +++ b/doc/src/angle_style.rst @@ -73,6 +73,7 @@ of (g,i,k,o,t) to indicate which accelerated styles exist. * :doc:`zero ` - topology but no interactions * :doc:`hybrid ` - define multiple styles of angle interactions +* :doc:`amoeba ` - AMOEBA angle * :doc:`charmm ` - CHARMM angle * :doc:`class2 ` - COMPASS (class 2) angle * :doc:`class2/p6 ` - COMPASS (class 2) angle expanded to 6th order diff --git a/doc/src/atom_style.rst b/doc/src/atom_style.rst index bd0c193962..74ae16820c 100644 --- a/doc/src/atom_style.rst +++ b/doc/src/atom_style.rst @@ -10,7 +10,7 @@ Syntax atom_style style args -* style = *angle* or *atomic* or *body* or *bond* or *charge* or *dipole* or *dpd* or *edpd* or *electron* or *ellipsoid* or *full* or *line* or *mdpd* or *molecular* or *oxdna* or *peri* or *smd* or *sph* or *sphere* or *bpm/sphere* or *spin* or *tdpd* or *tri* or *template* or *hybrid* +* style = *amoeba* or *angle* or *atomic* or *body* or *bond* or *charge* or *dipole* or *dpd* or *edpd* or *electron* or *ellipsoid* or *full* or *line* or *mdpd* or *molecular* or *oxdna* or *peri* or *smd* or *sph* or *sphere* or or *bpm/sphere* or *spin* or *tdpd* or *tri* or *template* or *hybrid* .. parsed-literal:: @@ -78,6 +78,8 @@ coordinates, velocities, atom IDs and types. See the :doc:`set ` commands for info on how to set these various quantities. ++--------------+-----------------------------------------------------+--------------------------------------+ +| *amoeba* | molecular + charge + 1/5 neighbors | AMOEBA/HIPPO polarized force fields | +--------------+-----------------------------------------------------+--------------------------------------+ | *angle* | bonds and angles | bead-spring polymers with stiffness | +--------------+-----------------------------------------------------+--------------------------------------+ @@ -137,11 +139,13 @@ quantities. .. note:: It is possible to add some attributes, such as a molecule ID, to - atom styles that do not have them via the :doc:`fix property/atom ` command. This command also - allows new custom attributes consisting of extra integer or - floating-point values to be added to atoms. See the :doc:`fix property/atom ` page for examples of cases - where this is useful and details on how to initialize, access, and - output the custom values. + atom styles that do not have them via the :doc:`fix property/atom + ` command. This command also allows new custom + attributes consisting of extra integer or floating-point values to + be added to atoms. See the :doc:`fix property/atom + ` page for examples of cases where this is + useful and details on how to initialize, access, and output the + custom values. All of the above styles define point particles, except the *sphere*, *bpm/sphere*, *ellipsoid*, *electron*, *peri*, *wavepacket*, *line*, @@ -154,19 +158,20 @@ per-type basis, using the :doc:`mass ` command, The finite-size particle styles assign mass to individual particles on a per-particle basis. -For the *sphere* and *bpm/sphere* styles, the particles are spheres and each stores a -per-particle diameter and mass. If the diameter > 0.0, the particle -is a finite-size sphere. If the diameter = 0.0, it is a point -particle. Note that by use of the *disc* keyword with the :doc:`fix -nve/sphere `, :doc:`fix nvt/sphere `, -:doc:`fix nph/sphere `, :doc:`fix npt/sphere -` commands for the *sphere* style, spheres can be effectively treated as 2d -discs for a 2d simulation if desired. See also the :doc:`set -density/disc ` command. The *sphere* and *bpm/sphere* styles take an optional 0 -or 1 argument. A value of 0 means the radius of each sphere is -constant for the duration of the simulation. A value of 1 means the -radii may vary dynamically during the simulation, e.g. due to use of -the :doc:`fix adapt ` command. +For the *sphere* and *bpm/sphere* styles, the particles are spheres +and each stores a per-particle diameter and mass. If the diameter > +0.0, the particle is a finite-size sphere. If the diameter = 0.0, it +is a point particle. Note that by use of the *disc* keyword with the +:doc:`fix nve/sphere `, :doc:`fix nvt/sphere +`, :doc:`fix nph/sphere `, :doc:`fix +npt/sphere ` commands for the *sphere* style, spheres +can be effectively treated as 2d discs for a 2d simulation if desired. +See also the :doc:`set density/disc ` command. The *sphere* and +*bpm/sphere* styles take an optional 0 or 1 argument. A value of 0 +means the radius of each sphere is constant for the duration of the +simulation. A value of 1 means the radii may vary dynamically during +the simulation, e.g. due to use of the :doc:`fix adapt ` +command. For the *ellipsoid* style, the particles are ellipsoids and each stores a flag which indicates whether it is a finite-size ellipsoid or @@ -175,15 +180,16 @@ vector with the 3 diameters of the ellipsoid and a quaternion 4-vector with its orientation. For the *dielectric* style, each particle can be either a physical -particle (e.g. an ion), or an interface particle representing a boundary -element. For physical particles, the per-particle properties are -the same as atom_style full. For interface particles, in addition to -these properties, each particle also has an area, a normal unit vector, -a mean local curvature, the mean and difference of the dielectric constants -of two sides of the interface, and the local dielectric constant at the -boundary element. The distinction between the physical and interface -particles is only meaningful when :doc:`fix polarize ` -commands are applied to the interface particles. +particle (e.g. an ion), or an interface particle representing a +boundary element. For physical particles, the per-particle properties +are the same as atom_style full. For interface particles, in addition +to these properties, each particle also has an area, a normal unit +vector, a mean local curvature, the mean and difference of the +dielectric constants of two sides of the interface, and the local +dielectric constant at the boundary element. The distinction between +the physical and interface particles is only meaningful when :doc:`fix +polarize ` commands are applied to the interface +particles. For the *dipole* style, a point dipole is defined for each point particle. Note that if you wish the particles to be finite-size @@ -272,16 +278,17 @@ showing the use of the *template* atom style versus *molecular*. .. note:: - When using the *template* style with a :doc:`molecule template ` that contains multiple molecules, you should - insure the atom types, bond types, angle_types, etc in all the - molecules are consistent. E.g. if one molecule represents H2O and - another CO2, then you probably do not want each molecule file to - define 2 atom types and a single bond type, because they will conflict - with each other when a mixture system of H2O and CO2 molecules is - defined, e.g. by the :doc:`read_data ` command. Rather the - H2O molecule should define atom types 1 and 2, and bond type 1. And - the CO2 molecule should define atom types 3 and 4 (or atom types 3 and - 2 if a single oxygen type is desired), and bond type 2. + When using the *template* style with a :doc:`molecule template + ` that contains multiple molecules, you should insure the + atom types, bond types, angle_types, etc in all the molecules are + consistent. E.g. if one molecule represents H2O and another CO2, + then you probably do not want each molecule file to define 2 atom + types and a single bond type, because they will conflict with each + other when a mixture system of H2O and CO2 molecules is defined, + e.g. by the :doc:`read_data ` command. Rather the H2O + molecule should define atom types 1 and 2, and bond type 1. And + the CO2 molecule should define atom types 3 and 4 (or atom types 3 + and 2 if a single oxygen type is desired), and bond type 2. For the *body* style, the particles are arbitrary bodies with internal attributes defined by the "style" of the bodies, which is specified by @@ -339,6 +346,8 @@ Many of the styles listed above are only enabled if LAMMPS was built with a specific package, as listed below. See the :doc:`Build package ` page for more info. +The *amoeba* style is part of the AMOEBA package. + The *angle*, *bond*, *full*, *molecular*, and *template* styles are part of the MOLECULE package. @@ -350,9 +359,11 @@ The *dipole* style is part of the DIPOLE package. The *peri* style is part of the PERI package for Peridynamics. -The *oxdna* style is part of the CG-DNA package for coarse-grained simulation of DNA and RNA. +The *oxdna* style is part of the CG-DNA package for coarse-grained +simulation of DNA and RNA. -The *electron* style is part of the EFF package for :doc:`electronic force fields `. +The *electron* style is part of the EFF package for :doc:`electronic +force fields `. The *dpd* style is part of the DPD-REACT package for dissipative particle dynamics (DPD). @@ -363,7 +374,8 @@ dissipative particle dynamics (mDPD), and transport dissipative particle dynamics (tDPD), respectively. The *sph* style is part of the SPH package for smoothed particle -hydrodynamics (SPH). See `this PDF guide `_ to using SPH in LAMMPS. +hydrodynamics (SPH). See `this PDF guide +`_ to using SPH in LAMMPS. The *mesont* style is part of the MESONT package. diff --git a/doc/src/compute.rst b/doc/src/compute.rst index 6fdedbbb95..508c440e78 100644 --- a/doc/src/compute.rst +++ b/doc/src/compute.rst @@ -284,6 +284,8 @@ The individual style names on the :doc:`Commands compute ` pag * :doc:`smd/vol ` - per-particle volumes and their sum in Smooth Mach Dynamics * :doc:`snap ` - gradients of SNAP energy and forces w.r.t. linear coefficients and related quantities for fitting SNAP potentials * :doc:`sna/atom ` - bispectrum components for each atom +* :doc:`sna/grid ` - global array of bispectrum components on a regular grid +* :doc:`sna/grid/local ` - local array of bispectrum components on a regular grid * :doc:`snad/atom ` - derivative of bispectrum components for each atom * :doc:`snav/atom ` - virial contribution from bispectrum components for each atom * :doc:`sph/e/atom ` - per-atom internal energy of Smooth-Particle Hydrodynamics atoms diff --git a/doc/src/compute_ave_sphere_atom.rst b/doc/src/compute_ave_sphere_atom.rst index db04682865..48dbf377cb 100644 --- a/doc/src/compute_ave_sphere_atom.rst +++ b/doc/src/compute_ave_sphere_atom.rst @@ -35,16 +35,24 @@ Examples Description """"""""""" -Define a computation that calculates the local density and temperature -for each atom and neighbors inside a spherical cutoff. +Define a computation that calculates the local mass density and +temperature for each atom based on its neighbors inside a spherical +cutoff. If an atom has M neighbors, then its local mass density is +calculated as the sum of its mass and its M neighbor masses, divided +by the volume of the cutoff sphere (or circle in 2d). The local +temperature of the atom is calculated as the temperature of the +collection of M+1 atoms, after subtracting the center-of-mass velocity +of the M+1 atoms from each of the M+1 atom's velocities. This is +effectively the thermal velocity of the neighborhood of the central +atom, similar to :doc:`compute temp/com `. -The optional keyword *cutoff* defines the distance cutoff -used when searching for neighbors. The default value is the cutoff -specified by the pair style. If no pair style is defined, then a cutoff -must be defined using this keyword. If the specified cutoff is larger than -that of the pair_style plus neighbor skin (or no pair style is defined), -the *comm_modify cutoff* option must also be set to match that of the -*cutoff* keyword. +The optional keyword *cutoff* defines the distance cutoff used when +searching for neighbors. The default value is the cutoff specified by +the pair style. If no pair style is defined, then a cutoff must be +defined using this keyword. If the specified cutoff is larger than +that of the pair_style plus neighbor skin (or no pair style is +defined), the *comm_modify cutoff* option must also be set to match +that of the *cutoff* keyword. The neighbor list needed to compute this quantity is constructed each time the calculation is performed (i.e. each time a snapshot of atoms @@ -55,16 +63,16 @@ too frequently. If you have a bonded system, then the settings of :doc:`special_bonds ` command can remove pairwise - interactions between atoms in the same bond, angle, or dihedral. This - is the default setting for the :doc:`special_bonds ` - command, and means those pairwise interactions do not appear in the - neighbor list. Because this fix uses the neighbor list, it also means - those pairs will not be included in the order parameter. This - difficulty can be circumvented by writing a dump file, and using the - :doc:`rerun ` command to compute the order parameter for - snapshots in the dump file. The rerun script can use a - :doc:`special_bonds ` command that includes all pairs in - the neighbor list. + interactions between atoms in the same bond, angle, or dihedral. + This is the default setting for the :doc:`special_bonds + ` command, and means those pairwise interactions do + not appear in the neighbor list. Because this compute uses the + neighbor list, it also means those pairs will not be included in + the order parameter. This difficulty can be circumvented by + writing a dump file, and using the :doc:`rerun ` command to + compute the order parameter for snapshots in the dump file. The + rerun script can use a :doc:`special_bonds ` command + that includes all pairs in the neighbor list. ---------- @@ -77,17 +85,20 @@ too frequently. Output info """"""""""" -This compute calculates a per-atom array with two columns: density and temperature. +This compute calculates a per-atom array with two columns: mass +density in density :doc:`units ` and temperature in temperature +:doc:`units `. These values can be accessed by any command that uses per-atom values -from a compute as input. See the :doc:`Howto output ` doc -page for an overview of LAMMPS output options. +from a compute as input. See the :doc:`Howto output ` +doc page for an overview of LAMMPS output options. Restrictions """""""""""" -This compute is part of the EXTRA-COMPUTE package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` page for more info. +This compute is part of the EXTRA-COMPUTE package. It is only enabled +if LAMMPS was built with that package. See the :doc:`Build package +` page for more info. Related commands """""""""""""""" @@ -97,5 +108,5 @@ Related commands Default """"""" -The option defaults are *cutoff* = pair style cutoff +The option defaults are *cutoff* = pair style cutoff. diff --git a/doc/src/compute_sna_atom.rst b/doc/src/compute_sna_atom.rst index 54a6df02a2..1b6b200685 100644 --- a/doc/src/compute_sna_atom.rst +++ b/doc/src/compute_sna_atom.rst @@ -2,6 +2,8 @@ .. index:: compute snad/atom .. index:: compute snav/atom .. index:: compute snap +.. index:: compute sna/grid +.. index:: compute sna/grid/local compute sna/atom command ======================== @@ -15,6 +17,12 @@ compute snav/atom command compute snap command ==================== +compute sna/grid command +======================== + +compute sna/grid/local command +============================== + Syntax """""" @@ -24,6 +32,9 @@ Syntax compute ID group-ID snad/atom rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ... compute ID group-ID snav/atom rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ... compute ID group-ID snap rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ... + compute ID group-ID snap rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ... + compute ID group-ID sna/grid nx ny nz rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ... + compute ID group-ID sna/grid/local nx ny nz rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ... * ID, group-ID are documented in :doc:`compute ` command * sna/atom = style name of this compute command @@ -32,8 +43,9 @@ Syntax * twojmax = band limit for bispectrum components (non-negative integer) * R_1, R_2,... = list of cutoff radii, one for each type (distance units) * w_1, w_2,... = list of neighbor weights, one for each type +* nx, ny, nz = number of grid points in x, y, and z directions (positive integer) * zero or more keyword/value pairs may be appended -* keyword = *rmin0* or *switchflag* or *bzeroflag* or *quadraticflag* or *chem* or *bnormflag* or *wselfallflag* or *bikflag* or *switchinnerflag* or *sinner* or *dinner* +* keyword = *rmin0* or *switchflag* or *bzeroflag* or *quadraticflag* or *chem* or *bnormflag* or *wselfallflag* or *bikflag* or *switchinnerflag* or *sinner* or *dinner* or *dgradflag* .. parsed-literal:: @@ -56,9 +68,6 @@ Syntax *wselfallflag* value = *0* or *1* *0* = self-contribution only for element of central atom *1* = self-contribution for all elements - *bikflag* value = *0* or *1* (only implemented for compute snap) - *0* = per-atom bispectrum descriptors are summed over atoms - *1* = per-atom bispectrum descriptors are not summed over atoms *switchinnerflag* value = *0* or *1* *0* = do not use inner switching function *1* = use inner switching function @@ -66,6 +75,12 @@ Syntax *sinnerlist* = *ntypes* values of *Sinner* (distance units) *dinner* values = *dinnerlist* *dinnerlist* = *ntypes* values of *Dinner* (distance units) + *bikflag* value = *0* or *1* (only implemented for compute snap) + *0* = descriptors are summed over atoms of each type + *1* = descriptors are listed separately for each atom + *dgradflag* value = *0* or *1* (only implemented for compute snap) + *0* = descriptor gradients are summed over atoms of each type + *1* = descriptor gradients are listed separately for each atom pair Examples """""""" @@ -78,6 +93,7 @@ Examples compute snap all snap 1.4 0.95 6 2.0 1.0 compute snap all snap 1.0 0.99363 6 3.81 3.83 1.0 0.93 chem 2 0 1 compute snap all snap 1.0 0.99363 6 3.81 3.83 1.0 0.93 switchinnerflag 1 sinner 1.35 1.6 dinner 0.25 0.3 + compute bgrid all sna/grid/local 200 200 200 1.4 0.95 6 2.0 1.0 Description """"""""""" @@ -212,6 +228,46 @@ command: See section below on output for a detailed explanation of the data layout in the global array. +The compute *sna/grid* and *sna/grid/local* commands calculate +bispectrum components for a regular grid of points. +These are calculated from the local density of nearby atoms *i'* +around each grid point, as if there was a central atom *i* +at the grid point. This is useful for characterizing fine-scale +structure in a configuration of atoms, and it is used +in the `MALA package `_ +to build machine-learning surrogates for finite-temperature Kohn-Sham +density functional theory (:ref:`Ellis et al. `) +Neighbor atoms not in the group do not contribute to the +bispectrum components of the grid points. The distance cutoff :math:`R_{ii'}` +assumes that *i* has the same type as the neighbor atom *i'*. + +Compute *sna/grid* calculates a global array containing bispectrum +components for a regular grid of points. +The grid is aligned with the current box dimensions, with the +first point at the box origin, and forming a regular 3d array with +*nx*, *ny*, and *nz* points in the x, y, and z directions. For triclinic +boxes, the array is congruent with the periodic lattice vectors +a, b, and c. The array contains one row for each of the +:math:`nx \times ny \times nz` grid points, looping over the index for *ix* fastest, +then *iy*, and *iz* slowest. Each row of the array contains the *x*, *y*, +and *z* coordinates of the grid point, followed by the bispectrum +components. See section below on output for a detailed explanation of the data +layout in the global array. + +Compute *sna/grid/local* calculates bispectrum components of a regular +grid of points similarly to compute *sna/grid* described above. +However, because the array is local, it contains only rows for grid points +that are local to the processor sub-domain. The global grid +of :math:`nx \times ny \times nz` points is still laid out in space the same as for *sna/grid*, +but grid points are strictly partitioned, so that every grid point appears in +one and only one local array. The array contains one row for each of the +local grid points, looping over the global index *ix* fastest, +then *iy*, and *iz* slowest. Each row of the array contains +the global indexes *ix*, *iy*, and *iz* first, followed by the *x*, *y*, +and *z* coordinates of the grid point, followed by the bispectrum +components. See section below on output for a detailed explanation of the data +layout in the global array. + The value of all bispectrum components will be zero for atoms not in the group. Neighbor atoms not in the group do not contribute to the bispectrum of atoms in the group. @@ -307,15 +363,6 @@ This option is typically used in conjunction with the *chem* keyword, and LAMMPS will generate a warning if both *chem* and *bnormflag* are not both set or not both unset. -The keyword *bikflag* determines whether or not to expand the bispectrum -rows of the global array returned by compute snap. If *bikflag* is set -to *1* then the bispectrum row, which is typically the per-atom bispectrum -descriptors :math:`B_{i,k}` summed over all atoms *i* to produce -:math:`B_k`, becomes bispectrum rows equal to the number of atoms. Thus, -the resulting bispectrum rows are :math:`B_{i,k}` instead of just -:math:`B_k`. In this case, the entries in the final column for these rows -are set to zero. - The keyword *switchinnerflag* with value 1 activates an additional radial switching function similar to :math:`f_c(r)` above, but acting to switch off @@ -340,6 +387,36 @@ When the central atom and the neighbor atom have different types, the values of :math:`S_{inner}` and :math:`D_{inner}` are the arithmetic means of the values for both types. +The keywords *bikflag* and *dgradflag* are only used by compute *snap*. +The keyword *bikflag* determines whether or not to list the descriptors +of each atom separately, or sum them together and list in a single row. +If *bikflag* is set +to *0* then a single bispectrum row is used, which contains the per-atom bispectrum +descriptors :math:`B_{i,k}` summed over all atoms *i* to produce +:math:`B_k`. If *bikflag* is set +to *1* this is replaced by a separate per-atom bispectrum row for each atom. +In this case, the entries in the final column for these rows +are set to zero. + +The keyword *dgradflag* determines whether to sum atom gradients or list +them separately. If *dgradflag* is set to 0, the bispectrum +descriptor gradients w.r.t. atom *j* are summed over all atoms *i'* +of type *I* (similar to *snad/atom* above). +If *dgradflag* is set to 1, gradients are listed separately for each pair of atoms. +Each row corresponds +to a single term :math:`\frac{\partial {B_{i,k} }}{\partial {r}^a_j}` +where :math:`{r}^a_j` is the *a-th* position coordinate of the atom with global +index *j*. This also changes +the number of columns to be equal to the number of bispectrum components, with 3 +additional columns representing the indices :math:`i`, :math:`j`, and :math:`a`, +as explained more in the Output info section below. The option *dgradflag=1* +requires that *bikflag=1*. + +.. note:: + + Using *dgradflag* = 1 produces a global array with :math:`N + 3N^2 + 1` rows + which becomes expensive for systems with more than 1000 atoms. + .. note:: If you have a bonded system, then the settings of :doc:`special_bonds @@ -414,6 +491,21 @@ number of columns in the global array generated by *snap* are 31, and 931, respectively, while the number of rows is 1+3\*\ *N*\ +6, where *N* is the total number of atoms. +Compute *sna/grid* evaluates a global array. +The array contains one row for each of the +:math:`nx \times ny \times nz` grid points, looping over the index for *ix* fastest, +then *iy*, and *iz* slowest. Each row of the array contains the *x*, *y*, +and *z* coordinates of the grid point, followed by the bispectrum +components. + +Compute *sna/grid/local* evaluates a local array. +The array contains one row for each of the +local grid points, looping over the global index *ix* fastest, +then *iy*, and *iz* slowest. Each row of the array contains +the global indexes *ix*, *iy*, and *iz* first, followed by the *x*, *y*, +and *z* coordinates of the grid point, followed by the bispectrum +components. + If the *quadratic* keyword value is set to 1, then additional columns are generated, corresponding to the products of all distinct pairs of bispectrum components. If the number of bispectrum components is *K*, @@ -435,6 +527,42 @@ components. For the purposes of handling contributions to force, virial, and quadratic combinations, these :math:`N_{elem}^3` sub-blocks are treated as a single block of :math:`K N_{elem}^3` columns. +If the *bik* keyword is set to 1, the structure of the snap array is expanded. +The first :math:`N` rows of the snap array +correspond to :math:`B_{i,k}` instead of a single row summed over atoms :math:`i`. +In this case, the entries in the final column for these rows +are set to zero. Also, each row contains only non-zero entries for the +columns corresponding to the type of that atom. This is not true in the case +of *dgradflag* keyword = 1 (see below). + +If the *dgradflag* keyword is set to 1, this changes the structure of the +global array completely. +Here the *snad/atom* quantities are replaced with rows corresponding to +descriptor gradient components on single atoms: + +.. math:: + + \frac{\partial {B_{i,k} }}{\partial {r}^a_j} + +where :math:`{r}^a_j` is the *a-th* position coordinate of the atom with global +index *j*. The rows are +organized in chunks, where each chunk corresponds to an atom with global index +:math:`j`. The rows in an atom :math:`j` chunk correspond to +atoms with global index :math:`i`. The total number of rows for +these descriptor gradients is therefore :math:`3N^2`. +The number of columns is equal to the number of bispectrum components, +plus 3 additional left-most columns representing the global atom indices +:math:`i`, :math:`j`, +and Cartesian direction :math:`a` (0, 1, 2, for x, y, z). +The first 3 columns of the first :math:`N` rows belong to the reference +potential force components. The remaining K columns contain the +:math:`B_{i,k}` per-atom descriptors corresponding to the non-zero entries +obtained when *bikflag* = 1. +The first column of the last row, after the first +:math:`N + 3N^2` rows, contains the reference potential +energy. The virial components are not used with this option. The total number of +rows is therefore :math:`N + 3N^2 + 1` and the number of columns is :math:`K + 3`. + These values can be accessed by any command that uses per-atom values from a compute as input. See the :doc:`Howto output ` doc page for an overview of LAMMPS output options. To see how this command @@ -464,8 +592,7 @@ The optional keyword defaults are *rmin0* = 0, .. _Thompson20141: -**(Thompson)** Thompson, Swiler, Trott, Foiles, Tucker, under review, preprint -available at `arXiv:1409.3880 `_ +**(Thompson)** Thompson, Swiler, Trott, Foiles, Tucker, J Comp Phys, 285, 316, (2015). .. _Bartok20101: @@ -486,4 +613,8 @@ of Angular Momentum, World Scientific, Singapore (1987). .. _Cusentino2020: -**(Cusentino)** Cusentino, Wood, and Thompson, J Phys Chem A, xxx, xxxxx, (2020) +**(Cusentino)** Cusentino, Wood, Thompson, J Phys Chem A, 124, 5456, (2020) + +.. _Ellis2021: + +**(Ellis)** Ellis, Fiedler, Popoola, Modine, Stephens, Thompson, Cangi, Rajamanickam, Phys Rev B, 104, 035120, (2021) diff --git a/doc/src/dump.rst b/doc/src/dump.rst index 4d272c940b..843d2e4883 100644 --- a/doc/src/dump.rst +++ b/doc/src/dump.rst @@ -27,6 +27,9 @@ dump command :doc:`dump custom/adios ` command ============================================= +:doc:`dump cfg/uef ` command +========================================== + Syntax """""" @@ -36,7 +39,7 @@ Syntax * ID = user-assigned name for the dump * group-ID = ID of the group of atoms to be dumped -* style = *atom* or *atom/gz* or *atom/zstd or *atom/mpiio* or *cfg* or *cfg/gz* or *cfg/zstd* or *cfg/mpiio* or *custom* or *custom/gz* or *custom/zstd* or *custom/mpiio* or *dcd* or *h5md* or *image* or *local* or *local/gz* or *local/zstd* or *molfile* or *movie* or *netcdf* or *netcdf/mpiio* or *vtk* or *xtc* or *xyz* or *xyz/gz* or *xyz/zstd* or *xyz/mpiio* or *yaml* +* style = *atom* or *atom/gz* or *atom/zstd or *atom/mpiio* or *cfg* or *cfg/gz* or *cfg/zstd* or *cfg/mpiio* or *cfg/uef* or *custom* or *custom/gz* or *custom/zstd* or *custom/mpiio* or *dcd* or *h5md* or *image* or *local* or *local/gz* or *local/zstd* or *molfile* or *movie* or *netcdf* or *netcdf/mpiio* or *vtk* or *xtc* or *xyz* or *xyz/gz* or *xyz/zstd* or *xyz/mpiio* or *yaml* * N = dump every this many timesteps * file = name of file to write dump info to * args = list of arguments for a particular style @@ -47,22 +50,23 @@ Syntax *atom/gz* args = none *atom/zstd* args = none *atom/mpiio* args = none - *atom/adios* args = none, discussed on :doc:`dump atom/adios ` doc page + *atom/adios* args = none, discussed on :doc:`dump atom/adios ` page *cfg* args = same as *custom* args, see below *cfg/gz* args = same as *custom* args, see below *cfg/zstd* args = same as *custom* args, see below *cfg/mpiio* args = same as *custom* args, see below + *cfg/uef* args = same as *custom* args, discussed on :doc:`dump cfg/uef ` page *custom*, *custom/gz*, *custom/zstd*, *custom/mpiio* args = see below - *custom/adios* args = same as *custom* args, discussed on :doc:`dump custom/adios ` doc page + *custom/adios* args = same as *custom* args, discussed on :doc:`dump custom/adios ` page *dcd* args = none - *h5md* args = discussed on :doc:`dump h5md ` doc page - *image* args = discussed on :doc:`dump image ` doc page + *h5md* args = discussed on :doc:`dump h5md ` page + *image* args = discussed on :doc:`dump image ` page *local*, *local/gz*, *local/zstd* args = see below - *molfile* args = discussed on :doc:`dump molfile ` doc page - *movie* args = discussed on :doc:`dump image ` doc page - *netcdf* args = discussed on :doc:`dump netcdf ` doc page - *netcdf/mpiio* args = discussed on :doc:`dump netcdf ` doc page - *vtk* args = same as *custom* args, see below, also :doc:`dump vtk ` doc page + *molfile* args = discussed on :doc:`dump molfile ` page + *movie* args = discussed on :doc:`dump image ` page + *netcdf* args = discussed on :doc:`dump netcdf ` page + *netcdf/mpiio* args = discussed on :doc:`dump netcdf ` page + *vtk* args = same as *custom* args, see below, also :doc:`dump vtk ` page *xtc* args = none *xyz* args = none *xyz/gz* args = none @@ -155,7 +159,7 @@ timesteps in one of several styles. The *image* and *movie* styles are the exception: the *image* style renders a JPG, PNG, or PPM image file of the atom configuration every N timesteps while the *movie* style combines and compresses them into a movie file; both are discussed in -detail on the :doc:`dump image ` doc page. The timesteps on +detail on the :doc:`dump image ` page. The timesteps on which dump output is written can also be controlled by a variable. See the :doc:`dump_modify every ` command. @@ -194,7 +198,7 @@ or multiple smaller files). For the *atom*, *custom*, *cfg*, and *local* styles, sorting is off by default. For the *dcd*, *xtc*, *xyz*, and *molfile* styles, sorting by atom ID is on by default. See the :doc:`dump_modify ` -doc page for details. +page for details. The *atom/gz*, *cfg/gz*, *custom/gz*, *local/gz*, and *xyz/gz* styles are identical in command syntax to the corresponding styles without @@ -204,7 +208,7 @@ alternative approach to writing compressed files via a pipe, as done by the regular dump styles, which may be required on clusters where the interface to the high-speed network disallows using the fork() library call (which is needed for a pipe). For the remainder of this -doc page, you should thus consider the *atom* and *atom/gz* styles +page, you should thus consider the *atom* and *atom/gz* styles (etc) to be inter-changeable, with the exception of the required filename suffix. @@ -218,7 +222,7 @@ As explained below, the *atom/mpiio*, *cfg/mpiio*, *custom/mpiio*, and *xyz/mpiio* styles are identical in command syntax and in the format of the dump files they create, to the corresponding styles without "mpiio", except the single dump file they produce is written in -parallel via the MPI-IO library. For the remainder of this doc page, +parallel via the MPI-IO library. For the remainder of this page, you should thus consider the *atom* and *atom/mpiio* styles (etc) to be inter-changeable. The one exception is how the filename is specified for the MPI-IO styles, as explained below. @@ -664,7 +668,7 @@ so that each value is 0.0 to 1.0. If the simulation box is triclinic (tilted), then all atom coords will still be between 0.0 and 1.0. I.e. actual unscaled (x,y,z) = xs\*A + ys\*B + zs\*C, where (A,B,C) are the non-orthogonal vectors of the simulation box edges, as discussed -on the :doc:`Howto triclinic ` doc page. +on the :doc:`Howto triclinic ` page. Use *xu*, *yu*, *zu* if you want the coordinates "unwrapped" by the image flags for each atom. Unwrapped means that if the atom has @@ -779,6 +783,11 @@ To write gzipped dump files, you must either compile LAMMPS with the -DLAMMPS_GZIP option or use the styles from the COMPRESS package. See the :doc:`Build settings ` page for details. +While a dump command is active (i.e. has not been stopped by using +the undump command), no commands may be used that will change the +timestep (e.g. :doc:`reset_timestep `). LAMMPS +will terminate with an error otherwise. + The *atom/gz*, *cfg/gz*, *custom/gz*, and *xyz/gz* styles are part of the COMPRESS package. They are only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for @@ -787,7 +796,7 @@ more info. The *atom/mpiio*, *cfg/mpiio*, *custom/mpiio*, and *xyz/mpiio* styles are part of the MPIIO package. They are only enabled if LAMMPS was built with that package. See the :doc:`Build package ` -doc page for more info. +page for more info. The *xtc*, *dcd* and *yaml* styles are part of the EXTRA-DUMP package. They are only enabled if LAMMPS was built with that package. See the @@ -797,12 +806,12 @@ Related commands """""""""""""""" :doc:`dump atom/adios `, :doc:`dump custom/adios `, -:doc:`dump h5md `, :doc:`dump image `, -:doc:`dump molfile `, :doc:`dump_modify `, -:doc:`undump ` +:doc:`dump cfg/uef `, :doc:`dump h5md `, +:doc:`dump image `, :doc:`dump molfile `, +:doc:`dump_modify `, :doc:`undump `, :doc:`write_dump ` Default """"""" The defaults for the *image* and *movie* styles are listed on the -:doc:`dump image ` doc page. +:doc:`dump image ` page. diff --git a/doc/src/fix.rst b/doc/src/fix.rst index b0ec47fbe6..2ec4437b39 100644 --- a/doc/src/fix.rst +++ b/doc/src/fix.rst @@ -171,6 +171,8 @@ accelerated styles exist. * :doc:`adapt/fep ` - enhanced version of fix adapt * :doc:`addforce ` - add a force to each atom * :doc:`addtorque ` - add a torque to a group of atoms +* :doc:`amoeba/bitorsion ` - torsion/torsion terms in AMOEBA force field +* :doc:`amoeba/pitorsion ` - 6-body terms in AMOEBA force field * :doc:`append/atoms ` - append atoms to a running simulation * :doc:`atc ` - initiates a coupled MD/FE simulation * :doc:`atom/swap ` - Monte Carlo atom type swapping @@ -194,7 +196,7 @@ accelerated styles exist. * :doc:`bond/swap ` - Monte Carlo bond swapping * :doc:`box/relax ` - relax box size during energy minimization * :doc:`charge/regulation ` - Monte Carlo sampling of charge regulation -* :doc:`cmap ` - enables CMAP cross-terms of the CHARMM force field +* :doc:`cmap ` - CMAP torsion/torsion terms in CHARMM force field * :doc:`colvars ` - interface to the collective variables "Colvars" library * :doc:`controller ` - apply control loop feedback mechanism * :doc:`damping/cundall ` - Cundall non-viscous damping for granular simulations @@ -246,7 +248,7 @@ accelerated styles exist. * :doc:`lb/viscous ` - * :doc:`lineforce ` - constrain atoms to move in a line * :doc:`manifoldforce ` - restrain atoms to a manifold during minimization -* :doc:`mdi/aimd ` - LAMMPS operates as driver for ab initio MD (AIMD) via the MolSSI Driver Interface (MDI) +* :doc:`mdi/qm ` - LAMMPS operates as driver for a quantum code via the MolSSI Driver Interface (MDI) * :doc:`meso/move ` - move mesoscopic SPH/SDPD particles in a prescribed fashion * :doc:`mol/swap ` - Monte Carlo atom type swapping with a molecule * :doc:`momentum ` - zero the linear and/or angular momentum of a group of atoms diff --git a/doc/src/fix_amoeba_bitorsion.rst b/doc/src/fix_amoeba_bitorsion.rst new file mode 100644 index 0000000000..74b3aced49 --- /dev/null +++ b/doc/src/fix_amoeba_bitorsion.rst @@ -0,0 +1,166 @@ +.. index:: fix amoeba/bitorsion + +fix amoeba/bitorsion command +============================ + +Syntax +"""""" + +.. parsed-literal:: + + fix ID group-ID ameoba/bitorsion filename + +* ID, group-ID are documented in :doc:`fix ` command +* amoeba/bitorsion = style name of this fix command +* filename = force-field file with AMOEBA bitorsion coefficients + +Examples +"""""""" + +.. code-block:: LAMMPS + + fix bit all amoeba/bitorsion bitorsion.ubiquitin.data + read_data proteinX.data fix bit bitorsions BiTorsions + fix_modify bit energy yes + +Description +""""""""""" + +This command enables 5-body torsion/torsion interactions to be added +to simulations which use the AMOEBA and HIPPO force fields. It +matches how the Tinker MD code computes its torsion/torsion +interactions for the AMOEBA and HIPPO force fields. See the +:doc:`Howto amoeba ` doc page for more information about +the implementation of AMOEBA and HIPPO in LAMMPS. + +Bitorsion interactions add additional potential energy contributions +to pairs of overlapping phi-psi dihedrals of amino-acids, which are +important to properly represent their conformational behavior. + +The examples/amoeba directory has a sample input script and data file +for ubiquitin, which illustrates use of the fix amoeba/bitorsion +command. + +As in the example above, this fix should be used before reading a data +file that contains a listing of bitorsion interactions. The +*filename* specified should contain the bitorsion parameters for the +AMOEBA or HIPPO force field. + +The data file read by the :doc:`read_data ` command must +contain the topology of all the bitorsion interactions, similar to the +topology data for bonds, angles, dihedrals, etc. Specifically it +should have a line like this in its header section: + +.. parsed-literal:: + + N bitorsions + +where N is the number of bitorsion 5-body interactions. It should +also have a section in the body of the data file like this with N +lines: + +.. parsed-literal:: + + BiTorsions + + 1 1 8 10 12 18 20 + 2 5 18 20 22 25 27 + [...] + N 3 314 315 317 318 330 + +The first column is an index from 1 to N to enumerate the bitorsion +5-atom tuples; it is ignored by LAMMPS. The second column is the +*type* of the interaction; it is an index into the bitorsion force +field file. The remaining 5 columns are the atom IDs of the atoms in +the two 4-atom dihedrals that overlap to create the bitorsion 5-body +interaction. Note that the *bitorsions* and *BiTorsions* keywords for +the header and body sections match those specified in the +:doc:`read_data ` command following the data file name. + +The data file should be generated by using the +tools/tinker/tinker2lmp.py conversion script which creates a LAMMPS +data file from Tinker input files, including its PRM file which +contains the parameters necessary for computing bitorsion +interactions. The script must be invoked with the optional +"-bitorsion" flag to do this; see the example for the ubiquitin system +in the tools/tinker/README file. The same conversion script also +creates the file of bitorsion coefficient data which is read by this +command. + +The potential energy associated with bitorsion interactions can be +output as described below. It can also be included in the total +potential energy of the system, as output by the :doc:`thermo_style +` command, if the :doc:`fix_modify energy ` +command is used, as in the example above. See the note below about +how to include the bitorsion energy when performing an :doc:`energy +minimization `. + +---------- + +Restart, fix_modify, output, run start/stop, minimize info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +This fix writes the list of bitorsion interactions to :doc:`binary +restart files `. See the :doc:`read_restart ` +command for info on how to re-specify a fix in an input script that +reads a restart file, so that the operation of the fix continues in an +uninterrupted fashion. + +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy of the bitorsion interactions to +both the global potential energy and peratom potential energies of the +system as part of :doc:`thermodynamic output ` or output +by the :doc:`compute pe/atom ` command. The default +setting for this fix is :doc:`fix_modify energy yes `. + +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution due to the bitorsion interactions to +both the global pressure and per-atom stress of the system via the +:doc:`compute pressure ` and :doc:`compute +stress/atom ` commands. The former can be +accessed by :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify virial yes `. + +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the potential +energy discussed above. The scalar value calculated by this fix is +"extensive". + +No parameter of this fix can be used with the *start/stop* keywords of +the :doc:`run ` command. + +The forces due to this fix are imposed during an energy minimization, +invoked by the :doc:`minimize ` command. + +The :doc:`fix_modify ` *respa* option is supported by this +fix. This allows to set at which level of the :doc:`r-RESPA +` integrator the fix is adding its forces. Default is the +outermost level. + +.. note:: + + For energy minimization, if you want the potential energy + associated with the bitorsion terms forces to be included in the + total potential energy of the system (the quantity being + minimized), you MUST not disable the :doc:`fix_modify ` + *energy* option for this fix. + +Restrictions +"""""""""""" + +To function as expected this fix command must be issued *before* a +:doc:`read_data ` command but *after* a :doc:`read_restart +` command. + +This fix can only be used if LAMMPS was built with the AMOEBA package. +See the :doc:`Build package ` page for more info. + +Related commands +"""""""""""""""" + +:doc:`fix_modify `, :doc:`read_data ` + +Default +""""""" + +none diff --git a/doc/src/fix_amoeba_pitorsion.rst b/doc/src/fix_amoeba_pitorsion.rst new file mode 100644 index 0000000000..9653807143 --- /dev/null +++ b/doc/src/fix_amoeba_pitorsion.rst @@ -0,0 +1,178 @@ +.. index:: fix amoeba/pitorsion + +fix amoeba/pitorsion command +============================ + +Syntax +"""""" + +.. parsed-literal:: + + fix ID group-ID ameoba/pitorsion + +* ID, group-ID are documented in :doc:`fix ` command +* amoeba/pitorsion = style name of this fix command + +Examples +"""""""" + +.. code-block:: LAMMPS + + fix pit all amoeba/pitorsion + read_data proteinX.data fix pit "pitorsion types" "PiTorsion Coeffs" & + fix pit pitorsions PiTorsions + fix_modify pit energy yes + +Description +""""""""""" + +This command enables 6-body pitorsion interactions to be added to +simulations which use the AMOEBA and HIPPO force fields. It matches +how the Tinker MD code computes its pitorsion interactions for the +AMOEBA and HIPPO force fields. See the :doc:`Howto amoeba +` doc page for more information about the implementation +of AMOEBA and HIPPO in LAMMPS. + +Pitorsion interactions add additional potential energy contributions +to 6-tuples of atoms IJKLMN which have a bond between atoms K and L, +where both K and L are additionally bonded to exactly two other atoms. +Namely K is also bonded to I and J. And L is also bonded to M and N. + +The examples/amoeba directory has a sample input script and data file +for ubiquitin, which illustrates use of the fix amoeba/pitorsion +command. + +As in the example above, this fix should be used before reading a data +file that contains a listing of pitorsion interactions. + +The data file read by the :doc:`read_data ` command must +contain the topology of all the pitorsion interactions, similar to the +topology data for bonds, angles, dihedrals, etc. Specifically it +should have two lines like these in its header section: + +.. parsed-literal:: + + M pitorsion types + N pitorsions + +where N is the number of pitorsion 5-body interactions and M is the +number of pitorsion types. It should also have two sections in the body +of the data file like these with M and N lines each: + +.. parsed-literal:: + + PiTorsion Coeffs + + 1 6.85 + 2 10.2 + [...] + M 6.85 + +.. parsed-literal:: + + PiTorsions + + 1 1 8 10 12 18 20 + 2 5 18 20 22 25 27 + [...] + N 3 314 315 317 318 330 + +For PiTorsion Coeffs, the first column is an index from 1 to M to +enumerate the pitorsion types. The second column is the single +prefactor coefficient needed for each type. + +For PiTorsions, the first column is an index from 1 to N to enumerate +the pitorsion 5-atom tuples; it is ignored by LAMMPS. The second +column is the "type" of the interaction; it is an index into the +PiTorsion Coeffs. The remaining 5 columns are the atom IDs of the +atoms in the two 4-atom dihedrals that overlap to create the pitorsion +5-body interaction. + +Note that the *pitorsion types* and *pitorsions* and *PiTorsion +Coeffs* and *PiTorsions* keywords for the header and body sections of +the data file match those specified in the :doc:`read_data +` command following the data file name. + +The data file should be generated by using the +tools/tinker/tinker2lmp.py conversion script which creates a LAMMPS +data file from Tinker input files, including its PRM file which +contains the parameters necessary for computing pitorsion +interactions. + +The potential energy associated with pitorsion interactions can be +output as described below. It can also be included in the total +potential energy of the system, as output by the :doc:`thermo_style +` command, if the :doc:`fix_modify energy ` +command is used, as in the example above. See the note below about +how to include the pitorsion energy when performing an :doc:`energy +minimization `. + +---------- + +Restart, fix_modify, output, run start/stop, minimize info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +This fix writes the list of pitorsion interactions to :doc:`binary +restart files `. See the :doc:`read_restart ` +command for info on how to re-specify a fix in an input script that +reads a restart file, so that the operation of the fix continues in an +uninterrupted fashion. + +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy of the pitorsion interactions to +both the global potential energy and peratom potential energies of the +system as part of :doc:`thermodynamic output ` or output +by the :doc:`compute pe/atom ` command. The default +setting for this fix is :doc:`fix_modify energy yes `. + +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution due to the pitorsion interactions to +both the global pressure and per-atom stress of the system via the +:doc:`compute pressure ` and :doc:`compute +stress/atom ` commands. The former can be +accessed by :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify virial yes `. + +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the potential +energy discussed above. The scalar value calculated by this fix is +"extensive". + +No parameter of this fix can be used with the *start/stop* keywords of +the :doc:`run ` command. + +The forces due to this fix are imposed during an energy minimization, +invoked by the :doc:`minimize ` command. + +The :doc:`fix_modify ` *respa* option is supported by this +fix. This allows to set at which level of the :doc:`r-RESPA +` integrator the fix is adding its forces. Default is the +outermost level. + +.. note:: + + For energy minimization, if you want the potential energy + associated with the pitorsion terms forces to be included in the + total potential energy of the system (the quantity being + minimized), you MUST not disable the :doc:`fix_modify ` + *energy* option for this fix. + +Restrictions +"""""""""""" + +To function as expected this fix command must be issued *before* a +:doc:`read_data ` command but *after* a :doc:`read_restart +` command. + +This fix can only be used if LAMMPS was built with the AMOEBA package. +See the :doc:`Build package ` page for more info. + +Related commands +"""""""""""""""" + +:doc:`fix_modify `, :doc:`read_data ` + +Default +""""""" + +none diff --git a/doc/src/fix_cmap.rst b/doc/src/fix_cmap.rst index 6475e538a2..19d8cd2d52 100644 --- a/doc/src/fix_cmap.rst +++ b/doc/src/fix_cmap.rst @@ -26,13 +26,13 @@ Examples Description """"""""""" -This command enables CMAP cross-terms to be added to simulations which -use the CHARMM force field. These are relevant for any CHARMM model -of a peptide or protein sequences that is 3 or more amino-acid -residues long; see :ref:`(Buck) ` and :ref:`(Brooks) ` -for details, including the analytic energy expressions for CMAP -interactions. The CMAP cross-terms add additional potential energy -contributions to pairs of overlapping phi-psi dihedrals of +This command enables CMAP 5-body interactions to be added to +simulations which use the CHARMM force field. These are relevant for +any CHARMM model of a peptide or protein sequences that is 3 or more +amino-acid residues long; see :ref:`(Buck) ` and :ref:`(Brooks) +` for details, including the analytic energy expressions for +CMAP interactions. The CMAP 5-body terms add additional potential +energy contributions to pairs of overlapping phi-psi dihedrals of amino-acids, which are important to properly represent their conformational behavior. @@ -47,15 +47,15 @@ lammps/potentials directory: charmm22.cmap and charmm36.cmap. The data file read by the "read_data" must contain the topology of all the CMAP interactions, similar to the topology data for bonds, angles, -dihedrals, etc. Specially it should have a line like this -in its header section: +dihedrals, etc. Specially it should have a line like this in its +header section: .. parsed-literal:: N crossterms -where N is the number of CMAP cross-terms. It should also have a section -in the body of the data file like this with N lines: +where N is the number of CMAP 5-body interactions. It should also +have a section in the body of the data file like this with N lines: .. parsed-literal:: @@ -66,28 +66,29 @@ in the body of the data file like this with N lines: [...] N 3 314 315 317 318 330 -The first column is an index from 1 to N to enumerate the CMAP terms; -it is ignored by LAMMPS. The second column is the "type" of the -interaction; it is an index into the CMAP force field file. The +The first column is an index from 1 to N to enumerate the CMAP 5-atom +tuples; it is ignored by LAMMPS. The second column is the "type" of +the interaction; it is an index into the CMAP force field file. The remaining 5 columns are the atom IDs of the atoms in the two 4-atom -dihedrals that overlap to create the CMAP 5-body interaction. Note -that the "crossterm" and "CMAP" keywords for the header and body -sections match those specified in the read_data command following the -data file name; see the :doc:`read_data ` page for -more details. +dihedrals that overlap to create the CMAP interaction. Note that the +"crossterm" and "CMAP" keywords for the header and body sections match +those specified in the read_data command following the data file name; +see the :doc:`read_data ` page for more details. -A data file containing CMAP cross-terms can be generated from a PDB -file using the charmm2lammps.pl script in the tools/ch2lmp directory -of the LAMMPS distribution. The script must be invoked with the -optional "-cmap" flag to do this; see the tools/ch2lmp/README file for -more information. +A data file containing CMAP 5-body interactions can be generated from +a PDB file using the charmm2lammps.pl script in the tools/ch2lmp +directory of the LAMMPS distribution. The script must be invoked with +the optional "-cmap" flag to do this; see the tools/ch2lmp/README file +for more information. The same conversion script also creates the +file of CMAP coefficient data which is read by this command. The potential energy associated with CMAP interactions can be output as described below. It can also be included in the total potential -energy of the system, as output by the -:doc:`thermo_style ` command, if the :doc:`fix_modify energy ` command is used, as in the example above. See -the note below about how to include the CMAP energy when performing an -:doc:`energy minimization `. +energy of the system, as output by the :doc:`thermo_style +` command, if the :doc:`fix_modify energy ` +command is used, as in the example above. See the note below about +how to include the CMAP energy when performing an :doc:`energy +minimization `. ---------- @@ -134,10 +135,11 @@ outermost level. .. note:: - If you want the potential energy associated with the CMAP terms - forces to be included in the total potential energy of the system - (the quantity being minimized), you MUST not disable the - :doc:`fix_modify ` *energy* option for this fix. + For energy minimization, if you want the potential energy + associated with the CMAP terms forces to be included in the total + potential energy of the system (the quantity being minimized), you + MUST not disable the :doc:`fix_modify ` *energy* option + for this fix. Restrictions """""""""""" diff --git a/doc/src/fix_latte.rst b/doc/src/fix_latte.rst index f75d44e3a4..8a6315fa48 100644 --- a/doc/src/fix_latte.rst +++ b/doc/src/fix_latte.rst @@ -116,13 +116,6 @@ potential energy of the system as part of :doc:`thermodynamic output `. The default setting for this fix is :doc:`fix_modify energy yes `. -The :doc:`fix_modify ` *virial* option is supported by -this fix to add the contribution compute by LATTE to the global -pressure of the system via the :doc:`compute pressure -` command. This can be accessed by -:doc:`thermodynamic output `. The default setting for -this fix is :doc:`fix_modify virial yes `. - The :doc:`fix_modify ` *virial* option is supported by this fix to add the contribution computed by LATTE to the global pressure of the system as part of :doc:`thermodynamic output @@ -137,7 +130,7 @@ energy discussed above. The scalar value calculated by this fix is No parameter of this fix can be used with the *start/stop* keywords of the :doc:`run ` command. -The DFTB forces computed by LATTE via this fix are imposed during an +The DFTB forces computed by LATTE via this fix are used during an energy minimization, invoked by the :doc:`minimize ` command. diff --git a/doc/src/fix_mdi_aimd.rst b/doc/src/fix_mdi_aimd.rst deleted file mode 100644 index 64bc4a3d6a..0000000000 --- a/doc/src/fix_mdi_aimd.rst +++ /dev/null @@ -1,103 +0,0 @@ -.. index:: fix mdi/aimd - -fix mdi/aimd command -====================== - -Syntax -"""""" - -.. parsed-literal:: - - fix ID group-ID mdi/aimd keyword - -* ID, group-ID are documented in :doc:`fix ` command -* mdi/aimd = style name of this fix command -* optional keyword = *plugin* - -Examples -"""""""" - -.. code-block:: LAMMPS - - fix 1 all mdi/aimd - fix 1 all mdi/aimd plugin - -Description -""""""""""" - -This command enables LAMMPS to act as a client with another server -code to couple the two codes together to perform ab initio MD (AIMD) -simulations. - -More specifically, this command causes LAMMPS to begin using the `MDI -Library `_ -to run as an MDI driver (client), which sends MDI commands to an -external MDI engine code (server) which in the case of AIMD is a -quantum mechanics (QM) code, or could be LAMMPS itself, acting as a -surrogate for a QM code. See the :doc:`Howto mdi ` page -for more information about how LAMMPS can operate as either an MDI -driver or engine. - -The examples/mdi directory contains input scripts performing AIMD in -this manner with LAMMPS acting as both a driver and an engine -(surrogate for a QM code). The examples/mdi/README file explains how -to launch both driver and engine codes so that they communicate using -the MDI library via either MPI or sockets. Any QM code that supports -MDI could be used in place of LAMMPS acting as a QM surrogate. See -the :doc:`Howto mdi ` page for a current list (March 2022) -of such QM codes. - -The engine code can run either as a stand-alone code, launched at the -same time as LAMMPS, or as a plugin library. See the :doc:`mdi plugin -` command for how to trigger LAMMPS to load the plugin library. -Again, the examples/mdi/README file explains how to launch both driver -and engine codes so that engine is used in plugin mode. - -To use this fix with a plugin engine, you must specify the -*plugin* keyword as the last argument, as illustrated above. - -.. note:: - - As of April 2022, the *plugin* keyword is needed. In a future - version of the MDI library it will no longer be necessary. - ----------- - -This fix performs the timestepping portion of an AIMD simulation. -Both LAMMPS and the engine code (QM or LAMMPS) should define the same -system (simulation box, atoms and their types) in their respective -input scripts. LAMMPS then begins its timestepping. - -At the point in each timestep when LAMMPS needs the force on each -atom, it communicates with the engine code. It sends the current -simulation box size and shape (if they change dynamically, e.g. during -an NPT simulation), and the current atom coordinates. The engine code -computes quantum forces on each atom and returns them to LAMMPS. If -LAMMPS also needs the system energy and/or virial, it requests those -values from the engine code as well. - -Restrictions -"""""""""""" - -This command is part of the MDI package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package -` page for more info. - -To use LAMMPS as an MDI driver in conjunction with other MDI-enabled -atomistic codes, the :doc:`units ` command should be used to -specify *real* or *metal* units. This will ensure the correct unit -conversions between LAMMPS and MDI units, which the other codes will -also perform in their preferred units. - -LAMMPS can also be used as an MDI driver in other unit choices it -supports, e.g. *lj*, but then no unit conversion is performed. - -Related commands -"""""""""""""""" - -:doc:`mdi engine ` - -Default -""""""" - -none diff --git a/doc/src/fix_mdi_qm.rst b/doc/src/fix_mdi_qm.rst new file mode 100644 index 0000000000..ca47db5e7a --- /dev/null +++ b/doc/src/fix_mdi_qm.rst @@ -0,0 +1,276 @@ +.. index:: fix mdi/qm + +fix mdi/qm command +====================== + +Syntax +"""""" + +.. parsed-literal:: + + fix ID group-ID mdi/qm keyword + +* ID, group-ID are documented in :doc:`fix ` command +* mdi/qm = style name of this fix command +* zero or more keyword/value pairs may be appended +* keyword = *virial* or *add* or *every* or *connect* or *elements* + + .. parsed-literal:: + + *virial* args = *yes* or *no* + yes = request virial tensor from server code + no = do not request virial tensor from server code + *add* args = *yes* or *no* + yes = add returned value from server code to LAMMPS quantities + no = do not add returned values to LAMMPS quantities + *every* args = Nevery + Nevery = request values from server code once every Nevery steps + *connect* args = *yes* or *no* + yes = perform a one-time connection to the MDI engine code + no = do not perform the connection operation + *elements* args = N_1 N_2 ... N_ntypes + N_1,N_2,...N_ntypes = atomic number for each of ntypes LAMMPS atom types + +Examples +"""""""" + +.. code-block:: LAMMPS + + fix 1 all mdi/qm + fix 1 all mdi/qm virial yes + fix 1 all mdi/qm add no every 100 elements 13 29 + +Description +""""""""""" + +This command enables LAMMPS to act as a client with another server +code that will compute the total energy, per-atom forces, and total +virial for atom conformations and simulation box size/shapes that +LAMMPS sends it. + +Typically the server code will be a quantum mechanics (QM) code, hence +the name of the fix. However this is not required, the server code +could be another classical molecular dynamics code or LAMMPS itself. +The server code must support use of the `MDI Library +`_ as +explained below. + +These are example use cases for this fix, discussed further below: + +* perform an ab initio MD (AIMD) simulation with quantum forces +* perform an energy minimization with quantum forces +* perform a nudged elastic band (NEB) calculation with quantum forces +* perform a QM calculation for a series of independent systems which LAMMPS reads or generates + +The code coupling performed by this command is done via the `MDI +Library `_. +LAMMPS runs as an MDI driver (client), and sends MDI commands to an +external MDI engine code (server), e.g. a QM code which has support +for MDI. See the :doc:`Howto mdi ` page for more +information about how LAMMPS can operate as either an MDI driver or +engine. + +The examples/mdi directory contains input scripts using this fix in +the various use cases discussed below. In each case, two instances of +LAMMPS are used, once as an MDI driver, once as an MDI engine +(surrogate for a QM code). The examples/mdi/README file explains how +to launch two codes so that they communicate via the MDI library using +either MPI or sockets. Any QM code that supports MDI could be used in +place of LAMMPS acting as a QM surrogate. See the :doc:`Howto mdi +` page for a current list (March 2022) of such QM codes. + +Note that an engine code can support MDI in either or both of two +modes. It can be used as a stand-alone code, launched at the same +time as LAMMPS. Or it can be used as a plugin library, which LAMMPS +loads. See the :doc:`mdi plugin ` command for how to trigger +LAMMPS to load a plugin library. The examples/mdi/README file +explains how to launch the two codes in either mode. + +---------- + +The *virial* keyword setting of yes or no determines whether +LAMMPS will request the QM code to also compute and return +a 6-element symmetric virial tensor for the system. + +The *add* keyword setting of *yes* or *no* determines whether the +energy and forces and virial returned by the QM code will be added to +the LAMMPS internal energy and forces and virial or not. If the +setting is *no* then the default :doc:`fix_modify energy ` +and :doc:`fix_modify virial ` settings are also set to +*no* and your input scripts should not set them to yes. See more +details on these fix_modify settings below. + +Whatever the setting for the *add* keyword, the QM energy, forces, and +virial will be stored by the fix, so they can be accessed by other +commands. See details below. + +The *every* keyword determines how often the QM code will be invoked +during a dynamics run with the current LAMMPS simulation box and +configuration of atoms. The QM code will be called once every +*Nevery* timesteps. + +The *connect* keyword determines whether this fix performs a one-time +connection to the QM code. The default is *yes*. The only time a +*no* is needed is if this command is used multiple times in an input +script. E.g. if it used inside a loop which also uses the :doc:`clear +` command to destroy the system (including any defined fixes). +See the examples/mdi/in.series.driver script as an example of this, +where LAMMPS is using the QM code to compute energy and forces for a +series of system configurations. In this use case *connect no* +is used along with the :doc:`mdi connect and exit ` command +to one-time initiate/terminate the connection outside the loop. + +The *elements* keyword allows specification of what element each +LAMMPS atom type corresponds to. This is specified by the atomic +number of the element, e.g. 13 for Al. An atomic number must be +specified for each of the ntypes LAMMPS atom types. Ntypes is +typically specified via the create_box command or in the data file +read by the read_data command. If this keyword is not specified, then +this fix will send the LAMMPS atom type for each atom to the MDI +engine. If both the LAMMPS driver and the MDI engine are initialized +so that atom type values are consistent in both codes, then the +*elements* keyword is not needed. Otherwise the keyword can be used +to insure the two codes are consistent in their definition of atomic +species. + +---------- + +The following 3 example use cases are illustrated in the examples/mdi +directory. See its README file for more details. + +(1) To run an ab initio MD (AIMD) dynamics simulation, or an energy +minimization with QM forces, or a multi-replica NEB calculation, use +*add yes* and *every 1* (the defaults). This is so that every time +LAMMPS needs energy and forces, the QM code will be invoked. + +Both LAMMPS and the QM code should define the same system (simulation +box, atoms and their types) in their respective input scripts. Note +that on this scenario, it may not be necessary for LAMMPS to define a +pair style or use a neighbor list. + +LAMMPS will then perform the timestepping or minimization iterations +for the simulation. At the point in each timestep or iteration when +LAMMPS needs the force on each atom, it communicates with the engine +code. It sends the current simulation box size and shape (if they +change dynamically, e.g. during an NPT simulation), and the current +atom coordinates. The engine code computes quantum forces on each +atom and the total energy of the system and returns them to LAMMPS. + +Note that if the AIMD simulation is an NPT or NPH model, or the energy +minimization includes :doc:`fix box relax ` to +equilibrate the box size/shape, then LAMMPS computes a pressure. This +means the *virial* keyword should be set to *yes* so that the QM +contribution to the pressure can be included. + +(2) To run dynamics with a LAMMPS interatomic potential, and evaluate +the QM energy and forces once every 1000 steps, use *add no* and +*every 1000*. This could be useful for using an MD run to generate +randomized configurations which are then passed to the QM code to +produce training data for a machine learning potential. A :doc:`dump +custom ` command could be invoked every 1000 steps to dump the +atom coordinates and QM forces to a file. Likewise the QM energy and +virial could be output with the :doc:`thermo_style custom +` command. + +(3) To do a QM evaluation of energy and forces for a series of *N* +independent systems (simulation box and atoms), use *add no* and +*every 1*. Write a LAMMPS input script which loops over the *N* +systems. See the :doc:`Howto multiple ` doc page for +details on looping and removing old systems. The series of systems +could be initialized by reading them from data files with +:doc:`read_data ` commands. Or, for example, by using the +:doc:`lattice ` , :doc:`create_atoms `, +:doc:`delete_atoms `, and/or :doc:`displace_atoms +random ` commands to generate a series of different +systems. At the end of the loop perform :doc:`run 0 ` and +:doc:`write_dump ` commands to invoke the QM code and +output the QM energy and forces. As in (2) this be useful to produce +QM data for training a machine learning potential. + +---------- + +Restart, fix_modify, output, run start/stop, minimize info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +No information about this fix is written to :doc:`binary restart files +`. + +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy computed by the QM code to the +global potential energy of the system as part of :doc:`thermodynamic +output `. The default setting for this fix is +:doc:`fix_modify energy yes `, unless the *add* keyword is +set to *no*, in which case the default setting is *no*. + +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution computed by the QM code to the global +pressure of the system as part of :doc:`thermodynamic output +`. The default setting for this fix is :doc:`fix_modify +virial yes `, unless the *add* keyword is set to *no*, in +which case the default setting is *no*. + +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the energy +returned by the QM code. The scalar value calculated by this fix is +"extensive". + +This fix also computes a global vector with of length 6 which contains +the symmetric virial tensor values returned by the QM code. It can +likewise be accessed by various :doc:`output commands `. + +The ordering of values in the symmetric virial tensor is as follows: +vxx, vyy, vzz, vxy, vxz, vyz. The values will be in pressure +:doc:`units `. + +This fix also computes a peratom array with 3 columns which contains +the peratom forces returned by the QM code. It can likewise be +accessed by various :doc:`output commands `. + +No parameter of this fix can be used with the *start/stop* keywords of +the :doc:`run ` command. + +Assuming the *add* keyword is set to *yes* (the default), the forces +computed by the QM code are used during an energy minimization, +invoked by the :doc:`minimize ` command. + +.. note:: + + If you want the potential energy associated with the QM forces to + be included in the total potential energy of the system (the + quantity being minimized), you MUST not disable the + :doc:`fix_modify ` *energy* option for this fix, which + means the *add* keyword should also be set to *yes* (the default). + + +Restrictions +"""""""""""" + +This command is part of the MDI package. It is only enabled if +LAMMPS was built with that package. See the :doc:`Build package +` page for more info. + +The QM code does not currently compute and return per-atom energy or +per-atom virial contributions. So they will not show up as part of +the calculations performed by the :doc:`compute pe/atom +` or :doc:`compute stress/atom ` +commands. + +To use LAMMPS as an MDI driver in conjunction with other MDI-enabled +codes (MD or QM codes), the :doc:`units ` command should be +used to specify *real* or *metal* units. This will ensure the correct +unit conversions between LAMMPS and MDI units. The other code will +also perform similar unit conversions into its preferred units. + +LAMMPS can also be used as an MDI driver in other unit choices it +supports, e.g. *lj*, but then no unit conversion is performed. + +Related commands +"""""""""""""""" + +:doc:`mdi plugin `, :doc:`mdi engine ` + +Default +""""""" + +The default for the optional keywords are virial = no, add = yes, +every = 1, connect = yes. diff --git a/doc/src/fix_reaxff_species.rst b/doc/src/fix_reaxff_species.rst index a652777ba7..11f0e7b7e7 100644 --- a/doc/src/fix_reaxff_species.rst +++ b/doc/src/fix_reaxff_species.rst @@ -20,7 +20,7 @@ Syntax * Nfreq = calculate average bond-order every this many timesteps * filename = name of output file * zero or more keyword/value pairs may be appended -* keyword = *cutoff* or *element* or *position* +* keyword = *cutoff* or *element* or *position* or *delete* .. parsed-literal:: @@ -31,6 +31,14 @@ Syntax *position* value = posfreq filepos posfreq = write position files every this many timestep filepos = name of position output file + *delete* value = filedel keyword value + filedel = name of delete species output file + keyword = *specieslist* or *masslimit* + *specieslist* value = Nspecies Species1 Species2 ... + Nspecies = number of species in list + *masslimit* value = massmin massmax + massmin = minimum molecular weight of species to delete + massmax = maximum molecular weight of species to delete Examples """""""" @@ -40,6 +48,7 @@ Examples fix 1 all reaxff/species 10 10 100 species.out fix 1 all reaxff/species 1 2 20 species.out cutoff 1 1 0.40 cutoff 1 2 0.55 fix 1 all reaxff/species 1 100 100 species.out element Au O H position 1000 AuOH.pos + fix 1 all reaxff/species 1 100 100 species.out delete species.del masslimit 0 50 Description """"""""""" @@ -59,13 +68,18 @@ the first line. .. warning:: In order to compute averaged data, it is required that there are no - neighbor list rebuilds between the *Nfreq* steps. For that reason, fix - *reaxff/species* may change your neighbor list settings. There will - be a warning message showing the new settings. Having an *Nfreq* - setting that is larger than what is required for correct computation - of the ReaxFF force field interactions can thus lead to incorrect - results. For typical ReaxFF calculations a value of 100 is already - quite large. + neighbor list rebuilds for at least Nrepeat\*Nevery steps preceding + each *Nfreq* step. For that reason, fix *reaxff/species* may + change your neighbor list settings. Reneighboring will occur no + more frequently than every Nrepeat\*Nevery timesteps, and will + occur less frequently if *Nfreq* is not a multiple of + Nrepeat\*Nevery. There will be a warning message showing the new + settings. Having a *Nfreq* setting that is larger than what is + required for correct computation of the ReaxFF force field + interactions, in combination with certain *Nrepeat* and *Nevery* + settings, can thus lead to incorrect results. For typical ReaxFF + calculations, reneighboring only every 100 steps is already quite a + low frequency. If the filename ends with ".gz", the output file is written in gzipped format. A gzipped dump file will be about 3x smaller than the text version, @@ -104,6 +118,30 @@ character appears in *filepos*, then one file per snapshot is written at *posfreq* and the "\*" character is replaced with the timestep value. For example, AuO.pos.\* becomes AuO.pos.0, AuO.pos.1000, etc. +The optional keyword *delete* enables the periodic removal of +molecules from the system. Criteria for deletion can be either a list +of specific chemical formulae or a range of molecular weights. +Molecules are deleted every *Nfreq* timesteps, and bond connectivity +is determined using the *Nevery* and *Nrepeat* keywords. The +*filedel* argument is the name of the output file that records the +species that are removed from the system. The *specieslist* keyword +permits specific chemical species to be deleted. The *Nspecies* +argument specifies how many species are eligible for deletion and is +followed by a list of chemical formulae, whose strings are compared to +species identified by this fix. For example, "specieslist 2 CO CO2" +deletes molecules that are identified as "CO" and "CO2" in the species +output file. When using the *specieslist* keyword, the *filedel* file +has the following format: the first line lists the chemical formulae +eligible for deletion, and each additional line contains the timestep +on which a molecule deletion occurs and the number of each species +deleted on that timestep. The *masslimit* keyword permits deletion of +molecules with molecular weights between *massmin* and *massmax*. +When using the *masslimit* keyword, each line of the *filedel* file +contains the timestep on which deletions occurs, followed by how many +of each species are deleted (with quantities preceding chemical +formulae). The *specieslist* and *masslimit* keywords cannot both be +used in the same *reaxff/species* fix. + ---------- The *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what diff --git a/doc/src/if.rst b/doc/src/if.rst index 08ec6f2c3e..91b001fbdc 100644 --- a/doc/src/if.rst +++ b/doc/src/if.rst @@ -156,27 +156,28 @@ and Boolean operators: Each A and B is a number or string or a variable reference like $a or ${abc}, or A or B can be another Boolean expression. -If a variable is used it can produce a number when evaluated, like an -:doc:`equal-style variable `. Or it can produce a string, -like an :doc:`index-style variable `. For an individual -Boolean operator, A and B must both be numbers or must both be -strings. You cannot compare a number to a string. +Note that all variables used will be substituted for before the +Boolean expression in evaluated. A variable can produce a number, +like an :doc:`equal-style variable `. Or it can produce a +string, like an :doc:`index-style variable `. + +The Boolean operators "==" and "!=" can operate on a pair or strings +or numbers. They cannot compare a number to a string. All the other +Boolean operations can only operate on numbers. Expressions are evaluated left to right and have the usual C-style precedence: the unary logical NOT operator "!" has the highest precedence, the 4 relational operators "<", "<=", ">", and ">=" are next; the two remaining relational operators "==" and "!=" are next; then the logical AND operator "&&"; and finally the logical OR -operator "\|\|" and logical XOR (exclusive or) operator "\|\^" have the -lowest precedence. Parenthesis can be used to group one or more +operator "\|\|" and logical XOR (exclusive or) operator "\|\^" have +the lowest precedence. Parenthesis can be used to group one or more portions of an expression and/or enforce a different order of evaluation than what would occur with the default precedence. When the 6 relational operators (first 6 in list above) compare 2 numbers, they return either a 1.0 or 0.0 depending on whether the -relationship between A and B is TRUE or FALSE. When the 6 relational -operators compare 2 strings, they also return a 1.0 or 0.0 for TRUE or -FALSE, but the comparison is done by the C function strcmp(). +relationship between A and B is TRUE or FALSE. When the 3 logical operators (last 3 in list above) compare 2 numbers, they also return either a 1.0 or 0.0 depending on whether the @@ -190,8 +191,16 @@ returns 1.0 if its argument is 0.0, else it returns 0.0. The 3 logical operators can only be used to operate on numbers, not on strings. -The overall Boolean expression produces a TRUE result if the result is -non-zero. If the result is zero, the expression result is FALSE. +The overall Boolean expression produces a TRUE result if the numeric +result is non-zero. If the result is zero, the expression result is +FALSE. + +.. note:: + + If the Boolean expression is a single numeric value with no Boolean + operators, it will be FALSE if the value = 0.0, otherwise TRUE. If + the Boolean expression is a single string, an error message will be + issued. ---------- diff --git a/doc/src/improper_amoeba.rst b/doc/src/improper_amoeba.rst new file mode 100644 index 0000000000..9b8260b853 --- /dev/null +++ b/doc/src/improper_amoeba.rst @@ -0,0 +1,77 @@ +.. index:: improper_style amoeba + +improper_style harmonic command +=============================== + +Syntax +"""""" + +.. code-block:: LAMMPS + + improper_style amoeba + +Examples +"""""""" + +.. code-block:: LAMMPS + + improper_style amoeba + improper_coeff 1 49.6 + +Description +""""""""""" + +The *amoeba* improper style uses the potential + +.. math:: + + E = K (\chi)^2 + +where :math:`\chi` is the improper angle and :math:`K` is a prefactor. +Note that the usual 1/2 factor is included in :math:`K`. + +This formula seems like a simplified version of the formula for the +:doc:`improper_style harmonic ` command with +:math:`\chi_0` = 0.0. However the computation of the angle +:math:`\chi` is done differently to match how the Tinker MD code +computes its out-of-plane improper for the AMOEBA and HIPPO force +fields. See the :doc:`Howto amoeba ` doc page for more +information about the implementation of AMOEBA and HIPPO in LAMMPS. + +If the 4 atoms in an improper quadruplet (listed in the data file read +by the :doc:`read_data ` command are ordered I,J,K,L then +atoms I,K,L are considered to lie in a plane and atom J is +out-of-place. The angle :math:`\chi_0` is computed as the Allinger +angle which is defined as the angle between the plane of I,K,L, and +the vector from atom I to atom J. + +The following coefficient must be defined for each improper type via +the :doc:`improper_coeff ` command as in the example +above, or in the data file or restart files read by the +:doc:`read_data ` or :doc:`read_restart ` +commands: + +* :math:`K` (energy) + +Note that the angle :math:`\chi` is computed in radians; hence +:math:`K` is effectively energy per radian\^2. + +---------- + +Restrictions +"""""""""""" + +This improper style can only be used if LAMMPS was built with the +AMOEBA package. See the :doc:`Build package ` doc page +for more info. + +Related commands +"""""""""""""""" + +:doc:`improper_coeff `, `improper_harmonic +:doc:` + +Default +""""""" + +none diff --git a/doc/src/improper_style.rst b/doc/src/improper_style.rst index ca7c31a923..3fd7eeb1e8 100644 --- a/doc/src/improper_style.rst +++ b/doc/src/improper_style.rst @@ -77,6 +77,7 @@ more of (g,i,k,o,t) to indicate which accelerated styles exist. * :doc:`zero ` - topology but no interactions * :doc:`hybrid ` - define multiple styles of improper interactions +* :doc:`amoeba ` - AMOEBA out-of-plane improper * :doc:`class2 ` - COMPASS (class 2) improper * :doc:`cossq ` - improper with a cosine squared term * :doc:`cvff ` - CVFF improper diff --git a/doc/src/kim_commands.rst b/doc/src/kim_commands.rst index 1be907888c..a002b539bd 100644 --- a/doc/src/kim_commands.rst +++ b/doc/src/kim_commands.rst @@ -29,15 +29,16 @@ Examples Description """"""""""" -The *kim command* includes a set of sub-commands that allow LAMMPS users to use -interatomic models (IM) (potentials and force fields) and their predictions for -various physical properties archived in the -`Open Knowledgebase of Interatomic Models (OpenKIM) `_ -repository. +The *kim command* includes a set of sub-commands that allow LAMMPS +users to use interatomic models (IM) (potentials and force fields) and +their predictions for various physical properties archived in the +`Open Knowledgebase of Interatomic Models (OpenKIM) +`_ repository. -Using OpenKIM provides LAMMPS users with immediate access to a large number of -verified IMs and their predictions. OpenKIM IMs have multiple benefits including -`reliability, reproducibility and convenience `_. +Using OpenKIM provides LAMMPS users with immediate access to a large +number of verified IMs and their predictions. OpenKIM IMs have +multiple benefits including `reliability, reproducibility and +convenience `_. .. _IM_types: diff --git a/doc/src/kspace_style.rst b/doc/src/kspace_style.rst index b2b4157247..30f3e550c5 100644 --- a/doc/src/kspace_style.rst +++ b/doc/src/kspace_style.rst @@ -129,8 +129,8 @@ Examples kspace_style pppm 1.0e-4 kspace_style pppm/cg 1.0e-5 1.0e-6 - kspace style msm 1.0e-4 - kspace style scafacos fmm 1.0e-4 + kspace_style msm 1.0e-4 + kspace_style scafacos fmm 1.0e-4 kspace_style none Used in input scripts: @@ -475,8 +475,8 @@ that package **and** the KSPACE package. See the :doc:`Build package ` page for more info. For MSM, a simulation must be 3d and one can use any combination of -periodic, non-periodic, or shrink-wrapped boundaries (specified using -the :doc:`boundary ` command). +periodic, non-periodic, but not shrink-wrapped boundaries (specified +using the :doc:`boundary ` command). For Ewald and PPPM, a simulation must be 3d and periodic in all dimensions. The only exception is if the slab option is set with diff --git a/doc/src/mdi.rst b/doc/src/mdi.rst index 3a6f0234fc..b5ee0098bd 100644 --- a/doc/src/mdi.rst +++ b/doc/src/mdi.rst @@ -8,21 +8,26 @@ Syntax .. parsed-literal:: - mdi mode args + mdi option args -* mode = *engine* or *plugin* +* option = *engine* or *plugin* or *connect* or *exit* .. parsed-literal:: - *engine* args = none - *plugin* args = name keyword value keyword value + *engine* args = zero or more keyword arg pairs + keywords = *elements* + *elements* args = N_1 N_2 ... N_ntypes + N_1,N_2,...N_ntypes = atomic number for each of ntypes LAMMPS atom types + *plugin* args = name keyword value keyword value ... name = name of plugin library, e.g. lammps means a liblammps.so library will be loaded + keyword/value pairs in any order, some are required, some are optional keywords = *mdi* or *infile* or *extra* or *command* - *mdi* value = args passed to MDI for driver to operate with plugins - *infile* value = filename the engine will read at start-up + *mdi* value = args passed to MDI for driver to operate with plugins (required) + *infile* value = filename the engine will read at start-up (optional) *extra* value = aditional command-line args to pass to engine library when loaded - *command* value = a LAMMPS input script command to execute - + *command* value = a LAMMPS input script command to execute (required) + *connect* args = none + *exit* args = none Examples """""""" @@ -30,26 +35,19 @@ Examples .. code-block:: LAMMPS mdi engine + mdi engine elements 13 29 mdi plugin lammps mdi "-role ENGINE -name lammps -method LINK" & infile in.aimd.engine extra "-log log.aimd.engine.plugin" & command "run 5" + mdi connect + mdi exit Description """"""""""" -This command implements two high-level operations within LAMMPS to use -the `MDI Library -` for -coupling to other codes in a client/server protocol. - -The *engine* mode enables LAMMPS to act as an MDI engine (server), -responding to requests from an MDI driver (client) code. - -The *plugin* mode enables LAMMPS to act as an MDI driver (client), and -load the MDI engine (server) code as a library plugin. In this case -the MDI engine is a library plugin. It can also be a stand-alone -code, launched separately from LAMMPS, in which case the mdi plugin -command is not used. +This command implements operations within LAMMPS to use the `MDI +Library ` +for coupling to other codes in a client/server protocol. See the Howto MDI doc page for a discussion of all the different ways 2 or more codes can interact via MDI. @@ -61,6 +59,22 @@ stand-alone code or as a plugin. The README file in that directory shows how to launch and couple codes for all the 4 usage modes, and so they communicate via the MDI library using either MPI or sockets. +The scripts in that directory illustrate the use of all the options +for this command. + +The *engine* option enables LAMMPS to act as an MDI engine (server), +responding to requests from an MDI driver (client) code. + +The *plugin* option enables LAMMPS to act as an MDI driver (client), +and load the MDI engine (server) code as a library plugin. In this +case the MDI engine is a library plugin. An MDI engine can also be a +stand-alone code, launched separately from LAMMPS, in which case the +mdi plugin command is not used. + +The *connect* and *exit* options are only used when LAMMPS is acting +as an MDI driver. As explained below, these options are normally not +needed, except for a specific kind of use case. + ---------- The *mdi engine* command is used to make LAMMPS operate as an MDI @@ -100,6 +114,8 @@ commands, which are described further below. - Send/request charge on each atom (N values) * - >COORDS or ELEMENTS + - Send elements (atomic numbers) for each atom (N values) * - FORCES or TOLERANCE - Send 4 tolerance parameters for next MD minimization via OPTG command * - >TYPES or VELOCITIES or COORDS command), then LAMMPS will do a more expensive operation to migrate atoms to new processors as needed and - re-neighbor. If the >NATOMS or >TYPES commands have been sent - (since the previous >COORDS command), then LAMMPS assumes the - system is new and re-initializes an entirely new simulation. + re-neighbor. If the >NATOMS or >TYPES or >ELEMENTS commands have + been sent (since the previous >COORDS command), then LAMMPS assumes + the system is new and re-initializes an entirely new simulation. + +.. note:: + + The >TYPES or >ELEMENTS commands are how the MDI driver tells the + LAMMPS engine which LAMMPS atom type to assign to each atom. If + both the MDI driver and the LAMMPS engine are initialized so that + atom type values are consistent in both codes, then the >TYPES + command can be used. If not, the optional *elements* keyword can + be used to specify what element each LAMMPS atom type corresponds + to. This is specified by the atomic number of the element, e.g. 13 + for Al. An atomic number must be specified for each of the ntypes + LAMMPS atom types. Ntypes is typically specified via the + create_box command or in the data file read by the read_data + command. In this has been done, the MDI driver can send an + >ELEMENTS command to the LAMMPS driver with the atomic number of + each atom. The MD and OPTG commands perform an entire MD simulation or energy minimization (to convergence) with no communication from the driver @@ -270,7 +302,7 @@ The *command* keyword is required. It specifies a LAMMPS input script command (as a single argument in quotes if it is multiple words). Once the plugin library is launched, LAMMPS will execute this command. Other previously-defined commands in the input script, such as the -:doc:`fix mdi/aimd ` command, should perform MDI +:doc:`fix mdi/qm ` command, should perform MDI communication with the engine, while the specified *command* executes. Note that if *command* is an :doc:`include ` command, then it could specify a filename with multiple LAMMPS commands. @@ -284,6 +316,31 @@ could specify a filename with multiple LAMMPS commands. "mdi plugin" command could then load the same library plugin or a different one if desired. +---------- + +The *mdi connect* and *mdi exit* commands are only used when LAMMPS is +operating as an MDI driver. And when other LAMMPS command(s) which +send MDI commands and associated data to/from the MDI engine are not +able to initiate and terminate the connection to the engine code. + +The only current MDI driver command in LAMMPS is the :doc:`fix mdi/qm +` command. If it is only used once in an input script +then it can initiate and terminate the connection. But if it is being +issued multiple times, e.g. in a loop that issues a :doc:`clear +` command, then it cannot initiate or terminate the connection +multiple times. Instead, the *mdi connect* and *mdi exit* commands +should be used outside the loop to initiate or terminate the connection. + +See the examples/mdi/in.series.driver script for an example of how +this is done. The LOOP in that script is reading a series of data +file configurations and passing them to an MDI engine (e.g. quantum +code) for energy and force evaluation. A *clear* command inside the +loop wipes out the current system so a new one can be defined. This +operation also destroys all fixes. So the :doc:`fix mdi/qm +` command is issued once per loop iteration. Note that it +includes a "connect no" option which disables the initiate/terminate +logic within that fix. + Restrictions """""""""""" @@ -304,7 +361,7 @@ supports, e.g. *lj*, but then no unit conversion is performed. Related commands """""""""""""""" -:doc:`fix mdi/aimd ` +:doc:`fix mdi/qm ` Default """"""" diff --git a/doc/src/min_style.rst b/doc/src/min_style.rst index 2b1bb08c5f..eab43ed3ca 100644 --- a/doc/src/min_style.rst +++ b/doc/src/min_style.rst @@ -4,7 +4,7 @@ min_style cg command ==================== min_style hftn command -==================== +====================== min_style sd command ==================== diff --git a/doc/src/neighbor.rst b/doc/src/neighbor.rst index 0cfedfc090..663170ef47 100644 --- a/doc/src/neighbor.rst +++ b/doc/src/neighbor.rst @@ -49,29 +49,27 @@ sometimes be faster. Either style should give the same answers. The *multi* style is a modified binning algorithm that is useful for systems with a wide range of cutoff distances, e.g. due to different -size particles. For granular pair styles, cutoffs are set to the -sum of the maximum atomic radii for each atom type. -For the *bin* style, the bin size is set to 1/2 of -the largest cutoff distance between any pair of atom types and a -single set of bins is defined to search over for all atom types. This -can be inefficient if one pair of types has a very long cutoff, but -other type pairs have a much shorter cutoff. The *multi* style uses -different sized bins for collections of different sized particles, where -"size" may mean the physical size of the particle or its cutoff -distance for interacting with other particles. Different +size particles. For granular pair styles, cutoffs are set to the sum of +the maximum atomic radii for each atom type. For the *bin* style, the +bin size is set to 1/2 of the largest cutoff distance between any pair +of atom types and a single set of bins is defined to search over for all +atom types. This can be inefficient if one pair of types has a very +long cutoff, but other type pairs have a much shorter cutoff. The +*multi* style uses different sized bins for collections of different +sized particles, where "size" may mean the physical size of the particle +or its cutoff distance for interacting with other particles. Different sets of bins are then used to construct the neighbor lists as as further described by Shire, Hanley, and Stratford :ref:`(Shire) `. -This imposes some extra setup overhead, but the searches themselves -may be much faster. By default, each atom type defines a separate -collection of particles. For systems where two or more atom types -have the same size (either physical size or cutoff distance), the -definition of collections can be customized, which can result in less -overhead and faster performance. See the :doc:`neigh_modify ` -command for how to define custom collections. Whether the collection -definition is customized or not, also see the -:doc:`comm_modify mode multi ` command for communication -options that further improve performance in a manner consistent with -neighbor style multi. +This imposes some extra setup overhead, but the searches themselves may +be much faster. By default, each atom type defines a separate collection +of particles. For systems where two or more atom types have the same +size (either physical size or cutoff distance), the definition of +collections can be customized, which can result in less overhead and +faster performance. See the :doc:`neigh_modify ` command +for how to define custom collections. Whether the collection definition +is customized or not, also see the :doc:`comm_modify mode multi +` command for communication options that further improve +performance in a manner consistent with neighbor style multi. An alternate style, *multi/old*, sets the bin size to 1/2 of the shortest cutoff distance and multiple sets of bins are defined to search over for @@ -80,6 +78,16 @@ algorithm in LAMMPS but was found to be significantly slower than the new approach. For now we are keeping the old option in case there are use cases where multi/old outperforms the new multi style. +.. note:: + + If there are multiple sub-styles in a :doc:`hybrid/overlay pair style + ` that cover the same atom types, but have significantly + different cutoffs, the *multi* style does not apply. Instead, the + :doc:`pair_modify neigh/trim ` setting applies (which is + *yes* by default). Please check the neighbor list summary printed at + the beginning of a calculation to verify that the desired set of + neighbor list builds is performed. + The :doc:`neigh_modify ` command has additional options that control how often neighbor lists are built and which pairs are diff --git a/doc/src/package.rst b/doc/src/package.rst index 8f9a65b2cc..0810bd5b6b 100644 --- a/doc/src/package.rst +++ b/doc/src/package.rst @@ -71,7 +71,7 @@ Syntax *no_affinity* values = none *kokkos* args = keyword value ... zero or more keyword/value pairs may be appended - keywords = *neigh* or *neigh/qeq* or *neigh/thread* or *newton* or *binsize* or *comm* or *comm/exchange* or *comm/forward* *comm/pair/forward* *comm/fix/forward* or *comm/reverse* or *gpu/aware* or *pair/only* + keywords = *neigh* or *neigh/qeq* or *neigh/thread* or *newton* or *binsize* or *comm* or *comm/exchange* or *comm/forward* *comm/pair/forward* *comm/fix/forward* or *comm/reverse* or *comm/pair/reverse* or *gpu/aware* or *pair/only* *neigh* value = *full* or *half* full = full neighbor list half = half neighbor list built in thread-safe manner @@ -96,6 +96,7 @@ Syntax *comm/pair/forward* value = *no* or *device* *comm/fix/forward* value = *no* or *device* *comm/reverse* value = *no* or *host* or *device* + *comm/pair/reverse* value = *no* or *device* no = perform communication pack/unpack in non-KOKKOS mode host = perform pack/unpack on host (e.g. with OpenMP threading) device = perform pack/unpack on device (e.g. on GPU) @@ -500,7 +501,7 @@ rule of thumb may give too large a binsize and the default should be overridden with a smaller value. The *comm* and *comm/exchange* and *comm/forward* and *comm/pair/forward* -and *comm/fix/forward* and comm/reverse* +and *comm/fix/forward* and *comm/reverse* and *comm/pair/reverse* keywords determine whether the host or device performs the packing and unpacking of data when communicating per-atom data between processors. "Exchange" communication happens only on timesteps that neighbor lists @@ -521,9 +522,16 @@ packing/unpacking data for the communication. A value of *host* means to use the host, typically a multi-core CPU, and perform the packing/unpacking in parallel with threads. A value of *device* means to use the device, typically a GPU, to perform the packing/unpacking -operation. If a value of *host* is used for the *comm/pair/forward* or -*comm/fix/forward* keyword, it will be automatically be changed to *no* -since these keywords don't support *host* mode. +operation. + +For the *comm/pair/forward* or *comm/fix/forward* or *comm/pair/reverse* +keywords, if a value of *host* is used it will be automatically +be changed to *no* since these keywords don't support *host* mode. The +value of *no* will also always be used when running on the CPU, i.e. setting +the value to *device* will have no effect if the pair/fix style is +running on the CPU. For the *comm/fix/forward* or *comm/pair/reverse* +keywords, not all styles support *device* mode and in that case will run +in *no* mode instead. The optimal choice for these keywords depends on the input script and the hardware used. The *no* value is useful for verifying that the diff --git a/doc/src/pair_amoeba.rst b/doc/src/pair_amoeba.rst new file mode 100644 index 0000000000..a58eb2fabc --- /dev/null +++ b/doc/src/pair_amoeba.rst @@ -0,0 +1,253 @@ +.. index:: pair_style amoeba +.. index:: pair_style hippo + +pair_style amoeba command +========================= + +pair_style hippo command +======================== +Syntax +"""""" + +.. code-block:: LAMMPS + + pair_style style + +* style = *amoeba* or *hippo* + +Examples +"""""""" + +.. code-block:: LAMMPS + + pair_style amoeba + pair_coeff * * protein.prm.amoeba protein.key.amoeba + +.. code-block:: LAMMPS + + pair_style hippo + pair_coeff * * water.prm.hippo water.key.hippo + + +Additional info +""""""""""""""" + +* :doc:`Howto amoeba ` +* examples/amoeba +* tools/amoeba +* potentials/\*.amoeba +* potentials/\*.hippo + +Description +""""""""""" + +The *amoeba* style computes the AMOEBA polarizable field formulated +by Jay Ponder's group at the U Washington at St Louis :ref:`(Ren) +`, :ref:`(Shi) `. The *hippo* style computes +the HIPPO polarizable force field, an extension to AMOEBA, formulated +by Josh Rackers and collaborators in the Ponder group :ref:`(Rackers) +`. + +These force fields can be used when polarization effects are desired +in simulations of water, organic molecules, and biomolecules including +proteins, provided that parameterizations (Tinker PRM force field +files) are available for the systems you are interested in. Files in +the LAMMPS potentials directory with a "amoeba" or "hippo" suffix can +be used. The Tinker distribution and website have additional force +field files as well. + +As discussed on the :doc:`Howto amoeba ` doc page, the +intermolecular (non-bonded) portion of the AMOEBA force field contains +these terms: + +.. math:: + + U_{amoeba} = U_{multipole} + U_{polar} + U_{hal} + +while the HIPPO force field contains these terms: + +.. math:: + + U_{hippo} = U_{multipole} + U_{polar} + U_{qxfer} + U_{repulsion} + U_{dispersion} + +Conceptually, these terms compute the following interactions: + +* :math:`U_{hal}` = buffered 14-7 van der Waals with offsets applied to hydrogen atoms +* :math:`U_{repulsion}` = Pauli repulsion due to rearrangement of electron density +* :math:`U_{dispersion}` = dispersion between correlated, instantaneous induced dipole moments +* :math:`U_{multipole}` = electrostatics between permanent point charges, dipoles, and quadrupoles +* :math:`U_{polar}` = electronic polarization between induced point dipoles +* :math:`U_{qxfer}` = charge transfer effects + +Note that the AMOEBA versus HIPPO force fields typically compute the +same term differently using their own formulas. The references on +this doc page give full details for both force fields. + +The formulas for the AMOEBA energy terms are: + +.. math:: + + U_{hal} = \epsilon_{ij} \left( \frac{1.07}{\rho_{ij} + 0.07} \right)^7 \left( \frac{1.12}{\rho_{ij}^7 + 0.12} - 2 \right) + U_{multipole} = \vec{M_i}\bold{T_{ij}}\vec{M_j} + \vec{M} = \left( q, \vec{\mu_{perm}}, \bold{\Theta} \right) + U_{polar} = \frac{1}{2}\vec{\mu_i}^{ind} \vec{E_i}^{perm} + +The formulas for the HIPPO energy terms are: + +.. math:: + + U_{multipole} = Z_i \frac{1}{r_{ij}} Z_j + Z_i T_{ij}^{damp} \vec{M_j} + Z_j T_{ji}^{damp} \vec{M_i} + \vec{M_i} T_{ij}^{damp} \vec{M_j} + \vec{M} = \left( Q, \vec{\mu_{perm}}, \bold{\Theta} \right) + U_{polar} = \frac{1}{2}\vec{\mu_i}^{ind} \vec{E_i}^{perm} + U_{qxfer} = \epsilon_i e^{-\eta_j r_{ij}} + \epsilon_j e^{-\eta_i r_{ij}} + U_{repulsion} = \frac{K_i K_j}{r_{ij}} S^2 + S^2 = \left( \int{\phi_i \phi_j} dv \right)^2 = \vec{M_i}\bold{T_{ij}^{repulsion}}\vec{M_j} + U_{dispersion} = -\frac{C_6^iC_6^j}{r_{ij}^6} \left( f_{damp}^{dispersion} \right)_{ij}^2 + +.. note:: + + The AMOEBA and HIPPO force fields compute long-range charge, dipole, + and quadrupole interactions as well as long-range dispersion + effects. However, unlike other models with long-range interactions + in LAMMPS, this does not require use of a KSpace style via the + :doc:`kspace_style ` command. That is because for + AMOEBA and HIPPO the long-range computations are intertwined with + the pairwise computations. So these pair style include both short- + and long-range computations. This means the energy and virial + computed by the pair style as well as the "Pair" timing reported by + LAMMPS will include the long-range calculations. + +The implementation of the AMOEBA and HIPPO force fields in LAMMPS was +done using F90 code provided by the Ponder group from their `Tinker MD +code `_. + +The current implementation (July 2022) of AMOEBA in LAMMPS matches the +version discussed in :ref:`(Ponder) `, :ref:`(Ren) +`, and :ref:`(Shi) `. Likewise the current +implementation of HIPPO in LAMMPS matches the version discussed in +:ref:`(Rackers) `. + +---------- + +Only a single pair_coeff command is used with either the *amoeba* and +*hippo* styles which specifies two Tinker files, a PRM and KEY file. + +.. code-block:: LAMMPS + + pair_coeff * * ../potentials/protein.prm.amoeba ../potentials/protein.key.amoeba + pair_coeff * * ../potentials/water.prm.hippo ../potentials/water.key.hippo + +Examples of the PRM files are in the potentials directory with an +\*.amoeba or \*.hippo suffix. The examples/amoeba directory has +examples of both PRM and KEY files. + +A Tinker PRM file is composed of sections, each of which has multiple +lines. A Tinker KEY file is composed of lines, each of which has a +keyword followed by zero or more parameters. + +The list of PRM sections and KEY keywords which LAMMPS recognizes are +listed on the :doc:`Howto amoeba ` doc page. If not +recognized, the section or keyword is skipped. + +Note that if the KEY file is specified as NULL, then no file is +required; default values for various AMOEBA/HIPPO settings are used. +The :doc:`Howto amoeba ` doc page also gives the default +settings. + +---------- + +Mixing, shift, table, tail correction, restart, rRESPA info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +These pair styles do not support the :doc:`pair_modify ` +mix, shift, table, and tail options. + +These pair styles do not write their information to :doc:`binary +restart files `, since it is stored in potential files. +Thus, you need to re-specify the pair_style and pair_coeff commands in +an input script that reads a restart file. + +These pair styles can only be used via the *pair* keyword of the +:doc:`run_style respa ` command. They do not support the +*inner*\ , *middle*\ , *outer* keywords. + +---------- + +Restrictions +"""""""""""" + +These pair styles are part of the AMOEBA package. They are only +enabled if LAMMPS was built with that package. See the :doc:`Build +package ` doc page for more info. + +The AMOEBA and HIPPO potential (PRM) and KEY files provided with +LAMMPS in the potentials and examples/amoeba directories are Tinker +files parameterized for Tinker units. Their numeric parameters are +converted by LAMMPS to its real units :doc:`units `. Thus you +can only use these pair styles with real units. + +These potentials do not yet calculate per-atom energy or virial +contributions. + +As explained on the :doc:`AMOEBA and HIPPO howto ` page, +use of these pair styles to run a simulation with the AMOEBA or HIPPO +force fields requires several things. + +The first is a data file generated by the tools/tinker/tinker2lmp.py +conversion script which uses Tinker file force field file input to +create a data file compatible with LAMMPS. + +The second is use of these commands: + +* :doc:`atom_style amoeba ` +* :doc:`fix property/atom ` +* :doc:`special_bonds one/five ` + +And third, depending on the model being simulated, these +commands for intramolecular interactions may also be required: + +* :doc:`bond_style class2 ` +* :doc:`angle_style amoeba ` +* :doc:`dihedral_style fourier ` +* :doc:`improper_style amoeba ` +* :doc:`fix amoeba/pitorsion ` +* :doc:`fix amoeba/bitorsion ` + +---------- + +Related commands +"""""""""""""""" + +:doc:`atom_style amoeba `, +:doc:`bond_style class2 `, +:doc:`angle_style amoeba `, +:doc:`dihedral_style fourier `, +:doc:`improper_style amoeba `, +:doc:`fix amoeba/pitorsion `, +:doc:`fix amoeba/bitorsion `, +:doc:`special_bonds one/five `, +:doc:`fix property/atom ` + +Default +""""""" + +none + +---------- + +.. _amoeba-Ponder: + +**(Ponder)** Ponder, Wu, Ren, Pande, Chodera, Schnieders, Haque, Mobley, Lambrecht, DiStasio Jr, M. Head-Gordon, Clark, Johnson, T. Head-Gordon, J Phys Chem B, 114, 2549-2564 (2010). + +.. _amoeba-Rackers: + +**(Rackers)** Rackers, Silva, Wang, Ponder, J Chem Theory Comput, 17, 7056-7084 (2021). + +.. _amoeba-Ren: + +**(Ren)** Ren and Ponder, J Phys Chem B, 107, 5933 (2003). + +.. _amoeba-Shi: + +**(Shi)** Shi, Xia, Zhang, Best, Wu, Ponder, Ren, J Chem Theory Comp, 9, 4046, 2013. + diff --git a/doc/src/pair_e3b.rst b/doc/src/pair_e3b.rst index b75fb8450c..8ae6d10b82 100644 --- a/doc/src/pair_e3b.rst +++ b/doc/src/pair_e3b.rst @@ -50,6 +50,12 @@ Examples pair_style hybrid/overlay e3b 1 lj/cut/tip4p/long 1 2 1 1 0.15 8.5 pair_coeff * * e3b preset 2011 +Used in example input script: + +.. parsed-literal:: + + examples/PACKAGES/e3b/in.e3b-tip4p2005 + Description """"""""""" @@ -68,21 +74,27 @@ The *e3b* style computes an \"explicit three-body\" (E3B) potential for water :r 0 & r>R_f\\ \end{cases} -This potential was developed as a water model that includes the three-body cooperativity of hydrogen bonding explicitly. -To use it in this way, it must be applied in conjunction with a conventional two-body water model, through *pair_style hybrid/overlay*. -The three body interactions are split into three types: A, B, and C. -Type A corresponds to anti-cooperative double hydrogen bond donor interactions. -Type B corresponds to the cooperative interaction of molecules that both donate and accept a hydrogen bond. -Type C corresponds to anti-cooperative double hydrogen bond acceptor interactions. -The three-body interactions are smoothly cutoff by the switching function s(r) between Rs and Rc3. -The two-body interactions are designed to correct for the effective many-body interactions implicitly included in the conventional two-body potential. -The two-body interactions are cut off sharply at Rc2, because K3 is typically significantly smaller than K2. -See :ref:`(Kumar 2008) ` for more details. +This potential was developed as a water model that includes the +three-body cooperativity of hydrogen bonding explicitly. To use it in +this way, it must be applied in conjunction with a conventional two-body +water model, through pair style :doc:`hybrid/overlay `. The +three body interactions are split into three types: A, B, and C. Type A +corresponds to anti-cooperative double hydrogen bond donor interactions. +Type B corresponds to the cooperative interaction of molecules that both +donate and accept a hydrogen bond. Type C corresponds to +anti-cooperative double hydrogen bond acceptor interactions. The +three-body interactions are smoothly cutoff by the switching function +s(r) between Rs and Rc3. The two-body interactions are designed to +correct for the effective many-body interactions implicitly included in +the conventional two-body potential. The two-body interactions are cut +off sharply at Rc2, because K3 is typically significantly smaller than +K2. See :ref:`(Kumar 2008) ` for more details. -Only a single *pair_coeff* command is used with the *e3b* style. -The first two arguments must be \* \*. -The oxygen atom type for the pair style is passed as the only argument to the *pair_style* command, not in the *pair_coeff* command. -The hydrogen atom type is inferred by the ordering of the atoms. +Only a single :doc:`pair_coeff ` command is used with the +*e3b* style and the first two arguments must be \* \*. The oxygen atom +type for the pair style is passed as the only argument to the +*pair_style* command, not in the *pair_coeff* command. The hydrogen +atom type is inferred from the ordering of the atoms. .. note:: @@ -90,26 +102,41 @@ The hydrogen atom type is inferred by the ordering of the atoms. Each water molecule must have consecutive IDs with the oxygen first. This pair style does not test that this criteria is met. -The *pair_coeff* command must have at least one keyword/value pair, as described above. -The *preset* keyword sets the potential parameters to the values used in :ref:`(Tainter 2011) ` or :ref:`(Tainter 2015) `. -To use the water models defined in those references, the *e3b* style should always be used in conjunction with an *lj/cut/tip4p/long* style through *pair_style hybrid/overlay*, as demonstrated in the second example above. -The *preset 2011* option should be used with the :doc:`TIP4P water model `. -The *preset 2015* option should be used with the :doc:`TIP4P/2005 water model `. -If the *preset* keyword is used, no other keyword is needed. -Changes to the preset parameters can be made by specifying the *preset* keyword followed by the specific parameter to change, like *Ea*\ . -Note that the other keywords must come after *preset* in the pair_style command. -The *e3b* style can also be used to implement any three-body potential of the same form by specifying all the keywords except *neigh*\ : *Ea*, *Eb*, *Ec*, *E2*, *K3*, *K2*, *Rc3*, *Rc2*, *Rs*, and *bondL*\ . -The keyword *bondL* specifies the intramolecular OH bond length of the water model being used. -This is needed to include H atoms that are within the cutoff even when the attached oxygen atom is not. +The *pair_coeff* command must have at least one keyword/value pair, as +described above. The *preset* keyword sets the potential parameters to +the values used in :ref:`(Tainter 2011) ` or +:ref:`(Tainter 2015) `. To use the water models defined in +those references, the *e3b* style should always be used in conjunction +with an *lj/cut/tip4p/long* style through *pair_style hybrid/overlay*, +as demonstrated in the second example above. The *preset 2011* option +should be used with the :doc:`TIP4P water model `. The +*preset 2015* option should be used with the :doc:`TIP4P/2005 water +model `. If the *preset* keyword is used, no other keyword +is needed. Changes to the preset parameters can be made by specifying +the *preset* keyword followed by the specific parameter to change, like +*Ea*\ . Note that the other keywords must come after *preset* in the +pair_style command. The *e3b* style can also be used to implement any +three-body potential of the same form by specifying all the keywords +except *neigh*\ : *Ea*, *Eb*, *Ec*, *E2*, *K3*, *K2*, *Rc3*, *Rc2*, +*Rs*, and *bondL*\ . The keyword *bondL* specifies the intramolecular +OH bond length of the water model being used. This is needed to include +H atoms that are within the cutoff even when the attached oxygen atom is +not. -This pair style allocates arrays sized according to the number of pairwise interactions within Rc3. -To do this it needs an estimate for the number of water molecules within Rc3 of an oxygen atom. -This estimate defaults to 10 and can be changed using the *neigh* keyword, which takes an integer as an argument. -If the neigh setting is too small, the simulation will fail with the error "neigh is too small". -If the neigh setting is too large, the pair style will use more memory than necessary. +This pair style allocates arrays sized according to the number of +pairwise interactions within Rc3. To do this it needs an estimate for +the number of water molecules within Rc3 of an oxygen atom. This +estimate defaults to 10 and can be changed using the *neigh* keyword, +which takes an integer as an argument. If the neigh setting is too +small, the simulation will fail with the error "neigh is too small". If +the neigh setting is too large, the pair style will use more memory than +necessary. -This pair style tallies a breakdown of the total E3B potential energy into sub-categories, which can be accessed via the :doc:`compute pair ` command as a vector of values of length 4. -The 4 values correspond to the terms in the first equation above: the E2 term, the Ea term, the Eb term, and the Ec term. +This pair style tallies a breakdown of the total E3B potential energy +into sub-categories, which can be accessed via the :doc:`compute pair +` command as a vector of values of length 4. The 4 values +correspond to the terms in the first equation above: the E2 term, the Ea +term, the Eb term, and the Ec term. See the examples/PACKAGES/e3b directory for a complete example script. diff --git a/doc/src/pair_meam.rst b/doc/src/pair_meam.rst index afa89e10ca..eac8449b21 100644 --- a/doc/src/pair_meam.rst +++ b/doc/src/pair_meam.rst @@ -1,8 +1,11 @@ .. index:: pair_style meam +.. index:: pair_style meam/kk pair_style meam command ========================= +Accelerator Variants: *meam/kk* + Syntax """""" @@ -347,6 +350,12 @@ Most published MEAM parameter sets use the default values *attrac* = *repulse* = Setting *repuls* = *attrac* = *delta* corresponds to the form used in several recent published MEAM parameter sets, such as :ref:`(Valone) ` +---------- + +.. include:: accel_styles.rst + +---------- + .. note:: The default form of the *erose* expression in LAMMPS was corrected diff --git a/doc/src/pair_modify.rst b/doc/src/pair_modify.rst index 4941693fbd..6d4171fbc9 100644 --- a/doc/src/pair_modify.rst +++ b/doc/src/pair_modify.rst @@ -13,7 +13,7 @@ Syntax * one or more keyword/value pairs may be listed * keyword = *pair* or *shift* or *mix* or *table* or *table/disp* or *tabinner* or *tabinner/disp* or *tail* or *compute* or *nofdotr* or *special* or - *compute/tally* + *compute/tally* or *neigh/trim* .. parsed-literal:: @@ -37,6 +37,7 @@ Syntax which = *lj/coul* or *lj* or *coul* w1,w2,w3 = 1-2, 1-3, 1-4 weights from 0.0 to 1.0 inclusive *compute/tally* value = *yes* or *no* + *neigh/trim* value = *yes* or *no* Examples """""""" @@ -283,6 +284,31 @@ the *pair* keyword. Use *no* to disable, or *yes* to enable. The "pair_modify pair compute/tally" command must be issued **before** the corresponding compute style is defined. +The *neigh/trim* keyword controls whether an explicit cutoff is set for +each neighbor list request issued by individual pair sub-styles when +using :doc:`pair hybrid/overlay `. When this keyword is +set to *no*, then the cutoff of each pair sub-style neighbor list will +be set equal to the largest cutoff, even if a shorter cutoff is +specified for a particular sub-style. If possible the neighbor list +will be copied directly from another list. When this keyword is set to +*yes* then the cutoff of the neighbor list will be explicitly set to the +value requested by the pair sub-style, and if possible the list will be +created by trimming neighbors from another list with a longer cutoff, +otherwise a new neighbor list will be created with the specified cutoff. +The *yes* option can be faster when there are multiple pair styles with +different cutoffs since the number of pair-wise distance checks between +neighbors is reduced (but the time required to build the neighbor lists +is increased). The *no* option could be faster when two or more neighbor +lists have similar (but not exactly the same) cutoffs. + +.. note:: + + The "pair_modify neigh/trim" command *only* applies when there are + multiple pair sub-styles for the same atoms with different cutoffs, + i.e. when using pair style hybrid/overlay. If you have different + cutoffs for different pairs for atoms type, the :doc:`neighbor style + multi ` should be used to create optimized neighbor lists. + ---------- Restrictions @@ -298,13 +324,13 @@ Related commands :doc:`pair_style `, :doc:`pair_style hybrid `, :doc:`pair_coeff `, :doc:`thermo_style `, -:doc:`compute \*/tally ` +:doc:`compute \*/tally `, :doc:`neighbor multi ` Default """"""" The option defaults are mix = geometric, shift = no, table = 12, -tabinner = sqrt(2.0), tail = no, and compute = yes. +tabinner = sqrt(2.0), tail = no, compute = yes, and neigh/trim yes. Note that some pair styles perform mixing, but only a certain style of mixing. See the doc pages for individual pair styles for details. diff --git a/doc/src/pair_none.rst b/doc/src/pair_none.rst index 3dc87a7815..0bb366bce1 100644 --- a/doc/src/pair_none.rst +++ b/doc/src/pair_none.rst @@ -20,28 +20,37 @@ Examples Description """"""""""" -Using a pair style of none means pair forces and energies are not -computed. +Using a pair style of *none* means that any previous pair style setting +will be deleted and pairwise forces and energies are not computed. -With this choice, the force cutoff is 0.0, which means that only atoms -within the neighbor skin distance (see the :doc:`neighbor ` -command) are communicated between processors. You must insure the -skin distance is large enough to acquire atoms needed for computing -bonds, angles, etc. +As a consequence there will be a pairwise force cutoff of 0.0, which has +implications for the default setting of the neighbor list and the +communication cutoff. Those are the sum of the largest pairwise cutoff +and the neighbor skin distance (see the documentation of the +:doc:`neighbor ` command and the :doc:`comm_modify +` command). When you have bonds, angles, dihedrals, or +impropers defined at the same time, you must set the communication +cutoff so that communication cutoff distance is large enough to acquire +and communicate sufficient ghost atoms from neighboring sub-domains as +needed for computing bonds, angles, etc. -A pair style of *none* will also prevent pairwise neighbor lists from -being built. However if the :doc:`neighbor ` style is *bin*, -data structures for binning are still allocated. If the neighbor skin -distance is small, then these data structures can consume a large -amount of memory. So you should either set the neighbor style to -*nsq* or set the skin distance to a larger value. +A pair style of *none* will also not request a pairwise neighbor list. +However if the :doc:`neighbor ` style is *bin*, data +structures for binning are still allocated. If the neighbor list cutoff +is small, then these data structures can consume a large amount of +memory. So you should either set the neighbor style to *nsq* or set the +skin distance to a larger value. -See the :doc:`pair_style zero ` for a way to trigger the -building of a neighbor lists, but compute no pairwise interactions. +See the :doc:`pair_style zero ` for a way to set a pairwise +cutoff and thus trigger the building of a neighbor lists and setting +a corresponding communication cutoff, but compute no pairwise interactions. Restrictions """""""""""" -none + +You must not use a :doc:`pair_coeff ` command with this pair +style. Since there is no interaction computed, you cannot set any +coefficients for it. Related commands """""""""""""""" diff --git a/doc/src/pair_style.rst b/doc/src/pair_style.rst index 2bcd66590d..fe63cf402e 100644 --- a/doc/src/pair_style.rst +++ b/doc/src/pair_style.rst @@ -116,6 +116,7 @@ accelerated styles exist. * :doc:`agni ` - AGNI machine-learning potential * :doc:`airebo ` - AIREBO potential of Stuart * :doc:`airebo/morse ` - AIREBO with Morse instead of LJ +* :doc:`amoeba ` - * :doc:`atm ` - Axilrod-Teller-Muto potential * :doc:`awpmd/cut ` - Antisymmetrized Wave Packet MD potential for atoms and electrons * :doc:`beck ` - Beck potential @@ -202,6 +203,7 @@ accelerated styles exist. * :doc:`hbond/dreiding/lj ` - DREIDING hydrogen bonding LJ potential * :doc:`hbond/dreiding/morse ` - DREIDING hydrogen bonding Morse potential * :doc:`hdnnp ` - High-dimensional neural network potential +* :doc:`hippo ` - * :doc:`ilp/graphene/hbn ` - registry-dependent interlayer potential (ILP) * :doc:`ilp/tmd ` - interlayer potential (ILP) potential for transition metal dichalcogenides (TMD) * :doc:`kim ` - interface to potentials provided by KIM project @@ -348,6 +350,7 @@ accelerated styles exist. * :doc:`spin/neel ` - * :doc:`srp ` - * :doc:`sw ` - Stillinger-Weber 3-body potential +* :doc:`sw/angle/table ` - Stillinger-Weber potential with tabulated angular term * :doc:`sw/mod ` - modified Stillinger-Weber 3-body potential * :doc:`table ` - tabulated pair potential * :doc:`table/rx ` - @@ -358,6 +361,7 @@ accelerated styles exist. * :doc:`tersoff/table ` - * :doc:`tersoff/zbl ` - Tersoff/ZBL 3-body potential * :doc:`thole ` - Coulomb interactions with thole damping +* :doc:`threebody/table ` - generic tabulated three-body potential * :doc:`tip4p/cut ` - Coulomb for TIP4P water w/out LJ * :doc:`tip4p/long ` - long-range Coulomb for TIP4P water w/out LJ * :doc:`tip4p/long/soft ` - diff --git a/doc/src/pair_sw.rst b/doc/src/pair_sw.rst index 0a6b284b96..c456b2f422 100644 --- a/doc/src/pair_sw.rst +++ b/doc/src/pair_sw.rst @@ -24,13 +24,16 @@ Syntax pair_style style keyword values * style = *sw* or *sw/mod* -* keyword = *maxdelcs* +* keyword = *maxdelcs* or *threebody* .. parsed-literal:: - *maxdelcs* value = delta1 delta2 (optional) + *maxdelcs* value = delta1 delta2 (optional, sw/mod only) delta1 = The minimum thershold for the variation of cosine of three-body angle delta2 = The maximum threshold for the variation of cosine of three-body angle + *threebody* value = *on* or *off* (optional, sw only) + on (default) = Compute both the three-body and two-body terms of the potential + off = Compute only the two-body term of the potential Examples """""""" @@ -44,6 +47,11 @@ Examples pair_style sw/mod maxdelcs 0.25 0.35 pair_coeff * * tmd.sw.mod Mo S S + pair_style hybrid sw threebody on sw threebody off + pair_coeff * * sw 1 mW_xL.sw mW NULL + pair_coeff 1 2 sw 2 mW_xL.sw mW xL + pair_coeff 2 2 sw 2 mW_xL.sw mW xL + Description """"""""""" @@ -68,22 +76,25 @@ three-body term. The summations in the formula are over all neighbors J and K of atom I within a cutoff distance :math:`a `\sigma`. The *sw/mod* style is designed for simulations of materials when -distinguishing three-body angles are necessary, such as borophene -and transition metal dichalcogenides, which cannot be described -by the original code for the Stillinger-Weber potential. -For instance, there are several types of angles around each Mo atom in `MoS_2`, -and some unnecessary angle types should be excluded in the three-body interaction. -Such exclusion may be realized by selecting proper angle types directly. -The exclusion of unnecessary angles is achieved here by the cut-off function (`f_C(\delta)`), -which induces only minimum modifications for LAMMPS. +distinguishing three-body angles are necessary, such as borophene and +transition metal dichalcogenides, which cannot be described by the +original code for the Stillinger-Weber potential. For instance, there +are several types of angles around each Mo atom in `MoS_2`, and some +unnecessary angle types should be excluded in the three-body +interaction. Such exclusion may be realized by selecting proper angle +types directly. The exclusion of unnecessary angles is achieved here by +the cut-off function (`f_C(\delta)`), which induces only minimum +modifications for LAMMPS. Validation, benchmark tests, and applications of the *sw/mod* style can be found in :ref:`(Jiang2) ` and :ref:`(Jiang3) `. -The *sw/mod* style computes the energy E of a system of atoms, whose potential -function is mostly the same as the Stillinger-Weber potential. The only modification -is in the three-body term, where the value of :math:`\delta = \cos \theta_{ijk} - \cos \theta_{0ijk}` -used in the original energy and force expression is scaled by a switching factor :math:`f_C(\delta)`: +The *sw/mod* style computes the energy E of a system of atoms, whose +potential function is mostly the same as the Stillinger-Weber +potential. The only modification is in the three-body term, where the +value of :math:`\delta = \cos \theta_{ijk} - \cos \theta_{0ijk}` used in +the original energy and force expression is scaled by a switching factor +:math:`f_C(\delta)`: .. math:: @@ -94,28 +105,46 @@ used in the original energy and force expression is scaled by a switching factor 0 & \left| \delta \right| > \delta_2 \end{array} \right. \\ -This cut-off function decreases smoothly from 1 to 0 over the range :math:`[\delta_1, \delta_2]`. -This smoothly turns off the energy and force contributions for :math:`\left| \delta \right| > \delta_2`. -It is suggested that :math:`\delta 1` and :math:`\delta_2` to be the value around -:math:`0.5 \left| \cos \theta_1 - \cos \theta_2 \right|`, with -:math:`\theta_1` and :math:`\theta_2` as the different types of angles around an atom. -For borophene and transition metal dichalcogenides, :math:`\delta_1 = 0.25` and :math:`\delta_2 = 0.35`. -This value enables the cut-off function to exclude unnecessary angles in the three-body SW terms. +This cut-off function decreases smoothly from 1 to 0 over the range +:math:`[\delta_1, \delta_2]`. This smoothly turns off the energy and +force contributions for :math:`\left| \delta \right| > \delta_2`. It is +suggested that :math:`\delta 1` and :math:`\delta_2` to be the value +around :math:`0.5 \left| \cos \theta_1 - \cos \theta_2 \right|`, with +:math:`\theta_1` and :math:`\theta_2` as the different types of angles +around an atom. For borophene and transition metal dichalcogenides, +:math:`\delta_1 = 0.25` and :math:`\delta_2 = 0.35`. This value enables +the cut-off function to exclude unnecessary angles in the three-body SW +terms. .. note:: - The cut-off function is just to be used as a technique to exclude some unnecessary angles, - and it has no physical meaning. It should be noted that the force and potential are inconsistent - with each other in the decaying range of the cut-off function, as the angle dependence for the - cut-off function is not implemented in the force (first derivation of potential). - However, the angle variation is much smaller than the given threshold value for actual simulations, - so the inconsistency between potential and force can be neglected in actual simulations. + The cut-off function is just to be used as a technique to exclude + some unnecessary angles, and it has no physical meaning. It should be + noted that the force and potential are inconsistent with each other + in the decaying range of the cut-off function, as the angle + dependence for the cut-off function is not implemented in the force + (first derivation of potential). However, the angle variation is + much smaller than the given threshold value for actual simulations, + so the inconsistency between potential and force can be neglected in + actual simulations. -Only a single pair_coeff command is used with the *sw* and *sw/mod* styles -which specifies a Stillinger-Weber potential file with parameters for all -needed elements. These are mapped to LAMMPS atom types by specifying -N additional arguments after the filename in the pair_coeff command, -where N is the number of LAMMPS atom types: +The *threebody* keyword is optional and determines whether or not the +three-body term of the potential is calculated. The default value is +"on" and it is only available for the plain *sw* pair style variants, +but not available for the *sw/mod* and :doc:`sw/angle/table +` pair style variants. To turn off the threebody +contributions all :math:`\lambda_{ijk}` parameters from the potential +file are forcibly set to 0. In addition the pair style implementation +may employ code optimizations for the *threebody off* setting that can +result in significant speedups versus the default. These code optimizations +are currently only available for the MANYBODY and OPENMP packages. + +Only a single pair_coeff command is used with the *sw* and *sw/mod* +styles which specifies a Stillinger-Weber potential file with parameters +for all needed elements, except for when the *threebody off* setting is +used (see note below). These are mapped to LAMMPS atom types by +specifying N additional arguments after the filename in the pair_coeff +command, where N is the number of LAMMPS atom types: * filename * N element names = mapping of SW elements to atom types @@ -130,16 +159,22 @@ pair_coeff command: .. code-block:: LAMMPS + pair_style sw pair_coeff * * SiC.sw Si Si Si C The first 2 arguments must be \* \* so as to span all LAMMPS atom types. -The first three Si arguments map LAMMPS atom types 1,2,3 to the Si -element in the SW file. The final C argument maps LAMMPS atom type 4 -to the C element in the SW file. If a mapping value is specified as -NULL, the mapping is not performed. This can be used when a *sw* +The first three Si arguments map LAMMPS atom types 1, 2, and 3 to the Si +element in the SW file. The final C argument maps LAMMPS atom type 4 to +the C element in the SW file. If an argument value is specified as +NULL, the mapping is not performed. This can be used when an *sw* potential is used as part of the *hybrid* pair style. The NULL values -are placeholders for atom types that will be used with other -potentials. +are placeholders for atom types that will be used with other potentials. + +.. note:: + + When the *threebody off* keyword is used, multiple pair_coeff commands may + be used to specific the pairs of atoms which don't require three-body term. + In these cases, the first 2 arguments are not required to be \* \*. Stillinger-Weber files in the *potentials* directory of the LAMMPS distribution have a ".sw" suffix. Lines that are not blank or @@ -243,30 +278,39 @@ described above from values in the potential file. This pair style does not support the :doc:`pair_modify ` shift, table, and tail options. -This pair style does not write its information to :doc:`binary restart files `, since it is stored in potential files. Thus, you -need to re-specify the pair_style and pair_coeff commands in an input -script that reads a restart file. +This pair style does not write its information to :doc:`binary restart +files `, since it is stored in potential files. Thus, you need +to re-specify the pair_style and pair_coeff commands in an input script +that reads a restart file. This pair style can only be used via the *pair* keyword of the :doc:`run_style respa ` command. It does not support the *inner*, *middle*, *outer* keywords. +The single() function of the *sw* pair style is only enabled and +supported for the case of the *threebody off* setting. + ---------- Restrictions """""""""""" -This pair style is part of the MANYBODY package. It is only enabled -if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. +This pair style is part of the MANYBODY package. It is only enabled if +LAMMPS was built with that package. See the :doc:`Build package +` page for more info. This pair style requires the :doc:`newton ` setting to be "on" for pair interactions. The Stillinger-Weber potential files provided with LAMMPS (see the potentials directory) are parameterized for metal :doc:`units `. -You can use the SW potential with any LAMMPS units, but you would need -to create your own SW potential file with coefficients listed in the -appropriate units if your simulation does not use "metal" units. +You can use the sw or sw/mod pair styles with any LAMMPS units, but you +would need to create your own SW potential file with coefficients listed +in the appropriate units if your simulation does not use "metal" units. +If the potential file contains a 'UNITS:' metadata tag in the first line +of the potential file, then LAMMPS can convert it transparently between +"metal" and "real" units. + Related commands """""""""""""""" @@ -276,8 +320,9 @@ Related commands Default """"""" -The default values for the *maxdelcs* setting of the *sw/mod* pair -style are *delta1* = 0.25 and *delta2* = 0.35`. +The default value for the *threebody* setting of the "sw" pair style is +"on", the default values for the "*maxdelcs* setting of the *sw/mod* +pair style are *delta1* = 0.25 and *delta2* = 0.35`. ---------- diff --git a/doc/src/pair_sw_angle_table.rst b/doc/src/pair_sw_angle_table.rst new file mode 100644 index 0000000000..65e73d4445 --- /dev/null +++ b/doc/src/pair_sw_angle_table.rst @@ -0,0 +1,312 @@ +.. index:: pair_style sw/angle/table + +pair_style sw/angle/table command +================================= + +Syntax +"""""" + +.. code-block:: LAMMPS + + pair_style style + +* style = *sw/angle/table* + + +Examples +"""""""" + +.. code-block:: LAMMPS + + pair_style sw/angle/table + pair_coeff * * spce.sw type + +Used in example input script: + +.. parsed-literal:: + + examples/PACKAGES/manybody_table/in.spce_sw + + +Description +""""""""""" + +The *sw/angle/table* style is a modification of the original +:doc:`pair_style sw `. It has been developed for coarse-grained +simulations (of water) (:ref:`Scherer1 `), but can be employed +for all kinds of systems. It computes a modified 3-body +:ref:`Stillinger-Weber ` potential for the energy E of a +system of atoms as + +.. math:: + + E & = \sum_i \sum_{j > i} \phi_2 (r_{ij}) + + \sum_i \sum_{j \neq i} \sum_{k > j} + \phi_3 (r_{ij}, r_{ik}, \theta_{ijk}) \\ + \phi_2(r_{ij}) & = A_{ij} \epsilon_{ij} \left[ B_{ij} (\frac{\sigma_{ij}}{r_{ij}})^{p_{ij}} - + (\frac{\sigma_{ij}}{r_{ij}})^{q_{ij}} \right] + \exp \left( \frac{\sigma_{ij}}{r_{ij} - a_{ij} \sigma_{ij}} \right) \\ + \phi_3(r_{ij},r_{ik},\theta_{ijk}) & = f^{\textrm{3b}}\left(\theta_{ijk}\right) + \exp \left( \frac{\gamma_{ij} \sigma_{ij}}{r_{ij} - a_{ij} \sigma_{ij}} \right) + \exp \left( \frac{\gamma_{ik} \sigma_{ik}}{r_{ik} - a_{ik} \sigma_{ik}} \right) + +where :math:`\phi_2` is a two-body term and :math:`\phi_3` is a +three-body term. The summations in the formula are over all neighbors J +and K of atom I within a cutoff distance :math:`a \sigma`. In contrast +to the original *sw* style, *sw/angle/table* allows for a flexible +three-body term :math:`f^{\textrm{3b}}\left(\theta_{ijk}\right)` which +is read in as a tabulated interaction. It can be parameterized with the +csg_fmatch app of VOTCA as available at: +https://gitlab.mpcdf.mpg.de/votca/votca. + +Only a single pair_coeff command is used with the *sw/angle/table* style +which specifies a modified Stillinger-Weber potential file with +parameters for all needed elements. These are mapped to LAMMPS atom +types by specifying N_el additional arguments after the ".sw" filename +in the pair_coeff command, where N_el is the number of LAMMPS atom +types: + +* ".sw" filename +* N_el element names = mapping of SW elements to atom types + +See the :doc:`pair_coeff ` page for alternate ways to +specify the path for the potential file. + +As an example, imagine a file SiC.sw has Stillinger-Weber values for Si +and C. If your LAMMPS simulation has 4 atoms types and you want the +first 3 to be Si, and the fourth to be C, you would use the following +pair_coeff command: + +.. code-block:: LAMMPS + + pair_coeff * * SiC.sw Si Si Si C + +The first 2 arguments must be \* \* so as to span all LAMMPS atom types. +The first three Si arguments map LAMMPS atom types 1,2,3 to the Si +element in the SW file. The final C argument maps LAMMPS atom type 4 to +the C element in the SW file. If a mapping value is specified as NULL, +the mapping is not performed. This can be used when a *sw/angle/table* +potential is used as part of the *hybrid* pair style. The NULL values +are placeholders for atom types that will be used with other potentials. + +The (modified) Stillinger-Weber files have a ".sw" suffix. Lines that +are not blank or comments (starting with #) define parameters for a +triplet of elements. The parameters in a single entry correspond to the +two-body and three-body coefficients in the formula above. Here, also +the suffix ".sw" is used though the original Stillinger-Weber file +format is supplemented with four additional lines per parameter block to +specify the tabulated three-body interaction. A single entry then +contains: + +* element 1 (the center atom in a 3-body interaction) +* element 2 +* element 3 +* :math:`\epsilon` (energy units) +* :math:`\sigma` (distance units) +* a +* :math:`\lambda` +* :math:`\gamma` +* :math:`\cos\theta_0` +* A +* B +* p +* q +* tol +* filename +* keyword +* style +* N + +The A, B, p, and q parameters are used only for two-body interactions. +The :math:`\lambda` and :math:`\cos\theta_0` parameters, only used for +three-body interactions in the original Stillinger-Weber style, are read +in but ignored in this modified pair style. The :math:`\epsilon` +parameter is only used for two-body interactions in this modified pair +style and not for the three-body terms. The :math:`\sigma` and *a* +parameters are used for both two-body and three-body +interactions. :math:`\gamma` is used only in the three-body +interactions, but is defined for pairs of atoms. The non-annotated +parameters are unitless. + +LAMMPS introduces an additional performance-optimization parameter tol +that is used for both two-body and three-body interactions. In the +Stillinger-Weber potential, the interaction energies become negligibly +small at atomic separations substantially less than the theoretical +cutoff distances. LAMMPS therefore defines a virtual cutoff distance +based on a user defined tolerance tol. The use of the virtual cutoff +distance in constructing atom neighbor lists can significantly reduce +the neighbor list sizes and therefore the computational cost. LAMMPS +provides a *tol* value for each of the three-body entries so that they +can be separately controlled. If tol = 0.0, then the standard +Stillinger-Weber cutoff is used. + +The additional parameters *filename*, *keyword*, *style*, and *N* refer +to the tabulated angular potential +:math:`f^{\textrm{3b}}\left(\theta_{ijk}\right)`. The tabulated angular +potential has to be of the format as used in the :doc:`angle_style table +` command: + +An interpolation tables of length *N* is created. The interpolation is +done in one of 2 *styles*: *linear* or *spline*. For the *linear* +style, the angle is used to find 2 surrounding table values from which +an energy or its derivative is computed by linear interpolation. For the +*spline* style, a cubic spline coefficients are computed and stored at +each of the *N* values in the table. The angle is used to find the +appropriate set of coefficients which are used to evaluate a cubic +polynomial which computes the energy or derivative. + +The *filename* specifies the file containing the tabulated energy and +derivative values of :math:`f^{\textrm{3b}}\left(\theta_{ijk}\right)`. +The *keyword* then specifies a section of the file. The format of this +file is as follows (without the parenthesized comments): + +.. parsed-literal:: + + # Angle potential for harmonic (one or more comment or blank lines) + + HAM (keyword is the first text on line) + N 181 FP 0 0 EQ 90.0 (N, FP, EQ parameters) + (blank line) + 1 0.0 200.5 2.5 (index, angle, energy, derivative) + 2 1.0 198.0 2.5 + ... + 181 180.0 0.0 0.0 + +A section begins with a non-blank line whose first character is not a +"#"; blank lines or lines starting with "#" can be used as comments +between sections. The first line begins with a keyword which identifies +the section. The next line lists (in any order) one or more parameters +for the table. Each parameter is a keyword followed by one or more +numeric values. + +The parameter "N" is required and its value is the number of table +entries that follow. Note that this may be different than the *N* +specified in the Stillinger-Weber potential file. Let Nsw = *N* in the +".sw" file, and Nfile = "N" in the tabulated angular file. What LAMMPS +does is a preliminary interpolation by creating splines using the Nfile +tabulated values as nodal points. It uses these to interpolate as +needed to generate energy and derivative values at Ntable different +points. The resulting tables of length Nsw are then used as described +above, when computing energy and force for individual angles and their +atoms. This means that if you want the interpolation tables of length +Nsw to match exactly what is in the tabulated file (with effectively no +preliminary interpolation), you should set Nsw = Nfile. + +The "FP" parameter is optional. If used, it is followed by two values +fplo and fphi, which are the second derivatives at the innermost and +outermost angle settings. These values are needed by the spline +construction routines. If not specified by the "FP" parameter, they are +estimated (less accurately) by the first two and last two derivative +values in the table. + +The "EQ" parameter is also optional. If used, it is followed by a the +equilibrium angle value, which is used, for example, by the :doc:`fix +shake ` command. If not used, the equilibrium angle is set to +180.0. + +Following a blank line, the next N lines of the angular table file list +the tabulated values. On each line, the first value is the index from 1 +to N, the second value is the angle value (in degrees), the third value +is the energy (in energy units), and the fourth is -dE/d(theta) (also in +energy units). The third term is the energy of the 3-atom configuration +for the specified angle. The last term is the derivative of the energy +with respect to the angle (in degrees, not radians). Thus the units of +the last term are still energy, not force. The angle values must +increase from one line to the next. The angle values must also begin +with 0.0 and end with 180.0, i.e. span the full range of possible +angles. + +Note that one angular potential file can contain many sections, each +with a tabulated potential. LAMMPS reads the file section by section +until it finds one that matches the specified *keyword* of appropriate +section of the ".sw" file. + +The Stillinger-Weber potential file must contain entries for all the +elements listed in the pair_coeff command. It can also contain entries +for additional elements not being used in a particular simulation; +LAMMPS ignores those entries. + +For a single-element simulation, only a single entry is required +(e.g. SiSiSi). For a two-element simulation, the file must contain 8 +entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that +specify SW parameters for all permutations of the two elements +interacting in three-body configurations. Thus for 3 elements, 27 +entries would be required, etc. + +As annotated above, the first element in the entry is the center atom in +a three-body interaction. Thus an entry for SiCC means a Si atom with 2 +C atoms as neighbors. The parameter values used for the two-body +interaction come from the entry where the second and third elements are +the same. Thus the two-body parameters for Si interacting with C, comes +from the SiCC entry. The three-body angular potential +:math:`f^{\textrm{3b}}\left(\theta_{ijk}\right)` can in principle be +specific to the three elements of the configuration. However, the user +must ensure that it makes physically sense. Note also that the function +:math:`\phi_3` contains two exponential screening factors with parameter +values from the ij pair and ik pairs. So :math:`\phi_3` for a C atom +bonded to a Si atom and a second C atom will depend on the three-body +parameters for the CSiC entry, and also on the two-body parameters for +the CCC and CSiSi entries. Since the order of the two neighbors is +arbitrary, the three-body parameters and the tabulated angular potential +for entries CSiC and CCSi should be the same. Similarly, the two-body +parameters for entries SiCC and CSiSi should also be the same. The +parameters used only for two-body interactions (A, B, p, and q) in +entries whose second and third element are different (e.g. SiCSi) are +not used for anything and can be set to 0.0 if desired. This is also +true for the parameters in :math:`\phi_3` that are taken from the ij and +ik pairs (:math:`\sigma`, *a*, :math:`\gamma`) + +Additional input files and reference data can be found at: +https://gitlab.mpcdf.mpg.de/votca/votca/-/tree/master/csg-tutorials/spce/3body_sw + +---------- + +Mixing, shift, table, tail correction, restart, rRESPA info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +For atom type pairs I,J and I != J, where types I and J correspond to +two different element types, mixing is performed by LAMMPS as described +above from values in the potential file, but not for the tabulated +angular potential file. + +This pair style does not support the :doc:`pair_modify ` +shift, table, and tail options. + +This pair style does not write its information to :doc:`binary restart +files `, since it is stored in potential files. Thus, you need +to re-specify the pair_style and pair_coeff commands in an input script +that reads a restart file. + +This pair style can only be used via the *pair* keyword of the +:doc:`run_style respa ` command. It does not support the +*inner*, *middle*, *outer* keywords. + +---------- + +Restrictions +"""""""""""" + +This pair style is part of the MANYBODY package. It is only enabled if +LAMMPS was built with that package. See the :doc:`Build package +` page for more info. + +This pair style requires the :doc:`newton ` setting to be "on" +for pair interactions. + +Related commands +"""""""""""""""" + +:doc:`pair_coeff `, :doc:`pair_style sw `, +:doc:`pair_style threebody/table ` + + +---------- + +.. _Stillinger3: + +**(Stillinger)** Stillinger and Weber, Phys Rev B, 31, 5262 (1985). + +.. _Scherer1: + +**(Scherer1)** C. Scherer and D. Andrienko, Phys. Chem. Chem. Phys. 20, 22387-22394 (2018). + diff --git a/doc/src/pair_threebody_table.rst b/doc/src/pair_threebody_table.rst new file mode 100644 index 0000000000..19c90feccd --- /dev/null +++ b/doc/src/pair_threebody_table.rst @@ -0,0 +1,281 @@ +.. index:: pair_style threebody/table + +pair_style threebody/table command +================================== + +Syntax +"""""" + +.. code-block:: LAMMPS + + pair_style style + +* style = *threebody/table* + + +Examples +"""""""" + +.. code-block:: LAMMPS + + pair_style threebody/table + pair_coeff * * spce2.3b type1 type2 + + pair_style hybrid/overlay table linear 1200 threebody/table + pair_coeff 1 1 table table_CG_CG.txt VOTCA + pair_coeff * * threebody/table spce.3b type + +Used in example input scripts: + +.. parsed-literal:: + + examples/PACKAGES/manybody_table/in.spce + examples/PACKAGES/manybody_table/in.spce2 + +Description +""""""""""" + +The *threebody/table* style is a pair style for generic tabulated +three-body interactions. It has been developed for (coarse-grained) +simulations (of water) with Kernel-based machine learning (ML) +potentials (:ref:`Scherer2 `). As for many other MANYBODY +package pair styles the energy of a system is computed as a sum over +three-body terms: + +.. math:: + + E = \sum_i \sum_{j \neq i} \sum_{k > j} \phi_3 (r_{ij}, r_{ik}, \theta_{ijk}) + +The summations in the formula are over all neighbors J and K of atom I +within a cutoff distance :math:`cut`. In contrast to the +Stillinger-Weber potential, all forces are not calculated analytically, +but read in from a three-body force/energy table which can be generated +with the csg_ml app of VOTCA as available at: +https://gitlab.mpcdf.mpg.de/votca/votca. + +Only a single pair_coeff command is used with the *threebody/table* +style which specifies a threebody potential (".3b") file with parameters +for all needed elements. These are then mapped to LAMMPS atom types by +specifying N_el additional arguments after the ".3b" filename in the +pair_coeff command, where N_el is the number of LAMMPS atom types: + +* ".3b" filename +* N_el element names = mapping of threebody elements to atom types + +See the :doc:`pair_coeff ` page for alternate ways to +specify the path for the potential file. + +As an example, imagine a file SiC.3b has three-body values for Si and C. +If your LAMMPS simulation has 4 atoms types and you want the first 3 to +be Si, and the fourth to be C, you would use the following pair_coeff +command: + +.. code-block:: LAMMPS + + pair_coeff * * SiC.3b Si Si Si C + +The first 2 arguments must be \* \* so as to span all LAMMPS atom types. +The first three Si arguments map LAMMPS atom types 1,2,3 to the Si +element in the ".3b" file. The final C argument maps LAMMPS atom type 4 +to the C element in the threebody file. If a mapping value is specified +as NULL, the mapping is not performed. This can be used when a +*threebody/table* potential is used as part of the *hybrid* pair style. +The NULL values are placeholders for atom types that will be used with +other potentials. + +The three-body files have a ".3b" suffix. Lines that are not blank or +comments (starting with #) define parameters for a triplet of +elements. The parameters in a single entry specify to the (three-body) +cutoff distance and the tabulated three-body interaction. A single entry +then contains: + +* element 1 (the center atom in a 3-body interaction) +* element 2 +* element 3 +* cut (distance units) +* filename +* keyword +* style +* N + +The parameter :math:`cut` is the (three-body) cutoff distance. When set +to 0, no interaction is calculated for this element triplet. The +parameters *filename*, *keyword*, *style*, and *N* refer to the +tabulated three-body potential. + +The tabulation is done on a three-dimensional grid of the two distances +:math:`r_{ij}` and :math:`r_{ik}` as well as the angle +:math:`\theta_{ijk}` which is constructed in the following way. There +are two different cases. If element 2 and element 3 are of the same +type (e.g. SiCC), the distance :math:`r_{ij}` is varied in "N" steps +from rmin to rmax and the distance :math:`r_{ik}` is varied from +:math:`r_{ij}` to rmax. This can be done, due to the symmetry of the +triplet. If element 2 and element 3 are not of the same type +(e.g. SiCSi), there is no additional symmetry and the distance +:math:`r_{ik}` is also varied from rmin to rmax in "N" steps. The angle +:math:`\theta_{ijk}` is always varied in "2N" steps from (0.0 + +180.0/(4N)) to (180.0 - 180.0/(4N)). Therefore, the total number of +table entries is "M = N * N * (N+1)" for the symmetric (element 2 and +element 3 are of the same type) and "M = 2 * N * N * N" for the general +case (element 2 and element 3 are not of the same type). + +The forces on all three particles I, J, and K of a triplet of this type +of three-body interaction potential (:math:`\phi_3 (r_{ij}, r_{ik}, +\theta_{ijk})`) lie within the plane defined by the three inter-particle +distance vectors :math:`{\mathbf r}_{ij}`, :math:`{\mathbf r}_{ik}`, and +:math:`{\mathbf r}_{jk}`. This property is used to project the forces +onto the inter-particle distance vectors as follows + +.. math:: + + \begin{pmatrix} + {\mathbf f}_{i} \\ + {\mathbf f}_{j} \\ + {\mathbf f}_{k} \\ + \end{pmatrix} = + \begin{pmatrix} + f_{i1} & f_{i2} & 0 \\ + f_{j1} & 0 & f_{j2} \\ + 0 & f_{k1} & f_{k2} \\ + \end{pmatrix} + \begin{pmatrix} + {\mathbf r}_{ij} \\ + {\mathbf r}_{ik} \\ + {\mathbf r}_{jk} \\ + \end{pmatrix} + +and then tabulate the 6 force constants :math:`f_{i1}`, :math:`f_{i2}`, +:math:`f_{j1}`, :math:`f_{j2}`, :math:`f_{k1}`, and :math:`f_{k2}`, as +well as the energy of a triplet e. Due to symmetry reasons, the +following relations hold: :math:`f_{i1}=-f_{j1}`, +:math:`f_{i2}=-f_{k1}`, and :math:`f_{j2}=-f_{k2}`. As in this pair +style the forces are read in directly, a correct MD simulation is also +performed in the case that the triplet energies are set to e=0. + +The *filename* specifies the file containing the tabulated energy and +derivative values of :math:`\phi_3 (r_{ij}, r_{ik}, \theta_{ijk})`. The +*keyword* then specifies a section of the file. The format of this file +is as follows (without the parenthesized comments): + +.. parsed-literal:: + + # Tabulated three-body potential for spce water (one or more comment or blank lines) + + ENTRY1 (keyword is the first text on line) + N 12 rmin 2.55 rmax 3.65 (N, rmin, rmax parameters) + (blank line) + 1 2.55 2.55 3.75 -867.212 -611.273 867.212 21386.8 611.273 -21386.8 0.0 (index, r_ij, r_ik, theta, f_i1, f_i2, f_j1, f_j2, f_k1, f_k2, e) + 2 2.55 2.55 11.25 -621.539 -411.189 621.539 5035.95 411.189 -5035.95 0.0 + ... + 1872 3.65 3.65 176.25 -0.00215132 -0.00412886 0.00215137 0.00111754 0.00412895 -0.00111757 0.0 + +A section begins with a non-blank line whose first character is not a +"#"; blank lines or lines starting with "#" can be used as comments +between sections. The first line begins with a keyword which identifies +the section. The next line lists (in any order) one or more parameters +for the table. Each parameter is a keyword followed by one or more +numeric values. + +The parameter "N" is required. It should be the same than the parameter +"N" of the ".3b" file, otherwise its value is overwritten. "N" +determines the number of table entries "M" that follow: "M = N * N * +(N+1)" (symmetric triplet, e.g. SiCC) or "M = 2 * N * N * N" (asymmetric +triplet, e.g. SiCSi). Therefore "M = 12 * 12 * 13 = 1872" in the above +symmetric example. The parameters "rmin" and "rmax" are also required +and determine the minimum and maximum of the inter-particle distances +:math:`r_{ij}` and :math:`r_{ik}`. + +Following a blank line, the next M lines of the angular table file list +the tabulated values. On each line, the first value is the index from 1 +to M, the second value is the distance :math:`r_{ij}`, the third value +is the distance :math:`r_{ik}`, the fourth value is the angle +:math:`\theta_{ijk})`, the next six values are the force constants +:math:`f_{i1}`, :math:`f_{i2}`, :math:`f_{j1}`, :math:`f_{j2}`, +:math:`f_{k1}`, and :math:`f_{k2}`, and the last value is the energy e. + +Note that one three-body potential file can contain many sections, each +with a tabulated potential. LAMMPS reads the file section by section +until it finds one that matches the specified *keyword* of appropriate +section of the ".3b" file. + +At the moment, only the *style* *linear* is allowed and +implemented. After reading in the force table, it is internally stored +in LAMMPS as a lookup table. For each triplet configuration occurring in +the simulation within the cutoff distance, the next nearest tabulated +triplet configuration is looked up. No interpolation is done. This +allows for a very efficient force calculation with the stored force +constants and energies. Due to the know table structure, the lookup can +be done efficiently. It has been tested (:ref:`Scherer2 `) +that with a reasonably small bin size, the accuracy and speed is +comparable to that of a Stillinger-Weber potential with tabulated +three-body interactions (:doc:`pair_style sw/angle/table +`) while the table format of this pair style allows +for more flexible three-body interactions. + +As for the Stillinger-Weber potential, the three-body potential file +must contain entries for all the elements listed in the pair_coeff +command. It can also contain entries for additional elements not being +used in a particular simulation; LAMMPS ignores those entries. + +For a single-element simulation, only a single entry is required +(e.g. SiSiSi). For a two-element simulation, the file must contain 8 +entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that +specify threebody parameters for all permutations of the two elements +interacting in three-body configurations. Thus for 3 elements, 27 +entries would be required, etc. + +As annotated above, the first element in the entry is the center atom in +a three-body interaction. Thus an entry for SiCC means a Si atom with 2 +C atoms as neighbors. The tabulated three-body forces can in principle +be specific to the three elements of the configuration. However, the +user must ensure that it makes physically sense. E.g., the tabulated +three-body forces for the entries CSiC and CCSi should be the same +exchanging :math:`r_{ij}` with r_{ik}, :math:`f_{j1}` with +:math:`f_{k1}`, and :math:`f_{j2}` with :math:`f_{k2}`. + +Additional input files and reference data can be found at: +https://gitlab.mpcdf.mpg.de/votca/votca/-/tree/master/csg-tutorials/ml + +---------- + +Mixing, shift, table, tail correction, restart, rRESPA info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +As all interactions are tabulated, no mixing is performed. + +This pair style does not support the :doc:`pair_modify ` +shift, table, and tail options. + +This pair style does not write its information to :doc:`binary restart +files `, since it is stored in potential files. Thus, you need +to re-specify the pair_style and pair_coeff commands in an input script +that reads a restart file. + +This pair style can only be used via the *pair* keyword of the +:doc:`run_style respa ` command. It does not support the +*inner*, *middle*, *outer* keywords. + +---------- + +Restrictions +"""""""""""" + +This pair style is part of the MANYBODY package. It is only enabled if +LAMMPS was built with that package. See the :doc:`Build package +` page for more info. + +This pair style requires the :doc:`newton ` setting to be "on" +for pair interactions. + +Related commands +"""""""""""""""" + +:doc:`pair_coeff `, :doc:`pair sw/angle/table ` + + +---------- + +.. _Scherer2: + +**(Scherer2)** C. Scherer, R. Scheid, D. Andrienko, and T. Bereau, J. Chem. Theor. Comp. 16, 3194-3204 (2020). + diff --git a/doc/src/read_data.rst b/doc/src/read_data.rst index 68e1efc496..853d86785e 100644 --- a/doc/src/read_data.rst +++ b/doc/src/read_data.rst @@ -56,7 +56,7 @@ Examples read_data ../run7/data.polymer.gz read_data data.protein fix mycmap crossterm CMAP read_data data.water add append offset 3 1 1 1 1 shift 0.0 0.0 50.0 - read_data data.water add merge 1 group solvent + read_data data.water add merge group solvent Description """"""""""" @@ -622,6 +622,8 @@ of analysis. - atom-ID molecule-ID atom-type x y z * - charge - atom-ID atom-type q x y z + * - dielectric + - atom-ID atom-type q x y z normx normy normz area ed em epsilon curvature * - dipole - atom-ID atom-type q x y z mux muy muz * - dpd diff --git a/doc/src/read_dump.rst b/doc/src/read_dump.rst index 3a771b9c2d..c98347914b 100644 --- a/doc/src/read_dump.rst +++ b/doc/src/read_dump.rst @@ -24,12 +24,13 @@ Syntax *fx*,\ *fy*,\ *fz* = force components * zero or more keyword/value pairs may be appended -* keyword = *nfile* or *box* or *replace* or *purge* or *trim* or *add* or *label* or *scaled* or *wrapped* or *format* +* keyword = *nfile* or *box* or *timestep* or *replace* or *purge* or *trim* or *add* or *label* or *scaled* or *wrapped* or *format* .. parsed-literal:: *nfile* value = Nfiles = how many parallel dump files exist *box* value = *yes* or *no* = replace simulation box with dump box + *timestep* value = *yes* or *no* = reset simulation timestep with dump timestep *replace* value = *yes* or *no* = overwrite atoms with dump atoms *purge* value = *yes* or *no* = delete all atoms before adding dump atoms *trim* value = *yes* or *no* = trim atoms not in dump snapshot @@ -60,6 +61,7 @@ Examples read_dump dump.dcd 0 x y z box yes format molfile dcd read_dump dump.file 1000 x y z vx vy vz box yes format molfile lammpstrj /usr/local/lib/vmd/plugins/LINUXAMD64/plugins/molfile read_dump dump.file 5000 x y vx vy trim yes + read_dump dump.file 5000 x y vx vy add yes box no timestep no read_dump ../run7/dump.file.gz 10000 x y z box yes read_dump dump.xyz 10 x y z box no format molfile xyz ../plugins read_dump dump.dcd 0 x y z format molfile dcd @@ -71,9 +73,9 @@ Description """"""""""" Read atom information from a dump file to overwrite the current atom -coordinates, and optionally the atom velocities and image flags and -the simulation box dimensions. This is useful for restarting a run -from a particular snapshot in a dump file. See the +coordinates, and optionally the atom velocities and image flags, the +simulation timestep, and the simulation box dimensions. This is useful +for restarting a run from a particular snapshot in a dump file. See the :doc:`read_restart ` and :doc:`read_data ` commands for alternative methods to do this. Also see the :doc:`rerun ` command for a means of reading multiple snapshots @@ -89,9 +91,9 @@ Also note that reading per-atom information from a dump snapshot is limited to the atom coordinates, velocities and image flags, as explained below. Other atom properties, which may be necessary to run a valid simulation, such as atom charge, or bond topology information -for a molecular system, are not read from (or even contained in) dump -files. Thus this auxiliary information should be defined in the usual -way, e.g. in a data file read in by a :doc:`read_data ` +for a molecular system, are not read from (or may not even be contained +in) dump files. Thus this auxiliary information should be defined in +the usual way, e.g. in a data file read in by a :doc:`read_data ` command, before using the read_dump command, or by the :doc:`set ` command, after the dump snapshot is read. @@ -165,11 +167,10 @@ variable *ntimestep*: uint64_t ntimestep 5*scalar (0) 0 50 100 150 200 -Note that the *xyz* -and *molfile* formats do not store the timestep. For these formats, -timesteps are numbered logically, in a sequential manner, starting -from 0. Thus to access the 10th snapshot in an *xyz* or *mofile* -formatted dump file, use *Nstep* = 9. +Note that the *xyz* and *molfile* formats do not store the timestep. +For these formats, timesteps are numbered logically, in a sequential +manner, starting from 0. Thus to access the 10th snapshot in an *xyz* +or *mofile* formatted dump file, use *Nstep* = 9. The dimensions of the simulation box for the selected snapshot are also read; see the *box* keyword discussion below. For the *native* @@ -266,8 +267,10 @@ for how this is done, determined by the specified fields and optional keywords. The timestep of the snapshot becomes the current timestep for the -simulation. See the :doc:`reset_timestep ` command if -you wish to change this after the dump snapshot is read. +simulation unless the *timestep* keyword is specified with a *no* value +(default setting is *yes*). See the :doc:`reset_timestep ` +command if you wish to change this to a different value after the dump +snapshot is read. If the *box* keyword is specified with a *yes* value, then the current simulation box dimensions are replaced by the dump snapshot box @@ -391,7 +394,7 @@ Related commands Default """"""" -The option defaults are box = yes, replace = yes, purge = no, trim = -no, add = no, scaled = no, wrapped = yes, and format = native. +The option defaults are box = yes, timestep = yes, replace = yes, purge = no, +trim = no, add = no, scaled = no, wrapped = yes, and format = native. .. _vmd: http://www.ks.uiuc.edu/Research/vmd diff --git a/doc/src/read_restart.rst b/doc/src/read_restart.rst index 4d68167560..f3065a2a5c 100644 --- a/doc/src/read_restart.rst +++ b/doc/src/read_restart.rst @@ -11,7 +11,6 @@ Syntax read_restart file flag * file = name of binary restart file to read in -* flag = remap (optional) Examples """""""" @@ -19,44 +18,40 @@ Examples .. code-block:: LAMMPS read_restart save.10000 - read_restart save.10000 remap read_restart restart.* read_restart restart.*.mpiio - read_restart poly.*.% remap Description """"""""""" Read in a previously saved system configuration from a restart file. This allows continuation of a previous run. Details about what -information is stored (and not stored) in a restart file is given -below. Basically this operation will re-create the simulation box -with all its atoms and their attributes as well as some related global -settings, at the point in time it was written to the restart file by a -previous simulation. The simulation box will be partitioned into a -regular 3d grid of rectangular bricks, one per processor, based on the -number of processors in the current simulation and the settings of the +information is stored (and not stored) in a restart file is given below. +Basically this operation will re-create the simulation box with all its +atoms and their attributes as well as some related global settings, at +the point in time it was written to the restart file by a previous +simulation. The simulation box will be partitioned into a regular 3d +grid of rectangular bricks, one per processor, based on the number of +processors in the current simulation and the settings of the :doc:`processors ` command. The partitioning can later be -changed by the :doc:`balance ` or :doc:`fix balance ` commands. - -.. note:: - - Normally, restart files are written by the - :doc:`restart ` or :doc:`write_restart ` commands - so that all atoms in the restart file are inside the simulation box. - If this is not the case, the read_restart command will print an error - that atoms were "lost" when the file is read. This error should be - reported to the LAMMPS developers so the invalid writing of the - restart file can be fixed. If you still wish to use the restart file, - the optional *remap* flag can be appended to the read_restart command. - This should avoid the error, by explicitly remapping each atom back - into the simulation box, updating image flags for the atom - appropriately. +changed by the :doc:`balance ` or :doc:`fix balance +` commands. Restart files are saved in binary format to enable exact restarts, meaning that the trajectories of a restarted run will precisely match those produced by the original run had it continued on. +The binary restart file format was not designed with backward, forward, +or cross-platform compatibility in mind, so the files are only expected +to be read correctly by the same LAMMPS executable on the same platform. +Changes to the architecture, compilation settings, or LAMMPS version can +render a restart file unreadable or it may read the data incorrectly. +If you want a more portable format, you can use the data file format as +created by the :doc:`write_data ` command. Binary restart +files can also be converted into a data file from the command line by +the LAMMPS executable that wrote them using the :ref:`-restart2data +` command line flag. + Several things can prevent exact restarts due to round-off effects, in which case the trajectories in the 2 runs will slowly diverge. These include running on a different number of processors or changing @@ -65,7 +60,8 @@ certain settings such as those set by the :doc:`newton ` or these cases. Certain fixes will not restart exactly, though they should provide -statistically similar results. These include :doc:`fix shake ` and :doc:`fix langevin `. +statistically similar results. These include :doc:`fix shake +` and :doc:`fix langevin `. Certain pair styles will not restart exactly, though they should provide statistically similar results. This is because the forces @@ -81,18 +77,19 @@ produced the restart file, it could be a LAMMPS bug, so consider :doc:`reporting it ` if you think the behavior is a bug. Because restart files are binary, they may not be portable to other -machines. In this case, you can use the :doc:`-restart command-line switch ` to convert a restart file to a data file. +machines. In this case, you can use the :doc:`-restart command-line +switch ` to convert a restart file to a data file. -Similar to how restart files are written (see the -:doc:`write_restart ` and :doc:`restart ` -commands), the restart filename can contain two wild-card characters. -If a "\*" appears in the filename, the directory is searched for all -filenames that match the pattern where "\*" is replaced with a timestep -value. The file with the largest timestep value is read in. Thus, -this effectively means, read the latest restart file. It's useful if -you want your script to continue a run from where it left off. See -the :doc:`run ` command and its "upto" option for how to specify -the run command so it does not need to be changed either. +Similar to how restart files are written (see the :doc:`write_restart +` and :doc:`restart ` commands), the restart +filename can contain two wild-card characters. If a "\*" appears in the +filename, the directory is searched for all filenames that match the +pattern where "\*" is replaced with a timestep value. The file with the +largest timestep value is read in. Thus, this effectively means, read +the latest restart file. It's useful if you want your script to +continue a run from where it left off. See the :doc:`run ` command +and its "upto" option for how to specify the run command so it does not +need to be changed either. If a "%" character appears in the restart filename, LAMMPS expects a set of multiple files to exist. The :doc:`restart ` and @@ -222,17 +219,17 @@ its calculations in a consistent manner. .. note:: - There are a handful of commands which can be used before or - between runs which may require a system initialization. Examples - include the "balance", "displace_atoms", "delete_atoms", "set" (some - options), and "velocity" (some options) commands. This is because - they can migrate atoms to new processors. Thus they will also discard - unused "state" information from fixes. You will know the discard has + There are a handful of commands which can be used before or between + runs which may require a system initialization. Examples include the + "balance", "displace_atoms", "delete_atoms", "set" (some options), + and "velocity" (some options) commands. This is because they can + migrate atoms to new processors. Thus they will also discard unused + "state" information from fixes. You will know the discard has occurred because a list of discarded fixes will be printed to the screen and log file, as explained above. This means that if you wish to retain that info in a restarted run, you must re-specify the - relevant fixes and computes (which create fixes) before those commands - are used. + relevant fixes and computes (which create fixes) before those + commands are used. Some pair styles, like the :doc:`granular pair styles `, also use a fix to store "state" information that persists from timestep to @@ -245,18 +242,19 @@ LAMMPS allows bond interactions (angle, etc) to be turned off or deleted in various ways, which can affect how their info is stored in a restart file. -If bonds (angles, etc) have been turned off by the :doc:`fix shake ` or :doc:`delete_bonds ` command, -their info will be written to a restart file as if they are turned on. -This means they will need to be turned off again in a new run after -the restart file is read. +If bonds (angles, etc) have been turned off by the :doc:`fix shake +` or :doc:`delete_bonds ` command, their info +will be written to a restart file as if they are turned on. This means +they will need to be turned off again in a new run after the restart +file is read. Bonds that are broken (e.g. by a bond-breaking potential) are written to the restart file as broken bonds with a type of 0. Thus these bonds will still be broken when the restart file is read. -Bonds that have been broken by the :doc:`fix bond/break ` command have disappeared from the -system. No information about these bonds is written to the restart -file. +Bonds that have been broken by the :doc:`fix bond/break +` command have disappeared from the system. No +information about these bonds is written to the restart file. ---------- diff --git a/doc/src/special_bonds.rst b/doc/src/special_bonds.rst index ee148e7a9f..61c7976974 100644 --- a/doc/src/special_bonds.rst +++ b/doc/src/special_bonds.rst @@ -11,7 +11,7 @@ Syntax special_bonds keyword values ... * one or more keyword/value pairs may be appended -* keyword = *amber* or *charmm* or *dreiding* or *fene* or *lj/coul* or *lj* or *coul* or *angle* or *dihedral* +* keyword = *amber* or *charmm* or *dreiding* or *fene* or *lj/coul* or *lj* or *coul* or *angle* or *dihedral* or *one/five* .. parsed-literal:: @@ -27,6 +27,7 @@ Syntax w1,w2,w3 = weights (0.0 to 1.0) on pairwise Coulombic interactions *angle* value = *yes* or *no* *dihedral* value = *yes* or *no* + *one/five* value = *yes* or *no* Examples """""""" @@ -45,10 +46,10 @@ Description Set weighting coefficients for pairwise energy and force contributions between pairs of atoms that are also permanently bonded to each other, either directly or via one or two intermediate bonds. These weighting -factors are used by nearly all :doc:`pair styles ` in LAMMPS -that compute simple pairwise interactions. Permanent bonds between -atoms are specified by defining the bond topology in the data file -read by the :doc:`read_data ` command. Typically a +factors are used by nearly all :doc:`pair styles ` in +LAMMPS that compute simple pairwise interactions. Permanent bonds +between atoms are specified by defining the bond topology in the data +file read by the :doc:`read_data ` command. Typically a :doc:`bond_style ` command is also used to define a bond potential. The rationale for using these weighting factors is that the interaction between a pair of bonded atoms is all (or mostly) @@ -58,31 +59,34 @@ atoms should be excluded (or reduced by a weighting factor). .. note:: - These weighting factors are NOT used by :doc:`pair styles ` that compute many-body interactions, since the - "bonds" that result from such interactions are not permanent, but are - created and broken dynamically as atom conformations change. Examples - of pair styles in this category are EAM, MEAM, Stillinger-Weber, - Tersoff, COMB, AIREBO, and ReaxFF. In fact, it generally makes no - sense to define permanent bonds between atoms that interact via these - potentials, though such bonds may exist elsewhere in your system, - e.g. when using the :doc:`pair_style hybrid ` command. - Thus LAMMPS ignores special_bonds settings when many-body potentials - are calculated. Please note, that the existence of explicit bonds - for atoms that are described by a many-body potential will alter the - neighbor list and thus can render the computation of those interactions - invalid, since those pairs are not only used to determine direct - pairwise interactions but also neighbors of neighbors and more. - The recommended course of action is to remove such bonds, or - if - that is not possible - use a special bonds setting of 1.0 1.0 1.0. + These weighting factors are NOT used by :doc:`pair styles + ` that compute many-body interactions, since the + "bonds" that result from such interactions are not permanent, but + are created and broken dynamically as atom conformations change. + Examples of pair styles in this category are EAM, MEAM, + Stillinger-Weber, Tersoff, COMB, AIREBO, and ReaxFF. In fact, it + generally makes no sense to define permanent bonds between atoms + that interact via these potentials, though such bonds may exist + elsewhere in your system, e.g. when using the :doc:`pair_style + hybrid ` command. Thus LAMMPS ignores special_bonds + settings when many-body potentials are calculated. Please note, + that the existence of explicit bonds for atoms that are described + by a many-body potential will alter the neighbor list and thus can + render the computation of those interactions invalid, since those + pairs are not only used to determine direct pairwise interactions + but also neighbors of neighbors and more. The recommended course + of action is to remove such bonds, or - if that is not possible - + use a special bonds setting of 1.0 1.0 1.0. .. note:: Unlike some commands in LAMMPS, you cannot use this command multiple times in an incremental fashion: e.g. to first set the LJ - settings and then the Coulombic ones. Each time you use this command - it sets all the coefficients to default values and only overrides the - one you specify, so you should set all the options you need each time - you use it. See more details at the bottom of this page. + settings and then the Coulombic ones. Each time you use this + command it sets all the coefficients to default values and only + overrides the one you specify, so you should set all the options + you need each time you use it. See more details at the bottom of + this page. The Coulomb factors are applied to any Coulomb (charge interaction) term that the potential calculates. The LJ factors are applied to the @@ -94,14 +98,14 @@ exclude it completely. The first of the 3 coefficients (LJ or Coulombic) is the weighting factor on 1-2 atom pairs, which are pairs of atoms directly bonded to -each other. The second coefficient is the weighting factor on 1-3 atom -pairs which are those separated by 2 bonds (e.g. the two H atoms in a -water molecule). The third coefficient is the weighting factor on 1-4 -atom pairs which are those separated by 3 bonds (e.g. the first and fourth -atoms in a dihedral interaction). Thus if the 1-2 coefficient is set -to 0.0, then the pairwise interaction is effectively turned off for -all pairs of atoms bonded to each other. If it is set to 1.0, then -that interaction will be at full strength. +each other. The second coefficient is the weighting factor on 1-3 +atom pairs which are those separated by 2 bonds (e.g. the two H atoms +in a water molecule). The third coefficient is the weighting factor +on 1-4 atom pairs which are those separated by 3 bonds (e.g. the first +and fourth atoms in a dihedral interaction). Thus if the 1-2 +coefficient is set to 0.0, then the pairwise interaction is +effectively turned off for all pairs of atoms bonded to each other. +If it is set to 1.0, then that interaction will be at full strength. .. note:: @@ -184,21 +188,27 @@ interaction between atoms 2 and 5 will be unaffected (full weighting of 1.0). If the *dihedral* keyword is specified as *no* which is the default, then the 2,5 interaction will also be weighted by 0.5. +The *one/five* keyword enable calculation and storage of a list of 1-5 +neighbors in the molecular topology for each atom. It is required by +some pair styles, such as :doc:`pair_style amoeba ` and +:doc:`pair_style hippo `. + ---------- .. note:: LAMMPS stores and maintains a data structure with a list of the - first, second, and third neighbors of each atom (within the bond topology of - the system). If new bonds are created (or molecules added containing - atoms with more special neighbors), the size of this list needs to - grow. Note that adding a single bond always adds a new first neighbor - but may also induce \*many\* new second and third neighbors, depending on the - molecular topology of your system. Using the *extra/special/per/atom* - keyword to either :doc:`read_data ` or :doc:`create_box ` - reserves empty space in the list for this N additional first, second, or third - neighbors to be added. If you do not do this, you may get an error - when bonds (or molecules) are added. + first, second, and third neighbors of each atom (within the bond + topology of the system). If new bonds are created (or molecules + added containing atoms with more special neighbors), the size of + this list needs to grow. Note that adding a single bond always + adds a new first neighbor but may also induce \*many\* new second + and third neighbors, depending on the molecular topology of your + system. Using the *extra/special/per/atom* keyword to either + :doc:`read_data ` or :doc:`create_box ` + reserves empty space in the list for this N additional first, + second, or third neighbors to be added. If you do not do this, you + may get an error when bonds (or molecules) are added. ---------- @@ -226,16 +236,16 @@ In the first case you end up with (after the second command): LJ: 0.0 0.0 0.0 Coul: 0.0 0.0 1.0 -while only in the second case, you get the desired settings of: +while only in the second case do you get the desired settings of: .. parsed-literal:: LJ: 0.0 1.0 1.0 Coul: 0.0 0.0 1.0 -This happens because the LJ (and Coul) settings are reset to -their default values before modifying them, each time the -*special_bonds* command is issued. +This happens because the LJ (and Coul) settings are reset to their +default values before modifying them, each time the *special_bonds* +command is issued. Restrictions """""""""""" diff --git a/doc/utils/requirements.txt b/doc/utils/requirements.txt index 9ff18b3652..1f5711dd6b 100644 --- a/doc/utils/requirements.txt +++ b/doc/utils/requirements.txt @@ -6,4 +6,3 @@ breathe Pygments six pyyaml -wheel diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index c8450c570b..ade1f8794f 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -94,6 +94,7 @@ amu Amzallag analytical Anders +Andrienko Andzelm Ang anglegrad @@ -119,6 +120,7 @@ Antonelli api Apoorva Appl +apptainer Apu arallel arccos @@ -239,6 +241,7 @@ benchmarking Bennet Berardi Beraun +Bereau berendsen Berendsen berger @@ -266,6 +269,7 @@ binutils biomolecular biomolecule Biomolecules +biomolecules Biophys Biosym biquadratic @@ -275,6 +279,7 @@ Bispectrum bitbucket bitmapped bitmask +bitorsion bitrate bitrates Bitzek @@ -370,6 +375,7 @@ Caltech Camilloni Camiloni Campana +Cangi Cao Capolungo Caro @@ -439,6 +445,7 @@ chiralIDs ChiralIDs chirality Cho +Chodera ChooseOffset chris Christoph @@ -560,6 +567,7 @@ Crozier Cryst Crystallogr Csanyi +csg csh cshrc CSiC @@ -572,6 +580,7 @@ cstring cstyle csvr ctrl +ctrn ctypes Ctypes cuda @@ -692,6 +701,7 @@ devel Devemy deviatoric Devine +dewald df dfftw DFT @@ -769,6 +779,7 @@ DPD dpdTheta dphi DPhil +dpme dr dR dragforce @@ -873,6 +884,7 @@ Eindhoven Eisenforschung Ejtehadi El +el elaplong elastance Electroneg @@ -1081,6 +1093,7 @@ fm fmackay fmag fmass +fmatch fmm fmt fmtlib @@ -1270,6 +1283,7 @@ gzipped Haak Hafskjold halfstepback +halgren Halperin Halver Hamaker @@ -1277,6 +1291,7 @@ Hamel Hammerschmidt Hanley haptic +Haque Hara Harpertown Harting @@ -1319,6 +1334,7 @@ hexatic hexorder Heyes HfO +hftn hgrid hhmrr Hibbs @@ -1563,6 +1579,7 @@ jpeglib jpg JPG jpl +json Jth jtranch jtype @@ -1618,6 +1635,7 @@ Kemper kepler keV Keyes +keyfile Khersonskii Khrapak Khvostov @@ -1693,6 +1711,7 @@ Ladd lagrangian lambdai LambdaLanczos +Lambrecht lamda lammps Lammps @@ -2078,6 +2097,7 @@ mlparks Mniszewski mnt mobi +Mobley modc Modell modelled @@ -2128,6 +2148,7 @@ mpiexec mpiio mpirun mplayer +mpole mps mradius Mrovec @@ -2162,6 +2183,7 @@ multicore multielectron multinode multiphysics +Multipole multiscale multisectioning multithreading @@ -2349,6 +2371,7 @@ nodesets Noehring Noffset noforce +noguess Noid nolib nonequilibrium @@ -2357,11 +2380,16 @@ nonGaussian nonlocal Nonlocal Noordhoek +noprecond nopreliminary Nord norder Nordlund +noremap normals +normx +normy +normz Noskov noslip noticable @@ -2405,6 +2433,7 @@ Nstep Nsteplast Nstop nsub +Nsw Nswap nt Nt @@ -2528,6 +2557,7 @@ palegreen paleturquoise palevioletred Panagiotopoulos +Pande Pandit Papaconstantopoulos papayawhip @@ -2562,6 +2592,7 @@ Pavia Paxton pbc pc +pcg pchain Pchain pcmoves @@ -2595,7 +2626,9 @@ Persp peru Peskin Pettifor +pewald pfactor +pflag pgi ph Philipp @@ -2628,6 +2661,7 @@ pIp Pisarev Pishevar Pitera +pitorsion pj pjintve pKa @@ -2643,6 +2677,7 @@ plt plumedfile pmb pmcmoves +pme Pmolrotate Pmoltrans pN @@ -2667,7 +2702,9 @@ polyelectrolyte polyhedra Polym polymorphism +Ponder popen +Popoola Popov popstore Poresag @@ -2684,6 +2721,7 @@ potin Pourtois powderblue PowerShell +ppme ppn pppm Prakash @@ -2693,6 +2731,7 @@ pre Pre prec precession +precond prefactor prefactors prepend @@ -2787,6 +2826,8 @@ Qsb qtb quadratically quadrupolar +quadrupole +quadrupoles Quant quartic quat @@ -2798,10 +2839,12 @@ quatk quatw queryargs Queteschiner +quickmin qw qx qy qz +Rackers radialscreened radialscreenedspin radialspin @@ -2810,6 +2853,7 @@ radians Rafferty rahman Rahman +Rajamanickam Ralf Raman ramped @@ -3034,11 +3078,13 @@ scalexz scaleyz Scalfi Schaik +Scheid Schilfgarde Schimansky Schiotz Schlitter Schmid +Schnieders Schoen Schotte Schratt @@ -3051,6 +3097,7 @@ screenshot screenshots Scripps Scripta +sd sdk sdpd SDPD @@ -3172,6 +3219,7 @@ Souza sp spacings Spearot +specieslist specular spellcheck Spellmeyer @@ -3210,6 +3258,7 @@ statvolt stdin stdio stdlib +stdout steelblue Stegailov Steinbach @@ -3493,6 +3542,9 @@ Tz Tzou ub Uberuaga +ubflag +Ubflag +ubiquitin uca uChem uCond @@ -3546,12 +3598,14 @@ upenn upto Urbakh Urbana +UreyBradley Usabiaga usec uSemiParallel userguide username usleep +usolve usr util utils @@ -3585,6 +3639,7 @@ Vcm vdfmax vdim vdisplace +vdw vdW vdwl vec @@ -3659,13 +3714,19 @@ vx Vx vxcm vxmu +vxx +vxy +vxz vy Vy vycm +vyy +vyz vz Vz vzcm vzi +vzz Waals Wadley wallstyle @@ -3732,6 +3793,7 @@ Xeon xflag xhi xHost +Xia Xiaohu Xiaowang Xie diff --git a/examples/COUPLE/fortran2/LAMMPS-wrapper.cpp b/examples/COUPLE/fortran2/LAMMPS-wrapper.cpp index 8b6a257755..eb6f421606 100644 --- a/examples/COUPLE/fortran2/LAMMPS-wrapper.cpp +++ b/examples/COUPLE/fortran2/LAMMPS-wrapper.cpp @@ -12,8 +12,8 @@ ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------ - Contributing author: Karl D. Hammond - University of Tennessee, Knoxville (USA), 2012 + Contributing author: Karl D. Hammond + University of Missouri (USA), 2012 ------------------------------------------------------------------------- */ /* This is set of "wrapper" functions to assist LAMMPS.F90, which itself @@ -23,6 +23,7 @@ #include #include "LAMMPS-wrapper.h" +#define LAMMPS_LIB_MPI 1 #include #include #include @@ -56,181 +57,40 @@ void lammps_error_all (void *ptr, const char *file, int line, const char *str) int lammps_extract_compute_vectorsize (void *ptr, char *id, int style) { - class LAMMPS *lmp = (class LAMMPS *) ptr; - int icompute = lmp->modify->find_compute(id); - if ( icompute < 0 ) return 0; - class Compute *compute = lmp->modify->compute[icompute]; - - if ( style == 0 ) - { - if ( !compute->vector_flag ) - return 0; - else - return compute->size_vector; - } - else if ( style == 1 ) - { - return lammps_get_natoms (ptr); - } - else if ( style == 2 ) - { - if ( !compute->local_flag ) - return 0; - else - return compute->size_local_rows; - } - else - return 0; + int *size; + size = (int *) lammps_extract_compute(ptr, id, style, LMP_SIZE_VECTOR); + if (size) return *size; + return 0; } void lammps_extract_compute_arraysize (void *ptr, char *id, int style, int *nrows, int *ncols) { - class LAMMPS *lmp = (class LAMMPS *) ptr; - int icompute = lmp->modify->find_compute(id); - if ( icompute < 0 ) - { - *nrows = 0; - *ncols = 0; - } - class Compute *compute = lmp->modify->compute[icompute]; - - if ( style == 0 ) - { - if ( !compute->array_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = compute->size_array_rows; - *ncols = compute->size_array_cols; - } - } - else if ( style == 1 ) - { - if ( !compute->peratom_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = lammps_get_natoms (ptr); - *ncols = compute->size_peratom_cols; - } - } - else if ( style == 2 ) - { - if ( !compute->local_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = compute->size_local_rows; - *ncols = compute->size_local_cols; - } - } - else - { - *nrows = 0; - *ncols = 0; - } - + int *tmp; + tmp = (int *) lammps_extract_compute(ptr, id, style, LMP_SIZE_ROWS); + if (tmp) *nrows = *tmp; + tmp = (int *) lammps_extract_compute(ptr, id, style, LMP_SIZE_COLS); + if (tmp) *ncols = *tmp; return; } int lammps_extract_fix_vectorsize (void *ptr, char *id, int style) { - class LAMMPS *lmp = (class LAMMPS *) ptr; - int ifix = lmp->modify->find_fix(id); - if ( ifix < 0 ) return 0; - class Fix *fix = lmp->modify->fix[ifix]; - - if ( style == 0 ) - { - if ( !fix->vector_flag ) - return 0; - else - return fix->size_vector; - } - else if ( style == 1 ) - { - return lammps_get_natoms (ptr); - } - else if ( style == 2 ) - { - if ( !fix->local_flag ) - return 0; - else - return fix->size_local_rows; - } - else - return 0; + int *size; + size = (int *) lammps_extract_fix(ptr, id, style, LMP_SIZE_VECTOR, 0, 0); + if (size) return *size; + return 0; } void lammps_extract_fix_arraysize (void *ptr, char *id, int style, int *nrows, int *ncols) { - class LAMMPS *lmp = (class LAMMPS *) ptr; - int ifix = lmp->modify->find_fix(id); - if ( ifix < 0 ) - { - *nrows = 0; - *ncols = 0; - } - class Fix *fix = lmp->modify->fix[ifix]; - - if ( style == 0 ) - { - if ( !fix->array_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = fix->size_array_rows; - *ncols = fix->size_array_cols; - } - } - else if ( style == 1 ) - { - if ( !fix->peratom_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = lammps_get_natoms (ptr); - *ncols = fix->size_peratom_cols; - } - } - else if ( style == 2 ) - { - if ( !fix->local_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = fix->size_local_rows; - *ncols = fix->size_local_cols; - } - } - else - { - *nrows = 0; - *ncols = 0; - } - + int *tmp; + tmp = (int *) lammps_extract_fix(ptr, id, style, LMP_SIZE_ROWS, 0, 0); + if (tmp) *nrows = *tmp; + tmp = (int *) lammps_extract_fix(ptr, id, style, LMP_SIZE_COLS, 0, 0); + if (tmp) *ncols = *tmp; return; - } /* vim: set ts=3 sts=3 expandtab: */ diff --git a/examples/COUPLE/fortran2/LAMMPS-wrapper.h b/examples/COUPLE/fortran2/LAMMPS-wrapper.h index 68e03ae05a..479af91738 100644 --- a/examples/COUPLE/fortran2/LAMMPS-wrapper.h +++ b/examples/COUPLE/fortran2/LAMMPS-wrapper.h @@ -12,8 +12,8 @@ ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------ - Contributing author: Karl D. Hammond - University of Tennessee, Knoxville (USA), 2012 + Contributing author: Karl D. Hammond + University of Missouri (USA), 2012 ------------------------------------------------------------------------- */ /* This is set of "wrapper" functions to assist LAMMPS.F90, which itself diff --git a/examples/COUPLE/fortran2/LAMMPS.F90 b/examples/COUPLE/fortran2/LAMMPS.F90 index 8b74a38721..251b56f48f 100644 --- a/examples/COUPLE/fortran2/LAMMPS.F90 +++ b/examples/COUPLE/fortran2/LAMMPS.F90 @@ -1292,7 +1292,7 @@ contains !! Wrapper functions local to this module {{{1 Cname = string2Cstring (name) Ccount = size(data) / natoms if ( Ccount /= 1 .and. Ccount /= 3 ) & - call lammps_error_all (ptr, FLERR, 'lammps_gather_atoms requires& + call lammps_error_all (ptr, FLERR, 'lammps_scatter_atoms requires& & count to be either 1 or 3') Fdata = data Cdata = C_loc (Fdata(1)) @@ -1355,7 +1355,7 @@ contains !! Wrapper functions local to this module {{{1 Cname = string2Cstring (name) Ccount = size(data) / ndata if ( Ccount /= 1 .and. Ccount /= 3 ) & - call lammps_error_all (ptr, FLERR, 'lammps_gather_atoms requires& + call lammps_error_all (ptr, FLERR, 'lammps_scatter_atoms requires& & count to be either 1 or 3') Fdata = data Cdata = C_loc (Fdata(1)) diff --git a/examples/COUPLE/fortran2/Makefile b/examples/COUPLE/fortran2/Makefile index fe66914892..f8a2126233 100644 --- a/examples/COUPLE/fortran2/Makefile +++ b/examples/COUPLE/fortran2/Makefile @@ -14,7 +14,7 @@ CXXLIB = -lstdc++ # replace with your C++ runtime libs # Flags for Fortran compiler, C++ compiler, and C preprocessor, respectively FFLAGS = -O2 -fPIC CXXFLAGS = -O2 -fPIC -CPPFLAGS = -DOMPI_SKIP_MPICXX=1 -DMPICH_SKIP_MPICXX -DLAMMPS_LIB_MPI +CPPFLAGS = -DOMPI_SKIP_MPICXX=1 -DMPICH_SKIP_MPICXX all : liblammps_fortran.a liblammps_fortran.so diff --git a/examples/COUPLE/fortran2/README b/examples/COUPLE/fortran2/README index 1710ca8ba6..0a7b862d86 100644 --- a/examples/COUPLE/fortran2/README +++ b/examples/COUPLE/fortran2/README @@ -11,9 +11,8 @@ This interface was created by Karl Hammond who you can contact with questions: Karl D. Hammond -University of Tennessee, Knoxville -karlh at ugcs.caltech.edu -karlh at utk.edu +University of Missouri +hammondkd at missouri.edu ------------------------------------- diff --git a/examples/COUPLE/fortran_dftb/LAMMPS-wrapper.cpp b/examples/COUPLE/fortran_dftb/LAMMPS-wrapper.cpp index 8b6a257755..eb6f421606 100644 --- a/examples/COUPLE/fortran_dftb/LAMMPS-wrapper.cpp +++ b/examples/COUPLE/fortran_dftb/LAMMPS-wrapper.cpp @@ -12,8 +12,8 @@ ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------ - Contributing author: Karl D. Hammond - University of Tennessee, Knoxville (USA), 2012 + Contributing author: Karl D. Hammond + University of Missouri (USA), 2012 ------------------------------------------------------------------------- */ /* This is set of "wrapper" functions to assist LAMMPS.F90, which itself @@ -23,6 +23,7 @@ #include #include "LAMMPS-wrapper.h" +#define LAMMPS_LIB_MPI 1 #include #include #include @@ -56,181 +57,40 @@ void lammps_error_all (void *ptr, const char *file, int line, const char *str) int lammps_extract_compute_vectorsize (void *ptr, char *id, int style) { - class LAMMPS *lmp = (class LAMMPS *) ptr; - int icompute = lmp->modify->find_compute(id); - if ( icompute < 0 ) return 0; - class Compute *compute = lmp->modify->compute[icompute]; - - if ( style == 0 ) - { - if ( !compute->vector_flag ) - return 0; - else - return compute->size_vector; - } - else if ( style == 1 ) - { - return lammps_get_natoms (ptr); - } - else if ( style == 2 ) - { - if ( !compute->local_flag ) - return 0; - else - return compute->size_local_rows; - } - else - return 0; + int *size; + size = (int *) lammps_extract_compute(ptr, id, style, LMP_SIZE_VECTOR); + if (size) return *size; + return 0; } void lammps_extract_compute_arraysize (void *ptr, char *id, int style, int *nrows, int *ncols) { - class LAMMPS *lmp = (class LAMMPS *) ptr; - int icompute = lmp->modify->find_compute(id); - if ( icompute < 0 ) - { - *nrows = 0; - *ncols = 0; - } - class Compute *compute = lmp->modify->compute[icompute]; - - if ( style == 0 ) - { - if ( !compute->array_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = compute->size_array_rows; - *ncols = compute->size_array_cols; - } - } - else if ( style == 1 ) - { - if ( !compute->peratom_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = lammps_get_natoms (ptr); - *ncols = compute->size_peratom_cols; - } - } - else if ( style == 2 ) - { - if ( !compute->local_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = compute->size_local_rows; - *ncols = compute->size_local_cols; - } - } - else - { - *nrows = 0; - *ncols = 0; - } - + int *tmp; + tmp = (int *) lammps_extract_compute(ptr, id, style, LMP_SIZE_ROWS); + if (tmp) *nrows = *tmp; + tmp = (int *) lammps_extract_compute(ptr, id, style, LMP_SIZE_COLS); + if (tmp) *ncols = *tmp; return; } int lammps_extract_fix_vectorsize (void *ptr, char *id, int style) { - class LAMMPS *lmp = (class LAMMPS *) ptr; - int ifix = lmp->modify->find_fix(id); - if ( ifix < 0 ) return 0; - class Fix *fix = lmp->modify->fix[ifix]; - - if ( style == 0 ) - { - if ( !fix->vector_flag ) - return 0; - else - return fix->size_vector; - } - else if ( style == 1 ) - { - return lammps_get_natoms (ptr); - } - else if ( style == 2 ) - { - if ( !fix->local_flag ) - return 0; - else - return fix->size_local_rows; - } - else - return 0; + int *size; + size = (int *) lammps_extract_fix(ptr, id, style, LMP_SIZE_VECTOR, 0, 0); + if (size) return *size; + return 0; } void lammps_extract_fix_arraysize (void *ptr, char *id, int style, int *nrows, int *ncols) { - class LAMMPS *lmp = (class LAMMPS *) ptr; - int ifix = lmp->modify->find_fix(id); - if ( ifix < 0 ) - { - *nrows = 0; - *ncols = 0; - } - class Fix *fix = lmp->modify->fix[ifix]; - - if ( style == 0 ) - { - if ( !fix->array_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = fix->size_array_rows; - *ncols = fix->size_array_cols; - } - } - else if ( style == 1 ) - { - if ( !fix->peratom_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = lammps_get_natoms (ptr); - *ncols = fix->size_peratom_cols; - } - } - else if ( style == 2 ) - { - if ( !fix->local_flag ) - { - *nrows = 0; - *ncols = 0; - } - else - { - *nrows = fix->size_local_rows; - *ncols = fix->size_local_cols; - } - } - else - { - *nrows = 0; - *ncols = 0; - } - + int *tmp; + tmp = (int *) lammps_extract_fix(ptr, id, style, LMP_SIZE_ROWS, 0, 0); + if (tmp) *nrows = *tmp; + tmp = (int *) lammps_extract_fix(ptr, id, style, LMP_SIZE_COLS, 0, 0); + if (tmp) *ncols = *tmp; return; - } /* vim: set ts=3 sts=3 expandtab: */ diff --git a/examples/COUPLE/fortran_dftb/LAMMPS-wrapper.h b/examples/COUPLE/fortran_dftb/LAMMPS-wrapper.h index 7d94362436..553466d138 100644 --- a/examples/COUPLE/fortran_dftb/LAMMPS-wrapper.h +++ b/examples/COUPLE/fortran_dftb/LAMMPS-wrapper.h @@ -12,8 +12,8 @@ ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------ - Contributing author: Karl D. Hammond - University of Tennessee, Knoxville (USA), 2012 + Contributing author: Karl D. Hammond + University of Missouri (USA), 2012 ------------------------------------------------------------------------- */ /* This is set of "wrapper" functions to assist LAMMPS.F90, which itself diff --git a/examples/COUPLE/fortran_dftb/LAMMPS-wrapper2.cpp b/examples/COUPLE/fortran_dftb/LAMMPS-wrapper2.cpp index 5f94363346..44d7b5bca4 100644 --- a/examples/COUPLE/fortran_dftb/LAMMPS-wrapper2.cpp +++ b/examples/COUPLE/fortran_dftb/LAMMPS-wrapper2.cpp @@ -12,8 +12,7 @@ ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------ - Contributing author: Karl D. Hammond - University of Tennessee, Knoxville (USA), 2012 + Contributing author: Nir Goldman, LLNL , 2016 ------------------------------------------------------------------------- */ /* This is set of "wrapper" functions to assist LAMMPS.F90, which itself diff --git a/examples/COUPLE/fortran_dftb/LAMMPS-wrapper2.h b/examples/COUPLE/fortran_dftb/LAMMPS-wrapper2.h index ed79015e78..d3705179ed 100644 --- a/examples/COUPLE/fortran_dftb/LAMMPS-wrapper2.h +++ b/examples/COUPLE/fortran_dftb/LAMMPS-wrapper2.h @@ -12,7 +12,7 @@ ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------ - Contributing author: Nir Goldman, ngoldman@llnl.gov, Oct. 19th, 2016 + Contributing author: Nir Goldman, LLNL , 2016 ------------------------------------------------------------------------- */ /* This is set of "wrapper" functions to assist LAMMPS.F90, which itself diff --git a/examples/COUPLE/fortran_dftb/LAMMPS.F90 b/examples/COUPLE/fortran_dftb/LAMMPS.F90 index 9b18bbfa5f..188fff9d60 100644 --- a/examples/COUPLE/fortran_dftb/LAMMPS.F90 +++ b/examples/COUPLE/fortran_dftb/LAMMPS.F90 @@ -12,8 +12,8 @@ !-------------------------------------------------------------------------- !! ------------------------------------------------------------------------ -! Contributing author: Karl D. Hammond -! University of Tennessee, Knoxville (USA), 2012 +! Contributing author: Karl D. Hammond +! University of Missouri (USA), 2012 !-------------------------------------------------------------------------- !! LAMMPS, a Fortran 2003 module containing an interface between Fortran diff --git a/examples/ELASTIC_T/BORN_MATRIX/Argon/Analytical/compute_born.py b/examples/ELASTIC_T/BORN_MATRIX/Argon/Analytical/compute_born.py index 0f3265faeb..88cc8dcca2 100644 --- a/examples/ELASTIC_T/BORN_MATRIX/Argon/Analytical/compute_born.py +++ b/examples/ELASTIC_T/BORN_MATRIX/Argon/Analytical/compute_born.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -import sys import numpy as np def reduce_Born(Cf): diff --git a/examples/ELASTIC_T/BORN_MATRIX/Argon/Numdiff/compute_born.py b/examples/ELASTIC_T/BORN_MATRIX/Argon/Numdiff/compute_born.py index 0f3265faeb..88cc8dcca2 100644 --- a/examples/ELASTIC_T/BORN_MATRIX/Argon/Numdiff/compute_born.py +++ b/examples/ELASTIC_T/BORN_MATRIX/Argon/Numdiff/compute_born.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -import sys import numpy as np def reduce_Born(Cf): diff --git a/examples/ELASTIC_T/BORN_MATRIX/Silicon/elastic_utils.py b/examples/ELASTIC_T/BORN_MATRIX/Silicon/elastic_utils.py index 0daf62b1b0..2307f3d413 100644 --- a/examples/ELASTIC_T/BORN_MATRIX/Silicon/elastic_utils.py +++ b/examples/ELASTIC_T/BORN_MATRIX/Silicon/elastic_utils.py @@ -1,5 +1,5 @@ import numpy as np -from lammps import lammps, LAMMPS_INT, LMP_STYLE_GLOBAL, LMP_VAR_EQUAL, LMP_VAR_ATOM +from lammps import lammps, LMP_VAR_EQUAL # method for rotating elastic constants diff --git a/examples/PACKAGES/manybody_table/1-1-1.table b/examples/PACKAGES/manybody_table/1-1-1.table new file mode 100644 index 0000000000..76d8f8a9ec --- /dev/null +++ b/examples/PACKAGES/manybody_table/1-1-1.table @@ -0,0 +1,1875 @@ +ENTRY1 +N 12 rmin 2.55 rmax 3.65 + +1 2.55 2.55 3.75 -867.212 -611.273 867.212 21386.8 611.273 -21386.8 0.0 +2 2.55 2.55 11.25 -621.539 -411.189 621.539 5035.95 411.189 -5035.95 0.0 +3 2.55 2.55 18.75 -394.167 -243.287 394.167 1722.21 243.287 -1722.21 0.0 +4 2.55 2.55 26.25 -218.789 -127.402 218.789 560.206 127.402 -560.206 0.0 +5 2.55 2.55 33.75 -104.252 -59.5774 104.252 156.639 59.5774 -156.639 0.0 +6 2.55 2.55 41.25 -41.0722 -24.6716 41.072 36.4446 24.6716 -36.4446 0.0 +7 2.55 2.55 48.75 -12.357 -8.38061 12.3571 7.1117 8.38062 -7.1117 0.0 +8 2.55 2.55 56.25 -2.29912 -1.68047 2.29907 0.91657 1.68048 -0.916568 0.0 +9 2.55 2.55 63.75 -0.0509977 0.327321 0.0509129 -0.304729 -0.327319 0.30474 0.0 +10 2.55 2.55 71.25 0.0345509 0.431792 -0.0345867 -0.382614 -0.431782 0.382616 0.0 +11 2.55 2.55 78.75 -0.00019898 0.179593 0.000319523 -0.292658 -0.179608 0.292661 0.0 +12 2.55 2.55 86.25 0.154169 0.138217 -0.154088 -0.302917 -0.138224 0.302914 0.0 +13 2.55 2.55 93.75 0.327691 0.263922 -0.327675 -0.340147 -0.263894 0.340148 0.0 +14 2.55 2.55 101.25 0.382895 0.350591 -0.382883 -0.297308 -0.350546 0.297312 0.0 +15 2.55 2.55 108.75 0.300955 0.297417 -0.300746 -0.173862 -0.297437 0.173872 0.0 +16 2.55 2.55 116.25 0.138507 0.141879 -0.138328 -0.0349372 -0.1418 0.0349415 0.0 +17 2.55 2.55 123.75 -0.0287949 -0.0286834 0.0286744 0.065848 0.0287665 -0.0658601 0.0 +18 2.55 2.55 131.25 -0.160323 -0.164235 0.160302 0.120341 0.164191 -0.120297 0.0 +19 2.55 2.55 138.75 -0.274013 -0.280673 0.274077 0.156939 0.280642 -0.156913 0.0 +20 2.55 2.55 146.25 -0.42361 -0.430992 0.423711 0.212433 0.430824 -0.212358 0.0 +21 2.55 2.55 153.75 -0.648177 -0.651719 0.648516 0.305821 0.651726 -0.305791 0.0 +22 2.55 2.55 161.25 -0.93181 -0.926724 0.931895 0.426805 0.926702 -0.426778 0.0 +23 2.55 2.55 168.75 -1.20276 -1.18735 1.20273 0.541966 1.18745 -0.542019 0.0 +24 2.55 2.55 176.25 -1.36933 -1.34705 1.3691 0.612284 1.34703 -0.612297 0.0 +25 2.55 2.65 3.75 -784.444 -675.519 784.444 19696.9 675.519 -19696.9 0.0 +26 2.55 2.65 11.25 -542.941 -440.852 542.941 5300.59 440.852 -5300.59 0.0 +27 2.55 2.65 18.75 -325.839 -241.234 325.839 1817.37 241.234 -1817.37 0.0 +28 2.55 2.65 26.25 -169.421 -111.015 169.421 580.214 111.015 -580.214 0.0 +29 2.55 2.65 33.75 -74.994 -43.3669 74.994 155.496 43.3669 -155.496 0.0 +30 2.55 2.65 41.25 -27.0736 -14.8824 27.0736 33.1152 14.8824 -33.1152 0.0 +31 2.55 2.65 48.75 -7.12613 -4.62454 7.12621 5.36809 4.62453 -5.36811 0.0 +32 2.55 2.65 56.25 -0.874199 -1.13723 0.874234 0.34195 1.13723 -0.341919 0.0 +33 2.55 2.65 63.75 0.204812 -0.0406907 -0.204883 -0.442652 0.0407084 0.442642 0.0 +34 2.55 2.65 71.25 0.0904568 0.154881 -0.0905494 -0.435451 -0.154894 0.435459 0.0 +35 2.55 2.65 78.75 0.0458835 0.126591 -0.0460614 -0.333955 -0.126573 0.33396 0.0 +36 2.55 2.65 86.25 0.168148 0.163197 -0.168343 -0.309845 -0.163197 0.309848 0.0 +37 2.55 2.65 93.75 0.296449 0.261093 -0.296361 -0.307947 -0.261084 0.307954 0.0 +38 2.55 2.65 101.25 0.329963 0.311331 -0.329831 -0.254571 -0.311318 0.254565 0.0 +39 2.55 2.65 108.75 0.253841 0.255391 -0.253789 -0.146686 -0.255437 0.146721 0.0 +40 2.55 2.65 116.25 0.107857 0.119105 -0.107492 -0.0254819 -0.119136 0.0254837 0.0 +41 2.55 2.65 123.75 -0.0492191 -0.0344023 0.0490594 0.0707149 0.0343792 -0.0707119 0.0 +42 2.55 2.65 131.25 -0.180513 -0.166858 0.180388 0.1322 0.16692 -0.132248 0.0 +43 2.55 2.65 138.75 -0.300448 -0.291041 0.300451 0.178321 0.291015 -0.178345 0.0 +44 2.55 2.65 146.25 -0.45666 -0.451363 0.456715 0.239144 0.451427 -0.239145 0.0 +45 2.55 2.65 153.75 -0.684349 -0.67857 0.684481 0.332093 0.678651 -0.332112 0.0 +46 2.55 2.65 161.25 -0.966732 -0.954719 0.966651 0.448833 0.954615 -0.448783 0.0 +47 2.55 2.65 168.75 -1.23353 -1.21297 1.23383 0.558954 1.21297 -0.558949 0.0 +48 2.55 2.65 176.25 -1.39695 -1.37031 1.39698 0.626037 1.37022 -0.625967 0.0 +49 2.55 2.75 3.75 -668.413 -701.057 668.413 15096.3 701.057 -15096.3 0.0 +50 2.55 2.75 11.25 -452.8 -464.411 452.8 5130.32 464.411 -5130.32 0.0 +51 2.55 2.75 18.75 -256.012 -246.87 256.012 1797.07 246.87 -1797.07 0.0 +52 2.55 2.75 26.25 -123.333 -105.643 123.333 565.052 105.643 -565.052 0.0 +53 2.55 2.75 33.75 -50.2709 -35.7913 50.2709 144.93 35.7913 -144.93 0.0 +54 2.55 2.75 41.25 -16.78 -9.69921 16.78 28.1038 9.69923 -28.1038 0.0 +55 2.55 2.75 48.75 -4.12155 -2.37411 4.12164 3.76214 2.3741 -3.76217 0.0 +56 2.55 2.75 56.25 -0.484016 -0.658362 0.484128 0.146857 0.658338 -0.146846 0.0 +57 2.55 2.75 63.75 0.0687647 -0.20106 -0.0687734 -0.260534 0.20103 0.260497 0.0 +58 2.55 2.75 71.25 -0.00147066 -0.0603687 0.0015277 -0.268714 0.0604159 0.268722 0.0 +59 2.55 2.75 78.75 0.0156999 0.0125791 -0.0159656 -0.252993 -0.0125614 0.252974 0.0 +60 2.55 2.75 86.25 0.136925 0.119249 -0.13684 -0.269725 -0.11924 0.269725 0.0 +61 2.55 2.75 93.75 0.247327 0.234358 -0.247334 -0.272826 -0.234332 0.272827 0.0 +62 2.55 2.75 101.25 0.281753 0.286511 -0.281826 -0.224691 -0.286549 0.224691 0.0 +63 2.55 2.75 108.75 0.226138 0.242659 -0.226349 -0.131815 -0.24272 0.131841 0.0 +64 2.55 2.75 116.25 0.106433 0.12752 -0.10664 -0.0258695 -0.127594 0.0258609 0.0 +65 2.55 2.75 123.75 -0.0277616 -0.00630627 0.0276778 0.0615222 0.00630865 -0.0614969 0.0 +66 2.55 2.75 131.25 -0.142446 -0.124893 0.142414 0.118979 0.124975 -0.11903 0.0 +67 2.55 2.75 138.75 -0.248783 -0.237903 0.248779 0.161562 0.237995 -0.161575 0.0 +68 2.55 2.75 146.25 -0.392668 -0.385233 0.392627 0.216964 0.385134 -0.21689 0.0 +69 2.55 2.75 153.75 -0.606858 -0.595071 0.606818 0.302592 0.595088 -0.302606 0.0 +70 2.55 2.75 161.25 -0.874793 -0.851019 0.874799 0.411383 0.850969 -0.411357 0.0 +71 2.55 2.75 168.75 -1.12893 -1.0911 1.12904 0.514712 1.09102 -0.514675 0.0 +72 2.55 2.75 176.25 -1.28457 -1.23755 1.28455 0.577854 1.23747 -0.577828 0.0 +73 2.55 2.85 3.75 -540.757 -671.949 540.757 11232.9 671.949 -11232.9 0.0 +74 2.55 2.85 11.25 -358.962 -456.955 358.962 4626.32 456.955 -4626.32 0.0 +75 2.55 2.85 18.75 -189.205 -242.387 189.205 1670.73 242.387 -1670.73 0.0 +76 2.55 2.85 26.25 -82.3789 -101.034 82.3789 518.217 101.034 -518.217 0.0 +77 2.55 2.85 33.75 -30.0098 -32.1026 30.0098 126.998 32.1025 -126.998 0.0 +78 2.55 2.85 41.25 -9.21751 -7.56922 9.21749 22.2838 7.5692 -22.2838 0.0 +79 2.55 2.85 48.75 -2.28489 -1.50529 2.28485 2.35574 1.50529 -2.35573 0.0 +80 2.55 2.85 56.25 -0.358049 -0.489852 0.357948 0.0188984 0.489874 -0.0189109 0.0 +81 2.55 2.85 63.75 -0.00522043 -0.307792 0.00494878 -0.134592 0.307776 0.134574 0.0 +82 2.55 2.85 71.25 0.00323495 -0.2024 -0.00313048 -0.169997 0.202387 0.169981 0.0 +83 2.55 2.85 78.75 0.0415278 -0.0778296 -0.0414056 -0.213315 0.077898 0.213326 0.0 +84 2.55 2.85 86.25 0.131889 0.069504 -0.132199 -0.248098 -0.0695577 0.248098 0.0 +85 2.55 2.85 93.75 0.214594 0.193542 -0.214655 -0.244475 -0.193398 0.244477 0.0 +86 2.55 2.85 101.25 0.244494 0.247624 -0.244635 -0.195685 -0.247697 0.195696 0.0 +87 2.55 2.85 108.75 0.201434 0.218545 -0.201617 -0.114828 -0.218615 0.114846 0.0 +88 2.55 2.85 116.25 0.0998591 0.127904 -0.0997024 -0.024899 -0.127956 0.0249269 0.0 +89 2.55 2.85 123.75 -0.0181479 0.0163555 0.0181766 0.049407 -0.0163067 -0.0494209 0.0 +90 2.55 2.85 131.25 -0.11898 -0.0876934 0.119352 0.098005 0.0875449 -0.0979311 0.0 +91 2.55 2.85 138.75 -0.214707 -0.191866 0.214605 0.134596 0.191898 -0.13457 0.0 +92 2.55 2.85 146.25 -0.347993 -0.330815 0.348041 0.185048 0.330869 -0.185107 0.0 +93 2.55 2.85 153.75 -0.550177 -0.528952 0.549981 0.265291 0.528797 -0.265232 0.0 +94 2.55 2.85 161.25 -0.804311 -0.769737 0.804194 0.367848 0.769696 -0.367861 0.0 +95 2.55 2.85 168.75 -1.04529 -0.994652 1.04554 0.465186 0.99499 -0.465282 0.0 +96 2.55 2.85 176.25 -1.19281 -1.13166 1.19305 0.52457 1.13177 -0.524594 0.0 +97 2.55 2.95 3.75 -419.502 -582.296 419.502 8332.23 582.296 -8332.23 0.0 +98 2.55 2.95 11.25 -271.55 -404.417 271.55 3930.48 404.417 -3930.48 0.0 +99 2.55 2.95 18.75 -130.928 -214.969 130.928 1464.2 214.969 -1464.2 0.0 +100 2.55 2.95 26.25 -48.786 -88.4342 48.786 447.646 88.4342 -447.646 0.0 +101 2.55 2.95 33.75 -14.3964 -27.3665 14.3964 104.519 27.3665 -104.519 0.0 +102 2.55 2.95 41.25 -3.7883 -6.20808 3.78827 16.4944 6.20806 -16.4944 0.0 +103 2.55 2.95 48.75 -1.0529 -1.19869 1.05292 1.27167 1.19863 -1.27161 0.0 +104 2.55 2.95 56.25 -0.231522 -0.429682 0.231513 -0.0951674 0.429629 0.0951268 0.0 +105 2.55 2.95 63.75 0.0181127 -0.325032 -0.0180919 -0.110423 0.324922 0.110426 0.0 +106 2.55 2.95 71.25 0.049094 -0.246096 -0.0491496 -0.144969 0.245996 0.14495 0.0 +107 2.55 2.95 78.75 0.063364 -0.114463 -0.0633467 -0.196803 0.114426 0.196797 0.0 +108 2.55 2.95 86.25 0.11583 0.0385036 -0.115786 -0.223948 -0.0384687 0.223952 0.0 +109 2.55 2.95 93.75 0.177943 0.156855 -0.178064 -0.209887 -0.156845 0.209889 0.0 +110 2.55 2.95 101.25 0.207654 0.212381 -0.207593 -0.163549 -0.212444 0.163567 0.0 +111 2.55 2.95 108.75 0.175031 0.201414 -0.174609 -0.0967898 -0.20124 0.0967398 0.0 +112 2.55 2.95 116.25 0.0862557 0.136066 -0.0862066 -0.0233966 -0.13596 0.0233258 0.0 +113 2.55 2.95 123.75 -0.0191239 0.0441682 0.0193287 0.0382847 -0.0441811 -0.0382953 0.0 +114 2.55 2.95 131.25 -0.110069 -0.050979 0.109801 0.0798251 0.0509319 -0.0799025 0.0 +115 2.55 2.95 138.75 -0.196213 -0.153394 0.196102 0.113373 0.153405 -0.113396 0.0 +116 2.55 2.95 146.25 -0.318885 -0.291367 0.319145 0.161467 0.291373 -0.161505 0.0 +117 2.55 2.95 153.75 -0.50686 -0.483737 0.506732 0.236963 0.48342 -0.236818 0.0 +118 2.55 2.95 161.25 -0.742764 -0.712982 0.742837 0.331712 0.713077 -0.331758 0.0 +119 2.55 2.95 168.75 -0.965814 -0.924655 0.965837 0.420445 0.924729 -0.420487 0.0 +120 2.55 2.95 176.25 -1.10185 -1.05258 1.10198 0.474136 1.05241 -0.474051 0.0 +121 2.55 3.05 3.75 -319.111 -440.938 319.111 6126.66 440.938 -6126.66 0.0 +122 2.55 3.05 11.25 -200.795 -309.049 200.795 3169.23 309.049 -3169.23 0.0 +123 2.55 3.05 18.75 -86.7152 -162.683 86.7152 1211.49 162.683 -1211.49 0.0 +124 2.55 3.05 26.25 -24.7922 -65.0953 24.7921 363.733 65.0953 -363.733 0.0 +125 2.55 3.05 33.75 -3.79557 -19.4403 3.79568 80.4622 19.4403 -80.4622 0.0 +126 2.55 3.05 41.25 -0.227488 -4.40816 0.227381 11.3442 4.40812 -11.3442 0.0 +127 2.55 3.05 48.75 -0.215962 -0.9846 0.21623 0.572809 0.984607 -0.572833 0.0 +128 2.55 3.05 56.25 -0.0972827 -0.406271 0.0971886 -0.155442 0.406388 0.155438 0.0 +129 2.55 3.05 63.75 0.0474691 -0.320721 -0.0473142 -0.115525 0.320742 0.115541 0.0 +130 2.55 3.05 71.25 0.0542543 -0.274312 -0.0545515 -0.127569 0.274174 0.127517 0.0 +131 2.55 3.05 78.75 0.0439985 -0.158092 -0.0440511 -0.165185 0.158055 0.165194 0.0 +132 2.55 3.05 86.25 0.0821507 -0.00877884 -0.0821081 -0.183829 0.00887135 0.183832 0.0 +133 2.55 3.05 93.75 0.142245 0.109192 -0.142406 -0.168613 -0.109223 0.168609 0.0 +134 2.55 3.05 101.25 0.176786 0.175042 -0.176859 -0.131259 -0.174989 0.13127 0.0 +135 2.55 3.05 108.75 0.153044 0.185839 -0.153188 -0.0796497 -0.185913 0.0796723 0.0 +136 2.55 3.05 116.25 0.0762661 0.144574 -0.0760233 -0.0213083 -0.14475 0.0213947 0.0 +137 2.55 3.05 123.75 -0.0153973 0.0697421 0.0151775 0.0294442 -0.0697414 -0.0295136 0.0 +138 2.55 3.05 131.25 -0.0914496 -0.0164558 0.0915457 0.0650391 0.01638 -0.0650155 0.0 +139 2.55 3.05 138.75 -0.163525 -0.114278 0.163505 0.0952572 0.113968 -0.0951433 0.0 +140 2.55 3.05 146.25 -0.267879 -0.245016 0.267903 0.138326 0.244925 -0.138338 0.0 +141 2.55 3.05 153.75 -0.430018 -0.423265 0.429956 0.203867 0.423326 -0.203942 0.0 +142 2.55 3.05 161.25 -0.633833 -0.631774 0.634037 0.284186 0.631568 -0.284063 0.0 +143 2.55 3.05 168.75 -0.826685 -0.82183 0.826375 0.358252 0.82172 -0.358225 0.0 +144 2.55 3.05 176.25 -0.943422 -0.93572 0.943723 0.402697 0.935847 -0.402743 0.0 +145 2.55 3.15 3.75 -249.767 -271.418 249.767 4425.44 271.418 -4425.44 0.0 +146 2.55 3.15 11.25 -154.5 -187.982 154.5 2434.18 187.982 -2434.18 0.0 +147 2.55 3.15 18.75 -60.5981 -94.4639 60.5982 946.499 94.4639 -946.499 0.0 +148 2.55 3.15 26.25 -11.8534 -34.6155 11.8535 277.025 34.6156 -277.025 0.0 +149 2.55 3.15 33.75 1.6123 -9.2646 -1.61231 57.3974 9.26465 -57.3974 0.0 +150 2.55 3.15 41.25 1.60158 -2.19805 -1.60158 7.12692 2.19808 -7.12698 0.0 +151 2.55 3.15 48.75 0.26948 -0.778894 -0.269488 0.21063 0.778852 -0.210617 0.0 +152 2.55 3.15 56.25 -0.01372 -0.412911 0.0136807 -0.142081 0.412893 0.142164 0.0 +153 2.55 3.15 63.75 0.0224038 -0.329718 -0.0222862 -0.0965871 0.329602 0.096574 0.0 +154 2.55 3.15 71.25 0.0060749 -0.316094 -0.00598008 -0.0883032 0.316076 0.0883122 0.0 +155 2.55 3.15 78.75 0.00302628 -0.219142 -0.00292645 -0.117193 0.219165 0.117188 0.0 +156 2.55 3.15 86.25 0.0523024 -0.0705546 -0.0522252 -0.136651 0.0705734 0.136649 0.0 +157 2.55 3.15 93.75 0.115651 0.0544573 -0.11564 -0.126319 -0.0545821 0.126326 0.0 +158 2.55 3.15 101.25 0.148969 0.134261 -0.149041 -0.0986894 -0.134289 0.0986837 0.0 +159 2.55 3.15 108.75 0.128464 0.165022 -0.12849 -0.0608071 -0.165301 0.0608822 0.0 +160 2.55 3.15 116.25 0.0654112 0.144738 -0.0648575 -0.0171687 -0.144771 0.0172192 0.0 +161 2.55 3.15 123.75 -0.00700089 0.0874701 0.0070514 0.0212287 -0.087399 -0.0213181 0.0 +162 2.55 3.15 131.25 -0.0630668 0.0158432 0.0629726 0.0481408 -0.0158028 -0.0482207 0.0 +163 2.55 3.15 138.75 -0.113207 -0.0669731 0.112947 0.0710475 0.0668196 -0.0709779 0.0 +164 2.55 3.15 146.25 -0.189616 -0.177294 0.189595 0.103802 0.177145 -0.103761 0.0 +165 2.55 3.15 153.75 -0.313405 -0.326317 0.313385 0.153359 0.326249 -0.1534 0.0 +166 2.55 3.15 161.25 -0.471349 -0.499401 0.471384 0.2136 0.499615 -0.213641 0.0 +167 2.55 3.15 168.75 -0.621738 -0.656501 0.621526 0.268765 0.656234 -0.268609 0.0 +168 2.55 3.15 176.25 -0.713168 -0.750131 0.713075 0.301728 0.749961 -0.301587 0.0 +169 2.55 3.25 3.75 -215.533 -105.036 215.533 3115.64 105.036 -3115.64 0.0 +170 2.55 3.25 11.25 -135.709 -66.1673 135.709 1782.43 66.1673 -1782.43 0.0 +171 2.55 3.25 18.75 -53.5226 -25.2778 53.5226 697.12 25.2777 -697.12 0.0 +172 2.55 3.25 26.25 -9.76548 -4.05586 9.76548 196.405 4.05587 -196.405 0.0 +173 2.55 3.25 33.75 2.26986 0.661867 -2.26987 37.2172 -0.661895 -37.2172 0.0 +174 2.55 3.25 41.25 1.94008 -0.139655 -1.94016 3.90169 0.139693 -3.90171 0.0 +175 2.55 3.25 48.75 0.433581 -0.598298 -0.433653 0.0713369 0.598313 -0.071257 0.0 +176 2.55 3.25 56.25 -0.0110448 -0.396733 0.0111185 -0.0792235 0.396666 0.0791487 0.0 +177 2.55 3.25 63.75 -0.0512665 -0.306617 0.0511183 -0.0540821 0.306458 0.05412 0.0 +178 2.55 3.25 71.25 -0.0567327 -0.327807 0.0568023 -0.042547 0.327783 0.0424758 0.0 +179 2.55 3.25 78.75 -0.0248985 -0.256832 0.0248957 -0.0738229 0.256924 0.073814 0.0 +180 2.55 3.25 86.25 0.03699 -0.115693 -0.0368212 -0.0949395 0.115771 0.0949412 0.0 +181 2.55 3.25 93.75 0.088578 0.0114051 -0.0885974 -0.0851166 -0.0114329 0.0851098 0.0 +182 2.55 3.25 101.25 0.108379 0.100211 -0.108454 -0.0631833 -0.100386 0.0632103 0.0 +183 2.55 3.25 108.75 0.0905494 0.146067 -0.0902676 -0.0380134 -0.146103 0.0380456 0.0 +184 2.55 3.25 116.25 0.0446648 0.143011 -0.0447651 -0.0105656 -0.143148 0.0105849 0.0 +185 2.55 3.25 123.75 -0.00397982 0.102972 0.00398606 0.0132778 -0.103051 -0.0132872 0.0 +186 2.55 3.25 131.25 -0.0396488 0.0470538 0.0395149 0.0295482 -0.0468879 -0.0296284 0.0 +187 2.55 3.25 138.75 -0.0696427 -0.0184498 0.0696581 0.0434558 0.0182276 -0.0433637 0.0 +188 2.55 3.25 146.25 -0.118295 -0.104198 0.11835 0.0645889 0.104105 -0.0645169 0.0 +189 2.55 3.25 153.75 -0.201226 -0.219646 0.201381 0.0977209 0.219776 -0.0977906 0.0 +190 2.55 3.25 161.25 -0.310278 -0.35328 0.310501 0.138558 0.353454 -0.138633 0.0 +191 2.55 3.25 168.75 -0.415467 -0.474235 0.415053 0.176198 0.474086 -0.176145 0.0 +192 2.55 3.25 176.25 -0.479006 -0.546119 0.479273 0.198749 0.546279 -0.198787 0.0 +193 2.55 3.35 3.75 -204.898 28.1648 204.898 2043.28 -28.1648 -2043.28 0.0 +194 2.55 3.35 11.25 -135.949 31.6213 135.949 1195.68 -31.6213 -1195.68 0.0 +195 2.55 3.35 18.75 -60.0294 29.3309 60.0294 464.081 -29.3309 -464.081 0.0 +196 2.55 3.35 26.25 -15.5602 19.1482 15.5602 123.342 -19.1482 -123.342 0.0 +197 2.55 3.35 33.75 -0.516502 7.80361 0.516464 20.3914 -7.80361 -20.3915 0.0 +198 2.55 3.35 41.25 1.1959 1.28099 -1.1959 1.61912 -1.28089 -1.61917 0.0 +199 2.55 3.35 48.75 0.338664 -0.427486 -0.338735 0.0672361 0.427458 -0.0671949 0.0 +200 2.55 3.35 56.25 -0.0712654 -0.32692 0.0713186 -0.00513307 0.326996 0.00515152 0.0 +201 2.55 3.35 63.75 -0.121975 -0.24598 0.122164 -0.0158901 0.24595 0.0159275 0.0 +202 2.55 3.35 71.25 -0.0836168 -0.3049 0.0833968 -0.0145822 0.304962 0.0145084 0.0 +203 2.55 3.35 78.75 -0.0227775 -0.26582 0.0226797 -0.0466388 0.265827 0.0466007 0.0 +204 2.55 3.35 86.25 0.0253278 -0.141365 -0.0252494 -0.0598516 0.14135 0.0598496 0.0 +205 2.55 3.35 93.75 0.0478277 -0.0194912 -0.0477364 -0.0442668 0.01948 0.0442715 0.0 +206 2.55 3.35 101.25 0.0542989 0.072706 -0.0542353 -0.0265114 -0.0727603 0.0265457 0.0 +207 2.55 3.35 108.75 0.0474436 0.128762 -0.0473722 -0.0142292 -0.128667 0.0141884 0.0 +208 2.55 3.35 116.25 0.024829 0.139676 -0.0246836 -0.00238193 -0.139623 0.00240878 0.0 +209 2.55 3.35 123.75 -0.00477975 0.112522 0.00457921 0.00880631 -0.112295 -0.00892129 0.0 +210 2.55 3.35 131.25 -0.0290626 0.0670303 0.0288612 0.0167144 -0.0668681 -0.0167711 0.0 +211 2.55 3.35 138.75 -0.0488435 0.012812 0.048558 0.0234532 -0.0126738 -0.0236424 0.0 +212 2.55 3.35 146.25 -0.0762617 -0.0554933 0.0763255 0.0346659 0.0553813 -0.0346319 0.0 +213 2.55 3.35 153.75 -0.123726 -0.144228 0.123766 0.053841 0.144227 -0.0538008 0.0 +214 2.55 3.35 161.25 -0.18791 -0.245407 0.187929 0.078822 0.245764 -0.079086 0.0 +215 2.55 3.35 168.75 -0.251038 -0.336304 0.251286 0.102654 0.336317 -0.102638 0.0 +216 2.55 3.35 176.25 -0.29084 -0.390314 0.290697 0.117217 0.390531 -0.11737 0.0 +217 2.55 3.45 3.75 -160.11 78.3904 160.11 964.746 -78.3904 -964.746 0.0 +218 2.55 3.45 11.25 -112.253 65.2155 112.253 569.896 -65.2155 -569.896 0.0 +219 2.55 3.45 18.75 -55.5875 44.2652 55.5876 216.275 -44.2652 -216.275 0.0 +220 2.55 3.45 26.25 -18.577 23.1948 18.5771 52.7785 -23.1948 -52.7785 0.0 +221 2.55 3.45 33.75 -3.3749 8.35207 3.37496 7.08855 -8.35205 -7.08857 0.0 +222 2.55 3.45 41.25 0.0558271 1.43995 -0.0557888 0.416872 -1.44003 -0.416798 0.0 +223 2.55 3.45 48.75 0.0736874 -0.250918 -0.0736577 0.137694 0.25083 -0.137688 0.0 +224 2.55 3.45 56.25 -0.118382 -0.234235 0.118498 0.029723 0.234224 -0.0297093 0.0 +225 2.55 3.45 63.75 -0.103993 -0.193692 0.103998 -0.0111831 0.193659 0.0111847 0.0 +226 2.55 3.45 71.25 -0.0373239 -0.248873 0.0374 -0.0103758 0.248904 0.0103568 0.0 +227 2.55 3.45 78.75 -0.000815577 -0.221711 0.000857674 -0.0239127 0.221702 0.0239331 0.0 +228 2.55 3.45 86.25 0.00235137 -0.12606 -0.00247045 -0.0235691 0.126024 0.0235785 0.0 +229 2.55 3.45 93.75 0.000693468 -0.0322758 -0.000731622 -0.0100368 0.0322426 0.0100472 0.0 +230 2.55 3.45 101.25 0.0107898 0.0378694 -0.0109773 -0.00230259 -0.0379779 0.00230944 0.0 +231 2.55 3.45 108.75 0.0223901 0.0828189 -0.0224924 -0.0011966 -0.0828617 0.00119886 0.0 +232 2.55 3.45 116.25 0.01901 0.0976112 -0.0189845 0.000576941 -0.0977212 -0.000592258 0.0 +233 2.55 3.45 123.75 0.0023177 0.0865526 -0.00220076 0.00381654 -0.0867258 -0.00376165 0.0 +234 2.55 3.45 131.25 -0.0137084 0.0618094 0.0137112 0.00514774 -0.0618168 -0.00513733 0.0 +235 2.55 3.45 138.75 -0.0208603 0.0307928 0.0209021 0.00395318 -0.0306512 -0.00401619 0.0 +236 2.55 3.45 146.25 -0.0246671 -0.00894626 0.0246851 0.00351226 0.00893543 -0.0035253 0.0 +237 2.55 3.45 153.75 -0.0354818 -0.0611658 0.0352745 0.0074458 0.0613979 -0.00758451 0.0 +238 2.55 3.45 161.25 -0.0568268 -0.12175 0.0568015 0.016221 0.121744 -0.0162267 0.0 +239 2.55 3.45 168.75 -0.0825887 -0.177017 0.0826212 0.0265372 0.177062 -0.0266112 0.0 +240 2.55 3.45 176.25 -0.100362 -0.210215 0.100363 0.0334528 0.210225 -0.0334721 0.0 +241 2.55 3.55 3.75 -78.9919 44.1593 78.9919 272.44 -44.1593 -272.44 0.0 +242 2.55 3.55 11.25 -57.4405 35.3664 57.4405 160.985 -35.3664 -160.985 0.0 +243 2.55 3.55 18.75 -30.4327 22.6574 30.4327 59.1789 -22.6574 -59.1789 0.0 +244 2.55 3.55 26.25 -11.3918 11.2259 11.3918 13.1796 -11.2259 -13.1796 0.0 +245 2.55 3.55 33.75 -2.72329 3.8781 2.7233 1.57893 -3.87813 -1.57891 0.0 +246 2.55 3.55 41.25 -0.349405 0.648596 0.349417 0.278163 -0.648614 -0.278143 0.0 +247 2.55 3.55 48.75 -0.0951034 -0.129698 0.0950942 0.144918 0.129704 -0.144907 0.0 +248 2.55 3.55 56.25 -0.0904303 -0.132617 0.0904025 -0.000622582 0.13263 0.000613981 0.0 +249 2.55 3.55 63.75 -0.0258623 -0.110734 0.0258374 -0.0284537 0.110749 0.0284432 0.0 +250 2.55 3.55 71.25 0.0130336 -0.121492 -0.0129784 -0.00958708 0.121519 0.0095864 0.0 +251 2.55 3.55 78.75 0.00216509 -0.0947175 -0.00212262 -0.00146876 0.0947229 0.0014866 0.0 +252 2.55 3.55 86.25 -0.0193046 -0.044118 0.0193305 0.000949206 0.0440946 -0.000951166 0.0 +253 2.55 3.55 93.75 -0.0204643 -0.00523306 0.0203838 0.00128217 0.00527308 -0.00128181 0.0 +254 2.55 3.55 101.25 -0.00377452 0.0162146 0.00374878 -0.00203826 -0.0161878 0.00203335 0.0 +255 2.55 3.55 108.75 0.0103855 0.0283922 -0.0103646 -0.00590355 -0.0284035 0.0059097 0.0 +256 2.55 3.55 116.25 0.0107496 0.0355757 -0.0107487 -0.00748469 -0.0355346 0.00746902 0.0 +257 2.55 3.55 123.75 0.00390058 0.039282 -0.00394485 -0.00836899 -0.0392871 0.00836606 0.0 +258 2.55 3.55 131.25 0.00302193 0.0417158 -0.00303302 -0.0116169 -0.0417316 0.0116365 0.0 +259 2.55 3.55 138.75 0.0132809 0.0429902 -0.0132594 -0.0177461 -0.0429583 0.0177101 0.0 +260 2.55 3.55 146.25 0.0286472 0.040296 -0.0286569 -0.0242602 -0.0403293 0.0242749 0.0 +261 2.55 3.55 153.75 0.0390318 0.0306394 -0.039064 -0.0280589 -0.0306446 0.028059 0.0 +262 2.55 3.55 161.25 0.0394296 0.0147367 -0.0394103 -0.0279664 -0.0146398 0.0279268 0.0 +263 2.55 3.55 168.75 0.0324474 -0.00226708 -0.0324635 -0.0253945 0.00220765 0.0254368 0.0 +264 2.55 3.55 176.25 0.025994 -0.013213 -0.0260157 -0.0230769 0.0131899 0.0230844 0.0 +265 2.55 3.65 3.75 -10.2735 4.76327 10.2735 20.7201 -4.76327 -20.7201 0.0 +266 2.55 3.65 11.25 -7.59679 3.74938 7.59679 12.2716 -3.74938 -12.2716 0.0 +267 2.55 3.65 18.75 -4.13373 2.33527 4.13373 4.48711 -2.33527 -4.48711 0.0 +268 2.55 3.65 26.25 -1.60809 1.11951 1.60809 1.05798 -1.11951 -1.05798 0.0 +269 2.55 3.65 33.75 -0.426582 0.367384 0.426586 0.237798 -0.367384 -0.237797 0.0 +270 2.55 3.65 41.25 -0.0923209 0.0481501 0.0923222 0.103116 -0.0481492 -0.103116 0.0 +271 2.55 3.65 48.75 -0.0403716 -0.019861 0.0403721 0.0289419 0.0198609 -0.0289447 0.0 +272 2.55 3.65 56.25 -0.0181588 -0.0104242 0.018157 -0.0111623 0.010423 0.0111643 0.0 +273 2.55 3.65 63.75 0.0026199 -0.0022943 -0.00261809 -0.0112332 0.00229608 0.011234 0.0 +274 2.55 3.65 71.25 0.00555137 -0.00054609 -0.00554585 -0.000901878 0.000542356 0.000901001 0.0 +275 2.55 3.65 78.75 -0.00349077 0.00348611 0.00348128 0.00388527 -0.0034823 -0.00388526 0.0 +276 2.55 3.65 86.25 -0.00986876 0.00759326 0.00986851 0.00334418 -0.00759374 -0.00334402 0.0 +277 2.55 3.65 93.75 -0.00861045 0.00735376 0.00861467 0.000656354 -0.00735444 -0.000656104 0.0 +278 2.55 3.65 101.25 -0.00414524 0.00377925 0.00414321 -0.00212584 -0.00377449 0.00212561 0.0 +279 2.55 3.65 108.75 -0.00169477 0.000439308 0.00169322 -0.00396038 -0.000442715 0.00396063 0.0 +280 2.55 3.65 116.25 -0.00201868 -0.000719026 0.00201981 -0.0047974 0.000729887 0.00479364 0.0 +281 2.55 3.65 123.75 -0.0022902 0.000305603 0.00229371 -0.00529632 -0.000307648 0.00529785 0.0 +282 2.55 3.65 131.25 6.5658e-05 0.00293592 -6.35245e-05 -0.00609152 -0.00294529 0.00609664 0.0 +283 2.55 3.65 138.75 0.00496513 0.00653024 -0.0049612 -0.00723673 -0.00653204 0.00723752 0.0 +284 2.55 3.65 146.25 0.0100844 0.0103162 -0.0100899 -0.0082568 -0.0103134 0.00825192 0.0 +285 2.55 3.65 153.75 0.013056 0.0135185 -0.0130568 -0.00863418 -0.0135186 0.00863497 0.0 +286 2.55 3.65 161.25 0.0130732 0.0156428 -0.013084 -0.00825131 -0.0156473 0.00825326 0.0 +287 2.55 3.65 168.75 0.0112797 0.0167179 -0.0112803 -0.00747124 -0.0167224 0.00747658 0.0 +288 2.55 3.65 176.25 0.0096521 0.0170897 -0.00964981 -0.00687278 -0.0170876 0.00686999 0.0 +289 2.65 2.65 3.75 -850.9 -766.532 850.9 24206.3 766.532 -24206.3 0.0 +290 2.65 2.65 11.25 -532.471 -481.095 532.471 5590.03 481.095 -5590.03 0.0 +291 2.65 2.65 18.75 -284.368 -250.886 284.368 1834.01 250.886 -1834.01 0.0 +292 2.65 2.65 26.25 -129.075 -106.598 129.075 555.283 106.598 -555.283 0.0 +293 2.65 2.65 33.75 -49.9399 -36.5293 49.9399 138.315 36.5293 -138.315 0.0 +294 2.65 2.65 41.25 -16.5129 -10.4032 16.5129 27.2019 10.4033 -27.2019 0.0 +295 2.65 2.65 48.75 -4.46528 -2.7076 4.46539 4.42411 2.70761 -4.42411 0.0 +296 2.65 2.65 56.25 -0.741021 -0.597377 0.741105 0.305553 0.597353 -0.305549 0.0 +297 2.65 2.65 63.75 0.104606 0.0237456 -0.104669 -0.572899 -0.0237444 0.572894 0.0 +298 2.65 2.65 71.25 0.139391 0.125946 -0.139515 -0.571709 -0.125927 0.571698 0.0 +299 2.65 2.65 78.75 0.104219 0.102894 -0.104113 -0.382665 -0.102882 0.382676 0.0 +300 2.65 2.65 86.25 0.157087 0.145852 -0.157232 -0.297431 -0.1459 0.297442 0.0 +301 2.65 2.65 93.75 0.240407 0.236266 -0.240541 -0.278188 -0.236265 0.27819 0.0 +302 2.65 2.65 101.25 0.275238 0.279291 -0.274988 -0.229799 -0.27936 0.229805 0.0 +303 2.65 2.65 108.75 0.227141 0.229356 -0.227284 -0.134968 -0.229285 0.134932 0.0 +304 2.65 2.65 116.25 0.115892 0.112442 -0.115868 -0.0291153 -0.112422 0.0291383 0.0 +305 2.65 2.65 123.75 -0.010285 -0.0162117 0.0103961 0.0530193 0.0161505 -0.0529991 0.0 +306 2.65 2.65 131.25 -0.1188 -0.124881 0.118875 0.104487 0.124916 -0.104492 0.0 +307 2.65 2.65 138.75 -0.223058 -0.229731 0.223369 0.145724 0.229737 -0.145685 0.0 +308 2.65 2.65 146.25 -0.368701 -0.376052 0.368859 0.205686 0.3761 -0.205685 0.0 +309 2.65 2.65 153.75 -0.587337 -0.594228 0.587423 0.299459 0.594372 -0.299509 0.0 +310 2.65 2.65 161.25 -0.859864 -0.865453 0.859988 0.416736 0.865344 -0.416708 0.0 +311 2.65 2.65 168.75 -1.11756 -1.12156 1.11739 0.526563 1.12147 -0.526502 0.0 +312 2.65 2.65 176.25 -1.2751 -1.27817 1.27506 0.593124 1.2781 -0.593061 0.0 +313 2.65 2.75 3.75 -835.182 -772.341 835.182 21905.9 772.341 -21905.9 0.0 +314 2.65 2.75 11.25 -513.694 -481.73 513.694 5723.06 481.73 -5723.06 0.0 +315 2.65 2.75 18.75 -261.725 -240.477 261.725 1876.13 240.477 -1876.13 0.0 +316 2.65 2.75 26.25 -110.82 -93.042 110.82 555.313 93.0419 -555.313 0.0 +317 2.65 2.75 33.75 -39.2645 -26.3478 39.2645 131.64 26.3478 -131.64 0.0 +318 2.65 2.75 41.25 -11.8937 -5.23302 11.8938 23.3148 5.233 -23.3148 0.0 +319 2.65 2.75 48.75 -3.05671 -0.993603 3.05657 3.14407 0.993621 -3.14406 0.0 +320 2.65 2.75 56.25 -0.550099 -0.358525 0.550227 0.163089 0.358498 -0.163112 0.0 +321 2.65 2.75 63.75 -0.0205929 -0.0842747 0.0205161 -0.407995 0.0842518 0.407956 0.0 +322 2.65 2.75 71.25 0.00336668 0.0345981 -0.00349936 -0.421497 -0.0346157 0.421506 0.0 +323 2.65 2.75 78.75 0.0253619 0.0593683 -0.0255874 -0.3063 -0.0593531 0.306294 0.0 +324 2.65 2.75 86.25 0.119248 0.114375 -0.119305 -0.255219 -0.114285 0.255229 0.0 +325 2.65 2.75 93.75 0.216069 0.202657 -0.216049 -0.241183 -0.202733 0.241187 0.0 +326 2.65 2.75 101.25 0.255314 0.253769 -0.255148 -0.201128 -0.253738 0.20113 0.0 +327 2.65 2.75 108.75 0.214511 0.222856 -0.214525 -0.121963 -0.222827 0.121965 0.0 +328 2.65 2.75 116.25 0.110921 0.123065 -0.110896 -0.0278056 -0.123096 0.027821 0.0 +329 2.65 2.75 123.75 -0.0119931 0.00216882 0.0119589 0.0508731 -0.00227192 -0.0508543 0.0 +330 2.65 2.75 131.25 -0.119575 -0.104676 0.119555 0.102045 0.10466 -0.10204 0.0 +331 2.65 2.75 138.75 -0.220603 -0.205567 0.220425 0.139953 0.205519 -0.139884 0.0 +332 2.65 2.75 146.25 -0.354901 -0.339963 0.354916 0.191191 0.340301 -0.191375 0.0 +333 2.65 2.75 153.75 -0.553233 -0.537535 0.553233 0.27207 0.537478 -0.272051 0.0 +334 2.65 2.75 161.25 -0.800056 -0.783314 0.80005 0.37528 0.783269 -0.375219 0.0 +335 2.65 2.75 168.75 -1.03362 -1.01636 1.03349 0.473222 1.01637 -0.473237 0.0 +336 2.65 2.75 176.25 -1.17633 -1.15917 1.17626 0.532997 1.15938 -0.533141 0.0 +337 2.65 2.85 3.75 -760.67 -716.576 760.67 16548.2 716.576 -16548.2 0.0 +338 2.65 2.85 11.25 -468.577 -458.252 468.577 5405.79 458.252 -5405.79 0.0 +339 2.65 2.85 18.75 -228.053 -226.497 228.053 1802.81 226.497 -1802.81 0.0 +340 2.65 2.85 26.25 -89.1662 -84.2911 89.1663 523.528 84.2911 -523.528 0.0 +341 2.65 2.85 33.75 -28.2756 -21.661 28.2757 117.98 21.661 -117.98 0.0 +342 2.65 2.85 41.25 -7.65848 -3.29349 7.65854 18.6016 3.29345 -18.6016 0.0 +343 2.65 2.85 48.75 -1.87861 -0.425521 1.87855 1.91342 0.425548 -1.91344 0.0 +344 2.65 2.85 56.25 -0.359414 -0.305329 0.359467 0.0202548 0.305288 -0.0202399 0.0 +345 2.65 2.85 63.75 -0.0454417 -0.184956 0.0452869 -0.276244 0.184875 0.276227 0.0 +346 2.65 2.85 71.25 -0.03328 -0.0799704 0.0333967 -0.292345 0.0799691 0.292342 0.0 +347 2.65 2.85 78.75 0.00639036 -0.0189859 -0.006449 -0.241547 0.0190153 0.241563 0.0 +348 2.65 2.85 86.25 0.102068 0.0661345 -0.102071 -0.222916 -0.0661619 0.222919 0.0 +349 2.65 2.85 93.75 0.188697 0.163968 -0.188721 -0.21219 -0.163988 0.212191 0.0 +350 2.65 2.85 101.25 0.22364 0.220472 -0.223377 -0.175014 -0.220473 0.175017 0.0 +351 2.65 2.85 108.75 0.190707 0.202776 -0.190758 -0.106231 -0.202789 0.106247 0.0 +352 2.65 2.85 116.25 0.101112 0.120884 -0.101059 -0.0239388 -0.120905 0.0239052 0.0 +353 2.65 2.85 123.75 -0.00702613 0.0160528 0.00714713 0.0453335 -0.0161052 -0.0453373 0.0 +354 2.65 2.85 131.25 -0.101648 -0.0781261 0.101387 0.088976 0.0781448 -0.0889832 0.0 +355 2.65 2.85 138.75 -0.188841 -0.166223 0.188892 0.119526 0.166146 -0.119525 0.0 +356 2.65 2.85 146.25 -0.306982 -0.284004 0.307036 0.162419 0.283915 -0.162404 0.0 +357 2.65 2.85 153.75 -0.48517 -0.45968 0.485006 0.233515 0.459501 -0.233437 0.0 +358 2.65 2.85 161.25 -0.709159 -0.680393 0.709041 0.326165 0.680286 -0.32613 0.0 +359 2.65 2.85 168.75 -0.921682 -0.890267 0.921631 0.414752 0.89028 -0.414752 0.0 +360 2.65 2.85 176.25 -1.05193 -1.01912 1.05183 0.468933 1.01918 -0.469002 0.0 +361 2.65 2.95 3.75 -652.979 -606.124 652.978 12075.3 606.124 -12075.3 0.0 +362 2.65 2.95 11.25 -403.824 -399.31 403.824 4765.3 399.31 -4765.3 0.0 +363 2.65 2.95 18.75 -187.153 -198.273 187.153 1631.6 198.273 -1631.6 0.0 +364 2.65 2.95 26.25 -66.1445 -73.0744 66.1444 465.712 73.0744 -465.712 0.0 +365 2.65 2.95 33.75 -17.7622 -18.4285 17.7623 99.7601 18.4285 -99.7601 0.0 +366 2.65 2.95 41.25 -3.98999 -2.7919 3.99011 13.9822 2.7919 -13.9822 0.0 +367 2.65 2.95 48.75 -0.962247 -0.422871 0.962286 1.0033 0.422848 -1.00329 0.0 +368 2.65 2.95 56.25 -0.219175 -0.313473 0.218952 -0.0875255 0.313511 0.0875306 0.0 +369 2.65 2.95 63.75 -0.044678 -0.231589 0.0446919 -0.204831 0.231605 0.204882 0.0 +370 2.65 2.95 71.25 -0.0396615 -0.157633 0.0394157 -0.207168 0.15761 0.207183 0.0 +371 2.65 2.95 78.75 0.000394622 -0.0817809 -0.000419789 -0.190543 0.0817504 0.19052 0.0 +372 2.65 2.95 86.25 0.0846769 0.0240518 -0.0846618 -0.190014 -0.0241096 0.19001 0.0 +373 2.65 2.95 93.75 0.158081 0.12764 -0.157821 -0.180645 -0.127555 0.18064 0.0 +374 2.65 2.95 101.25 0.189421 0.189324 -0.189292 -0.147352 -0.189274 0.147358 0.0 +375 2.65 2.95 108.75 0.164176 0.186927 -0.163977 -0.0895019 -0.186952 0.0894983 0.0 +376 2.65 2.95 116.25 0.0871432 0.125207 -0.0868669 -0.0199561 -0.125352 0.0199732 0.0 +377 2.65 2.95 123.75 -0.0085628 0.0365974 0.00860248 0.0390423 -0.0363033 -0.0391 0.0 +378 2.65 2.95 131.25 -0.0923265 -0.0482959 0.0922008 0.0760854 0.0485513 -0.0762079 0.0 +379 2.65 2.95 138.75 -0.169808 -0.131174 0.169899 0.102608 0.131327 -0.10265 0.0 +380 2.65 2.95 146.25 -0.277395 -0.242796 0.277398 0.141394 0.242783 -0.141344 0.0 +381 2.65 2.95 153.75 -0.440501 -0.407224 0.440757 0.205828 0.407133 -0.205796 0.0 +382 2.65 2.95 161.25 -0.645643 -0.610905 0.6459 0.288976 0.611281 -0.289147 0.0 +383 2.65 2.95 168.75 -0.840165 -0.802999 0.840107 0.367747 0.802858 -0.367578 0.0 +384 2.65 2.95 176.25 -0.958665 -0.920072 0.958486 0.415643 0.920088 -0.415608 0.0 +385 2.65 3.05 3.75 -535.332 -454.934 535.332 8760.56 454.934 -8760.56 0.0 +386 2.65 3.05 11.25 -331.494 -306.561 331.494 3960.52 306.561 -3960.52 0.0 +387 2.65 3.05 18.75 -145.715 -152.648 145.715 1393.82 152.648 -1393.82 0.0 +388 2.65 3.05 26.25 -45.1283 -55.696 45.1283 390.806 55.696 -390.806 0.0 +389 2.65 3.05 33.75 -9.03711 -13.9981 9.03714 79.4908 13.9982 -79.4908 0.0 +390 2.65 3.05 41.25 -1.22467 -2.35412 1.22472 9.98439 2.35415 -9.98442 0.0 +391 2.65 3.05 48.75 -0.350067 -0.498445 0.350201 0.482424 0.498397 -0.482377 0.0 +392 2.65 3.05 56.25 -0.145634 -0.296881 0.145625 -0.138328 0.296866 0.138253 0.0 +393 2.65 3.05 63.75 -0.0512301 -0.23938 0.0510461 -0.169789 0.239391 0.169777 0.0 +394 2.65 3.05 71.25 -0.0475131 -0.216688 0.0475797 -0.14914 0.21666 0.149179 0.0 +395 2.65 3.05 78.75 -0.0100019 -0.142708 0.0103876 -0.145447 0.142686 0.145453 0.0 +396 2.65 3.05 86.25 0.0629653 -0.0219697 -0.0630473 -0.155105 0.0219773 0.155114 0.0 +397 2.65 3.05 93.75 0.12664 0.0897788 -0.12658 -0.148638 -0.0897681 0.148648 0.0 +398 2.65 3.05 101.25 0.15677 0.161102 -0.15675 -0.121208 -0.161149 0.121229 0.0 +399 2.65 3.05 108.75 0.13765 0.175494 -0.137742 -0.0739815 -0.175467 0.0739654 0.0 +400 2.65 3.05 116.25 0.0719305 0.132074 -0.0719425 -0.0160117 -0.13204 0.0159808 0.0 +401 2.65 3.05 123.75 -0.0105205 0.0566312 0.0107171 0.0339816 -0.05635 -0.0341083 0.0 +402 2.65 3.05 131.25 -0.0825435 -0.0218324 0.0823353 0.0659987 0.0216974 -0.0659344 0.0 +403 2.65 3.05 138.75 -0.148847 -0.101917 0.149043 0.0897675 0.101945 -0.0897216 0.0 +404 2.65 3.05 146.25 -0.242919 -0.209388 0.242954 0.124121 0.209336 -0.12419 0.0 +405 2.65 3.05 153.75 -0.386426 -0.362461 0.386542 0.179324 0.362431 -0.179385 0.0 +406 2.65 3.05 161.25 -0.566176 -0.547526 0.566298 0.248855 0.547163 -0.248731 0.0 +407 2.65 3.05 168.75 -0.735042 -0.718844 0.735426 0.313712 0.718869 -0.313772 0.0 +408 2.65 3.05 176.25 -0.837976 -0.822371 0.837847 0.352792 0.822288 -0.352789 0.0 +409 2.65 3.15 3.75 -427.355 -285.2 427.355 6295.52 285.2 -6295.52 0.0 +410 2.65 3.15 11.25 -265.153 -194.02 265.153 3125.25 194.02 -3125.25 0.0 +411 2.65 3.15 18.75 -111.202 -95.1726 111.202 1125.35 95.1726 -1125.35 0.0 +412 2.65 3.15 26.25 -29.6517 -33.3268 29.6517 308.747 33.3268 -308.747 0.0 +413 2.65 3.15 33.75 -3.36664 -8.0325 3.36662 59.3209 8.03251 -59.3209 0.0 +414 2.65 3.15 41.25 0.370119 -1.56003 -0.370195 6.73765 1.55997 -6.73765 0.0 +415 2.65 3.15 48.75 -0.0293352 -0.505394 0.0293329 0.248728 0.505409 -0.248723 0.0 +416 2.65 3.15 56.25 -0.105843 -0.270835 0.105751 -0.145765 0.270743 0.145803 0.0 +417 2.65 3.15 63.75 -0.0513317 -0.246866 0.0514241 -0.147382 0.246878 0.147378 0.0 +418 2.65 3.15 71.25 -0.0501128 -0.275431 0.04993 -0.104001 0.275378 0.10398 0.0 +419 2.65 3.15 78.75 -0.0164568 -0.206434 0.0163659 -0.104649 0.206543 0.1047 0.0 +420 2.65 3.15 86.25 0.0461547 -0.0733023 -0.0462363 -0.11996 0.0733698 0.119964 0.0 +421 2.65 3.15 93.75 0.0990004 0.0476562 -0.0990613 -0.115936 -0.0477138 0.115929 0.0 +422 2.65 3.15 101.25 0.124404 0.129396 -0.124624 -0.0943304 -0.129428 0.0943415 0.0 +423 2.65 3.15 108.75 0.110989 0.159191 -0.110618 -0.0576564 -0.159015 0.0576196 0.0 +424 2.65 3.15 116.25 0.0587243 0.132639 -0.0587968 -0.0121644 -0.132721 0.0121638 0.0 +425 2.65 3.15 123.75 -0.00573936 0.071577 0.00545961 0.0272095 -0.0714379 -0.0272703 0.0 +426 2.65 3.15 131.25 -0.0595329 0.00372402 0.0596701 0.0523942 -0.00377444 -0.0523371 0.0 +427 2.65 3.15 138.75 -0.110101 -0.0680458 0.109914 0.0711533 0.0677435 -0.071079 0.0 +428 2.65 3.15 146.25 -0.183484 -0.162436 0.183193 0.097899 0.16187 -0.0976014 0.0 +429 2.65 3.15 153.75 -0.297201 -0.294331 0.297328 0.13994 0.294371 -0.13996 0.0 +430 2.65 3.15 161.25 -0.440022 -0.45053 0.440364 0.191997 0.45081 -0.192128 0.0 +431 2.65 3.15 168.75 -0.573979 -0.593135 0.574118 0.23999 0.593252 -0.240079 0.0 +432 2.65 3.15 176.25 -0.655332 -0.678506 0.655274 0.268714 0.678407 -0.2687 0.0 +433 2.65 3.25 3.75 -343.28 -124.107 343.28 4445.63 124.107 -4445.63 0.0 +434 2.65 3.25 11.25 -215.576 -82.5722 215.576 2350.25 82.5722 -2350.25 0.0 +435 2.65 3.25 18.75 -89.1611 -36.9434 89.1611 858.678 36.9434 -858.678 0.0 +436 2.65 3.25 26.25 -21.9322 -10.3742 21.9323 228.574 10.3742 -228.574 0.0 +437 2.65 3.25 33.75 -1.31403 -1.72106 1.31403 40.8621 1.72107 -40.8621 0.0 +438 2.65 3.25 41.25 0.795648 -0.575902 -0.795697 4.14894 0.57591 -4.14896 0.0 +439 2.65 3.25 48.75 0.0763357 -0.456169 -0.076398 0.148004 0.456256 -0.148065 0.0 +440 2.65 3.25 56.25 -0.063689 -0.249401 0.0637021 -0.13222 0.249531 0.132205 0.0 +441 2.65 3.25 63.75 -0.0358554 -0.249745 0.0359111 -0.121502 0.249724 0.121491 0.0 +442 2.65 3.25 71.25 -0.0428349 -0.311738 0.0428194 -0.0638131 0.311734 0.0637754 0.0 +443 2.65 3.25 78.75 -0.0147141 -0.250034 0.0144509 -0.0678206 0.250075 0.0677768 0.0 +444 2.65 3.25 86.25 0.0352991 -0.11503 -0.0353655 -0.0843742 0.115078 0.0843892 0.0 +445 2.65 3.25 93.75 0.0720144 0.00909964 -0.0719435 -0.0804605 -0.0090581 0.0804531 0.0 +446 2.65 3.25 101.25 0.0888655 0.0989902 -0.0887325 -0.0647524 -0.0990223 0.0647474 0.0 +447 2.65 3.25 108.75 0.0799171 0.143831 -0.0801351 -0.0405357 -0.143865 0.0405626 0.0 +448 2.65 3.25 116.25 0.0463151 0.13551 -0.0462271 -0.0103342 -0.135713 0.0104217 0.0 +449 2.65 3.25 123.75 0.00341445 0.0908375 -0.00340467 0.0161085 -0.0908948 -0.0161034 0.0 +450 2.65 3.25 131.25 -0.0328772 0.0354199 0.0327234 0.0332693 -0.0353895 -0.0333584 0.0 +451 2.65 3.25 138.75 -0.0675007 -0.0244596 0.0674606 0.0466046 0.0245277 -0.0466162 0.0 +452 2.65 3.25 146.25 -0.119973 -0.102745 0.119865 0.0658272 0.102678 -0.0658241 0.0 +453 2.65 3.25 153.75 -0.201674 -0.208813 0.202075 0.0954721 0.209073 -0.0955902 0.0 +454 2.65 3.25 161.25 -0.304347 -0.332116 0.304539 0.131641 0.332258 -0.131649 0.0 +455 2.65 3.25 168.75 -0.400265 -0.443353 0.400058 0.164689 0.443498 -0.164816 0.0 +456 2.65 3.25 176.25 -0.458148 -0.509414 0.458013 0.184384 0.509501 -0.184446 0.0 +457 2.65 3.35 3.75 -278.227 3.35188 278.227 2946.21 -3.35188 -2946.21 0.0 +458 2.65 3.35 11.25 -180.202 7.30679 180.202 1622.2 -7.30679 -1622.2 0.0 +459 2.65 3.35 18.75 -77.9402 10.1339 77.9402 594.724 -10.1339 -594.724 0.0 +460 2.65 3.35 26.25 -20.9467 8.02501 20.9466 151.361 -8.02502 -151.361 0.0 +461 2.65 3.35 33.75 -2.25835 3.3951 2.25826 24.3523 -3.39512 -24.3522 0.0 +462 2.65 3.35 41.25 0.363524 0.335418 -0.363448 2.07799 -0.335341 -2.07804 0.0 +463 2.65 3.35 48.75 0.0599237 -0.367988 -0.059957 0.0931953 0.367953 -0.0931855 0.0 +464 2.65 3.35 56.25 -0.0236982 -0.242143 0.0236458 -0.098598 0.242167 0.0985908 0.0 +465 2.65 3.35 63.75 -0.0239201 -0.250568 0.023879 -0.0793347 0.250659 0.0793004 0.0 +466 2.65 3.35 71.25 -0.0368509 -0.319915 0.0367806 -0.0239745 0.319926 0.0239988 0.0 +467 2.65 3.35 78.75 -0.0110244 -0.268487 0.0110139 -0.0344337 0.268438 0.0344165 0.0 +468 2.65 3.35 86.25 0.0245226 -0.144794 -0.024666 -0.0497857 0.144602 0.0497966 0.0 +469 2.65 3.35 93.75 0.0424081 -0.0251599 -0.0424651 -0.0453306 0.0251858 0.0453233 0.0 +470 2.65 3.35 101.25 0.04903 0.0707895 -0.0493151 -0.0359067 -0.0707318 0.0358776 0.0 +471 2.65 3.35 108.75 0.0471092 0.130164 -0.0471373 -0.0244748 -0.130189 0.0244837 0.0 +472 2.65 3.35 116.25 0.0314376 0.139837 -0.0314698 -0.00916072 -0.139805 0.00913728 0.0 +473 2.65 3.35 123.75 0.00660309 0.109671 -0.00661976 0.00590828 -0.109418 -0.00599612 0.0 +474 2.65 3.35 131.25 -0.0184331 0.0620534 0.0189306 0.0173272 -0.0619207 -0.0174002 0.0 +475 2.65 3.35 138.75 -0.0453275 0.00760214 0.0452428 0.0275525 -0.00734601 -0.027681 0.0 +476 2.65 3.35 146.25 -0.082266 -0.0599492 0.082171 0.0416578 0.0599927 -0.0416724 0.0 +477 2.65 3.35 153.75 -0.136274 -0.146184 0.136402 0.0620795 0.146055 -0.0619743 0.0 +478 2.65 3.35 161.25 -0.202661 -0.24297 0.20278 0.086379 0.243041 -0.0864087 0.0 +479 2.65 3.35 168.75 -0.264667 -0.328848 0.264622 0.108466 0.328816 -0.108439 0.0 +480 2.65 3.35 176.25 -0.302166 -0.379469 0.302333 0.121649 0.379451 -0.121585 0.0 +481 2.65 3.45 3.75 -181.094 56.5768 181.094 1415.07 -56.5768 -1415.07 0.0 +482 2.65 3.45 11.25 -122.646 43.7184 122.646 798.081 -43.7184 -798.081 0.0 +483 2.65 3.45 18.75 -57.6293 27.3547 57.6292 289.903 -27.3547 -289.903 0.0 +484 2.65 3.45 26.25 -18.2701 13.6208 18.2701 69.1213 -13.6207 -69.1213 0.0 +485 2.65 3.45 33.75 -3.43227 4.75555 3.43223 9.49818 -4.75554 -9.49816 0.0 +486 2.65 3.45 41.25 -0.262119 0.743592 0.262138 0.642703 -0.743569 -0.64265 0.0 +487 2.65 3.45 48.75 -0.0206249 -0.220801 0.0206949 0.0833427 0.220803 -0.0833703 0.0 +488 2.65 3.45 56.25 -0.0278092 -0.219147 0.0277268 -0.0418895 0.219207 0.0419362 0.0 +489 2.65 3.45 63.75 -0.0302865 -0.221675 0.0303371 -0.0292143 0.221725 0.0292088 0.0 +490 2.65 3.45 71.25 -0.0283973 -0.257992 0.0284536 0.00362643 0.257937 -0.00359012 0.0 +491 2.65 3.45 78.75 -0.00583895 -0.217814 0.00603552 -0.0105431 0.217741 0.0105389 0.0 +492 2.65 3.45 86.25 0.0119324 -0.129526 -0.0119649 -0.0224338 0.129557 0.0224452 0.0 +493 2.65 3.45 93.75 0.0144366 -0.0428903 -0.0145475 -0.0187179 0.0429014 0.0187299 0.0 +494 2.65 3.45 101.25 0.0149629 0.0297917 -0.015042 -0.0130715 -0.0298841 0.013074 0.0 +495 2.65 3.45 108.75 0.0176727 0.0802808 -0.0176481 -0.00859687 -0.0801128 0.00854075 0.0 +496 2.65 3.45 116.25 0.0142801 0.0968509 -0.0142142 -0.00275531 -0.0968446 0.00279613 0.0 +497 2.65 3.45 123.75 0.00274599 0.0822463 -0.00285046 0.00385754 -0.0822624 -0.00387098 0.0 +498 2.65 3.45 131.25 -0.0115459 0.0508246 0.0116421 0.00941126 -0.0506893 -0.00950556 0.0 +499 2.65 3.45 138.75 -0.0256544 0.0123774 0.0254092 0.0140698 -0.0124329 -0.0139752 0.0 +500 2.65 3.45 146.25 -0.0416502 -0.0338945 0.0416358 0.0199093 0.0339039 -0.0199382 0.0 +501 2.65 3.45 153.75 -0.06548 -0.0902951 0.0654101 0.02876 0.0902214 -0.0286754 0.0 +502 2.65 3.45 161.25 -0.0968618 -0.152516 0.096841 0.0402396 0.152761 -0.0403307 0.0 +503 2.65 3.45 168.75 -0.128132 -0.207768 0.128088 0.0514288 0.207796 -0.0514167 0.0 +504 2.65 3.45 176.25 -0.147889 -0.240577 0.147879 0.058392 0.24052 -0.0584226 0.0 +505 2.65 3.55 3.75 -77.1979 33.0526 77.1979 408.269 -33.0526 -408.269 0.0 +506 2.65 3.55 11.25 -54.4456 24.806 54.4456 233.071 -24.806 -233.071 0.0 +507 2.65 3.55 18.75 -27.4729 14.6982 27.4729 83.0823 -14.6982 -83.0823 0.0 +508 2.65 3.55 26.25 -9.74029 6.98034 9.74028 18.3878 -6.98034 -18.3878 0.0 +509 2.65 3.55 33.75 -2.26688 2.44976 2.26686 2.2212 -2.44975 -2.22122 0.0 +510 2.65 3.55 41.25 -0.338901 0.452784 0.338876 0.250018 -0.452783 -0.250042 0.0 +511 2.65 3.55 48.75 -0.085801 -0.0837087 0.0858276 0.0833161 0.0837009 -0.0833153 0.0 +512 2.65 3.55 56.25 -0.053787 -0.114074 0.0537453 -0.0208865 0.114083 0.0208809 0.0 +513 2.65 3.55 63.75 -0.0249841 -0.102636 0.0249818 -0.0169731 0.102618 0.0169814 0.0 +514 2.65 3.55 71.25 -0.00793484 -0.104993 0.0079199 0.00243536 0.104968 -0.00244121 0.0 +515 2.65 3.55 78.75 0.000477289 -0.083635 -0.000473373 -0.0028304 0.083634 0.00283354 0.0 +516 2.65 3.55 86.25 0.00225691 -0.0484377 -0.00227501 -0.00865479 0.0484012 0.00865592 0.0 +517 2.65 3.55 93.75 0.00072074 -0.0198074 -0.000659016 -0.00641186 0.0197662 0.00641637 0.0 +518 2.65 3.55 101.25 0.00112223 0.00094823 -0.0011259 -0.00217623 -0.000927796 0.00217226 0.0 +519 2.65 3.55 108.75 0.00303859 0.0169456 -0.0030474 0.000636489 -0.0170012 -0.000616911 0.0 +520 2.65 3.55 116.25 0.00293939 0.0254903 -0.00299498 0.00226534 -0.0254881 -0.00227427 0.0 +521 2.65 3.55 123.75 0.00105767 0.0250956 -0.00100249 0.00302411 -0.0251043 -0.00302286 0.0 +522 2.65 3.55 131.25 0.00089622 0.018822 -0.000861732 0.00254531 -0.0188028 -0.00256904 0.0 +523 2.65 3.55 138.75 0.00382565 0.0100627 -0.0038702 0.000936262 -0.0101195 -0.000921113 0.0 +524 2.65 3.55 146.25 0.00637878 -0.00112474 -0.0063611 -0.000499545 0.00116119 0.000462636 0.0 +525 2.65 3.55 153.75 0.00342379 -0.0163538 -0.00340327 -0.0001089 0.0163686 9.31942e-05 0.0 +526 2.65 3.55 161.25 -0.0063525 -0.0350349 0.00642576 0.00261085 0.0350954 -0.00266173 0.0 +527 2.65 3.55 168.75 -0.0193118 -0.0529521 0.01932 0.00641632 0.0530167 -0.00647477 0.0 +528 2.65 3.55 176.25 -0.0282729 -0.0640227 0.0283342 0.00913184 0.0640796 -0.00915341 0.0 +529 2.65 3.65 3.75 -9.07399 3.23181 9.07399 31.5979 -3.23181 -31.5979 0.0 +530 2.65 3.65 11.25 -6.54957 2.36668 6.54957 18.1922 -2.36668 -18.1922 0.0 +531 2.65 3.65 18.75 -3.41782 1.35636 3.41782 6.44075 -1.35636 -6.44075 0.0 +532 2.65 3.65 26.25 -1.25794 0.63761 1.25794 1.4388 -0.63761 -1.4388 0.0 +533 2.65 3.65 33.75 -0.314954 0.229217 0.314955 0.252105 -0.229219 -0.252103 0.0 +534 2.65 3.65 41.25 -0.0703285 0.0433984 0.0703295 0.0804037 -0.0433987 -0.080406 0.0 +535 2.65 3.65 48.75 -0.0346923 -0.00594178 0.0346905 0.0178914 0.00594136 -0.0178931 0.0 +536 2.65 3.65 56.25 -0.0178793 -0.00218658 0.0178826 -0.0109585 0.00218474 0.0109613 0.0 +537 2.65 3.65 63.75 -0.00296649 0.00371443 0.00296685 -0.0077863 -0.00371456 0.00778602 0.0 +538 2.65 3.65 71.25 0.00156936 0.00391538 -0.00157049 -0.000554586 -0.00391343 0.000556069 0.0 +539 2.65 3.65 78.75 4.72839e-05 0.00437901 -5.76159e-05 0.000766606 -0.00437852 -0.000767667 0.0 +540 2.65 3.65 86.25 -0.00150151 0.00465743 0.00150145 4.48359e-05 -0.00465746 -4.47759e-05 0.0 +541 2.65 3.65 93.75 -0.00154911 0.0023728 0.00155712 3.94444e-05 -0.00237267 -3.93568e-05 0.0 +542 2.65 3.65 101.25 -0.00102647 -0.00107232 0.0010322 0.000455843 0.00107411 -0.000456348 0.0 +543 2.65 3.65 108.75 -0.000931385 -0.00331098 0.000926423 0.000617065 0.00331642 -0.000619741 0.0 +544 2.65 3.65 116.25 -0.00125989 -0.00405896 0.00125662 0.000489735 0.00405917 -0.000489051 0.0 +545 2.65 3.65 123.75 -0.00119027 -0.00416793 0.00118127 0.00025776 0.00417216 -0.000258364 0.0 +546 2.65 3.65 131.25 2.02558e-06 -0.00385544 9.97877e-07 -5.65576e-05 0.00385538 5.6561e-05 0.0 +547 2.65 3.65 138.75 0.0019471 -0.0027434 -0.00193851 -0.000439961 0.00274576 0.000440451 0.0 +548 2.65 3.65 146.25 0.00340728 -0.000754999 -0.00340313 -0.000680537 0.000762165 0.000677165 0.0 +549 2.65 3.65 153.75 0.00324508 0.00162334 -0.00324525 -0.000497576 -0.00162245 0.000496814 0.0 +550 2.65 3.65 161.25 0.00132741 0.00369896 -0.00132849 0.000164919 -0.00371082 -0.000158918 0.0 +551 2.65 3.65 168.75 -0.00130947 0.00507786 0.00131187 0.00102227 -0.00507988 -0.00102051 0.0 +552 2.65 3.65 176.25 -0.00317672 0.00571563 0.00316942 0.00161776 -0.00571614 -0.00161842 0.0 +553 2.75 2.75 3.75 -953.112 -854.306 953.112 25981 854.306 -25981 0.0 +554 2.75 2.75 11.25 -539.051 -520.941 539.051 5855.95 520.941 -5855.95 0.0 +555 2.75 2.75 18.75 -242.983 -254.204 242.983 1824.66 254.204 -1824.66 0.0 +556 2.75 2.75 26.25 -83.2573 -94.4794 83.2573 502.272 94.4793 -502.272 0.0 +557 2.75 2.75 33.75 -20.5412 -24.7823 20.5412 104.828 24.7823 -104.828 0.0 +558 2.75 2.75 41.25 -3.9136 -4.29412 3.91362 14.9464 4.2941 -14.9465 0.0 +559 2.75 2.75 48.75 -1.12328 -0.873619 1.12322 1.93019 0.873624 -1.93018 0.0 +560 2.75 2.75 56.25 -0.514324 -0.496154 0.514312 0.391368 0.496221 -0.39134 0.0 +561 2.75 2.75 63.75 -0.164596 -0.213443 0.164691 -0.208447 0.213484 0.208481 0.0 +562 2.75 2.75 71.25 -0.041967 -0.0485499 0.0420123 -0.328452 0.0485135 0.328445 0.0 +563 2.75 2.75 78.75 0.00770861 0.0144404 -0.0076428 -0.256255 -0.0144125 0.25625 0.0 +564 2.75 2.75 86.25 0.090797 0.0907928 -0.090835 -0.225168 -0.0907865 0.225168 0.0 +565 2.75 2.75 93.75 0.181978 0.179759 -0.182045 -0.218388 -0.179673 0.218388 0.0 +566 2.75 2.75 101.25 0.225859 0.223811 -0.2259 -0.17996 -0.22375 0.17996 0.0 +567 2.75 2.75 108.75 0.197221 0.193022 -0.197213 -0.105534 -0.19316 0.105561 0.0 +568 2.75 2.75 116.25 0.109362 0.103419 -0.109316 -0.0211263 -0.10351 0.0211473 0.0 +569 2.75 2.75 123.75 0.00356169 -0.00337669 -0.00365545 0.0468134 0.00343037 -0.0468135 0.0 +570 2.75 2.75 131.25 -0.0899181 -0.097849 0.0896843 0.0904862 0.0978568 -0.090473 0.0 +571 2.75 2.75 138.75 -0.180752 -0.189165 0.180483 0.124806 0.189251 -0.124873 0.0 +572 2.75 2.75 146.25 -0.307245 -0.315227 0.307006 0.173842 0.315177 -0.173832 0.0 +573 2.75 2.75 153.75 -0.495888 -0.504071 0.495883 0.250885 0.504047 -0.250882 0.0 +574 2.75 2.75 161.25 -0.730452 -0.740638 0.730449 0.347741 0.740677 -0.347784 0.0 +575 2.75 2.75 168.75 -0.951281 -0.965256 0.9512 0.438629 0.965085 -0.438584 0.0 +576 2.75 2.75 176.25 -1.08583 -1.10279 1.08592 0.493743 1.10285 -0.493793 0.0 +577 2.75 2.85 3.75 -970.563 -775.744 970.563 23153.2 775.744 -23153.2 0.0 +578 2.75 2.85 11.25 -556.721 -474.097 556.721 5862.74 474.097 -5862.74 0.0 +579 2.75 2.85 18.75 -250.751 -224.584 250.751 1827.2 224.584 -1827.2 0.0 +580 2.75 2.85 26.25 -86.059 -77.5526 86.059 494.052 77.5526 -494.052 0.0 +581 2.75 2.85 33.75 -21.7848 -16.8577 21.7848 99.2767 16.8577 -99.2767 0.0 +582 2.75 2.85 41.25 -4.50961 -1.52272 4.5095 12.9376 1.52274 -12.9376 0.0 +583 2.75 2.85 48.75 -1.25065 -0.243785 1.25071 1.39261 0.243763 -1.39263 0.0 +584 2.75 2.85 56.25 -0.463066 -0.460087 0.463015 0.300113 0.460075 -0.300136 0.0 +585 2.75 2.85 63.75 -0.151187 -0.275288 0.151132 -0.144808 0.275348 0.144857 0.0 +586 2.75 2.85 71.25 -0.0749749 -0.110892 0.0749169 -0.249281 0.110829 0.249264 0.0 +587 2.75 2.85 78.75 -0.0201116 -0.0351113 0.0202283 -0.210984 0.0351362 0.210976 0.0 +588 2.75 2.85 86.25 0.0736389 0.0501401 -0.0736054 -0.194737 -0.0502144 0.194733 0.0 +589 2.75 2.85 93.75 0.160078 0.146192 -0.159898 -0.1879 -0.146241 0.187904 0.0 +590 2.75 2.85 101.25 0.200786 0.204303 -0.200728 -0.156391 -0.204259 0.156374 0.0 +591 2.75 2.85 108.75 0.17997 0.193028 -0.179585 -0.0955768 -0.192919 0.0955569 0.0 +592 2.75 2.85 116.25 0.103624 0.119278 -0.103941 -0.0221991 -0.119219 0.0221951 0.0 +593 2.75 2.85 123.75 0.00644177 0.0211333 -0.00659697 0.0394802 -0.0210367 -0.0394978 0.0 +594 2.75 2.85 131.25 -0.0803186 -0.0672129 0.080414 0.0781492 0.0671178 -0.0781413 0.0 +595 2.75 2.85 138.75 -0.161637 -0.148838 0.161505 0.105436 0.149111 -0.105534 0.0 +596 2.75 2.85 146.25 -0.270086 -0.257695 0.270083 0.14428 0.257823 -0.144344 0.0 +597 2.75 2.85 153.75 -0.43239 -0.421507 0.432363 0.208547 0.421587 -0.208591 0.0 +598 2.75 2.85 161.25 -0.634898 -0.628455 0.634872 0.291785 0.628448 -0.291789 0.0 +599 2.75 2.85 168.75 -0.826247 -0.825693 0.826352 0.370982 0.825733 -0.37098 0.0 +600 2.75 2.85 176.25 -0.943351 -0.946865 0.943117 0.419282 0.946914 -0.419356 0.0 +601 2.75 2.95 3.75 -897.538 -636.356 897.538 17274.5 636.356 -17274.5 0.0 +602 2.75 2.95 11.25 -527.594 -400.007 527.594 5426.93 400.007 -5426.93 0.0 +603 2.75 2.95 18.75 -234.856 -188.606 234.856 1719.6 188.606 -1719.6 0.0 +604 2.75 2.95 26.25 -78.0109 -63.1924 78.0109 457.632 63.1924 -457.632 0.0 +605 2.75 2.95 33.75 -18.5523 -12.6415 18.5523 88.2261 12.6415 -88.2261 0.0 +606 2.75 2.95 41.25 -3.43241 -0.788747 3.43237 10.3311 0.788758 -10.3311 0.0 +607 2.75 2.95 48.75 -0.834456 -0.199558 0.834517 0.799118 0.199613 -0.799125 0.0 +608 2.75 2.95 56.25 -0.273778 -0.463123 0.273749 0.148104 0.463143 -0.148167 0.0 +609 2.75 2.95 63.75 -0.103413 -0.318818 0.103504 -0.111608 0.31885 0.111645 0.0 +610 2.75 2.95 71.25 -0.0843263 -0.181793 0.0843793 -0.175312 0.181809 0.175287 0.0 +611 2.75 2.95 78.75 -0.0303993 -0.093494 0.0304044 -0.167209 0.0935528 0.167232 0.0 +612 2.75 2.95 86.25 0.0620423 0.00699782 -0.0622995 -0.169543 -0.00683051 0.169553 0.0 +613 2.75 2.95 93.75 0.136614 0.106217 -0.136678 -0.163514 -0.106191 0.163506 0.0 +614 2.75 2.95 101.25 0.17196 0.170249 -0.171903 -0.134812 -0.170364 0.13483 0.0 +615 2.75 2.95 108.75 0.15684 0.174342 -0.156924 -0.0828548 -0.174193 0.082802 0.0 +616 2.75 2.95 116.25 0.0926482 0.118695 -0.0927901 -0.0195911 -0.118646 0.0195826 0.0 +617 2.75 2.95 123.75 0.00849675 0.0355959 -0.00833828 0.0336514 -0.0356652 -0.0336479 0.0 +618 2.75 2.95 131.25 -0.0660839 -0.0418908 0.0662238 0.0659291 0.041797 -0.065883 0.0 +619 2.75 2.95 138.75 -0.134275 -0.114174 0.134106 0.0880437 0.114322 -0.0880806 0.0 +620 2.75 2.95 146.25 -0.227305 -0.21177 0.227027 0.121094 0.2116 -0.121002 0.0 +621 2.75 2.95 153.75 -0.368554 -0.358527 0.368374 0.177219 0.358663 -0.177335 0.0 +622 2.75 2.95 161.25 -0.546482 -0.542986 0.546711 0.250148 0.542877 -0.250051 0.0 +623 2.75 2.95 168.75 -0.715439 -0.717898 0.715379 0.319323 0.717937 -0.319304 0.0 +624 2.75 2.95 176.25 -0.817997 -0.824689 0.818295 0.361371 0.825027 -0.361574 0.0 +625 2.75 3.05 3.75 -770.161 -463.434 770.161 12393.7 463.434 -12393.7 0.0 +626 2.75 3.05 11.25 -462.237 -301.474 462.237 4693.99 301.474 -4693.99 0.0 +627 2.75 3.05 18.75 -201.495 -143.479 201.495 1525.17 143.479 -1525.17 0.0 +628 2.75 3.05 26.25 -62.9238 -47.8688 62.9238 399.794 47.8688 -399.794 0.0 +629 2.75 3.05 33.75 -12.9682 -9.61891 12.9682 73.8547 9.61892 -73.8547 0.0 +630 2.75 3.05 41.25 -1.7583 -0.85457 1.75829 7.81837 0.854518 -7.81834 0.0 +631 2.75 3.05 48.75 -0.381642 -0.346117 0.381587 0.40516 0.34605 -0.405176 0.0 +632 2.75 3.05 56.25 -0.163641 -0.440252 0.163583 0.0381865 0.440156 -0.0381959 0.0 +633 2.75 3.05 63.75 -0.103568 -0.332346 0.103485 -0.0833787 0.332372 0.0833554 0.0 +634 2.75 3.05 71.25 -0.101444 -0.24461 0.101602 -0.107568 0.244525 0.107546 0.0 +635 2.75 3.05 78.75 -0.038508 -0.1504 0.038783 -0.1224 0.150253 0.122395 0.0 +636 2.75 3.05 86.25 0.0496984 -0.0343332 -0.0494439 -0.140095 0.0345932 0.140101 0.0 +637 2.75 3.05 93.75 0.111297 0.06995 -0.111612 -0.135869 -0.0701637 0.135882 0.0 +638 2.75 3.05 101.25 0.140426 0.140943 -0.140275 -0.110396 -0.140778 0.110407 0.0 +639 2.75 3.05 108.75 0.12795 0.158778 -0.128322 -0.0664922 -0.158818 0.0664985 0.0 +640 2.75 3.05 116.25 0.0728381 0.119891 -0.0730793 -0.0130873 -0.11982 0.0129934 0.0 +641 2.75 3.05 123.75 0.000267345 0.0511317 -9.01598e-05 0.0314953 -0.0510922 -0.03149 0.0 +642 2.75 3.05 131.25 -0.063069 -0.0174406 0.0628665 0.0580034 0.0170276 -0.0579042 0.0 +643 2.75 3.05 138.75 -0.119018 -0.0842153 0.11903 0.0763319 0.0841315 -0.0762935 0.0 +644 2.75 3.05 146.25 -0.197865 -0.1752 0.197467 0.104414 0.175196 -0.104295 0.0 +645 2.75 3.05 153.75 -0.319615 -0.309756 0.319424 0.151665 0.309809 -0.15167 0.0 +646 2.75 3.05 161.25 -0.473103 -0.474577 0.47295 0.212121 0.474601 -0.212138 0.0 +647 2.75 3.05 168.75 -0.617392 -0.628077 0.617611 0.268756 0.627819 -0.268631 0.0 +648 2.75 3.05 176.25 -0.705354 -0.720636 0.705297 0.302934 0.720794 -0.303013 0.0 +649 2.75 3.15 3.75 -621.059 -283.307 621.059 8818.58 283.307 -8818.58 0.0 +650 2.75 3.15 11.25 -378.076 -190.869 378.076 3830.09 190.869 -3830.09 0.0 +651 2.75 3.15 18.75 -160.427 -92.3481 160.427 1277.7 92.3481 -1277.7 0.0 +652 2.75 3.15 26.25 -45.9966 -30.9532 45.9966 329.373 30.9532 -329.373 0.0 +653 2.75 3.15 33.75 -7.4094 -6.49374 7.40945 58.1344 6.49371 -58.1344 0.0 +654 2.75 3.15 41.25 -0.360268 -0.948504 0.360207 5.64912 0.948525 -5.64911 0.0 +655 2.75 3.15 48.75 -0.109681 -0.454359 0.109583 0.215632 0.454311 -0.215651 0.0 +656 2.75 3.15 56.25 -0.128581 -0.381055 0.12849 -0.024614 0.380998 0.0245607 0.0 +657 2.75 3.15 63.75 -0.107772 -0.325095 0.107852 -0.0656164 0.325178 0.0656213 0.0 +658 2.75 3.15 71.25 -0.10009 -0.293719 0.100061 -0.059479 0.293753 0.059475 0.0 +659 2.75 3.15 78.75 -0.036158 -0.200438 0.0358502 -0.0856231 0.200546 0.0856524 0.0 +660 2.75 3.15 86.25 0.0377439 -0.0742392 -0.037571 -0.109183 0.0742289 0.109172 0.0 +661 2.75 3.15 93.75 0.0838315 0.0343987 -0.0838656 -0.104987 -0.0344864 0.105012 0.0 +662 2.75 3.15 101.25 0.106057 0.110494 -0.106108 -0.0834801 -0.110598 0.0834927 0.0 +663 2.75 3.15 108.75 0.0968552 0.139813 -0.0967877 -0.0483794 -0.139765 0.0483448 0.0 +664 2.75 3.15 116.25 0.051391 0.115917 -0.0515763 -0.0060004 -0.116112 0.00610288 0.0 +665 2.75 3.15 123.75 -0.00713598 0.0613642 0.00718246 0.0286098 -0.0614779 -0.0285439 0.0 +666 2.75 3.15 131.25 -0.0559847 0.00396885 0.0560961 0.0483465 -0.00390007 -0.0484359 0.0 +667 2.75 3.15 138.75 -0.0990609 -0.0545791 0.0984659 0.061732 0.0548182 -0.0618343 0.0 +668 2.75 3.15 146.25 -0.159454 -0.134936 0.1595 0.0827794 0.135061 -0.08272 0.0 +669 2.75 3.15 153.75 -0.25524 -0.251075 0.255086 0.118141 0.251122 -0.118172 0.0 +670 2.75 3.15 161.25 -0.375288 -0.38964 0.375663 0.162894 0.389747 -0.16293 0.0 +671 2.75 3.15 168.75 -0.488486 -0.516392 0.488643 0.204424 0.516148 -0.204273 0.0 +672 2.75 3.15 176.25 -0.556839 -0.591689 0.556911 0.229329 0.591767 -0.229304 0.0 +673 2.75 3.25 3.75 -476.667 -121.19 476.667 6210.58 121.19 -6210.58 0.0 +674 2.75 3.25 11.25 -293.373 -85.8334 293.373 2968.1 85.8334 -2968.1 0.0 +675 2.75 3.25 18.75 -121.508 -42.7495 121.508 1012.27 42.7495 -1012.27 0.0 +676 2.75 3.25 26.25 -31.8786 -14.325 31.8786 255.334 14.325 -255.334 0.0 +677 2.75 3.25 33.75 -3.63288 -3.16546 3.63301 42.6516 3.16544 -42.6516 0.0 +678 2.75 3.25 41.25 0.315726 -0.793557 -0.315791 3.80727 0.79365 -3.8073 0.0 +679 2.75 3.25 48.75 -0.0242544 -0.460584 0.0242178 0.130581 0.460619 -0.130536 0.0 +680 2.75 3.25 56.25 -0.0991531 -0.30838 0.0992679 -0.0606306 0.308269 0.0605918 0.0 +681 2.75 3.25 63.75 -0.0775749 -0.303078 0.0775341 -0.058713 0.303134 0.0587059 0.0 +682 2.75 3.25 71.25 -0.0726081 -0.316404 0.0725509 -0.0320203 0.316355 0.0321083 0.0 +683 2.75 3.25 78.75 -0.0250871 -0.232854 0.0249036 -0.0576022 0.232759 0.0576201 0.0 +684 2.75 3.25 86.25 0.0262879 -0.108161 -0.0264355 -0.0771184 0.108011 0.0771155 0.0 +685 2.75 3.25 93.75 0.0560476 -0.000207024 -0.0559883 -0.0716051 0.000146475 0.0716155 0.0 +686 2.75 3.25 101.25 0.072468 0.0806321 -0.0723149 -0.0559611 -0.0805163 0.0559016 0.0 +687 2.75 3.25 108.75 0.0683282 0.121003 -0.068317 -0.0319853 -0.121 0.0319423 0.0 +688 2.75 3.25 116.25 0.0376756 0.112607 -0.037291 -0.00283035 -0.112703 0.00284452 0.0 +689 2.75 3.25 123.75 -0.00470402 0.0730337 0.00443815 0.0205484 -0.072994 -0.0206443 0.0 +690 2.75 3.25 131.25 -0.0393657 0.0275953 0.0393646 0.0333389 -0.02763 -0.0332308 0.0 +691 2.75 3.25 138.75 -0.0690594 -0.0208708 0.0692442 0.0419952 0.0207699 -0.0419967 0.0 +692 2.75 3.25 146.25 -0.111014 -0.0862657 0.110952 0.0560987 0.0863438 -0.0561322 0.0 +693 2.75 3.25 153.75 -0.176809 -0.178443 0.176496 0.0798216 0.178512 -0.0798746 0.0 +694 2.75 3.25 161.25 -0.258767 -0.286055 0.259122 0.109635 0.286421 -0.109773 0.0 +695 2.75 3.25 168.75 -0.336709 -0.383242 0.3365 0.137155 0.383371 -0.137249 0.0 +696 2.75 3.25 176.25 -0.383233 -0.440518 0.383304 0.153612 0.440294 -0.153402 0.0 +697 2.75 3.35 3.75 -341.385 1.74756 341.385 4134.74 -1.74757 -4134.74 0.0 +698 2.75 3.35 11.25 -213.168 -3.19693 213.168 2109.24 3.19691 -2109.24 0.0 +699 2.75 3.35 18.75 -87.8275 -2.99417 87.8276 729.622 2.99416 -729.622 0.0 +700 2.75 3.35 26.25 -22.0888 -0.704944 22.0887 178.369 0.70499 -178.369 0.0 +701 2.75 3.35 33.75 -2.07542 -0.0682655 2.0755 27.6089 0.0682662 -27.6089 0.0 +702 2.75 3.35 41.25 0.300247 -0.350456 -0.300305 2.18926 0.350473 -2.18927 0.0 +703 2.75 3.35 48.75 -0.0373785 -0.369541 0.0374118 0.0833796 0.36958 -0.083402 0.0 +704 2.75 3.35 56.25 -0.0518069 -0.259322 0.0517312 -0.0686295 0.259412 0.0687251 0.0 +705 2.75 3.35 63.75 -0.0322367 -0.285586 0.0323754 -0.0471277 0.285461 0.0471608 0.0 +706 2.75 3.35 71.25 -0.0437375 -0.317171 0.043788 -0.0133265 0.317084 0.0133532 0.0 +707 2.75 3.35 78.75 -0.0172441 -0.248737 0.0171536 -0.0330689 0.248747 0.0330618 0.0 +708 2.75 3.35 86.25 0.0144849 -0.135178 -0.014571 -0.0452186 0.135353 0.0452189 0.0 +709 2.75 3.35 93.75 0.030471 -0.0300865 -0.030347 -0.0398041 0.0300945 0.0397911 0.0 +710 2.75 3.35 101.25 0.0406014 0.0563913 -0.0407253 -0.0312837 -0.0564639 0.0312859 0.0 +711 2.75 3.35 108.75 0.0422766 0.108893 -0.0423538 -0.0189637 -0.109138 0.0190212 0.0 +712 2.75 3.35 116.25 0.0267588 0.115186 -0.0269597 -0.00297617 -0.11525 0.00295127 0.0 +713 2.75 3.35 123.75 0.000501099 0.0878862 -0.000774694 0.0104498 -0.0881349 -0.0102325 0.0 +714 2.75 3.35 131.25 -0.0236225 0.0489236 0.0238085 0.0185255 -0.0490552 -0.0184822 0.0 +715 2.75 3.35 138.75 -0.0444452 0.00629968 0.044223 0.0246731 -0.00652667 -0.0245664 0.0 +716 2.75 3.35 146.25 -0.0693381 -0.0474412 0.069485 0.0339103 0.0474594 -0.0339419 0.0 +717 2.75 3.35 153.75 -0.107186 -0.118947 0.107138 0.0484857 0.1189 -0.0484203 0.0 +718 2.75 3.35 161.25 -0.154793 -0.200912 0.154723 0.0665572 0.200588 -0.0663788 0.0 +719 2.75 3.35 168.75 -0.200583 -0.274251 0.200264 0.0833152 0.274149 -0.0833102 0.0 +720 2.75 3.35 176.25 -0.22795 -0.317539 0.228214 0.0934114 0.317615 -0.093522 0.0 +721 2.75 3.45 3.75 -181.602 50.4515 181.602 2007.55 -50.4515 -2007.55 0.0 +722 2.75 3.45 11.25 -116.135 31.353 116.135 1069.23 -31.3531 -1069.23 0.0 +723 2.75 3.45 18.75 -49.1544 14.1197 49.1544 371.433 -14.1197 -371.433 0.0 +724 2.75 3.45 26.25 -12.9027 5.27843 12.9027 86.871 -5.27842 -86.871 0.0 +725 2.75 3.45 33.75 -1.53044 1.58922 1.53042 12.1098 -1.58919 -12.1098 0.0 +726 2.75 3.45 41.25 0.0034182 0.175305 -0.00341175 0.852259 -0.175314 -0.852262 0.0 +727 2.75 3.45 48.75 -0.0627082 -0.187051 0.0626463 0.0745378 0.187162 -0.0745079 0.0 +728 2.75 3.45 56.25 -0.0269175 -0.208615 0.0269865 -0.0380544 0.208565 0.0380413 0.0 +729 2.75 3.45 63.75 -0.0156683 -0.232533 0.0156754 -0.0230666 0.232476 0.0230535 0.0 +730 2.75 3.45 71.25 -0.027083 -0.247837 0.027041 5.30776e-05 0.247723 -0.000124963 0.0 +731 2.75 3.45 78.75 -0.0110419 -0.199747 0.0110237 -0.01275 0.199733 0.0127249 0.0 +732 2.75 3.45 86.25 0.00600723 -0.118375 -0.00584057 -0.01943 0.118327 0.0194294 0.0 +733 2.75 3.45 93.75 0.00873478 -0.0394094 -0.00879205 -0.0152652 0.0394659 0.0152585 0.0 +734 2.75 3.45 101.25 0.00962037 0.0272073 -0.00960224 -0.0103152 -0.0271381 0.0103031 0.0 +735 2.75 3.45 108.75 0.0122306 0.0719369 -0.0122886 -0.00545491 -0.071926 0.00547195 0.0 +736 2.75 3.45 116.25 0.00974245 0.0846866 -0.00979763 -2.00295e-05 -0.084746 5.2625e-05 0.0 +737 2.75 3.45 123.75 0.000243929 0.070346 -0.000352399 0.00484904 -0.0702929 -0.00489636 0.0 +738 2.75 3.45 131.25 -0.010453 0.043801 0.0102586 0.00831848 -0.0439736 -0.00824598 0.0 +739 2.75 3.45 138.75 -0.0180464 0.0137037 0.0179837 0.0107806 -0.0137201 -0.0108167 0.0 +740 2.75 3.45 146.25 -0.025475 -0.0218772 0.0256088 0.0136926 0.0220646 -0.0138449 0.0 +741 2.75 3.45 153.75 -0.0382383 -0.0672046 0.0382092 0.0186021 0.0672579 -0.018626 0.0 +742 2.75 3.45 161.25 -0.0575259 -0.119353 0.0574959 0.0256839 0.119252 -0.0256513 0.0 +743 2.75 3.45 168.75 -0.0781428 -0.166869 0.078149 0.0330717 0.16689 -0.0331148 0.0 +744 2.75 3.45 176.25 -0.0916728 -0.195518 0.0917779 0.0378401 0.195665 -0.037981 0.0 +745 2.75 3.55 3.75 -60.5153 27.692 60.5153 588.046 -27.692 -588.046 0.0 +746 2.75 3.55 11.25 -39.8784 17.4201 39.8784 321.892 -17.4201 -321.892 0.0 +747 2.75 3.55 18.75 -17.6334 7.7718 17.6334 111.365 -7.7718 -111.365 0.0 +748 2.75 3.55 26.25 -4.94614 2.91047 4.94616 24.801 -2.91047 -24.801 0.0 +749 2.75 3.55 33.75 -0.717862 1.02613 0.717872 3.21211 -1.02616 -3.21209 0.0 +750 2.75 3.55 41.25 -0.0703286 0.253386 0.0703577 0.326292 -0.253389 -0.326305 0.0 +751 2.75 3.55 48.75 -0.0696314 -0.0360868 0.0696098 0.0745468 0.0361057 -0.0745544 0.0 +752 2.75 3.55 56.25 -0.0386849 -0.0894109 0.0386635 -0.0191097 0.0894516 0.0190794 0.0 +753 2.75 3.55 63.75 -0.0158765 -0.0925221 0.0158458 -0.0145167 0.09256 0.0145237 0.0 +754 2.75 3.55 71.25 -0.00997075 -0.0929607 0.00998059 0.000467248 0.0929809 -0.000443377 0.0 +755 2.75 3.55 78.75 -0.00149974 -0.0734939 0.00146198 -0.00355586 0.0735358 0.00355353 0.0 +756 2.75 3.55 86.25 0.0028805 -0.042718 -0.00289025 -0.00634796 0.0427423 0.00634686 0.0 +757 2.75 3.55 93.75 -0.000895397 -0.0173398 0.000915914 -0.00268197 0.0173692 0.00268557 0.0 +758 2.75 3.55 101.25 -0.00461455 0.00200332 0.00464936 0.00177679 -0.00195006 -0.0017874 0.0 +759 2.75 3.55 108.75 -0.00367123 0.0176377 0.00372332 0.00363241 -0.0176972 -0.00361264 0.0 +760 2.75 3.55 116.25 -0.00131124 0.0260317 0.00133193 0.00346321 -0.0260021 -0.00346733 0.0 +761 2.75 3.55 123.75 -0.000257145 0.0251737 0.000204938 0.00292588 -0.0251838 -0.00291469 0.0 +762 2.75 3.55 131.25 0.000973531 0.0188626 -0.000971992 0.00228745 -0.0188196 -0.00232812 0.0 +763 2.75 3.55 138.75 0.00409367 0.011615 -0.00404917 0.000911448 -0.011591 -0.000925473 0.0 +764 2.75 3.55 146.25 0.00744491 0.00348645 -0.0075166 -0.000905243 -0.00344952 0.000869305 0.0 +765 2.75 3.55 153.75 0.00762023 -0.00783196 -0.00763712 -0.00180907 0.00784858 0.00180265 0.0 +766 2.75 3.55 161.25 0.00271034 -0.0229315 -0.00264761 -0.000890015 0.0229401 0.000888095 0.0 +767 2.75 3.55 168.75 -0.0051415 -0.0382675 0.00514139 0.00125874 0.0383533 -0.00131918 0.0 +768 2.75 3.55 176.25 -0.0109249 -0.0480268 0.0109626 0.00300256 0.0480665 -0.00301775 0.0 +769 2.75 3.65 3.75 -5.4585 2.19054 5.4585 46.1523 -2.19054 -46.1523 0.0 +770 2.75 3.65 11.25 -3.66097 1.22096 3.66097 25.7483 -1.22096 -25.7483 0.0 +771 2.75 3.65 18.75 -1.63156 0.409151 1.63156 8.91799 -0.409152 -8.91799 0.0 +772 2.75 3.65 26.25 -0.435259 0.123143 0.435261 1.99397 -0.123144 -1.99397 0.0 +773 2.75 3.65 33.75 -0.0493642 0.0652704 0.0493648 0.328683 -0.0652688 -0.328684 0.0 +774 2.75 3.65 41.25 -0.0146925 0.0282769 0.0146967 0.0813637 -0.0282736 -0.0813666 0.0 +775 2.75 3.65 48.75 -0.0246544 0.00490522 0.0246565 0.0166878 -0.00490432 -0.0166888 0.0 +776 2.75 3.65 56.25 -0.0139125 0.00395284 0.0139089 -0.00867723 -0.00395188 0.00867599 0.0 +777 2.75 3.65 63.75 -0.00270241 0.00619066 0.00270068 -0.00571762 -0.00619525 0.00571944 0.0 +778 2.75 3.65 71.25 0.000519918 0.00471435 -0.000521654 -8.15984e-06 -0.00471422 7.2579e-06 0.0 +779 2.75 3.65 78.75 0.000501459 0.00398609 -0.00050026 0.000797399 -0.00398918 -0.000797502 0.0 +780 2.75 3.65 86.25 -4.4671e-05 0.00352149 4.27284e-05 0.000514162 -0.00352011 -0.000514185 0.0 +781 2.75 3.65 93.75 -0.000889969 0.00110883 0.000890202 0.00115235 -0.00110879 -0.00115223 0.0 +782 2.75 3.65 101.25 -0.00151239 -0.00165277 0.00151236 0.00181475 0.00164834 -0.00181365 0.0 +783 2.75 3.65 108.75 -0.00161992 -0.00273717 0.00161755 0.00169929 0.00273792 -0.00169984 0.0 +784 2.75 3.65 116.25 -0.00158692 -0.00271981 0.00158207 0.00119301 0.00272293 -0.00119423 0.0 +785 2.75 3.65 123.75 -0.00161004 -0.0028994 0.00160522 0.000901196 0.00289974 -0.000900406 0.0 +786 2.75 3.65 131.25 -0.00135618 -0.00318701 0.00134929 0.000817217 0.00318514 -0.000815958 0.0 +787 2.75 3.65 138.75 -0.000562397 -0.00258908 0.000562926 0.000632375 0.00259618 -0.000635132 0.0 +788 2.75 3.65 146.25 0.000398525 -0.000673377 -0.000405592 0.000326015 0.000673344 -0.000326095 0.0 +789 2.75 3.65 153.75 0.000850024 0.00202598 -0.000855047 0.000185369 -0.00202081 -0.000188642 0.0 +790 2.75 3.65 161.25 0.000434663 0.00458686 -0.000435573 0.000417059 -0.00458533 -0.000417937 0.0 +791 2.75 3.65 168.75 -0.000552814 0.00638533 0.000542524 0.000898487 -0.00637922 -0.0009015 0.0 +792 2.75 3.65 176.25 -0.00133582 0.00725755 0.00133015 0.00128127 -0.0072543 -0.00128197 0.0 +793 2.85 2.85 3.75 -1116.76 -835.91 1116.76 26640.2 835.91 -26640.2 0.0 +794 2.85 2.85 11.25 -610.386 -506.696 610.386 5875.84 506.696 -5875.84 0.0 +795 2.85 2.85 18.75 -255.208 -239.613 255.208 1744.42 239.613 -1744.42 0.0 +796 2.85 2.85 26.25 -73.7604 -82.5484 73.7603 437.327 82.5484 -437.327 0.0 +797 2.85 2.85 33.75 -11.1104 -18.0796 11.1103 74.9581 18.0796 -74.9581 0.0 +798 2.85 2.85 41.25 0.228715 -1.87052 -0.228784 6.31518 1.87054 -6.31516 0.0 +799 2.85 2.85 48.75 -0.186912 -0.383005 0.186932 0.552533 0.382981 -0.552553 0.0 +800 2.85 2.85 56.25 -0.516548 -0.486964 0.51651 0.427331 0.486994 -0.427316 0.0 +801 2.85 2.85 63.75 -0.277336 -0.279457 0.277442 -0.0294235 0.279516 0.0294254 0.0 +802 2.85 2.85 71.25 -0.12864 -0.127184 0.128869 -0.180718 0.127225 0.180733 0.0 +803 2.85 2.85 78.75 -0.0484987 -0.0475193 0.0484573 -0.172173 0.0474804 0.172167 0.0 +804 2.85 2.85 86.25 0.047169 0.0422314 -0.0471278 -0.173173 -0.0422364 0.173175 0.0 +805 2.85 2.85 93.75 0.132895 0.126705 -0.132882 -0.167927 -0.126598 0.167928 0.0 +806 2.85 2.85 101.25 0.176042 0.170333 -0.17625 -0.134397 -0.170485 0.134408 0.0 +807 2.85 2.85 108.75 0.163576 0.157905 -0.16355 -0.0779511 -0.157842 0.0779731 0.0 +808 2.85 2.85 116.25 0.101997 0.0960507 -0.102078 -0.014347 -0.0959807 0.0143824 0.0 +809 2.85 2.85 123.75 0.0206725 0.0134256 -0.0205836 0.0381676 -0.0135693 -0.0381435 0.0 +810 2.85 2.85 131.25 -0.0539648 -0.0618543 0.0539695 0.071669 0.061813 -0.0716401 0.0 +811 2.85 2.85 138.75 -0.126558 -0.13291 0.126595 0.096029 0.132846 -0.0960093 0.0 +812 2.85 2.85 146.25 -0.226905 -0.229729 0.2268 0.129945 0.229804 -0.130004 0.0 +813 2.85 2.85 153.75 -0.375777 -0.37653 0.375708 0.184542 0.376441 -0.184502 0.0 +814 2.85 2.85 161.25 -0.55951 -0.56228 0.559638 0.254398 0.562318 -0.254441 0.0 +815 2.85 2.85 168.75 -0.731663 -0.739479 0.731781 0.320527 0.739524 -0.32053 0.0 +816 2.85 2.85 176.25 -0.836402 -0.848187 0.836322 0.360778 0.848245 -0.36086 0.0 +817 2.85 2.95 3.75 -1111.67 -671.504 1111.67 23382.6 671.504 -23382.6 0.0 +818 2.85 2.95 11.25 -624.121 -411.338 624.121 5761.08 411.338 -5761.08 0.0 +819 2.85 2.95 18.75 -267.855 -190.585 267.855 1715.29 190.585 -1715.29 0.0 +820 2.85 2.95 26.25 -82.9178 -61.5016 82.9177 426.265 61.5016 -426.265 0.0 +821 2.85 2.95 33.75 -16.5392 -10.9568 16.5393 72.4347 10.9568 -72.4348 0.0 +822 2.85 2.95 41.25 -2.05368 -0.128524 2.05363 6.25085 0.128465 -6.25081 0.0 +823 2.85 2.95 48.75 -0.636623 -0.11763 0.63655 0.514257 0.117589 -0.514248 0.0 +824 2.85 2.95 56.25 -0.408465 -0.491652 0.408393 0.327192 0.491696 -0.327194 0.0 +825 2.85 2.95 63.75 -0.201297 -0.331339 0.201309 -0.0209138 0.331453 0.0209243 0.0 +826 2.85 2.95 71.25 -0.130914 -0.18282 0.130989 -0.130552 0.182746 0.130536 0.0 +827 2.85 2.95 78.75 -0.0608924 -0.0898709 0.0607915 -0.139463 0.0899889 0.139453 0.0 +828 2.85 2.95 86.25 0.0345738 0.00746434 -0.0344701 -0.148244 -0.00754141 0.148234 0.0 +829 2.85 2.95 93.75 0.111119 0.0976325 -0.1113 -0.142909 -0.0978809 0.142911 0.0 +830 2.85 2.95 101.25 0.151941 0.155503 -0.151976 -0.117111 -0.15543 0.11711 0.0 +831 2.85 2.95 108.75 0.145751 0.160353 -0.145553 -0.0726376 -0.160204 0.0725882 0.0 +832 2.85 2.95 116.25 0.0915158 0.110131 -0.0916919 -0.0182529 -0.110235 0.0182768 0.0 +833 2.85 2.95 123.75 0.0152377 0.0331448 -0.0151991 0.0284008 -0.0330236 -0.0284138 0.0 +834 2.85 2.95 131.25 -0.0546463 -0.0389944 0.0545777 0.0573967 0.038874 -0.0573186 0.0 +835 2.85 2.95 138.75 -0.1187 -0.104823 0.118718 0.0772008 0.104764 -0.077174 0.0 +836 2.85 2.95 146.25 -0.204059 -0.191464 0.203984 0.105389 0.191495 -0.105464 0.0 +837 2.85 2.95 153.75 -0.330797 -0.320794 0.330923 0.152322 0.320747 -0.152296 0.0 +838 2.85 2.95 161.25 -0.488129 -0.483077 0.488236 0.213067 0.483198 -0.213056 0.0 +839 2.85 2.95 168.75 -0.635592 -0.636761 0.635765 0.270692 0.636908 -0.270728 0.0 +840 2.85 2.95 176.25 -0.725217 -0.730636 0.725177 0.305753 0.730739 -0.305825 0.0 +841 2.85 3.05 3.75 -991.274 -468.465 991.274 17235.6 468.465 -17235.6 0.0 +842 2.85 3.05 11.25 -573.802 -298.761 573.802 5231.29 298.761 -5231.29 0.0 +843 2.85 3.05 18.75 -246.923 -139.586 246.923 1584.79 139.586 -1584.79 0.0 +844 2.85 3.05 26.25 -76.3431 -44.1795 76.3432 390.143 44.1795 -390.143 0.0 +845 2.85 3.05 33.75 -15.4296 -7.24375 15.4295 64.979 7.24375 -64.979 0.0 +846 2.85 3.05 41.25 -1.99485 0.0867799 1.99484 5.41934 -0.0867462 -5.41932 0.0 +847 2.85 3.05 48.75 -0.466876 -0.194309 0.466823 0.319783 0.194325 -0.319796 0.0 +848 2.85 3.05 56.25 -0.247864 -0.498556 0.247809 0.194278 0.49852 -0.194293 0.0 +849 2.85 3.05 63.75 -0.160838 -0.374237 0.160788 -0.00452736 0.374195 0.00453271 0.0 +850 2.85 3.05 71.25 -0.138726 -0.24602 0.138704 -0.0733155 0.246086 0.0732922 0.0 +851 2.85 3.05 78.75 -0.0645345 -0.137898 0.0646711 -0.10598 0.137892 0.105997 0.0 +852 2.85 3.05 86.25 0.0266641 -0.0289336 -0.0265391 -0.125218 0.0289426 0.125216 0.0 +853 2.85 3.05 93.75 0.0897391 0.0651921 -0.0895906 -0.118986 -0.0650775 0.118989 0.0 +854 2.85 3.05 101.25 0.124171 0.131613 -0.123901 -0.0965881 -0.131532 0.0965755 0.0 +855 2.85 3.05 108.75 0.12195 0.150621 -0.122014 -0.0600585 -0.150659 0.0600667 0.0 +856 2.85 3.05 116.25 0.0781014 0.115484 -0.0778585 -0.0147582 -0.115247 0.0147179 0.0 +857 2.85 3.05 123.75 0.0150628 0.0506384 -0.0150425 0.0236392 -0.0506457 -0.023627 0.0 +858 2.85 3.05 131.25 -0.0400525 -0.0131487 0.0399632 0.0466779 0.0130289 -0.0466525 0.0 +859 2.85 3.05 138.75 -0.0895184 -0.0739947 0.0894657 0.0627374 0.0740386 -0.0627861 0.0 +860 2.85 3.05 146.25 -0.15904 -0.155412 0.159469 0.0871229 0.155461 -0.0870861 0.0 +861 2.85 3.05 153.75 -0.267082 -0.274606 0.267172 0.127796 0.274496 -0.127765 0.0 +862 2.85 3.05 161.25 -0.401901 -0.419629 0.401826 0.179668 0.41968 -0.179776 0.0 +863 2.85 3.05 168.75 -0.527756 -0.553697 0.527878 0.228247 0.553582 -0.228199 0.0 +864 2.85 3.05 176.25 -0.604226 -0.634443 0.604143 0.25757 0.634535 -0.257606 0.0 +865 2.85 3.15 3.75 -806.102 -265.526 806.102 12165.1 265.526 -12165.1 0.0 +866 2.85 3.15 11.25 -477.611 -181.207 477.611 4442.53 181.207 -4442.53 0.0 +867 2.85 3.15 18.75 -202.862 -88.6434 202.862 1380.02 88.6434 -1380.02 0.0 +868 2.85 3.15 26.25 -60.0987 -29.0515 60.0987 336.188 29.0515 -336.188 0.0 +869 2.85 3.15 33.75 -10.968 -5.19052 10.9681 54.504 5.19046 -54.5041 0.0 +870 2.85 3.15 41.25 -1.05094 -0.312006 1.05086 4.33851 0.311981 -4.33846 0.0 +871 2.85 3.15 48.75 -0.213743 -0.352928 0.213728 0.164252 0.352886 -0.164263 0.0 +872 2.85 3.15 56.25 -0.154279 -0.471869 0.154225 0.093218 0.47198 -0.0932153 0.0 +873 2.85 3.15 63.75 -0.141604 -0.388768 0.141653 0.0126807 0.388761 -0.0126585 0.0 +874 2.85 3.15 71.25 -0.130127 -0.294635 0.130139 -0.0263984 0.294556 0.0263117 0.0 +875 2.85 3.15 78.75 -0.0550277 -0.180465 0.0550203 -0.073421 0.180561 0.0734297 0.0 +876 2.85 3.15 86.25 0.0209399 -0.0643701 -0.0207919 -0.0962653 0.0644703 0.0962704 0.0 +877 2.85 3.15 93.75 0.0659847 0.032253 -0.0661012 -0.0898107 -0.0322317 0.0898055 0.0 +878 2.85 3.15 101.25 0.0929454 0.104785 -0.092671 -0.0721152 -0.104858 0.0721226 0.0 +879 2.85 3.15 108.75 0.0923534 0.135562 -0.0925163 -0.0438144 -0.135405 0.0437756 0.0 +880 2.85 3.15 116.25 0.0576885 0.115491 -0.0573926 -0.00846383 -0.115386 0.00845008 0.0 +881 2.85 3.15 123.75 0.00835101 0.0659492 -0.00830537 0.0204391 -0.0659776 -0.020473 0.0 +882 2.85 3.15 131.25 -0.0330033 0.0137364 0.0330472 0.0368218 -0.0138501 -0.0368043 0.0 +883 2.85 3.15 138.75 -0.0696344 -0.0403338 0.0693805 0.0485567 0.0403552 -0.0486203 0.0 +884 2.85 3.15 146.25 -0.123646 -0.114761 0.123498 0.0676978 0.114704 -0.0677341 0.0 +885 2.85 3.15 153.75 -0.209228 -0.220305 0.209164 0.0995682 0.220152 -0.0994412 0.0 +886 2.85 3.15 161.25 -0.316292 -0.3444 0.316446 0.139549 0.344477 -0.139654 0.0 +887 2.85 3.15 168.75 -0.416182 -0.455814 0.416144 0.176494 0.455746 -0.176411 0.0 +888 2.85 3.15 176.25 -0.476042 -0.521785 0.476 0.198621 0.521756 -0.198557 0.0 +889 2.85 3.25 3.75 -599.006 -91.2154 599.006 8491.46 91.2155 -8491.46 0.0 +890 2.85 3.25 11.25 -359.488 -74.6727 359.488 3559.49 74.6727 -3559.49 0.0 +891 2.85 3.25 18.75 -148.661 -42.6777 148.661 1135.12 42.6777 -1135.12 0.0 +892 2.85 3.25 26.25 -40.7166 -16.0322 40.7166 272.812 16.0322 -272.812 0.0 +893 2.85 3.25 33.75 -5.97051 -3.67296 5.97039 42.68 3.67297 -42.68 0.0 +894 2.85 3.25 41.25 -0.182688 -0.670468 0.182753 3.20438 0.670474 -3.20441 0.0 +895 2.85 3.25 48.75 -0.0747798 -0.425329 0.0748223 0.0657742 0.425365 -0.0658515 0.0 +896 2.85 3.25 56.25 -0.0982934 -0.398958 0.0982134 0.0220039 0.399004 -0.0220176 0.0 +897 2.85 3.25 63.75 -0.100813 -0.360976 0.100898 0.0133885 0.360825 -0.0133447 0.0 +898 2.85 3.25 71.25 -0.0945309 -0.307881 0.0945963 -0.00420512 0.307879 0.00421061 0.0 +899 2.85 3.25 78.75 -0.0366795 -0.207353 0.0366632 -0.0482296 0.20741 0.0482248 0.0 +900 2.85 3.25 86.25 0.0149887 -0.0970942 -0.0150626 -0.0654125 0.0972336 0.0654212 0.0 +901 2.85 3.25 93.75 0.0443972 -0.00226785 -0.0443982 -0.0599009 0.00218497 0.0598939 0.0 +902 2.85 3.25 101.25 0.0653842 0.0743707 -0.0655475 -0.0488889 -0.074459 0.048906 0.0 +903 2.85 3.25 108.75 0.0673028 0.115282 -0.0672563 -0.0293956 -0.115121 0.0293551 0.0 +904 2.85 3.25 116.25 0.041101 0.109791 -0.041206 -0.00426137 -0.110092 0.0043584 0.0 +905 2.85 3.25 123.75 0.0030353 0.0756594 -0.00306469 0.0153374 -0.0756692 -0.0152926 0.0 +906 2.85 3.25 131.25 -0.02782 0.0350328 0.0279329 0.0256415 -0.0350474 -0.0256136 0.0 +907 2.85 3.25 138.75 -0.0538742 -0.00966993 0.0537414 0.0330967 0.00970634 -0.033162 0.0 +908 2.85 3.25 146.25 -0.0905357 -0.070843 0.0905608 0.0460454 0.0707919 -0.045972 0.0 +909 2.85 3.25 153.75 -0.14887 -0.15562 0.148901 0.0676893 0.155618 -0.067644 0.0 +910 2.85 3.25 161.25 -0.22216 -0.252709 0.22219 0.0946651 0.252847 -0.0946834 0.0 +911 2.85 3.25 168.75 -0.290593 -0.338691 0.290381 0.119487 0.33884 -0.119576 0.0 +912 2.85 3.25 176.25 -0.3308 -0.388801 0.331427 0.13433 0.388853 -0.134296 0.0 +913 2.85 3.35 3.75 -386.528 33.5021 386.528 5634.36 -33.5021 -5634.36 0.0 +914 2.85 3.35 11.25 -232.313 5.67109 232.313 2604.32 -5.67109 -2604.32 0.0 +915 2.85 3.35 18.75 -91.9697 -7.27714 91.9697 849.253 7.27716 -849.253 0.0 +916 2.85 3.35 26.25 -22.1609 -5.78613 22.161 200.148 5.78612 -200.148 0.0 +917 2.85 3.35 33.75 -1.98022 -2.12648 1.98024 29.7672 2.12648 -29.7672 0.0 +918 2.85 3.35 41.25 0.243179 -0.637377 -0.243178 2.04091 0.637344 -2.04094 0.0 +919 2.85 3.35 48.75 -0.0543799 -0.361761 0.0543227 0.0128587 0.36182 -0.0128186 0.0 +920 2.85 3.35 56.25 -0.053243 -0.315179 0.0533037 -0.0175621 0.315135 0.0175499 0.0 +921 2.85 3.35 63.75 -0.0463022 -0.314223 0.0463235 0.00311652 0.314212 -0.00320789 0.0 +922 2.85 3.35 71.25 -0.0532898 -0.296211 0.0534137 -0.000155585 0.29602 0.000135295 0.0 +923 2.85 3.35 78.75 -0.0212587 -0.22246 0.0212696 -0.0288431 0.222559 0.0288631 0.0 +924 2.85 3.35 86.25 0.00889954 -0.125343 -0.00894718 -0.0369629 0.125394 0.0369644 0.0 +925 2.85 3.35 93.75 0.0262325 -0.0313862 -0.0263584 -0.0340369 0.0311982 0.0340506 0.0 +926 2.85 3.35 101.25 0.0415953 0.0498466 -0.0414478 -0.0293926 -0.0498895 0.0293844 0.0 +927 2.85 3.35 108.75 0.0450451 0.0995096 -0.0449831 -0.0178232 -0.0997351 0.0178778 0.0 +928 2.85 3.35 116.25 0.028077 0.105738 -0.0281433 -0.00230595 -0.105795 0.00235292 0.0 +929 2.85 3.35 123.75 0.00116088 0.0815732 -0.000852722 0.00942911 -0.0816637 -0.00933158 0.0 +930 2.85 3.35 131.25 -0.0216069 0.0479562 0.0217652 0.0156247 -0.0476846 -0.0157325 0.0 +931 2.85 3.35 138.75 -0.0380909 0.0111308 0.0380157 0.0201099 -0.0113054 -0.0200733 0.0 +932 2.85 3.35 146.25 -0.0570642 -0.0359703 0.0570676 0.0273788 0.0359094 -0.0273053 0.0 +933 2.85 3.35 153.75 -0.0874487 -0.0993169 0.0874531 0.0394423 0.0994037 -0.0393806 0.0 +934 2.85 3.35 161.25 -0.127843 -0.172492 0.127557 0.054893 0.172359 -0.0549082 0.0 +935 2.85 3.35 168.75 -0.166559 -0.237682 0.166614 0.0695468 0.237554 -0.0695277 0.0 +936 2.85 3.35 176.25 -0.191 -0.276276 0.19078 0.0784958 0.276377 -0.0785403 0.0 +937 2.85 3.45 3.75 -161.588 70.6187 161.588 2741.33 -70.6187 -2741.33 0.0 +938 2.85 3.45 11.25 -95.5114 34.9158 95.5114 1355.81 -34.9158 -1355.81 0.0 +939 2.85 3.45 18.75 -34.6683 8.27267 34.6684 448.865 -8.27268 -448.865 0.0 +940 2.85 3.45 26.25 -6.16493 -0.139582 6.16494 102.857 0.139618 -102.857 0.0 +941 2.85 3.45 33.75 0.422229 -0.589501 -0.422207 14.2949 0.589425 -14.2948 0.0 +942 2.85 3.45 41.25 0.271293 -0.179716 -0.271334 0.90093 0.179724 -0.900935 0.0 +943 2.85 3.45 48.75 -0.0728654 -0.170806 0.0729137 0.0252674 0.1707 -0.025252 0.0 +944 2.85 3.45 56.25 -0.0333377 -0.213039 0.0332742 -0.0156257 0.212999 0.0155434 0.0 +945 2.85 3.45 63.75 -0.0152903 -0.227014 0.0151849 -0.00379666 0.227029 0.00381385 0.0 +946 2.85 3.45 71.25 -0.0235692 -0.224061 0.0235144 -0.000903934 0.22407 0.000862594 0.0 +947 2.85 3.45 78.75 -0.00941949 -0.180683 0.00940751 -0.0122182 0.180688 0.0122354 0.0 +948 2.85 3.45 86.25 0.00386563 -0.108855 -0.00384482 -0.0147672 0.108894 0.0147696 0.0 +949 2.85 3.45 93.75 0.00738598 -0.0352297 -0.00746621 -0.0134146 0.0352537 0.0134097 0.0 +950 2.85 3.45 101.25 0.0113163 0.0272447 -0.0112177 -0.0108832 -0.027162 0.0109037 0.0 +951 2.85 3.45 108.75 0.0143535 0.0674421 -0.0144727 -0.00585159 -0.0674317 0.00583747 0.0 +952 2.85 3.45 116.25 0.0102386 0.0775271 -0.0102071 -0.000339014 -0.0776401 0.000348303 0.0 +953 2.85 3.45 123.75 2.58732e-05 0.0640245 -4.10589e-05 0.00384167 -0.0641439 -0.00376402 0.0 +954 2.85 3.45 131.25 -0.00902431 0.0415235 0.00900971 0.00644527 -0.0416055 -0.00641701 0.0 +955 2.85 3.45 138.75 -0.0130822 0.0181696 0.0131824 0.00773263 -0.0182103 -0.00771311 0.0 +956 2.85 3.45 146.25 -0.0161839 -0.00998922 0.016076 0.00888536 0.00978667 -0.00879601 0.0 +957 2.85 3.45 153.75 -0.0242202 -0.0483692 0.0241807 0.011811 0.0483358 -0.0118472 0.0 +958 2.85 3.45 161.25 -0.0396328 -0.0952296 0.0395522 0.0172745 0.0951821 -0.0172176 0.0 +959 2.85 3.45 168.75 -0.0578248 -0.139644 0.0577311 0.0236934 0.13953 -0.0236387 0.0 +960 2.85 3.45 176.25 -0.0700834 -0.166806 0.0701114 0.0280544 0.166621 -0.0279388 0.0 +961 2.85 3.55 3.75 -31.029 33.8429 31.029 807.354 -33.8429 -807.354 0.0 +962 2.85 3.55 11.25 -16.6941 17.1581 16.6942 418.065 -17.1581 -418.065 0.0 +963 2.85 3.55 18.75 -3.99472 4.08748 3.9947 139.471 -4.08747 -139.471 0.0 +964 2.85 3.55 26.25 0.82754 0.00960473 -0.827538 30.9637 -0.00959943 -30.9637 0.0 +965 2.85 3.55 33.75 0.904557 -0.081934 -0.904543 4.11608 0.0819614 -4.11609 0.0 +966 2.85 3.55 41.25 0.170681 0.0848305 -0.170682 0.346509 -0.0848039 -0.34653 0.0 +967 2.85 3.55 48.75 -0.0666717 -0.0106917 0.0666836 0.0541797 0.0106909 -0.0541811 0.0 +968 2.85 3.55 56.25 -0.0367163 -0.0711844 0.0367427 -0.00758183 0.0712025 0.00758489 0.0 +969 2.85 3.55 63.75 -0.00980718 -0.0797592 0.00983424 -0.00697712 0.0797424 0.00697812 0.0 +970 2.85 3.55 71.25 -0.00586824 -0.0828521 0.00590764 -3.50261e-07 0.0828154 -9.47724e-06 0.0 +971 2.85 3.55 78.75 -0.000602709 -0.0682983 0.000612821 -0.00212227 0.0683145 0.00213184 0.0 +972 2.85 3.55 86.25 0.000973121 -0.0398569 -0.000961009 -0.00335451 0.0398316 0.00334909 0.0 +973 2.85 3.55 93.75 -0.00358082 -0.0150889 0.00357048 -0.00152868 0.0150508 0.00152981 0.0 +974 2.85 3.55 101.25 -0.00603736 0.00394172 0.00605293 0.000730934 -0.00393071 -0.000744155 0.0 +975 2.85 3.55 108.75 -0.00335262 0.0195109 0.00322804 0.00102238 -0.0194668 -0.00104163 0.0 +976 2.85 3.55 116.25 0.000444349 0.027755 -0.000387332 8.69624e-05 -0.0277462 -9.75392e-05 0.0 +977 2.85 3.55 123.75 0.0014088 0.0269113 -0.00138674 -7.73086e-05 -0.0268849 6.29337e-05 0.0 +978 2.85 3.55 131.25 0.00165964 0.0217477 -0.00165364 0.000223061 -0.0218041 -0.000187964 0.0 +979 2.85 3.55 138.75 0.00401875 0.0169663 -0.00395318 -0.000703326 -0.016976 0.000717988 0.0 +980 2.85 3.55 146.25 0.00768509 0.0118145 -0.00765824 -0.00287592 -0.0118411 0.00289573 0.0 +981 2.85 3.55 153.75 0.00912573 0.00261415 -0.00905729 -0.00443259 -0.00257542 0.00443667 0.0 +982 2.85 3.55 161.25 0.0057808 -0.0119115 -0.00584887 -0.00390544 0.0118818 0.00391874 0.0 +983 2.85 3.55 168.75 -0.000422092 -0.0276521 0.000431626 -0.00177835 0.0276894 0.00174946 0.0 +984 2.85 3.55 176.25 -0.00538109 -0.0379719 0.00540295 7.43942e-05 0.0379802 -5.26705e-05 0.0 +985 2.85 3.65 3.75 0.117993 2.41395 -0.117994 63.6242 -2.41395 -63.6242 0.0 +986 2.85 3.65 11.25 0.547196 0.863222 -0.547196 34.0061 -0.86322 -34.0061 0.0 +987 2.85 3.65 18.75 0.745937 -0.193692 -0.745936 11.4296 0.193693 -11.4296 0.0 +988 2.85 3.65 26.25 0.543519 -0.28335 -0.54352 2.53726 0.28335 -2.53726 0.0 +989 2.85 3.65 33.75 0.224853 -0.0795795 -0.224852 0.395802 0.0795803 -0.395805 0.0 +990 2.85 3.65 41.25 0.0308566 0.0096513 -0.030854 0.0760108 -0.00965396 -0.0760089 0.0 +991 2.85 3.65 48.75 -0.0200071 0.0114374 0.0200007 0.0152694 -0.0114346 -0.0152666 0.0 +992 2.85 3.65 56.25 -0.0121781 0.00806958 0.0121778 -0.00463886 -0.00806824 0.00463935 0.0 +993 2.85 3.65 63.75 -0.00240079 0.00691829 0.00239728 -0.00287853 -0.00691891 0.00287832 0.0 +994 2.85 3.65 71.25 -0.000113974 0.00344927 0.000114402 0.000925612 -0.00345159 -0.000924517 0.0 +995 2.85 3.65 78.75 -0.000150972 0.00204618 0.000149514 0.00127176 -0.00204528 -0.00127259 0.0 +996 2.85 3.65 86.25 -0.00063721 0.00167632 0.000641885 0.000872705 -0.00167479 -0.000872293 0.0 +997 2.85 3.65 93.75 -0.00144962 -0.000316034 0.00144811 0.00113858 0.000313733 -0.00113842 0.0 +998 2.85 3.65 101.25 -0.00167523 -0.00216785 0.00167369 0.00123363 0.00216868 -0.00123425 0.0 +999 2.85 3.65 108.75 -0.00110878 -0.00207464 0.00110977 0.00064396 0.00207751 -0.000643732 0.0 +1000 2.85 3.65 116.25 -0.000764004 -0.00128655 0.000766131 0.000103318 0.00128453 -0.000103182 0.0 +1001 2.85 3.65 123.75 -0.00123412 -0.00134957 0.00123183 0.000216939 0.00135724 -0.000220275 0.0 +1002 2.85 3.65 131.25 -0.00184917 -0.00183778 0.00184664 0.000577507 0.00184059 -0.000579396 0.0 +1003 2.85 3.65 138.75 -0.00163391 -0.00138008 0.00162307 0.000515544 0.00137553 -0.000512344 0.0 +1004 2.85 3.65 146.25 -0.000376327 0.000499681 0.00037387 -6.6379e-06 -0.000506003 1.01884e-05 0.0 +1005 2.85 3.65 153.75 0.00121458 0.00310539 -0.00122162 -0.000485719 -0.00311088 0.000488173 0.0 +1006 2.85 3.65 161.25 0.00238865 0.00543453 -0.0023833 -0.00051915 -0.00542809 0.000516147 0.0 +1007 2.85 3.65 168.75 0.00285962 0.00692717 -0.00285792 -0.000171476 -0.00692344 0.000168255 0.0 +1008 2.85 3.65 176.25 0.00292307 0.00758779 -0.00292581 0.00016883 -0.00759567 -0.000164093 0.0 +1009 2.95 2.95 3.75 -1235.79 -703.549 1235.79 26126.6 703.549 -26126.6 0.0 +1010 2.95 2.95 11.25 -677.675 -435.614 677.675 5671.31 435.614 -5671.31 0.0 +1011 2.95 2.95 18.75 -281.882 -206.464 281.882 1620.38 206.464 -1620.38 0.0 +1012 2.95 2.95 26.25 -80.142 -69.4145 80.142 377.367 69.4145 -377.367 0.0 +1013 2.95 2.95 33.75 -11.535 -14.0454 11.535 55.1741 14.0454 -55.1741 0.0 +1014 2.95 2.95 41.25 0.444691 -1.06867 -0.444678 2.44606 1.06872 -2.44609 0.0 +1015 2.95 2.95 48.75 -0.095339 -0.280002 0.095379 0.150135 0.280037 -0.150155 0.0 +1016 2.95 2.95 56.25 -0.487332 -0.457247 0.487298 0.373103 0.457341 -0.373058 0.0 +1017 2.95 2.95 63.75 -0.309733 -0.308057 0.309669 0.0352679 0.308082 -0.0352801 0.0 +1018 2.95 2.95 71.25 -0.189494 -0.187337 0.189429 -0.0767338 0.187338 0.0767722 0.0 +1019 2.95 2.95 78.75 -0.100558 -0.0943326 0.100538 -0.103742 0.0942838 0.103711 0.0 +1020 2.95 2.95 86.25 -0.00127159 0.00259697 0.00111691 -0.124177 -0.0027075 0.124174 0.0 +1021 2.95 2.95 93.75 0.0781938 0.0795056 -0.0783669 -0.119644 -0.0795165 0.119632 0.0 +1022 2.95 2.95 101.25 0.125437 0.125749 -0.125346 -0.0954926 -0.125695 0.0954816 0.0 +1023 2.95 2.95 108.75 0.131842 0.132451 -0.1318 -0.0582993 -0.132316 0.0582686 0.0 +1024 2.95 2.95 116.25 0.094036 0.0945768 -0.0939986 -0.013007 -0.0944018 0.0129685 0.0 +1025 2.95 2.95 123.75 0.031853 0.0309302 -0.0318676 0.0276584 -0.0309157 -0.0276663 0.0 +1026 2.95 2.95 131.25 -0.0289236 -0.0307662 0.0290267 0.0542911 0.0309129 -0.0543246 0.0 +1027 2.95 2.95 138.75 -0.0860191 -0.0873603 0.0858184 0.0715543 0.0871918 -0.0715138 0.0 +1028 2.95 2.95 146.25 -0.159015 -0.159395 0.158823 0.092785 0.159333 -0.0927604 0.0 +1029 2.95 2.95 153.75 -0.264066 -0.265928 0.264092 0.127317 0.266003 -0.127385 0.0 +1030 2.95 2.95 161.25 -0.392832 -0.399313 0.392736 0.172881 0.399453 -0.172904 0.0 +1031 2.95 2.95 168.75 -0.51305 -0.525949 0.512818 0.216982 0.526087 -0.217102 0.0 +1032 2.95 2.95 176.25 -0.585362 -0.603164 0.585535 0.244165 0.603114 -0.244128 0.0 +1033 2.95 3.05 3.75 -1152 -470.691 1152 22546.9 470.691 -22546.9 0.0 +1034 2.95 3.05 11.25 -646.366 -302.989 646.366 5436.44 302.989 -5436.44 0.0 +1035 2.95 3.05 18.75 -274.735 -144.566 274.735 1560.79 144.566 -1560.79 0.0 +1036 2.95 3.05 26.25 -82.9595 -46.7837 82.9596 363.128 46.7837 -363.128 0.0 +1037 2.95 3.05 33.75 -15.5348 -7.90904 15.5348 54.2888 7.90907 -54.2887 0.0 +1038 2.95 3.05 41.25 -1.52533 0.0877815 1.52529 3.23039 -0.0877658 -3.23043 0.0 +1039 2.95 3.05 48.75 -0.429791 -0.130249 0.429777 0.249314 0.130206 -0.249273 0.0 +1040 2.95 3.05 56.25 -0.354386 -0.465805 0.3544 0.285906 0.465883 -0.285905 0.0 +1041 2.95 3.05 63.75 -0.230807 -0.353693 0.230714 0.0451008 0.353768 -0.0451234 0.0 +1042 2.95 3.05 71.25 -0.171943 -0.228248 0.172051 -0.0442061 0.228171 0.0442394 0.0 +1043 2.95 3.05 78.75 -0.0886759 -0.125763 0.0886157 -0.0870429 0.125748 0.0870611 0.0 +1044 2.95 3.05 86.25 0.00406016 -0.0290639 -0.00400943 -0.106637 0.0291333 0.106635 0.0 +1045 2.95 3.05 93.75 0.0709324 0.0512843 -0.0709031 -0.0997352 -0.0513256 0.0997471 0.0 +1046 2.95 3.05 101.25 0.112173 0.109307 -0.112111 -0.081026 -0.10938 0.0810188 0.0 +1047 2.95 3.05 108.75 0.118241 0.127448 -0.118156 -0.0508854 -0.127498 0.0509172 0.0 +1048 2.95 3.05 116.25 0.082375 0.0967194 -0.0826216 -0.0115758 -0.096743 0.0116038 0.0 +1049 2.95 3.05 123.75 0.0249719 0.0392243 -0.0250633 0.0233571 -0.0393156 -0.0232965 0.0 +1050 2.95 3.05 131.25 -0.0283614 -0.0168684 0.0282743 0.0451621 0.0168661 -0.045173 0.0 +1051 2.95 3.05 138.75 -0.0768736 -0.0688048 0.077069 0.0594051 0.068716 -0.0593073 0.0 +1052 2.95 3.05 146.25 -0.141563 -0.136731 0.141568 0.0784955 0.136426 -0.0784076 0.0 +1053 2.95 3.05 153.75 -0.236122 -0.235072 0.236058 0.109983 0.235346 -0.110141 0.0 +1054 2.95 3.05 161.25 -0.351579 -0.354851 0.351474 0.150951 0.354689 -0.150832 0.0 +1055 2.95 3.05 168.75 -0.458428 -0.465918 0.458345 0.190063 0.465592 -0.18999 0.0 +1056 2.95 3.05 176.25 -0.522577 -0.532559 0.52258 0.213967 0.532625 -0.214084 0.0 +1057 2.95 3.15 3.75 -947.105 -234.064 947.105 16388.2 234.064 -16388.2 0.0 +1058 2.95 3.15 11.25 -544.957 -169.572 544.957 4831.85 169.572 -4831.85 0.0 +1059 2.95 3.15 18.75 -231.218 -87.4264 231.218 1411.96 87.4264 -1411.96 0.0 +1060 2.95 3.15 26.25 -69.489 -29.5946 69.489 327.211 29.5945 -327.211 0.0 +1061 2.95 3.15 33.75 -13.2484 -5.06717 13.2484 48.9414 5.06717 -48.9414 0.0 +1062 2.95 3.15 41.25 -1.4679 0.0238403 1.46795 3.15011 -0.0239097 -3.15014 0.0 +1063 2.95 3.15 48.75 -0.31652 -0.227201 0.316586 0.172569 0.227204 -0.17262 0.0 +1064 2.95 3.15 56.25 -0.21369 -0.480095 0.213689 0.184024 0.480141 -0.184087 0.0 +1065 2.95 3.15 63.75 -0.176969 -0.390853 0.176921 0.0560194 0.390826 -0.0559763 0.0 +1066 2.95 3.15 71.25 -0.150417 -0.269717 0.150456 -0.0151382 0.269771 0.0150882 0.0 +1067 2.95 3.15 78.75 -0.0732588 -0.158111 0.073298 -0.0675252 0.157991 0.0675219 0.0 +1068 2.95 3.15 86.25 0.0011828 -0.0578942 -0.0013546 -0.0836453 0.0579193 0.083656 0.0 +1069 2.95 3.15 93.75 0.0495663 0.0262723 -0.0495336 -0.0758505 -0.0265178 0.0758585 0.0 +1070 2.95 3.15 101.25 0.0825033 0.0923783 -0.0825646 -0.0624571 -0.0924447 0.0624949 0.0 +1071 2.95 3.15 108.75 0.0903024 0.12085 -0.0901393 -0.0395117 -0.120852 0.0395202 0.0 +1072 2.95 3.15 116.25 0.0638444 0.102339 -0.0638579 -0.00894728 -0.102235 0.00890468 0.0 +1073 2.95 3.15 123.75 0.0220461 0.0572511 -0.0219022 0.0169359 -0.0570113 -0.0169543 0.0 +1074 2.95 3.15 131.25 -0.015441 0.00943891 0.0156538 0.0325133 -0.00947592 -0.0324612 0.0 +1075 2.95 3.15 138.75 -0.0518112 -0.0403117 0.0516345 0.043965 0.0403656 -0.0440096 0.0 +1076 2.95 3.15 146.25 -0.104883 -0.106935 0.104923 0.0610883 0.106832 -0.0610049 0.0 +1077 2.95 3.15 153.75 -0.185793 -0.19961 0.185681 0.0885896 0.199403 -0.0885392 0.0 +1078 2.95 3.15 161.25 -0.283884 -0.306665 0.283899 0.123061 0.306488 -0.122974 0.0 +1079 2.95 3.15 168.75 -0.3736 -0.401945 0.373662 0.155182 0.401946 -0.155094 0.0 +1080 2.95 3.15 176.25 -0.427053 -0.458118 0.427085 0.174567 0.458223 -0.174634 0.0 +1081 2.95 3.25 3.75 -684.962 -33.597 684.962 11353.2 33.597 -11353.2 0.0 +1082 2.95 3.25 11.25 -400.069 -51.4433 400.069 4016.56 51.4433 -4016.56 0.0 +1083 2.95 3.25 18.75 -165.833 -38.5931 165.833 1203.1 38.5931 -1203.1 0.0 +1084 2.95 3.25 26.25 -47.263 -16.6148 47.263 276.987 16.6148 -276.987 0.0 +1085 2.95 3.25 33.75 -8.14408 -3.80756 8.14405 40.878 3.80754 -40.8779 0.0 +1086 2.95 3.25 41.25 -0.735673 -0.396549 0.73574 2.63773 0.396509 -2.63772 0.0 +1087 2.95 3.25 48.75 -0.150431 -0.333017 0.150544 0.0672603 0.332896 -0.0672187 0.0 +1088 2.95 3.25 56.25 -0.10876 -0.446971 0.10866 0.0972865 0.44696 -0.0973988 0.0 +1089 2.95 3.25 63.75 -0.118865 -0.37823 0.118992 0.0520019 0.378268 -0.052 0.0 +1090 2.95 3.25 71.25 -0.109895 -0.280626 0.109945 -0.000890606 0.280499 0.000905523 0.0 +1091 2.95 3.25 78.75 -0.0507365 -0.181073 0.0507334 -0.0461242 0.18097 0.0461348 0.0 +1092 2.95 3.25 86.25 -0.000734511 -0.0871476 0.00060714 -0.0555662 0.0872154 0.0555746 0.0 +1093 2.95 3.25 93.75 0.0311957 -0.00236195 -0.0311942 -0.0515041 0.00259597 0.0514843 0.0 +1094 2.95 3.25 101.25 0.0572093 0.0688848 -0.0571052 -0.0452318 -0.0687382 0.0452149 0.0 +1095 2.95 3.25 108.75 0.064287 0.106942 -0.0642778 -0.029198 -0.106939 0.0292002 0.0 +1096 2.95 3.25 116.25 0.0445212 0.10208 -0.0444717 -0.00721917 -0.102122 0.00721939 0.0 +1097 2.95 3.25 123.75 0.0135976 0.0703346 -0.0132914 0.0101515 -0.070214 -0.0102111 0.0 +1098 2.95 3.25 131.25 -0.0135575 0.0313234 0.0136726 0.0203596 -0.0316066 -0.0203055 0.0 +1099 2.95 3.25 138.75 -0.0393187 -0.0123616 0.0392606 0.0289017 0.0125322 -0.0289811 0.0 +1100 2.95 3.25 146.25 -0.0783219 -0.0713966 0.0781054 0.0422706 0.0716338 -0.0424701 0.0 +1101 2.95 3.25 153.75 -0.137718 -0.149787 0.137636 0.0630045 0.149918 -0.0630855 0.0 +1102 2.95 3.25 161.25 -0.209697 -0.23746 0.209832 0.0883427 0.237538 -0.0884379 0.0 +1103 2.95 3.25 168.75 -0.275371 -0.313873 0.275402 0.111664 0.314062 -0.111753 0.0 +1104 2.95 3.25 176.25 -0.314348 -0.358242 0.314391 0.125665 0.357993 -0.125515 0.0 +1105 2.95 3.35 3.75 -399.508 103.619 399.508 7451.41 -103.619 -7451.41 0.0 +1106 2.95 3.35 11.25 -231.405 35.127 231.405 3026.44 -35.127 -3026.44 0.0 +1107 2.95 3.35 18.75 -89.8146 -2.33149 89.8146 930.13 2.3315 -930.13 0.0 +1108 2.95 3.35 26.25 -22.0607 -7.1465 22.0607 211.828 7.14652 -211.828 0.0 +1109 2.95 3.35 33.75 -2.61211 -2.84669 2.61203 30.3988 2.84678 -30.3988 0.0 +1110 2.95 3.35 41.25 -0.0641668 -0.572722 0.0641482 1.85321 0.572769 -1.85319 0.0 +1111 2.95 3.35 48.75 -0.0727144 -0.324155 0.0726592 -0.0128306 0.324113 0.0128188 0.0 +1112 2.95 3.35 56.25 -0.0429539 -0.369477 0.0429431 0.0365148 0.369487 -0.0365382 0.0 +1113 2.95 3.35 63.75 -0.0600198 -0.322362 0.0600919 0.0327313 0.322318 -0.0327163 0.0 +1114 2.95 3.35 71.25 -0.0652833 -0.262303 0.0652719 -0.000945077 0.262315 0.000937457 0.0 +1115 2.95 3.35 78.75 -0.031022 -0.194374 0.0309769 -0.0267122 0.194554 0.0267582 0.0 +1116 2.95 3.35 86.25 -0.00184005 -0.113162 0.00176104 -0.0298197 0.113076 0.0298218 0.0 +1117 2.95 3.35 93.75 0.018586 -0.0277066 -0.0184827 -0.0312711 0.0276271 0.0312812 0.0 +1118 2.95 3.35 101.25 0.0371138 0.0478631 -0.037144 -0.0299553 -0.0480008 0.0299616 0.0 +1119 2.95 3.35 108.75 0.0423982 0.093388 -0.0422422 -0.0188882 -0.0933397 0.0188857 0.0 +1120 2.95 3.35 116.25 0.0273758 0.0979945 -0.0273687 -0.00448478 -0.0979721 0.00447213 0.0 +1121 2.95 3.35 123.75 0.00420771 0.0743592 -0.00427898 0.00600864 -0.0745728 -0.0058675 0.0 +1122 2.95 3.35 131.25 -0.0145851 0.0414175 0.0147362 0.0124371 -0.0414414 -0.0124358 0.0 +1123 2.95 3.35 138.75 -0.03007 0.00528296 0.0300369 0.0181261 -0.00525075 -0.018187 0.0 +1124 2.95 3.35 146.25 -0.0509356 -0.0404972 0.0512567 0.0264418 0.040464 -0.0264103 0.0 +1125 2.95 3.35 153.75 -0.0853645 -0.10106 0.0852954 0.0392425 0.100971 -0.0391701 0.0 +1126 2.95 3.35 161.25 -0.129326 -0.170331 0.12924 0.0554642 0.170326 -0.0554588 0.0 +1127 2.95 3.35 168.75 -0.171342 -0.232151 0.171081 0.0709676 0.232288 -0.0710617 0.0 +1128 2.95 3.35 176.25 -0.196671 -0.268622 0.196769 0.0804998 0.268617 -0.0804939 0.0 +1129 2.95 3.45 3.75 -118.47 124.094 118.47 3596.85 -124.094 -3596.85 0.0 +1130 2.95 3.45 11.25 -62.0251 58.1208 62.0251 1612.69 -58.1208 -1612.69 0.0 +1131 2.95 3.45 18.75 -17.2025 11.8124 17.2025 506.519 -11.8125 -506.519 0.0 +1132 2.95 3.45 26.25 -0.377844 -1.71658 0.37789 113.34 1.71654 -113.34 0.0 +1133 2.95 3.45 33.75 1.37632 -1.48954 -1.37633 15.5555 1.4896 -15.5555 0.0 +1134 2.95 3.45 41.25 0.265026 -0.272138 -0.265013 0.865629 0.272128 -0.865594 0.0 +1135 2.95 3.45 48.75 -0.0675124 -0.169675 0.0675642 -0.0146368 0.169647 0.0146363 0.0 +1136 2.95 3.45 56.25 -0.023388 -0.236641 0.0234179 0.015066 0.236607 -0.015018 0.0 +1137 2.95 3.45 63.75 -0.0206674 -0.214642 0.0205493 0.0137967 0.214624 -0.0137863 0.0 +1138 2.95 3.45 71.25 -0.0266153 -0.192791 0.0266153 -0.00202341 0.192818 0.00206841 0.0 +1139 2.95 3.45 78.75 -0.01303 -0.158177 0.0130391 -0.00963045 0.158217 0.00964696 0.0 +1140 2.95 3.45 86.25 -0.00222429 -0.0960735 0.0021395 -0.0105039 0.0961189 0.0105017 0.0 +1141 2.95 3.45 93.75 0.00366176 -0.0280042 -0.00362622 -0.0130186 0.0279556 0.0130227 0.0 +1142 2.95 3.45 101.25 0.0105055 0.0297138 -0.0104632 -0.0119289 -0.0296664 0.0119117 0.0 +1143 2.95 3.45 108.75 0.0148087 0.0656952 -0.0147408 -0.00665645 -0.0657398 0.0066868 0.0 +1144 2.95 3.45 116.25 0.0114932 0.0726041 -0.0116021 -0.00156607 -0.0726457 0.00154858 0.0 +1145 2.95 3.45 123.75 0.00309518 0.0572911 -0.00312058 0.00244903 -0.0572973 -0.00247607 0.0 +1146 2.95 3.45 131.25 -0.00423195 0.0348253 0.00428653 0.0058355 -0.0347892 -0.0058315 0.0 +1147 2.95 3.45 138.75 -0.00866474 0.0124609 0.00861874 0.00825108 -0.0125166 -0.00826851 0.0 +1148 2.95 3.45 146.25 -0.0145607 -0.0144555 0.0146647 0.0107256 0.0144883 -0.0106962 0.0 +1149 2.95 3.45 153.75 -0.0287837 -0.0532811 0.0286297 0.0157047 0.0531415 -0.0156193 0.0 +1150 2.95 3.45 161.25 -0.0515253 -0.102148 0.0515477 0.0240732 0.102183 -0.0241063 0.0 +1151 2.95 3.45 168.75 -0.0767337 -0.148935 0.0767439 0.0334601 0.1489 -0.0334712 0.0 +1152 2.95 3.45 176.25 -0.0932086 -0.17774 0.0931942 0.0396944 0.177763 -0.0397001 0.0 +1153 2.95 3.55 3.75 9.21891 55.9716 -9.21891 1053.07 -55.9716 -1053.07 0.0 +1154 2.95 3.55 11.25 12.0915 26.8507 -12.0915 505.759 -26.8507 -505.759 0.0 +1155 2.95 3.55 18.75 10.5932 5.25111 -10.5932 161.202 -5.25111 -161.202 0.0 +1156 2.95 3.55 26.25 5.832 -0.960922 -5.83198 35.2215 0.960912 -35.2215 0.0 +1157 2.95 3.55 33.75 1.90632 -0.606111 -1.90629 4.63776 0.606103 -4.63776 0.0 +1158 2.95 3.55 41.25 0.243995 0.00564805 -0.243998 0.296232 -0.00567539 -0.296199 0.0 +1159 2.95 3.55 48.75 -0.0591471 -0.00860415 0.0591375 0.0274887 0.00861739 -0.0274844 0.0 +1160 2.95 3.55 56.25 -0.0269926 -0.0691277 0.0269968 0.0114055 0.0691244 -0.0114149 0.0 +1161 2.95 3.55 63.75 -0.00607235 -0.0689444 0.00606736 0.00520628 0.0689476 -0.00519972 0.0 +1162 2.95 3.55 71.25 -0.00320545 -0.0714308 0.00319651 0.00162512 0.0714338 -0.00162543 0.0 +1163 2.95 3.55 78.75 -0.000709974 -0.0611886 0.00068591 -0.000332506 0.0611933 0.00033069 0.0 +1164 2.95 3.55 86.25 -0.00172169 -0.0350745 0.00168824 -0.00153632 0.035038 0.00153626 0.0 +1165 2.95 3.55 93.75 -0.00504304 -0.0114154 0.00501691 -0.001532 0.0114067 0.0015284 0.0 +1166 2.95 3.55 101.25 -0.00419399 0.00690274 0.00423812 -0.00070908 -0.00693605 0.000712363 0.0 +1167 2.95 3.55 108.75 0.00145246 0.0217666 -0.00146955 -0.00136473 -0.0217677 0.00136709 0.0 +1168 2.95 3.55 116.25 0.00646822 0.0283925 -0.00648991 -0.0023095 -0.0283929 0.00231683 0.0 +1169 2.95 3.55 123.75 0.0071676 0.0255024 -0.00717304 -0.00117394 -0.0255343 0.00118872 0.0 +1170 2.95 3.55 131.25 0.00551051 0.0191405 -0.00553503 0.000805702 -0.0191302 -0.000807014 0.0 +1171 2.95 3.55 138.75 0.00491972 0.0139924 -0.00492367 0.00107791 -0.0140157 -0.00107725 0.0 +1172 2.95 3.55 146.25 0.00468329 0.0079675 -0.00466349 9.16014e-06 -0.0079586 -7.70033e-06 0.0 +1173 2.95 3.55 153.75 0.00109992 -0.00389049 -0.00104878 0.000299902 0.00394253 -0.000326509 0.0 +1174 2.95 3.55 161.25 -0.0078958 -0.022461 0.00792024 0.0035239 0.0224411 -0.0035224 0.0 +1175 2.95 3.55 168.75 -0.019444 -0.0423078 0.0194506 0.00839838 0.0423256 -0.00840352 0.0 +1176 2.95 3.55 176.25 -0.0275442 -0.0551633 0.0275625 0.011971 0.0551683 -0.0119705 0.0 +1177 2.95 3.65 3.75 7.06704 4.57331 -7.06704 82.2836 -4.57331 -82.2836 0.0 +1178 2.95 3.65 11.25 5.4451 1.75617 -5.4451 41.4025 -1.75617 -41.4025 0.0 +1179 2.95 3.65 18.75 3.205 -0.181937 -3.205 13.315 0.181936 -13.315 0.0 +1180 2.95 3.65 26.25 1.3884 -0.45091 -1.3884 2.87287 0.450911 -2.87287 0.0 +1181 2.95 3.65 33.75 0.399535 -0.156162 -0.399534 0.408566 0.156164 -0.408568 0.0 +1182 2.95 3.65 41.25 0.0474327 0.000325414 -0.0474365 0.0559439 -0.000322232 -0.0559436 0.0 +1183 2.95 3.65 48.75 -0.0167623 0.0148239 0.0167622 0.0118571 -0.0148242 -0.011857 0.0 +1184 2.95 3.65 56.25 -0.00966538 0.00961204 0.00966566 0.000613902 -0.00961345 -0.000615629 0.0 +1185 2.95 3.65 63.75 -0.0018771 0.00670523 0.00187471 0.000440809 -0.00670146 -0.000440008 0.0 +1186 2.95 3.65 71.25 -0.000281351 0.00228719 0.000284629 0.00150972 -0.00228777 -0.00150899 0.0 +1187 2.95 3.65 78.75 -0.000573671 0.000786642 0.000576419 0.00114584 -0.000789663 -0.00114555 0.0 +1188 2.95 3.65 86.25 -0.00114618 0.000614687 0.00115016 0.000658531 -0.000610215 -0.000658224 0.0 +1189 2.95 3.65 93.75 -0.0014843 -0.00108906 0.00148416 0.000686066 0.00108644 -0.000685896 0.0 +1190 2.95 3.65 101.25 -0.000744824 -0.00226437 0.000742569 0.000394 0.00226277 -0.000394553 0.0 +1191 2.95 3.65 108.75 0.000733179 -0.00144773 -0.000733097 -0.000392875 0.00144773 0.000393178 0.0 +1192 2.95 3.65 116.25 0.00137293 -0.00049035 -0.00137606 -0.000632154 0.000487911 0.000633826 0.0 +1193 2.95 3.65 123.75 0.000493895 -0.000912215 -0.00049636 8.38473e-05 0.000900696 -7.85158e-05 0.0 +1194 2.95 3.65 131.25 -0.000825425 -0.0018564 0.000824058 0.000856545 0.00185558 -0.000856062 0.0 +1195 2.95 3.65 138.75 -0.00108814 -0.00180504 0.00109441 0.000819354 0.00179515 -0.000812508 0.0 +1196 2.95 3.65 146.25 1.93775e-05 -0.000479276 -1.65839e-05 0.000158438 0.000470583 -0.000154836 0.0 +1197 2.95 3.65 153.75 0.00166473 0.00127079 -0.00166242 -0.000315957 -0.00126902 0.00031561 0.0 +1198 2.95 3.65 161.25 0.00284097 0.00252966 -0.00283858 -0.000108367 -0.00252762 0.000107593 0.0 +1199 2.95 3.65 168.75 0.00323364 0.00305014 -0.00322845 0.000583253 -0.00304442 -0.000587227 0.0 +1200 2.95 3.65 176.25 0.00320119 0.00313431 -0.00320683 0.0011639 -0.00314025 -0.00116103 0.0 +1201 3.05 3.05 3.75 -1202.39 -470.365 1202.39 24403 470.365 -24403 0.0 +1202 3.05 3.05 11.25 -668.169 -316.378 668.169 5239.8 316.378 -5239.8 0.0 +1203 3.05 3.05 18.75 -281.731 -159.304 281.731 1455.24 159.304 -1455.24 0.0 +1204 3.05 3.05 26.25 -82.2316 -55.9751 82.2316 322.339 55.9751 -322.339 0.0 +1205 3.05 3.05 33.75 -13.2072 -11.7376 13.2072 43.2474 11.7377 -43.2475 0.0 +1206 3.05 3.05 41.25 -0.23727 -0.951403 0.237225 1.56363 0.951413 -1.56361 0.0 +1207 3.05 3.05 48.75 -0.165939 -0.246228 0.165967 0.206541 0.24613 -0.206511 0.0 +1208 3.05 3.05 56.25 -0.436043 -0.410636 0.436083 0.304896 0.410632 -0.304963 0.0 +1209 3.05 3.05 63.75 -0.30763 -0.310295 0.307609 0.0679989 0.310281 -0.0680052 0.0 +1210 3.05 3.05 71.25 -0.206649 -0.205757 0.206684 -0.0143256 0.20578 0.0143312 0.0 +1211 3.05 3.05 78.75 -0.11617 -0.112842 0.116269 -0.0611922 0.112662 0.0611357 0.0 +1212 3.05 3.05 86.25 -0.029379 -0.026893 0.0293335 -0.0825493 0.0270606 0.0825471 0.0 +1213 3.05 3.05 93.75 0.0356369 0.0385347 -0.0355095 -0.077343 -0.0385093 0.0773448 0.0 +1214 3.05 3.05 101.25 0.0825754 0.0864857 -0.0826079 -0.0638125 -0.0866197 0.0638187 0.0 +1215 3.05 3.05 108.75 0.102049 0.105697 -0.102052 -0.0415323 -0.105879 0.0415234 0.0 +1216 3.05 3.05 116.25 0.0810613 0.0846985 -0.0811354 -0.00976694 -0.0847927 0.00982253 0.0 +1217 3.05 3.05 123.75 0.0328587 0.0382796 -0.0327086 0.0205591 -0.0383158 -0.0204996 0.0 +1218 3.05 3.05 131.25 -0.0175676 -0.00884341 0.0174819 0.0399706 0.00881225 -0.0399405 0.0 +1219 3.05 3.05 138.75 -0.0618523 -0.0507538 0.0617807 0.050519 0.0510671 -0.0507029 0.0 +1220 3.05 3.05 146.25 -0.112984 -0.102557 0.112876 0.062213 0.102547 -0.0622186 0.0 +1221 3.05 3.05 153.75 -0.183953 -0.177566 0.184157 0.0833769 0.177745 -0.0834765 0.0 +1222 3.05 3.05 161.25 -0.271208 -0.270479 0.271245 0.113891 0.27054 -0.113888 0.0 +1223 3.05 3.05 168.75 -0.353042 -0.357989 0.353053 0.145016 0.357905 -0.145054 0.0 +1224 3.05 3.05 176.25 -0.402759 -0.411064 0.402707 0.164734 0.411172 -0.164821 0.0 +1225 3.05 3.15 3.75 -1005.86 -194.498 1005.86 20622.3 194.498 -20622.3 0.0 +1226 3.05 3.15 11.25 -566.091 -160.869 566.091 4886.81 160.869 -4886.81 0.0 +1227 3.05 3.15 18.75 -240.287 -91.2699 240.287 1363.35 91.2699 -1363.35 0.0 +1228 3.05 3.15 26.25 -72.1732 -33.8748 72.1732 302.315 33.8748 -302.315 0.0 +1229 3.05 3.15 33.75 -13.3946 -6.76814 13.3946 41.8615 6.76815 -41.8615 0.0 +1230 3.05 3.15 41.25 -1.23842 -0.233142 1.2384 2.17485 0.233108 -2.17487 0.0 +1231 3.05 3.15 48.75 -0.292521 -0.178012 0.292534 0.218004 0.177961 -0.217937 0.0 +1232 3.05 3.15 56.25 -0.284809 -0.428332 0.284868 0.232091 0.428389 -0.232079 0.0 +1233 3.05 3.15 63.75 -0.220727 -0.340585 0.220826 0.0743496 0.340452 -0.0743638 0.0 +1234 3.05 3.15 71.25 -0.169662 -0.229028 0.169575 -0.00422416 0.228937 0.00423996 0.0 +1235 3.05 3.15 78.75 -0.0951492 -0.138864 0.0951079 -0.0524268 0.138897 0.0524133 0.0 +1236 3.05 3.15 86.25 -0.0249568 -0.057734 0.0249618 -0.0648182 0.0578461 0.0648357 0.0 +1237 3.05 3.15 93.75 0.0258392 0.0131362 -0.0256859 -0.0587348 -0.0128765 0.058722 0.0 +1238 3.05 3.15 101.25 0.0643498 0.0683206 -0.0643807 -0.0481836 -0.0685476 0.0481991 0.0 +1239 3.05 3.15 108.75 0.0794928 0.0928215 -0.0794856 -0.02838 -0.0927884 0.0283377 0.0 +1240 3.05 3.15 116.25 0.0621262 0.0783423 -0.0619376 -0.00193475 -0.0783081 0.00196418 0.0 +1241 3.05 3.15 123.75 0.0258006 0.041661 -0.0259602 0.0203971 -0.0415221 -0.0204713 0.0 +1242 3.05 3.15 131.25 -0.00984299 0.0033761 0.0098454 0.0334746 -0.00365493 -0.0333855 0.0 +1243 3.05 3.15 138.75 -0.0442769 -0.0350514 0.0443307 0.0414554 0.0352449 -0.041497 0.0 +1244 3.05 3.15 146.25 -0.091463 -0.0871559 0.0914155 0.052571 0.0871283 -0.0525267 0.0 +1245 3.05 3.15 153.75 -0.160353 -0.160828 0.160224 0.0723048 0.160761 -0.0723438 0.0 +1246 3.05 3.15 161.25 -0.243335 -0.247674 0.243164 0.0993507 0.247967 -0.0995663 0.0 +1247 3.05 3.15 168.75 -0.318898 -0.326134 0.319007 0.126072 0.32627 -0.126173 0.0 +1248 3.05 3.15 176.25 -0.36419 -0.372832 0.36427 0.142724 0.372732 -0.142595 0.0 +1249 3.05 3.25 3.75 -707.917 46.1555 707.917 14705.3 -46.1555 -14705.3 0.0 +1250 3.05 3.25 11.25 -403.239 -21.7092 403.239 4225.41 21.7092 -4225.41 0.0 +1251 3.05 3.25 18.75 -168.322 -33.4945 168.322 1198.15 33.4945 -1198.15 0.0 +1252 3.05 3.25 26.25 -49.4611 -17.619 49.4611 265.09 17.619 -265.09 0.0 +1253 3.05 3.25 33.75 -9.19503 -4.34197 9.19508 37.0193 4.34196 -37.0193 0.0 +1254 3.05 3.25 41.25 -0.984275 -0.283052 0.984305 2.13686 0.283053 -2.13689 0.0 +1255 3.05 3.25 48.75 -0.18842 -0.24192 0.188469 0.12944 0.241853 -0.129426 0.0 +1256 3.05 3.25 56.25 -0.14452 -0.42971 0.144635 0.148393 0.42977 -0.148431 0.0 +1257 3.05 3.25 63.75 -0.142141 -0.341575 0.142225 0.0603106 0.341607 -0.0603114 0.0 +1258 3.05 3.25 71.25 -0.120366 -0.235824 0.120331 -0.00584193 0.236031 0.00590595 0.0 +1259 3.05 3.25 78.75 -0.0648858 -0.155118 0.0648497 -0.0407089 0.155197 0.0406872 0.0 +1260 3.05 3.25 86.25 -0.0170367 -0.0778598 0.0169629 -0.0444295 0.0780579 0.0444343 0.0 +1261 3.05 3.25 93.75 0.0177195 -0.00503444 -0.0176269 -0.0424893 0.00514769 0.042496 0.0 +1262 3.05 3.25 101.25 0.0462891 0.05416 -0.0462865 -0.0373615 -0.0542229 0.0373631 0.0 +1263 3.05 3.25 108.75 0.0573669 0.084333 -0.0573216 -0.0224864 -0.0844456 0.0224838 0.0 +1264 3.05 3.25 116.25 0.0451776 0.0795648 -0.0451227 -0.00389795 -0.0795657 0.00392705 0.0 +1265 3.05 3.25 123.75 0.0215897 0.0526945 -0.021368 0.0103573 -0.0529347 -0.010223 0.0 +1266 3.05 3.25 131.25 -0.00169711 0.0202141 0.00167047 0.0191787 -0.0203379 -0.0191286 0.0 +1267 3.05 3.25 138.75 -0.0264021 -0.0159575 0.0263373 0.0263274 0.0160538 -0.0263645 0.0 +1268 3.05 3.25 146.25 -0.0639974 -0.0644796 0.063985 0.0366322 0.0642138 -0.0364741 0.0 +1269 3.05 3.25 153.75 -0.119886 -0.129575 0.119896 0.0530471 0.129703 -0.0531036 0.0 +1270 3.05 3.25 161.25 -0.186549 -0.203618 0.186351 0.0742664 0.20364 -0.0742798 0.0 +1271 3.05 3.25 168.75 -0.246276 -0.269152 0.246288 0.0946959 0.269294 -0.0948405 0.0 +1272 3.05 3.25 176.25 -0.281602 -0.307458 0.281688 0.107277 0.307531 -0.107285 0.0 +1273 3.05 3.35 3.75 -365.113 209.441 365.113 9554.04 -209.441 -9554.04 0.0 +1274 3.05 3.35 11.25 -204.246 81.0767 204.246 3280.1 -81.0766 -3280.1 0.0 +1275 3.05 3.35 18.75 -79.3542 9.6114 79.3542 951.267 -9.61141 -951.267 0.0 +1276 3.05 3.35 26.25 -20.8335 -5.94072 20.8335 209.249 5.9407 -209.249 0.0 +1277 3.05 3.35 33.75 -3.39742 -2.81825 3.39744 28.9771 2.81824 -28.9771 0.0 +1278 3.05 3.35 41.25 -0.403877 -0.37604 0.403872 1.67216 0.375997 -1.67217 0.0 +1279 3.05 3.35 48.75 -0.0863015 -0.268756 0.0862503 0.0304183 0.2687 -0.0303612 0.0 +1280 3.05 3.35 56.25 -0.0467076 -0.385723 0.0467254 0.0764897 0.385756 -0.0765678 0.0 +1281 3.05 3.35 63.75 -0.0765137 -0.296157 0.076492 0.0332949 0.296254 -0.033302 0.0 +1282 3.05 3.35 71.25 -0.0737102 -0.217777 0.0736319 -0.011919 0.217711 0.0118976 0.0 +1283 3.05 3.35 78.75 -0.0386226 -0.164005 0.0385937 -0.0252131 0.164091 0.0252167 0.0 +1284 3.05 3.35 86.25 -0.00860859 -0.0968502 0.00848829 -0.0245854 0.0969682 0.0245984 0.0 +1285 3.05 3.35 93.75 0.0147737 -0.0236231 -0.0147163 -0.0288229 0.0237517 0.0288162 0.0 +1286 3.05 3.35 101.25 0.0330742 0.0394288 -0.0329504 -0.0272844 -0.0394857 0.0273121 0.0 +1287 3.05 3.35 108.75 0.0377886 0.0770313 -0.0378089 -0.0166062 -0.0771797 0.0166531 0.0 +1288 3.05 3.35 116.25 0.0269164 0.0808568 -0.0269524 -0.00526022 -0.0808528 0.00523792 0.0 +1289 3.05 3.35 123.75 0.00994602 0.0605897 -0.00992017 0.00301009 -0.06072 -0.00291031 0.0 +1290 3.05 3.35 131.25 -0.00533206 0.0321631 0.00513532 0.00937287 -0.0322053 -0.00941624 0.0 +1291 3.05 3.35 138.75 -0.0198079 0.00170782 0.0198683 0.0152825 -0.00186433 -0.0152538 0.0 +1292 3.05 3.35 146.25 -0.0421542 -0.0369206 0.0421364 0.0228346 0.0366588 -0.0227076 0.0 +1293 3.05 3.35 153.75 -0.0772172 -0.0895244 0.0772434 0.0344402 0.0896002 -0.0344561 0.0 +1294 3.05 3.35 161.25 -0.121604 -0.151599 0.12161 0.0498996 0.151602 -0.0499331 0.0 +1295 3.05 3.35 168.75 -0.163376 -0.208149 0.163288 0.0652244 0.208133 -0.0652161 0.0 +1296 3.05 3.35 176.25 -0.188553 -0.242014 0.18862 0.0748184 0.241996 -0.0748296 0.0 +1297 3.05 3.45 3.75 -49.0063 211.636 49.0063 4534.02 -211.636 -4534.02 0.0 +1298 3.05 3.45 11.25 -16.2879 99.9048 16.2879 1783.56 -99.9048 -1783.56 0.0 +1299 3.05 3.45 18.75 1.92371 24.1588 -1.92369 528.913 -24.1588 -528.913 0.0 +1300 3.05 3.45 26.25 3.92081 0.239734 -3.92085 114.895 -0.239708 -114.895 0.0 +1301 3.05 3.45 33.75 1.33681 -1.29813 -1.33683 15.4468 1.29814 -15.4467 0.0 +1302 3.05 3.45 41.25 0.0515692 -0.168192 -0.0515773 0.808296 0.168187 -0.808324 0.0 +1303 3.05 3.45 48.75 -0.0454932 -0.172325 0.0455576 -0.0119284 0.172203 0.0119136 0.0 +1304 3.05 3.45 56.25 -0.00725921 -0.261217 0.00720111 0.0402311 0.261254 -0.040187 0.0 +1305 3.05 3.45 63.75 -0.0304125 -0.195611 0.0304302 0.0163773 0.195633 -0.0163835 0.0 +1306 3.05 3.45 71.25 -0.0332991 -0.159008 0.0333114 -0.00806962 0.159016 0.00804613 0.0 +1307 3.05 3.45 78.75 -0.0178735 -0.133654 0.0179131 -0.00824974 0.13361 0.00825353 0.0 +1308 3.05 3.45 86.25 -0.00502976 -0.0823886 0.00511234 -0.00794398 0.0823682 0.00794143 0.0 +1309 3.05 3.45 93.75 0.00414406 -0.0240697 -0.00419551 -0.0119802 0.0240974 0.0119811 0.0 +1310 3.05 3.45 101.25 0.0110567 0.0255518 -0.0111244 -0.0104323 -0.025573 0.0104402 0.0 +1311 3.05 3.45 108.75 0.0138462 0.0574772 -0.013883 -0.00606324 -0.0575893 0.00608259 0.0 +1312 3.05 3.45 116.25 0.011077 0.0635865 -0.0110606 -0.00305434 -0.0635874 0.00307944 0.0 +1313 3.05 3.45 123.75 0.00449426 0.0488256 -0.00448388 0.000439858 -0.0487677 -0.000429246 0.0 +1314 3.05 3.45 131.25 -0.0019067 0.0282409 0.0019165 0.0047807 -0.028183 -0.00479583 0.0 +1315 3.05 3.45 138.75 -0.00725526 0.00817585 0.0071253 0.00823976 -0.0082291 -0.00826636 0.0 +1316 3.05 3.45 146.25 -0.0164527 -0.017166 0.0163605 0.0119186 0.0170814 -0.0118721 0.0 +1317 3.05 3.45 153.75 -0.0355769 -0.0560084 0.0355731 0.0191433 0.0558956 -0.0190579 0.0 +1318 3.05 3.45 161.25 -0.0646594 -0.106219 0.0647645 0.0307881 0.106203 -0.0308022 0.0 +1319 3.05 3.45 168.75 -0.0953586 -0.154516 0.0954731 0.0434057 0.154565 -0.0434184 0.0 +1320 3.05 3.45 176.25 -0.115325 -0.184291 0.11528 0.0516029 0.184203 -0.0515372 0.0 +1321 3.05 3.55 3.75 58.2865 95.694 -58.2865 1303.18 -95.694 -1303.18 0.0 +1322 3.05 3.55 11.25 43.7842 47.0725 -43.7842 564.702 -47.0725 -564.702 0.0 +1323 3.05 3.55 18.75 24.1468 11.6001 -24.1468 170.104 -11.6002 -170.104 0.0 +1324 3.05 3.55 26.25 9.2032 0.165595 -9.2032 36.0656 -0.165608 -36.0656 0.0 +1325 3.05 3.55 33.75 2.10018 -0.495089 -2.10018 4.59251 0.495098 -4.5925 0.0 +1326 3.05 3.55 41.25 0.159888 0.0314295 -0.159875 0.213805 -0.0314347 -0.213825 0.0 +1327 3.05 3.55 48.75 -0.0316332 -0.0209589 0.0316297 0.0113881 0.020965 -0.011392 0.0 +1328 3.05 3.55 56.25 -0.00590874 -0.08247 0.00589294 0.029912 0.0824799 -0.0299018 0.0 +1329 3.05 3.55 63.75 -0.00460387 -0.0639712 0.00458972 0.0134455 0.0639916 -0.0134371 0.0 +1330 3.05 3.55 71.25 -0.00323754 -0.0605657 0.00327371 0.00123371 0.0605309 -0.00124148 0.0 +1331 3.05 3.55 78.75 -0.000975075 -0.0526099 0.000959984 0.00021812 0.052629 -0.000218025 0.0 +1332 3.05 3.55 86.25 -0.00152766 -0.0304211 0.00152531 -0.000124893 0.0304344 0.000128979 0.0 +1333 3.05 3.55 93.75 -0.00281045 -0.0103052 0.00282543 -0.000164696 0.0103138 0.000165631 0.0 +1334 3.05 3.55 101.25 -0.000794283 0.00655645 0.00082915 9.05452e-05 -0.0065146 -9.18973e-05 0.0 +1335 3.05 3.55 108.75 0.0048571 0.0208882 -0.00483972 -0.00172205 -0.020898 0.00171912 0.0 +1336 3.05 3.55 116.25 0.00910593 0.0261263 -0.00910381 -0.00286916 -0.026165 0.00289949 0.0 +1337 3.05 3.55 123.75 0.00835341 0.0213906 -0.00837047 -0.000577344 -0.0213633 0.000556754 0.0 +1338 3.05 3.55 131.25 0.00484672 0.0140179 -0.00483896 0.00261085 -0.0140112 -0.00259889 0.0 +1339 3.05 3.55 138.75 0.00145793 0.00803444 -0.00146708 0.00365082 -0.00802698 -0.00365445 0.0 +1340 3.05 3.55 146.25 -0.00319952 -0.000185068 0.00323208 0.00391313 0.000156672 -0.00387595 0.0 +1341 3.05 3.55 153.75 -0.0136071 -0.0160629 0.0136006 0.0069895 0.0160638 -0.00699597 0.0 +1342 3.05 3.55 161.25 -0.0307544 -0.0391932 0.0307909 0.0140586 0.0392269 -0.0140635 0.0 +1343 3.05 3.55 168.75 -0.0498663 -0.0628118 0.0498782 0.0225481 0.0628021 -0.0225421 0.0 +1344 3.05 3.55 176.25 -0.0625385 -0.0776921 0.0625437 0.0282624 0.0776849 -0.0282597 0.0 +1345 3.05 3.65 3.75 14.7738 9.01288 -14.7738 99.4234 -9.01288 -99.4234 0.0 +1346 3.05 3.65 11.25 10.4256 4.10096 -10.4256 45.9297 -4.10096 -45.9297 0.0 +1347 3.05 3.65 18.75 5.33829 0.564282 -5.33829 13.8766 -0.564281 -13.8766 0.0 +1348 3.05 3.65 26.25 1.92055 -0.318539 -1.92055 2.83407 0.318537 -2.83407 0.0 +1349 3.05 3.65 33.75 0.431842 -0.140656 -0.431843 0.348739 0.140656 -0.348739 0.0 +1350 3.05 3.65 41.25 0.0364247 0.00723669 -0.0364242 0.0264389 -0.00723644 -0.0264393 0.0 +1351 3.05 3.65 48.75 -0.0100345 0.0159315 0.0100318 0.0080024 -0.0159293 -0.00800035 0.0 +1352 3.05 3.65 56.25 -0.00452025 0.00778732 0.00451941 0.00551883 -0.00778686 -0.00552083 0.0 +1353 3.05 3.65 63.75 -0.000672337 0.00521555 0.000670408 0.00280248 -0.00521397 -0.00280318 0.0 +1354 3.05 3.65 71.25 0.000360923 0.00171355 -0.00036216 0.00121365 -0.00171269 -0.00121435 0.0 +1355 3.05 3.65 78.75 6.70805e-05 0.000819412 -6.59271e-05 0.000597606 -0.000817676 -0.000597435 0.0 +1356 3.05 3.65 86.25 -0.00057186 0.000644185 0.000572355 0.000567504 -0.00064307 -0.000567647 0.0 +1357 3.05 3.65 93.75 -0.000751471 -0.00106817 0.000749874 0.000757072 0.00106639 -0.000757055 0.0 +1358 3.05 3.65 101.25 0.000275919 -0.00183009 -0.000275096 0.000255174 0.00183474 -0.00025562 0.0 +1359 3.05 3.65 108.75 0.00189848 -0.000761837 -0.00189497 -0.000636546 0.000759074 0.000637236 0.0 +1360 3.05 3.65 116.25 0.00236351 -0.000115402 -0.00236272 -0.000553323 0.000119324 0.000553044 0.0 +1361 3.05 3.65 123.75 0.00106135 -0.00107726 -0.00106142 0.000592741 0.00108013 -0.000595129 0.0 +1362 3.05 3.65 131.25 -0.000675214 -0.0023987 0.000676951 0.00145629 0.00239971 -0.00145617 0.0 +1363 3.05 3.65 138.75 -0.00134281 -0.00270273 0.00134522 0.00120903 0.00269853 -0.00120659 0.0 +1364 3.05 3.65 146.25 -0.000900174 -0.00203273 0.000901187 0.000435489 0.00203583 -0.00043519 0.0 +1365 3.05 3.65 153.75 -0.000477871 -0.00132233 0.00047692 0.000219008 0.00131769 -0.000216421 0.0 +1366 3.05 3.65 161.25 -0.000970611 -0.00119912 0.000968838 0.000989395 0.00120357 -0.000993014 0.0 +1367 3.05 3.65 168.75 -0.00221265 -0.00158211 0.00221741 0.00227827 0.00158658 -0.00228145 0.0 +1368 3.05 3.65 176.25 -0.00325813 -0.00197769 0.00326165 0.00322864 0.00198236 -0.00323014 0.0 +1369 3.15 3.15 3.75 -956.411 -157.961 956.411 21490.2 157.961 -21490.2 0.0 +1370 3.15 3.15 11.25 -539.133 -158.376 539.133 4570.6 158.376 -4570.6 0.0 +1371 3.15 3.15 18.75 -230.746 -100.448 230.746 1239.08 100.448 -1239.08 0.0 +1372 3.15 3.15 26.25 -69.0286 -41.453 69.0285 264.322 41.4531 -264.322 0.0 +1373 3.15 3.15 33.75 -11.9443 -9.95787 11.9443 34.0693 9.95793 -34.0693 0.0 +1374 3.15 3.15 41.25 -0.582646 -0.953585 0.58261 1.49815 0.953585 -1.49815 0.0 +1375 3.15 3.15 48.75 -0.185725 -0.189058 0.185672 0.262739 0.188971 -0.262688 0.0 +1376 3.15 3.15 56.25 -0.35028 -0.339487 0.350287 0.209512 0.33955 -0.209522 0.0 +1377 3.15 3.15 63.75 -0.251984 -0.259721 0.252092 0.053384 0.25962 -0.0533321 0.0 +1378 3.15 3.15 71.25 -0.171035 -0.17401 0.170979 -0.00382131 0.173971 0.003789 0.0 +1379 3.15 3.15 78.75 -0.103081 -0.108356 0.103106 -0.0377398 0.108153 0.0377189 0.0 +1380 3.15 3.15 86.25 -0.0427632 -0.046394 0.0427713 -0.0466376 0.0463966 0.046639 0.0 +1381 3.15 3.15 93.75 0.00566927 0.00495154 -0.00569908 -0.0428492 -0.00499621 0.0428512 0.0 +1382 3.15 3.15 101.25 0.0504745 0.0463917 -0.0505543 -0.0360707 -0.0464682 0.0360915 0.0 +1383 3.15 3.15 108.75 0.0794281 0.0686813 -0.0795551 -0.0228925 -0.0688457 0.0229235 0.0 +1384 3.15 3.15 116.25 0.0742594 0.061464 -0.0741882 -0.00450275 -0.0615471 0.00449575 0.0 +1385 3.15 3.15 123.75 0.0412054 0.0335455 -0.0410459 0.0122873 -0.0334909 -0.0122658 0.0 +1386 3.15 3.15 131.25 0.00256192 0.00204886 -0.00232937 0.0225283 -0.00204045 -0.0224878 0.0 +1387 3.15 3.15 138.75 -0.0317873 -0.0281822 0.0319935 0.0275685 0.0282669 -0.0275469 0.0 +1388 3.15 3.15 146.25 -0.0711984 -0.0672197 0.0711102 0.0343857 0.0670901 -0.0343675 0.0 +1389 3.15 3.15 153.75 -0.126399 -0.123952 0.126399 0.0498039 0.123889 -0.049802 0.0 +1390 3.15 3.15 161.25 -0.195704 -0.194707 0.195608 0.074158 0.194762 -0.0742025 0.0 +1391 3.15 3.15 168.75 -0.261579 -0.261942 0.261393 0.100026 0.261901 -0.100036 0.0 +1392 3.15 3.15 176.25 -0.301524 -0.302836 0.301604 0.116713 0.302746 -0.116682 0.0 +1393 3.15 3.25 3.75 -650.193 134.226 650.193 17650.1 -134.226 -17650.1 0.0 +1394 3.15 3.25 11.25 -365.979 7.48146 365.979 4109.37 -7.48145 -4109.37 0.0 +1395 3.15 3.25 18.75 -155.208 -30.119 155.208 1115.3 30.119 -1115.3 0.0 +1396 3.15 3.25 26.25 -46.6783 -20.0797 46.6784 237.228 20.0796 -237.228 0.0 +1397 3.15 3.25 33.75 -8.72374 -5.70064 8.7238 31.186 5.70056 -31.186 0.0 +1398 3.15 3.25 41.25 -0.780005 -0.490403 0.779991 1.61053 0.490338 -1.61049 0.0 +1399 3.15 3.25 48.75 -0.160056 -0.188506 0.160035 0.172817 0.188447 -0.172832 0.0 +1400 3.15 3.25 56.25 -0.197253 -0.356173 0.197337 0.156424 0.35612 -0.156432 0.0 +1401 3.15 3.25 63.75 -0.16741 -0.265816 0.167365 0.0571964 0.265815 -0.0571946 0.0 +1402 3.15 3.25 71.25 -0.130237 -0.184874 0.130267 0.00234427 0.184786 -0.0023759 0.0 +1403 3.15 3.25 78.75 -0.0843061 -0.129234 0.0843542 -0.022381 0.129426 0.0223457 0.0 +1404 3.15 3.25 86.25 -0.03979 -0.0657959 0.0398035 -0.0277737 0.0658759 0.0277741 0.0 +1405 3.15 3.25 93.75 -0.00238909 -0.00774928 0.00240125 -0.0282358 0.00785304 0.028235 0.0 +1406 3.15 3.25 101.25 0.0303823 0.0357636 -0.0303854 -0.0222829 -0.0356794 0.0222854 0.0 +1407 3.15 3.25 108.75 0.0506977 0.0585556 -0.0506894 -0.0102554 -0.0584086 0.0102105 0.0 +1408 3.15 3.25 116.25 0.0502104 0.0558613 -0.050186 0.00160465 -0.0559321 -0.00157822 0.0 +1409 3.15 3.25 123.75 0.0345455 0.035523 -0.0344902 0.0104005 -0.0355763 -0.0103987 0.0 +1410 3.15 3.25 131.25 0.0151486 0.0110531 -0.015251 0.0158941 -0.0112994 -0.0157901 0.0 +1411 3.15 3.25 138.75 -0.0050971 -0.013565 0.00511178 0.019016 0.013684 -0.0190174 0.0 +1412 3.15 3.25 146.25 -0.0345021 -0.0459216 0.0345176 0.0233695 0.0459787 -0.0233686 0.0 +1413 3.15 3.25 153.75 -0.0793413 -0.0928252 0.079314 0.0332493 0.092565 -0.033146 0.0 +1414 3.15 3.25 161.25 -0.134603 -0.150218 0.13452 0.0491025 0.150129 -0.0490542 0.0 +1415 3.15 3.25 168.75 -0.18553 -0.204163 0.185623 0.0660649 0.204474 -0.0662343 0.0 +1416 3.15 3.25 176.25 -0.216402 -0.237045 0.216252 0.0770174 0.237253 -0.0771667 0.0 +1417 3.15 3.35 3.75 -275.127 338.879 275.127 11754.8 -338.879 -11754.8 0.0 +1418 3.15 3.35 11.25 -149.928 134.982 149.928 3283.86 -134.982 -3283.86 0.0 +1419 3.15 3.35 18.75 -59.9126 24.6097 59.9126 901.613 -24.6098 -901.613 0.0 +1420 3.15 3.35 26.25 -17.3899 -3.93464 17.3899 190.736 3.93463 -190.736 0.0 +1421 3.15 3.35 33.75 -3.54567 -2.80737 3.54565 25.2257 2.80735 -25.2256 0.0 +1422 3.15 3.35 41.25 -0.5028 -0.297045 0.502764 1.39094 0.297079 -1.39098 0.0 +1423 3.15 3.35 48.75 -0.0786613 -0.21351 0.0785848 0.0781363 0.213592 -0.0781848 0.0 +1424 3.15 3.35 56.25 -0.0749822 -0.340141 0.0749439 0.0885512 0.340151 -0.0884967 0.0 +1425 3.15 3.35 63.75 -0.0903085 -0.233796 0.0902789 0.0251462 0.233735 -0.0251422 0.0 +1426 3.15 3.35 71.25 -0.0742191 -0.168217 0.0742917 -0.0123034 0.168118 0.0122774 0.0 +1427 3.15 3.35 78.75 -0.0442502 -0.131009 0.0441129 -0.0159319 0.131038 0.0159283 0.0 +1428 3.15 3.35 86.25 -0.0140131 -0.074057 0.0140325 -0.0175558 0.0741452 0.0175633 0.0 +1429 3.15 3.35 93.75 0.0107044 -0.016984 -0.0107096 -0.0224514 0.0169392 0.0224516 0.0 +1430 3.15 3.35 101.25 0.0273468 0.0283944 -0.0273571 -0.0182899 -0.0285471 0.0182767 0.0 +1431 3.15 3.35 108.75 0.0341621 0.05763 -0.0342268 -0.00978414 -0.0577058 0.00979257 0.0 +1432 3.15 3.35 116.25 0.0303908 0.0623219 -0.030319 -0.00386081 -0.0623156 0.00386282 0.0 +1433 3.15 3.35 123.75 0.0193498 0.0473473 -0.0192958 0.00117491 -0.0471971 -0.0012989 0.0 +1434 3.15 3.35 131.25 0.00780853 0.0276758 -0.00776157 0.00608841 -0.0275645 -0.00615459 0.0 +1435 3.15 3.35 138.75 -0.00281951 0.00980171 0.0028173 0.00899561 -0.0103754 -0.00875617 0.0 +1436 3.15 3.35 146.25 -0.0177849 -0.0122083 0.0178591 0.0111587 0.0120863 -0.0110729 0.0 +1437 3.15 3.35 153.75 -0.0428755 -0.0468128 0.0427986 0.0164875 0.0467219 -0.0164577 0.0 +1438 3.15 3.35 161.25 -0.0757418 -0.0922436 0.0757394 0.0263114 0.0922185 -0.0263166 0.0 +1439 3.15 3.35 168.75 -0.107642 -0.136426 0.107584 0.0374315 0.136228 -0.0373364 0.0 +1440 3.15 3.35 176.25 -0.127132 -0.16362 0.127062 0.0447389 0.163558 -0.0447096 0.0 +1441 3.15 3.45 3.75 46.6657 326.302 -46.6657 5480.32 -326.302 -5480.32 0.0 +1442 3.15 3.45 11.25 39.3764 154.267 -39.3764 1815.17 -154.267 -1815.17 0.0 +1443 3.15 3.45 18.75 22.0244 42.3138 -22.0244 505.91 -42.3138 -505.91 0.0 +1444 3.15 3.45 26.25 7.29371 4.3406 -7.29372 105.668 -4.3406 -105.668 0.0 +1445 3.15 3.45 33.75 0.914334 -0.603679 -0.914334 13.7287 0.603677 -13.7287 0.0 +1446 3.15 3.45 41.25 -0.158065 -0.0326246 0.158056 0.711344 0.0326778 -0.711315 0.0 +1447 3.15 3.45 48.75 -0.0159738 -0.166204 0.0159671 0.0133403 0.16615 -0.0133219 0.0 +1448 3.15 3.45 56.25 -0.00488119 -0.253233 0.00491148 0.0471634 0.253244 -0.0471562 0.0 +1449 3.15 3.45 63.75 -0.0387289 -0.159738 0.0387929 0.00737726 0.159718 -0.00733701 0.0 +1450 3.15 3.45 71.25 -0.0342167 -0.123108 0.0342095 -0.0134089 0.123119 0.0133794 0.0 +1451 3.15 3.45 78.75 -0.0183889 -0.107233 0.0183971 -0.00702141 0.10719 0.00700092 0.0 +1452 3.15 3.45 86.25 -0.00224304 -0.0672358 0.00223149 -0.00740458 0.06732 0.00740179 0.0 +1453 3.15 3.45 93.75 0.00883338 -0.0235886 -0.00886164 -0.0107045 0.0235433 0.0107089 0.0 +1454 3.15 3.45 101.25 0.0123235 0.015828 -0.012348 -0.00762384 -0.0158064 0.00760398 0.0 +1455 3.15 3.45 108.75 0.0118714 0.0452165 -0.0118843 -0.00509858 -0.0451645 0.00505638 0.0 +1456 3.15 3.45 116.25 0.00859034 0.0531575 -0.00865278 -0.00443542 -0.0532255 0.00444204 0.0 +1457 3.15 3.45 123.75 0.00258788 0.0423716 -0.00256692 -0.00117868 -0.0424366 0.00121603 0.0 +1458 3.15 3.45 131.25 -0.00267606 0.0273421 0.00253797 0.00313079 -0.0273467 -0.00313102 0.0 +1459 3.15 3.45 138.75 -0.00458018 0.0145732 0.00460276 0.00490419 -0.0145389 -0.00492224 0.0 +1460 3.15 3.45 146.25 -0.00839922 -0.00315912 0.00836753 0.00593978 0.00307101 -0.00589991 0.0 +1461 3.15 3.45 153.75 -0.0209444 -0.0338477 0.020904 0.0108714 0.0337667 -0.0108179 0.0 +1462 3.15 3.45 161.25 -0.0433497 -0.0756648 0.043318 0.020838 0.0757092 -0.0208768 0.0 +1463 3.15 3.45 168.75 -0.0683875 -0.116448 0.0683041 0.0321496 0.116416 -0.0321632 0.0 +1464 3.15 3.45 176.25 -0.0847651 -0.141502 0.0847114 0.0395279 0.141475 -0.0394984 0.0 +1465 3.15 3.55 3.75 113.453 150.898 -113.453 1527.06 -150.898 -1527.06 0.0 +1466 3.15 3.55 11.25 75.6979 75.7027 -75.6979 574.861 -75.7027 -574.861 0.0 +1467 3.15 3.55 18.75 35.5664 22.022 -35.5664 161.502 -22.022 -161.502 0.0 +1468 3.15 3.55 26.25 10.941 2.87256 -10.941 32.6315 -2.87256 -32.6315 0.0 +1469 3.15 3.55 33.75 1.72278 0.0375193 -1.7228 3.93133 -0.0374953 -3.93134 0.0 +1470 3.15 3.55 41.25 0.0142898 0.108618 -0.0143047 0.136579 -0.108608 -0.136591 0.0 +1471 3.15 3.55 48.75 0.00816166 -0.0380896 -0.00814953 0.010256 0.0380813 -0.0102749 0.0 +1472 3.15 3.55 56.25 0.0124306 -0.0965177 -0.0124185 0.0389722 0.0965193 -0.0389853 0.0 +1473 3.15 3.55 63.75 -0.00596526 -0.0594462 0.00595775 0.0133454 0.0594234 -0.0133421 0.0 +1474 3.15 3.55 71.25 -0.00358192 -0.0502022 0.00356674 -0.001576 0.0502323 0.00155584 0.0 +1475 3.15 3.55 78.75 0.000427233 -0.0447805 -0.000397985 -0.000360659 0.0448087 0.000358663 0.0 +1476 3.15 3.55 86.25 0.00221954 -0.0289613 -0.00224103 0.000309741 0.0290046 -0.000307859 0.0 +1477 3.15 3.55 93.75 0.00167606 -0.0143391 -0.0016639 0.000808733 0.0143451 -0.000807743 0.0 +1478 3.15 3.55 101.25 0.00112826 0.001235 -0.00111313 0.000644257 -0.00118443 -0.000655222 0.0 +1479 3.15 3.55 108.75 0.00330286 0.0161835 -0.00328457 -0.00210868 -0.0161684 0.00210336 0.0 +1480 3.15 3.55 116.25 0.00487387 0.021415 -0.00489745 -0.00297998 -0.0214282 0.00298062 0.0 +1481 3.15 3.55 123.75 0.00293975 0.016899 -0.00293859 0.000267886 -0.0168868 -0.000264266 0.0 +1482 3.15 3.55 131.25 -0.000108452 0.0105143 0.000105308 0.0034128 -0.0105219 -0.00340601 0.0 +1483 3.15 3.55 138.75 -0.0019759 0.00532812 0.00199003 0.00354695 -0.00537804 -0.00353067 0.0 +1484 3.15 3.55 146.25 -0.00603215 -0.00319989 0.00603288 0.00350166 0.0031536 -0.00347955 0.0 +1485 3.15 3.55 153.75 -0.0177873 -0.0194322 0.017795 0.00752565 0.0194683 -0.00752983 0.0 +1486 3.15 3.55 161.25 -0.0380423 -0.0418389 0.038072 0.0161592 0.041823 -0.016153 0.0 +1487 3.15 3.55 168.75 -0.0604183 -0.0634358 0.0604406 0.025925 0.0634577 -0.0259272 0.0 +1488 3.15 3.55 176.25 -0.0751419 -0.0766462 0.0751429 0.0322594 0.0766293 -0.0322626 0.0 +1489 3.15 3.65 3.75 22.6045 15.6092 -22.6045 111.52 -15.6092 -111.52 0.0 +1490 3.15 3.65 11.25 14.9574 7.74254 -14.9574 45.5783 -7.74254 -45.5783 0.0 +1491 3.15 3.65 18.75 6.90511 1.96171 -6.90511 12.5917 -1.96171 -12.5917 0.0 +1492 3.15 3.65 26.25 2.1033 0.0752923 -2.1033 2.33462 -0.0752924 -2.33462 0.0 +1493 3.15 3.65 33.75 0.345582 -0.0501268 -0.345582 0.224112 0.0501278 -0.224114 0.0 +1494 3.15 3.65 41.25 0.0113715 0.0247154 -0.0113732 -0.00142732 -0.0247142 0.00142719 0.0 +1495 3.15 3.65 48.75 6.87534e-06 0.0140289 -8.51151e-06 0.00563543 -0.0140289 -0.00563605 0.0 +1496 3.15 3.65 56.25 0.00107984 0.0029724 -0.00108132 0.0085864 -0.00297002 -0.00858758 0.0 +1497 3.15 3.65 63.75 0.000469516 0.00270845 -0.000469271 0.00350089 -0.00271011 -0.00350175 0.0 +1498 3.15 3.65 71.25 0.00166924 0.00153728 -0.00167029 0.000471675 -0.00153501 -0.000472585 0.0 +1499 3.15 3.65 78.75 0.00174748 0.00147027 -0.00174735 0.000292892 -0.00147097 -0.000293091 0.0 +1500 3.15 3.65 86.25 0.000889203 0.00101364 -0.000888457 0.000849106 -0.00101254 -0.000849064 0.0 +1501 3.15 3.65 93.75 2.8391e-05 -0.000779719 -2.40476e-05 0.00107302 0.000781464 -0.0010731 0.0 +1502 3.15 3.65 101.25 0.000123662 -0.00119237 -0.000121972 0.000258462 0.00119287 -0.000258603 0.0 +1503 3.15 3.65 108.75 0.000918738 -7.37641e-05 -0.000914812 -0.00070731 7.40479e-05 0.000707953 0.0 +1504 3.15 3.65 116.25 0.00087327 0.000204194 -0.000871841 -0.000333298 -0.000200322 0.000333731 0.0 +1505 3.15 3.65 123.75 -0.000487938 -0.000958429 0.000488243 0.000977954 0.000952902 -0.000975387 0.0 +1506 3.15 3.65 131.25 -0.00192454 -0.00214305 0.00192471 0.00156629 0.00213806 -0.00156455 0.0 +1507 3.15 3.65 138.75 -0.00245031 -0.00237129 0.00244858 0.000874281 0.00237286 -0.000874291 0.0 +1508 3.15 3.65 146.25 -0.00267054 -0.00197417 0.00267194 -7.6905e-05 0.00197292 7.72814e-05 0.0 +1509 3.15 3.65 153.75 -0.00396803 -0.00167631 0.00396857 -7.83088e-05 0.00167684 7.95127e-05 0.0 +1510 3.15 3.65 161.25 -0.00685387 -0.0017756 0.00685877 0.001108 0.0017796 -0.00110938 0.0 +1511 3.15 3.65 168.75 -0.0103819 -0.00210183 0.0103815 0.00276801 0.00210519 -0.00277039 0.0 +1512 3.15 3.65 176.25 -0.0127948 -0.0023518 0.0127908 0.00391691 0.00234768 -0.00391514 0.0 +1513 3.25 3.25 3.75 -516.093 207.353 516.093 17519 -207.353 -17519 0.0 +1514 3.25 3.25 11.25 -297.818 30.2999 297.818 3670.93 -30.2999 -3670.93 0.0 +1515 3.25 3.25 18.75 -131.533 -29.3583 131.533 966.016 29.3582 -966.016 0.0 +1516 3.25 3.25 26.25 -41.2561 -23.5547 41.2561 197.399 23.5547 -197.399 0.0 +1517 3.25 3.25 33.75 -7.77181 -7.42064 7.77175 24.324 7.42059 -24.3239 0.0 +1518 3.25 3.25 41.25 -0.520054 -0.786867 0.520059 1.16473 0.786915 -1.16475 0.0 +1519 3.25 3.25 48.75 -0.135385 -0.107324 0.135384 0.176595 0.107322 -0.176651 0.0 +1520 3.25 3.25 56.25 -0.236403 -0.233969 0.236341 0.100092 0.234021 -0.099998 0.0 +1521 3.25 3.25 63.75 -0.177344 -0.160255 0.177338 0.016127 0.160281 -0.0161542 0.0 +1522 3.25 3.25 71.25 -0.134993 -0.110418 0.134999 -0.0109067 0.110353 0.010913 0.0 +1523 3.25 3.25 78.75 -0.0950825 -0.0779897 0.0951253 -0.021928 0.077927 0.0219105 0.0 +1524 3.25 3.25 86.25 -0.0482799 -0.0371325 0.0482478 -0.0253972 0.0372349 0.0254039 0.0 +1525 3.25 3.25 93.75 -0.00935062 -0.00567433 0.00930825 -0.0233964 0.0056727 0.0233906 0.0 +1526 3.25 3.25 101.25 0.0268556 0.0229776 -0.0268747 -0.016636 -0.0229697 0.0166413 0.0 +1527 3.25 3.25 108.75 0.0559475 0.0486988 -0.0559577 -0.010512 -0.0487913 0.0105343 0.0 +1528 3.25 3.25 116.25 0.0599605 0.0541495 -0.0598537 -0.00538128 -0.0541128 0.00538138 0.0 +1529 3.25 3.25 123.75 0.0386584 0.0352012 -0.038683 0.00205185 -0.0351223 -0.00210039 0.0 +1530 3.25 3.25 131.25 0.0113902 0.00756233 -0.0112221 0.0099077 -0.00759024 -0.00983246 0.0 +1531 3.25 3.25 138.75 -0.0116709 -0.0175027 0.0116404 0.0150778 0.0175656 -0.0151232 0.0 +1532 3.25 3.25 146.25 -0.0379372 -0.0440118 0.0378931 0.0202482 0.0440189 -0.0202764 0.0 +1533 3.25 3.25 153.75 -0.0789016 -0.0826345 0.0789715 0.0309487 0.0826604 -0.0309747 0.0 +1534 3.25 3.25 161.25 -0.13326 -0.134571 0.133258 0.0482225 0.134355 -0.0481305 0.0 +1535 3.25 3.25 168.75 -0.185796 -0.186751 0.185766 0.0666972 0.186837 -0.0667545 0.0 +1536 3.25 3.25 176.25 -0.217924 -0.219808 0.217907 0.078575 0.219826 -0.0785566 0.0 +1537 3.25 3.35 3.75 -136.489 468.84 136.489 13261.2 -468.84 -13261.2 0.0 +1538 3.25 3.35 11.25 -76.3677 186.541 76.3677 3006.19 -186.541 -3006.19 0.0 +1539 3.25 3.35 18.75 -34.4387 38.7843 34.4388 785.234 -38.7843 -785.234 0.0 +1540 3.25 3.35 26.25 -12.2064 -2.42532 12.2063 158.413 2.42535 -158.413 0.0 +1541 3.25 3.35 33.75 -3.01753 -3.19124 3.01752 19.5862 3.19127 -19.5862 0.0 +1542 3.25 3.35 41.25 -0.376538 -0.403329 0.376502 0.965951 0.403384 -0.965979 0.0 +1543 3.25 3.35 48.75 -0.0663706 -0.151905 0.066354 0.0762885 0.151928 -0.0763483 0.0 +1544 3.25 3.35 56.25 -0.115811 -0.241426 0.115854 0.0757353 0.241441 -0.0756865 0.0 +1545 3.25 3.35 63.75 -0.10133 -0.1561 0.101333 0.0257088 0.156123 -0.0256754 0.0 +1546 3.25 3.35 71.25 -0.0830317 -0.123866 0.083011 0.00222966 0.123776 -0.00226914 0.0 +1547 3.25 3.35 78.75 -0.0648663 -0.0963338 0.0649114 -0.00193966 0.0962687 0.00191896 0.0 +1548 3.25 3.35 86.25 -0.0348832 -0.0452658 0.0348888 -0.00953403 0.0452114 0.00953002 0.0 +1549 3.25 3.35 93.75 -0.00930256 -0.00606384 0.00931036 -0.0124204 0.00592252 0.0124271 0.0 +1550 3.25 3.35 101.25 0.0100895 0.0236635 -0.0100704 -0.00601918 -0.0236457 0.00599972 0.0 +1551 3.25 3.35 108.75 0.0265883 0.0477513 -0.0265736 -0.00229502 -0.0475016 0.00223504 0.0 +1552 3.25 3.35 116.25 0.0315534 0.0512958 -0.0315658 -0.00201565 -0.0511774 0.00205073 0.0 +1553 3.25 3.35 123.75 0.0223392 0.0342892 -0.0222605 0.00148067 -0.0341723 -0.00152918 0.0 +1554 3.25 3.35 131.25 0.00941799 0.0153327 -0.00949539 0.00600099 -0.015387 -0.00602979 0.0 +1555 3.25 3.35 138.75 0.00192308 0.00676484 -0.0019709 0.00587968 -0.0067599 -0.00587268 0.0 +1556 3.25 3.35 146.25 -0.00390089 0.00228314 0.00390376 0.00216232 -0.00224221 -0.00219 0.0 +1557 3.25 3.35 153.75 -0.0157319 -0.00974298 0.0157634 0.000201998 0.00958756 -0.00010215 0.0 +1558 3.25 3.35 161.25 -0.0344272 -0.0332355 0.0345224 0.00245974 0.0332678 -0.00241767 0.0 +1559 3.25 3.35 168.75 -0.0539332 -0.0604648 0.0538857 0.00692496 0.0604662 -0.00693555 0.0 +1560 3.25 3.35 176.25 -0.0657833 -0.0784772 0.0659121 0.0101981 0.0784511 -0.0101316 0.0 +1561 3.25 3.45 3.75 160.753 453.103 -160.753 6268.16 -453.103 -6268.16 0.0 +1562 3.25 3.45 11.25 98.9204 211.866 -98.9204 1677.08 -211.866 -1677.08 0.0 +1563 3.25 3.45 18.75 41.6475 62.0615 -41.6475 437.04 -62.0615 -437.04 0.0 +1564 3.25 3.45 26.25 10.2776 8.85177 -10.2776 86.3962 -8.85176 -86.3962 0.0 +1565 3.25 3.45 33.75 0.665198 -0.0281349 -0.665216 10.5941 0.0281541 -10.5942 0.0 +1566 3.25 3.45 41.25 -0.225316 -0.0097665 0.225331 0.540446 0.00977707 -0.540423 0.0 +1567 3.25 3.45 48.75 -0.000555537 -0.138966 0.000568013 0.0245727 0.138941 -0.0245583 0.0 +1568 3.25 3.45 56.25 -0.0247081 -0.191676 0.0246253 0.0387653 0.191736 -0.0387721 0.0 +1569 3.25 3.45 63.75 -0.0406244 -0.104835 0.0405644 0.00218269 0.104904 -0.00218938 0.0 +1570 3.25 3.45 71.25 -0.0316041 -0.0868229 0.0315861 -0.00999292 0.086857 0.00997278 0.0 +1571 3.25 3.45 78.75 -0.0244453 -0.0766617 0.0244139 -0.00348801 0.076724 0.00349178 0.0 +1572 3.25 3.45 86.25 -0.00890648 -0.0447902 0.00892778 -0.00721057 0.0446984 0.00720699 0.0 +1573 3.25 3.45 93.75 0.00249213 -0.015882 -0.00250762 -0.00859341 0.0157787 0.00859132 0.0 +1574 3.25 3.45 101.25 0.00593138 0.0124111 -0.00596771 -0.00363029 -0.0123966 0.00362055 0.0 +1575 3.25 3.45 108.75 0.00849249 0.0372762 -0.00846232 -0.00245363 -0.0373616 0.0024942 0.0 +1576 3.25 3.45 116.25 0.00730472 0.0430354 -0.00734682 -0.00257204 -0.0430353 0.00254668 0.0 +1577 3.25 3.45 123.75 0.000252497 0.0319203 -0.000228003 0.00117018 -0.0317262 -0.00121273 0.0 +1578 3.25 3.45 131.25 -0.00509858 0.0202249 0.00511462 0.00424735 -0.0201591 -0.00429141 0.0 +1579 3.25 3.45 138.75 -0.00189225 0.0157697 0.00192964 0.00188411 -0.0157307 -0.00190094 0.0 +1580 3.25 3.45 146.25 0.00595475 0.0116431 -0.0059073 -0.0030478 -0.0116606 0.00308588 0.0 +1581 3.25 3.45 153.75 0.00984054 -0.000318014 -0.00985575 -0.00518825 0.000191851 0.00524895 0.0 +1582 3.25 3.45 161.25 0.00625952 -0.0201284 -0.00627072 -0.00318494 0.0201728 0.00314475 0.0 +1583 3.25 3.45 168.75 -0.00150526 -0.0406308 0.00144698 0.000485931 0.0405933 -0.00047182 0.0 +1584 3.25 3.45 176.25 -0.00732316 -0.0533522 0.00734119 0.00300328 0.0532394 -0.0029465 0.0 +1585 3.25 3.55 3.75 170.017 215.704 -170.017 1682.14 -215.704 -1682.14 0.0 +1586 3.25 3.55 11.25 104.65 108.392 -104.65 523.152 -108.392 -523.152 0.0 +1587 3.25 3.55 18.75 44.2579 34.3622 -44.2579 134.428 -34.3622 -134.428 0.0 +1588 3.25 3.55 26.25 11.5313 6.21431 -11.5313 25.1215 -6.2143 -25.1215 0.0 +1589 3.25 3.55 33.75 1.18823 0.636226 -1.18825 2.77896 -0.636222 -2.77896 0.0 +1590 3.25 3.55 41.25 -0.090997 0.150717 0.0909756 0.0854078 -0.1507 -0.0854088 0.0 +1591 3.25 3.55 48.75 0.0364606 -0.051279 -0.0364402 0.0168919 0.0512661 -0.0168927 0.0 +1592 3.25 3.55 56.25 0.0111486 -0.090247 -0.0111456 0.0363843 0.090261 -0.0363792 0.0 +1593 3.25 3.55 63.75 -0.0105072 -0.0440459 0.0105073 0.00831444 0.0440284 -0.00831955 0.0 +1594 3.25 3.55 71.25 -0.00433658 -0.0361287 0.00434277 -0.00361399 0.0361351 0.00360689 0.0 +1595 3.25 3.55 78.75 -0.000933427 -0.0350331 0.000939583 -0.00100115 0.0350187 0.00100048 0.0 +1596 3.25 3.55 86.25 0.00219006 -0.0262185 -0.00219325 -0.00134055 0.0262088 0.0013392 0.0 +1597 3.25 3.55 93.75 0.00205156 -0.0171976 -0.00207372 -0.0011449 0.0171792 0.00114581 0.0 +1598 3.25 3.55 101.25 0.000259054 -0.00345069 -0.000235304 -0.00113486 0.00346766 0.00114093 0.0 +1599 3.25 3.55 108.75 0.00134517 0.0104896 -0.0013327 -0.00307345 -0.0104784 0.00307104 0.0 +1600 3.25 3.55 116.25 0.00233262 0.0144818 -0.00234223 -0.00230586 -0.0144733 0.00230359 0.0 +1601 3.25 3.55 123.75 0.00096001 0.00998525 -0.000959656 0.00167455 -0.00992985 -0.00169886 0.0 +1602 3.25 3.55 131.25 0.0010997 0.00500791 -0.00110082 0.00353768 -0.00496742 -0.00356791 0.0 +1603 3.25 3.55 138.75 0.00487751 0.00146684 -0.00487922 0.00142544 -0.00148711 -0.00141137 0.0 +1604 3.25 3.55 146.25 0.00734264 -0.00446313 -0.00734662 -0.000638225 0.00441882 0.000652058 0.0 +1605 3.25 3.55 153.75 0.00197693 -0.014869 -0.00196668 0.0013558 0.0148847 -0.00135051 0.0 +1606 3.25 3.55 161.25 -0.0121606 -0.0275418 0.0121409 0.00720885 0.027516 -0.00721154 0.0 +1607 3.25 3.55 168.75 -0.029033 -0.0382301 0.0290399 0.0137359 0.0382374 -0.01375 0.0 +1608 3.25 3.55 176.25 -0.0403659 -0.0441543 0.0403287 0.0177986 0.0441199 -0.0177946 0.0 +1609 3.25 3.65 3.75 29.8469 23.7536 -29.8469 114.399 -23.7536 -114.399 0.0 +1610 3.25 3.65 11.25 18.5821 12.1922 -18.5821 38.9798 -12.1922 -38.9798 0.0 +1611 3.25 3.65 18.75 7.82427 3.7514 -7.82427 9.32709 -3.7514 -9.32709 0.0 +1612 3.25 3.65 26.25 2.01633 0.610607 -2.01633 1.41075 -0.610606 -1.41076 0.0 +1613 3.25 3.65 33.75 0.207925 0.0661693 -0.207923 0.0650148 -0.0661712 -0.0650166 0.0 +1614 3.25 3.65 41.25 -0.0109411 0.0374143 0.0109448 -0.0172484 -0.0374174 0.0172482 0.0 +1615 3.25 3.65 48.75 0.00854362 0.00771035 -0.00854147 0.00574961 -0.00770984 -0.00574854 0.0 +1616 3.25 3.65 56.25 0.00259756 -0.00264422 -0.00260097 0.00942854 0.00264499 -0.00942948 0.0 +1617 3.25 3.65 63.75 -0.000120554 0.00078573 0.00012058 0.00313857 -0.000784598 -0.00313891 0.0 +1618 3.25 3.65 71.25 0.00248101 0.00185637 -0.00248337 0.000268246 -0.00186001 -0.000268224 0.0 +1619 3.25 3.65 78.75 0.00307847 0.00208771 -0.00307844 0.000606822 -0.00209071 -0.000606483 0.0 +1620 3.25 3.65 86.25 0.00187174 0.00124659 -0.00186937 0.00095551 -0.00124275 -0.000955129 0.0 +1621 3.25 3.65 93.75 6.19913e-05 -0.000371204 -6.04736e-05 0.000563209 0.000365014 -0.000562734 0.0 +1622 3.25 3.65 101.25 -0.000928172 -0.000436879 0.000926995 -0.00063032 0.000434748 0.000630276 0.0 +1623 3.25 3.65 108.75 -0.000830659 0.000473082 0.000832415 -0.00140972 -0.00047285 0.00140969 0.0 +1624 3.25 3.65 116.25 -0.000942827 0.000407146 0.00094397 -0.000633585 -0.000410022 0.000634706 0.0 +1625 3.25 3.65 123.75 -0.00166283 -0.000582597 0.001662 0.000718962 0.000586269 -0.000719648 0.0 +1626 3.25 3.65 131.25 -0.00204479 -0.00128755 0.00204388 0.000938967 0.00128792 -0.000939369 0.0 +1627 3.25 3.65 138.75 -0.00182542 -0.00123409 0.00182692 -0.000123482 0.00123642 0.000123147 0.0 +1628 3.25 3.65 146.25 -0.00225266 -0.000702446 0.00225351 -0.00119521 0.000700296 0.00119733 0.0 +1629 3.25 3.65 153.75 -0.00470753 0.000107114 0.0047067 -0.00120089 -0.000106024 0.00120018 0.0 +1630 3.25 3.65 161.25 -0.00916233 0.00120265 0.0091593 -0.000139049 -0.00120213 0.000137897 0.0 +1631 3.25 3.65 168.75 -0.0140233 0.0024012 0.0140238 0.00124784 -0.00240054 -0.00124848 0.0 +1632 3.25 3.65 176.25 -0.0171689 0.00321938 0.0171732 0.00216427 -0.00322149 -0.00216221 0.0 +1633 3.35 3.35 3.75 21.6477 545.28 -21.6477 11815.8 -545.28 -11815.8 0.0 +1634 3.35 3.35 11.25 0.173729 218.755 -0.173719 2394.74 -218.755 -2394.74 0.0 +1635 3.35 3.35 18.75 -9.53806 48.3705 9.53809 598.087 -48.3705 -598.087 0.0 +1636 3.35 3.35 26.25 -7.66274 -1.12322 7.66276 113.819 1.12321 -113.819 0.0 +1637 3.35 3.35 33.75 -2.74384 -3.33129 2.74384 12.9293 3.33125 -12.9293 0.0 +1638 3.35 3.35 41.25 -0.346706 -0.421196 0.346694 0.581284 0.421155 -0.581292 0.0 +1639 3.35 3.35 48.75 -0.0597258 -0.052617 0.0597015 0.0549515 0.0526707 -0.0549747 0.0 +1640 3.35 3.35 56.25 -0.126882 -0.137188 0.126857 0.0379118 0.137277 -0.0378934 0.0 +1641 3.35 3.35 63.75 -0.109892 -0.0878689 0.109868 0.00253737 0.0878685 -0.00255598 0.0 +1642 3.35 3.35 71.25 -0.0980488 -0.073463 0.0980418 -0.0105894 0.0734524 0.0105771 0.0 +1643 3.35 3.35 78.75 -0.0669262 -0.0528742 0.0669078 -0.0108983 0.0530139 0.0109302 0.0 +1644 3.35 3.35 86.25 -0.0219711 -0.0291652 0.0219318 -0.0154295 0.0291951 0.0154292 0.0 +1645 3.35 3.35 93.75 0.00146699 -0.0207303 -0.00146179 -0.0140867 0.020679 0.0140912 0.0 +1646 3.35 3.35 101.25 0.0168709 0.00290498 -0.0169225 -0.00898105 -0.00281588 0.00896964 0.0 +1647 3.35 3.35 108.75 0.0340663 0.0389815 -0.0340623 -0.0103442 -0.039102 0.0103711 0.0 +1648 3.35 3.35 116.25 0.0352042 0.0499497 -0.0351821 -0.0111656 -0.0499387 0.0111689 0.0 +1649 3.35 3.35 123.75 0.0178821 0.0273981 -0.0178368 -0.0038908 -0.0275323 0.00391568 0.0 +1650 3.35 3.35 131.25 0.00245117 -0.00157526 -0.00237029 0.00543782 0.0017713 -0.00545999 0.0 +1651 3.35 3.35 138.75 -0.000452681 -0.0169013 0.000469283 0.00962862 0.0169401 -0.00965926 0.0 +1652 3.35 3.35 146.25 -0.000710544 -0.0221597 0.000754182 0.0101186 0.0223253 -0.0102137 0.0 +1653 3.35 3.35 153.75 -0.0111111 -0.0323046 0.011189 0.0113797 0.0322223 -0.0112957 0.0 +1654 3.35 3.35 161.25 -0.0318368 -0.0542513 0.0318153 0.0143177 0.0540301 -0.014212 0.0 +1655 3.35 3.35 168.75 -0.0531774 -0.0809936 0.0531282 0.0170487 0.0810135 -0.0171249 0.0 +1656 3.35 3.35 176.25 -0.0660009 -0.0992697 0.0659877 0.01838 0.0992028 -0.0183637 0.0 +1657 3.35 3.45 3.75 264.52 547.577 -264.52 6202.93 -547.577 -6202.93 0.0 +1658 3.35 3.45 11.25 146.664 252.974 -146.664 1327.09 -252.974 -1327.09 0.0 +1659 3.35 3.45 18.75 55.5979 76.7316 -55.5979 320.33 -76.7316 -320.33 0.0 +1660 3.35 3.45 26.25 12.0322 12.2347 -12.0322 58.3259 -12.2346 -58.3259 0.0 +1661 3.35 3.45 33.75 0.596069 0.246217 -0.596031 6.50975 -0.246209 -6.50972 0.0 +1662 3.35 3.45 41.25 -0.174085 -0.0773709 0.174074 0.316004 0.0773448 -0.316022 0.0 +1663 3.35 3.45 48.75 -0.00445633 -0.0860244 0.00448977 0.0121395 0.0860192 -0.0120971 0.0 +1664 3.35 3.45 56.25 -0.0477545 -0.104883 0.0478083 0.0286837 0.104818 -0.0286912 0.0 +1665 3.35 3.45 63.75 -0.0332506 -0.0586084 0.0333016 0.00627557 0.0586119 -0.0062805 0.0 +1666 3.35 3.45 71.25 -0.0281034 -0.0608434 0.0280864 -0.00101144 0.0608456 0.00103223 0.0 +1667 3.35 3.45 78.75 -0.0318181 -0.0457338 0.0317996 0.00287139 0.0457793 -0.00287648 0.0 +1668 3.35 3.45 86.25 -0.0190638 -0.0189326 0.0190873 -0.00282309 0.0188606 0.00282802 0.0 +1669 3.35 3.45 93.75 -0.00845602 -0.00564765 0.00846357 -0.00258802 0.00569123 0.00258276 0.0 +1670 3.35 3.45 101.25 -0.000108637 0.0104483 0.000114753 0.00269483 -0.0103655 -0.00269193 0.0 +1671 3.35 3.45 108.75 0.0096153 0.0272037 -0.00961347 0.00262296 -0.0272254 -0.00260619 0.0 +1672 3.35 3.45 116.25 0.00852246 0.0258295 -0.00856241 0.0019054 -0.0259022 -0.00189501 0.0 +1673 3.35 3.45 123.75 -0.00485077 0.0100252 0.00491377 0.00479164 -0.010035 -0.00474465 0.0 +1674 3.35 3.45 131.25 -0.0151032 -0.00124015 0.0150869 0.00590864 0.00128885 -0.00595605 0.0 +1675 3.35 3.45 138.75 -0.0116773 0.000794051 0.0116531 0.00155451 -0.000693976 -0.00161011 0.0 +1676 3.35 3.45 146.25 0.000951708 0.00984726 -0.000976147 -0.00547841 -0.00985363 0.00546737 0.0 +1677 3.35 3.45 153.75 0.0141348 0.0178974 -0.0141348 -0.0120161 -0.0179225 0.0120171 0.0 +1678 3.35 3.45 161.25 0.024418 0.0223568 -0.0244107 -0.0180532 -0.022375 0.0180171 0.0 +1679 3.35 3.45 168.75 0.0321657 0.0245203 -0.0321044 -0.0239933 -0.0245871 0.0240198 0.0 +1680 3.35 3.45 176.25 0.0366433 0.0254514 -0.0366767 -0.0281044 -0.0255168 0.0281336 0.0 +1681 3.35 3.55 3.75 212.112 270.322 -212.112 1633.44 -270.322 -1633.44 0.0 +1682 3.35 3.55 11.25 122.019 134.508 -122.019 394.591 -134.508 -394.591 0.0 +1683 3.35 3.55 18.75 47.7974 44.519 -47.7974 89.0516 -44.519 -89.0516 0.0 +1684 3.35 3.55 26.25 11.0171 8.96418 -11.0171 14.3465 -8.96418 -14.3466 0.0 +1685 3.35 3.55 33.75 0.785538 1.00667 -0.785533 1.3707 -1.00666 -1.37071 0.0 +1686 3.35 3.55 41.25 -0.100275 0.111814 0.100273 0.063653 -0.111807 -0.0636804 0.0 +1687 3.35 3.55 48.75 0.0358723 -0.0504078 -0.0358729 0.0207167 0.0504272 -0.0207188 0.0 +1688 3.35 3.55 56.25 -0.0107991 -0.0545945 0.0108077 0.0260469 0.0545759 -0.0260665 0.0 +1689 3.35 3.55 63.75 -0.0137965 -0.0162173 0.01382 0.00310984 0.0162029 -0.00312469 0.0 +1690 3.35 3.55 71.25 -0.00443791 -0.0176794 0.00444316 -0.0030039 0.0176744 0.00300773 0.0 +1691 3.35 3.55 78.75 -0.00661178 -0.0194646 0.00662503 -0.000183672 0.0194799 0.000190292 0.0 +1692 3.35 3.55 86.25 -0.0044624 -0.0145146 0.00445811 -0.00308715 0.0145483 0.00308949 0.0 +1693 3.35 3.55 93.75 -0.00201713 -0.0103082 0.00203467 -0.0034837 0.0103487 0.00348302 0.0 +1694 3.35 3.55 101.25 0.000612684 -0.00214047 -0.000633647 -0.00170294 0.00208873 0.00170816 0.0 +1695 3.35 3.55 108.75 0.00492679 0.00544074 -0.00492725 -0.000964504 -0.00547196 0.000980009 0.0 +1696 3.35 3.55 116.25 0.00552459 0.00494329 -0.00551079 0.00128236 -0.00490754 -0.00128794 0.0 +1697 3.35 3.55 123.75 0.00248381 -0.000309276 -0.00248587 0.00443651 0.000330766 -0.00443577 0.0 +1698 3.35 3.55 131.25 0.00307595 -0.00427668 -0.00308807 0.00457978 0.00431048 -0.00460838 0.0 +1699 3.35 3.55 138.75 0.0100829 -0.00649667 -0.0100649 0.00162916 0.00646752 -0.00160639 0.0 +1700 3.35 3.55 146.25 0.0183636 -0.0087324 -0.0183591 -0.00101933 0.00878923 0.000998688 0.0 +1701 3.35 3.55 153.75 0.0223417 -0.00978813 -0.0223341 -0.00163428 0.00977234 0.00164318 0.0 +1702 3.35 3.55 161.25 0.0213234 -0.00730229 -0.0213443 -0.0014192 0.00724781 0.00144804 0.0 +1703 3.35 3.55 168.75 0.0183265 -0.00180711 -0.0183314 -0.00178155 0.00182466 0.00177075 0.0 +1704 3.35 3.55 176.25 0.0161793 0.00277081 -0.0161889 -0.00245834 -0.00278613 0.00245868 0.0 +1705 3.35 3.65 3.75 34.2993 31.2111 -34.2993 99.1827 -31.2111 -99.1827 0.0 +1706 3.35 3.65 11.25 20.1073 16.1249 -20.1073 25.0862 -16.1249 -25.0862 0.0 +1707 3.35 3.65 18.75 7.81038 5.38483 -7.81038 4.29487 -5.38483 -4.29487 0.0 +1708 3.35 3.65 26.25 1.72232 1.10266 -1.72232 0.220387 -1.10265 -0.220388 0.0 +1709 3.35 3.65 33.75 0.0886792 0.151586 -0.0886799 -0.0820027 -0.151586 0.0820019 0.0 +1710 3.35 3.65 41.25 -0.0173171 0.0309048 0.0173154 -0.015518 -0.0309058 0.0155196 0.0 +1711 3.35 3.65 48.75 0.0101661 -0.00286499 -0.0101673 0.00763683 0.00286567 -0.00763753 0.0 +1712 3.35 3.65 56.25 -0.002689 -0.00624694 0.00268935 0.0083081 0.00624704 -0.00830852 0.0 +1713 3.35 3.65 63.75 -0.00312949 0.000414859 0.00313187 0.00248767 -0.000415121 -0.00248719 0.0 +1714 3.35 3.65 71.25 0.00176759 0.00183364 -0.00176593 0.000912355 -0.00183059 -0.000912314 0.0 +1715 3.35 3.65 78.75 0.00272836 0.00157348 -0.00272759 0.00117466 -0.00157332 -0.00117415 0.0 +1716 3.35 3.65 86.25 0.00159309 0.000928734 -0.00159386 0.000236076 -0.000929755 -0.000236263 0.0 +1717 3.35 3.65 93.75 -8.27674e-05 0.000144333 8.23358e-05 -0.00112934 -0.000145183 0.00112914 0.0 +1718 3.35 3.65 101.25 -0.000947847 0.000224482 0.00094892 -0.00225916 -0.000225888 0.00225973 0.0 +1719 3.35 3.65 108.75 -0.000863792 0.000432852 0.000864512 -0.00237019 -0.000431765 0.0023699 0.0 +1720 3.35 3.65 116.25 -0.000961541 -5.64864e-05 0.000960868 -0.0011264 6.07289e-05 0.00112608 0.0 +1721 3.35 3.65 123.75 -0.00127243 -0.000805706 0.0012707 0.000252729 0.000806025 -0.000253886 0.0 +1722 3.35 3.65 131.25 -0.000913381 -0.00130653 0.000910966 0.000474326 0.00130583 -0.000474541 0.0 +1723 3.35 3.65 138.75 -5.53154e-05 -0.00154588 5.78325e-05 -0.000286174 0.00155054 0.000285032 0.0 +1724 3.35 3.65 146.25 -6.51777e-05 -0.00124019 6.5744e-05 -0.000995048 0.00124163 0.000994467 0.0 +1725 3.35 3.65 153.75 -0.0019038 0.00032226 0.00190333 -0.00107275 -0.000320901 0.00107123 0.0 +1726 3.35 3.65 161.25 -0.00517932 0.00335224 0.00517862 -0.000703318 -0.00335729 0.000705883 0.0 +1727 3.35 3.65 168.75 -0.00853589 0.00691614 0.00853695 -0.000307448 -0.00691271 0.000304936 0.0 +1728 3.35 3.65 176.25 -0.0106065 0.00934073 0.0106054 -0.000100664 -0.0093421 0.000101267 0.0 +1729 3.45 3.45 3.75 249.963 447.743 -249.963 3664.97 -447.743 -3664.97 0.0 +1730 3.45 3.45 11.25 130.312 207.993 -130.312 676.249 -207.993 -676.249 0.0 +1731 3.45 3.45 18.75 45.7667 65.0303 -45.7667 147.519 -65.0303 -147.519 0.0 +1732 3.45 3.45 26.25 8.62768 11.3441 -8.62769 23.4633 -11.3441 -23.4633 0.0 +1733 3.45 3.45 33.75 0.110016 0.590793 -0.109988 2.30758 -0.590787 -2.3076 0.0 +1734 3.45 3.45 41.25 -0.153757 -0.0039627 0.153717 0.133259 0.00394772 -0.133226 0.0 +1735 3.45 3.45 48.75 -0.0153495 -0.0393026 0.0153515 0.00700061 0.0393356 -0.00698054 0.0 +1736 3.45 3.45 56.25 -0.0482726 -0.073912 0.0483149 0.0251197 0.0739223 -0.0251188 0.0 +1737 3.45 3.45 63.75 -0.0289355 -0.0533479 0.0289021 0.00597862 0.053373 -0.00597884 0.0 +1738 3.45 3.45 71.25 -0.0187811 -0.0391984 0.018746 0.000512192 0.039198 -0.000501842 0.0 +1739 3.45 3.45 78.75 -0.00856621 -0.0176478 0.00859924 0.00690296 0.0177056 -0.00690308 0.0 +1740 3.45 3.45 86.25 0.00371125 -0.0135792 -0.00372377 0.00136037 0.0136089 -0.0013601 0.0 +1741 3.45 3.45 93.75 0.00477561 -0.0238325 -0.00478562 -0.00283706 0.0238591 0.00283968 0.0 +1742 3.45 3.45 101.25 0.00818656 -0.0174538 -0.00812902 -0.00263731 0.017444 0.00264151 0.0 +1743 3.45 3.45 108.75 0.0169419 0.00155597 -0.0169639 -0.00543721 -0.00155808 0.00543126 0.0 +1744 3.45 3.45 116.25 0.0195788 0.0116859 -0.0195369 -0.00999959 -0.0117365 0.0100136 0.0 +1745 3.45 3.45 123.75 0.0183927 0.0116238 -0.0183971 -0.013227 -0.011666 0.0132448 0.0 +1746 3.45 3.45 131.25 0.0233808 0.0121941 -0.0234038 -0.0149326 -0.0122148 0.0149266 0.0 +1747 3.45 3.45 138.75 0.0316355 0.0161105 -0.0316222 -0.0142598 -0.0161126 0.0142499 0.0 +1748 3.45 3.45 146.25 0.0319972 0.0182352 -0.0319926 -0.0107349 -0.018201 0.0107262 0.0 +1749 3.45 3.45 153.75 0.0212885 0.0151617 -0.0213003 -0.0072284 -0.0151286 0.00721379 0.0 +1750 3.45 3.45 161.25 0.00710262 0.00875975 -0.00709702 -0.00763624 -0.00879653 0.00766868 0.0 +1751 3.45 3.45 168.75 -0.0026401 0.00265877 0.00265377 -0.0121265 -0.00270055 0.0121613 0.0 +1752 3.45 3.45 176.25 -0.00643116 -0.000726218 0.00644015 -0.0165154 0.000842039 0.0164549 0.0 +1753 3.45 3.55 3.75 176.165 231.846 -176.165 1002.13 -231.846 -1002.13 0.0 +1754 3.45 3.55 11.25 95.7124 114.358 -95.7124 175.442 -114.358 -175.442 0.0 +1755 3.45 3.55 18.75 35.3486 38.8706 -35.3486 30.2113 -38.8706 -30.2113 0.0 +1756 3.45 3.55 26.25 7.45817 8.24142 -7.45818 2.93187 -8.24142 -2.93187 0.0 +1757 3.45 3.55 33.75 0.442038 0.937077 -0.442023 0.16053 -0.937083 -0.160524 0.0 +1758 3.45 3.55 41.25 -0.036135 0.0544695 0.0361478 0.0475514 -0.0544678 -0.0475693 0.0 +1759 3.45 3.55 48.75 0.0114763 -0.0262494 -0.0114589 0.0137087 0.0262505 -0.0137065 0.0 +1760 3.45 3.55 56.25 -0.0247279 -0.0151853 0.0247269 0.0138833 0.0151975 -0.0138936 0.0 +1761 3.45 3.55 63.75 -0.00534614 0.000359977 0.00535626 -0.000883675 -0.000355567 0.000884282 0.0 +1762 3.45 3.55 71.25 0.0021508 -0.00431124 -0.00217205 -0.00167595 0.00430117 0.00167024 0.0 +1763 3.45 3.55 78.75 -0.00618242 -0.0011063 0.00617677 0.00219776 0.00111944 -0.00219769 0.0 +1764 3.45 3.55 86.25 -0.00864154 0.00382556 0.00863024 -0.000880014 -0.00382877 0.000881011 0.0 +1765 3.45 3.55 93.75 -0.00688417 0.00308196 0.00688064 -0.000591138 -0.00307945 0.000591269 0.0 +1766 3.45 3.55 101.25 -0.00277733 0.00250811 0.00278446 0.00339576 -0.00248041 -0.00339897 0.0 +1767 3.45 3.55 108.75 9.6645e-05 0.00292517 -9.27955e-05 0.00533124 -0.00297869 -0.00532125 0.0 +1768 3.45 3.55 116.25 -0.00279109 0.00312423 0.0027777 0.004826 -0.00313043 -0.00482587 0.0 +1769 3.45 3.55 123.75 -0.007852 0.00420337 0.00785189 0.00337755 -0.00423422 -0.00336561 0.0 +1770 3.45 3.55 131.25 -0.00899665 0.00525366 0.00898163 0.00211415 -0.00526556 -0.00211688 0.0 +1771 3.45 3.55 138.75 -0.00658818 0.00353401 0.00658935 0.00247574 -0.00351467 -0.00247806 0.0 +1772 3.45 3.55 146.25 -0.00472251 -0.000274464 0.0047137 0.00454554 0.000265355 -0.00453667 0.0 +1773 3.45 3.55 153.75 -0.00408631 -0.00145214 0.00408205 0.00601461 0.00145164 -0.0060113 0.0 +1774 3.45 3.55 161.25 -0.00213812 0.00336809 0.00214451 0.0045329 -0.00336917 -0.00453833 0.0 +1775 3.45 3.55 168.75 0.002039 0.0122448 -0.00204369 0.000537346 -0.0122471 -0.000536574 0.0 +1776 3.45 3.55 176.25 0.00576826 0.0191805 -0.00579318 -0.00289312 -0.0192316 0.00291892 0.0 +1777 3.45 3.65 3.75 27.0106 27.9613 -27.0106 49.4083 -27.9613 -49.4083 0.0 +1778 3.45 3.65 11.25 14.9394 14.3629 -14.9394 5.91574 -14.3629 -5.91574 0.0 +1779 3.45 3.65 18.75 5.42704 4.99328 -5.42704 -0.785154 -4.99328 0.785155 0.0 +1780 3.45 3.65 26.25 1.05899 1.10476 -1.05899 -0.658621 -1.10476 0.658622 0.0 +1781 3.45 3.65 33.75 0.0281818 0.145917 -0.0281832 -0.129014 -0.145916 0.129014 0.0 +1782 3.45 3.65 41.25 -0.00445013 0.00847625 0.00444947 -0.00108348 -0.0084749 0.00108322 0.0 +1783 3.45 3.65 48.75 0.00425589 -0.0101956 -0.00425551 0.00738506 0.0101965 -0.00738428 0.0 +1784 3.45 3.65 56.25 -0.00818272 -0.00590468 0.00818308 0.00485965 0.00590354 -0.00486006 0.0 +1785 3.45 3.65 63.75 -0.00416452 -0.000816284 0.00416288 0.00103036 0.000813653 -0.00103209 0.0 +1786 3.45 3.65 71.25 0.00103127 -0.00146141 -0.00103277 0.000818187 0.00146199 -0.000819189 0.0 +1787 3.45 3.65 78.75 0.0016058 -0.00187691 -0.00160474 0.000733485 0.00187607 -0.000733211 0.0 +1788 3.45 3.65 86.25 0.00109362 -0.000919641 -0.00109306 -0.000877938 0.000920276 0.000877779 0.0 +1789 3.45 3.65 93.75 0.000615382 -0.000162543 -0.000614614 -0.00196718 0.000162038 0.00196727 0.0 +1790 3.45 3.65 101.25 0.000257077 -9.90887e-05 -0.000257803 -0.00198713 9.8806e-05 0.00198727 0.0 +1791 3.45 3.65 108.75 -0.000415666 -0.000551723 0.000416382 -0.00133258 0.000550085 0.00133277 0.0 +1792 3.45 3.65 116.25 -0.00171058 -0.00100344 0.00171033 -0.000283121 0.00100575 0.000281567 0.0 +1793 3.45 3.65 123.75 -0.00282345 -0.00136999 0.00282231 0.000681739 0.00136679 -0.000680174 0.0 +1794 3.45 3.65 131.25 -0.00293906 -0.00227991 0.00293814 0.00125143 0.00227664 -0.00125029 0.0 +1795 3.45 3.65 138.75 -0.00235433 -0.00392254 0.0023561 0.0016008 0.00392512 -0.00160107 0.0 +1796 3.45 3.65 146.25 -0.00181787 -0.00523799 0.00181858 0.00193355 0.00523773 -0.00193291 0.0 +1797 3.45 3.65 153.75 -0.00147655 -0.00473654 0.00147561 0.00211445 0.00473647 -0.00211477 0.0 +1798 3.45 3.65 161.25 -0.000967812 -0.00201348 0.000967111 0.00191586 0.00201087 -0.00191381 0.0 +1799 3.45 3.65 168.75 -0.000185572 0.00169462 0.000184459 0.00140918 -0.00169418 -0.00140983 0.0 +1800 3.45 3.65 176.25 0.000452234 0.00431542 -0.000452919 0.000978651 -0.00431348 -0.000979895 0.0 +1801 3.55 3.55 3.75 81.0059 113.34 -81.0059 260.352 -113.34 -260.352 0.0 +1802 3.55 3.55 11.25 42.1524 56.4121 -42.1524 26.3617 -56.4121 -26.3617 0.0 +1803 3.55 3.55 18.75 14.7132 19.7973 -14.7132 -0.755035 -19.7973 0.755033 0.0 +1804 3.55 3.55 26.25 2.79612 4.5306 -2.79613 -1.38915 -4.53059 1.38915 0.0 +1805 3.55 3.55 33.75 0.10053 0.64794 -0.100533 -0.160016 -0.647941 0.160018 0.0 +1806 3.55 3.55 41.25 -0.0178303 0.07505 0.0178293 0.0195223 -0.0750523 -0.0195244 0.0 +1807 3.55 3.55 48.75 -0.00517875 -0.00351167 0.00518041 0.00760166 0.00350383 -0.00760536 0.0 +1808 3.55 3.55 56.25 -0.0146237 -0.0107977 0.0146179 0.0109189 0.0107984 -0.0109269 0.0 +1809 3.55 3.55 63.75 -3.87507e-05 -0.00362228 4.15324e-05 -0.000860953 0.0036153 0.000862609 0.0 +1810 3.55 3.55 71.25 0.00025554 0.00310581 -0.000258051 -0.00193062 -0.00311301 0.00192984 0.0 +1811 3.55 3.55 78.75 -0.00939829 0.0115235 0.0094016 0.000961058 -0.0115276 -0.000962838 0.0 +1812 3.55 3.55 86.25 -0.0165596 0.0133942 0.0165552 -0.000618444 -0.0133937 0.000618414 0.0 +1813 3.55 3.55 93.75 -0.0192198 0.0081303 0.0192237 0.000800086 -0.00813014 -0.000800389 0.0 +1814 3.55 3.55 101.25 -0.0173135 0.00397392 0.017316 0.00498683 -0.0039722 -0.00498686 0.0 +1815 3.55 3.55 108.75 -0.0127763 0.00613703 0.0127729 0.00547732 -0.00614031 -0.00547708 0.0 +1816 3.55 3.55 116.25 -0.00660985 0.0146966 0.00660871 0.000809944 -0.0146938 -0.000810497 0.0 +1817 3.55 3.55 123.75 0.00134833 0.025362 -0.00135008 -0.00514917 -0.0253577 0.0051477 0.0 +1818 3.55 3.55 131.25 0.00729171 0.0312649 -0.00729682 -0.00779015 -0.0312805 0.00779548 0.0 +1819 3.55 3.55 138.75 0.00442273 0.0279187 -0.00442424 -0.00517592 -0.0279147 0.00517078 0.0 +1820 3.55 3.55 146.25 -0.0095565 0.0168767 0.00955964 0.000965394 -0.0168727 -0.000968108 0.0 +1821 3.55 3.55 153.75 -0.0293138 0.00381127 0.0293123 0.00695552 -0.00382228 -0.00695117 0.0 +1822 3.55 3.55 161.25 -0.0467198 -0.00619086 0.0467172 0.0101031 0.00618452 -0.0101001 0.0 +1823 3.55 3.55 168.75 -0.0572524 -0.0115126 0.0572543 0.0103575 0.0115196 -0.0103592 0.0 +1824 3.55 3.55 176.25 -0.0614583 -0.0133864 0.0614549 0.00960442 0.0133863 -0.00960501 0.0 +1825 3.55 3.65 3.75 12.0786 14.33 -12.0786 4.38613 -14.33 -4.38613 0.0 +1826 3.55 3.65 11.25 6.33912 7.33576 -6.33912 -3.18423 -7.33576 3.18423 0.0 +1827 3.55 3.65 18.75 2.17784 2.6298 -2.17784 -1.96003 -2.6298 1.96003 0.0 +1828 3.55 3.65 26.25 0.39006 0.617253 -0.390059 -0.575786 -0.617253 0.575786 0.0 +1829 3.55 3.65 33.75 0.012681 0.0862211 -0.0126807 -0.0681723 -0.0862212 0.0681722 0.0 +1830 3.55 3.65 41.25 0.00502234 0.00223156 -0.00502212 0.00459513 -0.00223169 -0.00459442 0.0 +1831 3.55 3.65 48.75 0.00119944 -0.00628422 -0.00119894 0.00406756 0.00628446 -0.004068 0.0 +1832 3.55 3.65 56.25 -0.00386742 -0.003943 0.0038666 0.00178896 0.00394351 -0.00178918 0.0 +1833 3.55 3.65 63.75 -8.12468e-05 -0.00348925 8.0267e-05 -0.000674629 0.00348964 0.000674362 0.0 +1834 3.55 3.65 71.25 0.00192557 -0.00505585 -0.00192533 -0.00075298 0.00505521 0.00075297 0.0 +1835 3.55 3.65 78.75 0.00130323 -0.00454114 -0.0013032 -0.000636843 0.00454084 0.000636893 0.0 +1836 3.55 3.65 86.25 0.000803867 -0.00245655 -0.00080399 -0.00102105 0.0024577 0.00102106 0.0 +1837 3.55 3.65 93.75 0.0005973 -0.00111275 -0.000596389 -0.00057336 0.00111433 0.000573242 0.0 +1838 3.55 3.65 101.25 8.21929e-06 -0.00103481 -8.12152e-06 0.000450279 0.00103466 -0.00045023 0.0 +1839 3.55 3.65 108.75 -0.00119309 -0.00126494 0.00119399 0.0010993 0.00126523 -0.00109935 0.0 +1840 3.55 3.65 116.25 -0.00250233 -0.00111306 0.0025023 0.00122707 0.00111394 -0.00122737 0.0 +1841 3.55 3.65 123.75 -0.00325961 -0.00112678 0.00325939 0.00125572 0.00112681 -0.00125599 0.0 +1842 3.55 3.65 131.25 -0.0035151 -0.00233904 0.00351542 0.00158179 0.00233879 -0.00158147 0.0 +1843 3.55 3.65 138.75 -0.00380524 -0.00487295 0.00380513 0.00228977 0.0048732 -0.00229011 0.0 +1844 3.55 3.65 146.25 -0.00421555 -0.00763611 0.00421483 0.00312216 0.00763468 -0.00312155 0.0 +1845 3.55 3.65 153.75 -0.0041875 -0.00929866 0.0041879 0.00369562 0.00929919 -0.00369561 0.0 +1846 3.55 3.65 161.25 -0.00326306 -0.00936525 0.00326349 0.00381045 0.00936578 -0.00381069 0.0 +1847 3.55 3.65 168.75 -0.00175148 -0.00841033 0.00175132 0.00358917 0.00841037 -0.00358917 0.0 +1848 3.55 3.65 176.25 -0.000592392 -0.007527 0.000592354 0.00335056 0.00752733 -0.00335069 0.0 +1849 3.65 3.65 3.75 1.34179 1.8764 -1.34179 -2.21207 -1.8764 2.21207 0.0 +1850 3.65 3.65 11.25 0.674722 0.975627 -0.674722 -1.01114 -0.975627 1.01114 0.0 +1851 3.65 3.65 18.75 0.218094 0.365855 -0.218094 -0.384938 -0.365855 0.384938 0.0 +1852 3.65 3.65 26.25 0.034533 0.0959486 -0.034533 -0.0883541 -0.0959486 0.0883541 0.0 +1853 3.65 3.65 33.75 0.000906004 0.0183831 -0.000905993 -0.00778172 -0.0183832 0.00778172 0.0 +1854 3.65 3.65 41.25 0.00132048 0.00271731 -0.00132051 0.00071098 -0.00271729 -0.000710997 0.0 +1855 3.65 3.65 48.75 0.000821636 -0.000306112 -0.00082155 0.000743727 0.000306079 -0.000743719 0.0 +1856 3.65 3.65 56.25 0.00055949 -0.000894959 -0.000559485 0.000325653 0.000894939 -0.000325638 0.0 +1857 3.65 3.65 63.75 0.000919031 -0.00134167 -0.000918928 -0.000425567 0.0013417 0.000425618 0.0 +1858 3.65 3.65 71.25 0.00068388 -0.00161126 -0.000683975 -0.000595268 0.00161117 0.000595242 0.0 +1859 3.65 3.65 78.75 0.000214632 -0.00126472 -0.000214751 -0.000489084 0.00126474 0.000489099 0.0 +1860 3.65 3.65 86.25 8.67817e-06 -0.000701107 -8.75836e-06 -0.000274181 0.00070111 0.000274184 0.0 +1861 3.65 3.65 93.75 1.71384e-06 -0.000443281 -1.76788e-06 0.000154524 0.000443329 -0.000154528 0.0 +1862 3.65 3.65 101.25 1.95029e-05 -0.000477718 -1.95794e-05 0.000567489 0.000477841 -0.000567493 0.0 +1863 3.65 3.65 108.75 7.48783e-05 -0.00049436 -7.48748e-05 0.000683729 0.000494453 -0.000683746 0.0 +1864 3.65 3.65 116.25 0.000265232 -0.000391767 -0.000265328 0.00052426 0.000391822 -0.000524261 0.0 +1865 3.65 3.65 123.75 0.000509939 -0.000400182 -0.000509922 0.000310119 0.000400276 -0.000310147 0.0 +1866 3.65 3.65 131.25 0.000525607 -0.000787876 -0.000525615 0.000228989 0.000787858 -0.00022897 0.0 +1867 3.65 3.65 138.75 0.000108536 -0.00156718 -0.000108471 0.000330074 0.00156723 -0.000330079 0.0 +1868 3.65 3.65 146.25 -0.000640149 -0.00249673 0.000640125 0.000548861 0.00249673 -0.000548895 0.0 +1869 3.65 3.65 153.75 -0.0014021 -0.00329158 0.00140212 0.000784814 0.00329161 -0.000784826 0.0 +1870 3.65 3.65 161.25 -0.00190979 -0.00380299 0.00190977 0.000966445 0.00380303 -0.000966483 0.0 +1871 3.65 3.65 168.75 -0.00211603 -0.00404799 0.00211605 0.00107292 0.004048 -0.00107292 0.0 +1872 3.65 3.65 176.25 -0.00215132 -0.00412886 0.00215137 0.00111754 0.00412895 -0.00111757 0.0 diff --git a/examples/PACKAGES/manybody_table/1-1-2.table b/examples/PACKAGES/manybody_table/1-1-2.table new file mode 100644 index 0000000000..528627f03a --- /dev/null +++ b/examples/PACKAGES/manybody_table/1-1-2.table @@ -0,0 +1,3459 @@ +ENTRY1 +N 12 rmin 2.55 rmax 3.65 + +1 2.55 2.55 3.75 -867.212 -611.273 867.212 21386.8 611.273 -21386.8 0.0 +2 2.55 2.55 11.25 -621.539 -411.189 621.539 5035.95 411.189 -5035.95 0.0 +3 2.55 2.55 18.75 -394.167 -243.287 394.167 1722.21 243.287 -1722.21 0.0 +4 2.55 2.55 26.25 -218.789 -127.402 218.789 560.206 127.402 -560.206 0.0 +5 2.55 2.55 33.75 -104.252 -59.5774 104.252 156.639 59.5774 -156.639 0.0 +6 2.55 2.55 41.25 -41.0722 -24.6716 41.072 36.4446 24.6716 -36.4446 0.0 +7 2.55 2.55 48.75 -12.357 -8.38061 12.3571 7.1117 8.38062 -7.1117 0.0 +8 2.55 2.55 56.25 -2.29912 -1.68047 2.29907 0.91657 1.68048 -0.916568 0.0 +9 2.55 2.55 63.75 -0.0509977 0.327321 0.0509129 -0.304729 -0.327319 0.30474 0.0 +10 2.55 2.55 71.25 0.0345509 0.431792 -0.0345867 -0.382614 -0.431782 0.382616 0.0 +11 2.55 2.55 78.75 -0.00019898 0.179593 0.000319523 -0.292658 -0.179608 0.292661 0.0 +12 2.55 2.55 86.25 0.154169 0.138217 -0.154088 -0.302917 -0.138224 0.302914 0.0 +13 2.55 2.55 93.75 0.327691 0.263922 -0.327675 -0.340147 -0.263894 0.340148 0.0 +14 2.55 2.55 101.25 0.382895 0.350591 -0.382883 -0.297308 -0.350546 0.297312 0.0 +15 2.55 2.55 108.75 0.300955 0.297417 -0.300746 -0.173862 -0.297437 0.173872 0.0 +16 2.55 2.55 116.25 0.138507 0.141879 -0.138328 -0.0349372 -0.1418 0.0349415 0.0 +17 2.55 2.55 123.75 -0.0287949 -0.0286834 0.0286744 0.065848 0.0287665 -0.0658601 0.0 +18 2.55 2.55 131.25 -0.160323 -0.164235 0.160302 0.120341 0.164191 -0.120297 0.0 +19 2.55 2.55 138.75 -0.274013 -0.280673 0.274077 0.156939 0.280642 -0.156913 0.0 +20 2.55 2.55 146.25 -0.42361 -0.430992 0.423711 0.212433 0.430824 -0.212358 0.0 +21 2.55 2.55 153.75 -0.648177 -0.651719 0.648516 0.305821 0.651726 -0.305791 0.0 +22 2.55 2.55 161.25 -0.93181 -0.926724 0.931895 0.426805 0.926702 -0.426778 0.0 +23 2.55 2.55 168.75 -1.20276 -1.18735 1.20273 0.541966 1.18745 -0.542019 0.0 +24 2.55 2.55 176.25 -1.36933 -1.34705 1.3691 0.612284 1.34703 -0.612297 0.0 +25 2.55 2.65 3.75 -784.444 -675.519 784.444 19696.9 675.519 -19696.9 0.0 +26 2.55 2.65 11.25 -542.941 -440.852 542.941 5300.59 440.852 -5300.59 0.0 +27 2.55 2.65 18.75 -325.839 -241.234 325.839 1817.37 241.234 -1817.37 0.0 +28 2.55 2.65 26.25 -169.421 -111.015 169.421 580.214 111.015 -580.214 0.0 +29 2.55 2.65 33.75 -74.994 -43.3669 74.994 155.496 43.3669 -155.496 0.0 +30 2.55 2.65 41.25 -27.0736 -14.8824 27.0736 33.1152 14.8824 -33.1152 0.0 +31 2.55 2.65 48.75 -7.12613 -4.62454 7.12621 5.36809 4.62453 -5.36811 0.0 +32 2.55 2.65 56.25 -0.874199 -1.13723 0.874234 0.34195 1.13723 -0.341919 0.0 +33 2.55 2.65 63.75 0.204812 -0.0406907 -0.204883 -0.442652 0.0407084 0.442642 0.0 +34 2.55 2.65 71.25 0.0904568 0.154881 -0.0905494 -0.435451 -0.154894 0.435459 0.0 +35 2.55 2.65 78.75 0.0458835 0.126591 -0.0460614 -0.333955 -0.126573 0.33396 0.0 +36 2.55 2.65 86.25 0.168148 0.163197 -0.168343 -0.309845 -0.163197 0.309848 0.0 +37 2.55 2.65 93.75 0.296449 0.261093 -0.296361 -0.307947 -0.261084 0.307954 0.0 +38 2.55 2.65 101.25 0.329963 0.311331 -0.329831 -0.254571 -0.311318 0.254565 0.0 +39 2.55 2.65 108.75 0.253841 0.255391 -0.253789 -0.146686 -0.255437 0.146721 0.0 +40 2.55 2.65 116.25 0.107857 0.119105 -0.107492 -0.0254819 -0.119136 0.0254837 0.0 +41 2.55 2.65 123.75 -0.0492191 -0.0344023 0.0490594 0.0707149 0.0343792 -0.0707119 0.0 +42 2.55 2.65 131.25 -0.180513 -0.166858 0.180388 0.1322 0.16692 -0.132248 0.0 +43 2.55 2.65 138.75 -0.300448 -0.291041 0.300451 0.178321 0.291015 -0.178345 0.0 +44 2.55 2.65 146.25 -0.45666 -0.451363 0.456715 0.239144 0.451427 -0.239145 0.0 +45 2.55 2.65 153.75 -0.684349 -0.67857 0.684481 0.332093 0.678651 -0.332112 0.0 +46 2.55 2.65 161.25 -0.966732 -0.954719 0.966651 0.448833 0.954615 -0.448783 0.0 +47 2.55 2.65 168.75 -1.23353 -1.21297 1.23383 0.558954 1.21297 -0.558949 0.0 +48 2.55 2.65 176.25 -1.39695 -1.37031 1.39698 0.626037 1.37022 -0.625967 0.0 +49 2.55 2.75 3.75 -668.413 -701.057 668.413 15096.3 701.057 -15096.3 0.0 +50 2.55 2.75 11.25 -452.8 -464.411 452.8 5130.32 464.411 -5130.32 0.0 +51 2.55 2.75 18.75 -256.012 -246.87 256.012 1797.07 246.87 -1797.07 0.0 +52 2.55 2.75 26.25 -123.333 -105.643 123.333 565.052 105.643 -565.052 0.0 +53 2.55 2.75 33.75 -50.2709 -35.7913 50.2709 144.93 35.7913 -144.93 0.0 +54 2.55 2.75 41.25 -16.78 -9.69921 16.78 28.1038 9.69923 -28.1038 0.0 +55 2.55 2.75 48.75 -4.12155 -2.37411 4.12164 3.76214 2.3741 -3.76217 0.0 +56 2.55 2.75 56.25 -0.484016 -0.658362 0.484128 0.146857 0.658338 -0.146846 0.0 +57 2.55 2.75 63.75 0.0687647 -0.20106 -0.0687734 -0.260534 0.20103 0.260497 0.0 +58 2.55 2.75 71.25 -0.00147066 -0.0603687 0.0015277 -0.268714 0.0604159 0.268722 0.0 +59 2.55 2.75 78.75 0.0156999 0.0125791 -0.0159656 -0.252993 -0.0125614 0.252974 0.0 +60 2.55 2.75 86.25 0.136925 0.119249 -0.13684 -0.269725 -0.11924 0.269725 0.0 +61 2.55 2.75 93.75 0.247327 0.234358 -0.247334 -0.272826 -0.234332 0.272827 0.0 +62 2.55 2.75 101.25 0.281753 0.286511 -0.281826 -0.224691 -0.286549 0.224691 0.0 +63 2.55 2.75 108.75 0.226138 0.242659 -0.226349 -0.131815 -0.24272 0.131841 0.0 +64 2.55 2.75 116.25 0.106433 0.12752 -0.10664 -0.0258695 -0.127594 0.0258609 0.0 +65 2.55 2.75 123.75 -0.0277616 -0.00630627 0.0276778 0.0615222 0.00630865 -0.0614969 0.0 +66 2.55 2.75 131.25 -0.142446 -0.124893 0.142414 0.118979 0.124975 -0.11903 0.0 +67 2.55 2.75 138.75 -0.248783 -0.237903 0.248779 0.161562 0.237995 -0.161575 0.0 +68 2.55 2.75 146.25 -0.392668 -0.385233 0.392627 0.216964 0.385134 -0.21689 0.0 +69 2.55 2.75 153.75 -0.606858 -0.595071 0.606818 0.302592 0.595088 -0.302606 0.0 +70 2.55 2.75 161.25 -0.874793 -0.851019 0.874799 0.411383 0.850969 -0.411357 0.0 +71 2.55 2.75 168.75 -1.12893 -1.0911 1.12904 0.514712 1.09102 -0.514675 0.0 +72 2.55 2.75 176.25 -1.28457 -1.23755 1.28455 0.577854 1.23747 -0.577828 0.0 +73 2.55 2.85 3.75 -540.757 -671.949 540.757 11232.9 671.949 -11232.9 0.0 +74 2.55 2.85 11.25 -358.962 -456.955 358.962 4626.32 456.955 -4626.32 0.0 +75 2.55 2.85 18.75 -189.205 -242.387 189.205 1670.73 242.387 -1670.73 0.0 +76 2.55 2.85 26.25 -82.3789 -101.034 82.3789 518.217 101.034 -518.217 0.0 +77 2.55 2.85 33.75 -30.0098 -32.1026 30.0098 126.998 32.1025 -126.998 0.0 +78 2.55 2.85 41.25 -9.21751 -7.56922 9.21749 22.2838 7.5692 -22.2838 0.0 +79 2.55 2.85 48.75 -2.28489 -1.50529 2.28485 2.35574 1.50529 -2.35573 0.0 +80 2.55 2.85 56.25 -0.358049 -0.489852 0.357948 0.0188984 0.489874 -0.0189109 0.0 +81 2.55 2.85 63.75 -0.00522043 -0.307792 0.00494878 -0.134592 0.307776 0.134574 0.0 +82 2.55 2.85 71.25 0.00323495 -0.2024 -0.00313048 -0.169997 0.202387 0.169981 0.0 +83 2.55 2.85 78.75 0.0415278 -0.0778296 -0.0414056 -0.213315 0.077898 0.213326 0.0 +84 2.55 2.85 86.25 0.131889 0.069504 -0.132199 -0.248098 -0.0695577 0.248098 0.0 +85 2.55 2.85 93.75 0.214594 0.193542 -0.214655 -0.244475 -0.193398 0.244477 0.0 +86 2.55 2.85 101.25 0.244494 0.247624 -0.244635 -0.195685 -0.247697 0.195696 0.0 +87 2.55 2.85 108.75 0.201434 0.218545 -0.201617 -0.114828 -0.218615 0.114846 0.0 +88 2.55 2.85 116.25 0.0998591 0.127904 -0.0997024 -0.024899 -0.127956 0.0249269 0.0 +89 2.55 2.85 123.75 -0.0181479 0.0163555 0.0181766 0.049407 -0.0163067 -0.0494209 0.0 +90 2.55 2.85 131.25 -0.11898 -0.0876934 0.119352 0.098005 0.0875449 -0.0979311 0.0 +91 2.55 2.85 138.75 -0.214707 -0.191866 0.214605 0.134596 0.191898 -0.13457 0.0 +92 2.55 2.85 146.25 -0.347993 -0.330815 0.348041 0.185048 0.330869 -0.185107 0.0 +93 2.55 2.85 153.75 -0.550177 -0.528952 0.549981 0.265291 0.528797 -0.265232 0.0 +94 2.55 2.85 161.25 -0.804311 -0.769737 0.804194 0.367848 0.769696 -0.367861 0.0 +95 2.55 2.85 168.75 -1.04529 -0.994652 1.04554 0.465186 0.99499 -0.465282 0.0 +96 2.55 2.85 176.25 -1.19281 -1.13166 1.19305 0.52457 1.13177 -0.524594 0.0 +97 2.55 2.95 3.75 -419.502 -582.296 419.502 8332.23 582.296 -8332.23 0.0 +98 2.55 2.95 11.25 -271.55 -404.417 271.55 3930.48 404.417 -3930.48 0.0 +99 2.55 2.95 18.75 -130.928 -214.969 130.928 1464.2 214.969 -1464.2 0.0 +100 2.55 2.95 26.25 -48.786 -88.4342 48.786 447.646 88.4342 -447.646 0.0 +101 2.55 2.95 33.75 -14.3964 -27.3665 14.3964 104.519 27.3665 -104.519 0.0 +102 2.55 2.95 41.25 -3.7883 -6.20808 3.78827 16.4944 6.20806 -16.4944 0.0 +103 2.55 2.95 48.75 -1.0529 -1.19869 1.05292 1.27167 1.19863 -1.27161 0.0 +104 2.55 2.95 56.25 -0.231522 -0.429682 0.231513 -0.0951674 0.429629 0.0951268 0.0 +105 2.55 2.95 63.75 0.0181127 -0.325032 -0.0180919 -0.110423 0.324922 0.110426 0.0 +106 2.55 2.95 71.25 0.049094 -0.246096 -0.0491496 -0.144969 0.245996 0.14495 0.0 +107 2.55 2.95 78.75 0.063364 -0.114463 -0.0633467 -0.196803 0.114426 0.196797 0.0 +108 2.55 2.95 86.25 0.11583 0.0385036 -0.115786 -0.223948 -0.0384687 0.223952 0.0 +109 2.55 2.95 93.75 0.177943 0.156855 -0.178064 -0.209887 -0.156845 0.209889 0.0 +110 2.55 2.95 101.25 0.207654 0.212381 -0.207593 -0.163549 -0.212444 0.163567 0.0 +111 2.55 2.95 108.75 0.175031 0.201414 -0.174609 -0.0967898 -0.20124 0.0967398 0.0 +112 2.55 2.95 116.25 0.0862557 0.136066 -0.0862066 -0.0233966 -0.13596 0.0233258 0.0 +113 2.55 2.95 123.75 -0.0191239 0.0441682 0.0193287 0.0382847 -0.0441811 -0.0382953 0.0 +114 2.55 2.95 131.25 -0.110069 -0.050979 0.109801 0.0798251 0.0509319 -0.0799025 0.0 +115 2.55 2.95 138.75 -0.196213 -0.153394 0.196102 0.113373 0.153405 -0.113396 0.0 +116 2.55 2.95 146.25 -0.318885 -0.291367 0.319145 0.161467 0.291373 -0.161505 0.0 +117 2.55 2.95 153.75 -0.50686 -0.483737 0.506732 0.236963 0.48342 -0.236818 0.0 +118 2.55 2.95 161.25 -0.742764 -0.712982 0.742837 0.331712 0.713077 -0.331758 0.0 +119 2.55 2.95 168.75 -0.965814 -0.924655 0.965837 0.420445 0.924729 -0.420487 0.0 +120 2.55 2.95 176.25 -1.10185 -1.05258 1.10198 0.474136 1.05241 -0.474051 0.0 +121 2.55 3.05 3.75 -319.111 -440.938 319.111 6126.66 440.938 -6126.66 0.0 +122 2.55 3.05 11.25 -200.795 -309.049 200.795 3169.23 309.049 -3169.23 0.0 +123 2.55 3.05 18.75 -86.7152 -162.683 86.7152 1211.49 162.683 -1211.49 0.0 +124 2.55 3.05 26.25 -24.7922 -65.0953 24.7921 363.733 65.0953 -363.733 0.0 +125 2.55 3.05 33.75 -3.79557 -19.4403 3.79568 80.4622 19.4403 -80.4622 0.0 +126 2.55 3.05 41.25 -0.227488 -4.40816 0.227381 11.3442 4.40812 -11.3442 0.0 +127 2.55 3.05 48.75 -0.215962 -0.9846 0.21623 0.572809 0.984607 -0.572833 0.0 +128 2.55 3.05 56.25 -0.0972827 -0.406271 0.0971886 -0.155442 0.406388 0.155438 0.0 +129 2.55 3.05 63.75 0.0474691 -0.320721 -0.0473142 -0.115525 0.320742 0.115541 0.0 +130 2.55 3.05 71.25 0.0542543 -0.274312 -0.0545515 -0.127569 0.274174 0.127517 0.0 +131 2.55 3.05 78.75 0.0439985 -0.158092 -0.0440511 -0.165185 0.158055 0.165194 0.0 +132 2.55 3.05 86.25 0.0821507 -0.00877884 -0.0821081 -0.183829 0.00887135 0.183832 0.0 +133 2.55 3.05 93.75 0.142245 0.109192 -0.142406 -0.168613 -0.109223 0.168609 0.0 +134 2.55 3.05 101.25 0.176786 0.175042 -0.176859 -0.131259 -0.174989 0.13127 0.0 +135 2.55 3.05 108.75 0.153044 0.185839 -0.153188 -0.0796497 -0.185913 0.0796723 0.0 +136 2.55 3.05 116.25 0.0762661 0.144574 -0.0760233 -0.0213083 -0.14475 0.0213947 0.0 +137 2.55 3.05 123.75 -0.0153973 0.0697421 0.0151775 0.0294442 -0.0697414 -0.0295136 0.0 +138 2.55 3.05 131.25 -0.0914496 -0.0164558 0.0915457 0.0650391 0.01638 -0.0650155 0.0 +139 2.55 3.05 138.75 -0.163525 -0.114278 0.163505 0.0952572 0.113968 -0.0951433 0.0 +140 2.55 3.05 146.25 -0.267879 -0.245016 0.267903 0.138326 0.244925 -0.138338 0.0 +141 2.55 3.05 153.75 -0.430018 -0.423265 0.429956 0.203867 0.423326 -0.203942 0.0 +142 2.55 3.05 161.25 -0.633833 -0.631774 0.634037 0.284186 0.631568 -0.284063 0.0 +143 2.55 3.05 168.75 -0.826685 -0.82183 0.826375 0.358252 0.82172 -0.358225 0.0 +144 2.55 3.05 176.25 -0.943422 -0.93572 0.943723 0.402697 0.935847 -0.402743 0.0 +145 2.55 3.15 3.75 -249.767 -271.418 249.767 4425.44 271.418 -4425.44 0.0 +146 2.55 3.15 11.25 -154.5 -187.982 154.5 2434.18 187.982 -2434.18 0.0 +147 2.55 3.15 18.75 -60.5981 -94.4639 60.5982 946.499 94.4639 -946.499 0.0 +148 2.55 3.15 26.25 -11.8534 -34.6155 11.8535 277.025 34.6156 -277.025 0.0 +149 2.55 3.15 33.75 1.6123 -9.2646 -1.61231 57.3974 9.26465 -57.3974 0.0 +150 2.55 3.15 41.25 1.60158 -2.19805 -1.60158 7.12692 2.19808 -7.12698 0.0 +151 2.55 3.15 48.75 0.26948 -0.778894 -0.269488 0.21063 0.778852 -0.210617 0.0 +152 2.55 3.15 56.25 -0.01372 -0.412911 0.0136807 -0.142081 0.412893 0.142164 0.0 +153 2.55 3.15 63.75 0.0224038 -0.329718 -0.0222862 -0.0965871 0.329602 0.096574 0.0 +154 2.55 3.15 71.25 0.0060749 -0.316094 -0.00598008 -0.0883032 0.316076 0.0883122 0.0 +155 2.55 3.15 78.75 0.00302628 -0.219142 -0.00292645 -0.117193 0.219165 0.117188 0.0 +156 2.55 3.15 86.25 0.0523024 -0.0705546 -0.0522252 -0.136651 0.0705734 0.136649 0.0 +157 2.55 3.15 93.75 0.115651 0.0544573 -0.11564 -0.126319 -0.0545821 0.126326 0.0 +158 2.55 3.15 101.25 0.148969 0.134261 -0.149041 -0.0986894 -0.134289 0.0986837 0.0 +159 2.55 3.15 108.75 0.128464 0.165022 -0.12849 -0.0608071 -0.165301 0.0608822 0.0 +160 2.55 3.15 116.25 0.0654112 0.144738 -0.0648575 -0.0171687 -0.144771 0.0172192 0.0 +161 2.55 3.15 123.75 -0.00700089 0.0874701 0.0070514 0.0212287 -0.087399 -0.0213181 0.0 +162 2.55 3.15 131.25 -0.0630668 0.0158432 0.0629726 0.0481408 -0.0158028 -0.0482207 0.0 +163 2.55 3.15 138.75 -0.113207 -0.0669731 0.112947 0.0710475 0.0668196 -0.0709779 0.0 +164 2.55 3.15 146.25 -0.189616 -0.177294 0.189595 0.103802 0.177145 -0.103761 0.0 +165 2.55 3.15 153.75 -0.313405 -0.326317 0.313385 0.153359 0.326249 -0.1534 0.0 +166 2.55 3.15 161.25 -0.471349 -0.499401 0.471384 0.2136 0.499615 -0.213641 0.0 +167 2.55 3.15 168.75 -0.621738 -0.656501 0.621526 0.268765 0.656234 -0.268609 0.0 +168 2.55 3.15 176.25 -0.713168 -0.750131 0.713075 0.301728 0.749961 -0.301587 0.0 +169 2.55 3.25 3.75 -215.533 -105.036 215.533 3115.64 105.036 -3115.64 0.0 +170 2.55 3.25 11.25 -135.709 -66.1673 135.709 1782.43 66.1673 -1782.43 0.0 +171 2.55 3.25 18.75 -53.5226 -25.2778 53.5226 697.12 25.2777 -697.12 0.0 +172 2.55 3.25 26.25 -9.76548 -4.05586 9.76548 196.405 4.05587 -196.405 0.0 +173 2.55 3.25 33.75 2.26986 0.661867 -2.26987 37.2172 -0.661895 -37.2172 0.0 +174 2.55 3.25 41.25 1.94008 -0.139655 -1.94016 3.90169 0.139693 -3.90171 0.0 +175 2.55 3.25 48.75 0.433581 -0.598298 -0.433653 0.0713369 0.598313 -0.071257 0.0 +176 2.55 3.25 56.25 -0.0110448 -0.396733 0.0111185 -0.0792235 0.396666 0.0791487 0.0 +177 2.55 3.25 63.75 -0.0512665 -0.306617 0.0511183 -0.0540821 0.306458 0.05412 0.0 +178 2.55 3.25 71.25 -0.0567327 -0.327807 0.0568023 -0.042547 0.327783 0.0424758 0.0 +179 2.55 3.25 78.75 -0.0248985 -0.256832 0.0248957 -0.0738229 0.256924 0.073814 0.0 +180 2.55 3.25 86.25 0.03699 -0.115693 -0.0368212 -0.0949395 0.115771 0.0949412 0.0 +181 2.55 3.25 93.75 0.088578 0.0114051 -0.0885974 -0.0851166 -0.0114329 0.0851098 0.0 +182 2.55 3.25 101.25 0.108379 0.100211 -0.108454 -0.0631833 -0.100386 0.0632103 0.0 +183 2.55 3.25 108.75 0.0905494 0.146067 -0.0902676 -0.0380134 -0.146103 0.0380456 0.0 +184 2.55 3.25 116.25 0.0446648 0.143011 -0.0447651 -0.0105656 -0.143148 0.0105849 0.0 +185 2.55 3.25 123.75 -0.00397982 0.102972 0.00398606 0.0132778 -0.103051 -0.0132872 0.0 +186 2.55 3.25 131.25 -0.0396488 0.0470538 0.0395149 0.0295482 -0.0468879 -0.0296284 0.0 +187 2.55 3.25 138.75 -0.0696427 -0.0184498 0.0696581 0.0434558 0.0182276 -0.0433637 0.0 +188 2.55 3.25 146.25 -0.118295 -0.104198 0.11835 0.0645889 0.104105 -0.0645169 0.0 +189 2.55 3.25 153.75 -0.201226 -0.219646 0.201381 0.0977209 0.219776 -0.0977906 0.0 +190 2.55 3.25 161.25 -0.310278 -0.35328 0.310501 0.138558 0.353454 -0.138633 0.0 +191 2.55 3.25 168.75 -0.415467 -0.474235 0.415053 0.176198 0.474086 -0.176145 0.0 +192 2.55 3.25 176.25 -0.479006 -0.546119 0.479273 0.198749 0.546279 -0.198787 0.0 +193 2.55 3.35 3.75 -204.898 28.1648 204.898 2043.28 -28.1648 -2043.28 0.0 +194 2.55 3.35 11.25 -135.949 31.6213 135.949 1195.68 -31.6213 -1195.68 0.0 +195 2.55 3.35 18.75 -60.0294 29.3309 60.0294 464.081 -29.3309 -464.081 0.0 +196 2.55 3.35 26.25 -15.5602 19.1482 15.5602 123.342 -19.1482 -123.342 0.0 +197 2.55 3.35 33.75 -0.516502 7.80361 0.516464 20.3914 -7.80361 -20.3915 0.0 +198 2.55 3.35 41.25 1.1959 1.28099 -1.1959 1.61912 -1.28089 -1.61917 0.0 +199 2.55 3.35 48.75 0.338664 -0.427486 -0.338735 0.0672361 0.427458 -0.0671949 0.0 +200 2.55 3.35 56.25 -0.0712654 -0.32692 0.0713186 -0.00513307 0.326996 0.00515152 0.0 +201 2.55 3.35 63.75 -0.121975 -0.24598 0.122164 -0.0158901 0.24595 0.0159275 0.0 +202 2.55 3.35 71.25 -0.0836168 -0.3049 0.0833968 -0.0145822 0.304962 0.0145084 0.0 +203 2.55 3.35 78.75 -0.0227775 -0.26582 0.0226797 -0.0466388 0.265827 0.0466007 0.0 +204 2.55 3.35 86.25 0.0253278 -0.141365 -0.0252494 -0.0598516 0.14135 0.0598496 0.0 +205 2.55 3.35 93.75 0.0478277 -0.0194912 -0.0477364 -0.0442668 0.01948 0.0442715 0.0 +206 2.55 3.35 101.25 0.0542989 0.072706 -0.0542353 -0.0265114 -0.0727603 0.0265457 0.0 +207 2.55 3.35 108.75 0.0474436 0.128762 -0.0473722 -0.0142292 -0.128667 0.0141884 0.0 +208 2.55 3.35 116.25 0.024829 0.139676 -0.0246836 -0.00238193 -0.139623 0.00240878 0.0 +209 2.55 3.35 123.75 -0.00477975 0.112522 0.00457921 0.00880631 -0.112295 -0.00892129 0.0 +210 2.55 3.35 131.25 -0.0290626 0.0670303 0.0288612 0.0167144 -0.0668681 -0.0167711 0.0 +211 2.55 3.35 138.75 -0.0488435 0.012812 0.048558 0.0234532 -0.0126738 -0.0236424 0.0 +212 2.55 3.35 146.25 -0.0762617 -0.0554933 0.0763255 0.0346659 0.0553813 -0.0346319 0.0 +213 2.55 3.35 153.75 -0.123726 -0.144228 0.123766 0.053841 0.144227 -0.0538008 0.0 +214 2.55 3.35 161.25 -0.18791 -0.245407 0.187929 0.078822 0.245764 -0.079086 0.0 +215 2.55 3.35 168.75 -0.251038 -0.336304 0.251286 0.102654 0.336317 -0.102638 0.0 +216 2.55 3.35 176.25 -0.29084 -0.390314 0.290697 0.117217 0.390531 -0.11737 0.0 +217 2.55 3.45 3.75 -160.11 78.3904 160.11 964.746 -78.3904 -964.746 0.0 +218 2.55 3.45 11.25 -112.253 65.2155 112.253 569.896 -65.2155 -569.896 0.0 +219 2.55 3.45 18.75 -55.5875 44.2652 55.5876 216.275 -44.2652 -216.275 0.0 +220 2.55 3.45 26.25 -18.577 23.1948 18.5771 52.7785 -23.1948 -52.7785 0.0 +221 2.55 3.45 33.75 -3.3749 8.35207 3.37496 7.08855 -8.35205 -7.08857 0.0 +222 2.55 3.45 41.25 0.0558271 1.43995 -0.0557888 0.416872 -1.44003 -0.416798 0.0 +223 2.55 3.45 48.75 0.0736874 -0.250918 -0.0736577 0.137694 0.25083 -0.137688 0.0 +224 2.55 3.45 56.25 -0.118382 -0.234235 0.118498 0.029723 0.234224 -0.0297093 0.0 +225 2.55 3.45 63.75 -0.103993 -0.193692 0.103998 -0.0111831 0.193659 0.0111847 0.0 +226 2.55 3.45 71.25 -0.0373239 -0.248873 0.0374 -0.0103758 0.248904 0.0103568 0.0 +227 2.55 3.45 78.75 -0.000815577 -0.221711 0.000857674 -0.0239127 0.221702 0.0239331 0.0 +228 2.55 3.45 86.25 0.00235137 -0.12606 -0.00247045 -0.0235691 0.126024 0.0235785 0.0 +229 2.55 3.45 93.75 0.000693468 -0.0322758 -0.000731622 -0.0100368 0.0322426 0.0100472 0.0 +230 2.55 3.45 101.25 0.0107898 0.0378694 -0.0109773 -0.00230259 -0.0379779 0.00230944 0.0 +231 2.55 3.45 108.75 0.0223901 0.0828189 -0.0224924 -0.0011966 -0.0828617 0.00119886 0.0 +232 2.55 3.45 116.25 0.01901 0.0976112 -0.0189845 0.000576941 -0.0977212 -0.000592258 0.0 +233 2.55 3.45 123.75 0.0023177 0.0865526 -0.00220076 0.00381654 -0.0867258 -0.00376165 0.0 +234 2.55 3.45 131.25 -0.0137084 0.0618094 0.0137112 0.00514774 -0.0618168 -0.00513733 0.0 +235 2.55 3.45 138.75 -0.0208603 0.0307928 0.0209021 0.00395318 -0.0306512 -0.00401619 0.0 +236 2.55 3.45 146.25 -0.0246671 -0.00894626 0.0246851 0.00351226 0.00893543 -0.0035253 0.0 +237 2.55 3.45 153.75 -0.0354818 -0.0611658 0.0352745 0.0074458 0.0613979 -0.00758451 0.0 +238 2.55 3.45 161.25 -0.0568268 -0.12175 0.0568015 0.016221 0.121744 -0.0162267 0.0 +239 2.55 3.45 168.75 -0.0825887 -0.177017 0.0826212 0.0265372 0.177062 -0.0266112 0.0 +240 2.55 3.45 176.25 -0.100362 -0.210215 0.100363 0.0334528 0.210225 -0.0334721 0.0 +241 2.55 3.55 3.75 -78.9919 44.1593 78.9919 272.44 -44.1593 -272.44 0.0 +242 2.55 3.55 11.25 -57.4405 35.3664 57.4405 160.985 -35.3664 -160.985 0.0 +243 2.55 3.55 18.75 -30.4327 22.6574 30.4327 59.1789 -22.6574 -59.1789 0.0 +244 2.55 3.55 26.25 -11.3918 11.2259 11.3918 13.1796 -11.2259 -13.1796 0.0 +245 2.55 3.55 33.75 -2.72329 3.8781 2.7233 1.57893 -3.87813 -1.57891 0.0 +246 2.55 3.55 41.25 -0.349405 0.648596 0.349417 0.278163 -0.648614 -0.278143 0.0 +247 2.55 3.55 48.75 -0.0951034 -0.129698 0.0950942 0.144918 0.129704 -0.144907 0.0 +248 2.55 3.55 56.25 -0.0904303 -0.132617 0.0904025 -0.000622582 0.13263 0.000613981 0.0 +249 2.55 3.55 63.75 -0.0258623 -0.110734 0.0258374 -0.0284537 0.110749 0.0284432 0.0 +250 2.55 3.55 71.25 0.0130336 -0.121492 -0.0129784 -0.00958708 0.121519 0.0095864 0.0 +251 2.55 3.55 78.75 0.00216509 -0.0947175 -0.00212262 -0.00146876 0.0947229 0.0014866 0.0 +252 2.55 3.55 86.25 -0.0193046 -0.044118 0.0193305 0.000949206 0.0440946 -0.000951166 0.0 +253 2.55 3.55 93.75 -0.0204643 -0.00523306 0.0203838 0.00128217 0.00527308 -0.00128181 0.0 +254 2.55 3.55 101.25 -0.00377452 0.0162146 0.00374878 -0.00203826 -0.0161878 0.00203335 0.0 +255 2.55 3.55 108.75 0.0103855 0.0283922 -0.0103646 -0.00590355 -0.0284035 0.0059097 0.0 +256 2.55 3.55 116.25 0.0107496 0.0355757 -0.0107487 -0.00748469 -0.0355346 0.00746902 0.0 +257 2.55 3.55 123.75 0.00390058 0.039282 -0.00394485 -0.00836899 -0.0392871 0.00836606 0.0 +258 2.55 3.55 131.25 0.00302193 0.0417158 -0.00303302 -0.0116169 -0.0417316 0.0116365 0.0 +259 2.55 3.55 138.75 0.0132809 0.0429902 -0.0132594 -0.0177461 -0.0429583 0.0177101 0.0 +260 2.55 3.55 146.25 0.0286472 0.040296 -0.0286569 -0.0242602 -0.0403293 0.0242749 0.0 +261 2.55 3.55 153.75 0.0390318 0.0306394 -0.039064 -0.0280589 -0.0306446 0.028059 0.0 +262 2.55 3.55 161.25 0.0394296 0.0147367 -0.0394103 -0.0279664 -0.0146398 0.0279268 0.0 +263 2.55 3.55 168.75 0.0324474 -0.00226708 -0.0324635 -0.0253945 0.00220765 0.0254368 0.0 +264 2.55 3.55 176.25 0.025994 -0.013213 -0.0260157 -0.0230769 0.0131899 0.0230844 0.0 +265 2.55 3.65 3.75 -10.2735 4.76327 10.2735 20.7201 -4.76327 -20.7201 0.0 +266 2.55 3.65 11.25 -7.59679 3.74938 7.59679 12.2716 -3.74938 -12.2716 0.0 +267 2.55 3.65 18.75 -4.13373 2.33527 4.13373 4.48711 -2.33527 -4.48711 0.0 +268 2.55 3.65 26.25 -1.60809 1.11951 1.60809 1.05798 -1.11951 -1.05798 0.0 +269 2.55 3.65 33.75 -0.426582 0.367384 0.426586 0.237798 -0.367384 -0.237797 0.0 +270 2.55 3.65 41.25 -0.0923209 0.0481501 0.0923222 0.103116 -0.0481492 -0.103116 0.0 +271 2.55 3.65 48.75 -0.0403716 -0.019861 0.0403721 0.0289419 0.0198609 -0.0289447 0.0 +272 2.55 3.65 56.25 -0.0181588 -0.0104242 0.018157 -0.0111623 0.010423 0.0111643 0.0 +273 2.55 3.65 63.75 0.0026199 -0.0022943 -0.00261809 -0.0112332 0.00229608 0.011234 0.0 +274 2.55 3.65 71.25 0.00555137 -0.00054609 -0.00554585 -0.000901878 0.000542356 0.000901001 0.0 +275 2.55 3.65 78.75 -0.00349077 0.00348611 0.00348128 0.00388527 -0.0034823 -0.00388526 0.0 +276 2.55 3.65 86.25 -0.00986876 0.00759326 0.00986851 0.00334418 -0.00759374 -0.00334402 0.0 +277 2.55 3.65 93.75 -0.00861045 0.00735376 0.00861467 0.000656354 -0.00735444 -0.000656104 0.0 +278 2.55 3.65 101.25 -0.00414524 0.00377925 0.00414321 -0.00212584 -0.00377449 0.00212561 0.0 +279 2.55 3.65 108.75 -0.00169477 0.000439308 0.00169322 -0.00396038 -0.000442715 0.00396063 0.0 +280 2.55 3.65 116.25 -0.00201868 -0.000719026 0.00201981 -0.0047974 0.000729887 0.00479364 0.0 +281 2.55 3.65 123.75 -0.0022902 0.000305603 0.00229371 -0.00529632 -0.000307648 0.00529785 0.0 +282 2.55 3.65 131.25 6.5658e-05 0.00293592 -6.35245e-05 -0.00609152 -0.00294529 0.00609664 0.0 +283 2.55 3.65 138.75 0.00496513 0.00653024 -0.0049612 -0.00723673 -0.00653204 0.00723752 0.0 +284 2.55 3.65 146.25 0.0100844 0.0103162 -0.0100899 -0.0082568 -0.0103134 0.00825192 0.0 +285 2.55 3.65 153.75 0.013056 0.0135185 -0.0130568 -0.00863418 -0.0135186 0.00863497 0.0 +286 2.55 3.65 161.25 0.0130732 0.0156428 -0.013084 -0.00825131 -0.0156473 0.00825326 0.0 +287 2.55 3.65 168.75 0.0112797 0.0167179 -0.0112803 -0.00747124 -0.0167224 0.00747658 0.0 +288 2.55 3.65 176.25 0.0096521 0.0170897 -0.00964981 -0.00687278 -0.0170876 0.00686999 0.0 +289 2.65 2.55 3.75 -799.674 -712.655 799.674 18807.8 712.655 -18807.8 0.0 +290 2.65 2.55 11.25 -525.625 -475.265 525.625 4994.59 475.265 -4994.59 0.0 +291 2.65 2.55 18.75 -295.846 -269.889 295.846 1679.59 269.889 -1679.59 0.0 +292 2.65 2.55 26.25 -143.669 -131.164 143.669 522.387 131.164 -522.387 0.0 +293 2.65 2.55 33.75 -60.2595 -54.4807 60.2595 136.208 54.4807 -136.208 0.0 +294 2.65 2.55 41.25 -21.6186 -19.006 21.6186 29.1359 19.006 -29.1359 0.0 +295 2.65 2.55 48.75 -6.2004 -4.98522 6.20039 5.36148 4.98526 -5.3615 0.0 +296 2.65 2.55 56.25 -0.973428 -0.39018 0.973324 0.482318 0.390219 -0.482323 0.0 +297 2.65 2.55 63.75 0.314211 0.536906 -0.314193 -0.589646 -0.536928 0.58965 0.0 +298 2.65 2.55 71.25 0.35202 0.378507 -0.352079 -0.582078 -0.378534 0.582099 0.0 +299 2.65 2.55 78.75 0.201526 0.217522 -0.201635 -0.39221 -0.217499 0.392213 0.0 +300 2.65 2.55 86.25 0.158101 0.284677 -0.15805 -0.345984 -0.284628 0.345996 0.0 +301 2.65 2.55 93.75 0.194955 0.4204 -0.194905 -0.359053 -0.420368 0.359041 0.0 +302 2.65 2.55 101.25 0.217278 0.451611 -0.217168 -0.302903 -0.451706 0.302904 0.0 +303 2.65 2.55 108.75 0.177459 0.346261 -0.177385 -0.174633 -0.34637 0.174667 0.0 +304 2.65 2.55 116.25 0.0932406 0.177749 -0.093405 -0.0419077 -0.177758 0.0419259 0.0 +305 2.65 2.55 123.75 0.0143374 0.03145 -0.0145507 0.0454119 -0.0313795 -0.045448 0.0 +306 2.65 2.55 131.25 -0.0346536 -0.0608535 0.0348124 0.0869938 0.0609483 -0.0870298 0.0 +307 2.65 2.55 138.75 -0.0817334 -0.132275 0.0817107 0.117066 0.132252 -0.11706 0.0 +308 2.65 2.55 146.25 -0.184555 -0.244924 0.18477 0.173455 0.244919 -0.173443 0.0 +309 2.65 2.55 153.75 -0.380746 -0.438659 0.380787 0.272485 0.438786 -0.272543 0.0 +310 2.65 2.55 161.25 -0.649138 -0.696616 0.649172 0.400228 0.696703 -0.400289 0.0 +311 2.65 2.55 168.75 -0.912684 -0.947747 0.912894 0.520664 0.947624 -0.520601 0.0 +312 2.65 2.55 176.25 -1.07651 -1.10339 1.07652 0.593714 1.10339 -0.593746 0.0 +313 2.65 2.65 3.75 -850.9 -766.532 850.9 24206.3 766.532 -24206.3 0.0 +314 2.65 2.65 11.25 -532.471 -481.095 532.471 5590.03 481.095 -5590.03 0.0 +315 2.65 2.65 18.75 -284.368 -250.886 284.368 1834.01 250.886 -1834.01 0.0 +316 2.65 2.65 26.25 -129.075 -106.598 129.075 555.283 106.598 -555.283 0.0 +317 2.65 2.65 33.75 -49.9399 -36.5293 49.9399 138.315 36.5293 -138.315 0.0 +318 2.65 2.65 41.25 -16.5129 -10.4032 16.5129 27.2019 10.4033 -27.2019 0.0 +319 2.65 2.65 48.75 -4.46528 -2.7076 4.46539 4.42411 2.70761 -4.42411 0.0 +320 2.65 2.65 56.25 -0.741021 -0.597377 0.741105 0.305553 0.597353 -0.305549 0.0 +321 2.65 2.65 63.75 0.104606 0.0237456 -0.104669 -0.572899 -0.0237444 0.572894 0.0 +322 2.65 2.65 71.25 0.139391 0.125946 -0.139515 -0.571709 -0.125927 0.571698 0.0 +323 2.65 2.65 78.75 0.104219 0.102894 -0.104113 -0.382665 -0.102882 0.382676 0.0 +324 2.65 2.65 86.25 0.157087 0.145852 -0.157232 -0.297431 -0.1459 0.297442 0.0 +325 2.65 2.65 93.75 0.240407 0.236266 -0.240541 -0.278188 -0.236265 0.27819 0.0 +326 2.65 2.65 101.25 0.275238 0.279291 -0.274988 -0.229799 -0.27936 0.229805 0.0 +327 2.65 2.65 108.75 0.227141 0.229356 -0.227284 -0.134968 -0.229285 0.134932 0.0 +328 2.65 2.65 116.25 0.115892 0.112442 -0.115868 -0.0291153 -0.112422 0.0291383 0.0 +329 2.65 2.65 123.75 -0.010285 -0.0162117 0.0103961 0.0530193 0.0161505 -0.0529991 0.0 +330 2.65 2.65 131.25 -0.1188 -0.124881 0.118875 0.104487 0.124916 -0.104492 0.0 +331 2.65 2.65 138.75 -0.223058 -0.229731 0.223369 0.145724 0.229737 -0.145685 0.0 +332 2.65 2.65 146.25 -0.368701 -0.376052 0.368859 0.205686 0.3761 -0.205685 0.0 +333 2.65 2.65 153.75 -0.587337 -0.594228 0.587423 0.299459 0.594372 -0.299509 0.0 +334 2.65 2.65 161.25 -0.859864 -0.865453 0.859988 0.416736 0.865344 -0.416708 0.0 +335 2.65 2.65 168.75 -1.11756 -1.12156 1.11739 0.526563 1.12147 -0.526502 0.0 +336 2.65 2.65 176.25 -1.2751 -1.27817 1.27506 0.593124 1.2781 -0.593061 0.0 +337 2.65 2.75 3.75 -835.182 -772.341 835.182 21905.9 772.341 -21905.9 0.0 +338 2.65 2.75 11.25 -513.694 -481.73 513.694 5723.06 481.73 -5723.06 0.0 +339 2.65 2.75 18.75 -261.725 -240.477 261.725 1876.13 240.477 -1876.13 0.0 +340 2.65 2.75 26.25 -110.82 -93.042 110.82 555.313 93.0419 -555.313 0.0 +341 2.65 2.75 33.75 -39.2645 -26.3478 39.2645 131.64 26.3478 -131.64 0.0 +342 2.65 2.75 41.25 -11.8937 -5.23302 11.8938 23.3148 5.233 -23.3148 0.0 +343 2.65 2.75 48.75 -3.05671 -0.993603 3.05657 3.14407 0.993621 -3.14406 0.0 +344 2.65 2.75 56.25 -0.550099 -0.358525 0.550227 0.163089 0.358498 -0.163112 0.0 +345 2.65 2.75 63.75 -0.0205929 -0.0842747 0.0205161 -0.407995 0.0842518 0.407956 0.0 +346 2.65 2.75 71.25 0.00336668 0.0345981 -0.00349936 -0.421497 -0.0346157 0.421506 0.0 +347 2.65 2.75 78.75 0.0253619 0.0593683 -0.0255874 -0.3063 -0.0593531 0.306294 0.0 +348 2.65 2.75 86.25 0.119248 0.114375 -0.119305 -0.255219 -0.114285 0.255229 0.0 +349 2.65 2.75 93.75 0.216069 0.202657 -0.216049 -0.241183 -0.202733 0.241187 0.0 +350 2.65 2.75 101.25 0.255314 0.253769 -0.255148 -0.201128 -0.253738 0.20113 0.0 +351 2.65 2.75 108.75 0.214511 0.222856 -0.214525 -0.121963 -0.222827 0.121965 0.0 +352 2.65 2.75 116.25 0.110921 0.123065 -0.110896 -0.0278056 -0.123096 0.027821 0.0 +353 2.65 2.75 123.75 -0.0119931 0.00216882 0.0119589 0.0508731 -0.00227192 -0.0508543 0.0 +354 2.65 2.75 131.25 -0.119575 -0.104676 0.119555 0.102045 0.10466 -0.10204 0.0 +355 2.65 2.75 138.75 -0.220603 -0.205567 0.220425 0.139953 0.205519 -0.139884 0.0 +356 2.65 2.75 146.25 -0.354901 -0.339963 0.354916 0.191191 0.340301 -0.191375 0.0 +357 2.65 2.75 153.75 -0.553233 -0.537535 0.553233 0.27207 0.537478 -0.272051 0.0 +358 2.65 2.75 161.25 -0.800056 -0.783314 0.80005 0.37528 0.783269 -0.375219 0.0 +359 2.65 2.75 168.75 -1.03362 -1.01636 1.03349 0.473222 1.01637 -0.473237 0.0 +360 2.65 2.75 176.25 -1.17633 -1.15917 1.17626 0.532997 1.15938 -0.533141 0.0 +361 2.65 2.85 3.75 -760.67 -716.576 760.67 16548.2 716.576 -16548.2 0.0 +362 2.65 2.85 11.25 -468.577 -458.252 468.577 5405.79 458.252 -5405.79 0.0 +363 2.65 2.85 18.75 -228.053 -226.497 228.053 1802.81 226.497 -1802.81 0.0 +364 2.65 2.85 26.25 -89.1662 -84.2911 89.1663 523.528 84.2911 -523.528 0.0 +365 2.65 2.85 33.75 -28.2756 -21.661 28.2757 117.98 21.661 -117.98 0.0 +366 2.65 2.85 41.25 -7.65848 -3.29349 7.65854 18.6016 3.29345 -18.6016 0.0 +367 2.65 2.85 48.75 -1.87861 -0.425521 1.87855 1.91342 0.425548 -1.91344 0.0 +368 2.65 2.85 56.25 -0.359414 -0.305329 0.359467 0.0202548 0.305288 -0.0202399 0.0 +369 2.65 2.85 63.75 -0.0454417 -0.184956 0.0452869 -0.276244 0.184875 0.276227 0.0 +370 2.65 2.85 71.25 -0.03328 -0.0799704 0.0333967 -0.292345 0.0799691 0.292342 0.0 +371 2.65 2.85 78.75 0.00639036 -0.0189859 -0.006449 -0.241547 0.0190153 0.241563 0.0 +372 2.65 2.85 86.25 0.102068 0.0661345 -0.102071 -0.222916 -0.0661619 0.222919 0.0 +373 2.65 2.85 93.75 0.188697 0.163968 -0.188721 -0.21219 -0.163988 0.212191 0.0 +374 2.65 2.85 101.25 0.22364 0.220472 -0.223377 -0.175014 -0.220473 0.175017 0.0 +375 2.65 2.85 108.75 0.190707 0.202776 -0.190758 -0.106231 -0.202789 0.106247 0.0 +376 2.65 2.85 116.25 0.101112 0.120884 -0.101059 -0.0239388 -0.120905 0.0239052 0.0 +377 2.65 2.85 123.75 -0.00702613 0.0160528 0.00714713 0.0453335 -0.0161052 -0.0453373 0.0 +378 2.65 2.85 131.25 -0.101648 -0.0781261 0.101387 0.088976 0.0781448 -0.0889832 0.0 +379 2.65 2.85 138.75 -0.188841 -0.166223 0.188892 0.119526 0.166146 -0.119525 0.0 +380 2.65 2.85 146.25 -0.306982 -0.284004 0.307036 0.162419 0.283915 -0.162404 0.0 +381 2.65 2.85 153.75 -0.48517 -0.45968 0.485006 0.233515 0.459501 -0.233437 0.0 +382 2.65 2.85 161.25 -0.709159 -0.680393 0.709041 0.326165 0.680286 -0.32613 0.0 +383 2.65 2.85 168.75 -0.921682 -0.890267 0.921631 0.414752 0.89028 -0.414752 0.0 +384 2.65 2.85 176.25 -1.05193 -1.01912 1.05183 0.468933 1.01918 -0.469002 0.0 +385 2.65 2.95 3.75 -652.979 -606.124 652.978 12075.3 606.124 -12075.3 0.0 +386 2.65 2.95 11.25 -403.824 -399.31 403.824 4765.3 399.31 -4765.3 0.0 +387 2.65 2.95 18.75 -187.153 -198.273 187.153 1631.6 198.273 -1631.6 0.0 +388 2.65 2.95 26.25 -66.1445 -73.0744 66.1444 465.712 73.0744 -465.712 0.0 +389 2.65 2.95 33.75 -17.7622 -18.4285 17.7623 99.7601 18.4285 -99.7601 0.0 +390 2.65 2.95 41.25 -3.98999 -2.7919 3.99011 13.9822 2.7919 -13.9822 0.0 +391 2.65 2.95 48.75 -0.962247 -0.422871 0.962286 1.0033 0.422848 -1.00329 0.0 +392 2.65 2.95 56.25 -0.219175 -0.313473 0.218952 -0.0875255 0.313511 0.0875306 0.0 +393 2.65 2.95 63.75 -0.044678 -0.231589 0.0446919 -0.204831 0.231605 0.204882 0.0 +394 2.65 2.95 71.25 -0.0396615 -0.157633 0.0394157 -0.207168 0.15761 0.207183 0.0 +395 2.65 2.95 78.75 0.000394622 -0.0817809 -0.000419789 -0.190543 0.0817504 0.19052 0.0 +396 2.65 2.95 86.25 0.0846769 0.0240518 -0.0846618 -0.190014 -0.0241096 0.19001 0.0 +397 2.65 2.95 93.75 0.158081 0.12764 -0.157821 -0.180645 -0.127555 0.18064 0.0 +398 2.65 2.95 101.25 0.189421 0.189324 -0.189292 -0.147352 -0.189274 0.147358 0.0 +399 2.65 2.95 108.75 0.164176 0.186927 -0.163977 -0.0895019 -0.186952 0.0894983 0.0 +400 2.65 2.95 116.25 0.0871432 0.125207 -0.0868669 -0.0199561 -0.125352 0.0199732 0.0 +401 2.65 2.95 123.75 -0.0085628 0.0365974 0.00860248 0.0390423 -0.0363033 -0.0391 0.0 +402 2.65 2.95 131.25 -0.0923265 -0.0482959 0.0922008 0.0760854 0.0485513 -0.0762079 0.0 +403 2.65 2.95 138.75 -0.169808 -0.131174 0.169899 0.102608 0.131327 -0.10265 0.0 +404 2.65 2.95 146.25 -0.277395 -0.242796 0.277398 0.141394 0.242783 -0.141344 0.0 +405 2.65 2.95 153.75 -0.440501 -0.407224 0.440757 0.205828 0.407133 -0.205796 0.0 +406 2.65 2.95 161.25 -0.645643 -0.610905 0.6459 0.288976 0.611281 -0.289147 0.0 +407 2.65 2.95 168.75 -0.840165 -0.802999 0.840107 0.367747 0.802858 -0.367578 0.0 +408 2.65 2.95 176.25 -0.958665 -0.920072 0.958486 0.415643 0.920088 -0.415608 0.0 +409 2.65 3.05 3.75 -535.332 -454.934 535.332 8760.56 454.934 -8760.56 0.0 +410 2.65 3.05 11.25 -331.494 -306.561 331.494 3960.52 306.561 -3960.52 0.0 +411 2.65 3.05 18.75 -145.715 -152.648 145.715 1393.82 152.648 -1393.82 0.0 +412 2.65 3.05 26.25 -45.1283 -55.696 45.1283 390.806 55.696 -390.806 0.0 +413 2.65 3.05 33.75 -9.03711 -13.9981 9.03714 79.4908 13.9982 -79.4908 0.0 +414 2.65 3.05 41.25 -1.22467 -2.35412 1.22472 9.98439 2.35415 -9.98442 0.0 +415 2.65 3.05 48.75 -0.350067 -0.498445 0.350201 0.482424 0.498397 -0.482377 0.0 +416 2.65 3.05 56.25 -0.145634 -0.296881 0.145625 -0.138328 0.296866 0.138253 0.0 +417 2.65 3.05 63.75 -0.0512301 -0.23938 0.0510461 -0.169789 0.239391 0.169777 0.0 +418 2.65 3.05 71.25 -0.0475131 -0.216688 0.0475797 -0.14914 0.21666 0.149179 0.0 +419 2.65 3.05 78.75 -0.0100019 -0.142708 0.0103876 -0.145447 0.142686 0.145453 0.0 +420 2.65 3.05 86.25 0.0629653 -0.0219697 -0.0630473 -0.155105 0.0219773 0.155114 0.0 +421 2.65 3.05 93.75 0.12664 0.0897788 -0.12658 -0.148638 -0.0897681 0.148648 0.0 +422 2.65 3.05 101.25 0.15677 0.161102 -0.15675 -0.121208 -0.161149 0.121229 0.0 +423 2.65 3.05 108.75 0.13765 0.175494 -0.137742 -0.0739815 -0.175467 0.0739654 0.0 +424 2.65 3.05 116.25 0.0719305 0.132074 -0.0719425 -0.0160117 -0.13204 0.0159808 0.0 +425 2.65 3.05 123.75 -0.0105205 0.0566312 0.0107171 0.0339816 -0.05635 -0.0341083 0.0 +426 2.65 3.05 131.25 -0.0825435 -0.0218324 0.0823353 0.0659987 0.0216974 -0.0659344 0.0 +427 2.65 3.05 138.75 -0.148847 -0.101917 0.149043 0.0897675 0.101945 -0.0897216 0.0 +428 2.65 3.05 146.25 -0.242919 -0.209388 0.242954 0.124121 0.209336 -0.12419 0.0 +429 2.65 3.05 153.75 -0.386426 -0.362461 0.386542 0.179324 0.362431 -0.179385 0.0 +430 2.65 3.05 161.25 -0.566176 -0.547526 0.566298 0.248855 0.547163 -0.248731 0.0 +431 2.65 3.05 168.75 -0.735042 -0.718844 0.735426 0.313712 0.718869 -0.313772 0.0 +432 2.65 3.05 176.25 -0.837976 -0.822371 0.837847 0.352792 0.822288 -0.352789 0.0 +433 2.65 3.15 3.75 -427.355 -285.2 427.355 6295.52 285.2 -6295.52 0.0 +434 2.65 3.15 11.25 -265.153 -194.02 265.153 3125.25 194.02 -3125.25 0.0 +435 2.65 3.15 18.75 -111.202 -95.1726 111.202 1125.35 95.1726 -1125.35 0.0 +436 2.65 3.15 26.25 -29.6517 -33.3268 29.6517 308.747 33.3268 -308.747 0.0 +437 2.65 3.15 33.75 -3.36664 -8.0325 3.36662 59.3209 8.03251 -59.3209 0.0 +438 2.65 3.15 41.25 0.370119 -1.56003 -0.370195 6.73765 1.55997 -6.73765 0.0 +439 2.65 3.15 48.75 -0.0293352 -0.505394 0.0293329 0.248728 0.505409 -0.248723 0.0 +440 2.65 3.15 56.25 -0.105843 -0.270835 0.105751 -0.145765 0.270743 0.145803 0.0 +441 2.65 3.15 63.75 -0.0513317 -0.246866 0.0514241 -0.147382 0.246878 0.147378 0.0 +442 2.65 3.15 71.25 -0.0501128 -0.275431 0.04993 -0.104001 0.275378 0.10398 0.0 +443 2.65 3.15 78.75 -0.0164568 -0.206434 0.0163659 -0.104649 0.206543 0.1047 0.0 +444 2.65 3.15 86.25 0.0461547 -0.0733023 -0.0462363 -0.11996 0.0733698 0.119964 0.0 +445 2.65 3.15 93.75 0.0990004 0.0476562 -0.0990613 -0.115936 -0.0477138 0.115929 0.0 +446 2.65 3.15 101.25 0.124404 0.129396 -0.124624 -0.0943304 -0.129428 0.0943415 0.0 +447 2.65 3.15 108.75 0.110989 0.159191 -0.110618 -0.0576564 -0.159015 0.0576196 0.0 +448 2.65 3.15 116.25 0.0587243 0.132639 -0.0587968 -0.0121644 -0.132721 0.0121638 0.0 +449 2.65 3.15 123.75 -0.00573936 0.071577 0.00545961 0.0272095 -0.0714379 -0.0272703 0.0 +450 2.65 3.15 131.25 -0.0595329 0.00372402 0.0596701 0.0523942 -0.00377444 -0.0523371 0.0 +451 2.65 3.15 138.75 -0.110101 -0.0680458 0.109914 0.0711533 0.0677435 -0.071079 0.0 +452 2.65 3.15 146.25 -0.183484 -0.162436 0.183193 0.097899 0.16187 -0.0976014 0.0 +453 2.65 3.15 153.75 -0.297201 -0.294331 0.297328 0.13994 0.294371 -0.13996 0.0 +454 2.65 3.15 161.25 -0.440022 -0.45053 0.440364 0.191997 0.45081 -0.192128 0.0 +455 2.65 3.15 168.75 -0.573979 -0.593135 0.574118 0.23999 0.593252 -0.240079 0.0 +456 2.65 3.15 176.25 -0.655332 -0.678506 0.655274 0.268714 0.678407 -0.2687 0.0 +457 2.65 3.25 3.75 -343.28 -124.107 343.28 4445.63 124.107 -4445.63 0.0 +458 2.65 3.25 11.25 -215.576 -82.5722 215.576 2350.25 82.5722 -2350.25 0.0 +459 2.65 3.25 18.75 -89.1611 -36.9434 89.1611 858.678 36.9434 -858.678 0.0 +460 2.65 3.25 26.25 -21.9322 -10.3742 21.9323 228.574 10.3742 -228.574 0.0 +461 2.65 3.25 33.75 -1.31403 -1.72106 1.31403 40.8621 1.72107 -40.8621 0.0 +462 2.65 3.25 41.25 0.795648 -0.575902 -0.795697 4.14894 0.57591 -4.14896 0.0 +463 2.65 3.25 48.75 0.0763357 -0.456169 -0.076398 0.148004 0.456256 -0.148065 0.0 +464 2.65 3.25 56.25 -0.063689 -0.249401 0.0637021 -0.13222 0.249531 0.132205 0.0 +465 2.65 3.25 63.75 -0.0358554 -0.249745 0.0359111 -0.121502 0.249724 0.121491 0.0 +466 2.65 3.25 71.25 -0.0428349 -0.311738 0.0428194 -0.0638131 0.311734 0.0637754 0.0 +467 2.65 3.25 78.75 -0.0147141 -0.250034 0.0144509 -0.0678206 0.250075 0.0677768 0.0 +468 2.65 3.25 86.25 0.0352991 -0.11503 -0.0353655 -0.0843742 0.115078 0.0843892 0.0 +469 2.65 3.25 93.75 0.0720144 0.00909964 -0.0719435 -0.0804605 -0.0090581 0.0804531 0.0 +470 2.65 3.25 101.25 0.0888655 0.0989902 -0.0887325 -0.0647524 -0.0990223 0.0647474 0.0 +471 2.65 3.25 108.75 0.0799171 0.143831 -0.0801351 -0.0405357 -0.143865 0.0405626 0.0 +472 2.65 3.25 116.25 0.0463151 0.13551 -0.0462271 -0.0103342 -0.135713 0.0104217 0.0 +473 2.65 3.25 123.75 0.00341445 0.0908375 -0.00340467 0.0161085 -0.0908948 -0.0161034 0.0 +474 2.65 3.25 131.25 -0.0328772 0.0354199 0.0327234 0.0332693 -0.0353895 -0.0333584 0.0 +475 2.65 3.25 138.75 -0.0675007 -0.0244596 0.0674606 0.0466046 0.0245277 -0.0466162 0.0 +476 2.65 3.25 146.25 -0.119973 -0.102745 0.119865 0.0658272 0.102678 -0.0658241 0.0 +477 2.65 3.25 153.75 -0.201674 -0.208813 0.202075 0.0954721 0.209073 -0.0955902 0.0 +478 2.65 3.25 161.25 -0.304347 -0.332116 0.304539 0.131641 0.332258 -0.131649 0.0 +479 2.65 3.25 168.75 -0.400265 -0.443353 0.400058 0.164689 0.443498 -0.164816 0.0 +480 2.65 3.25 176.25 -0.458148 -0.509414 0.458013 0.184384 0.509501 -0.184446 0.0 +481 2.65 3.35 3.75 -278.227 3.35188 278.227 2946.21 -3.35188 -2946.21 0.0 +482 2.65 3.35 11.25 -180.202 7.30679 180.202 1622.2 -7.30679 -1622.2 0.0 +483 2.65 3.35 18.75 -77.9402 10.1339 77.9402 594.724 -10.1339 -594.724 0.0 +484 2.65 3.35 26.25 -20.9467 8.02501 20.9466 151.361 -8.02502 -151.361 0.0 +485 2.65 3.35 33.75 -2.25835 3.3951 2.25826 24.3523 -3.39512 -24.3522 0.0 +486 2.65 3.35 41.25 0.363524 0.335418 -0.363448 2.07799 -0.335341 -2.07804 0.0 +487 2.65 3.35 48.75 0.0599237 -0.367988 -0.059957 0.0931953 0.367953 -0.0931855 0.0 +488 2.65 3.35 56.25 -0.0236982 -0.242143 0.0236458 -0.098598 0.242167 0.0985908 0.0 +489 2.65 3.35 63.75 -0.0239201 -0.250568 0.023879 -0.0793347 0.250659 0.0793004 0.0 +490 2.65 3.35 71.25 -0.0368509 -0.319915 0.0367806 -0.0239745 0.319926 0.0239988 0.0 +491 2.65 3.35 78.75 -0.0110244 -0.268487 0.0110139 -0.0344337 0.268438 0.0344165 0.0 +492 2.65 3.35 86.25 0.0245226 -0.144794 -0.024666 -0.0497857 0.144602 0.0497966 0.0 +493 2.65 3.35 93.75 0.0424081 -0.0251599 -0.0424651 -0.0453306 0.0251858 0.0453233 0.0 +494 2.65 3.35 101.25 0.04903 0.0707895 -0.0493151 -0.0359067 -0.0707318 0.0358776 0.0 +495 2.65 3.35 108.75 0.0471092 0.130164 -0.0471373 -0.0244748 -0.130189 0.0244837 0.0 +496 2.65 3.35 116.25 0.0314376 0.139837 -0.0314698 -0.00916072 -0.139805 0.00913728 0.0 +497 2.65 3.35 123.75 0.00660309 0.109671 -0.00661976 0.00590828 -0.109418 -0.00599612 0.0 +498 2.65 3.35 131.25 -0.0184331 0.0620534 0.0189306 0.0173272 -0.0619207 -0.0174002 0.0 +499 2.65 3.35 138.75 -0.0453275 0.00760214 0.0452428 0.0275525 -0.00734601 -0.027681 0.0 +500 2.65 3.35 146.25 -0.082266 -0.0599492 0.082171 0.0416578 0.0599927 -0.0416724 0.0 +501 2.65 3.35 153.75 -0.136274 -0.146184 0.136402 0.0620795 0.146055 -0.0619743 0.0 +502 2.65 3.35 161.25 -0.202661 -0.24297 0.20278 0.086379 0.243041 -0.0864087 0.0 +503 2.65 3.35 168.75 -0.264667 -0.328848 0.264622 0.108466 0.328816 -0.108439 0.0 +504 2.65 3.35 176.25 -0.302166 -0.379469 0.302333 0.121649 0.379451 -0.121585 0.0 +505 2.65 3.45 3.75 -181.094 56.5768 181.094 1415.07 -56.5768 -1415.07 0.0 +506 2.65 3.45 11.25 -122.646 43.7184 122.646 798.081 -43.7184 -798.081 0.0 +507 2.65 3.45 18.75 -57.6293 27.3547 57.6292 289.903 -27.3547 -289.903 0.0 +508 2.65 3.45 26.25 -18.2701 13.6208 18.2701 69.1213 -13.6207 -69.1213 0.0 +509 2.65 3.45 33.75 -3.43227 4.75555 3.43223 9.49818 -4.75554 -9.49816 0.0 +510 2.65 3.45 41.25 -0.262119 0.743592 0.262138 0.642703 -0.743569 -0.64265 0.0 +511 2.65 3.45 48.75 -0.0206249 -0.220801 0.0206949 0.0833427 0.220803 -0.0833703 0.0 +512 2.65 3.45 56.25 -0.0278092 -0.219147 0.0277268 -0.0418895 0.219207 0.0419362 0.0 +513 2.65 3.45 63.75 -0.0302865 -0.221675 0.0303371 -0.0292143 0.221725 0.0292088 0.0 +514 2.65 3.45 71.25 -0.0283973 -0.257992 0.0284536 0.00362643 0.257937 -0.00359012 0.0 +515 2.65 3.45 78.75 -0.00583895 -0.217814 0.00603552 -0.0105431 0.217741 0.0105389 0.0 +516 2.65 3.45 86.25 0.0119324 -0.129526 -0.0119649 -0.0224338 0.129557 0.0224452 0.0 +517 2.65 3.45 93.75 0.0144366 -0.0428903 -0.0145475 -0.0187179 0.0429014 0.0187299 0.0 +518 2.65 3.45 101.25 0.0149629 0.0297917 -0.015042 -0.0130715 -0.0298841 0.013074 0.0 +519 2.65 3.45 108.75 0.0176727 0.0802808 -0.0176481 -0.00859687 -0.0801128 0.00854075 0.0 +520 2.65 3.45 116.25 0.0142801 0.0968509 -0.0142142 -0.00275531 -0.0968446 0.00279613 0.0 +521 2.65 3.45 123.75 0.00274599 0.0822463 -0.00285046 0.00385754 -0.0822624 -0.00387098 0.0 +522 2.65 3.45 131.25 -0.0115459 0.0508246 0.0116421 0.00941126 -0.0506893 -0.00950556 0.0 +523 2.65 3.45 138.75 -0.0256544 0.0123774 0.0254092 0.0140698 -0.0124329 -0.0139752 0.0 +524 2.65 3.45 146.25 -0.0416502 -0.0338945 0.0416358 0.0199093 0.0339039 -0.0199382 0.0 +525 2.65 3.45 153.75 -0.06548 -0.0902951 0.0654101 0.02876 0.0902214 -0.0286754 0.0 +526 2.65 3.45 161.25 -0.0968618 -0.152516 0.096841 0.0402396 0.152761 -0.0403307 0.0 +527 2.65 3.45 168.75 -0.128132 -0.207768 0.128088 0.0514288 0.207796 -0.0514167 0.0 +528 2.65 3.45 176.25 -0.147889 -0.240577 0.147879 0.058392 0.24052 -0.0584226 0.0 +529 2.65 3.55 3.75 -77.1979 33.0526 77.1979 408.269 -33.0526 -408.269 0.0 +530 2.65 3.55 11.25 -54.4456 24.806 54.4456 233.071 -24.806 -233.071 0.0 +531 2.65 3.55 18.75 -27.4729 14.6982 27.4729 83.0823 -14.6982 -83.0823 0.0 +532 2.65 3.55 26.25 -9.74029 6.98034 9.74028 18.3878 -6.98034 -18.3878 0.0 +533 2.65 3.55 33.75 -2.26688 2.44976 2.26686 2.2212 -2.44975 -2.22122 0.0 +534 2.65 3.55 41.25 -0.338901 0.452784 0.338876 0.250018 -0.452783 -0.250042 0.0 +535 2.65 3.55 48.75 -0.085801 -0.0837087 0.0858276 0.0833161 0.0837009 -0.0833153 0.0 +536 2.65 3.55 56.25 -0.053787 -0.114074 0.0537453 -0.0208865 0.114083 0.0208809 0.0 +537 2.65 3.55 63.75 -0.0249841 -0.102636 0.0249818 -0.0169731 0.102618 0.0169814 0.0 +538 2.65 3.55 71.25 -0.00793484 -0.104993 0.0079199 0.00243536 0.104968 -0.00244121 0.0 +539 2.65 3.55 78.75 0.000477289 -0.083635 -0.000473373 -0.0028304 0.083634 0.00283354 0.0 +540 2.65 3.55 86.25 0.00225691 -0.0484377 -0.00227501 -0.00865479 0.0484012 0.00865592 0.0 +541 2.65 3.55 93.75 0.00072074 -0.0198074 -0.000659016 -0.00641186 0.0197662 0.00641637 0.0 +542 2.65 3.55 101.25 0.00112223 0.00094823 -0.0011259 -0.00217623 -0.000927796 0.00217226 0.0 +543 2.65 3.55 108.75 0.00303859 0.0169456 -0.0030474 0.000636489 -0.0170012 -0.000616911 0.0 +544 2.65 3.55 116.25 0.00293939 0.0254903 -0.00299498 0.00226534 -0.0254881 -0.00227427 0.0 +545 2.65 3.55 123.75 0.00105767 0.0250956 -0.00100249 0.00302411 -0.0251043 -0.00302286 0.0 +546 2.65 3.55 131.25 0.00089622 0.018822 -0.000861732 0.00254531 -0.0188028 -0.00256904 0.0 +547 2.65 3.55 138.75 0.00382565 0.0100627 -0.0038702 0.000936262 -0.0101195 -0.000921113 0.0 +548 2.65 3.55 146.25 0.00637878 -0.00112474 -0.0063611 -0.000499545 0.00116119 0.000462636 0.0 +549 2.65 3.55 153.75 0.00342379 -0.0163538 -0.00340327 -0.0001089 0.0163686 9.31942e-05 0.0 +550 2.65 3.55 161.25 -0.0063525 -0.0350349 0.00642576 0.00261085 0.0350954 -0.00266173 0.0 +551 2.65 3.55 168.75 -0.0193118 -0.0529521 0.01932 0.00641632 0.0530167 -0.00647477 0.0 +552 2.65 3.55 176.25 -0.0282729 -0.0640227 0.0283342 0.00913184 0.0640796 -0.00915341 0.0 +553 2.65 3.65 3.75 -9.07399 3.23181 9.07399 31.5979 -3.23181 -31.5979 0.0 +554 2.65 3.65 11.25 -6.54957 2.36668 6.54957 18.1922 -2.36668 -18.1922 0.0 +555 2.65 3.65 18.75 -3.41782 1.35636 3.41782 6.44075 -1.35636 -6.44075 0.0 +556 2.65 3.65 26.25 -1.25794 0.63761 1.25794 1.4388 -0.63761 -1.4388 0.0 +557 2.65 3.65 33.75 -0.314954 0.229217 0.314955 0.252105 -0.229219 -0.252103 0.0 +558 2.65 3.65 41.25 -0.0703285 0.0433984 0.0703295 0.0804037 -0.0433987 -0.080406 0.0 +559 2.65 3.65 48.75 -0.0346923 -0.00594178 0.0346905 0.0178914 0.00594136 -0.0178931 0.0 +560 2.65 3.65 56.25 -0.0178793 -0.00218658 0.0178826 -0.0109585 0.00218474 0.0109613 0.0 +561 2.65 3.65 63.75 -0.00296649 0.00371443 0.00296685 -0.0077863 -0.00371456 0.00778602 0.0 +562 2.65 3.65 71.25 0.00156936 0.00391538 -0.00157049 -0.000554586 -0.00391343 0.000556069 0.0 +563 2.65 3.65 78.75 4.72839e-05 0.00437901 -5.76159e-05 0.000766606 -0.00437852 -0.000767667 0.0 +564 2.65 3.65 86.25 -0.00150151 0.00465743 0.00150145 4.48359e-05 -0.00465746 -4.47759e-05 0.0 +565 2.65 3.65 93.75 -0.00154911 0.0023728 0.00155712 3.94444e-05 -0.00237267 -3.93568e-05 0.0 +566 2.65 3.65 101.25 -0.00102647 -0.00107232 0.0010322 0.000455843 0.00107411 -0.000456348 0.0 +567 2.65 3.65 108.75 -0.000931385 -0.00331098 0.000926423 0.000617065 0.00331642 -0.000619741 0.0 +568 2.65 3.65 116.25 -0.00125989 -0.00405896 0.00125662 0.000489735 0.00405917 -0.000489051 0.0 +569 2.65 3.65 123.75 -0.00119027 -0.00416793 0.00118127 0.00025776 0.00417216 -0.000258364 0.0 +570 2.65 3.65 131.25 2.02558e-06 -0.00385544 9.97877e-07 -5.65576e-05 0.00385538 5.6561e-05 0.0 +571 2.65 3.65 138.75 0.0019471 -0.0027434 -0.00193851 -0.000439961 0.00274576 0.000440451 0.0 +572 2.65 3.65 146.25 0.00340728 -0.000754999 -0.00340313 -0.000680537 0.000762165 0.000677165 0.0 +573 2.65 3.65 153.75 0.00324508 0.00162334 -0.00324525 -0.000497576 -0.00162245 0.000496814 0.0 +574 2.65 3.65 161.25 0.00132741 0.00369896 -0.00132849 0.000164919 -0.00371082 -0.000158918 0.0 +575 2.65 3.65 168.75 -0.00130947 0.00507786 0.00131187 0.00102227 -0.00507988 -0.00102051 0.0 +576 2.65 3.65 176.25 -0.00317672 0.00571563 0.00316942 0.00161776 -0.00571614 -0.00161842 0.0 +577 2.75 2.55 3.75 -646.883 -824.761 646.883 13661.4 824.761 -13661.4 0.0 +578 2.75 2.55 11.25 -376.729 -565.131 376.729 4500.92 565.131 -4500.92 0.0 +579 2.75 2.55 18.75 -160.492 -319.439 160.492 1493.04 319.439 -1493.04 0.0 +580 2.75 2.55 26.25 -43.8362 -150.439 43.8362 427.402 150.439 -427.402 0.0 +581 2.75 2.55 33.75 -1.31067 -57.798 1.31064 92.2844 57.798 -92.2844 0.0 +582 2.75 2.55 41.25 6.00479 -16.8893 -6.00479 12.5367 16.8893 -12.5367 0.0 +583 2.75 2.55 48.75 4.03968 -2.60255 -4.0397 0.399313 2.60257 -0.399325 0.0 +584 2.75 2.55 56.25 2.21549 0.863126 -2.21544 -0.669249 -0.863129 0.669252 0.0 +585 2.75 2.55 63.75 1.40852 0.965831 -1.40854 -0.799145 -0.965837 0.799139 0.0 +586 2.75 2.55 71.25 0.877522 0.581863 -0.877718 -0.688179 -0.58189 0.688182 0.0 +587 2.75 2.55 78.75 0.432572 0.486926 -0.432514 -0.598602 -0.486947 0.598584 0.0 +588 2.75 2.55 86.25 0.163082 0.5836 -0.163134 -0.629205 -0.583719 0.629203 0.0 +589 2.75 2.55 93.75 0.0579151 0.606926 -0.0578918 -0.622595 -0.606869 0.622589 0.0 +590 2.75 2.55 101.25 0.0188255 0.45842 -0.0190481 -0.481734 -0.458384 0.481734 0.0 +591 2.75 2.55 108.75 -0.0159447 0.212618 0.0158542 -0.267236 -0.212519 0.267236 0.0 +592 2.75 2.55 116.25 -0.0341603 -0.00942321 0.0342676 -0.0831169 0.00944397 0.0831394 0.0 +593 2.75 2.55 123.75 0.00214989 -0.134649 -0.00214598 0.0210578 0.134553 -0.0210391 0.0 +594 2.75 2.55 131.25 0.0938516 -0.166277 -0.0938361 0.0622856 0.166334 -0.0623105 0.0 +595 2.75 2.55 138.75 0.18366 -0.166533 -0.183695 0.0899007 0.166491 -0.0898952 0.0 +596 2.75 2.55 146.25 0.192167 -0.212871 -0.19235 0.147586 0.212929 -0.147608 0.0 +597 2.75 2.55 153.75 0.0741489 -0.350932 -0.0741025 0.250625 0.350927 -0.250612 0.0 +598 2.75 2.55 161.25 -0.14589 -0.565391 0.145774 0.382212 0.565381 -0.382217 0.0 +599 2.75 2.55 168.75 -0.383057 -0.786435 0.383012 0.504804 0.786416 -0.504808 0.0 +600 2.75 2.55 176.25 -0.535417 -0.926475 0.535265 0.578566 0.926571 -0.578605 0.0 +601 2.75 2.65 3.75 -831.831 -860.5 831.831 20895.9 860.5 -20895.9 0.0 +602 2.75 2.65 11.25 -475.094 -547.496 475.094 5365.4 547.496 -5365.4 0.0 +603 2.75 2.65 18.75 -211.099 -284.158 211.099 1707.48 284.158 -1707.48 0.0 +604 2.75 2.65 26.25 -68.5394 -118.424 68.5394 479.405 118.424 -479.405 0.0 +605 2.75 2.65 33.75 -13.6757 -38.7319 13.6757 102.918 38.7319 -102.918 0.0 +606 2.75 2.65 41.25 -0.641629 -9.94534 0.641516 15.2464 9.94536 -15.2464 0.0 +607 2.75 2.65 48.75 0.332944 -2.18488 -0.332922 1.85409 2.18487 -1.8541 0.0 +608 2.75 2.65 56.25 0.112165 -0.465651 -0.112096 0.181132 0.46563 -0.181143 0.0 +609 2.75 2.65 63.75 0.17644 -0.0725113 -0.176231 -0.386031 0.0725132 0.386039 0.0 +610 2.75 2.65 71.25 0.181446 0.0079536 -0.181422 -0.450971 -0.0079448 0.450977 0.0 +611 2.75 2.65 78.75 0.1272 0.0562691 -0.126984 -0.35027 -0.0562978 0.350258 0.0 +612 2.75 2.65 86.25 0.131164 0.146678 -0.130971 -0.320782 -0.146689 0.320782 0.0 +613 2.75 2.65 93.75 0.184111 0.220732 -0.184056 -0.310724 -0.220653 0.310723 0.0 +614 2.75 2.65 101.25 0.213605 0.217192 -0.213601 -0.244091 -0.217167 0.244081 0.0 +615 2.75 2.65 108.75 0.179639 0.136558 -0.179737 -0.132731 -0.136657 0.132727 0.0 +616 2.75 2.65 116.25 0.100081 0.0217289 -0.100093 -0.0251836 -0.0217251 0.0251759 0.0 +617 2.75 2.65 123.75 0.0195628 -0.0815694 -0.0193724 0.0480742 0.0816744 -0.0480962 0.0 +618 2.75 2.65 131.25 -0.0392766 -0.157775 0.0391865 0.0897435 0.157642 -0.0896697 0.0 +619 2.75 2.65 138.75 -0.100375 -0.232729 0.100477 0.125775 0.232723 -0.125727 0.0 +620 2.75 2.65 146.25 -0.214623 -0.354582 0.214959 0.184674 0.354626 -0.184677 0.0 +621 2.75 2.65 153.75 -0.413318 -0.55297 0.413289 0.278244 0.552966 -0.278243 0.0 +622 2.75 2.65 161.25 -0.673058 -0.807985 0.672735 0.393846 0.807876 -0.393806 0.0 +623 2.75 2.65 168.75 -0.921828 -1.05215 0.921789 0.500727 1.05224 -0.500783 0.0 +624 2.75 2.65 176.25 -1.07494 -1.20227 1.0747 0.564979 1.20218 -0.564915 0.0 +625 2.75 2.75 3.75 -953.112 -854.306 953.112 25981 854.306 -25981 0.0 +626 2.75 2.75 11.25 -539.051 -520.941 539.051 5855.95 520.941 -5855.95 0.0 +627 2.75 2.75 18.75 -242.983 -254.204 242.983 1824.66 254.204 -1824.66 0.0 +628 2.75 2.75 26.25 -83.2573 -94.4794 83.2573 502.272 94.4793 -502.272 0.0 +629 2.75 2.75 33.75 -20.5412 -24.7823 20.5412 104.828 24.7823 -104.828 0.0 +630 2.75 2.75 41.25 -3.9136 -4.29412 3.91362 14.9464 4.2941 -14.9465 0.0 +631 2.75 2.75 48.75 -1.12328 -0.873619 1.12322 1.93019 0.873624 -1.93018 0.0 +632 2.75 2.75 56.25 -0.514324 -0.496154 0.514312 0.391368 0.496221 -0.39134 0.0 +633 2.75 2.75 63.75 -0.164596 -0.213443 0.164691 -0.208447 0.213484 0.208481 0.0 +634 2.75 2.75 71.25 -0.041967 -0.0485499 0.0420123 -0.328452 0.0485135 0.328445 0.0 +635 2.75 2.75 78.75 0.00770861 0.0144404 -0.0076428 -0.256255 -0.0144125 0.25625 0.0 +636 2.75 2.75 86.25 0.090797 0.0907928 -0.090835 -0.225168 -0.0907865 0.225168 0.0 +637 2.75 2.75 93.75 0.181978 0.179759 -0.182045 -0.218388 -0.179673 0.218388 0.0 +638 2.75 2.75 101.25 0.225859 0.223811 -0.2259 -0.17996 -0.22375 0.17996 0.0 +639 2.75 2.75 108.75 0.197221 0.193022 -0.197213 -0.105534 -0.19316 0.105561 0.0 +640 2.75 2.75 116.25 0.109362 0.103419 -0.109316 -0.0211263 -0.10351 0.0211473 0.0 +641 2.75 2.75 123.75 0.00356169 -0.00337669 -0.00365545 0.0468134 0.00343037 -0.0468135 0.0 +642 2.75 2.75 131.25 -0.0899181 -0.097849 0.0896843 0.0904862 0.0978568 -0.090473 0.0 +643 2.75 2.75 138.75 -0.180752 -0.189165 0.180483 0.124806 0.189251 -0.124873 0.0 +644 2.75 2.75 146.25 -0.307245 -0.315227 0.307006 0.173842 0.315177 -0.173832 0.0 +645 2.75 2.75 153.75 -0.495888 -0.504071 0.495883 0.250885 0.504047 -0.250882 0.0 +646 2.75 2.75 161.25 -0.730452 -0.740638 0.730449 0.347741 0.740677 -0.347784 0.0 +647 2.75 2.75 168.75 -0.951281 -0.965256 0.9512 0.438629 0.965085 -0.438584 0.0 +648 2.75 2.75 176.25 -1.08583 -1.10279 1.08592 0.493743 1.10285 -0.493793 0.0 +649 2.75 2.85 3.75 -970.563 -775.744 970.563 23153.2 775.744 -23153.2 0.0 +650 2.75 2.85 11.25 -556.721 -474.097 556.721 5862.74 474.097 -5862.74 0.0 +651 2.75 2.85 18.75 -250.751 -224.584 250.751 1827.2 224.584 -1827.2 0.0 +652 2.75 2.85 26.25 -86.059 -77.5526 86.059 494.052 77.5526 -494.052 0.0 +653 2.75 2.85 33.75 -21.7848 -16.8577 21.7848 99.2767 16.8577 -99.2767 0.0 +654 2.75 2.85 41.25 -4.50961 -1.52272 4.5095 12.9376 1.52274 -12.9376 0.0 +655 2.75 2.85 48.75 -1.25065 -0.243785 1.25071 1.39261 0.243763 -1.39263 0.0 +656 2.75 2.85 56.25 -0.463066 -0.460087 0.463015 0.300113 0.460075 -0.300136 0.0 +657 2.75 2.85 63.75 -0.151187 -0.275288 0.151132 -0.144808 0.275348 0.144857 0.0 +658 2.75 2.85 71.25 -0.0749749 -0.110892 0.0749169 -0.249281 0.110829 0.249264 0.0 +659 2.75 2.85 78.75 -0.0201116 -0.0351113 0.0202283 -0.210984 0.0351362 0.210976 0.0 +660 2.75 2.85 86.25 0.0736389 0.0501401 -0.0736054 -0.194737 -0.0502144 0.194733 0.0 +661 2.75 2.85 93.75 0.160078 0.146192 -0.159898 -0.1879 -0.146241 0.187904 0.0 +662 2.75 2.85 101.25 0.200786 0.204303 -0.200728 -0.156391 -0.204259 0.156374 0.0 +663 2.75 2.85 108.75 0.17997 0.193028 -0.179585 -0.0955768 -0.192919 0.0955569 0.0 +664 2.75 2.85 116.25 0.103624 0.119278 -0.103941 -0.0221991 -0.119219 0.0221951 0.0 +665 2.75 2.85 123.75 0.00644177 0.0211333 -0.00659697 0.0394802 -0.0210367 -0.0394978 0.0 +666 2.75 2.85 131.25 -0.0803186 -0.0672129 0.080414 0.0781492 0.0671178 -0.0781413 0.0 +667 2.75 2.85 138.75 -0.161637 -0.148838 0.161505 0.105436 0.149111 -0.105534 0.0 +668 2.75 2.85 146.25 -0.270086 -0.257695 0.270083 0.14428 0.257823 -0.144344 0.0 +669 2.75 2.85 153.75 -0.43239 -0.421507 0.432363 0.208547 0.421587 -0.208591 0.0 +670 2.75 2.85 161.25 -0.634898 -0.628455 0.634872 0.291785 0.628448 -0.291789 0.0 +671 2.75 2.85 168.75 -0.826247 -0.825693 0.826352 0.370982 0.825733 -0.37098 0.0 +672 2.75 2.85 176.25 -0.943351 -0.946865 0.943117 0.419282 0.946914 -0.419356 0.0 +673 2.75 2.95 3.75 -897.538 -636.356 897.538 17274.5 636.356 -17274.5 0.0 +674 2.75 2.95 11.25 -527.594 -400.007 527.594 5426.93 400.007 -5426.93 0.0 +675 2.75 2.95 18.75 -234.856 -188.606 234.856 1719.6 188.606 -1719.6 0.0 +676 2.75 2.95 26.25 -78.0109 -63.1924 78.0109 457.632 63.1924 -457.632 0.0 +677 2.75 2.95 33.75 -18.5523 -12.6415 18.5523 88.2261 12.6415 -88.2261 0.0 +678 2.75 2.95 41.25 -3.43241 -0.788747 3.43237 10.3311 0.788758 -10.3311 0.0 +679 2.75 2.95 48.75 -0.834456 -0.199558 0.834517 0.799118 0.199613 -0.799125 0.0 +680 2.75 2.95 56.25 -0.273778 -0.463123 0.273749 0.148104 0.463143 -0.148167 0.0 +681 2.75 2.95 63.75 -0.103413 -0.318818 0.103504 -0.111608 0.31885 0.111645 0.0 +682 2.75 2.95 71.25 -0.0843263 -0.181793 0.0843793 -0.175312 0.181809 0.175287 0.0 +683 2.75 2.95 78.75 -0.0303993 -0.093494 0.0304044 -0.167209 0.0935528 0.167232 0.0 +684 2.75 2.95 86.25 0.0620423 0.00699782 -0.0622995 -0.169543 -0.00683051 0.169553 0.0 +685 2.75 2.95 93.75 0.136614 0.106217 -0.136678 -0.163514 -0.106191 0.163506 0.0 +686 2.75 2.95 101.25 0.17196 0.170249 -0.171903 -0.134812 -0.170364 0.13483 0.0 +687 2.75 2.95 108.75 0.15684 0.174342 -0.156924 -0.0828548 -0.174193 0.082802 0.0 +688 2.75 2.95 116.25 0.0926482 0.118695 -0.0927901 -0.0195911 -0.118646 0.0195826 0.0 +689 2.75 2.95 123.75 0.00849675 0.0355959 -0.00833828 0.0336514 -0.0356652 -0.0336479 0.0 +690 2.75 2.95 131.25 -0.0660839 -0.0418908 0.0662238 0.0659291 0.041797 -0.065883 0.0 +691 2.75 2.95 138.75 -0.134275 -0.114174 0.134106 0.0880437 0.114322 -0.0880806 0.0 +692 2.75 2.95 146.25 -0.227305 -0.21177 0.227027 0.121094 0.2116 -0.121002 0.0 +693 2.75 2.95 153.75 -0.368554 -0.358527 0.368374 0.177219 0.358663 -0.177335 0.0 +694 2.75 2.95 161.25 -0.546482 -0.542986 0.546711 0.250148 0.542877 -0.250051 0.0 +695 2.75 2.95 168.75 -0.715439 -0.717898 0.715379 0.319323 0.717937 -0.319304 0.0 +696 2.75 2.95 176.25 -0.817997 -0.824689 0.818295 0.361371 0.825027 -0.361574 0.0 +697 2.75 3.05 3.75 -770.161 -463.434 770.161 12393.7 463.434 -12393.7 0.0 +698 2.75 3.05 11.25 -462.237 -301.474 462.237 4693.99 301.474 -4693.99 0.0 +699 2.75 3.05 18.75 -201.495 -143.479 201.495 1525.17 143.479 -1525.17 0.0 +700 2.75 3.05 26.25 -62.9238 -47.8688 62.9238 399.794 47.8688 -399.794 0.0 +701 2.75 3.05 33.75 -12.9682 -9.61891 12.9682 73.8547 9.61892 -73.8547 0.0 +702 2.75 3.05 41.25 -1.7583 -0.85457 1.75829 7.81837 0.854518 -7.81834 0.0 +703 2.75 3.05 48.75 -0.381642 -0.346117 0.381587 0.40516 0.34605 -0.405176 0.0 +704 2.75 3.05 56.25 -0.163641 -0.440252 0.163583 0.0381865 0.440156 -0.0381959 0.0 +705 2.75 3.05 63.75 -0.103568 -0.332346 0.103485 -0.0833787 0.332372 0.0833554 0.0 +706 2.75 3.05 71.25 -0.101444 -0.24461 0.101602 -0.107568 0.244525 0.107546 0.0 +707 2.75 3.05 78.75 -0.038508 -0.1504 0.038783 -0.1224 0.150253 0.122395 0.0 +708 2.75 3.05 86.25 0.0496984 -0.0343332 -0.0494439 -0.140095 0.0345932 0.140101 0.0 +709 2.75 3.05 93.75 0.111297 0.06995 -0.111612 -0.135869 -0.0701637 0.135882 0.0 +710 2.75 3.05 101.25 0.140426 0.140943 -0.140275 -0.110396 -0.140778 0.110407 0.0 +711 2.75 3.05 108.75 0.12795 0.158778 -0.128322 -0.0664922 -0.158818 0.0664985 0.0 +712 2.75 3.05 116.25 0.0728381 0.119891 -0.0730793 -0.0130873 -0.11982 0.0129934 0.0 +713 2.75 3.05 123.75 0.000267345 0.0511317 -9.01598e-05 0.0314953 -0.0510922 -0.03149 0.0 +714 2.75 3.05 131.25 -0.063069 -0.0174406 0.0628665 0.0580034 0.0170276 -0.0579042 0.0 +715 2.75 3.05 138.75 -0.119018 -0.0842153 0.11903 0.0763319 0.0841315 -0.0762935 0.0 +716 2.75 3.05 146.25 -0.197865 -0.1752 0.197467 0.104414 0.175196 -0.104295 0.0 +717 2.75 3.05 153.75 -0.319615 -0.309756 0.319424 0.151665 0.309809 -0.15167 0.0 +718 2.75 3.05 161.25 -0.473103 -0.474577 0.47295 0.212121 0.474601 -0.212138 0.0 +719 2.75 3.05 168.75 -0.617392 -0.628077 0.617611 0.268756 0.627819 -0.268631 0.0 +720 2.75 3.05 176.25 -0.705354 -0.720636 0.705297 0.302934 0.720794 -0.303013 0.0 +721 2.75 3.15 3.75 -621.059 -283.307 621.059 8818.58 283.307 -8818.58 0.0 +722 2.75 3.15 11.25 -378.076 -190.869 378.076 3830.09 190.869 -3830.09 0.0 +723 2.75 3.15 18.75 -160.427 -92.3481 160.427 1277.7 92.3481 -1277.7 0.0 +724 2.75 3.15 26.25 -45.9966 -30.9532 45.9966 329.373 30.9532 -329.373 0.0 +725 2.75 3.15 33.75 -7.4094 -6.49374 7.40945 58.1344 6.49371 -58.1344 0.0 +726 2.75 3.15 41.25 -0.360268 -0.948504 0.360207 5.64912 0.948525 -5.64911 0.0 +727 2.75 3.15 48.75 -0.109681 -0.454359 0.109583 0.215632 0.454311 -0.215651 0.0 +728 2.75 3.15 56.25 -0.128581 -0.381055 0.12849 -0.024614 0.380998 0.0245607 0.0 +729 2.75 3.15 63.75 -0.107772 -0.325095 0.107852 -0.0656164 0.325178 0.0656213 0.0 +730 2.75 3.15 71.25 -0.10009 -0.293719 0.100061 -0.059479 0.293753 0.059475 0.0 +731 2.75 3.15 78.75 -0.036158 -0.200438 0.0358502 -0.0856231 0.200546 0.0856524 0.0 +732 2.75 3.15 86.25 0.0377439 -0.0742392 -0.037571 -0.109183 0.0742289 0.109172 0.0 +733 2.75 3.15 93.75 0.0838315 0.0343987 -0.0838656 -0.104987 -0.0344864 0.105012 0.0 +734 2.75 3.15 101.25 0.106057 0.110494 -0.106108 -0.0834801 -0.110598 0.0834927 0.0 +735 2.75 3.15 108.75 0.0968552 0.139813 -0.0967877 -0.0483794 -0.139765 0.0483448 0.0 +736 2.75 3.15 116.25 0.051391 0.115917 -0.0515763 -0.0060004 -0.116112 0.00610288 0.0 +737 2.75 3.15 123.75 -0.00713598 0.0613642 0.00718246 0.0286098 -0.0614779 -0.0285439 0.0 +738 2.75 3.15 131.25 -0.0559847 0.00396885 0.0560961 0.0483465 -0.00390007 -0.0484359 0.0 +739 2.75 3.15 138.75 -0.0990609 -0.0545791 0.0984659 0.061732 0.0548182 -0.0618343 0.0 +740 2.75 3.15 146.25 -0.159454 -0.134936 0.1595 0.0827794 0.135061 -0.08272 0.0 +741 2.75 3.15 153.75 -0.25524 -0.251075 0.255086 0.118141 0.251122 -0.118172 0.0 +742 2.75 3.15 161.25 -0.375288 -0.38964 0.375663 0.162894 0.389747 -0.16293 0.0 +743 2.75 3.15 168.75 -0.488486 -0.516392 0.488643 0.204424 0.516148 -0.204273 0.0 +744 2.75 3.15 176.25 -0.556839 -0.591689 0.556911 0.229329 0.591767 -0.229304 0.0 +745 2.75 3.25 3.75 -476.667 -121.19 476.667 6210.58 121.19 -6210.58 0.0 +746 2.75 3.25 11.25 -293.373 -85.8334 293.373 2968.1 85.8334 -2968.1 0.0 +747 2.75 3.25 18.75 -121.508 -42.7495 121.508 1012.27 42.7495 -1012.27 0.0 +748 2.75 3.25 26.25 -31.8786 -14.325 31.8786 255.334 14.325 -255.334 0.0 +749 2.75 3.25 33.75 -3.63288 -3.16546 3.63301 42.6516 3.16544 -42.6516 0.0 +750 2.75 3.25 41.25 0.315726 -0.793557 -0.315791 3.80727 0.79365 -3.8073 0.0 +751 2.75 3.25 48.75 -0.0242544 -0.460584 0.0242178 0.130581 0.460619 -0.130536 0.0 +752 2.75 3.25 56.25 -0.0991531 -0.30838 0.0992679 -0.0606306 0.308269 0.0605918 0.0 +753 2.75 3.25 63.75 -0.0775749 -0.303078 0.0775341 -0.058713 0.303134 0.0587059 0.0 +754 2.75 3.25 71.25 -0.0726081 -0.316404 0.0725509 -0.0320203 0.316355 0.0321083 0.0 +755 2.75 3.25 78.75 -0.0250871 -0.232854 0.0249036 -0.0576022 0.232759 0.0576201 0.0 +756 2.75 3.25 86.25 0.0262879 -0.108161 -0.0264355 -0.0771184 0.108011 0.0771155 0.0 +757 2.75 3.25 93.75 0.0560476 -0.000207024 -0.0559883 -0.0716051 0.000146475 0.0716155 0.0 +758 2.75 3.25 101.25 0.072468 0.0806321 -0.0723149 -0.0559611 -0.0805163 0.0559016 0.0 +759 2.75 3.25 108.75 0.0683282 0.121003 -0.068317 -0.0319853 -0.121 0.0319423 0.0 +760 2.75 3.25 116.25 0.0376756 0.112607 -0.037291 -0.00283035 -0.112703 0.00284452 0.0 +761 2.75 3.25 123.75 -0.00470402 0.0730337 0.00443815 0.0205484 -0.072994 -0.0206443 0.0 +762 2.75 3.25 131.25 -0.0393657 0.0275953 0.0393646 0.0333389 -0.02763 -0.0332308 0.0 +763 2.75 3.25 138.75 -0.0690594 -0.0208708 0.0692442 0.0419952 0.0207699 -0.0419967 0.0 +764 2.75 3.25 146.25 -0.111014 -0.0862657 0.110952 0.0560987 0.0863438 -0.0561322 0.0 +765 2.75 3.25 153.75 -0.176809 -0.178443 0.176496 0.0798216 0.178512 -0.0798746 0.0 +766 2.75 3.25 161.25 -0.258767 -0.286055 0.259122 0.109635 0.286421 -0.109773 0.0 +767 2.75 3.25 168.75 -0.336709 -0.383242 0.3365 0.137155 0.383371 -0.137249 0.0 +768 2.75 3.25 176.25 -0.383233 -0.440518 0.383304 0.153612 0.440294 -0.153402 0.0 +769 2.75 3.35 3.75 -341.385 1.74756 341.385 4134.74 -1.74757 -4134.74 0.0 +770 2.75 3.35 11.25 -213.168 -3.19693 213.168 2109.24 3.19691 -2109.24 0.0 +771 2.75 3.35 18.75 -87.8275 -2.99417 87.8276 729.622 2.99416 -729.622 0.0 +772 2.75 3.35 26.25 -22.0888 -0.704944 22.0887 178.369 0.70499 -178.369 0.0 +773 2.75 3.35 33.75 -2.07542 -0.0682655 2.0755 27.6089 0.0682662 -27.6089 0.0 +774 2.75 3.35 41.25 0.300247 -0.350456 -0.300305 2.18926 0.350473 -2.18927 0.0 +775 2.75 3.35 48.75 -0.0373785 -0.369541 0.0374118 0.0833796 0.36958 -0.083402 0.0 +776 2.75 3.35 56.25 -0.0518069 -0.259322 0.0517312 -0.0686295 0.259412 0.0687251 0.0 +777 2.75 3.35 63.75 -0.0322367 -0.285586 0.0323754 -0.0471277 0.285461 0.0471608 0.0 +778 2.75 3.35 71.25 -0.0437375 -0.317171 0.043788 -0.0133265 0.317084 0.0133532 0.0 +779 2.75 3.35 78.75 -0.0172441 -0.248737 0.0171536 -0.0330689 0.248747 0.0330618 0.0 +780 2.75 3.35 86.25 0.0144849 -0.135178 -0.014571 -0.0452186 0.135353 0.0452189 0.0 +781 2.75 3.35 93.75 0.030471 -0.0300865 -0.030347 -0.0398041 0.0300945 0.0397911 0.0 +782 2.75 3.35 101.25 0.0406014 0.0563913 -0.0407253 -0.0312837 -0.0564639 0.0312859 0.0 +783 2.75 3.35 108.75 0.0422766 0.108893 -0.0423538 -0.0189637 -0.109138 0.0190212 0.0 +784 2.75 3.35 116.25 0.0267588 0.115186 -0.0269597 -0.00297617 -0.11525 0.00295127 0.0 +785 2.75 3.35 123.75 0.000501099 0.0878862 -0.000774694 0.0104498 -0.0881349 -0.0102325 0.0 +786 2.75 3.35 131.25 -0.0236225 0.0489236 0.0238085 0.0185255 -0.0490552 -0.0184822 0.0 +787 2.75 3.35 138.75 -0.0444452 0.00629968 0.044223 0.0246731 -0.00652667 -0.0245664 0.0 +788 2.75 3.35 146.25 -0.0693381 -0.0474412 0.069485 0.0339103 0.0474594 -0.0339419 0.0 +789 2.75 3.35 153.75 -0.107186 -0.118947 0.107138 0.0484857 0.1189 -0.0484203 0.0 +790 2.75 3.35 161.25 -0.154793 -0.200912 0.154723 0.0665572 0.200588 -0.0663788 0.0 +791 2.75 3.35 168.75 -0.200583 -0.274251 0.200264 0.0833152 0.274149 -0.0833102 0.0 +792 2.75 3.35 176.25 -0.22795 -0.317539 0.228214 0.0934114 0.317615 -0.093522 0.0 +793 2.75 3.45 3.75 -181.602 50.4515 181.602 2007.55 -50.4515 -2007.55 0.0 +794 2.75 3.45 11.25 -116.135 31.353 116.135 1069.23 -31.3531 -1069.23 0.0 +795 2.75 3.45 18.75 -49.1544 14.1197 49.1544 371.433 -14.1197 -371.433 0.0 +796 2.75 3.45 26.25 -12.9027 5.27843 12.9027 86.871 -5.27842 -86.871 0.0 +797 2.75 3.45 33.75 -1.53044 1.58922 1.53042 12.1098 -1.58919 -12.1098 0.0 +798 2.75 3.45 41.25 0.0034182 0.175305 -0.00341175 0.852259 -0.175314 -0.852262 0.0 +799 2.75 3.45 48.75 -0.0627082 -0.187051 0.0626463 0.0745378 0.187162 -0.0745079 0.0 +800 2.75 3.45 56.25 -0.0269175 -0.208615 0.0269865 -0.0380544 0.208565 0.0380413 0.0 +801 2.75 3.45 63.75 -0.0156683 -0.232533 0.0156754 -0.0230666 0.232476 0.0230535 0.0 +802 2.75 3.45 71.25 -0.027083 -0.247837 0.027041 5.30776e-05 0.247723 -0.000124963 0.0 +803 2.75 3.45 78.75 -0.0110419 -0.199747 0.0110237 -0.01275 0.199733 0.0127249 0.0 +804 2.75 3.45 86.25 0.00600723 -0.118375 -0.00584057 -0.01943 0.118327 0.0194294 0.0 +805 2.75 3.45 93.75 0.00873478 -0.0394094 -0.00879205 -0.0152652 0.0394659 0.0152585 0.0 +806 2.75 3.45 101.25 0.00962037 0.0272073 -0.00960224 -0.0103152 -0.0271381 0.0103031 0.0 +807 2.75 3.45 108.75 0.0122306 0.0719369 -0.0122886 -0.00545491 -0.071926 0.00547195 0.0 +808 2.75 3.45 116.25 0.00974245 0.0846866 -0.00979763 -2.00295e-05 -0.084746 5.2625e-05 0.0 +809 2.75 3.45 123.75 0.000243929 0.070346 -0.000352399 0.00484904 -0.0702929 -0.00489636 0.0 +810 2.75 3.45 131.25 -0.010453 0.043801 0.0102586 0.00831848 -0.0439736 -0.00824598 0.0 +811 2.75 3.45 138.75 -0.0180464 0.0137037 0.0179837 0.0107806 -0.0137201 -0.0108167 0.0 +812 2.75 3.45 146.25 -0.025475 -0.0218772 0.0256088 0.0136926 0.0220646 -0.0138449 0.0 +813 2.75 3.45 153.75 -0.0382383 -0.0672046 0.0382092 0.0186021 0.0672579 -0.018626 0.0 +814 2.75 3.45 161.25 -0.0575259 -0.119353 0.0574959 0.0256839 0.119252 -0.0256513 0.0 +815 2.75 3.45 168.75 -0.0781428 -0.166869 0.078149 0.0330717 0.16689 -0.0331148 0.0 +816 2.75 3.45 176.25 -0.0916728 -0.195518 0.0917779 0.0378401 0.195665 -0.037981 0.0 +817 2.75 3.55 3.75 -60.5153 27.692 60.5153 588.046 -27.692 -588.046 0.0 +818 2.75 3.55 11.25 -39.8784 17.4201 39.8784 321.892 -17.4201 -321.892 0.0 +819 2.75 3.55 18.75 -17.6334 7.7718 17.6334 111.365 -7.7718 -111.365 0.0 +820 2.75 3.55 26.25 -4.94614 2.91047 4.94616 24.801 -2.91047 -24.801 0.0 +821 2.75 3.55 33.75 -0.717862 1.02613 0.717872 3.21211 -1.02616 -3.21209 0.0 +822 2.75 3.55 41.25 -0.0703286 0.253386 0.0703577 0.326292 -0.253389 -0.326305 0.0 +823 2.75 3.55 48.75 -0.0696314 -0.0360868 0.0696098 0.0745468 0.0361057 -0.0745544 0.0 +824 2.75 3.55 56.25 -0.0386849 -0.0894109 0.0386635 -0.0191097 0.0894516 0.0190794 0.0 +825 2.75 3.55 63.75 -0.0158765 -0.0925221 0.0158458 -0.0145167 0.09256 0.0145237 0.0 +826 2.75 3.55 71.25 -0.00997075 -0.0929607 0.00998059 0.000467248 0.0929809 -0.000443377 0.0 +827 2.75 3.55 78.75 -0.00149974 -0.0734939 0.00146198 -0.00355586 0.0735358 0.00355353 0.0 +828 2.75 3.55 86.25 0.0028805 -0.042718 -0.00289025 -0.00634796 0.0427423 0.00634686 0.0 +829 2.75 3.55 93.75 -0.000895397 -0.0173398 0.000915914 -0.00268197 0.0173692 0.00268557 0.0 +830 2.75 3.55 101.25 -0.00461455 0.00200332 0.00464936 0.00177679 -0.00195006 -0.0017874 0.0 +831 2.75 3.55 108.75 -0.00367123 0.0176377 0.00372332 0.00363241 -0.0176972 -0.00361264 0.0 +832 2.75 3.55 116.25 -0.00131124 0.0260317 0.00133193 0.00346321 -0.0260021 -0.00346733 0.0 +833 2.75 3.55 123.75 -0.000257145 0.0251737 0.000204938 0.00292588 -0.0251838 -0.00291469 0.0 +834 2.75 3.55 131.25 0.000973531 0.0188626 -0.000971992 0.00228745 -0.0188196 -0.00232812 0.0 +835 2.75 3.55 138.75 0.00409367 0.011615 -0.00404917 0.000911448 -0.011591 -0.000925473 0.0 +836 2.75 3.55 146.25 0.00744491 0.00348645 -0.0075166 -0.000905243 -0.00344952 0.000869305 0.0 +837 2.75 3.55 153.75 0.00762023 -0.00783196 -0.00763712 -0.00180907 0.00784858 0.00180265 0.0 +838 2.75 3.55 161.25 0.00271034 -0.0229315 -0.00264761 -0.000890015 0.0229401 0.000888095 0.0 +839 2.75 3.55 168.75 -0.0051415 -0.0382675 0.00514139 0.00125874 0.0383533 -0.00131918 0.0 +840 2.75 3.55 176.25 -0.0109249 -0.0480268 0.0109626 0.00300256 0.0480665 -0.00301775 0.0 +841 2.75 3.65 3.75 -5.4585 2.19054 5.4585 46.1523 -2.19054 -46.1523 0.0 +842 2.75 3.65 11.25 -3.66097 1.22096 3.66097 25.7483 -1.22096 -25.7483 0.0 +843 2.75 3.65 18.75 -1.63156 0.409151 1.63156 8.91799 -0.409152 -8.91799 0.0 +844 2.75 3.65 26.25 -0.435259 0.123143 0.435261 1.99397 -0.123144 -1.99397 0.0 +845 2.75 3.65 33.75 -0.0493642 0.0652704 0.0493648 0.328683 -0.0652688 -0.328684 0.0 +846 2.75 3.65 41.25 -0.0146925 0.0282769 0.0146967 0.0813637 -0.0282736 -0.0813666 0.0 +847 2.75 3.65 48.75 -0.0246544 0.00490522 0.0246565 0.0166878 -0.00490432 -0.0166888 0.0 +848 2.75 3.65 56.25 -0.0139125 0.00395284 0.0139089 -0.00867723 -0.00395188 0.00867599 0.0 +849 2.75 3.65 63.75 -0.00270241 0.00619066 0.00270068 -0.00571762 -0.00619525 0.00571944 0.0 +850 2.75 3.65 71.25 0.000519918 0.00471435 -0.000521654 -8.15984e-06 -0.00471422 7.2579e-06 0.0 +851 2.75 3.65 78.75 0.000501459 0.00398609 -0.00050026 0.000797399 -0.00398918 -0.000797502 0.0 +852 2.75 3.65 86.25 -4.4671e-05 0.00352149 4.27284e-05 0.000514162 -0.00352011 -0.000514185 0.0 +853 2.75 3.65 93.75 -0.000889969 0.00110883 0.000890202 0.00115235 -0.00110879 -0.00115223 0.0 +854 2.75 3.65 101.25 -0.00151239 -0.00165277 0.00151236 0.00181475 0.00164834 -0.00181365 0.0 +855 2.75 3.65 108.75 -0.00161992 -0.00273717 0.00161755 0.00169929 0.00273792 -0.00169984 0.0 +856 2.75 3.65 116.25 -0.00158692 -0.00271981 0.00158207 0.00119301 0.00272293 -0.00119423 0.0 +857 2.75 3.65 123.75 -0.00161004 -0.0028994 0.00160522 0.000901196 0.00289974 -0.000900406 0.0 +858 2.75 3.65 131.25 -0.00135618 -0.00318701 0.00134929 0.000817217 0.00318514 -0.000815958 0.0 +859 2.75 3.65 138.75 -0.000562397 -0.00258908 0.000562926 0.000632375 0.00259618 -0.000635132 0.0 +860 2.75 3.65 146.25 0.000398525 -0.000673377 -0.000405592 0.000326015 0.000673344 -0.000326095 0.0 +861 2.75 3.65 153.75 0.000850024 0.00202598 -0.000855047 0.000185369 -0.00202081 -0.000188642 0.0 +862 2.75 3.65 161.25 0.000434663 0.00458686 -0.000435573 0.000417059 -0.00458533 -0.000417937 0.0 +863 2.75 3.65 168.75 -0.000552814 0.00638533 0.000542524 0.000898487 -0.00637922 -0.0009015 0.0 +864 2.75 3.65 176.25 -0.00133582 0.00725755 0.00133015 0.00128127 -0.0072543 -0.00128197 0.0 +865 2.85 2.55 3.75 -449.454 -941.562 449.454 9549.73 941.562 -9549.73 0.0 +866 2.85 2.55 11.25 -203.687 -668.13 203.687 3736.46 668.13 -3736.46 0.0 +867 2.85 2.55 18.75 -12.9246 -383.103 12.9246 1213.6 383.103 -1213.6 0.0 +868 2.85 2.55 26.25 63.1921 -179.462 -63.1921 299.966 179.462 -299.966 0.0 +869 2.85 2.55 33.75 62.6546 -65.7116 -62.6546 36.4372 65.7116 -36.4372 0.0 +870 2.85 2.55 41.25 37.3635 -15.6969 -37.3635 -9.14011 15.6969 9.14011 0.0 +871 2.85 2.55 48.75 16.895 0.618772 -16.8951 -7.08679 -0.618757 7.08678 0.0 +872 2.85 2.55 56.25 6.97832 3.39374 -6.97835 -3.15346 -3.39374 3.15347 0.0 +873 2.85 2.55 63.75 3.27315 2.52802 -3.27315 -1.83047 -2.52803 1.83048 0.0 +874 2.85 2.55 71.25 1.70047 1.62582 -1.70071 -1.50656 -1.62582 1.50656 0.0 +875 2.85 2.55 78.75 0.749832 1.27937 -0.749875 -1.51872 -1.27941 1.51871 0.0 +876 2.85 2.55 86.25 0.164393 1.07494 -0.164439 -1.55346 -1.07491 1.55346 0.0 +877 2.85 2.55 93.75 -0.138619 0.673196 0.138741 -1.36215 -0.67314 1.36215 0.0 +878 2.85 2.55 101.25 -0.256642 0.101433 0.256803 -0.949432 -0.10153 0.949443 0.0 +879 2.85 2.55 108.75 -0.221358 -0.430558 0.221453 -0.50286 0.43059 0.502868 0.0 +880 2.85 2.55 116.25 -0.00716267 -0.763914 0.00707724 -0.182642 0.763996 0.182594 0.0 +881 2.85 2.55 123.75 0.389318 -0.868932 -0.38922 -0.0254116 0.869042 0.0254047 0.0 +882 2.85 2.55 131.25 0.89597 -0.814762 -0.896002 0.0246925 0.814838 -0.0247272 0.0 +883 2.85 2.55 138.75 1.38115 -0.710613 -1.3812 0.0482113 0.710584 -0.0481961 0.0 +884 2.85 2.55 146.25 1.7166 -0.656942 -1.71663 0.102514 0.657017 -0.102563 0.0 +885 2.85 2.55 153.75 1.84068 -0.706888 -1.84082 0.204441 0.706832 -0.204425 0.0 +886 2.85 2.55 161.25 1.78401 -0.848447 -1.78392 0.335056 0.848436 -0.335074 0.0 +887 2.85 2.55 168.75 1.64517 -1.0163 -1.64523 0.455943 1.01631 -0.455929 0.0 +888 2.85 2.55 176.25 1.53852 -1.12802 -1.53859 0.528256 1.12801 -0.528249 0.0 +889 2.85 2.65 3.75 -736.234 -953.145 736.234 15002.2 953.145 -15002.2 0.0 +890 2.85 2.65 11.25 -383.861 -632.529 383.861 4732.78 632.529 -4732.78 0.0 +891 2.85 2.65 18.75 -120.397 -336.411 120.397 1474.26 336.411 -1474.26 0.0 +892 2.85 2.65 26.25 1.63758 -143.419 -1.63759 371.726 143.419 -371.726 0.0 +893 2.85 2.65 33.75 28.1679 -47.6669 -28.1678 57.9974 47.6669 -57.9974 0.0 +894 2.85 2.65 41.25 18.5052 -11.7053 -18.5053 -0.0411589 11.7053 0.0411506 0.0 +895 2.85 2.65 48.75 6.98344 -1.71526 -6.98349 -2.25925 1.71528 2.25926 0.0 +896 2.85 2.65 56.25 1.90515 0.189804 -1.9051 -0.694423 -0.189827 0.694421 0.0 +897 2.85 2.65 63.75 0.644706 0.289163 -0.644765 -0.553254 -0.289196 0.553251 0.0 +898 2.85 2.65 71.25 0.358032 0.188047 -0.358068 -0.577658 -0.187995 0.577686 0.0 +899 2.85 2.65 78.75 0.193029 0.186045 -0.193065 -0.576896 -0.186053 0.576887 0.0 +900 2.85 2.65 86.25 0.118081 0.206903 -0.117948 -0.590427 -0.206951 0.590426 0.0 +901 2.85 2.65 93.75 0.116313 0.137487 -0.116341 -0.523115 -0.137426 0.523116 0.0 +902 2.85 2.65 101.25 0.127124 -0.0206052 -0.127264 -0.356029 0.020677 0.356027 0.0 +903 2.85 2.65 108.75 0.134169 -0.192715 -0.134356 -0.167112 0.192721 0.16712 0.0 +904 2.85 2.65 116.25 0.166274 -0.317368 -0.166229 -0.0278194 0.317368 0.02781 0.0 +905 2.85 2.65 123.75 0.250031 -0.376343 -0.250195 0.044687 0.376311 -0.0446765 0.0 +906 2.85 2.65 131.25 0.37155 -0.389541 -0.371651 0.0749583 0.389552 -0.0749598 0.0 +907 2.85 2.65 138.75 0.472028 -0.404165 -0.471849 0.101639 0.404085 -0.101599 0.0 +908 2.85 2.65 146.25 0.482744 -0.473853 -0.482714 0.154822 0.473671 -0.154746 0.0 +909 2.85 2.65 153.75 0.372903 -0.626739 -0.372891 0.24309 0.626702 -0.24306 0.0 +910 2.85 2.65 161.25 0.172204 -0.842652 -0.172283 0.351704 0.842593 -0.351702 0.0 +911 2.85 2.65 168.75 -0.0401177 -1.05637 0.0403128 0.45108 1.05642 -0.451106 0.0 +912 2.85 2.65 176.25 -0.17528 -1.18958 0.175428 0.510384 1.18961 -0.5104 0.0 +913 2.85 2.75 3.75 -979.272 -927.69 979.272 22134.5 927.69 -22134.5 0.0 +914 2.85 2.75 11.25 -526.991 -579.811 526.991 5507.99 579.811 -5507.99 0.0 +915 2.85 2.75 18.75 -204.787 -287.701 204.787 1660.86 287.701 -1660.86 0.0 +916 2.85 2.75 26.25 -45.4274 -109.617 45.4273 419.099 109.617 -419.099 0.0 +917 2.85 2.75 33.75 3.4094 -30.3253 -3.40934 70.6375 30.3253 -70.6375 0.0 +918 2.85 2.75 41.25 6.54385 -5.89301 -6.54392 4.65436 5.89304 -4.65435 0.0 +919 2.85 2.75 48.75 1.87015 -1.12692 -1.87015 -0.0807475 1.12691 0.0807413 0.0 +920 2.85 2.75 56.25 -0.0855468 -0.433007 0.085563 0.253215 0.433018 -0.253203 0.0 +921 2.85 2.75 63.75 -0.193076 -0.180261 0.193218 -0.116602 0.180287 0.11663 0.0 +922 2.85 2.75 71.25 -0.0627372 -0.0669432 0.0628705 -0.266699 0.0669458 0.266713 0.0 +923 2.85 2.75 78.75 -0.00113364 -0.000718484 0.00128081 -0.256413 0.000816792 0.25642 0.0 +924 2.85 2.75 86.25 0.0719457 0.0756041 -0.0719355 -0.25934 -0.0756465 0.25934 0.0 +925 2.85 2.75 93.75 0.150932 0.126391 -0.150887 -0.242532 -0.126415 0.242533 0.0 +926 2.85 2.75 101.25 0.19142 0.122864 -0.191283 -0.177304 -0.122828 0.177291 0.0 +927 2.85 2.75 108.75 0.179151 0.072715 -0.179217 -0.0881976 -0.0726424 0.0881763 0.0 +928 2.85 2.75 116.25 0.132856 -0.00182507 -0.132993 -0.00716005 0.00182425 0.0071526 0.0 +929 2.85 2.75 123.75 0.0849914 -0.0757887 -0.0849411 0.0491728 0.0758462 -0.0491697 0.0 +930 2.85 2.75 131.25 0.0493045 -0.137104 -0.0494332 0.0829233 0.137118 -0.0829226 0.0 +931 2.85 2.75 138.75 0.00591187 -0.201372 -0.00575361 0.111436 0.201482 -0.11145 0.0 +932 2.85 2.75 146.25 -0.0859415 -0.304683 0.0860687 0.155414 0.304665 -0.155395 0.0 +933 2.85 2.75 153.75 -0.248069 -0.47076 0.248108 0.224424 0.470972 -0.224532 0.0 +934 2.85 2.75 161.25 -0.459817 -0.68392 0.459953 0.309867 0.68373 -0.309803 0.0 +935 2.85 2.75 168.75 -0.661906 -0.887629 0.661947 0.389136 0.887641 -0.389112 0.0 +936 2.85 2.75 176.25 -0.785422 -1.01291 0.785357 0.436894 1.01305 -0.436953 0.0 +937 2.85 2.85 3.75 -1116.76 -835.91 1116.76 26640.2 835.91 -26640.2 0.0 +938 2.85 2.85 11.25 -610.386 -506.696 610.386 5875.84 506.696 -5875.84 0.0 +939 2.85 2.85 18.75 -255.208 -239.613 255.208 1744.42 239.613 -1744.42 0.0 +940 2.85 2.85 26.25 -73.7604 -82.5484 73.7603 437.327 82.5484 -437.327 0.0 +941 2.85 2.85 33.75 -11.1104 -18.0796 11.1103 74.9581 18.0796 -74.9581 0.0 +942 2.85 2.85 41.25 0.228715 -1.87052 -0.228784 6.31518 1.87054 -6.31516 0.0 +943 2.85 2.85 48.75 -0.186912 -0.383005 0.186932 0.552533 0.382981 -0.552553 0.0 +944 2.85 2.85 56.25 -0.516548 -0.486964 0.51651 0.427331 0.486994 -0.427316 0.0 +945 2.85 2.85 63.75 -0.277336 -0.279457 0.277442 -0.0294235 0.279516 0.0294254 0.0 +946 2.85 2.85 71.25 -0.12864 -0.127184 0.128869 -0.180718 0.127225 0.180733 0.0 +947 2.85 2.85 78.75 -0.0484987 -0.0475193 0.0484573 -0.172173 0.0474804 0.172167 0.0 +948 2.85 2.85 86.25 0.047169 0.0422314 -0.0471278 -0.173173 -0.0422364 0.173175 0.0 +949 2.85 2.85 93.75 0.132895 0.126705 -0.132882 -0.167927 -0.126598 0.167928 0.0 +950 2.85 2.85 101.25 0.176042 0.170333 -0.17625 -0.134397 -0.170485 0.134408 0.0 +951 2.85 2.85 108.75 0.163576 0.157905 -0.16355 -0.0779511 -0.157842 0.0779731 0.0 +952 2.85 2.85 116.25 0.101997 0.0960507 -0.102078 -0.014347 -0.0959807 0.0143824 0.0 +953 2.85 2.85 123.75 0.0206725 0.0134256 -0.0205836 0.0381676 -0.0135693 -0.0381435 0.0 +954 2.85 2.85 131.25 -0.0539648 -0.0618543 0.0539695 0.071669 0.061813 -0.0716401 0.0 +955 2.85 2.85 138.75 -0.126558 -0.13291 0.126595 0.096029 0.132846 -0.0960093 0.0 +956 2.85 2.85 146.25 -0.226905 -0.229729 0.2268 0.129945 0.229804 -0.130004 0.0 +957 2.85 2.85 153.75 -0.375777 -0.37653 0.375708 0.184542 0.376441 -0.184502 0.0 +958 2.85 2.85 161.25 -0.55951 -0.56228 0.559638 0.254398 0.562318 -0.254441 0.0 +959 2.85 2.85 168.75 -0.731663 -0.739479 0.731781 0.320527 0.739524 -0.32053 0.0 +960 2.85 2.85 176.25 -0.836402 -0.848187 0.836322 0.360778 0.848245 -0.36086 0.0 +961 2.85 2.95 3.75 -1111.67 -671.504 1111.67 23382.6 671.504 -23382.6 0.0 +962 2.85 2.95 11.25 -624.121 -411.338 624.121 5761.08 411.338 -5761.08 0.0 +963 2.85 2.95 18.75 -267.855 -190.585 267.855 1715.29 190.585 -1715.29 0.0 +964 2.85 2.95 26.25 -82.9178 -61.5016 82.9177 426.265 61.5016 -426.265 0.0 +965 2.85 2.95 33.75 -16.5392 -10.9568 16.5393 72.4347 10.9568 -72.4348 0.0 +966 2.85 2.95 41.25 -2.05368 -0.128524 2.05363 6.25085 0.128465 -6.25081 0.0 +967 2.85 2.95 48.75 -0.636623 -0.11763 0.63655 0.514257 0.117589 -0.514248 0.0 +968 2.85 2.95 56.25 -0.408465 -0.491652 0.408393 0.327192 0.491696 -0.327194 0.0 +969 2.85 2.95 63.75 -0.201297 -0.331339 0.201309 -0.0209138 0.331453 0.0209243 0.0 +970 2.85 2.95 71.25 -0.130914 -0.18282 0.130989 -0.130552 0.182746 0.130536 0.0 +971 2.85 2.95 78.75 -0.0608924 -0.0898709 0.0607915 -0.139463 0.0899889 0.139453 0.0 +972 2.85 2.95 86.25 0.0345738 0.00746434 -0.0344701 -0.148244 -0.00754141 0.148234 0.0 +973 2.85 2.95 93.75 0.111119 0.0976325 -0.1113 -0.142909 -0.0978809 0.142911 0.0 +974 2.85 2.95 101.25 0.151941 0.155503 -0.151976 -0.117111 -0.15543 0.11711 0.0 +975 2.85 2.95 108.75 0.145751 0.160353 -0.145553 -0.0726376 -0.160204 0.0725882 0.0 +976 2.85 2.95 116.25 0.0915158 0.110131 -0.0916919 -0.0182529 -0.110235 0.0182768 0.0 +977 2.85 2.95 123.75 0.0152377 0.0331448 -0.0151991 0.0284008 -0.0330236 -0.0284138 0.0 +978 2.85 2.95 131.25 -0.0546463 -0.0389944 0.0545777 0.0573967 0.038874 -0.0573186 0.0 +979 2.85 2.95 138.75 -0.1187 -0.104823 0.118718 0.0772008 0.104764 -0.077174 0.0 +980 2.85 2.95 146.25 -0.204059 -0.191464 0.203984 0.105389 0.191495 -0.105464 0.0 +981 2.85 2.95 153.75 -0.330797 -0.320794 0.330923 0.152322 0.320747 -0.152296 0.0 +982 2.85 2.95 161.25 -0.488129 -0.483077 0.488236 0.213067 0.483198 -0.213056 0.0 +983 2.85 2.95 168.75 -0.635592 -0.636761 0.635765 0.270692 0.636908 -0.270728 0.0 +984 2.85 2.95 176.25 -0.725217 -0.730636 0.725177 0.305753 0.730739 -0.305825 0.0 +985 2.85 3.05 3.75 -991.274 -468.465 991.274 17235.6 468.465 -17235.6 0.0 +986 2.85 3.05 11.25 -573.802 -298.761 573.802 5231.29 298.761 -5231.29 0.0 +987 2.85 3.05 18.75 -246.923 -139.586 246.923 1584.79 139.586 -1584.79 0.0 +988 2.85 3.05 26.25 -76.3431 -44.1795 76.3432 390.143 44.1795 -390.143 0.0 +989 2.85 3.05 33.75 -15.4296 -7.24375 15.4295 64.979 7.24375 -64.979 0.0 +990 2.85 3.05 41.25 -1.99485 0.0867799 1.99484 5.41934 -0.0867462 -5.41932 0.0 +991 2.85 3.05 48.75 -0.466876 -0.194309 0.466823 0.319783 0.194325 -0.319796 0.0 +992 2.85 3.05 56.25 -0.247864 -0.498556 0.247809 0.194278 0.49852 -0.194293 0.0 +993 2.85 3.05 63.75 -0.160838 -0.374237 0.160788 -0.00452736 0.374195 0.00453271 0.0 +994 2.85 3.05 71.25 -0.138726 -0.24602 0.138704 -0.0733155 0.246086 0.0732922 0.0 +995 2.85 3.05 78.75 -0.0645345 -0.137898 0.0646711 -0.10598 0.137892 0.105997 0.0 +996 2.85 3.05 86.25 0.0266641 -0.0289336 -0.0265391 -0.125218 0.0289426 0.125216 0.0 +997 2.85 3.05 93.75 0.0897391 0.0651921 -0.0895906 -0.118986 -0.0650775 0.118989 0.0 +998 2.85 3.05 101.25 0.124171 0.131613 -0.123901 -0.0965881 -0.131532 0.0965755 0.0 +999 2.85 3.05 108.75 0.12195 0.150621 -0.122014 -0.0600585 -0.150659 0.0600667 0.0 +1000 2.85 3.05 116.25 0.0781014 0.115484 -0.0778585 -0.0147582 -0.115247 0.0147179 0.0 +1001 2.85 3.05 123.75 0.0150628 0.0506384 -0.0150425 0.0236392 -0.0506457 -0.023627 0.0 +1002 2.85 3.05 131.25 -0.0400525 -0.0131487 0.0399632 0.0466779 0.0130289 -0.0466525 0.0 +1003 2.85 3.05 138.75 -0.0895184 -0.0739947 0.0894657 0.0627374 0.0740386 -0.0627861 0.0 +1004 2.85 3.05 146.25 -0.15904 -0.155412 0.159469 0.0871229 0.155461 -0.0870861 0.0 +1005 2.85 3.05 153.75 -0.267082 -0.274606 0.267172 0.127796 0.274496 -0.127765 0.0 +1006 2.85 3.05 161.25 -0.401901 -0.419629 0.401826 0.179668 0.41968 -0.179776 0.0 +1007 2.85 3.05 168.75 -0.527756 -0.553697 0.527878 0.228247 0.553582 -0.228199 0.0 +1008 2.85 3.05 176.25 -0.604226 -0.634443 0.604143 0.25757 0.634535 -0.257606 0.0 +1009 2.85 3.15 3.75 -806.102 -265.526 806.102 12165.1 265.526 -12165.1 0.0 +1010 2.85 3.15 11.25 -477.611 -181.207 477.611 4442.53 181.207 -4442.53 0.0 +1011 2.85 3.15 18.75 -202.862 -88.6434 202.862 1380.02 88.6434 -1380.02 0.0 +1012 2.85 3.15 26.25 -60.0987 -29.0515 60.0987 336.188 29.0515 -336.188 0.0 +1013 2.85 3.15 33.75 -10.968 -5.19052 10.9681 54.504 5.19046 -54.5041 0.0 +1014 2.85 3.15 41.25 -1.05094 -0.312006 1.05086 4.33851 0.311981 -4.33846 0.0 +1015 2.85 3.15 48.75 -0.213743 -0.352928 0.213728 0.164252 0.352886 -0.164263 0.0 +1016 2.85 3.15 56.25 -0.154279 -0.471869 0.154225 0.093218 0.47198 -0.0932153 0.0 +1017 2.85 3.15 63.75 -0.141604 -0.388768 0.141653 0.0126807 0.388761 -0.0126585 0.0 +1018 2.85 3.15 71.25 -0.130127 -0.294635 0.130139 -0.0263984 0.294556 0.0263117 0.0 +1019 2.85 3.15 78.75 -0.0550277 -0.180465 0.0550203 -0.073421 0.180561 0.0734297 0.0 +1020 2.85 3.15 86.25 0.0209399 -0.0643701 -0.0207919 -0.0962653 0.0644703 0.0962704 0.0 +1021 2.85 3.15 93.75 0.0659847 0.032253 -0.0661012 -0.0898107 -0.0322317 0.0898055 0.0 +1022 2.85 3.15 101.25 0.0929454 0.104785 -0.092671 -0.0721152 -0.104858 0.0721226 0.0 +1023 2.85 3.15 108.75 0.0923534 0.135562 -0.0925163 -0.0438144 -0.135405 0.0437756 0.0 +1024 2.85 3.15 116.25 0.0576885 0.115491 -0.0573926 -0.00846383 -0.115386 0.00845008 0.0 +1025 2.85 3.15 123.75 0.00835101 0.0659492 -0.00830537 0.0204391 -0.0659776 -0.020473 0.0 +1026 2.85 3.15 131.25 -0.0330033 0.0137364 0.0330472 0.0368218 -0.0138501 -0.0368043 0.0 +1027 2.85 3.15 138.75 -0.0696344 -0.0403338 0.0693805 0.0485567 0.0403552 -0.0486203 0.0 +1028 2.85 3.15 146.25 -0.123646 -0.114761 0.123498 0.0676978 0.114704 -0.0677341 0.0 +1029 2.85 3.15 153.75 -0.209228 -0.220305 0.209164 0.0995682 0.220152 -0.0994412 0.0 +1030 2.85 3.15 161.25 -0.316292 -0.3444 0.316446 0.139549 0.344477 -0.139654 0.0 +1031 2.85 3.15 168.75 -0.416182 -0.455814 0.416144 0.176494 0.455746 -0.176411 0.0 +1032 2.85 3.15 176.25 -0.476042 -0.521785 0.476 0.198621 0.521756 -0.198557 0.0 +1033 2.85 3.25 3.75 -599.006 -91.2154 599.006 8491.46 91.2155 -8491.46 0.0 +1034 2.85 3.25 11.25 -359.488 -74.6727 359.488 3559.49 74.6727 -3559.49 0.0 +1035 2.85 3.25 18.75 -148.661 -42.6777 148.661 1135.12 42.6777 -1135.12 0.0 +1036 2.85 3.25 26.25 -40.7166 -16.0322 40.7166 272.812 16.0322 -272.812 0.0 +1037 2.85 3.25 33.75 -5.97051 -3.67296 5.97039 42.68 3.67297 -42.68 0.0 +1038 2.85 3.25 41.25 -0.182688 -0.670468 0.182753 3.20438 0.670474 -3.20441 0.0 +1039 2.85 3.25 48.75 -0.0747798 -0.425329 0.0748223 0.0657742 0.425365 -0.0658515 0.0 +1040 2.85 3.25 56.25 -0.0982934 -0.398958 0.0982134 0.0220039 0.399004 -0.0220176 0.0 +1041 2.85 3.25 63.75 -0.100813 -0.360976 0.100898 0.0133885 0.360825 -0.0133447 0.0 +1042 2.85 3.25 71.25 -0.0945309 -0.307881 0.0945963 -0.00420512 0.307879 0.00421061 0.0 +1043 2.85 3.25 78.75 -0.0366795 -0.207353 0.0366632 -0.0482296 0.20741 0.0482248 0.0 +1044 2.85 3.25 86.25 0.0149887 -0.0970942 -0.0150626 -0.0654125 0.0972336 0.0654212 0.0 +1045 2.85 3.25 93.75 0.0443972 -0.00226785 -0.0443982 -0.0599009 0.00218497 0.0598939 0.0 +1046 2.85 3.25 101.25 0.0653842 0.0743707 -0.0655475 -0.0488889 -0.074459 0.048906 0.0 +1047 2.85 3.25 108.75 0.0673028 0.115282 -0.0672563 -0.0293956 -0.115121 0.0293551 0.0 +1048 2.85 3.25 116.25 0.041101 0.109791 -0.041206 -0.00426137 -0.110092 0.0043584 0.0 +1049 2.85 3.25 123.75 0.0030353 0.0756594 -0.00306469 0.0153374 -0.0756692 -0.0152926 0.0 +1050 2.85 3.25 131.25 -0.02782 0.0350328 0.0279329 0.0256415 -0.0350474 -0.0256136 0.0 +1051 2.85 3.25 138.75 -0.0538742 -0.00966993 0.0537414 0.0330967 0.00970634 -0.033162 0.0 +1052 2.85 3.25 146.25 -0.0905357 -0.070843 0.0905608 0.0460454 0.0707919 -0.045972 0.0 +1053 2.85 3.25 153.75 -0.14887 -0.15562 0.148901 0.0676893 0.155618 -0.067644 0.0 +1054 2.85 3.25 161.25 -0.22216 -0.252709 0.22219 0.0946651 0.252847 -0.0946834 0.0 +1055 2.85 3.25 168.75 -0.290593 -0.338691 0.290381 0.119487 0.33884 -0.119576 0.0 +1056 2.85 3.25 176.25 -0.3308 -0.388801 0.331427 0.13433 0.388853 -0.134296 0.0 +1057 2.85 3.35 3.75 -386.528 33.5021 386.528 5634.36 -33.5021 -5634.36 0.0 +1058 2.85 3.35 11.25 -232.313 5.67109 232.313 2604.32 -5.67109 -2604.32 0.0 +1059 2.85 3.35 18.75 -91.9697 -7.27714 91.9697 849.253 7.27716 -849.253 0.0 +1060 2.85 3.35 26.25 -22.1609 -5.78613 22.161 200.148 5.78612 -200.148 0.0 +1061 2.85 3.35 33.75 -1.98022 -2.12648 1.98024 29.7672 2.12648 -29.7672 0.0 +1062 2.85 3.35 41.25 0.243179 -0.637377 -0.243178 2.04091 0.637344 -2.04094 0.0 +1063 2.85 3.35 48.75 -0.0543799 -0.361761 0.0543227 0.0128587 0.36182 -0.0128186 0.0 +1064 2.85 3.35 56.25 -0.053243 -0.315179 0.0533037 -0.0175621 0.315135 0.0175499 0.0 +1065 2.85 3.35 63.75 -0.0463022 -0.314223 0.0463235 0.00311652 0.314212 -0.00320789 0.0 +1066 2.85 3.35 71.25 -0.0532898 -0.296211 0.0534137 -0.000155585 0.29602 0.000135295 0.0 +1067 2.85 3.35 78.75 -0.0212587 -0.22246 0.0212696 -0.0288431 0.222559 0.0288631 0.0 +1068 2.85 3.35 86.25 0.00889954 -0.125343 -0.00894718 -0.0369629 0.125394 0.0369644 0.0 +1069 2.85 3.35 93.75 0.0262325 -0.0313862 -0.0263584 -0.0340369 0.0311982 0.0340506 0.0 +1070 2.85 3.35 101.25 0.0415953 0.0498466 -0.0414478 -0.0293926 -0.0498895 0.0293844 0.0 +1071 2.85 3.35 108.75 0.0450451 0.0995096 -0.0449831 -0.0178232 -0.0997351 0.0178778 0.0 +1072 2.85 3.35 116.25 0.028077 0.105738 -0.0281433 -0.00230595 -0.105795 0.00235292 0.0 +1073 2.85 3.35 123.75 0.00116088 0.0815732 -0.000852722 0.00942911 -0.0816637 -0.00933158 0.0 +1074 2.85 3.35 131.25 -0.0216069 0.0479562 0.0217652 0.0156247 -0.0476846 -0.0157325 0.0 +1075 2.85 3.35 138.75 -0.0380909 0.0111308 0.0380157 0.0201099 -0.0113054 -0.0200733 0.0 +1076 2.85 3.35 146.25 -0.0570642 -0.0359703 0.0570676 0.0273788 0.0359094 -0.0273053 0.0 +1077 2.85 3.35 153.75 -0.0874487 -0.0993169 0.0874531 0.0394423 0.0994037 -0.0393806 0.0 +1078 2.85 3.35 161.25 -0.127843 -0.172492 0.127557 0.054893 0.172359 -0.0549082 0.0 +1079 2.85 3.35 168.75 -0.166559 -0.237682 0.166614 0.0695468 0.237554 -0.0695277 0.0 +1080 2.85 3.35 176.25 -0.191 -0.276276 0.19078 0.0784958 0.276377 -0.0785403 0.0 +1081 2.85 3.45 3.75 -161.588 70.6187 161.588 2741.33 -70.6187 -2741.33 0.0 +1082 2.85 3.45 11.25 -95.5114 34.9158 95.5114 1355.81 -34.9158 -1355.81 0.0 +1083 2.85 3.45 18.75 -34.6683 8.27267 34.6684 448.865 -8.27268 -448.865 0.0 +1084 2.85 3.45 26.25 -6.16493 -0.139582 6.16494 102.857 0.139618 -102.857 0.0 +1085 2.85 3.45 33.75 0.422229 -0.589501 -0.422207 14.2949 0.589425 -14.2948 0.0 +1086 2.85 3.45 41.25 0.271293 -0.179716 -0.271334 0.90093 0.179724 -0.900935 0.0 +1087 2.85 3.45 48.75 -0.0728654 -0.170806 0.0729137 0.0252674 0.1707 -0.025252 0.0 +1088 2.85 3.45 56.25 -0.0333377 -0.213039 0.0332742 -0.0156257 0.212999 0.0155434 0.0 +1089 2.85 3.45 63.75 -0.0152903 -0.227014 0.0151849 -0.00379666 0.227029 0.00381385 0.0 +1090 2.85 3.45 71.25 -0.0235692 -0.224061 0.0235144 -0.000903934 0.22407 0.000862594 0.0 +1091 2.85 3.45 78.75 -0.00941949 -0.180683 0.00940751 -0.0122182 0.180688 0.0122354 0.0 +1092 2.85 3.45 86.25 0.00386563 -0.108855 -0.00384482 -0.0147672 0.108894 0.0147696 0.0 +1093 2.85 3.45 93.75 0.00738598 -0.0352297 -0.00746621 -0.0134146 0.0352537 0.0134097 0.0 +1094 2.85 3.45 101.25 0.0113163 0.0272447 -0.0112177 -0.0108832 -0.027162 0.0109037 0.0 +1095 2.85 3.45 108.75 0.0143535 0.0674421 -0.0144727 -0.00585159 -0.0674317 0.00583747 0.0 +1096 2.85 3.45 116.25 0.0102386 0.0775271 -0.0102071 -0.000339014 -0.0776401 0.000348303 0.0 +1097 2.85 3.45 123.75 2.58732e-05 0.0640245 -4.10589e-05 0.00384167 -0.0641439 -0.00376402 0.0 +1098 2.85 3.45 131.25 -0.00902431 0.0415235 0.00900971 0.00644527 -0.0416055 -0.00641701 0.0 +1099 2.85 3.45 138.75 -0.0130822 0.0181696 0.0131824 0.00773263 -0.0182103 -0.00771311 0.0 +1100 2.85 3.45 146.25 -0.0161839 -0.00998922 0.016076 0.00888536 0.00978667 -0.00879601 0.0 +1101 2.85 3.45 153.75 -0.0242202 -0.0483692 0.0241807 0.011811 0.0483358 -0.0118472 0.0 +1102 2.85 3.45 161.25 -0.0396328 -0.0952296 0.0395522 0.0172745 0.0951821 -0.0172176 0.0 +1103 2.85 3.45 168.75 -0.0578248 -0.139644 0.0577311 0.0236934 0.13953 -0.0236387 0.0 +1104 2.85 3.45 176.25 -0.0700834 -0.166806 0.0701114 0.0280544 0.166621 -0.0279388 0.0 +1105 2.85 3.55 3.75 -31.029 33.8429 31.029 807.354 -33.8429 -807.354 0.0 +1106 2.85 3.55 11.25 -16.6941 17.1581 16.6942 418.065 -17.1581 -418.065 0.0 +1107 2.85 3.55 18.75 -3.99472 4.08748 3.9947 139.471 -4.08747 -139.471 0.0 +1108 2.85 3.55 26.25 0.82754 0.00960473 -0.827538 30.9637 -0.00959943 -30.9637 0.0 +1109 2.85 3.55 33.75 0.904557 -0.081934 -0.904543 4.11608 0.0819614 -4.11609 0.0 +1110 2.85 3.55 41.25 0.170681 0.0848305 -0.170682 0.346509 -0.0848039 -0.34653 0.0 +1111 2.85 3.55 48.75 -0.0666717 -0.0106917 0.0666836 0.0541797 0.0106909 -0.0541811 0.0 +1112 2.85 3.55 56.25 -0.0367163 -0.0711844 0.0367427 -0.00758183 0.0712025 0.00758489 0.0 +1113 2.85 3.55 63.75 -0.00980718 -0.0797592 0.00983424 -0.00697712 0.0797424 0.00697812 0.0 +1114 2.85 3.55 71.25 -0.00586824 -0.0828521 0.00590764 -3.50261e-07 0.0828154 -9.47724e-06 0.0 +1115 2.85 3.55 78.75 -0.000602709 -0.0682983 0.000612821 -0.00212227 0.0683145 0.00213184 0.0 +1116 2.85 3.55 86.25 0.000973121 -0.0398569 -0.000961009 -0.00335451 0.0398316 0.00334909 0.0 +1117 2.85 3.55 93.75 -0.00358082 -0.0150889 0.00357048 -0.00152868 0.0150508 0.00152981 0.0 +1118 2.85 3.55 101.25 -0.00603736 0.00394172 0.00605293 0.000730934 -0.00393071 -0.000744155 0.0 +1119 2.85 3.55 108.75 -0.00335262 0.0195109 0.00322804 0.00102238 -0.0194668 -0.00104163 0.0 +1120 2.85 3.55 116.25 0.000444349 0.027755 -0.000387332 8.69624e-05 -0.0277462 -9.75392e-05 0.0 +1121 2.85 3.55 123.75 0.0014088 0.0269113 -0.00138674 -7.73086e-05 -0.0268849 6.29337e-05 0.0 +1122 2.85 3.55 131.25 0.00165964 0.0217477 -0.00165364 0.000223061 -0.0218041 -0.000187964 0.0 +1123 2.85 3.55 138.75 0.00401875 0.0169663 -0.00395318 -0.000703326 -0.016976 0.000717988 0.0 +1124 2.85 3.55 146.25 0.00768509 0.0118145 -0.00765824 -0.00287592 -0.0118411 0.00289573 0.0 +1125 2.85 3.55 153.75 0.00912573 0.00261415 -0.00905729 -0.00443259 -0.00257542 0.00443667 0.0 +1126 2.85 3.55 161.25 0.0057808 -0.0119115 -0.00584887 -0.00390544 0.0118818 0.00391874 0.0 +1127 2.85 3.55 168.75 -0.000422092 -0.0276521 0.000431626 -0.00177835 0.0276894 0.00174946 0.0 +1128 2.85 3.55 176.25 -0.00538109 -0.0379719 0.00540295 7.43942e-05 0.0379802 -5.26705e-05 0.0 +1129 2.85 3.65 3.75 0.117993 2.41395 -0.117994 63.6242 -2.41395 -63.6242 0.0 +1130 2.85 3.65 11.25 0.547196 0.863222 -0.547196 34.0061 -0.86322 -34.0061 0.0 +1131 2.85 3.65 18.75 0.745937 -0.193692 -0.745936 11.4296 0.193693 -11.4296 0.0 +1132 2.85 3.65 26.25 0.543519 -0.28335 -0.54352 2.53726 0.28335 -2.53726 0.0 +1133 2.85 3.65 33.75 0.224853 -0.0795795 -0.224852 0.395802 0.0795803 -0.395805 0.0 +1134 2.85 3.65 41.25 0.0308566 0.0096513 -0.030854 0.0760108 -0.00965396 -0.0760089 0.0 +1135 2.85 3.65 48.75 -0.0200071 0.0114374 0.0200007 0.0152694 -0.0114346 -0.0152666 0.0 +1136 2.85 3.65 56.25 -0.0121781 0.00806958 0.0121778 -0.00463886 -0.00806824 0.00463935 0.0 +1137 2.85 3.65 63.75 -0.00240079 0.00691829 0.00239728 -0.00287853 -0.00691891 0.00287832 0.0 +1138 2.85 3.65 71.25 -0.000113974 0.00344927 0.000114402 0.000925612 -0.00345159 -0.000924517 0.0 +1139 2.85 3.65 78.75 -0.000150972 0.00204618 0.000149514 0.00127176 -0.00204528 -0.00127259 0.0 +1140 2.85 3.65 86.25 -0.00063721 0.00167632 0.000641885 0.000872705 -0.00167479 -0.000872293 0.0 +1141 2.85 3.65 93.75 -0.00144962 -0.000316034 0.00144811 0.00113858 0.000313733 -0.00113842 0.0 +1142 2.85 3.65 101.25 -0.00167523 -0.00216785 0.00167369 0.00123363 0.00216868 -0.00123425 0.0 +1143 2.85 3.65 108.75 -0.00110878 -0.00207464 0.00110977 0.00064396 0.00207751 -0.000643732 0.0 +1144 2.85 3.65 116.25 -0.000764004 -0.00128655 0.000766131 0.000103318 0.00128453 -0.000103182 0.0 +1145 2.85 3.65 123.75 -0.00123412 -0.00134957 0.00123183 0.000216939 0.00135724 -0.000220275 0.0 +1146 2.85 3.65 131.25 -0.00184917 -0.00183778 0.00184664 0.000577507 0.00184059 -0.000579396 0.0 +1147 2.85 3.65 138.75 -0.00163391 -0.00138008 0.00162307 0.000515544 0.00137553 -0.000512344 0.0 +1148 2.85 3.65 146.25 -0.000376327 0.000499681 0.00037387 -6.6379e-06 -0.000506003 1.01884e-05 0.0 +1149 2.85 3.65 153.75 0.00121458 0.00310539 -0.00122162 -0.000485719 -0.00311088 0.000488173 0.0 +1150 2.85 3.65 161.25 0.00238865 0.00543453 -0.0023833 -0.00051915 -0.00542809 0.000516147 0.0 +1151 2.85 3.65 168.75 0.00285962 0.00692717 -0.00285792 -0.000171476 -0.00692344 0.000168255 0.0 +1152 2.85 3.65 176.25 0.00292307 0.00758779 -0.00292581 0.00016883 -0.00759567 -0.000164093 0.0 +1153 2.95 2.55 3.75 -252.721 -1050.76 252.721 6595.19 1050.76 -6595.19 0.0 +1154 2.95 2.55 11.25 -41.1238 -768.829 41.1238 2888.85 768.829 -2888.85 0.0 +1155 2.95 2.55 18.75 118.417 -449.255 -118.417 900.553 449.255 -900.553 0.0 +1156 2.95 2.55 26.25 156.92 -210.895 -156.92 167.43 210.895 -167.43 0.0 +1157 2.95 2.55 33.75 119.104 -74.0526 -119.104 -18.6078 74.0526 18.6078 0.0 +1158 2.95 2.55 41.25 65.7986 -13.1995 -65.7986 -30.6797 13.1995 30.6797 0.0 +1159 2.95 2.55 48.75 29.0332 5.91326 -29.0332 -15.4024 -5.91326 15.4024 0.0 +1160 2.95 2.55 56.25 11.4878 8.02601 -11.4878 -6.73731 -8.026 6.7373 0.0 +1161 2.95 2.55 63.75 4.66214 5.91098 -4.66202 -3.9881 -5.91102 3.98809 0.0 +1162 2.95 2.55 71.25 1.77619 4.12825 -1.77611 -3.46574 -4.12825 3.46573 0.0 +1163 2.95 2.55 78.75 0.151273 3.12532 -0.151223 -3.50261 -3.12532 3.50263 0.0 +1164 2.95 2.55 86.25 -0.848703 2.18442 0.848724 -3.31518 -2.18449 3.31517 0.0 +1165 2.95 2.55 93.75 -1.36638 0.946406 1.36638 -2.63915 -0.946487 2.63915 0.0 +1166 2.95 2.55 101.25 -1.42623 -0.377787 1.42617 -1.69714 0.377648 1.69715 0.0 +1167 2.95 2.55 108.75 -0.982806 -1.42876 0.982806 -0.865233 1.42871 0.865248 0.0 +1168 2.95 2.55 116.25 -0.0278435 -2.03668 0.0278263 -0.352266 2.0367 0.352236 0.0 +1169 2.95 2.55 123.75 1.31816 -2.25352 -1.31823 -0.14086 2.25366 0.140835 0.0 +1170 2.95 2.55 131.25 2.8161 -2.2369 -2.81616 -0.0975587 2.2368 0.0975804 0.0 +1171 2.95 2.55 138.75 4.19661 -2.14695 -4.1966 -0.0893642 2.14695 0.0893633 0.0 +1172 2.95 2.55 146.25 5.25737 -2.09866 -5.25733 -0.0396033 2.09866 0.0396395 0.0 +1173 2.95 2.55 153.75 5.92169 -2.14378 -5.92174 0.0676359 2.14379 -0.0676218 0.0 +1174 2.95 2.55 161.25 6.2371 -2.26995 -6.23714 0.206683 2.26994 -0.206718 0.0 +1175 2.95 2.55 168.75 6.32882 -2.41823 -6.32875 0.334294 2.41818 -0.334278 0.0 +1176 2.95 2.55 176.25 6.33197 -2.5165 -6.33197 0.409999 2.51647 -0.40999 0.0 +1177 2.95 2.65 3.75 -602.404 -1044.08 602.403 10359.8 1044.08 -10359.8 0.0 +1178 2.95 2.65 11.25 -280.258 -724.735 280.258 3883.61 724.735 -3883.61 0.0 +1179 2.95 2.65 18.75 -31.2855 -399.161 31.2855 1185.42 399.161 -1185.42 0.0 +1180 2.95 2.65 26.25 67.6443 -176.276 -67.6443 254.871 176.276 -254.871 0.0 +1181 2.95 2.65 33.75 67.6221 -60.3361 -67.6221 13.3469 60.3361 -13.3469 0.0 +1182 2.95 2.65 41.25 37.2303 -14.1507 -37.2303 -15.1485 14.1507 15.1485 0.0 +1183 2.95 2.65 48.75 14.0035 -0.570849 -14.0035 -7.01654 0.570878 7.01655 0.0 +1184 2.95 2.65 56.25 3.96826 1.75692 -3.96826 -2.30424 -1.75694 2.30425 0.0 +1185 2.95 2.65 63.75 1.03968 1.41412 -1.03973 -1.31005 -1.41411 1.31004 0.0 +1186 2.95 2.65 71.25 0.218951 0.967353 -0.218964 -1.22938 -0.967351 1.22938 0.0 +1187 2.95 2.65 78.75 -0.174997 0.772767 0.175075 -1.2882 -0.772773 1.2882 0.0 +1188 2.95 2.65 86.25 -0.393839 0.559177 0.393914 -1.24166 -0.559238 1.24165 0.0 +1189 2.95 2.65 93.75 -0.47265 0.167892 0.472634 -0.971798 -0.167863 0.971793 0.0 +1190 2.95 2.65 101.25 -0.415086 -0.29444 0.415096 -0.582018 0.294494 0.582025 0.0 +1191 2.95 2.65 108.75 -0.18344 -0.657303 0.1835 -0.251448 0.657204 0.251466 0.0 +1192 2.95 2.65 116.25 0.242862 -0.853042 -0.242735 -0.0667618 0.853138 0.0667293 0.0 +1193 2.95 2.65 123.75 0.816898 -0.9163 -0.817068 -0.00551971 0.916326 0.00551894 0.0 +1194 2.95 2.65 131.25 1.43137 -0.918518 -1.43133 0.000272837 0.918644 -0.000308227 0.0 +1195 2.95 2.65 138.75 1.95867 -0.929005 -1.95862 0.0112189 0.929075 -0.011238 0.0 +1196 2.95 2.65 146.25 2.30364 -0.998983 -2.30361 0.0592927 0.99898 -0.059327 0.0 +1197 2.95 2.65 153.75 2.4381 -1.14713 -2.43811 0.146803 1.14716 -0.146836 0.0 +1198 2.95 2.65 161.25 2.40678 -1.34935 -2.40669 0.254078 1.34942 -0.254097 0.0 +1199 2.95 2.65 168.75 2.30131 -1.54572 -2.3013 0.350716 1.54578 -0.350713 0.0 +1200 2.95 2.65 176.25 2.21842 -1.66688 -2.21834 0.407733 1.66692 -0.407764 0.0 +1201 2.95 2.75 3.75 -921.349 -993.633 921.349 15774.2 993.633 -15774.2 0.0 +1202 2.95 2.75 11.25 -484.503 -651.799 484.503 4799.82 651.799 -4799.82 0.0 +1203 2.95 2.75 18.75 -156.849 -336.509 156.849 1421.48 336.509 -1421.48 0.0 +1204 2.95 2.75 26.25 -5.03783 -135.732 5.03782 322.829 135.732 -322.829 0.0 +1205 2.95 2.75 33.75 28.3547 -41.434 -28.3547 36.1083 41.434 -36.1083 0.0 +1206 2.95 2.75 41.25 17.8836 -9.27057 -17.8837 -5.3871 9.27056 5.38709 0.0 +1207 2.95 2.75 48.75 5.55648 -1.46767 -5.55657 -2.51898 1.46764 2.519 0.0 +1208 2.95 2.75 56.25 0.672106 -0.0883279 -0.672198 -0.334779 0.0883496 0.334765 0.0 +1209 2.95 2.75 63.75 -0.194927 0.0690679 0.194963 -0.280915 -0.0690525 0.280893 0.0 +1210 2.95 2.75 71.25 -0.206856 0.0649187 0.206763 -0.378435 -0.0649176 0.378425 0.0 +1211 2.95 2.75 78.75 -0.186711 0.113908 0.186572 -0.418937 -0.113823 0.418941 0.0 +1212 2.95 2.75 86.25 -0.14961 0.156382 0.149622 -0.426505 -0.156396 0.426506 0.0 +1213 2.95 2.75 93.75 -0.0954388 0.111367 0.0953423 -0.345344 -0.111332 0.345334 0.0 +1214 2.95 2.75 101.25 -0.0328122 0.00794576 0.032972 -0.207227 -0.00797229 0.207241 0.0 +1215 2.95 2.75 108.75 0.054673 -0.0891922 -0.0546091 -0.0841935 0.0892434 0.0841691 0.0 +1216 2.95 2.75 116.25 0.181234 -0.157367 -0.181265 -0.0087282 0.157339 0.00873243 0.0 +1217 2.95 2.75 123.75 0.34012 -0.205051 -0.340198 0.0264405 0.205132 -0.0264545 0.0 +1218 2.95 2.75 131.25 0.502317 -0.247373 -0.502348 0.0429474 0.247218 -0.0428813 0.0 +1219 2.95 2.75 138.75 0.621852 -0.305681 -0.622162 0.0628186 0.305576 -0.0628133 0.0 +1220 2.95 2.75 146.25 0.656682 -0.406771 -0.656592 0.101823 0.406971 -0.101931 0.0 +1221 2.95 2.75 153.75 0.591488 -0.564489 -0.591646 0.163918 0.564573 -0.163963 0.0 +1222 2.95 2.75 161.25 0.454619 -0.760373 -0.454635 0.239232 0.760289 -0.2392 0.0 +1223 2.95 2.75 168.75 0.305915 -0.944156 -0.305938 0.307995 0.944217 -0.308028 0.0 +1224 2.95 2.75 176.25 0.210804 -1.05602 -0.210888 0.349082 1.05601 -0.34907 0.0 +1225 2.95 2.85 3.75 -1152.1 -884.325 1152.1 22433.3 884.325 -22433.3 0.0 +1226 2.95 2.85 11.25 -623.249 -554.368 623.249 5446.55 554.368 -5446.55 0.0 +1227 2.95 2.85 18.75 -243.026 -270.991 243.026 1573.49 270.991 -1573.49 0.0 +1228 2.95 2.85 26.25 -54.9922 -98.9789 54.9921 364.541 98.9789 -364.541 0.0 +1229 2.95 2.85 33.75 2.25373 -25.1037 -2.25376 49.691 25.1036 -49.691 0.0 +1230 2.95 2.85 41.25 6.24999 -4.21281 -6.25004 -0.0158362 4.21279 0.015854 0.0 +1231 2.95 2.85 48.75 1.46896 -0.83917 -1.46896 -0.516745 0.839147 0.51676 0.0 +1232 2.95 2.85 56.25 -0.371828 -0.443561 0.371951 0.300591 0.443459 -0.300568 0.0 +1233 2.95 2.85 63.75 -0.390584 -0.244547 0.39061 -0.00488443 0.244578 0.00485482 0.0 +1234 2.95 2.85 71.25 -0.227523 -0.141639 0.22751 -0.135266 0.141661 0.135279 0.0 +1235 2.95 2.85 78.75 -0.13169 -0.0500631 0.131746 -0.158901 0.0499834 0.158894 0.0 +1236 2.95 2.85 86.25 -0.0383226 0.048949 0.0384519 -0.178632 -0.048876 0.178639 0.0 +1237 2.95 2.85 93.75 0.0424506 0.108468 -0.0424569 -0.162363 -0.108402 0.162362 0.0 +1238 2.95 2.85 101.25 0.0951102 0.123599 -0.0950067 -0.114705 -0.123527 0.114684 0.0 +1239 2.95 2.85 108.75 0.118329 0.108127 -0.118294 -0.059624 -0.107977 0.0595957 0.0 +1240 2.95 2.85 116.25 0.115747 0.0657013 -0.115496 -0.00921956 -0.0657449 0.00923083 0.0 +1241 2.95 2.85 123.75 0.0997312 0.00632325 -0.0998366 0.0300757 -0.00638085 -0.0300905 0.0 +1242 2.95 2.85 131.25 0.0820412 -0.0544768 -0.0820477 0.0562421 0.0545567 -0.0562266 0.0 +1243 2.95 2.85 138.75 0.0543383 -0.118472 -0.0543542 0.0766667 0.118496 -0.0766528 0.0 +1244 2.95 2.85 146.25 -0.00685308 -0.206793 0.00693165 0.104336 0.206705 -0.104299 0.0 +1245 2.95 2.85 153.75 -0.116153 -0.336589 0.116017 0.147362 0.336516 -0.147325 0.0 +1246 2.95 2.85 161.25 -0.2593 -0.497512 0.259351 0.201965 0.497407 -0.201901 0.0 +1247 2.95 2.85 168.75 -0.396397 -0.649488 0.396361 0.253751 0.649379 -0.253726 0.0 +1248 2.95 2.85 176.25 -0.480441 -0.742274 0.480289 0.285392 0.74211 -0.285331 0.0 +1249 2.95 2.95 3.75 -1235.79 -703.549 1235.79 26126.6 703.549 -26126.6 0.0 +1250 2.95 2.95 11.25 -677.675 -435.614 677.675 5671.31 435.614 -5671.31 0.0 +1251 2.95 2.95 18.75 -281.882 -206.464 281.882 1620.38 206.464 -1620.38 0.0 +1252 2.95 2.95 26.25 -80.142 -69.4145 80.142 377.367 69.4145 -377.367 0.0 +1253 2.95 2.95 33.75 -11.535 -14.0454 11.535 55.1741 14.0454 -55.1741 0.0 +1254 2.95 2.95 41.25 0.444691 -1.06867 -0.444678 2.44606 1.06872 -2.44609 0.0 +1255 2.95 2.95 48.75 -0.095339 -0.280002 0.095379 0.150135 0.280037 -0.150155 0.0 +1256 2.95 2.95 56.25 -0.487332 -0.457247 0.487298 0.373103 0.457341 -0.373058 0.0 +1257 2.95 2.95 63.75 -0.309733 -0.308057 0.309669 0.0352679 0.308082 -0.0352801 0.0 +1258 2.95 2.95 71.25 -0.189494 -0.187337 0.189429 -0.0767338 0.187338 0.0767722 0.0 +1259 2.95 2.95 78.75 -0.100558 -0.0943326 0.100538 -0.103742 0.0942838 0.103711 0.0 +1260 2.95 2.95 86.25 -0.00127159 0.00259697 0.00111691 -0.124177 -0.0027075 0.124174 0.0 +1261 2.95 2.95 93.75 0.0781938 0.0795056 -0.0783669 -0.119644 -0.0795165 0.119632 0.0 +1262 2.95 2.95 101.25 0.125437 0.125749 -0.125346 -0.0954926 -0.125695 0.0954816 0.0 +1263 2.95 2.95 108.75 0.131842 0.132451 -0.1318 -0.0582993 -0.132316 0.0582686 0.0 +1264 2.95 2.95 116.25 0.094036 0.0945768 -0.0939986 -0.013007 -0.0944018 0.0129685 0.0 +1265 2.95 2.95 123.75 0.031853 0.0309302 -0.0318676 0.0276584 -0.0309157 -0.0276663 0.0 +1266 2.95 2.95 131.25 -0.0289236 -0.0307662 0.0290267 0.0542911 0.0309129 -0.0543246 0.0 +1267 2.95 2.95 138.75 -0.0860191 -0.0873603 0.0858184 0.0715543 0.0871918 -0.0715138 0.0 +1268 2.95 2.95 146.25 -0.159015 -0.159395 0.158823 0.092785 0.159333 -0.0927604 0.0 +1269 2.95 2.95 153.75 -0.264066 -0.265928 0.264092 0.127317 0.266003 -0.127385 0.0 +1270 2.95 2.95 161.25 -0.392832 -0.399313 0.392736 0.172881 0.399453 -0.172904 0.0 +1271 2.95 2.95 168.75 -0.51305 -0.525949 0.512818 0.216982 0.526087 -0.217102 0.0 +1272 2.95 2.95 176.25 -0.585362 -0.603164 0.585535 0.244165 0.603114 -0.244128 0.0 +1273 2.95 3.05 3.75 -1152 -470.691 1152 22546.9 470.691 -22546.9 0.0 +1274 2.95 3.05 11.25 -646.366 -302.989 646.366 5436.44 302.989 -5436.44 0.0 +1275 2.95 3.05 18.75 -274.735 -144.566 274.735 1560.79 144.566 -1560.79 0.0 +1276 2.95 3.05 26.25 -82.9595 -46.7837 82.9596 363.128 46.7837 -363.128 0.0 +1277 2.95 3.05 33.75 -15.5348 -7.90904 15.5348 54.2888 7.90907 -54.2887 0.0 +1278 2.95 3.05 41.25 -1.52533 0.0877815 1.52529 3.23039 -0.0877658 -3.23043 0.0 +1279 2.95 3.05 48.75 -0.429791 -0.130249 0.429777 0.249314 0.130206 -0.249273 0.0 +1280 2.95 3.05 56.25 -0.354386 -0.465805 0.3544 0.285906 0.465883 -0.285905 0.0 +1281 2.95 3.05 63.75 -0.230807 -0.353693 0.230714 0.0451008 0.353768 -0.0451234 0.0 +1282 2.95 3.05 71.25 -0.171943 -0.228248 0.172051 -0.0442061 0.228171 0.0442394 0.0 +1283 2.95 3.05 78.75 -0.0886759 -0.125763 0.0886157 -0.0870429 0.125748 0.0870611 0.0 +1284 2.95 3.05 86.25 0.00406016 -0.0290639 -0.00400943 -0.106637 0.0291333 0.106635 0.0 +1285 2.95 3.05 93.75 0.0709324 0.0512843 -0.0709031 -0.0997352 -0.0513256 0.0997471 0.0 +1286 2.95 3.05 101.25 0.112173 0.109307 -0.112111 -0.081026 -0.10938 0.0810188 0.0 +1287 2.95 3.05 108.75 0.118241 0.127448 -0.118156 -0.0508854 -0.127498 0.0509172 0.0 +1288 2.95 3.05 116.25 0.082375 0.0967194 -0.0826216 -0.0115758 -0.096743 0.0116038 0.0 +1289 2.95 3.05 123.75 0.0249719 0.0392243 -0.0250633 0.0233571 -0.0393156 -0.0232965 0.0 +1290 2.95 3.05 131.25 -0.0283614 -0.0168684 0.0282743 0.0451621 0.0168661 -0.045173 0.0 +1291 2.95 3.05 138.75 -0.0768736 -0.0688048 0.077069 0.0594051 0.068716 -0.0593073 0.0 +1292 2.95 3.05 146.25 -0.141563 -0.136731 0.141568 0.0784955 0.136426 -0.0784076 0.0 +1293 2.95 3.05 153.75 -0.236122 -0.235072 0.236058 0.109983 0.235346 -0.110141 0.0 +1294 2.95 3.05 161.25 -0.351579 -0.354851 0.351474 0.150951 0.354689 -0.150832 0.0 +1295 2.95 3.05 168.75 -0.458428 -0.465918 0.458345 0.190063 0.465592 -0.18999 0.0 +1296 2.95 3.05 176.25 -0.522577 -0.532559 0.52258 0.213967 0.532625 -0.214084 0.0 +1297 2.95 3.15 3.75 -947.105 -234.064 947.105 16388.2 234.064 -16388.2 0.0 +1298 2.95 3.15 11.25 -544.957 -169.572 544.957 4831.85 169.572 -4831.85 0.0 +1299 2.95 3.15 18.75 -231.218 -87.4264 231.218 1411.96 87.4264 -1411.96 0.0 +1300 2.95 3.15 26.25 -69.489 -29.5946 69.489 327.211 29.5945 -327.211 0.0 +1301 2.95 3.15 33.75 -13.2484 -5.06717 13.2484 48.9414 5.06717 -48.9414 0.0 +1302 2.95 3.15 41.25 -1.4679 0.0238403 1.46795 3.15011 -0.0239097 -3.15014 0.0 +1303 2.95 3.15 48.75 -0.31652 -0.227201 0.316586 0.172569 0.227204 -0.17262 0.0 +1304 2.95 3.15 56.25 -0.21369 -0.480095 0.213689 0.184024 0.480141 -0.184087 0.0 +1305 2.95 3.15 63.75 -0.176969 -0.390853 0.176921 0.0560194 0.390826 -0.0559763 0.0 +1306 2.95 3.15 71.25 -0.150417 -0.269717 0.150456 -0.0151382 0.269771 0.0150882 0.0 +1307 2.95 3.15 78.75 -0.0732588 -0.158111 0.073298 -0.0675252 0.157991 0.0675219 0.0 +1308 2.95 3.15 86.25 0.0011828 -0.0578942 -0.0013546 -0.0836453 0.0579193 0.083656 0.0 +1309 2.95 3.15 93.75 0.0495663 0.0262723 -0.0495336 -0.0758505 -0.0265178 0.0758585 0.0 +1310 2.95 3.15 101.25 0.0825033 0.0923783 -0.0825646 -0.0624571 -0.0924447 0.0624949 0.0 +1311 2.95 3.15 108.75 0.0903024 0.12085 -0.0901393 -0.0395117 -0.120852 0.0395202 0.0 +1312 2.95 3.15 116.25 0.0638444 0.102339 -0.0638579 -0.00894728 -0.102235 0.00890468 0.0 +1313 2.95 3.15 123.75 0.0220461 0.0572511 -0.0219022 0.0169359 -0.0570113 -0.0169543 0.0 +1314 2.95 3.15 131.25 -0.015441 0.00943891 0.0156538 0.0325133 -0.00947592 -0.0324612 0.0 +1315 2.95 3.15 138.75 -0.0518112 -0.0403117 0.0516345 0.043965 0.0403656 -0.0440096 0.0 +1316 2.95 3.15 146.25 -0.104883 -0.106935 0.104923 0.0610883 0.106832 -0.0610049 0.0 +1317 2.95 3.15 153.75 -0.185793 -0.19961 0.185681 0.0885896 0.199403 -0.0885392 0.0 +1318 2.95 3.15 161.25 -0.283884 -0.306665 0.283899 0.123061 0.306488 -0.122974 0.0 +1319 2.95 3.15 168.75 -0.3736 -0.401945 0.373662 0.155182 0.401946 -0.155094 0.0 +1320 2.95 3.15 176.25 -0.427053 -0.458118 0.427085 0.174567 0.458223 -0.174634 0.0 +1321 2.95 3.25 3.75 -684.962 -33.597 684.962 11353.2 33.597 -11353.2 0.0 +1322 2.95 3.25 11.25 -400.069 -51.4433 400.069 4016.56 51.4433 -4016.56 0.0 +1323 2.95 3.25 18.75 -165.833 -38.5931 165.833 1203.1 38.5931 -1203.1 0.0 +1324 2.95 3.25 26.25 -47.263 -16.6148 47.263 276.987 16.6148 -276.987 0.0 +1325 2.95 3.25 33.75 -8.14408 -3.80756 8.14405 40.878 3.80754 -40.8779 0.0 +1326 2.95 3.25 41.25 -0.735673 -0.396549 0.73574 2.63773 0.396509 -2.63772 0.0 +1327 2.95 3.25 48.75 -0.150431 -0.333017 0.150544 0.0672603 0.332896 -0.0672187 0.0 +1328 2.95 3.25 56.25 -0.10876 -0.446971 0.10866 0.0972865 0.44696 -0.0973988 0.0 +1329 2.95 3.25 63.75 -0.118865 -0.37823 0.118992 0.0520019 0.378268 -0.052 0.0 +1330 2.95 3.25 71.25 -0.109895 -0.280626 0.109945 -0.000890606 0.280499 0.000905523 0.0 +1331 2.95 3.25 78.75 -0.0507365 -0.181073 0.0507334 -0.0461242 0.18097 0.0461348 0.0 +1332 2.95 3.25 86.25 -0.000734511 -0.0871476 0.00060714 -0.0555662 0.0872154 0.0555746 0.0 +1333 2.95 3.25 93.75 0.0311957 -0.00236195 -0.0311942 -0.0515041 0.00259597 0.0514843 0.0 +1334 2.95 3.25 101.25 0.0572093 0.0688848 -0.0571052 -0.0452318 -0.0687382 0.0452149 0.0 +1335 2.95 3.25 108.75 0.064287 0.106942 -0.0642778 -0.029198 -0.106939 0.0292002 0.0 +1336 2.95 3.25 116.25 0.0445212 0.10208 -0.0444717 -0.00721917 -0.102122 0.00721939 0.0 +1337 2.95 3.25 123.75 0.0135976 0.0703346 -0.0132914 0.0101515 -0.070214 -0.0102111 0.0 +1338 2.95 3.25 131.25 -0.0135575 0.0313234 0.0136726 0.0203596 -0.0316066 -0.0203055 0.0 +1339 2.95 3.25 138.75 -0.0393187 -0.0123616 0.0392606 0.0289017 0.0125322 -0.0289811 0.0 +1340 2.95 3.25 146.25 -0.0783219 -0.0713966 0.0781054 0.0422706 0.0716338 -0.0424701 0.0 +1341 2.95 3.25 153.75 -0.137718 -0.149787 0.137636 0.0630045 0.149918 -0.0630855 0.0 +1342 2.95 3.25 161.25 -0.209697 -0.23746 0.209832 0.0883427 0.237538 -0.0884379 0.0 +1343 2.95 3.25 168.75 -0.275371 -0.313873 0.275402 0.111664 0.314062 -0.111753 0.0 +1344 2.95 3.25 176.25 -0.314348 -0.358242 0.314391 0.125665 0.357993 -0.125515 0.0 +1345 2.95 3.35 3.75 -399.508 103.619 399.508 7451.41 -103.619 -7451.41 0.0 +1346 2.95 3.35 11.25 -231.405 35.127 231.405 3026.44 -35.127 -3026.44 0.0 +1347 2.95 3.35 18.75 -89.8146 -2.33149 89.8146 930.13 2.3315 -930.13 0.0 +1348 2.95 3.35 26.25 -22.0607 -7.1465 22.0607 211.828 7.14652 -211.828 0.0 +1349 2.95 3.35 33.75 -2.61211 -2.84669 2.61203 30.3988 2.84678 -30.3988 0.0 +1350 2.95 3.35 41.25 -0.0641668 -0.572722 0.0641482 1.85321 0.572769 -1.85319 0.0 +1351 2.95 3.35 48.75 -0.0727144 -0.324155 0.0726592 -0.0128306 0.324113 0.0128188 0.0 +1352 2.95 3.35 56.25 -0.0429539 -0.369477 0.0429431 0.0365148 0.369487 -0.0365382 0.0 +1353 2.95 3.35 63.75 -0.0600198 -0.322362 0.0600919 0.0327313 0.322318 -0.0327163 0.0 +1354 2.95 3.35 71.25 -0.0652833 -0.262303 0.0652719 -0.000945077 0.262315 0.000937457 0.0 +1355 2.95 3.35 78.75 -0.031022 -0.194374 0.0309769 -0.0267122 0.194554 0.0267582 0.0 +1356 2.95 3.35 86.25 -0.00184005 -0.113162 0.00176104 -0.0298197 0.113076 0.0298218 0.0 +1357 2.95 3.35 93.75 0.018586 -0.0277066 -0.0184827 -0.0312711 0.0276271 0.0312812 0.0 +1358 2.95 3.35 101.25 0.0371138 0.0478631 -0.037144 -0.0299553 -0.0480008 0.0299616 0.0 +1359 2.95 3.35 108.75 0.0423982 0.093388 -0.0422422 -0.0188882 -0.0933397 0.0188857 0.0 +1360 2.95 3.35 116.25 0.0273758 0.0979945 -0.0273687 -0.00448478 -0.0979721 0.00447213 0.0 +1361 2.95 3.35 123.75 0.00420771 0.0743592 -0.00427898 0.00600864 -0.0745728 -0.0058675 0.0 +1362 2.95 3.35 131.25 -0.0145851 0.0414175 0.0147362 0.0124371 -0.0414414 -0.0124358 0.0 +1363 2.95 3.35 138.75 -0.03007 0.00528296 0.0300369 0.0181261 -0.00525075 -0.018187 0.0 +1364 2.95 3.35 146.25 -0.0509356 -0.0404972 0.0512567 0.0264418 0.040464 -0.0264103 0.0 +1365 2.95 3.35 153.75 -0.0853645 -0.10106 0.0852954 0.0392425 0.100971 -0.0391701 0.0 +1366 2.95 3.35 161.25 -0.129326 -0.170331 0.12924 0.0554642 0.170326 -0.0554588 0.0 +1367 2.95 3.35 168.75 -0.171342 -0.232151 0.171081 0.0709676 0.232288 -0.0710617 0.0 +1368 2.95 3.35 176.25 -0.196671 -0.268622 0.196769 0.0804998 0.268617 -0.0804939 0.0 +1369 2.95 3.45 3.75 -118.47 124.094 118.47 3596.85 -124.094 -3596.85 0.0 +1370 2.95 3.45 11.25 -62.0251 58.1208 62.0251 1612.69 -58.1208 -1612.69 0.0 +1371 2.95 3.45 18.75 -17.2025 11.8124 17.2025 506.519 -11.8125 -506.519 0.0 +1372 2.95 3.45 26.25 -0.377844 -1.71658 0.37789 113.34 1.71654 -113.34 0.0 +1373 2.95 3.45 33.75 1.37632 -1.48954 -1.37633 15.5555 1.4896 -15.5555 0.0 +1374 2.95 3.45 41.25 0.265026 -0.272138 -0.265013 0.865629 0.272128 -0.865594 0.0 +1375 2.95 3.45 48.75 -0.0675124 -0.169675 0.0675642 -0.0146368 0.169647 0.0146363 0.0 +1376 2.95 3.45 56.25 -0.023388 -0.236641 0.0234179 0.015066 0.236607 -0.015018 0.0 +1377 2.95 3.45 63.75 -0.0206674 -0.214642 0.0205493 0.0137967 0.214624 -0.0137863 0.0 +1378 2.95 3.45 71.25 -0.0266153 -0.192791 0.0266153 -0.00202341 0.192818 0.00206841 0.0 +1379 2.95 3.45 78.75 -0.01303 -0.158177 0.0130391 -0.00963045 0.158217 0.00964696 0.0 +1380 2.95 3.45 86.25 -0.00222429 -0.0960735 0.0021395 -0.0105039 0.0961189 0.0105017 0.0 +1381 2.95 3.45 93.75 0.00366176 -0.0280042 -0.00362622 -0.0130186 0.0279556 0.0130227 0.0 +1382 2.95 3.45 101.25 0.0105055 0.0297138 -0.0104632 -0.0119289 -0.0296664 0.0119117 0.0 +1383 2.95 3.45 108.75 0.0148087 0.0656952 -0.0147408 -0.00665645 -0.0657398 0.0066868 0.0 +1384 2.95 3.45 116.25 0.0114932 0.0726041 -0.0116021 -0.00156607 -0.0726457 0.00154858 0.0 +1385 2.95 3.45 123.75 0.00309518 0.0572911 -0.00312058 0.00244903 -0.0572973 -0.00247607 0.0 +1386 2.95 3.45 131.25 -0.00423195 0.0348253 0.00428653 0.0058355 -0.0347892 -0.0058315 0.0 +1387 2.95 3.45 138.75 -0.00866474 0.0124609 0.00861874 0.00825108 -0.0125166 -0.00826851 0.0 +1388 2.95 3.45 146.25 -0.0145607 -0.0144555 0.0146647 0.0107256 0.0144883 -0.0106962 0.0 +1389 2.95 3.45 153.75 -0.0287837 -0.0532811 0.0286297 0.0157047 0.0531415 -0.0156193 0.0 +1390 2.95 3.45 161.25 -0.0515253 -0.102148 0.0515477 0.0240732 0.102183 -0.0241063 0.0 +1391 2.95 3.45 168.75 -0.0767337 -0.148935 0.0767439 0.0334601 0.1489 -0.0334712 0.0 +1392 2.95 3.45 176.25 -0.0932086 -0.17774 0.0931942 0.0396944 0.177763 -0.0397001 0.0 +1393 2.95 3.55 3.75 9.21891 55.9716 -9.21891 1053.07 -55.9716 -1053.07 0.0 +1394 2.95 3.55 11.25 12.0915 26.8507 -12.0915 505.759 -26.8507 -505.759 0.0 +1395 2.95 3.55 18.75 10.5932 5.25111 -10.5932 161.202 -5.25111 -161.202 0.0 +1396 2.95 3.55 26.25 5.832 -0.960922 -5.83198 35.2215 0.960912 -35.2215 0.0 +1397 2.95 3.55 33.75 1.90632 -0.606111 -1.90629 4.63776 0.606103 -4.63776 0.0 +1398 2.95 3.55 41.25 0.243995 0.00564805 -0.243998 0.296232 -0.00567539 -0.296199 0.0 +1399 2.95 3.55 48.75 -0.0591471 -0.00860415 0.0591375 0.0274887 0.00861739 -0.0274844 0.0 +1400 2.95 3.55 56.25 -0.0269926 -0.0691277 0.0269968 0.0114055 0.0691244 -0.0114149 0.0 +1401 2.95 3.55 63.75 -0.00607235 -0.0689444 0.00606736 0.00520628 0.0689476 -0.00519972 0.0 +1402 2.95 3.55 71.25 -0.00320545 -0.0714308 0.00319651 0.00162512 0.0714338 -0.00162543 0.0 +1403 2.95 3.55 78.75 -0.000709974 -0.0611886 0.00068591 -0.000332506 0.0611933 0.00033069 0.0 +1404 2.95 3.55 86.25 -0.00172169 -0.0350745 0.00168824 -0.00153632 0.035038 0.00153626 0.0 +1405 2.95 3.55 93.75 -0.00504304 -0.0114154 0.00501691 -0.001532 0.0114067 0.0015284 0.0 +1406 2.95 3.55 101.25 -0.00419399 0.00690274 0.00423812 -0.00070908 -0.00693605 0.000712363 0.0 +1407 2.95 3.55 108.75 0.00145246 0.0217666 -0.00146955 -0.00136473 -0.0217677 0.00136709 0.0 +1408 2.95 3.55 116.25 0.00646822 0.0283925 -0.00648991 -0.0023095 -0.0283929 0.00231683 0.0 +1409 2.95 3.55 123.75 0.0071676 0.0255024 -0.00717304 -0.00117394 -0.0255343 0.00118872 0.0 +1410 2.95 3.55 131.25 0.00551051 0.0191405 -0.00553503 0.000805702 -0.0191302 -0.000807014 0.0 +1411 2.95 3.55 138.75 0.00491972 0.0139924 -0.00492367 0.00107791 -0.0140157 -0.00107725 0.0 +1412 2.95 3.55 146.25 0.00468329 0.0079675 -0.00466349 9.16014e-06 -0.0079586 -7.70033e-06 0.0 +1413 2.95 3.55 153.75 0.00109992 -0.00389049 -0.00104878 0.000299902 0.00394253 -0.000326509 0.0 +1414 2.95 3.55 161.25 -0.0078958 -0.022461 0.00792024 0.0035239 0.0224411 -0.0035224 0.0 +1415 2.95 3.55 168.75 -0.019444 -0.0423078 0.0194506 0.00839838 0.0423256 -0.00840352 0.0 +1416 2.95 3.55 176.25 -0.0275442 -0.0551633 0.0275625 0.011971 0.0551683 -0.0119705 0.0 +1417 2.95 3.65 3.75 7.06704 4.57331 -7.06704 82.2836 -4.57331 -82.2836 0.0 +1418 2.95 3.65 11.25 5.4451 1.75617 -5.4451 41.4025 -1.75617 -41.4025 0.0 +1419 2.95 3.65 18.75 3.205 -0.181937 -3.205 13.315 0.181936 -13.315 0.0 +1420 2.95 3.65 26.25 1.3884 -0.45091 -1.3884 2.87287 0.450911 -2.87287 0.0 +1421 2.95 3.65 33.75 0.399535 -0.156162 -0.399534 0.408566 0.156164 -0.408568 0.0 +1422 2.95 3.65 41.25 0.0474327 0.000325414 -0.0474365 0.0559439 -0.000322232 -0.0559436 0.0 +1423 2.95 3.65 48.75 -0.0167623 0.0148239 0.0167622 0.0118571 -0.0148242 -0.011857 0.0 +1424 2.95 3.65 56.25 -0.00966538 0.00961204 0.00966566 0.000613902 -0.00961345 -0.000615629 0.0 +1425 2.95 3.65 63.75 -0.0018771 0.00670523 0.00187471 0.000440809 -0.00670146 -0.000440008 0.0 +1426 2.95 3.65 71.25 -0.000281351 0.00228719 0.000284629 0.00150972 -0.00228777 -0.00150899 0.0 +1427 2.95 3.65 78.75 -0.000573671 0.000786642 0.000576419 0.00114584 -0.000789663 -0.00114555 0.0 +1428 2.95 3.65 86.25 -0.00114618 0.000614687 0.00115016 0.000658531 -0.000610215 -0.000658224 0.0 +1429 2.95 3.65 93.75 -0.0014843 -0.00108906 0.00148416 0.000686066 0.00108644 -0.000685896 0.0 +1430 2.95 3.65 101.25 -0.000744824 -0.00226437 0.000742569 0.000394 0.00226277 -0.000394553 0.0 +1431 2.95 3.65 108.75 0.000733179 -0.00144773 -0.000733097 -0.000392875 0.00144773 0.000393178 0.0 +1432 2.95 3.65 116.25 0.00137293 -0.00049035 -0.00137606 -0.000632154 0.000487911 0.000633826 0.0 +1433 2.95 3.65 123.75 0.000493895 -0.000912215 -0.00049636 8.38473e-05 0.000900696 -7.85158e-05 0.0 +1434 2.95 3.65 131.25 -0.000825425 -0.0018564 0.000824058 0.000856545 0.00185558 -0.000856062 0.0 +1435 2.95 3.65 138.75 -0.00108814 -0.00180504 0.00109441 0.000819354 0.00179515 -0.000812508 0.0 +1436 2.95 3.65 146.25 1.93775e-05 -0.000479276 -1.65839e-05 0.000158438 0.000470583 -0.000154836 0.0 +1437 2.95 3.65 153.75 0.00166473 0.00127079 -0.00166242 -0.000315957 -0.00126902 0.00031561 0.0 +1438 2.95 3.65 161.25 0.00284097 0.00252966 -0.00283858 -0.000108367 -0.00252762 0.000107593 0.0 +1439 2.95 3.65 168.75 0.00323364 0.00305014 -0.00322845 0.000583253 -0.00304442 -0.000587227 0.0 +1440 2.95 3.65 176.25 0.00320119 0.00313431 -0.00320683 0.0011639 -0.00314025 -0.00116103 0.0 +1441 3.05 2.55 3.75 -99.8903 -1135.49 99.8903 4481.01 1135.49 -4481.01 0.0 +1442 3.05 2.55 11.25 75.4085 -849.863 -75.4085 2098.79 849.863 -2098.79 0.0 +1443 3.05 2.55 18.75 204.713 -503.811 -204.713 608.899 503.811 -608.899 0.0 +1444 3.05 2.55 26.25 215.712 -235.217 -215.712 55.4596 235.217 -55.4596 0.0 +1445 3.05 2.55 33.75 153.506 -77.04 -153.506 -60.3792 77.04 60.3792 0.0 +1446 3.05 2.55 41.25 82.3413 -6.02578 -82.3413 -46.2127 6.02578 46.2127 0.0 +1447 3.05 2.55 48.75 35.0888 15.3934 -35.0889 -22.0144 -15.3934 22.0144 0.0 +1448 3.05 2.55 56.25 12.4887 16.3495 -12.4887 -10.6162 -16.3495 10.6162 0.0 +1449 3.05 2.55 63.75 3.52861 12.5229 -3.52864 -7.32703 -12.5228 7.32705 0.0 +1450 3.05 2.55 71.25 -0.279629 9.40632 0.279539 -6.91201 -9.40632 6.91201 0.0 +1451 3.05 2.55 78.75 -2.43932 7.24433 2.43937 -6.84166 -7.24431 6.84167 0.0 +1452 3.05 2.55 86.25 -3.82544 5.01507 3.82548 -6.03456 -5.01503 6.03456 0.0 +1453 3.05 2.55 93.75 -4.46445 2.39183 4.46443 -4.45383 -2.39181 4.45382 0.0 +1454 3.05 2.55 101.25 -4.14103 -0.193617 4.14113 -2.7115 0.193643 2.7115 0.0 +1455 3.05 2.55 108.75 -2.68814 -2.24179 2.68814 -1.40298 2.24179 1.40298 0.0 +1456 3.05 2.55 116.25 -0.20595 -3.60299 0.205893 -0.720314 3.60292 0.720318 0.0 +1457 3.05 2.55 123.75 2.91287 -4.4257 -2.91292 -0.508612 4.42572 0.50859 0.0 +1458 3.05 2.55 131.25 6.14079 -4.94039 -6.14081 -0.503212 4.94043 0.503203 0.0 +1459 3.05 2.55 138.75 9.01174 -5.32326 -9.01176 -0.502488 5.32335 0.50246 0.0 +1460 3.05 2.55 146.25 11.2442 -5.66887 -11.2442 -0.418121 5.66881 0.418179 0.0 +1461 3.05 2.55 153.75 12.7662 -6.00759 -12.7662 -0.251267 6.00762 0.251242 0.0 +1462 3.05 2.55 161.25 13.6683 -6.32489 -13.6683 -0.0497353 6.3249 0.0497547 0.0 +1463 3.05 2.55 168.75 14.1224 -6.57903 -14.1224 0.126803 6.57893 -0.12674 0.0 +1464 3.05 2.55 176.25 14.2984 -6.72181 -14.2983 0.228789 6.72185 -0.228792 0.0 +1465 3.05 2.65 3.75 -471.72 -1123.11 471.72 7093.34 1123.11 -7093.34 0.0 +1466 3.05 2.65 11.25 -191.767 -808.934 191.767 3001.82 808.934 -3001.82 0.0 +1467 3.05 2.65 18.75 34.008 -459.915 -34.008 894.175 459.915 -894.175 0.0 +1468 3.05 2.65 26.25 112.955 -208.573 -112.955 151.189 208.573 -151.189 0.0 +1469 3.05 2.65 33.75 94.0738 -71.7327 -94.0737 -21.1677 71.7326 21.1677 0.0 +1470 3.05 2.65 41.25 49.4837 -14.5639 -49.4837 -25.8858 14.5639 25.8858 0.0 +1471 3.05 2.65 48.75 18.1201 2.71873 -18.1201 -10.7579 -2.71874 10.7579 0.0 +1472 3.05 2.65 56.25 4.50067 5.1919 -4.50071 -4.17437 -5.19187 4.17439 0.0 +1473 3.05 2.65 63.75 0.324738 4.12228 -0.324708 -2.7649 -4.12229 2.76489 0.0 +1474 3.05 2.65 71.25 -0.885083 3.14173 0.885105 -2.71919 -3.14167 2.71917 0.0 +1475 3.05 2.65 78.75 -1.47411 2.5775 1.47404 -2.75787 -2.57751 2.75787 0.0 +1476 3.05 2.65 86.25 -1.87152 1.90054 1.8715 -2.4228 -1.90059 2.4228 0.0 +1477 3.05 2.65 93.75 -2.02466 0.923135 2.02473 -1.71585 -0.923116 1.71585 0.0 +1478 3.05 2.65 101.25 -1.76347 -0.106789 1.76345 -0.967378 0.106801 0.967378 0.0 +1479 3.05 2.65 108.75 -0.963999 -0.917273 0.964072 -0.468617 0.917246 0.468634 0.0 +1480 3.05 2.65 116.25 0.320331 -1.45246 -0.320253 -0.271727 1.4525 0.271712 0.0 +1481 3.05 2.65 123.75 1.86745 -1.80964 -1.86754 -0.2599 1.80962 0.259901 0.0 +1482 3.05 2.65 131.25 3.39911 -2.09969 -3.3991 -0.291824 2.0997 0.291795 0.0 +1483 3.05 2.65 138.75 4.68845 -2.3866 -4.68845 -0.280717 2.38662 0.280678 0.0 +1484 3.05 2.65 146.25 5.61507 -2.69242 -5.61523 -0.201921 2.6924 0.201911 0.0 +1485 3.05 2.65 153.75 6.16957 -3.01207 -6.1696 -0.0714668 3.01198 0.0715084 0.0 +1486 3.05 2.65 161.25 6.42631 -3.31783 -6.42636 0.0757921 3.31775 -0.0757403 0.0 +1487 3.05 2.65 168.75 6.50157 -3.56436 -6.50164 0.201289 3.56437 -0.201315 0.0 +1488 3.05 2.65 176.25 6.50603 -3.70329 -6.50603 0.273064 3.70334 -0.273107 0.0 +1489 3.05 2.75 3.75 -819.915 -1054.18 819.915 10801.3 1054.18 -10801.3 0.0 +1490 3.05 2.75 11.25 -428.7 -725.593 428.7 3920.51 725.593 -3920.51 0.0 +1491 3.05 2.75 18.75 -114.05 -391.224 114.05 1152.33 391.224 -1152.33 0.0 +1492 3.05 2.75 26.25 26.6042 -166.507 -26.6042 231.532 166.507 -231.532 0.0 +1493 3.05 2.75 33.75 47.3 -54.4281 -47.3 8.52819 54.4281 -8.52819 0.0 +1494 3.05 2.75 41.25 26.4694 -12.5721 -26.4693 -12.454 12.5721 12.454 0.0 +1495 3.05 2.75 48.75 8.21568 -1.0587 -8.21571 -4.42962 1.05872 4.42958 0.0 +1496 3.05 2.75 56.25 0.933521 0.970656 -0.933436 -1.13308 -0.970672 1.13312 0.0 +1497 3.05 2.75 63.75 -0.591387 0.896497 0.591369 -0.802744 -0.896534 0.80272 0.0 +1498 3.05 2.75 71.25 -0.708852 0.736982 0.708892 -0.888009 -0.736903 0.888014 0.0 +1499 3.05 2.75 78.75 -0.726053 0.759715 0.726002 -0.940145 -0.759774 0.940141 0.0 +1500 3.05 2.75 86.25 -0.765586 0.712852 0.765659 -0.840917 -0.712822 0.840918 0.0 +1501 3.05 2.75 93.75 -0.763361 0.473034 0.763336 -0.584351 -0.473083 0.584352 0.0 +1502 3.05 2.75 101.25 -0.61589 0.159455 0.615896 -0.319598 -0.159469 0.319598 0.0 +1503 3.05 2.75 108.75 -0.25518 -0.0967453 0.255171 -0.166777 0.0969022 0.166722 0.0 +1504 3.05 2.75 116.25 0.285009 -0.28291 -0.284971 -0.126066 0.282912 0.126057 0.0 +1505 3.05 2.75 123.75 0.897522 -0.44854 -0.897517 -0.135093 0.448509 0.135108 0.0 +1506 3.05 2.75 131.25 1.46791 -0.62815 -1.46794 -0.139317 0.628143 0.139325 0.0 +1507 3.05 2.75 138.75 1.9137 -0.829458 -1.91378 -0.113487 0.829399 0.113499 0.0 +1508 3.05 2.75 146.25 2.19463 -1.05152 -2.19449 -0.0541464 1.05163 0.0541151 0.0 +1509 3.05 2.75 153.75 2.31281 -1.28912 -2.31287 0.0298665 1.2892 -0.0299121 0.0 +1510 3.05 2.75 161.25 2.31047 -1.52248 -2.31048 0.121875 1.52245 -0.121854 0.0 +1511 3.05 2.75 168.75 2.2526 -1.71516 -2.25253 0.200736 1.7151 -0.200722 0.0 +1512 3.05 2.75 176.25 2.20364 -1.82546 -2.20366 0.246345 1.82537 -0.246316 0.0 +1513 3.05 2.85 3.75 -1091.5 -924.826 1091.5 15876.4 924.826 -15876.4 0.0 +1514 3.05 2.85 11.25 -600.889 -610.446 600.889 4701.21 610.446 -4701.21 0.0 +1515 3.05 2.85 18.75 -221.774 -313.095 221.774 1347.46 313.095 -1347.46 0.0 +1516 3.05 2.85 26.25 -36.1715 -123.034 36.1715 288.867 123.034 -288.867 0.0 +1517 3.05 2.85 33.75 14.4109 -35.751 -14.4109 28.4156 35.751 -28.4156 0.0 +1518 3.05 2.85 41.25 11.7477 -7.54625 -11.7476 -4.47886 7.54624 4.47889 0.0 +1519 3.05 2.85 48.75 3.02266 -1.2724 -3.02262 -1.36059 1.27242 1.36062 0.0 +1520 3.05 2.85 56.25 -0.293101 -0.234224 0.293102 0.0148782 0.234259 -0.0148768 0.0 +1521 3.05 2.85 63.75 -0.604408 -0.0864725 0.604562 -0.135551 0.0865208 0.135542 0.0 +1522 3.05 2.85 71.25 -0.423986 -0.0183332 0.424026 -0.236452 0.0183536 0.236484 0.0 +1523 3.05 2.85 78.75 -0.3123 0.1248 0.312209 -0.277309 -0.124861 0.277305 0.0 +1524 3.05 2.85 86.25 -0.248721 0.239777 0.248749 -0.273132 -0.2399 0.273128 0.0 +1525 3.05 2.85 93.75 -0.199626 0.248962 0.199561 -0.204975 -0.24897 0.204973 0.0 +1526 3.05 2.85 101.25 -0.120259 0.201191 0.120215 -0.129864 -0.201248 0.129884 0.0 +1527 3.05 2.85 108.75 0.0123537 0.148079 -0.0122872 -0.0877108 -0.14809 0.0877165 0.0 +1528 3.05 2.85 116.25 0.173327 0.0836399 -0.173362 -0.0691073 -0.0836389 0.0691089 0.0 +1529 3.05 2.85 123.75 0.32621 -0.00777206 -0.326258 -0.0543665 0.00767605 0.054391 0.0 +1530 3.05 2.85 131.25 0.449831 -0.119322 -0.449959 -0.0354792 0.119322 0.0354522 0.0 +1531 3.05 2.85 138.75 0.531523 -0.239616 -0.531528 -0.0103697 0.239718 0.0103411 0.0 +1532 3.05 2.85 146.25 0.559126 -0.370369 -0.559031 0.0242302 0.370329 -0.0241818 0.0 +1533 3.05 2.85 153.75 0.528094 -0.517307 -0.52826 0.0705032 0.517171 -0.070455 0.0 +1534 3.05 2.85 161.25 0.453914 -0.672153 -0.453993 0.124135 0.672161 -0.124122 0.0 +1535 3.05 2.85 168.75 0.370253 -0.807261 -0.370135 0.173118 0.807245 -0.173108 0.0 +1536 3.05 2.85 176.25 0.315462 -0.887101 -0.315566 0.202652 0.887107 -0.202673 0.0 +1537 3.05 2.95 3.75 -1232.87 -727.611 1232.87 21705.2 727.611 -21705.2 0.0 +1538 3.05 2.95 11.25 -683.419 -470.91 683.419 5177.91 470.91 -5177.91 0.0 +1539 3.05 2.95 18.75 -278.179 -234.268 278.179 1452.23 234.268 -1452.23 0.0 +1540 3.05 2.95 26.25 -72.0176 -85.4621 72.0176 319.105 85.462 -319.105 0.0 +1541 3.05 2.95 33.75 -5.04395 -21.0669 5.04397 39.4173 21.0669 -39.4173 0.0 +1542 3.05 2.95 41.25 3.48774 -3.28191 -3.48769 -0.300635 3.2819 0.300647 0.0 +1543 3.05 2.95 48.75 0.664886 -0.652039 -0.664789 -0.139738 0.652028 0.139711 0.0 +1544 3.05 2.95 56.25 -0.523616 -0.414034 0.523516 0.306792 0.414075 -0.306796 0.0 +1545 3.05 2.95 63.75 -0.434262 -0.279203 0.434317 0.0328779 0.279155 -0.0328601 0.0 +1546 3.05 2.95 71.25 -0.263989 -0.17845 0.263927 -0.0557287 0.178451 0.0557149 0.0 +1547 3.05 2.95 78.75 -0.155524 -0.0604642 0.155421 -0.0950323 0.0604433 0.0950443 0.0 +1548 3.05 2.95 86.25 -0.067447 0.04758 0.0673218 -0.117252 -0.0475915 0.117248 0.0 +1549 3.05 2.95 93.75 -0.00166102 0.107279 0.00164027 -0.105172 -0.107316 0.105191 0.0 +1550 3.05 2.95 101.25 0.0535862 0.135458 -0.0536877 -0.0832458 -0.135274 0.0832323 0.0 +1551 3.05 2.95 108.75 0.0967651 0.14059 -0.0966865 -0.0609958 -0.14058 0.0609828 0.0 +1552 3.05 2.95 116.25 0.109945 0.110287 -0.109908 -0.0329892 -0.110348 0.033027 0.0 +1553 3.05 2.95 123.75 0.0929853 0.0494498 -0.0930526 -0.0025344 -0.0494806 0.00258764 0.0 +1554 3.05 2.95 131.25 0.0642303 -0.01905 -0.0641238 0.0216847 0.0188441 -0.0215685 0.0 +1555 3.05 2.95 138.75 0.0332905 -0.0834771 -0.0332997 0.03867 0.083467 -0.0386494 0.0 +1556 3.05 2.95 146.25 -0.00878391 -0.154233 0.00888735 0.0564103 0.154439 -0.0564727 0.0 +1557 3.05 2.95 153.75 -0.0746897 -0.245398 0.0746327 0.0831603 0.245496 -0.0832365 0.0 +1558 3.05 2.95 161.25 -0.160201 -0.353255 0.160227 0.119078 0.353605 -0.119288 0.0 +1559 3.05 2.95 168.75 -0.243403 -0.453661 0.243311 0.154918 0.453781 -0.154984 0.0 +1560 3.05 2.95 176.25 -0.294717 -0.514746 0.294773 0.177486 0.51451 -0.177287 0.0 +1561 3.05 3.05 3.75 -1202.39 -470.365 1202.39 24403 470.365 -24403 0.0 +1562 3.05 3.05 11.25 -668.169 -316.378 668.169 5239.8 316.378 -5239.8 0.0 +1563 3.05 3.05 18.75 -281.731 -159.304 281.731 1455.24 159.304 -1455.24 0.0 +1564 3.05 3.05 26.25 -82.2316 -55.9751 82.2316 322.339 55.9751 -322.339 0.0 +1565 3.05 3.05 33.75 -13.2072 -11.7376 13.2072 43.2474 11.7377 -43.2475 0.0 +1566 3.05 3.05 41.25 -0.23727 -0.951403 0.237225 1.56363 0.951413 -1.56361 0.0 +1567 3.05 3.05 48.75 -0.165939 -0.246228 0.165967 0.206541 0.24613 -0.206511 0.0 +1568 3.05 3.05 56.25 -0.436043 -0.410636 0.436083 0.304896 0.410632 -0.304963 0.0 +1569 3.05 3.05 63.75 -0.30763 -0.310295 0.307609 0.0679989 0.310281 -0.0680052 0.0 +1570 3.05 3.05 71.25 -0.206649 -0.205757 0.206684 -0.0143256 0.20578 0.0143312 0.0 +1571 3.05 3.05 78.75 -0.11617 -0.112842 0.116269 -0.0611922 0.112662 0.0611357 0.0 +1572 3.05 3.05 86.25 -0.029379 -0.026893 0.0293335 -0.0825493 0.0270606 0.0825471 0.0 +1573 3.05 3.05 93.75 0.0356369 0.0385347 -0.0355095 -0.077343 -0.0385093 0.0773448 0.0 +1574 3.05 3.05 101.25 0.0825754 0.0864857 -0.0826079 -0.0638125 -0.0866197 0.0638187 0.0 +1575 3.05 3.05 108.75 0.102049 0.105697 -0.102052 -0.0415323 -0.105879 0.0415234 0.0 +1576 3.05 3.05 116.25 0.0810613 0.0846985 -0.0811354 -0.00976694 -0.0847927 0.00982253 0.0 +1577 3.05 3.05 123.75 0.0328587 0.0382796 -0.0327086 0.0205591 -0.0383158 -0.0204996 0.0 +1578 3.05 3.05 131.25 -0.0175676 -0.00884341 0.0174819 0.0399706 0.00881225 -0.0399405 0.0 +1579 3.05 3.05 138.75 -0.0618523 -0.0507538 0.0617807 0.050519 0.0510671 -0.0507029 0.0 +1580 3.05 3.05 146.25 -0.112984 -0.102557 0.112876 0.062213 0.102547 -0.0622186 0.0 +1581 3.05 3.05 153.75 -0.183953 -0.177566 0.184157 0.0833769 0.177745 -0.0834765 0.0 +1582 3.05 3.05 161.25 -0.271208 -0.270479 0.271245 0.113891 0.27054 -0.113888 0.0 +1583 3.05 3.05 168.75 -0.353042 -0.357989 0.353053 0.145016 0.357905 -0.145054 0.0 +1584 3.05 3.05 176.25 -0.402759 -0.411064 0.402707 0.164734 0.411172 -0.164821 0.0 +1585 3.05 3.15 3.75 -1005.86 -194.498 1005.86 20622.3 194.498 -20622.3 0.0 +1586 3.05 3.15 11.25 -566.091 -160.869 566.091 4886.81 160.869 -4886.81 0.0 +1587 3.05 3.15 18.75 -240.287 -91.2699 240.287 1363.35 91.2699 -1363.35 0.0 +1588 3.05 3.15 26.25 -72.1732 -33.8748 72.1732 302.315 33.8748 -302.315 0.0 +1589 3.05 3.15 33.75 -13.3946 -6.76814 13.3946 41.8615 6.76815 -41.8615 0.0 +1590 3.05 3.15 41.25 -1.23842 -0.233142 1.2384 2.17485 0.233108 -2.17487 0.0 +1591 3.05 3.15 48.75 -0.292521 -0.178012 0.292534 0.218004 0.177961 -0.217937 0.0 +1592 3.05 3.15 56.25 -0.284809 -0.428332 0.284868 0.232091 0.428389 -0.232079 0.0 +1593 3.05 3.15 63.75 -0.220727 -0.340585 0.220826 0.0743496 0.340452 -0.0743638 0.0 +1594 3.05 3.15 71.25 -0.169662 -0.229028 0.169575 -0.00422416 0.228937 0.00423996 0.0 +1595 3.05 3.15 78.75 -0.0951492 -0.138864 0.0951079 -0.0524268 0.138897 0.0524133 0.0 +1596 3.05 3.15 86.25 -0.0249568 -0.057734 0.0249618 -0.0648182 0.0578461 0.0648357 0.0 +1597 3.05 3.15 93.75 0.0258392 0.0131362 -0.0256859 -0.0587348 -0.0128765 0.058722 0.0 +1598 3.05 3.15 101.25 0.0643498 0.0683206 -0.0643807 -0.0481836 -0.0685476 0.0481991 0.0 +1599 3.05 3.15 108.75 0.0794928 0.0928215 -0.0794856 -0.02838 -0.0927884 0.0283377 0.0 +1600 3.05 3.15 116.25 0.0621262 0.0783423 -0.0619376 -0.00193475 -0.0783081 0.00196418 0.0 +1601 3.05 3.15 123.75 0.0258006 0.041661 -0.0259602 0.0203971 -0.0415221 -0.0204713 0.0 +1602 3.05 3.15 131.25 -0.00984299 0.0033761 0.0098454 0.0334746 -0.00365493 -0.0333855 0.0 +1603 3.05 3.15 138.75 -0.0442769 -0.0350514 0.0443307 0.0414554 0.0352449 -0.041497 0.0 +1604 3.05 3.15 146.25 -0.091463 -0.0871559 0.0914155 0.052571 0.0871283 -0.0525267 0.0 +1605 3.05 3.15 153.75 -0.160353 -0.160828 0.160224 0.0723048 0.160761 -0.0723438 0.0 +1606 3.05 3.15 161.25 -0.243335 -0.247674 0.243164 0.0993507 0.247967 -0.0995663 0.0 +1607 3.05 3.15 168.75 -0.318898 -0.326134 0.319007 0.126072 0.32627 -0.126173 0.0 +1608 3.05 3.15 176.25 -0.36419 -0.372832 0.36427 0.142724 0.372732 -0.142595 0.0 +1609 3.05 3.25 3.75 -707.917 46.1555 707.917 14705.3 -46.1555 -14705.3 0.0 +1610 3.05 3.25 11.25 -403.239 -21.7092 403.239 4225.41 21.7092 -4225.41 0.0 +1611 3.05 3.25 18.75 -168.322 -33.4945 168.322 1198.15 33.4945 -1198.15 0.0 +1612 3.05 3.25 26.25 -49.4611 -17.619 49.4611 265.09 17.619 -265.09 0.0 +1613 3.05 3.25 33.75 -9.19503 -4.34197 9.19508 37.0193 4.34196 -37.0193 0.0 +1614 3.05 3.25 41.25 -0.984275 -0.283052 0.984305 2.13686 0.283053 -2.13689 0.0 +1615 3.05 3.25 48.75 -0.18842 -0.24192 0.188469 0.12944 0.241853 -0.129426 0.0 +1616 3.05 3.25 56.25 -0.14452 -0.42971 0.144635 0.148393 0.42977 -0.148431 0.0 +1617 3.05 3.25 63.75 -0.142141 -0.341575 0.142225 0.0603106 0.341607 -0.0603114 0.0 +1618 3.05 3.25 71.25 -0.120366 -0.235824 0.120331 -0.00584193 0.236031 0.00590595 0.0 +1619 3.05 3.25 78.75 -0.0648858 -0.155118 0.0648497 -0.0407089 0.155197 0.0406872 0.0 +1620 3.05 3.25 86.25 -0.0170367 -0.0778598 0.0169629 -0.0444295 0.0780579 0.0444343 0.0 +1621 3.05 3.25 93.75 0.0177195 -0.00503444 -0.0176269 -0.0424893 0.00514769 0.042496 0.0 +1622 3.05 3.25 101.25 0.0462891 0.05416 -0.0462865 -0.0373615 -0.0542229 0.0373631 0.0 +1623 3.05 3.25 108.75 0.0573669 0.084333 -0.0573216 -0.0224864 -0.0844456 0.0224838 0.0 +1624 3.05 3.25 116.25 0.0451776 0.0795648 -0.0451227 -0.00389795 -0.0795657 0.00392705 0.0 +1625 3.05 3.25 123.75 0.0215897 0.0526945 -0.021368 0.0103573 -0.0529347 -0.010223 0.0 +1626 3.05 3.25 131.25 -0.00169711 0.0202141 0.00167047 0.0191787 -0.0203379 -0.0191286 0.0 +1627 3.05 3.25 138.75 -0.0264021 -0.0159575 0.0263373 0.0263274 0.0160538 -0.0263645 0.0 +1628 3.05 3.25 146.25 -0.0639974 -0.0644796 0.063985 0.0366322 0.0642138 -0.0364741 0.0 +1629 3.05 3.25 153.75 -0.119886 -0.129575 0.119896 0.0530471 0.129703 -0.0531036 0.0 +1630 3.05 3.25 161.25 -0.186549 -0.203618 0.186351 0.0742664 0.20364 -0.0742798 0.0 +1631 3.05 3.25 168.75 -0.246276 -0.269152 0.246288 0.0946959 0.269294 -0.0948405 0.0 +1632 3.05 3.25 176.25 -0.281602 -0.307458 0.281688 0.107277 0.307531 -0.107285 0.0 +1633 3.05 3.35 3.75 -365.113 209.441 365.113 9554.04 -209.441 -9554.04 0.0 +1634 3.05 3.35 11.25 -204.246 81.0767 204.246 3280.1 -81.0766 -3280.1 0.0 +1635 3.05 3.35 18.75 -79.3542 9.6114 79.3542 951.267 -9.61141 -951.267 0.0 +1636 3.05 3.35 26.25 -20.8335 -5.94072 20.8335 209.249 5.9407 -209.249 0.0 +1637 3.05 3.35 33.75 -3.39742 -2.81825 3.39744 28.9771 2.81824 -28.9771 0.0 +1638 3.05 3.35 41.25 -0.403877 -0.37604 0.403872 1.67216 0.375997 -1.67217 0.0 +1639 3.05 3.35 48.75 -0.0863015 -0.268756 0.0862503 0.0304183 0.2687 -0.0303612 0.0 +1640 3.05 3.35 56.25 -0.0467076 -0.385723 0.0467254 0.0764897 0.385756 -0.0765678 0.0 +1641 3.05 3.35 63.75 -0.0765137 -0.296157 0.076492 0.0332949 0.296254 -0.033302 0.0 +1642 3.05 3.35 71.25 -0.0737102 -0.217777 0.0736319 -0.011919 0.217711 0.0118976 0.0 +1643 3.05 3.35 78.75 -0.0386226 -0.164005 0.0385937 -0.0252131 0.164091 0.0252167 0.0 +1644 3.05 3.35 86.25 -0.00860859 -0.0968502 0.00848829 -0.0245854 0.0969682 0.0245984 0.0 +1645 3.05 3.35 93.75 0.0147737 -0.0236231 -0.0147163 -0.0288229 0.0237517 0.0288162 0.0 +1646 3.05 3.35 101.25 0.0330742 0.0394288 -0.0329504 -0.0272844 -0.0394857 0.0273121 0.0 +1647 3.05 3.35 108.75 0.0377886 0.0770313 -0.0378089 -0.0166062 -0.0771797 0.0166531 0.0 +1648 3.05 3.35 116.25 0.0269164 0.0808568 -0.0269524 -0.00526022 -0.0808528 0.00523792 0.0 +1649 3.05 3.35 123.75 0.00994602 0.0605897 -0.00992017 0.00301009 -0.06072 -0.00291031 0.0 +1650 3.05 3.35 131.25 -0.00533206 0.0321631 0.00513532 0.00937287 -0.0322053 -0.00941624 0.0 +1651 3.05 3.35 138.75 -0.0198079 0.00170782 0.0198683 0.0152825 -0.00186433 -0.0152538 0.0 +1652 3.05 3.35 146.25 -0.0421542 -0.0369206 0.0421364 0.0228346 0.0366588 -0.0227076 0.0 +1653 3.05 3.35 153.75 -0.0772172 -0.0895244 0.0772434 0.0344402 0.0896002 -0.0344561 0.0 +1654 3.05 3.35 161.25 -0.121604 -0.151599 0.12161 0.0498996 0.151602 -0.0499331 0.0 +1655 3.05 3.35 168.75 -0.163376 -0.208149 0.163288 0.0652244 0.208133 -0.0652161 0.0 +1656 3.05 3.35 176.25 -0.188553 -0.242014 0.18862 0.0748184 0.241996 -0.0748296 0.0 +1657 3.05 3.45 3.75 -49.0063 211.636 49.0063 4534.02 -211.636 -4534.02 0.0 +1658 3.05 3.45 11.25 -16.2879 99.9048 16.2879 1783.56 -99.9048 -1783.56 0.0 +1659 3.05 3.45 18.75 1.92371 24.1588 -1.92369 528.913 -24.1588 -528.913 0.0 +1660 3.05 3.45 26.25 3.92081 0.239734 -3.92085 114.895 -0.239708 -114.895 0.0 +1661 3.05 3.45 33.75 1.33681 -1.29813 -1.33683 15.4468 1.29814 -15.4467 0.0 +1662 3.05 3.45 41.25 0.0515692 -0.168192 -0.0515773 0.808296 0.168187 -0.808324 0.0 +1663 3.05 3.45 48.75 -0.0454932 -0.172325 0.0455576 -0.0119284 0.172203 0.0119136 0.0 +1664 3.05 3.45 56.25 -0.00725921 -0.261217 0.00720111 0.0402311 0.261254 -0.040187 0.0 +1665 3.05 3.45 63.75 -0.0304125 -0.195611 0.0304302 0.0163773 0.195633 -0.0163835 0.0 +1666 3.05 3.45 71.25 -0.0332991 -0.159008 0.0333114 -0.00806962 0.159016 0.00804613 0.0 +1667 3.05 3.45 78.75 -0.0178735 -0.133654 0.0179131 -0.00824974 0.13361 0.00825353 0.0 +1668 3.05 3.45 86.25 -0.00502976 -0.0823886 0.00511234 -0.00794398 0.0823682 0.00794143 0.0 +1669 3.05 3.45 93.75 0.00414406 -0.0240697 -0.00419551 -0.0119802 0.0240974 0.0119811 0.0 +1670 3.05 3.45 101.25 0.0110567 0.0255518 -0.0111244 -0.0104323 -0.025573 0.0104402 0.0 +1671 3.05 3.45 108.75 0.0138462 0.0574772 -0.013883 -0.00606324 -0.0575893 0.00608259 0.0 +1672 3.05 3.45 116.25 0.011077 0.0635865 -0.0110606 -0.00305434 -0.0635874 0.00307944 0.0 +1673 3.05 3.45 123.75 0.00449426 0.0488256 -0.00448388 0.000439858 -0.0487677 -0.000429246 0.0 +1674 3.05 3.45 131.25 -0.0019067 0.0282409 0.0019165 0.0047807 -0.028183 -0.00479583 0.0 +1675 3.05 3.45 138.75 -0.00725526 0.00817585 0.0071253 0.00823976 -0.0082291 -0.00826636 0.0 +1676 3.05 3.45 146.25 -0.0164527 -0.017166 0.0163605 0.0119186 0.0170814 -0.0118721 0.0 +1677 3.05 3.45 153.75 -0.0355769 -0.0560084 0.0355731 0.0191433 0.0558956 -0.0190579 0.0 +1678 3.05 3.45 161.25 -0.0646594 -0.106219 0.0647645 0.0307881 0.106203 -0.0308022 0.0 +1679 3.05 3.45 168.75 -0.0953586 -0.154516 0.0954731 0.0434057 0.154565 -0.0434184 0.0 +1680 3.05 3.45 176.25 -0.115325 -0.184291 0.11528 0.0516029 0.184203 -0.0515372 0.0 +1681 3.05 3.55 3.75 58.2865 95.694 -58.2865 1303.18 -95.694 -1303.18 0.0 +1682 3.05 3.55 11.25 43.7842 47.0725 -43.7842 564.702 -47.0725 -564.702 0.0 +1683 3.05 3.55 18.75 24.1468 11.6001 -24.1468 170.104 -11.6002 -170.104 0.0 +1684 3.05 3.55 26.25 9.2032 0.165595 -9.2032 36.0656 -0.165608 -36.0656 0.0 +1685 3.05 3.55 33.75 2.10018 -0.495089 -2.10018 4.59251 0.495098 -4.5925 0.0 +1686 3.05 3.55 41.25 0.159888 0.0314295 -0.159875 0.213805 -0.0314347 -0.213825 0.0 +1687 3.05 3.55 48.75 -0.0316332 -0.0209589 0.0316297 0.0113881 0.020965 -0.011392 0.0 +1688 3.05 3.55 56.25 -0.00590874 -0.08247 0.00589294 0.029912 0.0824799 -0.0299018 0.0 +1689 3.05 3.55 63.75 -0.00460387 -0.0639712 0.00458972 0.0134455 0.0639916 -0.0134371 0.0 +1690 3.05 3.55 71.25 -0.00323754 -0.0605657 0.00327371 0.00123371 0.0605309 -0.00124148 0.0 +1691 3.05 3.55 78.75 -0.000975075 -0.0526099 0.000959984 0.00021812 0.052629 -0.000218025 0.0 +1692 3.05 3.55 86.25 -0.00152766 -0.0304211 0.00152531 -0.000124893 0.0304344 0.000128979 0.0 +1693 3.05 3.55 93.75 -0.00281045 -0.0103052 0.00282543 -0.000164696 0.0103138 0.000165631 0.0 +1694 3.05 3.55 101.25 -0.000794283 0.00655645 0.00082915 9.05452e-05 -0.0065146 -9.18973e-05 0.0 +1695 3.05 3.55 108.75 0.0048571 0.0208882 -0.00483972 -0.00172205 -0.020898 0.00171912 0.0 +1696 3.05 3.55 116.25 0.00910593 0.0261263 -0.00910381 -0.00286916 -0.026165 0.00289949 0.0 +1697 3.05 3.55 123.75 0.00835341 0.0213906 -0.00837047 -0.000577344 -0.0213633 0.000556754 0.0 +1698 3.05 3.55 131.25 0.00484672 0.0140179 -0.00483896 0.00261085 -0.0140112 -0.00259889 0.0 +1699 3.05 3.55 138.75 0.00145793 0.00803444 -0.00146708 0.00365082 -0.00802698 -0.00365445 0.0 +1700 3.05 3.55 146.25 -0.00319952 -0.000185068 0.00323208 0.00391313 0.000156672 -0.00387595 0.0 +1701 3.05 3.55 153.75 -0.0136071 -0.0160629 0.0136006 0.0069895 0.0160638 -0.00699597 0.0 +1702 3.05 3.55 161.25 -0.0307544 -0.0391932 0.0307909 0.0140586 0.0392269 -0.0140635 0.0 +1703 3.05 3.55 168.75 -0.0498663 -0.0628118 0.0498782 0.0225481 0.0628021 -0.0225421 0.0 +1704 3.05 3.55 176.25 -0.0625385 -0.0776921 0.0625437 0.0282624 0.0776849 -0.0282597 0.0 +1705 3.05 3.65 3.75 14.7738 9.01288 -14.7738 99.4234 -9.01288 -99.4234 0.0 +1706 3.05 3.65 11.25 10.4256 4.10096 -10.4256 45.9297 -4.10096 -45.9297 0.0 +1707 3.05 3.65 18.75 5.33829 0.564282 -5.33829 13.8766 -0.564281 -13.8766 0.0 +1708 3.05 3.65 26.25 1.92055 -0.318539 -1.92055 2.83407 0.318537 -2.83407 0.0 +1709 3.05 3.65 33.75 0.431842 -0.140656 -0.431843 0.348739 0.140656 -0.348739 0.0 +1710 3.05 3.65 41.25 0.0364247 0.00723669 -0.0364242 0.0264389 -0.00723644 -0.0264393 0.0 +1711 3.05 3.65 48.75 -0.0100345 0.0159315 0.0100318 0.0080024 -0.0159293 -0.00800035 0.0 +1712 3.05 3.65 56.25 -0.00452025 0.00778732 0.00451941 0.00551883 -0.00778686 -0.00552083 0.0 +1713 3.05 3.65 63.75 -0.000672337 0.00521555 0.000670408 0.00280248 -0.00521397 -0.00280318 0.0 +1714 3.05 3.65 71.25 0.000360923 0.00171355 -0.00036216 0.00121365 -0.00171269 -0.00121435 0.0 +1715 3.05 3.65 78.75 6.70805e-05 0.000819412 -6.59271e-05 0.000597606 -0.000817676 -0.000597435 0.0 +1716 3.05 3.65 86.25 -0.00057186 0.000644185 0.000572355 0.000567504 -0.00064307 -0.000567647 0.0 +1717 3.05 3.65 93.75 -0.000751471 -0.00106817 0.000749874 0.000757072 0.00106639 -0.000757055 0.0 +1718 3.05 3.65 101.25 0.000275919 -0.00183009 -0.000275096 0.000255174 0.00183474 -0.00025562 0.0 +1719 3.05 3.65 108.75 0.00189848 -0.000761837 -0.00189497 -0.000636546 0.000759074 0.000637236 0.0 +1720 3.05 3.65 116.25 0.00236351 -0.000115402 -0.00236272 -0.000553323 0.000119324 0.000553044 0.0 +1721 3.05 3.65 123.75 0.00106135 -0.00107726 -0.00106142 0.000592741 0.00108013 -0.000595129 0.0 +1722 3.05 3.65 131.25 -0.000675214 -0.0023987 0.000676951 0.00145629 0.00239971 -0.00145617 0.0 +1723 3.05 3.65 138.75 -0.00134281 -0.00270273 0.00134522 0.00120903 0.00269853 -0.00120659 0.0 +1724 3.05 3.65 146.25 -0.000900174 -0.00203273 0.000901187 0.000435489 0.00203583 -0.00043519 0.0 +1725 3.05 3.65 153.75 -0.000477871 -0.00132233 0.00047692 0.000219008 0.00131769 -0.000216421 0.0 +1726 3.05 3.65 161.25 -0.000970611 -0.00119912 0.000968838 0.000989395 0.00120357 -0.000993014 0.0 +1727 3.05 3.65 168.75 -0.00221265 -0.00158211 0.00221741 0.00227827 0.00158658 -0.00228145 0.0 +1728 3.05 3.65 176.25 -0.00325813 -0.00197769 0.00326165 0.00322864 0.00198236 -0.00323014 0.0 +1729 3.15 2.55 3.75 -27.4076 -1177.54 27.4076 2986.48 1177.54 -2986.48 0.0 +1730 3.15 2.55 11.25 114.909 -893.434 -114.909 1451.97 893.434 -1451.97 0.0 +1731 3.15 2.55 18.75 220.927 -531.426 -220.927 381.487 531.426 -381.487 0.0 +1732 3.15 2.55 26.25 220.034 -241.118 -220.034 -14.948 241.118 14.948 0.0 +1733 3.15 2.55 33.75 151.765 -67.0502 -151.765 -77.8707 67.0502 77.8707 0.0 +1734 3.15 2.55 41.25 77.6615 10.845 -77.6615 -49.9303 -10.845 49.9303 0.0 +1735 3.15 2.55 48.75 29.4755 32.5379 -29.4755 -24.2324 -32.5379 24.2323 0.0 +1736 3.15 2.55 56.25 7.15336 31.0306 -7.15333 -14.0732 -31.0306 14.0732 0.0 +1737 3.15 2.55 63.75 -1.05485 24.6005 1.05486 -12.17 -24.6005 12.17 0.0 +1738 3.15 2.55 71.25 -4.2524 19.4264 4.25245 -12.4357 -19.4264 12.4357 0.0 +1739 3.15 2.55 78.75 -6.26403 15.3863 6.26407 -11.9586 -15.3863 11.9586 0.0 +1740 3.15 2.55 86.25 -7.82419 11.1006 7.82418 -9.89676 -11.1007 9.89676 0.0 +1741 3.15 2.55 93.75 -8.44213 6.27427 8.44211 -6.88922 -6.27428 6.88922 0.0 +1742 3.15 2.55 101.25 -7.38509 1.54713 7.38513 -4.12212 -1.54706 4.12211 0.0 +1743 3.15 2.55 108.75 -4.32105 -2.46579 4.32104 -2.35334 2.46578 2.35333 0.0 +1744 3.15 2.55 116.25 0.406533 -5.63185 -0.406541 -1.60535 5.63179 1.60537 0.0 +1745 3.15 2.55 123.75 5.96181 -8.14327 -5.96181 -1.46219 8.14332 1.46217 0.0 +1746 3.15 2.55 131.25 11.4239 -10.2167 -11.4239 -1.47786 10.2167 1.47787 0.0 +1747 3.15 2.55 138.75 16.1105 -11.9601 -16.1106 -1.38993 11.9601 1.38992 0.0 +1748 3.15 2.55 146.25 19.6942 -13.3963 -19.6941 -1.1318 13.3963 1.13184 0.0 +1749 3.15 2.55 153.75 22.1564 -14.525 -22.1565 -0.756739 14.525 0.756719 0.0 +1750 3.15 2.55 161.25 23.6733 -15.3528 -23.6732 -0.361675 15.3528 0.361658 0.0 +1751 3.15 2.55 168.75 24.4933 -15.8939 -24.4933 -0.0403958 15.894 0.0403855 0.0 +1752 3.15 2.55 176.25 24.8391 -16.1612 -24.8391 0.138146 16.1611 -0.13812 0.0 +1753 3.15 2.65 3.75 -382.3 -1173.57 382.3 4819.79 1173.57 -4819.79 0.0 +1754 3.15 2.65 11.25 -147.278 -867.4 147.278 2217.25 867.401 -2217.25 0.0 +1755 3.15 2.65 18.75 53.0495 -503.218 -53.0495 646.011 503.218 -646.011 0.0 +1756 3.15 2.65 26.25 120.505 -229.082 -120.505 79.9388 229.082 -79.9388 0.0 +1757 3.15 2.65 33.75 95.7401 -74.5765 -95.7401 -36.4567 74.5765 36.4568 0.0 +1758 3.15 2.65 41.25 47.9555 -8.51743 -47.9555 -27.788 8.51743 27.788 0.0 +1759 3.15 2.65 48.75 15.3087 10.8882 -15.3087 -11.5215 -10.8882 11.5215 0.0 +1760 3.15 2.65 56.25 1.71235 12.3958 -1.71239 -5.88678 -12.3958 5.88679 0.0 +1761 3.15 2.65 63.75 -1.85784 9.95377 1.85788 -5.32284 -9.95375 5.32283 0.0 +1762 3.15 2.65 71.25 -2.5107 8.07183 2.51069 -5.66042 -8.0718 5.66043 0.0 +1763 3.15 2.65 78.75 -2.93298 6.81901 2.93306 -5.45184 -6.81897 5.45184 0.0 +1764 3.15 2.65 86.25 -3.48826 5.29061 3.48826 -4.3935 -5.29062 4.3935 0.0 +1765 3.15 2.65 93.75 -3.74316 3.25676 3.74317 -2.91544 -3.25679 2.91544 0.0 +1766 3.15 2.65 101.25 -3.14313 1.11525 3.14314 -1.68737 -1.11521 1.68737 0.0 +1767 3.15 2.65 108.75 -1.44888 -0.762392 1.44888 -1.05333 0.762401 1.05332 0.0 +1768 3.15 2.65 116.25 1.10632 -2.32234 -1.10636 -0.915764 2.32235 0.915769 0.0 +1769 3.15 2.65 123.75 3.999 -3.68327 -3.99905 -0.981961 3.68328 0.981933 0.0 +1770 3.15 2.65 131.25 6.71067 -4.9306 -6.71071 -1.01292 4.93052 1.01295 0.0 +1771 3.15 2.65 138.75 8.90941 -6.06124 -8.90948 -0.909875 6.06128 0.909848 0.0 +1772 3.15 2.65 146.25 10.478 -7.033 -10.478 -0.682663 7.03303 0.682641 0.0 +1773 3.15 2.65 153.75 11.4595 -7.81473 -11.4594 -0.390365 7.81474 0.390393 0.0 +1774 3.15 2.65 161.25 11.9866 -8.3981 -11.9866 -0.100784 8.39817 0.100743 0.0 +1775 3.15 2.65 168.75 12.2197 -8.78538 -12.2197 0.127706 8.78545 -0.127755 0.0 +1776 3.15 2.65 176.25 12.2968 -8.97894 -12.2968 0.253018 8.97893 -0.253004 0.0 +1777 3.15 2.75 3.75 -717.305 -1099.48 717.305 7349.12 1099.48 -7349.12 0.0 +1778 3.15 2.75 11.25 -384.145 -785.693 384.145 3043.13 785.693 -3043.13 0.0 +1779 3.15 2.75 18.75 -94.9682 -438.11 94.9682 898.217 438.11 -898.217 0.0 +1780 3.15 2.75 26.25 35.5855 -192.065 -35.5856 161.966 192.065 -161.966 0.0 +1781 3.15 2.75 33.75 51.0314 -63.115 -51.0314 -5.03306 63.115 5.03305 0.0 +1782 3.15 2.75 41.25 26.9766 -12.3012 -26.9766 -13.3863 12.3012 13.3863 0.0 +1783 3.15 2.75 48.75 7.19477 2.0083 -7.19476 -4.51753 -2.00835 4.51753 0.0 +1784 3.15 2.75 56.25 -0.300499 3.91871 0.300449 -1.9416 -3.91867 1.94161 0.0 +1785 3.15 2.75 63.75 -1.41191 3.2192 1.41193 -2.06438 -3.2192 2.06437 0.0 +1786 3.15 2.75 71.25 -1.09862 2.77961 1.09861 -2.31409 -2.77961 2.31408 0.0 +1787 3.15 2.75 78.75 -0.97934 2.69801 0.979376 -2.21566 -2.69799 2.21565 0.0 +1788 3.15 2.75 86.25 -1.14939 2.40786 1.14941 -1.73719 -2.40788 1.73719 0.0 +1789 3.15 2.75 93.75 -1.28476 1.7366 1.28478 -1.11459 -1.73658 1.11459 0.0 +1790 3.15 2.75 101.25 -1.02518 0.915603 1.02513 -0.67205 -0.915604 0.67204 0.0 +1791 3.15 2.75 108.75 -0.235222 0.152271 0.235251 -0.525599 -0.152295 0.52559 0.0 +1792 3.15 2.75 116.25 0.926335 -0.543285 -0.92633 -0.564825 0.54314 0.56486 0.0 +1793 3.15 2.75 123.75 2.16828 -1.23531 -2.16834 -0.624796 1.23529 0.624801 0.0 +1794 3.15 2.75 131.25 3.25208 -1.93488 -3.25213 -0.609967 1.93479 0.609996 0.0 +1795 3.15 2.75 138.75 4.06218 -2.59574 -4.06216 -0.506014 2.5958 0.506003 0.0 +1796 3.15 2.75 146.25 4.58223 -3.16844 -4.58219 -0.340482 3.16849 0.340441 0.0 +1797 3.15 2.75 153.75 4.85345 -3.63009 -4.85355 -0.150086 3.63016 0.150049 0.0 +1798 3.15 2.75 161.25 4.94755 -3.97851 -4.9476 0.031051 3.97843 -0.0310191 0.0 +1799 3.15 2.75 168.75 4.94687 -4.2147 -4.94688 0.172789 4.21474 -0.172809 0.0 +1800 3.15 2.75 176.25 4.92478 -4.33518 -4.92479 0.250736 4.33503 -0.250683 0.0 +1801 3.15 2.85 3.75 -983.407 -958.469 983.407 10771.7 958.469 -10771.7 0.0 +1802 3.15 2.85 11.25 -561.262 -663.174 561.262 3820.65 663.174 -3820.65 0.0 +1803 3.15 2.85 18.75 -205.213 -355.243 205.213 1105.74 355.243 -1105.74 0.0 +1804 3.15 2.85 26.25 -27.6167 -147.063 27.6167 223.87 147.063 -223.87 0.0 +1805 3.15 2.85 33.75 18.7771 -45.3665 -18.7771 16.2432 45.3665 -16.2432 0.0 +1806 3.15 2.85 41.25 13.1994 -9.43272 -13.1993 -5.05834 9.43266 5.05833 0.0 +1807 3.15 2.85 48.75 2.91908 -0.530057 -2.9191 -1.2319 0.530074 1.23189 0.0 +1808 3.15 2.85 56.25 -0.745478 0.739328 0.745498 -0.367498 -0.73929 0.367529 0.0 +1809 3.15 2.85 63.75 -0.81633 0.642883 0.816313 -0.716454 -0.6429 0.716445 0.0 +1810 3.15 2.85 71.25 -0.349638 0.675056 0.349664 -0.850932 -0.675061 0.850935 0.0 +1811 3.15 2.85 78.75 -0.149673 0.893423 0.149656 -0.801893 -0.893408 0.80189 0.0 +1812 3.15 2.85 86.25 -0.178712 0.982033 0.178685 -0.62163 -0.982034 0.621621 0.0 +1813 3.15 2.85 93.75 -0.242997 0.836119 0.242971 -0.408167 -0.836147 0.408172 0.0 +1814 3.15 2.85 101.25 -0.148846 0.585948 0.148786 -0.292887 -0.586035 0.292911 0.0 +1815 3.15 2.85 108.75 0.15606 0.331721 -0.155971 -0.293195 -0.331795 0.293195 0.0 +1816 3.15 2.85 116.25 0.567422 0.0594929 -0.567484 -0.331987 -0.0594022 0.331944 0.0 +1817 3.15 2.85 123.75 0.950702 -0.26038 -0.950731 -0.339941 0.260353 0.33994 0.0 +1818 3.15 2.85 131.25 1.23582 -0.606832 -1.23578 -0.298798 0.60675 0.298849 0.0 +1819 3.15 2.85 138.75 1.41461 -0.932834 -1.4147 -0.222025 0.932801 0.222074 0.0 +1820 3.15 2.85 146.25 1.50107 -1.20911 -1.50116 -0.126578 1.20906 0.1266 0.0 +1821 3.15 2.85 153.75 1.51127 -1.43277 -1.51127 -0.0238121 1.43294 0.0237802 0.0 +1822 3.15 2.85 161.25 1.46794 -1.61001 -1.46801 0.0755362 1.60995 -0.0755328 0.0 +1823 3.15 2.85 168.75 1.40576 -1.73855 -1.40577 0.156592 1.73865 -0.156591 0.0 +1824 3.15 2.85 176.25 1.36216 -1.80797 -1.36229 0.202726 1.80777 -0.202612 0.0 +1825 3.15 2.95 3.75 -1133.1 -747.847 1133.1 15204 747.847 -15204 0.0 +1826 3.15 2.95 11.25 -651.39 -510.215 651.39 4410.35 510.215 -4410.35 0.0 +1827 3.15 2.95 18.75 -265.384 -267.084 265.384 1240.36 267.084 -1240.36 0.0 +1828 3.15 2.95 26.25 -65.2059 -104.595 65.2059 261.401 104.595 -261.401 0.0 +1829 3.15 2.95 33.75 -1.1926 -29.0236 1.19257 28.5192 29.0237 -28.5193 0.0 +1830 3.15 2.95 41.25 5.04407 -5.31881 -5.04405 -0.879049 5.31877 0.879106 0.0 +1831 3.15 2.95 48.75 0.8753 -0.662049 -0.875315 -0.00872159 0.662128 0.00871009 0.0 +1832 3.15 2.95 56.25 -0.675197 -0.139671 0.675175 0.120631 0.13964 -0.120625 0.0 +1833 3.15 2.95 63.75 -0.46544 -0.0874773 0.465367 -0.212443 0.0874908 0.212434 0.0 +1834 3.15 2.95 71.25 -0.134062 0.0228327 0.133943 -0.278094 -0.0228418 0.278081 0.0 +1835 3.15 2.95 78.75 0.0168447 0.202657 -0.0168125 -0.266574 -0.202643 0.266593 0.0 +1836 3.15 2.95 86.25 0.0503193 0.315249 -0.0504007 -0.219306 -0.315241 0.219299 0.0 +1837 3.15 2.95 93.75 0.0502706 0.316426 -0.050226 -0.163651 -0.316425 0.163654 0.0 +1838 3.15 2.95 101.25 0.0985225 0.273347 -0.0985613 -0.146427 -0.273435 0.146416 0.0 +1839 3.15 2.95 108.75 0.199999 0.219778 -0.200098 -0.158023 -0.219778 0.157999 0.0 +1840 3.15 2.95 116.25 0.291735 0.132266 -0.291722 -0.160235 -0.132314 0.160262 0.0 +1841 3.15 2.95 123.75 0.329285 0.00185382 -0.329175 -0.137448 -0.00180331 0.13745 0.0 +1842 3.15 2.95 131.25 0.321385 -0.143622 -0.32142 -0.0993839 0.143295 0.0995188 0.0 +1843 3.15 2.95 138.75 0.294709 -0.273448 -0.294757 -0.0582161 0.273501 0.0581947 0.0 +1844 3.15 2.95 146.25 0.258238 -0.381886 -0.258155 -0.0155935 0.381841 0.0156253 0.0 +1845 3.15 2.95 153.75 0.205735 -0.479784 -0.205679 0.0327166 0.479841 -0.0327496 0.0 +1846 3.15 2.95 161.25 0.136947 -0.573355 -0.136947 0.0862248 0.573448 -0.0862026 0.0 +1847 3.15 2.95 168.75 0.0680279 -0.653564 -0.0680505 0.135147 0.653578 -0.135158 0.0 +1848 3.15 2.95 176.25 0.0243153 -0.701137 -0.024347 0.164886 0.701089 -0.164896 0.0 +1849 3.15 3.05 3.75 -1128.81 -471.423 1128.81 19895.2 471.423 -19895.2 0.0 +1850 3.15 3.05 11.25 -641.984 -337.183 641.984 4682.14 337.183 -4682.14 0.0 +1851 3.15 3.05 18.75 -271.929 -180.723 271.929 1285.25 180.723 -1285.25 0.0 +1852 3.15 3.05 26.25 -77.5442 -69.2222 77.5442 273.985 69.2222 -273.985 0.0 +1853 3.15 3.05 33.75 -10.5076 -17.2305 10.5076 33.7556 17.2305 -33.7556 0.0 +1854 3.15 3.05 41.25 0.942208 -2.36919 -0.94215 0.890868 2.36915 -0.890877 0.0 +1855 3.15 3.05 48.75 0.0413467 -0.341702 -0.0413853 0.284244 0.341717 -0.284258 0.0 +1856 3.15 3.05 56.25 -0.512539 -0.300118 0.512514 0.221017 0.300055 -0.221053 0.0 +1857 3.15 3.05 63.75 -0.326838 -0.225898 0.326884 -0.0197921 0.225764 0.019847 0.0 +1858 3.15 3.05 71.25 -0.151039 -0.130692 0.151122 -0.0702483 0.130597 0.0702255 0.0 +1859 3.15 3.05 78.75 -0.0510117 -0.0313348 0.0509675 -0.0903598 0.0314037 0.0903852 0.0 +1860 3.15 3.05 86.25 0.0100222 0.0417384 -0.00996435 -0.0903162 -0.0416107 0.090323 0.0 +1861 3.15 3.05 93.75 0.0505204 0.0773802 -0.050533 -0.0784695 -0.0774641 0.0784768 0.0 +1862 3.15 3.05 101.25 0.0974621 0.100727 -0.0974267 -0.0743341 -0.100721 0.0743344 0.0 +1863 3.15 3.05 108.75 0.138649 0.111398 -0.138664 -0.0691871 -0.111313 0.06919 0.0 +1864 3.15 3.05 116.25 0.139119 0.0890717 -0.139004 -0.0513441 -0.089038 0.0513577 0.0 +1865 3.15 3.05 123.75 0.0947612 0.0372026 -0.0948916 -0.0254731 -0.0372875 0.0254522 0.0 +1866 3.15 3.05 131.25 0.0352216 -0.0199093 -0.0352501 -0.0029018 0.0197286 0.003042 0.0 +1867 3.15 3.05 138.75 -0.0170544 -0.0691083 0.0169796 0.0128318 0.0690801 -0.0128405 0.0 +1868 3.15 3.05 146.25 -0.0650118 -0.117582 0.0649726 0.0284301 0.117519 -0.0283881 0.0 +1869 3.15 3.05 153.75 -0.123114 -0.17842 0.123091 0.0525561 0.178429 -0.0526076 0.0 +1870 3.15 3.05 161.25 -0.194145 -0.252323 0.194335 0.0863865 0.252507 -0.0864426 0.0 +1871 3.15 3.05 168.75 -0.263497 -0.323299 0.263507 0.121102 0.323227 -0.121095 0.0 +1872 3.15 3.05 176.25 -0.306581 -0.367138 0.306588 0.143278 0.367034 -0.143215 0.0 +1873 3.15 3.15 3.75 -956.411 -157.961 956.411 21490.2 157.961 -21490.2 0.0 +1874 3.15 3.15 11.25 -539.133 -158.376 539.133 4570.6 158.376 -4570.6 0.0 +1875 3.15 3.15 18.75 -230.746 -100.448 230.746 1239.08 100.448 -1239.08 0.0 +1876 3.15 3.15 26.25 -69.0286 -41.453 69.0285 264.322 41.4531 -264.322 0.0 +1877 3.15 3.15 33.75 -11.9443 -9.95787 11.9443 34.0693 9.95793 -34.0693 0.0 +1878 3.15 3.15 41.25 -0.582646 -0.953585 0.58261 1.49815 0.953585 -1.49815 0.0 +1879 3.15 3.15 48.75 -0.185725 -0.189058 0.185672 0.262739 0.188971 -0.262688 0.0 +1880 3.15 3.15 56.25 -0.35028 -0.339487 0.350287 0.209512 0.33955 -0.209522 0.0 +1881 3.15 3.15 63.75 -0.251984 -0.259721 0.252092 0.053384 0.25962 -0.0533321 0.0 +1882 3.15 3.15 71.25 -0.171035 -0.17401 0.170979 -0.00382131 0.173971 0.003789 0.0 +1883 3.15 3.15 78.75 -0.103081 -0.108356 0.103106 -0.0377398 0.108153 0.0377189 0.0 +1884 3.15 3.15 86.25 -0.0427632 -0.046394 0.0427713 -0.0466376 0.0463966 0.046639 0.0 +1885 3.15 3.15 93.75 0.00566927 0.00495154 -0.00569908 -0.0428492 -0.00499621 0.0428512 0.0 +1886 3.15 3.15 101.25 0.0504745 0.0463917 -0.0505543 -0.0360707 -0.0464682 0.0360915 0.0 +1887 3.15 3.15 108.75 0.0794281 0.0686813 -0.0795551 -0.0228925 -0.0688457 0.0229235 0.0 +1888 3.15 3.15 116.25 0.0742594 0.061464 -0.0741882 -0.00450275 -0.0615471 0.00449575 0.0 +1889 3.15 3.15 123.75 0.0412054 0.0335455 -0.0410459 0.0122873 -0.0334909 -0.0122658 0.0 +1890 3.15 3.15 131.25 0.00256192 0.00204886 -0.00232937 0.0225283 -0.00204045 -0.0224878 0.0 +1891 3.15 3.15 138.75 -0.0317873 -0.0281822 0.0319935 0.0275685 0.0282669 -0.0275469 0.0 +1892 3.15 3.15 146.25 -0.0711984 -0.0672197 0.0711102 0.0343857 0.0670901 -0.0343675 0.0 +1893 3.15 3.15 153.75 -0.126399 -0.123952 0.126399 0.0498039 0.123889 -0.049802 0.0 +1894 3.15 3.15 161.25 -0.195704 -0.194707 0.195608 0.074158 0.194762 -0.0742025 0.0 +1895 3.15 3.15 168.75 -0.261579 -0.261942 0.261393 0.100026 0.261901 -0.100036 0.0 +1896 3.15 3.15 176.25 -0.301524 -0.302836 0.301604 0.116713 0.302746 -0.116682 0.0 +1897 3.15 3.25 3.75 -650.193 134.226 650.193 17650.1 -134.226 -17650.1 0.0 +1898 3.15 3.25 11.25 -365.979 7.48146 365.979 4109.37 -7.48145 -4109.37 0.0 +1899 3.15 3.25 18.75 -155.208 -30.119 155.208 1115.3 30.119 -1115.3 0.0 +1900 3.15 3.25 26.25 -46.6783 -20.0797 46.6784 237.228 20.0796 -237.228 0.0 +1901 3.15 3.25 33.75 -8.72374 -5.70064 8.7238 31.186 5.70056 -31.186 0.0 +1902 3.15 3.25 41.25 -0.780005 -0.490403 0.779991 1.61053 0.490338 -1.61049 0.0 +1903 3.15 3.25 48.75 -0.160056 -0.188506 0.160035 0.172817 0.188447 -0.172832 0.0 +1904 3.15 3.25 56.25 -0.197253 -0.356173 0.197337 0.156424 0.35612 -0.156432 0.0 +1905 3.15 3.25 63.75 -0.16741 -0.265816 0.167365 0.0571964 0.265815 -0.0571946 0.0 +1906 3.15 3.25 71.25 -0.130237 -0.184874 0.130267 0.00234427 0.184786 -0.0023759 0.0 +1907 3.15 3.25 78.75 -0.0843061 -0.129234 0.0843542 -0.022381 0.129426 0.0223457 0.0 +1908 3.15 3.25 86.25 -0.03979 -0.0657959 0.0398035 -0.0277737 0.0658759 0.0277741 0.0 +1909 3.15 3.25 93.75 -0.00238909 -0.00774928 0.00240125 -0.0282358 0.00785304 0.028235 0.0 +1910 3.15 3.25 101.25 0.0303823 0.0357636 -0.0303854 -0.0222829 -0.0356794 0.0222854 0.0 +1911 3.15 3.25 108.75 0.0506977 0.0585556 -0.0506894 -0.0102554 -0.0584086 0.0102105 0.0 +1912 3.15 3.25 116.25 0.0502104 0.0558613 -0.050186 0.00160465 -0.0559321 -0.00157822 0.0 +1913 3.15 3.25 123.75 0.0345455 0.035523 -0.0344902 0.0104005 -0.0355763 -0.0103987 0.0 +1914 3.15 3.25 131.25 0.0151486 0.0110531 -0.015251 0.0158941 -0.0112994 -0.0157901 0.0 +1915 3.15 3.25 138.75 -0.0050971 -0.013565 0.00511178 0.019016 0.013684 -0.0190174 0.0 +1916 3.15 3.25 146.25 -0.0345021 -0.0459216 0.0345176 0.0233695 0.0459787 -0.0233686 0.0 +1917 3.15 3.25 153.75 -0.0793413 -0.0928252 0.079314 0.0332493 0.092565 -0.033146 0.0 +1918 3.15 3.25 161.25 -0.134603 -0.150218 0.13452 0.0491025 0.150129 -0.0490542 0.0 +1919 3.15 3.25 168.75 -0.18553 -0.204163 0.185623 0.0660649 0.204474 -0.0662343 0.0 +1920 3.15 3.25 176.25 -0.216402 -0.237045 0.216252 0.0770174 0.237253 -0.0771667 0.0 +1921 3.15 3.35 3.75 -275.127 338.879 275.127 11754.8 -338.879 -11754.8 0.0 +1922 3.15 3.35 11.25 -149.928 134.982 149.928 3283.86 -134.982 -3283.86 0.0 +1923 3.15 3.35 18.75 -59.9126 24.6097 59.9126 901.613 -24.6098 -901.613 0.0 +1924 3.15 3.35 26.25 -17.3899 -3.93464 17.3899 190.736 3.93463 -190.736 0.0 +1925 3.15 3.35 33.75 -3.54567 -2.80737 3.54565 25.2257 2.80735 -25.2256 0.0 +1926 3.15 3.35 41.25 -0.5028 -0.297045 0.502764 1.39094 0.297079 -1.39098 0.0 +1927 3.15 3.35 48.75 -0.0786613 -0.21351 0.0785848 0.0781363 0.213592 -0.0781848 0.0 +1928 3.15 3.35 56.25 -0.0749822 -0.340141 0.0749439 0.0885512 0.340151 -0.0884967 0.0 +1929 3.15 3.35 63.75 -0.0903085 -0.233796 0.0902789 0.0251462 0.233735 -0.0251422 0.0 +1930 3.15 3.35 71.25 -0.0742191 -0.168217 0.0742917 -0.0123034 0.168118 0.0122774 0.0 +1931 3.15 3.35 78.75 -0.0442502 -0.131009 0.0441129 -0.0159319 0.131038 0.0159283 0.0 +1932 3.15 3.35 86.25 -0.0140131 -0.074057 0.0140325 -0.0175558 0.0741452 0.0175633 0.0 +1933 3.15 3.35 93.75 0.0107044 -0.016984 -0.0107096 -0.0224514 0.0169392 0.0224516 0.0 +1934 3.15 3.35 101.25 0.0273468 0.0283944 -0.0273571 -0.0182899 -0.0285471 0.0182767 0.0 +1935 3.15 3.35 108.75 0.0341621 0.05763 -0.0342268 -0.00978414 -0.0577058 0.00979257 0.0 +1936 3.15 3.35 116.25 0.0303908 0.0623219 -0.030319 -0.00386081 -0.0623156 0.00386282 0.0 +1937 3.15 3.35 123.75 0.0193498 0.0473473 -0.0192958 0.00117491 -0.0471971 -0.0012989 0.0 +1938 3.15 3.35 131.25 0.00780853 0.0276758 -0.00776157 0.00608841 -0.0275645 -0.00615459 0.0 +1939 3.15 3.35 138.75 -0.00281951 0.00980171 0.0028173 0.00899561 -0.0103754 -0.00875617 0.0 +1940 3.15 3.35 146.25 -0.0177849 -0.0122083 0.0178591 0.0111587 0.0120863 -0.0110729 0.0 +1941 3.15 3.35 153.75 -0.0428755 -0.0468128 0.0427986 0.0164875 0.0467219 -0.0164577 0.0 +1942 3.15 3.35 161.25 -0.0757418 -0.0922436 0.0757394 0.0263114 0.0922185 -0.0263166 0.0 +1943 3.15 3.35 168.75 -0.107642 -0.136426 0.107584 0.0374315 0.136228 -0.0373364 0.0 +1944 3.15 3.35 176.25 -0.127132 -0.16362 0.127062 0.0447389 0.163558 -0.0447096 0.0 +1945 3.15 3.45 3.75 46.6657 326.302 -46.6657 5480.32 -326.302 -5480.32 0.0 +1946 3.15 3.45 11.25 39.3764 154.267 -39.3764 1815.17 -154.267 -1815.17 0.0 +1947 3.15 3.45 18.75 22.0244 42.3138 -22.0244 505.91 -42.3138 -505.91 0.0 +1948 3.15 3.45 26.25 7.29371 4.3406 -7.29372 105.668 -4.3406 -105.668 0.0 +1949 3.15 3.45 33.75 0.914334 -0.603679 -0.914334 13.7287 0.603677 -13.7287 0.0 +1950 3.15 3.45 41.25 -0.158065 -0.0326246 0.158056 0.711344 0.0326778 -0.711315 0.0 +1951 3.15 3.45 48.75 -0.0159738 -0.166204 0.0159671 0.0133403 0.16615 -0.0133219 0.0 +1952 3.15 3.45 56.25 -0.00488119 -0.253233 0.00491148 0.0471634 0.253244 -0.0471562 0.0 +1953 3.15 3.45 63.75 -0.0387289 -0.159738 0.0387929 0.00737726 0.159718 -0.00733701 0.0 +1954 3.15 3.45 71.25 -0.0342167 -0.123108 0.0342095 -0.0134089 0.123119 0.0133794 0.0 +1955 3.15 3.45 78.75 -0.0183889 -0.107233 0.0183971 -0.00702141 0.10719 0.00700092 0.0 +1956 3.15 3.45 86.25 -0.00224304 -0.0672358 0.00223149 -0.00740458 0.06732 0.00740179 0.0 +1957 3.15 3.45 93.75 0.00883338 -0.0235886 -0.00886164 -0.0107045 0.0235433 0.0107089 0.0 +1958 3.15 3.45 101.25 0.0123235 0.015828 -0.012348 -0.00762384 -0.0158064 0.00760398 0.0 +1959 3.15 3.45 108.75 0.0118714 0.0452165 -0.0118843 -0.00509858 -0.0451645 0.00505638 0.0 +1960 3.15 3.45 116.25 0.00859034 0.0531575 -0.00865278 -0.00443542 -0.0532255 0.00444204 0.0 +1961 3.15 3.45 123.75 0.00258788 0.0423716 -0.00256692 -0.00117868 -0.0424366 0.00121603 0.0 +1962 3.15 3.45 131.25 -0.00267606 0.0273421 0.00253797 0.00313079 -0.0273467 -0.00313102 0.0 +1963 3.15 3.45 138.75 -0.00458018 0.0145732 0.00460276 0.00490419 -0.0145389 -0.00492224 0.0 +1964 3.15 3.45 146.25 -0.00839922 -0.00315912 0.00836753 0.00593978 0.00307101 -0.00589991 0.0 +1965 3.15 3.45 153.75 -0.0209444 -0.0338477 0.020904 0.0108714 0.0337667 -0.0108179 0.0 +1966 3.15 3.45 161.25 -0.0433497 -0.0756648 0.043318 0.020838 0.0757092 -0.0208768 0.0 +1967 3.15 3.45 168.75 -0.0683875 -0.116448 0.0683041 0.0321496 0.116416 -0.0321632 0.0 +1968 3.15 3.45 176.25 -0.0847651 -0.141502 0.0847114 0.0395279 0.141475 -0.0394984 0.0 +1969 3.15 3.55 3.75 113.453 150.898 -113.453 1527.06 -150.898 -1527.06 0.0 +1970 3.15 3.55 11.25 75.6979 75.7027 -75.6979 574.861 -75.7027 -574.861 0.0 +1971 3.15 3.55 18.75 35.5664 22.022 -35.5664 161.502 -22.022 -161.502 0.0 +1972 3.15 3.55 26.25 10.941 2.87256 -10.941 32.6315 -2.87256 -32.6315 0.0 +1973 3.15 3.55 33.75 1.72278 0.0375193 -1.7228 3.93133 -0.0374953 -3.93134 0.0 +1974 3.15 3.55 41.25 0.0142898 0.108618 -0.0143047 0.136579 -0.108608 -0.136591 0.0 +1975 3.15 3.55 48.75 0.00816166 -0.0380896 -0.00814953 0.010256 0.0380813 -0.0102749 0.0 +1976 3.15 3.55 56.25 0.0124306 -0.0965177 -0.0124185 0.0389722 0.0965193 -0.0389853 0.0 +1977 3.15 3.55 63.75 -0.00596526 -0.0594462 0.00595775 0.0133454 0.0594234 -0.0133421 0.0 +1978 3.15 3.55 71.25 -0.00358192 -0.0502022 0.00356674 -0.001576 0.0502323 0.00155584 0.0 +1979 3.15 3.55 78.75 0.000427233 -0.0447805 -0.000397985 -0.000360659 0.0448087 0.000358663 0.0 +1980 3.15 3.55 86.25 0.00221954 -0.0289613 -0.00224103 0.000309741 0.0290046 -0.000307859 0.0 +1981 3.15 3.55 93.75 0.00167606 -0.0143391 -0.0016639 0.000808733 0.0143451 -0.000807743 0.0 +1982 3.15 3.55 101.25 0.00112826 0.001235 -0.00111313 0.000644257 -0.00118443 -0.000655222 0.0 +1983 3.15 3.55 108.75 0.00330286 0.0161835 -0.00328457 -0.00210868 -0.0161684 0.00210336 0.0 +1984 3.15 3.55 116.25 0.00487387 0.021415 -0.00489745 -0.00297998 -0.0214282 0.00298062 0.0 +1985 3.15 3.55 123.75 0.00293975 0.016899 -0.00293859 0.000267886 -0.0168868 -0.000264266 0.0 +1986 3.15 3.55 131.25 -0.000108452 0.0105143 0.000105308 0.0034128 -0.0105219 -0.00340601 0.0 +1987 3.15 3.55 138.75 -0.0019759 0.00532812 0.00199003 0.00354695 -0.00537804 -0.00353067 0.0 +1988 3.15 3.55 146.25 -0.00603215 -0.00319989 0.00603288 0.00350166 0.0031536 -0.00347955 0.0 +1989 3.15 3.55 153.75 -0.0177873 -0.0194322 0.017795 0.00752565 0.0194683 -0.00752983 0.0 +1990 3.15 3.55 161.25 -0.0380423 -0.0418389 0.038072 0.0161592 0.041823 -0.016153 0.0 +1991 3.15 3.55 168.75 -0.0604183 -0.0634358 0.0604406 0.025925 0.0634577 -0.0259272 0.0 +1992 3.15 3.55 176.25 -0.0751419 -0.0766462 0.0751429 0.0322594 0.0766293 -0.0322626 0.0 +1993 3.15 3.65 3.75 22.6045 15.6092 -22.6045 111.52 -15.6092 -111.52 0.0 +1994 3.15 3.65 11.25 14.9574 7.74254 -14.9574 45.5783 -7.74254 -45.5783 0.0 +1995 3.15 3.65 18.75 6.90511 1.96171 -6.90511 12.5917 -1.96171 -12.5917 0.0 +1996 3.15 3.65 26.25 2.1033 0.0752923 -2.1033 2.33462 -0.0752924 -2.33462 0.0 +1997 3.15 3.65 33.75 0.345582 -0.0501268 -0.345582 0.224112 0.0501278 -0.224114 0.0 +1998 3.15 3.65 41.25 0.0113715 0.0247154 -0.0113732 -0.00142732 -0.0247142 0.00142719 0.0 +1999 3.15 3.65 48.75 6.87534e-06 0.0140289 -8.51151e-06 0.00563543 -0.0140289 -0.00563605 0.0 +2000 3.15 3.65 56.25 0.00107984 0.0029724 -0.00108132 0.0085864 -0.00297002 -0.00858758 0.0 +2001 3.15 3.65 63.75 0.000469516 0.00270845 -0.000469271 0.00350089 -0.00271011 -0.00350175 0.0 +2002 3.15 3.65 71.25 0.00166924 0.00153728 -0.00167029 0.000471675 -0.00153501 -0.000472585 0.0 +2003 3.15 3.65 78.75 0.00174748 0.00147027 -0.00174735 0.000292892 -0.00147097 -0.000293091 0.0 +2004 3.15 3.65 86.25 0.000889203 0.00101364 -0.000888457 0.000849106 -0.00101254 -0.000849064 0.0 +2005 3.15 3.65 93.75 2.8391e-05 -0.000779719 -2.40476e-05 0.00107302 0.000781464 -0.0010731 0.0 +2006 3.15 3.65 101.25 0.000123662 -0.00119237 -0.000121972 0.000258462 0.00119287 -0.000258603 0.0 +2007 3.15 3.65 108.75 0.000918738 -7.37641e-05 -0.000914812 -0.00070731 7.40479e-05 0.000707953 0.0 +2008 3.15 3.65 116.25 0.00087327 0.000204194 -0.000871841 -0.000333298 -0.000200322 0.000333731 0.0 +2009 3.15 3.65 123.75 -0.000487938 -0.000958429 0.000488243 0.000977954 0.000952902 -0.000975387 0.0 +2010 3.15 3.65 131.25 -0.00192454 -0.00214305 0.00192471 0.00156629 0.00213806 -0.00156455 0.0 +2011 3.15 3.65 138.75 -0.00245031 -0.00237129 0.00244858 0.000874281 0.00237286 -0.000874291 0.0 +2012 3.15 3.65 146.25 -0.00267054 -0.00197417 0.00267194 -7.6905e-05 0.00197292 7.72814e-05 0.0 +2013 3.15 3.65 153.75 -0.00396803 -0.00167631 0.00396857 -7.83088e-05 0.00167684 7.95127e-05 0.0 +2014 3.15 3.65 161.25 -0.00685387 -0.0017756 0.00685877 0.001108 0.0017796 -0.00110938 0.0 +2015 3.15 3.65 168.75 -0.0103819 -0.00210183 0.0103815 0.00276801 0.00210519 -0.00277039 0.0 +2016 3.15 3.65 176.25 -0.0127948 -0.0023518 0.0127908 0.00391691 0.00234768 -0.00391514 0.0 +2017 3.25 2.55 3.75 -59.5545 -1160.49 59.5545 1973.77 1160.49 -1973.77 0.0 +2018 3.25 2.55 11.25 56.844 -883.608 -56.844 989.381 883.608 -989.381 0.0 +2019 3.25 2.55 18.75 150.984 -517.626 -150.984 245.884 517.626 -245.884 0.0 +2020 3.25 2.55 26.25 157.168 -217.116 -157.168 -29.2846 217.116 29.2846 0.0 +2021 3.25 2.55 33.75 104.452 -35.7233 -104.452 -62.8432 35.7233 62.8432 0.0 +2022 3.25 2.55 41.25 45.7976 43.3017 -45.7976 -37.3073 -43.3018 37.3072 0.0 +2023 3.25 2.55 48.75 9.60869 61.5692 -9.60866 -20.3111 -61.5692 20.3112 0.0 +2024 3.25 2.55 56.25 -4.20215 55.2685 4.20214 -17.2817 -55.2685 17.2817 0.0 +2025 3.25 2.55 63.75 -6.66487 44.7328 6.66491 -19.5438 -44.7328 19.5438 0.0 +2026 3.25 2.55 71.25 -6.50581 36.3932 6.50582 -21.044 -36.3932 21.044 0.0 +2027 3.25 2.55 78.75 -7.21586 29.4638 7.21588 -19.4803 -29.4638 19.4803 0.0 +2028 3.25 2.55 86.25 -8.72782 22.0388 8.72785 -15.2322 -22.0388 15.2322 0.0 +2029 3.25 2.55 93.75 -9.40848 13.7576 9.40845 -10.2135 -13.7576 10.2135 0.0 +2030 3.25 2.55 101.25 -7.64177 5.41324 7.64175 -6.28364 -5.41318 6.28364 0.0 +2031 3.25 2.55 108.75 -2.88942 -2.25162 2.88943 -4.15915 2.25161 4.15916 0.0 +2032 3.25 2.55 116.25 4.12591 -9.02031 -4.1259 -3.45148 9.02031 3.45149 0.0 +2033 3.25 2.55 123.75 11.9997 -14.9628 -11.9997 -3.35136 14.9629 3.35133 0.0 +2034 3.25 2.55 131.25 19.3907 -20.1146 -19.3907 -3.21822 20.1146 3.21823 0.0 +2035 3.25 2.55 138.75 25.4561 -24.4049 -25.456 -2.78061 24.4049 2.78061 0.0 +2036 3.25 2.55 146.25 29.9071 -27.7562 -29.9071 -2.05757 27.7562 2.05754 0.0 +2037 3.25 2.55 153.75 32.8539 -30.1787 -32.854 -1.20409 30.1786 1.2041 0.0 +2038 3.25 2.55 161.25 34.6093 -31.7823 -34.6093 -0.396587 31.7823 0.396598 0.0 +2039 3.25 2.55 168.75 35.53 -32.7268 -35.5301 0.221162 32.7267 -0.221124 0.0 +2040 3.25 2.55 176.25 35.9092 -33.157 -35.9092 0.553508 33.1571 -0.553511 0.0 +2041 3.25 2.65 3.75 -364.619 -1177.24 364.619 3261.15 1177.24 -3261.15 0.0 +2042 3.25 2.65 11.25 -170.944 -882.259 170.944 1601.98 882.259 -1601.98 0.0 +2043 3.25 2.65 18.75 7.97343 -512.971 -7.97344 473.428 512.971 -473.428 0.0 +2044 3.25 2.65 26.25 76.8197 -225.459 -76.8197 55.4429 225.459 -55.4429 0.0 +2045 3.25 2.65 33.75 63.1706 -60.3759 -63.1705 -25.1786 60.3759 25.1786 0.0 +2046 3.25 2.65 41.25 26.9972 9.4952 -26.9972 -17.0011 -9.4952 17.0011 0.0 +2047 3.25 2.65 48.75 3.21426 27.5458 -3.21427 -7.89242 -27.5458 7.89243 0.0 +2048 3.25 2.65 56.25 -4.19276 25.9514 4.19277 -7.71957 -25.9514 7.71956 0.0 +2049 3.25 2.65 63.75 -3.58514 20.9867 3.58512 -10.032 -20.9868 10.032 0.0 +2050 3.25 2.65 71.25 -1.8218 17.5583 1.82182 -11.0933 -17.5583 11.0933 0.0 +2051 3.25 2.65 78.75 -1.42207 15.0684 1.42209 -10.072 -15.0684 10.0719 0.0 +2052 3.25 2.65 86.25 -2.18006 12.0219 2.18006 -7.5761 -12.0219 7.57611 0.0 +2053 3.25 2.65 93.75 -2.7903 8.07822 2.79028 -4.90189 -8.07821 4.9019 0.0 +2054 3.25 2.65 101.25 -2.02796 3.78203 2.02793 -3.09994 -3.78201 3.09993 0.0 +2055 3.25 2.65 108.75 0.483472 -0.355942 -0.483506 -2.39117 0.355959 2.39116 0.0 +2056 3.25 2.65 116.25 4.21545 -4.19385 -4.21545 -2.34867 4.19387 2.34866 0.0 +2057 3.25 2.65 123.75 8.24608 -7.74498 -8.24604 -2.42106 7.74505 2.42104 0.0 +2058 3.25 2.65 131.25 11.8028 -10.9489 -11.8028 -2.27777 10.9489 2.27773 0.0 +2059 3.25 2.65 138.75 14.4961 -13.663 -14.4961 -1.85408 13.663 1.85407 0.0 +2060 3.25 2.65 146.25 16.276 -15.7727 -16.2759 -1.2414 15.7727 1.24142 0.0 +2061 3.25 2.65 153.75 17.2907 -17.2659 -17.2907 -0.574592 17.266 0.574543 0.0 +2062 3.25 2.65 161.25 17.7665 -18.2245 -17.7665 0.0269533 18.2244 -0.0269058 0.0 +2063 3.25 2.65 168.75 17.9306 -18.771 -17.9305 0.475387 18.7711 -0.475413 0.0 +2064 3.25 2.65 176.25 17.963 -19.0139 -17.9629 0.71373 19.0138 -0.713725 0.0 +2065 3.25 2.75 3.75 -650.81 -1112.84 650.81 4991.17 1112.84 -4991.17 0.0 +2066 3.25 2.75 11.25 -376.912 -814.423 376.912 2284.82 814.423 -2284.82 0.0 +2067 3.25 2.75 18.75 -117.877 -461.215 117.877 695.625 461.215 -695.625 0.0 +2068 3.25 2.75 26.25 8.67283 -200.478 -8.67283 127.828 200.478 -127.828 0.0 +2069 3.25 2.75 33.75 30.7578 -59.6663 -30.7577 1.67013 59.6663 -1.67014 0.0 +2070 3.25 2.75 41.25 14.4779 -3.75451 -14.4779 -5.11202 3.75449 5.112 0.0 +2071 3.25 2.75 48.75 0.564337 10.5362 -0.564367 -1.71911 -10.5363 1.71911 0.0 +2072 3.25 2.75 56.25 -2.87617 10.6345 2.87615 -3.06902 -10.6345 3.06903 0.0 +2073 3.25 2.75 63.75 -1.22692 8.54812 1.22688 -4.99683 -8.54813 4.99685 0.0 +2074 3.25 2.75 71.25 0.676625 7.54109 -0.676628 -5.57438 -7.5411 5.57438 0.0 +2075 3.25 2.75 78.75 1.26747 7.12286 -1.26752 -4.88162 -7.12286 4.88162 0.0 +2076 3.25 2.75 86.25 0.821253 6.2155 -0.821271 -3.51573 -6.2155 3.51573 0.0 +2077 3.25 2.75 93.75 0.269172 4.5723 -0.269183 -2.24524 -4.57233 2.24524 0.0 +2078 3.25 2.75 101.25 0.429798 2.5731 -0.429775 -1.56964 -2.57305 1.56964 0.0 +2079 3.25 2.75 108.75 1.51112 0.548777 -1.51111 -1.46189 -0.548758 1.46189 0.0 +2080 3.25 2.75 116.25 3.14107 -1.42811 -3.14111 -1.57905 1.428 1.57906 0.0 +2081 3.25 2.75 123.75 4.77902 -3.35524 -4.77897 -1.60881 3.35532 1.60877 0.0 +2082 3.25 2.75 131.25 6.0623 -5.14646 -6.06231 -1.42923 5.14643 1.42921 0.0 +2083 3.25 2.75 138.75 6.88223 -6.66178 -6.88228 -1.07207 6.66181 1.07204 0.0 +2084 3.25 2.75 146.25 7.29129 -7.80724 -7.29129 -0.62631 7.80721 0.626318 0.0 +2085 3.25 2.75 153.75 7.40168 -8.58128 -7.40163 -0.175775 8.58129 0.175784 0.0 +2086 3.25 2.75 161.25 7.33627 -9.05184 -7.33623 0.217137 9.05186 -0.217144 0.0 +2087 3.25 2.75 168.75 7.21123 -9.30667 -7.21121 0.506879 9.3067 -0.50691 0.0 +2088 3.25 2.75 176.25 7.12142 -9.41579 -7.12147 0.660755 9.41579 -0.660753 0.0 +2089 3.25 2.85 3.75 -874.718 -974.414 874.718 7259.84 974.414 -7259.84 0.0 +2090 3.25 2.85 11.25 -529.957 -697.024 529.957 2965.19 697.024 -2965.19 0.0 +2091 3.25 2.85 18.75 -210.49 -383.275 210.49 886.088 383.275 -886.088 0.0 +2092 3.25 2.85 26.25 -41.3105 -160.664 41.3105 182.067 160.664 -182.067 0.0 +2093 3.25 2.85 33.75 7.80209 -47.4025 -7.8021 18.2185 47.4025 -18.2185 0.0 +2094 3.25 2.85 41.25 6.66425 -6.22131 -6.66427 0.514926 6.22131 -0.514937 0.0 +2095 3.25 2.85 48.75 -0.257506 3.34457 0.257528 0.598091 -3.34461 -0.598088 0.0 +2096 3.25 2.85 56.25 -1.60108 3.68626 1.60109 -1.12836 -3.68629 1.12836 0.0 +2097 3.25 2.85 63.75 -0.0562389 2.92276 0.0562531 -2.4777 -2.92278 2.47769 0.0 +2098 3.25 2.85 71.25 1.34259 2.85177 -1.34259 -2.68723 -2.85177 2.68723 0.0 +2099 3.25 2.85 78.75 1.78217 3.08196 -1.7822 -2.22735 -3.08197 2.22735 0.0 +2100 3.25 2.85 86.25 1.51729 2.94458 -1.51724 -1.5416 -2.94457 1.5416 0.0 +2101 3.25 2.85 93.75 1.11672 2.32415 -1.11672 -1.01515 -2.32408 1.01514 0.0 +2102 3.25 2.85 101.25 1.04827 1.48668 -1.04823 -0.8323 -1.48656 0.832297 0.0 +2103 3.25 2.85 108.75 1.38957 0.621054 -1.38956 -0.889911 -0.621024 0.889912 0.0 +2104 3.25 2.85 116.25 1.89694 -0.261405 -1.89687 -0.969374 0.26136 0.969375 0.0 +2105 3.25 2.85 123.75 2.30175 -1.1663 -2.3017 -0.931747 1.16616 0.931784 0.0 +2106 3.25 2.85 131.25 2.49539 -2.02222 -2.49531 -0.76339 2.02229 0.763392 0.0 +2107 3.25 2.85 138.75 2.50552 -2.72913 -2.50545 -0.516076 2.72907 0.516141 0.0 +2108 3.25 2.85 146.25 2.39795 -3.23443 -2.39795 -0.243855 3.23438 0.243866 0.0 +2109 3.25 2.85 153.75 2.22514 -3.55264 -2.22503 0.0183988 3.55282 -0.0184731 0.0 +2110 3.25 2.85 161.25 2.02888 -3.73535 -2.02881 0.247142 3.73533 -0.247116 0.0 +2111 3.25 2.85 168.75 1.85569 -3.83283 -1.85573 0.419517 3.83292 -0.419559 0.0 +2112 3.25 2.85 176.25 1.75351 -3.87538 -1.75346 0.513033 3.87536 -0.513003 0.0 +2113 3.25 2.95 3.75 -994.675 -761.925 994.675 10167.8 761.925 -10167.8 0.0 +2114 3.25 2.95 11.25 -604.142 -541.804 604.142 3540.59 541.804 -3540.59 0.0 +2115 3.25 2.95 18.75 -258.167 -293.834 258.167 1019.93 293.834 -1019.93 0.0 +2116 3.25 2.95 26.25 -69.6148 -118.714 69.6148 215.024 118.714 -215.024 0.0 +2117 3.25 2.95 33.75 -5.90221 -32.9966 5.90223 26.311 32.9965 -26.3109 0.0 +2118 3.25 2.95 41.25 2.25602 -4.6363 -2.256 2.23549 4.63633 -2.23548 0.0 +2119 3.25 2.95 48.75 -0.381153 0.893766 0.381197 0.984491 -0.893795 -0.984484 0.0 +2120 3.25 2.95 56.25 -0.837566 1.03175 0.837613 -0.404101 -1.03172 0.404103 0.0 +2121 3.25 2.95 63.75 0.175542 0.816121 -0.175492 -1.20167 -0.816067 1.20172 0.0 +2122 3.25 2.95 71.25 0.973076 0.964456 -0.973105 -1.22149 -0.964472 1.22153 0.0 +2123 3.25 2.95 78.75 1.22755 1.20413 -1.22756 -0.952588 -1.20413 0.952604 0.0 +2124 3.25 2.95 86.25 1.11328 1.21193 -1.11325 -0.647389 -1.21189 0.647396 0.0 +2125 3.25 2.95 93.75 0.908821 0.978321 -0.908822 -0.460875 -0.978329 0.460874 0.0 +2126 3.25 2.95 101.25 0.833653 0.675263 -0.833527 -0.437086 -0.675046 0.437092 0.0 +2127 3.25 2.95 108.75 0.892478 0.384331 -0.892482 -0.487806 -0.384525 0.487835 0.0 +2128 3.25 2.95 116.25 0.941912 0.0767676 -0.941915 -0.503087 -0.0768796 0.50313 0.0 +2129 3.25 2.95 123.75 0.880255 -0.264114 -0.880225 -0.441399 0.264088 0.441378 0.0 +2130 3.25 2.95 131.25 0.721429 -0.593478 -0.721462 -0.324258 0.59346 0.324254 0.0 +2131 3.25 2.95 138.75 0.529658 -0.854889 -0.529654 -0.187313 0.854907 0.187341 0.0 +2132 3.25 2.95 146.25 0.343385 -1.03082 -0.343423 -0.0495403 1.03079 0.0495952 0.0 +2133 3.25 2.95 153.75 0.166185 -1.14208 -0.166078 0.084722 1.14224 -0.0847717 0.0 +2134 3.25 2.95 161.25 -0.0023326 -1.21841 0.00240849 0.210111 1.21855 -0.210151 0.0 +2135 3.25 2.95 168.75 -0.143824 -1.27394 0.143828 0.311754 1.27397 -0.311766 0.0 +2136 3.25 2.95 176.25 -0.226551 -1.30554 0.226594 0.369648 1.30568 -0.369696 0.0 +2137 3.25 3.05 3.75 -978.964 -476.941 978.964 13691.9 476.941 -13691.9 0.0 +2138 3.25 3.05 11.25 -585.6 -358.907 585.6 3897.55 358.907 -3897.55 0.0 +2139 3.25 3.05 18.75 -256.707 -201.647 256.707 1079.65 201.647 -1079.65 0.0 +2140 3.25 3.05 26.25 -76.2438 -81.0977 76.2438 226.645 81.0977 -226.645 0.0 +2141 3.25 3.05 33.75 -11.5833 -21.1654 11.5832 28.5061 21.1655 -28.5061 0.0 +2142 3.25 3.05 41.25 0.173619 -2.61963 -0.173607 2.10869 2.61962 -2.10865 0.0 +2143 3.25 3.05 48.75 -0.315471 0.211809 0.315507 0.701655 -0.211816 -0.701697 0.0 +2144 3.25 3.05 56.25 -0.505868 0.156217 0.505813 -0.107758 -0.156216 0.107744 0.0 +2145 3.25 3.05 63.75 -0.00347947 0.148027 0.00347438 -0.508426 -0.147997 0.508423 0.0 +2146 3.25 3.05 71.25 0.35623 0.275174 -0.356316 -0.485913 -0.275183 0.485916 0.0 +2147 3.25 3.05 78.75 0.491691 0.385673 -0.491641 -0.368162 -0.385769 0.368161 0.0 +2148 3.25 3.05 86.25 0.488401 0.383863 -0.48842 -0.257055 -0.383836 0.257051 0.0 +2149 3.25 3.05 93.75 0.440596 0.300647 -0.440558 -0.200164 -0.300597 0.200155 0.0 +2150 3.25 3.05 101.25 0.428503 0.226143 -0.428439 -0.201568 -0.226229 0.201576 0.0 +2151 3.25 3.05 108.75 0.433838 0.178273 -0.433894 -0.215213 -0.17832 0.215235 0.0 +2152 3.25 3.05 116.25 0.381927 0.115261 -0.381976 -0.200265 -0.115315 0.200286 0.0 +2153 3.25 3.05 123.75 0.250762 0.0199942 -0.250749 -0.152978 -0.0201082 0.153022 0.0 +2154 3.25 3.05 131.25 0.087112 -0.0827914 -0.0871943 -0.0925379 0.0827206 0.0925707 0.0 +2155 3.25 3.05 138.75 -0.059018 -0.166424 0.059112 -0.0336172 0.166526 0.0335871 0.0 +2156 3.25 3.05 146.25 -0.18052 -0.231382 0.180489 0.0245779 0.231091 -0.0244228 0.0 +2157 3.25 3.05 153.75 -0.295942 -0.294287 0.2959 0.0891166 0.294365 -0.089183 0.0 +2158 3.25 3.05 161.25 -0.414913 -0.365011 0.414927 0.159436 0.365193 -0.159527 0.0 +2159 3.25 3.05 168.75 -0.521941 -0.433475 0.521891 0.222797 0.433412 -0.22276 0.0 +2160 3.25 3.05 176.25 -0.586773 -0.476695 0.58675 0.260922 0.476694 -0.260927 0.0 +2161 3.25 3.15 3.75 -814.083 -137.448 814.083 17033 137.448 -17033 0.0 +2162 3.25 3.15 11.25 -477.018 -161.776 477.018 3948.26 161.776 -3948.26 0.0 +2163 3.25 3.15 18.75 -210.543 -111.957 210.543 1059.41 111.957 -1059.41 0.0 +2164 3.25 3.15 26.25 -64.7579 -49.5587 64.7579 219.45 49.5587 -219.45 0.0 +2165 3.25 3.15 33.75 -11.3607 -12.9491 11.3607 27.2729 12.9491 -27.2729 0.0 +2166 3.25 3.15 41.25 -0.501683 -1.37447 0.501697 1.5392 1.37448 -1.53919 0.0 +2167 3.25 3.15 48.75 -0.221118 -0.00415248 0.221156 0.373864 0.00412424 -0.373901 0.0 +2168 3.25 3.15 56.25 -0.358361 -0.136291 0.358397 0.0446509 0.136267 -0.0446373 0.0 +2169 3.25 3.15 63.75 -0.169006 -0.0774782 0.16899 -0.134807 0.0776033 0.134847 0.0 +2170 3.25 3.15 71.25 -0.0396525 0.000838949 0.0396204 -0.138164 -0.000965599 0.138113 0.0 +2171 3.25 3.15 78.75 0.0344374 0.0425985 -0.0344408 -0.11517 -0.0427499 0.115165 0.0 +2172 3.25 3.15 86.25 0.081184 0.0529524 -0.0811964 -0.089771 -0.0528817 0.0897804 0.0 +2173 3.25 3.15 93.75 0.109097 0.0469134 -0.109138 -0.0742976 -0.0469756 0.0743061 0.0 +2174 3.25 3.15 101.25 0.140882 0.0567832 -0.140845 -0.0701795 -0.056761 0.0701752 0.0 +2175 3.25 3.15 108.75 0.161799 0.0792193 -0.161837 -0.0654321 -0.0792445 0.0654376 0.0 +2176 3.25 3.15 116.25 0.136212 0.0826416 -0.136185 -0.0509834 -0.082549 0.0509852 0.0 +2177 3.25 3.15 123.75 0.0646484 0.0562433 -0.0646738 -0.0282995 -0.0561666 0.0282081 0.0 +2178 3.25 3.15 131.25 -0.0160401 0.016597 0.0162145 -0.00533023 -0.0166918 0.00541668 0.0 +2179 3.25 3.15 138.75 -0.0817391 -0.0230835 0.0817603 0.0141581 0.0232302 -0.0142084 0.0 +2180 3.25 3.15 146.25 -0.139744 -0.0669364 0.139812 0.0354497 0.0671282 -0.0355434 0.0 +2181 3.25 3.15 153.75 -0.209767 -0.126707 0.209696 0.0659929 0.126592 -0.0659876 0.0 +2182 3.25 3.15 161.25 -0.294722 -0.202261 0.294788 0.105695 0.202334 -0.105724 0.0 +2183 3.25 3.15 168.75 -0.376427 -0.2763 0.376427 0.144617 0.276396 -0.144692 0.0 +2184 3.25 3.15 176.25 -0.426876 -0.322774 0.42683 0.16886 0.322923 -0.168938 0.0 +2185 3.25 3.25 3.75 -516.093 207.353 516.093 17519 -207.353 -17519 0.0 +2186 3.25 3.25 11.25 -297.818 30.2999 297.818 3670.93 -30.2999 -3670.93 0.0 +2187 3.25 3.25 18.75 -131.533 -29.3583 131.533 966.016 29.3582 -966.016 0.0 +2188 3.25 3.25 26.25 -41.2561 -23.5547 41.2561 197.399 23.5547 -197.399 0.0 +2189 3.25 3.25 33.75 -7.77181 -7.42064 7.77175 24.324 7.42059 -24.3239 0.0 +2190 3.25 3.25 41.25 -0.520054 -0.786867 0.520059 1.16473 0.786915 -1.16475 0.0 +2191 3.25 3.25 48.75 -0.135385 -0.107324 0.135384 0.176595 0.107322 -0.176651 0.0 +2192 3.25 3.25 56.25 -0.236403 -0.233969 0.236341 0.100092 0.234021 -0.099998 0.0 +2193 3.25 3.25 63.75 -0.177344 -0.160255 0.177338 0.016127 0.160281 -0.0161542 0.0 +2194 3.25 3.25 71.25 -0.134993 -0.110418 0.134999 -0.0109067 0.110353 0.010913 0.0 +2195 3.25 3.25 78.75 -0.0950825 -0.0779897 0.0951253 -0.021928 0.077927 0.0219105 0.0 +2196 3.25 3.25 86.25 -0.0482799 -0.0371325 0.0482478 -0.0253972 0.0372349 0.0254039 0.0 +2197 3.25 3.25 93.75 -0.00935062 -0.00567433 0.00930825 -0.0233964 0.0056727 0.0233906 0.0 +2198 3.25 3.25 101.25 0.0268556 0.0229776 -0.0268747 -0.016636 -0.0229697 0.0166413 0.0 +2199 3.25 3.25 108.75 0.0559475 0.0486988 -0.0559577 -0.010512 -0.0487913 0.0105343 0.0 +2200 3.25 3.25 116.25 0.0599605 0.0541495 -0.0598537 -0.00538128 -0.0541128 0.00538138 0.0 +2201 3.25 3.25 123.75 0.0386584 0.0352012 -0.038683 0.00205185 -0.0351223 -0.00210039 0.0 +2202 3.25 3.25 131.25 0.0113902 0.00756233 -0.0112221 0.0099077 -0.00759024 -0.00983246 0.0 +2203 3.25 3.25 138.75 -0.0116709 -0.0175027 0.0116404 0.0150778 0.0175656 -0.0151232 0.0 +2204 3.25 3.25 146.25 -0.0379372 -0.0440118 0.0378931 0.0202482 0.0440189 -0.0202764 0.0 +2205 3.25 3.25 153.75 -0.0789016 -0.0826345 0.0789715 0.0309487 0.0826604 -0.0309747 0.0 +2206 3.25 3.25 161.25 -0.13326 -0.134571 0.133258 0.0482225 0.134355 -0.0481305 0.0 +2207 3.25 3.25 168.75 -0.185796 -0.186751 0.185766 0.0666972 0.186837 -0.0667545 0.0 +2208 3.25 3.25 176.25 -0.217924 -0.219808 0.217907 0.078575 0.219826 -0.0785566 0.0 +2209 3.25 3.35 3.75 -136.489 468.84 136.489 13261.2 -468.84 -13261.2 0.0 +2210 3.25 3.35 11.25 -76.3677 186.541 76.3677 3006.19 -186.541 -3006.19 0.0 +2211 3.25 3.35 18.75 -34.4387 38.7843 34.4388 785.234 -38.7843 -785.234 0.0 +2212 3.25 3.35 26.25 -12.2064 -2.42532 12.2063 158.413 2.42535 -158.413 0.0 +2213 3.25 3.35 33.75 -3.01753 -3.19124 3.01752 19.5862 3.19127 -19.5862 0.0 +2214 3.25 3.35 41.25 -0.376538 -0.403329 0.376502 0.965951 0.403384 -0.965979 0.0 +2215 3.25 3.35 48.75 -0.0663706 -0.151905 0.066354 0.0762885 0.151928 -0.0763483 0.0 +2216 3.25 3.35 56.25 -0.115811 -0.241426 0.115854 0.0757353 0.241441 -0.0756865 0.0 +2217 3.25 3.35 63.75 -0.10133 -0.1561 0.101333 0.0257088 0.156123 -0.0256754 0.0 +2218 3.25 3.35 71.25 -0.0830317 -0.123866 0.083011 0.00222966 0.123776 -0.00226914 0.0 +2219 3.25 3.35 78.75 -0.0648663 -0.0963338 0.0649114 -0.00193966 0.0962687 0.00191896 0.0 +2220 3.25 3.35 86.25 -0.0348832 -0.0452658 0.0348888 -0.00953403 0.0452114 0.00953002 0.0 +2221 3.25 3.35 93.75 -0.00930256 -0.00606384 0.00931036 -0.0124204 0.00592252 0.0124271 0.0 +2222 3.25 3.35 101.25 0.0100895 0.0236635 -0.0100704 -0.00601918 -0.0236457 0.00599972 0.0 +2223 3.25 3.35 108.75 0.0265883 0.0477513 -0.0265736 -0.00229502 -0.0475016 0.00223504 0.0 +2224 3.25 3.35 116.25 0.0315534 0.0512958 -0.0315658 -0.00201565 -0.0511774 0.00205073 0.0 +2225 3.25 3.35 123.75 0.0223392 0.0342892 -0.0222605 0.00148067 -0.0341723 -0.00152918 0.0 +2226 3.25 3.35 131.25 0.00941799 0.0153327 -0.00949539 0.00600099 -0.015387 -0.00602979 0.0 +2227 3.25 3.35 138.75 0.00192308 0.00676484 -0.0019709 0.00587968 -0.0067599 -0.00587268 0.0 +2228 3.25 3.35 146.25 -0.00390089 0.00228314 0.00390376 0.00216232 -0.00224221 -0.00219 0.0 +2229 3.25 3.35 153.75 -0.0157319 -0.00974298 0.0157634 0.000201998 0.00958756 -0.00010215 0.0 +2230 3.25 3.35 161.25 -0.0344272 -0.0332355 0.0345224 0.00245974 0.0332678 -0.00241767 0.0 +2231 3.25 3.35 168.75 -0.0539332 -0.0604648 0.0538857 0.00692496 0.0604662 -0.00693555 0.0 +2232 3.25 3.35 176.25 -0.0657833 -0.0784772 0.0659121 0.0101981 0.0784511 -0.0101316 0.0 +2233 3.25 3.45 3.75 160.753 453.103 -160.753 6268.16 -453.103 -6268.16 0.0 +2234 3.25 3.45 11.25 98.9204 211.866 -98.9204 1677.08 -211.866 -1677.08 0.0 +2235 3.25 3.45 18.75 41.6475 62.0615 -41.6475 437.04 -62.0615 -437.04 0.0 +2236 3.25 3.45 26.25 10.2776 8.85177 -10.2776 86.3962 -8.85176 -86.3962 0.0 +2237 3.25 3.45 33.75 0.665198 -0.0281349 -0.665216 10.5941 0.0281541 -10.5942 0.0 +2238 3.25 3.45 41.25 -0.225316 -0.0097665 0.225331 0.540446 0.00977707 -0.540423 0.0 +2239 3.25 3.45 48.75 -0.000555537 -0.138966 0.000568013 0.0245727 0.138941 -0.0245583 0.0 +2240 3.25 3.45 56.25 -0.0247081 -0.191676 0.0246253 0.0387653 0.191736 -0.0387721 0.0 +2241 3.25 3.45 63.75 -0.0406244 -0.104835 0.0405644 0.00218269 0.104904 -0.00218938 0.0 +2242 3.25 3.45 71.25 -0.0316041 -0.0868229 0.0315861 -0.00999292 0.086857 0.00997278 0.0 +2243 3.25 3.45 78.75 -0.0244453 -0.0766617 0.0244139 -0.00348801 0.076724 0.00349178 0.0 +2244 3.25 3.45 86.25 -0.00890648 -0.0447902 0.00892778 -0.00721057 0.0446984 0.00720699 0.0 +2245 3.25 3.45 93.75 0.00249213 -0.015882 -0.00250762 -0.00859341 0.0157787 0.00859132 0.0 +2246 3.25 3.45 101.25 0.00593138 0.0124111 -0.00596771 -0.00363029 -0.0123966 0.00362055 0.0 +2247 3.25 3.45 108.75 0.00849249 0.0372762 -0.00846232 -0.00245363 -0.0373616 0.0024942 0.0 +2248 3.25 3.45 116.25 0.00730472 0.0430354 -0.00734682 -0.00257204 -0.0430353 0.00254668 0.0 +2249 3.25 3.45 123.75 0.000252497 0.0319203 -0.000228003 0.00117018 -0.0317262 -0.00121273 0.0 +2250 3.25 3.45 131.25 -0.00509858 0.0202249 0.00511462 0.00424735 -0.0201591 -0.00429141 0.0 +2251 3.25 3.45 138.75 -0.00189225 0.0157697 0.00192964 0.00188411 -0.0157307 -0.00190094 0.0 +2252 3.25 3.45 146.25 0.00595475 0.0116431 -0.0059073 -0.0030478 -0.0116606 0.00308588 0.0 +2253 3.25 3.45 153.75 0.00984054 -0.000318014 -0.00985575 -0.00518825 0.000191851 0.00524895 0.0 +2254 3.25 3.45 161.25 0.00625952 -0.0201284 -0.00627072 -0.00318494 0.0201728 0.00314475 0.0 +2255 3.25 3.45 168.75 -0.00150526 -0.0406308 0.00144698 0.000485931 0.0405933 -0.00047182 0.0 +2256 3.25 3.45 176.25 -0.00732316 -0.0533522 0.00734119 0.00300328 0.0532394 -0.0029465 0.0 +2257 3.25 3.55 3.75 170.017 215.704 -170.017 1682.14 -215.704 -1682.14 0.0 +2258 3.25 3.55 11.25 104.65 108.392 -104.65 523.152 -108.392 -523.152 0.0 +2259 3.25 3.55 18.75 44.2579 34.3622 -44.2579 134.428 -34.3622 -134.428 0.0 +2260 3.25 3.55 26.25 11.5313 6.21431 -11.5313 25.1215 -6.2143 -25.1215 0.0 +2261 3.25 3.55 33.75 1.18823 0.636226 -1.18825 2.77896 -0.636222 -2.77896 0.0 +2262 3.25 3.55 41.25 -0.090997 0.150717 0.0909756 0.0854078 -0.1507 -0.0854088 0.0 +2263 3.25 3.55 48.75 0.0364606 -0.051279 -0.0364402 0.0168919 0.0512661 -0.0168927 0.0 +2264 3.25 3.55 56.25 0.0111486 -0.090247 -0.0111456 0.0363843 0.090261 -0.0363792 0.0 +2265 3.25 3.55 63.75 -0.0105072 -0.0440459 0.0105073 0.00831444 0.0440284 -0.00831955 0.0 +2266 3.25 3.55 71.25 -0.00433658 -0.0361287 0.00434277 -0.00361399 0.0361351 0.00360689 0.0 +2267 3.25 3.55 78.75 -0.000933427 -0.0350331 0.000939583 -0.00100115 0.0350187 0.00100048 0.0 +2268 3.25 3.55 86.25 0.00219006 -0.0262185 -0.00219325 -0.00134055 0.0262088 0.0013392 0.0 +2269 3.25 3.55 93.75 0.00205156 -0.0171976 -0.00207372 -0.0011449 0.0171792 0.00114581 0.0 +2270 3.25 3.55 101.25 0.000259054 -0.00345069 -0.000235304 -0.00113486 0.00346766 0.00114093 0.0 +2271 3.25 3.55 108.75 0.00134517 0.0104896 -0.0013327 -0.00307345 -0.0104784 0.00307104 0.0 +2272 3.25 3.55 116.25 0.00233262 0.0144818 -0.00234223 -0.00230586 -0.0144733 0.00230359 0.0 +2273 3.25 3.55 123.75 0.00096001 0.00998525 -0.000959656 0.00167455 -0.00992985 -0.00169886 0.0 +2274 3.25 3.55 131.25 0.0010997 0.00500791 -0.00110082 0.00353768 -0.00496742 -0.00356791 0.0 +2275 3.25 3.55 138.75 0.00487751 0.00146684 -0.00487922 0.00142544 -0.00148711 -0.00141137 0.0 +2276 3.25 3.55 146.25 0.00734264 -0.00446313 -0.00734662 -0.000638225 0.00441882 0.000652058 0.0 +2277 3.25 3.55 153.75 0.00197693 -0.014869 -0.00196668 0.0013558 0.0148847 -0.00135051 0.0 +2278 3.25 3.55 161.25 -0.0121606 -0.0275418 0.0121409 0.00720885 0.027516 -0.00721154 0.0 +2279 3.25 3.55 168.75 -0.029033 -0.0382301 0.0290399 0.0137359 0.0382374 -0.01375 0.0 +2280 3.25 3.55 176.25 -0.0403659 -0.0441543 0.0403287 0.0177986 0.0441199 -0.0177946 0.0 +2281 3.25 3.65 3.75 29.8469 23.7536 -29.8469 114.399 -23.7536 -114.399 0.0 +2282 3.25 3.65 11.25 18.5821 12.1922 -18.5821 38.9798 -12.1922 -38.9798 0.0 +2283 3.25 3.65 18.75 7.82427 3.7514 -7.82427 9.32709 -3.7514 -9.32709 0.0 +2284 3.25 3.65 26.25 2.01633 0.610607 -2.01633 1.41075 -0.610606 -1.41076 0.0 +2285 3.25 3.65 33.75 0.207925 0.0661693 -0.207923 0.0650148 -0.0661712 -0.0650166 0.0 +2286 3.25 3.65 41.25 -0.0109411 0.0374143 0.0109448 -0.0172484 -0.0374174 0.0172482 0.0 +2287 3.25 3.65 48.75 0.00854362 0.00771035 -0.00854147 0.00574961 -0.00770984 -0.00574854 0.0 +2288 3.25 3.65 56.25 0.00259756 -0.00264422 -0.00260097 0.00942854 0.00264499 -0.00942948 0.0 +2289 3.25 3.65 63.75 -0.000120554 0.00078573 0.00012058 0.00313857 -0.000784598 -0.00313891 0.0 +2290 3.25 3.65 71.25 0.00248101 0.00185637 -0.00248337 0.000268246 -0.00186001 -0.000268224 0.0 +2291 3.25 3.65 78.75 0.00307847 0.00208771 -0.00307844 0.000606822 -0.00209071 -0.000606483 0.0 +2292 3.25 3.65 86.25 0.00187174 0.00124659 -0.00186937 0.00095551 -0.00124275 -0.000955129 0.0 +2293 3.25 3.65 93.75 6.19913e-05 -0.000371204 -6.04736e-05 0.000563209 0.000365014 -0.000562734 0.0 +2294 3.25 3.65 101.25 -0.000928172 -0.000436879 0.000926995 -0.00063032 0.000434748 0.000630276 0.0 +2295 3.25 3.65 108.75 -0.000830659 0.000473082 0.000832415 -0.00140972 -0.00047285 0.00140969 0.0 +2296 3.25 3.65 116.25 -0.000942827 0.000407146 0.00094397 -0.000633585 -0.000410022 0.000634706 0.0 +2297 3.25 3.65 123.75 -0.00166283 -0.000582597 0.001662 0.000718962 0.000586269 -0.000719648 0.0 +2298 3.25 3.65 131.25 -0.00204479 -0.00128755 0.00204388 0.000938967 0.00128792 -0.000939369 0.0 +2299 3.25 3.65 138.75 -0.00182542 -0.00123409 0.00182692 -0.000123482 0.00123642 0.000123147 0.0 +2300 3.25 3.65 146.25 -0.00225266 -0.000702446 0.00225351 -0.00119521 0.000700296 0.00119733 0.0 +2301 3.25 3.65 153.75 -0.00470753 0.000107114 0.0047067 -0.00120089 -0.000106024 0.00120018 0.0 +2302 3.25 3.65 161.25 -0.00916233 0.00120265 0.0091593 -0.000139049 -0.00120213 0.000137897 0.0 +2303 3.25 3.65 168.75 -0.0140233 0.0024012 0.0140238 0.00124784 -0.00240054 -0.00124848 0.0 +2304 3.25 3.65 176.25 -0.0171689 0.00321938 0.0171732 0.00216427 -0.00322149 -0.00216221 0.0 +2305 3.35 2.55 3.75 -195.276 -1032.14 195.276 1295.85 1032.14 -1295.85 0.0 +2306 3.35 2.55 11.25 -99.2481 -778.391 99.2481 692.781 778.391 -692.781 0.0 +2307 3.35 2.55 18.75 -6.65643 -434.466 6.65643 206.152 434.466 -206.152 0.0 +2308 3.35 2.55 26.25 25.3003 -148.262 -25.3003 18.5522 148.262 -18.5522 0.0 +2309 3.35 2.55 33.75 11.0692 22.9807 -11.0692 -10.9237 -22.9807 10.9237 0.0 +2310 3.35 2.55 41.25 -11.4134 92.7283 11.4135 -6.39065 -92.7283 6.39065 0.0 +2311 3.35 2.55 48.75 -20.2925 102.13 20.2925 -10.1964 -102.13 10.1964 0.0 +2312 3.35 2.55 56.25 -15.5576 88.407 15.5576 -21.035 -88.4069 21.035 0.0 +2313 3.35 2.55 63.75 -6.26392 72.4403 6.2639 -30.0768 -72.4402 30.0768 0.0 +2314 3.35 2.55 71.25 0.338232 60.0655 -0.338249 -32.7453 -60.0655 32.7453 0.0 +2315 3.35 2.55 78.75 1.98951 49.4255 -1.98942 -28.9805 -49.4255 28.9805 0.0 +2316 3.35 2.55 86.25 0.388913 37.8715 -0.388957 -21.6256 -37.8715 21.6256 0.0 +2317 3.35 2.55 93.75 -1.06672 24.8252 1.06667 -14.3056 -24.8253 14.3056 0.0 +2318 3.35 2.55 101.25 0.391277 11.1758 -0.391251 -9.35123 -11.1758 9.35124 0.0 +2319 3.35 2.55 108.75 5.52125 -2.10395 -5.52124 -7.05211 2.10392 7.05212 0.0 +2320 3.35 2.55 116.25 13.2016 -14.4695 -13.2016 -6.36669 14.4695 6.36669 0.0 +2321 3.35 2.55 123.75 21.5401 -25.5906 -21.5401 -6.05939 25.5905 6.0594 0.0 +2322 3.35 2.55 131.25 28.9456 -35.1239 -28.9457 -5.38465 35.1239 5.38469 0.0 +2323 3.35 2.55 138.75 34.5957 -42.757 -34.5957 -4.17193 42.757 4.17195 0.0 +2324 3.35 2.55 146.25 38.3688 -48.3714 -38.3688 -2.60245 48.3714 2.60243 0.0 +2325 3.35 2.55 153.75 40.566 -52.1207 -40.566 -0.967925 52.1205 0.967988 0.0 +2326 3.35 2.55 161.25 41.6506 -54.3691 -41.6506 0.469012 54.3691 -0.468989 0.0 +2327 3.35 2.55 168.75 42.0782 -55.5528 -42.0782 1.52064 55.5528 -1.52067 0.0 +2328 3.35 2.55 176.25 42.1981 -56.041 -42.1981 2.0729 56.0409 -2.0729 0.0 +2329 3.35 2.65 3.75 -419.098 -1076.13 419.098 2153.24 1076.13 -2153.24 0.0 +2330 3.35 2.65 11.25 -264.945 -806.91 264.945 1138.5 806.91 -1138.5 0.0 +2331 3.35 2.65 18.75 -104.618 -457.574 104.618 379.324 457.574 -379.324 0.0 +2332 3.35 2.65 26.25 -21.9706 -179.872 21.9706 82.5542 179.872 -82.5542 0.0 +2333 3.35 2.65 33.75 -6.05842 -20.7051 6.05842 16.3126 20.7051 -16.3126 0.0 +2334 3.35 2.65 41.25 -13.3029 42.8912 13.3029 8.09772 -42.8912 -8.09772 0.0 +2335 3.35 2.65 48.75 -15.6897 54.0943 15.6897 0.0182538 -54.0943 -0.0182479 0.0 +2336 3.35 2.65 56.25 -9.08183 46.7632 9.08183 -10.6957 -46.7632 10.6957 0.0 +2337 3.35 2.65 63.75 0.136459 38.1374 -0.136456 -17.9284 -38.1374 17.9284 0.0 +2338 3.35 2.65 71.25 6.42034 32.5591 -6.42031 -19.5836 -32.5591 19.5836 0.0 +2339 3.35 2.65 78.75 8.18095 28.2195 -8.18103 -16.7768 -28.2195 16.7768 0.0 +2340 3.35 2.65 86.25 6.86543 22.8055 -6.86542 -12.0332 -22.8055 12.0332 0.0 +2341 3.35 2.65 93.75 5.15555 15.8036 -5.15553 -7.84684 -15.8036 7.84684 0.0 +2342 3.35 2.65 101.25 5.16175 7.93989 -5.16173 -5.47191 -7.93991 5.47192 0.0 +2343 3.35 2.65 108.75 7.39932 -0.00491049 -7.39931 -4.70878 0.00495997 4.70878 0.0 +2344 3.35 2.65 116.25 11.02 -7.59843 -11.02 -4.63522 7.59841 4.63521 0.0 +2345 3.35 2.65 123.75 14.7619 -14.5482 -14.7618 -4.43686 14.5482 4.43688 0.0 +2346 3.35 2.65 131.25 17.7243 -20.5254 -17.7243 -3.76779 20.5254 3.7678 0.0 +2347 3.35 2.65 138.75 19.587 -25.2345 -19.587 -2.6757 25.2346 2.67568 0.0 +2348 3.35 2.65 146.25 20.4495 -28.5646 -20.4495 -1.38054 28.5646 1.38055 0.0 +2349 3.35 2.65 153.75 20.5999 -30.6433 -20.5999 -0.109613 30.6433 0.109611 0.0 +2350 3.35 2.65 161.25 20.3618 -31.7671 -20.3618 0.96685 31.767 -0.966847 0.0 +2351 3.35 2.65 168.75 20.022 -32.2781 -20.022 1.7383 32.278 -1.73826 0.0 +2352 3.35 2.65 176.25 19.7947 -32.4568 -19.7946 2.13939 32.4568 -2.13939 0.0 +2353 3.35 2.75 3.75 -623.075 -1035.97 623.075 3278.31 1035.97 -3278.31 0.0 +2354 3.35 2.75 11.25 -410.652 -765.022 410.652 1641.05 765.022 -1641.05 0.0 +2355 3.35 2.75 18.75 -187.486 -428.713 187.486 547.291 428.713 -547.291 0.0 +2356 3.35 2.75 26.25 -59.4311 -173.568 59.4311 133.12 173.568 -133.12 0.0 +2357 3.35 2.75 33.75 -17.2303 -35.1265 17.2302 31.786 35.1264 -31.786 0.0 +2358 3.35 2.75 41.25 -12.1098 17.1178 12.1099 13.8192 -17.1178 -13.8193 0.0 +2359 3.35 2.75 48.75 -10.4656 26.5604 10.4656 3.88378 -26.5604 -3.88377 0.0 +2360 3.35 2.75 56.25 -4.13597 22.6167 4.136 -5.48779 -22.6166 5.48779 0.0 +2361 3.35 2.75 63.75 3.31091 18.3493 -3.31091 -10.6986 -18.3493 10.6986 0.0 +2362 3.35 2.75 71.25 8.14692 16.4609 -8.14686 -11.4323 -16.4609 11.4323 0.0 +2363 3.35 2.75 78.75 9.44923 15.3065 -9.44926 -9.35408 -15.3065 9.35408 0.0 +2364 3.35 2.75 86.25 8.34302 13.115 -8.34302 -6.45209 -13.115 6.45209 0.0 +2365 3.35 2.75 93.75 6.73127 9.59264 -6.73125 -4.25534 -9.59267 4.25533 0.0 +2366 3.35 2.75 101.25 6.04641 5.36361 -6.04642 -3.28804 -5.36363 3.28804 0.0 +2367 3.35 2.75 108.75 6.5681 1.00824 -6.56803 -3.16383 -1.00821 3.16382 0.0 +2368 3.35 2.75 116.25 7.69424 -3.1996 -7.69426 -3.20291 3.19971 3.20288 0.0 +2369 3.35 2.75 123.75 8.6827 -7.07441 -8.68271 -2.95679 7.07435 2.9568 0.0 +2370 3.35 2.75 131.25 9.13874 -10.3765 -9.13876 -2.33529 10.3765 2.3353 0.0 +2371 3.35 2.75 138.75 9.04359 -12.8901 -9.04363 -1.46655 12.8901 1.46658 0.0 +2372 3.35 2.75 146.25 8.56433 -14.5486 -8.56434 -0.526226 14.5485 0.526253 0.0 +2373 3.35 2.75 153.75 7.89764 -15.464 -7.89766 0.348926 15.464 -0.348943 0.0 +2374 3.35 2.75 161.25 7.21578 -15.8591 -7.2158 1.07115 15.859 -1.0711 0.0 +2375 3.35 2.75 168.75 6.66389 -15.9703 -6.6639 1.58421 15.9702 -1.5842 0.0 +2376 3.35 2.75 176.25 6.3556 -15.9786 -6.35561 1.85074 15.9787 -1.85078 0.0 +2377 3.35 2.85 3.75 -772.698 -919.877 772.698 4708.12 919.877 -4708.12 0.0 +2378 3.35 2.85 11.25 -511.822 -669.074 511.822 2155.18 669.074 -2155.18 0.0 +2379 3.35 2.85 18.75 -243.045 -367.941 243.045 691.364 367.941 -691.364 0.0 +2380 3.35 2.85 26.25 -83.2742 -147.185 83.2742 166.912 147.185 -166.912 0.0 +2381 3.35 2.85 33.75 -22.8244 -33.6483 22.8244 37.1489 33.6483 -37.1488 0.0 +2382 3.35 2.85 41.25 -9.53454 5.8483 9.53452 13.5783 -5.8483 -13.5783 0.0 +2383 3.35 2.85 48.75 -6.09018 12.291 6.09017 4.14913 -12.291 -4.14911 0.0 +2384 3.35 2.85 56.25 -1.26771 10.0666 1.26769 -3.04808 -10.0666 3.04809 0.0 +2385 3.35 2.85 63.75 3.7759 8.1959 -3.77587 -6.37734 -8.19594 6.37731 0.0 +2386 3.35 2.85 71.25 6.89166 7.92994 -6.89164 -6.4809 -7.92993 6.48089 0.0 +2387 3.35 2.85 78.75 7.67029 7.93236 -7.67027 -5.01743 -7.93236 5.01743 0.0 +2388 3.35 2.85 86.25 6.86704 7.07559 -6.86708 -3.3556 -7.07557 3.3556 0.0 +2389 3.35 2.85 93.75 5.65228 5.32847 -5.65231 -2.30528 -5.32852 2.30528 0.0 +2390 3.35 2.85 101.25 4.87116 3.215 -4.87125 -1.98423 -3.21505 1.98422 0.0 +2391 3.35 2.85 108.75 4.63041 1.1067 -4.6304 -2.02318 -1.10679 2.0232 0.0 +2392 3.35 2.85 116.25 4.54443 -0.892094 -4.54436 -2.003 0.892026 2.00303 0.0 +2393 3.35 2.85 123.75 4.25373 -2.7196 -4.25376 -1.73147 2.7196 1.73148 0.0 +2394 3.35 2.85 131.25 3.67676 -4.24518 -3.67683 -1.23922 4.24515 1.23922 0.0 +2395 3.35 2.85 138.75 2.92527 -5.34331 -2.92524 -0.644988 5.34322 0.64504 0.0 +2396 3.35 2.85 146.25 2.13491 -5.99066 -2.135 -0.0510476 5.99066 0.051009 0.0 +2397 3.35 2.85 153.75 1.39275 -6.27569 -1.39282 0.483407 6.27566 -0.483401 0.0 +2398 3.35 2.85 161.25 0.754236 -6.34028 -0.754226 0.924147 6.34015 -0.924067 0.0 +2399 3.35 2.85 168.75 0.275676 -6.31398 -0.275689 1.24213 6.314 -1.24219 0.0 +2400 3.35 2.85 176.25 0.0164689 -6.28159 -0.0164513 1.40997 6.28154 -1.40995 0.0 +2401 3.35 2.95 3.75 -834.912 -728.644 834.912 6476.41 728.644 -6476.41 0.0 +2402 3.35 2.95 11.25 -547.497 -530.188 547.497 2613.47 530.188 -2613.47 0.0 +2403 3.35 2.95 18.75 -262.248 -290.02 262.248 793.304 290.02 -793.304 0.0 +2404 3.35 2.95 26.25 -91.3227 -113.901 91.3227 183.027 113.901 -183.027 0.0 +2405 3.35 2.95 33.75 -23.4608 -26.232 23.4608 35.3151 26.232 -35.3151 0.0 +2406 3.35 2.95 41.25 -6.66345 1.76515 6.66345 10.2484 -1.76515 -10.2484 0.0 +2407 3.35 2.95 48.75 -3.09293 5.49926 3.09291 2.9506 -5.49927 -2.95059 0.0 +2408 3.35 2.95 56.25 -0.128908 4.20301 0.128901 -1.8156 -4.20296 1.81563 0.0 +2409 3.35 2.95 63.75 2.69811 3.54905 -2.69809 -3.66338 -3.54904 3.66335 0.0 +2410 3.35 2.95 71.25 4.37067 3.76567 -4.37061 -3.47926 -3.76571 3.47927 0.0 +2411 3.35 2.95 78.75 4.78503 3.92124 -4.78501 -2.55161 -3.92135 2.55159 0.0 +2412 3.35 2.95 86.25 4.343 3.47426 -4.34301 -1.68279 -3.47427 1.6828 0.0 +2413 3.35 2.95 93.75 3.62999 2.57963 -3.62993 -1.22603 -2.57969 1.22603 0.0 +2414 3.35 2.95 101.25 3.06714 1.6304 -3.06715 -1.13714 -1.63033 1.13713 0.0 +2415 3.35 2.95 108.75 2.6714 0.806801 -2.67137 -1.16012 -0.806856 1.16013 0.0 +2416 3.35 2.95 116.25 2.22983 0.0794546 -2.22987 -1.08361 -0.0795543 1.0836 0.0 +2417 3.35 2.95 123.75 1.62198 -0.581679 -1.62197 -0.855095 0.581669 0.855109 0.0 +2418 3.35 2.95 131.25 0.911108 -1.12896 -0.911104 -0.532177 1.12888 0.532245 0.0 +2419 3.35 2.95 138.75 0.221326 -1.50232 -0.221315 -0.188004 1.50224 0.188057 0.0 +2420 3.35 2.95 146.25 -0.381126 -1.7 0.381078 0.137706 1.6999 -0.137646 0.0 +2421 3.35 2.95 153.75 -0.893851 -1.77735 0.893832 0.432684 1.77726 -0.432674 0.0 +2422 3.35 2.95 161.25 -1.32378 -1.80097 1.32382 0.687059 1.80096 -0.687066 0.0 +2423 3.35 2.95 168.75 -1.6499 -1.81175 1.64995 0.880202 1.81183 -0.880216 0.0 +2424 3.35 2.95 176.25 -1.82978 -1.81925 1.82977 0.985879 1.81919 -0.985873 0.0 +2425 3.35 3.05 3.75 -785.046 -461.717 785.046 8594.91 461.717 -8594.91 0.0 +2426 3.35 3.05 11.25 -505.888 -356.771 505.888 2934.01 356.771 -2934.01 0.0 +2427 3.35 3.05 18.75 -241.842 -203.918 241.842 839.22 203.918 -839.22 0.0 +2428 3.35 3.05 26.25 -83.9245 -81.0674 83.9245 182.984 81.0674 -182.984 0.0 +2429 3.35 3.05 33.75 -20.2141 -18.5085 20.2141 29.6979 18.5085 -29.6979 0.0 +2430 3.35 3.05 41.25 -4.1047 0.409433 4.10472 6.22641 -0.409475 -6.22641 0.0 +2431 3.35 3.05 48.75 -1.36284 2.35911 1.3628 1.60979 -2.35909 -1.60978 0.0 +2432 3.35 3.05 56.25 0.030431 1.62567 -0.030424 -1.01802 -1.6257 1.018 0.0 +2433 3.35 3.05 63.75 1.27646 1.51737 -1.27639 -1.88571 -1.51743 1.88574 0.0 +2434 3.35 3.05 71.25 2.00146 1.74382 -2.00153 -1.67715 -1.74388 1.67713 0.0 +2435 3.35 3.05 78.75 2.22947 1.7724 -2.22943 -1.1839 -1.77249 1.1839 0.0 +2436 3.35 3.05 86.25 2.09366 1.4585 -2.09372 -0.787813 -1.45856 0.787813 0.0 +2437 3.35 3.05 93.75 1.79746 1.00626 -1.79749 -0.60616 -1.00615 0.606162 0.0 +2438 3.35 3.05 101.25 1.51527 0.661229 -1.51529 -0.575074 -0.661245 0.575087 0.0 +2439 3.35 3.05 108.75 1.24058 0.468536 -1.24057 -0.561828 -0.468484 0.561787 0.0 +2440 3.35 3.05 116.25 0.876962 0.332896 -0.876938 -0.482689 -0.332964 0.482687 0.0 +2441 3.35 3.05 123.75 0.416156 0.186434 -0.416121 -0.336497 -0.18647 0.336515 0.0 +2442 3.35 3.05 131.25 -0.0499558 0.038764 0.0498225 -0.163924 -0.0389844 0.163982 0.0 +2443 3.35 3.05 138.75 -0.440256 -0.0796634 0.440301 0.00362958 0.0796422 -0.00361361 0.0 +2444 3.35 3.05 146.25 -0.749289 -0.169351 0.749274 0.161127 0.169574 -0.161167 0.0 +2445 3.35 3.05 153.75 -1.01485 -0.254878 1.01491 0.314525 0.254752 -0.314449 0.0 +2446 3.35 3.05 161.25 -1.25872 -0.351609 1.25877 0.460297 0.351661 -0.460329 0.0 +2447 3.35 3.05 168.75 -1.46132 -0.446415 1.46128 0.579664 0.446487 -0.579718 0.0 +2448 3.35 3.05 176.25 -1.5791 -0.506807 1.57912 0.64783 0.506772 -0.647769 0.0 +2449 3.35 3.15 3.75 -613.346 -128.944 613.346 10936.8 128.944 -10936.8 0.0 +2450 3.35 3.15 11.25 -388.42 -159.752 388.42 3039.67 159.752 -3039.67 0.0 +2451 3.35 3.15 18.75 -185.578 -114.971 185.578 822.812 114.971 -822.812 0.0 +2452 3.35 3.15 26.25 -64.0967 -51.2619 64.0967 169.928 51.2619 -169.928 0.0 +2453 3.35 3.15 33.75 -14.6003 -12.3908 14.6002 23.2626 12.3908 -23.2627 0.0 +2454 3.35 3.15 41.25 -2.15789 -0.18353 2.15785 3.0437 0.183543 -3.04367 0.0 +2455 3.35 3.15 48.75 -0.515911 0.863817 0.515956 0.688645 -0.863876 -0.688622 0.0 +2456 3.35 3.15 56.25 -0.10478 0.478921 0.1048 -0.434933 -0.478877 0.434918 0.0 +2457 3.35 3.15 63.75 0.278403 0.550597 -0.278425 -0.770867 -0.550582 0.770892 0.0 +2458 3.35 3.15 71.25 0.518182 0.679229 -0.518188 -0.658783 -0.679258 0.658773 0.0 +2459 3.35 3.15 78.75 0.661602 0.637382 -0.661573 -0.463196 -0.63745 0.463179 0.0 +2460 3.35 3.15 86.25 0.697289 0.449817 -0.697335 -0.319991 -0.449817 0.319985 0.0 +2461 3.35 3.15 93.75 0.640594 0.258804 -0.6406 -0.254833 -0.258796 0.254831 0.0 +2462 3.35 3.15 101.25 0.556527 0.18774 -0.556486 -0.235323 -0.187938 0.235367 0.0 +2463 3.35 3.15 108.75 0.446937 0.222191 -0.446909 -0.215213 -0.222297 0.215245 0.0 +2464 3.35 3.15 116.25 0.274348 0.26483 -0.274369 -0.168371 -0.264953 0.168437 0.0 +2465 3.35 3.15 123.75 0.0574631 0.256391 -0.0574175 -0.0982881 -0.25635 0.0982953 0.0 +2466 3.35 3.15 131.25 -0.138437 0.203868 0.138469 -0.0233365 -0.203754 0.023301 0.0 +2467 3.35 3.15 138.75 -0.278798 0.131654 0.27879 0.0462375 -0.131622 -0.0462824 0.0 +2468 3.35 3.15 146.25 -0.386441 0.0434165 0.386373 0.115347 -0.0435636 -0.115286 0.0 +2469 3.35 3.15 153.75 -0.50135 -0.0699762 0.50138 0.191887 0.0700475 -0.191868 0.0 +2470 3.35 3.15 161.25 -0.635272 -0.204478 0.635288 0.273074 0.204491 -0.273059 0.0 +2471 3.35 3.15 168.75 -0.76189 -0.331252 0.762029 0.343855 0.331256 -0.343819 0.0 +2472 3.35 3.15 176.25 -0.839967 -0.409418 0.839975 0.385429 0.409487 -0.385428 0.0 +2473 3.35 3.25 3.75 -331.119 235.647 331.119 12776.5 -235.647 -12776.5 0.0 +2474 3.35 3.25 11.25 -210.73 43.1724 210.73 2886.81 -43.1724 -2886.81 0.0 +2475 3.35 3.25 18.75 -103.557 -28.0167 103.557 746.774 28.0167 -746.774 0.0 +2476 3.35 3.25 26.25 -36.8542 -24.6146 36.8541 147.416 24.6146 -147.416 0.0 +2477 3.35 3.25 33.75 -8.31772 -7.63126 8.31767 17.7578 7.6313 -17.7578 0.0 +2478 3.35 3.25 41.25 -0.927756 -0.474989 0.927739 1.25145 0.474959 -1.25143 0.0 +2479 3.35 3.25 48.75 -0.171876 0.182322 0.171929 0.229436 -0.182338 -0.229375 0.0 +2480 3.35 3.25 56.25 -0.173447 -0.00784342 0.173479 -0.0821736 0.00784618 0.0821739 0.0 +2481 3.35 3.25 63.75 -0.109125 0.0713448 0.109065 -0.190602 -0.071458 0.190586 0.0 +2482 3.35 3.25 71.25 -0.051811 0.125665 0.0517963 -0.170553 -0.125602 0.170563 0.0 +2483 3.35 3.25 78.75 0.0349192 0.107932 -0.0348983 -0.12797 -0.107897 0.127947 0.0 +2484 3.35 3.25 86.25 0.109977 0.0525243 -0.109978 -0.0975017 -0.0525561 0.0974949 0.0 +2485 3.35 3.25 93.75 0.133592 0.00564846 -0.133572 -0.079523 -0.0054719 0.0795129 0.0 +2486 3.35 3.25 101.25 0.13514 0.0218498 -0.135139 -0.068635 -0.0218243 0.0686367 0.0 +2487 3.35 3.25 108.75 0.125808 0.0847814 -0.125742 -0.0608821 -0.0845929 0.0608698 0.0 +2488 3.35 3.25 116.25 0.0859804 0.127099 -0.0859118 -0.046674 -0.12691 0.0466421 0.0 +2489 3.35 3.25 123.75 0.0240101 0.116896 -0.0240258 -0.0218336 -0.116907 0.0218839 0.0 +2490 3.35 3.25 131.25 -0.0259337 0.0728231 0.0260029 0.00618536 -0.0729523 -0.00609409 0.0 +2491 3.35 3.25 138.75 -0.0524477 0.0198607 0.0523403 0.031086 -0.019903 -0.0310656 0.0 +2492 3.35 3.25 146.25 -0.0771902 -0.0394305 0.0771127 0.0560935 0.0392944 -0.0560811 0.0 +2493 3.35 3.25 153.75 -0.125327 -0.115249 0.125381 0.0868502 0.11537 -0.0868962 0.0 +2494 3.35 3.25 161.25 -0.197635 -0.207122 0.19763 0.12226 0.207294 -0.122357 0.0 +2495 3.35 3.25 168.75 -0.27075 -0.295144 0.270796 0.154148 0.295239 -0.154149 0.0 +2496 3.35 3.25 176.25 -0.316454 -0.349799 0.316406 0.172999 0.349655 -0.172891 0.0 +2497 3.35 3.35 3.75 21.6477 545.28 -21.6477 11815.8 -545.28 -11815.8 0.0 +2498 3.35 3.35 11.25 0.173729 218.755 -0.173719 2394.74 -218.755 -2394.74 0.0 +2499 3.35 3.35 18.75 -9.53806 48.3705 9.53809 598.087 -48.3705 -598.087 0.0 +2500 3.35 3.35 26.25 -7.66274 -1.12322 7.66276 113.819 1.12321 -113.819 0.0 +2501 3.35 3.35 33.75 -2.74384 -3.33129 2.74384 12.9293 3.33125 -12.9293 0.0 +2502 3.35 3.35 41.25 -0.346706 -0.421196 0.346694 0.581284 0.421155 -0.581292 0.0 +2503 3.35 3.35 48.75 -0.0597258 -0.052617 0.0597015 0.0549515 0.0526707 -0.0549747 0.0 +2504 3.35 3.35 56.25 -0.126882 -0.137188 0.126857 0.0379118 0.137277 -0.0378934 0.0 +2505 3.35 3.35 63.75 -0.109892 -0.0878689 0.109868 0.00253737 0.0878685 -0.00255598 0.0 +2506 3.35 3.35 71.25 -0.0980488 -0.073463 0.0980418 -0.0105894 0.0734524 0.0105771 0.0 +2507 3.35 3.35 78.75 -0.0669262 -0.0528742 0.0669078 -0.0108983 0.0530139 0.0109302 0.0 +2508 3.35 3.35 86.25 -0.0219711 -0.0291652 0.0219318 -0.0154295 0.0291951 0.0154292 0.0 +2509 3.35 3.35 93.75 0.00146699 -0.0207303 -0.00146179 -0.0140867 0.020679 0.0140912 0.0 +2510 3.35 3.35 101.25 0.0168709 0.00290498 -0.0169225 -0.00898105 -0.00281588 0.00896964 0.0 +2511 3.35 3.35 108.75 0.0340663 0.0389815 -0.0340623 -0.0103442 -0.039102 0.0103711 0.0 +2512 3.35 3.35 116.25 0.0352042 0.0499497 -0.0351821 -0.0111656 -0.0499387 0.0111689 0.0 +2513 3.35 3.35 123.75 0.0178821 0.0273981 -0.0178368 -0.0038908 -0.0275323 0.00391568 0.0 +2514 3.35 3.35 131.25 0.00245117 -0.00157526 -0.00237029 0.00543782 0.0017713 -0.00545999 0.0 +2515 3.35 3.35 138.75 -0.000452681 -0.0169013 0.000469283 0.00962862 0.0169401 -0.00965926 0.0 +2516 3.35 3.35 146.25 -0.000710544 -0.0221597 0.000754182 0.0101186 0.0223253 -0.0102137 0.0 +2517 3.35 3.35 153.75 -0.0111111 -0.0323046 0.011189 0.0113797 0.0322223 -0.0112957 0.0 +2518 3.35 3.35 161.25 -0.0318368 -0.0542513 0.0318153 0.0143177 0.0540301 -0.014212 0.0 +2519 3.35 3.35 168.75 -0.0531774 -0.0809936 0.0531282 0.0170487 0.0810135 -0.0171249 0.0 +2520 3.35 3.35 176.25 -0.0660009 -0.0992697 0.0659877 0.01838 0.0992028 -0.0183637 0.0 +2521 3.35 3.45 3.75 264.52 547.577 -264.52 6202.93 -547.577 -6202.93 0.0 +2522 3.35 3.45 11.25 146.664 252.974 -146.664 1327.09 -252.974 -1327.09 0.0 +2523 3.35 3.45 18.75 55.5979 76.7316 -55.5979 320.33 -76.7316 -320.33 0.0 +2524 3.35 3.45 26.25 12.0322 12.2347 -12.0322 58.3259 -12.2346 -58.3259 0.0 +2525 3.35 3.45 33.75 0.596069 0.246217 -0.596031 6.50975 -0.246209 -6.50972 0.0 +2526 3.35 3.45 41.25 -0.174085 -0.0773709 0.174074 0.316004 0.0773448 -0.316022 0.0 +2527 3.35 3.45 48.75 -0.00445633 -0.0860244 0.00448977 0.0121395 0.0860192 -0.0120971 0.0 +2528 3.35 3.45 56.25 -0.0477545 -0.104883 0.0478083 0.0286837 0.104818 -0.0286912 0.0 +2529 3.35 3.45 63.75 -0.0332506 -0.0586084 0.0333016 0.00627557 0.0586119 -0.0062805 0.0 +2530 3.35 3.45 71.25 -0.0281034 -0.0608434 0.0280864 -0.00101144 0.0608456 0.00103223 0.0 +2531 3.35 3.45 78.75 -0.0318181 -0.0457338 0.0317996 0.00287139 0.0457793 -0.00287648 0.0 +2532 3.35 3.45 86.25 -0.0190638 -0.0189326 0.0190873 -0.00282309 0.0188606 0.00282802 0.0 +2533 3.35 3.45 93.75 -0.00845602 -0.00564765 0.00846357 -0.00258802 0.00569123 0.00258276 0.0 +2534 3.35 3.45 101.25 -0.000108637 0.0104483 0.000114753 0.00269483 -0.0103655 -0.00269193 0.0 +2535 3.35 3.45 108.75 0.0096153 0.0272037 -0.00961347 0.00262296 -0.0272254 -0.00260619 0.0 +2536 3.35 3.45 116.25 0.00852246 0.0258295 -0.00856241 0.0019054 -0.0259022 -0.00189501 0.0 +2537 3.35 3.45 123.75 -0.00485077 0.0100252 0.00491377 0.00479164 -0.010035 -0.00474465 0.0 +2538 3.35 3.45 131.25 -0.0151032 -0.00124015 0.0150869 0.00590864 0.00128885 -0.00595605 0.0 +2539 3.35 3.45 138.75 -0.0116773 0.000794051 0.0116531 0.00155451 -0.000693976 -0.00161011 0.0 +2540 3.35 3.45 146.25 0.000951708 0.00984726 -0.000976147 -0.00547841 -0.00985363 0.00546737 0.0 +2541 3.35 3.45 153.75 0.0141348 0.0178974 -0.0141348 -0.0120161 -0.0179225 0.0120171 0.0 +2542 3.35 3.45 161.25 0.024418 0.0223568 -0.0244107 -0.0180532 -0.022375 0.0180171 0.0 +2543 3.35 3.45 168.75 0.0321657 0.0245203 -0.0321044 -0.0239933 -0.0245871 0.0240198 0.0 +2544 3.35 3.45 176.25 0.0366433 0.0254514 -0.0366767 -0.0281044 -0.0255168 0.0281336 0.0 +2545 3.35 3.55 3.75 212.112 270.322 -212.112 1633.44 -270.322 -1633.44 0.0 +2546 3.35 3.55 11.25 122.019 134.508 -122.019 394.591 -134.508 -394.591 0.0 +2547 3.35 3.55 18.75 47.7974 44.519 -47.7974 89.0516 -44.519 -89.0516 0.0 +2548 3.35 3.55 26.25 11.0171 8.96418 -11.0171 14.3465 -8.96418 -14.3466 0.0 +2549 3.35 3.55 33.75 0.785538 1.00667 -0.785533 1.3707 -1.00666 -1.37071 0.0 +2550 3.35 3.55 41.25 -0.100275 0.111814 0.100273 0.063653 -0.111807 -0.0636804 0.0 +2551 3.35 3.55 48.75 0.0358723 -0.0504078 -0.0358729 0.0207167 0.0504272 -0.0207188 0.0 +2552 3.35 3.55 56.25 -0.0107991 -0.0545945 0.0108077 0.0260469 0.0545759 -0.0260665 0.0 +2553 3.35 3.55 63.75 -0.0137965 -0.0162173 0.01382 0.00310984 0.0162029 -0.00312469 0.0 +2554 3.35 3.55 71.25 -0.00443791 -0.0176794 0.00444316 -0.0030039 0.0176744 0.00300773 0.0 +2555 3.35 3.55 78.75 -0.00661178 -0.0194646 0.00662503 -0.000183672 0.0194799 0.000190292 0.0 +2556 3.35 3.55 86.25 -0.0044624 -0.0145146 0.00445811 -0.00308715 0.0145483 0.00308949 0.0 +2557 3.35 3.55 93.75 -0.00201713 -0.0103082 0.00203467 -0.0034837 0.0103487 0.00348302 0.0 +2558 3.35 3.55 101.25 0.000612684 -0.00214047 -0.000633647 -0.00170294 0.00208873 0.00170816 0.0 +2559 3.35 3.55 108.75 0.00492679 0.00544074 -0.00492725 -0.000964504 -0.00547196 0.000980009 0.0 +2560 3.35 3.55 116.25 0.00552459 0.00494329 -0.00551079 0.00128236 -0.00490754 -0.00128794 0.0 +2561 3.35 3.55 123.75 0.00248381 -0.000309276 -0.00248587 0.00443651 0.000330766 -0.00443577 0.0 +2562 3.35 3.55 131.25 0.00307595 -0.00427668 -0.00308807 0.00457978 0.00431048 -0.00460838 0.0 +2563 3.35 3.55 138.75 0.0100829 -0.00649667 -0.0100649 0.00162916 0.00646752 -0.00160639 0.0 +2564 3.35 3.55 146.25 0.0183636 -0.0087324 -0.0183591 -0.00101933 0.00878923 0.000998688 0.0 +2565 3.35 3.55 153.75 0.0223417 -0.00978813 -0.0223341 -0.00163428 0.00977234 0.00164318 0.0 +2566 3.35 3.55 161.25 0.0213234 -0.00730229 -0.0213443 -0.0014192 0.00724781 0.00144804 0.0 +2567 3.35 3.55 168.75 0.0183265 -0.00180711 -0.0183314 -0.00178155 0.00182466 0.00177075 0.0 +2568 3.35 3.55 176.25 0.0161793 0.00277081 -0.0161889 -0.00245834 -0.00278613 0.00245868 0.0 +2569 3.35 3.65 3.75 34.2993 31.2111 -34.2993 99.1827 -31.2111 -99.1827 0.0 +2570 3.35 3.65 11.25 20.1073 16.1249 -20.1073 25.0862 -16.1249 -25.0862 0.0 +2571 3.35 3.65 18.75 7.81038 5.38483 -7.81038 4.29487 -5.38483 -4.29487 0.0 +2572 3.35 3.65 26.25 1.72232 1.10266 -1.72232 0.220387 -1.10265 -0.220388 0.0 +2573 3.35 3.65 33.75 0.0886792 0.151586 -0.0886799 -0.0820027 -0.151586 0.0820019 0.0 +2574 3.35 3.65 41.25 -0.0173171 0.0309048 0.0173154 -0.015518 -0.0309058 0.0155196 0.0 +2575 3.35 3.65 48.75 0.0101661 -0.00286499 -0.0101673 0.00763683 0.00286567 -0.00763753 0.0 +2576 3.35 3.65 56.25 -0.002689 -0.00624694 0.00268935 0.0083081 0.00624704 -0.00830852 0.0 +2577 3.35 3.65 63.75 -0.00312949 0.000414859 0.00313187 0.00248767 -0.000415121 -0.00248719 0.0 +2578 3.35 3.65 71.25 0.00176759 0.00183364 -0.00176593 0.000912355 -0.00183059 -0.000912314 0.0 +2579 3.35 3.65 78.75 0.00272836 0.00157348 -0.00272759 0.00117466 -0.00157332 -0.00117415 0.0 +2580 3.35 3.65 86.25 0.00159309 0.000928734 -0.00159386 0.000236076 -0.000929755 -0.000236263 0.0 +2581 3.35 3.65 93.75 -8.27674e-05 0.000144333 8.23358e-05 -0.00112934 -0.000145183 0.00112914 0.0 +2582 3.35 3.65 101.25 -0.000947847 0.000224482 0.00094892 -0.00225916 -0.000225888 0.00225973 0.0 +2583 3.35 3.65 108.75 -0.000863792 0.000432852 0.000864512 -0.00237019 -0.000431765 0.0023699 0.0 +2584 3.35 3.65 116.25 -0.000961541 -5.64864e-05 0.000960868 -0.0011264 6.07289e-05 0.00112608 0.0 +2585 3.35 3.65 123.75 -0.00127243 -0.000805706 0.0012707 0.000252729 0.000806025 -0.000253886 0.0 +2586 3.35 3.65 131.25 -0.000913381 -0.00130653 0.000910966 0.000474326 0.00130583 -0.000474541 0.0 +2587 3.35 3.65 138.75 -5.53154e-05 -0.00154588 5.78325e-05 -0.000286174 0.00155054 0.000285032 0.0 +2588 3.35 3.65 146.25 -6.51777e-05 -0.00124019 6.5744e-05 -0.000995048 0.00124163 0.000994467 0.0 +2589 3.35 3.65 153.75 -0.0019038 0.00032226 0.00190333 -0.00107275 -0.000320901 0.00107123 0.0 +2590 3.35 3.65 161.25 -0.00517932 0.00335224 0.00517862 -0.000703318 -0.00335729 0.000705883 0.0 +2591 3.35 3.65 168.75 -0.00853589 0.00691614 0.00853695 -0.000307448 -0.00691271 0.000304936 0.0 +2592 3.35 3.65 176.25 -0.0106065 0.00934073 0.0106054 -0.000100664 -0.0093421 0.000101267 0.0 +2593 3.45 2.55 3.75 -306.256 -630.26 306.256 712.027 630.26 -712.027 0.0 +2594 3.45 2.55 11.25 -241.643 -460.837 241.643 436.705 460.837 -436.705 0.0 +2595 3.45 2.55 18.75 -163.644 -227.704 163.644 196.914 227.704 -196.914 0.0 +2596 3.45 2.55 26.25 -109.293 -33.3416 109.293 89.2043 33.3416 -89.2043 0.0 +2597 3.45 2.55 33.75 -79.3847 79.4725 79.3847 51.6528 -79.4725 -51.6528 0.0 +2598 3.45 2.55 41.25 -58.4527 119.272 58.4527 27.3787 -119.272 -27.3787 0.0 +2599 3.45 2.55 48.75 -36.2063 116.335 36.2063 1.24536 -116.335 -1.24536 0.0 +2600 3.45 2.55 56.25 -12.877 98.7088 12.877 -21.3417 -98.7088 21.3417 0.0 +2601 3.45 2.55 63.75 6.39264 81.7834 -6.39265 -34.2469 -81.7834 34.2469 0.0 +2602 3.45 2.55 71.25 17.6707 68.9207 -17.6707 -36.3618 -68.9207 36.3618 0.0 +2603 3.45 2.55 78.75 20.7496 57.5203 -20.7496 -30.7183 -57.5203 30.7183 0.0 +2604 3.45 2.55 86.25 18.6942 44.7959 -18.6942 -22.1495 -44.7959 22.1495 0.0 +2605 3.45 2.55 93.75 15.7399 30.0692 -15.7399 -14.7587 -30.0692 14.7587 0.0 +2606 3.45 2.55 101.25 14.9561 14.1711 -14.9561 -10.3261 -14.1711 10.3261 0.0 +2607 3.45 2.55 108.75 17.1133 -1.75859 -17.1132 -8.43042 1.75863 8.43042 0.0 +2608 3.45 2.55 116.25 21.1653 -16.7758 -21.1653 -7.6838 16.7758 7.6838 0.0 +2609 3.45 2.55 123.75 25.5091 -30.1056 -25.509 -6.89494 30.1057 6.89493 0.0 +2610 3.45 2.55 131.25 28.9655 -41.1155 -28.9654 -5.54039 41.1155 5.54038 0.0 +2611 3.45 2.55 138.75 31.0793 -49.4383 -31.0794 -3.65858 49.4383 3.65857 0.0 +2612 3.45 2.55 146.25 31.9503 -55.0945 -31.9503 -1.54808 55.0945 1.54807 0.0 +2613 3.45 2.55 153.75 31.9458 -58.4765 -31.9458 0.46791 58.4765 -0.467925 0.0 +2614 3.45 2.55 161.25 31.4914 -60.2005 -31.4914 2.14501 60.2005 -2.14503 0.0 +2615 3.45 2.55 168.75 30.9607 -60.9133 -30.9607 3.33031 60.9133 -3.3303 0.0 +2616 3.45 2.55 176.25 30.6245 -61.1297 -30.6245 3.94075 61.1298 -3.94076 0.0 +2617 3.45 2.65 3.75 -410.404 -684.119 410.404 1124.97 684.119 -1124.97 0.0 +2618 3.45 2.65 11.25 -315.445 -504.168 315.445 663.12 504.168 -663.12 0.0 +2619 3.45 2.65 18.75 -200.158 -265.393 200.158 285.214 265.393 -285.214 0.0 +2620 3.45 2.65 26.25 -117.759 -74.4043 117.759 118.865 74.4044 -118.865 0.0 +2621 3.45 2.65 33.75 -72.7391 32.0266 72.7391 62.0115 -32.0266 -62.0115 0.0 +2622 3.45 2.65 41.25 -46.6794 69.0359 46.6794 32.6288 -69.0359 -32.6288 0.0 +2623 3.45 2.65 48.75 -25.0296 68.799 25.0296 6.85355 -68.799 -6.85356 0.0 +2624 3.45 2.65 56.25 -4.70437 57.3573 4.70435 -12.9243 -57.3573 12.9243 0.0 +2625 3.45 2.65 63.75 11.3837 47.5257 -11.3838 -22.9609 -47.5257 22.9609 0.0 +2626 3.45 2.65 71.25 20.5482 41.3831 -20.5482 -23.9869 -41.3831 23.9869 0.0 +2627 3.45 2.65 78.75 22.8085 36.193 -22.8085 -19.5196 -36.193 19.5196 0.0 +2628 3.45 2.65 86.25 20.6545 29.4327 -20.6545 -13.6165 -29.4327 13.6165 0.0 +2629 3.45 2.65 93.75 17.4317 20.6221 -17.4318 -9.11551 -20.6221 9.11551 0.0 +2630 3.45 2.65 101.25 15.4934 10.6053 -15.4934 -6.83936 -10.6052 6.83936 0.0 +2631 3.45 2.65 108.75 15.3634 0.398853 -15.3634 -6.08122 -0.398839 6.08122 0.0 +2632 3.45 2.65 116.25 16.2491 -9.23221 -16.2491 -5.71107 9.23223 5.71106 0.0 +2633 3.45 2.65 123.75 17.0991 -17.6958 -17.0991 -4.98277 17.6958 4.98277 0.0 +2634 3.45 2.65 131.25 17.2969 -24.5169 -17.2969 -3.71694 24.5169 3.71693 0.0 +2635 3.45 2.65 138.75 16.7536 -29.4367 -16.7536 -2.09401 29.4367 2.09401 0.0 +2636 3.45 2.65 146.25 15.6864 -32.5095 -15.6864 -0.393538 32.5095 0.393535 0.0 +2637 3.45 2.65 153.75 14.3972 -34.0775 -14.3972 1.15395 34.0775 -1.15396 0.0 +2638 3.45 2.65 161.25 13.1634 -34.6385 -13.1634 2.40176 34.6385 -2.40176 0.0 +2639 3.45 2.65 168.75 12.2071 -34.6906 -12.2071 3.26815 34.6906 -3.26815 0.0 +2640 3.45 2.65 176.25 11.6868 -34.6153 -11.6868 3.7106 34.6154 -3.7106 0.0 +2641 3.45 2.75 3.75 -497.255 -677 497.255 1652.99 677 -1652.99 0.0 +2642 3.45 2.75 11.25 -373.691 -495.677 373.691 915.601 495.677 -915.601 0.0 +2643 3.45 2.75 18.75 -225.553 -263.706 225.553 365.966 263.706 -365.966 0.0 +2644 3.45 2.75 26.25 -119.766 -85.9838 119.766 136.334 85.9838 -136.334 0.0 +2645 3.45 2.75 33.75 -63.267 7.86172 63.267 62.4019 -7.86172 -62.4019 0.0 +2646 3.45 2.75 41.25 -34.7214 38.5117 34.7215 30.9646 -38.5117 -30.9646 0.0 +2647 3.45 2.75 48.75 -15.6402 38.6905 15.6402 7.75474 -38.6905 -7.75474 0.0 +2648 3.45 2.75 56.25 0.200898 31.3646 -0.200906 -8.25822 -31.3646 8.25823 0.0 +2649 3.45 2.75 63.75 12.1025 26.2015 -12.1025 -15.3813 -26.2016 15.3813 0.0 +2650 3.45 2.75 71.25 18.645 23.9679 -18.645 -15.4998 -23.9679 15.4998 0.0 +2651 3.45 2.75 78.75 20.0366 22.0995 -20.0365 -12.0647 -22.0994 12.0647 0.0 +2652 3.45 2.75 86.25 18.0975 18.6666 -18.0975 -8.18733 -18.6667 8.18733 0.0 +2653 3.45 2.75 93.75 15.203 13.548 -15.2031 -5.61947 -13.548 5.61947 0.0 +2654 3.45 2.75 101.25 12.9731 7.59374 -12.9732 -4.55604 -7.59372 4.55604 0.0 +2655 3.45 2.75 108.75 11.7095 1.61177 -11.7095 -4.26673 -1.61172 4.26671 0.0 +2656 3.45 2.75 116.25 10.8678 -3.90594 -10.8678 -3.95972 3.9059 3.95974 0.0 +2657 3.45 2.75 123.75 9.86364 -8.62299 -9.86364 -3.25525 8.62305 3.25522 0.0 +2658 3.45 2.75 131.25 8.48939 -12.2677 -8.48935 -2.17621 12.2677 2.1762 0.0 +2659 3.45 2.75 138.75 6.8561 -14.7058 -6.85612 -0.925779 14.7058 0.925792 0.0 +2660 3.45 2.75 146.25 5.17617 -16.0173 -5.17617 0.29668 16.0172 -0.296656 0.0 +2661 3.45 2.75 153.75 3.62928 -16.4706 -3.62927 1.36272 16.4706 -1.36274 0.0 +2662 3.45 2.75 161.25 2.34356 -16.418 -2.34357 2.20438 16.4181 -2.2044 0.0 +2663 3.45 2.75 168.75 1.41823 -16.1869 -1.41824 2.78491 16.1869 -2.7849 0.0 +2664 3.45 2.75 176.25 0.93231 -16.012 -0.932328 3.08139 16.012 -3.0814 0.0 +2665 3.45 2.85 3.75 -548.003 -614.565 548.003 2304.07 614.565 -2304.07 0.0 +2666 3.45 2.85 11.25 -403.385 -446.114 403.385 1173.83 446.114 -1173.83 0.0 +2667 3.45 2.85 18.75 -233.959 -236.004 233.959 430.61 236.004 -430.61 0.0 +2668 3.45 2.85 26.25 -114.291 -80.069 114.291 141.231 80.069 -141.231 0.0 +2669 3.45 2.85 33.75 -52.1051 -2.02399 52.1051 55.1217 2.02396 -55.1216 0.0 +2670 3.45 2.85 41.25 -24.0012 21.2002 24.0012 25.0552 -21.2002 -25.0552 0.0 +2671 3.45 2.85 48.75 -8.75879 20.9185 8.75874 6.24251 -20.9185 -6.2425 0.0 +2672 3.45 2.85 56.25 2.17439 16.3646 -2.17443 -5.56933 -16.3647 5.56933 0.0 +2673 3.45 2.85 63.75 9.87494 14.0522 -9.87497 -10.1202 -14.0522 10.1202 0.0 +2674 3.45 2.85 71.25 13.9611 13.6826 -13.9611 -9.68958 -13.6825 9.68959 0.0 +2675 3.45 2.85 78.75 14.7195 13.1469 -14.7196 -7.20381 -13.1468 7.20382 0.0 +2676 3.45 2.85 86.25 13.2825 11.2688 -13.2825 -4.80907 -11.2688 4.80907 0.0 +2677 3.45 2.85 93.75 11.1137 8.28982 -11.1137 -3.43822 -8.28984 3.43822 0.0 +2678 3.45 2.85 101.25 9.19959 4.99293 -9.19962 -2.96627 -4.99292 2.96627 0.0 +2679 3.45 2.85 108.75 7.69011 1.9132 -7.69008 -2.80506 -1.91323 2.80506 0.0 +2680 3.45 2.85 116.25 6.26738 -0.754121 -6.26738 -2.48465 0.754107 2.48465 0.0 +2681 3.45 2.85 123.75 4.69302 -2.92053 -4.69298 -1.87011 2.92052 1.87014 0.0 +2682 3.45 2.85 131.25 3.00043 -4.49316 -3.00046 -1.0617 4.4931 1.0617 0.0 +2683 3.45 2.85 138.75 1.35896 -5.43071 -1.35895 -0.214639 5.4307 0.21465 0.0 +2684 3.45 2.85 146.25 -0.0975721 -5.80953 0.0975683 0.564043 5.80952 -0.564042 0.0 +2685 3.45 2.85 153.75 -1.31554 -5.80487 1.31554 1.22538 5.80502 -1.22545 0.0 +2686 3.45 2.85 161.25 -2.27717 -5.61838 2.27719 1.74807 5.6184 -1.74807 0.0 +2687 3.45 2.85 168.75 -2.95565 -5.41309 2.95571 2.11405 5.41315 -2.11407 0.0 +2688 3.45 2.85 176.25 -3.31048 -5.28882 3.31047 2.30378 5.2888 -2.30378 0.0 +2689 3.45 2.95 3.75 -544.922 -497.061 544.922 3078.39 497.061 -3078.39 0.0 +2690 3.45 2.95 11.25 -393.552 -362.493 393.552 1406.5 362.493 -1406.5 0.0 +2691 3.45 2.95 18.75 -221.236 -192.412 221.236 470.974 192.412 -470.974 0.0 +2692 3.45 2.95 26.25 -101.063 -66.0352 101.063 134.97 66.0352 -134.97 0.0 +2693 3.45 2.95 33.75 -40.2469 -4.86193 40.2469 43.3621 4.86195 -43.3621 0.0 +2694 3.45 2.95 41.25 -15.2898 11.6213 15.2897 17.5126 -11.6213 -17.5126 0.0 +2695 3.45 2.95 48.75 -4.33523 10.905 4.3352 4.04329 -10.905 -4.04327 0.0 +2696 3.45 2.95 56.25 2.18714 8.24837 -2.1872 -3.74017 -8.24831 3.74018 0.0 +2697 3.45 2.95 63.75 6.40955 7.51416 -6.40948 -6.31275 -7.51421 6.31275 0.0 +2698 3.45 2.95 71.25 8.60941 7.77106 -8.60947 -5.71424 -7.77112 5.71422 0.0 +2699 3.45 2.95 78.75 9.03579 7.52495 -9.03581 -4.08358 -7.52497 4.08358 0.0 +2700 3.45 2.95 86.25 8.21402 6.29483 -8.21403 -2.72405 -6.29472 2.72405 0.0 +2701 3.45 2.95 93.75 6.87838 4.54861 -6.87836 -2.03984 -4.54871 2.03984 0.0 +2702 3.45 2.95 101.25 5.55629 2.91176 -5.55627 -1.81705 -2.91174 1.81705 0.0 +2703 3.45 2.95 108.75 4.32565 1.64201 -4.32569 -1.67096 -1.6421 1.67098 0.0 +2704 3.45 2.95 116.25 3.04826 0.69376 -3.04833 -1.37414 -0.693725 1.37412 0.0 +2705 3.45 2.95 123.75 1.69501 -0.0160375 -1.69503 -0.916383 0.0161119 0.916364 0.0 +2706 3.45 2.95 131.25 0.392887 -0.501719 -0.392925 -0.394265 0.501627 0.394291 0.0 +2707 3.45 2.95 138.75 -0.724329 -0.76263 0.724304 0.105035 0.762673 -0.105085 0.0 +2708 3.45 2.95 146.25 -1.61972 -0.843823 1.61969 0.545164 0.843697 -0.545116 0.0 +2709 3.45 2.95 153.75 -2.33022 -0.828516 2.33023 0.921858 0.828524 -0.921868 0.0 +2710 3.45 2.95 161.25 -2.89222 -0.792299 2.89228 1.23178 0.792409 -1.2318 0.0 +2711 3.45 2.95 168.75 -3.30112 -0.771646 3.30113 1.45896 0.771608 -1.45895 0.0 +2712 3.45 2.95 176.25 -3.52114 -0.766502 3.52118 1.58062 0.766532 -1.5806 0.0 +2713 3.45 3.05 3.75 -475.314 -322.42 475.314 3963.8 322.42 -3963.8 0.0 +2714 3.45 3.05 11.25 -338.348 -249.248 338.348 1573.32 249.248 -1573.32 0.0 +2715 3.45 3.05 18.75 -186.445 -139.031 186.445 480.819 139.031 -480.819 0.0 +2716 3.45 3.05 26.25 -81.0201 -49.399 81.0201 120.377 49.399 -120.377 0.0 +2717 3.45 3.05 33.75 -28.6328 -5.08278 28.6327 30.5097 5.08277 -30.5097 0.0 +2718 3.45 3.05 41.25 -8.82638 6.11139 8.82637 10.4404 -6.1114 -10.4404 0.0 +2719 3.45 3.05 48.75 -1.85343 5.32625 1.85346 2.16403 -5.32623 -2.164 0.0 +2720 3.45 3.05 56.25 1.35086 3.92765 -1.35083 -2.2841 -3.92766 2.2841 0.0 +2721 3.45 3.05 63.75 3.18303 3.93111 -3.18308 -3.54526 -3.93104 3.54527 0.0 +2722 3.45 3.05 71.25 4.18326 4.23744 -4.18318 -3.05394 -4.23741 3.05394 0.0 +2723 3.45 3.05 78.75 4.49258 3.9582 -4.49266 -2.12863 -3.95825 2.12861 0.0 +2724 3.45 3.05 86.25 4.19958 3.07628 -4.19957 -1.44525 -3.07631 1.44525 0.0 +2725 3.45 3.05 93.75 3.55703 2.09269 -3.55702 -1.12965 -2.09265 1.12965 0.0 +2726 3.45 3.05 101.25 2.82082 1.42577 -2.82082 -1.00836 -1.42574 1.00835 0.0 +2727 3.45 3.05 108.75 2.05335 1.12201 -2.0533 -0.879428 -1.12204 0.879438 0.0 +2728 3.45 3.05 116.25 1.22927 1.00436 -1.22931 -0.659137 -1.00432 0.659097 0.0 +2729 3.45 3.05 123.75 0.406034 0.922498 -0.406042 -0.375131 -0.922546 0.375153 0.0 +2730 3.45 3.05 131.25 -0.296186 0.832273 0.296225 -0.0883048 -0.832251 0.0882832 0.0 +2731 3.45 3.05 138.75 -0.814568 0.737363 0.814575 0.167299 -0.7374 -0.167276 0.0 +2732 3.45 3.05 146.25 -1.18502 0.630537 1.18498 0.392395 -0.630556 -0.392405 0.0 +2733 3.45 3.05 153.75 -1.48257 0.494496 1.48259 0.5978 -0.494437 -0.597808 0.0 +2734 3.45 3.05 161.25 -1.74881 0.331167 1.74885 0.781687 -0.331182 -0.781664 0.0 +2735 3.45 3.05 168.75 -1.96879 0.175253 1.96874 0.925742 -0.175235 -0.925772 0.0 +2736 3.45 3.05 176.25 -2.0967 0.0786764 2.09672 1.00588 -0.0786713 -1.00589 0.0 +2737 3.45 3.15 3.75 -335.15 -93.6243 335.15 4919.2 93.6243 -4919.2 0.0 +2738 3.45 3.15 11.25 -239.412 -112.098 239.412 1631.97 112.098 -1631.97 0.0 +2739 3.45 3.15 18.75 -132.594 -79.3632 132.594 457.179 79.3632 -457.179 0.0 +2740 3.45 3.15 26.25 -56.3887 -32.3191 56.3887 100.818 32.3191 -100.818 0.0 +2741 3.45 3.15 33.75 -18.16 -4.51131 18.1601 19.3237 4.51132 -19.3237 0.0 +2742 3.45 3.15 41.25 -4.4854 2.78229 4.48539 5.12234 -2.78226 -5.12233 0.0 +2743 3.45 3.15 48.75 -0.65816 2.23549 0.65826 0.957979 -2.23558 -0.957965 0.0 +2744 3.45 3.15 56.25 0.506275 1.58325 -0.506256 -1.13658 -1.58328 1.13657 0.0 +2745 3.45 3.15 63.75 1.03096 1.81098 -1.03093 -1.6632 -1.811 1.66321 0.0 +2746 3.45 3.15 71.25 1.41183 2.0053 -1.4118 -1.38913 -2.00536 1.38912 0.0 +2747 3.45 3.15 78.75 1.68372 1.73689 -1.68371 -0.965934 -1.73688 0.965929 0.0 +2748 3.45 3.15 86.25 1.70752 1.16763 -1.70751 -0.682141 -1.16765 0.682142 0.0 +2749 3.45 3.15 93.75 1.49569 0.679886 -1.49564 -0.555736 -0.679951 0.555736 0.0 +2750 3.45 3.15 101.25 1.17836 0.506082 -1.17831 -0.491039 -0.506091 0.491053 0.0 +2751 3.45 3.15 108.75 0.820869 0.586875 -0.820847 -0.406929 -0.586908 0.406931 0.0 +2752 3.45 3.15 116.25 0.442639 0.726307 -0.442661 -0.282046 -0.726397 0.28205 0.0 +2753 3.45 3.15 123.75 0.104502 0.791195 -0.10453 -0.138832 -0.791224 0.138815 0.0 +2754 3.45 3.15 131.25 -0.122088 0.757803 0.122111 -0.00554787 -0.757786 0.00557081 0.0 +2755 3.45 3.15 138.75 -0.233371 0.647708 0.233317 0.11009 -0.647633 -0.110127 0.0 +2756 3.45 3.15 146.25 -0.294334 0.47602 0.294323 0.218656 -0.476048 -0.218642 0.0 +2757 3.45 3.15 153.75 -0.374289 0.252194 0.374305 0.329856 -0.252147 -0.329913 0.0 +2758 3.45 3.15 161.25 -0.492985 0.00374022 0.493045 0.439147 -0.00376578 -0.439083 0.0 +2759 3.45 3.15 168.75 -0.618588 -0.216468 0.618562 0.529275 0.216442 -0.529286 0.0 +2760 3.45 3.15 176.25 -0.699206 -0.346872 0.699206 0.580539 0.346963 -0.580578 0.0 +2761 3.45 3.25 3.75 -131.986 172.423 131.986 5807.16 -172.423 -5807.16 0.0 +2762 3.45 3.25 11.25 -106.676 37.9086 106.676 1550.79 -37.9086 -1550.79 0.0 +2763 3.45 3.25 18.75 -66.3639 -16.7646 66.364 401.081 16.7646 -401.081 0.0 +2764 3.45 3.25 26.25 -30.3473 -15.2048 30.3473 79.1321 15.2048 -79.1321 0.0 +2765 3.45 3.25 33.75 -9.59735 -3.38585 9.59735 11.2832 3.38583 -11.2832 0.0 +2766 3.45 3.25 41.25 -1.92176 0.888505 1.92175 1.94054 -0.88848 -1.94058 0.0 +2767 3.45 3.25 48.75 -0.186459 0.662911 0.186482 0.346642 -0.662898 -0.346709 0.0 +2768 3.45 3.25 56.25 0.0336511 0.376814 -0.0335823 -0.381553 -0.376846 0.381531 0.0 +2769 3.45 3.25 63.75 0.0610398 0.568743 -0.0610638 -0.568847 -0.568734 0.568857 0.0 +2770 3.45 3.25 71.25 0.191319 0.669351 -0.191358 -0.479143 -0.669399 0.479151 0.0 +2771 3.45 3.25 78.75 0.405751 0.51543 -0.405724 -0.34219 -0.515447 0.3422 0.0 +2772 3.45 3.25 86.25 0.526203 0.236753 -0.526194 -0.259964 -0.236729 0.259964 0.0 +2773 3.45 3.25 93.75 0.497209 0.0446808 -0.49719 -0.226352 -0.0447335 0.226358 0.0 +2774 3.45 3.25 101.25 0.400656 0.0545232 -0.400668 -0.204302 -0.0545018 0.204314 0.0 +2775 3.45 3.25 108.75 0.294574 0.196188 -0.294587 -0.171634 -0.196092 0.1716 0.0 +2776 3.45 3.25 116.25 0.19472 0.324411 -0.194713 -0.123137 -0.324523 0.123175 0.0 +2777 3.45 3.25 123.75 0.132272 0.361164 -0.132303 -0.0670742 -0.361206 0.0670926 0.0 +2778 3.45 3.25 131.25 0.135206 0.313195 -0.135187 -0.0147294 -0.313223 0.0147091 0.0 +2779 3.45 3.25 138.75 0.182857 0.21121 -0.182794 0.0326203 -0.211273 -0.0325507 0.0 +2780 3.45 3.25 146.25 0.217909 0.068651 -0.217902 0.0824645 -0.0686142 -0.0825051 0.0 +2781 3.45 3.25 153.75 0.198459 -0.108935 -0.198506 0.139161 0.1089 -0.139151 0.0 +2782 3.45 3.25 161.25 0.12767 -0.302368 -0.127653 0.197311 0.302337 -0.197299 0.0 +2783 3.45 3.25 168.75 0.0427846 -0.472116 -0.0427358 0.245295 0.472357 -0.245467 0.0 +2784 3.45 3.25 176.25 -0.0129573 -0.572229 0.0129579 0.272254 0.572361 -0.272348 0.0 +2785 3.45 3.35 3.75 108.302 421.496 -108.302 5958.83 -421.496 -5958.83 0.0 +2786 3.45 3.35 11.25 41.2462 175.982 -41.2462 1273.31 -175.982 -1273.31 0.0 +2787 3.45 3.35 18.75 3.01038 41.906 -3.0104 305.247 -41.906 -305.247 0.0 +2788 3.45 3.35 26.25 -6.1326 1.47736 6.13263 54.6726 -1.47737 -54.6726 0.0 +2789 3.45 3.35 33.75 -3.31533 -1.47586 3.31531 6.12001 1.47584 -6.12 0.0 +2790 3.45 3.35 41.25 -0.645403 0.0817823 0.645396 0.522618 -0.081765 -0.52267 0.0 +2791 3.45 3.35 48.75 -0.0508309 0.0548983 0.0508385 0.088753 -0.054907 -0.0887145 0.0 +2792 3.45 3.35 56.25 -0.086444 -0.0749055 0.0864092 -0.0334013 0.0748983 0.0334289 0.0 +2793 3.45 3.35 63.75 -0.118584 0.00885222 0.118561 -0.0912918 -0.00885908 0.0913019 0.0 +2794 3.45 3.35 71.25 -0.0737239 0.0593776 0.0737854 -0.088756 -0.0594375 0.0887584 0.0 +2795 3.45 3.35 78.75 0.036563 0.0346896 -0.0365392 -0.0646539 -0.0346542 0.0646679 0.0 +2796 3.45 3.35 86.25 0.115213 -0.0407592 -0.115217 -0.0589973 0.0407232 0.0589937 0.0 +2797 3.45 3.35 93.75 0.121241 -0.0943378 -0.121253 -0.0623952 0.0942932 0.0623931 0.0 +2798 3.45 3.35 101.25 0.105666 -0.0629274 -0.105684 -0.0638035 0.0629433 0.0637916 0.0 +2799 3.45 3.35 108.75 0.100399 0.0188446 -0.100413 -0.0630221 -0.0188428 0.0629937 0.0 +2800 3.45 3.35 116.25 0.101209 0.0751847 -0.101172 -0.0564777 -0.0751112 0.0564679 0.0 +2801 3.45 3.35 123.75 0.114923 0.0786105 -0.114898 -0.0437503 -0.0785564 0.0437357 0.0 +2802 3.45 3.35 131.25 0.152279 0.0502791 -0.152333 -0.0294588 -0.050311 0.0294693 0.0 +2803 3.45 3.35 138.75 0.197497 0.0112211 -0.197509 -0.0146718 -0.0112948 0.0147128 0.0 +2804 3.45 3.35 146.25 0.218165 -0.0385802 -0.2182 0.00342743 0.0385741 -0.00344245 0.0 +2805 3.45 3.35 153.75 0.198221 -0.105349 -0.198196 0.0247121 0.105367 -0.024701 0.0 +2806 3.45 3.35 161.25 0.149784 -0.1847 -0.149761 0.0445218 0.184701 -0.0445184 0.0 +2807 3.45 3.35 168.75 0.0992213 -0.258039 -0.0992126 0.0582518 0.258116 -0.0583085 0.0 +2808 3.45 3.35 176.25 0.06856 -0.302331 -0.0685837 0.0647053 0.302274 -0.0646862 0.0 +2809 3.45 3.45 3.75 249.963 447.743 -249.963 3664.97 -447.743 -3664.97 0.0 +2810 3.45 3.45 11.25 130.312 207.993 -130.312 676.249 -207.993 -676.249 0.0 +2811 3.45 3.45 18.75 45.7667 65.0303 -45.7667 147.519 -65.0303 -147.519 0.0 +2812 3.45 3.45 26.25 8.62768 11.3441 -8.62769 23.4633 -11.3441 -23.4633 0.0 +2813 3.45 3.45 33.75 0.110016 0.590793 -0.109988 2.30758 -0.590787 -2.3076 0.0 +2814 3.45 3.45 41.25 -0.153757 -0.0039627 0.153717 0.133259 0.00394772 -0.133226 0.0 +2815 3.45 3.45 48.75 -0.0153495 -0.0393026 0.0153515 0.00700061 0.0393356 -0.00698054 0.0 +2816 3.45 3.45 56.25 -0.0482726 -0.073912 0.0483149 0.0251197 0.0739223 -0.0251188 0.0 +2817 3.45 3.45 63.75 -0.0289355 -0.0533479 0.0289021 0.00597862 0.053373 -0.00597884 0.0 +2818 3.45 3.45 71.25 -0.0187811 -0.0391984 0.018746 0.000512192 0.039198 -0.000501842 0.0 +2819 3.45 3.45 78.75 -0.00856621 -0.0176478 0.00859924 0.00690296 0.0177056 -0.00690308 0.0 +2820 3.45 3.45 86.25 0.00371125 -0.0135792 -0.00372377 0.00136037 0.0136089 -0.0013601 0.0 +2821 3.45 3.45 93.75 0.00477561 -0.0238325 -0.00478562 -0.00283706 0.0238591 0.00283968 0.0 +2822 3.45 3.45 101.25 0.00818656 -0.0174538 -0.00812902 -0.00263731 0.017444 0.00264151 0.0 +2823 3.45 3.45 108.75 0.0169419 0.00155597 -0.0169639 -0.00543721 -0.00155808 0.00543126 0.0 +2824 3.45 3.45 116.25 0.0195788 0.0116859 -0.0195369 -0.00999959 -0.0117365 0.0100136 0.0 +2825 3.45 3.45 123.75 0.0183927 0.0116238 -0.0183971 -0.013227 -0.011666 0.0132448 0.0 +2826 3.45 3.45 131.25 0.0233808 0.0121941 -0.0234038 -0.0149326 -0.0122148 0.0149266 0.0 +2827 3.45 3.45 138.75 0.0316355 0.0161105 -0.0316222 -0.0142598 -0.0161126 0.0142499 0.0 +2828 3.45 3.45 146.25 0.0319972 0.0182352 -0.0319926 -0.0107349 -0.018201 0.0107262 0.0 +2829 3.45 3.45 153.75 0.0212885 0.0151617 -0.0213003 -0.0072284 -0.0151286 0.00721379 0.0 +2830 3.45 3.45 161.25 0.00710262 0.00875975 -0.00709702 -0.00763624 -0.00879653 0.00766868 0.0 +2831 3.45 3.45 168.75 -0.0026401 0.00265877 0.00265377 -0.0121265 -0.00270055 0.0121613 0.0 +2832 3.45 3.45 176.25 -0.00643116 -0.000726218 0.00644015 -0.0165154 0.000842039 0.0164549 0.0 +2833 3.45 3.55 3.75 176.165 231.846 -176.165 1002.13 -231.846 -1002.13 0.0 +2834 3.45 3.55 11.25 95.7124 114.358 -95.7124 175.442 -114.358 -175.442 0.0 +2835 3.45 3.55 18.75 35.3486 38.8706 -35.3486 30.2113 -38.8706 -30.2113 0.0 +2836 3.45 3.55 26.25 7.45817 8.24142 -7.45818 2.93187 -8.24142 -2.93187 0.0 +2837 3.45 3.55 33.75 0.442038 0.937077 -0.442023 0.16053 -0.937083 -0.160524 0.0 +2838 3.45 3.55 41.25 -0.036135 0.0544695 0.0361478 0.0475514 -0.0544678 -0.0475693 0.0 +2839 3.45 3.55 48.75 0.0114763 -0.0262494 -0.0114589 0.0137087 0.0262505 -0.0137065 0.0 +2840 3.45 3.55 56.25 -0.0247279 -0.0151853 0.0247269 0.0138833 0.0151975 -0.0138936 0.0 +2841 3.45 3.55 63.75 -0.00534614 0.000359977 0.00535626 -0.000883675 -0.000355567 0.000884282 0.0 +2842 3.45 3.55 71.25 0.0021508 -0.00431124 -0.00217205 -0.00167595 0.00430117 0.00167024 0.0 +2843 3.45 3.55 78.75 -0.00618242 -0.0011063 0.00617677 0.00219776 0.00111944 -0.00219769 0.0 +2844 3.45 3.55 86.25 -0.00864154 0.00382556 0.00863024 -0.000880014 -0.00382877 0.000881011 0.0 +2845 3.45 3.55 93.75 -0.00688417 0.00308196 0.00688064 -0.000591138 -0.00307945 0.000591269 0.0 +2846 3.45 3.55 101.25 -0.00277733 0.00250811 0.00278446 0.00339576 -0.00248041 -0.00339897 0.0 +2847 3.45 3.55 108.75 9.6645e-05 0.00292517 -9.27955e-05 0.00533124 -0.00297869 -0.00532125 0.0 +2848 3.45 3.55 116.25 -0.00279109 0.00312423 0.0027777 0.004826 -0.00313043 -0.00482587 0.0 +2849 3.45 3.55 123.75 -0.007852 0.00420337 0.00785189 0.00337755 -0.00423422 -0.00336561 0.0 +2850 3.45 3.55 131.25 -0.00899665 0.00525366 0.00898163 0.00211415 -0.00526556 -0.00211688 0.0 +2851 3.45 3.55 138.75 -0.00658818 0.00353401 0.00658935 0.00247574 -0.00351467 -0.00247806 0.0 +2852 3.45 3.55 146.25 -0.00472251 -0.000274464 0.0047137 0.00454554 0.000265355 -0.00453667 0.0 +2853 3.45 3.55 153.75 -0.00408631 -0.00145214 0.00408205 0.00601461 0.00145164 -0.0060113 0.0 +2854 3.45 3.55 161.25 -0.00213812 0.00336809 0.00214451 0.0045329 -0.00336917 -0.00453833 0.0 +2855 3.45 3.55 168.75 0.002039 0.0122448 -0.00204369 0.000537346 -0.0122471 -0.000536574 0.0 +2856 3.45 3.55 176.25 0.00576826 0.0191805 -0.00579318 -0.00289312 -0.0192316 0.00291892 0.0 +2857 3.45 3.65 3.75 27.0106 27.9613 -27.0106 49.4083 -27.9613 -49.4083 0.0 +2858 3.45 3.65 11.25 14.9394 14.3629 -14.9394 5.91574 -14.3629 -5.91574 0.0 +2859 3.45 3.65 18.75 5.42704 4.99328 -5.42704 -0.785154 -4.99328 0.785155 0.0 +2860 3.45 3.65 26.25 1.05899 1.10476 -1.05899 -0.658621 -1.10476 0.658622 0.0 +2861 3.45 3.65 33.75 0.0281818 0.145917 -0.0281832 -0.129014 -0.145916 0.129014 0.0 +2862 3.45 3.65 41.25 -0.00445013 0.00847625 0.00444947 -0.00108348 -0.0084749 0.00108322 0.0 +2863 3.45 3.65 48.75 0.00425589 -0.0101956 -0.00425551 0.00738506 0.0101965 -0.00738428 0.0 +2864 3.45 3.65 56.25 -0.00818272 -0.00590468 0.00818308 0.00485965 0.00590354 -0.00486006 0.0 +2865 3.45 3.65 63.75 -0.00416452 -0.000816284 0.00416288 0.00103036 0.000813653 -0.00103209 0.0 +2866 3.45 3.65 71.25 0.00103127 -0.00146141 -0.00103277 0.000818187 0.00146199 -0.000819189 0.0 +2867 3.45 3.65 78.75 0.0016058 -0.00187691 -0.00160474 0.000733485 0.00187607 -0.000733211 0.0 +2868 3.45 3.65 86.25 0.00109362 -0.000919641 -0.00109306 -0.000877938 0.000920276 0.000877779 0.0 +2869 3.45 3.65 93.75 0.000615382 -0.000162543 -0.000614614 -0.00196718 0.000162038 0.00196727 0.0 +2870 3.45 3.65 101.25 0.000257077 -9.90887e-05 -0.000257803 -0.00198713 9.8806e-05 0.00198727 0.0 +2871 3.45 3.65 108.75 -0.000415666 -0.000551723 0.000416382 -0.00133258 0.000550085 0.00133277 0.0 +2872 3.45 3.65 116.25 -0.00171058 -0.00100344 0.00171033 -0.000283121 0.00100575 0.000281567 0.0 +2873 3.45 3.65 123.75 -0.00282345 -0.00136999 0.00282231 0.000681739 0.00136679 -0.000680174 0.0 +2874 3.45 3.65 131.25 -0.00293906 -0.00227991 0.00293814 0.00125143 0.00227664 -0.00125029 0.0 +2875 3.45 3.65 138.75 -0.00235433 -0.00392254 0.0023561 0.0016008 0.00392512 -0.00160107 0.0 +2876 3.45 3.65 146.25 -0.00181787 -0.00523799 0.00181858 0.00193355 0.00523773 -0.00193291 0.0 +2877 3.45 3.65 153.75 -0.00147655 -0.00473654 0.00147561 0.00211445 0.00473647 -0.00211477 0.0 +2878 3.45 3.65 161.25 -0.000967812 -0.00201348 0.000967111 0.00191586 0.00201087 -0.00191381 0.0 +2879 3.45 3.65 168.75 -0.000185572 0.00169462 0.000184459 0.00140918 -0.00169418 -0.00140983 0.0 +2880 3.45 3.65 176.25 0.000452234 0.00431542 -0.000452919 0.000978651 -0.00431348 -0.000979895 0.0 +2881 3.55 2.55 3.75 -229.406 -210.878 229.406 294.295 210.878 -294.295 0.0 +2882 3.55 2.55 11.25 -199.57 -142.531 199.57 214.774 142.531 -214.774 0.0 +2883 3.55 2.55 18.75 -155.766 -47.9091 155.766 136.693 47.9091 -136.693 0.0 +2884 3.55 2.55 26.25 -113.195 30.0688 113.195 89.2497 -30.0688 -89.2497 0.0 +2885 3.55 2.55 33.75 -77.4432 72.6073 77.4432 57.649 -72.6073 -57.649 0.0 +2886 3.55 2.55 41.25 -47.4313 83.435 47.4313 29.1262 -83.435 -29.1262 0.0 +2887 3.55 2.55 48.75 -21.4656 76.4023 21.4655 3.49717 -76.4023 -3.49717 0.0 +2888 3.55 2.55 56.25 0.0313289 64.405 -0.0313427 -14.8015 -64.405 14.8015 0.0 +2889 3.55 2.55 63.75 15.3842 54.1613 -15.3842 -23.4846 -54.1613 23.4846 0.0 +2890 3.55 2.55 71.25 23.5807 46.4646 -23.5807 -23.8098 -46.4646 23.8098 0.0 +2891 3.55 2.55 78.75 25.4225 39.3366 -25.4225 -19.2609 -39.3366 19.2609 0.0 +2892 3.55 2.55 86.25 23.3388 31.024 -23.3388 -13.5921 -31.0241 13.5921 0.0 +2893 3.55 2.55 93.75 20.1539 21.135 -20.1539 -9.24297 -21.135 9.24297 0.0 +2894 3.55 2.55 101.25 17.7701 10.268 -17.7701 -6.83623 -10.268 6.83623 0.0 +2895 3.55 2.55 108.75 16.6831 -0.675633 -16.6831 -5.75168 0.675638 5.75168 0.0 +2896 3.55 2.55 116.25 16.4196 -10.8522 -16.4196 -5.06569 10.8522 5.06568 0.0 +2897 3.55 2.55 123.75 16.2857 -19.5797 -16.2857 -4.17308 19.5797 4.17308 0.0 +2898 3.55 2.55 131.25 15.8485 -26.4045 -15.8485 -2.91647 26.4045 2.91647 0.0 +2899 3.55 2.55 138.75 15.02 -31.1759 -15.02 -1.42561 31.1759 1.4256 0.0 +2900 3.55 2.55 146.25 13.9278 -34.062 -13.9278 0.0838222 34.0619 -0.0838168 0.0 +2901 3.55 2.55 153.75 12.7687 -35.4729 -12.7687 1.42997 35.4729 -1.42997 0.0 +2902 3.55 2.55 161.25 11.7278 -35.927 -11.7278 2.49848 35.927 -2.49848 0.0 +2903 3.55 2.55 168.75 10.9505 -35.9169 -10.9505 3.23067 35.917 -3.23067 0.0 +2904 3.55 2.55 176.25 10.5363 -35.8139 -10.5363 3.60114 35.8139 -3.60114 0.0 +2905 3.55 2.65 3.75 -251.703 -244.274 251.703 410.77 244.274 -410.77 0.0 +2906 3.55 2.65 11.25 -212.889 -171.396 212.889 279.716 171.396 -279.716 0.0 +2907 3.55 2.65 18.75 -157.426 -73.7037 157.426 160.214 73.7037 -160.214 0.0 +2908 3.55 2.65 26.25 -106.127 3.62033 106.127 94.6298 -3.62033 -94.6298 0.0 +2909 3.55 2.65 33.75 -66.6414 43.9955 66.6414 57.7405 -43.9955 -57.7405 0.0 +2910 3.55 2.65 41.25 -37.1568 54.118 37.1568 29.0601 -54.118 -29.0601 0.0 +2911 3.55 2.65 48.75 -14.1506 48.9325 14.1506 5.36658 -48.9325 -5.36657 0.0 +2912 3.55 2.65 56.25 3.71459 40.5629 -3.71458 -10.365 -40.5629 10.365 0.0 +2913 3.55 2.65 63.75 16.0185 34.4708 -16.0185 -17.0997 -34.4708 17.0997 0.0 +2914 3.55 2.65 71.25 22.3492 30.686 -22.3492 -16.8785 -30.686 16.8785 0.0 +2915 3.55 2.65 78.75 23.4632 27.0893 -23.4632 -13.1658 -27.0893 13.1658 0.0 +2916 3.55 2.65 86.25 21.3128 22.1249 -21.3128 -9.07321 -22.1249 9.07321 0.0 +2917 3.55 2.65 93.75 18.1341 15.6344 -18.1341 -6.27069 -15.6344 6.2707 0.0 +2918 3.55 2.65 101.25 15.3987 8.31199 -15.3987 -4.90709 -8.31198 4.90709 0.0 +2919 3.55 2.65 108.75 13.4619 0.987899 -13.4619 -4.30622 -0.987895 4.30622 0.0 +2920 3.55 2.65 116.25 11.9812 -5.67249 -11.9811 -3.75874 5.67248 3.75874 0.0 +2921 3.55 2.65 123.75 10.533 -11.1925 -10.533 -2.9196 11.1925 2.9196 0.0 +2922 3.55 2.65 131.25 8.93728 -15.2892 -8.93728 -1.7942 15.2892 1.7942 0.0 +2923 3.55 2.65 138.75 7.2458 -17.9112 -7.24581 -0.551666 17.9112 0.551669 0.0 +2924 3.55 2.65 146.25 5.60299 -19.2413 -5.60297 0.632986 19.2413 -0.632993 0.0 +2925 3.55 2.65 153.75 4.14439 -19.6283 -4.1444 1.64399 19.6283 -1.64399 0.0 +2926 3.55 2.65 161.25 2.96848 -19.4785 -2.96847 2.42373 19.4785 -2.42373 0.0 +2927 3.55 2.65 168.75 2.14406 -19.1576 -2.14405 2.94939 19.1576 -2.94938 0.0 +2928 3.55 2.65 176.25 1.71892 -18.9295 -1.71891 3.21334 18.9295 -3.21334 0.0 +2929 3.55 2.75 3.75 -264.315 -251.884 264.315 554.153 251.884 -554.153 0.0 +2930 3.55 2.75 11.25 -218.018 -178.063 218.018 348.569 178.063 -348.569 0.0 +2931 3.55 2.75 18.75 -153.431 -82.237 153.431 177.523 82.237 -177.523 0.0 +2932 3.55 2.75 26.25 -95.9973 -9.58238 95.9973 92.8913 9.58238 -92.8913 0.0 +2933 3.55 2.75 33.75 -54.8909 26.1439 54.8909 52.4496 -26.1439 -52.4496 0.0 +2934 3.55 2.75 41.25 -27.4701 34.2513 27.4701 25.5556 -34.2513 -25.5556 0.0 +2935 3.55 2.75 48.75 -8.47775 30.1327 8.47774 5.12254 -30.1327 -5.12254 0.0 +2936 3.55 2.75 56.25 5.07875 24.538 -5.07874 -7.50333 -24.538 7.50333 0.0 +2937 3.55 2.75 63.75 13.9817 21.3671 -13.9817 -12.2962 -21.3671 12.2962 0.0 +2938 3.55 2.75 71.25 18.3904 19.9549 -18.3905 -11.6735 -19.9549 11.6735 0.0 +2939 3.55 2.75 78.75 18.9591 18.3138 -18.959 -8.76449 -18.3138 8.76449 0.0 +2940 3.55 2.75 86.25 17.0821 15.3211 -17.0821 -5.94741 -15.3211 5.94741 0.0 +2941 3.55 2.75 93.75 14.3506 11.1288 -14.3506 -4.23127 -11.1288 4.23127 0.0 +2942 3.55 2.75 101.25 11.7989 6.47419 -11.7989 -3.47648 -6.47418 3.47648 0.0 +2943 3.55 2.75 108.75 9.66457 2.01951 -9.66458 -3.0836 -2.0195 3.0836 0.0 +2944 3.55 2.75 116.25 7.74129 -1.82686 -7.7413 -2.58215 1.82685 2.58216 0.0 +2945 3.55 2.75 123.75 5.83466 -4.83284 -5.83465 -1.82939 4.83283 1.8294 0.0 +2946 3.55 2.75 131.25 3.93964 -6.88932 -3.93963 -0.91277 6.8893 0.912773 0.0 +2947 3.55 2.75 138.75 2.16628 -8.02362 -2.16626 0.0181776 8.02364 -0.0181816 0.0 +2948 3.55 2.75 146.25 0.619367 -8.40184 -0.619378 0.852629 8.40183 -0.852624 0.0 +2949 3.55 2.75 153.75 -0.648178 -8.27967 0.648181 1.53734 8.27967 -1.53733 0.0 +2950 3.55 2.75 161.25 -1.61826 -7.92733 1.61826 2.0554 7.92733 -2.0554 0.0 +2951 3.55 2.75 168.75 -2.27916 -7.56871 2.27916 2.4029 7.56872 -2.4029 0.0 +2952 3.55 2.75 176.25 -2.61565 -7.3533 2.61565 2.5776 7.35327 -2.57759 0.0 +2953 3.55 2.85 3.75 -261.527 -235.81 261.527 724.836 235.81 -724.836 0.0 +2954 3.55 2.85 11.25 -211.244 -166.597 211.244 416.164 166.597 -416.164 0.0 +2955 3.55 2.85 18.75 -142.48 -78.6912 142.48 186.852 78.6912 -186.852 0.0 +2956 3.55 2.85 26.25 -83.1221 -14.2229 83.1221 84.8442 14.223 -84.8442 0.0 +2957 3.55 2.85 33.75 -43.0885 15.5567 43.0885 43.3483 -15.5567 -43.3483 0.0 +2958 3.55 2.85 41.25 -19.0807 21.2967 19.0807 20.0983 -21.2967 -20.0983 0.0 +2959 3.55 2.85 48.75 -4.56564 17.9239 4.56566 3.89029 -17.9239 -3.89029 0.0 +2960 3.55 2.85 56.25 4.68974 14.4266 -4.68973 -5.45881 -14.4266 5.45881 0.0 +2961 3.55 2.85 63.75 10.3993 13.1365 -10.3993 -8.55525 -13.1365 8.55525 0.0 +2962 3.55 2.85 71.25 13.149 12.9016 -13.149 -7.76157 -12.9016 7.76157 0.0 +2963 3.55 2.85 78.75 13.4264 12.095 -13.4264 -5.62748 -12.095 5.62748 0.0 +2964 3.55 2.85 86.25 12.0608 10.1297 -12.0608 -3.80584 -10.1297 3.80584 0.0 +2965 3.55 2.85 93.75 10.0367 7.43249 -10.0367 -2.80863 -7.4325 2.80863 0.0 +2966 3.55 2.85 101.25 8.01353 4.69251 -8.01354 -2.3777 -4.69252 2.3777 0.0 +2967 3.55 2.85 108.75 6.15338 2.33759 -6.15338 -2.06536 -2.33757 2.06536 0.0 +2968 3.55 2.85 116.25 4.37451 0.505156 -4.37452 -1.6121 -0.505158 1.61211 0.0 +2969 3.55 2.85 123.75 2.64685 -0.790656 -2.64685 -1.0014 0.790603 1.00141 0.0 +2970 3.55 2.85 131.25 1.0548 -1.57001 -1.05481 -0.336579 1.57001 0.336585 0.0 +2971 3.55 2.85 138.75 -0.301249 -1.89549 0.301247 0.282316 1.8955 -0.282321 0.0 +2972 3.55 2.85 146.25 -1.3849 -1.88523 1.38489 0.806188 1.88523 -0.806188 0.0 +2973 3.55 2.85 153.75 -2.21895 -1.68823 2.21895 1.22569 1.68826 -1.2257 0.0 +2974 3.55 2.85 161.25 -2.83872 -1.44066 2.83873 1.54425 1.44064 -1.54424 0.0 +2975 3.55 2.85 168.75 -3.25933 -1.23657 3.25933 1.76182 1.23656 -1.76182 0.0 +2976 3.55 2.85 176.25 -3.47478 -1.12538 3.47479 1.87313 1.12538 -1.87313 0.0 +2977 3.55 2.95 3.75 -238.248 -195.778 238.248 919.354 195.778 -919.354 0.0 +2978 3.55 2.95 11.25 -189.674 -139.46 189.674 474.265 139.46 -474.265 0.0 +2979 3.55 2.95 18.75 -123.906 -67.0584 123.906 186.836 67.0584 -186.836 0.0 +2980 3.55 2.95 26.25 -68.0315 -14.1389 68.0315 72.1684 14.1389 -72.1684 0.0 +2981 3.55 2.95 33.75 -31.9787 9.22621 31.9787 32.4164 -9.22622 -32.4164 0.0 +2982 3.55 2.95 41.25 -12.3582 12.9007 12.3583 14.1095 -12.9007 -14.1095 0.0 +2983 3.55 2.95 48.75 -2.18494 10.2138 2.18496 2.49295 -10.2139 -2.49296 0.0 +2984 3.55 2.95 56.25 3.3582 8.24208 -3.35821 -3.79474 -8.24206 3.79474 0.0 +2985 3.55 2.95 63.75 6.49294 8.02143 -6.49294 -5.58908 -8.02143 5.58908 0.0 +2986 3.55 2.95 71.25 8.02049 8.19907 -8.0205 -4.84949 -8.19905 4.84949 0.0 +2987 3.55 2.95 78.75 8.22344 7.62696 -8.22344 -3.42621 -7.62696 3.42621 0.0 +2988 3.55 2.95 86.25 7.44006 6.19885 -7.44002 -2.34519 -6.19886 2.34519 0.0 +2989 3.55 2.95 93.75 6.16909 4.49074 -6.16911 -1.80008 -4.49073 1.80008 0.0 +2990 3.55 2.95 101.25 4.7983 3.05613 -4.79831 -1.53727 -3.05611 1.53727 0.0 +2991 3.55 2.95 108.75 3.45573 2.08096 -3.45575 -1.27583 -2.08101 1.27584 0.0 +2992 3.55 2.95 116.25 2.15328 1.48623 -2.15328 -0.907415 -1.48624 0.907424 0.0 +2993 3.55 2.95 123.75 0.949834 1.14548 -0.949837 -0.471692 -1.14549 0.471698 0.0 +2994 3.55 2.95 131.25 -0.0550126 0.978085 0.0550168 -0.0490852 -0.978089 0.0490994 0.0 +2995 3.55 2.95 138.75 -0.810377 0.930404 0.810378 0.312048 -0.930407 -0.312044 0.0 +2996 3.55 2.95 146.25 -1.34711 0.946474 1.34711 0.605449 -0.946508 -0.605443 0.0 +2997 3.55 2.95 153.75 -1.73568 0.972292 1.73566 0.843093 -0.972294 -0.843115 0.0 +2998 3.55 2.95 161.25 -2.0293 0.976791 2.0293 1.03229 -0.976772 -1.0323 0.0 +2999 3.55 2.95 168.75 -2.2408 0.960264 2.24081 1.16853 -0.960251 -1.16853 0.0 +3000 3.55 2.95 176.25 -2.35501 0.942937 2.355 1.24087 -0.942925 -1.24088 0.0 +3001 3.55 3.05 3.75 -191.297 -130.082 191.297 1128.5 130.082 -1128.5 0.0 +3002 3.55 3.05 11.25 -152.226 -97.7637 152.226 511.643 97.7637 -511.643 0.0 +3003 3.55 3.05 18.75 -98.1201 -49.6499 98.1201 176.712 49.6499 -176.712 0.0 +3004 3.55 3.05 26.25 -51.5683 -11.65 51.5683 57.077 11.65 -57.077 0.0 +3005 3.55 3.05 33.75 -22.1446 5.20584 22.1446 21.6579 -5.20585 -21.6579 0.0 +3006 3.55 3.05 41.25 -7.38019 7.37579 7.38014 8.71709 -7.37577 -8.71708 0.0 +3007 3.55 3.05 48.75 -0.926333 5.37849 0.926342 1.38286 -5.3785 -1.38286 0.0 +3008 3.55 3.05 56.25 1.85514 4.42058 -1.85514 -2.37141 -4.42058 2.3714 0.0 +3009 3.55 3.05 63.75 3.22617 4.68783 -3.22619 -3.29462 -4.68786 3.29461 0.0 +3010 3.55 3.05 71.25 3.99011 4.90415 -3.99008 -2.75614 -4.9041 2.75615 0.0 +3011 3.55 3.05 78.75 4.23211 4.38385 -4.2321 -1.92599 -4.38384 1.92599 0.0 +3012 3.55 3.05 86.25 3.94062 3.32631 -3.9406 -1.36028 -3.3263 1.36028 0.0 +3013 3.55 3.05 93.75 3.29323 2.3031 -3.29324 -1.08948 -2.30313 1.08948 0.0 +3014 3.55 3.05 101.25 2.51472 1.68908 -2.51471 -0.92722 -1.68906 0.92722 0.0 +3015 3.55 3.05 108.75 1.72258 1.48366 -1.72257 -0.729229 -1.48363 0.72922 0.0 +3016 3.55 3.05 116.25 0.978063 1.49003 -0.978058 -0.472368 -1.49006 0.47237 0.0 +3017 3.55 3.05 123.75 0.361941 1.5347 -0.361928 -0.204692 -1.53463 0.204681 0.0 +3018 3.55 3.05 131.25 -0.0580488 1.53872 0.0580497 0.0271852 -1.53873 -0.02718 0.0 +3019 3.55 3.05 138.75 -0.288182 1.48156 0.28818 0.211303 -1.48158 -0.211288 0.0 +3020 3.55 3.05 146.25 -0.402687 1.35988 0.402687 0.361419 -1.35985 -0.361436 0.0 +3021 3.55 3.05 153.75 -0.484044 1.18137 0.484038 0.493182 -1.18138 -0.493177 0.0 +3022 3.55 3.05 161.25 -0.573201 0.974726 0.573209 0.609288 -0.974728 -0.60928 0.0 +3023 3.55 3.05 168.75 -0.662445 0.789454 0.662456 0.699577 -0.789456 -0.699573 0.0 +3024 3.55 3.05 176.25 -0.7198 0.679375 0.719786 0.749601 -0.679392 -0.749593 0.0 +3025 3.55 3.15 3.75 -120.535 -38.5135 120.535 1334.4 38.5135 -1334.4 0.0 +3026 3.55 3.15 11.25 -100.361 -42.9397 100.361 515.461 42.9397 -515.461 0.0 +3027 3.55 3.15 18.75 -66.8257 -27.6715 66.8257 156.437 27.6715 -156.437 0.0 +3028 3.55 3.15 26.25 -34.8806 -7.69081 34.8806 41.7654 7.69081 -41.7654 0.0 +3029 3.55 3.15 33.75 -13.9952 2.60989 13.9952 12.6685 -2.60989 -12.6685 0.0 +3030 3.55 3.15 41.25 -4.0045 3.76721 4.00452 4.60296 -3.76722 -4.60296 0.0 +3031 3.55 3.15 48.75 -0.362908 2.40871 0.362911 0.684517 -2.40873 -0.684496 0.0 +3032 3.55 3.15 56.25 0.698355 2.02222 -0.698341 -1.23238 -2.0222 1.23238 0.0 +3033 3.55 3.15 63.75 1.08795 2.40699 -1.08797 -1.65461 -2.40696 1.65462 0.0 +3034 3.55 3.15 71.25 1.45251 2.55615 -1.45253 -1.35584 -2.55613 1.35584 0.0 +3035 3.55 3.15 78.75 1.73638 2.12607 -1.73637 -0.957408 -2.12608 0.957409 0.0 +3036 3.55 3.15 86.25 1.74868 1.41086 -1.74869 -0.717153 -1.41085 0.717153 0.0 +3037 3.55 3.15 93.75 1.5066 0.86199 -1.5066 -0.608615 -0.862043 0.608616 0.0 +3038 3.55 3.15 101.25 1.15427 0.692349 -1.15426 -0.521959 -0.692347 0.521961 0.0 +3039 3.55 3.15 108.75 0.799794 0.807097 -0.799796 -0.399775 -0.80711 0.399772 0.0 +3040 3.55 3.15 116.25 0.510123 0.993297 -0.510111 -0.252463 -0.993286 0.252463 0.0 +3041 3.55 3.15 123.75 0.344561 1.10258 -0.344571 -0.114896 -1.10259 0.114902 0.0 +3042 3.55 3.15 131.25 0.32494 1.09044 -0.324933 -0.00704299 -1.09044 0.00704928 0.0 +3043 3.55 3.15 138.75 0.404925 0.966593 -0.404949 0.0762265 -0.966647 -0.0762275 0.0 +3044 3.55 3.15 146.25 0.499444 0.753676 -0.499415 0.151485 -0.753669 -0.151477 0.0 +3045 3.55 3.15 153.75 0.542832 0.481048 -0.542816 0.22901 -0.481047 -0.229008 0.0 +3046 3.55 3.15 161.25 0.522198 0.193975 -0.522177 0.305586 -0.193965 -0.305594 0.0 +3047 3.55 3.15 168.75 0.468573 -0.0480481 -0.468564 0.368598 0.048046 -0.368601 0.0 +3048 3.55 3.15 176.25 0.426757 -0.187013 -0.426752 0.404298 0.186996 -0.404293 0.0 +3049 3.55 3.25 3.75 -29.6653 73.925 29.6653 1503.64 -73.925 -1503.64 0.0 +3050 3.55 3.25 11.25 -38.343 21.1792 38.343 474.484 -21.1792 -474.484 0.0 +3051 3.55 3.25 18.75 -32.9234 -2.3694 32.9234 126.727 2.3694 -126.727 0.0 +3052 3.55 3.25 26.25 -19.3004 -2.48733 19.3004 27.8286 2.48732 -27.8286 0.0 +3053 3.55 3.25 33.75 -7.74679 1.20452 7.74681 6.29538 -1.20452 -6.29539 0.0 +3054 3.55 3.25 41.25 -1.94619 1.60378 1.94618 1.96617 -1.60377 -1.96616 0.0 +3055 3.55 3.25 48.75 -0.157335 0.755813 0.157348 0.31596 -0.755837 -0.315945 0.0 +3056 3.55 3.25 56.25 0.0714287 0.611962 -0.0714357 -0.460837 -0.611969 0.460849 0.0 +3057 3.55 3.25 63.75 0.0702285 0.923583 -0.0701829 -0.637809 -0.923614 0.637808 0.0 +3058 3.55 3.25 71.25 0.254878 1.02447 -0.25488 -0.526913 -1.02446 0.526913 0.0 +3059 3.55 3.25 78.75 0.514287 0.758419 -0.514308 -0.387335 -0.758396 0.387332 0.0 +3060 3.55 3.25 86.25 0.632201 0.354653 -0.632241 -0.323832 -0.354649 0.323832 0.0 +3061 3.55 3.25 93.75 0.582318 0.103028 -0.582347 -0.305332 -0.103026 0.305331 0.0 +3062 3.55 3.25 101.25 0.46996 0.111698 -0.46996 -0.276841 -0.111679 0.276842 0.0 +3063 3.55 3.25 108.75 0.380585 0.279066 -0.380591 -0.223034 -0.279092 0.223042 0.0 +3064 3.55 3.25 116.25 0.358122 0.44336 -0.358142 -0.159424 -0.443412 0.159434 0.0 +3065 3.55 3.25 123.75 0.427025 0.512673 -0.427042 -0.104868 -0.51267 0.104858 0.0 +3066 3.55 3.25 131.25 0.574576 0.475402 -0.574594 -0.0645124 -0.475427 0.0645121 0.0 +3067 3.55 3.25 138.75 0.741562 0.351546 -0.741556 -0.0294911 -0.351565 0.0294968 0.0 +3068 3.55 3.25 146.25 0.857969 0.161727 -0.85796 0.0114794 -0.16175 -0.0114787 0.0 +3069 3.55 3.25 153.75 0.888764 -0.0710245 -0.888769 0.0613246 0.071072 -0.0613482 0.0 +3070 3.55 3.25 161.25 0.848268 -0.311204 -0.848278 0.113131 0.311192 -0.113144 0.0 +3071 3.55 3.25 168.75 0.781206 -0.511438 -0.781203 0.155702 0.511431 -0.155695 0.0 +3072 3.55 3.25 176.25 0.733873 -0.625736 -0.733895 0.1795 0.625763 -0.179513 0.0 +3073 3.55 3.35 3.75 70.5641 186.771 -70.5641 1508.57 -186.771 -1508.57 0.0 +3074 3.55 3.35 11.25 26.1135 83.8672 -26.1135 369.137 -83.8672 -369.137 0.0 +3075 3.55 3.35 18.75 -0.0874673 23.0482 0.0874728 85.6093 -23.0482 -85.6093 0.0 +3076 3.55 3.35 26.25 -5.90552 3.52135 5.90552 15.2641 -3.52136 -15.2641 0.0 +3077 3.55 3.35 33.75 -3.28275 0.861657 3.28277 2.42219 -0.861647 -2.42219 0.0 +3078 3.55 3.35 41.25 -0.811789 0.540902 0.811771 0.587392 -0.540899 -0.587387 0.0 +3079 3.55 3.35 48.75 -0.092098 0.0540773 0.0921139 0.12834 -0.0540653 -0.128329 0.0 +3080 3.55 3.35 56.25 -0.113419 -0.0251278 0.113414 -0.065704 0.0251121 0.0657004 0.0 +3081 3.55 3.35 63.75 -0.169707 0.151465 0.169684 -0.136214 -0.151455 0.136224 0.0 +3082 3.55 3.35 71.25 -0.0770462 0.234517 0.0770254 -0.122786 -0.234512 0.122797 0.0 +3083 3.55 3.35 78.75 0.080157 0.14264 -0.0801127 -0.0976888 -0.142618 0.0976915 0.0 +3084 3.55 3.35 86.25 0.16526 -0.0245321 -0.16523 -0.105724 0.0245585 0.105724 0.0 +3085 3.55 3.35 93.75 0.16494 -0.121904 -0.164953 -0.124366 0.121903 0.124366 0.0 +3086 3.55 3.35 101.25 0.150547 -0.0889324 -0.150553 -0.128054 0.0889257 0.128048 0.0 +3087 3.55 3.35 108.75 0.170286 0.0175738 -0.170291 -0.117975 -0.0175791 0.117976 0.0 +3088 3.55 3.35 116.25 0.23787 0.110881 -0.237884 -0.105416 -0.110839 0.105397 0.0 +3089 3.55 3.35 123.75 0.352555 0.149885 -0.352566 -0.0967577 -0.149898 0.0967502 0.0 +3090 3.55 3.35 131.25 0.489812 0.135495 -0.489818 -0.0893887 -0.135477 0.0893863 0.0 +3091 3.55 3.35 138.75 0.60086 0.077142 -0.600855 -0.0756476 -0.0771297 0.0756365 0.0 +3092 3.55 3.35 146.25 0.643546 -0.0196771 -0.643564 -0.0510493 0.0196634 0.0510486 0.0 +3093 3.55 3.35 153.75 0.611551 -0.145928 -0.611561 -0.0188268 0.145921 0.0188254 0.0 +3094 3.55 3.35 161.25 0.533916 -0.281245 -0.533921 0.0128836 0.281282 -0.0128976 0.0 +3095 3.55 3.35 168.75 0.453006 -0.396367 -0.453027 0.0367463 0.396347 -0.036746 0.0 +3096 3.55 3.35 176.25 0.403626 -0.462625 -0.403626 0.0491182 0.462593 -0.0490967 0.0 +3097 3.55 3.45 3.75 121.762 207.785 -121.762 962.688 -207.785 -962.688 0.0 +3098 3.55 3.45 11.25 60.8866 100.045 -60.8866 171.897 -100.045 -171.897 0.0 +3099 3.55 3.45 18.75 19.2588 32.9384 -19.2588 31.2407 -32.9384 -31.2407 0.0 +3100 3.55 3.45 26.25 2.44295 6.83148 -2.44294 3.77225 -6.83148 -3.77225 0.0 +3101 3.55 3.45 33.75 -0.567079 0.958398 0.567088 0.416847 -0.958393 -0.416854 0.0 +3102 3.55 3.45 41.25 -0.222537 0.179899 0.222522 0.084085 -0.179913 -0.0840813 0.0 +3103 3.55 3.45 48.75 -0.0448672 -0.0437923 0.0448399 0.028244 0.0437888 -0.0282332 0.0 +3104 3.55 3.45 56.25 -0.0627155 -0.090292 0.0626997 0.0294423 0.0902953 -0.0294398 0.0 +3105 3.55 3.45 63.75 -0.0651564 -0.0351753 0.0651434 0.00414308 0.035192 -0.00412588 0.0 +3106 3.55 3.45 71.25 -0.042218 0.0132608 0.0422006 -0.00188957 -0.0132483 0.00189618 0.0 +3107 3.55 3.45 78.75 -0.0116982 0.0190232 0.011707 1.57271e-05 -0.0190144 -1.64085e-05 0.0 +3108 3.55 3.45 86.25 0.00013451 -0.0138769 -0.000144209 -0.0123824 0.0138849 0.0123821 0.0 +3109 3.55 3.45 93.75 -0.00393746 -0.0447471 0.00392985 -0.0246058 0.0447166 0.0246083 0.0 +3110 3.55 3.45 101.25 0.00141228 -0.0409447 -0.0013985 -0.0283161 0.0409468 0.0283156 0.0 +3111 3.55 3.45 108.75 0.0263281 -0.010178 -0.0263265 -0.0311072 0.0101511 0.0311133 0.0 +3112 3.55 3.45 116.25 0.0681867 0.0249438 -0.0681732 -0.0385014 -0.0249297 0.0385108 0.0 +3113 3.55 3.45 123.75 0.121836 0.0519122 -0.121824 -0.0480196 -0.0519073 0.048018 0.0 +3114 3.55 3.45 131.25 0.172268 0.0658221 -0.17226 -0.0530535 -0.0658407 0.0530668 0.0 +3115 3.55 3.45 138.75 0.195564 0.0618726 -0.19556 -0.0485273 -0.0619059 0.0485432 0.0 +3116 3.55 3.45 146.25 0.177362 0.0378149 -0.17737 -0.0351206 -0.0378521 0.0351336 0.0 +3117 3.55 3.45 153.75 0.125251 -0.00187406 -0.125266 -0.0186947 0.00187352 0.018683 0.0 +3118 3.55 3.45 161.25 0.0620088 -0.0466966 -0.0619998 -0.0055378 0.0466948 0.00554231 0.0 +3119 3.55 3.45 168.75 0.00986362 -0.0846755 -0.00985828 0.00176039 0.0846777 -0.00175711 0.0 +3120 3.55 3.45 176.25 -0.0183927 -0.10623 0.0183719 0.00441031 0.106201 -0.00440336 0.0 +3121 3.55 3.55 3.75 81.0059 113.34 -81.0059 260.352 -113.34 -260.352 0.0 +3122 3.55 3.55 11.25 42.1524 56.4121 -42.1524 26.3617 -56.4121 -26.3617 0.0 +3123 3.55 3.55 18.75 14.7132 19.7973 -14.7132 -0.755035 -19.7973 0.755033 0.0 +3124 3.55 3.55 26.25 2.79612 4.5306 -2.79613 -1.38915 -4.53059 1.38915 0.0 +3125 3.55 3.55 33.75 0.10053 0.64794 -0.100533 -0.160016 -0.647941 0.160018 0.0 +3126 3.55 3.55 41.25 -0.0178303 0.07505 0.0178293 0.0195223 -0.0750523 -0.0195244 0.0 +3127 3.55 3.55 48.75 -0.00517875 -0.00351167 0.00518041 0.00760166 0.00350383 -0.00760536 0.0 +3128 3.55 3.55 56.25 -0.0146237 -0.0107977 0.0146179 0.0109189 0.0107984 -0.0109269 0.0 +3129 3.55 3.55 63.75 -3.87507e-05 -0.00362228 4.15324e-05 -0.000860953 0.0036153 0.000862609 0.0 +3130 3.55 3.55 71.25 0.00025554 0.00310581 -0.000258051 -0.00193062 -0.00311301 0.00192984 0.0 +3131 3.55 3.55 78.75 -0.00939829 0.0115235 0.0094016 0.000961058 -0.0115276 -0.000962838 0.0 +3132 3.55 3.55 86.25 -0.0165596 0.0133942 0.0165552 -0.000618444 -0.0133937 0.000618414 0.0 +3133 3.55 3.55 93.75 -0.0192198 0.0081303 0.0192237 0.000800086 -0.00813014 -0.000800389 0.0 +3134 3.55 3.55 101.25 -0.0173135 0.00397392 0.017316 0.00498683 -0.0039722 -0.00498686 0.0 +3135 3.55 3.55 108.75 -0.0127763 0.00613703 0.0127729 0.00547732 -0.00614031 -0.00547708 0.0 +3136 3.55 3.55 116.25 -0.00660985 0.0146966 0.00660871 0.000809944 -0.0146938 -0.000810497 0.0 +3137 3.55 3.55 123.75 0.00134833 0.025362 -0.00135008 -0.00514917 -0.0253577 0.0051477 0.0 +3138 3.55 3.55 131.25 0.00729171 0.0312649 -0.00729682 -0.00779015 -0.0312805 0.00779548 0.0 +3139 3.55 3.55 138.75 0.00442273 0.0279187 -0.00442424 -0.00517592 -0.0279147 0.00517078 0.0 +3140 3.55 3.55 146.25 -0.0095565 0.0168767 0.00955964 0.000965394 -0.0168727 -0.000968108 0.0 +3141 3.55 3.55 153.75 -0.0293138 0.00381127 0.0293123 0.00695552 -0.00382228 -0.00695117 0.0 +3142 3.55 3.55 161.25 -0.0467198 -0.00619086 0.0467172 0.0101031 0.00618452 -0.0101001 0.0 +3143 3.55 3.55 168.75 -0.0572524 -0.0115126 0.0572543 0.0103575 0.0115196 -0.0103592 0.0 +3144 3.55 3.55 176.25 -0.0614583 -0.0133864 0.0614549 0.00960442 0.0133863 -0.00960501 0.0 +3145 3.55 3.65 3.75 12.0786 14.33 -12.0786 4.38613 -14.33 -4.38613 0.0 +3146 3.55 3.65 11.25 6.33912 7.33576 -6.33912 -3.18423 -7.33576 3.18423 0.0 +3147 3.55 3.65 18.75 2.17784 2.6298 -2.17784 -1.96003 -2.6298 1.96003 0.0 +3148 3.55 3.65 26.25 0.39006 0.617253 -0.390059 -0.575786 -0.617253 0.575786 0.0 +3149 3.55 3.65 33.75 0.012681 0.0862211 -0.0126807 -0.0681723 -0.0862212 0.0681722 0.0 +3150 3.55 3.65 41.25 0.00502234 0.00223156 -0.00502212 0.00459513 -0.00223169 -0.00459442 0.0 +3151 3.55 3.65 48.75 0.00119944 -0.00628422 -0.00119894 0.00406756 0.00628446 -0.004068 0.0 +3152 3.55 3.65 56.25 -0.00386742 -0.003943 0.0038666 0.00178896 0.00394351 -0.00178918 0.0 +3153 3.55 3.65 63.75 -8.12468e-05 -0.00348925 8.0267e-05 -0.000674629 0.00348964 0.000674362 0.0 +3154 3.55 3.65 71.25 0.00192557 -0.00505585 -0.00192533 -0.00075298 0.00505521 0.00075297 0.0 +3155 3.55 3.65 78.75 0.00130323 -0.00454114 -0.0013032 -0.000636843 0.00454084 0.000636893 0.0 +3156 3.55 3.65 86.25 0.000803867 -0.00245655 -0.00080399 -0.00102105 0.0024577 0.00102106 0.0 +3157 3.55 3.65 93.75 0.0005973 -0.00111275 -0.000596389 -0.00057336 0.00111433 0.000573242 0.0 +3158 3.55 3.65 101.25 8.21929e-06 -0.00103481 -8.12152e-06 0.000450279 0.00103466 -0.00045023 0.0 +3159 3.55 3.65 108.75 -0.00119309 -0.00126494 0.00119399 0.0010993 0.00126523 -0.00109935 0.0 +3160 3.55 3.65 116.25 -0.00250233 -0.00111306 0.0025023 0.00122707 0.00111394 -0.00122737 0.0 +3161 3.55 3.65 123.75 -0.00325961 -0.00112678 0.00325939 0.00125572 0.00112681 -0.00125599 0.0 +3162 3.55 3.65 131.25 -0.0035151 -0.00233904 0.00351542 0.00158179 0.00233879 -0.00158147 0.0 +3163 3.55 3.65 138.75 -0.00380524 -0.00487295 0.00380513 0.00228977 0.0048732 -0.00229011 0.0 +3164 3.55 3.65 146.25 -0.00421555 -0.00763611 0.00421483 0.00312216 0.00763468 -0.00312155 0.0 +3165 3.55 3.65 153.75 -0.0041875 -0.00929866 0.0041879 0.00369562 0.00929919 -0.00369561 0.0 +3166 3.55 3.65 161.25 -0.00326306 -0.00936525 0.00326349 0.00381045 0.00936578 -0.00381069 0.0 +3167 3.55 3.65 168.75 -0.00175148 -0.00841033 0.00175132 0.00358917 0.00841037 -0.00358917 0.0 +3168 3.55 3.65 176.25 -0.000592392 -0.007527 0.000592354 0.00335056 0.00752733 -0.00335069 0.0 +3169 3.65 2.55 3.75 -40.009 -15.4008 40.009 40.0274 15.4008 -40.0274 0.0 +3170 3.65 2.55 11.25 -35.9275 -8.01432 35.9275 33.2501 8.01432 -33.2501 0.0 +3171 3.65 2.55 18.75 -29.1111 2.18604 29.1111 25.2314 -2.18604 -25.2314 0.0 +3172 3.65 2.55 26.25 -21.3547 10.3626 21.3547 18.2796 -10.3626 -18.2796 0.0 +3173 3.65 2.55 33.75 -13.9719 14.348 13.9719 11.7967 -14.348 -11.7967 0.0 +3174 3.65 2.55 41.25 -7.5442 14.6453 7.54421 5.59102 -14.6453 -5.59102 0.0 +3175 3.65 2.55 48.75 -2.24061 13.0038 2.24061 0.431082 -13.0038 -0.431082 0.0 +3176 3.65 2.55 56.25 1.8288 11.0249 -1.8288 -2.89428 -11.0249 2.89428 0.0 +3177 3.65 2.55 63.75 4.53289 9.46602 -4.53289 -4.23204 -9.46602 4.23204 0.0 +3178 3.65 2.55 71.25 5.85495 8.2892 -5.85495 -4.06592 -8.2892 4.06592 0.0 +3179 3.65 2.55 78.75 6.02504 7.12145 -6.02504 -3.16889 -7.12145 3.16889 0.0 +3180 3.65 2.55 86.25 5.48507 5.68167 -5.48507 -2.21374 -5.68167 2.21374 0.0 +3181 3.65 2.55 93.75 4.69928 3.93064 -4.69928 -1.54457 -3.93064 1.54457 0.0 +3182 3.65 2.55 101.25 3.96919 2.00212 -3.96919 -1.18342 -2.00212 1.18342 0.0 +3183 3.65 2.55 108.75 3.38632 0.0868782 -3.38632 -0.988945 -0.0868777 0.988945 0.0 +3184 3.65 2.55 116.25 2.91224 -1.63935 -2.91224 -0.817586 1.63935 0.817586 0.0 +3185 3.65 2.55 123.75 2.48437 -3.04769 -2.48437 -0.599486 3.04769 0.599486 0.0 +3186 3.65 2.55 131.25 2.07217 -4.07177 -2.07217 -0.334193 4.07177 0.334193 0.0 +3187 3.65 2.55 138.75 1.67928 -4.7127 -1.67928 -0.0541061 4.7127 0.0541055 0.0 +3188 3.65 2.55 146.25 1.324 -5.02905 -1.324 0.206511 5.02905 -0.206511 0.0 +3189 3.65 2.55 153.75 1.02384 -5.11434 -1.02384 0.42501 5.11435 -0.425011 0.0 +3190 3.65 2.55 161.25 0.790618 -5.0708 -0.79062 0.59084 5.0708 -0.59084 0.0 +3191 3.65 2.55 168.75 0.631514 -4.98804 -0.631514 0.701038 4.98804 -0.701038 0.0 +3192 3.65 2.55 176.25 0.550863 -4.9302 -0.550863 0.755804 4.93019 -0.755804 0.0 +3193 3.65 2.65 3.75 -40.3415 -20.4462 40.3414 48.2003 20.4462 -48.2003 0.0 +3194 3.65 2.65 11.25 -35.6139 -12.537 35.6139 37.6321 12.537 -37.6321 0.0 +3195 3.65 2.65 18.75 -27.8935 -1.94676 27.8935 26.3964 1.94676 -26.3964 0.0 +3196 3.65 2.65 26.25 -19.4761 6.1859 19.4761 18.0571 -6.1859 -18.0571 0.0 +3197 3.65 2.65 33.75 -11.9713 9.93876 11.9713 11.3141 -9.93876 -11.3141 0.0 +3198 3.65 2.65 41.25 -5.94346 10.1979 5.94346 5.35283 -10.1979 -5.35283 0.0 +3199 3.65 2.65 48.75 -1.33924 8.87517 1.33925 0.645199 -8.87517 -0.645199 0.0 +3200 3.65 2.65 56.25 1.99711 7.47429 -1.99711 -2.21792 -7.47429 2.21792 0.0 +3201 3.65 2.65 63.75 4.13172 6.56384 -4.13172 -3.25512 -6.56384 3.25512 0.0 +3202 3.65 2.65 71.25 5.12808 5.97847 -5.12807 -3.03446 -5.97846 3.03446 0.0 +3203 3.65 2.65 78.75 5.18813 5.32387 -5.18814 -2.29047 -5.32387 2.29047 0.0 +3204 3.65 2.65 86.25 4.66497 4.36756 -4.66497 -1.57788 -4.36756 1.57788 0.0 +3205 3.65 2.65 93.75 3.92751 3.12819 -3.92751 -1.12411 -3.12819 1.12411 0.0 +3206 3.65 2.65 101.25 3.21269 1.76422 -3.21269 -0.893827 -1.76422 0.893826 0.0 +3207 3.65 2.65 108.75 2.59178 0.449106 -2.59178 -0.752929 -0.449104 0.752929 0.0 +3208 3.65 2.65 116.25 2.0428 -0.685103 -2.0428 -0.59797 0.685104 0.597969 0.0 +3209 3.65 2.65 123.75 1.53526 -1.55782 -1.53526 -0.396906 1.55781 0.396906 0.0 +3210 3.65 2.65 131.25 1.06531 -2.13944 -1.0653 -0.167518 2.13944 0.167517 0.0 +3211 3.65 2.65 138.75 0.647302 -2.44867 -0.6473 0.0582564 2.44867 -0.0582566 0.0 +3212 3.65 2.65 146.25 0.295526 -2.54219 -0.295526 0.256206 2.54219 -0.256206 0.0 +3213 3.65 2.65 153.75 0.015987 -2.49637 -0.0159868 0.414877 2.49637 -0.414877 0.0 +3214 3.65 2.65 161.25 -0.191615 -2.38798 0.191615 0.531758 2.38798 -0.531758 0.0 +3215 3.65 2.65 168.75 -0.329232 -2.2801 0.329232 0.608128 2.2801 -0.608129 0.0 +3216 3.65 2.65 176.25 -0.397947 -2.21557 0.397946 0.645792 2.21557 -0.645792 0.0 +3217 3.65 2.75 3.75 -39.2092 -22.6483 39.2092 57.4865 22.6483 -57.4865 0.0 +3218 3.65 2.75 11.25 -34.0902 -14.5832 34.0902 41.5462 14.5832 -41.5462 0.0 +3219 3.65 2.75 18.75 -25.8464 -4.11523 25.8464 26.3647 4.11523 -26.3647 0.0 +3220 3.65 2.75 26.25 -17.1522 3.55165 17.1522 16.7014 -3.55165 -16.7014 0.0 +3221 3.65 2.75 33.75 -9.84656 6.82027 9.84656 10.0278 -6.82027 -10.0278 0.0 +3222 3.65 2.75 41.25 -4.45564 6.92657 4.45564 4.64181 -6.92657 -4.64181 0.0 +3223 3.65 2.75 48.75 -0.70807 5.85889 0.708069 0.607165 -5.85889 -0.607165 0.0 +3224 3.65 2.75 56.25 1.80566 4.93589 -1.80566 -1.70515 -4.93589 1.70515 0.0 +3225 3.65 2.75 63.75 3.33924 4.49868 -3.33924 -2.44435 -4.49868 2.44435 0.0 +3226 3.65 2.75 71.25 4.02671 4.27839 -4.02671 -2.19705 -4.27839 2.19705 0.0 +3227 3.65 2.75 78.75 4.02726 3.91248 -4.02727 -1.60919 -3.91248 1.60919 0.0 +3228 3.65 2.75 86.25 3.58908 3.25589 -3.58908 -1.10369 -3.25589 1.10369 0.0 +3229 3.65 2.75 93.75 2.9762 2.39149 -2.9762 -0.808766 -2.39149 0.808766 0.0 +3230 3.65 2.75 101.25 2.36071 1.48535 -2.36071 -0.659115 -1.48535 0.659115 0.0 +3231 3.65 2.75 108.75 1.79777 0.671454 -1.79777 -0.545142 -0.671455 0.545142 0.0 +3232 3.65 2.75 116.25 1.28284 0.0234409 -1.28284 -0.404026 -0.0234405 0.404026 0.0 +3233 3.65 2.75 123.75 0.811743 -0.43038 -0.811744 -0.231178 0.43038 0.231178 0.0 +3234 3.65 2.75 131.25 0.396762 -0.692839 -0.396759 -0.0508027 0.692839 0.0508029 0.0 +3235 3.65 2.75 138.75 0.0525657 -0.79188 -0.0525663 0.112907 0.79188 -0.112907 0.0 +3236 3.65 2.75 146.25 -0.216914 -0.773428 0.216914 0.247559 0.773429 -0.247559 0.0 +3237 3.65 2.75 153.75 -0.418494 -0.689828 0.418494 0.351026 0.689828 -0.351026 0.0 +3238 3.65 2.75 161.25 -0.562315 -0.588117 0.562314 0.425709 0.588116 -0.425709 0.0 +3239 3.65 2.75 168.75 -0.655784 -0.50303 0.655784 0.474309 0.503029 -0.474309 0.0 +3240 3.65 2.75 176.25 -0.70215 -0.455711 0.702148 0.498348 0.45571 -0.498348 0.0 +3241 3.65 2.85 3.75 -36.1987 -22.1966 36.1987 67.8757 22.1966 -67.8757 0.0 +3242 3.65 2.85 11.25 -31.1231 -14.5476 31.1231 44.722 14.5476 -44.722 0.0 +3243 3.65 2.85 18.75 -22.9507 -4.83831 22.9507 25.1442 4.83831 -25.1442 0.0 +3244 3.65 2.85 26.25 -14.5015 1.99182 14.5015 14.4274 -1.99182 -14.4274 0.0 +3245 3.65 2.85 33.75 -7.74532 4.65105 7.74531 8.19298 -4.65105 -8.19298 0.0 +3246 3.65 2.85 41.25 -3.16789 4.58365 3.16789 3.66897 -4.58364 -3.66897 0.0 +3247 3.65 2.85 48.75 -0.326482 3.73795 0.326483 0.458076 -3.73795 -0.458076 0.0 +3248 3.65 2.85 56.25 1.38627 3.19238 -1.38627 -1.27721 -3.19238 1.27721 0.0 +3249 3.65 2.85 63.75 2.36943 3.06551 -2.36943 -1.75743 -3.06551 1.75743 0.0 +3250 3.65 2.85 71.25 2.8034 3.02746 -2.8034 -1.52065 -3.02746 1.52065 0.0 +3251 3.65 2.85 78.75 2.79373 2.78904 -2.79373 -1.08761 -2.78904 1.08761 0.0 +3252 3.65 2.85 86.25 2.48238 2.30604 -2.48238 -0.752322 -2.30604 0.752322 0.0 +3253 3.65 2.85 93.75 2.0349 1.7119 -2.0349 -0.569675 -1.71189 0.569675 0.0 +3254 3.65 2.85 101.25 1.56805 1.15837 -1.56805 -0.468524 -1.15836 0.468524 0.0 +3255 3.65 2.85 108.75 1.12682 0.726277 -1.12682 -0.371897 -0.726277 0.371897 0.0 +3256 3.65 2.85 116.25 0.721911 0.430298 -0.72191 -0.250757 -0.430296 0.250757 0.0 +3257 3.65 2.85 123.75 0.366105 0.255384 -0.366107 -0.115872 -0.255384 0.115872 0.0 +3258 3.65 2.85 131.25 0.0764133 0.178392 -0.0764139 0.0109956 -0.178395 -0.0109948 0.0 +3259 3.65 2.85 138.75 -0.140159 0.172548 0.140159 0.116179 -0.17255 -0.116179 0.0 +3260 3.65 2.85 146.25 -0.292185 0.208833 0.292184 0.197279 -0.208836 -0.197279 0.0 +3261 3.65 2.85 153.75 -0.396562 0.260566 0.396563 0.257879 -0.260565 -0.25788 0.0 +3262 3.65 2.85 161.25 -0.468221 0.308506 0.468223 0.301952 -0.308503 -0.301952 0.0 +3263 3.65 2.85 168.75 -0.515005 0.342587 0.515006 0.331407 -0.342587 -0.331407 0.0 +3264 3.65 2.85 176.25 -0.538677 0.359692 0.538675 0.346347 -0.359693 -0.346347 0.0 +3265 3.65 2.95 3.75 -31.0019 -19.003 31.0019 78.9744 19.003 -78.9744 0.0 +3266 3.65 2.95 11.25 -26.5858 -12.6408 26.5858 46.6915 12.6408 -46.6915 0.0 +3267 3.65 2.95 18.75 -19.2587 -4.5184 19.2587 22.835 4.51841 -22.835 0.0 +3268 3.65 2.95 26.25 -11.6633 1.10677 11.6633 11.5723 -1.10677 -11.5723 0.0 +3269 3.65 2.95 33.75 -5.7939 3.11687 5.79389 6.11985 -3.11686 -6.11985 0.0 +3270 3.65 2.95 41.25 -2.12727 2.91559 2.12727 2.63537 -2.91559 -2.63537 0.0 +3271 3.65 2.95 48.75 -0.137034 2.26979 0.137037 0.297769 -2.26979 -0.297769 0.0 +3272 3.65 2.95 56.25 0.89062 1.99985 -0.89062 -0.897052 -1.99985 0.897051 0.0 +3273 3.65 2.95 63.75 1.43386 2.04765 -1.43386 -1.17926 -2.04765 1.17926 0.0 +3274 3.65 2.95 71.25 1.68765 2.07234 -1.68766 -0.985761 -2.07234 0.985761 0.0 +3275 3.65 2.95 78.75 1.70109 1.87698 -1.70109 -0.696346 -1.87698 0.696346 0.0 +3276 3.65 2.95 86.25 1.52434 1.50326 -1.52434 -0.494147 -1.50326 0.494147 0.0 +3277 3.65 2.95 93.75 1.24419 1.10746 -1.24419 -0.388517 -1.10746 0.388517 0.0 +3278 3.65 2.95 101.25 0.937154 0.808793 -0.937155 -0.318937 -0.808791 0.318936 0.0 +3279 3.65 2.95 108.75 0.642843 0.634786 -0.642845 -0.240126 -0.634789 0.240127 0.0 +3280 3.65 2.95 116.25 0.381776 0.554629 -0.381776 -0.145979 -0.554627 0.14598 0.0 +3281 3.65 2.95 123.75 0.17295 0.527744 -0.17295 -0.0522492 -0.527741 0.0522488 0.0 +3282 3.65 2.95 131.25 0.0288148 0.525341 -0.0288157 0.0261916 -0.525345 -0.0261907 0.0 +3283 3.65 2.95 138.75 -0.0549588 0.529738 0.054956 0.0850404 -0.529738 -0.0850411 0.0 +3284 3.65 2.95 146.25 -0.0972437 0.529758 0.0972444 0.128089 -0.52976 -0.128088 0.0 +3285 3.65 2.95 153.75 -0.119472 0.520003 0.119472 0.16087 -0.520002 -0.16087 0.0 +3286 3.65 2.95 161.25 -0.13538 0.501774 0.135382 0.186492 -0.501775 -0.186491 0.0 +3287 3.65 2.95 168.75 -0.14865 0.481932 0.148652 0.205017 -0.481933 -0.205016 0.0 +3288 3.65 2.95 176.25 -0.156808 0.469103 0.156808 0.214928 -0.469103 -0.214928 0.0 +3289 3.65 3.05 3.75 -23.5214 -12.7722 23.5214 89.7571 12.7722 -89.7571 0.0 +3290 3.65 3.05 11.25 -20.5344 -8.89321 20.5344 46.7329 8.89321 -46.7329 0.0 +3291 3.65 3.05 18.75 -14.9237 -3.37015 14.9237 19.602 3.37015 -19.602 0.0 +3292 3.65 3.05 26.25 -8.79497 0.654416 8.79497 8.53398 -0.654415 -8.53398 0.0 +3293 3.65 3.05 33.75 -4.08878 2.00814 4.08878 4.118 -2.00814 -4.118 0.0 +3294 3.65 3.05 41.25 -1.34433 1.73251 1.34433 1.70123 -1.73252 -1.70123 0.0 +3295 3.65 3.05 48.75 -0.0691392 1.25993 0.0691406 0.177071 -1.25993 -0.177071 0.0 +3296 3.65 3.05 56.25 0.448 1.16617 -0.448 -0.563897 -1.16617 0.563897 0.0 +3297 3.65 3.05 63.75 0.688998 1.28795 -0.688995 -0.713807 -1.28795 0.713807 0.0 +3298 3.65 3.05 71.25 0.832696 1.31773 -0.8327 -0.581497 -1.31773 0.581496 0.0 +3299 3.65 3.05 78.75 0.879329 1.14394 -0.879329 -0.412977 -1.14394 0.412977 0.0 +3300 3.65 3.05 86.25 0.814193 0.858734 -0.814194 -0.307966 -0.858731 0.307966 0.0 +3301 3.65 3.05 93.75 0.671971 0.610837 -0.671969 -0.25422 -0.610837 0.25422 0.0 +3302 3.65 3.05 101.25 0.504261 0.479465 -0.50426 -0.20887 -0.479465 0.208869 0.0 +3303 3.65 3.05 108.75 0.347065 0.452085 -0.347066 -0.151081 -0.452085 0.151081 0.0 +3304 3.65 3.05 116.25 0.223383 0.474397 -0.22338 -0.0866915 -0.474392 0.0866907 0.0 +3305 3.65 3.05 123.75 0.149325 0.499837 -0.149326 -0.0298693 -0.499834 0.0298677 0.0 +3306 3.65 3.05 131.25 0.12772 0.50528 -0.127719 0.0117782 -0.505278 -0.0117784 0.0 +3307 3.65 3.05 138.75 0.143881 0.48447 -0.143884 0.0399674 -0.484471 -0.0399662 0.0 +3308 3.65 3.05 146.25 0.173862 0.43953 -0.173863 0.0607343 -0.439532 -0.0607346 0.0 +3309 3.65 3.05 153.75 0.197949 0.377853 -0.197948 0.0788534 -0.377854 -0.0788529 0.0 +3310 3.65 3.05 161.25 0.208419 0.311516 -0.20842 0.0954852 -0.311516 -0.0954856 0.0 +3311 3.65 3.05 168.75 0.208396 0.255395 -0.208397 0.108907 -0.255394 -0.108908 0.0 +3312 3.65 3.05 176.25 0.205537 0.223214 -0.205539 0.116501 -0.223214 -0.116501 0.0 +3313 3.65 3.15 3.75 -13.9561 -3.3206 13.9561 98.2858 3.3206 -98.2858 0.0 +3314 3.65 3.15 11.25 -13.261 -3.34518 13.261 43.9082 3.34518 -43.9082 0.0 +3315 3.65 3.15 18.75 -10.2101 -1.48319 10.2101 15.6336 1.48319 -15.6336 0.0 +3316 3.65 3.15 26.25 -6.06397 0.541479 6.06397 5.68372 -0.541479 -5.68372 0.0 +3317 3.65 3.15 33.75 -2.6902 1.22634 2.69021 2.43562 -1.22634 -2.43562 0.0 +3318 3.65 3.15 41.25 -0.799622 0.922855 0.799619 0.965754 -0.922853 -0.965755 0.0 +3319 3.65 3.15 48.75 -0.0595567 0.587691 0.0595571 0.105055 -0.58769 -0.105055 0.0 +3320 3.65 3.15 56.25 0.136132 0.582762 -0.136135 -0.296388 -0.582762 0.296388 0.0 +3321 3.65 3.15 63.75 0.206081 0.714041 -0.20608 -0.369864 -0.714043 0.369864 0.0 +3322 3.65 3.15 71.25 0.291262 0.735392 -0.29126 -0.298228 -0.735391 0.298228 0.0 +3323 3.65 3.15 78.75 0.359948 0.594925 -0.359946 -0.219047 -0.594924 0.219047 0.0 +3324 3.65 3.15 86.25 0.364864 0.394363 -0.36487 -0.178439 -0.39436 0.178439 0.0 +3325 3.65 3.15 93.75 0.314697 0.253059 -0.314697 -0.158716 -0.253058 0.158716 0.0 +3326 3.65 3.15 101.25 0.247244 0.215305 -0.247245 -0.133797 -0.215307 0.133798 0.0 +3327 3.65 3.15 108.75 0.19353 0.249334 -0.193531 -0.0978249 -0.249331 0.0978237 0.0 +3328 3.65 3.15 116.25 0.172327 0.299349 -0.17233 -0.0603582 -0.299354 0.0603583 0.0 +3329 3.65 3.15 123.75 0.191601 0.327027 -0.191602 -0.0313905 -0.327024 0.0313885 0.0 +3330 3.65 3.15 131.25 0.244296 0.319239 -0.244294 -0.0132263 -0.319245 0.0132287 0.0 +3331 3.65 3.15 138.75 0.309669 0.277854 -0.309668 -0.00163962 -0.277858 0.00164223 0.0 +3332 3.65 3.15 146.25 0.36466 0.210708 -0.36466 0.00886413 -0.210705 -0.00886437 0.0 +3333 3.65 3.15 153.75 0.396038 0.12897 -0.396036 0.0210449 -0.128967 -0.0210456 0.0 +3334 3.65 3.15 161.25 0.404322 0.0468919 -0.404325 0.034161 -0.0468877 -0.0341657 0.0 +3335 3.65 3.15 168.75 0.399467 -0.0197308 -0.399467 0.0454309 0.0197332 -0.045432 0.0 +3336 3.65 3.15 176.25 0.393288 -0.0570915 -0.393287 0.0519376 0.0570948 -0.0519383 0.0 +3337 3.65 3.25 3.75 -2.84841 8.98913 2.84841 101.365 -8.98913 -101.365 0.0 +3338 3.65 3.25 11.25 -5.30559 3.68427 5.30559 37.2625 -3.68427 -37.2625 0.0 +3339 3.65 3.25 18.75 -5.47905 1.03572 5.47905 11.105 -1.03572 -11.105 0.0 +3340 3.65 3.25 26.25 -3.63301 0.745278 3.63301 3.27944 -0.745278 -3.27944 0.0 +3341 3.65 3.25 33.75 -1.61937 0.737373 1.61937 1.21149 -0.737371 -1.21149 0.0 +3342 3.65 3.25 41.25 -0.451827 0.424127 0.451828 0.462362 -0.424126 -0.462367 0.0 +3343 3.65 3.25 48.75 -0.0643465 0.186784 0.064344 0.0665433 -0.186787 -0.0665438 0.0 +3344 3.65 3.25 56.25 -0.0271963 0.206749 0.0271963 -0.112307 -0.206747 0.112306 0.0 +3345 3.65 3.25 63.75 -0.0287216 0.314739 0.0287221 -0.147725 -0.314739 0.147727 0.0 +3346 3.65 3.25 71.25 0.0255212 0.334405 -0.0255227 -0.121627 -0.334405 0.121627 0.0 +3347 3.65 3.25 78.75 0.0934406 0.242453 -0.0934401 -0.0975277 -0.242456 0.0975275 0.0 +3348 3.65 3.25 86.25 0.124558 0.11911 -0.12456 -0.0934047 -0.119111 0.0934046 0.0 +3349 3.65 3.25 93.75 0.120536 0.0466826 -0.12054 -0.0939133 -0.0466836 0.0939132 0.0 +3350 3.65 3.25 101.25 0.110584 0.0476725 -0.110584 -0.0847896 -0.0476712 0.0847891 0.0 +3351 3.65 3.25 108.75 0.117935 0.090861 -0.117936 -0.0672303 -0.0908671 0.0672311 0.0 +3352 3.65 3.25 116.25 0.153275 0.133648 -0.153275 -0.0500874 -0.133656 0.0500894 0.0 +3353 3.65 3.25 123.75 0.215727 0.151238 -0.215728 -0.0391482 -0.151235 0.0391465 0.0 +3354 3.65 3.25 131.25 0.291608 0.138189 -0.291609 -0.0336619 -0.13819 0.0336617 0.0 +3355 3.65 3.25 138.75 0.359347 0.0983875 -0.359348 -0.0291956 -0.0983892 0.0291967 0.0 +3356 3.65 3.25 146.25 0.401272 0.038616 -0.401271 -0.022058 -0.0386123 0.0220571 0.0 +3357 3.65 3.25 153.75 0.412585 -0.0321809 -0.412584 -0.0116292 0.0321862 0.0116272 0.0 +3358 3.65 3.25 161.25 0.401401 -0.1024 -0.401399 4.51052e-05 0.102401 -4.42202e-05 0.0 +3359 3.65 3.25 168.75 0.382258 -0.159045 -0.38226 0.00995287 0.159044 -0.00995344 0.0 +3360 3.65 3.25 176.25 0.368774 -0.190698 -0.368775 0.0155765 0.190695 -0.0155759 0.0 +3361 3.65 3.35 3.75 8.57831 22.029 -8.57831 90.4039 -22.029 -90.4039 0.0 +3362 3.65 3.35 11.25 2.48876 10.9716 -2.48876 25.2009 -10.9716 -25.2009 0.0 +3363 3.65 3.35 18.75 -1.10374 3.77841 1.10374 5.92447 -3.77841 -5.92447 0.0 +3364 3.65 3.35 26.25 -1.58014 1.17267 1.58014 1.35603 -1.17267 -1.35603 0.0 +3365 3.65 3.35 33.75 -0.82821 0.490495 0.828207 0.439289 -0.490495 -0.43929 0.0 +3366 3.65 3.35 41.25 -0.237349 0.172633 0.237344 0.163569 -0.172631 -0.163569 0.0 +3367 3.65 3.35 48.75 -0.0586032 0.00522448 0.0586023 0.0404713 -0.00522588 -0.0404716 0.0 +3368 3.65 3.35 56.25 -0.0692222 0.0153302 0.0692185 -0.0129308 -0.0153248 0.0129318 0.0 +3369 3.65 3.35 63.75 -0.0840586 0.0871098 0.0840552 -0.0309457 -0.0871098 0.0309442 0.0 +3370 3.65 3.35 71.25 -0.0536445 0.110943 0.0536423 -0.0295495 -0.110941 0.0295495 0.0 +3371 3.65 3.35 78.75 -0.00982277 0.0701621 0.00982661 -0.0305352 -0.0701671 0.0305349 0.0 +3372 3.65 3.35 86.25 0.0145461 0.0088837 -0.0145485 -0.0406569 -0.00888549 0.040657 0.0 +3373 3.65 3.35 93.75 0.0229469 -0.0252769 -0.0229444 -0.0491129 0.025273 0.0491132 0.0 +3374 3.65 3.35 101.25 0.0355738 -0.0188163 -0.0355749 -0.0488332 0.0188197 0.0488329 0.0 +3375 3.65 3.35 108.75 0.0655018 0.0101297 -0.0655002 -0.0435205 -0.0101327 0.0435213 0.0 +3376 3.65 3.35 116.25 0.115214 0.0376575 -0.115217 -0.0395796 -0.0376578 0.0395802 0.0 +3377 3.65 3.35 123.75 0.178049 0.0506336 -0.17805 -0.0391484 -0.0506349 0.0391483 0.0 +3378 3.65 3.35 131.25 0.238684 0.0459317 -0.238686 -0.0397537 -0.0459383 0.0397562 0.0 +3379 3.65 3.35 138.75 0.279372 0.0244903 -0.27937 -0.0377474 -0.0244898 0.0377484 0.0 +3380 3.65 3.35 146.25 0.29001 -0.0110173 -0.290012 -0.0314691 0.0110121 0.0314721 0.0 +3381 3.65 3.35 153.75 0.273314 -0.0554592 -0.273313 -0.0220115 0.0554597 0.0220096 0.0 +3382 3.65 3.35 161.25 0.241753 -0.100943 -0.241753 -0.0119952 0.100943 0.0119956 0.0 +3383 3.65 3.35 168.75 0.210527 -0.138246 -0.210527 -0.00397578 0.138246 0.0039749 0.0 +3384 3.65 3.35 176.25 0.191739 -0.15925 -0.191737 0.000392892 0.159255 -0.000394892 0.0 +3385 3.65 3.45 3.75 13.9352 25.0134 -13.9352 47.3581 -25.0134 -47.3581 0.0 +3386 3.65 3.45 11.25 6.6144 12.841 -6.6144 7.54163 -12.841 -7.54163 0.0 +3387 3.65 3.45 18.75 1.63977 4.65277 -1.63978 0.626067 -4.65277 -0.626067 0.0 +3388 3.65 3.45 26.25 -0.134965 1.26549 0.134964 -0.00630213 -1.26549 0.0063021 0.0 +3389 3.65 3.45 33.75 -0.257019 0.327565 0.257018 0.0506325 -0.327565 -0.0506314 0.0 +3390 3.65 3.45 41.25 -0.0878206 0.0755859 0.0878219 0.0249344 -0.0755854 -0.0249345 0.0 +3391 3.65 3.45 48.75 -0.0295997 -0.0171818 0.0296009 0.0154182 0.0171825 -0.0154176 0.0 +3392 3.65 3.45 56.25 -0.0349652 -0.0219445 0.0349652 0.0129602 0.0219435 -0.0129587 0.0 +3393 3.65 3.45 63.75 -0.0407381 0.00761187 0.0407386 0.00421853 -0.00761128 -0.00421831 0.0 +3394 3.65 3.45 71.25 -0.034214 0.0259423 0.0342165 7.51679e-05 -0.0259422 -7.45622e-05 0.0 +3395 3.65 3.45 78.75 -0.0246565 0.0206849 0.0246588 -0.00385973 -0.0206858 0.00385946 0.0 +3396 3.65 3.45 86.25 -0.0199608 0.00260566 0.0199588 -0.0108228 -0.00260582 0.0108228 0.0 +3397 3.65 3.45 93.75 -0.0160962 -0.0108235 0.0160951 -0.0154515 0.0108225 0.0154515 0.0 +3398 3.65 3.45 101.25 -0.00516199 -0.0109817 0.00516255 -0.0158667 0.0109834 0.015867 0.0 +3399 3.65 3.45 108.75 0.0161436 -0.000990441 -0.0161444 -0.0157139 0.000992657 0.0157131 0.0 +3400 3.65 3.45 116.25 0.0462359 0.0119933 -0.0462349 -0.0179074 -0.011993 0.0179074 0.0 +3401 3.65 3.45 123.75 0.0789796 0.0222832 -0.0789806 -0.0216543 -0.0222854 0.0216552 0.0 +3402 3.65 3.45 131.25 0.104194 0.0261517 -0.104194 -0.0240943 -0.02615 0.0240937 0.0 +3403 3.65 3.45 138.75 0.112387 0.02152 -0.112387 -0.0230795 -0.0215204 0.0230794 0.0 +3404 3.65 3.45 146.25 0.100783 0.00855296 -0.100781 -0.01859 -0.00855206 0.01859 0.0 +3405 3.65 3.45 153.75 0.0747866 -0.010086 -0.0747873 -0.0122934 0.0100866 0.0122928 0.0 +3406 3.65 3.45 161.25 0.0443158 -0.0300182 -0.0443169 -0.0062199 0.0300166 0.00622007 0.0 +3407 3.65 3.45 168.75 0.0188579 -0.0465341 -0.0188583 -0.00176027 0.0465354 0.00175935 0.0 +3408 3.65 3.45 176.25 0.0047077 -0.0558365 -0.0047082 0.000519921 0.055837 -0.000521264 0.0 +3409 3.65 3.55 3.75 9.08664 14.1707 -9.08664 5.00548 -14.1707 -5.00548 0.0 +3410 3.65 3.55 11.25 4.57491 7.32707 -4.57491 -2.27541 -7.32707 2.27541 0.0 +3411 3.65 3.55 18.75 1.46185 2.72587 -1.46185 -1.40671 -2.72587 1.40671 0.0 +3412 3.65 3.55 26.25 0.202401 0.72718 -0.2024 -0.363615 -0.72718 0.363615 0.0 +3413 3.65 3.55 33.75 -0.0292135 0.158386 0.029214 -0.0296083 -0.158386 0.0296077 0.0 +3414 3.65 3.55 41.25 -0.013327 0.0341023 0.0133271 0.000415071 -0.0341024 -0.000414506 0.0 +3415 3.65 3.55 48.75 -0.00386995 0.00137162 0.00387057 0.00354997 -0.00137196 -0.00354995 0.0 +3416 3.65 3.55 56.25 -0.00362953 -0.00381371 0.00363005 0.00491999 0.00381369 -0.00492036 0.0 +3417 3.65 3.55 63.75 -0.00367255 0.000623919 0.00367258 0.000772869 -0.000624073 -0.000773243 0.0 +3418 3.65 3.55 71.25 -0.00599085 0.00545353 0.00599175 -0.000877382 -0.00545427 0.000877255 0.0 +3419 3.65 3.55 78.75 -0.00914792 0.00752484 0.00914884 -0.00123739 -0.00752489 0.00123748 0.0 +3420 3.65 3.55 86.25 -0.0111926 0.00607339 0.0111914 -0.00180791 -0.00607396 0.00180784 0.0 +3421 3.65 3.55 93.75 -0.0109307 0.00306489 0.0109307 -0.00110181 -0.00306532 0.00110186 0.0 +3422 3.65 3.55 101.25 -0.0077646 0.00146913 0.00776434 0.000281463 -0.00146817 -0.000281676 0.0 +3423 3.65 3.55 108.75 -0.00177445 0.00282649 0.00177504 0.000276509 -0.00282655 -0.00027648 0.0 +3424 3.65 3.55 116.25 0.00630219 0.00656393 -0.00630239 -0.00161604 -0.0065638 0.00161557 0.0 +3425 3.65 3.55 123.75 0.0142754 0.0104985 -0.0142748 -0.00404929 -0.0104982 0.00404958 0.0 +3426 3.65 3.55 131.25 0.0185262 0.0121463 -0.0185258 -0.00537147 -0.0121454 0.00537123 0.0 +3427 3.65 3.55 138.75 0.016205 0.0102423 -0.0162052 -0.00485693 -0.0102423 0.00485692 0.0 +3428 3.65 3.55 146.25 0.00744851 0.00528258 -0.00744923 -0.00289648 -0.00528247 0.00289629 0.0 +3429 3.65 3.55 153.75 -0.0047483 -0.0011129 0.0047475 -0.000439985 0.00111111 0.000440653 0.0 +3430 3.65 3.55 161.25 -0.0165726 -0.00720789 0.0165725 0.00167706 0.00720864 -0.00167778 0.0 +3431 3.65 3.55 168.75 -0.0252959 -0.0117744 0.0252957 0.00306582 0.0117749 -0.00306615 0.0 +3432 3.65 3.55 176.25 -0.0297657 -0.0141745 0.0297651 0.00371221 0.0141748 -0.00371261 0.0 +3433 3.65 3.65 3.75 1.34179 1.8764 -1.34179 -2.21207 -1.8764 2.21207 0.0 +3434 3.65 3.65 11.25 0.674722 0.975627 -0.674722 -1.01114 -0.975627 1.01114 0.0 +3435 3.65 3.65 18.75 0.218094 0.365855 -0.218094 -0.384938 -0.365855 0.384938 0.0 +3436 3.65 3.65 26.25 0.034533 0.0959486 -0.034533 -0.0883541 -0.0959486 0.0883541 0.0 +3437 3.65 3.65 33.75 0.000906004 0.0183831 -0.000905993 -0.00778172 -0.0183832 0.00778172 0.0 +3438 3.65 3.65 41.25 0.00132048 0.00271731 -0.00132051 0.00071098 -0.00271729 -0.000710997 0.0 +3439 3.65 3.65 48.75 0.000821636 -0.000306112 -0.00082155 0.000743727 0.000306079 -0.000743719 0.0 +3440 3.65 3.65 56.25 0.00055949 -0.000894959 -0.000559485 0.000325653 0.000894939 -0.000325638 0.0 +3441 3.65 3.65 63.75 0.000919031 -0.00134167 -0.000918928 -0.000425567 0.0013417 0.000425618 0.0 +3442 3.65 3.65 71.25 0.00068388 -0.00161126 -0.000683975 -0.000595268 0.00161117 0.000595242 0.0 +3443 3.65 3.65 78.75 0.000214632 -0.00126472 -0.000214751 -0.000489084 0.00126474 0.000489099 0.0 +3444 3.65 3.65 86.25 8.67817e-06 -0.000701107 -8.75836e-06 -0.000274181 0.00070111 0.000274184 0.0 +3445 3.65 3.65 93.75 1.71384e-06 -0.000443281 -1.76788e-06 0.000154524 0.000443329 -0.000154528 0.0 +3446 3.65 3.65 101.25 1.95029e-05 -0.000477718 -1.95794e-05 0.000567489 0.000477841 -0.000567493 0.0 +3447 3.65 3.65 108.75 7.48783e-05 -0.00049436 -7.48748e-05 0.000683729 0.000494453 -0.000683746 0.0 +3448 3.65 3.65 116.25 0.000265232 -0.000391767 -0.000265328 0.00052426 0.000391822 -0.000524261 0.0 +3449 3.65 3.65 123.75 0.000509939 -0.000400182 -0.000509922 0.000310119 0.000400276 -0.000310147 0.0 +3450 3.65 3.65 131.25 0.000525607 -0.000787876 -0.000525615 0.000228989 0.000787858 -0.00022897 0.0 +3451 3.65 3.65 138.75 0.000108536 -0.00156718 -0.000108471 0.000330074 0.00156723 -0.000330079 0.0 +3452 3.65 3.65 146.25 -0.000640149 -0.00249673 0.000640125 0.000548861 0.00249673 -0.000548895 0.0 +3453 3.65 3.65 153.75 -0.0014021 -0.00329158 0.00140212 0.000784814 0.00329161 -0.000784826 0.0 +3454 3.65 3.65 161.25 -0.00190979 -0.00380299 0.00190977 0.000966445 0.00380303 -0.000966483 0.0 +3455 3.65 3.65 168.75 -0.00211603 -0.00404799 0.00211605 0.00107292 0.004048 -0.00107292 0.0 +3456 3.65 3.65 176.25 -0.00215132 -0.00412886 0.00215137 0.00111754 0.00412895 -0.00111757 0.0 diff --git a/examples/PACKAGES/manybody_table/README b/examples/PACKAGES/manybody_table/README new file mode 100644 index 0000000000..385695e0e0 --- /dev/null +++ b/examples/PACKAGES/manybody_table/README @@ -0,0 +1,56 @@ +Three examples inputs for pair styles threebody/table (in.spce and +in.spce2) and sw/angle/table (in.spce_sw). All inputs are for the +simulation of coarse-grained SPC/E water. + +A water molecule is represented by one coarse-grained (CG) bead. + +For the two threebody/table examples the three-body (force) tables are +in the files 1-1-1.table and 1-1-2.table. These have been parametrized +with the kernel-based machine learning (ML) with the VOTCA package +(https://gitlab.mpcdf.mpg.de/votca/votca). For a example on the +parametrization, have a look at +https://gitlab.mpcdf.mpg.de/votca/votca/-/tree/master/csg-examples/guide +and +https://gitlab.mpcdf.mpg.de/votca/votca/-/tree/master/csg-examples/ml. + +In both cases, the parametrization is done according to a sample system, +using the three-body forces of a Stillinger-Weber potential with +tabulated angular forces (sw/angle/table) (see in.spce_sw). These then +are learned with the covariant meshing technique with the settings files +used in +https://gitlab.mpcdf.mpg.de/votca/votca/-/tree/master/csg-examples/ml/3body/with_binning. + +The first example, in.spce uses the LAMMPS data file (data.spce) with +the starting configuration of 1000 CG water molecules, and a threebody +file (spce.3b) which loads the 1-1-1.table file. + +A hybrid/overlay pair style is used to sum a tabulated pairwise +interaction (table_CG_CG.txt) with the tabulated threebody interactions. +The tabulated pair interaction is the effectively the same as in the +what is used by the in.spce_sw input using sw/angle/table pair style. + +IMPORTANT NOTE: The threebody tables are parameterized without storing +energies (the last column of the threebody table files is zero). This +is due to a current limitation of the paramerization procedure. + +This in.spce2 example uses the data.spce2 file and the threebody input +spce2.3b. This is essentially the same simulation as in in.spce only +the atom type of the first 100 CG water molecules has been changed from +1 to 2. This is done to demonstrate how to run a simulation with +different atom types. + +For this (artificial) two-element simulation, the threebody file now +contain 8 entries for: type1 type1 type1, type1 type1 type2, type1 type2 +type1, type1 type2 type2, type2 type1 type1, type2 type1 type2, type2 +type2 type1, type2 type2 type2. Each entry has the same structure as +above. However, entries where the second and the third element are +different require a different force table (1-1-2.table) instead of +(1-1-1.table). 1-1-2.table contains exactly the force constants as +1-1-1.table. However it has to have the asymmetric structure where both +interparticle distances (r_ij and r_ik) are varied from rmin to rmax and +therefore contains "M = 2 * N * N * N" (2 * 12 * 12 * 12 = 3456) +entries. + +The third example, in.spce_sw, contains the analytical twobody interactions +and replaces the threebody term of the Stillinger-Weber potential with an +angle/table style potential which is stored in the table_CG_CG_CG.txt file. diff --git a/examples/PACKAGES/manybody_table/data.spce b/examples/PACKAGES/manybody_table/data.spce new file mode 100644 index 0000000000..a56ab1b10c --- /dev/null +++ b/examples/PACKAGES/manybody_table/data.spce @@ -0,0 +1,1015 @@ +Data File for CG Water + +1000 atoms +1 atom types + +0 31.0648 xlo xhi +0 31.0648 ylo yhi +0 31.0648 zlo zhi + +Masses + +1 18.0154 + +Atoms + +1 1 18.26 24.7 15.77 +2 1 12.63 1.42 27.01 +3 1 10.39 29.11 13.56 +4 1 26.47 16.64 7.23 +5 1 10.66 23.41 27.33 +6 1 19.08 3.2 21.63 +7 1 11.17 26.19 1.44 +8 1 4.61 4.04 25.72 +9 1 4.61 22.91 8.33 +10 1 30.61 22.71 25.18 +11 1 6.38 18.92 16.87 +12 1 17.83 12.53 11.09 +13 1 14.89 2.43 22.44 +14 1 28.36 30.9 26.38 +15 1 25.73 28.56 8.32 +16 1 19.61 20.22 4.43 +17 1 25.96 30.32 24.22 +18 1 14.51 17.35 16.41 +19 1 30.23 17.26 10.71 +20 1 22.68 23.23 2.3 +21 1 10.89 15.76 14.33 +22 1 1.46 20.46 12.48 +23 1 12.73 19.57 2.71 +24 1 1.21 12.02 9.88 +25 1 2.63 14.4 23.71 +26 1 16.91 20.37 4.73 +27 1 28.02 7.7 30.08 +28 1 21.22 22.47 19.66 +29 1 14.0 28.15 0.14 +30 1 19.62 19.73 1.11 +31 1 28.29 24.36 10.15 +32 1 14.05 1.1 17.64 +33 1 12.2 23.75 24.83 +34 1 24.56 26.02 13.57 +35 1 12.13 8.39 7.17 +36 1 20.47 22.28 25.02 +37 1 11.06 7.63 24.11 +38 1 6.52 22.64 30.46 +39 1 16.51 24.78 18.58 +40 1 30.18 20.56 29.19 +41 1 25.26 7.8 25.98 +42 1 20.37 4.16 3.88 +43 1 18.85 27.34 27.83 +44 1 17.72 29.84 12.78 +45 1 19.26 14.48 19.38 +46 1 29.73 4.46 4.96 +47 1 9.52 26.27 30.33 +48 1 6.55 9.25 20.32 +49 1 10.49 1.91 23.31 +50 1 17.63 1.17 14.48 +51 1 1.56 25.17 4.69 +52 1 9.08 10.39 2.29 +53 1 25.92 7.4 21.53 +54 1 25.3 5.14 28.4 +55 1 5.63 23.26 19.85 +56 1 9.6 9.85 24.85 +57 1 3.32 2.77 9.12 +58 1 28.54 15.28 22.18 +59 1 20.45 8.24 18.25 +60 1 12.86 3.73 11.61 +61 1 7.42 12.05 13.54 +62 1 1.73 28.54 25.27 +63 1 3.25 22.18 23.7 +64 1 3.27 25.38 2.24 +65 1 13.46 15.67 19.28 +66 1 31.0 6.91 13.61 +67 1 4.85 27.3 12.67 +68 1 24.48 13.52 4.98 +69 1 23.93 29.62 19.71 +70 1 5.03 13.35 19.5 +71 1 24.58 13.46 19.59 +72 1 7.42 6.82 9.03 +73 1 28.76 15.1 3.33 +74 1 12.38 17.21 6.63 +75 1 15.75 21.23 27.02 +76 1 4.58 5.06 28.19 +77 1 26.04 23.3 25.38 +78 1 30.02 7.27 9.52 +79 1 6.93 10.03 24.54 +80 1 5.61 26.93 27.34 +81 1 29.12 19.12 5.54 +82 1 18.44 27.8 14.75 +83 1 14.1 23.13 9.78 +84 1 24.12 5.55 20.72 +85 1 2.52 10.99 18.44 +86 1 1.76 6.41 21.47 +87 1 25.22 9.56 30.66 +88 1 11.87 13.25 9.12 +89 1 19.46 0.3 22.07 +90 1 28.82 12.29 11.36 +91 1 28.47 30.29 14.09 +92 1 25.51 20.94 24.33 +93 1 1.14 25.4 8.76 +94 1 1.33 27.98 3.09 +95 1 20.57 26.97 -0.04 +96 1 22.73 1.18 0.62 +97 1 19.16 16.99 30.52 +98 1 0.39 9.65 9.02 +99 1 4.41 7.21 3.22 +100 1 11.07 30.64 25.91 +101 1 7.93 25.84 26.26 +102 1 26.76 2.51 2.93 +103 1 30.8 18.15 18.49 +104 1 10.2 7.46 30.44 +105 1 4.77 20.39 26.99 +106 1 25.27 26.77 1.64 +107 1 28.51 13.99 9.33 +108 1 13.86 8.04 24.9 +109 1 30.67 29.88 23.01 +110 1 29.49 30.58 30.02 +111 1 28.74 5.08 30.95 +112 1 13.21 4.31 30.96 +113 1 5.27 3.66 5.02 +114 1 29.43 7.99 17.07 +115 1 4.19 1.37 16.63 +116 1 1.27 27.81 16.56 +117 1 30.64 5.73 25.91 +118 1 10.33 5.33 26.48 +119 1 11.56 21.77 14.77 +120 1 26.46 27.17 5.7 +121 1 14.85 25.79 8.64 +122 1 22.62 6.18 17.61 +123 1 3.45 18.53 11.84 +124 1 11.65 18.17 15.97 +125 1 23.16 17.0 1.5 +126 1 18.92 16.01 3.98 +127 1 30.05 0.25 5.23 +128 1 26.06 11.96 21.96 +129 1 16.82 2.0 10.25 +130 1 19.58 2.63 24.75 +131 1 20.09 14.75 26.62 +132 1 3.14 0.05 26.13 +133 1 4.86 11.79 12.99 +134 1 1.86 11.32 28.57 +135 1 8.82 28.6 6.22 +136 1 20.85 24.68 23.87 +137 1 7.58 25.15 3.44 +138 1 23.46 9.13 8.11 +139 1 6.45 10.24 27.37 +140 1 15.06 10.35 26.71 +141 1 13.8 18.39 26.5 +142 1 5.11 7.7 5.83 +143 1 23.27 23.16 6.67 +144 1 6.33 1.31 11.37 +145 1 14.66 22.28 21.43 +146 1 7.9 8.65 0.61 +147 1 21.83 3.67 26.17 +148 1 1.41 23.66 11.09 +149 1 10.19 17.23 22.71 +150 1 29.53 27.31 23.19 +151 1 28.69 11.38 2.33 +152 1 1.07 2.97 14.53 +153 1 23.47 30.53 14.32 +154 1 1.59 18.83 14.75 +155 1 20.38 30.6 24.38 +156 1 19.81 29.95 27.9 +157 1 12.68 27.59 26.46 +158 1 20.46 9.14 29.06 +159 1 8.69 13.98 24.71 +160 1 0.72 9.29 30.28 +161 1 11.81 20.55 12.28 +162 1 23.8 13.8 9.4 +163 1 13.63 0.51 0.95 +164 1 2.33 6.68 14.95 +165 1 15.98 6.35 25.28 +166 1 7.38 14.88 18.44 +167 1 17.07 20.48 29.16 +168 1 14.53 1.49 8.4 +169 1 28.45 1.21 20.58 +170 1 0.07 5.28 29.45 +171 1 26.0 9.98 15.37 +172 1 14.56 6.91 14.46 +173 1 20.6 9.09 23.04 +174 1 26.02 4.59 0.14 +175 1 5.21 21.9 17.55 +176 1 2.44 7.72 1.47 +177 1 1.25 30.0 13.48 +178 1 27.27 23.13 14.61 +179 1 24.04 15.61 21.64 +180 1 25.13 5.24 17.43 +181 1 4.2 15.98 12.34 +182 1 26.92 13.54 12.87 +183 1 3.38 19.38 9.08 +184 1 27.75 25.03 2.15 +185 1 26.13 20.68 16.54 +186 1 8.3 14.6 13.49 +187 1 3.04 22.87 29.93 +188 1 9.5 26.41 21.23 +189 1 6.53 2.16 2.75 +190 1 6.37 29.04 2.63 +191 1 26.58 4.38 19.69 +192 1 28.44 6.56 14.66 +193 1 25.55 11.1 28.03 +194 1 25.5 18.39 28.73 +195 1 27.67 23.47 5.65 +196 1 13.69 14.81 16.17 +197 1 22.97 27.61 24.11 +198 1 2.06 18.58 30.22 +199 1 2.07 7.13 29.2 +200 1 13.0 7.26 17.76 +201 1 10.04 16.22 30.62 +202 1 6.54 9.8 17.47 +203 1 5.65 12.68 0.64 +204 1 20.84 20.25 23.02 +205 1 22.48 27.63 21.48 +206 1 15.61 22.73 5.36 +207 1 3.52 30.36 6.24 +208 1 6.38 17.25 26.36 +209 1 14.13 10.57 22.63 +210 1 10.22 25.11 3.64 +211 1 16.63 14.7 25.08 +212 1 3.51 29.69 2.76 +213 1 19.2 11.9 21.44 +214 1 30.8 23.85 14.75 +215 1 21.02 14.34 12.4 +216 1 2.75 22.13 27.29 +217 1 29.27 14.29 6.8 +218 1 8.44 20.67 5.23 +219 1 9.42 20.06 22.95 +220 1 30.83 10.64 19.73 +221 1 19.33 14.14 8.94 +222 1 14.18 11.32 18.19 +223 1 26.55 2.39 28.55 +224 1 6.83 16.57 8.9 +225 1 13.98 8.79 1.97 +226 1 4.94 3.0 23.16 +227 1 25.39 29.46 0.63 +228 1 15.32 16.43 2.45 +229 1 5.26 29.73 29.87 +230 1 26.92 14.84 19.93 +231 1 11.87 30.08 4.52 +232 1 7.17 6.71 2.23 +233 1 10.46 1.13 18.11 +234 1 28.59 20.57 25.68 +235 1 26.54 4.84 8.44 +236 1 16.46 18.37 26.15 +237 1 30.53 0.74 15.31 +238 1 27.25 6.31 27.09 +239 1 22.42 1.65 3.87 +240 1 17.85 3.77 8.02 +241 1 11.82 8.23 11.15 +242 1 8.62 27.66 15.87 +243 1 25.19 1.89 18.37 +244 1 14.0 21.96 30.21 +245 1 29.3 1.73 28.29 +246 1 9.35 24.02 12.03 +247 1 1.05 21.5 0.35 +248 1 21.87 20.54 2.54 +249 1 10.59 15.98 17.51 +250 1 22.76 6.0 9.32 +251 1 0.31 9.13 11.87 +252 1 29.16 25.13 18.29 +253 1 1.23 29.08 7.75 +254 1 30.01 28.49 26.21 +255 1 1.87 5.92 5.03 +256 1 1.15 10.27 22.35 +257 1 11.83 10.31 5.16 +258 1 20.89 8.28 8.14 +259 1 13.48 11.78 28.37 +260 1 6.82 10.48 10.25 +261 1 7.34 4.49 18.73 +262 1 5.49 22.37 14.23 +263 1 12.31 21.05 27.47 +264 1 24.09 17.4 8.65 +265 1 22.03 11.54 20.98 +266 1 16.68 13.17 0.68 +267 1 5.52 1.47 8.78 +268 1 14.95 11.83 7.95 +269 1 5.9 10.66 7.12 +270 1 10.06 11.28 30.73 +271 1 17.72 10.71 27.46 +272 1 13.6 6.23 10.82 +273 1 23.42 30.72 9.31 +274 1 23.27 4.25 3.8 +275 1 13.79 8.37 21.07 +276 1 5.01 30.13 12.61 +277 1 26.04 24.45 17.25 +278 1 22.59 14.31 0.81 +279 1 23.74 10.37 17.17 +280 1 23.4 8.52 12.55 +281 1 10.53 23.97 21.96 +282 1 0.69 13.92 28.42 +283 1 6.94 6.27 15.01 +284 1 29.8 20.92 3.41 +285 1 10.19 20.68 19.0 +286 1 26.38 25.4 28.89 +287 1 12.34 26.9 8.27 +288 1 15.0 7.69 6.4 +289 1 24.75 13.1 2.24 +290 1 4.5 20.58 6.78 +291 1 23.27 18.25 11.48 +292 1 25.92 26.39 22.66 +293 1 24.63 4.21 6.52 +294 1 16.68 15.05 15.6 +295 1 26.39 16.17 29.89 +296 1 10.12 6.21 8.63 +297 1 14.41 14.67 12.23 +298 1 19.59 3.47 1.47 +299 1 28.21 22.43 18.25 +300 1 27.87 29.74 11.47 +301 1 22.53 24.1 13.94 +302 1 12.55 1.58 29.82 +303 1 17.45 21.28 8.34 +304 1 16.3 10.75 16.22 +305 1 16.34 13.25 17.65 +306 1 8.44 4.52 0.93 +307 1 17.47 23.79 2.3 +308 1 29.04 26.8 5.13 +309 1 13.13 11.34 24.9 +310 1 24.33 13.0 13.32 +311 1 8.21 29.74 24.23 +312 1 21.79 28.0 5.85 +313 1 13.74 20.08 10.26 +314 1 20.92 24.38 6.01 +315 1 9.83 29.56 17.99 +316 1 26.66 30.76 2.95 +317 1 24.34 3.08 1.67 +318 1 28.09 10.69 23.33 +319 1 7.08 25.28 0.77 +320 1 15.34 1.12 29.82 +321 1 26.07 12.55 7.74 +322 1 16.85 0.81 21.24 +323 1 9.96 0.57 6.36 +324 1 29.4 2.54 1.18 +325 1 5.81 1.0 5.42 +326 1 25.16 24.89 11.15 +327 1 15.43 24.93 13.71 +328 1 24.6 10.06 10.58 +329 1 20.4 12.04 15.51 +330 1 15.72 18.9 0.21 +331 1 16.5 17.21 28.81 +332 1 16.79 3.11 12.74 +333 1 22.75 6.22 6.6 +334 1 8.09 19.86 30.92 +335 1 24.15 8.75 23.65 +336 1 12.24 30.51 15.39 +337 1 8.15 26.8 18.69 +338 1 0.1 15.0 15.49 +339 1 29.84 15.71 30.0 +340 1 15.39 18.25 11.17 +341 1 1.2 15.49 18.8 +342 1 27.55 9.81 17.9 +343 1 18.93 8.9 10.06 +344 1 28.35 12.36 4.82 +345 1 11.21 13.71 30.62 +346 1 2.5 16.67 16.33 +347 1 0.47 4.2 6.99 +348 1 23.72 4.38 12.28 +349 1 16.59 3.54 16.9 +350 1 17.31 17.81 15.8 +351 1 11.58 0.3 21.21 +352 1 23.67 21.91 15.84 +353 1 7.74 2.78 23.52 +354 1 14.34 9.65 4.52 +355 1 23.35 10.88 14.55 +356 1 3.51 10.03 20.99 +357 1 14.63 21.34 1.75 +358 1 24.37 8.39 2.96 +359 1 14.8 15.5 30.48 +360 1 2.59 1.32 12.76 +361 1 0.16 13.81 25.49 +362 1 11.26 10.11 27.84 +363 1 27.8 18.65 15.07 +364 1 5.07 5.43 21.33 +365 1 14.06 5.26 19.67 +366 1 3.76 18.23 19.36 +367 1 26.68 27.25 10.67 +368 1 7.72 19.58 13.64 +369 1 29.48 16.94 16.45 +370 1 28.18 13.38 30.28 +371 1 29.97 10.41 16.17 +372 1 11.97 28.73 29.31 +373 1 14.88 0.79 25.43 +374 1 8.98 23.85 7.66 +375 1 4.78 8.21 9.79 +376 1 21.74 20.61 28.64 +377 1 20.36 18.75 17.92 +378 1 12.61 21.65 23.18 +379 1 6.36 29.76 8.49 +380 1 12.51 26.69 18.69 +381 1 22.2 17.41 6.86 +382 1 11.7 6.53 21.66 +383 1 4.62 16.22 3.24 +384 1 0.76 13.73 0.83 +385 1 21.91 13.43 5.67 +386 1 17.36 6.16 4.12 +387 1 0.34 28.1 11.89 +388 1 2.43 26.92 20.47 +389 1 0.99 22.41 4.14 +390 1 23.77 24.66 24.16 +391 1 22.41 7.79 20.57 +392 1 16.4 22.82 23.46 +393 1 24.68 28.28 17.44 +394 1 14.99 26.21 27.12 +395 1 0.75 13.41 7.7 +396 1 16.43 5.69 21.09 +397 1 19.5 6.71 27.89 +398 1 14.32 17.4 22.9 +399 1 29.04 27.81 19.17 +400 1 9.52 19.68 10.69 +401 1 5.33 27.17 17.3 +402 1 5.2 12.64 9.11 +403 1 9.8 6.14 19.74 +404 1 9.86 22.71 1.2 +405 1 0.84 12.31 14.9 +406 1 18.79 12.07 17.76 +407 1 27.21 25.79 14.27 +408 1 6.11 1.01 19.83 +409 1 8.44 5.68 12.85 +410 1 22.42 26.4 1.81 +411 1 24.0 20.11 18.63 +412 1 2.32 26.11 12.18 +413 1 26.06 7.28 15.77 +414 1 9.96 9.13 19.49 +415 1 10.74 12.01 25.79 +416 1 30.39 1.07 11.77 +417 1 9.49 20.19 26.63 +418 1 15.99 30.59 6.78 +419 1 11.0 30.74 0.96 +420 1 23.67 30.14 22.75 +421 1 24.14 9.9 19.82 +422 1 5.88 5.5 7.25 +423 1 3.45 10.72 9.52 +424 1 11.78 25.26 29.31 +425 1 15.95 27.28 17.71 +426 1 17.99 16.5 8.95 +427 1 28.47 0.47 23.29 +428 1 14.06 1.39 12.17 +429 1 19.28 23.85 8.27 +430 1 13.62 4.42 14.21 +431 1 2.98 9.89 12.04 +432 1 7.35 14.53 10.79 +433 1 15.55 0.87 3.17 +434 1 7.7 24.24 23.88 +435 1 17.61 8.64 6.93 +436 1 5.17 26.9 3.74 +437 1 1.06 17.17 27.8 +438 1 18.8 9.64 19.81 +439 1 8.36 1.64 0.63 +440 1 13.68 14.97 7.75 +441 1 29.56 0.55 17.98 +442 1 3.01 24.45 14.3 +443 1 11.98 7.48 26.92 +444 1 19.13 24.44 27.57 +445 1 11.75 14.57 11.88 +446 1 13.1 4.54 22.64 +447 1 7.2 21.26 28.21 +448 1 24.85 22.96 28.77 +449 1 15.0 23.95 16.32 +450 1 24.6 14.43 15.56 +451 1 3.05 13.66 17.69 +452 1 3.0 3.39 6.37 +453 1 24.92 22.04 13.42 +454 1 21.24 2.56 17.68 +455 1 19.69 0.3 11.75 +456 1 5.73 29.89 26.41 +457 1 7.62 30.1 0.37 +458 1 14.62 28.23 20.86 +459 1 8.72 5.14 23.94 +460 1 9.94 25.78 9.45 +461 1 17.3 4.53 0.74 +462 1 17.58 12.58 14.58 +463 1 8.64 2.55 20.15 +464 1 21.07 10.96 26.32 +465 1 27.85 4.23 10.9 +466 1 20.41 29.07 20.84 +467 1 9.35 12.65 10.7 +468 1 9.88 0.73 3.41 +469 1 26.64 20.78 1.33 +470 1 25.47 19.72 10.96 +471 1 1.01 5.01 12.19 +472 1 10.11 27.98 23.8 +473 1 17.51 0.24 28.51 +474 1 21.85 14.89 8.07 +475 1 18.22 12.88 29.4 +476 1 10.97 16.02 2.55 +477 1 4.3 25.33 5.86 +478 1 12.67 27.62 3.28 +479 1 12.18 24.26 16.74 +480 1 0.24 29.32 20.41 +481 1 5.03 15.5 6.14 +482 1 11.11 12.43 6.7 +483 1 10.14 4.47 15.0 +484 1 2.9 6.91 24.11 +485 1 30.6 4.29 16.4 +486 1 9.61 4.66 29.44 +487 1 5.38 17.6 1.1 +488 1 3.71 5.22 11.92 +489 1 8.93 11.33 8.19 +490 1 31.02 28.82 0.48 +491 1 0.81 2.74 23.14 +492 1 16.45 28.36 8.16 +493 1 2.1 8.36 17.2 +494 1 25.82 16.89 1.44 +495 1 20.21 11.2 11.56 +496 1 13.88 23.42 27.01 +497 1 30.15 5.56 2.54 +498 1 1.76 17.51 24.41 +499 1 18.18 8.62 16.29 +500 1 4.41 20.18 15.26 +501 1 7.05 29.39 19.64 +502 1 22.92 21.56 26.41 +503 1 29.43 3.25 12.91 +504 1 16.92 25.1 29.07 +505 1 25.4 12.48 17.22 +506 1 7.4 5.74 28.39 +507 1 0.14 3.32 27.06 +508 1 29.61 24.31 3.76 +509 1 13.25 25.77 23.43 +510 1 19.18 28.02 24.33 +511 1 3.66 10.37 26.9 +512 1 12.53 11.26 1.28 +513 1 28.21 7.27 11.49 +514 1 26.9 9.35 3.39 +515 1 18.87 28.09 9.36 +516 1 9.3 30.5 15.62 +517 1 12.34 13.23 3.13 +518 1 27.93 26.52 26.46 +519 1 7.78 9.29 14.0 +520 1 16.12 6.82 1.73 +521 1 0.63 2.82 20.33 +522 1 12.2 26.56 13.2 +523 1 6.16 16.1 15.43 +524 1 13.49 24.29 6.85 +525 1 28.61 10.73 30.64 +526 1 19.98 17.97 5.68 +527 1 2.75 19.83 4.73 +528 1 18.41 26.18 2.29 +529 1 22.35 24.43 11.05 +530 1 4.45 4.92 15.13 +531 1 16.8 18.43 21.99 +532 1 2.08 4.57 24.87 +533 1 26.03 2.02 24.82 +534 1 15.65 30.12 19.2 +535 1 27.88 13.79 27.66 +536 1 29.03 7.86 2.9 +537 1 2.68 5.55 9.4 +538 1 30.45 11.98 23.35 +539 1 2.08 19.71 21.15 +540 1 11.06 3.11 4.38 +541 1 21.61 14.28 20.83 +542 1 15.85 5.82 12.29 +543 1 29.7 22.61 8.47 +544 1 29.5 7.81 27.38 +545 1 24.12 20.22 0.4 +546 1 16.0 25.22 21.34 +547 1 19.8 25.24 13.43 +548 1 7.11 16.71 4.39 +549 1 4.59 0.13 21.8 +550 1 20.94 12.01 28.92 +551 1 12.99 2.09 6.04 +552 1 19.45 19.38 14.86 +553 1 12.98 23.9 12.88 +554 1 13.06 12.04 20.67 +555 1 17.56 1.18 25.76 +556 1 29.88 16.58 1.42 +557 1 6.04 13.87 25.34 +558 1 25.5 6.08 10.63 +559 1 20.34 11.15 2.51 +560 1 3.82 11.92 15.57 +561 1 10.47 18.64 8.01 +562 1 13.02 24.92 20.67 +563 1 20.03 29.78 7.22 +564 1 8.36 11.63 28.63 +565 1 14.06 21.56 15.74 +566 1 9.4 28.78 29.81 +567 1 9.07 10.18 22.15 +568 1 11.47 22.66 29.81 +569 1 17.02 8.02 27.19 +570 1 29.56 18.32 21.38 +571 1 8.58 8.58 11.23 +572 1 22.15 19.86 15.25 +573 1 12.34 29.83 7.16 +574 1 20.52 25.35 20.66 +575 1 21.23 5.6 23.05 +576 1 23.45 10.69 5.93 +577 1 14.15 4.81 4.29 +578 1 8.26 24.58 28.88 +579 1 10.03 3.4 7.88 +580 1 25.65 7.23 0.84 +581 1 7.28 26.7 9.09 +582 1 20.47 29.31 16.02 +583 1 4.44 7.7 27.1 +584 1 27.95 23.13 0.39 +585 1 19.82 18.98 12.12 +586 1 20.01 5.07 14.72 +587 1 1.66 1.23 5.19 +588 1 5.6 11.21 22.59 +589 1 3.81 22.68 4.63 +590 1 17.47 14.06 22.25 +591 1 16.77 22.61 10.71 +592 1 7.2 26.5 22.52 +593 1 10.75 17.97 28.76 +594 1 16.61 8.28 20.88 +595 1 0.81 27.72 28.37 +596 1 6.78 22.71 4.37 +597 1 27.35 28.79 17.13 +598 1 15.16 3.34 2.07 +599 1 19.69 29.89 30.66 +600 1 17.34 20.23 2.18 +601 1 15.65 15.76 9.8 +602 1 19.07 19.02 8.23 +603 1 26.13 0.42 7.37 +604 1 4.29 9.29 15.94 +605 1 7.86 7.42 4.84 +606 1 23.4 1.93 16.16 +607 1 5.27 27.16 0.17 +608 1 27.08 14.52 1.58 +609 1 8.34 11.25 18.53 +610 1 10.4 17.83 12.7 +611 1 8.86 18.1 18.73 +612 1 17.69 22.57 26.0 +613 1 6.1 6.61 11.68 +614 1 24.32 13.38 23.99 +615 1 0.13 20.78 22.53 +616 1 10.96 20.82 6.33 +617 1 28.46 1.62 7.03 +618 1 16.9 4.13 23.44 +619 1 1.89 11.75 5.82 +620 1 3.27 20.91 2.26 +621 1 11.14 15.5 24.78 +622 1 21.76 3.5 20.99 +623 1 3.95 12.22 24.49 +624 1 7.26 23.31 16.11 +625 1 19.28 20.97 21.06 +626 1 7.2 17.22 22.12 +627 1 16.26 10.81 24.17 +628 1 1.54 24.72 17.86 +629 1 17.74 0.11 1.5 +630 1 25.85 5.87 23.82 +631 1 4.21 7.73 13.47 +632 1 20.87 8.0 25.94 +633 1 22.23 3.22 8.98 +634 1 13.72 30.72 23.05 +635 1 4.91 26.26 19.85 +636 1 14.82 27.52 13.76 +637 1 27.5 3.72 26.36 +638 1 27.62 9.82 10.27 +639 1 19.32 8.78 3.53 +640 1 16.33 28.86 1.39 +641 1 30.26 10.13 4.93 +642 1 14.94 29.37 4.67 +643 1 7.61 12.27 21.0 +644 1 5.31 18.92 23.16 +645 1 25.19 3.1 14.51 +646 1 8.12 21.6 9.56 +647 1 20.35 17.71 23.89 +648 1 3.39 19.78 24.7 +649 1 5.42 23.52 1.93 +650 1 29.44 5.52 23.47 +651 1 23.83 22.25 20.16 +652 1 17.93 4.41 19.13 +653 1 9.44 1.91 29.19 +654 1 29.91 23.65 12.09 +655 1 27.06 21.35 3.96 +656 1 16.28 19.92 14.78 +657 1 19.99 5.38 17.54 +658 1 14.54 21.16 7.89 +659 1 26.09 14.97 10.68 +660 1 0.63 24.05 28.89 +661 1 5.07 25.73 10.62 +662 1 6.78 8.27 29.12 +663 1 11.86 12.77 15.67 +664 1 21.83 14.26 24.49 +665 1 23.7 1.53 6.32 +666 1 28.91 27.7 13.19 +667 1 16.46 28.92 23.22 +668 1 26.22 15.29 23.65 +669 1 23.75 1.5 21.21 +670 1 4.08 23.38 11.4 +671 1 29.4 29.73 2.7 +672 1 8.94 16.2 27.64 +673 1 30.79 23.65 6.33 +674 1 27.04 17.6 10.45 +675 1 21.48 15.71 29.11 +676 1 17.68 22.29 18.33 +677 1 22.1 29.54 1.71 +678 1 16.17 27.33 3.65 +679 1 9.22 5.24 5.71 +680 1 1.81 4.91 1.83 +681 1 30.98 28.61 5.42 +682 1 0.24 6.26 18.55 +683 1 17.39 24.85 11.97 +684 1 28.21 20.4 22.88 +685 1 23.01 8.35 29.39 +686 1 4.03 15.76 25.76 +687 1 3.89 12.75 4.32 +688 1 16.42 9.73 9.22 +689 1 14.74 17.01 13.68 +690 1 11.65 22.66 10.77 +691 1 21.04 26.56 25.76 +692 1 3.97 29.83 10.01 +693 1 10.62 26.12 25.57 +694 1 17.97 8.53 23.31 +695 1 19.22 16.46 13.24 +696 1 2.39 24.13 25.42 +697 1 1.72 21.99 14.71 +698 1 14.16 25.55 4.52 +699 1 10.58 12.26 13.38 +700 1 25.76 29.55 5.46 +701 1 24.18 1.25 26.8 +702 1 30.61 26.16 30.37 +703 1 3.38 16.05 28.52 +704 1 1.18 24.43 20.96 +705 1 7.9 1.26 25.66 +706 1 26.57 10.39 5.82 +707 1 8.44 8.09 16.34 +708 1 16.67 27.55 25.72 +709 1 7.45 2.82 7.35 +710 1 19.18 19.09 28.22 +711 1 12.68 8.88 30.58 +712 1 27.98 26.24 30.75 +713 1 11.84 28.3 20.75 +714 1 10.45 30.97 11.14 +715 1 8.96 2.33 11.92 +716 1 7.66 10.26 5.22 +717 1 23.5 12.98 28.85 +718 1 30.48 8.08 21.02 +719 1 16.48 29.96 10.33 +720 1 13.88 5.72 8.08 +721 1 27.47 28.22 21.47 +722 1 26.74 18.07 22.5 +723 1 25.13 23.78 0.9 +724 1 29.21 15.71 26.07 +725 1 19.41 3.92 10.58 +726 1 24.96 7.64 5.7 +727 1 7.44 14.1 29.85 +728 1 7.13 12.21 3.18 +729 1 16.35 14.7 4.18 +730 1 1.43 15.6 11.58 +731 1 30.27 1.93 9.17 +732 1 2.77 2.54 27.69 +733 1 11.36 27.83 16.39 +734 1 7.83 2.36 14.66 +735 1 19.3 12.28 5.63 +736 1 28.36 12.19 19.25 +737 1 10.67 7.34 13.62 +738 1 26.6 24.47 21.0 +739 1 8.55 29.42 27.3 +740 1 25.79 25.13 4.07 +741 1 28.21 8.09 22.88 +742 1 22.44 11.07 23.78 +743 1 27.76 17.89 25.74 +744 1 2.23 0.19 23.48 +745 1 10.49 12.99 20.29 +746 1 18.74 11.84 24.74 +747 1 29.46 2.69 24.54 +748 1 3.11 29.29 15.2 +749 1 21.8 19.07 20.45 +750 1 11.21 17.26 20.08 +751 1 2.59 26.55 26.79 +752 1 23.67 25.82 17.79 +753 1 23.43 27.91 15.08 +754 1 6.86 2.11 28.13 +755 1 14.38 19.97 19.61 +756 1 29.05 26.41 8.62 +757 1 3.34 9.63 6.81 +758 1 21.41 30.88 18.45 +759 1 30.35 16.75 23.77 +760 1 19.92 6.73 20.92 +761 1 26.4 1.5 11.47 +762 1 16.6 8.88 30.96 +763 1 23.25 29.76 4.34 +764 1 17.15 13.45 7.34 +765 1 14.52 14.34 23.37 +766 1 11.77 3.31 25.06 +767 1 15.52 25.25 0.94 +768 1 21.53 27.39 12.97 +769 1 11.29 10.11 17.38 +770 1 11.07 15.06 5.47 +771 1 27.61 7.39 6.07 +772 1 15.82 4.83 27.63 +773 1 17.16 20.28 12.25 +774 1 3.18 28.03 22.92 +775 1 25.53 27.61 25.22 +776 1 1.81 16.55 1.25 +777 1 3.72 16.82 7.97 +778 1 7.68 21.57 2.11 +779 1 21.85 26.93 28.36 +780 1 10.31 8.57 4.0 +781 1 11.61 9.88 14.35 +782 1 0.41 8.48 24.13 +783 1 3.8 10.63 30.74 +784 1 2.74 17.0 21.82 +785 1 28.44 22.73 28.74 +786 1 2.08 0.43 20.23 +787 1 0.25 9.36 2.02 +788 1 27.68 11.33 26.53 +789 1 27.63 4.1 14.74 +790 1 19.68 0.89 3.22 +791 1 17.12 30.74 17.17 +792 1 16.11 25.62 24.01 +793 1 20.49 9.58 13.85 +794 1 26.77 20.78 27.64 +795 1 18.77 16.87 25.93 +796 1 7.01 13.49 6.76 +797 1 18.38 16.84 18.4 +798 1 8.54 14.44 4.51 +799 1 11.51 1.42 8.98 +800 1 17.06 14.93 12.29 +801 1 6.07 0.24 15.08 +802 1 8.76 17.53 2.01 +803 1 19.63 6.58 1.71 +804 1 10.24 4.66 10.93 +805 1 4.39 20.15 30.88 +806 1 30.31 16.7 6.24 +807 1 26.0 30.16 27.34 +808 1 6.44 21.42 21.88 +809 1 22.05 29.62 11.43 +810 1 21.94 22.11 9.22 +811 1 21.82 1.59 13.13 +812 1 27.09 0.55 16.64 +813 1 8.88 3.09 17.06 +814 1 6.95 18.85 6.3 +815 1 20.13 2.53 15.07 +816 1 17.52 12.36 3.26 +817 1 18.46 7.24 13.99 +818 1 12.61 6.94 3.36 +819 1 15.55 17.46 19.11 +820 1 16.13 27.37 11.33 +821 1 2.99 14.41 9.34 +822 1 5.81 22.26 24.67 +823 1 19.82 2.53 6.19 +824 1 28.93 5.65 7.69 +825 1 17.89 22.05 15.68 +826 1 5.63 7.81 23.81 +827 1 19.09 16.3 22.05 +828 1 1.07 19.82 27.06 +829 1 14.74 8.15 28.71 +830 1 16.98 10.27 4.92 +831 1 13.39 20.01 5.47 +832 1 21.23 3.56 30.15 +833 1 29.23 18.12 28.24 +834 1 16.76 24.31 7.29 +835 1 26.12 21.8 21.5 +836 1 0.2 13.1 12.25 +837 1 1.99 3.78 30.39 +838 1 26.67 20.02 19.27 +839 1 20.63 10.01 5.91 +840 1 4.44 3.74 1.84 +841 1 21.95 6.78 0.24 +842 1 9.86 22.51 17.05 +843 1 26.17 7.64 18.91 +844 1 17.09 20.11 19.78 +845 1 10.38 9.07 9.16 +846 1 9.92 13.21 17.39 +847 1 24.26 19.17 3.05 +848 1 13.32 18.96 29.06 +849 1 27.98 20.32 7.7 +850 1 10.35 6.44 17.04 +851 1 27.27 28.95 29.77 +852 1 7.71 19.32 24.95 +853 1 23.11 17.51 14.39 +854 1 25.37 14.39 26.26 +855 1 4.73 3.99 17.92 +856 1 28.53 17.74 8.3 +857 1 28.99 9.49 7.65 +858 1 11.37 3.77 18.66 +859 1 11.01 23.57 6.0 +860 1 7.29 17.47 30.27 +861 1 18.92 10.24 0.36 +862 1 22.76 24.44 27.3 +863 1 14.27 13.05 5.04 +864 1 3.42 14.59 30.9 +865 1 9.31 22.34 24.75 +866 1 25.78 16.96 15.63 +867 1 7.18 22.01 12.25 +868 1 5.0 18.29 28.57 +869 1 23.36 20.87 22.7 +870 1 13.16 10.8 10.17 +871 1 6.42 24.78 7.47 +872 1 28.86 3.89 20.92 +873 1 4.8 3.05 13.07 +874 1 27.07 3.53 5.63 +875 1 13.11 28.33 23.92 +876 1 14.84 13.88 20.8 +877 1 15.81 7.0 16.91 +878 1 23.41 25.39 20.56 +879 1 26.08 0.43 14.19 +880 1 6.28 17.41 19.28 +881 1 2.74 4.79 19.54 +882 1 20.98 26.42 10.11 +883 1 24.18 28.48 29.18 +884 1 12.74 29.99 12.8 +885 1 27.22 16.82 18.13 +886 1 2.08 19.98 18.27 +887 1 22.0 23.67 17.16 +888 1 17.83 3.01 29.13 +889 1 9.59 26.62 13.51 +890 1 11.48 2.18 13.45 +891 1 13.57 15.29 26.47 +892 1 1.72 0.72 9.92 +893 1 2.14 30.76 17.27 +894 1 17.9 15.88 1.47 +895 1 13.47 5.84 28.76 +896 1 8.96 22.14 21.0 +897 1 12.96 24.15 0.94 +898 1 26.13 23.25 8.89 +899 1 6.01 28.65 6.08 +900 1 22.88 20.21 6.1 +901 1 30.34 20.77 10.49 +902 1 12.19 28.16 10.6 +903 1 5.8 5.33 30.84 +904 1 29.83 26.29 15.91 +905 1 18.28 0.14 5.58 +906 1 1.91 17.34 5.88 +907 1 24.05 18.42 22.53 +908 1 10.82 21.55 3.57 +909 1 11.29 26.73 5.6 +910 1 21.34 14.41 3.22 +911 1 12.61 18.99 24.17 +912 1 25.02 18.6 25.9 +913 1 29.0 21.05 13.14 +914 1 17.72 27.28 30.27 +915 1 30.56 24.81 23.12 +916 1 17.09 20.05 24.02 +917 1 7.35 6.83 21.31 +918 1 3.39 22.32 21.05 +919 1 2.28 29.8 30.23 +920 1 5.29 25.66 14.8 +921 1 26.16 30.72 21.04 +922 1 21.63 6.32 11.68 +923 1 15.45 18.06 4.65 +924 1 5.76 28.33 24.04 +925 1 15.08 29.21 16.09 +926 1 18.76 6.14 6.94 +927 1 22.31 30.25 26.46 +928 1 18.49 22.04 30.93 +929 1 11.15 16.42 9.89 +930 1 4.34 7.98 30.25 +931 1 9.29 29.92 8.58 +932 1 22.97 27.09 8.04 +933 1 20.71 16.7 15.75 +934 1 30.36 7.49 5.24 +935 1 29.56 19.54 0.83 +936 1 30.71 14.04 20.91 +937 1 19.36 4.06 27.14 +938 1 23.41 10.8 2.14 +939 1 1.51 1.32 0.44 +940 1 8.16 14.39 1.63 +941 1 20.66 6.74 4.62 +942 1 20.78 26.26 3.85 +943 1 5.11 15.12 21.64 +944 1 12.53 20.03 17.67 +945 1 28.63 18.4 12.56 +946 1 1.95 21.69 8.08 +947 1 21.53 0.93 7.84 +948 1 2.69 22.51 17.17 +949 1 19.29 22.12 6.05 +950 1 23.68 2.14 11.01 +951 1 27.14 17.8 3.72 +952 1 2.22 14.81 3.31 +953 1 23.1 6.43 14.62 +954 1 0.22 12.59 3.57 +955 1 13.21 22.86 3.67 +956 1 13.45 2.1 20.14 +957 1 12.52 17.12 0.46 +958 1 3.07 27.45 9.03 +959 1 15.33 10.95 11.78 +960 1 0.05 4.26 9.75 +961 1 23.05 16.98 24.69 +962 1 16.15 16.28 6.51 +963 1 30.05 28.87 9.61 +964 1 6.67 29.5 16.95 +965 1 21.95 14.44 14.94 +966 1 22.58 22.47 30.33 +967 1 21.34 19.29 9.9 +968 1 29.31 21.79 20.79 +969 1 5.55 2.56 30.23 +970 1 25.88 3.17 22.22 +971 1 22.38 18.32 30.08 +972 1 6.27 19.24 8.86 +973 1 0.34 24.29 1.49 +974 1 20.49 24.13 0.25 +975 1 2.94 1.41 2.74 +976 1 24.88 25.38 7.35 +977 1 28.18 14.89 14.6 +978 1 7.84 30.36 4.39 +979 1 14.54 9.59 14.4 +980 1 27.63 12.3 15.83 +981 1 11.15 14.17 27.97 +982 1 25.27 20.88 8.35 +983 1 17.06 14.76 27.78 +984 1 3.9 14.79 15.06 +985 1 13.81 3.82 17.03 +986 1 28.55 24.1 26.15 +987 1 29.28 21.79 15.76 +988 1 15.05 30.12 27.83 +989 1 15.42 3.77 6.76 +990 1 22.65 12.12 11.24 +991 1 11.29 4.96 2.18 +992 1 2.15 7.43 7.57 +993 1 30.21 10.13 26.21 +994 1 24.42 22.18 4.42 +995 1 8.68 14.72 22.08 +996 1 23.1 6.9 27.1 +997 1 18.71 27.2 21.72 +998 1 14.12 12.7 30.76 +999 1 18.81 6.5 10.98 +1000 1 26.66 15.4 4.83 diff --git a/examples/PACKAGES/manybody_table/data.spce2 b/examples/PACKAGES/manybody_table/data.spce2 new file mode 100644 index 0000000000..a0dbff24e5 --- /dev/null +++ b/examples/PACKAGES/manybody_table/data.spce2 @@ -0,0 +1,1016 @@ +Data File for CG Water + +1000 atoms +2 atom types + +0 31.0648 xlo xhi +0 31.0648 ylo yhi +0 31.0648 zlo zhi + +Masses + +1 18.0154 +2 18.0154 + +Atoms + +1 2 18.26 24.7 15.77 +2 2 12.63 1.42 27.01 +3 2 10.39 29.11 13.56 +4 2 26.47 16.64 7.23 +5 2 10.66 23.41 27.33 +6 2 19.08 3.2 21.63 +7 2 11.17 26.19 1.44 +8 2 4.61 4.04 25.72 +9 2 4.61 22.91 8.33 +10 2 30.61 22.71 25.18 +11 2 6.38 18.92 16.87 +12 2 17.83 12.53 11.09 +13 2 14.89 2.43 22.44 +14 2 28.36 30.9 26.38 +15 2 25.73 28.56 8.32 +16 2 19.61 20.22 4.43 +17 2 25.96 30.32 24.22 +18 2 14.51 17.35 16.41 +19 2 30.23 17.26 10.71 +20 2 22.68 23.23 2.3 +21 2 10.89 15.76 14.33 +22 2 1.46 20.46 12.48 +23 2 12.73 19.57 2.71 +24 2 1.21 12.02 9.88 +25 2 2.63 14.4 23.71 +26 2 16.91 20.37 4.73 +27 2 28.02 7.7 30.08 +28 2 21.22 22.47 19.66 +29 2 14.0 28.15 0.14 +30 2 19.62 19.73 1.11 +31 2 28.29 24.36 10.15 +32 2 14.05 1.1 17.64 +33 2 12.2 23.75 24.83 +34 2 24.56 26.02 13.57 +35 2 12.13 8.39 7.17 +36 2 20.47 22.28 25.02 +37 2 11.06 7.63 24.11 +38 2 6.52 22.64 30.46 +39 2 16.51 24.78 18.58 +40 2 30.18 20.56 29.19 +41 2 25.26 7.8 25.98 +42 2 20.37 4.16 3.88 +43 2 18.85 27.34 27.83 +44 2 17.72 29.84 12.78 +45 2 19.26 14.48 19.38 +46 2 29.73 4.46 4.96 +47 2 9.52 26.27 30.33 +48 2 6.55 9.25 20.32 +49 2 10.49 1.91 23.31 +50 2 17.63 1.17 14.48 +51 2 1.56 25.17 4.69 +52 2 9.08 10.39 2.29 +53 2 25.92 7.4 21.53 +54 2 25.3 5.14 28.4 +55 2 5.63 23.26 19.85 +56 2 9.6 9.85 24.85 +57 2 3.32 2.77 9.12 +58 2 28.54 15.28 22.18 +59 2 20.45 8.24 18.25 +60 2 12.86 3.73 11.61 +61 2 7.42 12.05 13.54 +62 2 1.73 28.54 25.27 +63 2 3.25 22.18 23.7 +64 2 3.27 25.38 2.24 +65 2 13.46 15.67 19.28 +66 2 31.0 6.91 13.61 +67 2 4.85 27.3 12.67 +68 2 24.48 13.52 4.98 +69 2 23.93 29.62 19.71 +70 2 5.03 13.35 19.5 +71 2 24.58 13.46 19.59 +72 2 7.42 6.82 9.03 +73 2 28.76 15.1 3.33 +74 2 12.38 17.21 6.63 +75 2 15.75 21.23 27.02 +76 2 4.58 5.06 28.19 +77 2 26.04 23.3 25.38 +78 2 30.02 7.27 9.52 +79 2 6.93 10.03 24.54 +80 2 5.61 26.93 27.34 +81 2 29.12 19.12 5.54 +82 2 18.44 27.8 14.75 +83 2 14.1 23.13 9.78 +84 2 24.12 5.55 20.72 +85 2 2.52 10.99 18.44 +86 2 1.76 6.41 21.47 +87 2 25.22 9.56 30.66 +88 2 11.87 13.25 9.12 +89 2 19.46 0.3 22.07 +90 2 28.82 12.29 11.36 +91 2 28.47 30.29 14.09 +92 2 25.51 20.94 24.33 +93 2 1.14 25.4 8.76 +94 2 1.33 27.98 3.09 +95 2 20.57 26.97 -0.04 +96 2 22.73 1.18 0.62 +97 2 19.16 16.99 30.52 +98 2 0.39 9.65 9.02 +99 2 4.41 7.21 3.22 +100 2 11.07 30.64 25.91 +101 1 7.93 25.84 26.26 +102 1 26.76 2.51 2.93 +103 1 30.8 18.15 18.49 +104 1 10.2 7.46 30.44 +105 1 4.77 20.39 26.99 +106 1 25.27 26.77 1.64 +107 1 28.51 13.99 9.33 +108 1 13.86 8.04 24.9 +109 1 30.67 29.88 23.01 +110 1 29.49 30.58 30.02 +111 1 28.74 5.08 30.95 +112 1 13.21 4.31 30.96 +113 1 5.27 3.66 5.02 +114 1 29.43 7.99 17.07 +115 1 4.19 1.37 16.63 +116 1 1.27 27.81 16.56 +117 1 30.64 5.73 25.91 +118 1 10.33 5.33 26.48 +119 1 11.56 21.77 14.77 +120 1 26.46 27.17 5.7 +121 1 14.85 25.79 8.64 +122 1 22.62 6.18 17.61 +123 1 3.45 18.53 11.84 +124 1 11.65 18.17 15.97 +125 1 23.16 17.0 1.5 +126 1 18.92 16.01 3.98 +127 1 30.05 0.25 5.23 +128 1 26.06 11.96 21.96 +129 1 16.82 2.0 10.25 +130 1 19.58 2.63 24.75 +131 1 20.09 14.75 26.62 +132 1 3.14 0.05 26.13 +133 1 4.86 11.79 12.99 +134 1 1.86 11.32 28.57 +135 1 8.82 28.6 6.22 +136 1 20.85 24.68 23.87 +137 1 7.58 25.15 3.44 +138 1 23.46 9.13 8.11 +139 1 6.45 10.24 27.37 +140 1 15.06 10.35 26.71 +141 1 13.8 18.39 26.5 +142 1 5.11 7.7 5.83 +143 1 23.27 23.16 6.67 +144 1 6.33 1.31 11.37 +145 1 14.66 22.28 21.43 +146 1 7.9 8.65 0.61 +147 1 21.83 3.67 26.17 +148 1 1.41 23.66 11.09 +149 1 10.19 17.23 22.71 +150 1 29.53 27.31 23.19 +151 1 28.69 11.38 2.33 +152 1 1.07 2.97 14.53 +153 1 23.47 30.53 14.32 +154 1 1.59 18.83 14.75 +155 1 20.38 30.6 24.38 +156 1 19.81 29.95 27.9 +157 1 12.68 27.59 26.46 +158 1 20.46 9.14 29.06 +159 1 8.69 13.98 24.71 +160 1 0.72 9.29 30.28 +161 1 11.81 20.55 12.28 +162 1 23.8 13.8 9.4 +163 1 13.63 0.51 0.95 +164 1 2.33 6.68 14.95 +165 1 15.98 6.35 25.28 +166 1 7.38 14.88 18.44 +167 1 17.07 20.48 29.16 +168 1 14.53 1.49 8.4 +169 1 28.45 1.21 20.58 +170 1 0.07 5.28 29.45 +171 1 26.0 9.98 15.37 +172 1 14.56 6.91 14.46 +173 1 20.6 9.09 23.04 +174 1 26.02 4.59 0.14 +175 1 5.21 21.9 17.55 +176 1 2.44 7.72 1.47 +177 1 1.25 30.0 13.48 +178 1 27.27 23.13 14.61 +179 1 24.04 15.61 21.64 +180 1 25.13 5.24 17.43 +181 1 4.2 15.98 12.34 +182 1 26.92 13.54 12.87 +183 1 3.38 19.38 9.08 +184 1 27.75 25.03 2.15 +185 1 26.13 20.68 16.54 +186 1 8.3 14.6 13.49 +187 1 3.04 22.87 29.93 +188 1 9.5 26.41 21.23 +189 1 6.53 2.16 2.75 +190 1 6.37 29.04 2.63 +191 1 26.58 4.38 19.69 +192 1 28.44 6.56 14.66 +193 1 25.55 11.1 28.03 +194 1 25.5 18.39 28.73 +195 1 27.67 23.47 5.65 +196 1 13.69 14.81 16.17 +197 1 22.97 27.61 24.11 +198 1 2.06 18.58 30.22 +199 1 2.07 7.13 29.2 +200 1 13.0 7.26 17.76 +201 1 10.04 16.22 30.62 +202 1 6.54 9.8 17.47 +203 1 5.65 12.68 0.64 +204 1 20.84 20.25 23.02 +205 1 22.48 27.63 21.48 +206 1 15.61 22.73 5.36 +207 1 3.52 30.36 6.24 +208 1 6.38 17.25 26.36 +209 1 14.13 10.57 22.63 +210 1 10.22 25.11 3.64 +211 1 16.63 14.7 25.08 +212 1 3.51 29.69 2.76 +213 1 19.2 11.9 21.44 +214 1 30.8 23.85 14.75 +215 1 21.02 14.34 12.4 +216 1 2.75 22.13 27.29 +217 1 29.27 14.29 6.8 +218 1 8.44 20.67 5.23 +219 1 9.42 20.06 22.95 +220 1 30.83 10.64 19.73 +221 1 19.33 14.14 8.94 +222 1 14.18 11.32 18.19 +223 1 26.55 2.39 28.55 +224 1 6.83 16.57 8.9 +225 1 13.98 8.79 1.97 +226 1 4.94 3.0 23.16 +227 1 25.39 29.46 0.63 +228 1 15.32 16.43 2.45 +229 1 5.26 29.73 29.87 +230 1 26.92 14.84 19.93 +231 1 11.87 30.08 4.52 +232 1 7.17 6.71 2.23 +233 1 10.46 1.13 18.11 +234 1 28.59 20.57 25.68 +235 1 26.54 4.84 8.44 +236 1 16.46 18.37 26.15 +237 1 30.53 0.74 15.31 +238 1 27.25 6.31 27.09 +239 1 22.42 1.65 3.87 +240 1 17.85 3.77 8.02 +241 1 11.82 8.23 11.15 +242 1 8.62 27.66 15.87 +243 1 25.19 1.89 18.37 +244 1 14.0 21.96 30.21 +245 1 29.3 1.73 28.29 +246 1 9.35 24.02 12.03 +247 1 1.05 21.5 0.35 +248 1 21.87 20.54 2.54 +249 1 10.59 15.98 17.51 +250 1 22.76 6.0 9.32 +251 1 0.31 9.13 11.87 +252 1 29.16 25.13 18.29 +253 1 1.23 29.08 7.75 +254 1 30.01 28.49 26.21 +255 1 1.87 5.92 5.03 +256 1 1.15 10.27 22.35 +257 1 11.83 10.31 5.16 +258 1 20.89 8.28 8.14 +259 1 13.48 11.78 28.37 +260 1 6.82 10.48 10.25 +261 1 7.34 4.49 18.73 +262 1 5.49 22.37 14.23 +263 1 12.31 21.05 27.47 +264 1 24.09 17.4 8.65 +265 1 22.03 11.54 20.98 +266 1 16.68 13.17 0.68 +267 1 5.52 1.47 8.78 +268 1 14.95 11.83 7.95 +269 1 5.9 10.66 7.12 +270 1 10.06 11.28 30.73 +271 1 17.72 10.71 27.46 +272 1 13.6 6.23 10.82 +273 1 23.42 30.72 9.31 +274 1 23.27 4.25 3.8 +275 1 13.79 8.37 21.07 +276 1 5.01 30.13 12.61 +277 1 26.04 24.45 17.25 +278 1 22.59 14.31 0.81 +279 1 23.74 10.37 17.17 +280 1 23.4 8.52 12.55 +281 1 10.53 23.97 21.96 +282 1 0.69 13.92 28.42 +283 1 6.94 6.27 15.01 +284 1 29.8 20.92 3.41 +285 1 10.19 20.68 19.0 +286 1 26.38 25.4 28.89 +287 1 12.34 26.9 8.27 +288 1 15.0 7.69 6.4 +289 1 24.75 13.1 2.24 +290 1 4.5 20.58 6.78 +291 1 23.27 18.25 11.48 +292 1 25.92 26.39 22.66 +293 1 24.63 4.21 6.52 +294 1 16.68 15.05 15.6 +295 1 26.39 16.17 29.89 +296 1 10.12 6.21 8.63 +297 1 14.41 14.67 12.23 +298 1 19.59 3.47 1.47 +299 1 28.21 22.43 18.25 +300 1 27.87 29.74 11.47 +301 1 22.53 24.1 13.94 +302 1 12.55 1.58 29.82 +303 1 17.45 21.28 8.34 +304 1 16.3 10.75 16.22 +305 1 16.34 13.25 17.65 +306 1 8.44 4.52 0.93 +307 1 17.47 23.79 2.3 +308 1 29.04 26.8 5.13 +309 1 13.13 11.34 24.9 +310 1 24.33 13.0 13.32 +311 1 8.21 29.74 24.23 +312 1 21.79 28.0 5.85 +313 1 13.74 20.08 10.26 +314 1 20.92 24.38 6.01 +315 1 9.83 29.56 17.99 +316 1 26.66 30.76 2.95 +317 1 24.34 3.08 1.67 +318 1 28.09 10.69 23.33 +319 1 7.08 25.28 0.77 +320 1 15.34 1.12 29.82 +321 1 26.07 12.55 7.74 +322 1 16.85 0.81 21.24 +323 1 9.96 0.57 6.36 +324 1 29.4 2.54 1.18 +325 1 5.81 1.0 5.42 +326 1 25.16 24.89 11.15 +327 1 15.43 24.93 13.71 +328 1 24.6 10.06 10.58 +329 1 20.4 12.04 15.51 +330 1 15.72 18.9 0.21 +331 1 16.5 17.21 28.81 +332 1 16.79 3.11 12.74 +333 1 22.75 6.22 6.6 +334 1 8.09 19.86 30.92 +335 1 24.15 8.75 23.65 +336 1 12.24 30.51 15.39 +337 1 8.15 26.8 18.69 +338 1 0.1 15.0 15.49 +339 1 29.84 15.71 30.0 +340 1 15.39 18.25 11.17 +341 1 1.2 15.49 18.8 +342 1 27.55 9.81 17.9 +343 1 18.93 8.9 10.06 +344 1 28.35 12.36 4.82 +345 1 11.21 13.71 30.62 +346 1 2.5 16.67 16.33 +347 1 0.47 4.2 6.99 +348 1 23.72 4.38 12.28 +349 1 16.59 3.54 16.9 +350 1 17.31 17.81 15.8 +351 1 11.58 0.3 21.21 +352 1 23.67 21.91 15.84 +353 1 7.74 2.78 23.52 +354 1 14.34 9.65 4.52 +355 1 23.35 10.88 14.55 +356 1 3.51 10.03 20.99 +357 1 14.63 21.34 1.75 +358 1 24.37 8.39 2.96 +359 1 14.8 15.5 30.48 +360 1 2.59 1.32 12.76 +361 1 0.16 13.81 25.49 +362 1 11.26 10.11 27.84 +363 1 27.8 18.65 15.07 +364 1 5.07 5.43 21.33 +365 1 14.06 5.26 19.67 +366 1 3.76 18.23 19.36 +367 1 26.68 27.25 10.67 +368 1 7.72 19.58 13.64 +369 1 29.48 16.94 16.45 +370 1 28.18 13.38 30.28 +371 1 29.97 10.41 16.17 +372 1 11.97 28.73 29.31 +373 1 14.88 0.79 25.43 +374 1 8.98 23.85 7.66 +375 1 4.78 8.21 9.79 +376 1 21.74 20.61 28.64 +377 1 20.36 18.75 17.92 +378 1 12.61 21.65 23.18 +379 1 6.36 29.76 8.49 +380 1 12.51 26.69 18.69 +381 1 22.2 17.41 6.86 +382 1 11.7 6.53 21.66 +383 1 4.62 16.22 3.24 +384 1 0.76 13.73 0.83 +385 1 21.91 13.43 5.67 +386 1 17.36 6.16 4.12 +387 1 0.34 28.1 11.89 +388 1 2.43 26.92 20.47 +389 1 0.99 22.41 4.14 +390 1 23.77 24.66 24.16 +391 1 22.41 7.79 20.57 +392 1 16.4 22.82 23.46 +393 1 24.68 28.28 17.44 +394 1 14.99 26.21 27.12 +395 1 0.75 13.41 7.7 +396 1 16.43 5.69 21.09 +397 1 19.5 6.71 27.89 +398 1 14.32 17.4 22.9 +399 1 29.04 27.81 19.17 +400 1 9.52 19.68 10.69 +401 1 5.33 27.17 17.3 +402 1 5.2 12.64 9.11 +403 1 9.8 6.14 19.74 +404 1 9.86 22.71 1.2 +405 1 0.84 12.31 14.9 +406 1 18.79 12.07 17.76 +407 1 27.21 25.79 14.27 +408 1 6.11 1.01 19.83 +409 1 8.44 5.68 12.85 +410 1 22.42 26.4 1.81 +411 1 24.0 20.11 18.63 +412 1 2.32 26.11 12.18 +413 1 26.06 7.28 15.77 +414 1 9.96 9.13 19.49 +415 1 10.74 12.01 25.79 +416 1 30.39 1.07 11.77 +417 1 9.49 20.19 26.63 +418 1 15.99 30.59 6.78 +419 1 11.0 30.74 0.96 +420 1 23.67 30.14 22.75 +421 1 24.14 9.9 19.82 +422 1 5.88 5.5 7.25 +423 1 3.45 10.72 9.52 +424 1 11.78 25.26 29.31 +425 1 15.95 27.28 17.71 +426 1 17.99 16.5 8.95 +427 1 28.47 0.47 23.29 +428 1 14.06 1.39 12.17 +429 1 19.28 23.85 8.27 +430 1 13.62 4.42 14.21 +431 1 2.98 9.89 12.04 +432 1 7.35 14.53 10.79 +433 1 15.55 0.87 3.17 +434 1 7.7 24.24 23.88 +435 1 17.61 8.64 6.93 +436 1 5.17 26.9 3.74 +437 1 1.06 17.17 27.8 +438 1 18.8 9.64 19.81 +439 1 8.36 1.64 0.63 +440 1 13.68 14.97 7.75 +441 1 29.56 0.55 17.98 +442 1 3.01 24.45 14.3 +443 1 11.98 7.48 26.92 +444 1 19.13 24.44 27.57 +445 1 11.75 14.57 11.88 +446 1 13.1 4.54 22.64 +447 1 7.2 21.26 28.21 +448 1 24.85 22.96 28.77 +449 1 15.0 23.95 16.32 +450 1 24.6 14.43 15.56 +451 1 3.05 13.66 17.69 +452 1 3.0 3.39 6.37 +453 1 24.92 22.04 13.42 +454 1 21.24 2.56 17.68 +455 1 19.69 0.3 11.75 +456 1 5.73 29.89 26.41 +457 1 7.62 30.1 0.37 +458 1 14.62 28.23 20.86 +459 1 8.72 5.14 23.94 +460 1 9.94 25.78 9.45 +461 1 17.3 4.53 0.74 +462 1 17.58 12.58 14.58 +463 1 8.64 2.55 20.15 +464 1 21.07 10.96 26.32 +465 1 27.85 4.23 10.9 +466 1 20.41 29.07 20.84 +467 1 9.35 12.65 10.7 +468 1 9.88 0.73 3.41 +469 1 26.64 20.78 1.33 +470 1 25.47 19.72 10.96 +471 1 1.01 5.01 12.19 +472 1 10.11 27.98 23.8 +473 1 17.51 0.24 28.51 +474 1 21.85 14.89 8.07 +475 1 18.22 12.88 29.4 +476 1 10.97 16.02 2.55 +477 1 4.3 25.33 5.86 +478 1 12.67 27.62 3.28 +479 1 12.18 24.26 16.74 +480 1 0.24 29.32 20.41 +481 1 5.03 15.5 6.14 +482 1 11.11 12.43 6.7 +483 1 10.14 4.47 15.0 +484 1 2.9 6.91 24.11 +485 1 30.6 4.29 16.4 +486 1 9.61 4.66 29.44 +487 1 5.38 17.6 1.1 +488 1 3.71 5.22 11.92 +489 1 8.93 11.33 8.19 +490 1 31.02 28.82 0.48 +491 1 0.81 2.74 23.14 +492 1 16.45 28.36 8.16 +493 1 2.1 8.36 17.2 +494 1 25.82 16.89 1.44 +495 1 20.21 11.2 11.56 +496 1 13.88 23.42 27.01 +497 1 30.15 5.56 2.54 +498 1 1.76 17.51 24.41 +499 1 18.18 8.62 16.29 +500 1 4.41 20.18 15.26 +501 1 7.05 29.39 19.64 +502 1 22.92 21.56 26.41 +503 1 29.43 3.25 12.91 +504 1 16.92 25.1 29.07 +505 1 25.4 12.48 17.22 +506 1 7.4 5.74 28.39 +507 1 0.14 3.32 27.06 +508 1 29.61 24.31 3.76 +509 1 13.25 25.77 23.43 +510 1 19.18 28.02 24.33 +511 1 3.66 10.37 26.9 +512 1 12.53 11.26 1.28 +513 1 28.21 7.27 11.49 +514 1 26.9 9.35 3.39 +515 1 18.87 28.09 9.36 +516 1 9.3 30.5 15.62 +517 1 12.34 13.23 3.13 +518 1 27.93 26.52 26.46 +519 1 7.78 9.29 14.0 +520 1 16.12 6.82 1.73 +521 1 0.63 2.82 20.33 +522 1 12.2 26.56 13.2 +523 1 6.16 16.1 15.43 +524 1 13.49 24.29 6.85 +525 1 28.61 10.73 30.64 +526 1 19.98 17.97 5.68 +527 1 2.75 19.83 4.73 +528 1 18.41 26.18 2.29 +529 1 22.35 24.43 11.05 +530 1 4.45 4.92 15.13 +531 1 16.8 18.43 21.99 +532 1 2.08 4.57 24.87 +533 1 26.03 2.02 24.82 +534 1 15.65 30.12 19.2 +535 1 27.88 13.79 27.66 +536 1 29.03 7.86 2.9 +537 1 2.68 5.55 9.4 +538 1 30.45 11.98 23.35 +539 1 2.08 19.71 21.15 +540 1 11.06 3.11 4.38 +541 1 21.61 14.28 20.83 +542 1 15.85 5.82 12.29 +543 1 29.7 22.61 8.47 +544 1 29.5 7.81 27.38 +545 1 24.12 20.22 0.4 +546 1 16.0 25.22 21.34 +547 1 19.8 25.24 13.43 +548 1 7.11 16.71 4.39 +549 1 4.59 0.13 21.8 +550 1 20.94 12.01 28.92 +551 1 12.99 2.09 6.04 +552 1 19.45 19.38 14.86 +553 1 12.98 23.9 12.88 +554 1 13.06 12.04 20.67 +555 1 17.56 1.18 25.76 +556 1 29.88 16.58 1.42 +557 1 6.04 13.87 25.34 +558 1 25.5 6.08 10.63 +559 1 20.34 11.15 2.51 +560 1 3.82 11.92 15.57 +561 1 10.47 18.64 8.01 +562 1 13.02 24.92 20.67 +563 1 20.03 29.78 7.22 +564 1 8.36 11.63 28.63 +565 1 14.06 21.56 15.74 +566 1 9.4 28.78 29.81 +567 1 9.07 10.18 22.15 +568 1 11.47 22.66 29.81 +569 1 17.02 8.02 27.19 +570 1 29.56 18.32 21.38 +571 1 8.58 8.58 11.23 +572 1 22.15 19.86 15.25 +573 1 12.34 29.83 7.16 +574 1 20.52 25.35 20.66 +575 1 21.23 5.6 23.05 +576 1 23.45 10.69 5.93 +577 1 14.15 4.81 4.29 +578 1 8.26 24.58 28.88 +579 1 10.03 3.4 7.88 +580 1 25.65 7.23 0.84 +581 1 7.28 26.7 9.09 +582 1 20.47 29.31 16.02 +583 1 4.44 7.7 27.1 +584 1 27.95 23.13 0.39 +585 1 19.82 18.98 12.12 +586 1 20.01 5.07 14.72 +587 1 1.66 1.23 5.19 +588 1 5.6 11.21 22.59 +589 1 3.81 22.68 4.63 +590 1 17.47 14.06 22.25 +591 1 16.77 22.61 10.71 +592 1 7.2 26.5 22.52 +593 1 10.75 17.97 28.76 +594 1 16.61 8.28 20.88 +595 1 0.81 27.72 28.37 +596 1 6.78 22.71 4.37 +597 1 27.35 28.79 17.13 +598 1 15.16 3.34 2.07 +599 1 19.69 29.89 30.66 +600 1 17.34 20.23 2.18 +601 1 15.65 15.76 9.8 +602 1 19.07 19.02 8.23 +603 1 26.13 0.42 7.37 +604 1 4.29 9.29 15.94 +605 1 7.86 7.42 4.84 +606 1 23.4 1.93 16.16 +607 1 5.27 27.16 0.17 +608 1 27.08 14.52 1.58 +609 1 8.34 11.25 18.53 +610 1 10.4 17.83 12.7 +611 1 8.86 18.1 18.73 +612 1 17.69 22.57 26.0 +613 1 6.1 6.61 11.68 +614 1 24.32 13.38 23.99 +615 1 0.13 20.78 22.53 +616 1 10.96 20.82 6.33 +617 1 28.46 1.62 7.03 +618 1 16.9 4.13 23.44 +619 1 1.89 11.75 5.82 +620 1 3.27 20.91 2.26 +621 1 11.14 15.5 24.78 +622 1 21.76 3.5 20.99 +623 1 3.95 12.22 24.49 +624 1 7.26 23.31 16.11 +625 1 19.28 20.97 21.06 +626 1 7.2 17.22 22.12 +627 1 16.26 10.81 24.17 +628 1 1.54 24.72 17.86 +629 1 17.74 0.11 1.5 +630 1 25.85 5.87 23.82 +631 1 4.21 7.73 13.47 +632 1 20.87 8.0 25.94 +633 1 22.23 3.22 8.98 +634 1 13.72 30.72 23.05 +635 1 4.91 26.26 19.85 +636 1 14.82 27.52 13.76 +637 1 27.5 3.72 26.36 +638 1 27.62 9.82 10.27 +639 1 19.32 8.78 3.53 +640 1 16.33 28.86 1.39 +641 1 30.26 10.13 4.93 +642 1 14.94 29.37 4.67 +643 1 7.61 12.27 21.0 +644 1 5.31 18.92 23.16 +645 1 25.19 3.1 14.51 +646 1 8.12 21.6 9.56 +647 1 20.35 17.71 23.89 +648 1 3.39 19.78 24.7 +649 1 5.42 23.52 1.93 +650 1 29.44 5.52 23.47 +651 1 23.83 22.25 20.16 +652 1 17.93 4.41 19.13 +653 1 9.44 1.91 29.19 +654 1 29.91 23.65 12.09 +655 1 27.06 21.35 3.96 +656 1 16.28 19.92 14.78 +657 1 19.99 5.38 17.54 +658 1 14.54 21.16 7.89 +659 1 26.09 14.97 10.68 +660 1 0.63 24.05 28.89 +661 1 5.07 25.73 10.62 +662 1 6.78 8.27 29.12 +663 1 11.86 12.77 15.67 +664 1 21.83 14.26 24.49 +665 1 23.7 1.53 6.32 +666 1 28.91 27.7 13.19 +667 1 16.46 28.92 23.22 +668 1 26.22 15.29 23.65 +669 1 23.75 1.5 21.21 +670 1 4.08 23.38 11.4 +671 1 29.4 29.73 2.7 +672 1 8.94 16.2 27.64 +673 1 30.79 23.65 6.33 +674 1 27.04 17.6 10.45 +675 1 21.48 15.71 29.11 +676 1 17.68 22.29 18.33 +677 1 22.1 29.54 1.71 +678 1 16.17 27.33 3.65 +679 1 9.22 5.24 5.71 +680 1 1.81 4.91 1.83 +681 1 30.98 28.61 5.42 +682 1 0.24 6.26 18.55 +683 1 17.39 24.85 11.97 +684 1 28.21 20.4 22.88 +685 1 23.01 8.35 29.39 +686 1 4.03 15.76 25.76 +687 1 3.89 12.75 4.32 +688 1 16.42 9.73 9.22 +689 1 14.74 17.01 13.68 +690 1 11.65 22.66 10.77 +691 1 21.04 26.56 25.76 +692 1 3.97 29.83 10.01 +693 1 10.62 26.12 25.57 +694 1 17.97 8.53 23.31 +695 1 19.22 16.46 13.24 +696 1 2.39 24.13 25.42 +697 1 1.72 21.99 14.71 +698 1 14.16 25.55 4.52 +699 1 10.58 12.26 13.38 +700 1 25.76 29.55 5.46 +701 1 24.18 1.25 26.8 +702 1 30.61 26.16 30.37 +703 1 3.38 16.05 28.52 +704 1 1.18 24.43 20.96 +705 1 7.9 1.26 25.66 +706 1 26.57 10.39 5.82 +707 1 8.44 8.09 16.34 +708 1 16.67 27.55 25.72 +709 1 7.45 2.82 7.35 +710 1 19.18 19.09 28.22 +711 1 12.68 8.88 30.58 +712 1 27.98 26.24 30.75 +713 1 11.84 28.3 20.75 +714 1 10.45 30.97 11.14 +715 1 8.96 2.33 11.92 +716 1 7.66 10.26 5.22 +717 1 23.5 12.98 28.85 +718 1 30.48 8.08 21.02 +719 1 16.48 29.96 10.33 +720 1 13.88 5.72 8.08 +721 1 27.47 28.22 21.47 +722 1 26.74 18.07 22.5 +723 1 25.13 23.78 0.9 +724 1 29.21 15.71 26.07 +725 1 19.41 3.92 10.58 +726 1 24.96 7.64 5.7 +727 1 7.44 14.1 29.85 +728 1 7.13 12.21 3.18 +729 1 16.35 14.7 4.18 +730 1 1.43 15.6 11.58 +731 1 30.27 1.93 9.17 +732 1 2.77 2.54 27.69 +733 1 11.36 27.83 16.39 +734 1 7.83 2.36 14.66 +735 1 19.3 12.28 5.63 +736 1 28.36 12.19 19.25 +737 1 10.67 7.34 13.62 +738 1 26.6 24.47 21.0 +739 1 8.55 29.42 27.3 +740 1 25.79 25.13 4.07 +741 1 28.21 8.09 22.88 +742 1 22.44 11.07 23.78 +743 1 27.76 17.89 25.74 +744 1 2.23 0.19 23.48 +745 1 10.49 12.99 20.29 +746 1 18.74 11.84 24.74 +747 1 29.46 2.69 24.54 +748 1 3.11 29.29 15.2 +749 1 21.8 19.07 20.45 +750 1 11.21 17.26 20.08 +751 1 2.59 26.55 26.79 +752 1 23.67 25.82 17.79 +753 1 23.43 27.91 15.08 +754 1 6.86 2.11 28.13 +755 1 14.38 19.97 19.61 +756 1 29.05 26.41 8.62 +757 1 3.34 9.63 6.81 +758 1 21.41 30.88 18.45 +759 1 30.35 16.75 23.77 +760 1 19.92 6.73 20.92 +761 1 26.4 1.5 11.47 +762 1 16.6 8.88 30.96 +763 1 23.25 29.76 4.34 +764 1 17.15 13.45 7.34 +765 1 14.52 14.34 23.37 +766 1 11.77 3.31 25.06 +767 1 15.52 25.25 0.94 +768 1 21.53 27.39 12.97 +769 1 11.29 10.11 17.38 +770 1 11.07 15.06 5.47 +771 1 27.61 7.39 6.07 +772 1 15.82 4.83 27.63 +773 1 17.16 20.28 12.25 +774 1 3.18 28.03 22.92 +775 1 25.53 27.61 25.22 +776 1 1.81 16.55 1.25 +777 1 3.72 16.82 7.97 +778 1 7.68 21.57 2.11 +779 1 21.85 26.93 28.36 +780 1 10.31 8.57 4.0 +781 1 11.61 9.88 14.35 +782 1 0.41 8.48 24.13 +783 1 3.8 10.63 30.74 +784 1 2.74 17.0 21.82 +785 1 28.44 22.73 28.74 +786 1 2.08 0.43 20.23 +787 1 0.25 9.36 2.02 +788 1 27.68 11.33 26.53 +789 1 27.63 4.1 14.74 +790 1 19.68 0.89 3.22 +791 1 17.12 30.74 17.17 +792 1 16.11 25.62 24.01 +793 1 20.49 9.58 13.85 +794 1 26.77 20.78 27.64 +795 1 18.77 16.87 25.93 +796 1 7.01 13.49 6.76 +797 1 18.38 16.84 18.4 +798 1 8.54 14.44 4.51 +799 1 11.51 1.42 8.98 +800 1 17.06 14.93 12.29 +801 1 6.07 0.24 15.08 +802 1 8.76 17.53 2.01 +803 1 19.63 6.58 1.71 +804 1 10.24 4.66 10.93 +805 1 4.39 20.15 30.88 +806 1 30.31 16.7 6.24 +807 1 26.0 30.16 27.34 +808 1 6.44 21.42 21.88 +809 1 22.05 29.62 11.43 +810 1 21.94 22.11 9.22 +811 1 21.82 1.59 13.13 +812 1 27.09 0.55 16.64 +813 1 8.88 3.09 17.06 +814 1 6.95 18.85 6.3 +815 1 20.13 2.53 15.07 +816 1 17.52 12.36 3.26 +817 1 18.46 7.24 13.99 +818 1 12.61 6.94 3.36 +819 1 15.55 17.46 19.11 +820 1 16.13 27.37 11.33 +821 1 2.99 14.41 9.34 +822 1 5.81 22.26 24.67 +823 1 19.82 2.53 6.19 +824 1 28.93 5.65 7.69 +825 1 17.89 22.05 15.68 +826 1 5.63 7.81 23.81 +827 1 19.09 16.3 22.05 +828 1 1.07 19.82 27.06 +829 1 14.74 8.15 28.71 +830 1 16.98 10.27 4.92 +831 1 13.39 20.01 5.47 +832 1 21.23 3.56 30.15 +833 1 29.23 18.12 28.24 +834 1 16.76 24.31 7.29 +835 1 26.12 21.8 21.5 +836 1 0.2 13.1 12.25 +837 1 1.99 3.78 30.39 +838 1 26.67 20.02 19.27 +839 1 20.63 10.01 5.91 +840 1 4.44 3.74 1.84 +841 1 21.95 6.78 0.24 +842 1 9.86 22.51 17.05 +843 1 26.17 7.64 18.91 +844 1 17.09 20.11 19.78 +845 1 10.38 9.07 9.16 +846 1 9.92 13.21 17.39 +847 1 24.26 19.17 3.05 +848 1 13.32 18.96 29.06 +849 1 27.98 20.32 7.7 +850 1 10.35 6.44 17.04 +851 1 27.27 28.95 29.77 +852 1 7.71 19.32 24.95 +853 1 23.11 17.51 14.39 +854 1 25.37 14.39 26.26 +855 1 4.73 3.99 17.92 +856 1 28.53 17.74 8.3 +857 1 28.99 9.49 7.65 +858 1 11.37 3.77 18.66 +859 1 11.01 23.57 6.0 +860 1 7.29 17.47 30.27 +861 1 18.92 10.24 0.36 +862 1 22.76 24.44 27.3 +863 1 14.27 13.05 5.04 +864 1 3.42 14.59 30.9 +865 1 9.31 22.34 24.75 +866 1 25.78 16.96 15.63 +867 1 7.18 22.01 12.25 +868 1 5.0 18.29 28.57 +869 1 23.36 20.87 22.7 +870 1 13.16 10.8 10.17 +871 1 6.42 24.78 7.47 +872 1 28.86 3.89 20.92 +873 1 4.8 3.05 13.07 +874 1 27.07 3.53 5.63 +875 1 13.11 28.33 23.92 +876 1 14.84 13.88 20.8 +877 1 15.81 7.0 16.91 +878 1 23.41 25.39 20.56 +879 1 26.08 0.43 14.19 +880 1 6.28 17.41 19.28 +881 1 2.74 4.79 19.54 +882 1 20.98 26.42 10.11 +883 1 24.18 28.48 29.18 +884 1 12.74 29.99 12.8 +885 1 27.22 16.82 18.13 +886 1 2.08 19.98 18.27 +887 1 22.0 23.67 17.16 +888 1 17.83 3.01 29.13 +889 1 9.59 26.62 13.51 +890 1 11.48 2.18 13.45 +891 1 13.57 15.29 26.47 +892 1 1.72 0.72 9.92 +893 1 2.14 30.76 17.27 +894 1 17.9 15.88 1.47 +895 1 13.47 5.84 28.76 +896 1 8.96 22.14 21.0 +897 1 12.96 24.15 0.94 +898 1 26.13 23.25 8.89 +899 1 6.01 28.65 6.08 +900 1 22.88 20.21 6.1 +901 1 30.34 20.77 10.49 +902 1 12.19 28.16 10.6 +903 1 5.8 5.33 30.84 +904 1 29.83 26.29 15.91 +905 1 18.28 0.14 5.58 +906 1 1.91 17.34 5.88 +907 1 24.05 18.42 22.53 +908 1 10.82 21.55 3.57 +909 1 11.29 26.73 5.6 +910 1 21.34 14.41 3.22 +911 1 12.61 18.99 24.17 +912 1 25.02 18.6 25.9 +913 1 29.0 21.05 13.14 +914 1 17.72 27.28 30.27 +915 1 30.56 24.81 23.12 +916 1 17.09 20.05 24.02 +917 1 7.35 6.83 21.31 +918 1 3.39 22.32 21.05 +919 1 2.28 29.8 30.23 +920 1 5.29 25.66 14.8 +921 1 26.16 30.72 21.04 +922 1 21.63 6.32 11.68 +923 1 15.45 18.06 4.65 +924 1 5.76 28.33 24.04 +925 1 15.08 29.21 16.09 +926 1 18.76 6.14 6.94 +927 1 22.31 30.25 26.46 +928 1 18.49 22.04 30.93 +929 1 11.15 16.42 9.89 +930 1 4.34 7.98 30.25 +931 1 9.29 29.92 8.58 +932 1 22.97 27.09 8.04 +933 1 20.71 16.7 15.75 +934 1 30.36 7.49 5.24 +935 1 29.56 19.54 0.83 +936 1 30.71 14.04 20.91 +937 1 19.36 4.06 27.14 +938 1 23.41 10.8 2.14 +939 1 1.51 1.32 0.44 +940 1 8.16 14.39 1.63 +941 1 20.66 6.74 4.62 +942 1 20.78 26.26 3.85 +943 1 5.11 15.12 21.64 +944 1 12.53 20.03 17.67 +945 1 28.63 18.4 12.56 +946 1 1.95 21.69 8.08 +947 1 21.53 0.93 7.84 +948 1 2.69 22.51 17.17 +949 1 19.29 22.12 6.05 +950 1 23.68 2.14 11.01 +951 1 27.14 17.8 3.72 +952 1 2.22 14.81 3.31 +953 1 23.1 6.43 14.62 +954 1 0.22 12.59 3.57 +955 1 13.21 22.86 3.67 +956 1 13.45 2.1 20.14 +957 1 12.52 17.12 0.46 +958 1 3.07 27.45 9.03 +959 1 15.33 10.95 11.78 +960 1 0.05 4.26 9.75 +961 1 23.05 16.98 24.69 +962 1 16.15 16.28 6.51 +963 1 30.05 28.87 9.61 +964 1 6.67 29.5 16.95 +965 1 21.95 14.44 14.94 +966 1 22.58 22.47 30.33 +967 1 21.34 19.29 9.9 +968 1 29.31 21.79 20.79 +969 1 5.55 2.56 30.23 +970 1 25.88 3.17 22.22 +971 1 22.38 18.32 30.08 +972 1 6.27 19.24 8.86 +973 1 0.34 24.29 1.49 +974 1 20.49 24.13 0.25 +975 1 2.94 1.41 2.74 +976 1 24.88 25.38 7.35 +977 1 28.18 14.89 14.6 +978 1 7.84 30.36 4.39 +979 1 14.54 9.59 14.4 +980 1 27.63 12.3 15.83 +981 1 11.15 14.17 27.97 +982 1 25.27 20.88 8.35 +983 1 17.06 14.76 27.78 +984 1 3.9 14.79 15.06 +985 1 13.81 3.82 17.03 +986 1 28.55 24.1 26.15 +987 1 29.28 21.79 15.76 +988 1 15.05 30.12 27.83 +989 1 15.42 3.77 6.76 +990 1 22.65 12.12 11.24 +991 1 11.29 4.96 2.18 +992 1 2.15 7.43 7.57 +993 1 30.21 10.13 26.21 +994 1 24.42 22.18 4.42 +995 1 8.68 14.72 22.08 +996 1 23.1 6.9 27.1 +997 1 18.71 27.2 21.72 +998 1 14.12 12.7 30.76 +999 1 18.81 6.5 10.98 +1000 1 26.66 15.4 4.83 diff --git a/examples/PACKAGES/manybody_table/in.spce b/examples/PACKAGES/manybody_table/in.spce new file mode 100644 index 0000000000..6c6c6f2050 --- /dev/null +++ b/examples/PACKAGES/manybody_table/in.spce @@ -0,0 +1,21 @@ +units real +atom_style atomic + +# data file with one atom type +read_data data.spce + +pair_style hybrid/overlay table linear 1200 threebody/table + +#pair coefficients +pair_coeff 1 1 table table_CG_CG.txt VOTCA +pair_coeff * * threebody/table spce.3b type + +fix 1 all nvt temp 300.0 300.0 200.0 + +velocity all create 300 432567 dist uniform loop geom mom yes +timestep 2.0 + +thermo 100 +#dump 2 all custom 100 dump.spce id type x y z fx fy fz + +run 1000 diff --git a/examples/PACKAGES/manybody_table/in.spce2 b/examples/PACKAGES/manybody_table/in.spce2 new file mode 100644 index 0000000000..c8656c105f --- /dev/null +++ b/examples/PACKAGES/manybody_table/in.spce2 @@ -0,0 +1,22 @@ +units real +atom_style atomic + +# data file with two atom types +read_data data.spce2 + +pair_style hybrid/overlay table linear 1200 threebody/table + +#pair coefficients +pair_coeff * * table table_CG_CG.txt VOTCA +pair_coeff * * threebody/table spce2.3b type1 type2 + +fix 1 all nvt temp 300.0 300.0 200.0 + +velocity all create 300 432567 dist uniform loop geom mom yes +timestep 2.0 + +thermo 100 +#dump 2 all custom 100 dump.spce2 id type x y z fx fy fz + +run 1000 + diff --git a/examples/PACKAGES/manybody_table/in.spce_sw b/examples/PACKAGES/manybody_table/in.spce_sw new file mode 100644 index 0000000000..bb0a097743 --- /dev/null +++ b/examples/PACKAGES/manybody_table/in.spce_sw @@ -0,0 +1,20 @@ +units real +atom_style atomic + +read_data data.spce + +pair_style hybrid/overlay table linear 1200 sw/angle/table + +pair_coeff 1 1 table table_CG_CG.txt VOTCA +pair_coeff * * sw/angle/table spce.sw type + +fix 1 all nvt temp 300.0 300.0 200.0 + +velocity all create 300 432567 dist uniform mom yes + +timestep 2.0 + +thermo 100 +#dump 2 all custom 10 spce_sw.dump id type x y z fx fy fz + +run 1000 diff --git a/examples/PACKAGES/manybody_table/log.1Jun22.spce.g++.1 b/examples/PACKAGES/manybody_table/log.1Jun22.spce.g++.1 new file mode 100644 index 0000000000..ec20bd3ced --- /dev/null +++ b/examples/PACKAGES/manybody_table/log.1Jun22.spce.g++.1 @@ -0,0 +1,88 @@ +LAMMPS (4 May 2022) + using 1 OpenMP thread(s) per MPI task +units real +atom_style atomic + +# data file with one atom type +read_data data.spce +Reading data file ... + orthogonal box = (0 0 0) to (31.0648 31.0648 31.0648) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1000 atoms + read_data CPU = 0.001 seconds + +pair_style hybrid/overlay table linear 1200 threebody/table + +#pair coefficients +pair_coeff 1 1 table table_CG_CG.txt VOTCA +pair_coeff * * threebody/table spce.3b type + +fix 1 all nvt temp 300.0 300.0 200.0 + +velocity all create 300 432567 dist uniform loop geom mom yes +timestep 2.0 + +thermo 100 +#dump 2 all custom 100 dump.spce id type x y z fx fy fz + +run 1000 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair table, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair threebody/table, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.487 | 5.487 | 5.487 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -5377.8719 0 -4484.5232 -320.10184 + 100 296.01121 -5418.505 0 -4537.0342 -223.39972 + 200 295.27654 -5430.3033 0 -4551.0202 794.29126 + 300 302.16526 -5445.8048 0 -4546.0083 -11.568299 + 400 308.59003 -5434.7181 0 -4515.7896 1.7337645 + 500 295.346 -5436.0896 0 -4556.5996 778.73307 + 600 293.14671 -5422.6082 0 -4549.6673 -148.64256 + 700 307.63238 -5465.187 0 -4549.1103 285.18556 + 800 313.16537 -5466.4124 0 -4533.8594 489.99301 + 900 303.42954 -5506.3208 0 -4602.7595 360.05608 + 1000 299.50926 -5446.8981 0 -4555.0107 993.95615 +Loop time of 5.15787 on 1 procs for 1000 steps with 1000 atoms + +Performance: 33.502 ns/day, 0.716 hours/ns, 193.879 timesteps/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.8428 | 4.8428 | 4.8428 | 0.0 | 93.89 +Neigh | 0.27527 | 0.27527 | 0.27527 | 0.0 | 5.34 +Comm | 0.020461 | 0.020461 | 0.020461 | 0.0 | 0.40 +Output | 0.00020949 | 0.00020949 | 0.00020949 | 0.0 | 0.00 +Modify | 0.01198 | 0.01198 | 0.01198 | 0.0 | 0.23 +Other | | 0.007163 | | | 0.14 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 5900 ave 5900 max 5900 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 191126 ave 191126 max 191126 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 382252 ave 382252 max 382252 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 382252 +Ave neighs/atom = 382.252 +Neighbor list builds = 27 +Dangerous builds = 0 +Total wall time: 0:00:05 diff --git a/examples/PACKAGES/manybody_table/log.1Jun22.spce.g++.4 b/examples/PACKAGES/manybody_table/log.1Jun22.spce.g++.4 new file mode 100644 index 0000000000..48b37d55fe --- /dev/null +++ b/examples/PACKAGES/manybody_table/log.1Jun22.spce.g++.4 @@ -0,0 +1,88 @@ +LAMMPS (4 May 2022) + using 1 OpenMP thread(s) per MPI task +units real +atom_style atomic + +# data file with one atom type +read_data data.spce +Reading data file ... + orthogonal box = (0 0 0) to (31.0648 31.0648 31.0648) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms + read_data CPU = 0.001 seconds + +pair_style hybrid/overlay table linear 1200 threebody/table + +#pair coefficients +pair_coeff 1 1 table table_CG_CG.txt VOTCA +pair_coeff * * threebody/table spce.3b type + +fix 1 all nvt temp 300.0 300.0 200.0 + +velocity all create 300 432567 dist uniform loop geom mom yes +timestep 2.0 + +thermo 100 +#dump 2 all custom 100 dump.spce id type x y z fx fy fz + +run 1000 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair table, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair threebody/table, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.87 | 3.87 | 3.87 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -5377.8719 0 -4484.5232 -320.10184 + 100 296.01121 -5418.505 0 -4537.0342 -223.39972 + 200 295.27654 -5430.3033 0 -4551.0202 794.29126 + 300 302.16526 -5445.8048 0 -4546.0083 -11.568299 + 400 308.59003 -5434.7181 0 -4515.7896 1.7337642 + 500 295.346 -5436.0896 0 -4556.5996 778.73304 + 600 293.14648 -5422.6082 0 -4549.6681 -148.67071 + 700 307.6975 -5465.3018 0 -4549.0312 287.70203 + 800 314.09436 -5467.6073 0 -4532.2879 522.73489 + 900 300.85843 -5503.7551 0 -4607.85 491.78041 + 1000 302.84638 -5468.3331 0 -4566.5083 338.05123 +Loop time of 1.60997 on 4 procs for 1000 steps with 1000 atoms + +Performance: 107.331 ns/day, 0.224 hours/ns, 621.131 timesteps/s +94.2% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.28 | 1.2942 | 1.3018 | 0.8 | 80.38 +Neigh | 0.069763 | 0.070222 | 0.070788 | 0.2 | 4.36 +Comm | 0.19379 | 0.20979 | 0.23226 | 3.6 | 13.03 +Output | 0.0001711 | 0.00046947 | 0.0013621 | 0.0 | 0.03 +Modify | 0.021613 | 0.030016 | 0.038718 | 4.8 | 1.86 +Other | | 0.005309 | | | 0.33 + +Nlocal: 250 ave 257 max 240 min +Histogram: 1 0 0 0 0 1 0 0 1 1 +Nghost: 3488.75 ave 3504 max 3478 min +Histogram: 1 1 0 0 0 1 0 0 0 1 +Neighs: 47828 ave 49169 max 45782 min +Histogram: 1 0 0 0 0 1 0 0 1 1 +FullNghs: 95656 ave 98253 max 91425 min +Histogram: 1 0 0 0 0 1 0 0 1 1 + +Total # of neighbors = 382624 +Ave neighs/atom = 382.624 +Neighbor list builds = 27 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/PACKAGES/manybody_table/log.1Jun22.spce2.g++.1 b/examples/PACKAGES/manybody_table/log.1Jun22.spce2.g++.1 new file mode 100644 index 0000000000..d6432a1c07 --- /dev/null +++ b/examples/PACKAGES/manybody_table/log.1Jun22.spce2.g++.1 @@ -0,0 +1,89 @@ +LAMMPS (4 May 2022) + using 1 OpenMP thread(s) per MPI task +units real +atom_style atomic + +# data file with two atom types +read_data data.spce2 +Reading data file ... + orthogonal box = (0 0 0) to (31.0648 31.0648 31.0648) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1000 atoms + read_data CPU = 0.001 seconds + +pair_style hybrid/overlay table linear 1200 threebody/table + +#pair coefficients +pair_coeff * * table table_CG_CG.txt VOTCA +pair_coeff * * threebody/table spce2.3b type1 type2 + +fix 1 all nvt temp 300.0 300.0 200.0 + +velocity all create 300 432567 dist uniform loop geom mom yes +timestep 2.0 + +thermo 100 +#dump 2 all custom 100 dump.spce2 id type x y z fx fy fz + +run 1000 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair table, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair threebody/table, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.487 | 5.487 | 5.487 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -5377.8719 0 -4484.5232 -320.10184 + 100 296.01121 -5418.505 0 -4537.0342 -223.39972 + 200 295.27654 -5430.3033 0 -4551.0202 794.29126 + 300 302.16526 -5445.8048 0 -4546.0083 -11.568299 + 400 308.59003 -5434.7181 0 -4515.7896 1.7337645 + 500 295.346 -5436.0896 0 -4556.5996 778.73307 + 600 293.14671 -5422.6082 0 -4549.6673 -148.64256 + 700 307.63238 -5465.187 0 -4549.1103 285.18556 + 800 313.16537 -5466.4124 0 -4533.8594 489.99301 + 900 303.42954 -5506.3208 0 -4602.7595 360.05608 + 1000 299.50926 -5446.8981 0 -4555.0107 993.95615 +Loop time of 5.16365 on 1 procs for 1000 steps with 1000 atoms + +Performance: 33.465 ns/day, 0.717 hours/ns, 193.661 timesteps/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.8443 | 4.8443 | 4.8443 | 0.0 | 93.81 +Neigh | 0.27931 | 0.27931 | 0.27931 | 0.0 | 5.41 +Comm | 0.020302 | 0.020302 | 0.020302 | 0.0 | 0.39 +Output | 0.00022712 | 0.00022712 | 0.00022712 | 0.0 | 0.00 +Modify | 0.011944 | 0.011944 | 0.011944 | 0.0 | 0.23 +Other | | 0.007616 | | | 0.15 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 5900 ave 5900 max 5900 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 191126 ave 191126 max 191126 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 382252 ave 382252 max 382252 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 382252 +Ave neighs/atom = 382.252 +Neighbor list builds = 27 +Dangerous builds = 0 + +Total wall time: 0:00:05 diff --git a/examples/PACKAGES/manybody_table/log.1Jun22.spce2.g++.4 b/examples/PACKAGES/manybody_table/log.1Jun22.spce2.g++.4 new file mode 100644 index 0000000000..70fb163b67 --- /dev/null +++ b/examples/PACKAGES/manybody_table/log.1Jun22.spce2.g++.4 @@ -0,0 +1,89 @@ +LAMMPS (4 May 2022) + using 1 OpenMP thread(s) per MPI task +units real +atom_style atomic + +# data file with two atom types +read_data data.spce2 +Reading data file ... + orthogonal box = (0 0 0) to (31.0648 31.0648 31.0648) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms + read_data CPU = 0.004 seconds + +pair_style hybrid/overlay table linear 1200 threebody/table + +#pair coefficients +pair_coeff * * table table_CG_CG.txt VOTCA +pair_coeff * * threebody/table spce2.3b type1 type2 + +fix 1 all nvt temp 300.0 300.0 200.0 + +velocity all create 300 432567 dist uniform loop geom mom yes +timestep 2.0 + +thermo 100 +#dump 2 all custom 100 dump.spce2 id type x y z fx fy fz + +run 1000 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair table, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair threebody/table, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.87 | 3.87 | 3.87 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -5377.8719 0 -4484.5232 -320.10184 + 100 296.01121 -5418.505 0 -4537.0342 -223.39972 + 200 295.27654 -5430.3033 0 -4551.0202 794.29126 + 300 302.16526 -5445.8048 0 -4546.0083 -11.568299 + 400 308.59003 -5434.7181 0 -4515.7896 1.7337642 + 500 295.346 -5436.0896 0 -4556.5996 778.73304 + 600 293.14648 -5422.6082 0 -4549.6681 -148.67071 + 700 307.6975 -5465.3018 0 -4549.0312 287.70203 + 800 314.09436 -5467.6073 0 -4532.2879 522.73489 + 900 300.85843 -5503.7551 0 -4607.85 491.78041 + 1000 302.84638 -5468.3331 0 -4566.5083 338.05123 +Loop time of 1.54853 on 4 procs for 1000 steps with 1000 atoms + +Performance: 111.590 ns/day, 0.215 hours/ns, 645.773 timesteps/s +96.0% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.2599 | 1.2908 | 1.3259 | 2.1 | 83.36 +Neigh | 0.069097 | 0.071294 | 0.075502 | 0.9 | 4.60 +Comm | 0.12731 | 0.15884 | 0.19196 | 5.7 | 10.26 +Output | 0.00017674 | 0.0026016 | 0.0098653 | 8.2 | 0.17 +Modify | 0.0093453 | 0.011999 | 0.014575 | 2.3 | 0.77 +Other | | 0.01295 | | | 0.84 + +Nlocal: 250 ave 257 max 240 min +Histogram: 1 0 0 0 0 1 0 0 1 1 +Nghost: 3488.75 ave 3504 max 3478 min +Histogram: 1 1 0 0 0 1 0 0 0 1 +Neighs: 47828 ave 49169 max 45782 min +Histogram: 1 0 0 0 0 1 0 0 1 1 +FullNghs: 95656 ave 98253 max 91425 min +Histogram: 1 0 0 0 0 1 0 0 1 1 + +Total # of neighbors = 382624 +Ave neighs/atom = 382.624 +Neighbor list builds = 27 +Dangerous builds = 0 + +Total wall time: 0:00:01 diff --git a/examples/PACKAGES/manybody_table/log.1Jun22.spce_sw.g++.1 b/examples/PACKAGES/manybody_table/log.1Jun22.spce_sw.g++.1 new file mode 100644 index 0000000000..e64d577fae --- /dev/null +++ b/examples/PACKAGES/manybody_table/log.1Jun22.spce_sw.g++.1 @@ -0,0 +1,87 @@ +LAMMPS (4 May 2022) + using 1 OpenMP thread(s) per MPI task +units real +atom_style atomic + +read_data data.spce +Reading data file ... + orthogonal box = (0 0 0) to (31.0648 31.0648 31.0648) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1000 atoms + read_data CPU = 0.001 seconds + +pair_style hybrid/overlay table linear 1200 sw/angle/table + +pair_coeff 1 1 table table_CG_CG.txt VOTCA +pair_coeff * * sw/angle/table spce.sw type + +fix 1 all nvt temp 300.0 300.0 200.0 + +velocity all create 300 432567 dist uniform mom yes + +timestep 2.0 + +thermo 100 +#dump 2 all custom 10 spce_sw.dump id type x y z fx fy fz + +run 1000 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair table, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair sw/angle/table, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.487 | 5.487 | 5.487 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -4572.9581 0 -3679.6093 -402.23914 + 100 286.5642 -4508.6912 0 -3655.352 -610.63256 + 200 291.59063 -4465.6368 0 -3597.3297 -218.54913 + 300 298.40301 -4460.64 0 -3572.0468 302.96636 + 400 305.99618 -4460.1128 0 -3548.9084 -68.022415 + 500 301.94233 -4440.337 0 -3541.2043 179.36975 + 600 308.95709 -4485.8412 0 -3565.8197 -95.917517 + 700 291.69015 -4489.4465 0 -3620.843 -56.044939 + 800 294.95653 -4496.904 0 -3618.5738 563.3456 + 900 295.50533 -4478.1134 0 -3598.149 89.234288 + 1000 308.63559 -4471.1612 0 -3552.0971 906.33706 +Loop time of 5.39753 on 1 procs for 1000 steps with 1000 atoms + +Performance: 32.015 ns/day, 0.750 hours/ns, 185.270 timesteps/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 5.0954 | 5.0954 | 5.0954 | 0.0 | 94.40 +Neigh | 0.26201 | 0.26201 | 0.26201 | 0.0 | 4.85 +Comm | 0.020497 | 0.020497 | 0.020497 | 0.0 | 0.38 +Output | 0.00021869 | 0.00021869 | 0.00021869 | 0.0 | 0.00 +Modify | 0.011849 | 0.011849 | 0.011849 | 0.0 | 0.22 +Other | | 0.007577 | | | 0.14 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 5862 ave 5862 max 5862 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 191262 ave 191262 max 191262 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 382524 ave 382524 max 382524 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 382524 +Ave neighs/atom = 382.524 +Neighbor list builds = 26 +Dangerous builds = 0 +Total wall time: 0:00:05 diff --git a/examples/PACKAGES/manybody_table/log.1Jun22.spce_sw.g++.4 b/examples/PACKAGES/manybody_table/log.1Jun22.spce_sw.g++.4 new file mode 100644 index 0000000000..b439b82286 --- /dev/null +++ b/examples/PACKAGES/manybody_table/log.1Jun22.spce_sw.g++.4 @@ -0,0 +1,87 @@ +LAMMPS (4 May 2022) + using 1 OpenMP thread(s) per MPI task +units real +atom_style atomic + +read_data data.spce +Reading data file ... + orthogonal box = (0 0 0) to (31.0648 31.0648 31.0648) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms + read_data CPU = 0.001 seconds + +pair_style hybrid/overlay table linear 1200 sw/angle/table + +pair_coeff 1 1 table table_CG_CG.txt VOTCA +pair_coeff * * sw/angle/table spce.sw type + +fix 1 all nvt temp 300.0 300.0 200.0 + +velocity all create 300 432567 dist uniform mom yes + +timestep 2.0 + +thermo 100 +#dump 2 all custom 10 spce_sw.dump id type x y z fx fy fz + +run 1000 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair table, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair sw/angle/table, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.87 | 3.87 | 3.87 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -4572.9581 0 -3679.6093 -402.23914 + 100 286.5642 -4508.6912 0 -3655.352 -610.63256 + 200 291.59063 -4465.6368 0 -3597.3297 -218.54913 + 300 298.40301 -4460.64 0 -3572.0468 302.96636 + 400 305.99618 -4460.1128 0 -3548.9084 -68.022415 + 500 301.94233 -4440.337 0 -3541.2043 179.36975 + 600 308.95709 -4485.8412 0 -3565.8197 -95.917517 + 700 291.69015 -4489.4465 0 -3620.843 -56.044939 + 800 294.95653 -4496.904 0 -3618.5738 563.3456 + 900 295.50533 -4478.1134 0 -3598.149 89.234292 + 1000 308.63559 -4471.1612 0 -3552.0971 906.33708 +Loop time of 1.57073 on 4 procs for 1000 steps with 1000 atoms + +Performance: 110.012 ns/day, 0.218 hours/ns, 636.646 timesteps/s +97.1% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.3064 | 1.3347 | 1.3706 | 2.0 | 84.97 +Neigh | 0.065344 | 0.070299 | 0.07737 | 1.7 | 4.48 +Comm | 0.117 | 0.15297 | 0.18685 | 6.5 | 9.74 +Output | 0.00016937 | 0.00055648 | 0.0017097 | 0.0 | 0.04 +Modify | 0.0073414 | 0.0079027 | 0.0085343 | 0.6 | 0.50 +Other | | 0.0043 | | | 0.27 + +Nlocal: 250 ave 254 max 247 min +Histogram: 1 1 0 0 0 1 0 0 0 1 +Nghost: 3473.25 ave 3490 max 3450 min +Histogram: 1 0 0 0 0 1 0 1 0 1 +Neighs: 47815.5 ave 48520 max 47134 min +Histogram: 1 0 1 0 0 0 1 0 0 1 +FullNghs: 95631 ave 97203 max 94083 min +Histogram: 1 0 1 0 0 0 1 0 0 1 + +Total # of neighbors = 382524 +Ave neighs/atom = 382.524 +Neighbor list builds = 26 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/PACKAGES/manybody_table/spce.3b b/examples/PACKAGES/manybody_table/spce.3b new file mode 100644 index 0000000000..07f9b66433 --- /dev/null +++ b/examples/PACKAGES/manybody_table/spce.3b @@ -0,0 +1,8 @@ +type +type +type +3.7 # cut in Ang +1-1-1.table +ENTRY1 +linear +12 diff --git a/examples/PACKAGES/manybody_table/spce.sw b/examples/PACKAGES/manybody_table/spce.sw new file mode 100644 index 0000000000..8b0fd70f61 --- /dev/null +++ b/examples/PACKAGES/manybody_table/spce.sw @@ -0,0 +1,18 @@ +type +type +type +1 #epsilon in kcal/mol +1 #sigma in dimensionless +3.7 # a in Ang +1.0 #lambda dimensionless +0.8 #gamma in Ang +0.0 #costheta0 dimensionless +0 #two body part A=0 +0 #two body part B=0 +0 #two body part p=0 +0 #two body part q=0 +0.0 # use the standard Stillinger-Weber cutoff +table_CG_CG_CG.txt +VOTCA +linear +1001 diff --git a/examples/PACKAGES/manybody_table/spce2.3b b/examples/PACKAGES/manybody_table/spce2.3b new file mode 100644 index 0000000000..52fcd1e5e9 --- /dev/null +++ b/examples/PACKAGES/manybody_table/spce2.3b @@ -0,0 +1,71 @@ +type1 +type1 +type1 +3.7 # cut in Ang +1-1-1.table +ENTRY1 +linear +12 +type1 +type1 +type2 +3.7 # cut in Ang +1-1-2.table +ENTRY1 +linear +12 +type1 +type2 +type1 +3.7 # cut in Ang +1-1-2.table +ENTRY1 +linear +12 +type1 +type2 +type2 +3.7 # cut in Ang +1-1-1.table +ENTRY1 +linear +12 +type2 +type1 +type1 +3.7 # cut in Ang +1-1-1.table +ENTRY1 +linear +12 +type2 +type1 +type2 +3.7 # cut in Ang +1-1-2.table +ENTRY1 +linear +12 +type2 +type2 +type1 +3.7 # cut in Ang +1-1-2.table +ENTRY1 +linear +12 +type2 +type2 +type2 +3.7 # cut in Ang +1-1-1.table +ENTRY1 +linear +12 + + + + + + + diff --git a/examples/PACKAGES/manybody_table/table_CG_CG.txt b/examples/PACKAGES/manybody_table/table_CG_CG.txt new file mode 100644 index 0000000000..f4ccdd4b4e --- /dev/null +++ b/examples/PACKAGES/manybody_table/table_CG_CG.txt @@ -0,0 +1,1203 @@ +VOTCA +N 1200 R 0.010000 12.000000 + +1 1.0000000000e-02 1.5390100510e+15 2.1517330910e+16 +2 2.0000000000e-02 1.3370836560e+15 1.8774943350e+16 +3 3.0000000000e-02 1.1616510900e+15 1.6231560530e+16 +4 4.0000000000e-02 1.0092362200e+15 1.4101892510e+16 +5 5.0000000000e-02 8.7681900090e+14 1.2251648380e+16 +6 6.0000000000e-02 7.6177563290e+14 1.0644166230e+16 +7 7.0000000000e-02 6.6182657340e+14 9.2475943770e+15 +8 8.0000000000e-02 5.7499136800e+14 8.0342602660e+15 +9 9.0000000000e-02 4.9954940840e+14 6.9801221150e+15 +10 1.0000000000e-01 4.3400583970e+14 6.0642925570e+15 +11 1.1000000000e-01 3.7706193970e+14 5.2686247630e+15 +12 1.2000000000e-01 3.2758938550e+14 4.5773528620e+15 +13 1.3000000000e-01 2.8460789650e+14 3.9767795520e+15 +14 1.4000000000e-01 2.4726581000e+14 3.4550046890e+15 +15 1.5000000000e-01 2.1482320610e+14 3.0016894950e+15 +16 1.6000000000e-01 1.8663724620e+14 2.6078516910e+15 +17 1.7000000000e-01 1.6214943590e+14 2.2656875260e+15 +18 1.8000000000e-01 1.4087455790e+14 1.9684171380e+15 +19 1.9000000000e-01 1.2239105840e+14 1.7101502250e+15 +20 2.0000000000e-01 1.0633269330e+14 1.4857693190e+15 +21 2.1000000000e-01 9.2381272170e+13 1.2908283940e+15 +22 2.2000000000e-01 8.0260352480e+13 1.1214647680e+15 +23 2.3000000000e-01 6.9729762630e+13 9.7432255940e+14 +24 2.4000000000e-01 6.0580842800e+13 8.4648620020e+14 +25 2.5000000000e-01 5.2632310450e+13 7.3542265870e+14 +26 2.6000000000e-01 4.5726668290e+13 6.3893125110e+14 +27 2.7000000000e-01 3.9727083510e+13 5.5510003510e+14 +28 2.8000000000e-01 3.4514676520e+13 4.8226792540e+14 +29 2.9000000000e-01 2.9986165360e+13 4.1899178020e+14 +30 3.0000000000e-01 2.6051819210e+13 3.6401780550e+14 +31 3.1000000000e-01 2.2633680440e+13 3.1625671190e+14 +32 3.2000000000e-01 1.9664019850e+13 2.7476213060e+14 +33 3.3000000000e-01 1.7083994700e+13 2.3871186160e+14 +34 3.4000000000e-01 1.4842482730e+13 2.0739158160e+14 +35 3.5000000000e-01 1.2895069180e+13 1.8018069090e+14 +36 3.6000000000e-01 1.1203166760e+13 1.5654001530e+14 +37 3.7000000000e-01 9.7332510350e+12 1.3600112350e+14 +38 3.8000000000e-01 8.4561961580e+12 1.1815704470e+14 +39 3.9000000000e-01 7.3466977490e+12 1.0265420510e+14 +40 4.0000000000e-01 6.3827714970e+12 8.9185421350e+13 +41 4.1000000000e-01 5.5453175530e+12 7.7483814470e+13 +42 4.2000000000e-01 4.8177420700e+12 6.7317521340e+13 +43 4.3000000000e-01 4.1856284030e+12 5.8485100540e+13 +44 4.4000000000e-01 3.6364514480e+12 5.0811540850e+13 +45 4.5000000000e-01 3.1593294630e+12 4.4144793450e+13 +46 4.6000000000e-01 2.7448084480e+12 3.8352759160e+13 +47 4.7000000000e-01 2.3846748190e+12 3.3320670910e+13 +48 4.8000000000e-01 2.0717926600e+12 2.8948819710e+13 +49 4.9000000000e-01 1.7999623210e+12 2.5150578890e+13 +50 5.0000000000e-01 1.5637975860e+12 2.1850687690e+13 +51 5.1000000000e-01 1.3586189330e+12 1.8983759960e+13 +52 5.2000000000e-01 1.1803608230e+12 1.6492988570e+13 +53 5.3000000000e-01 1.0254911360e+12 1.4329019780e+13 +54 5.4000000000e-01 8.9094118400e+11 1.2448975330e+13 +55 5.5000000000e-01 7.7404490960e+11 1.0815602820e+13 +56 5.6000000000e-01 6.7248605500e+11 9.3965375690e+12 +57 5.7000000000e-01 5.8425226830e+11 8.1636613100e+12 +58 5.8000000000e-01 5.0759522880e+11 7.0925450460e+12 +59 5.9000000000e-01 4.4099600520e+11 6.1619649960e+12 +60 6.0000000000e-01 3.8313495790e+11 5.3534820520e+12 +61 6.1000000000e-01 3.3286559110e+11 4.6510764180e+12 +62 6.2000000000e-01 2.8919183550e+11 4.0408301810e+12 +63 6.3000000000e-01 2.5124831160e+11 3.5106515320e+12 +64 6.4000000000e-01 2.1828318200e+11 3.0500351720e+12 +65 6.5000000000e-01 1.8964325470e+11 2.6498541560e+12 +66 6.6000000000e-01 1.6476103990e+11 2.3021790410e+12 +67 6.7000000000e-01 1.4314350540e+11 2.0001207710e+12 +68 6.8000000000e-01 1.2436230780e+11 1.7376941700e+12 +69 6.9000000000e-01 1.0804530420e+11 1.5096993500e+12 +70 7.0000000000e-01 9.3869179290e+10 1.3116186770e+12 +71 7.1000000000e-01 8.1553038190e+10 1.1395272530e+12 +72 7.2000000000e-01 7.0852841020e+10 9.9001514990e+11 +73 7.3000000000e-01 6.1556567270e+10 8.6011983840e+11 +74 7.4000000000e-01 5.3480014620e+10 7.4726749030e+11 +75 7.5000000000e-01 4.6463149110e+10 6.4922197710e+11 +76 7.6000000000e-01 4.0366934090e+10 5.6404056250e+11 +77 7.7000000000e-01 3.5070575270e+10 4.9003540760e+11 +78 7.8000000000e-01 3.0469127200e+10 4.2574012690e+11 +79 7.9000000000e-01 2.6471413860e+10 3.6988073290e+11 +80 8.0000000000e-01 2.2998222010e+10 3.2135039170e+11 +81 8.1000000000e-01 1.9980731610e+10 2.7918749220e+11 +82 8.2000000000e-01 1.7359152180e+10 2.4255659190e+11 +83 8.3000000000e-01 1.5081538060e+10 2.1073186270e+11 +84 8.4000000000e-01 1.3102759170e+10 1.8308270910e+11 +85 8.5000000000e-01 1.1383606700e+10 1.5906127310e+11 +86 8.6000000000e-01 9.8900162880e+09 1.3819157870e+11 +87 8.7000000000e-01 8.5923929670e+09 1.2006010050e+11 +88 8.8000000000e-01 7.4650248040e+09 1.0430756970e+11 +89 8.9000000000e-01 6.4855734070e+09 9.0621855610e+10 +90 9.0000000000e-01 5.6346312990e+09 7.8731780830e+10 +91 9.1000000000e-01 4.8953373730e+09 6.8401747800e+10 +92 9.2000000000e-01 4.2530427840e+09 5.9427070660e+10 +93 9.3000000000e-01 3.6950207000e+09 5.1629919420e+10 +94 9.4000000000e-01 3.2102141140e+09 4.4855796350e+10 +95 9.5000000000e-01 2.7890167600e+09 3.8970474660e+10 +96 9.6000000000e-01 2.4230827630e+09 3.3857338820e+10 +97 9.7000000000e-01 2.1051612740e+09 2.9415073900e+10 +98 9.8000000000e-01 1.8289527940e+09 2.5555658020e+10 +99 9.9000000000e-01 1.5889843520e+09 2.2202618260e+10 +100 1.0000000000e+00 1.3805010610e+09 1.9289515350e+10 +101 1.0100000000e+00 1.1993718980e+09 1.6758627210e+10 +102 1.0200000000e+00 1.0420078550e+09 1.4559805200e+10 +103 1.0300000000e+00 9.0529082110e+08 1.2649480460e+10 +104 1.0400000000e+00 7.8651179720e+08 1.0989800600e+10 +105 1.0500000000e+00 6.8331721990e+08 9.5478796640e+09 +106 1.0600000000e+00 5.9366232610e+08 8.2951465080e+09 +107 1.0700000000e+00 5.1577063650e+08 7.2067786790e+09 +108 1.0800000000e+00 4.4809875540e+08 6.2612105610e+09 +109 1.0900000000e+00 3.8930578900e+08 5.4397060660e+09 +110 1.1000000000e+00 3.3822677600e+08 4.7259873780e+09 +111 1.1100000000e+00 2.9384960420e+08 4.1059124200e+09 +112 1.1200000000e+00 2.5529495590e+08 3.5671946310e+09 +113 1.1300000000e+00 2.2179888490e+08 3.0991595130e+09 +114 1.1400000000e+00 1.9269767840e+08 2.6925331190e+09 +115 1.1500000000e+00 1.6741470680e+08 2.3392582940e+09 +116 1.1600000000e+00 1.4544899700e+08 2.0323350270e+09 +117 1.1700000000e+00 1.2636530640e+08 1.7656817420e+09 +118 1.1800000000e+00 1.0978549870e+08 1.5340148030e+09 +119 1.1900000000e+00 9.5381050880e+07 1.3327438110e+09 +120 1.2000000000e+00 8.2866544090e+07 1.1578806560e+09 +121 1.2100000000e+00 7.1994007890e+07 1.0059604880e+09 +122 1.2200000000e+00 6.2548006910e+07 8.7397306220e+08 +123 1.2300000000e+00 5.4341372050e+07 7.5930309660e+08 +124 1.2400000000e+00 4.7211491810e+07 6.5967844720e+08 +125 1.2500000000e+00 4.1017090210e+07 5.7312508750e+08 +126 1.2600000000e+00 3.5635427400e+07 4.9792799400e+08 +127 1.2700000000e+00 3.0959867700e+07 4.3259716360e+08 +128 1.2800000000e+00 2.6897766570e+07 3.7583808940e+08 +129 1.2900000000e+00 2.3368634950e+07 3.2652611100e+08 +130 1.3000000000e+00 2.0302544380e+07 2.8368412930e+08 +131 1.3100000000e+00 1.7638741380e+07 2.4646324610e+08 +132 1.3200000000e+00 1.5324443660e+07 2.1412594280e+08 +133 1.3300000000e+00 1.3313794240e+07 1.8603146760e+08 +134 1.3400000000e+00 1.1566952840e+07 1.6162313870e+08 +135 1.3500000000e+00 1.0049306430e+07 1.4041731380e+08 +136 1.3600000000e+00 8.7307833840e+06 1.2199380710e+08 +137 1.3700000000e+00 7.5852576540e+06 1.0598756360e+08 +138 1.3800000000e+00 6.5900310600e+06 9.2081425300e+07 +139 1.3900000000e+00 5.7253835470e+06 7.9999847130e+07 +140 1.4000000000e+00 4.9741824370e+06 6.9503436980e+07 +141 1.4100000000e+00 4.3215429520e+06 6.0384212290e+07 +142 1.4200000000e+00 3.7545332780e+06 5.2461478920e+07 +143 1.4300000000e+00 3.2619183220e+06 4.5578250780e+07 +144 1.4400000000e+00 2.8339370970e+06 3.9598139180e+07 +145 1.4500000000e+00 2.4621093100e+06 3.4402650380e+07 +146 1.4600000000e+00 2.1390673290e+06 2.9888837650e+07 +147 1.4700000000e+00 1.8584101920e+06 2.5967261420e+07 +148 1.4800000000e+00 1.6145767810e+06 2.2560217080e+07 +149 1.4900000000e+00 1.4027356250e+06 1.9600195280e+07 +150 1.5000000000e+00 1.2186891680e+06 1.7028544260e+07 +151 1.5100000000e+00 1.0587905960e+06 1.4794307680e+07 +152 1.5200000000e+00 9.1987157580e+05 1.2853214960e+07 +153 1.5300000000e+00 7.9917947840e+05 1.1166804040e+07 +154 1.5400000000e+00 6.9432283320e+05 9.7016592970e+06 +155 1.5500000000e+00 6.0322394380e+05 8.4287494270e+06 +156 1.5600000000e+00 5.2407771850e+05 7.3228521760e+06 +157 1.5700000000e+00 4.5531590360e+05 6.3620545920e+06 +158 1.5800000000e+00 3.9557600860e+05 5.5273188170e+06 +159 1.5900000000e+00 3.4367430900e+05 4.8021048650e+06 +160 1.6000000000e+00 2.9858239160e+05 4.1720428830e+06 +161 1.6100000000e+00 2.5940677620e+05 3.6246484220e+06 +162 1.6200000000e+00 2.2537121220e+05 3.1490750570e+06 +163 1.6300000000e+00 1.9580129720e+05 2.7358994750e+06 +164 1.6400000000e+00 1.7011111410e+05 2.3769347520e+06 +165 1.6500000000e+00 1.4779162110e+05 2.0650681300e+06 +166 1.6600000000e+00 1.2840056570e+05 1.7941200870e+06 +167 1.6700000000e+00 1.1155372100e+05 1.5587218830e+06 +168 1.6800000000e+00 9.6917272910e+04 1.3542091900e+06 +169 1.6900000000e+00 8.4201205530e+04 1.1765296620e+06 +170 1.7000000000e+00 7.3153554570e+04 1.0221626440e+06 +171 1.7100000000e+00 6.3555414830e+04 8.8804940820e+05 +172 1.7200000000e+00 5.5216602630e+04 7.7153255030e+05 +173 1.7300000000e+00 4.7971887440e+04 6.7030333080e+05 +174 1.7400000000e+00 4.1677717830e+04 5.8235592920e+05 +175 1.7500000000e+00 3.6209377130e+04 5.0594769970e+05 +176 1.7600000000e+00 3.1458512140e+04 4.3956464070e+05 +177 1.7700000000e+00 2.7330986170e+04 3.8189139610e+05 +178 1.7800000000e+00 2.3745013820e+04 3.3178519130e+05 +179 1.7900000000e+00 2.0629540310e+04 2.8825319000e+05 +180 1.8000000000e+00 1.7922833690e+04 2.5043282140e+05 +181 1.8100000000e+00 1.5571261530e+04 2.1757468850e+05 +182 1.8200000000e+00 1.3528228280e+04 1.8902771940e+05 +183 1.8300000000e+00 1.1753251980e+04 1.6422626610e+05 +184 1.8400000000e+00 1.0211162120e+04 1.4267889680e+05 +185 1.8500000000e+00 8.8714027380e+03 1.2395865830e+05 +186 1.8600000000e+00 7.7074269920e+03 1.0769461580e+05 +187 1.8700000000e+00 6.6961711240e+03 9.3564503040e+04 +188 1.8800000000e+00 5.8175974640e+03 8.1288337100e+04 +189 1.8900000000e+00 5.0542973920e+03 7.0622870140e+04 +190 1.9000000000e+00 4.3911463950e+03 6.1356769800e+04 +191 1.9100000000e+00 3.8150043740e+03 5.3306431660e+04 +192 1.9200000000e+00 3.3144552850e+03 4.6312341170e+04 +193 1.9300000000e+00 2.8795809280e+03 4.0235912960e+04 +194 1.9400000000e+00 2.5017644250e+03 3.4956744810e+04 +195 1.9500000000e+00 2.1735194790e+03 3.0370231910e+04 +196 1.9600000000e+00 1.8883420360e+03 2.6385494170e+04 +197 1.9700000000e+00 1.6405814060e+03 2.2923575440e+04 +198 1.9800000000e+00 1.4253283030e+03 1.9915879070e+04 +199 1.9900000000e+00 1.2383175650e+03 1.7302808640e+04 +200 2.0000000000e+00 1.0758436410e+03 1.5032587100e+04 +201 2.0100000000e+00 9.3468717030e+02 1.3060230840e+04 +202 2.0200000000e+00 8.1205118730e+02 1.1346658320e+04 +203 2.0300000000e+00 7.0550570470e+02 9.8579157300e+03 +204 2.0400000000e+00 6.1293956240e+02 8.5645041750e+03 +205 2.0500000000e+00 5.3251859570e+02 7.4407951710e+03 +206 2.0600000000e+00 4.6264929230e+02 6.4645228320e+03 +207 2.0700000000e+00 4.0194721720e+02 5.6163426730e+03 +208 2.0800000000e+00 3.4920958090e+02 4.8794483120e+03 +209 2.0900000000e+00 3.0339140600e+02 4.2392384540e+03 +210 2.1000000000e+00 2.6358482200e+02 3.6830275730e+03 +211 2.1100000000e+00 2.2900107590e+02 3.1997945490e+03 +212 2.1200000000e+00 1.9895490330e+02 2.7799642980e+03 +213 2.1300000000e+00 1.7285095010e+02 2.4152180320e+03 +214 2.1400000000e+00 1.5017197590e+02 2.0983284390e+03 +215 2.1500000000e+00 1.3046860510e+02 1.8230164640e+03 +216 2.1600000000e+00 1.1335042260e+02 1.5838269000e+03 +217 2.1700000000e+00 9.8478237570e+01 1.3760202940e+03 +218 2.1800000000e+00 8.5557363230e+01 1.1954790320e+03 +219 2.1900000000e+00 7.4331777090e+01 1.0386257540e+03 +220 2.2000000000e+00 6.4579048210e+01 9.0235246990e+02 +221 2.2100000000e+00 5.6105929810e+01 7.8395897350e+02 +222 2.2200000000e+00 4.8744530110e+01 6.8109934040e+02 +223 2.2300000000e+00 4.2348985630e+01 5.9173544430e+02 +224 2.2400000000e+00 3.6792570990e+01 5.1409657190e+02 +225 2.2500000000e+00 3.1965187820e+01 4.4664433710e+02 +226 2.2600000000e+00 2.7771183280e+01 3.8804219830e+02 +227 2.2700000000e+00 2.4127454700e+01 3.3712897510e+02 +228 2.2800000000e+00 2.0961802900e+01 2.9289584070e+02 +229 2.2900000000e+00 1.8211501630e+01 2.5446633130e+02 +230 2.3000000000e+00 1.5822054690e+01 2.2107898030e+02 +231 2.3100000000e+00 1.3746116030e+01 1.9207222920e+02 +232 2.3200000000e+00 1.1942551680e+01 1.6687131990e+02 +233 2.3300000000e+00 1.0375624680e+01 1.4497690530e+02 +234 2.3400000000e+00 9.0142869290e+00 1.2595515570e+02 +235 2.3500000000e+00 7.8315640090e+00 1.0942916200e+02 +236 2.3600000000e+00 6.8040206970e+00 9.5071467470e+01 +237 2.3700000000e+00 5.9112965930e+00 8.2597579690e+01 +238 2.3800000000e+00 5.1357026910e+00 7.1760333060e+01 +239 2.3900000000e+00 4.4618708810e+00 6.2344991470e+01 +240 2.4000000000e+00 3.8764494280e+00 5.3036352210e+01 +241 2.4100000000e+00 3.3678384170e+00 4.8261295350e+01 +242 2.4200000000e+00 2.8941569300e+00 4.5857614440e+01 +243 2.4300000000e+00 2.4468631800e+00 4.3406963180e+01 +244 2.4400000000e+00 2.0256587860e+00 4.0812932280e+01 +245 2.4500000000e+00 1.6301260100e+00 3.8266641770e+01 +246 2.4600000000e+00 1.2597277660e+00 3.5780026500e+01 +247 2.4700000000e+00 9.1380761130e-01 3.3365021740e+01 +248 2.4800000000e+00 5.9158975140e-01 3.1033562180e+01 +249 2.4900000000e+00 2.9217903890e-01 2.8797954450e+01 +250 2.5000000000e+00 1.4560973470e-02 2.6671263930e+01 +251 2.5100000000e+00 -2.4238415820e-01 2.4661823870e+01 +252 2.5200000000e+00 -4.7981058030e-01 2.2768039630e+01 +253 2.5300000000e+00 -6.9883632600e-01 2.0983874620e+01 +254 2.5400000000e+00 -9.0052909770e-01 1.9303963110e+01 +255 2.5500000000e+00 -1.0859062660e+00 1.7723272100e+01 +256 2.5600000000e+00 -1.2559348720e+00 1.6236768280e+01 +257 2.5700000000e+00 -1.4115316230e+00 1.4839418560e+01 +258 2.5800000000e+00 -1.5535628980e+00 1.3526189880e+01 +259 2.5900000000e+00 -1.6828447430e+00 1.2292001960e+01 +260 2.6000000000e+00 -1.8001428730e+00 1.1131681390e+01 +261 2.6100000000e+00 -1.9061744430e+00 1.0040648660e+01 +262 2.6200000000e+00 -2.0016168960e+00 9.0155628370e+00 +263 2.6300000000e+00 -2.0871168150e+00 8.0536395060e+00 +264 2.6400000000e+00 -2.1632916940e+00 7.1520107860e+00 +265 2.6500000000e+00 -2.2307299330e+00 6.3077675390e+00 +266 2.6600000000e+00 -2.2899908440e+00 5.5180009250e+00 +267 2.6700000000e+00 -2.3416046480e+00 4.7798017190e+00 +268 2.6800000000e+00 -2.3860724750e+00 4.0902608440e+00 +269 2.6900000000e+00 -2.4238663650e+00 3.4464440960e+00 +270 2.7000000000e+00 -2.4554292680e+00 2.8453664940e+00 +271 2.7100000000e+00 -2.4811759890e+00 2.2843626470e+00 +272 2.7200000000e+00 -2.5014979300e+00 1.7614298710e+00 +273 2.7300000000e+00 -2.5167678200e+00 1.2748621430e+00 +274 2.7400000000e+00 -2.5273406710e+00 8.2290948110e-01 +275 2.7500000000e+00 -2.5335537710e+00 4.0379949770e-01 +276 2.7600000000e+00 -2.5357266870e+00 1.5760010280e-02 +277 2.7700000000e+00 -2.5341612640e+00 -3.4298090310e-01 +278 2.7800000000e+00 -2.5291416280e+00 -6.7419561340e-01 +279 2.7900000000e+00 -2.5209341800e+00 -9.7967404420e-01 +280 2.8000000000e+00 -2.5097876030e+00 -1.2612416950e+00 +281 2.8100000000e+00 -2.4959335160e+00 -1.5205003860e+00 +282 2.8200000000e+00 -2.4795897790e+00 -1.7585895080e+00 +283 2.8300000000e+00 -2.4609637910e+00 -1.9764437290e+00 +284 2.8400000000e+00 -2.4402531510e+00 -2.1750280650e+00 +285 2.8500000000e+00 -2.4176456570e+00 -2.3553224700e+00 +286 2.8600000000e+00 -2.3933193080e+00 -2.5183069580e+00 +287 2.8700000000e+00 -2.3674423020e+00 -2.6649614780e+00 +288 2.8800000000e+00 -2.3401730380e+00 -2.7962661310e+00 +289 2.8900000000e+00 -2.3116601130e+00 -2.9132049510e+00 +290 2.9000000000e+00 -2.2820423250e+00 -3.0167697150e+00 +291 2.9100000000e+00 -2.2514488140e+00 -3.1079034930e+00 +292 2.9200000000e+00 -2.2199997690e+00 -3.1874493890e+00 +293 2.9300000000e+00 -2.1878071410e+00 -3.2562082020e+00 +294 2.9400000000e+00 -2.1549747780e+00 -3.3149866360e+00 +295 2.9500000000e+00 -2.1215984330e+00 -3.3645944150e+00 +296 2.9600000000e+00 -2.0877657580e+00 -3.4058413510e+00 +297 2.9700000000e+00 -2.0535563080e+00 -3.4395371300e+00 +298 2.9800000000e+00 -2.0190415380e+00 -3.4664917760e+00 +299 2.9900000000e+00 -1.9842848030e+00 -3.4875215040e+00 +300 3.0000000000e+00 -1.9493413610e+00 -3.5034563820e+00 +301 3.0100000000e+00 -1.9142585830e+00 -3.5150471190e+00 +302 3.0200000000e+00 -1.8790770150e+00 -3.5228910160e+00 +303 3.0300000000e+00 -1.8438314390e+00 -3.5275214590e+00 +304 3.0400000000e+00 -1.8085510860e+00 -3.5289583340e+00 +305 3.0500000000e+00 -1.7732596360e+00 -3.5288908310e+00 +306 3.0600000000e+00 -1.7379752190e+00 -3.5280320940e+00 +307 3.0700000000e+00 -1.7027104110e+00 -3.5253862790e+00 +308 3.0800000000e+00 -1.6674722390e+00 -3.5223395310e+00 +309 3.0900000000e+00 -1.6322621780e+00 -3.5194378970e+00 +310 3.1000000000e+00 -1.5970761530e+00 -3.5173081740e+00 +311 3.1100000000e+00 -1.5619051030e+00 -3.5168447480e+00 +312 3.1200000000e+00 -1.5267378260e+00 -3.5168563320e+00 +313 3.1300000000e+00 -1.4915638140e+00 -3.5177518380e+00 +314 3.1400000000e+00 -1.4563738200e+00 -3.5198200760e+00 +315 3.1500000000e+00 -1.4211598630e+00 -3.5226190880e+00 +316 3.1600000000e+00 -1.3859152220e+00 -3.5260255420e+00 +317 3.1700000000e+00 -1.3506344420e+00 -3.5299136690e+00 +318 3.1800000000e+00 -1.3153133290e+00 -3.5341578930e+00 +319 3.1900000000e+00 -1.2799489510e+00 -3.5386343920e+00 +320 3.2000000000e+00 -1.2445396420e+00 -3.5432253600e+00 +321 3.2100000000e+00 -1.2090851000e+00 -3.5477800910e+00 +322 3.2200000000e+00 -1.1735869120e+00 -3.5520723480e+00 +323 3.2300000000e+00 -1.1380490760e+00 -3.5558443110e+00 +324 3.2400000000e+00 -1.1024780970e+00 -3.5588459720e+00 +325 3.2500000000e+00 -1.0668829990e+00 -3.5606965620e+00 +326 3.2600000000e+00 -1.0312753150e+00 -3.5607083610e+00 +327 3.2700000000e+00 -9.9566909100e-01 -3.5605541570e+00 +328 3.2800000000e+00 -9.6008088680e-01 -3.5579489480e+00 +329 3.2900000000e+00 -9.2452977440e-01 -3.5533045150e+00 +330 3.3000000000e+00 -8.8903733850e-01 -3.5464131370e+00 +331 3.3100000000e+00 -8.5362827280e-01 -3.5368973480e+00 +332 3.3200000000e+00 -8.1833336060e-01 -3.5239572210e+00 +333 3.3300000000e+00 -7.8319245590e-01 -3.5065687200e+00 +334 3.3400000000e+00 -7.4825507930e-01 -3.4837450990e+00 +335 3.3500000000e+00 -7.1358041810e-01 -3.4545190770e+00 +336 3.3600000000e+00 -6.7923732650e-01 -3.4179238010e+00 +337 3.3700000000e+00 -6.4530432520e-01 -3.3729926040e+00 +338 3.3800000000e+00 -6.1186960170e-01 -3.3187588290e+00 +339 3.3900000000e+00 -5.7903101040e-01 -3.2542297980e+00 +340 3.4000000000e+00 -5.4689607220e-01 -3.1783580730e+00 +341 3.4100000000e+00 -5.1558072820e-01 -3.0904661310e+00 +342 3.4200000000e+00 -4.8520310790e-01 -2.9907576290e+00 +343 3.4300000000e+00 -4.5587729660e-01 -2.8798705460e+00 +344 3.4400000000e+00 -4.2771208900e-01 -2.7583688810e+00 +345 3.4500000000e+00 -4.0081098950e-01 -2.6267815840e+00 +346 3.4600000000e+00 -3.7527221170e-01 -2.4856376550e+00 +347 3.4700000000e+00 -3.5118867890e-01 -2.3354660560e+00 +348 3.4800000000e+00 -3.2864802400e-01 -2.1767958410e+00 +349 3.4900000000e+00 -3.0773258900e-01 -2.0101012320e+00 +350 3.5000000000e+00 -2.8851942590e-01 -1.8357436110e+00 +351 3.5100000000e+00 -2.7107800890e-01 -1.6548080920e+00 +352 3.5200000000e+00 -2.5545880110e-01 -1.4699936560e+00 +353 3.5300000000e+00 -2.4168181970e-01 -1.2847553720e+00 +354 3.5400000000e+00 -2.2973434990e-01 -1.1024244830e+00 +355 3.5500000000e+00 -2.1957094400e-01 -9.2627328940e-01 +356 3.5600000000e+00 -2.1111342220e-01 -7.5957368970e-01 +357 3.5700000000e+00 -2.0425087220e-01 -6.0559684560e-01 +358 3.5800000000e+00 -1.9883964940e-01 -4.6761229440e-01 +359 3.5900000000e+00 -1.9470337660e-01 -3.4905079620e-01 +360 3.6000000000e+00 -1.9163294430e-01 -2.5373424880e-01 +361 3.6100000000e+00 -1.8939187810e-01 -1.8353921730e-01 +362 3.6200000000e+00 -1.8774317600e-01 -1.3643213030e-01 +363 3.6300000000e+00 -1.8647614590e-01 -1.0900277830e-01 +364 3.6400000000e+00 -1.8541177300e-01 -1.0217451770e-01 +365 3.6500000000e+00 -1.8440272000e-01 -1.0257729120e-01 +366 3.6600000000e+00 -1.8333332690e-01 -1.1032823210e-01 +367 3.6700000000e+00 -1.8211961100e-01 -1.2921992570e-01 +368 3.6800000000e+00 -1.8070926700e-01 -1.5163890710e-01 +369 3.6900000000e+00 -1.7908166700e-01 -1.7442524050e-01 +370 3.7000000000e+00 -1.7724786040e-01 -1.9407009560e-01 +371 3.7100000000e+00 -1.7524726610e-01 -2.0823224750e-01 +372 3.7200000000e+00 -1.7313113340e-01 -2.1707301960e-01 +373 3.7300000000e+00 -1.7094600210e-01 -2.2155931460e-01 +374 3.7400000000e+00 -1.6873039540e-01 -2.2155890460e-01 +375 3.7500000000e+00 -1.6651481940e-01 -2.2155573260e-01 +376 3.7600000000e+00 -1.6432176310e-01 -2.1804279820e-01 +377 3.7700000000e+00 -1.6216569890e-01 -2.1356882610e-01 +378 3.7800000000e+00 -1.6005308190e-01 -2.0885944940e-01 +379 3.7900000000e+00 -1.5798235030e-01 -2.0472213750e-01 +380 3.8000000000e+00 -1.5594392560e-01 -2.0241705720e-01 +381 3.8100000000e+00 -1.5392117290e-01 -2.0241827750e-01 +382 3.8200000000e+00 -1.5189520660e-01 -2.0277318370e-01 +383 3.8300000000e+00 -1.4984969490e-01 -2.0558456320e-01 +384 3.8400000000e+00 -1.4777182060e-01 -2.0947681570e-01 +385 3.8500000000e+00 -1.4565228170e-01 -2.1411724290e-01 +386 3.8600000000e+00 -1.4348529090e-01 -2.1915859900e-01 +387 3.8700000000e+00 -1.4126857580e-01 -2.2425124170e-01 +388 3.8800000000e+00 -1.3900337870e-01 -2.2904532330e-01 +389 3.8900000000e+00 -1.3669445690e-01 -2.3317711800e-01 +390 3.9000000000e+00 -1.3435008260e-01 -2.3624008380e-01 +391 3.9100000000e+00 -1.3198159090e-01 -2.3798596650e-01 +392 3.9200000000e+00 -1.2960112040e-01 -2.3812682950e-01 +393 3.9300000000e+00 -1.2721935400e-01 -2.3811467960e-01 +394 3.9400000000e+00 -1.2484506660e-01 -2.3702815340e-01 +395 3.9500000000e+00 -1.2248512560e-01 -2.3523949930e-01 +396 3.9600000000e+00 -1.2014449050e-01 -2.3305519030e-01 +397 3.9700000000e+00 -1.1782621320e-01 -2.3066255720e-01 +398 3.9800000000e+00 -1.1553143760e-01 -2.2825101140e-01 +399 3.9900000000e+00 -1.1325940020e-01 -2.2601755080e-01 +400 4.0000000000e+00 -1.1100742940e-01 -2.2417862310e-01 +401 4.0100000000e+00 -1.0877118630e-01 -2.2286349760e-01 +402 4.0200000000e+00 -1.0654586480e-01 -2.2202230410e-01 +403 4.0300000000e+00 -1.0432739300e-01 -2.2154405680e-01 +404 4.0400000000e+00 -1.0211267260e-01 -2.2132766590e-01 +405 4.0500000000e+00 -9.9899579570e-02 -2.2126903570e-01 +406 4.0600000000e+00 -9.7686963680e-02 -2.2125247670e-01 +407 4.0700000000e+00 -9.5474648740e-02 -2.2122106790e-01 +408 4.0800000000e+00 -9.3263432500e-02 -2.2107465710e-01 +409 4.0900000000e+00 -9.1055086710e-02 -2.2070112830e-01 +410 4.1000000000e+00 -8.8852357090e-02 -2.1999541830e-01 +411 4.1100000000e+00 -8.6658837090e-02 -2.1888407060e-01 +412 4.1200000000e+00 -8.4478336830e-02 -2.1738813900e-01 +413 4.1300000000e+00 -8.2314251940e-02 -2.1557604180e-01 +414 4.1400000000e+00 -8.0169437390e-02 -2.1350571680e-01 +415 4.1500000000e+00 -7.8046207450e-02 -2.1123112730e-01 +416 4.1600000000e+00 -7.5946335690e-02 -2.0880628380e-01 +417 4.1700000000e+00 -7.3871055030e-02 -2.0628522250e-01 +418 4.1800000000e+00 -7.1821057660e-02 -2.0372199140e-01 +419 4.1900000000e+00 -6.9796495110e-02 -2.0117226580e-01 +420 4.2000000000e+00 -6.7796978220e-02 -1.9869515570e-01 +421 4.2100000000e+00 -6.5821640000e-02 -1.9632881020e-01 +422 4.2200000000e+00 -6.3869449890e-02 -1.9406713000e-01 +423 4.2300000000e+00 -6.1939528000e-02 -1.9188425280e-01 +424 4.2400000000e+00 -6.0031208040e-02 -1.8975732620e-01 +425 4.2500000000e+00 -5.8144037210e-02 -1.8766499860e-01 +426 4.2600000000e+00 -5.6277776300e-02 -1.8558591260e-01 +427 4.2700000000e+00 -5.4432399640e-02 -1.8349871850e-01 +428 4.2800000000e+00 -5.2608095090e-02 -1.8138206230e-01 +429 4.2900000000e+00 -5.0805264080e-02 -1.7921412530e-01 +430 4.3000000000e+00 -4.9024521580e-02 -1.7697218360e-01 +431 4.3100000000e+00 -4.7266676850e-02 -1.7463962540e-01 +432 4.3200000000e+00 -4.5532637180e-02 -1.7221329340e-01 +433 4.3300000000e+00 -4.3823311560e-02 -1.6969643540e-01 +434 4.3400000000e+00 -4.2139591520e-02 -1.6709130180e-01 +435 4.3500000000e+00 -4.0482351020e-02 -1.6439964880e-01 +436 4.3600000000e+00 -3.8852446520e-02 -1.6162322490e-01 +437 4.3700000000e+00 -3.7250716970e-02 -1.5876378180e-01 +438 4.3800000000e+00 -3.5677983800e-02 -1.5582307140e-01 +439 4.3900000000e+00 -3.4135050920e-02 -1.5280279030e-01 +440 4.4000000000e+00 -3.2622704710e-02 -1.4970451960e-01 +441 4.4100000000e+00 -3.1141711720e-02 -1.4653058420e-01 +442 4.4200000000e+00 -2.9692807030e-02 -1.4328494170e-01 +443 4.4300000000e+00 -2.8276682610e-02 -1.3997231400e-01 +444 4.4400000000e+00 -2.6893985010e-02 -1.3659730260e-01 +445 4.4500000000e+00 -2.5545315350e-02 -1.3316445100e-01 +446 4.4600000000e+00 -2.4231229320e-02 -1.2967830180e-01 +447 4.4700000000e+00 -2.2952237190e-02 -1.2614339590e-01 +448 4.4800000000e+00 -2.1708803810e-02 -1.2256427830e-01 +449 4.4900000000e+00 -2.0501348580e-02 -1.1894531750e-01 +450 4.5000000000e+00 -1.9330245510e-02 -1.1529053780e-01 +451 4.5100000000e+00 -1.8195816190e-02 -1.1160621010e-01 +452 4.5200000000e+00 -1.7098295100e-02 -1.0790348070e-01 +453 4.5300000000e+00 -1.6037794770e-02 -1.0419576570e-01 +454 4.5400000000e+00 -1.5014298890e-02 -1.0049612610e-01 +455 4.5500000000e+00 -1.4027662260e-02 -9.6817447880e-02 +456 4.5600000000e+00 -1.3077610840e-02 -9.3172619330e-02 +457 4.5700000000e+00 -1.2163741680e-02 -8.9574526510e-02 +458 4.5800000000e+00 -1.1285523010e-02 -8.6036054070e-02 +459 4.5900000000e+00 -1.0442294160e-02 -8.2570683340e-02 +460 4.6000000000e+00 -9.6332655980e-03 -7.9193083800e-02 +461 4.6100000000e+00 -8.8575419760e-03 -7.5910311180e-02 +462 4.6200000000e+00 -8.1142373740e-03 -7.2713282330e-02 +463 4.6300000000e+00 -7.4025905500e-03 -6.9585550720e-02 +464 4.6400000000e+00 -6.7219879870e-03 -6.6511783650e-02 +465 4.6500000000e+00 -6.0719638950e-03 -6.3477208480e-02 +466 4.6600000000e+00 -5.4522002110e-03 -6.0467053010e-02 +467 4.6700000000e+00 -4.8625265960e-03 -5.7466544920e-02 +468 4.6800000000e+00 -4.3029204390e-03 -5.4460911670e-02 +469 4.6900000000e+00 -3.7735068550e-03 -5.1434523580e-02 +470 4.7000000000e+00 -3.2745586850e-03 -4.8370043780e-02 +471 4.7100000000e+00 -2.8064617420e-03 -4.5261307720e-02 +472 4.7200000000e+00 -2.3695410370e-03 -4.2126515780e-02 +473 4.7300000000e+00 -1.9638870030e-03 -3.8995268370e-02 +474 4.7400000000e+00 -1.5893207430e-03 -3.5895375370e-02 +475 4.7500000000e+00 -1.2453940290e-03 -3.2853768170e-02 +476 4.7600000000e+00 -9.3138930210e-04 -2.9897377850e-02 +477 4.7700000000e+00 -6.4631967200e-04 -2.7053134890e-02 +478 4.7800000000e+00 -3.8892891730e-04 -2.4347968780e-02 +479 4.7900000000e+00 -1.5769148580e-04 -2.1809973910e-02 +480 4.8000000000e+00 4.9187505960e-05 -1.9469671160e-02 +481 4.8100000000e+00 2.3372925440e-04 -1.7342891530e-02 +482 4.8200000000e+00 3.9796617840e-04 -1.5415189150e-02 +483 4.8300000000e+00 5.4372682880e-04 -1.3658952380e-02 +484 4.8400000000e+00 6.7259287050e-04 -1.2048522610e-02 +485 4.8500000000e+00 7.8589908240e-04 -1.0559209690e-02 +486 4.8600000000e+00 8.8473335710e-04 -9.1663247630e-03 +487 4.8700000000e+00 9.6993670140e-04 -7.8451808230e-03 +488 4.8800000000e+00 1.0421032360e-03 -6.5710929150e-03 +489 4.8900000000e+00 1.1015801950e-03 -5.3185837070e-03 +490 4.9000000000e+00 1.1484679270e-03 -4.0606536610e-03 +491 4.9100000000e+00 1.1826519980e-03 -2.7805919490e-03 +492 4.9200000000e+00 1.2039636980e-03 -1.4840911740e-03 +493 4.9300000000e+00 1.2123405590e-03 -1.8744637850e-04 +494 4.9400000000e+00 1.2078584520e-03 1.0946955090e-03 +495 4.9500000000e+00 1.1907315900e-03 2.3485018540e-03 +496 4.9600000000e+00 1.1613125250e-03 3.5601402240e-03 +497 4.9700000000e+00 1.1200921520e-03 4.7157788300e-03 +498 4.9800000000e+00 1.0676997050e-03 5.8015868510e-03 +499 4.9900000000e+00 1.0049027610e-03 6.8031822230e-03 +500 5.0000000000e+00 9.3260723520e-04 7.7050078140e-03 +501 5.0100000000e+00 8.5183745480e-04 8.4983969340e-03 +502 5.0200000000e+00 7.6363650240e-04 9.1887805930e-03 +503 5.0300000000e+00 6.6896656300e-04 9.7875612980e-03 +504 5.0400000000e+00 5.6868899310e-04 1.0305252310e-02 +505 5.0500000000e+00 4.6356432080e-04 1.0751939230e-02 +506 5.0600000000e+00 3.5425224560e-04 1.1137708580e-02 +507 5.0700000000e+00 2.4131163850e-04 1.1472647570e-02 +508 5.0800000000e+00 1.2520054220e-04 1.1766843320e-02 +509 5.0900000000e+00 6.2761706890e-06 1.2030583530e-02 +510 5.1000000000e+00 -1.1520509050e-04 1.2274519120e-02 +511 5.1100000000e+00 -2.3908004220e-04 1.2506742270e-02 +512 5.1200000000e+00 -3.6524046290e-04 1.2730078350e-02 +513 5.1300000000e+00 -4.9359489830e-04 1.2944907750e-02 +514 5.1400000000e+00 -6.2406102030e-04 1.3151960710e-02 +515 5.1500000000e+00 -7.5656562640e-04 1.3352149800e-02 +516 5.1600000000e+00 -8.9104464010e-04 1.3546387640e-02 +517 5.1700000000e+00 -1.0274431110e-03 1.3735586810e-02 +518 5.1800000000e+00 -1.1657152140e-03 1.3920659690e-02 +519 5.1900000000e+00 -1.3058242490e-03 1.4102349940e-02 +520 5.2000000000e+00 -1.4477426450e-03 1.4281081480e-02 +521 5.2100000000e+00 -1.5914586660e-03 1.4459496790e-02 +522 5.2200000000e+00 -1.7370099740e-03 1.4644838790e-02 +523 5.2300000000e+00 -1.8845171920e-03 1.4846534220e-02 +524 5.2400000000e+00 -2.0341906130e-03 1.5073718280e-02 +525 5.2500000000e+00 -2.1863302000e-03 1.5335361050e-02 +526 5.2600000000e+00 -2.3413255880e-03 1.5640434670e-02 +527 5.2700000000e+00 -2.4996560810e-03 1.5997911230e-02 +528 5.2800000000e+00 -2.6618906560e-03 1.6416762160e-02 +529 5.2900000000e+00 -2.8286879610e-03 1.6906373970e-02 +530 5.3000000000e+00 -3.0007963120e-03 1.7477007110e-02 +531 5.3100000000e+00 -3.1790339990e-03 1.8133074970e-02 +532 5.3200000000e+00 -3.3641907710e-03 1.8865012170e-02 +533 5.3300000000e+00 -3.5569293410e-03 1.9656413040e-02 +534 5.3400000000e+00 -3.7577656750e-03 2.0492060870e-02 +535 5.3500000000e+00 -3.9670690000e-03 2.1357287210e-02 +536 5.3600000000e+00 -4.1850618000e-03 2.2237421170e-02 +537 5.3700000000e+00 -4.4118198130e-03 2.3117792040e-02 +538 5.3800000000e+00 -4.6472720400e-03 2.3983729020e-02 +539 5.3900000000e+00 -4.8912007360e-03 2.4820173120e-02 +540 5.4000000000e+00 -5.1432414150e-03 2.5611246230e-02 +541 5.4100000000e+00 -5.4028974590e-03 2.6345995690e-02 +542 5.4200000000e+00 -5.6696131800e-03 2.7023783330e-02 +543 5.4300000000e+00 -5.9428468820e-03 2.7648494840e-02 +544 5.4400000000e+00 -6.2220854650e-03 2.8223326690e-02 +545 5.4500000000e+00 -6.5068444350e-03 2.8751139070e-02 +546 5.4600000000e+00 -6.7966678950e-03 2.9234792020e-02 +547 5.4700000000e+00 -7.0911285520e-03 2.9677145900e-02 +548 5.4800000000e+00 -7.3898277130e-03 3.0081060730e-02 +549 5.4900000000e+00 -7.6923952860e-03 3.0449630790e-02 +550 5.5000000000e+00 -7.9984897810e-03 3.0786428800e-02 +551 5.5100000000e+00 -8.3077897170e-03 3.1092132900e-02 +552 5.5200000000e+00 -8.6199506760e-03 3.1361354280e-02 +553 5.5300000000e+00 -8.9345623430e-03 3.1586068180e-02 +554 5.5400000000e+00 -9.2511399250e-03 3.1758727190e-02 +555 5.5500000000e+00 -9.5691241460e-03 3.1872314690e-02 +556 5.5600000000e+00 -9.8878812460e-03 3.1879060490e-02 +557 5.5700000000e+00 -1.0206702980e-02 3.1879343290e-02 +558 5.5800000000e+00 -1.0524806640e-02 3.1775291070e-02 +559 5.5900000000e+00 -1.0841335000e-02 3.1575078260e-02 +560 5.6000000000e+00 -1.1155356390e-02 3.1277094940e-02 +561 5.6100000000e+00 -1.1465874190e-02 3.0876002420e-02 +562 5.6200000000e+00 -1.1771874720e-02 3.0373359010e-02 +563 5.6300000000e+00 -1.2072375040e-02 2.9774158060e-02 +564 5.6400000000e+00 -1.2366432510e-02 2.9082718780e-02 +565 5.6500000000e+00 -1.2653144820e-02 2.8303067980e-02 +566 5.6600000000e+00 -1.2931649940e-02 2.7439235100e-02 +567 5.6700000000e+00 -1.3201126190e-02 2.6495251650e-02 +568 5.6800000000e+00 -1.3460792170e-02 2.5475145970e-02 +569 5.6900000000e+00 -1.3709906810e-02 2.4382869130e-02 +570 5.7000000000e+00 -1.3947769340e-02 2.3222203640e-02 +571 5.7100000000e+00 -1.4173722750e-02 2.1998018300e-02 +572 5.7200000000e+00 -1.4387171000e-02 2.0717601730e-02 +573 5.7300000000e+00 -1.4587596210e-02 1.9389388150e-02 +574 5.7400000000e+00 -1.4774562110e-02 1.8021631230e-02 +575 5.7500000000e+00 -1.4947714070e-02 1.6622492240e-02 +576 5.7600000000e+00 -1.5106779050e-02 1.5200129840e-02 +577 5.7700000000e+00 -1.5251565630e-02 1.3762707810e-02 +578 5.7800000000e+00 -1.5381964020e-02 1.2318387210e-02 +579 5.7900000000e+00 -1.5497946030e-02 1.0875476430e-02 +580 5.8000000000e+00 -1.5599565090e-02 9.4425870750e-03 +581 5.8100000000e+00 -1.5686950370e-02 8.0264086870e-03 +582 5.8200000000e+00 -1.5760277400e-02 6.6295090340e-03 +583 5.8300000000e+00 -1.5819738700e-02 5.2525609880e-03 +584 5.8400000000e+00 -1.5865537890e-02 3.8965319600e-03 +585 5.8500000000e+00 -1.5897889720e-02 2.5625313690e-03 +586 5.8600000000e+00 -1.5917020020e-02 1.2516718340e-03 +587 5.8700000000e+00 -1.5923165770e-02 -3.4937058100e-05 +588 5.8800000000e+00 -1.5916575010e-02 -1.2961843800e-03 +589 5.8900000000e+00 -1.5897506940e-02 -2.5310939070e-03 +590 5.9000000000e+00 -1.5866231840e-02 -3.7389705170e-03 +591 5.9100000000e+00 -1.5823036470e-02 -4.9173578470e-03 +592 5.9200000000e+00 -1.5768250830e-02 -6.0600357120e-03 +593 5.9300000000e+00 -1.5702275000e-02 -7.1590688840e-03 +594 5.9400000000e+00 -1.5625584430e-02 -8.2067883000e-03 +595 5.9500000000e+00 -1.5538730000e-02 -9.1956535530e-03 +596 5.9600000000e+00 -1.5442337980e-02 -1.0118124370e-02 +597 5.9700000000e+00 -1.5337110070e-02 -1.0966662250e-02 +598 5.9800000000e+00 -1.5223823350e-02 -1.1733731860e-02 +599 5.9900000000e+00 -1.5103330310e-02 -1.2411346770e-02 +600 6.0000000000e+00 -1.4976558850e-02 -1.2990539800e-02 +601 6.0100000000e+00 -1.4844496760e-02 -1.3467852250e-02 +602 6.0200000000e+00 -1.4708114030e-02 -1.3850882370e-02 +603 6.0300000000e+00 -1.4568285260e-02 -1.4151686870e-02 +604 6.0400000000e+00 -1.4425774100e-02 -1.4381668920e-02 +605 6.0500000000e+00 -1.4281233220e-02 -1.4551925990e-02 +606 6.0600000000e+00 -1.4135204390e-02 -1.4673570400e-02 +607 6.0700000000e+00 -1.3988118420e-02 -1.4757756220e-02 +608 6.0800000000e+00 -1.3840295150e-02 -1.4815688990e-02 +609 6.0900000000e+00 -1.3691943500e-02 -1.4859029650e-02 +610 6.1000000000e+00 -1.3543161430e-02 -1.4899772950e-02 +611 6.1100000000e+00 -1.3393954760e-02 -1.4944650430e-02 +612 6.1200000000e+00 -1.3244331080e-02 -1.4987875210e-02 +613 6.1300000000e+00 -1.3094393730e-02 -1.4999195980e-02 +614 6.1400000000e+00 -1.2944360580e-02 -1.5000406620e-02 +615 6.1500000000e+00 -1.2794564020e-02 -1.4968741120e-02 +616 6.1600000000e+00 -1.2645450970e-02 -1.4878631960e-02 +617 6.1700000000e+00 -1.2497582900e-02 -1.4726360280e-02 +618 6.1800000000e+00 -1.2351635780e-02 -1.4500650680e-02 +619 6.1900000000e+00 -1.2208400130e-02 -1.4189602640e-02 +620 6.2000000000e+00 -1.2068780980e-02 -1.3780088450e-02 +621 6.2100000000e+00 -1.1933770350e-02 -1.3266656360e-02 +622 6.2200000000e+00 -1.1804309490e-02 -1.2663757970e-02 +623 6.2300000000e+00 -1.1681151160e-02 -1.1995648740e-02 +624 6.2400000000e+00 -1.1564832050e-02 -1.1284711830e-02 +625 6.2500000000e+00 -1.1455672780e-02 -1.0552530900e-02 +626 6.2600000000e+00 -1.1353777930e-02 -9.8206944580e-03 +627 6.2700000000e+00 -1.1259036020e-02 -9.1107917220e-03 +628 6.2800000000e+00 -1.1171119520e-02 -8.4444087170e-03 +629 6.2900000000e+00 -1.1089484820e-02 -7.8440382630e-03 +630 6.3000000000e+00 -1.1013372280e-02 -7.3343059900e-03 +631 6.3100000000e+00 -1.0941837570e-02 -6.9286062890e-03 +632 6.3200000000e+00 -1.0873908590e-02 -6.6177004520e-03 +633 6.3300000000e+00 -1.0808742380e-02 -6.3836149380e-03 +634 6.3400000000e+00 -1.0745656480e-02 -6.2096675710e-03 +635 6.3500000000e+00 -1.0684128980e-02 -6.0797276050e-03 +636 6.3600000000e+00 -1.0623798440e-02 -5.9776679450e-03 +637 6.3700000000e+00 -1.0564463980e-02 -5.8875005540e-03 +638 6.3800000000e+00 -1.0506085210e-02 -5.7934100960e-03 +639 6.3900000000e+00 -1.0448782260e-02 -5.6790958870e-03 +640 6.4000000000e+00 -1.0392835790e-02 -5.5272351870e-03 +641 6.4100000000e+00 -1.0338663800e-02 -5.3265489450e-03 +642 6.4200000000e+00 -1.0286705990e-02 -5.0824779890e-03 +643 6.4300000000e+00 -1.0237307970e-02 -4.8090647670e-03 +644 6.4400000000e+00 -1.0190698140e-02 -4.5186980020e-03 +645 6.4500000000e+00 -1.0146987700e-02 -4.2230772190e-03 +646 6.4600000000e+00 -1.0106170660e-02 -3.9339072730e-03 +647 6.4700000000e+00 -1.0068123810e-02 -3.6628907880e-03 +648 6.4800000000e+00 -1.0032606730e-02 -3.4217128560e-03 +649 6.4900000000e+00 -9.9992617940e-03 -3.2226936060e-03 +650 6.5000000000e+00 -9.9676141880e-03 -3.0800614930e-03 +651 6.5100000000e+00 -9.9370921530e-03 -3.0007974900e-03 +652 6.5200000000e+00 -9.9071283790e-03 -2.9895971810e-03 +653 6.5300000000e+00 -9.8772613860e-03 -2.9909390270e-03 +654 6.5400000000e+00 -9.8471557910e-03 -3.0244442110e-03 +655 6.5500000000e+00 -9.8166023160e-03 -3.0807584720e-03 +656 6.5600000000e+00 -9.7855177830e-03 -3.1389446580e-03 +657 6.5700000000e+00 -9.7539451160e-03 -3.1876831780e-03 +658 6.5800000000e+00 -9.7220533400e-03 -3.1902459520e-03 +659 6.5900000000e+00 -9.6901375810e-03 -3.1905666810e-03 +660 6.6000000000e+00 -9.6586190680e-03 -3.1317577790e-03 +661 6.6100000000e+00 -9.6280205840e-03 -3.0113946400e-03 +662 6.6200000000e+00 -9.5988437380e-03 -2.8430708940e-03 +663 6.6300000000e+00 -9.5714462370e-03 -2.6468063050e-03 +664 6.6400000000e+00 -9.5460173390e-03 -2.4401082740e-03 +665 6.6500000000e+00 -9.5225778510e-03 -2.2397114760e-03 +666 6.6600000000e+00 -9.5009801320e-03 -2.0623027660e-03 +667 6.6700000000e+00 -9.4809080910e-03 -1.9242058160e-03 +668 6.6800000000e+00 -9.4618771900e-03 -1.8756816070e-03 +669 6.6900000000e+00 -9.4432344390e-03 -1.8737538630e-03 +670 6.7000000000e+00 -9.4241584000e-03 -1.9296967320e-03 +671 6.7100000000e+00 -9.4036962210e-03 -2.1193480020e-03 +672 6.7200000000e+00 -9.3809488110e-03 -2.3946186600e-03 +673 6.7300000000e+00 -9.3552560140e-03 -2.7229160010e-03 +674 6.7400000000e+00 -9.3262336490e-03 -3.0756765770e-03 +675 6.7500000000e+00 -9.2937735010e-03 -3.4254765850e-03 +676 6.7600000000e+00 -9.2580433320e-03 -3.7449102950e-03 +677 6.7700000000e+00 -9.2194868700e-03 -4.0068658770e-03 +678 6.7800000000e+00 -9.1788238190e-03 -4.1695216600e-03 +679 6.7900000000e+00 -9.1370498500e-03 -4.1709417970e-03 +680 6.8000000000e+00 -9.0954366100e-03 -4.1531823070e-03 +681 6.8100000000e+00 -9.0554785850e-03 -3.9087191710e-03 +682 6.8200000000e+00 -9.0186274690e-03 -3.5228649830e-03 +683 6.8300000000e+00 -8.9860265190e-03 -3.0396673600e-03 +684 6.8400000000e+00 -8.9584574300e-03 -2.4966871920e-03 +685 6.8500000000e+00 -8.9363403360e-03 -1.9298633360e-03 +686 6.8600000000e+00 -8.9197338070e-03 -1.3752156630e-03 +687 6.8700000000e+00 -8.9083348510e-03 -8.6872626790e-04 +688 6.8800000000e+00 -8.9014789130e-03 -4.4613382030e-04 +689 6.8900000000e+00 -8.8981398760e-03 -1.4464164490e-04 +690 6.9000000000e+00 -8.8969300610e-03 -9.3306974460e-05 +691 6.9100000000e+00 -8.8961599030e-03 -9.4842573110e-05 +692 6.9200000000e+00 -8.8941363350e-03 -2.6951752300e-04 +693 6.9300000000e+00 -8.8894611720e-03 -6.0677709890e-04 +694 6.9400000000e+00 -8.8810907890e-03 -1.0295850060e-03 +695 6.9500000000e+00 -8.8683361180e-03 -1.5032386040e-03 +696 6.9600000000e+00 -8.8508626520e-03 -1.9925371240e-03 +697 6.9700000000e+00 -8.8286904430e-03 -2.4622017850e-03 +698 6.9800000000e+00 -8.8021941000e-03 -2.8770558440e-03 +699 6.9900000000e+00 -8.7721027940e-03 -3.2001665000e-03 +700 7.0000000000e+00 -8.7395002530e-03 -3.3628110830e-03 +701 7.0100000000e+00 -8.7057669680e-03 -3.3616587300e-03 +702 7.0200000000e+00 -8.6722912150e-03 -3.3328724970e-03 +703 7.0300000000e+00 -8.6401800780e-03 -3.1369921780e-03 +704 7.0400000000e+00 -8.6102016490e-03 -2.8836524560e-03 +705 7.0500000000e+00 -8.5827850310e-03 -2.6048254500e-03 +706 7.0600000000e+00 -8.5580203390e-03 -2.3338108210e-03 +707 7.0700000000e+00 -8.5356586960e-03 -2.1036368350e-03 +708 7.0800000000e+00 -8.5151122380e-03 -1.9811072220e-03 +709 7.0900000000e+00 -8.4954541080e-03 -1.9777398690e-03 +710 7.1000000000e+00 -8.4754184640e-03 -2.0225113290e-03 +711 7.1100000000e+00 -8.4534593770e-03 -2.2965828040e-03 +712 7.1200000000e+00 -8.4280453800e-03 -2.7212170120e-03 +713 7.1300000000e+00 -8.3979540000e-03 -3.2510514740e-03 +714 7.1400000000e+00 -8.3623306660e-03 -3.8476514650e-03 +715 7.1500000000e+00 -8.3206887140e-03 -4.4744244140e-03 +716 7.1600000000e+00 -8.2729093820e-03 -5.0946981770e-03 +717 7.1700000000e+00 -8.2192418120e-03 -5.6718145680e-03 +718 7.1800000000e+00 -8.1603030520e-03 -6.1692539840e-03 +719 7.1900000000e+00 -8.0970780500e-03 -6.5487676050e-03 +720 7.2000000000e+00 -8.0309196620e-03 -6.7272229100e-03 +721 7.2100000000e+00 -7.9634907270e-03 -6.7259642140e-03 +722 7.2200000000e+00 -7.8964744890e-03 -6.6789598430e-03 +723 7.2300000000e+00 -7.8312850050e-03 -6.4221789350e-03 +724 7.2400000000e+00 -7.7690092330e-03 -6.0751032250e-03 +725 7.2500000000e+00 -7.7104070320e-03 -5.6689224870e-03 +726 7.2600000000e+00 -7.6559111550e-03 -5.2359769820e-03 +727 7.2700000000e+00 -7.6056272590e-03 -4.8087903910e-03 +728 7.2800000000e+00 -7.5593338980e-03 -4.4198555860e-03 +729 7.2900000000e+00 -7.5164825260e-03 -4.1030087070e-03 +730 7.3000000000e+00 -7.4761974950e-03 -3.8973776310e-03 +731 7.3100000000e+00 -7.4373205220e-03 -3.8759720650e-03 +732 7.3200000000e+00 -7.3986330090e-03 -3.8773675230e-03 +733 7.3300000000e+00 -7.3590783700e-03 -4.0015934670e-03 +734 7.3400000000e+00 -7.3178064890e-03 -4.2169764230e-03 +735 7.3500000000e+00 -7.2741737280e-03 -4.4858423140e-03 +736 7.3600000000e+00 -7.2277429200e-03 -4.7879201620e-03 +737 7.3700000000e+00 -7.1782833720e-03 -5.1026918510e-03 +738 7.3800000000e+00 -7.1257708670e-03 -5.4095927810e-03 +739 7.3900000000e+00 -7.0703876590e-03 -5.6872718710e-03 +740 7.4000000000e+00 -7.0125224790e-03 -5.9122800580e-03 +741 7.4100000000e+00 -6.9527445490e-03 -6.0705847630e-03 +742 7.4200000000e+00 -6.8916736910e-03 -6.1675051450e-03 +743 7.4300000000e+00 -6.8298504240e-03 -6.2135136040e-03 +744 7.4400000000e+00 -6.7677099870e-03 -6.2133123600e-03 +745 7.4500000000e+00 -6.7055823390e-03 -6.2119432270e-03 +746 7.4600000000e+00 -6.6436921590e-03 -6.1750902160e-03 +747 7.4700000000e+00 -6.5821588440e-03 -6.1325376130e-03 +748 7.4800000000e+00 -6.5209965140e-03 -6.0933858940e-03 +749 7.4900000000e+00 -6.4601140040e-03 -6.0833932360e-03 +750 7.5000000000e+00 -6.3993148730e-03 -6.0828678280e-03 +751 7.5100000000e+00 -6.3383152770e-03 -6.1110319720e-03 +752 7.5200000000e+00 -6.2768333710e-03 -6.1744378110e-03 +753 7.5300000000e+00 -6.2146787090e-03 -6.2517322550e-03 +754 7.5400000000e+00 -6.1517701230e-03 -6.3316236530e-03 +755 7.5500000000e+00 -6.0881357210e-03 -6.4034456450e-03 +756 7.5600000000e+00 -6.0239128920e-03 -6.4556549940e-03 +757 7.5700000000e+00 -5.9593483000e-03 -6.4558690390e-03 +758 7.5800000000e+00 -5.8947978880e-03 -6.4544047390e-03 +759 7.5900000000e+00 -5.8307268780e-03 -6.3840366970e-03 +760 7.6000000000e+00 -5.7677097690e-03 -6.2482392170e-03 +761 7.6100000000e+00 -5.7064038390e-03 -6.0415350870e-03 +762 7.6200000000e+00 -5.6474166590e-03 -5.7781975640e-03 +763 7.6300000000e+00 -5.5911735990e-03 -5.4820877910e-03 +764 7.6400000000e+00 -5.5378913320e-03 -5.1747939830e-03 +765 7.6500000000e+00 -5.4875778360e-03 -4.8770962220e-03 +766 7.6600000000e+00 -5.4400323880e-03 -4.6097357670e-03 +767 7.6700000000e+00 -5.3948455730e-03 -4.3932287400e-03 +768 7.6800000000e+00 -5.3513992750e-03 -4.2592350550e-03 +769 7.6900000000e+00 -5.3088666840e-03 -4.2582276760e-03 +770 7.7000000000e+00 -5.2662122910e-03 -4.2715994810e-03 +771 7.7100000000e+00 -5.2222317010e-03 -4.4675543320e-03 +772 7.7200000000e+00 -5.1757506940e-03 -4.7782011870e-03 +773 7.7300000000e+00 -5.1258242750e-03 -5.1707250140e-03 +774 7.7400000000e+00 -5.0717764940e-03 -5.6171552670e-03 +775 7.7500000000e+00 -5.0132004380e-03 -6.0907404020e-03 +776 7.7600000000e+00 -4.9499582360e-03 -6.5646596010e-03 +777 7.7700000000e+00 -4.8821810580e-03 -7.0120917520e-03 +778 7.7800000000e+00 -4.8102691140e-03 -7.4062816260e-03 +779 7.7900000000e+00 -4.7348916560e-03 -7.7192866600e-03 +780 7.8000000000e+00 -4.6569869740e-03 -7.9185010720e-03 +781 7.8100000000e+00 -4.5777234760e-03 -7.9357116620e-03 +782 7.8200000000e+00 -4.4983050530e-03 -7.9345538390e-03 +783 7.8300000000e+00 -4.4197764540e-03 -7.8056778610e-03 +784 7.8400000000e+00 -4.3429843580e-03 -7.5886231250e-03 +785 7.8500000000e+00 -4.2685773750e-03 -7.3171269070e-03 +786 7.8600000000e+00 -4.1970060460e-03 -7.0106527050e-03 +787 7.8700000000e+00 -4.1285228410e-03 -6.6888898820e-03 +788 7.8800000000e+00 -4.0631821630e-03 -6.3715753420e-03 +789 7.8900000000e+00 -4.0008403430e-03 -6.0790957490e-03 +790 7.9000000000e+00 -3.9411556450e-03 -5.8334960980e-03 +791 7.9100000000e+00 -3.8836100890e-03 -5.6490249270e-03 +792 7.9200000000e+00 -3.8276185730e-03 -5.5238274960e-03 +793 7.9300000000e+00 -3.7726380060e-03 -5.4503718460e-03 +794 7.9400000000e+00 -3.7181891260e-03 -5.4368290110e-03 +795 7.9500000000e+00 -3.6638565070e-03 -5.4375412710e-03 +796 7.9600000000e+00 -3.6092885500e-03 -5.4693271350e-03 +797 7.9700000000e+00 -3.5541974930e-03 -5.5364281040e-03 +798 7.9800000000e+00 -3.4983594020e-03 -5.6225227740e-03 +799 7.9900000000e+00 -3.4416141800e-03 -5.7213422600e-03 +800 8.0000000000e+00 -3.3838655570e-03 -5.8264552150e-03 +801 8.0100000000e+00 -3.3250799920e-03 -5.9317600090e-03 +802 8.0200000000e+00 -3.2652811390e-03 -6.0319529100e-03 +803 8.0300000000e+00 -3.2045443190e-03 -6.1220872130e-03 +804 8.0400000000e+00 -3.1429954090e-03 -6.1971772310e-03 +805 8.0500000000e+00 -3.0808108470e-03 -6.2523344830e-03 +806 8.0600000000e+00 -3.0182176310e-03 -6.2681669500e-03 +807 8.0700000000e+00 -2.9554933170e-03 -6.2687770620e-03 +808 8.0800000000e+00 -2.8929660200e-03 -6.2432932110e-03 +809 8.0900000000e+00 -2.8310144160e-03 -6.1668903030e-03 +810 8.1000000000e+00 -2.7700677390e-03 -6.0438459020e-03 +811 8.1100000000e+00 -2.7105918050e-03 -5.8720071740e-03 +812 8.1200000000e+00 -2.6530191240e-03 -5.6595409670e-03 +813 8.1300000000e+00 -2.5976790150e-03 -5.4196416380e-03 +814 8.1400000000e+00 -2.5447836260e-03 -5.1644165190e-03 +815 8.1500000000e+00 -2.4944279380e-03 -4.9055584030e-03 +816 8.1600000000e+00 -2.4465897580e-03 -4.6547632950e-03 +817 8.1700000000e+00 -2.4011297280e-03 -4.4237188540e-03 +818 8.1800000000e+00 -2.3577913170e-03 -4.2240813640e-03 +819 8.1900000000e+00 -2.3162008250e-03 -4.0681406080e-03 +820 8.2000000000e+00 -2.2758673830e-03 -3.9706319740e-03 +821 8.2100000000e+00 -2.2362029790e-03 -3.9611717460e-03 +822 8.2200000000e+00 -2.1966225940e-03 -3.9620151530e-03 +823 8.2300000000e+00 -2.1566443350e-03 -4.0194821090e-03 +824 8.2400000000e+00 -2.1159094640e-03 -4.1138208480e-03 +825 8.2500000000e+00 -2.0741823980e-03 -4.2252451690e-03 +826 8.2600000000e+00 -2.0313507070e-03 -4.3416947870e-03 +827 8.2700000000e+00 -1.9874251180e-03 -4.4510024540e-03 +828 8.2800000000e+00 -1.9425395100e-03 -4.5411700940e-03 +829 8.2900000000e+00 -1.8969509160e-03 -4.5850896530e-03 +830 8.3000000000e+00 -1.8510395260e-03 -4.5858122980e-03 +831 8.3100000000e+00 -1.8052902620e-03 -4.5663005390e-03 +832 8.3200000000e+00 -1.7602006790e-03 -4.4744051230e-03 +833 8.3300000000e+00 -1.7161888630e-03 -4.3453380180e-03 +834 8.3400000000e+00 -1.6735750130e-03 -4.1893095180e-03 +835 8.3500000000e+00 -1.6325814350e-03 -4.0160059210e-03 +836 8.3600000000e+00 -1.5933325480e-03 -3.8351750510e-03 +837 8.3700000000e+00 -1.5558548830e-03 -3.6565797610e-03 +838 8.3800000000e+00 -1.5200770810e-03 -3.4899795860e-03 +839 8.3900000000e+00 -1.4858298910e-03 -3.3455567640e-03 +840 8.4000000000e+00 -1.4528461780e-03 -3.2346895450e-03 +841 8.4100000000e+00 -1.4207748020e-03 -3.1637014420e-03 +842 8.4200000000e+00 -1.3892500700e-03 -3.1291533650e-03 +843 8.4300000000e+00 -1.3579611770e-03 -3.1292408310e-03 +844 8.4400000000e+00 -1.3266660940e-03 -3.1298911790e-03 +845 8.4500000000e+00 -1.2951915690e-03 -3.1576610340e-03 +846 8.4600000000e+00 -1.2634331300e-03 -3.1917512150e-03 +847 8.4700000000e+00 -1.2313550790e-03 -3.2259651180e-03 +848 8.4800000000e+00 -1.1989904980e-03 -3.2540630400e-03 +849 8.4900000000e+00 -1.1664412430e-03 -3.2555693480e-03 +850 8.5000000000e+00 -1.1338779510e-03 -3.2557025210e-03 +851 8.5100000000e+00 -1.1015326060e-03 -3.2234865450e-03 +852 8.5200000000e+00 -1.0696614040e-03 -3.1630718910e-03 +853 8.5300000000e+00 -1.0385076140e-03 -3.0791159010e-03 +854 8.5400000000e+00 -1.0082941500e-03 -2.9739076870e-03 +855 8.5500000000e+00 -9.7922357050e-04 -2.8494714080e-03 +856 8.5600000000e+00 -9.5147808060e-04 -2.7078379130e-03 +857 8.5700000000e+00 -9.2521952960e-04 -2.5510405740e-03 +858 8.5800000000e+00 -9.0058941240e-04 -2.3811136250e-03 +859 8.5900000000e+00 -8.7770886890e-04 -2.2000297810e-03 +860 8.6000000000e+00 -8.5667868430e-04 -2.0096305180e-03 +861 8.6100000000e+00 -8.3757669380e-04 -1.8125777800e-03 +862 8.6200000000e+00 -8.2044480670e-04 -1.6133743580e-03 +863 8.6300000000e+00 -8.0527603090e-04 -1.4173768830e-03 +864 8.6400000000e+00 -7.9201187730e-04 -1.2297980360e-03 +865 8.6500000000e+00 -7.8054236030e-04 -1.0557824940e-03 +866 8.6600000000e+00 -7.7070599730e-04 -9.0047077190e-04 +867 8.6700000000e+00 -7.6228980900e-04 -7.6899201130e-04 +868 8.6800000000e+00 -7.5502931930e-04 -6.6643613270e-04 +869 8.6900000000e+00 -7.4860855550e-04 -5.9822957020e-04 +870 8.7000000000e+00 -7.4266004790e-04 -5.9102166820e-04 +871 8.7100000000e+00 -7.3677624910e-04 -5.9136220610e-04 +872 8.7200000000e+00 -7.3056662870e-04 -6.3841529490e-04 +873 8.7300000000e+00 -7.2371476810e-04 -7.1895190120e-04 +874 8.7400000000e+00 -7.1598977950e-04 -8.1806870680e-04 +875 8.7500000000e+00 -7.0724630570e-04 -9.2737467390e-04 +876 8.7600000000e+00 -6.9742452050e-04 -1.0383773450e-03 +877 8.7700000000e+00 -6.8655012820e-04 -1.1425742970e-03 +878 8.7800000000e+00 -6.7473436410e-04 -1.2315130470e-03 +879 8.7900000000e+00 -6.6217399400e-04 -1.2963584120e-03 +880 8.8000000000e+00 -6.4915131470e-04 -1.3094343440e-03 +881 8.8100000000e+00 -6.3601950570e-04 -1.3089678270e-03 +882 8.8200000000e+00 -6.2312938900e-04 -1.2757712740e-03 +883 8.8300000000e+00 -6.1075618940e-04 -1.2096983960e-03 +884 8.8400000000e+00 -5.9908488620e-04 -1.1299283140e-03 +885 8.8500000000e+00 -5.8821021300e-04 -1.0452584110e-03 +886 8.8600000000e+00 -5.7813665840e-04 -9.6460283190e-04 +887 8.8700000000e+00 -5.6877846530e-04 -8.9678568750e-04 +888 8.8800000000e+00 -5.5995963120e-04 -8.5822913660e-04 +889 8.8900000000e+00 -5.5141390820e-04 -8.5747478260e-04 +890 8.9000000000e+00 -5.4278480290e-04 -8.6716956740e-04 +891 8.9100000000e+00 -5.3364421720e-04 -9.4133837340e-04 +892 8.9200000000e+00 -5.2358565110e-04 -1.0544350220e-03 +893 8.9300000000e+00 -5.1231740570e-04 -1.1904098590e-03 +894 8.9400000000e+00 -4.9968122430e-04 -1.3354564220e-03 +895 8.9500000000e+00 -4.8565229150e-04 -1.4763473930e-03 +896 8.9600000000e+00 -4.7033923410e-04 -1.5999042110e-03 +897 8.9700000000e+00 -4.5398412050e-04 -1.6934097630e-03 +898 8.9800000000e+00 -4.3696246120e-04 -1.7112894550e-03 +899 8.9900000000e+00 -4.1978320830e-04 -1.7124335300e-03 +900 9.0000000000e+00 -4.0308875560e-04 -1.6449196520e-03 +901 9.0100000000e+00 -3.8762791010e-04 -1.4817040520e-03 +902 9.0200000000e+00 -3.7412074740e-04 -1.2491702780e-03 +903 9.0300000000e+00 -3.6312346700e-04 -9.6992461550e-04 +904 9.0400000000e+00 -3.5500136390e-04 -6.6380635360e-04 +905 9.0500000000e+00 -3.4992882860e-04 -3.4982061670e-04 +906 9.0600000000e+00 -3.4788934670e-04 -4.6993457500e-05 +907 9.0700000000e+00 -3.4867549920e-04 2.2568020250e-04 +908 9.0800000000e+00 -3.5188896250e-04 4.4935964540e-04 +909 9.0900000000e+00 -3.5694050820e-04 6.0452910960e-04 +910 9.1000000000e+00 -3.6305000340e-04 6.1763862860e-04 +911 9.1100000000e+00 -3.6927825380e-04 6.1715722710e-04 +912 9.1200000000e+00 -3.7468622130e-04 4.9717594620e-04 +913 9.1300000000e+00 -3.7849424120e-04 2.9714995560e-04 +914 9.1400000000e+00 -3.8011386570e-04 4.8341320950e-05 +915 9.1500000000e+00 -3.7914786360e-04 -2.3046620100e-04 +916 9.1600000000e+00 -3.7539022070e-04 -5.2026924870e-04 +917 9.1700000000e+00 -3.6882613980e-04 -8.0202351890e-04 +918 9.1800000000e+00 -3.5963204020e-04 -1.0567133440e-03 +919 9.1900000000e+00 -3.4817555830e-04 -1.2645602590e-03 +920 9.2000000000e+00 -3.3501554730e-04 -1.4029450680e-03 +921 9.2100000000e+00 -3.2087683960e-04 -1.4283913870e-03 +922 9.2200000000e+00 -3.0652406010e-04 -1.4272958700e-03 +923 9.2300000000e+00 -2.9263543830e-04 -1.3643256150e-03 +924 9.2400000000e+00 -2.7977757160e-04 -1.2322371450e-03 +925 9.2500000000e+00 -2.6840542450e-04 -1.0605904210e-03 +926 9.2600000000e+00 -2.5886232930e-04 -8.6031093940e-04 +927 9.2700000000e+00 -2.5137998560e-04 -6.4249036470e-04 +928 9.2800000000e+00 -2.4607846060e-04 -4.1825876870e-04 +929 9.2900000000e+00 -2.4296618900e-04 -1.9902305240e-04 +930 9.3000000000e+00 -2.4193997290e-04 3.1845693800e-06 +931 9.3100000000e+00 -2.4279467890e-04 1.7966093380e-04 +932 9.3200000000e+00 -2.4527172140e-04 3.2868016980e-04 +933 9.3300000000e+00 -2.4910754640e-04 4.5137591900e-04 +934 9.3400000000e+00 -2.5404332870e-04 5.4842279990e-04 +935 9.3500000000e+00 -2.5982497130e-04 6.2029030100e-04 +936 9.3600000000e+00 -2.6620310570e-04 6.6743896290e-04 +937 9.3700000000e+00 -2.7293309200e-04 6.8128886900e-04 +938 9.3800000000e+00 -2.7977501880e-04 6.8122989380e-04 +939 9.3900000000e+00 -2.8649370290e-04 6.6561682560e-04 +940 9.4000000000e+00 -2.9285868980e-04 6.1822347770e-04 +941 9.4100000000e+00 -2.9864964660e-04 5.4912675690e-04 +942 9.4200000000e+00 -3.0368332670e-04 4.6394228000e-04 +943 9.4300000000e+00 -3.0784053560e-04 3.7019047190e-04 +944 9.4400000000e+00 -3.1107152360e-04 2.7494326710e-04 +945 9.4500000000e+00 -3.1339598590e-04 1.8510907390e-04 +946 9.4600000000e+00 -3.1490306250e-04 1.0756448490e-04 +947 9.4700000000e+00 -3.1575133810e-04 4.8999593660e-05 +948 9.4800000000e+00 -3.1616884250e-04 3.3107920740e-05 +949 9.4900000000e+00 -3.1645305020e-04 3.2380561200e-05 +950 9.5000000000e+00 -3.1697088070e-04 6.3754272530e-05 +951 9.5100000000e+00 -3.1814184860e-04 1.5167878300e-04 +952 9.5200000000e+00 -3.2035381530e-04 2.7601805580e-04 +953 9.5300000000e+00 -3.2387874080e-04 4.2128484640e-04 +954 9.5400000000e+00 -3.2885583420e-04 5.7377933880e-04 +955 9.5500000000e+00 -3.3529155330e-04 7.2032706750e-04 +956 9.5600000000e+00 -3.4305960490e-04 8.4781313400e-04 +957 9.5700000000e+00 -3.5190094460e-04 9.4358916640e-04 +958 9.5800000000e+00 -3.6142377720e-04 9.6133332950e-04 +959 9.5900000000e+00 -3.7110355600e-04 9.6244725480e-04 +960 9.6000000000e+00 -3.8028298350e-04 8.9260370630e-04 +961 9.6100000000e+00 -3.8819947730e-04 7.2570100330e-04 +962 9.6200000000e+00 -3.9412250090e-04 4.8863488130e-04 +963 9.6300000000e+00 -3.9749089540e-04 2.0465082210e-04 +964 9.6400000000e+00 -3.9794034490e-04 -1.0580965950e-04 +965 9.6500000000e+00 -3.9530337710e-04 -4.2315129320e-04 +966 9.6600000000e+00 -3.8960936300e-04 -7.2775947590e-04 +967 9.6700000000e+00 -3.8108451720e-04 -1.0000584900e-03 +968 9.6800000000e+00 -3.7015189750e-04 -1.2206640990e-03 +969 9.6900000000e+00 -3.5743140510e-04 -1.3686784530e-03 +970 9.7000000000e+00 -3.4373978450e-04 -1.3687177910e-03 +971 9.7100000000e+00 -3.3005711180e-04 -1.3677771240e-03 +972 9.7200000000e+00 -3.1735923270e-04 -1.2175506400e-03 +973 9.7300000000e+00 -3.0645020200e-04 -9.9744243200e-04 +974 9.7400000000e+00 -2.9792877150e-04 -7.2818771020e-04 +975 9.7500000000e+00 -2.9218838950e-04 -4.3000627220e-04 +976 9.7600000000e+00 -2.8941720110e-04 -1.2331077010e-04 +977 9.7700000000e+00 -2.8959804820e-04 1.7145429420e-04 +978 9.7800000000e+00 -2.9250846960e-04 4.3389135570e-04 +979 9.7900000000e+00 -2.9772070050e-04 6.4262374950e-04 +980 9.8000000000e+00 -3.0460167320e-04 7.7223408700e-04 +981 9.8100000000e+00 -3.1234484370e-04 7.7669650150e-04 +982 9.8200000000e+00 -3.2012932700e-04 7.7621752470e-04 +983 9.8300000000e+00 -3.2727903260e-04 6.8055189370e-04 +984 9.8400000000e+00 -3.3329449150e-04 5.4117460460e-04 +985 9.8500000000e+00 -3.3785285590e-04 3.7873497620e-04 +986 9.8600000000e+00 -3.4080789960e-04 2.1056974260e-04 +987 9.8700000000e+00 -3.4219001780e-04 5.4129325750e-05 +988 9.8800000000e+00 -3.4220622720e-04 -7.3421138480e-05 +989 9.8900000000e+00 -3.4124016580e-04 -1.2932529480e-04 +990 9.9000000000e+00 -3.3985209320e-04 -1.3027960630e-04 +991 9.9100000000e+00 -3.3874868130e-04 -9.4889177100e-05 +992 9.9200000000e+00 -3.3863196930e-04 4.0847818400e-05 +993 9.9300000000e+00 -3.4004831890e-04 2.2224472680e-04 +994 9.9400000000e+00 -3.4335820470e-04 4.3012047260e-04 +995 9.9500000000e+00 -3.4873621490e-04 6.4610107190e-04 +996 9.9600000000e+00 -3.5617105070e-04 8.5173520200e-04 +997 9.9700000000e+00 -3.6546552680e-04 1.0286755720e-03 +998 9.9800000000e+00 -3.7623657080e-04 1.1593557180e-03 +999 9.9900000000e+00 -3.8791522390e-04 1.1761944840e-03 +1000 1.0000000000e+01 -3.9974664040e-04 1.1767838920e-03 +1001 1.0010000000e+01 -4.1082104180e-04 1.0677225170e-03 +1002 1.0020000000e+01 -4.2022926040e-04 8.5414149960e-04 +1003 1.0030000000e+01 -4.2721876140e-04 5.7407440180e-04 +1004 1.0040000000e+01 -4.3122515020e-04 2.4718443700e-04 +1005 1.0050000000e+01 -4.3187226610e-04 -1.0782601200e-04 +1006 1.0060000000e+01 -4.2897216000e-04 -4.7219506290e-04 +1007 1.0070000000e+01 -4.2252495590e-04 -8.2716579100e-04 +1008 1.0080000000e+01 -4.1271859740e-04 -1.1540259710e-03 +1009 1.0090000000e+01 -3.9992847830e-04 -1.4333717600e-03 +1010 1.0100000000e+01 -3.8471695790e-04 -1.6437078990e-03 +1011 1.0110000000e+01 -3.6780865340e-04 -1.7721885790e-03 +1012 1.0120000000e+01 -3.4996932360e-04 -1.8019117800e-03 +1013 1.0130000000e+01 -3.3188505560e-04 -1.8006379560e-03 +1014 1.0140000000e+01 -3.1413816540e-04 -1.7566778600e-03 +1015 1.0150000000e+01 -2.9720729950e-04 -1.6504364580e-03 +1016 1.0160000000e+01 -2.8146759970e-04 -1.5122390050e-03 +1017 1.0170000000e+01 -2.6719093180e-04 -1.3521402890e-03 +1018 1.0180000000e+01 -2.5454617650e-04 -1.1803480910e-03 +1019 1.0190000000e+01 -2.4359958460e-04 -1.0073204990e-03 +1020 1.0200000000e+01 -2.3431519470e-04 -8.4406428450e-04 +1021 1.0210000000e+01 -2.2656453160e-04 -6.9838951460e-04 +1022 1.0220000000e+01 -2.2017314520e-04 -5.7144880500e-04 +1023 1.0230000000e+01 -2.1496692380e-04 -4.6164139160e-04 +1024 1.0240000000e+01 -2.1078135050e-04 -3.6780651980e-04 +1025 1.0250000000e+01 -2.0746151260e-04 -2.8898365970e-04 +1026 1.0260000000e+01 -2.0486210460e-04 -2.2421250740e-04 +1027 1.0270000000e+01 -2.0284742580e-04 -1.7253368530e-04 +1028 1.0280000000e+01 -2.0129137260e-04 -1.3299015590e-04 +1029 1.0290000000e+01 -2.0007742360e-04 -1.0462481120e-04 +1030 1.0300000000e+01 -1.9909862130e-04 -8.6482093950e-05 +1031 1.0310000000e+01 -1.9825740620e-04 -8.0176145770e-05 +1032 1.0320000000e+01 -1.9746489060e-04 -8.0270475810e-05 +1033 1.0330000000e+01 -1.9664013180e-04 -8.4149519230e-05 +1034 1.0340000000e+01 -1.9570996480e-04 -9.8408753000e-05 +1035 1.0350000000e+01 -1.9460896870e-04 -1.1878674230e-04 +1036 1.0360000000e+01 -1.9327943030e-04 -1.4453939260e-04 +1037 1.0370000000e+01 -1.9167130140e-04 -1.7490855840e-04 +1038 1.0380000000e+01 -1.8974215350e-04 -2.0913698290e-04 +1039 1.0390000000e+01 -1.8745712570e-04 -2.4647791360e-04 +1040 1.0400000000e+01 -1.8478887050e-04 -2.8620364200e-04 +1041 1.0410000000e+01 -1.8171776410e-04 -3.2750670860e-04 +1042 1.0420000000e+01 -1.7823319480e-04 -3.6939422980e-04 +1043 1.0430000000e+01 -1.7433482900e-04 -4.1079442840e-04 +1044 1.0440000000e+01 -1.7003277440e-04 -4.5066219870e-04 +1045 1.0450000000e+01 -1.6534746400e-04 -4.8797153340e-04 +1046 1.0460000000e+01 -1.6030953380e-04 -5.2170945500e-04 +1047 1.0470000000e+01 -1.5495969400e-04 -5.5087748210e-04 +1048 1.0480000000e+01 -1.4934859350e-04 -5.7449468730e-04 +1049 1.0490000000e+01 -1.4353667910e-04 -5.9151095890e-04 +1050 1.0500000000e+01 -1.3759404780e-04 -5.9895751610e-04 +1051 1.0510000000e+01 -1.3159786030e-04 -5.9884024670e-04 +1052 1.0520000000e+01 -1.2562008510e-04 -5.9671537190e-04 +1053 1.0530000000e+01 -1.1971541890e-04 -5.8645497820e-04 +1054 1.0540000000e+01 -1.1391907460e-04 -5.7377073050e-04 +1055 1.0550000000e+01 -1.0824702940e-04 -5.6047034270e-04 +1056 1.0560000000e+01 -1.0269628380e-04 -5.4839149330e-04 +1057 1.0570000000e+01 -9.7245133280e-05 -5.3923980200e-04 +1058 1.0580000000e+01 -9.1853451120e-05 -5.3911449470e-04 +1059 1.0590000000e+01 -8.6462982460e-05 -5.3910199430e-04 +1060 1.0600000000e+01 -8.0997650220e-05 -5.5041729600e-04 +1061 1.0610000000e+01 -7.5368739520e-05 -5.7173059930e-04 +1062 1.0620000000e+01 -6.9499402950e-05 -5.9987988550e-04 +1063 1.0630000000e+01 -6.3348728690e-05 -6.3019444120e-04 +1064 1.0640000000e+01 -5.6916004900e-05 -6.5859860260e-04 +1065 1.0650000000e+01 -5.0240052900e-05 -6.8133908400e-04 +1066 1.0660000000e+01 -4.3398535910e-05 -6.8721567780e-04 +1067 1.0670000000e+01 -3.6507243520e-05 -6.8762860290e-04 +1068 1.0680000000e+01 -2.9719352220e-05 -6.7391683480e-04 +1069 1.0690000000e+01 -2.3224662110e-05 -6.3517303510e-04 +1070 1.0700000000e+01 -1.7248809950e-05 -5.7135297940e-04 +1071 1.0710000000e+01 -1.2043859570e-05 -4.8077252260e-04 +1072 1.0720000000e+01 -7.8448100750e-06 -3.6813962720e-04 +1073 1.0730000000e+01 -4.8270281820e-06 -2.4116727060e-04 +1074 1.0740000000e+01 -3.0987780870e-06 -1.0674709090e-04 +1075 1.0750000000e+01 -2.7024744570e-06 2.8614036460e-05 +1076 1.0760000000e+01 -3.6159753210e-06 1.5853729430e-04 +1077 1.0770000000e+01 -5.7539145360e-06 2.7678298170e-04 +1078 1.0780000000e+01 -8.9690733710e-06 3.7726806870e-04 +1079 1.0790000000e+01 -1.3053790830e-05 4.5374751230e-04 +1080 1.0800000000e+01 -1.7741412250e-05 4.9645783070e-04 +1081 1.0810000000e+01 -2.2717402080e-05 4.9635768930e-04 +1082 1.0820000000e+01 -2.7668550310e-05 4.9373434340e-04 +1083 1.0830000000e+01 -3.2330964780e-05 4.5092721080e-04 +1084 1.0840000000e+01 -3.6498647170e-05 3.9091840760e-04 +1085 1.0850000000e+01 -4.0022298200e-05 3.1893553480e-04 +1086 1.0860000000e+01 -4.2808089230e-05 2.4038641930e-04 +1087 1.0870000000e+01 -4.4816400650e-05 1.6059919060e-04 +1088 1.0880000000e+01 -4.6060527570e-05 8.4780110980e-05 +1089 1.0890000000e+01 -4.6605352970e-05 1.8223653080e-05 +1090 1.0900000000e+01 -4.6565988960e-05 -3.3314987920e-05 +1091 1.0910000000e+01 -4.6099238430e-05 -6.6873796480e-05 +1092 1.0920000000e+01 -4.5366824730e-05 -8.4916136160e-05 +1093 1.0930000000e+01 -4.4499679130e-05 -9.0355700370e-05 +1094 1.0940000000e+01 -4.3591609800e-05 -8.9952927120e-05 +1095 1.0950000000e+01 -4.2700237280e-05 -8.7651375340e-05 +1096 1.0960000000e+01 -4.1847951690e-05 -8.3360830850e-05 +1097 1.0970000000e+01 -4.1022891310e-05 -8.2903739490e-05 +1098 1.0980000000e+01 -4.0179942230e-05 -8.5063482370e-05 +1099 1.0990000000e+01 -3.9241758770e-05 -9.8313192120e-05 +1100 1.1000000000e+01 -3.8099804360e-05 -1.2447822810e-04 +1101 1.1010000000e+01 -3.6621345410e-05 -1.6534170470e-04 +1102 1.1020000000e+01 -3.4679816320e-05 -2.1818064580e-04 +1103 1.1030000000e+01 -3.2184148770e-05 -2.7819907000e-04 +1104 1.1040000000e+01 -2.9083598200e-05 -3.4125702240e-04 +1105 1.1050000000e+01 -2.5366519500e-05 -4.0351991940e-04 +1106 1.1060000000e+01 -2.1059118990e-05 -4.6127744400e-04 +1107 1.1070000000e+01 -1.6224183250e-05 -5.1095646380e-04 +1108 1.1080000000e+01 -1.0959784980e-05 -5.4915926570e-04 +1109 1.1090000000e+01 -5.3979664600e-06 -5.6732102600e-04 +1110 1.1100000000e+01 2.9659907510e-07 -5.6742631160e-04 +1111 1.1110000000e+01 5.9341452010e-06 -5.6066382740e-04 +1112 1.1120000000e+01 1.1331617930e-05 -5.2705013840e-04 +1113 1.1130000000e+01 1.6343217970e-05 -4.8102892890e-04 +1114 1.1140000000e+01 2.0865295550e-05 -4.2682936100e-04 +1115 1.1150000000e+01 2.4834928580e-05 -3.6840379250e-04 +1116 1.1160000000e+01 2.8228476910e-05 -3.0958860270e-04 +1117 1.1170000000e+01 3.1060112970e-05 -2.5407827860e-04 +1118 1.1180000000e+01 3.3380329340e-05 -2.0541192570e-04 +1119 1.1190000000e+01 3.5274423720e-05 -1.6718237570e-04 +1120 1.1200000000e+01 3.6860961690e-05 -1.4358272690e-04 +1121 1.1210000000e+01 3.8283995600e-05 -1.4050599770e-04 +1122 1.1220000000e+01 3.9680922010e-05 -1.4091331570e-04 +1123 1.1230000000e+01 4.1151837300e-05 -1.5145488130e-04 +1124 1.1240000000e+01 4.2754890750e-05 -1.6788298170e-04 +1125 1.1250000000e+01 4.4508020530e-05 -1.8405361040e-04 +1126 1.1260000000e+01 4.6390713930e-05 -1.9455426310e-04 +1127 1.1270000000e+01 4.8345791250e-05 -1.9485241340e-04 +1128 1.1280000000e+01 5.0281212820e-05 -1.9265493800e-04 +1129 1.1290000000e+01 5.2071908600e-05 -1.7208895670e-04 +1130 1.1300000000e+01 5.3561629730e-05 -1.3367792980e-04 +1131 1.1310000000e+01 5.4572080700e-05 -7.6096086180e-05 +1132 1.1320000000e+01 5.4940349260e-05 -3.4911970810e-06 +1133 1.1330000000e+01 5.4554256440e-05 7.7596661070e-05 +1134 1.1340000000e+01 5.3357134590e-05 1.6154909480e-04 +1135 1.1350000000e+01 5.1345125320e-05 2.4323900560e-04 +1136 1.1360000000e+01 4.8564445820e-05 3.1781175050e-04 +1137 1.1370000000e+01 4.5108624410e-05 3.8070237770e-04 +1138 1.1380000000e+01 4.1115706090e-05 4.2768998170e-04 +1139 1.1390000000e+01 3.6765429140e-05 4.4569996240e-04 +1140 1.1400000000e+01 3.2276373320e-05 4.4577483730e-04 +1141 1.1410000000e+01 2.7894657000e-05 4.3230431740e-04 +1142 1.1420000000e+01 2.3849973670e-05 3.8651116970e-04 +1143 1.1430000000e+01 2.0314535340e-05 3.2680232760e-04 +1144 1.1440000000e+01 1.7397851760e-05 2.5938783110e-04 +1145 1.1450000000e+01 1.5150232920e-05 1.8994220910e-04 +1146 1.1460000000e+01 1.3566325960e-05 1.2382271180e-04 +1147 1.1470000000e+01 1.2588685570e-05 6.6028107650e-05 +1148 1.1480000000e+01 1.2111376660e-05 2.1147970850e-05 +1149 1.1490000000e+01 1.1983608170e-05 -5.5445510610e-07 +1150 1.1500000000e+01 1.2013397080e-05 -6.3433927090e-07 +1151 1.1510000000e+01 1.1979618440e-05 6.9224805850e-06 +1152 1.1520000000e+01 1.1676213710e-05 4.4864949350e-05 +1153 1.1530000000e+01 1.0952841300e-05 9.4560562700e-05 +1154 1.1540000000e+01 9.7194851630e-06 1.5011734680e-04 +1155 1.1550000000e+01 7.9423493170e-06 2.0620127250e-04 +1156 1.1560000000e+01 5.6397197640e-06 2.5785045690e-04 +1157 1.1570000000e+01 2.8777951330e-06 3.0053260610e-04 +1158 1.1580000000e+01 -2.3351266940e-07 3.3028724980e-04 +1159 1.1590000000e+01 -3.5448065280e-06 3.3191037270e-04 +1160 1.1600000000e+01 -6.8714595930e-06 3.3193028550e-04 +1161 1.1610000000e+01 -1.0004797940e-05 3.0304498820e-04 +1162 1.1620000000e+01 -1.2749539600e-05 2.5408763700e-04 +1163 1.1630000000e+01 -1.4957470800e-05 1.9293355440e-04 +1164 1.1640000000e+01 -1.6530760420e-05 1.2458386860e-04 +1165 1.1650000000e+01 -1.7418004970e-05 5.3446519620e-05 +1166 1.1660000000e+01 -1.7610248450e-05 -1.6448088780e-05 +1167 1.1670000000e+01 -1.7136978150e-05 -8.1464308840e-05 +1168 1.1680000000e+01 -1.6062097780e-05 -1.3836894190e-04 +1169 1.1690000000e+01 -1.4479879090e-05 -1.8421787100e-04 +1170 1.1700000000e+01 -1.2510893210e-05 -2.1616290120e-04 +1171 1.1710000000e+01 -1.0294430290e-05 -2.3233687030e-04 +1172 1.1720000000e+01 -7.9678780230e-06 -2.3227402260e-04 +1173 1.1730000000e+01 -5.6486954130e-06 -2.3150892740e-04 +1174 1.1740000000e+01 -3.4322545090e-06 -2.1621802220e-04 +1175 1.1750000000e+01 -1.3934204810e-06 -1.9466108350e-04 +1176 1.1760000000e+01 4.1185956270e-07 -1.6850313820e-04 +1177 1.1770000000e+01 1.9449594820e-06 -1.3936779990e-04 +1178 1.1780000000e+01 3.1829692270e-06 -1.0873702930e-04 +1179 1.1790000000e+01 4.1170826780e-06 -7.7937096740e-05 +1180 1.1800000000e+01 4.7509787070e-06 -4.8134899120e-05 +1181 1.1810000000e+01 5.0991788260e-06 -2.0329557190e-05 +1182 1.1820000000e+01 5.1853377300e-06 4.6534024350e-06 +1183 1.1830000000e+01 5.0405482780e-06 2.6153287390e-05 +1184 1.1840000000e+01 4.7017245850e-06 4.3667703640e-05 +1185 1.1850000000e+01 4.2099998780e-06 5.6852853570e-05 +1186 1.1860000000e+01 3.6091206690e-06 6.5520030940e-05 +1187 1.1870000000e+01 2.9438377600e-06 6.8044387790e-05 +1188 1.1880000000e+01 2.2582945630e-06 6.8005776470e-05 +1189 1.1890000000e+01 1.5944132410e-06 6.5247449720e-05 +1190 1.1900000000e+01 9.9027914890e-07 5.7253374050e-05 +1191 1.1910000000e+01 4.7794482020e-07 4.6374107540e-05 +1192 1.1920000000e+01 7.9430367210e-08 3.3872879470e-05 +1193 1.1930000000e+01 -1.9586145530e-07 2.1091406450e-05 +1194 1.1940000000e+01 -3.5038203430e-07 9.1537875640e-06 +1195 1.1950000000e+01 -3.9696232700e-07 -9.8173844310e-07 +1196 1.1960000000e+01 -3.5733509120e-07 -8.5097413050e-06 +1197 1.1970000000e+01 -2.6065437280e-07 -1.1346751290e-05 +1198 1.1980000000e+01 -1.4201270800e-07 -1.1393547340e-05 +1199 1.1990000000e+01 -4.0956496040e-08 -8.7451546660e-06 +1200 1.2000000000e+01 0.0000000000e+00 -1.0906638080e-06 diff --git a/examples/PACKAGES/manybody_table/table_CG_CG_CG.txt b/examples/PACKAGES/manybody_table/table_CG_CG_CG.txt new file mode 100644 index 0000000000..d6d1c3e71e --- /dev/null +++ b/examples/PACKAGES/manybody_table/table_CG_CG_CG.txt @@ -0,0 +1,1004 @@ +VOTCA +N 1001 + +1 0.00000e+00 -6.5399880e+01 -1.4141539e+00 +2 1.80000e-01 -6.5145332e+01 -1.4141539e+00 +3 3.60000e-01 -6.4890785e+01 -1.4141539e+00 +4 5.40000e-01 -6.4636237e+01 -1.4141539e+00 +5 7.20000e-01 -6.4381689e+01 -1.4141539e+00 +6 9.00000e-01 -6.4127142e+01 -1.4141539e+00 +7 1.08000e+00 -6.3872594e+01 -1.4141539e+00 +8 1.26000e+00 -6.3618046e+01 -1.4141539e+00 +9 1.44000e+00 -6.3363498e+01 -1.4141539e+00 +10 1.62000e+00 -6.3108951e+01 -1.4141539e+00 +11 1.80000e+00 -6.2854403e+01 -1.4141539e+00 +12 1.98000e+00 -6.2599855e+01 -1.4141539e+00 +13 2.16000e+00 -6.2345308e+01 -1.4141539e+00 +14 2.34000e+00 -6.2090760e+01 -1.4141539e+00 +15 2.52000e+00 -6.1836212e+01 -1.4141539e+00 +16 2.70000e+00 -6.1581664e+01 -1.4141539e+00 +17 2.88000e+00 -6.1327117e+01 -1.4141539e+00 +18 3.06000e+00 -6.1072569e+01 -1.4141539e+00 +19 3.24000e+00 -6.0818021e+01 -1.4141539e+00 +20 3.42000e+00 -6.0563474e+01 -1.4141539e+00 +21 3.60000e+00 -6.0308926e+01 -1.4141539e+00 +22 3.78000e+00 -6.0054378e+01 -1.4141539e+00 +23 3.96000e+00 -5.9799831e+01 -1.4141539e+00 +24 4.14000e+00 -5.9545283e+01 -1.4141539e+00 +25 4.32000e+00 -5.9290735e+01 -1.4141539e+00 +26 4.50000e+00 -5.9036187e+01 -1.4141539e+00 +27 4.68000e+00 -5.8781640e+01 -1.4141539e+00 +28 4.86000e+00 -5.8527092e+01 -1.4141539e+00 +29 5.04000e+00 -5.8272544e+01 -1.4141539e+00 +30 5.22000e+00 -5.8017997e+01 -1.4141539e+00 +31 5.40000e+00 -5.7763449e+01 -1.4141539e+00 +32 5.58000e+00 -5.7508901e+01 -1.4141539e+00 +33 5.76000e+00 -5.7254354e+01 -1.4141539e+00 +34 5.94000e+00 -5.6999806e+01 -1.4141539e+00 +35 6.12000e+00 -5.6745258e+01 -1.4141539e+00 +36 6.30000e+00 -5.6490710e+01 -1.4141539e+00 +37 6.48000e+00 -5.6236163e+01 -1.4141539e+00 +38 6.66000e+00 -5.5981615e+01 -1.4141539e+00 +39 6.84000e+00 -5.5727067e+01 -1.4141539e+00 +40 7.02000e+00 -5.5472520e+01 -1.4141539e+00 +41 7.20000e+00 -5.5217972e+01 -1.4141539e+00 +42 7.38000e+00 -5.4963424e+01 -1.4141539e+00 +43 7.56000e+00 -5.4708876e+01 -1.4141539e+00 +44 7.74000e+00 -5.4454329e+01 -1.4141539e+00 +45 7.92000e+00 -5.4199781e+01 -1.4141539e+00 +46 8.10000e+00 -5.3945233e+01 -1.4141539e+00 +47 8.28000e+00 -5.3690686e+01 -1.4141539e+00 +48 8.46000e+00 -5.3436138e+01 -1.4141539e+00 +49 8.64000e+00 -5.3181590e+01 -1.4141539e+00 +50 8.82000e+00 -5.2927043e+01 -1.4141539e+00 +51 9.00000e+00 -5.2672495e+01 -1.4141539e+00 +52 9.18000e+00 -5.2417947e+01 -1.4141539e+00 +53 9.36000e+00 -5.2163399e+01 -1.4141539e+00 +54 9.54000e+00 -5.1908852e+01 -1.4141539e+00 +55 9.72000e+00 -5.1654304e+01 -1.4141539e+00 +56 9.90000e+00 -5.1399756e+01 -1.4141539e+00 +57 1.00800e+01 -5.1145209e+01 -1.4141539e+00 +58 1.02600e+01 -5.0890661e+01 -1.4141539e+00 +59 1.04400e+01 -5.0636113e+01 -1.4141539e+00 +60 1.06200e+01 -5.0381565e+01 -1.4141539e+00 +61 1.08000e+01 -5.0127018e+01 -1.4141539e+00 +62 1.09800e+01 -4.9872470e+01 -1.4141539e+00 +63 1.11600e+01 -4.9617922e+01 -1.4141539e+00 +64 1.13400e+01 -4.9363375e+01 -1.4141539e+00 +65 1.15200e+01 -4.9108827e+01 -1.4141539e+00 +66 1.17000e+01 -4.8854279e+01 -1.4141539e+00 +67 1.18800e+01 -4.8599732e+01 -1.4141539e+00 +68 1.20600e+01 -4.8345184e+01 -1.4141539e+00 +69 1.22400e+01 -4.8090636e+01 -1.4141539e+00 +70 1.24200e+01 -4.7836088e+01 -1.4141539e+00 +71 1.26000e+01 -4.7581541e+01 -1.4141539e+00 +72 1.27800e+01 -4.7326993e+01 -1.4141539e+00 +73 1.29600e+01 -4.7072445e+01 -1.4141539e+00 +74 1.31400e+01 -4.6817898e+01 -1.4141539e+00 +75 1.33200e+01 -4.6563350e+01 -1.4141539e+00 +76 1.35000e+01 -4.6308802e+01 -1.4141539e+00 +77 1.36800e+01 -4.6054255e+01 -1.4141539e+00 +78 1.38600e+01 -4.5799707e+01 -1.4141539e+00 +79 1.40400e+01 -4.5545159e+01 -1.4141539e+00 +80 1.42200e+01 -4.5290611e+01 -1.4141539e+00 +81 1.44000e+01 -4.5036064e+01 -1.4141539e+00 +82 1.45800e+01 -4.4781516e+01 -1.4141539e+00 +83 1.47600e+01 -4.4526968e+01 -1.4141539e+00 +84 1.49400e+01 -4.4272421e+01 -1.4141539e+00 +85 1.51200e+01 -4.4017873e+01 -1.4141539e+00 +86 1.53000e+01 -4.3763325e+01 -1.4141539e+00 +87 1.54800e+01 -4.3508777e+01 -1.4141539e+00 +88 1.56600e+01 -4.3254230e+01 -1.4141539e+00 +89 1.58400e+01 -4.2999682e+01 -1.4141539e+00 +90 1.60200e+01 -4.2745134e+01 -1.4141539e+00 +91 1.62000e+01 -4.2490587e+01 -1.4141539e+00 +92 1.63800e+01 -4.2236039e+01 -1.4141539e+00 +93 1.65600e+01 -4.1981491e+01 -1.4141539e+00 +94 1.67400e+01 -4.1726944e+01 -1.4141539e+00 +95 1.69200e+01 -4.1472396e+01 -1.4141539e+00 +96 1.71000e+01 -4.1217848e+01 -1.4141539e+00 +97 1.72800e+01 -4.0963300e+01 -1.4141539e+00 +98 1.74600e+01 -4.0708753e+01 -1.4141539e+00 +99 1.76400e+01 -4.0454205e+01 -1.4141539e+00 +100 1.78200e+01 -4.0199657e+01 -1.4141539e+00 +101 1.80000e+01 -3.9945110e+01 -1.4141539e+00 +102 1.81800e+01 -3.9690562e+01 -1.4141539e+00 +103 1.83600e+01 -3.9436014e+01 -1.4141539e+00 +104 1.85400e+01 -3.9181467e+01 -1.4141539e+00 +105 1.87200e+01 -3.8926919e+01 -1.4141539e+00 +106 1.89000e+01 -3.8672371e+01 -1.4141539e+00 +107 1.90800e+01 -3.8417823e+01 -1.4141539e+00 +108 1.92600e+01 -3.8163276e+01 -1.4141539e+00 +109 1.94400e+01 -3.7908728e+01 -1.4141539e+00 +110 1.96200e+01 -3.7654180e+01 -1.4141539e+00 +111 1.98000e+01 -3.7399633e+01 -1.4141539e+00 +112 1.99800e+01 -3.7145085e+01 -1.4141539e+00 +113 2.01600e+01 -3.6890537e+01 -1.4141539e+00 +114 2.03400e+01 -3.6635989e+01 -1.4141539e+00 +115 2.05200e+01 -3.6381442e+01 -1.4141539e+00 +116 2.07000e+01 -3.6126894e+01 -1.4141539e+00 +117 2.08800e+01 -3.5872346e+01 -1.4141539e+00 +118 2.10600e+01 -3.5617799e+01 -1.4141539e+00 +119 2.12400e+01 -3.5363251e+01 -1.4141539e+00 +120 2.14200e+01 -3.5108703e+01 -1.4141539e+00 +121 2.16000e+01 -3.4854156e+01 -1.4141539e+00 +122 2.17800e+01 -3.4599608e+01 -1.4141539e+00 +123 2.19600e+01 -3.4345060e+01 -1.4141539e+00 +124 2.21400e+01 -3.4090512e+01 -1.4141539e+00 +125 2.23200e+01 -3.3835965e+01 -1.4141539e+00 +126 2.25000e+01 -3.3581417e+01 -1.4141539e+00 +127 2.26800e+01 -3.3326869e+01 -1.4141539e+00 +128 2.28600e+01 -3.3072322e+01 -1.4141539e+00 +129 2.30400e+01 -3.2817774e+01 -1.4141539e+00 +130 2.32200e+01 -3.2563226e+01 -1.4141539e+00 +131 2.34000e+01 -3.2308679e+01 -1.4141539e+00 +132 2.35800e+01 -3.2054131e+01 -1.4141539e+00 +133 2.37600e+01 -3.1799583e+01 -1.4141539e+00 +134 2.39400e+01 -3.1545035e+01 -1.4141539e+00 +135 2.41200e+01 -3.1290488e+01 -1.4141539e+00 +136 2.43000e+01 -3.1035940e+01 -1.4141539e+00 +137 2.44800e+01 -3.0781392e+01 -1.4141539e+00 +138 2.46600e+01 -3.0526845e+01 -1.4141539e+00 +139 2.48400e+01 -3.0272297e+01 -1.4141539e+00 +140 2.50200e+01 -3.0017749e+01 -1.4141539e+00 +141 2.52000e+01 -2.9763201e+01 -1.4141539e+00 +142 2.53800e+01 -2.9508654e+01 -1.4141539e+00 +143 2.55600e+01 -2.9254106e+01 -1.4141539e+00 +144 2.57400e+01 -2.8999558e+01 -1.4141539e+00 +145 2.59200e+01 -2.8745011e+01 -1.4141539e+00 +146 2.61000e+01 -2.8490463e+01 -1.4141539e+00 +147 2.62800e+01 -2.8235915e+01 -1.4141539e+00 +148 2.64600e+01 -2.7981368e+01 -1.4141539e+00 +149 2.66400e+01 -2.7726820e+01 -1.4141539e+00 +150 2.68200e+01 -2.7472272e+01 -1.4141539e+00 +151 2.70000e+01 -2.7217724e+01 -1.4141539e+00 +152 2.71800e+01 -2.6963177e+01 -1.4141539e+00 +153 2.73600e+01 -2.6708629e+01 -1.4141539e+00 +154 2.75400e+01 -2.6454081e+01 -1.4141539e+00 +155 2.77200e+01 -2.6199534e+01 -1.4141539e+00 +156 2.79000e+01 -2.5944986e+01 -1.4141539e+00 +157 2.80800e+01 -2.5690438e+01 -1.4141539e+00 +158 2.82600e+01 -2.5435890e+01 -1.4141539e+00 +159 2.84400e+01 -2.5181343e+01 -1.4141539e+00 +160 2.86200e+01 -2.4926795e+01 -1.4141539e+00 +161 2.88000e+01 -2.4672247e+01 -1.4141539e+00 +162 2.89800e+01 -2.4417700e+01 -1.4141539e+00 +163 2.91600e+01 -2.4163152e+01 -1.4141539e+00 +164 2.93400e+01 -2.3908604e+01 -1.4141539e+00 +165 2.95200e+01 -2.3654057e+01 -1.4141539e+00 +166 2.97000e+01 -2.3399509e+01 -1.4141539e+00 +167 2.98800e+01 -2.3144961e+01 -1.4141539e+00 +168 3.00600e+01 -2.2890413e+01 -1.4141539e+00 +169 3.02400e+01 -2.2635866e+01 -1.4141539e+00 +170 3.04200e+01 -2.2381318e+01 -1.4141539e+00 +171 3.06000e+01 -2.2126770e+01 -1.4141539e+00 +172 3.07800e+01 -2.1872223e+01 -1.4141539e+00 +173 3.09600e+01 -2.1617675e+01 -1.4141539e+00 +174 3.11400e+01 -2.1363127e+01 -1.4141539e+00 +175 3.13200e+01 -2.1108580e+01 -1.4141539e+00 +176 3.15000e+01 -2.0854032e+01 -1.4141539e+00 +177 3.16800e+01 -2.0599484e+01 -1.4141539e+00 +178 3.18600e+01 -2.0344936e+01 -1.4141539e+00 +179 3.20400e+01 -2.0090389e+01 -1.4141539e+00 +180 3.22200e+01 -1.9835841e+01 -1.4141539e+00 +181 3.24000e+01 -1.9581293e+01 -1.4141539e+00 +182 3.25800e+01 -1.9326746e+01 -1.4141539e+00 +183 3.27600e+01 -1.9072198e+01 -1.4141539e+00 +184 3.29400e+01 -1.8817650e+01 -1.4141539e+00 +185 3.31200e+01 -1.8563102e+01 -1.4141539e+00 +186 3.33000e+01 -1.8308555e+01 -1.4141539e+00 +187 3.34800e+01 -1.8054007e+01 -1.4141539e+00 +188 3.36600e+01 -1.7799459e+01 -1.4141539e+00 +189 3.38400e+01 -1.7544912e+01 -1.4141539e+00 +190 3.40200e+01 -1.7290364e+01 -1.4141539e+00 +191 3.42000e+01 -1.7035816e+01 -1.4141539e+00 +192 3.43800e+01 -1.6781269e+01 -1.4141539e+00 +193 3.45600e+01 -1.6526721e+01 -1.4141539e+00 +194 3.47400e+01 -1.6272173e+01 -1.4141539e+00 +195 3.49200e+01 -1.6017625e+01 -1.4141539e+00 +196 3.51000e+01 -1.5763078e+01 -1.4141539e+00 +197 3.52800e+01 -1.5508530e+01 -1.4141539e+00 +198 3.54600e+01 -1.5253982e+01 -1.4141539e+00 +199 3.56400e+01 -1.4999435e+01 -1.4141539e+00 +200 3.58200e+01 -1.4744887e+01 -1.4141539e+00 +201 3.60000e+01 -1.4490339e+01 -1.4141539e+00 +202 3.61800e+01 -1.4235792e+01 -1.4141539e+00 +203 3.63600e+01 -1.3981244e+01 -1.4141539e+00 +204 3.65400e+01 -1.3726696e+01 -1.4141539e+00 +205 3.67200e+01 -1.3472148e+01 -1.4141539e+00 +206 3.69000e+01 -1.3217601e+01 -1.4141539e+00 +207 3.70800e+01 -1.2963053e+01 -1.4141539e+00 +208 3.72600e+01 -1.2708505e+01 -1.4141539e+00 +209 3.74400e+01 -1.2453958e+01 -1.4141539e+00 +210 3.76200e+01 -1.2199410e+01 -1.4141539e+00 +211 3.78000e+01 -1.1944862e+01 -1.4141539e+00 +212 3.79800e+01 -1.1690314e+01 -1.4141539e+00 +213 3.81600e+01 -1.1435767e+01 -1.4141539e+00 +214 3.83400e+01 -1.1181219e+01 -1.4141539e+00 +215 3.85200e+01 -1.0926671e+01 -1.4141539e+00 +216 3.87000e+01 -1.0672124e+01 -1.4141539e+00 +217 3.88800e+01 -1.0417576e+01 -1.4141539e+00 +218 3.90600e+01 -1.0163028e+01 -1.4141539e+00 +219 3.92400e+01 -9.9084806e+00 -1.4141539e+00 +220 3.94200e+01 -9.6539329e+00 -1.4141539e+00 +221 3.96000e+01 -9.3993852e+00 -1.4141539e+00 +222 3.97800e+01 -9.1448374e+00 -1.4141539e+00 +223 3.99600e+01 -8.8902897e+00 -1.4141539e+00 +224 4.01400e+01 -8.6357420e+00 -1.4141539e+00 +225 4.03200e+01 -8.3811943e+00 -1.4141539e+00 +226 4.05000e+01 -8.1266466e+00 -1.4141539e+00 +227 4.06800e+01 -7.8720989e+00 -1.4141539e+00 +228 4.08600e+01 -7.6175512e+00 -1.4141539e+00 +229 4.10400e+01 -7.3630035e+00 -1.4141539e+00 +230 4.12200e+01 -7.1084558e+00 -1.4141539e+00 +231 4.14000e+01 -6.8539081e+00 -1.4141539e+00 +232 4.15800e+01 -6.5993604e+00 -1.4141539e+00 +233 4.17600e+01 -6.3451123e+00 -1.4116569e+00 +234 4.19400e+01 -6.0913137e+00 -1.4087437e+00 +235 4.21200e+01 -5.8381144e+00 -1.4049982e+00 +236 4.23000e+01 -5.5856642e+00 -1.4004204e+00 +237 4.24800e+01 -5.3341129e+00 -1.3950102e+00 +238 4.26600e+01 -5.0836104e+00 -1.3887676e+00 +239 4.28400e+01 -4.8343064e+00 -1.3816928e+00 +240 4.30200e+01 -4.5863508e+00 -1.3737856e+00 +241 4.32000e+01 -4.3398934e+00 -1.3650460e+00 +242 4.33800e+01 -4.0950840e+00 -1.3554741e+00 +243 4.35600e+01 -3.8520725e+00 -1.3450699e+00 +244 4.37400e+01 -3.6110087e+00 -1.3338334e+00 +245 4.39200e+01 -3.3720423e+00 -1.3217645e+00 +246 4.41000e+01 -3.1353233e+00 -1.3088632e+00 +247 4.42800e+01 -2.9010014e+00 -1.2951297e+00 +248 4.44600e+01 -2.6692264e+00 -1.2805638e+00 +249 4.46400e+01 -2.4401483e+00 -1.2651655e+00 +250 4.48200e+01 -2.2139167e+00 -1.2489349e+00 +251 4.50000e+01 -1.9906815e+00 -1.2318720e+00 +252 4.51800e+01 -1.7705926e+00 -1.2139768e+00 +253 4.53600e+01 -1.5537997e+00 -1.1952492e+00 +254 4.55400e+01 -1.3404527e+00 -1.1756892e+00 +255 4.57200e+01 -1.1307014e+00 -1.1552970e+00 +256 4.59000e+01 -9.2469562e-01 -1.1340723e+00 +257 4.60800e+01 -7.2258518e-01 -1.1120154e+00 +258 4.62600e+01 -5.2451990e-01 -1.0891261e+00 +259 4.64400e+01 -3.3064960e-01 -1.0654045e+00 +260 4.66200e+01 -1.4112410e-01 -1.0408503e+00 +261 4.68000e+01 4.3906773e-02 -1.0153760e+00 +262 4.69800e+01 2.2429340e-01 -9.8902709e-01 +263 4.71600e+01 3.9995134e-01 -9.6270864e-01 +264 4.73400e+01 5.7095483e-01 -9.3709040e-01 +265 4.75200e+01 7.3740183e-01 -9.1204860e-01 +266 4.77000e+01 8.9939028e-01 -8.8755096e-01 +267 4.78800e+01 1.0570181e+00 -8.6359746e-01 +268 4.80600e+01 1.2103833e+00 -8.4018812e-01 +269 4.82400e+01 1.3595838e+00 -8.1732293e-01 +270 4.84200e+01 1.5047175e+00 -7.9500187e-01 +271 4.86000e+01 1.6458824e+00 -7.7322498e-01 +272 4.87800e+01 1.7831764e+00 -7.5199223e-01 +273 4.89600e+01 1.9166976e+00 -7.3130363e-01 +274 4.91400e+01 2.0465437e+00 -7.1115919e-01 +275 4.93200e+01 2.1728128e+00 -6.9155888e-01 +276 4.95000e+01 2.2956028e+00 -6.7250272e-01 +277 4.96800e+01 2.4150117e+00 -6.5399073e-01 +278 4.98600e+01 2.5311375e+00 -6.3602289e-01 +279 5.00400e+01 2.6440779e+00 -6.1859916e-01 +280 5.02200e+01 2.7539311e+00 -6.0171962e-01 +281 5.04000e+01 2.8607949e+00 -5.8538422e-01 +282 5.05800e+01 2.9647674e+00 -5.6959295e-01 +283 5.07600e+01 3.0659463e+00 -5.5434585e-01 +284 5.09400e+01 3.1644298e+00 -5.3964290e-01 +285 5.11200e+01 3.2603157e+00 -5.2548408e-01 +286 5.13000e+01 3.3537020e+00 -5.1186943e-01 +287 5.14800e+01 3.4446867e+00 -4.9879893e-01 +288 5.16600e+01 3.5333676e+00 -4.8627255e-01 +289 5.18400e+01 3.6198427e+00 -4.7429035e-01 +290 5.20200e+01 3.7042101e+00 -4.6285229e-01 +291 5.22000e+01 3.7865675e+00 -4.5195837e-01 +292 5.23800e+01 3.8670130e+00 -4.4161003e-01 +293 5.25600e+01 3.9456446e+00 -4.3188395e-01 +294 5.27400e+01 4.0225591e+00 -4.2265255e-01 +295 5.29200e+01 4.0977975e+00 -4.1334526e-01 +296 5.31000e+01 4.1713149e+00 -4.0364940e-01 +297 5.32800e+01 4.2430591e+00 -3.9365327e-01 +298 5.34600e+01 4.3129779e+00 -3.8336719e-01 +299 5.36400e+01 4.3810191e+00 -3.7279118e-01 +300 5.38200e+01 4.4471306e+00 -3.6192527e-01 +301 5.40000e+01 4.5112600e+00 -3.5076941e-01 +302 5.41800e+01 4.5733554e+00 -3.3932361e-01 +303 5.43600e+01 4.6333643e+00 -3.2758791e-01 +304 5.45400e+01 4.6912348e+00 -3.1556227e-01 +305 5.47200e+01 4.7469146e+00 -3.0324669e-01 +306 5.49000e+01 4.8003514e+00 -2.9064119e-01 +307 5.50800e+01 4.8514932e+00 -2.7774577e-01 +308 5.52600e+01 4.9002877e+00 -2.6456043e-01 +309 5.54400e+01 4.9466828e+00 -2.5108513e-01 +310 5.56200e+01 4.9906262e+00 -2.3731992e-01 +311 5.58000e+01 5.0320658e+00 -2.2326479e-01 +312 5.59800e+01 5.0709493e+00 -2.0891973e-01 +313 5.61600e+01 5.1072247e+00 -1.9428474e-01 +314 5.63400e+01 5.1408396e+00 -1.7935982e-01 +315 5.65200e+01 5.1717420e+00 -1.6414496e-01 +316 5.67000e+01 5.1998796e+00 -1.4864017e-01 +317 5.68800e+01 5.2252003e+00 -1.3284549e-01 +318 5.70600e+01 5.2476518e+00 -1.1676084e-01 +319 5.72400e+01 5.2671820e+00 -1.0038629e-01 +320 5.74200e+01 5.2837387e+00 -8.3721799e-02 +321 5.76000e+01 5.2972697e+00 -6.6767354e-02 +322 5.77800e+01 5.3077228e+00 -4.9523048e-02 +323 5.79600e+01 5.3150458e+00 -3.1988751e-02 +324 5.81400e+01 5.3191865e+00 -1.4158719e-02 +325 5.83200e+01 5.3200928e+00 4.0811116e-03 +326 5.85000e+01 5.3177168e+00 2.2451136e-02 +327 5.86800e+01 5.3121051e+00 4.0169275e-02 +328 5.88600e+01 5.3033977e+00 5.6973873e-02 +329 5.90400e+01 5.2917382e+00 7.2974824e-02 +330 5.92200e+01 5.2772705e+00 8.8177269e-02 +331 5.94000e+01 5.2601381e+00 1.0258120e-01 +332 5.95800e+01 5.2404850e+00 1.1618669e-01 +333 5.97600e+01 5.2184547e+00 1.2899368e-01 +334 5.99400e+01 5.1941910e+00 1.4100213e-01 +335 6.01200e+01 5.1678376e+00 1.5221210e-01 +336 6.03000e+01 5.1395383e+00 1.6262367e-01 +337 6.04800e+01 5.1094368e+00 1.7223669e-01 +338 6.06600e+01 5.0776769e+00 1.8105113e-01 +339 6.08400e+01 5.0444021e+00 1.8906726e-01 +340 6.10200e+01 5.0097564e+00 1.9628480e-01 +341 6.12000e+01 4.9738834e+00 2.0270376e-01 +342 6.13800e+01 4.9369268e+00 2.0832442e-01 +343 6.15600e+01 4.8990303e+00 2.1314649e-01 +344 6.17400e+01 4.8603377e+00 2.1717002e-01 +345 6.19200e+01 4.8209928e+00 2.2039510e-01 +346 6.21000e+01 4.7811392e+00 2.2282179e-01 +347 6.22800e+01 4.7409207e+00 2.2444986e-01 +348 6.24600e+01 4.7004810e+00 2.2499622e-01 +349 6.26400e+01 4.6599638e+00 2.2499623e-01 +350 6.28200e+01 4.6195129e+00 2.2454334e-01 +351 6.30000e+01 4.5792720e+00 2.2297736e-01 +352 6.31800e+01 4.5393848e+00 2.2061311e-01 +353 6.33600e+01 4.4999950e+00 2.1745030e-01 +354 6.35400e+01 4.4612464e+00 2.1348890e-01 +355 6.37200e+01 4.4232827e+00 2.0872912e-01 +356 6.39000e+01 4.3862476e+00 2.0316042e-01 +357 6.40800e+01 4.3502849e+00 1.9668922e-01 +358 6.42600e+01 4.3155297e+00 1.8964640e-01 +359 6.44400e+01 4.2820197e+00 1.8270549e-01 +360 6.46200e+01 4.2497320e+00 1.7598157e-01 +361 6.48000e+01 4.2186422e+00 1.6939308e-01 +362 6.49800e+01 4.1887263e+00 1.6293898e-01 +363 6.51600e+01 4.1599600e+00 1.5661902e-01 +364 6.53400e+01 4.1323193e+00 1.5043324e-01 +365 6.55200e+01 4.1057799e+00 1.4438173e-01 +366 6.57000e+01 4.0803177e+00 1.3846450e-01 +367 6.58800e+01 4.0559085e+00 1.3268145e-01 +368 6.60600e+01 4.0325282e+00 1.2703254e-01 +369 6.62400e+01 4.0101527e+00 1.2151800e-01 +370 6.64200e+01 3.9887576e+00 1.1613761e-01 +371 6.66000e+01 3.9683190e+00 1.1089139e-01 +372 6.67800e+01 3.9488125e+00 1.0577952e-01 +373 6.69600e+01 3.9302142e+00 1.0080180e-01 +374 6.71400e+01 3.9124997e+00 9.5958273e-02 +375 6.73200e+01 3.8956450e+00 9.1249023e-02 +376 6.75000e+01 3.8796259e+00 8.6674023e-02 +377 6.76800e+01 3.8644182e+00 8.2233193e-02 +378 6.78600e+01 3.8499978e+00 7.7926573e-02 +379 6.80400e+01 3.8363405e+00 7.3754253e-02 +380 6.82200e+01 3.8234221e+00 6.9716094e-02 +381 6.84000e+01 3.8112185e+00 6.5812157e-02 +382 6.85800e+01 3.7997056e+00 6.2042498e-02 +383 6.87600e+01 3.7888591e+00 5.8407027e-02 +384 6.89400e+01 3.7786549e+00 5.4905770e-02 +385 6.91200e+01 3.7690688e+00 5.1538755e-02 +386 6.93000e+01 3.7600768e+00 4.8305968e-02 +387 6.94800e+01 3.7516545e+00 4.5207408e-02 +388 6.96600e+01 3.7437780e+00 4.2240286e-02 +389 6.98400e+01 3.7364229e+00 3.9394893e-02 +390 7.00200e+01 3.7295632e+00 3.6725615e-02 +391 7.02000e+01 3.7231608e+00 3.4299208e-02 +392 7.03800e+01 3.7171724e+00 3.2118193e-02 +393 7.05600e+01 3.7115552e+00 3.0176466e-02 +394 7.07400e+01 3.7062658e+00 2.8474044e-02 +395 7.09200e+01 3.7012614e+00 2.7010954e-02 +396 7.11000e+01 3.6964988e+00 2.5787161e-02 +397 7.12800e+01 3.6919350e+00 2.4802661e-02 +398 7.14600e+01 3.6875268e+00 2.4057474e-02 +399 7.16400e+01 3.6832312e+00 2.3551614e-02 +400 7.18200e+01 3.6790051e+00 2.3359584e-02 +401 7.20000e+01 3.6748055e+00 2.3359584e-02 +402 7.21800e+01 3.6705893e+00 2.3469823e-02 +403 7.23600e+01 3.6663133e+00 2.3921155e-02 +404 7.25400e+01 3.6619346e+00 2.4611803e-02 +405 7.27200e+01 3.6574100e+00 2.5541761e-02 +406 7.29000e+01 3.6526965e+00 2.6711050e-02 +407 7.30800e+01 3.6477509e+00 2.8119632e-02 +408 7.32600e+01 3.6425303e+00 2.9767477e-02 +409 7.34400e+01 3.6369916e+00 3.1654688e-02 +410 7.36200e+01 3.6310916e+00 3.3781187e-02 +411 7.38000e+01 3.6247873e+00 3.6146962e-02 +412 7.39800e+01 3.6180356e+00 3.8752091e-02 +413 7.41600e+01 3.6107934e+00 4.1596510e-02 +414 7.43400e+01 3.6030178e+00 4.4680221e-02 +415 7.45200e+01 3.5946655e+00 4.8003226e-02 +416 7.47000e+01 3.5856935e+00 5.1565583e-02 +417 7.48800e+01 3.5760588e+00 5.5367233e-02 +418 7.50600e+01 3.5657182e+00 5.9408132e-02 +419 7.52400e+01 3.5546288e+00 6.3688423e-02 +420 7.54200e+01 3.5427473e+00 6.8223879e-02 +421 7.56000e+01 3.5300308e+00 7.3029965e-02 +422 7.57800e+01 3.5164482e+00 7.7880892e-02 +423 7.59600e+01 3.5020142e+00 8.2553868e-02 +424 7.61400e+01 3.4867546e+00 8.7068515e-02 +425 7.63200e+01 3.4706953e+00 9.1439765e-02 +426 7.65000e+01 3.4538621e+00 9.5667672e-02 +427 7.66800e+01 3.4362808e+00 9.9752176e-02 +428 7.68600e+01 3.4179771e+00 1.0369322e-01 +429 7.70400e+01 3.3989770e+00 1.0749097e-01 +430 7.72200e+01 3.3793062e+00 1.1114530e-01 +431 7.74000e+01 3.3589905e+00 1.1465616e-01 +432 7.75800e+01 3.3380558e+00 1.1802375e-01 +433 7.77600e+01 3.3165278e+00 1.2124790e-01 +434 7.79400e+01 3.2944323e+00 1.2432860e-01 +435 7.81200e+01 3.2717953e+00 1.2726596e-01 +436 7.83000e+01 3.2486424e+00 1.3005998e-01 +437 7.84800e+01 3.2249995e+00 1.3271057e-01 +438 7.86600e+01 3.2008924e+00 1.3521770e-01 +439 7.88400e+01 3.1763469e+00 1.3758155e-01 +440 7.90200e+01 3.1513889e+00 1.3980196e-01 +441 7.92000e+01 3.1260440e+00 1.4187893e-01 +442 7.93800e+01 3.1003383e+00 1.4381262e-01 +443 7.95600e+01 3.0742973e+00 1.4560284e-01 +444 7.97400e+01 3.0479470e+00 1.4724966e-01 +445 7.99200e+01 3.0213132e+00 1.4875311e-01 +446 8.01000e+01 2.9944217e+00 1.5011321e-01 +447 8.02800e+01 2.9672983e+00 1.5132989e-01 +448 8.04600e+01 2.9399688e+00 1.5240312e-01 +449 8.06400e+01 2.9124590e+00 1.5333308e-01 +450 8.08200e+01 2.8847947e+00 1.5411956e-01 +451 8.10000e+01 2.8570018e+00 1.5476259e-01 +452 8.11800e+01 2.8291059e+00 1.5525096e-01 +453 8.13600e+01 2.8011331e+00 1.5559419e-01 +454 8.15400e+01 2.7731025e+00 1.5588274e-01 +455 8.17200e+01 2.7450184e+00 1.5617122e-01 +456 8.19000e+01 2.7168829e+00 1.5645093e-01 +457 8.20800e+01 2.6886982e+00 1.5671895e-01 +458 8.22600e+01 2.6604662e+00 1.5697527e-01 +459 8.24400e+01 2.6321891e+00 1.5722007e-01 +460 8.26200e+01 2.6038691e+00 1.5745319e-01 +461 8.28000e+01 2.5755081e+00 1.5767458e-01 +462 8.29800e+01 2.5471083e+00 1.5788447e-01 +463 8.31600e+01 2.5186718e+00 1.5808266e-01 +464 8.33400e+01 2.4902007e+00 1.5826915e-01 +465 8.35200e+01 2.4616970e+00 1.5844407e-01 +466 8.37000e+01 2.4331629e+00 1.5860740e-01 +467 8.38800e+01 2.4046004e+00 1.5875902e-01 +468 8.40600e+01 2.3760117e+00 1.5889896e-01 +469 8.42400e+01 2.3473989e+00 1.5902738e-01 +470 8.44200e+01 2.3187640e+00 1.5914408e-01 +471 8.46000e+01 2.2901091e+00 1.5924910e-01 +472 8.47800e+01 2.2614364e+00 1.5934261e-01 +473 8.49600e+01 2.2327479e+00 1.5942440e-01 +474 8.51400e+01 2.2040457e+00 1.5949452e-01 +475 8.53200e+01 2.1753319e+00 1.5955304e-01 +476 8.55000e+01 2.1466087e+00 1.5959998e-01 +477 8.56800e+01 2.1178780e+00 1.5963520e-01 +478 8.58600e+01 2.0891421e+00 1.5965876e-01 +479 8.60400e+01 2.0604030e+00 1.5966658e-01 +480 8.62200e+01 2.0316627e+00 1.5966658e-01 +481 8.64000e+01 2.0029235e+00 1.5965974e-01 +482 8.65800e+01 1.9741873e+00 1.5963685e-01 +483 8.67600e+01 1.9454563e+00 1.5960227e-01 +484 8.69400e+01 1.9167326e+00 1.5955568e-01 +485 8.71200e+01 1.8880182e+00 1.5949769e-01 +486 8.73000e+01 1.8593151e+00 1.5943103e-01 +487 8.74800e+01 1.8306245e+00 1.5935722e-01 +488 8.76600e+01 1.8019478e+00 1.5927573e-01 +489 8.78400e+01 1.7732866e+00 1.5918672e-01 +490 8.80200e+01 1.7446420e+00 1.5908999e-01 +491 8.82000e+01 1.7160156e+00 1.5898553e-01 +492 8.83800e+01 1.6874086e+00 1.5887355e-01 +493 8.85600e+01 1.6588225e+00 1.5875385e-01 +494 8.87400e+01 1.6302586e+00 1.5862645e-01 +495 8.89200e+01 1.6017183e+00 1.5849144e-01 +496 8.91000e+01 1.5732030e+00 1.5834881e-01 +497 8.92800e+01 1.5447141e+00 1.5819849e-01 +498 8.94600e+01 1.5162530e+00 1.5804046e-01 +499 8.96400e+01 1.4878209e+00 1.5787488e-01 +500 8.98200e+01 1.4594194e+00 1.5770159e-01 +501 9.00000e+01 1.4310497e+00 1.5752059e-01 +502 9.01800e+01 1.4027133e+00 1.5733204e-01 +503 9.03600e+01 1.3744116e+00 1.5713579e-01 +504 9.05400e+01 1.3461458e+00 1.5693182e-01 +505 9.07200e+01 1.3179175e+00 1.5672026e-01 +506 9.09000e+01 1.2897279e+00 1.5650109e-01 +507 9.10800e+01 1.2615785e+00 1.5627421e-01 +508 9.12600e+01 1.2334706e+00 1.5603961e-01 +509 9.14400e+01 1.2054056e+00 1.5579748e-01 +510 9.16200e+01 1.1773849e+00 1.5554764e-01 +511 9.18000e+01 1.1494098e+00 1.5529008e-01 +512 9.19800e+01 1.1214818e+00 1.5502498e-01 +513 9.21600e+01 1.0936022e+00 1.5475216e-01 +514 9.23400e+01 1.0657724e+00 1.5447165e-01 +515 9.25200e+01 1.0379938e+00 1.5418356e-01 +516 9.27000e+01 1.0102677e+00 1.5388859e-01 +517 9.28800e+01 9.8259561e-01 1.5358487e-01 +518 9.30600e+01 9.5497945e-01 1.5326767e-01 +519 9.32400e+01 9.2742181e-01 1.5293549e-01 +520 9.34200e+01 8.9992526e-01 1.5258888e-01 +521 9.36000e+01 8.7249240e-01 1.5222786e-01 +522 9.37800e+01 8.4512580e-01 1.5185262e-01 +523 9.39600e+01 8.1782804e-01 1.5146298e-01 +524 9.41400e+01 7.9060172e-01 1.5105894e-01 +525 9.43200e+01 7.6344940e-01 1.5064060e-01 +526 9.45000e+01 7.3637368e-01 1.5020796e-01 +527 9.46800e+01 7.0937712e-01 1.4976094e-01 +528 9.48600e+01 6.8246233e-01 1.4929951e-01 +529 9.50400e+01 6.5563187e-01 1.4882385e-01 +530 9.52200e+01 6.2888833e-01 1.4833379e-01 +531 9.54000e+01 6.0223430e-01 1.4782932e-01 +532 9.55800e+01 5.7567235e-01 1.4731063e-01 +533 9.57600e+01 5.4920506e-01 1.4677753e-01 +534 9.59400e+01 5.2283502e-01 1.4623004e-01 +535 9.61200e+01 4.9656482e-01 1.4566826e-01 +536 9.63000e+01 4.7039703e-01 1.4509217e-01 +537 9.64800e+01 4.4433422e-01 1.4450170e-01 +538 9.66600e+01 4.1837900e-01 1.4389682e-01 +539 9.68400e+01 3.9253394e-01 1.4327771e-01 +540 9.70200e+01 3.6680161e-01 1.4264420e-01 +541 9.72000e+01 3.4118462e-01 1.4199628e-01 +542 9.73800e+01 3.1568553e-01 1.4133414e-01 +543 9.75600e+01 2.9030691e-01 1.4065759e-01 +544 9.77400e+01 2.6505138e-01 1.3996665e-01 +545 9.79200e+01 2.3992150e-01 1.3926142e-01 +546 9.81000e+01 2.1491985e-01 1.3854188e-01 +547 9.82800e+01 1.9004901e-01 1.3780795e-01 +548 9.84600e+01 1.6531157e-01 1.3705966e-01 +549 9.86400e+01 1.4071012e-01 1.3629706e-01 +550 9.88200e+01 1.1624725e-01 1.3551985e-01 +551 9.90000e+01 9.1925599e-02 1.3472800e-01 +552 9.91800e+01 6.7747784e-02 1.3392168e-01 +553 9.93600e+01 4.3716420e-02 1.3310075e-01 +554 9.95400e+01 1.9834143e-02 1.3226519e-01 +555 9.97200e+01 -3.8964316e-03 1.3141512e-01 +556 9.99000e+01 -2.7472680e-02 1.3055051e-01 +557 1.00080e+02 -5.0891989e-02 1.2967129e-01 +558 1.00260e+02 -7.4151719e-02 1.2877745e-01 +559 1.00440e+02 -9.7249257e-02 1.2786915e-01 +560 1.00620e+02 -1.2018199e-01 1.2694622e-01 +561 1.00800e+02 -1.4294727e-01 1.2600867e-01 +562 1.00980e+02 -1.6554249e-01 1.2505666e-01 +563 1.01160e+02 -1.8796504e-01 1.2409002e-01 +564 1.01340e+02 -2.1021227e-01 1.2310877e-01 +565 1.01520e+02 -2.3228158e-01 1.2211300e-01 +566 1.01700e+02 -2.5417034e-01 1.2110269e-01 +567 1.01880e+02 -2.7587592e-01 1.2007778e-01 +568 1.02060e+02 -2.9739571e-01 1.1903825e-01 +569 1.02240e+02 -3.1872708e-01 1.1798424e-01 +570 1.02420e+02 -3.3986741e-01 1.1691561e-01 +571 1.02600e+02 -3.6081407e-01 1.1583237e-01 +572 1.02780e+02 -3.8156445e-01 1.1473465e-01 +573 1.02960e+02 -4.0211592e-01 1.1362232e-01 +574 1.03140e+02 -4.2246586e-01 1.1249538e-01 +575 1.03320e+02 -4.4261164e-01 1.1135391e-01 +576 1.03500e+02 -4.6255064e-01 1.1019790e-01 +577 1.03680e+02 -4.8228026e-01 1.0902729e-01 +578 1.03860e+02 -5.0179784e-01 1.0784206e-01 +579 1.04040e+02 -5.2110078e-01 1.0664221e-01 +580 1.04220e+02 -5.4018647e-01 1.0542714e-01 +581 1.04400e+02 -5.5905236e-01 1.0419964e-01 +582 1.04580e+02 -5.7769659e-01 1.0296342e-01 +583 1.04760e+02 -5.9611756e-01 1.0171847e-01 +584 1.04940e+02 -6.1431362e-01 1.0046448e-01 +585 1.05120e+02 -6.3228315e-01 9.9201492e-02 +586 1.05300e+02 -6.5002453e-01 9.7929512e-02 +587 1.05480e+02 -6.6753615e-01 9.6648481e-02 +588 1.05660e+02 -6.8481636e-01 9.5358391e-02 +589 1.05840e+02 -7.0186355e-01 9.4059355e-02 +590 1.06020e+02 -7.1867610e-01 9.2751257e-02 +591 1.06200e+02 -7.3525238e-01 9.1434101e-02 +592 1.06380e+02 -7.5159076e-01 9.0107998e-02 +593 1.06560e+02 -7.6768963e-01 8.8772834e-02 +594 1.06740e+02 -7.8354735e-01 8.7428622e-02 +595 1.06920e+02 -7.9916231e-01 8.6075416e-02 +596 1.07100e+02 -8.1453288e-01 8.4713213e-02 +597 1.07280e+02 -8.2965744e-01 8.3341966e-02 +598 1.07460e+02 -8.4453436e-01 8.1961658e-02 +599 1.07640e+02 -8.5916202e-01 8.0572396e-02 +600 1.07820e+02 -8.7353880e-01 7.9174081e-02 +601 1.08000e+02 -8.8766306e-01 7.7766710e-02 +602 1.08180e+02 -9.0153319e-01 7.6350381e-02 +603 1.08360e+02 -9.1514757e-01 7.4924999e-02 +604 1.08540e+02 -9.2850457e-01 7.3490572e-02 +605 1.08720e+02 -9.4160256e-01 7.2047146e-02 +606 1.08900e+02 -9.5443992e-01 7.0594719e-02 +607 1.09080e+02 -9.6701503e-01 6.9133250e-02 +608 1.09260e+02 -9.7932626e-01 6.7662732e-02 +609 1.09440e+02 -9.9137199e-01 6.6183242e-02 +610 1.09620e+02 -1.0031506e+00 6.4694710e-02 +611 1.09800e+02 -1.0146605e+00 6.3196356e-02 +612 1.09980e+02 -1.0258999e+00 6.1687720e-02 +613 1.10160e+02 -1.0368680e+00 6.0178958e-02 +614 1.10340e+02 -1.0475656e+00 5.8679814e-02 +615 1.10520e+02 -1.0579942e+00 5.7189432e-02 +616 1.10700e+02 -1.0681552e+00 5.5707154e-02 +617 1.10880e+02 -1.0780502e+00 5.4232947e-02 +618 1.11060e+02 -1.0876806e+00 5.2766814e-02 +619 1.11240e+02 -1.0970477e+00 5.1308811e-02 +620 1.11420e+02 -1.1061532e+00 4.9858868e-02 +621 1.11600e+02 -1.1149984e+00 4.8417006e-02 +622 1.11780e+02 -1.1235848e+00 4.6983272e-02 +623 1.11960e+02 -1.1319138e+00 4.5557597e-02 +624 1.12140e+02 -1.1399870e+00 4.4140014e-02 +625 1.12320e+02 -1.1478057e+00 4.2730528e-02 +626 1.12500e+02 -1.1553714e+00 4.1329140e-02 +627 1.12680e+02 -1.1626856e+00 3.9935837e-02 +628 1.12860e+02 -1.1697498e+00 3.8550600e-02 +629 1.13040e+02 -1.1765653e+00 3.7173492e-02 +630 1.13220e+02 -1.1831337e+00 3.5804457e-02 +631 1.13400e+02 -1.1894564e+00 3.4443490e-02 +632 1.13580e+02 -1.1955348e+00 3.3090646e-02 +633 1.13760e+02 -1.2013704e+00 3.1745881e-02 +634 1.13940e+02 -1.2069648e+00 3.0409192e-02 +635 1.14120e+02 -1.2123192e+00 2.9080603e-02 +636 1.14300e+02 -1.2174352e+00 2.7760113e-02 +637 1.14480e+02 -1.2223143e+00 2.6447704e-02 +638 1.14660e+02 -1.2269579e+00 2.5143376e-02 +639 1.14840e+02 -1.2313674e+00 2.3847157e-02 +640 1.15020e+02 -1.2355443e+00 2.2559018e-02 +641 1.15200e+02 -1.2394901e+00 2.1278961e-02 +642 1.15380e+02 -1.2432062e+00 2.0007004e-02 +643 1.15560e+02 -1.2466941e+00 1.8742761e-02 +644 1.15740e+02 -1.2499552e+00 1.7486524e-02 +645 1.15920e+02 -1.2529912e+00 1.6241800e-02 +646 1.16100e+02 -1.2558046e+00 1.5011056e-02 +647 1.16280e+02 -1.2583976e+00 1.3793797e-02 +648 1.16460e+02 -1.2607728e+00 1.2589897e-02 +649 1.16640e+02 -1.2629324e+00 1.1399383e-02 +650 1.16820e+02 -1.2648789e+00 1.0222240e-02 +651 1.17000e+02 -1.2666148e+00 9.0584625e-03 +652 1.17180e+02 -1.2681424e+00 7.9080625e-03 +653 1.17360e+02 -1.2694641e+00 6.7710417e-03 +654 1.17540e+02 -1.2705824e+00 5.6473791e-03 +655 1.17720e+02 -1.2714996e+00 4.5370973e-03 +656 1.17900e+02 -1.2722181e+00 3.4401860e-03 +657 1.18080e+02 -1.2727405e+00 2.3566459e-03 +658 1.18260e+02 -1.2730689e+00 1.2864861e-03 +659 1.18440e+02 -1.2732060e+00 2.2968470e-04 +660 1.18620e+02 -1.2731540e+00 -8.1373748e-04 +661 1.18800e+02 -1.2729155e+00 -1.8437819e-03 +662 1.18980e+02 -1.2724927e+00 -2.8604626e-03 +663 1.19160e+02 -1.2718881e+00 -3.8637638e-03 +664 1.19340e+02 -1.2711041e+00 -4.8536931e-03 +665 1.19520e+02 -1.2701432e+00 -5.8302555e-03 +666 1.19700e+02 -1.2690076e+00 -6.7934459e-03 +667 1.19880e+02 -1.2676999e+00 -7.7432583e-03 +668 1.20060e+02 -1.2662225e+00 -8.6796987e-03 +669 1.20240e+02 -1.2645777e+00 -9.6027750e-03 +670 1.20420e+02 -1.2627679e+00 -1.0512465e-02 +671 1.20600e+02 -1.2607956e+00 -1.1408790e-02 +672 1.20780e+02 -1.2586631e+00 -1.2291749e-02 +673 1.20960e+02 -1.2563730e+00 -1.3161329e-02 +674 1.21140e+02 -1.2539275e+00 -1.4017525e-02 +675 1.21320e+02 -1.2513290e+00 -1.4859989e-02 +676 1.21500e+02 -1.2485801e+00 -1.5689347e-02 +677 1.21680e+02 -1.2456828e+00 -1.6508237e-02 +678 1.21860e+02 -1.2426389e+00 -1.7317985e-02 +679 1.22040e+02 -1.2394501e+00 -1.8118197e-02 +680 1.22220e+02 -1.2361181e+00 -1.8908812e-02 +681 1.22400e+02 -1.2326446e+00 -1.9689850e-02 +682 1.22580e+02 -1.2290315e+00 -2.0461318e-02 +683 1.22760e+02 -1.2252803e+00 -2.1223183e-02 +684 1.22940e+02 -1.2213928e+00 -2.1975467e-02 +685 1.23120e+02 -1.2173708e+00 -2.2718178e-02 +686 1.23300e+02 -1.2132160e+00 -2.3451304e-02 +687 1.23480e+02 -1.2089301e+00 -2.4174843e-02 +688 1.23660e+02 -1.2045148e+00 -2.4888790e-02 +689 1.23840e+02 -1.1999719e+00 -2.5593175e-02 +690 1.24020e+02 -1.1953030e+00 -2.6287964e-02 +691 1.24200e+02 -1.1905099e+00 -2.6973156e-02 +692 1.24380e+02 -1.1855944e+00 -2.7648792e-02 +693 1.24560e+02 -1.1805581e+00 -2.8314829e-02 +694 1.24740e+02 -1.1754028e+00 -2.8971279e-02 +695 1.24920e+02 -1.1701301e+00 -2.9618151e-02 +696 1.25100e+02 -1.1647419e+00 -3.0255446e-02 +697 1.25280e+02 -1.1592399e+00 -3.0883151e-02 +698 1.25460e+02 -1.1536257e+00 -3.1501265e-02 +699 1.25640e+02 -1.1479012e+00 -3.2109817e-02 +700 1.25820e+02 -1.1420679e+00 -3.2708771e-02 +701 1.26000e+02 -1.1361277e+00 -3.3298135e-02 +702 1.26180e+02 -1.1300823e+00 -3.3877938e-02 +703 1.26360e+02 -1.1239334e+00 -3.4448137e-02 +704 1.26540e+02 -1.1176827e+00 -3.5008750e-02 +705 1.26720e+02 -1.1113320e+00 -3.5559787e-02 +706 1.26900e+02 -1.1048829e+00 -3.6101243e-02 +707 1.27080e+02 -1.0983373e+00 -3.6632801e-02 +708 1.27260e+02 -1.0916967e+00 -3.7155198e-02 +709 1.27440e+02 -1.0849627e+00 -3.7670333e-02 +710 1.27620e+02 -1.0781366e+00 -3.8178730e-02 +711 1.27800e+02 -1.0712197e+00 -3.8680133e-02 +712 1.27980e+02 -1.0642131e+00 -3.9174585e-02 +713 1.28160e+02 -1.0571181e+00 -3.9662035e-02 +714 1.28340e+02 -1.0499360e+00 -4.0142489e-02 +715 1.28520e+02 -1.0426680e+00 -4.0615960e-02 +716 1.28700e+02 -1.0353155e+00 -4.1082470e-02 +717 1.28880e+02 -1.0278796e+00 -4.1541976e-02 +718 1.29060e+02 -1.0203616e+00 -4.1994469e-02 +719 1.29240e+02 -1.0127628e+00 -4.2440025e-02 +720 1.29420e+02 -1.0050845e+00 -4.2878573e-02 +721 1.29600e+02 -9.9732782e-01 -4.3310116e-02 +722 1.29780e+02 -9.8949410e-01 -4.3734706e-02 +723 1.29960e+02 -9.8158458e-01 -4.4152294e-02 +724 1.30140e+02 -9.7360053e-01 -4.4562883e-02 +725 1.30320e+02 -9.6554320e-01 -4.4966498e-02 +726 1.30500e+02 -9.5741385e-01 -4.5363141e-02 +727 1.30680e+02 -9.4921373e-01 -4.5752786e-02 +728 1.30860e+02 -9.4094411e-01 -4.6135424e-02 +729 1.31040e+02 -9.3260623e-01 -4.6511114e-02 +730 1.31220e+02 -9.2420136e-01 -4.6879800e-02 +731 1.31400e+02 -9.1573076e-01 -4.7241480e-02 +732 1.31580e+02 -9.0719569e-01 -4.7596212e-02 +733 1.31760e+02 -8.9859739e-01 -4.7943937e-02 +734 1.31940e+02 -8.8993713e-01 -4.8284663e-02 +735 1.32120e+02 -8.8121616e-01 -4.8618417e-02 +736 1.32300e+02 -8.7243575e-01 -4.8945202e-02 +737 1.32480e+02 -8.6359715e-01 -4.9264982e-02 +738 1.32660e+02 -8.5470162e-01 -4.9577706e-02 +739 1.32840e+02 -8.4575041e-01 -4.9883053e-02 +740 1.33020e+02 -8.3674475e-01 -5.0182410e-02 +741 1.33200e+02 -8.2768547e-01 -5.0478215e-02 +742 1.33380e+02 -8.1857321e-01 -5.0770926e-02 +743 1.33560e+02 -8.0940856e-01 -5.1060192e-02 +744 1.33740e+02 -8.0019216e-01 -5.1346014e-02 +745 1.33920e+02 -7.9092461e-01 -5.1628425e-02 +746 1.34100e+02 -7.8160654e-01 -5.1907427e-02 +747 1.34280e+02 -7.7223855e-01 -5.2182981e-02 +748 1.34460e+02 -7.6282128e-01 -5.2455089e-02 +749 1.34640e+02 -7.5335534e-01 -5.2723810e-02 +750 1.34820e+02 -7.4384133e-01 -5.2989081e-02 +751 1.35000e+02 -7.3427989e-01 -5.3250905e-02 +752 1.35180e+02 -7.2467162e-01 -5.3509343e-02 +753 1.35360e+02 -7.1501714e-01 -5.3764332e-02 +754 1.35540e+02 -7.0531708e-01 -5.4015876e-02 +755 1.35720e+02 -6.9557204e-01 -5.4264010e-02 +756 1.35900e+02 -6.8578265e-01 -5.4508734e-02 +757 1.36080e+02 -6.7594952e-01 -5.4750010e-02 +758 1.36260e+02 -6.6607326e-01 -5.4987839e-02 +759 1.36440e+02 -6.5615451e-01 -5.5222284e-02 +760 1.36620e+02 -6.4619386e-01 -5.5453277e-02 +761 1.36800e+02 -6.3619195e-01 -5.5680823e-02 +762 1.36980e+02 -6.2614938e-01 -5.5904985e-02 +763 1.37160e+02 -6.1606677e-01 -5.6125695e-02 +764 1.37340e+02 -6.0594475e-01 -5.6342960e-02 +765 1.37520e+02 -5.9578392e-01 -5.6556816e-02 +766 1.37700e+02 -5.8558491e-01 -5.6767263e-02 +767 1.37880e+02 -5.7534832e-01 -5.6974263e-02 +768 1.38060e+02 -5.6507479e-01 -5.7177812e-02 +769 1.38240e+02 -5.5476492e-01 -5.7377979e-02 +770 1.38420e+02 -5.4441934e-01 -5.7574527e-02 +771 1.38600e+02 -5.3403865e-01 -5.7766980e-02 +772 1.38780e+02 -5.2362336e-01 -5.7958495e-02 +773 1.38960e+02 -5.1317326e-01 -5.8152824e-02 +774 1.39140e+02 -5.0268788e-01 -5.8350080e-02 +775 1.39320e+02 -4.9216677e-01 -5.8549940e-02 +776 1.39500e+02 -4.8160944e-01 -5.8752403e-02 +777 1.39680e+02 -4.7101544e-01 -5.8957432e-02 +778 1.39860e+02 -4.6038430e-01 -5.9165021e-02 +779 1.40040e+02 -4.4971556e-01 -5.9375242e-02 +780 1.40220e+02 -4.3900875e-01 -5.9588024e-02 +781 1.40400e+02 -4.2826341e-01 -5.9803368e-02 +782 1.40580e+02 -4.1747907e-01 -6.0021345e-02 +783 1.40760e+02 -4.0665526e-01 -6.0241883e-02 +784 1.40940e+02 -3.9579153e-01 -6.0464983e-02 +785 1.41120e+02 -3.8488740e-01 -6.0690690e-02 +786 1.41300e+02 -3.7394241e-01 -6.0919001e-02 +787 1.41480e+02 -3.6295610e-01 -6.1149876e-02 +788 1.41660e+02 -3.5192799e-01 -6.1383312e-02 +789 1.41840e+02 -3.4085763e-01 -6.1619382e-02 +790 1.42020e+02 -3.2974455e-01 -6.1858011e-02 +791 1.42200e+02 -3.1858829e-01 -6.2099201e-02 +792 1.42380e+02 -3.0738837e-01 -6.2343025e-02 +793 1.42560e+02 -2.9614433e-01 -6.2589409e-02 +794 1.42740e+02 -2.8485572e-01 -6.2838357e-02 +795 1.42920e+02 -2.7352206e-01 -6.3089911e-02 +796 1.43100e+02 -2.6214288e-01 -6.3344069e-02 +797 1.43280e+02 -2.5071773e-01 -6.3600791e-02 +798 1.43460e+02 -2.3924614e-01 -6.3860073e-02 +799 1.43640e+02 -2.2772763e-01 -6.4121991e-02 +800 1.43820e+02 -2.1616176e-01 -6.4386468e-02 +801 1.44000e+02 -2.0454804e-01 -6.4653504e-02 +802 1.44180e+02 -1.9288603e-01 -6.4923496e-02 +803 1.44360e+02 -1.8117524e-01 -6.5196551e-02 +804 1.44540e+02 -1.6941545e-01 -6.5468516e-02 +805 1.44720e+02 -1.5760725e-01 -6.5735587e-02 +806 1.44900e+02 -1.4575140e-01 -6.5998160e-02 +807 1.45080e+02 -1.3384868e-01 -6.6256440e-02 +808 1.45260e+02 -1.2189986e-01 -6.6510420e-02 +809 1.45440e+02 -1.0990570e-01 -6.6760180e-02 +810 1.45620e+02 -9.7866964e-02 -6.7005641e-02 +811 1.45800e+02 -8.5784437e-02 -6.7246802e-02 +812 1.45980e+02 -7.3658880e-02 -6.7483745e-02 +813 1.46160e+02 -6.1491060e-02 -6.7716387e-02 +814 1.46340e+02 -4.9281752e-02 -6.7944735e-02 +815 1.46520e+02 -3.7031722e-02 -6.8168832e-02 +816 1.46700e+02 -2.4741740e-02 -6.8388679e-02 +817 1.46880e+02 -1.2412569e-02 -6.8604230e-02 +818 1.47060e+02 -4.4987875e-05 -6.8815481e-02 +819 1.47240e+02 1.2360239e-02 -6.9022515e-02 +820 1.47420e+02 2.4802346e-02 -6.9225248e-02 +821 1.47600e+02 3.7280557e-02 -6.9423681e-02 +822 1.47780e+02 4.9794106e-02 -6.9617897e-02 +823 1.47960e+02 6.2342229e-02 -6.9807811e-02 +824 1.48140e+02 7.4924147e-02 -6.9993431e-02 +825 1.48320e+02 8.7539097e-02 -7.0174801e-02 +826 1.48500e+02 1.0018631e-01 -7.0351921e-02 +827 1.48680e+02 1.1286502e-01 -7.0524744e-02 +828 1.48860e+02 1.2557445e-01 -7.0693267e-02 +829 1.49040e+02 1.3831383e-01 -7.0857574e-02 +830 1.49220e+02 1.5108240e-01 -7.1017579e-02 +831 1.49400e+02 1.6387939e-01 -7.1173284e-02 +832 1.49580e+02 1.7670402e-01 -7.1324773e-02 +833 1.49760e+02 1.8955553e-01 -7.1471958e-02 +834 1.49940e+02 2.0243315e-01 -7.1614594e-02 +835 1.50120e+02 2.1533611e-01 -7.1752951e-02 +836 1.50300e+02 2.2826383e-01 -7.1889340e-02 +837 1.50480e+02 2.4121610e-01 -7.2025285e-02 +838 1.50660e+02 2.5419278e-01 -7.2160459e-02 +839 1.50840e+02 2.6719372e-01 -7.2294879e-02 +840 1.51020e+02 2.8021879e-01 -7.2428454e-02 +841 1.51200e+02 2.9326782e-01 -7.2561187e-02 +842 1.51380e+02 3.0634067e-01 -7.2693167e-02 +843 1.51560e+02 3.1943721e-01 -7.2824303e-02 +844 1.51740e+02 3.3255727e-01 -7.2954601e-02 +845 1.51920e+02 3.4570072e-01 -7.3084110e-02 +846 1.52100e+02 3.5886741e-01 -7.3212830e-02 +847 1.52280e+02 3.7205719e-01 -7.3340712e-02 +848 1.52460e+02 3.8526992e-01 -7.3467752e-02 +849 1.52640e+02 3.9850544e-01 -7.3594039e-02 +850 1.52820e+02 4.1176362e-01 -7.3719479e-02 +851 1.53000e+02 4.2504431e-01 -7.3844079e-02 +852 1.53180e+02 4.3834735e-01 -7.3967925e-02 +853 1.53360e+02 4.5167261e-01 -7.4090928e-02 +854 1.53540e+02 4.6501994e-01 -7.4213093e-02 +855 1.53720e+02 4.7838918e-01 -7.4334469e-02 +856 1.53900e+02 4.9178020e-01 -7.4455055e-02 +857 1.54080e+02 5.0519285e-01 -7.4574803e-02 +858 1.54260e+02 5.1862698e-01 -7.4693709e-02 +859 1.54440e+02 5.3208244e-01 -7.4811861e-02 +860 1.54620e+02 5.4555910e-01 -7.4929171e-02 +861 1.54800e+02 5.5905680e-01 -7.5045636e-02 +862 1.54980e+02 5.7257539e-01 -7.5161348e-02 +863 1.55160e+02 5.8611473e-01 -7.5276217e-02 +864 1.55340e+02 5.9967468e-01 -7.5390248e-02 +865 1.55520e+02 6.1325508e-01 -7.5503508e-02 +866 1.55700e+02 6.2685579e-01 -7.5616730e-02 +867 1.55880e+02 6.4047666e-01 -7.5728565e-02 +868 1.56060e+02 6.5411696e-01 -7.5833518e-02 +869 1.56240e+02 6.6777523e-01 -7.5929200e-02 +870 1.56420e+02 6.8144994e-01 -7.6016303e-02 +871 1.56600e+02 6.9513957e-01 -7.6094907e-02 +872 1.56780e+02 7.0884259e-01 -7.6165093e-02 +873 1.56960e+02 7.2255747e-01 -7.6226769e-02 +874 1.57140e+02 7.3628270e-01 -7.6279953e-02 +875 1.57320e+02 7.5001673e-01 -7.6324680e-02 +876 1.57500e+02 7.6375806e-01 -7.6360964e-02 +877 1.57680e+02 7.7750515e-01 -7.6388730e-02 +878 1.57860e+02 7.9125648e-01 -7.6408009e-02 +879 1.58040e+02 8.0501051e-01 -7.6417185e-02 +880 1.58220e+02 8.1876574e-01 -7.6417185e-02 +881 1.58400e+02 8.3252062e-01 -7.6415064e-02 +882 1.58580e+02 8.4627364e-01 -7.6400486e-02 +883 1.58760e+02 8.6002327e-01 -7.6377423e-02 +884 1.58940e+02 8.7376799e-01 -7.6345843e-02 +885 1.59120e+02 8.8750625e-01 -7.6305819e-02 +886 1.59300e+02 9.0123656e-01 -7.6257337e-02 +887 1.59480e+02 9.1495737e-01 -7.6200364e-02 +888 1.59660e+02 9.2866716e-01 -7.6134879e-02 +889 1.59840e+02 9.4236440e-01 -7.6060980e-02 +890 1.60020e+02 9.5604758e-01 -7.5978581e-02 +891 1.60200e+02 9.6971516e-01 -7.5887668e-02 +892 1.60380e+02 9.8336562e-01 -7.5788342e-02 +893 1.60560e+02 9.9699744e-01 -7.5680516e-02 +894 1.60740e+02 1.0106091e+00 -7.5564182e-02 +895 1.60920e+02 1.0241990e+00 -7.5439401e-02 +896 1.61100e+02 1.0377657e+00 -7.5306167e-02 +897 1.61280e+02 1.0513077e+00 -7.5164450e-02 +898 1.61460e+02 1.0648234e+00 -7.5014389e-02 +899 1.61640e+02 1.0783113e+00 -7.4855639e-02 +900 1.61820e+02 1.0917697e+00 -7.4687031e-02 +901 1.62000e+02 1.1051968e+00 -7.4508182e-02 +902 1.62180e+02 1.1185908e+00 -7.4319356e-02 +903 1.62360e+02 1.1319500e+00 -7.4120465e-02 +904 1.62540e+02 1.1452724e+00 -7.3911513e-02 +905 1.62720e+02 1.1585563e+00 -7.3692566e-02 +906 1.62900e+02 1.1717999e+00 -7.3463595e-02 +907 1.63080e+02 1.1850014e+00 -7.3224578e-02 +908 1.63260e+02 1.1981590e+00 -7.2975497e-02 +909 1.63440e+02 1.2112708e+00 -7.2716437e-02 +910 1.63620e+02 1.2243351e+00 -7.2447323e-02 +911 1.63800e+02 1.2373500e+00 -7.2168144e-02 +912 1.63980e+02 1.2503138e+00 -7.1878988e-02 +913 1.64160e+02 1.2632246e+00 -7.1579771e-02 +914 1.64340e+02 1.2760807e+00 -7.1270501e-02 +915 1.64520e+02 1.2888802e+00 -7.0951227e-02 +916 1.64700e+02 1.3016214e+00 -7.0621933e-02 +917 1.64880e+02 1.3143023e+00 -7.0282585e-02 +918 1.65060e+02 1.3269213e+00 -6.9933179e-02 +919 1.65240e+02 1.3394765e+00 -6.9573801e-02 +920 1.65420e+02 1.3519660e+00 -6.9204355e-02 +921 1.65600e+02 1.3643882e+00 -6.8824851e-02 +922 1.65780e+02 1.3767412e+00 -6.8435377e-02 +923 1.65960e+02 1.3890231e+00 -6.8035828e-02 +924 1.66140e+02 1.4012323e+00 -6.7626234e-02 +925 1.66320e+02 1.4133668e+00 -6.7206635e-02 +926 1.66500e+02 1.4254249e+00 -6.6777016e-02 +927 1.66680e+02 1.4374047e+00 -6.6337343e-02 +928 1.66860e+02 1.4493045e+00 -6.5887612e-02 +929 1.67040e+02 1.4611224e+00 -6.5428144e-02 +930 1.67220e+02 1.4728567e+00 -6.4960391e-02 +931 1.67400e+02 1.4845054e+00 -6.4478113e-02 +932 1.67580e+02 1.4960648e+00 -6.3970704e-02 +933 1.67760e+02 1.5075302e+00 -6.3436333e-02 +934 1.67940e+02 1.5188972e+00 -6.2876336e-02 +935 1.68120e+02 1.5301611e+00 -6.2290756e-02 +936 1.68300e+02 1.5413173e+00 -6.1679602e-02 +937 1.68480e+02 1.5523612e+00 -6.1042848e-02 +938 1.68660e+02 1.5632881e+00 -6.0380457e-02 +939 1.68840e+02 1.5740935e+00 -5.9692522e-02 +940 1.69020e+02 1.5847728e+00 -5.8978977e-02 +941 1.69200e+02 1.5953213e+00 -5.8239815e-02 +942 1.69380e+02 1.6057345e+00 -5.7475096e-02 +943 1.69560e+02 1.6160078e+00 -5.6684763e-02 +944 1.69740e+02 1.6261364e+00 -5.5868818e-02 +945 1.69920e+02 1.6361159e+00 -5.5027296e-02 +946 1.70100e+02 1.6459417e+00 -5.4160196e-02 +947 1.70280e+02 1.6556090e+00 -5.3267485e-02 +948 1.70460e+02 1.6651133e+00 -5.2349160e-02 +949 1.70640e+02 1.6744501e+00 -5.1405275e-02 +950 1.70820e+02 1.6836146e+00 -5.0435782e-02 +951 1.71000e+02 1.6926024e+00 -4.9440674e-02 +952 1.71180e+02 1.7014087e+00 -4.8420007e-02 +953 1.71360e+02 1.7100290e+00 -4.7373725e-02 +954 1.71540e+02 1.7184586e+00 -4.6301837e-02 +955 1.71720e+02 1.7266930e+00 -4.5204374e-02 +956 1.71900e+02 1.7347276e+00 -4.4081319e-02 +957 1.72080e+02 1.7425577e+00 -4.2932661e-02 +958 1.72260e+02 1.7501787e+00 -4.1758394e-02 +959 1.72440e+02 1.7575861e+00 -4.0558562e-02 +960 1.72620e+02 1.7647752e+00 -3.9333116e-02 +961 1.72800e+02 1.7717414e+00 -3.8080384e-02 +962 1.72980e+02 1.7784801e+00 -3.6795821e-02 +963 1.73160e+02 1.7849880e+00 -3.5510058e-02 +964 1.73340e+02 1.7912686e+00 -3.4260553e-02 +965 1.73520e+02 1.7973278e+00 -3.3047568e-02 +966 1.73700e+02 1.8031717e+00 -3.1867827e-02 +967 1.73880e+02 1.8088062e+00 -3.0721315e-02 +968 1.74060e+02 1.8142373e+00 -2.9608017e-02 +969 1.74240e+02 1.8194711e+00 -2.8527982e-02 +970 1.74420e+02 1.8245134e+00 -2.7481161e-02 +971 1.74600e+02 1.8293703e+00 -2.6467563e-02 +972 1.74780e+02 1.8340477e+00 -2.5487220e-02 +973 1.74960e+02 1.8385516e+00 -2.4540096e-02 +974 1.75140e+02 1.8428881e+00 -2.3626201e-02 +975 1.75320e+02 1.8470630e+00 -2.2745547e-02 +976 1.75500e+02 1.8510825e+00 -2.1898128e-02 +977 1.75680e+02 1.8549524e+00 -2.1083930e-02 +978 1.75860e+02 1.8586787e+00 -2.0302968e-02 +979 1.76040e+02 1.8622674e+00 -1.9555246e-02 +980 1.76220e+02 1.8657245e+00 -1.8840753e-02 +981 1.76400e+02 1.8690561e+00 -1.8159482e-02 +982 1.76580e+02 1.8722679e+00 -1.7511452e-02 +983 1.76760e+02 1.8753662e+00 -1.6896662e-02 +984 1.76940e+02 1.8783567e+00 -1.6315089e-02 +985 1.77120e+02 1.8812456e+00 -1.5766750e-02 +986 1.77300e+02 1.8840387e+00 -1.5251659e-02 +987 1.77480e+02 1.8867422e+00 -1.4769787e-02 +988 1.77660e+02 1.8893618e+00 -1.4321146e-02 +989 1.77840e+02 1.8919037e+00 -1.3905746e-02 +990 1.78020e+02 1.8943739e+00 -1.3523574e-02 +991 1.78200e+02 1.8967782e+00 -1.3174629e-02 +992 1.78380e+02 1.8991227e+00 -1.2858927e-02 +993 1.78560e+02 1.9014134e+00 -1.2576451e-02 +994 1.78740e+02 1.9036562e+00 -1.2327206e-02 +995 1.78920e+02 1.9058572e+00 -1.2111194e-02 +996 1.79100e+02 1.9080222e+00 -1.1928418e-02 +997 1.79280e+02 1.9101574e+00 -1.1778874e-02 +998 1.79460e+02 1.9122686e+00 -1.1662552e-02 +999 1.79640e+02 1.9143619e+00 -1.1579483e-02 +1000 1.79820e+02 1.9164432e+00 -1.1540710e-02 +1001 1.80000e+02 1.9185186e+00 -1.1513008e-02 diff --git a/examples/PACKAGES/pace/in.pace.product b/examples/PACKAGES/pace/in.pace.product index 11049ee922..1ba1fc679c 100644 --- a/examples/PACKAGES/pace/in.pace.product +++ b/examples/PACKAGES/pace/in.pace.product @@ -1,36 +1,36 @@ -# simple test of fcc Cu with ACE product +# simple test of fcc Cu with ACE product -units metal -atom_style atomic +units metal +atom_style atomic -neighbor 0.3 bin -neigh_modify every 2 delay 10 check yes +neighbor 0.3 bin +neigh_modify every 2 delay 10 check yes -variable a equal 3.597 -lattice fcc $a -region box block 0 4 0 4 0 4 -create_box 1 box -create_atoms 1 box +variable a equal 3.597 +lattice fcc $a +region box block 0 4 0 4 0 4 +create_box 1 box +create_atoms 1 box -mass 1 26.98 +mass 1 26.98 -pair_style pace product +pair_style pace product pair_coeff * * Cu-PBE-core-rep.ace Cu velocity all create 300 8728 loop geom timestep 0.0005 -fix 1 all nve +fix 1 all nve -compute eatom all pe/atom -compute energy all reduce sum c_eatom -variable delenergy equal c_energy-pe +compute eatom all pe/atom +compute energy all reduce sum c_eatom +variable delenergy equal c_energy-pe -compute satom all stress/atom NULL -compute str all reduce sum c_satom[1] c_satom[2] c_satom[3] -variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press +compute satom all stress/atom NULL +compute str all reduce sum c_satom[1] c_satom[2] c_satom[3] +variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press -thermo 10 +thermo 10 thermo_style custom step temp epair etotal press v_delenergy v_delpress -run 100 +run 100 diff --git a/examples/PACKAGES/pace/in.pace.recursive b/examples/PACKAGES/pace/in.pace.recursive index 1d6d9116f0..5d299fb033 100644 --- a/examples/PACKAGES/pace/in.pace.recursive +++ b/examples/PACKAGES/pace/in.pace.recursive @@ -1,36 +1,36 @@ -# simple test of fcc Cu with ACE recursive +# simple test of fcc Cu with ACE recursive -units metal -atom_style atomic +units metal +atom_style atomic -neighbor 0.3 bin -neigh_modify every 2 delay 10 check yes +neighbor 0.3 bin +neigh_modify every 2 delay 10 check yes -variable a equal 3.597 -lattice fcc $a -region box block 0 4 0 4 0 4 -create_box 1 box -create_atoms 1 box +variable a equal 3.597 +lattice fcc $a +region box block 0 4 0 4 0 4 +create_box 1 box +create_atoms 1 box -mass 1 26.98 +mass 1 26.98 -pair_style pace recursive +pair_style pace recursive pair_coeff * * Cu-PBE-core-rep.ace Cu velocity all create 300 8728 loop geom timestep 0.0005 -fix 1 all nve +fix 1 all nve -compute eatom all pe/atom -compute energy all reduce sum c_eatom -variable delenergy equal c_energy-pe +compute eatom all pe/atom +compute energy all reduce sum c_eatom +variable delenergy equal c_energy-pe -compute satom all stress/atom NULL -compute str all reduce sum c_satom[1] c_satom[2] c_satom[3] -variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press +compute satom all stress/atom NULL +compute str all reduce sum c_satom[1] c_satom[2] c_satom[3] +variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press -thermo 10 +thermo 10 thermo_style custom step temp epair etotal press v_delenergy v_delpress -run 100 +run 100 diff --git a/examples/PACKAGES/pace/plugin/CMakeLists.txt b/examples/PACKAGES/pace/plugin/CMakeLists.txt new file mode 100644 index 0000000000..6ad9c791ba --- /dev/null +++ b/examples/PACKAGES/pace/plugin/CMakeLists.txt @@ -0,0 +1,53 @@ +########################################## +# CMake build system for plugin examples. +# The is meant to be used as a template for plugins that are +# distributed independent from the LAMMPS package. +########################################## + +cmake_minimum_required(VERSION 3.10) + +project(paceplugin VERSION 1.0 LANGUAGES CXX) + +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +include(CheckIncludeFileCXX) +include(LAMMPSInterfacePlugin) +include(ML-PACE) + +########################## +# building the plugins + +add_library(paceplugin MODULE paceplugin.cpp ${LAMMPS_SOURCE_DIR}/ML-PACE/pair_pace.cpp) +target_link_libraries(paceplugin PRIVATE pace) +target_link_libraries(paceplugin PRIVATE lammps) +target_include_directories(paceplugin PRIVATE ${LAMMPS_SOURCE_DIR}/ML-PACE) +set_target_properties(paceplugin PROPERTIES PREFIX "" SUFFIX ".so") + +# MacOS seems to need this +if(CMAKE_SYSTEM_NAME STREQUAL Darwin) + set_target_properties(paceplugin PROPERTIES LINK_FLAGS "-Wl,-undefined,dynamic_lookup") +elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") +# tell CMake to export all symbols to a .dll on Windows with special case for MinGW cross-compilers + set_target_properties(paceplugin PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) + if(CMAKE_CROSSCOMPILING) + set_target_properties(paceplugin PROPERTIES LINK_FLAGS "-Wl,--export-all-symbols") + endif() + + get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h LAMMPS_VERSION) + find_program(MAKENSIS_PATH makensis) + if(MAKENSIS_PATH) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/lammps.ico + ${CMAKE_SOURCE_DIR}/lammps-text-logo-wide.bmp ${CMAKE_SOURCE_DIR}/paceplugin.nsis ${CMAKE_BINARY_DIR}) + if(BUILD_MPI) + add_custom_target(package ${MAKENSIS_PATH} -V1 -DVERSION=${LAMMPS_VERSION}-MPI paceplugin.nsis + DEPENDS paceplugin + BYPRODUCTS LAMMPS-ML-PACE-plugin-${LAMMPS_VERSION}-MPI.exe) + else() + add_custom_target(package ${MAKENSIS_PATH} -V1 -DVERSION=${LAMMPS_VERSION} paceplugin.nsis + COMMAND ${CMAKE_COMMAND} -E echo ${PWD} + DEPENDS paceplugin lammps.ico lammps-text-logo-wide.bmp paceplugin.nsis + BYPRODUCTS LAMMPS-ML-PACE-plugin-${LAMMPS_VERSION}.exe) + endif() + endif() +else() + set_target_properties(paceplugin PROPERTIES LINK_FLAGS "-rdynamic") +endif() diff --git a/examples/PACKAGES/pace/plugin/LAMMPSInterfacePlugin.cmake b/examples/PACKAGES/pace/plugin/LAMMPSInterfacePlugin.cmake new file mode 120000 index 0000000000..2ac6d20a54 --- /dev/null +++ b/examples/PACKAGES/pace/plugin/LAMMPSInterfacePlugin.cmake @@ -0,0 +1 @@ +../../../../cmake/Modules/LAMMPSInterfacePlugin.cmake \ No newline at end of file diff --git a/examples/PACKAGES/pace/plugin/ML-PACE.cmake b/examples/PACKAGES/pace/plugin/ML-PACE.cmake new file mode 120000 index 0000000000..3990c0d334 --- /dev/null +++ b/examples/PACKAGES/pace/plugin/ML-PACE.cmake @@ -0,0 +1 @@ +../../../../cmake/Modules/Packages/ML-PACE.cmake \ No newline at end of file diff --git a/examples/PACKAGES/pace/plugin/README.txt b/examples/PACKAGES/pace/plugin/README.txt new file mode 100644 index 0000000000..85490c3f6c --- /dev/null +++ b/examples/PACKAGES/pace/plugin/README.txt @@ -0,0 +1,2 @@ +This folder contains a loader and support files to build the ML-PACE package as plugin. +For more information please see: https://docs.lammps.org/Developer_plugins.html diff --git a/examples/PACKAGES/pace/plugin/lammps-text-logo-wide.bmp b/examples/PACKAGES/pace/plugin/lammps-text-logo-wide.bmp new file mode 100644 index 0000000000..b9ec4c35f2 Binary files /dev/null and b/examples/PACKAGES/pace/plugin/lammps-text-logo-wide.bmp differ diff --git a/examples/PACKAGES/pace/plugin/lammps.ico b/examples/PACKAGES/pace/plugin/lammps.ico new file mode 100644 index 0000000000..cce156bf79 Binary files /dev/null and b/examples/PACKAGES/pace/plugin/lammps.ico differ diff --git a/examples/PACKAGES/pace/plugin/paceplugin.cpp b/examples/PACKAGES/pace/plugin/paceplugin.cpp new file mode 100644 index 0000000000..adf1c168f9 --- /dev/null +++ b/examples/PACKAGES/pace/plugin/paceplugin.cpp @@ -0,0 +1,28 @@ + +#include "lammpsplugin.h" +#include "version.h" + +#include "pair_pace.h" + +using namespace LAMMPS_NS; + +static Pair *pair_pace_creator(LAMMPS *lmp) +{ + return new PairPACE(lmp); +} + +extern "C" void lammpsplugin_init(void *lmp, void *handle, void *regfunc) +{ + lammpsplugin_t plugin; + lammpsplugin_regfunc register_plugin = (lammpsplugin_regfunc) regfunc; + + // register pace pair style + plugin.version = LAMMPS_VERSION; + plugin.style = "pair"; + plugin.name = "pace"; + plugin.info = "PACE plugin pair style v1.0"; + plugin.author = "Axel Kohlmeyer (akohlmey@gmail.com)"; + plugin.creator.v1 = (lammpsplugin_factory1 *) &pair_pace_creator; + plugin.handle = handle; + (*register_plugin)(&plugin, lmp); +} diff --git a/examples/PACKAGES/pace/plugin/paceplugin.nsis b/examples/PACKAGES/pace/plugin/paceplugin.nsis new file mode 100644 index 0000000000..de8d1d8478 --- /dev/null +++ b/examples/PACKAGES/pace/plugin/paceplugin.nsis @@ -0,0 +1,157 @@ +#!Nsis Installer Command Script +# +# The following external defines are recognized: +# ${VERSION} = YYYYMMDD + +!include "MUI2.nsh" +!include "FileFunc.nsh" + +!define MUI_ICON "lammps.ico" +!define MUI_UNICON "lammps.ico" +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_BITMAP "lammps-text-logo-wide.bmp" +!define MUI_HEADERIMAGE_RIGHT + +Unicode true +XPStyle on + +!include "LogicLib.nsh" +!addplugindir "envvar/Plugins/x86-unicode" +!include "x64.nsh" + +RequestExecutionLevel user + +!macro VerifyUserIsAdmin +UserInfo::GetAccountType +pop $0 +${If} $0 != "admin" + messageBox mb_iconstop "Administrator rights required!" + setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED + quit +${EndIf} +!macroend + +!define PACEPLUGIN "LAMMPS ML-PACE Plugin ${VERSION}" +OutFile "LAMMPS-ML-PACE-plugin-${VERSION}.exe" + +Name "${PACEPLUGIN}" +InstallDir "$LOCALAPPDATA\${PACEPLUGIN}" + +ShowInstDetails show +ShowUninstDetails show +SetCompressor lzma + +!define MUI_ABORTWARNING + +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES + +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + +!insertmacro MUI_LANGUAGE "English" + +function .onInit + # Determine if LAMMPS was already installed and check whether it was in 32-bit + # or 64-bit. Then look up path to uninstaller and offer to uninstall or quit + SetRegView 32 + ReadRegDWORD $0 HKCU "Software\LAMMPS-ML-PACE" "Bits" + SetRegView LastUsed + ${If} $0 == "32" + SetRegView 32 + ${ElseIf} $0 == "64" + SetRegView 64 + ${Else} + SetRegView 64 + ${EndIf} + ClearErrors + ReadRegStr $R0 HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" "UninstallString" + SetRegView LastUsed + ${If} ${Errors} + DetailPrint "LAMMPS ML-PACE plugin not (yet) installed" + ${Else} + MessageBox MB_YESNO "LAMMPS ML-PACE plugin ($0 bit) is already installed. Uninstall existing version?" /SD IDYES IDNO Quit + Pop $R1 + StrCmp $R1 2 Quit +1 + Exec $R0 + Quit: + Quit + ${EndIf} + setShellVarContext all +functionEnd + +Section "${PACEPLUGIN}" SecPaceplugin + SectionIn RO + # Write LAMMPS installation bitness marker. Always use 32-bit registry view + SetRegView 32 + IntFmt $0 "0x%08X" 64 + WriteRegDWORD HKCU "Software\LAMMPS-ML-PACE" "Bits" $0 + + # Switch to "native" registry view + SetRegView 64 + SetShellVarContext current + + SetOutPath "$INSTDIR" + File lammps.ico + File paceplugin.so + + # Register Application and its uninstaller + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \ + "DisplayName" "${PACEPLUGIN}" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \ + "Publisher" "The LAMMPS and PACE Developers" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \ + "URLInfoAbout" "lammps.org" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \ + "DisplayIcon" "$INSTDIR\lammps.ico" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \ + "DisplayVersion" "${VERSION}" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \ + "InstallLocation" "$INSTDIR" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \ + "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \ + "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" + + ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 + IntFmt $0 "0x%08X" $0 + WriteRegDWORD HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \ + "EstimatedSize" "$0" + + # update path variables + EnVar::SetHKCU + # add to LAMMPS plugin search path + EnVar::AddValue "LAMMPS_PLUGIN_PATH" "$INSTDIR" + + WriteUninstaller "$INSTDIR\Uninstall.exe" +SectionEnd + +function un.onInit + SetShellVarContext current +functionEnd + +Section "Uninstall" + # remove LAMMPS bitness/installation indicator always in 32-bit registry view + SetRegView 32 + DeleteRegKey HKCU "Software\LAMMPS-ML-PACE" + + # unregister extension, and uninstall info + SetRegView 64 + SetShellVarContext current + # unregister installation + DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" + + # update path variables + EnVar::SetHKCU + # remove entry from LAMMPS plugin search path + EnVar::DeleteValue "LAMMPS_PLUGIN_PATH" "$INSTDIR" + + Delete /REBOOTOK "$INSTDIR\paceplugin.so" + Delete /REBOOTOK "$INSTDIR\Uninstall.exe" + Delete /REBOOTOK "$INSTDIR\lammps.ico" + RMDir /REBOOTOK "$INSTDIR" +SectionEnd + +# Local Variables: +# mode: sh +# End: diff --git a/examples/README b/examples/README index ac3fa4ecc2..8f4cb0bd75 100644 --- a/examples/README +++ b/examples/README @@ -59,6 +59,7 @@ sub-directories: accelerate: use of all the various accelerator packages airebo: polyethylene with AIREBO potential +amoeba: small water and bio models with AMOEBA and HIPPO potentials atm: Axilrod-Teller-Muto potential balance: dynamic load balancing, 2d system body: body particles, 2d system diff --git a/examples/amoeba/README b/examples/amoeba/README new file mode 100644 index 0000000000..969ecf4e22 --- /dev/null +++ b/examples/amoeba/README @@ -0,0 +1,24 @@ +Data files in this directory were created using the +tools/tinker/tinker2lmp.py script as follows: + +** water_dimer: + +% python tinker2lmp.py -xyz water_dimer.xyz -amoeba amoeba_water.prm -data data.water_dimer.amoeba + +% python tinker2lmp.py -xyz water_dimer.xyz -hippo hippo_water.prm -data data.water_dimer.hippo + +** water_hexamer: + +% python tinker2lmp.py -xyz water_hexamer.xyz -amoeba amoeba_water.prm -data data.water_hexamer.amoeba + +% python tinker2lmp.py -xyz water_hexamer.xyz -hippo hippo_water.prm -data data.water_hexamer.hippo + +** water_box: + +% python tinker2lmp.py -xyz water_box.xyz -amoeba amoeba_water.prm -data data.water_box.amoeba -pbc 18.643 18.643 18.643 + +% python tinker2lmp.py -xyz water_box.xyz -hippo hippo_water.prm -data data.water_box.hippo -pbc 18.643 18.643 18.643 + +** ubiquitin: + +% python tinker2lmp.py -xyz ubiquitin.xyz -amoeba amoeba_ubiquitin.prm -data data.ubiquitin -pbc 54.99 41.91 41.91 -bitorsion bitorsion.ubiquitin.data diff --git a/examples/amoeba/amoeba_ubiquitin.key b/examples/amoeba/amoeba_ubiquitin.key new file mode 100644 index 0000000000..2870d071d4 --- /dev/null +++ b/examples/amoeba/amoeba_ubiquitin.key @@ -0,0 +1,18 @@ +!! DATE: 2022-07-05 UNITS: real +parameters ./amoeba.prm +verbose +neighbor-list +tau-temperature 1.0 +tau-pressure 2.0 +a-axis 54.99 +b-axis 41.91 +c-axis 41.91 +vdw-cutoff 12.0 +ewald +ewald-alpha 0.4 +pewald-alpha 0.5 +ewald-cutoff 7.0 +#pme-grid 60 45 45 +pme-grid 60 48 48 +pme-order 5 +polar-eps 0.00001 diff --git a/examples/amoeba/amoeba_ubiquitin.prm b/examples/amoeba/amoeba_ubiquitin.prm new file mode 100644 index 0000000000..79cd9e37df --- /dev/null +++ b/examples/amoeba/amoeba_ubiquitin.prm @@ -0,0 +1,11584 @@ +!! DATE: 2022-07-05 UNITS: real + + ############################## + ## ## + ## Force Field Definition ## + ## ## + ############################## + + +forcefield AMOEBA-BIO-2009 + +bond-cubic -2.55 +bond-quartic 3.793125 +angle-cubic -0.014 +angle-quartic 0.000056 +angle-pentic -0.0000007 +angle-sextic 0.000000022 +opbendtype ALLINGER +opbend-cubic -0.014 +opbend-quartic 0.000056 +opbend-pentic -0.0000007 +opbend-sextic 0.000000022 +torsionunit 0.5 +vdwtype BUFFERED-14-7 +radiusrule CUBIC-MEAN +radiustype R-MIN +radiussize DIAMETER +epsilonrule HHG +dielectric 1.0 +polarization MUTUAL +vdw-12-scale 0.0 +vdw-13-scale 0.0 +vdw-14-scale 1.0 +vdw-15-scale 1.0 +mpole-12-scale 0.0 +mpole-13-scale 0.0 +mpole-14-scale 0.4 +mpole-15-scale 1.0 +polar-12-scale 0.0 +polar-13-scale 0.0 +polar-14-scale 1.0 +polar-15-scale 1.0 +polar-12-intra 0.0 +polar-13-intra 0.0 +polar-14-intra 0.5 +polar-15-intra 1.0 +direct-11-scale 0.0 +direct-12-scale 1.0 +direct-13-scale 1.0 +direct-14-scale 1.0 +mutual-11-scale 1.0 +mutual-12-scale 1.0 +mutual-13-scale 1.0 +mutual-14-scale 1.0 + + + ############################# + ## ## + ## Literature References ## + ## ## + ############################# + + +This file contains the 2009 AMOEBA biopolymer force field, with updates +to the original AMOEBA protein parameters made during Fall 2009, and a +beta version of AMOEBA nucleic acid parameters due to Chuanjie Wu + +Y. Shi, Z. Xia, J. Zhang, R. Best, J. W. Ponder and P. Ren, "The Polarizable +Atomic Multipole-Based AMOEBA Force Field for Proteins", J. Chem. Theory +Comput., 9, 4046-4063 (2013) + +P. Ren, C. Wu and J. W. Ponder, "Polarizable Atomic Multipole-Based +Molecular Mechanics for Organic Molecules", J. Chem. Theory Comput., +7, 3143-3161 (2011) + +J. C. Wu, J.-P. Piquemal, R. Chaudret, P. Reinhardt and P. Ren, +"Polarizable Molecular Dynamics Simulation of Zn(II) in Water Using +the AMOEBA Force Field", J. Chem. Theory Comput., 6, 2059-2070 (2010) + +A. Grossfield, P. Ren, J. W. Ponder, "Ion Solvation Thermodynamics from +Simulation with a Polarizable Force Field", J. Am. Chem. Soc., 125, +15671-15682 (2003) + +P. Ren and J. W. Ponder, "Polarizable Atomic Multipole Water Model for +Molecular Mechanics Simulation", J. Phys. Chem. B, 107, 5933-5947 (2003) + +Monovalent ion parameters taken from Zhi Wang, Ph.D. thesis, Department +of Chemistry, Washington University in St. Louis, May 2018; available +from https://dasher.wustl.edu/ponder/ + + + ############################################### + ## ## + ## AMOEBA Protein Force Field Atom Classes ## + ## ## + ## 1 Backbone Amide Nitrogen ## + ## 2 Glycine Alpha Carbon ## + ## 3 Backbone Carbonyl Carbon ## + ## 4 Amide or Guanidinium Hydrogen ## + ## 5 Amide Carbonyl Oxygen ## + ## 6 Methine Hydrogen ## + ## 7 Methine Carbon ## + ## 8 Methyl or Methylene Carbon ## + ## 9 Methyl or Methylene Hydrogen ## + ## 10 Hydroxyl Oxygen ## + ## 11 Hydroxyl Hydrogen ## + ## 12 Sulfide or Disulfide Sulfur ## + ## 13 Sulfhydryl Hydrogen ## + ## 14 Thiolate Sulfur ## + ## 15 Proline Backbone Nitrogen ## + ## 16 Proline Ring Methylene Carbon ## + ## 17 Phenyl Carbon ## + ## 18 Phenyl Hydrogen ## + ## 19 Phenolic Oxygen ## + ## 20 Phenolic Hydrogen ## + ## 21 Phenoxide Oxygen ## + ## 22 Indole Carbon ## + ## 23 Indole CH Hydrogen ## + ## 24 Imidazole or Indole NH Nitrogen ## + ## 25 Imidazole or Indole NH Hydrogen ## + ## 26 Imidazole C=C Carbon ## + ## 27 Imidazole CH Hydrogen ## + ## 28 Imidazole N=C-N Carbon ## + ## 29 Imidazole C=N Nitrogen ## + ## 30 Carboxylate Carbon ## + ## 31 Carboxylate Oxygen ## + ## 32 Carboxylic Acid Carbonyl Oxygen ## + ## 33 Carboxylic Acid Hydroxyl Oxygen ## + ## 34 Carboxylic Acid Hydrogen ## + ## 35 Amine or Ammonium Nitrogen ## + ## 36 Ammonium Hydrogen ## + ## 37 Amine Hydrogen ## + ## 38 Guanidinium Hydrogen ## + ## 39 Guanidinium Carbon ## + ## 40 Acetyl or NMe Methyl Carbon ## + ## 41 N-Terminal Ammonium Nitrogen ## + ## 42 N-Terminal Ammonium Hydrogen ## + ## ## + ############################################### + + + ############################# + ## ## + ## Atom Type Definitions ## + ## ## + ############################# + + +atom 1 1 N "Glycine N" 7 14.003 3 +atom 2 2 CA "Glycine CA" 6 12.000 4 +atom 3 3 C "Glycine C" 6 12.000 3 +atom 4 4 HN "Glycine HN" 1 1.008 1 +atom 5 5 O "Glycine O" 8 15.995 1 +atom 6 6 H "Glycine HA" 1 1.008 1 +atom 7 1 N "Alanine N" 7 14.003 3 +atom 8 7 CA "Alanine CA" 6 12.000 4 +atom 9 3 C "Alanine C" 6 12.000 3 +atom 10 4 HN "Alanine HN" 1 1.008 1 +atom 11 5 O "Alanine O" 8 15.995 1 +atom 12 6 H "Alanine HA" 1 1.008 1 +atom 13 8 C "Alanine CB" 6 12.000 4 +atom 14 9 H "Alanine HB" 1 1.008 1 +atom 15 7 C "Valine CB" 6 12.000 4 +atom 16 6 H "Valine HB" 1 1.008 1 +atom 17 8 C "Valine CG" 6 12.000 4 +atom 18 9 H "Valine HG" 1 1.008 1 +atom 19 8 C "Leucine CB" 6 12.000 4 +atom 20 9 H "Leucine HB" 1 1.008 1 +atom 21 7 C "Leucine CG" 6 12.000 4 +atom 22 6 H "Leucine HG" 1 1.008 1 +atom 23 8 C "Leucine CD" 6 12.000 4 +atom 24 9 H "Leucine HD" 1 1.008 1 +atom 25 7 C "Isoleucine CB" 6 12.000 4 +atom 26 6 H "Isoleucine HB" 1 1.008 1 +atom 27 8 C "Isoleucine CG" 6 12.000 4 +atom 28 9 H "Isoleucine HG" 1 1.008 1 +atom 29 8 C "Isoleucine CG" 6 12.000 4 +atom 30 9 H "Isoleucine HG" 1 1.008 1 +atom 31 8 C "Isoleucine CD" 6 12.000 4 +atom 32 9 H "Isoleucine HD" 1 1.008 1 +atom 33 7 CA "Serine CA" 6 12.000 4 +atom 34 8 C "Serine CB" 6 12.000 4 +atom 35 9 H "Serine HB" 1 1.008 1 +atom 36 10 OH "Serine OG" 8 15.995 2 +atom 37 11 HO "Serine HG" 1 1.008 1 +atom 38 7 C "Threonine CB" 6 12.000 4 +atom 39 6 H "Threonine HB" 1 1.008 1 +atom 40 8 C "Threonine CG" 6 12.000 4 +atom 41 9 H "Threonine HG" 1 1.008 1 +atom 42 10 OH "Threonine O" 8 15.995 2 +atom 43 11 HO "Threonine H" 1 1.008 1 +atom 44 7 CA "Cysteine CA" 6 12.000 4 +atom 45 8 C "Cysteine CB" 6 12.000 4 +atom 46 9 H "Cysteine HB" 1 1.008 1 +atom 47 12 SH "Cysteine SG" 16 31.972 2 +atom 48 13 HS "Cysteine HG" 1 1.008 1 +atom 49 12 SS "Cystine SG" 16 31.972 2 +atom 50 8 C "Cysteine Anion CB" 6 12.000 4 +atom 51 9 H "Cysteine Anion HB" 1 1.008 1 +atom 52 14 S "Cysteine Anion S-" 16 31.972 1 +atom 53 15 N "Proline N" 7 14.003 3 +atom 54 7 CA "Proline CA" 6 12.000 4 +atom 55 3 C "Proline C" 6 12.000 3 +atom 56 5 O "Proline O" 8 15.995 1 +atom 57 6 H "Proline HA" 1 1.008 1 +atom 58 16 C "Proline CB" 6 12.000 4 +atom 59 9 H "Proline HB" 1 1.008 1 +atom 60 16 C "Proline CG" 6 12.000 4 +atom 61 9 H "Proline HG" 1 1.008 1 +atom 62 16 C "Proline CD" 6 12.000 4 +atom 63 6 H "Proline HD" 1 1.008 1 +atom 64 8 C "Phenylalanine CB" 6 12.000 4 +atom 65 9 H "Phenylalanine HB" 1 1.008 1 +atom 66 17 C "Phenylalanine CG" 6 12.000 3 +atom 67 17 C "Phenylalanine CD" 6 12.000 3 +atom 68 18 H "Phenylalanine HD" 1 1.008 1 +atom 69 17 C "Phenylalanine CE" 6 12.000 3 +atom 70 18 H "Phenylalanine HE" 1 1.008 1 +atom 71 17 C "Phenylalanine CZ" 6 12.000 3 +atom 72 18 H "Phenylalanine HZ" 1 1.008 1 +atom 73 8 C "Tyrosine CB" 6 12.000 4 +atom 74 9 H "Tyrosine HB" 1 1.008 1 +atom 75 17 C "Tyrosine CG" 6 12.000 3 +atom 76 17 C "Tyrosine CD" 6 12.000 3 +atom 77 18 H "Tyrosine HD" 1 1.008 1 +atom 78 17 C "Tyrosine CE" 6 12.000 3 +atom 79 18 H "Tyrosine HE" 1 1.008 1 +atom 80 17 C "Tyrosine CZ" 6 12.000 3 +atom 81 19 OH "Tyrosine OH" 8 15.995 2 +atom 82 20 HO "Tyrosine HH" 1 1.008 1 +atom 83 8 C "Tyrosine Anion CB" 6 12.000 4 +atom 84 9 H "Tyrosine Anion HB" 1 1.008 1 +atom 85 17 C "Tyrosine Anion CG" 6 12.000 3 +atom 86 17 C "Tyrosine Anion CD" 6 12.000 3 +atom 87 18 H "Tyrosine Anion HD" 1 1.008 1 +atom 88 17 C "Tyrosine Anion CE" 6 12.000 3 +atom 89 18 H "Tyrosine Anion HE" 1 1.008 1 +atom 90 17 C "Tyrosine Anion CZ" 6 12.000 3 +atom 91 21 O- "Tyrosine Anion O-" 8 15.995 1 +atom 92 8 C "Tryptophan CB" 6 12.000 4 +atom 93 9 H "Tryptophan HB" 1 1.008 1 +atom 94 22 C "Tryptophan CG" 6 12.000 3 +atom 95 22 C "Tryptophan CD1" 6 12.000 3 +atom 96 23 H "Tryptophan HD1" 1 1.008 1 +atom 97 22 C "Tryptophan CD2" 6 12.000 3 +atom 98 24 N "Tryptophan NE1" 7 14.003 3 +atom 99 25 HN "Tryptophan HE1" 1 1.008 1 +atom 100 22 C "Tryptophan CE2" 6 12.000 3 +atom 101 22 C "Tryptophan CE3" 6 12.000 3 +atom 102 23 H "Tryptophan HE3" 1 1.008 1 +atom 103 22 C "Tryptophan CZ2" 6 12.000 3 +atom 104 23 H "Tryptophan HZ2" 1 1.008 1 +atom 105 22 C "Tryptophan CZ3" 6 12.000 3 +atom 106 23 H "Tryptophan HZ3" 1 1.008 1 +atom 107 22 C "Tryptophan CH2" 6 12.000 3 +atom 108 23 H "Tryptophan HH2" 1 1.008 1 +atom 109 8 C "Histidine (+) CB" 6 12.000 4 +atom 110 9 H "Histidine (+) HB" 1 1.008 1 +atom 111 26 C "Histidine (+) CG" 6 12.000 3 +atom 112 24 N "Histidine (+) ND1" 7 14.003 3 +atom 113 25 HN "Histidine (+) HD1" 1 1.008 1 +atom 114 26 C "Histidine (+) CD2" 6 12.000 3 +atom 115 27 H "Histidine (+) HD2" 1 1.008 1 +atom 116 28 C "Histidine (+) CE1" 6 12.000 3 +atom 117 27 H "Histidine (+) HE1" 1 1.008 1 +atom 118 24 N "Histidine (+) NE2" 7 14.003 3 +atom 119 25 HN "Histidine (+) HE2" 1 1.008 1 +atom 120 8 C "Histidine (HD) CB" 6 12.000 4 +atom 121 9 H "Histidine (HD) HB" 1 1.008 1 +atom 122 26 C "Histidine (HD) CG" 6 12.000 3 +atom 123 24 N "Histidine (HD) ND1" 7 14.003 3 +atom 124 25 HN "Histidine (HD) HD1" 1 1.008 1 +atom 125 26 C "Histidine (HD) CD2" 6 12.000 3 +atom 126 27 H "Histidine (HD) HD2" 1 1.008 1 +atom 127 28 C "Histidine (HD) CE1" 6 12.000 3 +atom 128 27 H "Histidine (HD) HE1" 1 1.008 1 +atom 129 29 N "Histidine (HD) NE2" 7 14.003 2 +atom 130 8 C "Histidine (HE) CB" 6 12.000 4 +atom 131 9 H "Histidine (HE) HB" 1 1.008 1 +atom 132 26 C "Histidine (HE) CG" 6 12.000 3 +atom 133 29 N "Histidine (HE) ND1" 7 14.003 2 +atom 134 26 C "Histidine (HE) CD2" 6 12.000 3 +atom 135 27 H "Histidine (HE) HD2" 1 1.008 1 +atom 136 28 C "Histidine (HE) CE1" 6 12.000 3 +atom 137 27 H "Histidine (HE) HE1" 1 1.008 1 +atom 138 24 N "Histidine (HE) NE2" 7 14.003 3 +atom 139 25 HN "Histidine (HE) HE2" 1 1.008 1 +atom 140 8 C "Aspartate CB" 6 12.000 4 +atom 141 9 H "Aspartate HB" 1 1.008 1 +atom 142 30 C "Aspartate CG" 6 12.000 3 +atom 143 31 O "Aspartate OD" 8 15.995 1 +atom 144 8 C "Aspartic Acid CB" 6 12.000 4 +atom 145 9 H "Aspartic Acid HB" 1 1.008 1 +atom 146 30 C "Aspartic Acid CG" 6 12.000 3 +atom 147 32 O "Aspartic Acid OD1" 8 15.995 1 +atom 148 33 OH "Aspartic Acid OD2" 8 15.995 2 +atom 149 34 HO "Aspartic Acid HD2" 1 1.008 1 +atom 150 8 C "Asparagine CB" 6 12.000 4 +atom 151 9 H "Asparagine HB" 1 1.008 1 +atom 152 3 C "Asparagine CG" 6 12.000 3 +atom 153 5 O "Asparagine OD1" 8 15.995 1 +atom 154 1 N "Asparagine ND2" 7 14.003 3 +atom 155 4 HN "Asparagine HD2" 1 1.008 1 +atom 156 8 C "Glutamate CB" 6 12.000 4 +atom 157 9 H "Glutamate HB" 1 1.008 1 +atom 158 8 C "Glutamate CG" 6 12.000 4 +atom 159 9 H "Glutamate HG" 1 1.008 1 +atom 160 30 C "Glutamate CD" 6 12.000 3 +atom 161 31 O "Glutamate OE" 8 15.995 1 +atom 162 8 C "Glutamic Acid CB" 6 12.000 4 +atom 163 9 H "Glutamic Acid HB" 1 1.008 1 +atom 164 8 C "Glutamic Acid CG" 6 12.000 4 +atom 165 9 H "Glutamic Acid HG" 1 1.008 1 +atom 166 30 C "Glutamic Acid CD" 6 12.000 3 +atom 167 32 O "Glutamic Acid OE1" 8 15.995 1 +atom 168 33 OH "Glutamic Acid OE2" 8 15.995 2 +atom 169 34 HO "Glutamic Acid HE2" 1 1.008 1 +atom 170 8 C "Glutamine CB" 6 12.000 4 +atom 171 9 H "Glutamine HB" 1 1.008 1 +atom 172 8 C "Glutamine CG" 6 12.000 4 +atom 173 9 H "Glutamine HG" 1 1.008 1 +atom 174 3 C "Glutamine CD" 6 12.000 3 +atom 175 5 O "Glutamine OE1" 8 15.995 1 +atom 176 1 N "Glutamine NE2" 7 14.003 3 +atom 177 4 HN "Glutamine HE2" 1 1.008 1 +atom 178 8 C "Methionine CB" 6 12.000 4 +atom 179 9 H "Methionine HB" 1 1.008 1 +atom 180 8 C "Methionine CG" 6 12.000 4 +atom 181 9 H "Methionine HG" 1 1.008 1 +atom 182 12 S "Methionine SD" 16 31.972 2 +atom 183 8 C "Methionine CE" 6 12.000 4 +atom 184 9 H "Methionine HE" 1 1.008 1 +atom 185 8 C "Lysine CB" 6 12.000 4 +atom 186 9 H "Lysine HB" 1 1.008 1 +atom 187 8 C "Lysine CG" 6 12.000 4 +atom 188 9 H "Lysine HG" 1 1.008 1 +atom 189 8 C "Lysine CD" 6 12.000 4 +atom 190 9 H "Lysine HD" 1 1.008 1 +atom 191 8 C "Lysine CE" 6 12.000 4 +atom 192 9 H "Lysine HE" 1 1.008 1 +atom 193 35 N "Lysine NZ" 7 14.003 4 +atom 194 36 HN "Lysine HN" 1 1.008 1 +atom 195 8 C "Lysine (Neutral) CB" 6 12.000 4 +atom 196 9 H "Lysine (Neutral) HB" 1 1.008 1 +atom 197 8 C "Lysine (Neutral) CG" 6 12.000 4 +atom 198 9 H "Lysine (Neutral) HG" 1 1.008 1 +atom 199 8 C "Lysine (Neutral) CD" 6 12.011 4 +atom 200 9 H "Lysine (Neutral) HD" 1 1.008 1 +atom 201 8 C "Lysine (Neutral) CE" 6 12.011 4 +atom 202 9 H "Lysine (Neutral) HE" 1 1.008 1 +atom 203 35 N "Lysine (Neutral) NZ" 7 14.007 3 +atom 204 37 HN "Lysine (Neutral) HN" 1 1.008 1 +atom 205 8 C "Arginine CB" 6 12.000 4 +atom 206 9 H "Arginine HB" 1 1.008 1 +atom 207 8 C "Arginine CG" 6 12.000 4 +atom 208 9 H "Arginine HG" 1 1.008 1 +atom 209 8 C "Arginine CD" 6 12.000 4 +atom 210 9 H "Arginine HD" 1 1.008 1 +atom 211 1 N "Arginine NE" 7 14.003 3 +atom 212 38 HN "Arginine HE" 1 1.008 1 +atom 213 39 C "Arginine CZ" 6 12.000 3 +atom 214 1 N "Arginine NH" 7 14.003 3 +atom 215 38 HN "Arginine HH" 1 1.008 1 +atom 216 8 C "Ornithine CB" 6 12.000 4 +atom 217 9 H "Ornithine HB" 1 1.008 1 +atom 218 8 C "Ornithine CG" 6 12.000 4 +atom 219 9 H "Ornithine HG" 1 1.008 1 +atom 220 8 C "Ornithine CD" 6 12.000 4 +atom 221 9 H "Ornithine HD" 1 1.008 1 +atom 222 35 N "Ornithine NE" 7 14.003 4 +atom 223 36 HN "Ornithine HE" 1 1.008 1 +atom 224 40 C "Acetyl Cap CH3" 6 12.000 4 +atom 225 6 H "Acetyl Cap H3C" 1 1.008 1 +atom 226 3 C "Acetyl Cap C" 6 12.000 3 +atom 227 5 O "Acetyl Cap O" 8 15.995 1 +atom 228 1 N "Amide Cap NH2" 7 14.003 3 +atom 229 4 HN "Amide Cap H2N" 1 1.008 1 +atom 230 1 N "N-MeAmide Cap N" 7 14.003 3 +atom 231 4 HN "N-MeAmide Cap HN" 1 1.008 1 +atom 232 40 C "N-MeAmide Cap CH3" 6 12.000 4 +atom 233 6 H "N-MeAmide Cap H3C" 1 1.008 1 +atom 234 41 N "N-Terminal NH3+" 7 14.003 4 +atom 235 42 H "N-Terminal H3N+" 1 1.008 1 +atom 236 35 N "N-Terminal NH2" 7 14.003 3 +atom 237 37 H "N-Terminal H2N" 1 1.008 1 +atom 238 30 C "C-Terminal COO-" 6 12.000 3 +atom 239 31 O "C-Terminal COO-" 8 15.995 1 +atom 240 30 C "C-Terminal COOH" 6 12.000 3 +atom 241 32 O "C-Terminal COOH" 8 15.995 1 +atom 242 33 OH "C-Terminal COOH" 8 15.995 2 +atom 243 34 HO "C-Terminal COOH" 1 1.008 1 +atom 244 41 N "N-Terminal PRO NH2+" 7 14.003 4 +atom 245 42 HN "N-Terminal PRO H2N+" 1 1.008 1 +atom 246 7 CA "N-Terminal PRO CA" 6 12.000 4 +atom 247 3 C "N-Terminal PRO C" 6 12.000 3 +atom 248 5 O "N-Terminal PRO O" 8 15.995 1 +atom 249 6 H "N-Terminal PRO HA" 1 1.008 1 +atom 250 16 C "N-Terminal PRO CD" 6 12.000 4 +atom 251 6 H "N-Terminal PRO HD" 1 1.008 1 +atom 252 43 N* "Adenine N9" 7 14.007 3 +atom 253 44 CB "Adenine C4" 6 12.011 3 +atom 254 44 CB "Adenine C5" 6 12.011 3 +atom 255 45 NB "Adenine N7" 7 14.007 2 +atom 256 46 CK "Adenine C8" 6 12.011 3 +atom 257 47 NC "Adenine N3" 7 14.007 2 +atom 258 48 CQ "Adenine C2" 6 12.011 3 +atom 259 47 NC "Adenine N1" 7 14.007 2 +atom 260 49 CA "Adenine C6" 6 12.011 3 +atom 261 50 H5 "Adenine H2" 1 1.008 1 +atom 262 51 N2 "Adenine N6" 7 14.007 3 +atom 263 52 H "Adenine H61" 1 1.008 1 +atom 264 52 H "Adenine H62" 1 1.008 1 +atom 265 50 H5 "Adenine H8" 1 1.008 1 +atom 266 43 N* "Cytosine N1" 7 14.007 3 +atom 267 53 C "Cytosine C2" 6 12.011 3 +atom 268 47 NC "Cytosine N3" 7 14.007 2 +atom 269 49 CA "Cytosine C4" 6 12.011 3 +atom 270 54 CM "Cytosine C5" 6 12.011 3 +atom 271 54 CM "Cytosine C6" 6 12.011 3 +atom 272 55 O "Cytosine O2" 8 15.999 1 +atom 273 51 N2 "Cytosine N4" 7 14.007 3 +atom 274 52 H "Cytosine H41" 1 1.008 1 +atom 275 52 H "Cytosine H42" 1 1.008 1 +atom 276 56 HA "Cytosine H5" 1 1.008 1 +atom 277 57 H4 "Cytosine H6" 1 1.008 1 +atom 278 43 N* "Guanine N9" 7 14.007 3 +atom 279 44 CB "Guanine C4" 6 12.011 3 +atom 280 44 CB "Guanine C5" 6 12.011 3 +atom 281 45 NB "Guanine N7" 7 14.007 2 +atom 282 46 CK "Guanine C8" 6 12.011 3 +atom 283 47 NC "Guanine N3" 7 14.007 2 +atom 284 49 CA "Guanine C2" 6 12.011 3 +atom 285 58 NA "Guanine N1" 7 14.007 3 +atom 286 53 C "Guanine C6" 6 12.011 3 +atom 287 59 H "Guanine H1" 1 1.008 1 +atom 288 51 N2 "Guanine N2" 7 14.007 3 +atom 289 52 H "Guanine H21" 1 1.008 1 +atom 290 52 H "Guanine H22" 1 1.008 1 +atom 291 55 O "Guanine O6" 8 15.999 1 +atom 292 50 H5 "Guanine H8" 1 1.008 1 +atom 293 43 N* "Thymine N1" 7 14.007 3 +atom 294 53 C "Thymine C2" 6 12.011 3 +atom 295 58 NA "Thymine N3" 7 14.007 3 +atom 296 53 C "Thymine C4" 6 12.011 3 +atom 297 54 CM "Thymine C5" 6 12.011 3 +atom 298 54 CM "Thymine C6" 6 12.011 3 +atom 299 55 O "Thymine O2" 8 15.999 1 +atom 300 59 H "Thymine H3" 1 1.008 1 +atom 301 55 O "Thymine O4" 8 15.999 1 +atom 302 60 CT "Thymine C7" 6 12.011 4 +atom 303 61 HC "Thymine H7" 1 1.008 1 +atom 304 57 H4 "Thymine H6" 1 1.008 1 +atom 305 43 N* "Uracil N1" 7 14.007 3 +atom 306 53 C "Uracil C2" 6 12.011 3 +atom 307 58 NA "Uracil N3" 7 14.007 3 +atom 308 53 C "Uracil C4" 6 12.011 3 +atom 309 54 CM "Uracil C5" 6 12.011 3 +atom 310 54 CM "Uracil C6" 6 12.011 3 +atom 311 55 O "Uracil O2" 8 15.999 1 +atom 312 59 H "Uracil H3" 1 1.008 1 +atom 313 55 O "Uracil O4" 8 15.999 1 +atom 314 56 HA "Uracil H5" 1 1.008 1 +atom 315 57 H4 "Uracil H6" 1 1.008 1 +atom 316 62 OS "Ribose O5' (CU)" 8 15.999 2 +atom 317 60 CT "Ribose C5' (CU)" 6 12.011 4 +atom 318 61 H1 "Ribose H5'1 (CU)" 1 1.008 1 +atom 319 61 H1 "Ribose H5'2 (CU)" 1 1.008 1 +atom 320 63 CT "Ribose C4' (CU)" 6 12.011 4 +atom 321 64 H1 "Ribose H4' (CU)" 1 1.008 1 +atom 322 62 OS "Ribose O4' (CU)" 8 15.999 2 +atom 323 63 CT "Ribose C1' (CU)" 6 12.011 4 +atom 324 65 H2 "Ribose H1' (CU)" 1 1.008 1 +atom 325 63 CT "Ribose C3' (CU)" 6 12.011 4 +atom 326 64 H1 "Ribose H3' (CU)" 1 1.008 1 +atom 327 63 CT "Ribose C2' (CU)" 6 12.011 4 +atom 328 64 H1 "Ribose H2'1 (CU)" 1 1.008 1 +atom 329 66 OH "Ribose O2' (CU)" 8 15.999 2 +atom 330 67 HO "Ribose HO'2 (CU)" 1 1.008 1 +atom 331 62 OS "Ribose O3' (CU)" 8 15.999 2 +atom 332 62 OS "Ribose O5' (AG)" 8 15.999 2 +atom 333 60 CT "Ribose C5' (AG)" 6 12.011 4 +atom 334 61 H1 "Ribose H5'1 (AG)" 1 1.008 1 +atom 335 61 H1 "Ribose H5'2 (AG)" 1 1.008 1 +atom 336 63 CT "Ribose C4' (AG)" 6 12.011 4 +atom 337 64 H1 "Ribose H4' (AG)" 1 1.008 1 +atom 338 68 OS "Ribose O4' (AG)" 8 15.999 2 +atom 339 63 CT "Ribose C1' (AG)" 6 12.011 4 +atom 340 65 H2 "Ribose H1' (AG)" 1 1.008 1 +atom 341 63 CT "Ribose C3' (AG)" 6 12.011 4 +atom 342 64 H1 "Ribose H3' (AG)" 1 1.008 1 +atom 343 63 CT "Ribose C2' (AG)" 6 12.011 4 +atom 344 64 H1 "Ribose H2'1 (AG)" 1 1.008 1 +atom 345 66 OH "Ribose O2' (AG)" 8 15.999 2 +atom 346 67 HO "Ribose HO'2 (AG)" 1 1.008 1 +atom 347 62 OS "Ribose O3' (AG)" 8 15.999 2 +atom 348 62 OS "Deoxyribose O5' (CT)" 8 15.999 2 +atom 349 60 CT "Deoxyribose C5' (CT)" 6 12.011 4 +atom 350 61 H1 "Deoxyribose H5'1 (CT)" 1 1.008 1 +atom 351 61 H1 "Deoxyribose H5'2 (CT)" 1 1.008 1 +atom 352 69 CT "Deoxyribose C4' (CT)" 6 12.011 4 +atom 353 64 H1 "Deoxyribose H4' (CT)" 1 1.008 1 +atom 354 62 OS "Deoxyribose O4' (CT)" 8 15.999 2 +atom 355 69 CT "Deoxyribose C1' (CT)" 6 12.011 4 +atom 356 65 H2 "Deoxyribose H1' (CT)" 1 1.008 1 +atom 357 69 CT "Deoxyribose C3' (CT)" 6 12.011 4 +atom 358 64 H1 "Deoxyribose H3' (CT)" 1 1.008 1 +atom 359 69 CT "Deoxyribose C2' (CT)" 6 12.011 4 +atom 360 64 H1 "Deoxyribose H2'1 (CT)" 1 1.008 1 +atom 361 64 H1 "Deoxyribose H2'2 (CT)" 1 1.008 1 +atom 362 62 OS "Deoxyribose O3' (CT)" 8 15.999 2 +atom 363 62 OS "Deoxyribose O5' (AG)" 8 15.999 2 +atom 364 60 CT "Deoxyribose C5' (AG)" 6 12.011 4 +atom 365 61 H1 "Deoxyribose H5'1 (AG)" 1 1.008 1 +atom 366 61 H1 "Deoxyribose H5'2 (AG)" 1 1.008 1 +atom 367 69 CT "Deoxyribose C4' (AG)" 6 12.011 4 +atom 368 64 H1 "Deoxyribose H4' (AG)" 1 1.008 1 +atom 369 68 OS "Deoxyribose O4' (AG)" 8 15.999 2 +atom 370 69 CT "Deoxyribose C1' (AG)" 6 12.011 4 +atom 371 65 H2 "Deoxyribose H1' (AG)" 1 1.008 1 +atom 372 69 CT "Deoxyribose C3' (AG)" 6 12.011 4 +atom 373 64 H1 "Deoxyribose H3' (AG)" 1 1.008 1 +atom 374 69 CT "Deoxyribose C2' (AG)" 6 12.011 4 +atom 375 64 H1 "Deoxyribose H2'1 (AG)" 1 1.008 1 +atom 376 64 H1 "Deoxyribose H2'2 (AG)" 1 1.008 1 +atom 377 62 OS "Deoxyribose O3' (AG)" 8 15.999 2 +atom 378 70 P "R-Phosphodiester P" 15 30.974 4 +atom 379 71 O2 "R-Phosphodiester OP" 8 15.999 1 +atom 380 62 OH "R-5'-Hydroxyl O5'T" 8 15.999 2 +atom 381 72 HO "R-5'-Hydroxyl H5T" 1 1.008 1 +atom 382 62 OS "R-5'-Phosphate O5'" 8 15.999 2 +atom 383 70 P "R-5'-Phosphate P" 15 30.974 4 +atom 384 71 O2 "R-5'-Phosphate OP" 8 15.999 1 +atom 385 62 OH "R-3'-Hydroxyl O3'T" 8 15.999 2 +atom 386 72 HO "R-3'-Hydroxyl H3T" 1 1.008 1 +atom 387 62 OS "R-3'-Phosphate O3'" 8 15.999 2 +atom 388 70 P "R-3'-Phosphate P" 15 30.974 4 +atom 389 71 O2 "R-3'-Phosphate OP" 8 15.999 1 +atom 390 70 P "D-Phosphodiester P" 15 30.974 4 +atom 391 71 O2 "D-Phosphodiester OP" 8 15.999 1 +atom 392 62 OH "D-5'-Hydroxyl O5'T" 8 15.999 2 +atom 393 72 HO "D-5'-Hydroxyl H5T" 1 1.008 1 +atom 394 62 OS "D-5'-Phosphate O5'" 8 15.999 2 +atom 395 70 P "D-5'-Phosphate P" 15 30.974 4 +atom 396 71 O2 "D-5'-Phosphate OP" 8 15.999 1 +atom 397 62 OH "D-3'-Hydroxyl O3'T" 8 15.999 2 +atom 398 72 HO "D-3'-Hydroxyl H3T" 1 1.008 1 +atom 399 62 OS "D-3'-Phosphate O3'" 8 15.999 2 +atom 400 70 P "D-3'-Phosphate P" 15 30.974 4 +atom 401 71 O2 "D-3'-Phosphate OP" 8 15.999 1 +atom 402 73 O "AMOEBA Water O" 8 15.999 2 +atom 403 74 H "AMOEBA Water H" 1 1.008 1 +atom 404 75 Li+ "Lithium Ion Li+" 3 6.941 0 +atom 405 76 Na+ "Sodium Ion Na+" 11 22.990 0 +atom 406 77 K+ "Potassium Ion K+" 19 39.098 0 +atom 407 78 Rb+ "Rubidium Ion Rb+" 37 85.468 0 +atom 408 79 Cs+ "Cesium Ion Cs+" 55 132.905 0 +atom 409 80 Be+ "Beryllium Ion Be+2" 4 9.012 0 +atom 410 81 Mg+ "Magnesium Ion Mg+2" 12 24.305 0 +atom 411 82 Ca+ "Calcium Ion Ca+2" 20 40.078 0 +atom 412 83 Zn+ "Zinc Ion Zn+2" 30 65.380 0 +atom 413 84 F- "Fluoride Ion F-" 9 18.998 0 +atom 414 85 Cl- "Chloride Ion Cl-" 17 35.453 0 +atom 415 86 Br- "Bromide Ion Br-" 35 79.904 0 +atom 416 87 I- "Iodide Ion I-" 53 126.904 0 + + + ################################ + ## ## + ## Van der Waals Parameters ## + ## ## + ################################ + + +vdw 1 3.7100 0.1100 +vdw 2 3.8200 0.1010 +vdw 3 3.8200 0.1060 +vdw 4 2.5900 0.0220 0.900 +vdw 5 3.3000 0.1120 +vdw 6 2.9400 0.0260 0.910 +vdw 7 3.6500 0.1010 +vdw 8 3.8200 0.1010 +vdw 9 2.9800 0.0240 0.920 +vdw 10 3.4050 0.1100 +vdw 11 2.6550 0.0135 0.910 +vdw 12 3.9100 0.3850 +vdw 13 3.0000 0.0265 0.980 +vdw 14 4.3500 0.3850 +vdw 15 3.7100 0.1100 +vdw 16 3.8200 0.1010 +vdw 17 3.8000 0.0890 +vdw 18 2.9800 0.0260 0.920 +vdw 19 3.4050 0.1100 +vdw 20 2.6550 0.0135 0.910 +vdw 21 3.3200 0.1120 +vdw 22 3.8000 0.1010 +vdw 23 2.9800 0.0260 0.920 +vdw 24 3.7100 0.1100 +vdw 25 2.5900 0.0220 0.900 +vdw 26 3.8000 0.1010 +vdw 27 2.9800 0.0260 0.920 +vdw 28 3.8000 0.1010 +vdw 29 3.7100 0.1100 +vdw 30 3.8200 0.1060 +vdw 31 3.4500 0.1120 +vdw 32 3.3000 0.1120 +vdw 33 3.4050 0.1100 +vdw 34 2.6550 0.0150 0.910 +vdw 35 3.7100 0.1050 +vdw 36 2.4800 0.0180 0.910 +vdw 37 2.7000 0.0200 0.910 +vdw 38 2.4200 0.0200 0.900 +vdw 39 3.6500 0.1010 +vdw 40 3.8200 0.1010 +vdw 41 3.7100 0.1050 +vdw 42 2.4800 0.0180 0.910 +vdw 43 3.6800 0.1050 +vdw 44 3.7800 0.1010 +vdw 45 3.5000 0.1010 +vdw 46 3.7800 0.1010 +vdw 47 3.5000 0.1050 +vdw 48 3.7800 0.1010 +vdw 49 3.7800 0.1010 +vdw 50 2.6000 0.0180 0.910 +vdw 51 3.5000 0.1010 +vdw 52 2.5500 0.0190 0.910 +vdw 53 3.7800 0.1010 +vdw 54 3.7800 0.1010 +vdw 55 3.3000 0.1120 +vdw 56 2.8000 0.0240 0.910 +vdw 57 2.8000 0.0240 0.910 +vdw 58 3.5000 0.1050 +vdw 59 2.3000 0.0101 0.900 +vdw 60 3.8200 0.1010 +vdw 61 2.9800 0.0240 0.920 +vdw 62 3.4050 0.1120 +vdw 63 3.8200 0.1010 +vdw 64 2.9800 0.0240 0.920 +vdw 65 2.9800 0.0240 0.920 +vdw 66 3.4050 0.1100 +vdw 67 2.6550 0.0135 0.910 +vdw 68 3.4050 0.1100 +vdw 69 3.8200 0.1010 +vdw 70 4.4500 0.3900 +vdw 71 3.3600 0.1120 +vdw 72 2.6550 0.0135 0.910 +vdw 73 3.4050 0.1100 +vdw 74 2.6550 0.0135 0.910 +vdw 75 2.2000 0.0660 +vdw 76 2.9550 0.2800 +vdw 77 3.6800 0.3500 +vdw 78 3.9000 0.3800 +vdw 79 4.1400 0.4200 +vdw 80 1.8800 0.0910 +vdw 81 2.9400 0.3000 +vdw 82 3.6300 0.3500 +vdw 83 2.6800 0.2220 +vdw 84 3.4300 0.2500 +vdw 85 4.1200 0.3400 +vdw 86 4.3200 0.4300 +vdw 87 4.6100 0.5200 + + + ##################################### + ## ## + ## Van der Waals Pair Parameters ## + ## ## + ##################################### + + +vdwpr 77 85 4.2360 0.1512 +vdwpr 77 86 4.3790 0.1664 +vdwpr 77 87 4.6360 0.1720 +vdwpr 78 85 4.3150 0.1859 +vdwpr 78 86 4.4480 0.2068 +vdwpr 78 87 4.6900 0.2145 +vdwpr 79 85 4.3450 0.2894 +vdwpr 79 86 4.4750 0.3307 +vdwpr 79 87 4.7110 0.3466 + + + ################################## + ## ## + ## Bond Stretching Parameters ## + ## ## + ################################## + + +bond 1 2 375.00 1.4370 +bond 1 3 482.00 1.3450 +bond 1 4 487.00 1.0280 +bond 1 7 375.00 1.4370 +bond 1 8 374.80 1.4460 +bond 1 38 487.00 1.0280 +bond 1 39 491.40 1.3250 +bond 1 40 375.00 1.4370 +bond 2 3 345.00 1.5090 +bond 2 6 341.00 1.1120 +bond 2 30 345.00 1.5090 +bond 2 35 381.30 1.4610 +bond 2 41 381.30 1.4480 +bond 3 5 662.00 1.2255 +bond 3 7 345.00 1.5090 +bond 3 8 345.00 1.5090 +bond 3 15 482.00 1.3450 +bond 3 40 345.00 1.5090 +bond 6 7 341.00 1.1120 +bond 6 16 341.00 1.1120 +bond 6 40 341.00 1.1120 +bond 7 7 323.00 1.5250 +bond 7 8 323.00 1.5250 +bond 7 10 410.00 1.4130 +bond 7 15 375.00 1.4370 +bond 7 16 323.00 1.5250 +bond 7 30 345.00 1.5090 +bond 7 35 381.30 1.4610 +bond 7 41 381.30 1.4480 +bond 8 8 323.00 1.5250 +bond 8 9 341.00 1.1120 +bond 8 10 410.00 1.4130 +bond 8 12 215.80 1.8050 +bond 8 17 453.20 1.4990 +bond 8 22 345.00 1.5090 +bond 8 26 453.20 1.4930 +bond 8 30 345.00 1.5090 +bond 8 35 381.30 1.4480 +bond 8 14 216.00 1.8225 +bond 9 16 341.00 1.1120 +bond 10 11 548.90 0.9470 +bond 12 12 188.50 2.0190 +bond 12 13 278.40 1.3420 +bond 15 16 375.00 1.4370 +bond 16 16 323.00 1.5247 +bond 16 41 381.30 1.4480 +bond 17 17 471.90 1.3887 +bond 17 18 370.50 1.1000 +bond 17 19 431.60 1.3550 +bond 17 21 680.00 1.2747 +bond 19 20 548.90 0.9470 +bond 22 22 471.90 1.3887 +bond 22 23 370.50 1.1010 +bond 22 24 653.90 1.3550 +bond 24 25 467.60 1.0300 +bond 24 26 653.90 1.3730 +bond 24 28 653.90 1.3520 +bond 26 26 539.60 1.3710 +bond 26 27 370.50 1.0810 +bond 26 29 670.00 1.3740 +bond 27 28 370.50 1.0810 +bond 28 29 670.00 1.3270 +bond 30 31 705.00 1.2553 +bond 30 32 705.00 1.2255 +bond 30 33 431.60 1.3498 +bond 33 34 514.40 0.9737 +bond 35 36 461.90 1.0150 +bond 35 37 515.90 1.0190 +bond 41 42 461.90 1.0150 +bond 43 44 350.90 1.3888 +bond 43 46 470.70 1.3610 +bond 43 49 455.70 1.4430 +bond 43 53 435.20 1.3620 +bond 43 54 437.60 1.3300 +bond 43 63 498.90 1.4350 +bond 43 69 498.90 1.4350 +bond 43 72 575.00 1.0220 +bond 44 44 314.40 1.4223 +bond 44 45 342.20 1.3809 +bond 44 47 415.70 1.3439 +bond 44 49 335.20 1.3900 +bond 44 53 324.70 1.4280 +bond 45 46 588.30 1.2938 +bond 46 50 426.10 1.0820 +bond 47 48 439.00 1.3115 +bond 47 49 489.70 1.3083 +bond 47 53 432.70 1.3600 +bond 48 50 381.30 1.0910 +bond 49 50 402.10 1.0970 +bond 49 51 455.40 1.3516 +bond 49 54 410.30 1.4100 +bond 49 58 377.90 1.3460 +bond 51 52 300.00 1.0170 +bond 51 59 539.40 1.0170 +bond 53 54 420.70 1.4320 +bond 53 55 732.70 1.2320 +bond 53 58 210.70 1.3900 +bond 54 54 654.20 1.3200 +bond 54 56 441.30 1.0710 +bond 54 57 426.60 1.0760 +bond 54 60 292.30 1.4570 +bond 58 59 532.70 1.0480 +bond 60 61 398.50 1.1000 +bond 60 62 484.00 1.4150 +bond 60 63 390.10 1.5130 +bond 60 69 380.10 1.5130 +bond 62 63 484.00 1.4180 +bond 62 69 384.00 1.4180 +bond 62 70 450.10 1.5900 +bond 62 72 557.50 0.9650 +bond 63 63 385.10 1.5130 +bond 63 64 389.50 1.1000 +bond 63 65 392.00 1.1050 +bond 63 66 580.00 1.3750 +bond 63 68 484.00 1.4180 +bond 64 69 389.50 1.1000 +bond 65 69 405.10 1.0917 +bond 66 67 530.50 0.9620 +bond 68 69 384.00 1.4180 +bond 69 69 320.10 1.5130 +bond 70 71 776.90 1.4800 +bond 73 74 556.85 0.9572 + + + ################################ + ## ## + ## Angle Bending Parameters ## + ## ## + ################################ + + +anglep 2 1 3 50.00 122.00 +anglep 2 1 4 32.00 117.00 +anglep 3 1 4 36.00 121.00 +anglep 3 1 7 50.00 122.00 +anglep 3 1 40 50.00 121.00 +anglep 4 1 4 29.50 123.00 +anglep 4 1 7 32.00 117.00 +anglep 4 1 8 13.70 122.40 +anglep 4 1 39 41.70 120.50 +anglep 4 1 40 32.00 117.00 +anglep 8 1 38 13.70 122.40 +anglep 8 1 39 52.50 120.40 +anglep 38 1 38 29.50 120.00 +anglep 38 1 39 41.70 120.50 +angle 1 2 3 55.00 109.80 +angle 1 2 6 55.00 111.00 +angle 1 2 30 61.00 109.60 +angle 3 2 6 39.00 109.50 +angle 3 2 35 75.20 112.10 +angle 3 2 41 75.20 110.70 +angle 6 2 6 40.00 107.60 +angle 6 2 30 39.00 109.50 +angle 6 2 35 59.00 107.78 +angle 6 2 41 59.00 109.30 +anglep 1 3 2 70.00 113.40 +anglep 1 3 5 77.00 124.20 +anglep 1 3 7 70.00 113.40 +anglep 1 3 8 70.00 113.40 +anglep 1 3 40 41.00 113.40 +anglep 2 3 5 80.00 122.40 +anglep 2 3 15 70.00 113.40 +anglep 5 3 7 80.00 122.40 +anglep 5 3 8 80.00 122.40 +anglep 5 3 15 77.00 124.20 +anglep 5 3 40 80.00 122.40 +anglep 7 3 15 70.00 113.40 +anglep 15 3 40 41.00 113.40 +angle 1 7 3 61.00 109.60 +angle 1 7 6 55.00 111.00 +angle 1 7 7 54.00 111.30 +angle 1 7 8 54.00 111.30 +angle 1 7 30 61.00 109.60 +angle 3 7 6 39.00 109.50 +angle 3 7 7 58.00 110.60 +angle 3 7 8 58.00 110.60 +angle 3 7 15 61.00 109.60 +angle 3 7 16 58.00 110.60 +angle 3 7 35 75.20 112.10 +angle 3 7 41 75.20 110.70 +angle 6 7 7 42.00 110.70 +angle 6 7 8 42.00 112.80 +angle 6 7 10 59.00 110.00 108.90 108.70 +angle 6 7 15 55.00 111.00 +angle 6 7 16 42.00 112.80 +angle 6 7 30 39.00 109.50 +angle 6 7 35 59.00 107.78 +angle 6 7 41 59.00 109.30 +angle 7 7 8 48.20 109.50 110.20 111.00 +angle 7 7 10 59.70 107.50 +angle 7 7 30 58.00 110.60 +angle 7 7 35 75.20 109.00 +angle 7 7 41 56.10 108.50 +angle 8 7 8 48.20 109.50 110.20 111.00 +angle 8 7 10 59.70 107.50 +angle 8 7 30 58.00 110.60 +angle 8 7 35 75.20 109.00 +angle 8 7 41 75.20 110.70 +angle 15 7 16 54.00 104.00 +angle 15 7 30 61.00 109.60 +angle 16 7 30 58.00 110.60 +angle 16 7 41 54.00 104.00 +angle 1 8 8 56.10 109.50 +angle 1 8 9 54.60 111.00 +angle 3 8 7 47.60 110.60 +angle 3 8 8 47.60 110.60 +angle 3 8 9 39.00 109.50 +angle 7 8 7 48.20 109.50 110.20 111.00 +angle 7 8 8 48.20 109.50 110.20 111.00 +angle 7 8 9 42.00 110.70 +angle 7 8 10 59.70 107.50 +angle 7 8 12 53.20 108.00 109.50 110.10 +angle 7 8 17 38.90 110.60 +angle 7 8 22 48.20 109.50 110.20 111.00 +angle 7 8 26 38.80 112.70 +angle 7 8 30 47.60 110.60 +angle 7 8 14 53.20 112.73 +angle 8 8 8 48.20 109.50 110.20 111.00 +angle 8 8 9 42.00 110.70 +angle 8 8 12 53.20 108.00 109.50 110.10 +angle 8 8 30 47.60 110.60 +angle 8 8 35 56.10 109.50 +angle 9 8 9 40.00 107.80 +angle 9 8 10 59.00 110.00 108.90 108.70 +angle 9 8 12 53.20 110.80 110.80 108.00 +angle 9 8 17 39.60 109.50 109.30 110.40 +angle 9 8 22 61.20 109.80 109.30 110.70 +angle 9 8 26 39.60 109.50 +angle 9 8 30 39.00 109.50 +angle 9 8 35 59.00 109.30 +angle 9 8 14 35.00 109.98 +angle 7 10 11 54.00 106.80 +angle 8 10 11 54.00 106.80 +angle 8 12 8 60.40 95.90 +angle 8 12 12 71.90 101.80 +angle 8 12 13 46.80 96.00 +anglep 3 15 7 50.00 122.00 +anglep 3 15 16 50.00 122.00 +anglep 7 15 16 54.70 112.50 +angle 6 16 6 40.00 107.80 +angle 6 16 15 55.00 111.00 +angle 6 16 16 42.00 110.70 +angle 6 16 41 55.00 111.00 +angle 7 16 9 42.00 110.70 +angle 7 16 16 48.20 104.00 +angle 9 16 9 40.00 107.80 +angle 9 16 16 42.00 110.70 +angle 15 16 16 54.00 104.00 +angle 16 16 16 48.20 104.00 +angle 16 16 41 54.00 104.00 +anglep 8 17 17 33.80 122.30 +anglep 17 17 17 54.70 121.70 +anglep 17 17 18 35.30 120.00 120.50 0.00 +anglep 17 17 19 43.20 120.00 +anglep 17 17 21 60.00 123.57 +angle 17 19 20 25.90 109.00 +anglep 8 22 22 61.90 127.00 +anglep 22 22 22 63.30 120.00 +anglep 22 22 23 35.30 128.00 +anglep 22 22 24 47.50 109.00 +anglep 23 22 24 86.30 122.50 +anglep 22 24 22 86.30 109.00 +anglep 22 24 25 35.30 125.50 +anglep 25 24 26 35.30 125.50 +anglep 25 24 28 35.30 125.50 +anglep 26 24 28 86.30 110.80 +anglep 8 26 24 36.00 122.00 +anglep 8 26 26 36.00 131.00 +anglep 8 26 29 36.00 122.00 +anglep 24 26 26 47.50 104.70 +anglep 24 26 29 28.80 111.50 +anglep 24 26 27 38.10 122.50 +anglep 26 26 27 35.30 128.00 +anglep 26 26 29 47.50 110.50 +anglep 27 26 29 38.10 122.50 +anglep 24 28 24 28.80 110.30 +anglep 24 28 27 38.10 122.50 +anglep 24 28 29 28.80 112.20 +anglep 27 28 29 38.10 122.50 +angle 26 29 28 86.30 104.30 +anglep 2 30 31 80.00 122.40 +anglep 2 30 32 80.00 122.40 +anglep 2 30 33 111.50 110.30 +anglep 7 30 31 80.00 122.40 +anglep 7 30 32 80.00 122.40 +anglep 7 30 33 111.50 110.30 +anglep 8 30 31 80.00 122.40 +anglep 8 30 32 80.00 122.40 +angle 8 30 33 111.50 110.30 +anglep 31 30 31 57.60 134.00 +anglep 32 30 33 122.30 121.50 +angle 30 33 34 49.60 108.70 +angle 2 35 37 43.20 107.50 +angle 7 35 37 43.20 107.50 +angle 8 35 36 43.20 110.90 +angle 8 35 37 43.16 108.10 110.90 +angle 36 35 36 43.50 107.00 +angle 37 35 37 34.50 106.40 107.10 +anglep 1 39 1 28.80 120.00 +angle 1 40 6 55.00 111.00 +angle 3 40 6 39.00 109.50 +angle 6 40 6 40.00 107.80 +angle 2 41 42 43.20 108.50 +angle 7 41 16 54.70 112.50 +angle 7 41 42 43.20 108.50 +angle 16 41 42 43.20 110.90 +angle 42 41 42 43.20 105.40 +anglep 44 43 46 89.50 109.95 +anglep 44 43 49 82.10 123.90 +anglep 44 43 63 82.10 122.40 +anglep 44 43 69 82.10 122.40 +anglep 46 43 49 73.30 125.50 +anglep 46 43 63 73.30 127.30 +anglep 46 43 69 73.30 127.30 +anglep 53 43 54 88.10 121.00 +anglep 53 43 63 86.10 117.00 +anglep 53 43 69 86.10 117.00 +anglep 54 43 63 84.00 122.00 +anglep 54 43 69 84.00 122.00 +anglep 63 43 72 45.90 105.10 +anglep 69 43 72 45.90 105.10 +anglep 72 43 72 45.40 102.20 +anglep 43 44 44 84.00 107.00 +anglep 43 44 47 79.20 119.20 +anglep 44 44 45 87.20 112.10 +anglep 44 44 47 78.80 133.70 +anglep 44 44 49 76.90 121.00 +anglep 44 44 53 88.70 120.40 +anglep 45 44 49 87.70 126.90 +anglep 45 44 53 89.40 127.50 +angle 44 45 46 109.80 100.70 +anglep 43 46 45 83.73 110.60 +anglep 43 46 50 39.24 122.40 +anglep 45 46 50 35.30 127.00 +angle 44 47 48 95.91 115.00 +angle 44 47 49 89.47 111.50 +angle 48 47 49 125.64 114.80 +angle 49 47 53 66.62 115.00 +anglep 47 48 47 88.19 132.60 +anglep 47 48 50 39.32 113.65 +anglep 43 49 50 63.30 108.00 +anglep 44 49 47 69.11 118.50 +anglep 44 49 51 56.60 121.80 +anglep 47 49 51 68.40 118.20 +anglep 47 49 54 88.76 125.00 +anglep 47 49 58 55.82 125.80 +anglep 50 49 50 40.81 111.10 +anglep 51 49 54 80.82 117.50 +anglep 51 49 58 89.11 114.10 +anglep 49 51 52 50.23 118.00 +anglep 49 51 59 50.23 118.00 +anglep 52 51 52 27.64 121.00 +anglep 59 51 59 27.64 121.00 +anglep 43 53 47 88.10 116.55 +anglep 43 53 55 85.90 115.00 +anglep 43 53 58 81.10 119.10 +anglep 44 53 55 88.40 128.50 +anglep 44 53 58 88.70 115.50 +anglep 47 53 55 80.70 128.50 +anglep 54 53 55 49.60 127.00 +anglep 54 53 58 68.80 112.00 +anglep 55 53 58 80.70 120.00 +anglep 43 54 54 89.30 117.80 +anglep 43 54 57 35.70 115.70 +anglep 49 54 54 81.80 113.70 +anglep 49 54 56 38.80 123.10 +anglep 53 54 54 69.20 114.00 +anglep 53 54 56 39.50 121.30 +anglep 53 54 60 35.60 121.08 +anglep 54 54 56 31.90 124.70 +anglep 54 54 57 31.90 126.50 +anglep 54 54 60 30.00 126.21 +anglep 49 58 53 80.70 127.00 +anglep 49 58 59 30.60 117.00 +anglep 53 58 53 36.60 126.00 +anglep 53 58 59 47.80 117.00 +angle 54 60 61 68.10 108.85 +angle 61 60 61 34.50 109.00 +angle 61 60 62 51.50 110.00 +angle 61 60 63 38.00 109.00 +angle 61 60 69 38.00 109.50 +angle 62 60 63 75.00 113.00 +angle 62 60 69 75.00 113.00 +angle 60 62 70 80.30 110.80 +angle 60 62 72 55.30 104.00 +angle 63 62 63 88.70 107.50 +angle 63 62 70 80.30 110.80 +angle 63 62 72 55.30 102.15 +angle 69 62 69 88.70 108.00 +angle 69 62 70 80.30 110.80 +angle 69 62 72 55.30 102.15 +angle 43 63 62 35.50 110.00 +angle 43 63 63 40.90 102.00 +angle 43 63 65 50.60 108.00 +angle 43 63 68 35.50 110.00 +angle 60 63 62 65.00 110.00 +angle 60 63 63 50.00 109.35 +angle 60 63 64 38.20 111.00 +angle 60 63 68 65.00 110.00 +angle 62 63 63 88.00 108.50 +angle 62 63 64 54.10 111.80 +angle 62 63 65 55.30 109.30 +angle 63 63 63 60.00 109.35 +angle 63 63 64 38.20 109.00 +angle 63 63 65 36.00 112.60 +angle 63 63 66 88.00 108.50 +angle 63 63 68 88.00 108.50 +angle 64 63 64 35.20 108.00 +angle 64 63 66 54.10 111.00 +angle 64 63 68 54.10 111.80 +angle 65 63 65 32.80 111.10 +angle 65 63 68 55.30 109.30 +angle 63 66 67 55.30 101.15 +angle 63 68 63 88.70 107.50 +angle 69 68 69 88.70 108.00 +angle 43 69 62 35.50 118.00 +angle 43 69 65 52.60 106.66 +angle 43 69 68 35.50 109.00 +angle 43 69 69 40.90 111.00 +angle 60 69 62 65.00 110.00 +angle 60 69 63 65.00 110.00 +angle 60 69 64 38.20 111.00 +angle 60 69 68 65.00 110.00 +angle 60 69 69 50.00 109.35 +angle 62 69 64 54.10 111.80 +angle 62 69 65 55.30 109.30 +angle 62 69 69 88.00 110.00 +angle 64 69 64 25.20 108.00 +angle 64 69 68 54.10 111.80 +angle 64 69 69 38.20 109.00 +angle 65 69 65 35.50 110.60 +angle 65 69 68 55.30 109.30 +angle 65 69 69 36.00 112.60 +angle 68 69 69 88.00 110.00 +angle 69 69 69 60.00 109.35 +angle 62 70 62 65.58 97.00 +angle 62 70 71 75.86 110.00 +angle 71 70 71 89.88 121.20 +angle 74 73 74 48.70 108.50 + + + ############################### + ## ## + ## Stretch-Bend Parameters ## + ## ## + ############################### + + +strbnd 2 1 3 7.20 7.20 +strbnd 2 1 4 4.30 4.30 +strbnd 3 1 4 4.30 4.30 +strbnd 3 1 7 7.20 7.20 +strbnd 3 1 40 7.20 7.20 +strbnd 4 1 7 4.30 4.30 +strbnd 4 1 8 4.30 4.30 +strbnd 4 1 39 4.30 4.30 +strbnd 38 1 39 4.30 4.30 +strbnd 4 1 40 4.30 4.30 +strbnd 8 1 38 4.30 4.30 +strbnd 8 1 39 7.20 7.20 +strbnd 1 2 3 18.70 18.70 +strbnd 1 2 6 11.50 11.50 +strbnd 1 2 30 18.70 18.70 +strbnd 3 2 6 11.50 11.50 +strbnd 3 2 35 18.70 18.70 +strbnd 3 2 41 18.70 18.70 +strbnd 6 2 30 11.50 11.50 +strbnd 6 2 35 11.50 11.50 +strbnd 6 2 41 11.50 11.50 +strbnd 1 3 2 18.70 18.70 +strbnd 1 3 5 18.70 18.70 +strbnd 1 3 7 18.70 18.70 +strbnd 1 3 8 18.70 18.70 +strbnd 1 3 40 18.70 18.70 +strbnd 2 3 5 18.70 18.70 +strbnd 2 3 15 18.70 18.70 +strbnd 5 3 7 18.70 18.70 +strbnd 5 3 8 18.70 18.70 +strbnd 5 3 15 18.70 18.70 +strbnd 5 3 40 18.70 18.70 +strbnd 7 3 15 18.70 18.70 +strbnd 15 3 40 18.70 18.70 +strbnd 1 7 3 18.70 18.70 +strbnd 1 7 6 11.50 11.50 +strbnd 1 7 7 18.70 18.70 +strbnd 1 7 8 18.70 18.70 +strbnd 1 7 30 18.70 18.70 +strbnd 3 7 6 11.50 11.50 +strbnd 3 7 7 18.70 18.70 +strbnd 3 7 8 18.70 18.70 +strbnd 3 7 15 18.70 18.70 +strbnd 3 7 16 18.70 18.70 +strbnd 3 7 35 18.70 18.70 +strbnd 3 7 41 18.70 18.70 +strbnd 6 7 7 11.50 11.50 +strbnd 6 7 8 11.50 11.50 +strbnd 6 7 10 11.50 11.50 +strbnd 6 7 15 11.50 11.50 +strbnd 6 7 16 11.50 11.50 +strbnd 6 7 30 11.50 11.50 +strbnd 6 7 35 11.50 11.50 +strbnd 6 7 41 11.50 11.50 +strbnd 7 7 8 18.70 18.70 +strbnd 7 7 10 18.70 18.70 +strbnd 7 7 30 18.70 18.70 +strbnd 7 7 41 18.70 18.70 +strbnd 8 7 8 18.70 18.70 +strbnd 8 7 10 18.70 18.70 +strbnd 8 7 30 18.70 18.70 +strbnd 8 7 41 18.70 18.70 +strbnd 15 7 16 18.70 18.70 +strbnd 15 7 30 18.70 18.70 +strbnd 16 7 30 18.70 18.70 +strbnd 16 7 41 18.70 18.70 +strbnd 1 8 8 18.70 18.70 +strbnd 1 8 9 11.50 11.50 +strbnd 3 8 7 18.70 18.70 +strbnd 3 8 8 18.70 18.70 +strbnd 3 8 9 11.50 11.50 +strbnd 7 8 7 18.70 18.70 +strbnd 7 8 8 18.70 18.70 +strbnd 7 8 9 11.50 11.50 +strbnd 7 8 10 18.70 18.70 +strbnd 7 8 12 18.70 18.70 +strbnd 7 8 17 18.70 18.70 +strbnd 7 8 22 18.70 18.70 +strbnd 7 8 26 18.70 18.70 +strbnd 7 8 30 18.70 18.70 +strbnd 7 8 14 18.70 18.70 +strbnd 8 8 8 18.70 18.70 +strbnd 8 8 9 11.50 11.50 +strbnd 8 8 12 18.70 18.70 +strbnd 8 8 30 18.70 18.70 +strbnd 8 8 35 18.70 18.70 +strbnd 9 8 10 11.50 11.50 +strbnd 9 8 12 11.50 11.50 +strbnd 9 8 17 11.50 11.50 +strbnd 9 8 22 11.50 11.50 +strbnd 9 8 26 11.50 11.50 +strbnd 9 8 30 11.50 11.50 +strbnd 9 8 35 11.50 11.50 +strbnd 7 10 11 12.95 12.95 +strbnd 8 10 11 12.95 12.95 +strbnd 8 12 8 -5.75 -5.75 +strbnd 8 12 12 -5.75 -5.75 +strbnd 8 12 13 1.45 1.45 +strbnd 3 15 7 7.20 7.20 +strbnd 3 15 16 7.20 7.20 +strbnd 7 15 16 7.20 7.20 +strbnd 6 16 15 11.50 11.50 +strbnd 6 16 16 11.50 11.50 +strbnd 6 16 41 11.50 11.50 +strbnd 7 16 9 11.50 11.50 +strbnd 7 16 16 18.70 18.70 +strbnd 9 16 16 11.50 11.50 +strbnd 15 16 16 18.70 18.70 +strbnd 16 16 16 18.70 18.70 +strbnd 16 16 41 18.70 18.70 +strbnd 8 17 17 18.70 18.70 +strbnd 17 17 17 18.70 18.70 +strbnd 17 17 18 11.50 11.50 +strbnd 17 17 19 18.70 18.70 +strbnd 17 17 21 18.70 18.70 +strbnd 17 19 20 12.95 12.95 +strbnd 8 22 22 18.70 18.70 +strbnd 22 22 22 18.70 18.70 +strbnd 22 22 23 11.50 11.50 +strbnd 22 22 24 18.70 18.70 +strbnd 23 22 24 11.50 11.50 +strbnd 22 24 22 14.40 14.40 +strbnd 22 24 25 4.30 4.30 +strbnd 25 24 26 4.30 4.30 +strbnd 25 24 28 4.30 4.30 +strbnd 26 24 28 14.40 14.40 +strbnd 8 26 24 18.70 18.70 +strbnd 8 26 26 18.70 18.70 +strbnd 8 26 29 18.70 18.70 +strbnd 24 26 26 18.70 18.70 +strbnd 24 26 29 18.70 18.70 +strbnd 24 26 27 11.50 11.50 +strbnd 26 26 27 11.50 11.50 +strbnd 26 26 29 18.70 18.70 +strbnd 27 26 29 11.50 11.50 +strbnd 24 28 24 18.70 18.70 +strbnd 24 28 27 11.50 11.50 +strbnd 24 28 29 18.70 18.70 +strbnd 27 28 29 11.50 11.50 +strbnd 26 29 28 14.40 14.40 +strbnd 2 30 31 18.70 18.70 +strbnd 2 30 32 18.70 18.70 +strbnd 2 30 33 18.70 18.70 +strbnd 7 30 31 18.70 18.70 +strbnd 7 30 32 18.70 18.70 +strbnd 7 30 33 18.70 18.70 +strbnd 8 30 31 18.70 18.70 +strbnd 8 30 32 18.70 18.70 +strbnd 8 30 33 18.70 18.70 +strbnd 31 30 31 18.70 18.70 +strbnd 32 30 33 18.70 18.70 +strbnd 2 35 37 4.30 4.30 +strbnd 7 35 37 4.30 4.30 +strbnd 8 35 36 4.30 4.30 +strbnd 8 35 37 4.30 4.30 +strbnd 1 39 1 18.70 18.70 +strbnd 1 40 6 11.50 11.50 +strbnd 3 40 6 11.50 11.50 +strbnd 2 41 42 4.30 4.30 +strbnd 7 41 16 7.20 7.20 +strbnd 7 41 42 4.30 4.30 +strbnd 16 41 42 4.30 4.30 +strbnd 44 43 46 14.40 14.40 +strbnd 44 43 49 14.40 14.40 +strbnd 44 43 63 14.40 14.40 +strbnd 44 43 69 14.40 14.40 +strbnd 46 43 49 14.40 14.40 +strbnd 46 43 63 14.40 14.40 +strbnd 46 43 69 14.40 14.40 +strbnd 53 43 54 14.40 14.40 +strbnd 53 43 63 14.40 14.40 +strbnd 53 43 69 14.40 14.40 +strbnd 54 43 63 14.40 14.40 +strbnd 54 43 69 14.40 14.40 +strbnd 63 43 72 4.30 4.30 +strbnd 69 43 72 4.30 4.30 +strbnd 43 44 44 18.70 18.70 +strbnd 43 44 47 18.70 18.70 +strbnd 44 44 45 18.70 18.70 +strbnd 44 44 47 18.70 18.70 +strbnd 44 44 49 18.70 18.70 +strbnd 44 44 53 18.70 18.70 +strbnd 45 44 49 18.70 18.70 +strbnd 45 44 53 18.70 18.70 +strbnd 44 45 46 14.40 14.40 +strbnd 43 46 45 18.70 18.70 +strbnd 43 46 50 11.50 11.50 +strbnd 45 46 50 11.50 11.50 +strbnd 44 47 48 14.40 14.40 +strbnd 44 47 49 14.40 14.40 +strbnd 48 47 49 14.40 14.40 +strbnd 49 47 53 14.40 14.40 +strbnd 47 48 47 18.70 18.70 +strbnd 47 48 50 11.50 11.50 +strbnd 43 49 50 11.50 11.50 +strbnd 44 49 47 18.70 18.70 +strbnd 44 49 51 18.70 18.70 +strbnd 47 49 51 18.70 18.70 +strbnd 47 49 54 18.70 18.70 +strbnd 47 49 58 18.70 18.70 +strbnd 51 49 54 18.70 18.70 +strbnd 51 49 58 18.70 18.70 +strbnd 49 51 52 4.30 4.30 +strbnd 49 51 59 4.30 4.30 +strbnd 43 53 47 18.70 18.70 +strbnd 43 53 55 18.70 18.70 +strbnd 43 53 58 18.70 18.70 +strbnd 44 53 55 18.70 18.70 +strbnd 44 53 58 18.70 18.70 +strbnd 47 53 55 18.70 18.70 +strbnd 54 53 55 18.70 18.70 +strbnd 54 53 58 18.70 18.70 +strbnd 55 53 58 18.70 18.70 +strbnd 43 54 54 18.70 18.70 +strbnd 43 54 57 11.50 11.50 +strbnd 49 54 54 18.70 18.70 +strbnd 49 54 56 11.50 11.50 +strbnd 53 54 54 18.70 18.70 +strbnd 53 54 56 11.50 11.50 +strbnd 53 54 60 18.70 18.70 +strbnd 54 54 56 11.50 11.50 +strbnd 54 54 57 11.50 11.50 +strbnd 54 54 60 18.70 18.70 +strbnd 49 58 53 7.20 7.20 +strbnd 49 58 59 4.30 4.30 +strbnd 53 58 53 7.20 7.20 +strbnd 53 58 59 4.30 4.30 +strbnd 54 60 61 11.50 11.50 +strbnd 61 60 62 11.50 11.50 +strbnd 61 60 63 11.50 11.50 +strbnd 61 60 69 11.50 11.50 +strbnd 62 60 63 18.70 18.70 +strbnd 62 60 69 18.70 18.70 +strbnd 60 62 70 14.40 14.40 +strbnd 60 62 72 12.95 12.95 +strbnd 63 62 63 14.40 14.40 +strbnd 63 62 70 14.40 14.40 +strbnd 63 62 72 12.95 12.95 +strbnd 69 62 69 14.40 14.40 +strbnd 69 62 70 14.40 14.40 +strbnd 69 62 72 12.95 12.95 +strbnd 43 63 62 18.70 18.70 +strbnd 43 63 63 18.70 18.70 +strbnd 43 63 65 11.50 11.50 +strbnd 43 63 68 18.70 18.70 +strbnd 60 63 62 18.70 18.70 +strbnd 60 63 63 18.70 18.70 +strbnd 60 63 64 11.50 11.50 +strbnd 60 63 68 18.70 18.70 +strbnd 62 63 63 18.70 18.70 +strbnd 62 63 64 11.50 11.50 +strbnd 62 63 65 11.50 11.50 +strbnd 63 63 63 18.70 18.70 +strbnd 63 63 64 11.50 11.50 +strbnd 63 63 65 11.50 11.50 +strbnd 63 63 66 18.70 18.70 +strbnd 63 63 68 18.70 18.70 +strbnd 64 63 66 11.50 11.50 +strbnd 64 63 68 11.50 11.50 +strbnd 65 63 68 11.50 11.50 +strbnd 43 69 62 18.70 18.70 +strbnd 43 69 65 11.50 11.50 +strbnd 43 69 68 18.70 18.70 +strbnd 43 69 69 18.70 18.70 +strbnd 60 69 62 18.70 18.70 +strbnd 60 69 63 18.70 18.70 +strbnd 60 69 64 11.50 11.50 +strbnd 60 69 68 18.70 18.70 +strbnd 60 69 69 18.70 18.70 +strbnd 62 69 64 11.50 11.50 +strbnd 62 69 65 11.50 11.50 +strbnd 62 69 69 18.70 18.70 +strbnd 64 69 68 11.50 11.50 +strbnd 64 69 69 11.50 11.50 +strbnd 65 69 68 11.50 11.50 +strbnd 65 69 69 11.50 11.50 +strbnd 68 69 69 18.70 18.70 +strbnd 69 69 69 18.70 18.70 +strbnd 62 70 62 14.40 14.40 +strbnd 62 70 71 14.40 14.40 +strbnd 71 70 71 14.40 14.40 + + + ############################### + ## ## + ## Urey-Bradley Parameters ## + ## ## + ############################### + + +ureybrad 74 73 74 -7.60 1.5537 + + + #################################### + ## ## + ## Out-of-Plane Bend Parameters ## + ## ## + #################################### + + +opbend 2 1 0 0 41.70 +opbend 3 1 0 0 70.50 +opbend 4 1 0 0 12.90 +opbend 7 1 0 0 41.70 +opbend 8 1 0 0 0.70 +opbend 38 1 0 0 12.90 +opbend 39 1 0 0 3.60 +opbend 40 1 0 0 41.70 +opbend 1 3 0 0 107.90 +opbend 2 3 0 0 49.60 +opbend 5 3 0 0 54.00 +opbend 7 3 0 0 49.60 +opbend 8 3 0 0 20.90 +opbend 15 3 0 0 49.60 +opbend 40 3 0 0 49.60 +opbend 3 15 0 0 14.40 +opbend 7 15 0 0 14.40 +opbend 16 15 0 0 14.40 +opbend 40 15 0 0 14.40 +opbend 8 17 0 0 14.40 +opbend 17 17 0 0 14.40 +opbend 18 17 0 0 15.10 +opbend 19 17 0 0 14.40 +opbend 21 17 0 0 14.40 +opbend 8 22 0 0 14.40 +opbend 22 22 0 0 14.40 +opbend 23 22 0 0 15.10 +opbend 24 22 0 0 14.40 +opbend 22 24 0 0 34.50 +opbend 25 24 0 0 12.90 +opbend 26 24 0 0 15.10 +opbend 28 24 0 0 15.10 +opbend 8 26 0 0 14.40 +opbend 24 26 0 0 14.40 +opbend 26 26 0 0 14.40 +opbend 27 26 0 0 14.40 +opbend 29 26 0 0 14.40 +opbend 24 28 0 0 14.40 +opbend 27 28 0 0 14.40 +opbend 29 28 0 0 14.40 +opbend 2 30 0 0 121.60 +opbend 7 30 0 0 121.60 +opbend 8 30 0 0 121.60 +opbend 31 30 0 0 118.70 +opbend 32 30 0 0 118.70 +opbend 33 30 0 0 122.30 +opbend 1 39 0 0 1.40 +opbend 44 43 0 0 15.10 +opbend 46 43 0 0 15.10 +opbend 49 43 0 0 133.10 +opbend 53 43 0 0 14.40 +opbend 54 43 0 0 14.40 +opbend 63 43 0 0 133.10 +opbend 69 43 0 0 133.10 +opbend 72 43 0 0 0.00 +opbend 43 44 0 0 14.40 +opbend 44 44 0 0 14.40 +opbend 45 44 0 0 14.40 +opbend 47 44 0 0 14.40 +opbend 49 44 0 0 14.40 +opbend 53 44 0 0 14.40 +opbend 43 46 0 0 14.40 +opbend 45 46 0 0 14.40 +opbend 50 46 0 0 57.60 +opbend 47 48 0 0 14.40 +opbend 50 48 0 0 18.00 +opbend 44 49 0 0 14.40 +opbend 47 49 0 0 14.40 +opbend 51 49 0 0 46.80 +opbend 54 49 0 0 21.60 +opbend 58 49 0 0 14.40 +opbend 49 51 0 0 14.40 +opbend 52 51 0 0 14.40 +opbend 59 51 0 0 14.40 +opbend 43 53 0 0 14.40 +opbend 44 53 0 0 121.60 +opbend 47 53 0 0 118.70 +opbend 54 53 0 0 20.90 +opbend 55 53 0 0 86.30 +opbend 58 53 0 0 86.30 +opbend 43 54 0 0 14.40 +opbend 49 54 0 0 14.40 +opbend 53 54 0 0 14.40 +opbend 54 54 0 0 14.40 +opbend 56 54 0 0 14.40 +opbend 57 54 0 0 14.40 +opbend 60 54 0 0 14.40 +opbend 49 58 0 0 15.10 +opbend 53 58 0 0 15.10 +opbend 59 58 0 0 12.90 + + + ############################ + ## ## + ## Torsional Parameters ## + ## ## + ############################ + + +torsion 3 1 2 3 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 3 1 2 6 0.000 0.0 1 0.000 180.0 2 -0.126 0.0 3 +torsion 3 1 2 30 -0.856 0.0 1 0.048 180.0 2 -1.842 0.0 3 +torsion 4 1 2 3 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 4 1 2 6 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 4 1 2 30 0.000 0.0 1 8.000 180.0 2 0.000 0.0 3 +torsion 2 1 3 2 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 2 1 3 5 1.000 0.0 1 2.250 180.0 2 -2.250 0.0 3 +torsion 2 1 3 7 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 2 1 3 40 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 4 1 3 2 0.000 0.0 1 1.000 180.0 2 0.800 0.0 3 +torsion 4 1 3 5 0.000 0.0 1 1.000 180.0 2 -0.550 0.0 3 +torsion 4 1 3 7 0.000 0.0 1 1.000 180.0 2 0.800 0.0 3 +torsion 4 1 3 8 0.000 0.0 1 1.000 180.0 2 0.800 0.0 3 +torsion 4 1 3 40 0.000 0.0 1 1.000 180.0 2 0.800 0.0 3 +torsion 7 1 3 2 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 7 1 3 5 1.000 0.0 1 2.250 180.0 2 -2.250 0.0 3 +torsion 7 1 3 7 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 7 1 3 40 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 40 1 3 2 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 40 1 3 5 1.000 0.0 1 2.250 180.0 2 -2.250 0.0 3 +torsion 40 1 3 7 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 3 1 7 3 0.794 0.0 1 -0.639 180.0 2 0.720 0.0 3 +torsion 3 1 7 6 0.000 0.0 1 0.000 180.0 2 -0.126 0.0 3 +torsion 3 1 7 7 1.999 0.0 1 0.021 180.0 2 0.000 0.0 3 +torsion 3 1 7 8 1.999 0.0 1 0.021 180.0 2 0.000 0.0 3 +torsion 3 1 7 30 -0.856 0.0 1 0.048 180.0 2 -1.842 0.0 3 +torsion 4 1 7 3 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 4 1 7 6 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 4 1 7 7 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 4 1 7 8 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 4 1 7 30 0.000 0.0 1 8.000 180.0 2 0.000 0.0 3 +torsion 4 1 8 8 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 4 1 8 9 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 38 1 8 8 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 38 1 8 9 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 39 1 8 8 0.982 0.0 1 0.994 180.0 2 0.170 0.0 3 +torsion 39 1 8 9 0.000 0.0 1 0.000 180.0 2 -0.126 0.0 3 +torsion 3 1 40 6 0.000 0.0 1 0.000 180.0 2 -0.126 0.0 3 +torsion 4 1 40 6 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 4 1 39 1 0.000 0.0 1 4.000 180.0 2 0.000 0.0 3 +torsion 8 1 39 1 0.000 0.0 1 4.500 180.0 2 0.000 0.0 3 +torsion 38 1 39 1 0.000 0.0 1 4.000 180.0 2 0.000 0.0 3 +torsion 1 2 3 1 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 1 2 3 5 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 1 2 3 15 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 6 2 3 1 0.000 0.0 1 0.000 180.0 2 -0.010 0.0 3 +torsion 6 2 3 5 0.000 0.0 1 0.000 180.0 2 0.235 0.0 3 +torsion 6 2 3 15 0.000 0.0 1 0.000 180.0 2 -0.010 0.0 3 +torsion 41 2 3 1 -0.397 0.0 1 2.196 180.0 2 -0.371 0.0 3 +torsion 41 2 3 5 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 41 2 3 15 -0.397 0.0 1 2.196 180.0 2 -0.371 0.0 3 +torsion 1 2 30 31 -0.059 0.0 1 1.900 180.0 2 -0.045 0.0 3 +torsion 1 2 30 32 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 1 2 30 33 -0.059 0.0 1 1.900 180.0 2 -0.045 0.0 3 +torsion 6 2 30 31 -0.154 0.0 1 0.044 180.0 2 -0.086 0.0 3 +torsion 6 2 30 32 0.000 0.0 1 0.000 180.0 2 0.235 0.0 3 +torsion 6 2 30 33 -0.154 0.0 1 0.044 180.0 2 -0.086 0.0 3 +torsion 3 2 41 42 1.239 0.0 1 -0.405 180.0 2 0.035 0.0 3 +torsion 6 2 41 42 0.000 0.0 1 -0.081 180.0 2 0.370 0.0 3 +torsion 1 3 7 1 -1.688 0.0 1 4.249 180.0 2 0.000 0.0 3 +torsion 1 3 7 6 0.000 0.0 1 0.000 180.0 2 -0.010 0.0 3 +torsion 1 3 7 7 0.447 0.0 1 1.707 180.0 2 -1.342 0.0 3 +torsion 1 3 7 8 0.447 0.0 1 1.707 180.0 2 -1.342 0.0 3 +torsion 1 3 7 15 -2.118 0.0 1 1.173 180.0 2 0.000 0.0 3 +torsion 1 3 7 16 2.225 0.0 1 -1.252 180.0 2 -1.067 0.0 3 +torsion 1 3 7 35 -0.397 0.0 1 2.196 180.0 2 -0.371 0.0 3 +torsion 1 3 7 41 -0.397 0.0 1 2.196 180.0 2 -0.371 0.0 3 +torsion 5 3 7 1 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 5 3 7 6 0.000 0.0 1 0.000 180.0 2 0.235 0.0 3 +torsion 5 3 7 7 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 5 3 7 8 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 5 3 7 15 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 5 3 7 16 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 5 3 7 35 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 5 3 7 41 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 15 3 7 1 -1.804 0.0 1 3.612 180.0 2 -0.196 0.0 3 +torsion 15 3 7 6 0.000 0.0 1 0.000 180.0 2 -0.010 0.0 3 +torsion 15 3 7 7 0.355 0.0 1 1.478 180.0 2 -0.896 0.0 3 +torsion 15 3 7 8 0.355 0.0 1 1.478 180.0 2 -0.896 0.0 3 +torsion 15 3 7 15 -2.118 0.0 1 1.173 180.0 2 0.000 0.0 3 +torsion 15 3 7 16 2.225 0.0 1 -1.252 180.0 2 -1.067 0.0 3 +torsion 15 3 7 41 -0.397 0.0 1 2.196 180.0 2 -0.371 0.0 3 +torsion 1 3 8 7 0.281 0.0 1 0.664 180.0 2 -0.847 0.0 3 +torsion 1 3 8 8 -0.475 0.0 1 0.775 180.0 2 0.042 0.0 3 +torsion 1 3 8 9 0.000 0.0 1 0.000 180.0 2 0.230 0.0 3 +torsion 5 3 8 7 1.091 0.0 1 0.448 180.0 2 0.596 0.0 3 +torsion 5 3 8 8 0.454 0.0 1 0.080 180.0 2 -0.310 0.0 3 +torsion 5 3 8 9 -0.154 0.0 1 0.044 180.0 2 -0.086 0.0 3 +torsion 2 3 15 7 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 2 3 15 16 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 5 3 15 7 1.000 0.0 1 2.250 180.0 2 -2.250 0.0 3 +torsion 5 3 15 16 1.000 0.0 1 2.250 180.0 2 -2.250 0.0 3 +torsion 7 3 15 7 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 7 3 15 16 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 40 3 15 7 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 40 3 15 16 -1.000 0.0 1 2.000 180.0 2 2.000 0.0 3 +torsion 1 3 40 6 0.000 0.0 1 0.000 180.0 2 -0.010 0.0 3 +torsion 5 3 40 6 0.000 0.0 1 0.000 180.0 2 0.235 0.0 3 +torsion 15 3 40 6 0.000 0.0 1 0.000 180.0 2 -0.010 0.0 3 +torsion 1 7 7 6 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 1 7 7 8 0.774 0.0 1 -1.686 180.0 2 0.000 0.0 3 +torsion 1 7 7 10 -1.094 0.0 1 0.621 180.0 2 0.018 0.0 3 +torsion 3 7 7 6 0.000 0.0 1 0.000 180.0 2 0.180 0.0 3 +torsion 3 7 7 8 1.343 0.0 1 0.135 180.0 2 0.000 0.0 3 +torsion 3 7 7 10 -0.538 0.0 1 0.703 180.0 2 -0.166 0.0 3 +torsion 6 7 7 6 0.000 0.0 1 0.000 180.0 2 0.299 0.0 3 +torsion 6 7 7 8 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 6 7 7 10 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 6 7 7 30 0.000 0.0 1 0.000 180.0 2 0.180 0.0 3 +torsion 6 7 7 35 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 6 7 7 41 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 8 7 7 30 1.343 0.0 1 0.135 180.0 2 0.000 0.0 3 +torsion 8 7 7 35 -0.282 0.0 1 -0.258 180.0 2 0.000 0.0 3 +torsion 8 7 7 41 -0.282 0.0 1 -0.258 180.0 2 0.000 0.0 3 +torsion 10 7 7 17 -0.538 0.0 1 0.703 180.0 2 -0.166 0.0 3 +torsion 10 7 7 30 -0.538 0.0 1 0.703 180.0 2 -0.166 0.0 3 +torsion 10 7 7 35 -1.094 0.0 1 0.621 180.0 2 0.018 0.0 3 +torsion 10 7 7 41 -1.094 0.0 1 0.621 180.0 2 0.018 0.0 3 +torsion 1 7 8 3 -0.508 0.0 1 -0.213 180.0 2 -0.337 0.0 3 +torsion 1 7 8 7 -0.899 0.0 1 1.078 180.0 2 -0.341 0.0 3 +torsion 1 7 8 8 0.370 0.0 1 0.594 180.0 2 -0.226 0.0 3 +torsion 1 7 8 9 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 1 7 8 10 0.192 0.0 1 -0.115 180.0 2 -0.309 0.0 3 +torsion 1 7 8 12 -0.870 0.0 1 0.910 180.0 2 -0.718 0.0 3 +torsion 1 7 8 17 -2.284 0.0 1 1.340 180.0 2 0.000 0.0 3 +torsion 1 7 8 22 -3.042 0.0 1 1.086 180.0 2 0.000 0.0 3 +torsion 1 7 8 26 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 1 7 8 30 0.165 0.0 1 1.400 180.0 2 0.000 0.0 3 +torsion 1 7 8 14 3.405 0.0 1 2.860 180.0 2 -0.401 0.0 3 +torsion 3 7 8 3 -3.063 0.0 1 -0.952 180.0 2 0.398 0.0 3 +torsion 3 7 8 7 1.148 0.0 1 -0.289 180.0 2 -0.557 0.0 3 +torsion 3 7 8 8 2.523 0.0 1 0.931 180.0 2 -0.410 0.0 3 +torsion 3 7 8 9 0.000 0.0 1 0.000 180.0 2 0.180 0.0 3 +torsion 3 7 8 10 -1.664 0.0 1 -0.531 180.0 2 0.000 0.0 3 +torsion 3 7 8 12 -2.400 0.0 1 0.550 180.0 2 0.000 0.0 3 +torsion 3 7 8 17 -3.229 0.0 1 0.588 180.0 2 0.000 0.0 3 +torsion 3 7 8 22 -1.155 0.0 1 1.249 180.0 2 0.000 0.0 3 +torsion 3 7 8 26 0.139 0.0 1 -0.814 180.0 2 0.000 0.0 3 +torsion 3 7 8 30 -1.178 0.0 1 1.055 180.0 2 0.000 0.0 3 +torsion 3 7 8 14 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 6 7 8 3 0.000 0.0 1 0.000 180.0 2 0.180 0.0 3 +torsion 6 7 8 7 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 6 7 8 8 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 6 7 8 9 0.000 0.0 1 0.000 180.0 2 0.299 0.0 3 +torsion 6 7 8 10 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 6 7 8 12 0.000 0.0 1 0.000 180.0 2 0.475 0.0 3 +torsion 6 7 8 17 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 6 7 8 22 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 6 7 8 26 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 6 7 8 30 0.000 0.0 1 0.000 180.0 2 0.180 0.0 3 +torsion 6 7 8 14 0.000 0.0 1 0.000 180.0 2 0.475 0.0 3 +torsion 7 7 8 8 0.856 0.0 1 0.841 180.0 2 -0.374 0.0 3 +torsion 7 7 8 9 0.000 0.0 1 0.000 180.0 2 0.091 0.0 3 +torsion 8 7 8 7 -0.631 0.0 1 1.067 180.0 2 -0.703 0.0 3 +torsion 8 7 8 8 -0.631 0.0 1 1.067 180.0 2 -0.703 0.0 3 +torsion 8 7 8 9 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 10 7 8 9 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 30 7 8 3 -2.457 0.0 1 0.853 180.0 2 -0.025 0.0 3 +torsion 30 7 8 7 -1.349 0.0 1 0.221 180.0 2 -0.157 0.0 3 +torsion 30 7 8 8 0.267 0.0 1 -0.324 180.0 2 -0.321 0.0 3 +torsion 30 7 8 9 0.000 0.0 1 0.000 180.0 2 0.180 0.0 3 +torsion 30 7 8 10 -0.538 0.0 1 0.703 180.0 2 -0.166 0.0 3 +torsion 30 7 8 12 -2.400 0.0 1 0.550 180.0 2 0.000 0.0 3 +torsion 30 7 8 17 -3.229 0.0 1 0.588 180.0 2 0.000 0.0 3 +torsion 30 7 8 22 -1.155 0.0 1 1.249 180.0 2 0.000 0.0 3 +torsion 30 7 8 26 0.139 0.0 1 -0.814 180.0 2 0.000 0.0 3 +torsion 30 7 8 30 -1.178 0.0 1 1.055 180.0 2 0.000 0.0 3 +torsion 35 7 8 7 -1.602 0.0 1 1.213 180.0 2 -0.466 0.0 3 +torsion 35 7 8 9 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 35 7 8 10 -1.094 0.0 1 0.621 180.0 2 0.018 0.0 3 +torsion 35 7 8 12 -1.070 0.0 1 1.510 180.0 2 -0.718 0.0 3 +torsion 35 7 8 17 -2.284 0.0 1 1.340 180.0 2 0.000 0.0 3 +torsion 35 7 8 22 -3.042 0.0 1 1.086 180.0 2 0.000 0.0 3 +torsion 35 7 8 26 -1.642 0.0 1 -1.232 180.0 2 0.000 0.0 3 +torsion 35 7 8 30 0.165 0.0 1 1.400 180.0 2 0.000 0.0 3 +torsion 41 7 8 3 -0.536 0.0 1 0.869 180.0 2 -0.995 0.0 3 +torsion 41 7 8 7 -1.602 0.0 1 1.213 180.0 2 -0.466 0.0 3 +torsion 41 7 8 8 0.122 0.0 1 0.091 180.0 2 0.024 0.0 3 +torsion 41 7 8 9 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 41 7 8 10 -1.094 0.0 1 0.621 180.0 2 0.018 0.0 3 +torsion 41 7 8 12 -1.070 0.0 1 1.510 180.0 2 -0.718 0.0 3 +torsion 41 7 8 17 -2.284 0.0 1 1.340 180.0 2 0.000 0.0 3 +torsion 41 7 8 22 -3.042 0.0 1 1.086 180.0 2 0.000 0.0 3 +torsion 41 7 8 26 -1.642 0.0 1 -1.232 180.0 2 0.000 0.0 3 +torsion 41 7 8 30 0.165 0.0 1 1.400 180.0 2 0.000 0.0 3 +torsion 6 7 10 11 0.000 0.0 1 0.000 180.0 2 0.266 0.0 3 +torsion 7 7 10 11 -1.372 0.0 1 0.232 180.0 2 0.400 0.0 3 +torsion 8 7 10 11 -1.372 0.0 1 0.232 180.0 2 0.400 0.0 3 +torsion 3 7 15 3 -0.240 0.0 1 -3.086 180.0 2 -1.829 0.0 3 +torsion 3 7 15 16 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 6 7 15 3 0.000 0.0 1 0.000 180.0 2 -0.126 0.0 3 +torsion 6 7 15 16 0.000 0.0 1 0.000 180.0 2 -0.126 0.0 3 +torsion 16 7 15 3 3.089 0.0 1 5.376 180.0 2 -1.829 0.0 3 +torsion 16 7 15 16 2.216 0.0 1 0.215 180.0 2 0.810 0.0 3 +torsion 30 7 15 3 -0.240 0.0 1 -3.086 180.0 2 -1.829 0.0 3 +torsion 30 7 15 16 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 3 7 16 9 0.000 0.0 1 0.000 180.0 2 0.180 0.0 3 +torsion 3 7 16 16 -0.928 0.0 1 1.027 180.0 2 0.000 0.0 3 +torsion 6 7 16 9 0.000 0.0 1 0.000 180.0 2 0.299 0.0 3 +torsion 6 7 16 16 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 15 7 16 9 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 15 7 16 16 -0.201 0.0 1 0.687 180.0 2 0.000 0.0 3 +torsion 30 7 16 9 0.000 0.0 1 0.000 180.0 2 0.180 0.0 3 +torsion 30 7 16 16 -0.928 0.0 1 1.027 180.0 2 0.000 0.0 3 +torsion 41 7 16 9 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 41 7 16 16 -0.201 0.0 1 0.687 180.0 2 0.000 0.0 3 +torsion 1 7 30 31 -0.059 0.0 1 1.900 180.0 2 -0.045 0.0 3 +torsion 1 7 30 32 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 1 7 30 33 -0.059 0.0 1 1.900 180.0 2 -0.045 0.0 3 +torsion 6 7 30 31 -0.154 0.0 1 0.044 180.0 2 -0.086 0.0 3 +torsion 6 7 30 32 0.000 0.0 1 0.000 180.0 2 0.235 0.0 3 +torsion 6 7 30 33 -0.154 0.0 1 0.044 180.0 2 -0.086 0.0 3 +torsion 7 7 30 31 0.000 0.0 1 -0.489 180.0 2 0.000 0.0 3 +torsion 7 7 30 32 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 7 7 30 33 0.000 0.0 1 -0.489 180.0 2 0.000 0.0 3 +torsion 8 7 30 31 0.000 0.0 1 -0.489 180.0 2 0.000 0.0 3 +torsion 8 7 30 32 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 8 7 30 33 0.000 0.0 1 -0.489 180.0 2 0.000 0.0 3 +torsion 15 7 30 31 -0.059 0.0 1 1.900 180.0 2 -0.045 0.0 3 +torsion 15 7 30 32 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 15 7 30 33 -0.059 0.0 1 1.900 180.0 2 -0.045 0.0 3 +torsion 16 7 30 31 0.000 0.0 1 -0.489 180.0 2 0.000 0.0 3 +torsion 16 7 30 32 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 16 7 30 33 0.000 0.0 1 -0.489 180.0 2 0.000 0.0 3 +torsion 3 7 35 37 -0.107 0.0 1 0.512 180.0 2 0.365 0.0 3 +torsion 6 7 35 37 0.072 0.0 1 -0.012 180.0 2 0.563 0.0 3 +torsion 7 7 35 37 -0.107 0.0 1 0.512 180.0 2 0.365 0.0 3 +torsion 8 7 35 37 -0.107 0.0 1 0.512 180.0 2 0.365 0.0 3 +torsion 3 7 41 16 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 3 7 41 42 1.239 0.0 1 -0.405 180.0 2 0.035 0.0 3 +torsion 6 7 41 16 0.000 0.0 1 0.000 180.0 2 -0.126 0.0 3 +torsion 6 7 41 42 0.000 0.0 1 -0.081 180.0 2 0.370 0.0 3 +torsion 7 7 41 42 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 8 7 41 42 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 16 7 41 16 2.216 0.0 1 0.215 180.0 2 0.810 0.0 3 +torsion 16 7 41 42 -0.939 0.0 1 -0.159 180.0 2 0.246 0.0 3 +torsion 1 8 8 8 -0.535 0.0 1 -0.110 180.0 2 -0.073 0.0 3 +torsion 1 8 8 9 0.000 0.0 1 0.000 180.0 2 0.374 0.0 3 +torsion 3 8 8 7 -0.257 0.0 1 -0.220 180.0 2 0.000 0.0 3 +torsion 3 8 8 9 0.000 0.0 1 0.000 180.0 2 0.180 0.0 3 +torsion 7 8 8 8 0.152 0.0 1 -0.231 180.0 2 0.378 0.0 3 +torsion 7 8 8 9 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 7 8 8 12 0.250 0.0 1 0.160 180.0 2 -1.805 0.0 3 +torsion 7 8 8 30 -4.257 0.0 1 -0.220 180.0 2 0.000 0.0 3 +torsion 8 8 8 8 0.152 0.0 1 -0.231 180.0 2 0.378 0.0 3 +torsion 8 8 8 9 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 8 8 8 35 0.000 0.0 1 0.064 180.0 2 0.605 0.0 3 +torsion 9 8 8 9 0.000 0.0 1 0.000 180.0 2 0.299 0.0 3 +torsion 9 8 8 12 0.000 0.0 1 0.000 180.0 2 0.475 0.0 3 +torsion 9 8 8 30 0.000 0.0 1 0.000 180.0 2 0.180 0.0 3 +torsion 9 8 8 35 0.000 0.0 1 0.000 180.0 2 0.374 0.0 3 +torsion 7 8 10 11 1.270 0.0 1 -1.023 180.0 2 -0.727 0.0 3 +torsion 9 8 10 11 0.000 0.0 1 0.000 180.0 2 0.274 0.0 3 +torsion 7 8 12 12 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 7 8 12 13 -1.096 0.0 1 0.079 180.0 2 0.384 0.0 3 +torsion 8 8 12 8 -1.061 0.0 1 0.132 180.0 2 0.330 0.0 3 +torsion 9 8 12 8 0.000 0.0 1 0.000 180.0 2 0.660 0.0 3 +torsion 9 8 12 12 0.300 0.0 1 0.000 180.0 2 0.600 0.0 3 +torsion 9 8 12 13 0.000 0.0 1 0.000 180.0 2 0.238 0.0 3 +torsion 7 8 17 17 -0.495 0.0 1 0.720 180.0 2 -0.484 0.0 3 +torsion 9 8 17 17 0.000 0.0 1 0.000 180.0 2 -0.090 0.0 3 +torsion 7 8 22 22 0.093 0.0 1 0.153 180.0 2 0.538 0.0 3 +torsion 9 8 22 22 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 7 8 26 24 -1.821 0.0 1 -2.437 180.0 2 2.059 0.0 3 +torsion 7 8 26 26 1.094 0.0 1 -0.160 180.0 2 0.503 0.0 3 +torsion 7 8 26 29 -0.224 0.0 1 -0.084 180.0 2 0.518 0.0 3 +torsion 9 8 26 24 0.000 0.0 1 0.000 180.0 2 0.299 0.0 3 +torsion 9 8 26 26 0.000 0.0 1 0.000 180.0 2 0.299 0.0 3 +torsion 9 8 26 29 0.000 0.0 1 0.000 180.0 2 0.299 0.0 3 +torsion 7 8 30 31 0.000 0.0 1 1.039 180.0 2 0.000 0.0 3 +torsion 7 8 30 32 -0.092 0.0 1 1.124 180.0 2 0.435 0.0 3 +torsion 7 8 30 33 0.677 0.0 1 1.020 180.0 2 0.163 0.0 3 +torsion 8 8 30 31 0.000 0.0 1 0.100 180.0 2 0.000 0.0 3 +torsion 8 8 30 32 -0.092 0.0 1 1.124 180.0 2 0.435 0.0 3 +torsion 8 8 30 33 0.677 0.0 1 1.020 180.0 2 0.163 0.0 3 +torsion 9 8 30 31 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 9 8 30 32 -0.154 0.0 1 0.044 180.0 2 -0.086 0.0 3 +torsion 9 8 30 33 0.250 0.0 1 0.850 180.0 2 0.000 0.0 3 +torsion 8 8 35 36 0.000 0.0 1 0.000 180.0 2 -0.110 0.0 3 +torsion 8 8 35 37 -0.107 0.0 1 0.512 180.0 2 0.365 0.0 3 +torsion 9 8 35 36 0.000 0.0 1 -0.081 180.0 2 0.370 0.0 3 +torsion 9 8 35 37 0.000 0.0 1 0.661 180.0 2 0.288 0.0 3 +torsion 8 12 12 8 -0.940 0.0 1 -6.900 180.0 2 0.300 0.0 3 +torsion 3 15 16 6 0.000 0.0 1 0.000 180.0 2 -0.126 0.0 3 +torsion 3 15 16 16 2.216 0.0 1 0.215 180.0 2 0.810 0.0 3 +torsion 7 15 16 6 0.000 0.0 1 0.000 180.0 2 -0.126 0.0 3 +torsion 7 15 16 16 2.216 0.0 1 0.215 180.0 2 0.810 0.0 3 +torsion 6 16 16 9 0.000 0.0 1 0.000 180.0 2 0.299 0.0 3 +torsion 6 16 16 16 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 7 16 16 9 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 7 16 16 16 0.152 0.0 1 -0.231 180.0 2 0.378 0.0 3 +torsion 9 16 16 9 0.000 0.0 1 0.000 180.0 2 0.299 0.0 3 +torsion 9 16 16 15 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 9 16 16 16 0.000 0.0 1 0.000 180.0 2 0.341 0.0 3 +torsion 9 16 16 41 0.000 0.0 1 0.000 180.0 2 0.500 0.0 3 +torsion 15 16 16 16 -0.201 0.0 1 0.687 180.0 2 0.000 0.0 3 +torsion 16 16 16 41 -0.201 0.0 1 0.687 180.0 2 0.000 0.0 3 +torsion 6 16 41 7 0.000 0.0 1 0.000 180.0 2 -0.126 0.0 3 +torsion 6 16 41 42 0.000 0.0 1 -0.014 180.0 2 0.295 0.0 3 +torsion 16 16 41 7 2.216 0.0 1 0.215 180.0 2 0.810 0.0 3 +torsion 16 16 41 42 -0.939 0.0 1 -0.159 180.0 2 0.246 0.0 3 +torsion 8 17 17 17 -0.610 0.0 1 4.212 180.0 2 0.000 0.0 3 +torsion 8 17 17 18 0.000 0.0 1 4.104 180.0 2 0.000 0.0 3 +torsion 17 17 17 17 -0.670 0.0 1 4.004 180.0 2 0.000 0.0 3 +torsion 17 17 17 18 0.550 0.0 1 4.534 180.0 2 -0.550 0.0 3 +torsion 17 17 17 19 0.000 0.0 1 4.470 180.0 2 0.000 0.0 3 +torsion 17 17 17 21 0.000 0.0 1 4.470 180.0 2 0.000 0.0 3 +torsion 18 17 17 18 0.000 0.0 1 4.072 180.0 2 0.000 0.0 3 +torsion 18 17 17 19 0.000 0.0 1 4.470 180.0 2 0.000 0.0 3 +torsion 18 17 17 21 0.000 0.0 1 4.470 180.0 2 0.000 0.0 3 +torsion 17 17 19 20 0.000 0.0 1 2.081 180.0 2 0.000 0.0 3 +torsion 8 22 22 22 -0.062 0.0 1 0.197 180.0 2 0.025 0.0 3 +torsion 8 22 22 23 0.000 0.0 1 3.104 180.0 2 0.000 0.0 3 +torsion 8 22 22 24 0.000 0.0 1 4.470 180.0 2 0.000 0.0 3 +torsion 22 22 22 22 -0.670 0.0 1 4.304 180.0 2 0.000 0.0 3 +torsion 22 22 22 23 0.250 0.0 1 4.534 180.0 2 -0.550 0.0 3 +torsion 22 22 22 24 0.000 0.0 1 4.470 180.0 2 0.000 0.0 3 +torsion 23 22 22 23 0.000 0.0 1 3.072 180.0 2 0.000 0.0 3 +torsion 23 22 22 24 -3.150 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 22 22 24 22 0.000 0.0 1 10.000 180.0 2 0.000 0.0 3 +torsion 22 22 24 25 -3.150 0.0 1 5.000 180.0 2 0.000 0.0 3 +torsion 23 22 24 22 -6.650 0.0 1 10.000 180.0 2 0.000 0.0 3 +torsion 23 22 24 25 -0.530 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 25 24 26 8 0.000 0.0 1 4.104 180.0 2 0.000 0.0 3 +torsion 25 24 26 26 -3.150 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 25 24 26 27 -0.530 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 28 24 26 8 0.000 0.0 1 4.212 180.0 2 0.000 0.0 3 +torsion 28 24 26 26 0.000 0.0 1 6.000 180.0 2 0.000 0.0 3 +torsion 28 24 26 27 0.000 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 25 24 28 24 -2.744 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 25 24 28 27 -0.530 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 25 24 28 29 -2.744 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 26 24 28 24 0.000 0.0 1 8.000 180.0 2 0.000 0.0 3 +torsion 26 24 28 27 0.000 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 26 24 28 29 0.000 0.0 1 8.000 180.0 2 0.000 0.0 3 +torsion 8 26 26 24 0.000 0.0 1 4.212 180.0 2 0.000 0.0 3 +torsion 8 26 26 27 0.000 0.0 1 4.102 180.0 2 0.000 0.0 3 +torsion 8 26 26 29 0.000 0.0 1 4.212 180.0 2 0.000 0.0 3 +torsion 24 26 26 24 0.900 0.0 1 8.000 180.0 2 0.000 0.0 3 +torsion 24 26 26 27 0.755 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 24 26 26 29 0.900 0.0 1 8.000 180.0 2 0.000 0.0 3 +torsion 27 26 26 29 0.755 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 8 26 29 28 0.000 0.0 1 4.212 180.0 2 0.000 0.0 3 +torsion 26 26 29 28 0.000 0.0 1 6.000 180.0 2 0.000 0.0 3 +torsion 27 26 29 28 0.000 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 24 28 29 26 0.000 0.0 1 8.000 180.0 2 0.000 0.0 3 +torsion 27 28 29 26 0.000 0.0 1 3.000 180.0 2 0.000 0.0 3 +torsion 2 30 33 34 0.000 0.0 1 5.390 180.0 2 1.230 0.0 3 +torsion 7 30 33 34 0.000 0.0 1 5.390 180.0 2 1.230 0.0 3 +torsion 8 30 33 34 0.000 0.0 1 5.390 180.0 2 1.230 0.0 3 +torsion 32 30 33 34 -1.200 0.0 1 5.390 180.0 2 0.400 0.0 3 +torsion 46 43 44 44 0.000 0.0 1 8.761 180.0 2 0.000 0.0 3 +torsion 46 43 44 47 0.000 0.0 1 9.022 180.0 2 0.000 0.0 3 +torsion 49 43 44 44 0.000 0.0 1 8.406 180.0 2 0.000 0.0 3 +torsion 49 43 44 47 0.000 0.0 1 9.925 180.0 2 0.000 0.0 3 +torsion 63 43 44 44 0.000 0.0 1 8.406 180.0 2 0.000 0.0 3 +torsion 63 43 44 47 0.000 0.0 1 9.925 180.0 2 0.000 0.0 3 +torsion 69 43 44 44 0.000 0.0 1 8.406 180.0 2 0.000 0.0 3 +torsion 69 43 44 47 0.000 0.0 1 9.925 180.0 2 0.000 0.0 3 +torsion 44 43 46 45 0.000 0.0 1 5.807 180.0 2 0.000 0.0 3 +torsion 44 43 46 50 0.000 0.0 1 9.943 180.0 2 0.000 0.0 3 +torsion 49 43 46 45 0.000 0.0 1 0.111 180.0 2 0.000 0.0 3 +torsion 49 43 46 50 0.000 0.0 1 9.536 180.0 2 0.000 0.0 3 +torsion 63 43 46 45 0.000 0.0 1 6.111 180.0 2 0.000 0.0 3 +torsion 63 43 46 50 0.000 0.0 1 8.536 180.0 2 0.000 0.0 3 +torsion 69 43 46 45 0.000 0.0 1 9.911 180.0 2 0.000 0.0 3 +torsion 69 43 46 50 0.000 0.0 1 8.536 180.0 2 0.000 0.0 3 +torsion 44 43 49 50 0.000 0.0 1 2.100 180.0 2 0.000 0.0 3 +torsion 54 43 53 47 0.000 0.0 1 3.000 180.0 2 0.600 0.0 3 +torsion 54 43 53 55 0.000 0.0 1 -9.900 180.0 2 -0.027 0.0 3 +torsion 54 43 53 58 0.000 0.0 1 9.900 180.0 2 0.000 0.0 3 +torsion 63 43 53 47 0.000 0.0 1 0.000 180.0 2 -0.532 0.0 6 +torsion 63 43 53 55 0.000 0.0 1 0.000 180.0 2 0.112 0.0 6 +torsion 63 43 53 58 0.000 0.0 1 0.000 180.0 2 -0.532 0.0 6 +torsion 69 43 53 47 0.000 0.0 1 0.500 180.0 2 -0.532 0.0 3 +torsion 69 43 53 55 0.000 0.0 1 0.000 180.0 2 0.112 0.0 3 +torsion 69 43 53 58 0.000 0.0 1 0.000 180.0 2 -0.532 0.0 6 +torsion 53 43 54 54 0.000 0.0 1 4.500 180.0 2 0.000 0.0 3 +torsion 53 43 54 57 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 63 43 54 54 0.000 0.0 1 0.000 180.0 2 -0.532 0.0 6 +torsion 63 43 54 57 0.000 0.0 1 0.000 180.0 2 0.109 0.0 6 +torsion 69 43 54 54 0.000 0.0 1 0.000 180.0 2 -0.532 0.0 6 +torsion 69 43 54 57 0.000 0.0 1 0.000 180.0 2 0.109 0.0 6 +torsion 44 43 63 62 -3.000 0.0 1 0.000 180.0 2 -0.900 0.0 3 +torsion 44 43 63 63 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 44 43 63 65 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 44 43 63 68 0.000 0.0 1 -5.600 180.0 2 0.000 0.0 3 +torsion 46 43 63 62 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 46 43 63 63 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 46 43 63 65 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 46 43 63 68 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 53 43 63 62 -3.000 0.0 1 0.000 180.0 2 0.950 0.0 3 +torsion 53 43 63 63 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 53 43 63 65 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 54 43 63 62 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 54 43 63 63 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 54 43 63 65 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 72 43 63 62 0.000 0.0 1 0.000 180.0 2 0.587 0.0 3 +torsion 72 43 63 63 0.000 0.0 1 0.000 180.0 2 0.585 0.0 3 +torsion 72 43 63 65 0.000 0.0 1 4.500 180.0 2 0.480 0.0 3 +torsion 44 43 69 62 0.000 0.0 1 -7.550 180.0 2 0.880 0.0 3 +torsion 44 43 69 65 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 44 43 69 68 0.000 0.0 1 -5.200 180.0 2 0.800 0.0 3 +torsion 44 43 69 69 0.000 0.0 1 2.000 180.0 2 0.800 0.0 3 +torsion 46 43 69 62 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 46 43 69 65 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 46 43 69 68 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 46 43 69 69 0.000 0.0 1 -5.100 180.0 2 0.800 0.0 3 +torsion 53 43 69 62 0.000 0.0 1 -1.600 180.0 2 0.000 0.0 3 +torsion 53 43 69 65 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 53 43 69 69 0.000 0.0 1 -1.500 180.0 2 0.000 0.0 3 +torsion 54 43 69 62 0.000 0.0 1 -5.600 180.0 2 -0.650 0.0 3 +torsion 54 43 69 65 0.000 0.0 1 0.000 180.0 2 0.000 0.0 3 +torsion 54 43 69 69 0.000 0.0 1 -2.000 180.0 2 0.000 0.0 3 +torsion 72 43 69 62 0.000 0.0 1 0.000 180.0 2 0.587 0.0 3 +torsion 72 43 69 65 0.000 0.0 1 4.500 180.0 2 0.480 0.0 3 +torsion 72 43 69 69 0.000 0.0 1 2.500 180.0 2 0.585 0.0 3 +torsion 43 44 44 45 0.000 0.0 1 7.121 180.0 2 0.000 0.0 3 +torsion 43 44 44 49 0.000 0.0 1 8.267 180.0 2 0.000 0.0 3 +torsion 43 44 44 53 0.000 0.0 1 8.538 180.0 2 0.000 0.0 3 +torsion 45 44 44 47 0.000 0.0 1 5.794 180.0 2 0.000 0.0 3 +torsion 47 44 44 49 0.000 0.0 1 9.772 180.0 2 0.000 0.0 3 +torsion 47 44 44 53 0.000 0.0 1 4.676 180.0 2 0.000 0.0 3 +torsion 44 44 45 46 0.000 0.0 1 9.600 180.0 2 0.000 0.0 3 +torsion 49 44 45 46 0.000 0.0 1 8.083 180.0 2 0.000 0.0 3 +torsion 53 44 45 46 0.000 0.0 1 6.522 180.0 2 0.000 0.0 3 +torsion 43 44 47 48 0.000 0.0 1 8.058 180.0 2 0.000 0.0 3 +torsion 43 44 47 49 0.000 0.0 1 5.000 180.0 2 0.000 0.0 3 +torsion 44 44 47 48 0.000 0.0 1 8.174 180.0 2 0.000 0.0 3 +torsion 44 44 47 49 0.000 0.0 1 3.500 180.0 2 0.000 0.0 3 +torsion 44 44 49 47 0.000 0.0 1 8.034 180.0 2 0.000 0.0 3 +torsion 44 44 49 51 0.000 0.0 1 8.960 180.0 2 0.000 0.0 3 +torsion 45 44 49 47 0.000 0.0 1 8.118 180.0 2 0.000 0.0 3 +torsion 45 44 49 51 0.000 0.0 1 6.606 180.0 2 0.000 0.0 3 +torsion 44 44 53 55 0.000 0.0 1 9.293 180.0 2 0.000 0.0 3 +torsion 44 44 53 58 0.000 0.0 1 1.587 180.0 2 0.000 0.0 3 +torsion 45 44 53 55 0.000 0.0 1 1.522 180.0 2 0.000 0.0 3 +torsion 45 44 53 58 0.000 0.0 1 8.876 180.0 2 0.000 0.0 3 +torsion 44 45 46 43 0.000 0.0 1 9.800 180.0 2 0.000 0.0 3 +torsion 44 45 46 50 0.000 0.0 1 7.386 180.0 2 0.000 0.0 3 +torsion 44 47 48 47 0.000 0.0 1 8.468 180.0 2 0.000 0.0 3 +torsion 44 47 48 50 0.000 0.0 1 8.900 180.0 2 0.000 0.0 3 +torsion 49 47 48 47 0.000 0.0 1 9.883 180.0 2 0.000 0.0 3 +torsion 49 47 48 50 0.000 0.0 1 10.000 180.0 2 0.000 0.0 3 +torsion 44 47 49 51 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 44 47 49 58 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 48 47 49 44 0.000 0.0 1 9.804 180.0 2 0.000 0.0 3 +torsion 48 47 49 51 0.000 0.0 1 1.928 180.0 2 0.000 0.0 3 +torsion 53 47 49 51 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 53 47 49 54 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 49 47 53 43 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 49 47 53 55 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 44 49 51 52 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 44 49 51 59 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 47 49 51 52 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 47 49 51 59 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 54 49 51 52 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 54 49 51 59 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 58 49 51 52 0.000 0.0 1 5.000 180.0 2 0.000 0.0 3 +torsion 58 49 51 59 0.000 0.0 1 5.000 180.0 2 0.000 0.0 3 +torsion 47 49 54 54 0.000 0.0 1 9.974 180.0 2 0.000 0.0 3 +torsion 47 49 54 56 0.000 0.0 1 9.548 180.0 2 0.000 0.0 3 +torsion 51 49 54 54 0.000 0.0 1 5.322 180.0 2 0.000 0.0 3 +torsion 51 49 54 56 0.000 0.0 1 4.112 180.0 2 0.000 0.0 3 +torsion 47 49 58 53 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 47 49 58 59 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 51 49 58 53 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 51 49 58 59 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 55 53 54 54 0.000 0.0 1 2.654 180.0 2 0.000 0.0 3 +torsion 55 53 54 56 0.000 0.0 1 3.756 180.0 2 0.000 0.0 3 +torsion 55 53 54 60 0.000 0.0 1 4.085 180.0 2 0.000 0.0 3 +torsion 58 53 54 54 0.000 0.0 1 5.537 180.0 2 0.000 0.0 3 +torsion 58 53 54 56 0.000 0.0 1 6.277 180.0 2 0.000 0.0 3 +torsion 58 53 54 60 0.000 0.0 1 2.346 180.0 2 0.000 0.0 3 +torsion 43 53 58 53 0.000 0.0 1 2.500 180.0 2 0.000 0.0 3 +torsion 43 53 58 59 0.000 0.0 1 3.300 180.0 2 0.000 0.0 3 +torsion 44 53 58 49 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 44 53 58 59 0.000 0.0 1 2.000 180.0 2 0.000 0.0 3 +torsion 54 53 58 53 0.000 0.0 1 1.000 180.0 2 0.000 0.0 3 +torsion 54 53 58 59 0.000 0.0 1 2.500 180.0 2 0.000 0.0 3 +torsion 55 53 58 49 0.000 0.0 1 8.000 180.0 2 0.000 0.0 3 +torsion 55 53 58 53 0.000 0.0 1 3.100 180.0 2 0.000 0.0 3 +torsion 55 53 58 59 0.000 0.0 1 1.155 180.0 2 0.000 0.0 3 +torsion 43 54 54 49 0.000 0.0 1 7.934 180.0 2 0.000 0.0 3 +torsion 43 54 54 53 0.000 0.0 1 -9.000 180.0 2 0.000 0.0 3 +torsion 43 54 54 56 0.000 0.0 1 1.094 180.0 2 0.000 0.0 3 +torsion 43 54 54 60 0.000 0.0 1 5.133 180.0 2 0.000 0.0 3 +torsion 49 54 54 57 0.000 0.0 1 7.193 180.0 2 0.000 0.0 3 +torsion 53 54 54 57 0.000 0.0 1 6.193 180.0 2 0.000 0.0 3 +torsion 56 54 54 57 0.000 0.0 1 4.226 180.0 2 0.000 0.0 3 +torsion 57 54 54 60 0.000 0.0 1 6.519 180.0 2 0.000 0.0 3 +torsion 53 54 60 61 0.000 0.0 1 0.000 180.0 2 0.319 0.0 3 +torsion 54 54 60 61 0.000 0.0 1 0.000 180.0 2 -0.091 0.0 3 +torsion 61 60 62 70 0.000 0.0 1 0.000 180.0 2 -0.070 0.0 3 +torsion 61 60 62 72 0.000 0.0 1 0.000 180.0 2 0.169 0.0 3 +torsion 63 60 62 70 0.000 0.0 1 -2.500 180.0 2 -0.603 0.0 3 +torsion 63 60 62 72 0.000 0.0 1 -0.580 180.0 2 0.980 0.0 3 +torsion 69 60 62 70 0.000 0.0 1 -2.500 180.0 2 -0.603 0.0 3 +torsion 69 60 62 72 0.000 0.0 1 -0.580 180.0 2 0.980 0.0 3 +torsion 61 60 63 62 0.000 0.0 1 0.000 180.0 2 0.380 0.0 3 +torsion 61 60 63 63 0.000 0.0 1 0.000 180.0 2 0.380 0.0 3 +torsion 61 60 63 64 0.000 0.0 1 0.000 180.0 2 0.380 0.0 3 +torsion 61 60 63 68 0.000 0.0 1 0.000 180.0 2 0.380 0.0 3 +torsion 62 60 63 62 0.000 0.0 1 -3.500 180.0 2 0.380 0.0 3 +torsion 62 60 63 63 0.000 0.0 1 3.500 180.0 2 -0.370 0.0 3 +torsion 62 60 63 64 0.000 0.0 1 0.000 180.0 2 0.382 0.0 3 +torsion 62 60 63 68 0.000 0.0 1 -3.500 180.0 2 0.380 0.0 3 +torsion 61 60 69 62 0.000 0.0 1 0.000 180.0 2 0.480 0.0 3 +torsion 61 60 69 64 0.000 0.0 1 0.000 180.0 2 0.480 0.0 3 +torsion 61 60 69 68 0.000 0.0 1 0.000 180.0 2 0.480 0.0 3 +torsion 61 60 69 69 0.000 0.0 1 0.000 180.0 2 0.480 0.0 3 +torsion 62 60 69 62 0.000 0.0 1 -1.500 180.0 2 0.280 0.0 3 +torsion 62 60 69 64 0.000 0.0 1 0.000 180.0 2 0.280 0.0 3 +torsion 62 60 69 68 0.000 0.0 1 -1.500 180.0 2 0.280 0.0 3 +torsion 62 60 69 69 0.000 0.0 1 3.000 180.0 2 -0.370 0.0 3 +torsion 63 62 63 43 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 63 62 63 60 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 63 62 63 63 0.000 0.0 1 0.000 180.0 2 0.786 0.0 3 +torsion 63 62 63 64 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 63 62 63 65 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 70 62 63 63 0.000 0.0 1 0.000 180.0 2 0.886 0.0 3 +torsion 70 62 63 64 0.000 0.0 1 0.000 180.0 2 -0.070 0.0 3 +torsion 72 62 63 63 -1.500 0.0 1 2.000 180.0 2 0.186 0.0 3 +torsion 72 62 63 64 0.000 0.0 1 0.000 180.0 2 0.686 0.0 3 +torsion 69 62 69 43 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 69 62 69 60 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 69 62 69 64 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 69 62 69 65 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 69 62 69 69 2.000 0.0 1 -1.500 180.0 2 0.886 0.0 3 +torsion 70 62 69 64 0.000 0.0 1 0.000 180.0 2 -0.070 0.0 3 +torsion 70 62 69 69 0.000 0.0 1 0.000 180.0 2 0.886 0.0 3 +torsion 72 62 69 64 0.000 0.0 1 0.000 180.0 2 0.686 0.0 3 +torsion 72 62 69 69 -1.500 0.0 1 2.000 180.0 2 0.186 0.0 3 +torsion 60 62 70 62 -2.000 0.0 1 -1.680 180.0 2 -0.800 0.0 3 +torsion 60 62 70 71 0.000 0.0 1 0.000 180.0 2 0.990 0.0 3 +torsion 63 62 70 62 -2.000 0.0 1 -1.680 180.0 2 -0.800 0.0 3 +torsion 63 62 70 71 0.000 0.0 1 0.000 180.0 2 0.990 0.0 3 +torsion 69 62 70 62 -2.000 0.0 1 -1.680 180.0 2 -0.800 0.0 3 +torsion 69 62 70 71 0.000 0.0 1 0.000 180.0 2 0.990 0.0 3 +torsion 43 63 63 63 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 43 63 63 64 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 43 63 63 66 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 60 63 63 62 0.000 0.0 1 0.500 180.0 2 0.486 0.0 3 +torsion 60 63 63 63 0.000 0.0 1 0.000 180.0 2 -0.286 0.0 3 +torsion 60 63 63 64 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 62 63 63 62 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 62 63 63 63 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 62 63 63 64 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 62 63 63 66 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 62 63 63 68 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 63 63 63 63 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 63 63 63 64 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 63 63 63 65 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 63 63 63 66 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 63 63 63 68 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 64 63 63 64 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 64 63 63 65 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 64 63 63 66 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 64 63 63 68 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 65 63 63 66 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 66 63 63 68 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 63 63 66 67 -3.500 0.0 1 1.000 180.0 2 0.186 0.0 3 +torsion 64 63 66 67 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 43 63 68 63 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 60 63 68 63 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 63 63 68 63 0.000 0.0 1 0.000 180.0 2 0.886 0.0 3 +torsion 64 63 68 63 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 65 63 68 63 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 69 68 69 43 0.000 0.0 1 0.000 180.0 2 0.086 0.0 3 +torsion 69 68 69 60 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 69 68 69 64 0.000 0.0 1 0.000 180.0 2 0.286 0.0 3 +torsion 69 68 69 65 0.000 0.0 1 0.000 180.0 2 0.386 0.0 3 +torsion 69 68 69 69 3.000 0.0 1 -3.000 180.0 2 -0.886 0.0 3 +torsion 43 69 69 64 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 43 69 69 69 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 60 69 69 62 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 60 69 69 64 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 60 69 69 69 0.000 0.0 1 0.000 180.0 2 0.886 0.0 3 +torsion 62 69 69 62 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 62 69 69 64 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 62 69 69 68 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 62 69 69 69 0.000 0.0 1 0.000 180.0 2 0.886 0.0 3 +torsion 64 69 69 64 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 64 69 69 65 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 64 69 69 68 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 64 69 69 69 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 65 69 69 69 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 68 69 69 69 0.000 0.0 1 0.000 180.0 2 0.186 0.0 3 +torsion 69 69 69 69 0.000 0.0 1 0.000 180.0 2 0.886 0.0 3 + + + ############################# + ## ## + ## Pi-Torsion Parameters ## + ## ## + ############################# + + +pitors 1 3 6.85 +pitors 3 15 6.85 +pitors 17 17 6.85 +pitors 22 22 6.85 +pitors 22 24 6.85 +pitors 24 26 6.85 +pitors 24 28 6.85 +pitors 26 26 6.85 +pitors 43 44 5.85 +pitors 43 46 5.85 +pitors 43 53 5.85 +pitors 43 54 5.85 +pitors 44 44 5.85 +pitors 44 45 5.85 +pitors 44 47 5.85 +pitors 44 49 5.85 +pitors 44 53 5.85 +pitors 45 46 5.85 +pitors 47 48 5.85 +pitors 47 49 5.85 +pitors 47 53 5.85 +pitors 49 54 5.85 +pitors 49 58 9.85 +pitors 53 54 5.85 +pitors 53 58 5.85 +pitors 54 54 7.85 + + + ################################## + ## ## + ## Torsion-Torsion Parameters ## + ## ## + ################################## + + +tortors 3 1 2 3 1 25 25 + -180.0 -180.0 0.00000 + -165.0 -180.0 -0.15918 + -150.0 -180.0 -0.46924 + -135.0 -180.0 -0.94887 + -120.0 -180.0 -1.41919 + -105.0 -180.0 -1.89608 + -90.0 -180.0 -2.35024 + -75.0 -180.0 -2.81648 + -60.0 -180.0 -3.17758 + -45.0 -180.0 -2.91092 + -30.0 -180.0 -1.84916 + -15.0 -180.0 -0.61868 + 0.0 -180.0 1.44957 + 15.0 -180.0 -0.61868 + 30.0 -180.0 -1.84916 + 45.0 -180.0 -2.91092 + 60.0 -180.0 -3.17758 + 75.0 -180.0 -2.81793 + 90.0 -180.0 -2.34954 + 105.0 -180.0 -1.91578 + 120.0 -180.0 -1.41919 + 135.0 -180.0 -0.94887 + 150.0 -180.0 -0.46924 + 165.0 -180.0 -0.15918 + 180.0 -180.0 0.00000 + -180.0 -165.0 -0.03043 + -165.0 -165.0 -0.40282 + -150.0 -165.0 -0.84288 + -135.0 -165.0 -1.22723 + -120.0 -165.0 -1.58634 + -105.0 -165.0 -1.98317 + -90.0 -165.0 -2.46682 + -75.0 -165.0 -2.96238 + -60.0 -165.0 -3.27921 + -45.0 -165.0 -2.85897 + -30.0 -165.0 -1.66034 + -15.0 -165.0 0.28654 + 0.0 -165.0 0.47583 + 15.0 -165.0 -0.59328 + 30.0 -165.0 -1.85441 + 45.0 -165.0 -2.72832 + 60.0 -165.0 -2.82977 + 75.0 -165.0 -2.43750 + 90.0 -165.0 -1.97978 + 105.0 -165.0 -1.47132 + 120.0 -165.0 -0.94989 + 135.0 -165.0 -0.44166 + 150.0 -165.0 -0.04055 + 165.0 -165.0 0.10146 + 180.0 -165.0 -0.03043 + -180.0 -150.0 -0.05487 + -165.0 -150.0 -0.49639 + -150.0 -150.0 -0.83418 + -135.0 -150.0 -1.02443 + -120.0 -150.0 -1.24614 + -105.0 -150.0 -1.65671 + -90.0 -150.0 -2.17397 + -75.0 -150.0 -2.73078 + -60.0 -150.0 -2.95919 + -45.0 -150.0 -2.36553 + -30.0 -150.0 -0.65594 + -15.0 -150.0 1.60921 + 0.0 -150.0 0.68197 + 15.0 -150.0 -0.47503 + 30.0 -150.0 -1.60792 + 45.0 -150.0 -2.28172 + 60.0 -150.0 -2.27657 + 75.0 -150.0 -1.84368 + 90.0 -150.0 -1.32072 + 105.0 -150.0 -0.79693 + 120.0 -150.0 -0.27502 + 135.0 -150.0 0.15792 + 150.0 -150.0 0.37394 + 165.0 -150.0 0.30007 + 180.0 -150.0 -0.05487 + -180.0 -135.0 0.22137 + -165.0 -135.0 -0.11507 + -150.0 -135.0 -0.25069 + -135.0 -135.0 -0.25120 + -120.0 -135.0 -0.45372 + -105.0 -135.0 -0.91494 + -90.0 -135.0 -1.48283 + -75.0 -135.0 -1.97985 + -60.0 -135.0 -1.99291 + -45.0 -135.0 -0.87317 + -30.0 -135.0 2.15102 + -15.0 -135.0 2.08125 + 0.0 -135.0 1.01469 + 15.0 -135.0 -0.13409 + 30.0 -135.0 -1.08446 + 45.0 -135.0 -1.57764 + 60.0 -135.0 -1.54005 + 75.0 -135.0 -1.11846 + 90.0 -135.0 -0.54882 + 105.0 -135.0 -0.14353 + 120.0 -135.0 0.35059 + 135.0 -135.0 0.78961 + 150.0 -135.0 0.82176 + 165.0 -135.0 0.59900 + 180.0 -135.0 0.22137 + -180.0 -120.0 0.76282 + -165.0 -120.0 0.65049 + -150.0 -120.0 0.73226 + -135.0 -120.0 0.80302 + -120.0 -120.0 0.46767 + -105.0 -120.0 -0.17578 + -90.0 -120.0 -0.55868 + -75.0 -120.0 -0.87022 + -60.0 -120.0 -0.44624 + -45.0 -120.0 1.42775 + -30.0 -120.0 3.49117 + -15.0 -120.0 2.47433 + 0.0 -120.0 1.40660 + 15.0 -120.0 0.51132 + 30.0 -120.0 -0.07964 + 45.0 -120.0 -0.49787 + 60.0 -120.0 -0.64487 + 75.0 -120.0 -0.35755 + 90.0 -120.0 0.18803 + 105.0 -120.0 0.54550 + 120.0 -120.0 0.97289 + 135.0 -120.0 1.16949 + 150.0 -120.0 1.15910 + 165.0 -120.0 1.05012 + 180.0 -120.0 0.76282 + -180.0 -105.0 1.42827 + -165.0 -105.0 1.50406 + -150.0 -105.0 1.72284 + -135.0 -105.0 1.64917 + -120.0 -105.0 1.03764 + -105.0 -105.0 0.56475 + -90.0 -105.0 0.20084 + -75.0 -105.0 0.20821 + -60.0 -105.0 1.22814 + -45.0 -105.0 2.98189 + -30.0 -105.0 3.57647 + -15.0 -105.0 2.65211 + 0.0 -105.0 1.95317 + 15.0 -105.0 1.65224 + 30.0 -105.0 1.43567 + 45.0 -105.0 0.92486 + 60.0 -105.0 0.55065 + 75.0 -105.0 0.46027 + 90.0 -105.0 0.60470 + 105.0 -105.0 1.02077 + 120.0 -105.0 1.33189 + 135.0 -105.0 1.51499 + 150.0 -105.0 1.50886 + 165.0 -105.0 1.53133 + 180.0 -105.0 1.42827 + -180.0 -90.0 1.90401 + -165.0 -90.0 2.03939 + -150.0 -90.0 2.29924 + -135.0 -90.0 1.79055 + -120.0 -90.0 1.35280 + -105.0 -90.0 1.02391 + -90.0 -90.0 0.90562 + -75.0 -90.0 1.23397 + -60.0 -90.0 2.45075 + -45.0 -90.0 3.45522 + -30.0 -90.0 3.09983 + -15.0 -90.0 2.62493 + 0.0 -90.0 2.65047 + 15.0 -90.0 3.09474 + 30.0 -90.0 2.79428 + 45.0 -90.0 2.15793 + 60.0 -90.0 1.57482 + 75.0 -90.0 1.33310 + 90.0 -90.0 1.13012 + 105.0 -90.0 1.17449 + 120.0 -90.0 1.41199 + 135.0 -90.0 1.62671 + 150.0 -90.0 1.81755 + 165.0 -90.0 1.82118 + 180.0 -90.0 1.90401 + -180.0 -75.0 1.80621 + -165.0 -75.0 2.08080 + -150.0 -75.0 2.03556 + -135.0 -75.0 1.68691 + -120.0 -75.0 1.29208 + -105.0 -75.0 1.22509 + -90.0 -75.0 1.43311 + -75.0 -75.0 2.16375 + -60.0 -75.0 2.17320 + -45.0 -75.0 2.21268 + -30.0 -75.0 2.13049 + -15.0 -75.0 2.40205 + 0.0 -75.0 3.24329 + 15.0 -75.0 4.06613 + 30.0 -75.0 3.57523 + 45.0 -75.0 2.86443 + 60.0 -75.0 2.31976 + 75.0 -75.0 1.66472 + 90.0 -75.0 1.27852 + 105.0 -75.0 1.09103 + 120.0 -75.0 1.36656 + 135.0 -75.0 1.53314 + 150.0 -75.0 1.59747 + 165.0 -75.0 1.64225 + 180.0 -75.0 1.80621 + -180.0 -60.0 0.94133 + -165.0 -60.0 1.07716 + -150.0 -60.0 1.06365 + -135.0 -60.0 0.96211 + -120.0 -60.0 0.94411 + -105.0 -60.0 1.25994 + -90.0 -60.0 0.79628 + -75.0 -60.0 0.57562 + -60.0 -60.0 0.56577 + -45.0 -60.0 0.74572 + -30.0 -60.0 1.24745 + -15.0 -60.0 2.21612 + 0.0 -60.0 3.54214 + 15.0 -60.0 3.78367 + 30.0 -60.0 3.40120 + 45.0 -60.0 2.89718 + 60.0 -60.0 1.94715 + 75.0 -60.0 1.36042 + 90.0 -60.0 0.79250 + 105.0 -60.0 0.57769 + 120.0 -60.0 0.77935 + 135.0 -60.0 0.79351 + 150.0 -60.0 0.75367 + 165.0 -60.0 0.78581 + 180.0 -60.0 0.94133 + -180.0 -45.0 -0.67275 + -165.0 -45.0 -0.59212 + -150.0 -45.0 -0.42200 + -135.0 -45.0 -0.01106 + -120.0 -45.0 -0.51470 + -105.0 -45.0 -0.80922 + -90.0 -45.0 -0.99538 + -75.0 -45.0 -1.06430 + -60.0 -45.0 -0.87844 + -45.0 -45.0 -0.24576 + -30.0 -45.0 0.77634 + -15.0 -45.0 2.05251 + 0.0 -45.0 2.78505 + 15.0 -45.0 3.13379 + 30.0 -45.0 2.85045 + 45.0 -45.0 2.19151 + 60.0 -45.0 1.16243 + 75.0 -45.0 0.20720 + 90.0 -45.0 -0.42237 + 105.0 -45.0 -0.46460 + 120.0 -45.0 -0.38665 + 135.0 -45.0 -0.55232 + 150.0 -45.0 -0.67078 + 165.0 -45.0 -0.67830 + 180.0 -45.0 -0.67275 + -180.0 -30.0 -2.46944 + -165.0 -30.0 -2.32595 + -150.0 -30.0 -1.71439 + -135.0 -30.0 -2.48703 + -120.0 -30.0 -2.56054 + -105.0 -30.0 -2.46215 + -90.0 -30.0 -2.37111 + -75.0 -30.0 -2.19037 + -60.0 -30.0 -1.62432 + -45.0 -30.0 -0.72370 + -30.0 -30.0 0.35895 + -15.0 -30.0 1.35947 + 0.0 -30.0 2.12358 + 15.0 -30.0 2.36496 + 30.0 -30.0 1.96636 + 45.0 -30.0 1.05275 + 60.0 -30.0 -0.26183 + 75.0 -30.0 -1.16368 + 90.0 -30.0 -1.65442 + 105.0 -30.0 -1.64196 + 120.0 -30.0 -1.86484 + 135.0 -30.0 -2.09366 + 150.0 -30.0 -2.28268 + 165.0 -30.0 -2.41932 + 180.0 -30.0 -2.46944 + -180.0 -15.0 -3.82546 + -165.0 -15.0 -3.22967 + -150.0 -15.0 -3.93518 + -135.0 -15.0 -3.85949 + -120.0 -15.0 -3.58321 + -105.0 -15.0 -3.28549 + -90.0 -15.0 -3.01617 + -75.0 -15.0 -2.60005 + -60.0 -15.0 -1.92147 + -45.0 -15.0 -1.14234 + -30.0 -15.0 -0.00873 + -15.0 -15.0 1.14445 + 0.0 -15.0 1.77335 + 15.0 -15.0 1.79047 + 30.0 -15.0 1.09507 + 45.0 -15.0 -0.16297 + 60.0 -15.0 -1.43516 + 75.0 -15.0 -2.26699 + 90.0 -15.0 -2.45933 + 105.0 -15.0 -2.70542 + 120.0 -15.0 -3.03929 + 135.0 -15.0 -3.35545 + 150.0 -15.0 -3.62364 + 165.0 -15.0 -3.79758 + 180.0 -15.0 -3.82546 + -180.0 0.0 -3.82990 + -165.0 0.0 -4.37645 + -150.0 0.0 -4.29456 + -135.0 0.0 -4.01846 + -120.0 0.0 -3.66843 + -105.0 0.0 -3.31240 + -90.0 0.0 -2.96646 + -75.0 0.0 -2.58028 + -60.0 0.0 -2.08554 + -45.0 0.0 -0.99050 + -30.0 0.0 0.42261 + -15.0 0.0 1.35374 + 0.0 0.0 1.69885 + 15.0 0.0 1.35374 + 30.0 0.0 0.42261 + 45.0 0.0 -1.00310 + 60.0 0.0 -2.08554 + 75.0 0.0 -2.58028 + 90.0 0.0 -2.96646 + 105.0 0.0 -3.31240 + 120.0 0.0 -3.66843 + 135.0 0.0 -4.01846 + 150.0 0.0 -4.29456 + 165.0 0.0 -4.37645 + 180.0 0.0 -3.82990 + -180.0 15.0 -3.82546 + -165.0 15.0 -3.79758 + -150.0 15.0 -3.62364 + -135.0 15.0 -3.35545 + -120.0 15.0 -3.03929 + -105.0 15.0 -2.70542 + -90.0 15.0 -2.45933 + -75.0 15.0 -2.26699 + -60.0 15.0 -1.43516 + -45.0 15.0 -0.16297 + -30.0 15.0 1.09507 + -15.0 15.0 1.79047 + 0.0 15.0 1.77335 + 15.0 15.0 1.14445 + 30.0 15.0 -0.00873 + 45.0 15.0 -1.14234 + 60.0 15.0 -1.92147 + 75.0 15.0 -2.60005 + 90.0 15.0 -3.01617 + 105.0 15.0 -3.28549 + 120.0 15.0 -3.58321 + 135.0 15.0 -3.85949 + 150.0 15.0 -3.93518 + 165.0 15.0 -3.23037 + 180.0 15.0 -3.82546 + -180.0 30.0 -2.46944 + -165.0 30.0 -2.41932 + -150.0 30.0 -2.28268 + -135.0 30.0 -2.09366 + -120.0 30.0 -1.86484 + -105.0 30.0 -1.64196 + -90.0 30.0 -1.65442 + -75.0 30.0 -1.16368 + -60.0 30.0 -0.26183 + -45.0 30.0 1.05275 + -30.0 30.0 1.96636 + -15.0 30.0 2.36496 + 0.0 30.0 2.12358 + 15.0 30.0 1.35947 + 30.0 30.0 0.35055 + 45.0 30.0 -0.72370 + 60.0 30.0 -1.62432 + 75.0 30.0 -2.19037 + 90.0 30.0 -2.37111 + 105.0 30.0 -2.46215 + 120.0 30.0 -2.56054 + 135.0 30.0 -2.48703 + 150.0 30.0 -1.70729 + 165.0 30.0 -2.32595 + 180.0 30.0 -2.46944 + -180.0 45.0 -0.67275 + -165.0 45.0 -0.67830 + -150.0 45.0 -0.67078 + -135.0 45.0 -0.55232 + -120.0 45.0 -0.38665 + -105.0 45.0 -0.46460 + -90.0 45.0 -0.42237 + -75.0 45.0 0.20720 + -60.0 45.0 1.16243 + -45.0 45.0 2.19151 + -30.0 45.0 2.85045 + -15.0 45.0 3.13379 + 0.0 45.0 2.78505 + 15.0 45.0 2.06071 + 30.0 45.0 0.77634 + 45.0 45.0 -0.24576 + 60.0 45.0 -0.87844 + 75.0 45.0 -1.06430 + 90.0 45.0 -0.99538 + 105.0 45.0 -0.80922 + 120.0 45.0 -0.51470 + 135.0 45.0 -0.01106 + 150.0 45.0 -0.42200 + 165.0 45.0 -0.59212 + 180.0 45.0 -0.67275 + -180.0 60.0 0.94133 + -165.0 60.0 0.78581 + -150.0 60.0 0.75367 + -135.0 60.0 0.79351 + -120.0 60.0 0.77935 + -105.0 60.0 0.57769 + -90.0 60.0 0.79250 + -75.0 60.0 1.36042 + -60.0 60.0 1.94715 + -45.0 60.0 2.89718 + -30.0 60.0 3.40120 + -15.0 60.0 3.78367 + 0.0 60.0 3.54214 + 15.0 60.0 2.19742 + 30.0 60.0 1.24745 + 45.0 60.0 0.74572 + 60.0 60.0 0.56577 + 75.0 60.0 0.57562 + 90.0 60.0 0.79628 + 105.0 60.0 1.25994 + 120.0 60.0 0.94411 + 135.0 60.0 0.96211 + 150.0 60.0 1.06365 + 165.0 60.0 1.07716 + 180.0 60.0 0.94133 + -180.0 75.0 1.80621 + -165.0 75.0 1.64225 + -150.0 75.0 1.59747 + -135.0 75.0 1.53314 + -120.0 75.0 1.36656 + -105.0 75.0 1.09103 + -90.0 75.0 1.27852 + -75.0 75.0 1.66472 + -60.0 75.0 2.31976 + -45.0 75.0 2.86443 + -30.0 75.0 3.57523 + -15.0 75.0 4.06613 + 0.0 75.0 3.24329 + 15.0 75.0 2.40295 + 30.0 75.0 2.13049 + 45.0 75.0 2.21268 + 60.0 75.0 2.17320 + 75.0 75.0 2.16375 + 90.0 75.0 1.43311 + 105.0 75.0 1.22509 + 120.0 75.0 1.29208 + 135.0 75.0 1.68691 + 150.0 75.0 2.03556 + 165.0 75.0 2.08080 + 180.0 75.0 1.80621 + -180.0 90.0 1.90401 + -165.0 90.0 1.82118 + -150.0 90.0 1.81755 + -135.0 90.0 1.62671 + -120.0 90.0 1.41199 + -105.0 90.0 1.17449 + -90.0 90.0 1.13012 + -75.0 90.0 1.33310 + -60.0 90.0 1.57482 + -45.0 90.0 2.15793 + -30.0 90.0 2.79428 + -15.0 90.0 3.09474 + 0.0 90.0 2.65047 + 15.0 90.0 2.62493 + 30.0 90.0 3.09673 + 45.0 90.0 3.45522 + 60.0 90.0 2.45075 + 75.0 90.0 1.23397 + 90.0 90.0 0.90562 + 105.0 90.0 1.02391 + 120.0 90.0 1.35280 + 135.0 90.0 1.79055 + 150.0 90.0 2.29924 + 165.0 90.0 2.03939 + 180.0 90.0 1.90401 + -180.0 105.0 1.42827 + -165.0 105.0 1.53133 + -150.0 105.0 1.50886 + -135.0 105.0 1.51499 + -120.0 105.0 1.33189 + -105.0 105.0 1.02077 + -90.0 105.0 0.60470 + -75.0 105.0 0.46027 + -60.0 105.0 0.55065 + -45.0 105.0 0.92486 + -30.0 105.0 1.43567 + -15.0 105.0 1.65224 + 0.0 105.0 1.95317 + 15.0 105.0 2.65211 + 30.0 105.0 3.58847 + 45.0 105.0 2.98189 + 60.0 105.0 1.22814 + 75.0 105.0 0.20821 + 90.0 105.0 0.20084 + 105.0 105.0 0.56475 + 120.0 105.0 1.03764 + 135.0 105.0 1.64917 + 150.0 105.0 1.72204 + 165.0 105.0 1.50406 + 180.0 105.0 1.42827 + -180.0 120.0 0.76282 + -165.0 120.0 1.05012 + -150.0 120.0 1.15910 + -135.0 120.0 1.16949 + -120.0 120.0 0.97289 + -105.0 120.0 0.54550 + -90.0 120.0 0.18803 + -75.0 120.0 -0.35755 + -60.0 120.0 -0.64487 + -45.0 120.0 -0.49787 + -30.0 120.0 -0.07964 + -15.0 120.0 0.51132 + 0.0 120.0 1.40660 + 15.0 120.0 2.47433 + 30.0 120.0 3.49117 + 45.0 120.0 1.42775 + 60.0 120.0 -0.44624 + 75.0 120.0 -0.87022 + 90.0 120.0 -0.55868 + 105.0 120.0 -0.17578 + 120.0 120.0 0.46767 + 135.0 120.0 0.80302 + 150.0 120.0 0.73536 + 165.0 120.0 0.65049 + 180.0 120.0 0.76282 + -180.0 135.0 0.22137 + -165.0 135.0 0.59900 + -150.0 135.0 0.82176 + -135.0 135.0 0.78961 + -120.0 135.0 0.35059 + -105.0 135.0 -0.14353 + -90.0 135.0 -0.54882 + -75.0 135.0 -1.11846 + -60.0 135.0 -1.54005 + -45.0 135.0 -1.57764 + -30.0 135.0 -1.08446 + -15.0 135.0 -0.13409 + 0.0 135.0 1.01469 + 15.0 135.0 2.08125 + 30.0 135.0 2.15102 + 45.0 135.0 -0.87317 + 60.0 135.0 -1.99291 + 75.0 135.0 -1.97985 + 90.0 135.0 -1.48283 + 105.0 135.0 -0.91494 + 120.0 135.0 -0.45372 + 135.0 135.0 -0.25120 + 150.0 135.0 -0.25069 + 165.0 135.0 -0.11507 + 180.0 135.0 0.22137 + -180.0 150.0 -0.05487 + -165.0 150.0 0.30007 + -150.0 150.0 0.37394 + -135.0 150.0 0.15792 + -120.0 150.0 -0.27502 + -105.0 150.0 -0.79693 + -90.0 150.0 -1.32072 + -75.0 150.0 -1.85418 + -60.0 150.0 -2.27657 + -45.0 150.0 -2.28172 + -30.0 150.0 -1.60792 + -15.0 150.0 -0.47503 + 0.0 150.0 0.68197 + 15.0 150.0 1.60921 + 30.0 150.0 -0.65594 + 45.0 150.0 -2.36553 + 60.0 150.0 -2.95919 + 75.0 150.0 -2.73078 + 90.0 150.0 -2.17397 + 105.0 150.0 -1.65041 + 120.0 150.0 -1.25474 + 135.0 150.0 -1.02443 + 150.0 150.0 -0.83418 + 165.0 150.0 -0.49639 + 180.0 150.0 -0.05487 + -180.0 165.0 -0.03043 + -165.0 165.0 0.10146 + -150.0 165.0 -0.04055 + -135.0 165.0 -0.44166 + -120.0 165.0 -0.94989 + -105.0 165.0 -1.47132 + -90.0 165.0 -1.96898 + -75.0 165.0 -2.45910 + -60.0 165.0 -2.82977 + -45.0 165.0 -2.72832 + -30.0 165.0 -1.85441 + -15.0 165.0 -0.59328 + 0.0 165.0 0.47583 + 15.0 165.0 0.28654 + 30.0 165.0 -1.66034 + 45.0 165.0 -2.85897 + 60.0 165.0 -3.27921 + 75.0 165.0 -2.96238 + 90.0 165.0 -2.44752 + 105.0 165.0 -1.99117 + 120.0 165.0 -1.60564 + 135.0 165.0 -1.22723 + 150.0 165.0 -0.84288 + 165.0 165.0 -0.40282 + 180.0 165.0 -0.03043 + -180.0 180.0 0.00000 + -165.0 180.0 -0.15918 + -150.0 180.0 -0.46924 + -135.0 180.0 -0.94887 + -120.0 180.0 -1.41919 + -105.0 180.0 -1.89608 + -90.0 180.0 -2.35024 + -75.0 180.0 -2.81648 + -60.0 180.0 -3.17758 + -45.0 180.0 -2.91092 + -30.0 180.0 -1.84916 + -15.0 180.0 -0.61868 + 0.0 180.0 1.44957 + 15.0 180.0 -0.61868 + 30.0 180.0 -1.84916 + 45.0 180.0 -2.91092 + 60.0 180.0 -3.17758 + 75.0 180.0 -2.81793 + 90.0 180.0 -2.34954 + 105.0 180.0 -1.91578 + 120.0 180.0 -1.41919 + 135.0 180.0 -0.94887 + 150.0 180.0 -0.46924 + 165.0 180.0 -0.15918 + 180.0 180.0 0.00000 + +tortors 3 1 2 3 15 25 25 + -180.0 -180.0 0.00000 + -165.0 -180.0 -0.15918 + -150.0 -180.0 -0.46924 + -135.0 -180.0 -0.94887 + -120.0 -180.0 -1.41919 + -105.0 -180.0 -1.89608 + -90.0 -180.0 -2.35024 + -75.0 -180.0 -2.81648 + -60.0 -180.0 -3.17758 + -45.0 -180.0 -2.91092 + -30.0 -180.0 -1.84916 + -15.0 -180.0 -0.61868 + 0.0 -180.0 1.44957 + 15.0 -180.0 -0.61868 + 30.0 -180.0 -1.84916 + 45.0 -180.0 -2.91092 + 60.0 -180.0 -3.17758 + 75.0 -180.0 -2.81793 + 90.0 -180.0 -2.34954 + 105.0 -180.0 -1.91578 + 120.0 -180.0 -1.41919 + 135.0 -180.0 -0.94887 + 150.0 -180.0 -0.46924 + 165.0 -180.0 -0.15918 + 180.0 -180.0 0.00000 + -180.0 -165.0 -0.03043 + -165.0 -165.0 -0.40282 + -150.0 -165.0 -0.84288 + -135.0 -165.0 -1.22723 + -120.0 -165.0 -1.58634 + -105.0 -165.0 -1.98317 + -90.0 -165.0 -2.46682 + -75.0 -165.0 -2.96238 + -60.0 -165.0 -3.27921 + -45.0 -165.0 -2.85897 + -30.0 -165.0 -1.66034 + -15.0 -165.0 0.28654 + 0.0 -165.0 0.47583 + 15.0 -165.0 -0.59328 + 30.0 -165.0 -1.85441 + 45.0 -165.0 -2.72832 + 60.0 -165.0 -2.82977 + 75.0 -165.0 -2.43750 + 90.0 -165.0 -1.97978 + 105.0 -165.0 -1.47132 + 120.0 -165.0 -0.94989 + 135.0 -165.0 -0.44166 + 150.0 -165.0 -0.04055 + 165.0 -165.0 0.10146 + 180.0 -165.0 -0.03043 + -180.0 -150.0 -0.05487 + -165.0 -150.0 -0.49639 + -150.0 -150.0 -0.83418 + -135.0 -150.0 -1.02443 + -120.0 -150.0 -1.24614 + -105.0 -150.0 -1.65671 + -90.0 -150.0 -2.17397 + -75.0 -150.0 -2.73078 + -60.0 -150.0 -2.95919 + -45.0 -150.0 -2.36553 + -30.0 -150.0 -0.65594 + -15.0 -150.0 1.60921 + 0.0 -150.0 0.68197 + 15.0 -150.0 -0.47503 + 30.0 -150.0 -1.60792 + 45.0 -150.0 -2.28172 + 60.0 -150.0 -2.27657 + 75.0 -150.0 -1.84368 + 90.0 -150.0 -1.32072 + 105.0 -150.0 -0.79693 + 120.0 -150.0 -0.27502 + 135.0 -150.0 0.15792 + 150.0 -150.0 0.37394 + 165.0 -150.0 0.30007 + 180.0 -150.0 -0.05487 + -180.0 -135.0 0.22137 + -165.0 -135.0 -0.11507 + -150.0 -135.0 -0.25069 + -135.0 -135.0 -0.25120 + -120.0 -135.0 -0.45372 + -105.0 -135.0 -0.91494 + -90.0 -135.0 -1.48283 + -75.0 -135.0 -1.97985 + -60.0 -135.0 -1.99291 + -45.0 -135.0 -0.87317 + -30.0 -135.0 2.15102 + -15.0 -135.0 2.08125 + 0.0 -135.0 1.01469 + 15.0 -135.0 -0.13409 + 30.0 -135.0 -1.08446 + 45.0 -135.0 -1.57764 + 60.0 -135.0 -1.54005 + 75.0 -135.0 -1.11846 + 90.0 -135.0 -0.54882 + 105.0 -135.0 -0.14353 + 120.0 -135.0 0.35059 + 135.0 -135.0 0.78961 + 150.0 -135.0 0.82176 + 165.0 -135.0 0.59900 + 180.0 -135.0 0.22137 + -180.0 -120.0 0.76282 + -165.0 -120.0 0.65049 + -150.0 -120.0 0.73226 + -135.0 -120.0 0.80302 + -120.0 -120.0 0.46767 + -105.0 -120.0 -0.17578 + -90.0 -120.0 -0.55868 + -75.0 -120.0 -0.87022 + -60.0 -120.0 -0.44624 + -45.0 -120.0 1.42775 + -30.0 -120.0 3.49117 + -15.0 -120.0 2.47433 + 0.0 -120.0 1.40660 + 15.0 -120.0 0.51132 + 30.0 -120.0 -0.07964 + 45.0 -120.0 -0.49787 + 60.0 -120.0 -0.64487 + 75.0 -120.0 -0.35755 + 90.0 -120.0 0.18803 + 105.0 -120.0 0.54550 + 120.0 -120.0 0.97289 + 135.0 -120.0 1.16949 + 150.0 -120.0 1.15910 + 165.0 -120.0 1.05012 + 180.0 -120.0 0.76282 + -180.0 -105.0 1.42827 + -165.0 -105.0 1.50406 + -150.0 -105.0 1.72284 + -135.0 -105.0 1.64917 + -120.0 -105.0 1.03764 + -105.0 -105.0 0.56475 + -90.0 -105.0 0.20084 + -75.0 -105.0 0.20821 + -60.0 -105.0 1.22814 + -45.0 -105.0 2.98189 + -30.0 -105.0 3.57647 + -15.0 -105.0 2.65211 + 0.0 -105.0 1.95317 + 15.0 -105.0 1.65224 + 30.0 -105.0 1.43567 + 45.0 -105.0 0.92486 + 60.0 -105.0 0.55065 + 75.0 -105.0 0.46027 + 90.0 -105.0 0.60470 + 105.0 -105.0 1.02077 + 120.0 -105.0 1.33189 + 135.0 -105.0 1.51499 + 150.0 -105.0 1.50886 + 165.0 -105.0 1.53133 + 180.0 -105.0 1.42827 + -180.0 -90.0 1.90401 + -165.0 -90.0 2.03939 + -150.0 -90.0 2.29924 + -135.0 -90.0 1.79055 + -120.0 -90.0 1.35280 + -105.0 -90.0 1.02391 + -90.0 -90.0 0.90562 + -75.0 -90.0 1.23397 + -60.0 -90.0 2.45075 + -45.0 -90.0 3.45522 + -30.0 -90.0 3.09983 + -15.0 -90.0 2.62493 + 0.0 -90.0 2.65047 + 15.0 -90.0 3.09474 + 30.0 -90.0 2.79428 + 45.0 -90.0 2.15793 + 60.0 -90.0 1.57482 + 75.0 -90.0 1.33310 + 90.0 -90.0 1.13012 + 105.0 -90.0 1.17449 + 120.0 -90.0 1.41199 + 135.0 -90.0 1.62671 + 150.0 -90.0 1.81755 + 165.0 -90.0 1.82118 + 180.0 -90.0 1.90401 + -180.0 -75.0 1.80621 + -165.0 -75.0 2.08080 + -150.0 -75.0 2.03556 + -135.0 -75.0 1.68691 + -120.0 -75.0 1.29208 + -105.0 -75.0 1.22509 + -90.0 -75.0 1.43311 + -75.0 -75.0 2.16375 + -60.0 -75.0 2.17320 + -45.0 -75.0 2.21268 + -30.0 -75.0 2.13049 + -15.0 -75.0 2.40205 + 0.0 -75.0 3.24329 + 15.0 -75.0 4.06613 + 30.0 -75.0 3.57523 + 45.0 -75.0 2.86443 + 60.0 -75.0 2.31976 + 75.0 -75.0 1.66472 + 90.0 -75.0 1.27852 + 105.0 -75.0 1.09103 + 120.0 -75.0 1.36656 + 135.0 -75.0 1.53314 + 150.0 -75.0 1.59747 + 165.0 -75.0 1.64225 + 180.0 -75.0 1.80621 + -180.0 -60.0 0.94133 + -165.0 -60.0 1.07716 + -150.0 -60.0 1.06365 + -135.0 -60.0 0.96211 + -120.0 -60.0 0.94411 + -105.0 -60.0 1.25994 + -90.0 -60.0 0.79628 + -75.0 -60.0 0.57562 + -60.0 -60.0 0.56577 + -45.0 -60.0 0.74572 + -30.0 -60.0 1.24745 + -15.0 -60.0 2.21612 + 0.0 -60.0 3.54214 + 15.0 -60.0 3.78367 + 30.0 -60.0 3.40120 + 45.0 -60.0 2.89718 + 60.0 -60.0 1.94715 + 75.0 -60.0 1.36042 + 90.0 -60.0 0.79250 + 105.0 -60.0 0.57769 + 120.0 -60.0 0.77935 + 135.0 -60.0 0.79351 + 150.0 -60.0 0.75367 + 165.0 -60.0 0.78581 + 180.0 -60.0 0.94133 + -180.0 -45.0 -0.67275 + -165.0 -45.0 -0.59212 + -150.0 -45.0 -0.42200 + -135.0 -45.0 -0.01106 + -120.0 -45.0 -0.51470 + -105.0 -45.0 -0.80922 + -90.0 -45.0 -0.99538 + -75.0 -45.0 -1.06430 + -60.0 -45.0 -0.87844 + -45.0 -45.0 -0.24576 + -30.0 -45.0 0.77634 + -15.0 -45.0 2.05251 + 0.0 -45.0 2.78505 + 15.0 -45.0 3.13379 + 30.0 -45.0 2.85045 + 45.0 -45.0 2.19151 + 60.0 -45.0 1.16243 + 75.0 -45.0 0.20720 + 90.0 -45.0 -0.42237 + 105.0 -45.0 -0.46460 + 120.0 -45.0 -0.38665 + 135.0 -45.0 -0.55232 + 150.0 -45.0 -0.67078 + 165.0 -45.0 -0.67830 + 180.0 -45.0 -0.67275 + -180.0 -30.0 -2.46944 + -165.0 -30.0 -2.32595 + -150.0 -30.0 -1.71439 + -135.0 -30.0 -2.48703 + -120.0 -30.0 -2.56054 + -105.0 -30.0 -2.46215 + -90.0 -30.0 -2.37111 + -75.0 -30.0 -2.19037 + -60.0 -30.0 -1.62432 + -45.0 -30.0 -0.72370 + -30.0 -30.0 0.35895 + -15.0 -30.0 1.35947 + 0.0 -30.0 2.12358 + 15.0 -30.0 2.36496 + 30.0 -30.0 1.96636 + 45.0 -30.0 1.05275 + 60.0 -30.0 -0.26183 + 75.0 -30.0 -1.16368 + 90.0 -30.0 -1.65442 + 105.0 -30.0 -1.64196 + 120.0 -30.0 -1.86484 + 135.0 -30.0 -2.09366 + 150.0 -30.0 -2.28268 + 165.0 -30.0 -2.41932 + 180.0 -30.0 -2.46944 + -180.0 -15.0 -3.82546 + -165.0 -15.0 -3.22967 + -150.0 -15.0 -3.93518 + -135.0 -15.0 -3.85949 + -120.0 -15.0 -3.58321 + -105.0 -15.0 -3.28549 + -90.0 -15.0 -3.01617 + -75.0 -15.0 -2.60005 + -60.0 -15.0 -1.92147 + -45.0 -15.0 -1.14234 + -30.0 -15.0 -0.00873 + -15.0 -15.0 1.14445 + 0.0 -15.0 1.77335 + 15.0 -15.0 1.79047 + 30.0 -15.0 1.09507 + 45.0 -15.0 -0.16297 + 60.0 -15.0 -1.43516 + 75.0 -15.0 -2.26699 + 90.0 -15.0 -2.45933 + 105.0 -15.0 -2.70542 + 120.0 -15.0 -3.03929 + 135.0 -15.0 -3.35545 + 150.0 -15.0 -3.62364 + 165.0 -15.0 -3.79758 + 180.0 -15.0 -3.82546 + -180.0 0.0 -3.82990 + -165.0 0.0 -4.37645 + -150.0 0.0 -4.29456 + -135.0 0.0 -4.01846 + -120.0 0.0 -3.66843 + -105.0 0.0 -3.31240 + -90.0 0.0 -2.96646 + -75.0 0.0 -2.58028 + -60.0 0.0 -2.08554 + -45.0 0.0 -0.99050 + -30.0 0.0 0.42261 + -15.0 0.0 1.35374 + 0.0 0.0 1.69885 + 15.0 0.0 1.35374 + 30.0 0.0 0.42261 + 45.0 0.0 -1.00310 + 60.0 0.0 -2.08554 + 75.0 0.0 -2.58028 + 90.0 0.0 -2.96646 + 105.0 0.0 -3.31240 + 120.0 0.0 -3.66843 + 135.0 0.0 -4.01846 + 150.0 0.0 -4.29456 + 165.0 0.0 -4.37645 + 180.0 0.0 -3.82990 + -180.0 15.0 -3.82546 + -165.0 15.0 -3.79758 + -150.0 15.0 -3.62364 + -135.0 15.0 -3.35545 + -120.0 15.0 -3.03929 + -105.0 15.0 -2.70542 + -90.0 15.0 -2.45933 + -75.0 15.0 -2.26699 + -60.0 15.0 -1.43516 + -45.0 15.0 -0.16297 + -30.0 15.0 1.09507 + -15.0 15.0 1.79047 + 0.0 15.0 1.77335 + 15.0 15.0 1.14445 + 30.0 15.0 -0.00873 + 45.0 15.0 -1.14234 + 60.0 15.0 -1.92147 + 75.0 15.0 -2.60005 + 90.0 15.0 -3.01617 + 105.0 15.0 -3.28549 + 120.0 15.0 -3.58321 + 135.0 15.0 -3.85949 + 150.0 15.0 -3.93518 + 165.0 15.0 -3.23037 + 180.0 15.0 -3.82546 + -180.0 30.0 -2.46944 + -165.0 30.0 -2.41932 + -150.0 30.0 -2.28268 + -135.0 30.0 -2.09366 + -120.0 30.0 -1.86484 + -105.0 30.0 -1.64196 + -90.0 30.0 -1.65442 + -75.0 30.0 -1.16368 + -60.0 30.0 -0.26183 + -45.0 30.0 1.05275 + -30.0 30.0 1.96636 + -15.0 30.0 2.36496 + 0.0 30.0 2.12358 + 15.0 30.0 1.35947 + 30.0 30.0 0.35055 + 45.0 30.0 -0.72370 + 60.0 30.0 -1.62432 + 75.0 30.0 -2.19037 + 90.0 30.0 -2.37111 + 105.0 30.0 -2.46215 + 120.0 30.0 -2.56054 + 135.0 30.0 -2.48703 + 150.0 30.0 -1.70729 + 165.0 30.0 -2.32595 + 180.0 30.0 -2.46944 + -180.0 45.0 -0.67275 + -165.0 45.0 -0.67830 + -150.0 45.0 -0.67078 + -135.0 45.0 -0.55232 + -120.0 45.0 -0.38665 + -105.0 45.0 -0.46460 + -90.0 45.0 -0.42237 + -75.0 45.0 0.20720 + -60.0 45.0 1.16243 + -45.0 45.0 2.19151 + -30.0 45.0 2.85045 + -15.0 45.0 3.13379 + 0.0 45.0 2.78505 + 15.0 45.0 2.06071 + 30.0 45.0 0.77634 + 45.0 45.0 -0.24576 + 60.0 45.0 -0.87844 + 75.0 45.0 -1.06430 + 90.0 45.0 -0.99538 + 105.0 45.0 -0.80922 + 120.0 45.0 -0.51470 + 135.0 45.0 -0.01106 + 150.0 45.0 -0.42200 + 165.0 45.0 -0.59212 + 180.0 45.0 -0.67275 + -180.0 60.0 0.94133 + -165.0 60.0 0.78581 + -150.0 60.0 0.75367 + -135.0 60.0 0.79351 + -120.0 60.0 0.77935 + -105.0 60.0 0.57769 + -90.0 60.0 0.79250 + -75.0 60.0 1.36042 + -60.0 60.0 1.94715 + -45.0 60.0 2.89718 + -30.0 60.0 3.40120 + -15.0 60.0 3.78367 + 0.0 60.0 3.54214 + 15.0 60.0 2.19742 + 30.0 60.0 1.24745 + 45.0 60.0 0.74572 + 60.0 60.0 0.56577 + 75.0 60.0 0.57562 + 90.0 60.0 0.79628 + 105.0 60.0 1.25994 + 120.0 60.0 0.94411 + 135.0 60.0 0.96211 + 150.0 60.0 1.06365 + 165.0 60.0 1.07716 + 180.0 60.0 0.94133 + -180.0 75.0 1.80621 + -165.0 75.0 1.64225 + -150.0 75.0 1.59747 + -135.0 75.0 1.53314 + -120.0 75.0 1.36656 + -105.0 75.0 1.09103 + -90.0 75.0 1.27852 + -75.0 75.0 1.66472 + -60.0 75.0 2.31976 + -45.0 75.0 2.86443 + -30.0 75.0 3.57523 + -15.0 75.0 4.06613 + 0.0 75.0 3.24329 + 15.0 75.0 2.40295 + 30.0 75.0 2.13049 + 45.0 75.0 2.21268 + 60.0 75.0 2.17320 + 75.0 75.0 2.16375 + 90.0 75.0 1.43311 + 105.0 75.0 1.22509 + 120.0 75.0 1.29208 + 135.0 75.0 1.68691 + 150.0 75.0 2.03556 + 165.0 75.0 2.08080 + 180.0 75.0 1.80621 + -180.0 90.0 1.90401 + -165.0 90.0 1.82118 + -150.0 90.0 1.81755 + -135.0 90.0 1.62671 + -120.0 90.0 1.41199 + -105.0 90.0 1.17449 + -90.0 90.0 1.13012 + -75.0 90.0 1.33310 + -60.0 90.0 1.57482 + -45.0 90.0 2.15793 + -30.0 90.0 2.79428 + -15.0 90.0 3.09474 + 0.0 90.0 2.65047 + 15.0 90.0 2.62493 + 30.0 90.0 3.09673 + 45.0 90.0 3.45522 + 60.0 90.0 2.45075 + 75.0 90.0 1.23397 + 90.0 90.0 0.90562 + 105.0 90.0 1.02391 + 120.0 90.0 1.35280 + 135.0 90.0 1.79055 + 150.0 90.0 2.29924 + 165.0 90.0 2.03939 + 180.0 90.0 1.90401 + -180.0 105.0 1.42827 + -165.0 105.0 1.53133 + -150.0 105.0 1.50886 + -135.0 105.0 1.51499 + -120.0 105.0 1.33189 + -105.0 105.0 1.02077 + -90.0 105.0 0.60470 + -75.0 105.0 0.46027 + -60.0 105.0 0.55065 + -45.0 105.0 0.92486 + -30.0 105.0 1.43567 + -15.0 105.0 1.65224 + 0.0 105.0 1.95317 + 15.0 105.0 2.65211 + 30.0 105.0 3.58847 + 45.0 105.0 2.98189 + 60.0 105.0 1.22814 + 75.0 105.0 0.20821 + 90.0 105.0 0.20084 + 105.0 105.0 0.56475 + 120.0 105.0 1.03764 + 135.0 105.0 1.64917 + 150.0 105.0 1.72204 + 165.0 105.0 1.50406 + 180.0 105.0 1.42827 + -180.0 120.0 0.76282 + -165.0 120.0 1.05012 + -150.0 120.0 1.15910 + -135.0 120.0 1.16949 + -120.0 120.0 0.97289 + -105.0 120.0 0.54550 + -90.0 120.0 0.18803 + -75.0 120.0 -0.35755 + -60.0 120.0 -0.64487 + -45.0 120.0 -0.49787 + -30.0 120.0 -0.07964 + -15.0 120.0 0.51132 + 0.0 120.0 1.40660 + 15.0 120.0 2.47433 + 30.0 120.0 3.49117 + 45.0 120.0 1.42775 + 60.0 120.0 -0.44624 + 75.0 120.0 -0.87022 + 90.0 120.0 -0.55868 + 105.0 120.0 -0.17578 + 120.0 120.0 0.46767 + 135.0 120.0 0.80302 + 150.0 120.0 0.73536 + 165.0 120.0 0.65049 + 180.0 120.0 0.76282 + -180.0 135.0 0.22137 + -165.0 135.0 0.59900 + -150.0 135.0 0.82176 + -135.0 135.0 0.78961 + -120.0 135.0 0.35059 + -105.0 135.0 -0.14353 + -90.0 135.0 -0.54882 + -75.0 135.0 -1.11846 + -60.0 135.0 -1.54005 + -45.0 135.0 -1.57764 + -30.0 135.0 -1.08446 + -15.0 135.0 -0.13409 + 0.0 135.0 1.01469 + 15.0 135.0 2.08125 + 30.0 135.0 2.15102 + 45.0 135.0 -0.87317 + 60.0 135.0 -1.99291 + 75.0 135.0 -1.97985 + 90.0 135.0 -1.48283 + 105.0 135.0 -0.91494 + 120.0 135.0 -0.45372 + 135.0 135.0 -0.25120 + 150.0 135.0 -0.25069 + 165.0 135.0 -0.11507 + 180.0 135.0 0.22137 + -180.0 150.0 -0.05487 + -165.0 150.0 0.30007 + -150.0 150.0 0.37394 + -135.0 150.0 0.15792 + -120.0 150.0 -0.27502 + -105.0 150.0 -0.79693 + -90.0 150.0 -1.32072 + -75.0 150.0 -1.85418 + -60.0 150.0 -2.27657 + -45.0 150.0 -2.28172 + -30.0 150.0 -1.60792 + -15.0 150.0 -0.47503 + 0.0 150.0 0.68197 + 15.0 150.0 1.60921 + 30.0 150.0 -0.65594 + 45.0 150.0 -2.36553 + 60.0 150.0 -2.95919 + 75.0 150.0 -2.73078 + 90.0 150.0 -2.17397 + 105.0 150.0 -1.65041 + 120.0 150.0 -1.25474 + 135.0 150.0 -1.02443 + 150.0 150.0 -0.83418 + 165.0 150.0 -0.49639 + 180.0 150.0 -0.05487 + -180.0 165.0 -0.03043 + -165.0 165.0 0.10146 + -150.0 165.0 -0.04055 + -135.0 165.0 -0.44166 + -120.0 165.0 -0.94989 + -105.0 165.0 -1.47132 + -90.0 165.0 -1.96898 + -75.0 165.0 -2.45910 + -60.0 165.0 -2.82977 + -45.0 165.0 -2.72832 + -30.0 165.0 -1.85441 + -15.0 165.0 -0.59328 + 0.0 165.0 0.47583 + 15.0 165.0 0.28654 + 30.0 165.0 -1.66034 + 45.0 165.0 -2.85897 + 60.0 165.0 -3.27921 + 75.0 165.0 -2.96238 + 90.0 165.0 -2.44752 + 105.0 165.0 -1.99117 + 120.0 165.0 -1.60564 + 135.0 165.0 -1.22723 + 150.0 165.0 -0.84288 + 165.0 165.0 -0.40282 + 180.0 165.0 -0.03043 + -180.0 180.0 0.00000 + -165.0 180.0 -0.15918 + -150.0 180.0 -0.46924 + -135.0 180.0 -0.94887 + -120.0 180.0 -1.41919 + -105.0 180.0 -1.89608 + -90.0 180.0 -2.35024 + -75.0 180.0 -2.81648 + -60.0 180.0 -3.17758 + -45.0 180.0 -2.91092 + -30.0 180.0 -1.84916 + -15.0 180.0 -0.61868 + 0.0 180.0 1.44957 + 15.0 180.0 -0.61868 + 30.0 180.0 -1.84916 + 45.0 180.0 -2.91092 + 60.0 180.0 -3.17758 + 75.0 180.0 -2.81793 + 90.0 180.0 -2.34954 + 105.0 180.0 -1.91578 + 120.0 180.0 -1.41919 + 135.0 180.0 -0.94887 + 150.0 180.0 -0.46924 + 165.0 180.0 -0.15918 + 180.0 180.0 0.00000 + +tortors 3 1 7 3 1 25 25 + -180.0 -180.0 0.98936 + -165.0 -180.0 0.76408 + -150.0 -180.0 0.21674 + -135.0 -180.0 -0.18200 + -120.0 -180.0 -0.37729 + -105.0 -180.0 -0.47834 + -90.0 -180.0 -0.59267 + -75.0 -180.0 -0.93985 + -60.0 -180.0 -1.55558 + -45.0 -180.0 -2.01849 + -30.0 -180.0 -1.94076 + -15.0 -180.0 -1.46400 + 0.0 -180.0 0.18253 + 15.0 -180.0 -0.80364 + 30.0 -180.0 -1.32974 + 45.0 -180.0 -1.31658 + 60.0 -180.0 -0.50140 + 75.0 -180.0 0.20431 + 90.0 -180.0 0.39356 + 105.0 -180.0 0.20356 + 120.0 -180.0 -0.16993 + 135.0 -180.0 -0.22733 + 150.0 -180.0 0.13703 + 165.0 -180.0 0.66356 + 180.0 -180.0 0.98936 + -180.0 -165.0 0.96101 + -165.0 -165.0 0.37535 + -150.0 -165.0 -0.35733 + -135.0 -165.0 -0.69994 + -120.0 -165.0 -0.67298 + -105.0 -165.0 -0.58294 + -90.0 -165.0 -0.66465 + -75.0 -165.0 -1.02945 + -60.0 -165.0 -1.72427 + -45.0 -165.0 -2.19357 + -30.0 -165.0 -2.26378 + -15.0 -165.0 -1.73850 + 0.0 -165.0 -0.80969 + 15.0 -165.0 -1.16164 + 30.0 -165.0 -1.62772 + 45.0 -165.0 -1.51932 + 60.0 -165.0 -0.62569 + 75.0 -165.0 0.13130 + 90.0 -165.0 0.41019 + 105.0 -165.0 0.32974 + 120.0 -165.0 0.19191 + 135.0 -165.0 0.32320 + 150.0 -165.0 0.68257 + 165.0 -165.0 1.03015 + 180.0 -165.0 0.96101 + -180.0 -150.0 0.72651 + -165.0 -150.0 -0.04361 + -150.0 -150.0 -0.78147 + -135.0 -150.0 -0.90703 + -120.0 -150.0 -0.65095 + -105.0 -150.0 -0.48165 + -90.0 -150.0 -0.59657 + -75.0 -150.0 -1.14449 + -60.0 -150.0 -1.75396 + -45.0 -150.0 -2.27900 + -30.0 -150.0 -2.14873 + -15.0 -150.0 -0.26757 + 0.0 -150.0 -0.77578 + 15.0 -150.0 -1.30595 + 30.0 -150.0 -1.79607 + 45.0 -150.0 -1.55982 + 60.0 -150.0 -0.57905 + 75.0 -150.0 0.30576 + 90.0 -150.0 0.70711 + 105.0 -150.0 0.68903 + 120.0 -150.0 0.53594 + 135.0 -150.0 0.60304 + 150.0 -150.0 0.88805 + 165.0 -150.0 0.99720 + 180.0 -150.0 0.72651 + -180.0 -135.0 0.15500 + -165.0 -135.0 -0.20013 + -150.0 -135.0 -0.79660 + -135.0 -135.0 -0.74958 + -120.0 -135.0 -0.43624 + -105.0 -135.0 -0.36715 + -90.0 -135.0 -0.58938 + -75.0 -135.0 -0.99698 + -60.0 -135.0 -1.59208 + -45.0 -135.0 -1.67026 + -30.0 -135.0 0.50672 + -15.0 -135.0 -0.03293 + 0.0 -135.0 -0.84501 + 15.0 -135.0 -1.52731 + 30.0 -135.0 -1.89898 + 45.0 -135.0 -1.54469 + 60.0 -135.0 -0.53752 + 75.0 -135.0 0.40003 + 90.0 -135.0 0.88952 + 105.0 -135.0 0.82150 + 120.0 -135.0 0.58663 + 135.0 -135.0 0.56781 + 150.0 -135.0 0.74002 + 165.0 -135.0 0.84486 + 180.0 -135.0 0.15500 + -180.0 -120.0 0.34021 + -165.0 -120.0 -0.20306 + -150.0 -120.0 -0.62787 + -135.0 -120.0 -0.55418 + -120.0 -120.0 -0.38986 + -105.0 -120.0 -0.44533 + -90.0 -120.0 -0.60179 + -75.0 -120.0 -0.93351 + -60.0 -120.0 -1.09198 + -45.0 -120.0 -0.18408 + -30.0 -120.0 1.24545 + -15.0 -120.0 -0.24279 + 0.0 -120.0 -1.24581 + 15.0 -120.0 -1.76363 + 30.0 -120.0 -1.80810 + 45.0 -120.0 -1.40319 + 60.0 -120.0 -0.63233 + 75.0 -120.0 0.15411 + 90.0 -120.0 0.58640 + 105.0 -120.0 0.51937 + 120.0 -120.0 0.25822 + 135.0 -120.0 0.13668 + 150.0 -120.0 0.23659 + 165.0 -120.0 0.46899 + 180.0 -120.0 0.34021 + -180.0 -105.0 -0.15437 + -165.0 -105.0 -0.14060 + -150.0 -105.0 -0.54321 + -135.0 -105.0 -0.58112 + -120.0 -105.0 -0.64967 + -105.0 -105.0 -0.71916 + -90.0 -105.0 -0.78801 + -75.0 -105.0 -0.76163 + -60.0 -105.0 -0.33401 + -45.0 -105.0 0.91720 + -30.0 -105.0 0.65423 + -15.0 -105.0 -0.84456 + 0.0 -105.0 -1.63476 + 15.0 -105.0 -1.65992 + 30.0 -105.0 -1.33178 + 45.0 -105.0 -1.08999 + 60.0 -105.0 -0.74243 + 75.0 -105.0 -0.33157 + 90.0 -105.0 -0.20618 + 105.0 -105.0 -0.07103 + 120.0 -105.0 -0.25941 + 135.0 -105.0 -0.37634 + 150.0 -105.0 -0.12892 + 165.0 -105.0 0.19386 + 180.0 -105.0 -0.15437 + -180.0 -90.0 0.44630 + -165.0 -90.0 0.02406 + -150.0 -90.0 -0.42821 + -135.0 -90.0 -0.76736 + -120.0 -90.0 -0.93537 + -105.0 -90.0 -0.86621 + -90.0 -90.0 -0.66178 + -75.0 -90.0 -0.23513 + -60.0 -90.0 0.41508 + -45.0 -90.0 0.97897 + -30.0 -90.0 -0.30358 + -15.0 -90.0 -1.42025 + 0.0 -90.0 -1.62146 + 15.0 -90.0 -0.98816 + 30.0 -90.0 -0.58148 + 45.0 -90.0 -0.49791 + 60.0 -90.0 -0.32045 + 75.0 -90.0 -0.39639 + 90.0 -90.0 -0.94422 + 105.0 -90.0 -0.74539 + 120.0 -90.0 -0.60241 + 135.0 -90.0 -0.56295 + 150.0 -90.0 -0.15877 + 165.0 -90.0 0.33609 + 180.0 -90.0 0.44630 + -180.0 -75.0 0.69562 + -165.0 -75.0 0.16403 + -150.0 -75.0 -0.43627 + -135.0 -75.0 -0.79169 + -120.0 -75.0 -0.80743 + -105.0 -75.0 -0.48767 + -90.0 -75.0 0.12397 + -75.0 -75.0 0.80972 + -60.0 -75.0 0.52616 + -45.0 -75.0 -0.13884 + -30.0 -75.0 -1.08459 + -15.0 -75.0 -1.55600 + 0.0 -75.0 -1.12531 + 15.0 -75.0 -0.19831 + 30.0 -75.0 -0.00344 + 45.0 -75.0 0.01061 + 60.0 -75.0 0.11066 + 75.0 -75.0 -0.12406 + 90.0 -75.0 -0.81980 + 105.0 -75.0 -1.04369 + 120.0 -75.0 -0.62525 + 135.0 -75.0 -0.37223 + 150.0 -75.0 0.09012 + 165.0 -75.0 0.58855 + 180.0 -75.0 0.69562 + -180.0 -60.0 0.70531 + -165.0 -60.0 0.15456 + -150.0 -60.0 -0.40882 + -135.0 -60.0 -0.57653 + -120.0 -60.0 -0.20146 + -105.0 -60.0 0.21285 + -90.0 -60.0 0.15007 + -75.0 -60.0 0.06572 + -60.0 -60.0 -0.22861 + -45.0 -60.0 -0.75313 + -30.0 -60.0 -1.17725 + -15.0 -60.0 -1.07040 + 0.0 -60.0 -0.29306 + 15.0 -60.0 0.11777 + 30.0 -60.0 0.42905 + 45.0 -60.0 0.53679 + 60.0 -60.0 0.52038 + 75.0 -60.0 0.27617 + 90.0 -60.0 -0.36078 + 105.0 -60.0 -0.66569 + 120.0 -60.0 -0.35068 + 135.0 -60.0 -0.13164 + 150.0 -60.0 0.27666 + 165.0 -60.0 0.70865 + 180.0 -60.0 0.70531 + -180.0 -45.0 0.42237 + -165.0 -45.0 -0.14148 + -150.0 -45.0 -0.50856 + -135.0 -45.0 -0.14423 + -120.0 -45.0 -0.53339 + -105.0 -45.0 -0.51400 + -90.0 -45.0 -0.33290 + -75.0 -45.0 -0.24488 + -60.0 -45.0 -0.32054 + -45.0 -45.0 -0.40379 + -30.0 -45.0 -0.41006 + -15.0 -45.0 -0.23372 + 0.0 -45.0 0.07185 + 15.0 -45.0 0.70729 + 30.0 -45.0 1.16881 + 45.0 -45.0 1.23276 + 60.0 -45.0 0.77518 + 75.0 -45.0 0.51970 + 90.0 -45.0 -0.12956 + 105.0 -45.0 -0.24028 + 120.0 -45.0 -0.08791 + 135.0 -45.0 0.02315 + 150.0 -45.0 0.32774 + 165.0 -45.0 0.55330 + 180.0 -45.0 0.42237 + -180.0 -30.0 0.12700 + -165.0 -30.0 -0.36697 + -150.0 -30.0 -0.33178 + -135.0 -30.0 -1.09856 + -120.0 -30.0 -1.01098 + -105.0 -30.0 -0.61780 + -90.0 -30.0 -0.18232 + -75.0 -30.0 0.14143 + -60.0 -30.0 0.40819 + -45.0 -30.0 0.50556 + -30.0 -30.0 0.34379 + -15.0 -30.0 0.31224 + 0.0 -30.0 0.97008 + 15.0 -30.0 1.70616 + 30.0 -30.0 1.99942 + 45.0 -30.0 1.79196 + 60.0 -30.0 1.26978 + 75.0 -30.0 0.65732 + 90.0 -30.0 0.04223 + 105.0 -30.0 0.22658 + 120.0 -30.0 0.08209 + 135.0 -30.0 0.05525 + 150.0 -30.0 0.22382 + 165.0 -30.0 0.33964 + 180.0 -30.0 0.12700 + -180.0 -15.0 -0.06517 + -165.0 -15.0 -0.13598 + -150.0 -15.0 -1.30614 + -135.0 -15.0 -1.09555 + -120.0 -15.0 -0.64991 + -105.0 -15.0 -0.06482 + -90.0 -15.0 0.49509 + -75.0 -15.0 0.92103 + -60.0 -15.0 1.94755 + -45.0 -15.0 0.95164 + -30.0 -15.0 0.87870 + -15.0 -15.0 1.42479 + 0.0 -15.0 2.06338 + 15.0 -15.0 2.50243 + 30.0 -15.0 2.59266 + 45.0 -15.0 2.02131 + 60.0 -15.0 1.26236 + 75.0 -15.0 0.65759 + 90.0 -15.0 0.60601 + 105.0 -15.0 0.40777 + 120.0 -15.0 0.08605 + 135.0 -15.0 -0.02333 + 150.0 -15.0 0.06947 + 165.0 -15.0 0.13044 + 180.0 -15.0 -0.06517 + -180.0 0.0 -1.44412 + -165.0 0.0 -1.37206 + -150.0 0.0 -0.97055 + -135.0 0.0 -0.54692 + -120.0 0.0 -0.04768 + -105.0 0.0 0.65462 + -90.0 0.0 1.09803 + -75.0 0.0 1.41180 + -60.0 0.0 1.23685 + -45.0 0.0 1.32368 + -30.0 0.0 1.83555 + -15.0 0.0 2.29146 + 0.0 0.0 2.61632 + 15.0 0.0 2.73204 + 30.0 0.0 2.49607 + 45.0 0.0 1.76205 + 60.0 0.0 1.23208 + 75.0 0.0 1.11843 + 90.0 0.0 1.50389 + 105.0 0.0 0.20088 + 120.0 0.0 -0.22667 + 135.0 0.0 -0.38306 + 150.0 0.0 -0.27813 + 165.0 0.0 -0.08165 + 180.0 0.0 -1.44412 + -180.0 15.0 -1.54337 + -165.0 15.0 -0.94875 + -150.0 15.0 -0.44630 + -135.0 15.0 -0.06444 + -120.0 15.0 0.39675 + -105.0 15.0 0.90513 + -90.0 15.0 1.24019 + -75.0 15.0 1.18954 + -60.0 15.0 1.36753 + -45.0 15.0 1.82290 + -30.0 15.0 2.22229 + -15.0 15.0 2.44694 + 0.0 15.0 2.44244 + 15.0 15.0 2.26164 + 30.0 15.0 1.85516 + 45.0 15.0 1.56722 + 60.0 15.0 1.43193 + 75.0 15.0 0.71918 + 90.0 15.0 0.14053 + 105.0 15.0 -0.36429 + 120.0 15.0 -0.76466 + 135.0 15.0 -0.87217 + 150.0 15.0 -0.57197 + 165.0 15.0 -1.61569 + 180.0 15.0 -1.54337 + -180.0 30.0 -1.09485 + -165.0 30.0 -0.56681 + -150.0 30.0 -0.13387 + -135.0 30.0 0.19412 + -120.0 30.0 0.57374 + -105.0 30.0 0.86366 + -90.0 30.0 0.80314 + -75.0 30.0 1.08125 + -60.0 30.0 1.39143 + -45.0 30.0 1.86048 + -30.0 30.0 2.01491 + -15.0 30.0 2.03904 + 0.0 30.0 1.77856 + 15.0 30.0 1.48754 + 30.0 30.0 1.53762 + 45.0 30.0 1.22766 + 60.0 30.0 0.55347 + 75.0 30.0 -0.06469 + 90.0 30.0 -0.47099 + 105.0 30.0 -0.82958 + 120.0 30.0 -1.01883 + 135.0 30.0 -0.75479 + 150.0 30.0 -1.39221 + 165.0 30.0 -1.55942 + 180.0 30.0 -1.09485 + -180.0 45.0 -0.55882 + -165.0 45.0 -0.22825 + -150.0 45.0 0.01795 + -135.0 45.0 0.21896 + -120.0 45.0 0.49238 + -105.0 45.0 0.39403 + -90.0 45.0 0.48870 + -75.0 45.0 0.90318 + -60.0 45.0 1.06730 + -45.0 45.0 1.40576 + -30.0 45.0 1.50400 + -15.0 45.0 1.39328 + 0.0 45.0 1.13519 + 15.0 45.0 1.11176 + 30.0 45.0 0.55506 + 45.0 45.0 0.04408 + 60.0 45.0 -0.25930 + 75.0 45.0 -0.42888 + 90.0 45.0 -0.51963 + 105.0 45.0 -0.55634 + 120.0 45.0 -0.25212 + 135.0 45.0 -0.62098 + 150.0 45.0 -1.22694 + 165.0 45.0 -1.05054 + 180.0 45.0 -0.55882 + -180.0 60.0 -0.18285 + -165.0 60.0 -0.08650 + -150.0 60.0 0.00476 + -135.0 60.0 0.11545 + -120.0 60.0 0.16266 + -105.0 60.0 0.01161 + -90.0 60.0 0.39632 + -75.0 60.0 0.75519 + -60.0 60.0 0.96557 + -45.0 60.0 0.97640 + -30.0 60.0 0.97745 + -15.0 60.0 0.97978 + 0.0 60.0 0.79555 + 15.0 60.0 -0.15675 + 30.0 60.0 -0.51647 + 45.0 60.0 -0.39418 + 60.0 60.0 -0.15303 + 75.0 60.0 -0.00800 + 90.0 60.0 0.09982 + 105.0 60.0 0.37002 + 120.0 60.0 0.12378 + 135.0 60.0 -0.63827 + 150.0 60.0 -0.59589 + 165.0 60.0 -0.38041 + 180.0 60.0 -0.18285 + -180.0 75.0 -0.06600 + -165.0 75.0 -0.07528 + -150.0 75.0 -0.04119 + -135.0 75.0 -0.07933 + -120.0 75.0 -0.19424 + -105.0 75.0 -0.27213 + -90.0 75.0 0.00000 + -75.0 75.0 0.40627 + -60.0 75.0 0.67141 + -45.0 75.0 0.48954 + -30.0 75.0 0.49392 + -15.0 75.0 0.53926 + 0.0 75.0 -0.43613 + 15.0 75.0 -0.91296 + 30.0 75.0 -0.57046 + 45.0 75.0 0.20602 + 60.0 75.0 0.66426 + 75.0 75.0 0.78486 + 90.0 75.0 0.83638 + 105.0 75.0 0.47569 + 120.0 75.0 -0.24156 + 135.0 75.0 -0.36935 + 150.0 75.0 -0.03276 + 165.0 75.0 -0.00079 + 180.0 75.0 -0.06600 + -180.0 90.0 -0.19813 + -165.0 90.0 -0.18275 + -150.0 90.0 -0.13564 + -135.0 90.0 -0.16443 + -120.0 90.0 -0.25121 + -105.0 90.0 -0.36588 + -90.0 90.0 -0.30532 + -75.0 90.0 -0.05335 + -60.0 90.0 -0.11065 + -45.0 90.0 -0.24703 + -30.0 90.0 -0.35383 + -15.0 90.0 -0.66704 + 0.0 90.0 -1.22785 + 15.0 90.0 -0.99837 + 30.0 90.0 0.07165 + 45.0 90.0 1.17090 + 60.0 90.0 1.52568 + 75.0 90.0 1.19212 + 90.0 90.0 0.65821 + 105.0 90.0 0.07691 + 120.0 90.0 -0.25244 + 135.0 90.0 -0.10611 + 150.0 90.0 0.09358 + 165.0 90.0 0.00731 + 180.0 90.0 -0.19813 + -180.0 105.0 -0.34850 + -165.0 105.0 -0.15035 + -150.0 105.0 -0.40367 + -135.0 105.0 -0.01197 + -120.0 105.0 -0.06100 + -105.0 105.0 -0.15190 + -90.0 105.0 -0.31715 + -75.0 105.0 -0.62391 + -60.0 105.0 -0.90231 + -45.0 105.0 -1.37607 + -30.0 105.0 -1.62179 + -15.0 105.0 -1.73579 + 0.0 105.0 -1.64875 + 15.0 105.0 -0.75542 + 30.0 105.0 0.71157 + 45.0 105.0 1.26356 + 60.0 105.0 0.75960 + 75.0 105.0 0.59400 + 90.0 105.0 0.30667 + 105.0 105.0 -0.06284 + 120.0 105.0 -0.20456 + 135.0 105.0 -0.08836 + 150.0 105.0 -0.16590 + 165.0 105.0 -0.35505 + 180.0 105.0 -0.34850 + -180.0 120.0 -0.34576 + -165.0 120.0 0.02576 + -150.0 120.0 0.27228 + -135.0 120.0 0.28454 + -120.0 120.0 0.18375 + -105.0 120.0 0.01398 + -90.0 120.0 -0.27455 + -75.0 120.0 -0.77580 + -60.0 120.0 -1.42554 + -45.0 120.0 -1.99064 + -30.0 120.0 -2.37393 + -15.0 120.0 -2.20009 + 0.0 120.0 -1.60683 + 15.0 120.0 -0.44372 + 30.0 120.0 1.09513 + 45.0 120.0 0.35522 + 60.0 120.0 -0.04151 + 75.0 120.0 0.17766 + 90.0 120.0 0.14305 + 105.0 120.0 -0.13472 + 120.0 120.0 -0.31725 + 135.0 120.0 -0.45800 + 150.0 120.0 -0.64821 + 165.0 120.0 -0.63355 + 180.0 120.0 -0.34576 + -180.0 135.0 -0.08457 + -165.0 135.0 0.36013 + -150.0 135.0 0.54446 + -135.0 135.0 0.48098 + -120.0 135.0 0.27776 + -105.0 135.0 0.02335 + -90.0 135.0 -0.28766 + -75.0 135.0 -0.80414 + -60.0 135.0 -1.51330 + -45.0 135.0 -2.20028 + -30.0 135.0 -2.36835 + -15.0 135.0 -2.12483 + 0.0 135.0 -1.37600 + 15.0 135.0 -0.25291 + 30.0 135.0 0.78641 + 45.0 135.0 -0.96321 + 60.0 135.0 -0.57499 + 75.0 135.0 -0.00398 + 90.0 135.0 0.08668 + 105.0 135.0 -0.17475 + 120.0 135.0 -0.55212 + 135.0 135.0 -0.94225 + 150.0 135.0 -1.01661 + 165.0 135.0 -0.69656 + 180.0 135.0 -0.08457 + -180.0 150.0 0.28510 + -165.0 150.0 0.66185 + -150.0 150.0 0.69665 + -135.0 150.0 0.48378 + -120.0 150.0 0.16399 + -105.0 150.0 -0.09637 + -90.0 150.0 -0.36878 + -75.0 150.0 -0.80945 + -60.0 150.0 -1.41793 + -45.0 150.0 -2.18914 + -30.0 150.0 -2.20786 + -15.0 150.0 -1.82363 + 0.0 150.0 -1.11629 + 15.0 150.0 -0.04735 + 30.0 150.0 -1.17126 + 45.0 150.0 -1.34899 + 60.0 150.0 -0.62467 + 75.0 150.0 0.05642 + 90.0 150.0 0.17332 + 105.0 150.0 -0.14673 + 120.0 150.0 -0.69800 + 135.0 150.0 -1.11306 + 150.0 150.0 -1.02621 + 165.0 150.0 -0.41495 + 180.0 150.0 0.28510 + -180.0 165.0 0.76902 + -165.0 165.0 0.89311 + -150.0 165.0 0.59358 + -135.0 165.0 0.25887 + -120.0 165.0 -0.03955 + -105.0 165.0 -0.24006 + -90.0 165.0 -0.46456 + -75.0 165.0 -0.83170 + -60.0 165.0 -1.40143 + -45.0 165.0 -1.95471 + -30.0 165.0 -2.00388 + -15.0 165.0 -1.56184 + 0.0 165.0 -0.83182 + 15.0 165.0 -0.45132 + 30.0 165.0 -1.23096 + 45.0 165.0 -1.22650 + 60.0 165.0 -0.44761 + 75.0 165.0 0.25891 + 90.0 165.0 0.39936 + 105.0 165.0 0.07650 + 120.0 165.0 -0.49787 + 135.0 165.0 -0.79017 + 150.0 165.0 -0.50914 + 165.0 165.0 0.18602 + 180.0 165.0 0.76902 + -180.0 180.0 0.98936 + -165.0 180.0 0.76408 + -150.0 180.0 0.21674 + -135.0 180.0 -0.18200 + -120.0 180.0 -0.37729 + -105.0 180.0 -0.47834 + -90.0 180.0 -0.59267 + -75.0 180.0 -0.93985 + -60.0 180.0 -1.55558 + -45.0 180.0 -2.01849 + -30.0 180.0 -1.94076 + -15.0 180.0 -1.46400 + 0.0 180.0 0.18253 + 15.0 180.0 -0.80364 + 30.0 180.0 -1.32974 + 45.0 180.0 -1.31658 + 60.0 180.0 -0.50140 + 75.0 180.0 0.20431 + 90.0 180.0 0.39356 + 105.0 180.0 0.20356 + 120.0 180.0 -0.16993 + 135.0 180.0 -0.22733 + 150.0 180.0 0.13703 + 165.0 180.0 0.66356 + 180.0 180.0 0.98936 + +tortors 3 1 7 3 15 25 25 + -180.0 -180.0 0.98936 + -165.0 -180.0 0.76408 + -150.0 -180.0 0.21674 + -135.0 -180.0 -0.18200 + -120.0 -180.0 -0.37729 + -105.0 -180.0 -0.47834 + -90.0 -180.0 -0.59267 + -75.0 -180.0 -0.93985 + -60.0 -180.0 -1.55558 + -45.0 -180.0 -2.01849 + -30.0 -180.0 -1.94076 + -15.0 -180.0 -1.46400 + 0.0 -180.0 0.18253 + 15.0 -180.0 -0.80364 + 30.0 -180.0 -1.32974 + 45.0 -180.0 -1.31658 + 60.0 -180.0 -0.50140 + 75.0 -180.0 0.20431 + 90.0 -180.0 0.39356 + 105.0 -180.0 0.20356 + 120.0 -180.0 -0.16993 + 135.0 -180.0 -0.22733 + 150.0 -180.0 0.13703 + 165.0 -180.0 0.66356 + 180.0 -180.0 0.98936 + -180.0 -165.0 0.96101 + -165.0 -165.0 0.37535 + -150.0 -165.0 -0.35733 + -135.0 -165.0 -0.69994 + -120.0 -165.0 -0.67298 + -105.0 -165.0 -0.58294 + -90.0 -165.0 -0.66465 + -75.0 -165.0 -1.02945 + -60.0 -165.0 -1.72427 + -45.0 -165.0 -2.19357 + -30.0 -165.0 -2.26378 + -15.0 -165.0 -1.73850 + 0.0 -165.0 -0.80969 + 15.0 -165.0 -1.16164 + 30.0 -165.0 -1.62772 + 45.0 -165.0 -1.51932 + 60.0 -165.0 -0.62569 + 75.0 -165.0 0.13130 + 90.0 -165.0 0.41019 + 105.0 -165.0 0.32974 + 120.0 -165.0 0.19191 + 135.0 -165.0 0.32320 + 150.0 -165.0 0.68257 + 165.0 -165.0 1.03015 + 180.0 -165.0 0.96101 + -180.0 -150.0 0.72651 + -165.0 -150.0 -0.04361 + -150.0 -150.0 -0.78147 + -135.0 -150.0 -0.90703 + -120.0 -150.0 -0.65095 + -105.0 -150.0 -0.48165 + -90.0 -150.0 -0.59657 + -75.0 -150.0 -1.14449 + -60.0 -150.0 -1.75396 + -45.0 -150.0 -2.27900 + -30.0 -150.0 -2.14873 + -15.0 -150.0 -0.26757 + 0.0 -150.0 -0.77578 + 15.0 -150.0 -1.30595 + 30.0 -150.0 -1.79607 + 45.0 -150.0 -1.55982 + 60.0 -150.0 -0.57905 + 75.0 -150.0 0.30576 + 90.0 -150.0 0.70711 + 105.0 -150.0 0.68903 + 120.0 -150.0 0.53594 + 135.0 -150.0 0.60304 + 150.0 -150.0 0.88805 + 165.0 -150.0 0.99720 + 180.0 -150.0 0.72651 + -180.0 -135.0 0.15500 + -165.0 -135.0 -0.20013 + -150.0 -135.0 -0.79660 + -135.0 -135.0 -0.74958 + -120.0 -135.0 -0.43624 + -105.0 -135.0 -0.36715 + -90.0 -135.0 -0.58938 + -75.0 -135.0 -0.99698 + -60.0 -135.0 -1.59208 + -45.0 -135.0 -1.67026 + -30.0 -135.0 0.50672 + -15.0 -135.0 -0.03293 + 0.0 -135.0 -0.84501 + 15.0 -135.0 -1.52731 + 30.0 -135.0 -1.89898 + 45.0 -135.0 -1.54469 + 60.0 -135.0 -0.53752 + 75.0 -135.0 0.40003 + 90.0 -135.0 0.88952 + 105.0 -135.0 0.82150 + 120.0 -135.0 0.58663 + 135.0 -135.0 0.56781 + 150.0 -135.0 0.74002 + 165.0 -135.0 0.84486 + 180.0 -135.0 0.15500 + -180.0 -120.0 0.34021 + -165.0 -120.0 -0.20306 + -150.0 -120.0 -0.62787 + -135.0 -120.0 -0.55418 + -120.0 -120.0 -0.38986 + -105.0 -120.0 -0.44533 + -90.0 -120.0 -0.60179 + -75.0 -120.0 -0.93351 + -60.0 -120.0 -1.09198 + -45.0 -120.0 -0.18408 + -30.0 -120.0 1.24545 + -15.0 -120.0 -0.24279 + 0.0 -120.0 -1.24581 + 15.0 -120.0 -1.76363 + 30.0 -120.0 -1.80810 + 45.0 -120.0 -1.40319 + 60.0 -120.0 -0.63233 + 75.0 -120.0 0.15411 + 90.0 -120.0 0.58640 + 105.0 -120.0 0.51937 + 120.0 -120.0 0.25822 + 135.0 -120.0 0.13668 + 150.0 -120.0 0.23659 + 165.0 -120.0 0.46899 + 180.0 -120.0 0.34021 + -180.0 -105.0 -0.15437 + -165.0 -105.0 -0.14060 + -150.0 -105.0 -0.54321 + -135.0 -105.0 -0.58112 + -120.0 -105.0 -0.64967 + -105.0 -105.0 -0.71916 + -90.0 -105.0 -0.78801 + -75.0 -105.0 -0.76163 + -60.0 -105.0 -0.33401 + -45.0 -105.0 0.91720 + -30.0 -105.0 0.65423 + -15.0 -105.0 -0.84456 + 0.0 -105.0 -1.63476 + 15.0 -105.0 -1.65992 + 30.0 -105.0 -1.33178 + 45.0 -105.0 -1.08999 + 60.0 -105.0 -0.74243 + 75.0 -105.0 -0.33157 + 90.0 -105.0 -0.20618 + 105.0 -105.0 -0.07103 + 120.0 -105.0 -0.25941 + 135.0 -105.0 -0.37634 + 150.0 -105.0 -0.12892 + 165.0 -105.0 0.19386 + 180.0 -105.0 -0.15437 + -180.0 -90.0 0.44630 + -165.0 -90.0 0.02406 + -150.0 -90.0 -0.42821 + -135.0 -90.0 -0.76736 + -120.0 -90.0 -0.93537 + -105.0 -90.0 -0.86621 + -90.0 -90.0 -0.66178 + -75.0 -90.0 -0.23513 + -60.0 -90.0 0.41508 + -45.0 -90.0 0.97897 + -30.0 -90.0 -0.30358 + -15.0 -90.0 -1.42025 + 0.0 -90.0 -1.62146 + 15.0 -90.0 -0.98816 + 30.0 -90.0 -0.58148 + 45.0 -90.0 -0.49791 + 60.0 -90.0 -0.32045 + 75.0 -90.0 -0.39639 + 90.0 -90.0 -0.94422 + 105.0 -90.0 -0.74539 + 120.0 -90.0 -0.60241 + 135.0 -90.0 -0.56295 + 150.0 -90.0 -0.15877 + 165.0 -90.0 0.33609 + 180.0 -90.0 0.44630 + -180.0 -75.0 0.69562 + -165.0 -75.0 0.16403 + -150.0 -75.0 -0.43627 + -135.0 -75.0 -0.79169 + -120.0 -75.0 -0.80743 + -105.0 -75.0 -0.48767 + -90.0 -75.0 0.12397 + -75.0 -75.0 0.80972 + -60.0 -75.0 0.52616 + -45.0 -75.0 -0.13884 + -30.0 -75.0 -1.08459 + -15.0 -75.0 -1.55600 + 0.0 -75.0 -1.12531 + 15.0 -75.0 -0.19831 + 30.0 -75.0 -0.00344 + 45.0 -75.0 0.01061 + 60.0 -75.0 0.11066 + 75.0 -75.0 -0.12406 + 90.0 -75.0 -0.81980 + 105.0 -75.0 -1.04369 + 120.0 -75.0 -0.62525 + 135.0 -75.0 -0.37223 + 150.0 -75.0 0.09012 + 165.0 -75.0 0.58855 + 180.0 -75.0 0.69562 + -180.0 -60.0 0.70531 + -165.0 -60.0 0.15456 + -150.0 -60.0 -0.40882 + -135.0 -60.0 -0.57653 + -120.0 -60.0 -0.20146 + -105.0 -60.0 0.21285 + -90.0 -60.0 0.15007 + -75.0 -60.0 0.06572 + -60.0 -60.0 -0.22861 + -45.0 -60.0 -0.75313 + -30.0 -60.0 -1.17725 + -15.0 -60.0 -1.07040 + 0.0 -60.0 -0.29306 + 15.0 -60.0 0.11777 + 30.0 -60.0 0.42905 + 45.0 -60.0 0.53679 + 60.0 -60.0 0.52038 + 75.0 -60.0 0.27617 + 90.0 -60.0 -0.36078 + 105.0 -60.0 -0.66569 + 120.0 -60.0 -0.35068 + 135.0 -60.0 -0.13164 + 150.0 -60.0 0.27666 + 165.0 -60.0 0.70865 + 180.0 -60.0 0.70531 + -180.0 -45.0 0.42237 + -165.0 -45.0 -0.14148 + -150.0 -45.0 -0.50856 + -135.0 -45.0 -0.14423 + -120.0 -45.0 -0.53339 + -105.0 -45.0 -0.51400 + -90.0 -45.0 -0.33290 + -75.0 -45.0 -0.24488 + -60.0 -45.0 -0.32054 + -45.0 -45.0 -0.40379 + -30.0 -45.0 -0.41006 + -15.0 -45.0 -0.23372 + 0.0 -45.0 0.07185 + 15.0 -45.0 0.70729 + 30.0 -45.0 1.16881 + 45.0 -45.0 1.23276 + 60.0 -45.0 0.77518 + 75.0 -45.0 0.51970 + 90.0 -45.0 -0.12956 + 105.0 -45.0 -0.24028 + 120.0 -45.0 -0.08791 + 135.0 -45.0 0.02315 + 150.0 -45.0 0.32774 + 165.0 -45.0 0.55330 + 180.0 -45.0 0.42237 + -180.0 -30.0 0.12700 + -165.0 -30.0 -0.36697 + -150.0 -30.0 -0.33178 + -135.0 -30.0 -1.09856 + -120.0 -30.0 -1.01098 + -105.0 -30.0 -0.61780 + -90.0 -30.0 -0.18232 + -75.0 -30.0 0.14143 + -60.0 -30.0 0.40819 + -45.0 -30.0 0.50556 + -30.0 -30.0 0.34379 + -15.0 -30.0 0.31224 + 0.0 -30.0 0.97008 + 15.0 -30.0 1.70616 + 30.0 -30.0 1.99942 + 45.0 -30.0 1.79196 + 60.0 -30.0 1.26978 + 75.0 -30.0 0.65732 + 90.0 -30.0 0.04223 + 105.0 -30.0 0.22658 + 120.0 -30.0 0.08209 + 135.0 -30.0 0.05525 + 150.0 -30.0 0.22382 + 165.0 -30.0 0.33964 + 180.0 -30.0 0.12700 + -180.0 -15.0 -0.06517 + -165.0 -15.0 -0.13598 + -150.0 -15.0 -1.30614 + -135.0 -15.0 -1.09555 + -120.0 -15.0 -0.64991 + -105.0 -15.0 -0.06482 + -90.0 -15.0 0.49509 + -75.0 -15.0 0.92103 + -60.0 -15.0 1.94755 + -45.0 -15.0 0.95164 + -30.0 -15.0 0.87870 + -15.0 -15.0 1.42479 + 0.0 -15.0 2.06338 + 15.0 -15.0 2.50243 + 30.0 -15.0 2.59266 + 45.0 -15.0 2.02131 + 60.0 -15.0 1.26236 + 75.0 -15.0 0.65759 + 90.0 -15.0 0.60601 + 105.0 -15.0 0.40777 + 120.0 -15.0 0.08605 + 135.0 -15.0 -0.02333 + 150.0 -15.0 0.06947 + 165.0 -15.0 0.13044 + 180.0 -15.0 -0.06517 + -180.0 0.0 -1.44412 + -165.0 0.0 -1.37206 + -150.0 0.0 -0.97055 + -135.0 0.0 -0.54692 + -120.0 0.0 -0.04768 + -105.0 0.0 0.65462 + -90.0 0.0 1.09803 + -75.0 0.0 1.41180 + -60.0 0.0 1.23685 + -45.0 0.0 1.32368 + -30.0 0.0 1.83555 + -15.0 0.0 2.29146 + 0.0 0.0 2.61632 + 15.0 0.0 2.73204 + 30.0 0.0 2.49607 + 45.0 0.0 1.76205 + 60.0 0.0 1.23208 + 75.0 0.0 1.11843 + 90.0 0.0 1.50389 + 105.0 0.0 0.20088 + 120.0 0.0 -0.22667 + 135.0 0.0 -0.38306 + 150.0 0.0 -0.27813 + 165.0 0.0 -0.08165 + 180.0 0.0 -1.44412 + -180.0 15.0 -1.54337 + -165.0 15.0 -0.94875 + -150.0 15.0 -0.44630 + -135.0 15.0 -0.06444 + -120.0 15.0 0.39675 + -105.0 15.0 0.90513 + -90.0 15.0 1.24019 + -75.0 15.0 1.18954 + -60.0 15.0 1.36753 + -45.0 15.0 1.82290 + -30.0 15.0 2.22229 + -15.0 15.0 2.44694 + 0.0 15.0 2.44244 + 15.0 15.0 2.26164 + 30.0 15.0 1.85516 + 45.0 15.0 1.56722 + 60.0 15.0 1.43193 + 75.0 15.0 0.71918 + 90.0 15.0 0.14053 + 105.0 15.0 -0.36429 + 120.0 15.0 -0.76466 + 135.0 15.0 -0.87217 + 150.0 15.0 -0.57197 + 165.0 15.0 -1.61569 + 180.0 15.0 -1.54337 + -180.0 30.0 -1.09485 + -165.0 30.0 -0.56681 + -150.0 30.0 -0.13387 + -135.0 30.0 0.19412 + -120.0 30.0 0.57374 + -105.0 30.0 0.86366 + -90.0 30.0 0.80314 + -75.0 30.0 1.08125 + -60.0 30.0 1.39143 + -45.0 30.0 1.86048 + -30.0 30.0 2.01491 + -15.0 30.0 2.03904 + 0.0 30.0 1.77856 + 15.0 30.0 1.48754 + 30.0 30.0 1.53762 + 45.0 30.0 1.22766 + 60.0 30.0 0.55347 + 75.0 30.0 -0.06469 + 90.0 30.0 -0.47099 + 105.0 30.0 -0.82958 + 120.0 30.0 -1.01883 + 135.0 30.0 -0.75479 + 150.0 30.0 -1.39221 + 165.0 30.0 -1.55942 + 180.0 30.0 -1.09485 + -180.0 45.0 -0.55882 + -165.0 45.0 -0.22825 + -150.0 45.0 0.01795 + -135.0 45.0 0.21896 + -120.0 45.0 0.49238 + -105.0 45.0 0.39403 + -90.0 45.0 0.48870 + -75.0 45.0 0.90318 + -60.0 45.0 1.06730 + -45.0 45.0 1.40576 + -30.0 45.0 1.50400 + -15.0 45.0 1.39328 + 0.0 45.0 1.13519 + 15.0 45.0 1.11176 + 30.0 45.0 0.55506 + 45.0 45.0 0.04408 + 60.0 45.0 -0.25930 + 75.0 45.0 -0.42888 + 90.0 45.0 -0.51963 + 105.0 45.0 -0.55634 + 120.0 45.0 -0.25212 + 135.0 45.0 -0.62098 + 150.0 45.0 -1.22694 + 165.0 45.0 -1.05054 + 180.0 45.0 -0.55882 + -180.0 60.0 -0.18285 + -165.0 60.0 -0.08650 + -150.0 60.0 0.00476 + -135.0 60.0 0.11545 + -120.0 60.0 0.16266 + -105.0 60.0 0.01161 + -90.0 60.0 0.39632 + -75.0 60.0 0.75519 + -60.0 60.0 0.96557 + -45.0 60.0 0.97640 + -30.0 60.0 0.97745 + -15.0 60.0 0.97978 + 0.0 60.0 0.79555 + 15.0 60.0 -0.15675 + 30.0 60.0 -0.51647 + 45.0 60.0 -0.39418 + 60.0 60.0 -0.15303 + 75.0 60.0 -0.00800 + 90.0 60.0 0.09982 + 105.0 60.0 0.37002 + 120.0 60.0 0.12378 + 135.0 60.0 -0.63827 + 150.0 60.0 -0.59589 + 165.0 60.0 -0.38041 + 180.0 60.0 -0.18285 + -180.0 75.0 -0.06600 + -165.0 75.0 -0.07528 + -150.0 75.0 -0.04119 + -135.0 75.0 -0.07933 + -120.0 75.0 -0.19424 + -105.0 75.0 -0.27213 + -90.0 75.0 0.00000 + -75.0 75.0 0.40627 + -60.0 75.0 0.67141 + -45.0 75.0 0.48954 + -30.0 75.0 0.49392 + -15.0 75.0 0.53926 + 0.0 75.0 -0.43613 + 15.0 75.0 -0.91296 + 30.0 75.0 -0.57046 + 45.0 75.0 0.20602 + 60.0 75.0 0.66426 + 75.0 75.0 0.78486 + 90.0 75.0 0.83638 + 105.0 75.0 0.47569 + 120.0 75.0 -0.24156 + 135.0 75.0 -0.36935 + 150.0 75.0 -0.03276 + 165.0 75.0 -0.00079 + 180.0 75.0 -0.06600 + -180.0 90.0 -0.19813 + -165.0 90.0 -0.18275 + -150.0 90.0 -0.13564 + -135.0 90.0 -0.16443 + -120.0 90.0 -0.25121 + -105.0 90.0 -0.36588 + -90.0 90.0 -0.30532 + -75.0 90.0 -0.05335 + -60.0 90.0 -0.11065 + -45.0 90.0 -0.24703 + -30.0 90.0 -0.35383 + -15.0 90.0 -0.66704 + 0.0 90.0 -1.22785 + 15.0 90.0 -0.99837 + 30.0 90.0 0.07165 + 45.0 90.0 1.17090 + 60.0 90.0 1.52568 + 75.0 90.0 1.19212 + 90.0 90.0 0.65821 + 105.0 90.0 0.07691 + 120.0 90.0 -0.25244 + 135.0 90.0 -0.10611 + 150.0 90.0 0.09358 + 165.0 90.0 0.00731 + 180.0 90.0 -0.19813 + -180.0 105.0 -0.34850 + -165.0 105.0 -0.15035 + -150.0 105.0 -0.40367 + -135.0 105.0 -0.01197 + -120.0 105.0 -0.06100 + -105.0 105.0 -0.15190 + -90.0 105.0 -0.31715 + -75.0 105.0 -0.62391 + -60.0 105.0 -0.90231 + -45.0 105.0 -1.37607 + -30.0 105.0 -1.62179 + -15.0 105.0 -1.73579 + 0.0 105.0 -1.64875 + 15.0 105.0 -0.75542 + 30.0 105.0 0.71157 + 45.0 105.0 1.26356 + 60.0 105.0 0.75960 + 75.0 105.0 0.59400 + 90.0 105.0 0.30667 + 105.0 105.0 -0.06284 + 120.0 105.0 -0.20456 + 135.0 105.0 -0.08836 + 150.0 105.0 -0.16590 + 165.0 105.0 -0.35505 + 180.0 105.0 -0.34850 + -180.0 120.0 -0.34576 + -165.0 120.0 0.02576 + -150.0 120.0 0.27228 + -135.0 120.0 0.28454 + -120.0 120.0 0.18375 + -105.0 120.0 0.01398 + -90.0 120.0 -0.27455 + -75.0 120.0 -0.77580 + -60.0 120.0 -1.42554 + -45.0 120.0 -1.99064 + -30.0 120.0 -2.37393 + -15.0 120.0 -2.20009 + 0.0 120.0 -1.60683 + 15.0 120.0 -0.44372 + 30.0 120.0 1.09513 + 45.0 120.0 0.35522 + 60.0 120.0 -0.04151 + 75.0 120.0 0.17766 + 90.0 120.0 0.14305 + 105.0 120.0 -0.13472 + 120.0 120.0 -0.31725 + 135.0 120.0 -0.45800 + 150.0 120.0 -0.64821 + 165.0 120.0 -0.63355 + 180.0 120.0 -0.34576 + -180.0 135.0 -0.08457 + -165.0 135.0 0.36013 + -150.0 135.0 0.54446 + -135.0 135.0 0.48098 + -120.0 135.0 0.27776 + -105.0 135.0 0.02335 + -90.0 135.0 -0.28766 + -75.0 135.0 -0.80414 + -60.0 135.0 -1.51330 + -45.0 135.0 -2.20028 + -30.0 135.0 -2.36835 + -15.0 135.0 -2.12483 + 0.0 135.0 -1.37600 + 15.0 135.0 -0.25291 + 30.0 135.0 0.78641 + 45.0 135.0 -0.96321 + 60.0 135.0 -0.57499 + 75.0 135.0 -0.00398 + 90.0 135.0 0.08668 + 105.0 135.0 -0.17475 + 120.0 135.0 -0.55212 + 135.0 135.0 -0.94225 + 150.0 135.0 -1.01661 + 165.0 135.0 -0.69656 + 180.0 135.0 -0.08457 + -180.0 150.0 0.28510 + -165.0 150.0 0.66185 + -150.0 150.0 0.69665 + -135.0 150.0 0.48378 + -120.0 150.0 0.16399 + -105.0 150.0 -0.09637 + -90.0 150.0 -0.36878 + -75.0 150.0 -0.80945 + -60.0 150.0 -1.41793 + -45.0 150.0 -2.18914 + -30.0 150.0 -2.20786 + -15.0 150.0 -1.82363 + 0.0 150.0 -1.11629 + 15.0 150.0 -0.04735 + 30.0 150.0 -1.17126 + 45.0 150.0 -1.34899 + 60.0 150.0 -0.62467 + 75.0 150.0 0.05642 + 90.0 150.0 0.17332 + 105.0 150.0 -0.14673 + 120.0 150.0 -0.69800 + 135.0 150.0 -1.11306 + 150.0 150.0 -1.02621 + 165.0 150.0 -0.41495 + 180.0 150.0 0.28510 + -180.0 165.0 0.76902 + -165.0 165.0 0.89311 + -150.0 165.0 0.59358 + -135.0 165.0 0.25887 + -120.0 165.0 -0.03955 + -105.0 165.0 -0.24006 + -90.0 165.0 -0.46456 + -75.0 165.0 -0.83170 + -60.0 165.0 -1.40143 + -45.0 165.0 -1.95471 + -30.0 165.0 -2.00388 + -15.0 165.0 -1.56184 + 0.0 165.0 -0.83182 + 15.0 165.0 -0.45132 + 30.0 165.0 -1.23096 + 45.0 165.0 -1.22650 + 60.0 165.0 -0.44761 + 75.0 165.0 0.25891 + 90.0 165.0 0.39936 + 105.0 165.0 0.07650 + 120.0 165.0 -0.49787 + 135.0 165.0 -0.79017 + 150.0 165.0 -0.50914 + 165.0 165.0 0.18602 + 180.0 165.0 0.76902 + -180.0 180.0 0.98936 + -165.0 180.0 0.76408 + -150.0 180.0 0.21674 + -135.0 180.0 -0.18200 + -120.0 180.0 -0.37729 + -105.0 180.0 -0.47834 + -90.0 180.0 -0.59267 + -75.0 180.0 -0.93985 + -60.0 180.0 -1.55558 + -45.0 180.0 -2.01849 + -30.0 180.0 -1.94076 + -15.0 180.0 -1.46400 + 0.0 180.0 0.18253 + 15.0 180.0 -0.80364 + 30.0 180.0 -1.32974 + 45.0 180.0 -1.31658 + 60.0 180.0 -0.50140 + 75.0 180.0 0.20431 + 90.0 180.0 0.39356 + 105.0 180.0 0.20356 + 120.0 180.0 -0.16993 + 135.0 180.0 -0.22733 + 150.0 180.0 0.13703 + 165.0 180.0 0.66356 + 180.0 180.0 0.98936 + +tortors 63 63 62 63 63 25 25 + -60.0 -60.0 0.00000 + -55.0 -60.0 0.00000 + -50.0 -60.0 0.00000 + -45.0 -60.0 0.00000 + -40.0 -60.0 0.00000 + -35.0 -60.0 0.00000 + -30.0 -60.0 0.00000 + -25.0 -60.0 0.00000 + -20.0 -60.0 0.00000 + -15.0 -60.0 0.00000 + -10.0 -60.0 0.00000 + -5.0 -60.0 0.00000 + 0.0 -60.0 0.00000 + 5.0 -60.0 0.00000 + 10.0 -60.0 0.00000 + 15.0 -60.0 0.00000 + 20.0 -60.0 0.00000 + 25.0 -60.0 -3.34859 + 30.0 -60.0 -2.26068 + 35.0 -60.0 -1.53407 + 40.0 -60.0 -0.92165 + 45.0 -60.0 -0.49220 + 50.0 -60.0 -0.49945 + 55.0 -60.0 -1.22214 + 60.0 -60.0 -2.71591 + -60.0 -55.0 0.00000 + -55.0 -55.0 0.00000 + -50.0 -55.0 0.00000 + -45.0 -55.0 0.00000 + -40.0 -55.0 0.00000 + -35.0 -55.0 0.00000 + -30.0 -55.0 0.00000 + -25.0 -55.0 0.00000 + -20.0 -55.0 0.00000 + -15.0 -55.0 0.00000 + -10.0 -55.0 0.00000 + -5.0 -55.0 0.00000 + 0.0 -55.0 0.00000 + 5.0 -55.0 0.00000 + 10.0 -55.0 0.00000 + 15.0 -55.0 -4.30948 + 20.0 -55.0 -2.57230 + 25.0 -55.0 -1.54795 + 30.0 -55.0 -0.77830 + 35.0 -55.0 -0.10949 + 40.0 -55.0 0.39671 + 45.0 -55.0 0.53940 + 50.0 -55.0 -0.01316 + 55.0 -55.0 -1.35124 + 60.0 -55.0 -2.97925 + -60.0 -50.0 0.00000 + -55.0 -50.0 0.00000 + -50.0 -50.0 0.00000 + -45.0 -50.0 0.00000 + -40.0 -50.0 0.00000 + -35.0 -50.0 0.00000 + -30.0 -50.0 0.00000 + -25.0 -50.0 0.00000 + -20.0 -50.0 0.00000 + -15.0 -50.0 0.00000 + -10.0 -50.0 0.00000 + -5.0 -50.0 0.00000 + 0.0 -50.0 0.00000 + 5.0 -50.0 0.00000 + 10.0 -50.0 -3.79718 + 15.0 -50.0 -1.97217 + 20.0 -50.0 -0.90646 + 25.0 -50.0 -0.17368 + 30.0 -50.0 0.48245 + 35.0 -50.0 1.04559 + 40.0 -50.0 1.29297 + 45.0 -50.0 0.88381 + 50.0 -50.0 -0.27960 + 55.0 -50.0 -1.71413 + 60.0 -50.0 -3.29794 + -60.0 -45.0 0.00000 + -55.0 -45.0 0.00000 + -50.0 -45.0 0.00000 + -45.0 -45.0 0.00000 + -40.0 -45.0 0.00000 + -35.0 -45.0 0.00000 + -30.0 -45.0 0.00000 + -25.0 -45.0 0.00000 + -20.0 -45.0 0.00000 + -15.0 -45.0 0.00000 + -10.0 -45.0 0.00000 + -5.0 -45.0 0.00000 + 0.0 -45.0 0.00000 + 5.0 -45.0 -3.42407 + 10.0 -45.0 -1.52802 + 15.0 -45.0 -0.42681 + 20.0 -45.0 0.26477 + 25.0 -45.0 0.88153 + 30.0 -45.0 1.45874 + 35.0 -45.0 1.76987 + 40.0 -45.0 1.48943 + 45.0 -45.0 0.52323 + 50.0 -45.0 -0.70927 + 55.0 -45.0 -2.13253 + 60.0 -45.0 -3.72232 + -60.0 -40.0 0.00000 + -55.0 -40.0 0.00000 + -50.0 -40.0 0.00000 + -45.0 -40.0 0.00000 + -40.0 -40.0 0.00000 + -35.0 -40.0 0.00000 + -30.0 -40.0 0.00000 + -25.0 -40.0 0.00000 + -20.0 -40.0 0.00000 + -15.0 -40.0 0.00000 + -10.0 -40.0 0.00000 + -5.0 -40.0 0.00000 + 0.0 -40.0 -3.24603 + 5.0 -40.0 -1.26715 + 10.0 -40.0 -0.14889 + 15.0 -40.0 0.51208 + 20.0 -40.0 1.09333 + 25.0 -40.0 1.64762 + 30.0 -40.0 1.97750 + 35.0 -40.0 1.82364 + 40.0 -40.0 1.08565 + 45.0 -40.0 0.05579 + 50.0 -40.0 -1.20397 + 55.0 -40.0 -2.66579 + 60.0 -40.0 -4.29092 + -60.0 -35.0 0.00000 + -55.0 -35.0 0.00000 + -50.0 -35.0 0.00000 + -45.0 -35.0 0.00000 + -40.0 -35.0 0.00000 + -35.0 -35.0 0.00000 + -30.0 -35.0 0.00000 + -25.0 -35.0 0.00000 + -20.0 -35.0 0.00000 + -15.0 -35.0 0.00000 + -10.0 -35.0 0.00000 + -5.0 -35.0 -3.08944 + 0.0 -35.0 -1.18260 + 5.0 -35.0 -0.02491 + 10.0 -35.0 0.61137 + 15.0 -35.0 1.13349 + 20.0 -35.0 1.61794 + 25.0 -35.0 1.93538 + 30.0 -35.0 1.91657 + 35.0 -35.0 1.42337 + 40.0 -35.0 0.58960 + 45.0 -35.0 -0.50117 + 50.0 -35.0 -1.82047 + 55.0 -35.0 -3.32126 + 60.0 -35.0 -4.90932 + -60.0 -30.0 0.00000 + -55.0 -30.0 0.00000 + -50.0 -30.0 0.00000 + -45.0 -30.0 0.00000 + -40.0 -30.0 0.00000 + -35.0 -30.0 0.00000 + -30.0 -30.0 0.00000 + -25.0 -30.0 0.00000 + -20.0 -30.0 0.00000 + -15.0 -30.0 0.00000 + -10.0 -30.0 -2.95295 + -5.0 -30.0 -1.27250 + 0.0 -30.0 -0.10126 + 5.0 -30.0 0.57183 + 10.0 -30.0 1.01801 + 15.0 -30.0 1.40532 + 20.0 -30.0 1.69566 + 25.0 -30.0 1.81393 + 30.0 -30.0 1.55808 + 35.0 -30.0 0.90930 + 40.0 -30.0 -0.01572 + 45.0 -30.0 -1.18916 + 50.0 -30.0 -2.57344 + 55.0 -30.0 -4.04453 + 60.0 -30.0 -5.68632 + -60.0 -25.0 0.00000 + -55.0 -25.0 0.00000 + -50.0 -25.0 0.00000 + -45.0 -25.0 0.00000 + -40.0 -25.0 0.00000 + -35.0 -25.0 0.00000 + -30.0 -25.0 0.00000 + -25.0 -25.0 0.00000 + -20.0 -25.0 0.00000 + -15.0 -25.0 -3.24428 + -10.0 -25.0 -1.23106 + -5.0 -25.0 -0.09312 + 0.0 -25.0 0.56793 + 5.0 -25.0 0.93977 + 10.0 -25.0 1.20683 + 15.0 -25.0 1.40698 + 20.0 -25.0 1.56183 + 25.0 -25.0 1.51817 + 30.0 -25.0 1.03831 + 35.0 -25.0 0.27611 + 40.0 -25.0 -0.75741 + 45.0 -25.0 -2.04455 + 50.0 -25.0 -3.41908 + 55.0 -25.0 -4.97509 + 60.0 -25.0 -6.85322 + -60.0 -20.0 0.00000 + -55.0 -20.0 0.00000 + -50.0 -20.0 0.00000 + -45.0 -20.0 0.00000 + -40.0 -20.0 0.00000 + -35.0 -20.0 0.00000 + -30.0 -20.0 0.00000 + -25.0 -20.0 0.00000 + -20.0 -20.0 -3.39739 + -15.0 -20.0 -1.38908 + -10.0 -20.0 -0.21578 + -5.0 -20.0 0.42795 + 0.0 -20.0 0.77706 + 5.0 -20.0 0.98671 + 10.0 -20.0 1.12783 + 15.0 -20.0 1.18291 + 20.0 -20.0 0.97599 + 25.0 -20.0 1.00362 + 30.0 -20.0 0.39932 + 35.0 -20.0 -0.50020 + 40.0 -20.0 -1.77572 + 45.0 -20.0 -3.10096 + 50.0 -20.0 -4.53696 + 55.0 -20.0 -6.29879 + 60.0 -20.0 0.00000 + -60.0 -15.0 0.00000 + -55.0 -15.0 0.00000 + -50.0 -15.0 0.00000 + -45.0 -15.0 0.00000 + -40.0 -15.0 0.00000 + -35.0 -15.0 0.00000 + -30.0 -15.0 0.00000 + -25.0 -15.0 -3.72204 + -20.0 -15.0 -1.66846 + -15.0 -15.0 -0.52208 + -10.0 -15.0 0.14216 + -5.0 -15.0 0.49336 + 0.0 -15.0 0.66840 + 5.0 -15.0 0.78452 + 10.0 -15.0 0.86470 + 15.0 -15.0 0.69961 + 20.0 -15.0 0.23499 + 25.0 -15.0 -0.41158 + 30.0 -15.0 -0.52970 + 35.0 -15.0 -1.86320 + 40.0 -15.0 -3.12136 + 45.0 -15.0 -4.43654 + 50.0 -15.0 -5.97830 + 55.0 -15.0 0.00000 + 60.0 -15.0 0.00000 + -60.0 -10.0 0.00000 + -55.0 -10.0 0.00000 + -50.0 -10.0 0.00000 + -45.0 -10.0 0.00000 + -40.0 -10.0 0.00000 + -35.0 -10.0 0.00000 + -30.0 -10.0 -4.15599 + -25.0 -10.0 -2.19827 + -20.0 -10.0 -0.95521 + -15.0 -10.0 -0.29886 + -10.0 -10.0 0.04835 + -5.0 -10.0 0.19772 + 0.0 -10.0 0.32406 + 5.0 -10.0 0.47801 + 10.0 -10.0 0.40841 + 15.0 -10.0 -0.01555 + 20.0 -10.0 -0.63176 + 25.0 -10.0 -1.41232 + 30.0 -10.0 -2.36589 + 35.0 -10.0 -3.31048 + 40.0 -10.0 -4.51036 + 45.0 -10.0 -5.93757 + 50.0 -10.0 0.00000 + 55.0 -10.0 0.00000 + 60.0 -10.0 0.00000 + -60.0 -5.0 0.00000 + -55.0 -5.0 0.00000 + -50.0 -5.0 0.00000 + -45.0 -5.0 0.00000 + -40.0 -5.0 0.00000 + -35.0 -5.0 -4.68511 + -30.0 -5.0 -2.85637 + -25.0 -5.0 -1.57291 + -20.0 -5.0 -0.89665 + -15.0 -5.0 -0.56005 + -10.0 -5.0 -0.41701 + -5.0 -5.0 -0.26301 + 0.0 -5.0 -0.00331 + 5.0 -5.0 0.07696 + 10.0 -5.0 -0.26667 + 15.0 -5.0 -0.83182 + 20.0 -5.0 -1.56030 + 25.0 -5.0 -2.45388 + 30.0 -5.0 -3.34910 + 35.0 -5.0 -4.42998 + 40.0 -5.0 -2.41122 + 45.0 -5.0 -7.92471 + 50.0 -5.0 0.00000 + 55.0 -5.0 0.00000 + 60.0 -5.0 0.00000 + -60.0 0.0 0.00000 + -55.0 0.0 0.00000 + -50.0 0.0 0.00000 + -45.0 0.0 0.00000 + -40.0 0.0 -5.26098 + -35.0 0.0 -3.48850 + -30.0 0.0 -2.32185 + -25.0 0.0 -1.62944 + -20.0 0.0 -1.27900 + -15.0 0.0 -1.12183 + -10.0 0.0 -0.93084 + -5.0 0.0 -0.56989 + 0.0 0.0 -0.31089 + 5.0 0.0 -0.53327 + 10.0 0.0 -1.03036 + 15.0 0.0 -1.69852 + 20.0 0.0 -2.52324 + 25.0 0.0 -3.36820 + 30.0 0.0 -4.40522 + 35.0 0.0 -2.35864 + 40.0 0.0 -5.07138 + 45.0 0.0 0.00000 + 50.0 0.0 0.00000 + 55.0 0.0 0.00000 + 60.0 0.0 0.00000 + -60.0 5.0 0.00000 + -55.0 5.0 0.00000 + -50.0 5.0 0.00000 + -45.0 5.0 0.00000 + -40.0 5.0 -4.14344 + -35.0 5.0 -3.09499 + -30.0 5.0 -2.40013 + -25.0 5.0 -2.03320 + -20.0 5.0 -1.85135 + -15.0 5.0 -1.62104 + -10.0 5.0 -1.18282 + -5.0 5.0 -0.75884 + 0.0 5.0 -0.82361 + 5.0 5.0 -1.23036 + 10.0 5.0 -1.82587 + 15.0 5.0 -2.57116 + 20.0 5.0 -3.35863 + 25.0 5.0 -4.34873 + 30.0 5.0 -2.27690 + 35.0 5.0 -4.94540 + 40.0 5.0 0.00000 + 45.0 5.0 0.00000 + 50.0 5.0 0.00000 + 55.0 5.0 0.00000 + 60.0 5.0 0.00000 + -60.0 10.0 0.00000 + -55.0 10.0 0.00000 + -50.0 10.0 0.00000 + -45.0 10.0 -4.88968 + -40.0 10.0 -3.77891 + -35.0 10.0 -3.10077 + -30.0 10.0 -2.72681 + -25.0 10.0 -2.53361 + -20.0 10.0 -2.28064 + -15.0 10.0 -1.79659 + -10.0 10.0 -1.25103 + -5.0 10.0 -1.14661 + 0.0 10.0 -1.43321 + 5.0 10.0 -1.93533 + 10.0 10.0 -2.58448 + 15.0 10.0 -3.30471 + 20.0 10.0 -0.28036 + 25.0 10.0 -5.48737 + 30.0 10.0 -7.45892 + 35.0 10.0 0.00000 + 40.0 10.0 0.00000 + 45.0 10.0 0.00000 + 50.0 10.0 0.00000 + 55.0 10.0 0.00000 + 60.0 10.0 0.00000 + -60.0 15.0 0.00000 + -55.0 15.0 0.00000 + -50.0 15.0 -5.57433 + -45.0 15.0 -4.41509 + -40.0 15.0 -3.70103 + -35.0 15.0 -3.30510 + -30.0 15.0 -3.09660 + -25.0 15.0 -2.84923 + -20.0 15.0 -2.36398 + -15.0 15.0 -1.75415 + -10.0 15.0 -1.50903 + -5.0 15.0 -1.65094 + 0.0 15.0 -2.02015 + 5.0 15.0 -2.54540 + 10.0 15.0 -3.18641 + 15.0 15.0 -0.12952 + 20.0 15.0 -1.92781 + 25.0 15.0 -4.43234 + 30.0 15.0 0.00000 + 35.0 15.0 0.00000 + 40.0 15.0 0.00000 + 45.0 15.0 0.00000 + 50.0 15.0 0.00000 + 55.0 15.0 0.00000 + 60.0 15.0 0.00000 + -60.0 20.0 0.00000 + -55.0 20.0 -6.25248 + -50.0 20.0 -5.04739 + -45.0 20.0 -4.27015 + -40.0 20.0 -3.79542 + -35.0 20.0 -3.52883 + -30.0 20.0 -3.26178 + -25.0 20.0 -2.81849 + -20.0 20.0 -2.22194 + -15.0 20.0 -1.89680 + -10.0 20.0 -1.90620 + -5.0 20.0 -2.10099 + 0.0 20.0 -2.45540 + 5.0 20.0 -2.98466 + 10.0 20.0 0.11443 + 15.0 20.0 -1.60577 + 20.0 20.0 -3.99976 + 25.0 20.0 0.00000 + 30.0 20.0 0.00000 + 35.0 20.0 0.00000 + 40.0 20.0 0.00000 + 45.0 20.0 0.00000 + 50.0 20.0 0.00000 + 55.0 20.0 0.00000 + 60.0 20.0 0.00000 + -60.0 25.0 0.00000 + -55.0 25.0 -5.82910 + -50.0 25.0 -4.85579 + -45.0 25.0 -4.24949 + -40.0 25.0 -3.86515 + -35.0 25.0 -3.52521 + -30.0 25.0 -3.09604 + -25.0 25.0 -2.54420 + -20.0 25.0 -2.22885 + -15.0 25.0 -2.17858 + -10.0 25.0 -2.22411 + -5.0 25.0 -2.36938 + 0.0 25.0 -2.73017 + 5.0 25.0 0.45724 + 10.0 25.0 -1.14103 + 15.0 25.0 -3.40622 + 20.0 25.0 0.00000 + 25.0 25.0 0.00000 + 30.0 25.0 0.00000 + 35.0 25.0 0.00000 + 40.0 25.0 0.00000 + 45.0 25.0 0.00000 + 50.0 25.0 0.00000 + 55.0 25.0 0.00000 + 60.0 25.0 0.00000 + -60.0 30.0 -6.74017 + -55.0 30.0 -5.56466 + -50.0 30.0 -4.73062 + -45.0 30.0 -4.15541 + -40.0 30.0 -3.67057 + -35.0 30.0 -3.16852 + -30.0 30.0 -2.58625 + -25.0 30.0 -2.28139 + -20.0 30.0 -2.27420 + -15.0 30.0 -2.31495 + -10.0 30.0 -2.34007 + -5.0 30.0 -2.52274 + 0.0 30.0 0.83818 + 5.0 30.0 -0.55413 + 10.0 30.0 0.00000 + 15.0 30.0 0.00000 + 20.0 30.0 0.00000 + 25.0 30.0 0.00000 + 30.0 30.0 0.00000 + 35.0 30.0 0.00000 + 40.0 30.0 0.00000 + 45.0 30.0 0.00000 + 50.0 30.0 0.00000 + 55.0 30.0 0.00000 + 60.0 30.0 0.00000 + -60.0 35.0 -6.44220 + -55.0 35.0 -5.34031 + -50.0 35.0 -4.49506 + -45.0 35.0 -3.78373 + -40.0 35.0 -3.08459 + -35.0 35.0 -2.38223 + -30.0 35.0 -1.99841 + -25.0 35.0 -2.01850 + -20.0 35.0 -1.60248 + -15.0 35.0 -1.29357 + -10.0 35.0 -1.28090 + -5.0 35.0 -2.69945 + 0.0 35.0 0.59195 + 5.0 35.0 0.00000 + 10.0 35.0 0.00000 + 15.0 35.0 0.00000 + 20.0 35.0 0.00000 + 25.0 35.0 0.00000 + 30.0 35.0 0.00000 + 35.0 35.0 0.00000 + 40.0 35.0 0.00000 + 45.0 35.0 0.00000 + 50.0 35.0 0.00000 + 55.0 35.0 0.00000 + 60.0 35.0 0.00000 + -60.0 40.0 -6.17635 + -55.0 40.0 -5.01129 + -50.0 40.0 -3.93950 + -45.0 40.0 -2.93043 + -40.0 40.0 -1.97787 + -35.0 40.0 -1.47061 + -30.0 40.0 -1.74907 + -25.0 40.0 -1.50302 + -20.0 40.0 -1.12724 + -15.0 40.0 -1.06712 + -10.0 40.0 -1.71500 + -5.0 40.0 -0.31646 + 0.0 40.0 0.00000 + 5.0 40.0 0.00000 + 10.0 40.0 0.00000 + 15.0 40.0 0.00000 + 20.0 40.0 0.00000 + 25.0 40.0 0.00000 + 30.0 40.0 0.00000 + 35.0 40.0 0.00000 + 40.0 40.0 0.00000 + 45.0 40.0 0.00000 + 50.0 40.0 0.00000 + 55.0 40.0 0.00000 + 60.0 40.0 0.00000 + -60.0 45.0 -5.84154 + -55.0 45.0 -4.40900 + -50.0 45.0 -2.96416 + -45.0 45.0 -1.61891 + -40.0 45.0 -1.75863 + -35.0 45.0 -1.78070 + -30.0 45.0 -1.52630 + -25.0 45.0 -1.03180 + -20.0 45.0 -0.85066 + -15.0 45.0 -1.25823 + -10.0 45.0 -0.24415 + -5.0 45.0 0.00000 + 0.0 45.0 0.00000 + 5.0 45.0 0.00000 + 10.0 45.0 0.00000 + 15.0 45.0 0.00000 + 20.0 45.0 0.00000 + 25.0 45.0 0.00000 + 30.0 45.0 0.00000 + 35.0 45.0 0.00000 + 40.0 45.0 0.00000 + 45.0 45.0 0.00000 + 50.0 45.0 0.00000 + 55.0 45.0 0.00000 + 60.0 45.0 0.00000 + -60.0 50.0 -5.34856 + -55.0 50.0 -3.63795 + -50.0 50.0 -3.30699 + -45.0 50.0 -2.40390 + -40.0 50.0 -2.19314 + -35.0 50.0 -1.78791 + -30.0 50.0 -1.12814 + -25.0 50.0 -0.71920 + -20.0 50.0 -0.87226 + -15.0 50.0 -0.86327 + -10.0 50.0 0.00000 + -5.0 50.0 0.00000 + 0.0 50.0 0.00000 + 5.0 50.0 0.00000 + 10.0 50.0 0.00000 + 15.0 50.0 0.00000 + 20.0 50.0 0.00000 + 25.0 50.0 0.00000 + 30.0 50.0 0.00000 + 35.0 50.0 0.00000 + 40.0 50.0 0.00000 + 45.0 50.0 0.00000 + 50.0 50.0 0.00000 + 55.0 50.0 0.00000 + 60.0 50.0 0.00000 + -60.0 55.0 0.00000 + -55.0 55.0 0.00000 + -50.0 55.0 -3.25149 + -45.0 55.0 -2.90526 + -40.0 55.0 -2.30892 + -35.0 55.0 -1.49327 + -30.0 55.0 -0.76993 + -25.0 55.0 0.00000 + -20.0 55.0 0.00000 + -15.0 55.0 0.00000 + -10.0 55.0 0.00000 + -5.0 55.0 0.00000 + 0.0 55.0 0.00000 + 5.0 55.0 0.00000 + 10.0 55.0 0.00000 + 15.0 55.0 0.00000 + 20.0 55.0 0.00000 + 25.0 55.0 0.00000 + 30.0 55.0 0.00000 + 35.0 55.0 0.00000 + 40.0 55.0 0.00000 + 45.0 55.0 0.00000 + 50.0 55.0 0.00000 + 55.0 55.0 0.00000 + 60.0 55.0 0.00000 + -60.0 60.0 0.00000 + -55.0 60.0 0.00000 + -50.0 60.0 0.00000 + -45.0 60.0 0.00000 + -40.0 60.0 0.00000 + -35.0 60.0 0.00000 + -30.0 60.0 0.00000 + -25.0 60.0 0.00000 + -20.0 60.0 0.00000 + -15.0 60.0 0.00000 + -10.0 60.0 0.00000 + -5.0 60.0 0.00000 + 0.0 60.0 0.00000 + 5.0 60.0 0.00000 + 10.0 60.0 0.00000 + 15.0 60.0 0.00000 + 20.0 60.0 0.00000 + 25.0 60.0 0.00000 + 30.0 60.0 0.00000 + 35.0 60.0 0.00000 + 40.0 60.0 0.00000 + 45.0 60.0 0.00000 + 50.0 60.0 0.00000 + 55.0 60.0 0.00000 + 60.0 60.0 0.00000 + +tortors 69 69 62 69 69 29 29 + -70.0 -70.0 0.00000 + -65.0 -70.0 0.00000 + -60.0 -70.0 0.00000 + -55.0 -70.0 0.00000 + -50.0 -70.0 0.00000 + -45.0 -70.0 0.00000 + -40.0 -70.0 0.00000 + -35.0 -70.0 0.00000 + -30.0 -70.0 0.00000 + -25.0 -70.0 0.00000 + -20.0 -70.0 0.00000 + -15.0 -70.0 0.00000 + -10.0 -70.0 0.00000 + -5.0 -70.0 0.00000 + 0.0 -70.0 0.00000 + 5.0 -70.0 0.00000 + 10.0 -70.0 0.00000 + 15.0 -70.0 0.00000 + 20.0 -70.0 0.00000 + 25.0 -70.0 0.00000 + 30.0 -70.0 0.00000 + 35.0 -70.0 -7.35536 + 40.0 -70.0 -6.39157 + 45.0 -70.0 -5.51336 + 50.0 -70.0 -4.70213 + 55.0 -70.0 -4.12364 + 60.0 -70.0 -3.90599 + 65.0 -70.0 -4.05868 + 70.0 -70.0 0.00000 + -70.0 -65.0 0.00000 + -65.0 -65.0 0.00000 + -60.0 -65.0 0.00000 + -55.0 -65.0 0.00000 + -50.0 -65.0 0.00000 + -45.0 -65.0 0.00000 + -40.0 -65.0 0.00000 + -35.0 -65.0 0.00000 + -30.0 -65.0 0.00000 + -25.0 -65.0 0.00000 + -20.0 -65.0 0.00000 + -15.0 -65.0 0.00000 + -10.0 -65.0 0.00000 + -5.0 -65.0 0.00000 + 0.0 -65.0 0.00000 + 5.0 -65.0 0.00000 + 10.0 -65.0 0.00000 + 15.0 -65.0 0.00000 + 20.0 -65.0 0.00000 + 25.0 -65.0 0.00000 + 30.0 -65.0 -6.41192 + 35.0 -65.0 -5.44802 + 40.0 -65.0 -4.61720 + 45.0 -65.0 -3.78560 + 50.0 -65.0 -3.09814 + 55.0 -65.0 -2.69971 + 60.0 -65.0 -2.66551 + 65.0 -65.0 -3.02608 + 70.0 -65.0 -3.73243 + -70.0 -60.0 0.00000 + -65.0 -60.0 0.00000 + -60.0 -60.0 0.00000 + -55.0 -60.0 0.00000 + -50.0 -60.0 0.00000 + -45.0 -60.0 0.00000 + -40.0 -60.0 0.00000 + -35.0 -60.0 0.00000 + -30.0 -60.0 0.00000 + -25.0 -60.0 0.00000 + -20.0 -60.0 0.00000 + -15.0 -60.0 0.00000 + -10.0 -60.0 0.00000 + -5.0 -60.0 0.00000 + 0.0 -60.0 0.00000 + 5.0 -60.0 0.00000 + 10.0 -60.0 0.00000 + 15.0 -60.0 0.00000 + 20.0 -60.0 -6.80224 + 25.0 -60.0 -5.57358 + 30.0 -60.0 -4.63259 + 35.0 -60.0 -3.82350 + 40.0 -60.0 -2.98053 + 45.0 -60.0 -2.22020 + 50.0 -60.0 -1.68302 + 55.0 -60.0 -1.46662 + 60.0 -60.0 -1.61187 + 65.0 -60.0 -2.16861 + 70.0 -60.0 -3.12062 + -70.0 -55.0 0.00000 + -65.0 -55.0 0.00000 + -60.0 -55.0 0.00000 + -55.0 -55.0 0.00000 + -50.0 -55.0 0.00000 + -45.0 -55.0 0.00000 + -40.0 -55.0 0.00000 + -35.0 -55.0 0.00000 + -30.0 -55.0 0.00000 + -25.0 -55.0 0.00000 + -20.0 -55.0 0.00000 + -15.0 -55.0 0.00000 + -10.0 -55.0 0.00000 + -5.0 -55.0 0.00000 + 0.0 -55.0 0.00000 + 5.0 -55.0 0.00000 + 10.0 -55.0 0.00000 + 15.0 -55.0 -6.18421 + 20.0 -55.0 -4.85929 + 25.0 -55.0 -3.94181 + 30.0 -55.0 -3.13278 + 35.0 -55.0 -2.28412 + 40.0 -55.0 -1.47623 + 45.0 -55.0 -0.84043 + 50.0 -55.0 -0.47338 + 55.0 -55.0 -0.45704 + 60.0 -55.0 -0.83761 + 65.0 -55.0 -1.62839 + 70.0 -55.0 -2.78769 + -70.0 -50.0 0.00000 + -65.0 -50.0 0.00000 + -60.0 -50.0 0.00000 + -55.0 -50.0 0.00000 + -50.0 -50.0 0.00000 + -45.0 -50.0 0.00000 + -40.0 -50.0 0.00000 + -35.0 -50.0 0.00000 + -30.0 -50.0 0.00000 + -25.0 -50.0 0.00000 + -20.0 -50.0 0.00000 + -15.0 -50.0 0.00000 + -10.0 -50.0 0.00000 + -5.0 -50.0 0.00000 + 0.0 -50.0 0.00000 + 5.0 -50.0 0.00000 + 10.0 -50.0 -5.77464 + 15.0 -50.0 -4.29706 + 20.0 -50.0 -3.31425 + 25.0 -50.0 -2.51387 + 30.0 -50.0 -1.69323 + 35.0 -50.0 -0.87239 + 40.0 -50.0 -0.17362 + 45.0 -50.0 0.30015 + 50.0 -50.0 0.46356 + 55.0 -50.0 0.22953 + 60.0 -50.0 -0.19891 + 65.0 -50.0 -1.23088 + 70.0 -50.0 -4.22905 + -70.0 -45.0 0.00000 + -65.0 -45.0 0.00000 + -60.0 -45.0 0.00000 + -55.0 -45.0 0.00000 + -50.0 -45.0 0.00000 + -45.0 -45.0 0.00000 + -40.0 -45.0 0.00000 + -35.0 -45.0 0.00000 + -30.0 -45.0 0.00000 + -25.0 -45.0 0.00000 + -20.0 -45.0 0.00000 + -15.0 -45.0 0.00000 + -10.0 -45.0 0.00000 + -5.0 -45.0 0.00000 + 0.0 -45.0 0.00000 + 5.0 -45.0 -5.49016 + 10.0 -45.0 -3.83953 + 15.0 -45.0 -2.81432 + 20.0 -45.0 -1.40115 + 25.0 -45.0 -1.24748 + 30.0 -45.0 -0.43812 + 35.0 -45.0 0.29489 + 40.0 -45.0 0.84200 + 45.0 -45.0 1.11542 + 50.0 -45.0 1.02545 + 55.0 -45.0 0.75833 + 60.0 -45.0 -1.73840 + 65.0 -45.0 -3.06209 + 70.0 -45.0 -4.28611 + -70.0 -40.0 0.00000 + -65.0 -40.0 0.00000 + -60.0 -40.0 0.00000 + -55.0 -40.0 0.00000 + -50.0 -40.0 0.00000 + -45.0 -40.0 0.00000 + -40.0 -40.0 0.00000 + -35.0 -40.0 0.00000 + -30.0 -40.0 0.00000 + -25.0 -40.0 0.00000 + -20.0 -40.0 0.00000 + -15.0 -40.0 0.00000 + -10.0 -40.0 0.00000 + -5.0 -40.0 0.00000 + 0.0 -40.0 -4.70793 + 5.0 -40.0 -2.99333 + 10.0 -40.0 -1.96288 + 15.0 -40.0 -1.17488 + 20.0 -40.0 -0.43859 + 25.0 -40.0 0.33188 + 30.0 -40.0 1.07703 + 35.0 -40.0 1.68420 + 40.0 -40.0 1.81828 + 45.0 -40.0 1.75159 + 50.0 -40.0 1.39542 + 55.0 -40.0 -0.97837 + 60.0 -40.0 -2.16939 + 65.0 -40.0 -3.25442 + 70.0 -40.0 -4.35030 + -70.0 -35.0 0.00000 + -65.0 -35.0 0.00000 + -60.0 -35.0 0.00000 + -55.0 -35.0 0.00000 + -50.0 -35.0 0.00000 + -45.0 -35.0 0.00000 + -40.0 -35.0 0.00000 + -35.0 -35.0 0.00000 + -30.0 -35.0 0.00000 + -25.0 -35.0 0.00000 + -20.0 -35.0 0.00000 + -15.0 -35.0 0.00000 + -10.0 -35.0 0.00000 + -5.0 -35.0 -4.56083 + 0.0 -35.0 -2.86367 + 5.0 -35.0 -1.81006 + 10.0 -35.0 -1.06444 + 15.0 -35.0 -0.42347 + 20.0 -35.0 0.23897 + 25.0 -35.0 0.91783 + 30.0 -35.0 1.52890 + 35.0 -35.0 1.98149 + 40.0 -35.0 2.17414 + 45.0 -35.0 1.67904 + 50.0 -35.0 -0.17420 + 55.0 -35.0 -1.54885 + 60.0 -35.0 -2.53790 + 65.0 -35.0 -3.49962 + 70.0 -35.0 0.00000 + -70.0 -30.0 0.00000 + -65.0 -30.0 0.00000 + -60.0 -30.0 0.00000 + -55.0 -30.0 0.00000 + -50.0 -30.0 0.00000 + -45.0 -30.0 0.00000 + -40.0 -30.0 0.00000 + -35.0 -30.0 0.00000 + -30.0 -30.0 0.00000 + -25.0 -30.0 0.00000 + -20.0 -30.0 0.00000 + -15.0 -30.0 0.00000 + -10.0 -30.0 -4.54051 + -5.0 -30.0 -2.84226 + 0.0 -30.0 -1.71079 + 5.0 -30.0 -0.97176 + 10.0 -30.0 -0.40865 + 15.0 -30.0 0.12405 + 20.0 -30.0 0.68076 + 25.0 -30.0 1.21063 + 30.0 -30.0 1.64283 + 35.0 -30.0 1.89526 + 40.0 -30.0 1.87274 + 45.0 -30.0 -0.35114 + 50.0 -30.0 -0.98740 + 55.0 -30.0 -1.79881 + 60.0 -30.0 -2.96853 + 65.0 -30.0 -3.81603 + 70.0 -30.0 0.00000 + -70.0 -25.0 0.00000 + -65.0 -25.0 0.00000 + -60.0 -25.0 0.00000 + -55.0 -25.0 0.00000 + -50.0 -25.0 0.00000 + -45.0 -25.0 0.00000 + -40.0 -25.0 0.00000 + -35.0 -25.0 0.00000 + -30.0 -25.0 0.00000 + -25.0 -25.0 0.00000 + -20.0 -25.0 0.00000 + -15.0 -25.0 -4.49063 + -10.0 -25.0 -2.78401 + -5.0 -25.0 -1.57899 + 0.0 -25.0 -0.81897 + 5.0 -25.0 -0.30565 + 10.0 -25.0 0.10575 + 15.0 -25.0 0.50455 + 20.0 -25.0 0.88631 + 25.0 -25.0 1.21754 + 30.0 -25.0 1.45176 + 35.0 -25.0 1.50253 + 40.0 -25.0 -0.62514 + 45.0 -25.0 -1.11071 + 50.0 -25.0 -1.77846 + 55.0 -25.0 -2.48613 + 60.0 -25.0 -3.49970 + 65.0 -25.0 0.00000 + 70.0 -25.0 0.00000 + -70.0 -20.0 0.00000 + -65.0 -20.0 0.00000 + -60.0 -20.0 0.00000 + -55.0 -20.0 0.00000 + -50.0 -20.0 0.00000 + -45.0 -20.0 0.00000 + -40.0 -20.0 0.00000 + -35.0 -20.0 0.00000 + -30.0 -20.0 0.00000 + -25.0 -20.0 0.00000 + -20.0 -20.0 -4.25085 + -15.0 -20.0 -2.61358 + -10.0 -20.0 -1.38585 + -5.0 -20.0 -0.59170 + 0.0 -20.0 -0.09493 + 5.0 -20.0 0.23340 + 10.0 -20.0 0.49126 + 15.0 -20.0 0.69780 + 20.0 -20.0 0.86390 + 25.0 -20.0 0.99744 + 30.0 -20.0 1.03918 + 35.0 -20.0 -1.05546 + 40.0 -20.0 -1.43982 + 45.0 -20.0 -1.99481 + 50.0 -20.0 -2.62015 + 55.0 -20.0 -2.25942 + 60.0 -20.0 0.00000 + 65.0 -20.0 0.00000 + 70.0 -20.0 0.00000 + -70.0 -15.0 0.00000 + -65.0 -15.0 0.00000 + -60.0 -15.0 0.00000 + -55.0 -15.0 0.00000 + -50.0 -15.0 0.00000 + -45.0 -15.0 0.00000 + -40.0 -15.0 0.00000 + -35.0 -15.0 0.00000 + -30.0 -15.0 0.00000 + -25.0 -15.0 -4.12180 + -20.0 -15.0 -2.43845 + -15.0 -15.0 -1.21799 + -10.0 -15.0 -0.39346 + -5.0 -15.0 0.10897 + 0.0 -15.0 0.40740 + 5.0 -15.0 0.59202 + 10.0 -15.0 0.67637 + 15.0 -15.0 0.68559 + 20.0 -15.0 0.67674 + 25.0 -15.0 0.63497 + 30.0 -15.0 -1.49836 + 35.0 -15.0 -1.85499 + 40.0 -15.0 -2.35008 + 45.0 -15.0 -2.92299 + 50.0 -15.0 -2.45149 + 55.0 -15.0 -3.50426 + 60.0 -15.0 0.00000 + 65.0 -15.0 0.00000 + 70.0 -15.0 0.00000 + -70.0 -10.0 0.00000 + -65.0 -10.0 0.00000 + -60.0 -10.0 0.00000 + -55.0 -10.0 0.00000 + -50.0 -10.0 0.00000 + -45.0 -10.0 0.00000 + -40.0 -10.0 0.00000 + -35.0 -10.0 0.00000 + -30.0 -10.0 -4.10405 + -25.0 -10.0 -2.40173 + -20.0 -10.0 -1.18264 + -15.0 -10.0 -0.35151 + -10.0 -10.0 0.15297 + -5.0 -10.0 0.45260 + 0.0 -10.0 0.64310 + 5.0 -10.0 0.70439 + 10.0 -10.0 0.63396 + 15.0 -10.0 0.52079 + 20.0 -10.0 0.38551 + 25.0 -10.0 -1.81905 + 30.0 -10.0 -2.22175 + 35.0 -10.0 -2.72757 + 40.0 -10.0 -1.80688 + 45.0 -10.0 -2.74398 + 50.0 -10.0 -3.85703 + 55.0 -10.0 0.00000 + 60.0 -10.0 0.00000 + 65.0 -10.0 0.00000 + 70.0 -10.0 0.00000 + -70.0 -5.0 0.00000 + -65.0 -5.0 0.00000 + -60.0 -5.0 0.00000 + -55.0 -5.0 0.00000 + -50.0 -5.0 0.00000 + -45.0 -5.0 0.00000 + -40.0 -5.0 0.00000 + -35.0 -5.0 -4.15106 + -30.0 -5.0 -2.52158 + -25.0 -5.0 -1.35237 + -20.0 -5.0 -0.52607 + -15.0 -5.0 -0.02414 + -10.0 -5.0 0.27577 + -5.0 -5.0 0.50208 + 0.0 -5.0 0.63792 + 5.0 -5.0 0.59774 + 10.0 -5.0 0.45217 + 15.0 -5.0 0.26409 + 20.0 -5.0 -1.97633 + 25.0 -5.0 -2.44744 + 30.0 -5.0 -3.01542 + 35.0 -5.0 -2.09823 + 40.0 -5.0 -3.09081 + 45.0 -5.0 -4.26767 + 50.0 -5.0 0.00000 + 55.0 -5.0 0.00000 + 60.0 -5.0 0.00000 + 65.0 -5.0 0.00000 + 70.0 -5.0 0.00000 + -70.0 0.0 0.00000 + -65.0 0.0 0.00000 + -60.0 0.0 0.00000 + -55.0 0.0 0.00000 + -50.0 0.0 0.00000 + -45.0 0.0 0.00000 + -40.0 0.0 -4.34406 + -35.0 0.0 -2.83022 + -30.0 0.0 -1.72949 + -25.0 0.0 -0.91498 + -20.0 0.0 -0.41633 + -15.0 0.0 -0.11711 + -10.0 0.0 0.13849 + -5.0 0.0 0.37961 + 0.0 0.0 0.47411 + 5.0 0.0 0.39130 + 10.0 0.0 0.20636 + 15.0 0.0 -2.01823 + 20.0 0.0 -2.53534 + 25.0 0.0 -3.16310 + 30.0 0.0 -2.28451 + 35.0 0.0 -3.35959 + 40.0 0.0 -4.63134 + 45.0 0.0 0.00000 + 50.0 0.0 0.00000 + 55.0 0.0 0.00000 + 60.0 0.0 0.00000 + 65.0 0.0 0.00000 + 70.0 0.0 0.00000 + -70.0 5.0 0.00000 + -65.0 5.0 0.00000 + -60.0 5.0 0.00000 + -55.0 5.0 0.00000 + -50.0 5.0 0.00000 + -45.0 5.0 0.00000 + -40.0 5.0 -3.33992 + -35.0 5.0 -2.26424 + -30.0 5.0 -1.48556 + -25.0 5.0 -0.98391 + -20.0 5.0 -0.67540 + -15.0 5.0 -0.39674 + -10.0 5.0 -0.07324 + -5.0 5.0 0.18371 + 0.0 5.0 0.25837 + 5.0 5.0 0.15378 + 10.0 5.0 -1.99620 + 15.0 5.0 -2.52901 + 20.0 5.0 -3.19310 + 25.0 5.0 -3.96923 + 30.0 5.0 -3.51255 + 35.0 5.0 -4.87195 + 40.0 5.0 -6.45350 + 45.0 5.0 0.00000 + 50.0 5.0 0.00000 + 55.0 5.0 0.00000 + 60.0 5.0 0.00000 + 65.0 5.0 0.00000 + 70.0 5.0 0.00000 + -70.0 10.0 0.00000 + -65.0 10.0 0.00000 + -60.0 10.0 0.00000 + -55.0 10.0 0.00000 + -50.0 10.0 0.00000 + -45.0 10.0 -0.09699 + -40.0 10.0 1.09800 + -35.0 10.0 -2.18665 + -30.0 10.0 -1.67750 + -25.0 10.0 -1.34867 + -20.0 10.0 -1.04832 + -15.0 10.0 -0.67323 + -10.0 10.0 -0.28930 + -5.0 10.0 -0.02654 + 0.0 10.0 0.03478 + 5.0 10.0 -1.96054 + 10.0 10.0 -2.46921 + 15.0 10.0 -0.60235 + 20.0 10.0 -1.45440 + 25.0 10.0 -3.53855 + 30.0 10.0 -4.91435 + 35.0 10.0 -6.63879 + 40.0 10.0 0.00000 + 45.0 10.0 0.00000 + 50.0 10.0 0.00000 + 55.0 10.0 0.00000 + 60.0 10.0 0.00000 + 65.0 10.0 0.00000 + 70.0 10.0 0.00000 + -70.0 15.0 0.00000 + -65.0 15.0 0.00000 + -60.0 15.0 0.00000 + -55.0 15.0 0.00000 + -50.0 15.0 0.00000 + -45.0 15.0 1.26682 + -40.0 15.0 2.21135 + -35.0 15.0 3.04857 + -30.0 15.0 3.67556 + -25.0 15.0 -1.76563 + -20.0 15.0 -1.36352 + -15.0 15.0 -0.90615 + -10.0 15.0 -0.49607 + -5.0 15.0 -0.23612 + 0.0 15.0 -1.98165 + 5.0 15.0 0.09774 + 10.0 15.0 -0.52629 + 15.0 15.0 -1.38116 + 20.0 15.0 -3.48791 + 25.0 15.0 -4.82506 + 30.0 15.0 -6.63865 + 35.0 15.0 0.00000 + 40.0 15.0 0.00000 + 45.0 15.0 0.00000 + 50.0 15.0 0.00000 + 55.0 15.0 0.00000 + 60.0 15.0 0.00000 + 65.0 15.0 0.00000 + 70.0 15.0 0.00000 + -70.0 20.0 0.00000 + -65.0 20.0 0.00000 + -60.0 20.0 0.00000 + -55.0 20.0 0.00000 + -50.0 20.0 1.08600 + -45.0 20.0 2.03968 + -40.0 20.0 2.96484 + -35.0 20.0 3.71819 + -30.0 20.0 4.12055 + -25.0 20.0 -2.09545 + -20.0 20.0 -1.61026 + -15.0 20.0 -1.11880 + -10.0 20.0 -0.70204 + -5.0 20.0 -2.15053 + 0.0 20.0 0.05354 + 5.0 20.0 -0.46679 + 10.0 20.0 -2.18819 + 15.0 20.0 -3.36511 + 20.0 20.0 -4.70377 + 25.0 20.0 -6.52015 + 30.0 20.0 0.00000 + 35.0 20.0 0.00000 + 40.0 20.0 0.00000 + 45.0 20.0 0.00000 + 50.0 20.0 0.00000 + 55.0 20.0 0.00000 + 60.0 20.0 0.00000 + 65.0 20.0 0.00000 + 70.0 20.0 0.00000 + -70.0 25.0 0.00000 + -65.0 25.0 0.00000 + -60.0 25.0 0.00000 + -55.0 25.0 0.00000 + -50.0 25.0 0.68253 + -45.0 25.0 1.84526 + -40.0 25.0 3.30576 + -35.0 25.0 3.41171 + -30.0 25.0 -2.77115 + -25.0 25.0 -2.34588 + -20.0 25.0 -1.82983 + -15.0 25.0 -1.33008 + -10.0 25.0 -2.51476 + -5.0 25.0 -0.17090 + 0.0 25.0 -1.33810 + 5.0 25.0 -2.14676 + 10.0 25.0 -3.23777 + 15.0 25.0 -4.57484 + 20.0 25.0 -6.29758 + 25.0 25.0 0.00000 + 30.0 25.0 0.00000 + 35.0 25.0 0.00000 + 40.0 25.0 0.00000 + 45.0 25.0 0.00000 + 50.0 25.0 0.00000 + 55.0 25.0 0.00000 + 60.0 25.0 0.00000 + 65.0 25.0 0.00000 + 70.0 25.0 0.00000 + -70.0 30.0 0.00000 + -65.0 30.0 0.00000 + -60.0 30.0 0.00000 + -55.0 30.0 0.08457 + -50.0 30.0 1.20541 + -45.0 30.0 1.79751 + -40.0 30.0 2.25805 + -35.0 30.0 -2.89072 + -30.0 30.0 -2.71181 + -25.0 30.0 -2.58737 + -20.0 30.0 -2.39889 + -15.0 30.0 -3.02296 + -10.0 30.0 -0.61756 + -5.0 30.0 -1.64710 + 0.0 30.0 -2.25891 + 5.0 30.0 -3.16586 + 10.0 30.0 -4.41981 + 15.0 30.0 -6.01564 + 20.0 30.0 0.00000 + 25.0 30.0 0.00000 + 30.0 30.0 0.00000 + 35.0 30.0 0.00000 + 40.0 30.0 0.00000 + 45.0 30.0 0.00000 + 50.0 30.0 0.00000 + 55.0 30.0 0.00000 + 60.0 30.0 0.00000 + 65.0 30.0 0.00000 + 70.0 30.0 0.00000 + -70.0 35.0 0.00000 + -65.0 35.0 0.00000 + -60.0 35.0 0.00000 + -55.0 35.0 -0.06902 + -50.0 35.0 0.83009 + -45.0 35.0 1.50408 + -40.0 35.0 -4.06823 + -35.0 35.0 -2.04965 + -30.0 35.0 -2.03787 + -25.0 35.0 -2.08528 + -20.0 35.0 -3.63172 + -15.0 35.0 -3.73319 + -10.0 35.0 -2.31068 + -5.0 35.0 -2.71294 + 0.0 35.0 -3.32576 + 5.0 35.0 -4.28409 + 10.0 35.0 0.00000 + 15.0 35.0 0.00000 + 20.0 35.0 0.00000 + 25.0 35.0 0.00000 + 30.0 35.0 0.00000 + 35.0 35.0 0.00000 + 40.0 35.0 0.00000 + 45.0 35.0 0.00000 + 50.0 35.0 0.00000 + 55.0 35.0 0.00000 + 60.0 35.0 0.00000 + 65.0 35.0 0.00000 + 70.0 35.0 0.00000 + -70.0 40.0 0.00000 + -65.0 40.0 0.00000 + -60.0 40.0 0.00000 + -55.0 40.0 -0.18309 + -50.0 40.0 0.65098 + -45.0 40.0 1.17821 + -40.0 40.0 -3.16353 + -35.0 40.0 -1.11172 + -30.0 40.0 0.65011 + -25.0 40.0 0.57148 + -20.0 40.0 0.11875 + -15.0 40.0 -0.89921 + -10.0 40.0 -2.62749 + -5.0 40.0 -3.82396 + 0.0 40.0 -4.11637 + 5.0 40.0 0.00000 + 10.0 40.0 0.00000 + 15.0 40.0 0.00000 + 20.0 40.0 0.00000 + 25.0 40.0 0.00000 + 30.0 40.0 0.00000 + 35.0 40.0 0.00000 + 40.0 40.0 0.00000 + 45.0 40.0 0.00000 + 50.0 40.0 0.00000 + 55.0 40.0 0.00000 + 60.0 40.0 0.00000 + 65.0 40.0 0.00000 + 70.0 40.0 0.00000 + -70.0 45.0 0.00000 + -65.0 45.0 0.00000 + -60.0 45.0 -1.16370 + -55.0 45.0 -0.25400 + -50.0 45.0 0.44283 + -45.0 45.0 -2.47844 + -40.0 45.0 -2.18114 + -35.0 45.0 0.27906 + -30.0 45.0 -0.99801 + -25.0 45.0 -0.07649 + -20.0 45.0 -0.95368 + -15.0 45.0 -2.42049 + -10.0 45.0 -3.89964 + -5.0 45.0 -4.64287 + 0.0 45.0 0.00000 + 5.0 45.0 0.00000 + 10.0 45.0 0.00000 + 15.0 45.0 0.00000 + 20.0 45.0 0.00000 + 25.0 45.0 0.00000 + 30.0 45.0 0.00000 + 35.0 45.0 0.00000 + 40.0 45.0 0.00000 + 45.0 45.0 0.00000 + 50.0 45.0 0.00000 + 55.0 45.0 0.00000 + 60.0 45.0 0.00000 + 65.0 45.0 0.00000 + 70.0 45.0 0.00000 + -70.0 50.0 0.00000 + -65.0 50.0 0.00000 + -60.0 50.0 0.00000 + -55.0 50.0 -0.34022 + -50.0 50.0 -1.91537 + -45.0 50.0 -1.59077 + -40.0 50.0 -1.14958 + -35.0 50.0 0.01919 + -30.0 50.0 -0.21509 + -25.0 50.0 -0.89076 + -20.0 50.0 -2.02569 + -15.0 50.0 -3.42838 + -10.0 50.0 0.00000 + -5.0 50.0 0.00000 + 0.0 50.0 0.00000 + 5.0 50.0 0.00000 + 10.0 50.0 0.00000 + 15.0 50.0 0.00000 + 20.0 50.0 0.00000 + 25.0 50.0 0.00000 + 30.0 50.0 0.00000 + 35.0 50.0 0.00000 + 40.0 50.0 0.00000 + 45.0 50.0 0.00000 + 50.0 50.0 0.00000 + 55.0 50.0 0.00000 + 60.0 50.0 0.00000 + 65.0 50.0 0.00000 + 70.0 50.0 0.00000 + -70.0 55.0 0.00000 + -65.0 55.0 0.00000 + -60.0 55.0 0.00000 + -55.0 55.0 -1.49765 + -50.0 55.0 -1.09687 + -45.0 55.0 -0.98897 + -40.0 55.0 -1.45115 + -35.0 55.0 -0.33631 + -30.0 55.0 -0.78973 + -25.0 55.0 -1.57784 + -20.0 55.0 -2.73801 + -15.0 55.0 0.00000 + -10.0 55.0 0.00000 + -5.0 55.0 0.00000 + 0.0 55.0 0.00000 + 5.0 55.0 0.00000 + 10.0 55.0 0.00000 + 15.0 55.0 0.00000 + 20.0 55.0 0.00000 + 25.0 55.0 0.00000 + 30.0 55.0 0.00000 + 35.0 55.0 0.00000 + 40.0 55.0 0.00000 + 45.0 55.0 0.00000 + 50.0 55.0 0.00000 + 55.0 55.0 0.00000 + 60.0 55.0 0.00000 + 65.0 55.0 0.00000 + 70.0 55.0 0.00000 + -70.0 60.0 0.00000 + -65.0 60.0 0.00000 + -60.0 60.0 0.00000 + -55.0 60.0 0.00000 + -50.0 60.0 -3.67961 + -45.0 60.0 -1.42051 + -40.0 60.0 -1.87316 + -35.0 60.0 -0.67832 + -30.0 60.0 -1.25484 + -25.0 60.0 0.00000 + -20.0 60.0 0.00000 + -15.0 60.0 0.00000 + -10.0 60.0 0.00000 + -5.0 60.0 0.00000 + 0.0 60.0 0.00000 + 5.0 60.0 0.00000 + 10.0 60.0 0.00000 + 15.0 60.0 0.00000 + 20.0 60.0 0.00000 + 25.0 60.0 0.00000 + 30.0 60.0 0.00000 + 35.0 60.0 0.00000 + 40.0 60.0 0.00000 + 45.0 60.0 0.00000 + 50.0 60.0 0.00000 + 55.0 60.0 0.00000 + 60.0 60.0 0.00000 + 65.0 60.0 0.00000 + 70.0 60.0 0.00000 + -70.0 65.0 0.00000 + -65.0 65.0 0.00000 + -60.0 65.0 0.00000 + -55.0 65.0 0.00000 + -50.0 65.0 0.00000 + -45.0 65.0 0.00000 + -40.0 65.0 0.00000 + -35.0 65.0 0.00000 + -30.0 65.0 0.00000 + -25.0 65.0 0.00000 + -20.0 65.0 0.00000 + -15.0 65.0 0.00000 + -10.0 65.0 0.00000 + -5.0 65.0 0.00000 + 0.0 65.0 0.00000 + 5.0 65.0 0.00000 + 10.0 65.0 0.00000 + 15.0 65.0 0.00000 + 20.0 65.0 0.00000 + 25.0 65.0 0.00000 + 30.0 65.0 0.00000 + 35.0 65.0 0.00000 + 40.0 65.0 0.00000 + 45.0 65.0 0.00000 + 50.0 65.0 0.00000 + 55.0 65.0 0.00000 + 60.0 65.0 0.00000 + 65.0 65.0 0.00000 + 70.0 65.0 0.00000 + -70.0 70.0 0.00000 + -65.0 70.0 0.00000 + -60.0 70.0 0.00000 + -55.0 70.0 0.00000 + -50.0 70.0 0.00000 + -45.0 70.0 0.00000 + -40.0 70.0 0.00000 + -35.0 70.0 0.00000 + -30.0 70.0 0.00000 + -25.0 70.0 0.00000 + -20.0 70.0 0.00000 + -15.0 70.0 0.00000 + -10.0 70.0 0.00000 + -5.0 70.0 0.00000 + 0.0 70.0 0.00000 + 5.0 70.0 0.00000 + 10.0 70.0 0.00000 + 15.0 70.0 0.00000 + 20.0 70.0 0.00000 + 25.0 70.0 0.00000 + 30.0 70.0 0.00000 + 35.0 70.0 0.00000 + 40.0 70.0 0.00000 + 45.0 70.0 0.00000 + 50.0 70.0 0.00000 + 55.0 70.0 0.00000 + 60.0 70.0 0.00000 + 65.0 70.0 0.00000 + 70.0 70.0 0.00000 + +tortors 63 63 68 63 63 25 25 + -60.0 -60.0 0.00000 + -55.0 -60.0 0.00000 + -50.0 -60.0 0.00000 + -45.0 -60.0 0.00000 + -40.0 -60.0 0.00000 + -35.0 -60.0 0.00000 + -30.0 -60.0 0.00000 + -25.0 -60.0 0.00000 + -20.0 -60.0 0.00000 + -15.0 -60.0 0.00000 + -10.0 -60.0 0.00000 + -5.0 -60.0 0.00000 + 0.0 -60.0 0.00000 + 5.0 -60.0 0.00000 + 10.0 -60.0 0.00000 + 15.0 -60.0 0.00000 + 20.0 -60.0 -5.83580 + 25.0 -60.0 -4.10131 + 30.0 -60.0 -3.15720 + 35.0 -60.0 -2.52015 + 40.0 -60.0 -1.95291 + 45.0 -60.0 -1.48406 + 50.0 -60.0 -1.27507 + 55.0 -60.0 -1.53562 + 60.0 -60.0 -2.41753 + -60.0 -55.0 0.00000 + -55.0 -55.0 0.00000 + -50.0 -55.0 0.00000 + -45.0 -55.0 0.00000 + -40.0 -55.0 0.00000 + -35.0 -55.0 0.00000 + -30.0 -55.0 0.00000 + -25.0 -55.0 0.00000 + -20.0 -55.0 0.00000 + -15.0 -55.0 0.00000 + -10.0 -55.0 0.00000 + -5.0 -55.0 0.00000 + 0.0 -55.0 0.00000 + 5.0 -55.0 0.00000 + 10.0 -55.0 0.00000 + 15.0 -55.0 -5.05305 + 20.0 -55.0 -3.33928 + 25.0 -55.0 -2.41441 + 30.0 -55.0 -1.79519 + 35.0 -55.0 -1.22985 + 40.0 -55.0 -0.70728 + 45.0 -55.0 -0.37932 + 50.0 -55.0 -0.46399 + 55.0 -55.0 -1.18381 + 60.0 -55.0 -2.40715 + -60.0 -50.0 0.00000 + -55.0 -50.0 0.00000 + -50.0 -50.0 0.00000 + -45.0 -50.0 0.00000 + -40.0 -50.0 0.00000 + -35.0 -50.0 0.00000 + -30.0 -50.0 0.00000 + -25.0 -50.0 0.00000 + -20.0 -50.0 0.00000 + -15.0 -50.0 0.00000 + -10.0 -50.0 0.00000 + -5.0 -50.0 0.00000 + 0.0 -50.0 0.00000 + 5.0 -50.0 0.00000 + 10.0 -50.0 -4.56366 + 15.0 -50.0 -2.72989 + 20.0 -50.0 -1.83452 + 25.0 -50.0 -1.24516 + 30.0 -50.0 -0.69635 + 35.0 -50.0 -0.14499 + 40.0 -50.0 0.27269 + 45.0 -50.0 0.33534 + 50.0 -50.0 -0.22901 + 55.0 -50.0 -1.32087 + 60.0 -50.0 -2.70210 + -60.0 -45.0 0.00000 + -55.0 -45.0 0.00000 + -50.0 -45.0 0.00000 + -45.0 -45.0 0.00000 + -40.0 -45.0 0.00000 + -35.0 -45.0 0.00000 + -30.0 -45.0 0.00000 + -25.0 -45.0 0.00000 + -20.0 -45.0 0.00000 + -15.0 -45.0 0.00000 + -10.0 -45.0 0.00000 + -5.0 -45.0 0.00000 + 0.0 -45.0 0.00000 + 5.0 -45.0 -4.28901 + 10.0 -45.0 -2.36540 + 15.0 -45.0 -1.44799 + 20.0 -45.0 -0.87305 + 25.0 -45.0 -0.35540 + 30.0 -45.0 0.19884 + 35.0 -45.0 0.68121 + 40.0 -45.0 0.87422 + 45.0 -45.0 0.47311 + 50.0 -45.0 -0.48811 + 55.0 -45.0 -1.75459 + 60.0 -45.0 -3.23250 + -60.0 -40.0 0.00000 + -55.0 -40.0 0.00000 + -50.0 -40.0 0.00000 + -45.0 -40.0 0.00000 + -40.0 -40.0 0.00000 + -35.0 -40.0 0.00000 + -30.0 -40.0 0.00000 + -25.0 -40.0 0.00000 + -20.0 -40.0 0.00000 + -15.0 -40.0 0.00000 + -10.0 -40.0 0.00000 + -5.0 -40.0 0.00000 + 0.0 -40.0 -4.21609 + 5.0 -40.0 -2.19871 + 10.0 -40.0 -1.23713 + 15.0 -40.0 -0.67214 + 20.0 -40.0 -0.19771 + 25.0 -40.0 0.33857 + 30.0 -40.0 0.86240 + 35.0 -40.0 1.16997 + 40.0 -40.0 0.93497 + 45.0 -40.0 0.12428 + 50.0 -40.0 -1.01473 + 55.0 -40.0 -2.39457 + 60.0 -40.0 -3.96385 + -60.0 -35.0 0.00000 + -55.0 -35.0 0.00000 + -50.0 -35.0 0.00000 + -45.0 -35.0 0.00000 + -40.0 -35.0 0.00000 + -35.0 -35.0 0.00000 + -30.0 -35.0 0.00000 + -25.0 -35.0 0.00000 + -20.0 -35.0 0.00000 + -15.0 -35.0 0.00000 + -10.0 -35.0 0.00000 + -5.0 -35.0 -4.30432 + 0.0 -35.0 -2.21293 + 5.0 -35.0 -1.19409 + 10.0 -35.0 -0.63370 + 15.0 -35.0 -0.19059 + 20.0 -35.0 0.31095 + 25.0 -35.0 0.85451 + 30.0 -35.0 1.25911 + 35.0 -35.0 1.18705 + 40.0 -35.0 0.52783 + 45.0 -35.0 -0.48037 + 50.0 -35.0 -1.75861 + 55.0 -35.0 -3.25751 + 60.0 -35.0 -4.90158 + -60.0 -30.0 0.00000 + -55.0 -30.0 0.00000 + -50.0 -30.0 0.00000 + -45.0 -30.0 0.00000 + -40.0 -30.0 0.00000 + -35.0 -30.0 0.00000 + -30.0 -30.0 0.00000 + -25.0 -30.0 0.00000 + -20.0 -30.0 0.00000 + -15.0 -30.0 0.00000 + -10.0 -30.0 -4.51066 + -5.0 -30.0 -2.37566 + 0.0 -30.0 -1.30490 + 5.0 -30.0 -0.71830 + 10.0 -30.0 -0.30009 + 15.0 -30.0 0.15906 + 20.0 -30.0 0.69957 + 25.0 -30.0 1.17910 + 30.0 -30.0 1.25487 + 35.0 -30.0 0.73672 + 40.0 -30.0 -0.14813 + 45.0 -30.0 -1.32471 + 50.0 -30.0 -2.74217 + 55.0 -30.0 -4.26407 + 60.0 -30.0 -5.95061 + -60.0 -25.0 0.00000 + -55.0 -25.0 0.00000 + -50.0 -25.0 0.00000 + -45.0 -25.0 0.00000 + -40.0 -25.0 0.00000 + -35.0 -25.0 0.00000 + -30.0 -25.0 0.00000 + -25.0 -25.0 0.00000 + -20.0 -25.0 0.00000 + -15.0 -25.0 -4.77307 + -10.0 -25.0 -2.63312 + -5.0 -25.0 -1.51674 + 0.0 -25.0 -0.89776 + 5.0 -25.0 -0.49416 + 10.0 -25.0 -0.07935 + 15.0 -25.0 0.44113 + 20.0 -25.0 0.96622 + 25.0 -25.0 1.16381 + 30.0 -25.0 0.77087 + 35.0 -25.0 -0.00358 + 40.0 -25.0 -1.07229 + 45.0 -25.0 -2.36674 + 50.0 -25.0 -3.71138 + 55.0 -25.0 -5.27158 + 60.0 -25.0 0.00000 + -60.0 -20.0 0.00000 + -55.0 -20.0 0.00000 + -50.0 -20.0 0.00000 + -45.0 -20.0 0.00000 + -40.0 -20.0 0.00000 + -35.0 -20.0 0.00000 + -30.0 -20.0 0.00000 + -25.0 -20.0 0.00000 + -20.0 -20.0 -5.09315 + -15.0 -20.0 -2.95517 + -10.0 -20.0 -1.80460 + -5.0 -20.0 -1.14660 + 0.0 -20.0 -0.74759 + 5.0 -20.0 -0.38000 + 10.0 -20.0 0.10328 + 15.0 -20.0 0.64809 + 20.0 -20.0 0.94323 + 25.0 -20.0 0.65745 + 30.0 -20.0 -0.01915 + 35.0 -20.0 -0.95485 + 40.0 -20.0 -2.08050 + 45.0 -20.0 -3.25913 + 50.0 -20.0 -4.71133 + 55.0 -20.0 -6.63971 + 60.0 -20.0 0.00000 + -60.0 -15.0 0.00000 + -55.0 -15.0 0.00000 + -50.0 -15.0 0.00000 + -45.0 -15.0 0.00000 + -40.0 -15.0 0.00000 + -35.0 -15.0 0.00000 + -30.0 -15.0 0.00000 + -25.0 -15.0 -5.45034 + -20.0 -15.0 -3.32685 + -15.0 -15.0 -2.15296 + -10.0 -15.0 -1.45232 + -5.0 -15.0 -1.04803 + 0.0 -15.0 -0.72396 + 5.0 -15.0 -0.29232 + 10.0 -15.0 0.24800 + 15.0 -15.0 0.61448 + 20.0 -15.0 0.42054 + 25.0 -15.0 -0.15392 + 30.0 -15.0 -0.91776 + 35.0 -15.0 -1.87264 + 40.0 -15.0 -2.98568 + 45.0 -15.0 -4.40337 + 50.0 -15.0 -6.22766 + 55.0 -15.0 0.00000 + 60.0 -15.0 0.00000 + -60.0 -10.0 0.00000 + -55.0 -10.0 0.00000 + -50.0 -10.0 0.00000 + -45.0 -10.0 0.00000 + -40.0 -10.0 0.00000 + -35.0 -10.0 0.00000 + -30.0 -10.0 -5.81449 + -25.0 -10.0 -3.73128 + -20.0 -10.0 -2.08624 + -15.0 -10.0 -1.62464 + -10.0 -10.0 -1.41500 + -5.0 -10.0 -1.24102 + 0.0 -10.0 -0.92284 + 5.0 -10.0 -0.21338 + 10.0 -10.0 0.20700 + 15.0 -10.0 0.09521 + 20.0 -10.0 -0.36907 + 25.0 -10.0 -0.94672 + 30.0 -10.0 -1.74422 + 35.0 -10.0 -3.08295 + 40.0 -10.0 -4.46307 + 45.0 -10.0 -6.00104 + 50.0 -10.0 0.00000 + 55.0 -10.0 0.00000 + 60.0 -10.0 0.00000 + -60.0 -5.0 0.00000 + -55.0 -5.0 0.00000 + -50.0 -5.0 0.00000 + -45.0 -5.0 0.00000 + -40.0 -5.0 0.00000 + -35.0 -5.0 -6.15091 + -30.0 -5.0 -3.55861 + -25.0 -5.0 -2.57195 + -20.0 -5.0 -2.02681 + -15.0 -5.0 -1.78924 + -10.0 -5.0 -1.64777 + -5.0 -5.0 -1.39537 + 0.0 -5.0 -0.96900 + 5.0 -5.0 -0.25290 + 10.0 -5.0 -0.28746 + 15.0 -5.0 -0.63064 + 20.0 -5.0 -1.06625 + 25.0 -5.0 -1.47532 + 30.0 -5.0 -3.00948 + 35.0 -5.0 -4.44984 + 40.0 -5.0 -5.95855 + 45.0 -5.0 0.00000 + 50.0 -5.0 0.00000 + 55.0 -5.0 0.00000 + 60.0 -5.0 0.00000 + -60.0 0.0 0.00000 + -55.0 0.0 0.00000 + -50.0 0.0 0.00000 + -45.0 0.0 0.00000 + -40.0 0.0 -6.45417 + -35.0 0.0 -4.62143 + -30.0 0.0 -3.08129 + -25.0 0.0 -2.45978 + -20.0 0.0 -2.17723 + -15.0 0.0 -2.03416 + -10.0 0.0 -1.80951 + -5.0 0.0 -1.38533 + 0.0 0.0 -0.90395 + 5.0 0.0 -0.42779 + 10.0 0.0 -0.94115 + 15.0 0.0 -1.30965 + 20.0 0.0 -1.38555 + 25.0 0.0 -2.90457 + 30.0 0.0 -4.37987 + 35.0 0.0 -6.02007 + 40.0 0.0 -8.06281 + 45.0 0.0 0.00000 + 50.0 0.0 0.00000 + 55.0 0.0 0.00000 + 60.0 0.0 0.00000 + -60.0 5.0 0.00000 + -55.0 5.0 0.00000 + -50.0 5.0 0.00000 + -45.0 5.0 0.00000 + -40.0 5.0 -5.20922 + -35.0 5.0 -4.00563 + -30.0 5.0 -2.89695 + -25.0 5.0 -2.56096 + -20.0 5.0 -2.39153 + -15.0 5.0 -2.16389 + -10.0 5.0 -1.71843 + -5.0 5.0 -1.13558 + 0.0 5.0 -0.58070 + 5.0 5.0 -0.37062 + 10.0 5.0 -0.69307 + 15.0 5.0 -2.14963 + 20.0 5.0 -2.75680 + 25.0 5.0 -4.24320 + 30.0 5.0 -5.93490 + 35.0 5.0 -8.09825 + 40.0 5.0 0.00000 + 45.0 5.0 0.00000 + 50.0 5.0 0.00000 + 55.0 5.0 0.00000 + 60.0 5.0 0.00000 + -60.0 10.0 0.00000 + -55.0 10.0 0.00000 + -50.0 10.0 0.00000 + -45.0 10.0 -5.89887 + -40.0 10.0 -4.61032 + -35.0 10.0 -3.33093 + -30.0 10.0 -2.93891 + -25.0 10.0 -2.72616 + -20.0 10.0 -2.47611 + -15.0 10.0 -2.00860 + -10.0 10.0 -1.37221 + -5.0 10.0 -0.95195 + 0.0 10.0 -0.53303 + 5.0 10.0 -0.80005 + 10.0 10.0 -1.49429 + 15.0 10.0 7.14810 + 20.0 10.0 -4.07134 + 25.0 10.0 -5.75519 + 30.0 10.0 -8.08174 + 35.0 10.0 0.00000 + 40.0 10.0 0.00000 + 45.0 10.0 0.00000 + 50.0 10.0 0.00000 + 55.0 10.0 0.00000 + 60.0 10.0 0.00000 + -60.0 15.0 0.00000 + -55.0 15.0 0.00000 + -50.0 15.0 -6.67389 + -45.0 15.0 -5.28891 + -40.0 15.0 -3.78623 + -35.0 15.0 -3.32858 + -30.0 15.0 -3.05602 + -25.0 15.0 -2.76550 + -20.0 15.0 -2.27464 + -15.0 15.0 -1.61201 + -10.0 15.0 -1.20651 + -5.0 15.0 -0.72170 + 0.0 15.0 -0.98022 + 5.0 15.0 -1.60778 + 10.0 15.0 -2.48238 + 15.0 15.0 -3.59773 + 20.0 15.0 -5.53243 + 25.0 15.0 -7.87853 + 30.0 15.0 0.00000 + 35.0 15.0 0.00000 + 40.0 15.0 0.00000 + 45.0 15.0 0.00000 + 50.0 15.0 0.00000 + 55.0 15.0 0.00000 + 60.0 15.0 0.00000 + -60.0 20.0 0.00000 + -55.0 20.0 0.00000 + -50.0 20.0 -6.06207 + -45.0 20.0 -4.30777 + -40.0 20.0 -3.76330 + -35.0 20.0 -3.41033 + -30.0 20.0 -3.05833 + -25.0 20.0 -2.53504 + -20.0 20.0 -1.86271 + -15.0 20.0 -1.49943 + -10.0 20.0 -1.52244 + -5.0 20.0 -1.22400 + 0.0 20.0 -1.84097 + 5.0 20.0 -2.58326 + 10.0 20.0 -3.55006 + 15.0 20.0 -4.80046 + 20.0 20.0 -6.77925 + 25.0 20.0 0.00000 + 30.0 20.0 0.00000 + 35.0 20.0 0.00000 + 40.0 20.0 0.00000 + 45.0 20.0 0.00000 + 50.0 20.0 0.00000 + 55.0 20.0 0.00000 + 60.0 20.0 0.00000 + -60.0 25.0 0.00000 + -55.0 25.0 -6.71688 + -50.0 25.0 -4.93440 + -45.0 25.0 -4.28613 + -40.0 25.0 -3.82646 + -35.0 25.0 -3.38948 + -30.0 25.0 -2.81826 + -25.0 25.0 -2.14956 + -20.0 25.0 -1.87936 + -15.0 25.0 -2.03259 + -10.0 25.0 -2.25445 + -5.0 25.0 -2.23288 + 0.0 25.0 -2.87541 + 5.0 25.0 -3.62505 + 10.0 25.0 -4.69355 + 15.0 25.0 -6.42515 + 20.0 25.0 0.00000 + 25.0 25.0 0.00000 + 30.0 25.0 0.00000 + 35.0 25.0 0.00000 + 40.0 25.0 0.00000 + 45.0 25.0 0.00000 + 50.0 25.0 0.00000 + 55.0 25.0 0.00000 + 60.0 25.0 0.00000 + -60.0 30.0 0.00000 + -55.0 30.0 -6.21631 + -50.0 30.0 -4.92852 + -45.0 30.0 -4.34573 + -40.0 30.0 -3.80246 + -35.0 30.0 -3.15604 + -30.0 30.0 -2.46375 + -25.0 30.0 -0.88023 + -20.0 30.0 0.61686 + -15.0 30.0 2.27087 + -10.0 30.0 1.72623 + -5.0 30.0 0.38929 + 0.0 30.0 -1.41604 + 5.0 30.0 -4.69785 + 10.0 30.0 -4.02859 + 15.0 30.0 0.00000 + 20.0 30.0 0.00000 + 25.0 30.0 0.00000 + 30.0 30.0 0.00000 + 35.0 30.0 0.00000 + 40.0 30.0 0.00000 + 45.0 30.0 0.00000 + 50.0 30.0 0.00000 + 55.0 30.0 0.00000 + 60.0 30.0 0.00000 + -60.0 35.0 -7.11110 + -55.0 35.0 -5.71246 + -50.0 35.0 -5.15556 + -45.0 35.0 -4.48298 + -40.0 35.0 -3.77140 + -35.0 35.0 -2.82176 + -30.0 35.0 1.97933 + -25.0 35.0 1.83302 + -20.0 35.0 1.99498 + -15.0 35.0 1.66745 + -10.0 35.0 0.76867 + -5.0 35.0 -0.91706 + 0.0 35.0 -1.26883 + 5.0 35.0 0.00000 + 10.0 35.0 0.00000 + 15.0 35.0 0.00000 + 20.0 35.0 0.00000 + 25.0 35.0 0.00000 + 30.0 35.0 0.00000 + 35.0 35.0 0.00000 + 40.0 35.0 0.00000 + 45.0 35.0 0.00000 + 50.0 35.0 0.00000 + 55.0 35.0 0.00000 + 60.0 35.0 0.00000 + -60.0 40.0 -6.65370 + -55.0 40.0 -6.00115 + -50.0 40.0 -5.16227 + -45.0 40.0 -4.13831 + -40.0 40.0 -2.88134 + -35.0 40.0 -1.14214 + -30.0 40.0 0.30513 + -25.0 40.0 1.70995 + -20.0 40.0 1.50302 + -15.0 40.0 0.75237 + -10.0 40.0 -0.56942 + -5.0 40.0 -1.00446 + 0.0 40.0 0.00000 + 5.0 40.0 0.00000 + 10.0 40.0 0.00000 + 15.0 40.0 0.00000 + 20.0 40.0 0.00000 + 25.0 40.0 0.00000 + 30.0 40.0 0.00000 + 35.0 40.0 0.00000 + 40.0 40.0 0.00000 + 45.0 40.0 0.00000 + 50.0 40.0 0.00000 + 55.0 40.0 0.00000 + 60.0 40.0 0.00000 + -60.0 45.0 -6.79279 + -55.0 45.0 -5.74938 + -50.0 45.0 -4.52149 + -45.0 45.0 -3.01283 + -40.0 45.0 -1.23356 + -35.0 45.0 0.14494 + -30.0 45.0 0.67081 + -25.0 45.0 1.36431 + -20.0 45.0 0.78324 + -15.0 45.0 -0.30187 + -10.0 45.0 -0.58731 + -5.0 45.0 0.00000 + 0.0 45.0 0.00000 + 5.0 45.0 0.00000 + 10.0 45.0 0.00000 + 15.0 45.0 0.00000 + 20.0 45.0 0.00000 + 25.0 45.0 0.00000 + 30.0 45.0 0.00000 + 35.0 45.0 0.00000 + 40.0 45.0 0.00000 + 45.0 45.0 0.00000 + 50.0 45.0 0.00000 + 55.0 45.0 0.00000 + 60.0 45.0 0.00000 + -60.0 50.0 0.00000 + -55.0 50.0 -5.31465 + -50.0 50.0 -3.18818 + -45.0 50.0 -1.35243 + -40.0 50.0 0.01198 + -35.0 50.0 0.51944 + -30.0 50.0 1.18114 + -25.0 50.0 0.83239 + -20.0 50.0 0.01828 + -15.0 50.0 0.00004 + -10.0 50.0 0.00000 + -5.0 50.0 0.00000 + 0.0 50.0 0.00000 + 5.0 50.0 0.00000 + 10.0 50.0 0.00000 + 15.0 50.0 0.00000 + 20.0 50.0 0.00000 + 25.0 50.0 0.00000 + 30.0 50.0 0.00000 + 35.0 50.0 0.00000 + 40.0 50.0 0.00000 + 45.0 50.0 0.00000 + 50.0 50.0 0.00000 + 55.0 50.0 0.00000 + 60.0 50.0 0.00000 + -60.0 55.0 0.00000 + -55.0 55.0 0.00000 + -50.0 55.0 -1.48994 + -45.0 55.0 0.06393 + -40.0 55.0 0.76718 + -35.0 55.0 0.33348 + -30.0 55.0 0.79545 + -25.0 55.0 0.00000 + -20.0 55.0 0.00000 + -15.0 55.0 0.00000 + -10.0 55.0 0.00000 + -5.0 55.0 0.00000 + 0.0 55.0 0.00000 + 5.0 55.0 0.00000 + 10.0 55.0 0.00000 + 15.0 55.0 0.00000 + 20.0 55.0 0.00000 + 25.0 55.0 0.00000 + 30.0 55.0 0.00000 + 35.0 55.0 0.00000 + 40.0 55.0 0.00000 + 45.0 55.0 0.00000 + 50.0 55.0 0.00000 + 55.0 55.0 0.00000 + 60.0 55.0 0.00000 + -60.0 60.0 0.00000 + -55.0 60.0 0.00000 + -50.0 60.0 0.00000 + -45.0 60.0 0.00000 + -40.0 60.0 0.00000 + -35.0 60.0 0.00000 + -30.0 60.0 0.00000 + -25.0 60.0 0.00000 + -20.0 60.0 0.00000 + -15.0 60.0 0.00000 + -10.0 60.0 0.00000 + -5.0 60.0 0.00000 + 0.0 60.0 0.00000 + 5.0 60.0 0.00000 + 10.0 60.0 0.00000 + 15.0 60.0 0.00000 + 20.0 60.0 0.00000 + 25.0 60.0 0.00000 + 30.0 60.0 0.00000 + 35.0 60.0 0.00000 + 40.0 60.0 0.00000 + 45.0 60.0 0.00000 + 50.0 60.0 0.00000 + 55.0 60.0 0.00000 + 60.0 60.0 0.00000 + +tortors 69 69 68 69 69 29 29 + -70.0 -70.0 0.00000 + -65.0 -70.0 0.00000 + -60.0 -70.0 0.00000 + -55.0 -70.0 0.00000 + -50.0 -70.0 0.00000 + -45.0 -70.0 0.00000 + -40.0 -70.0 0.00000 + -35.0 -70.0 0.00000 + -30.0 -70.0 0.00000 + -25.0 -70.0 0.00000 + -20.0 -70.0 0.00000 + -15.0 -70.0 0.00000 + -10.0 -70.0 0.00000 + -5.0 -70.0 0.00000 + 0.0 -70.0 0.00000 + 5.0 -70.0 0.00000 + 10.0 -70.0 0.00000 + 15.0 -70.0 0.00000 + 20.0 -70.0 0.00000 + 25.0 -70.0 0.00000 + 30.0 -70.0 0.00000 + 35.0 -70.0 -7.54942 + 40.0 -70.0 -6.80674 + 45.0 -70.0 -6.03340 + 50.0 -70.0 -5.25706 + 55.0 -70.0 -4.61832 + 60.0 -70.0 -4.23225 + 65.0 -70.0 -4.11835 + 70.0 -70.0 0.00000 + -70.0 -65.0 0.00000 + -65.0 -65.0 0.00000 + -60.0 -65.0 0.00000 + -55.0 -65.0 0.00000 + -50.0 -65.0 0.00000 + -45.0 -65.0 0.00000 + -40.0 -65.0 0.00000 + -35.0 -65.0 0.00000 + -30.0 -65.0 0.00000 + -25.0 -65.0 0.00000 + -20.0 -65.0 0.00000 + -15.0 -65.0 0.00000 + -10.0 -65.0 0.00000 + -5.0 -65.0 0.00000 + 0.0 -65.0 0.00000 + 5.0 -65.0 0.00000 + 10.0 -65.0 0.00000 + 15.0 -65.0 0.00000 + 20.0 -65.0 0.00000 + 25.0 -65.0 0.00000 + 30.0 -65.0 -6.92038 + 35.0 -65.0 -6.22416 + 40.0 -65.0 -5.50740 + 45.0 -65.0 -4.74400 + 50.0 -65.0 -4.05069 + 55.0 -65.0 -3.55238 + 60.0 -65.0 -3.31098 + 65.0 -65.0 -3.34400 + 70.0 -65.0 -3.65503 + -70.0 -60.0 0.00000 + -65.0 -60.0 0.00000 + -60.0 -60.0 0.00000 + -55.0 -60.0 0.00000 + -50.0 -60.0 0.00000 + -45.0 -60.0 0.00000 + -40.0 -60.0 0.00000 + -35.0 -60.0 0.00000 + -30.0 -60.0 0.00000 + -25.0 -60.0 0.00000 + -20.0 -60.0 0.00000 + -15.0 -60.0 0.00000 + -10.0 -60.0 0.00000 + -5.0 -60.0 0.00000 + 0.0 -60.0 0.00000 + 5.0 -60.0 0.00000 + 10.0 -60.0 0.00000 + 15.0 -60.0 0.00000 + 20.0 -60.0 -7.31368 + 25.0 -60.0 -6.31256 + 30.0 -60.0 -5.61848 + 35.0 -60.0 -4.93623 + 40.0 -60.0 -4.18671 + 45.0 -60.0 -3.45990 + 50.0 -60.0 -2.87558 + 55.0 -60.0 -2.51236 + 60.0 -60.0 -2.42291 + 65.0 -60.0 -3.48338 + 70.0 -60.0 -4.24029 + -70.0 -55.0 0.00000 + -65.0 -55.0 0.00000 + -60.0 -55.0 0.00000 + -55.0 -55.0 0.00000 + -50.0 -55.0 0.00000 + -45.0 -55.0 0.00000 + -40.0 -55.0 0.00000 + -35.0 -55.0 0.00000 + -30.0 -55.0 0.00000 + -25.0 -55.0 0.00000 + -20.0 -55.0 0.00000 + -15.0 -55.0 0.00000 + -10.0 -55.0 0.00000 + -5.0 -55.0 0.00000 + 0.0 -55.0 0.00000 + 5.0 -55.0 0.00000 + 10.0 -55.0 0.00000 + 15.0 -55.0 -6.90085 + 20.0 -55.0 -5.77053 + 25.0 -55.0 -4.58497 + 30.0 -55.0 -4.27310 + 35.0 -55.0 -3.50768 + 40.0 -55.0 -2.82422 + 45.0 -55.0 -2.23000 + 50.0 -55.0 -1.76833 + 55.0 -55.0 -2.11792 + 60.0 -55.0 -2.49304 + 65.0 -55.0 -3.18409 + 70.0 -55.0 -4.13432 + -70.0 -50.0 0.00000 + -65.0 -50.0 0.00000 + -60.0 -50.0 0.00000 + -55.0 -50.0 0.00000 + -50.0 -50.0 0.00000 + -45.0 -50.0 0.00000 + -40.0 -50.0 0.00000 + -35.0 -50.0 0.00000 + -30.0 -50.0 0.00000 + -25.0 -50.0 0.00000 + -20.0 -50.0 0.00000 + -15.0 -50.0 0.00000 + -10.0 -50.0 0.00000 + -5.0 -50.0 0.00000 + 0.0 -50.0 0.00000 + 5.0 -50.0 0.00000 + 10.0 -50.0 -6.63863 + 15.0 -50.0 -5.33311 + 20.0 -50.0 -4.01857 + 25.0 -50.0 -3.66736 + 30.0 -50.0 -2.90722 + 35.0 -50.0 -2.21066 + 40.0 -50.0 -1.68448 + 45.0 -50.0 -1.38721 + 50.0 -50.0 -1.36080 + 55.0 -50.0 -1.62739 + 60.0 -50.0 -2.23468 + 65.0 -50.0 -3.13091 + 70.0 -50.0 -5.80094 + -70.0 -45.0 0.00000 + -65.0 -45.0 0.00000 + -60.0 -45.0 0.00000 + -55.0 -45.0 0.00000 + -50.0 -45.0 0.00000 + -45.0 -45.0 0.00000 + -40.0 -45.0 0.00000 + -35.0 -45.0 0.00000 + -30.0 -45.0 0.00000 + -25.0 -45.0 0.00000 + -20.0 -45.0 0.00000 + -15.0 -45.0 0.00000 + -10.0 -45.0 0.00000 + -5.0 -45.0 0.00000 + 0.0 -45.0 0.00000 + 5.0 -45.0 -6.53327 + 10.0 -45.0 -5.02271 + 15.0 -45.0 -3.94076 + 20.0 -45.0 -3.09929 + 25.0 -45.0 -2.34721 + 30.0 -45.0 -1.65917 + 35.0 -45.0 -1.12082 + 40.0 -45.0 -0.79028 + 45.0 -45.0 -0.70157 + 50.0 -45.0 -0.90802 + 55.0 -45.0 -1.42864 + 60.0 -45.0 -2.25070 + 65.0 -45.0 -4.90137 + 70.0 -45.0 -5.93459 + -70.0 -40.0 0.00000 + -65.0 -40.0 0.00000 + -60.0 -40.0 0.00000 + -55.0 -40.0 0.00000 + -50.0 -40.0 0.00000 + -45.0 -40.0 0.00000 + -40.0 -40.0 0.00000 + -35.0 -40.0 0.00000 + -30.0 -40.0 0.00000 + -25.0 -40.0 0.00000 + -20.0 -40.0 0.00000 + -15.0 -40.0 0.00000 + -10.0 -40.0 0.00000 + -5.0 -40.0 0.00000 + 0.0 -40.0 -6.57010 + 5.0 -40.0 -4.85677 + 10.0 -40.0 -3.51679 + 15.0 -40.0 -2.58296 + 20.0 -40.0 -1.83150 + 25.0 -40.0 -1.17330 + 30.0 -40.0 -0.65391 + 35.0 -40.0 -0.32513 + 40.0 -40.0 -0.20571 + 45.0 -40.0 -0.34046 + 50.0 -40.0 -0.78406 + 55.0 -40.0 -1.52417 + 60.0 -40.0 -4.13678 + 65.0 -40.0 -5.12874 + 70.0 -40.0 -6.05144 + -70.0 -35.0 0.00000 + -65.0 -35.0 0.00000 + -60.0 -35.0 0.00000 + -55.0 -35.0 0.00000 + -50.0 -35.0 0.00000 + -45.0 -35.0 0.00000 + -40.0 -35.0 0.00000 + -35.0 -35.0 0.00000 + -30.0 -35.0 0.00000 + -25.0 -35.0 0.00000 + -20.0 -35.0 0.00000 + -15.0 -35.0 0.00000 + -10.0 -35.0 0.00000 + -5.0 -35.0 -5.92597 + 0.0 -35.0 -4.28474 + 5.0 -35.0 -3.10799 + 10.0 -35.0 -2.21135 + 15.0 -35.0 -1.42741 + 20.0 -35.0 -0.64595 + 25.0 -35.0 -0.29372 + 30.0 -35.0 0.00003 + 35.0 -35.0 0.11975 + 40.0 -35.0 0.03635 + 45.0 -35.0 -0.31371 + 50.0 -35.0 -2.64356 + 55.0 -35.0 -3.52846 + 60.0 -35.0 -4.46306 + 65.0 -35.0 -5.34103 + 70.0 -35.0 0.00000 + -70.0 -30.0 0.00000 + -65.0 -30.0 0.00000 + -60.0 -30.0 0.00000 + -55.0 -30.0 0.00000 + -50.0 -30.0 0.00000 + -45.0 -30.0 0.00000 + -40.0 -30.0 0.00000 + -35.0 -30.0 0.00000 + -30.0 -30.0 0.00000 + -25.0 -30.0 0.00000 + -20.0 -30.0 0.00000 + -15.0 -30.0 0.00000 + -10.0 -30.0 -6.18732 + -5.0 -30.0 -4.33024 + 0.0 -30.0 -2.97991 + 5.0 -30.0 -2.01487 + 10.0 -30.0 -1.25931 + 15.0 -30.0 -0.57405 + 20.0 -30.0 0.09426 + 25.0 -30.0 0.68688 + 30.0 -30.0 1.12459 + 35.0 -30.0 0.21522 + 40.0 -30.0 -0.04841 + 45.0 -30.0 -2.27904 + 50.0 -30.0 -3.06717 + 55.0 -30.0 -3.94939 + 60.0 -30.0 -4.77338 + 65.0 -30.0 -5.45974 + 70.0 -30.0 0.00000 + -70.0 -25.0 0.00000 + -65.0 -25.0 0.00000 + -60.0 -25.0 0.00000 + -55.0 -25.0 0.00000 + -50.0 -25.0 0.00000 + -45.0 -25.0 0.00000 + -40.0 -25.0 0.00000 + -35.0 -25.0 0.00000 + -30.0 -25.0 0.00000 + -25.0 -25.0 0.00000 + -20.0 -25.0 0.00000 + -15.0 -25.0 -6.27880 + -10.0 -25.0 -4.25795 + -5.0 -25.0 -2.77748 + 0.0 -25.0 -1.72731 + 5.0 -25.0 -0.96655 + 10.0 -25.0 -0.36181 + 15.0 -25.0 0.17451 + 20.0 -25.0 0.63745 + 25.0 -25.0 0.99080 + 30.0 -25.0 1.18756 + 35.0 -25.0 1.14534 + 40.0 -25.0 -2.12832 + 45.0 -25.0 -2.79778 + 50.0 -25.0 -3.62068 + 55.0 -25.0 -4.39808 + 60.0 -25.0 -5.04811 + 65.0 -25.0 0.00000 + 70.0 -25.0 0.00000 + -70.0 -20.0 0.00000 + -65.0 -20.0 0.00000 + -60.0 -20.0 0.00000 + -55.0 -20.0 0.00000 + -50.0 -20.0 0.00000 + -45.0 -20.0 0.00000 + -40.0 -20.0 0.00000 + -35.0 -20.0 0.00000 + -30.0 -20.0 0.00000 + -25.0 -20.0 0.00000 + -20.0 -20.0 -6.10507 + -15.0 -20.0 -4.04626 + -10.0 -20.0 -2.47750 + -5.0 -20.0 -1.34320 + 0.0 -20.0 -0.54524 + 5.0 -20.0 0.02944 + 10.0 -20.0 0.46942 + 15.0 -20.0 0.78831 + 20.0 -20.0 0.98803 + 25.0 -20.0 1.07721 + 30.0 -20.0 1.00084 + 35.0 -20.0 -1.17098 + 40.0 -20.0 -1.76994 + 45.0 -20.0 -2.54277 + 50.0 -20.0 -3.36407 + 55.0 -20.0 -4.95296 + 60.0 -20.0 0.00000 + 65.0 -20.0 0.00000 + 70.0 -20.0 0.00000 + -70.0 -15.0 0.00000 + -65.0 -15.0 0.00000 + -60.0 -15.0 0.00000 + -55.0 -15.0 0.00000 + -50.0 -15.0 0.00000 + -45.0 -15.0 0.00000 + -40.0 -15.0 0.00000 + -35.0 -15.0 0.00000 + -30.0 -15.0 0.00000 + -25.0 -15.0 -5.90156 + -20.0 -15.0 -3.81608 + -15.0 -15.0 -2.17103 + -10.0 -15.0 -0.95394 + -5.0 -15.0 -0.10034 + 0.0 -15.0 0.48350 + 5.0 -15.0 0.88117 + 10.0 -15.0 1.11288 + 15.0 -15.0 1.19322 + 20.0 -15.0 1.15473 + 25.0 -15.0 0.97304 + 30.0 -15.0 -1.26660 + 35.0 -15.0 -1.89711 + 40.0 -15.0 -2.68141 + 45.0 -15.0 -3.52549 + 50.0 -15.0 -4.30253 + 55.0 -15.0 0.00000 + 60.0 -15.0 0.00000 + 65.0 -15.0 0.00000 + 70.0 -15.0 0.00000 + -70.0 -10.0 0.00000 + -65.0 -10.0 0.00000 + -60.0 -10.0 0.00000 + -55.0 -10.0 0.00000 + -50.0 -10.0 0.00000 + -45.0 -10.0 0.00000 + -40.0 -10.0 0.00000 + -35.0 -10.0 0.00000 + -30.0 -10.0 -5.70392 + -25.0 -10.0 -3.61717 + -20.0 -10.0 -1.91508 + -15.0 -10.0 -0.62115 + -10.0 -10.0 0.29805 + -5.0 -10.0 0.91473 + 0.0 -10.0 1.30019 + 5.0 -10.0 1.47676 + 10.0 -10.0 1.47446 + 15.0 -10.0 1.34819 + 20.0 -10.0 1.08751 + 25.0 -10.0 -1.22164 + 30.0 -10.0 -1.93977 + 35.0 -10.0 -2.80400 + 40.0 -10.0 -3.72852 + 45.0 -10.0 -4.60080 + 50.0 -10.0 -5.38213 + 55.0 -10.0 0.00000 + 60.0 -10.0 0.00000 + 65.0 -10.0 0.00000 + 70.0 -10.0 0.00000 + -70.0 -5.0 0.00000 + -65.0 -5.0 0.00000 + -60.0 -5.0 0.00000 + -55.0 -5.0 0.00000 + -50.0 -5.0 0.00000 + -45.0 -5.0 0.00000 + -40.0 -5.0 0.00000 + -35.0 -5.0 -5.51729 + -30.0 -5.0 -3.46011 + -25.0 -5.0 -1.72666 + -20.0 -5.0 -0.36810 + -15.0 -5.0 0.62156 + -10.0 -5.0 1.29020 + -5.0 -5.0 1.68773 + 0.0 -5.0 1.83011 + 5.0 -5.0 1.75960 + 10.0 -5.0 1.55830 + 15.0 -5.0 1.23737 + 20.0 -5.0 -1.09827 + 25.0 -5.0 -1.87842 + 30.0 -5.0 -2.83083 + 35.0 -5.0 -3.87572 + 40.0 -5.0 -4.89107 + 45.0 -5.0 -5.82410 + 50.0 -5.0 0.00000 + 55.0 -5.0 0.00000 + 60.0 -5.0 0.00000 + 65.0 -5.0 0.00000 + 70.0 -5.0 0.00000 + -70.0 0.0 0.00000 + -65.0 0.0 0.00000 + -60.0 0.0 0.00000 + -55.0 0.0 0.00000 + -50.0 0.0 0.00000 + -45.0 0.0 0.00000 + -40.0 0.0 -5.34482 + -35.0 0.0 -3.34521 + -30.0 0.0 -1.61137 + -25.0 0.0 -0.20555 + -20.0 0.0 0.85529 + -15.0 0.0 1.59343 + -10.0 0.0 2.02872 + -5.0 0.0 2.15953 + 0.0 0.0 2.03458 + 5.0 0.0 1.76198 + 10.0 0.0 1.38128 + 15.0 0.0 -0.96469 + 20.0 0.0 -1.78660 + 25.0 0.0 -2.79273 + 30.0 0.0 -3.93181 + 35.0 0.0 -5.09715 + 40.0 0.0 -6.21194 + 45.0 0.0 0.00000 + 50.0 0.0 0.00000 + 55.0 0.0 0.00000 + 60.0 0.0 0.00000 + 65.0 0.0 0.00000 + 70.0 0.0 0.00000 + -70.0 5.0 0.00000 + -65.0 5.0 0.00000 + -60.0 5.0 0.00000 + -55.0 5.0 0.00000 + -50.0 5.0 0.00000 + -45.0 5.0 0.00000 + -40.0 5.0 -3.27257 + -35.0 5.0 -1.57286 + -30.0 5.0 -0.14298 + -25.0 5.0 0.98614 + -20.0 5.0 1.80967 + -15.0 5.0 2.31029 + -10.0 5.0 2.45782 + -5.0 5.0 2.30004 + 0.0 5.0 1.96403 + 5.0 5.0 1.51569 + 10.0 5.0 -0.84419 + 15.0 5.0 -1.71212 + 20.0 5.0 -2.75319 + 25.0 5.0 -3.94287 + 30.0 5.0 -5.20826 + 35.0 5.0 -6.48697 + 40.0 5.0 0.00000 + 45.0 5.0 0.00000 + 50.0 5.0 0.00000 + 55.0 5.0 0.00000 + 60.0 5.0 0.00000 + 65.0 5.0 0.00000 + 70.0 5.0 0.00000 + -70.0 10.0 0.00000 + -65.0 10.0 0.00000 + -60.0 10.0 0.00000 + -55.0 10.0 0.00000 + -50.0 10.0 0.00000 + -45.0 10.0 -3.24952 + -40.0 10.0 -1.62165 + -35.0 10.0 -0.19346 + -30.0 10.0 0.99679 + -25.0 10.0 1.91758 + -20.0 10.0 2.50752 + -15.0 10.0 2.69707 + -10.0 10.0 2.50659 + -5.0 10.0 2.17901 + 0.0 10.0 1.13819 + 5.0 10.0 -0.96263 + 10.0 10.0 -1.76686 + 15.0 10.0 -2.77670 + 20.0 10.0 -3.96628 + 25.0 10.0 -5.27174 + 30.0 10.0 -6.65005 + 35.0 10.0 0.00000 + 40.0 10.0 0.00000 + 45.0 10.0 0.00000 + 50.0 10.0 0.00000 + 55.0 10.0 0.00000 + 60.0 10.0 0.00000 + 65.0 10.0 0.00000 + 70.0 10.0 0.00000 + -70.0 15.0 0.00000 + -65.0 15.0 0.00000 + -60.0 15.0 0.00000 + -55.0 15.0 0.00000 + -50.0 15.0 -3.29749 + -45.0 15.0 -1.78406 + -40.0 15.0 -0.38197 + -35.0 15.0 0.86239 + -30.0 15.0 1.88611 + -25.0 15.0 2.45837 + -20.0 15.0 2.44965 + -15.0 15.0 0.90441 + -10.0 15.0 -0.68892 + -5.0 15.0 1.87753 + 0.0 15.0 0.08938 + 5.0 15.0 -2.10699 + 10.0 15.0 -2.96799 + 15.0 15.0 -4.06390 + 20.0 15.0 -5.33599 + 25.0 15.0 -6.74111 + 30.0 15.0 -8.37771 + 35.0 15.0 0.00000 + 40.0 15.0 0.00000 + 45.0 15.0 0.00000 + 50.0 15.0 0.00000 + 55.0 15.0 0.00000 + 60.0 15.0 0.00000 + 65.0 15.0 0.00000 + 70.0 15.0 0.00000 + -70.0 20.0 0.00000 + -65.0 20.0 0.00000 + -60.0 20.0 0.00000 + -55.0 20.0 0.00000 + -50.0 20.0 -2.09312 + -45.0 20.0 -0.74079 + -40.0 20.0 0.54623 + -35.0 20.0 1.64682 + -30.0 20.0 2.01915 + -25.0 20.0 2.03392 + -20.0 20.0 0.76985 + -15.0 20.0 -0.21566 + -10.0 20.0 -1.34093 + -5.0 20.0 -0.74959 + 0.0 20.0 -2.75998 + 5.0 20.0 -3.41103 + 10.0 20.0 -4.31485 + 15.0 20.0 -5.45764 + 20.0 20.0 -6.80536 + 25.0 20.0 -8.44874 + 30.0 20.0 0.00000 + 35.0 20.0 0.00000 + 40.0 20.0 0.00000 + 45.0 20.0 0.00000 + 50.0 20.0 0.00000 + 55.0 20.0 0.00000 + 60.0 20.0 0.00000 + 65.0 20.0 0.00000 + 70.0 20.0 0.00000 + -70.0 25.0 0.00000 + -65.0 25.0 0.00000 + -60.0 25.0 0.00000 + -55.0 25.0 -2.50998 + -50.0 25.0 -1.24688 + -45.0 25.0 0.03352 + -40.0 25.0 0.98432 + -35.0 25.0 1.43676 + -30.0 25.0 1.53155 + -25.0 25.0 0.58122 + -20.0 25.0 -0.44659 + -15.0 25.0 -1.88011 + -10.0 25.0 -3.70037 + -5.0 25.0 -3.59523 + 0.0 25.0 -4.14025 + 5.0 25.0 -4.79070 + 10.0 25.0 -5.70684 + 15.0 25.0 -6.89601 + 20.0 25.0 -6.08390 + 25.0 25.0 0.00000 + 30.0 25.0 0.00000 + 35.0 25.0 0.00000 + 40.0 25.0 0.00000 + 45.0 25.0 0.00000 + 50.0 25.0 0.00000 + 55.0 25.0 0.00000 + 60.0 25.0 0.00000 + 65.0 25.0 0.00000 + 70.0 25.0 0.00000 + -70.0 30.0 0.00000 + -65.0 30.0 0.00000 + -60.0 30.0 0.00000 + -55.0 30.0 -1.80627 + -50.0 30.0 -0.69843 + -45.0 30.0 0.11574 + -40.0 30.0 0.69765 + -35.0 30.0 0.93325 + -30.0 30.0 0.30374 + -25.0 30.0 -0.70409 + -20.0 30.0 -1.76828 + -15.0 30.0 -2.75691 + -10.0 30.0 -5.25511 + -5.0 30.0 -5.13795 + 0.0 30.0 -5.52094 + 5.0 30.0 -3.67938 + 10.0 30.0 -4.64604 + 15.0 30.0 -7.69620 + 20.0 30.0 0.00000 + 25.0 30.0 0.00000 + 30.0 30.0 0.00000 + 35.0 30.0 0.00000 + 40.0 30.0 0.00000 + 45.0 30.0 0.00000 + 50.0 30.0 0.00000 + 55.0 30.0 0.00000 + 60.0 30.0 0.00000 + 65.0 30.0 0.00000 + 70.0 30.0 0.00000 + -70.0 35.0 0.00000 + -65.0 35.0 0.00000 + -60.0 35.0 -2.77392 + -55.0 35.0 -1.82142 + -50.0 35.0 -0.95610 + -45.0 35.0 -0.24184 + -40.0 35.0 0.17605 + -35.0 35.0 -0.11685 + -30.0 35.0 -1.02718 + -25.0 35.0 -2.11567 + -20.0 35.0 -3.07610 + -15.0 35.0 -5.37914 + -10.0 35.0 -6.39156 + -5.0 35.0 -7.26126 + 0.0 35.0 -5.89265 + 5.0 35.0 -6.58388 + 10.0 35.0 0.00000 + 15.0 35.0 0.00000 + 20.0 35.0 0.00000 + 25.0 35.0 0.00000 + 30.0 35.0 0.00000 + 35.0 35.0 0.00000 + 40.0 35.0 0.00000 + 45.0 35.0 0.00000 + 50.0 35.0 0.00000 + 55.0 35.0 0.00000 + 60.0 35.0 0.00000 + 65.0 35.0 0.00000 + 70.0 35.0 0.00000 + -70.0 40.0 0.00000 + -65.0 40.0 0.00000 + -60.0 40.0 -2.96696 + -55.0 40.0 -2.10390 + -50.0 40.0 -1.32419 + -45.0 40.0 -0.76928 + -40.0 40.0 -0.75079 + -35.0 40.0 -1.45827 + -30.0 40.0 -2.48234 + -25.0 40.0 -3.48033 + -20.0 40.0 -6.10713 + -15.0 40.0 -6.57222 + -10.0 40.0 -7.37632 + -5.0 40.0 -6.89430 + 0.0 40.0 -7.20459 + 5.0 40.0 0.00000 + 10.0 40.0 0.00000 + 15.0 40.0 0.00000 + 20.0 40.0 0.00000 + 25.0 40.0 0.00000 + 30.0 40.0 0.00000 + 35.0 40.0 0.00000 + 40.0 40.0 0.00000 + 45.0 40.0 0.00000 + 50.0 40.0 0.00000 + 55.0 40.0 0.00000 + 60.0 40.0 0.00000 + 65.0 40.0 0.00000 + 70.0 40.0 0.00000 + -70.0 45.0 0.00000 + -65.0 45.0 0.00000 + -60.0 45.0 -3.17785 + -55.0 45.0 -2.38888 + -50.0 45.0 -1.77582 + -45.0 45.0 -1.56889 + -40.0 45.0 -2.05470 + -35.0 45.0 -2.85973 + -30.0 45.0 -2.27104 + -25.0 45.0 -6.30839 + -20.0 45.0 -5.25621 + -15.0 45.0 -6.06589 + -10.0 45.0 -6.96252 + -5.0 45.0 -7.80226 + 0.0 45.0 0.00000 + 5.0 45.0 0.00000 + 10.0 45.0 0.00000 + 15.0 45.0 0.00000 + 20.0 45.0 0.00000 + 25.0 45.0 0.00000 + 30.0 45.0 0.00000 + 35.0 45.0 0.00000 + 40.0 45.0 0.00000 + 45.0 45.0 0.00000 + 50.0 45.0 0.00000 + 55.0 45.0 0.00000 + 60.0 45.0 0.00000 + 65.0 45.0 0.00000 + 70.0 45.0 0.00000 + -70.0 50.0 0.00000 + -65.0 50.0 0.00000 + -60.0 50.0 -3.33185 + -55.0 50.0 -2.70030 + -50.0 50.0 -2.38617 + -45.0 50.0 -2.70402 + -40.0 50.0 -3.29104 + -35.0 50.0 -4.48573 + -30.0 50.0 -4.80276 + -25.0 50.0 -5.80677 + -20.0 50.0 -6.02399 + -15.0 50.0 -6.85079 + -10.0 50.0 -7.70991 + -5.0 50.0 0.00000 + 0.0 50.0 0.00000 + 5.0 50.0 0.00000 + 10.0 50.0 0.00000 + 15.0 50.0 0.00000 + 20.0 50.0 0.00000 + 25.0 50.0 0.00000 + 30.0 50.0 0.00000 + 35.0 50.0 0.00000 + 40.0 50.0 0.00000 + 45.0 50.0 0.00000 + 50.0 50.0 0.00000 + 55.0 50.0 0.00000 + 60.0 50.0 0.00000 + 65.0 50.0 0.00000 + 70.0 50.0 0.00000 + -70.0 55.0 0.00000 + -65.0 55.0 0.00000 + -60.0 55.0 -3.47703 + -55.0 55.0 -3.11870 + -50.0 55.0 -3.26172 + -45.0 55.0 -3.69949 + -40.0 55.0 -4.95466 + -35.0 55.0 -5.27716 + -30.0 55.0 -5.52653 + -25.0 55.0 -5.90597 + -20.0 55.0 -6.58543 + -15.0 55.0 0.00000 + -10.0 55.0 0.00000 + -5.0 55.0 0.00000 + 0.0 55.0 0.00000 + 5.0 55.0 0.00000 + 10.0 55.0 0.00000 + 15.0 55.0 0.00000 + 20.0 55.0 0.00000 + 25.0 55.0 0.00000 + 30.0 55.0 0.00000 + 35.0 55.0 0.00000 + 40.0 55.0 0.00000 + 45.0 55.0 0.00000 + 50.0 55.0 0.00000 + 55.0 55.0 0.00000 + 60.0 55.0 0.00000 + 65.0 55.0 0.00000 + 70.0 55.0 0.00000 + -70.0 60.0 0.00000 + -65.0 60.0 0.00000 + -60.0 60.0 0.00000 + -55.0 60.0 -3.69092 + -50.0 60.0 -4.17700 + -45.0 60.0 -5.34644 + -40.0 60.0 -5.54562 + -35.0 60.0 -5.72098 + -30.0 60.0 0.00000 + -25.0 60.0 0.00000 + -20.0 60.0 0.00000 + -15.0 60.0 0.00000 + -10.0 60.0 0.00000 + -5.0 60.0 0.00000 + 0.0 60.0 0.00000 + 5.0 60.0 0.00000 + 10.0 60.0 0.00000 + 15.0 60.0 0.00000 + 20.0 60.0 0.00000 + 25.0 60.0 0.00000 + 30.0 60.0 0.00000 + 35.0 60.0 0.00000 + 40.0 60.0 0.00000 + 45.0 60.0 0.00000 + 50.0 60.0 0.00000 + 55.0 60.0 0.00000 + 60.0 60.0 0.00000 + 65.0 60.0 0.00000 + 70.0 60.0 0.00000 + -70.0 65.0 0.00000 + -65.0 65.0 0.00000 + -60.0 65.0 0.00000 + -55.0 65.0 0.00000 + -50.0 65.0 0.00000 + -45.0 65.0 0.00000 + -40.0 65.0 0.00000 + -35.0 65.0 0.00000 + -30.0 65.0 0.00000 + -25.0 65.0 0.00000 + -20.0 65.0 0.00000 + -15.0 65.0 0.00000 + -10.0 65.0 0.00000 + -5.0 65.0 0.00000 + 0.0 65.0 0.00000 + 5.0 65.0 0.00000 + 10.0 65.0 0.00000 + 15.0 65.0 0.00000 + 20.0 65.0 0.00000 + 25.0 65.0 0.00000 + 30.0 65.0 0.00000 + 35.0 65.0 0.00000 + 40.0 65.0 0.00000 + 45.0 65.0 0.00000 + 50.0 65.0 0.00000 + 55.0 65.0 0.00000 + 60.0 65.0 0.00000 + 65.0 65.0 0.00000 + 70.0 65.0 0.00000 + -70.0 70.0 0.00000 + -65.0 70.0 0.00000 + -60.0 70.0 0.00000 + -55.0 70.0 0.00000 + -50.0 70.0 0.00000 + -45.0 70.0 0.00000 + -40.0 70.0 0.00000 + -35.0 70.0 0.00000 + -30.0 70.0 0.00000 + -25.0 70.0 0.00000 + -20.0 70.0 0.00000 + -15.0 70.0 0.00000 + -10.0 70.0 0.00000 + -5.0 70.0 0.00000 + 0.0 70.0 0.00000 + 5.0 70.0 0.00000 + 10.0 70.0 0.00000 + 15.0 70.0 0.00000 + 20.0 70.0 0.00000 + 25.0 70.0 0.00000 + 30.0 70.0 0.00000 + 35.0 70.0 0.00000 + 40.0 70.0 0.00000 + 45.0 70.0 0.00000 + 50.0 70.0 0.00000 + 55.0 70.0 0.00000 + 60.0 70.0 0.00000 + 65.0 70.0 0.00000 + 70.0 70.0 0.00000 + + + ################################### + ## ## + ## Atomic Multipole Parameters ## + ## ## + ################################### + + +multipole 1 2 4 -0.22620 + 0.08214 0.00000 0.34883 + 0.11775 + 0.00000 -1.02185 + -0.17555 0.00000 0.90410 +multipole 2 1 3 -0.15245 + 0.19517 0.00000 0.19687 + -0.20677 + 0.00000 -0.48084 + -0.01672 0.00000 0.68761 +multipole 2 1 238 -0.26188 + 0.19517 0.00000 0.19687 + -0.20677 + 0.00000 -0.48084 + -0.01672 0.00000 0.68761 +multipole 2 1 240 -0.06378 + 0.23312 0.13956 0.09887 + -0.31660 + -0.24134 -0.22704 + 0.00987 -0.17429 0.54364 +multipole 2 234 3 -0.00060 + 0.19517 0.00000 0.19687 + -0.20677 + 0.00000 -0.48084 + -0.01672 0.00000 0.68761 +multipole 2 236 3 -0.15431 + 0.17831 0.12028 0.04835 + -0.18716 + -0.14669 -0.30278 + -0.23445 -0.03639 0.48994 +multipole 3 5 2 0.84374 + -0.10331 0.00000 0.21864 + 0.12993 + 0.00000 -0.31823 + 0.00297 0.00000 0.18830 +multipole 4 1 2 0.12752 + 0.00647 0.00000 -0.12783 + 0.03203 + 0.00000 -0.02425 + -0.00668 0.00000 -0.00778 +multipole 5 3 2 -0.73597 + -0.00206 0.00000 -0.19382 + -0.52873 + 0.00000 0.31757 + 0.01718 0.00000 0.21116 +multipole 6 2 6 0.07168 + -0.00670 0.00000 -0.03554 + -0.01145 + 0.00000 0.00424 + 0.00006 0.00000 0.00721 +multipole 7 8 10 -0.14985 + 0.03550 0.00000 0.44301 + 0.09170 + 0.00000 -1.11491 + -0.24348 0.00000 1.02321 +multipole 7 33 10 -0.07700 + 0.07153 0.00000 0.47356 + 0.04187 + 0.00000 -1.12615 + -0.13307 0.00000 1.08428 +multipole 7 44 10 -0.14168 + 0.07684 0.00000 0.42468 + 0.07677 + 0.00000 -1.10639 + -0.13195 0.00000 1.02962 +multipole 8 7 9 12 -0.21238 + 0.15677 0.10446 0.14545 + -0.17425 + -0.22519 -0.40549 + -0.00044 -0.22429 0.57974 +multipole 8 7 238 12 -0.35660 + 0.15677 0.10446 0.14545 + -0.17425 + -0.22519 -0.40549 + -0.00044 -0.22429 0.57974 +multipole 8 7 240 12 -0.15850 + 0.23312 0.13956 0.09887 + -0.31660 + -0.24134 -0.22704 + 0.00987 -0.17429 0.54364 +multipole 8 234 9 12 0.01822 + 0.16474 0.12633 0.26753 + -0.21185 + -0.16278 -0.28684 + -0.20823 -0.06352 0.49869 +multipole 8 236 9 12 -0.13549 + 0.17831 0.12028 0.04835 + -0.18716 + -0.14669 -0.30278 + -0.23445 -0.03639 0.48994 +multipole 9 11 8 0.85068 + -0.01685 0.00000 0.27745 + 0.29463 + 0.00000 -0.41598 + -0.00743 0.00000 0.12135 +multipole 9 11 33 0.86830 + -0.00831 0.00000 0.28673 + 0.31013 + 0.00000 -0.40744 + -0.02007 0.00000 0.09731 +multipole 9 11 44 0.86623 + -0.01620 0.00000 0.28155 + 0.21345 + 0.00000 -0.37126 + 0.03757 0.00000 0.15781 +multipole 10 7 8 0.12992 + -0.00883 0.00000 -0.14169 + 0.04124 + 0.00000 -0.02603 + -0.00466 0.00000 -0.01521 +multipole 10 7 33 0.13014 + -0.01463 0.00000 -0.14527 + 0.04339 + 0.00000 -0.02611 + -0.00341 0.00000 -0.01728 +multipole 10 7 44 0.13192 + -0.02608 0.00000 -0.13150 + 0.02396 + 0.00000 -0.01254 + 0.00671 0.00000 -0.01142 +multipole 11 9 8 -0.77770 + -0.01897 0.00000 -0.21786 + -0.61542 + 0.00000 0.33936 + 0.00866 0.00000 0.27606 +multipole 11 9 33 -0.78568 + -0.00475 0.00000 -0.21642 + -0.63353 + 0.00000 0.34214 + 0.02232 0.00000 0.29139 +multipole 11 9 44 -0.77214 + -0.00136 0.00000 -0.21318 + -0.59230 + 0.00000 0.31639 + 0.01541 0.00000 0.27591 +multipole 12 8 13 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 15 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 19 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 25 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 64 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 73 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 92 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 109 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 120 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 130 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 140 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 144 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 150 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 156 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 170 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 178 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 185 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 195 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 205 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 216 0.08921 + 0.01405 0.00000 0.04185 + -0.00099 + 0.00000 -0.00099 + 0.00801 0.00000 0.00198 +multipole 12 8 83 0.08544 + 0.00588 0.00000 0.05950 + 0.02355 + 0.00000 -0.01645 + 0.01114 0.00000 -0.00710 +multipole 12 8 162 0.08646 + 0.00138 0.00000 0.00677 + -0.00925 + 0.00000 0.00263 + 0.01278 0.00000 0.00662 +multipole 12 33 34 0.09030 + 0.00560 0.00000 0.05742 + -0.00170 + 0.00000 0.00174 + 0.01050 0.00000 -0.00004 +multipole 12 33 38 0.08972 + -0.00888 0.00000 0.07916 + -0.01768 + 0.00000 -0.01918 + -0.00214 0.00000 0.03686 +multipole 12 44 45 0.09885 + 0.01622 0.00000 0.05792 + 0.00647 + 0.00000 0.00221 + 0.01141 0.00000 -0.00868 +multipole 12 44 50 0.09273 + -0.01562 0.00000 0.07350 + -0.08566 + 0.00000 0.06242 + 0.09474 0.00000 0.02324 +multipole 13 8 12 -0.15440 + -0.00010 0.00000 0.36287 + -0.29475 + 0.00000 -0.29287 + 0.00762 0.00000 0.58762 +multipole 14 13 8 0.07484 + -0.00111 0.00000 -0.10010 + -0.00304 + 0.00000 -0.01538 + 0.01240 0.00000 0.01842 +multipole 15 16 8 0.01482 + 0.08020 0.00000 -0.26997 + 0.34033 + 0.00000 0.14255 + -0.02494 0.00000 -0.48288 +multipole 16 15 8 0.06618 + -0.01550 0.00000 -0.03799 + -0.02092 + 0.00000 -0.00865 + 0.00210 0.00000 0.02957 +multipole 17 15 8 -0.17773 + 0.01639 0.00000 0.27595 + -0.26651 + 0.00000 -0.24157 + -0.00302 0.00000 0.50808 +multipole 18 17 15 0.05743 + 0.00260 0.00000 -0.09807 + -0.00994 + 0.00118 -0.01956 + 0.00000 0.00000 0.02950 +multipole 19 8 21 -0.05880 + 0.26546 0.00000 0.21223 + 0.20945 + 0.00000 -0.58569 + -0.11242 0.00000 0.37624 +multipole 21 22 19 0.02425 + 0.13818 0.00000 -0.10780 + 0.34224 + 0.00000 0.03484 + -0.07137 0.00000 -0.37708 +multipole 23 21 19 -0.11850 + 0.02042 0.00000 0.27842 + -0.21793 + 0.00000 -0.21279 + -0.05341 0.00000 0.43072 +multipole 20 19 21 0.04696 + 0.00607 0.00000 -0.06684 + -0.06962 + 0.00000 -0.00388 + 0.07593 0.00000 0.07350 +multipole 22 21 19 0.00841 + -0.00672 0.00000 -0.06533 + -0.02250 + 0.00000 -0.00022 + 0.02359 0.00000 0.02272 +multipole 24 23 21 0.03989 + -0.00280 0.00000 -0.10039 + 0.04169 + 0.00000 0.04396 + -0.04893 0.00000 -0.08565 +multipole 25 26 29 0.02186 + 0.08020 0.00000 -0.26997 + 0.34033 + 0.00000 0.14255 + -0.02494 0.00000 -0.48288 +multipole 26 25 29 0.06618 + -0.01550 0.00000 -0.03799 + -0.02092 + 0.00000 -0.00865 + 0.00210 0.00000 0.02957 +multipole 27 25 29 -0.17773 + 0.01639 0.00000 0.27595 + -0.26651 + 0.00000 -0.24157 + -0.00302 0.00000 0.50808 +multipole 28 27 25 0.05743 + 0.00260 0.00000 -0.09807 + -0.00994 + 0.00118 -0.01956 + 0.00000 0.00000 0.02950 +multipole 29 31 25 -0.13782 + 0.30388 0.00000 0.06758 + 0.23297 + 0.00000 -0.52767 + -0.19079 0.00000 0.29470 +multipole 30 29 25 0.05838 + -0.00859 0.00000 -0.06224 + -0.01816 + 0.00000 -0.01607 + 0.00914 0.00000 0.03423 +multipole 31 29 32 -0.16689 + 0.00000 0.00000 0.21012 + -0.26816 + 0.00000 -0.20521 + 0.00830 0.00000 0.47337 +multipole 32 31 29 0.05849 + 0.01309 0.00000 -0.10315 + -0.00194 + 0.00000 -0.01929 + 0.00780 0.00000 0.02123 +multipole 33 7 9 12 -0.31424 + 0.10978 0.18667 0.05863 + -0.13616 + -0.31125 -0.33777 + 0.02536 -0.27378 0.47393 +multipole 33 7 238 12 -0.44882 + 0.10978 0.18667 0.05863 + -0.13616 + -0.31125 -0.33777 + 0.02536 -0.27378 0.47393 +multipole 33 234 9 12 -0.01057 + 0.10978 0.18667 0.25863 + -0.13616 + -0.31125 -0.33777 + 0.02536 -0.27378 0.47393 +multipole 33 236 9 12 -0.16428 + 0.17831 0.12028 0.04835 + -0.18716 + -0.14669 -0.30278 + -0.23445 -0.03639 0.48994 +multipole 34 33 36 0.18740 + 0.32652 0.00000 0.16904 + 0.38884 + 0.00000 -0.64696 + -0.40264 0.00000 0.25812 +multipole 35 34 33 0.01982 + -0.01239 0.00000 -0.11747 + 0.01971 + 0.00000 0.00381 + -0.01013 0.00000 -0.02352 +multipole 36 37 34 -0.41295 + 0.33448 0.00000 -0.14251 + 0.42448 + 0.00000 -0.41234 + -0.38297 0.00000 -0.01214 +multipole 37 36 34 0.27409 + -0.00229 0.00000 -0.14154 + 0.03579 + 0.00000 -0.00191 + 0.07686 0.00000 -0.03388 +multipole 38 42 33 0.17854 + 0.23880 0.00000 0.32060 + 0.10533 + 0.00000 -0.64403 + -0.29222 0.00000 0.53870 +multipole 39 38 42 0.02134 + -0.00950 0.00000 -0.09928 + 0.00686 + 0.00000 0.00614 + 0.05736 0.00000 -0.01300 +multipole 40 38 41 -0.15307 + -0.00025 0.00000 0.38046 + -0.30173 + 0.00000 -0.22953 + -0.06348 0.00000 0.53126 +multipole 41 40 38 0.07192 + -0.00679 0.00000 -0.10053 + 0.06651 + 0.00000 0.02229 + -0.00281 0.00000 -0.08880 +multipole 42 43 38 -0.39938 + 0.31891 0.00000 0.06162 + 0.17801 + 0.00000 -0.65478 + -0.34887 0.00000 0.47677 +multipole 43 42 38 0.22557 + -0.05057 0.00000 -0.02631 + -0.03639 + 0.00000 -0.07964 + -0.03676 0.00000 0.11603 +multipole 44 7 9 12 -0.24710 + 0.10958 0.20789 0.11165 + -0.29651 + -0.34984 -0.19439 + 0.01482 -0.12065 0.49090 +multipole 44 7 238 12 -0.37021 + 0.10958 0.20789 0.11165 + -0.29651 + -0.34984 -0.19439 + 0.01482 -0.12065 0.49090 +multipole 44 234 9 12 -0.00633 + 0.10958 0.20789 0.25165 + -0.29651 + -0.34984 -0.19439 + 0.01482 -0.12065 0.49090 +multipole 44 236 9 12 -0.16004 + 0.17831 0.12028 0.04835 + -0.18716 + -0.14669 -0.30278 + -0.23445 -0.03639 0.48994 +multipole 45 44 47 -0.15207 + -0.06553 0.00000 0.34254 + -0.30415 + 0.00000 -0.21377 + -0.28927 0.00000 0.51792 +multipole 45 44 49 -0.15207 + -0.06553 0.00000 0.34254 + -0.30415 + 0.00000 -0.21377 + -0.28927 0.00000 0.51792 +multipole 46 45 44 0.07591 + -0.00889 0.00000 -0.04092 + -0.18958 + 0.00000 0.00422 + 0.16671 0.00000 0.18536 +multipole 47 48 45 -0.04712 + 0.52591 0.00000 -0.09604 + 1.70327 + 0.00000 -2.34352 + -0.60679 0.00000 0.64025 +multipole 48 47 45 0.11129 + -0.04992 0.00000 -0.08691 + 0.05295 + 0.00000 0.13423 + -0.05345 0.00000 -0.18718 +multipole 49 49 45 0.06417 + 0.53667 0.00000 0.23589 + 1.30986 + 0.00000 -2.63022 + -0.81921 0.00000 1.32036 +multipole 50 44 52 0.02101 + 0.45179 0.00000 0.06973 + 0.09122 + 0.00000 -0.44012 + -0.52228 0.00000 0.34890 +multipole 51 50 51 0.00952 + -0.01257 0.00000 -0.06988 + 0.12020 + 0.00000 -0.04321 + 0.05399 0.00000 -0.07699 +multipole 52 50 44 -0.97001 + 0.10382 0.00000 0.32906 + -1.26053 + 0.00000 -1.49518 + -0.38944 0.00000 2.75571 +multipole 53 54 62 -0.11893 + 0.34044 0.00000 0.34525 + 0.13454 + 0.00000 -1.26831 + -0.55465 0.00000 1.13377 +multipole 54 53 55 57 -0.38385 + 0.09303 0.30388 0.20804 + -0.28513 + -0.11620 -0.19141 + -0.06760 -0.05551 0.47654 +multipole 54 53 238 57 -0.44047 + 0.09303 0.30388 0.20804 + -0.28513 + -0.11620 -0.19141 + -0.06760 -0.05551 0.47654 +multipole 55 56 54 0.98874 + 0.02791 0.00000 0.30666 + 0.30672 + 0.00000 -0.48397 + 0.08782 0.00000 0.17725 +multipole 56 55 54 -0.82816 + -0.06750 0.00000 -0.25032 + -0.71170 + 0.00000 0.39860 + -0.05460 0.00000 0.31310 +multipole 57 54 58 0.10715 + 0.00609 0.00000 0.07519 + 0.01670 + 0.00000 -0.01648 + 0.01130 0.00000 -0.00022 +multipole 58 54 60 -0.09495 + 0.31121 0.00000 0.40605 + 0.22917 + 0.00000 -0.67119 + -0.07599 0.00000 0.44202 +multipole 58 246 60 -0.12680 + 0.31318 0.00000 0.41341 + 0.26389 + 0.00000 -0.70262 + -0.10425 0.00000 0.43873 +multipole 59 58 54 0.09275 + -0.01264 0.00000 -0.07572 + 0.00128 + 0.00000 -0.02196 + 0.00991 0.00000 0.02068 +multipole 59 58 246 0.11510 + 0.00090 0.00000 -0.07548 + -0.00989 + 0.00000 -0.01502 + 0.00444 0.00000 0.02491 +multipole 60 58 62 -0.11624 + 0.39225 0.00000 0.24210 + 0.33605 + 0.00000 -0.65320 + -0.03333 0.00000 0.31715 +multipole 60 58 250 -0.14420 + 0.42355 0.00000 0.25235 + 0.34755 + 0.00000 -0.69761 + -0.08434 0.00000 0.35006 +multipole 61 60 58 0.09217 + -0.00152 0.00000 -0.07154 + -0.00810 + 0.00000 -0.00700 + 0.00227 0.00000 0.01510 +multipole 61 60 250 0.12121 + -0.00270 0.00000 -0.06030 + -0.00918 + 0.00000 -0.01098 + 0.00194 0.00000 0.02016 +multipole 62 53 60 -0.02016 + 0.15944 0.00000 0.38838 + -0.01606 + 0.00000 -0.54997 + -0.05844 0.00000 0.56603 +multipole 63 62 53 0.04828 + -0.02837 0.00000 -0.10489 + -0.01200 + 0.00000 0.00934 + -0.02136 0.00000 0.00266 +multipole 64 66 8 -0.01895 + 0.36956 0.00000 0.01114 + 0.41183 + 0.00000 -0.66411 + -0.32852 0.00000 0.25228 +multipole 65 64 66 0.06839 + 0.02787 0.00000 -0.13883 + -0.00869 + 0.00000 0.08416 + 0.09373 0.00000 -0.07547 +multipole 66 64 67 -0.06275 + -0.01515 0.00000 0.11717 + 0.10484 + 0.00000 -0.26909 + 0.00249 0.00000 0.16425 +multipole 67 66 69 0.00890 + 0.18546 0.00000 0.15071 + 0.47473 + 0.00000 -0.42840 + 0.28711 0.00000 -0.04633 +multipole 68 67 66 0.02818 + -0.01325 0.00000 -0.14859 + 0.07601 + 0.00000 0.09693 + 0.01121 0.00000 -0.17294 +multipole 69 67 71 -0.05402 + -0.00945 0.00000 0.02922 + -0.00276 + 0.00000 -0.13432 + -0.13875 0.00000 0.13708 +multipole 70 69 67 0.03565 + 0.00481 0.00000 -0.15153 + 0.05398 + 0.00000 0.03814 + 0.00344 0.00000 -0.09212 +multipole 71 69 69 -0.05826 + -0.00098 0.00000 0.01245 + -0.03242 + 0.00000 -0.17444 + -0.15165 0.00000 0.20686 +multipole 72 71 69 0.03588 + 0.00392 0.00000 -0.14928 + 0.04809 + 0.00000 0.01292 + 0.01455 0.00000 -0.06101 +multipole 73 75 8 -0.08206 + 0.35542 0.00000 0.06495 + 0.41791 + 0.00000 -0.63807 + -0.16042 0.00000 0.22016 +multipole 74 73 75 0.09740 + 0.02115 0.00000 -0.06112 + 0.00978 + 0.00000 -0.01888 + 0.05469 0.00000 0.00910 +multipole 75 73 76 -0.04596 + 0.07761 0.00000 0.13512 + 0.00091 + 0.00000 -0.42529 + -0.06469 0.00000 0.42438 +multipole 76 75 78 0.05037 + 0.23670 0.00000 0.14269 + 0.58628 + 0.00000 -0.49067 + 0.35910 0.00000 -0.09561 +multipole 77 76 75 0.01064 + -0.00997 0.00000 -0.17138 + 0.10326 + 0.00000 0.09710 + 0.00429 0.00000 -0.20036 +multipole 78 76 80 -0.12462 + -0.10481 0.00000 -0.00347 + 0.00581 + 0.00000 -0.19007 + -0.11755 0.00000 0.18426 +multipole 79 78 76 0.01162 + 0.02013 0.00000 -0.18305 + 0.05115 + 0.00000 0.05109 + -0.00250 0.00000 -0.10224 +multipole 80 81 78 0.34249 + -0.01127 0.00000 0.41324 + -0.24130 + 0.00000 -0.40041 + 0.28837 0.00000 0.64171 +multipole 81 80 82 -0.46444 + 0.19999 0.00000 0.00411 + 0.31111 + 0.00000 -0.30294 + -0.24184 0.00000 -0.00817 +multipole 82 81 80 0.22927 + -0.06046 0.00000 -0.00959 + -0.06728 + 0.00000 -0.09125 + 0.00623 0.00000 0.15853 +multipole 83 8 85 -0.14811 + 0.11344 0.00000 0.39909 + 0.03628 + 0.00000 -0.47377 + 0.02261 0.00000 0.43749 +multipole 84 83 84 0.08044 + 0.01404 0.00000 -0.09182 + 0.04405 + 0.00000 0.01752 + 0.03456 0.00000 -0.06157 +multipole 85 83 86 -0.21500 + 0.00000 0.00000 0.19889 + 0.43753 + 0.00000 -0.84736 + 0.00000 0.00000 0.40983 +multipole 86 85 88 -0.04459 + 0.32216 0.00000 0.13839 + 0.73596 + 0.00000 -0.60409 + 0.25285 0.00000 -0.13187 +multipole 87 86 85 0.01849 + -0.02121 0.00000 -0.10542 + 0.08078 + 0.00000 0.10479 + -0.00935 0.00000 -0.18557 +multipole 88 86 90 -0.15802 + 0.03729 0.00000 0.15665 + 0.59432 + 0.00000 -0.78857 + 0.29227 0.00000 0.19425 +multipole 89 88 90 -0.03234 + 0.03781 0.00000 -0.15021 + 0.16274 + 0.00000 0.11972 + 0.03565 0.00000 -0.28246 +multipole 90 91 88 0.62054 + 0.00000 0.00000 0.43281 + 0.41363 + 0.00000 -0.34255 + 0.00000 0.00000 -0.07108 +multipole 91 90 88 -0.91150 + 0.00000 0.00000 -0.26161 + -0.27372 + 0.00000 0.34305 + 0.00000 0.00000 -0.06933 +multipole 92 8 94 -0.16392 + -0.01358 0.00000 0.40504 + -0.28121 + 0.00000 -0.40534 + 0.19195 0.00000 0.68655 +multipole 93 92 94 0.09307 + 0.02678 0.00000 -0.03143 + 0.01097 + 0.00000 -0.00954 + 0.00302 0.00000 -0.00143 +multipole 94 95 97 -0.10518 + -0.33769 0.00000 -0.13606 + 0.08389 + 0.00000 -0.32705 + 0.64420 0.00000 0.24316 +multipole 95 98 94 0.06363 + 0.00315 0.00000 0.45577 + -0.13664 + 0.00000 -0.45223 + 0.50170 0.00000 0.58887 +multipole 96 95 98 0.02858 + -0.00357 0.00000 -0.19861 + 0.04841 + 0.00000 0.04990 + -0.01000 0.00000 -0.09831 +multipole 97 94 101 0.00670 + 0.26019 0.00000 -0.05143 + 0.25420 + 0.00000 -0.02804 + -0.10934 0.00000 -0.22616 +multipole 98 95 100 -0.04014 + 0.12242 0.00000 0.33257 + 0.47182 + 0.00000 -0.95073 + 1.00232 0.00000 0.47891 +multipole 99 98 95 0.08943 + 0.00257 0.00000 -0.22473 + 0.04808 + 0.00000 0.07642 + -0.00228 0.00000 -0.12450 +multipole 100 98 103 0.27213 + -0.01020 0.00000 -0.04090 + -0.56550 + 0.00000 -0.84235 + 0.01760 0.00000 1.40785 +multipole 101 105 97 -0.21794 + -0.35298 0.00000 0.10109 + -0.40485 + 0.00000 0.29036 + 0.37638 0.00000 0.11449 +multipole 102 101 105 0.00801 + -0.00224 0.00000 -0.18002 + 0.06080 + 0.00000 0.00560 + -0.00836 0.00000 -0.06640 +multipole 103 107 100 -0.11761 + -0.14109 0.00000 -0.03991 + -0.10545 + 0.00000 0.00849 + 0.00884 0.00000 0.09696 +multipole 104 103 107 0.00440 + 0.00483 0.00000 -0.18511 + 0.04514 + 0.00000 0.03804 + 0.00203 0.00000 -0.08318 +multipole 105 101 107 0.10201 + 0.39384 0.00000 0.16841 + 0.80520 + 0.00000 -0.74064 + 0.63994 0.00000 -0.06456 +multipole 106 105 101 0.00775 + 0.00480 0.00000 -0.17770 + 0.05191 + 0.00000 0.02589 + 0.00432 0.00000 -0.07780 +multipole 107 105 103 -0.05764 + -0.04918 0.00000 0.00068 + 0.03545 + 0.00000 -0.17480 + -0.16395 0.00000 0.13935 +multipole 108 107 105 0.00377 + -0.00056 0.00000 -0.18221 + 0.03345 + 0.00000 0.00061 + -0.01344 0.00000 -0.03406 +multipole 109 8 111 -0.04139 + 0.26299 0.00000 0.34265 + -0.03104 + 0.00000 -0.66907 + -0.12227 0.00000 0.70011 +multipole 110 109 111 0.12549 + 0.00988 0.00000 -0.08472 + -0.00787 + 0.00000 -0.01467 + 0.00364 0.00000 0.02254 +multipole 111 109 112 0.11571 + 0.11091 0.00000 0.20553 + 0.09544 + 0.00000 -0.36654 + -0.23493 0.00000 0.27110 +multipole 112 111 116 -0.06925 + 0.09513 0.00000 0.18944 + 0.51323 + 0.00000 -0.62541 + 0.37771 0.00000 0.11218 +multipole 113 112 116 0.21415 + 0.05363 0.00000 -0.13189 + 0.01617 + 0.00000 0.05352 + -0.01202 0.00000 -0.06969 +multipole 114 111 118 0.01888 + 0.16232 0.00000 -0.27102 + 0.61022 + 0.00000 -0.20124 + -0.21377 0.00000 -0.40898 +multipole 115 114 118 0.06585 + -0.00990 0.00000 -0.23803 + 0.03073 + 0.00000 0.02508 + -0.00187 0.00000 -0.05581 +multipole 116 112 118 0.36202 + 0.26903 0.00000 0.11759 + 0.06815 + 0.00000 -0.21124 + -0.30196 0.00000 0.14309 +multipole 117 116 118 0.08951 + -0.00197 0.00000 -0.23328 + 0.03690 + 0.00000 0.02486 + -0.00452 0.00000 -0.06176 +multipole 118 114 116 -0.07427 + -0.05556 0.00000 0.07966 + 0.34564 + 0.00000 -0.66163 + 0.31368 0.00000 0.31599 +multipole 119 118 116 0.13793 + -0.00888 0.00000 -0.25043 + 0.03808 + 0.00000 0.02080 + -0.00306 0.00000 -0.05888 +multipole 120 8 122 -0.07944 + 0.17672 0.00000 0.30763 + -0.03832 + 0.00000 -0.44609 + -0.06557 0.00000 0.48441 +multipole 121 120 122 0.08230 + 0.02308 0.00000 -0.08228 + -0.02794 + 0.00000 -0.01021 + -0.00367 0.00000 0.03815 +multipole 122 120 123 0.02915 + 0.31598 0.00000 0.18435 + 0.34260 + 0.00000 -0.59879 + -0.18441 0.00000 0.25619 +multipole 123 122 127 -0.20791 + 0.39981 0.00000 0.32325 + 0.06377 + 0.00000 -0.53895 + 0.03531 0.00000 0.47518 +multipole 124 123 127 0.22642 + 0.02304 0.00000 -0.11797 + -0.16063 + 0.00000 -0.09414 + -0.05024 0.00000 0.25477 +multipole 125 122 129 0.02645 + 0.22620 0.00000 -0.16529 + 0.33999 + 0.00000 -0.44311 + -0.21659 0.00000 0.10312 +multipole 126 125 129 0.05039 + 0.02238 0.00000 -0.15563 + 0.06418 + 0.00000 -0.03197 + -0.06839 0.00000 -0.03221 +multipole 127 123 129 0.27710 + 0.29162 0.00000 0.20834 + -0.08914 + 0.00000 -0.52843 + -0.39844 0.00000 0.61757 +multipole 128 127 129 0.07110 + -0.02202 0.00000 -0.17142 + 0.20449 + 0.00000 -0.02865 + 0.00605 0.00000 -0.17584 +multipole 129 125 127 -0.48774 + 0.22946 0.00000 0.26151 + 0.03809 + 0.00000 -0.11680 + -0.10207 0.00000 0.07871 +multipole 130 8 132 -0.07191 + 0.28159 0.00000 0.28143 + 0.31037 + 0.00000 -0.69057 + 0.12423 0.00000 0.38020 +multipole 131 130 132 0.09317 + 0.00776 0.00000 -0.05959 + -0.00489 + 0.00000 -0.01510 + -0.03160 0.00000 0.01999 +multipole 132 130 133 0.21765 + 0.29985 0.00000 0.02736 + 0.07615 + 0.00000 -0.68598 + 0.04724 0.00000 0.60983 +multipole 133 132 136 -0.58085 + 0.22726 0.00000 0.17315 + -0.01899 + 0.00000 0.04259 + -0.10366 0.00000 -0.02360 +multipole 134 132 138 -0.05319 + 0.24583 0.00000 -0.18287 + 0.72454 + 0.00000 -0.35866 + -0.27504 0.00000 -0.36588 +multipole 135 134 138 0.03309 + -0.01543 0.00000 -0.18397 + 0.06413 + 0.00000 0.01079 + 0.00873 0.00000 -0.07492 +multipole 136 133 138 0.31901 + 0.20503 0.00000 0.21136 + 0.19503 + 0.00000 -0.33727 + -0.42894 0.00000 0.14224 +multipole 137 136 138 0.03395 + -0.03428 0.00000 -0.19515 + 0.05553 + 0.00000 0.03619 + -0.01089 0.00000 -0.09172 +multipole 138 134 136 -0.11867 + -0.00875 0.00000 0.10083 + 0.20131 + 0.00000 -0.72000 + 0.25215 0.00000 0.51869 +multipole 139 138 136 0.10470 + 0.00835 0.00000 -0.20453 + 0.03062 + 0.00000 0.01424 + 0.02385 0.00000 -0.04486 +multipole 140 8 142 -0.33040 + -0.11155 0.00000 0.33205 + -0.61968 + 0.00000 -0.26472 + -0.14505 0.00000 0.88440 +multipole 141 140 142 0.04893 + 0.05143 0.00000 -0.06648 + 0.28508 + 0.00000 0.01019 + 0.01023 0.00000 -0.29527 +multipole 142 -143 -143 1.01644 + 0.00000 0.00000 0.08388 + 0.38943 + 0.00000 -0.40574 + -0.48759 0.00000 0.01631 +multipole 143 142 140 -0.85689 + -0.12334 0.00000 -0.17900 + -0.30556 + 0.00000 0.15089 + -0.25593 0.00000 0.15467 +multipole 144 8 146 -0.09907 + 0.28314 0.00000 0.21299 + -0.02365 + 0.00000 -0.44590 + -0.11454 0.00000 0.46955 +multipole 145 144 146 0.09104 + -0.00783 0.00000 -0.03880 + 0.00300 + 0.00000 -0.02251 + 0.00366 0.00000 0.01951 +multipole 146 147 148 0.80267 + 0.20023 0.00000 0.07448 + 0.19047 + 0.00000 -0.27645 + -0.23208 0.00000 0.08598 +multipole 147 146 148 -0.61184 + -0.02970 0.00000 -0.14127 + -0.46989 + 0.00000 0.30054 + -0.03964 0.00000 0.16935 +multipole 148 146 149 -0.44451 + 0.25436 0.00000 -0.00470 + 0.30396 + 0.00000 -0.42103 + -0.22422 0.00000 0.11707 +multipole 149 148 146 0.24079 + -0.02916 0.00000 -0.07474 + -0.05892 + 0.00000 -0.07642 + -0.01164 0.00000 0.13534 +multipole 150 8 152 -0.15072 + 0.21350 0.00000 0.26252 + 0.05371 + 0.00000 -0.51087 + -0.14685 0.00000 0.45716 +multipole 151 150 152 0.09679 + 0.03329 0.00000 -0.09671 + 0.39142 + 0.00000 -0.06880 + 0.00874 0.00000 -0.32262 +multipole 152 154 153 0.76960 + 0.30627 0.00000 -0.09362 + 0.21156 + 0.00000 -0.39797 + 0.03345 0.00000 0.18641 +multipole 153 152 154 -0.72950 + -0.03688 0.00000 -0.16002 + -0.27527 + 0.00000 0.26973 + 0.01067 0.00000 0.00554 +multipole 154 152 153 -0.38020 + 0.09353 0.00000 0.22182 + -0.15418 + 0.00000 -0.46630 + 0.22562 0.00000 0.62048 +multipole 155 154 152 0.18368 + -0.03978 0.00000 -0.31735 + 0.10703 + 0.00000 0.19471 + -0.10853 0.00000 -0.30174 +multipole 156 8 158 0.00410 + 0.19527 0.00000 0.18895 + 0.21464 + 0.00000 -0.87217 + -0.58720 0.00000 0.65753 +multipole 157 156 158 0.04082 + 0.05593 0.00000 -0.13609 + 0.19339 + 0.00000 0.00486 + 0.13648 0.00000 -0.19825 +multipole 158 156 160 -0.36014 + -0.21199 0.00000 0.25528 + -0.92519 + 0.00000 0.11101 + -0.02016 0.00000 0.81418 +multipole 159 158 160 -0.00356 + 0.01435 0.00000 -0.03733 + 0.30641 + 0.00000 -0.10229 + -0.17820 0.00000 -0.20412 +multipole 160 -161 -161 1.14596 + 0.00000 0.00000 -0.08110 + 0.47468 + 0.00000 -0.53790 + -0.20865 0.00000 0.06322 +multipole 161 160 161 -0.89716 + 0.23089 0.00000 -0.27964 + -0.48791 + 0.00000 0.28534 + 0.25648 0.00000 0.20257 +multipole 162 8 164 -0.07714 + 0.26038 0.00000 0.20993 + 0.22883 + 0.00000 -0.64833 + -0.23553 0.00000 0.41950 +multipole 163 162 8 0.09378 + -0.01574 0.00000 -0.05078 + -0.02530 + 0.00000 0.00147 + 0.02003 0.00000 0.02383 +multipole 164 162 166 -0.20674 + 0.26277 0.00000 0.16246 + -0.04934 + 0.00000 -0.40226 + -0.12563 0.00000 0.45160 +multipole 165 164 166 0.09104 + -0.00783 0.00000 -0.03880 + 0.00300 + 0.00000 -0.02251 + 0.00366 0.00000 0.01951 +multipole 166 167 168 0.80267 + 0.20023 0.00000 0.07448 + 0.19047 + 0.00000 -0.27645 + -0.23208 0.00000 0.08598 +multipole 167 166 168 -0.61184 + -0.02970 0.00000 -0.14127 + -0.46989 + 0.00000 0.30054 + -0.03964 0.00000 0.16935 +multipole 168 166 169 -0.44451 + 0.25436 0.00000 -0.00470 + 0.30396 + 0.00000 -0.42103 + -0.22422 0.00000 0.11707 +multipole 169 168 166 0.24079 + -0.02916 0.00000 -0.07474 + -0.05892 + 0.00000 -0.07642 + -0.01164 0.00000 0.13534 +multipole 170 8 172 -0.12108 + 0.20829 0.00000 0.25236 + 0.20153 + 0.00000 -0.62121 + -0.31273 0.00000 0.41968 +multipole 171 170 8 0.05947 + -0.00523 0.00000 -0.09278 + -0.00153 + 0.00000 0.01003 + 0.11637 0.00000 -0.00850 +multipole 172 170 174 -0.14858 + 0.36021 0.00000 0.30124 + 0.02345 + 0.00000 -0.56744 + 0.02425 0.00000 0.54399 +multipole 173 172 174 0.09679 + 0.03329 0.00000 -0.09671 + 0.39142 + 0.00000 -0.06880 + 0.00874 0.00000 -0.32262 +multipole 174 176 175 0.76960 + 0.30627 0.00000 -0.09362 + 0.21156 + 0.00000 -0.39797 + 0.03345 0.00000 0.18641 +multipole 175 174 176 -0.72950 + -0.03688 0.00000 -0.16002 + -0.27527 + 0.00000 0.26973 + 0.01067 0.00000 0.00554 +multipole 176 174 175 -0.38020 + 0.09353 0.00000 0.22182 + -0.15418 + 0.00000 -0.46630 + 0.22562 0.00000 0.62048 +multipole 177 176 174 0.18368 + -0.03978 0.00000 -0.31735 + 0.10703 + 0.00000 0.19471 + -0.10853 0.00000 -0.30174 +multipole 178 8 180 -0.02949 + 0.25798 0.00000 0.20067 + 0.18156 + 0.00000 -0.53649 + -0.23437 0.00000 0.35493 +multipole 179 178 180 0.06373 + 0.02199 0.00000 -0.08918 + -0.00122 + 0.00000 0.01893 + 0.07446 0.00000 -0.01771 +multipole 180 182 178 -0.07285 + 0.10294 0.00000 -0.14760 + 0.07610 + 0.00000 0.00950 + -0.40971 0.00000 -0.08560 +multipole 181 180 182 0.00251 + 0.00920 0.00000 -0.06833 + 0.06767 + 0.00000 -0.04966 + 0.05119 0.00000 -0.01801 +multipole 182 180 183 0.06969 + 0.45487 0.00000 0.40067 + 1.23884 + 0.00000 -2.84799 + -0.97916 0.00000 1.60915 +multipole 183 182 180 -0.15553 + 0.07637 0.00000 0.05437 + -0.24774 + 0.00000 0.25322 + 0.17760 0.00000 -0.00548 +multipole 184 183 182 0.04194 + 0.01008 0.00000 -0.10323 + 0.07224 + 0.00000 -0.02305 + -0.03128 0.00000 -0.04919 +multipole 185 8 187 0.01417 + 0.14321 0.00000 0.20704 + 0.30355 + 0.00000 -0.78336 + -0.49884 0.00000 0.47981 +multipole 186 185 187 0.06168 + 0.01034 0.00000 -0.06926 + -0.00481 + 0.00000 -0.01041 + 0.00120 0.00000 0.01522 +multipole 187 189 185 -0.14658 + 0.07407 0.00000 0.27751 + -0.00731 + 0.00000 -0.45713 + -0.03370 0.00000 0.46444 +multipole 188 187 188 0.07914 + -0.02214 0.00000 -0.05705 + -0.01403 + 0.00000 -0.00903 + -0.01009 0.00000 0.02306 +multipole 189 191 187 -0.12517 + 0.10322 0.00000 0.30901 + -0.01151 + 0.00000 -0.54904 + -0.16768 0.00000 0.56055 +multipole 190 189 190 0.07947 + -0.01804 0.00000 -0.05617 + -0.00416 + 0.00000 -0.02346 + -0.00980 0.00000 0.02762 +multipole 191 193 189 -0.00637 + 0.14897 0.00000 0.45848 + -0.16613 + 0.00000 -0.75850 + -0.13391 0.00000 0.92463 +multipole 192 191 192 0.10424 + -0.02167 0.00000 -0.06885 + 0.00577 + 0.00000 -0.00847 + -0.00310 0.00000 0.00270 +multipole 193 191 194 0.10679 + 0.00000 0.00000 0.12676 + -0.16979 + 0.00000 -0.13104 + 0.03239 0.00000 0.30083 +multipole 194 193 191 0.19274 + 0.03789 0.00000 -0.14079 + 0.01248 + 0.00000 -0.00338 + 0.01511 0.00000 -0.00910 +multipole 195 8 197 0.01417 + 0.14321 0.00000 0.20704 + 0.30355 + 0.00000 -0.78336 + -0.49884 0.00000 0.47981 +multipole 196 195 197 0.06168 + 0.01034 0.00000 -0.06926 + -0.00481 + 0.00000 -0.01041 + 0.00120 0.00000 0.01522 +multipole 197 195 199 -0.23796 + 0.19414 0.00000 0.14744 + 0.14341 + 0.00000 -0.47693 + -0.11332 0.00000 0.33352 +multipole 198 197 198 0.07914 + -0.02214 0.00000 -0.05705 + -0.01403 + 0.00000 -0.00903 + -0.01009 0.00000 0.02306 +multipole 199 197 201 -0.11624 + 0.21269 0.00000 0.09089 + 0.20210 + 0.00000 -0.39596 + -0.20937 0.00000 0.19386 +multipole 200 199 200 0.05672 + -0.01831 0.00000 -0.07935 + 0.15924 + 0.00000 -0.06424 + 0.10917 0.00000 -0.09500 +multipole 201 203 199 0.11242 + 0.21133 0.00000 0.33886 + 0.02196 + 0.00000 -0.48911 + -0.25303 0.00000 0.46715 +multipole 202 201 202 0.02390 + 0.01872 0.00000 -0.12033 + 0.09851 + 0.00000 0.11826 + 0.07069 0.00000 -0.21677 +multipole 203 201 -204 -204 -0.30941 + 0.33655 0.00000 0.15544 + -0.89694 + 0.00000 0.57332 + -0.40985 0.00000 0.32362 +multipole 204 203 201 0.08213 + -0.02480 0.00000 -0.10241 + -0.09247 + 0.00000 -0.02510 + 0.06165 0.00000 0.11757 +multipole 205 8 207 -0.05810 + 0.20447 0.00000 0.22675 + 0.15418 + 0.00000 -0.61290 + -0.20381 0.00000 0.45872 +multipole 206 205 207 0.07332 + 0.02865 0.00000 -0.07066 + -0.01727 + 0.00000 0.05136 + -0.02048 0.00000 -0.03409 +multipole 207 205 209 -0.12460 + 0.34262 0.00000 0.10892 + 0.29827 + 0.00000 -0.61801 + -0.41083 0.00000 0.31974 +multipole 208 207 208 0.10013 + -0.02406 0.00000 -0.04574 + 0.04356 + 0.00000 0.04278 + 0.03604 0.00000 -0.08634 +multipole 209 207 211 -0.00504 + 0.31217 0.00000 0.12183 + 0.63851 + 0.00000 -0.60326 + -0.42746 0.00000 -0.03525 +multipole 210 209 210 0.06386 + 0.00521 0.00000 -0.12606 + 0.06805 + 0.00000 0.12031 + 0.04448 0.00000 -0.18836 +multipole 211 209 213 -0.26789 + -0.17032 0.00000 0.38423 + 0.13132 + 0.00000 -0.85952 + 0.18957 0.00000 0.72820 +multipole 212 211 213 0.14895 + -0.02053 0.00000 -0.19388 + 0.07464 + 0.00000 0.03688 + 0.08593 0.00000 -0.11152 +multipole 213 -214 -214 0.90680 + 0.00412 0.00000 0.01818 + -0.11120 + 0.00000 0.07010 + -0.02109 0.00000 0.04110 +multipole 214 213 214 -0.30169 + -0.00168 0.00000 -0.24721 + 0.43113 + 0.00000 -0.69170 + -0.07379 0.00000 0.26057 +multipole 215 214 213 0.14969 + 0.01642 0.00000 -0.22002 + 0.17410 + 0.00000 -0.03308 + -0.02767 0.00000 -0.14102 +multipole 216 8 218 0.01417 + 0.14321 0.00000 0.20704 + 0.30355 + 0.00000 -0.78336 + -0.49884 0.00000 0.47981 +multipole 217 216 218 0.06168 + 0.01034 0.00000 -0.06926 + -0.00481 + 0.00000 -0.01041 + 0.00120 0.00000 0.01522 +multipole 218 220 216 -0.12127 + 0.10322 0.00000 0.30901 + -0.01151 + 0.00000 -0.54904 + -0.16768 0.00000 0.56055 +multipole 219 218 219 0.08337 + -0.01804 0.00000 -0.05617 + -0.00416 + 0.00000 -0.02346 + -0.00980 0.00000 0.02762 +multipole 220 222 218 -0.00637 + 0.14897 0.00000 0.45848 + -0.16613 + 0.00000 -0.75850 + -0.13391 0.00000 0.92463 +multipole 221 220 221 0.10424 + -0.02167 0.00000 -0.06885 + 0.00577 + 0.00000 -0.00847 + -0.00310 0.00000 0.00270 +multipole 222 220 223 0.10679 + 0.00000 0.00000 0.12676 + -0.16979 + 0.00000 -0.13104 + 0.03239 0.00000 0.30083 +multipole 223 222 220 0.19274 + 0.03789 0.00000 -0.14079 + 0.01248 + 0.00000 -0.00338 + 0.01511 0.00000 -0.00910 +multipole 224 226 227 -0.19495 + -0.05933 0.00000 0.30647 + -0.12000 + 0.00000 -0.18289 + 0.06006 0.00000 0.30289 +multipole 225 224 226 0.07797 + -0.00148 0.00000 -0.10232 + 0.00077 + 0.00000 -0.01358 + 0.00508 0.00000 0.01281 +multipole 226 227 224 0.70656 + -0.28625 0.00000 0.40485 + 0.09631 + 0.00000 -0.19283 + 0.05482 0.00000 0.09652 +multipole 227 226 224 -0.74615 + 0.10832 0.00000 -0.15915 + -0.51576 + 0.00000 0.23754 + 0.12638 0.00000 0.27822 +multipole 228 -229 -229 -0.25887 + 0.00000 0.00000 0.11888 + 0.60320 + 0.00000 -0.68404 + -0.03938 0.00000 0.08084 +multipole 229 228 229 0.12975 + 0.00964 0.00000 -0.17930 + 0.02173 + 0.00000 -0.03357 + 0.00745 0.00000 0.01184 +multipole 230 232 231 -0.27516 + 0.12868 0.00000 0.29428 + 0.13167 + 0.00000 -0.77946 + -0.26698 0.00000 0.64779 +multipole 231 230 232 0.12524 + 0.04469 0.00000 -0.11589 + 0.03867 + 0.00000 -0.05683 + 0.02734 0.00000 0.01816 +multipole 232 230 231 -0.00902 + 0.04962 0.00000 0.26123 + -0.42853 + 0.00000 -0.34055 + 0.01113 0.00000 0.76908 +multipole 233 232 230 0.05319 + -0.00200 0.00000 -0.11501 + 0.00409 + 0.00000 -0.00544 + -0.00819 0.00000 0.00135 +multipole 234 2 235 0.11164 + 0.00000 0.00000 0.13883 + -0.17000 + 0.00000 -0.34475 + -0.01419 0.00000 0.51475 +multipole 234 8 235 0.11164 + 0.00000 0.00000 0.13883 + -0.17000 + 0.00000 -0.34475 + -0.01419 0.00000 0.51475 +multipole 234 33 235 0.11164 + 0.00000 0.00000 0.13883 + -0.17000 + 0.00000 -0.34475 + -0.01419 0.00000 0.51475 +multipole 234 44 235 0.11164 + 0.00000 0.00000 0.13883 + -0.17000 + 0.00000 -0.34475 + -0.01419 0.00000 0.51475 +multipole 235 234 2 0.21240 + 0.00000 0.00000 -0.12490 + 0.03622 + 0.00000 -0.01437 + 0.00000 0.00000 -0.02185 +multipole 235 234 8 0.21240 + 0.00000 0.00000 -0.12490 + 0.03622 + 0.00000 -0.01437 + 0.00000 0.00000 -0.02185 +multipole 235 234 33 0.21240 + 0.00000 0.00000 -0.12490 + 0.03622 + 0.00000 -0.01437 + 0.00000 0.00000 -0.02185 +multipole 235 234 44 0.21240 + 0.00000 0.00000 -0.12490 + 0.03622 + 0.00000 -0.01437 + 0.00000 0.00000 -0.02185 +multipole 236 2 -237 -237 -0.29203 + 0.39162 0.00000 0.29820 + -0.82241 + 0.00000 0.30190 + -0.26688 0.00000 0.52051 +multipole 236 8 -237 -237 -0.29203 + 0.39162 0.00000 0.29820 + -0.82241 + 0.00000 0.30190 + -0.26688 0.00000 0.52051 +multipole 236 33 -237 -237 -0.29203 + 0.39162 0.00000 0.29820 + -0.82241 + 0.00000 0.30190 + -0.26688 0.00000 0.52051 +multipole 236 44 -237 -237 -0.29203 + 0.39162 0.00000 0.29820 + -0.82241 + 0.00000 0.30190 + -0.26688 0.00000 0.52051 +multipole 237 236 237 0.09729 + -0.02365 0.00000 -0.07786 + -0.02419 + 0.00000 -0.00850 + -0.00527 0.00000 0.03269 +multipole 238 -239 -239 1.02669 + 0.00000 0.00000 -0.06887 + 0.36390 + 0.00000 -0.45669 + 0.00000 0.00000 0.09279 +multipole 239 238 239 -0.90443 + 0.19119 0.00000 -0.19259 + -0.45071 + 0.00000 0.24406 + 0.16925 0.00000 0.20665 +multipole 240 241 2 0.90327 + -0.07798 0.00000 0.05629 + 0.20073 + 0.00000 -0.34953 + 0.34032 0.00000 0.14880 +multipole 240 241 8 0.90327 + -0.07798 0.00000 0.05629 + 0.20073 + 0.00000 -0.34953 + 0.34032 0.00000 0.14880 +multipole 240 241 33 0.90327 + -0.07798 0.00000 0.05629 + 0.20073 + 0.00000 -0.34953 + 0.34032 0.00000 0.14880 +multipole 240 241 44 0.90327 + -0.07798 0.00000 0.05629 + 0.20073 + 0.00000 -0.34953 + 0.34032 0.00000 0.14880 +multipole 241 240 2 -0.65062 + -0.01381 0.00000 -0.15899 + -0.50252 + 0.00000 0.31170 + -0.01833 0.00000 0.19082 +multipole 241 240 8 -0.65062 + -0.01381 0.00000 -0.15899 + -0.50252 + 0.00000 0.31170 + -0.01833 0.00000 0.19082 +multipole 241 240 33 -0.65062 + -0.01381 0.00000 -0.15899 + -0.50252 + 0.00000 0.31170 + -0.01833 0.00000 0.19082 +multipole 241 240 44 -0.65062 + -0.01381 0.00000 -0.15899 + -0.50252 + 0.00000 0.31170 + -0.01833 0.00000 0.19082 +multipole 242 240 243 -0.47859 + 0.29403 0.00000 -0.07342 + 0.32137 + 0.00000 -0.37927 + -0.15981 0.00000 0.05790 +multipole 243 242 240 0.24567 + -0.01982 0.00000 -0.07068 + -0.05831 + 0.00000 -0.07908 + -0.01391 0.00000 0.13739 +multipole 244 246 250 0.07219 + 0.28913 0.00000 0.29472 + 0.20132 + 0.00000 -0.54286 + 0.05155 0.00000 0.34154 +multipole 245 244 245 0.23262 + -0.02789 0.00000 -0.04288 + 0.00231 + 0.00000 0.03311 + -0.02313 0.00000 -0.03542 +multipole 246 244 247 -0.16428 + 0.16276 0.20457 0.47894 + -0.28250 + -0.26022 -0.34943 + 0.25272 -0.20303 0.63193 +multipole 247 248 246 0.93900 + 0.00000 0.00000 0.32359 + 0.14171 + 0.00000 -0.31370 + 0.03825 0.00000 0.17199 +multipole 248 247 246 -0.74794 + 0.02444 0.00000 -0.13267 + -0.59982 + 0.00000 0.24285 + -0.01926 0.00000 0.35697 +multipole 249 246 58 0.12611 + 0.01772 0.00000 0.00501 + 0.02059 + 0.00000 -0.01260 + 0.01759 0.00000 -0.00799 +multipole 250 60 244 -0.04567 + 0.56406 0.00000 0.09733 + 0.69818 + 0.00000 -0.78665 + -0.18468 0.00000 0.08847 +multipole 251 250 244 0.10559 + -0.01503 0.00000 -0.07122 + 0.00434 + 0.00000 -0.00248 + -0.01523 0.00000 -0.00186 +multipole 252 256 253 -0.12218 + 0.03811 0.00000 -0.08600 + 0.62317 + 0.00000 -1.19258 + 0.19520 0.00000 0.56941 +multipole 253 257 252 0.10618 + 0.14960 0.00000 -0.12837 + 0.37561 + 0.00000 -1.08479 + -0.08751 0.00000 0.70918 +multipole 254 255 260 0.03294 + -0.03102 0.00000 0.00884 + 0.54936 + 0.00000 -1.16758 + -0.21224 0.00000 0.61822 +multipole 255 256 254 -0.29610 + 0.61528 0.00000 0.42732 + 0.23662 + 0.00000 -0.71274 + -0.59516 0.00000 0.47612 +multipole 256 255 252 0.12091 + 0.29466 0.00000 0.04441 + 0.57178 + 0.00000 -0.97127 + 0.05984 0.00000 0.39949 +multipole 257 258 253 -0.28556 + 0.65052 0.00000 0.32181 + 0.12041 + 0.00000 -0.70422 + -0.73445 0.00000 0.58381 +multipole 258 259 257 0.09440 + 0.17177 0.00000 0.08338 + 0.42911 + 0.00000 -0.89289 + -0.05831 0.00000 0.46378 +multipole 259 260 258 -0.30504 + 0.51018 0.00000 0.44518 + -0.10277 + 0.00000 -0.67553 + -0.76206 0.00000 0.77830 +multipole 260 259 262 0.11701 + -0.02847 0.00000 -0.01015 + 0.48527 + 0.00000 -0.91170 + 0.00027 0.00000 0.42643 +multipole 261 258 259 0.10987 + 0.00260 0.00000 0.16138 + -0.00401 + 0.00000 -0.14100 + -0.00062 0.00000 0.14501 +multipole 262 260 263 -0.28195 + 0.00000 0.00000 0.28691 + 0.77307 + 0.00000 -1.54614 + 0.00000 0.00000 0.77307 +multipole 263 262 260 0.23408 + 0.03256 0.00000 0.10841 + 0.00094 + 0.00000 -0.15824 + -0.00749 0.00000 0.15730 +multipole 264 262 260 0.23408 + 0.03256 0.00000 0.10841 + 0.00094 + 0.00000 -0.15824 + -0.00749 0.00000 0.15730 +multipole 265 256 252 0.12346 + 0.00882 0.00000 0.15889 + -0.01175 + 0.00000 -0.14419 + 0.01352 0.00000 0.15594 +multipole 266 267 271 -0.12896 + -0.11355 0.00000 0.02174 + 0.67152 + 0.00000 -1.21177 + -0.10266 0.00000 0.54025 +multipole 267 272 268 0.25555 + -0.14070 0.00000 -0.03554 + 0.26985 + -0.00001 -0.69302 + -0.03330 0.00000 0.42317 +multipole 268 267 269 -0.29612 + 0.53921 0.00000 0.28660 + -0.04511 + 0.00000 -0.75164 + -0.89326 0.00000 0.79675 +multipole 269 268 273 0.10206 + 0.01957 0.00000 0.12801 + 0.47115 + 0.00000 -0.89630 + -0.01741 0.00000 0.42515 +multipole 270 269 271 -0.08445 + 0.15647 0.00000 0.19000 + 0.70078 + 0.00000 -1.36350 + 0.01622 0.00000 0.66272 +multipole 271 266 270 0.09191 + 0.09270 0.00000 0.29758 + 0.55799 + 0.00000 -1.06685 + -0.02963 0.00000 0.50886 +multipole 272 267 266 -0.42963 + -0.05223 0.00000 0.54613 + -0.69717 + 0.00000 -0.34383 + 0.07116 0.00000 1.04100 +multipole 273 269 274 -0.28291 + 0.00000 0.00000 0.25147 + 0.76777 + 0.00000 -1.53554 + 0.00000 0.00000 0.76777 +multipole 274 273 269 0.22172 + 0.03599 0.00000 0.11263 + -0.00271 + 0.00000 -0.15749 + 0.00206 0.00000 0.16020 +multipole 275 273 269 0.22172 + 0.03599 0.00000 0.11263 + -0.00271 + 0.00000 -0.15749 + 0.00206 0.00000 0.16020 +multipole 276 270 269 0.09969 + 0.02298 0.00000 0.17496 + 0.00319 + 0.00000 -0.16978 + -0.00323 0.00000 0.16659 +multipole 277 271 266 0.11152 + 0.02437 0.00000 0.17240 + -0.00098 + 0.00000 -0.14128 + 0.00098 0.00000 0.14226 +multipole 278 282 279 -0.12123 + 0.03277 0.00000 -0.10629 + 0.63111 + 0.00000 -1.19809 + 0.19068 0.00000 0.56698 +multipole 279 283 278 0.11988 + 0.19633 0.00000 -0.06061 + 0.38997 + 0.00000 -1.12316 + -0.07428 0.00000 0.73319 +multipole 280 281 286 0.05939 + -0.10783 0.00000 0.02921 + 0.63397 + 0.00000 -1.23333 + -0.17725 0.00000 0.59936 +multipole 281 282 280 -0.25427 + 0.59171 0.00000 0.39016 + 0.15889 + 0.00000 -0.73445 + -0.53511 0.00000 0.57556 +multipole 282 281 278 0.05900 + 0.29666 0.00000 0.03459 + 0.59303 + 0.00000 -1.00768 + 0.05948 0.00000 0.41465 +multipole 283 284 279 -0.32183 + 0.57617 0.00000 0.41136 + 0.04364 + 0.00000 -0.79668 + -0.81270 0.00000 0.75304 +multipole 284 283 285 0.16650 + 0.04683 0.00000 0.10382 + 0.42221 + 0.00000 -0.84366 + 0.03151 0.00000 0.42145 +multipole 285 286 284 -0.20681 + 0.13302 0.00000 0.01206 + 0.66907 + 0.00000 -1.32924 + -0.20370 0.00000 0.66017 +multipole 286 291 285 0.22596 + 0.01495 0.00000 -0.07785 + 0.18997 + 0.00000 -0.72984 + 0.02836 0.00000 0.53987 +multipole 287 285 286 0.25827 + -0.01369 0.00000 0.11644 + 0.02819 + 0.00000 -0.12664 + -0.01016 0.00000 0.09845 +multipole 288 284 289 -0.30237 + 0.00000 0.00000 0.28852 + 0.63383 + 0.00000 -1.56322 + 0.00000 0.00000 0.92939 +multipole 289 288 284 0.22815 + 0.03988 0.00000 0.11016 + -0.00150 + 0.00000 -0.16140 + 0.00075 0.00000 0.16290 +multipole 290 288 284 0.22815 + 0.03988 0.00000 0.11016 + -0.00150 + 0.00000 -0.16140 + 0.00075 0.00000 0.16290 +multipole 291 286 285 -0.37776 + -0.06443 0.00000 0.49534 + -0.70985 + 0.00000 -0.26340 + 0.02536 0.00000 0.97325 +multipole 292 282 278 0.12107 + 0.01058 0.00000 0.15550 + -0.00871 + 0.00000 -0.14972 + 0.01430 0.00000 0.15843 +multipole 293 294 298 -0.15031 + -0.09046 0.00000 0.02457 + 0.65601 + 0.00000 -1.24652 + -0.08497 0.00000 0.59051 +multipole 294 299 293 0.25814 + 0.18207 0.00000 -0.10742 + 0.22241 + 0.00000 -0.69573 + 0.00586 0.00000 0.47332 +multipole 295 294 296 -0.18494 + 0.09040 0.00000 0.07592 + 0.52488 + 0.00000 -1.31753 + -0.14409 0.00000 0.79265 +multipole 296 301 295 0.20468 + -0.03331 0.00000 -0.08396 + 0.22917 + 0.00000 -0.73017 + -0.00765 0.00000 0.50100 +multipole 297 296 298 -0.10776 + -0.07708 0.00000 0.02024 + 0.69315 + 0.00000 -1.22595 + -0.07168 0.00000 0.53280 +multipole 298 293 297 0.02014 + 0.13147 0.00000 0.23798 + 0.52729 + 0.00000 -1.10293 + -0.13608 0.00000 0.57564 +multipole 299 294 293 -0.42656 + -0.00821 0.00000 0.52363 + -0.76229 + 0.00000 -0.32575 + 0.04661 0.00000 1.08804 +multipole 300 295 294 0.27344 + 0.00655 0.00000 0.12419 + 0.02392 + 0.00000 -0.12278 + -0.00027 0.00000 0.09886 +multipole 301 296 295 -0.40427 + 0.01291 0.00000 0.51762 + -0.81344 + 0.00000 -0.24421 + -0.00636 0.00000 1.05765 +multipole 302 297 303 -0.09928 + 0.00000 0.00000 0.16142 + -0.10106 + 0.00000 -0.10106 + 0.00000 0.00000 0.20212 +multipole 303 302 297 0.12786 + 0.04661 0.00000 0.13652 + -0.04143 + 0.00000 -0.10340 + -0.01205 0.00000 0.14483 +multipole 304 298 293 0.11524 + 0.01748 0.00000 0.18372 + 0.01572 + 0.00000 -0.13911 + -0.00351 0.00000 0.12339 +multipole 305 306 310 -0.11970 + -0.12748 0.00000 0.03261 + 0.65308 + 0.00000 -1.23647 + -0.08490 0.00000 0.58339 +multipole 306 311 305 0.26026 + 0.18047 0.00000 -0.06071 + 0.22206 + 0.00000 -0.68694 + 0.00805 0.00000 0.46488 +multipole 307 306 308 -0.18804 + 0.05643 0.00000 0.09035 + 0.51668 + 0.00000 -1.31595 + -0.14138 0.00000 0.79927 +multipole 308 313 307 0.20160 + 0.08304 0.00000 -0.05600 + 0.14871 + 0.00000 -0.69528 + -0.00421 0.00000 0.54657 +multipole 309 308 310 -0.05028 + 0.13971 0.00000 0.11658 + 0.72742 + 0.00000 -1.30088 + -0.08699 0.00000 0.57346 +multipole 310 305 309 0.07568 + 0.05068 0.00000 0.30269 + 0.54514 + 0.00000 -1.07260 + -0.06180 0.00000 0.52746 +multipole 311 306 305 -0.42057 + -0.00798 0.00000 0.50266 + -0.76279 + 0.00000 -0.31846 + 0.04824 0.00000 1.08125 +multipole 312 307 306 0.27376 + 0.00919 0.00000 0.09970 + 0.02355 + 0.00000 -0.12300 + -0.00028 0.00000 0.09945 +multipole 313 308 307 -0.38720 + -0.00599 0.00000 0.48268 + -0.77753 + 0.00000 -0.22144 + 0.03766 0.00000 0.99897 +multipole 314 309 308 0.12060 + 0.01488 0.00000 0.14584 + -0.00132 + 0.00000 -0.16042 + -0.01362 0.00000 0.16174 +multipole 315 310 305 0.11599 + 0.02971 0.00000 0.15040 + -0.00005 + 0.00000 -0.14202 + 0.00241 0.00000 0.14207 +multipole 316 378 317 -0.52467 + 0.48068 0.00000 -0.09996 + 0.36295 + 0.00000 -0.87560 + -0.49890 0.00000 0.51265 +multipole 317 320 318 0.05049 + 0.00000 0.00000 0.33253 + -0.07256 + 0.00000 -0.07256 + 0.00000 0.00000 0.14512 +multipole 318 317 319 0.07556 + 0.03873 0.00000 0.14751 + -0.08294 + 0.00000 -0.01783 + -0.01217 0.00000 0.10077 +multipole 319 317 318 0.07556 + 0.03873 0.00000 0.14751 + -0.08294 + 0.00000 -0.01783 + -0.01217 0.00000 0.10077 +multipole 320 325 321 0.10423 + -0.13285 0.00000 0.29667 + -0.05793 + 0.00000 0.00086 + 0.08206 0.00000 0.05707 +multipole 321 320 322 0.13028 + 0.01734 0.00000 0.19825 + -0.05326 + 0.00000 -0.01234 + -0.00361 0.00000 0.06560 +multipole 322 323 320 -0.40197 + 0.54028 0.00000 0.40904 + 0.35989 + 0.00000 -1.06741 + -0.40034 0.00000 0.70752 +multipole 323 324 327 0.06316 + 0.28383 0.00000 -0.13756 + 0.02849 + 0.00000 0.17299 + 0.01391 0.00000 -0.20148 +multipole 324 323 322 0.18443 + 0.01626 0.00000 0.20540 + -0.04301 + 0.00000 -0.01489 + -0.01787 0.00000 0.05790 +multipole 325 327 320 0.10143 + -0.37871 0.00000 -0.13798 + 0.13330 + 0.00000 -0.04778 + 0.10936 0.00000 -0.08552 +multipole 326 325 327 0.11227 + -0.01614 0.00000 0.20173 + -0.05953 + 0.00000 -0.00856 + 0.00915 0.00000 0.06809 +multipole 327 329 328 0.06213 + -0.32405 0.00000 -0.06050 + -0.05803 + 0.00000 -0.15345 + 0.14580 0.00000 0.21148 +multipole 328 327 329 0.11711 + -0.00447 0.00000 0.19801 + -0.00750 + 0.00000 -0.04433 + -0.00421 0.00000 0.05183 +multipole 329 327 330 -0.47891 + 0.13592 0.00000 0.42081 + 0.35793 + 0.00000 -1.07684 + -0.39656 0.00000 0.71891 +multipole 330 329 327 0.32469 + 0.02934 0.00000 0.13804 + 0.00130 + 0.00000 -0.09712 + -0.01165 0.00000 0.09582 +multipole 331 378 325 -0.53467 + 0.21061 0.00000 0.49486 + 0.30847 + 0.00000 -1.03109 + -0.35505 0.00000 0.72262 +multipole 332 378 333 -0.52467 + 0.48068 0.00000 -0.09996 + 0.36295 + 0.00000 -0.87560 + -0.49890 0.00000 0.51265 +multipole 333 336 334 0.05049 + 0.00000 0.00000 0.33253 + -0.07256 + 0.00000 -0.07256 + 0.00000 0.00000 0.14512 +multipole 334 333 335 0.07556 + 0.03873 0.00000 0.14751 + -0.08294 + 0.00000 -0.01783 + -0.01217 0.00000 0.10077 +multipole 335 333 334 0.07556 + 0.03873 0.00000 0.14751 + -0.08294 + 0.00000 -0.01783 + -0.01217 0.00000 0.10077 +multipole 336 341 337 0.10423 + -0.13285 0.00000 0.29667 + -0.05793 + 0.00000 0.00086 + 0.08206 0.00000 0.05707 +multipole 337 336 338 0.13028 + 0.01734 0.00000 0.19825 + -0.05326 + 0.00000 -0.01234 + -0.00361 0.00000 0.06560 +multipole 338 339 336 -0.40197 + 0.54028 0.00000 0.40904 + 0.35989 + 0.00000 -1.06741 + -0.40034 0.00000 0.70752 +multipole 339 340 343 0.06316 + 0.28383 0.00000 -0.13756 + 0.02849 + 0.00000 0.17299 + 0.01391 0.00000 -0.20148 +multipole 340 339 338 0.18443 + 0.01626 0.00000 0.20540 + -0.04301 + 0.00000 -0.01489 + -0.01787 0.00000 0.05790 +multipole 341 343 336 0.10143 + -0.37871 0.00000 -0.13798 + 0.13330 + 0.00000 -0.04778 + 0.10936 0.00000 -0.08552 +multipole 342 341 343 0.11227 + -0.01614 0.00000 0.20173 + -0.05953 + 0.00000 -0.00856 + 0.00915 0.00000 0.06809 +multipole 343 345 344 0.06213 + -0.32405 0.00000 -0.06050 + -0.05803 + 0.00000 -0.15345 + 0.14580 0.00000 0.21148 +multipole 344 343 345 0.11711 + -0.00447 0.00000 0.19801 + -0.00750 + 0.00000 -0.04433 + -0.00421 0.00000 0.05183 +multipole 345 343 346 -0.47891 + 0.13592 0.00000 0.42081 + 0.35793 + 0.00000 -1.07684 + -0.39656 0.00000 0.71891 +multipole 346 345 343 0.32469 + 0.02934 0.00000 0.13804 + 0.00130 + 0.00000 -0.09712 + -0.01165 0.00000 0.09582 +multipole 347 378 341 -0.53467 + 0.21061 0.00000 0.49486 + 0.30847 + 0.00000 -1.03109 + -0.35505 0.00000 0.72262 +multipole 348 390 349 -0.52467 + 0.48068 0.00000 -0.09996 + 0.36295 + 0.00000 -0.87560 + -0.49890 0.00000 0.51265 +multipole 349 352 350 0.00960 + 0.00000 0.00000 0.32394 + -0.07147 + 0.00000 -0.07147 + 0.00000 0.00000 0.14294 +multipole 350 349 351 0.07556 + 0.03873 0.00000 0.14751 + -0.08294 + 0.00000 -0.01783 + -0.01217 0.00000 0.10077 +multipole 351 349 350 0.07556 + 0.03873 0.00000 0.14751 + -0.08294 + 0.00000 -0.01783 + -0.01217 0.00000 0.10077 +multipole 352 353 357 0.15826 + 0.24623 0.00000 -0.21242 + 0.08205 + 0.00000 -0.00618 + 0.03696 0.00000 -0.07587 +multipole 353 352 354 0.12800 + 0.02154 0.00000 0.20007 + -0.05590 + 0.00000 -0.00935 + -0.00576 0.00000 0.06525 +multipole 354 355 352 -0.38842 + 0.55727 0.00000 0.37834 + 0.35493 + 0.00000 -1.07262 + -0.43151 0.00000 0.71769 +multipole 355 354 359 0.06720 + 0.26362 0.00000 0.03922 + 0.05443 + 0.00000 -0.09570 + 0.15343 0.00000 0.04127 +multipole 356 355 354 0.12287 + 0.02353 0.00000 0.19270 + -0.05515 + 0.00000 -0.01305 + -0.02241 0.00000 0.06820 +multipole 357 352 359 0.07060 + 0.28362 0.00000 0.21969 + 0.09901 + 0.00000 0.02642 + 0.14299 0.00000 -0.12543 +multipole 358 357 352 0.10297 + -0.00352 0.00000 0.21211 + -0.04895 + 0.00000 -0.01013 + -0.01963 0.00000 0.05908 +multipole 359 357 355 -0.10232 + 0.30155 0.00000 0.23708 + 0.03425 + 0.00000 -0.14123 + 0.16905 0.00000 0.10698 +multipole 360 359 357 0.10225 + 0.01188 0.00000 0.17915 + -0.03150 + 0.00000 -0.06341 + 0.00371 0.00000 0.09491 +multipole 361 359 357 0.09833 + 0.02571 0.00000 0.16920 + -0.03368 + 0.00000 -0.08428 + 0.00819 0.00000 0.11796 +multipole 362 390 357 -0.53467 + 0.48068 0.00000 -0.09996 + 0.36295 + 0.00000 -0.87560 + -0.49890 0.00000 0.51265 +multipole 363 390 364 -0.52467 + 0.48068 0.00000 -0.09996 + 0.36295 + 0.00000 -0.87560 + -0.49890 0.00000 0.51265 +multipole 364 367 365 0.00960 + 0.00000 0.00000 0.32394 + -0.07147 + 0.00000 -0.07147 + 0.00000 0.00000 0.14294 +multipole 365 364 366 0.07556 + 0.03873 0.00000 0.14751 + -0.08294 + 0.00000 -0.01783 + -0.01217 0.00000 0.10077 +multipole 366 364 365 0.07556 + 0.03873 0.00000 0.14751 + -0.08294 + 0.00000 -0.01783 + -0.01217 0.00000 0.10077 +multipole 367 368 372 0.15826 + 0.24623 0.00000 -0.21242 + 0.08205 + 0.00000 -0.00618 + 0.03696 0.00000 -0.07587 +multipole 368 367 369 0.12800 + 0.02154 0.00000 0.20007 + -0.05590 + 0.00000 -0.00935 + -0.00576 0.00000 0.06525 +multipole 369 370 367 -0.38842 + 0.55727 0.00000 0.37834 + 0.35493 + 0.00000 -1.07262 + -0.43151 0.00000 0.71769 +multipole 370 369 374 0.06720 + 0.26362 0.00000 0.03922 + 0.05443 + 0.00000 -0.09570 + 0.15343 0.00000 0.04127 +multipole 371 370 369 0.12287 + 0.02353 0.00000 0.19270 + -0.05515 + 0.00000 -0.01305 + -0.02241 0.00000 0.06820 +multipole 372 367 374 0.07060 + 0.28362 0.00000 0.21969 + 0.09901 + 0.00000 0.02642 + 0.14299 0.00000 -0.12543 +multipole 373 372 367 0.10297 + -0.00352 0.00000 0.21211 + -0.04895 + 0.00000 -0.01013 + -0.01963 0.00000 0.05908 +multipole 374 372 370 -0.10232 + 0.30155 0.00000 0.23708 + 0.03425 + 0.00000 -0.14123 + 0.16905 0.00000 0.10698 +multipole 375 374 372 0.10225 + 0.01188 0.00000 0.17915 + -0.03150 + 0.00000 -0.06341 + 0.00371 0.00000 0.09491 +multipole 376 374 372 0.09833 + 0.02571 0.00000 0.16920 + -0.03368 + 0.00000 -0.08428 + 0.00819 0.00000 0.11796 +multipole 377 390 372 -0.53467 + 0.48068 0.00000 -0.09996 + 0.36295 + 0.00000 -0.87560 + -0.49890 0.00000 0.51265 +multipole 378 379 -379 0.90070 + 0.00000 0.00000 -0.38892 + 0.04278 + 0.00000 0.04278 + 0.00000 0.00000 -0.08556 +multipole 379 378 379 -0.62196 + -0.02485 0.00000 0.23676 + -0.53745 + 0.00000 -0.44509 + -0.09945 0.00000 0.98254 +multipole 380 317 381 -0.53491 + 0.20945 0.00000 0.45595 + 0.31894 + 0.00000 -0.99741 + -0.33409 0.00000 0.67847 +multipole 380 333 381 -0.53491 + 0.20945 0.00000 0.45595 + 0.31894 + 0.00000 -0.99741 + -0.33409 0.00000 0.67847 +multipole 381 380 333 0.34636 + 0.05168 0.00000 0.21326 + -0.04514 + 0.00000 -0.08116 + -0.01807 0.00000 0.12630 +multipole 381 380 317 0.34636 + 0.05168 0.00000 0.21326 + -0.04514 + 0.00000 -0.08116 + -0.01807 0.00000 0.12630 +multipole 382 383 317 -0.58166 + 0.26215 0.00000 0.04328 + 0.24279 + 0.00000 -0.44387 + -0.22260 0.00000 0.20108 +multipole 382 383 333 -0.58166 + 0.26215 0.00000 0.04328 + 0.24279 + 0.00000 -0.44387 + -0.22260 0.00000 0.20108 +multipole 383 382 384 1.02369 + 0.00000 0.00000 -0.21311 + -0.08100 + 0.00000 -0.08100 + 0.00000 0.00000 0.16200 +multipole 384 383 382 -0.87686 + -0.08747 0.00000 0.03991 + -0.45917 + 0.00000 -0.64191 + 0.17008 0.00000 1.10108 +multipole 385 325 386 -0.50819 + 0.18120 0.00000 0.42418 + 0.28893 + 0.00000 -1.01628 + -0.48824 0.00000 0.72735 +multipole 385 341 386 -0.50819 + 0.18120 0.00000 0.42418 + 0.28893 + 0.00000 -1.01628 + -0.48824 0.00000 0.72735 +multipole 386 385 325 0.29418 + 0.02971 0.00000 0.13453 + -0.01165 + 0.00000 -0.09373 + 0.01341 0.00000 0.10538 +multipole 386 385 341 0.29418 + 0.02971 0.00000 0.13453 + -0.01165 + 0.00000 -0.09373 + 0.01341 0.00000 0.10538 +multipole 387 388 325 -0.60712 + 0.26215 0.00000 0.04328 + 0.24279 + 0.00000 -0.44387 + -0.22260 0.00000 0.20108 +multipole 387 388 341 -0.60712 + 0.26215 0.00000 0.04328 + 0.24279 + 0.00000 -0.44387 + -0.22260 0.00000 0.20108 +multipole 388 387 389 1.02369 + 0.00000 0.00000 -0.21311 + -0.08100 + 0.00000 -0.08100 + 0.00000 0.00000 0.16200 +multipole 389 388 387 -0.87686 + -0.08747 0.00000 0.03991 + -0.45917 + 0.00000 -0.64191 + 0.17008 0.00000 1.10108 +multipole 390 -391 -391 0.90070 + 0.00000 0.00000 -0.38892 + 0.04278 + 0.00000 0.04278 + 0.00000 0.00000 -0.08556 +multipole 391 390 391 -0.62196 + -0.02485 0.00000 0.23676 + -0.53745 + 0.00000 -0.44509 + -0.09945 0.00000 0.98254 +multipole 392 349 393 -0.53491 + 0.20945 0.00000 0.45595 + 0.31894 + 0.00000 -0.99741 + -0.33409 0.00000 0.67847 +multipole 392 364 393 -0.53491 + 0.20945 0.00000 0.45595 + 0.31894 + 0.00000 -0.99741 + -0.33409 0.00000 0.67847 +multipole 393 392 349 0.34636 + 0.05168 0.00000 0.21326 + -0.04514 + 0.00000 -0.08116 + -0.01807 0.00000 0.12630 +multipole 393 392 364 0.34636 + 0.05168 0.00000 0.21326 + -0.04514 + 0.00000 -0.08116 + -0.01807 0.00000 0.12630 +multipole 394 395 349 -0.58166 + 0.26215 0.00000 0.04328 + 0.24279 + 0.00000 -0.44387 + -0.22260 0.00000 0.20108 +multipole 394 395 364 -0.58166 + 0.26215 0.00000 0.04328 + 0.24279 + 0.00000 -0.44387 + -0.22260 0.00000 0.20108 +multipole 395 394 396 1.02369 + 0.00000 0.00000 -0.21311 + -0.08100 + 0.00000 -0.08100 + 0.00000 0.00000 0.16200 +multipole 396 395 394 -0.87686 + -0.08747 0.00000 0.03991 + -0.45917 + 0.00000 -0.64191 + 0.17008 0.00000 1.10108 +multipole 397 357 398 -0.50819 + 0.18120 0.00000 0.42418 + 0.28893 + 0.00000 -1.01628 + -0.48824 0.00000 0.72735 +multipole 397 372 398 -0.50819 + 0.18120 0.00000 0.42418 + 0.28893 + 0.00000 -1.01628 + -0.48824 0.00000 0.72735 +multipole 398 397 357 0.29418 + 0.02971 0.00000 0.13453 + -0.01165 + 0.00000 -0.09373 + 0.01341 0.00000 0.10538 +multipole 398 397 372 0.29418 + 0.02971 0.00000 0.13453 + -0.01165 + 0.00000 -0.09373 + 0.01341 0.00000 0.10538 +multipole 399 400 357 -0.60712 + 0.26215 0.00000 0.04328 + 0.24279 + 0.00000 -0.44387 + -0.22260 0.00000 0.20108 +multipole 399 400 372 -0.60712 + 0.26215 0.00000 0.04328 + 0.24279 + 0.00000 -0.44387 + -0.22260 0.00000 0.20108 +multipole 400 399 401 1.02369 + 0.00000 0.00000 -0.21311 + -0.08100 + 0.00000 -0.08100 + 0.00000 0.00000 0.16200 +multipole 401 400 399 -0.87686 + -0.08747 0.00000 0.03991 + -0.45917 + 0.00000 -0.64191 + 0.17008 0.00000 1.10108 +multipole 402 -403 -403 -0.51966 + 0.00000 0.00000 0.14279 + 0.37928 + 0.00000 -0.41809 + 0.00000 0.00000 0.03881 +multipole 403 402 403 0.25983 + -0.03859 0.00000 -0.05818 + -0.03673 + 0.00000 -0.10739 + -0.00203 0.00000 0.14412 +multipole 404 0 0 1.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 405 0 0 1.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 406 0 0 1.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 407 0 0 1.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 408 0 0 1.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 409 0 0 2.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 410 0 0 2.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 411 0 0 2.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 412 0 0 2.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 413 0 0 -1.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 414 0 0 -1.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 415 0 0 -1.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 +multipole 416 0 0 -1.00000 + 0.00000 0.00000 0.00000 + 0.00000 + 0.00000 0.00000 + 0.00000 0.00000 0.00000 + + + ######################################## + ## ## + ## Dipole Polarizability Parameters ## + ## ## + ######################################## + + +polarize 1 1.0730 0.3900 3 4 9 55 226 247 +polarize 2 1.3340 0.3900 6 +polarize 3 1.3340 0.3900 1 5 7 53 228 230 +polarize 4 0.4960 0.3900 1 +polarize 5 0.8370 0.3900 3 +polarize 6 0.4960 0.3900 2 +polarize 7 1.0730 0.3900 3 9 10 55 226 247 +polarize 8 1.3340 0.3900 12 +polarize 9 1.3340 0.3900 1 7 11 53 228 230 +polarize 10 0.4960 0.3900 7 +polarize 11 0.8370 0.3900 9 +polarize 12 0.4960 0.3900 8 33 44 +polarize 13 1.3340 0.3900 14 +polarize 14 0.4960 0.3900 13 +polarize 15 1.3340 0.3900 16 +polarize 16 0.4960 0.3900 15 +polarize 17 1.3340 0.3900 18 +polarize 18 0.4960 0.3900 17 +polarize 19 1.3340 0.3900 20 +polarize 20 0.4960 0.3900 19 +polarize 21 1.3340 0.3900 22 +polarize 22 0.4960 0.3900 21 +polarize 23 1.3340 0.3900 24 +polarize 24 0.4960 0.3900 23 +polarize 25 1.3340 0.3900 26 +polarize 26 0.4960 0.3900 25 +polarize 27 1.3340 0.3900 28 +polarize 28 0.4960 0.3900 27 +polarize 29 1.3340 0.3900 30 +polarize 30 0.4960 0.3900 29 +polarize 31 1.3340 0.3900 32 +polarize 32 0.4960 0.3900 31 +polarize 33 1.3340 0.3900 12 +polarize 34 1.3340 0.3900 35 36 +polarize 35 0.4960 0.3900 34 +polarize 36 0.8340 0.3900 34 37 +polarize 37 0.4960 0.3900 36 +polarize 38 1.3340 0.3900 39 42 +polarize 39 0.4960 0.3900 38 +polarize 40 1.3340 0.3900 41 +polarize 41 0.4960 0.3900 40 +polarize 42 0.8340 0.3900 38 43 +polarize 43 0.4960 0.3900 42 +polarize 44 1.3340 0.3900 12 +polarize 45 1.3340 0.3900 46 47 49 +polarize 46 0.4960 0.3900 45 +polarize 47 3.3000 0.3900 45 48 +polarize 48 0.4960 0.3900 47 +polarize 49 3.3000 0.3900 45 49 +polarize 50 1.3340 0.3900 51 52 +polarize 51 0.4960 0.3900 50 +polarize 52 3.3000 0.3900 50 +polarize 53 1.0730 0.3900 3 9 55 62 226 247 +polarize 54 1.3340 0.3900 57 +polarize 55 1.3340 0.3900 1 7 53 56 228 230 +polarize 56 0.8370 0.3900 55 +polarize 57 0.4960 0.3900 54 +polarize 58 1.3340 0.3900 59 +polarize 59 0.4960 0.3900 58 +polarize 60 1.3340 0.3900 61 +polarize 61 0.4960 0.3900 60 +polarize 62 1.3340 0.3900 53 63 +polarize 63 0.4960 0.3900 62 +polarize 64 1.3340 0.3900 65 +polarize 65 0.4960 0.3900 64 +polarize 66 1.7500 0.3900 67 +polarize 67 1.7500 0.3900 66 68 69 +polarize 68 0.6960 0.3900 67 +polarize 69 1.7500 0.3900 67 70 71 +polarize 70 0.6960 0.3900 69 +polarize 71 1.7500 0.3900 69 72 +polarize 72 0.6960 0.3900 71 +polarize 73 1.3340 0.3900 74 +polarize 74 0.4960 0.3900 73 +polarize 75 1.7500 0.3900 76 +polarize 76 1.7500 0.3900 75 77 78 +polarize 77 0.6960 0.3900 76 +polarize 78 1.7500 0.3900 76 79 80 +polarize 79 0.6960 0.3900 78 +polarize 80 1.7500 0.3900 78 81 +polarize 81 0.8730 0.3900 80 82 +polarize 82 0.4960 0.3900 81 +polarize 83 1.3340 0.3900 84 +polarize 84 0.4960 0.3900 83 +polarize 85 1.7500 0.3900 86 +polarize 86 1.7500 0.3900 85 87 88 +polarize 87 0.6960 0.3900 86 +polarize 88 1.7500 0.3900 86 89 90 +polarize 89 0.6960 0.3900 88 +polarize 90 1.7500 0.3900 88 91 +polarize 91 0.8370 0.3900 90 +polarize 92 1.3340 0.3900 93 +polarize 93 0.4960 0.3900 92 +polarize 94 1.7500 0.3900 95 97 +polarize 95 1.7500 0.3900 94 96 98 +polarize 96 0.6960 0.3900 95 +polarize 97 1.7500 0.3900 94 100 101 +polarize 98 1.0730 0.3900 95 99 100 +polarize 99 0.4960 0.3900 98 +polarize 100 1.7500 0.3900 97 98 103 +polarize 101 1.7500 0.3900 97 102 105 +polarize 102 0.6960 0.3900 101 +polarize 103 1.7500 0.3900 100 104 107 +polarize 104 0.6960 0.3900 103 +polarize 105 1.7500 0.3900 101 106 107 +polarize 106 0.6960 0.3900 105 +polarize 107 1.7500 0.3900 103 105 108 +polarize 108 0.6960 0.3900 107 +polarize 109 1.3340 0.3900 110 +polarize 110 0.4960 0.3900 109 +polarize 111 1.7500 0.3900 112 114 +polarize 112 1.0730 0.3900 111 113 116 +polarize 113 0.4960 0.3900 112 +polarize 114 1.7500 0.3900 111 115 118 +polarize 115 0.6960 0.3900 114 +polarize 116 1.7500 0.3900 112 117 118 +polarize 117 0.6960 0.3900 116 +polarize 118 1.0730 0.3900 114 116 119 +polarize 119 0.4960 0.3900 118 +polarize 120 1.3340 0.3900 121 +polarize 121 0.4960 0.3900 120 +polarize 122 1.7500 0.3900 123 125 +polarize 123 1.0730 0.3900 122 124 127 +polarize 124 0.4960 0.3900 123 +polarize 125 1.7500 0.3900 122 126 129 +polarize 126 0.6960 0.3900 125 +polarize 127 1.7500 0.3900 123 128 129 +polarize 128 0.6960 0.3900 127 +polarize 129 1.0730 0.3900 125 127 +polarize 130 1.3340 0.3900 131 +polarize 131 0.4960 0.3900 130 +polarize 132 1.7500 0.3900 133 134 +polarize 133 1.0730 0.3900 132 136 +polarize 134 1.7500 0.3900 132 135 138 +polarize 135 0.6960 0.3900 134 +polarize 136 1.7500 0.3900 133 137 138 +polarize 137 0.6960 0.3900 136 +polarize 138 1.0730 0.3900 134 136 139 +polarize 139 0.4960 0.3900 138 +polarize 140 1.3340 0.3900 141 +polarize 141 0.4960 0.3900 140 +polarize 142 1.3340 0.3900 143 +polarize 143 0.8370 0.3900 142 +polarize 144 1.3340 0.3900 145 +polarize 145 0.4960 0.3900 144 +polarize 146 1.3340 0.3900 147 148 +polarize 147 0.8370 0.3900 146 +polarize 148 0.8370 0.3900 146 149 +polarize 149 0.4960 0.3900 148 +polarize 150 1.3340 0.3900 151 +polarize 151 0.4960 0.3900 150 +polarize 152 1.3340 0.3900 153 154 +polarize 153 0.8340 0.3900 152 +polarize 154 1.0730 0.3900 152 155 +polarize 155 0.4960 0.3900 154 +polarize 156 1.3340 0.3900 157 +polarize 157 0.4960 0.3900 156 +polarize 158 1.3340 0.3900 159 +polarize 159 0.4960 0.3900 158 +polarize 160 1.3340 0.3900 161 +polarize 161 0.8370 0.3900 160 +polarize 162 1.3340 0.3900 163 +polarize 163 0.4960 0.3900 162 +polarize 164 1.3340 0.3900 165 +polarize 165 0.4960 0.3900 164 +polarize 166 1.3340 0.3900 167 168 +polarize 167 0.8370 0.3900 166 +polarize 168 0.8370 0.3900 166 169 +polarize 169 0.4960 0.3900 168 +polarize 170 1.3340 0.3900 171 +polarize 171 0.4960 0.3900 170 +polarize 172 1.3340 0.3900 173 +polarize 173 0.4960 0.3900 172 +polarize 174 1.3340 0.3900 175 176 +polarize 175 0.8340 0.3900 174 +polarize 176 1.0730 0.3900 174 177 +polarize 177 0.4960 0.3900 176 +polarize 178 1.3340 0.3900 179 +polarize 179 0.4960 0.3900 178 +polarize 180 1.3340 0.3900 181 182 +polarize 181 0.4960 0.3900 180 +polarize 182 3.3000 0.3900 180 183 +polarize 183 1.3340 0.3900 182 184 +polarize 184 0.4960 0.3900 183 +polarize 185 1.3340 0.3900 186 +polarize 186 0.4960 0.3900 185 +polarize 187 1.3340 0.3900 188 +polarize 188 0.4960 0.3900 187 +polarize 189 1.3340 0.3900 190 +polarize 190 0.4960 0.3900 189 +polarize 191 1.3340 0.3900 192 +polarize 192 0.4960 0.3900 191 +polarize 193 1.0730 0.3900 194 +polarize 195 1.3340 0.3900 196 +polarize 196 0.4960 0.3900 195 +polarize 197 1.3340 0.3900 198 +polarize 198 0.4960 0.3900 197 +polarize 194 0.4960 0.3900 193 +polarize 199 1.3340 0.3900 200 +polarize 200 0.4960 0.3900 199 +polarize 201 1.3340 0.3900 202 203 +polarize 202 0.4960 0.3900 201 +polarize 203 1.0730 0.3900 201 204 +polarize 204 0.4960 0.3900 203 +polarize 205 1.3340 0.3900 206 +polarize 206 0.4960 0.3900 205 +polarize 207 1.3340 0.3900 208 +polarize 208 0.4960 0.3900 207 +polarize 209 1.3340 0.3900 210 211 +polarize 210 0.4960 0.3900 209 +polarize 211 1.0730 0.3900 209 212 213 +polarize 212 0.4960 0.3900 211 +polarize 213 1.3340 0.3900 211 214 +polarize 214 1.0730 0.3900 213 215 +polarize 215 0.4960 0.3900 214 +polarize 216 1.3340 0.3900 217 +polarize 217 0.4960 0.3900 216 +polarize 218 1.3340 0.3900 219 +polarize 219 0.4960 0.3900 218 +polarize 220 1.3340 0.3900 221 +polarize 221 0.4960 0.3900 220 +polarize 222 1.0730 0.3900 223 +polarize 223 0.4960 0.3900 222 +polarize 224 1.3340 0.3900 225 +polarize 225 0.4960 0.3900 224 +polarize 226 1.3340 0.3900 1 7 53 227 +polarize 227 0.8370 0.3900 226 +polarize 228 1.0730 0.3900 3 9 55 229 247 +polarize 229 0.4960 0.3900 228 +polarize 230 1.0730 0.3900 3 9 55 231 247 +polarize 231 0.4960 0.3900 230 +polarize 232 1.3340 0.3900 233 +polarize 233 0.4960 0.3900 232 +polarize 234 1.0730 0.3900 235 +polarize 235 0.4960 0.3900 234 +polarize 236 1.0730 0.3900 237 +polarize 237 0.4960 0.3900 236 +polarize 238 1.3340 0.3900 239 +polarize 239 0.8370 0.3900 238 +polarize 240 1.3340 0.3900 241 242 +polarize 241 0.8370 0.3900 240 +polarize 242 0.8370 0.3900 240 243 +polarize 243 0.4960 0.3900 242 +polarize 244 1.0730 0.3900 245 +polarize 245 0.4960 0.3900 244 +polarize 246 1.3340 0.3900 249 +polarize 247 1.3340 0.3900 1 7 53 228 230 248 +polarize 248 0.8370 0.3900 247 +polarize 249 0.4960 0.3900 246 +polarize 250 1.3340 0.3900 251 +polarize 251 0.4960 0.3900 250 +polarize 252 1.0730 0.3900 253 256 +polarize 253 1.7500 0.3900 252 254 257 +polarize 254 1.7500 0.3900 253 255 260 +polarize 255 1.0730 0.3900 254 256 +polarize 256 1.7500 0.3900 252 255 265 +polarize 257 1.0730 0.3900 253 258 +polarize 258 1.7500 0.3900 257 259 261 +polarize 259 1.0730 0.3900 258 260 +polarize 260 1.7500 0.3900 254 259 +polarize 261 0.6960 0.3900 258 +polarize 262 1.0730 0.3900 263 264 +polarize 263 0.4960 0.3900 262 +polarize 264 0.4960 0.3900 262 +polarize 265 0.6960 0.3900 256 +polarize 266 1.0730 0.3900 267 271 +polarize 267 1.7500 0.3900 266 268 272 +polarize 268 1.0730 0.3900 267 269 +polarize 269 1.7500 0.3900 268 270 +polarize 270 1.7500 0.3900 269 271 276 +polarize 271 1.7500 0.3900 266 270 277 +polarize 272 0.8370 0.3900 267 +polarize 273 1.0730 0.3900 274 275 +polarize 274 0.4960 0.3900 273 +polarize 275 0.4960 0.3900 273 +polarize 276 0.6960 0.3900 270 +polarize 277 0.6960 0.3900 271 +polarize 278 1.0730 0.3900 279 282 +polarize 279 1.7500 0.3900 278 280 283 +polarize 280 1.7500 0.3900 279 281 286 +polarize 281 1.0730 0.3900 280 282 +polarize 282 1.7500 0.3900 278 281 292 +polarize 283 1.0730 0.3900 279 284 +polarize 284 1.7500 0.3900 283 285 +polarize 285 1.0730 0.3900 284 286 287 +polarize 286 1.7500 0.3900 280 285 291 +polarize 287 0.6960 0.3900 285 +polarize 288 1.0730 0.3900 289 290 +polarize 289 0.4960 0.3900 288 +polarize 290 0.4960 0.3900 288 +polarize 291 0.8370 0.3900 286 +polarize 292 0.6960 0.3900 282 +polarize 293 1.0730 0.3900 294 298 +polarize 294 1.7500 0.3900 293 295 299 +polarize 295 1.0730 0.3900 294 296 300 +polarize 296 1.7500 0.3900 295 297 301 +polarize 297 1.7500 0.3900 296 298 +polarize 298 1.7500 0.3900 293 297 304 +polarize 299 0.8370 0.3900 294 +polarize 300 0.6960 0.3900 295 +polarize 301 0.8370 0.3900 296 +polarize 302 1.3340 0.3900 303 +polarize 303 0.4960 0.3900 302 +polarize 304 0.6960 0.3900 298 +polarize 305 1.0730 0.3900 306 310 +polarize 306 1.7500 0.3900 305 307 311 +polarize 307 1.0730 0.3900 306 308 312 +polarize 308 1.7500 0.3900 307 309 313 +polarize 309 1.7500 0.3900 308 310 314 +polarize 310 1.7500 0.3900 305 309 315 +polarize 311 0.8370 0.3900 306 +polarize 312 0.4960 0.3900 307 +polarize 313 0.8370 0.3900 308 +polarize 314 0.6960 0.3900 309 +polarize 315 0.6960 0.3900 310 +polarize 316 0.8370 0.3900 378 +polarize 317 1.3340 0.3900 318 319 +polarize 318 0.4960 0.3900 317 +polarize 319 0.4960 0.3900 317 +polarize 320 1.3340 0.3900 321 +polarize 321 0.4960 0.3900 320 +polarize 322 0.8370 0.3900 +polarize 323 1.3340 0.3900 324 +polarize 324 0.4960 0.3900 323 +polarize 325 1.3340 0.3900 326 +polarize 326 0.4960 0.3900 325 +polarize 327 1.3340 0.3900 328 329 330 +polarize 328 0.4960 0.3900 327 +polarize 329 1.3340 0.3900 327 330 +polarize 330 0.4960 0.3900 329 +polarize 331 0.8370 0.3900 378 +polarize 332 0.8370 0.3900 378 +polarize 333 1.3340 0.3900 334 335 +polarize 334 0.4960 0.3900 333 +polarize 335 0.4960 0.3900 333 +polarize 336 1.3340 0.3900 337 +polarize 337 0.4960 0.3900 336 +polarize 338 0.8370 0.3900 +polarize 339 1.3340 0.3900 340 +polarize 340 0.4960 0.3900 339 +polarize 341 1.3340 0.3900 342 +polarize 342 0.4960 0.3900 341 +polarize 343 1.3340 0.3900 344 345 346 +polarize 344 0.4960 0.3900 343 +polarize 345 1.3340 0.3900 343 346 +polarize 346 0.4960 0.3900 345 +polarize 347 0.8370 0.3900 378 +polarize 348 0.8370 0.3900 390 +polarize 349 1.3340 0.3900 350 351 +polarize 350 0.4960 0.3900 349 +polarize 351 0.4960 0.3900 349 +polarize 352 1.3340 0.3900 353 +polarize 353 0.4960 0.3900 352 +polarize 354 0.8370 0.3900 +polarize 355 1.3340 0.3900 356 +polarize 356 0.4960 0.3900 355 +polarize 357 1.3340 0.3900 358 +polarize 358 0.4960 0.3900 357 +polarize 359 1.3340 0.3900 360 361 +polarize 360 0.4960 0.3900 359 +polarize 361 0.4960 0.3900 359 +polarize 362 0.8370 0.3900 390 +polarize 363 0.8370 0.3900 390 +polarize 364 1.3340 0.3900 365 366 +polarize 365 0.4960 0.3900 364 +polarize 366 0.4960 0.3900 364 +polarize 367 1.3340 0.3900 368 +polarize 368 0.4960 0.3900 367 +polarize 369 0.8370 0.3900 +polarize 370 1.3340 0.3900 371 +polarize 371 0.4960 0.3900 370 +polarize 372 1.3340 0.3900 373 +polarize 373 0.4960 0.3900 372 +polarize 374 1.3340 0.3900 375 376 +polarize 375 0.4960 0.3900 374 +polarize 376 0.4960 0.3900 374 +polarize 377 0.8370 0.3900 390 +polarize 378 1.8280 0.3900 316 331 332 347 379 +polarize 379 0.8370 0.3900 378 +polarize 380 0.8370 0.3900 381 +polarize 381 0.4960 0.3900 380 +polarize 382 0.8370 0.3900 +polarize 383 1.8280 0.3900 384 +polarize 384 0.8370 0.3900 383 +polarize 385 0.8370 0.3900 386 +polarize 386 0.4960 0.3900 385 +polarize 387 0.8370 0.3900 +polarize 388 1.8280 0.3900 389 +polarize 389 0.8370 0.3900 388 +polarize 390 1.8280 0.3900 348 362 363 377 391 +polarize 391 0.8370 0.3900 390 +polarize 392 0.8370 0.3900 393 +polarize 393 0.4960 0.3900 392 +polarize 394 0.8370 0.3900 +polarize 395 1.8280 0.3900 396 +polarize 396 0.8370 0.3900 395 +polarize 397 0.8370 0.3900 398 +polarize 398 0.4960 0.3900 397 +polarize 399 0.8370 0.3900 +polarize 400 1.8280 0.3900 401 +polarize 401 0.8370 0.3900 400 +polarize 402 0.8370 0.3900 403 +polarize 403 0.4960 0.3900 402 +polarize 404 0.0280 0.3900 +polarize 405 0.1200 0.3900 +polarize 406 0.7800 0.3900 +polarize 407 1.3500 0.3900 +polarize 408 2.2600 0.3900 +polarize 409 0.0100 0.0650 +polarize 410 0.0800 0.0952 +polarize 411 0.5500 0.1585 +polarize 412 0.2600 0.2096 +polarize 413 1.3500 0.3900 +polarize 414 4.0000 0.3900 +polarize 415 5.6500 0.3900 +polarize 416 7.2500 0.3900 + + + ######################################## + ## ## + ## Biopolymer Atom Type Conversions ## + ## ## + ######################################## + + +biotype 1 N "Glycine" 1 +biotype 2 CA "Glycine" 2 +biotype 3 C "Glycine" 3 +biotype 4 HN "Glycine" 4 +biotype 5 O "Glycine" 5 +biotype 6 HA "Glycine" 6 +biotype 7 N "Alanine" 7 +biotype 8 CA "Alanine" 8 +biotype 9 C "Alanine" 9 +biotype 10 HN "Alanine" 10 +biotype 11 O "Alanine" 11 +biotype 12 HA "Alanine" 12 +biotype 13 CB "Alanine" 13 +biotype 14 HB "Alanine" 14 +biotype 15 N "Valine" 7 +biotype 16 CA "Valine" 8 +biotype 17 C "Valine" 9 +biotype 18 HN "Valine" 10 +biotype 19 O "Valine" 11 +biotype 20 HA "Valine" 12 +biotype 21 CB "Valine" 15 +biotype 22 HB "Valine" 16 +biotype 23 CG1 "Valine" 17 +biotype 24 HG1 "Valine" 18 +biotype 25 CG2 "Valine" 17 +biotype 26 HG2 "Valine" 18 +biotype 27 N "Leucine" 7 +biotype 28 CA "Leucine" 8 +biotype 29 C "Leucine" 9 +biotype 30 HN "Leucine" 10 +biotype 31 O "Leucine" 11 +biotype 32 HA "Leucine" 12 +biotype 33 CB "Leucine" 19 +biotype 34 HB "Leucine" 20 +biotype 35 CG "Leucine" 21 +biotype 36 HG "Leucine" 22 +biotype 37 CD1 "Leucine" 23 +biotype 38 HD1 "Leucine" 24 +biotype 39 CD2 "Leucine" 23 +biotype 40 HD2 "Leucine" 24 +biotype 41 N "Isoleucine" 7 +biotype 42 CA "Isoleucine" 8 +biotype 43 C "Isoleucine" 9 +biotype 44 HN "Isoleucine" 10 +biotype 45 O "Isoleucine" 11 +biotype 46 HA "Isoleucine" 12 +biotype 47 CB "Isoleucine" 25 +biotype 48 HB "Isoleucine" 26 +biotype 49 CG1 "Isoleucine" 29 +biotype 50 HG1 "Isoleucine" 30 +biotype 51 CG2 "Isoleucine" 27 +biotype 52 HG2 "Isoleucine" 28 +biotype 53 CD "Isoleucine" 31 +biotype 54 HD "Isoleucine" 32 +biotype 55 N "Serine" 7 +biotype 56 CA "Serine" 33 +biotype 57 C "Serine" 9 +biotype 58 HN "Serine" 10 +biotype 59 O "Serine" 11 +biotype 60 HA "Serine" 12 +biotype 61 CB "Serine" 34 +biotype 62 HB "Serine" 35 +biotype 63 OG "Serine" 36 +biotype 64 HG "Serine" 37 +biotype 65 N "Threonine" 7 +biotype 66 CA "Threonine" 33 +biotype 67 C "Threonine" 9 +biotype 68 HN "Threonine" 10 +biotype 69 O "Threonine" 11 +biotype 70 HA "Threonine" 12 +biotype 71 CB "Threonine" 38 +biotype 72 HB "Threonine" 39 +biotype 73 OG1 "Threonine" 42 +biotype 74 HG1 "Threonine" 43 +biotype 75 CG2 "Threonine" 40 +biotype 76 HG2 "Threonine" 41 +biotype 77 N "Cysteine (SH)" 7 +biotype 78 CA "Cysteine (SH)" 44 +biotype 79 C "Cysteine (SH)" 9 +biotype 80 HN "Cysteine (SH)" 10 +biotype 81 O "Cysteine (SH)" 11 +biotype 82 HA "Cysteine (SH)" 12 +biotype 83 CB "Cysteine (SH)" 45 +biotype 84 HB "Cysteine (SH)" 46 +biotype 85 SG "Cysteine (SH)" 47 +biotype 86 HG "Cysteine (SH)" 48 +biotype 87 N "Cystine (SS)" 7 +biotype 88 CA "Cystine (SS)" 44 +biotype 89 C "Cystine (SS)" 9 +biotype 90 HN "Cystine (SS)" 10 +biotype 91 O "Cystine (SS)" 11 +biotype 92 HA "Cystine (SS)" 12 +biotype 93 CB "Cystine (SS)" 45 +biotype 94 HB "Cystine (SS)" 46 +biotype 95 SG "Cystine (SS)" 49 +biotype 96 N "Cysteine (S-)" 7 +biotype 97 CA "Cysteine (S-)" 44 +biotype 98 C "Cysteine (S-)" 9 +biotype 99 HN "Cysteine (S-)" 10 +biotype 100 O "Cysteine (S-)" 11 +biotype 101 HA "Cysteine (S-)" 12 +biotype 102 CB "Cysteine (S-)" 50 +biotype 103 HB "Cysteine (S-)" 51 +biotype 104 SG "Cysteine (S-)" 52 +biotype 105 N "Proline" 53 +biotype 106 CA "Proline" 54 +biotype 107 C "Proline" 55 +biotype 108 O "Proline" 56 +biotype 109 HA "Proline" 57 +biotype 110 CB "Proline" 58 +biotype 111 HB "Proline" 59 +biotype 112 CG "Proline" 60 +biotype 113 HG "Proline" 61 +biotype 114 CD "Proline" 62 +biotype 115 HD "Proline" 63 +biotype 116 N "Phenylalanine" 7 +biotype 117 CA "Phenylalanine" 8 +biotype 118 C "Phenylalanine" 9 +biotype 119 HN "Phenylalanine" 10 +biotype 120 O "Phenylalanine" 11 +biotype 121 HA "Phenylalanine" 12 +biotype 122 CB "Phenylalanine" 64 +biotype 123 HB "Phenylalanine" 65 +biotype 124 CG "Phenylalanine" 66 +biotype 125 CD "Phenylalanine" 67 +biotype 126 HD "Phenylalanine" 68 +biotype 127 CE "Phenylalanine" 69 +biotype 128 HE "Phenylalanine" 70 +biotype 129 CZ "Phenylalanine" 71 +biotype 130 HZ "Phenylalanine" 72 +biotype 131 N "Tyrosine" 7 +biotype 132 CA "Tyrosine" 8 +biotype 133 C "Tyrosine" 9 +biotype 134 HN "Tyrosine" 10 +biotype 135 O "Tyrosine" 11 +biotype 136 HA "Tyrosine" 12 +biotype 137 CB "Tyrosine" 73 +biotype 138 HB "Tyrosine" 74 +biotype 139 CG "Tyrosine" 75 +biotype 140 CD "Tyrosine" 76 +biotype 141 HD "Tyrosine" 77 +biotype 142 CE "Tyrosine" 78 +biotype 143 HE "Tyrosine" 79 +biotype 144 CZ "Tyrosine" 80 +biotype 145 OH "Tyrosine" 81 +biotype 146 HH "Tyrosine" 82 +biotype 147 N "Tyrosine (O-)" 7 +biotype 148 CA "Tyrosine (O-)" 8 +biotype 149 C "Tyrosine (O-)" 9 +biotype 150 HN "Tyrosine (O-)" 10 +biotype 151 O "Tyrosine (O-)" 11 +biotype 152 HA "Tyrosine (O-)" 12 +biotype 153 CB "Tyrosine (O-)" 83 +biotype 154 HB "Tyrosine (O-)" 84 +biotype 155 CG "Tyrosine (O-)" 85 +biotype 156 CD "Tyrosine (O-)" 86 +biotype 157 HD "Tyrosine (O-)" 87 +biotype 158 CE "Tyrosine (O-)" 88 +biotype 159 HE "Tyrosine (O-)" 89 +biotype 160 CZ "Tyrosine (O-)" 90 +biotype 161 OH "Tyrosine (O-)" 91 +biotype 162 N "Tryptophan" 7 +biotype 163 CA "Tryptophan" 8 +biotype 164 C "Tryptophan" 9 +biotype 165 HN "Tryptophan" 10 +biotype 166 O "Tryptophan" 11 +biotype 167 HA "Tryptophan" 12 +biotype 168 CB "Tryptophan" 92 +biotype 169 HB "Tryptophan" 93 +biotype 170 CG "Tryptophan" 94 +biotype 171 CD1 "Tryptophan" 95 +biotype 172 HD1 "Tryptophan" 96 +biotype 173 CD2 "Tryptophan" 97 +biotype 174 NE1 "Tryptophan" 98 +biotype 175 HE1 "Tryptophan" 99 +biotype 176 CE2 "Tryptophan" 100 +biotype 177 CE3 "Tryptophan" 101 +biotype 178 HE3 "Tryptophan" 102 +biotype 179 CZ2 "Tryptophan" 103 +biotype 180 HZ2 "Tryptophan" 104 +biotype 181 CZ3 "Tryptophan" 105 +biotype 182 HZ3 "Tryptophan" 106 +biotype 183 CH2 "Tryptophan" 107 +biotype 184 HH2 "Tryptophan" 108 +biotype 185 N "Histidine (+)" 7 +biotype 186 CA "Histidine (+)" 8 +biotype 187 C "Histidine (+)" 9 +biotype 188 HN "Histidine (+)" 10 +biotype 189 O "Histidine (+)" 11 +biotype 190 HA "Histidine (+)" 12 +biotype 191 CB "Histidine (+)" 109 +biotype 192 HB "Histidine (+)" 110 +biotype 193 CG "Histidine (+)" 111 +biotype 194 ND1 "Histidine (+)" 112 +biotype 195 HD1 "Histidine (+)" 113 +biotype 196 CD2 "Histidine (+)" 114 +biotype 197 HD2 "Histidine (+)" 115 +biotype 198 CE1 "Histidine (+)" 116 +biotype 199 HE1 "Histidine (+)" 117 +biotype 200 NE2 "Histidine (+)" 118 +biotype 201 HE2 "Histidine (+)" 119 +biotype 202 N "Histidine (HD)" 7 +biotype 203 CA "Histidine (HD)" 8 +biotype 204 C "Histidine (HD)" 9 +biotype 205 HN "Histidine (HD)" 10 +biotype 206 O "Histidine (HD)" 11 +biotype 207 HA "Histidine (HD)" 12 +biotype 208 CB "Histidine (HD)" 120 +biotype 209 HB "Histidine (HD)" 121 +biotype 210 CG "Histidine (HD)" 122 +biotype 211 ND1 "Histidine (HD)" 123 +biotype 212 HD1 "Histidine (HD)" 124 +biotype 213 CD2 "Histidine (HD)" 125 +biotype 214 HD2 "Histidine (HD)" 126 +biotype 215 CE1 "Histidine (HD)" 127 +biotype 216 HE1 "Histidine (HD)" 128 +biotype 217 NE2 "Histidine (HD)" 129 +biotype 218 N "Histidine (HE)" 7 +biotype 219 CA "Histidine (HE)" 8 +biotype 220 C "Histidine (HE)" 9 +biotype 221 HN "Histidine (HE)" 10 +biotype 222 O "Histidine (HE)" 11 +biotype 223 HA "Histidine (HE)" 12 +biotype 224 CB "Histidine (HE)" 130 +biotype 225 HB "Histidine (HE)" 131 +biotype 226 CG "Histidine (HE)" 132 +biotype 227 ND1 "Histidine (HE)" 133 +biotype 228 CD2 "Histidine (HE)" 134 +biotype 229 HD2 "Histidine (HE)" 135 +biotype 230 CE1 "Histidine (HE)" 136 +biotype 231 HE1 "Histidine (HE)" 137 +biotype 232 NE2 "Histidine (HE)" 138 +biotype 233 HE2 "Histidine (HE)" 139 +biotype 234 N "Aspartic Acid" 7 +biotype 235 CA "Aspartic Acid" 8 +biotype 236 C "Aspartic Acid" 9 +biotype 237 HN "Aspartic Acid" 10 +biotype 238 O "Aspartic Acid" 11 +biotype 239 HA "Aspartic Acid" 12 +biotype 240 CB "Aspartic Acid" 140 +biotype 241 HB "Aspartic Acid" 141 +biotype 242 CG "Aspartic Acid" 142 +biotype 243 OD "Aspartic Acid" 143 +biotype 244 N "Aspartic Acid (COOH)" 7 +biotype 245 CA "Aspartic Acid (COOH)" 8 +biotype 246 C "Aspartic Acid (COOH)" 9 +biotype 247 HN "Aspartic Acid (COOH)" 10 +biotype 248 O "Aspartic Acid (COOH)" 11 +biotype 249 HA "Aspartic Acid (COOH)" 12 +biotype 250 CB "Aspartic Acid (COOH)" 144 +biotype 251 HB "Aspartic Acid (COOH)" 145 +biotype 252 CG "Aspartic Acid (COOH)" 146 +biotype 253 OD1 "Aspartic Acid (COOH)" 147 +biotype 254 OD2 "Aspartic Acid (COOH)" 148 +biotype 255 HD2 "Aspartic Acid (COOH)" 149 +biotype 256 N "Asparagine" 7 +biotype 257 CA "Asparagine" 8 +biotype 258 C "Asparagine" 9 +biotype 259 HN "Asparagine" 10 +biotype 260 O "Asparagine" 11 +biotype 261 HA "Asparagine" 12 +biotype 262 CB "Asparagine" 150 +biotype 263 HB "Asparagine" 151 +biotype 264 CG "Asparagine" 152 +biotype 265 OD1 "Asparagine" 153 +biotype 266 ND2 "Asparagine" 154 +biotype 267 HD2 "Asparagine" 155 +biotype 268 N "Glutamic Acid" 7 +biotype 269 CA "Glutamic Acid" 8 +biotype 270 C "Glutamic Acid" 9 +biotype 271 HN "Glutamic Acid" 10 +biotype 272 O "Glutamic Acid" 11 +biotype 273 HA "Glutamic Acid" 12 +biotype 274 CB "Glutamic Acid" 156 +biotype 275 HB "Glutamic Acid" 157 +biotype 276 CG "Glutamic Acid" 158 +biotype 277 HG "Glutamic Acid" 159 +biotype 278 CD "Glutamic Acid" 160 +biotype 279 OE "Glutamic Acid" 161 +biotype 280 N "Glutamic Acid (COOH)" 7 +biotype 281 CA "Glutamic Acid (COOH)" 8 +biotype 282 C "Glutamic Acid (COOH)" 9 +biotype 283 HN "Glutamic Acid (COOH)" 10 +biotype 284 O "Glutamic Acid (COOH)" 11 +biotype 285 HA "Glutamic Acid (COOH)" 12 +biotype 286 CB "Glutamic Acid (COOH)" 162 +biotype 287 HB "Glutamic Acid (COOH)" 163 +biotype 288 CG "Glutamic Acid (COOH)" 164 +biotype 289 HG "Glutamic Acid (COOH)" 165 +biotype 290 CD "Glutamic Acid (COOH)" 166 +biotype 291 OE1 "Glutamic Acid (COOH)" 167 +biotype 292 OE2 "Glutamic Acid (COOH)" 168 +biotype 293 HE2 "Glutamic Acid (COOH)" 169 +biotype 294 N "Glutamine" 7 +biotype 295 CA "Glutamine" 8 +biotype 296 C "Glutamine" 9 +biotype 297 HN "Glutamine" 10 +biotype 298 O "Glutamine" 11 +biotype 299 HA "Glutamine" 12 +biotype 300 CB "Glutamine" 170 +biotype 301 HB "Glutamine" 171 +biotype 302 CG "Glutamine" 172 +biotype 303 HG "Glutamine" 173 +biotype 304 CD "Glutamine" 174 +biotype 305 OE1 "Glutamine" 175 +biotype 306 NE2 "Glutamine" 176 +biotype 307 HE2 "Glutamine" 177 +biotype 308 N "Methionine" 7 +biotype 309 CA "Methionine" 8 +biotype 310 C "Methionine" 9 +biotype 311 HN "Methionine" 10 +biotype 312 O "Methionine" 11 +biotype 313 HA "Methionine" 12 +biotype 314 CB "Methionine" 178 +biotype 315 HB "Methionine" 179 +biotype 316 CG "Methionine" 180 +biotype 317 HG "Methionine" 181 +biotype 318 SD "Methionine" 182 +biotype 319 CE "Methionine" 183 +biotype 320 HE "Methionine" 184 +biotype 321 N "Lysine" 7 +biotype 322 CA "Lysine" 8 +biotype 323 C "Lysine" 9 +biotype 324 HN "Lysine" 10 +biotype 325 O "Lysine" 11 +biotype 326 HA "Lysine" 12 +biotype 327 CB "Lysine" 185 +biotype 328 HB "Lysine" 186 +biotype 329 CG "Lysine" 187 +biotype 330 HG "Lysine" 188 +biotype 331 CD "Lysine" 189 +biotype 332 HD "Lysine" 190 +biotype 333 CE "Lysine" 191 +biotype 334 HE "Lysine" 192 +biotype 335 NZ "Lysine" 193 +biotype 336 HZ "Lysine" 194 +biotype 337 N "Lysine (NH2)" 7 +biotype 338 CA "Lysine (NH2)" 8 +biotype 339 C "Lysine (NH2)" 9 +biotype 340 HN "Lysine (NH2)" 10 +biotype 341 O "Lysine (NH2)" 11 +biotype 342 HA "Lysine (NH2)" 12 +biotype 343 CB "Lysine (NH2)" 195 +biotype 344 HB "Lysine (NH2)" 196 +biotype 345 CG "Lysine (NH2)" 197 +biotype 346 HG "Lysine (NH2)" 198 +biotype 347 CD "Lysine (NH2)" 199 +biotype 348 HD "Lysine (NH2)" 200 +biotype 349 CE "Lysine (NH2)" 201 +biotype 350 HE "Lysine (NH2)" 202 +biotype 351 NZ "Lysine (NH2)" 203 +biotype 352 HZ "Lysine (NH2)" 204 +biotype 353 N "Arginine" 7 +biotype 354 CA "Arginine" 8 +biotype 355 C "Arginine" 9 +biotype 356 HN "Arginine" 10 +biotype 357 O "Arginine" 11 +biotype 358 HA "Arginine" 12 +biotype 359 CB "Arginine" 205 +biotype 360 HB "Arginine" 206 +biotype 361 CG "Arginine" 207 +biotype 362 HG "Arginine" 208 +biotype 363 CD "Arginine" 209 +biotype 364 HD "Arginine" 210 +biotype 365 NE "Arginine" 211 +biotype 366 HE "Arginine" 212 +biotype 367 CZ "Arginine" 213 +biotype 368 NH "Arginine" 214 +biotype 369 HH "Arginine" 215 +biotype 370 N "Ornithine" 7 +biotype 371 CA "Ornithine" 8 +biotype 372 C "Ornithine" 9 +biotype 373 HN "Ornithine" 10 +biotype 374 O "Ornithine" 11 +biotype 375 HA "Ornithine" 12 +biotype 376 CB "Ornithine" 216 +biotype 377 HB "Ornithine" 217 +biotype 378 CG "Ornithine" 218 +biotype 379 HG "Ornithine" 219 +biotype 380 CD "Ornithine" 220 +biotype 381 HD "Ornithine" 221 +biotype 382 NE "Ornithine" 222 +biotype 383 HE "Ornithine" 223 +biotype 384 N "MethylAlanine (AIB)" -1 +biotype 385 CA "MethylAlanine (AIB)" -1 +biotype 386 C "MethylAlanine (AIB)" -1 +biotype 387 HN "MethylAlanine (AIB)" -1 +biotype 388 O "MethylAlanine (AIB)" -1 +biotype 389 CB "MethylAlanine (AIB)" -1 +biotype 390 HB "MethylAlanine (AIB)" -1 +biotype 391 N "Pyroglutamic Acid" -1 +biotype 392 CA "Pyroglutamic Acid" -1 +biotype 393 C "Pyroglutamic Acid" -1 +biotype 394 HN "Pyroglutamic Acid" -1 +biotype 395 O "Pyroglutamic Acid" -1 +biotype 396 HA "Pyroglutamic Acid" -1 +biotype 397 CB "Pyroglutamic Acid" -1 +biotype 398 HB "Pyroglutamic Acid" -1 +biotype 399 CG "Pyroglutamic Acid" -1 +biotype 400 HG "Pyroglutamic Acid" -1 +biotype 401 CD "Pyroglutamic Acid" -1 +biotype 402 OE "Pyroglutamic Acid" -1 +biotype 403 N "N-Terminal GLY" 234 +biotype 404 CA "N-Terminal GLY" 2 +biotype 405 C "N-Terminal GLY" 3 +biotype 406 HN "N-Terminal GLY" 235 +biotype 407 O "N-Terminal GLY" 5 +biotype 408 HA "N-Terminal GLY" 6 +biotype 409 N "N-Terminal ALA" 234 +biotype 410 CA "N-Terminal ALA" 8 +biotype 411 C "N-Terminal ALA" 9 +biotype 412 HN "N-Terminal ALA" 235 +biotype 413 O "N-Terminal ALA" 11 +biotype 414 HA "N-Terminal ALA" 12 +biotype 415 N "N-Terminal VAL" 234 +biotype 416 CA "N-Terminal VAL" 8 +biotype 417 C "N-Terminal VAL" 9 +biotype 418 HN "N-Terminal VAL" 235 +biotype 419 O "N-Terminal VAL" 11 +biotype 420 HA "N-Terminal VAL" 12 +biotype 421 N "N-Terminal LEU" 234 +biotype 422 CA "N-Terminal LEU" 8 +biotype 423 C "N-Terminal LEU" 9 +biotype 424 HN "N-Terminal LEU" 235 +biotype 425 O "N-Terminal LEU" 11 +biotype 426 HA "N-Terminal LEU" 12 +biotype 427 N "N-Terminal ILE" 234 +biotype 428 CA "N-Terminal ILE" 8 +biotype 429 C "N-Terminal ILE" 9 +biotype 430 HN "N-Terminal ILE" 235 +biotype 431 O "N-Terminal ILE" 11 +biotype 432 HA "N-Terminal ILE" 12 +biotype 433 N "N-Terminal SER" 234 +biotype 434 CA "N-Terminal SER" 33 +biotype 435 C "N-Terminal SER" 9 +biotype 436 HN "N-Terminal SER" 235 +biotype 437 O "N-Terminal SER" 11 +biotype 438 HA "N-Terminal SER" 12 +biotype 439 N "N-Terminal THR" 234 +biotype 440 CA "N-Terminal THR" 33 +biotype 441 C "N-Terminal THR" 9 +biotype 442 HN "N-Terminal THR" 235 +biotype 443 O "N-Terminal THR" 11 +biotype 444 HA "N-Terminal THR" 12 +biotype 445 N "N-Terminal CYS (SH)" 234 +biotype 446 CA "N-Terminal CYS (SH)" 44 +biotype 447 C "N-Terminal CYS (SH)" 9 +biotype 448 HN "N-Terminal CYS (SH)" 235 +biotype 449 O "N-Terminal CYS (SH)" 11 +biotype 450 HA "N-Terminal CYS (SH)" 12 +biotype 451 N "N-Terminal CYX (SS)" 234 +biotype 452 CA "N-Terminal CYX (SS)" 44 +biotype 453 C "N-Terminal CYX (SS)" 9 +biotype 454 HN "N-Terminal CYX (SS)" 235 +biotype 455 O "N-Terminal CYX (SS)" 11 +biotype 456 HA "N-Terminal CYX (SS)" 12 +biotype 457 N "N-Terminal CYD (S-)" 234 +biotype 458 CA "N-Terminal CYD (S-)" 44 +biotype 459 C "N-Terminal CYD (S-)" 9 +biotype 460 HN "N-Terminal CYD (S-)" 235 +biotype 461 O "N-Terminal CYD (S-)" 11 +biotype 462 HA "N-Terminal CYD (S-)" 12 +biotype 463 N "N-Terminal PRO" 244 +biotype 464 CA "N-Terminal PRO" 246 +biotype 465 C "N-Terminal PRO" 247 +biotype 466 HN "N-Terminal PRO" 245 +biotype 467 O "N-Terminal PRO" 248 +biotype 468 HA "N-Terminal PRO" 249 +biotype 469 CD "N-Terminal PRO" 250 +biotype 470 HD "N-Terminal PRO" 251 +biotype 471 N "N-Terminal PHE" 234 +biotype 472 CA "N-Terminal PHE" 8 +biotype 473 C "N-Terminal PHE" 9 +biotype 474 HN "N-Terminal PHE" 235 +biotype 475 O "N-Terminal PHE" 11 +biotype 476 HA "N-Terminal PHE" 12 +biotype 477 N "N-Terminal TYR" 234 +biotype 478 CA "N-Terminal TYR" 8 +biotype 479 C "N-Terminal TYR" 9 +biotype 480 HN "N-Terminal TYR" 235 +biotype 481 O "N-Terminal TYR" 11 +biotype 482 HA "N-Terminal TYR" 12 +biotype 483 N "N-Terminal TYD (O-)" 234 +biotype 484 CA "N-Terminal TYD (O-)" 8 +biotype 485 C "N-Terminal TYD (O-)" 9 +biotype 486 HN "N-Terminal TYD (O-)" 235 +biotype 487 O "N-Terminal TYD (O-)" 11 +biotype 488 HA "N-Terminal TYD (O-)" 12 +biotype 489 N "N-Terminal TRP" 234 +biotype 490 CA "N-Terminal TRP" 8 +biotype 491 C "N-Terminal TRP" 9 +biotype 492 HN "N-Terminal TRP" 235 +biotype 493 O "N-Terminal TRP" 11 +biotype 494 HA "N-Terminal TRP" 12 +biotype 495 N "N-Terminal HIS (+)" 234 +biotype 496 CA "N-Terminal HIS (+)" 8 +biotype 497 C "N-Terminal HIS (+)" 9 +biotype 498 HN "N-Terminal HIS (+)" 235 +biotype 499 O "N-Terminal HIS (+)" 11 +biotype 500 HA "N-Terminal HIS (+)" 12 +biotype 501 N "N-Terminal HIS (HD)" 234 +biotype 502 CA "N-Terminal HIS (HD)" 8 +biotype 503 C "N-Terminal HIS (HD)" 9 +biotype 504 HN "N-Terminal HIS (HD)" 235 +biotype 505 O "N-Terminal HIS (HD)" 11 +biotype 506 HA "N-Terminal HIS (HD)" 12 +biotype 507 N "N-Terminal HIS (HE)" 234 +biotype 508 CA "N-Terminal HIS (HE)" 8 +biotype 509 C "N-Terminal HIS (HE)" 9 +biotype 510 HN "N-Terminal HIS (HE)" 235 +biotype 511 O "N-Terminal HIS (HE)" 11 +biotype 512 HA "N-Terminal HIS (HE)" 12 +biotype 513 N "N-Terminal ASP" 234 +biotype 514 CA "N-Terminal ASP" 8 +biotype 515 C "N-Terminal ASP" 9 +biotype 516 HN "N-Terminal ASP" 235 +biotype 517 O "N-Terminal ASP" 11 +biotype 518 HA "N-Terminal ASP" 12 +biotype 519 N "N-Terminal ASH (COOH)" 234 +biotype 520 CA "N-Terminal ASH (COOH)" 8 +biotype 521 C "N-Terminal ASH (COOH)" 9 +biotype 522 HN "N-Terminal ASH (COOH)" 235 +biotype 523 O "N-Terminal ASH (COOH)" 11 +biotype 524 HA "N-Terminal ASH (COOH)" 12 +biotype 525 N "N-Terminal ASN" 234 +biotype 526 CA "N-Terminal ASN" 8 +biotype 527 C "N-Terminal ASN" 9 +biotype 528 HN "N-Terminal ASN" 235 +biotype 529 O "N-Terminal ASN" 11 +biotype 530 HA "N-Terminal ASN" 12 +biotype 531 N "N-Terminal GLU" 234 +biotype 532 CA "N-Terminal GLU" 8 +biotype 533 C "N-Terminal GLU" 9 +biotype 534 HN "N-Terminal GLU" 235 +biotype 535 O "N-Terminal GLU" 11 +biotype 536 HA "N-Terminal GLU" 12 +biotype 537 N "N-Terminal GLH (COOH)" 234 +biotype 538 CA "N-Terminal GLH (COOH)" 8 +biotype 539 C "N-Terminal GLH (COOH)" 9 +biotype 540 HN "N-Terminal GLH (COOH)" 235 +biotype 541 O "N-Terminal GLH (COOH)" 11 +biotype 542 HA "N-Terminal GLH (COOH)" 12 +biotype 543 N "N-Terminal GLN" 234 +biotype 544 CA "N-Terminal GLN" 8 +biotype 545 C "N-Terminal GLN" 9 +biotype 546 HN "N-Terminal GLN" 235 +biotype 547 O "N-Terminal GLN" 11 +biotype 548 HA "N-Terminal GLN" 12 +biotype 549 N "N-Terminal MET" 234 +biotype 550 CA "N-Terminal MET" 8 +biotype 551 C "N-Terminal MET" 9 +biotype 552 HN "N-Terminal MET" 235 +biotype 553 O "N-Terminal MET" 11 +biotype 554 HA "N-Terminal MET" 12 +biotype 555 N "N-Terminal LYS" 234 +biotype 556 CA "N-Terminal LYS" 8 +biotype 557 C "N-Terminal LYS" 9 +biotype 558 HN "N-Terminal LYS" 235 +biotype 559 O "N-Terminal LYS" 11 +biotype 560 HA "N-Terminal LYS" 12 +biotype 561 N "N-Terminal LYD (NH2)" 234 +biotype 562 CA "N-Terminal LYD (NH2)" 8 +biotype 563 C "N-Terminal LYD (NH2)" 9 +biotype 564 HN "N-Terminal LYD (NH2)" 235 +biotype 565 O "N-Terminal LYD (NH2)" 11 +biotype 566 HA "N-Terminal LYD (NH2)" 12 +biotype 567 N "N-Terminal ARG" 234 +biotype 568 CA "N-Terminal ARG" 8 +biotype 569 C "N-Terminal ARG" 9 +biotype 570 HN "N-Terminal ARG" 235 +biotype 571 O "N-Terminal ARG" 11 +biotype 572 HA "N-Terminal ARG" 12 +biotype 573 N "N-Terminal ORN" 234 +biotype 574 CA "N-Terminal ORN" 8 +biotype 575 C "N-Terminal ORN" 9 +biotype 576 HN "N-Terminal ORN" 235 +biotype 577 O "N-Terminal ORN" 11 +biotype 578 HA "N-Terminal ORN" 12 +biotype 579 N "N-Terminal AIB" -1 +biotype 580 CA "N-Terminal AIB" -1 +biotype 581 C "N-Terminal AIB" -1 +biotype 582 HN "N-Terminal AIB" -1 +biotype 583 O "N-Terminal AIB" -1 +biotype 584 N "C-Terminal GLY" 1 +biotype 585 CA "C-Terminal GLY" 2 +biotype 586 C "C-Terminal GLY" 238 +biotype 587 HN "C-Terminal GLY" 4 +biotype 588 OXT "C-Terminal GLY" 239 +biotype 589 HA "C-Terminal GLY" 6 +biotype 590 N "C-Terminal ALA" 7 +biotype 591 CA "C-Terminal ALA" 8 +biotype 592 C "C-Terminal ALA" 238 +biotype 593 HN "C-Terminal ALA" 10 +biotype 594 OXT "C-Terminal ALA" 239 +biotype 595 HA "C-Terminal ALA" 12 +biotype 596 N "C-Terminal VAL" 7 +biotype 597 CA "C-Terminal VAL" 8 +biotype 598 C "C-Terminal VAL" 238 +biotype 599 HN "C-Terminal VAL" 10 +biotype 600 OXT "C-Terminal VAL" 239 +biotype 601 HA "C-Terminal VAL" 12 +biotype 602 N "C-Terminal LEU" 7 +biotype 603 CA "C-Terminal LEU" 8 +biotype 604 C "C-Terminal LEU" 238 +biotype 605 HN "C-Terminal LEU" 10 +biotype 606 OXT "C-Terminal LEU" 239 +biotype 607 HA "C-Terminal LEU" 12 +biotype 608 N "C-Terminal ILE" 7 +biotype 609 CA "C-Terminal ILE" 8 +biotype 610 C "C-Terminal ILE" 238 +biotype 611 HN "C-Terminal ILE" 10 +biotype 612 OXT "C-Terminal ILE" 239 +biotype 613 HA "C-Terminal ILE" 12 +biotype 614 N "C-Terminal SER" 7 +biotype 615 CA "C-Terminal SER" 33 +biotype 616 C "C-Terminal SER" 238 +biotype 617 HN "C-Terminal SER" 10 +biotype 618 OXT "C-Terminal SER" 239 +biotype 619 HA "C-Terminal SER" 12 +biotype 620 N "C-Terminal THR" 7 +biotype 621 CA "C-Terminal THR" 33 +biotype 622 C "C-Terminal THR" 238 +biotype 623 HN "C-Terminal THR" 10 +biotype 624 OXT "C-Terminal THR" 239 +biotype 625 HA "C-Terminal THR" 12 +biotype 626 N "C-Terminal CYS (SH)" 7 +biotype 627 CA "C-Terminal CYS (SH)" 44 +biotype 628 C "C-Terminal CYS (SH)" 238 +biotype 629 HN "C-Terminal CYS (SH)" 10 +biotype 630 OXT "C-Terminal CYS (SH)" 239 +biotype 631 HA "C-Terminal CYS (SH)" 12 +biotype 632 N "C-Terminal CYX (SS)" 7 +biotype 633 CA "C-Terminal CYX (SS)" 44 +biotype 634 C "C-Terminal CYX (SS)" 238 +biotype 635 HN "C-Terminal CYX (SS)" 10 +biotype 636 OXT "C-Terminal CYX (SS)" 239 +biotype 637 HA "C-Terminal CYX (SS)" 12 +biotype 638 N "C-Terminal CYD (S-)" 7 +biotype 639 CA "C-Terminal CYD (S-)" 44 +biotype 640 C "C-Terminal CYD (S-)" 238 +biotype 641 HN "C-Terminal CYD (S-)" 10 +biotype 642 OXT "C-Terminal CYD (S-)" 239 +biotype 643 HA "C-Terminal CYD (S-)" 12 +biotype 644 N "C-Terminal PRO" 53 +biotype 645 CA "C-Terminal PRO" 54 +biotype 646 C "C-Terminal PRO" 238 +biotype 647 OXT "C-Terminal PRO" 239 +biotype 648 HA "C-Terminal PRO" 57 +biotype 649 N "C-Terminal PHE" 7 +biotype 650 CA "C-Terminal PHE" 8 +biotype 651 C "C-Terminal PHE" 238 +biotype 652 HN "C-Terminal PHE" 10 +biotype 653 OXT "C-Terminal PHE" 239 +biotype 654 HA "C-Terminal PHE" 12 +biotype 655 N "C-Terminal TYR" 7 +biotype 656 CA "C-Terminal TYR" 8 +biotype 657 C "C-Terminal TYR" 238 +biotype 658 HN "C-Terminal TYR" 10 +biotype 659 OXT "C-Terminal TYR" 239 +biotype 660 HA "C-Terminal TYR" 12 +biotype 661 N "C-Terminal TYD (O-)" 7 +biotype 662 CA "C-Terminal TYD (O-)" 8 +biotype 663 C "C-Terminal TYD (O-)" 238 +biotype 664 HN "C-Terminal TYD (O-)" 10 +biotype 665 OXT "C-Terminal TYD (O-)" 239 +biotype 666 HA "C-Terminal TYD (O-)" 12 +biotype 667 N "C-Terminal TRP" 7 +biotype 668 CA "C-Terminal TRP" 8 +biotype 669 C "C-Terminal TRP" 238 +biotype 670 HN "C-Terminal TRP" 10 +biotype 671 OXT "C-Terminal TRP" 239 +biotype 672 HA "C-Terminal TRP" 12 +biotype 673 N "C-Terminal HIS (+)" 7 +biotype 674 CA "C-Terminal HIS (+)" 8 +biotype 675 C "C-Terminal HIS (+)" 238 +biotype 676 HN "C-Terminal HIS (+)" 10 +biotype 677 OXT "C-Terminal HIS (+)" 239 +biotype 678 HA "C-Terminal HIS (+)" 12 +biotype 679 N "C-Terminal HIS (HD)" 7 +biotype 680 CA "C-Terminal HIS (HD)" 8 +biotype 681 C "C-Terminal HIS (HD)" 238 +biotype 682 HN "C-Terminal HIS (HD)" 10 +biotype 683 OXT "C-Terminal HIS (HD)" 239 +biotype 684 HA "C-Terminal HIS (HD)" 12 +biotype 685 N "C-Terminal HIS (HE)" 7 +biotype 686 CA "C-Terminal HIS (HE)" 8 +biotype 687 C "C-Terminal HIS (HE)" 238 +biotype 688 HN "C-Terminal HIS (HE)" 10 +biotype 689 OXT "C-Terminal HIS (HE)" 239 +biotype 690 HA "C-Terminal HIS (HE)" 12 +biotype 691 N "C-Terminal ASP" 7 +biotype 692 CA "C-Terminal ASP" 8 +biotype 693 C "C-Terminal ASP" 238 +biotype 694 HN "C-Terminal ASP" 10 +biotype 695 OXT "C-Terminal ASP" 239 +biotype 696 HA "C-Terminal ASP" 12 +biotype 697 N "C-Terminal ASH (COOH)" 7 +biotype 698 CA "C-Terminal ASH (COOH)" 8 +biotype 699 C "C-Terminal ASH (COOH)" 238 +biotype 700 HN "C-Terminal ASH (COOH)" 10 +biotype 701 OXT "C-Terminal ASH (COOH)" 239 +biotype 702 HA "C-Terminal ASH (COOH)" 12 +biotype 703 N "C-Terminal ASN" 7 +biotype 704 CA "C-Terminal ASN" 8 +biotype 705 C "C-Terminal ASN" 238 +biotype 706 HN "C-Terminal ASN" 10 +biotype 707 OXT "C-Terminal ASN" 239 +biotype 708 HA "C-Terminal ASN" 12 +biotype 709 N "C-Terminal GLU" 7 +biotype 710 CA "C-Terminal GLU" 8 +biotype 711 C "C-Terminal GLU" 238 +biotype 712 HN "C-Terminal GLU" 10 +biotype 713 OXT "C-Terminal GLU" 239 +biotype 714 HA "C-Terminal GLU" 12 +biotype 715 N "C-Terminal GLH (COOH)" 7 +biotype 716 CA "C-Terminal GLH (COOH)" 8 +biotype 717 C "C-Terminal GLH (COOH)" 238 +biotype 718 HN "C-Terminal GLH (COOH)" 10 +biotype 719 OXT "C-Terminal GLH (COOH)" 239 +biotype 720 HA "C-Terminal GLH (COOH)" 12 +biotype 721 N "C-Terminal GLN" 7 +biotype 722 CA "C-Terminal GLN" 8 +biotype 723 C "C-Terminal GLN" 238 +biotype 724 HN "C-Terminal GLN" 10 +biotype 725 OXT "C-Terminal GLN" 239 +biotype 726 HA "C-Terminal GLN" 12 +biotype 727 N "C-Terminal MET" 7 +biotype 728 CA "C-Terminal MET" 8 +biotype 729 C "C-Terminal MET" 238 +biotype 730 HN "C-Terminal MET" 10 +biotype 731 OXT "C-Terminal MET" 239 +biotype 732 HA "C-Terminal MET" 12 +biotype 733 N "C-Terminal LYS" 7 +biotype 734 CA "C-Terminal LYS" 8 +biotype 735 C "C-Terminal LYS" 238 +biotype 736 HN "C-Terminal LYS" 10 +biotype 737 OXT "C-Terminal LYS" 239 +biotype 738 HA "C-Terminal LYS" 12 +biotype 739 N "C-Terminal LYD (NH2)" 7 +biotype 740 CA "C-Terminal LYD (NH2)" 8 +biotype 741 C "C-Terminal LYD (NH2)" 238 +biotype 742 HN "C-Terminal LYD (NH2)" 10 +biotype 743 OXT "C-Terminal LYD (NH2)" 239 +biotype 744 HA "C-Terminal LYD (NH2)" 12 +biotype 745 N "C-Terminal ARG" 7 +biotype 746 CA "C-Terminal ARG" 8 +biotype 747 C "C-Terminal ARG" 238 +biotype 748 HN "C-Terminal ARG" 10 +biotype 749 OXT "C-Terminal ARG" 239 +biotype 750 HA "C-Terminal ARG" 12 +biotype 751 N "C-Terminal ORN" 7 +biotype 752 CA "C-Terminal ORN" 8 +biotype 753 C "C-Terminal ORN" 238 +biotype 754 HN "C-Terminal ORN" 10 +biotype 755 OXT "C-Terminal ORN" 239 +biotype 756 HA "C-Terminal ORN" 12 +biotype 757 N "C-Terminal AIB" -1 +biotype 758 CA "C-Terminal AIB" -1 +biotype 759 C "C-Terminal AIB" -1 +biotype 760 HN "C-Terminal AIB" -1 +biotype 761 OXT "C-Terminal AIB" -1 +biotype 762 N "Deprotonated N-Terminus" 236 +biotype 763 H "Deprotonated N-Terminus" 237 +biotype 764 C "Formyl N-Terminus" -1 +biotype 765 H "Formyl N-Terminus" -1 +biotype 766 O "Formyl N-Terminus" -1 +biotype 767 CH3 "Acetyl N-Terminus" 224 +biotype 768 H "Acetyl N-Terminus" 225 +biotype 769 C "Acetyl N-Terminus" 226 +biotype 770 O "Acetyl N-Terminus" 227 +biotype 771 C "Protonated C-Terminus" 240 +biotype 772 O "Protonated C-Terminus" 241 +biotype 773 OH "Protonated C-Terminus" 242 +biotype 774 HO "Protonated C-Terminus" 243 +biotype 775 N "Amide C-Terminus" 228 +biotype 776 HN "Amide C-Terminus" 229 +biotype 777 N "N-MeAmide C-Terminus" 230 +biotype 778 HN "N-MeAmide C-Terminus" 231 +biotype 779 CH3 "N-MeAmide C-Terminus" 232 +biotype 780 H "N-MeAmide C-Terminus" 233 +biotype 1001 O5* "Adenosine" 332 +biotype 1002 C5* "Adenosine" 333 +biotype 1003 H5*1 "Adenosine" 334 +biotype 1004 H5*2 "Adenosine" 335 +biotype 1005 C4* "Adenosine" 336 +biotype 1006 H4* "Adenosine" 337 +biotype 1007 O4* "Adenosine" 338 +biotype 1008 C1* "Adenosine" 339 +biotype 1009 H1* "Adenosine" 340 +biotype 1010 C3* "Adenosine" 341 +biotype 1011 H3* "Adenosine" 342 +biotype 1012 C2* "Adenosine" 343 +biotype 1013 H2* "Adenosine" 344 +biotype 1014 O2* "Adenosine" 345 +biotype 1015 HO* "Adenosine" 346 +biotype 1016 O3* "Adenosine" 347 +biotype 1017 N9 "Adenosine" 252 +biotype 1018 C4 "Adenosine" 253 +biotype 1019 C5 "Adenosine" 254 +biotype 1020 N7 "Adenosine" 255 +biotype 1021 C8 "Adenosine" 256 +biotype 1022 N3 "Adenosine" 257 +biotype 1023 C2 "Adenosine" 258 +biotype 1024 N1 "Adenosine" 259 +biotype 1025 C6 "Adenosine" 260 +biotype 1026 H2 "Adenosine" 261 +biotype 1027 N6 "Adenosine" 262 +biotype 1028 H61 "Adenosine" 263 +biotype 1029 H62 "Adenosine" 264 +biotype 1030 H8 "Adenosine" 265 +biotype 1031 O5* "Guanosine" 332 +biotype 1032 C5* "Guanosine" 333 +biotype 1033 H5*1 "Guanosine" 334 +biotype 1034 H5*2 "Guanosine" 335 +biotype 1035 C4* "Guanosine" 336 +biotype 1036 H4* "Guanosine" 337 +biotype 1037 O4* "Guanosine" 338 +biotype 1038 C1* "Guanosine" 339 +biotype 1039 H1* "Guanosine" 340 +biotype 1040 C3* "Guanosine" 341 +biotype 1041 H3* "Guanosine" 342 +biotype 1042 C2* "Guanosine" 343 +biotype 1043 H2* "Guanosine" 344 +biotype 1044 O2* "Guanosine" 345 +biotype 1045 HO* "Guanosine" 346 +biotype 1046 O3* "Guanosine" 347 +biotype 1047 N9 "Guanosine" 278 +biotype 1048 C4 "Guanosine" 279 +biotype 1049 C5 "Guanosine" 280 +biotype 1050 N7 "Guanosine" 281 +biotype 1051 C8 "Guanosine" 282 +biotype 1052 N3 "Guanosine" 283 +biotype 1053 C2 "Guanosine" 284 +biotype 1054 N1 "Guanosine" 285 +biotype 1055 C6 "Guanosine" 286 +biotype 1056 H1 "Guanosine" 287 +biotype 1057 N2 "Guanosine" 288 +biotype 1058 H21 "Guanosine" 289 +biotype 1059 H22 "Guanosine" 290 +biotype 1060 O6 "Guanosine" 291 +biotype 1061 H8 "Guanosine" 292 +biotype 1062 O5* "Cytidine" 316 +biotype 1063 C5* "Cytidine" 317 +biotype 1064 H5*1 "Cytidine" 318 +biotype 1065 H5*2 "Cytidine" 319 +biotype 1066 C4* "Cytidine" 320 +biotype 1067 H4* "Cytidine" 321 +biotype 1068 O4* "Cytidine" 322 +biotype 1069 C1* "Cytidine" 323 +biotype 1070 H1* "Cytidine" 324 +biotype 1071 C3* "Cytidine" 325 +biotype 1072 H3* "Cytidine" 326 +biotype 1073 C2* "Cytidine" 327 +biotype 1074 H2* "Cytidine" 328 +biotype 1075 O2* "Cytidine" 329 +biotype 1076 HO* "Cytidine" 330 +biotype 1077 O3* "Cytidine" 331 +biotype 1078 N1 "Cytidine" 266 +biotype 1079 C2 "Cytidine" 267 +biotype 1080 N3 "Cytidine" 268 +biotype 1081 C4 "Cytidine" 269 +biotype 1082 C5 "Cytidine" 270 +biotype 1083 C6 "Cytidine" 271 +biotype 1084 O2 "Cytidine" 272 +biotype 1085 N4 "Cytidine" 273 +biotype 1086 H41 "Cytidine" 274 +biotype 1087 H42 "Cytidine" 275 +biotype 1088 H5 "Cytidine" 276 +biotype 1089 H6 "Cytidine" 277 +biotype 1090 O5* "Uridine" 316 +biotype 1091 C5* "Uridine" 317 +biotype 1092 H5*1 "Uridine" 318 +biotype 1093 H5*2 "Uridine" 319 +biotype 1094 C4* "Uridine" 320 +biotype 1095 H4* "Uridine" 321 +biotype 1096 O4* "Uridine" 322 +biotype 1097 C1* "Uridine" 323 +biotype 1098 H1* "Uridine" 324 +biotype 1099 C3* "Uridine" 325 +biotype 1100 H3* "Uridine" 326 +biotype 1101 C2* "Uridine" 327 +biotype 1102 H2* "Uridine" 328 +biotype 1103 O2* "Uridine" 329 +biotype 1104 HO* "Uridine" 330 +biotype 1105 O3* "Uridine" 331 +biotype 1106 N1 "Uridine" 305 +biotype 1107 C2 "Uridine" 306 +biotype 1108 N3 "Uridine" 307 +biotype 1109 C4 "Uridine" 308 +biotype 1110 C5 "Uridine" 309 +biotype 1111 C6 "Uridine" 310 +biotype 1112 O2 "Uridine" 311 +biotype 1113 H3 "Uridine" 312 +biotype 1114 O4 "Uridine" 313 +biotype 1115 H5 "Uridine" 314 +biotype 1116 H6 "Uridine" 315 +biotype 1117 O5* "Deoxyadenosine" 363 +biotype 1118 C5* "Deoxyadenosine" 364 +biotype 1119 H5*1 "Deoxyadenosine" 365 +biotype 1120 H5*2 "Deoxyadenosine" 366 +biotype 1121 C4* "Deoxyadenosine" 367 +biotype 1122 H4* "Deoxyadenosine" 368 +biotype 1123 O4* "Deoxyadenosine" 369 +biotype 1124 C1* "Deoxyadenosine" 370 +biotype 1125 H1* "Deoxyadenosine" 371 +biotype 1126 C3* "Deoxyadenosine" 372 +biotype 1127 H3* "Deoxyadenosine" 373 +biotype 1128 C2* "Deoxyadenosine" 374 +biotype 1129 H2*1 "Deoxyadenosine" 375 +biotype 1130 H2*2 "Deoxyadenosine" 376 +biotype 1131 O3* "Deoxyadenosine" 377 +biotype 1132 N9 "Deoxyadenosine" 252 +biotype 1133 C4 "Deoxyadenosine" 253 +biotype 1134 C5 "Deoxyadenosine" 254 +biotype 1135 N7 "Deoxyadenosine" 255 +biotype 1136 C8 "Deoxyadenosine" 256 +biotype 1137 N3 "Deoxyadenosine" 257 +biotype 1138 C2 "Deoxyadenosine" 258 +biotype 1139 N1 "Deoxyadenosine" 259 +biotype 1140 C6 "Deoxyadenosine" 260 +biotype 1141 H2 "Deoxyadenosine" 261 +biotype 1142 N6 "Deoxyadenosine" 262 +biotype 1143 H61 "Deoxyadenosine" 263 +biotype 1144 H62 "Deoxyadenosine" 264 +biotype 1145 H8 "Deoxyadenosine" 265 +biotype 1146 O5* "Deoxyguanosine" 363 +biotype 1147 C5* "Deoxyguanosine" 364 +biotype 1148 H5*1 "Deoxyguanosine" 365 +biotype 1149 H5*2 "Deoxyguanosine" 366 +biotype 1150 C4* "Deoxyguanosine" 367 +biotype 1151 H4* "Deoxyguanosine" 368 +biotype 1152 O4* "Deoxyguanosine" 369 +biotype 1153 C1* "Deoxyguanosine" 370 +biotype 1154 H1* "Deoxyguanosine" 371 +biotype 1155 C3* "Deoxyguanosine" 372 +biotype 1156 H3* "Deoxyguanosine" 373 +biotype 1157 C2* "Deoxyguanosine" 374 +biotype 1158 H2*1 "Deoxyguanosine" 375 +biotype 1159 H2*2 "Deoxyguanosine" 376 +biotype 1160 O3* "Deoxyguanosine" 377 +biotype 1161 N9 "Deoxyguanosine" 278 +biotype 1162 C4 "Deoxyguanosine" 279 +biotype 1163 C5 "Deoxyguanosine" 280 +biotype 1164 N7 "Deoxyguanosine" 281 +biotype 1165 C8 "Deoxyguanosine" 282 +biotype 1166 N3 "Deoxyguanosine" 283 +biotype 1167 C2 "Deoxyguanosine" 284 +biotype 1168 N1 "Deoxyguanosine" 285 +biotype 1169 C6 "Deoxyguanosine" 286 +biotype 1170 H1 "Deoxyguanosine" 287 +biotype 1171 N2 "Deoxyguanosine" 288 +biotype 1172 H21 "Deoxyguanosine" 289 +biotype 1173 H22 "Deoxyguanosine" 290 +biotype 1174 O6 "Deoxyguanosine" 291 +biotype 1175 H8 "Deoxyguanosine" 292 +biotype 1176 O5* "Deoxycytidine" 348 +biotype 1177 C5* "Deoxycytidine" 349 +biotype 1178 H5*1 "Deoxycytidine" 350 +biotype 1179 H5*2 "Deoxycytidine" 351 +biotype 1180 C4* "Deoxycytidine" 352 +biotype 1181 H4* "Deoxycytidine" 353 +biotype 1182 O4* "Deoxycytidine" 354 +biotype 1183 C1* "Deoxycytidine" 355 +biotype 1184 H1* "Deoxycytidine" 356 +biotype 1185 C3* "Deoxycytidine" 357 +biotype 1186 H3* "Deoxycytidine" 358 +biotype 1187 C2* "Deoxycytidine" 359 +biotype 1188 H2*1 "Deoxycytidine" 360 +biotype 1189 H2*2 "Deoxycytidine" 361 +biotype 1190 O3* "Deoxycytidine" 362 +biotype 1191 N1 "Deoxycytidine" 266 +biotype 1192 C2 "Deoxycytidine" 267 +biotype 1193 N3 "Deoxycytidine" 268 +biotype 1194 C4 "Deoxycytidine" 269 +biotype 1195 C5 "Deoxycytidine" 270 +biotype 1196 C6 "Deoxycytidine" 271 +biotype 1197 O2 "Deoxycytidine" 272 +biotype 1198 N4 "Deoxycytidine" 273 +biotype 1199 H41 "Deoxycytidine" 274 +biotype 1200 H42 "Deoxycytidine" 275 +biotype 1201 H5 "Deoxycytidine" 276 +biotype 1202 H6 "Deoxycytidine" 277 +biotype 1203 O5* "Deoxythymidine" 348 +biotype 1204 C5* "Deoxythymidine" 349 +biotype 1205 H5*1 "Deoxythymidine" 350 +biotype 1206 H5*2 "Deoxythymidine" 351 +biotype 1207 C4* "Deoxythymidine" 352 +biotype 1208 H4* "Deoxythymidine" 353 +biotype 1209 O4* "Deoxythymidine" 354 +biotype 1210 C1* "Deoxythymidine" 355 +biotype 1211 H1* "Deoxythymidine" 356 +biotype 1212 C3* "Deoxythymidine" 357 +biotype 1213 H3* "Deoxythymidine" 358 +biotype 1214 C2* "Deoxythymidine" 359 +biotype 1215 H2*1 "Deoxythymidine" 360 +biotype 1216 H2*2 "Deoxythymidine" 361 +biotype 1217 O3* "Deoxythymidine" 362 +biotype 1218 N1 "Deoxythymidine" 293 +biotype 1219 C2 "Deoxythymidine" 294 +biotype 1220 N3 "Deoxythymidine" 295 +biotype 1221 C4 "Deoxythymidine" 296 +biotype 1222 C5 "Deoxythymidine" 297 +biotype 1223 C6 "Deoxythymidine" 298 +biotype 1224 O2 "Deoxythymidine" 299 +biotype 1225 H3 "Deoxythymidine" 300 +biotype 1226 O4 "Deoxythymidine" 301 +biotype 1227 C7 "Deoxythymidine" 302 +biotype 1228 H7 "Deoxythymidine" 303 +biotype 1229 H6 "Deoxythymidine" 304 +biotype 1230 P "Phosphodiester RNA" 378 +biotype 1231 OP "Phosphodiester RNA" 379 +biotype 1232 O5* "5'-Hydroxyl RNA" 380 +biotype 1233 H5T "5'-Hydroxyl RNA" 381 +biotype 1234 O5* "5'-Monophosphate OS RNA" 382 +biotype 1235 P "5'-Monophosphate P RNA" 383 +biotype 1236 OP "5'-Monophosphate OP RNA" 384 +biotype 1237 O3* "3'-Hydroxyl RNA" 385 +biotype 1238 H3T "3'-Hydroxyl RNA" 386 +biotype 1239 O3* "3'-Monophosphate OS RNA" 387 +biotype 1240 P "3'-Monophosphate P RNA" 388 +biotype 1241 OP "3'-Monophosphate OP RNA" 389 +biotype 1242 P "Phosphodiester DNA" 390 +biotype 1243 OP "Phosphodiester DNA" 391 +biotype 1244 O5* "5'-Hydroxyl DNA" 392 +biotype 1245 H5T "5'-Hydroxyl DNA" 393 +biotype 1246 O5* "5'-Monophosphate OS DNA" 394 +biotype 1247 P "5'-Monophosphate P DNA" 395 +biotype 1248 OP "5'-Monophosphate OP DNA" 396 +biotype 1249 O3* "3'-Hydroxyl DNA" 397 +biotype 1250 H3T "3'-Hydroxyl DNA" 398 +biotype 1251 O3* "3'-Monophosphate OS DNA" 399 +biotype 1252 P "3'-Monophosphate P DNA" 400 +biotype 1253 OP "3'-Monophosphate OP DNA" 401 +biotype 2001 O "Water" 402 +biotype 2002 H "Water" 403 +biotype 2003 LI "Lithium Ion" 404 +biotype 2004 NA "Sodium Ion" 405 +biotype 2005 K "Potassium Ion" 406 +biotype 2006 RB "Rubidium Ion" 407 +biotype 2007 CS "Cesium Ion" 408 +biotype 2008 MG "Magnesium Ion" 410 +biotype 2009 CA "Calcium Ion" 411 +biotype 2012 F "Fluoride Ion" 413 +biotype 2013 CL "Chloride Ion" 414 +biotype 2014 BR "Bromide Ion" 415 +biotype 2015 I "Iodide Ion" 416 diff --git a/examples/amoeba/amoeba_water.key b/examples/amoeba/amoeba_water.key new file mode 100644 index 0000000000..9cfe063db1 --- /dev/null +++ b/examples/amoeba/amoeba_water.key @@ -0,0 +1,10 @@ +!! DATE: 2022-07-05 UNITS: real +parameters ./amoeba.prm + +digits 8 + +cutoff 10 +taper 8 + +polar-eps 1e-5 +usolve-diag 1.0 diff --git a/examples/amoeba/amoeba_water.prm b/examples/amoeba/amoeba_water.prm new file mode 100644 index 0000000000..5cb5a757d8 --- /dev/null +++ b/examples/amoeba/amoeba_water.prm @@ -0,0 +1,160 @@ +!! DATE: 2022-07-05 UNITS: real + + ############################## + ## ## + ## Force Field Definition ## + ## ## + ############################## + + +forcefield AMOEBA-WATER-2003 + +bond-cubic -2.55 +bond-quartic 3.793125 +angle-cubic -0.014 +angle-quartic 0.000056 +angle-pentic -0.0000007 +angle-sextic 0.000000022 +opbendtype ALLINGER +opbend-cubic -0.014 +opbend-quartic 0.000056 +opbend-pentic -0.0000007 +opbend-sextic 0.000000022 +torsionunit 0.5 +vdwtype BUFFERED-14-7 +radiusrule CUBIC-MEAN +radiustype R-MIN +radiussize DIAMETER +epsilonrule HHG +dielectric 1.0 +polarization MUTUAL +vdw-12-scale 0.0 +vdw-13-scale 0.0 +vdw-14-scale 1.0 +vdw-15-scale 1.0 +mpole-12-scale 0.0 +mpole-13-scale 0.0 +mpole-14-scale 0.4 +#mpole-15-scale 0.8 +polar-12-scale 0.0 +polar-13-scale 0.0 +polar-14-scale 1.0 +polar-15-scale 1.0 +polar-12-intra 0.0 +polar-13-intra 0.0 +polar-14-intra 0.5 +polar-15-intra 1.0 +direct-11-scale 0.0 +direct-12-scale 1.0 +direct-13-scale 1.0 +direct-14-scale 1.0 +mutual-11-scale 1.0 +mutual-12-scale 1.0 +mutual-13-scale 1.0 +mutual-14-scale 1.0 + + + ############################# + ## ## + ## Literature References ## + ## ## + ############################# + + +P. Ren and J. W. Ponder, "A Polarizable Atomic Multipole Water Model +for Molecular Mechanics Simulation", J. Phys. Chem. B, 107, 5933-5947 +(2003) + +Y. Kong, "Multipole Electrostatic Methods for Protein Modeling with +Reaction Field Treatment", Ph.D. thesis, DBBS Program in Molecular +Biophysics, Washington University, St. Louis, August, 1997 [available +online from http://dasher.wustl.edu/ponder/] + +alternative valence parameters to match symmetric and antisymmetric +stretch frequencies by David Semrouni, Ecole Polytechnique, Paris + + + ############################# + ## ## + ## Atom Type Definitions ## + ## ## + ############################# + + +atom 1 1 O "AMOEBA Water O" 8 15.995 2 +atom 2 2 H "AMOEBA Water H" 1 1.008 1 + + + ################################ + ## ## + ## Van der Waals Parameters ## + ## ## + ################################ + + +vdw 1 3.4050 0.1100 +vdw 2 2.6550 0.0135 0.910 + + + ################################## + ## ## + ## Bond Stretching Parameters ## + ## ## + ################################## + + +#bond 1 2 529.60 0.9572 !! original AMOEBA water +bond 1 2 556.85 0.9572 + + + ################################ + ## ## + ## Angle Bending Parameters ## + ## ## + ################################ + + +#angle 2 1 2 34.05 108.50 !! original AMOEBA water +angle 2 1 2 48.70 108.50 + + + ############################### + ## ## + ## Urey-Bradley Parameters ## + ## ## + ############################### + + +#ureybrad 2 1 2 38.25 1.5537 !! original AMOEBA water +ureybrad 2 1 2 -7.60 1.5537 + + + ################################### + ## ## + ## Atomic Multipole Parameters ## + ## ## + ################################### + + +multipole 1 -2 -2 -0.51966 + 0.00000 0.00000 0.14279 + 0.37928 + 0.00000 -0.41809 + 0.00000 0.00000 0.03881 + +multipole 2 1 2 0.25983 + -0.03859 0.00000 -0.05818 + -0.03673 + 0.00000 -0.10739 + -0.00203 0.00000 0.14412 + + + ######################################## + ## ## + ## Dipole Polarizability Parameters ## + ## ## + ######################################## + + +polarize 1 0.837 0.390 2 +polarize 2 0.496 0.390 1 diff --git a/examples/amoeba/amoeba_water_box.key b/examples/amoeba/amoeba_water_box.key new file mode 100644 index 0000000000..94c9808875 --- /dev/null +++ b/examples/amoeba/amoeba_water_box.key @@ -0,0 +1,19 @@ +!! DATE: 2022-07-05 UNITS: real +parameters ./amoeba.prm + +digits 10 +openmp-threads 1 + +ewald +ewald-alpha 0.4 +pewald-alpha 0.5 +pme-grid 24 24 24 + +neighbor-list +a-axis 18.643 + +cutoff 7 +taper 6 + +polar-eps 1e-5 +usolve-diag 1.0 diff --git a/examples/amoeba/bitorsion.ubiquitin.data b/examples/amoeba/bitorsion.ubiquitin.data new file mode 100644 index 0000000000..5a59e1a16e --- /dev/null +++ b/examples/amoeba/bitorsion.ubiquitin.data @@ -0,0 +1,1884 @@ +Tinker BiTorsion parameter file for fix bitorsion + +3 bitorsion types + +1 25 25 + -180.0 -180.0 0.98936 + -165.0 -180.0 0.76408 + -150.0 -180.0 0.21674 + -135.0 -180.0 -0.182 + -120.0 -180.0 -0.37729 + -105.0 -180.0 -0.47834 + -90.0 -180.0 -0.59267 + -75.0 -180.0 -0.93985 + -60.0 -180.0 -1.55558 + -45.0 -180.0 -2.01849 + -30.0 -180.0 -1.94076 + -15.0 -180.0 -1.464 + 0.0 -180.0 0.18253 + 15.0 -180.0 -0.80364 + 30.0 -180.0 -1.32974 + 45.0 -180.0 -1.31658 + 60.0 -180.0 -0.5014 + 75.0 -180.0 0.20431 + 90.0 -180.0 0.39356 + 105.0 -180.0 0.20356 + 120.0 -180.0 -0.16993 + 135.0 -180.0 -0.22733 + 150.0 -180.0 0.13703 + 165.0 -180.0 0.66356 + 180.0 -180.0 0.98936 + -180.0 -165.0 0.96101 + -165.0 -165.0 0.37535 + -150.0 -165.0 -0.35733 + -135.0 -165.0 -0.69994 + -120.0 -165.0 -0.67298 + -105.0 -165.0 -0.58294 + -90.0 -165.0 -0.66465 + -75.0 -165.0 -1.02945 + -60.0 -165.0 -1.72427 + -45.0 -165.0 -2.19357 + -30.0 -165.0 -2.26378 + -15.0 -165.0 -1.7385 + 0.0 -165.0 -0.80969 + 15.0 -165.0 -1.16164 + 30.0 -165.0 -1.62772 + 45.0 -165.0 -1.51932 + 60.0 -165.0 -0.62569 + 75.0 -165.0 0.1313 + 90.0 -165.0 0.41019 + 105.0 -165.0 0.32974 + 120.0 -165.0 0.19191 + 135.0 -165.0 0.3232 + 150.0 -165.0 0.68257 + 165.0 -165.0 1.03015 + 180.0 -165.0 0.96101 + -180.0 -150.0 0.72651 + -165.0 -150.0 -0.04361 + -150.0 -150.0 -0.78147 + -135.0 -150.0 -0.90703 + -120.0 -150.0 -0.65095 + -105.0 -150.0 -0.48165 + -90.0 -150.0 -0.59657 + -75.0 -150.0 -1.14449 + -60.0 -150.0 -1.75396 + -45.0 -150.0 -2.279 + -30.0 -150.0 -2.14873 + -15.0 -150.0 -0.26757 + 0.0 -150.0 -0.77578 + 15.0 -150.0 -1.30595 + 30.0 -150.0 -1.79607 + 45.0 -150.0 -1.55982 + 60.0 -150.0 -0.57905 + 75.0 -150.0 0.30576 + 90.0 -150.0 0.70711 + 105.0 -150.0 0.68903 + 120.0 -150.0 0.53594 + 135.0 -150.0 0.60304 + 150.0 -150.0 0.88805 + 165.0 -150.0 0.9972 + 180.0 -150.0 0.72651 + -180.0 -135.0 0.155 + -165.0 -135.0 -0.20013 + -150.0 -135.0 -0.7966 + -135.0 -135.0 -0.74958 + -120.0 -135.0 -0.43624 + -105.0 -135.0 -0.36715 + -90.0 -135.0 -0.58938 + -75.0 -135.0 -0.99698 + -60.0 -135.0 -1.59208 + -45.0 -135.0 -1.67026 + -30.0 -135.0 0.50672 + -15.0 -135.0 -0.03293 + 0.0 -135.0 -0.84501 + 15.0 -135.0 -1.52731 + 30.0 -135.0 -1.89898 + 45.0 -135.0 -1.54469 + 60.0 -135.0 -0.53752 + 75.0 -135.0 0.40003 + 90.0 -135.0 0.88952 + 105.0 -135.0 0.8215 + 120.0 -135.0 0.58663 + 135.0 -135.0 0.56781 + 150.0 -135.0 0.74002 + 165.0 -135.0 0.84486 + 180.0 -135.0 0.155 + -180.0 -120.0 0.34021 + -165.0 -120.0 -0.20306 + -150.0 -120.0 -0.62787 + -135.0 -120.0 -0.55418 + -120.0 -120.0 -0.38986 + -105.0 -120.0 -0.44533 + -90.0 -120.0 -0.60179 + -75.0 -120.0 -0.93351 + -60.0 -120.0 -1.09198 + -45.0 -120.0 -0.18408 + -30.0 -120.0 1.24545 + -15.0 -120.0 -0.24279 + 0.0 -120.0 -1.24581 + 15.0 -120.0 -1.76363 + 30.0 -120.0 -1.8081 + 45.0 -120.0 -1.40319 + 60.0 -120.0 -0.63233 + 75.0 -120.0 0.15411 + 90.0 -120.0 0.5864 + 105.0 -120.0 0.51937 + 120.0 -120.0 0.25822 + 135.0 -120.0 0.13668 + 150.0 -120.0 0.23659 + 165.0 -120.0 0.46899 + 180.0 -120.0 0.34021 + -180.0 -105.0 -0.15437 + -165.0 -105.0 -0.1406 + -150.0 -105.0 -0.54321 + -135.0 -105.0 -0.58112 + -120.0 -105.0 -0.64967 + -105.0 -105.0 -0.71916 + -90.0 -105.0 -0.78801 + -75.0 -105.0 -0.76163 + -60.0 -105.0 -0.33401 + -45.0 -105.0 0.9172 + -30.0 -105.0 0.65423 + -15.0 -105.0 -0.84456 + 0.0 -105.0 -1.63476 + 15.0 -105.0 -1.65992 + 30.0 -105.0 -1.33178 + 45.0 -105.0 -1.08999 + 60.0 -105.0 -0.74243 + 75.0 -105.0 -0.33157 + 90.0 -105.0 -0.20618 + 105.0 -105.0 -0.07103 + 120.0 -105.0 -0.25941 + 135.0 -105.0 -0.37634 + 150.0 -105.0 -0.12892 + 165.0 -105.0 0.19386 + 180.0 -105.0 -0.15437 + -180.0 -90.0 0.4463 + -165.0 -90.0 0.02406 + -150.0 -90.0 -0.42821 + -135.0 -90.0 -0.76736 + -120.0 -90.0 -0.93537 + -105.0 -90.0 -0.86621 + -90.0 -90.0 -0.66178 + -75.0 -90.0 -0.23513 + -60.0 -90.0 0.41508 + -45.0 -90.0 0.97897 + -30.0 -90.0 -0.30358 + -15.0 -90.0 -1.42025 + 0.0 -90.0 -1.62146 + 15.0 -90.0 -0.98816 + 30.0 -90.0 -0.58148 + 45.0 -90.0 -0.49791 + 60.0 -90.0 -0.32045 + 75.0 -90.0 -0.39639 + 90.0 -90.0 -0.94422 + 105.0 -90.0 -0.74539 + 120.0 -90.0 -0.60241 + 135.0 -90.0 -0.56295 + 150.0 -90.0 -0.15877 + 165.0 -90.0 0.33609 + 180.0 -90.0 0.4463 + -180.0 -75.0 0.69562 + -165.0 -75.0 0.16403 + -150.0 -75.0 -0.43627 + -135.0 -75.0 -0.79169 + -120.0 -75.0 -0.80743 + -105.0 -75.0 -0.48767 + -90.0 -75.0 0.12397 + -75.0 -75.0 0.80972 + -60.0 -75.0 0.52616 + -45.0 -75.0 -0.13884 + -30.0 -75.0 -1.08459 + -15.0 -75.0 -1.556 + 0.0 -75.0 -1.12531 + 15.0 -75.0 -0.19831 + 30.0 -75.0 -0.00344 + 45.0 -75.0 0.01061 + 60.0 -75.0 0.11066 + 75.0 -75.0 -0.12406 + 90.0 -75.0 -0.8198 + 105.0 -75.0 -1.04369 + 120.0 -75.0 -0.62525 + 135.0 -75.0 -0.37223 + 150.0 -75.0 0.09012 + 165.0 -75.0 0.58855 + 180.0 -75.0 0.69562 + -180.0 -60.0 0.70531 + -165.0 -60.0 0.15456 + -150.0 -60.0 -0.40882 + -135.0 -60.0 -0.57653 + -120.0 -60.0 -0.20146 + -105.0 -60.0 0.21285 + -90.0 -60.0 0.15007 + -75.0 -60.0 0.06572 + -60.0 -60.0 -0.22861 + -45.0 -60.0 -0.75313 + -30.0 -60.0 -1.17725 + -15.0 -60.0 -1.0704 + 0.0 -60.0 -0.29306 + 15.0 -60.0 0.11777 + 30.0 -60.0 0.42905 + 45.0 -60.0 0.53679 + 60.0 -60.0 0.52038 + 75.0 -60.0 0.27617 + 90.0 -60.0 -0.36078 + 105.0 -60.0 -0.66569 + 120.0 -60.0 -0.35068 + 135.0 -60.0 -0.13164 + 150.0 -60.0 0.27666 + 165.0 -60.0 0.70865 + 180.0 -60.0 0.70531 + -180.0 -45.0 0.42237 + -165.0 -45.0 -0.14148 + -150.0 -45.0 -0.50856 + -135.0 -45.0 -0.14423 + -120.0 -45.0 -0.53339 + -105.0 -45.0 -0.514 + -90.0 -45.0 -0.3329 + -75.0 -45.0 -0.24488 + -60.0 -45.0 -0.32054 + -45.0 -45.0 -0.40379 + -30.0 -45.0 -0.41006 + -15.0 -45.0 -0.23372 + 0.0 -45.0 0.07185 + 15.0 -45.0 0.70729 + 30.0 -45.0 1.16881 + 45.0 -45.0 1.23276 + 60.0 -45.0 0.77518 + 75.0 -45.0 0.5197 + 90.0 -45.0 -0.12956 + 105.0 -45.0 -0.24028 + 120.0 -45.0 -0.08791 + 135.0 -45.0 0.02315 + 150.0 -45.0 0.32774 + 165.0 -45.0 0.5533 + 180.0 -45.0 0.42237 + -180.0 -30.0 0.127 + -165.0 -30.0 -0.36697 + -150.0 -30.0 -0.33178 + -135.0 -30.0 -1.09856 + -120.0 -30.0 -1.01098 + -105.0 -30.0 -0.6178 + -90.0 -30.0 -0.18232 + -75.0 -30.0 0.14143 + -60.0 -30.0 0.40819 + -45.0 -30.0 0.50556 + -30.0 -30.0 0.34379 + -15.0 -30.0 0.31224 + 0.0 -30.0 0.97008 + 15.0 -30.0 1.70616 + 30.0 -30.0 1.99942 + 45.0 -30.0 1.79196 + 60.0 -30.0 1.26978 + 75.0 -30.0 0.65732 + 90.0 -30.0 0.04223 + 105.0 -30.0 0.22658 + 120.0 -30.0 0.08209 + 135.0 -30.0 0.05525 + 150.0 -30.0 0.22382 + 165.0 -30.0 0.33964 + 180.0 -30.0 0.127 + -180.0 -15.0 -0.06517 + -165.0 -15.0 -0.13598 + -150.0 -15.0 -1.30614 + -135.0 -15.0 -1.09555 + -120.0 -15.0 -0.64991 + -105.0 -15.0 -0.06482 + -90.0 -15.0 0.49509 + -75.0 -15.0 0.92103 + -60.0 -15.0 1.94755 + -45.0 -15.0 0.95164 + -30.0 -15.0 0.8787 + -15.0 -15.0 1.42479 + 0.0 -15.0 2.06338 + 15.0 -15.0 2.50243 + 30.0 -15.0 2.59266 + 45.0 -15.0 2.02131 + 60.0 -15.0 1.26236 + 75.0 -15.0 0.65759 + 90.0 -15.0 0.60601 + 105.0 -15.0 0.40777 + 120.0 -15.0 0.08605 + 135.0 -15.0 -0.02333 + 150.0 -15.0 0.06947 + 165.0 -15.0 0.13044 + 180.0 -15.0 -0.06517 + -180.0 0.0 -1.44412 + -165.0 0.0 -1.37206 + -150.0 0.0 -0.97055 + -135.0 0.0 -0.54692 + -120.0 0.0 -0.04768 + -105.0 0.0 0.65462 + -90.0 0.0 1.09803 + -75.0 0.0 1.4118 + -60.0 0.0 1.23685 + -45.0 0.0 1.32368 + -30.0 0.0 1.83555 + -15.0 0.0 2.29146 + 0.0 0.0 2.61632 + 15.0 0.0 2.73204 + 30.0 0.0 2.49607 + 45.0 0.0 1.76205 + 60.0 0.0 1.23208 + 75.0 0.0 1.11843 + 90.0 0.0 1.50389 + 105.0 0.0 0.20088 + 120.0 0.0 -0.22667 + 135.0 0.0 -0.38306 + 150.0 0.0 -0.27813 + 165.0 0.0 -0.08165 + 180.0 0.0 -1.44412 + -180.0 15.0 -1.54337 + -165.0 15.0 -0.94875 + -150.0 15.0 -0.4463 + -135.0 15.0 -0.06444 + -120.0 15.0 0.39675 + -105.0 15.0 0.90513 + -90.0 15.0 1.24019 + -75.0 15.0 1.18954 + -60.0 15.0 1.36753 + -45.0 15.0 1.8229 + -30.0 15.0 2.22229 + -15.0 15.0 2.44694 + 0.0 15.0 2.44244 + 15.0 15.0 2.26164 + 30.0 15.0 1.85516 + 45.0 15.0 1.56722 + 60.0 15.0 1.43193 + 75.0 15.0 0.71918 + 90.0 15.0 0.14053 + 105.0 15.0 -0.36429 + 120.0 15.0 -0.76466 + 135.0 15.0 -0.87217 + 150.0 15.0 -0.57197 + 165.0 15.0 -1.61569 + 180.0 15.0 -1.54337 + -180.0 30.0 -1.09485 + -165.0 30.0 -0.56681 + -150.0 30.0 -0.13387 + -135.0 30.0 0.19412 + -120.0 30.0 0.57374 + -105.0 30.0 0.86366 + -90.0 30.0 0.80314 + -75.0 30.0 1.08125 + -60.0 30.0 1.39143 + -45.0 30.0 1.86048 + -30.0 30.0 2.01491 + -15.0 30.0 2.03904 + 0.0 30.0 1.77856 + 15.0 30.0 1.48754 + 30.0 30.0 1.53762 + 45.0 30.0 1.22766 + 60.0 30.0 0.55347 + 75.0 30.0 -0.06469 + 90.0 30.0 -0.47099 + 105.0 30.0 -0.82958 + 120.0 30.0 -1.01883 + 135.0 30.0 -0.75479 + 150.0 30.0 -1.39221 + 165.0 30.0 -1.55942 + 180.0 30.0 -1.09485 + -180.0 45.0 -0.55882 + -165.0 45.0 -0.22825 + -150.0 45.0 0.01795 + -135.0 45.0 0.21896 + -120.0 45.0 0.49238 + -105.0 45.0 0.39403 + -90.0 45.0 0.4887 + -75.0 45.0 0.90318 + -60.0 45.0 1.0673 + -45.0 45.0 1.40576 + -30.0 45.0 1.504 + -15.0 45.0 1.39328 + 0.0 45.0 1.13519 + 15.0 45.0 1.11176 + 30.0 45.0 0.55506 + 45.0 45.0 0.04408 + 60.0 45.0 -0.2593 + 75.0 45.0 -0.42888 + 90.0 45.0 -0.51963 + 105.0 45.0 -0.55634 + 120.0 45.0 -0.25212 + 135.0 45.0 -0.62098 + 150.0 45.0 -1.22694 + 165.0 45.0 -1.05054 + 180.0 45.0 -0.55882 + -180.0 60.0 -0.18285 + -165.0 60.0 -0.0865 + -150.0 60.0 0.00476 + -135.0 60.0 0.11545 + -120.0 60.0 0.16266 + -105.0 60.0 0.01161 + -90.0 60.0 0.39632 + -75.0 60.0 0.75519 + -60.0 60.0 0.96557 + -45.0 60.0 0.9764 + -30.0 60.0 0.97745 + -15.0 60.0 0.97978 + 0.0 60.0 0.79555 + 15.0 60.0 -0.15675 + 30.0 60.0 -0.51647 + 45.0 60.0 -0.39418 + 60.0 60.0 -0.15303 + 75.0 60.0 -0.008 + 90.0 60.0 0.09982 + 105.0 60.0 0.37002 + 120.0 60.0 0.12378 + 135.0 60.0 -0.63827 + 150.0 60.0 -0.59589 + 165.0 60.0 -0.38041 + 180.0 60.0 -0.18285 + -180.0 75.0 -0.066 + -165.0 75.0 -0.07528 + -150.0 75.0 -0.04119 + -135.0 75.0 -0.07933 + -120.0 75.0 -0.19424 + -105.0 75.0 -0.27213 + -90.0 75.0 0.0 + -75.0 75.0 0.40627 + -60.0 75.0 0.67141 + -45.0 75.0 0.48954 + -30.0 75.0 0.49392 + -15.0 75.0 0.53926 + 0.0 75.0 -0.43613 + 15.0 75.0 -0.91296 + 30.0 75.0 -0.57046 + 45.0 75.0 0.20602 + 60.0 75.0 0.66426 + 75.0 75.0 0.78486 + 90.0 75.0 0.83638 + 105.0 75.0 0.47569 + 120.0 75.0 -0.24156 + 135.0 75.0 -0.36935 + 150.0 75.0 -0.03276 + 165.0 75.0 -0.00079 + 180.0 75.0 -0.066 + -180.0 90.0 -0.19813 + -165.0 90.0 -0.18275 + -150.0 90.0 -0.13564 + -135.0 90.0 -0.16443 + -120.0 90.0 -0.25121 + -105.0 90.0 -0.36588 + -90.0 90.0 -0.30532 + -75.0 90.0 -0.05335 + -60.0 90.0 -0.11065 + -45.0 90.0 -0.24703 + -30.0 90.0 -0.35383 + -15.0 90.0 -0.66704 + 0.0 90.0 -1.22785 + 15.0 90.0 -0.99837 + 30.0 90.0 0.07165 + 45.0 90.0 1.1709 + 60.0 90.0 1.52568 + 75.0 90.0 1.19212 + 90.0 90.0 0.65821 + 105.0 90.0 0.07691 + 120.0 90.0 -0.25244 + 135.0 90.0 -0.10611 + 150.0 90.0 0.09358 + 165.0 90.0 0.00731 + 180.0 90.0 -0.19813 + -180.0 105.0 -0.3485 + -165.0 105.0 -0.15035 + -150.0 105.0 -0.40367 + -135.0 105.0 -0.01197 + -120.0 105.0 -0.061 + -105.0 105.0 -0.1519 + -90.0 105.0 -0.31715 + -75.0 105.0 -0.62391 + -60.0 105.0 -0.90231 + -45.0 105.0 -1.37607 + -30.0 105.0 -1.62179 + -15.0 105.0 -1.73579 + 0.0 105.0 -1.64875 + 15.0 105.0 -0.75542 + 30.0 105.0 0.71157 + 45.0 105.0 1.26356 + 60.0 105.0 0.7596 + 75.0 105.0 0.594 + 90.0 105.0 0.30667 + 105.0 105.0 -0.06284 + 120.0 105.0 -0.20456 + 135.0 105.0 -0.08836 + 150.0 105.0 -0.1659 + 165.0 105.0 -0.35505 + 180.0 105.0 -0.3485 + -180.0 120.0 -0.34576 + -165.0 120.0 0.02576 + -150.0 120.0 0.27228 + -135.0 120.0 0.28454 + -120.0 120.0 0.18375 + -105.0 120.0 0.01398 + -90.0 120.0 -0.27455 + -75.0 120.0 -0.7758 + -60.0 120.0 -1.42554 + -45.0 120.0 -1.99064 + -30.0 120.0 -2.37393 + -15.0 120.0 -2.20009 + 0.0 120.0 -1.60683 + 15.0 120.0 -0.44372 + 30.0 120.0 1.09513 + 45.0 120.0 0.35522 + 60.0 120.0 -0.04151 + 75.0 120.0 0.17766 + 90.0 120.0 0.14305 + 105.0 120.0 -0.13472 + 120.0 120.0 -0.31725 + 135.0 120.0 -0.458 + 150.0 120.0 -0.64821 + 165.0 120.0 -0.63355 + 180.0 120.0 -0.34576 + -180.0 135.0 -0.08457 + -165.0 135.0 0.36013 + -150.0 135.0 0.54446 + -135.0 135.0 0.48098 + -120.0 135.0 0.27776 + -105.0 135.0 0.02335 + -90.0 135.0 -0.28766 + -75.0 135.0 -0.80414 + -60.0 135.0 -1.5133 + -45.0 135.0 -2.20028 + -30.0 135.0 -2.36835 + -15.0 135.0 -2.12483 + 0.0 135.0 -1.376 + 15.0 135.0 -0.25291 + 30.0 135.0 0.78641 + 45.0 135.0 -0.96321 + 60.0 135.0 -0.57499 + 75.0 135.0 -0.00398 + 90.0 135.0 0.08668 + 105.0 135.0 -0.17475 + 120.0 135.0 -0.55212 + 135.0 135.0 -0.94225 + 150.0 135.0 -1.01661 + 165.0 135.0 -0.69656 + 180.0 135.0 -0.08457 + -180.0 150.0 0.2851 + -165.0 150.0 0.66185 + -150.0 150.0 0.69665 + -135.0 150.0 0.48378 + -120.0 150.0 0.16399 + -105.0 150.0 -0.09637 + -90.0 150.0 -0.36878 + -75.0 150.0 -0.80945 + -60.0 150.0 -1.41793 + -45.0 150.0 -2.18914 + -30.0 150.0 -2.20786 + -15.0 150.0 -1.82363 + 0.0 150.0 -1.11629 + 15.0 150.0 -0.04735 + 30.0 150.0 -1.17126 + 45.0 150.0 -1.34899 + 60.0 150.0 -0.62467 + 75.0 150.0 0.05642 + 90.0 150.0 0.17332 + 105.0 150.0 -0.14673 + 120.0 150.0 -0.698 + 135.0 150.0 -1.11306 + 150.0 150.0 -1.02621 + 165.0 150.0 -0.41495 + 180.0 150.0 0.2851 + -180.0 165.0 0.76902 + -165.0 165.0 0.89311 + -150.0 165.0 0.59358 + -135.0 165.0 0.25887 + -120.0 165.0 -0.03955 + -105.0 165.0 -0.24006 + -90.0 165.0 -0.46456 + -75.0 165.0 -0.8317 + -60.0 165.0 -1.40143 + -45.0 165.0 -1.95471 + -30.0 165.0 -2.00388 + -15.0 165.0 -1.56184 + 0.0 165.0 -0.83182 + 15.0 165.0 -0.45132 + 30.0 165.0 -1.23096 + 45.0 165.0 -1.2265 + 60.0 165.0 -0.44761 + 75.0 165.0 0.25891 + 90.0 165.0 0.39936 + 105.0 165.0 0.0765 + 120.0 165.0 -0.49787 + 135.0 165.0 -0.79017 + 150.0 165.0 -0.50914 + 165.0 165.0 0.18602 + 180.0 165.0 0.76902 + -180.0 180.0 0.98936 + -165.0 180.0 0.76408 + -150.0 180.0 0.21674 + -135.0 180.0 -0.182 + -120.0 180.0 -0.37729 + -105.0 180.0 -0.47834 + -90.0 180.0 -0.59267 + -75.0 180.0 -0.93985 + -60.0 180.0 -1.55558 + -45.0 180.0 -2.01849 + -30.0 180.0 -1.94076 + -15.0 180.0 -1.464 + 0.0 180.0 0.18253 + 15.0 180.0 -0.80364 + 30.0 180.0 -1.32974 + 45.0 180.0 -1.31658 + 60.0 180.0 -0.5014 + 75.0 180.0 0.20431 + 90.0 180.0 0.39356 + 105.0 180.0 0.20356 + 120.0 180.0 -0.16993 + 135.0 180.0 -0.22733 + 150.0 180.0 0.13703 + 165.0 180.0 0.66356 + 180.0 180.0 0.98936 + +2 25 25 + -180.0 -180.0 0.0 + -165.0 -180.0 -0.15918 + -150.0 -180.0 -0.46924 + -135.0 -180.0 -0.94887 + -120.0 -180.0 -1.41919 + -105.0 -180.0 -1.89608 + -90.0 -180.0 -2.35024 + -75.0 -180.0 -2.81648 + -60.0 -180.0 -3.17758 + -45.0 -180.0 -2.91092 + -30.0 -180.0 -1.84916 + -15.0 -180.0 -0.61868 + 0.0 -180.0 1.44957 + 15.0 -180.0 -0.61868 + 30.0 -180.0 -1.84916 + 45.0 -180.0 -2.91092 + 60.0 -180.0 -3.17758 + 75.0 -180.0 -2.81793 + 90.0 -180.0 -2.34954 + 105.0 -180.0 -1.91578 + 120.0 -180.0 -1.41919 + 135.0 -180.0 -0.94887 + 150.0 -180.0 -0.46924 + 165.0 -180.0 -0.15918 + 180.0 -180.0 0.0 + -180.0 -165.0 -0.03043 + -165.0 -165.0 -0.40282 + -150.0 -165.0 -0.84288 + -135.0 -165.0 -1.22723 + -120.0 -165.0 -1.58634 + -105.0 -165.0 -1.98317 + -90.0 -165.0 -2.46682 + -75.0 -165.0 -2.96238 + -60.0 -165.0 -3.27921 + -45.0 -165.0 -2.85897 + -30.0 -165.0 -1.66034 + -15.0 -165.0 0.28654 + 0.0 -165.0 0.47583 + 15.0 -165.0 -0.59328 + 30.0 -165.0 -1.85441 + 45.0 -165.0 -2.72832 + 60.0 -165.0 -2.82977 + 75.0 -165.0 -2.4375 + 90.0 -165.0 -1.97978 + 105.0 -165.0 -1.47132 + 120.0 -165.0 -0.94989 + 135.0 -165.0 -0.44166 + 150.0 -165.0 -0.04055 + 165.0 -165.0 0.10146 + 180.0 -165.0 -0.03043 + -180.0 -150.0 -0.05487 + -165.0 -150.0 -0.49639 + -150.0 -150.0 -0.83418 + -135.0 -150.0 -1.02443 + -120.0 -150.0 -1.24614 + -105.0 -150.0 -1.65671 + -90.0 -150.0 -2.17397 + -75.0 -150.0 -2.73078 + -60.0 -150.0 -2.95919 + -45.0 -150.0 -2.36553 + -30.0 -150.0 -0.65594 + -15.0 -150.0 1.60921 + 0.0 -150.0 0.68197 + 15.0 -150.0 -0.47503 + 30.0 -150.0 -1.60792 + 45.0 -150.0 -2.28172 + 60.0 -150.0 -2.27657 + 75.0 -150.0 -1.84368 + 90.0 -150.0 -1.32072 + 105.0 -150.0 -0.79693 + 120.0 -150.0 -0.27502 + 135.0 -150.0 0.15792 + 150.0 -150.0 0.37394 + 165.0 -150.0 0.30007 + 180.0 -150.0 -0.05487 + -180.0 -135.0 0.22137 + -165.0 -135.0 -0.11507 + -150.0 -135.0 -0.25069 + -135.0 -135.0 -0.2512 + -120.0 -135.0 -0.45372 + -105.0 -135.0 -0.91494 + -90.0 -135.0 -1.48283 + -75.0 -135.0 -1.97985 + -60.0 -135.0 -1.99291 + -45.0 -135.0 -0.87317 + -30.0 -135.0 2.15102 + -15.0 -135.0 2.08125 + 0.0 -135.0 1.01469 + 15.0 -135.0 -0.13409 + 30.0 -135.0 -1.08446 + 45.0 -135.0 -1.57764 + 60.0 -135.0 -1.54005 + 75.0 -135.0 -1.11846 + 90.0 -135.0 -0.54882 + 105.0 -135.0 -0.14353 + 120.0 -135.0 0.35059 + 135.0 -135.0 0.78961 + 150.0 -135.0 0.82176 + 165.0 -135.0 0.599 + 180.0 -135.0 0.22137 + -180.0 -120.0 0.76282 + -165.0 -120.0 0.65049 + -150.0 -120.0 0.73226 + -135.0 -120.0 0.80302 + -120.0 -120.0 0.46767 + -105.0 -120.0 -0.17578 + -90.0 -120.0 -0.55868 + -75.0 -120.0 -0.87022 + -60.0 -120.0 -0.44624 + -45.0 -120.0 1.42775 + -30.0 -120.0 3.49117 + -15.0 -120.0 2.47433 + 0.0 -120.0 1.4066 + 15.0 -120.0 0.51132 + 30.0 -120.0 -0.07964 + 45.0 -120.0 -0.49787 + 60.0 -120.0 -0.64487 + 75.0 -120.0 -0.35755 + 90.0 -120.0 0.18803 + 105.0 -120.0 0.5455 + 120.0 -120.0 0.97289 + 135.0 -120.0 1.16949 + 150.0 -120.0 1.1591 + 165.0 -120.0 1.05012 + 180.0 -120.0 0.76282 + -180.0 -105.0 1.42827 + -165.0 -105.0 1.50406 + -150.0 -105.0 1.72284 + -135.0 -105.0 1.64917 + -120.0 -105.0 1.03764 + -105.0 -105.0 0.56475 + -90.0 -105.0 0.20084 + -75.0 -105.0 0.20821 + -60.0 -105.0 1.22814 + -45.0 -105.0 2.98189 + -30.0 -105.0 3.57647 + -15.0 -105.0 2.65211 + 0.0 -105.0 1.95317 + 15.0 -105.0 1.65224 + 30.0 -105.0 1.43567 + 45.0 -105.0 0.92486 + 60.0 -105.0 0.55065 + 75.0 -105.0 0.46027 + 90.0 -105.0 0.6047 + 105.0 -105.0 1.02077 + 120.0 -105.0 1.33189 + 135.0 -105.0 1.51499 + 150.0 -105.0 1.50886 + 165.0 -105.0 1.53133 + 180.0 -105.0 1.42827 + -180.0 -90.0 1.90401 + -165.0 -90.0 2.03939 + -150.0 -90.0 2.29924 + -135.0 -90.0 1.79055 + -120.0 -90.0 1.3528 + -105.0 -90.0 1.02391 + -90.0 -90.0 0.90562 + -75.0 -90.0 1.23397 + -60.0 -90.0 2.45075 + -45.0 -90.0 3.45522 + -30.0 -90.0 3.09983 + -15.0 -90.0 2.62493 + 0.0 -90.0 2.65047 + 15.0 -90.0 3.09474 + 30.0 -90.0 2.79428 + 45.0 -90.0 2.15793 + 60.0 -90.0 1.57482 + 75.0 -90.0 1.3331 + 90.0 -90.0 1.13012 + 105.0 -90.0 1.17449 + 120.0 -90.0 1.41199 + 135.0 -90.0 1.62671 + 150.0 -90.0 1.81755 + 165.0 -90.0 1.82118 + 180.0 -90.0 1.90401 + -180.0 -75.0 1.80621 + -165.0 -75.0 2.0808 + -150.0 -75.0 2.03556 + -135.0 -75.0 1.68691 + -120.0 -75.0 1.29208 + -105.0 -75.0 1.22509 + -90.0 -75.0 1.43311 + -75.0 -75.0 2.16375 + -60.0 -75.0 2.1732 + -45.0 -75.0 2.21268 + -30.0 -75.0 2.13049 + -15.0 -75.0 2.40205 + 0.0 -75.0 3.24329 + 15.0 -75.0 4.06613 + 30.0 -75.0 3.57523 + 45.0 -75.0 2.86443 + 60.0 -75.0 2.31976 + 75.0 -75.0 1.66472 + 90.0 -75.0 1.27852 + 105.0 -75.0 1.09103 + 120.0 -75.0 1.36656 + 135.0 -75.0 1.53314 + 150.0 -75.0 1.59747 + 165.0 -75.0 1.64225 + 180.0 -75.0 1.80621 + -180.0 -60.0 0.94133 + -165.0 -60.0 1.07716 + -150.0 -60.0 1.06365 + -135.0 -60.0 0.96211 + -120.0 -60.0 0.94411 + -105.0 -60.0 1.25994 + -90.0 -60.0 0.79628 + -75.0 -60.0 0.57562 + -60.0 -60.0 0.56577 + -45.0 -60.0 0.74572 + -30.0 -60.0 1.24745 + -15.0 -60.0 2.21612 + 0.0 -60.0 3.54214 + 15.0 -60.0 3.78367 + 30.0 -60.0 3.4012 + 45.0 -60.0 2.89718 + 60.0 -60.0 1.94715 + 75.0 -60.0 1.36042 + 90.0 -60.0 0.7925 + 105.0 -60.0 0.57769 + 120.0 -60.0 0.77935 + 135.0 -60.0 0.79351 + 150.0 -60.0 0.75367 + 165.0 -60.0 0.78581 + 180.0 -60.0 0.94133 + -180.0 -45.0 -0.67275 + -165.0 -45.0 -0.59212 + -150.0 -45.0 -0.422 + -135.0 -45.0 -0.01106 + -120.0 -45.0 -0.5147 + -105.0 -45.0 -0.80922 + -90.0 -45.0 -0.99538 + -75.0 -45.0 -1.0643 + -60.0 -45.0 -0.87844 + -45.0 -45.0 -0.24576 + -30.0 -45.0 0.77634 + -15.0 -45.0 2.05251 + 0.0 -45.0 2.78505 + 15.0 -45.0 3.13379 + 30.0 -45.0 2.85045 + 45.0 -45.0 2.19151 + 60.0 -45.0 1.16243 + 75.0 -45.0 0.2072 + 90.0 -45.0 -0.42237 + 105.0 -45.0 -0.4646 + 120.0 -45.0 -0.38665 + 135.0 -45.0 -0.55232 + 150.0 -45.0 -0.67078 + 165.0 -45.0 -0.6783 + 180.0 -45.0 -0.67275 + -180.0 -30.0 -2.46944 + -165.0 -30.0 -2.32595 + -150.0 -30.0 -1.71439 + -135.0 -30.0 -2.48703 + -120.0 -30.0 -2.56054 + -105.0 -30.0 -2.46215 + -90.0 -30.0 -2.37111 + -75.0 -30.0 -2.19037 + -60.0 -30.0 -1.62432 + -45.0 -30.0 -0.7237 + -30.0 -30.0 0.35895 + -15.0 -30.0 1.35947 + 0.0 -30.0 2.12358 + 15.0 -30.0 2.36496 + 30.0 -30.0 1.96636 + 45.0 -30.0 1.05275 + 60.0 -30.0 -0.26183 + 75.0 -30.0 -1.16368 + 90.0 -30.0 -1.65442 + 105.0 -30.0 -1.64196 + 120.0 -30.0 -1.86484 + 135.0 -30.0 -2.09366 + 150.0 -30.0 -2.28268 + 165.0 -30.0 -2.41932 + 180.0 -30.0 -2.46944 + -180.0 -15.0 -3.82546 + -165.0 -15.0 -3.22967 + -150.0 -15.0 -3.93518 + -135.0 -15.0 -3.85949 + -120.0 -15.0 -3.58321 + -105.0 -15.0 -3.28549 + -90.0 -15.0 -3.01617 + -75.0 -15.0 -2.60005 + -60.0 -15.0 -1.92147 + -45.0 -15.0 -1.14234 + -30.0 -15.0 -0.00873 + -15.0 -15.0 1.14445 + 0.0 -15.0 1.77335 + 15.0 -15.0 1.79047 + 30.0 -15.0 1.09507 + 45.0 -15.0 -0.16297 + 60.0 -15.0 -1.43516 + 75.0 -15.0 -2.26699 + 90.0 -15.0 -2.45933 + 105.0 -15.0 -2.70542 + 120.0 -15.0 -3.03929 + 135.0 -15.0 -3.35545 + 150.0 -15.0 -3.62364 + 165.0 -15.0 -3.79758 + 180.0 -15.0 -3.82546 + -180.0 0.0 -3.8299 + -165.0 0.0 -4.37645 + -150.0 0.0 -4.29456 + -135.0 0.0 -4.01846 + -120.0 0.0 -3.66843 + -105.0 0.0 -3.3124 + -90.0 0.0 -2.96646 + -75.0 0.0 -2.58028 + -60.0 0.0 -2.08554 + -45.0 0.0 -0.9905 + -30.0 0.0 0.42261 + -15.0 0.0 1.35374 + 0.0 0.0 1.69885 + 15.0 0.0 1.35374 + 30.0 0.0 0.42261 + 45.0 0.0 -1.0031 + 60.0 0.0 -2.08554 + 75.0 0.0 -2.58028 + 90.0 0.0 -2.96646 + 105.0 0.0 -3.3124 + 120.0 0.0 -3.66843 + 135.0 0.0 -4.01846 + 150.0 0.0 -4.29456 + 165.0 0.0 -4.37645 + 180.0 0.0 -3.8299 + -180.0 15.0 -3.82546 + -165.0 15.0 -3.79758 + -150.0 15.0 -3.62364 + -135.0 15.0 -3.35545 + -120.0 15.0 -3.03929 + -105.0 15.0 -2.70542 + -90.0 15.0 -2.45933 + -75.0 15.0 -2.26699 + -60.0 15.0 -1.43516 + -45.0 15.0 -0.16297 + -30.0 15.0 1.09507 + -15.0 15.0 1.79047 + 0.0 15.0 1.77335 + 15.0 15.0 1.14445 + 30.0 15.0 -0.00873 + 45.0 15.0 -1.14234 + 60.0 15.0 -1.92147 + 75.0 15.0 -2.60005 + 90.0 15.0 -3.01617 + 105.0 15.0 -3.28549 + 120.0 15.0 -3.58321 + 135.0 15.0 -3.85949 + 150.0 15.0 -3.93518 + 165.0 15.0 -3.23037 + 180.0 15.0 -3.82546 + -180.0 30.0 -2.46944 + -165.0 30.0 -2.41932 + -150.0 30.0 -2.28268 + -135.0 30.0 -2.09366 + -120.0 30.0 -1.86484 + -105.0 30.0 -1.64196 + -90.0 30.0 -1.65442 + -75.0 30.0 -1.16368 + -60.0 30.0 -0.26183 + -45.0 30.0 1.05275 + -30.0 30.0 1.96636 + -15.0 30.0 2.36496 + 0.0 30.0 2.12358 + 15.0 30.0 1.35947 + 30.0 30.0 0.35055 + 45.0 30.0 -0.7237 + 60.0 30.0 -1.62432 + 75.0 30.0 -2.19037 + 90.0 30.0 -2.37111 + 105.0 30.0 -2.46215 + 120.0 30.0 -2.56054 + 135.0 30.0 -2.48703 + 150.0 30.0 -1.70729 + 165.0 30.0 -2.32595 + 180.0 30.0 -2.46944 + -180.0 45.0 -0.67275 + -165.0 45.0 -0.6783 + -150.0 45.0 -0.67078 + -135.0 45.0 -0.55232 + -120.0 45.0 -0.38665 + -105.0 45.0 -0.4646 + -90.0 45.0 -0.42237 + -75.0 45.0 0.2072 + -60.0 45.0 1.16243 + -45.0 45.0 2.19151 + -30.0 45.0 2.85045 + -15.0 45.0 3.13379 + 0.0 45.0 2.78505 + 15.0 45.0 2.06071 + 30.0 45.0 0.77634 + 45.0 45.0 -0.24576 + 60.0 45.0 -0.87844 + 75.0 45.0 -1.0643 + 90.0 45.0 -0.99538 + 105.0 45.0 -0.80922 + 120.0 45.0 -0.5147 + 135.0 45.0 -0.01106 + 150.0 45.0 -0.422 + 165.0 45.0 -0.59212 + 180.0 45.0 -0.67275 + -180.0 60.0 0.94133 + -165.0 60.0 0.78581 + -150.0 60.0 0.75367 + -135.0 60.0 0.79351 + -120.0 60.0 0.77935 + -105.0 60.0 0.57769 + -90.0 60.0 0.7925 + -75.0 60.0 1.36042 + -60.0 60.0 1.94715 + -45.0 60.0 2.89718 + -30.0 60.0 3.4012 + -15.0 60.0 3.78367 + 0.0 60.0 3.54214 + 15.0 60.0 2.19742 + 30.0 60.0 1.24745 + 45.0 60.0 0.74572 + 60.0 60.0 0.56577 + 75.0 60.0 0.57562 + 90.0 60.0 0.79628 + 105.0 60.0 1.25994 + 120.0 60.0 0.94411 + 135.0 60.0 0.96211 + 150.0 60.0 1.06365 + 165.0 60.0 1.07716 + 180.0 60.0 0.94133 + -180.0 75.0 1.80621 + -165.0 75.0 1.64225 + -150.0 75.0 1.59747 + -135.0 75.0 1.53314 + -120.0 75.0 1.36656 + -105.0 75.0 1.09103 + -90.0 75.0 1.27852 + -75.0 75.0 1.66472 + -60.0 75.0 2.31976 + -45.0 75.0 2.86443 + -30.0 75.0 3.57523 + -15.0 75.0 4.06613 + 0.0 75.0 3.24329 + 15.0 75.0 2.40295 + 30.0 75.0 2.13049 + 45.0 75.0 2.21268 + 60.0 75.0 2.1732 + 75.0 75.0 2.16375 + 90.0 75.0 1.43311 + 105.0 75.0 1.22509 + 120.0 75.0 1.29208 + 135.0 75.0 1.68691 + 150.0 75.0 2.03556 + 165.0 75.0 2.0808 + 180.0 75.0 1.80621 + -180.0 90.0 1.90401 + -165.0 90.0 1.82118 + -150.0 90.0 1.81755 + -135.0 90.0 1.62671 + -120.0 90.0 1.41199 + -105.0 90.0 1.17449 + -90.0 90.0 1.13012 + -75.0 90.0 1.3331 + -60.0 90.0 1.57482 + -45.0 90.0 2.15793 + -30.0 90.0 2.79428 + -15.0 90.0 3.09474 + 0.0 90.0 2.65047 + 15.0 90.0 2.62493 + 30.0 90.0 3.09673 + 45.0 90.0 3.45522 + 60.0 90.0 2.45075 + 75.0 90.0 1.23397 + 90.0 90.0 0.90562 + 105.0 90.0 1.02391 + 120.0 90.0 1.3528 + 135.0 90.0 1.79055 + 150.0 90.0 2.29924 + 165.0 90.0 2.03939 + 180.0 90.0 1.90401 + -180.0 105.0 1.42827 + -165.0 105.0 1.53133 + -150.0 105.0 1.50886 + -135.0 105.0 1.51499 + -120.0 105.0 1.33189 + -105.0 105.0 1.02077 + -90.0 105.0 0.6047 + -75.0 105.0 0.46027 + -60.0 105.0 0.55065 + -45.0 105.0 0.92486 + -30.0 105.0 1.43567 + -15.0 105.0 1.65224 + 0.0 105.0 1.95317 + 15.0 105.0 2.65211 + 30.0 105.0 3.58847 + 45.0 105.0 2.98189 + 60.0 105.0 1.22814 + 75.0 105.0 0.20821 + 90.0 105.0 0.20084 + 105.0 105.0 0.56475 + 120.0 105.0 1.03764 + 135.0 105.0 1.64917 + 150.0 105.0 1.72204 + 165.0 105.0 1.50406 + 180.0 105.0 1.42827 + -180.0 120.0 0.76282 + -165.0 120.0 1.05012 + -150.0 120.0 1.1591 + -135.0 120.0 1.16949 + -120.0 120.0 0.97289 + -105.0 120.0 0.5455 + -90.0 120.0 0.18803 + -75.0 120.0 -0.35755 + -60.0 120.0 -0.64487 + -45.0 120.0 -0.49787 + -30.0 120.0 -0.07964 + -15.0 120.0 0.51132 + 0.0 120.0 1.4066 + 15.0 120.0 2.47433 + 30.0 120.0 3.49117 + 45.0 120.0 1.42775 + 60.0 120.0 -0.44624 + 75.0 120.0 -0.87022 + 90.0 120.0 -0.55868 + 105.0 120.0 -0.17578 + 120.0 120.0 0.46767 + 135.0 120.0 0.80302 + 150.0 120.0 0.73536 + 165.0 120.0 0.65049 + 180.0 120.0 0.76282 + -180.0 135.0 0.22137 + -165.0 135.0 0.599 + -150.0 135.0 0.82176 + -135.0 135.0 0.78961 + -120.0 135.0 0.35059 + -105.0 135.0 -0.14353 + -90.0 135.0 -0.54882 + -75.0 135.0 -1.11846 + -60.0 135.0 -1.54005 + -45.0 135.0 -1.57764 + -30.0 135.0 -1.08446 + -15.0 135.0 -0.13409 + 0.0 135.0 1.01469 + 15.0 135.0 2.08125 + 30.0 135.0 2.15102 + 45.0 135.0 -0.87317 + 60.0 135.0 -1.99291 + 75.0 135.0 -1.97985 + 90.0 135.0 -1.48283 + 105.0 135.0 -0.91494 + 120.0 135.0 -0.45372 + 135.0 135.0 -0.2512 + 150.0 135.0 -0.25069 + 165.0 135.0 -0.11507 + 180.0 135.0 0.22137 + -180.0 150.0 -0.05487 + -165.0 150.0 0.30007 + -150.0 150.0 0.37394 + -135.0 150.0 0.15792 + -120.0 150.0 -0.27502 + -105.0 150.0 -0.79693 + -90.0 150.0 -1.32072 + -75.0 150.0 -1.85418 + -60.0 150.0 -2.27657 + -45.0 150.0 -2.28172 + -30.0 150.0 -1.60792 + -15.0 150.0 -0.47503 + 0.0 150.0 0.68197 + 15.0 150.0 1.60921 + 30.0 150.0 -0.65594 + 45.0 150.0 -2.36553 + 60.0 150.0 -2.95919 + 75.0 150.0 -2.73078 + 90.0 150.0 -2.17397 + 105.0 150.0 -1.65041 + 120.0 150.0 -1.25474 + 135.0 150.0 -1.02443 + 150.0 150.0 -0.83418 + 165.0 150.0 -0.49639 + 180.0 150.0 -0.05487 + -180.0 165.0 -0.03043 + -165.0 165.0 0.10146 + -150.0 165.0 -0.04055 + -135.0 165.0 -0.44166 + -120.0 165.0 -0.94989 + -105.0 165.0 -1.47132 + -90.0 165.0 -1.96898 + -75.0 165.0 -2.4591 + -60.0 165.0 -2.82977 + -45.0 165.0 -2.72832 + -30.0 165.0 -1.85441 + -15.0 165.0 -0.59328 + 0.0 165.0 0.47583 + 15.0 165.0 0.28654 + 30.0 165.0 -1.66034 + 45.0 165.0 -2.85897 + 60.0 165.0 -3.27921 + 75.0 165.0 -2.96238 + 90.0 165.0 -2.44752 + 105.0 165.0 -1.99117 + 120.0 165.0 -1.60564 + 135.0 165.0 -1.22723 + 150.0 165.0 -0.84288 + 165.0 165.0 -0.40282 + 180.0 165.0 -0.03043 + -180.0 180.0 0.0 + -165.0 180.0 -0.15918 + -150.0 180.0 -0.46924 + -135.0 180.0 -0.94887 + -120.0 180.0 -1.41919 + -105.0 180.0 -1.89608 + -90.0 180.0 -2.35024 + -75.0 180.0 -2.81648 + -60.0 180.0 -3.17758 + -45.0 180.0 -2.91092 + -30.0 180.0 -1.84916 + -15.0 180.0 -0.61868 + 0.0 180.0 1.44957 + 15.0 180.0 -0.61868 + 30.0 180.0 -1.84916 + 45.0 180.0 -2.91092 + 60.0 180.0 -3.17758 + 75.0 180.0 -2.81793 + 90.0 180.0 -2.34954 + 105.0 180.0 -1.91578 + 120.0 180.0 -1.41919 + 135.0 180.0 -0.94887 + 150.0 180.0 -0.46924 + 165.0 180.0 -0.15918 + 180.0 180.0 0.0 + +3 25 25 + -180.0 -180.0 0.98936 + -165.0 -180.0 0.76408 + -150.0 -180.0 0.21674 + -135.0 -180.0 -0.182 + -120.0 -180.0 -0.37729 + -105.0 -180.0 -0.47834 + -90.0 -180.0 -0.59267 + -75.0 -180.0 -0.93985 + -60.0 -180.0 -1.55558 + -45.0 -180.0 -2.01849 + -30.0 -180.0 -1.94076 + -15.0 -180.0 -1.464 + 0.0 -180.0 0.18253 + 15.0 -180.0 -0.80364 + 30.0 -180.0 -1.32974 + 45.0 -180.0 -1.31658 + 60.0 -180.0 -0.5014 + 75.0 -180.0 0.20431 + 90.0 -180.0 0.39356 + 105.0 -180.0 0.20356 + 120.0 -180.0 -0.16993 + 135.0 -180.0 -0.22733 + 150.0 -180.0 0.13703 + 165.0 -180.0 0.66356 + 180.0 -180.0 0.98936 + -180.0 -165.0 0.96101 + -165.0 -165.0 0.37535 + -150.0 -165.0 -0.35733 + -135.0 -165.0 -0.69994 + -120.0 -165.0 -0.67298 + -105.0 -165.0 -0.58294 + -90.0 -165.0 -0.66465 + -75.0 -165.0 -1.02945 + -60.0 -165.0 -1.72427 + -45.0 -165.0 -2.19357 + -30.0 -165.0 -2.26378 + -15.0 -165.0 -1.7385 + 0.0 -165.0 -0.80969 + 15.0 -165.0 -1.16164 + 30.0 -165.0 -1.62772 + 45.0 -165.0 -1.51932 + 60.0 -165.0 -0.62569 + 75.0 -165.0 0.1313 + 90.0 -165.0 0.41019 + 105.0 -165.0 0.32974 + 120.0 -165.0 0.19191 + 135.0 -165.0 0.3232 + 150.0 -165.0 0.68257 + 165.0 -165.0 1.03015 + 180.0 -165.0 0.96101 + -180.0 -150.0 0.72651 + -165.0 -150.0 -0.04361 + -150.0 -150.0 -0.78147 + -135.0 -150.0 -0.90703 + -120.0 -150.0 -0.65095 + -105.0 -150.0 -0.48165 + -90.0 -150.0 -0.59657 + -75.0 -150.0 -1.14449 + -60.0 -150.0 -1.75396 + -45.0 -150.0 -2.279 + -30.0 -150.0 -2.14873 + -15.0 -150.0 -0.26757 + 0.0 -150.0 -0.77578 + 15.0 -150.0 -1.30595 + 30.0 -150.0 -1.79607 + 45.0 -150.0 -1.55982 + 60.0 -150.0 -0.57905 + 75.0 -150.0 0.30576 + 90.0 -150.0 0.70711 + 105.0 -150.0 0.68903 + 120.0 -150.0 0.53594 + 135.0 -150.0 0.60304 + 150.0 -150.0 0.88805 + 165.0 -150.0 0.9972 + 180.0 -150.0 0.72651 + -180.0 -135.0 0.155 + -165.0 -135.0 -0.20013 + -150.0 -135.0 -0.7966 + -135.0 -135.0 -0.74958 + -120.0 -135.0 -0.43624 + -105.0 -135.0 -0.36715 + -90.0 -135.0 -0.58938 + -75.0 -135.0 -0.99698 + -60.0 -135.0 -1.59208 + -45.0 -135.0 -1.67026 + -30.0 -135.0 0.50672 + -15.0 -135.0 -0.03293 + 0.0 -135.0 -0.84501 + 15.0 -135.0 -1.52731 + 30.0 -135.0 -1.89898 + 45.0 -135.0 -1.54469 + 60.0 -135.0 -0.53752 + 75.0 -135.0 0.40003 + 90.0 -135.0 0.88952 + 105.0 -135.0 0.8215 + 120.0 -135.0 0.58663 + 135.0 -135.0 0.56781 + 150.0 -135.0 0.74002 + 165.0 -135.0 0.84486 + 180.0 -135.0 0.155 + -180.0 -120.0 0.34021 + -165.0 -120.0 -0.20306 + -150.0 -120.0 -0.62787 + -135.0 -120.0 -0.55418 + -120.0 -120.0 -0.38986 + -105.0 -120.0 -0.44533 + -90.0 -120.0 -0.60179 + -75.0 -120.0 -0.93351 + -60.0 -120.0 -1.09198 + -45.0 -120.0 -0.18408 + -30.0 -120.0 1.24545 + -15.0 -120.0 -0.24279 + 0.0 -120.0 -1.24581 + 15.0 -120.0 -1.76363 + 30.0 -120.0 -1.8081 + 45.0 -120.0 -1.40319 + 60.0 -120.0 -0.63233 + 75.0 -120.0 0.15411 + 90.0 -120.0 0.5864 + 105.0 -120.0 0.51937 + 120.0 -120.0 0.25822 + 135.0 -120.0 0.13668 + 150.0 -120.0 0.23659 + 165.0 -120.0 0.46899 + 180.0 -120.0 0.34021 + -180.0 -105.0 -0.15437 + -165.0 -105.0 -0.1406 + -150.0 -105.0 -0.54321 + -135.0 -105.0 -0.58112 + -120.0 -105.0 -0.64967 + -105.0 -105.0 -0.71916 + -90.0 -105.0 -0.78801 + -75.0 -105.0 -0.76163 + -60.0 -105.0 -0.33401 + -45.0 -105.0 0.9172 + -30.0 -105.0 0.65423 + -15.0 -105.0 -0.84456 + 0.0 -105.0 -1.63476 + 15.0 -105.0 -1.65992 + 30.0 -105.0 -1.33178 + 45.0 -105.0 -1.08999 + 60.0 -105.0 -0.74243 + 75.0 -105.0 -0.33157 + 90.0 -105.0 -0.20618 + 105.0 -105.0 -0.07103 + 120.0 -105.0 -0.25941 + 135.0 -105.0 -0.37634 + 150.0 -105.0 -0.12892 + 165.0 -105.0 0.19386 + 180.0 -105.0 -0.15437 + -180.0 -90.0 0.4463 + -165.0 -90.0 0.02406 + -150.0 -90.0 -0.42821 + -135.0 -90.0 -0.76736 + -120.0 -90.0 -0.93537 + -105.0 -90.0 -0.86621 + -90.0 -90.0 -0.66178 + -75.0 -90.0 -0.23513 + -60.0 -90.0 0.41508 + -45.0 -90.0 0.97897 + -30.0 -90.0 -0.30358 + -15.0 -90.0 -1.42025 + 0.0 -90.0 -1.62146 + 15.0 -90.0 -0.98816 + 30.0 -90.0 -0.58148 + 45.0 -90.0 -0.49791 + 60.0 -90.0 -0.32045 + 75.0 -90.0 -0.39639 + 90.0 -90.0 -0.94422 + 105.0 -90.0 -0.74539 + 120.0 -90.0 -0.60241 + 135.0 -90.0 -0.56295 + 150.0 -90.0 -0.15877 + 165.0 -90.0 0.33609 + 180.0 -90.0 0.4463 + -180.0 -75.0 0.69562 + -165.0 -75.0 0.16403 + -150.0 -75.0 -0.43627 + -135.0 -75.0 -0.79169 + -120.0 -75.0 -0.80743 + -105.0 -75.0 -0.48767 + -90.0 -75.0 0.12397 + -75.0 -75.0 0.80972 + -60.0 -75.0 0.52616 + -45.0 -75.0 -0.13884 + -30.0 -75.0 -1.08459 + -15.0 -75.0 -1.556 + 0.0 -75.0 -1.12531 + 15.0 -75.0 -0.19831 + 30.0 -75.0 -0.00344 + 45.0 -75.0 0.01061 + 60.0 -75.0 0.11066 + 75.0 -75.0 -0.12406 + 90.0 -75.0 -0.8198 + 105.0 -75.0 -1.04369 + 120.0 -75.0 -0.62525 + 135.0 -75.0 -0.37223 + 150.0 -75.0 0.09012 + 165.0 -75.0 0.58855 + 180.0 -75.0 0.69562 + -180.0 -60.0 0.70531 + -165.0 -60.0 0.15456 + -150.0 -60.0 -0.40882 + -135.0 -60.0 -0.57653 + -120.0 -60.0 -0.20146 + -105.0 -60.0 0.21285 + -90.0 -60.0 0.15007 + -75.0 -60.0 0.06572 + -60.0 -60.0 -0.22861 + -45.0 -60.0 -0.75313 + -30.0 -60.0 -1.17725 + -15.0 -60.0 -1.0704 + 0.0 -60.0 -0.29306 + 15.0 -60.0 0.11777 + 30.0 -60.0 0.42905 + 45.0 -60.0 0.53679 + 60.0 -60.0 0.52038 + 75.0 -60.0 0.27617 + 90.0 -60.0 -0.36078 + 105.0 -60.0 -0.66569 + 120.0 -60.0 -0.35068 + 135.0 -60.0 -0.13164 + 150.0 -60.0 0.27666 + 165.0 -60.0 0.70865 + 180.0 -60.0 0.70531 + -180.0 -45.0 0.42237 + -165.0 -45.0 -0.14148 + -150.0 -45.0 -0.50856 + -135.0 -45.0 -0.14423 + -120.0 -45.0 -0.53339 + -105.0 -45.0 -0.514 + -90.0 -45.0 -0.3329 + -75.0 -45.0 -0.24488 + -60.0 -45.0 -0.32054 + -45.0 -45.0 -0.40379 + -30.0 -45.0 -0.41006 + -15.0 -45.0 -0.23372 + 0.0 -45.0 0.07185 + 15.0 -45.0 0.70729 + 30.0 -45.0 1.16881 + 45.0 -45.0 1.23276 + 60.0 -45.0 0.77518 + 75.0 -45.0 0.5197 + 90.0 -45.0 -0.12956 + 105.0 -45.0 -0.24028 + 120.0 -45.0 -0.08791 + 135.0 -45.0 0.02315 + 150.0 -45.0 0.32774 + 165.0 -45.0 0.5533 + 180.0 -45.0 0.42237 + -180.0 -30.0 0.127 + -165.0 -30.0 -0.36697 + -150.0 -30.0 -0.33178 + -135.0 -30.0 -1.09856 + -120.0 -30.0 -1.01098 + -105.0 -30.0 -0.6178 + -90.0 -30.0 -0.18232 + -75.0 -30.0 0.14143 + -60.0 -30.0 0.40819 + -45.0 -30.0 0.50556 + -30.0 -30.0 0.34379 + -15.0 -30.0 0.31224 + 0.0 -30.0 0.97008 + 15.0 -30.0 1.70616 + 30.0 -30.0 1.99942 + 45.0 -30.0 1.79196 + 60.0 -30.0 1.26978 + 75.0 -30.0 0.65732 + 90.0 -30.0 0.04223 + 105.0 -30.0 0.22658 + 120.0 -30.0 0.08209 + 135.0 -30.0 0.05525 + 150.0 -30.0 0.22382 + 165.0 -30.0 0.33964 + 180.0 -30.0 0.127 + -180.0 -15.0 -0.06517 + -165.0 -15.0 -0.13598 + -150.0 -15.0 -1.30614 + -135.0 -15.0 -1.09555 + -120.0 -15.0 -0.64991 + -105.0 -15.0 -0.06482 + -90.0 -15.0 0.49509 + -75.0 -15.0 0.92103 + -60.0 -15.0 1.94755 + -45.0 -15.0 0.95164 + -30.0 -15.0 0.8787 + -15.0 -15.0 1.42479 + 0.0 -15.0 2.06338 + 15.0 -15.0 2.50243 + 30.0 -15.0 2.59266 + 45.0 -15.0 2.02131 + 60.0 -15.0 1.26236 + 75.0 -15.0 0.65759 + 90.0 -15.0 0.60601 + 105.0 -15.0 0.40777 + 120.0 -15.0 0.08605 + 135.0 -15.0 -0.02333 + 150.0 -15.0 0.06947 + 165.0 -15.0 0.13044 + 180.0 -15.0 -0.06517 + -180.0 0.0 -1.44412 + -165.0 0.0 -1.37206 + -150.0 0.0 -0.97055 + -135.0 0.0 -0.54692 + -120.0 0.0 -0.04768 + -105.0 0.0 0.65462 + -90.0 0.0 1.09803 + -75.0 0.0 1.4118 + -60.0 0.0 1.23685 + -45.0 0.0 1.32368 + -30.0 0.0 1.83555 + -15.0 0.0 2.29146 + 0.0 0.0 2.61632 + 15.0 0.0 2.73204 + 30.0 0.0 2.49607 + 45.0 0.0 1.76205 + 60.0 0.0 1.23208 + 75.0 0.0 1.11843 + 90.0 0.0 1.50389 + 105.0 0.0 0.20088 + 120.0 0.0 -0.22667 + 135.0 0.0 -0.38306 + 150.0 0.0 -0.27813 + 165.0 0.0 -0.08165 + 180.0 0.0 -1.44412 + -180.0 15.0 -1.54337 + -165.0 15.0 -0.94875 + -150.0 15.0 -0.4463 + -135.0 15.0 -0.06444 + -120.0 15.0 0.39675 + -105.0 15.0 0.90513 + -90.0 15.0 1.24019 + -75.0 15.0 1.18954 + -60.0 15.0 1.36753 + -45.0 15.0 1.8229 + -30.0 15.0 2.22229 + -15.0 15.0 2.44694 + 0.0 15.0 2.44244 + 15.0 15.0 2.26164 + 30.0 15.0 1.85516 + 45.0 15.0 1.56722 + 60.0 15.0 1.43193 + 75.0 15.0 0.71918 + 90.0 15.0 0.14053 + 105.0 15.0 -0.36429 + 120.0 15.0 -0.76466 + 135.0 15.0 -0.87217 + 150.0 15.0 -0.57197 + 165.0 15.0 -1.61569 + 180.0 15.0 -1.54337 + -180.0 30.0 -1.09485 + -165.0 30.0 -0.56681 + -150.0 30.0 -0.13387 + -135.0 30.0 0.19412 + -120.0 30.0 0.57374 + -105.0 30.0 0.86366 + -90.0 30.0 0.80314 + -75.0 30.0 1.08125 + -60.0 30.0 1.39143 + -45.0 30.0 1.86048 + -30.0 30.0 2.01491 + -15.0 30.0 2.03904 + 0.0 30.0 1.77856 + 15.0 30.0 1.48754 + 30.0 30.0 1.53762 + 45.0 30.0 1.22766 + 60.0 30.0 0.55347 + 75.0 30.0 -0.06469 + 90.0 30.0 -0.47099 + 105.0 30.0 -0.82958 + 120.0 30.0 -1.01883 + 135.0 30.0 -0.75479 + 150.0 30.0 -1.39221 + 165.0 30.0 -1.55942 + 180.0 30.0 -1.09485 + -180.0 45.0 -0.55882 + -165.0 45.0 -0.22825 + -150.0 45.0 0.01795 + -135.0 45.0 0.21896 + -120.0 45.0 0.49238 + -105.0 45.0 0.39403 + -90.0 45.0 0.4887 + -75.0 45.0 0.90318 + -60.0 45.0 1.0673 + -45.0 45.0 1.40576 + -30.0 45.0 1.504 + -15.0 45.0 1.39328 + 0.0 45.0 1.13519 + 15.0 45.0 1.11176 + 30.0 45.0 0.55506 + 45.0 45.0 0.04408 + 60.0 45.0 -0.2593 + 75.0 45.0 -0.42888 + 90.0 45.0 -0.51963 + 105.0 45.0 -0.55634 + 120.0 45.0 -0.25212 + 135.0 45.0 -0.62098 + 150.0 45.0 -1.22694 + 165.0 45.0 -1.05054 + 180.0 45.0 -0.55882 + -180.0 60.0 -0.18285 + -165.0 60.0 -0.0865 + -150.0 60.0 0.00476 + -135.0 60.0 0.11545 + -120.0 60.0 0.16266 + -105.0 60.0 0.01161 + -90.0 60.0 0.39632 + -75.0 60.0 0.75519 + -60.0 60.0 0.96557 + -45.0 60.0 0.9764 + -30.0 60.0 0.97745 + -15.0 60.0 0.97978 + 0.0 60.0 0.79555 + 15.0 60.0 -0.15675 + 30.0 60.0 -0.51647 + 45.0 60.0 -0.39418 + 60.0 60.0 -0.15303 + 75.0 60.0 -0.008 + 90.0 60.0 0.09982 + 105.0 60.0 0.37002 + 120.0 60.0 0.12378 + 135.0 60.0 -0.63827 + 150.0 60.0 -0.59589 + 165.0 60.0 -0.38041 + 180.0 60.0 -0.18285 + -180.0 75.0 -0.066 + -165.0 75.0 -0.07528 + -150.0 75.0 -0.04119 + -135.0 75.0 -0.07933 + -120.0 75.0 -0.19424 + -105.0 75.0 -0.27213 + -90.0 75.0 0.0 + -75.0 75.0 0.40627 + -60.0 75.0 0.67141 + -45.0 75.0 0.48954 + -30.0 75.0 0.49392 + -15.0 75.0 0.53926 + 0.0 75.0 -0.43613 + 15.0 75.0 -0.91296 + 30.0 75.0 -0.57046 + 45.0 75.0 0.20602 + 60.0 75.0 0.66426 + 75.0 75.0 0.78486 + 90.0 75.0 0.83638 + 105.0 75.0 0.47569 + 120.0 75.0 -0.24156 + 135.0 75.0 -0.36935 + 150.0 75.0 -0.03276 + 165.0 75.0 -0.00079 + 180.0 75.0 -0.066 + -180.0 90.0 -0.19813 + -165.0 90.0 -0.18275 + -150.0 90.0 -0.13564 + -135.0 90.0 -0.16443 + -120.0 90.0 -0.25121 + -105.0 90.0 -0.36588 + -90.0 90.0 -0.30532 + -75.0 90.0 -0.05335 + -60.0 90.0 -0.11065 + -45.0 90.0 -0.24703 + -30.0 90.0 -0.35383 + -15.0 90.0 -0.66704 + 0.0 90.0 -1.22785 + 15.0 90.0 -0.99837 + 30.0 90.0 0.07165 + 45.0 90.0 1.1709 + 60.0 90.0 1.52568 + 75.0 90.0 1.19212 + 90.0 90.0 0.65821 + 105.0 90.0 0.07691 + 120.0 90.0 -0.25244 + 135.0 90.0 -0.10611 + 150.0 90.0 0.09358 + 165.0 90.0 0.00731 + 180.0 90.0 -0.19813 + -180.0 105.0 -0.3485 + -165.0 105.0 -0.15035 + -150.0 105.0 -0.40367 + -135.0 105.0 -0.01197 + -120.0 105.0 -0.061 + -105.0 105.0 -0.1519 + -90.0 105.0 -0.31715 + -75.0 105.0 -0.62391 + -60.0 105.0 -0.90231 + -45.0 105.0 -1.37607 + -30.0 105.0 -1.62179 + -15.0 105.0 -1.73579 + 0.0 105.0 -1.64875 + 15.0 105.0 -0.75542 + 30.0 105.0 0.71157 + 45.0 105.0 1.26356 + 60.0 105.0 0.7596 + 75.0 105.0 0.594 + 90.0 105.0 0.30667 + 105.0 105.0 -0.06284 + 120.0 105.0 -0.20456 + 135.0 105.0 -0.08836 + 150.0 105.0 -0.1659 + 165.0 105.0 -0.35505 + 180.0 105.0 -0.3485 + -180.0 120.0 -0.34576 + -165.0 120.0 0.02576 + -150.0 120.0 0.27228 + -135.0 120.0 0.28454 + -120.0 120.0 0.18375 + -105.0 120.0 0.01398 + -90.0 120.0 -0.27455 + -75.0 120.0 -0.7758 + -60.0 120.0 -1.42554 + -45.0 120.0 -1.99064 + -30.0 120.0 -2.37393 + -15.0 120.0 -2.20009 + 0.0 120.0 -1.60683 + 15.0 120.0 -0.44372 + 30.0 120.0 1.09513 + 45.0 120.0 0.35522 + 60.0 120.0 -0.04151 + 75.0 120.0 0.17766 + 90.0 120.0 0.14305 + 105.0 120.0 -0.13472 + 120.0 120.0 -0.31725 + 135.0 120.0 -0.458 + 150.0 120.0 -0.64821 + 165.0 120.0 -0.63355 + 180.0 120.0 -0.34576 + -180.0 135.0 -0.08457 + -165.0 135.0 0.36013 + -150.0 135.0 0.54446 + -135.0 135.0 0.48098 + -120.0 135.0 0.27776 + -105.0 135.0 0.02335 + -90.0 135.0 -0.28766 + -75.0 135.0 -0.80414 + -60.0 135.0 -1.5133 + -45.0 135.0 -2.20028 + -30.0 135.0 -2.36835 + -15.0 135.0 -2.12483 + 0.0 135.0 -1.376 + 15.0 135.0 -0.25291 + 30.0 135.0 0.78641 + 45.0 135.0 -0.96321 + 60.0 135.0 -0.57499 + 75.0 135.0 -0.00398 + 90.0 135.0 0.08668 + 105.0 135.0 -0.17475 + 120.0 135.0 -0.55212 + 135.0 135.0 -0.94225 + 150.0 135.0 -1.01661 + 165.0 135.0 -0.69656 + 180.0 135.0 -0.08457 + -180.0 150.0 0.2851 + -165.0 150.0 0.66185 + -150.0 150.0 0.69665 + -135.0 150.0 0.48378 + -120.0 150.0 0.16399 + -105.0 150.0 -0.09637 + -90.0 150.0 -0.36878 + -75.0 150.0 -0.80945 + -60.0 150.0 -1.41793 + -45.0 150.0 -2.18914 + -30.0 150.0 -2.20786 + -15.0 150.0 -1.82363 + 0.0 150.0 -1.11629 + 15.0 150.0 -0.04735 + 30.0 150.0 -1.17126 + 45.0 150.0 -1.34899 + 60.0 150.0 -0.62467 + 75.0 150.0 0.05642 + 90.0 150.0 0.17332 + 105.0 150.0 -0.14673 + 120.0 150.0 -0.698 + 135.0 150.0 -1.11306 + 150.0 150.0 -1.02621 + 165.0 150.0 -0.41495 + 180.0 150.0 0.2851 + -180.0 165.0 0.76902 + -165.0 165.0 0.89311 + -150.0 165.0 0.59358 + -135.0 165.0 0.25887 + -120.0 165.0 -0.03955 + -105.0 165.0 -0.24006 + -90.0 165.0 -0.46456 + -75.0 165.0 -0.8317 + -60.0 165.0 -1.40143 + -45.0 165.0 -1.95471 + -30.0 165.0 -2.00388 + -15.0 165.0 -1.56184 + 0.0 165.0 -0.83182 + 15.0 165.0 -0.45132 + 30.0 165.0 -1.23096 + 45.0 165.0 -1.2265 + 60.0 165.0 -0.44761 + 75.0 165.0 0.25891 + 90.0 165.0 0.39936 + 105.0 165.0 0.0765 + 120.0 165.0 -0.49787 + 135.0 165.0 -0.79017 + 150.0 165.0 -0.50914 + 165.0 165.0 0.18602 + 180.0 165.0 0.76902 + -180.0 180.0 0.98936 + -165.0 180.0 0.76408 + -150.0 180.0 0.21674 + -135.0 180.0 -0.182 + -120.0 180.0 -0.37729 + -105.0 180.0 -0.47834 + -90.0 180.0 -0.59267 + -75.0 180.0 -0.93985 + -60.0 180.0 -1.55558 + -45.0 180.0 -2.01849 + -30.0 180.0 -1.94076 + -15.0 180.0 -1.464 + 0.0 180.0 0.18253 + 15.0 180.0 -0.80364 + 30.0 180.0 -1.32974 + 45.0 180.0 -1.31658 + 60.0 180.0 -0.5014 + 75.0 180.0 0.20431 + 90.0 180.0 0.39356 + 105.0 180.0 0.20356 + 120.0 180.0 -0.16993 + 135.0 180.0 -0.22733 + 150.0 180.0 0.13703 + 165.0 180.0 0.66356 + 180.0 180.0 0.98936 diff --git a/examples/amoeba/data.ubiquitin b/examples/amoeba/data.ubiquitin new file mode 100644 index 0000000000..aada520e6d --- /dev/null +++ b/examples/amoeba/data.ubiquitin @@ -0,0 +1,36282 @@ +LAMMPS data file created from Tinker ubiquitin.xyz and amoeba_ubiquitin.prm files + +9737 atoms +6908 bonds +5094 angles +3297 dihedrals +651 impropers +6 atom types +48 bond types +111 angle types +189 dihedral types +33 improper types +0 54.99 xlo xhi +0 41.91 ylo yhi +0 41.91 zlo zhi +6 pitorsion types +71 bitorsions +106 pitorsions + +Masses + +1 14.003 +2 12.0 +3 15.995 +4 1.008 +5 31.972 +6 15.999 + +Atoms + +1 1 1 0 9.963103 5.604761 0.008413 +2 1 2 0 9.595854 5.616857 -1.387669 +3 1 2 0 8.190092 6.079015 -1.537478 +4 1 3 0 7.228002 5.276741 -1.343729 +5 1 4 0 9.248539 5.324856 0.671238 +6 1 4 0 10.310756 6.543175 0.309331 +7 1 4 0 10.709289 4.952168 0.170763 +8 1 4 0 10.342605 6.385672 -1.876827 +9 1 2 0 9.777424 4.134312 -1.928716 +10 1 2 0 9.485635 3.817581 -3.412559 +11 1 5 0 10.117567 2.116666 -3.905314 +12 1 2 0 9.214556 1.102048 -2.698793 +13 1 4 0 8.995937 3.481218 -1.313618 +14 1 4 0 10.813555 3.756529 -1.729292 +15 1 4 0 10.074410 4.479912 -4.109344 +16 1 4 0 8.425285 3.844015 -3.623677 +17 1 4 0 9.476005 1.466410 -1.683717 +18 1 4 0 9.531462 0.065851 -2.728696 +19 1 4 0 8.157703 1.221346 -2.837348 +20 1 1 0 8.075651 7.407997 -1.589694 +21 1 2 0 6.846787 8.085212 -1.711474 +22 1 2 0 6.189365 7.484141 -3.005186 +23 1 3 0 6.734597 7.675309 -4.068223 +24 1 4 0 8.951370 7.929371 -1.808185 +25 1 4 0 6.170991 7.786742 -0.821099 +26 1 2 0 7.045430 9.684350 -1.731240 +27 1 2 0 5.783147 10.543682 -1.755861 +28 1 2 0 4.878227 10.489051 -3.011941 +29 1 3 0 5.100354 11.293553 -3.954911 +30 1 1 0 3.787647 9.697542 -2.965312 +31 1 4 0 7.774130 9.919050 -2.476360 +32 1 4 0 7.651586 10.027873 -0.831299 +33 1 4 0 6.211664 11.592747 -1.874653 +34 1 4 0 5.241990 10.447103 -0.794638 +35 1 4 0 3.649816 9.134508 -2.112027 +36 1 4 0 3.185263 9.534971 -3.811678 +37 1 1 0 5.036494 6.768214 -2.882880 +38 1 2 0 4.174197 6.305367 -3.990075 +39 1 2 0 2.728098 6.643573 -3.679890 +40 1 3 0 2.485580 7.278505 -2.662964 +41 1 4 0 4.569007 6.922928 -2.037115 +42 1 4 0 4.411152 6.930990 -4.873795 +43 1 2 0 4.308955 4.772244 -4.223706 +44 1 2 0 3.611944 3.837131 -3.115456 +45 1 2 0 5.819814 4.327532 -4.394409 +46 1 2 0 3.741844 2.375632 -3.462760 +47 1 4 0 3.791883 4.511448 -5.208449 +48 1 4 0 2.547744 4.084411 -3.073934 +49 1 4 0 4.014866 4.138283 -2.115089 +50 1 4 0 6.389594 4.495961 -3.449963 +51 1 4 0 6.367709 4.976173 -5.128547 +52 1 4 0 5.908880 3.195479 -4.756566 +53 1 4 0 3.393827 2.185310 -4.536109 +54 1 4 0 3.102312 1.694874 -2.887955 +55 1 4 0 4.760146 2.000072 -3.426085 +56 1 1 0 1.684147 6.367185 -4.575190 +57 1 2 0 0.304736 6.655628 -4.231748 +58 1 2 0 -0.626185 5.414986 -4.519968 +59 1 3 0 -0.188430 4.481000 -5.239972 +60 1 4 0 1.811341 5.682101 -5.345446 +61 1 4 0 0.263980 6.686032 -3.118862 +62 1 2 0 -0.297187 7.876289 -4.967331 +63 1 2 0 0.656467 9.081574 -5.199077 +64 1 2 0 1.564880 9.231158 -6.344247 +65 1 2 0 0.518242 10.180719 -4.311011 +66 1 2 0 2.254905 10.428397 -6.564398 +67 1 2 0 1.266077 11.295338 -4.552651 +68 1 2 0 2.142006 11.455092 -5.583064 +69 1 4 0 -1.140556 8.280905 -4.296048 +70 1 4 0 -0.810414 7.566064 -5.884866 +71 1 4 0 1.670266 8.406033 -7.077975 +72 1 4 0 -0.165699 10.178758 -3.490791 +73 1 4 0 2.904650 10.539850 -7.451626 +74 1 4 0 1.204400 12.095766 -3.710976 +75 1 4 0 2.760015 12.463610 -5.750178 +76 1 1 0 -1.919463 5.547799 -4.105657 +77 1 2 0 -3.045010 4.631011 -4.380927 +78 1 2 0 -4.206191 5.442932 -4.923986 +79 1 3 0 -4.727895 6.299647 -4.174539 +80 1 4 0 -2.189033 6.454364 -3.576690 +81 1 4 0 -2.684685 3.831124 -5.207150 +82 1 2 0 -3.444418 3.799031 -3.130661 +83 1 2 0 -4.638073 2.796605 -3.426800 +84 1 2 0 -2.172636 3.025555 -2.692910 +85 1 4 0 -3.669812 4.518348 -2.290701 +86 1 4 0 -4.428840 2.137544 -4.376863 +87 1 4 0 -5.534299 3.436652 -3.543248 +88 1 4 0 -4.789185 2.176325 -2.494354 +89 1 4 0 -1.667617 3.522055 -1.846039 +90 1 4 0 -1.416445 2.861139 -3.471806 +91 1 4 0 -2.413054 1.986644 -2.328475 +92 1 1 0 -4.550673 5.196731 -6.274871 +93 1 2 0 -5.820881 5.714130 -6.792896 +94 1 2 0 -6.901797 4.657281 -6.559257 +95 1 3 0 -6.707326 3.538748 -6.976520 +96 1 4 0 -4.247417 4.330282 -6.731623 +97 1 4 0 -6.018895 6.628095 -6.157881 +98 1 2 0 -5.786797 6.030910 -8.386430 +99 1 2 0 -7.031253 6.879587 -8.916479 +100 1 2 0 -6.946629 7.328107 -10.409836 +101 1 2 0 -6.782582 6.224048 -11.537592 +102 1 1 0 -6.791739 6.775547 -12.918869 +103 1 4 0 -5.650656 5.119864 -8.896094 +104 1 4 0 -4.894535 6.632893 -8.720825 +105 1 4 0 -7.188700 7.743879 -8.218707 +106 1 4 0 -7.899583 6.225721 -8.760371 +107 1 4 0 -5.985957 7.986594 -10.510771 +108 1 4 0 -7.792216 7.961266 -10.639952 +109 1 4 0 -7.448325 5.332480 -11.448147 +110 1 4 0 -5.800269 5.666745 -11.336805 +111 1 4 0 -5.991776 7.279636 -13.178670 +112 1 4 0 -7.621495 7.404931 -13.058222 +113 1 4 0 -6.983504 6.085979 -13.693073 +114 1 1 0 -8.069363 5.037776 -5.939754 +115 1 2 0 -9.334342 4.259320 -5.870215 +116 1 2 0 -10.106400 4.390027 -7.235984 +117 1 3 0 -9.678872 5.138872 -8.064541 +118 1 4 0 -8.065341 5.988423 -5.484094 +119 1 4 0 -9.057846 3.167719 -5.835950 +120 1 2 0 -10.266512 4.660993 -4.660344 +121 1 3 0 -10.534149 6.114601 -4.706758 +122 1 2 0 -9.745157 4.269631 -3.191928 +123 1 4 0 -11.263017 4.131676 -4.781723 +124 1 4 0 -9.713871 6.599029 -4.391676 +125 1 4 0 -9.116723 4.972749 -2.508566 +126 1 4 0 -9.168034 3.361328 -3.330127 +127 1 4 0 -10.522836 3.973872 -2.499829 +128 1 1 0 -11.233860 3.687218 -7.306137 +129 1 2 0 -12.200193 3.653311 -8.374575 +130 1 2 0 -13.220650 4.788154 -8.169599 +131 1 3 0 -13.737841 5.372844 -9.165473 +132 1 4 0 -11.460538 2.988105 -6.540266 +133 1 4 0 -11.637688 3.949136 -9.406377 +134 1 2 0 -12.914543 2.186268 -8.423705 +135 1 2 0 -12.050888 0.859767 -8.189045 +136 1 2 0 -12.754212 -0.443223 -8.481524 +137 1 2 0 -10.761720 0.854864 -8.962914 +138 1 4 0 -13.378342 2.203311 -9.441391 +139 1 4 0 -13.731396 2.273518 -7.697910 +140 1 4 0 -11.784384 0.837730 -7.097584 +141 1 4 0 -12.178199 -1.386252 -8.511713 +142 1 4 0 -13.030296 -0.361584 -9.541647 +143 1 4 0 -13.665537 -0.574300 -7.888432 +144 1 4 0 -10.907312 0.853311 -10.020395 +145 1 4 0 -10.166450 -0.087962 -8.625340 +146 1 4 0 -10.131655 1.808766 -8.717686 +147 1 1 0 -13.463568 5.196109 -6.936262 +148 1 2 0 -14.321525 6.337206 -6.640073 +149 1 2 0 -13.602436 7.749411 -6.813046 +150 1 3 0 -14.285287 8.753093 -7.068264 +151 1 4 0 -13.224563 4.686522 -6.108713 +152 1 4 0 -15.116925 6.447123 -7.471724 +153 1 2 0 -15.130805 6.126006 -5.300665 +154 1 3 0 -14.245708 5.884444 -4.246742 +155 1 2 0 -16.085304 4.854769 -5.370470 +156 1 4 0 -15.668029 7.073411 -5.139360 +157 1 4 0 -13.863528 6.745981 -4.031876 +158 1 4 0 -16.931480 4.985645 -6.114646 +159 1 4 0 -16.633409 4.776539 -4.392875 +160 1 4 0 -15.447009 3.996959 -5.527187 +161 1 1 0 -12.255780 7.804163 -6.773987 +162 1 2 0 -11.475822 9.029360 -6.961862 +163 1 2 0 -10.482668 9.429993 -5.875126 +164 1 3 0 -9.615012 10.212498 -6.150085 +165 1 4 0 -11.791631 6.946169 -6.476230 +166 1 4 0 -10.849439 8.869550 -7.825758 +167 1 4 0 -12.070294 9.912283 -7.089554 +168 1 1 0 -10.710240 8.937450 -4.551265 +169 1 2 0 -9.795182 9.275190 -3.486218 +170 1 2 0 -8.432503 8.733444 -3.903900 +171 1 3 0 -8.256860 7.497941 -4.141932 +172 1 4 0 -11.613017 8.458729 -4.378865 +173 1 4 0 -9.758201 10.415786 -3.586213 +174 1 2 0 -10.207682 8.847560 -2.068515 +175 1 2 0 -9.468868 9.640494 -0.969458 +176 1 2 0 -9.960726 11.106750 -0.880514 +177 1 2 0 -8.996147 11.882980 0.056845 +178 1 1 0 -9.422979 13.246330 0.389189 +179 1 4 0 -10.025076 7.711214 -1.993654 +180 1 4 0 -11.260829 8.969143 -1.909413 +181 1 4 0 -8.357381 9.561485 -1.037070 +182 1 4 0 -9.831062 9.156523 0.052119 +183 1 4 0 -10.951565 11.152527 -0.421834 +184 1 4 0 -10.025528 11.645570 -1.861235 +185 1 4 0 -7.996392 12.007902 -0.493686 +186 1 4 0 -8.903714 11.241749 1.019391 +187 1 4 0 -9.372439 13.931515 -0.356496 +188 1 4 0 -8.869279 13.642636 1.216690 +189 1 4 0 -10.417962 13.346471 0.725918 +190 1 1 0 -7.417712 9.626751 -3.887457 +191 1 2 0 -6.048686 9.319758 -4.265281 +192 1 2 0 -5.195256 9.655954 -3.012996 +193 1 3 0 -5.383682 10.790154 -2.469855 +194 1 4 0 -7.536192 10.638944 -3.603417 +195 1 4 0 -5.899497 8.237555 -4.489940 +196 1 2 0 -5.632346 10.139153 -5.558621 +197 1 3 0 -6.651850 9.845307 -6.610520 +198 1 2 0 -4.307909 9.733791 -6.252541 +199 1 4 0 -5.546957 11.240303 -5.391676 +200 1 4 0 -7.479446 10.239776 -6.352124 +201 1 4 0 -4.057722 10.346459 -7.141293 +202 1 4 0 -4.216816 8.651918 -6.414903 +203 1 4 0 -3.513698 9.947681 -5.542599 +204 1 1 0 -4.487761 8.698281 -2.479508 +205 1 2 0 -3.941682 8.719222 -1.101838 +206 1 2 0 -2.471661 8.338585 -1.186861 +207 1 3 0 -2.098577 7.337481 -1.795680 +208 1 4 0 -4.371107 7.734334 -2.775858 +209 1 4 0 -3.985516 9.750968 -0.737465 +210 1 2 0 -4.697768 7.852820 -0.064484 +211 1 2 0 -4.708913 6.295035 -0.438982 +212 1 2 0 -6.123205 8.316839 0.212195 +213 1 2 0 -5.620903 5.382941 0.512646 +214 1 4 0 -4.057362 7.911400 0.860642 +215 1 4 0 -3.677285 5.838816 -0.381317 +216 1 4 0 -5.097879 6.136516 -1.456773 +217 1 4 0 -6.958332 8.061232 -0.486042 +218 1 4 0 -6.120750 9.492014 0.254246 +219 1 4 0 -6.463653 8.052122 1.235972 +220 1 4 0 -6.708420 5.577546 0.309314 +221 1 4 0 -5.353714 5.729677 1.560568 +222 1 4 0 -5.449967 4.323238 0.397743 +223 1 1 0 -1.597496 9.147378 -0.364603 +224 1 2 0 -0.135695 9.298656 -0.268971 +225 1 2 0 0.407838 8.259131 0.762984 +226 1 3 0 -0.125678 8.256398 1.864934 +227 1 4 0 -2.061490 9.698188 0.341812 +228 1 4 0 0.291486 9.062300 -1.222284 +229 1 2 0 0.359683 10.712136 0.203065 +230 1 3 0 -0.513535 11.802509 -0.157986 +231 1 2 0 1.661404 11.100111 -0.496546 +232 1 4 0 0.487415 10.613723 1.289529 +233 1 4 0 -0.894682 12.193680 0.613553 +234 1 4 0 1.924560 12.095482 -0.170163 +235 1 4 0 1.527624 11.126022 -1.612055 +236 1 4 0 2.524096 10.406872 -0.273554 +237 1 1 0 1.458638 7.533911 0.367476 +238 1 2 0 2.250809 6.653110 1.155065 +239 1 2 0 3.767103 6.967571 0.917085 +240 1 3 0 4.150469 7.414883 -0.134304 +241 1 4 0 1.800100 7.626011 -0.603649 +242 1 4 0 1.984132 6.848652 2.199761 +243 1 2 0 1.985932 5.208560 0.673411 +244 1 2 0 0.499001 4.775460 0.950638 +245 1 2 0 0.302449 3.382258 0.307039 +246 1 2 0 0.318833 4.590905 2.467625 +247 1 4 0 2.620352 4.479840 1.153057 +248 1 4 0 2.170192 5.140748 -0.421262 +249 1 4 0 -0.141837 5.460611 0.448133 +250 1 4 0 -0.765868 3.158508 0.337643 +251 1 4 0 0.881511 2.586559 0.876485 +252 1 4 0 0.635114 3.382961 -0.727832 +253 1 4 0 0.991181 3.809378 2.860913 +254 1 4 0 -0.810422 4.305406 2.724253 +255 1 4 0 0.495432 5.527245 3.085307 +256 1 1 0 4.493868 6.668739 2.051013 +257 1 2 0 5.977452 6.826187 2.081574 +258 1 2 0 6.574479 5.473810 2.542943 +259 1 3 0 7.539223 5.437653 3.331859 +260 1 4 0 4.101906 6.335458 2.916399 +261 1 4 0 6.354091 6.853748 1.027532 +262 1 2 0 6.470006 8.005228 2.962480 +263 1 2 0 6.523156 9.385148 2.265263 +264 1 2 0 6.660389 10.531119 3.176475 +265 1 3 0 7.818717 10.946737 3.494784 +266 1 3 0 5.641727 11.057335 3.676704 +267 1 4 0 7.426538 7.872313 3.417016 +268 1 4 0 5.818378 7.862045 3.841666 +269 1 4 0 5.562369 9.490953 1.596644 +270 1 4 0 7.296811 9.382149 1.478494 +271 1 1 0 6.080956 4.317668 2.172588 +272 1 2 0 6.395184 2.914756 2.360428 +273 1 2 0 7.756330 2.626277 1.796235 +274 1 3 0 8.336336 3.369371 0.946953 +275 1 4 0 5.286582 4.431259 1.580017 +276 1 4 0 6.544551 2.775770 3.450173 +277 1 2 0 5.254270 2.029334 1.828047 +278 1 2 0 3.855516 2.115298 2.663831 +279 1 2 0 4.878513 2.275077 0.297641 +280 1 4 0 5.659978 0.937168 1.997214 +281 1 4 0 3.988977 1.632132 3.721066 +282 1 4 0 3.154094 1.488836 2.202125 +283 1 4 0 3.518024 3.208135 2.707458 +284 1 4 0 4.391723 3.244259 0.119355 +285 1 4 0 4.197460 1.515591 -0.214541 +286 1 4 0 5.820024 2.281294 -0.232189 +287 1 1 0 8.439412 1.532076 2.306730 +288 1 2 0 9.766718 1.104522 1.810124 +289 1 2 0 9.609640 -0.146333 0.921245 +290 1 3 0 8.595667 -0.823014 1.060066 +291 1 4 0 7.906057 0.817610 2.769235 +292 1 4 0 10.402589 1.878772 1.340853 +293 1 2 0 10.623245 0.647963 3.024596 +294 1 2 0 11.099332 1.681203 4.040791 +295 1 2 0 12.471923 2.276164 3.591284 +296 1 3 0 13.467460 1.635754 4.022756 +297 1 3 0 12.447093 3.241865 2.732975 +298 1 4 0 11.464087 0.045385 2.632771 +299 1 4 0 10.035308 -0.165388 3.606999 +300 1 4 0 11.283249 1.117646 5.042705 +301 1 4 0 10.341030 2.493195 4.310498 +302 1 1 0 10.649425 -0.442448 0.039711 +303 1 2 0 10.721650 -1.691625 -0.719097 +304 1 2 0 10.688929 -3.019270 0.171469 +305 1 3 0 10.136780 -4.017164 -0.258017 +306 1 4 0 9.824725 -1.703322 -1.331408 +307 1 2 0 12.047830 -1.730137 -1.583772 +308 1 2 0 12.438841 -0.254934 -1.430560 +309 1 2 0 11.880473 0.342410 -0.130781 +310 1 4 0 11.910217 -2.011767 -2.680814 +311 1 4 0 12.740874 -2.453727 -1.101295 +312 1 4 0 12.084519 0.391154 -2.320456 +313 1 4 0 13.550172 -0.165266 -1.345695 +314 1 4 0 11.730541 1.403440 -0.268593 +315 1 4 0 12.568702 0.262680 0.684216 +316 1 1 0 11.185418 -2.821488 1.401909 +317 1 2 0 11.478487 -3.819995 2.417066 +318 1 2 0 10.240507 -4.133695 3.340195 +319 1 3 0 10.437807 -4.944657 4.272068 +320 1 4 0 11.675553 -1.939666 1.629182 +321 1 4 0 11.715305 -4.763029 1.892686 +322 1 2 0 12.726302 -3.441835 3.258589 +323 1 3 0 12.588509 -2.169159 3.871288 +324 1 4 0 13.594515 -3.465914 2.619460 +325 1 4 0 12.919669 -4.225010 4.041833 +326 1 4 0 11.928461 -2.056942 4.572136 +327 1 1 0 8.989610 -3.538327 3.147788 +328 1 2 0 7.780090 -3.809839 3.903153 +329 1 2 0 6.830692 -4.723128 3.182411 +330 1 3 0 6.843975 -4.931536 1.971249 +331 1 4 0 8.790490 -2.959432 2.207143 +332 1 4 0 8.112743 -4.402734 4.754275 +333 1 2 0 7.007696 -2.493713 4.325713 +334 1 2 0 7.757815 -1.793205 5.421557 +335 1 3 0 8.301432 -0.683792 5.213313 +336 1 3 0 8.105449 -2.430264 6.467845 +337 1 4 0 6.015719 -2.736995 4.787540 +338 1 4 0 6.870322 -1.705199 3.554568 +339 1 1 0 5.911537 -5.420074 3.889645 +340 1 2 0 4.985368 -6.339027 3.207488 +341 1 2 0 3.791981 -5.460118 2.675447 +342 1 3 0 3.602436 -4.262217 3.058351 +343 1 4 0 5.945002 -5.355465 4.936544 +344 1 4 0 5.522096 -6.871961 2.401608 +345 1 2 0 4.403843 -7.437211 4.151447 +346 1 3 0 3.984983 -6.837474 5.417872 +347 1 2 0 5.484751 -8.435266 4.460478 +348 1 4 0 3.543374 -7.871125 3.610585 +349 1 4 0 3.626750 -7.635311 5.866975 +350 1 4 0 5.852794 -8.923165 3.576288 +351 1 4 0 5.092476 -9.235700 5.230406 +352 1 4 0 6.347457 -8.009387 5.033245 +353 1 1 0 3.001520 -6.091562 1.873663 +354 1 2 0 1.770212 -5.563203 1.356920 +355 1 2 0 0.721356 -5.331197 2.570590 +356 1 3 0 -0.022158 -4.354859 2.639919 +357 1 4 0 3.312873 -6.951353 1.400664 +358 1 4 0 2.050592 -4.577254 0.922928 +359 1 2 0 1.071972 -6.339450 0.158527 +360 1 2 0 1.737761 -5.960287 -1.242592 +361 1 2 0 -0.457848 -6.189077 0.133627 +362 1 2 0 3.239275 -5.961276 -1.280042 +363 1 4 0 1.324741 -7.458613 0.269568 +364 1 4 0 1.479259 -4.859796 -1.271486 +365 1 4 0 1.361220 -6.531125 -2.132946 +366 1 4 0 -0.903041 -6.854230 -0.657366 +367 1 4 0 -0.782418 -5.132849 -0.071473 +368 1 4 0 -0.922422 -6.573767 1.109124 +369 1 4 0 3.570026 -6.965706 -1.066579 +370 1 4 0 3.783014 -5.330759 -0.595789 +371 1 4 0 3.656696 -5.782972 -2.272787 +372 1 1 0 0.712989 -6.304521 3.584311 +373 1 2 0 0.052790 -6.261661 4.839148 +374 1 2 0 0.191347 -4.895606 5.488007 +375 1 3 0 -0.836031 -4.209177 5.761481 +376 1 4 0 1.234822 -7.176952 3.358561 +377 1 4 0 -1.022887 -6.329021 4.691721 +378 1 2 0 0.463881 -7.420468 5.813551 +379 1 2 0 -0.181732 -7.570702 7.165576 +380 1 2 0 0.007120 -6.414258 8.102713 +381 1 3 0 -0.893307 -5.557057 8.345423 +382 1 3 0 1.071916 -6.451342 8.739901 +383 1 4 0 1.565739 -7.379644 5.945185 +384 1 4 0 0.280894 -8.335875 5.233490 +385 1 4 0 0.223173 -8.515314 7.648734 +386 1 4 0 -1.278836 -7.754581 6.974807 +387 1 1 0 1.506487 -4.494779 5.655260 +388 1 2 0 2.024384 -3.272083 6.150972 +389 1 2 0 1.585880 -2.044887 5.407014 +390 1 3 0 1.072089 -1.054656 5.937784 +391 1 4 0 2.247022 -5.169015 5.381363 +392 1 4 0 1.726295 -3.077017 7.202284 +393 1 2 0 3.519486 -3.297907 6.249706 +394 1 2 0 4.110165 -2.209620 7.106417 +395 1 3 0 4.558866 -1.206675 6.574355 +396 1 1 0 3.975447 -2.353795 8.429417 +397 1 4 0 3.926527 -3.312701 5.199577 +398 1 4 0 3.906987 -4.290859 6.729019 +399 1 4 0 3.351621 -3.100412 8.835262 +400 1 4 0 4.250233 -1.572327 9.095945 +401 1 1 0 1.646215 -2.106555 3.995169 +402 1 2 0 0.960547 -1.056203 3.144271 +403 1 2 0 -0.585323 -0.906494 3.471384 +404 1 3 0 -1.001272 0.221409 3.639638 +405 1 4 0 2.076586 -2.917444 3.633085 +406 1 4 0 1.398083 -0.037330 3.348893 +407 1 2 0 1.148406 -1.421290 1.565953 +408 1 2 0 0.469253 -0.291141 0.677094 +409 1 2 0 2.652804 -1.432319 1.256255 +410 1 4 0 0.776571 -2.470203 1.403081 +411 1 4 0 -0.604778 -0.059927 0.825468 +412 1 4 0 0.696071 -0.403531 -0.364402 +413 1 4 0 0.904174 0.691668 0.985463 +414 1 4 0 2.642691 -1.597766 0.131660 +415 1 4 0 3.137894 -2.381059 1.586216 +416 1 4 0 3.298051 -0.632131 1.598249 +417 1 1 0 -1.305966 -1.988607 3.652565 +418 1 2 0 -2.689415 -1.960736 4.065894 +419 1 2 0 -2.947986 -1.384388 5.464246 +420 1 3 0 -3.956927 -0.687209 5.701440 +421 1 4 0 -0.971106 -2.849328 3.302467 +422 1 4 0 -3.296900 -1.262385 3.382761 +423 1 2 0 -3.427836 -3.412377 3.961933 +424 1 2 0 -3.574171 -3.928612 2.505721 +425 1 2 0 -3.982306 -5.479470 2.370643 +426 1 2 0 -4.137753 -5.916145 0.907307 +427 1 1 0 -4.842456 -7.207476 0.671588 +428 1 4 0 -4.389394 -3.425752 4.550163 +429 1 4 0 -2.806920 -4.163717 4.552623 +430 1 4 0 -2.578225 -3.744348 2.022778 +431 1 4 0 -4.131610 -3.317335 1.794895 +432 1 4 0 -4.944670 -5.685367 2.884988 +433 1 4 0 -3.219699 -6.072549 2.922384 +434 1 4 0 -3.220948 -5.866340 0.240386 +435 1 4 0 -4.886137 -5.224022 0.371600 +436 1 4 0 -4.398637 -8.010724 1.108282 +437 1 4 0 -4.689919 -7.536305 -0.283243 +438 1 4 0 -5.789366 -7.298894 0.961468 +439 1 1 0 -1.966539 -1.653932 6.352370 +440 1 2 0 -1.877059 -1.184384 7.700740 +441 1 2 0 -1.810243 0.352689 7.772527 +442 1 3 0 -2.478130 1.012858 8.630055 +443 1 4 0 -1.296883 -2.342673 6.065841 +444 1 4 0 -2.903503 -1.425619 8.306499 +445 1 2 0 -0.719870 -1.906634 8.460693 +446 1 4 0 -0.392867 -1.394748 9.399750 +447 1 4 0 0.201561 -1.700787 7.931161 +448 1 4 0 -0.824494 -3.016135 8.415257 +449 1 1 0 -1.014819 0.884949 6.873831 +450 1 2 0 -0.928004 2.359933 6.752150 +451 1 2 0 -2.242871 3.020975 6.141860 +452 1 3 0 -2.667293 4.165871 6.497798 +453 1 4 0 -0.255487 0.266534 6.475305 +454 1 4 0 -0.709751 2.767594 7.790539 +455 1 2 0 0.185451 2.818592 5.731872 +456 1 2 0 1.718082 2.368933 6.157097 +457 1 2 0 1.976397 2.630036 7.634372 +458 1 2 0 3.272626 1.811866 8.042755 +459 1 1 0 3.783277 2.119562 9.341763 +460 1 4 0 0.173809 4.017727 5.824418 +461 1 4 0 -0.110843 2.644975 4.655738 +462 1 4 0 2.436177 2.906087 5.459782 +463 1 4 0 1.767963 1.228903 6.013437 +464 1 4 0 1.214734 2.413689 8.372810 +465 1 4 0 2.023085 3.725792 7.759055 +466 1 4 0 4.113891 1.884123 7.336520 +467 1 4 0 2.915132 0.727469 8.065927 +468 1 4 0 3.879659 1.332383 9.938486 +469 1 4 0 3.292027 2.768104 9.893226 +470 1 4 0 4.657654 2.620898 9.415395 +471 1 1 0 -2.951323 2.325118 5.282730 +472 1 2 0 -4.325905 2.722744 4.841568 +473 1 2 0 -5.448579 2.576087 5.910067 +474 1 3 0 -6.209518 3.521045 6.095847 +475 1 4 0 -2.521898 1.551084 4.791650 +476 1 4 0 -4.313051 3.829830 4.708638 +477 1 2 0 -4.631289 2.056947 3.491556 +478 1 2 0 -3.597982 2.356462 2.341899 +479 1 2 0 -6.057287 2.415036 2.978562 +480 1 2 0 -3.795503 1.412901 1.156511 +481 1 4 0 -4.671054 0.937191 3.752299 +482 1 4 0 -2.607674 2.121882 2.680974 +483 1 4 0 -3.588639 3.467984 2.067654 +484 1 4 0 -6.778277 2.127584 3.784506 +485 1 4 0 -6.408690 1.672558 2.286363 +486 1 4 0 -6.257305 3.445522 2.543283 +487 1 4 0 -2.827681 1.370598 0.452926 +488 1 4 0 -4.701905 1.709692 0.600596 +489 1 4 0 -3.968868 0.353877 1.535108 +490 1 1 0 -5.427736 1.517434 6.772139 +491 1 2 0 -6.281638 1.417159 7.917235 +492 1 2 0 -6.135061 2.619316 8.825463 +493 1 3 0 -7.083993 3.050483 9.468967 +494 1 4 0 -4.778187 0.710522 6.592937 +495 1 4 0 -7.347518 1.392997 7.523591 +496 1 2 0 -5.911289 0.089334 8.730160 +497 1 2 0 -6.704804 -0.165892 10.024245 +498 1 2 0 -8.207420 0.060746 9.966819 +499 1 3 0 -8.766731 0.511631 10.987813 +500 1 1 0 -8.851167 -0.577098 8.977765 +501 1 4 0 -4.871800 0.035639 8.932959 +502 1 4 0 -6.099650 -0.797867 8.002499 +503 1 4 0 -6.379603 0.602172 10.795373 +504 1 4 0 -6.514059 -1.228415 10.339368 +505 1 4 0 -8.316985 -1.014678 8.258816 +506 1 4 0 -9.833090 -0.545963 8.919578 +507 1 1 0 -4.878643 3.139322 9.062914 +508 1 2 0 -4.649566 4.328949 9.987955 +509 1 2 0 -4.957775 5.668926 9.413617 +510 1 3 0 -5.630236 6.445624 10.106188 +511 1 4 0 -4.081549 2.846329 8.507102 +512 1 4 0 -5.406537 4.281488 10.784832 +513 1 2 0 -3.243945 4.227889 10.546816 +514 1 2 0 -3.087728 5.171882 11.728346 +515 1 3 0 -4.053576 5.190045 12.600221 +516 1 3 0 -2.058101 5.835943 11.978474 +517 1 4 0 -2.562382 4.521403 9.724738 +518 1 4 0 -2.932032 3.215635 10.964683 +519 1 1 0 -4.878039 5.785317 8.031390 +520 1 2 0 -5.310084 7.089332 7.406389 +521 1 2 0 -6.749125 7.172087 6.971101 +522 1 3 0 -7.405628 8.229614 7.089684 +523 1 4 0 -4.283642 5.091117 7.531729 +524 1 4 0 -5.274077 7.841191 8.198368 +525 1 2 0 -4.287673 7.649544 6.440392 +526 1 2 0 -4.264316 6.824230 5.084233 +527 1 2 0 -3.348184 7.282872 3.940214 +528 1 2 0 -1.862959 6.984827 4.246876 +529 1 1 0 -1.232990 7.951755 5.175746 +530 1 4 0 -3.353989 7.682751 6.978380 +531 1 4 0 -4.577117 8.665353 6.188031 +532 1 4 0 -5.271336 7.010431 4.645228 +533 1 4 0 -4.183939 5.756196 5.214904 +534 1 4 0 -3.478219 8.414723 3.726542 +535 1 4 0 -3.567163 6.665420 3.125679 +536 1 4 0 -1.380469 7.033451 3.200397 +537 1 4 0 -1.658625 5.960828 4.579387 +538 1 4 0 -1.681026 8.865239 5.169898 +539 1 4 0 -0.322832 8.170574 4.811931 +540 1 4 0 -1.120976 7.690090 6.115363 +541 1 1 0 -7.260673 6.129896 6.365283 +542 1 2 0 -8.574938 6.119982 5.731267 +543 1 2 0 -9.544300 5.242356 6.500946 +544 1 3 0 -10.776630 5.341657 6.228564 +545 1 4 0 -6.694313 5.297054 6.084394 +546 1 4 0 -8.965369 7.148290 5.836761 +547 1 2 0 -8.593435 5.700600 4.232465 +548 1 2 0 -8.142917 6.797216 3.313691 +549 1 2 0 -8.922098 8.128550 3.290754 +550 1 3 0 -10.019708 8.282415 2.683597 +551 1 3 0 -8.418377 9.080422 3.962396 +552 1 4 0 -9.637470 5.370747 3.983240 +553 1 4 0 -7.841735 4.791994 4.106244 +554 1 4 0 -7.988334 6.410373 2.240226 +555 1 4 0 -7.108545 7.056748 3.606925 +556 1 1 0 -9.109752 4.287946 7.340476 +557 1 2 0 -10.009860 3.416611 8.055823 +558 1 2 0 -10.705939 2.327979 7.248022 +559 1 3 0 -11.556202 1.623209 7.719085 +560 1 4 0 -8.134437 4.133993 7.462110 +561 1 4 0 -9.403268 2.909131 8.828371 +562 1 4 0 -10.766691 4.008828 8.630570 +563 1 1 0 -10.238426 2.084832 5.988242 +564 1 2 0 -10.830327 1.014314 5.135787 +565 1 2 0 -10.123635 -0.408365 5.490888 +566 1 3 0 -8.886974 -0.473105 5.573450 +567 1 4 0 -9.463779 2.473999 5.471519 +568 1 4 0 -11.972825 0.862184 5.405029 +569 1 2 0 -10.573783 1.408499 3.605155 +570 1 2 0 -11.473874 2.659840 3.274246 +571 1 2 0 -10.768674 0.116838 2.675834 +572 1 2 0 -11.386046 3.100490 1.827956 +573 1 4 0 -9.497664 1.719665 3.575726 +574 1 4 0 -11.189235 3.505368 3.971634 +575 1 4 0 -12.466031 2.387035 3.608591 +576 1 4 0 -10.418619 0.285197 1.650312 +577 1 4 0 -11.889425 -0.154704 2.658339 +578 1 4 0 -10.253412 -0.844191 2.935472 +579 1 4 0 -10.489631 3.687189 1.608836 +580 1 4 0 -12.252949 3.808896 1.730836 +581 1 4 0 -11.600834 2.256313 1.164934 +582 1 1 0 -10.904182 -1.495291 5.769914 +583 1 2 0 -10.294825 -2.685192 6.266115 +584 1 2 0 -9.362686 -3.411747 5.150144 +585 1 3 0 -9.822907 -3.806655 4.048145 +586 1 4 0 -9.678597 -2.483780 7.200705 +587 1 2 0 -11.433893 -3.623279 6.740457 +588 1 2 0 -12.623002 -3.096904 5.800687 +589 1 2 0 -12.355474 -1.596314 5.926055 +590 1 4 0 -11.632975 -3.481644 7.836795 +591 1 4 0 -11.185183 -4.717775 6.760900 +592 1 4 0 -13.676441 -3.284634 6.130235 +593 1 4 0 -12.571296 -3.294434 4.749284 +594 1 4 0 -12.712668 -1.093954 6.983468 +595 1 4 0 -12.878080 -1.082331 5.087665 +596 1 1 0 -8.141305 -3.913338 5.553940 +597 1 2 0 -7.265296 -4.892156 4.877616 +598 1 2 0 -7.954629 -6.074235 4.106746 +599 1 3 0 -7.526189 -6.449816 3.017058 +600 1 4 0 -6.579043 -4.462262 4.120819 +601 1 2 0 -6.340090 -5.386881 5.987491 +602 1 2 0 -6.098980 -4.115508 6.793069 +603 1 2 0 -7.478029 -3.499220 6.819358 +604 1 4 0 -5.439953 -5.907262 5.648183 +605 1 4 0 -6.857707 -6.166813 6.603499 +606 1 4 0 -5.359728 -3.456071 6.338156 +607 1 4 0 -5.774381 -4.378426 7.875984 +608 1 4 0 -7.367742 -2.409829 6.921891 +609 1 4 0 -8.055072 -3.868224 7.656931 +610 1 1 0 -9.008919 -6.608446 4.793434 +611 1 2 0 -9.678181 -7.733135 4.285369 +612 1 2 0 -10.514900 -7.453854 3.062726 +613 1 3 0 -10.598980 -8.267352 2.099054 +614 1 4 0 -9.372380 -6.226786 5.718134 +615 1 4 0 -8.952673 -8.430078 3.800831 +616 1 2 0 -10.385978 -8.504460 5.406790 +617 1 2 0 -11.095963 -9.718862 4.959627 +618 1 3 0 -12.323382 -9.860403 5.304109 +619 1 3 0 -10.342738 -10.617376 4.418998 +620 1 4 0 -11.151852 -7.927877 5.826167 +621 1 4 0 -9.623560 -8.740853 6.193107 +622 1 1 0 -11.049078 -6.202245 2.940419 +623 1 2 0 -11.642018 -5.709443 1.705877 +624 1 2 0 -10.614336 -5.092838 0.713167 +625 1 3 0 -10.927213 -4.951138 -0.459225 +626 1 4 0 -11.081256 -5.587042 3.696816 +627 1 4 0 -11.984075 -6.605539 1.087897 +628 1 2 0 -12.768231 -4.705104 1.983069 +629 1 2 0 -13.883829 -5.316250 2.907105 +630 1 2 0 -15.114338 -4.418666 2.924881 +631 1 3 0 -15.405304 -3.917271 4.026449 +632 1 1 0 -15.906827 -4.358107 1.868346 +633 1 4 0 -13.285557 -4.431812 1.024843 +634 1 4 0 -12.425058 -3.757312 2.498081 +635 1 4 0 -13.493993 -5.422715 3.976146 +636 1 4 0 -14.172955 -6.317959 2.590855 +637 1 4 0 -15.643280 -4.761085 0.943045 +638 1 4 0 -16.887617 -4.110344 2.002905 +639 1 1 0 -9.403516 -4.718671 1.187009 +640 1 2 0 -8.418526 -4.190723 0.263736 +641 1 2 0 -7.842430 -5.239112 -0.660532 +642 1 3 0 -7.328931 -6.262671 -0.141830 +643 1 4 0 -9.039521 -4.862514 2.100989 +644 1 4 0 -8.913388 -3.436668 -0.331077 +645 1 2 0 -7.143827 -3.503558 1.041637 +646 1 2 0 -7.586437 -2.244888 1.828880 +647 1 2 0 -6.397386 -1.503568 2.513414 +648 1 3 0 -5.279630 -1.340947 1.984414 +649 1 1 0 -6.649301 -1.020214 3.747788 +650 1 4 0 -6.392988 -3.161834 0.246377 +651 1 4 0 -6.600747 -4.159050 1.729753 +652 1 4 0 -8.388106 -2.412938 2.663083 +653 1 4 0 -8.063908 -1.554062 1.129126 +654 1 4 0 -7.599327 -0.974932 4.121687 +655 1 4 0 -5.824088 -0.762663 4.379842 +656 1 1 0 -7.975739 -5.085940 -2.051099 +657 1 2 0 -7.316226 -5.859411 -3.099220 +658 1 2 0 -6.535954 -4.884159 -3.940503 +659 1 3 0 -7.016650 -4.323287 -4.885061 +660 1 4 0 -8.649330 -4.421740 -2.442279 +661 1 4 0 -6.552638 -6.577875 -2.549459 +662 1 2 0 -8.293193 -6.657174 -4.000956 +663 1 2 0 -8.951016 -7.920548 -3.205693 +664 1 2 0 -8.120004 -9.231611 -2.981077 +665 1 1 0 -7.224446 -9.317181 -1.844858 +666 1 2 0 -6.456272 -10.352566 -1.540149 +667 1 1 0 -6.261777 -11.358001 -2.422146 +668 1 1 0 -6.102837 -10.524228 -0.288739 +669 1 4 0 -7.757336 -7.047341 -4.904160 +670 1 4 0 -9.163272 -5.963583 -4.290787 +671 1 4 0 -9.924984 -8.240285 -3.732011 +672 1 4 0 -9.185465 -7.539611 -2.167170 +673 1 4 0 -7.474087 -9.426829 -3.909433 +674 1 4 0 -8.804222 -10.092199 -2.813314 +675 1 4 0 -7.241497 -8.530605 -1.089185 +676 1 4 0 -6.629122 -11.380337 -3.383889 +677 1 4 0 -5.815388 -12.216685 -2.108949 +678 1 4 0 -6.430516 -9.899279 0.447997 +679 1 4 0 -5.622476 -11.346782 -0.024111 +680 1 1 0 -5.292942 -4.653337 -3.548836 +681 1 2 0 -4.364875 -3.733621 -4.272520 +682 1 2 0 -3.884056 -4.434009 -5.580010 +683 1 3 0 -3.533279 -5.624908 -5.562725 +684 1 4 0 -4.823372 -5.284331 -2.925755 +685 1 4 0 -4.946353 -2.808529 -4.509708 +686 1 2 0 -3.111739 -3.306714 -3.368632 +687 1 2 0 -3.512923 -2.415189 -2.103271 +688 1 2 0 -2.187524 -2.216424 -1.223893 +689 1 2 0 -3.958754 -1.022674 -2.555738 +690 1 4 0 -2.365328 -2.709721 -3.991308 +691 1 4 0 -2.556390 -4.179643 -2.968211 +692 1 4 0 -4.305604 -2.923554 -1.464240 +693 1 4 0 -2.062550 -3.144793 -0.620117 +694 1 4 0 -2.115031 -1.291482 -0.497561 +695 1 4 0 -1.342308 -2.211899 -1.862143 +696 1 4 0 -3.107951 -0.478453 -3.033604 +697 1 4 0 -4.161562 -0.403495 -1.628661 +698 1 4 0 -4.885892 -1.120725 -3.194404 +699 1 1 0 -3.856496 -3.700788 -6.722801 +700 1 2 0 -3.452842 -4.182763 -8.089520 +701 1 2 0 -2.174020 -3.372729 -8.520048 +702 1 3 0 -2.088562 -2.114569 -8.327579 +703 1 4 0 -3.898301 -2.618583 -6.734908 +704 1 4 0 -3.183017 -5.236597 -7.998616 +705 1 2 0 -4.717190 -3.967990 -8.947270 +706 1 2 0 -5.895436 -4.854833 -8.519342 +707 1 2 0 -4.331848 -4.232926 -10.428080 +708 1 2 0 -5.797633 -6.318004 -8.660393 +709 1 4 0 -4.967766 -2.891891 -8.863808 +710 1 4 0 -6.807800 -4.540991 -9.113471 +711 1 4 0 -6.224024 -4.682991 -7.474756 +712 1 4 0 -5.263890 -4.453041 -11.073519 +713 1 4 0 -3.637199 -5.120375 -10.524428 +714 1 4 0 -3.762608 -3.358380 -10.861528 +715 1 4 0 -4.807288 -6.678730 -8.216144 +716 1 4 0 -5.855482 -6.587729 -9.747066 +717 1 4 0 -6.665159 -6.845883 -8.176671 +718 1 1 0 -1.222564 -4.057751 -9.205087 +719 1 2 0 -0.136624 -3.415950 -9.921138 +720 1 2 0 0.070256 -3.976880 -11.394080 +721 1 3 0 0.610536 -5.076439 -11.582664 +722 1 4 0 -1.285072 -5.056820 -9.232195 +723 1 4 0 -0.492377 -2.326993 -10.196345 +724 1 2 0 1.325233 -3.451838 -9.292553 +725 1 2 0 2.252979 -2.485580 -9.980048 +726 1 2 0 1.821424 -1.150642 -9.963953 +727 1 2 0 3.553048 -2.772749 -10.524243 +728 1 2 0 2.627188 -0.136222 -10.473998 +729 1 2 0 4.271695 -1.747890 -11.019280 +730 1 2 0 3.875296 -0.391840 -11.048201 +731 1 4 0 1.721374 -4.514315 -9.302918 +732 1 4 0 1.363608 -3.152679 -8.161531 +733 1 4 0 0.900203 -0.869990 -9.442890 +734 1 4 0 4.058655 -3.780788 -10.525233 +735 1 4 0 2.406689 0.963664 -10.402987 +736 1 4 0 5.227337 -2.093738 -11.483853 +737 1 4 0 4.613135 0.382875 -11.414402 +738 1 1 0 -0.469213 -3.209862 -12.373989 +739 1 2 0 -0.546701 -3.542255 -13.816781 +740 1 2 0 -1.166423 -4.938647 -14.104553 +741 1 3 0 -0.706356 -5.741630 -14.896149 +742 1 4 0 -0.983659 -2.328002 -12.034153 +743 1 4 0 -1.328286 -2.810564 -14.197792 +744 1 2 0 0.847710 -3.453814 -14.522754 +745 1 4 0 1.557524 -2.617362 -14.253614 +746 1 4 0 0.737328 -3.373371 -15.641978 +747 1 4 0 1.440476 -4.334496 -14.238884 +748 1 1 0 -2.318816 -5.128826 -13.446057 +749 1 2 0 -3.143886 -6.311856 -13.378529 +750 1 2 0 -2.861305 -7.249269 -12.148953 +751 1 3 0 -3.693124 -8.018797 -11.770725 +752 1 4 0 -2.759876 -4.364139 -12.830293 +753 1 4 0 -4.238045 -6.105454 -13.271863 +754 1 4 0 -3.058170 -6.943948 -14.307195 +755 1 1 0 -1.585886 -7.303614 -11.606121 +756 1 2 0 -1.141926 -8.330961 -10.575659 +757 1 2 0 -1.714720 -8.146916 -9.185538 +758 1 3 0 -1.663641 -7.016934 -8.671236 +759 1 4 0 -0.991604 -6.486688 -11.627949 +760 1 4 0 -1.432507 -9.342075 -10.930403 +761 1 2 0 0.441949 -8.242663 -10.513047 +762 1 2 0 1.115895 -8.804397 -11.798957 +763 1 2 0 2.659392 -8.559556 -11.862927 +764 1 2 0 3.525297 -9.477008 -11.044076 +765 1 1 0 4.928913 -9.126450 -11.049928 +766 1 4 0 0.930008 -8.793558 -9.704840 +767 1 4 0 0.820281 -7.154573 -10.383627 +768 1 4 0 0.726808 -8.346899 -12.740661 +769 1 4 0 0.816642 -9.905594 -11.898832 +770 1 4 0 2.766554 -7.492314 -11.630235 +771 1 4 0 2.990272 -8.709413 -12.938787 +772 1 4 0 3.480243 -10.547229 -11.281436 +773 1 4 0 3.142144 -9.394311 -9.993141 +774 1 4 0 5.380243 -9.145878 -11.941964 +775 1 4 0 5.445854 -9.749951 -10.436478 +776 1 4 0 5.117208 -8.202842 -10.744769 +777 1 1 0 -2.261410 -9.249088 -8.588259 +778 1 2 0 -2.615396 -9.233499 -7.225533 +779 1 2 0 -1.335567 -8.948793 -6.438233 +780 1 3 0 -0.279868 -9.480653 -6.690356 +781 1 4 0 -2.255352 -10.169786 -9.074177 +782 1 4 0 -3.334713 -8.420685 -7.023961 +783 1 2 0 -3.251131 -10.563774 -6.767452 +784 1 2 0 -4.535149 -10.474262 -6.008036 +785 1 2 0 -4.398618 -9.939824 -4.513090 +786 1 3 0 -5.077126 -8.969050 -4.171499 +787 1 1 0 -3.545204 -10.582628 -3.678241 +788 1 4 0 -2.536808 -11.208918 -6.196239 +789 1 4 0 -3.428126 -11.121298 -7.678818 +790 1 4 0 -4.970296 -11.490264 -5.897297 +791 1 4 0 -5.221487 -9.801148 -6.555491 +792 1 4 0 -3.257694 -11.568395 -3.807768 +793 1 4 0 -3.345020 -10.122941 -2.746863 +794 1 1 0 -1.450039 -8.014788 -5.496898 +795 1 2 0 -0.421843 -7.645217 -4.599782 +796 1 2 0 -0.664467 -8.314648 -3.266854 +797 1 3 0 -1.615751 -8.129338 -2.521866 +798 1 4 0 -2.373522 -7.541372 -5.361698 +799 1 4 0 0.525104 -7.914594 -5.012102 +800 1 2 0 -0.361457 -6.082978 -4.502645 +801 1 2 0 0.013954 -5.455430 -5.851982 +802 1 2 0 0.049019 -3.957376 -5.617040 +803 1 2 0 1.428022 -5.979157 -6.227374 +804 1 4 0 0.435555 -5.929917 -3.703749 +805 1 4 0 -1.370222 -5.613724 -4.112042 +806 1 4 0 -0.783872 -5.696630 -6.601592 +807 1 4 0 -0.918682 -3.670337 -5.057847 +808 1 4 0 -0.051016 -3.481788 -6.645675 +809 1 4 0 0.927863 -3.578685 -5.148034 +810 1 4 0 1.304895 -7.011135 -6.510945 +811 1 4 0 2.256941 -6.075607 -5.425529 +812 1 4 0 1.836340 -5.473788 -7.076509 +813 1 1 0 0.008587 -9.534155 -3.176981 +814 1 2 0 -0.164006 -10.610017 -2.276861 +815 1 2 0 0.455793 -10.123372 -0.937523 +816 1 3 0 1.609433 -9.732719 -0.855349 +817 1 4 0 0.661532 -9.822276 -3.993714 +818 1 4 0 -1.244755 -10.767542 -2.035039 +819 1 2 0 0.574437 -11.905679 -2.866050 +820 1 2 0 0.334302 -13.196441 -2.052243 +821 1 2 0 0.695999 -13.209957 -0.547494 +822 1 3 0 -0.264686 -13.183024 0.298109 +823 1 3 0 1.910632 -13.459361 -0.183932 +824 1 4 0 1.710862 -11.775851 -2.827976 +825 1 4 0 0.358791 -11.917380 -3.993445 +826 1 4 0 0.882365 -13.997962 -2.620937 +827 1 4 0 -0.759904 -13.530227 -2.138213 +828 1 1 0 -0.357453 -10.118381 0.156881 +829 1 2 0 -0.126858 -9.579761 1.459753 +830 1 2 0 1.210865 -9.885856 2.201894 +831 1 3 0 1.578355 -9.098965 3.087348 +832 1 4 0 -1.314386 -10.278297 -0.048400 +833 1 4 0 -0.027285 -8.417312 1.375403 +834 1 2 0 -1.323443 -9.874534 2.428279 +835 1 2 0 -2.796658 -9.594191 2.040205 +836 1 3 0 -3.598938 -8.858694 2.747148 +837 1 3 0 -3.069275 -9.875155 0.835441 +838 1 4 0 -1.081085 -9.350501 3.331576 +839 1 4 0 -1.329114 -10.904878 2.757681 +840 1 1 0 1.774130 -11.086092 1.992881 +841 1 2 0 2.994120 -11.545091 2.708587 +842 1 2 0 4.377665 -11.351494 1.943197 +843 1 3 0 5.433148 -11.274449 2.624196 +844 1 4 0 1.231410 -11.794245 1.490134 +845 1 4 0 3.087086 -10.934376 3.717487 +846 1 4 0 2.994182 -12.632411 2.994368 +847 1 1 0 4.334836 -11.180015 0.643592 +848 1 2 0 5.298784 -10.617673 -0.256284 +849 1 2 0 5.545436 -9.161422 0.121481 +850 1 3 0 4.681756 -8.523001 0.675460 +851 1 4 0 3.389098 -11.194600 0.224796 +852 1 4 0 6.302556 -11.051188 -0.027697 +853 1 2 0 4.842303 -10.729803 -1.752153 +854 1 2 0 4.713323 -12.135756 -2.446341 +855 1 2 0 5.630639 -13.213151 -1.906582 +856 1 1 0 5.284941 -13.736409 -0.601898 +857 1 2 0 6.075566 -13.904284 0.492928 +858 1 1 0 7.378324 -13.682239 0.392183 +859 1 1 0 5.537046 -14.223213 1.666359 +860 1 4 0 5.533031 -10.123030 -2.400529 +861 1 4 0 3.921522 -10.207566 -1.834451 +862 1 4 0 4.892154 -12.013932 -3.582693 +863 1 4 0 3.646766 -12.426728 -2.380513 +864 1 4 0 6.696275 -12.970967 -1.977244 +865 1 4 0 5.489916 -14.113101 -2.629388 +866 1 4 0 4.272537 -13.863270 -0.494816 +867 1 4 0 7.985377 -13.700052 -0.424821 +868 1 4 0 7.940470 -13.667672 1.245648 +869 1 4 0 4.531855 -14.502228 1.787659 +870 1 4 0 6.101298 -14.389973 2.557369 +871 1 1 0 6.795959 -8.709417 -0.229618 +872 1 2 0 7.151484 -7.314826 -0.044504 +873 1 2 0 6.772152 -6.618863 -1.344791 +874 1 3 0 6.491580 -7.195037 -2.353138 +875 1 4 0 7.318576 -9.171415 -1.002843 +876 1 4 0 6.525833 -6.859535 0.829338 +877 1 2 0 8.635451 -7.121669 0.159249 +878 1 3 0 9.319110 -7.714935 -0.864105 +879 1 2 0 9.122393 -7.761915 1.542275 +880 1 4 0 8.861381 -6.006942 0.177513 +881 1 4 0 10.194312 -7.422946 -0.650194 +882 1 4 0 10.121810 -7.432113 1.729501 +883 1 4 0 9.135396 -8.869565 1.459149 +884 1 4 0 8.446951 -7.382073 2.362364 +885 1 1 0 6.963090 -5.264591 -1.254451 +886 1 2 0 6.942143 -4.382454 -2.396821 +887 1 2 0 8.032255 -4.727919 -3.355290 +888 1 3 0 7.874094 -4.700903 -4.606280 +889 1 4 0 7.090170 -4.902090 -0.328807 +890 1 4 0 6.016462 -4.502766 -2.986232 +891 1 2 0 7.011823 -2.893701 -1.884788 +892 1 2 0 5.619258 -2.371640 -1.146601 +893 1 2 0 5.747407 -0.832171 -0.836537 +894 1 2 0 4.304852 -2.632042 -1.932473 +895 1 4 0 7.232530 -2.302129 -2.742395 +896 1 4 0 7.918264 -2.789406 -1.123344 +897 1 4 0 5.453202 -2.916654 -0.186086 +898 1 4 0 4.887008 -0.456110 -0.323416 +899 1 4 0 5.896335 -0.152245 -1.791542 +900 1 4 0 6.670665 -0.673450 -0.254409 +901 1 4 0 4.181643 -2.082693 -2.916672 +902 1 4 0 3.442444 -2.383879 -1.330292 +903 1 4 0 4.282395 -3.716052 -2.117091 +904 1 1 0 9.237825 -5.055680 -2.844670 +905 1 2 0 10.327506 -5.326158 -3.751795 +906 1 2 0 10.299712 -6.687552 -4.448700 +907 1 3 0 11.020799 -6.802866 -5.444496 +908 1 4 0 9.513335 -4.765910 -1.839355 +909 1 4 0 10.385954 -4.560168 -4.527939 +910 1 2 0 11.616785 -5.225390 -2.849555 +911 1 3 0 11.681845 -6.184576 -1.811464 +912 1 4 0 11.731770 -4.245308 -2.404822 +913 1 4 0 12.479811 -5.484003 -3.480128 +914 1 4 0 12.247855 -6.858858 -2.142458 +915 1 1 0 9.390895 -7.583629 -4.036730 +916 1 2 0 8.992160 -8.754252 -4.825764 +917 1 2 0 8.441950 -8.325775 -6.179531 +918 1 3 0 8.453951 -9.076338 -7.106677 +919 1 4 0 8.901001 -7.489208 -3.091813 +920 1 4 0 10.003891 -9.220020 -5.018515 +921 1 2 0 8.053488 -9.759256 -4.183158 +922 1 2 0 8.636121 -10.682406 -3.119472 +923 1 3 0 8.285666 -10.472382 -1.922177 +924 1 3 0 9.461725 -11.579888 -3.491527 +925 1 4 0 7.570077 -10.438277 -4.930342 +926 1 4 0 7.245571 -9.201184 -3.714526 +927 1 1 0 7.768214 -7.119718 -6.199610 +928 1 2 0 7.005887 -6.638728 -7.315257 +929 1 2 0 7.851617 -5.582566 -8.113333 +930 1 3 0 7.595614 -5.232955 -9.268020 +931 1 4 0 7.640444 -6.594365 -5.349903 +932 1 4 0 6.951423 -7.445998 -8.104085 +933 1 2 0 5.604718 -6.020286 -6.971603 +934 1 2 0 4.808080 -7.258931 -6.484822 +935 1 2 0 4.589395 -7.461018 -5.120438 +936 1 2 0 4.447069 -8.273894 -7.429155 +937 1 2 0 3.784056 -8.535024 -4.755017 +938 1 2 0 3.579283 -9.310814 -7.055696 +939 1 2 0 3.326057 -9.397762 -5.690539 +940 1 3 0 2.439893 -10.287138 -5.195207 +941 1 4 0 5.141919 -5.567564 -7.921399 +942 1 4 0 5.606057 -5.151689 -6.311062 +943 1 4 0 4.944905 -6.731723 -4.350204 +944 1 4 0 4.660459 -8.167346 -8.489786 +945 1 4 0 3.457378 -8.750277 -3.665145 +946 1 4 0 3.267954 -10.081994 -7.761989 +947 1 4 0 2.186803 -10.747811 -5.996630 +948 1 1 0 8.902051 -5.011864 -7.407302 +949 1 2 0 9.703612 -3.896573 -7.971331 +950 1 2 0 8.854605 -2.738907 -8.339936 +951 1 3 0 9.065146 -2.145748 -9.384005 +952 1 4 0 9.116746 -5.266463 -6.458188 +953 1 4 0 10.386108 -3.586461 -7.092001 +954 1 2 0 10.578732 -4.353776 -9.179322 +955 1 2 0 11.689249 -3.400850 -9.487746 +956 1 3 0 11.683048 -2.729553 -10.505813 +957 1 1 0 12.685159 -3.379988 -8.534891 +958 1 4 0 9.859055 -4.483921 -10.059621 +959 1 4 0 11.053015 -5.363302 -8.978055 +960 1 4 0 12.816952 -4.073113 -7.744033 +961 1 4 0 13.500082 -2.669172 -8.653591 +962 1 1 0 7.961974 -2.346899 -7.450123 +963 1 2 0 7.210073 -1.082393 -7.353242 +964 1 2 0 8.220074 -0.014005 -6.989916 +965 1 3 0 8.976625 -0.122583 -6.038982 +966 1 4 0 7.839428 -2.859206 -6.569147 +967 1 4 0 6.707337 -0.850947 -8.383918 +968 1 2 0 6.030095 -1.285349 -6.242570 +969 1 2 0 4.899744 -1.930604 -7.085273 +970 1 2 0 5.645671 -0.002619 -5.492558 +971 1 2 0 3.850643 -2.639039 -6.295674 +972 1 4 0 6.419510 -1.908236 -5.417144 +973 1 4 0 5.364352 -2.708104 -7.784017 +974 1 4 0 4.483419 -1.167649 -7.800574 +975 1 4 0 5.004870 -0.066649 -4.602552 +976 1 4 0 5.129294 0.689353 -6.215366 +977 1 4 0 6.560668 0.460605 -5.074466 +978 1 4 0 3.234235 -1.930388 -5.649940 +979 1 4 0 4.384891 -3.374819 -5.577049 +980 1 4 0 3.162458 -3.233503 -6.928627 +981 1 1 0 8.279015 1.096767 -7.735473 +982 1 2 0 9.149500 2.177313 -7.448918 +983 1 2 0 8.443049 3.455173 -7.091881 +984 1 3 0 7.225838 3.588535 -7.314849 +985 1 4 0 7.643874 1.078344 -8.517521 +986 1 4 0 9.726155 1.989811 -6.530547 +987 1 2 0 10.141562 2.393897 -8.637297 +988 1 2 0 11.175363 1.278751 -8.856450 +989 1 2 0 12.297979 1.259017 -7.866598 +990 1 3 0 13.426383 1.600621 -8.288936 +991 1 1 0 12.128586 0.499484 -6.748544 +992 1 4 0 10.711669 3.336580 -8.503837 +993 1 4 0 9.628679 2.543322 -9.607849 +994 1 4 0 11.602578 1.390889 -9.880921 +995 1 4 0 10.646349 0.304077 -8.758295 +996 1 4 0 11.162328 0.324257 -6.474357 +997 1 4 0 12.859952 0.645961 -6.011600 +998 1 1 0 9.290608 4.442003 -6.647564 +999 1 2 0 8.811159 5.826111 -6.212163 +1000 1 2 0 7.909587 6.365352 -7.395189 +1001 1 3 0 8.277887 6.147537 -8.576688 +1002 1 4 0 10.326040 4.354253 -6.566650 +1003 1 4 0 8.074366 5.700259 -5.392561 +1004 1 2 0 9.995835 6.763127 -5.753453 +1005 1 2 0 11.134989 6.936166 -6.773871 +1006 1 2 0 12.450245 7.429690 -6.051861 +1007 1 2 0 12.385757 8.858415 -5.565813 +1008 1 1 0 13.633988 9.413177 -5.138817 +1009 1 4 0 10.292905 6.307034 -4.826845 +1010 1 4 0 9.733735 7.849575 -5.494064 +1011 1 4 0 10.808074 7.681538 -7.552779 +1012 1 4 0 11.297990 5.963599 -7.337475 +1013 1 4 0 13.159036 7.413697 -6.874982 +1014 1 4 0 12.808296 6.686485 -5.298299 +1015 1 4 0 11.641999 8.947159 -4.656213 +1016 1 4 0 11.959207 9.504307 -6.407475 +1017 1 4 0 13.653846 10.372301 -4.854541 +1018 1 4 0 14.288544 9.333898 -5.904378 +1019 1 4 0 14.092755 8.836443 -4.392426 +1020 1 1 0 6.734291 6.959000 -7.083862 +1021 1 2 0 5.689140 7.483124 -7.928906 +1022 1 2 0 4.722565 6.430009 -8.546693 +1023 1 3 0 3.693452 6.803359 -9.036911 +1024 1 4 0 6.540297 7.080673 -6.102459 +1025 1 4 0 4.958282 8.082892 -7.282649 +1026 1 2 0 6.303009 8.338869 -9.147185 +1027 1 2 0 6.962321 9.683020 -8.698706 +1028 1 2 0 6.113335 10.806050 -8.094806 +1029 1 3 0 5.314957 11.441914 -8.867803 +1030 1 3 0 6.281814 11.153556 -6.860003 +1031 1 4 0 5.501095 8.608142 -9.829181 +1032 1 4 0 7.017775 7.642829 -9.688511 +1033 1 4 0 7.483003 10.111296 -9.587458 +1034 1 4 0 7.840208 9.443341 -8.067185 +1035 1 1 0 4.989573 5.171451 -8.501981 +1036 1 2 0 4.030569 4.128878 -8.960795 +1037 1 2 0 2.659803 4.362057 -8.317970 +1038 1 3 0 2.633685 4.624499 -7.137127 +1039 1 4 0 5.932873 4.885550 -8.132184 +1040 1 4 0 3.970653 4.088976 -10.125056 +1041 1 2 0 4.547974 2.736928 -8.477716 +1042 1 3 0 5.739602 2.385810 -9.103937 +1043 1 4 0 3.830289 1.946588 -8.750291 +1044 1 4 0 4.757904 2.775726 -7.322086 +1045 1 4 0 6.399052 2.573026 -8.460448 +1046 1 1 0 1.554928 4.204648 -9.116288 +1047 1 2 0 0.143907 4.283937 -8.678656 +1048 1 2 0 -0.303717 2.830944 -8.588594 +1049 1 3 0 -0.192844 2.048979 -9.526722 +1050 1 4 0 1.755361 3.846256 -10.076285 +1051 1 4 0 0.145346 4.729291 -7.623107 +1052 1 2 0 -0.896382 4.990465 -9.602777 +1053 1 3 0 -0.546909 6.390258 -9.553197 +1054 1 2 0 -2.266687 5.014292 -9.040912 +1055 1 4 0 -0.839484 4.664962 -10.623152 +1056 1 4 0 -1.191403 6.852676 -10.030026 +1057 1 4 0 -2.370256 5.547925 -8.077780 +1058 1 4 0 -2.643323 3.985031 -8.945267 +1059 1 4 0 -3.015295 5.554521 -9.684458 +1060 1 1 0 -0.809824 2.397412 -7.387791 +1061 1 2 0 -1.543539 1.146508 -7.125034 +1062 1 2 0 -2.990030 1.446385 -7.471646 +1063 1 3 0 -3.473985 2.523645 -7.085299 +1064 1 4 0 -0.918513 3.078458 -6.559929 +1065 1 4 0 -1.082428 0.391021 -7.805730 +1066 1 2 0 -1.383109 0.737389 -5.704209 +1067 1 2 0 0.156980 0.778637 -5.025094 +1068 1 2 0 0.184063 0.045177 -3.655495 +1069 1 2 0 1.197637 0.213126 -5.986021 +1070 1 4 0 -1.814061 -0.254567 -5.578464 +1071 1 4 0 -2.073414 1.403223 -5.171331 +1072 1 4 0 0.570353 1.840354 -4.807618 +1073 1 4 0 -0.614353 0.329349 -2.926832 +1074 1 4 0 1.166261 0.241414 -3.114555 +1075 1 4 0 0.023700 -1.069031 -3.783533 +1076 1 4 0 2.158203 0.044818 -5.470973 +1077 1 4 0 1.222442 1.006598 -6.769381 +1078 1 4 0 0.965216 -0.653562 -6.606231 +1079 1 1 0 -3.781136 0.498160 -8.148625 +1080 1 2 0 -5.195999 0.627079 -8.395144 +1081 1 2 0 -5.839586 -0.173798 -7.325540 +1082 1 3 0 -5.682825 -1.396726 -7.207748 +1083 1 4 0 -3.423672 -0.475658 -8.058410 +1084 1 4 0 -5.466443 1.726348 -8.275345 +1085 1 2 0 -5.700075 0.093076 -9.698941 +1086 1 2 0 -5.439579 1.075796 -10.855403 +1087 1 1 0 -6.279526 2.029710 -11.458307 +1088 1 2 0 -4.192293 1.220658 -11.582303 +1089 1 2 0 -5.690995 2.592928 -12.533727 +1090 1 1 0 -4.422291 2.142927 -12.597346 +1091 1 4 0 -6.836699 -0.066381 -9.723009 +1092 1 4 0 -5.265040 -0.930234 -9.855749 +1093 1 4 0 -7.252692 2.264574 -11.108175 +1094 1 4 0 -3.349838 0.582035 -11.517840 +1095 1 4 0 -6.306793 3.255586 -13.155877 +1096 1 4 0 -3.777635 2.395819 -13.330102 +1097 1 1 0 -6.626714 0.438016 -6.407006 +1098 1 2 0 -7.321255 -0.209395 -5.260830 +1099 1 2 0 -8.726044 -0.540624 -5.779334 +1100 1 3 0 -9.643748 0.246853 -6.020516 +1101 1 4 0 -6.861887 1.458160 -6.506142 +1102 1 4 0 -6.783811 -1.126314 -4.931556 +1103 1 2 0 -7.394204 0.687745 -4.053531 +1104 1 2 0 -8.296909 0.064749 -2.869849 +1105 1 2 0 -7.951698 -1.454279 -2.487926 +1106 1 2 0 -8.060038 0.927044 -1.568059 +1107 1 4 0 -7.854595 1.761490 -4.347062 +1108 1 4 0 -6.360197 0.997945 -3.694450 +1109 1 4 0 -9.450918 0.148422 -3.062584 +1110 1 4 0 -7.020548 -1.637465 -1.993488 +1111 1 4 0 -7.993278 -2.155479 -3.352501 +1112 1 4 0 -8.718116 -1.826418 -1.776705 +1113 1 4 0 -6.906806 1.040935 -1.329769 +1114 1 4 0 -8.507678 0.388091 -0.676703 +1115 1 4 0 -8.513627 1.951825 -1.684662 +1116 1 1 0 -8.874500 -1.873711 -5.910632 +1117 1 2 0 -10.054693 -2.628336 -6.198564 +1118 1 2 0 -10.572111 -3.015072 -4.753004 +1119 1 3 0 -9.832635 -3.443205 -3.816546 +1120 1 4 0 -7.996568 -2.422971 -5.836674 +1121 1 4 0 -10.870694 -1.994424 -6.483439 +1122 1 2 0 -9.759279 -3.959835 -7.069730 +1123 1 2 0 -10.946970 -4.877626 -7.068986 +1124 1 2 0 -9.371460 -3.542046 -8.470112 +1125 1 4 0 -8.949402 -4.516022 -6.543614 +1126 1 4 0 -11.541359 -4.965020 -6.098983 +1127 1 4 0 -10.625500 -5.914327 -7.249472 +1128 1 4 0 -11.748695 -4.562709 -7.779917 +1129 1 4 0 -8.371018 -3.050033 -8.468892 +1130 1 4 0 -10.059019 -2.758287 -8.851634 +1131 1 4 0 -9.340042 -4.349447 -9.290806 +1132 1 1 0 -11.926250 -3.006119 -4.579854 +1133 1 2 0 -12.599868 -3.427499 -3.271795 +1134 1 2 0 -13.119425 -4.819080 -3.443024 +1135 1 3 0 -13.506292 -5.208366 -4.502651 +1136 1 4 0 -12.484786 -2.940272 -5.402807 +1137 1 4 0 -11.809544 -3.497303 -2.534649 +1138 1 2 0 -13.689712 -2.401148 -2.755481 +1139 1 2 0 -13.005610 -1.020901 -2.289793 +1140 1 2 0 -13.886801 0.170603 -2.491323 +1141 1 2 0 -12.530133 -1.092500 -0.802600 +1142 1 4 0 -14.252193 -2.898736 -1.884096 +1143 1 4 0 -14.401815 -2.226641 -3.620690 +1144 1 4 0 -12.072590 -0.884860 -2.820312 +1145 1 4 0 -13.445227 1.217778 -2.222189 +1146 1 4 0 -14.793098 0.063548 -1.909740 +1147 1 4 0 -14.187182 0.152067 -3.578149 +1148 1 4 0 -13.308581 -1.365227 -0.079185 +1149 1 4 0 -12.103016 -0.144811 -0.412295 +1150 1 4 0 -11.612023 -1.776214 -0.714294 +1151 1 1 0 -13.156998 -5.622978 -2.323616 +1152 1 2 0 -13.787861 -6.967978 -2.285282 +1153 1 2 0 -15.146212 -6.800506 -1.593340 +1154 1 3 0 -15.158053 -6.442067 -0.396674 +1155 1 4 0 -12.804286 -5.282526 -1.428142 +1156 1 4 0 -13.916618 -7.485164 -3.412935 +1157 1 2 0 -12.946414 -7.979280 -1.497063 +1158 1 2 0 -13.667631 -9.245528 -0.905442 +1159 1 2 0 -12.815857 -10.499980 -0.801429 +1160 1 1 0 -11.666913 -10.382988 0.124040 +1161 1 2 0 -10.598009 -11.176366 0.312631 +1162 1 1 0 -10.307009 -12.288930 -0.364431 +1163 1 1 0 -9.633279 -10.774307 1.106366 +1164 1 4 0 -12.386465 -7.607216 -0.581206 +1165 1 4 0 -12.215820 -8.370972 -2.244713 +1166 1 4 0 -14.479446 -9.568262 -1.529164 +1167 1 4 0 -14.129833 -9.168539 0.056180 +1168 1 4 0 -12.412465 -10.669174 -1.854364 +1169 1 4 0 -13.466079 -11.423733 -0.479836 +1170 1 4 0 -11.512692 -9.382182 0.495625 +1171 1 4 0 -10.805304 -12.650925 -1.216224 +1172 1 4 0 -9.470321 -12.815770 -0.049797 +1173 1 4 0 -9.791948 -9.915404 1.677222 +1174 1 4 0 -8.883682 -11.348748 1.394071 +1175 1 1 0 -16.257217 -7.220554 -2.308703 +1176 1 2 0 -17.613518 -7.141694 -1.748926 +1177 1 2 0 -17.781416 -8.219845 -0.663951 +1178 1 3 0 -17.284390 -9.348310 -0.956865 +1179 1 4 0 -16.199694 -7.696122 -3.255195 +1180 1 4 0 -17.779696 -6.166353 -1.252915 +1181 1 2 0 -18.748459 -7.363962 -2.843069 +1182 1 2 0 -18.849202 -6.260828 -3.989572 +1183 1 2 0 -19.614490 -6.870808 -5.148395 +1184 1 2 0 -19.500680 -4.982113 -3.494742 +1185 1 4 0 -19.731301 -7.397251 -2.283025 +1186 1 4 0 -18.632820 -8.422553 -3.243609 +1187 1 4 0 -17.781339 -6.071752 -4.343559 +1188 1 4 0 -19.542258 -6.264447 -6.144731 +1189 1 4 0 -20.684366 -6.894552 -4.987517 +1190 1 4 0 -19.302207 -7.942787 -5.285929 +1191 1 4 0 -19.636746 -4.174795 -4.365113 +1192 1 4 0 -18.901688 -4.545004 -2.684455 +1193 1 4 0 -20.591982 -5.186371 -3.176857 +1194 1 1 0 -18.472240 -7.923944 0.433190 +1195 1 2 0 -18.558377 -8.661913 1.684016 +1196 1 2 0 -19.865592 -8.197617 2.423657 +1197 1 3 0 -20.225574 -7.007408 2.517047 +1198 1 4 0 -19.018633 -7.045923 0.383040 +1199 1 4 0 -18.591712 -9.815151 1.449892 +1200 1 2 0 -17.330534 -8.352242 2.590189 +1201 1 2 0 -17.197501 -9.255175 3.894695 +1202 1 2 0 -15.917138 -8.993799 4.761448 +1203 1 1 0 -15.862754 -7.604311 5.340549 +1204 1 2 0 -14.953946 -7.213621 6.222257 +1205 1 1 0 -13.939504 -7.925565 6.768523 +1206 1 1 0 -15.231901 -6.019110 6.758979 +1207 1 4 0 -17.334188 -7.257380 2.696147 +1208 1 4 0 -16.422266 -8.568012 1.978366 +1209 1 4 0 -17.281791 -10.298139 3.520877 +1210 1 4 0 -18.121600 -9.053051 4.460330 +1211 1 4 0 -14.891329 -9.193895 4.266694 +1212 1 4 0 -16.028045 -9.747706 5.563074 +1213 1 4 0 -16.694442 -6.992689 5.266552 +1214 1 4 0 -13.473108 -8.806088 6.384760 +1215 1 4 0 -13.382022 -7.560903 7.513773 +1216 1 4 0 -16.061939 -5.573954 6.401806 +1217 1 4 0 -14.719788 -5.491070 7.406533 +1218 1 1 0 -20.555642 -9.238644 2.984101 +1219 1 2 0 -21.702627 -8.980829 3.816986 +1220 1 2 0 -22.667592 -10.144922 3.908536 +1221 1 3 0 -23.356911 -10.299018 4.988328 +1222 1 4 0 -20.172384 -10.204330 3.007070 +1223 1 4 0 -21.390921 -8.619000 4.839945 +1224 1 4 0 -22.324153 -8.174944 3.384408 +1225 1 1 0 -22.722375 -11.026698 2.860636 +1226 1 2 0 -23.459566 -12.247827 2.845542 +1227 1 2 0 -22.978621 -13.438108 1.985225 +1228 1 3 0 -23.756241 -13.995796 1.178096 +1229 1 4 0 -22.154953 -11.003456 1.998676 +1230 1 4 0 -23.492303 -12.585024 3.945342 +1231 1 4 0 -24.562029 -11.982169 2.632418 +1232 1 3 0 -21.741623 -13.731454 2.030156 +1233 2 6 0 -25.305889 -8.873286 2.603094 +1234 2 4 0 -26.195231 -8.788006 2.967312 +1235 2 4 0 -25.362163 -9.790033 2.275871 +1236 3 6 0 1.912477 -17.151817 -13.840126 +1237 3 4 0 1.018390 -17.464992 -13.630219 +1238 3 4 0 2.439262 -17.334772 -13.036215 +1239 4 6 0 8.975970 -6.483371 7.068342 +1240 4 4 0 8.251083 -5.855922 6.942323 +1241 4 4 0 9.786320 -5.989537 6.904165 +1242 5 6 0 -17.059429 -6.682892 -18.382532 +1243 5 4 0 -17.356881 -6.533480 -19.279335 +1244 5 4 0 -16.147993 -6.804945 -18.480643 +1245 6 6 0 11.369980 -7.303894 20.323145 +1246 6 4 0 10.458255 -7.203431 20.535809 +1247 6 4 0 11.777545 -7.941380 20.905100 +1248 7 6 0 3.047993 13.115234 13.513593 +1249 7 4 0 2.189597 12.815932 13.781761 +1250 7 4 0 3.351020 13.772449 14.197587 +1251 8 6 0 9.177488 -19.531354 -17.025005 +1252 8 4 0 8.997180 -19.923922 -17.884170 +1253 8 4 0 8.309703 -19.391487 -16.606802 +1254 9 6 0 -23.848340 -5.791211 7.441678 +1255 9 4 0 -24.004055 -6.746691 7.261738 +1256 9 4 0 -23.114081 -5.501409 6.867622 +1257 10 6 0 20.312209 0.171955 -11.773561 +1258 10 4 0 20.146745 1.095650 -12.020368 +1259 10 4 0 21.238842 0.205679 -11.456820 +1260 11 6 0 -22.314798 3.014770 5.149047 +1261 11 4 0 -22.929289 2.276522 4.980524 +1262 11 4 0 -22.201264 3.090196 6.138941 +1263 12 6 0 26.239381 8.286972 11.597675 +1264 12 4 0 26.254621 7.398022 11.997034 +1265 12 4 0 26.842192 8.820608 12.190091 +1266 13 6 0 1.081563 20.255845 0.892389 +1267 13 4 0 0.921065 19.278377 0.845371 +1268 13 4 0 1.812904 20.277503 0.290341 +1269 14 6 0 -25.838005 -18.994104 1.429638 +1270 14 4 0 -26.326160 -18.188143 1.703932 +1271 14 4 0 -25.342908 -19.303427 2.200872 +1272 15 6 0 -20.846054 -7.092652 6.478370 +1273 15 4 0 -20.166552 -7.554414 6.018306 +1274 15 4 0 -21.115422 -7.596368 7.225200 +1275 16 6 0 25.160173 -4.728893 -15.381523 +1276 16 4 0 24.661069 -4.062502 -14.979503 +1277 16 4 0 25.990165 -4.238213 -15.567710 +1278 17 6 0 14.535913 -19.677013 15.675709 +1279 17 4 0 14.037278 -20.588075 15.600840 +1280 17 4 0 14.211502 -19.181601 14.912412 +1281 18 6 0 2.857645 5.855417 4.079262 +1282 18 4 0 3.430506 5.710138 4.830199 +1283 18 4 0 2.475458 6.741420 4.276791 +1284 19 6 0 -27.372739 -15.194690 -19.205198 +1285 19 4 0 -28.210581 -15.653921 -19.162899 +1286 19 4 0 -27.456185 -14.667250 -19.960242 +1287 20 6 0 17.781541 0.602750 -19.513277 +1288 20 4 0 17.110642 0.664367 -18.792643 +1289 20 4 0 18.099117 1.530660 -19.555262 +1290 21 6 0 8.088032 9.439765 10.567445 +1291 21 4 0 8.015346 10.287070 10.169518 +1292 21 4 0 8.124832 9.462611 11.569641 +1293 22 6 0 15.345860 8.714934 -11.152067 +1294 22 4 0 15.658920 9.075500 -11.972725 +1295 22 4 0 14.523818 9.211910 -11.028938 +1296 23 6 0 11.013253 17.283874 -4.348263 +1297 23 4 0 10.789838 18.205570 -4.504969 +1298 23 4 0 10.260676 16.779106 -4.055437 +1299 24 6 0 -12.889592 -16.760154 20.387880 +1300 24 4 0 -13.380671 -16.152118 19.799845 +1301 24 4 0 -13.369275 -16.639729 21.191087 +1302 25 6 0 25.866516 4.706708 -8.061449 +1303 25 4 0 25.769362 4.461317 -8.965208 +1304 25 4 0 25.764828 5.656105 -8.114825 +1305 26 6 0 -26.248807 10.809987 -17.556369 +1306 26 4 0 -25.862537 10.639607 -16.669023 +1307 26 4 0 -25.586772 10.275331 -18.075376 +1308 27 6 0 5.011891 -0.095276 11.102149 +1309 27 4 0 5.950070 -0.328570 10.928116 +1310 27 4 0 4.658035 -0.692033 11.838618 +1311 28 6 0 -3.238023 12.776925 -11.754925 +1312 28 4 0 -3.559468 13.177496 -12.562608 +1313 28 4 0 -2.242036 12.949361 -11.730152 +1314 29 6 0 7.608155 6.209090 6.533228 +1315 29 4 0 6.751309 6.368791 6.939913 +1316 29 4 0 7.470608 5.288476 6.273733 +1317 30 6 0 14.666135 -14.922987 -11.755230 +1318 30 4 0 14.581988 -14.800079 -10.784928 +1319 30 4 0 15.226569 -14.207434 -12.104465 +1320 31 6 0 15.326386 3.732831 -20.745668 +1321 31 4 0 14.863781 4.277641 -20.063559 +1322 31 4 0 14.723700 3.157686 -21.298124 +1323 32 6 0 18.627348 -11.469990 6.467592 +1324 32 4 0 19.047503 -12.239416 6.986935 +1325 32 4 0 19.345653 -10.823603 6.332871 +1326 33 6 0 -14.220347 1.309533 12.809953 +1327 33 4 0 -15.112916 1.674865 12.966390 +1328 33 4 0 -13.905824 1.691626 11.972749 +1329 34 6 0 17.738294 20.743473 -0.318702 +1330 34 4 0 16.798924 21.074482 -0.373811 +1331 34 4 0 18.299449 21.160545 -1.000515 +1332 35 6 0 20.455752 2.132791 12.340284 +1333 35 4 0 19.810773 1.395571 12.257305 +1334 35 4 0 20.198026 2.647549 11.503824 +1335 36 6 0 9.853022 -4.726683 18.073966 +1336 36 4 0 9.922207 -4.319154 18.942345 +1337 36 4 0 10.745493 -4.795112 17.634995 +1338 37 6 0 22.828162 7.406766 18.911442 +1339 37 4 0 23.277041 7.740752 18.085874 +1340 37 4 0 21.875678 7.287001 18.697167 +1341 38 6 0 12.857348 6.858682 -2.850558 +1342 38 4 0 12.349544 7.638411 -2.700800 +1343 38 4 0 13.434641 6.773930 -2.100368 +1344 39 6 0 10.156535 2.406121 -18.658294 +1345 39 4 0 10.409878 1.989225 -19.465922 +1346 39 4 0 9.490048 3.103188 -18.852928 +1347 40 6 0 12.554233 20.216080 19.570476 +1348 40 4 0 11.705682 19.810667 19.782475 +1349 40 4 0 12.468266 20.347772 18.588160 +1350 41 6 0 -1.134276 6.357754 18.934733 +1351 41 4 0 -1.973226 6.075942 19.245633 +1352 41 4 0 -0.442075 6.043387 19.552910 +1353 42 6 0 1.750577 4.009032 13.244051 +1354 42 4 0 1.218838 4.545834 13.791599 +1355 42 4 0 1.398756 3.100724 13.349288 +1356 43 6 0 2.689021 16.465513 4.587974 +1357 43 4 0 3.467483 16.279752 5.178457 +1358 43 4 0 3.010897 17.110882 3.971315 +1359 44 6 0 22.627367 7.401815 -6.857148 +1360 44 4 0 21.892213 7.078953 -7.539727 +1361 44 4 0 22.599466 6.767179 -6.162623 +1362 45 6 0 -24.350411 -14.025041 19.899958 +1363 45 4 0 -23.879390 -13.314568 19.375377 +1364 45 4 0 -25.008554 -14.400223 19.294992 +1365 46 6 0 18.357304 9.543924 6.204099 +1366 46 4 0 18.326985 9.093740 5.378574 +1367 46 4 0 19.117744 9.183856 6.709862 +1368 47 6 0 21.017970 -11.520615 -11.071883 +1369 47 4 0 21.726613 -10.894899 -10.978046 +1370 47 4 0 20.726915 -11.629983 -10.116083 +1371 48 6 0 -26.667012 4.365972 15.083664 +1372 48 4 0 -27.091443 3.550925 15.267577 +1373 48 4 0 -25.989136 4.193758 14.444620 +1374 49 6 0 12.781386 0.642540 16.526237 +1375 49 4 0 13.038723 1.476289 17.006927 +1376 49 4 0 12.089659 0.933072 15.871227 +1377 50 6 0 -27.429715 -6.725581 8.240721 +1378 50 4 0 -26.910936 -6.564480 7.470893 +1379 50 4 0 -28.162464 -7.327953 7.969065 +1380 51 6 0 24.070362 5.174514 -0.911512 +1381 51 4 0 24.629840 5.966148 -0.705486 +1382 51 4 0 23.362520 5.287238 -1.509298 +1383 52 6 0 16.846666 -16.995462 -13.603864 +1384 52 4 0 15.867560 -16.748669 -13.456021 +1385 52 4 0 17.071846 -16.254095 -14.246763 +1386 53 6 0 20.841116 12.797120 17.009497 +1387 53 4 0 20.969187 13.669803 17.421731 +1388 53 4 0 21.771225 12.416689 16.764510 +1389 54 6 0 -19.221734 -18.875573 -10.983743 +1390 54 4 0 -20.186979 -18.779925 -10.982038 +1391 54 4 0 -19.009681 -19.369621 -10.158798 +1392 55 6 0 -18.683521 -20.505972 -16.031221 +1393 55 4 0 -19.618898 -20.618800 -16.082058 +1394 55 4 0 -18.315789 -21.292104 -15.650396 +1395 56 6 0 13.486524 6.749112 5.293446 +1396 56 4 0 13.961609 6.056192 4.983058 +1397 56 4 0 12.780504 7.007906 4.716738 +1398 57 6 0 20.810382 20.409198 13.765268 +1399 57 4 0 21.268029 20.454532 14.598864 +1400 57 4 0 19.895912 20.318361 13.998352 +1401 58 6 0 20.363727 -12.785030 1.387420 +1402 58 4 0 20.625728 -12.042183 1.970150 +1403 58 4 0 19.472843 -13.114509 1.692870 +1404 59 6 0 -4.110768 13.121183 -4.644500 +1405 59 4 0 -3.600734 12.558925 -4.032909 +1406 59 4 0 -4.403120 13.867412 -4.044378 +1407 60 6 0 -21.061840 -7.740629 20.493954 +1408 60 4 0 -21.039453 -7.543946 19.536841 +1409 60 4 0 -21.757349 -7.146898 20.900973 +1410 61 6 0 26.211082 -13.851944 -14.351632 +1411 61 4 0 26.688652 -13.578058 -13.560156 +1412 61 4 0 25.237610 -13.844318 -14.168406 +1413 62 6 0 7.682001 -20.605822 4.285305 +1414 62 4 0 8.364066 -21.007718 3.810153 +1415 62 4 0 7.192709 -19.999465 3.748655 +1416 63 6 0 22.004930 15.161537 5.915259 +1417 63 4 0 22.529069 15.401145 5.140758 +1418 63 4 0 21.836857 14.241604 6.044353 +1419 64 6 0 21.713613 -17.900383 3.815703 +1420 64 4 0 22.679247 -17.725384 3.950726 +1421 64 4 0 21.695664 -18.649618 3.180406 +1422 65 6 0 11.567159 -18.128823 12.553393 +1423 65 4 0 11.856655 -17.178344 12.428270 +1424 65 4 0 11.248307 -18.230630 13.449380 +1425 66 6 0 -22.622068 18.057993 -12.095565 +1426 66 4 0 -21.694228 17.853670 -11.941877 +1427 66 4 0 -22.819172 17.835208 -12.993248 +1428 67 6 0 9.275007 12.390062 -11.584253 +1429 67 4 0 8.977379 13.016934 -10.914605 +1430 67 4 0 10.127813 12.041771 -11.232361 +1431 68 6 0 -14.822916 -15.989738 9.135198 +1432 68 4 0 -14.194812 -16.628214 9.459309 +1433 68 4 0 -14.342626 -15.188459 9.014917 +1434 69 6 0 -11.828358 -9.561319 -4.583271 +1435 69 4 0 -12.150096 -9.065398 -5.351378 +1436 69 4 0 -12.516681 -10.185548 -4.230080 +1437 70 6 0 -10.898855 6.281982 -10.651011 +1438 70 4 0 -11.533704 6.844824 -10.249357 +1439 70 4 0 -10.394778 5.928734 -9.945580 +1440 71 6 0 10.206251 18.878731 19.697794 +1441 71 4 0 10.128033 18.397864 20.526746 +1442 71 4 0 9.368907 19.321892 19.635002 +1443 72 6 0 7.056097 15.592239 15.029949 +1444 72 4 0 7.186116 15.478315 14.072096 +1445 72 4 0 7.414569 14.832987 15.435389 +1446 73 6 0 24.543977 3.489901 -14.044452 +1447 73 4 0 23.682275 3.287251 -13.651175 +1448 73 4 0 24.372867 3.165473 -14.930902 +1449 74 6 0 -0.579079 -10.101283 9.711937 +1450 74 4 0 -1.148742 -10.353328 9.005933 +1451 74 4 0 -0.914837 -9.213566 9.976954 +1452 75 6 0 6.810722 17.081705 -5.703105 +1453 75 4 0 5.903603 16.716054 -5.813888 +1454 75 4 0 7.038830 17.199405 -6.631357 +1455 76 6 0 -26.352729 7.462163 20.420411 +1456 76 4 0 -27.199047 7.711650 20.831378 +1457 76 4 0 -26.411228 7.671245 19.444854 +1458 77 6 0 17.042652 1.713603 8.364686 +1459 77 4 0 16.951087 0.795520 8.175385 +1460 77 4 0 16.736372 2.035025 7.509624 +1461 78 6 0 19.131873 19.334012 -6.335242 +1462 78 4 0 18.416265 18.729295 -6.454050 +1463 78 4 0 19.910836 18.805924 -6.078777 +1464 79 6 0 7.310440 -10.543485 13.587642 +1465 79 4 0 6.863481 -11.404338 13.838041 +1466 79 4 0 6.716557 -9.980934 13.023023 +1467 80 6 0 16.655451 5.245734 12.848556 +1468 80 4 0 17.418946 5.791006 12.911180 +1469 80 4 0 16.851104 4.455072 13.419371 +1470 81 6 0 -11.098331 12.748199 -7.329972 +1471 81 4 0 -11.009338 13.599863 -7.754046 +1472 81 4 0 -12.065844 12.538087 -7.393876 +1473 82 6 0 -12.334041 -5.457784 -13.381783 +1474 82 4 0 -12.711013 -4.568395 -13.257780 +1475 82 4 0 -11.461517 -5.234972 -13.709702 +1476 83 6 0 -19.619563 15.046747 6.026220 +1477 83 4 0 -19.064160 15.888434 5.869584 +1478 83 4 0 -20.197675 14.948767 5.270745 +1479 84 6 0 19.403362 5.853957 6.190263 +1480 84 4 0 18.497327 6.115780 6.469846 +1481 84 4 0 20.017752 6.471645 6.487352 +1482 85 6 0 -25.726372 -3.750023 6.981390 +1483 85 4 0 -26.510590 -3.855351 7.566875 +1484 85 4 0 -25.108784 -4.364237 7.293376 +1485 86 6 0 19.363936 -15.722056 8.477199 +1486 86 4 0 19.376520 -16.156352 9.371325 +1487 86 4 0 20.131991 -16.106093 8.026790 +1488 87 6 0 4.918015 16.654603 6.129016 +1489 87 4 0 5.581517 17.300026 5.845056 +1490 87 4 0 5.390842 15.802197 6.094486 +1491 88 6 0 6.078733 16.693115 -13.842069 +1492 88 4 0 5.199251 16.442614 -14.064650 +1493 88 4 0 6.443869 16.763088 -14.767416 +1494 89 6 0 21.731326 -12.551581 -19.815904 +1495 89 4 0 21.519077 -11.572592 -19.819800 +1496 89 4 0 21.264568 -12.901316 -18.987186 +1497 90 6 0 24.487045 0.545827 12.845924 +1498 90 4 0 24.038085 0.883409 12.081688 +1499 90 4 0 24.083597 0.980384 13.591108 +1500 91 6 0 18.410889 -13.655540 -1.593840 +1501 91 4 0 18.336634 -14.202424 -0.852695 +1502 91 4 0 19.187521 -13.942267 -2.059694 +1503 92 6 0 10.380738 17.460434 -20.015294 +1504 92 4 0 9.800569 16.677901 -20.098710 +1505 92 4 0 10.044263 17.935616 -19.257888 +1506 93 6 0 13.540400 13.359091 -2.277273 +1507 93 4 0 13.918768 14.199197 -2.621352 +1508 93 4 0 13.546416 13.374894 -1.268707 +1509 94 6 0 19.550822 -15.885302 -17.171256 +1510 94 4 0 19.618925 -16.577230 -17.813037 +1511 94 4 0 20.364869 -15.924821 -16.745913 +1512 95 6 0 8.934453 -16.027660 20.082161 +1513 95 4 0 8.350825 -15.432721 20.504320 +1514 95 4 0 9.504005 -15.407057 19.696244 +1515 96 6 0 13.449317 -0.696209 -11.399773 +1516 96 4 0 14.259684 -0.816041 -10.861718 +1517 96 4 0 12.841649 -1.407477 -11.030433 +1518 97 6 0 21.159598 -20.230615 11.116255 +1519 97 4 0 20.955379 -21.039069 10.677683 +1520 97 4 0 21.227629 -20.467861 12.046012 +1521 98 6 0 -11.425719 10.313603 15.561621 +1522 98 4 0 -11.752060 9.489612 15.149018 +1523 98 4 0 -12.009787 11.024201 15.339594 +1524 99 6 0 23.530234 5.073332 12.308815 +1525 99 4 0 23.411228 4.192303 12.037314 +1526 99 4 0 23.017800 5.539035 11.565588 +1527 100 6 0 9.285394 15.401019 4.247587 +1528 100 4 0 9.029223 16.111512 4.827382 +1529 100 4 0 9.908946 14.931813 4.786975 +1530 101 6 0 26.710953 10.879732 17.565984 +1531 101 4 0 26.481837 11.014223 18.458503 +1532 101 4 0 26.801930 11.751805 17.193691 +1533 102 6 0 26.059219 -18.322514 -8.230640 +1534 102 4 0 25.468209 -17.831491 -8.807599 +1535 102 4 0 26.660395 -17.588693 -7.832128 +1536 103 6 0 7.573847 10.494945 -13.000340 +1537 103 4 0 6.752773 10.585941 -12.508913 +1538 103 4 0 8.060915 11.203548 -12.596091 +1539 104 6 0 16.495334 16.907261 -17.264088 +1540 104 4 0 15.936311 17.701142 -17.215765 +1541 104 4 0 16.146725 16.404479 -17.972530 +1542 105 6 0 12.550501 12.792681 0.441559 +1543 105 4 0 12.890193 12.783948 1.424080 +1544 105 4 0 12.972043 11.976735 0.117581 +1545 106 6 0 6.804544 2.469256 9.043785 +1546 106 4 0 7.053760 2.925055 9.856512 +1547 106 4 0 7.365554 1.678918 9.065958 +1548 107 6 0 -26.111190 11.845380 12.004953 +1549 107 4 0 -26.772515 12.430684 11.621087 +1550 107 4 0 -25.209540 12.292191 11.872070 +1551 108 6 0 -10.314383 -9.317643 -12.200930 +1552 108 4 0 -11.268643 -8.984584 -12.345854 +1553 108 4 0 -10.432002 -10.035760 -11.529786 +1554 109 6 0 -26.380108 15.118882 -9.622008 +1555 109 4 0 -25.930871 15.887042 -9.924512 +1556 109 4 0 -25.979073 14.306361 -10.084998 +1557 110 6 0 1.139515 -19.714505 -8.279716 +1558 110 4 0 0.675447 -19.100241 -8.876686 +1559 110 4 0 1.861101 -19.991496 -8.757935 +1560 111 6 0 17.452914 16.822171 9.920464 +1561 111 4 0 17.934078 17.151660 9.199989 +1562 111 4 0 17.980199 16.103548 10.329451 +1563 112 6 0 18.740004 -12.107924 14.391777 +1564 112 4 0 19.596584 -12.274465 14.867937 +1565 112 4 0 18.902733 -12.244474 13.491103 +1566 113 6 0 -15.579375 6.511760 13.017065 +1567 113 4 0 -15.193219 7.321701 12.610540 +1568 113 4 0 -15.093538 5.769586 12.622079 +1569 114 6 0 -0.877815 -3.636485 14.316002 +1570 114 4 0 -1.480812 -3.188883 14.944590 +1571 114 4 0 -1.224311 -3.235271 13.526942 +1572 115 6 0 7.516564 -9.888221 20.928138 +1573 115 4 0 7.083616 -9.984725 20.119275 +1574 115 4 0 7.035439 -10.492537 21.460270 +1575 116 6 0 26.972175 15.513650 13.835965 +1576 116 4 0 27.290530 14.677325 14.220401 +1577 116 4 0 26.022826 15.628989 13.956832 +1578 117 6 0 18.373056 16.436866 -9.784173 +1579 117 4 0 18.173740 16.705423 -10.702898 +1580 117 4 0 19.003590 17.095921 -9.494087 +1581 118 6 0 -2.499599 -10.235115 -18.681799 +1582 118 4 0 -2.484635 -9.679910 -17.855014 +1583 118 4 0 -1.762196 -9.952193 -19.147621 +1584 119 6 0 2.170631 9.696760 -13.707491 +1585 119 4 0 2.410831 10.573952 -14.022044 +1586 119 4 0 1.366528 9.911718 -13.203660 +1587 120 6 0 -22.060495 0.084333 -19.330968 +1588 120 4 0 -21.759145 -0.801023 -19.628154 +1589 120 4 0 -21.345397 0.598803 -18.978005 +1590 121 6 0 20.717073 -0.364667 -3.266977 +1591 121 4 0 20.064258 -0.869174 -2.840894 +1592 121 4 0 20.978768 -0.863225 -4.123117 +1593 122 6 0 -11.693545 -17.585832 12.155919 +1594 122 4 0 -11.693581 -16.618165 12.297539 +1595 122 4 0 -10.965597 -17.630843 11.482629 +1596 123 6 0 22.033287 -5.610818 11.814279 +1597 123 4 0 21.603774 -4.969289 11.213082 +1598 123 4 0 22.863855 -5.854126 11.399621 +1599 124 6 0 -4.245364 20.530679 -11.580108 +1600 124 4 0 -4.613077 20.058542 -10.812152 +1601 124 4 0 -4.869612 21.297733 -11.750599 +1602 125 6 0 20.837886 3.849343 18.187160 +1603 125 4 0 21.637221 4.154388 17.767478 +1604 125 4 0 20.753725 4.316852 19.044680 +1605 126 6 0 4.000998 20.642070 6.993614 +1606 126 4 0 3.097228 20.600441 6.539412 +1607 126 4 0 4.007858 20.203528 7.895914 +1608 127 6 0 11.947977 15.441293 -0.469120 +1609 127 4 0 11.971275 14.454085 -0.273912 +1610 127 4 0 12.470807 15.488877 -1.291943 +1611 128 6 0 3.007637 18.543541 -2.984774 +1612 128 4 0 3.565232 17.725540 -3.038270 +1613 128 4 0 2.929337 18.913789 -3.837866 +1614 129 6 0 8.597796 -3.024177 11.307241 +1615 129 4 0 9.440361 -2.907621 10.794269 +1616 129 4 0 8.194484 -3.777321 10.948431 +1617 130 6 0 12.969092 -7.932168 -3.416690 +1618 130 4 0 12.657272 -8.671538 -3.962914 +1619 130 4 0 13.930699 -7.927015 -3.644128 +1620 131 6 0 4.690692 11.990242 6.047085 +1621 131 4 0 3.830915 11.620745 5.794047 +1622 131 4 0 5.366958 11.770788 5.369987 +1623 132 6 0 10.838100 15.915400 -16.690449 +1624 132 4 0 11.719066 16.216650 -16.583824 +1625 132 4 0 10.351788 16.668150 -17.062399 +1626 133 6 0 20.760419 3.237669 6.554876 +1627 133 4 0 20.210628 2.565167 6.189576 +1628 133 4 0 20.243367 4.047032 6.450547 +1629 134 6 0 -7.351853 -2.751166 -10.694739 +1630 134 4 0 -8.277520 -2.829710 -11.023595 +1631 134 4 0 -6.973902 -2.027001 -11.286243 +1632 135 6 0 8.338680 -14.152925 -14.216839 +1633 135 4 0 7.907963 -14.913791 -13.766433 +1634 135 4 0 9.057618 -14.554948 -14.672432 +1635 136 6 0 -21.745003 -1.600080 -8.484704 +1636 136 4 0 -22.396276 -0.906185 -8.690601 +1637 136 4 0 -21.042086 -1.417961 -9.157366 +1638 137 6 0 24.505779 -7.277316 -14.651231 +1639 137 4 0 24.835649 -6.369110 -14.893362 +1640 137 4 0 24.135101 -7.595011 -15.516575 +1641 138 6 0 13.325591 -5.149951 -6.169737 +1642 138 4 0 14.291969 -5.289577 -6.041288 +1643 138 4 0 12.813376 -5.844865 -5.785812 +1644 139 6 0 -20.933242 20.161591 -8.696079 +1645 139 4 0 -20.088965 20.396502 -9.157616 +1646 139 4 0 -21.417399 20.940524 -8.320759 +1647 140 6 0 22.832947 -8.348413 -10.288572 +1648 140 4 0 23.575495 -7.724229 -10.313126 +1649 140 4 0 23.029160 -9.044226 -9.677546 +1650 141 6 0 23.743445 2.427859 19.849750 +1651 141 4 0 24.532045 1.907225 19.711678 +1652 141 4 0 23.062926 1.994077 19.368217 +1653 142 6 0 10.589993 1.639740 20.516878 +1654 142 4 0 9.987052 1.032362 20.047348 +1655 142 4 0 10.624644 2.472330 20.027640 +1656 143 6 0 6.500815 -17.047237 7.812429 +1657 143 4 0 7.407059 -16.956263 7.440866 +1658 143 4 0 6.013508 -17.774059 7.384568 +1659 144 6 0 -0.199269 -9.380208 -16.449921 +1660 144 4 0 -0.920685 -8.715985 -16.515053 +1661 144 4 0 0.387469 -9.304809 -17.255371 +1662 145 6 0 6.245654 20.180381 -12.940075 +1663 145 4 0 5.376160 20.220616 -13.392701 +1664 145 4 0 6.857081 19.702851 -13.499407 +1665 146 6 0 -4.928957 -20.301289 11.340442 +1666 146 4 0 -4.017513 -20.158995 11.049259 +1667 146 4 0 -4.923799 -20.953195 11.990322 +1668 147 6 0 -11.515851 -8.388468 19.647979 +1669 147 4 0 -11.184791 -8.359618 20.524675 +1670 147 4 0 -12.443923 -8.327763 19.606292 +1671 148 6 0 -24.167509 7.194575 -0.837148 +1672 148 4 0 -24.972654 7.649920 -1.275517 +1673 148 4 0 -24.204709 7.474688 0.131591 +1674 149 6 0 12.126351 -16.062203 11.096539 +1675 149 4 0 11.280449 -15.927172 10.574646 +1676 149 4 0 12.611089 -15.288570 10.879908 +1677 150 6 0 -7.169287 5.827131 17.736258 +1678 150 4 0 -6.956548 5.152949 17.035326 +1679 150 4 0 -6.291387 6.127541 18.098754 +1680 151 6 0 -19.820265 12.907447 16.581358 +1681 151 4 0 -19.659011 12.980070 17.534136 +1682 151 4 0 -20.478433 13.648938 16.483830 +1683 152 6 0 10.474631 10.634400 -7.924386 +1684 152 4 0 10.794363 11.386619 -7.409132 +1685 152 4 0 9.591861 10.377005 -7.560987 +1686 153 6 0 9.869765 7.468088 9.667232 +1687 153 4 0 9.072542 8.000794 9.695304 +1688 153 4 0 10.102662 7.299293 8.720054 +1689 154 6 0 11.149756 9.562904 -12.765396 +1690 154 4 0 10.686250 9.267978 -11.959062 +1691 154 4 0 11.324858 8.766817 -13.298380 +1692 155 6 0 -8.591767 12.757143 -4.012695 +1693 155 4 0 -8.324896 13.003317 -4.932948 +1694 155 4 0 -8.147829 13.384049 -3.416515 +1695 156 6 0 4.774504 19.024876 15.999665 +1696 156 4 0 4.160294 19.017277 16.757162 +1697 156 4 0 5.517925 18.569472 16.400595 +1698 157 6 0 -4.714429 -2.091345 19.353537 +1699 157 4 0 -4.854280 -2.828837 19.971329 +1700 157 4 0 -5.535288 -2.163222 18.793806 +1701 158 6 0 3.570216 -18.611817 -15.598378 +1702 158 4 0 3.046765 -18.582990 -16.425866 +1703 158 4 0 3.158896 -17.918154 -15.032600 +1704 159 6 0 -11.657691 18.235653 20.509864 +1705 159 4 0 -12.226759 18.986315 20.717707 +1706 159 4 0 -11.080397 18.121952 21.271087 +1707 160 6 0 14.493937 -0.382813 19.719393 +1708 160 4 0 13.979118 -0.142020 20.470391 +1709 160 4 0 15.349953 -0.432678 20.118874 +1710 161 6 0 -25.714868 -12.047610 -14.994953 +1711 161 4 0 -25.527994 -12.236118 -16.000515 +1712 161 4 0 -24.876261 -11.553460 -14.748410 +1713 162 6 0 6.325847 -15.764455 11.544131 +1714 162 4 0 6.229128 -16.154079 12.417251 +1715 162 4 0 6.886521 -15.002890 11.743125 +1716 163 6 0 -27.331883 9.233246 15.237568 +1717 163 4 0 -26.599380 9.867873 14.994627 +1718 163 4 0 -27.264332 8.495991 14.623286 +1719 164 6 0 -25.207375 -3.847132 17.095096 +1720 164 4 0 -25.445321 -4.629286 16.543803 +1721 164 4 0 -25.823438 -3.158780 16.776808 +1722 165 6 0 -2.766266 -13.179260 4.266317 +1723 165 4 0 -1.896026 -13.215786 3.757612 +1724 165 4 0 -3.151612 -14.038152 4.175240 +1725 166 6 0 17.165111 16.676060 6.100929 +1726 166 4 0 17.064451 17.522432 6.606579 +1727 166 4 0 16.942925 15.940574 6.655125 +1728 167 6 0 -18.331646 7.552754 -8.484008 +1729 167 4 0 -18.933791 7.004225 -7.919061 +1730 167 4 0 -18.900890 7.785944 -9.196075 +1731 168 6 0 26.169311 3.132717 9.584634 +1732 168 4 0 26.518912 3.613350 10.302634 +1733 168 4 0 25.680453 2.435972 9.901377 +1734 169 6 0 1.192323 17.107553 -8.736586 +1735 169 4 0 1.021901 17.797734 -9.422544 +1736 169 4 0 0.892750 17.475660 -7.885822 +1737 170 6 0 -25.815030 10.180500 5.376868 +1738 170 4 0 -26.459337 10.344257 6.080597 +1739 170 4 0 -25.337134 9.352614 5.563562 +1740 171 6 0 9.219642 -20.775000 0.193729 +1741 171 4 0 9.939354 -21.194791 -0.335512 +1742 171 4 0 8.458200 -21.122557 -0.245347 +1743 172 6 0 7.419149 -15.012981 -7.052183 +1744 172 4 0 7.072086 -14.800593 -6.138570 +1745 172 4 0 6.878848 -15.717530 -7.366638 +1746 173 6 0 18.623745 10.156288 3.028217 +1747 173 4 0 17.982257 9.440233 2.875628 +1748 173 4 0 18.009023 10.975494 3.182536 +1749 174 6 0 13.145546 -20.676260 -16.694649 +1750 174 4 0 12.815312 -20.227755 -17.488442 +1751 174 4 0 12.786182 -21.555938 -16.737351 +1752 175 6 0 4.910310 -17.490236 -1.378014 +1753 175 4 0 5.657779 -17.456107 -0.820623 +1754 175 4 0 5.268563 -17.934730 -2.200934 +1755 176 6 0 -0.270185 6.286195 9.930733 +1756 176 4 0 -0.856415 6.001917 10.611025 +1757 176 4 0 0.005563 7.171058 10.176397 +1758 177 6 0 -3.229650 16.643646 19.387659 +1759 177 4 0 -3.312058 16.163949 18.538257 +1760 177 4 0 -2.782251 17.481594 19.257422 +1761 178 6 0 -16.368157 2.960013 13.098824 +1762 178 4 0 -16.360100 3.430962 13.984851 +1763 178 4 0 -16.773065 3.567928 12.508334 +1764 179 6 0 19.447080 -6.209321 9.611666 +1765 179 4 0 18.833539 -5.622887 9.193795 +1766 179 4 0 18.949525 -6.526265 10.384214 +1767 180 6 0 -8.044280 -4.288816 -16.207882 +1768 180 4 0 -7.966109 -3.883769 -17.074640 +1769 180 4 0 -7.261903 -4.793399 -15.982149 +1770 181 6 0 20.024947 17.270827 14.758218 +1771 181 4 0 19.172341 17.478642 15.170634 +1772 181 4 0 20.700921 17.006922 15.403538 +1773 182 6 0 24.735763 -12.617736 3.782055 +1774 182 4 0 24.742238 -13.518522 3.370896 +1775 182 4 0 25.350602 -12.232493 3.147824 +1776 183 6 0 3.431414 8.925671 6.826679 +1777 183 4 0 3.084862 8.827163 7.759644 +1778 183 4 0 4.424412 9.107829 6.895448 +1779 184 6 0 17.489102 -11.319977 19.702626 +1780 184 4 0 18.434347 -11.550903 19.419885 +1781 184 4 0 16.965653 -12.122535 19.583109 +1782 185 6 0 13.274816 16.183286 -2.849704 +1783 185 4 0 13.777976 16.949053 -2.573649 +1784 185 4 0 12.549844 16.546466 -3.345363 +1785 186 6 0 23.841910 -13.944818 11.597095 +1786 186 4 0 23.043336 -14.386099 11.958056 +1787 186 4 0 23.668687 -13.015455 11.845078 +1788 187 6 0 14.458157 -17.498951 -20.684884 +1789 187 4 0 13.916318 -16.687121 -20.523929 +1790 187 4 0 14.348004 -17.977683 -19.850686 +1791 188 6 0 -8.369104 15.140447 -19.622301 +1792 188 4 0 -9.156426 14.702367 -19.949175 +1793 188 4 0 -7.765440 15.416867 -20.299390 +1794 189 6 0 19.145293 -12.193056 11.874609 +1795 189 4 0 18.766654 -11.373734 11.579591 +1796 189 4 0 18.521350 -12.726230 11.327543 +1797 190 6 0 -18.076775 18.801612 -14.295021 +1798 190 4 0 -18.586562 18.486836 -15.063616 +1799 190 4 0 -18.385853 18.166574 -13.559441 +1800 191 6 0 -19.106085 17.513715 -16.406412 +1801 191 4 0 -18.423458 17.909352 -17.009956 +1802 191 4 0 -19.076533 16.547362 -16.469991 +1803 192 6 0 8.044684 -0.011875 -10.373353 +1804 192 4 0 8.668860 -0.626009 -9.915411 +1805 192 4 0 8.602268 0.704634 -10.757756 +1806 193 6 0 -23.287552 -7.074362 17.929889 +1807 193 4 0 -22.370365 -7.411352 17.793085 +1808 193 4 0 -23.082861 -6.243551 18.339191 +1809 194 6 0 22.099315 -0.856463 5.137385 +1810 194 4 0 22.143526 -1.231806 5.942781 +1811 194 4 0 22.809699 -1.264756 4.609180 +1812 195 6 0 11.618777 5.171830 -12.366225 +1813 195 4 0 12.078170 4.347700 -12.198463 +1814 195 4 0 10.837551 5.069580 -11.726531 +1815 196 6 0 13.014153 9.452672 -20.836207 +1816 196 4 0 13.647981 9.913017 -20.352836 +1817 196 4 0 13.495084 8.718233 -21.270254 +1818 197 6 0 12.425877 4.164162 0.171584 +1819 197 4 0 12.703840 3.756309 0.988868 +1820 197 4 0 12.991444 5.029213 0.073462 +1821 198 6 0 -9.835180 14.629378 -13.804396 +1822 198 4 0 -9.610077 14.944151 -14.684564 +1823 198 4 0 -8.989021 14.154277 -13.615953 +1824 199 6 0 -2.408060 19.252237 0.880939 +1825 199 4 0 -2.493340 19.315730 -0.074698 +1826 199 4 0 -2.255762 20.125803 1.185504 +1827 200 6 0 0.176360 18.576859 -11.340843 +1828 200 4 0 0.973470 18.653833 -11.875634 +1829 200 4 0 -0.251936 19.428753 -11.234458 +1830 201 6 0 17.647376 -13.725079 1.965824 +1831 201 4 0 17.003636 -13.021631 1.726278 +1832 201 4 0 17.566508 -13.822114 2.932054 +1833 202 6 0 22.517860 -11.753774 5.019726 +1834 202 4 0 23.053003 -11.763573 4.218425 +1835 202 4 0 22.141706 -12.627432 4.996598 +1836 203 6 0 11.399220 8.806142 17.642468 +1837 203 4 0 12.004399 8.181799 18.040253 +1838 203 4 0 12.065291 9.442856 17.324430 +1839 204 6 0 -22.707547 3.590100 -15.076457 +1840 204 4 0 -23.015628 3.384474 -15.944834 +1841 204 4 0 -22.136913 4.410365 -15.213029 +1842 205 6 0 26.828338 -4.765161 15.663973 +1843 205 4 0 26.832047 -4.257803 16.501858 +1844 205 4 0 26.708016 -5.703070 15.737740 +1845 206 6 0 22.946626 3.404021 -19.628978 +1846 206 4 0 23.362608 3.005393 -20.435220 +1847 206 4 0 23.702005 3.678843 -19.069388 +1848 207 6 0 14.618693 -13.688118 5.201099 +1849 207 4 0 14.145978 -13.778387 4.371412 +1850 207 4 0 14.286294 -12.904817 5.661369 +1851 208 6 0 20.255504 -4.724409 16.548573 +1852 208 4 0 21.059576 -4.438221 16.144026 +1853 208 4 0 20.147655 -4.094495 17.295647 +1854 209 6 0 17.946944 -13.347081 -18.020931 +1855 209 4 0 18.795624 -13.646112 -18.426334 +1856 209 4 0 17.332163 -14.081728 -18.189230 +1857 210 6 0 -21.344615 -17.675607 -16.681902 +1858 210 4 0 -21.267118 -18.651712 -16.747948 +1859 210 4 0 -21.006193 -17.563628 -15.786919 +1860 211 6 0 9.992481 17.630547 2.228887 +1861 211 4 0 10.766809 17.530717 1.634799 +1862 211 4 0 9.806200 16.754569 2.642189 +1863 212 6 0 24.337802 -5.112482 8.921340 +1864 212 4 0 24.079827 -4.328771 8.467115 +1865 212 4 0 24.773308 -4.851600 9.745303 +1866 213 6 0 14.392943 4.303039 -14.169804 +1867 213 4 0 15.354569 4.444986 -14.451391 +1868 213 4 0 13.827235 4.378323 -14.920116 +1869 214 6 0 13.209648 -16.451396 -6.580199 +1870 214 4 0 13.147603 -16.683269 -5.631990 +1871 214 4 0 12.554494 -16.916090 -7.141613 +1872 215 6 0 -11.258451 -8.728449 -17.504889 +1873 215 4 0 -10.630935 -8.841887 -16.742169 +1874 215 4 0 -10.880429 -7.995350 -17.987253 +1875 216 6 0 6.970091 -11.502288 7.137693 +1876 216 4 0 6.712825 -11.950891 7.959605 +1877 216 4 0 6.204207 -11.628119 6.619766 +1878 217 6 0 -10.553038 -2.495546 -20.126478 +1879 217 4 0 -11.112035 -2.806841 -20.861108 +1880 217 4 0 -10.112026 -1.746092 -20.545249 +1881 218 6 0 1.164804 16.447528 -16.932229 +1882 218 4 0 1.075245 17.028648 -17.728070 +1883 218 4 0 0.434843 16.567725 -16.272167 +1884 219 6 0 8.169876 -8.073942 10.663670 +1885 219 4 0 8.495588 -8.362155 9.831946 +1886 219 4 0 7.357988 -8.507192 10.922724 +1887 220 6 0 -9.618401 15.869865 -1.419048 +1888 220 4 0 -10.476694 15.771852 -1.849867 +1889 220 4 0 -9.747028 16.624761 -0.845144 +1890 221 6 0 -16.212359 4.292450 15.905633 +1891 221 4 0 -15.313397 4.006789 16.095169 +1892 221 4 0 -16.439629 4.732906 16.740073 +1893 222 6 0 21.084596 9.207592 -17.940912 +1894 222 4 0 20.944531 8.655711 -18.738875 +1895 222 4 0 20.567153 10.036337 -17.965821 +1896 223 6 0 6.469383 -5.770861 20.006921 +1897 223 4 0 5.993567 -6.597617 19.829705 +1898 223 4 0 7.305198 -6.017049 20.409842 +1899 224 6 0 17.758755 -18.446472 11.244435 +1900 224 4 0 16.943206 -18.055205 11.026410 +1901 224 4 0 17.620974 -18.589448 12.216673 +1902 225 6 0 2.239377 -2.639523 -18.372832 +1903 225 4 0 2.961435 -2.802836 -17.698014 +1904 225 4 0 2.575925 -2.857520 -19.307575 +1905 226 6 0 21.718884 10.313541 3.085849 +1906 226 4 0 21.842990 10.122072 2.194243 +1907 226 4 0 20.773441 10.408461 3.286860 +1908 227 6 0 13.337112 -4.261456 -15.095198 +1909 227 4 0 12.794211 -4.900007 -14.644470 +1910 227 4 0 14.199509 -4.728814 -15.315507 +1911 228 6 0 -9.310962 9.865254 8.826714 +1912 228 4 0 -9.669554 9.579689 7.984792 +1913 228 4 0 -9.735207 9.276237 9.445171 +1914 229 6 0 -15.178299 -9.566992 -12.324180 +1915 229 4 0 -15.367699 -10.462879 -12.630414 +1916 229 4 0 -14.646062 -9.588613 -11.528432 +1917 230 6 0 -15.859885 -9.750776 8.964734 +1918 230 4 0 -15.304809 -9.850444 8.125201 +1919 230 4 0 -16.789316 -9.705790 8.757985 +1920 231 6 0 -25.239908 11.310293 -1.569623 +1921 231 4 0 -25.920791 10.663431 -1.377427 +1922 231 4 0 -24.373594 10.784234 -1.594237 +1923 232 6 0 24.834518 19.880125 -12.068838 +1924 232 4 0 24.902598 19.037821 -11.641999 +1925 232 4 0 24.569359 20.529336 -11.363034 +1926 233 6 0 -4.910084 -12.441089 2.868321 +1927 233 4 0 -4.196304 -12.571833 3.512128 +1928 233 4 0 -4.472778 -12.489053 1.987214 +1929 234 6 0 26.315754 13.248691 -3.958358 +1930 234 4 0 27.266655 13.212107 -4.180929 +1931 234 4 0 26.465406 13.335958 -3.028348 +1932 235 6 0 24.328527 13.817013 16.149181 +1933 235 4 0 24.827781 14.030624 16.932358 +1934 235 4 0 24.179636 14.591188 15.603219 +1935 236 6 0 21.962373 -16.827624 8.004516 +1936 236 4 0 22.598048 -16.206072 7.580939 +1937 236 4 0 22.450590 -17.261823 8.740917 +1938 237 6 0 -4.825363 -16.614974 -12.877741 +1939 237 4 0 -4.014790 -16.722031 -13.388018 +1940 237 4 0 -4.509200 -15.980807 -12.256351 +1941 238 6 0 23.185997 6.818710 7.631707 +1942 238 4 0 24.005009 7.366044 7.817913 +1943 238 4 0 22.474898 7.499325 7.506791 +1944 239 6 0 6.937383 5.850956 20.832797 +1945 239 4 0 7.490164 6.651357 20.679338 +1946 239 4 0 6.435673 5.734889 20.013467 +1947 240 6 0 25.402656 -2.159701 -17.957744 +1948 240 4 0 25.621496 -3.084064 -17.880786 +1949 240 4 0 25.529344 -1.860574 -18.911595 +1950 241 6 0 10.846509 -11.228008 2.120758 +1951 241 4 0 9.913338 -11.028888 2.277705 +1952 241 4 0 11.049198 -10.691152 1.384887 +1953 242 6 0 23.084559 -1.383675 -1.852278 +1954 242 4 0 23.773226 -1.138388 -2.498419 +1955 242 4 0 22.268498 -0.905061 -2.136333 +1956 243 6 0 -25.783789 -13.543097 -4.342707 +1957 243 4 0 -26.780798 -13.463014 -4.533505 +1958 243 4 0 -25.653740 -14.383466 -3.955333 +1959 244 6 0 1.861632 12.171063 18.076482 +1960 244 4 0 2.556591 11.916600 18.652688 +1961 244 4 0 1.260792 12.537866 18.715290 +1962 245 6 0 -19.142537 14.105154 8.572032 +1963 245 4 0 -19.793181 13.415150 8.631452 +1964 245 4 0 -19.398536 14.384324 7.672644 +1965 246 6 0 9.479353 -2.096525 -4.320850 +1966 246 4 0 10.426570 -2.240688 -4.643403 +1967 246 4 0 9.264888 -1.350839 -4.888316 +1968 247 6 0 3.551422 -11.576062 19.271265 +1969 247 4 0 4.336383 -11.005500 19.220941 +1970 247 4 0 3.612389 -12.122719 20.093542 +1971 248 6 0 -18.654239 -9.535541 17.560019 +1972 248 4 0 -17.877715 -9.179943 17.854976 +1973 248 4 0 -18.494513 -10.119241 16.820922 +1974 249 6 0 22.066324 -17.399278 -0.499821 +1975 249 4 0 21.820234 -16.674838 0.099599 +1976 249 4 0 21.433067 -17.360481 -1.209273 +1977 250 6 0 -9.234082 15.614627 11.653381 +1978 250 4 0 -8.328429 15.947628 11.735875 +1979 250 4 0 -9.156328 14.657428 11.604942 +1980 251 6 0 22.367726 20.360775 16.024793 +1981 251 4 0 21.845316 20.438168 16.820627 +1982 251 4 0 23.011426 21.038841 16.155608 +1983 252 6 0 25.827187 -16.169219 18.903921 +1984 252 4 0 25.252638 -15.420311 18.639632 +1985 252 4 0 25.326971 -16.554629 19.621305 +1986 253 6 0 -19.668270 -7.707320 -8.620499 +1987 253 4 0 -19.491830 -6.794820 -8.636334 +1988 253 4 0 -20.495353 -7.784914 -8.110009 +1989 254 6 0 -15.712732 17.116061 17.387342 +1990 254 4 0 -14.998205 17.679818 17.573935 +1991 254 4 0 -16.301994 17.627283 16.828989 +1992 255 6 0 0.390078 14.938221 -20.122911 +1993 255 4 0 -0.551277 14.873494 -20.329275 +1994 255 4 0 0.539841 14.256395 -19.453229 +1995 256 6 0 15.977716 -18.683555 17.772786 +1996 256 4 0 15.456606 -18.921580 16.979089 +1997 256 4 0 16.280568 -17.751033 17.661557 +1998 257 6 0 5.239306 11.123091 17.557541 +1999 257 4 0 4.918202 10.242467 17.653834 +2000 257 4 0 6.086403 10.952070 18.021365 +2001 258 6 0 9.328850 -5.185156 13.272163 +2002 258 4 0 9.601653 -6.131901 13.229534 +2003 258 4 0 9.762360 -4.740121 12.531719 +2004 259 6 0 25.477790 -8.345165 0.584885 +2005 259 4 0 25.598427 -7.389198 0.879361 +2006 259 4 0 26.086040 -8.798249 1.118095 +2007 260 6 0 17.311830 -17.527015 -10.578123 +2008 260 4 0 17.719447 -16.732289 -10.965110 +2009 260 4 0 16.654082 -17.252150 -9.925765 +2010 261 6 0 -4.429164 -9.201790 -14.116626 +2011 261 4 0 -4.244658 -8.992311 -13.212737 +2012 261 4 0 -5.336375 -8.936542 -14.234036 +2013 262 6 0 2.267339 -4.673980 16.117302 +2014 262 4 0 3.232259 -4.591281 16.113612 +2015 262 4 0 1.900019 -4.413838 16.958419 +2016 263 6 0 25.781004 -8.714690 8.400591 +2017 263 4 0 24.912042 -8.751175 8.867313 +2018 263 4 0 25.752072 -9.508607 7.845086 +2019 264 6 0 24.780338 7.832712 -16.490027 +2020 264 4 0 25.553470 8.297242 -16.909830 +2021 264 4 0 24.349053 7.422109 -17.205903 +2022 265 6 0 -10.973211 -14.579748 -20.349565 +2023 265 4 0 -11.809581 -14.181319 -20.199526 +2024 265 4 0 -11.271798 -15.372634 -20.833354 +2025 266 6 0 20.831402 -9.834964 6.727716 +2026 266 4 0 21.613032 -10.442134 6.754402 +2027 266 4 0 20.647604 -9.731183 7.657599 +2028 267 6 0 0.619789 -15.810628 3.994148 +2029 267 4 0 0.887335 -16.417198 3.309856 +2030 267 4 0 1.249715 -15.910162 4.713083 +2031 268 6 0 23.689965 0.227417 -19.055575 +2032 268 4 0 23.390627 1.115135 -18.834814 +2033 268 4 0 24.618115 0.214091 -18.686279 +2034 269 6 0 -19.356143 -14.966182 6.464534 +2035 269 4 0 -18.731353 -14.875616 7.195912 +2036 269 4 0 -19.299498 -14.034705 6.108709 +2037 270 6 0 -4.810820 7.093213 18.692708 +2038 270 4 0 -4.214506 7.397678 17.991691 +2039 270 4 0 -5.304442 7.897279 18.897729 +2040 271 6 0 12.472494 14.825856 12.199392 +2041 271 4 0 11.666376 14.488038 12.655650 +2042 271 4 0 12.151762 15.361991 11.488854 +2043 272 6 0 -2.525590 -19.553036 -5.583420 +2044 272 4 0 -3.387077 -20.012041 -5.603558 +2045 272 4 0 -1.916602 -19.904101 -6.266561 +2046 273 6 0 -13.215935 11.484331 -2.785220 +2047 273 4 0 -12.887174 11.682417 -1.972234 +2048 273 4 0 -12.509591 11.786661 -3.422263 +2049 274 6 0 13.801640 -19.398163 -2.800474 +2050 274 4 0 12.819741 -19.619737 -2.646754 +2051 274 4 0 13.897982 -19.592042 -3.772199 +2052 275 6 0 -26.233001 19.527836 -20.067788 +2053 275 4 0 -25.451886 18.897692 -20.194468 +2054 275 4 0 -26.399315 19.934622 -20.917526 +2055 276 6 0 8.349896 -20.273103 -5.512912 +2056 276 4 0 8.674030 -19.375363 -5.549945 +2057 276 4 0 7.700037 -20.342277 -4.787842 +2058 277 6 0 -15.037355 -17.935516 15.211469 +2059 277 4 0 -14.146082 -18.339695 15.389947 +2060 277 4 0 -15.202223 -17.984699 14.215392 +2061 278 6 0 8.152699 -3.220333 -19.381684 +2062 278 4 0 7.762730 -2.473688 -19.830286 +2063 278 4 0 8.435795 -2.793242 -18.522747 +2064 279 6 0 10.849575 20.172811 -12.945894 +2065 279 4 0 9.989543 19.760584 -12.890237 +2066 279 4 0 10.974253 20.477018 -13.831243 +2067 280 6 0 -18.094216 -18.088456 -0.091619 +2068 280 4 0 -17.380813 -18.647373 0.106032 +2069 280 4 0 -18.936664 -18.511988 -0.052421 +2070 281 6 0 23.784383 -1.234714 -8.545459 +2071 281 4 0 23.004694 -0.954068 -8.088149 +2072 281 4 0 23.886388 -2.202962 -8.397824 +2073 282 6 0 4.670856 19.296845 -6.507264 +2074 282 4 0 5.525567 19.132893 -6.020467 +2075 282 4 0 4.474979 18.536310 -7.056492 +2076 283 6 0 9.453183 -16.128245 10.894262 +2077 283 4 0 9.172486 -17.052303 10.804233 +2078 283 4 0 8.694890 -15.636054 10.554101 +2079 284 6 0 27.285633 -19.419687 13.608447 +2080 284 4 0 27.147712 -20.155434 14.224268 +2081 284 4 0 27.432376 -19.841205 12.735609 +2082 285 6 0 -13.953143 18.767914 -18.628277 +2083 285 4 0 -14.509541 18.177509 -19.151919 +2084 285 4 0 -14.459773 19.481659 -18.276757 +2085 286 6 0 -8.503297 -13.558947 20.139036 +2086 286 4 0 -9.241112 -13.897460 20.705789 +2087 286 4 0 -7.777412 -13.533354 20.859006 +2088 287 6 0 14.842167 15.398345 -11.842827 +2089 287 4 0 14.711447 15.430309 -12.769279 +2090 287 4 0 14.422321 14.556870 -11.583006 +2091 288 6 0 23.515535 -17.148566 -6.707313 +2092 288 4 0 22.824916 -16.517939 -6.421660 +2093 288 4 0 24.263955 -17.052636 -6.082683 +2094 289 6 0 19.904467 -17.703379 -13.473161 +2095 289 4 0 20.119864 -16.820025 -13.921272 +2096 289 4 0 18.948028 -17.662123 -13.295016 +2097 290 6 0 -9.019729 7.630624 20.233912 +2098 290 4 0 -8.958585 7.872806 21.205680 +2099 290 4 0 -8.777610 8.395080 19.734355 +2100 291 6 0 -16.953402 12.468570 8.282984 +2101 291 4 0 -17.680339 13.160784 8.478943 +2102 291 4 0 -17.500933 11.923064 7.633961 +2103 292 6 0 -8.054795 18.180983 8.459840 +2104 292 4 0 -8.807469 17.559774 8.499933 +2105 292 4 0 -7.598916 17.959389 7.659706 +2106 293 6 0 10.859202 13.972660 9.371520 +2107 293 4 0 10.330904 14.662590 8.917941 +2108 293 4 0 11.760678 13.901317 8.995461 +2109 294 6 0 -20.599796 5.434907 14.082586 +2110 294 4 0 -19.823357 5.807091 13.669543 +2111 294 4 0 -20.650272 4.587948 13.614754 +2112 295 6 0 0.190160 0.223418 -18.957409 +2113 295 4 0 0.213080 -0.260216 -19.803123 +2114 295 4 0 -0.108015 1.088627 -19.162666 +2115 296 6 0 -14.055059 -11.353804 -4.019394 +2116 296 4 0 -14.940567 -11.063742 -3.674139 +2117 296 4 0 -13.870222 -12.125592 -3.430663 +2118 297 6 0 16.635849 17.308753 12.681784 +2119 297 4 0 16.261670 16.470264 12.423079 +2120 297 4 0 17.008841 17.677123 11.849363 +2121 298 6 0 -25.308969 5.432856 -17.149527 +2122 298 4 0 -24.655164 5.918154 -17.671798 +2123 298 4 0 -24.982451 5.555957 -16.246756 +2124 299 6 0 -5.099798 0.287541 -14.704188 +2125 299 4 0 -5.138931 0.519591 -15.635776 +2126 299 4 0 -4.195405 -0.084328 -14.624163 +2127 300 6 0 -23.748764 -10.173408 15.212702 +2128 300 4 0 -23.345980 -11.023651 15.356645 +2129 300 4 0 -22.994745 -9.539993 15.112815 +2130 301 6 0 -19.199669 -17.758897 16.946421 +2131 301 4 0 -19.316903 -16.926776 16.445483 +2132 301 4 0 -18.281115 -18.078783 16.752689 +2133 302 6 0 24.275104 4.639677 -5.172613 +2134 302 4 0 24.760810 5.226861 -4.613774 +2135 302 4 0 24.701632 4.684738 -6.052735 +2136 303 6 0 17.563599 12.903092 3.658695 +2137 303 4 0 17.685848 13.560550 2.940588 +2138 303 4 0 16.898391 13.306778 4.183635 +2139 304 6 0 4.174461 14.293392 18.270873 +2140 304 4 0 4.252009 13.308189 18.184247 +2141 304 4 0 3.284820 14.507614 18.560426 +2142 305 6 0 19.179266 -5.054347 -19.519249 +2143 305 4 0 18.780260 -5.604062 -18.845970 +2144 305 4 0 19.534147 -5.684633 -20.141388 +2145 306 6 0 15.658994 11.957779 13.199900 +2146 306 4 0 15.623319 12.838749 12.752640 +2147 306 4 0 16.531973 11.890366 13.660327 +2148 307 6 0 24.758272 -19.997077 5.366209 +2149 307 4 0 24.975628 -20.215262 6.282332 +2150 307 4 0 23.761106 -19.988430 5.431807 +2151 308 6 0 -2.249027 18.570837 -6.683241 +2152 308 4 0 -2.430859 18.100958 -7.499568 +2153 308 4 0 -2.994327 18.644727 -6.092295 +2154 309 6 0 3.560378 -14.631233 -16.617924 +2155 309 4 0 3.964695 -14.691511 -15.761000 +2156 309 4 0 3.979389 -13.913756 -17.067597 +2157 310 6 0 -20.545154 -8.912553 -11.230039 +2158 310 4 0 -21.471069 -9.085454 -11.070560 +2159 310 4 0 -20.109583 -8.288894 -10.586743 +2160 311 6 0 -19.728929 -18.157363 9.832477 +2161 311 4 0 -20.527618 -17.995705 9.320962 +2162 311 4 0 -19.366046 -18.994557 9.552804 +2163 312 6 0 -12.565736 15.723300 8.977635 +2164 312 4 0 -13.331978 15.327968 8.600724 +2165 312 4 0 -12.885953 15.953376 9.855856 +2166 313 6 0 7.768656 -13.056656 -8.955241 +2167 313 4 0 8.048624 -13.789739 -8.425150 +2168 313 4 0 8.500788 -12.860524 -9.542256 +2169 314 6 0 17.695317 -0.658526 -5.443674 +2170 314 4 0 16.888949 -0.180431 -5.230393 +2171 314 4 0 17.868907 -0.568768 -6.336008 +2172 315 6 0 -26.474265 -17.668366 15.551800 +2173 315 4 0 -25.973432 -16.911585 15.255881 +2174 315 4 0 -26.867392 -18.124201 14.764520 +2175 316 6 0 20.955024 16.299890 1.156790 +2176 316 4 0 20.921523 15.384753 1.335509 +2177 316 4 0 20.079452 16.568627 1.085050 +2178 317 6 0 -23.821616 -1.174086 5.308601 +2179 317 4 0 -24.669920 -1.473611 4.967755 +2180 317 4 0 -23.878862 -0.261519 5.469448 +2181 318 6 0 -25.063965 -17.135593 -5.451522 +2182 318 4 0 -24.564833 -16.443850 -5.938694 +2183 318 4 0 -25.016214 -17.933665 -5.953179 +2184 319 6 0 8.668628 -10.867057 3.901078 +2185 319 4 0 7.746163 -11.110803 3.959883 +2186 319 4 0 8.752868 -10.022287 4.307352 +2187 320 6 0 5.527084 -9.208555 11.411321 +2188 320 4 0 4.725607 -8.751662 11.714973 +2189 320 4 0 5.164735 -10.130404 11.316322 +2190 321 6 0 -9.337532 -6.457757 20.443267 +2191 321 4 0 -9.836709 -6.506988 19.607051 +2192 321 4 0 -8.808476 -7.295450 20.450087 +2193 322 6 0 19.513522 2.780765 9.780761 +2194 322 4 0 19.329574 3.702885 9.602934 +2195 322 4 0 18.756331 2.266956 9.355945 +2196 323 6 0 -0.037870 9.082570 10.914997 +2197 323 4 0 -0.144923 8.896093 11.865591 +2198 323 4 0 0.659909 9.734037 10.785946 +2199 324 6 0 21.027998 -15.348739 14.790857 +2200 324 4 0 21.254465 -15.801776 13.888722 +2201 324 4 0 20.075738 -15.400354 14.845656 +2202 325 6 0 14.156515 -11.391327 -14.361896 +2203 325 4 0 14.547773 -11.645291 -13.478079 +2204 325 4 0 14.944302 -11.067054 -14.899771 +2205 326 6 0 -25.175320 17.336673 -10.823444 +2206 326 4 0 -24.334636 17.464575 -11.235937 +2207 326 4 0 -25.742033 18.106292 -10.995823 +2208 327 6 0 -4.110604 17.298456 -14.084863 +2209 327 4 0 -5.063030 17.631527 -14.014860 +2210 327 4 0 -3.534872 17.849349 -13.549744 +2211 328 6 0 -8.725501 -4.824788 13.985429 +2212 328 4 0 -8.885224 -4.493817 14.844915 +2213 328 4 0 -9.307957 -4.341036 13.364528 +2214 329 6 0 -16.804142 -4.642352 -8.769233 +2215 329 4 0 -16.450670 -4.499749 -7.869595 +2216 329 4 0 -16.368056 -3.963859 -9.273107 +2217 330 6 0 -13.154274 13.347332 -10.792162 +2218 330 4 0 -13.404917 13.942330 -10.034598 +2219 330 4 0 -12.589084 12.641097 -10.473229 +2220 331 6 0 -8.087285 12.645852 17.838668 +2221 331 4 0 -8.371003 13.597239 17.804934 +2222 331 4 0 -8.469236 12.290110 16.988633 +2223 332 6 0 -22.931798 10.095495 10.652715 +2224 332 4 0 -23.213802 9.766315 11.531742 +2225 332 4 0 -23.320207 11.046413 10.700380 +2226 333 6 0 -20.983751 11.377312 6.751864 +2227 333 4 0 -21.503099 10.599928 6.692621 +2228 333 4 0 -21.162587 11.703483 7.660694 +2229 334 6 0 -9.661190 -11.046578 19.483449 +2230 334 4 0 -9.724620 -11.203957 20.428241 +2231 334 4 0 -9.182029 -11.809683 19.119545 +2232 335 6 0 20.353500 0.575918 7.152755 +2233 335 4 0 20.303576 0.620770 8.117649 +2234 335 4 0 20.337320 -0.339163 6.903512 +2235 336 6 0 15.990143 -2.457675 4.143017 +2236 336 4 0 15.489807 -1.953955 3.480334 +2237 336 4 0 15.653499 -2.040453 4.954556 +2238 337 6 0 -2.567783 16.482281 -16.807948 +2239 337 4 0 -3.050946 16.892783 -16.078496 +2240 337 4 0 -2.535318 17.087619 -17.572948 +2241 338 6 0 -16.459463 12.994478 3.247220 +2242 338 4 0 -16.263104 13.723100 3.963882 +2243 338 4 0 -16.915538 12.273221 3.618885 +2244 339 6 0 -19.849611 -12.213163 -10.741659 +2245 339 4 0 -19.664050 -11.750480 -11.517833 +2246 339 4 0 -20.220973 -11.559473 -10.070660 +2247 340 6 0 9.529408 -8.147204 4.860752 +2248 340 4 0 9.247691 -7.588893 5.626073 +2249 340 4 0 10.362750 -8.519549 5.100951 +2250 341 6 0 21.538384 -19.843213 20.537686 +2251 341 4 0 20.838857 -19.226662 20.298246 +2252 341 4 0 21.322950 -20.195215 21.445033 +2253 342 6 0 -17.414751 11.192172 -0.613866 +2254 342 4 0 -16.961551 11.804357 -1.153593 +2255 342 4 0 -16.725569 10.585952 -0.366735 +2256 343 6 0 -21.091905 1.428060 -3.164120 +2257 343 4 0 -21.397983 0.608166 -3.585164 +2258 343 4 0 -21.036566 1.285518 -2.209763 +2259 344 6 0 4.570809 -15.227797 -13.905090 +2260 344 4 0 5.091400 -16.090349 -13.835376 +2261 344 4 0 4.857834 -14.567263 -13.304845 +2262 345 6 0 10.258640 0.903759 11.623534 +2263 345 4 0 10.598017 1.120991 12.514742 +2264 345 4 0 10.521679 1.552470 11.006853 +2265 346 6 0 17.642778 19.808652 2.346246 +2266 346 4 0 17.869355 20.445525 1.653123 +2267 346 4 0 18.518553 19.467904 2.662406 +2268 347 6 0 -22.563090 -16.244370 16.474521 +2269 347 4 0 -22.037402 -15.816362 17.175370 +2270 347 4 0 -22.163193 -17.008155 16.111897 +2271 348 6 0 -21.737447 10.632642 0.323883 +2272 348 4 0 -22.138870 9.972645 -0.310600 +2273 348 4 0 -20.878663 10.242561 0.662313 +2274 349 6 0 4.943953 4.514136 10.142833 +2275 349 4 0 4.093975 4.955485 10.181030 +2276 349 4 0 5.290181 4.560969 11.077254 +2277 350 6 0 27.098096 16.972617 9.553607 +2278 350 4 0 27.164532 17.549674 10.320006 +2279 350 4 0 26.222145 17.230319 9.158216 +2280 351 6 0 9.975471 10.519219 19.375075 +2281 351 4 0 10.438521 9.921274 18.809666 +2282 351 4 0 10.113621 10.195006 20.328269 +2283 352 6 0 19.572560 8.531305 -14.059063 +2284 352 4 0 20.062311 8.733262 -13.213496 +2285 352 4 0 20.153062 7.889577 -14.538183 +2286 353 6 0 -7.918488 -2.954663 -18.780336 +2287 353 4 0 -7.314540 -2.910798 -19.514402 +2288 353 4 0 -8.797924 -3.116600 -19.166228 +2289 354 6 0 19.686374 -16.545236 11.269807 +2290 354 4 0 18.989129 -17.260241 11.377153 +2291 354 4 0 19.219253 -15.710481 11.534976 +2292 355 6 0 27.391573 13.462198 15.739536 +2293 355 4 0 26.622656 13.814429 16.131734 +2294 355 4 0 28.086271 13.184682 16.372753 +2295 356 6 0 18.671829 14.132646 1.432787 +2296 356 4 0 18.377115 15.035385 1.296775 +2297 356 4 0 19.190360 13.851325 0.615983 +2298 357 6 0 -12.681771 -19.875375 -9.428073 +2299 357 4 0 -12.883609 -20.344329 -8.608964 +2300 357 4 0 -13.567320 -19.451635 -9.646126 +2301 358 6 0 10.029899 9.448526 2.506329 +2302 358 4 0 9.228082 9.803143 2.872633 +2303 358 4 0 10.370666 8.711255 3.072050 +2304 359 6 0 6.829895 1.451627 -19.901465 +2305 359 4 0 5.933644 1.521889 -20.328666 +2306 359 4 0 6.997933 0.508973 -20.108952 +2307 360 6 0 11.280235 -14.880225 18.973288 +2308 360 4 0 11.853282 -14.806884 19.759711 +2309 360 4 0 11.206610 -13.922929 18.647648 +2310 361 6 0 -13.509311 20.508361 -14.696662 +2311 361 4 0 -13.366236 21.153458 -13.979706 +2312 361 4 0 -13.642549 19.724179 -14.192639 +2313 362 6 0 15.445671 -17.794973 -8.479139 +2314 362 4 0 14.669400 -17.783629 -7.901271 +2315 362 4 0 15.605108 -18.746647 -8.547881 +2316 363 6 0 -18.852558 16.377330 10.008262 +2317 363 4 0 -18.954566 15.472318 9.697097 +2318 363 4 0 -18.836824 16.305839 10.975588 +2319 364 6 0 -3.265075 16.259228 2.098989 +2320 364 4 0 -3.687496 16.647682 2.840607 +2321 364 4 0 -3.231168 15.327934 2.400445 +2322 365 6 0 23.408970 8.557256 -2.138126 +2323 365 4 0 23.726381 8.828223 -3.046334 +2324 365 4 0 24.153951 8.006209 -1.806696 +2325 366 6 0 -18.228938 -7.461297 -20.804424 +2326 366 4 0 -17.795687 -7.325321 -21.656583 +2327 366 4 0 -19.188295 -7.558977 -20.991723 +2328 367 6 0 14.146043 8.886880 -14.615085 +2329 367 4 0 13.553393 8.171127 -14.600739 +2330 367 4 0 15.003303 8.599303 -14.311172 +2331 368 6 0 20.665164 -4.419654 -16.715421 +2332 368 4 0 20.745422 -5.254288 -17.245683 +2333 368 4 0 20.538188 -3.785743 -17.440686 +2334 369 6 0 -26.165001 -17.430791 -11.871737 +2335 369 4 0 -26.769662 -17.569088 -12.614295 +2336 369 4 0 -25.372303 -17.816712 -12.251152 +2337 370 6 0 8.380243 12.002311 -18.225092 +2338 370 4 0 9.331509 12.039099 -17.900481 +2339 370 4 0 7.935426 11.441291 -17.531137 +2340 371 6 0 16.095732 -15.248679 -18.961804 +2341 371 4 0 16.404115 -16.023436 -19.441838 +2342 371 4 0 15.279718 -15.501183 -18.509138 +2343 372 6 0 22.345963 -0.521889 9.487232 +2344 372 4 0 22.570555 0.299269 9.062706 +2345 372 4 0 21.500534 -0.394595 9.878388 +2346 373 6 0 -5.612444 19.185073 -9.536350 +2347 373 4 0 -5.038468 18.530538 -9.043403 +2348 373 4 0 -6.014867 19.664271 -8.828529 +2349 374 6 0 -25.317965 -13.476019 -10.680751 +2350 374 4 0 -24.422815 -13.795959 -10.857483 +2351 374 4 0 -25.587407 -14.286723 -10.139795 +2352 375 6 0 5.097575 -2.791870 -18.340648 +2353 375 4 0 5.426002 -3.124971 -17.421700 +2354 375 4 0 5.173769 -1.845992 -18.214725 +2355 376 6 0 -12.050426 13.594034 -0.308748 +2356 376 4 0 -12.143354 14.332220 -0.865135 +2357 376 4 0 -12.835416 13.379684 0.170780 +2358 377 6 0 21.220086 12.431770 7.373850 +2359 377 4 0 20.289621 12.356271 7.355050 +2360 377 4 0 21.528409 11.600369 6.969319 +2361 378 6 0 -11.849558 -15.011079 -4.217755 +2362 378 4 0 -12.535045 -15.564610 -4.601476 +2363 378 4 0 -11.261594 -15.726054 -3.732481 +2364 379 6 0 19.540600 10.648547 -0.222993 +2365 379 4 0 19.073765 10.676651 0.596923 +2366 379 4 0 19.853650 11.516176 -0.351029 +2367 380 6 0 -1.367659 10.060973 3.255905 +2368 380 4 0 -0.787645 10.846481 3.221548 +2369 380 4 0 -0.921325 9.404127 2.683633 +2370 381 6 0 17.574245 20.192556 -13.486878 +2371 381 4 0 18.041333 19.630746 -14.072375 +2372 381 4 0 18.127340 20.293838 -12.705179 +2373 382 6 0 -18.105957 7.325844 1.685035 +2374 382 4 0 -17.284929 7.597738 2.015915 +2375 382 4 0 -18.515197 8.193099 1.440712 +2376 383 6 0 -25.771851 -0.494052 1.833459 +2377 383 4 0 -26.562791 0.014660 2.156519 +2378 383 4 0 -25.800109 -0.615443 0.880744 +2379 384 6 0 13.515684 3.091718 8.129575 +2380 384 4 0 12.824035 3.780462 8.011639 +2381 384 4 0 13.855067 3.149101 9.026041 +2382 385 6 0 15.024255 -12.331971 18.507086 +2383 385 4 0 14.688886 -12.986046 17.868523 +2384 385 4 0 14.285850 -11.759175 18.796860 +2385 386 6 0 10.503062 -17.208661 -17.537094 +2386 386 4 0 10.869560 -17.224545 -18.470986 +2387 386 4 0 10.144441 -18.040582 -17.343990 +2388 387 6 0 2.330431 13.849933 -16.758821 +2389 387 4 0 1.519885 13.548197 -17.169816 +2390 387 4 0 2.257199 14.793756 -16.760513 +2391 388 6 0 -23.129172 -9.148548 -12.092521 +2392 388 4 0 -24.075243 -8.995756 -12.000743 +2393 388 4 0 -23.086180 -10.039746 -12.445685 +2394 389 6 0 -17.448662 -1.079141 -7.931513 +2395 389 4 0 -17.738453 -1.885709 -7.374659 +2396 389 4 0 -18.172042 -1.099635 -8.625421 +2397 390 6 0 24.048570 -3.763661 -7.564125 +2398 390 4 0 24.193240 -3.884883 -6.642519 +2399 390 4 0 24.456227 -4.566888 -7.925689 +2400 391 6 0 -17.808703 -19.337398 7.373130 +2401 391 4 0 -17.303175 -20.173651 7.501985 +2402 391 4 0 -17.692612 -19.135904 6.461238 +2403 392 6 0 4.319079 -18.666468 -6.315988 +2404 392 4 0 4.318654 -19.531271 -6.749054 +2405 392 4 0 3.377567 -18.420225 -6.140192 +2406 393 6 0 15.744362 14.892988 2.660633 +2407 393 4 0 15.944482 15.856708 2.714939 +2408 393 4 0 15.301384 14.836913 1.848608 +2409 394 6 0 -6.829329 -18.727707 2.030136 +2410 394 4 0 -6.415578 -18.452019 2.842593 +2411 394 4 0 -6.067476 -19.005491 1.466821 +2412 395 6 0 24.121188 19.977112 -20.354495 +2413 395 4 0 24.224055 19.319758 -19.652345 +2414 395 4 0 24.762727 19.635175 -20.939363 +2415 396 6 0 10.579259 -12.534608 5.151755 +2416 396 4 0 9.930043 -12.025918 4.646940 +2417 396 4 0 11.359927 -12.071097 4.861131 +2418 397 6 0 5.967673 -14.216687 -10.676351 +2419 397 4 0 6.631855 -14.774737 -11.170158 +2420 397 4 0 6.490580 -13.637897 -10.118514 +2421 398 6 0 18.539687 -16.102929 15.331204 +2422 398 4 0 18.327655 -16.200138 16.203787 +2423 398 4 0 17.897003 -15.568195 14.864351 +2424 399 6 0 -2.895055 -4.676531 11.113797 +2425 399 4 0 -2.434824 -5.435723 10.710060 +2426 399 4 0 -2.231401 -4.035506 11.395814 +2427 400 6 0 -8.133832 14.629593 7.309404 +2428 400 4 0 -8.851831 15.090624 7.871798 +2429 400 4 0 -7.946895 13.906109 7.942402 +2430 401 6 0 22.250798 0.698906 -0.231699 +2431 401 4 0 22.200775 1.664146 -0.197509 +2432 401 4 0 22.955911 0.389699 -0.887067 +2433 402 6 0 4.057613 14.734523 9.271521 +2434 402 4 0 3.560432 15.591515 9.153949 +2435 402 4 0 4.938114 14.882755 8.921185 +2436 403 6 0 -17.698257 12.666615 -4.894250 +2437 403 4 0 -17.252884 12.676027 -4.012690 +2438 403 4 0 -18.619276 12.371224 -4.622833 +2439 404 6 0 26.668158 -12.819700 -1.311515 +2440 404 4 0 27.032009 -13.646800 -1.097954 +2441 404 4 0 26.646890 -12.850693 -2.254784 +2442 405 6 0 7.224554 13.850996 3.318452 +2443 405 4 0 8.019795 14.275937 3.600876 +2444 405 4 0 7.668540 12.980654 3.041459 +2445 406 6 0 8.952709 -7.047293 -13.075849 +2446 406 4 0 9.898167 -6.904505 -13.302591 +2447 406 4 0 8.562667 -6.214154 -12.992709 +2448 407 6 0 -17.814401 -1.840934 -1.803929 +2449 407 4 0 -18.744975 -1.741200 -1.902642 +2450 407 4 0 -17.699335 -2.395812 -1.018915 +2451 408 6 0 -24.621095 6.164997 -14.673611 +2452 408 4 0 -24.877382 5.755063 -13.785112 +2453 408 4 0 -23.950276 6.830635 -14.339769 +2454 409 6 0 10.479140 -19.025039 18.297194 +2455 409 4 0 11.349364 -18.876899 18.653004 +2456 409 4 0 10.644550 -19.606803 17.504887 +2457 410 6 0 -19.101403 14.252398 -1.786055 +2458 410 4 0 -19.573879 14.657593 -2.525389 +2459 410 4 0 -19.587903 13.601901 -1.323620 +2460 411 6 0 6.717226 1.088539 17.700070 +2461 411 4 0 6.231555 1.199419 18.516697 +2462 411 4 0 6.881490 0.099135 17.787770 +2463 412 6 0 -13.643189 -7.863866 -8.730575 +2464 412 4 0 -14.517866 -7.638837 -9.023604 +2465 412 4 0 -13.154332 -7.346815 -9.390510 +2466 413 6 0 -17.730487 0.990816 -0.622980 +2467 413 4 0 -17.303015 0.205330 -0.935730 +2468 413 4 0 -17.531444 1.017418 0.308170 +2469 414 6 0 25.260176 -10.957318 6.206094 +2470 414 4 0 25.876991 -10.477352 5.676397 +2471 414 4 0 24.475935 -10.963099 5.603334 +2472 415 6 0 14.205628 -17.408033 -13.601399 +2473 415 4 0 14.188193 -18.247713 -13.204445 +2474 415 4 0 13.713279 -17.625825 -14.405922 +2475 416 6 0 -20.784853 -15.686238 -5.898849 +2476 416 4 0 -19.875611 -15.547599 -5.727799 +2477 416 4 0 -21.245430 -14.929289 -5.375604 +2478 417 6 0 -22.633197 8.330983 -13.909999 +2479 417 4 0 -22.233520 9.245054 -13.847024 +2480 417 4 0 -21.843881 7.942242 -14.256165 +2481 418 6 0 11.786714 0.286536 -14.937634 +2482 418 4 0 11.786532 -0.671475 -15.215390 +2483 418 4 0 11.605445 0.272418 -13.981805 +2484 419 6 0 1.681240 0.254113 10.330852 +2485 419 4 0 1.597166 -0.618385 10.733271 +2486 419 4 0 1.413887 0.849687 11.007136 +2487 420 6 0 6.751727 13.837704 8.238736 +2488 420 4 0 6.439245 13.979946 7.299037 +2489 420 4 0 7.165300 14.697405 8.431164 +2490 421 6 0 22.234756 20.556412 6.164713 +2491 421 4 0 21.672715 21.351790 6.258812 +2492 421 4 0 21.702890 19.818097 6.555926 +2493 422 6 0 17.385018 20.449668 10.876882 +2494 422 4 0 16.551469 20.156010 10.407413 +2495 422 4 0 17.440995 21.384757 10.538556 +2496 423 6 0 17.700641 4.527370 19.573010 +2497 423 4 0 17.031995 4.431285 20.256942 +2498 423 4 0 17.481318 3.724034 19.023628 +2499 424 6 0 0.483339 18.111382 -1.823860 +2500 424 4 0 0.218803 18.655109 -1.106869 +2501 424 4 0 1.294713 18.496788 -2.211913 +2502 425 6 0 22.943918 -17.096855 -14.079609 +2503 425 4 0 22.830905 -16.325512 -14.742916 +2504 425 4 0 22.793828 -16.695124 -13.249381 +2505 426 6 0 -12.197414 -2.755310 -15.143763 +2506 426 4 0 -11.972492 -3.409760 -15.785801 +2507 426 4 0 -11.687560 -1.995802 -15.449188 +2508 427 6 0 26.233813 3.059744 -20.109192 +2509 427 4 0 25.634066 3.752709 -19.758728 +2510 427 4 0 26.841050 3.505495 -20.746283 +2511 428 6 0 -0.398685 9.886291 -12.320899 +2512 428 4 0 -0.971500 9.110158 -12.271110 +2513 428 4 0 -0.140227 10.055684 -11.384852 +2514 429 6 0 24.766172 -8.159537 20.532359 +2515 429 4 0 24.676407 -7.239089 20.840721 +2516 429 4 0 23.932220 -8.459730 20.138818 +2517 430 6 0 -13.286555 16.304911 0.900630 +2518 430 4 0 -13.716595 15.953327 1.640887 +2519 430 4 0 -12.366691 16.365858 1.124146 +2520 431 6 0 23.399832 -13.989313 -14.426821 +2521 431 4 0 22.828210 -13.569339 -13.765880 +2522 431 4 0 23.255649 -13.414985 -15.246789 +2523 432 6 0 -22.204092 -4.611638 18.736383 +2524 432 4 0 -21.249902 -4.938147 18.770328 +2525 432 4 0 -22.211606 -3.716829 18.428273 +2526 433 6 0 21.224851 -14.221140 4.789172 +2527 433 4 0 20.596044 -14.495409 5.464993 +2528 433 4 0 21.036876 -14.781346 3.969428 +2529 434 6 0 -0.044311 17.960476 1.830489 +2530 434 4 0 -0.313520 17.147157 1.446425 +2531 434 4 0 -0.796207 18.542831 1.866711 +2532 435 6 0 -18.246500 10.701990 6.592891 +2533 435 4 0 -19.216406 10.992455 6.669125 +2534 435 4 0 -18.267435 9.771442 6.876019 +2535 436 6 0 -0.694143 4.494214 14.021020 +2536 436 4 0 -1.277964 4.997681 13.392435 +2537 436 4 0 -1.155981 4.663647 14.857205 +2538 437 6 0 22.107052 12.819546 -9.903327 +2539 437 4 0 21.296704 13.306649 -9.951121 +2540 437 4 0 22.688713 13.295428 -10.537192 +2541 438 6 0 15.302055 -5.253465 4.034438 +2542 438 4 0 15.326181 -4.291521 3.882146 +2543 438 4 0 16.042293 -5.540500 3.526531 +2544 439 6 0 23.950953 1.271229 5.710913 +2545 439 4 0 23.173495 0.716989 5.765239 +2546 439 4 0 24.051944 1.770274 6.552925 +2547 440 6 0 14.279151 12.647971 15.806599 +2548 440 4 0 14.591090 12.573140 14.893038 +2549 440 4 0 13.381765 12.300162 15.960467 +2550 441 6 0 15.038801 -1.661905 6.589100 +2551 441 4 0 15.892587 -1.551660 6.975739 +2552 441 4 0 14.462182 -0.875051 6.734929 +2553 442 6 0 -6.429505 -9.279231 12.087220 +2554 442 4 0 -6.701830 -10.093703 11.622225 +2555 442 4 0 -5.612815 -9.032770 11.586921 +2556 443 6 0 11.290924 -10.372276 7.217133 +2557 443 4 0 10.622389 -10.955150 6.788259 +2558 443 4 0 11.616275 -9.796597 6.503882 +2559 444 6 0 -24.866907 -13.913179 10.222650 +2560 444 4 0 -24.271979 -13.182736 9.950447 +2561 444 4 0 -25.017302 -14.420326 9.408453 +2562 445 6 0 -27.314146 -19.793576 17.380891 +2563 445 4 0 -27.699149 -20.386657 16.714229 +2564 445 4 0 -26.959051 -19.085769 16.826343 +2565 446 6 0 12.965414 4.595141 18.162499 +2566 446 4 0 13.458928 3.797998 18.472673 +2567 446 4 0 12.462784 4.369395 17.349650 +2568 447 6 0 19.720286 6.716538 19.074363 +2569 447 4 0 18.977040 6.161032 19.255447 +2570 447 4 0 20.199596 6.784088 19.921433 +2571 448 6 0 -17.837323 -10.531279 11.466891 +2572 448 4 0 -18.443320 -10.286485 12.180075 +2573 448 4 0 -17.136906 -10.892709 12.057832 +2574 449 6 0 3.118617 16.201513 -14.560896 +2575 449 4 0 2.524275 15.456086 -14.261283 +2576 449 4 0 3.153477 16.211998 -15.545130 +2577 450 6 0 15.713269 9.977240 -3.550942 +2578 450 4 0 16.125798 10.839790 -3.855082 +2579 450 4 0 16.256998 9.663172 -2.774134 +2580 451 6 0 13.404328 14.288352 8.236302 +2581 451 4 0 13.804031 15.222512 8.339581 +2582 451 4 0 14.094703 13.583706 8.316160 +2583 452 6 0 1.715242 -17.595877 -5.517990 +2584 452 4 0 1.864739 -16.803207 -5.011472 +2585 452 4 0 1.121502 -17.292257 -6.152942 +2586 453 6 0 11.186181 -15.378074 -8.941210 +2587 453 4 0 10.964916 -15.109818 -9.814041 +2588 453 4 0 11.164732 -14.643976 -8.304569 +2589 454 6 0 -25.412651 0.765668 -5.618949 +2590 454 4 0 -25.840497 0.596705 -6.434188 +2591 454 4 0 -26.027451 1.074079 -4.940438 +2592 455 6 0 -11.380143 13.107124 -18.001950 +2593 455 4 0 -12.159770 13.386797 -17.518060 +2594 455 4 0 -11.627822 13.258638 -18.958908 +2595 456 6 0 7.443094 19.776722 19.670510 +2596 456 4 0 6.730151 19.191868 19.918965 +2597 456 4 0 7.622698 19.719431 18.722036 +2598 457 6 0 24.425946 4.299128 7.836287 +2599 457 4 0 24.143986 5.210765 7.985415 +2600 457 4 0 24.990386 4.054602 8.572061 +2601 458 6 0 -3.501704 -11.679155 -10.742632 +2602 458 4 0 -4.397462 -12.025343 -10.633214 +2603 458 4 0 -3.405610 -11.663721 -11.695424 +2604 459 6 0 0.913373 -18.230470 16.876362 +2605 459 4 0 0.053834 -18.577145 16.706546 +2606 459 4 0 1.398023 -19.065707 17.119688 +2607 460 6 0 -9.901596 19.393938 15.691257 +2608 460 4 0 -9.078500 18.954279 15.490614 +2609 460 4 0 -10.185869 18.992605 16.470215 +2610 461 6 0 17.500333 8.706246 -1.323866 +2611 461 4 0 18.176182 9.357546 -1.088149 +2612 461 4 0 17.886380 7.895975 -1.087485 +2613 462 6 0 -24.806806 -14.651049 -14.711674 +2614 462 4 0 -23.905722 -14.363057 -14.892641 +2615 462 4 0 -25.324843 -13.797568 -14.671497 +2616 463 6 0 -11.922848 -15.711273 -13.536344 +2617 463 4 0 -11.771327 -16.170114 -14.379176 +2618 463 4 0 -11.859275 -16.406199 -12.902056 +2619 464 6 0 -27.003017 7.585104 3.060101 +2620 464 4 0 -26.800446 6.932155 2.407207 +2621 464 4 0 -26.438815 7.393710 3.843574 +2622 465 6 0 -10.312090 7.223617 10.185454 +2623 465 4 0 -10.405406 7.379966 11.161275 +2624 465 4 0 -9.783333 6.436443 10.181461 +2625 466 6 0 23.537015 20.390749 -9.649267 +2626 466 4 0 23.323982 21.198505 -9.168669 +2627 466 4 0 23.931089 19.837314 -8.973454 +2628 467 6 0 -17.448795 -20.856696 -12.629322 +2629 467 4 0 -17.613855 -21.585186 -13.226336 +2630 467 4 0 -18.268235 -20.483922 -12.239203 +2631 468 6 0 -5.704053 -12.831319 -13.206852 +2632 468 4 0 -6.332034 -12.109323 -13.311978 +2633 468 4 0 -4.837836 -12.573450 -13.575508 +2634 469 6 0 -7.475606 18.168410 15.238194 +2635 469 4 0 -6.927022 17.679409 15.798229 +2636 469 4 0 -6.978971 18.983237 14.964387 +2637 470 6 0 23.258739 11.168040 16.596096 +2638 470 4 0 23.818087 11.847416 16.270136 +2639 470 4 0 23.610710 10.307417 16.344734 +2640 471 6 0 3.146606 8.327361 -18.713397 +2641 471 4 0 3.334432 7.845623 -19.520851 +2642 471 4 0 3.621381 9.175132 -18.785471 +2643 472 6 0 0.508878 16.181859 6.176221 +2644 472 4 0 1.478661 16.383107 6.127134 +2645 472 4 0 0.329178 16.140784 7.185704 +2646 473 6 0 -11.810390 15.699273 5.840977 +2647 473 4 0 -12.031355 16.450687 6.361038 +2648 473 4 0 -10.941390 15.840688 5.470174 +2649 474 6 0 16.703781 -6.435675 -7.458235 +2650 474 4 0 15.950366 -6.851824 -7.907248 +2651 474 4 0 16.319676 -6.119538 -6.579472 +2652 475 6 0 -16.104630 7.738737 15.683306 +2653 475 4 0 -15.741449 7.072122 15.101362 +2654 475 4 0 -15.325944 8.330995 15.966646 +2655 476 6 0 -12.982372 -5.391773 13.641043 +2656 476 4 0 -13.067158 -6.334773 13.565642 +2657 476 4 0 -13.835584 -5.074352 13.303582 +2658 477 6 0 -0.691433 15.384761 -9.798051 +2659 477 4 0 0.035655 15.975465 -9.534555 +2660 477 4 0 -1.411870 15.925295 -10.115684 +2661 478 6 0 22.895397 13.997330 -2.879616 +2662 478 4 0 23.276050 14.805518 -2.488993 +2663 478 4 0 21.981907 14.160579 -3.026251 +2664 479 6 0 -6.947442 -13.379975 4.783672 +2665 479 4 0 -6.469058 -13.127559 4.014561 +2666 479 4 0 -7.365275 -12.581164 5.147764 +2667 480 6 0 -6.156966 10.605862 2.666376 +2668 480 4 0 -6.752949 10.183956 3.255572 +2669 480 4 0 -5.588229 11.111653 3.195145 +2670 481 6 0 17.104300 -12.560553 4.419376 +2671 481 4 0 16.344172 -13.086998 4.734928 +2672 481 4 0 17.420711 -11.981042 5.141534 +2673 482 6 0 -27.199948 7.334242 -15.333048 +2674 482 4 0 -26.297948 6.895160 -15.306746 +2675 482 4 0 -27.693886 6.547850 -15.268217 +2676 483 6 0 18.024202 -19.856328 -19.395594 +2677 483 4 0 18.487766 -20.698158 -19.394705 +2678 483 4 0 17.496643 -19.929970 -20.262172 +2679 484 6 0 22.144036 -16.812143 16.683717 +2680 484 4 0 21.875393 -16.308766 15.860916 +2681 484 4 0 22.479620 -17.614693 16.338233 +2682 485 6 0 25.514687 -13.472113 7.132093 +2683 485 4 0 25.319079 -13.294653 8.096235 +2684 485 4 0 25.494887 -12.570062 6.821050 +2685 486 6 0 -12.445347 -17.163112 -18.161764 +2686 486 4 0 -13.331012 -16.853903 -17.823843 +2687 486 4 0 -12.475852 -18.105485 -18.058376 +2688 487 6 0 6.245110 16.618836 2.470683 +2689 487 4 0 5.362728 16.987415 2.415415 +2690 487 4 0 6.013984 15.709339 2.583315 +2691 488 6 0 -7.618060 -8.630004 1.461475 +2692 488 4 0 -8.009714 -7.788174 1.663581 +2693 488 4 0 -7.300014 -8.871099 2.309214 +2694 489 6 0 1.276161 -5.724890 -17.027124 +2695 489 4 0 0.639753 -5.451556 -16.374073 +2696 489 4 0 1.572713 -6.534640 -16.615769 +2697 490 6 0 20.941259 -12.865847 16.430327 +2698 490 4 0 21.406858 -13.389929 15.801253 +2699 490 4 0 21.410092 -12.085207 16.695307 +2700 491 6 0 18.670123 -9.367430 14.139852 +2701 491 4 0 17.803568 -9.004865 14.207764 +2702 491 4 0 18.435630 -10.292015 14.355155 +2703 492 6 0 15.733761 -0.209804 0.007017 +2704 492 4 0 15.513443 -0.802742 -0.762427 +2705 492 4 0 15.180436 -0.596633 0.738607 +2706 493 6 0 20.535815 18.401459 7.207233 +2707 493 4 0 20.172747 18.499555 8.120342 +2708 493 4 0 19.715556 18.443909 6.669483 +2709 494 6 0 -19.654075 2.825062 1.617329 +2710 494 4 0 -20.035859 3.209607 2.473368 +2711 494 4 0 -19.137175 3.619122 1.285240 +2712 495 6 0 -5.984107 19.675136 -16.959798 +2713 495 4 0 -5.160819 19.281994 -17.190879 +2714 495 4 0 -5.770973 20.610003 -16.990477 +2715 496 6 0 26.042716 7.197405 -0.343564 +2716 496 4 0 26.688586 6.461363 -0.227844 +2717 496 4 0 25.557638 7.239657 0.456505 +2718 497 6 0 22.024763 3.604615 -12.891547 +2719 497 4 0 21.193970 3.808969 -13.364435 +2720 497 4 0 22.195897 4.401136 -12.384999 +2721 498 6 0 -27.135160 -9.370585 20.643959 +2722 498 4 0 -28.030228 -9.176750 20.474699 +2723 498 4 0 -26.577987 -8.800343 20.128692 +2724 499 6 0 8.395602 -17.119113 3.456766 +2725 499 4 0 8.859834 -17.667269 2.833722 +2726 499 4 0 7.655636 -17.591648 3.745120 +2727 500 6 0 -24.404359 -0.181200 15.657271 +2728 500 4 0 -25.038728 0.161741 16.314921 +2729 500 4 0 -24.896501 -0.279136 14.882179 +2730 501 6 0 -6.891560 5.632315 -20.701537 +2731 501 4 0 -7.366523 6.287143 -21.223329 +2732 501 4 0 -7.630504 5.050659 -20.462604 +2733 502 6 0 -15.566391 -18.747028 -6.177602 +2734 502 4 0 -15.142312 -18.219593 -5.559758 +2735 502 4 0 -16.127679 -19.358388 -5.691405 +2736 503 6 0 -3.401719 -8.548294 5.789954 +2737 503 4 0 -3.203950 -7.652649 5.894670 +2738 503 4 0 -3.475505 -8.723091 4.829013 +2739 504 6 0 -14.869473 17.641299 -11.130330 +2740 504 4 0 -15.356466 18.395479 -10.824746 +2741 504 4 0 -14.164630 17.932079 -11.714816 +2742 505 6 0 -8.566470 9.810858 18.580750 +2743 505 4 0 -7.826026 10.409943 18.459685 +2744 505 4 0 -8.595914 9.242196 17.832030 +2745 506 6 0 15.884351 -0.825682 -9.976397 +2746 506 4 0 16.580456 -1.202192 -10.550817 +2747 506 4 0 16.179129 0.090931 -10.023947 +2748 507 6 0 -6.440363 -16.182406 14.932475 +2749 507 4 0 -5.547886 -16.002472 14.729390 +2750 507 4 0 -6.819275 -16.083044 14.039020 +2751 508 6 0 -15.767451 -12.920838 -5.752541 +2752 508 4 0 -14.944068 -12.805684 -5.287481 +2753 508 4 0 -15.473066 -13.122281 -6.647708 +2754 509 6 0 -17.665031 -20.836176 14.939409 +2755 509 4 0 -16.990389 -21.130134 14.286529 +2756 509 4 0 -18.400170 -20.675073 14.279982 +2757 510 6 0 -22.492854 -19.049287 15.743348 +2758 510 4 0 -23.226808 -19.456562 15.249983 +2759 510 4 0 -22.430818 -19.617870 16.566271 +2760 511 6 0 18.577331 8.130140 -4.339187 +2761 511 4 0 19.102086 8.936870 -4.101075 +2762 511 4 0 17.943090 8.097223 -3.622023 +2763 512 6 0 -8.059195 -11.528283 11.014399 +2764 512 4 0 -8.491272 -11.206486 10.183267 +2765 512 4 0 -7.559001 -12.278215 10.621240 +2766 513 6 0 -0.354476 13.050972 -11.242317 +2767 513 4 0 -0.049943 12.197330 -10.889757 +2768 513 4 0 -0.319360 13.679003 -10.509947 +2769 514 6 0 -22.692724 -6.768839 -13.959385 +2770 514 4 0 -22.638060 -6.234744 -13.112330 +2771 514 4 0 -22.909077 -7.637803 -13.626522 +2772 515 6 0 4.453531 -16.513982 -10.118567 +2773 515 4 0 5.009279 -17.005000 -9.492769 +2774 515 4 0 4.837806 -15.680507 -10.286610 +2775 516 6 0 -14.211895 -3.759096 -20.057898 +2776 516 4 0 -14.318355 -2.866044 -19.740155 +2777 516 4 0 -13.541901 -3.847665 -20.736218 +2778 517 6 0 26.693079 9.858450 -14.505848 +2779 517 4 0 26.995219 9.161898 -15.033866 +2780 517 4 0 25.767285 9.604872 -14.294807 +2781 518 6 0 -1.593304 -2.461499 11.764930 +2782 518 4 0 -0.575245 -2.524541 11.545614 +2783 518 4 0 -1.885036 -1.661756 11.286623 +2784 519 6 0 -19.660824 -20.494500 2.235869 +2785 519 4 0 -20.078029 -21.333649 2.487444 +2786 519 4 0 -19.181632 -20.681107 1.379436 +2787 520 6 0 4.144088 17.144901 -7.996934 +2788 520 4 0 4.141310 16.441147 -7.303669 +2789 520 4 0 3.204041 17.192031 -8.237159 +2790 521 6 0 24.148563 16.188551 14.675204 +2791 521 4 0 24.234269 17.058984 15.034647 +2792 521 4 0 23.773522 16.320292 13.788777 +2793 522 6 0 -11.859704 2.830217 -15.811214 +2794 522 4 0 -12.674780 3.212291 -15.481544 +2795 522 4 0 -11.777095 3.234540 -16.701788 +2796 523 6 0 -14.309989 12.182667 1.560506 +2797 523 4 0 -13.393237 12.215837 1.842065 +2798 523 4 0 -14.715876 12.517376 2.368763 +2799 524 6 0 -7.611903 8.096548 -15.149217 +2800 524 4 0 -8.323994 7.679983 -15.518143 +2801 524 4 0 -6.945506 8.015221 -15.887869 +2802 525 6 0 -19.095296 -11.187670 -3.400222 +2803 525 4 0 -19.337682 -11.939672 -2.902754 +2804 525 4 0 -18.131286 -10.890144 -3.347747 +2805 526 6 0 -3.684618 -18.692360 -9.413075 +2806 526 4 0 -3.418979 -17.929749 -9.940845 +2807 526 4 0 -2.916246 -19.202389 -9.257694 +2808 527 6 0 -24.383366 4.449647 -2.247488 +2809 527 4 0 -24.017217 3.645809 -1.897604 +2810 527 4 0 -24.220917 5.021187 -1.511294 +2811 528 6 0 -19.731647 -12.211221 2.860739 +2812 528 4 0 -19.245645 -12.129462 2.005512 +2813 528 4 0 -20.512036 -12.824760 2.628969 +2814 529 6 0 -4.683560 -15.770086 9.389938 +2815 529 4 0 -5.061246 -15.024625 8.860317 +2816 529 4 0 -5.320477 -16.506457 9.373591 +2817 530 6 0 -4.887399 -5.093738 -15.497549 +2818 530 4 0 -5.401164 -5.893295 -15.248311 +2819 530 4 0 -4.758120 -4.537262 -14.717756 +2820 531 6 0 -14.685481 -17.958902 -3.365836 +2821 531 4 0 -14.177516 -17.147605 -3.110889 +2822 531 4 0 -15.533211 -17.687906 -3.096067 +2823 532 6 0 24.950357 10.761179 -11.253927 +2824 532 4 0 25.623382 10.724523 -10.501653 +2825 532 4 0 24.912589 11.668740 -11.614144 +2826 533 6 0 5.896274 1.022377 5.410141 +2827 533 4 0 5.144364 0.409378 5.470882 +2828 533 4 0 6.702894 0.529043 5.601445 +2829 534 6 0 -10.707964 -12.538200 -15.636360 +2830 534 4 0 -11.433886 -12.205371 -16.086670 +2831 534 4 0 -10.099661 -13.047707 -16.220825 +2832 535 6 0 25.311857 10.178415 6.672916 +2833 535 4 0 25.652073 11.053667 6.645762 +2834 535 4 0 25.462543 9.793786 5.796182 +2835 536 6 0 13.351375 -13.843752 2.567223 +2836 536 4 0 12.454525 -14.099339 2.561046 +2837 536 4 0 13.804123 -14.196570 1.793439 +2838 537 6 0 6.447086 -1.674870 18.025371 +2839 537 4 0 6.966001 -2.437397 17.753314 +2840 537 4 0 5.596824 -1.849843 17.645605 +2841 538 6 0 -7.195562 13.506129 2.012549 +2842 538 4 0 -6.788362 12.635839 2.194379 +2843 538 4 0 -6.577836 13.973475 1.500153 +2844 539 6 0 13.594384 20.297397 2.445796 +2845 539 4 0 13.788282 19.607477 3.108308 +2846 539 4 0 13.006415 19.871282 1.852966 +2847 540 6 0 15.233611 0.850818 -5.243920 +2848 540 4 0 15.311708 1.467460 -4.483590 +2849 540 4 0 15.351381 1.519810 -6.000951 +2850 541 6 0 -21.392858 -6.660913 15.084747 +2851 541 4 0 -21.093136 -6.580317 16.005763 +2852 541 4 0 -20.482050 -6.866879 14.680665 +2853 542 6 0 21.798067 9.236981 0.429299 +2854 542 4 0 22.425954 9.071754 -0.267587 +2855 542 4 0 21.188410 9.810447 0.032847 +2856 543 6 0 -16.844679 -14.439050 3.033305 +2857 543 4 0 -17.236824 -14.606294 2.191567 +2858 543 4 0 -17.149528 -13.681189 3.446869 +2859 544 6 0 -16.118636 -14.695009 11.770906 +2860 544 4 0 -16.061462 -15.566570 12.219315 +2861 544 4 0 -15.401385 -14.815928 11.092232 +2862 545 6 0 -25.116635 -0.336266 -13.211265 +2863 545 4 0 -26.034773 -0.593788 -13.205266 +2864 545 4 0 -25.075870 0.263017 -13.996810 +2865 546 6 0 -20.959975 8.707771 -3.841257 +2866 546 4 0 -20.129335 8.189240 -3.711541 +2867 546 4 0 -21.648123 8.152127 -4.150679 +2868 547 6 0 -16.180937 -14.560529 -11.236167 +2869 547 4 0 -16.474551 -15.471407 -11.472150 +2870 547 4 0 -16.621414 -14.329172 -10.425074 +2871 548 6 0 -13.342695 17.268978 -5.546108 +2872 548 4 0 -13.676329 17.161979 -6.427016 +2873 548 4 0 -13.273106 16.392331 -5.194906 +2874 549 6 0 -24.265742 -14.933019 -6.702562 +2875 549 4 0 -23.594698 -14.475474 -7.192272 +2876 549 4 0 -24.769412 -14.353533 -6.144027 +2877 550 6 0 -7.448634 4.091980 -14.623254 +2878 550 4 0 -8.354031 4.372416 -14.477512 +2879 550 4 0 -7.429422 3.997857 -15.560262 +2880 551 6 0 20.945964 8.392028 7.273218 +2881 551 4 0 20.936526 8.748124 8.157739 +2882 551 4 0 21.409383 8.938927 6.671909 +2883 552 6 0 -18.135613 13.691026 0.855516 +2884 552 4 0 -17.605509 13.473951 1.604996 +2885 552 4 0 -17.989769 12.903203 0.328977 +2886 553 6 0 -26.399609 20.299424 -15.455568 +2887 553 4 0 -26.506532 19.402038 -15.778173 +2888 553 4 0 -27.208559 20.540561 -15.036657 +2889 554 6 0 -3.382080 16.857093 -8.397864 +2890 554 4 0 -3.374084 16.083688 -7.808965 +2891 554 4 0 -4.084724 16.687463 -9.043127 +2892 555 6 0 16.271526 -9.902746 -4.216439 +2893 555 4 0 16.409251 -10.505040 -3.454487 +2894 555 4 0 15.497720 -10.304168 -4.762308 +2895 556 6 0 14.340659 -16.032990 13.215463 +2896 556 4 0 13.501340 -15.882091 13.690140 +2897 556 4 0 14.455052 -15.349188 12.509336 +2898 557 6 0 -0.015146 -13.033200 3.303743 +2899 557 4 0 -0.181704 -13.007242 2.346702 +2900 557 4 0 0.267440 -13.997638 3.485458 +2901 558 6 0 17.219995 5.155984 2.579305 +2902 558 4 0 17.867362 4.521907 2.914585 +2903 558 4 0 17.421034 5.907098 3.091911 +2904 559 6 0 -4.290476 -8.859344 10.315396 +2905 559 4 0 -4.367776 -8.058305 9.793864 +2906 559 4 0 -4.232508 -9.643259 9.792086 +2907 560 6 0 -26.107401 19.840481 -9.535848 +2908 560 4 0 -25.152722 20.076292 -9.710007 +2909 560 4 0 -26.580648 20.657816 -9.784705 +2910 561 6 0 22.430740 12.824805 -18.610921 +2911 561 4 0 22.555563 12.342166 -17.752607 +2912 561 4 0 21.710766 13.488004 -18.415345 +2913 562 6 0 -0.213702 15.539427 8.868930 +2914 562 4 0 0.465115 15.308974 9.514310 +2915 562 4 0 -0.991140 15.165260 9.301737 +2916 563 6 0 10.451773 19.296672 -15.739638 +2917 563 4 0 11.250242 18.716315 -15.675225 +2918 563 4 0 10.166040 19.254066 -16.609341 +2919 564 6 0 -16.340404 20.299845 -6.677501 +2920 564 4 0 -15.394517 20.367214 -6.949699 +2921 564 4 0 -16.411819 19.609339 -6.000069 +2922 565 6 0 17.490554 18.048717 15.249869 +2923 565 4 0 17.383710 17.561453 14.453086 +2924 565 4 0 17.231849 18.986361 14.979711 +2925 566 6 0 -25.356900 0.960567 -15.630378 +2926 566 4 0 -25.668408 1.746466 -16.112686 +2927 566 4 0 -25.749312 0.266373 -16.283472 +2928 567 6 0 -24.523491 12.684913 -13.612913 +2929 567 4 0 -25.162839 13.082234 -14.200312 +2930 567 4 0 -24.857615 11.766450 -13.558078 +2931 568 6 0 -18.320478 -19.787535 -8.552256 +2932 568 4 0 -17.456232 -20.243682 -8.416866 +2933 568 4 0 -18.816764 -20.212417 -7.902570 +2934 569 6 0 -20.122796 -19.443402 14.311268 +2935 569 4 0 -20.955070 -19.458490 14.740741 +2936 569 4 0 -20.448309 -19.736012 13.412761 +2937 570 6 0 15.526182 9.609189 7.445275 +2938 570 4 0 16.546971 9.522464 7.260687 +2939 570 4 0 15.127662 8.717624 7.262881 +2940 571 6 0 21.815800 -13.876078 19.805359 +2941 571 4 0 21.861374 -13.448639 20.652235 +2942 571 4 0 20.873448 -13.977249 19.618277 +2943 572 6 0 -20.455209 -17.485281 2.435687 +2944 572 4 0 -20.514677 -18.504590 2.320539 +2945 572 4 0 -19.650253 -17.416617 3.035233 +2946 573 6 0 12.598962 20.934840 -8.411100 +2947 573 4 0 11.759105 20.691141 -7.924616 +2948 573 4 0 12.471156 20.908914 -9.376870 +2949 574 6 0 -9.216318 -10.756192 8.704342 +2950 574 4 0 -9.035829 -9.823066 8.964150 +2951 574 4 0 -10.158700 -10.965843 8.822969 +2952 575 6 0 15.481710 -19.357119 -11.731342 +2953 575 4 0 16.266851 -18.921549 -11.423511 +2954 575 4 0 15.782813 -20.280095 -11.705706 +2955 576 6 0 -15.247931 17.174276 -3.500551 +2956 576 4 0 -15.486872 16.716297 -4.319984 +2957 576 4 0 -14.488844 17.725770 -3.787040 +2958 577 6 0 13.994416 -17.236082 0.675362 +2959 577 4 0 14.353425 -17.278489 1.570062 +2960 577 4 0 14.236303 -16.341554 0.403337 +2961 578 6 0 -23.467726 19.561551 3.571514 +2962 578 4 0 -24.004822 19.287615 4.359125 +2963 578 4 0 -22.609407 19.390622 3.887076 +2964 579 6 0 -18.884839 -16.840019 19.441419 +2965 579 4 0 -17.972164 -16.942648 19.429089 +2966 579 4 0 -19.117567 -17.305223 18.656489 +2967 580 6 0 -3.304416 17.688255 14.806768 +2968 580 4 0 -3.274068 18.569163 15.273992 +2969 580 4 0 -3.909468 17.884508 14.115697 +2970 581 6 0 -17.284600 -14.419545 -3.713924 +2971 581 4 0 -17.245841 -15.056389 -4.407408 +2972 581 4 0 -16.814676 -13.644893 -4.121390 +2973 582 6 0 -20.198946 13.854179 -11.126603 +2974 582 4 0 -19.842134 14.641594 -10.704689 +2975 582 4 0 -20.994231 13.579588 -10.762730 +2976 583 6 0 19.633175 -4.534579 -1.940156 +2977 583 4 0 20.573656 -4.404910 -1.787896 +2978 583 4 0 19.476036 -5.006335 -2.786939 +2979 584 6 0 -14.050747 -7.840313 -20.451392 +2980 584 4 0 -13.804502 -7.885621 -19.536069 +2981 584 4 0 -14.163116 -8.770871 -20.729134 +2982 585 6 0 -22.035810 -14.696947 -15.342419 +2983 585 4 0 -21.244458 -14.172213 -14.968853 +2984 585 4 0 -21.709618 -15.071176 -16.129917 +2985 586 6 0 24.404519 18.662499 15.604580 +2986 586 4 0 23.649634 19.231742 15.720672 +2987 586 4 0 24.564861 18.257635 16.462026 +2988 587 6 0 -25.023703 1.632995 9.069342 +2989 587 4 0 -24.924833 0.728361 9.205894 +2990 587 4 0 -25.848027 1.691778 8.537435 +2991 588 6 0 -23.501597 20.098664 7.878789 +2992 588 4 0 -23.060988 19.669189 7.073786 +2993 588 4 0 -24.179799 19.453525 8.025704 +2994 589 6 0 -19.949605 3.791557 -8.640569 +2995 589 4 0 -20.735484 4.236110 -9.006112 +2996 589 4 0 -20.021037 3.910265 -7.668204 +2997 590 6 0 -11.039604 7.965462 12.985718 +2998 590 4 0 -11.657528 7.295810 13.344834 +2999 590 4 0 -11.533657 8.735729 12.733347 +3000 591 6 0 -10.874373 -9.234080 16.940331 +3001 591 4 0 -10.287226 -8.454268 16.808084 +3002 591 4 0 -10.829657 -9.367499 17.890097 +3003 592 6 0 -14.385649 -14.739019 19.039927 +3004 592 4 0 -15.014366 -15.430322 18.739868 +3005 592 4 0 -13.950162 -14.385374 18.202705 +3006 593 6 0 -8.943007 -18.707640 -12.863046 +3007 593 4 0 -8.324251 -18.030317 -12.441569 +3008 593 4 0 -8.503951 -19.555164 -12.986191 +3009 594 6 0 -12.368468 -11.299670 18.862003 +3010 594 4 0 -11.462838 -11.162374 19.089512 +3011 594 4 0 -12.285975 -11.967140 18.162474 +3012 595 6 0 -18.864908 10.893225 -18.642183 +3013 595 4 0 -19.737729 11.286548 -18.797146 +3014 595 4 0 -18.291730 11.691326 -18.413733 +3015 596 6 0 13.738555 -10.387697 15.727067 +3016 596 4 0 14.677946 -10.190824 15.738680 +3017 596 4 0 13.381035 -9.878174 14.979047 +3018 597 6 0 -21.819721 -0.482540 -14.130337 +3019 597 4 0 -22.018580 0.101499 -14.814948 +3020 597 4 0 -21.732054 0.043937 -13.284517 +3021 598 6 0 -22.088145 -19.005770 -10.424446 +3022 598 4 0 -22.700458 -18.735873 -11.127116 +3023 598 4 0 -22.265806 -18.243802 -9.851663 +3024 599 6 0 -27.334131 16.862943 6.388414 +3025 599 4 0 -27.128884 17.208336 5.542208 +3026 599 4 0 -28.186942 16.459356 6.245911 +3027 600 6 0 -7.724914 11.617317 -15.852447 +3028 600 4 0 -7.898781 11.683763 -14.888607 +3029 600 4 0 -7.243883 12.459704 -15.934395 +3030 601 6 0 -27.430510 7.062419 7.641894 +3031 601 4 0 -28.241619 7.496835 7.830929 +3032 601 4 0 -26.905937 6.864821 8.456222 +3033 602 6 0 -15.189130 9.068233 11.973047 +3034 602 4 0 -15.507439 9.270556 11.066477 +3035 602 4 0 -16.000569 9.109399 12.508881 +3036 603 6 0 18.197719 -8.444367 -5.807006 +3037 603 4 0 17.669265 -7.953475 -6.477556 +3038 603 4 0 17.491033 -8.840952 -5.199557 +3039 604 6 0 -17.798267 -15.359279 0.720984 +3040 604 4 0 -17.605358 -16.253295 0.449070 +3041 604 4 0 -18.769315 -15.298569 0.739208 +3042 605 6 0 -10.801299 19.625083 -5.021468 +3043 605 4 0 -9.963843 19.123292 -5.234694 +3044 605 4 0 -10.501894 20.547773 -4.927487 +3045 606 6 0 -27.215648 6.353394 -6.216686 +3046 606 4 0 -27.824477 6.975672 -6.597897 +3047 606 4 0 -27.715217 5.539077 -6.142494 +3048 607 6 0 -20.222710 16.482564 20.889728 +3049 607 4 0 -19.409945 15.875063 20.936404 +3050 607 4 0 -20.827135 16.165289 21.596363 +3051 608 6 0 -15.955148 20.970093 -1.473146 +3052 608 4 0 -16.254513 20.076270 -1.042106 +3053 608 4 0 -15.662348 21.552087 -0.814219 +3054 609 6 0 10.807526 -13.982475 1.662510 +3055 609 4 0 10.120672 -14.259351 2.204544 +3056 609 4 0 10.863967 -13.021251 1.772688 +3057 610 6 0 -7.966458 -18.779639 13.245673 +3058 610 4 0 -7.309099 -18.332730 12.718011 +3059 610 4 0 -8.719738 -18.984231 12.613154 +3060 611 6 0 -20.403821 -13.506340 10.662924 +3061 611 4 0 -20.510093 -14.184751 11.331921 +3062 611 4 0 -19.449692 -13.488641 10.607253 +3063 612 6 0 3.347403 17.582790 14.279585 +3064 612 4 0 3.542375 16.697267 14.539882 +3065 612 4 0 3.842808 18.157712 14.875497 +3066 613 6 0 -27.268704 11.599332 7.521962 +3067 613 4 0 -27.319935 12.603952 7.610238 +3068 613 4 0 -27.760414 11.222738 8.251319 +3069 614 6 0 -13.558625 -13.571833 9.018373 +3070 614 4 0 -14.134501 -13.113855 9.622383 +3071 614 4 0 -13.282735 -12.952963 8.287428 +3072 615 6 0 -12.904629 4.779698 8.188511 +3073 615 4 0 -12.946789 5.709486 7.819080 +3074 615 4 0 -13.125056 4.225008 7.389046 +3075 616 6 0 -26.521845 8.632500 -1.585840 +3076 616 4 0 -27.252112 8.571224 -0.926514 +3077 616 4 0 -27.101821 8.697912 -2.395641 +3078 617 6 0 0.711352 18.247453 15.282784 +3079 617 4 0 1.603697 18.249814 14.962197 +3080 617 4 0 0.201613 17.732907 14.670147 +3081 618 6 0 7.113451 16.228888 -1.466776 +3082 618 4 0 7.173117 15.305699 -1.111399 +3083 618 4 0 7.220512 16.670305 -0.601189 +3084 619 6 0 -13.904243 8.625524 20.904818 +3085 619 4 0 -14.598235 8.427161 20.276223 +3086 619 4 0 -13.595573 9.537530 20.812383 +3087 620 6 0 -23.282747 7.422865 -4.367991 +3088 620 4 0 -23.494082 7.124036 -5.259399 +3089 620 4 0 -24.056516 7.114406 -3.864243 +3090 621 6 0 -14.263410 11.647626 -16.485013 +3091 621 4 0 -14.250457 12.591263 -16.217484 +3092 621 4 0 -13.447733 11.223560 -16.266518 +3093 622 6 0 -25.123489 -11.752131 6.663069 +3094 622 4 0 -24.434538 -11.175706 6.315833 +3095 622 4 0 -24.632736 -12.584077 6.767142 +3096 623 6 0 -14.146070 -17.326290 5.680123 +3097 623 4 0 -13.644335 -16.487658 5.902302 +3098 623 4 0 -14.878124 -17.344106 6.279009 +3099 624 6 0 -20.598314 9.096753 20.421892 +3100 624 4 0 -21.420000 9.436011 20.788368 +3101 624 4 0 -20.773261 8.800990 19.535216 +3102 625 6 0 18.231067 -8.355182 -15.374644 +3103 625 4 0 19.158997 -8.699272 -15.469475 +3104 625 4 0 18.162062 -7.866000 -14.601450 +3105 626 6 0 -26.082795 17.419257 -15.113528 +3106 626 4 0 -26.663305 16.880075 -15.659385 +3107 626 4 0 -26.614420 17.764627 -14.366811 +3108 627 6 0 -4.564502 -6.365364 18.192018 +3109 627 4 0 -4.423912 -6.577366 17.248668 +3110 627 4 0 -4.413382 -7.162274 18.732886 +3111 628 6 0 2.994631 -20.344673 -10.462592 +3112 628 4 0 3.336979 -19.647973 -11.071544 +3113 628 4 0 2.839013 -21.162093 -11.031196 +3114 629 6 0 -18.808948 18.745667 8.606647 +3115 629 4 0 -18.793078 17.928925 9.047490 +3116 629 4 0 -19.375318 18.782786 7.854831 +3117 630 6 0 20.293384 6.483656 -8.185168 +3118 630 4 0 19.822775 6.335085 -7.339796 +3119 630 4 0 19.910867 5.733330 -8.676027 +3120 631 6 0 14.001637 -11.377427 6.654390 +3121 631 4 0 14.665802 -10.891103 7.186571 +3122 631 4 0 13.155623 -11.243569 7.110824 +3123 632 6 0 -18.716197 16.452296 -6.146582 +3124 632 4 0 -17.737092 16.308167 -6.065641 +3125 632 4 0 -18.803071 17.441704 -6.266673 +3126 633 6 0 -9.164502 -4.245435 9.687071 +3127 633 4 0 -9.504754 -3.618059 10.271725 +3128 633 4 0 -8.758976 -4.901714 10.277390 +3129 634 6 0 -7.567104 17.996846 -14.273209 +3130 634 4 0 -7.423981 17.432000 -15.103459 +3131 634 4 0 -7.626914 17.354562 -13.501068 +3132 635 6 0 25.957404 18.297560 0.964228 +3133 635 4 0 26.373386 18.902213 1.607245 +3134 635 4 0 24.996135 18.298154 0.948557 +3135 636 6 0 27.365655 -19.507447 4.283366 +3136 636 4 0 27.265808 -18.590346 4.470644 +3137 636 4 0 27.346229 -19.502059 3.318095 +3138 637 6 0 3.399017 3.842973 -14.306661 +3139 637 4 0 3.874219 4.645706 -14.438487 +3140 637 4 0 3.960550 3.060792 -14.302404 +3141 638 6 0 -9.633558 -14.252688 -13.074954 +3142 638 4 0 -10.397961 -14.800052 -13.280458 +3143 638 4 0 -9.599658 -13.580050 -13.748986 +3144 639 6 0 -26.597184 -9.526044 16.214934 +3145 639 4 0 -25.761551 -9.704064 15.705422 +3146 639 4 0 -26.282395 -9.291353 17.107825 +3147 640 6 0 9.904852 -8.080714 13.028578 +3148 640 4 0 9.633649 -8.672937 13.775436 +3149 640 4 0 9.328640 -8.216914 12.289674 +3150 641 6 0 -16.656465 -15.275719 14.920535 +3151 641 4 0 -16.332015 -16.176602 15.149012 +3152 641 4 0 -17.604168 -15.312599 15.097227 +3153 642 6 0 -23.632856 16.383578 4.244499 +3154 642 4 0 -24.439865 15.907903 4.567947 +3155 642 4 0 -23.758905 16.459340 3.297146 +3156 643 6 0 6.174822 3.396366 6.558333 +3157 643 4 0 6.411031 3.086511 7.491490 +3158 643 4 0 5.914298 2.639627 6.072475 +3159 644 6 0 -12.394642 12.999960 5.615295 +3160 644 4 0 -12.767249 13.829992 5.894454 +3161 644 4 0 -11.542368 12.942527 6.067628 +3162 645 6 0 -13.943061 -10.506777 -8.106784 +3163 645 4 0 -14.282580 -10.512566 -7.188555 +3164 645 4 0 -13.832495 -9.541181 -8.393822 +3165 646 6 0 -2.132377 12.062639 -15.645930 +3166 646 4 0 -2.521581 12.726985 -15.116060 +3167 646 4 0 -2.383415 12.256835 -16.605675 +3168 647 6 0 -15.781380 4.295423 -12.837615 +3169 647 4 0 -16.545564 4.857521 -12.623883 +3170 647 4 0 -14.991403 4.649584 -12.386947 +3171 648 6 0 3.657686 -14.899636 11.284985 +3172 648 4 0 4.599918 -15.027083 11.351362 +3173 648 4 0 3.451904 -14.114684 10.742312 +3174 649 6 0 -13.445931 -12.269834 -16.644595 +3175 649 4 0 -13.143553 -12.206221 -17.543310 +3176 649 4 0 -14.277341 -11.802665 -16.570144 +3177 650 6 0 -4.514598 -14.412565 -11.239008 +3178 650 4 0 -4.912249 -14.782052 -10.430067 +3179 650 4 0 -5.207582 -13.911802 -11.682506 +3180 651 6 0 -22.202449 -8.277754 -0.156304 +3181 651 4 0 -21.822932 -9.154115 -0.107154 +3182 651 4 0 -22.081748 -7.881016 0.675063 +3183 652 6 0 5.980605 9.643233 7.937147 +3184 652 4 0 5.778293 9.935793 8.831204 +3185 652 4 0 6.322796 10.408255 7.426496 +3186 653 6 0 -2.201607 -16.515113 -14.210032 +3187 653 4 0 -2.059974 -15.558981 -14.035317 +3188 653 4 0 -1.990188 -17.058199 -13.410631 +3189 654 6 0 18.679591 -18.705711 14.460946 +3190 654 4 0 18.696979 -17.793354 14.872009 +3191 654 4 0 19.598133 -18.732862 14.241557 +3192 655 6 0 -23.704300 9.078870 13.078638 +3193 655 4 0 -23.670653 8.205186 13.541582 +3194 655 4 0 -24.192847 9.646015 13.627775 +3195 656 6 0 -2.173657 16.833015 -11.939576 +3196 656 4 0 -1.811491 16.347920 -12.704849 +3197 656 4 0 -1.445451 17.452841 -11.775832 +3198 657 6 0 13.483501 -11.256705 11.913651 +3199 657 4 0 12.870120 -10.662512 12.431360 +3200 657 4 0 14.331458 -10.851122 11.936251 +3201 658 6 0 24.414471 -17.245267 11.179269 +3202 658 4 0 25.211262 -16.789228 11.385933 +3203 658 4 0 24.640242 -18.219159 11.091473 +3204 659 6 0 11.120331 -15.111988 5.927148 +3205 659 4 0 11.451561 -14.918986 6.814295 +3206 659 4 0 11.019394 -14.187742 5.582882 +3207 660 6 0 12.007104 -9.600387 4.572911 +3208 660 4 0 11.779325 -9.981896 3.630934 +3209 660 4 0 12.299473 -8.663707 4.379041 +3210 661 6 0 6.432204 5.492806 -11.438378 +3211 661 4 0 6.858563 6.325600 -11.691904 +3212 661 4 0 5.497288 5.536187 -11.496269 +3213 662 6 0 -16.803408 -2.309975 -12.525084 +3214 662 4 0 -17.553689 -1.730249 -12.823644 +3215 662 4 0 -17.150179 -3.188627 -12.867169 +3216 663 6 0 -2.408853 19.363640 5.416041 +3217 663 4 0 -2.506588 20.324223 5.172630 +3218 663 4 0 -1.499205 19.245311 4.997471 +3219 664 6 0 18.335645 9.820504 -20.835302 +3220 664 4 0 17.802051 9.406337 -21.556671 +3221 664 4 0 19.054571 10.173338 -21.326492 +3222 665 6 0 14.492400 -0.793925 15.043220 +3223 665 4 0 15.273199 -0.763837 15.602226 +3224 665 4 0 13.903082 -0.202173 15.510237 +3225 666 6 0 -18.990417 -18.003103 -15.160778 +3226 666 4 0 -19.065422 -18.467887 -14.363137 +3227 666 4 0 -18.682751 -18.771930 -15.707456 +3228 667 6 0 -19.355981 10.428580 -15.655699 +3229 667 4 0 -18.958237 10.419569 -16.503824 +3230 667 4 0 -19.555621 9.469325 -15.477396 +3231 668 6 0 -9.689572 -17.625802 20.274891 +3232 668 4 0 -9.638458 -16.856491 19.680753 +3233 668 4 0 -10.446575 -18.157818 20.089513 +3234 669 6 0 15.818186 -2.858530 -17.669337 +3235 669 4 0 15.374117 -2.032149 -17.355590 +3236 669 4 0 16.772354 -2.603400 -17.785321 +3237 670 6 0 4.606592 -16.002710 16.812249 +3238 670 4 0 5.315620 -15.500456 17.249944 +3239 670 4 0 3.799748 -15.479801 16.918622 +3240 671 6 0 -21.513339 9.988705 -9.339870 +3241 671 4 0 -20.667999 10.159257 -9.025723 +3242 671 4 0 -21.969690 9.708425 -8.552482 +3243 672 6 0 22.932065 -4.395951 1.502838 +3244 672 4 0 23.014854 -3.682098 2.132967 +3245 672 4 0 22.755233 -5.203260 2.068576 +3246 673 6 0 -15.865161 20.547416 -16.433392 +3247 673 4 0 -15.771392 21.394273 -16.845693 +3248 673 4 0 -15.137003 20.501933 -15.748936 +3249 674 6 0 25.069907 -16.838970 -4.299599 +3250 674 4 0 25.999382 -16.506367 -4.277797 +3251 674 4 0 24.882196 -17.073394 -3.399165 +3252 675 6 0 12.210843 -6.139817 11.421079 +3253 675 4 0 11.494183 -5.792293 10.826764 +3254 675 4 0 12.753399 -6.598677 10.772296 +3255 676 6 0 -12.958185 15.721214 20.131937 +3256 676 4 0 -12.417015 15.448234 19.335440 +3257 676 4 0 -12.670185 16.622230 20.361377 +3258 677 6 0 -1.787017 -16.482436 -2.383044 +3259 677 4 0 -1.225925 -16.053148 -3.012278 +3260 677 4 0 -2.501380 -15.880251 -2.214679 +3261 678 6 0 -1.190078 -20.139554 1.294226 +3262 678 4 0 -0.299194 -20.371113 0.969279 +3263 678 4 0 -1.688402 -19.692251 0.619486 +3264 679 6 0 1.937567 -19.455705 20.174807 +3265 679 4 0 1.600890 -18.656647 20.650502 +3266 679 4 0 2.270116 -20.076098 20.862273 +3267 680 6 0 -13.809787 16.178967 11.484043 +3268 680 4 0 -14.142545 15.377181 11.850775 +3269 680 4 0 -14.373329 16.882494 11.935295 +3270 681 6 0 17.196672 -3.298677 9.603341 +3271 681 4 0 17.785156 -3.273949 10.352111 +3272 681 4 0 16.328249 -3.307055 9.989818 +3273 682 6 0 -21.793083 12.953802 -3.361588 +3274 682 4 0 -21.341354 13.824014 -3.442583 +3275 682 4 0 -21.956486 12.886091 -2.420332 +3276 683 6 0 24.722833 -20.214271 -1.932412 +3277 683 4 0 24.583170 -20.295689 -2.905459 +3278 683 4 0 25.266330 -20.988208 -1.659517 +3279 684 6 0 13.576953 15.549687 -14.568922 +3280 684 4 0 13.196035 16.082140 -13.845167 +3281 684 4 0 12.903095 14.935032 -14.704323 +3282 685 6 0 24.686323 18.724782 9.264820 +3283 685 4 0 25.356258 19.231143 8.760904 +3284 685 4 0 24.376076 19.091122 10.133820 +3285 686 6 0 10.974277 8.210457 0.042398 +3286 686 4 0 10.346946 8.747962 0.639501 +3287 686 4 0 11.775308 8.082914 0.592641 +3288 687 6 0 15.749941 -9.949096 -10.535727 +3289 687 4 0 14.881677 -9.994266 -10.933909 +3290 687 4 0 16.082746 -9.069742 -10.712222 +3291 688 6 0 20.372551 -2.740524 -20.295283 +3292 688 4 0 19.972569 -3.556917 -19.910575 +3293 688 4 0 21.117159 -2.669954 -19.650483 +3294 689 6 0 -16.130593 19.525141 7.609103 +3295 689 4 0 -16.988329 19.095523 7.574165 +3296 689 4 0 -15.815635 19.368486 8.484111 +3297 690 6 0 -13.620470 -12.179873 -20.763485 +3298 690 4 0 -13.206848 -12.281384 -21.584939 +3299 690 4 0 -13.003543 -11.952064 -20.092320 +3300 691 6 0 -4.286145 -8.076676 -19.850653 +3301 691 4 0 -4.024629 -8.962570 -19.497729 +3302 691 4 0 -4.628013 -8.265378 -20.732144 +3303 692 6 0 18.167149 11.171401 14.365772 +3304 692 4 0 18.072419 11.267858 15.337991 +3305 692 4 0 19.114984 11.092302 14.227006 +3306 693 6 0 -6.484207 14.268929 15.251307 +3307 693 4 0 -5.622289 14.569256 15.414810 +3308 693 4 0 -6.409671 13.589284 14.542615 +3309 694 6 0 -22.009910 15.740037 8.254841 +3310 694 4 0 -21.174881 15.566577 7.788279 +3311 694 4 0 -21.784303 15.725302 9.211467 +3312 695 6 0 -12.075884 4.855934 18.759604 +3313 695 4 0 -11.922580 5.826978 18.890965 +3314 695 4 0 -11.210639 4.506344 19.097368 +3315 696 6 0 10.488011 -18.196911 -8.466384 +3316 696 4 0 10.637969 -17.211540 -8.520849 +3317 696 4 0 11.163762 -18.500106 -9.085738 +3318 697 6 0 1.125820 20.066151 11.277514 +3319 697 4 0 0.488344 19.358887 11.406985 +3320 697 4 0 1.175707 20.424035 12.220043 +3321 698 6 0 1.508244 -2.375369 14.307932 +3322 698 4 0 0.868346 -1.761280 14.698396 +3323 698 4 0 1.257101 -3.281035 14.657092 +3324 699 6 0 8.333201 -20.303098 14.135689 +3325 699 4 0 8.173342 -20.812430 14.996202 +3326 699 4 0 7.563231 -20.469348 13.580696 +3327 700 6 0 7.161769 13.324939 -3.684466 +3328 700 4 0 6.692561 13.032914 -4.505707 +3329 700 4 0 7.435294 14.252208 -3.751921 +3330 701 6 0 -8.368806 1.641675 18.686706 +3331 701 4 0 -7.449000 1.561105 18.992044 +3332 701 4 0 -8.829402 1.367359 19.523867 +3333 702 6 0 4.081470 8.393376 14.788004 +3334 702 4 0 3.416356 8.289314 15.434673 +3335 702 4 0 3.901559 7.693490 14.181822 +3336 703 6 0 -7.418847 -5.372814 17.842250 +3337 703 4 0 -7.820918 -6.206339 17.693835 +3338 703 4 0 -6.460103 -5.466581 17.841167 +3339 704 6 0 -6.272338 -9.280731 3.614771 +3340 704 4 0 -5.671659 -9.851333 3.097194 +3341 704 4 0 -6.583386 -9.880058 4.252855 +3342 705 6 0 26.867212 -7.498721 15.184014 +3343 705 4 0 27.180613 -8.176302 15.786609 +3344 705 4 0 27.338168 -7.770453 14.373438 +3345 706 6 0 9.996033 -14.570233 13.333736 +3346 706 4 0 9.969634 -13.724445 12.959529 +3347 706 4 0 9.789000 -15.194125 12.559782 +3348 707 6 0 2.391061 -15.016416 -4.564378 +3349 707 4 0 2.249440 -15.150315 -3.614545 +3350 707 4 0 3.332088 -14.950210 -4.710721 +3351 708 6 0 -21.651564 17.273027 -5.114431 +3352 708 4 0 -22.612266 17.402180 -4.967856 +3353 708 4 0 -21.475301 17.110688 -6.035544 +3354 709 6 0 10.670434 18.798919 9.295678 +3355 709 4 0 10.772878 18.810256 8.313948 +3356 709 4 0 10.935580 19.678994 9.619801 +3357 710 6 0 8.580286 -14.501479 3.135425 +3358 710 4 0 8.621343 -14.445805 4.107721 +3359 710 4 0 8.542982 -15.491097 3.062040 +3360 711 6 0 -14.377865 -7.995183 14.343301 +3361 711 4 0 -14.100201 -8.614257 14.993234 +3362 711 4 0 -14.866324 -7.355345 14.871637 +3363 712 6 0 -0.977425 16.774193 13.640180 +3364 712 4 0 -0.958949 17.266593 12.835191 +3365 712 4 0 -1.881684 16.955536 13.931092 +3366 713 6 0 -15.828708 -3.415349 7.406744 +3367 713 4 0 -16.180618 -3.426100 6.520488 +3368 713 4 0 -16.669651 -3.380771 7.995037 +3369 714 6 0 -12.774799 -8.235123 -12.889327 +3370 714 4 0 -12.978669 -7.282136 -13.083792 +3371 714 4 0 -13.615071 -8.678664 -13.235742 +3372 715 6 0 2.845289 0.060180 20.134181 +3373 715 4 0 2.858756 0.453048 19.232311 +3374 715 4 0 1.957136 -0.331348 20.300492 +3375 716 6 0 24.984643 -14.973253 -17.474954 +3376 716 4 0 25.370717 -15.847238 -17.382478 +3377 716 4 0 25.194569 -14.524794 -16.625306 +3378 717 6 0 13.620247 -7.920957 7.008348 +3379 717 4 0 14.470702 -8.278296 6.767655 +3380 717 4 0 13.126236 -7.674429 6.169358 +3381 718 6 0 17.636081 -10.073874 3.386982 +3382 718 4 0 17.376472 -9.849973 2.460148 +3383 718 4 0 17.541385 -10.988029 3.459151 +3384 719 6 0 -23.876026 -12.063687 -5.995846 +3385 719 4 0 -24.585420 -12.252172 -5.420831 +3386 719 4 0 -23.110219 -12.523733 -5.650434 +3387 720 6 0 -23.535607 1.699271 1.932031 +3388 720 4 0 -24.143027 1.031548 1.814474 +3389 720 4 0 -23.866587 2.338510 2.606284 +3390 721 6 0 13.720565 9.351789 12.307976 +3391 721 4 0 13.899370 10.225405 12.040604 +3392 721 4 0 13.192298 9.477241 13.121209 +3393 722 6 0 15.291476 15.170550 12.140656 +3394 722 4 0 14.287956 15.135496 12.069067 +3395 722 4 0 15.572140 14.570493 11.432982 +3396 723 6 0 -10.060226 -11.465180 13.094454 +3397 723 4 0 -9.757397 -11.240849 13.961157 +3398 723 4 0 -9.428065 -11.417927 12.436211 +3399 724 6 0 -19.840622 -4.281655 -17.053557 +3400 724 4 0 -20.444679 -3.559033 -16.740868 +3401 724 4 0 -20.093102 -5.062268 -16.449961 +3402 725 6 0 -11.088232 19.299933 12.989268 +3403 725 4 0 -11.278861 18.327556 12.943710 +3404 725 4 0 -10.555994 19.370336 13.806383 +3405 726 6 0 14.192836 -14.527612 16.897429 +3406 726 4 0 13.394071 -15.012895 17.049022 +3407 726 4 0 14.074952 -14.064189 16.039244 +3408 727 6 0 5.078670 -4.434084 15.727807 +3409 727 4 0 5.834022 -4.419315 16.349614 +3410 727 4 0 5.405954 -4.558925 14.872493 +3411 728 6 0 -19.510762 -4.936357 -8.682052 +3412 728 4 0 -18.583830 -4.871299 -8.739257 +3413 728 4 0 -19.725350 -4.373920 -7.917441 +3414 729 6 0 6.637127 -10.197837 -8.914867 +3415 729 4 0 7.303561 -10.846941 -9.129195 +3416 729 4 0 7.018008 -9.736820 -8.200293 +3417 730 6 0 -23.721355 20.227172 -16.438294 +3418 730 4 0 -24.533045 20.118818 -15.892499 +3419 730 4 0 -24.022901 20.350741 -17.335304 +3420 731 6 0 -0.030599 -15.820284 7.354097 +3421 731 4 0 -0.675125 -15.374015 6.761895 +3422 731 4 0 -0.583629 -16.217933 8.065590 +3423 732 6 0 17.878609 -6.751885 -17.518842 +3424 732 4 0 17.903391 -7.334049 -16.742820 +3425 732 4 0 17.140042 -7.214968 -18.038372 +3426 733 6 0 -5.849569 3.309930 19.753024 +3427 733 4 0 -6.252138 4.072448 20.161965 +3428 733 4 0 -5.149208 3.038493 20.337689 +3429 734 6 0 -24.710885 -6.308647 13.490216 +3430 734 4 0 -25.586238 -6.177846 13.106753 +3431 734 4 0 -24.889314 -6.461576 14.430169 +3432 735 6 0 -11.604329 -16.031249 -0.237137 +3433 735 4 0 -10.966421 -16.304157 -0.881127 +3434 735 4 0 -11.170811 -15.476610 0.378509 +3435 736 6 0 21.103321 -18.752766 6.405335 +3436 736 4 0 21.283349 -17.950114 6.943720 +3437 736 4 0 21.235391 -18.472219 5.506239 +3438 737 6 0 -0.369145 -20.712312 19.095306 +3439 737 4 0 0.355231 -20.367028 19.676247 +3440 737 4 0 -1.186977 -20.260183 19.421119 +3441 738 6 0 13.869578 -2.965624 18.758945 +3442 738 4 0 13.547281 -3.390529 19.570053 +3443 738 4 0 14.278344 -2.158860 19.065428 +3444 739 6 0 -15.806264 2.737988 -2.216704 +3445 739 4 0 -16.485177 2.180539 -1.805532 +3446 739 4 0 -15.814791 2.396599 -3.131246 +3447 740 6 0 -11.766416 -8.088239 8.837485 +3448 740 4 0 -11.812419 -8.926527 9.226533 +3449 740 4 0 -12.558194 -7.583042 9.186828 +3450 741 6 0 23.076788 16.678629 12.104295 +3451 741 4 0 23.468754 16.241536 11.310898 +3452 741 4 0 22.132874 16.713960 11.904816 +3453 742 6 0 -14.202464 -15.765503 -5.593495 +3454 742 4 0 -14.871838 -15.026911 -5.676361 +3455 742 4 0 -13.955401 -15.992753 -6.481500 +3456 743 6 0 15.150303 11.672770 19.298045 +3457 743 4 0 15.470730 12.261881 18.627217 +3458 743 4 0 15.518028 11.969931 20.141796 +3459 744 6 0 9.848503 -12.101587 -10.529245 +3460 744 4 0 10.607536 -11.738045 -10.041608 +3461 744 4 0 9.985842 -11.615457 -11.376399 +3462 745 6 0 2.125570 -11.875883 -16.645987 +3463 745 4 0 2.047554 -12.712083 -16.165814 +3464 745 4 0 2.067413 -12.170151 -17.579365 +3465 746 6 0 -5.977611 10.651495 7.046682 +3466 746 4 0 -5.213541 10.455986 7.620137 +3467 746 4 0 -6.494562 9.846985 7.169759 +3468 747 6 0 -16.351535 -7.485266 -9.424947 +3469 747 4 0 -16.745079 -6.668906 -9.070767 +3470 747 4 0 -16.602332 -8.158689 -8.798627 +3471 748 6 0 24.296678 -17.192464 4.785797 +3472 748 4 0 24.587865 -18.035334 5.123313 +3473 748 4 0 24.068802 -16.574501 5.523851 +3474 749 6 0 -10.968856 -18.323021 -8.138707 +3475 749 4 0 -11.363544 -18.853138 -8.863013 +3476 749 4 0 -10.206142 -17.988660 -8.562061 +3477 750 6 0 -9.854962 -9.956148 -15.278228 +3478 750 4 0 -10.293465 -9.897483 -14.451993 +3479 750 4 0 -9.970473 -10.887047 -15.573043 +3480 751 6 0 -2.935483 6.363032 -19.045018 +3481 751 4 0 -3.535132 5.588364 -18.854687 +3482 751 4 0 -3.494550 7.145960 -19.014910 +3483 752 6 0 5.112400 17.701587 -11.443651 +3484 752 4 0 5.575170 17.705031 -12.266361 +3485 752 4 0 5.677404 18.265335 -10.960537 +3486 753 6 0 -6.450118 17.009140 6.526693 +3487 753 4 0 -6.743394 16.108032 6.566324 +3488 753 4 0 -5.677664 17.076672 5.879731 +3489 754 6 0 13.801680 -10.581422 -18.444834 +3490 754 4 0 14.024633 -10.709852 -17.519503 +3491 754 4 0 14.526918 -10.713699 -19.015218 +3492 755 6 0 -26.491618 -8.486894 -15.884962 +3493 755 4 0 -26.227094 -9.167912 -16.481603 +3494 755 4 0 -27.254427 -8.747438 -15.427464 +3495 756 6 0 9.041006 -18.956744 11.010081 +3496 756 4 0 9.242427 -19.133960 10.087876 +3497 756 4 0 9.841718 -19.136012 11.534074 +3498 757 6 0 -14.427557 4.070601 -15.330760 +3499 757 4 0 -14.952347 4.033207 -14.554014 +3500 757 4 0 -14.812926 4.741427 -15.800456 +3501 758 6 0 17.060580 -3.941095 -20.977244 +3502 758 4 0 17.749250 -4.204310 -20.329442 +3503 758 4 0 16.300042 -3.942896 -20.427486 +3504 759 6 0 -23.014194 6.362529 14.192538 +3505 759 4 0 -23.324814 5.470443 14.451595 +3506 759 4 0 -22.082482 6.279068 14.241974 +3507 760 6 0 -25.628726 -6.961569 -2.257843 +3508 760 4 0 -25.574604 -7.184504 -1.341207 +3509 760 4 0 -26.582064 -6.786831 -2.353726 +3510 761 6 0 22.564240 2.932310 -9.807597 +3511 761 4 0 23.151969 3.604785 -10.163343 +3512 761 4 0 22.874635 2.102350 -10.219491 +3513 762 6 0 -3.253479 19.088800 -17.106412 +3514 762 4 0 -2.788864 19.318234 -16.243589 +3515 762 4 0 -2.764381 19.537649 -17.806531 +3516 763 6 0 -22.859061 13.661040 -17.687912 +3517 763 4 0 -22.818174 13.783386 -16.772102 +3518 763 4 0 -23.770832 13.543351 -17.918472 +3519 764 6 0 9.494782 -11.734449 -13.112549 +3520 764 4 0 8.961400 -12.465267 -13.446468 +3521 764 4 0 9.761388 -11.207603 -13.875868 +3522 765 6 0 -23.688259 3.132799 -17.827915 +3523 765 4 0 -24.125760 3.978960 -17.963214 +3524 765 4 0 -22.830341 3.138251 -18.271402 +3525 766 6 0 2.139153 19.832776 -5.462308 +3526 766 4 0 3.092901 19.927439 -5.794969 +3527 766 4 0 1.766619 18.977669 -5.658347 +3528 767 6 0 -18.034230 16.770127 14.099225 +3529 767 4 0 -17.902225 17.120236 14.993829 +3530 767 4 0 -17.676323 15.854045 14.106616 +3531 768 6 0 1.824513 11.181132 6.084313 +3532 768 4 0 1.685221 10.344866 6.529341 +3533 768 4 0 1.455718 11.848001 6.661967 +3534 769 6 0 -11.843291 -5.056449 -16.641604 +3535 769 4 0 -12.501020 -5.242103 -17.328702 +3536 769 4 0 -12.014281 -5.753377 -15.968200 +3537 770 6 0 -22.854164 5.542584 7.008128 +3538 770 4 0 -23.145262 4.706955 7.372586 +3539 770 4 0 -23.371620 6.215233 7.454255 +3540 771 6 0 15.073774 -20.411976 -0.392431 +3541 771 4 0 14.408322 -20.469017 0.286083 +3542 771 4 0 14.632572 -19.889979 -1.049199 +3543 772 6 0 -17.960070 -5.852749 5.689988 +3544 772 4 0 -18.090795 -5.039390 5.186397 +3545 772 4 0 -18.353234 -5.775538 6.579834 +3546 773 6 0 -15.352248 -19.036717 0.344261 +3547 773 4 0 -15.093308 -18.197320 -0.050384 +3548 773 4 0 -15.225898 -18.950231 1.302869 +3549 774 6 0 18.470960 -18.740483 5.244443 +3550 774 4 0 18.242618 -17.821184 5.079689 +3551 774 4 0 19.343394 -18.632602 5.657266 +3552 775 6 0 -20.494949 -15.508798 0.415196 +3553 775 4 0 -21.033257 -14.800381 0.873351 +3554 775 4 0 -20.631551 -16.381502 0.919462 +3555 776 6 0 -26.836213 -15.820962 -1.291434 +3556 776 4 0 -25.922353 -15.963173 -1.047747 +3557 776 4 0 -27.438259 -16.224400 -0.574562 +3558 777 6 0 -13.235942 4.403119 -11.675233 +3559 777 4 0 -12.394934 3.955397 -11.762629 +3560 777 4 0 -13.370313 4.660640 -10.729304 +3561 778 6 0 4.457457 8.304220 -12.786971 +3562 778 4 0 3.724242 8.788507 -13.141101 +3563 778 4 0 4.902410 9.007385 -12.278991 +3564 779 6 0 12.905103 9.611740 -9.761522 +3565 779 4 0 12.523788 8.903277 -10.260068 +3566 779 4 0 13.450668 9.299611 -9.028515 +3567 780 6 0 -6.337643 16.236433 1.452793 +3568 780 4 0 -5.424381 16.339480 1.573225 +3569 780 4 0 -6.667968 16.644895 2.291271 +3570 781 6 0 26.439116 -1.915810 -20.713552 +3571 781 4 0 27.188632 -1.287536 -20.817388 +3572 781 4 0 26.782485 -2.730706 -20.995261 +3573 782 6 0 -19.182622 4.092355 9.034920 +3574 782 4 0 -19.485362 4.670885 8.308243 +3575 782 4 0 -20.013187 3.814515 9.521856 +3576 783 6 0 -2.300541 3.557512 -14.043398 +3577 783 4 0 -1.431422 3.599599 -13.555115 +3578 783 4 0 -1.988145 3.224630 -14.961052 +3579 784 6 0 -6.670819 -15.218721 -14.514642 +3580 784 4 0 -6.017795 -15.980959 -14.424699 +3581 784 4 0 -6.265671 -14.423752 -14.172913 +3582 785 6 0 24.507006 4.960415 18.725868 +3583 785 4 0 24.051892 4.202462 19.172938 +3584 785 4 0 23.940639 5.744203 18.851669 +3585 786 6 0 24.049293 12.473043 -13.141226 +3586 786 4 0 23.243912 12.962673 -12.967339 +3587 786 4 0 23.840443 11.608716 -13.489633 +3588 787 6 0 -14.826342 -14.174711 -1.101280 +3589 787 4 0 -14.425942 -14.926791 -0.673989 +3590 787 4 0 -15.768151 -14.488595 -1.118329 +3591 788 6 0 11.933486 13.553808 -14.961215 +3592 788 4 0 11.036396 13.817670 -14.752407 +3593 788 4 0 12.216429 12.950104 -14.279104 +3594 789 6 0 -2.797562 -12.367574 -0.515800 +3595 789 4 0 -3.179634 -11.713519 0.050158 +3596 789 4 0 -1.854871 -12.532942 -0.270880 +3597 790 6 0 17.488207 19.028545 -2.724709 +3598 790 4 0 17.501182 19.646316 -1.945319 +3599 790 4 0 17.260989 19.579570 -3.517708 +3600 791 6 0 -8.757369 -14.229883 -8.206010 +3601 791 4 0 -8.893000 -13.537739 -8.862015 +3602 791 4 0 -9.392123 -14.135387 -7.486682 +3603 792 6 0 -19.153579 -12.365172 5.625409 +3604 792 4 0 -19.433383 -12.590110 4.725475 +3605 792 4 0 -19.595557 -11.555979 5.869535 +3606 793 6 0 -7.701926 -16.135625 -11.737971 +3607 793 4 0 -6.868196 -16.044745 -12.240387 +3608 793 4 0 -8.301809 -15.535544 -12.265120 +3609 794 6 0 -3.605808 12.358960 20.023921 +3610 794 4 0 -4.119307 12.832959 19.358309 +3611 794 4 0 -4.145218 11.656406 20.372183 +3612 795 6 0 -13.013980 18.377636 -12.951904 +3613 795 4 0 -12.288179 17.997337 -13.504982 +3614 795 4 0 -12.538318 18.992103 -12.385350 +3615 796 6 0 -1.385735 6.480272 7.505236 +3616 796 4 0 -1.829939 5.594981 7.333987 +3617 796 4 0 -1.326794 6.575998 8.446333 +3618 797 6 0 9.907861 10.609361 -15.151767 +3619 797 4 0 10.299023 10.375476 -14.276851 +3620 797 4 0 9.651161 11.529891 -14.985274 +3621 798 6 0 9.310538 -2.514250 -12.134416 +3622 798 4 0 10.198177 -2.553660 -11.653872 +3623 798 4 0 8.836792 -1.753472 -11.726830 +3624 799 6 0 -21.580142 4.778390 0.032360 +3625 799 4 0 -21.344591 5.531473 -0.492439 +3626 799 4 0 -20.893065 4.098475 -0.015753 +3627 800 6 0 -19.278441 10.667329 -7.670184 +3628 800 4 0 -19.734646 10.867025 -6.871193 +3629 800 4 0 -18.532328 10.061861 -7.412248 +3630 801 6 0 15.203902 17.401580 19.186703 +3631 801 4 0 15.570898 16.998223 18.309293 +3632 801 4 0 14.252264 17.471997 19.020983 +3633 802 6 0 17.475659 -4.241820 15.422666 +3634 802 4 0 17.040898 -4.071975 16.320909 +3635 802 4 0 18.352897 -4.517345 15.720235 +3636 803 6 0 26.262986 8.204965 -20.205701 +3637 803 4 0 26.293506 8.464866 -19.242230 +3638 803 4 0 25.312183 8.095575 -20.318886 +3639 804 6 0 0.327844 9.896832 15.417356 +3640 804 4 0 1.202524 9.685899 15.170065 +3641 804 4 0 -0.168717 9.349803 14.747140 +3642 805 6 0 13.450972 -1.248355 9.296159 +3643 805 4 0 12.530981 -1.651940 9.252801 +3644 805 4 0 13.953341 -1.912001 9.787602 +3645 806 6 0 -5.429467 -15.995612 -8.899753 +3646 806 4 0 -4.916725 -16.325409 -8.062672 +3647 806 4 0 -6.362549 -16.264748 -8.759990 +3648 807 6 0 -17.910357 -1.868084 -15.474085 +3649 807 4 0 -18.801800 -2.365773 -15.300107 +3650 807 4 0 -17.939036 -0.883951 -15.233581 +3651 808 6 0 -6.998449 17.854546 12.155260 +3652 808 4 0 -7.324766 18.684261 11.705842 +3653 808 4 0 -7.250338 17.940958 13.056006 +3654 809 6 0 -27.017579 -12.852914 -7.744953 +3655 809 4 0 -26.095216 -13.088941 -7.541719 +3656 809 4 0 -27.046015 -11.903607 -7.742366 +3657 810 6 0 -20.992952 2.770137 13.223137 +3658 810 4 0 -21.230776 2.404263 14.087077 +3659 810 4 0 -20.235470 2.326081 12.930982 +3660 811 6 0 -26.544599 -5.877011 11.453664 +3661 811 4 0 -26.990332 -6.544246 10.916058 +3662 811 4 0 -26.022394 -5.435999 10.830265 +3663 812 6 0 -18.806379 11.367507 -13.046200 +3664 812 4 0 -19.789015 11.313553 -13.067429 +3665 812 4 0 -18.628129 11.249318 -14.024506 +3666 813 6 0 24.794642 -2.429791 16.906929 +3667 813 4 0 24.375084 -1.564983 16.998802 +3668 813 4 0 24.946627 -2.558178 15.958491 +3669 814 6 0 -5.039569 8.056593 -19.064906 +3670 814 4 0 -5.052461 7.958795 -18.117466 +3671 814 4 0 -5.966890 7.849304 -19.446709 +3672 815 6 0 -2.889572 19.346856 10.223639 +3673 815 4 0 -3.384312 19.390763 9.401856 +3674 815 4 0 -2.683383 20.308050 10.287170 +3675 816 6 0 24.834396 15.890694 6.130456 +3676 816 4 0 24.234322 16.328808 6.788069 +3677 816 4 0 24.458399 16.070054 5.248361 +3678 817 6 0 -5.675815 -18.202610 8.635402 +3679 817 4 0 -5.773224 -18.994730 9.253066 +3680 817 4 0 -6.566693 -17.951332 8.462469 +3681 818 6 0 0.200228 10.638735 -9.720146 +3682 818 4 0 1.124053 10.363079 -9.765946 +3683 818 4 0 -0.169388 10.758518 -8.862327 +3684 819 6 0 12.586551 -8.995486 13.235948 +3685 819 4 0 11.738414 -8.465169 13.179917 +3686 819 4 0 13.275714 -8.448558 12.911108 +3687 820 6 0 21.728995 -9.340509 14.117203 +3688 820 4 0 21.166035 -8.543859 14.159733 +3689 820 4 0 21.300249 -10.103143 14.587027 +3690 821 6 0 -6.837755 -7.061822 -14.579566 +3691 821 4 0 -7.451539 -6.737549 -13.910594 +3692 821 4 0 -7.310401 -7.496795 -15.364575 +3693 822 6 0 -9.354286 -10.670675 -5.815047 +3694 822 4 0 -9.142443 -9.961054 -6.416990 +3695 822 4 0 -10.107132 -10.315463 -5.251791 +3696 823 6 0 -8.705352 0.316369 14.356920 +3697 823 4 0 -8.755318 1.248673 14.182151 +3698 823 4 0 -7.817961 -0.022395 14.313721 +3699 824 6 0 14.343736 18.982116 -1.699643 +3700 824 4 0 14.409424 19.286931 -2.586247 +3701 824 4 0 14.592964 19.709765 -1.190359 +3702 825 6 0 14.559527 1.138316 10.218417 +3703 825 4 0 15.479051 1.159830 9.856479 +3704 825 4 0 14.063855 0.416501 9.816078 +3705 826 6 0 -20.566241 -0.996254 13.005878 +3706 826 4 0 -20.899331 -1.479928 12.209922 +3707 826 4 0 -20.624473 -1.700653 13.673656 +3708 827 6 0 -12.852778 -16.278261 -7.915385 +3709 827 4 0 -13.264438 -16.542888 -8.750067 +3710 827 4 0 -12.112512 -16.948829 -7.782415 +3711 828 6 0 -25.785944 -19.319619 -1.839096 +3712 828 4 0 -26.458799 -18.855500 -2.342721 +3713 828 4 0 -25.985807 -19.145409 -0.929325 +3714 829 6 0 -10.186107 18.619821 1.502896 +3715 829 4 0 -10.024101 19.020438 2.390188 +3716 829 4 0 -10.942245 19.107400 1.164289 +3717 830 6 0 4.484858 10.819107 -17.964431 +3718 830 4 0 5.133939 11.386899 -18.298672 +3719 830 4 0 4.527691 10.727124 -17.013873 +3720 831 6 0 6.463933 -18.890881 -12.906574 +3721 831 4 0 7.142489 -18.893949 -12.181472 +3722 831 4 0 6.490763 -19.813219 -13.109192 +3723 832 6 0 -15.198788 -16.766626 -9.336110 +3724 832 4 0 -15.377180 -16.563167 -8.461513 +3725 832 4 0 -15.323254 -15.974257 -9.877497 +3726 833 6 0 -14.146010 -20.422548 8.878122 +3727 833 4 0 -14.236979 -20.532175 7.917793 +3728 833 4 0 -13.662828 -21.215449 9.131232 +3729 834 6 0 0.614957 1.428020 12.956126 +3730 834 4 0 -0.110540 1.901658 12.528670 +3731 834 4 0 0.325279 0.716474 13.497208 +3732 835 6 0 -22.321257 -12.194484 -18.427855 +3733 835 4 0 -22.696325 -13.106322 -18.375252 +3734 835 4 0 -22.412389 -11.917225 -19.335761 +3735 836 6 0 12.531442 -4.758462 20.472899 +3736 836 4 0 13.067534 -4.753926 21.307738 +3737 836 4 0 12.096556 -5.562360 20.454035 +3738 837 6 0 13.892356 14.515119 -17.220006 +3739 837 4 0 13.491013 15.249793 -17.676248 +3740 837 4 0 14.027899 14.819402 -16.306112 +3741 838 6 0 17.502120 -14.847049 -15.435947 +3742 838 4 0 17.364472 -13.948352 -15.811879 +3743 838 4 0 18.105027 -15.359005 -16.059699 +3744 839 6 0 -0.502268 9.530205 -15.562269 +3745 839 4 0 -0.938753 10.373293 -15.281955 +3746 839 4 0 -0.097702 9.138998 -14.755615 +3747 840 6 0 -21.309309 -20.408905 -16.987522 +3748 840 4 0 -21.345337 -20.375840 -17.999142 +3749 840 4 0 -22.141862 -20.762308 -16.688786 +3750 841 6 0 22.147493 -6.639909 2.885000 +3751 841 4 0 22.188652 -7.549798 2.578098 +3752 841 4 0 22.107229 -6.728348 3.871637 +3753 842 6 0 -9.687279 5.414380 15.613331 +3754 842 4 0 -9.782742 5.066486 16.529208 +3755 842 4 0 -10.448969 5.923644 15.361474 +3756 843 6 0 5.675344 7.586899 16.980957 +3757 843 4 0 5.258959 7.810456 16.122506 +3758 843 4 0 6.513311 8.070410 16.991766 +3759 844 6 0 -20.413973 -2.810756 -14.704675 +3760 844 4 0 -20.680710 -3.455276 -14.087899 +3761 844 4 0 -20.927913 -2.006038 -14.605374 +3762 845 6 0 -22.235897 -8.299273 -7.619662 +3763 845 4 0 -22.889194 -7.882281 -8.261122 +3764 845 4 0 -22.332627 -7.861076 -6.765324 +3765 846 6 0 -23.981218 -0.704780 -9.514827 +3766 846 4 0 -24.783483 -0.715849 -8.978342 +3767 846 4 0 -24.016239 0.147898 -9.927153 +3768 847 6 0 7.651613 1.583143 -14.760840 +3769 847 4 0 8.495812 1.439050 -15.299970 +3770 847 4 0 7.511620 2.516131 -14.862425 +3771 848 6 0 0.884173 -19.810112 -4.062624 +3772 848 4 0 1.292889 -20.586437 -4.551786 +3773 848 4 0 1.192078 -19.022801 -4.536111 +3774 849 6 0 7.412040 11.115702 19.231433 +3775 849 4 0 7.538580 12.059258 19.246795 +3776 849 4 0 8.260401 10.691591 19.301522 +3777 850 6 0 -11.204219 12.495567 -4.600276 +3778 850 4 0 -11.028750 12.509428 -5.556334 +3779 850 4 0 -10.363635 12.791820 -4.218009 +3780 851 6 0 -25.903206 -8.385161 -5.723268 +3781 851 4 0 -25.119970 -7.920015 -6.092411 +3782 851 4 0 -25.526651 -8.874179 -5.022568 +3783 852 6 0 14.802024 4.590987 3.933454 +3784 852 4 0 14.375737 4.043905 3.277970 +3785 852 4 0 15.659394 4.916121 3.578549 +3786 853 6 0 -15.934931 6.397950 6.388644 +3787 853 4 0 -15.620802 7.216906 6.047813 +3788 853 4 0 -15.636175 5.690485 5.842853 +3789 854 6 0 22.212269 -3.912264 -1.134049 +3790 854 4 0 22.458591 -3.040474 -1.407870 +3791 854 4 0 22.479085 -3.998208 -0.233468 +3792 855 6 0 4.448770 -18.623307 6.143091 +3793 855 4 0 3.859811 -18.031485 6.593889 +3794 855 4 0 4.151476 -19.464236 6.536017 +3795 856 6 0 12.429816 -18.121512 9.248186 +3796 856 4 0 11.629942 -18.388099 8.814270 +3797 856 4 0 12.215561 -17.727680 10.120763 +3798 857 6 0 -8.497823 15.258872 16.966673 +3799 857 4 0 -7.810852 14.986731 16.348784 +3800 857 4 0 -8.167882 16.114306 17.249722 +3801 858 6 0 -20.878291 -14.745638 19.779655 +3802 858 4 0 -20.112590 -15.386225 19.796245 +3803 858 4 0 -20.957585 -14.429386 20.699068 +3804 859 6 0 -8.042069 13.212107 -6.799126 +3805 859 4 0 -7.666844 14.065367 -7.020588 +3806 859 4 0 -8.432360 12.994260 -7.617112 +3807 860 6 0 -4.401745 18.792233 12.536049 +3808 860 4 0 -5.252264 18.441661 12.206342 +3809 860 4 0 -3.786314 18.658531 11.783750 +3810 861 6 0 -22.502948 12.635671 -9.954592 +3811 861 4 0 -22.382976 11.654218 -10.023557 +3812 861 4 0 -22.588936 12.849370 -9.051340 +3813 862 6 0 6.205019 19.677761 10.016183 +3814 862 4 0 6.418256 20.244108 9.256973 +3815 862 4 0 6.081289 20.311217 10.773751 +3816 863 6 0 21.525435 -20.385383 2.444412 +3817 863 4 0 21.737318 -20.408572 1.494251 +3818 863 4 0 22.084053 -21.109629 2.761837 +3819 864 6 0 -16.599942 -18.820535 17.198669 +3820 864 4 0 -16.278472 -18.736077 16.290240 +3821 864 4 0 -16.380933 -19.763878 17.294110 +3822 865 6 0 -25.290808 -16.946358 -19.688799 +3823 865 4 0 -24.765600 -16.889073 -18.911085 +3824 865 4 0 -25.960541 -16.377910 -19.456590 +3825 866 6 0 -24.694098 -20.476906 -4.136770 +3826 866 4 0 -24.606655 -20.536372 -5.117234 +3827 866 4 0 -25.625806 -20.119370 -3.878957 +3828 867 6 0 11.896824 11.712030 16.306177 +3829 867 4 0 11.348704 12.251154 16.873688 +3830 867 4 0 11.274914 11.545841 15.498058 +3831 868 6 0 5.697623 16.972820 10.470297 +3832 868 4 0 4.991770 17.170798 11.097893 +3833 868 4 0 5.852878 17.817924 10.052784 +3834 869 6 0 -13.284850 -7.746454 -6.025360 +3835 869 4 0 -12.994189 -6.883337 -5.651840 +3836 869 4 0 -13.328473 -7.609512 -6.952585 +3837 870 6 0 -21.223162 1.160412 -11.807882 +3838 870 4 0 -22.146291 1.276713 -11.566889 +3839 870 4 0 -20.896068 1.043394 -10.863664 +3840 871 6 0 -4.631057 18.622729 -4.921244 +3841 871 4 0 -4.887844 18.863646 -4.031199 +3842 871 4 0 -5.230286 17.969756 -5.219284 +3843 872 6 0 24.681797 -17.654294 -1.670971 +3844 872 4 0 23.768274 -17.475294 -1.329114 +3845 872 4 0 24.791039 -18.602540 -1.565321 +3846 873 6 0 -17.687536 -19.879421 -18.679576 +3847 873 4 0 -17.986562 -20.092647 -17.773622 +3848 873 4 0 -17.222303 -20.676328 -18.924760 +3849 874 6 0 -6.573668 -1.414933 -12.940464 +3850 874 4 0 -5.981594 -0.685726 -13.202528 +3851 874 4 0 -7.313339 -1.430989 -13.600227 +3852 875 6 0 24.852405 8.745112 16.566019 +3853 875 4 0 25.315387 9.320408 17.189845 +3854 875 4 0 25.373490 7.938156 16.494188 +3855 876 6 0 19.231159 -18.894566 -9.451949 +3856 876 4 0 18.429507 -18.461081 -9.748217 +3857 876 4 0 18.920766 -19.499725 -8.784679 +3858 877 6 0 3.338073 -20.229490 -19.454945 +3859 877 4 0 2.656040 -19.781393 -18.876483 +3860 877 4 0 4.028693 -19.592026 -19.519704 +3861 878 6 0 10.225819 20.337141 12.829025 +3862 878 4 0 9.563839 20.833795 13.325284 +3863 878 4 0 9.705679 19.640109 12.367009 +3864 879 6 0 9.533934 0.668964 -16.571520 +3865 879 4 0 10.399193 0.538209 -16.091711 +3866 879 4 0 9.576351 1.385138 -17.298275 +3867 880 6 0 10.662383 -1.197996 9.643694 +3868 880 4 0 10.669217 -0.519470 10.302977 +3869 880 4 0 9.975986 -0.906856 8.995989 +3870 881 6 0 -8.631045 -16.685206 -9.233119 +3871 881 4 0 -8.853335 -15.836492 -8.694578 +3872 881 4 0 -8.361803 -16.344073 -10.088388 +3873 882 6 0 -16.046867 3.202795 -18.808362 +3874 882 4 0 -16.950450 3.324347 -19.009457 +3875 882 4 0 -16.106623 2.648826 -18.004784 +3876 883 6 0 -21.655953 -18.268305 -5.022876 +3877 883 4 0 -22.220521 -18.292491 -4.188932 +3878 883 4 0 -21.437192 -17.347868 -5.235461 +3879 884 6 0 -3.054479 -8.582825 -16.474970 +3880 884 4 0 -3.561388 -8.760643 -15.715699 +3881 884 4 0 -3.058659 -7.559442 -16.547327 +3882 885 6 0 -22.812267 -16.888527 -8.744475 +3883 885 4 0 -22.235942 -16.090582 -8.825879 +3884 885 4 0 -23.719738 -16.520887 -8.878128 +3885 886 6 0 -3.704190 -14.195133 -2.407699 +3886 886 4 0 -3.387102 -14.174810 -3.288821 +3887 886 4 0 -3.356349 -13.453995 -1.933962 +3888 887 6 0 -20.696165 -13.591009 17.258237 +3889 887 4 0 -21.475297 -13.153296 16.960866 +3890 887 4 0 -20.768473 -13.524910 18.211894 +3891 888 6 0 -18.077515 8.036142 -4.047377 +3892 888 4 0 -17.812789 8.648744 -4.737838 +3893 888 4 0 -17.620887 8.520879 -3.289746 +3894 889 6 0 -20.110600 19.407267 6.124785 +3895 889 4 0 -20.896902 18.868688 6.157232 +3896 889 4 0 -20.402600 20.334320 6.077069 +3897 890 6 0 -2.051195 9.467924 7.827905 +3898 890 4 0 -2.097838 10.162479 7.064246 +3899 890 4 0 -2.844983 9.344092 8.305687 +3900 891 6 0 -18.682154 5.478699 -2.934427 +3901 891 4 0 -18.229636 5.442492 -2.124369 +3902 891 4 0 -18.518659 6.286464 -3.381696 +3903 892 6 0 10.010203 14.447632 13.470001 +3904 892 4 0 10.226696 15.357421 13.799091 +3905 892 4 0 9.262668 14.599091 12.884669 +3906 893 6 0 17.215836 -17.548329 -2.124086 +3907 893 4 0 16.925189 -16.662250 -2.252230 +3908 893 4 0 16.865887 -17.769074 -1.235796 +3909 894 6 0 -5.919183 -9.349524 7.766171 +3910 894 4 0 -6.741218 -8.869400 7.859192 +3911 894 4 0 -5.404573 -8.951408 7.082536 +3912 895 6 0 -10.112774 -17.514245 5.470012 +3913 895 4 0 -10.177248 -17.335797 6.413035 +3914 895 4 0 -10.903396 -17.912916 5.176788 +3915 896 6 0 -17.679442 -12.718669 -9.050443 +3916 896 4 0 -18.270476 -12.557016 -8.300034 +3917 896 4 0 -18.198469 -12.552825 -9.805697 +3918 897 6 0 0.903259 -17.089060 -20.671596 +3919 897 4 0 1.071535 -16.725461 -21.579419 +3920 897 4 0 1.485989 -16.556142 -20.071022 +3921 898 6 0 -1.956506 2.203046 13.006137 +3922 898 4 0 -2.272231 1.835920 13.818085 +3923 898 4 0 -1.592679 3.074581 13.177858 +3924 899 6 0 24.307317 -7.931160 13.942533 +3925 899 4 0 23.816648 -8.756525 14.130421 +3926 899 4 0 25.262169 -8.082231 14.204005 +3927 900 6 0 -14.058968 19.300765 0.314297 +3928 900 4 0 -13.917031 18.387642 0.266006 +3929 900 4 0 -13.221511 19.754514 0.415523 +3930 901 6 0 -16.676872 -9.877858 -20.319129 +3931 901 4 0 -17.274810 -10.519927 -20.729021 +3932 901 4 0 -16.941519 -8.964879 -20.646570 +3933 902 6 0 -12.680702 -6.911233 16.978199 +3934 902 4 0 -13.557850 -6.922758 17.425905 +3935 902 4 0 -12.269134 -7.738029 17.145620 +3936 903 6 0 19.555509 -17.579926 -19.976313 +3937 903 4 0 19.050335 -18.389167 -19.640518 +3938 903 4 0 18.949443 -17.119931 -20.527020 +3939 904 6 0 21.076471 3.084534 14.949703 +3940 904 4 0 21.982711 3.424585 15.137726 +3941 904 4 0 21.059338 2.943234 13.989445 +3942 905 6 0 16.442213 12.147725 -13.378964 +3943 905 4 0 16.950297 12.610197 -12.695317 +3944 905 4 0 15.827762 12.795203 -13.746701 +3945 906 6 0 -25.439902 4.711302 -20.157995 +3946 906 4 0 -25.232468 3.814757 -20.523590 +3947 906 4 0 -26.313293 4.971364 -20.426324 +3948 907 6 0 -7.588528 12.088664 13.408162 +3949 907 4 0 -8.200423 12.174754 12.658025 +3950 907 4 0 -8.113691 11.630720 14.142990 +3951 908 6 0 26.436785 0.034911 5.586573 +3952 908 4 0 25.457878 0.386547 5.643112 +3953 908 4 0 26.282513 -0.892272 5.901143 +3954 909 6 0 20.823937 -7.100912 -0.564869 +3955 909 4 0 20.884805 -6.179294 -0.203608 +3956 909 4 0 21.513466 -7.607628 -0.095760 +3957 910 6 0 12.691400 17.480587 1.380786 +3958 910 4 0 12.692396 17.261428 2.322353 +3959 910 4 0 12.611923 16.651984 0.923905 +3960 911 6 0 -24.911725 10.197954 8.411953 +3961 911 4 0 -25.636701 10.762551 8.096402 +3962 911 4 0 -25.071847 10.060147 9.332683 +3963 912 6 0 -18.639378 5.447813 -18.001661 +3964 912 4 0 -18.974361 6.320483 -18.277153 +3965 912 4 0 -17.987263 5.631149 -17.283273 +3966 913 6 0 -20.959865 -1.961151 19.496385 +3967 913 4 0 -20.534023 -2.468481 20.215248 +3968 913 4 0 -20.355179 -1.361709 19.053432 +3969 914 6 0 25.098062 -12.896695 17.002170 +3970 914 4 0 24.406639 -13.455503 17.206622 +3971 914 4 0 24.932322 -12.540708 16.110034 +3972 915 6 0 -26.490917 -20.588542 6.528398 +3973 915 4 0 -26.917008 -20.096913 5.823633 +3974 915 4 0 -25.946103 -19.813146 6.884354 +3975 916 6 0 18.663882 -15.761448 0.434559 +3976 916 4 0 18.293356 -16.602715 0.618971 +3977 916 4 0 18.164755 -15.050245 0.892557 +3978 917 6 0 10.988074 -12.207500 15.456319 +3979 917 4 0 11.659991 -12.535619 14.945024 +3980 917 4 0 11.316489 -11.864883 16.268157 +3981 918 6 0 -21.505805 3.757682 10.585783 +3982 918 4 0 -21.516645 3.500786 11.561155 +3983 918 4 0 -21.430683 4.736521 10.599986 +3984 919 6 0 12.282284 -13.106227 -18.881930 +3985 919 4 0 12.759593 -12.281589 -18.973554 +3986 919 4 0 11.656222 -12.946682 -18.168338 +3987 920 6 0 13.087944 10.285301 -0.892868 +3988 920 4 0 13.800763 10.058844 -0.348329 +3989 920 4 0 13.444993 10.532975 -1.717057 +3990 921 6 0 -9.162139 -11.933739 -19.558277 +3991 921 4 0 -8.651549 -11.246835 -19.197918 +3992 921 4 0 -8.816392 -12.749175 -19.109531 +3993 922 6 0 -13.431343 12.125781 14.789987 +3994 922 4 0 -14.177333 12.077783 15.386597 +3995 922 4 0 -13.089871 13.025037 14.836795 +3996 923 6 0 18.177368 7.215321 -17.740007 +3997 923 4 0 17.389540 7.853045 -17.679076 +3998 923 4 0 17.843221 6.367105 -17.888163 +3999 924 6 0 1.466167 -13.601298 7.582198 +4000 924 4 0 0.972435 -14.385853 7.776388 +4001 924 4 0 0.919057 -12.873156 7.164133 +4002 925 6 0 11.325663 12.317782 -17.859494 +4003 925 4 0 11.786996 12.918180 -17.243704 +4004 925 4 0 11.714407 11.538450 -17.534509 +4005 926 6 0 17.972713 -1.451543 -17.483151 +4006 926 4 0 18.207855 -0.912662 -18.203981 +4007 926 4 0 17.842338 -0.769611 -16.779012 +4008 927 6 0 25.598333 7.442585 -7.896359 +4009 927 4 0 25.893540 7.973241 -8.686847 +4010 927 4 0 24.662621 7.579298 -7.748832 +4011 928 6 0 16.953262 -5.516556 7.796955 +4012 928 4 0 16.150883 -6.127947 7.920888 +4013 928 4 0 16.872953 -4.676742 8.219748 +4014 929 6 0 12.447806 -2.742404 -5.103683 +4015 929 4 0 13.262065 -2.337192 -4.865615 +4016 929 4 0 12.567802 -3.638206 -5.489980 +4017 930 6 0 23.442824 1.912863 -4.186751 +4018 930 4 0 22.783687 1.609227 -4.831788 +4019 930 4 0 23.692291 2.783304 -4.548967 +4020 931 6 0 26.613065 -7.057291 -2.847144 +4021 931 4 0 25.921057 -6.884909 -2.189136 +4022 931 4 0 26.624480 -6.286981 -3.475448 +4023 932 6 0 -10.239445 -6.332791 -18.742073 +4024 932 4 0 -10.340169 -5.647767 -18.098924 +4025 932 4 0 -10.090969 -5.968696 -19.646250 +4026 933 6 0 -20.376403 -6.492157 -15.200035 +4027 933 4 0 -21.216096 -6.709010 -14.741818 +4028 933 4 0 -19.747585 -6.443291 -14.454302 +4029 934 6 0 12.425316 -12.073259 9.372568 +4030 934 4 0 12.595386 -11.730652 10.279050 +4031 934 4 0 11.975580 -11.375801 8.874658 +4032 935 6 0 -8.532199 -0.531892 16.952480 +4033 935 4 0 -8.680978 0.164546 17.584693 +4034 935 4 0 -8.601294 -0.093174 16.091071 +4035 936 6 0 -15.814683 -10.863297 -17.898155 +4036 936 4 0 -15.883461 -10.639190 -18.879894 +4037 936 4 0 -16.703278 -10.849248 -17.497731 +4038 937 6 0 -14.449801 9.759702 -12.925291 +4039 937 4 0 -14.272437 8.788361 -12.976539 +4040 937 4 0 -15.016657 9.891030 -12.180657 +4041 938 6 0 -21.430732 11.921106 -19.181002 +4042 938 4 0 -21.526880 12.138660 -20.109451 +4043 938 4 0 -22.050688 12.479567 -18.617821 +4044 939 6 0 -25.974066 -3.158098 2.462777 +4045 939 4 0 -25.831369 -2.255405 2.174801 +4046 939 4 0 -26.439926 -3.064742 3.263507 +4047 940 6 0 -3.706735 6.147388 -13.605663 +4048 940 4 0 -3.297323 5.307884 -13.886877 +4049 940 4 0 -3.422860 6.737980 -14.321183 +4050 941 6 0 -20.883597 16.612287 14.041958 +4051 941 4 0 -20.999564 17.543929 13.958831 +4052 941 4 0 -19.965627 16.487176 14.039107 +4053 942 6 0 -20.557889 -1.845471 7.488592 +4054 942 4 0 -20.340337 -1.068424 6.935483 +4055 942 4 0 -20.903185 -2.604394 7.012639 +4056 943 6 0 -12.460264 -18.929249 4.382660 +4057 943 4 0 -12.282133 -18.769615 3.435033 +4058 943 4 0 -13.389343 -18.666156 4.432821 +4059 944 6 0 1.417248 11.708889 10.582961 +4060 944 4 0 2.296023 11.794703 10.114913 +4061 944 4 0 1.322165 12.680869 10.895877 +4062 945 6 0 10.022181 17.152306 -1.509079 +4063 945 4 0 9.099220 16.788088 -1.473811 +4064 945 4 0 10.556572 16.462293 -1.005697 +4065 946 6 0 26.377298 1.167852 -18.114945 +4066 946 4 0 26.294922 1.597527 -19.017371 +4067 946 4 0 26.810582 1.835218 -17.546811 +4068 947 6 0 4.477282 16.231872 -2.892567 +4069 947 4 0 4.601255 15.878653 -3.817385 +4070 947 4 0 5.378487 16.115183 -2.438618 +4071 948 6 0 24.364511 -2.064551 14.086212 +4072 948 4 0 24.217903 -1.193238 13.665466 +4073 948 4 0 25.144037 -2.400521 13.646565 +4074 949 6 0 19.972396 19.003953 10.129446 +4075 949 4 0 19.099910 19.391464 10.278245 +4076 949 4 0 20.140306 18.289889 10.813702 +4077 950 6 0 -9.744468 15.055459 -16.611544 +4078 950 4 0 -10.467454 15.614656 -16.286228 +4079 950 4 0 -10.073803 14.402676 -17.210684 +4080 951 6 0 -7.338670 -8.956276 -11.936725 +4081 951 4 0 -7.205180 -9.461193 -11.112425 +4082 951 4 0 -8.291268 -8.840677 -12.000288 +4083 952 6 0 9.310332 14.156142 -6.279488 +4084 952 4 0 10.218649 13.951492 -6.545390 +4085 952 4 0 9.258047 14.553265 -5.370592 +4086 953 6 0 0.560208 -13.174622 -9.781962 +4087 953 4 0 0.439761 -12.748376 -10.646076 +4088 953 4 0 0.670280 -14.103731 -9.913873 +4089 954 6 0 26.128167 14.199294 -1.068870 +4090 954 4 0 26.431992 13.452397 -0.460937 +4091 954 4 0 25.201007 14.292566 -1.045597 +4092 955 6 0 -16.949107 1.727945 -4.563937 +4093 955 4 0 -16.652995 1.770027 -5.488123 +4094 955 4 0 -17.803051 2.243334 -4.537865 +4095 956 6 0 -11.599049 -20.904475 0.385428 +4096 956 4 0 -11.617180 -19.974350 0.739051 +4097 956 4 0 -10.733402 -20.802194 -0.016961 +4098 957 6 0 -25.256117 12.394753 17.084014 +4099 957 4 0 -24.597187 12.955531 17.523929 +4100 957 4 0 -25.351341 11.801006 17.816577 +4101 958 6 0 21.083077 10.997597 -6.264609 +4102 958 4 0 20.914438 11.935561 -6.410001 +4103 958 4 0 20.611065 10.573853 -6.944918 +4104 959 6 0 24.363484 -19.776402 17.065120 +4105 959 4 0 24.744693 -19.074320 16.551577 +4106 959 4 0 25.036878 -20.294208 17.436608 +4107 960 6 0 -10.735684 9.638082 6.150386 +4108 960 4 0 -10.221167 9.463561 5.360913 +4109 960 4 0 -11.618988 9.902798 5.921573 +4110 961 6 0 -14.186781 2.877388 6.286661 +4111 961 4 0 -14.662769 3.118087 7.092293 +4112 961 4 0 -14.425510 3.607015 5.695311 +4113 962 6 0 23.488790 -12.140879 -16.710373 +4114 962 4 0 23.035645 -11.840916 -17.492726 +4115 962 4 0 24.198140 -11.533887 -16.669370 +4116 963 6 0 -9.756394 20.612891 7.487522 +4117 963 4 0 -10.567829 20.596149 6.941769 +4118 963 4 0 -9.567427 19.672366 7.650269 +4119 964 6 0 -10.809623 -15.325182 16.646046 +4120 964 4 0 -10.540345 -15.380934 15.754906 +4121 964 4 0 -10.995048 -16.212302 17.003558 +4122 965 6 0 23.590175 -14.844140 18.091313 +4123 965 4 0 23.082950 -15.642639 17.817614 +4124 965 4 0 22.918432 -14.433938 18.680116 +4125 966 6 0 -9.843301 16.099124 8.917553 +4126 966 4 0 -10.800912 15.942477 8.746196 +4127 966 4 0 -9.776206 16.007775 9.870062 +4128 967 6 0 -15.969686 15.153089 5.232592 +4129 967 4 0 -15.190596 15.577230 4.796399 +4130 967 4 0 -16.653218 15.791665 5.086615 +4131 968 6 0 -14.522038 4.774109 20.092720 +4132 968 4 0 -13.726552 4.726517 19.600040 +4133 968 4 0 -14.275341 5.232921 20.890928 +4134 969 6 0 -19.150467 -13.472817 -2.000864 +4135 969 4 0 -19.948375 -14.097323 -2.133949 +4136 969 4 0 -18.565882 -13.718795 -2.719742 +4137 970 6 0 26.570568 3.571434 2.677152 +4138 970 4 0 26.009960 3.474978 1.867261 +4139 970 4 0 25.979473 4.132392 3.254985 +4140 971 6 0 2.963742 -20.267378 17.680551 +4141 971 4 0 2.939273 -19.702759 18.451804 +4142 971 4 0 3.704894 -20.009537 17.129551 +4143 972 6 0 12.886914 -16.854820 -15.969948 +4144 972 4 0 13.277380 -15.998244 -16.290560 +4145 972 4 0 12.084202 -16.946569 -16.485310 +4146 973 6 0 -13.403098 20.670706 14.180090 +4147 973 4 0 -12.697115 20.129500 13.825532 +4148 973 4 0 -13.078241 21.562186 14.353615 +4149 974 6 0 1.263724 -2.316623 11.541630 +4150 974 4 0 1.604989 -3.147382 11.057854 +4151 974 4 0 1.301508 -2.419331 12.514250 +4152 975 6 0 16.027424 -2.901060 -7.834089 +4153 975 4 0 15.527925 -3.644628 -8.229138 +4154 975 4 0 15.964477 -2.241942 -8.584411 +4155 976 6 0 20.574908 7.015109 -16.355513 +4156 976 4 0 20.799767 7.912603 -16.672696 +4157 976 4 0 19.614717 7.020855 -16.464707 +4158 977 6 0 -9.799678 -16.315433 -2.735469 +4159 977 4 0 -9.082163 -15.876270 -3.158920 +4160 977 4 0 -9.675027 -17.234496 -2.912849 +4161 978 6 0 19.925358 -1.799248 -13.616500 +4162 978 4 0 19.041533 -1.607762 -13.949745 +4163 978 4 0 20.105803 -1.002750 -13.099573 +4164 979 6 0 26.502531 14.202393 -14.528425 +4165 979 4 0 25.566109 14.188457 -14.685868 +4166 979 4 0 26.586381 14.616670 -13.692642 +4167 980 6 0 -3.640972 -15.964509 3.441932 +4168 980 4 0 -3.916866 -16.633969 4.049731 +4169 980 4 0 -3.180242 -16.493582 2.755249 +4170 981 6 0 20.157853 -15.783144 2.660570 +4171 981 4 0 20.419750 -16.681495 2.950489 +4172 981 4 0 19.984795 -15.805827 1.709836 +4173 982 6 0 3.128568 11.959447 -14.685598 +4174 982 4 0 2.607191 12.662191 -15.102263 +4175 982 4 0 3.769283 12.428495 -14.079944 +4176 983 6 0 -24.815536 -15.542873 4.007555 +4177 983 4 0 -24.218085 -16.000016 3.406953 +4178 983 4 0 -25.315854 -15.091766 3.403899 +4179 984 6 0 19.308952 20.661672 -11.377272 +4180 984 4 0 19.335667 21.503703 -10.905560 +4181 984 4 0 20.214980 20.602723 -11.631713 +4182 985 6 0 13.542822 -5.649499 0.333332 +4183 985 4 0 13.963629 -4.763289 0.274336 +4184 985 4 0 12.814580 -5.810940 -0.269097 +4185 986 6 0 13.690049 -20.143279 -5.943461 +4186 986 4 0 13.436356 -20.544177 -6.811045 +4187 986 4 0 14.540599 -19.746894 -6.080417 +4188 987 6 0 -15.552613 1.765055 -16.570745 +4189 987 4 0 -15.053582 2.345281 -15.988522 +4190 987 4 0 -15.170829 0.889200 -16.752662 +4191 988 6 0 18.304944 6.143260 -6.070829 +4192 988 4 0 18.125046 5.326107 -5.570747 +4193 988 4 0 18.266448 6.784180 -5.360045 +4194 989 6 0 2.506981 -17.274997 10.100766 +4195 989 4 0 3.347828 -17.659592 10.064456 +4196 989 4 0 2.856471 -16.401034 10.442415 +4197 990 6 0 -19.165460 9.947070 1.363209 +4198 990 4 0 -18.730236 10.366229 0.602857 +4199 990 4 0 -18.849961 10.481480 2.151944 +4200 991 6 0 -25.980688 17.933161 -0.316559 +4201 991 4 0 -26.443527 17.228913 -0.781861 +4202 991 4 0 -25.367896 18.145268 -0.998602 +4203 992 6 0 -8.979352 -14.825818 -16.044347 +4204 992 4 0 -8.232685 -15.013438 -15.478412 +4205 992 4 0 -9.593300 -15.565144 -15.856307 +4206 993 6 0 -26.878522 10.651550 -5.997590 +4207 993 4 0 -27.657923 11.080372 -6.414692 +4208 993 4 0 -26.575102 11.315809 -5.418717 +4209 994 6 0 25.946197 20.187421 -17.138659 +4210 994 4 0 26.747885 20.729551 -17.283461 +4211 994 4 0 25.893413 20.171520 -16.172728 +4212 995 6 0 -22.758506 -11.646357 10.203824 +4213 995 4 0 -22.294597 -11.119698 9.558550 +4214 995 4 0 -22.038786 -12.335635 10.328914 +4215 996 6 0 5.051118 -7.506736 -18.096705 +4216 996 4 0 5.890399 -6.995469 -18.089124 +4217 996 4 0 4.432798 -7.081744 -18.676680 +4218 997 6 0 -25.361275 -6.967887 -18.797135 +4219 997 4 0 -24.723765 -6.707007 -18.115496 +4220 997 4 0 -25.259315 -7.901704 -18.865340 +4221 998 6 0 -2.799085 -16.680409 -5.658803 +4222 998 4 0 -3.041668 -16.532466 -4.707237 +4223 998 4 0 -2.655725 -17.646573 -5.729646 +4224 999 6 0 6.961841 -0.650018 14.982518 +4225 999 4 0 7.049840 -0.822572 15.899427 +4226 999 4 0 7.585417 -1.245556 14.495279 +4227 1000 6 0 -27.328225 -2.775920 4.654966 +4228 1000 4 0 -28.131668 -3.256883 4.960696 +4229 1000 4 0 -26.702154 -2.749977 5.390082 +4230 1001 6 0 -10.545176 15.887401 -11.516094 +4231 1001 4 0 -11.354652 16.437925 -11.631152 +4232 1001 4 0 -10.234139 15.573972 -12.408175 +4233 1002 6 0 27.293890 -3.784569 13.095470 +4234 1002 4 0 27.629930 -4.552840 12.571336 +4235 1002 4 0 27.297508 -4.139921 14.014667 +4236 1003 6 0 26.677289 -8.930589 -5.080635 +4237 1003 4 0 27.349144 -8.367067 -5.399678 +4238 1003 4 0 26.178389 -8.423219 -4.437089 +4239 1004 6 0 26.303353 -13.709693 -10.199064 +4240 1004 4 0 26.819339 -13.575870 -11.047002 +4241 1004 4 0 26.995460 -13.448744 -9.504732 +4242 1005 6 0 -5.782538 -6.137070 -18.577558 +4243 1005 4 0 -5.225175 -5.601455 -18.004594 +4244 1005 4 0 -5.277523 -6.828742 -18.969936 +4245 1006 6 0 -10.751593 15.373515 -8.362078 +4246 1006 4 0 -10.116580 15.133048 -9.031534 +4247 1006 4 0 -11.426882 15.817389 -8.872810 +4248 1007 6 0 16.641528 -6.647086 14.042481 +4249 1007 4 0 16.877857 -5.780320 14.352388 +4250 1007 4 0 15.723201 -6.556522 13.694961 +4251 1008 6 0 -9.692102 -20.433174 12.075319 +4252 1008 4 0 -9.015496 -20.798185 11.574612 +4253 1008 4 0 -10.349277 -21.179838 12.030713 +4254 1009 6 0 -3.342987 5.338933 20.099174 +4255 1009 4 0 -3.147711 5.827567 20.954747 +4256 1009 4 0 -4.124775 5.753362 19.736033 +4257 1010 6 0 22.616008 -14.603236 0.953729 +4258 1010 4 0 21.991188 -13.989371 1.394272 +4259 1010 4 0 22.974372 -14.081510 0.229956 +4260 1011 6 0 -8.097592 12.140479 -19.585886 +4261 1011 4 0 -8.453866 12.623380 -20.326053 +4262 1011 4 0 -8.784224 11.654989 -19.152969 +4263 1012 6 0 -21.232297 5.610953 -16.679404 +4264 1012 4 0 -20.585466 5.060918 -17.156512 +4265 1012 4 0 -21.930038 5.836903 -17.294471 +4266 1013 6 0 -10.747633 18.133699 -14.681278 +4267 1013 4 0 -10.847151 18.670752 -15.499579 +4268 1013 4 0 -9.785896 18.213162 -14.415037 +4269 1014 6 0 5.277447 -4.914937 -12.832056 +4270 1014 4 0 4.837973 -4.063025 -13.209955 +4271 1014 4 0 6.186619 -4.697637 -12.711347 +4272 1015 6 0 20.041500 5.021710 -2.968457 +4273 1015 4 0 19.672986 5.469423 -2.234503 +4274 1015 4 0 20.344328 4.132583 -2.637240 +4275 1016 6 0 17.907741 2.778212 -8.037993 +4276 1016 4 0 18.567517 3.366180 -8.410651 +4277 1016 4 0 17.288995 3.302520 -7.441301 +4278 1017 6 0 5.562515 -18.543574 -19.590057 +4279 1017 4 0 6.312662 -18.495893 -20.210476 +4280 1017 4 0 5.830551 -17.824826 -18.960179 +4281 1018 6 0 12.736551 -13.896404 -1.831403 +4282 1018 4 0 12.773597 -12.929037 -1.656141 +4283 1018 4 0 13.175198 -14.041740 -2.708482 +4284 1019 6 0 -4.469179 -3.097942 -13.481704 +4285 1019 4 0 -3.873920 -2.479353 -13.901987 +4286 1019 4 0 -5.276658 -2.695674 -13.122340 +4287 1020 6 0 -21.439043 8.219030 17.863426 +4288 1020 4 0 -21.056703 8.853759 17.338517 +4289 1020 4 0 -21.129569 7.386574 17.512818 +4290 1021 6 0 -20.342022 -7.199464 17.782819 +4291 1021 4 0 -19.811208 -6.577246 18.288787 +4292 1021 4 0 -19.701668 -7.908647 17.571092 +4293 1022 6 0 -14.263922 5.278640 -18.510906 +4294 1022 4 0 -13.564113 4.937165 -17.913388 +4295 1022 4 0 -14.930181 4.580837 -18.615930 +4296 1023 6 0 16.913731 -14.141037 14.480884 +4297 1023 4 0 16.066655 -13.798463 14.461234 +4298 1023 4 0 17.548578 -13.399940 14.431310 +4299 1024 6 0 -25.968088 14.659464 5.007859 +4300 1024 4 0 -25.454004 13.822928 4.891375 +4301 1024 4 0 -26.104124 14.757551 5.974942 +4302 1025 6 0 -18.135969 17.732537 5.080161 +4303 1025 4 0 -18.773193 18.355342 5.390012 +4304 1025 4 0 -18.159466 17.860761 4.093910 +4305 1026 6 0 -27.275820 -16.400609 -7.043757 +4306 1026 4 0 -26.590275 -16.756481 -6.431378 +4307 1026 4 0 -27.617212 -15.617979 -6.640114 +4308 1027 6 0 24.748058 17.280534 18.064239 +4309 1027 4 0 25.308718 17.915370 18.504903 +4310 1027 4 0 24.056361 17.050512 18.710421 +4311 1028 6 0 -24.811053 1.584408 5.834113 +4312 1028 4 0 -25.507909 1.858017 6.420755 +4313 1028 4 0 -25.030959 2.043401 4.912778 +4314 1029 6 0 -17.538048 -16.019040 8.437894 +4315 1029 4 0 -16.656025 -15.917276 8.786670 +4316 1029 4 0 -18.001949 -16.630915 9.146335 +4317 1030 6 0 24.760362 7.007344 2.270076 +4318 1030 4 0 25.402754 6.314627 2.489308 +4319 1030 4 0 23.915754 6.586671 2.268737 +4320 1031 6 0 25.788659 -3.059441 10.761911 +4321 1031 4 0 26.310282 -3.490606 11.381049 +4322 1031 4 0 26.152501 -2.184136 10.493232 +4323 1032 6 0 0.555207 13.578019 -13.771204 +4324 1032 4 0 0.341766 12.780750 -14.192088 +4325 1032 4 0 0.413626 13.443525 -12.823611 +4326 1033 6 0 20.410457 17.119094 12.037026 +4327 1033 4 0 20.229518 17.254716 12.960534 +4328 1033 4 0 19.888401 16.300517 11.792550 +4329 1034 6 0 -23.997550 7.377972 16.665323 +4330 1034 4 0 -23.725736 7.038438 15.778438 +4331 1034 4 0 -23.233133 7.945952 17.026136 +4332 1035 6 0 10.209255 5.785175 12.171401 +4333 1035 4 0 10.101397 6.356166 11.459081 +4334 1035 4 0 9.657068 5.061974 12.024038 +4335 1036 6 0 18.434676 -10.560721 -17.755033 +4336 1036 4 0 18.443899 -11.522200 -17.622101 +4337 1036 4 0 18.319805 -10.178413 -16.882655 +4338 1037 6 0 -27.095192 -12.657493 -12.643385 +4339 1037 4 0 -26.627310 -12.318558 -13.484881 +4340 1037 4 0 -26.470420 -12.949131 -11.963689 +4341 1038 6 0 -16.616222 15.445597 -12.118963 +4342 1038 4 0 -16.900898 14.503610 -11.855586 +4343 1038 4 0 -15.694269 15.632029 -11.755889 +4344 1039 6 0 21.704052 -7.110846 5.569340 +4345 1039 4 0 21.462097 -8.042671 5.894386 +4346 1039 4 0 20.943089 -6.635884 5.906995 +4347 1040 6 0 18.206432 16.827370 1.010928 +4348 1040 4 0 17.640465 17.264033 0.353478 +4349 1040 4 0 17.852918 17.062780 1.898646 +4350 1041 6 0 -11.473367 18.497190 -2.566431 +4351 1041 4 0 -11.979906 19.196582 -2.198797 +4352 1041 4 0 -11.280546 18.932999 -3.450291 +4353 1042 6 0 17.797648 10.068787 -6.366632 +4354 1042 4 0 17.894506 9.407090 -5.699458 +4355 1042 4 0 18.545928 9.973231 -6.994936 +4356 1043 6 0 -18.401148 -11.350055 -12.827243 +4357 1043 4 0 -18.476782 -10.412318 -13.195678 +4358 1043 4 0 -17.491834 -11.585994 -12.934422 +4359 1044 6 0 -16.495719 -5.941792 10.422239 +4360 1044 4 0 -16.334766 -5.213442 11.122849 +4361 1044 4 0 -16.639135 -6.780551 10.923477 +4362 1045 6 0 -11.586396 18.803652 -7.549338 +4363 1045 4 0 -12.019098 18.189302 -8.166804 +4364 1045 4 0 -11.712347 18.317066 -6.668883 +4365 1046 6 0 11.058497 -1.697211 6.108850 +4366 1046 4 0 11.596453 -0.983751 6.451941 +4367 1046 4 0 10.144328 -1.357434 6.135852 +4368 1047 6 0 -6.655801 13.749288 -17.439254 +4369 1047 4 0 -7.132448 13.358752 -18.156046 +4370 1047 4 0 -7.118927 14.596314 -17.196637 +4371 1048 6 0 1.472049 -16.138831 -18.127087 +4372 1048 4 0 0.854396 -15.448228 -18.418147 +4373 1048 4 0 2.130556 -15.578106 -17.697816 +4374 1049 6 0 20.585602 0.045789 -20.805188 +4375 1049 4 0 19.811710 0.249922 -20.316920 +4376 1049 4 0 20.451948 -0.908979 -20.865716 +4377 1050 6 0 -17.322452 12.895993 -11.204513 +4378 1050 4 0 -17.802771 12.549260 -12.003007 +4379 1050 4 0 -17.950866 13.176295 -10.574188 +4380 1051 6 0 -5.523481 17.380120 9.246553 +4381 1051 4 0 -6.455503 17.665024 9.326329 +4382 1051 4 0 -5.168113 17.988295 8.544540 +4383 1052 6 0 -20.625677 5.350199 17.142096 +4384 1052 4 0 -20.365541 5.269750 16.185658 +4385 1052 4 0 -21.560214 5.201087 17.226176 +4386 1053 6 0 14.783181 -14.244465 0.085624 +4387 1053 4 0 14.103412 -14.020780 -0.585079 +4388 1053 4 0 15.175676 -13.378076 0.287496 +4389 1054 6 0 -6.126500 15.521051 20.750377 +4390 1054 4 0 -5.864785 16.375379 20.437098 +4391 1054 4 0 -5.831488 14.924080 20.076176 +4392 1055 6 0 23.807408 -1.524862 20.387679 +4393 1055 4 0 23.526614 -0.919002 21.138248 +4394 1055 4 0 24.692883 -1.828224 20.645004 +4395 1056 6 0 -19.809983 -10.410676 13.714221 +4396 1056 4 0 -20.768119 -10.598102 13.488906 +4397 1056 4 0 -19.553271 -11.125518 14.242975 +4398 1057 6 0 10.977545 9.011145 -2.389433 +4399 1057 4 0 10.555694 9.915559 -2.389522 +4400 1057 4 0 11.154202 8.870964 -1.470695 +4401 1058 6 0 -1.783860 4.881032 16.604931 +4402 1058 4 0 -1.311789 5.388703 17.223932 +4403 1058 4 0 -2.422445 4.514982 17.225489 +4404 1059 6 0 7.835617 -8.106110 -15.760424 +4405 1059 4 0 7.624633 -7.756681 -14.894547 +4406 1059 4 0 8.420342 -7.335138 -16.124751 +4407 1060 6 0 -23.662148 -13.962817 6.282978 +4408 1060 4 0 -23.067991 -14.398941 6.936570 +4409 1060 4 0 -23.877149 -14.577723 5.532763 +4410 1061 6 0 -23.624539 2.173832 -0.854956 +4411 1061 4 0 -23.179146 2.179020 0.040340 +4412 1061 4 0 -23.749597 1.237465 -1.001396 +4413 1062 6 0 -21.224847 4.257385 -6.009865 +4414 1062 4 0 -20.741474 3.800756 -5.299605 +4415 1062 4 0 -22.182298 4.137922 -5.723698 +4416 1063 6 0 -7.017487 16.063624 -12.051636 +4417 1063 4 0 -6.269158 16.416276 -11.536793 +4418 1063 4 0 -7.636713 15.594733 -11.454123 +4419 1064 6 0 -5.651528 10.093505 -13.321462 +4420 1064 4 0 -6.401351 10.663800 -13.086078 +4421 1064 4 0 -5.597617 10.115851 -14.301208 +4422 1065 6 0 21.418715 -14.140702 -12.149975 +4423 1065 4 0 21.861018 -14.674641 -11.447553 +4424 1065 4 0 21.182805 -13.281849 -11.830093 +4425 1066 6 0 11.675702 -2.428019 -16.058290 +4426 1066 4 0 12.296485 -3.131417 -15.821102 +4427 1066 4 0 10.819347 -2.825354 -16.198440 +4428 1067 6 0 22.979820 -2.598953 7.858168 +4429 1067 4 0 22.305897 -3.288078 7.958439 +4430 1067 4 0 22.577225 -1.844154 8.317572 +4431 1068 6 0 -12.448543 -5.982245 -10.570856 +4432 1068 4 0 -12.345287 -6.440367 -11.438582 +4433 1068 4 0 -12.479780 -5.112730 -10.871625 +4434 1069 6 0 -21.326982 14.741209 3.984994 +4435 1069 4 0 -22.133596 15.218464 4.095957 +4436 1069 4 0 -21.095649 14.791647 3.001164 +4437 1070 6 0 -18.292976 8.601702 17.515296 +4438 1070 4 0 -17.819784 7.959109 16.915944 +4439 1070 4 0 -18.716579 9.254092 16.954312 +4440 1071 6 0 20.829524 -9.495435 17.330944 +4441 1071 4 0 20.166412 -8.937403 16.904816 +4442 1071 4 0 20.227087 -10.108486 17.846508 +4443 1072 6 0 20.700328 -6.588173 14.108279 +4444 1072 4 0 21.318200 -6.371434 13.409947 +4445 1072 4 0 20.919049 -5.966297 14.775431 +4446 1073 6 0 20.232319 2.519356 -1.744863 +4447 1073 4 0 19.792632 2.343537 -0.866566 +4448 1073 4 0 20.751642 1.718603 -1.892919 +4449 1074 6 0 15.047686 14.467227 0.247890 +4450 1074 4 0 15.482736 13.695414 -0.222271 +4451 1074 4 0 15.218594 15.203623 -0.400616 +4452 1075 6 0 24.814901 -4.572712 18.521288 +4453 1075 4 0 24.436069 -3.989712 17.861088 +4454 1075 4 0 24.560432 -4.263207 19.423396 +4455 1076 6 0 3.169892 -14.115589 5.242292 +4456 1076 4 0 2.664005 -13.989979 6.094893 +4457 1076 4 0 4.025199 -14.428367 5.639157 +4458 1077 6 0 -17.864265 -2.850216 -5.852738 +4459 1077 4 0 -17.430066 -2.321482 -5.131734 +4460 1077 4 0 -17.446095 -3.672125 -5.727214 +4461 1078 6 0 -13.642312 16.367207 3.840240 +4462 1078 4 0 -13.546920 17.318166 3.892058 +4463 1078 4 0 -12.985388 16.154870 4.544614 +4464 1079 6 0 15.575472 3.168399 -6.551464 +4465 1079 4 0 15.114514 3.591709 -7.323565 +4466 1079 4 0 15.203187 3.608807 -5.831817 +4467 1080 6 0 -21.816911 -17.666243 7.967285 +4468 1080 4 0 -21.649191 -17.232658 7.144499 +4469 1080 4 0 -22.407552 -17.039323 8.334081 +4470 1081 6 0 -19.125021 -12.172620 15.597940 +4471 1081 4 0 -18.215275 -12.242849 15.770287 +4472 1081 4 0 -19.633754 -12.872939 15.973922 +4473 1082 6 0 17.584300 -5.074564 -0.037211 +4474 1082 4 0 18.183319 -5.137038 0.675699 +4475 1082 4 0 18.235909 -5.047683 -0.784982 +4476 1083 6 0 26.562235 4.146721 -10.779327 +4477 1083 4 0 27.258204 4.596271 -10.364313 +4478 1083 4 0 26.892796 3.237656 -11.037254 +4479 1084 6 0 -23.034850 1.331983 -7.473112 +4480 1084 4 0 -22.263084 1.153047 -6.915575 +4481 1084 4 0 -23.725786 1.086847 -6.826224 +4482 1085 6 0 24.491038 14.753421 2.384575 +4483 1085 4 0 24.275342 13.963741 2.927789 +4484 1085 4 0 25.462558 14.841355 2.559853 +4485 1086 6 0 25.756605 20.905461 -14.371089 +4486 1086 4 0 25.459034 20.605712 -13.483891 +4487 1086 4 0 25.637109 21.868510 -14.335232 +4488 1087 6 0 18.144532 -1.757335 -11.270502 +4489 1087 4 0 18.514080 -2.646244 -11.055555 +4490 1087 4 0 18.939318 -1.202686 -11.251734 +4491 1088 6 0 -8.201074 -18.018606 -17.312094 +4492 1088 4 0 -8.700168 -17.307968 -17.835946 +4493 1088 4 0 -7.577873 -18.381345 -17.962687 +4494 1089 6 0 -9.369914 -19.217851 -15.403305 +4495 1089 4 0 -8.952768 -18.975805 -16.243189 +4496 1089 4 0 -8.911643 -18.742350 -14.709664 +4497 1090 6 0 20.100577 4.488027 -15.212556 +4498 1090 4 0 20.248911 5.438169 -15.424742 +4499 1090 4 0 20.660237 3.933680 -15.689536 +4500 1091 6 0 -19.712024 -15.323556 12.551955 +4501 1091 4 0 -19.317175 -16.207750 12.463402 +4502 1091 4 0 -19.212616 -14.787825 13.210358 +4503 1092 6 0 3.258787 -7.943131 12.290678 +4504 1092 4 0 2.342628 -8.287555 12.320149 +4505 1092 4 0 3.267355 -6.993463 12.332634 +4506 1093 6 0 -18.302710 1.278985 -16.334436 +4507 1093 4 0 -17.378406 1.373256 -16.132103 +4508 1093 4 0 -18.777760 1.517880 -15.493665 +4509 1094 6 0 16.870546 4.656852 -17.868704 +4510 1094 4 0 15.857496 4.704340 -17.988259 +4511 1094 4 0 17.247038 4.338791 -18.723974 +4512 1095 6 0 -15.333473 15.071500 7.805725 +4513 1095 4 0 -15.704647 14.257623 8.137122 +4514 1095 4 0 -15.627172 15.251727 6.915271 +4515 1096 6 0 9.979483 20.165851 2.918770 +4516 1096 4 0 9.638769 20.645174 2.150266 +4517 1096 4 0 9.859690 19.210620 2.805973 +4518 1097 6 0 23.413497 4.631399 15.271695 +4519 1097 4 0 23.659592 4.570914 14.363590 +4520 1097 4 0 23.076746 5.481003 15.471203 +4521 1098 6 0 23.514270 -0.269090 17.919270 +4522 1098 4 0 23.883706 -0.646818 18.744448 +4523 1098 4 0 22.647737 0.129763 18.103196 +4524 1099 6 0 -24.064290 4.819702 1.332253 +4525 1099 4 0 -24.383325 4.040819 1.008702 +4526 1099 4 0 -23.189236 4.997095 0.898826 +4527 1100 6 0 -25.779315 -8.150537 18.610217 +4528 1100 4 0 -24.782772 -7.888401 18.544405 +4529 1100 4 0 -26.257671 -7.381934 18.370006 +4530 1101 6 0 23.115913 16.716123 3.668102 +4531 1101 4 0 23.749362 16.385349 2.997452 +4532 1101 4 0 23.088241 17.666029 3.599261 +4533 1102 6 0 -20.088868 -15.143633 -10.159937 +4534 1102 4 0 -19.953025 -14.270168 -10.582681 +4535 1102 4 0 -19.990998 -15.687042 -10.954781 +4536 1103 6 0 7.102126 -1.136927 20.971306 +4537 1103 4 0 6.576190 -1.521838 20.280208 +4538 1103 4 0 7.955207 -1.040834 20.509983 +4539 1104 6 0 -2.534299 9.690544 11.933304 +4540 1104 4 0 -2.860248 8.888179 11.453477 +4541 1104 4 0 -1.828854 10.072496 11.393589 +4542 1105 6 0 12.023524 -9.150206 -14.165841 +4543 1105 4 0 11.362618 -9.759930 -14.520833 +4544 1105 4 0 12.740525 -9.263946 -14.788240 +4545 1106 6 0 15.791803 18.545995 0.850378 +4546 1106 4 0 16.437977 18.981342 1.416680 +4547 1106 4 0 14.975349 18.624193 1.311898 +4548 1107 6 0 -23.993331 13.937802 7.429388 +4549 1107 4 0 -23.946766 13.591295 6.487146 +4550 1107 4 0 -23.318125 14.639075 7.439315 +4551 1108 6 0 23.938328 -2.346007 3.554880 +4552 1108 4 0 24.343685 -3.093714 4.072487 +4553 1108 4 0 24.649326 -2.174810 2.889988 +4554 1109 6 0 -1.744771 13.957566 2.002292 +4555 1109 4 0 -0.940707 14.398422 2.247093 +4556 1109 4 0 -2.025476 14.420450 1.204293 +4557 1110 6 0 -25.534328 -15.482539 7.809635 +4558 1110 4 0 -25.054678 -15.173162 7.005447 +4559 1110 4 0 -26.465036 -15.629268 7.587481 +4560 1111 6 0 24.624742 -18.307755 -10.821110 +4561 1111 4 0 23.724217 -18.723401 -10.975653 +4562 1111 4 0 24.780187 -17.602754 -11.546790 +4563 1112 6 0 -21.325143 19.316329 -1.400937 +4564 1112 4 0 -21.154588 18.656956 -0.705637 +4565 1112 4 0 -20.679486 19.156150 -2.095481 +4566 1113 6 0 0.559384 -5.922570 14.213390 +4567 1113 4 0 1.239405 -5.963730 14.899585 +4568 1113 4 0 0.030681 -5.131536 14.297850 +4569 1114 6 0 7.056613 12.758986 15.777863 +4570 1114 4 0 6.345829 12.596606 16.456405 +4571 1114 4 0 6.917568 12.084839 15.095389 +4572 1115 6 0 7.882824 3.878180 -19.492657 +4573 1115 4 0 7.490185 4.569137 -19.983338 +4574 1115 4 0 7.617907 3.037912 -19.945297 +4575 1116 6 0 -4.242915 -9.821169 16.240099 +4576 1116 4 0 -5.114830 -10.078772 16.528494 +4577 1116 4 0 -4.353835 -8.852979 15.979121 +4578 1117 6 0 15.302976 18.208896 -11.851032 +4579 1117 4 0 14.901111 18.506138 -12.642478 +4580 1117 4 0 14.917266 17.320837 -11.712610 +4581 1118 6 0 -18.266869 -16.450266 -8.528802 +4582 1118 4 0 -19.072723 -16.071961 -9.086324 +4583 1118 4 0 -18.243043 -17.366820 -8.807270 +4584 1119 6 0 16.535819 -20.059315 20.261479 +4585 1119 4 0 16.531825 -20.982895 19.988148 +4586 1119 4 0 16.217098 -19.563433 19.483491 +4587 1120 6 0 -10.711611 3.116140 -11.835025 +4588 1120 4 0 -10.699224 2.230856 -12.204415 +4589 1120 4 0 -10.469479 3.689824 -12.532473 +4590 1121 6 0 -3.907796 14.129489 -14.135830 +4591 1121 4 0 -3.774958 15.065764 -14.110303 +4592 1121 4 0 -4.871885 13.969469 -14.280187 +4593 1122 6 0 -0.848559 15.883551 -14.784892 +4594 1122 4 0 -0.414200 14.990499 -14.630689 +4595 1122 4 0 -1.164070 15.745918 -15.703167 +4596 1123 6 0 26.710694 15.162885 -7.381020 +4597 1123 4 0 26.708875 16.144027 -7.444500 +4598 1123 4 0 27.516272 14.997257 -7.900997 +4599 1124 6 0 -20.320110 2.222669 -14.437513 +4600 1124 4 0 -20.674693 1.937159 -13.587288 +4601 1124 4 0 -21.090888 2.252982 -14.954492 +4602 1125 6 0 -18.681714 17.640935 -1.514728 +4603 1125 4 0 -19.273979 17.179134 -2.084688 +4604 1125 4 0 -18.333083 16.926527 -0.959606 +4605 1126 6 0 26.297214 0.194896 -8.814341 +4606 1126 4 0 26.092612 0.771392 -8.062520 +4607 1126 4 0 25.469129 -0.223458 -9.080468 +4608 1127 6 0 5.191134 -6.332696 -10.274288 +4609 1127 4 0 6.147598 -6.194127 -10.166488 +4610 1127 4 0 4.968608 -5.815003 -11.012193 +4611 1128 6 0 20.219068 -19.874563 -6.779564 +4612 1128 4 0 19.984433 -20.709740 -7.181101 +4613 1128 4 0 20.478152 -20.150413 -5.862690 +4614 1129 6 0 15.925069 -5.315100 -4.962971 +4615 1129 4 0 16.483651 -4.538813 -4.855095 +4616 1129 4 0 16.031011 -5.844220 -4.094051 +4617 1130 6 0 -24.041642 -19.508457 3.561309 +4618 1130 4 0 -23.889244 -19.214184 4.445568 +4619 1130 4 0 -23.734917 -20.488280 3.584072 +4620 1131 6 0 -7.947126 8.409362 14.208637 +4621 1131 4 0 -8.729737 8.295090 13.605991 +4622 1131 4 0 -7.220157 7.896970 13.768244 +4623 1132 6 0 -20.888915 18.615896 3.147997 +4624 1132 4 0 -20.353651 18.339741 3.899224 +4625 1132 4 0 -20.608848 18.126465 2.400982 +4626 1133 6 0 26.799597 -16.513942 12.340813 +4627 1133 4 0 27.311676 -15.749176 12.455669 +4628 1133 4 0 26.641412 -16.884054 13.252799 +4629 1134 6 0 22.610810 -16.125525 -11.025534 +4630 1134 4 0 23.428805 -16.214604 -10.496780 +4631 1134 4 0 22.231404 -17.004775 -11.137826 +4632 1135 6 0 23.631086 9.762764 -6.151528 +4633 1135 4 0 22.831437 10.283165 -6.251895 +4634 1135 4 0 23.313903 8.866850 -6.410178 +4635 1136 6 0 10.407629 -5.135788 9.642425 +4636 1136 4 0 9.500671 -5.522467 9.593528 +4637 1136 4 0 10.722620 -5.079856 8.742604 +4638 1137 6 0 4.000382 -9.483456 -16.043131 +4639 1137 4 0 4.388443 -8.972484 -16.767773 +4640 1137 4 0 3.270597 -9.958423 -16.410357 +4641 1138 6 0 -25.904986 -15.880364 18.652683 +4642 1138 4 0 -26.778482 -15.886913 19.026359 +4643 1138 4 0 -25.526797 -16.780938 18.932335 +4644 1139 6 0 15.308933 1.325497 -13.930838 +4645 1139 4 0 15.049598 0.974163 -14.793125 +4646 1139 4 0 14.735466 2.123881 -13.829588 +4647 1140 6 0 -6.379415 2.888159 -18.944523 +4648 1140 4 0 -6.573457 2.028181 -19.291846 +4649 1140 4 0 -5.489918 2.985716 -19.266815 +4650 1141 6 0 -1.982477 0.360990 19.729630 +4651 1141 4 0 -2.393479 -0.007753 20.516214 +4652 1141 4 0 -2.616886 0.223553 19.013623 +4653 1142 6 0 1.410741 17.503605 17.946189 +4654 1142 4 0 1.299933 17.358511 17.001928 +4655 1142 4 0 1.382712 16.600387 18.282286 +4656 1143 6 0 -17.081613 19.032309 -4.304375 +4657 1143 4 0 -18.004189 18.728506 -4.171643 +4658 1143 4 0 -16.569290 18.434220 -3.790534 +4659 1144 6 0 26.981274 -11.552908 -3.820441 +4660 1144 4 0 26.121174 -11.624996 -4.253473 +4661 1144 4 0 27.276376 -10.703146 -4.209015 +4662 1145 6 0 20.095481 18.572235 3.036961 +4663 1145 4 0 20.026299 17.806007 3.594224 +4664 1145 4 0 20.832186 19.036343 3.467658 +4665 1146 6 0 -19.905861 6.946943 4.083849 +4666 1146 4 0 -19.307403 7.160688 3.357801 +4667 1146 4 0 -20.728729 7.427643 3.991449 +4668 1147 6 0 22.217595 -4.822160 -10.650121 +4669 1147 4 0 22.159340 -5.054178 -11.530210 +4670 1147 4 0 21.255204 -4.714847 -10.351112 +4671 1148 6 0 12.390352 -19.538948 -0.083493 +4672 1148 4 0 13.062326 -18.900361 -0.469572 +4673 1148 4 0 11.739170 -19.679826 -0.768861 +4674 1149 6 0 -11.756735 -11.595474 -18.753407 +4675 1149 4 0 -10.845705 -11.914606 -18.999006 +4676 1149 4 0 -11.631200 -10.619419 -18.528946 +4677 1150 6 0 16.531650 8.079043 16.659190 +4678 1150 4 0 16.426030 8.463579 15.788072 +4679 1150 4 0 17.442132 8.278108 16.859520 +4680 1151 6 0 10.052731 8.649788 -10.126307 +4681 1151 4 0 10.131192 7.907466 -9.580859 +4682 1151 4 0 10.118299 9.470033 -9.652222 +4683 1152 6 0 10.138877 6.520965 -16.282122 +4684 1152 4 0 9.429867 6.198945 -15.746097 +4685 1152 4 0 9.762597 7.172991 -16.879414 +4686 1153 6 0 -5.128627 7.237138 -16.384778 +4687 1153 4 0 -4.943315 6.311211 -16.467826 +4688 1153 4 0 -4.299328 7.630954 -16.159960 +4689 1154 6 0 18.467732 -4.333427 -7.973507 +4690 1154 4 0 17.685481 -3.749427 -7.814406 +4691 1154 4 0 18.051764 -5.199527 -7.872728 +4692 1155 6 0 -22.790877 -7.110126 -2.658913 +4693 1155 4 0 -22.592444 -7.612682 -1.822969 +4694 1155 4 0 -23.671839 -6.831554 -2.552705 +4695 1156 6 0 -5.452870 -18.001674 4.454273 +4696 1156 4 0 -5.227357 -18.684872 5.061214 +4697 1156 4 0 -6.200455 -17.594596 4.818204 +4698 1157 6 0 6.056152 -17.434479 -7.972778 +4699 1157 4 0 6.787809 -18.060671 -8.028928 +4700 1157 4 0 5.440331 -17.702859 -7.267591 +4701 1158 6 0 1.714168 -18.930287 -17.718130 +4702 1158 4 0 1.740272 -18.003727 -18.035560 +4703 1158 4 0 0.785802 -19.119877 -17.580120 +4704 1159 6 0 12.454449 16.569541 -9.572034 +4705 1159 4 0 13.143421 15.995002 -9.358789 +4706 1159 4 0 11.970081 16.409711 -8.733167 +4707 1160 6 0 21.377566 -4.531623 -13.959167 +4708 1160 4 0 21.220313 -4.586863 -14.883806 +4709 1160 4 0 20.718007 -3.864167 -13.706228 +4710 1161 6 0 27.229945 -1.071212 -13.106863 +4711 1161 4 0 26.536738 -0.401088 -12.953451 +4712 1161 4 0 27.406489 -1.591477 -12.306455 +4713 1162 6 0 0.993205 -20.183906 13.537173 +4714 1162 4 0 1.864290 -20.100713 13.823720 +4715 1162 4 0 0.417346 -20.489716 14.247240 +4716 1163 6 0 22.306745 2.581458 8.736617 +4717 1163 4 0 22.972169 3.057047 8.241655 +4718 1163 4 0 21.515448 2.587605 8.237638 +4719 1164 6 0 -24.994740 17.845616 8.243126 +4720 1164 4 0 -25.935974 17.671320 8.306538 +4721 1164 4 0 -24.615426 17.427508 9.019818 +4722 1165 6 0 3.628195 -4.198159 -16.200147 +4723 1165 4 0 4.404223 -4.757640 -16.114355 +4724 1165 4 0 2.941004 -4.862278 -16.461468 +4725 1166 6 0 26.808990 -14.261974 -5.551088 +4726 1166 4 0 26.801404 -13.726938 -6.334245 +4727 1166 4 0 25.872464 -14.345791 -5.184066 +4728 1167 6 0 13.355891 -16.600141 -3.794039 +4729 1167 4 0 13.295908 -17.531097 -3.472837 +4730 1167 4 0 14.114590 -16.215977 -3.304966 +4731 1168 6 0 -5.285172 -14.650134 6.726219 +4732 1168 4 0 -5.321392 -15.573092 6.451324 +4733 1168 4 0 -5.705533 -14.040342 6.049451 +4734 1169 6 0 -15.245133 11.577568 10.198692 +4735 1169 4 0 -14.684069 10.842805 9.868029 +4736 1169 4 0 -15.899308 11.783343 9.507232 +4737 1170 6 0 17.485666 -16.919340 -6.354127 +4738 1170 4 0 17.235852 -17.135664 -7.261939 +4739 1170 4 0 18.432637 -16.981881 -6.360484 +4740 1171 6 0 -9.901382 -6.924152 -10.070687 +4741 1171 4 0 -10.735776 -6.481799 -9.885298 +4742 1171 4 0 -10.186933 -7.424453 -10.836686 +4743 1172 6 0 -24.779066 9.890774 -10.589824 +4744 1172 4 0 -24.555747 10.752218 -10.986744 +4745 1172 4 0 -24.892417 10.088688 -9.640328 +4746 1173 6 0 -22.615173 9.224641 6.611089 +4747 1173 4 0 -22.778201 8.680839 5.764537 +4748 1173 4 0 -23.446696 9.423303 6.964274 +4749 1174 6 0 9.268447 -16.931793 -5.987149 +4750 1174 4 0 8.956403 -16.451784 -6.788388 +4751 1174 4 0 9.877183 -16.351625 -5.503938 +4752 1175 6 0 -14.656535 1.482956 18.890158 +4753 1175 4 0 -15.369331 1.942366 19.276786 +4754 1175 4 0 -14.153965 0.952532 19.494908 +4755 1176 6 0 5.277331 10.616617 -11.480664 +4756 1176 4 0 5.005306 11.447583 -11.898782 +4757 1176 4 0 5.358629 10.918462 -10.514309 +4758 1177 6 0 25.665486 11.699398 -16.256540 +4759 1177 4 0 25.839240 12.448046 -15.719245 +4760 1177 4 0 25.814575 10.942656 -15.634104 +4761 1178 6 0 21.920761 20.073624 -12.126972 +4762 1178 4 0 22.552772 19.967397 -11.382127 +4763 1178 4 0 21.479644 19.202351 -12.146674 +4764 1179 6 0 10.003073 19.989386 -7.403776 +4765 1179 4 0 9.439166 20.478736 -6.817011 +4766 1179 4 0 9.975278 19.064238 -7.087034 +4767 1180 6 0 24.639512 10.361086 12.201260 +4768 1180 4 0 24.706246 9.532944 12.698966 +4769 1180 4 0 25.008910 11.010832 12.873283 +4770 1181 6 0 -4.551351 -13.614062 11.550986 +4771 1181 4 0 -3.695594 -13.200426 11.181108 +4772 1181 4 0 -4.841622 -13.040560 12.238016 +4773 1182 6 0 13.925499 -14.277948 -16.852509 +4774 1182 4 0 13.468499 -13.949023 -16.059490 +4775 1182 4 0 13.404967 -13.901558 -17.624653 +4776 1183 6 0 -8.822453 18.672284 -1.497284 +4777 1183 4 0 -9.773739 18.628726 -1.762866 +4778 1183 4 0 -8.737384 19.554941 -1.117958 +4779 1184 6 0 -22.502543 14.174443 -14.775760 +4780 1184 4 0 -23.095969 13.602099 -14.242424 +4781 1184 4 0 -22.857075 15.080918 -14.689705 +4782 1185 6 0 14.064111 -5.559010 13.387762 +4783 1185 4 0 14.064485 -4.565565 13.355502 +4784 1185 4 0 13.283489 -5.675258 12.845674 +4785 1186 6 0 1.894767 -5.320136 -19.924307 +4786 1186 4 0 1.751326 -5.338831 -18.971201 +4787 1186 4 0 2.815685 -5.078504 -20.067932 +4788 1187 6 0 25.294324 -10.049317 -2.168254 +4789 1187 4 0 24.998964 -9.181655 -2.438448 +4790 1187 4 0 25.460965 -9.966915 -1.197557 +4791 1188 6 0 6.479700 -19.891353 1.298943 +4792 1188 4 0 5.533528 -20.103717 1.361966 +4793 1188 4 0 6.573201 -19.075339 0.809570 +4794 1189 6 0 -27.363431 -16.882485 4.699786 +4795 1189 4 0 -26.488335 -16.423824 4.667383 +4796 1189 4 0 -27.778495 -16.519493 5.529189 +4797 1190 6 0 21.647371 -10.967083 -0.688726 +4798 1190 4 0 21.307654 -11.566578 -0.059145 +4799 1190 4 0 20.903506 -10.948374 -1.343290 +4800 1191 6 0 -22.639740 18.869062 12.772784 +4801 1191 4 0 -23.598249 18.977251 12.816087 +4802 1191 4 0 -22.528147 18.565590 11.856412 +4803 1192 6 0 -19.354849 19.459324 -20.763860 +4804 1192 4 0 -19.638921 18.619981 -20.405119 +4805 1192 4 0 -19.999366 20.121418 -20.384538 +4806 1193 6 0 -27.292577 17.947849 -7.899480 +4807 1193 4 0 -26.865640 18.369463 -8.665053 +4808 1193 4 0 -26.976583 18.519563 -7.163255 +4809 1194 6 0 -20.817821 -2.868450 14.802525 +4810 1194 4 0 -21.140828 -3.572172 14.242551 +4811 1194 4 0 -21.382527 -2.899729 15.647552 +4812 1195 6 0 -26.483700 3.477220 -8.027358 +4813 1195 4 0 -27.118971 4.203207 -8.001463 +4814 1195 4 0 -25.572543 3.766211 -8.004075 +4815 1196 6 0 -20.066885 -9.761422 6.553470 +4816 1196 4 0 -20.997945 -9.935159 6.946701 +4817 1196 4 0 -19.442249 -9.796491 7.281455 +4818 1197 6 0 -23.097741 6.873436 -18.392975 +4819 1197 4 0 -22.589483 6.725087 -19.200274 +4820 1197 4 0 -22.785797 7.752769 -18.098029 +4821 1198 6 0 18.849536 1.746914 0.846251 +4822 1198 4 0 18.128002 2.129064 0.287715 +4823 1198 4 0 19.181226 2.420341 1.435040 +4824 1199 6 0 27.002887 18.923510 11.873786 +4825 1199 4 0 27.227664 19.764419 11.414163 +4826 1199 4 0 26.105946 19.033421 11.984937 +4827 1200 6 0 -11.158512 11.141322 18.442481 +4828 1200 4 0 -11.408050 10.995491 17.540347 +4829 1200 4 0 -10.502213 10.475024 18.734764 +4830 1201 6 0 -21.495790 -1.351514 -4.237645 +4831 1201 4 0 -21.044359 -1.664515 -3.433502 +4832 1201 4 0 -22.384314 -1.671646 -4.060127 +4833 1202 6 0 15.621755 -15.205139 -2.495677 +4834 1202 4 0 15.424484 -14.934581 -1.611471 +4835 1202 4 0 16.121625 -14.529114 -2.853796 +4836 1203 6 0 4.381992 13.875981 -1.032186 +4837 1203 4 0 5.333475 13.689707 -0.896179 +4838 1203 4 0 4.022732 13.223499 -1.665135 +4839 1204 6 0 20.177887 10.395959 -3.696541 +4840 1204 4 0 20.356404 10.914845 -4.496586 +4841 1204 4 0 20.991017 10.244340 -3.211612 +4842 1205 6 0 15.157815 19.249081 -18.039544 +4843 1205 4 0 15.352336 20.161425 -17.776001 +4844 1205 4 0 15.059841 19.346261 -19.002141 +4845 1206 6 0 -7.108984 -13.295157 15.804846 +4846 1206 4 0 -6.929809 -14.169985 15.496547 +4847 1206 4 0 -6.361874 -13.100921 16.402035 +4848 1207 6 0 -25.065030 -11.005040 18.970744 +4849 1207 4 0 -25.902113 -11.429253 18.763963 +4850 1207 4 0 -25.182957 -10.072508 18.787257 +4851 1208 6 0 11.932413 -6.103636 -13.397989 +4852 1208 4 0 12.570617 -5.775336 -12.776618 +4853 1208 4 0 12.223586 -6.926860 -13.765008 +4854 1209 6 0 -25.022964 -4.047632 -16.421532 +4855 1209 4 0 -24.729550 -4.908790 -16.087160 +4856 1209 4 0 -24.546933 -3.445338 -15.856315 +4857 1210 6 0 -2.351505 -13.799895 -9.640381 +4858 1210 4 0 -2.806266 -13.103621 -10.108151 +4859 1210 4 0 -1.432803 -13.498454 -9.473869 +4860 1211 6 0 -17.970640 -1.824370 11.981061 +4861 1211 4 0 -18.720197 -1.276483 12.154733 +4862 1211 4 0 -17.669382 -2.084512 12.859437 +4863 1212 6 0 16.682335 16.786230 -5.408443 +4864 1212 4 0 15.963934 17.446355 -5.166695 +4865 1212 4 0 16.709036 16.877417 -6.391919 +4866 1213 6 0 -26.984415 4.176614 -3.075863 +4867 1213 4 0 -26.123649 4.345106 -2.684692 +4868 1213 4 0 -26.853761 3.725314 -3.913099 +4869 1214 6 0 -26.077892 0.261300 17.719641 +4870 1214 4 0 -26.784019 0.913023 17.543217 +4871 1214 4 0 -26.472468 -0.574255 17.882963 +4872 1215 6 0 22.927522 20.111945 -15.638008 +4873 1215 4 0 23.596986 20.008343 -14.934189 +4874 1215 4 0 22.343012 20.821690 -15.365852 +4875 1216 6 0 -5.579568 -12.021256 13.421129 +4876 1216 4 0 -5.890589 -11.086014 13.250578 +4877 1216 4 0 -6.303487 -12.389144 13.952477 +4878 1217 6 0 2.458268 -17.079274 7.291369 +4879 1217 4 0 2.320253 -17.365496 8.234460 +4880 1217 4 0 1.770368 -16.394030 7.185697 +4881 1218 6 0 -24.595173 -15.448874 14.340370 +4882 1218 4 0 -23.877774 -15.587584 14.998240 +4883 1218 4 0 -25.176320 -14.635721 14.530870 +4884 1219 6 0 27.032054 -9.403183 3.148273 +4885 1219 4 0 26.403900 -8.794366 3.626157 +4886 1219 4 0 27.383095 -9.993711 3.825592 +4887 1220 6 0 -20.726606 14.795856 1.273133 +4888 1220 4 0 -19.806504 14.435167 1.199972 +4889 1220 4 0 -21.276966 14.325769 0.588346 +4890 1221 6 0 -24.967956 8.541628 1.328681 +4891 1221 4 0 -24.984827 9.452469 1.040896 +4892 1221 4 0 -25.740396 8.434977 1.929151 +4893 1222 6 0 -12.425328 11.518457 -14.199688 +4894 1222 4 0 -12.773966 12.392793 -14.015441 +4895 1222 4 0 -13.118630 10.965584 -13.849575 +4896 1223 6 0 -2.529035 -2.360811 17.836544 +4897 1223 4 0 -3.234696 -2.119216 18.386147 +4898 1223 4 0 -1.867440 -1.729883 18.015495 +4899 1224 6 0 -21.776402 4.919177 -10.291667 +4900 1224 4 0 -22.083924 5.863215 -10.349382 +4901 1224 4 0 -22.101633 4.482076 -11.074994 +4902 1225 6 0 6.293596 15.999990 18.747555 +4903 1225 4 0 5.792274 16.524552 19.421554 +4904 1225 4 0 5.641363 15.346197 18.513974 +4905 1226 6 0 8.520334 14.536496 -17.222476 +4906 1226 4 0 9.367910 14.362425 -16.812169 +4907 1226 4 0 8.183656 13.684606 -17.523424 +4908 1227 6 0 22.691056 10.129741 -9.774947 +4909 1227 4 0 22.388373 10.989892 -9.545078 +4910 1227 4 0 23.520258 10.122274 -10.228776 +4911 1228 6 0 11.292032 2.127043 14.679028 +4912 1228 4 0 10.300438 2.012949 14.574584 +4913 1228 4 0 11.707898 2.382716 13.839204 +4914 1229 6 0 -10.080449 15.590962 -5.638342 +4915 1229 4 0 -9.913581 15.482801 -6.607010 +4916 1229 4 0 -11.000029 15.446049 -5.572110 +4917 1230 6 0 9.724654 19.017882 -10.687275 +4918 1230 4 0 10.589720 19.426462 -10.594122 +4919 1230 4 0 9.112520 19.575919 -10.256988 +4920 1231 6 0 -3.018641 7.588470 16.688095 +4921 1231 4 0 -2.330160 6.909662 16.567035 +4922 1231 4 0 -3.336233 7.572799 15.739189 +4923 1232 6 0 -23.558310 -7.134740 -5.487980 +4924 1232 4 0 -23.265138 -7.142827 -4.583180 +4925 1232 4 0 -23.745933 -6.250685 -5.834602 +4926 1233 6 0 4.226629 15.093702 15.365734 +4927 1233 4 0 4.100578 14.882406 16.320809 +4928 1233 4 0 5.174530 15.177349 15.271261 +4929 1234 6 0 -7.236890 20.676688 -13.887599 +4930 1234 4 0 -7.297460 19.771023 -14.250227 +4931 1234 4 0 -6.598431 21.116314 -14.486914 +4932 1235 6 0 15.815010 1.151652 -17.502222 +4933 1235 4 0 15.282468 0.557615 -16.965425 +4934 1235 4 0 15.054480 1.630363 -17.957554 +4935 1236 6 0 -20.408893 -2.203285 -1.832435 +4936 1236 4 0 -20.785863 -1.600728 -1.206934 +4937 1236 4 0 -20.672903 -3.085785 -1.719471 +4938 1237 6 0 20.195914 -9.732203 -7.503586 +4939 1237 4 0 19.775594 -9.020266 -6.898678 +4940 1237 4 0 21.112065 -9.804356 -7.217365 +4941 1238 6 0 19.296629 -3.381575 11.843745 +4942 1238 4 0 19.274699 -4.314587 11.989050 +4943 1238 4 0 20.065392 -3.074363 12.391528 +4944 1239 6 0 6.531812 13.501627 -15.078637 +4945 1239 4 0 5.967341 14.060209 -15.705952 +4946 1239 4 0 6.508026 12.632112 -15.439267 +4947 1240 6 0 23.589867 -10.343367 -8.571682 +4948 1240 4 0 23.047931 -10.296334 -7.779151 +4949 1240 4 0 23.642788 -11.281031 -8.849406 +4950 1241 6 0 -13.933420 -9.985099 16.210161 +4951 1241 4 0 -13.061691 -9.875550 16.658981 +4952 1241 4 0 -13.656103 -10.632088 15.489463 +4953 1242 6 0 -23.237683 18.866731 19.359260 +4954 1242 4 0 -22.914140 19.726873 19.738290 +4955 1242 4 0 -23.718173 18.429834 20.073905 +4956 1243 6 0 10.494095 4.110524 19.341374 +4957 1243 4 0 9.723154 4.572616 18.942773 +4958 1243 4 0 11.209458 4.339646 18.681127 +4959 1244 6 0 1.369329 -9.441779 19.284078 +4960 1244 4 0 2.015289 -10.186860 19.212218 +4961 1244 4 0 1.015324 -9.189016 18.436693 +4962 1245 6 0 -12.121346 16.858305 -16.912154 +4963 1245 4 0 -12.482071 17.717178 -16.927558 +4964 1245 4 0 -11.557811 16.791147 -17.773819 +4965 1246 6 0 -9.672999 19.181029 4.107845 +4966 1246 4 0 -8.970953 19.839775 3.892751 +4967 1246 4 0 -10.347573 19.719934 4.574402 +4968 1247 6 0 -25.848254 19.893856 -6.158583 +4969 1247 4 0 -26.297371 20.306721 -5.458518 +4970 1247 4 0 -25.747309 20.595741 -6.795744 +4971 1248 6 0 -23.033567 -20.060181 19.659192 +4972 1248 4 0 -22.235177 -19.955724 19.067747 +4973 1248 4 0 -23.368334 -19.148619 19.847979 +4974 1249 6 0 -15.791938 8.271699 18.828418 +4975 1249 4 0 -16.027582 7.356294 18.646313 +4976 1249 4 0 -16.655172 8.767091 18.686291 +4977 1250 6 0 -21.708167 13.277512 -0.641646 +4978 1250 4 0 -22.597047 13.562637 -0.909355 +4979 1250 4 0 -21.809236 12.333829 -0.325507 +4980 1251 6 0 5.941295 -12.360207 -6.112984 +4981 1251 4 0 6.359630 -11.626042 -5.736075 +4982 1251 4 0 6.495648 -12.726477 -6.802834 +4983 1252 6 0 13.032092 -7.701355 -9.994956 +4984 1252 4 0 13.027162 -8.501577 -10.533994 +4985 1252 4 0 12.548921 -8.005933 -9.172971 +4986 1253 6 0 -21.030949 -20.119698 18.010996 +4987 1253 4 0 -20.244199 -20.716690 18.012037 +4988 1253 4 0 -20.696565 -19.252737 17.848450 +4989 1254 6 0 -19.015223 -0.571456 18.155941 +4990 1254 4 0 -19.180719 -0.389583 17.176932 +4991 1254 4 0 -18.385462 0.098617 18.394716 +4992 1255 6 0 -20.138485 -4.252628 -11.316573 +4993 1255 4 0 -19.840849 -5.049159 -11.793063 +4994 1255 4 0 -20.052902 -4.580000 -10.382886 +4995 1256 6 0 26.001968 -7.495414 4.672795 +4996 1256 4 0 25.441451 -7.324776 5.428706 +4997 1256 4 0 26.791498 -7.049997 4.959197 +4998 1257 6 0 19.055181 -8.349517 1.323580 +4999 1257 4 0 19.813936 -8.781204 1.703347 +5000 1257 4 0 19.440205 -7.777422 0.589952 +5001 1258 6 0 25.264798 8.233933 8.591555 +5002 1258 4 0 25.487528 8.137778 9.540405 +5003 1258 4 0 25.431397 9.162412 8.389274 +5004 1259 6 0 12.847916 19.693484 13.048286 +5005 1259 4 0 11.960267 19.995654 12.950099 +5006 1259 4 0 13.352276 20.516003 12.895948 +5007 1260 6 0 -1.639765 11.429914 5.808063 +5008 1260 4 0 -1.143950 12.047063 6.360614 +5009 1260 4 0 -2.350791 11.948090 5.492463 +5010 1261 6 0 9.848758 16.041115 -10.707370 +5011 1261 4 0 9.065082 15.706216 -11.123228 +5012 1261 4 0 9.845269 17.025290 -10.747608 +5013 1262 6 0 25.426954 20.293141 3.300623 +5014 1262 4 0 25.545358 20.769417 4.152492 +5015 1262 4 0 25.632270 21.033287 2.715396 +5016 1263 6 0 20.761109 8.207487 15.638898 +5017 1263 4 0 20.452100 8.556874 16.455577 +5018 1263 4 0 20.418491 7.276974 15.507884 +5019 1264 6 0 -17.340920 8.603213 9.973826 +5020 1264 4 0 -17.013776 7.715227 10.202262 +5021 1264 4 0 -17.708959 8.550775 9.106960 +5022 1265 6 0 -4.331343 4.519352 -17.647753 +5023 1265 4 0 -5.066787 3.870671 -17.637369 +5024 1265 4 0 -3.551869 3.998790 -17.434586 +5025 1266 6 0 20.173773 -17.092486 -7.001341 +5026 1266 4 0 19.888855 -16.443588 -7.714490 +5027 1266 4 0 20.413820 -17.900629 -7.443434 +5028 1267 6 0 -24.408814 -19.385733 11.225815 +5029 1267 4 0 -23.821161 -19.917061 10.749392 +5030 1267 4 0 -23.910074 -18.660169 11.617528 +5031 1268 6 0 17.324633 -1.128975 8.030022 +5032 1268 4 0 17.360905 -1.837044 8.692495 +5033 1268 4 0 18.151746 -0.980682 7.588726 +5034 1269 6 0 23.955106 -0.867756 -15.846487 +5035 1269 4 0 24.366679 -1.312193 -16.592677 +5036 1269 4 0 23.040207 -0.721605 -15.963924 +5037 1270 6 0 9.794322 -16.325238 -14.689703 +5038 1270 4 0 10.077445 -16.942203 -15.418778 +5039 1270 4 0 10.274190 -16.591924 -13.896103 +5040 1271 6 0 -19.734101 -12.095151 -17.153284 +5041 1271 4 0 -20.605684 -12.154989 -17.550952 +5042 1271 4 0 -19.490756 -11.177750 -17.393726 +5043 1272 6 0 2.145542 4.244476 10.559284 +5044 1272 4 0 1.712137 4.346774 11.448612 +5045 1272 4 0 1.552348 4.733416 9.969137 +5046 1273 6 0 -11.816250 3.934419 -18.405990 +5047 1273 4 0 -11.103191 4.038219 -19.027130 +5048 1273 4 0 -12.427642 3.303177 -18.846649 +5049 1274 6 0 18.893576 -19.279190 2.434753 +5050 1274 4 0 19.835933 -19.611541 2.415682 +5051 1274 4 0 18.743093 -19.115267 3.373179 +5052 1275 6 0 20.503855 18.939356 -0.359795 +5053 1275 4 0 20.047818 18.683781 0.506021 +5054 1275 4 0 19.907310 19.650581 -0.623461 +5055 1276 6 0 26.407017 7.546865 -12.797932 +5056 1276 4 0 25.672384 7.104790 -13.280274 +5057 1276 4 0 27.091777 7.777455 -13.451817 +5058 1277 6 0 25.647383 -6.341604 -8.154924 +5059 1277 4 0 26.357304 -5.715813 -8.365206 +5060 1277 4 0 25.997425 -7.137628 -8.663351 +5061 1278 6 0 24.828979 0.493040 8.418984 +5062 1278 4 0 25.575762 0.370102 9.128898 +5063 1278 4 0 24.779810 -0.342584 8.014099 +5064 1279 6 0 17.019067 17.317670 3.445072 +5065 1279 4 0 16.246945 17.951681 3.647617 +5066 1279 4 0 17.118513 16.924515 4.354268 +5067 1280 6 0 -14.811273 -9.813473 19.349487 +5068 1280 4 0 -15.258466 -10.583929 19.669257 +5069 1280 4 0 -14.033228 -10.041012 18.847205 +5070 1281 6 0 23.382015 -15.215511 6.306360 +5071 1281 4 0 24.055596 -14.464366 6.446483 +5072 1281 4 0 22.714188 -14.794741 5.753275 +5073 1282 6 0 -26.337628 -13.401476 1.412480 +5074 1282 4 0 -26.098445 -12.489264 1.304520 +5075 1282 4 0 -25.434229 -13.739613 1.185013 +5076 1283 6 0 12.045641 6.334478 14.034491 +5077 1283 4 0 11.290237 6.052909 13.448299 +5078 1283 4 0 12.782332 5.993917 13.490639 +5079 1284 6 0 20.125812 -8.202150 -9.814098 +5080 1284 4 0 20.194536 -8.887766 -9.162911 +5081 1284 4 0 21.027215 -8.057148 -10.044296 +5082 1285 6 0 12.066525 -8.540938 -7.364209 +5083 1285 4 0 11.508583 -8.030746 -6.799426 +5084 1285 4 0 11.560454 -9.411302 -7.497328 +5085 1286 6 0 6.006584 -19.643391 -16.856771 +5086 1286 4 0 5.834004 -19.490315 -17.723180 +5087 1286 4 0 5.173445 -19.306940 -16.418662 +5088 1287 6 0 -26.105240 9.497668 11.035009 +5089 1287 4 0 -25.940506 10.208588 11.676762 +5090 1287 4 0 -26.907023 9.839249 10.688906 +5091 1288 6 0 25.980779 -10.760099 -17.043079 +5092 1288 4 0 26.294152 -9.947887 -17.408944 +5093 1288 4 0 26.659719 -11.433214 -17.294305 +5094 1289 6 0 17.405056 -19.269747 -14.944723 +5095 1289 4 0 17.214410 -18.409556 -14.434720 +5096 1289 4 0 17.526094 -19.972476 -14.301658 +5097 1290 6 0 -24.018604 17.625199 1.640879 +5098 1290 4 0 -24.784080 17.611175 1.083900 +5099 1290 4 0 -24.038354 18.437262 2.233960 +5100 1291 6 0 -19.713596 9.725034 11.241378 +5101 1291 4 0 -20.334881 9.562447 10.458947 +5102 1291 4 0 -18.859792 9.431551 10.874150 +5103 1292 6 0 12.017227 10.801952 4.275634 +5104 1292 4 0 11.431320 10.637434 5.045035 +5105 1292 4 0 11.407446 10.560420 3.532631 +5106 1293 6 0 -2.032321 -18.778706 7.677870 +5107 1293 4 0 -1.174746 -18.822855 7.226095 +5108 1293 4 0 -2.302104 -17.849324 7.787431 +5109 1294 6 0 27.376193 5.800091 -18.808667 +5110 1294 4 0 28.217784 5.560939 -18.324424 +5111 1294 4 0 27.470430 6.797809 -18.833583 +5112 1295 6 0 22.777052 -4.203723 15.528690 +5113 1295 4 0 22.819825 -4.163457 14.596219 +5114 1295 4 0 23.290333 -4.967303 15.841471 +5115 1296 6 0 -24.407041 -11.771935 -2.162786 +5116 1296 4 0 -24.850114 -12.297116 -2.844402 +5117 1296 4 0 -24.335332 -10.842961 -2.448771 +5118 1297 6 0 26.515383 14.863308 -11.949090 +5119 1297 4 0 25.693505 15.247676 -11.698157 +5120 1297 4 0 27.137639 14.903509 -11.237657 +5121 1298 6 0 9.526170 19.544584 -4.495947 +5122 1298 4 0 8.563440 19.681938 -4.310177 +5123 1298 4 0 9.710873 20.389152 -4.948099 +5124 1299 6 0 0.930640 14.865621 2.693375 +5125 1299 4 0 1.441052 15.216977 2.015262 +5126 1299 4 0 0.982855 15.427541 3.521397 +5127 1300 6 0 -8.560884 -14.779791 -0.317309 +5128 1300 4 0 -7.563132 -14.724309 -0.578447 +5129 1300 4 0 -8.944725 -15.346794 -1.006948 +5130 1301 6 0 -7.319722 -18.863858 -20.528347 +5131 1301 4 0 -8.028502 -18.663258 -21.126375 +5132 1301 4 0 -7.164500 -19.772394 -20.500444 +5133 1302 6 0 -15.128995 -19.691380 3.092730 +5134 1302 4 0 -16.008789 -19.690772 3.472840 +5135 1302 4 0 -14.968322 -20.623238 2.789294 +5136 1303 6 0 14.985700 14.931491 -8.447163 +5137 1303 4 0 15.394555 15.826269 -8.282486 +5138 1303 4 0 14.583931 14.705829 -7.592039 +5139 1304 6 0 27.322481 11.495061 -9.977404 +5140 1304 4 0 26.863175 12.062729 -9.353442 +5141 1304 4 0 28.126888 11.829690 -10.258173 +5142 1305 6 0 -18.229397 7.978168 7.639376 +5143 1305 4 0 -19.028971 7.438874 7.807107 +5144 1305 4 0 -17.575997 7.370338 7.232298 +5145 1306 6 0 -5.554901 9.643950 18.209130 +5146 1306 4 0 -4.877908 10.197790 17.765078 +5147 1306 4 0 -5.709375 10.290933 18.919059 +5148 1307 6 0 27.055810 -8.039157 10.769461 +5149 1307 4 0 27.007722 -8.570107 10.005081 +5150 1307 4 0 26.186325 -7.596689 10.673325 +5151 1308 6 0 11.193144 -4.443017 6.826722 +5152 1308 4 0 10.836891 -3.569010 6.720665 +5153 1308 4 0 12.137206 -4.292318 6.939554 +5154 1309 6 0 19.268222 19.404109 -20.005983 +5155 1309 4 0 18.552307 19.427583 -20.612317 +5156 1309 4 0 20.054546 19.443947 -20.508778 +5157 1310 6 0 -0.489608 2.918279 -19.339493 +5158 1310 4 0 -0.728227 3.023881 -20.237208 +5159 1310 4 0 0.435524 3.253135 -19.140478 +5160 1311 6 0 -9.930055 10.868000 -17.673601 +5161 1311 4 0 -10.626469 11.466271 -17.943644 +5162 1311 4 0 -9.408670 11.199903 -16.908283 +5163 1312 6 0 14.391665 -7.492360 -17.133433 +5164 1312 4 0 14.776095 -6.640715 -16.914336 +5165 1312 4 0 14.844935 -7.826758 -17.919613 +5166 1313 6 0 -4.403090 17.562294 4.304967 +5167 1313 4 0 -3.639926 17.895809 4.788467 +5168 1313 4 0 -4.847822 18.247386 3.881416 +5169 1314 6 0 14.924216 -8.572989 -7.802421 +5170 1314 4 0 15.080791 -9.001730 -8.577899 +5171 1314 4 0 14.072292 -8.888256 -7.443501 +5172 1315 6 0 20.863060 -8.335281 -2.996473 +5173 1315 4 0 20.865038 -7.834818 -2.195694 +5174 1315 4 0 20.360014 -9.121641 -2.844384 +5175 1316 6 0 7.770701 4.749626 -15.173810 +5176 1316 4 0 7.232605 4.918984 -14.407401 +5177 1316 4 0 7.150893 4.735931 -15.889673 +5178 1317 6 0 9.287502 -20.421293 -19.615918 +5179 1317 4 0 8.673901 -19.918813 -20.140368 +5180 1317 4 0 10.257214 -20.289398 -19.904230 +5181 1318 6 0 20.543914 -3.694600 8.858562 +5182 1318 4 0 20.350529 -3.346561 9.790355 +5183 1318 4 0 20.284447 -4.620852 8.950478 +5184 1319 6 0 -24.889469 -2.826087 -11.161559 +5185 1319 4 0 -24.617642 -1.952238 -10.677372 +5186 1319 4 0 -25.879679 -2.907043 -11.066325 +5187 1320 6 0 16.046200 -19.874001 -17.403642 +5188 1320 4 0 16.633402 -19.935906 -18.189298 +5189 1320 4 0 16.556861 -19.594522 -16.612102 +5190 1321 6 0 5.741718 -12.703855 14.460309 +5191 1321 4 0 6.418646 -13.226075 14.848859 +5192 1321 4 0 5.375423 -12.291966 15.251474 +5193 1322 6 0 -26.921124 3.080708 -16.683288 +5194 1322 4 0 -26.349288 3.764354 -17.076383 +5195 1322 4 0 -27.310492 3.610598 -15.940909 +5196 1323 6 0 -9.051861 -12.598891 -10.481740 +5197 1323 4 0 -9.312975 -13.202994 -11.160740 +5198 1323 4 0 -9.863453 -12.002119 -10.435649 +5199 1324 6 0 11.222934 -19.072403 -5.120308 +5200 1324 4 0 10.662322 -18.478568 -5.660022 +5201 1324 4 0 12.014749 -19.325909 -5.638718 +5202 1325 6 0 18.944446 -1.761496 -1.989981 +5203 1325 4 0 19.143872 -2.715939 -1.959282 +5204 1325 4 0 18.884717 -1.422297 -1.082916 +5205 1326 6 0 23.550316 -15.829708 -20.623087 +5206 1326 4 0 22.847013 -15.261005 -20.962532 +5207 1326 4 0 23.291254 -16.269725 -19.776352 +5208 1327 6 0 16.851801 5.388343 15.856452 +5209 1327 4 0 16.397949 5.383405 15.017945 +5210 1327 4 0 16.364224 6.131529 16.215918 +5211 1328 6 0 12.029283 -15.298450 15.005226 +5212 1328 4 0 11.752968 -15.998705 15.556968 +5213 1328 4 0 11.367704 -14.915688 14.430927 +5214 1329 6 0 14.340396 -0.486882 2.372215 +5215 1329 4 0 13.663877 -0.866715 2.885453 +5216 1329 4 0 14.313669 0.446574 2.655905 +5217 1330 6 0 -4.590564 -6.037942 9.321481 +5218 1330 4 0 -4.191484 -6.200341 8.445394 +5219 1330 4 0 -4.057284 -5.373615 9.813704 +5220 1331 6 0 11.373242 -19.244304 -15.042581 +5221 1331 4 0 12.222601 -19.509329 -15.419988 +5222 1331 4 0 10.727440 -19.492586 -15.694712 +5223 1332 6 0 8.445009 -7.353337 -20.644303 +5224 1332 4 0 8.065671 -6.779925 -19.985343 +5225 1332 4 0 8.109658 -8.330016 -20.463794 +5226 1333 6 0 9.428901 8.662531 -17.428301 +5227 1333 4 0 8.456111 8.645724 -17.644511 +5228 1333 4 0 9.529146 9.218358 -16.645571 +5229 1334 6 0 -22.387040 -19.582592 -7.404304 +5230 1334 4 0 -22.537521 -18.739332 -7.873166 +5231 1334 4 0 -22.150442 -19.339940 -6.528223 +5232 1335 6 0 26.735971 -15.726321 7.121648 +5233 1335 4 0 25.953722 -16.106883 7.512069 +5234 1335 4 0 26.460359 -14.804570 6.934323 +5235 1336 6 0 -20.988572 11.929476 3.968066 +5236 1336 4 0 -21.340596 11.563124 4.784938 +5237 1336 4 0 -21.130650 12.884161 4.069043 +5238 1337 6 0 21.473005 20.923952 -4.710755 +5239 1337 4 0 22.324172 21.375208 -4.753044 +5240 1337 4 0 21.707980 20.020307 -4.884522 +5241 1338 6 0 18.479193 -0.888136 0.672743 +5242 1338 4 0 17.536329 -0.750808 0.451811 +5243 1338 4 0 18.753176 -0.016644 0.847545 +5244 1339 6 0 -13.644220 -0.195942 -16.728164 +5245 1339 4 0 -14.145608 -0.971886 -16.514909 +5246 1339 4 0 -13.412704 -0.294150 -17.655379 +5247 1340 6 0 -27.356282 -13.782004 3.934427 +5248 1340 4 0 -27.242980 -13.845896 2.900565 +5249 1340 4 0 -28.015991 -14.339318 4.193014 +5250 1341 6 0 18.276550 10.521821 -10.411508 +5251 1341 4 0 17.466149 10.037966 -10.334512 +5252 1341 4 0 18.135131 11.463023 -10.441937 +5253 1342 6 0 11.304676 -3.958739 14.771873 +5254 1342 4 0 10.819571 -4.657592 14.338362 +5255 1342 4 0 11.872243 -4.302988 15.497743 +5256 1343 6 0 0.810718 18.132291 -14.333312 +5257 1343 4 0 0.190255 17.471051 -14.607576 +5258 1343 4 0 1.665202 17.681600 -14.166677 +5259 1344 6 0 -18.194302 10.734237 20.288216 +5260 1344 4 0 -18.737476 10.008872 20.011140 +5261 1344 4 0 -18.413412 10.870765 21.217524 +5262 1345 6 0 -7.563142 -16.389647 8.034997 +5263 1345 4 0 -7.754897 -16.237987 7.073421 +5264 1345 4 0 -8.386855 -16.715419 8.384876 +5265 1346 6 0 13.912058 -6.782117 15.996328 +5266 1346 4 0 13.180027 -7.276194 16.277557 +5267 1346 4 0 13.861231 -6.438577 15.112401 +5268 1347 6 0 -25.429958 -6.548345 16.184656 +5269 1347 4 0 -24.780220 -7.006450 16.697079 +5270 1347 4 0 -26.340485 -6.934525 16.332424 +5271 1348 6 0 -25.500783 -16.025799 -9.490569 +5272 1348 4 0 -26.164448 -16.158413 -8.820769 +5273 1348 4 0 -25.951236 -16.456932 -10.263221 +5274 1349 6 0 24.124222 2.121712 -16.465144 +5275 1349 4 0 24.497335 2.845246 -17.081218 +5276 1349 4 0 24.792485 1.399163 -16.373949 +5277 1350 6 0 4.547327 -7.471124 19.146289 +5278 1350 4 0 4.354864 -7.322111 18.216109 +5279 1350 4 0 3.632016 -7.470487 19.500477 +5280 1351 6 0 10.120616 17.236092 14.316409 +5281 1351 4 0 10.306027 17.503867 15.195486 +5282 1351 4 0 9.503499 17.802179 13.861569 +5283 1352 6 0 21.443686 -0.137574 -7.240239 +5284 1352 4 0 21.320909 -0.780264 -6.543039 +5285 1352 4 0 20.520021 0.052046 -7.411757 +5286 1353 6 0 -18.828207 -17.795055 12.603944 +5287 1353 4 0 -19.462622 -18.118613 13.289732 +5288 1353 4 0 -19.239011 -18.165303 11.770846 +5289 1354 6 0 -5.408698 18.602640 19.942387 +5290 1354 4 0 -4.940011 19.368098 19.546138 +5291 1354 4 0 -4.701861 17.940803 20.028319 +5292 1355 6 0 1.246630 7.058463 14.491223 +5293 1355 4 0 1.833210 6.855645 13.673367 +5294 1355 4 0 1.409024 6.330352 15.131330 +5295 1356 6 0 12.743100 -19.137500 -10.658143 +5296 1356 4 0 12.731029 -19.861558 -11.325766 +5297 1356 4 0 13.636140 -18.849862 -10.621111 +5298 1357 6 0 8.176227 18.621713 -14.093293 +5299 1357 4 0 8.403415 17.666902 -14.107193 +5300 1357 4 0 8.904018 18.994347 -14.634670 +5301 1358 6 0 -2.850169 -13.873152 15.306117 +5302 1358 4 0 -2.778021 -14.417883 14.515219 +5303 1358 4 0 -2.855607 -12.985119 14.927436 +5304 1359 6 0 -2.292558 -20.012333 10.080992 +5305 1359 4 0 -1.651194 -19.572426 10.625999 +5306 1359 4 0 -2.187742 -19.593458 9.218576 +5307 1360 6 0 22.331247 5.799873 2.670280 +5308 1360 4 0 22.434189 5.666649 3.628261 +5309 1360 4 0 22.776307 5.021312 2.347574 +5310 1361 6 0 15.417762 16.217823 -20.022192 +5311 1361 4 0 14.476316 16.148202 -19.889414 +5312 1361 4 0 15.596696 16.629517 -20.930968 +5313 1362 6 0 -26.290384 -0.615609 -8.011370 +5314 1362 4 0 -26.337180 -1.338819 -7.375398 +5315 1362 4 0 -27.197456 -0.506091 -8.331222 +5316 1363 6 0 9.027104 -10.649673 18.216586 +5317 1363 4 0 9.003116 -9.685060 18.321463 +5318 1363 4 0 8.395635 -11.040516 18.879208 +5319 1364 6 0 20.540085 20.400943 18.176526 +5320 1364 4 0 21.096121 20.661895 18.908831 +5321 1364 4 0 19.896888 21.145098 18.113813 +5322 1365 6 0 -1.026820 14.710767 -4.091506 +5323 1365 4 0 -1.483470 15.499879 -3.851169 +5324 1365 4 0 -1.334746 14.285611 -4.859625 +5325 1366 6 0 -26.089489 15.380454 18.855264 +5326 1366 4 0 -25.115552 15.260124 18.557693 +5327 1366 4 0 -26.107913 15.393677 19.825673 +5328 1367 6 0 2.007574 -16.086893 18.910154 +5329 1367 4 0 2.169938 -15.300051 18.371811 +5330 1367 4 0 1.765349 -16.777501 18.309170 +5331 1368 6 0 -1.731416 -1.209658 -17.616026 +5332 1368 4 0 -1.627324 -2.121913 -17.876677 +5333 1368 4 0 -0.897064 -0.759027 -17.856313 +5334 1369 6 0 -7.458988 -9.905611 -19.067646 +5335 1369 4 0 -7.612323 -9.236466 -18.379766 +5336 1369 4 0 -6.775597 -10.433737 -18.660285 +5337 1370 6 0 24.628885 -15.762187 -8.892475 +5338 1370 4 0 24.465618 -16.362594 -8.154270 +5339 1370 4 0 25.428263 -15.265529 -8.789821 +5340 1371 6 0 21.341678 17.087622 -2.433709 +5341 1371 4 0 22.027154 16.590055 -2.017304 +5342 1371 4 0 20.972791 17.595736 -1.703682 +5343 1372 6 0 11.041731 -1.458544 17.027146 +5344 1372 4 0 11.616990 -0.777488 17.323484 +5345 1372 4 0 11.529032 -2.030322 16.345409 +5346 1373 6 0 20.352182 -20.640448 -2.038220 +5347 1373 4 0 20.706451 -20.927732 -2.854198 +5348 1373 4 0 21.078721 -20.655585 -1.410115 +5349 1374 6 0 2.118915 -12.215325 -19.313844 +5350 1374 4 0 1.412292 -12.890446 -19.223921 +5351 1374 4 0 2.971726 -12.642687 -19.466619 +5352 1375 6 0 -18.234007 -11.608978 -6.453902 +5353 1375 4 0 -18.824060 -11.919205 -5.748304 +5354 1375 4 0 -17.399503 -12.148958 -6.321644 +5355 1376 6 0 12.956287 4.319222 -3.994225 +5356 1376 4 0 12.213046 3.674862 -3.908399 +5357 1376 4 0 12.579678 5.119154 -3.559136 +5358 1377 6 0 -16.653199 5.258818 18.455342 +5359 1377 4 0 -17.496007 5.121615 18.892108 +5360 1377 4 0 -16.041443 5.030868 19.126227 +5361 1378 6 0 10.499124 9.233410 -20.179160 +5362 1378 4 0 10.147585 9.358107 -19.280974 +5363 1378 4 0 11.442853 9.276973 -20.041862 +5364 1379 6 0 0.510441 -0.870953 17.320417 +5365 1379 4 0 1.102755 -1.566191 17.515002 +5366 1379 4 0 0.955429 -0.019852 17.557716 +5367 1380 6 0 4.110276 5.067141 6.431077 +5368 1380 4 0 4.761963 4.437776 6.681941 +5369 1380 4 0 4.337595 5.795548 6.948690 +5370 1381 6 0 11.452671 -16.505838 0.173069 +5371 1381 4 0 11.303683 -15.607972 0.510340 +5372 1381 4 0 12.391250 -16.653982 0.330533 +5373 1382 6 0 7.430077 -20.350208 8.105888 +5374 1382 4 0 7.675587 -20.672677 7.187383 +5375 1382 4 0 8.248925 -20.047358 8.520026 +5376 1383 6 0 -7.400434 16.364237 -16.666884 +5377 1383 4 0 -8.382471 16.160840 -16.727806 +5378 1383 4 0 -7.133812 16.815236 -17.541828 +5379 1384 6 0 -24.060814 19.512535 -2.061658 +5380 1384 4 0 -23.130977 19.418843 -1.893643 +5381 1384 4 0 -24.267554 20.363324 -2.551066 +5382 1385 6 0 20.387077 -17.871252 -2.506384 +5383 1385 4 0 19.459013 -17.739929 -2.640716 +5384 1385 4 0 20.424417 -18.802885 -2.422640 +5385 1386 6 0 -9.102927 -20.662897 -0.744511 +5386 1386 4 0 -8.351458 -20.647416 -0.154773 +5387 1386 4 0 -8.808769 -19.943254 -1.313754 +5388 1387 6 0 -22.416841 -13.711743 -11.454147 +5389 1387 4 0 -22.023904 -14.600414 -11.267420 +5390 1387 4 0 -21.766795 -13.100859 -11.064675 +5391 1388 6 0 18.020659 1.320207 -14.873666 +5392 1388 4 0 17.072103 1.602050 -14.789845 +5393 1388 4 0 18.329426 1.503733 -13.971877 +5394 1389 6 0 -15.611967 -16.933927 -20.034244 +5395 1389 4 0 -15.697544 -15.974880 -19.912529 +5396 1389 4 0 -16.463764 -17.241305 -19.666078 +5397 1390 6 0 -21.399563 -20.604313 -19.819242 +5398 1390 4 0 -22.286272 -20.451053 -20.149900 +5399 1390 4 0 -20.960242 -19.767241 -20.062136 +5400 1391 6 0 -14.873799 15.000585 15.755334 +5401 1391 4 0 -15.665375 14.566463 15.276438 +5402 1391 4 0 -15.221469 15.704608 16.223975 +5403 1392 6 0 -22.283717 17.924070 6.363117 +5404 1392 4 0 -22.326943 17.328611 7.088360 +5405 1392 4 0 -22.769780 17.540247 5.616208 +5406 1393 6 0 -4.518256 15.930815 -10.776370 +5407 1393 4 0 -3.722298 16.148281 -11.175263 +5408 1393 4 0 -4.440115 15.005875 -10.441712 +5409 1394 6 0 23.829242 -12.577808 -10.269253 +5410 1394 4 0 23.709620 -12.211859 -11.148216 +5411 1394 4 0 24.681269 -13.072156 -10.250620 +5412 1395 6 0 25.052401 -0.262291 -3.629356 +5413 1395 4 0 25.651051 -0.543026 -4.364585 +5414 1395 4 0 24.527612 0.474703 -4.021632 +5415 1396 6 0 14.329934 -16.440730 7.995977 +5416 1396 4 0 15.030052 -16.157725 7.466301 +5417 1396 4 0 13.674876 -16.863377 7.389073 +5418 1397 6 0 17.211657 20.746652 5.342912 +5419 1397 4 0 17.565761 20.264477 4.651199 +5420 1397 4 0 17.675222 21.576262 5.214762 +5421 1398 6 0 18.857835 10.961021 -18.198746 +5422 1398 4 0 18.582121 10.331224 -18.896135 +5423 1398 4 0 18.706900 11.843177 -18.451427 +5424 1399 6 0 7.806576 -0.529506 11.040094 +5425 1399 4 0 8.004288 -1.400200 11.405855 +5426 1399 4 0 8.516912 0.066000 11.339425 +5427 1400 6 0 -6.293411 -18.726760 -7.845237 +5428 1400 4 0 -6.910802 -18.996812 -8.589964 +5429 1400 4 0 -5.423066 -18.680010 -8.240732 +5430 1401 6 0 -1.265386 -18.351217 15.342196 +5431 1401 4 0 -0.978536 -17.941389 14.498149 +5432 1401 4 0 -1.776754 -19.060650 14.957444 +5433 1402 6 0 22.240898 5.630349 9.837319 +5434 1402 4 0 21.800731 4.901204 9.365178 +5435 1402 4 0 22.570414 6.163537 9.075972 +5436 1403 6 0 -21.322343 8.388055 9.072770 +5437 1403 4 0 -22.042357 8.964988 9.320991 +5438 1403 4 0 -21.568690 8.084477 8.201200 +5439 1404 6 0 -7.671244 -4.189475 20.344117 +5440 1404 4 0 -7.419567 -4.322104 19.418696 +5441 1404 4 0 -8.363860 -4.824728 20.370282 +5442 1405 6 0 -24.129456 16.739076 10.610161 +5443 1405 4 0 -24.547205 17.167468 11.404792 +5444 1405 4 0 -24.468711 15.757636 10.582819 +5445 1406 6 0 -6.867333 -14.186985 10.119152 +5446 1406 4 0 -6.049023 -14.321450 10.601875 +5447 1406 4 0 -7.023306 -14.804381 9.421465 +5448 1407 6 0 27.346506 -3.270333 -16.312802 +5449 1407 4 0 28.255175 -3.592935 -16.275175 +5450 1407 4 0 27.317511 -2.474622 -16.807450 +5451 1408 6 0 -21.641506 5.727852 -20.459813 +5452 1408 4 0 -22.279373 6.214532 -21.053396 +5453 1408 4 0 -20.775787 6.025886 -20.684218 +5454 1409 6 0 25.309710 5.144361 4.524619 +5455 1409 4 0 25.816635 5.036211 5.343240 +5456 1409 4 0 24.410878 4.895458 4.808645 +5457 1410 6 0 -14.509617 -6.262805 19.159506 +5458 1410 4 0 -14.342716 -6.722944 19.988985 +5459 1410 4 0 -14.602416 -5.323286 19.288859 +5460 1411 6 0 -5.343448 -11.274271 19.025798 +5461 1411 4 0 -4.940638 -11.918950 18.424498 +5462 1411 4 0 -5.498793 -11.715720 19.830266 +5463 1412 6 0 -12.848588 -13.590248 17.033609 +5464 1412 4 0 -13.088575 -13.796556 16.123304 +5465 1412 4 0 -11.991420 -14.074390 17.232742 +5466 1413 6 0 -7.289082 -17.381003 -5.549847 +5467 1413 4 0 -8.038865 -17.962440 -5.504293 +5468 1413 4 0 -6.970028 -17.592513 -6.445260 +5469 1414 6 0 19.348721 -14.932661 19.813219 +5470 1414 4 0 19.577232 -15.858745 19.765206 +5471 1414 4 0 18.713188 -14.720751 20.514547 +5472 1415 6 0 -7.930616 -15.106164 -4.397641 +5473 1415 4 0 -8.445836 -14.519877 -4.885728 +5474 1415 4 0 -7.532499 -15.797439 -4.932460 +5475 1416 6 0 9.305997 -17.229888 -1.625877 +5476 1416 4 0 9.781891 -17.999835 -2.038321 +5477 1416 4 0 10.027236 -16.701835 -1.179404 +5478 1417 6 0 14.485547 17.913855 14.273541 +5479 1417 4 0 13.775573 18.190913 13.687091 +5480 1417 4 0 15.292649 17.853242 13.696917 +5481 1418 6 0 -17.856749 -3.239166 18.728922 +5482 1418 4 0 -18.264266 -2.371813 18.585117 +5483 1418 4 0 -17.320266 -3.326693 17.906655 +5484 1419 6 0 11.415319 5.923359 -20.462324 +5485 1419 4 0 12.034713 5.464442 -19.848871 +5486 1419 4 0 10.982818 5.221175 -20.955049 +5487 1420 6 0 4.246715 -11.198844 16.227140 +5488 1420 4 0 4.054406 -10.449224 15.720401 +5489 1420 4 0 3.729643 -11.076561 16.998845 +5490 1421 6 0 17.668887 16.010513 -14.839435 +5491 1421 4 0 17.475048 15.032227 -14.810123 +5492 1421 4 0 17.201356 16.387530 -15.640949 +5493 1422 6 0 -18.492111 8.644500 -1.484673 +5494 1422 4 0 -18.325091 9.560921 -1.252627 +5495 1422 4 0 -19.325787 8.367546 -1.121513 +5496 1423 6 0 13.610401 12.947630 3.013371 +5497 1423 4 0 13.281039 12.533993 3.856655 +5498 1423 4 0 14.367204 13.456810 3.354976 +5499 1424 6 0 -16.423725 20.151070 -20.282392 +5500 1424 4 0 -15.764964 20.343494 -20.952998 +5501 1424 4 0 -17.250142 20.198658 -20.732026 +5502 1425 6 0 -3.989847 10.270724 -11.073966 +5503 1425 4 0 -3.495466 11.034119 -11.283995 +5504 1425 4 0 -4.624991 10.165649 -11.788271 +5505 1426 6 0 16.276806 2.440391 -0.575792 +5506 1426 4 0 15.765940 1.689695 -0.443195 +5507 1426 4 0 16.230870 2.461846 -1.548388 +5508 1427 6 0 16.582337 4.961920 -0.018366 +5509 1427 4 0 16.750405 4.953804 0.881833 +5510 1427 4 0 16.382476 4.092139 -0.296219 +5511 1428 6 0 -16.776801 -4.258809 -20.926631 +5512 1428 4 0 -16.876778 -3.694234 -21.711494 +5513 1428 4 0 -15.815010 -4.231038 -20.634779 +5514 1429 6 0 27.306315 1.909319 15.774251 +5515 1429 4 0 27.528797 1.213633 15.174474 +5516 1429 4 0 26.309168 1.894233 15.827646 +5517 1430 6 0 -25.977063 12.434586 -4.101907 +5518 1430 4 0 -25.419677 13.227991 -4.057872 +5519 1430 4 0 -25.558038 11.886611 -3.392245 +5520 1431 6 0 -8.917537 20.162429 18.906910 +5521 1431 4 0 -9.817722 20.516050 18.889155 +5522 1431 4 0 -8.402992 20.765622 18.322054 +5523 1432 6 0 2.036338 -3.225452 18.493289 +5524 1432 4 0 2.815627 -3.223614 19.047224 +5525 1432 4 0 1.451253 -3.554309 19.176609 +5526 1433 6 0 -10.943111 -16.939296 -15.943963 +5527 1433 4 0 -10.715338 -17.873691 -15.814810 +5528 1433 4 0 -11.411581 -16.839878 -16.774067 +5529 1434 6 0 5.983465 -15.296272 4.531445 +5530 1434 4 0 6.553908 -14.747320 5.130885 +5531 1434 4 0 6.297291 -16.216179 4.672680 +5532 1435 6 0 0.087877 -18.701863 10.933978 +5533 1435 4 0 0.685292 -18.178478 10.372593 +5534 1435 4 0 0.721975 -19.147274 11.528158 +5535 1436 6 0 -15.867197 20.628171 12.879631 +5536 1436 4 0 -14.941749 20.909539 13.127416 +5537 1436 4 0 -16.061214 21.005786 12.011063 +5538 1437 6 0 -15.031464 -1.955849 18.854814 +5539 1437 4 0 -15.381408 -1.375187 18.132775 +5540 1437 4 0 -15.567308 -1.774457 19.596007 +5541 1438 6 0 -5.713639 -18.898958 -11.393727 +5542 1438 4 0 -5.561092 -18.122829 -11.901780 +5543 1438 4 0 -5.027945 -19.039448 -10.715374 +5544 1439 6 0 10.351785 2.342628 9.137608 +5545 1439 4 0 10.219354 1.517524 8.764529 +5546 1439 4 0 9.579584 2.957546 9.024779 +5547 1440 6 0 9.614533 -0.976089 19.746830 +5548 1440 4 0 9.631955 -1.223467 18.785924 +5549 1440 4 0 10.037560 -1.819567 20.145752 +5550 1441 6 0 -25.737514 5.101092 17.496072 +5551 1441 4 0 -25.949189 4.771339 16.619275 +5552 1441 4 0 -25.460497 6.029342 17.333464 +5553 1442 6 0 27.098530 15.410179 3.235558 +5554 1442 4 0 27.365221 16.280617 3.273489 +5555 1442 4 0 27.777628 14.851248 3.682250 +5556 1443 6 0 -22.145578 -2.524811 -16.789026 +5557 1443 4 0 -22.476890 -1.687774 -16.973175 +5558 1443 4 0 -22.545487 -2.678464 -15.881093 +5559 1444 6 0 -20.038660 7.882073 -10.677168 +5560 1444 4 0 -20.786353 8.456789 -10.411968 +5561 1444 4 0 -20.303885 6.997195 -10.661212 +5562 1445 6 0 6.124673 -5.149502 -15.761404 +5563 1445 4 0 6.612667 -4.434874 -15.249053 +5564 1445 4 0 6.646658 -5.246066 -16.553355 +5565 1446 6 0 6.017362 -16.085801 -17.806752 +5566 1446 4 0 6.270539 -16.458116 -16.921098 +5567 1446 4 0 5.250388 -15.542937 -17.506389 +5568 1447 6 0 -9.374031 -17.523242 2.545572 +5569 1447 4 0 -8.487532 -17.678151 2.185352 +5570 1447 4 0 -9.361698 -17.695772 3.484410 +5571 1448 6 0 15.510564 11.705332 -9.223052 +5572 1448 4 0 15.764354 12.551003 -8.768718 +5573 1448 4 0 14.956013 11.971918 -9.941944 +5574 1449 6 0 -8.575937 17.703676 -4.431665 +5575 1449 4 0 -8.405924 17.883222 -3.539392 +5576 1449 4 0 -8.969679 16.778001 -4.495229 +5577 1450 6 0 -15.277037 20.916980 18.527990 +5578 1450 4 0 -14.557049 20.578200 18.029786 +5579 1450 4 0 -14.784644 21.516499 19.154300 +5580 1451 6 0 23.805081 -13.876618 -5.245218 +5581 1451 4 0 23.301003 -14.539959 -4.743943 +5582 1451 4 0 23.699048 -13.156658 -4.566103 +5583 1452 6 0 23.235009 0.659798 -11.019427 +5584 1452 4 0 23.356235 -0.020938 -10.331928 +5585 1452 4 0 23.922180 0.433479 -11.687400 +5586 1453 6 0 -17.846164 6.890268 -13.615475 +5587 1453 4 0 -18.227474 6.233852 -12.960353 +5588 1453 4 0 -17.502560 7.653333 -13.062645 +5589 1454 6 0 3.237690 6.611110 12.384611 +5590 1454 4 0 2.939622 6.791701 11.472608 +5591 1454 4 0 3.597050 5.706217 12.314107 +5592 1455 6 0 12.621261 19.151311 -10.788464 +5593 1455 4 0 12.568861 18.191071 -10.482080 +5594 1455 4 0 12.304890 19.095240 -11.710548 +5595 1456 6 0 15.189541 -3.590616 -0.359174 +5596 1456 4 0 15.402717 -3.225037 -1.223302 +5597 1456 4 0 15.977001 -4.068104 -0.090059 +5598 1457 6 0 -5.355594 -8.568333 19.641427 +5599 1457 4 0 -6.310615 -8.510356 19.969721 +5600 1457 4 0 -5.329970 -9.512642 19.277800 +5601 1458 6 0 6.365722 2.783749 -12.009649 +5602 1458 4 0 6.365749 3.750417 -12.183807 +5603 1458 4 0 5.965929 2.688579 -11.148102 +5604 1459 6 0 13.169614 -10.142007 -11.634557 +5605 1459 4 0 12.793149 -9.899166 -12.523960 +5606 1459 4 0 12.998542 -11.088881 -11.478349 +5607 1460 6 0 -22.674956 -9.666699 -16.999652 +5608 1460 4 0 -22.331812 -10.389941 -17.591652 +5609 1460 4 0 -22.299353 -8.906035 -17.478779 +5610 1461 6 0 -12.989714 14.562837 -4.489024 +5611 1461 4 0 -13.895012 14.141511 -4.581855 +5612 1461 4 0 -12.287469 13.906583 -4.558336 +5613 1462 6 0 11.889244 7.234465 -14.239933 +5614 1462 4 0 11.841540 6.403022 -13.699089 +5615 1462 4 0 11.297036 7.163549 -15.011709 +5616 1463 6 0 14.205425 -4.375072 6.885349 +5617 1463 4 0 14.444785 -3.467494 6.828421 +5618 1463 4 0 14.540396 -4.824463 6.047265 +5619 1464 6 0 14.238877 -11.199937 -5.844240 +5620 1464 4 0 14.336897 -11.151845 -6.791045 +5621 1464 4 0 14.161965 -12.124432 -5.730368 +5622 1465 6 0 16.419881 -8.263494 5.499713 +5623 1465 4 0 16.888087 -7.438031 5.380531 +5624 1465 4 0 16.938306 -8.794006 4.823282 +5625 1466 6 0 23.034740 17.150944 7.848428 +5626 1466 4 0 22.252785 17.491282 7.376162 +5627 1466 4 0 23.353461 18.012155 8.262400 +5628 1467 6 0 -3.250988 20.899767 -14.198279 +5629 1467 4 0 -3.536111 20.593819 -13.311678 +5630 1467 4 0 -2.238291 20.969313 -14.122183 +5631 1468 6 0 2.193864 -14.308738 -13.102332 +5632 1468 4 0 2.901120 -13.646677 -13.123464 +5633 1468 4 0 2.577942 -14.916050 -13.753214 +5634 1469 6 0 17.220878 14.344503 7.704982 +5635 1469 4 0 16.741444 14.217801 8.575501 +5636 1469 4 0 17.724190 13.489371 7.542738 +5637 1470 6 0 12.455324 8.941935 14.709279 +5638 1470 4 0 12.329532 7.965607 14.651692 +5639 1470 4 0 13.090154 8.950686 15.466000 +5640 1471 6 0 -12.573656 -3.849306 9.754915 +5641 1471 4 0 -11.774505 -4.059630 10.198532 +5642 1471 4 0 -13.177238 -3.385101 10.384533 +5643 1472 6 0 -3.160920 -11.557605 -13.637501 +5644 1472 4 0 -3.513108 -10.729378 -13.902906 +5645 1472 4 0 -2.423129 -11.640209 -14.202523 +5646 1473 6 0 0.173291 18.530627 4.588870 +5647 1473 4 0 0.366643 18.095665 3.775805 +5648 1473 4 0 0.528197 17.966406 5.256043 +5649 1474 6 0 -20.835824 0.618182 3.010345 +5650 1474 4 0 -21.714394 0.910710 2.556806 +5651 1474 4 0 -20.176134 1.018899 2.465288 +5652 1475 6 0 -5.819679 17.244537 -18.746988 +5653 1475 4 0 -4.895225 17.522561 -18.912967 +5654 1475 4 0 -5.875069 16.339088 -19.152521 +5655 1476 6 0 23.150756 6.504841 -18.289508 +5656 1476 4 0 23.185422 7.145655 -19.092606 +5657 1476 4 0 22.256620 6.278150 -18.023232 +5658 1477 6 0 11.077729 -17.823438 -12.637425 +5659 1477 4 0 11.305129 -18.418523 -13.399570 +5660 1477 4 0 11.718877 -18.045413 -11.962474 +5661 1478 6 0 -18.440076 4.089219 -20.233130 +5662 1478 4 0 -18.592368 4.508225 -19.389005 +5663 1478 4 0 -18.684565 4.808320 -20.850382 +5664 1479 6 0 -23.687711 -16.266769 -17.315735 +5665 1479 4 0 -23.698996 -15.631059 -16.558060 +5666 1479 4 0 -22.895860 -16.803598 -17.114489 +5667 1480 6 0 -12.383477 -18.880969 14.766217 +5668 1480 4 0 -12.124554 -18.562567 13.876588 +5669 1480 4 0 -11.797092 -18.625014 15.425543 +5670 1481 6 0 14.311125 11.668895 8.886321 +5671 1481 4 0 13.349519 11.381714 8.877659 +5672 1481 4 0 14.742001 11.037775 8.253125 +5673 1482 6 0 21.499156 2.133932 3.402465 +5674 1482 4 0 22.423113 2.229631 3.696856 +5675 1482 4 0 21.472059 1.349459 2.811378 +5676 1483 6 0 22.466695 -14.225899 -2.830703 +5677 1483 4 0 22.948700 -13.678947 -2.237715 +5678 1483 4 0 22.233121 -15.024736 -2.381007 +5679 1484 6 0 -17.714836 -8.402483 -11.856647 +5680 1484 4 0 -18.457906 -8.997855 -11.616200 +5681 1484 4 0 -16.950883 -8.800780 -11.389594 +5682 1485 6 0 -13.154395 20.875531 -1.901594 +5683 1485 4 0 -14.099007 20.684326 -1.676218 +5684 1485 4 0 -12.776951 21.273644 -1.137151 +5685 1486 6 0 10.058528 -10.804893 -19.659672 +5686 1486 4 0 10.024212 -10.944820 -18.690131 +5687 1486 4 0 9.262507 -10.364334 -19.857371 +5688 1487 6 0 24.206149 -6.530273 6.651758 +5689 1487 4 0 23.298132 -6.779979 6.469418 +5690 1487 4 0 24.435964 -6.280937 7.532499 +5691 1488 6 0 -0.769539 13.370711 18.754750 +5692 1488 4 0 -1.399471 13.295369 18.002641 +5693 1488 4 0 -1.282846 13.503163 19.578024 +5694 1489 6 0 12.489489 -16.824385 17.447916 +5695 1489 4 0 12.052693 -16.106503 17.961272 +5696 1489 4 0 12.979700 -17.322750 18.119196 +5697 1490 6 0 22.391449 -7.947848 18.889943 +5698 1490 4 0 22.777744 -7.558109 18.080179 +5699 1490 4 0 21.582771 -8.396208 18.531967 +5700 1491 6 0 24.444175 12.917036 5.832052 +5701 1491 4 0 24.511172 13.835523 6.045623 +5702 1491 4 0 23.797849 12.920835 5.128292 +5703 1492 6 0 13.404469 11.238393 -13.308046 +5704 1492 4 0 13.712479 10.420163 -13.763288 +5705 1492 4 0 12.688252 10.856036 -12.768343 +5706 1493 6 0 20.968072 -7.216860 -20.774585 +5707 1493 4 0 21.500932 -6.797898 -20.085206 +5708 1493 4 0 21.506305 -7.089210 -21.583804 +5709 1494 6 0 -17.856365 -7.389334 -15.755928 +5710 1494 4 0 -17.779099 -7.695814 -16.681187 +5711 1494 4 0 -17.454778 -6.543622 -15.646073 +5712 1495 6 0 -5.627767 -14.791821 -18.435422 +5713 1495 4 0 -6.515410 -14.559760 -18.598093 +5714 1495 4 0 -5.318446 -15.164242 -19.264852 +5715 1496 6 0 2.656405 -0.176950 -14.262302 +5716 1496 4 0 2.534896 -0.323212 -15.231477 +5717 1496 4 0 3.447328 0.360291 -14.052654 +5718 1497 6 0 -26.736151 5.658653 0.855763 +5719 1497 4 0 -25.877403 5.925247 0.635025 +5720 1497 4 0 -26.753355 4.689074 0.832778 +5721 1498 6 0 -8.652434 19.947608 -11.265190 +5722 1498 4 0 -8.042720 19.800388 -11.992106 +5723 1498 4 0 -8.377500 20.767189 -10.778181 +5724 1499 6 0 3.645772 -16.139913 -20.354692 +5725 1499 4 0 3.723824 -17.050742 -20.075710 +5726 1499 4 0 3.139128 -16.051183 -21.192748 +5727 1500 6 0 2.751218 19.096756 -12.278055 +5728 1500 4 0 3.589100 18.687062 -12.053483 +5729 1500 4 0 2.907368 19.432717 -13.149786 +5730 1501 6 0 11.895340 -6.132227 -17.645418 +5731 1501 4 0 12.272195 -6.990163 -17.614612 +5732 1501 4 0 12.522919 -5.533948 -18.055179 +5733 1502 6 0 -2.649062 -11.532506 14.303842 +5734 1502 4 0 -2.171418 -10.788172 14.727655 +5735 1502 4 0 -3.444108 -11.118837 14.016513 +5736 1503 6 0 0.083662 -17.539610 -9.794080 +5737 1503 4 0 0.925887 -17.184555 -10.098352 +5738 1503 4 0 0.064605 -17.230344 -8.891803 +5739 1504 6 0 -23.495878 -18.174487 -3.096140 +5740 1504 4 0 -23.397765 -18.550076 -2.214521 +5741 1504 4 0 -23.991094 -18.883389 -3.445375 +5742 1505 6 0 -2.870665 -20.299637 3.495989 +5743 1505 4 0 -2.025936 -20.316623 2.990845 +5744 1505 4 0 -2.887489 -19.480343 3.955086 +5745 1506 6 0 -23.237675 -7.968838 11.601659 +5746 1506 4 0 -23.646989 -7.664067 12.406714 +5747 1506 4 0 -22.916603 -8.875240 11.799352 +5748 1507 6 0 7.034857 17.671926 16.668461 +5749 1507 4 0 6.910916 17.021535 17.353714 +5750 1507 4 0 7.298259 17.003434 15.931912 +5751 1508 6 0 -3.135847 -0.037211 -19.720235 +5752 1508 4 0 -2.687204 -0.465713 -19.004635 +5753 1508 4 0 -3.883189 -0.596483 -19.830762 +5754 1509 6 0 -4.116282 9.933467 -15.972432 +5755 1509 4 0 -4.382486 10.098448 -16.874934 +5756 1509 4 0 -3.276586 10.322141 -15.857331 +5757 1510 6 0 9.001776 -2.037724 13.845066 +5758 1510 4 0 9.557925 -2.591779 14.385639 +5759 1510 4 0 8.707709 -2.619965 13.087293 +5760 1511 6 0 -14.291358 -16.357375 0.136544 +5761 1511 4 0 -14.623350 -16.546154 1.040530 +5762 1511 4 0 -13.337866 -16.185545 0.296606 +5763 1512 6 0 -8.307685 7.831957 -19.053875 +5764 1512 4 0 -8.711204 7.493084 -18.235703 +5765 1512 4 0 -7.891044 8.658915 -18.717398 +5766 1513 6 0 20.987462 12.906787 9.958048 +5767 1513 4 0 21.435148 12.305385 10.516693 +5768 1513 4 0 21.330938 12.746483 9.110616 +5769 1514 6 0 24.845310 0.514421 -13.306188 +5770 1514 4 0 24.715007 0.071792 -14.155230 +5771 1514 4 0 25.044193 1.459969 -13.507156 +5772 1515 6 0 9.940414 -19.224463 8.285169 +5773 1515 4 0 10.344194 -19.951358 7.833443 +5774 1515 4 0 9.604359 -18.739761 7.480563 +5775 1516 6 0 -21.714063 9.254293 -18.084261 +5776 1516 4 0 -21.666348 10.112348 -18.429358 +5777 1516 4 0 -20.881272 8.819770 -18.352190 +5778 1517 6 0 -7.191585 20.361392 -7.614111 +5779 1517 4 0 -7.827974 20.909525 -8.157675 +5780 1517 4 0 -7.763622 19.592347 -7.497909 +5781 1518 6 0 7.492921 13.497090 -0.820023 +5782 1518 4 0 7.499014 13.132441 -1.738485 +5783 1518 4 0 8.327452 13.163732 -0.446731 +5784 1519 6 0 9.961122 -18.299786 1.611143 +5785 1519 4 0 10.342232 -17.763270 0.893187 +5786 1519 4 0 9.632169 -19.079234 1.161105 +5787 1520 6 0 27.327916 14.167474 11.338410 +5788 1520 4 0 27.056501 14.797382 10.658423 +5789 1520 4 0 26.973899 14.521349 12.195671 +5790 1521 6 0 25.841592 -10.137073 17.886653 +5791 1521 4 0 26.549845 -10.744837 17.581594 +5792 1521 4 0 26.136382 -9.297891 18.115726 +5793 1522 6 0 -26.484582 -7.570640 0.220618 +5794 1522 4 0 -25.957551 -8.034324 0.885908 +5795 1522 4 0 -27.278989 -8.010770 0.092994 +5796 1523 6 0 -15.507886 -14.234567 -19.185887 +5797 1523 4 0 -16.428047 -14.062315 -19.146906 +5798 1523 4 0 -15.141693 -13.449414 -19.706261 +5799 1524 6 0 19.398920 -6.403154 -4.265132 +5800 1524 4 0 18.793855 -6.981438 -4.692992 +5801 1524 4 0 20.078652 -7.004436 -3.840081 +5802 1525 6 0 -14.727762 -11.689529 10.739544 +5803 1525 4 0 -15.118028 -11.677285 11.572442 +5804 1525 4 0 -15.363496 -11.211251 10.219303 +5805 1526 6 0 -10.164834 -13.429658 -5.821471 +5806 1526 4 0 -10.898604 -13.964191 -5.277591 +5807 1526 4 0 -10.251403 -12.561784 -5.414595 +5808 1527 6 0 17.930460 13.937399 -7.632026 +5809 1527 4 0 17.350338 14.712619 -7.873504 +5810 1527 4 0 17.573194 13.449935 -6.914302 +5811 1528 6 0 22.771963 11.789723 -15.991841 +5812 1528 4 0 22.407892 10.960756 -15.803516 +5813 1528 4 0 23.728244 11.844157 -15.970852 +5814 1529 6 0 -27.022171 -9.935535 -1.551898 +5815 1529 4 0 -26.648537 -9.163079 -1.958000 +5816 1529 4 0 -27.147733 -10.561946 -2.264608 +5817 1530 6 0 -25.271131 5.141749 -12.209736 +5818 1530 4 0 -25.693109 5.472145 -11.442865 +5819 1530 4 0 -24.406635 4.695966 -11.908321 +5820 1531 6 0 3.108121 -20.428019 2.767972 +5821 1531 4 0 2.883888 -19.516039 2.682074 +5822 1531 4 0 2.524652 -20.911289 2.151071 +5823 1532 6 0 13.645477 -11.248379 -2.168699 +5824 1532 4 0 14.495812 -10.982395 -1.919860 +5825 1532 4 0 13.602764 -10.946321 -3.131943 +5826 1533 6 0 -15.802101 -18.826697 -13.646876 +5827 1533 4 0 -15.629728 -18.718460 -14.634045 +5828 1533 4 0 -16.312937 -19.607220 -13.527508 +5829 1534 6 0 16.994190 -18.162501 0.782551 +5830 1534 4 0 16.183512 -18.419341 1.225144 +5831 1534 4 0 17.692383 -18.785460 1.112617 +5832 1535 6 0 0.346250 -8.244458 13.026523 +5833 1535 4 0 -0.056728 -8.794215 13.707605 +5834 1535 4 0 0.196186 -7.378794 13.513605 +5835 1536 6 0 -5.876633 -1.250758 16.950150 +5836 1536 4 0 -5.897139 -0.851532 16.048115 +5837 1536 4 0 -6.813697 -1.215101 17.207829 +5838 1537 6 0 -2.852852 -1.916845 15.179008 +5839 1537 4 0 -3.068812 -1.830206 16.106831 +5840 1537 4 0 -3.640384 -2.245054 14.797756 +5841 1538 6 0 -25.940841 -4.816621 -4.070316 +5842 1538 4 0 -25.207622 -5.264430 -3.620016 +5843 1538 4 0 -26.649933 -4.717697 -3.451686 +5844 1539 6 0 4.874827 1.473886 -14.337797 +5845 1539 4 0 5.189548 1.046518 -15.146140 +5846 1539 4 0 5.658759 1.677209 -13.804635 +5847 1540 6 0 -11.399492 -17.545168 -11.709535 +5848 1540 4 0 -10.632696 -17.968067 -12.065761 +5849 1540 4 0 -11.990484 -18.281339 -11.463174 +5850 1541 6 0 -21.235393 3.531686 -18.981903 +5851 1541 4 0 -20.811243 2.725219 -19.355158 +5852 1541 4 0 -21.330003 4.199180 -19.707403 +5853 1542 6 0 19.884738 13.457886 -16.503712 +5854 1542 4 0 20.546443 14.081854 -16.252605 +5855 1542 4 0 19.863325 12.725299 -15.889148 +5856 1543 6 0 -7.613490 -18.734979 -2.286157 +5857 1543 4 0 -7.224353 -19.383742 -2.870642 +5858 1543 4 0 -7.258594 -17.884019 -2.571812 +5859 1544 6 0 20.179247 18.669512 -9.520770 +5860 1544 4 0 19.745104 19.383705 -9.949059 +5861 1544 4 0 21.106271 18.888549 -9.619590 +5862 1545 6 0 0.469489 5.800556 -16.240608 +5863 1545 4 0 0.192512 6.630216 -16.696807 +5864 1545 4 0 0.599388 6.155641 -15.380452 +5865 1546 6 0 6.877961 19.550178 -9.988757 +5866 1546 4 0 6.368993 19.971864 -9.244013 +5867 1546 4 0 6.518231 19.965222 -10.851986 +5868 1547 6 0 6.720059 20.276251 -3.381777 +5869 1547 4 0 5.891426 20.783054 -3.333942 +5870 1547 4 0 6.919774 20.067477 -2.473444 +5871 1548 6 0 22.013148 -15.969229 12.266907 +5872 1548 4 0 21.416898 -16.484884 11.623216 +5873 1548 4 0 22.857478 -16.358079 12.000305 +5874 1549 6 0 -15.694438 7.944675 2.647767 +5875 1549 4 0 -15.370792 7.967212 3.559417 +5876 1549 4 0 -15.467715 7.066496 2.332465 +5877 1550 6 0 -25.016666 -19.872056 -7.507112 +5878 1550 4 0 -24.041389 -19.998563 -7.476847 +5879 1550 4 0 -25.261819 -19.677629 -8.458935 +5880 1551 6 0 -17.404966 16.289559 0.378862 +5881 1551 4 0 -17.816202 15.395796 0.469359 +5882 1551 4 0 -16.592061 16.078371 -0.128857 +5883 1552 6 0 11.719854 13.896915 -20.007550 +5884 1552 4 0 11.762017 13.509054 -20.946443 +5885 1552 4 0 11.730057 13.211150 -19.340581 +5886 1553 6 0 -21.635289 10.922735 -14.289364 +5887 1553 4 0 -22.250180 11.585121 -14.648600 +5888 1553 4 0 -20.920683 10.786571 -14.961527 +5889 1554 6 0 -24.042065 -5.374879 10.098466 +5890 1554 4 0 -23.939428 -5.512490 9.105496 +5891 1554 4 0 -23.970753 -6.321333 10.460122 +5892 1555 6 0 -9.411597 6.559490 -16.669992 +5893 1555 4 0 -10.312323 6.551498 -16.403482 +5894 1555 4 0 -9.011995 5.640085 -16.634798 +5895 1556 6 0 9.530893 -11.884062 12.046782 +5896 1556 4 0 9.879650 -11.398694 11.280896 +5897 1556 4 0 9.261341 -11.231618 12.651989 +5898 1557 6 0 -1.911349 -16.933894 1.374617 +5899 1557 4 0 -2.219904 -17.739022 1.023023 +5900 1557 4 0 -1.747381 -16.334388 0.676612 +5901 1558 6 0 26.179381 -17.174136 0.502901 +5902 1558 4 0 25.703357 -17.150578 -0.364558 +5903 1558 4 0 25.879759 -16.529513 1.122222 +5904 1559 6 0 23.006008 2.418768 11.548952 +5905 1559 4 0 22.123244 2.196506 11.872833 +5906 1559 4 0 22.916266 2.423276 10.570078 +5907 1560 6 0 -25.061378 12.895337 -10.920642 +5908 1560 4 0 -24.236859 12.794849 -10.380539 +5909 1560 4 0 -24.844809 13.124176 -11.856801 +5910 1561 6 0 24.065450 16.186345 -1.562209 +5911 1561 4 0 23.818077 16.816733 -0.921419 +5912 1561 4 0 24.446065 16.798992 -2.179306 +5913 1562 6 0 21.877525 -11.997066 12.743827 +5914 1562 4 0 21.110101 -12.307846 12.276099 +5915 1562 4 0 21.795852 -11.028569 12.668947 +5916 1563 6 0 -9.770390 12.275988 6.625277 +5917 1563 4 0 -9.540551 11.529014 6.118639 +5918 1563 4 0 -9.063347 12.943993 6.639152 +5919 1564 6 0 7.590434 -16.518614 -3.885689 +5920 1564 4 0 8.245405 -16.780602 -4.602660 +5921 1564 4 0 8.060783 -16.730529 -3.006396 +5922 1565 6 0 -8.819809 7.819937 16.686859 +5923 1565 4 0 -8.459184 7.862962 15.781131 +5924 1565 4 0 -8.333215 7.208627 17.206742 +5925 1566 6 0 -0.018770 12.851916 7.726452 +5926 1566 4 0 -0.018534 13.815629 7.654360 +5927 1566 4 0 -0.678950 12.568762 8.379340 +5928 1567 6 0 26.935998 -2.260542 -4.734090 +5929 1567 4 0 27.692757 -2.309847 -5.350797 +5930 1567 4 0 27.186636 -2.518573 -3.802021 +5931 1568 6 0 27.034878 8.922183 -3.893061 +5932 1568 4 0 26.315953 9.520583 -3.776301 +5933 1568 4 0 27.485194 9.316156 -4.684455 +5934 1569 6 0 8.051349 7.651612 -11.998393 +5935 1569 4 0 8.628507 7.928025 -11.260450 +5936 1569 4 0 7.748144 8.473350 -12.355271 +5937 1570 6 0 -27.116258 -14.053521 12.105107 +5938 1570 4 0 -27.545532 -13.197780 12.384888 +5939 1570 4 0 -26.358772 -13.875946 11.579879 +5940 1571 6 0 23.554783 -11.406323 -3.754207 +5941 1571 4 0 24.096179 -11.152033 -2.997418 +5942 1571 4 0 23.941749 -11.074873 -4.532762 +5943 1572 6 0 -6.910654 -17.603975 17.334387 +5944 1572 4 0 -7.702761 -17.167889 17.745512 +5945 1572 4 0 -6.836320 -17.171292 16.454588 +5946 1573 6 0 -16.492037 5.302939 -1.579501 +5947 1573 4 0 -16.042514 4.646869 -2.112816 +5948 1573 4 0 -15.801804 6.017062 -1.587499 +5949 1574 6 0 -23.756350 3.926953 -8.179925 +5950 1574 4 0 -23.195167 4.286584 -8.893370 +5951 1574 4 0 -23.460247 3.034235 -7.983373 +5952 1575 6 0 -13.747357 8.818643 -3.799589 +5953 1575 4 0 -13.952688 8.414506 -2.934484 +5954 1575 4 0 -13.853214 9.757832 -3.600478 +5955 1576 6 0 -1.628128 -12.816264 -17.331527 +5956 1576 4 0 -2.433523 -13.356344 -17.119883 +5957 1576 4 0 -2.044696 -11.950129 -17.560931 +5958 1577 6 0 -0.085635 15.544048 -1.201911 +5959 1577 4 0 -0.000781 16.405004 -1.546695 +5960 1577 4 0 -0.971991 15.289121 -0.919162 +5961 1578 6 0 -8.590554 17.067218 -10.033341 +5962 1578 4 0 -8.478641 17.979748 -10.381694 +5963 1578 4 0 -9.177179 16.660222 -10.710438 +5964 1579 6 0 -18.092032 -16.862277 -18.860686 +5965 1579 4 0 -17.787112 -16.936281 -17.986509 +5966 1579 4 0 -18.687545 -17.567560 -19.061403 +5967 1580 6 0 11.369215 4.413430 15.924887 +5968 1580 4 0 11.372520 3.624729 15.359827 +5969 1580 4 0 11.705477 5.119414 15.321428 +5970 1581 6 0 12.784492 7.071253 19.464041 +5971 1581 4 0 12.860418 6.279814 18.965525 +5972 1581 4 0 12.277088 6.716268 20.219705 +5973 1582 6 0 12.068135 -8.262908 17.552171 +5974 1582 4 0 11.944483 -7.791072 18.350772 +5975 1582 4 0 12.525141 -9.091659 17.770424 +5976 1583 6 0 10.241854 4.742923 2.559332 +5977 1583 4 0 9.423895 4.504759 2.987600 +5978 1583 4 0 10.968724 4.120073 2.820528 +5979 1584 6 0 4.587851 -5.032891 12.160556 +5980 1584 4 0 4.431505 -4.242508 12.621627 +5981 1584 4 0 5.402359 -4.988575 11.647199 +5982 1585 6 0 -24.230874 -6.577818 -16.070853 +5983 1585 4 0 -23.682020 -6.608606 -15.296098 +5984 1585 4 0 -25.097764 -7.040376 -15.909446 +5985 1586 6 0 20.182613 7.158966 1.874949 +5986 1586 4 0 20.915498 6.541606 2.146531 +5987 1586 4 0 20.710894 7.927513 1.477203 +5988 1587 6 0 21.755390 6.896132 -12.917138 +5989 1587 4 0 22.076449 7.236600 -12.089303 +5990 1587 4 0 22.525120 6.527089 -13.344666 +5991 1588 6 0 6.877822 -4.771079 6.941634 +5992 1588 4 0 7.368474 -3.917167 6.794895 +5993 1588 4 0 6.561555 -4.815923 7.876455 +5994 1589 6 0 -17.794941 18.359853 16.305117 +5995 1589 4 0 -18.421394 18.650198 16.927781 +5996 1589 4 0 -17.650629 19.254815 15.811542 +5997 1590 6 0 -2.602624 -16.412046 -10.596632 +5998 1590 4 0 -2.730413 -15.479270 -10.244360 +5999 1590 4 0 -1.636947 -16.665956 -10.610129 +6000 1591 6 0 3.935143 -2.077202 16.379950 +6001 1591 4 0 3.116180 -2.074570 16.871393 +6002 1591 4 0 4.258130 -3.011541 16.214763 +6003 1592 6 0 26.054987 14.635245 18.309718 +6004 1592 4 0 27.012144 14.531484 18.422001 +6005 1592 4 0 25.883129 15.612156 18.232382 +6006 1593 6 0 22.186055 -2.285036 -18.276384 +6007 1593 4 0 22.575561 -1.490206 -18.592190 +6008 1593 4 0 21.774977 -1.952262 -17.452519 +6009 1594 6 0 5.982701 12.874655 -19.536076 +6010 1594 4 0 6.160786 13.198075 -20.428652 +6011 1594 4 0 6.854019 12.668623 -19.180374 +6012 1595 6 0 -6.054158 -13.744402 -7.200732 +6013 1595 4 0 -6.689102 -14.438760 -7.467162 +6014 1595 4 0 -5.241683 -14.218938 -7.253580 +6015 1596 6 0 7.766648 -19.472206 -8.674412 +6016 1596 4 0 7.994143 -19.850740 -7.811770 +6017 1596 4 0 7.159819 -20.051349 -9.144842 +6018 1597 6 0 -13.899693 -2.310609 11.719170 +6019 1597 4 0 -14.293895 -1.540339 11.338780 +6020 1597 4 0 -13.136046 -1.840341 12.108102 +6021 1598 6 0 26.880118 -3.988040 -2.564260 +6022 1598 4 0 27.141785 -3.912376 -1.619664 +6023 1598 4 0 25.991507 -4.403119 -2.509330 +6024 1599 6 0 16.831698 -0.370079 16.786168 +6025 1599 4 0 17.550555 0.178386 16.456695 +6026 1599 4 0 17.096485 -0.465948 17.715552 +6027 1600 6 0 19.019953 8.994801 17.672825 +6028 1600 4 0 18.825567 9.927341 17.839722 +6029 1600 4 0 19.072225 8.455310 18.528449 +6030 1601 6 0 -23.890734 -17.531047 20.103131 +6031 1601 4 0 -24.410048 -17.249588 20.880036 +6032 1601 4 0 -23.243461 -16.838233 19.952601 +6033 1602 6 0 24.612082 6.311703 -14.314049 +6034 1602 4 0 24.685511 6.721117 -15.194578 +6035 1602 4 0 24.456182 5.357259 -14.330432 +6036 1603 6 0 11.630912 5.335794 8.212450 +6037 1603 4 0 10.744689 5.096999 8.355771 +6038 1603 4 0 11.632399 6.142908 7.660144 +6039 1604 6 0 16.482829 -7.676138 17.246704 +6040 1604 4 0 15.832973 -7.172968 16.764273 +6041 1604 4 0 17.323015 -7.087522 17.068424 +6042 1605 6 0 -14.246850 -1.445493 8.521283 +6043 1605 4 0 -14.965431 -1.234868 9.098827 +6044 1605 4 0 -14.565647 -2.243574 8.052945 +6045 1606 6 0 -12.243735 5.878745 14.287709 +6046 1606 4 0 -12.931194 5.878071 14.927194 +6047 1606 4 0 -12.476832 5.118118 13.758795 +6048 1607 6 0 14.365931 -20.845025 6.067181 +6049 1607 4 0 14.538057 -20.237448 6.808442 +6050 1607 4 0 15.204917 -21.078698 5.761047 +6051 1608 6 0 16.298718 -4.138023 18.121710 +6052 1608 4 0 15.424215 -3.680129 18.372722 +6053 1608 4 0 16.684549 -4.205202 19.001012 +6054 1609 6 0 -14.198508 -14.194772 -14.794207 +6055 1609 4 0 -13.444357 -14.590983 -14.343955 +6056 1609 4 0 -13.774495 -13.612371 -15.434882 +6057 1610 6 0 -10.030484 -15.925396 14.049869 +6058 1610 4 0 -9.661016 -16.753356 13.643301 +6059 1610 4 0 -9.506338 -15.169357 13.752939 +6060 1611 6 0 2.620657 -7.959507 -20.667278 +6061 1611 4 0 2.062110 -7.160386 -20.605865 +6062 1611 4 0 2.138798 -8.553220 -21.271787 +6063 1612 6 0 5.778060 4.436909 12.837835 +6064 1612 4 0 5.362329 3.721975 13.322111 +6065 1612 4 0 5.808629 5.246373 13.380366 +6066 1613 6 0 16.866472 5.920215 7.405820 +6067 1613 4 0 16.435352 5.086965 7.209575 +6068 1613 4 0 16.163833 6.543037 7.470100 +6069 1614 6 0 17.825944 -3.501642 -5.065436 +6070 1614 4 0 17.700510 -2.538825 -4.863235 +6071 1614 4 0 18.532466 -3.602326 -5.702852 +6072 1615 6 0 -11.681593 20.597292 5.432499 +6073 1615 4 0 -11.969564 21.510542 5.152859 +6074 1615 4 0 -12.562576 20.147115 5.430236 +6075 1616 6 0 21.531845 -18.609965 -11.465553 +6076 1616 4 0 21.036885 -18.970566 -10.752405 +6077 1616 4 0 20.911041 -18.252243 -12.167168 +6078 1617 6 0 0.249866 -13.875504 -5.737561 +6079 1617 4 0 1.053242 -14.152812 -5.334020 +6080 1617 4 0 0.540234 -13.078009 -6.238789 +6081 1618 6 0 3.047539 17.051565 11.568254 +6082 1618 4 0 3.164343 17.306128 12.474589 +6083 1618 4 0 2.524042 17.779795 11.213697 +6084 1619 6 0 24.178795 -4.873391 -17.954897 +6085 1619 4 0 23.609912 -4.083965 -18.078992 +6086 1619 4 0 24.401168 -4.923489 -16.992528 +6087 1620 6 0 3.954939 20.513379 -14.418517 +6088 1620 4 0 3.581046 20.093104 -15.154897 +6089 1620 4 0 3.811800 21.468596 -14.662255 +6090 1621 6 0 -0.149556 2.777227 -12.291758 +6091 1621 4 0 -0.121223 2.435369 -11.351012 +6092 1621 4 0 0.596183 3.441893 -12.318897 +6093 1622 6 0 27.193112 8.418341 -10.172198 +6094 1622 4 0 26.787164 8.259494 -11.042944 +6095 1622 4 0 27.410726 9.433106 -10.260356 +6096 1623 6 0 -24.022975 1.655208 -11.524687 +6097 1623 4 0 -24.291048 0.824835 -11.888466 +6098 1623 4 0 -24.881489 1.940641 -11.171341 +6099 1624 6 0 26.405280 -5.462847 -5.065504 +6100 1624 4 0 26.209462 -6.029181 -5.803215 +6101 1624 4 0 27.373218 -5.317034 -5.077630 +6102 1625 6 0 -3.690721 10.045789 -20.208648 +6103 1625 4 0 -4.248266 9.317998 -19.851069 +6104 1625 4 0 -2.834866 9.590938 -20.465215 +6105 1626 6 0 -2.559171 12.379195 -18.651596 +6106 1626 4 0 -3.295406 13.039384 -18.601178 +6107 1626 4 0 -2.957289 11.575659 -18.948915 +6108 1627 6 0 9.997514 -3.540058 20.611729 +6109 1627 4 0 9.428623 -3.673422 21.365363 +6110 1627 4 0 10.919581 -3.718379 20.892643 +6111 1628 6 0 22.711145 -8.644902 0.632604 +6112 1628 4 0 23.670226 -8.511619 0.628432 +6113 1628 4 0 22.493868 -9.498519 0.275412 +6114 1629 6 0 14.085903 -1.038370 -16.414394 +6115 1629 4 0 14.059869 -1.196217 -15.467296 +6116 1629 4 0 13.262318 -1.459953 -16.715075 +6117 1630 6 0 -12.216643 15.094727 14.953780 +6118 1630 4 0 -11.931679 15.769402 14.281719 +6119 1630 4 0 -13.149517 15.224147 15.123844 +6120 1631 6 0 -24.757277 7.231003 8.542276 +6121 1631 4 0 -24.784189 8.210199 8.450823 +6122 1631 4 0 -24.549551 6.922193 9.397707 +6123 1632 6 0 3.372929 19.847026 -0.606151 +6124 1632 4 0 3.191569 19.283633 -1.369340 +6125 1632 4 0 4.347642 20.010416 -0.683022 +6126 1633 6 0 8.872330 -16.761760 17.202410 +6127 1633 4 0 8.996558 -17.151460 16.293393 +6128 1633 4 0 9.700285 -17.024144 17.621618 +6129 1634 6 0 9.343569 14.953908 -19.877613 +6130 1634 4 0 9.005091 14.803515 -18.977870 +6131 1634 4 0 10.168474 14.477496 -19.931351 +6132 1635 6 0 2.034725 4.776928 20.854933 +6133 1635 4 0 2.700859 5.449702 20.919206 +6134 1635 4 0 1.289075 5.153942 21.314556 +6135 1636 6 0 18.285982 7.046313 3.854888 +6136 1636 4 0 18.754091 7.109170 3.047358 +6137 1636 4 0 18.852898 6.489134 4.447893 +6138 1637 6 0 17.000427 19.166068 19.844454 +6139 1637 4 0 17.780774 18.891038 19.347291 +6140 1637 4 0 16.338665 18.528198 19.533743 +6141 1638 6 0 4.309924 6.553220 -20.552969 +6142 1638 4 0 4.375422 6.917713 -21.455723 +6143 1638 4 0 5.249758 6.290930 -20.364274 +6144 1639 6 0 20.777753 -4.985339 -6.248152 +6145 1639 4 0 20.286399 -4.821264 -7.053768 +6146 1639 4 0 20.234568 -5.537952 -5.671124 +6147 1640 6 0 4.730675 15.020276 -10.674086 +6148 1640 4 0 4.376943 14.834207 -9.767214 +6149 1640 4 0 4.726770 15.973286 -10.733237 +6150 1641 6 0 2.355355 1.234033 17.572616 +6151 1641 4 0 3.034023 1.365267 16.849468 +6152 1641 4 0 1.929729 2.103871 17.645246 +6153 1642 6 0 -20.364763 -10.341423 19.798444 +6154 1642 4 0 -20.097141 -9.967826 18.943902 +6155 1642 4 0 -20.518570 -9.582890 20.375779 +6156 1643 6 0 24.191317 -20.301143 13.503559 +6157 1643 4 0 25.075667 -20.080336 13.914227 +6158 1643 4 0 23.551864 -19.853712 14.034970 +6159 1644 6 0 -17.771965 -0.812840 5.691659 +6160 1644 4 0 -17.110001 -0.172585 5.922995 +6161 1644 4 0 -18.609271 -0.533119 5.998788 +6162 1645 6 0 8.428411 7.992467 20.234546 +6163 1645 4 0 9.349683 8.062329 20.534745 +6164 1645 4 0 7.930578 8.665863 20.632958 +6165 1646 6 0 14.933965 18.875827 -5.159997 +6166 1646 4 0 14.094884 19.194527 -5.500018 +6167 1646 4 0 15.603425 19.608364 -5.196749 +6168 1647 6 0 -11.010909 -1.265131 18.652423 +6169 1647 4 0 -11.027649 -1.155636 17.705218 +6170 1647 4 0 -10.091875 -1.091225 18.938417 +6171 1648 6 0 -21.191413 -9.651017 -4.562795 +6172 1648 4 0 -20.962638 -9.680538 -5.508642 +6173 1648 4 0 -20.795476 -10.416878 -4.182448 +6174 1649 6 0 5.099725 -12.626597 -17.884817 +6175 1649 4 0 5.666927 -12.400935 -17.105607 +6176 1649 4 0 4.764175 -11.785457 -18.184293 +6177 1650 6 0 -21.388510 -5.492100 10.971049 +6178 1650 4 0 -22.216480 -5.626371 10.534286 +6179 1650 4 0 -21.551676 -5.367629 11.909886 +6180 1651 6 0 -26.689928 -8.293398 13.111418 +6181 1651 4 0 -27.003954 -8.182450 12.219010 +6182 1651 4 0 -26.900928 -9.235390 13.263182 +6183 1652 6 0 6.162303 19.062401 -17.622686 +6184 1652 4 0 5.955026 19.807434 -17.095725 +6185 1652 4 0 6.287880 18.311383 -17.062421 +6186 1653 6 0 -26.568944 19.936247 1.863051 +6187 1653 4 0 -26.429552 19.451776 1.050937 +6188 1653 4 0 -25.730651 20.069282 2.308590 +6189 1654 6 0 -12.939452 -17.938569 9.558916 +6190 1654 4 0 -12.598970 -18.093496 10.439491 +6191 1654 4 0 -13.201371 -18.755858 9.152488 +6192 1655 6 0 -11.464685 7.314998 -14.468616 +6193 1655 4 0 -12.254067 7.075040 -13.971198 +6194 1655 4 0 -11.784844 7.883355 -15.166065 +6195 1656 6 0 20.495565 -8.915532 9.256247 +6196 1656 4 0 19.761356 -9.177749 9.963841 +6197 1656 4 0 20.333767 -7.961456 9.244216 +6198 1657 6 0 -16.958223 -6.637117 15.942724 +6199 1657 4 0 -17.590511 -6.925764 15.256778 +6200 1657 4 0 -17.006530 -7.309307 16.639627 +6201 1658 6 0 -7.465242 20.880802 3.955458 +6202 1658 4 0 -6.906639 21.395406 3.368693 +6203 1658 4 0 -7.384772 21.435308 4.777200 +6204 1659 6 0 10.987484 -10.220761 -0.486092 +6205 1659 4 0 11.657995 -10.039232 -1.157052 +6206 1659 4 0 10.134305 -10.217278 -0.922065 +6207 1660 6 0 -11.745045 12.656305 2.561380 +6208 1660 4 0 -12.067404 12.975187 3.387647 +6209 1660 4 0 -11.009457 12.085090 2.865904 +6210 1661 6 0 -5.579572 -16.497607 -20.750701 +6211 1661 4 0 -4.847773 -16.621590 -21.371280 +6212 1661 4 0 -6.034567 -17.358476 -20.680344 +6213 1662 6 0 1.964841 -7.772342 -15.446535 +6214 1662 4 0 2.789953 -8.261174 -15.222416 +6215 1662 4 0 1.224980 -8.401255 -15.497885 +6216 1663 6 0 17.133687 20.836195 -5.235713 +6217 1663 4 0 16.963395 21.728366 -4.832203 +6218 1663 4 0 18.061664 20.710791 -5.306008 +6219 1664 6 0 -18.390780 10.973515 3.704388 +6220 1664 4 0 -19.253132 11.409402 3.769882 +6221 1664 4 0 -18.035350 10.771168 4.577357 +6222 1665 6 0 14.221292 20.673222 -19.936970 +6223 1665 4 0 13.920637 20.243897 -20.741067 +6224 1665 4 0 14.685112 21.462779 -20.332088 +6225 1666 6 0 -21.084831 12.253935 9.565359 +6226 1666 4 0 -20.600168 11.482007 9.886149 +6227 1666 4 0 -21.728096 12.542158 10.140605 +6228 1667 6 0 21.807475 -0.416214 2.152466 +6229 1667 4 0 22.039987 -0.306167 1.206900 +6230 1667 4 0 22.400722 -1.068057 2.516791 +6231 1668 6 0 20.924050 10.441338 14.208356 +6232 1668 4 0 21.615541 10.869208 14.797933 +6233 1668 4 0 20.771960 9.540413 14.573568 +6234 1669 6 0 6.259921 4.454937 -17.265429 +6235 1669 4 0 6.706330 4.203652 -18.064753 +6236 1669 4 0 5.711163 3.710753 -17.001578 +6237 1670 6 0 -4.214022 14.596706 -18.431597 +6238 1670 4 0 -3.688756 15.025866 -17.718188 +6239 1670 4 0 -5.088033 14.473133 -18.084790 +6240 1671 6 0 -2.199419 13.906578 9.672426 +6241 1671 4 0 -2.129396 13.038932 9.992785 +6242 1671 4 0 -3.120153 14.058476 9.477073 +6243 1672 6 0 9.044748 2.046702 -11.991573 +6244 1672 4 0 9.465655 2.820071 -11.709794 +6245 1672 4 0 8.080161 2.265383 -12.092250 +6246 1673 6 0 7.143894 -11.920235 -15.669336 +6247 1673 4 0 6.531119 -11.505986 -15.060545 +6248 1673 4 0 7.414267 -12.765754 -15.195832 +6249 1674 6 0 -5.826228 -0.168688 14.337506 +6250 1674 4 0 -5.465882 -0.527232 13.513436 +6251 1674 4 0 -5.608854 0.802946 14.323569 +6252 1675 6 0 5.648885 3.826675 19.190577 +6253 1675 4 0 5.186784 3.361795 19.925791 +6254 1675 4 0 5.056212 3.823989 18.450900 +6255 1676 6 0 9.326815 -6.082614 -17.012500 +6256 1676 4 0 10.201835 -6.094812 -17.433769 +6257 1676 4 0 9.461714 -5.493002 -16.251384 +6258 1677 6 0 -1.961522 -12.154184 11.549933 +6259 1677 4 0 -1.624684 -11.469274 10.968619 +6260 1677 4 0 -2.192863 -11.701664 12.378278 +6261 1678 6 0 22.610380 9.966271 5.674665 +6262 1678 4 0 23.383558 10.326639 6.158091 +6263 1678 4 0 22.639822 10.376867 4.833334 +6264 1679 6 0 -15.460748 19.613439 2.679694 +6265 1679 4 0 -16.411896 19.506793 2.586178 +6266 1679 4 0 -14.953260 19.393944 1.878689 +6267 1680 6 0 -9.915773 -6.329847 7.803991 +6268 1680 4 0 -9.882720 -5.651785 8.461110 +6269 1680 4 0 -10.460430 -6.991760 8.214687 +6270 1681 6 0 -25.207118 14.245870 9.965310 +6271 1681 4 0 -24.983683 14.155643 9.024696 +6272 1681 4 0 -26.142233 13.940881 10.004034 +6273 1682 6 0 -25.736790 -11.761067 -20.022820 +6274 1682 4 0 -25.863929 -11.074881 -20.678750 +6275 1682 4 0 -24.932339 -12.237137 -20.159436 +6276 1683 6 0 11.102836 18.814945 6.564463 +6277 1683 4 0 11.289797 19.730591 6.307298 +6278 1683 4 0 11.992226 18.441595 6.571960 +6279 1684 6 0 13.403000 -2.765436 13.474813 +6280 1684 4 0 13.769730 -2.059344 13.993878 +6281 1684 4 0 12.629241 -3.051764 13.938568 +6282 1685 6 0 -4.846771 12.989332 0.138872 +6283 1685 4 0 -5.140341 12.692091 -0.669471 +6284 1685 4 0 -4.237694 12.323085 0.503203 +6285 1686 6 0 -7.158804 -10.565376 -14.125410 +6286 1686 4 0 -7.106658 -9.969989 -13.387772 +6287 1686 4 0 -8.014522 -10.262139 -14.505555 +6288 1687 6 0 -27.281285 1.637807 7.500082 +6289 1687 4 0 -28.034365 1.595491 8.055974 +6290 1687 4 0 -27.473389 0.963037 6.821339 +6291 1688 6 0 -0.097834 20.799965 16.033059 +6292 1688 4 0 -0.061833 20.955427 16.971561 +6293 1688 4 0 0.211633 19.849506 15.947964 +6294 1689 6 0 -17.560941 -8.904350 -7.470152 +6295 1689 4 0 -17.692194 -9.827361 -7.296744 +6296 1689 4 0 -18.413628 -8.634527 -7.892701 +6297 1690 6 0 19.510410 -2.135779 6.750602 +6298 1690 4 0 19.129310 -2.691827 6.012246 +6299 1690 4 0 19.916248 -2.816246 7.354253 +6300 1691 6 0 -22.550074 2.726993 8.069055 +6301 1691 4 0 -22.055287 3.149406 8.816420 +6302 1691 4 0 -23.436863 2.498421 8.376578 +6303 1692 6 0 12.975725 16.091516 4.066177 +6304 1692 4 0 12.574447 15.652668 4.834328 +6305 1692 4 0 13.351330 15.347325 3.556206 +6306 1693 6 0 4.646769 -11.986650 5.429828 +6307 1693 4 0 4.999571 -11.714192 4.521067 +6308 1693 4 0 3.860805 -12.541717 5.180051 +6309 1694 6 0 -25.235875 -9.797804 -17.843826 +6310 1694 4 0 -24.333006 -9.678887 -17.478651 +6311 1694 4 0 -25.154219 -10.357082 -18.609102 +6312 1695 6 0 11.868872 -11.212949 -8.438903 +6313 1695 4 0 11.896093 -12.062241 -7.862109 +6314 1695 4 0 12.728803 -11.139741 -8.855401 +6315 1696 6 0 17.367617 -1.497743 -14.604934 +6316 1696 4 0 17.309530 -0.538237 -14.454327 +6317 1696 4 0 16.651273 -1.922704 -14.219436 +6318 1697 6 0 8.667339 4.899012 8.930629 +6319 1697 4 0 8.353473 5.408040 8.182722 +6320 1697 4 0 8.163336 5.229248 9.676915 +6321 1698 6 0 -15.429574 17.683315 9.572006 +6322 1698 4 0 -15.724205 17.604776 10.464011 +6323 1698 4 0 -15.265015 16.716829 9.310192 +6324 1699 6 0 -23.494483 -11.734522 -13.358407 +6325 1699 4 0 -22.637486 -11.515244 -13.732205 +6326 1699 4 0 -23.249990 -12.537148 -12.866248 +6327 1700 6 0 -2.321548 19.267216 -1.843679 +6328 1700 4 0 -1.979401 18.732155 -2.589027 +6329 1700 4 0 -1.922284 20.138548 -2.014462 +6330 1701 6 0 3.241639 7.816664 9.859978 +6331 1701 4 0 3.830186 8.534324 10.230363 +6332 1701 4 0 3.848530 7.292787 9.307399 +6333 1702 6 0 23.128975 -6.691964 -6.315464 +6334 1702 4 0 23.778438 -6.570891 -6.974137 +6335 1702 4 0 22.501465 -5.970161 -6.490266 +6336 1703 6 0 19.510034 14.065263 20.822119 +6337 1703 4 0 19.858660 14.498532 21.601080 +6338 1703 4 0 18.527411 14.085196 20.963708 +6339 1704 6 0 23.620502 15.862352 -17.889270 +6340 1704 4 0 23.702347 16.808368 -17.871251 +6341 1704 4 0 24.460420 15.474942 -18.227702 +6342 1705 6 0 0.280487 -11.413982 6.100970 +6343 1705 4 0 -0.020983 -11.734838 5.286550 +6344 1705 4 0 -0.533188 -11.093828 6.515383 +6345 1706 6 0 4.888182 13.212978 -12.788937 +6346 1706 4 0 4.811212 13.849406 -12.115682 +6347 1706 4 0 5.658749 13.451904 -13.292659 +6348 1707 6 0 -0.778683 -14.633842 19.192088 +6349 1707 4 0 0.068746 -14.541913 19.608269 +6350 1707 4 0 -0.746217 -14.102331 18.428497 +6351 1708 6 0 13.914707 -6.162346 9.195387 +6352 1708 4 0 13.649776 -6.881207 8.533412 +6353 1708 4 0 13.921705 -5.396594 8.630327 +6354 1709 6 0 5.918950 -10.003796 18.819888 +6355 1709 4 0 5.593681 -9.082358 18.773797 +6356 1709 4 0 6.335696 -10.082856 17.966116 +6357 1710 6 0 5.800793 -13.047074 9.485819 +6358 1710 4 0 5.149198 -12.578404 10.015587 +6359 1710 4 0 5.268076 -13.674415 8.965513 +6360 1711 6 0 -14.871416 6.062880 9.725201 +6361 1711 4 0 -14.929573 6.618371 8.917863 +6362 1711 4 0 -14.144906 5.419527 9.466087 +6363 1712 6 0 20.324875 13.466462 -0.499122 +6364 1712 4 0 21.247971 13.704707 -0.183814 +6365 1712 4 0 20.407782 13.624960 -1.484430 +6366 1713 6 0 14.435517 -20.166926 -14.557910 +6367 1713 4 0 15.392894 -20.186163 -14.367445 +6368 1713 4 0 14.408577 -20.346774 -15.497151 +6369 1714 6 0 -16.234833 1.803853 -11.857132 +6370 1714 4 0 -16.542525 1.963315 -10.988159 +6371 1714 4 0 -16.125965 2.663685 -12.253266 +6372 1715 6 0 5.603802 10.853652 14.181232 +6373 1715 4 0 4.967001 11.570744 14.103506 +6374 1715 4 0 5.112428 10.099067 14.600012 +6375 1716 6 0 -9.571538 -5.196535 -13.987191 +6376 1716 4 0 -8.921300 -5.201306 -13.287766 +6377 1716 4 0 -9.272779 -4.631556 -14.762861 +6378 1717 6 0 -0.910109 -6.872259 20.397408 +6379 1717 4 0 -1.142400 -7.798393 20.536047 +6380 1717 4 0 -1.036778 -6.702293 19.444051 +6381 1718 6 0 -12.922858 14.220990 -13.435094 +6382 1718 4 0 -13.045814 13.904342 -12.512925 +6383 1718 4 0 -11.991363 14.443415 -13.600018 +6384 1719 6 0 -20.145038 7.688023 -15.204652 +6385 1719 4 0 -19.285409 7.391425 -14.875634 +6386 1719 4 0 -20.496640 7.059764 -15.839841 +6387 1720 6 0 -5.329489 -11.195881 -18.058590 +6388 1720 4 0 -4.529646 -10.716556 -18.053482 +6389 1720 4 0 -5.175370 -11.944129 -17.502821 +6390 1721 6 0 -4.095176 7.801479 14.167088 +6391 1721 4 0 -4.165281 6.967753 13.710500 +6392 1721 4 0 -4.424466 8.518942 13.657209 +6393 1722 6 0 4.268934 -2.427400 -14.058821 +6394 1722 4 0 3.658313 -1.685938 -14.058738 +6395 1722 4 0 4.003282 -2.951965 -14.808726 +6396 1723 6 0 8.751768 -9.075907 8.222826 +6397 1723 4 0 8.238298 -9.781595 7.726938 +6398 1723 4 0 8.832788 -8.372787 7.566934 +6399 1724 6 0 -2.030633 -16.421805 9.382972 +6400 1724 4 0 -3.001825 -16.480774 9.651189 +6401 1724 4 0 -1.831960 -15.434055 9.498271 +6402 1725 6 0 -25.423917 -5.184358 19.460275 +6403 1725 4 0 -25.411355 -4.513854 18.790648 +6404 1725 4 0 -24.533549 -5.279059 19.872583 +6405 1726 6 0 -2.666399 -5.808727 -16.793146 +6406 1726 4 0 -2.024398 -6.172832 -16.200012 +6407 1726 4 0 -3.330516 -5.483909 -16.238573 +6408 1727 6 0 21.181989 15.710253 -10.722839 +6409 1727 4 0 20.653330 16.200547 -11.388544 +6410 1727 4 0 20.518018 15.224350 -10.216895 +6411 1728 6 0 10.656923 -19.476259 -2.456922 +6412 1728 4 0 10.832717 -19.488093 -3.445481 +6413 1728 4 0 10.250558 -20.351142 -2.291869 +6414 1729 6 0 25.111320 11.672906 -19.193595 +6415 1729 4 0 25.138171 11.478665 -18.282125 +6416 1729 4 0 24.182357 11.511761 -19.351363 +6417 1730 6 0 -23.200367 10.470264 2.902172 +6418 1730 4 0 -22.375402 10.749923 3.283481 +6419 1730 4 0 -23.150590 10.446395 1.924180 +6420 1731 6 0 -2.505105 -5.473938 -19.743686 +6421 1731 4 0 -1.843966 -5.849443 -20.362634 +6422 1731 4 0 -2.920619 -6.270770 -19.289080 +6423 1732 6 0 -8.780745 -1.877077 -14.922296 +6424 1732 4 0 -8.514938 -2.635843 -15.397360 +6425 1732 4 0 -9.085199 -1.200825 -15.532893 +6426 1733 6 0 24.088505 -5.188189 -2.808937 +6427 1733 4 0 23.599921 -6.002172 -2.943267 +6428 1733 4 0 23.455922 -4.686553 -2.320873 +6429 1734 6 0 22.351359 7.425470 -10.093129 +6430 1734 4 0 22.221254 8.332765 -9.845260 +6431 1734 4 0 21.646534 6.920728 -9.570168 +6432 1735 6 0 14.350169 18.359669 4.097284 +6433 1735 4 0 14.109937 17.421914 3.931070 +6434 1735 4 0 14.072554 18.536427 5.036536 +6435 1736 6 0 27.317468 -3.450042 0.124188 +6436 1736 4 0 26.939527 -2.629423 0.463932 +6437 1736 4 0 28.260772 -3.496973 0.454380 +6438 1737 6 0 18.669483 0.162292 12.223874 +6439 1737 4 0 17.730334 0.262878 12.571330 +6440 1737 4 0 18.943346 -0.589794 12.749858 +6441 1738 6 0 -5.566955 -16.930775 -16.571789 +6442 1738 4 0 -6.441648 -17.209772 -16.309110 +6443 1738 4 0 -5.639154 -16.106816 -17.074766 +6444 1739 6 0 -2.921475 20.285760 15.744633 +6445 1739 4 0 -2.016920 20.514916 15.782961 +6446 1739 4 0 -3.245126 20.259651 16.667577 +6447 1740 6 0 -5.332369 15.647169 -3.415792 +6448 1740 4 0 -5.780073 16.016536 -4.186943 +6449 1740 4 0 -5.479798 16.195769 -2.646722 +6450 1741 6 0 15.921074 -18.186514 13.419302 +6451 1741 4 0 16.506049 -18.207521 14.214727 +6452 1741 4 0 15.521744 -17.337545 13.281325 +6453 1742 6 0 14.356618 -12.746498 14.307435 +6454 1742 4 0 14.126271 -12.290732 13.456316 +6455 1742 4 0 14.125424 -12.072615 14.973510 +6456 1743 6 0 -24.563586 19.861169 16.888289 +6457 1743 4 0 -24.271423 19.518156 17.745286 +6458 1743 4 0 -25.132062 20.568890 17.055680 +6459 1744 6 0 21.313706 -20.874831 -18.789259 +6460 1744 4 0 22.217533 -20.760960 -18.415032 +6461 1744 4 0 20.727813 -20.829114 -18.018243 +6462 1745 6 0 -22.635680 0.425745 -16.655779 +6463 1745 4 0 -22.761860 0.339162 -17.612196 +6464 1745 4 0 -23.459506 0.792307 -16.373813 +6465 1746 6 0 26.144043 -9.495490 -14.387597 +6466 1746 4 0 25.579221 -8.746398 -14.601070 +6467 1746 4 0 25.873666 -10.165392 -15.002042 +6468 1747 6 0 -23.297595 -18.906211 -0.461159 +6469 1747 4 0 -22.408325 -19.188074 -0.167323 +6470 1747 4 0 -23.911286 -19.189688 0.234806 +6471 1748 6 0 -0.622548 17.838288 10.712907 +6472 1748 4 0 -1.439971 18.247686 10.442799 +6473 1748 4 0 -0.378140 17.187351 10.096413 +6474 1749 6 0 15.411072 -13.353252 8.623995 +6475 1749 4 0 14.707363 -12.901715 8.076042 +6476 1749 4 0 15.905287 -13.988830 8.076423 +6477 1750 6 0 21.923001 -19.583331 -14.240322 +6478 1750 4 0 22.075731 -18.649005 -14.150919 +6479 1750 4 0 22.015325 -19.897017 -13.337089 +6480 1751 6 0 2.935997 17.036657 8.133011 +6481 1751 4 0 3.807044 17.141662 7.698882 +6482 1751 4 0 2.908723 17.824640 8.654298 +6483 1752 6 0 -27.412013 18.278336 3.981062 +6484 1752 4 0 -28.006219 18.986550 3.874615 +6485 1752 4 0 -26.604657 18.625220 3.564949 +6486 1753 6 0 24.767119 -17.376689 8.467100 +6487 1753 4 0 25.034677 -18.274073 8.247745 +6488 1753 4 0 24.572504 -17.372764 9.407309 +6489 1754 6 0 -13.003243 -11.441578 13.780080 +6490 1754 4 0 -12.042782 -11.458495 13.652747 +6491 1754 4 0 -13.148063 -12.394708 13.704955 +6492 1755 6 0 15.688282 -7.232516 -0.339939 +6493 1755 4 0 16.449877 -6.627843 -0.361901 +6494 1755 4 0 14.991365 -6.661690 -0.041038 +6495 1756 6 0 11.147257 19.763552 -1.319428 +6496 1756 4 0 12.091516 19.826512 -1.542128 +6497 1756 4 0 10.791166 18.908813 -1.667004 +6498 1757 6 0 -7.494481 -7.378915 14.293630 +6499 1757 4 0 -8.055772 -6.598314 14.231678 +6500 1757 4 0 -7.492239 -7.996336 13.497808 +6501 1758 6 0 12.398150 -14.923360 -13.423871 +6502 1758 4 0 13.226011 -15.063936 -12.905542 +6503 1758 4 0 12.384263 -15.811229 -13.930308 +6504 1759 6 0 -27.354781 16.207013 -2.080282 +6505 1759 4 0 -27.773374 15.417476 -1.753252 +6506 1759 4 0 -26.769089 15.853853 -2.726016 +6507 1760 6 0 -21.588756 -10.691290 -14.634202 +6508 1760 4 0 -20.864974 -10.142417 -14.313329 +6509 1760 4 0 -22.092217 -10.206931 -15.343402 +6510 1761 6 0 -15.891662 -2.331448 -9.986612 +6511 1761 4 0 -16.165526 -2.271915 -10.920230 +6512 1761 4 0 -16.438270 -1.699757 -9.489314 +6513 1762 6 0 22.887456 16.566156 19.955577 +6514 1762 4 0 23.271415 15.746747 20.347130 +6515 1762 4 0 22.072508 16.181382 19.562781 +6516 1763 6 0 23.972546 -20.036642 10.589623 +6517 1763 4 0 22.980691 -20.033626 10.504814 +6518 1763 4 0 24.188289 -20.743981 11.184377 +6519 1764 6 0 -14.810897 -16.471565 2.793852 +6520 1764 4 0 -14.868506 -16.959673 3.603780 +6521 1764 4 0 -15.147942 -15.567810 2.891865 +6522 1765 6 0 15.022183 19.763656 9.414504 +6523 1765 4 0 14.727721 20.725814 9.294400 +6524 1765 4 0 14.198126 19.316744 9.803487 +6525 1766 6 0 7.167340 -17.033861 0.122492 +6526 1766 4 0 7.922624 -17.174527 -0.428152 +6527 1766 4 0 7.373246 -16.583291 0.937782 +6528 1767 6 0 -11.594968 10.896089 -10.580500 +6529 1767 4 0 -11.121081 11.033261 -11.432170 +6530 1767 4 0 -10.865005 11.002637 -9.903313 +6531 1768 6 0 13.844708 19.069913 -14.047834 +6532 1768 4 0 12.983337 18.716343 -13.811534 +6533 1768 4 0 13.787413 20.053839 -14.066463 +6534 1769 6 0 3.487281 19.589235 9.612730 +6535 1769 4 0 2.698355 20.090461 9.969632 +6536 1769 4 0 4.250101 19.910242 10.053781 +6537 1770 6 0 -3.973097 19.421213 7.719503 +6538 1770 4 0 -4.241991 20.257528 7.213642 +6539 1770 4 0 -3.132076 19.220373 7.212628 +6540 1771 6 0 -12.775076 2.609100 10.411237 +6541 1771 4 0 -11.827718 2.459042 10.644395 +6542 1771 4 0 -12.804655 2.331119 9.464699 +6543 1772 6 0 -24.197168 6.439006 -6.711367 +6544 1772 4 0 -25.160507 6.393035 -6.538446 +6545 1772 4 0 -23.942233 5.506445 -6.828627 +6546 1773 6 0 -2.117774 -4.949968 18.594717 +6547 1773 4 0 -2.924336 -5.465197 18.506055 +6548 1773 4 0 -2.296534 -4.057750 18.222583 +6549 1774 6 0 -10.788206 6.295992 1.048829 +6550 1774 4 0 -10.485607 7.066710 1.589289 +6551 1774 4 0 -10.038032 6.105261 0.487985 +6552 1775 6 0 -12.857377 -3.305264 -10.725085 +6553 1775 4 0 -13.206640 -2.923560 -11.499351 +6554 1775 4 0 -13.499606 -3.077602 -10.047332 +6555 1776 6 0 -11.268130 12.801261 9.055194 +6556 1776 4 0 -11.672865 13.689974 8.877182 +6557 1776 4 0 -11.032167 12.415049 8.150138 +6558 1777 6 0 13.406197 0.438838 6.515611 +6559 1777 4 0 12.971912 1.148987 7.055731 +6560 1777 4 0 13.378188 0.782754 5.596959 +6561 1778 6 0 16.121687 13.290724 10.280494 +6562 1778 4 0 16.894647 12.756757 10.507582 +6563 1778 4 0 15.529920 12.609242 9.885455 +6564 1779 6 0 1.591126 8.482167 4.697447 +6565 1779 4 0 1.970540 9.119397 4.113006 +6566 1779 4 0 2.267655 8.435325 5.388951 +6567 1780 6 0 -17.696505 1.721021 10.517174 +6568 1780 4 0 -17.885845 2.645526 10.594973 +6569 1780 4 0 -18.179500 1.418546 11.298333 +6570 1781 6 0 -1.148874 9.889607 17.693251 +6571 1781 4 0 -0.454725 10.039896 17.084647 +6572 1781 4 0 -1.617929 9.083378 17.328962 +6573 1782 6 0 -9.511269 -11.292655 15.803762 +6574 1782 4 0 -10.218255 -10.722353 16.196307 +6575 1782 4 0 -9.799298 -12.212118 15.932439 +6576 1783 6 0 -15.065889 16.639418 -8.067448 +6577 1783 4 0 -15.835102 17.201609 -8.362394 +6578 1783 4 0 -15.172025 15.753046 -8.516586 +6579 1784 6 0 -22.136814 -17.146244 -13.973167 +6580 1784 4 0 -21.367059 -16.850746 -13.432779 +6581 1784 4 0 -22.384487 -16.427789 -14.634859 +6582 1785 6 0 7.866282 -10.293632 -17.800934 +6583 1785 4 0 7.775951 -11.047150 -17.161148 +6584 1785 4 0 8.173086 -9.555520 -17.163954 +6585 1786 6 0 -11.457596 -0.574420 15.816493 +6586 1786 4 0 -11.795621 0.320073 15.789591 +6587 1786 4 0 -10.561019 -0.510839 15.442995 +6588 1787 6 0 20.020980 -12.359468 -8.719780 +6589 1787 4 0 20.891102 -12.503083 -8.310836 +6590 1787 4 0 19.657638 -11.746384 -8.095286 +6591 1788 6 0 -11.584374 -20.453145 18.626549 +6592 1788 4 0 -11.940173 -20.540398 19.531255 +6593 1788 4 0 -12.005638 -21.078955 18.029825 +6594 1789 6 0 3.431174 19.121516 18.407979 +6595 1789 4 0 3.226206 20.056373 18.426687 +6596 1789 4 0 2.600881 18.679871 18.370259 +6597 1790 6 0 -13.315767 -3.798762 16.329856 +6598 1790 4 0 -13.096103 -4.569637 15.670760 +6599 1790 4 0 -12.649730 -3.801668 17.013121 +6600 1791 6 0 7.563392 -5.518546 10.504795 +6601 1791 4 0 6.706770 -5.750354 10.096728 +6602 1791 4 0 7.922512 -6.417021 10.555834 +6603 1792 6 0 -18.725820 19.110329 -7.091283 +6604 1792 4 0 -19.518142 19.318716 -7.662306 +6605 1792 4 0 -18.568680 19.881279 -6.590714 +6606 1793 6 0 -1.414023 -16.961715 12.639857 +6607 1793 4 0 -1.328118 -15.968577 12.668980 +6608 1793 4 0 -1.076983 -17.347672 11.778245 +6609 1794 6 0 -23.307644 10.461811 -20.820802 +6610 1794 4 0 -23.561946 9.673912 -20.318452 +6611 1794 4 0 -24.099105 10.583838 -21.379713 +6612 1795 6 0 18.109258 -13.123924 17.182346 +6613 1795 4 0 19.074027 -13.199454 16.973877 +6614 1795 4 0 17.765173 -12.302968 16.728002 +6615 1796 6 0 21.683386 18.223931 -5.030005 +6616 1796 4 0 22.567099 18.027021 -5.437892 +6617 1796 4 0 21.636745 17.754335 -4.163593 +6618 1797 6 0 25.055072 19.034839 -7.681292 +6619 1797 4 0 24.766294 18.344263 -7.038060 +6620 1797 4 0 25.882695 18.757787 -7.948244 +6621 1798 6 0 15.570913 13.019010 5.553904 +6622 1798 4 0 15.992685 13.329314 6.362922 +6623 1798 4 0 15.449140 12.068146 5.738277 +6624 1799 6 0 -0.520016 -0.269780 14.795928 +6625 1799 4 0 -0.180326 -0.456884 15.694661 +6626 1799 4 0 -1.219092 -0.915185 14.727056 +6627 1800 6 0 1.663902 -15.429144 -10.527250 +6628 1800 4 0 2.554915 -15.533567 -10.136462 +6629 1800 4 0 1.815948 -15.297258 -11.416174 +6630 1801 6 0 -22.648336 -4.623238 -12.225694 +6631 1801 4 0 -23.412412 -4.010770 -12.025660 +6632 1801 4 0 -21.872894 -4.224451 -11.815463 +6633 1802 6 0 -2.279585 -20.867759 -19.023308 +6634 1802 4 0 -3.100549 -20.369345 -19.314139 +6635 1802 4 0 -1.811469 -21.235753 -19.767859 +6636 1803 6 0 -22.243475 -13.329179 -1.390694 +6637 1803 4 0 -22.862810 -12.659332 -1.686427 +6638 1803 4 0 -22.410657 -13.599367 -0.469217 +6639 1804 6 0 23.607826 -9.844602 16.352810 +6640 1804 4 0 24.370141 -9.837102 16.979270 +6641 1804 4 0 22.885616 -9.527980 16.925581 +6642 1805 6 0 -17.460421 9.171816 -11.938616 +6643 1805 4 0 -18.218389 8.865436 -11.398928 +6644 1805 4 0 -17.867876 9.968898 -12.335632 +6645 1806 6 0 2.263863 -17.526491 14.554618 +6646 1806 4 0 1.859635 -17.896680 15.358713 +6647 1806 4 0 2.052535 -18.087323 13.764230 +6648 1807 6 0 27.368617 -13.116454 -17.139830 +6649 1807 4 0 27.233784 -13.465846 -16.264251 +6650 1807 4 0 27.362385 -13.865254 -17.806940 +6651 1808 6 0 16.784972 2.549591 14.309398 +6652 1808 4 0 17.733190 2.537919 14.322805 +6653 1808 4 0 16.413277 1.810095 13.861707 +6654 1809 6 0 21.804761 -2.107242 -5.095741 +6655 1809 4 0 22.776789 -2.281899 -4.959560 +6656 1809 4 0 21.413198 -2.898127 -5.388708 +6657 1810 6 0 14.063924 6.483674 -0.351431 +6658 1810 4 0 14.941176 6.100507 -0.517796 +6659 1810 4 0 14.071859 7.050391 0.399753 +6660 1811 6 0 14.554835 16.507491 9.329558 +6661 1811 4 0 15.358643 16.591416 9.875030 +6662 1811 4 0 13.889851 17.088326 9.657109 +6663 1812 6 0 8.670655 -18.428515 -11.354395 +6664 1812 4 0 9.496711 -18.254251 -11.776580 +6665 1812 4 0 8.693110 -18.508570 -10.379319 +6666 1813 6 0 -17.333287 2.077059 19.999340 +6667 1813 4 0 -18.012974 2.265838 19.359237 +6668 1813 4 0 -17.678958 2.658724 20.686523 +6669 1814 6 0 -12.269943 7.557325 8.022561 +6670 1814 4 0 -11.782231 7.901385 7.310410 +6671 1814 4 0 -11.518722 7.369844 8.741429 +6672 1815 6 0 -16.422160 -12.244301 6.857276 +6673 1815 4 0 -16.476236 -12.690789 7.708566 +6674 1815 4 0 -17.265810 -12.438972 6.474023 +6675 1816 6 0 -12.460293 15.701651 -2.123616 +6676 1816 4 0 -12.202263 16.633440 -2.262429 +6677 1816 4 0 -12.915395 15.335750 -2.913659 +6678 1817 6 0 19.857137 7.435921 -19.855513 +6679 1817 4 0 19.224411 8.121790 -20.149860 +6680 1817 4 0 19.459580 7.115365 -18.985221 +6681 1818 6 0 27.414938 3.220691 12.551587 +6682 1818 4 0 28.302084 3.292286 12.082110 +6683 1818 4 0 27.376652 2.288121 12.758098 +6684 1819 6 0 -20.578446 6.501862 -7.543872 +6685 1819 4 0 -21.322455 7.133983 -7.483478 +6686 1819 4 0 -20.905164 5.709027 -7.068017 +6687 1820 6 0 9.893421 -13.954239 -2.145744 +6688 1820 4 0 10.845577 -13.887452 -1.806008 +6689 1820 4 0 9.670044 -13.100245 -2.522670 +6690 1821 6 0 -4.428072 -19.794959 6.392084 +6691 1821 4 0 -3.499634 -19.499125 6.457248 +6692 1821 4 0 -4.796122 -19.302160 7.159538 +6693 1822 6 0 -7.874919 11.488098 -11.872687 +6694 1822 4 0 -7.741906 10.850602 -11.130468 +6695 1822 4 0 -8.663122 11.156415 -12.262641 +6696 1823 6 0 25.941607 -13.435898 9.799183 +6697 1823 4 0 26.834803 -13.623931 10.154795 +6698 1823 4 0 25.332757 -14.073159 10.291155 +6699 1824 6 0 -19.551589 -5.315854 19.441555 +6700 1824 4 0 -19.573638 -5.247652 20.432003 +6701 1824 4 0 -18.874142 -4.641904 19.223175 +6702 1825 6 0 -15.895156 17.865430 12.295752 +6703 1825 4 0 -15.942604 18.800693 12.596548 +6704 1825 4 0 -16.548061 17.362585 12.771509 +6705 1826 6 0 2.671083 -14.766415 2.401009 +6706 1826 4 0 1.987603 -14.345575 1.847880 +6707 1826 4 0 2.531547 -14.517967 3.328895 +6708 1827 6 0 12.335851 -9.704468 -20.394740 +6709 1827 4 0 12.648806 -9.830295 -19.492670 +6710 1827 4 0 11.490958 -10.100623 -20.194535 +6711 1828 6 0 -22.106737 -9.538400 8.455985 +6712 1828 4 0 -21.536209 -9.084366 9.058590 +6713 1828 4 0 -23.017732 -9.207212 8.501551 +6714 1829 6 0 12.648535 6.444583 -9.932281 +6715 1829 4 0 13.157813 6.358331 -10.726454 +6716 1829 4 0 11.747411 6.253342 -10.180418 +6717 1830 6 0 -13.625525 -14.166725 14.041460 +6718 1830 4 0 -13.177614 -14.592522 13.259629 +6719 1830 4 0 -14.592492 -14.334369 13.940732 +6720 1831 6 0 6.601614 16.498956 -16.461129 +6721 1831 4 0 7.358480 15.895066 -16.451685 +6722 1831 4 0 6.023786 16.041896 -17.084703 +6723 1832 6 0 21.778571 -2.612574 13.360688 +6724 1832 4 0 22.384822 -2.519802 12.682789 +6725 1832 4 0 21.622799 -1.672884 13.624001 +6726 1833 6 0 -20.149213 6.013192 6.945622 +6727 1833 4 0 -21.145473 5.909263 6.918876 +6728 1833 4 0 -19.835482 6.282517 6.065703 +6729 1834 6 0 -21.966774 -11.494919 -8.738743 +6730 1834 4 0 -22.851768 -11.211695 -9.113733 +6731 1834 4 0 -21.879165 -10.921961 -8.012191 +6732 1835 6 0 15.449095 -9.497086 12.201305 +6733 1835 4 0 16.382306 -9.836986 12.244632 +6734 1835 4 0 15.422419 -9.084200 11.356115 +6735 1836 6 0 12.664756 -15.306651 -20.531836 +6736 1836 4 0 12.034408 -16.012414 -20.359938 +6737 1836 4 0 12.739209 -14.577278 -19.974973 +6738 1837 6 0 -7.972869 -5.604918 -11.934405 +6739 1837 4 0 -7.601267 -4.885318 -11.379446 +6740 1837 4 0 -8.575310 -6.063681 -11.263704 +6741 1838 6 0 0.299553 12.700530 -18.524181 +6742 1838 4 0 0.558430 11.815355 -18.777046 +6743 1838 4 0 -0.711668 12.618485 -18.481012 +6744 1839 6 0 -0.824908 18.918494 -20.332651 +6745 1839 4 0 0.055729 18.800950 -20.088514 +6746 1839 4 0 -0.726815 18.736133 -21.275575 +6747 1840 6 0 25.716218 -17.621624 -18.165089 +6748 1840 4 0 25.183585 -18.348327 -18.615572 +6749 1840 4 0 26.570805 -18.051277 -17.821631 +6750 1841 6 0 11.895246 -12.886376 -15.030415 +6751 1841 4 0 12.581969 -12.241572 -14.789572 +6752 1841 4 0 12.014494 -13.590976 -14.363464 +6753 1842 6 0 -6.984781 -6.050242 10.699580 +6754 1842 4 0 -6.200372 -6.230567 10.144341 +6755 1842 4 0 -6.715278 -5.563587 11.454374 +6756 1843 6 0 -7.335609 -12.055455 -4.954546 +6757 1843 4 0 -6.870389 -12.537029 -5.731051 +6758 1843 4 0 -8.034369 -11.614893 -5.410536 +6759 1844 6 0 7.328653 12.351276 10.622525 +6760 1844 4 0 7.205722 12.826673 9.764783 +6761 1844 4 0 6.491360 12.585679 11.094427 +6762 1845 6 0 -2.064418 15.964062 4.897369 +6763 1845 4 0 -1.989044 16.110456 3.944429 +6764 1845 4 0 -1.188158 16.010465 5.256453 +6765 1846 6 0 10.673140 16.947190 -7.298199 +6766 1846 4 0 11.053321 16.848368 -6.437645 +6767 1846 4 0 9.833705 16.415071 -7.530378 +6768 1847 6 0 25.146955 -10.850377 -5.894794 +6769 1847 4 0 25.793466 -10.144367 -5.792885 +6770 1847 4 0 25.341761 -11.315139 -6.748470 +6771 1848 6 0 -20.898709 -20.024244 -0.432532 +6772 1848 4 0 -21.327485 -20.809324 -0.731327 +6773 1848 4 0 -20.384646 -19.736744 -1.159428 +6774 1849 6 0 15.773125 -11.828239 1.267979 +6775 1849 4 0 15.082308 -11.485912 1.791000 +6776 1849 4 0 16.210809 -11.047975 0.843250 +6777 1850 6 0 -25.459831 -14.049130 16.602221 +6778 1850 4 0 -25.659268 -15.033606 16.753032 +6779 1850 4 0 -26.167299 -13.609133 17.155971 +6780 1851 6 0 -15.346212 9.776118 0.552706 +6781 1851 4 0 -14.861031 10.583944 0.897097 +6782 1851 4 0 -15.499398 9.230659 1.360288 +6783 1852 6 0 1.515239 -10.027493 16.408903 +6784 1852 4 0 2.112245 -9.685145 15.772127 +6785 1852 4 0 1.563862 -10.961534 16.268707 +6786 1853 6 0 8.730778 -2.046469 -16.855487 +6787 1853 4 0 8.003213 -2.349766 -16.293070 +6788 1853 4 0 8.893912 -1.127143 -16.700440 +6789 1854 6 0 -12.659858 10.277753 9.764551 +6790 1854 4 0 -12.954976 10.194740 10.671493 +6791 1854 4 0 -12.294313 11.185370 9.686563 +6792 1855 6 0 13.241019 7.614156 1.958471 +6793 1855 4 0 13.989186 7.821908 2.548064 +6794 1855 4 0 12.569506 7.225025 2.564990 +6795 1856 6 0 18.743445 -1.851686 14.221199 +6796 1856 4 0 19.241705 -2.155912 15.013052 +6797 1856 4 0 17.934973 -2.360999 14.283218 +6798 1857 6 0 20.097738 14.045420 -3.353931 +6799 1857 4 0 20.264111 13.632005 -4.240012 +6800 1857 4 0 19.782670 14.876950 -3.580329 +6801 1858 6 0 22.656523 -13.025771 -7.851202 +6802 1858 4 0 23.058494 -13.682024 -8.427211 +6803 1858 4 0 22.939496 -13.206983 -6.927788 +6804 1859 6 0 22.687429 4.701978 5.232797 +6805 1859 4 0 22.127391 3.970799 5.568822 +6806 1859 4 0 22.543397 5.316387 5.948219 +6807 1860 6 0 23.649228 -7.915795 -3.510236 +6808 1860 4 0 22.801078 -8.238516 -3.339971 +6809 1860 4 0 23.474938 -7.503073 -4.391727 +6810 1861 6 0 -6.616017 -20.555130 17.274390 +6811 1861 4 0 -6.785872 -19.593361 17.044755 +6812 1861 4 0 -6.639098 -20.935653 16.386762 +6813 1862 6 0 11.575769 10.993842 8.632733 +6814 1862 4 0 11.631285 10.248287 9.251562 +6815 1862 4 0 11.054687 11.776369 9.032913 +6816 1863 6 0 -14.897591 -13.741408 -8.424343 +6817 1863 4 0 -13.944044 -13.521919 -8.374624 +6818 1863 4 0 -15.245652 -13.416716 -9.247098 +6819 1864 6 0 -7.606286 -16.239672 5.296165 +6820 1864 4 0 -8.529013 -16.377754 5.125689 +6821 1864 4 0 -7.372109 -15.298609 5.089587 +6822 1865 6 0 21.651688 -6.687757 -17.914010 +6823 1865 4 0 21.631109 -7.371723 -17.250699 +6824 1865 4 0 22.595382 -6.421930 -17.913376 +6825 1866 6 0 8.244086 -0.418132 8.413538 +6826 1866 4 0 8.150004 -1.042562 7.678730 +6827 1866 4 0 7.835426 -0.797019 9.189825 +6828 1867 6 0 16.479760 -10.801798 -19.696932 +6829 1867 4 0 17.075192 -11.093875 -20.402321 +6830 1867 4 0 17.056365 -10.719762 -18.940382 +6831 1868 6 0 -0.277774 0.459271 -13.592265 +6832 1868 4 0 0.641958 0.154550 -13.512461 +6833 1868 4 0 -0.452113 1.346343 -13.286369 +6834 1869 6 0 -6.542284 15.376168 4.177517 +6835 1869 4 0 -5.816160 15.112821 4.810192 +6836 1869 4 0 -6.899831 14.592226 3.628797 +6837 1870 6 0 -20.635866 7.001713 -1.480479 +6838 1870 4 0 -21.373222 6.994284 -2.078088 +6839 1870 4 0 -20.006067 6.359671 -1.951231 +6840 1871 6 0 -13.639335 3.376760 17.002766 +6841 1871 4 0 -13.969979 2.665180 17.593575 +6842 1871 4 0 -13.046017 3.905659 17.530455 +6843 1872 6 0 -6.547337 20.684985 14.541933 +6844 1872 4 0 -6.972273 21.348698 14.071679 +6845 1872 4 0 -5.602331 20.918763 14.522709 +6846 1873 6 0 -2.497800 -13.782262 -4.791828 +6847 1873 4 0 -1.576617 -13.507624 -4.869174 +6848 1873 4 0 -2.714797 -14.013702 -5.709334 +6849 1874 6 0 -1.112625 18.563757 18.790030 +6850 1874 4 0 -0.288236 18.142534 18.527379 +6851 1874 4 0 -0.946536 19.452779 18.744542 +6852 1875 6 0 -13.988854 -2.769276 -13.122084 +6853 1875 4 0 -13.598926 -2.700606 -13.943868 +6854 1875 4 0 -14.937873 -2.607884 -13.208114 +6855 1876 6 0 -16.715661 8.750744 -17.681497 +6856 1876 4 0 -15.798116 8.603619 -18.047851 +6857 1876 4 0 -16.635460 9.420085 -17.000771 +6858 1877 6 0 2.991113 -12.748536 9.631899 +6859 1877 4 0 2.533802 -13.278079 8.996870 +6860 1877 4 0 2.583180 -11.923543 9.637997 +6861 1878 6 0 -27.414426 -12.634511 18.337817 +6862 1878 4 0 -28.225666 -12.744824 17.838871 +6863 1878 4 0 -27.706128 -12.906300 19.286418 +6864 1879 6 0 11.850131 -20.736745 10.117226 +6865 1879 4 0 12.209918 -19.885422 9.990598 +6866 1879 4 0 12.449458 -21.164159 10.776006 +6867 1880 6 0 16.900404 -9.611117 0.299881 +6868 1880 4 0 17.702920 -9.200486 0.626455 +6869 1880 4 0 16.211832 -8.949525 0.285394 +6870 1881 6 0 1.300636 17.476583 -19.357702 +6871 1881 4 0 1.244601 16.535623 -19.680589 +6872 1881 4 0 2.229065 17.802299 -19.528512 +6873 1882 6 0 -13.442641 6.855380 -12.602329 +6874 1882 4 0 -13.248683 5.960155 -12.345808 +6875 1882 4 0 -12.964930 7.379163 -11.927446 +6876 1883 6 0 10.508692 10.781998 13.857653 +6877 1883 4 0 10.700750 11.227397 13.025331 +6878 1883 4 0 11.274159 10.169036 14.047871 +6879 1884 6 0 -15.161111 15.497808 -1.075417 +6880 1884 4 0 -14.941306 16.067302 -1.834212 +6881 1884 4 0 -14.307102 15.425376 -0.587763 +6882 1885 6 0 26.516448 19.605204 -1.401155 +6883 1885 4 0 27.409955 19.971686 -1.420282 +6884 1885 4 0 26.420947 18.971191 -0.667802 +6885 1886 6 0 -0.954004 8.187819 13.771505 +6886 1886 4 0 -0.458409 7.469182 14.137804 +6887 1886 4 0 -1.797548 7.882182 13.530929 +6888 1887 6 0 15.694940 -16.566561 10.671838 +6889 1887 4 0 15.180482 -16.576742 9.844033 +6890 1887 4 0 14.966563 -16.548505 11.318780 +6891 1888 6 0 18.598747 3.441754 -19.980603 +6892 1888 4 0 19.607131 3.445422 -19.714075 +6893 1888 4 0 18.629619 3.587760 -20.937873 +6894 1889 6 0 -4.101725 20.626483 18.518698 +6895 1889 4 0 -4.832741 21.173287 18.195756 +6896 1889 4 0 -3.506641 21.284151 19.004490 +6897 1890 6 0 -1.622747 20.903759 -10.623135 +6898 1890 4 0 -1.749055 20.907257 -9.665824 +6899 1890 4 0 -2.518273 20.806241 -11.004696 +6900 1891 6 0 -2.179807 -14.291095 -12.926864 +6901 1891 4 0 -2.705153 -14.473812 -12.111290 +6902 1891 4 0 -1.495280 -13.773858 -12.562680 +6903 1892 6 0 -21.678830 15.695505 11.326422 +6904 1892 4 0 -21.490132 16.123832 12.219822 +6905 1892 4 0 -22.555374 16.000330 11.105890 +6906 1893 6 0 20.387528 -15.104299 -14.428654 +6907 1893 4 0 19.639614 -14.550582 -14.652181 +6908 1893 4 0 20.966724 -14.615439 -13.782083 +6909 1894 6 0 8.543989 2.061633 14.171285 +6910 1894 4 0 8.138366 1.205164 14.195988 +6911 1894 4 0 8.018048 2.600851 14.790181 +6912 1895 6 0 -14.889828 7.565748 -1.232224 +6913 1895 4 0 -15.277980 8.149588 -0.532147 +6914 1895 4 0 -14.157076 7.163538 -0.720742 +6915 1896 6 0 6.890439 6.835565 10.786892 +6916 1896 4 0 7.316224 7.702174 10.597929 +6917 1896 4 0 7.041785 6.699181 11.734956 +6918 1897 6 0 -23.725715 6.589830 20.135978 +6919 1897 4 0 -24.326282 5.920341 20.500508 +6920 1897 4 0 -24.274788 7.300563 19.971121 +6921 1898 6 0 -0.448883 -20.864583 -14.617458 +6922 1898 4 0 0.071192 -21.697111 -14.370110 +6923 1898 4 0 -0.336801 -20.602783 -15.491876 +6924 1899 6 0 4.752131 -18.759171 16.224472 +6925 1899 4 0 4.247100 -17.909089 16.159151 +6926 1899 4 0 5.497199 -18.596379 16.767517 +6927 1900 6 0 25.551466 11.024091 14.835821 +6928 1900 4 0 26.097565 10.360826 15.318240 +6929 1900 4 0 25.868265 11.894670 15.113284 +6930 1901 6 0 -13.792632 -0.131648 -11.968031 +6931 1901 4 0 -14.069742 -1.037349 -12.273373 +6932 1901 4 0 -14.587746 0.465719 -12.016945 +6933 1902 6 0 -2.710690 15.293627 -0.278680 +6934 1902 4 0 -2.998969 15.960057 0.331443 +6935 1902 4 0 -3.386842 14.623069 -0.355634 +6936 1903 6 0 -17.248233 -20.121844 -4.059452 +6937 1903 4 0 -17.172414 -21.044463 -4.251654 +6938 1903 4 0 -16.877225 -20.034684 -3.174803 +6939 1904 6 0 23.843575 9.736974 -14.350198 +6940 1904 4 0 23.682322 8.979239 -15.046519 +6941 1904 4 0 23.367386 9.481782 -13.520758 +6942 1905 6 0 -11.977920 -13.866924 -9.096345 +6943 1905 4 0 -12.034457 -14.762049 -8.738542 +6944 1905 4 0 -11.033924 -13.842490 -9.319192 +6945 1906 6 0 -20.844885 -20.673768 11.904219 +6946 1906 4 0 -21.211544 -21.565612 12.158518 +6947 1906 4 0 -21.251746 -20.526654 11.038182 +6948 1907 6 0 10.501648 -10.083276 10.087293 +6949 1907 4 0 10.918566 -9.250606 10.394612 +6950 1907 4 0 9.992333 -9.906650 9.274003 +6951 1908 6 0 -19.115579 -4.779064 -19.789173 +6952 1908 4 0 -18.214269 -4.399767 -19.923178 +6953 1908 4 0 -19.400662 -4.666966 -18.902157 +6954 1909 6 0 27.292959 4.591920 -14.450094 +6955 1909 4 0 27.857326 4.638750 -13.673258 +6956 1909 4 0 26.302663 4.467257 -14.132617 +6957 1910 6 0 -15.973482 -19.623868 10.652463 +6958 1910 4 0 -15.396164 -19.929927 9.974366 +6959 1910 4 0 -16.843194 -19.544182 10.235192 +6960 1911 6 0 -24.224954 -2.728737 10.935846 +6961 1911 4 0 -23.262685 -2.710705 11.036848 +6962 1911 4 0 -24.594330 -3.621981 10.847310 +6963 1912 6 0 -10.392772 -14.962488 2.206954 +6964 1912 4 0 -10.142273 -15.819733 2.617268 +6965 1912 4 0 -9.689412 -14.869628 1.550246 +6966 1913 6 0 23.781651 14.549010 -15.425504 +6967 1913 4 0 23.508500 15.178591 -16.172525 +6968 1913 4 0 23.231402 13.779403 -15.566088 +6969 1914 6 0 -16.655122 13.378532 -2.256893 +6970 1914 4 0 -15.876557 13.842392 -1.809556 +6971 1914 4 0 -17.352965 14.010234 -2.115536 +6972 1915 6 0 17.907598 17.234287 -12.510154 +6973 1915 4 0 17.700495 16.802779 -13.342124 +6974 1915 4 0 17.297348 17.961204 -12.489351 +6975 1916 6 0 17.427023 -12.078823 9.916700 +6976 1916 4 0 16.525879 -12.070244 9.636554 +6977 1916 4 0 17.909679 -12.239509 9.119337 +6978 1917 6 0 -19.359847 6.057050 19.624868 +6979 1917 4 0 -19.814369 5.574360 18.904014 +6980 1917 4 0 -19.255770 6.911903 19.182635 +6981 1918 6 0 18.674024 -19.624270 17.522963 +6982 1918 4 0 17.740156 -19.461855 17.682137 +6983 1918 4 0 18.867385 -19.535332 16.599150 +6984 1919 6 0 20.025827 3.814045 -9.622919 +6985 1919 4 0 19.683972 4.038069 -10.485997 +6986 1919 4 0 20.937506 3.543209 -9.811005 +6987 1920 6 0 5.470940 6.984171 8.109869 +6988 1920 4 0 5.850717 7.846581 8.087996 +6989 1920 4 0 5.945843 6.559192 8.827716 +6990 1921 6 0 -10.808039 20.531242 -16.312076 +6991 1921 4 0 -10.302470 21.104206 -15.760708 +6992 1921 4 0 -10.017446 20.227222 -16.784699 +6993 1922 6 0 -11.027875 -4.920821 17.870938 +6994 1922 4 0 -10.325336 -4.445713 17.369166 +6995 1922 4 0 -11.377886 -5.529192 17.224974 +6996 1923 6 0 -20.371671 10.114815 16.255481 +6997 1923 4 0 -20.580138 10.101355 15.263993 +6998 1923 4 0 -20.344545 11.071578 16.437819 +6999 1924 6 0 23.653520 3.436168 1.325510 +7000 1924 4 0 23.536106 2.474980 1.098717 +7001 1924 4 0 23.860683 3.796523 0.414552 +7002 1925 6 0 -21.567514 -2.949387 5.091162 +7003 1925 4 0 -22.071317 -3.738968 4.916553 +7004 1925 4 0 -22.336939 -2.390166 5.390630 +7005 1926 6 0 22.554166 -9.402044 -6.100872 +7006 1926 4 0 23.431323 -9.766839 -6.077907 +7007 1926 4 0 22.697180 -8.479613 -6.418284 +7008 1927 6 0 -22.569113 -4.640399 13.826281 +7009 1927 4 0 -23.358557 -5.049193 13.550678 +7010 1927 4 0 -22.257880 -5.191735 14.515317 +7011 1928 6 0 -2.385157 12.751460 -2.313524 +7012 1928 4 0 -1.730031 13.357140 -2.644514 +7013 1928 4 0 -1.978595 12.282671 -1.585523 +7014 1929 6 0 -26.161645 14.565358 1.232440 +7015 1929 4 0 -26.706603 13.814255 1.347347 +7016 1929 4 0 -26.622850 15.329972 1.567273 +7017 1930 6 0 1.453589 -9.489501 -18.511074 +7018 1930 4 0 1.470127 -10.349425 -18.991155 +7019 1930 4 0 1.973543 -8.965754 -19.091787 +7020 1931 6 0 -0.660378 -18.577536 -12.938447 +7021 1931 4 0 -0.732583 -19.053338 -12.113581 +7022 1931 4 0 -0.517701 -19.272917 -13.578982 +7023 1932 6 0 14.312654 12.150861 -6.246651 +7024 1932 4 0 14.287806 12.704737 -5.491569 +7025 1932 4 0 15.175580 11.801455 -6.299294 +7026 1933 6 0 18.998590 6.532260 -0.632888 +7027 1933 4 0 18.366049 5.787028 -0.799484 +7028 1933 4 0 19.311853 6.485139 0.272589 +7029 1934 6 0 5.329915 17.883588 20.342830 +7030 1934 4 0 4.796701 18.410992 19.709020 +7031 1934 4 0 4.770971 17.852635 21.154570 +7032 1935 6 0 24.723592 -6.944303 -11.741165 +7033 1935 4 0 24.780327 -6.008688 -11.867155 +7034 1935 4 0 24.690407 -7.329055 -12.639425 +7035 1936 6 0 -23.122003 4.618796 18.181339 +7036 1936 4 0 -23.209287 5.265752 18.869409 +7037 1936 4 0 -23.988906 4.549652 17.803581 +7038 1937 6 0 8.709146 17.478249 5.929770 +7039 1937 4 0 7.992855 18.166454 5.872705 +7040 1937 4 0 9.532770 18.014027 5.879190 +7041 1938 6 0 -25.145193 10.967387 14.467030 +7042 1938 4 0 -25.638192 11.462461 13.811080 +7043 1938 4 0 -25.115880 11.602045 15.194844 +7044 1939 6 0 -6.270672 10.298692 -9.326284 +7045 1939 4 0 -6.326041 9.841909 -8.460997 +7046 1939 4 0 -5.298295 10.155581 -9.629880 +7047 1940 6 0 8.331282 15.667208 -4.044961 +7048 1940 4 0 8.081425 16.068754 -3.248975 +7049 1940 4 0 7.784433 16.176579 -4.661216 +7050 1941 6 0 -4.605111 3.075866 17.330627 +7051 1941 4 0 -4.999875 2.960715 16.481841 +7052 1941 4 0 -5.159040 3.212840 18.083160 +7053 1942 6 0 14.687017 -3.513814 10.903431 +7054 1942 4 0 14.499277 -3.337699 11.823116 +7055 1942 4 0 14.262838 -4.331541 10.602044 +7056 1943 6 0 -20.872612 6.379762 10.816794 +7057 1943 4 0 -20.860809 7.234769 10.341581 +7058 1943 4 0 -20.061300 6.341520 11.384808 +7059 1944 6 0 7.161896 -4.360755 17.634105 +7060 1944 4 0 8.175987 -4.400233 17.464973 +7061 1944 4 0 7.057446 -4.853463 18.480499 +7062 1945 6 0 -3.475038 11.316770 16.798166 +7063 1945 4 0 -2.755042 10.845936 17.155120 +7064 1945 4 0 -3.489190 11.054731 15.856176 +7065 1946 6 0 15.663266 8.649743 3.198716 +7066 1946 4 0 15.359027 9.298705 3.810376 +7067 1946 4 0 16.192400 8.008866 3.672568 +7068 1947 6 0 5.436707 -20.461241 11.921265 +7069 1947 4 0 5.119701 -19.606856 11.530637 +7070 1947 4 0 4.713208 -20.630626 12.549382 +7071 1948 6 0 -4.801212 -17.868960 -3.936676 +7072 1948 4 0 -5.438715 -17.659702 -4.657529 +7073 1948 4 0 -4.229156 -18.589597 -4.194370 +7074 1949 6 0 -15.253442 11.238290 -10.212163 +7075 1949 4 0 -14.642285 11.918974 -10.588009 +7076 1949 4 0 -16.099309 11.643007 -10.393989 +7077 1950 6 0 26.686176 10.830985 20.584564 +7078 1950 4 0 26.369951 11.360874 21.358365 +7079 1950 4 0 26.509688 9.944710 20.906243 +7080 1951 6 0 12.561683 17.569279 18.161912 +7081 1951 4 0 12.373224 16.635553 17.927044 +7082 1951 4 0 11.953579 17.940076 18.749558 +7083 1952 6 0 -7.212093 -10.307008 17.334494 +7084 1952 4 0 -6.512620 -10.511909 17.944932 +7085 1952 4 0 -7.614860 -11.144180 17.014381 +7086 1953 6 0 1.066613 3.381658 18.538737 +7087 1953 4 0 1.472142 3.810443 19.302366 +7088 1953 4 0 0.121217 3.213227 18.686468 +7089 1954 6 0 26.591569 20.388220 15.314096 +7090 1954 4 0 27.027629 19.549241 15.003737 +7091 1954 4 0 25.677162 20.106742 15.492223 +7092 1955 6 0 -12.980829 3.037173 -5.149300 +7093 1955 4 0 -13.518049 2.271141 -5.381098 +7094 1955 4 0 -13.015144 3.271986 -4.233059 +7095 1956 6 0 -15.670290 -19.461795 -8.693893 +7096 1956 4 0 -15.312346 -19.371467 -7.762922 +7097 1956 4 0 -15.700912 -18.579237 -9.112271 +7098 1957 6 0 18.498310 -6.951013 11.923309 +7099 1957 4 0 19.331146 -6.980278 12.293062 +7100 1957 4 0 17.952458 -6.708175 12.679535 +7101 1958 6 0 22.848965 14.115566 0.206953 +7102 1958 4 0 23.127347 14.768732 -0.415947 +7103 1958 4 0 23.434401 14.218348 0.991573 +7104 1959 6 0 -23.977260 16.643521 -8.138268 +7105 1959 4 0 -24.563932 16.858836 -8.896849 +7106 1959 4 0 -23.095154 16.760370 -8.386216 +7107 1960 6 0 -26.584391 -6.397854 5.547650 +7108 1960 4 0 -25.925294 -7.061435 5.741608 +7109 1960 4 0 -26.133892 -5.544387 5.442967 +7110 1961 6 0 2.060216 -10.468459 10.640375 +7111 1961 4 0 2.489904 -9.711105 10.219505 +7112 1961 4 0 1.131111 -10.283322 10.616360 +7113 1962 6 0 5.954667 9.758583 -20.555530 +7114 1962 4 0 6.264304 10.543474 -21.120622 +7115 1962 4 0 5.484413 9.147185 -21.197897 +7116 1963 6 0 24.786566 -15.292270 2.666103 +7117 1963 4 0 23.947578 -15.213745 2.181575 +7118 1963 4 0 24.621364 -16.114647 3.180504 +7119 1964 6 0 -9.238549 4.246640 18.608373 +7120 1964 4 0 -8.516205 4.915950 18.512268 +7121 1964 4 0 -8.905672 3.343488 18.421048 +7122 1965 6 0 4.458783 0.783326 15.910622 +7123 1965 4 0 4.333357 -0.156607 15.829450 +7124 1965 4 0 5.377583 0.813141 16.228468 +7125 1966 6 0 2.440654 19.498822 -16.520052 +7126 1966 4 0 1.894281 18.987314 -15.882707 +7127 1966 4 0 2.550447 18.871750 -17.222238 +7128 1967 6 0 -14.387304 8.489545 5.108260 +7129 1967 4 0 -14.330824 9.314254 5.570879 +7130 1967 4 0 -13.611936 7.964241 5.306370 +7131 1968 6 0 -5.680779 -19.561928 -0.391390 +7132 1968 4 0 -6.492940 -19.118143 -0.731363 +7133 1968 4 0 -5.761503 -20.446667 -0.611520 +7134 1969 6 0 0.364483 -0.976730 20.596640 +7135 1969 4 0 0.190818 -1.943299 20.568078 +7136 1969 4 0 -0.296384 -0.570410 19.967598 +7137 1970 6 0 -20.103572 15.327950 -3.864750 +7138 1970 4 0 -20.721760 16.087200 -3.977948 +7139 1970 4 0 -19.620299 15.411599 -4.730333 +7140 1971 6 0 7.762229 -15.911349 -12.044815 +7141 1971 4 0 8.618390 -15.446157 -11.951239 +7142 1971 4 0 8.056718 -16.844883 -11.932849 +7143 1972 6 0 -14.271772 -19.114636 20.444087 +7144 1972 4 0 -13.631359 -18.451185 20.013255 +7145 1972 4 0 -14.788312 -18.613074 21.058254 +7146 1973 6 0 -17.296785 -16.270141 -5.846230 +7147 1973 4 0 -16.661324 -16.986407 -5.791657 +7148 1973 4 0 -17.698563 -16.270611 -6.699261 +7149 1974 6 0 5.461014 -17.908610 10.258639 +7150 1974 4 0 6.041339 -18.066045 9.495427 +7151 1974 4 0 5.907462 -17.113295 10.672048 +7152 1975 6 0 -6.579640 -20.864919 -3.728078 +7153 1975 4 0 -6.197014 -21.129682 -2.892954 +7154 1975 4 0 -5.867159 -20.529771 -4.364102 +7155 1976 6 0 15.290566 -16.899037 3.541007 +7156 1976 4 0 15.456923 -17.854501 3.506824 +7157 1976 4 0 14.682578 -16.661722 4.258103 +7158 1977 6 0 -8.595092 -1.638190 20.084084 +7159 1977 4 0 -8.261779 -2.590969 20.168832 +7160 1977 4 0 -7.852015 -1.108351 20.332316 +7161 1978 6 0 -20.323788 -5.436750 0.324161 +7162 1978 4 0 -20.170009 -5.941054 1.094644 +7163 1978 4 0 -21.208252 -5.031900 0.601954 +7164 1979 6 0 -2.393237 8.004242 -11.498413 +7165 1979 4 0 -2.950404 8.660356 -11.054135 +7166 1979 4 0 -3.061318 7.581791 -12.073133 +7167 1980 6 0 -22.912771 3.860494 -12.441206 +7168 1980 4 0 -23.451777 3.037762 -12.348507 +7169 1980 4 0 -22.899565 4.032930 -13.430208 +7170 1981 6 0 20.362995 17.824512 -13.264003 +7171 1981 4 0 19.551615 17.496626 -12.844707 +7172 1981 4 0 20.082478 18.300222 -14.079166 +7173 1982 6 0 -24.585913 -0.746630 -0.896798 +7174 1982 4 0 -24.470331 -1.075027 -1.802806 +7175 1982 4 0 -23.819676 -0.946255 -0.373167 +7176 1983 6 0 -19.535789 -9.056148 -13.988499 +7177 1983 4 0 -19.846462 -8.673779 -13.166776 +7178 1983 4 0 -19.115510 -8.309283 -14.534612 +7179 1984 6 0 14.390022 6.679518 12.730957 +7180 1984 4 0 15.232081 6.289813 12.946155 +7181 1984 4 0 14.506655 7.667961 12.798775 +7182 1985 6 0 -13.116074 -0.366672 20.319004 +7183 1985 4 0 -12.270792 -0.638533 19.918398 +7184 1985 4 0 -13.671647 -1.133311 20.295523 +7185 1986 6 0 -8.591511 -19.336122 8.863799 +7186 1986 4 0 -9.117090 -20.010877 8.426692 +7187 1986 4 0 -7.862918 -19.753372 9.330648 +7188 1987 6 0 17.402278 20.652639 13.900402 +7189 1987 4 0 17.697788 21.603581 13.957892 +7190 1987 4 0 17.312316 20.500438 12.944824 +7191 1988 6 0 8.201262 9.483818 13.348516 +7192 1988 4 0 7.444873 10.096390 13.607594 +7193 1988 4 0 8.957598 10.011937 13.627746 +7194 1989 6 0 7.585535 14.800848 -12.327563 +7195 1989 4 0 7.057327 14.353832 -11.664194 +7196 1989 4 0 7.019891 15.502887 -12.695142 +7197 1990 6 0 -25.423194 -2.683175 -19.281520 +7198 1990 4 0 -25.154720 -3.154251 -18.493055 +7199 1990 4 0 -24.615481 -2.633480 -19.773081 +7200 1991 6 0 19.725045 -13.114787 8.444878 +7201 1991 4 0 19.513124 -14.034339 8.634210 +7202 1991 4 0 20.698306 -13.102042 8.543928 +7203 1992 6 0 20.099503 -20.282525 -15.985101 +7204 1992 4 0 20.708189 -19.889578 -15.319196 +7205 1992 4 0 19.393142 -19.575319 -15.986140 +7206 1993 6 0 12.771061 16.100563 -19.111418 +7207 1993 4 0 12.131597 16.778356 -19.314806 +7208 1993 4 0 12.464661 15.303336 -19.572804 +7209 1994 6 0 7.091753 -14.703139 17.991009 +7210 1994 4 0 7.807603 -15.309333 17.938259 +7211 1994 4 0 7.194027 -14.118016 17.231754 +7212 1995 6 0 -22.592481 8.686176 -7.047127 +7213 1995 4 0 -22.216240 9.064017 -6.202984 +7214 1995 4 0 -23.491060 9.070100 -7.232883 +7215 1996 6 0 -4.638462 -13.691402 17.535113 +7216 1996 4 0 -4.741933 -14.552763 17.998987 +7217 1996 4 0 -3.917812 -13.768318 16.891949 +7218 1997 6 0 15.674081 -9.755387 -16.113189 +7219 1997 4 0 16.400378 -9.301702 -15.729512 +7220 1997 4 0 15.141124 -9.061926 -16.542582 +7221 1998 6 0 -13.702316 -19.909047 -12.268941 +7222 1998 4 0 -14.359478 -19.319853 -12.555858 +7223 1998 4 0 -14.123812 -20.688800 -11.912022 +7224 1999 6 0 24.541571 12.760808 8.882057 +7225 1999 4 0 24.177431 13.512218 9.353984 +7226 1999 4 0 24.288780 12.867460 7.942115 +7227 2000 6 0 -7.687548 20.108508 10.397741 +7228 2000 4 0 -6.786045 20.459581 10.465576 +7229 2000 4 0 -7.840032 19.590481 9.619893 +7230 2001 6 0 17.691564 14.211194 -11.948720 +7231 2001 4 0 16.837678 14.621970 -11.842799 +7232 2001 4 0 18.118330 14.755742 -12.626475 +7233 2002 6 0 21.348057 -7.329463 -13.375832 +7234 2002 4 0 21.593345 -6.492239 -13.815720 +7235 2002 4 0 21.736068 -7.343951 -12.513154 +7236 2003 6 0 -19.887601 4.039241 4.011716 +7237 2003 4 0 -20.804227 3.899388 4.382950 +7238 2003 4 0 -19.888370 5.029157 3.892591 +7239 2004 6 0 -25.084134 8.583682 -19.308703 +7240 2004 4 0 -25.512658 8.302589 -20.191094 +7241 2004 4 0 -24.552230 7.802502 -19.104750 +7242 2005 6 0 9.783143 -8.944234 15.919722 +7243 2005 4 0 9.846305 -9.847677 16.313657 +7244 2005 4 0 10.422901 -8.539313 16.532052 +7245 2006 6 0 24.921152 14.233454 -9.328043 +7246 2006 4 0 25.485037 14.435637 -8.538860 +7247 2006 4 0 24.550831 15.052607 -9.617520 +7248 2007 6 0 -5.336150 -19.944956 -15.675499 +7249 2007 4 0 -4.550070 -20.475028 -15.352798 +7250 2007 4 0 -4.968558 -19.050199 -15.973828 +7251 2008 6 0 -15.773463 -12.281833 -13.129558 +7252 2008 4 0 -15.686354 -12.889867 -12.384071 +7253 2008 4 0 -15.452029 -12.783419 -13.894154 +7254 2009 6 0 -4.300139 -7.123836 -2.160106 +7255 2009 4 0 -3.342814 -7.235681 -2.390788 +7256 2009 4 0 -4.824947 -7.659223 -2.750865 +7257 2010 6 0 -25.789560 20.874236 19.526065 +7258 2010 4 0 -24.843357 21.124661 19.555308 +7259 2010 4 0 -26.065421 21.149679 18.673765 +7260 2011 6 0 -9.146229 1.424908 -20.523854 +7261 2011 4 0 -10.001499 1.119683 -20.181523 +7262 2011 4 0 -8.546249 0.921170 -20.019617 +7263 2012 6 0 26.101075 5.848590 12.988450 +7264 2012 4 0 26.554693 5.084410 12.637458 +7265 2012 4 0 25.161381 5.669725 12.803554 +7266 2013 6 0 9.006687 19.040346 -18.186210 +7267 2013 4 0 8.065932 18.907108 -18.115528 +7268 2013 4 0 9.047297 19.909251 -18.666859 +7269 2014 6 0 -7.293872 14.178171 -1.883075 +7270 2014 4 0 -6.467767 14.351226 -2.386146 +7271 2014 4 0 -7.610529 15.055318 -1.621187 +7272 2015 6 0 -6.991462 19.787403 0.500962 +7273 2015 4 0 -6.438660 19.949638 1.223968 +7274 2015 4 0 -7.711116 19.103046 0.704655 +7275 2016 6 0 27.160597 -2.308726 -10.478195 +7276 2016 4 0 26.892593 -1.628933 -9.894058 +7277 2016 4 0 26.370866 -2.910166 -10.699907 +7278 2017 6 0 20.720937 15.282200 -14.602248 +7279 2017 4 0 19.787625 15.378072 -14.861312 +7280 2017 4 0 21.253153 16.033456 -14.917484 +7281 2018 6 0 -1.717777 3.126430 19.684869 +7282 2018 4 0 -2.457020 3.742545 19.704262 +7283 2018 4 0 -1.981408 2.239558 19.670325 +7284 2019 6 0 -14.236932 -8.531350 -17.888137 +7285 2019 4 0 -13.483311 -8.743594 -17.293313 +7286 2019 4 0 -14.879621 -9.247417 -17.747177 +7287 2020 6 0 -4.783415 -4.020396 -20.532866 +7288 2020 4 0 -4.012136 -4.566525 -20.414031 +7289 2020 4 0 -5.530185 -4.500179 -20.351823 +7290 2021 6 0 -13.666695 2.341198 -19.917613 +7291 2021 4 0 -13.647430 2.522072 -20.842149 +7292 2021 4 0 -14.523681 2.756089 -19.651511 +7293 2022 6 0 3.688675 -20.632144 14.338255 +7294 2022 4 0 4.124765 -20.055049 14.958708 +7295 2022 4 0 3.773276 -21.474844 14.693545 +7296 2023 6 0 -20.711810 11.153254 -5.295425 +7297 2023 4 0 -20.997628 10.543621 -4.576628 +7298 2023 4 0 -20.872806 11.978037 -4.877765 +7299 2024 6 0 24.053294 -19.987538 -18.448521 +7300 2024 4 0 23.997797 -20.379984 -19.321399 +7301 2024 4 0 24.605029 -20.616521 -17.920358 +7302 2025 6 0 18.893096 0.346665 4.419514 +7303 2025 4 0 18.836810 -0.563948 4.138422 +7304 2025 4 0 19.384494 0.416823 5.258191 +7305 2026 6 0 1.611674 7.827775 17.729516 +7306 2026 4 0 1.683155 6.883076 17.518073 +7307 2026 4 0 0.776664 7.948423 18.173512 +7308 2027 6 0 9.885872 -10.367999 -15.423519 +7309 2027 4 0 9.747228 -11.080640 -16.152068 +7310 2027 4 0 9.165955 -9.782881 -15.477159 +7311 2028 6 0 -8.001025 -8.903978 20.363588 +7312 2028 4 0 -7.919331 -9.384725 21.262606 +7313 2028 4 0 -8.555002 -9.547097 19.892421 +7314 2029 6 0 -5.444250 -12.618432 -20.512332 +7315 2029 4 0 -4.642289 -13.086364 -20.688100 +7316 2029 4 0 -5.443229 -12.055754 -19.736438 +7317 2030 6 0 13.515262 -10.012095 19.152766 +7318 2030 4 0 12.845808 -9.927516 19.858658 +7319 2030 4 0 14.340617 -9.646593 19.590648 +7320 2031 6 0 -8.356973 -7.803379 16.925718 +7321 2031 4 0 -8.140830 -7.917106 15.999678 +7322 2031 4 0 -8.084091 -8.687693 17.308394 +7323 2032 6 0 19.760910 -2.370831 2.421662 +7324 2032 4 0 20.560599 -1.857333 2.578796 +7325 2032 4 0 19.273809 -1.863655 1.723372 +7326 2033 6 0 16.532929 9.397948 -13.603509 +7327 2033 4 0 16.407542 10.353638 -13.545246 +7328 2033 4 0 17.450225 9.202690 -13.801843 +7329 2034 6 0 3.043298 -8.545676 8.964253 +7330 2034 4 0 2.418694 -7.834314 8.742863 +7331 2034 4 0 3.163757 -8.907052 8.081541 +7332 2035 6 0 -5.314921 -13.601995 0.201579 +7333 2035 4 0 -4.416708 -13.534559 -0.042940 +7334 2035 4 0 -5.417418 -14.438498 0.657175 +7335 2036 6 0 1.416185 6.843538 -11.410595 +7336 2036 4 0 1.633970 7.742217 -11.087491 +7337 2036 4 0 0.761793 6.459053 -10.786036 +7338 2037 6 0 19.767922 9.421307 -8.193013 +7339 2037 4 0 19.914480 8.466041 -8.135440 +7340 2037 4 0 19.575103 9.558308 -9.177735 +7341 2038 6 0 26.172410 11.919029 3.610739 +7342 2038 4 0 25.535585 12.193435 4.240735 +7343 2038 4 0 26.042272 10.983029 3.549151 +7344 2039 6 0 -21.735841 2.144400 18.211620 +7345 2039 4 0 -22.104009 2.960860 18.654752 +7346 2039 4 0 -22.313927 1.460249 18.492995 +7347 2040 6 0 1.557972 -12.790578 15.622137 +7348 2040 4 0 0.853719 -13.365055 15.935999 +7349 2040 4 0 1.906483 -13.231160 14.910699 +7350 2041 6 0 -13.258859 4.104211 -2.315588 +7351 2041 4 0 -13.608254 4.812418 -2.986967 +7352 2041 4 0 -14.087487 3.646024 -2.095452 +7353 2042 6 0 -26.307679 -0.111768 -20.714469 +7354 2042 4 0 -25.812995 0.720645 -20.583269 +7355 2042 4 0 -25.528348 -0.678575 -20.909717 +7356 2043 6 0 11.642962 12.398152 -6.461792 +7357 2043 4 0 11.596820 12.230702 -5.538685 +7358 2043 4 0 12.552221 12.400971 -6.683261 +7359 2044 6 0 9.805562 12.056033 0.297197 +7360 2044 4 0 10.657658 12.469311 0.654830 +7361 2044 4 0 9.202541 11.759951 0.941289 +7362 2045 6 0 -6.826832 12.393010 9.213697 +7363 2045 4 0 -6.537792 11.811004 8.506850 +7364 2045 4 0 -6.100427 12.347418 9.835231 +7365 2046 6 0 20.133141 -17.531986 18.955618 +7366 2046 4 0 19.437169 -18.073233 18.517051 +7367 2046 4 0 20.798807 -17.276415 18.236384 +7368 2047 6 0 16.549382 -10.626162 16.457286 +7369 2047 4 0 16.551942 -9.717820 16.759418 +7370 2047 4 0 16.147566 -11.023294 17.252231 +7371 2048 6 0 1.789829 14.643494 -5.619552 +7372 2048 4 0 1.048933 14.228176 -6.039228 +7373 2048 4 0 1.669053 14.391952 -4.707740 +7374 2049 6 0 4.371658 -12.694698 -12.318562 +7375 2049 4 0 4.915573 -13.184619 -11.694576 +7376 2049 4 0 4.915130 -11.958781 -12.720896 +7377 2050 6 0 -11.293082 0.237019 -19.250596 +7378 2050 4 0 -11.966255 0.783547 -19.678369 +7379 2050 4 0 -11.548510 -0.704739 -19.364586 +7380 2051 6 0 -2.484806 -0.918295 -14.668621 +7381 2051 4 0 -2.177091 -1.152345 -15.589201 +7382 2051 4 0 -1.695025 -0.610144 -14.221845 +7383 2052 6 0 25.578482 -18.001184 -14.174826 +7384 2052 4 0 24.716923 -17.519582 -14.309086 +7385 2052 4 0 26.303012 -17.438870 -14.436407 +7386 2053 6 0 23.132217 17.040870 -8.595297 +7387 2053 4 0 23.143509 17.518773 -7.762629 +7388 2053 4 0 22.923741 16.132690 -8.372110 +7389 2054 6 0 2.923503 11.871856 -20.547177 +7390 2054 4 0 2.198503 11.234695 -20.236214 +7391 2054 4 0 3.511763 11.911115 -19.844001 +7392 2055 6 0 2.179585 4.144910 -11.877852 +7393 2055 4 0 2.151655 5.096818 -11.803012 +7394 2055 4 0 2.729899 3.974673 -12.667805 +7395 2056 6 0 26.669404 -11.624549 13.477594 +7396 2056 4 0 25.735733 -11.431455 13.654851 +7397 2056 4 0 27.077849 -11.550313 14.372992 +7398 2057 6 0 24.873075 -11.097731 10.824618 +7399 2057 4 0 25.209728 -11.897467 10.432443 +7400 2057 4 0 25.614915 -10.682030 11.193580 +7401 2058 6 0 -1.826162 -17.791623 4.511609 +7402 2058 4 0 -1.466714 -17.114337 3.985489 +7403 2058 4 0 -1.066332 -18.298254 4.813832 +7404 2059 6 0 24.895806 4.512131 -17.916870 +7405 2059 4 0 24.133889 5.103597 -18.006070 +7406 2059 4 0 25.725831 4.889044 -18.163865 +7407 2060 6 0 -20.306217 1.655909 -0.658591 +7408 2060 4 0 -19.365596 1.457605 -0.837148 +7409 2060 4 0 -20.259907 1.991986 0.211928 +7410 2061 6 0 13.312009 19.524936 16.387048 +7411 2061 4 0 13.933293 19.167357 15.722455 +7412 2061 4 0 13.259660 18.816564 17.092867 +7413 2062 6 0 -6.291960 0.181353 20.409012 +7414 2062 4 0 -5.886986 -0.391564 19.697954 +7415 2062 4 0 -6.191361 -0.287042 21.246927 +7416 2063 6 0 -11.925605 -14.118393 11.513337 +7417 2063 4 0 -12.390021 -13.899494 10.677619 +7418 2063 4 0 -11.499213 -13.318961 11.825704 +7419 2064 6 0 25.690900 -20.544963 -6.726643 +7420 2064 4 0 25.848636 -19.865858 -7.443635 +7421 2064 4 0 25.541265 -21.356361 -7.237324 +7422 2065 6 0 -10.266763 4.606069 -14.148088 +7423 2065 4 0 -10.666583 4.007171 -14.802051 +7424 2065 4 0 -10.592890 5.506386 -14.316808 +7425 2066 6 0 -13.700313 11.443217 -7.703372 +7426 2066 4 0 -14.305805 11.566376 -8.451855 +7427 2066 4 0 -13.797593 10.519533 -7.520760 +7428 2067 6 0 19.896960 -5.260769 2.047938 +7429 2067 4 0 20.639909 -5.673868 2.498703 +7430 2067 4 0 19.902578 -4.275845 1.972121 +7431 2068 6 0 27.483595 4.667361 6.350280 +7432 2068 4 0 27.612327 3.821689 6.792070 +7433 2068 4 0 27.474096 5.241160 7.041075 +7434 2069 6 0 16.838162 -11.125573 -1.977415 +7435 2069 4 0 17.018636 -10.652759 -1.169733 +7436 2069 4 0 17.083147 -12.071800 -1.748280 +7437 2070 6 0 -3.825915 15.193309 16.332435 +7438 2070 4 0 -3.868970 16.088775 15.893612 +7439 2070 4 0 -2.922251 14.779372 16.138541 +7440 2071 6 0 -4.999597 -20.685905 -5.935566 +7441 2071 4 0 -5.618635 -20.401156 -6.580918 +7442 2071 4 0 -5.077868 -21.673790 -5.909799 +7443 2072 6 0 -20.562039 0.140160 5.669443 +7444 2072 4 0 -20.686050 0.843366 6.344794 +7445 2072 4 0 -20.730893 0.582485 4.804185 +7446 2073 6 0 -6.671827 11.535978 19.876374 +7447 2073 4 0 -7.261521 11.364859 20.662982 +7448 2073 4 0 -7.266511 12.144069 19.377508 +7449 2074 6 0 4.191517 -2.479488 13.355524 +7450 2074 4 0 4.884007 -2.164404 14.019008 +7451 2074 4 0 3.372874 -2.220309 13.814811 +7452 2075 6 0 8.749947 16.191041 8.535964 +7453 2075 4 0 8.732297 16.863275 9.229059 +7454 2075 4 0 8.691576 16.634682 7.644507 +7455 2076 6 0 -25.961494 14.282183 -15.383787 +7456 2076 4 0 -25.985646 15.282436 -15.164995 +7457 2076 4 0 -26.833664 13.915918 -15.151600 +7458 2077 6 0 27.385198 14.529212 8.142639 +7459 2077 4 0 26.412128 14.399556 8.083311 +7460 2077 4 0 27.495002 15.490751 8.294493 +7461 2078 6 0 14.126472 -14.702927 -8.987957 +7462 2078 4 0 14.925682 -14.560974 -8.448204 +7463 2078 4 0 13.489976 -15.067821 -8.401821 +7464 2079 6 0 -23.336636 -6.121383 -20.639900 +7465 2079 4 0 -22.869154 -5.535755 -20.072156 +7466 2079 4 0 -24.124908 -6.450781 -20.113919 +7467 2080 6 0 -0.774826 -13.203604 16.888646 +7468 2080 4 0 -1.468020 -13.376023 16.234547 +7469 2080 4 0 -0.931871 -12.304587 17.229608 +7470 2081 6 0 9.061125 5.283331 17.143683 +7471 2081 4 0 9.916783 5.174639 16.603587 +7472 2081 4 0 8.778289 6.220910 17.070877 +7473 2082 6 0 -25.315423 9.781118 -15.359265 +7474 2082 4 0 -24.471315 9.264358 -15.331486 +7475 2082 4 0 -25.606191 9.792640 -14.434801 +7476 2083 6 0 -10.967554 -10.738154 -9.731527 +7477 2083 4 0 -11.765483 -10.936834 -9.181748 +7478 2083 4 0 -10.379375 -10.133651 -9.266538 +7479 2084 6 0 -1.488275 3.623351 -16.767913 +7480 2084 4 0 -0.882657 4.371387 -16.669247 +7481 2084 4 0 -1.492403 3.254437 -17.674715 +7482 2085 6 0 12.452312 -19.040060 3.375147 +7483 2085 4 0 12.871486 -19.871899 3.246114 +7484 2085 4 0 11.754508 -18.893125 2.776534 +7485 2086 6 0 -15.573729 -12.221722 0.716973 +7486 2086 4 0 -15.002380 -12.832434 0.254063 +7487 2086 4 0 -16.254430 -12.772029 1.034977 +7488 2087 6 0 13.752256 -4.097413 -18.870896 +7489 2087 4 0 14.581949 -3.712772 -18.513163 +7490 2087 4 0 13.271688 -3.261042 -18.845949 +7491 2088 6 0 -21.641111 -0.680590 0.005430 +7492 2088 4 0 -21.093432 0.076279 -0.365044 +7493 2088 4 0 -21.445828 -0.814377 0.968664 +7494 2089 6 0 15.724559 3.520455 6.328412 +7495 2089 4 0 14.921141 3.234676 6.784467 +7496 2089 4 0 15.461693 3.698167 5.450324 +7497 2090 6 0 -27.214078 -11.147965 5.082767 +7498 2090 4 0 -26.390239 -11.278816 5.572480 +7499 2090 4 0 -27.321203 -12.054005 4.683669 +7500 2091 6 0 13.328280 7.582484 -18.567300 +7501 2091 4 0 14.185844 7.864153 -18.950423 +7502 2091 4 0 12.732777 7.507446 -19.290185 +7503 2092 6 0 -16.683838 -4.586561 -13.916725 +7504 2092 4 0 -16.820834 -4.523796 -14.842726 +7505 2092 4 0 -15.965498 -5.193692 -13.685180 +7506 2093 6 0 -19.170260 12.551147 12.092952 +7507 2093 4 0 -19.387562 11.609567 12.048568 +7508 2093 4 0 -18.718827 12.726237 11.286473 +7509 2094 6 0 -2.873940 -18.817391 -0.630738 +7510 2094 4 0 -2.585106 -18.870724 -1.613607 +7511 2094 4 0 -3.793192 -19.000736 -0.761036 +7512 2095 6 0 -15.440453 11.669180 16.607856 +7513 2095 4 0 -15.211613 10.749409 16.748182 +7514 2095 4 0 -15.523689 11.929189 17.511524 +7515 2096 6 0 0.676885 9.019049 7.967361 +7516 2096 4 0 -0.188437 8.924038 8.296825 +7517 2096 4 0 1.100577 8.314509 8.389075 +7518 2097 6 0 -12.658914 -13.169855 -2.443871 +7519 2097 4 0 -13.329719 -13.325087 -1.824892 +7520 2097 4 0 -12.438077 -13.988972 -2.754186 +7521 2098 6 0 -16.248882 -11.627131 16.273828 +7522 2098 4 0 -16.071661 -12.035171 17.149648 +7523 2098 4 0 -15.584055 -10.905357 16.247158 +7524 2099 6 0 7.587639 18.040490 0.648325 +7525 2099 4 0 7.127313 17.621736 1.427370 +7526 2099 4 0 8.472509 18.025945 0.938181 +7527 2100 6 0 -21.260403 -7.316165 -17.769548 +7528 2100 4 0 -21.464936 -6.579095 -18.356837 +7529 2100 4 0 -21.090642 -6.945093 -16.896335 +7530 2101 6 0 16.016635 -1.860641 -2.314369 +7531 2101 4 0 16.938184 -1.677711 -2.476393 +7532 2101 4 0 15.526197 -1.857629 -3.158683 +7533 2102 6 0 4.492292 -4.776655 -20.071507 +7534 2102 4 0 4.666835 -4.194018 -19.383577 +7535 2102 4 0 5.379154 -5.033244 -20.511472 +7536 2103 6 0 -15.720931 20.128785 -10.578428 +7537 2103 4 0 -15.839702 20.941641 -10.100642 +7538 2103 4 0 -16.315376 20.178519 -11.349297 +7539 2104 6 0 -26.439198 6.163682 -9.860618 +7540 2104 4 0 -25.627768 6.495816 -9.484731 +7541 2104 4 0 -26.911803 6.981208 -10.036013 +7542 2105 6 0 9.335945 11.329795 -3.722917 +7543 2105 4 0 8.644451 12.059424 -3.617751 +7544 2105 4 0 8.888513 10.554570 -4.126032 +7545 2106 6 0 -13.380471 10.478242 6.861111 +7546 2106 4 0 -13.220641 10.103750 7.786550 +7547 2106 4 0 -13.207886 11.438191 6.902907 +7548 2107 6 0 3.128674 -13.794262 17.620598 +7549 2107 4 0 2.638158 -13.260660 17.056399 +7550 2107 4 0 3.597573 -13.167888 18.155001 +7551 2108 6 0 -15.640110 12.239687 19.252890 +7552 2108 4 0 -15.744305 13.228589 19.346365 +7553 2108 4 0 -16.382496 11.838747 19.767704 +7554 2109 6 0 2.784908 9.116859 -10.197973 +7555 2109 4 0 3.297798 8.414513 -9.705521 +7556 2109 4 0 3.275248 9.528201 -10.883691 +7557 2110 6 0 -7.890712 -7.603783 -17.743202 +7558 2110 4 0 -7.124761 -7.008882 -17.935759 +7559 2110 4 0 -8.550851 -7.045750 -18.114982 +7560 2111 6 0 -13.699956 -6.291585 9.543158 +7561 2111 4 0 -14.665087 -6.196216 9.729838 +7562 2111 4 0 -13.399326 -5.367978 9.707420 +7563 2112 6 0 20.465588 -10.458716 3.145054 +7564 2112 4 0 20.979944 -10.701349 3.922596 +7565 2112 4 0 19.551694 -10.315318 3.519540 +7566 2113 6 0 -21.770772 17.965042 -17.112890 +7567 2113 4 0 -20.830189 18.026694 -16.817043 +7568 2113 4 0 -22.065602 18.901599 -17.079860 +7569 2114 6 0 -14.835473 -2.018047 -6.153382 +7570 2114 4 0 -15.436027 -2.198495 -6.881730 +7571 2114 4 0 -15.436197 -1.848312 -5.360006 +7572 2115 6 0 4.864928 -7.193456 16.503727 +7573 2115 4 0 4.980211 -6.246101 16.323915 +7574 2115 4 0 5.579734 -7.640000 16.024530 +7575 2116 6 0 19.120349 11.030815 -15.362470 +7576 2116 4 0 19.294800 10.826080 -16.279672 +7577 2116 4 0 19.622213 10.380633 -14.881548 +7578 2117 6 0 -0.977018 13.926628 -7.123442 +7579 2117 4 0 -1.852314 14.048847 -6.757564 +7580 2117 4 0 -1.008005 14.146864 -8.050474 +7581 2118 6 0 1.836955 20.649010 5.205237 +7582 2118 4 0 1.357046 19.856623 4.900209 +7583 2118 4 0 2.481382 20.946625 4.486330 +7584 2119 6 0 22.248352 0.089789 14.254305 +7585 2119 4 0 21.482126 0.622149 14.431275 +7586 2119 4 0 22.760633 -0.073685 15.065722 +7587 2120 6 0 4.943704 7.039238 -17.178880 +7588 2120 4 0 4.132510 7.341202 -17.610714 +7589 2120 4 0 5.316936 6.264192 -17.636046 +7590 2121 6 0 -13.513178 20.872697 -6.966661 +7591 2121 4 0 -12.917889 20.159554 -6.816410 +7592 2121 4 0 -13.438901 21.399519 -6.129707 +7593 2122 6 0 -26.783745 1.737872 -10.173855 +7594 2122 4 0 -27.406703 1.045834 -9.889439 +7595 2122 4 0 -26.563015 2.284868 -9.419251 +7596 2123 6 0 16.895897 -14.537239 -4.916419 +7597 2123 4 0 17.186118 -13.833540 -5.508216 +7598 2123 4 0 17.149098 -15.342322 -5.413605 +7599 2124 6 0 26.817205 -3.814990 8.332532 +7600 2124 4 0 26.423093 -3.721401 9.229654 +7601 2124 4 0 26.751966 -4.740274 8.261936 +7602 2125 6 0 26.660512 -8.107918 -18.699113 +7603 2125 4 0 27.143708 -8.664547 -19.302869 +7604 2125 4 0 27.318084 -7.817236 -18.086633 +7605 2126 6 0 10.208858 -14.799716 -11.685147 +7606 2126 4 0 10.229559 -13.857528 -11.605014 +7607 2126 4 0 10.909011 -14.996510 -12.361468 +7608 2127 6 0 -7.122161 12.606835 5.012358 +7609 2127 4 0 -6.742894 13.446553 5.343573 +7610 2127 4 0 -6.707272 11.958739 5.582727 +7611 2128 6 0 -1.649859 -17.353593 -19.765333 +7612 2128 4 0 -1.703196 -17.292489 -18.801764 +7613 2128 4 0 -0.740888 -17.269565 -19.956034 +7614 2129 6 0 -25.578511 10.750973 19.368175 +7615 2129 4 0 -25.759953 9.955006 18.909465 +7616 2129 4 0 -26.373616 10.876703 19.816004 +7617 2130 6 0 -15.512850 14.948587 19.552015 +7618 2130 4 0 -14.592416 15.278921 19.862734 +7619 2130 4 0 -15.517720 15.251241 18.670365 +7620 2131 6 0 -22.108713 15.986768 -19.097538 +7621 2131 4 0 -21.973356 16.492171 -18.298729 +7622 2131 4 0 -22.275608 15.084558 -18.884443 +7623 2132 6 0 -24.432040 1.967038 -20.402572 +7624 2132 4 0 -24.316057 2.005234 -19.442897 +7625 2132 4 0 -23.617246 1.596664 -20.796357 +7626 2133 6 0 0.976021 12.002153 3.317883 +7627 2133 4 0 1.233810 12.944966 3.271665 +7628 2133 4 0 1.053167 11.659322 4.215764 +7629 2134 6 0 -22.848328 -11.507211 20.792792 +7630 2134 4 0 -22.031691 -11.288244 20.331458 +7631 2134 4 0 -23.563342 -11.121670 20.237130 +7632 2135 6 0 5.372331 -6.390447 8.998397 +7633 2135 4 0 5.156327 -6.136745 8.105017 +7634 2135 4 0 4.867716 -7.183706 9.243399 +7635 2136 6 0 -5.077546 13.038740 -9.712665 +7636 2136 4 0 -4.384730 12.918197 -10.436683 +7637 2136 4 0 -5.739596 12.361322 -9.833579 +7638 2137 6 0 4.313864 -17.817036 1.578679 +7639 2137 4 0 3.642179 -17.175797 1.786403 +7640 2137 4 0 4.014882 -18.443226 0.872394 +7641 2138 6 0 -10.825600 -3.788470 12.345548 +7642 2138 4 0 -11.474785 -4.350281 12.848087 +7643 2138 4 0 -11.121245 -2.913918 12.572141 +7644 2139 6 0 -10.308333 17.332588 -19.108687 +7645 2139 4 0 -9.699779 18.058376 -18.760246 +7646 2139 4 0 -9.696827 16.600840 -19.450737 +7647 2140 6 0 20.367843 11.704165 19.663819 +7648 2140 4 0 19.894726 12.360595 20.126357 +7649 2140 4 0 20.501092 12.010854 18.743343 +7650 2141 6 0 4.454769 15.397642 -5.721382 +7651 2141 4 0 5.096605 14.668068 -5.812036 +7652 2141 4 0 3.560506 15.012254 -5.700523 +7653 2142 6 0 -10.186828 -2.388640 -11.736429 +7654 2142 4 0 -10.325119 -2.558008 -12.705589 +7655 2142 4 0 -10.806607 -2.883931 -11.193573 +7656 2143 6 0 -24.912356 3.520925 11.318625 +7657 2143 4 0 -24.410292 4.337248 11.078911 +7658 2143 4 0 -25.009199 2.856626 10.581227 +7659 2144 6 0 25.624082 -17.044203 16.133293 +7660 2144 4 0 26.569447 -17.105418 15.881796 +7661 2144 4 0 25.526730 -16.778186 17.038064 +7662 2145 6 0 -18.172292 -12.061346 20.656118 +7663 2145 4 0 -19.064000 -11.714052 20.415716 +7664 2145 4 0 -18.318393 -12.531580 21.542312 +7665 2146 6 0 -2.771360 17.065768 -3.605776 +7666 2146 4 0 -3.498372 16.467521 -3.261648 +7667 2146 4 0 -3.165333 17.613939 -4.263088 +7668 2147 6 0 3.828793 -18.285133 -12.035298 +7669 2147 4 0 4.572657 -18.613626 -12.559285 +7670 2147 4 0 4.121067 -17.462806 -11.547371 +7671 2148 6 0 6.372209 19.895468 -0.828574 +7672 2148 4 0 6.671245 19.260688 -0.181419 +7673 2148 4 0 6.498252 20.741942 -0.410853 +7674 2149 6 0 -26.077165 -2.986273 -6.579517 +7675 2149 4 0 -26.530567 -3.662357 -7.045915 +7676 2149 4 0 -25.278966 -3.412687 -6.199533 +7677 2150 6 0 1.066751 -11.604098 -7.437054 +7678 2150 4 0 0.780778 -12.103600 -8.170135 +7679 2150 4 0 0.490797 -10.859423 -7.390052 +7680 2151 6 0 26.435886 -19.880105 20.436273 +7681 2151 4 0 27.363986 -19.578464 20.393790 +7682 2151 4 0 25.964716 -19.053915 20.333618 +7683 2152 6 0 3.948373 18.634138 -19.227666 +7684 2152 4 0 4.776804 18.681442 -18.670875 +7685 2152 4 0 3.724437 19.545742 -19.268399 +7686 2153 6 0 6.895853 -2.593776 -14.926776 +7687 2153 4 0 6.939228 -1.872325 -14.297950 +7688 2153 4 0 5.922138 -2.668665 -14.881269 +7689 2154 6 0 -11.002838 -0.157918 -15.377800 +7690 2154 4 0 -11.039095 0.271800 -14.533222 +7691 2154 4 0 -11.858546 -0.101002 -15.791180 +7692 2155 6 0 -23.278682 -12.335400 16.986956 +7693 2155 4 0 -23.969958 -13.046960 17.013455 +7694 2155 4 0 -23.739191 -11.494386 17.223424 +7695 2156 6 0 -8.733901 10.961189 15.538536 +7696 2156 4 0 -9.664866 10.721280 15.448379 +7697 2156 4 0 -8.333145 10.082375 15.772687 +7698 2157 6 0 -18.407350 15.043497 -16.093194 +7699 2157 4 0 -17.602548 15.511802 -15.718946 +7700 2157 4 0 -18.860502 14.688871 -15.320254 +7701 2158 6 0 -7.717846 -19.245322 6.135762 +7702 2158 4 0 -8.369623 -18.587554 5.773934 +7703 2158 4 0 -8.005786 -19.439467 7.014406 +7704 2159 6 0 27.537835 -2.244938 17.802365 +7705 2159 4 0 26.595262 -2.186775 17.618048 +7706 2159 4 0 27.566413 -2.809518 18.555718 +7707 2160 6 0 14.035672 -13.942494 -5.025234 +7708 2160 4 0 13.436663 -14.726681 -5.087496 +7709 2160 4 0 14.937241 -14.361386 -5.014306 +7710 2161 6 0 -21.221588 13.030355 13.864922 +7711 2161 4 0 -20.364838 12.937985 13.362956 +7712 2161 4 0 -21.556169 12.132892 13.747752 +7713 2162 6 0 3.382602 17.477038 1.971338 +7714 2162 4 0 2.998725 16.711070 1.403757 +7715 2162 4 0 3.440438 18.202483 1.331855 +7716 2163 6 0 -27.449290 2.763472 -5.473864 +7717 2163 4 0 -26.862644 2.952928 -6.231930 +7718 2163 4 0 -28.220354 2.416823 -5.903707 +7719 2164 6 0 21.309171 1.208177 18.719816 +7720 2164 4 0 20.908787 2.039246 18.612886 +7721 2164 4 0 21.184556 0.863131 19.641302 +7722 2165 6 0 11.888692 16.675087 -12.603821 +7723 2165 4 0 10.999248 16.541633 -13.021832 +7724 2165 4 0 11.878107 16.199062 -11.723643 +7725 2166 6 0 15.960563 -12.459489 -12.277920 +7726 2166 4 0 16.878686 -12.644050 -12.500987 +7727 2166 4 0 16.057647 -11.602612 -11.757235 +7728 2167 6 0 -12.060427 7.034589 4.513332 +7729 2167 4 0 -11.557894 7.520852 3.823017 +7730 2167 4 0 -11.343768 6.740188 5.138402 +7731 2168 6 0 -8.561873 -15.574827 18.511819 +7732 2168 4 0 -8.355748 -14.726119 18.975068 +7733 2168 4 0 -9.321577 -15.327632 17.928691 +7734 2169 6 0 26.839386 -9.977418 -11.801214 +7735 2169 4 0 27.210714 -10.886833 -12.066458 +7736 2169 4 0 26.680237 -9.508287 -12.672668 +7737 2170 6 0 19.487816 -4.295750 -10.653772 +7738 2170 4 0 19.155987 -5.040203 -11.186489 +7739 2170 4 0 19.101905 -4.274245 -9.721574 +7740 2171 6 0 -2.617367 -9.196096 12.807798 +7741 2171 4 0 -3.053330 -8.849761 12.003083 +7742 2171 4 0 -1.757135 -8.732443 12.734709 +7743 2172 6 0 6.741614 9.283527 -17.879312 +7744 2172 4 0 6.380288 9.612761 -18.710343 +7745 2172 4 0 6.169408 8.510946 -17.615438 +7746 2173 6 0 -15.244518 -2.348788 -16.411194 +7747 2173 4 0 -15.286492 -3.293206 -16.627416 +7748 2173 4 0 -16.141604 -2.133344 -16.101761 +7749 2174 6 0 24.076224 14.005333 -20.764432 +7750 2174 4 0 23.579840 13.567519 -20.086274 +7751 2174 4 0 24.304722 13.264661 -21.387917 +7752 2175 6 0 5.197586 -0.122428 -17.048391 +7753 2175 4 0 5.961074 0.070496 -16.498322 +7754 2175 4 0 4.803638 0.707910 -17.262899 +7755 2176 6 0 -12.626531 20.869184 -20.635254 +7756 2176 4 0 -12.565754 20.478495 -19.764243 +7757 2176 4 0 -13.248230 21.560435 -20.592028 +7758 2177 6 0 -6.742302 15.365874 -8.317692 +7759 2177 4 0 -6.373557 14.699314 -8.910768 +7760 2177 4 0 -7.355781 15.918239 -8.809096 +7761 2178 6 0 -8.968953 -3.618531 16.586721 +7762 2178 4 0 -8.318587 -4.203738 17.052583 +7763 2178 4 0 -8.772937 -2.703569 16.930654 +7764 2179 6 0 4.646490 -13.425952 -20.543948 +7765 2179 4 0 5.006101 -13.053008 -19.771175 +7766 2179 4 0 4.114028 -14.244399 -20.306406 +7767 2180 6 0 20.560148 15.165785 18.388964 +7768 2180 4 0 20.026901 15.914780 18.133927 +7769 2180 4 0 20.137478 14.695974 19.131845 +7770 2181 6 0 16.253616 13.647989 17.466410 +7771 2181 4 0 16.144396 14.607506 17.611846 +7772 2181 4 0 15.603177 13.394335 16.728326 +7773 2182 6 0 -2.493112 -10.958918 18.158226 +7774 2182 4 0 -2.871350 -10.325469 17.572446 +7775 2182 4 0 -3.230138 -11.343072 18.670608 +7776 2183 6 0 24.417011 1.731847 15.781773 +7777 2183 4 0 24.256339 1.199810 16.598463 +7778 2183 4 0 24.103762 2.612690 16.033534 +7779 2184 6 0 23.869641 5.093835 -10.829152 +7780 2184 4 0 23.849127 5.899360 -10.350720 +7781 2184 4 0 24.806312 4.827153 -11.005653 +7782 2185 6 0 -25.326011 -10.985445 0.393748 +7783 2185 4 0 -24.487021 -11.323998 0.018652 +7784 2185 4 0 -25.846018 -10.577330 -0.299092 +7785 2186 6 0 -22.140365 -4.015548 -19.394205 +7786 2186 4 0 -21.298001 -3.731962 -19.753685 +7787 2186 4 0 -22.037014 -3.787820 -18.464135 +7788 2187 6 0 16.480100 17.378886 -8.149325 +7789 2187 4 0 15.944629 17.865308 -8.816984 +7790 2187 4 0 17.136048 16.933781 -8.707099 +7791 2188 6 0 9.225758 13.395457 -14.366037 +7792 2188 4 0 8.369757 13.485099 -14.794251 +7793 2188 4 0 9.149310 12.977217 -13.491919 +7794 2189 6 0 -11.512364 7.735604 17.233390 +7795 2189 4 0 -11.580776 7.745448 18.221759 +7796 2189 4 0 -10.572713 7.856344 17.057877 +7797 2190 6 0 22.313965 -17.567699 -18.743216 +7798 2190 4 0 22.795472 -18.390700 -18.665650 +7799 2190 4 0 21.527641 -17.771604 -19.283408 +7800 2191 6 0 26.008630 -8.991349 -9.190478 +7801 2191 4 0 26.251546 -9.200527 -10.105321 +7802 2191 4 0 25.207812 -9.493737 -9.000776 +7803 2192 6 0 16.930474 19.046264 7.447647 +7804 2192 4 0 16.385483 19.298108 8.210284 +7805 2192 4 0 17.081495 19.851182 6.876771 +7806 2193 6 0 -6.878192 14.458044 -14.342832 +7807 2193 4 0 -6.947724 15.178650 -14.986529 +7808 2193 4 0 -6.902494 14.876539 -13.459345 +7809 2194 6 0 -2.603745 -0.170130 11.118461 +7810 2194 4 0 -2.603735 0.193993 10.245898 +7811 2194 4 0 -2.301286 0.557857 11.700540 +7812 2195 6 0 -18.658918 6.935889 12.709416 +7813 2195 4 0 -18.611105 7.903442 12.826990 +7814 2195 4 0 -17.731206 6.682204 12.672567 +7815 2196 6 0 8.242150 20.321564 16.671943 +7816 2196 4 0 8.085884 19.395160 16.403784 +7817 2196 4 0 9.204603 20.443804 16.719883 +7818 2197 6 0 -26.194647 -1.598660 12.827976 +7819 2197 4 0 -25.470850 -1.539447 12.228660 +7820 2197 4 0 -26.434617 -2.532329 12.905279 +7821 2198 6 0 18.147255 11.834318 16.939503 +7822 2198 4 0 17.684791 12.638752 17.229443 +7823 2198 4 0 19.094703 11.992223 16.922098 +7824 2199 6 0 -24.103113 17.414200 -20.406032 +7825 2199 4 0 -24.841847 16.822155 -20.721607 +7826 2199 4 0 -23.364705 16.873068 -20.183752 +7827 2200 6 0 -20.188758 19.419367 -3.947439 +7828 2200 4 0 -20.092108 20.138589 -4.627770 +7829 2200 4 0 -20.779520 18.760391 -4.305720 +7830 2201 6 0 -19.169152 16.892293 -12.706791 +7831 2201 4 0 -18.376967 16.525250 -12.263419 +7832 2201 4 0 -19.451828 16.244073 -13.317784 +7833 2202 6 0 3.042793 -9.624584 6.339287 +7834 2202 4 0 2.126469 -9.764000 6.059404 +7835 2202 4 0 3.422607 -10.448883 6.082030 +7836 2203 6 0 26.796575 -0.250362 10.146355 +7837 2203 4 0 27.695465 -0.487351 9.790163 +7838 2203 4 0 26.991766 0.015930 11.058370 +7839 2204 6 0 -2.724018 -17.347993 -17.041468 +7840 2204 4 0 -3.685391 -17.148462 -17.004347 +7841 2204 4 0 -2.333214 -17.040061 -16.217705 +7842 2205 6 0 22.693834 -19.258880 -8.334918 +7843 2205 4 0 23.207274 -18.747223 -7.672504 +7844 2205 4 0 21.922700 -19.482635 -7.787257 +7845 2206 6 0 10.650819 14.245326 -8.863815 +7846 2206 4 0 10.590380 14.958254 -9.492462 +7847 2206 4 0 9.797431 14.052470 -8.521894 +7848 2207 6 0 21.896317 10.846424 11.520743 +7849 2207 4 0 22.820423 10.614982 11.723752 +7850 2207 4 0 21.512259 10.848333 12.397036 +7851 2208 6 0 -16.629808 6.024934 -16.061930 +7852 2208 4 0 -16.979035 6.163556 -15.154311 +7853 2208 4 0 -16.556800 6.853702 -16.565081 +7854 2209 6 0 -24.056464 -15.267357 -3.334116 +7855 2209 4 0 -24.017471 -15.426759 -2.411717 +7856 2209 4 0 -23.826595 -16.112409 -3.791556 +7857 2210 6 0 -24.814205 14.617559 -6.421721 +7858 2210 4 0 -24.613019 15.462145 -6.916680 +7859 2210 4 0 -25.784459 14.689331 -6.455648 +7860 2211 6 0 12.539335 -4.690091 16.952299 +7861 2211 4 0 12.874872 -3.959104 17.433778 +7862 2211 4 0 13.165313 -5.396450 16.984519 +7863 2212 6 0 27.426473 -20.349285 -4.187459 +7864 2212 4 0 26.932613 -20.185019 -4.988935 +7865 2212 4 0 27.020619 -19.915963 -3.444392 +7866 2213 6 0 -25.378069 18.390923 12.676602 +7867 2213 4 0 -25.468295 18.108442 13.617931 +7868 2213 4 0 -26.284264 18.454249 12.373374 +7869 2214 6 0 2.358488 15.655904 0.172343 +7870 2214 4 0 1.576275 15.538047 -0.330180 +7871 2214 4 0 2.949284 15.115348 -0.279388 +7872 2215 6 0 17.823860 -16.181961 4.219054 +7873 2215 4 0 16.871832 -16.285669 3.895196 +7874 2215 4 0 18.296855 -16.171292 3.367102 +7875 2216 6 0 -13.185175 11.185524 20.273552 +7876 2216 4 0 -12.491020 11.326572 19.606343 +7877 2216 4 0 -14.008783 11.327741 19.799749 +7878 2217 6 0 -16.946375 18.382248 -17.880917 +7879 2217 4 0 -16.601871 19.114714 -17.373712 +7880 2217 4 0 -17.112525 18.719683 -18.756566 +7881 2218 6 0 4.139489 13.924517 -8.158999 +7882 2218 4 0 3.276763 13.674016 -7.871220 +7883 2218 4 0 4.619548 13.009700 -8.222873 +7884 2219 6 0 19.195530 19.194186 -15.410073 +7885 2219 4 0 19.530087 20.044690 -15.698710 +7886 2219 4 0 18.880211 18.717599 -16.173654 +7887 2220 6 0 22.465366 -15.697985 -16.572314 +7888 2220 4 0 22.341005 -16.447983 -17.175221 +7889 2220 4 0 23.268415 -15.298896 -16.787665 +7890 2221 6 0 -6.168779 -9.840021 -9.350190 +7891 2221 4 0 -6.138060 -10.776075 -9.519650 +7892 2221 4 0 -5.375773 -9.424169 -9.650695 +7893 2222 6 0 25.209173 18.017697 -14.898072 +7894 2222 4 0 24.521605 17.467415 -14.490123 +7895 2222 4 0 25.669461 17.420196 -15.513375 +7896 2223 6 0 1.750289 -0.354167 -16.972701 +7897 2223 4 0 1.941430 -1.107141 -17.603779 +7898 2223 4 0 1.332140 0.330238 -17.528621 +7899 2224 6 0 18.682749 11.765475 10.852294 +7900 2224 4 0 19.563556 11.904202 10.494828 +7901 2224 4 0 18.677947 10.845188 11.223074 +7902 2225 6 0 -9.368425 16.562190 4.853452 +7903 2225 4 0 -8.407375 16.292116 4.842479 +7904 2225 4 0 -9.332928 17.502581 4.563723 +7905 2226 6 0 -14.320728 -5.516222 -17.892457 +7906 2226 4 0 -14.106677 -5.147397 -18.800379 +7907 2226 4 0 -14.225038 -6.471192 -17.943054 +7908 2227 6 0 -22.779663 -5.587037 4.961004 +7909 2227 4 0 -23.387774 -5.905882 4.279957 +7910 2227 4 0 -22.003636 -6.116854 4.731429 +7911 2228 6 0 1.608693 14.675487 10.806060 +7912 2228 4 0 2.333564 15.322059 10.910925 +7913 2228 4 0 1.191042 14.647480 11.723121 +7914 2229 6 0 -19.989851 14.272748 -13.831000 +7915 2229 4 0 -20.108765 14.145345 -12.856725 +7916 2229 4 0 -20.810178 14.265544 -14.251075 +7917 2230 6 0 -0.277500 6.116052 -20.054497 +7918 2230 4 0 -1.205482 6.025573 -19.750342 +7919 2230 4 0 0.030270 6.890733 -19.590961 +7920 2231 6 0 -23.218686 16.925049 -14.531729 +7921 2231 4 0 -24.154801 17.137589 -14.620012 +7922 2231 4 0 -22.798436 17.177619 -15.342960 +7923 2232 6 0 14.465041 -13.890297 11.092988 +7924 2232 4 0 14.125737 -13.087596 11.450092 +7925 2232 4 0 14.769204 -13.729760 10.198115 +7926 2233 6 0 -19.342535 19.484499 18.315509 +7927 2233 4 0 -18.817282 19.354539 19.111327 +7928 2233 4 0 -19.942353 18.726732 18.320837 +7929 2234 6 0 0.909574 12.732606 15.451247 +7930 2234 4 0 0.713888 11.749814 15.284439 +7931 2234 4 0 1.425345 12.740199 16.283139 +7932 2235 6 0 -2.274926 14.829696 20.985211 +7933 2235 4 0 -2.781123 13.962453 20.790809 +7934 2235 4 0 -2.630126 15.421882 20.359114 +7935 2236 6 0 7.507399 6.793027 13.609399 +7936 2236 4 0 7.518937 7.728154 13.813229 +7937 2236 4 0 8.443553 6.424691 13.587889 +7938 2237 6 0 12.870660 -12.764019 -10.964166 +7939 2237 4 0 12.942835 -13.465015 -11.598871 +7940 2237 4 0 13.227628 -13.197338 -10.244586 +7941 2238 6 0 8.913179 -11.919018 -6.239675 +7942 2238 4 0 8.887002 -11.850316 -5.252925 +7943 2238 4 0 8.813455 -11.004941 -6.499380 +7944 2239 6 0 -25.746417 7.206326 5.578919 +7945 2239 4 0 -25.082293 6.620904 5.823246 +7946 2239 4 0 -26.564541 6.922453 6.051858 +7947 2240 6 0 25.894755 9.257899 3.861774 +7948 2240 4 0 26.648604 8.789353 3.465470 +7949 2240 4 0 25.145952 8.756940 3.475241 +7950 2241 6 0 -8.830905 19.535286 -18.058852 +7951 2241 4 0 -7.932809 19.419232 -17.567730 +7952 2241 4 0 -8.446850 19.854198 -18.903385 +7953 2242 6 0 18.592621 -6.587479 -13.125998 +7954 2242 4 0 18.627063 -5.766281 -13.617980 +7955 2242 4 0 19.549944 -6.934441 -13.170231 +7956 2243 6 0 -27.003747 -19.268722 -9.708049 +7957 2243 4 0 -26.900925 -18.931745 -10.609127 +7958 2243 4 0 -27.848600 -18.948692 -9.403186 +7959 2244 6 0 25.990256 18.432601 -19.230300 +7960 2244 4 0 26.786890 18.827306 -19.540837 +7961 2244 4 0 25.720829 18.921009 -18.426769 +7962 2245 6 0 -23.820277 -18.817979 -12.740742 +7963 2245 4 0 -23.782285 -19.769046 -12.956748 +7964 2245 4 0 -23.248364 -18.334977 -13.329239 +7965 2246 6 0 -18.359691 4.931419 0.480080 +7966 2246 4 0 -18.326292 5.822977 0.895967 +7967 2246 4 0 -17.534355 4.919940 -0.130658 +7968 2247 6 0 -18.507249 20.994985 10.044481 +7969 2247 4 0 -18.547987 20.135365 9.607738 +7970 2247 4 0 -19.101082 20.989892 10.808237 +7971 2248 6 0 -4.383167 -16.727404 18.388451 +7972 2248 4 0 -5.073507 -17.158665 17.848255 +7973 2248 4 0 -3.547429 -16.962110 18.031186 +7974 2249 6 0 -4.804252 -2.255440 12.424858 +7975 2249 4 0 -5.246469 -3.100345 12.658891 +7976 2249 4 0 -3.913941 -2.453866 12.205563 +7977 2250 6 0 -24.450781 12.411164 4.813077 +7978 2250 4 0 -24.979534 11.582140 4.901976 +7979 2250 4 0 -24.028938 12.289668 3.990280 +7980 2251 6 0 -26.039273 15.478503 -20.033643 +7981 2251 4 0 -25.787380 14.593225 -19.599455 +7982 2251 4 0 -26.775794 15.819420 -19.491089 +7983 2252 6 0 14.062056 9.563642 16.993740 +7984 2252 4 0 14.763770 8.911350 17.143673 +7985 2252 4 0 14.500104 10.412012 17.077299 +7986 2253 6 0 4.484184 -11.730676 11.850201 +7987 2253 4 0 4.881439 -12.103947 12.684819 +7988 2253 4 0 3.547835 -11.668873 12.049225 +7989 2254 6 0 -14.097503 8.062860 -18.256877 +7990 2254 4 0 -14.097091 8.286015 -19.217701 +7991 2254 4 0 -14.272348 7.101844 -18.168430 +7992 2255 6 0 -1.242617 -6.859800 16.709128 +7993 2255 4 0 -1.538903 -6.069642 17.158826 +7994 2255 4 0 -0.956774 -6.520222 15.820973 +7995 2256 6 0 -1.281101 10.186382 20.363478 +7996 2256 4 0 -1.124991 9.953584 19.434999 +7997 2256 4 0 -1.916024 10.917360 20.415283 +7998 2257 6 0 4.583247 -14.837260 7.792526 +7999 2257 4 0 5.277242 -15.516956 7.802532 +8000 2257 4 0 3.716772 -15.158571 7.921129 +8001 2258 6 0 -4.482585 -19.369183 -19.767924 +8002 2258 4 0 -4.741173 -18.669761 -19.147665 +8003 2258 4 0 -4.193943 -19.053555 -20.619737 +8004 2259 6 0 7.047318 -14.707276 -20.284385 +8005 2259 4 0 6.703500 -15.207330 -19.488017 +8006 2259 4 0 6.190142 -14.503563 -20.700524 +8007 2260 6 0 23.833142 -6.861157 16.589067 +8008 2260 4 0 24.695476 -7.170817 16.950692 +8009 2260 4 0 23.677150 -7.301955 15.784807 +8010 2261 6 0 5.995679 -17.998909 3.914141 +8011 2261 4 0 5.476318 -17.882781 3.080567 +8012 2261 4 0 5.412579 -18.346872 4.640099 +8013 2262 6 0 -16.261535 -16.837503 19.128385 +8014 2262 4 0 -16.159495 -17.582113 18.531735 +8015 2262 4 0 -16.037295 -17.072210 20.047591 +8016 2263 6 0 12.975391 18.290335 10.617581 +8017 2263 4 0 12.118949 18.283115 10.175431 +8018 2263 4 0 12.802601 18.580055 11.511186 +8019 2264 6 0 -16.943334 -0.673380 -20.801827 +8020 2264 4 0 -17.817924 -1.087446 -20.715945 +8021 2264 4 0 -17.115465 0.133442 -21.270654 +8022 2265 6 0 6.976699 -19.049773 17.844693 +8023 2265 4 0 7.570702 -18.339339 17.660197 +8024 2265 4 0 7.315559 -19.860252 17.427987 +8025 2266 6 0 24.109467 19.393222 12.331621 +8026 2266 4 0 23.874527 19.733950 13.195341 +8027 2266 4 0 23.847585 18.486492 12.389872 +8028 2267 6 0 -10.766788 -13.469242 4.827464 +8029 2267 4 0 -10.709694 -13.795601 3.910452 +8030 2267 4 0 -10.845380 -12.510608 4.689270 +8031 2268 6 0 23.311349 8.299149 -20.488106 +8032 2268 4 0 22.936005 9.229209 -20.435353 +8033 2268 4 0 23.101181 8.056904 -21.396526 +8034 2269 6 0 14.346382 2.187727 18.536242 +8035 2269 4 0 14.267850 1.244178 18.689768 +8036 2269 4 0 15.244469 2.406046 18.304739 +8037 2270 6 0 -26.947566 -9.971921 -7.791553 +8038 2270 4 0 -26.523003 -9.588995 -7.018587 +8039 2270 4 0 -27.719947 -9.398867 -7.926452 +8040 2271 6 0 -1.645004 -17.217466 18.281848 +8041 2271 4 0 -1.503441 -17.212547 17.328466 +8042 2271 4 0 -1.259441 -16.407871 18.526419 +8043 2272 6 0 -18.185068 -13.481465 -18.963605 +8044 2272 4 0 -18.306998 -12.962840 -18.154768 +8045 2272 4 0 -18.826126 -14.192063 -18.983318 +8046 2273 6 0 21.894032 -11.323972 -14.426640 +8047 2273 4 0 22.165764 -10.897898 -13.607124 +8048 2273 4 0 22.549926 -11.213429 -15.092175 +8049 2274 6 0 10.286552 3.282899 -14.672865 +8050 2274 4 0 10.156644 2.736482 -13.881860 +8051 2274 4 0 9.503828 3.794923 -14.925645 +8052 2275 6 0 -17.275465 -16.899995 -12.204316 +8053 2275 4 0 -16.650047 -17.347498 -12.847925 +8054 2275 4 0 -17.728716 -17.694142 -11.839955 +8055 2276 6 0 9.132713 -17.465568 14.475104 +8056 2276 4 0 9.109121 -16.931937 13.716053 +8057 2276 4 0 8.685477 -18.260615 14.298118 +8058 2277 6 0 -2.219003 -10.437316 7.385585 +8059 2277 4 0 -2.683869 -9.726981 6.932036 +8060 2277 4 0 -2.863656 -10.910261 7.899378 +8061 2278 6 0 21.328627 5.452241 -5.411722 +8062 2278 4 0 20.702591 5.402774 -4.696060 +8063 2278 4 0 21.847512 4.616832 -5.258353 +8064 2279 6 0 25.174339 -4.700786 4.319189 +8065 2279 4 0 25.475426 -5.192515 3.516499 +8066 2279 4 0 24.849082 -5.290270 5.019481 +8067 2280 6 0 -20.973509 17.475850 18.235841 +8068 2280 4 0 -20.795645 16.959839 19.077904 +8069 2280 4 0 -21.937194 17.741268 18.405829 +8070 2281 6 0 -17.032214 -4.404070 -16.615581 +8071 2281 4 0 -18.027750 -4.237947 -16.713048 +8072 2281 4 0 -16.825738 -5.153522 -17.221012 +8073 2282 6 0 5.077355 4.864838 15.841740 +8074 2282 4 0 5.888380 4.293000 15.916342 +8075 2282 4 0 5.502771 5.719564 15.999661 +8076 2283 6 0 14.150746 7.193364 7.768856 +8077 2283 4 0 13.512887 7.556242 8.342946 +8078 2283 4 0 13.719519 6.964481 6.933299 +8079 2284 6 0 24.979967 10.864144 -3.827107 +8080 2284 4 0 25.315666 11.790605 -3.820018 +8081 2284 4 0 24.586117 10.647324 -4.635764 +8082 2285 6 0 -19.307013 7.977617 -19.097895 +8083 2285 4 0 -18.730894 8.713079 -18.873103 +8084 2285 4 0 -19.574094 8.132279 -20.016040 +8085 2286 6 0 24.806727 -12.761480 -19.492468 +8086 2286 4 0 24.884669 -13.553250 -18.933552 +8087 2286 4 0 23.868023 -12.741257 -19.679606 +8088 2287 6 0 -16.494024 -10.263681 -3.455262 +8089 2287 4 0 -16.433900 -9.520847 -4.087773 +8090 2287 4 0 -16.512097 -9.942519 -2.552121 +8091 2288 6 0 7.239107 -8.678420 15.402099 +8092 2288 4 0 8.128327 -8.620090 15.837696 +8093 2288 4 0 7.413730 -9.358400 14.729775 +8094 2289 6 0 -11.637039 -18.299602 1.445919 +8095 2289 4 0 -11.805502 -17.472273 0.974361 +8096 2289 4 0 -10.835652 -18.063314 1.950128 +8097 2290 6 0 3.539913 -9.008378 14.869684 +8098 2290 4 0 3.690725 -8.667083 13.987735 +8099 2290 4 0 3.786240 -8.275061 15.438308 +8100 2291 6 0 25.309639 -20.139973 8.261630 +8101 2291 4 0 26.025004 -20.789387 8.243372 +8102 2291 4 0 24.785538 -20.229959 9.088332 +8103 2292 6 0 -11.167618 15.368263 17.768795 +8104 2292 4 0 -11.447760 15.042536 16.890680 +8105 2292 4 0 -10.221576 15.243374 17.719247 +8106 2293 6 0 15.783799 16.252451 16.657327 +8107 2293 4 0 16.469650 16.826129 16.279349 +8108 2293 4 0 15.146657 16.166099 16.010457 +8109 2294 6 0 -23.087822 12.851874 11.524125 +8110 2294 4 0 -22.550515 13.272517 12.247361 +8111 2294 4 0 -23.433828 13.646077 11.045696 +8112 2295 6 0 18.224787 5.336233 10.181216 +8113 2295 4 0 17.768669 5.758936 9.423686 +8114 2295 4 0 17.527118 5.295554 10.828797 +8115 2296 6 0 23.091715 -2.832106 10.928215 +8116 2296 4 0 23.963022 -3.221214 10.847174 +8117 2296 4 0 23.111421 -1.957098 10.500452 +8118 2297 6 0 -8.122293 -8.153763 8.762475 +8119 2297 4 0 -8.486311 -7.377176 8.275878 +8120 2297 4 0 -7.842547 -7.967759 9.693098 +8121 2298 6 0 -23.746981 -1.978340 20.222446 +8122 2298 4 0 -24.119623 -2.610408 19.587105 +8123 2298 4 0 -22.788269 -2.052555 20.075719 +8124 2299 6 0 15.889034 -8.818090 19.786354 +8125 2299 4 0 16.162821 -8.087882 19.189549 +8126 2299 4 0 16.517604 -9.567302 19.583898 +8127 2300 6 0 -22.434542 -1.993577 2.665229 +8128 2300 4 0 -21.639169 -2.320398 3.125908 +8129 2300 4 0 -22.887302 -1.544538 3.368374 +8130 2301 6 0 -4.294135 12.198286 3.905187 +8131 2301 4 0 -3.524217 12.481373 3.400532 +8132 2301 4 0 -4.358032 12.831366 4.583192 +8133 2302 6 0 -10.287802 2.763656 12.120543 +8134 2302 4 0 -10.140580 1.873404 11.826731 +8135 2302 4 0 -10.262187 2.731368 13.100818 +8136 2303 6 0 11.514142 11.933521 -10.265166 +8137 2303 4 0 11.257715 12.740478 -9.772518 +8138 2303 4 0 11.449563 11.209135 -9.611780 +8139 2304 6 0 4.752686 10.041816 10.494911 +8140 2304 4 0 5.000099 10.228340 11.405783 +8141 2304 4 0 4.465587 10.901799 10.118351 +8142 2305 6 0 17.099352 -16.900118 20.580015 +8143 2305 4 0 16.248341 -17.056394 20.914403 +8144 2305 4 0 16.964732 -16.230792 19.853524 +8145 2306 6 0 -6.880763 4.754709 14.803663 +8146 2306 4 0 -7.780049 5.017298 14.837120 +8147 2306 4 0 -6.602000 5.380408 14.109963 +8148 2307 6 0 18.852257 3.117416 3.416315 +8149 2307 4 0 18.466519 2.248205 3.599368 +8150 2307 4 0 19.770424 2.988919 3.600584 +8151 2308 6 0 -19.565302 -15.452338 -12.857316 +8152 2308 4 0 -19.465174 -14.703294 -13.434992 +8153 2308 4 0 -18.713185 -15.861077 -12.849765 +8154 2309 6 0 -22.600437 -10.691469 12.850297 +8155 2309 4 0 -23.397550 -10.659087 13.302216 +8156 2309 4 0 -22.787116 -11.067370 12.012734 +8157 2310 6 0 -21.982415 -13.573385 -4.311729 +8158 2310 4 0 -22.884778 -13.924822 -4.053153 +8159 2310 4 0 -21.591210 -13.340585 -3.436663 +8160 2311 6 0 -9.482768 -17.119153 10.316888 +8161 2311 4 0 -10.089752 -16.593034 9.704444 +8162 2311 4 0 -9.402425 -17.912940 9.854825 +8163 2312 6 0 14.779023 -10.205617 3.169184 +8164 2312 4 0 14.033719 -9.624095 2.903870 +8165 2312 4 0 14.431082 -10.650018 3.996000 +8166 2313 6 0 -23.065785 7.688851 4.302863 +8167 2313 4 0 -23.519497 6.846326 4.179947 +8168 2313 4 0 -23.396856 8.243234 3.642471 +8169 2314 6 0 -12.420110 17.313613 -9.713155 +8170 2314 4 0 -13.364634 17.232909 -9.649724 +8171 2314 4 0 -12.198343 18.200726 -10.087577 +8172 2315 6 0 13.807063 -18.735375 -18.358481 +8173 2315 4 0 13.518261 -18.146104 -17.665040 +8174 2315 4 0 14.609291 -19.207101 -18.003404 +8175 2316 6 0 10.712591 7.098327 3.970951 +8176 2316 4 0 10.424496 6.939336 4.829144 +8177 2316 4 0 10.486897 6.231102 3.501449 +8178 2317 6 0 -26.193278 8.679696 17.901485 +8179 2317 4 0 -25.410504 8.357458 17.457879 +8180 2317 4 0 -26.819464 8.901614 17.137834 +8181 2318 6 0 19.451507 -12.567707 -15.280479 +8182 2318 4 0 19.003766 -12.254527 -14.428024 +8183 2318 4 0 20.294592 -12.135913 -15.254851 +8184 2319 6 0 -14.332854 -0.923507 14.572189 +8185 2319 4 0 -14.044747 -0.194105 14.037975 +8186 2319 4 0 -13.492568 -1.193300 14.988120 +8187 2320 6 0 -8.730522 14.085678 -10.180676 +8188 2320 4 0 -8.524068 13.138626 -10.211460 +8189 2320 4 0 -9.480763 14.191583 -10.748692 +8190 2321 6 0 -18.278878 -5.590157 8.386336 +8191 2321 4 0 -18.405152 -4.662040 8.661744 +8192 2321 4 0 -17.563780 -5.717750 9.039776 +8193 2322 6 0 -24.210906 -9.471833 -3.828648 +8194 2322 4 0 -23.595084 -9.970587 -4.330527 +8195 2322 4 0 -23.577826 -8.951405 -3.327851 +8196 2323 6 0 -7.110604 8.838398 10.174602 +8197 2323 4 0 -7.782545 9.119070 9.563121 +8198 2323 4 0 -6.874836 7.936950 10.110612 +8199 2324 6 0 24.419141 17.000522 -10.922840 +8200 2324 4 0 23.664703 16.933938 -11.553390 +8201 2324 4 0 24.021846 17.152778 -10.052143 +8202 2325 6 0 -14.488243 5.098469 4.479912 +8203 2325 4 0 -13.709956 5.650481 4.473177 +8204 2325 4 0 -14.910202 5.058380 3.581039 +8205 2326 6 0 -2.415807 -13.812743 6.907700 +8206 2326 4 0 -2.596718 -13.309899 6.111317 +8207 2326 4 0 -3.251745 -14.327682 7.109165 +8208 2327 6 0 -18.926033 -9.523396 -18.297588 +8209 2327 4 0 -18.539154 -9.705366 -19.167443 +8210 2327 4 0 -19.196583 -8.616444 -18.314206 +8211 2328 6 0 23.648770 -10.033565 -19.143545 +8212 2328 4 0 23.763359 -9.374241 -19.822180 +8213 2328 4 0 24.359914 -10.609348 -19.397407 +8214 2329 6 0 0.735457 -17.444252 -0.196869 +8215 2329 4 0 1.204966 -17.103235 -0.982724 +8216 2329 4 0 -0.166461 -17.675326 -0.501142 +8217 2330 6 0 15.977053 8.980217 19.819118 +8218 2330 4 0 15.510910 8.262919 19.411773 +8219 2330 4 0 15.638831 9.774710 19.469638 +8220 2331 6 0 -21.818391 12.562887 20.032627 +8221 2331 4 0 -22.085628 11.618258 19.842948 +8222 2331 4 0 -20.827992 12.718524 19.975012 +8223 2332 6 0 7.039712 -16.964990 -15.541675 +8224 2332 4 0 6.809451 -17.534371 -14.799854 +8225 2332 4 0 7.846558 -16.584905 -15.213738 +8226 2333 6 0 -10.516103 -19.359216 -4.984483 +8227 2333 4 0 -11.487322 -19.499249 -4.976576 +8228 2333 4 0 -10.316797 -19.130113 -5.876399 +8229 2334 6 0 -15.712544 -18.195821 -16.791463 +8230 2334 4 0 -15.386725 -17.379305 -16.972966 +8231 2334 4 0 -16.234052 -18.450302 -17.577749 +8232 2335 6 0 20.375630 2.207122 -4.920313 +8233 2335 4 0 20.216775 1.456591 -4.343459 +8234 2335 4 0 20.280207 1.853389 -5.797632 +8235 2336 6 0 22.857055 19.552693 3.665905 +8236 2336 4 0 22.878248 19.783393 4.649190 +8237 2336 4 0 23.742572 19.802123 3.384761 +8238 2337 6 0 -23.291098 12.571857 -7.317143 +8239 2337 4 0 -23.912608 13.233941 -6.880268 +8240 2337 4 0 -22.652186 12.332429 -6.543330 +8241 2338 6 0 12.984606 10.221427 -16.808099 +8242 2338 4 0 13.667678 9.959368 -16.244780 +8243 2338 4 0 12.511584 9.401797 -16.883576 +8244 2339 6 0 27.270245 0.587979 13.208753 +8245 2339 4 0 27.702404 -0.278797 13.294250 +8246 2339 4 0 26.279511 0.464606 13.258979 +8247 2340 6 0 5.657499 -16.976293 13.990530 +8248 2340 4 0 4.705984 -16.954734 13.883042 +8249 2340 4 0 5.909722 -16.502798 14.791441 +8250 2341 6 0 22.979947 17.951763 0.527007 +8251 2341 4 0 22.428004 18.639190 0.176667 +8252 2341 4 0 22.281623 17.341478 0.914453 +8253 2342 6 0 -21.891524 -16.491873 5.462047 +8254 2342 4 0 -21.611111 -15.606060 5.550776 +8255 2342 4 0 -22.025511 -16.701806 4.529568 +8256 2343 6 0 8.528721 7.946876 17.483315 +8257 2343 4 0 9.390982 8.385502 17.311853 +8258 2343 4 0 8.485801 7.948173 18.426233 +8259 2344 6 0 26.823691 0.686378 2.887481 +8260 2344 4 0 26.841167 0.391628 3.805678 +8261 2344 4 0 26.597454 1.662650 2.917193 +8262 2345 6 0 -4.950286 -7.194323 15.626699 +8263 2345 4 0 -4.352839 -6.657887 15.072055 +8264 2345 4 0 -5.857741 -7.272638 15.219003 +8265 2346 6 0 -8.714977 5.000352 11.128210 +8266 2346 4 0 -9.170865 4.207326 11.391243 +8267 2346 4 0 -8.026665 4.716136 10.523111 +8268 2347 6 0 -21.206733 -3.279994 -6.524932 +8269 2347 4 0 -20.929590 -2.947470 -5.608742 +8270 2347 4 0 -21.369929 -2.564467 -7.124044 +8271 2348 6 0 -24.169876 -16.066494 -0.699927 +8272 2348 4 0 -23.893194 -16.983386 -0.501792 +8273 2348 4 0 -23.818535 -15.566437 0.016995 +8274 2349 6 0 -4.762418 0.978128 -17.450230 +8275 2349 4 0 -5.459419 0.534407 -17.851461 +8276 2349 4 0 -3.876584 0.532188 -17.586085 +8277 2350 6 0 -23.690384 0.720873 19.030161 +8278 2350 4 0 -24.529537 0.743437 18.583662 +8279 2350 4 0 -23.655688 -0.011267 19.593259 +8280 2351 6 0 -15.912159 -12.362138 19.142289 +8281 2351 4 0 -16.860673 -12.328378 19.455109 +8282 2351 4 0 -15.543971 -13.259386 19.298591 +8283 2352 6 0 21.658993 17.599149 -16.014662 +8284 2352 4 0 22.041785 18.520354 -15.943036 +8285 2352 4 0 20.778035 17.749200 -16.427622 +8286 2353 6 0 -19.912308 -13.107035 -14.484614 +8287 2353 4 0 -19.659870 -12.430860 -13.832450 +8288 2353 4 0 -19.896529 -12.695904 -15.325705 +8289 2354 6 0 -24.276277 -16.465070 11.658834 +8290 2354 4 0 -24.414709 -16.008322 12.561598 +8291 2354 4 0 -24.456920 -15.764788 11.022016 +8292 2355 6 0 7.338121 15.134359 12.353797 +8293 2355 4 0 6.756929 14.359360 12.209000 +8294 2355 4 0 7.312954 15.621960 11.560650 +8295 2356 6 0 16.833359 -15.091185 7.049718 +8296 2356 4 0 17.575828 -15.201998 7.598156 +8297 2356 4 0 17.181929 -14.913423 6.159696 +8298 2357 6 0 -25.459827 -8.831619 -10.909942 +8299 2357 4 0 -26.346699 -9.154571 -11.164077 +8300 2357 4 0 -25.113612 -9.635356 -10.548749 +8301 2358 6 0 14.104756 2.118788 -11.000106 +8302 2358 4 0 14.145828 1.958779 -9.996196 +8303 2358 4 0 13.664160 1.315915 -11.343904 +8304 2359 6 0 15.657145 -19.646810 2.896166 +8305 2359 4 0 16.434824 -20.115913 3.051182 +8306 2359 4 0 15.028606 -20.220332 2.452201 +8307 2360 6 0 23.725885 -12.794695 -0.945499 +8308 2360 4 0 23.281780 -11.890719 -0.926868 +8309 2360 4 0 24.708749 -12.621299 -0.988388 +8310 2361 6 0 -16.865263 14.164216 13.710722 +8311 2361 4 0 -17.362193 13.380801 13.838272 +8312 2361 4 0 -16.087062 13.922374 13.209541 +8313 2362 6 0 -19.739666 -15.403180 15.520974 +8314 2362 4 0 -20.455057 -15.397351 14.881774 +8315 2362 4 0 -20.082522 -14.871806 16.282279 +8316 2363 6 0 19.096837 -7.172079 16.486018 +8317 2363 4 0 19.407501 -6.257692 16.370379 +8318 2363 4 0 19.040095 -7.459208 15.607247 +8319 2364 6 0 18.172332 -12.158590 -6.201699 +8320 2364 4 0 18.304057 -11.335714 -6.732706 +8321 2364 4 0 19.035089 -12.338188 -5.764950 +8322 2365 6 0 -0.868698 -19.642469 -16.996885 +8323 2365 4 0 -1.363468 -20.113317 -17.713302 +8324 2365 4 0 -1.471726 -19.010491 -16.662422 +8325 2366 6 0 -24.645397 10.341459 -7.907386 +8326 2366 4 0 -25.403222 10.434913 -7.336084 +8327 2366 4 0 -24.138877 11.164300 -7.816681 +8328 2367 6 0 -16.672238 -8.013464 18.598945 +8329 2367 4 0 -16.066967 -8.743970 18.706313 +8330 2367 4 0 -16.176282 -7.259661 18.335226 +8331 2368 6 0 22.487322 14.165266 -7.478753 +8332 2368 4 0 22.557098 13.462620 -8.195467 +8333 2368 4 0 23.077183 13.896514 -6.804199 +8334 2369 6 0 -16.969008 0.617904 2.364611 +8335 2369 4 0 -17.366120 1.196458 3.012496 +8336 2369 4 0 -16.204897 0.132723 2.713670 +8337 2370 6 0 -16.105014 -0.776954 10.291984 +8338 2370 4 0 -16.257341 0.223589 10.333435 +8339 2370 4 0 -16.822249 -1.143779 10.739482 +8340 2371 6 0 -1.572980 -19.983373 -2.947973 +8341 2371 4 0 -1.992560 -20.034455 -3.807433 +8342 2371 4 0 -0.620010 -19.746082 -3.116100 +8343 2372 6 0 -14.996679 12.712532 -5.614114 +8344 2372 4 0 -15.916609 12.454215 -5.655277 +8345 2372 4 0 -14.599913 12.087283 -6.181656 +8346 2373 6 0 -6.550042 17.243085 -1.311911 +8347 2373 4 0 -7.370137 17.795578 -1.470109 +8348 2373 4 0 -6.675338 16.814239 -0.435288 +8349 2374 6 0 -22.961585 9.343900 -1.894881 +8350 2374 4 0 -22.135413 9.413165 -2.387021 +8351 2374 4 0 -23.019360 8.393337 -1.628379 +8352 2375 6 0 -23.240008 -19.417092 6.368497 +8353 2375 4 0 -23.612098 -20.201035 6.825569 +8354 2375 4 0 -23.684109 -18.690648 6.877699 +8355 2376 6 0 -3.975590 2.585287 -20.330975 +8356 2376 4 0 -3.555653 1.727030 -20.090182 +8357 2376 4 0 -3.232879 3.201768 -20.459323 +8358 2377 6 0 13.624748 -19.863473 12.144241 +8359 2377 4 0 14.457772 -19.530528 12.546517 +8360 2377 4 0 12.915028 -19.260602 12.383266 +8361 2378 6 0 23.620886 -17.871879 14.645268 +8362 2378 4 0 24.200914 -17.421417 15.259794 +8363 2378 4 0 23.549736 -17.298378 13.830439 +8364 2379 6 0 9.321358 4.851563 -10.671349 +8365 2379 4 0 8.417643 4.825903 -10.980879 +8366 2379 4 0 9.236659 5.389642 -9.880988 +8367 2380 6 0 16.676932 -15.595371 18.042582 +8368 2380 4 0 15.776328 -15.312249 17.740520 +8369 2380 4 0 17.268778 -14.856833 17.976717 +8370 2381 6 0 5.120016 13.517889 11.545409 +8371 2381 4 0 4.343182 13.415911 12.098245 +8372 2381 4 0 4.693345 13.853732 10.680472 +8373 2382 6 0 -25.377039 -18.256471 8.076220 +8374 2382 4 0 -25.781276 -18.544454 8.897977 +8375 2382 4 0 -25.633977 -17.323858 7.972468 +8376 2383 6 0 0.809058 7.564416 -14.066874 +8377 2383 4 0 0.916059 7.331613 -13.143223 +8378 2383 4 0 1.470333 8.274989 -14.200531 +8379 2384 6 0 15.418267 9.781452 0.490529 +8380 2384 4 0 16.087047 9.430117 -0.107289 +8381 2384 4 0 15.469266 9.208927 1.264230 +8382 2385 6 0 18.819099 0.059487 -7.791298 +8383 2385 4 0 18.409799 -0.334456 -8.599701 +8384 2385 4 0 18.505418 0.975155 -7.815461 +8385 2386 6 0 18.734857 -11.129665 -12.743525 +8386 2386 4 0 19.553404 -11.223386 -12.120138 +8387 2386 4 0 18.518443 -10.240054 -12.855533 +8388 2387 6 0 -6.542631 16.490309 -5.774007 +8389 2387 4 0 -7.424909 16.908246 -5.691889 +8390 2387 4 0 -6.518994 16.127379 -6.676862 +8391 2388 6 0 -11.192140 0.472205 -12.639446 +8392 2388 4 0 -12.103697 0.267919 -12.529950 +8393 2388 4 0 -10.710800 -0.374282 -12.557572 +8394 2389 6 0 16.720488 13.886958 -20.533060 +8395 2389 4 0 16.205223 14.702224 -20.376437 +8396 2389 4 0 16.691127 13.403715 -19.702754 +8397 2390 6 0 17.388334 13.435587 -15.657568 +8398 2390 4 0 18.130270 13.582226 -16.327461 +8399 2390 4 0 17.639406 12.621568 -15.195169 +8400 2391 6 0 -6.834253 10.232886 -18.214238 +8401 2391 4 0 -6.903061 10.582756 -17.312839 +8402 2391 4 0 -7.065760 10.977380 -18.753726 +8403 2392 6 0 -26.724908 17.912645 17.886470 +8404 2392 4 0 -25.957218 18.458136 17.628812 +8405 2392 4 0 -26.362765 17.099535 18.218344 +8406 2393 6 0 -0.903403 -3.732795 -18.221524 +8407 2393 4 0 0.015845 -3.986413 -18.434069 +8408 2393 4 0 -1.449749 -4.292278 -18.787390 +8409 2394 6 0 8.478846 18.397280 11.407292 +8410 2394 4 0 7.633351 18.651942 11.041557 +8411 2394 4 0 9.129265 18.582960 10.779627 +8412 2395 6 0 -9.044898 12.879599 11.037060 +8413 2395 4 0 -8.299458 12.613036 10.480728 +8414 2395 4 0 -9.785562 12.774996 10.383091 +8415 2396 6 0 16.212680 8.794036 14.029672 +8416 2396 4 0 15.473945 9.288728 13.836685 +8417 2396 4 0 17.028607 9.276518 14.011973 +8418 2397 6 0 -12.268552 13.361223 -20.521861 +8419 2397 4 0 -13.186409 13.158881 -20.579852 +8420 2397 4 0 -12.306685 14.297827 -20.782380 +8421 2398 6 0 21.001802 -1.484392 16.467423 +8422 2398 4 0 20.737187 -1.861020 17.327615 +8423 2398 4 0 21.860569 -1.911455 16.193850 +8424 2399 6 0 -9.356304 11.431280 -8.974418 +8425 2399 4 0 -8.659737 10.769575 -8.653703 +8426 2399 4 0 -9.803431 11.675976 -8.182315 +8427 2400 6 0 26.948445 8.871461 -17.613543 +8428 2400 4 0 27.531052 9.681414 -17.576254 +8429 2400 4 0 27.482335 8.261182 -17.042391 +8430 2401 6 0 18.976966 2.434133 -12.543728 +8431 2401 4 0 18.194377 2.424795 -11.982928 +8432 2401 4 0 19.117316 3.368724 -12.808991 +8433 2402 6 0 8.245403 -12.742057 19.723005 +8434 2402 4 0 8.144484 -13.022949 20.662655 +8435 2402 4 0 7.837153 -13.446042 19.196869 +8436 2403 6 0 9.039756 -7.597109 18.653269 +8437 2403 4 0 8.770812 -7.616934 19.576989 +8438 2403 4 0 9.066589 -6.664479 18.418706 +8439 2404 6 0 10.189217 11.926636 11.235547 +8440 2404 4 0 10.233257 12.873995 11.065027 +8441 2404 4 0 9.236322 11.798256 11.121031 +8442 2405 6 0 -19.235380 -20.224186 -5.743147 +8443 2405 4 0 -19.963520 -19.550478 -5.766714 +8444 2405 4 0 -18.597575 -19.892671 -5.077870 +8445 2406 6 0 17.081164 12.504780 -5.519702 +8446 2406 4 0 17.317528 12.830762 -4.628825 +8447 2406 4 0 17.566228 11.707478 -5.694496 +8448 2407 6 0 -17.833354 13.022736 -7.625662 +8449 2407 4 0 -18.435075 12.266236 -7.562794 +8450 2407 4 0 -17.596760 13.126821 -6.753333 +8451 2408 6 0 -16.003848 -12.359888 13.230149 +8452 2408 4 0 -16.195567 -13.201470 12.841886 +8453 2408 4 0 -16.339851 -12.416796 14.117412 +8454 2409 6 0 0.176516 -12.560501 -12.425472 +8455 2409 4 0 0.737394 -13.294947 -12.707192 +8456 2409 4 0 -0.008554 -11.988851 -13.210535 +8457 2410 6 0 15.945838 0.256833 12.759642 +8458 2410 4 0 15.315992 0.578271 12.079867 +8459 2410 4 0 15.303877 -0.130234 13.393857 +8460 2411 6 0 3.991270 11.948196 8.788506 +8461 2411 4 0 4.354131 11.617913 7.978688 +8462 2411 4 0 3.989725 12.878797 8.755522 +8463 2412 6 0 24.041021 -18.227784 19.978317 +8464 2412 4 0 23.613150 -19.023367 19.715938 +8465 2412 4 0 23.421760 -17.634320 20.391706 +8466 2413 6 0 4.480569 2.293232 -17.929461 +8467 2413 4 0 4.737918 2.408019 -18.806644 +8468 2413 4 0 3.697109 2.859289 -17.719771 +8469 2414 6 0 -21.893430 -14.247042 -8.071389 +8470 2414 4 0 -21.621325 -13.340615 -8.179140 +8471 2414 4 0 -21.245096 -14.771492 -7.611926 +8472 2415 6 0 11.391170 -20.197067 6.087190 +8473 2415 4 0 12.332346 -20.225253 6.056925 +8474 2415 4 0 11.169435 -19.741912 5.268989 +8475 2416 6 0 -17.767521 13.536365 -18.283934 +8476 2416 4 0 -17.676219 14.086222 -17.468766 +8477 2416 4 0 -17.016627 12.978563 -18.394451 +8478 2417 6 0 5.005032 -20.873389 -8.545316 +8479 2417 4 0 4.212566 -20.486316 -8.983260 +8480 2417 4 0 4.690972 -21.402526 -7.849785 +8481 2418 6 0 18.199775 -4.330757 -14.972084 +8482 2418 4 0 17.789625 -3.483346 -14.772916 +8483 2418 4 0 18.849294 -4.135351 -15.681645 +8484 2419 6 0 19.744670 16.153747 4.684702 +8485 2419 4 0 18.926975 15.872879 5.113981 +8486 2419 4 0 20.486481 15.836577 5.222155 +8487 2420 6 0 -0.915970 -9.397508 15.585411 +8488 2420 4 0 -0.105843 -9.703483 16.010408 +8489 2420 4 0 -1.285330 -8.812368 16.200287 +8490 2421 6 0 -23.858596 3.816844 -5.177897 +8491 2421 4 0 -23.879687 4.029482 -4.237763 +8492 2421 4 0 -24.276504 2.954820 -5.342696 +8493 2422 6 0 11.838596 14.359137 5.947499 +8494 2422 4 0 11.923450 13.438110 5.725008 +8495 2422 4 0 12.426438 14.419837 6.789373 +8496 2423 6 0 -24.516087 -8.212903 6.467548 +8497 2423 4 0 -24.905939 -8.825058 7.092971 +8498 2423 4 0 -23.896260 -8.737352 6.010203 +8499 2424 6 0 12.794509 0.536645 -20.243875 +8500 2424 4 0 12.046024 0.975194 -20.739130 +8501 2424 4 0 12.750658 0.998686 -19.404096 +8502 2425 6 0 -2.221545 7.221132 -15.714309 +8503 2425 4 0 -1.564134 7.922819 -15.440249 +8504 2425 4 0 -1.907716 6.786282 -16.499729 +8505 2426 6 0 -15.262103 -1.025135 3.744497 +8506 2426 4 0 -15.665604 -1.870757 3.765630 +8507 2426 4 0 -15.328619 -0.606155 4.583614 +8508 2427 6 0 20.108494 -9.991193 -19.911625 +8509 2427 4 0 19.428700 -9.825766 -19.213627 +8510 2427 4 0 20.361712 -9.133136 -20.249113 +8511 2428 6 0 12.867409 -6.904802 4.443594 +8512 2428 4 0 12.264306 -6.203776 4.409753 +8513 2428 4 0 13.784027 -6.565705 4.350727 +8514 2429 6 0 24.058876 -8.248822 -17.051222 +8515 2429 4 0 23.730319 -9.008822 -17.519701 +8516 2429 4 0 24.878618 -8.026208 -17.519719 +8517 2430 6 0 -14.847363 -1.001783 -19.170682 +8518 2430 4 0 -15.449801 -0.826718 -19.858698 +8519 2430 4 0 -15.320403 -1.330455 -18.387373 +8520 2431 6 0 15.553192 2.814264 -3.465226 +8521 2431 4 0 14.896744 3.481739 -3.135135 +8522 2431 4 0 16.160657 3.336721 -3.991437 +8523 2432 6 0 -13.974002 9.185648 16.956055 +8524 2432 4 0 -13.130305 8.696408 16.805351 +8525 2432 4 0 -14.376866 8.733537 17.688722 +8526 2433 6 0 -11.797740 -0.516894 9.586967 +8527 2433 4 0 -12.628798 -0.925501 9.242559 +8528 2433 4 0 -11.646717 0.185675 8.970795 +8529 2434 6 0 24.903028 -3.994226 -11.118622 +8530 2434 4 0 23.952025 -4.106045 -10.736954 +8531 2434 4 0 24.790476 -3.484811 -11.918719 +8532 2435 6 0 2.220549 5.328975 16.431794 +8533 2435 4 0 1.808604 4.568086 16.851941 +8534 2435 4 0 3.174924 5.179737 16.323538 +8535 2436 6 0 1.396616 14.937103 19.138615 +8536 2436 4 0 0.558182 14.600636 18.844822 +8537 2436 4 0 1.257435 14.884393 20.102246 +8538 2437 6 0 -20.671636 -15.366474 -18.208204 +8539 2437 4 0 -21.380399 -15.277369 -18.859413 +8540 2437 4 0 -20.736983 -16.181001 -17.742657 +8541 2438 6 0 -13.058044 -20.095582 -4.362430 +8542 2438 4 0 -13.024712 -20.612656 -3.543798 +8543 2438 4 0 -13.691481 -19.389144 -4.075579 +8544 2439 6 0 -15.561123 -4.237765 12.636329 +8545 2439 4 0 -16.268647 -3.833291 13.167415 +8546 2439 4 0 -15.110937 -3.419743 12.299589 +8547 2440 6 0 -24.759181 -6.035582 2.884287 +8548 2440 4 0 -25.250513 -6.831996 2.887098 +8549 2440 4 0 -25.305365 -5.369041 2.551951 +8550 2441 6 0 -4.620853 12.299627 11.037908 +8551 2441 4 0 -4.440765 13.138122 11.409774 +8552 2441 4 0 -4.916886 11.692935 11.716163 +8553 2442 6 0 -16.569703 1.526861 -7.254759 +8554 2442 4 0 -16.695783 1.936301 -8.074606 +8555 2442 4 0 -16.882141 0.632206 -7.402201 +8556 2443 6 0 23.467888 -9.654261 -12.695108 +8557 2443 4 0 24.029597 -9.067666 -13.167615 +8558 2443 4 0 23.123232 -9.217050 -11.833851 +8559 2444 6 0 -18.429010 -3.061156 8.894173 +8560 2444 4 0 -19.027972 -2.389846 8.642550 +8561 2444 4 0 -18.106797 -2.785618 9.787642 +8562 2445 6 0 -19.107978 15.849121 -9.475466 +8563 2445 4 0 -18.864733 15.428418 -8.655322 +8564 2445 4 0 -18.505127 16.629956 -9.591908 +8565 2446 6 0 22.274682 -20.084251 -0.325198 +8566 2446 4 0 22.135094 -19.096797 -0.356152 +8567 2446 4 0 23.083213 -20.126631 -0.830959 +8568 2447 6 0 24.369325 -3.216706 -4.897640 +8569 2447 4 0 25.222404 -2.719894 -4.895318 +8570 2447 4 0 24.445157 -3.895914 -4.229474 +8571 2448 6 0 -9.139981 -19.842644 16.043544 +8572 2448 4 0 -8.820691 -19.672535 15.122253 +8573 2448 4 0 -9.672340 -20.660357 15.944536 +8574 2449 6 0 -20.896241 -15.764905 -2.307185 +8575 2449 4 0 -21.812479 -15.705631 -2.446120 +8576 2449 4 0 -20.844603 -15.784793 -1.327016 +8577 2450 6 0 7.223156 -5.748983 -18.629737 +8578 2450 4 0 7.206095 -4.844227 -18.946828 +8579 2450 4 0 7.989785 -5.796585 -18.164482 +8580 2451 6 0 -25.843140 -1.143611 9.149078 +8581 2451 4 0 -25.886005 -1.657786 8.289135 +8582 2451 4 0 -25.272098 -1.801443 9.596520 +8583 2452 6 0 -25.617505 11.234770 1.302402 +8584 2452 4 0 -26.519698 11.382080 0.891273 +8585 2452 4 0 -25.709717 11.496799 2.260967 +8586 2453 6 0 -24.008718 3.700426 14.077463 +8587 2453 4 0 -23.636744 2.818441 14.397144 +8588 2453 4 0 -24.193959 3.715212 13.098008 +8589 2454 6 0 -25.288161 15.287096 -3.633466 +8590 2454 4 0 -24.701801 15.181375 -2.917528 +8591 2454 4 0 -24.884059 15.980496 -4.222265 +8592 2455 6 0 -18.371976 0.316233 -12.753606 +8593 2455 4 0 -17.540257 0.805382 -12.677195 +8594 2455 4 0 -18.928928 0.935156 -13.269213 +8595 2456 6 0 -7.333443 0.117823 -18.660950 +8596 2456 4 0 -8.021021 0.414744 -18.077567 +8597 2456 4 0 -7.588161 -0.774648 -18.860400 +8598 2457 6 0 7.916046 -4.737118 -11.962175 +8599 2457 4 0 7.823803 -4.591176 -10.961540 +8600 2457 4 0 8.487079 -3.962811 -12.242330 +8601 2458 6 0 -16.065017 -17.683748 12.637430 +8602 2458 4 0 -17.011987 -17.735296 12.722608 +8603 2458 4 0 -15.831448 -18.384474 11.953837 +8604 2459 6 0 21.305339 -15.655490 -5.124093 +8605 2459 4 0 20.807407 -16.186834 -5.710639 +8606 2459 4 0 21.624819 -16.214868 -4.447516 +8607 2460 6 0 -26.764181 -18.581640 -16.921151 +8608 2460 4 0 -26.740653 -17.883931 -16.251171 +8609 2460 4 0 -25.889831 -19.016845 -16.852743 +8610 2461 6 0 -16.578359 -2.340901 14.589648 +8611 2461 4 0 -16.492161 -3.040832 15.326073 +8612 2461 4 0 -15.697628 -1.820257 14.616293 +8613 2462 6 0 26.043166 5.997514 -3.795215 +8614 2462 4 0 26.451990 6.864435 -3.803447 +8615 2462 4 0 26.795850 5.513156 -3.370169 +8616 2463 6 0 -2.866251 17.249672 -19.402655 +8617 2463 4 0 -2.050135 17.665045 -19.652864 +8618 2463 4 0 -2.832242 16.313071 -19.542218 +8619 2464 6 0 -15.459807 -11.710100 -10.460216 +8620 2464 4 0 -14.969300 -11.366276 -9.661631 +8621 2464 4 0 -16.276955 -12.017208 -9.984012 +8622 2465 6 0 19.650264 6.930828 12.762298 +8623 2465 4 0 19.873188 6.462285 13.595929 +8624 2465 4 0 20.303044 6.550090 12.177619 +8625 2466 6 0 -22.570365 -4.412836 -1.811273 +8626 2466 4 0 -22.171357 -5.263031 -1.838077 +8627 2466 4 0 -22.826216 -4.391044 -0.929643 +8628 2467 6 0 -15.225393 0.344956 6.093949 +8629 2467 4 0 -14.897061 1.256657 6.050627 +8630 2467 4 0 -14.862108 -0.118094 6.882677 +8631 2468 6 0 -26.214592 10.149434 -12.755279 +8632 2468 4 0 -27.155901 10.181440 -12.954282 +8633 2468 4 0 -26.080437 9.913123 -11.832638 +8634 2469 6 0 -26.639137 -20.836220 10.642324 +8635 2469 4 0 -26.244776 -19.942202 10.604043 +8636 2469 4 0 -26.010374 -21.363114 10.100802 +8637 2470 6 0 27.068918 -13.224704 20.865450 +8638 2470 4 0 27.744233 -12.679284 21.316162 +8639 2470 4 0 26.232445 -12.945570 21.191563 +8640 2471 6 0 -15.301597 13.975513 -8.460131 +8641 2471 4 0 -14.952706 13.782668 -7.567357 +8642 2471 4 0 -16.244257 13.821878 -8.381549 +8643 2472 6 0 25.467875 11.658105 -7.593959 +8644 2472 4 0 24.761290 11.160502 -7.120317 +8645 2472 4 0 25.002961 12.057880 -8.288551 +8646 2473 6 0 -27.479869 -4.262964 -20.483737 +8647 2473 4 0 -26.752473 -4.746654 -20.858210 +8648 2473 4 0 -27.165915 -3.756567 -19.782830 +8649 2474 6 0 -24.406173 20.048905 -13.265390 +8650 2474 4 0 -23.845919 19.394517 -12.782711 +8651 2474 4 0 -25.326791 19.952777 -13.266139 +8652 2475 6 0 -12.606740 1.855396 14.924299 +8653 2475 4 0 -13.099296 2.292250 15.633985 +8654 2475 4 0 -13.213129 1.841828 14.213081 +8655 2476 6 0 12.163259 12.537713 19.532478 +8656 2476 4 0 12.952113 12.023699 19.336851 +8657 2476 4 0 11.421932 11.885251 19.451751 +8658 2477 6 0 19.216013 1.204159 16.354062 +8659 2477 4 0 19.693651 0.628292 16.987922 +8660 2477 4 0 19.788924 1.982359 16.259421 +8661 2478 6 0 9.476954 16.143883 -14.222672 +8662 2478 4 0 9.874109 15.966920 -15.122506 +8663 2478 4 0 9.278436 15.281894 -13.908079 +8664 2479 6 0 -14.534233 -15.722743 -17.125213 +8665 2479 4 0 -14.612818 -15.234699 -16.271855 +8666 2479 4 0 -14.914996 -15.225762 -17.899753 +8667 2480 6 0 -7.315791 17.649326 18.027047 +8668 2480 4 0 -6.781097 18.032306 18.752166 +8669 2480 4 0 -8.151176 18.220094 17.921736 +8670 2481 6 0 -18.382710 -16.629801 4.193883 +8671 2481 4 0 -18.385951 -16.521263 5.149432 +8672 2481 4 0 -17.627253 -16.147937 3.769420 +8673 2482 6 0 -15.417927 -6.534956 -12.241821 +8674 2482 4 0 -15.990818 -7.277530 -12.157190 +8675 2482 4 0 -15.651097 -5.969923 -11.493776 +8676 2483 6 0 0.402862 14.629930 13.340607 +8677 2483 4 0 -0.252964 15.247709 13.638832 +8678 2483 4 0 0.540834 14.019125 14.040061 +8679 2484 6 0 12.212673 -14.561562 8.432466 +8680 2484 4 0 12.964986 -15.158798 8.469829 +8681 2484 4 0 12.315635 -13.749340 8.974910 +8682 2485 6 0 -18.091351 14.816669 -20.791191 +8683 2485 4 0 -17.950349 14.394028 -19.955312 +8684 2485 4 0 -17.259160 15.337091 -20.997461 +8685 2486 6 0 20.846407 4.941141 -20.805564 +8686 2486 4 0 20.364445 5.609240 -20.314152 +8687 2486 4 0 21.773006 5.036677 -20.468448 +8688 2487 6 0 -18.235581 1.799447 7.616936 +8689 2487 4 0 -18.663035 2.668602 7.871183 +8690 2487 4 0 -18.147248 1.507995 8.534548 +8691 2488 6 0 12.243946 -10.407747 -4.453069 +8692 2488 4 0 12.758610 -10.750408 -5.173538 +8693 2488 4 0 11.391861 -10.887258 -4.514732 +8694 2489 6 0 -15.999205 -0.324038 16.881023 +8695 2489 4 0 -15.685432 -0.202706 15.976630 +8696 2489 4 0 -15.623326 0.405687 17.366937 +8697 2490 6 0 -23.099614 -14.642217 -19.649766 +8698 2490 4 0 -23.777759 -15.309775 -19.518530 +8699 2490 4 0 -23.241127 -14.411915 -20.620505 +8700 2491 6 0 -12.249488 9.185541 -16.320990 +8701 2491 4 0 -12.902804 8.826914 -16.950148 +8702 2491 4 0 -11.588894 9.548457 -16.894605 +8703 2492 6 0 -4.051701 -13.736377 -16.555628 +8704 2492 4 0 -4.494654 -14.354729 -17.129699 +8705 2492 4 0 -4.462835 -13.910768 -15.684946 +8706 2493 6 0 -11.801200 19.657830 -10.999540 +8707 2493 4 0 -10.902720 19.828996 -11.011831 +8708 2493 4 0 -12.193533 20.466103 -10.567549 +8709 2494 6 0 -24.325618 14.045672 -1.110263 +8710 2494 4 0 -24.668600 14.350444 -0.200830 +8711 2494 4 0 -24.816092 13.231043 -1.195474 +8712 2495 6 0 20.913056 15.489658 -18.886527 +8713 2495 4 0 20.368015 16.190531 -18.479805 +8714 2495 4 0 21.821778 15.751011 -18.640831 +8715 2496 6 0 -20.772862 0.764056 -6.084683 +8716 2496 4 0 -20.333324 1.468628 -5.568275 +8717 2496 4 0 -20.870557 -0.044044 -5.434493 +8718 2497 6 0 -16.073764 -5.000219 -5.989733 +8719 2497 4 0 -15.211568 -4.748827 -5.581555 +8720 2497 4 0 -16.376788 -5.851245 -5.640415 +8721 2498 6 0 -9.856355 -16.695376 -19.135619 +8722 2498 4 0 -10.833867 -16.815665 -19.193496 +8723 2498 4 0 -9.591699 -17.153724 -19.905312 +8724 2499 6 0 -14.392982 0.813400 -5.967904 +8725 2499 4 0 -14.439076 -0.104057 -5.900368 +8726 2499 4 0 -15.047260 1.134714 -6.628678 +8727 2500 6 0 11.045455 -13.563452 -6.886523 +8728 2500 4 0 10.981894 -14.173292 -6.136333 +8729 2500 4 0 10.392197 -12.867802 -6.742279 +8730 2501 6 0 20.205100 13.593403 -6.053417 +8731 2501 4 0 19.481313 14.001651 -6.432278 +8732 2501 4 0 20.986779 14.039356 -6.342708 +8733 2502 6 0 -15.365488 5.137757 1.769971 +8734 2502 4 0 -16.164843 4.770892 1.413857 +8735 2502 4 0 -14.688240 4.932112 1.136328 +8736 2503 6 0 -24.720205 -11.036422 -9.472540 +8737 2503 4 0 -25.299911 -10.766165 -8.734947 +8738 2503 4 0 -25.200381 -11.736926 -9.906125 +8739 2504 6 0 14.559792 11.008849 -19.039727 +8740 2504 4 0 15.234376 11.619514 -18.598604 +8741 2504 4 0 13.848001 10.777673 -18.398174 +8742 2505 6 0 20.737940 13.944347 3.008812 +8743 2505 4 0 19.926090 13.665780 2.507060 +8744 2505 4 0 20.524403 14.681916 3.550067 +8745 2506 6 0 -13.687080 4.284684 12.620334 +8746 2506 4 0 -14.374801 3.638577 12.764178 +8747 2506 4 0 -13.341649 4.114854 11.765071 +8748 2507 6 0 10.858099 -17.177182 -20.193932 +8749 2507 4 0 10.006770 -17.050221 -20.711055 +8750 2507 4 0 11.163899 -17.997677 -20.596267 +8751 2508 6 0 -1.413844 20.882523 -7.532723 +8752 2508 4 0 -0.481522 20.795022 -7.591494 +8753 2508 4 0 -1.734791 20.061230 -7.123891 +8754 2509 6 0 14.883760 4.844985 -11.460983 +8755 2509 4 0 14.857826 5.007527 -12.430076 +8756 2509 4 0 14.543696 3.941245 -11.329620 +8757 2510 6 0 -6.076326 -4.794057 13.123230 +8758 2510 4 0 -7.063204 -4.795068 13.194896 +8759 2510 4 0 -5.787599 -5.455376 13.703743 +8760 2511 6 0 26.801734 19.306820 7.537896 +8761 2511 4 0 27.324481 18.524252 7.345834 +8762 2511 4 0 27.305309 20.057747 7.249205 +8763 2512 6 0 17.631040 11.938297 -2.819567 +8764 2512 4 0 18.494147 11.630708 -2.989743 +8765 2512 4 0 17.500906 12.097849 -1.861896 +8766 2513 6 0 -5.066723 14.593124 8.613540 +8767 2513 4 0 -5.776044 13.928470 8.604036 +8768 2513 4 0 -5.472521 15.379622 8.936421 +8769 2514 6 0 -22.625793 -6.943329 -10.402222 +8770 2514 4 0 -22.918006 -7.487802 -11.106371 +8771 2514 4 0 -22.525718 -6.063678 -10.788262 +8772 2515 6 0 11.828624 -19.683428 -20.603919 +8773 2515 4 0 12.217112 -20.243126 -21.346224 +8774 2515 4 0 12.385880 -19.784195 -19.860322 +8775 2516 6 0 -21.139138 9.961065 13.641562 +8776 2516 4 0 -21.977740 9.505083 13.402813 +8777 2516 4 0 -20.669934 9.781538 12.788303 +8778 2517 6 0 25.519216 -5.515401 1.511029 +8779 2517 4 0 26.084211 -5.177738 0.810141 +8780 2517 4 0 24.693318 -5.003524 1.409607 +8781 2518 6 0 26.272080 10.541058 9.764091 +8782 2518 4 0 25.609606 11.193003 9.426754 +8783 2518 4 0 25.839012 9.942262 10.435364 +8784 2519 6 0 25.016001 0.794303 -1.014649 +8785 2519 4 0 25.368203 0.342397 -1.801633 +8786 2519 4 0 25.407512 1.692440 -0.976171 +8787 2520 6 0 -8.746565 3.936264 -17.089748 +8788 2520 4 0 -8.606611 4.042084 -18.035704 +8789 2520 4 0 -8.750589 2.966468 -16.991948 +8790 2521 6 0 21.588920 13.603723 -12.704304 +8791 2521 4 0 21.601929 14.305164 -12.022119 +8792 2521 4 0 21.312576 14.081953 -13.484692 +8793 2522 6 0 -18.216349 -3.529717 0.360926 +8794 2522 4 0 -18.540051 -2.874458 0.978203 +8795 2522 4 0 -18.963370 -4.161327 0.221890 +8796 2523 6 0 19.308604 17.633776 -17.848331 +8797 2523 4 0 18.426310 17.372206 -17.746813 +8798 2523 4 0 19.313729 18.351135 -18.545042 +8799 2524 6 0 23.180289 12.694539 3.506974 +8800 2524 4 0 22.252060 12.962086 3.303073 +8801 2524 4 0 23.366253 11.863114 3.057800 +8802 2525 6 0 -17.100932 8.883526 -6.444854 +8803 2525 4 0 -16.173403 8.831265 -6.716554 +8804 2525 4 0 -17.583234 8.325208 -7.157965 +8805 2526 6 0 14.323717 15.125299 -5.725594 +8806 2526 4 0 15.041767 15.729064 -5.519842 +8807 2526 4 0 13.765048 15.154023 -4.972067 +8808 2527 6 0 -19.909899 0.941274 -8.892043 +8809 2527 4 0 -20.063118 1.882998 -8.670527 +8810 2527 4 0 -20.016683 0.615676 -7.987400 +8811 2528 6 0 -4.062922 0.518298 17.993285 +8812 2528 4 0 -4.234902 1.391334 17.589117 +8813 2528 4 0 -4.820041 -0.077704 17.801729 +8814 2529 6 0 26.232840 -11.346405 0.934374 +8815 2529 4 0 26.965729 -10.796137 1.273638 +8816 2529 4 0 26.535197 -11.828470 0.207089 +8817 2530 6 0 18.568052 -3.606897 4.561302 +8818 2530 4 0 17.633584 -3.536757 4.401867 +8819 2530 4 0 18.956111 -3.197861 3.755933 +8820 2531 6 0 -23.855092 5.074567 4.116598 +8821 2531 4 0 -23.064224 4.611628 4.537652 +8822 2531 4 0 -23.710838 5.025654 3.139103 +8823 2532 6 0 26.437758 -20.018004 1.491909 +8824 2532 4 0 26.350439 -19.182255 1.070486 +8825 2532 4 0 27.361760 -20.307715 1.508970 +8826 2533 6 0 -15.774583 11.702587 -19.124466 +8827 2533 4 0 -15.128134 11.654611 -18.394652 +8828 2533 4 0 -16.197784 10.854994 -19.059229 +8829 2534 6 0 13.604852 -5.588538 -11.240265 +8830 2534 4 0 13.941716 -4.779794 -10.783187 +8831 2534 4 0 13.492173 -6.306084 -10.658525 +8832 2535 6 0 -4.406927 9.867817 9.346751 +8833 2535 4 0 -5.311013 9.555296 9.655422 +8834 2535 4 0 -4.255731 10.665634 9.843775 +8835 2536 6 0 -5.324087 -1.607821 -19.326145 +8836 2536 4 0 -5.081210 -2.540467 -19.512431 +8837 2536 4 0 -5.681118 -1.658898 -18.424650 +8838 2537 6 0 7.210255 -0.591966 -13.016339 +8839 2537 4 0 7.132769 -0.267418 -12.059025 +8840 2537 4 0 7.145986 0.215754 -13.558300 +8841 2538 6 0 13.031739 18.007964 -16.574884 +8842 2538 4 0 13.701983 18.076453 -17.280260 +8843 2538 4 0 13.560834 18.505150 -15.807835 +8844 2539 6 0 -4.939182 19.582248 2.433779 +8845 2539 4 0 -4.348475 19.232076 1.705221 +8846 2539 4 0 -4.493649 20.306827 2.886563 +8847 2540 6 0 -26.648293 -0.947736 -17.385316 +8848 2540 4 0 -26.109245 -1.287067 -18.123131 +8849 2540 4 0 -27.139044 -0.227784 -17.739830 +8850 2541 6 0 19.417331 5.365442 -12.381828 +8851 2541 4 0 20.057565 6.030330 -12.629842 +8852 2541 4 0 18.801680 5.841907 -11.794057 +8853 2542 6 0 -19.679332 -1.764604 -19.638774 +8854 2542 4 0 -19.289416 -1.940059 -18.795824 +8855 2542 4 0 -19.719754 -0.802184 -19.615952 +8856 2543 6 0 16.188925 -8.137607 9.745803 +8857 2543 4 0 15.895930 -8.655747 9.012990 +8858 2543 4 0 15.671496 -7.334126 9.820282 +8859 2544 6 0 17.367529 -1.265528 20.226689 +8860 2544 4 0 17.209414 -2.128384 20.612209 +8861 2544 4 0 17.475811 -0.580216 20.915152 +8862 2545 6 0 20.517093 9.728672 9.587262 +8863 2545 4 0 21.222551 9.963620 10.212987 +8864 2545 4 0 19.824767 9.384636 10.113042 +8865 2546 6 0 -7.547448 20.192218 -20.533482 +8866 2546 4 0 -6.695025 19.629425 -20.571646 +8867 2546 4 0 -8.008402 20.075383 -21.344144 +8868 2547 6 0 -16.582915 -1.120027 -4.095394 +8869 2547 4 0 -16.849559 -0.208322 -4.049542 +8870 2547 4 0 -16.720426 -1.473779 -3.214581 +8871 2548 6 0 4.785781 1.946407 13.103817 +8872 2548 4 0 4.799308 1.247503 12.424632 +8873 2548 4 0 4.583242 1.575294 13.963927 +8874 2549 6 0 -8.165114 -12.900949 2.168446 +8875 2549 4 0 -8.256829 -12.788477 3.143987 +8876 2549 4 0 -7.320909 -13.341131 2.150781 +8877 2550 6 0 -17.554071 -15.744741 -16.262189 +8878 2550 4 0 -17.806278 -16.375423 -15.592159 +8879 2550 4 0 -18.351583 -15.356631 -16.607464 +8880 2551 6 0 27.326866 4.195826 19.441977 +8881 2551 4 0 28.011431 4.581461 18.842795 +8882 2551 4 0 26.527694 4.615286 19.081611 +8883 2552 6 0 -25.419970 -6.739402 -9.247054 +8884 2552 4 0 -25.459364 -7.498417 -9.890859 +8885 2552 4 0 -24.515740 -6.409622 -9.324420 +8886 2553 6 0 -3.380308 -14.523714 -7.300867 +8887 2553 4 0 -3.061003 -15.308131 -6.909980 +8888 2553 4 0 -2.917512 -14.327994 -8.109098 +8889 2554 6 0 26.207829 15.728093 -19.215945 +8890 2554 4 0 25.966653 16.561497 -19.590938 +8891 2554 4 0 26.062905 14.999376 -19.810656 +8892 2555 6 0 -18.866057 -0.711382 15.470718 +8893 2555 4 0 -19.290122 -1.568096 15.298654 +8894 2555 4 0 -17.951441 -0.972639 15.451259 +8895 2556 6 0 18.465047 8.813449 11.216472 +8896 2556 4 0 18.798663 8.151346 11.818158 +8897 2556 4 0 17.716063 8.381682 10.839333 +8898 2557 6 0 -24.781204 -20.600352 -18.705084 +8899 2557 4 0 -25.022898 -19.710672 -18.985244 +8900 2557 4 0 -25.460136 -21.155945 -19.120654 +8901 2558 6 0 22.729959 2.205214 -7.072615 +8902 2558 4 0 22.357169 1.293535 -7.021078 +8903 2558 4 0 22.701750 2.488699 -7.961356 +8904 2559 6 0 12.690918 2.750591 12.342202 +8905 2559 4 0 12.532985 3.617962 11.878555 +8906 2559 4 0 13.133585 2.199071 11.681589 +8907 2560 6 0 24.106980 -11.846114 14.571893 +8908 2560 4 0 23.699036 -11.148912 15.134462 +8909 2560 4 0 23.233694 -12.194399 14.228632 +8910 2561 6 0 0.015177 -14.005197 -19.056743 +8911 2561 4 0 -0.340775 -13.532157 -18.287023 +8912 2561 4 0 -0.773966 -14.258584 -19.587550 +8913 2562 6 0 12.361724 4.484402 -15.999210 +8914 2562 4 0 12.200963 5.407914 -16.093788 +8915 2562 4 0 11.619804 4.000673 -15.643034 +8916 2563 6 0 -4.332154 14.465183 5.913532 +8917 2563 4 0 -3.550293 15.013973 5.769350 +8918 2563 4 0 -4.511279 14.482735 6.928514 +8919 2564 6 0 -2.423184 -19.036991 20.142811 +8920 2564 4 0 -2.033960 -18.570661 20.871778 +8921 2564 4 0 -2.200093 -18.567230 19.324641 +8922 2565 6 0 -11.400807 16.524027 12.877501 +8923 2565 4 0 -10.684181 16.008719 12.380621 +8924 2565 4 0 -12.191788 16.488834 12.343702 +8925 2566 6 0 15.966093 16.748739 -1.323378 +8926 2566 4 0 16.412638 17.338758 -1.989326 +8927 2566 4 0 15.598457 17.376590 -0.651299 +8928 2567 6 0 23.415752 18.871243 -18.062665 +8929 2567 4 0 23.451778 19.269195 -17.182012 +8930 2567 4 0 22.494121 18.975734 -18.366439 +8931 2568 6 0 -8.572201 3.275476 -10.014766 +8932 2568 4 0 -9.403406 3.269988 -10.503336 +8933 2568 4 0 -8.724278 3.329701 -9.074127 +8934 2569 6 0 -11.585480 -0.851627 12.287499 +8935 2569 4 0 -11.320746 -0.082366 12.769641 +8936 2569 4 0 -11.472816 -0.637183 11.362553 +8937 2570 6 0 7.497602 -9.434427 -12.321588 +8938 2570 4 0 8.071421 -10.126251 -12.076632 +8939 2570 4 0 8.042121 -8.593371 -12.397957 +8940 2571 6 0 4.778213 -10.266015 -19.410251 +8941 2571 4 0 5.274109 -9.668837 -18.817242 +8942 2571 4 0 4.120565 -9.651627 -19.758229 +8943 2572 6 0 -6.111007 -15.043780 2.679188 +8944 2572 4 0 -5.289890 -15.200515 3.239461 +8945 2572 4 0 -6.645239 -15.919834 2.758924 +8946 2573 6 0 -19.627428 -18.648983 -20.285776 +8947 2573 4 0 -18.763886 -19.012576 -20.099994 +8948 2573 4 0 -19.447444 -17.996380 -20.946059 +8949 2574 6 0 9.799336 -4.134177 -14.605227 +8950 2574 4 0 9.726430 -3.298650 -14.107003 +8951 2574 4 0 10.588497 -4.491055 -14.189406 +8952 2575 6 0 6.956853 10.981174 -15.927933 +8953 2575 4 0 6.333575 10.252829 -16.183246 +8954 2575 4 0 7.290948 10.697439 -15.077221 +8955 2576 6 0 15.996505 -7.421222 -2.982722 +8956 2576 4 0 16.037378 -8.363657 -3.163947 +8957 2576 4 0 15.971488 -7.414229 -2.004616 +8958 2577 6 0 24.116659 17.319712 -5.748450 +8959 2577 4 0 24.717303 17.575301 -5.045222 +8960 2577 4 0 24.154648 16.310133 -5.689457 +8961 2578 6 0 -25.014350 19.047244 5.636389 +8962 2578 4 0 -24.831592 18.532801 6.467994 +8963 2578 4 0 -25.569417 19.791621 5.840508 +8964 2579 6 0 -13.760710 14.201790 -16.036971 +8965 2579 4 0 -13.882187 15.099458 -16.440666 +8966 2579 4 0 -13.724599 14.326841 -15.088458 +8967 2580 6 0 -24.389392 17.787413 -4.553817 +8968 2580 4 0 -24.972675 18.418071 -5.068364 +8969 2580 4 0 -24.356964 18.276421 -3.698179 +8970 2581 6 0 -18.723840 -6.150098 -13.057313 +8971 2581 4 0 -18.318192 -6.956567 -12.670367 +8972 2581 4 0 -17.968230 -5.629913 -13.262178 +8973 2582 6 0 0.195836 -4.045493 20.385139 +8974 2582 4 0 0.549498 -4.632208 21.063706 +8975 2582 4 0 -0.603773 -4.486592 20.007533 +8976 2583 6 0 -5.473498 -2.320372 -16.638624 +8977 2583 4 0 -5.812762 -2.143253 -15.717531 +8978 2583 4 0 -5.163919 -3.274843 -16.629360 +8979 2584 6 0 21.657434 10.195244 -12.556194 +8980 2584 4 0 21.466450 11.110479 -12.686972 +8981 2584 4 0 21.662028 10.206355 -11.604800 +8982 2585 6 0 -18.526380 -11.853303 0.119709 +8983 2585 4 0 -18.677742 -12.441590 -0.589422 +8984 2585 4 0 -18.075660 -11.001968 -0.204346 +8985 2586 6 0 -19.755563 -18.537381 -2.766741 +8986 2586 4 0 -19.962233 -18.408807 -3.703137 +8987 2586 4 0 -19.999131 -17.782990 -2.372006 +8988 2587 6 0 25.476128 17.625846 -3.184333 +8989 2587 4 0 26.203145 17.076934 -2.886644 +8990 2587 4 0 25.710710 18.493253 -2.850200 +8991 2588 6 0 -22.305377 1.710018 15.373391 +8992 2588 4 0 -22.044667 1.930929 16.308564 +8993 2588 4 0 -22.836038 0.853232 15.392466 +8994 2589 6 0 2.757401 -15.671844 -1.738405 +8995 2589 4 0 2.387180 -15.115097 -1.096143 +8996 2589 4 0 3.413578 -16.267070 -1.380191 +8997 2590 6 0 25.430670 -2.334847 6.648866 +8998 2590 4 0 25.893201 -2.829135 7.309607 +8999 2590 4 0 24.545839 -2.463509 7.030661 +9000 2591 6 0 3.889750 2.458553 -20.722084 +9001 2591 4 0 3.444777 1.541092 -20.936428 +9002 2591 4 0 3.192280 2.998470 -20.481554 +9003 2592 6 0 19.435277 -5.919201 6.178342 +9004 2592 4 0 18.742497 -6.147165 6.835144 +9005 2592 4 0 19.082846 -5.397301 5.451949 +9006 2593 6 0 -1.325956 10.838557 -7.120140 +9007 2593 4 0 -1.379491 10.683558 -6.153949 +9008 2593 4 0 -1.024828 11.727198 -7.077078 +9009 2594 6 0 -3.710126 14.086716 -7.244913 +9010 2594 4 0 -4.337761 13.541137 -7.799347 +9011 2594 4 0 -4.000550 13.881396 -6.362053 +9012 2595 6 0 14.433778 -1.890208 -13.881242 +9013 2595 4 0 13.768753 -2.557931 -14.088173 +9014 2595 4 0 14.194801 -1.387777 -13.039639 +9015 2596 6 0 -18.934813 -1.053060 1.293190 +9016 2596 4 0 -19.547923 -0.821685 1.967866 +9017 2596 4 0 -18.094001 -0.641682 1.660883 +9018 2597 6 0 -22.405398 -20.039410 9.627718 +9019 2597 4 0 -22.796434 -20.600182 8.972850 +9020 2597 4 0 -22.131968 -19.299630 9.083235 +9021 2598 6 0 -1.229753 11.457428 10.074790 +9022 2598 4 0 -0.334237 11.703470 10.327241 +9023 2598 4 0 -1.157156 10.837370 9.316439 +9024 2599 6 0 25.443002 2.066902 -6.888756 +9025 2599 4 0 25.641541 2.915762 -7.359788 +9026 2599 4 0 24.465208 2.093523 -6.739748 +9027 2600 6 0 -16.581214 16.377510 -14.832297 +9028 2600 4 0 -16.587099 15.904994 -13.968869 +9029 2600 4 0 -16.866698 17.278853 -14.742235 +9030 2601 6 0 11.983368 11.828299 -3.823724 +9031 2601 4 0 12.336985 12.445002 -3.178218 +9032 2601 4 0 11.049304 11.604866 -3.665958 +9033 2602 6 0 21.164572 -1.185333 -16.015117 +9034 2602 4 0 20.715162 -0.431609 -16.354646 +9035 2602 4 0 20.819380 -1.264906 -15.151962 +9036 2603 6 0 5.457366 -10.657358 -13.800772 +9037 2603 4 0 4.779858 -10.165440 -14.279853 +9038 2603 4 0 6.212045 -10.040539 -13.706945 +9039 2604 6 0 -16.423429 10.434483 -15.277807 +9040 2604 4 0 -15.708526 10.928082 -15.699592 +9041 2604 4 0 -15.960741 9.897443 -14.616298 +9042 2605 6 0 -20.419587 -19.665938 5.773644 +9043 2605 4 0 -21.363895 -19.581010 6.013361 +9044 2605 4 0 -19.853905 -19.280863 6.468747 +9045 2606 6 0 19.508036 -18.494331 8.912926 +9046 2606 4 0 19.727428 -18.712582 9.835185 +9047 2606 4 0 19.913134 -19.105692 8.298087 +9048 2607 6 0 19.742354 -2.749373 18.946243 +9049 2607 4 0 20.356111 -2.867791 19.687152 +9050 2607 4 0 19.073759 -2.160527 19.341368 +9051 2608 6 0 19.005725 16.659102 -4.024674 +9052 2608 4 0 18.186097 16.480938 -4.427734 +9053 2608 4 0 18.814608 17.298422 -3.358553 +9054 2609 6 0 -8.835887 18.312505 -7.442487 +9055 2609 4 0 -8.830492 17.732483 -8.193218 +9056 2609 4 0 -9.752425 18.649905 -7.404203 +9057 2610 6 0 -17.336326 4.931650 10.634975 +9058 2610 4 0 -16.450097 5.217439 10.271982 +9059 2610 4 0 -17.882557 4.558518 9.889708 +9060 2611 6 0 -3.010824 -5.905956 6.847801 +9061 2611 4 0 -2.748688 -5.113745 6.359917 +9062 2611 4 0 -2.163371 -6.028171 7.336259 +9063 2612 6 0 26.674110 12.326845 1.003397 +9064 2612 4 0 26.498840 12.357411 1.941376 +9065 2612 4 0 26.095376 11.585032 0.663483 +9066 2613 6 0 -3.647702 -6.137587 13.529843 +9067 2613 4 0 -3.585661 -5.496886 12.804045 +9068 2613 4 0 -3.582668 -6.993279 13.154224 +9069 2614 6 0 1.988731 3.642853 -17.323133 +9070 2614 4 0 1.657523 3.030179 -16.746788 +9071 2614 4 0 1.714357 4.548463 -17.022125 +9072 2615 6 0 -21.467906 15.279507 16.450567 +9073 2615 4 0 -21.342432 15.396388 15.459294 +9074 2615 4 0 -21.255917 16.108495 16.873553 +9075 2616 6 0 10.722659 -15.332451 -4.565762 +9076 2616 4 0 10.219128 -14.832093 -3.873147 +9077 2616 4 0 11.478425 -15.649236 -4.183169 +9078 2617 6 0 -15.362943 8.381189 -9.911049 +9079 2617 4 0 -15.790421 8.852870 -9.163602 +9080 2617 4 0 -15.901457 8.456340 -10.687883 +9081 2618 6 0 -6.117005 -17.666075 11.598739 +9082 2618 4 0 -5.807530 -18.593273 11.402299 +9083 2618 4 0 -5.391363 -17.258909 12.082625 +9084 2619 6 0 15.809786 8.519937 -19.377408 +9085 2619 4 0 15.758815 8.522648 -20.341707 +9086 2619 4 0 15.420577 9.368007 -19.123689 +9087 2620 6 0 16.939240 -18.373645 7.950825 +9088 2620 4 0 17.207858 -18.006941 7.092997 +9089 2620 4 0 17.812610 -18.447723 8.295733 +9090 2621 6 0 -12.507522 -15.054493 6.331021 +9091 2621 4 0 -13.226017 -14.420799 6.460827 +9092 2621 4 0 -11.849976 -14.561229 5.786593 +9093 2622 6 0 -18.182152 4.799952 -11.866172 +9094 2622 4 0 -18.038039 4.897463 -10.917789 +9095 2622 4 0 -18.695958 4.021311 -12.029165 +9096 2623 6 0 -9.377203 11.614184 3.311631 +9097 2623 4 0 -9.092786 10.701027 3.311174 +9098 2623 4 0 -8.739940 12.083447 3.909937 +9099 2624 6 0 24.894256 -5.525807 -20.636863 +9100 2624 4 0 24.507335 -5.547278 -19.753182 +9101 2624 4 0 25.790020 -5.247577 -20.418409 +9102 2625 6 0 -23.172834 -17.188227 2.440789 +9103 2625 4 0 -23.395171 -18.018880 2.825747 +9104 2625 4 0 -22.193387 -17.125237 2.517058 +9105 2626 6 0 24.135008 -19.930490 -4.684991 +9106 2626 4 0 24.122289 -18.925946 -4.803857 +9107 2626 4 0 24.712920 -20.215229 -5.372877 +9108 2627 6 0 -17.792076 11.534192 15.059996 +9109 2627 4 0 -16.965370 11.797213 15.470927 +9110 2627 4 0 -18.560988 11.913780 15.443831 +9111 2628 6 0 -18.514941 20.339905 -0.125520 +9112 2628 4 0 -18.667243 19.462095 -0.535183 +9113 2628 4 0 -18.065408 20.873029 -0.719025 +9114 2629 6 0 -22.940337 -3.988570 -9.248839 +9115 2629 4 0 -22.556330 -3.193733 -8.929657 +9116 2629 4 0 -23.624559 -3.640649 -9.848732 +9117 2630 6 0 12.039511 -1.981999 -19.397718 +9118 2630 4 0 12.283853 -1.068627 -19.717430 +9119 2630 4 0 11.293173 -1.821725 -18.743785 +9120 2631 6 0 26.340624 1.335259 19.289276 +9121 2631 4 0 26.841055 0.655996 19.819897 +9122 2631 4 0 26.800288 2.181296 19.386054 +9123 2632 6 0 5.916695 14.316365 5.690974 +9124 2632 4 0 6.301016 14.102416 4.790199 +9125 2632 4 0 5.065517 13.849361 5.701154 +9126 2633 6 0 13.370348 -18.821001 19.162682 +9127 2633 4 0 14.108633 -19.097802 18.663220 +9128 2633 4 0 13.699085 -18.168012 19.800526 +9129 2634 6 0 23.405805 15.068779 9.736213 +9130 2634 4 0 22.573160 14.660972 10.019951 +9131 2634 4 0 23.219623 15.734719 9.058682 +9132 2635 6 0 -5.408829 13.828838 18.447419 +9133 2635 4 0 -6.168561 13.481395 17.992340 +9134 2635 4 0 -4.784831 14.172206 17.836655 +9135 2636 6 0 -13.245623 5.670961 -0.018513 +9136 2636 4 0 -12.419620 5.936404 0.475256 +9137 2636 4 0 -12.953928 4.989305 -0.645525 +9138 2637 6 0 17.249203 -6.366308 2.555121 +9139 2637 4 0 18.196321 -6.281038 2.412817 +9140 2637 4 0 16.966298 -7.253693 2.384394 +9141 2638 6 0 -5.296416 19.864731 -1.668047 +9142 2638 4 0 -5.749980 19.031441 -1.444019 +9143 2638 4 0 -4.299943 19.722461 -1.604460 +9144 2639 6 0 -16.684535 5.831070 -9.866261 +9145 2639 4 0 -17.133431 6.510584 -9.314798 +9146 2639 4 0 -15.783199 6.112174 -9.905469 +9147 2640 6 0 16.265639 6.852785 -7.896636 +9148 2640 4 0 16.527802 6.700601 -8.808419 +9149 2640 4 0 17.070642 6.577942 -7.414049 +9150 2641 6 0 -21.312105 18.191924 10.459876 +9151 2641 4 0 -20.762633 18.843032 9.983997 +9152 2641 4 0 -20.749711 17.337404 10.555555 +9153 2642 6 0 -16.100357 -8.153697 -5.142815 +9154 2642 4 0 -16.563606 -8.364758 -6.004467 +9155 2642 4 0 -15.154250 -7.906094 -5.382181 +9156 2643 6 0 -9.615286 13.091225 20.211510 +9157 2643 4 0 -9.791366 12.655362 19.395743 +9158 2643 4 0 -10.462726 13.102852 20.699120 +9159 2644 6 0 -18.598056 -9.697384 8.839376 +9160 2644 4 0 -18.669310 -10.516686 9.343906 +9161 2644 4 0 -18.931363 -8.964428 9.385541 +9162 2645 6 0 7.933987 -14.093590 6.186519 +9163 2645 4 0 8.207527 -14.668399 6.884006 +9164 2645 4 0 8.301922 -13.235214 6.418423 +9165 2646 6 0 14.288937 4.874936 -8.228821 +9166 2646 4 0 13.542574 5.155680 -8.863279 +9167 2646 4 0 14.810343 5.654336 -8.058197 +9168 2647 6 0 12.246994 8.643633 9.863872 +9169 2647 4 0 12.726549 8.831956 10.652198 +9170 2647 4 0 11.373287 8.283693 10.003012 +9171 2648 6 0 -25.270711 -9.927997 8.533897 +9172 2648 4 0 -24.762785 -10.112710 9.286810 +9173 2648 4 0 -25.238676 -10.761122 8.058752 +9174 2649 6 0 22.391162 10.881778 -20.435148 +9175 2649 4 0 21.795271 11.117663 -21.128050 +9176 2649 4 0 22.356795 11.558284 -19.773744 +9177 2650 6 0 -0.807548 -14.371789 12.994860 +9178 2650 4 0 0.169556 -14.376294 13.074982 +9179 2650 4 0 -1.104471 -13.660037 12.471373 +9180 2651 6 0 7.732198 13.812736 20.037022 +9181 2651 4 0 8.322105 14.100985 20.697382 +9182 2651 4 0 7.280009 14.639584 19.691732 +9183 2652 6 0 19.803756 0.841082 -17.134900 +9184 2652 4 0 19.288798 0.974936 -16.312323 +9185 2652 4 0 20.344973 1.668924 -17.222026 +9186 2653 6 0 3.006216 10.098697 2.949568 +9187 2653 4 0 2.578021 10.984530 2.806805 +9188 2653 4 0 3.907142 10.297785 3.184074 +9189 2654 6 0 15.873541 13.013460 -17.893320 +9190 2654 4 0 15.039690 13.457379 -17.843027 +9191 2654 4 0 16.307486 13.271147 -17.069099 +9192 2655 6 0 17.084293 4.346353 -14.985379 +9193 2655 4 0 16.897186 4.218804 -15.905422 +9194 2655 4 0 18.061148 4.233803 -14.912436 +9195 2656 6 0 -21.371098 -2.500601 10.634104 +9196 2656 4 0 -21.050859 -3.246995 11.070174 +9197 2656 4 0 -21.156581 -2.501005 9.672558 +9198 2657 6 0 -18.750890 1.105436 13.107103 +9199 2657 4 0 -19.405065 0.422507 13.292755 +9200 2657 4 0 -18.176163 1.261421 13.836264 +9201 2658 6 0 -14.137019 19.297443 5.108564 +9202 2658 4 0 -14.447107 19.586959 4.301598 +9203 2658 4 0 -14.859255 19.041560 5.714699 +9204 2659 6 0 2.347144 -4.353199 10.184512 +9205 2659 4 0 3.047693 -4.789736 10.732160 +9206 2659 4 0 1.864240 -5.020658 9.719618 +9207 2660 6 0 8.101274 -12.868709 15.865572 +9208 2660 4 0 9.008432 -13.290947 15.950755 +9209 2660 4 0 8.164041 -12.117937 16.446599 +9210 2661 6 0 -7.675769 -15.390059 12.539289 +9211 2661 4 0 -7.409496 -14.626553 11.915042 +9212 2661 4 0 -7.614755 -16.191218 12.009248 +9213 2662 6 0 -21.398277 17.515428 0.659811 +9214 2662 4 0 -22.373476 17.461084 0.916402 +9215 2662 4 0 -21.187696 16.555626 0.790839 +9216 2663 6 0 -16.011532 15.600476 -5.525384 +9217 2663 4 0 -15.829552 14.648078 -5.450075 +9218 2663 4 0 -15.676036 15.915857 -6.377072 +9219 2664 6 0 -20.171456 -7.558847 9.362228 +9220 2664 4 0 -19.542732 -6.922489 9.041804 +9221 2664 4 0 -20.565885 -7.210783 10.122068 +9222 2665 6 0 -10.027028 2.569851 14.780708 +9223 2665 4 0 -10.957643 2.497925 14.922514 +9224 2665 4 0 -9.726024 3.392205 15.205842 +9225 2666 6 0 -12.389641 -3.630575 19.832870 +9226 2666 4 0 -12.243221 -2.721357 19.438252 +9227 2666 4 0 -11.816036 -4.199902 19.239521 +9228 2667 6 0 18.688398 -15.142019 -11.646870 +9229 2667 4 0 18.104901 -15.132683 -12.455435 +9230 2667 4 0 19.565818 -14.972254 -11.954461 +9231 2668 6 0 -16.127768 -4.186936 16.465789 +9232 2668 4 0 -16.199826 -5.136635 16.281789 +9233 2668 4 0 -15.213417 -3.948084 16.556706 +9234 2669 6 0 -5.695916 9.820869 12.533783 +9235 2669 4 0 -6.081058 9.297651 11.888045 +9236 2669 4 0 -6.375197 10.194994 13.105807 +9237 2670 6 0 -11.767595 7.371441 19.819990 +9238 2670 4 0 -12.489308 7.774706 20.373473 +9239 2670 4 0 -10.903774 7.497881 20.264329 +9240 2671 6 0 -18.646029 -3.188135 4.429231 +9241 2671 4 0 -18.121897 -2.394969 4.628228 +9242 2671 4 0 -19.564881 -3.024196 4.677418 +9243 2672 6 0 -27.199358 17.790334 15.106308 +9244 2672 4 0 -27.385927 16.881826 14.776421 +9245 2672 4 0 -27.100030 17.729872 16.057267 +9246 2673 6 0 18.093363 3.769702 -4.593442 +9247 2673 4 0 18.609903 3.037301 -4.942422 +9248 2673 4 0 18.650829 4.233336 -3.997439 +9249 2674 6 0 7.706432 11.586595 6.521802 +9250 2674 4 0 7.812472 12.398627 6.995928 +9251 2674 4 0 7.694286 11.737503 5.595545 +9252 2675 6 0 -23.496957 14.349318 18.036220 +9253 2675 4 0 -22.854057 14.699094 17.423607 +9254 2675 4 0 -22.990832 13.822071 18.687726 +9255 2676 6 0 -4.664327 -11.498090 8.919813 +9256 2676 4 0 -5.320061 -11.113845 8.334147 +9257 2676 4 0 -4.917357 -12.403653 9.095316 +9258 2677 6 0 -12.823426 10.100060 12.766547 +9259 2677 4 0 -13.732598 9.891677 12.621183 +9260 2677 4 0 -12.785614 10.926980 13.238539 +9261 2678 6 0 -17.217436 3.102574 -9.344857 +9262 2678 4 0 -16.824523 3.966216 -9.255133 +9263 2678 4 0 -18.161389 3.114177 -9.202666 +9264 2679 6 0 -19.237099 13.102459 19.268997 +9265 2679 4 0 -18.881981 13.843795 19.761617 +9266 2679 4 0 -18.662460 12.340333 19.526666 +9267 2680 6 0 -9.459329 4.127006 -20.423384 +9268 2680 4 0 -9.437953 4.152565 -21.392157 +9269 2680 4 0 -9.259556 3.201676 -20.170944 +9270 2681 6 0 16.881832 1.847629 -10.429065 +9271 2681 4 0 16.137346 2.355903 -10.841218 +9272 2681 4 0 16.970716 2.383474 -9.646384 +9273 2682 6 0 14.087997 4.886317 -18.329611 +9274 2682 4 0 13.870527 5.790902 -18.194453 +9275 2682 4 0 13.733176 4.313827 -17.614840 +9276 2683 6 0 -16.672076 -8.158476 12.371072 +9277 2683 4 0 -16.864374 -8.959184 11.822666 +9278 2683 4 0 -15.812107 -8.255964 12.755980 +9279 2684 6 0 -19.299758 3.045618 -4.235388 +9280 2684 4 0 -19.897059 2.549328 -3.677605 +9281 2684 4 0 -19.150628 3.861874 -3.750292 +9282 2685 6 0 -23.652514 -4.511442 -6.532734 +9283 2685 4 0 -22.727919 -4.287115 -6.467785 +9284 2685 4 0 -23.794359 -4.367125 -7.440392 +9285 2686 6 0 -2.920139 11.742479 14.018818 +9286 2686 4 0 -3.093279 11.094202 13.278761 +9287 2686 4 0 -2.213003 12.387804 13.722639 +9288 2687 6 0 26.349425 3.441434 -0.896655 +9289 2687 4 0 25.559323 3.941367 -0.786766 +9290 2687 4 0 26.827837 3.589174 -1.727789 +9291 2688 6 0 24.371024 -6.950117 11.157076 +9292 2688 4 0 24.363949 -7.335870 12.010991 +9293 2688 4 0 23.997586 -7.623084 10.641501 +9294 2689 6 0 -22.986862 7.597219 -10.685297 +9295 2689 4 0 -22.839220 7.363568 -11.582970 +9296 2689 4 0 -23.377355 8.488181 -10.698170 +9297 2690 6 0 -26.260863 2.606900 0.424694 +9298 2690 4 0 -25.763469 2.340546 -0.362004 +9299 2690 4 0 -27.210163 2.597209 0.142899 +9300 2691 6 0 -12.863331 19.210721 9.863577 +9301 2691 4 0 -12.261758 19.250393 10.674962 +9302 2691 4 0 -13.524604 18.506027 9.993308 +9303 2692 6 0 -21.978336 -14.820148 8.330413 +9304 2692 4 0 -21.114644 -14.929597 7.888749 +9305 2692 4 0 -21.801101 -14.612357 9.239922 +9306 2693 6 0 4.170159 8.312971 19.162038 +9307 2693 4 0 4.570566 7.905151 18.357550 +9308 2693 4 0 3.241810 8.258885 18.904642 +9309 2694 6 0 20.797031 -12.724867 -4.841837 +9310 2694 4 0 20.936034 -13.677427 -4.931553 +9311 2694 4 0 21.567394 -12.221377 -4.833917 +9312 2695 6 0 13.112963 4.999431 10.925314 +9313 2695 4 0 13.381193 5.910915 11.162187 +9314 2695 4 0 12.775168 5.031277 10.023795 +9315 2696 6 0 -17.488498 18.101828 -9.390547 +9316 2696 4 0 -16.811412 18.773847 -9.686587 +9317 2696 4 0 -17.803299 18.410345 -8.511456 +9318 2697 6 0 17.749103 -8.641103 -11.171278 +9319 2697 4 0 17.842099 -7.910400 -11.803229 +9320 2697 4 0 18.554099 -8.647320 -10.650095 +9321 2698 6 0 23.187132 -9.133014 9.904940 +9322 2698 4 0 23.460415 -9.970033 10.292082 +9323 2698 4 0 22.233888 -9.184916 9.742240 +9324 2699 6 0 14.891551 9.368784 -7.655561 +9325 2699 4 0 15.425686 8.571538 -7.734882 +9326 2699 4 0 15.193600 9.946038 -8.368338 +9327 2700 6 0 -23.866954 -2.554397 -3.337520 +9328 2700 4 0 -23.349227 -3.276607 -2.890486 +9329 2700 4 0 -24.593652 -2.997738 -3.796287 +9330 2701 6 0 5.289348 -7.469003 -13.632279 +9331 2701 4 0 5.277377 -6.512734 -13.514077 +9332 2701 4 0 5.158552 -7.590503 -14.588796 +9333 2702 6 0 -24.673900 -20.221091 14.116865 +9334 2702 4 0 -24.507583 -21.124377 14.341508 +9335 2702 4 0 -24.631103 -20.019803 13.186904 +9336 2703 6 0 23.849959 -2.905384 -13.612324 +9337 2703 4 0 23.991560 -2.301635 -14.360144 +9338 2703 4 0 23.035961 -3.322471 -13.648750 +9339 2704 6 0 9.597419 13.539609 16.458855 +9340 2704 4 0 8.786247 13.049602 16.392590 +9341 2704 4 0 9.783350 13.953319 15.588815 +9342 2705 6 0 25.970484 6.179678 15.798539 +9343 2705 4 0 26.018959 6.019011 14.863720 +9344 2705 4 0 26.760326 5.647911 16.135033 +9345 2706 6 0 15.995160 -8.299211 -19.360180 +9346 2706 4 0 16.084534 -7.778026 -20.183460 +9347 2706 4 0 16.045247 -9.240694 -19.615365 +9348 2707 6 0 -14.294639 13.545693 12.129310 +9349 2707 4 0 -14.596139 13.059241 11.355518 +9350 2707 4 0 -13.936091 12.903120 12.762555 +9351 2708 6 0 -19.407809 -1.632719 -10.223791 +9352 2708 4 0 -18.944881 -0.931680 -10.694558 +9353 2708 4 0 -19.337036 -2.518503 -10.649693 +9354 2709 6 0 19.353851 17.575670 17.852735 +9355 2709 4 0 19.970328 18.410638 17.937921 +9356 2709 4 0 18.705869 17.842357 17.182350 +9357 2710 6 0 7.952485 -13.835833 10.779314 +9358 2710 4 0 8.503126 -13.070419 11.090754 +9359 2710 4 0 7.207795 -13.430815 10.322018 +9360 2711 6 0 -22.842698 -2.314944 16.647836 +9361 2711 4 0 -23.333149 -1.519155 16.340397 +9362 2711 4 0 -23.463394 -3.038396 16.463743 +9363 2712 6 0 -19.201717 2.632915 18.127454 +9364 2712 4 0 -20.123441 2.325926 18.179315 +9365 2712 4 0 -19.210821 3.510831 17.811602 +9366 2713 6 0 14.940360 -1.960385 -5.022951 +9367 2713 4 0 15.464903 -2.467492 -5.627366 +9368 2713 4 0 15.028383 -1.068080 -5.249177 +9369 2714 6 0 18.305226 -9.507548 11.469011 +9370 2714 4 0 18.631115 -9.386360 12.404545 +9371 2714 4 0 17.861273 -8.670836 11.223009 +9372 2715 6 0 14.602066 10.381034 5.005010 +9373 2715 4 0 13.693795 10.430464 4.699453 +9374 2715 4 0 14.612959 10.041819 5.921815 +9375 2716 6 0 2.027713 14.335519 -2.737302 +9376 2716 4 0 2.701727 15.041848 -2.820213 +9377 2716 4 0 1.287972 14.760203 -2.236217 +9378 2717 6 0 7.583318 14.155640 -9.444813 +9379 2717 4 0 6.943304 13.664978 -8.934443 +9380 2717 4 0 7.541292 15.069839 -9.060789 +9381 2718 6 0 6.157219 -18.775945 -4.259618 +9382 2718 4 0 6.564876 -17.949995 -4.135465 +9383 2718 4 0 5.381952 -18.685791 -4.858352 +9384 2719 6 0 -17.694760 -19.372982 4.444716 +9385 2719 4 0 -18.482553 -19.775840 4.189782 +9386 2719 4 0 -17.768985 -18.373906 4.216234 +9387 2720 6 0 -7.853241 -10.893164 5.893751 +9388 2720 4 0 -8.018175 -11.113207 6.770281 +9389 2720 4 0 -8.721602 -10.559022 5.533534 +9390 2721 6 0 -0.179053 -16.316262 -6.972426 +9391 2721 4 0 -0.917372 -16.443486 -6.358316 +9392 2721 4 0 0.161491 -15.370029 -6.873414 +9393 2722 6 0 -17.840107 2.077389 4.804516 +9394 2722 4 0 -18.321956 2.898522 4.546830 +9395 2722 4 0 -17.883766 1.968309 5.738130 +9396 2723 6 0 22.514225 -13.301014 8.910658 +9397 2723 4 0 22.980267 -13.555893 9.738284 +9398 2723 4 0 22.816838 -13.961875 8.319245 +9399 2724 6 0 8.642838 -14.756688 -17.347259 +9400 2724 4 0 7.685639 -14.854800 -17.271066 +9401 2724 4 0 9.104821 -15.542415 -17.427483 +9402 2725 6 0 1.148414 -18.182410 2.438452 +9403 2725 4 0 1.244513 -18.018729 1.471145 +9404 2725 4 0 0.297784 -18.622295 2.484621 +9405 2726 6 0 -0.615129 -11.682105 -14.874888 +9406 2726 4 0 -0.743014 -12.466140 -15.424873 +9407 2726 4 0 -0.401037 -10.992229 -15.542345 +9408 2727 6 0 0.382292 8.435158 -17.928055 +9409 2727 4 0 1.324448 8.603691 -17.753474 +9410 2727 4 0 -0.034745 8.730008 -17.117939 +9411 2728 6 0 16.913096 -13.325161 -8.541691 +9412 2728 4 0 17.365381 -13.123665 -7.714485 +9413 2728 4 0 17.395114 -14.047333 -9.044404 +9414 2729 6 0 -21.295513 -11.021940 0.140848 +9415 2729 4 0 -20.399742 -11.414489 0.196618 +9416 2729 4 0 -21.717453 -11.457849 -0.596997 +9417 2730 6 0 16.257153 -20.396691 -7.748186 +9418 2730 4 0 15.866593 -21.141436 -8.252209 +9419 2730 4 0 16.774217 -20.799101 -7.019481 +9420 2731 6 0 0.208862 17.804049 -6.156398 +9421 2731 4 0 -0.761445 17.806961 -6.377662 +9422 2731 4 0 0.362977 16.942869 -5.716103 +9423 2732 6 0 16.820504 12.298715 0.018055 +9424 2732 4 0 17.269628 12.806166 0.753963 +9425 2732 4 0 16.616966 11.447779 0.422257 +9426 2733 6 0 8.249689 9.539413 -5.657026 +9427 2733 4 0 7.926267 8.961633 -4.961649 +9428 2733 4 0 7.466873 9.988595 -6.079963 +9429 2734 6 0 -6.420145 -15.194726 -2.072771 +9430 2734 4 0 -6.645150 -15.017421 -2.971457 +9431 2734 4 0 -5.532921 -14.874756 -2.025757 +9432 2735 6 0 -19.505572 1.070481 -18.793079 +9433 2735 4 0 -18.974247 1.767142 -19.229226 +9434 2735 4 0 -19.357244 1.271413 -17.799689 +9435 2736 6 0 20.278433 -11.278541 19.375197 +9436 2736 4 0 20.311617 -10.856797 20.258994 +9437 2736 4 0 20.934421 -12.034086 19.419062 +9438 2737 6 0 -10.619435 15.949865 1.585511 +9439 2737 4 0 -10.621509 15.567618 2.491670 +9440 2737 4 0 -10.362619 16.916267 1.609401 +9441 2738 6 0 -1.101917 -7.441924 10.586362 +9442 2738 4 0 -0.567999 -7.634893 11.314871 +9443 2738 4 0 -0.711206 -6.670438 10.158382 +9444 2739 6 0 -8.851165 -9.058377 -8.388886 +9445 2739 4 0 -9.044805 -8.277288 -8.905613 +9446 2739 4 0 -7.947771 -9.334823 -8.625881 +9447 2740 6 0 -12.865173 -20.003868 -17.685004 +9448 2740 4 0 -11.900331 -20.290871 -17.648188 +9449 2740 4 0 -13.259242 -20.215643 -16.805809 +9450 2741 6 0 8.134636 3.904853 11.647104 +9451 2741 4 0 7.339621 4.198944 12.086138 +9452 2741 4 0 8.359181 3.015108 11.941173 +9453 2742 6 0 19.642179 -0.232387 9.832126 +9454 2742 4 0 18.865134 -0.769467 9.662648 +9455 2742 4 0 19.348750 0.264237 10.621214 +9456 2743 6 0 -12.682747 8.424040 -10.230134 +9457 2743 4 0 -13.551445 8.389330 -9.854912 +9458 2743 4 0 -12.463391 9.379389 -10.339605 +9459 2744 6 0 26.914440 16.154997 -16.554272 +9460 2744 4 0 26.893167 15.808906 -17.482437 +9461 2744 4 0 26.594368 15.442541 -16.021243 +9462 2745 6 0 -6.756073 6.486074 12.621266 +9463 2745 4 0 -6.001614 6.299854 12.037502 +9464 2745 4 0 -7.537856 6.154367 12.136267 +9465 2746 6 0 -1.534934 -0.378729 -11.255488 +9466 2746 4 0 -1.019268 -0.077205 -12.015010 +9467 2746 4 0 -1.396223 0.199493 -10.524178 +9468 2747 6 0 -7.913402 -19.479583 -10.101731 +9469 2747 4 0 -7.094305 -19.451963 -10.661033 +9470 2747 4 0 -8.430321 -18.659348 -10.306663 +9471 2748 6 0 19.510276 5.438180 15.252043 +9472 2748 4 0 19.984510 4.581515 15.209276 +9473 2748 4 0 18.693891 5.265727 15.619608 +9474 2749 6 0 14.672317 -11.674219 -8.512325 +9475 2749 4 0 15.214654 -10.997268 -8.992741 +9476 2749 4 0 15.271629 -12.444207 -8.537082 +9477 2750 6 0 -26.549973 -17.678593 10.402834 +9478 2750 4 0 -25.763998 -17.483834 10.878590 +9479 2750 4 0 -27.160376 -17.361462 11.034196 +9480 2751 6 0 5.271179 14.438724 -17.415549 +9481 2751 4 0 4.435936 14.151626 -17.136425 +9482 2751 4 0 5.468504 14.023544 -18.253894 +9483 2752 6 0 26.352424 19.290788 19.181784 +9484 2752 4 0 26.638793 20.134863 19.511609 +9485 2752 4 0 27.096123 18.959221 18.597699 +9486 2753 6 0 -26.414188 7.441925 13.185744 +9487 2753 4 0 -26.562431 6.574296 12.885418 +9488 2753 4 0 -25.860420 7.846130 12.499402 +9489 2754 6 0 5.368816 -14.762666 -4.864027 +9490 2754 4 0 6.085752 -14.950510 -4.202359 +9491 2754 4 0 5.366848 -13.815827 -5.050153 +9492 2755 6 0 -1.852223 13.402453 16.099559 +9493 2755 4 0 -0.907053 13.096616 15.950410 +9494 2755 4 0 -2.405269 12.678324 16.442150 +9495 2756 6 0 -9.537989 1.018888 -17.294635 +9496 2756 4 0 -10.174283 0.989703 -18.011766 +9497 2756 4 0 -10.088090 0.844105 -16.509242 +9498 2757 6 0 -4.825860 2.375466 13.925597 +9499 2757 4 0 -4.190822 2.787671 13.323831 +9500 2757 4 0 -5.515449 3.033395 14.087300 +9501 2758 6 0 19.580327 -10.893880 -2.747248 +9502 2758 4 0 19.742431 -11.614878 -3.428406 +9503 2758 4 0 18.622372 -10.972265 -2.491828 +9504 2759 6 0 19.256086 14.705134 10.874402 +9505 2759 4 0 20.041175 14.096992 10.573737 +9506 2759 4 0 18.760180 14.026878 11.366191 +9507 2760 6 0 4.455935 -2.361452 20.137505 +9508 2760 4 0 3.955764 -1.509452 20.278229 +9509 2760 4 0 4.874829 -2.603490 21.001857 +9510 2761 6 0 -25.974850 13.344171 -18.000007 +9511 2761 4 0 -26.267499 12.457368 -18.163639 +9512 2761 4 0 -26.149308 13.539735 -17.037715 +9513 2762 6 0 17.067973 2.763490 17.660244 +9514 2762 4 0 16.915215 3.437471 16.973312 +9515 2762 4 0 17.816632 2.203161 17.314923 +9516 2763 6 0 -11.517545 18.040646 17.714435 +9517 2763 4 0 -11.560942 17.052444 17.749537 +9518 2763 4 0 -11.413962 18.230547 18.657315 +9519 2764 6 0 25.776483 -1.160860 1.258340 +9520 2764 4 0 26.324116 -0.766625 1.925968 +9521 2764 4 0 25.733053 -0.545865 0.469204 +9522 2765 6 0 0.465549 -19.018322 6.222139 +9523 2765 4 0 0.971697 -19.764727 5.842403 +9524 2765 4 0 1.099427 -18.538006 6.759456 +9525 2766 6 0 26.241049 -6.898960 18.643166 +9526 2766 4 0 25.947101 -5.963940 18.676752 +9527 2766 4 0 25.610721 -7.314304 19.228579 +9528 2767 6 0 16.134037 -10.035813 7.553052 +9529 2767 4 0 16.959970 -10.575559 7.222214 +9530 2767 4 0 16.256703 -9.244050 7.026849 +9531 2768 6 0 22.936475 16.842438 -13.354400 +9532 2768 4 0 23.113117 16.122413 -13.952998 +9533 2768 4 0 22.167217 17.380611 -13.705166 +9534 2769 6 0 -6.174635 -12.567358 -9.759225 +9535 2769 4 0 -7.056186 -12.732423 -10.081695 +9536 2769 4 0 -6.114005 -12.989145 -8.857709 +9537 2770 6 0 13.127494 -17.049020 5.559108 +9538 2770 4 0 12.909499 -17.802411 4.984143 +9539 2770 4 0 12.442780 -16.360937 5.316305 +9540 2771 6 0 10.969996 20.716828 15.837969 +9541 2771 4 0 10.927306 20.477406 14.883647 +9542 2771 4 0 11.840696 20.306837 16.078361 +9543 2772 6 0 13.866770 18.367517 6.937702 +9544 2772 4 0 13.986130 19.326827 7.078015 +9545 2772 4 0 14.231164 17.993652 7.716184 +9546 2773 6 0 13.832788 12.943646 -11.273375 +9547 2773 4 0 14.056108 12.521321 -12.121074 +9548 2773 4 0 13.085693 12.513389 -10.836623 +9549 2774 6 0 17.127641 6.332315 -10.642348 +9550 2774 4 0 16.719396 7.195424 -10.818370 +9551 2774 4 0 16.487151 5.750510 -10.856669 +9552 2775 6 0 7.636882 -18.482195 20.548956 +9553 2775 4 0 7.346233 -18.787052 19.666640 +9554 2775 4 0 8.040956 -17.608352 20.385186 +9555 2776 6 0 15.587474 -5.247845 -16.278347 +9556 2776 4 0 16.572338 -5.288530 -16.165720 +9557 2776 4 0 15.545571 -4.364820 -16.698452 +9558 2777 6 0 0.738994 10.421255 -19.729083 +9559 2777 4 0 0.031346 10.313580 -20.434784 +9560 2777 4 0 0.614162 9.625359 -19.156085 +9561 2778 6 0 -21.514700 17.398643 -8.313387 +9562 2778 4 0 -21.261038 18.368357 -8.523940 +9563 2778 4 0 -20.879597 16.869528 -8.849738 +9564 2779 6 0 21.659354 19.006928 20.763229 +9565 2779 4 0 22.346807 19.674088 20.960616 +9566 2779 4 0 22.147607 18.139994 20.600269 +9567 2780 6 0 -13.226723 20.003033 16.874806 +9568 2780 4 0 -12.786621 19.156341 16.987387 +9569 2780 4 0 -13.521849 20.036703 15.939938 +9570 2781 6 0 12.035825 14.976596 17.699907 +9571 2781 4 0 11.299148 14.549820 17.199522 +9572 2781 4 0 12.476396 14.244702 18.105024 +9573 2782 6 0 23.014725 11.421066 -1.195826 +9574 2782 4 0 22.935852 12.296840 -0.719881 +9575 2782 4 0 23.315744 11.556530 -2.052974 +9576 2783 6 0 21.005599 -13.607746 -17.329690 +9577 2783 4 0 20.264961 -13.783556 -16.739494 +9578 2783 4 0 21.692829 -14.155085 -17.164895 +9579 2784 6 0 19.390018 13.715877 -9.986126 +9580 2784 4 0 18.766137 13.984667 -10.642161 +9581 2784 4 0 18.882708 13.584906 -9.182021 +9582 2785 6 0 21.591458 2.844658 -17.196608 +9583 2785 4 0 21.687177 3.186923 -18.110216 +9584 2785 4 0 22.488513 2.580610 -17.004967 +9585 2786 6 0 11.345787 -11.914521 18.833564 +9586 2786 4 0 10.571637 -11.320431 18.801840 +9587 2786 4 0 11.974322 -11.433977 19.432443 +9588 2787 6 0 14.649482 -19.545223 8.356804 +9589 2787 4 0 14.003078 -18.851322 8.539351 +9590 2787 4 0 15.599308 -19.149367 8.338570 +9591 2788 6 0 -11.043193 -18.255867 17.281239 +9592 2788 4 0 -10.224926 -18.639865 16.994545 +9593 2788 4 0 -11.487164 -19.009987 17.634582 +9594 2789 6 0 -26.985345 -16.412246 -14.400881 +9595 2789 4 0 -27.454047 -15.606813 -14.379952 +9596 2789 4 0 -26.081841 -16.159237 -14.585861 +9597 2790 6 0 19.102051 -15.098666 -8.764412 +9598 2790 4 0 19.000932 -15.521094 -9.678404 +9599 2790 4 0 19.453733 -14.174347 -8.910357 +9600 2791 6 0 6.376012 19.349948 5.671135 +9601 2791 4 0 6.687862 20.029372 5.077314 +9602 2791 4 0 5.561947 19.709229 6.038539 +9603 2792 6 0 -17.499998 -13.507016 9.684050 +9604 2792 4 0 -17.138230 -13.962493 10.435127 +9605 2792 4 0 -17.640659 -14.284861 9.096248 +9606 2793 6 0 17.699807 -14.814698 11.789809 +9607 2793 4 0 17.014114 -15.422000 11.369433 +9608 2793 4 0 17.429825 -14.840034 12.737607 +9609 2794 6 0 12.888820 1.939624 -17.757092 +9610 2794 4 0 12.023501 2.459281 -17.778689 +9611 2794 4 0 12.922205 1.789197 -16.837552 +9612 2795 6 0 -27.142428 -4.791675 -8.608453 +9613 2795 4 0 -27.117499 -4.179414 -9.373351 +9614 2795 4 0 -26.563163 -5.561210 -8.869517 +9615 2796 6 0 18.673615 12.370651 6.319082 +9616 2796 4 0 18.699459 11.385010 6.253835 +9617 2796 4 0 18.583561 12.688817 5.434396 +9618 2797 6 0 10.178364 -12.605036 -17.136500 +9619 2797 4 0 10.699128 -12.924478 -16.370473 +9620 2797 4 0 9.489391 -13.311993 -17.195335 +9621 2798 6 0 7.257958 3.289333 16.273726 +9622 2798 4 0 7.801701 4.023865 16.654114 +9623 2798 4 0 6.831954 2.726700 16.945762 +9624 2799 6 0 -22.793525 -4.351149 1.112435 +9625 2799 4 0 -23.178683 -4.998212 1.686297 +9626 2799 4 0 -22.676437 -3.490820 1.495852 +9627 2800 6 0 10.431915 10.150385 6.416596 +9628 2800 4 0 9.504032 10.369808 6.525826 +9629 2800 4 0 10.818627 10.534325 7.222492 +9630 2801 6 0 16.181318 -18.659361 -4.530126 +9631 2801 4 0 16.539581 -18.491898 -3.640666 +9632 2801 4 0 16.723714 -18.083763 -5.128977 +9633 2802 6 0 24.085884 14.331318 -5.367949 +9634 2802 4 0 25.027794 14.190212 -5.345575 +9635 2802 4 0 23.725489 13.957121 -4.548465 +9636 2803 6 0 27.476267 18.553177 -13.120949 +9637 2803 4 0 27.278972 18.193548 -12.233661 +9638 2803 4 0 26.663894 18.473337 -13.667172 +9639 2804 6 0 -3.429941 10.490939 1.565767 +9640 2804 4 0 -4.189571 9.996973 1.988486 +9641 2804 4 0 -2.756994 10.462029 2.200444 +9642 2805 6 0 -23.874077 -2.287625 -14.406474 +9643 2805 4 0 -24.326434 -2.528790 -13.612508 +9644 2805 4 0 -23.725821 -1.349091 -14.150316 +9645 2806 6 0 6.913124 -5.939231 14.325196 +9646 2806 4 0 7.603991 -5.675852 13.760866 +9647 2806 4 0 7.141094 -6.840164 14.586103 +9648 2807 6 0 -9.435672 7.567999 -12.736311 +9649 2807 4 0 -10.092450 7.532344 -13.480723 +9650 2807 4 0 -9.904849 7.166688 -11.970693 +9651 2808 6 0 -23.627772 20.561997 -10.291642 +9652 2808 4 0 -23.140188 21.403417 -10.120507 +9653 2808 4 0 -23.127330 19.939171 -10.860601 +9654 2809 6 0 -11.957151 -10.758767 10.380421 +9655 2809 4 0 -12.914975 -11.025570 10.474104 +9656 2809 4 0 -11.726864 -10.328942 11.254768 +9657 2810 6 0 -4.055025 -16.357375 12.638110 +9658 2810 4 0 -4.145602 -15.539307 12.188903 +9659 2810 4 0 -3.229424 -16.754351 12.492730 +9660 2811 6 0 -25.660951 2.977355 3.644209 +9661 2811 4 0 -25.405729 3.847728 3.825406 +9662 2811 4 0 -26.592530 3.015138 3.572516 +9663 2812 6 0 -1.059386 -9.814838 20.360215 +9664 2812 4 0 -0.131280 -9.654603 20.258879 +9665 2812 4 0 -1.404044 -10.175480 19.521783 +9666 2813 6 0 -13.274409 -12.355600 6.487680 +9667 2813 4 0 -14.175655 -12.374044 6.195808 +9668 2813 4 0 -12.869043 -11.626070 5.932127 +9669 2814 6 0 -17.154642 -17.337539 -2.602671 +9670 2814 4 0 -17.684268 -17.711860 -3.323318 +9671 2814 4 0 -17.542126 -17.638492 -1.768263 +9672 2815 6 0 -8.431986 -14.331490 -18.620988 +9673 2815 4 0 -8.525378 -14.518157 -17.652352 +9674 2815 4 0 -9.070115 -15.091242 -18.962501 +9675 2816 6 0 9.227734 -14.707755 8.334683 +9676 2816 4 0 8.912750 -14.297078 9.180099 +9677 2816 4 0 10.141362 -14.864367 8.460368 +9678 2817 6 0 -18.940927 -7.749229 13.986681 +9679 2817 4 0 -18.998677 -8.736236 14.046068 +9680 2817 4 0 -18.235160 -7.570709 13.352401 +9681 2818 6 0 -3.315848 14.486693 12.321029 +9682 2818 4 0 -2.891118 14.428375 11.433488 +9683 2818 4 0 -3.009257 15.355409 12.649294 +9684 2819 6 0 15.258302 19.640916 -9.495586 +9685 2819 4 0 15.255790 19.268774 -10.417780 +9686 2819 4 0 14.362167 19.825595 -9.329840 +9687 2820 6 0 -27.308827 -17.253050 -3.549375 +9688 2820 4 0 -27.016406 -16.762829 -2.812626 +9689 2820 4 0 -26.618283 -17.291456 -4.216078 +9690 2821 6 0 -17.469474 9.268976 13.624133 +9691 2821 4 0 -17.003981 8.734120 14.281842 +9692 2821 4 0 -17.567961 10.133200 14.047196 +9693 2822 6 0 20.896249 -8.668059 -15.648620 +9694 2822 4 0 21.320419 -8.468808 -14.797523 +9695 2822 4 0 20.936901 -9.602395 -15.783740 +9696 2823 6 0 6.591038 13.945476 -6.677072 +9697 2823 4 0 6.387452 12.989743 -6.664344 +9698 2823 4 0 7.535066 14.092588 -6.670539 +9699 2824 6 0 10.072634 7.484666 6.879205 +9700 2824 4 0 9.218040 7.159172 6.564500 +9701 2824 4 0 10.122197 8.421774 6.591601 +9702 2825 6 0 -23.792275 5.951536 11.433857 +9703 2825 4 0 -23.560372 6.167334 12.401775 +9704 2825 4 0 -23.076924 6.327786 10.856454 +9705 2826 6 0 12.132840 3.851033 -6.616749 +9706 2826 4 0 12.785083 4.216573 -7.191058 +9707 2826 4 0 12.512257 3.897859 -5.719717 +9708 2827 6 0 5.351683 6.078049 -14.255102 +9709 2827 4 0 5.013358 6.855687 -13.813494 +9710 2827 4 0 5.137704 6.252225 -15.124513 +9711 2828 6 0 13.138157 -8.336001 1.684188 +9712 2828 4 0 12.595335 -8.813255 1.081700 +9713 2828 4 0 13.382247 -7.459796 1.264391 +9714 2829 6 0 -10.347292 10.399621 -12.874082 +9715 2829 4 0 -10.494653 9.452942 -12.814808 +9716 2829 4 0 -10.828227 10.775518 -13.651328 +9717 2830 6 0 9.152946 -17.315622 6.377534 +9718 2830 4 0 8.873272 -17.655423 5.536131 +9719 2830 4 0 9.644625 -16.466151 6.247065 +9720 2831 6 0 -2.422355 -14.638070 -20.255326 +9721 2831 4 0 -2.466677 -15.603006 -20.125891 +9722 2831 4 0 -2.234204 -14.630853 -21.192244 +9723 2832 6 0 7.306601 16.960372 -8.356338 +9724 2832 4 0 7.335426 17.713766 -8.966973 +9725 2832 4 0 6.389385 16.681622 -8.314986 +9726 2833 6 0 -11.068015 -16.691381 7.975224 +9727 2833 4 0 -11.725330 -17.098102 8.584468 +9728 2833 4 0 -11.554703 -15.995305 7.530686 +9729 2834 6 0 2.086903 -14.793471 13.604939 +9730 2834 4 0 2.196059 -15.680487 13.948768 +9731 2834 4 0 2.568411 -14.755595 12.759739 +9732 2835 6 0 -17.658207 18.277094 2.186303 +9733 2835 4 0 -17.424686 17.674490 1.472227 +9734 2835 4 0 -18.244002 18.909136 1.776504 +9735 2836 6 0 24.999903 10.057013 0.434977 +9736 2836 4 0 24.330807 10.404778 -0.199378 +9737 2836 4 0 24.595385 9.375992 1.021837 + +Bonds + +1 1 1 2 +2 2 1 5 +3 2 1 6 +4 2 1 7 +5 3 2 3 +6 4 2 8 +7 5 2 9 +8 6 3 4 +9 7 3 20 +10 8 9 10 +11 9 9 13 +12 9 9 14 +13 10 10 11 +14 9 10 15 +15 9 10 16 +16 10 11 12 +17 9 12 17 +18 9 12 18 +19 9 12 19 +20 11 20 21 +21 12 20 24 +22 3 21 22 +23 4 21 25 +24 5 21 26 +25 6 22 23 +26 7 22 37 +27 8 26 27 +28 9 26 31 +29 9 26 32 +30 13 27 28 +31 9 27 33 +32 9 27 34 +33 6 28 29 +34 7 28 30 +35 12 30 35 +36 12 30 36 +37 11 37 38 +38 12 37 41 +39 3 38 39 +40 4 38 42 +41 14 38 43 +42 6 39 40 +43 7 39 56 +44 5 43 44 +45 5 43 45 +46 4 43 47 +47 8 44 46 +48 9 44 48 +49 9 44 49 +50 9 45 50 +51 9 45 51 +52 9 45 52 +53 9 46 53 +54 9 46 54 +55 9 46 55 +56 11 56 57 +57 12 56 60 +58 3 57 58 +59 4 57 61 +60 5 57 62 +61 6 58 59 +62 7 58 76 +63 15 62 63 +64 9 62 69 +65 9 62 70 +66 16 63 64 +67 16 63 65 +68 16 64 66 +69 17 64 71 +70 16 65 67 +71 17 65 72 +72 16 66 68 +73 17 66 73 +74 16 67 68 +75 17 67 74 +76 17 68 75 +77 11 76 77 +78 12 76 80 +79 3 77 78 +80 4 77 81 +81 14 77 82 +82 6 78 79 +83 7 78 92 +84 5 82 83 +85 5 82 84 +86 4 82 85 +87 9 83 86 +88 9 83 87 +89 9 83 88 +90 9 84 89 +91 9 84 90 +92 9 84 91 +93 11 92 93 +94 12 92 96 +95 3 93 94 +96 4 93 97 +97 5 93 98 +98 6 94 95 +99 7 94 114 +100 8 98 99 +101 9 98 103 +102 9 98 104 +103 8 99 100 +104 9 99 105 +105 9 99 106 +106 8 100 101 +107 9 100 107 +108 9 100 108 +109 18 101 102 +110 9 101 109 +111 9 101 110 +112 19 102 111 +113 19 102 112 +114 19 102 113 +115 11 114 115 +116 12 114 118 +117 3 115 116 +118 4 115 119 +119 14 115 120 +120 6 116 117 +121 7 116 128 +122 20 120 121 +123 5 120 122 +124 4 120 123 +125 21 121 124 +126 9 122 125 +127 9 122 126 +128 9 122 127 +129 11 128 129 +130 12 128 132 +131 3 129 130 +132 4 129 133 +133 5 129 134 +134 6 130 131 +135 7 130 147 +136 5 134 135 +137 9 134 138 +138 9 134 139 +139 5 135 136 +140 5 135 137 +141 4 135 140 +142 9 136 141 +143 9 136 142 +144 9 136 143 +145 9 137 144 +146 9 137 145 +147 9 137 146 +148 11 147 148 +149 12 147 151 +150 3 148 149 +151 4 148 152 +152 14 148 153 +153 6 149 150 +154 7 149 161 +155 20 153 154 +156 5 153 155 +157 4 153 156 +158 21 154 157 +159 9 155 158 +160 9 155 159 +161 9 155 160 +162 22 161 162 +163 12 161 165 +164 23 162 163 +165 24 162 166 +166 24 162 167 +167 6 163 164 +168 7 163 168 +169 11 168 169 +170 12 168 172 +171 3 169 170 +172 4 169 173 +173 5 169 174 +174 6 170 171 +175 7 170 190 +176 8 174 175 +177 9 174 179 +178 9 174 180 +179 8 175 176 +180 9 175 181 +181 9 175 182 +182 8 176 177 +183 9 176 183 +184 9 176 184 +185 18 177 178 +186 9 177 185 +187 9 177 186 +188 19 178 187 +189 19 178 188 +190 19 178 189 +191 11 190 191 +192 12 190 194 +193 3 191 192 +194 4 191 195 +195 14 191 196 +196 6 192 193 +197 7 192 204 +198 20 196 197 +199 5 196 198 +200 4 196 199 +201 21 197 200 +202 9 198 201 +203 9 198 202 +204 9 198 203 +205 11 204 205 +206 12 204 208 +207 3 205 206 +208 4 205 209 +209 14 205 210 +210 6 206 207 +211 7 206 223 +212 5 210 211 +213 5 210 212 +214 4 210 214 +215 8 211 213 +216 9 211 215 +217 9 211 216 +218 9 212 217 +219 9 212 218 +220 9 212 219 +221 9 213 220 +222 9 213 221 +223 9 213 222 +224 11 223 224 +225 12 223 227 +226 3 224 225 +227 4 224 228 +228 14 224 229 +229 6 225 226 +230 7 225 237 +231 20 229 230 +232 5 229 231 +233 4 229 232 +234 21 230 233 +235 9 231 234 +236 9 231 235 +237 9 231 236 +238 11 237 238 +239 12 237 241 +240 3 238 239 +241 4 238 242 +242 5 238 243 +243 6 239 240 +244 7 239 256 +245 5 243 244 +246 9 243 247 +247 9 243 248 +248 5 244 245 +249 5 244 246 +250 4 244 249 +251 9 245 250 +252 9 245 251 +253 9 245 252 +254 9 246 253 +255 9 246 254 +256 9 246 255 +257 11 256 257 +258 12 256 260 +259 3 257 258 +260 4 257 261 +261 5 257 262 +262 6 258 259 +263 7 258 271 +264 8 262 263 +265 9 262 267 +266 9 262 268 +267 25 263 264 +268 9 263 269 +269 9 263 270 +270 26 264 265 +271 26 264 266 +272 11 271 272 +273 12 271 275 +274 3 272 273 +275 4 272 276 +276 14 272 277 +277 6 273 274 +278 7 273 287 +279 5 277 278 +280 5 277 279 +281 4 277 280 +282 9 278 281 +283 9 278 282 +284 9 278 283 +285 9 279 284 +286 9 279 285 +287 9 279 286 +288 11 287 288 +289 12 287 291 +290 3 288 289 +291 4 288 292 +292 5 288 293 +293 6 289 290 +294 27 289 302 +295 8 293 294 +296 9 293 298 +297 9 293 299 +298 25 294 295 +299 9 294 300 +300 9 294 301 +301 26 295 296 +302 26 295 297 +303 28 302 303 +304 29 302 309 +305 3 303 304 +306 4 303 306 +307 30 303 307 +308 6 304 305 +309 7 304 316 +310 31 307 308 +311 32 307 310 +312 32 307 311 +313 31 308 309 +314 32 308 312 +315 32 308 313 +316 33 309 314 +317 33 309 315 +318 11 316 317 +319 12 316 320 +320 3 317 318 +321 4 317 321 +322 5 317 322 +323 6 318 319 +324 7 318 327 +325 34 322 323 +326 9 322 324 +327 9 322 325 +328 21 323 326 +329 11 327 328 +330 12 327 331 +331 3 328 329 +332 4 328 332 +333 5 328 333 +334 6 329 330 +335 7 329 339 +336 25 333 334 +337 9 333 337 +338 9 333 338 +339 26 334 335 +340 26 334 336 +341 11 339 340 +342 12 339 343 +343 3 340 341 +344 4 340 344 +345 14 340 345 +346 6 341 342 +347 7 341 353 +348 20 345 346 +349 5 345 347 +350 4 345 348 +351 21 346 349 +352 9 347 350 +353 9 347 351 +354 9 347 352 +355 11 353 354 +356 12 353 357 +357 3 354 355 +358 4 354 358 +359 14 354 359 +360 6 355 356 +361 7 355 372 +362 5 359 360 +363 5 359 361 +364 4 359 363 +365 8 360 362 +366 9 360 364 +367 9 360 365 +368 9 361 366 +369 9 361 367 +370 9 361 368 +371 9 362 369 +372 9 362 370 +373 9 362 371 +374 11 372 373 +375 12 372 376 +376 3 373 374 +377 4 373 377 +378 5 373 378 +379 6 374 375 +380 7 374 387 +381 8 378 379 +382 9 378 383 +383 9 378 384 +384 25 379 380 +385 9 379 385 +386 9 379 386 +387 26 380 381 +388 26 380 382 +389 11 387 388 +390 12 387 391 +391 3 388 389 +392 4 388 392 +393 5 388 393 +394 6 389 390 +395 7 389 401 +396 13 393 394 +397 9 393 397 +398 9 393 398 +399 6 394 395 +400 7 394 396 +401 12 396 399 +402 12 396 400 +403 11 401 402 +404 12 401 405 +405 3 402 403 +406 4 402 406 +407 14 402 407 +408 6 403 404 +409 7 403 417 +410 5 407 408 +411 5 407 409 +412 4 407 410 +413 9 408 411 +414 9 408 412 +415 9 408 413 +416 9 409 414 +417 9 409 415 +418 9 409 416 +419 11 417 418 +420 12 417 421 +421 3 418 419 +422 4 418 422 +423 5 418 423 +424 6 419 420 +425 7 419 439 +426 8 423 424 +427 9 423 428 +428 9 423 429 +429 8 424 425 +430 9 424 430 +431 9 424 431 +432 8 425 426 +433 9 425 432 +434 9 425 433 +435 18 426 427 +436 9 426 434 +437 9 426 435 +438 19 427 436 +439 19 427 437 +440 19 427 438 +441 11 439 440 +442 12 439 443 +443 3 440 441 +444 4 440 444 +445 5 440 445 +446 6 441 442 +447 7 441 449 +448 9 445 446 +449 9 445 447 +450 9 445 448 +451 11 449 450 +452 12 449 453 +453 3 450 451 +454 4 450 454 +455 5 450 455 +456 6 451 452 +457 7 451 471 +458 8 455 456 +459 9 455 460 +460 9 455 461 +461 8 456 457 +462 9 456 462 +463 9 456 463 +464 8 457 458 +465 9 457 464 +466 9 457 465 +467 18 458 459 +468 9 458 466 +469 9 458 467 +470 19 459 468 +471 19 459 469 +472 19 459 470 +473 11 471 472 +474 12 471 475 +475 3 472 473 +476 4 472 476 +477 14 472 477 +478 6 473 474 +479 7 473 490 +480 5 477 478 +481 5 477 479 +482 4 477 481 +483 8 478 480 +484 9 478 482 +485 9 478 483 +486 9 479 484 +487 9 479 485 +488 9 479 486 +489 9 480 487 +490 9 480 488 +491 9 480 489 +492 11 490 491 +493 12 490 494 +494 3 491 492 +495 4 491 495 +496 5 491 496 +497 6 492 493 +498 7 492 507 +499 8 496 497 +500 9 496 501 +501 9 496 502 +502 13 497 498 +503 9 497 503 +504 9 497 504 +505 6 498 499 +506 7 498 500 +507 12 500 505 +508 12 500 506 +509 11 507 508 +510 12 507 511 +511 3 508 509 +512 4 508 512 +513 5 508 513 +514 6 509 510 +515 7 509 519 +516 25 513 514 +517 9 513 517 +518 9 513 518 +519 26 514 515 +520 26 514 516 +521 11 519 520 +522 12 519 523 +523 3 520 521 +524 4 520 524 +525 5 520 525 +526 6 521 522 +527 7 521 541 +528 8 525 526 +529 9 525 530 +530 9 525 531 +531 8 526 527 +532 9 526 532 +533 9 526 533 +534 8 527 528 +535 9 527 534 +536 9 527 535 +537 18 528 529 +538 9 528 536 +539 9 528 537 +540 19 529 538 +541 19 529 539 +542 19 529 540 +543 11 541 542 +544 12 541 545 +545 3 542 543 +546 4 542 546 +547 5 542 547 +548 6 543 544 +549 7 543 556 +550 8 547 548 +551 9 547 552 +552 9 547 553 +553 25 548 549 +554 9 548 554 +555 9 548 555 +556 26 549 550 +557 26 549 551 +558 22 556 557 +559 12 556 560 +560 23 557 558 +561 24 557 561 +562 24 557 562 +563 6 558 559 +564 7 558 563 +565 11 563 564 +566 12 563 567 +567 3 564 565 +568 4 564 568 +569 14 564 569 +570 6 565 566 +571 27 565 582 +572 5 569 570 +573 5 569 571 +574 4 569 573 +575 8 570 572 +576 9 570 574 +577 9 570 575 +578 9 571 576 +579 9 571 577 +580 9 571 578 +581 9 572 579 +582 9 572 580 +583 9 572 581 +584 28 582 583 +585 29 582 589 +586 3 583 584 +587 4 583 586 +588 30 583 587 +589 6 584 585 +590 27 584 596 +591 31 587 588 +592 32 587 590 +593 32 587 591 +594 31 588 589 +595 32 588 592 +596 32 588 593 +597 33 589 594 +598 33 589 595 +599 28 596 597 +600 29 596 603 +601 3 597 598 +602 4 597 600 +603 30 597 601 +604 6 598 599 +605 7 598 610 +606 31 601 602 +607 32 601 604 +608 32 601 605 +609 31 602 603 +610 32 602 606 +611 32 602 607 +612 33 603 608 +613 33 603 609 +614 11 610 611 +615 12 610 614 +616 3 611 612 +617 4 611 615 +618 5 611 616 +619 6 612 613 +620 7 612 622 +621 25 616 617 +622 9 616 620 +623 9 616 621 +624 26 617 618 +625 26 617 619 +626 11 622 623 +627 12 622 626 +628 3 623 624 +629 4 623 627 +630 5 623 628 +631 6 624 625 +632 7 624 639 +633 8 628 629 +634 9 628 633 +635 9 628 634 +636 13 629 630 +637 9 629 635 +638 9 629 636 +639 6 630 631 +640 7 630 632 +641 12 632 637 +642 12 632 638 +643 11 639 640 +644 12 639 643 +645 3 640 641 +646 4 640 644 +647 5 640 645 +648 6 641 642 +649 7 641 656 +650 8 645 646 +651 9 645 650 +652 9 645 651 +653 13 646 647 +654 9 646 652 +655 9 646 653 +656 6 647 648 +657 7 647 649 +658 12 649 654 +659 12 649 655 +660 11 656 657 +661 12 656 660 +662 3 657 658 +663 4 657 661 +664 5 657 662 +665 6 658 659 +666 7 658 680 +667 8 662 663 +668 9 662 669 +669 9 662 670 +670 8 663 664 +671 9 663 671 +672 9 663 672 +673 35 664 665 +674 9 664 673 +675 9 664 674 +676 36 665 666 +677 37 665 675 +678 36 666 667 +679 36 666 668 +680 37 667 676 +681 37 667 677 +682 37 668 678 +683 37 668 679 +684 11 680 681 +685 12 680 684 +686 3 681 682 +687 4 681 685 +688 5 681 686 +689 6 682 683 +690 7 682 699 +691 5 686 687 +692 9 686 690 +693 9 686 691 +694 5 687 688 +695 5 687 689 +696 4 687 692 +697 9 688 693 +698 9 688 694 +699 9 688 695 +700 9 689 696 +701 9 689 697 +702 9 689 698 +703 11 699 700 +704 12 699 703 +705 3 700 701 +706 4 700 704 +707 14 700 705 +708 6 701 702 +709 7 701 718 +710 5 705 706 +711 5 705 707 +712 4 705 709 +713 8 706 708 +714 9 706 710 +715 9 706 711 +716 9 707 712 +717 9 707 713 +718 9 707 714 +719 9 708 715 +720 9 708 716 +721 9 708 717 +722 11 718 719 +723 12 718 722 +724 3 719 720 +725 4 719 723 +726 5 719 724 +727 6 720 721 +728 7 720 738 +729 15 724 725 +730 9 724 731 +731 9 724 732 +732 16 725 726 +733 16 725 727 +734 16 726 728 +735 17 726 733 +736 16 727 729 +737 17 727 734 +738 16 728 730 +739 17 728 735 +740 16 729 730 +741 17 729 736 +742 17 730 737 +743 11 738 739 +744 12 738 742 +745 3 739 740 +746 4 739 743 +747 5 739 744 +748 6 740 741 +749 7 740 748 +750 9 744 745 +751 9 744 746 +752 9 744 747 +753 22 748 749 +754 12 748 752 +755 23 749 750 +756 24 749 753 +757 24 749 754 +758 6 750 751 +759 7 750 755 +760 11 755 756 +761 12 755 759 +762 3 756 757 +763 4 756 760 +764 5 756 761 +765 6 757 758 +766 7 757 777 +767 8 761 762 +768 9 761 766 +769 9 761 767 +770 8 762 763 +771 9 762 768 +772 9 762 769 +773 8 763 764 +774 9 763 770 +775 9 763 771 +776 18 764 765 +777 9 764 772 +778 9 764 773 +779 19 765 774 +780 19 765 775 +781 19 765 776 +782 11 777 778 +783 12 777 781 +784 3 778 779 +785 4 778 782 +786 5 778 783 +787 6 779 780 +788 7 779 794 +789 8 783 784 +790 9 783 788 +791 9 783 789 +792 13 784 785 +793 9 784 790 +794 9 784 791 +795 6 785 786 +796 7 785 787 +797 12 787 792 +798 12 787 793 +799 11 794 795 +800 12 794 798 +801 3 795 796 +802 4 795 799 +803 5 795 800 +804 6 796 797 +805 7 796 813 +806 5 800 801 +807 9 800 804 +808 9 800 805 +809 5 801 802 +810 5 801 803 +811 4 801 806 +812 9 802 807 +813 9 802 808 +814 9 802 809 +815 9 803 810 +816 9 803 811 +817 9 803 812 +818 11 813 814 +819 12 813 817 +820 3 814 815 +821 4 814 818 +822 5 814 819 +823 6 815 816 +824 7 815 828 +825 8 819 820 +826 9 819 824 +827 9 819 825 +828 25 820 821 +829 9 820 826 +830 9 820 827 +831 26 821 822 +832 26 821 823 +833 11 828 829 +834 12 828 832 +835 3 829 830 +836 4 829 833 +837 5 829 834 +838 6 830 831 +839 7 830 840 +840 25 834 835 +841 9 834 838 +842 9 834 839 +843 26 835 836 +844 26 835 837 +845 22 840 841 +846 12 840 844 +847 23 841 842 +848 24 841 845 +849 24 841 846 +850 6 842 843 +851 7 842 847 +852 11 847 848 +853 12 847 851 +854 3 848 849 +855 4 848 852 +856 5 848 853 +857 6 849 850 +858 7 849 871 +859 8 853 854 +860 9 853 860 +861 9 853 861 +862 8 854 855 +863 9 854 862 +864 9 854 863 +865 35 855 856 +866 9 855 864 +867 9 855 865 +868 36 856 857 +869 37 856 866 +870 36 857 858 +871 36 857 859 +872 37 858 867 +873 37 858 868 +874 37 859 869 +875 37 859 870 +876 11 871 872 +877 12 871 875 +878 3 872 873 +879 4 872 876 +880 14 872 877 +881 6 873 874 +882 7 873 885 +883 20 877 878 +884 5 877 879 +885 4 877 880 +886 21 878 881 +887 9 879 882 +888 9 879 883 +889 9 879 884 +890 11 885 886 +891 12 885 889 +892 3 886 887 +893 4 886 890 +894 5 886 891 +895 6 887 888 +896 7 887 904 +897 5 891 892 +898 9 891 895 +899 9 891 896 +900 5 892 893 +901 5 892 894 +902 4 892 897 +903 9 893 898 +904 9 893 899 +905 9 893 900 +906 9 894 901 +907 9 894 902 +908 9 894 903 +909 11 904 905 +910 12 904 908 +911 3 905 906 +912 4 905 909 +913 5 905 910 +914 6 906 907 +915 7 906 915 +916 34 910 911 +917 9 910 912 +918 9 910 913 +919 21 911 914 +920 11 915 916 +921 12 915 919 +922 3 916 917 +923 4 916 920 +924 5 916 921 +925 6 917 918 +926 7 917 927 +927 25 921 922 +928 9 921 925 +929 9 921 926 +930 26 922 923 +931 26 922 924 +932 11 927 928 +933 12 927 931 +934 3 928 929 +935 4 928 932 +936 5 928 933 +937 6 929 930 +938 7 929 948 +939 15 933 934 +940 9 933 941 +941 9 933 942 +942 16 934 935 +943 16 934 936 +944 16 935 937 +945 17 935 943 +946 16 936 938 +947 17 936 944 +948 16 937 939 +949 17 937 945 +950 16 938 939 +951 17 938 946 +952 38 939 940 +953 39 940 947 +954 11 948 949 +955 12 948 952 +956 3 949 950 +957 4 949 953 +958 5 949 954 +959 6 950 951 +960 7 950 962 +961 13 954 955 +962 9 954 958 +963 9 954 959 +964 6 955 956 +965 7 955 957 +966 12 957 960 +967 12 957 961 +968 11 962 963 +969 12 962 966 +970 3 963 964 +971 4 963 967 +972 14 963 968 +973 6 964 965 +974 7 964 981 +975 5 968 969 +976 5 968 970 +977 4 968 972 +978 8 969 971 +979 9 969 973 +980 9 969 974 +981 9 970 975 +982 9 970 976 +983 9 970 977 +984 9 971 978 +985 9 971 979 +986 9 971 980 +987 11 981 982 +988 12 981 985 +989 3 982 983 +990 4 982 986 +991 5 982 987 +992 6 983 984 +993 7 983 998 +994 8 987 988 +995 9 987 992 +996 9 987 993 +997 13 988 989 +998 9 988 994 +999 9 988 995 +1000 6 989 990 +1001 7 989 991 +1002 12 991 996 +1003 12 991 997 +1004 11 998 999 +1005 12 998 1002 +1006 3 999 1000 +1007 4 999 1003 +1008 5 999 1004 +1009 6 1000 1001 +1010 7 1000 1020 +1011 8 1004 1005 +1012 9 1004 1009 +1013 9 1004 1010 +1014 8 1005 1006 +1015 9 1005 1011 +1016 9 1005 1012 +1017 8 1006 1007 +1018 9 1006 1013 +1019 9 1006 1014 +1020 18 1007 1008 +1021 9 1007 1015 +1022 9 1007 1016 +1023 19 1008 1017 +1024 19 1008 1018 +1025 19 1008 1019 +1026 11 1020 1021 +1027 12 1020 1024 +1028 3 1021 1022 +1029 4 1021 1025 +1030 5 1021 1026 +1031 6 1022 1023 +1032 7 1022 1035 +1033 8 1026 1027 +1034 9 1026 1031 +1035 9 1026 1032 +1036 25 1027 1028 +1037 9 1027 1033 +1038 9 1027 1034 +1039 26 1028 1029 +1040 26 1028 1030 +1041 11 1035 1036 +1042 12 1035 1039 +1043 3 1036 1037 +1044 4 1036 1040 +1045 5 1036 1041 +1046 6 1037 1038 +1047 7 1037 1046 +1048 34 1041 1042 +1049 9 1041 1043 +1050 9 1041 1044 +1051 21 1042 1045 +1052 11 1046 1047 +1053 12 1046 1050 +1054 3 1047 1048 +1055 4 1047 1051 +1056 14 1047 1052 +1057 6 1048 1049 +1058 7 1048 1060 +1059 20 1052 1053 +1060 5 1052 1054 +1061 4 1052 1055 +1062 21 1053 1056 +1063 9 1054 1057 +1064 9 1054 1058 +1065 9 1054 1059 +1066 11 1060 1061 +1067 12 1060 1064 +1068 3 1061 1062 +1069 4 1061 1065 +1070 5 1061 1066 +1071 6 1062 1063 +1072 7 1062 1079 +1073 5 1066 1067 +1074 9 1066 1070 +1075 9 1066 1071 +1076 5 1067 1068 +1077 5 1067 1069 +1078 4 1067 1072 +1079 9 1068 1073 +1080 9 1068 1074 +1081 9 1068 1075 +1082 9 1069 1076 +1083 9 1069 1077 +1084 9 1069 1078 +1085 11 1079 1080 +1086 12 1079 1083 +1087 3 1080 1081 +1088 4 1080 1084 +1089 5 1080 1085 +1090 6 1081 1082 +1091 7 1081 1097 +1092 40 1085 1086 +1093 9 1085 1091 +1094 9 1085 1092 +1095 41 1086 1087 +1096 42 1086 1088 +1097 43 1087 1089 +1098 44 1087 1093 +1099 41 1088 1090 +1100 45 1088 1094 +1101 43 1089 1090 +1102 46 1089 1095 +1103 44 1090 1096 +1104 11 1097 1098 +1105 12 1097 1101 +1106 3 1098 1099 +1107 4 1098 1102 +1108 5 1098 1103 +1109 6 1099 1100 +1110 7 1099 1116 +1111 5 1103 1104 +1112 9 1103 1107 +1113 9 1103 1108 +1114 5 1104 1105 +1115 5 1104 1106 +1116 4 1104 1109 +1117 9 1105 1110 +1118 9 1105 1111 +1119 9 1105 1112 +1120 9 1106 1113 +1121 9 1106 1114 +1122 9 1106 1115 +1123 11 1116 1117 +1124 12 1116 1120 +1125 3 1117 1118 +1126 4 1117 1121 +1127 14 1117 1122 +1128 6 1118 1119 +1129 7 1118 1132 +1130 5 1122 1123 +1131 5 1122 1124 +1132 4 1122 1125 +1133 9 1123 1126 +1134 9 1123 1127 +1135 9 1123 1128 +1136 9 1124 1129 +1137 9 1124 1130 +1138 9 1124 1131 +1139 11 1132 1133 +1140 12 1132 1136 +1141 3 1133 1134 +1142 4 1133 1137 +1143 5 1133 1138 +1144 6 1134 1135 +1145 7 1134 1151 +1146 5 1138 1139 +1147 9 1138 1142 +1148 9 1138 1143 +1149 5 1139 1140 +1150 5 1139 1141 +1151 4 1139 1144 +1152 9 1140 1145 +1153 9 1140 1146 +1154 9 1140 1147 +1155 9 1141 1148 +1156 9 1141 1149 +1157 9 1141 1150 +1158 11 1151 1152 +1159 12 1151 1155 +1160 3 1152 1153 +1161 4 1152 1156 +1162 5 1152 1157 +1163 6 1153 1154 +1164 7 1153 1175 +1165 8 1157 1158 +1166 9 1157 1164 +1167 9 1157 1165 +1168 8 1158 1159 +1169 9 1158 1166 +1170 9 1158 1167 +1171 35 1159 1160 +1172 9 1159 1168 +1173 9 1159 1169 +1174 36 1160 1161 +1175 37 1160 1170 +1176 36 1161 1162 +1177 36 1161 1163 +1178 37 1162 1171 +1179 37 1162 1172 +1180 37 1163 1173 +1181 37 1163 1174 +1182 11 1175 1176 +1183 12 1175 1179 +1184 3 1176 1177 +1185 4 1176 1180 +1186 5 1176 1181 +1187 6 1177 1178 +1188 7 1177 1194 +1189 5 1181 1182 +1190 9 1181 1185 +1191 9 1181 1186 +1192 5 1182 1183 +1193 5 1182 1184 +1194 4 1182 1187 +1195 9 1183 1188 +1196 9 1183 1189 +1197 9 1183 1190 +1198 9 1184 1191 +1199 9 1184 1192 +1200 9 1184 1193 +1201 11 1194 1195 +1202 12 1194 1198 +1203 3 1195 1196 +1204 4 1195 1199 +1205 5 1195 1200 +1206 6 1196 1197 +1207 7 1196 1218 +1208 8 1200 1201 +1209 9 1200 1207 +1210 9 1200 1208 +1211 8 1201 1202 +1212 9 1201 1209 +1213 9 1201 1210 +1214 35 1202 1203 +1215 9 1202 1211 +1216 9 1202 1212 +1217 36 1203 1204 +1218 37 1203 1213 +1219 36 1204 1205 +1220 36 1204 1206 +1221 37 1205 1214 +1222 37 1205 1215 +1223 37 1206 1216 +1224 37 1206 1217 +1225 22 1218 1219 +1226 12 1218 1222 +1227 23 1219 1220 +1228 24 1219 1223 +1229 24 1219 1224 +1230 6 1220 1221 +1231 7 1220 1225 +1232 22 1225 1226 +1233 12 1225 1229 +1234 47 1226 1227 +1235 24 1226 1230 +1236 24 1226 1231 +1237 26 1227 1228 +1238 26 1227 1232 +1239 48 1233 1234 +1240 48 1233 1235 +1241 48 1236 1237 +1242 48 1236 1238 +1243 48 1239 1240 +1244 48 1239 1241 +1245 48 1242 1243 +1246 48 1242 1244 +1247 48 1245 1246 +1248 48 1245 1247 +1249 48 1248 1249 +1250 48 1248 1250 +1251 48 1251 1252 +1252 48 1251 1253 +1253 48 1254 1255 +1254 48 1254 1256 +1255 48 1257 1258 +1256 48 1257 1259 +1257 48 1260 1261 +1258 48 1260 1262 +1259 48 1263 1264 +1260 48 1263 1265 +1261 48 1266 1267 +1262 48 1266 1268 +1263 48 1269 1270 +1264 48 1269 1271 +1265 48 1272 1273 +1266 48 1272 1274 +1267 48 1275 1276 +1268 48 1275 1277 +1269 48 1278 1279 +1270 48 1278 1280 +1271 48 1281 1282 +1272 48 1281 1283 +1273 48 1284 1285 +1274 48 1284 1286 +1275 48 1287 1288 +1276 48 1287 1289 +1277 48 1290 1291 +1278 48 1290 1292 +1279 48 1293 1294 +1280 48 1293 1295 +1281 48 1296 1297 +1282 48 1296 1298 +1283 48 1299 1300 +1284 48 1299 1301 +1285 48 1302 1303 +1286 48 1302 1304 +1287 48 1305 1306 +1288 48 1305 1307 +1289 48 1308 1309 +1290 48 1308 1310 +1291 48 1311 1312 +1292 48 1311 1313 +1293 48 1314 1315 +1294 48 1314 1316 +1295 48 1317 1318 +1296 48 1317 1319 +1297 48 1320 1321 +1298 48 1320 1322 +1299 48 1323 1324 +1300 48 1323 1325 +1301 48 1326 1327 +1302 48 1326 1328 +1303 48 1329 1330 +1304 48 1329 1331 +1305 48 1332 1333 +1306 48 1332 1334 +1307 48 1335 1336 +1308 48 1335 1337 +1309 48 1338 1339 +1310 48 1338 1340 +1311 48 1341 1342 +1312 48 1341 1343 +1313 48 1344 1345 +1314 48 1344 1346 +1315 48 1347 1348 +1316 48 1347 1349 +1317 48 1350 1351 +1318 48 1350 1352 +1319 48 1353 1354 +1320 48 1353 1355 +1321 48 1356 1357 +1322 48 1356 1358 +1323 48 1359 1360 +1324 48 1359 1361 +1325 48 1362 1363 +1326 48 1362 1364 +1327 48 1365 1366 +1328 48 1365 1367 +1329 48 1368 1369 +1330 48 1368 1370 +1331 48 1371 1372 +1332 48 1371 1373 +1333 48 1374 1375 +1334 48 1374 1376 +1335 48 1377 1378 +1336 48 1377 1379 +1337 48 1380 1381 +1338 48 1380 1382 +1339 48 1383 1384 +1340 48 1383 1385 +1341 48 1386 1387 +1342 48 1386 1388 +1343 48 1389 1390 +1344 48 1389 1391 +1345 48 1392 1393 +1346 48 1392 1394 +1347 48 1395 1396 +1348 48 1395 1397 +1349 48 1398 1399 +1350 48 1398 1400 +1351 48 1401 1402 +1352 48 1401 1403 +1353 48 1404 1405 +1354 48 1404 1406 +1355 48 1407 1408 +1356 48 1407 1409 +1357 48 1410 1411 +1358 48 1410 1412 +1359 48 1413 1414 +1360 48 1413 1415 +1361 48 1416 1417 +1362 48 1416 1418 +1363 48 1419 1420 +1364 48 1419 1421 +1365 48 1422 1423 +1366 48 1422 1424 +1367 48 1425 1426 +1368 48 1425 1427 +1369 48 1428 1429 +1370 48 1428 1430 +1371 48 1431 1432 +1372 48 1431 1433 +1373 48 1434 1435 +1374 48 1434 1436 +1375 48 1437 1438 +1376 48 1437 1439 +1377 48 1440 1441 +1378 48 1440 1442 +1379 48 1443 1444 +1380 48 1443 1445 +1381 48 1446 1447 +1382 48 1446 1448 +1383 48 1449 1450 +1384 48 1449 1451 +1385 48 1452 1453 +1386 48 1452 1454 +1387 48 1455 1456 +1388 48 1455 1457 +1389 48 1458 1459 +1390 48 1458 1460 +1391 48 1461 1462 +1392 48 1461 1463 +1393 48 1464 1465 +1394 48 1464 1466 +1395 48 1467 1468 +1396 48 1467 1469 +1397 48 1470 1471 +1398 48 1470 1472 +1399 48 1473 1474 +1400 48 1473 1475 +1401 48 1476 1477 +1402 48 1476 1478 +1403 48 1479 1480 +1404 48 1479 1481 +1405 48 1482 1483 +1406 48 1482 1484 +1407 48 1485 1486 +1408 48 1485 1487 +1409 48 1488 1489 +1410 48 1488 1490 +1411 48 1491 1492 +1412 48 1491 1493 +1413 48 1494 1495 +1414 48 1494 1496 +1415 48 1497 1498 +1416 48 1497 1499 +1417 48 1500 1501 +1418 48 1500 1502 +1419 48 1503 1504 +1420 48 1503 1505 +1421 48 1506 1507 +1422 48 1506 1508 +1423 48 1509 1510 +1424 48 1509 1511 +1425 48 1512 1513 +1426 48 1512 1514 +1427 48 1515 1516 +1428 48 1515 1517 +1429 48 1518 1519 +1430 48 1518 1520 +1431 48 1521 1522 +1432 48 1521 1523 +1433 48 1524 1525 +1434 48 1524 1526 +1435 48 1527 1528 +1436 48 1527 1529 +1437 48 1530 1531 +1438 48 1530 1532 +1439 48 1533 1534 +1440 48 1533 1535 +1441 48 1536 1537 +1442 48 1536 1538 +1443 48 1539 1540 +1444 48 1539 1541 +1445 48 1542 1543 +1446 48 1542 1544 +1447 48 1545 1546 +1448 48 1545 1547 +1449 48 1548 1549 +1450 48 1548 1550 +1451 48 1551 1552 +1452 48 1551 1553 +1453 48 1554 1555 +1454 48 1554 1556 +1455 48 1557 1558 +1456 48 1557 1559 +1457 48 1560 1561 +1458 48 1560 1562 +1459 48 1563 1564 +1460 48 1563 1565 +1461 48 1566 1567 +1462 48 1566 1568 +1463 48 1569 1570 +1464 48 1569 1571 +1465 48 1572 1573 +1466 48 1572 1574 +1467 48 1575 1576 +1468 48 1575 1577 +1469 48 1578 1579 +1470 48 1578 1580 +1471 48 1581 1582 +1472 48 1581 1583 +1473 48 1584 1585 +1474 48 1584 1586 +1475 48 1587 1588 +1476 48 1587 1589 +1477 48 1590 1591 +1478 48 1590 1592 +1479 48 1593 1594 +1480 48 1593 1595 +1481 48 1596 1597 +1482 48 1596 1598 +1483 48 1599 1600 +1484 48 1599 1601 +1485 48 1602 1603 +1486 48 1602 1604 +1487 48 1605 1606 +1488 48 1605 1607 +1489 48 1608 1609 +1490 48 1608 1610 +1491 48 1611 1612 +1492 48 1611 1613 +1493 48 1614 1615 +1494 48 1614 1616 +1495 48 1617 1618 +1496 48 1617 1619 +1497 48 1620 1621 +1498 48 1620 1622 +1499 48 1623 1624 +1500 48 1623 1625 +1501 48 1626 1627 +1502 48 1626 1628 +1503 48 1629 1630 +1504 48 1629 1631 +1505 48 1632 1633 +1506 48 1632 1634 +1507 48 1635 1636 +1508 48 1635 1637 +1509 48 1638 1639 +1510 48 1638 1640 +1511 48 1641 1642 +1512 48 1641 1643 +1513 48 1644 1645 +1514 48 1644 1646 +1515 48 1647 1648 +1516 48 1647 1649 +1517 48 1650 1651 +1518 48 1650 1652 +1519 48 1653 1654 +1520 48 1653 1655 +1521 48 1656 1657 +1522 48 1656 1658 +1523 48 1659 1660 +1524 48 1659 1661 +1525 48 1662 1663 +1526 48 1662 1664 +1527 48 1665 1666 +1528 48 1665 1667 +1529 48 1668 1669 +1530 48 1668 1670 +1531 48 1671 1672 +1532 48 1671 1673 +1533 48 1674 1675 +1534 48 1674 1676 +1535 48 1677 1678 +1536 48 1677 1679 +1537 48 1680 1681 +1538 48 1680 1682 +1539 48 1683 1684 +1540 48 1683 1685 +1541 48 1686 1687 +1542 48 1686 1688 +1543 48 1689 1690 +1544 48 1689 1691 +1545 48 1692 1693 +1546 48 1692 1694 +1547 48 1695 1696 +1548 48 1695 1697 +1549 48 1698 1699 +1550 48 1698 1700 +1551 48 1701 1702 +1552 48 1701 1703 +1553 48 1704 1705 +1554 48 1704 1706 +1555 48 1707 1708 +1556 48 1707 1709 +1557 48 1710 1711 +1558 48 1710 1712 +1559 48 1713 1714 +1560 48 1713 1715 +1561 48 1716 1717 +1562 48 1716 1718 +1563 48 1719 1720 +1564 48 1719 1721 +1565 48 1722 1723 +1566 48 1722 1724 +1567 48 1725 1726 +1568 48 1725 1727 +1569 48 1728 1729 +1570 48 1728 1730 +1571 48 1731 1732 +1572 48 1731 1733 +1573 48 1734 1735 +1574 48 1734 1736 +1575 48 1737 1738 +1576 48 1737 1739 +1577 48 1740 1741 +1578 48 1740 1742 +1579 48 1743 1744 +1580 48 1743 1745 +1581 48 1746 1747 +1582 48 1746 1748 +1583 48 1749 1750 +1584 48 1749 1751 +1585 48 1752 1753 +1586 48 1752 1754 +1587 48 1755 1756 +1588 48 1755 1757 +1589 48 1758 1759 +1590 48 1758 1760 +1591 48 1761 1762 +1592 48 1761 1763 +1593 48 1764 1765 +1594 48 1764 1766 +1595 48 1767 1768 +1596 48 1767 1769 +1597 48 1770 1771 +1598 48 1770 1772 +1599 48 1773 1774 +1600 48 1773 1775 +1601 48 1776 1777 +1602 48 1776 1778 +1603 48 1779 1780 +1604 48 1779 1781 +1605 48 1782 1783 +1606 48 1782 1784 +1607 48 1785 1786 +1608 48 1785 1787 +1609 48 1788 1789 +1610 48 1788 1790 +1611 48 1791 1792 +1612 48 1791 1793 +1613 48 1794 1795 +1614 48 1794 1796 +1615 48 1797 1798 +1616 48 1797 1799 +1617 48 1800 1801 +1618 48 1800 1802 +1619 48 1803 1804 +1620 48 1803 1805 +1621 48 1806 1807 +1622 48 1806 1808 +1623 48 1809 1810 +1624 48 1809 1811 +1625 48 1812 1813 +1626 48 1812 1814 +1627 48 1815 1816 +1628 48 1815 1817 +1629 48 1818 1819 +1630 48 1818 1820 +1631 48 1821 1822 +1632 48 1821 1823 +1633 48 1824 1825 +1634 48 1824 1826 +1635 48 1827 1828 +1636 48 1827 1829 +1637 48 1830 1831 +1638 48 1830 1832 +1639 48 1833 1834 +1640 48 1833 1835 +1641 48 1836 1837 +1642 48 1836 1838 +1643 48 1839 1840 +1644 48 1839 1841 +1645 48 1842 1843 +1646 48 1842 1844 +1647 48 1845 1846 +1648 48 1845 1847 +1649 48 1848 1849 +1650 48 1848 1850 +1651 48 1851 1852 +1652 48 1851 1853 +1653 48 1854 1855 +1654 48 1854 1856 +1655 48 1857 1858 +1656 48 1857 1859 +1657 48 1860 1861 +1658 48 1860 1862 +1659 48 1863 1864 +1660 48 1863 1865 +1661 48 1866 1867 +1662 48 1866 1868 +1663 48 1869 1870 +1664 48 1869 1871 +1665 48 1872 1873 +1666 48 1872 1874 +1667 48 1875 1876 +1668 48 1875 1877 +1669 48 1878 1879 +1670 48 1878 1880 +1671 48 1881 1882 +1672 48 1881 1883 +1673 48 1884 1885 +1674 48 1884 1886 +1675 48 1887 1888 +1676 48 1887 1889 +1677 48 1890 1891 +1678 48 1890 1892 +1679 48 1893 1894 +1680 48 1893 1895 +1681 48 1896 1897 +1682 48 1896 1898 +1683 48 1899 1900 +1684 48 1899 1901 +1685 48 1902 1903 +1686 48 1902 1904 +1687 48 1905 1906 +1688 48 1905 1907 +1689 48 1908 1909 +1690 48 1908 1910 +1691 48 1911 1912 +1692 48 1911 1913 +1693 48 1914 1915 +1694 48 1914 1916 +1695 48 1917 1918 +1696 48 1917 1919 +1697 48 1920 1921 +1698 48 1920 1922 +1699 48 1923 1924 +1700 48 1923 1925 +1701 48 1926 1927 +1702 48 1926 1928 +1703 48 1929 1930 +1704 48 1929 1931 +1705 48 1932 1933 +1706 48 1932 1934 +1707 48 1935 1936 +1708 48 1935 1937 +1709 48 1938 1939 +1710 48 1938 1940 +1711 48 1941 1942 +1712 48 1941 1943 +1713 48 1944 1945 +1714 48 1944 1946 +1715 48 1947 1948 +1716 48 1947 1949 +1717 48 1950 1951 +1718 48 1950 1952 +1719 48 1953 1954 +1720 48 1953 1955 +1721 48 1956 1957 +1722 48 1956 1958 +1723 48 1959 1960 +1724 48 1959 1961 +1725 48 1962 1963 +1726 48 1962 1964 +1727 48 1965 1966 +1728 48 1965 1967 +1729 48 1968 1969 +1730 48 1968 1970 +1731 48 1971 1972 +1732 48 1971 1973 +1733 48 1974 1975 +1734 48 1974 1976 +1735 48 1977 1978 +1736 48 1977 1979 +1737 48 1980 1981 +1738 48 1980 1982 +1739 48 1983 1984 +1740 48 1983 1985 +1741 48 1986 1987 +1742 48 1986 1988 +1743 48 1989 1990 +1744 48 1989 1991 +1745 48 1992 1993 +1746 48 1992 1994 +1747 48 1995 1996 +1748 48 1995 1997 +1749 48 1998 1999 +1750 48 1998 2000 +1751 48 2001 2002 +1752 48 2001 2003 +1753 48 2004 2005 +1754 48 2004 2006 +1755 48 2007 2008 +1756 48 2007 2009 +1757 48 2010 2011 +1758 48 2010 2012 +1759 48 2013 2014 +1760 48 2013 2015 +1761 48 2016 2017 +1762 48 2016 2018 +1763 48 2019 2020 +1764 48 2019 2021 +1765 48 2022 2023 +1766 48 2022 2024 +1767 48 2025 2026 +1768 48 2025 2027 +1769 48 2028 2029 +1770 48 2028 2030 +1771 48 2031 2032 +1772 48 2031 2033 +1773 48 2034 2035 +1774 48 2034 2036 +1775 48 2037 2038 +1776 48 2037 2039 +1777 48 2040 2041 +1778 48 2040 2042 +1779 48 2043 2044 +1780 48 2043 2045 +1781 48 2046 2047 +1782 48 2046 2048 +1783 48 2049 2050 +1784 48 2049 2051 +1785 48 2052 2053 +1786 48 2052 2054 +1787 48 2055 2056 +1788 48 2055 2057 +1789 48 2058 2059 +1790 48 2058 2060 +1791 48 2061 2062 +1792 48 2061 2063 +1793 48 2064 2065 +1794 48 2064 2066 +1795 48 2067 2068 +1796 48 2067 2069 +1797 48 2070 2071 +1798 48 2070 2072 +1799 48 2073 2074 +1800 48 2073 2075 +1801 48 2076 2077 +1802 48 2076 2078 +1803 48 2079 2080 +1804 48 2079 2081 +1805 48 2082 2083 +1806 48 2082 2084 +1807 48 2085 2086 +1808 48 2085 2087 +1809 48 2088 2089 +1810 48 2088 2090 +1811 48 2091 2092 +1812 48 2091 2093 +1813 48 2094 2095 +1814 48 2094 2096 +1815 48 2097 2098 +1816 48 2097 2099 +1817 48 2100 2101 +1818 48 2100 2102 +1819 48 2103 2104 +1820 48 2103 2105 +1821 48 2106 2107 +1822 48 2106 2108 +1823 48 2109 2110 +1824 48 2109 2111 +1825 48 2112 2113 +1826 48 2112 2114 +1827 48 2115 2116 +1828 48 2115 2117 +1829 48 2118 2119 +1830 48 2118 2120 +1831 48 2121 2122 +1832 48 2121 2123 +1833 48 2124 2125 +1834 48 2124 2126 +1835 48 2127 2128 +1836 48 2127 2129 +1837 48 2130 2131 +1838 48 2130 2132 +1839 48 2133 2134 +1840 48 2133 2135 +1841 48 2136 2137 +1842 48 2136 2138 +1843 48 2139 2140 +1844 48 2139 2141 +1845 48 2142 2143 +1846 48 2142 2144 +1847 48 2145 2146 +1848 48 2145 2147 +1849 48 2148 2149 +1850 48 2148 2150 +1851 48 2151 2152 +1852 48 2151 2153 +1853 48 2154 2155 +1854 48 2154 2156 +1855 48 2157 2158 +1856 48 2157 2159 +1857 48 2160 2161 +1858 48 2160 2162 +1859 48 2163 2164 +1860 48 2163 2165 +1861 48 2166 2167 +1862 48 2166 2168 +1863 48 2169 2170 +1864 48 2169 2171 +1865 48 2172 2173 +1866 48 2172 2174 +1867 48 2175 2176 +1868 48 2175 2177 +1869 48 2178 2179 +1870 48 2178 2180 +1871 48 2181 2182 +1872 48 2181 2183 +1873 48 2184 2185 +1874 48 2184 2186 +1875 48 2187 2188 +1876 48 2187 2189 +1877 48 2190 2191 +1878 48 2190 2192 +1879 48 2193 2194 +1880 48 2193 2195 +1881 48 2196 2197 +1882 48 2196 2198 +1883 48 2199 2200 +1884 48 2199 2201 +1885 48 2202 2203 +1886 48 2202 2204 +1887 48 2205 2206 +1888 48 2205 2207 +1889 48 2208 2209 +1890 48 2208 2210 +1891 48 2211 2212 +1892 48 2211 2213 +1893 48 2214 2215 +1894 48 2214 2216 +1895 48 2217 2218 +1896 48 2217 2219 +1897 48 2220 2221 +1898 48 2220 2222 +1899 48 2223 2224 +1900 48 2223 2225 +1901 48 2226 2227 +1902 48 2226 2228 +1903 48 2229 2230 +1904 48 2229 2231 +1905 48 2232 2233 +1906 48 2232 2234 +1907 48 2235 2236 +1908 48 2235 2237 +1909 48 2238 2239 +1910 48 2238 2240 +1911 48 2241 2242 +1912 48 2241 2243 +1913 48 2244 2245 +1914 48 2244 2246 +1915 48 2247 2248 +1916 48 2247 2249 +1917 48 2250 2251 +1918 48 2250 2252 +1919 48 2253 2254 +1920 48 2253 2255 +1921 48 2256 2257 +1922 48 2256 2258 +1923 48 2259 2260 +1924 48 2259 2261 +1925 48 2262 2263 +1926 48 2262 2264 +1927 48 2265 2266 +1928 48 2265 2267 +1929 48 2268 2269 +1930 48 2268 2270 +1931 48 2271 2272 +1932 48 2271 2273 +1933 48 2274 2275 +1934 48 2274 2276 +1935 48 2277 2278 +1936 48 2277 2279 +1937 48 2280 2281 +1938 48 2280 2282 +1939 48 2283 2284 +1940 48 2283 2285 +1941 48 2286 2287 +1942 48 2286 2288 +1943 48 2289 2290 +1944 48 2289 2291 +1945 48 2292 2293 +1946 48 2292 2294 +1947 48 2295 2296 +1948 48 2295 2297 +1949 48 2298 2299 +1950 48 2298 2300 +1951 48 2301 2302 +1952 48 2301 2303 +1953 48 2304 2305 +1954 48 2304 2306 +1955 48 2307 2308 +1956 48 2307 2309 +1957 48 2310 2311 +1958 48 2310 2312 +1959 48 2313 2314 +1960 48 2313 2315 +1961 48 2316 2317 +1962 48 2316 2318 +1963 48 2319 2320 +1964 48 2319 2321 +1965 48 2322 2323 +1966 48 2322 2324 +1967 48 2325 2326 +1968 48 2325 2327 +1969 48 2328 2329 +1970 48 2328 2330 +1971 48 2331 2332 +1972 48 2331 2333 +1973 48 2334 2335 +1974 48 2334 2336 +1975 48 2337 2338 +1976 48 2337 2339 +1977 48 2340 2341 +1978 48 2340 2342 +1979 48 2343 2344 +1980 48 2343 2345 +1981 48 2346 2347 +1982 48 2346 2348 +1983 48 2349 2350 +1984 48 2349 2351 +1985 48 2352 2353 +1986 48 2352 2354 +1987 48 2355 2356 +1988 48 2355 2357 +1989 48 2358 2359 +1990 48 2358 2360 +1991 48 2361 2362 +1992 48 2361 2363 +1993 48 2364 2365 +1994 48 2364 2366 +1995 48 2367 2368 +1996 48 2367 2369 +1997 48 2370 2371 +1998 48 2370 2372 +1999 48 2373 2374 +2000 48 2373 2375 +2001 48 2376 2377 +2002 48 2376 2378 +2003 48 2379 2380 +2004 48 2379 2381 +2005 48 2382 2383 +2006 48 2382 2384 +2007 48 2385 2386 +2008 48 2385 2387 +2009 48 2388 2389 +2010 48 2388 2390 +2011 48 2391 2392 +2012 48 2391 2393 +2013 48 2394 2395 +2014 48 2394 2396 +2015 48 2397 2398 +2016 48 2397 2399 +2017 48 2400 2401 +2018 48 2400 2402 +2019 48 2403 2404 +2020 48 2403 2405 +2021 48 2406 2407 +2022 48 2406 2408 +2023 48 2409 2410 +2024 48 2409 2411 +2025 48 2412 2413 +2026 48 2412 2414 +2027 48 2415 2416 +2028 48 2415 2417 +2029 48 2418 2419 +2030 48 2418 2420 +2031 48 2421 2422 +2032 48 2421 2423 +2033 48 2424 2425 +2034 48 2424 2426 +2035 48 2427 2428 +2036 48 2427 2429 +2037 48 2430 2431 +2038 48 2430 2432 +2039 48 2433 2434 +2040 48 2433 2435 +2041 48 2436 2437 +2042 48 2436 2438 +2043 48 2439 2440 +2044 48 2439 2441 +2045 48 2442 2443 +2046 48 2442 2444 +2047 48 2445 2446 +2048 48 2445 2447 +2049 48 2448 2449 +2050 48 2448 2450 +2051 48 2451 2452 +2052 48 2451 2453 +2053 48 2454 2455 +2054 48 2454 2456 +2055 48 2457 2458 +2056 48 2457 2459 +2057 48 2460 2461 +2058 48 2460 2462 +2059 48 2463 2464 +2060 48 2463 2465 +2061 48 2466 2467 +2062 48 2466 2468 +2063 48 2469 2470 +2064 48 2469 2471 +2065 48 2472 2473 +2066 48 2472 2474 +2067 48 2475 2476 +2068 48 2475 2477 +2069 48 2478 2479 +2070 48 2478 2480 +2071 48 2481 2482 +2072 48 2481 2483 +2073 48 2484 2485 +2074 48 2484 2486 +2075 48 2487 2488 +2076 48 2487 2489 +2077 48 2490 2491 +2078 48 2490 2492 +2079 48 2493 2494 +2080 48 2493 2495 +2081 48 2496 2497 +2082 48 2496 2498 +2083 48 2499 2500 +2084 48 2499 2501 +2085 48 2502 2503 +2086 48 2502 2504 +2087 48 2505 2506 +2088 48 2505 2507 +2089 48 2508 2509 +2090 48 2508 2510 +2091 48 2511 2512 +2092 48 2511 2513 +2093 48 2514 2515 +2094 48 2514 2516 +2095 48 2517 2518 +2096 48 2517 2519 +2097 48 2520 2521 +2098 48 2520 2522 +2099 48 2523 2524 +2100 48 2523 2525 +2101 48 2526 2527 +2102 48 2526 2528 +2103 48 2529 2530 +2104 48 2529 2531 +2105 48 2532 2533 +2106 48 2532 2534 +2107 48 2535 2536 +2108 48 2535 2537 +2109 48 2538 2539 +2110 48 2538 2540 +2111 48 2541 2542 +2112 48 2541 2543 +2113 48 2544 2545 +2114 48 2544 2546 +2115 48 2547 2548 +2116 48 2547 2549 +2117 48 2550 2551 +2118 48 2550 2552 +2119 48 2553 2554 +2120 48 2553 2555 +2121 48 2556 2557 +2122 48 2556 2558 +2123 48 2559 2560 +2124 48 2559 2561 +2125 48 2562 2563 +2126 48 2562 2564 +2127 48 2565 2566 +2128 48 2565 2567 +2129 48 2568 2569 +2130 48 2568 2570 +2131 48 2571 2572 +2132 48 2571 2573 +2133 48 2574 2575 +2134 48 2574 2576 +2135 48 2577 2578 +2136 48 2577 2579 +2137 48 2580 2581 +2138 48 2580 2582 +2139 48 2583 2584 +2140 48 2583 2585 +2141 48 2586 2587 +2142 48 2586 2588 +2143 48 2589 2590 +2144 48 2589 2591 +2145 48 2592 2593 +2146 48 2592 2594 +2147 48 2595 2596 +2148 48 2595 2597 +2149 48 2598 2599 +2150 48 2598 2600 +2151 48 2601 2602 +2152 48 2601 2603 +2153 48 2604 2605 +2154 48 2604 2606 +2155 48 2607 2608 +2156 48 2607 2609 +2157 48 2610 2611 +2158 48 2610 2612 +2159 48 2613 2614 +2160 48 2613 2615 +2161 48 2616 2617 +2162 48 2616 2618 +2163 48 2619 2620 +2164 48 2619 2621 +2165 48 2622 2623 +2166 48 2622 2624 +2167 48 2625 2626 +2168 48 2625 2627 +2169 48 2628 2629 +2170 48 2628 2630 +2171 48 2631 2632 +2172 48 2631 2633 +2173 48 2634 2635 +2174 48 2634 2636 +2175 48 2637 2638 +2176 48 2637 2639 +2177 48 2640 2641 +2178 48 2640 2642 +2179 48 2643 2644 +2180 48 2643 2645 +2181 48 2646 2647 +2182 48 2646 2648 +2183 48 2649 2650 +2184 48 2649 2651 +2185 48 2652 2653 +2186 48 2652 2654 +2187 48 2655 2656 +2188 48 2655 2657 +2189 48 2658 2659 +2190 48 2658 2660 +2191 48 2661 2662 +2192 48 2661 2663 +2193 48 2664 2665 +2194 48 2664 2666 +2195 48 2667 2668 +2196 48 2667 2669 +2197 48 2670 2671 +2198 48 2670 2672 +2199 48 2673 2674 +2200 48 2673 2675 +2201 48 2676 2677 +2202 48 2676 2678 +2203 48 2679 2680 +2204 48 2679 2681 +2205 48 2682 2683 +2206 48 2682 2684 +2207 48 2685 2686 +2208 48 2685 2687 +2209 48 2688 2689 +2210 48 2688 2690 +2211 48 2691 2692 +2212 48 2691 2693 +2213 48 2694 2695 +2214 48 2694 2696 +2215 48 2697 2698 +2216 48 2697 2699 +2217 48 2700 2701 +2218 48 2700 2702 +2219 48 2703 2704 +2220 48 2703 2705 +2221 48 2706 2707 +2222 48 2706 2708 +2223 48 2709 2710 +2224 48 2709 2711 +2225 48 2712 2713 +2226 48 2712 2714 +2227 48 2715 2716 +2228 48 2715 2717 +2229 48 2718 2719 +2230 48 2718 2720 +2231 48 2721 2722 +2232 48 2721 2723 +2233 48 2724 2725 +2234 48 2724 2726 +2235 48 2727 2728 +2236 48 2727 2729 +2237 48 2730 2731 +2238 48 2730 2732 +2239 48 2733 2734 +2240 48 2733 2735 +2241 48 2736 2737 +2242 48 2736 2738 +2243 48 2739 2740 +2244 48 2739 2741 +2245 48 2742 2743 +2246 48 2742 2744 +2247 48 2745 2746 +2248 48 2745 2747 +2249 48 2748 2749 +2250 48 2748 2750 +2251 48 2751 2752 +2252 48 2751 2753 +2253 48 2754 2755 +2254 48 2754 2756 +2255 48 2757 2758 +2256 48 2757 2759 +2257 48 2760 2761 +2258 48 2760 2762 +2259 48 2763 2764 +2260 48 2763 2765 +2261 48 2766 2767 +2262 48 2766 2768 +2263 48 2769 2770 +2264 48 2769 2771 +2265 48 2772 2773 +2266 48 2772 2774 +2267 48 2775 2776 +2268 48 2775 2777 +2269 48 2778 2779 +2270 48 2778 2780 +2271 48 2781 2782 +2272 48 2781 2783 +2273 48 2784 2785 +2274 48 2784 2786 +2275 48 2787 2788 +2276 48 2787 2789 +2277 48 2790 2791 +2278 48 2790 2792 +2279 48 2793 2794 +2280 48 2793 2795 +2281 48 2796 2797 +2282 48 2796 2798 +2283 48 2799 2800 +2284 48 2799 2801 +2285 48 2802 2803 +2286 48 2802 2804 +2287 48 2805 2806 +2288 48 2805 2807 +2289 48 2808 2809 +2290 48 2808 2810 +2291 48 2811 2812 +2292 48 2811 2813 +2293 48 2814 2815 +2294 48 2814 2816 +2295 48 2817 2818 +2296 48 2817 2819 +2297 48 2820 2821 +2298 48 2820 2822 +2299 48 2823 2824 +2300 48 2823 2825 +2301 48 2826 2827 +2302 48 2826 2828 +2303 48 2829 2830 +2304 48 2829 2831 +2305 48 2832 2833 +2306 48 2832 2834 +2307 48 2835 2836 +2308 48 2835 2837 +2309 48 2838 2839 +2310 48 2838 2840 +2311 48 2841 2842 +2312 48 2841 2843 +2313 48 2844 2845 +2314 48 2844 2846 +2315 48 2847 2848 +2316 48 2847 2849 +2317 48 2850 2851 +2318 48 2850 2852 +2319 48 2853 2854 +2320 48 2853 2855 +2321 48 2856 2857 +2322 48 2856 2858 +2323 48 2859 2860 +2324 48 2859 2861 +2325 48 2862 2863 +2326 48 2862 2864 +2327 48 2865 2866 +2328 48 2865 2867 +2329 48 2868 2869 +2330 48 2868 2870 +2331 48 2871 2872 +2332 48 2871 2873 +2333 48 2874 2875 +2334 48 2874 2876 +2335 48 2877 2878 +2336 48 2877 2879 +2337 48 2880 2881 +2338 48 2880 2882 +2339 48 2883 2884 +2340 48 2883 2885 +2341 48 2886 2887 +2342 48 2886 2888 +2343 48 2889 2890 +2344 48 2889 2891 +2345 48 2892 2893 +2346 48 2892 2894 +2347 48 2895 2896 +2348 48 2895 2897 +2349 48 2898 2899 +2350 48 2898 2900 +2351 48 2901 2902 +2352 48 2901 2903 +2353 48 2904 2905 +2354 48 2904 2906 +2355 48 2907 2908 +2356 48 2907 2909 +2357 48 2910 2911 +2358 48 2910 2912 +2359 48 2913 2914 +2360 48 2913 2915 +2361 48 2916 2917 +2362 48 2916 2918 +2363 48 2919 2920 +2364 48 2919 2921 +2365 48 2922 2923 +2366 48 2922 2924 +2367 48 2925 2926 +2368 48 2925 2927 +2369 48 2928 2929 +2370 48 2928 2930 +2371 48 2931 2932 +2372 48 2931 2933 +2373 48 2934 2935 +2374 48 2934 2936 +2375 48 2937 2938 +2376 48 2937 2939 +2377 48 2940 2941 +2378 48 2940 2942 +2379 48 2943 2944 +2380 48 2943 2945 +2381 48 2946 2947 +2382 48 2946 2948 +2383 48 2949 2950 +2384 48 2949 2951 +2385 48 2952 2953 +2386 48 2952 2954 +2387 48 2955 2956 +2388 48 2955 2957 +2389 48 2958 2959 +2390 48 2958 2960 +2391 48 2961 2962 +2392 48 2961 2963 +2393 48 2964 2965 +2394 48 2964 2966 +2395 48 2967 2968 +2396 48 2967 2969 +2397 48 2970 2971 +2398 48 2970 2972 +2399 48 2973 2974 +2400 48 2973 2975 +2401 48 2976 2977 +2402 48 2976 2978 +2403 48 2979 2980 +2404 48 2979 2981 +2405 48 2982 2983 +2406 48 2982 2984 +2407 48 2985 2986 +2408 48 2985 2987 +2409 48 2988 2989 +2410 48 2988 2990 +2411 48 2991 2992 +2412 48 2991 2993 +2413 48 2994 2995 +2414 48 2994 2996 +2415 48 2997 2998 +2416 48 2997 2999 +2417 48 3000 3001 +2418 48 3000 3002 +2419 48 3003 3004 +2420 48 3003 3005 +2421 48 3006 3007 +2422 48 3006 3008 +2423 48 3009 3010 +2424 48 3009 3011 +2425 48 3012 3013 +2426 48 3012 3014 +2427 48 3015 3016 +2428 48 3015 3017 +2429 48 3018 3019 +2430 48 3018 3020 +2431 48 3021 3022 +2432 48 3021 3023 +2433 48 3024 3025 +2434 48 3024 3026 +2435 48 3027 3028 +2436 48 3027 3029 +2437 48 3030 3031 +2438 48 3030 3032 +2439 48 3033 3034 +2440 48 3033 3035 +2441 48 3036 3037 +2442 48 3036 3038 +2443 48 3039 3040 +2444 48 3039 3041 +2445 48 3042 3043 +2446 48 3042 3044 +2447 48 3045 3046 +2448 48 3045 3047 +2449 48 3048 3049 +2450 48 3048 3050 +2451 48 3051 3052 +2452 48 3051 3053 +2453 48 3054 3055 +2454 48 3054 3056 +2455 48 3057 3058 +2456 48 3057 3059 +2457 48 3060 3061 +2458 48 3060 3062 +2459 48 3063 3064 +2460 48 3063 3065 +2461 48 3066 3067 +2462 48 3066 3068 +2463 48 3069 3070 +2464 48 3069 3071 +2465 48 3072 3073 +2466 48 3072 3074 +2467 48 3075 3076 +2468 48 3075 3077 +2469 48 3078 3079 +2470 48 3078 3080 +2471 48 3081 3082 +2472 48 3081 3083 +2473 48 3084 3085 +2474 48 3084 3086 +2475 48 3087 3088 +2476 48 3087 3089 +2477 48 3090 3091 +2478 48 3090 3092 +2479 48 3093 3094 +2480 48 3093 3095 +2481 48 3096 3097 +2482 48 3096 3098 +2483 48 3099 3100 +2484 48 3099 3101 +2485 48 3102 3103 +2486 48 3102 3104 +2487 48 3105 3106 +2488 48 3105 3107 +2489 48 3108 3109 +2490 48 3108 3110 +2491 48 3111 3112 +2492 48 3111 3113 +2493 48 3114 3115 +2494 48 3114 3116 +2495 48 3117 3118 +2496 48 3117 3119 +2497 48 3120 3121 +2498 48 3120 3122 +2499 48 3123 3124 +2500 48 3123 3125 +2501 48 3126 3127 +2502 48 3126 3128 +2503 48 3129 3130 +2504 48 3129 3131 +2505 48 3132 3133 +2506 48 3132 3134 +2507 48 3135 3136 +2508 48 3135 3137 +2509 48 3138 3139 +2510 48 3138 3140 +2511 48 3141 3142 +2512 48 3141 3143 +2513 48 3144 3145 +2514 48 3144 3146 +2515 48 3147 3148 +2516 48 3147 3149 +2517 48 3150 3151 +2518 48 3150 3152 +2519 48 3153 3154 +2520 48 3153 3155 +2521 48 3156 3157 +2522 48 3156 3158 +2523 48 3159 3160 +2524 48 3159 3161 +2525 48 3162 3163 +2526 48 3162 3164 +2527 48 3165 3166 +2528 48 3165 3167 +2529 48 3168 3169 +2530 48 3168 3170 +2531 48 3171 3172 +2532 48 3171 3173 +2533 48 3174 3175 +2534 48 3174 3176 +2535 48 3177 3178 +2536 48 3177 3179 +2537 48 3180 3181 +2538 48 3180 3182 +2539 48 3183 3184 +2540 48 3183 3185 +2541 48 3186 3187 +2542 48 3186 3188 +2543 48 3189 3190 +2544 48 3189 3191 +2545 48 3192 3193 +2546 48 3192 3194 +2547 48 3195 3196 +2548 48 3195 3197 +2549 48 3198 3199 +2550 48 3198 3200 +2551 48 3201 3202 +2552 48 3201 3203 +2553 48 3204 3205 +2554 48 3204 3206 +2555 48 3207 3208 +2556 48 3207 3209 +2557 48 3210 3211 +2558 48 3210 3212 +2559 48 3213 3214 +2560 48 3213 3215 +2561 48 3216 3217 +2562 48 3216 3218 +2563 48 3219 3220 +2564 48 3219 3221 +2565 48 3222 3223 +2566 48 3222 3224 +2567 48 3225 3226 +2568 48 3225 3227 +2569 48 3228 3229 +2570 48 3228 3230 +2571 48 3231 3232 +2572 48 3231 3233 +2573 48 3234 3235 +2574 48 3234 3236 +2575 48 3237 3238 +2576 48 3237 3239 +2577 48 3240 3241 +2578 48 3240 3242 +2579 48 3243 3244 +2580 48 3243 3245 +2581 48 3246 3247 +2582 48 3246 3248 +2583 48 3249 3250 +2584 48 3249 3251 +2585 48 3252 3253 +2586 48 3252 3254 +2587 48 3255 3256 +2588 48 3255 3257 +2589 48 3258 3259 +2590 48 3258 3260 +2591 48 3261 3262 +2592 48 3261 3263 +2593 48 3264 3265 +2594 48 3264 3266 +2595 48 3267 3268 +2596 48 3267 3269 +2597 48 3270 3271 +2598 48 3270 3272 +2599 48 3273 3274 +2600 48 3273 3275 +2601 48 3276 3277 +2602 48 3276 3278 +2603 48 3279 3280 +2604 48 3279 3281 +2605 48 3282 3283 +2606 48 3282 3284 +2607 48 3285 3286 +2608 48 3285 3287 +2609 48 3288 3289 +2610 48 3288 3290 +2611 48 3291 3292 +2612 48 3291 3293 +2613 48 3294 3295 +2614 48 3294 3296 +2615 48 3297 3298 +2616 48 3297 3299 +2617 48 3300 3301 +2618 48 3300 3302 +2619 48 3303 3304 +2620 48 3303 3305 +2621 48 3306 3307 +2622 48 3306 3308 +2623 48 3309 3310 +2624 48 3309 3311 +2625 48 3312 3313 +2626 48 3312 3314 +2627 48 3315 3316 +2628 48 3315 3317 +2629 48 3318 3319 +2630 48 3318 3320 +2631 48 3321 3322 +2632 48 3321 3323 +2633 48 3324 3325 +2634 48 3324 3326 +2635 48 3327 3328 +2636 48 3327 3329 +2637 48 3330 3331 +2638 48 3330 3332 +2639 48 3333 3334 +2640 48 3333 3335 +2641 48 3336 3337 +2642 48 3336 3338 +2643 48 3339 3340 +2644 48 3339 3341 +2645 48 3342 3343 +2646 48 3342 3344 +2647 48 3345 3346 +2648 48 3345 3347 +2649 48 3348 3349 +2650 48 3348 3350 +2651 48 3351 3352 +2652 48 3351 3353 +2653 48 3354 3355 +2654 48 3354 3356 +2655 48 3357 3358 +2656 48 3357 3359 +2657 48 3360 3361 +2658 48 3360 3362 +2659 48 3363 3364 +2660 48 3363 3365 +2661 48 3366 3367 +2662 48 3366 3368 +2663 48 3369 3370 +2664 48 3369 3371 +2665 48 3372 3373 +2666 48 3372 3374 +2667 48 3375 3376 +2668 48 3375 3377 +2669 48 3378 3379 +2670 48 3378 3380 +2671 48 3381 3382 +2672 48 3381 3383 +2673 48 3384 3385 +2674 48 3384 3386 +2675 48 3387 3388 +2676 48 3387 3389 +2677 48 3390 3391 +2678 48 3390 3392 +2679 48 3393 3394 +2680 48 3393 3395 +2681 48 3396 3397 +2682 48 3396 3398 +2683 48 3399 3400 +2684 48 3399 3401 +2685 48 3402 3403 +2686 48 3402 3404 +2687 48 3405 3406 +2688 48 3405 3407 +2689 48 3408 3409 +2690 48 3408 3410 +2691 48 3411 3412 +2692 48 3411 3413 +2693 48 3414 3415 +2694 48 3414 3416 +2695 48 3417 3418 +2696 48 3417 3419 +2697 48 3420 3421 +2698 48 3420 3422 +2699 48 3423 3424 +2700 48 3423 3425 +2701 48 3426 3427 +2702 48 3426 3428 +2703 48 3429 3430 +2704 48 3429 3431 +2705 48 3432 3433 +2706 48 3432 3434 +2707 48 3435 3436 +2708 48 3435 3437 +2709 48 3438 3439 +2710 48 3438 3440 +2711 48 3441 3442 +2712 48 3441 3443 +2713 48 3444 3445 +2714 48 3444 3446 +2715 48 3447 3448 +2716 48 3447 3449 +2717 48 3450 3451 +2718 48 3450 3452 +2719 48 3453 3454 +2720 48 3453 3455 +2721 48 3456 3457 +2722 48 3456 3458 +2723 48 3459 3460 +2724 48 3459 3461 +2725 48 3462 3463 +2726 48 3462 3464 +2727 48 3465 3466 +2728 48 3465 3467 +2729 48 3468 3469 +2730 48 3468 3470 +2731 48 3471 3472 +2732 48 3471 3473 +2733 48 3474 3475 +2734 48 3474 3476 +2735 48 3477 3478 +2736 48 3477 3479 +2737 48 3480 3481 +2738 48 3480 3482 +2739 48 3483 3484 +2740 48 3483 3485 +2741 48 3486 3487 +2742 48 3486 3488 +2743 48 3489 3490 +2744 48 3489 3491 +2745 48 3492 3493 +2746 48 3492 3494 +2747 48 3495 3496 +2748 48 3495 3497 +2749 48 3498 3499 +2750 48 3498 3500 +2751 48 3501 3502 +2752 48 3501 3503 +2753 48 3504 3505 +2754 48 3504 3506 +2755 48 3507 3508 +2756 48 3507 3509 +2757 48 3510 3511 +2758 48 3510 3512 +2759 48 3513 3514 +2760 48 3513 3515 +2761 48 3516 3517 +2762 48 3516 3518 +2763 48 3519 3520 +2764 48 3519 3521 +2765 48 3522 3523 +2766 48 3522 3524 +2767 48 3525 3526 +2768 48 3525 3527 +2769 48 3528 3529 +2770 48 3528 3530 +2771 48 3531 3532 +2772 48 3531 3533 +2773 48 3534 3535 +2774 48 3534 3536 +2775 48 3537 3538 +2776 48 3537 3539 +2777 48 3540 3541 +2778 48 3540 3542 +2779 48 3543 3544 +2780 48 3543 3545 +2781 48 3546 3547 +2782 48 3546 3548 +2783 48 3549 3550 +2784 48 3549 3551 +2785 48 3552 3553 +2786 48 3552 3554 +2787 48 3555 3556 +2788 48 3555 3557 +2789 48 3558 3559 +2790 48 3558 3560 +2791 48 3561 3562 +2792 48 3561 3563 +2793 48 3564 3565 +2794 48 3564 3566 +2795 48 3567 3568 +2796 48 3567 3569 +2797 48 3570 3571 +2798 48 3570 3572 +2799 48 3573 3574 +2800 48 3573 3575 +2801 48 3576 3577 +2802 48 3576 3578 +2803 48 3579 3580 +2804 48 3579 3581 +2805 48 3582 3583 +2806 48 3582 3584 +2807 48 3585 3586 +2808 48 3585 3587 +2809 48 3588 3589 +2810 48 3588 3590 +2811 48 3591 3592 +2812 48 3591 3593 +2813 48 3594 3595 +2814 48 3594 3596 +2815 48 3597 3598 +2816 48 3597 3599 +2817 48 3600 3601 +2818 48 3600 3602 +2819 48 3603 3604 +2820 48 3603 3605 +2821 48 3606 3607 +2822 48 3606 3608 +2823 48 3609 3610 +2824 48 3609 3611 +2825 48 3612 3613 +2826 48 3612 3614 +2827 48 3615 3616 +2828 48 3615 3617 +2829 48 3618 3619 +2830 48 3618 3620 +2831 48 3621 3622 +2832 48 3621 3623 +2833 48 3624 3625 +2834 48 3624 3626 +2835 48 3627 3628 +2836 48 3627 3629 +2837 48 3630 3631 +2838 48 3630 3632 +2839 48 3633 3634 +2840 48 3633 3635 +2841 48 3636 3637 +2842 48 3636 3638 +2843 48 3639 3640 +2844 48 3639 3641 +2845 48 3642 3643 +2846 48 3642 3644 +2847 48 3645 3646 +2848 48 3645 3647 +2849 48 3648 3649 +2850 48 3648 3650 +2851 48 3651 3652 +2852 48 3651 3653 +2853 48 3654 3655 +2854 48 3654 3656 +2855 48 3657 3658 +2856 48 3657 3659 +2857 48 3660 3661 +2858 48 3660 3662 +2859 48 3663 3664 +2860 48 3663 3665 +2861 48 3666 3667 +2862 48 3666 3668 +2863 48 3669 3670 +2864 48 3669 3671 +2865 48 3672 3673 +2866 48 3672 3674 +2867 48 3675 3676 +2868 48 3675 3677 +2869 48 3678 3679 +2870 48 3678 3680 +2871 48 3681 3682 +2872 48 3681 3683 +2873 48 3684 3685 +2874 48 3684 3686 +2875 48 3687 3688 +2876 48 3687 3689 +2877 48 3690 3691 +2878 48 3690 3692 +2879 48 3693 3694 +2880 48 3693 3695 +2881 48 3696 3697 +2882 48 3696 3698 +2883 48 3699 3700 +2884 48 3699 3701 +2885 48 3702 3703 +2886 48 3702 3704 +2887 48 3705 3706 +2888 48 3705 3707 +2889 48 3708 3709 +2890 48 3708 3710 +2891 48 3711 3712 +2892 48 3711 3713 +2893 48 3714 3715 +2894 48 3714 3716 +2895 48 3717 3718 +2896 48 3717 3719 +2897 48 3720 3721 +2898 48 3720 3722 +2899 48 3723 3724 +2900 48 3723 3725 +2901 48 3726 3727 +2902 48 3726 3728 +2903 48 3729 3730 +2904 48 3729 3731 +2905 48 3732 3733 +2906 48 3732 3734 +2907 48 3735 3736 +2908 48 3735 3737 +2909 48 3738 3739 +2910 48 3738 3740 +2911 48 3741 3742 +2912 48 3741 3743 +2913 48 3744 3745 +2914 48 3744 3746 +2915 48 3747 3748 +2916 48 3747 3749 +2917 48 3750 3751 +2918 48 3750 3752 +2919 48 3753 3754 +2920 48 3753 3755 +2921 48 3756 3757 +2922 48 3756 3758 +2923 48 3759 3760 +2924 48 3759 3761 +2925 48 3762 3763 +2926 48 3762 3764 +2927 48 3765 3766 +2928 48 3765 3767 +2929 48 3768 3769 +2930 48 3768 3770 +2931 48 3771 3772 +2932 48 3771 3773 +2933 48 3774 3775 +2934 48 3774 3776 +2935 48 3777 3778 +2936 48 3777 3779 +2937 48 3780 3781 +2938 48 3780 3782 +2939 48 3783 3784 +2940 48 3783 3785 +2941 48 3786 3787 +2942 48 3786 3788 +2943 48 3789 3790 +2944 48 3789 3791 +2945 48 3792 3793 +2946 48 3792 3794 +2947 48 3795 3796 +2948 48 3795 3797 +2949 48 3798 3799 +2950 48 3798 3800 +2951 48 3801 3802 +2952 48 3801 3803 +2953 48 3804 3805 +2954 48 3804 3806 +2955 48 3807 3808 +2956 48 3807 3809 +2957 48 3810 3811 +2958 48 3810 3812 +2959 48 3813 3814 +2960 48 3813 3815 +2961 48 3816 3817 +2962 48 3816 3818 +2963 48 3819 3820 +2964 48 3819 3821 +2965 48 3822 3823 +2966 48 3822 3824 +2967 48 3825 3826 +2968 48 3825 3827 +2969 48 3828 3829 +2970 48 3828 3830 +2971 48 3831 3832 +2972 48 3831 3833 +2973 48 3834 3835 +2974 48 3834 3836 +2975 48 3837 3838 +2976 48 3837 3839 +2977 48 3840 3841 +2978 48 3840 3842 +2979 48 3843 3844 +2980 48 3843 3845 +2981 48 3846 3847 +2982 48 3846 3848 +2983 48 3849 3850 +2984 48 3849 3851 +2985 48 3852 3853 +2986 48 3852 3854 +2987 48 3855 3856 +2988 48 3855 3857 +2989 48 3858 3859 +2990 48 3858 3860 +2991 48 3861 3862 +2992 48 3861 3863 +2993 48 3864 3865 +2994 48 3864 3866 +2995 48 3867 3868 +2996 48 3867 3869 +2997 48 3870 3871 +2998 48 3870 3872 +2999 48 3873 3874 +3000 48 3873 3875 +3001 48 3876 3877 +3002 48 3876 3878 +3003 48 3879 3880 +3004 48 3879 3881 +3005 48 3882 3883 +3006 48 3882 3884 +3007 48 3885 3886 +3008 48 3885 3887 +3009 48 3888 3889 +3010 48 3888 3890 +3011 48 3891 3892 +3012 48 3891 3893 +3013 48 3894 3895 +3014 48 3894 3896 +3015 48 3897 3898 +3016 48 3897 3899 +3017 48 3900 3901 +3018 48 3900 3902 +3019 48 3903 3904 +3020 48 3903 3905 +3021 48 3906 3907 +3022 48 3906 3908 +3023 48 3909 3910 +3024 48 3909 3911 +3025 48 3912 3913 +3026 48 3912 3914 +3027 48 3915 3916 +3028 48 3915 3917 +3029 48 3918 3919 +3030 48 3918 3920 +3031 48 3921 3922 +3032 48 3921 3923 +3033 48 3924 3925 +3034 48 3924 3926 +3035 48 3927 3928 +3036 48 3927 3929 +3037 48 3930 3931 +3038 48 3930 3932 +3039 48 3933 3934 +3040 48 3933 3935 +3041 48 3936 3937 +3042 48 3936 3938 +3043 48 3939 3940 +3044 48 3939 3941 +3045 48 3942 3943 +3046 48 3942 3944 +3047 48 3945 3946 +3048 48 3945 3947 +3049 48 3948 3949 +3050 48 3948 3950 +3051 48 3951 3952 +3052 48 3951 3953 +3053 48 3954 3955 +3054 48 3954 3956 +3055 48 3957 3958 +3056 48 3957 3959 +3057 48 3960 3961 +3058 48 3960 3962 +3059 48 3963 3964 +3060 48 3963 3965 +3061 48 3966 3967 +3062 48 3966 3968 +3063 48 3969 3970 +3064 48 3969 3971 +3065 48 3972 3973 +3066 48 3972 3974 +3067 48 3975 3976 +3068 48 3975 3977 +3069 48 3978 3979 +3070 48 3978 3980 +3071 48 3981 3982 +3072 48 3981 3983 +3073 48 3984 3985 +3074 48 3984 3986 +3075 48 3987 3988 +3076 48 3987 3989 +3077 48 3990 3991 +3078 48 3990 3992 +3079 48 3993 3994 +3080 48 3993 3995 +3081 48 3996 3997 +3082 48 3996 3998 +3083 48 3999 4000 +3084 48 3999 4001 +3085 48 4002 4003 +3086 48 4002 4004 +3087 48 4005 4006 +3088 48 4005 4007 +3089 48 4008 4009 +3090 48 4008 4010 +3091 48 4011 4012 +3092 48 4011 4013 +3093 48 4014 4015 +3094 48 4014 4016 +3095 48 4017 4018 +3096 48 4017 4019 +3097 48 4020 4021 +3098 48 4020 4022 +3099 48 4023 4024 +3100 48 4023 4025 +3101 48 4026 4027 +3102 48 4026 4028 +3103 48 4029 4030 +3104 48 4029 4031 +3105 48 4032 4033 +3106 48 4032 4034 +3107 48 4035 4036 +3108 48 4035 4037 +3109 48 4038 4039 +3110 48 4038 4040 +3111 48 4041 4042 +3112 48 4041 4043 +3113 48 4044 4045 +3114 48 4044 4046 +3115 48 4047 4048 +3116 48 4047 4049 +3117 48 4050 4051 +3118 48 4050 4052 +3119 48 4053 4054 +3120 48 4053 4055 +3121 48 4056 4057 +3122 48 4056 4058 +3123 48 4059 4060 +3124 48 4059 4061 +3125 48 4062 4063 +3126 48 4062 4064 +3127 48 4065 4066 +3128 48 4065 4067 +3129 48 4068 4069 +3130 48 4068 4070 +3131 48 4071 4072 +3132 48 4071 4073 +3133 48 4074 4075 +3134 48 4074 4076 +3135 48 4077 4078 +3136 48 4077 4079 +3137 48 4080 4081 +3138 48 4080 4082 +3139 48 4083 4084 +3140 48 4083 4085 +3141 48 4086 4087 +3142 48 4086 4088 +3143 48 4089 4090 +3144 48 4089 4091 +3145 48 4092 4093 +3146 48 4092 4094 +3147 48 4095 4096 +3148 48 4095 4097 +3149 48 4098 4099 +3150 48 4098 4100 +3151 48 4101 4102 +3152 48 4101 4103 +3153 48 4104 4105 +3154 48 4104 4106 +3155 48 4107 4108 +3156 48 4107 4109 +3157 48 4110 4111 +3158 48 4110 4112 +3159 48 4113 4114 +3160 48 4113 4115 +3161 48 4116 4117 +3162 48 4116 4118 +3163 48 4119 4120 +3164 48 4119 4121 +3165 48 4122 4123 +3166 48 4122 4124 +3167 48 4125 4126 +3168 48 4125 4127 +3169 48 4128 4129 +3170 48 4128 4130 +3171 48 4131 4132 +3172 48 4131 4133 +3173 48 4134 4135 +3174 48 4134 4136 +3175 48 4137 4138 +3176 48 4137 4139 +3177 48 4140 4141 +3178 48 4140 4142 +3179 48 4143 4144 +3180 48 4143 4145 +3181 48 4146 4147 +3182 48 4146 4148 +3183 48 4149 4150 +3184 48 4149 4151 +3185 48 4152 4153 +3186 48 4152 4154 +3187 48 4155 4156 +3188 48 4155 4157 +3189 48 4158 4159 +3190 48 4158 4160 +3191 48 4161 4162 +3192 48 4161 4163 +3193 48 4164 4165 +3194 48 4164 4166 +3195 48 4167 4168 +3196 48 4167 4169 +3197 48 4170 4171 +3198 48 4170 4172 +3199 48 4173 4174 +3200 48 4173 4175 +3201 48 4176 4177 +3202 48 4176 4178 +3203 48 4179 4180 +3204 48 4179 4181 +3205 48 4182 4183 +3206 48 4182 4184 +3207 48 4185 4186 +3208 48 4185 4187 +3209 48 4188 4189 +3210 48 4188 4190 +3211 48 4191 4192 +3212 48 4191 4193 +3213 48 4194 4195 +3214 48 4194 4196 +3215 48 4197 4198 +3216 48 4197 4199 +3217 48 4200 4201 +3218 48 4200 4202 +3219 48 4203 4204 +3220 48 4203 4205 +3221 48 4206 4207 +3222 48 4206 4208 +3223 48 4209 4210 +3224 48 4209 4211 +3225 48 4212 4213 +3226 48 4212 4214 +3227 48 4215 4216 +3228 48 4215 4217 +3229 48 4218 4219 +3230 48 4218 4220 +3231 48 4221 4222 +3232 48 4221 4223 +3233 48 4224 4225 +3234 48 4224 4226 +3235 48 4227 4228 +3236 48 4227 4229 +3237 48 4230 4231 +3238 48 4230 4232 +3239 48 4233 4234 +3240 48 4233 4235 +3241 48 4236 4237 +3242 48 4236 4238 +3243 48 4239 4240 +3244 48 4239 4241 +3245 48 4242 4243 +3246 48 4242 4244 +3247 48 4245 4246 +3248 48 4245 4247 +3249 48 4248 4249 +3250 48 4248 4250 +3251 48 4251 4252 +3252 48 4251 4253 +3253 48 4254 4255 +3254 48 4254 4256 +3255 48 4257 4258 +3256 48 4257 4259 +3257 48 4260 4261 +3258 48 4260 4262 +3259 48 4263 4264 +3260 48 4263 4265 +3261 48 4266 4267 +3262 48 4266 4268 +3263 48 4269 4270 +3264 48 4269 4271 +3265 48 4272 4273 +3266 48 4272 4274 +3267 48 4275 4276 +3268 48 4275 4277 +3269 48 4278 4279 +3270 48 4278 4280 +3271 48 4281 4282 +3272 48 4281 4283 +3273 48 4284 4285 +3274 48 4284 4286 +3275 48 4287 4288 +3276 48 4287 4289 +3277 48 4290 4291 +3278 48 4290 4292 +3279 48 4293 4294 +3280 48 4293 4295 +3281 48 4296 4297 +3282 48 4296 4298 +3283 48 4299 4300 +3284 48 4299 4301 +3285 48 4302 4303 +3286 48 4302 4304 +3287 48 4305 4306 +3288 48 4305 4307 +3289 48 4308 4309 +3290 48 4308 4310 +3291 48 4311 4312 +3292 48 4311 4313 +3293 48 4314 4315 +3294 48 4314 4316 +3295 48 4317 4318 +3296 48 4317 4319 +3297 48 4320 4321 +3298 48 4320 4322 +3299 48 4323 4324 +3300 48 4323 4325 +3301 48 4326 4327 +3302 48 4326 4328 +3303 48 4329 4330 +3304 48 4329 4331 +3305 48 4332 4333 +3306 48 4332 4334 +3307 48 4335 4336 +3308 48 4335 4337 +3309 48 4338 4339 +3310 48 4338 4340 +3311 48 4341 4342 +3312 48 4341 4343 +3313 48 4344 4345 +3314 48 4344 4346 +3315 48 4347 4348 +3316 48 4347 4349 +3317 48 4350 4351 +3318 48 4350 4352 +3319 48 4353 4354 +3320 48 4353 4355 +3321 48 4356 4357 +3322 48 4356 4358 +3323 48 4359 4360 +3324 48 4359 4361 +3325 48 4362 4363 +3326 48 4362 4364 +3327 48 4365 4366 +3328 48 4365 4367 +3329 48 4368 4369 +3330 48 4368 4370 +3331 48 4371 4372 +3332 48 4371 4373 +3333 48 4374 4375 +3334 48 4374 4376 +3335 48 4377 4378 +3336 48 4377 4379 +3337 48 4380 4381 +3338 48 4380 4382 +3339 48 4383 4384 +3340 48 4383 4385 +3341 48 4386 4387 +3342 48 4386 4388 +3343 48 4389 4390 +3344 48 4389 4391 +3345 48 4392 4393 +3346 48 4392 4394 +3347 48 4395 4396 +3348 48 4395 4397 +3349 48 4398 4399 +3350 48 4398 4400 +3351 48 4401 4402 +3352 48 4401 4403 +3353 48 4404 4405 +3354 48 4404 4406 +3355 48 4407 4408 +3356 48 4407 4409 +3357 48 4410 4411 +3358 48 4410 4412 +3359 48 4413 4414 +3360 48 4413 4415 +3361 48 4416 4417 +3362 48 4416 4418 +3363 48 4419 4420 +3364 48 4419 4421 +3365 48 4422 4423 +3366 48 4422 4424 +3367 48 4425 4426 +3368 48 4425 4427 +3369 48 4428 4429 +3370 48 4428 4430 +3371 48 4431 4432 +3372 48 4431 4433 +3373 48 4434 4435 +3374 48 4434 4436 +3375 48 4437 4438 +3376 48 4437 4439 +3377 48 4440 4441 +3378 48 4440 4442 +3379 48 4443 4444 +3380 48 4443 4445 +3381 48 4446 4447 +3382 48 4446 4448 +3383 48 4449 4450 +3384 48 4449 4451 +3385 48 4452 4453 +3386 48 4452 4454 +3387 48 4455 4456 +3388 48 4455 4457 +3389 48 4458 4459 +3390 48 4458 4460 +3391 48 4461 4462 +3392 48 4461 4463 +3393 48 4464 4465 +3394 48 4464 4466 +3395 48 4467 4468 +3396 48 4467 4469 +3397 48 4470 4471 +3398 48 4470 4472 +3399 48 4473 4474 +3400 48 4473 4475 +3401 48 4476 4477 +3402 48 4476 4478 +3403 48 4479 4480 +3404 48 4479 4481 +3405 48 4482 4483 +3406 48 4482 4484 +3407 48 4485 4486 +3408 48 4485 4487 +3409 48 4488 4489 +3410 48 4488 4490 +3411 48 4491 4492 +3412 48 4491 4493 +3413 48 4494 4495 +3414 48 4494 4496 +3415 48 4497 4498 +3416 48 4497 4499 +3417 48 4500 4501 +3418 48 4500 4502 +3419 48 4503 4504 +3420 48 4503 4505 +3421 48 4506 4507 +3422 48 4506 4508 +3423 48 4509 4510 +3424 48 4509 4511 +3425 48 4512 4513 +3426 48 4512 4514 +3427 48 4515 4516 +3428 48 4515 4517 +3429 48 4518 4519 +3430 48 4518 4520 +3431 48 4521 4522 +3432 48 4521 4523 +3433 48 4524 4525 +3434 48 4524 4526 +3435 48 4527 4528 +3436 48 4527 4529 +3437 48 4530 4531 +3438 48 4530 4532 +3439 48 4533 4534 +3440 48 4533 4535 +3441 48 4536 4537 +3442 48 4536 4538 +3443 48 4539 4540 +3444 48 4539 4541 +3445 48 4542 4543 +3446 48 4542 4544 +3447 48 4545 4546 +3448 48 4545 4547 +3449 48 4548 4549 +3450 48 4548 4550 +3451 48 4551 4552 +3452 48 4551 4553 +3453 48 4554 4555 +3454 48 4554 4556 +3455 48 4557 4558 +3456 48 4557 4559 +3457 48 4560 4561 +3458 48 4560 4562 +3459 48 4563 4564 +3460 48 4563 4565 +3461 48 4566 4567 +3462 48 4566 4568 +3463 48 4569 4570 +3464 48 4569 4571 +3465 48 4572 4573 +3466 48 4572 4574 +3467 48 4575 4576 +3468 48 4575 4577 +3469 48 4578 4579 +3470 48 4578 4580 +3471 48 4581 4582 +3472 48 4581 4583 +3473 48 4584 4585 +3474 48 4584 4586 +3475 48 4587 4588 +3476 48 4587 4589 +3477 48 4590 4591 +3478 48 4590 4592 +3479 48 4593 4594 +3480 48 4593 4595 +3481 48 4596 4597 +3482 48 4596 4598 +3483 48 4599 4600 +3484 48 4599 4601 +3485 48 4602 4603 +3486 48 4602 4604 +3487 48 4605 4606 +3488 48 4605 4607 +3489 48 4608 4609 +3490 48 4608 4610 +3491 48 4611 4612 +3492 48 4611 4613 +3493 48 4614 4615 +3494 48 4614 4616 +3495 48 4617 4618 +3496 48 4617 4619 +3497 48 4620 4621 +3498 48 4620 4622 +3499 48 4623 4624 +3500 48 4623 4625 +3501 48 4626 4627 +3502 48 4626 4628 +3503 48 4629 4630 +3504 48 4629 4631 +3505 48 4632 4633 +3506 48 4632 4634 +3507 48 4635 4636 +3508 48 4635 4637 +3509 48 4638 4639 +3510 48 4638 4640 +3511 48 4641 4642 +3512 48 4641 4643 +3513 48 4644 4645 +3514 48 4644 4646 +3515 48 4647 4648 +3516 48 4647 4649 +3517 48 4650 4651 +3518 48 4650 4652 +3519 48 4653 4654 +3520 48 4653 4655 +3521 48 4656 4657 +3522 48 4656 4658 +3523 48 4659 4660 +3524 48 4659 4661 +3525 48 4662 4663 +3526 48 4662 4664 +3527 48 4665 4666 +3528 48 4665 4667 +3529 48 4668 4669 +3530 48 4668 4670 +3531 48 4671 4672 +3532 48 4671 4673 +3533 48 4674 4675 +3534 48 4674 4676 +3535 48 4677 4678 +3536 48 4677 4679 +3537 48 4680 4681 +3538 48 4680 4682 +3539 48 4683 4684 +3540 48 4683 4685 +3541 48 4686 4687 +3542 48 4686 4688 +3543 48 4689 4690 +3544 48 4689 4691 +3545 48 4692 4693 +3546 48 4692 4694 +3547 48 4695 4696 +3548 48 4695 4697 +3549 48 4698 4699 +3550 48 4698 4700 +3551 48 4701 4702 +3552 48 4701 4703 +3553 48 4704 4705 +3554 48 4704 4706 +3555 48 4707 4708 +3556 48 4707 4709 +3557 48 4710 4711 +3558 48 4710 4712 +3559 48 4713 4714 +3560 48 4713 4715 +3561 48 4716 4717 +3562 48 4716 4718 +3563 48 4719 4720 +3564 48 4719 4721 +3565 48 4722 4723 +3566 48 4722 4724 +3567 48 4725 4726 +3568 48 4725 4727 +3569 48 4728 4729 +3570 48 4728 4730 +3571 48 4731 4732 +3572 48 4731 4733 +3573 48 4734 4735 +3574 48 4734 4736 +3575 48 4737 4738 +3576 48 4737 4739 +3577 48 4740 4741 +3578 48 4740 4742 +3579 48 4743 4744 +3580 48 4743 4745 +3581 48 4746 4747 +3582 48 4746 4748 +3583 48 4749 4750 +3584 48 4749 4751 +3585 48 4752 4753 +3586 48 4752 4754 +3587 48 4755 4756 +3588 48 4755 4757 +3589 48 4758 4759 +3590 48 4758 4760 +3591 48 4761 4762 +3592 48 4761 4763 +3593 48 4764 4765 +3594 48 4764 4766 +3595 48 4767 4768 +3596 48 4767 4769 +3597 48 4770 4771 +3598 48 4770 4772 +3599 48 4773 4774 +3600 48 4773 4775 +3601 48 4776 4777 +3602 48 4776 4778 +3603 48 4779 4780 +3604 48 4779 4781 +3605 48 4782 4783 +3606 48 4782 4784 +3607 48 4785 4786 +3608 48 4785 4787 +3609 48 4788 4789 +3610 48 4788 4790 +3611 48 4791 4792 +3612 48 4791 4793 +3613 48 4794 4795 +3614 48 4794 4796 +3615 48 4797 4798 +3616 48 4797 4799 +3617 48 4800 4801 +3618 48 4800 4802 +3619 48 4803 4804 +3620 48 4803 4805 +3621 48 4806 4807 +3622 48 4806 4808 +3623 48 4809 4810 +3624 48 4809 4811 +3625 48 4812 4813 +3626 48 4812 4814 +3627 48 4815 4816 +3628 48 4815 4817 +3629 48 4818 4819 +3630 48 4818 4820 +3631 48 4821 4822 +3632 48 4821 4823 +3633 48 4824 4825 +3634 48 4824 4826 +3635 48 4827 4828 +3636 48 4827 4829 +3637 48 4830 4831 +3638 48 4830 4832 +3639 48 4833 4834 +3640 48 4833 4835 +3641 48 4836 4837 +3642 48 4836 4838 +3643 48 4839 4840 +3644 48 4839 4841 +3645 48 4842 4843 +3646 48 4842 4844 +3647 48 4845 4846 +3648 48 4845 4847 +3649 48 4848 4849 +3650 48 4848 4850 +3651 48 4851 4852 +3652 48 4851 4853 +3653 48 4854 4855 +3654 48 4854 4856 +3655 48 4857 4858 +3656 48 4857 4859 +3657 48 4860 4861 +3658 48 4860 4862 +3659 48 4863 4864 +3660 48 4863 4865 +3661 48 4866 4867 +3662 48 4866 4868 +3663 48 4869 4870 +3664 48 4869 4871 +3665 48 4872 4873 +3666 48 4872 4874 +3667 48 4875 4876 +3668 48 4875 4877 +3669 48 4878 4879 +3670 48 4878 4880 +3671 48 4881 4882 +3672 48 4881 4883 +3673 48 4884 4885 +3674 48 4884 4886 +3675 48 4887 4888 +3676 48 4887 4889 +3677 48 4890 4891 +3678 48 4890 4892 +3679 48 4893 4894 +3680 48 4893 4895 +3681 48 4896 4897 +3682 48 4896 4898 +3683 48 4899 4900 +3684 48 4899 4901 +3685 48 4902 4903 +3686 48 4902 4904 +3687 48 4905 4906 +3688 48 4905 4907 +3689 48 4908 4909 +3690 48 4908 4910 +3691 48 4911 4912 +3692 48 4911 4913 +3693 48 4914 4915 +3694 48 4914 4916 +3695 48 4917 4918 +3696 48 4917 4919 +3697 48 4920 4921 +3698 48 4920 4922 +3699 48 4923 4924 +3700 48 4923 4925 +3701 48 4926 4927 +3702 48 4926 4928 +3703 48 4929 4930 +3704 48 4929 4931 +3705 48 4932 4933 +3706 48 4932 4934 +3707 48 4935 4936 +3708 48 4935 4937 +3709 48 4938 4939 +3710 48 4938 4940 +3711 48 4941 4942 +3712 48 4941 4943 +3713 48 4944 4945 +3714 48 4944 4946 +3715 48 4947 4948 +3716 48 4947 4949 +3717 48 4950 4951 +3718 48 4950 4952 +3719 48 4953 4954 +3720 48 4953 4955 +3721 48 4956 4957 +3722 48 4956 4958 +3723 48 4959 4960 +3724 48 4959 4961 +3725 48 4962 4963 +3726 48 4962 4964 +3727 48 4965 4966 +3728 48 4965 4967 +3729 48 4968 4969 +3730 48 4968 4970 +3731 48 4971 4972 +3732 48 4971 4973 +3733 48 4974 4975 +3734 48 4974 4976 +3735 48 4977 4978 +3736 48 4977 4979 +3737 48 4980 4981 +3738 48 4980 4982 +3739 48 4983 4984 +3740 48 4983 4985 +3741 48 4986 4987 +3742 48 4986 4988 +3743 48 4989 4990 +3744 48 4989 4991 +3745 48 4992 4993 +3746 48 4992 4994 +3747 48 4995 4996 +3748 48 4995 4997 +3749 48 4998 4999 +3750 48 4998 5000 +3751 48 5001 5002 +3752 48 5001 5003 +3753 48 5004 5005 +3754 48 5004 5006 +3755 48 5007 5008 +3756 48 5007 5009 +3757 48 5010 5011 +3758 48 5010 5012 +3759 48 5013 5014 +3760 48 5013 5015 +3761 48 5016 5017 +3762 48 5016 5018 +3763 48 5019 5020 +3764 48 5019 5021 +3765 48 5022 5023 +3766 48 5022 5024 +3767 48 5025 5026 +3768 48 5025 5027 +3769 48 5028 5029 +3770 48 5028 5030 +3771 48 5031 5032 +3772 48 5031 5033 +3773 48 5034 5035 +3774 48 5034 5036 +3775 48 5037 5038 +3776 48 5037 5039 +3777 48 5040 5041 +3778 48 5040 5042 +3779 48 5043 5044 +3780 48 5043 5045 +3781 48 5046 5047 +3782 48 5046 5048 +3783 48 5049 5050 +3784 48 5049 5051 +3785 48 5052 5053 +3786 48 5052 5054 +3787 48 5055 5056 +3788 48 5055 5057 +3789 48 5058 5059 +3790 48 5058 5060 +3791 48 5061 5062 +3792 48 5061 5063 +3793 48 5064 5065 +3794 48 5064 5066 +3795 48 5067 5068 +3796 48 5067 5069 +3797 48 5070 5071 +3798 48 5070 5072 +3799 48 5073 5074 +3800 48 5073 5075 +3801 48 5076 5077 +3802 48 5076 5078 +3803 48 5079 5080 +3804 48 5079 5081 +3805 48 5082 5083 +3806 48 5082 5084 +3807 48 5085 5086 +3808 48 5085 5087 +3809 48 5088 5089 +3810 48 5088 5090 +3811 48 5091 5092 +3812 48 5091 5093 +3813 48 5094 5095 +3814 48 5094 5096 +3815 48 5097 5098 +3816 48 5097 5099 +3817 48 5100 5101 +3818 48 5100 5102 +3819 48 5103 5104 +3820 48 5103 5105 +3821 48 5106 5107 +3822 48 5106 5108 +3823 48 5109 5110 +3824 48 5109 5111 +3825 48 5112 5113 +3826 48 5112 5114 +3827 48 5115 5116 +3828 48 5115 5117 +3829 48 5118 5119 +3830 48 5118 5120 +3831 48 5121 5122 +3832 48 5121 5123 +3833 48 5124 5125 +3834 48 5124 5126 +3835 48 5127 5128 +3836 48 5127 5129 +3837 48 5130 5131 +3838 48 5130 5132 +3839 48 5133 5134 +3840 48 5133 5135 +3841 48 5136 5137 +3842 48 5136 5138 +3843 48 5139 5140 +3844 48 5139 5141 +3845 48 5142 5143 +3846 48 5142 5144 +3847 48 5145 5146 +3848 48 5145 5147 +3849 48 5148 5149 +3850 48 5148 5150 +3851 48 5151 5152 +3852 48 5151 5153 +3853 48 5154 5155 +3854 48 5154 5156 +3855 48 5157 5158 +3856 48 5157 5159 +3857 48 5160 5161 +3858 48 5160 5162 +3859 48 5163 5164 +3860 48 5163 5165 +3861 48 5166 5167 +3862 48 5166 5168 +3863 48 5169 5170 +3864 48 5169 5171 +3865 48 5172 5173 +3866 48 5172 5174 +3867 48 5175 5176 +3868 48 5175 5177 +3869 48 5178 5179 +3870 48 5178 5180 +3871 48 5181 5182 +3872 48 5181 5183 +3873 48 5184 5185 +3874 48 5184 5186 +3875 48 5187 5188 +3876 48 5187 5189 +3877 48 5190 5191 +3878 48 5190 5192 +3879 48 5193 5194 +3880 48 5193 5195 +3881 48 5196 5197 +3882 48 5196 5198 +3883 48 5199 5200 +3884 48 5199 5201 +3885 48 5202 5203 +3886 48 5202 5204 +3887 48 5205 5206 +3888 48 5205 5207 +3889 48 5208 5209 +3890 48 5208 5210 +3891 48 5211 5212 +3892 48 5211 5213 +3893 48 5214 5215 +3894 48 5214 5216 +3895 48 5217 5218 +3896 48 5217 5219 +3897 48 5220 5221 +3898 48 5220 5222 +3899 48 5223 5224 +3900 48 5223 5225 +3901 48 5226 5227 +3902 48 5226 5228 +3903 48 5229 5230 +3904 48 5229 5231 +3905 48 5232 5233 +3906 48 5232 5234 +3907 48 5235 5236 +3908 48 5235 5237 +3909 48 5238 5239 +3910 48 5238 5240 +3911 48 5241 5242 +3912 48 5241 5243 +3913 48 5244 5245 +3914 48 5244 5246 +3915 48 5247 5248 +3916 48 5247 5249 +3917 48 5250 5251 +3918 48 5250 5252 +3919 48 5253 5254 +3920 48 5253 5255 +3921 48 5256 5257 +3922 48 5256 5258 +3923 48 5259 5260 +3924 48 5259 5261 +3925 48 5262 5263 +3926 48 5262 5264 +3927 48 5265 5266 +3928 48 5265 5267 +3929 48 5268 5269 +3930 48 5268 5270 +3931 48 5271 5272 +3932 48 5271 5273 +3933 48 5274 5275 +3934 48 5274 5276 +3935 48 5277 5278 +3936 48 5277 5279 +3937 48 5280 5281 +3938 48 5280 5282 +3939 48 5283 5284 +3940 48 5283 5285 +3941 48 5286 5287 +3942 48 5286 5288 +3943 48 5289 5290 +3944 48 5289 5291 +3945 48 5292 5293 +3946 48 5292 5294 +3947 48 5295 5296 +3948 48 5295 5297 +3949 48 5298 5299 +3950 48 5298 5300 +3951 48 5301 5302 +3952 48 5301 5303 +3953 48 5304 5305 +3954 48 5304 5306 +3955 48 5307 5308 +3956 48 5307 5309 +3957 48 5310 5311 +3958 48 5310 5312 +3959 48 5313 5314 +3960 48 5313 5315 +3961 48 5316 5317 +3962 48 5316 5318 +3963 48 5319 5320 +3964 48 5319 5321 +3965 48 5322 5323 +3966 48 5322 5324 +3967 48 5325 5326 +3968 48 5325 5327 +3969 48 5328 5329 +3970 48 5328 5330 +3971 48 5331 5332 +3972 48 5331 5333 +3973 48 5334 5335 +3974 48 5334 5336 +3975 48 5337 5338 +3976 48 5337 5339 +3977 48 5340 5341 +3978 48 5340 5342 +3979 48 5343 5344 +3980 48 5343 5345 +3981 48 5346 5347 +3982 48 5346 5348 +3983 48 5349 5350 +3984 48 5349 5351 +3985 48 5352 5353 +3986 48 5352 5354 +3987 48 5355 5356 +3988 48 5355 5357 +3989 48 5358 5359 +3990 48 5358 5360 +3991 48 5361 5362 +3992 48 5361 5363 +3993 48 5364 5365 +3994 48 5364 5366 +3995 48 5367 5368 +3996 48 5367 5369 +3997 48 5370 5371 +3998 48 5370 5372 +3999 48 5373 5374 +4000 48 5373 5375 +4001 48 5376 5377 +4002 48 5376 5378 +4003 48 5379 5380 +4004 48 5379 5381 +4005 48 5382 5383 +4006 48 5382 5384 +4007 48 5385 5386 +4008 48 5385 5387 +4009 48 5388 5389 +4010 48 5388 5390 +4011 48 5391 5392 +4012 48 5391 5393 +4013 48 5394 5395 +4014 48 5394 5396 +4015 48 5397 5398 +4016 48 5397 5399 +4017 48 5400 5401 +4018 48 5400 5402 +4019 48 5403 5404 +4020 48 5403 5405 +4021 48 5406 5407 +4022 48 5406 5408 +4023 48 5409 5410 +4024 48 5409 5411 +4025 48 5412 5413 +4026 48 5412 5414 +4027 48 5415 5416 +4028 48 5415 5417 +4029 48 5418 5419 +4030 48 5418 5420 +4031 48 5421 5422 +4032 48 5421 5423 +4033 48 5424 5425 +4034 48 5424 5426 +4035 48 5427 5428 +4036 48 5427 5429 +4037 48 5430 5431 +4038 48 5430 5432 +4039 48 5433 5434 +4040 48 5433 5435 +4041 48 5436 5437 +4042 48 5436 5438 +4043 48 5439 5440 +4044 48 5439 5441 +4045 48 5442 5443 +4046 48 5442 5444 +4047 48 5445 5446 +4048 48 5445 5447 +4049 48 5448 5449 +4050 48 5448 5450 +4051 48 5451 5452 +4052 48 5451 5453 +4053 48 5454 5455 +4054 48 5454 5456 +4055 48 5457 5458 +4056 48 5457 5459 +4057 48 5460 5461 +4058 48 5460 5462 +4059 48 5463 5464 +4060 48 5463 5465 +4061 48 5466 5467 +4062 48 5466 5468 +4063 48 5469 5470 +4064 48 5469 5471 +4065 48 5472 5473 +4066 48 5472 5474 +4067 48 5475 5476 +4068 48 5475 5477 +4069 48 5478 5479 +4070 48 5478 5480 +4071 48 5481 5482 +4072 48 5481 5483 +4073 48 5484 5485 +4074 48 5484 5486 +4075 48 5487 5488 +4076 48 5487 5489 +4077 48 5490 5491 +4078 48 5490 5492 +4079 48 5493 5494 +4080 48 5493 5495 +4081 48 5496 5497 +4082 48 5496 5498 +4083 48 5499 5500 +4084 48 5499 5501 +4085 48 5502 5503 +4086 48 5502 5504 +4087 48 5505 5506 +4088 48 5505 5507 +4089 48 5508 5509 +4090 48 5508 5510 +4091 48 5511 5512 +4092 48 5511 5513 +4093 48 5514 5515 +4094 48 5514 5516 +4095 48 5517 5518 +4096 48 5517 5519 +4097 48 5520 5521 +4098 48 5520 5522 +4099 48 5523 5524 +4100 48 5523 5525 +4101 48 5526 5527 +4102 48 5526 5528 +4103 48 5529 5530 +4104 48 5529 5531 +4105 48 5532 5533 +4106 48 5532 5534 +4107 48 5535 5536 +4108 48 5535 5537 +4109 48 5538 5539 +4110 48 5538 5540 +4111 48 5541 5542 +4112 48 5541 5543 +4113 48 5544 5545 +4114 48 5544 5546 +4115 48 5547 5548 +4116 48 5547 5549 +4117 48 5550 5551 +4118 48 5550 5552 +4119 48 5553 5554 +4120 48 5553 5555 +4121 48 5556 5557 +4122 48 5556 5558 +4123 48 5559 5560 +4124 48 5559 5561 +4125 48 5562 5563 +4126 48 5562 5564 +4127 48 5565 5566 +4128 48 5565 5567 +4129 48 5568 5569 +4130 48 5568 5570 +4131 48 5571 5572 +4132 48 5571 5573 +4133 48 5574 5575 +4134 48 5574 5576 +4135 48 5577 5578 +4136 48 5577 5579 +4137 48 5580 5581 +4138 48 5580 5582 +4139 48 5583 5584 +4140 48 5583 5585 +4141 48 5586 5587 +4142 48 5586 5588 +4143 48 5589 5590 +4144 48 5589 5591 +4145 48 5592 5593 +4146 48 5592 5594 +4147 48 5595 5596 +4148 48 5595 5597 +4149 48 5598 5599 +4150 48 5598 5600 +4151 48 5601 5602 +4152 48 5601 5603 +4153 48 5604 5605 +4154 48 5604 5606 +4155 48 5607 5608 +4156 48 5607 5609 +4157 48 5610 5611 +4158 48 5610 5612 +4159 48 5613 5614 +4160 48 5613 5615 +4161 48 5616 5617 +4162 48 5616 5618 +4163 48 5619 5620 +4164 48 5619 5621 +4165 48 5622 5623 +4166 48 5622 5624 +4167 48 5625 5626 +4168 48 5625 5627 +4169 48 5628 5629 +4170 48 5628 5630 +4171 48 5631 5632 +4172 48 5631 5633 +4173 48 5634 5635 +4174 48 5634 5636 +4175 48 5637 5638 +4176 48 5637 5639 +4177 48 5640 5641 +4178 48 5640 5642 +4179 48 5643 5644 +4180 48 5643 5645 +4181 48 5646 5647 +4182 48 5646 5648 +4183 48 5649 5650 +4184 48 5649 5651 +4185 48 5652 5653 +4186 48 5652 5654 +4187 48 5655 5656 +4188 48 5655 5657 +4189 48 5658 5659 +4190 48 5658 5660 +4191 48 5661 5662 +4192 48 5661 5663 +4193 48 5664 5665 +4194 48 5664 5666 +4195 48 5667 5668 +4196 48 5667 5669 +4197 48 5670 5671 +4198 48 5670 5672 +4199 48 5673 5674 +4200 48 5673 5675 +4201 48 5676 5677 +4202 48 5676 5678 +4203 48 5679 5680 +4204 48 5679 5681 +4205 48 5682 5683 +4206 48 5682 5684 +4207 48 5685 5686 +4208 48 5685 5687 +4209 48 5688 5689 +4210 48 5688 5690 +4211 48 5691 5692 +4212 48 5691 5693 +4213 48 5694 5695 +4214 48 5694 5696 +4215 48 5697 5698 +4216 48 5697 5699 +4217 48 5700 5701 +4218 48 5700 5702 +4219 48 5703 5704 +4220 48 5703 5705 +4221 48 5706 5707 +4222 48 5706 5708 +4223 48 5709 5710 +4224 48 5709 5711 +4225 48 5712 5713 +4226 48 5712 5714 +4227 48 5715 5716 +4228 48 5715 5717 +4229 48 5718 5719 +4230 48 5718 5720 +4231 48 5721 5722 +4232 48 5721 5723 +4233 48 5724 5725 +4234 48 5724 5726 +4235 48 5727 5728 +4236 48 5727 5729 +4237 48 5730 5731 +4238 48 5730 5732 +4239 48 5733 5734 +4240 48 5733 5735 +4241 48 5736 5737 +4242 48 5736 5738 +4243 48 5739 5740 +4244 48 5739 5741 +4245 48 5742 5743 +4246 48 5742 5744 +4247 48 5745 5746 +4248 48 5745 5747 +4249 48 5748 5749 +4250 48 5748 5750 +4251 48 5751 5752 +4252 48 5751 5753 +4253 48 5754 5755 +4254 48 5754 5756 +4255 48 5757 5758 +4256 48 5757 5759 +4257 48 5760 5761 +4258 48 5760 5762 +4259 48 5763 5764 +4260 48 5763 5765 +4261 48 5766 5767 +4262 48 5766 5768 +4263 48 5769 5770 +4264 48 5769 5771 +4265 48 5772 5773 +4266 48 5772 5774 +4267 48 5775 5776 +4268 48 5775 5777 +4269 48 5778 5779 +4270 48 5778 5780 +4271 48 5781 5782 +4272 48 5781 5783 +4273 48 5784 5785 +4274 48 5784 5786 +4275 48 5787 5788 +4276 48 5787 5789 +4277 48 5790 5791 +4278 48 5790 5792 +4279 48 5793 5794 +4280 48 5793 5795 +4281 48 5796 5797 +4282 48 5796 5798 +4283 48 5799 5800 +4284 48 5799 5801 +4285 48 5802 5803 +4286 48 5802 5804 +4287 48 5805 5806 +4288 48 5805 5807 +4289 48 5808 5809 +4290 48 5808 5810 +4291 48 5811 5812 +4292 48 5811 5813 +4293 48 5814 5815 +4294 48 5814 5816 +4295 48 5817 5818 +4296 48 5817 5819 +4297 48 5820 5821 +4298 48 5820 5822 +4299 48 5823 5824 +4300 48 5823 5825 +4301 48 5826 5827 +4302 48 5826 5828 +4303 48 5829 5830 +4304 48 5829 5831 +4305 48 5832 5833 +4306 48 5832 5834 +4307 48 5835 5836 +4308 48 5835 5837 +4309 48 5838 5839 +4310 48 5838 5840 +4311 48 5841 5842 +4312 48 5841 5843 +4313 48 5844 5845 +4314 48 5844 5846 +4315 48 5847 5848 +4316 48 5847 5849 +4317 48 5850 5851 +4318 48 5850 5852 +4319 48 5853 5854 +4320 48 5853 5855 +4321 48 5856 5857 +4322 48 5856 5858 +4323 48 5859 5860 +4324 48 5859 5861 +4325 48 5862 5863 +4326 48 5862 5864 +4327 48 5865 5866 +4328 48 5865 5867 +4329 48 5868 5869 +4330 48 5868 5870 +4331 48 5871 5872 +4332 48 5871 5873 +4333 48 5874 5875 +4334 48 5874 5876 +4335 48 5877 5878 +4336 48 5877 5879 +4337 48 5880 5881 +4338 48 5880 5882 +4339 48 5883 5884 +4340 48 5883 5885 +4341 48 5886 5887 +4342 48 5886 5888 +4343 48 5889 5890 +4344 48 5889 5891 +4345 48 5892 5893 +4346 48 5892 5894 +4347 48 5895 5896 +4348 48 5895 5897 +4349 48 5898 5899 +4350 48 5898 5900 +4351 48 5901 5902 +4352 48 5901 5903 +4353 48 5904 5905 +4354 48 5904 5906 +4355 48 5907 5908 +4356 48 5907 5909 +4357 48 5910 5911 +4358 48 5910 5912 +4359 48 5913 5914 +4360 48 5913 5915 +4361 48 5916 5917 +4362 48 5916 5918 +4363 48 5919 5920 +4364 48 5919 5921 +4365 48 5922 5923 +4366 48 5922 5924 +4367 48 5925 5926 +4368 48 5925 5927 +4369 48 5928 5929 +4370 48 5928 5930 +4371 48 5931 5932 +4372 48 5931 5933 +4373 48 5934 5935 +4374 48 5934 5936 +4375 48 5937 5938 +4376 48 5937 5939 +4377 48 5940 5941 +4378 48 5940 5942 +4379 48 5943 5944 +4380 48 5943 5945 +4381 48 5946 5947 +4382 48 5946 5948 +4383 48 5949 5950 +4384 48 5949 5951 +4385 48 5952 5953 +4386 48 5952 5954 +4387 48 5955 5956 +4388 48 5955 5957 +4389 48 5958 5959 +4390 48 5958 5960 +4391 48 5961 5962 +4392 48 5961 5963 +4393 48 5964 5965 +4394 48 5964 5966 +4395 48 5967 5968 +4396 48 5967 5969 +4397 48 5970 5971 +4398 48 5970 5972 +4399 48 5973 5974 +4400 48 5973 5975 +4401 48 5976 5977 +4402 48 5976 5978 +4403 48 5979 5980 +4404 48 5979 5981 +4405 48 5982 5983 +4406 48 5982 5984 +4407 48 5985 5986 +4408 48 5985 5987 +4409 48 5988 5989 +4410 48 5988 5990 +4411 48 5991 5992 +4412 48 5991 5993 +4413 48 5994 5995 +4414 48 5994 5996 +4415 48 5997 5998 +4416 48 5997 5999 +4417 48 6000 6001 +4418 48 6000 6002 +4419 48 6003 6004 +4420 48 6003 6005 +4421 48 6006 6007 +4422 48 6006 6008 +4423 48 6009 6010 +4424 48 6009 6011 +4425 48 6012 6013 +4426 48 6012 6014 +4427 48 6015 6016 +4428 48 6015 6017 +4429 48 6018 6019 +4430 48 6018 6020 +4431 48 6021 6022 +4432 48 6021 6023 +4433 48 6024 6025 +4434 48 6024 6026 +4435 48 6027 6028 +4436 48 6027 6029 +4437 48 6030 6031 +4438 48 6030 6032 +4439 48 6033 6034 +4440 48 6033 6035 +4441 48 6036 6037 +4442 48 6036 6038 +4443 48 6039 6040 +4444 48 6039 6041 +4445 48 6042 6043 +4446 48 6042 6044 +4447 48 6045 6046 +4448 48 6045 6047 +4449 48 6048 6049 +4450 48 6048 6050 +4451 48 6051 6052 +4452 48 6051 6053 +4453 48 6054 6055 +4454 48 6054 6056 +4455 48 6057 6058 +4456 48 6057 6059 +4457 48 6060 6061 +4458 48 6060 6062 +4459 48 6063 6064 +4460 48 6063 6065 +4461 48 6066 6067 +4462 48 6066 6068 +4463 48 6069 6070 +4464 48 6069 6071 +4465 48 6072 6073 +4466 48 6072 6074 +4467 48 6075 6076 +4468 48 6075 6077 +4469 48 6078 6079 +4470 48 6078 6080 +4471 48 6081 6082 +4472 48 6081 6083 +4473 48 6084 6085 +4474 48 6084 6086 +4475 48 6087 6088 +4476 48 6087 6089 +4477 48 6090 6091 +4478 48 6090 6092 +4479 48 6093 6094 +4480 48 6093 6095 +4481 48 6096 6097 +4482 48 6096 6098 +4483 48 6099 6100 +4484 48 6099 6101 +4485 48 6102 6103 +4486 48 6102 6104 +4487 48 6105 6106 +4488 48 6105 6107 +4489 48 6108 6109 +4490 48 6108 6110 +4491 48 6111 6112 +4492 48 6111 6113 +4493 48 6114 6115 +4494 48 6114 6116 +4495 48 6117 6118 +4496 48 6117 6119 +4497 48 6120 6121 +4498 48 6120 6122 +4499 48 6123 6124 +4500 48 6123 6125 +4501 48 6126 6127 +4502 48 6126 6128 +4503 48 6129 6130 +4504 48 6129 6131 +4505 48 6132 6133 +4506 48 6132 6134 +4507 48 6135 6136 +4508 48 6135 6137 +4509 48 6138 6139 +4510 48 6138 6140 +4511 48 6141 6142 +4512 48 6141 6143 +4513 48 6144 6145 +4514 48 6144 6146 +4515 48 6147 6148 +4516 48 6147 6149 +4517 48 6150 6151 +4518 48 6150 6152 +4519 48 6153 6154 +4520 48 6153 6155 +4521 48 6156 6157 +4522 48 6156 6158 +4523 48 6159 6160 +4524 48 6159 6161 +4525 48 6162 6163 +4526 48 6162 6164 +4527 48 6165 6166 +4528 48 6165 6167 +4529 48 6168 6169 +4530 48 6168 6170 +4531 48 6171 6172 +4532 48 6171 6173 +4533 48 6174 6175 +4534 48 6174 6176 +4535 48 6177 6178 +4536 48 6177 6179 +4537 48 6180 6181 +4538 48 6180 6182 +4539 48 6183 6184 +4540 48 6183 6185 +4541 48 6186 6187 +4542 48 6186 6188 +4543 48 6189 6190 +4544 48 6189 6191 +4545 48 6192 6193 +4546 48 6192 6194 +4547 48 6195 6196 +4548 48 6195 6197 +4549 48 6198 6199 +4550 48 6198 6200 +4551 48 6201 6202 +4552 48 6201 6203 +4553 48 6204 6205 +4554 48 6204 6206 +4555 48 6207 6208 +4556 48 6207 6209 +4557 48 6210 6211 +4558 48 6210 6212 +4559 48 6213 6214 +4560 48 6213 6215 +4561 48 6216 6217 +4562 48 6216 6218 +4563 48 6219 6220 +4564 48 6219 6221 +4565 48 6222 6223 +4566 48 6222 6224 +4567 48 6225 6226 +4568 48 6225 6227 +4569 48 6228 6229 +4570 48 6228 6230 +4571 48 6231 6232 +4572 48 6231 6233 +4573 48 6234 6235 +4574 48 6234 6236 +4575 48 6237 6238 +4576 48 6237 6239 +4577 48 6240 6241 +4578 48 6240 6242 +4579 48 6243 6244 +4580 48 6243 6245 +4581 48 6246 6247 +4582 48 6246 6248 +4583 48 6249 6250 +4584 48 6249 6251 +4585 48 6252 6253 +4586 48 6252 6254 +4587 48 6255 6256 +4588 48 6255 6257 +4589 48 6258 6259 +4590 48 6258 6260 +4591 48 6261 6262 +4592 48 6261 6263 +4593 48 6264 6265 +4594 48 6264 6266 +4595 48 6267 6268 +4596 48 6267 6269 +4597 48 6270 6271 +4598 48 6270 6272 +4599 48 6273 6274 +4600 48 6273 6275 +4601 48 6276 6277 +4602 48 6276 6278 +4603 48 6279 6280 +4604 48 6279 6281 +4605 48 6282 6283 +4606 48 6282 6284 +4607 48 6285 6286 +4608 48 6285 6287 +4609 48 6288 6289 +4610 48 6288 6290 +4611 48 6291 6292 +4612 48 6291 6293 +4613 48 6294 6295 +4614 48 6294 6296 +4615 48 6297 6298 +4616 48 6297 6299 +4617 48 6300 6301 +4618 48 6300 6302 +4619 48 6303 6304 +4620 48 6303 6305 +4621 48 6306 6307 +4622 48 6306 6308 +4623 48 6309 6310 +4624 48 6309 6311 +4625 48 6312 6313 +4626 48 6312 6314 +4627 48 6315 6316 +4628 48 6315 6317 +4629 48 6318 6319 +4630 48 6318 6320 +4631 48 6321 6322 +4632 48 6321 6323 +4633 48 6324 6325 +4634 48 6324 6326 +4635 48 6327 6328 +4636 48 6327 6329 +4637 48 6330 6331 +4638 48 6330 6332 +4639 48 6333 6334 +4640 48 6333 6335 +4641 48 6336 6337 +4642 48 6336 6338 +4643 48 6339 6340 +4644 48 6339 6341 +4645 48 6342 6343 +4646 48 6342 6344 +4647 48 6345 6346 +4648 48 6345 6347 +4649 48 6348 6349 +4650 48 6348 6350 +4651 48 6351 6352 +4652 48 6351 6353 +4653 48 6354 6355 +4654 48 6354 6356 +4655 48 6357 6358 +4656 48 6357 6359 +4657 48 6360 6361 +4658 48 6360 6362 +4659 48 6363 6364 +4660 48 6363 6365 +4661 48 6366 6367 +4662 48 6366 6368 +4663 48 6369 6370 +4664 48 6369 6371 +4665 48 6372 6373 +4666 48 6372 6374 +4667 48 6375 6376 +4668 48 6375 6377 +4669 48 6378 6379 +4670 48 6378 6380 +4671 48 6381 6382 +4672 48 6381 6383 +4673 48 6384 6385 +4674 48 6384 6386 +4675 48 6387 6388 +4676 48 6387 6389 +4677 48 6390 6391 +4678 48 6390 6392 +4679 48 6393 6394 +4680 48 6393 6395 +4681 48 6396 6397 +4682 48 6396 6398 +4683 48 6399 6400 +4684 48 6399 6401 +4685 48 6402 6403 +4686 48 6402 6404 +4687 48 6405 6406 +4688 48 6405 6407 +4689 48 6408 6409 +4690 48 6408 6410 +4691 48 6411 6412 +4692 48 6411 6413 +4693 48 6414 6415 +4694 48 6414 6416 +4695 48 6417 6418 +4696 48 6417 6419 +4697 48 6420 6421 +4698 48 6420 6422 +4699 48 6423 6424 +4700 48 6423 6425 +4701 48 6426 6427 +4702 48 6426 6428 +4703 48 6429 6430 +4704 48 6429 6431 +4705 48 6432 6433 +4706 48 6432 6434 +4707 48 6435 6436 +4708 48 6435 6437 +4709 48 6438 6439 +4710 48 6438 6440 +4711 48 6441 6442 +4712 48 6441 6443 +4713 48 6444 6445 +4714 48 6444 6446 +4715 48 6447 6448 +4716 48 6447 6449 +4717 48 6450 6451 +4718 48 6450 6452 +4719 48 6453 6454 +4720 48 6453 6455 +4721 48 6456 6457 +4722 48 6456 6458 +4723 48 6459 6460 +4724 48 6459 6461 +4725 48 6462 6463 +4726 48 6462 6464 +4727 48 6465 6466 +4728 48 6465 6467 +4729 48 6468 6469 +4730 48 6468 6470 +4731 48 6471 6472 +4732 48 6471 6473 +4733 48 6474 6475 +4734 48 6474 6476 +4735 48 6477 6478 +4736 48 6477 6479 +4737 48 6480 6481 +4738 48 6480 6482 +4739 48 6483 6484 +4740 48 6483 6485 +4741 48 6486 6487 +4742 48 6486 6488 +4743 48 6489 6490 +4744 48 6489 6491 +4745 48 6492 6493 +4746 48 6492 6494 +4747 48 6495 6496 +4748 48 6495 6497 +4749 48 6498 6499 +4750 48 6498 6500 +4751 48 6501 6502 +4752 48 6501 6503 +4753 48 6504 6505 +4754 48 6504 6506 +4755 48 6507 6508 +4756 48 6507 6509 +4757 48 6510 6511 +4758 48 6510 6512 +4759 48 6513 6514 +4760 48 6513 6515 +4761 48 6516 6517 +4762 48 6516 6518 +4763 48 6519 6520 +4764 48 6519 6521 +4765 48 6522 6523 +4766 48 6522 6524 +4767 48 6525 6526 +4768 48 6525 6527 +4769 48 6528 6529 +4770 48 6528 6530 +4771 48 6531 6532 +4772 48 6531 6533 +4773 48 6534 6535 +4774 48 6534 6536 +4775 48 6537 6538 +4776 48 6537 6539 +4777 48 6540 6541 +4778 48 6540 6542 +4779 48 6543 6544 +4780 48 6543 6545 +4781 48 6546 6547 +4782 48 6546 6548 +4783 48 6549 6550 +4784 48 6549 6551 +4785 48 6552 6553 +4786 48 6552 6554 +4787 48 6555 6556 +4788 48 6555 6557 +4789 48 6558 6559 +4790 48 6558 6560 +4791 48 6561 6562 +4792 48 6561 6563 +4793 48 6564 6565 +4794 48 6564 6566 +4795 48 6567 6568 +4796 48 6567 6569 +4797 48 6570 6571 +4798 48 6570 6572 +4799 48 6573 6574 +4800 48 6573 6575 +4801 48 6576 6577 +4802 48 6576 6578 +4803 48 6579 6580 +4804 48 6579 6581 +4805 48 6582 6583 +4806 48 6582 6584 +4807 48 6585 6586 +4808 48 6585 6587 +4809 48 6588 6589 +4810 48 6588 6590 +4811 48 6591 6592 +4812 48 6591 6593 +4813 48 6594 6595 +4814 48 6594 6596 +4815 48 6597 6598 +4816 48 6597 6599 +4817 48 6600 6601 +4818 48 6600 6602 +4819 48 6603 6604 +4820 48 6603 6605 +4821 48 6606 6607 +4822 48 6606 6608 +4823 48 6609 6610 +4824 48 6609 6611 +4825 48 6612 6613 +4826 48 6612 6614 +4827 48 6615 6616 +4828 48 6615 6617 +4829 48 6618 6619 +4830 48 6618 6620 +4831 48 6621 6622 +4832 48 6621 6623 +4833 48 6624 6625 +4834 48 6624 6626 +4835 48 6627 6628 +4836 48 6627 6629 +4837 48 6630 6631 +4838 48 6630 6632 +4839 48 6633 6634 +4840 48 6633 6635 +4841 48 6636 6637 +4842 48 6636 6638 +4843 48 6639 6640 +4844 48 6639 6641 +4845 48 6642 6643 +4846 48 6642 6644 +4847 48 6645 6646 +4848 48 6645 6647 +4849 48 6648 6649 +4850 48 6648 6650 +4851 48 6651 6652 +4852 48 6651 6653 +4853 48 6654 6655 +4854 48 6654 6656 +4855 48 6657 6658 +4856 48 6657 6659 +4857 48 6660 6661 +4858 48 6660 6662 +4859 48 6663 6664 +4860 48 6663 6665 +4861 48 6666 6667 +4862 48 6666 6668 +4863 48 6669 6670 +4864 48 6669 6671 +4865 48 6672 6673 +4866 48 6672 6674 +4867 48 6675 6676 +4868 48 6675 6677 +4869 48 6678 6679 +4870 48 6678 6680 +4871 48 6681 6682 +4872 48 6681 6683 +4873 48 6684 6685 +4874 48 6684 6686 +4875 48 6687 6688 +4876 48 6687 6689 +4877 48 6690 6691 +4878 48 6690 6692 +4879 48 6693 6694 +4880 48 6693 6695 +4881 48 6696 6697 +4882 48 6696 6698 +4883 48 6699 6700 +4884 48 6699 6701 +4885 48 6702 6703 +4886 48 6702 6704 +4887 48 6705 6706 +4888 48 6705 6707 +4889 48 6708 6709 +4890 48 6708 6710 +4891 48 6711 6712 +4892 48 6711 6713 +4893 48 6714 6715 +4894 48 6714 6716 +4895 48 6717 6718 +4896 48 6717 6719 +4897 48 6720 6721 +4898 48 6720 6722 +4899 48 6723 6724 +4900 48 6723 6725 +4901 48 6726 6727 +4902 48 6726 6728 +4903 48 6729 6730 +4904 48 6729 6731 +4905 48 6732 6733 +4906 48 6732 6734 +4907 48 6735 6736 +4908 48 6735 6737 +4909 48 6738 6739 +4910 48 6738 6740 +4911 48 6741 6742 +4912 48 6741 6743 +4913 48 6744 6745 +4914 48 6744 6746 +4915 48 6747 6748 +4916 48 6747 6749 +4917 48 6750 6751 +4918 48 6750 6752 +4919 48 6753 6754 +4920 48 6753 6755 +4921 48 6756 6757 +4922 48 6756 6758 +4923 48 6759 6760 +4924 48 6759 6761 +4925 48 6762 6763 +4926 48 6762 6764 +4927 48 6765 6766 +4928 48 6765 6767 +4929 48 6768 6769 +4930 48 6768 6770 +4931 48 6771 6772 +4932 48 6771 6773 +4933 48 6774 6775 +4934 48 6774 6776 +4935 48 6777 6778 +4936 48 6777 6779 +4937 48 6780 6781 +4938 48 6780 6782 +4939 48 6783 6784 +4940 48 6783 6785 +4941 48 6786 6787 +4942 48 6786 6788 +4943 48 6789 6790 +4944 48 6789 6791 +4945 48 6792 6793 +4946 48 6792 6794 +4947 48 6795 6796 +4948 48 6795 6797 +4949 48 6798 6799 +4950 48 6798 6800 +4951 48 6801 6802 +4952 48 6801 6803 +4953 48 6804 6805 +4954 48 6804 6806 +4955 48 6807 6808 +4956 48 6807 6809 +4957 48 6810 6811 +4958 48 6810 6812 +4959 48 6813 6814 +4960 48 6813 6815 +4961 48 6816 6817 +4962 48 6816 6818 +4963 48 6819 6820 +4964 48 6819 6821 +4965 48 6822 6823 +4966 48 6822 6824 +4967 48 6825 6826 +4968 48 6825 6827 +4969 48 6828 6829 +4970 48 6828 6830 +4971 48 6831 6832 +4972 48 6831 6833 +4973 48 6834 6835 +4974 48 6834 6836 +4975 48 6837 6838 +4976 48 6837 6839 +4977 48 6840 6841 +4978 48 6840 6842 +4979 48 6843 6844 +4980 48 6843 6845 +4981 48 6846 6847 +4982 48 6846 6848 +4983 48 6849 6850 +4984 48 6849 6851 +4985 48 6852 6853 +4986 48 6852 6854 +4987 48 6855 6856 +4988 48 6855 6857 +4989 48 6858 6859 +4990 48 6858 6860 +4991 48 6861 6862 +4992 48 6861 6863 +4993 48 6864 6865 +4994 48 6864 6866 +4995 48 6867 6868 +4996 48 6867 6869 +4997 48 6870 6871 +4998 48 6870 6872 +4999 48 6873 6874 +5000 48 6873 6875 +5001 48 6876 6877 +5002 48 6876 6878 +5003 48 6879 6880 +5004 48 6879 6881 +5005 48 6882 6883 +5006 48 6882 6884 +5007 48 6885 6886 +5008 48 6885 6887 +5009 48 6888 6889 +5010 48 6888 6890 +5011 48 6891 6892 +5012 48 6891 6893 +5013 48 6894 6895 +5014 48 6894 6896 +5015 48 6897 6898 +5016 48 6897 6899 +5017 48 6900 6901 +5018 48 6900 6902 +5019 48 6903 6904 +5020 48 6903 6905 +5021 48 6906 6907 +5022 48 6906 6908 +5023 48 6909 6910 +5024 48 6909 6911 +5025 48 6912 6913 +5026 48 6912 6914 +5027 48 6915 6916 +5028 48 6915 6917 +5029 48 6918 6919 +5030 48 6918 6920 +5031 48 6921 6922 +5032 48 6921 6923 +5033 48 6924 6925 +5034 48 6924 6926 +5035 48 6927 6928 +5036 48 6927 6929 +5037 48 6930 6931 +5038 48 6930 6932 +5039 48 6933 6934 +5040 48 6933 6935 +5041 48 6936 6937 +5042 48 6936 6938 +5043 48 6939 6940 +5044 48 6939 6941 +5045 48 6942 6943 +5046 48 6942 6944 +5047 48 6945 6946 +5048 48 6945 6947 +5049 48 6948 6949 +5050 48 6948 6950 +5051 48 6951 6952 +5052 48 6951 6953 +5053 48 6954 6955 +5054 48 6954 6956 +5055 48 6957 6958 +5056 48 6957 6959 +5057 48 6960 6961 +5058 48 6960 6962 +5059 48 6963 6964 +5060 48 6963 6965 +5061 48 6966 6967 +5062 48 6966 6968 +5063 48 6969 6970 +5064 48 6969 6971 +5065 48 6972 6973 +5066 48 6972 6974 +5067 48 6975 6976 +5068 48 6975 6977 +5069 48 6978 6979 +5070 48 6978 6980 +5071 48 6981 6982 +5072 48 6981 6983 +5073 48 6984 6985 +5074 48 6984 6986 +5075 48 6987 6988 +5076 48 6987 6989 +5077 48 6990 6991 +5078 48 6990 6992 +5079 48 6993 6994 +5080 48 6993 6995 +5081 48 6996 6997 +5082 48 6996 6998 +5083 48 6999 7000 +5084 48 6999 7001 +5085 48 7002 7003 +5086 48 7002 7004 +5087 48 7005 7006 +5088 48 7005 7007 +5089 48 7008 7009 +5090 48 7008 7010 +5091 48 7011 7012 +5092 48 7011 7013 +5093 48 7014 7015 +5094 48 7014 7016 +5095 48 7017 7018 +5096 48 7017 7019 +5097 48 7020 7021 +5098 48 7020 7022 +5099 48 7023 7024 +5100 48 7023 7025 +5101 48 7026 7027 +5102 48 7026 7028 +5103 48 7029 7030 +5104 48 7029 7031 +5105 48 7032 7033 +5106 48 7032 7034 +5107 48 7035 7036 +5108 48 7035 7037 +5109 48 7038 7039 +5110 48 7038 7040 +5111 48 7041 7042 +5112 48 7041 7043 +5113 48 7044 7045 +5114 48 7044 7046 +5115 48 7047 7048 +5116 48 7047 7049 +5117 48 7050 7051 +5118 48 7050 7052 +5119 48 7053 7054 +5120 48 7053 7055 +5121 48 7056 7057 +5122 48 7056 7058 +5123 48 7059 7060 +5124 48 7059 7061 +5125 48 7062 7063 +5126 48 7062 7064 +5127 48 7065 7066 +5128 48 7065 7067 +5129 48 7068 7069 +5130 48 7068 7070 +5131 48 7071 7072 +5132 48 7071 7073 +5133 48 7074 7075 +5134 48 7074 7076 +5135 48 7077 7078 +5136 48 7077 7079 +5137 48 7080 7081 +5138 48 7080 7082 +5139 48 7083 7084 +5140 48 7083 7085 +5141 48 7086 7087 +5142 48 7086 7088 +5143 48 7089 7090 +5144 48 7089 7091 +5145 48 7092 7093 +5146 48 7092 7094 +5147 48 7095 7096 +5148 48 7095 7097 +5149 48 7098 7099 +5150 48 7098 7100 +5151 48 7101 7102 +5152 48 7101 7103 +5153 48 7104 7105 +5154 48 7104 7106 +5155 48 7107 7108 +5156 48 7107 7109 +5157 48 7110 7111 +5158 48 7110 7112 +5159 48 7113 7114 +5160 48 7113 7115 +5161 48 7116 7117 +5162 48 7116 7118 +5163 48 7119 7120 +5164 48 7119 7121 +5165 48 7122 7123 +5166 48 7122 7124 +5167 48 7125 7126 +5168 48 7125 7127 +5169 48 7128 7129 +5170 48 7128 7130 +5171 48 7131 7132 +5172 48 7131 7133 +5173 48 7134 7135 +5174 48 7134 7136 +5175 48 7137 7138 +5176 48 7137 7139 +5177 48 7140 7141 +5178 48 7140 7142 +5179 48 7143 7144 +5180 48 7143 7145 +5181 48 7146 7147 +5182 48 7146 7148 +5183 48 7149 7150 +5184 48 7149 7151 +5185 48 7152 7153 +5186 48 7152 7154 +5187 48 7155 7156 +5188 48 7155 7157 +5189 48 7158 7159 +5190 48 7158 7160 +5191 48 7161 7162 +5192 48 7161 7163 +5193 48 7164 7165 +5194 48 7164 7166 +5195 48 7167 7168 +5196 48 7167 7169 +5197 48 7170 7171 +5198 48 7170 7172 +5199 48 7173 7174 +5200 48 7173 7175 +5201 48 7176 7177 +5202 48 7176 7178 +5203 48 7179 7180 +5204 48 7179 7181 +5205 48 7182 7183 +5206 48 7182 7184 +5207 48 7185 7186 +5208 48 7185 7187 +5209 48 7188 7189 +5210 48 7188 7190 +5211 48 7191 7192 +5212 48 7191 7193 +5213 48 7194 7195 +5214 48 7194 7196 +5215 48 7197 7198 +5216 48 7197 7199 +5217 48 7200 7201 +5218 48 7200 7202 +5219 48 7203 7204 +5220 48 7203 7205 +5221 48 7206 7207 +5222 48 7206 7208 +5223 48 7209 7210 +5224 48 7209 7211 +5225 48 7212 7213 +5226 48 7212 7214 +5227 48 7215 7216 +5228 48 7215 7217 +5229 48 7218 7219 +5230 48 7218 7220 +5231 48 7221 7222 +5232 48 7221 7223 +5233 48 7224 7225 +5234 48 7224 7226 +5235 48 7227 7228 +5236 48 7227 7229 +5237 48 7230 7231 +5238 48 7230 7232 +5239 48 7233 7234 +5240 48 7233 7235 +5241 48 7236 7237 +5242 48 7236 7238 +5243 48 7239 7240 +5244 48 7239 7241 +5245 48 7242 7243 +5246 48 7242 7244 +5247 48 7245 7246 +5248 48 7245 7247 +5249 48 7248 7249 +5250 48 7248 7250 +5251 48 7251 7252 +5252 48 7251 7253 +5253 48 7254 7255 +5254 48 7254 7256 +5255 48 7257 7258 +5256 48 7257 7259 +5257 48 7260 7261 +5258 48 7260 7262 +5259 48 7263 7264 +5260 48 7263 7265 +5261 48 7266 7267 +5262 48 7266 7268 +5263 48 7269 7270 +5264 48 7269 7271 +5265 48 7272 7273 +5266 48 7272 7274 +5267 48 7275 7276 +5268 48 7275 7277 +5269 48 7278 7279 +5270 48 7278 7280 +5271 48 7281 7282 +5272 48 7281 7283 +5273 48 7284 7285 +5274 48 7284 7286 +5275 48 7287 7288 +5276 48 7287 7289 +5277 48 7290 7291 +5278 48 7290 7292 +5279 48 7293 7294 +5280 48 7293 7295 +5281 48 7296 7297 +5282 48 7296 7298 +5283 48 7299 7300 +5284 48 7299 7301 +5285 48 7302 7303 +5286 48 7302 7304 +5287 48 7305 7306 +5288 48 7305 7307 +5289 48 7308 7309 +5290 48 7308 7310 +5291 48 7311 7312 +5292 48 7311 7313 +5293 48 7314 7315 +5294 48 7314 7316 +5295 48 7317 7318 +5296 48 7317 7319 +5297 48 7320 7321 +5298 48 7320 7322 +5299 48 7323 7324 +5300 48 7323 7325 +5301 48 7326 7327 +5302 48 7326 7328 +5303 48 7329 7330 +5304 48 7329 7331 +5305 48 7332 7333 +5306 48 7332 7334 +5307 48 7335 7336 +5308 48 7335 7337 +5309 48 7338 7339 +5310 48 7338 7340 +5311 48 7341 7342 +5312 48 7341 7343 +5313 48 7344 7345 +5314 48 7344 7346 +5315 48 7347 7348 +5316 48 7347 7349 +5317 48 7350 7351 +5318 48 7350 7352 +5319 48 7353 7354 +5320 48 7353 7355 +5321 48 7356 7357 +5322 48 7356 7358 +5323 48 7359 7360 +5324 48 7359 7361 +5325 48 7362 7363 +5326 48 7362 7364 +5327 48 7365 7366 +5328 48 7365 7367 +5329 48 7368 7369 +5330 48 7368 7370 +5331 48 7371 7372 +5332 48 7371 7373 +5333 48 7374 7375 +5334 48 7374 7376 +5335 48 7377 7378 +5336 48 7377 7379 +5337 48 7380 7381 +5338 48 7380 7382 +5339 48 7383 7384 +5340 48 7383 7385 +5341 48 7386 7387 +5342 48 7386 7388 +5343 48 7389 7390 +5344 48 7389 7391 +5345 48 7392 7393 +5346 48 7392 7394 +5347 48 7395 7396 +5348 48 7395 7397 +5349 48 7398 7399 +5350 48 7398 7400 +5351 48 7401 7402 +5352 48 7401 7403 +5353 48 7404 7405 +5354 48 7404 7406 +5355 48 7407 7408 +5356 48 7407 7409 +5357 48 7410 7411 +5358 48 7410 7412 +5359 48 7413 7414 +5360 48 7413 7415 +5361 48 7416 7417 +5362 48 7416 7418 +5363 48 7419 7420 +5364 48 7419 7421 +5365 48 7422 7423 +5366 48 7422 7424 +5367 48 7425 7426 +5368 48 7425 7427 +5369 48 7428 7429 +5370 48 7428 7430 +5371 48 7431 7432 +5372 48 7431 7433 +5373 48 7434 7435 +5374 48 7434 7436 +5375 48 7437 7438 +5376 48 7437 7439 +5377 48 7440 7441 +5378 48 7440 7442 +5379 48 7443 7444 +5380 48 7443 7445 +5381 48 7446 7447 +5382 48 7446 7448 +5383 48 7449 7450 +5384 48 7449 7451 +5385 48 7452 7453 +5386 48 7452 7454 +5387 48 7455 7456 +5388 48 7455 7457 +5389 48 7458 7459 +5390 48 7458 7460 +5391 48 7461 7462 +5392 48 7461 7463 +5393 48 7464 7465 +5394 48 7464 7466 +5395 48 7467 7468 +5396 48 7467 7469 +5397 48 7470 7471 +5398 48 7470 7472 +5399 48 7473 7474 +5400 48 7473 7475 +5401 48 7476 7477 +5402 48 7476 7478 +5403 48 7479 7480 +5404 48 7479 7481 +5405 48 7482 7483 +5406 48 7482 7484 +5407 48 7485 7486 +5408 48 7485 7487 +5409 48 7488 7489 +5410 48 7488 7490 +5411 48 7491 7492 +5412 48 7491 7493 +5413 48 7494 7495 +5414 48 7494 7496 +5415 48 7497 7498 +5416 48 7497 7499 +5417 48 7500 7501 +5418 48 7500 7502 +5419 48 7503 7504 +5420 48 7503 7505 +5421 48 7506 7507 +5422 48 7506 7508 +5423 48 7509 7510 +5424 48 7509 7511 +5425 48 7512 7513 +5426 48 7512 7514 +5427 48 7515 7516 +5428 48 7515 7517 +5429 48 7518 7519 +5430 48 7518 7520 +5431 48 7521 7522 +5432 48 7521 7523 +5433 48 7524 7525 +5434 48 7524 7526 +5435 48 7527 7528 +5436 48 7527 7529 +5437 48 7530 7531 +5438 48 7530 7532 +5439 48 7533 7534 +5440 48 7533 7535 +5441 48 7536 7537 +5442 48 7536 7538 +5443 48 7539 7540 +5444 48 7539 7541 +5445 48 7542 7543 +5446 48 7542 7544 +5447 48 7545 7546 +5448 48 7545 7547 +5449 48 7548 7549 +5450 48 7548 7550 +5451 48 7551 7552 +5452 48 7551 7553 +5453 48 7554 7555 +5454 48 7554 7556 +5455 48 7557 7558 +5456 48 7557 7559 +5457 48 7560 7561 +5458 48 7560 7562 +5459 48 7563 7564 +5460 48 7563 7565 +5461 48 7566 7567 +5462 48 7566 7568 +5463 48 7569 7570 +5464 48 7569 7571 +5465 48 7572 7573 +5466 48 7572 7574 +5467 48 7575 7576 +5468 48 7575 7577 +5469 48 7578 7579 +5470 48 7578 7580 +5471 48 7581 7582 +5472 48 7581 7583 +5473 48 7584 7585 +5474 48 7584 7586 +5475 48 7587 7588 +5476 48 7587 7589 +5477 48 7590 7591 +5478 48 7590 7592 +5479 48 7593 7594 +5480 48 7593 7595 +5481 48 7596 7597 +5482 48 7596 7598 +5483 48 7599 7600 +5484 48 7599 7601 +5485 48 7602 7603 +5486 48 7602 7604 +5487 48 7605 7606 +5488 48 7605 7607 +5489 48 7608 7609 +5490 48 7608 7610 +5491 48 7611 7612 +5492 48 7611 7613 +5493 48 7614 7615 +5494 48 7614 7616 +5495 48 7617 7618 +5496 48 7617 7619 +5497 48 7620 7621 +5498 48 7620 7622 +5499 48 7623 7624 +5500 48 7623 7625 +5501 48 7626 7627 +5502 48 7626 7628 +5503 48 7629 7630 +5504 48 7629 7631 +5505 48 7632 7633 +5506 48 7632 7634 +5507 48 7635 7636 +5508 48 7635 7637 +5509 48 7638 7639 +5510 48 7638 7640 +5511 48 7641 7642 +5512 48 7641 7643 +5513 48 7644 7645 +5514 48 7644 7646 +5515 48 7647 7648 +5516 48 7647 7649 +5517 48 7650 7651 +5518 48 7650 7652 +5519 48 7653 7654 +5520 48 7653 7655 +5521 48 7656 7657 +5522 48 7656 7658 +5523 48 7659 7660 +5524 48 7659 7661 +5525 48 7662 7663 +5526 48 7662 7664 +5527 48 7665 7666 +5528 48 7665 7667 +5529 48 7668 7669 +5530 48 7668 7670 +5531 48 7671 7672 +5532 48 7671 7673 +5533 48 7674 7675 +5534 48 7674 7676 +5535 48 7677 7678 +5536 48 7677 7679 +5537 48 7680 7681 +5538 48 7680 7682 +5539 48 7683 7684 +5540 48 7683 7685 +5541 48 7686 7687 +5542 48 7686 7688 +5543 48 7689 7690 +5544 48 7689 7691 +5545 48 7692 7693 +5546 48 7692 7694 +5547 48 7695 7696 +5548 48 7695 7697 +5549 48 7698 7699 +5550 48 7698 7700 +5551 48 7701 7702 +5552 48 7701 7703 +5553 48 7704 7705 +5554 48 7704 7706 +5555 48 7707 7708 +5556 48 7707 7709 +5557 48 7710 7711 +5558 48 7710 7712 +5559 48 7713 7714 +5560 48 7713 7715 +5561 48 7716 7717 +5562 48 7716 7718 +5563 48 7719 7720 +5564 48 7719 7721 +5565 48 7722 7723 +5566 48 7722 7724 +5567 48 7725 7726 +5568 48 7725 7727 +5569 48 7728 7729 +5570 48 7728 7730 +5571 48 7731 7732 +5572 48 7731 7733 +5573 48 7734 7735 +5574 48 7734 7736 +5575 48 7737 7738 +5576 48 7737 7739 +5577 48 7740 7741 +5578 48 7740 7742 +5579 48 7743 7744 +5580 48 7743 7745 +5581 48 7746 7747 +5582 48 7746 7748 +5583 48 7749 7750 +5584 48 7749 7751 +5585 48 7752 7753 +5586 48 7752 7754 +5587 48 7755 7756 +5588 48 7755 7757 +5589 48 7758 7759 +5590 48 7758 7760 +5591 48 7761 7762 +5592 48 7761 7763 +5593 48 7764 7765 +5594 48 7764 7766 +5595 48 7767 7768 +5596 48 7767 7769 +5597 48 7770 7771 +5598 48 7770 7772 +5599 48 7773 7774 +5600 48 7773 7775 +5601 48 7776 7777 +5602 48 7776 7778 +5603 48 7779 7780 +5604 48 7779 7781 +5605 48 7782 7783 +5606 48 7782 7784 +5607 48 7785 7786 +5608 48 7785 7787 +5609 48 7788 7789 +5610 48 7788 7790 +5611 48 7791 7792 +5612 48 7791 7793 +5613 48 7794 7795 +5614 48 7794 7796 +5615 48 7797 7798 +5616 48 7797 7799 +5617 48 7800 7801 +5618 48 7800 7802 +5619 48 7803 7804 +5620 48 7803 7805 +5621 48 7806 7807 +5622 48 7806 7808 +5623 48 7809 7810 +5624 48 7809 7811 +5625 48 7812 7813 +5626 48 7812 7814 +5627 48 7815 7816 +5628 48 7815 7817 +5629 48 7818 7819 +5630 48 7818 7820 +5631 48 7821 7822 +5632 48 7821 7823 +5633 48 7824 7825 +5634 48 7824 7826 +5635 48 7827 7828 +5636 48 7827 7829 +5637 48 7830 7831 +5638 48 7830 7832 +5639 48 7833 7834 +5640 48 7833 7835 +5641 48 7836 7837 +5642 48 7836 7838 +5643 48 7839 7840 +5644 48 7839 7841 +5645 48 7842 7843 +5646 48 7842 7844 +5647 48 7845 7846 +5648 48 7845 7847 +5649 48 7848 7849 +5650 48 7848 7850 +5651 48 7851 7852 +5652 48 7851 7853 +5653 48 7854 7855 +5654 48 7854 7856 +5655 48 7857 7858 +5656 48 7857 7859 +5657 48 7860 7861 +5658 48 7860 7862 +5659 48 7863 7864 +5660 48 7863 7865 +5661 48 7866 7867 +5662 48 7866 7868 +5663 48 7869 7870 +5664 48 7869 7871 +5665 48 7872 7873 +5666 48 7872 7874 +5667 48 7875 7876 +5668 48 7875 7877 +5669 48 7878 7879 +5670 48 7878 7880 +5671 48 7881 7882 +5672 48 7881 7883 +5673 48 7884 7885 +5674 48 7884 7886 +5675 48 7887 7888 +5676 48 7887 7889 +5677 48 7890 7891 +5678 48 7890 7892 +5679 48 7893 7894 +5680 48 7893 7895 +5681 48 7896 7897 +5682 48 7896 7898 +5683 48 7899 7900 +5684 48 7899 7901 +5685 48 7902 7903 +5686 48 7902 7904 +5687 48 7905 7906 +5688 48 7905 7907 +5689 48 7908 7909 +5690 48 7908 7910 +5691 48 7911 7912 +5692 48 7911 7913 +5693 48 7914 7915 +5694 48 7914 7916 +5695 48 7917 7918 +5696 48 7917 7919 +5697 48 7920 7921 +5698 48 7920 7922 +5699 48 7923 7924 +5700 48 7923 7925 +5701 48 7926 7927 +5702 48 7926 7928 +5703 48 7929 7930 +5704 48 7929 7931 +5705 48 7932 7933 +5706 48 7932 7934 +5707 48 7935 7936 +5708 48 7935 7937 +5709 48 7938 7939 +5710 48 7938 7940 +5711 48 7941 7942 +5712 48 7941 7943 +5713 48 7944 7945 +5714 48 7944 7946 +5715 48 7947 7948 +5716 48 7947 7949 +5717 48 7950 7951 +5718 48 7950 7952 +5719 48 7953 7954 +5720 48 7953 7955 +5721 48 7956 7957 +5722 48 7956 7958 +5723 48 7959 7960 +5724 48 7959 7961 +5725 48 7962 7963 +5726 48 7962 7964 +5727 48 7965 7966 +5728 48 7965 7967 +5729 48 7968 7969 +5730 48 7968 7970 +5731 48 7971 7972 +5732 48 7971 7973 +5733 48 7974 7975 +5734 48 7974 7976 +5735 48 7977 7978 +5736 48 7977 7979 +5737 48 7980 7981 +5738 48 7980 7982 +5739 48 7983 7984 +5740 48 7983 7985 +5741 48 7986 7987 +5742 48 7986 7988 +5743 48 7989 7990 +5744 48 7989 7991 +5745 48 7992 7993 +5746 48 7992 7994 +5747 48 7995 7996 +5748 48 7995 7997 +5749 48 7998 7999 +5750 48 7998 8000 +5751 48 8001 8002 +5752 48 8001 8003 +5753 48 8004 8005 +5754 48 8004 8006 +5755 48 8007 8008 +5756 48 8007 8009 +5757 48 8010 8011 +5758 48 8010 8012 +5759 48 8013 8014 +5760 48 8013 8015 +5761 48 8016 8017 +5762 48 8016 8018 +5763 48 8019 8020 +5764 48 8019 8021 +5765 48 8022 8023 +5766 48 8022 8024 +5767 48 8025 8026 +5768 48 8025 8027 +5769 48 8028 8029 +5770 48 8028 8030 +5771 48 8031 8032 +5772 48 8031 8033 +5773 48 8034 8035 +5774 48 8034 8036 +5775 48 8037 8038 +5776 48 8037 8039 +5777 48 8040 8041 +5778 48 8040 8042 +5779 48 8043 8044 +5780 48 8043 8045 +5781 48 8046 8047 +5782 48 8046 8048 +5783 48 8049 8050 +5784 48 8049 8051 +5785 48 8052 8053 +5786 48 8052 8054 +5787 48 8055 8056 +5788 48 8055 8057 +5789 48 8058 8059 +5790 48 8058 8060 +5791 48 8061 8062 +5792 48 8061 8063 +5793 48 8064 8065 +5794 48 8064 8066 +5795 48 8067 8068 +5796 48 8067 8069 +5797 48 8070 8071 +5798 48 8070 8072 +5799 48 8073 8074 +5800 48 8073 8075 +5801 48 8076 8077 +5802 48 8076 8078 +5803 48 8079 8080 +5804 48 8079 8081 +5805 48 8082 8083 +5806 48 8082 8084 +5807 48 8085 8086 +5808 48 8085 8087 +5809 48 8088 8089 +5810 48 8088 8090 +5811 48 8091 8092 +5812 48 8091 8093 +5813 48 8094 8095 +5814 48 8094 8096 +5815 48 8097 8098 +5816 48 8097 8099 +5817 48 8100 8101 +5818 48 8100 8102 +5819 48 8103 8104 +5820 48 8103 8105 +5821 48 8106 8107 +5822 48 8106 8108 +5823 48 8109 8110 +5824 48 8109 8111 +5825 48 8112 8113 +5826 48 8112 8114 +5827 48 8115 8116 +5828 48 8115 8117 +5829 48 8118 8119 +5830 48 8118 8120 +5831 48 8121 8122 +5832 48 8121 8123 +5833 48 8124 8125 +5834 48 8124 8126 +5835 48 8127 8128 +5836 48 8127 8129 +5837 48 8130 8131 +5838 48 8130 8132 +5839 48 8133 8134 +5840 48 8133 8135 +5841 48 8136 8137 +5842 48 8136 8138 +5843 48 8139 8140 +5844 48 8139 8141 +5845 48 8142 8143 +5846 48 8142 8144 +5847 48 8145 8146 +5848 48 8145 8147 +5849 48 8148 8149 +5850 48 8148 8150 +5851 48 8151 8152 +5852 48 8151 8153 +5853 48 8154 8155 +5854 48 8154 8156 +5855 48 8157 8158 +5856 48 8157 8159 +5857 48 8160 8161 +5858 48 8160 8162 +5859 48 8163 8164 +5860 48 8163 8165 +5861 48 8166 8167 +5862 48 8166 8168 +5863 48 8169 8170 +5864 48 8169 8171 +5865 48 8172 8173 +5866 48 8172 8174 +5867 48 8175 8176 +5868 48 8175 8177 +5869 48 8178 8179 +5870 48 8178 8180 +5871 48 8181 8182 +5872 48 8181 8183 +5873 48 8184 8185 +5874 48 8184 8186 +5875 48 8187 8188 +5876 48 8187 8189 +5877 48 8190 8191 +5878 48 8190 8192 +5879 48 8193 8194 +5880 48 8193 8195 +5881 48 8196 8197 +5882 48 8196 8198 +5883 48 8199 8200 +5884 48 8199 8201 +5885 48 8202 8203 +5886 48 8202 8204 +5887 48 8205 8206 +5888 48 8205 8207 +5889 48 8208 8209 +5890 48 8208 8210 +5891 48 8211 8212 +5892 48 8211 8213 +5893 48 8214 8215 +5894 48 8214 8216 +5895 48 8217 8218 +5896 48 8217 8219 +5897 48 8220 8221 +5898 48 8220 8222 +5899 48 8223 8224 +5900 48 8223 8225 +5901 48 8226 8227 +5902 48 8226 8228 +5903 48 8229 8230 +5904 48 8229 8231 +5905 48 8232 8233 +5906 48 8232 8234 +5907 48 8235 8236 +5908 48 8235 8237 +5909 48 8238 8239 +5910 48 8238 8240 +5911 48 8241 8242 +5912 48 8241 8243 +5913 48 8244 8245 +5914 48 8244 8246 +5915 48 8247 8248 +5916 48 8247 8249 +5917 48 8250 8251 +5918 48 8250 8252 +5919 48 8253 8254 +5920 48 8253 8255 +5921 48 8256 8257 +5922 48 8256 8258 +5923 48 8259 8260 +5924 48 8259 8261 +5925 48 8262 8263 +5926 48 8262 8264 +5927 48 8265 8266 +5928 48 8265 8267 +5929 48 8268 8269 +5930 48 8268 8270 +5931 48 8271 8272 +5932 48 8271 8273 +5933 48 8274 8275 +5934 48 8274 8276 +5935 48 8277 8278 +5936 48 8277 8279 +5937 48 8280 8281 +5938 48 8280 8282 +5939 48 8283 8284 +5940 48 8283 8285 +5941 48 8286 8287 +5942 48 8286 8288 +5943 48 8289 8290 +5944 48 8289 8291 +5945 48 8292 8293 +5946 48 8292 8294 +5947 48 8295 8296 +5948 48 8295 8297 +5949 48 8298 8299 +5950 48 8298 8300 +5951 48 8301 8302 +5952 48 8301 8303 +5953 48 8304 8305 +5954 48 8304 8306 +5955 48 8307 8308 +5956 48 8307 8309 +5957 48 8310 8311 +5958 48 8310 8312 +5959 48 8313 8314 +5960 48 8313 8315 +5961 48 8316 8317 +5962 48 8316 8318 +5963 48 8319 8320 +5964 48 8319 8321 +5965 48 8322 8323 +5966 48 8322 8324 +5967 48 8325 8326 +5968 48 8325 8327 +5969 48 8328 8329 +5970 48 8328 8330 +5971 48 8331 8332 +5972 48 8331 8333 +5973 48 8334 8335 +5974 48 8334 8336 +5975 48 8337 8338 +5976 48 8337 8339 +5977 48 8340 8341 +5978 48 8340 8342 +5979 48 8343 8344 +5980 48 8343 8345 +5981 48 8346 8347 +5982 48 8346 8348 +5983 48 8349 8350 +5984 48 8349 8351 +5985 48 8352 8353 +5986 48 8352 8354 +5987 48 8355 8356 +5988 48 8355 8357 +5989 48 8358 8359 +5990 48 8358 8360 +5991 48 8361 8362 +5992 48 8361 8363 +5993 48 8364 8365 +5994 48 8364 8366 +5995 48 8367 8368 +5996 48 8367 8369 +5997 48 8370 8371 +5998 48 8370 8372 +5999 48 8373 8374 +6000 48 8373 8375 +6001 48 8376 8377 +6002 48 8376 8378 +6003 48 8379 8380 +6004 48 8379 8381 +6005 48 8382 8383 +6006 48 8382 8384 +6007 48 8385 8386 +6008 48 8385 8387 +6009 48 8388 8389 +6010 48 8388 8390 +6011 48 8391 8392 +6012 48 8391 8393 +6013 48 8394 8395 +6014 48 8394 8396 +6015 48 8397 8398 +6016 48 8397 8399 +6017 48 8400 8401 +6018 48 8400 8402 +6019 48 8403 8404 +6020 48 8403 8405 +6021 48 8406 8407 +6022 48 8406 8408 +6023 48 8409 8410 +6024 48 8409 8411 +6025 48 8412 8413 +6026 48 8412 8414 +6027 48 8415 8416 +6028 48 8415 8417 +6029 48 8418 8419 +6030 48 8418 8420 +6031 48 8421 8422 +6032 48 8421 8423 +6033 48 8424 8425 +6034 48 8424 8426 +6035 48 8427 8428 +6036 48 8427 8429 +6037 48 8430 8431 +6038 48 8430 8432 +6039 48 8433 8434 +6040 48 8433 8435 +6041 48 8436 8437 +6042 48 8436 8438 +6043 48 8439 8440 +6044 48 8439 8441 +6045 48 8442 8443 +6046 48 8442 8444 +6047 48 8445 8446 +6048 48 8445 8447 +6049 48 8448 8449 +6050 48 8448 8450 +6051 48 8451 8452 +6052 48 8451 8453 +6053 48 8454 8455 +6054 48 8454 8456 +6055 48 8457 8458 +6056 48 8457 8459 +6057 48 8460 8461 +6058 48 8460 8462 +6059 48 8463 8464 +6060 48 8463 8465 +6061 48 8466 8467 +6062 48 8466 8468 +6063 48 8469 8470 +6064 48 8469 8471 +6065 48 8472 8473 +6066 48 8472 8474 +6067 48 8475 8476 +6068 48 8475 8477 +6069 48 8478 8479 +6070 48 8478 8480 +6071 48 8481 8482 +6072 48 8481 8483 +6073 48 8484 8485 +6074 48 8484 8486 +6075 48 8487 8488 +6076 48 8487 8489 +6077 48 8490 8491 +6078 48 8490 8492 +6079 48 8493 8494 +6080 48 8493 8495 +6081 48 8496 8497 +6082 48 8496 8498 +6083 48 8499 8500 +6084 48 8499 8501 +6085 48 8502 8503 +6086 48 8502 8504 +6087 48 8505 8506 +6088 48 8505 8507 +6089 48 8508 8509 +6090 48 8508 8510 +6091 48 8511 8512 +6092 48 8511 8513 +6093 48 8514 8515 +6094 48 8514 8516 +6095 48 8517 8518 +6096 48 8517 8519 +6097 48 8520 8521 +6098 48 8520 8522 +6099 48 8523 8524 +6100 48 8523 8525 +6101 48 8526 8527 +6102 48 8526 8528 +6103 48 8529 8530 +6104 48 8529 8531 +6105 48 8532 8533 +6106 48 8532 8534 +6107 48 8535 8536 +6108 48 8535 8537 +6109 48 8538 8539 +6110 48 8538 8540 +6111 48 8541 8542 +6112 48 8541 8543 +6113 48 8544 8545 +6114 48 8544 8546 +6115 48 8547 8548 +6116 48 8547 8549 +6117 48 8550 8551 +6118 48 8550 8552 +6119 48 8553 8554 +6120 48 8553 8555 +6121 48 8556 8557 +6122 48 8556 8558 +6123 48 8559 8560 +6124 48 8559 8561 +6125 48 8562 8563 +6126 48 8562 8564 +6127 48 8565 8566 +6128 48 8565 8567 +6129 48 8568 8569 +6130 48 8568 8570 +6131 48 8571 8572 +6132 48 8571 8573 +6133 48 8574 8575 +6134 48 8574 8576 +6135 48 8577 8578 +6136 48 8577 8579 +6137 48 8580 8581 +6138 48 8580 8582 +6139 48 8583 8584 +6140 48 8583 8585 +6141 48 8586 8587 +6142 48 8586 8588 +6143 48 8589 8590 +6144 48 8589 8591 +6145 48 8592 8593 +6146 48 8592 8594 +6147 48 8595 8596 +6148 48 8595 8597 +6149 48 8598 8599 +6150 48 8598 8600 +6151 48 8601 8602 +6152 48 8601 8603 +6153 48 8604 8605 +6154 48 8604 8606 +6155 48 8607 8608 +6156 48 8607 8609 +6157 48 8610 8611 +6158 48 8610 8612 +6159 48 8613 8614 +6160 48 8613 8615 +6161 48 8616 8617 +6162 48 8616 8618 +6163 48 8619 8620 +6164 48 8619 8621 +6165 48 8622 8623 +6166 48 8622 8624 +6167 48 8625 8626 +6168 48 8625 8627 +6169 48 8628 8629 +6170 48 8628 8630 +6171 48 8631 8632 +6172 48 8631 8633 +6173 48 8634 8635 +6174 48 8634 8636 +6175 48 8637 8638 +6176 48 8637 8639 +6177 48 8640 8641 +6178 48 8640 8642 +6179 48 8643 8644 +6180 48 8643 8645 +6181 48 8646 8647 +6182 48 8646 8648 +6183 48 8649 8650 +6184 48 8649 8651 +6185 48 8652 8653 +6186 48 8652 8654 +6187 48 8655 8656 +6188 48 8655 8657 +6189 48 8658 8659 +6190 48 8658 8660 +6191 48 8661 8662 +6192 48 8661 8663 +6193 48 8664 8665 +6194 48 8664 8666 +6195 48 8667 8668 +6196 48 8667 8669 +6197 48 8670 8671 +6198 48 8670 8672 +6199 48 8673 8674 +6200 48 8673 8675 +6201 48 8676 8677 +6202 48 8676 8678 +6203 48 8679 8680 +6204 48 8679 8681 +6205 48 8682 8683 +6206 48 8682 8684 +6207 48 8685 8686 +6208 48 8685 8687 +6209 48 8688 8689 +6210 48 8688 8690 +6211 48 8691 8692 +6212 48 8691 8693 +6213 48 8694 8695 +6214 48 8694 8696 +6215 48 8697 8698 +6216 48 8697 8699 +6217 48 8700 8701 +6218 48 8700 8702 +6219 48 8703 8704 +6220 48 8703 8705 +6221 48 8706 8707 +6222 48 8706 8708 +6223 48 8709 8710 +6224 48 8709 8711 +6225 48 8712 8713 +6226 48 8712 8714 +6227 48 8715 8716 +6228 48 8715 8717 +6229 48 8718 8719 +6230 48 8718 8720 +6231 48 8721 8722 +6232 48 8721 8723 +6233 48 8724 8725 +6234 48 8724 8726 +6235 48 8727 8728 +6236 48 8727 8729 +6237 48 8730 8731 +6238 48 8730 8732 +6239 48 8733 8734 +6240 48 8733 8735 +6241 48 8736 8737 +6242 48 8736 8738 +6243 48 8739 8740 +6244 48 8739 8741 +6245 48 8742 8743 +6246 48 8742 8744 +6247 48 8745 8746 +6248 48 8745 8747 +6249 48 8748 8749 +6250 48 8748 8750 +6251 48 8751 8752 +6252 48 8751 8753 +6253 48 8754 8755 +6254 48 8754 8756 +6255 48 8757 8758 +6256 48 8757 8759 +6257 48 8760 8761 +6258 48 8760 8762 +6259 48 8763 8764 +6260 48 8763 8765 +6261 48 8766 8767 +6262 48 8766 8768 +6263 48 8769 8770 +6264 48 8769 8771 +6265 48 8772 8773 +6266 48 8772 8774 +6267 48 8775 8776 +6268 48 8775 8777 +6269 48 8778 8779 +6270 48 8778 8780 +6271 48 8781 8782 +6272 48 8781 8783 +6273 48 8784 8785 +6274 48 8784 8786 +6275 48 8787 8788 +6276 48 8787 8789 +6277 48 8790 8791 +6278 48 8790 8792 +6279 48 8793 8794 +6280 48 8793 8795 +6281 48 8796 8797 +6282 48 8796 8798 +6283 48 8799 8800 +6284 48 8799 8801 +6285 48 8802 8803 +6286 48 8802 8804 +6287 48 8805 8806 +6288 48 8805 8807 +6289 48 8808 8809 +6290 48 8808 8810 +6291 48 8811 8812 +6292 48 8811 8813 +6293 48 8814 8815 +6294 48 8814 8816 +6295 48 8817 8818 +6296 48 8817 8819 +6297 48 8820 8821 +6298 48 8820 8822 +6299 48 8823 8824 +6300 48 8823 8825 +6301 48 8826 8827 +6302 48 8826 8828 +6303 48 8829 8830 +6304 48 8829 8831 +6305 48 8832 8833 +6306 48 8832 8834 +6307 48 8835 8836 +6308 48 8835 8837 +6309 48 8838 8839 +6310 48 8838 8840 +6311 48 8841 8842 +6312 48 8841 8843 +6313 48 8844 8845 +6314 48 8844 8846 +6315 48 8847 8848 +6316 48 8847 8849 +6317 48 8850 8851 +6318 48 8850 8852 +6319 48 8853 8854 +6320 48 8853 8855 +6321 48 8856 8857 +6322 48 8856 8858 +6323 48 8859 8860 +6324 48 8859 8861 +6325 48 8862 8863 +6326 48 8862 8864 +6327 48 8865 8866 +6328 48 8865 8867 +6329 48 8868 8869 +6330 48 8868 8870 +6331 48 8871 8872 +6332 48 8871 8873 +6333 48 8874 8875 +6334 48 8874 8876 +6335 48 8877 8878 +6336 48 8877 8879 +6337 48 8880 8881 +6338 48 8880 8882 +6339 48 8883 8884 +6340 48 8883 8885 +6341 48 8886 8887 +6342 48 8886 8888 +6343 48 8889 8890 +6344 48 8889 8891 +6345 48 8892 8893 +6346 48 8892 8894 +6347 48 8895 8896 +6348 48 8895 8897 +6349 48 8898 8899 +6350 48 8898 8900 +6351 48 8901 8902 +6352 48 8901 8903 +6353 48 8904 8905 +6354 48 8904 8906 +6355 48 8907 8908 +6356 48 8907 8909 +6357 48 8910 8911 +6358 48 8910 8912 +6359 48 8913 8914 +6360 48 8913 8915 +6361 48 8916 8917 +6362 48 8916 8918 +6363 48 8919 8920 +6364 48 8919 8921 +6365 48 8922 8923 +6366 48 8922 8924 +6367 48 8925 8926 +6368 48 8925 8927 +6369 48 8928 8929 +6370 48 8928 8930 +6371 48 8931 8932 +6372 48 8931 8933 +6373 48 8934 8935 +6374 48 8934 8936 +6375 48 8937 8938 +6376 48 8937 8939 +6377 48 8940 8941 +6378 48 8940 8942 +6379 48 8943 8944 +6380 48 8943 8945 +6381 48 8946 8947 +6382 48 8946 8948 +6383 48 8949 8950 +6384 48 8949 8951 +6385 48 8952 8953 +6386 48 8952 8954 +6387 48 8955 8956 +6388 48 8955 8957 +6389 48 8958 8959 +6390 48 8958 8960 +6391 48 8961 8962 +6392 48 8961 8963 +6393 48 8964 8965 +6394 48 8964 8966 +6395 48 8967 8968 +6396 48 8967 8969 +6397 48 8970 8971 +6398 48 8970 8972 +6399 48 8973 8974 +6400 48 8973 8975 +6401 48 8976 8977 +6402 48 8976 8978 +6403 48 8979 8980 +6404 48 8979 8981 +6405 48 8982 8983 +6406 48 8982 8984 +6407 48 8985 8986 +6408 48 8985 8987 +6409 48 8988 8989 +6410 48 8988 8990 +6411 48 8991 8992 +6412 48 8991 8993 +6413 48 8994 8995 +6414 48 8994 8996 +6415 48 8997 8998 +6416 48 8997 8999 +6417 48 9000 9001 +6418 48 9000 9002 +6419 48 9003 9004 +6420 48 9003 9005 +6421 48 9006 9007 +6422 48 9006 9008 +6423 48 9009 9010 +6424 48 9009 9011 +6425 48 9012 9013 +6426 48 9012 9014 +6427 48 9015 9016 +6428 48 9015 9017 +6429 48 9018 9019 +6430 48 9018 9020 +6431 48 9021 9022 +6432 48 9021 9023 +6433 48 9024 9025 +6434 48 9024 9026 +6435 48 9027 9028 +6436 48 9027 9029 +6437 48 9030 9031 +6438 48 9030 9032 +6439 48 9033 9034 +6440 48 9033 9035 +6441 48 9036 9037 +6442 48 9036 9038 +6443 48 9039 9040 +6444 48 9039 9041 +6445 48 9042 9043 +6446 48 9042 9044 +6447 48 9045 9046 +6448 48 9045 9047 +6449 48 9048 9049 +6450 48 9048 9050 +6451 48 9051 9052 +6452 48 9051 9053 +6453 48 9054 9055 +6454 48 9054 9056 +6455 48 9057 9058 +6456 48 9057 9059 +6457 48 9060 9061 +6458 48 9060 9062 +6459 48 9063 9064 +6460 48 9063 9065 +6461 48 9066 9067 +6462 48 9066 9068 +6463 48 9069 9070 +6464 48 9069 9071 +6465 48 9072 9073 +6466 48 9072 9074 +6467 48 9075 9076 +6468 48 9075 9077 +6469 48 9078 9079 +6470 48 9078 9080 +6471 48 9081 9082 +6472 48 9081 9083 +6473 48 9084 9085 +6474 48 9084 9086 +6475 48 9087 9088 +6476 48 9087 9089 +6477 48 9090 9091 +6478 48 9090 9092 +6479 48 9093 9094 +6480 48 9093 9095 +6481 48 9096 9097 +6482 48 9096 9098 +6483 48 9099 9100 +6484 48 9099 9101 +6485 48 9102 9103 +6486 48 9102 9104 +6487 48 9105 9106 +6488 48 9105 9107 +6489 48 9108 9109 +6490 48 9108 9110 +6491 48 9111 9112 +6492 48 9111 9113 +6493 48 9114 9115 +6494 48 9114 9116 +6495 48 9117 9118 +6496 48 9117 9119 +6497 48 9120 9121 +6498 48 9120 9122 +6499 48 9123 9124 +6500 48 9123 9125 +6501 48 9126 9127 +6502 48 9126 9128 +6503 48 9129 9130 +6504 48 9129 9131 +6505 48 9132 9133 +6506 48 9132 9134 +6507 48 9135 9136 +6508 48 9135 9137 +6509 48 9138 9139 +6510 48 9138 9140 +6511 48 9141 9142 +6512 48 9141 9143 +6513 48 9144 9145 +6514 48 9144 9146 +6515 48 9147 9148 +6516 48 9147 9149 +6517 48 9150 9151 +6518 48 9150 9152 +6519 48 9153 9154 +6520 48 9153 9155 +6521 48 9156 9157 +6522 48 9156 9158 +6523 48 9159 9160 +6524 48 9159 9161 +6525 48 9162 9163 +6526 48 9162 9164 +6527 48 9165 9166 +6528 48 9165 9167 +6529 48 9168 9169 +6530 48 9168 9170 +6531 48 9171 9172 +6532 48 9171 9173 +6533 48 9174 9175 +6534 48 9174 9176 +6535 48 9177 9178 +6536 48 9177 9179 +6537 48 9180 9181 +6538 48 9180 9182 +6539 48 9183 9184 +6540 48 9183 9185 +6541 48 9186 9187 +6542 48 9186 9188 +6543 48 9189 9190 +6544 48 9189 9191 +6545 48 9192 9193 +6546 48 9192 9194 +6547 48 9195 9196 +6548 48 9195 9197 +6549 48 9198 9199 +6550 48 9198 9200 +6551 48 9201 9202 +6552 48 9201 9203 +6553 48 9204 9205 +6554 48 9204 9206 +6555 48 9207 9208 +6556 48 9207 9209 +6557 48 9210 9211 +6558 48 9210 9212 +6559 48 9213 9214 +6560 48 9213 9215 +6561 48 9216 9217 +6562 48 9216 9218 +6563 48 9219 9220 +6564 48 9219 9221 +6565 48 9222 9223 +6566 48 9222 9224 +6567 48 9225 9226 +6568 48 9225 9227 +6569 48 9228 9229 +6570 48 9228 9230 +6571 48 9231 9232 +6572 48 9231 9233 +6573 48 9234 9235 +6574 48 9234 9236 +6575 48 9237 9238 +6576 48 9237 9239 +6577 48 9240 9241 +6578 48 9240 9242 +6579 48 9243 9244 +6580 48 9243 9245 +6581 48 9246 9247 +6582 48 9246 9248 +6583 48 9249 9250 +6584 48 9249 9251 +6585 48 9252 9253 +6586 48 9252 9254 +6587 48 9255 9256 +6588 48 9255 9257 +6589 48 9258 9259 +6590 48 9258 9260 +6591 48 9261 9262 +6592 48 9261 9263 +6593 48 9264 9265 +6594 48 9264 9266 +6595 48 9267 9268 +6596 48 9267 9269 +6597 48 9270 9271 +6598 48 9270 9272 +6599 48 9273 9274 +6600 48 9273 9275 +6601 48 9276 9277 +6602 48 9276 9278 +6603 48 9279 9280 +6604 48 9279 9281 +6605 48 9282 9283 +6606 48 9282 9284 +6607 48 9285 9286 +6608 48 9285 9287 +6609 48 9288 9289 +6610 48 9288 9290 +6611 48 9291 9292 +6612 48 9291 9293 +6613 48 9294 9295 +6614 48 9294 9296 +6615 48 9297 9298 +6616 48 9297 9299 +6617 48 9300 9301 +6618 48 9300 9302 +6619 48 9303 9304 +6620 48 9303 9305 +6621 48 9306 9307 +6622 48 9306 9308 +6623 48 9309 9310 +6624 48 9309 9311 +6625 48 9312 9313 +6626 48 9312 9314 +6627 48 9315 9316 +6628 48 9315 9317 +6629 48 9318 9319 +6630 48 9318 9320 +6631 48 9321 9322 +6632 48 9321 9323 +6633 48 9324 9325 +6634 48 9324 9326 +6635 48 9327 9328 +6636 48 9327 9329 +6637 48 9330 9331 +6638 48 9330 9332 +6639 48 9333 9334 +6640 48 9333 9335 +6641 48 9336 9337 +6642 48 9336 9338 +6643 48 9339 9340 +6644 48 9339 9341 +6645 48 9342 9343 +6646 48 9342 9344 +6647 48 9345 9346 +6648 48 9345 9347 +6649 48 9348 9349 +6650 48 9348 9350 +6651 48 9351 9352 +6652 48 9351 9353 +6653 48 9354 9355 +6654 48 9354 9356 +6655 48 9357 9358 +6656 48 9357 9359 +6657 48 9360 9361 +6658 48 9360 9362 +6659 48 9363 9364 +6660 48 9363 9365 +6661 48 9366 9367 +6662 48 9366 9368 +6663 48 9369 9370 +6664 48 9369 9371 +6665 48 9372 9373 +6666 48 9372 9374 +6667 48 9375 9376 +6668 48 9375 9377 +6669 48 9378 9379 +6670 48 9378 9380 +6671 48 9381 9382 +6672 48 9381 9383 +6673 48 9384 9385 +6674 48 9384 9386 +6675 48 9387 9388 +6676 48 9387 9389 +6677 48 9390 9391 +6678 48 9390 9392 +6679 48 9393 9394 +6680 48 9393 9395 +6681 48 9396 9397 +6682 48 9396 9398 +6683 48 9399 9400 +6684 48 9399 9401 +6685 48 9402 9403 +6686 48 9402 9404 +6687 48 9405 9406 +6688 48 9405 9407 +6689 48 9408 9409 +6690 48 9408 9410 +6691 48 9411 9412 +6692 48 9411 9413 +6693 48 9414 9415 +6694 48 9414 9416 +6695 48 9417 9418 +6696 48 9417 9419 +6697 48 9420 9421 +6698 48 9420 9422 +6699 48 9423 9424 +6700 48 9423 9425 +6701 48 9426 9427 +6702 48 9426 9428 +6703 48 9429 9430 +6704 48 9429 9431 +6705 48 9432 9433 +6706 48 9432 9434 +6707 48 9435 9436 +6708 48 9435 9437 +6709 48 9438 9439 +6710 48 9438 9440 +6711 48 9441 9442 +6712 48 9441 9443 +6713 48 9444 9445 +6714 48 9444 9446 +6715 48 9447 9448 +6716 48 9447 9449 +6717 48 9450 9451 +6718 48 9450 9452 +6719 48 9453 9454 +6720 48 9453 9455 +6721 48 9456 9457 +6722 48 9456 9458 +6723 48 9459 9460 +6724 48 9459 9461 +6725 48 9462 9463 +6726 48 9462 9464 +6727 48 9465 9466 +6728 48 9465 9467 +6729 48 9468 9469 +6730 48 9468 9470 +6731 48 9471 9472 +6732 48 9471 9473 +6733 48 9474 9475 +6734 48 9474 9476 +6735 48 9477 9478 +6736 48 9477 9479 +6737 48 9480 9481 +6738 48 9480 9482 +6739 48 9483 9484 +6740 48 9483 9485 +6741 48 9486 9487 +6742 48 9486 9488 +6743 48 9489 9490 +6744 48 9489 9491 +6745 48 9492 9493 +6746 48 9492 9494 +6747 48 9495 9496 +6748 48 9495 9497 +6749 48 9498 9499 +6750 48 9498 9500 +6751 48 9501 9502 +6752 48 9501 9503 +6753 48 9504 9505 +6754 48 9504 9506 +6755 48 9507 9508 +6756 48 9507 9509 +6757 48 9510 9511 +6758 48 9510 9512 +6759 48 9513 9514 +6760 48 9513 9515 +6761 48 9516 9517 +6762 48 9516 9518 +6763 48 9519 9520 +6764 48 9519 9521 +6765 48 9522 9523 +6766 48 9522 9524 +6767 48 9525 9526 +6768 48 9525 9527 +6769 48 9528 9529 +6770 48 9528 9530 +6771 48 9531 9532 +6772 48 9531 9533 +6773 48 9534 9535 +6774 48 9534 9536 +6775 48 9537 9538 +6776 48 9537 9539 +6777 48 9540 9541 +6778 48 9540 9542 +6779 48 9543 9544 +6780 48 9543 9545 +6781 48 9546 9547 +6782 48 9546 9548 +6783 48 9549 9550 +6784 48 9549 9551 +6785 48 9552 9553 +6786 48 9552 9554 +6787 48 9555 9556 +6788 48 9555 9557 +6789 48 9558 9559 +6790 48 9558 9560 +6791 48 9561 9562 +6792 48 9561 9563 +6793 48 9564 9565 +6794 48 9564 9566 +6795 48 9567 9568 +6796 48 9567 9569 +6797 48 9570 9571 +6798 48 9570 9572 +6799 48 9573 9574 +6800 48 9573 9575 +6801 48 9576 9577 +6802 48 9576 9578 +6803 48 9579 9580 +6804 48 9579 9581 +6805 48 9582 9583 +6806 48 9582 9584 +6807 48 9585 9586 +6808 48 9585 9587 +6809 48 9588 9589 +6810 48 9588 9590 +6811 48 9591 9592 +6812 48 9591 9593 +6813 48 9594 9595 +6814 48 9594 9596 +6815 48 9597 9598 +6816 48 9597 9599 +6817 48 9600 9601 +6818 48 9600 9602 +6819 48 9603 9604 +6820 48 9603 9605 +6821 48 9606 9607 +6822 48 9606 9608 +6823 48 9609 9610 +6824 48 9609 9611 +6825 48 9612 9613 +6826 48 9612 9614 +6827 48 9615 9616 +6828 48 9615 9617 +6829 48 9618 9619 +6830 48 9618 9620 +6831 48 9621 9622 +6832 48 9621 9623 +6833 48 9624 9625 +6834 48 9624 9626 +6835 48 9627 9628 +6836 48 9627 9629 +6837 48 9630 9631 +6838 48 9630 9632 +6839 48 9633 9634 +6840 48 9633 9635 +6841 48 9636 9637 +6842 48 9636 9638 +6843 48 9639 9640 +6844 48 9639 9641 +6845 48 9642 9643 +6846 48 9642 9644 +6847 48 9645 9646 +6848 48 9645 9647 +6849 48 9648 9649 +6850 48 9648 9650 +6851 48 9651 9652 +6852 48 9651 9653 +6853 48 9654 9655 +6854 48 9654 9656 +6855 48 9657 9658 +6856 48 9657 9659 +6857 48 9660 9661 +6858 48 9660 9662 +6859 48 9663 9664 +6860 48 9663 9665 +6861 48 9666 9667 +6862 48 9666 9668 +6863 48 9669 9670 +6864 48 9669 9671 +6865 48 9672 9673 +6866 48 9672 9674 +6867 48 9675 9676 +6868 48 9675 9677 +6869 48 9678 9679 +6870 48 9678 9680 +6871 48 9681 9682 +6872 48 9681 9683 +6873 48 9684 9685 +6874 48 9684 9686 +6875 48 9687 9688 +6876 48 9687 9689 +6877 48 9690 9691 +6878 48 9690 9692 +6879 48 9693 9694 +6880 48 9693 9695 +6881 48 9696 9697 +6882 48 9696 9698 +6883 48 9699 9700 +6884 48 9699 9701 +6885 48 9702 9703 +6886 48 9702 9704 +6887 48 9705 9706 +6888 48 9705 9707 +6889 48 9708 9709 +6890 48 9708 9710 +6891 48 9711 9712 +6892 48 9711 9713 +6893 48 9714 9715 +6894 48 9714 9716 +6895 48 9717 9718 +6896 48 9717 9719 +6897 48 9720 9721 +6898 48 9720 9722 +6899 48 9723 9724 +6900 48 9723 9725 +6901 48 9726 9727 +6902 48 9726 9728 +6903 48 9729 9730 +6904 48 9729 9731 +6905 48 9732 9733 +6906 48 9732 9734 +6907 48 9735 9736 +6908 48 9735 9737 + +Angles + +1 1 2 1 5 +2 1 2 1 6 +3 1 2 1 7 +4 2 5 1 6 +5 2 5 1 7 +6 2 6 1 7 +7 3 3 2 1 +8 4 8 2 1 +9 5 9 2 1 +10 6 3 2 8 +11 7 3 2 9 +12 8 8 2 9 +13 9 4 3 2 +14 10 20 3 2 +15 11 20 3 4 +16 12 2 9 10 +17 13 2 9 13 +18 13 2 9 14 +19 14 10 9 13 +20 14 10 9 14 +21 15 13 9 14 +22 16 9 10 11 +23 14 9 10 15 +24 14 9 10 16 +25 17 15 10 11 +26 17 16 10 11 +27 15 15 10 16 +28 18 10 11 12 +29 19 17 12 11 +30 19 18 12 11 +31 19 19 12 11 +32 15 17 12 18 +33 15 17 12 19 +34 15 18 12 19 +35 20 3 20 21 +36 21 3 20 24 +37 22 24 20 21 +38 23 20 21 22 +39 24 20 21 25 +40 25 20 21 26 +41 6 22 21 25 +42 7 22 21 26 +43 8 25 21 26 +44 9 23 22 21 +45 10 37 22 21 +46 11 37 22 23 +47 12 21 26 27 +48 13 21 26 31 +49 13 21 26 32 +50 14 27 26 31 +51 14 27 26 32 +52 15 31 26 32 +53 26 28 27 26 +54 14 26 27 33 +55 14 26 27 34 +56 27 28 27 33 +57 27 28 27 34 +58 15 33 27 34 +59 28 29 28 27 +60 29 30 28 27 +61 11 30 28 29 +62 21 28 30 35 +63 21 28 30 36 +64 30 35 30 36 +65 20 22 37 38 +66 21 22 37 41 +67 22 41 37 38 +68 23 37 38 39 +69 24 37 38 42 +70 31 37 38 43 +71 6 39 38 42 +72 32 39 38 43 +73 33 42 38 43 +74 9 40 39 38 +75 10 56 39 38 +76 11 56 39 40 +77 34 38 43 44 +78 34 38 43 45 +79 33 47 43 38 +80 35 44 43 45 +81 8 47 43 44 +82 8 47 43 45 +83 12 43 44 46 +84 13 43 44 48 +85 13 43 44 49 +86 14 46 44 48 +87 14 46 44 49 +88 15 48 44 49 +89 13 43 45 50 +90 13 43 45 51 +91 13 43 45 52 +92 15 50 45 51 +93 15 50 45 52 +94 15 51 45 52 +95 14 44 46 53 +96 14 44 46 54 +97 14 44 46 55 +98 15 53 46 54 +99 15 53 46 55 +100 15 54 46 55 +101 20 39 56 57 +102 21 39 56 60 +103 22 60 56 57 +104 23 56 57 58 +105 24 56 57 61 +106 25 56 57 62 +107 6 58 57 61 +108 7 58 57 62 +109 8 61 57 62 +110 9 59 58 57 +111 10 76 58 57 +112 11 76 58 59 +113 36 57 62 63 +114 13 57 62 69 +115 13 57 62 70 +116 37 69 62 63 +117 37 70 62 63 +118 15 69 62 70 +119 38 62 63 64 +120 38 62 63 65 +121 39 64 63 65 +122 39 63 64 66 +123 40 63 64 71 +124 40 66 64 71 +125 39 63 65 67 +126 40 63 65 72 +127 40 67 65 72 +128 39 64 66 68 +129 40 64 66 73 +130 40 68 66 73 +131 39 65 67 68 +132 40 65 67 74 +133 40 68 67 74 +134 39 66 68 67 +135 40 66 68 75 +136 40 67 68 75 +137 20 58 76 77 +138 21 58 76 80 +139 22 80 76 77 +140 23 76 77 78 +141 24 76 77 81 +142 31 76 77 82 +143 6 78 77 81 +144 32 78 77 82 +145 33 81 77 82 +146 9 79 78 77 +147 10 92 78 77 +148 11 92 78 79 +149 34 77 82 83 +150 34 77 82 84 +151 33 85 82 77 +152 35 83 82 84 +153 8 85 82 83 +154 8 85 82 84 +155 13 82 83 86 +156 13 82 83 87 +157 13 82 83 88 +158 15 86 83 87 +159 15 86 83 88 +160 15 87 83 88 +161 13 82 84 89 +162 13 82 84 90 +163 13 82 84 91 +164 15 89 84 90 +165 15 89 84 91 +166 15 90 84 91 +167 20 78 92 93 +168 21 78 92 96 +169 22 96 92 93 +170 23 92 93 94 +171 24 92 93 97 +172 25 92 93 98 +173 6 94 93 97 +174 7 94 93 98 +175 8 97 93 98 +176 9 95 94 93 +177 10 114 94 93 +178 11 114 94 95 +179 12 93 98 99 +180 13 93 98 103 +181 13 93 98 104 +182 14 99 98 103 +183 14 99 98 104 +184 15 103 98 104 +185 41 98 99 100 +186 14 98 99 105 +187 14 98 99 106 +188 14 100 99 105 +189 14 100 99 106 +190 15 105 99 106 +191 41 99 100 101 +192 14 99 100 107 +193 14 99 100 108 +194 14 101 100 107 +195 14 101 100 108 +196 15 107 100 108 +197 42 100 101 102 +198 14 100 101 109 +199 14 100 101 110 +200 43 109 101 102 +201 43 110 101 102 +202 15 109 101 110 +203 44 101 102 111 +204 44 101 102 112 +205 44 101 102 113 +206 45 111 102 112 +207 45 111 102 113 +208 45 112 102 113 +209 20 94 114 115 +210 21 94 114 118 +211 22 118 114 115 +212 23 114 115 116 +213 24 114 115 119 +214 31 114 115 120 +215 6 116 115 119 +216 32 116 115 120 +217 33 119 115 120 +218 9 117 116 115 +219 10 128 116 115 +220 11 128 116 117 +221 46 115 120 121 +222 34 115 120 122 +223 33 123 120 115 +224 47 122 120 121 +225 48 123 120 121 +226 8 123 120 122 +227 49 120 121 124 +228 13 120 122 125 +229 13 120 122 126 +230 13 120 122 127 +231 15 125 122 126 +232 15 125 122 127 +233 15 126 122 127 +234 20 116 128 129 +235 21 116 128 132 +236 22 132 128 129 +237 23 128 129 130 +238 24 128 129 133 +239 25 128 129 134 +240 6 130 129 133 +241 7 130 129 134 +242 8 133 129 134 +243 9 131 130 129 +244 10 147 130 129 +245 11 147 130 131 +246 50 129 134 135 +247 13 129 134 138 +248 13 129 134 139 +249 13 135 134 138 +250 13 135 134 139 +251 15 138 134 139 +252 35 134 135 136 +253 35 134 135 137 +254 8 140 135 134 +255 35 136 135 137 +256 8 140 135 136 +257 8 140 135 137 +258 13 135 136 141 +259 13 135 136 142 +260 13 135 136 143 +261 15 141 136 142 +262 15 141 136 143 +263 15 142 136 143 +264 13 135 137 144 +265 13 135 137 145 +266 13 135 137 146 +267 15 144 137 145 +268 15 144 137 146 +269 15 145 137 146 +270 20 130 147 148 +271 21 130 147 151 +272 22 151 147 148 +273 23 147 148 149 +274 24 147 148 152 +275 31 147 148 153 +276 6 149 148 152 +277 32 149 148 153 +278 33 152 148 153 +279 9 150 149 148 +280 10 161 149 148 +281 11 161 149 150 +282 46 148 153 154 +283 34 148 153 155 +284 33 156 153 148 +285 47 155 153 154 +286 48 156 153 154 +287 8 156 153 155 +288 49 153 154 157 +289 13 153 155 158 +290 13 153 155 159 +291 13 153 155 160 +292 15 158 155 159 +293 15 158 155 160 +294 15 159 155 160 +295 51 162 161 149 +296 21 149 161 165 +297 52 162 161 165 +298 53 161 162 163 +299 54 161 162 166 +300 54 161 162 167 +301 55 163 162 166 +302 55 163 162 167 +303 56 166 162 167 +304 57 162 163 164 +305 58 168 163 162 +306 11 168 163 164 +307 20 163 168 169 +308 21 163 168 172 +309 22 172 168 169 +310 23 168 169 170 +311 24 168 169 173 +312 25 168 169 174 +313 6 170 169 173 +314 7 170 169 174 +315 8 173 169 174 +316 9 171 170 169 +317 10 190 170 169 +318 11 190 170 171 +319 12 169 174 175 +320 13 169 174 179 +321 13 169 174 180 +322 14 175 174 179 +323 14 175 174 180 +324 15 179 174 180 +325 41 174 175 176 +326 14 174 175 181 +327 14 174 175 182 +328 14 176 175 181 +329 14 176 175 182 +330 15 181 175 182 +331 41 175 176 177 +332 14 175 176 183 +333 14 175 176 184 +334 14 177 176 183 +335 14 177 176 184 +336 15 183 176 184 +337 42 176 177 178 +338 14 176 177 185 +339 14 176 177 186 +340 43 185 177 178 +341 43 186 177 178 +342 15 185 177 186 +343 44 177 178 187 +344 44 177 178 188 +345 44 177 178 189 +346 45 187 178 188 +347 45 187 178 189 +348 45 188 178 189 +349 20 170 190 191 +350 21 170 190 194 +351 22 194 190 191 +352 23 190 191 192 +353 24 190 191 195 +354 31 190 191 196 +355 6 192 191 195 +356 32 192 191 196 +357 33 195 191 196 +358 9 193 192 191 +359 10 204 192 191 +360 11 204 192 193 +361 46 191 196 197 +362 34 191 196 198 +363 33 199 196 191 +364 47 198 196 197 +365 48 199 196 197 +366 8 199 196 198 +367 49 196 197 200 +368 13 196 198 201 +369 13 196 198 202 +370 13 196 198 203 +371 15 201 198 202 +372 15 201 198 203 +373 15 202 198 203 +374 20 192 204 205 +375 21 192 204 208 +376 22 208 204 205 +377 23 204 205 206 +378 24 204 205 209 +379 31 204 205 210 +380 6 206 205 209 +381 32 206 205 210 +382 33 209 205 210 +383 9 207 206 205 +384 10 223 206 205 +385 11 223 206 207 +386 34 205 210 211 +387 34 205 210 212 +388 33 214 210 205 +389 35 211 210 212 +390 8 214 210 211 +391 8 214 210 212 +392 12 210 211 213 +393 13 210 211 215 +394 13 210 211 216 +395 14 213 211 215 +396 14 213 211 216 +397 15 215 211 216 +398 13 210 212 217 +399 13 210 212 218 +400 13 210 212 219 +401 15 217 212 218 +402 15 217 212 219 +403 15 218 212 219 +404 14 211 213 220 +405 14 211 213 221 +406 14 211 213 222 +407 15 220 213 221 +408 15 220 213 222 +409 15 221 213 222 +410 20 206 223 224 +411 21 206 223 227 +412 22 227 223 224 +413 23 223 224 225 +414 24 223 224 228 +415 31 223 224 229 +416 6 225 224 228 +417 32 225 224 229 +418 33 228 224 229 +419 9 226 225 224 +420 10 237 225 224 +421 11 237 225 226 +422 46 224 229 230 +423 34 224 229 231 +424 33 232 229 224 +425 47 231 229 230 +426 48 232 229 230 +427 8 232 229 231 +428 49 229 230 233 +429 13 229 231 234 +430 13 229 231 235 +431 13 229 231 236 +432 15 234 231 235 +433 15 234 231 236 +434 15 235 231 236 +435 20 225 237 238 +436 21 225 237 241 +437 22 241 237 238 +438 23 237 238 239 +439 24 237 238 242 +440 25 237 238 243 +441 6 239 238 242 +442 7 239 238 243 +443 8 242 238 243 +444 9 240 239 238 +445 10 256 239 238 +446 11 256 239 240 +447 50 238 243 244 +448 13 238 243 247 +449 13 238 243 248 +450 13 244 243 247 +451 13 244 243 248 +452 15 247 243 248 +453 35 243 244 245 +454 35 243 244 246 +455 8 249 244 243 +456 35 245 244 246 +457 8 249 244 245 +458 8 249 244 246 +459 13 244 245 250 +460 13 244 245 251 +461 13 244 245 252 +462 15 250 245 251 +463 15 250 245 252 +464 15 251 245 252 +465 13 244 246 253 +466 13 244 246 254 +467 13 244 246 255 +468 15 253 246 254 +469 15 253 246 255 +470 15 254 246 255 +471 20 239 256 257 +472 21 239 256 260 +473 22 260 256 257 +474 23 256 257 258 +475 24 256 257 261 +476 25 256 257 262 +477 6 258 257 261 +478 7 258 257 262 +479 8 261 257 262 +480 9 259 258 257 +481 10 271 258 257 +482 11 271 258 259 +483 12 257 262 263 +484 13 257 262 267 +485 13 257 262 268 +486 14 263 262 267 +487 14 263 262 268 +488 15 267 262 268 +489 59 262 263 264 +490 14 262 263 269 +491 14 262 263 270 +492 60 269 263 264 +493 60 270 263 264 +494 15 269 263 270 +495 61 263 264 265 +496 61 263 264 266 +497 62 265 264 266 +498 20 258 271 272 +499 21 258 271 275 +500 22 275 271 272 +501 23 271 272 273 +502 24 271 272 276 +503 31 271 272 277 +504 6 273 272 276 +505 32 273 272 277 +506 33 276 272 277 +507 9 274 273 272 +508 10 287 273 272 +509 11 287 273 274 +510 34 272 277 278 +511 34 272 277 279 +512 33 280 277 272 +513 35 278 277 279 +514 8 280 277 278 +515 8 280 277 279 +516 13 277 278 281 +517 13 277 278 282 +518 13 277 278 283 +519 15 281 278 282 +520 15 281 278 283 +521 15 282 278 283 +522 13 277 279 284 +523 13 277 279 285 +524 13 277 279 286 +525 15 284 279 285 +526 15 284 279 286 +527 15 285 279 286 +528 20 273 287 288 +529 21 273 287 291 +530 22 291 287 288 +531 23 287 288 289 +532 24 287 288 292 +533 25 287 288 293 +534 6 289 288 292 +535 7 289 288 293 +536 8 292 288 293 +537 9 290 289 288 +538 63 288 289 302 +539 64 290 289 302 +540 12 288 293 294 +541 13 288 293 298 +542 13 288 293 299 +543 14 294 293 298 +544 14 294 293 299 +545 15 298 293 299 +546 59 293 294 295 +547 14 293 294 300 +548 14 293 294 301 +549 60 300 294 295 +550 60 301 294 295 +551 15 300 294 301 +552 61 294 295 296 +553 61 294 295 297 +554 62 296 295 297 +555 65 289 302 303 +556 66 289 302 309 +557 67 303 302 309 +558 68 304 303 302 +559 69 306 303 302 +560 70 302 303 307 +561 6 304 303 306 +562 71 304 303 307 +563 72 306 303 307 +564 9 305 304 303 +565 10 316 304 303 +566 11 316 304 305 +567 73 303 307 308 +568 74 303 307 310 +569 74 303 307 311 +570 75 310 307 308 +571 75 311 307 308 +572 76 310 307 311 +573 77 307 308 309 +574 75 312 308 307 +575 75 313 308 307 +576 75 312 308 309 +577 75 313 308 309 +578 76 312 308 313 +579 78 302 309 308 +580 79 314 309 302 +581 79 315 309 302 +582 80 314 309 308 +583 80 315 309 308 +584 81 314 309 315 +585 20 304 316 317 +586 21 304 316 320 +587 22 320 316 317 +588 23 316 317 318 +589 24 316 317 321 +590 25 316 317 322 +591 6 318 317 321 +592 7 318 317 322 +593 8 321 317 322 +594 9 319 318 317 +595 10 327 318 317 +596 11 327 318 319 +597 82 317 322 323 +598 13 317 322 324 +599 13 317 322 325 +600 83 324 322 323 +601 83 325 322 323 +602 15 324 322 325 +603 84 322 323 326 +604 20 318 327 328 +605 21 318 327 331 +606 22 331 327 328 +607 23 327 328 329 +608 24 327 328 332 +609 25 327 328 333 +610 6 329 328 332 +611 7 329 328 333 +612 8 332 328 333 +613 9 330 329 328 +614 10 339 329 328 +615 11 339 329 330 +616 85 328 333 334 +617 13 328 333 337 +618 13 328 333 338 +619 60 337 333 334 +620 60 338 333 334 +621 15 337 333 338 +622 61 333 334 335 +623 61 333 334 336 +624 62 335 334 336 +625 20 329 339 340 +626 21 329 339 343 +627 22 343 339 340 +628 23 339 340 341 +629 24 339 340 344 +630 31 339 340 345 +631 6 341 340 344 +632 32 341 340 345 +633 33 344 340 345 +634 9 342 341 340 +635 10 353 341 340 +636 11 353 341 342 +637 46 340 345 346 +638 34 340 345 347 +639 33 348 345 340 +640 47 347 345 346 +641 48 348 345 346 +642 8 348 345 347 +643 49 345 346 349 +644 13 345 347 350 +645 13 345 347 351 +646 13 345 347 352 +647 15 350 347 351 +648 15 350 347 352 +649 15 351 347 352 +650 20 341 353 354 +651 21 341 353 357 +652 22 357 353 354 +653 23 353 354 355 +654 24 353 354 358 +655 31 353 354 359 +656 6 355 354 358 +657 32 355 354 359 +658 33 358 354 359 +659 9 356 355 354 +660 10 372 355 354 +661 11 372 355 356 +662 34 354 359 360 +663 34 354 359 361 +664 33 363 359 354 +665 35 360 359 361 +666 8 363 359 360 +667 8 363 359 361 +668 12 359 360 362 +669 13 359 360 364 +670 13 359 360 365 +671 14 362 360 364 +672 14 362 360 365 +673 15 364 360 365 +674 13 359 361 366 +675 13 359 361 367 +676 13 359 361 368 +677 15 366 361 367 +678 15 366 361 368 +679 15 367 361 368 +680 14 360 362 369 +681 14 360 362 370 +682 14 360 362 371 +683 15 369 362 370 +684 15 369 362 371 +685 15 370 362 371 +686 20 355 372 373 +687 21 355 372 376 +688 22 376 372 373 +689 23 372 373 374 +690 24 372 373 377 +691 25 372 373 378 +692 6 374 373 377 +693 7 374 373 378 +694 8 377 373 378 +695 9 375 374 373 +696 10 387 374 373 +697 11 387 374 375 +698 12 373 378 379 +699 13 373 378 383 +700 13 373 378 384 +701 14 379 378 383 +702 14 379 378 384 +703 15 383 378 384 +704 59 378 379 380 +705 14 378 379 385 +706 14 378 379 386 +707 60 385 379 380 +708 60 386 379 380 +709 15 385 379 386 +710 61 379 380 381 +711 61 379 380 382 +712 62 381 380 382 +713 20 374 387 388 +714 21 374 387 391 +715 22 391 387 388 +716 23 387 388 389 +717 24 387 388 392 +718 25 387 388 393 +719 6 389 388 392 +720 7 389 388 393 +721 8 392 388 393 +722 9 390 389 388 +723 10 401 389 388 +724 11 401 389 390 +725 86 394 393 388 +726 13 388 393 397 +727 13 388 393 398 +728 27 394 393 397 +729 27 394 393 398 +730 15 397 393 398 +731 28 395 394 393 +732 29 396 394 393 +733 11 396 394 395 +734 21 394 396 399 +735 21 394 396 400 +736 30 399 396 400 +737 20 389 401 402 +738 21 389 401 405 +739 22 405 401 402 +740 23 401 402 403 +741 24 401 402 406 +742 31 401 402 407 +743 6 403 402 406 +744 32 403 402 407 +745 33 406 402 407 +746 9 404 403 402 +747 10 417 403 402 +748 11 417 403 404 +749 34 402 407 408 +750 34 402 407 409 +751 33 410 407 402 +752 35 408 407 409 +753 8 410 407 408 +754 8 410 407 409 +755 13 407 408 411 +756 13 407 408 412 +757 13 407 408 413 +758 15 411 408 412 +759 15 411 408 413 +760 15 412 408 413 +761 13 407 409 414 +762 13 407 409 415 +763 13 407 409 416 +764 15 414 409 415 +765 15 414 409 416 +766 15 415 409 416 +767 20 403 417 418 +768 21 403 417 421 +769 22 421 417 418 +770 23 417 418 419 +771 24 417 418 422 +772 25 417 418 423 +773 6 419 418 422 +774 7 419 418 423 +775 8 422 418 423 +776 9 420 419 418 +777 10 439 419 418 +778 11 439 419 420 +779 12 418 423 424 +780 13 418 423 428 +781 13 418 423 429 +782 14 424 423 428 +783 14 424 423 429 +784 15 428 423 429 +785 41 423 424 425 +786 14 423 424 430 +787 14 423 424 431 +788 14 425 424 430 +789 14 425 424 431 +790 15 430 424 431 +791 41 424 425 426 +792 14 424 425 432 +793 14 424 425 433 +794 14 426 425 432 +795 14 426 425 433 +796 15 432 425 433 +797 42 425 426 427 +798 14 425 426 434 +799 14 425 426 435 +800 43 434 426 427 +801 43 435 426 427 +802 15 434 426 435 +803 44 426 427 436 +804 44 426 427 437 +805 44 426 427 438 +806 45 436 427 437 +807 45 436 427 438 +808 45 437 427 438 +809 20 419 439 440 +810 21 419 439 443 +811 22 443 439 440 +812 23 439 440 441 +813 24 439 440 444 +814 25 439 440 445 +815 6 441 440 444 +816 7 441 440 445 +817 8 444 440 445 +818 9 442 441 440 +819 10 449 441 440 +820 11 449 441 442 +821 13 440 445 446 +822 13 440 445 447 +823 13 440 445 448 +824 15 446 445 447 +825 15 446 445 448 +826 15 447 445 448 +827 20 441 449 450 +828 21 441 449 453 +829 22 453 449 450 +830 23 449 450 451 +831 24 449 450 454 +832 25 449 450 455 +833 6 451 450 454 +834 7 451 450 455 +835 8 454 450 455 +836 9 452 451 450 +837 10 471 451 450 +838 11 471 451 452 +839 12 450 455 456 +840 13 450 455 460 +841 13 450 455 461 +842 14 456 455 460 +843 14 456 455 461 +844 15 460 455 461 +845 41 455 456 457 +846 14 455 456 462 +847 14 455 456 463 +848 14 457 456 462 +849 14 457 456 463 +850 15 462 456 463 +851 41 456 457 458 +852 14 456 457 464 +853 14 456 457 465 +854 14 458 457 464 +855 14 458 457 465 +856 15 464 457 465 +857 42 457 458 459 +858 14 457 458 466 +859 14 457 458 467 +860 43 466 458 459 +861 43 467 458 459 +862 15 466 458 467 +863 44 458 459 468 +864 44 458 459 469 +865 44 458 459 470 +866 45 468 459 469 +867 45 468 459 470 +868 45 469 459 470 +869 20 451 471 472 +870 21 451 471 475 +871 22 475 471 472 +872 23 471 472 473 +873 24 471 472 476 +874 31 471 472 477 +875 6 473 472 476 +876 32 473 472 477 +877 33 476 472 477 +878 9 474 473 472 +879 10 490 473 472 +880 11 490 473 474 +881 34 472 477 478 +882 34 472 477 479 +883 33 481 477 472 +884 35 478 477 479 +885 8 481 477 478 +886 8 481 477 479 +887 12 477 478 480 +888 13 477 478 482 +889 13 477 478 483 +890 14 480 478 482 +891 14 480 478 483 +892 15 482 478 483 +893 13 477 479 484 +894 13 477 479 485 +895 13 477 479 486 +896 15 484 479 485 +897 15 484 479 486 +898 15 485 479 486 +899 14 478 480 487 +900 14 478 480 488 +901 14 478 480 489 +902 15 487 480 488 +903 15 487 480 489 +904 15 488 480 489 +905 20 473 490 491 +906 21 473 490 494 +907 22 494 490 491 +908 23 490 491 492 +909 24 490 491 495 +910 25 490 491 496 +911 6 492 491 495 +912 7 492 491 496 +913 8 495 491 496 +914 9 493 492 491 +915 10 507 492 491 +916 11 507 492 493 +917 12 491 496 497 +918 13 491 496 501 +919 13 491 496 502 +920 14 497 496 501 +921 14 497 496 502 +922 15 501 496 502 +923 26 498 497 496 +924 14 496 497 503 +925 14 496 497 504 +926 27 498 497 503 +927 27 498 497 504 +928 15 503 497 504 +929 28 499 498 497 +930 29 500 498 497 +931 11 500 498 499 +932 21 498 500 505 +933 21 498 500 506 +934 30 505 500 506 +935 20 492 507 508 +936 21 492 507 511 +937 22 511 507 508 +938 23 507 508 509 +939 24 507 508 512 +940 25 507 508 513 +941 6 509 508 512 +942 7 509 508 513 +943 8 512 508 513 +944 9 510 509 508 +945 10 519 509 508 +946 11 519 509 510 +947 85 508 513 514 +948 13 508 513 517 +949 13 508 513 518 +950 60 517 513 514 +951 60 518 513 514 +952 15 517 513 518 +953 61 513 514 515 +954 61 513 514 516 +955 62 515 514 516 +956 20 509 519 520 +957 21 509 519 523 +958 22 523 519 520 +959 23 519 520 521 +960 24 519 520 524 +961 25 519 520 525 +962 6 521 520 524 +963 7 521 520 525 +964 8 524 520 525 +965 9 522 521 520 +966 10 541 521 520 +967 11 541 521 522 +968 12 520 525 526 +969 13 520 525 530 +970 13 520 525 531 +971 14 526 525 530 +972 14 526 525 531 +973 15 530 525 531 +974 41 525 526 527 +975 14 525 526 532 +976 14 525 526 533 +977 14 527 526 532 +978 14 527 526 533 +979 15 532 526 533 +980 41 526 527 528 +981 14 526 527 534 +982 14 526 527 535 +983 14 528 527 534 +984 14 528 527 535 +985 15 534 527 535 +986 42 527 528 529 +987 14 527 528 536 +988 14 527 528 537 +989 43 536 528 529 +990 43 537 528 529 +991 15 536 528 537 +992 44 528 529 538 +993 44 528 529 539 +994 44 528 529 540 +995 45 538 529 539 +996 45 538 529 540 +997 45 539 529 540 +998 20 521 541 542 +999 21 521 541 545 +1000 22 545 541 542 +1001 23 541 542 543 +1002 24 541 542 546 +1003 25 541 542 547 +1004 6 543 542 546 +1005 7 543 542 547 +1006 8 546 542 547 +1007 9 544 543 542 +1008 10 556 543 542 +1009 11 556 543 544 +1010 12 542 547 548 +1011 13 542 547 552 +1012 13 542 547 553 +1013 14 548 547 552 +1014 14 548 547 553 +1015 15 552 547 553 +1016 59 547 548 549 +1017 14 547 548 554 +1018 14 547 548 555 +1019 60 554 548 549 +1020 60 555 548 549 +1021 15 554 548 555 +1022 61 548 549 550 +1023 61 548 549 551 +1024 62 550 549 551 +1025 51 557 556 543 +1026 21 543 556 560 +1027 52 557 556 560 +1028 53 556 557 558 +1029 54 556 557 561 +1030 54 556 557 562 +1031 55 558 557 561 +1032 55 558 557 562 +1033 56 561 557 562 +1034 57 557 558 559 +1035 58 563 558 557 +1036 11 563 558 559 +1037 20 558 563 564 +1038 21 558 563 567 +1039 22 567 563 564 +1040 23 563 564 565 +1041 24 563 564 568 +1042 31 563 564 569 +1043 6 565 564 568 +1044 32 565 564 569 +1045 33 568 564 569 +1046 9 566 565 564 +1047 63 564 565 582 +1048 64 566 565 582 +1049 34 564 569 570 +1050 34 564 569 571 +1051 33 573 569 564 +1052 35 570 569 571 +1053 8 573 569 570 +1054 8 573 569 571 +1055 12 569 570 572 +1056 13 569 570 574 +1057 13 569 570 575 +1058 14 572 570 574 +1059 14 572 570 575 +1060 15 574 570 575 +1061 13 569 571 576 +1062 13 569 571 577 +1063 13 569 571 578 +1064 15 576 571 577 +1065 15 576 571 578 +1066 15 577 571 578 +1067 14 570 572 579 +1068 14 570 572 580 +1069 14 570 572 581 +1070 15 579 572 580 +1071 15 579 572 581 +1072 15 580 572 581 +1073 65 565 582 583 +1074 66 565 582 589 +1075 67 583 582 589 +1076 68 584 583 582 +1077 69 586 583 582 +1078 70 582 583 587 +1079 6 584 583 586 +1080 71 584 583 587 +1081 72 586 583 587 +1082 9 585 584 583 +1083 63 583 584 596 +1084 64 585 584 596 +1085 73 583 587 588 +1086 74 583 587 590 +1087 74 583 587 591 +1088 75 590 587 588 +1089 75 591 587 588 +1090 76 590 587 591 +1091 77 587 588 589 +1092 75 592 588 587 +1093 75 593 588 587 +1094 75 592 588 589 +1095 75 593 588 589 +1096 76 592 588 593 +1097 78 582 589 588 +1098 79 594 589 582 +1099 79 595 589 582 +1100 80 594 589 588 +1101 80 595 589 588 +1102 81 594 589 595 +1103 65 584 596 597 +1104 66 584 596 603 +1105 67 597 596 603 +1106 68 598 597 596 +1107 69 600 597 596 +1108 70 596 597 601 +1109 6 598 597 600 +1110 71 598 597 601 +1111 72 600 597 601 +1112 9 599 598 597 +1113 10 610 598 597 +1114 11 610 598 599 +1115 73 597 601 602 +1116 74 597 601 604 +1117 74 597 601 605 +1118 75 604 601 602 +1119 75 605 601 602 +1120 76 604 601 605 +1121 77 601 602 603 +1122 75 606 602 601 +1123 75 607 602 601 +1124 75 606 602 603 +1125 75 607 602 603 +1126 76 606 602 607 +1127 78 596 603 602 +1128 79 608 603 596 +1129 79 609 603 596 +1130 80 608 603 602 +1131 80 609 603 602 +1132 81 608 603 609 +1133 20 598 610 611 +1134 21 598 610 614 +1135 22 614 610 611 +1136 23 610 611 612 +1137 24 610 611 615 +1138 25 610 611 616 +1139 6 612 611 615 +1140 7 612 611 616 +1141 8 615 611 616 +1142 9 613 612 611 +1143 10 622 612 611 +1144 11 622 612 613 +1145 85 611 616 617 +1146 13 611 616 620 +1147 13 611 616 621 +1148 60 620 616 617 +1149 60 621 616 617 +1150 15 620 616 621 +1151 61 616 617 618 +1152 61 616 617 619 +1153 62 618 617 619 +1154 20 612 622 623 +1155 21 612 622 626 +1156 22 626 622 623 +1157 23 622 623 624 +1158 24 622 623 627 +1159 25 622 623 628 +1160 6 624 623 627 +1161 7 624 623 628 +1162 8 627 623 628 +1163 9 625 624 623 +1164 10 639 624 623 +1165 11 639 624 625 +1166 12 623 628 629 +1167 13 623 628 633 +1168 13 623 628 634 +1169 14 629 628 633 +1170 14 629 628 634 +1171 15 633 628 634 +1172 26 630 629 628 +1173 14 628 629 635 +1174 14 628 629 636 +1175 27 630 629 635 +1176 27 630 629 636 +1177 15 635 629 636 +1178 28 631 630 629 +1179 29 632 630 629 +1180 11 632 630 631 +1181 21 630 632 637 +1182 21 630 632 638 +1183 30 637 632 638 +1184 20 624 639 640 +1185 21 624 639 643 +1186 22 643 639 640 +1187 23 639 640 641 +1188 24 639 640 644 +1189 25 639 640 645 +1190 6 641 640 644 +1191 7 641 640 645 +1192 8 644 640 645 +1193 9 642 641 640 +1194 10 656 641 640 +1195 11 656 641 642 +1196 12 640 645 646 +1197 13 640 645 650 +1198 13 640 645 651 +1199 14 646 645 650 +1200 14 646 645 651 +1201 15 650 645 651 +1202 26 647 646 645 +1203 14 645 646 652 +1204 14 645 646 653 +1205 27 647 646 652 +1206 27 647 646 653 +1207 15 652 646 653 +1208 28 648 647 646 +1209 29 649 647 646 +1210 11 649 647 648 +1211 21 647 649 654 +1212 21 647 649 655 +1213 30 654 649 655 +1214 20 641 656 657 +1215 21 641 656 660 +1216 22 660 656 657 +1217 23 656 657 658 +1218 24 656 657 661 +1219 25 656 657 662 +1220 6 658 657 661 +1221 7 658 657 662 +1222 8 661 657 662 +1223 9 659 658 657 +1224 10 680 658 657 +1225 11 680 658 659 +1226 12 657 662 663 +1227 13 657 662 669 +1228 13 657 662 670 +1229 14 663 662 669 +1230 14 663 662 670 +1231 15 669 662 670 +1232 41 662 663 664 +1233 14 662 663 671 +1234 14 662 663 672 +1235 14 664 663 671 +1236 14 664 663 672 +1237 15 671 663 672 +1238 87 665 664 663 +1239 14 663 664 673 +1240 14 663 664 674 +1241 88 665 664 673 +1242 88 665 664 674 +1243 15 673 664 674 +1244 89 664 665 666 +1245 90 664 665 675 +1246 91 675 665 666 +1247 92 665 666 667 +1248 92 665 666 668 +1249 92 667 666 668 +1250 91 676 667 666 +1251 91 677 667 666 +1252 93 676 667 677 +1253 91 678 668 666 +1254 91 679 668 666 +1255 93 678 668 679 +1256 20 658 680 681 +1257 21 658 680 684 +1258 22 684 680 681 +1259 23 680 681 682 +1260 24 680 681 685 +1261 25 680 681 686 +1262 6 682 681 685 +1263 7 682 681 686 +1264 8 685 681 686 +1265 9 683 682 681 +1266 10 699 682 681 +1267 11 699 682 683 +1268 50 681 686 687 +1269 13 681 686 690 +1270 13 681 686 691 +1271 13 687 686 690 +1272 13 687 686 691 +1273 15 690 686 691 +1274 35 686 687 688 +1275 35 686 687 689 +1276 8 692 687 686 +1277 35 688 687 689 +1278 8 692 687 688 +1279 8 692 687 689 +1280 13 687 688 693 +1281 13 687 688 694 +1282 13 687 688 695 +1283 15 693 688 694 +1284 15 693 688 695 +1285 15 694 688 695 +1286 13 687 689 696 +1287 13 687 689 697 +1288 13 687 689 698 +1289 15 696 689 697 +1290 15 696 689 698 +1291 15 697 689 698 +1292 20 682 699 700 +1293 21 682 699 703 +1294 22 703 699 700 +1295 23 699 700 701 +1296 24 699 700 704 +1297 31 699 700 705 +1298 6 701 700 704 +1299 32 701 700 705 +1300 33 704 700 705 +1301 9 702 701 700 +1302 10 718 701 700 +1303 11 718 701 702 +1304 34 700 705 706 +1305 34 700 705 707 +1306 33 709 705 700 +1307 35 706 705 707 +1308 8 709 705 706 +1309 8 709 705 707 +1310 12 705 706 708 +1311 13 705 706 710 +1312 13 705 706 711 +1313 14 708 706 710 +1314 14 708 706 711 +1315 15 710 706 711 +1316 13 705 707 712 +1317 13 705 707 713 +1318 13 705 707 714 +1319 15 712 707 713 +1320 15 712 707 714 +1321 15 713 707 714 +1322 14 706 708 715 +1323 14 706 708 716 +1324 14 706 708 717 +1325 15 715 708 716 +1326 15 715 708 717 +1327 15 716 708 717 +1328 20 701 718 719 +1329 21 701 718 722 +1330 22 722 718 719 +1331 23 718 719 720 +1332 24 718 719 723 +1333 25 718 719 724 +1334 6 720 719 723 +1335 7 720 719 724 +1336 8 723 719 724 +1337 9 721 720 719 +1338 10 738 720 719 +1339 11 738 720 721 +1340 36 719 724 725 +1341 13 719 724 731 +1342 13 719 724 732 +1343 37 731 724 725 +1344 37 732 724 725 +1345 15 731 724 732 +1346 38 724 725 726 +1347 38 724 725 727 +1348 39 726 725 727 +1349 39 725 726 728 +1350 40 725 726 733 +1351 40 728 726 733 +1352 39 725 727 729 +1353 40 725 727 734 +1354 40 729 727 734 +1355 39 726 728 730 +1356 40 726 728 735 +1357 40 730 728 735 +1358 39 727 729 730 +1359 40 727 729 736 +1360 40 730 729 736 +1361 39 728 730 729 +1362 40 728 730 737 +1363 40 729 730 737 +1364 20 720 738 739 +1365 21 720 738 742 +1366 22 742 738 739 +1367 23 738 739 740 +1368 24 738 739 743 +1369 25 738 739 744 +1370 6 740 739 743 +1371 7 740 739 744 +1372 8 743 739 744 +1373 9 741 740 739 +1374 10 748 740 739 +1375 11 748 740 741 +1376 13 739 744 745 +1377 13 739 744 746 +1378 13 739 744 747 +1379 15 745 744 746 +1380 15 745 744 747 +1381 15 746 744 747 +1382 51 749 748 740 +1383 21 740 748 752 +1384 52 749 748 752 +1385 53 748 749 750 +1386 54 748 749 753 +1387 54 748 749 754 +1388 55 750 749 753 +1389 55 750 749 754 +1390 56 753 749 754 +1391 57 749 750 751 +1392 58 755 750 749 +1393 11 755 750 751 +1394 20 750 755 756 +1395 21 750 755 759 +1396 22 759 755 756 +1397 23 755 756 757 +1398 24 755 756 760 +1399 25 755 756 761 +1400 6 757 756 760 +1401 7 757 756 761 +1402 8 760 756 761 +1403 9 758 757 756 +1404 10 777 757 756 +1405 11 777 757 758 +1406 12 756 761 762 +1407 13 756 761 766 +1408 13 756 761 767 +1409 14 762 761 766 +1410 14 762 761 767 +1411 15 766 761 767 +1412 41 761 762 763 +1413 14 761 762 768 +1414 14 761 762 769 +1415 14 763 762 768 +1416 14 763 762 769 +1417 15 768 762 769 +1418 41 762 763 764 +1419 14 762 763 770 +1420 14 762 763 771 +1421 14 764 763 770 +1422 14 764 763 771 +1423 15 770 763 771 +1424 42 763 764 765 +1425 14 763 764 772 +1426 14 763 764 773 +1427 43 772 764 765 +1428 43 773 764 765 +1429 15 772 764 773 +1430 44 764 765 774 +1431 44 764 765 775 +1432 44 764 765 776 +1433 45 774 765 775 +1434 45 774 765 776 +1435 45 775 765 776 +1436 20 757 777 778 +1437 21 757 777 781 +1438 22 781 777 778 +1439 23 777 778 779 +1440 24 777 778 782 +1441 25 777 778 783 +1442 6 779 778 782 +1443 7 779 778 783 +1444 8 782 778 783 +1445 9 780 779 778 +1446 10 794 779 778 +1447 11 794 779 780 +1448 12 778 783 784 +1449 13 778 783 788 +1450 13 778 783 789 +1451 14 784 783 788 +1452 14 784 783 789 +1453 15 788 783 789 +1454 26 785 784 783 +1455 14 783 784 790 +1456 14 783 784 791 +1457 27 785 784 790 +1458 27 785 784 791 +1459 15 790 784 791 +1460 28 786 785 784 +1461 29 787 785 784 +1462 11 787 785 786 +1463 21 785 787 792 +1464 21 785 787 793 +1465 30 792 787 793 +1466 20 779 794 795 +1467 21 779 794 798 +1468 22 798 794 795 +1469 23 794 795 796 +1470 24 794 795 799 +1471 25 794 795 800 +1472 6 796 795 799 +1473 7 796 795 800 +1474 8 799 795 800 +1475 9 797 796 795 +1476 10 813 796 795 +1477 11 813 796 797 +1478 50 795 800 801 +1479 13 795 800 804 +1480 13 795 800 805 +1481 13 801 800 804 +1482 13 801 800 805 +1483 15 804 800 805 +1484 35 800 801 802 +1485 35 800 801 803 +1486 8 806 801 800 +1487 35 802 801 803 +1488 8 806 801 802 +1489 8 806 801 803 +1490 13 801 802 807 +1491 13 801 802 808 +1492 13 801 802 809 +1493 15 807 802 808 +1494 15 807 802 809 +1495 15 808 802 809 +1496 13 801 803 810 +1497 13 801 803 811 +1498 13 801 803 812 +1499 15 810 803 811 +1500 15 810 803 812 +1501 15 811 803 812 +1502 20 796 813 814 +1503 21 796 813 817 +1504 22 817 813 814 +1505 23 813 814 815 +1506 24 813 814 818 +1507 25 813 814 819 +1508 6 815 814 818 +1509 7 815 814 819 +1510 8 818 814 819 +1511 9 816 815 814 +1512 10 828 815 814 +1513 11 828 815 816 +1514 12 814 819 820 +1515 13 814 819 824 +1516 13 814 819 825 +1517 14 820 819 824 +1518 14 820 819 825 +1519 15 824 819 825 +1520 59 819 820 821 +1521 14 819 820 826 +1522 14 819 820 827 +1523 60 826 820 821 +1524 60 827 820 821 +1525 15 826 820 827 +1526 61 820 821 822 +1527 61 820 821 823 +1528 62 822 821 823 +1529 20 815 828 829 +1530 21 815 828 832 +1531 22 832 828 829 +1532 23 828 829 830 +1533 24 828 829 833 +1534 25 828 829 834 +1535 6 830 829 833 +1536 7 830 829 834 +1537 8 833 829 834 +1538 9 831 830 829 +1539 10 840 830 829 +1540 11 840 830 831 +1541 85 829 834 835 +1542 13 829 834 838 +1543 13 829 834 839 +1544 60 838 834 835 +1545 60 839 834 835 +1546 15 838 834 839 +1547 61 834 835 836 +1548 61 834 835 837 +1549 62 836 835 837 +1550 51 841 840 830 +1551 21 830 840 844 +1552 52 841 840 844 +1553 53 840 841 842 +1554 54 840 841 845 +1555 54 840 841 846 +1556 55 842 841 845 +1557 55 842 841 846 +1558 56 845 841 846 +1559 57 841 842 843 +1560 58 847 842 841 +1561 11 847 842 843 +1562 20 842 847 848 +1563 21 842 847 851 +1564 22 851 847 848 +1565 23 847 848 849 +1566 24 847 848 852 +1567 25 847 848 853 +1568 6 849 848 852 +1569 7 849 848 853 +1570 8 852 848 853 +1571 9 850 849 848 +1572 10 871 849 848 +1573 11 871 849 850 +1574 12 848 853 854 +1575 13 848 853 860 +1576 13 848 853 861 +1577 14 854 853 860 +1578 14 854 853 861 +1579 15 860 853 861 +1580 41 853 854 855 +1581 14 853 854 862 +1582 14 853 854 863 +1583 14 855 854 862 +1584 14 855 854 863 +1585 15 862 854 863 +1586 87 856 855 854 +1587 14 854 855 864 +1588 14 854 855 865 +1589 88 856 855 864 +1590 88 856 855 865 +1591 15 864 855 865 +1592 89 855 856 857 +1593 90 855 856 866 +1594 91 866 856 857 +1595 92 856 857 858 +1596 92 856 857 859 +1597 92 858 857 859 +1598 91 867 858 857 +1599 91 868 858 857 +1600 93 867 858 868 +1601 91 869 859 857 +1602 91 870 859 857 +1603 93 869 859 870 +1604 20 849 871 872 +1605 21 849 871 875 +1606 22 875 871 872 +1607 23 871 872 873 +1608 24 871 872 876 +1609 31 871 872 877 +1610 6 873 872 876 +1611 32 873 872 877 +1612 33 876 872 877 +1613 9 874 873 872 +1614 10 885 873 872 +1615 11 885 873 874 +1616 46 872 877 878 +1617 34 872 877 879 +1618 33 880 877 872 +1619 47 879 877 878 +1620 48 880 877 878 +1621 8 880 877 879 +1622 49 877 878 881 +1623 13 877 879 882 +1624 13 877 879 883 +1625 13 877 879 884 +1626 15 882 879 883 +1627 15 882 879 884 +1628 15 883 879 884 +1629 20 873 885 886 +1630 21 873 885 889 +1631 22 889 885 886 +1632 23 885 886 887 +1633 24 885 886 890 +1634 25 885 886 891 +1635 6 887 886 890 +1636 7 887 886 891 +1637 8 890 886 891 +1638 9 888 887 886 +1639 10 904 887 886 +1640 11 904 887 888 +1641 50 886 891 892 +1642 13 886 891 895 +1643 13 886 891 896 +1644 13 892 891 895 +1645 13 892 891 896 +1646 15 895 891 896 +1647 35 891 892 893 +1648 35 891 892 894 +1649 8 897 892 891 +1650 35 893 892 894 +1651 8 897 892 893 +1652 8 897 892 894 +1653 13 892 893 898 +1654 13 892 893 899 +1655 13 892 893 900 +1656 15 898 893 899 +1657 15 898 893 900 +1658 15 899 893 900 +1659 13 892 894 901 +1660 13 892 894 902 +1661 13 892 894 903 +1662 15 901 894 902 +1663 15 901 894 903 +1664 15 902 894 903 +1665 20 887 904 905 +1666 21 887 904 908 +1667 22 908 904 905 +1668 23 904 905 906 +1669 24 904 905 909 +1670 25 904 905 910 +1671 6 906 905 909 +1672 7 906 905 910 +1673 8 909 905 910 +1674 9 907 906 905 +1675 10 915 906 905 +1676 11 915 906 907 +1677 82 905 910 911 +1678 13 905 910 912 +1679 13 905 910 913 +1680 83 912 910 911 +1681 83 913 910 911 +1682 15 912 910 913 +1683 84 910 911 914 +1684 20 906 915 916 +1685 21 906 915 919 +1686 22 919 915 916 +1687 23 915 916 917 +1688 24 915 916 920 +1689 25 915 916 921 +1690 6 917 916 920 +1691 7 917 916 921 +1692 8 920 916 921 +1693 9 918 917 916 +1694 10 927 917 916 +1695 11 927 917 918 +1696 85 916 921 922 +1697 13 916 921 925 +1698 13 916 921 926 +1699 60 925 921 922 +1700 60 926 921 922 +1701 15 925 921 926 +1702 61 921 922 923 +1703 61 921 922 924 +1704 62 923 922 924 +1705 20 917 927 928 +1706 21 917 927 931 +1707 22 931 927 928 +1708 23 927 928 929 +1709 24 927 928 932 +1710 25 927 928 933 +1711 6 929 928 932 +1712 7 929 928 933 +1713 8 932 928 933 +1714 9 930 929 928 +1715 10 948 929 928 +1716 11 948 929 930 +1717 36 928 933 934 +1718 13 928 933 941 +1719 13 928 933 942 +1720 37 941 933 934 +1721 37 942 933 934 +1722 15 941 933 942 +1723 38 933 934 935 +1724 38 933 934 936 +1725 39 935 934 936 +1726 39 934 935 937 +1727 40 934 935 943 +1728 40 937 935 943 +1729 39 934 936 938 +1730 40 934 936 944 +1731 40 938 936 944 +1732 39 935 937 939 +1733 40 935 937 945 +1734 40 939 937 945 +1735 39 936 938 939 +1736 40 936 938 946 +1737 40 939 938 946 +1738 39 937 939 938 +1739 94 937 939 940 +1740 94 938 939 940 +1741 95 939 940 947 +1742 20 929 948 949 +1743 21 929 948 952 +1744 22 952 948 949 +1745 23 948 949 950 +1746 24 948 949 953 +1747 25 948 949 954 +1748 6 950 949 953 +1749 7 950 949 954 +1750 8 953 949 954 +1751 9 951 950 949 +1752 10 962 950 949 +1753 11 962 950 951 +1754 86 955 954 949 +1755 13 949 954 958 +1756 13 949 954 959 +1757 27 955 954 958 +1758 27 955 954 959 +1759 15 958 954 959 +1760 28 956 955 954 +1761 29 957 955 954 +1762 11 957 955 956 +1763 21 955 957 960 +1764 21 955 957 961 +1765 30 960 957 961 +1766 20 950 962 963 +1767 21 950 962 966 +1768 22 966 962 963 +1769 23 962 963 964 +1770 24 962 963 967 +1771 31 962 963 968 +1772 6 964 963 967 +1773 32 964 963 968 +1774 33 967 963 968 +1775 9 965 964 963 +1776 10 981 964 963 +1777 11 981 964 965 +1778 34 963 968 969 +1779 34 963 968 970 +1780 33 972 968 963 +1781 35 969 968 970 +1782 8 972 968 969 +1783 8 972 968 970 +1784 12 968 969 971 +1785 13 968 969 973 +1786 13 968 969 974 +1787 14 971 969 973 +1788 14 971 969 974 +1789 15 973 969 974 +1790 13 968 970 975 +1791 13 968 970 976 +1792 13 968 970 977 +1793 15 975 970 976 +1794 15 975 970 977 +1795 15 976 970 977 +1796 14 969 971 978 +1797 14 969 971 979 +1798 14 969 971 980 +1799 15 978 971 979 +1800 15 978 971 980 +1801 15 979 971 980 +1802 20 964 981 982 +1803 21 964 981 985 +1804 22 985 981 982 +1805 23 981 982 983 +1806 24 981 982 986 +1807 25 981 982 987 +1808 6 983 982 986 +1809 7 983 982 987 +1810 8 986 982 987 +1811 9 984 983 982 +1812 10 998 983 982 +1813 11 998 983 984 +1814 12 982 987 988 +1815 13 982 987 992 +1816 13 982 987 993 +1817 14 988 987 992 +1818 14 988 987 993 +1819 15 992 987 993 +1820 26 989 988 987 +1821 14 987 988 994 +1822 14 987 988 995 +1823 27 989 988 994 +1824 27 989 988 995 +1825 15 994 988 995 +1826 28 990 989 988 +1827 29 991 989 988 +1828 11 991 989 990 +1829 21 989 991 996 +1830 21 989 991 997 +1831 30 996 991 997 +1832 20 983 998 999 +1833 21 983 998 1002 +1834 22 1002 998 999 +1835 23 998 999 1000 +1836 24 998 999 1003 +1837 25 998 999 1004 +1838 6 1000 999 1003 +1839 7 1000 999 1004 +1840 8 1003 999 1004 +1841 9 1001 1000 999 +1842 10 1020 1000 999 +1843 11 1020 1000 1001 +1844 12 999 1004 1005 +1845 13 999 1004 1009 +1846 13 999 1004 1010 +1847 14 1005 1004 1009 +1848 14 1005 1004 1010 +1849 15 1009 1004 1010 +1850 41 1004 1005 1006 +1851 14 1004 1005 1011 +1852 14 1004 1005 1012 +1853 14 1006 1005 1011 +1854 14 1006 1005 1012 +1855 15 1011 1005 1012 +1856 41 1005 1006 1007 +1857 14 1005 1006 1013 +1858 14 1005 1006 1014 +1859 14 1007 1006 1013 +1860 14 1007 1006 1014 +1861 15 1013 1006 1014 +1862 42 1006 1007 1008 +1863 14 1006 1007 1015 +1864 14 1006 1007 1016 +1865 43 1015 1007 1008 +1866 43 1016 1007 1008 +1867 15 1015 1007 1016 +1868 44 1007 1008 1017 +1869 44 1007 1008 1018 +1870 44 1007 1008 1019 +1871 45 1017 1008 1018 +1872 45 1017 1008 1019 +1873 45 1018 1008 1019 +1874 20 1000 1020 1021 +1875 21 1000 1020 1024 +1876 22 1024 1020 1021 +1877 23 1020 1021 1022 +1878 24 1020 1021 1025 +1879 25 1020 1021 1026 +1880 6 1022 1021 1025 +1881 7 1022 1021 1026 +1882 8 1025 1021 1026 +1883 9 1023 1022 1021 +1884 10 1035 1022 1021 +1885 11 1035 1022 1023 +1886 12 1021 1026 1027 +1887 13 1021 1026 1031 +1888 13 1021 1026 1032 +1889 14 1027 1026 1031 +1890 14 1027 1026 1032 +1891 15 1031 1026 1032 +1892 59 1026 1027 1028 +1893 14 1026 1027 1033 +1894 14 1026 1027 1034 +1895 60 1033 1027 1028 +1896 60 1034 1027 1028 +1897 15 1033 1027 1034 +1898 61 1027 1028 1029 +1899 61 1027 1028 1030 +1900 62 1029 1028 1030 +1901 20 1022 1035 1036 +1902 21 1022 1035 1039 +1903 22 1039 1035 1036 +1904 23 1035 1036 1037 +1905 24 1035 1036 1040 +1906 25 1035 1036 1041 +1907 6 1037 1036 1040 +1908 7 1037 1036 1041 +1909 8 1040 1036 1041 +1910 9 1038 1037 1036 +1911 10 1046 1037 1036 +1912 11 1046 1037 1038 +1913 82 1036 1041 1042 +1914 13 1036 1041 1043 +1915 13 1036 1041 1044 +1916 83 1043 1041 1042 +1917 83 1044 1041 1042 +1918 15 1043 1041 1044 +1919 84 1041 1042 1045 +1920 20 1037 1046 1047 +1921 21 1037 1046 1050 +1922 22 1050 1046 1047 +1923 23 1046 1047 1048 +1924 24 1046 1047 1051 +1925 31 1046 1047 1052 +1926 6 1048 1047 1051 +1927 32 1048 1047 1052 +1928 33 1051 1047 1052 +1929 9 1049 1048 1047 +1930 10 1060 1048 1047 +1931 11 1060 1048 1049 +1932 46 1047 1052 1053 +1933 34 1047 1052 1054 +1934 33 1055 1052 1047 +1935 47 1054 1052 1053 +1936 48 1055 1052 1053 +1937 8 1055 1052 1054 +1938 49 1052 1053 1056 +1939 13 1052 1054 1057 +1940 13 1052 1054 1058 +1941 13 1052 1054 1059 +1942 15 1057 1054 1058 +1943 15 1057 1054 1059 +1944 15 1058 1054 1059 +1945 20 1048 1060 1061 +1946 21 1048 1060 1064 +1947 22 1064 1060 1061 +1948 23 1060 1061 1062 +1949 24 1060 1061 1065 +1950 25 1060 1061 1066 +1951 6 1062 1061 1065 +1952 7 1062 1061 1066 +1953 8 1065 1061 1066 +1954 9 1063 1062 1061 +1955 10 1079 1062 1061 +1956 11 1079 1062 1063 +1957 50 1061 1066 1067 +1958 13 1061 1066 1070 +1959 13 1061 1066 1071 +1960 13 1067 1066 1070 +1961 13 1067 1066 1071 +1962 15 1070 1066 1071 +1963 35 1066 1067 1068 +1964 35 1066 1067 1069 +1965 8 1072 1067 1066 +1966 35 1068 1067 1069 +1967 8 1072 1067 1068 +1968 8 1072 1067 1069 +1969 13 1067 1068 1073 +1970 13 1067 1068 1074 +1971 13 1067 1068 1075 +1972 15 1073 1068 1074 +1973 15 1073 1068 1075 +1974 15 1074 1068 1075 +1975 13 1067 1069 1076 +1976 13 1067 1069 1077 +1977 13 1067 1069 1078 +1978 15 1076 1069 1077 +1979 15 1076 1069 1078 +1980 15 1077 1069 1078 +1981 20 1062 1079 1080 +1982 21 1062 1079 1083 +1983 22 1083 1079 1080 +1984 23 1079 1080 1081 +1985 24 1079 1080 1084 +1986 25 1079 1080 1085 +1987 6 1081 1080 1084 +1988 7 1081 1080 1085 +1989 8 1084 1080 1085 +1990 9 1082 1081 1080 +1991 10 1097 1081 1080 +1992 11 1097 1081 1082 +1993 96 1080 1085 1086 +1994 13 1080 1085 1091 +1995 13 1080 1085 1092 +1996 97 1091 1085 1086 +1997 97 1092 1085 1086 +1998 15 1091 1085 1092 +1999 98 1085 1086 1087 +2000 99 1085 1086 1088 +2001 100 1087 1086 1088 +2002 101 1086 1087 1089 +2003 102 1093 1087 1086 +2004 103 1093 1087 1089 +2005 100 1090 1088 1086 +2006 104 1086 1088 1094 +2007 105 1090 1088 1094 +2008 106 1087 1089 1090 +2009 107 1087 1089 1095 +2010 107 1090 1089 1095 +2011 101 1088 1090 1089 +2012 102 1096 1090 1088 +2013 103 1096 1090 1089 +2014 20 1081 1097 1098 +2015 21 1081 1097 1101 +2016 22 1101 1097 1098 +2017 23 1097 1098 1099 +2018 24 1097 1098 1102 +2019 25 1097 1098 1103 +2020 6 1099 1098 1102 +2021 7 1099 1098 1103 +2022 8 1102 1098 1103 +2023 9 1100 1099 1098 +2024 10 1116 1099 1098 +2025 11 1116 1099 1100 +2026 50 1098 1103 1104 +2027 13 1098 1103 1107 +2028 13 1098 1103 1108 +2029 13 1104 1103 1107 +2030 13 1104 1103 1108 +2031 15 1107 1103 1108 +2032 35 1103 1104 1105 +2033 35 1103 1104 1106 +2034 8 1109 1104 1103 +2035 35 1105 1104 1106 +2036 8 1109 1104 1105 +2037 8 1109 1104 1106 +2038 13 1104 1105 1110 +2039 13 1104 1105 1111 +2040 13 1104 1105 1112 +2041 15 1110 1105 1111 +2042 15 1110 1105 1112 +2043 15 1111 1105 1112 +2044 13 1104 1106 1113 +2045 13 1104 1106 1114 +2046 13 1104 1106 1115 +2047 15 1113 1106 1114 +2048 15 1113 1106 1115 +2049 15 1114 1106 1115 +2050 20 1099 1116 1117 +2051 21 1099 1116 1120 +2052 22 1120 1116 1117 +2053 23 1116 1117 1118 +2054 24 1116 1117 1121 +2055 31 1116 1117 1122 +2056 6 1118 1117 1121 +2057 32 1118 1117 1122 +2058 33 1121 1117 1122 +2059 9 1119 1118 1117 +2060 10 1132 1118 1117 +2061 11 1132 1118 1119 +2062 34 1117 1122 1123 +2063 34 1117 1122 1124 +2064 33 1125 1122 1117 +2065 35 1123 1122 1124 +2066 8 1125 1122 1123 +2067 8 1125 1122 1124 +2068 13 1122 1123 1126 +2069 13 1122 1123 1127 +2070 13 1122 1123 1128 +2071 15 1126 1123 1127 +2072 15 1126 1123 1128 +2073 15 1127 1123 1128 +2074 13 1122 1124 1129 +2075 13 1122 1124 1130 +2076 13 1122 1124 1131 +2077 15 1129 1124 1130 +2078 15 1129 1124 1131 +2079 15 1130 1124 1131 +2080 20 1118 1132 1133 +2081 21 1118 1132 1136 +2082 22 1136 1132 1133 +2083 23 1132 1133 1134 +2084 24 1132 1133 1137 +2085 25 1132 1133 1138 +2086 6 1134 1133 1137 +2087 7 1134 1133 1138 +2088 8 1137 1133 1138 +2089 9 1135 1134 1133 +2090 10 1151 1134 1133 +2091 11 1151 1134 1135 +2092 50 1133 1138 1139 +2093 13 1133 1138 1142 +2094 13 1133 1138 1143 +2095 13 1139 1138 1142 +2096 13 1139 1138 1143 +2097 15 1142 1138 1143 +2098 35 1138 1139 1140 +2099 35 1138 1139 1141 +2100 8 1144 1139 1138 +2101 35 1140 1139 1141 +2102 8 1144 1139 1140 +2103 8 1144 1139 1141 +2104 13 1139 1140 1145 +2105 13 1139 1140 1146 +2106 13 1139 1140 1147 +2107 15 1145 1140 1146 +2108 15 1145 1140 1147 +2109 15 1146 1140 1147 +2110 13 1139 1141 1148 +2111 13 1139 1141 1149 +2112 13 1139 1141 1150 +2113 15 1148 1141 1149 +2114 15 1148 1141 1150 +2115 15 1149 1141 1150 +2116 20 1134 1151 1152 +2117 21 1134 1151 1155 +2118 22 1155 1151 1152 +2119 23 1151 1152 1153 +2120 24 1151 1152 1156 +2121 25 1151 1152 1157 +2122 6 1153 1152 1156 +2123 7 1153 1152 1157 +2124 8 1156 1152 1157 +2125 9 1154 1153 1152 +2126 10 1175 1153 1152 +2127 11 1175 1153 1154 +2128 12 1152 1157 1158 +2129 13 1152 1157 1164 +2130 13 1152 1157 1165 +2131 14 1158 1157 1164 +2132 14 1158 1157 1165 +2133 15 1164 1157 1165 +2134 41 1157 1158 1159 +2135 14 1157 1158 1166 +2136 14 1157 1158 1167 +2137 14 1159 1158 1166 +2138 14 1159 1158 1167 +2139 15 1166 1158 1167 +2140 87 1160 1159 1158 +2141 14 1158 1159 1168 +2142 14 1158 1159 1169 +2143 88 1160 1159 1168 +2144 88 1160 1159 1169 +2145 15 1168 1159 1169 +2146 89 1159 1160 1161 +2147 90 1159 1160 1170 +2148 91 1170 1160 1161 +2149 92 1160 1161 1162 +2150 92 1160 1161 1163 +2151 92 1162 1161 1163 +2152 91 1171 1162 1161 +2153 91 1172 1162 1161 +2154 93 1171 1162 1172 +2155 91 1173 1163 1161 +2156 91 1174 1163 1161 +2157 93 1173 1163 1174 +2158 20 1153 1175 1176 +2159 21 1153 1175 1179 +2160 22 1179 1175 1176 +2161 23 1175 1176 1177 +2162 24 1175 1176 1180 +2163 25 1175 1176 1181 +2164 6 1177 1176 1180 +2165 7 1177 1176 1181 +2166 8 1180 1176 1181 +2167 9 1178 1177 1176 +2168 10 1194 1177 1176 +2169 11 1194 1177 1178 +2170 50 1176 1181 1182 +2171 13 1176 1181 1185 +2172 13 1176 1181 1186 +2173 13 1182 1181 1185 +2174 13 1182 1181 1186 +2175 15 1185 1181 1186 +2176 35 1181 1182 1183 +2177 35 1181 1182 1184 +2178 8 1187 1182 1181 +2179 35 1183 1182 1184 +2180 8 1187 1182 1183 +2181 8 1187 1182 1184 +2182 13 1182 1183 1188 +2183 13 1182 1183 1189 +2184 13 1182 1183 1190 +2185 15 1188 1183 1189 +2186 15 1188 1183 1190 +2187 15 1189 1183 1190 +2188 13 1182 1184 1191 +2189 13 1182 1184 1192 +2190 13 1182 1184 1193 +2191 15 1191 1184 1192 +2192 15 1191 1184 1193 +2193 15 1192 1184 1193 +2194 20 1177 1194 1195 +2195 21 1177 1194 1198 +2196 22 1198 1194 1195 +2197 23 1194 1195 1196 +2198 24 1194 1195 1199 +2199 25 1194 1195 1200 +2200 6 1196 1195 1199 +2201 7 1196 1195 1200 +2202 8 1199 1195 1200 +2203 9 1197 1196 1195 +2204 10 1218 1196 1195 +2205 11 1218 1196 1197 +2206 12 1195 1200 1201 +2207 13 1195 1200 1207 +2208 13 1195 1200 1208 +2209 14 1201 1200 1207 +2210 14 1201 1200 1208 +2211 15 1207 1200 1208 +2212 41 1200 1201 1202 +2213 14 1200 1201 1209 +2214 14 1200 1201 1210 +2215 14 1202 1201 1209 +2216 14 1202 1201 1210 +2217 15 1209 1201 1210 +2218 87 1203 1202 1201 +2219 14 1201 1202 1211 +2220 14 1201 1202 1212 +2221 88 1203 1202 1211 +2222 88 1203 1202 1212 +2223 15 1211 1202 1212 +2224 89 1202 1203 1204 +2225 90 1202 1203 1213 +2226 91 1213 1203 1204 +2227 92 1203 1204 1205 +2228 92 1203 1204 1206 +2229 92 1205 1204 1206 +2230 91 1214 1205 1204 +2231 91 1215 1205 1204 +2232 93 1214 1205 1215 +2233 91 1216 1206 1204 +2234 91 1217 1206 1204 +2235 93 1216 1206 1217 +2236 51 1219 1218 1196 +2237 21 1196 1218 1222 +2238 52 1219 1218 1222 +2239 53 1218 1219 1220 +2240 54 1218 1219 1223 +2241 54 1218 1219 1224 +2242 55 1220 1219 1223 +2243 55 1220 1219 1224 +2244 56 1223 1219 1224 +2245 57 1219 1220 1221 +2246 58 1225 1220 1219 +2247 11 1225 1220 1221 +2248 51 1226 1225 1220 +2249 21 1220 1225 1229 +2250 52 1226 1225 1229 +2251 108 1225 1226 1227 +2252 54 1225 1226 1230 +2253 54 1225 1226 1231 +2254 109 1230 1226 1227 +2255 109 1231 1226 1227 +2256 56 1230 1226 1231 +2257 110 1226 1227 1228 +2258 110 1226 1227 1232 +2259 62 1228 1227 1232 +2260 111 1234 1233 1235 +2261 111 1237 1236 1238 +2262 111 1240 1239 1241 +2263 111 1243 1242 1244 +2264 111 1246 1245 1247 +2265 111 1249 1248 1250 +2266 111 1252 1251 1253 +2267 111 1255 1254 1256 +2268 111 1258 1257 1259 +2269 111 1261 1260 1262 +2270 111 1264 1263 1265 +2271 111 1267 1266 1268 +2272 111 1270 1269 1271 +2273 111 1273 1272 1274 +2274 111 1276 1275 1277 +2275 111 1279 1278 1280 +2276 111 1282 1281 1283 +2277 111 1285 1284 1286 +2278 111 1288 1287 1289 +2279 111 1291 1290 1292 +2280 111 1294 1293 1295 +2281 111 1297 1296 1298 +2282 111 1300 1299 1301 +2283 111 1303 1302 1304 +2284 111 1306 1305 1307 +2285 111 1309 1308 1310 +2286 111 1312 1311 1313 +2287 111 1315 1314 1316 +2288 111 1318 1317 1319 +2289 111 1321 1320 1322 +2290 111 1324 1323 1325 +2291 111 1327 1326 1328 +2292 111 1330 1329 1331 +2293 111 1333 1332 1334 +2294 111 1336 1335 1337 +2295 111 1339 1338 1340 +2296 111 1342 1341 1343 +2297 111 1345 1344 1346 +2298 111 1348 1347 1349 +2299 111 1351 1350 1352 +2300 111 1354 1353 1355 +2301 111 1357 1356 1358 +2302 111 1360 1359 1361 +2303 111 1363 1362 1364 +2304 111 1366 1365 1367 +2305 111 1369 1368 1370 +2306 111 1372 1371 1373 +2307 111 1375 1374 1376 +2308 111 1378 1377 1379 +2309 111 1381 1380 1382 +2310 111 1384 1383 1385 +2311 111 1387 1386 1388 +2312 111 1390 1389 1391 +2313 111 1393 1392 1394 +2314 111 1396 1395 1397 +2315 111 1399 1398 1400 +2316 111 1402 1401 1403 +2317 111 1405 1404 1406 +2318 111 1408 1407 1409 +2319 111 1411 1410 1412 +2320 111 1414 1413 1415 +2321 111 1417 1416 1418 +2322 111 1420 1419 1421 +2323 111 1423 1422 1424 +2324 111 1426 1425 1427 +2325 111 1429 1428 1430 +2326 111 1432 1431 1433 +2327 111 1435 1434 1436 +2328 111 1438 1437 1439 +2329 111 1441 1440 1442 +2330 111 1444 1443 1445 +2331 111 1447 1446 1448 +2332 111 1450 1449 1451 +2333 111 1453 1452 1454 +2334 111 1456 1455 1457 +2335 111 1459 1458 1460 +2336 111 1462 1461 1463 +2337 111 1465 1464 1466 +2338 111 1468 1467 1469 +2339 111 1471 1470 1472 +2340 111 1474 1473 1475 +2341 111 1477 1476 1478 +2342 111 1480 1479 1481 +2343 111 1483 1482 1484 +2344 111 1486 1485 1487 +2345 111 1489 1488 1490 +2346 111 1492 1491 1493 +2347 111 1495 1494 1496 +2348 111 1498 1497 1499 +2349 111 1501 1500 1502 +2350 111 1504 1503 1505 +2351 111 1507 1506 1508 +2352 111 1510 1509 1511 +2353 111 1513 1512 1514 +2354 111 1516 1515 1517 +2355 111 1519 1518 1520 +2356 111 1522 1521 1523 +2357 111 1525 1524 1526 +2358 111 1528 1527 1529 +2359 111 1531 1530 1532 +2360 111 1534 1533 1535 +2361 111 1537 1536 1538 +2362 111 1540 1539 1541 +2363 111 1543 1542 1544 +2364 111 1546 1545 1547 +2365 111 1549 1548 1550 +2366 111 1552 1551 1553 +2367 111 1555 1554 1556 +2368 111 1558 1557 1559 +2369 111 1561 1560 1562 +2370 111 1564 1563 1565 +2371 111 1567 1566 1568 +2372 111 1570 1569 1571 +2373 111 1573 1572 1574 +2374 111 1576 1575 1577 +2375 111 1579 1578 1580 +2376 111 1582 1581 1583 +2377 111 1585 1584 1586 +2378 111 1588 1587 1589 +2379 111 1591 1590 1592 +2380 111 1594 1593 1595 +2381 111 1597 1596 1598 +2382 111 1600 1599 1601 +2383 111 1603 1602 1604 +2384 111 1606 1605 1607 +2385 111 1609 1608 1610 +2386 111 1612 1611 1613 +2387 111 1615 1614 1616 +2388 111 1618 1617 1619 +2389 111 1621 1620 1622 +2390 111 1624 1623 1625 +2391 111 1627 1626 1628 +2392 111 1630 1629 1631 +2393 111 1633 1632 1634 +2394 111 1636 1635 1637 +2395 111 1639 1638 1640 +2396 111 1642 1641 1643 +2397 111 1645 1644 1646 +2398 111 1648 1647 1649 +2399 111 1651 1650 1652 +2400 111 1654 1653 1655 +2401 111 1657 1656 1658 +2402 111 1660 1659 1661 +2403 111 1663 1662 1664 +2404 111 1666 1665 1667 +2405 111 1669 1668 1670 +2406 111 1672 1671 1673 +2407 111 1675 1674 1676 +2408 111 1678 1677 1679 +2409 111 1681 1680 1682 +2410 111 1684 1683 1685 +2411 111 1687 1686 1688 +2412 111 1690 1689 1691 +2413 111 1693 1692 1694 +2414 111 1696 1695 1697 +2415 111 1699 1698 1700 +2416 111 1702 1701 1703 +2417 111 1705 1704 1706 +2418 111 1708 1707 1709 +2419 111 1711 1710 1712 +2420 111 1714 1713 1715 +2421 111 1717 1716 1718 +2422 111 1720 1719 1721 +2423 111 1723 1722 1724 +2424 111 1726 1725 1727 +2425 111 1729 1728 1730 +2426 111 1732 1731 1733 +2427 111 1735 1734 1736 +2428 111 1738 1737 1739 +2429 111 1741 1740 1742 +2430 111 1744 1743 1745 +2431 111 1747 1746 1748 +2432 111 1750 1749 1751 +2433 111 1753 1752 1754 +2434 111 1756 1755 1757 +2435 111 1759 1758 1760 +2436 111 1762 1761 1763 +2437 111 1765 1764 1766 +2438 111 1768 1767 1769 +2439 111 1771 1770 1772 +2440 111 1774 1773 1775 +2441 111 1777 1776 1778 +2442 111 1780 1779 1781 +2443 111 1783 1782 1784 +2444 111 1786 1785 1787 +2445 111 1789 1788 1790 +2446 111 1792 1791 1793 +2447 111 1795 1794 1796 +2448 111 1798 1797 1799 +2449 111 1801 1800 1802 +2450 111 1804 1803 1805 +2451 111 1807 1806 1808 +2452 111 1810 1809 1811 +2453 111 1813 1812 1814 +2454 111 1816 1815 1817 +2455 111 1819 1818 1820 +2456 111 1822 1821 1823 +2457 111 1825 1824 1826 +2458 111 1828 1827 1829 +2459 111 1831 1830 1832 +2460 111 1834 1833 1835 +2461 111 1837 1836 1838 +2462 111 1840 1839 1841 +2463 111 1843 1842 1844 +2464 111 1846 1845 1847 +2465 111 1849 1848 1850 +2466 111 1852 1851 1853 +2467 111 1855 1854 1856 +2468 111 1858 1857 1859 +2469 111 1861 1860 1862 +2470 111 1864 1863 1865 +2471 111 1867 1866 1868 +2472 111 1870 1869 1871 +2473 111 1873 1872 1874 +2474 111 1876 1875 1877 +2475 111 1879 1878 1880 +2476 111 1882 1881 1883 +2477 111 1885 1884 1886 +2478 111 1888 1887 1889 +2479 111 1891 1890 1892 +2480 111 1894 1893 1895 +2481 111 1897 1896 1898 +2482 111 1900 1899 1901 +2483 111 1903 1902 1904 +2484 111 1906 1905 1907 +2485 111 1909 1908 1910 +2486 111 1912 1911 1913 +2487 111 1915 1914 1916 +2488 111 1918 1917 1919 +2489 111 1921 1920 1922 +2490 111 1924 1923 1925 +2491 111 1927 1926 1928 +2492 111 1930 1929 1931 +2493 111 1933 1932 1934 +2494 111 1936 1935 1937 +2495 111 1939 1938 1940 +2496 111 1942 1941 1943 +2497 111 1945 1944 1946 +2498 111 1948 1947 1949 +2499 111 1951 1950 1952 +2500 111 1954 1953 1955 +2501 111 1957 1956 1958 +2502 111 1960 1959 1961 +2503 111 1963 1962 1964 +2504 111 1966 1965 1967 +2505 111 1969 1968 1970 +2506 111 1972 1971 1973 +2507 111 1975 1974 1976 +2508 111 1978 1977 1979 +2509 111 1981 1980 1982 +2510 111 1984 1983 1985 +2511 111 1987 1986 1988 +2512 111 1990 1989 1991 +2513 111 1993 1992 1994 +2514 111 1996 1995 1997 +2515 111 1999 1998 2000 +2516 111 2002 2001 2003 +2517 111 2005 2004 2006 +2518 111 2008 2007 2009 +2519 111 2011 2010 2012 +2520 111 2014 2013 2015 +2521 111 2017 2016 2018 +2522 111 2020 2019 2021 +2523 111 2023 2022 2024 +2524 111 2026 2025 2027 +2525 111 2029 2028 2030 +2526 111 2032 2031 2033 +2527 111 2035 2034 2036 +2528 111 2038 2037 2039 +2529 111 2041 2040 2042 +2530 111 2044 2043 2045 +2531 111 2047 2046 2048 +2532 111 2050 2049 2051 +2533 111 2053 2052 2054 +2534 111 2056 2055 2057 +2535 111 2059 2058 2060 +2536 111 2062 2061 2063 +2537 111 2065 2064 2066 +2538 111 2068 2067 2069 +2539 111 2071 2070 2072 +2540 111 2074 2073 2075 +2541 111 2077 2076 2078 +2542 111 2080 2079 2081 +2543 111 2083 2082 2084 +2544 111 2086 2085 2087 +2545 111 2089 2088 2090 +2546 111 2092 2091 2093 +2547 111 2095 2094 2096 +2548 111 2098 2097 2099 +2549 111 2101 2100 2102 +2550 111 2104 2103 2105 +2551 111 2107 2106 2108 +2552 111 2110 2109 2111 +2553 111 2113 2112 2114 +2554 111 2116 2115 2117 +2555 111 2119 2118 2120 +2556 111 2122 2121 2123 +2557 111 2125 2124 2126 +2558 111 2128 2127 2129 +2559 111 2131 2130 2132 +2560 111 2134 2133 2135 +2561 111 2137 2136 2138 +2562 111 2140 2139 2141 +2563 111 2143 2142 2144 +2564 111 2146 2145 2147 +2565 111 2149 2148 2150 +2566 111 2152 2151 2153 +2567 111 2155 2154 2156 +2568 111 2158 2157 2159 +2569 111 2161 2160 2162 +2570 111 2164 2163 2165 +2571 111 2167 2166 2168 +2572 111 2170 2169 2171 +2573 111 2173 2172 2174 +2574 111 2176 2175 2177 +2575 111 2179 2178 2180 +2576 111 2182 2181 2183 +2577 111 2185 2184 2186 +2578 111 2188 2187 2189 +2579 111 2191 2190 2192 +2580 111 2194 2193 2195 +2581 111 2197 2196 2198 +2582 111 2200 2199 2201 +2583 111 2203 2202 2204 +2584 111 2206 2205 2207 +2585 111 2209 2208 2210 +2586 111 2212 2211 2213 +2587 111 2215 2214 2216 +2588 111 2218 2217 2219 +2589 111 2221 2220 2222 +2590 111 2224 2223 2225 +2591 111 2227 2226 2228 +2592 111 2230 2229 2231 +2593 111 2233 2232 2234 +2594 111 2236 2235 2237 +2595 111 2239 2238 2240 +2596 111 2242 2241 2243 +2597 111 2245 2244 2246 +2598 111 2248 2247 2249 +2599 111 2251 2250 2252 +2600 111 2254 2253 2255 +2601 111 2257 2256 2258 +2602 111 2260 2259 2261 +2603 111 2263 2262 2264 +2604 111 2266 2265 2267 +2605 111 2269 2268 2270 +2606 111 2272 2271 2273 +2607 111 2275 2274 2276 +2608 111 2278 2277 2279 +2609 111 2281 2280 2282 +2610 111 2284 2283 2285 +2611 111 2287 2286 2288 +2612 111 2290 2289 2291 +2613 111 2293 2292 2294 +2614 111 2296 2295 2297 +2615 111 2299 2298 2300 +2616 111 2302 2301 2303 +2617 111 2305 2304 2306 +2618 111 2308 2307 2309 +2619 111 2311 2310 2312 +2620 111 2314 2313 2315 +2621 111 2317 2316 2318 +2622 111 2320 2319 2321 +2623 111 2323 2322 2324 +2624 111 2326 2325 2327 +2625 111 2329 2328 2330 +2626 111 2332 2331 2333 +2627 111 2335 2334 2336 +2628 111 2338 2337 2339 +2629 111 2341 2340 2342 +2630 111 2344 2343 2345 +2631 111 2347 2346 2348 +2632 111 2350 2349 2351 +2633 111 2353 2352 2354 +2634 111 2356 2355 2357 +2635 111 2359 2358 2360 +2636 111 2362 2361 2363 +2637 111 2365 2364 2366 +2638 111 2368 2367 2369 +2639 111 2371 2370 2372 +2640 111 2374 2373 2375 +2641 111 2377 2376 2378 +2642 111 2380 2379 2381 +2643 111 2383 2382 2384 +2644 111 2386 2385 2387 +2645 111 2389 2388 2390 +2646 111 2392 2391 2393 +2647 111 2395 2394 2396 +2648 111 2398 2397 2399 +2649 111 2401 2400 2402 +2650 111 2404 2403 2405 +2651 111 2407 2406 2408 +2652 111 2410 2409 2411 +2653 111 2413 2412 2414 +2654 111 2416 2415 2417 +2655 111 2419 2418 2420 +2656 111 2422 2421 2423 +2657 111 2425 2424 2426 +2658 111 2428 2427 2429 +2659 111 2431 2430 2432 +2660 111 2434 2433 2435 +2661 111 2437 2436 2438 +2662 111 2440 2439 2441 +2663 111 2443 2442 2444 +2664 111 2446 2445 2447 +2665 111 2449 2448 2450 +2666 111 2452 2451 2453 +2667 111 2455 2454 2456 +2668 111 2458 2457 2459 +2669 111 2461 2460 2462 +2670 111 2464 2463 2465 +2671 111 2467 2466 2468 +2672 111 2470 2469 2471 +2673 111 2473 2472 2474 +2674 111 2476 2475 2477 +2675 111 2479 2478 2480 +2676 111 2482 2481 2483 +2677 111 2485 2484 2486 +2678 111 2488 2487 2489 +2679 111 2491 2490 2492 +2680 111 2494 2493 2495 +2681 111 2497 2496 2498 +2682 111 2500 2499 2501 +2683 111 2503 2502 2504 +2684 111 2506 2505 2507 +2685 111 2509 2508 2510 +2686 111 2512 2511 2513 +2687 111 2515 2514 2516 +2688 111 2518 2517 2519 +2689 111 2521 2520 2522 +2690 111 2524 2523 2525 +2691 111 2527 2526 2528 +2692 111 2530 2529 2531 +2693 111 2533 2532 2534 +2694 111 2536 2535 2537 +2695 111 2539 2538 2540 +2696 111 2542 2541 2543 +2697 111 2545 2544 2546 +2698 111 2548 2547 2549 +2699 111 2551 2550 2552 +2700 111 2554 2553 2555 +2701 111 2557 2556 2558 +2702 111 2560 2559 2561 +2703 111 2563 2562 2564 +2704 111 2566 2565 2567 +2705 111 2569 2568 2570 +2706 111 2572 2571 2573 +2707 111 2575 2574 2576 +2708 111 2578 2577 2579 +2709 111 2581 2580 2582 +2710 111 2584 2583 2585 +2711 111 2587 2586 2588 +2712 111 2590 2589 2591 +2713 111 2593 2592 2594 +2714 111 2596 2595 2597 +2715 111 2599 2598 2600 +2716 111 2602 2601 2603 +2717 111 2605 2604 2606 +2718 111 2608 2607 2609 +2719 111 2611 2610 2612 +2720 111 2614 2613 2615 +2721 111 2617 2616 2618 +2722 111 2620 2619 2621 +2723 111 2623 2622 2624 +2724 111 2626 2625 2627 +2725 111 2629 2628 2630 +2726 111 2632 2631 2633 +2727 111 2635 2634 2636 +2728 111 2638 2637 2639 +2729 111 2641 2640 2642 +2730 111 2644 2643 2645 +2731 111 2647 2646 2648 +2732 111 2650 2649 2651 +2733 111 2653 2652 2654 +2734 111 2656 2655 2657 +2735 111 2659 2658 2660 +2736 111 2662 2661 2663 +2737 111 2665 2664 2666 +2738 111 2668 2667 2669 +2739 111 2671 2670 2672 +2740 111 2674 2673 2675 +2741 111 2677 2676 2678 +2742 111 2680 2679 2681 +2743 111 2683 2682 2684 +2744 111 2686 2685 2687 +2745 111 2689 2688 2690 +2746 111 2692 2691 2693 +2747 111 2695 2694 2696 +2748 111 2698 2697 2699 +2749 111 2701 2700 2702 +2750 111 2704 2703 2705 +2751 111 2707 2706 2708 +2752 111 2710 2709 2711 +2753 111 2713 2712 2714 +2754 111 2716 2715 2717 +2755 111 2719 2718 2720 +2756 111 2722 2721 2723 +2757 111 2725 2724 2726 +2758 111 2728 2727 2729 +2759 111 2731 2730 2732 +2760 111 2734 2733 2735 +2761 111 2737 2736 2738 +2762 111 2740 2739 2741 +2763 111 2743 2742 2744 +2764 111 2746 2745 2747 +2765 111 2749 2748 2750 +2766 111 2752 2751 2753 +2767 111 2755 2754 2756 +2768 111 2758 2757 2759 +2769 111 2761 2760 2762 +2770 111 2764 2763 2765 +2771 111 2767 2766 2768 +2772 111 2770 2769 2771 +2773 111 2773 2772 2774 +2774 111 2776 2775 2777 +2775 111 2779 2778 2780 +2776 111 2782 2781 2783 +2777 111 2785 2784 2786 +2778 111 2788 2787 2789 +2779 111 2791 2790 2792 +2780 111 2794 2793 2795 +2781 111 2797 2796 2798 +2782 111 2800 2799 2801 +2783 111 2803 2802 2804 +2784 111 2806 2805 2807 +2785 111 2809 2808 2810 +2786 111 2812 2811 2813 +2787 111 2815 2814 2816 +2788 111 2818 2817 2819 +2789 111 2821 2820 2822 +2790 111 2824 2823 2825 +2791 111 2827 2826 2828 +2792 111 2830 2829 2831 +2793 111 2833 2832 2834 +2794 111 2836 2835 2837 +2795 111 2839 2838 2840 +2796 111 2842 2841 2843 +2797 111 2845 2844 2846 +2798 111 2848 2847 2849 +2799 111 2851 2850 2852 +2800 111 2854 2853 2855 +2801 111 2857 2856 2858 +2802 111 2860 2859 2861 +2803 111 2863 2862 2864 +2804 111 2866 2865 2867 +2805 111 2869 2868 2870 +2806 111 2872 2871 2873 +2807 111 2875 2874 2876 +2808 111 2878 2877 2879 +2809 111 2881 2880 2882 +2810 111 2884 2883 2885 +2811 111 2887 2886 2888 +2812 111 2890 2889 2891 +2813 111 2893 2892 2894 +2814 111 2896 2895 2897 +2815 111 2899 2898 2900 +2816 111 2902 2901 2903 +2817 111 2905 2904 2906 +2818 111 2908 2907 2909 +2819 111 2911 2910 2912 +2820 111 2914 2913 2915 +2821 111 2917 2916 2918 +2822 111 2920 2919 2921 +2823 111 2923 2922 2924 +2824 111 2926 2925 2927 +2825 111 2929 2928 2930 +2826 111 2932 2931 2933 +2827 111 2935 2934 2936 +2828 111 2938 2937 2939 +2829 111 2941 2940 2942 +2830 111 2944 2943 2945 +2831 111 2947 2946 2948 +2832 111 2950 2949 2951 +2833 111 2953 2952 2954 +2834 111 2956 2955 2957 +2835 111 2959 2958 2960 +2836 111 2962 2961 2963 +2837 111 2965 2964 2966 +2838 111 2968 2967 2969 +2839 111 2971 2970 2972 +2840 111 2974 2973 2975 +2841 111 2977 2976 2978 +2842 111 2980 2979 2981 +2843 111 2983 2982 2984 +2844 111 2986 2985 2987 +2845 111 2989 2988 2990 +2846 111 2992 2991 2993 +2847 111 2995 2994 2996 +2848 111 2998 2997 2999 +2849 111 3001 3000 3002 +2850 111 3004 3003 3005 +2851 111 3007 3006 3008 +2852 111 3010 3009 3011 +2853 111 3013 3012 3014 +2854 111 3016 3015 3017 +2855 111 3019 3018 3020 +2856 111 3022 3021 3023 +2857 111 3025 3024 3026 +2858 111 3028 3027 3029 +2859 111 3031 3030 3032 +2860 111 3034 3033 3035 +2861 111 3037 3036 3038 +2862 111 3040 3039 3041 +2863 111 3043 3042 3044 +2864 111 3046 3045 3047 +2865 111 3049 3048 3050 +2866 111 3052 3051 3053 +2867 111 3055 3054 3056 +2868 111 3058 3057 3059 +2869 111 3061 3060 3062 +2870 111 3064 3063 3065 +2871 111 3067 3066 3068 +2872 111 3070 3069 3071 +2873 111 3073 3072 3074 +2874 111 3076 3075 3077 +2875 111 3079 3078 3080 +2876 111 3082 3081 3083 +2877 111 3085 3084 3086 +2878 111 3088 3087 3089 +2879 111 3091 3090 3092 +2880 111 3094 3093 3095 +2881 111 3097 3096 3098 +2882 111 3100 3099 3101 +2883 111 3103 3102 3104 +2884 111 3106 3105 3107 +2885 111 3109 3108 3110 +2886 111 3112 3111 3113 +2887 111 3115 3114 3116 +2888 111 3118 3117 3119 +2889 111 3121 3120 3122 +2890 111 3124 3123 3125 +2891 111 3127 3126 3128 +2892 111 3130 3129 3131 +2893 111 3133 3132 3134 +2894 111 3136 3135 3137 +2895 111 3139 3138 3140 +2896 111 3142 3141 3143 +2897 111 3145 3144 3146 +2898 111 3148 3147 3149 +2899 111 3151 3150 3152 +2900 111 3154 3153 3155 +2901 111 3157 3156 3158 +2902 111 3160 3159 3161 +2903 111 3163 3162 3164 +2904 111 3166 3165 3167 +2905 111 3169 3168 3170 +2906 111 3172 3171 3173 +2907 111 3175 3174 3176 +2908 111 3178 3177 3179 +2909 111 3181 3180 3182 +2910 111 3184 3183 3185 +2911 111 3187 3186 3188 +2912 111 3190 3189 3191 +2913 111 3193 3192 3194 +2914 111 3196 3195 3197 +2915 111 3199 3198 3200 +2916 111 3202 3201 3203 +2917 111 3205 3204 3206 +2918 111 3208 3207 3209 +2919 111 3211 3210 3212 +2920 111 3214 3213 3215 +2921 111 3217 3216 3218 +2922 111 3220 3219 3221 +2923 111 3223 3222 3224 +2924 111 3226 3225 3227 +2925 111 3229 3228 3230 +2926 111 3232 3231 3233 +2927 111 3235 3234 3236 +2928 111 3238 3237 3239 +2929 111 3241 3240 3242 +2930 111 3244 3243 3245 +2931 111 3247 3246 3248 +2932 111 3250 3249 3251 +2933 111 3253 3252 3254 +2934 111 3256 3255 3257 +2935 111 3259 3258 3260 +2936 111 3262 3261 3263 +2937 111 3265 3264 3266 +2938 111 3268 3267 3269 +2939 111 3271 3270 3272 +2940 111 3274 3273 3275 +2941 111 3277 3276 3278 +2942 111 3280 3279 3281 +2943 111 3283 3282 3284 +2944 111 3286 3285 3287 +2945 111 3289 3288 3290 +2946 111 3292 3291 3293 +2947 111 3295 3294 3296 +2948 111 3298 3297 3299 +2949 111 3301 3300 3302 +2950 111 3304 3303 3305 +2951 111 3307 3306 3308 +2952 111 3310 3309 3311 +2953 111 3313 3312 3314 +2954 111 3316 3315 3317 +2955 111 3319 3318 3320 +2956 111 3322 3321 3323 +2957 111 3325 3324 3326 +2958 111 3328 3327 3329 +2959 111 3331 3330 3332 +2960 111 3334 3333 3335 +2961 111 3337 3336 3338 +2962 111 3340 3339 3341 +2963 111 3343 3342 3344 +2964 111 3346 3345 3347 +2965 111 3349 3348 3350 +2966 111 3352 3351 3353 +2967 111 3355 3354 3356 +2968 111 3358 3357 3359 +2969 111 3361 3360 3362 +2970 111 3364 3363 3365 +2971 111 3367 3366 3368 +2972 111 3370 3369 3371 +2973 111 3373 3372 3374 +2974 111 3376 3375 3377 +2975 111 3379 3378 3380 +2976 111 3382 3381 3383 +2977 111 3385 3384 3386 +2978 111 3388 3387 3389 +2979 111 3391 3390 3392 +2980 111 3394 3393 3395 +2981 111 3397 3396 3398 +2982 111 3400 3399 3401 +2983 111 3403 3402 3404 +2984 111 3406 3405 3407 +2985 111 3409 3408 3410 +2986 111 3412 3411 3413 +2987 111 3415 3414 3416 +2988 111 3418 3417 3419 +2989 111 3421 3420 3422 +2990 111 3424 3423 3425 +2991 111 3427 3426 3428 +2992 111 3430 3429 3431 +2993 111 3433 3432 3434 +2994 111 3436 3435 3437 +2995 111 3439 3438 3440 +2996 111 3442 3441 3443 +2997 111 3445 3444 3446 +2998 111 3448 3447 3449 +2999 111 3451 3450 3452 +3000 111 3454 3453 3455 +3001 111 3457 3456 3458 +3002 111 3460 3459 3461 +3003 111 3463 3462 3464 +3004 111 3466 3465 3467 +3005 111 3469 3468 3470 +3006 111 3472 3471 3473 +3007 111 3475 3474 3476 +3008 111 3478 3477 3479 +3009 111 3481 3480 3482 +3010 111 3484 3483 3485 +3011 111 3487 3486 3488 +3012 111 3490 3489 3491 +3013 111 3493 3492 3494 +3014 111 3496 3495 3497 +3015 111 3499 3498 3500 +3016 111 3502 3501 3503 +3017 111 3505 3504 3506 +3018 111 3508 3507 3509 +3019 111 3511 3510 3512 +3020 111 3514 3513 3515 +3021 111 3517 3516 3518 +3022 111 3520 3519 3521 +3023 111 3523 3522 3524 +3024 111 3526 3525 3527 +3025 111 3529 3528 3530 +3026 111 3532 3531 3533 +3027 111 3535 3534 3536 +3028 111 3538 3537 3539 +3029 111 3541 3540 3542 +3030 111 3544 3543 3545 +3031 111 3547 3546 3548 +3032 111 3550 3549 3551 +3033 111 3553 3552 3554 +3034 111 3556 3555 3557 +3035 111 3559 3558 3560 +3036 111 3562 3561 3563 +3037 111 3565 3564 3566 +3038 111 3568 3567 3569 +3039 111 3571 3570 3572 +3040 111 3574 3573 3575 +3041 111 3577 3576 3578 +3042 111 3580 3579 3581 +3043 111 3583 3582 3584 +3044 111 3586 3585 3587 +3045 111 3589 3588 3590 +3046 111 3592 3591 3593 +3047 111 3595 3594 3596 +3048 111 3598 3597 3599 +3049 111 3601 3600 3602 +3050 111 3604 3603 3605 +3051 111 3607 3606 3608 +3052 111 3610 3609 3611 +3053 111 3613 3612 3614 +3054 111 3616 3615 3617 +3055 111 3619 3618 3620 +3056 111 3622 3621 3623 +3057 111 3625 3624 3626 +3058 111 3628 3627 3629 +3059 111 3631 3630 3632 +3060 111 3634 3633 3635 +3061 111 3637 3636 3638 +3062 111 3640 3639 3641 +3063 111 3643 3642 3644 +3064 111 3646 3645 3647 +3065 111 3649 3648 3650 +3066 111 3652 3651 3653 +3067 111 3655 3654 3656 +3068 111 3658 3657 3659 +3069 111 3661 3660 3662 +3070 111 3664 3663 3665 +3071 111 3667 3666 3668 +3072 111 3670 3669 3671 +3073 111 3673 3672 3674 +3074 111 3676 3675 3677 +3075 111 3679 3678 3680 +3076 111 3682 3681 3683 +3077 111 3685 3684 3686 +3078 111 3688 3687 3689 +3079 111 3691 3690 3692 +3080 111 3694 3693 3695 +3081 111 3697 3696 3698 +3082 111 3700 3699 3701 +3083 111 3703 3702 3704 +3084 111 3706 3705 3707 +3085 111 3709 3708 3710 +3086 111 3712 3711 3713 +3087 111 3715 3714 3716 +3088 111 3718 3717 3719 +3089 111 3721 3720 3722 +3090 111 3724 3723 3725 +3091 111 3727 3726 3728 +3092 111 3730 3729 3731 +3093 111 3733 3732 3734 +3094 111 3736 3735 3737 +3095 111 3739 3738 3740 +3096 111 3742 3741 3743 +3097 111 3745 3744 3746 +3098 111 3748 3747 3749 +3099 111 3751 3750 3752 +3100 111 3754 3753 3755 +3101 111 3757 3756 3758 +3102 111 3760 3759 3761 +3103 111 3763 3762 3764 +3104 111 3766 3765 3767 +3105 111 3769 3768 3770 +3106 111 3772 3771 3773 +3107 111 3775 3774 3776 +3108 111 3778 3777 3779 +3109 111 3781 3780 3782 +3110 111 3784 3783 3785 +3111 111 3787 3786 3788 +3112 111 3790 3789 3791 +3113 111 3793 3792 3794 +3114 111 3796 3795 3797 +3115 111 3799 3798 3800 +3116 111 3802 3801 3803 +3117 111 3805 3804 3806 +3118 111 3808 3807 3809 +3119 111 3811 3810 3812 +3120 111 3814 3813 3815 +3121 111 3817 3816 3818 +3122 111 3820 3819 3821 +3123 111 3823 3822 3824 +3124 111 3826 3825 3827 +3125 111 3829 3828 3830 +3126 111 3832 3831 3833 +3127 111 3835 3834 3836 +3128 111 3838 3837 3839 +3129 111 3841 3840 3842 +3130 111 3844 3843 3845 +3131 111 3847 3846 3848 +3132 111 3850 3849 3851 +3133 111 3853 3852 3854 +3134 111 3856 3855 3857 +3135 111 3859 3858 3860 +3136 111 3862 3861 3863 +3137 111 3865 3864 3866 +3138 111 3868 3867 3869 +3139 111 3871 3870 3872 +3140 111 3874 3873 3875 +3141 111 3877 3876 3878 +3142 111 3880 3879 3881 +3143 111 3883 3882 3884 +3144 111 3886 3885 3887 +3145 111 3889 3888 3890 +3146 111 3892 3891 3893 +3147 111 3895 3894 3896 +3148 111 3898 3897 3899 +3149 111 3901 3900 3902 +3150 111 3904 3903 3905 +3151 111 3907 3906 3908 +3152 111 3910 3909 3911 +3153 111 3913 3912 3914 +3154 111 3916 3915 3917 +3155 111 3919 3918 3920 +3156 111 3922 3921 3923 +3157 111 3925 3924 3926 +3158 111 3928 3927 3929 +3159 111 3931 3930 3932 +3160 111 3934 3933 3935 +3161 111 3937 3936 3938 +3162 111 3940 3939 3941 +3163 111 3943 3942 3944 +3164 111 3946 3945 3947 +3165 111 3949 3948 3950 +3166 111 3952 3951 3953 +3167 111 3955 3954 3956 +3168 111 3958 3957 3959 +3169 111 3961 3960 3962 +3170 111 3964 3963 3965 +3171 111 3967 3966 3968 +3172 111 3970 3969 3971 +3173 111 3973 3972 3974 +3174 111 3976 3975 3977 +3175 111 3979 3978 3980 +3176 111 3982 3981 3983 +3177 111 3985 3984 3986 +3178 111 3988 3987 3989 +3179 111 3991 3990 3992 +3180 111 3994 3993 3995 +3181 111 3997 3996 3998 +3182 111 4000 3999 4001 +3183 111 4003 4002 4004 +3184 111 4006 4005 4007 +3185 111 4009 4008 4010 +3186 111 4012 4011 4013 +3187 111 4015 4014 4016 +3188 111 4018 4017 4019 +3189 111 4021 4020 4022 +3190 111 4024 4023 4025 +3191 111 4027 4026 4028 +3192 111 4030 4029 4031 +3193 111 4033 4032 4034 +3194 111 4036 4035 4037 +3195 111 4039 4038 4040 +3196 111 4042 4041 4043 +3197 111 4045 4044 4046 +3198 111 4048 4047 4049 +3199 111 4051 4050 4052 +3200 111 4054 4053 4055 +3201 111 4057 4056 4058 +3202 111 4060 4059 4061 +3203 111 4063 4062 4064 +3204 111 4066 4065 4067 +3205 111 4069 4068 4070 +3206 111 4072 4071 4073 +3207 111 4075 4074 4076 +3208 111 4078 4077 4079 +3209 111 4081 4080 4082 +3210 111 4084 4083 4085 +3211 111 4087 4086 4088 +3212 111 4090 4089 4091 +3213 111 4093 4092 4094 +3214 111 4096 4095 4097 +3215 111 4099 4098 4100 +3216 111 4102 4101 4103 +3217 111 4105 4104 4106 +3218 111 4108 4107 4109 +3219 111 4111 4110 4112 +3220 111 4114 4113 4115 +3221 111 4117 4116 4118 +3222 111 4120 4119 4121 +3223 111 4123 4122 4124 +3224 111 4126 4125 4127 +3225 111 4129 4128 4130 +3226 111 4132 4131 4133 +3227 111 4135 4134 4136 +3228 111 4138 4137 4139 +3229 111 4141 4140 4142 +3230 111 4144 4143 4145 +3231 111 4147 4146 4148 +3232 111 4150 4149 4151 +3233 111 4153 4152 4154 +3234 111 4156 4155 4157 +3235 111 4159 4158 4160 +3236 111 4162 4161 4163 +3237 111 4165 4164 4166 +3238 111 4168 4167 4169 +3239 111 4171 4170 4172 +3240 111 4174 4173 4175 +3241 111 4177 4176 4178 +3242 111 4180 4179 4181 +3243 111 4183 4182 4184 +3244 111 4186 4185 4187 +3245 111 4189 4188 4190 +3246 111 4192 4191 4193 +3247 111 4195 4194 4196 +3248 111 4198 4197 4199 +3249 111 4201 4200 4202 +3250 111 4204 4203 4205 +3251 111 4207 4206 4208 +3252 111 4210 4209 4211 +3253 111 4213 4212 4214 +3254 111 4216 4215 4217 +3255 111 4219 4218 4220 +3256 111 4222 4221 4223 +3257 111 4225 4224 4226 +3258 111 4228 4227 4229 +3259 111 4231 4230 4232 +3260 111 4234 4233 4235 +3261 111 4237 4236 4238 +3262 111 4240 4239 4241 +3263 111 4243 4242 4244 +3264 111 4246 4245 4247 +3265 111 4249 4248 4250 +3266 111 4252 4251 4253 +3267 111 4255 4254 4256 +3268 111 4258 4257 4259 +3269 111 4261 4260 4262 +3270 111 4264 4263 4265 +3271 111 4267 4266 4268 +3272 111 4270 4269 4271 +3273 111 4273 4272 4274 +3274 111 4276 4275 4277 +3275 111 4279 4278 4280 +3276 111 4282 4281 4283 +3277 111 4285 4284 4286 +3278 111 4288 4287 4289 +3279 111 4291 4290 4292 +3280 111 4294 4293 4295 +3281 111 4297 4296 4298 +3282 111 4300 4299 4301 +3283 111 4303 4302 4304 +3284 111 4306 4305 4307 +3285 111 4309 4308 4310 +3286 111 4312 4311 4313 +3287 111 4315 4314 4316 +3288 111 4318 4317 4319 +3289 111 4321 4320 4322 +3290 111 4324 4323 4325 +3291 111 4327 4326 4328 +3292 111 4330 4329 4331 +3293 111 4333 4332 4334 +3294 111 4336 4335 4337 +3295 111 4339 4338 4340 +3296 111 4342 4341 4343 +3297 111 4345 4344 4346 +3298 111 4348 4347 4349 +3299 111 4351 4350 4352 +3300 111 4354 4353 4355 +3301 111 4357 4356 4358 +3302 111 4360 4359 4361 +3303 111 4363 4362 4364 +3304 111 4366 4365 4367 +3305 111 4369 4368 4370 +3306 111 4372 4371 4373 +3307 111 4375 4374 4376 +3308 111 4378 4377 4379 +3309 111 4381 4380 4382 +3310 111 4384 4383 4385 +3311 111 4387 4386 4388 +3312 111 4390 4389 4391 +3313 111 4393 4392 4394 +3314 111 4396 4395 4397 +3315 111 4399 4398 4400 +3316 111 4402 4401 4403 +3317 111 4405 4404 4406 +3318 111 4408 4407 4409 +3319 111 4411 4410 4412 +3320 111 4414 4413 4415 +3321 111 4417 4416 4418 +3322 111 4420 4419 4421 +3323 111 4423 4422 4424 +3324 111 4426 4425 4427 +3325 111 4429 4428 4430 +3326 111 4432 4431 4433 +3327 111 4435 4434 4436 +3328 111 4438 4437 4439 +3329 111 4441 4440 4442 +3330 111 4444 4443 4445 +3331 111 4447 4446 4448 +3332 111 4450 4449 4451 +3333 111 4453 4452 4454 +3334 111 4456 4455 4457 +3335 111 4459 4458 4460 +3336 111 4462 4461 4463 +3337 111 4465 4464 4466 +3338 111 4468 4467 4469 +3339 111 4471 4470 4472 +3340 111 4474 4473 4475 +3341 111 4477 4476 4478 +3342 111 4480 4479 4481 +3343 111 4483 4482 4484 +3344 111 4486 4485 4487 +3345 111 4489 4488 4490 +3346 111 4492 4491 4493 +3347 111 4495 4494 4496 +3348 111 4498 4497 4499 +3349 111 4501 4500 4502 +3350 111 4504 4503 4505 +3351 111 4507 4506 4508 +3352 111 4510 4509 4511 +3353 111 4513 4512 4514 +3354 111 4516 4515 4517 +3355 111 4519 4518 4520 +3356 111 4522 4521 4523 +3357 111 4525 4524 4526 +3358 111 4528 4527 4529 +3359 111 4531 4530 4532 +3360 111 4534 4533 4535 +3361 111 4537 4536 4538 +3362 111 4540 4539 4541 +3363 111 4543 4542 4544 +3364 111 4546 4545 4547 +3365 111 4549 4548 4550 +3366 111 4552 4551 4553 +3367 111 4555 4554 4556 +3368 111 4558 4557 4559 +3369 111 4561 4560 4562 +3370 111 4564 4563 4565 +3371 111 4567 4566 4568 +3372 111 4570 4569 4571 +3373 111 4573 4572 4574 +3374 111 4576 4575 4577 +3375 111 4579 4578 4580 +3376 111 4582 4581 4583 +3377 111 4585 4584 4586 +3378 111 4588 4587 4589 +3379 111 4591 4590 4592 +3380 111 4594 4593 4595 +3381 111 4597 4596 4598 +3382 111 4600 4599 4601 +3383 111 4603 4602 4604 +3384 111 4606 4605 4607 +3385 111 4609 4608 4610 +3386 111 4612 4611 4613 +3387 111 4615 4614 4616 +3388 111 4618 4617 4619 +3389 111 4621 4620 4622 +3390 111 4624 4623 4625 +3391 111 4627 4626 4628 +3392 111 4630 4629 4631 +3393 111 4633 4632 4634 +3394 111 4636 4635 4637 +3395 111 4639 4638 4640 +3396 111 4642 4641 4643 +3397 111 4645 4644 4646 +3398 111 4648 4647 4649 +3399 111 4651 4650 4652 +3400 111 4654 4653 4655 +3401 111 4657 4656 4658 +3402 111 4660 4659 4661 +3403 111 4663 4662 4664 +3404 111 4666 4665 4667 +3405 111 4669 4668 4670 +3406 111 4672 4671 4673 +3407 111 4675 4674 4676 +3408 111 4678 4677 4679 +3409 111 4681 4680 4682 +3410 111 4684 4683 4685 +3411 111 4687 4686 4688 +3412 111 4690 4689 4691 +3413 111 4693 4692 4694 +3414 111 4696 4695 4697 +3415 111 4699 4698 4700 +3416 111 4702 4701 4703 +3417 111 4705 4704 4706 +3418 111 4708 4707 4709 +3419 111 4711 4710 4712 +3420 111 4714 4713 4715 +3421 111 4717 4716 4718 +3422 111 4720 4719 4721 +3423 111 4723 4722 4724 +3424 111 4726 4725 4727 +3425 111 4729 4728 4730 +3426 111 4732 4731 4733 +3427 111 4735 4734 4736 +3428 111 4738 4737 4739 +3429 111 4741 4740 4742 +3430 111 4744 4743 4745 +3431 111 4747 4746 4748 +3432 111 4750 4749 4751 +3433 111 4753 4752 4754 +3434 111 4756 4755 4757 +3435 111 4759 4758 4760 +3436 111 4762 4761 4763 +3437 111 4765 4764 4766 +3438 111 4768 4767 4769 +3439 111 4771 4770 4772 +3440 111 4774 4773 4775 +3441 111 4777 4776 4778 +3442 111 4780 4779 4781 +3443 111 4783 4782 4784 +3444 111 4786 4785 4787 +3445 111 4789 4788 4790 +3446 111 4792 4791 4793 +3447 111 4795 4794 4796 +3448 111 4798 4797 4799 +3449 111 4801 4800 4802 +3450 111 4804 4803 4805 +3451 111 4807 4806 4808 +3452 111 4810 4809 4811 +3453 111 4813 4812 4814 +3454 111 4816 4815 4817 +3455 111 4819 4818 4820 +3456 111 4822 4821 4823 +3457 111 4825 4824 4826 +3458 111 4828 4827 4829 +3459 111 4831 4830 4832 +3460 111 4834 4833 4835 +3461 111 4837 4836 4838 +3462 111 4840 4839 4841 +3463 111 4843 4842 4844 +3464 111 4846 4845 4847 +3465 111 4849 4848 4850 +3466 111 4852 4851 4853 +3467 111 4855 4854 4856 +3468 111 4858 4857 4859 +3469 111 4861 4860 4862 +3470 111 4864 4863 4865 +3471 111 4867 4866 4868 +3472 111 4870 4869 4871 +3473 111 4873 4872 4874 +3474 111 4876 4875 4877 +3475 111 4879 4878 4880 +3476 111 4882 4881 4883 +3477 111 4885 4884 4886 +3478 111 4888 4887 4889 +3479 111 4891 4890 4892 +3480 111 4894 4893 4895 +3481 111 4897 4896 4898 +3482 111 4900 4899 4901 +3483 111 4903 4902 4904 +3484 111 4906 4905 4907 +3485 111 4909 4908 4910 +3486 111 4912 4911 4913 +3487 111 4915 4914 4916 +3488 111 4918 4917 4919 +3489 111 4921 4920 4922 +3490 111 4924 4923 4925 +3491 111 4927 4926 4928 +3492 111 4930 4929 4931 +3493 111 4933 4932 4934 +3494 111 4936 4935 4937 +3495 111 4939 4938 4940 +3496 111 4942 4941 4943 +3497 111 4945 4944 4946 +3498 111 4948 4947 4949 +3499 111 4951 4950 4952 +3500 111 4954 4953 4955 +3501 111 4957 4956 4958 +3502 111 4960 4959 4961 +3503 111 4963 4962 4964 +3504 111 4966 4965 4967 +3505 111 4969 4968 4970 +3506 111 4972 4971 4973 +3507 111 4975 4974 4976 +3508 111 4978 4977 4979 +3509 111 4981 4980 4982 +3510 111 4984 4983 4985 +3511 111 4987 4986 4988 +3512 111 4990 4989 4991 +3513 111 4993 4992 4994 +3514 111 4996 4995 4997 +3515 111 4999 4998 5000 +3516 111 5002 5001 5003 +3517 111 5005 5004 5006 +3518 111 5008 5007 5009 +3519 111 5011 5010 5012 +3520 111 5014 5013 5015 +3521 111 5017 5016 5018 +3522 111 5020 5019 5021 +3523 111 5023 5022 5024 +3524 111 5026 5025 5027 +3525 111 5029 5028 5030 +3526 111 5032 5031 5033 +3527 111 5035 5034 5036 +3528 111 5038 5037 5039 +3529 111 5041 5040 5042 +3530 111 5044 5043 5045 +3531 111 5047 5046 5048 +3532 111 5050 5049 5051 +3533 111 5053 5052 5054 +3534 111 5056 5055 5057 +3535 111 5059 5058 5060 +3536 111 5062 5061 5063 +3537 111 5065 5064 5066 +3538 111 5068 5067 5069 +3539 111 5071 5070 5072 +3540 111 5074 5073 5075 +3541 111 5077 5076 5078 +3542 111 5080 5079 5081 +3543 111 5083 5082 5084 +3544 111 5086 5085 5087 +3545 111 5089 5088 5090 +3546 111 5092 5091 5093 +3547 111 5095 5094 5096 +3548 111 5098 5097 5099 +3549 111 5101 5100 5102 +3550 111 5104 5103 5105 +3551 111 5107 5106 5108 +3552 111 5110 5109 5111 +3553 111 5113 5112 5114 +3554 111 5116 5115 5117 +3555 111 5119 5118 5120 +3556 111 5122 5121 5123 +3557 111 5125 5124 5126 +3558 111 5128 5127 5129 +3559 111 5131 5130 5132 +3560 111 5134 5133 5135 +3561 111 5137 5136 5138 +3562 111 5140 5139 5141 +3563 111 5143 5142 5144 +3564 111 5146 5145 5147 +3565 111 5149 5148 5150 +3566 111 5152 5151 5153 +3567 111 5155 5154 5156 +3568 111 5158 5157 5159 +3569 111 5161 5160 5162 +3570 111 5164 5163 5165 +3571 111 5167 5166 5168 +3572 111 5170 5169 5171 +3573 111 5173 5172 5174 +3574 111 5176 5175 5177 +3575 111 5179 5178 5180 +3576 111 5182 5181 5183 +3577 111 5185 5184 5186 +3578 111 5188 5187 5189 +3579 111 5191 5190 5192 +3580 111 5194 5193 5195 +3581 111 5197 5196 5198 +3582 111 5200 5199 5201 +3583 111 5203 5202 5204 +3584 111 5206 5205 5207 +3585 111 5209 5208 5210 +3586 111 5212 5211 5213 +3587 111 5215 5214 5216 +3588 111 5218 5217 5219 +3589 111 5221 5220 5222 +3590 111 5224 5223 5225 +3591 111 5227 5226 5228 +3592 111 5230 5229 5231 +3593 111 5233 5232 5234 +3594 111 5236 5235 5237 +3595 111 5239 5238 5240 +3596 111 5242 5241 5243 +3597 111 5245 5244 5246 +3598 111 5248 5247 5249 +3599 111 5251 5250 5252 +3600 111 5254 5253 5255 +3601 111 5257 5256 5258 +3602 111 5260 5259 5261 +3603 111 5263 5262 5264 +3604 111 5266 5265 5267 +3605 111 5269 5268 5270 +3606 111 5272 5271 5273 +3607 111 5275 5274 5276 +3608 111 5278 5277 5279 +3609 111 5281 5280 5282 +3610 111 5284 5283 5285 +3611 111 5287 5286 5288 +3612 111 5290 5289 5291 +3613 111 5293 5292 5294 +3614 111 5296 5295 5297 +3615 111 5299 5298 5300 +3616 111 5302 5301 5303 +3617 111 5305 5304 5306 +3618 111 5308 5307 5309 +3619 111 5311 5310 5312 +3620 111 5314 5313 5315 +3621 111 5317 5316 5318 +3622 111 5320 5319 5321 +3623 111 5323 5322 5324 +3624 111 5326 5325 5327 +3625 111 5329 5328 5330 +3626 111 5332 5331 5333 +3627 111 5335 5334 5336 +3628 111 5338 5337 5339 +3629 111 5341 5340 5342 +3630 111 5344 5343 5345 +3631 111 5347 5346 5348 +3632 111 5350 5349 5351 +3633 111 5353 5352 5354 +3634 111 5356 5355 5357 +3635 111 5359 5358 5360 +3636 111 5362 5361 5363 +3637 111 5365 5364 5366 +3638 111 5368 5367 5369 +3639 111 5371 5370 5372 +3640 111 5374 5373 5375 +3641 111 5377 5376 5378 +3642 111 5380 5379 5381 +3643 111 5383 5382 5384 +3644 111 5386 5385 5387 +3645 111 5389 5388 5390 +3646 111 5392 5391 5393 +3647 111 5395 5394 5396 +3648 111 5398 5397 5399 +3649 111 5401 5400 5402 +3650 111 5404 5403 5405 +3651 111 5407 5406 5408 +3652 111 5410 5409 5411 +3653 111 5413 5412 5414 +3654 111 5416 5415 5417 +3655 111 5419 5418 5420 +3656 111 5422 5421 5423 +3657 111 5425 5424 5426 +3658 111 5428 5427 5429 +3659 111 5431 5430 5432 +3660 111 5434 5433 5435 +3661 111 5437 5436 5438 +3662 111 5440 5439 5441 +3663 111 5443 5442 5444 +3664 111 5446 5445 5447 +3665 111 5449 5448 5450 +3666 111 5452 5451 5453 +3667 111 5455 5454 5456 +3668 111 5458 5457 5459 +3669 111 5461 5460 5462 +3670 111 5464 5463 5465 +3671 111 5467 5466 5468 +3672 111 5470 5469 5471 +3673 111 5473 5472 5474 +3674 111 5476 5475 5477 +3675 111 5479 5478 5480 +3676 111 5482 5481 5483 +3677 111 5485 5484 5486 +3678 111 5488 5487 5489 +3679 111 5491 5490 5492 +3680 111 5494 5493 5495 +3681 111 5497 5496 5498 +3682 111 5500 5499 5501 +3683 111 5503 5502 5504 +3684 111 5506 5505 5507 +3685 111 5509 5508 5510 +3686 111 5512 5511 5513 +3687 111 5515 5514 5516 +3688 111 5518 5517 5519 +3689 111 5521 5520 5522 +3690 111 5524 5523 5525 +3691 111 5527 5526 5528 +3692 111 5530 5529 5531 +3693 111 5533 5532 5534 +3694 111 5536 5535 5537 +3695 111 5539 5538 5540 +3696 111 5542 5541 5543 +3697 111 5545 5544 5546 +3698 111 5548 5547 5549 +3699 111 5551 5550 5552 +3700 111 5554 5553 5555 +3701 111 5557 5556 5558 +3702 111 5560 5559 5561 +3703 111 5563 5562 5564 +3704 111 5566 5565 5567 +3705 111 5569 5568 5570 +3706 111 5572 5571 5573 +3707 111 5575 5574 5576 +3708 111 5578 5577 5579 +3709 111 5581 5580 5582 +3710 111 5584 5583 5585 +3711 111 5587 5586 5588 +3712 111 5590 5589 5591 +3713 111 5593 5592 5594 +3714 111 5596 5595 5597 +3715 111 5599 5598 5600 +3716 111 5602 5601 5603 +3717 111 5605 5604 5606 +3718 111 5608 5607 5609 +3719 111 5611 5610 5612 +3720 111 5614 5613 5615 +3721 111 5617 5616 5618 +3722 111 5620 5619 5621 +3723 111 5623 5622 5624 +3724 111 5626 5625 5627 +3725 111 5629 5628 5630 +3726 111 5632 5631 5633 +3727 111 5635 5634 5636 +3728 111 5638 5637 5639 +3729 111 5641 5640 5642 +3730 111 5644 5643 5645 +3731 111 5647 5646 5648 +3732 111 5650 5649 5651 +3733 111 5653 5652 5654 +3734 111 5656 5655 5657 +3735 111 5659 5658 5660 +3736 111 5662 5661 5663 +3737 111 5665 5664 5666 +3738 111 5668 5667 5669 +3739 111 5671 5670 5672 +3740 111 5674 5673 5675 +3741 111 5677 5676 5678 +3742 111 5680 5679 5681 +3743 111 5683 5682 5684 +3744 111 5686 5685 5687 +3745 111 5689 5688 5690 +3746 111 5692 5691 5693 +3747 111 5695 5694 5696 +3748 111 5698 5697 5699 +3749 111 5701 5700 5702 +3750 111 5704 5703 5705 +3751 111 5707 5706 5708 +3752 111 5710 5709 5711 +3753 111 5713 5712 5714 +3754 111 5716 5715 5717 +3755 111 5719 5718 5720 +3756 111 5722 5721 5723 +3757 111 5725 5724 5726 +3758 111 5728 5727 5729 +3759 111 5731 5730 5732 +3760 111 5734 5733 5735 +3761 111 5737 5736 5738 +3762 111 5740 5739 5741 +3763 111 5743 5742 5744 +3764 111 5746 5745 5747 +3765 111 5749 5748 5750 +3766 111 5752 5751 5753 +3767 111 5755 5754 5756 +3768 111 5758 5757 5759 +3769 111 5761 5760 5762 +3770 111 5764 5763 5765 +3771 111 5767 5766 5768 +3772 111 5770 5769 5771 +3773 111 5773 5772 5774 +3774 111 5776 5775 5777 +3775 111 5779 5778 5780 +3776 111 5782 5781 5783 +3777 111 5785 5784 5786 +3778 111 5788 5787 5789 +3779 111 5791 5790 5792 +3780 111 5794 5793 5795 +3781 111 5797 5796 5798 +3782 111 5800 5799 5801 +3783 111 5803 5802 5804 +3784 111 5806 5805 5807 +3785 111 5809 5808 5810 +3786 111 5812 5811 5813 +3787 111 5815 5814 5816 +3788 111 5818 5817 5819 +3789 111 5821 5820 5822 +3790 111 5824 5823 5825 +3791 111 5827 5826 5828 +3792 111 5830 5829 5831 +3793 111 5833 5832 5834 +3794 111 5836 5835 5837 +3795 111 5839 5838 5840 +3796 111 5842 5841 5843 +3797 111 5845 5844 5846 +3798 111 5848 5847 5849 +3799 111 5851 5850 5852 +3800 111 5854 5853 5855 +3801 111 5857 5856 5858 +3802 111 5860 5859 5861 +3803 111 5863 5862 5864 +3804 111 5866 5865 5867 +3805 111 5869 5868 5870 +3806 111 5872 5871 5873 +3807 111 5875 5874 5876 +3808 111 5878 5877 5879 +3809 111 5881 5880 5882 +3810 111 5884 5883 5885 +3811 111 5887 5886 5888 +3812 111 5890 5889 5891 +3813 111 5893 5892 5894 +3814 111 5896 5895 5897 +3815 111 5899 5898 5900 +3816 111 5902 5901 5903 +3817 111 5905 5904 5906 +3818 111 5908 5907 5909 +3819 111 5911 5910 5912 +3820 111 5914 5913 5915 +3821 111 5917 5916 5918 +3822 111 5920 5919 5921 +3823 111 5923 5922 5924 +3824 111 5926 5925 5927 +3825 111 5929 5928 5930 +3826 111 5932 5931 5933 +3827 111 5935 5934 5936 +3828 111 5938 5937 5939 +3829 111 5941 5940 5942 +3830 111 5944 5943 5945 +3831 111 5947 5946 5948 +3832 111 5950 5949 5951 +3833 111 5953 5952 5954 +3834 111 5956 5955 5957 +3835 111 5959 5958 5960 +3836 111 5962 5961 5963 +3837 111 5965 5964 5966 +3838 111 5968 5967 5969 +3839 111 5971 5970 5972 +3840 111 5974 5973 5975 +3841 111 5977 5976 5978 +3842 111 5980 5979 5981 +3843 111 5983 5982 5984 +3844 111 5986 5985 5987 +3845 111 5989 5988 5990 +3846 111 5992 5991 5993 +3847 111 5995 5994 5996 +3848 111 5998 5997 5999 +3849 111 6001 6000 6002 +3850 111 6004 6003 6005 +3851 111 6007 6006 6008 +3852 111 6010 6009 6011 +3853 111 6013 6012 6014 +3854 111 6016 6015 6017 +3855 111 6019 6018 6020 +3856 111 6022 6021 6023 +3857 111 6025 6024 6026 +3858 111 6028 6027 6029 +3859 111 6031 6030 6032 +3860 111 6034 6033 6035 +3861 111 6037 6036 6038 +3862 111 6040 6039 6041 +3863 111 6043 6042 6044 +3864 111 6046 6045 6047 +3865 111 6049 6048 6050 +3866 111 6052 6051 6053 +3867 111 6055 6054 6056 +3868 111 6058 6057 6059 +3869 111 6061 6060 6062 +3870 111 6064 6063 6065 +3871 111 6067 6066 6068 +3872 111 6070 6069 6071 +3873 111 6073 6072 6074 +3874 111 6076 6075 6077 +3875 111 6079 6078 6080 +3876 111 6082 6081 6083 +3877 111 6085 6084 6086 +3878 111 6088 6087 6089 +3879 111 6091 6090 6092 +3880 111 6094 6093 6095 +3881 111 6097 6096 6098 +3882 111 6100 6099 6101 +3883 111 6103 6102 6104 +3884 111 6106 6105 6107 +3885 111 6109 6108 6110 +3886 111 6112 6111 6113 +3887 111 6115 6114 6116 +3888 111 6118 6117 6119 +3889 111 6121 6120 6122 +3890 111 6124 6123 6125 +3891 111 6127 6126 6128 +3892 111 6130 6129 6131 +3893 111 6133 6132 6134 +3894 111 6136 6135 6137 +3895 111 6139 6138 6140 +3896 111 6142 6141 6143 +3897 111 6145 6144 6146 +3898 111 6148 6147 6149 +3899 111 6151 6150 6152 +3900 111 6154 6153 6155 +3901 111 6157 6156 6158 +3902 111 6160 6159 6161 +3903 111 6163 6162 6164 +3904 111 6166 6165 6167 +3905 111 6169 6168 6170 +3906 111 6172 6171 6173 +3907 111 6175 6174 6176 +3908 111 6178 6177 6179 +3909 111 6181 6180 6182 +3910 111 6184 6183 6185 +3911 111 6187 6186 6188 +3912 111 6190 6189 6191 +3913 111 6193 6192 6194 +3914 111 6196 6195 6197 +3915 111 6199 6198 6200 +3916 111 6202 6201 6203 +3917 111 6205 6204 6206 +3918 111 6208 6207 6209 +3919 111 6211 6210 6212 +3920 111 6214 6213 6215 +3921 111 6217 6216 6218 +3922 111 6220 6219 6221 +3923 111 6223 6222 6224 +3924 111 6226 6225 6227 +3925 111 6229 6228 6230 +3926 111 6232 6231 6233 +3927 111 6235 6234 6236 +3928 111 6238 6237 6239 +3929 111 6241 6240 6242 +3930 111 6244 6243 6245 +3931 111 6247 6246 6248 +3932 111 6250 6249 6251 +3933 111 6253 6252 6254 +3934 111 6256 6255 6257 +3935 111 6259 6258 6260 +3936 111 6262 6261 6263 +3937 111 6265 6264 6266 +3938 111 6268 6267 6269 +3939 111 6271 6270 6272 +3940 111 6274 6273 6275 +3941 111 6277 6276 6278 +3942 111 6280 6279 6281 +3943 111 6283 6282 6284 +3944 111 6286 6285 6287 +3945 111 6289 6288 6290 +3946 111 6292 6291 6293 +3947 111 6295 6294 6296 +3948 111 6298 6297 6299 +3949 111 6301 6300 6302 +3950 111 6304 6303 6305 +3951 111 6307 6306 6308 +3952 111 6310 6309 6311 +3953 111 6313 6312 6314 +3954 111 6316 6315 6317 +3955 111 6319 6318 6320 +3956 111 6322 6321 6323 +3957 111 6325 6324 6326 +3958 111 6328 6327 6329 +3959 111 6331 6330 6332 +3960 111 6334 6333 6335 +3961 111 6337 6336 6338 +3962 111 6340 6339 6341 +3963 111 6343 6342 6344 +3964 111 6346 6345 6347 +3965 111 6349 6348 6350 +3966 111 6352 6351 6353 +3967 111 6355 6354 6356 +3968 111 6358 6357 6359 +3969 111 6361 6360 6362 +3970 111 6364 6363 6365 +3971 111 6367 6366 6368 +3972 111 6370 6369 6371 +3973 111 6373 6372 6374 +3974 111 6376 6375 6377 +3975 111 6379 6378 6380 +3976 111 6382 6381 6383 +3977 111 6385 6384 6386 +3978 111 6388 6387 6389 +3979 111 6391 6390 6392 +3980 111 6394 6393 6395 +3981 111 6397 6396 6398 +3982 111 6400 6399 6401 +3983 111 6403 6402 6404 +3984 111 6406 6405 6407 +3985 111 6409 6408 6410 +3986 111 6412 6411 6413 +3987 111 6415 6414 6416 +3988 111 6418 6417 6419 +3989 111 6421 6420 6422 +3990 111 6424 6423 6425 +3991 111 6427 6426 6428 +3992 111 6430 6429 6431 +3993 111 6433 6432 6434 +3994 111 6436 6435 6437 +3995 111 6439 6438 6440 +3996 111 6442 6441 6443 +3997 111 6445 6444 6446 +3998 111 6448 6447 6449 +3999 111 6451 6450 6452 +4000 111 6454 6453 6455 +4001 111 6457 6456 6458 +4002 111 6460 6459 6461 +4003 111 6463 6462 6464 +4004 111 6466 6465 6467 +4005 111 6469 6468 6470 +4006 111 6472 6471 6473 +4007 111 6475 6474 6476 +4008 111 6478 6477 6479 +4009 111 6481 6480 6482 +4010 111 6484 6483 6485 +4011 111 6487 6486 6488 +4012 111 6490 6489 6491 +4013 111 6493 6492 6494 +4014 111 6496 6495 6497 +4015 111 6499 6498 6500 +4016 111 6502 6501 6503 +4017 111 6505 6504 6506 +4018 111 6508 6507 6509 +4019 111 6511 6510 6512 +4020 111 6514 6513 6515 +4021 111 6517 6516 6518 +4022 111 6520 6519 6521 +4023 111 6523 6522 6524 +4024 111 6526 6525 6527 +4025 111 6529 6528 6530 +4026 111 6532 6531 6533 +4027 111 6535 6534 6536 +4028 111 6538 6537 6539 +4029 111 6541 6540 6542 +4030 111 6544 6543 6545 +4031 111 6547 6546 6548 +4032 111 6550 6549 6551 +4033 111 6553 6552 6554 +4034 111 6556 6555 6557 +4035 111 6559 6558 6560 +4036 111 6562 6561 6563 +4037 111 6565 6564 6566 +4038 111 6568 6567 6569 +4039 111 6571 6570 6572 +4040 111 6574 6573 6575 +4041 111 6577 6576 6578 +4042 111 6580 6579 6581 +4043 111 6583 6582 6584 +4044 111 6586 6585 6587 +4045 111 6589 6588 6590 +4046 111 6592 6591 6593 +4047 111 6595 6594 6596 +4048 111 6598 6597 6599 +4049 111 6601 6600 6602 +4050 111 6604 6603 6605 +4051 111 6607 6606 6608 +4052 111 6610 6609 6611 +4053 111 6613 6612 6614 +4054 111 6616 6615 6617 +4055 111 6619 6618 6620 +4056 111 6622 6621 6623 +4057 111 6625 6624 6626 +4058 111 6628 6627 6629 +4059 111 6631 6630 6632 +4060 111 6634 6633 6635 +4061 111 6637 6636 6638 +4062 111 6640 6639 6641 +4063 111 6643 6642 6644 +4064 111 6646 6645 6647 +4065 111 6649 6648 6650 +4066 111 6652 6651 6653 +4067 111 6655 6654 6656 +4068 111 6658 6657 6659 +4069 111 6661 6660 6662 +4070 111 6664 6663 6665 +4071 111 6667 6666 6668 +4072 111 6670 6669 6671 +4073 111 6673 6672 6674 +4074 111 6676 6675 6677 +4075 111 6679 6678 6680 +4076 111 6682 6681 6683 +4077 111 6685 6684 6686 +4078 111 6688 6687 6689 +4079 111 6691 6690 6692 +4080 111 6694 6693 6695 +4081 111 6697 6696 6698 +4082 111 6700 6699 6701 +4083 111 6703 6702 6704 +4084 111 6706 6705 6707 +4085 111 6709 6708 6710 +4086 111 6712 6711 6713 +4087 111 6715 6714 6716 +4088 111 6718 6717 6719 +4089 111 6721 6720 6722 +4090 111 6724 6723 6725 +4091 111 6727 6726 6728 +4092 111 6730 6729 6731 +4093 111 6733 6732 6734 +4094 111 6736 6735 6737 +4095 111 6739 6738 6740 +4096 111 6742 6741 6743 +4097 111 6745 6744 6746 +4098 111 6748 6747 6749 +4099 111 6751 6750 6752 +4100 111 6754 6753 6755 +4101 111 6757 6756 6758 +4102 111 6760 6759 6761 +4103 111 6763 6762 6764 +4104 111 6766 6765 6767 +4105 111 6769 6768 6770 +4106 111 6772 6771 6773 +4107 111 6775 6774 6776 +4108 111 6778 6777 6779 +4109 111 6781 6780 6782 +4110 111 6784 6783 6785 +4111 111 6787 6786 6788 +4112 111 6790 6789 6791 +4113 111 6793 6792 6794 +4114 111 6796 6795 6797 +4115 111 6799 6798 6800 +4116 111 6802 6801 6803 +4117 111 6805 6804 6806 +4118 111 6808 6807 6809 +4119 111 6811 6810 6812 +4120 111 6814 6813 6815 +4121 111 6817 6816 6818 +4122 111 6820 6819 6821 +4123 111 6823 6822 6824 +4124 111 6826 6825 6827 +4125 111 6829 6828 6830 +4126 111 6832 6831 6833 +4127 111 6835 6834 6836 +4128 111 6838 6837 6839 +4129 111 6841 6840 6842 +4130 111 6844 6843 6845 +4131 111 6847 6846 6848 +4132 111 6850 6849 6851 +4133 111 6853 6852 6854 +4134 111 6856 6855 6857 +4135 111 6859 6858 6860 +4136 111 6862 6861 6863 +4137 111 6865 6864 6866 +4138 111 6868 6867 6869 +4139 111 6871 6870 6872 +4140 111 6874 6873 6875 +4141 111 6877 6876 6878 +4142 111 6880 6879 6881 +4143 111 6883 6882 6884 +4144 111 6886 6885 6887 +4145 111 6889 6888 6890 +4146 111 6892 6891 6893 +4147 111 6895 6894 6896 +4148 111 6898 6897 6899 +4149 111 6901 6900 6902 +4150 111 6904 6903 6905 +4151 111 6907 6906 6908 +4152 111 6910 6909 6911 +4153 111 6913 6912 6914 +4154 111 6916 6915 6917 +4155 111 6919 6918 6920 +4156 111 6922 6921 6923 +4157 111 6925 6924 6926 +4158 111 6928 6927 6929 +4159 111 6931 6930 6932 +4160 111 6934 6933 6935 +4161 111 6937 6936 6938 +4162 111 6940 6939 6941 +4163 111 6943 6942 6944 +4164 111 6946 6945 6947 +4165 111 6949 6948 6950 +4166 111 6952 6951 6953 +4167 111 6955 6954 6956 +4168 111 6958 6957 6959 +4169 111 6961 6960 6962 +4170 111 6964 6963 6965 +4171 111 6967 6966 6968 +4172 111 6970 6969 6971 +4173 111 6973 6972 6974 +4174 111 6976 6975 6977 +4175 111 6979 6978 6980 +4176 111 6982 6981 6983 +4177 111 6985 6984 6986 +4178 111 6988 6987 6989 +4179 111 6991 6990 6992 +4180 111 6994 6993 6995 +4181 111 6997 6996 6998 +4182 111 7000 6999 7001 +4183 111 7003 7002 7004 +4184 111 7006 7005 7007 +4185 111 7009 7008 7010 +4186 111 7012 7011 7013 +4187 111 7015 7014 7016 +4188 111 7018 7017 7019 +4189 111 7021 7020 7022 +4190 111 7024 7023 7025 +4191 111 7027 7026 7028 +4192 111 7030 7029 7031 +4193 111 7033 7032 7034 +4194 111 7036 7035 7037 +4195 111 7039 7038 7040 +4196 111 7042 7041 7043 +4197 111 7045 7044 7046 +4198 111 7048 7047 7049 +4199 111 7051 7050 7052 +4200 111 7054 7053 7055 +4201 111 7057 7056 7058 +4202 111 7060 7059 7061 +4203 111 7063 7062 7064 +4204 111 7066 7065 7067 +4205 111 7069 7068 7070 +4206 111 7072 7071 7073 +4207 111 7075 7074 7076 +4208 111 7078 7077 7079 +4209 111 7081 7080 7082 +4210 111 7084 7083 7085 +4211 111 7087 7086 7088 +4212 111 7090 7089 7091 +4213 111 7093 7092 7094 +4214 111 7096 7095 7097 +4215 111 7099 7098 7100 +4216 111 7102 7101 7103 +4217 111 7105 7104 7106 +4218 111 7108 7107 7109 +4219 111 7111 7110 7112 +4220 111 7114 7113 7115 +4221 111 7117 7116 7118 +4222 111 7120 7119 7121 +4223 111 7123 7122 7124 +4224 111 7126 7125 7127 +4225 111 7129 7128 7130 +4226 111 7132 7131 7133 +4227 111 7135 7134 7136 +4228 111 7138 7137 7139 +4229 111 7141 7140 7142 +4230 111 7144 7143 7145 +4231 111 7147 7146 7148 +4232 111 7150 7149 7151 +4233 111 7153 7152 7154 +4234 111 7156 7155 7157 +4235 111 7159 7158 7160 +4236 111 7162 7161 7163 +4237 111 7165 7164 7166 +4238 111 7168 7167 7169 +4239 111 7171 7170 7172 +4240 111 7174 7173 7175 +4241 111 7177 7176 7178 +4242 111 7180 7179 7181 +4243 111 7183 7182 7184 +4244 111 7186 7185 7187 +4245 111 7189 7188 7190 +4246 111 7192 7191 7193 +4247 111 7195 7194 7196 +4248 111 7198 7197 7199 +4249 111 7201 7200 7202 +4250 111 7204 7203 7205 +4251 111 7207 7206 7208 +4252 111 7210 7209 7211 +4253 111 7213 7212 7214 +4254 111 7216 7215 7217 +4255 111 7219 7218 7220 +4256 111 7222 7221 7223 +4257 111 7225 7224 7226 +4258 111 7228 7227 7229 +4259 111 7231 7230 7232 +4260 111 7234 7233 7235 +4261 111 7237 7236 7238 +4262 111 7240 7239 7241 +4263 111 7243 7242 7244 +4264 111 7246 7245 7247 +4265 111 7249 7248 7250 +4266 111 7252 7251 7253 +4267 111 7255 7254 7256 +4268 111 7258 7257 7259 +4269 111 7261 7260 7262 +4270 111 7264 7263 7265 +4271 111 7267 7266 7268 +4272 111 7270 7269 7271 +4273 111 7273 7272 7274 +4274 111 7276 7275 7277 +4275 111 7279 7278 7280 +4276 111 7282 7281 7283 +4277 111 7285 7284 7286 +4278 111 7288 7287 7289 +4279 111 7291 7290 7292 +4280 111 7294 7293 7295 +4281 111 7297 7296 7298 +4282 111 7300 7299 7301 +4283 111 7303 7302 7304 +4284 111 7306 7305 7307 +4285 111 7309 7308 7310 +4286 111 7312 7311 7313 +4287 111 7315 7314 7316 +4288 111 7318 7317 7319 +4289 111 7321 7320 7322 +4290 111 7324 7323 7325 +4291 111 7327 7326 7328 +4292 111 7330 7329 7331 +4293 111 7333 7332 7334 +4294 111 7336 7335 7337 +4295 111 7339 7338 7340 +4296 111 7342 7341 7343 +4297 111 7345 7344 7346 +4298 111 7348 7347 7349 +4299 111 7351 7350 7352 +4300 111 7354 7353 7355 +4301 111 7357 7356 7358 +4302 111 7360 7359 7361 +4303 111 7363 7362 7364 +4304 111 7366 7365 7367 +4305 111 7369 7368 7370 +4306 111 7372 7371 7373 +4307 111 7375 7374 7376 +4308 111 7378 7377 7379 +4309 111 7381 7380 7382 +4310 111 7384 7383 7385 +4311 111 7387 7386 7388 +4312 111 7390 7389 7391 +4313 111 7393 7392 7394 +4314 111 7396 7395 7397 +4315 111 7399 7398 7400 +4316 111 7402 7401 7403 +4317 111 7405 7404 7406 +4318 111 7408 7407 7409 +4319 111 7411 7410 7412 +4320 111 7414 7413 7415 +4321 111 7417 7416 7418 +4322 111 7420 7419 7421 +4323 111 7423 7422 7424 +4324 111 7426 7425 7427 +4325 111 7429 7428 7430 +4326 111 7432 7431 7433 +4327 111 7435 7434 7436 +4328 111 7438 7437 7439 +4329 111 7441 7440 7442 +4330 111 7444 7443 7445 +4331 111 7447 7446 7448 +4332 111 7450 7449 7451 +4333 111 7453 7452 7454 +4334 111 7456 7455 7457 +4335 111 7459 7458 7460 +4336 111 7462 7461 7463 +4337 111 7465 7464 7466 +4338 111 7468 7467 7469 +4339 111 7471 7470 7472 +4340 111 7474 7473 7475 +4341 111 7477 7476 7478 +4342 111 7480 7479 7481 +4343 111 7483 7482 7484 +4344 111 7486 7485 7487 +4345 111 7489 7488 7490 +4346 111 7492 7491 7493 +4347 111 7495 7494 7496 +4348 111 7498 7497 7499 +4349 111 7501 7500 7502 +4350 111 7504 7503 7505 +4351 111 7507 7506 7508 +4352 111 7510 7509 7511 +4353 111 7513 7512 7514 +4354 111 7516 7515 7517 +4355 111 7519 7518 7520 +4356 111 7522 7521 7523 +4357 111 7525 7524 7526 +4358 111 7528 7527 7529 +4359 111 7531 7530 7532 +4360 111 7534 7533 7535 +4361 111 7537 7536 7538 +4362 111 7540 7539 7541 +4363 111 7543 7542 7544 +4364 111 7546 7545 7547 +4365 111 7549 7548 7550 +4366 111 7552 7551 7553 +4367 111 7555 7554 7556 +4368 111 7558 7557 7559 +4369 111 7561 7560 7562 +4370 111 7564 7563 7565 +4371 111 7567 7566 7568 +4372 111 7570 7569 7571 +4373 111 7573 7572 7574 +4374 111 7576 7575 7577 +4375 111 7579 7578 7580 +4376 111 7582 7581 7583 +4377 111 7585 7584 7586 +4378 111 7588 7587 7589 +4379 111 7591 7590 7592 +4380 111 7594 7593 7595 +4381 111 7597 7596 7598 +4382 111 7600 7599 7601 +4383 111 7603 7602 7604 +4384 111 7606 7605 7607 +4385 111 7609 7608 7610 +4386 111 7612 7611 7613 +4387 111 7615 7614 7616 +4388 111 7618 7617 7619 +4389 111 7621 7620 7622 +4390 111 7624 7623 7625 +4391 111 7627 7626 7628 +4392 111 7630 7629 7631 +4393 111 7633 7632 7634 +4394 111 7636 7635 7637 +4395 111 7639 7638 7640 +4396 111 7642 7641 7643 +4397 111 7645 7644 7646 +4398 111 7648 7647 7649 +4399 111 7651 7650 7652 +4400 111 7654 7653 7655 +4401 111 7657 7656 7658 +4402 111 7660 7659 7661 +4403 111 7663 7662 7664 +4404 111 7666 7665 7667 +4405 111 7669 7668 7670 +4406 111 7672 7671 7673 +4407 111 7675 7674 7676 +4408 111 7678 7677 7679 +4409 111 7681 7680 7682 +4410 111 7684 7683 7685 +4411 111 7687 7686 7688 +4412 111 7690 7689 7691 +4413 111 7693 7692 7694 +4414 111 7696 7695 7697 +4415 111 7699 7698 7700 +4416 111 7702 7701 7703 +4417 111 7705 7704 7706 +4418 111 7708 7707 7709 +4419 111 7711 7710 7712 +4420 111 7714 7713 7715 +4421 111 7717 7716 7718 +4422 111 7720 7719 7721 +4423 111 7723 7722 7724 +4424 111 7726 7725 7727 +4425 111 7729 7728 7730 +4426 111 7732 7731 7733 +4427 111 7735 7734 7736 +4428 111 7738 7737 7739 +4429 111 7741 7740 7742 +4430 111 7744 7743 7745 +4431 111 7747 7746 7748 +4432 111 7750 7749 7751 +4433 111 7753 7752 7754 +4434 111 7756 7755 7757 +4435 111 7759 7758 7760 +4436 111 7762 7761 7763 +4437 111 7765 7764 7766 +4438 111 7768 7767 7769 +4439 111 7771 7770 7772 +4440 111 7774 7773 7775 +4441 111 7777 7776 7778 +4442 111 7780 7779 7781 +4443 111 7783 7782 7784 +4444 111 7786 7785 7787 +4445 111 7789 7788 7790 +4446 111 7792 7791 7793 +4447 111 7795 7794 7796 +4448 111 7798 7797 7799 +4449 111 7801 7800 7802 +4450 111 7804 7803 7805 +4451 111 7807 7806 7808 +4452 111 7810 7809 7811 +4453 111 7813 7812 7814 +4454 111 7816 7815 7817 +4455 111 7819 7818 7820 +4456 111 7822 7821 7823 +4457 111 7825 7824 7826 +4458 111 7828 7827 7829 +4459 111 7831 7830 7832 +4460 111 7834 7833 7835 +4461 111 7837 7836 7838 +4462 111 7840 7839 7841 +4463 111 7843 7842 7844 +4464 111 7846 7845 7847 +4465 111 7849 7848 7850 +4466 111 7852 7851 7853 +4467 111 7855 7854 7856 +4468 111 7858 7857 7859 +4469 111 7861 7860 7862 +4470 111 7864 7863 7865 +4471 111 7867 7866 7868 +4472 111 7870 7869 7871 +4473 111 7873 7872 7874 +4474 111 7876 7875 7877 +4475 111 7879 7878 7880 +4476 111 7882 7881 7883 +4477 111 7885 7884 7886 +4478 111 7888 7887 7889 +4479 111 7891 7890 7892 +4480 111 7894 7893 7895 +4481 111 7897 7896 7898 +4482 111 7900 7899 7901 +4483 111 7903 7902 7904 +4484 111 7906 7905 7907 +4485 111 7909 7908 7910 +4486 111 7912 7911 7913 +4487 111 7915 7914 7916 +4488 111 7918 7917 7919 +4489 111 7921 7920 7922 +4490 111 7924 7923 7925 +4491 111 7927 7926 7928 +4492 111 7930 7929 7931 +4493 111 7933 7932 7934 +4494 111 7936 7935 7937 +4495 111 7939 7938 7940 +4496 111 7942 7941 7943 +4497 111 7945 7944 7946 +4498 111 7948 7947 7949 +4499 111 7951 7950 7952 +4500 111 7954 7953 7955 +4501 111 7957 7956 7958 +4502 111 7960 7959 7961 +4503 111 7963 7962 7964 +4504 111 7966 7965 7967 +4505 111 7969 7968 7970 +4506 111 7972 7971 7973 +4507 111 7975 7974 7976 +4508 111 7978 7977 7979 +4509 111 7981 7980 7982 +4510 111 7984 7983 7985 +4511 111 7987 7986 7988 +4512 111 7990 7989 7991 +4513 111 7993 7992 7994 +4514 111 7996 7995 7997 +4515 111 7999 7998 8000 +4516 111 8002 8001 8003 +4517 111 8005 8004 8006 +4518 111 8008 8007 8009 +4519 111 8011 8010 8012 +4520 111 8014 8013 8015 +4521 111 8017 8016 8018 +4522 111 8020 8019 8021 +4523 111 8023 8022 8024 +4524 111 8026 8025 8027 +4525 111 8029 8028 8030 +4526 111 8032 8031 8033 +4527 111 8035 8034 8036 +4528 111 8038 8037 8039 +4529 111 8041 8040 8042 +4530 111 8044 8043 8045 +4531 111 8047 8046 8048 +4532 111 8050 8049 8051 +4533 111 8053 8052 8054 +4534 111 8056 8055 8057 +4535 111 8059 8058 8060 +4536 111 8062 8061 8063 +4537 111 8065 8064 8066 +4538 111 8068 8067 8069 +4539 111 8071 8070 8072 +4540 111 8074 8073 8075 +4541 111 8077 8076 8078 +4542 111 8080 8079 8081 +4543 111 8083 8082 8084 +4544 111 8086 8085 8087 +4545 111 8089 8088 8090 +4546 111 8092 8091 8093 +4547 111 8095 8094 8096 +4548 111 8098 8097 8099 +4549 111 8101 8100 8102 +4550 111 8104 8103 8105 +4551 111 8107 8106 8108 +4552 111 8110 8109 8111 +4553 111 8113 8112 8114 +4554 111 8116 8115 8117 +4555 111 8119 8118 8120 +4556 111 8122 8121 8123 +4557 111 8125 8124 8126 +4558 111 8128 8127 8129 +4559 111 8131 8130 8132 +4560 111 8134 8133 8135 +4561 111 8137 8136 8138 +4562 111 8140 8139 8141 +4563 111 8143 8142 8144 +4564 111 8146 8145 8147 +4565 111 8149 8148 8150 +4566 111 8152 8151 8153 +4567 111 8155 8154 8156 +4568 111 8158 8157 8159 +4569 111 8161 8160 8162 +4570 111 8164 8163 8165 +4571 111 8167 8166 8168 +4572 111 8170 8169 8171 +4573 111 8173 8172 8174 +4574 111 8176 8175 8177 +4575 111 8179 8178 8180 +4576 111 8182 8181 8183 +4577 111 8185 8184 8186 +4578 111 8188 8187 8189 +4579 111 8191 8190 8192 +4580 111 8194 8193 8195 +4581 111 8197 8196 8198 +4582 111 8200 8199 8201 +4583 111 8203 8202 8204 +4584 111 8206 8205 8207 +4585 111 8209 8208 8210 +4586 111 8212 8211 8213 +4587 111 8215 8214 8216 +4588 111 8218 8217 8219 +4589 111 8221 8220 8222 +4590 111 8224 8223 8225 +4591 111 8227 8226 8228 +4592 111 8230 8229 8231 +4593 111 8233 8232 8234 +4594 111 8236 8235 8237 +4595 111 8239 8238 8240 +4596 111 8242 8241 8243 +4597 111 8245 8244 8246 +4598 111 8248 8247 8249 +4599 111 8251 8250 8252 +4600 111 8254 8253 8255 +4601 111 8257 8256 8258 +4602 111 8260 8259 8261 +4603 111 8263 8262 8264 +4604 111 8266 8265 8267 +4605 111 8269 8268 8270 +4606 111 8272 8271 8273 +4607 111 8275 8274 8276 +4608 111 8278 8277 8279 +4609 111 8281 8280 8282 +4610 111 8284 8283 8285 +4611 111 8287 8286 8288 +4612 111 8290 8289 8291 +4613 111 8293 8292 8294 +4614 111 8296 8295 8297 +4615 111 8299 8298 8300 +4616 111 8302 8301 8303 +4617 111 8305 8304 8306 +4618 111 8308 8307 8309 +4619 111 8311 8310 8312 +4620 111 8314 8313 8315 +4621 111 8317 8316 8318 +4622 111 8320 8319 8321 +4623 111 8323 8322 8324 +4624 111 8326 8325 8327 +4625 111 8329 8328 8330 +4626 111 8332 8331 8333 +4627 111 8335 8334 8336 +4628 111 8338 8337 8339 +4629 111 8341 8340 8342 +4630 111 8344 8343 8345 +4631 111 8347 8346 8348 +4632 111 8350 8349 8351 +4633 111 8353 8352 8354 +4634 111 8356 8355 8357 +4635 111 8359 8358 8360 +4636 111 8362 8361 8363 +4637 111 8365 8364 8366 +4638 111 8368 8367 8369 +4639 111 8371 8370 8372 +4640 111 8374 8373 8375 +4641 111 8377 8376 8378 +4642 111 8380 8379 8381 +4643 111 8383 8382 8384 +4644 111 8386 8385 8387 +4645 111 8389 8388 8390 +4646 111 8392 8391 8393 +4647 111 8395 8394 8396 +4648 111 8398 8397 8399 +4649 111 8401 8400 8402 +4650 111 8404 8403 8405 +4651 111 8407 8406 8408 +4652 111 8410 8409 8411 +4653 111 8413 8412 8414 +4654 111 8416 8415 8417 +4655 111 8419 8418 8420 +4656 111 8422 8421 8423 +4657 111 8425 8424 8426 +4658 111 8428 8427 8429 +4659 111 8431 8430 8432 +4660 111 8434 8433 8435 +4661 111 8437 8436 8438 +4662 111 8440 8439 8441 +4663 111 8443 8442 8444 +4664 111 8446 8445 8447 +4665 111 8449 8448 8450 +4666 111 8452 8451 8453 +4667 111 8455 8454 8456 +4668 111 8458 8457 8459 +4669 111 8461 8460 8462 +4670 111 8464 8463 8465 +4671 111 8467 8466 8468 +4672 111 8470 8469 8471 +4673 111 8473 8472 8474 +4674 111 8476 8475 8477 +4675 111 8479 8478 8480 +4676 111 8482 8481 8483 +4677 111 8485 8484 8486 +4678 111 8488 8487 8489 +4679 111 8491 8490 8492 +4680 111 8494 8493 8495 +4681 111 8497 8496 8498 +4682 111 8500 8499 8501 +4683 111 8503 8502 8504 +4684 111 8506 8505 8507 +4685 111 8509 8508 8510 +4686 111 8512 8511 8513 +4687 111 8515 8514 8516 +4688 111 8518 8517 8519 +4689 111 8521 8520 8522 +4690 111 8524 8523 8525 +4691 111 8527 8526 8528 +4692 111 8530 8529 8531 +4693 111 8533 8532 8534 +4694 111 8536 8535 8537 +4695 111 8539 8538 8540 +4696 111 8542 8541 8543 +4697 111 8545 8544 8546 +4698 111 8548 8547 8549 +4699 111 8551 8550 8552 +4700 111 8554 8553 8555 +4701 111 8557 8556 8558 +4702 111 8560 8559 8561 +4703 111 8563 8562 8564 +4704 111 8566 8565 8567 +4705 111 8569 8568 8570 +4706 111 8572 8571 8573 +4707 111 8575 8574 8576 +4708 111 8578 8577 8579 +4709 111 8581 8580 8582 +4710 111 8584 8583 8585 +4711 111 8587 8586 8588 +4712 111 8590 8589 8591 +4713 111 8593 8592 8594 +4714 111 8596 8595 8597 +4715 111 8599 8598 8600 +4716 111 8602 8601 8603 +4717 111 8605 8604 8606 +4718 111 8608 8607 8609 +4719 111 8611 8610 8612 +4720 111 8614 8613 8615 +4721 111 8617 8616 8618 +4722 111 8620 8619 8621 +4723 111 8623 8622 8624 +4724 111 8626 8625 8627 +4725 111 8629 8628 8630 +4726 111 8632 8631 8633 +4727 111 8635 8634 8636 +4728 111 8638 8637 8639 +4729 111 8641 8640 8642 +4730 111 8644 8643 8645 +4731 111 8647 8646 8648 +4732 111 8650 8649 8651 +4733 111 8653 8652 8654 +4734 111 8656 8655 8657 +4735 111 8659 8658 8660 +4736 111 8662 8661 8663 +4737 111 8665 8664 8666 +4738 111 8668 8667 8669 +4739 111 8671 8670 8672 +4740 111 8674 8673 8675 +4741 111 8677 8676 8678 +4742 111 8680 8679 8681 +4743 111 8683 8682 8684 +4744 111 8686 8685 8687 +4745 111 8689 8688 8690 +4746 111 8692 8691 8693 +4747 111 8695 8694 8696 +4748 111 8698 8697 8699 +4749 111 8701 8700 8702 +4750 111 8704 8703 8705 +4751 111 8707 8706 8708 +4752 111 8710 8709 8711 +4753 111 8713 8712 8714 +4754 111 8716 8715 8717 +4755 111 8719 8718 8720 +4756 111 8722 8721 8723 +4757 111 8725 8724 8726 +4758 111 8728 8727 8729 +4759 111 8731 8730 8732 +4760 111 8734 8733 8735 +4761 111 8737 8736 8738 +4762 111 8740 8739 8741 +4763 111 8743 8742 8744 +4764 111 8746 8745 8747 +4765 111 8749 8748 8750 +4766 111 8752 8751 8753 +4767 111 8755 8754 8756 +4768 111 8758 8757 8759 +4769 111 8761 8760 8762 +4770 111 8764 8763 8765 +4771 111 8767 8766 8768 +4772 111 8770 8769 8771 +4773 111 8773 8772 8774 +4774 111 8776 8775 8777 +4775 111 8779 8778 8780 +4776 111 8782 8781 8783 +4777 111 8785 8784 8786 +4778 111 8788 8787 8789 +4779 111 8791 8790 8792 +4780 111 8794 8793 8795 +4781 111 8797 8796 8798 +4782 111 8800 8799 8801 +4783 111 8803 8802 8804 +4784 111 8806 8805 8807 +4785 111 8809 8808 8810 +4786 111 8812 8811 8813 +4787 111 8815 8814 8816 +4788 111 8818 8817 8819 +4789 111 8821 8820 8822 +4790 111 8824 8823 8825 +4791 111 8827 8826 8828 +4792 111 8830 8829 8831 +4793 111 8833 8832 8834 +4794 111 8836 8835 8837 +4795 111 8839 8838 8840 +4796 111 8842 8841 8843 +4797 111 8845 8844 8846 +4798 111 8848 8847 8849 +4799 111 8851 8850 8852 +4800 111 8854 8853 8855 +4801 111 8857 8856 8858 +4802 111 8860 8859 8861 +4803 111 8863 8862 8864 +4804 111 8866 8865 8867 +4805 111 8869 8868 8870 +4806 111 8872 8871 8873 +4807 111 8875 8874 8876 +4808 111 8878 8877 8879 +4809 111 8881 8880 8882 +4810 111 8884 8883 8885 +4811 111 8887 8886 8888 +4812 111 8890 8889 8891 +4813 111 8893 8892 8894 +4814 111 8896 8895 8897 +4815 111 8899 8898 8900 +4816 111 8902 8901 8903 +4817 111 8905 8904 8906 +4818 111 8908 8907 8909 +4819 111 8911 8910 8912 +4820 111 8914 8913 8915 +4821 111 8917 8916 8918 +4822 111 8920 8919 8921 +4823 111 8923 8922 8924 +4824 111 8926 8925 8927 +4825 111 8929 8928 8930 +4826 111 8932 8931 8933 +4827 111 8935 8934 8936 +4828 111 8938 8937 8939 +4829 111 8941 8940 8942 +4830 111 8944 8943 8945 +4831 111 8947 8946 8948 +4832 111 8950 8949 8951 +4833 111 8953 8952 8954 +4834 111 8956 8955 8957 +4835 111 8959 8958 8960 +4836 111 8962 8961 8963 +4837 111 8965 8964 8966 +4838 111 8968 8967 8969 +4839 111 8971 8970 8972 +4840 111 8974 8973 8975 +4841 111 8977 8976 8978 +4842 111 8980 8979 8981 +4843 111 8983 8982 8984 +4844 111 8986 8985 8987 +4845 111 8989 8988 8990 +4846 111 8992 8991 8993 +4847 111 8995 8994 8996 +4848 111 8998 8997 8999 +4849 111 9001 9000 9002 +4850 111 9004 9003 9005 +4851 111 9007 9006 9008 +4852 111 9010 9009 9011 +4853 111 9013 9012 9014 +4854 111 9016 9015 9017 +4855 111 9019 9018 9020 +4856 111 9022 9021 9023 +4857 111 9025 9024 9026 +4858 111 9028 9027 9029 +4859 111 9031 9030 9032 +4860 111 9034 9033 9035 +4861 111 9037 9036 9038 +4862 111 9040 9039 9041 +4863 111 9043 9042 9044 +4864 111 9046 9045 9047 +4865 111 9049 9048 9050 +4866 111 9052 9051 9053 +4867 111 9055 9054 9056 +4868 111 9058 9057 9059 +4869 111 9061 9060 9062 +4870 111 9064 9063 9065 +4871 111 9067 9066 9068 +4872 111 9070 9069 9071 +4873 111 9073 9072 9074 +4874 111 9076 9075 9077 +4875 111 9079 9078 9080 +4876 111 9082 9081 9083 +4877 111 9085 9084 9086 +4878 111 9088 9087 9089 +4879 111 9091 9090 9092 +4880 111 9094 9093 9095 +4881 111 9097 9096 9098 +4882 111 9100 9099 9101 +4883 111 9103 9102 9104 +4884 111 9106 9105 9107 +4885 111 9109 9108 9110 +4886 111 9112 9111 9113 +4887 111 9115 9114 9116 +4888 111 9118 9117 9119 +4889 111 9121 9120 9122 +4890 111 9124 9123 9125 +4891 111 9127 9126 9128 +4892 111 9130 9129 9131 +4893 111 9133 9132 9134 +4894 111 9136 9135 9137 +4895 111 9139 9138 9140 +4896 111 9142 9141 9143 +4897 111 9145 9144 9146 +4898 111 9148 9147 9149 +4899 111 9151 9150 9152 +4900 111 9154 9153 9155 +4901 111 9157 9156 9158 +4902 111 9160 9159 9161 +4903 111 9163 9162 9164 +4904 111 9166 9165 9167 +4905 111 9169 9168 9170 +4906 111 9172 9171 9173 +4907 111 9175 9174 9176 +4908 111 9178 9177 9179 +4909 111 9181 9180 9182 +4910 111 9184 9183 9185 +4911 111 9187 9186 9188 +4912 111 9190 9189 9191 +4913 111 9193 9192 9194 +4914 111 9196 9195 9197 +4915 111 9199 9198 9200 +4916 111 9202 9201 9203 +4917 111 9205 9204 9206 +4918 111 9208 9207 9209 +4919 111 9211 9210 9212 +4920 111 9214 9213 9215 +4921 111 9217 9216 9218 +4922 111 9220 9219 9221 +4923 111 9223 9222 9224 +4924 111 9226 9225 9227 +4925 111 9229 9228 9230 +4926 111 9232 9231 9233 +4927 111 9235 9234 9236 +4928 111 9238 9237 9239 +4929 111 9241 9240 9242 +4930 111 9244 9243 9245 +4931 111 9247 9246 9248 +4932 111 9250 9249 9251 +4933 111 9253 9252 9254 +4934 111 9256 9255 9257 +4935 111 9259 9258 9260 +4936 111 9262 9261 9263 +4937 111 9265 9264 9266 +4938 111 9268 9267 9269 +4939 111 9271 9270 9272 +4940 111 9274 9273 9275 +4941 111 9277 9276 9278 +4942 111 9280 9279 9281 +4943 111 9283 9282 9284 +4944 111 9286 9285 9287 +4945 111 9289 9288 9290 +4946 111 9292 9291 9293 +4947 111 9295 9294 9296 +4948 111 9298 9297 9299 +4949 111 9301 9300 9302 +4950 111 9304 9303 9305 +4951 111 9307 9306 9308 +4952 111 9310 9309 9311 +4953 111 9313 9312 9314 +4954 111 9316 9315 9317 +4955 111 9319 9318 9320 +4956 111 9322 9321 9323 +4957 111 9325 9324 9326 +4958 111 9328 9327 9329 +4959 111 9331 9330 9332 +4960 111 9334 9333 9335 +4961 111 9337 9336 9338 +4962 111 9340 9339 9341 +4963 111 9343 9342 9344 +4964 111 9346 9345 9347 +4965 111 9349 9348 9350 +4966 111 9352 9351 9353 +4967 111 9355 9354 9356 +4968 111 9358 9357 9359 +4969 111 9361 9360 9362 +4970 111 9364 9363 9365 +4971 111 9367 9366 9368 +4972 111 9370 9369 9371 +4973 111 9373 9372 9374 +4974 111 9376 9375 9377 +4975 111 9379 9378 9380 +4976 111 9382 9381 9383 +4977 111 9385 9384 9386 +4978 111 9388 9387 9389 +4979 111 9391 9390 9392 +4980 111 9394 9393 9395 +4981 111 9397 9396 9398 +4982 111 9400 9399 9401 +4983 111 9403 9402 9404 +4984 111 9406 9405 9407 +4985 111 9409 9408 9410 +4986 111 9412 9411 9413 +4987 111 9415 9414 9416 +4988 111 9418 9417 9419 +4989 111 9421 9420 9422 +4990 111 9424 9423 9425 +4991 111 9427 9426 9428 +4992 111 9430 9429 9431 +4993 111 9433 9432 9434 +4994 111 9436 9435 9437 +4995 111 9439 9438 9440 +4996 111 9442 9441 9443 +4997 111 9445 9444 9446 +4998 111 9448 9447 9449 +4999 111 9451 9450 9452 +5000 111 9454 9453 9455 +5001 111 9457 9456 9458 +5002 111 9460 9459 9461 +5003 111 9463 9462 9464 +5004 111 9466 9465 9467 +5005 111 9469 9468 9470 +5006 111 9472 9471 9473 +5007 111 9475 9474 9476 +5008 111 9478 9477 9479 +5009 111 9481 9480 9482 +5010 111 9484 9483 9485 +5011 111 9487 9486 9488 +5012 111 9490 9489 9491 +5013 111 9493 9492 9494 +5014 111 9496 9495 9497 +5015 111 9499 9498 9500 +5016 111 9502 9501 9503 +5017 111 9505 9504 9506 +5018 111 9508 9507 9509 +5019 111 9511 9510 9512 +5020 111 9514 9513 9515 +5021 111 9517 9516 9518 +5022 111 9520 9519 9521 +5023 111 9523 9522 9524 +5024 111 9526 9525 9527 +5025 111 9529 9528 9530 +5026 111 9532 9531 9533 +5027 111 9535 9534 9536 +5028 111 9538 9537 9539 +5029 111 9541 9540 9542 +5030 111 9544 9543 9545 +5031 111 9547 9546 9548 +5032 111 9550 9549 9551 +5033 111 9553 9552 9554 +5034 111 9556 9555 9557 +5035 111 9559 9558 9560 +5036 111 9562 9561 9563 +5037 111 9565 9564 9566 +5038 111 9568 9567 9569 +5039 111 9571 9570 9572 +5040 111 9574 9573 9575 +5041 111 9577 9576 9578 +5042 111 9580 9579 9581 +5043 111 9583 9582 9584 +5044 111 9586 9585 9587 +5045 111 9589 9588 9590 +5046 111 9592 9591 9593 +5047 111 9595 9594 9596 +5048 111 9598 9597 9599 +5049 111 9601 9600 9602 +5050 111 9604 9603 9605 +5051 111 9607 9606 9608 +5052 111 9610 9609 9611 +5053 111 9613 9612 9614 +5054 111 9616 9615 9617 +5055 111 9619 9618 9620 +5056 111 9622 9621 9623 +5057 111 9625 9624 9626 +5058 111 9628 9627 9629 +5059 111 9631 9630 9632 +5060 111 9634 9633 9635 +5061 111 9637 9636 9638 +5062 111 9640 9639 9641 +5063 111 9643 9642 9644 +5064 111 9646 9645 9647 +5065 111 9649 9648 9650 +5066 111 9652 9651 9653 +5067 111 9655 9654 9656 +5068 111 9658 9657 9659 +5069 111 9661 9660 9662 +5070 111 9664 9663 9665 +5071 111 9667 9666 9668 +5072 111 9670 9669 9671 +5073 111 9673 9672 9674 +5074 111 9676 9675 9677 +5075 111 9679 9678 9680 +5076 111 9682 9681 9683 +5077 111 9685 9684 9686 +5078 111 9688 9687 9689 +5079 111 9691 9690 9692 +5080 111 9694 9693 9695 +5081 111 9697 9696 9698 +5082 111 9700 9699 9701 +5083 111 9703 9702 9704 +5084 111 9706 9705 9707 +5085 111 9709 9708 9710 +5086 111 9712 9711 9713 +5087 111 9715 9714 9716 +5088 111 9718 9717 9719 +5089 111 9721 9720 9722 +5090 111 9724 9723 9725 +5091 111 9727 9726 9728 +5092 111 9730 9729 9731 +5093 111 9733 9732 9734 +5094 111 9736 9735 9737 + +Dihedrals + +1 1 5 1 2 3 +2 2 5 1 2 8 +3 3 5 1 2 9 +4 1 6 1 2 3 +5 2 6 1 2 8 +6 3 6 1 2 9 +7 1 7 1 2 3 +8 2 7 1 2 8 +9 3 7 1 2 9 +10 4 1 2 3 4 +11 5 1 2 3 20 +12 6 1 2 9 10 +13 7 1 2 9 13 +14 7 1 2 9 14 +15 8 3 2 9 10 +16 9 3 2 9 13 +17 9 3 2 9 14 +18 10 8 2 3 4 +19 11 8 2 3 20 +20 12 8 2 9 10 +21 13 8 2 9 13 +22 13 8 2 9 14 +23 14 9 2 3 4 +24 15 9 2 3 20 +25 16 2 3 20 21 +26 17 2 3 20 24 +27 18 4 3 20 21 +28 19 4 3 20 24 +29 20 2 9 10 11 +30 21 2 9 10 15 +31 21 2 9 10 16 +32 22 13 9 10 11 +33 23 13 9 10 15 +34 23 13 9 10 16 +35 22 14 9 10 11 +36 23 14 9 10 15 +37 23 14 9 10 16 +38 24 9 10 11 12 +39 25 15 10 11 12 +40 25 16 10 11 12 +41 25 10 11 12 17 +42 25 10 11 12 18 +43 25 10 11 12 19 +44 26 3 20 21 22 +45 27 3 20 21 25 +46 28 3 20 21 26 +47 29 24 20 21 22 +48 30 24 20 21 25 +49 31 24 20 21 26 +50 32 20 21 22 23 +51 33 20 21 22 37 +52 34 20 21 26 27 +53 35 20 21 26 31 +54 35 20 21 26 32 +55 8 22 21 26 27 +56 9 22 21 26 31 +57 9 22 21 26 32 +58 10 25 21 22 23 +59 11 25 21 22 37 +60 12 25 21 26 27 +61 13 25 21 26 31 +62 13 25 21 26 32 +63 14 26 21 22 23 +64 15 26 21 22 37 +65 16 21 22 37 38 +66 17 21 22 37 41 +67 18 23 22 37 38 +68 19 23 22 37 41 +69 36 21 26 27 28 +70 21 21 26 27 33 +71 21 21 26 27 34 +72 37 31 26 27 28 +73 23 31 26 27 33 +74 23 31 26 27 34 +75 37 32 26 27 28 +76 23 32 26 27 33 +77 23 32 26 27 34 +78 38 26 27 28 29 +79 39 26 27 28 30 +80 40 33 27 28 29 +81 41 33 27 28 30 +82 40 34 27 28 29 +83 41 34 27 28 30 +84 42 27 28 30 35 +85 42 27 28 30 36 +86 19 29 28 30 35 +87 19 29 28 30 36 +88 26 22 37 38 39 +89 27 22 37 38 42 +90 43 22 37 38 43 +91 29 41 37 38 39 +92 30 41 37 38 42 +93 44 41 37 38 43 +94 32 37 38 39 40 +95 33 37 38 39 56 +96 45 37 38 43 44 +97 45 37 38 43 45 +98 46 37 38 43 47 +99 47 39 38 43 44 +100 47 39 38 43 45 +101 48 39 38 43 47 +102 10 42 38 39 40 +103 11 42 38 39 56 +104 49 42 38 43 44 +105 49 42 38 43 45 +106 50 42 38 43 47 +107 51 43 38 39 40 +108 52 43 38 39 56 +109 16 38 39 56 57 +110 17 38 39 56 60 +111 18 40 39 56 57 +112 19 40 39 56 60 +113 53 38 43 44 46 +114 54 38 43 44 48 +115 54 38 43 44 49 +116 54 38 43 45 50 +117 54 38 43 45 51 +118 54 38 43 45 52 +119 55 44 43 45 50 +120 55 44 43 45 51 +121 55 44 43 45 52 +122 56 45 43 44 46 +123 55 45 43 44 48 +124 55 45 43 44 49 +125 12 47 43 44 46 +126 13 47 43 44 48 +127 13 47 43 44 49 +128 13 47 43 45 50 +129 13 47 43 45 51 +130 13 47 43 45 52 +131 21 43 44 46 53 +132 21 43 44 46 54 +133 21 43 44 46 55 +134 23 48 44 46 53 +135 23 48 44 46 54 +136 23 48 44 46 55 +137 23 49 44 46 53 +138 23 49 44 46 54 +139 23 49 44 46 55 +140 26 39 56 57 58 +141 27 39 56 57 61 +142 28 39 56 57 62 +143 29 60 56 57 58 +144 30 60 56 57 61 +145 31 60 56 57 62 +146 32 56 57 58 59 +147 33 56 57 58 76 +148 57 56 57 62 63 +149 35 56 57 62 69 +150 35 56 57 62 70 +151 58 58 57 62 63 +152 9 58 57 62 69 +153 9 58 57 62 70 +154 10 61 57 58 59 +155 11 61 57 58 76 +156 59 61 57 62 63 +157 13 61 57 62 69 +158 13 61 57 62 70 +159 14 62 57 58 59 +160 15 62 57 58 76 +161 16 57 58 76 77 +162 17 57 58 76 80 +163 18 59 58 76 77 +164 19 59 58 76 80 +165 60 57 62 63 64 +166 60 57 62 63 65 +167 61 69 62 63 64 +168 61 69 62 63 65 +169 61 70 62 63 64 +170 61 70 62 63 65 +171 62 62 63 64 66 +172 63 62 63 64 71 +173 62 62 63 65 67 +174 63 62 63 65 72 +175 64 64 63 65 67 +176 65 64 63 65 72 +177 64 65 63 64 66 +178 65 65 63 64 71 +179 64 63 64 66 68 +180 65 63 64 66 73 +181 65 71 64 66 68 +182 66 71 64 66 73 +183 64 63 65 67 68 +184 65 63 65 67 74 +185 65 72 65 67 68 +186 66 72 65 67 74 +187 64 64 66 68 67 +188 65 64 66 68 75 +189 65 73 66 68 67 +190 66 73 66 68 75 +191 64 65 67 68 66 +192 65 65 67 68 75 +193 65 74 67 68 66 +194 66 74 67 68 75 +195 26 58 76 77 78 +196 27 58 76 77 81 +197 43 58 76 77 82 +198 29 80 76 77 78 +199 30 80 76 77 81 +200 44 80 76 77 82 +201 32 76 77 78 79 +202 33 76 77 78 92 +203 45 76 77 82 83 +204 45 76 77 82 84 +205 46 76 77 82 85 +206 47 78 77 82 83 +207 47 78 77 82 84 +208 48 78 77 82 85 +209 10 81 77 78 79 +210 11 81 77 78 92 +211 49 81 77 82 83 +212 49 81 77 82 84 +213 50 81 77 82 85 +214 51 82 77 78 79 +215 52 82 77 78 92 +216 16 77 78 92 93 +217 17 77 78 92 96 +218 18 79 78 92 93 +219 19 79 78 92 96 +220 54 77 82 83 86 +221 54 77 82 83 87 +222 54 77 82 83 88 +223 54 77 82 84 89 +224 54 77 82 84 90 +225 54 77 82 84 91 +226 55 83 82 84 89 +227 55 83 82 84 90 +228 55 83 82 84 91 +229 55 84 82 83 86 +230 55 84 82 83 87 +231 55 84 82 83 88 +232 13 85 82 83 86 +233 13 85 82 83 87 +234 13 85 82 83 88 +235 13 85 82 84 89 +236 13 85 82 84 90 +237 13 85 82 84 91 +238 26 78 92 93 94 +239 27 78 92 93 97 +240 28 78 92 93 98 +241 29 96 92 93 94 +242 30 96 92 93 97 +243 31 96 92 93 98 +244 32 92 93 94 95 +245 33 92 93 94 114 +246 34 92 93 98 99 +247 35 92 93 98 103 +248 35 92 93 98 104 +249 8 94 93 98 99 +250 9 94 93 98 103 +251 9 94 93 98 104 +252 10 97 93 94 95 +253 11 97 93 94 114 +254 12 97 93 98 99 +255 13 97 93 98 103 +256 13 97 93 98 104 +257 14 98 93 94 95 +258 15 98 93 94 114 +259 16 93 94 114 115 +260 17 93 94 114 118 +261 18 95 94 114 115 +262 19 95 94 114 118 +263 67 93 98 99 100 +264 21 93 98 99 105 +265 21 93 98 99 106 +266 68 103 98 99 100 +267 23 103 98 99 105 +268 23 103 98 99 106 +269 68 104 98 99 100 +270 23 104 98 99 105 +271 23 104 98 99 106 +272 69 98 99 100 101 +273 68 98 99 100 107 +274 68 98 99 100 108 +275 68 105 99 100 101 +276 23 105 99 100 107 +277 23 105 99 100 108 +278 68 106 99 100 101 +279 23 106 99 100 107 +280 23 106 99 100 108 +281 70 99 100 101 102 +282 68 99 100 101 109 +283 68 99 100 101 110 +284 71 107 100 101 102 +285 23 107 100 101 109 +286 23 107 100 101 110 +287 71 108 100 101 102 +288 23 108 100 101 109 +289 23 108 100 101 110 +290 72 100 101 102 111 +291 72 100 101 102 112 +292 72 100 101 102 113 +293 73 109 101 102 111 +294 73 109 101 102 112 +295 73 109 101 102 113 +296 73 110 101 102 111 +297 73 110 101 102 112 +298 73 110 101 102 113 +299 26 94 114 115 116 +300 27 94 114 115 119 +301 43 94 114 115 120 +302 29 118 114 115 116 +303 30 118 114 115 119 +304 44 118 114 115 120 +305 32 114 115 116 117 +306 33 114 115 116 128 +307 74 114 115 120 121 +308 45 114 115 120 122 +309 46 114 115 120 123 +310 75 116 115 120 121 +311 47 116 115 120 122 +312 48 116 115 120 123 +313 10 119 115 116 117 +314 11 119 115 116 128 +315 76 119 115 120 121 +316 49 119 115 120 122 +317 50 119 115 120 123 +318 51 120 115 116 117 +319 52 120 115 116 128 +320 16 115 116 128 129 +321 17 115 116 128 132 +322 18 117 116 128 129 +323 19 117 116 128 132 +324 77 115 120 121 124 +325 54 115 120 122 125 +326 54 115 120 122 126 +327 54 115 120 122 127 +328 78 121 120 122 125 +329 78 121 120 122 126 +330 78 121 120 122 127 +331 79 122 120 121 124 +332 80 123 120 121 124 +333 13 123 120 122 125 +334 13 123 120 122 126 +335 13 123 120 122 127 +336 26 116 128 129 130 +337 27 116 128 129 133 +338 28 116 128 129 134 +339 29 132 128 129 130 +340 30 132 128 129 133 +341 31 132 128 129 134 +342 32 128 129 130 131 +343 33 128 129 130 147 +344 81 128 129 134 135 +345 35 128 129 134 138 +346 35 128 129 134 139 +347 82 130 129 134 135 +348 9 130 129 134 138 +349 9 130 129 134 139 +350 10 133 129 130 131 +351 11 133 129 130 147 +352 83 133 129 134 135 +353 13 133 129 134 138 +354 13 133 129 134 139 +355 14 134 129 130 131 +356 15 134 129 130 147 +357 16 129 130 147 148 +358 17 129 130 147 151 +359 18 131 130 147 148 +360 19 131 130 147 151 +361 84 129 134 135 136 +362 84 129 134 135 137 +363 83 129 134 135 140 +364 55 138 134 135 136 +365 55 138 134 135 137 +366 13 138 134 135 140 +367 55 139 134 135 136 +368 55 139 134 135 137 +369 13 139 134 135 140 +370 55 134 135 136 141 +371 55 134 135 136 142 +372 55 134 135 136 143 +373 55 134 135 137 144 +374 55 134 135 137 145 +375 55 134 135 137 146 +376 55 136 135 137 144 +377 55 136 135 137 145 +378 55 136 135 137 146 +379 55 137 135 136 141 +380 55 137 135 136 142 +381 55 137 135 136 143 +382 13 140 135 136 141 +383 13 140 135 136 142 +384 13 140 135 136 143 +385 13 140 135 137 144 +386 13 140 135 137 145 +387 13 140 135 137 146 +388 26 130 147 148 149 +389 27 130 147 148 152 +390 43 130 147 148 153 +391 29 151 147 148 149 +392 30 151 147 148 152 +393 44 151 147 148 153 +394 32 147 148 149 150 +395 33 147 148 149 161 +396 74 147 148 153 154 +397 45 147 148 153 155 +398 46 147 148 153 156 +399 75 149 148 153 154 +400 47 149 148 153 155 +401 48 149 148 153 156 +402 10 152 148 149 150 +403 11 152 148 149 161 +404 76 152 148 153 154 +405 49 152 148 153 155 +406 50 152 148 153 156 +407 51 153 148 149 150 +408 52 153 148 149 161 +409 85 148 149 161 162 +410 17 148 149 161 165 +411 86 150 149 161 162 +412 19 150 149 161 165 +413 77 148 153 154 157 +414 54 148 153 155 158 +415 54 148 153 155 159 +416 54 148 153 155 160 +417 78 154 153 155 158 +418 78 154 153 155 159 +419 78 154 153 155 160 +420 79 155 153 154 157 +421 80 156 153 154 157 +422 13 156 153 155 158 +423 13 156 153 155 159 +424 13 156 153 155 160 +425 87 149 161 162 163 +426 88 149 161 162 166 +427 88 149 161 162 167 +428 89 165 161 162 163 +429 90 165 161 162 166 +430 90 165 161 162 167 +431 91 161 162 163 164 +432 92 161 162 163 168 +433 93 166 162 163 164 +434 94 166 162 163 168 +435 93 167 162 163 164 +436 94 167 162 163 168 +437 95 162 163 168 169 +438 96 162 163 168 172 +439 18 164 163 168 169 +440 19 164 163 168 172 +441 26 163 168 169 170 +442 27 163 168 169 173 +443 28 163 168 169 174 +444 29 172 168 169 170 +445 30 172 168 169 173 +446 31 172 168 169 174 +447 32 168 169 170 171 +448 33 168 169 170 190 +449 34 168 169 174 175 +450 35 168 169 174 179 +451 35 168 169 174 180 +452 8 170 169 174 175 +453 9 170 169 174 179 +454 9 170 169 174 180 +455 10 173 169 170 171 +456 11 173 169 170 190 +457 12 173 169 174 175 +458 13 173 169 174 179 +459 13 173 169 174 180 +460 14 174 169 170 171 +461 15 174 169 170 190 +462 16 169 170 190 191 +463 17 169 170 190 194 +464 18 171 170 190 191 +465 19 171 170 190 194 +466 67 169 174 175 176 +467 21 169 174 175 181 +468 21 169 174 175 182 +469 68 179 174 175 176 +470 23 179 174 175 181 +471 23 179 174 175 182 +472 68 180 174 175 176 +473 23 180 174 175 181 +474 23 180 174 175 182 +475 69 174 175 176 177 +476 68 174 175 176 183 +477 68 174 175 176 184 +478 68 181 175 176 177 +479 23 181 175 176 183 +480 23 181 175 176 184 +481 68 182 175 176 177 +482 23 182 175 176 183 +483 23 182 175 176 184 +484 70 175 176 177 178 +485 68 175 176 177 185 +486 68 175 176 177 186 +487 71 183 176 177 178 +488 23 183 176 177 185 +489 23 183 176 177 186 +490 71 184 176 177 178 +491 23 184 176 177 185 +492 23 184 176 177 186 +493 72 176 177 178 187 +494 72 176 177 178 188 +495 72 176 177 178 189 +496 73 185 177 178 187 +497 73 185 177 178 188 +498 73 185 177 178 189 +499 73 186 177 178 187 +500 73 186 177 178 188 +501 73 186 177 178 189 +502 26 170 190 191 192 +503 27 170 190 191 195 +504 43 170 190 191 196 +505 29 194 190 191 192 +506 30 194 190 191 195 +507 44 194 190 191 196 +508 32 190 191 192 193 +509 33 190 191 192 204 +510 74 190 191 196 197 +511 45 190 191 196 198 +512 46 190 191 196 199 +513 75 192 191 196 197 +514 47 192 191 196 198 +515 48 192 191 196 199 +516 10 195 191 192 193 +517 11 195 191 192 204 +518 76 195 191 196 197 +519 49 195 191 196 198 +520 50 195 191 196 199 +521 51 196 191 192 193 +522 52 196 191 192 204 +523 16 191 192 204 205 +524 17 191 192 204 208 +525 18 193 192 204 205 +526 19 193 192 204 208 +527 77 191 196 197 200 +528 54 191 196 198 201 +529 54 191 196 198 202 +530 54 191 196 198 203 +531 78 197 196 198 201 +532 78 197 196 198 202 +533 78 197 196 198 203 +534 79 198 196 197 200 +535 80 199 196 197 200 +536 13 199 196 198 201 +537 13 199 196 198 202 +538 13 199 196 198 203 +539 26 192 204 205 206 +540 27 192 204 205 209 +541 43 192 204 205 210 +542 29 208 204 205 206 +543 30 208 204 205 209 +544 44 208 204 205 210 +545 32 204 205 206 207 +546 33 204 205 206 223 +547 45 204 205 210 211 +548 45 204 205 210 212 +549 46 204 205 210 214 +550 47 206 205 210 211 +551 47 206 205 210 212 +552 48 206 205 210 214 +553 10 209 205 206 207 +554 11 209 205 206 223 +555 49 209 205 210 211 +556 49 209 205 210 212 +557 50 209 205 210 214 +558 51 210 205 206 207 +559 52 210 205 206 223 +560 16 205 206 223 224 +561 17 205 206 223 227 +562 18 207 206 223 224 +563 19 207 206 223 227 +564 53 205 210 211 213 +565 54 205 210 211 215 +566 54 205 210 211 216 +567 54 205 210 212 217 +568 54 205 210 212 218 +569 54 205 210 212 219 +570 55 211 210 212 217 +571 55 211 210 212 218 +572 55 211 210 212 219 +573 56 212 210 211 213 +574 55 212 210 211 215 +575 55 212 210 211 216 +576 12 214 210 211 213 +577 13 214 210 211 215 +578 13 214 210 211 216 +579 13 214 210 212 217 +580 13 214 210 212 218 +581 13 214 210 212 219 +582 21 210 211 213 220 +583 21 210 211 213 221 +584 21 210 211 213 222 +585 23 215 211 213 220 +586 23 215 211 213 221 +587 23 215 211 213 222 +588 23 216 211 213 220 +589 23 216 211 213 221 +590 23 216 211 213 222 +591 26 206 223 224 225 +592 27 206 223 224 228 +593 43 206 223 224 229 +594 29 227 223 224 225 +595 30 227 223 224 228 +596 44 227 223 224 229 +597 32 223 224 225 226 +598 33 223 224 225 237 +599 74 223 224 229 230 +600 45 223 224 229 231 +601 46 223 224 229 232 +602 75 225 224 229 230 +603 47 225 224 229 231 +604 48 225 224 229 232 +605 10 228 224 225 226 +606 11 228 224 225 237 +607 76 228 224 229 230 +608 49 228 224 229 231 +609 50 228 224 229 232 +610 51 229 224 225 226 +611 52 229 224 225 237 +612 16 224 225 237 238 +613 17 224 225 237 241 +614 18 226 225 237 238 +615 19 226 225 237 241 +616 77 224 229 230 233 +617 54 224 229 231 234 +618 54 224 229 231 235 +619 54 224 229 231 236 +620 78 230 229 231 234 +621 78 230 229 231 235 +622 78 230 229 231 236 +623 79 231 229 230 233 +624 80 232 229 230 233 +625 13 232 229 231 234 +626 13 232 229 231 235 +627 13 232 229 231 236 +628 26 225 237 238 239 +629 27 225 237 238 242 +630 28 225 237 238 243 +631 29 241 237 238 239 +632 30 241 237 238 242 +633 31 241 237 238 243 +634 32 237 238 239 240 +635 33 237 238 239 256 +636 81 237 238 243 244 +637 35 237 238 243 247 +638 35 237 238 243 248 +639 82 239 238 243 244 +640 9 239 238 243 247 +641 9 239 238 243 248 +642 10 242 238 239 240 +643 11 242 238 239 256 +644 83 242 238 243 244 +645 13 242 238 243 247 +646 13 242 238 243 248 +647 14 243 238 239 240 +648 15 243 238 239 256 +649 16 238 239 256 257 +650 17 238 239 256 260 +651 18 240 239 256 257 +652 19 240 239 256 260 +653 84 238 243 244 245 +654 84 238 243 244 246 +655 83 238 243 244 249 +656 55 247 243 244 245 +657 55 247 243 244 246 +658 13 247 243 244 249 +659 55 248 243 244 245 +660 55 248 243 244 246 +661 13 248 243 244 249 +662 55 243 244 245 250 +663 55 243 244 245 251 +664 55 243 244 245 252 +665 55 243 244 246 253 +666 55 243 244 246 254 +667 55 243 244 246 255 +668 55 245 244 246 253 +669 55 245 244 246 254 +670 55 245 244 246 255 +671 55 246 244 245 250 +672 55 246 244 245 251 +673 55 246 244 245 252 +674 13 249 244 245 250 +675 13 249 244 245 251 +676 13 249 244 245 252 +677 13 249 244 246 253 +678 13 249 244 246 254 +679 13 249 244 246 255 +680 26 239 256 257 258 +681 27 239 256 257 261 +682 28 239 256 257 262 +683 29 260 256 257 258 +684 30 260 256 257 261 +685 31 260 256 257 262 +686 32 256 257 258 259 +687 33 256 257 258 271 +688 34 256 257 262 263 +689 35 256 257 262 267 +690 35 256 257 262 268 +691 8 258 257 262 263 +692 9 258 257 262 267 +693 9 258 257 262 268 +694 10 261 257 258 259 +695 11 261 257 258 271 +696 12 261 257 262 263 +697 13 261 257 262 267 +698 13 261 257 262 268 +699 14 262 257 258 259 +700 15 262 257 258 271 +701 16 257 258 271 272 +702 17 257 258 271 275 +703 18 259 258 271 272 +704 19 259 258 271 275 +705 97 257 262 263 264 +706 21 257 262 263 269 +707 21 257 262 263 270 +708 98 267 262 263 264 +709 23 267 262 263 269 +710 23 267 262 263 270 +711 98 268 262 263 264 +712 23 268 262 263 269 +713 23 268 262 263 270 +714 99 262 263 264 265 +715 99 262 263 264 266 +716 100 269 263 264 265 +717 100 269 263 264 266 +718 100 270 263 264 265 +719 100 270 263 264 266 +720 26 258 271 272 273 +721 27 258 271 272 276 +722 43 258 271 272 277 +723 29 275 271 272 273 +724 30 275 271 272 276 +725 44 275 271 272 277 +726 32 271 272 273 274 +727 33 271 272 273 287 +728 45 271 272 277 278 +729 45 271 272 277 279 +730 46 271 272 277 280 +731 47 273 272 277 278 +732 47 273 272 277 279 +733 48 273 272 277 280 +734 10 276 272 273 274 +735 11 276 272 273 287 +736 49 276 272 277 278 +737 49 276 272 277 279 +738 50 276 272 277 280 +739 51 277 272 273 274 +740 52 277 272 273 287 +741 16 272 273 287 288 +742 17 272 273 287 291 +743 18 274 273 287 288 +744 19 274 273 287 291 +745 54 272 277 278 281 +746 54 272 277 278 282 +747 54 272 277 278 283 +748 54 272 277 279 284 +749 54 272 277 279 285 +750 54 272 277 279 286 +751 55 278 277 279 284 +752 55 278 277 279 285 +753 55 278 277 279 286 +754 55 279 277 278 281 +755 55 279 277 278 282 +756 55 279 277 278 283 +757 13 280 277 278 281 +758 13 280 277 278 282 +759 13 280 277 278 283 +760 13 280 277 279 284 +761 13 280 277 279 285 +762 13 280 277 279 286 +763 26 273 287 288 289 +764 27 273 287 288 292 +765 28 273 287 288 293 +766 29 291 287 288 289 +767 30 291 287 288 292 +768 31 291 287 288 293 +769 32 287 288 289 290 +770 101 287 288 289 302 +771 34 287 288 293 294 +772 35 287 288 293 298 +773 35 287 288 293 299 +774 8 289 288 293 294 +775 9 289 288 293 298 +776 9 289 288 293 299 +777 10 292 288 289 290 +778 102 292 288 289 302 +779 12 292 288 293 294 +780 13 292 288 293 298 +781 13 292 288 293 299 +782 14 293 288 289 290 +783 103 293 288 289 302 +784 104 288 289 302 303 +785 105 288 289 302 309 +786 106 290 289 302 303 +787 107 290 289 302 309 +788 97 288 293 294 295 +789 21 288 293 294 300 +790 21 288 293 294 301 +791 98 298 293 294 295 +792 23 298 293 294 300 +793 23 298 293 294 301 +794 98 299 293 294 295 +795 23 299 293 294 300 +796 23 299 293 294 301 +797 99 293 294 295 296 +798 99 293 294 295 297 +799 100 300 294 295 296 +800 100 300 294 295 297 +801 100 301 294 295 296 +802 100 301 294 295 297 +803 108 289 302 303 304 +804 109 289 302 303 306 +805 110 289 302 303 307 +806 111 289 302 309 308 +807 112 289 302 309 314 +808 112 289 302 309 315 +809 113 303 302 309 308 +810 114 303 302 309 314 +811 114 303 302 309 315 +812 115 309 302 303 304 +813 116 309 302 303 306 +814 117 309 302 303 307 +815 118 302 303 304 305 +816 119 302 303 304 316 +817 120 302 303 307 308 +818 121 302 303 307 310 +819 121 302 303 307 311 +820 122 304 303 307 308 +821 123 304 303 307 310 +822 123 304 303 307 311 +823 10 306 303 304 305 +824 11 306 303 304 316 +825 124 306 303 307 308 +826 125 306 303 307 310 +827 125 306 303 307 311 +828 126 307 303 304 305 +829 127 307 303 304 316 +830 16 303 304 316 317 +831 17 303 304 316 320 +832 18 305 304 316 317 +833 19 305 304 316 320 +834 128 303 307 308 309 +835 129 303 307 308 312 +836 129 303 307 308 313 +837 130 310 307 308 309 +838 131 310 307 308 312 +839 131 310 307 308 313 +840 130 311 307 308 309 +841 131 311 307 308 312 +842 131 311 307 308 313 +843 132 307 308 309 302 +844 133 307 308 309 314 +845 133 307 308 309 315 +846 134 312 308 309 302 +847 135 312 308 309 314 +848 135 312 308 309 315 +849 134 313 308 309 302 +850 135 313 308 309 314 +851 135 313 308 309 315 +852 26 304 316 317 318 +853 27 304 316 317 321 +854 28 304 316 317 322 +855 29 320 316 317 318 +856 30 320 316 317 321 +857 31 320 316 317 322 +858 32 316 317 318 319 +859 33 316 317 318 327 +860 136 316 317 322 323 +861 35 316 317 322 324 +862 35 316 317 322 325 +863 137 318 317 322 323 +864 9 318 317 322 324 +865 9 318 317 322 325 +866 10 321 317 318 319 +867 11 321 317 318 327 +868 138 321 317 322 323 +869 13 321 317 322 324 +870 13 321 317 322 325 +871 14 322 317 318 319 +872 15 322 317 318 327 +873 16 317 318 327 328 +874 17 317 318 327 331 +875 18 319 318 327 328 +876 19 319 318 327 331 +877 139 317 322 323 326 +878 140 324 322 323 326 +879 140 325 322 323 326 +880 26 318 327 328 329 +881 27 318 327 328 332 +882 28 318 327 328 333 +883 29 331 327 328 329 +884 30 331 327 328 332 +885 31 331 327 328 333 +886 32 327 328 329 330 +887 33 327 328 329 339 +888 141 327 328 333 334 +889 35 327 328 333 337 +890 35 327 328 333 338 +891 142 329 328 333 334 +892 9 329 328 333 337 +893 9 329 328 333 338 +894 10 332 328 329 330 +895 11 332 328 329 339 +896 143 332 328 333 334 +897 13 332 328 333 337 +898 13 332 328 333 338 +899 14 333 328 329 330 +900 15 333 328 329 339 +901 16 328 329 339 340 +902 17 328 329 339 343 +903 18 330 329 339 340 +904 19 330 329 339 343 +905 144 328 333 334 335 +906 144 328 333 334 336 +907 100 337 333 334 335 +908 100 337 333 334 336 +909 100 338 333 334 335 +910 100 338 333 334 336 +911 26 329 339 340 341 +912 27 329 339 340 344 +913 43 329 339 340 345 +914 29 343 339 340 341 +915 30 343 339 340 344 +916 44 343 339 340 345 +917 32 339 340 341 342 +918 33 339 340 341 353 +919 74 339 340 345 346 +920 45 339 340 345 347 +921 46 339 340 345 348 +922 75 341 340 345 346 +923 47 341 340 345 347 +924 48 341 340 345 348 +925 10 344 340 341 342 +926 11 344 340 341 353 +927 76 344 340 345 346 +928 49 344 340 345 347 +929 50 344 340 345 348 +930 51 345 340 341 342 +931 52 345 340 341 353 +932 16 340 341 353 354 +933 17 340 341 353 357 +934 18 342 341 353 354 +935 19 342 341 353 357 +936 77 340 345 346 349 +937 54 340 345 347 350 +938 54 340 345 347 351 +939 54 340 345 347 352 +940 78 346 345 347 350 +941 78 346 345 347 351 +942 78 346 345 347 352 +943 79 347 345 346 349 +944 80 348 345 346 349 +945 13 348 345 347 350 +946 13 348 345 347 351 +947 13 348 345 347 352 +948 26 341 353 354 355 +949 27 341 353 354 358 +950 43 341 353 354 359 +951 29 357 353 354 355 +952 30 357 353 354 358 +953 44 357 353 354 359 +954 32 353 354 355 356 +955 33 353 354 355 372 +956 45 353 354 359 360 +957 45 353 354 359 361 +958 46 353 354 359 363 +959 47 355 354 359 360 +960 47 355 354 359 361 +961 48 355 354 359 363 +962 10 358 354 355 356 +963 11 358 354 355 372 +964 49 358 354 359 360 +965 49 358 354 359 361 +966 50 358 354 359 363 +967 51 359 354 355 356 +968 52 359 354 355 372 +969 16 354 355 372 373 +970 17 354 355 372 376 +971 18 356 355 372 373 +972 19 356 355 372 376 +973 53 354 359 360 362 +974 54 354 359 360 364 +975 54 354 359 360 365 +976 54 354 359 361 366 +977 54 354 359 361 367 +978 54 354 359 361 368 +979 55 360 359 361 366 +980 55 360 359 361 367 +981 55 360 359 361 368 +982 56 361 359 360 362 +983 55 361 359 360 364 +984 55 361 359 360 365 +985 12 363 359 360 362 +986 13 363 359 360 364 +987 13 363 359 360 365 +988 13 363 359 361 366 +989 13 363 359 361 367 +990 13 363 359 361 368 +991 21 359 360 362 369 +992 21 359 360 362 370 +993 21 359 360 362 371 +994 23 364 360 362 369 +995 23 364 360 362 370 +996 23 364 360 362 371 +997 23 365 360 362 369 +998 23 365 360 362 370 +999 23 365 360 362 371 +1000 26 355 372 373 374 +1001 27 355 372 373 377 +1002 28 355 372 373 378 +1003 29 376 372 373 374 +1004 30 376 372 373 377 +1005 31 376 372 373 378 +1006 32 372 373 374 375 +1007 33 372 373 374 387 +1008 34 372 373 378 379 +1009 35 372 373 378 383 +1010 35 372 373 378 384 +1011 8 374 373 378 379 +1012 9 374 373 378 383 +1013 9 374 373 378 384 +1014 10 377 373 374 375 +1015 11 377 373 374 387 +1016 12 377 373 378 379 +1017 13 377 373 378 383 +1018 13 377 373 378 384 +1019 14 378 373 374 375 +1020 15 378 373 374 387 +1021 16 373 374 387 388 +1022 17 373 374 387 391 +1023 18 375 374 387 388 +1024 19 375 374 387 391 +1025 97 373 378 379 380 +1026 21 373 378 379 385 +1027 21 373 378 379 386 +1028 98 383 378 379 380 +1029 23 383 378 379 385 +1030 23 383 378 379 386 +1031 98 384 378 379 380 +1032 23 384 378 379 385 +1033 23 384 378 379 386 +1034 99 378 379 380 381 +1035 99 378 379 380 382 +1036 100 385 379 380 381 +1037 100 385 379 380 382 +1038 100 386 379 380 381 +1039 100 386 379 380 382 +1040 26 374 387 388 389 +1041 27 374 387 388 392 +1042 28 374 387 388 393 +1043 29 391 387 388 389 +1044 30 391 387 388 392 +1045 31 391 387 388 393 +1046 32 387 388 389 390 +1047 33 387 388 389 401 +1048 145 387 388 393 394 +1049 35 387 388 393 397 +1050 35 387 388 393 398 +1051 146 389 388 393 394 +1052 9 389 388 393 397 +1053 9 389 388 393 398 +1054 10 392 388 389 390 +1055 11 392 388 389 401 +1056 147 392 388 393 394 +1057 13 392 388 393 397 +1058 13 392 388 393 398 +1059 14 393 388 389 390 +1060 15 393 388 389 401 +1061 16 388 389 401 402 +1062 17 388 389 401 405 +1063 18 390 389 401 402 +1064 19 390 389 401 405 +1065 148 388 393 394 395 +1066 149 388 393 394 396 +1067 40 397 393 394 395 +1068 41 397 393 394 396 +1069 40 398 393 394 395 +1070 41 398 393 394 396 +1071 42 393 394 396 399 +1072 42 393 394 396 400 +1073 19 395 394 396 399 +1074 19 395 394 396 400 +1075 26 389 401 402 403 +1076 27 389 401 402 406 +1077 43 389 401 402 407 +1078 29 405 401 402 403 +1079 30 405 401 402 406 +1080 44 405 401 402 407 +1081 32 401 402 403 404 +1082 33 401 402 403 417 +1083 45 401 402 407 408 +1084 45 401 402 407 409 +1085 46 401 402 407 410 +1086 47 403 402 407 408 +1087 47 403 402 407 409 +1088 48 403 402 407 410 +1089 10 406 402 403 404 +1090 11 406 402 403 417 +1091 49 406 402 407 408 +1092 49 406 402 407 409 +1093 50 406 402 407 410 +1094 51 407 402 403 404 +1095 52 407 402 403 417 +1096 16 402 403 417 418 +1097 17 402 403 417 421 +1098 18 404 403 417 418 +1099 19 404 403 417 421 +1100 54 402 407 408 411 +1101 54 402 407 408 412 +1102 54 402 407 408 413 +1103 54 402 407 409 414 +1104 54 402 407 409 415 +1105 54 402 407 409 416 +1106 55 408 407 409 414 +1107 55 408 407 409 415 +1108 55 408 407 409 416 +1109 55 409 407 408 411 +1110 55 409 407 408 412 +1111 55 409 407 408 413 +1112 13 410 407 408 411 +1113 13 410 407 408 412 +1114 13 410 407 408 413 +1115 13 410 407 409 414 +1116 13 410 407 409 415 +1117 13 410 407 409 416 +1118 26 403 417 418 419 +1119 27 403 417 418 422 +1120 28 403 417 418 423 +1121 29 421 417 418 419 +1122 30 421 417 418 422 +1123 31 421 417 418 423 +1124 32 417 418 419 420 +1125 33 417 418 419 439 +1126 34 417 418 423 424 +1127 35 417 418 423 428 +1128 35 417 418 423 429 +1129 8 419 418 423 424 +1130 9 419 418 423 428 +1131 9 419 418 423 429 +1132 10 422 418 419 420 +1133 11 422 418 419 439 +1134 12 422 418 423 424 +1135 13 422 418 423 428 +1136 13 422 418 423 429 +1137 14 423 418 419 420 +1138 15 423 418 419 439 +1139 16 418 419 439 440 +1140 17 418 419 439 443 +1141 18 420 419 439 440 +1142 19 420 419 439 443 +1143 67 418 423 424 425 +1144 21 418 423 424 430 +1145 21 418 423 424 431 +1146 68 428 423 424 425 +1147 23 428 423 424 430 +1148 23 428 423 424 431 +1149 68 429 423 424 425 +1150 23 429 423 424 430 +1151 23 429 423 424 431 +1152 69 423 424 425 426 +1153 68 423 424 425 432 +1154 68 423 424 425 433 +1155 68 430 424 425 426 +1156 23 430 424 425 432 +1157 23 430 424 425 433 +1158 68 431 424 425 426 +1159 23 431 424 425 432 +1160 23 431 424 425 433 +1161 70 424 425 426 427 +1162 68 424 425 426 434 +1163 68 424 425 426 435 +1164 71 432 425 426 427 +1165 23 432 425 426 434 +1166 23 432 425 426 435 +1167 71 433 425 426 427 +1168 23 433 425 426 434 +1169 23 433 425 426 435 +1170 72 425 426 427 436 +1171 72 425 426 427 437 +1172 72 425 426 427 438 +1173 73 434 426 427 436 +1174 73 434 426 427 437 +1175 73 434 426 427 438 +1176 73 435 426 427 436 +1177 73 435 426 427 437 +1178 73 435 426 427 438 +1179 26 419 439 440 441 +1180 27 419 439 440 444 +1181 28 419 439 440 445 +1182 29 443 439 440 441 +1183 30 443 439 440 444 +1184 31 443 439 440 445 +1185 32 439 440 441 442 +1186 33 439 440 441 449 +1187 35 439 440 445 446 +1188 35 439 440 445 447 +1189 35 439 440 445 448 +1190 9 441 440 445 446 +1191 9 441 440 445 447 +1192 9 441 440 445 448 +1193 10 444 440 441 442 +1194 11 444 440 441 449 +1195 13 444 440 445 446 +1196 13 444 440 445 447 +1197 13 444 440 445 448 +1198 14 445 440 441 442 +1199 15 445 440 441 449 +1200 16 440 441 449 450 +1201 17 440 441 449 453 +1202 18 442 441 449 450 +1203 19 442 441 449 453 +1204 26 441 449 450 451 +1205 27 441 449 450 454 +1206 28 441 449 450 455 +1207 29 453 449 450 451 +1208 30 453 449 450 454 +1209 31 453 449 450 455 +1210 32 449 450 451 452 +1211 33 449 450 451 471 +1212 34 449 450 455 456 +1213 35 449 450 455 460 +1214 35 449 450 455 461 +1215 8 451 450 455 456 +1216 9 451 450 455 460 +1217 9 451 450 455 461 +1218 10 454 450 451 452 +1219 11 454 450 451 471 +1220 12 454 450 455 456 +1221 13 454 450 455 460 +1222 13 454 450 455 461 +1223 14 455 450 451 452 +1224 15 455 450 451 471 +1225 16 450 451 471 472 +1226 17 450 451 471 475 +1227 18 452 451 471 472 +1228 19 452 451 471 475 +1229 67 450 455 456 457 +1230 21 450 455 456 462 +1231 21 450 455 456 463 +1232 68 460 455 456 457 +1233 23 460 455 456 462 +1234 23 460 455 456 463 +1235 68 461 455 456 457 +1236 23 461 455 456 462 +1237 23 461 455 456 463 +1238 69 455 456 457 458 +1239 68 455 456 457 464 +1240 68 455 456 457 465 +1241 68 462 456 457 458 +1242 23 462 456 457 464 +1243 23 462 456 457 465 +1244 68 463 456 457 458 +1245 23 463 456 457 464 +1246 23 463 456 457 465 +1247 70 456 457 458 459 +1248 68 456 457 458 466 +1249 68 456 457 458 467 +1250 71 464 457 458 459 +1251 23 464 457 458 466 +1252 23 464 457 458 467 +1253 71 465 457 458 459 +1254 23 465 457 458 466 +1255 23 465 457 458 467 +1256 72 457 458 459 468 +1257 72 457 458 459 469 +1258 72 457 458 459 470 +1259 73 466 458 459 468 +1260 73 466 458 459 469 +1261 73 466 458 459 470 +1262 73 467 458 459 468 +1263 73 467 458 459 469 +1264 73 467 458 459 470 +1265 26 451 471 472 473 +1266 27 451 471 472 476 +1267 43 451 471 472 477 +1268 29 475 471 472 473 +1269 30 475 471 472 476 +1270 44 475 471 472 477 +1271 32 471 472 473 474 +1272 33 471 472 473 490 +1273 45 471 472 477 478 +1274 45 471 472 477 479 +1275 46 471 472 477 481 +1276 47 473 472 477 478 +1277 47 473 472 477 479 +1278 48 473 472 477 481 +1279 10 476 472 473 474 +1280 11 476 472 473 490 +1281 49 476 472 477 478 +1282 49 476 472 477 479 +1283 50 476 472 477 481 +1284 51 477 472 473 474 +1285 52 477 472 473 490 +1286 16 472 473 490 491 +1287 17 472 473 490 494 +1288 18 474 473 490 491 +1289 19 474 473 490 494 +1290 53 472 477 478 480 +1291 54 472 477 478 482 +1292 54 472 477 478 483 +1293 54 472 477 479 484 +1294 54 472 477 479 485 +1295 54 472 477 479 486 +1296 55 478 477 479 484 +1297 55 478 477 479 485 +1298 55 478 477 479 486 +1299 56 479 477 478 480 +1300 55 479 477 478 482 +1301 55 479 477 478 483 +1302 12 481 477 478 480 +1303 13 481 477 478 482 +1304 13 481 477 478 483 +1305 13 481 477 479 484 +1306 13 481 477 479 485 +1307 13 481 477 479 486 +1308 21 477 478 480 487 +1309 21 477 478 480 488 +1310 21 477 478 480 489 +1311 23 482 478 480 487 +1312 23 482 478 480 488 +1313 23 482 478 480 489 +1314 23 483 478 480 487 +1315 23 483 478 480 488 +1316 23 483 478 480 489 +1317 26 473 490 491 492 +1318 27 473 490 491 495 +1319 28 473 490 491 496 +1320 29 494 490 491 492 +1321 30 494 490 491 495 +1322 31 494 490 491 496 +1323 32 490 491 492 493 +1324 33 490 491 492 507 +1325 34 490 491 496 497 +1326 35 490 491 496 501 +1327 35 490 491 496 502 +1328 8 492 491 496 497 +1329 9 492 491 496 501 +1330 9 492 491 496 502 +1331 10 495 491 492 493 +1332 11 495 491 492 507 +1333 12 495 491 496 497 +1334 13 495 491 496 501 +1335 13 495 491 496 502 +1336 14 496 491 492 493 +1337 15 496 491 492 507 +1338 16 491 492 507 508 +1339 17 491 492 507 511 +1340 18 493 492 507 508 +1341 19 493 492 507 511 +1342 36 491 496 497 498 +1343 21 491 496 497 503 +1344 21 491 496 497 504 +1345 37 501 496 497 498 +1346 23 501 496 497 503 +1347 23 501 496 497 504 +1348 37 502 496 497 498 +1349 23 502 496 497 503 +1350 23 502 496 497 504 +1351 38 496 497 498 499 +1352 39 496 497 498 500 +1353 40 503 497 498 499 +1354 41 503 497 498 500 +1355 40 504 497 498 499 +1356 41 504 497 498 500 +1357 42 497 498 500 505 +1358 42 497 498 500 506 +1359 19 499 498 500 505 +1360 19 499 498 500 506 +1361 26 492 507 508 509 +1362 27 492 507 508 512 +1363 28 492 507 508 513 +1364 29 511 507 508 509 +1365 30 511 507 508 512 +1366 31 511 507 508 513 +1367 32 507 508 509 510 +1368 33 507 508 509 519 +1369 141 507 508 513 514 +1370 35 507 508 513 517 +1371 35 507 508 513 518 +1372 142 509 508 513 514 +1373 9 509 508 513 517 +1374 9 509 508 513 518 +1375 10 512 508 509 510 +1376 11 512 508 509 519 +1377 143 512 508 513 514 +1378 13 512 508 513 517 +1379 13 512 508 513 518 +1380 14 513 508 509 510 +1381 15 513 508 509 519 +1382 16 508 509 519 520 +1383 17 508 509 519 523 +1384 18 510 509 519 520 +1385 19 510 509 519 523 +1386 144 508 513 514 515 +1387 144 508 513 514 516 +1388 100 517 513 514 515 +1389 100 517 513 514 516 +1390 100 518 513 514 515 +1391 100 518 513 514 516 +1392 26 509 519 520 521 +1393 27 509 519 520 524 +1394 28 509 519 520 525 +1395 29 523 519 520 521 +1396 30 523 519 520 524 +1397 31 523 519 520 525 +1398 32 519 520 521 522 +1399 33 519 520 521 541 +1400 34 519 520 525 526 +1401 35 519 520 525 530 +1402 35 519 520 525 531 +1403 8 521 520 525 526 +1404 9 521 520 525 530 +1405 9 521 520 525 531 +1406 10 524 520 521 522 +1407 11 524 520 521 541 +1408 12 524 520 525 526 +1409 13 524 520 525 530 +1410 13 524 520 525 531 +1411 14 525 520 521 522 +1412 15 525 520 521 541 +1413 16 520 521 541 542 +1414 17 520 521 541 545 +1415 18 522 521 541 542 +1416 19 522 521 541 545 +1417 67 520 525 526 527 +1418 21 520 525 526 532 +1419 21 520 525 526 533 +1420 68 530 525 526 527 +1421 23 530 525 526 532 +1422 23 530 525 526 533 +1423 68 531 525 526 527 +1424 23 531 525 526 532 +1425 23 531 525 526 533 +1426 69 525 526 527 528 +1427 68 525 526 527 534 +1428 68 525 526 527 535 +1429 68 532 526 527 528 +1430 23 532 526 527 534 +1431 23 532 526 527 535 +1432 68 533 526 527 528 +1433 23 533 526 527 534 +1434 23 533 526 527 535 +1435 70 526 527 528 529 +1436 68 526 527 528 536 +1437 68 526 527 528 537 +1438 71 534 527 528 529 +1439 23 534 527 528 536 +1440 23 534 527 528 537 +1441 71 535 527 528 529 +1442 23 535 527 528 536 +1443 23 535 527 528 537 +1444 72 527 528 529 538 +1445 72 527 528 529 539 +1446 72 527 528 529 540 +1447 73 536 528 529 538 +1448 73 536 528 529 539 +1449 73 536 528 529 540 +1450 73 537 528 529 538 +1451 73 537 528 529 539 +1452 73 537 528 529 540 +1453 26 521 541 542 543 +1454 27 521 541 542 546 +1455 28 521 541 542 547 +1456 29 545 541 542 543 +1457 30 545 541 542 546 +1458 31 545 541 542 547 +1459 32 541 542 543 544 +1460 33 541 542 543 556 +1461 34 541 542 547 548 +1462 35 541 542 547 552 +1463 35 541 542 547 553 +1464 8 543 542 547 548 +1465 9 543 542 547 552 +1466 9 543 542 547 553 +1467 10 546 542 543 544 +1468 11 546 542 543 556 +1469 12 546 542 547 548 +1470 13 546 542 547 552 +1471 13 546 542 547 553 +1472 14 547 542 543 544 +1473 15 547 542 543 556 +1474 85 542 543 556 557 +1475 17 542 543 556 560 +1476 86 544 543 556 557 +1477 19 544 543 556 560 +1478 97 542 547 548 549 +1479 21 542 547 548 554 +1480 21 542 547 548 555 +1481 98 552 547 548 549 +1482 23 552 547 548 554 +1483 23 552 547 548 555 +1484 98 553 547 548 549 +1485 23 553 547 548 554 +1486 23 553 547 548 555 +1487 99 547 548 549 550 +1488 99 547 548 549 551 +1489 100 554 548 549 550 +1490 100 554 548 549 551 +1491 100 555 548 549 550 +1492 100 555 548 549 551 +1493 87 543 556 557 558 +1494 88 543 556 557 561 +1495 88 543 556 557 562 +1496 89 560 556 557 558 +1497 90 560 556 557 561 +1498 90 560 556 557 562 +1499 91 556 557 558 559 +1500 92 556 557 558 563 +1501 93 561 557 558 559 +1502 94 561 557 558 563 +1503 93 562 557 558 559 +1504 94 562 557 558 563 +1505 95 557 558 563 564 +1506 96 557 558 563 567 +1507 18 559 558 563 564 +1508 19 559 558 563 567 +1509 26 558 563 564 565 +1510 27 558 563 564 568 +1511 43 558 563 564 569 +1512 29 567 563 564 565 +1513 30 567 563 564 568 +1514 44 567 563 564 569 +1515 32 563 564 565 566 +1516 101 563 564 565 582 +1517 45 563 564 569 570 +1518 45 563 564 569 571 +1519 46 563 564 569 573 +1520 47 565 564 569 570 +1521 47 565 564 569 571 +1522 48 565 564 569 573 +1523 10 568 564 565 566 +1524 102 568 564 565 582 +1525 49 568 564 569 570 +1526 49 568 564 569 571 +1527 50 568 564 569 573 +1528 51 569 564 565 566 +1529 150 569 564 565 582 +1530 104 564 565 582 583 +1531 105 564 565 582 589 +1532 106 566 565 582 583 +1533 107 566 565 582 589 +1534 53 564 569 570 572 +1535 54 564 569 570 574 +1536 54 564 569 570 575 +1537 54 564 569 571 576 +1538 54 564 569 571 577 +1539 54 564 569 571 578 +1540 55 570 569 571 576 +1541 55 570 569 571 577 +1542 55 570 569 571 578 +1543 56 571 569 570 572 +1544 55 571 569 570 574 +1545 55 571 569 570 575 +1546 12 573 569 570 572 +1547 13 573 569 570 574 +1548 13 573 569 570 575 +1549 13 573 569 571 576 +1550 13 573 569 571 577 +1551 13 573 569 571 578 +1552 21 569 570 572 579 +1553 21 569 570 572 580 +1554 21 569 570 572 581 +1555 23 574 570 572 579 +1556 23 574 570 572 580 +1557 23 574 570 572 581 +1558 23 575 570 572 579 +1559 23 575 570 572 580 +1560 23 575 570 572 581 +1561 108 565 582 583 584 +1562 109 565 582 583 586 +1563 110 565 582 583 587 +1564 111 565 582 589 588 +1565 112 565 582 589 594 +1566 112 565 582 589 595 +1567 113 583 582 589 588 +1568 114 583 582 589 594 +1569 114 583 582 589 595 +1570 115 589 582 583 584 +1571 116 589 582 583 586 +1572 117 589 582 583 587 +1573 118 582 583 584 585 +1574 151 582 583 584 596 +1575 120 582 583 587 588 +1576 121 582 583 587 590 +1577 121 582 583 587 591 +1578 122 584 583 587 588 +1579 123 584 583 587 590 +1580 123 584 583 587 591 +1581 10 586 583 584 585 +1582 102 586 583 584 596 +1583 124 586 583 587 588 +1584 125 586 583 587 590 +1585 125 586 583 587 591 +1586 126 587 583 584 585 +1587 152 587 583 584 596 +1588 104 583 584 596 597 +1589 105 583 584 596 603 +1590 106 585 584 596 597 +1591 107 585 584 596 603 +1592 128 583 587 588 589 +1593 129 583 587 588 592 +1594 129 583 587 588 593 +1595 130 590 587 588 589 +1596 131 590 587 588 592 +1597 131 590 587 588 593 +1598 130 591 587 588 589 +1599 131 591 587 588 592 +1600 131 591 587 588 593 +1601 132 587 588 589 582 +1602 133 587 588 589 594 +1603 133 587 588 589 595 +1604 134 592 588 589 582 +1605 135 592 588 589 594 +1606 135 592 588 589 595 +1607 134 593 588 589 582 +1608 135 593 588 589 594 +1609 135 593 588 589 595 +1610 108 584 596 597 598 +1611 109 584 596 597 600 +1612 110 584 596 597 601 +1613 111 584 596 603 602 +1614 112 584 596 603 608 +1615 112 584 596 603 609 +1616 113 597 596 603 602 +1617 114 597 596 603 608 +1618 114 597 596 603 609 +1619 115 603 596 597 598 +1620 116 603 596 597 600 +1621 117 603 596 597 601 +1622 118 596 597 598 599 +1623 119 596 597 598 610 +1624 120 596 597 601 602 +1625 121 596 597 601 604 +1626 121 596 597 601 605 +1627 122 598 597 601 602 +1628 123 598 597 601 604 +1629 123 598 597 601 605 +1630 10 600 597 598 599 +1631 11 600 597 598 610 +1632 124 600 597 601 602 +1633 125 600 597 601 604 +1634 125 600 597 601 605 +1635 126 601 597 598 599 +1636 127 601 597 598 610 +1637 16 597 598 610 611 +1638 17 597 598 610 614 +1639 18 599 598 610 611 +1640 19 599 598 610 614 +1641 128 597 601 602 603 +1642 129 597 601 602 606 +1643 129 597 601 602 607 +1644 130 604 601 602 603 +1645 131 604 601 602 606 +1646 131 604 601 602 607 +1647 130 605 601 602 603 +1648 131 605 601 602 606 +1649 131 605 601 602 607 +1650 132 601 602 603 596 +1651 133 601 602 603 608 +1652 133 601 602 603 609 +1653 134 606 602 603 596 +1654 135 606 602 603 608 +1655 135 606 602 603 609 +1656 134 607 602 603 596 +1657 135 607 602 603 608 +1658 135 607 602 603 609 +1659 26 598 610 611 612 +1660 27 598 610 611 615 +1661 28 598 610 611 616 +1662 29 614 610 611 612 +1663 30 614 610 611 615 +1664 31 614 610 611 616 +1665 32 610 611 612 613 +1666 33 610 611 612 622 +1667 141 610 611 616 617 +1668 35 610 611 616 620 +1669 35 610 611 616 621 +1670 142 612 611 616 617 +1671 9 612 611 616 620 +1672 9 612 611 616 621 +1673 10 615 611 612 613 +1674 11 615 611 612 622 +1675 143 615 611 616 617 +1676 13 615 611 616 620 +1677 13 615 611 616 621 +1678 14 616 611 612 613 +1679 15 616 611 612 622 +1680 16 611 612 622 623 +1681 17 611 612 622 626 +1682 18 613 612 622 623 +1683 19 613 612 622 626 +1684 144 611 616 617 618 +1685 144 611 616 617 619 +1686 100 620 616 617 618 +1687 100 620 616 617 619 +1688 100 621 616 617 618 +1689 100 621 616 617 619 +1690 26 612 622 623 624 +1691 27 612 622 623 627 +1692 28 612 622 623 628 +1693 29 626 622 623 624 +1694 30 626 622 623 627 +1695 31 626 622 623 628 +1696 32 622 623 624 625 +1697 33 622 623 624 639 +1698 34 622 623 628 629 +1699 35 622 623 628 633 +1700 35 622 623 628 634 +1701 8 624 623 628 629 +1702 9 624 623 628 633 +1703 9 624 623 628 634 +1704 10 627 623 624 625 +1705 11 627 623 624 639 +1706 12 627 623 628 629 +1707 13 627 623 628 633 +1708 13 627 623 628 634 +1709 14 628 623 624 625 +1710 15 628 623 624 639 +1711 16 623 624 639 640 +1712 17 623 624 639 643 +1713 18 625 624 639 640 +1714 19 625 624 639 643 +1715 36 623 628 629 630 +1716 21 623 628 629 635 +1717 21 623 628 629 636 +1718 37 633 628 629 630 +1719 23 633 628 629 635 +1720 23 633 628 629 636 +1721 37 634 628 629 630 +1722 23 634 628 629 635 +1723 23 634 628 629 636 +1724 38 628 629 630 631 +1725 39 628 629 630 632 +1726 40 635 629 630 631 +1727 41 635 629 630 632 +1728 40 636 629 630 631 +1729 41 636 629 630 632 +1730 42 629 630 632 637 +1731 42 629 630 632 638 +1732 19 631 630 632 637 +1733 19 631 630 632 638 +1734 26 624 639 640 641 +1735 27 624 639 640 644 +1736 28 624 639 640 645 +1737 29 643 639 640 641 +1738 30 643 639 640 644 +1739 31 643 639 640 645 +1740 32 639 640 641 642 +1741 33 639 640 641 656 +1742 34 639 640 645 646 +1743 35 639 640 645 650 +1744 35 639 640 645 651 +1745 8 641 640 645 646 +1746 9 641 640 645 650 +1747 9 641 640 645 651 +1748 10 644 640 641 642 +1749 11 644 640 641 656 +1750 12 644 640 645 646 +1751 13 644 640 645 650 +1752 13 644 640 645 651 +1753 14 645 640 641 642 +1754 15 645 640 641 656 +1755 16 640 641 656 657 +1756 17 640 641 656 660 +1757 18 642 641 656 657 +1758 19 642 641 656 660 +1759 36 640 645 646 647 +1760 21 640 645 646 652 +1761 21 640 645 646 653 +1762 37 650 645 646 647 +1763 23 650 645 646 652 +1764 23 650 645 646 653 +1765 37 651 645 646 647 +1766 23 651 645 646 652 +1767 23 651 645 646 653 +1768 38 645 646 647 648 +1769 39 645 646 647 649 +1770 40 652 646 647 648 +1771 41 652 646 647 649 +1772 40 653 646 647 648 +1773 41 653 646 647 649 +1774 42 646 647 649 654 +1775 42 646 647 649 655 +1776 19 648 647 649 654 +1777 19 648 647 649 655 +1778 26 641 656 657 658 +1779 27 641 656 657 661 +1780 28 641 656 657 662 +1781 29 660 656 657 658 +1782 30 660 656 657 661 +1783 31 660 656 657 662 +1784 32 656 657 658 659 +1785 33 656 657 658 680 +1786 34 656 657 662 663 +1787 35 656 657 662 669 +1788 35 656 657 662 670 +1789 8 658 657 662 663 +1790 9 658 657 662 669 +1791 9 658 657 662 670 +1792 10 661 657 658 659 +1793 11 661 657 658 680 +1794 12 661 657 662 663 +1795 13 661 657 662 669 +1796 13 661 657 662 670 +1797 14 662 657 658 659 +1798 15 662 657 658 680 +1799 16 657 658 680 681 +1800 17 657 658 680 684 +1801 18 659 658 680 681 +1802 19 659 658 680 684 +1803 67 657 662 663 664 +1804 21 657 662 663 671 +1805 21 657 662 663 672 +1806 68 669 662 663 664 +1807 23 669 662 663 671 +1808 23 669 662 663 672 +1809 68 670 662 663 664 +1810 23 670 662 663 671 +1811 23 670 662 663 672 +1812 153 662 663 664 665 +1813 68 662 663 664 673 +1814 68 662 663 664 674 +1815 154 671 663 664 665 +1816 23 671 663 664 673 +1817 23 671 663 664 674 +1818 154 672 663 664 665 +1819 23 672 663 664 673 +1820 23 672 663 664 674 +1821 155 663 664 665 666 +1822 156 663 664 665 675 +1823 157 673 664 665 666 +1824 158 673 664 665 675 +1825 157 674 664 665 666 +1826 158 674 664 665 675 +1827 159 664 665 666 667 +1828 159 664 665 666 668 +1829 160 675 665 666 667 +1830 160 675 665 666 668 +1831 160 665 666 667 676 +1832 160 665 666 667 677 +1833 160 665 666 668 678 +1834 160 665 666 668 679 +1835 160 667 666 668 678 +1836 160 667 666 668 679 +1837 160 668 666 667 676 +1838 160 668 666 667 677 +1839 26 658 680 681 682 +1840 27 658 680 681 685 +1841 28 658 680 681 686 +1842 29 684 680 681 682 +1843 30 684 680 681 685 +1844 31 684 680 681 686 +1845 32 680 681 682 683 +1846 33 680 681 682 699 +1847 81 680 681 686 687 +1848 35 680 681 686 690 +1849 35 680 681 686 691 +1850 82 682 681 686 687 +1851 9 682 681 686 690 +1852 9 682 681 686 691 +1853 10 685 681 682 683 +1854 11 685 681 682 699 +1855 83 685 681 686 687 +1856 13 685 681 686 690 +1857 13 685 681 686 691 +1858 14 686 681 682 683 +1859 15 686 681 682 699 +1860 16 681 682 699 700 +1861 17 681 682 699 703 +1862 18 683 682 699 700 +1863 19 683 682 699 703 +1864 84 681 686 687 688 +1865 84 681 686 687 689 +1866 83 681 686 687 692 +1867 55 690 686 687 688 +1868 55 690 686 687 689 +1869 13 690 686 687 692 +1870 55 691 686 687 688 +1871 55 691 686 687 689 +1872 13 691 686 687 692 +1873 55 686 687 688 693 +1874 55 686 687 688 694 +1875 55 686 687 688 695 +1876 55 686 687 689 696 +1877 55 686 687 689 697 +1878 55 686 687 689 698 +1879 55 688 687 689 696 +1880 55 688 687 689 697 +1881 55 688 687 689 698 +1882 55 689 687 688 693 +1883 55 689 687 688 694 +1884 55 689 687 688 695 +1885 13 692 687 688 693 +1886 13 692 687 688 694 +1887 13 692 687 688 695 +1888 13 692 687 689 696 +1889 13 692 687 689 697 +1890 13 692 687 689 698 +1891 26 682 699 700 701 +1892 27 682 699 700 704 +1893 43 682 699 700 705 +1894 29 703 699 700 701 +1895 30 703 699 700 704 +1896 44 703 699 700 705 +1897 32 699 700 701 702 +1898 33 699 700 701 718 +1899 45 699 700 705 706 +1900 45 699 700 705 707 +1901 46 699 700 705 709 +1902 47 701 700 705 706 +1903 47 701 700 705 707 +1904 48 701 700 705 709 +1905 10 704 700 701 702 +1906 11 704 700 701 718 +1907 49 704 700 705 706 +1908 49 704 700 705 707 +1909 50 704 700 705 709 +1910 51 705 700 701 702 +1911 52 705 700 701 718 +1912 16 700 701 718 719 +1913 17 700 701 718 722 +1914 18 702 701 718 719 +1915 19 702 701 718 722 +1916 53 700 705 706 708 +1917 54 700 705 706 710 +1918 54 700 705 706 711 +1919 54 700 705 707 712 +1920 54 700 705 707 713 +1921 54 700 705 707 714 +1922 55 706 705 707 712 +1923 55 706 705 707 713 +1924 55 706 705 707 714 +1925 56 707 705 706 708 +1926 55 707 705 706 710 +1927 55 707 705 706 711 +1928 12 709 705 706 708 +1929 13 709 705 706 710 +1930 13 709 705 706 711 +1931 13 709 705 707 712 +1932 13 709 705 707 713 +1933 13 709 705 707 714 +1934 21 705 706 708 715 +1935 21 705 706 708 716 +1936 21 705 706 708 717 +1937 23 710 706 708 715 +1938 23 710 706 708 716 +1939 23 710 706 708 717 +1940 23 711 706 708 715 +1941 23 711 706 708 716 +1942 23 711 706 708 717 +1943 26 701 718 719 720 +1944 27 701 718 719 723 +1945 28 701 718 719 724 +1946 29 722 718 719 720 +1947 30 722 718 719 723 +1948 31 722 718 719 724 +1949 32 718 719 720 721 +1950 33 718 719 720 738 +1951 57 718 719 724 725 +1952 35 718 719 724 731 +1953 35 718 719 724 732 +1954 58 720 719 724 725 +1955 9 720 719 724 731 +1956 9 720 719 724 732 +1957 10 723 719 720 721 +1958 11 723 719 720 738 +1959 59 723 719 724 725 +1960 13 723 719 724 731 +1961 13 723 719 724 732 +1962 14 724 719 720 721 +1963 15 724 719 720 738 +1964 16 719 720 738 739 +1965 17 719 720 738 742 +1966 18 721 720 738 739 +1967 19 721 720 738 742 +1968 60 719 724 725 726 +1969 60 719 724 725 727 +1970 61 731 724 725 726 +1971 61 731 724 725 727 +1972 61 732 724 725 726 +1973 61 732 724 725 727 +1974 62 724 725 726 728 +1975 63 724 725 726 733 +1976 62 724 725 727 729 +1977 63 724 725 727 734 +1978 64 726 725 727 729 +1979 65 726 725 727 734 +1980 64 727 725 726 728 +1981 65 727 725 726 733 +1982 64 725 726 728 730 +1983 65 725 726 728 735 +1984 65 733 726 728 730 +1985 66 733 726 728 735 +1986 64 725 727 729 730 +1987 65 725 727 729 736 +1988 65 734 727 729 730 +1989 66 734 727 729 736 +1990 64 726 728 730 729 +1991 65 726 728 730 737 +1992 65 735 728 730 729 +1993 66 735 728 730 737 +1994 64 727 729 730 728 +1995 65 727 729 730 737 +1996 65 736 729 730 728 +1997 66 736 729 730 737 +1998 26 720 738 739 740 +1999 27 720 738 739 743 +2000 28 720 738 739 744 +2001 29 742 738 739 740 +2002 30 742 738 739 743 +2003 31 742 738 739 744 +2004 32 738 739 740 741 +2005 33 738 739 740 748 +2006 35 738 739 744 745 +2007 35 738 739 744 746 +2008 35 738 739 744 747 +2009 9 740 739 744 745 +2010 9 740 739 744 746 +2011 9 740 739 744 747 +2012 10 743 739 740 741 +2013 11 743 739 740 748 +2014 13 743 739 744 745 +2015 13 743 739 744 746 +2016 13 743 739 744 747 +2017 14 744 739 740 741 +2018 15 744 739 740 748 +2019 85 739 740 748 749 +2020 17 739 740 748 752 +2021 86 741 740 748 749 +2022 19 741 740 748 752 +2023 87 740 748 749 750 +2024 88 740 748 749 753 +2025 88 740 748 749 754 +2026 89 752 748 749 750 +2027 90 752 748 749 753 +2028 90 752 748 749 754 +2029 91 748 749 750 751 +2030 92 748 749 750 755 +2031 93 753 749 750 751 +2032 94 753 749 750 755 +2033 93 754 749 750 751 +2034 94 754 749 750 755 +2035 95 749 750 755 756 +2036 96 749 750 755 759 +2037 18 751 750 755 756 +2038 19 751 750 755 759 +2039 26 750 755 756 757 +2040 27 750 755 756 760 +2041 28 750 755 756 761 +2042 29 759 755 756 757 +2043 30 759 755 756 760 +2044 31 759 755 756 761 +2045 32 755 756 757 758 +2046 33 755 756 757 777 +2047 34 755 756 761 762 +2048 35 755 756 761 766 +2049 35 755 756 761 767 +2050 8 757 756 761 762 +2051 9 757 756 761 766 +2052 9 757 756 761 767 +2053 10 760 756 757 758 +2054 11 760 756 757 777 +2055 12 760 756 761 762 +2056 13 760 756 761 766 +2057 13 760 756 761 767 +2058 14 761 756 757 758 +2059 15 761 756 757 777 +2060 16 756 757 777 778 +2061 17 756 757 777 781 +2062 18 758 757 777 778 +2063 19 758 757 777 781 +2064 67 756 761 762 763 +2065 21 756 761 762 768 +2066 21 756 761 762 769 +2067 68 766 761 762 763 +2068 23 766 761 762 768 +2069 23 766 761 762 769 +2070 68 767 761 762 763 +2071 23 767 761 762 768 +2072 23 767 761 762 769 +2073 69 761 762 763 764 +2074 68 761 762 763 770 +2075 68 761 762 763 771 +2076 68 768 762 763 764 +2077 23 768 762 763 770 +2078 23 768 762 763 771 +2079 68 769 762 763 764 +2080 23 769 762 763 770 +2081 23 769 762 763 771 +2082 70 762 763 764 765 +2083 68 762 763 764 772 +2084 68 762 763 764 773 +2085 71 770 763 764 765 +2086 23 770 763 764 772 +2087 23 770 763 764 773 +2088 71 771 763 764 765 +2089 23 771 763 764 772 +2090 23 771 763 764 773 +2091 72 763 764 765 774 +2092 72 763 764 765 775 +2093 72 763 764 765 776 +2094 73 772 764 765 774 +2095 73 772 764 765 775 +2096 73 772 764 765 776 +2097 73 773 764 765 774 +2098 73 773 764 765 775 +2099 73 773 764 765 776 +2100 26 757 777 778 779 +2101 27 757 777 778 782 +2102 28 757 777 778 783 +2103 29 781 777 778 779 +2104 30 781 777 778 782 +2105 31 781 777 778 783 +2106 32 777 778 779 780 +2107 33 777 778 779 794 +2108 34 777 778 783 784 +2109 35 777 778 783 788 +2110 35 777 778 783 789 +2111 8 779 778 783 784 +2112 9 779 778 783 788 +2113 9 779 778 783 789 +2114 10 782 778 779 780 +2115 11 782 778 779 794 +2116 12 782 778 783 784 +2117 13 782 778 783 788 +2118 13 782 778 783 789 +2119 14 783 778 779 780 +2120 15 783 778 779 794 +2121 16 778 779 794 795 +2122 17 778 779 794 798 +2123 18 780 779 794 795 +2124 19 780 779 794 798 +2125 36 778 783 784 785 +2126 21 778 783 784 790 +2127 21 778 783 784 791 +2128 37 788 783 784 785 +2129 23 788 783 784 790 +2130 23 788 783 784 791 +2131 37 789 783 784 785 +2132 23 789 783 784 790 +2133 23 789 783 784 791 +2134 38 783 784 785 786 +2135 39 783 784 785 787 +2136 40 790 784 785 786 +2137 41 790 784 785 787 +2138 40 791 784 785 786 +2139 41 791 784 785 787 +2140 42 784 785 787 792 +2141 42 784 785 787 793 +2142 19 786 785 787 792 +2143 19 786 785 787 793 +2144 26 779 794 795 796 +2145 27 779 794 795 799 +2146 28 779 794 795 800 +2147 29 798 794 795 796 +2148 30 798 794 795 799 +2149 31 798 794 795 800 +2150 32 794 795 796 797 +2151 33 794 795 796 813 +2152 81 794 795 800 801 +2153 35 794 795 800 804 +2154 35 794 795 800 805 +2155 82 796 795 800 801 +2156 9 796 795 800 804 +2157 9 796 795 800 805 +2158 10 799 795 796 797 +2159 11 799 795 796 813 +2160 83 799 795 800 801 +2161 13 799 795 800 804 +2162 13 799 795 800 805 +2163 14 800 795 796 797 +2164 15 800 795 796 813 +2165 16 795 796 813 814 +2166 17 795 796 813 817 +2167 18 797 796 813 814 +2168 19 797 796 813 817 +2169 84 795 800 801 802 +2170 84 795 800 801 803 +2171 83 795 800 801 806 +2172 55 804 800 801 802 +2173 55 804 800 801 803 +2174 13 804 800 801 806 +2175 55 805 800 801 802 +2176 55 805 800 801 803 +2177 13 805 800 801 806 +2178 55 800 801 802 807 +2179 55 800 801 802 808 +2180 55 800 801 802 809 +2181 55 800 801 803 810 +2182 55 800 801 803 811 +2183 55 800 801 803 812 +2184 55 802 801 803 810 +2185 55 802 801 803 811 +2186 55 802 801 803 812 +2187 55 803 801 802 807 +2188 55 803 801 802 808 +2189 55 803 801 802 809 +2190 13 806 801 802 807 +2191 13 806 801 802 808 +2192 13 806 801 802 809 +2193 13 806 801 803 810 +2194 13 806 801 803 811 +2195 13 806 801 803 812 +2196 26 796 813 814 815 +2197 27 796 813 814 818 +2198 28 796 813 814 819 +2199 29 817 813 814 815 +2200 30 817 813 814 818 +2201 31 817 813 814 819 +2202 32 813 814 815 816 +2203 33 813 814 815 828 +2204 34 813 814 819 820 +2205 35 813 814 819 824 +2206 35 813 814 819 825 +2207 8 815 814 819 820 +2208 9 815 814 819 824 +2209 9 815 814 819 825 +2210 10 818 814 815 816 +2211 11 818 814 815 828 +2212 12 818 814 819 820 +2213 13 818 814 819 824 +2214 13 818 814 819 825 +2215 14 819 814 815 816 +2216 15 819 814 815 828 +2217 16 814 815 828 829 +2218 17 814 815 828 832 +2219 18 816 815 828 829 +2220 19 816 815 828 832 +2221 97 814 819 820 821 +2222 21 814 819 820 826 +2223 21 814 819 820 827 +2224 98 824 819 820 821 +2225 23 824 819 820 826 +2226 23 824 819 820 827 +2227 98 825 819 820 821 +2228 23 825 819 820 826 +2229 23 825 819 820 827 +2230 99 819 820 821 822 +2231 99 819 820 821 823 +2232 100 826 820 821 822 +2233 100 826 820 821 823 +2234 100 827 820 821 822 +2235 100 827 820 821 823 +2236 26 815 828 829 830 +2237 27 815 828 829 833 +2238 28 815 828 829 834 +2239 29 832 828 829 830 +2240 30 832 828 829 833 +2241 31 832 828 829 834 +2242 32 828 829 830 831 +2243 33 828 829 830 840 +2244 141 828 829 834 835 +2245 35 828 829 834 838 +2246 35 828 829 834 839 +2247 142 830 829 834 835 +2248 9 830 829 834 838 +2249 9 830 829 834 839 +2250 10 833 829 830 831 +2251 11 833 829 830 840 +2252 143 833 829 834 835 +2253 13 833 829 834 838 +2254 13 833 829 834 839 +2255 14 834 829 830 831 +2256 15 834 829 830 840 +2257 85 829 830 840 841 +2258 17 829 830 840 844 +2259 86 831 830 840 841 +2260 19 831 830 840 844 +2261 144 829 834 835 836 +2262 144 829 834 835 837 +2263 100 838 834 835 836 +2264 100 838 834 835 837 +2265 100 839 834 835 836 +2266 100 839 834 835 837 +2267 87 830 840 841 842 +2268 88 830 840 841 845 +2269 88 830 840 841 846 +2270 89 844 840 841 842 +2271 90 844 840 841 845 +2272 90 844 840 841 846 +2273 91 840 841 842 843 +2274 92 840 841 842 847 +2275 93 845 841 842 843 +2276 94 845 841 842 847 +2277 93 846 841 842 843 +2278 94 846 841 842 847 +2279 95 841 842 847 848 +2280 96 841 842 847 851 +2281 18 843 842 847 848 +2282 19 843 842 847 851 +2283 26 842 847 848 849 +2284 27 842 847 848 852 +2285 28 842 847 848 853 +2286 29 851 847 848 849 +2287 30 851 847 848 852 +2288 31 851 847 848 853 +2289 32 847 848 849 850 +2290 33 847 848 849 871 +2291 34 847 848 853 854 +2292 35 847 848 853 860 +2293 35 847 848 853 861 +2294 8 849 848 853 854 +2295 9 849 848 853 860 +2296 9 849 848 853 861 +2297 10 852 848 849 850 +2298 11 852 848 849 871 +2299 12 852 848 853 854 +2300 13 852 848 853 860 +2301 13 852 848 853 861 +2302 14 853 848 849 850 +2303 15 853 848 849 871 +2304 16 848 849 871 872 +2305 17 848 849 871 875 +2306 18 850 849 871 872 +2307 19 850 849 871 875 +2308 67 848 853 854 855 +2309 21 848 853 854 862 +2310 21 848 853 854 863 +2311 68 860 853 854 855 +2312 23 860 853 854 862 +2313 23 860 853 854 863 +2314 68 861 853 854 855 +2315 23 861 853 854 862 +2316 23 861 853 854 863 +2317 153 853 854 855 856 +2318 68 853 854 855 864 +2319 68 853 854 855 865 +2320 154 862 854 855 856 +2321 23 862 854 855 864 +2322 23 862 854 855 865 +2323 154 863 854 855 856 +2324 23 863 854 855 864 +2325 23 863 854 855 865 +2326 155 854 855 856 857 +2327 156 854 855 856 866 +2328 157 864 855 856 857 +2329 158 864 855 856 866 +2330 157 865 855 856 857 +2331 158 865 855 856 866 +2332 159 855 856 857 858 +2333 159 855 856 857 859 +2334 160 866 856 857 858 +2335 160 866 856 857 859 +2336 160 856 857 858 867 +2337 160 856 857 858 868 +2338 160 856 857 859 869 +2339 160 856 857 859 870 +2340 160 858 857 859 869 +2341 160 858 857 859 870 +2342 160 859 857 858 867 +2343 160 859 857 858 868 +2344 26 849 871 872 873 +2345 27 849 871 872 876 +2346 43 849 871 872 877 +2347 29 875 871 872 873 +2348 30 875 871 872 876 +2349 44 875 871 872 877 +2350 32 871 872 873 874 +2351 33 871 872 873 885 +2352 74 871 872 877 878 +2353 45 871 872 877 879 +2354 46 871 872 877 880 +2355 75 873 872 877 878 +2356 47 873 872 877 879 +2357 48 873 872 877 880 +2358 10 876 872 873 874 +2359 11 876 872 873 885 +2360 76 876 872 877 878 +2361 49 876 872 877 879 +2362 50 876 872 877 880 +2363 51 877 872 873 874 +2364 52 877 872 873 885 +2365 16 872 873 885 886 +2366 17 872 873 885 889 +2367 18 874 873 885 886 +2368 19 874 873 885 889 +2369 77 872 877 878 881 +2370 54 872 877 879 882 +2371 54 872 877 879 883 +2372 54 872 877 879 884 +2373 78 878 877 879 882 +2374 78 878 877 879 883 +2375 78 878 877 879 884 +2376 79 879 877 878 881 +2377 80 880 877 878 881 +2378 13 880 877 879 882 +2379 13 880 877 879 883 +2380 13 880 877 879 884 +2381 26 873 885 886 887 +2382 27 873 885 886 890 +2383 28 873 885 886 891 +2384 29 889 885 886 887 +2385 30 889 885 886 890 +2386 31 889 885 886 891 +2387 32 885 886 887 888 +2388 33 885 886 887 904 +2389 81 885 886 891 892 +2390 35 885 886 891 895 +2391 35 885 886 891 896 +2392 82 887 886 891 892 +2393 9 887 886 891 895 +2394 9 887 886 891 896 +2395 10 890 886 887 888 +2396 11 890 886 887 904 +2397 83 890 886 891 892 +2398 13 890 886 891 895 +2399 13 890 886 891 896 +2400 14 891 886 887 888 +2401 15 891 886 887 904 +2402 16 886 887 904 905 +2403 17 886 887 904 908 +2404 18 888 887 904 905 +2405 19 888 887 904 908 +2406 84 886 891 892 893 +2407 84 886 891 892 894 +2408 83 886 891 892 897 +2409 55 895 891 892 893 +2410 55 895 891 892 894 +2411 13 895 891 892 897 +2412 55 896 891 892 893 +2413 55 896 891 892 894 +2414 13 896 891 892 897 +2415 55 891 892 893 898 +2416 55 891 892 893 899 +2417 55 891 892 893 900 +2418 55 891 892 894 901 +2419 55 891 892 894 902 +2420 55 891 892 894 903 +2421 55 893 892 894 901 +2422 55 893 892 894 902 +2423 55 893 892 894 903 +2424 55 894 892 893 898 +2425 55 894 892 893 899 +2426 55 894 892 893 900 +2427 13 897 892 893 898 +2428 13 897 892 893 899 +2429 13 897 892 893 900 +2430 13 897 892 894 901 +2431 13 897 892 894 902 +2432 13 897 892 894 903 +2433 26 887 904 905 906 +2434 27 887 904 905 909 +2435 28 887 904 905 910 +2436 29 908 904 905 906 +2437 30 908 904 905 909 +2438 31 908 904 905 910 +2439 32 904 905 906 907 +2440 33 904 905 906 915 +2441 136 904 905 910 911 +2442 35 904 905 910 912 +2443 35 904 905 910 913 +2444 137 906 905 910 911 +2445 9 906 905 910 912 +2446 9 906 905 910 913 +2447 10 909 905 906 907 +2448 11 909 905 906 915 +2449 138 909 905 910 911 +2450 13 909 905 910 912 +2451 13 909 905 910 913 +2452 14 910 905 906 907 +2453 15 910 905 906 915 +2454 16 905 906 915 916 +2455 17 905 906 915 919 +2456 18 907 906 915 916 +2457 19 907 906 915 919 +2458 139 905 910 911 914 +2459 140 912 910 911 914 +2460 140 913 910 911 914 +2461 26 906 915 916 917 +2462 27 906 915 916 920 +2463 28 906 915 916 921 +2464 29 919 915 916 917 +2465 30 919 915 916 920 +2466 31 919 915 916 921 +2467 32 915 916 917 918 +2468 33 915 916 917 927 +2469 141 915 916 921 922 +2470 35 915 916 921 925 +2471 35 915 916 921 926 +2472 142 917 916 921 922 +2473 9 917 916 921 925 +2474 9 917 916 921 926 +2475 10 920 916 917 918 +2476 11 920 916 917 927 +2477 143 920 916 921 922 +2478 13 920 916 921 925 +2479 13 920 916 921 926 +2480 14 921 916 917 918 +2481 15 921 916 917 927 +2482 16 916 917 927 928 +2483 17 916 917 927 931 +2484 18 918 917 927 928 +2485 19 918 917 927 931 +2486 144 916 921 922 923 +2487 144 916 921 922 924 +2488 100 925 921 922 923 +2489 100 925 921 922 924 +2490 100 926 921 922 923 +2491 100 926 921 922 924 +2492 26 917 927 928 929 +2493 27 917 927 928 932 +2494 28 917 927 928 933 +2495 29 931 927 928 929 +2496 30 931 927 928 932 +2497 31 931 927 928 933 +2498 32 927 928 929 930 +2499 33 927 928 929 948 +2500 57 927 928 933 934 +2501 35 927 928 933 941 +2502 35 927 928 933 942 +2503 58 929 928 933 934 +2504 9 929 928 933 941 +2505 9 929 928 933 942 +2506 10 932 928 929 930 +2507 11 932 928 929 948 +2508 59 932 928 933 934 +2509 13 932 928 933 941 +2510 13 932 928 933 942 +2511 14 933 928 929 930 +2512 15 933 928 929 948 +2513 16 928 929 948 949 +2514 17 928 929 948 952 +2515 18 930 929 948 949 +2516 19 930 929 948 952 +2517 60 928 933 934 935 +2518 60 928 933 934 936 +2519 61 941 933 934 935 +2520 61 941 933 934 936 +2521 61 942 933 934 935 +2522 61 942 933 934 936 +2523 62 933 934 935 937 +2524 63 933 934 935 943 +2525 62 933 934 936 938 +2526 63 933 934 936 944 +2527 64 935 934 936 938 +2528 65 935 934 936 944 +2529 64 936 934 935 937 +2530 65 936 934 935 943 +2531 64 934 935 937 939 +2532 65 934 935 937 945 +2533 65 943 935 937 939 +2534 66 943 935 937 945 +2535 64 934 936 938 939 +2536 65 934 936 938 946 +2537 65 944 936 938 939 +2538 66 944 936 938 946 +2539 64 935 937 939 938 +2540 161 935 937 939 940 +2541 65 945 937 939 938 +2542 162 945 937 939 940 +2543 64 936 938 939 937 +2544 161 936 938 939 940 +2545 65 946 938 939 937 +2546 162 946 938 939 940 +2547 163 937 939 940 947 +2548 163 938 939 940 947 +2549 26 929 948 949 950 +2550 27 929 948 949 953 +2551 28 929 948 949 954 +2552 29 952 948 949 950 +2553 30 952 948 949 953 +2554 31 952 948 949 954 +2555 32 948 949 950 951 +2556 33 948 949 950 962 +2557 145 948 949 954 955 +2558 35 948 949 954 958 +2559 35 948 949 954 959 +2560 146 950 949 954 955 +2561 9 950 949 954 958 +2562 9 950 949 954 959 +2563 10 953 949 950 951 +2564 11 953 949 950 962 +2565 147 953 949 954 955 +2566 13 953 949 954 958 +2567 13 953 949 954 959 +2568 14 954 949 950 951 +2569 15 954 949 950 962 +2570 16 949 950 962 963 +2571 17 949 950 962 966 +2572 18 951 950 962 963 +2573 19 951 950 962 966 +2574 148 949 954 955 956 +2575 149 949 954 955 957 +2576 40 958 954 955 956 +2577 41 958 954 955 957 +2578 40 959 954 955 956 +2579 41 959 954 955 957 +2580 42 954 955 957 960 +2581 42 954 955 957 961 +2582 19 956 955 957 960 +2583 19 956 955 957 961 +2584 26 950 962 963 964 +2585 27 950 962 963 967 +2586 43 950 962 963 968 +2587 29 966 962 963 964 +2588 30 966 962 963 967 +2589 44 966 962 963 968 +2590 32 962 963 964 965 +2591 33 962 963 964 981 +2592 45 962 963 968 969 +2593 45 962 963 968 970 +2594 46 962 963 968 972 +2595 47 964 963 968 969 +2596 47 964 963 968 970 +2597 48 964 963 968 972 +2598 10 967 963 964 965 +2599 11 967 963 964 981 +2600 49 967 963 968 969 +2601 49 967 963 968 970 +2602 50 967 963 968 972 +2603 51 968 963 964 965 +2604 52 968 963 964 981 +2605 16 963 964 981 982 +2606 17 963 964 981 985 +2607 18 965 964 981 982 +2608 19 965 964 981 985 +2609 53 963 968 969 971 +2610 54 963 968 969 973 +2611 54 963 968 969 974 +2612 54 963 968 970 975 +2613 54 963 968 970 976 +2614 54 963 968 970 977 +2615 55 969 968 970 975 +2616 55 969 968 970 976 +2617 55 969 968 970 977 +2618 56 970 968 969 971 +2619 55 970 968 969 973 +2620 55 970 968 969 974 +2621 12 972 968 969 971 +2622 13 972 968 969 973 +2623 13 972 968 969 974 +2624 13 972 968 970 975 +2625 13 972 968 970 976 +2626 13 972 968 970 977 +2627 21 968 969 971 978 +2628 21 968 969 971 979 +2629 21 968 969 971 980 +2630 23 973 969 971 978 +2631 23 973 969 971 979 +2632 23 973 969 971 980 +2633 23 974 969 971 978 +2634 23 974 969 971 979 +2635 23 974 969 971 980 +2636 26 964 981 982 983 +2637 27 964 981 982 986 +2638 28 964 981 982 987 +2639 29 985 981 982 983 +2640 30 985 981 982 986 +2641 31 985 981 982 987 +2642 32 981 982 983 984 +2643 33 981 982 983 998 +2644 34 981 982 987 988 +2645 35 981 982 987 992 +2646 35 981 982 987 993 +2647 8 983 982 987 988 +2648 9 983 982 987 992 +2649 9 983 982 987 993 +2650 10 986 982 983 984 +2651 11 986 982 983 998 +2652 12 986 982 987 988 +2653 13 986 982 987 992 +2654 13 986 982 987 993 +2655 14 987 982 983 984 +2656 15 987 982 983 998 +2657 16 982 983 998 999 +2658 17 982 983 998 1002 +2659 18 984 983 998 999 +2660 19 984 983 998 1002 +2661 36 982 987 988 989 +2662 21 982 987 988 994 +2663 21 982 987 988 995 +2664 37 992 987 988 989 +2665 23 992 987 988 994 +2666 23 992 987 988 995 +2667 37 993 987 988 989 +2668 23 993 987 988 994 +2669 23 993 987 988 995 +2670 38 987 988 989 990 +2671 39 987 988 989 991 +2672 40 994 988 989 990 +2673 41 994 988 989 991 +2674 40 995 988 989 990 +2675 41 995 988 989 991 +2676 42 988 989 991 996 +2677 42 988 989 991 997 +2678 19 990 989 991 996 +2679 19 990 989 991 997 +2680 26 983 998 999 1000 +2681 27 983 998 999 1003 +2682 28 983 998 999 1004 +2683 29 1002 998 999 1000 +2684 30 1002 998 999 1003 +2685 31 1002 998 999 1004 +2686 32 998 999 1000 1001 +2687 33 998 999 1000 1020 +2688 34 998 999 1004 1005 +2689 35 998 999 1004 1009 +2690 35 998 999 1004 1010 +2691 8 1000 999 1004 1005 +2692 9 1000 999 1004 1009 +2693 9 1000 999 1004 1010 +2694 10 1003 999 1000 1001 +2695 11 1003 999 1000 1020 +2696 12 1003 999 1004 1005 +2697 13 1003 999 1004 1009 +2698 13 1003 999 1004 1010 +2699 14 1004 999 1000 1001 +2700 15 1004 999 1000 1020 +2701 16 999 1000 1020 1021 +2702 17 999 1000 1020 1024 +2703 18 1001 1000 1020 1021 +2704 19 1001 1000 1020 1024 +2705 67 999 1004 1005 1006 +2706 21 999 1004 1005 1011 +2707 21 999 1004 1005 1012 +2708 68 1009 1004 1005 1006 +2709 23 1009 1004 1005 1011 +2710 23 1009 1004 1005 1012 +2711 68 1010 1004 1005 1006 +2712 23 1010 1004 1005 1011 +2713 23 1010 1004 1005 1012 +2714 69 1004 1005 1006 1007 +2715 68 1004 1005 1006 1013 +2716 68 1004 1005 1006 1014 +2717 68 1011 1005 1006 1007 +2718 23 1011 1005 1006 1013 +2719 23 1011 1005 1006 1014 +2720 68 1012 1005 1006 1007 +2721 23 1012 1005 1006 1013 +2722 23 1012 1005 1006 1014 +2723 70 1005 1006 1007 1008 +2724 68 1005 1006 1007 1015 +2725 68 1005 1006 1007 1016 +2726 71 1013 1006 1007 1008 +2727 23 1013 1006 1007 1015 +2728 23 1013 1006 1007 1016 +2729 71 1014 1006 1007 1008 +2730 23 1014 1006 1007 1015 +2731 23 1014 1006 1007 1016 +2732 72 1006 1007 1008 1017 +2733 72 1006 1007 1008 1018 +2734 72 1006 1007 1008 1019 +2735 73 1015 1007 1008 1017 +2736 73 1015 1007 1008 1018 +2737 73 1015 1007 1008 1019 +2738 73 1016 1007 1008 1017 +2739 73 1016 1007 1008 1018 +2740 73 1016 1007 1008 1019 +2741 26 1000 1020 1021 1022 +2742 27 1000 1020 1021 1025 +2743 28 1000 1020 1021 1026 +2744 29 1024 1020 1021 1022 +2745 30 1024 1020 1021 1025 +2746 31 1024 1020 1021 1026 +2747 32 1020 1021 1022 1023 +2748 33 1020 1021 1022 1035 +2749 34 1020 1021 1026 1027 +2750 35 1020 1021 1026 1031 +2751 35 1020 1021 1026 1032 +2752 8 1022 1021 1026 1027 +2753 9 1022 1021 1026 1031 +2754 9 1022 1021 1026 1032 +2755 10 1025 1021 1022 1023 +2756 11 1025 1021 1022 1035 +2757 12 1025 1021 1026 1027 +2758 13 1025 1021 1026 1031 +2759 13 1025 1021 1026 1032 +2760 14 1026 1021 1022 1023 +2761 15 1026 1021 1022 1035 +2762 16 1021 1022 1035 1036 +2763 17 1021 1022 1035 1039 +2764 18 1023 1022 1035 1036 +2765 19 1023 1022 1035 1039 +2766 97 1021 1026 1027 1028 +2767 21 1021 1026 1027 1033 +2768 21 1021 1026 1027 1034 +2769 98 1031 1026 1027 1028 +2770 23 1031 1026 1027 1033 +2771 23 1031 1026 1027 1034 +2772 98 1032 1026 1027 1028 +2773 23 1032 1026 1027 1033 +2774 23 1032 1026 1027 1034 +2775 99 1026 1027 1028 1029 +2776 99 1026 1027 1028 1030 +2777 100 1033 1027 1028 1029 +2778 100 1033 1027 1028 1030 +2779 100 1034 1027 1028 1029 +2780 100 1034 1027 1028 1030 +2781 26 1022 1035 1036 1037 +2782 27 1022 1035 1036 1040 +2783 28 1022 1035 1036 1041 +2784 29 1039 1035 1036 1037 +2785 30 1039 1035 1036 1040 +2786 31 1039 1035 1036 1041 +2787 32 1035 1036 1037 1038 +2788 33 1035 1036 1037 1046 +2789 136 1035 1036 1041 1042 +2790 35 1035 1036 1041 1043 +2791 35 1035 1036 1041 1044 +2792 137 1037 1036 1041 1042 +2793 9 1037 1036 1041 1043 +2794 9 1037 1036 1041 1044 +2795 10 1040 1036 1037 1038 +2796 11 1040 1036 1037 1046 +2797 138 1040 1036 1041 1042 +2798 13 1040 1036 1041 1043 +2799 13 1040 1036 1041 1044 +2800 14 1041 1036 1037 1038 +2801 15 1041 1036 1037 1046 +2802 16 1036 1037 1046 1047 +2803 17 1036 1037 1046 1050 +2804 18 1038 1037 1046 1047 +2805 19 1038 1037 1046 1050 +2806 139 1036 1041 1042 1045 +2807 140 1043 1041 1042 1045 +2808 140 1044 1041 1042 1045 +2809 26 1037 1046 1047 1048 +2810 27 1037 1046 1047 1051 +2811 43 1037 1046 1047 1052 +2812 29 1050 1046 1047 1048 +2813 30 1050 1046 1047 1051 +2814 44 1050 1046 1047 1052 +2815 32 1046 1047 1048 1049 +2816 33 1046 1047 1048 1060 +2817 74 1046 1047 1052 1053 +2818 45 1046 1047 1052 1054 +2819 46 1046 1047 1052 1055 +2820 75 1048 1047 1052 1053 +2821 47 1048 1047 1052 1054 +2822 48 1048 1047 1052 1055 +2823 10 1051 1047 1048 1049 +2824 11 1051 1047 1048 1060 +2825 76 1051 1047 1052 1053 +2826 49 1051 1047 1052 1054 +2827 50 1051 1047 1052 1055 +2828 51 1052 1047 1048 1049 +2829 52 1052 1047 1048 1060 +2830 16 1047 1048 1060 1061 +2831 17 1047 1048 1060 1064 +2832 18 1049 1048 1060 1061 +2833 19 1049 1048 1060 1064 +2834 77 1047 1052 1053 1056 +2835 54 1047 1052 1054 1057 +2836 54 1047 1052 1054 1058 +2837 54 1047 1052 1054 1059 +2838 78 1053 1052 1054 1057 +2839 78 1053 1052 1054 1058 +2840 78 1053 1052 1054 1059 +2841 79 1054 1052 1053 1056 +2842 80 1055 1052 1053 1056 +2843 13 1055 1052 1054 1057 +2844 13 1055 1052 1054 1058 +2845 13 1055 1052 1054 1059 +2846 26 1048 1060 1061 1062 +2847 27 1048 1060 1061 1065 +2848 28 1048 1060 1061 1066 +2849 29 1064 1060 1061 1062 +2850 30 1064 1060 1061 1065 +2851 31 1064 1060 1061 1066 +2852 32 1060 1061 1062 1063 +2853 33 1060 1061 1062 1079 +2854 81 1060 1061 1066 1067 +2855 35 1060 1061 1066 1070 +2856 35 1060 1061 1066 1071 +2857 82 1062 1061 1066 1067 +2858 9 1062 1061 1066 1070 +2859 9 1062 1061 1066 1071 +2860 10 1065 1061 1062 1063 +2861 11 1065 1061 1062 1079 +2862 83 1065 1061 1066 1067 +2863 13 1065 1061 1066 1070 +2864 13 1065 1061 1066 1071 +2865 14 1066 1061 1062 1063 +2866 15 1066 1061 1062 1079 +2867 16 1061 1062 1079 1080 +2868 17 1061 1062 1079 1083 +2869 18 1063 1062 1079 1080 +2870 19 1063 1062 1079 1083 +2871 84 1061 1066 1067 1068 +2872 84 1061 1066 1067 1069 +2873 83 1061 1066 1067 1072 +2874 55 1070 1066 1067 1068 +2875 55 1070 1066 1067 1069 +2876 13 1070 1066 1067 1072 +2877 55 1071 1066 1067 1068 +2878 55 1071 1066 1067 1069 +2879 13 1071 1066 1067 1072 +2880 55 1066 1067 1068 1073 +2881 55 1066 1067 1068 1074 +2882 55 1066 1067 1068 1075 +2883 55 1066 1067 1069 1076 +2884 55 1066 1067 1069 1077 +2885 55 1066 1067 1069 1078 +2886 55 1068 1067 1069 1076 +2887 55 1068 1067 1069 1077 +2888 55 1068 1067 1069 1078 +2889 55 1069 1067 1068 1073 +2890 55 1069 1067 1068 1074 +2891 55 1069 1067 1068 1075 +2892 13 1072 1067 1068 1073 +2893 13 1072 1067 1068 1074 +2894 13 1072 1067 1068 1075 +2895 13 1072 1067 1069 1076 +2896 13 1072 1067 1069 1077 +2897 13 1072 1067 1069 1078 +2898 26 1062 1079 1080 1081 +2899 27 1062 1079 1080 1084 +2900 28 1062 1079 1080 1085 +2901 29 1083 1079 1080 1081 +2902 30 1083 1079 1080 1084 +2903 31 1083 1079 1080 1085 +2904 32 1079 1080 1081 1082 +2905 33 1079 1080 1081 1097 +2906 164 1079 1080 1085 1086 +2907 35 1079 1080 1085 1091 +2908 35 1079 1080 1085 1092 +2909 165 1081 1080 1085 1086 +2910 9 1081 1080 1085 1091 +2911 9 1081 1080 1085 1092 +2912 10 1084 1080 1081 1082 +2913 11 1084 1080 1081 1097 +2914 166 1084 1080 1085 1086 +2915 13 1084 1080 1085 1091 +2916 13 1084 1080 1085 1092 +2917 14 1085 1080 1081 1082 +2918 15 1085 1080 1081 1097 +2919 16 1080 1081 1097 1098 +2920 17 1080 1081 1097 1101 +2921 18 1082 1081 1097 1098 +2922 19 1082 1081 1097 1101 +2923 167 1080 1085 1086 1087 +2924 168 1080 1085 1086 1088 +2925 169 1091 1085 1086 1087 +2926 170 1091 1085 1086 1088 +2927 169 1092 1085 1086 1087 +2928 170 1092 1085 1086 1088 +2929 171 1085 1086 1087 1089 +2930 172 1085 1086 1087 1093 +2931 173 1085 1086 1088 1090 +2932 174 1085 1086 1088 1094 +2933 175 1087 1086 1088 1090 +2934 176 1087 1086 1088 1094 +2935 177 1088 1086 1087 1089 +2936 178 1088 1086 1087 1093 +2937 179 1086 1087 1089 1090 +2938 180 1086 1087 1089 1095 +2939 181 1093 1087 1089 1090 +2940 182 1093 1087 1089 1095 +2941 177 1086 1088 1090 1089 +2942 178 1086 1088 1090 1096 +2943 183 1094 1088 1090 1089 +2944 184 1094 1088 1090 1096 +2945 179 1087 1089 1090 1088 +2946 181 1087 1089 1090 1096 +2947 180 1095 1089 1090 1088 +2948 182 1095 1089 1090 1096 +2949 26 1081 1097 1098 1099 +2950 27 1081 1097 1098 1102 +2951 28 1081 1097 1098 1103 +2952 29 1101 1097 1098 1099 +2953 30 1101 1097 1098 1102 +2954 31 1101 1097 1098 1103 +2955 32 1097 1098 1099 1100 +2956 33 1097 1098 1099 1116 +2957 81 1097 1098 1103 1104 +2958 35 1097 1098 1103 1107 +2959 35 1097 1098 1103 1108 +2960 82 1099 1098 1103 1104 +2961 9 1099 1098 1103 1107 +2962 9 1099 1098 1103 1108 +2963 10 1102 1098 1099 1100 +2964 11 1102 1098 1099 1116 +2965 83 1102 1098 1103 1104 +2966 13 1102 1098 1103 1107 +2967 13 1102 1098 1103 1108 +2968 14 1103 1098 1099 1100 +2969 15 1103 1098 1099 1116 +2970 16 1098 1099 1116 1117 +2971 17 1098 1099 1116 1120 +2972 18 1100 1099 1116 1117 +2973 19 1100 1099 1116 1120 +2974 84 1098 1103 1104 1105 +2975 84 1098 1103 1104 1106 +2976 83 1098 1103 1104 1109 +2977 55 1107 1103 1104 1105 +2978 55 1107 1103 1104 1106 +2979 13 1107 1103 1104 1109 +2980 55 1108 1103 1104 1105 +2981 55 1108 1103 1104 1106 +2982 13 1108 1103 1104 1109 +2983 55 1103 1104 1105 1110 +2984 55 1103 1104 1105 1111 +2985 55 1103 1104 1105 1112 +2986 55 1103 1104 1106 1113 +2987 55 1103 1104 1106 1114 +2988 55 1103 1104 1106 1115 +2989 55 1105 1104 1106 1113 +2990 55 1105 1104 1106 1114 +2991 55 1105 1104 1106 1115 +2992 55 1106 1104 1105 1110 +2993 55 1106 1104 1105 1111 +2994 55 1106 1104 1105 1112 +2995 13 1109 1104 1105 1110 +2996 13 1109 1104 1105 1111 +2997 13 1109 1104 1105 1112 +2998 13 1109 1104 1106 1113 +2999 13 1109 1104 1106 1114 +3000 13 1109 1104 1106 1115 +3001 26 1099 1116 1117 1118 +3002 27 1099 1116 1117 1121 +3003 43 1099 1116 1117 1122 +3004 29 1120 1116 1117 1118 +3005 30 1120 1116 1117 1121 +3006 44 1120 1116 1117 1122 +3007 32 1116 1117 1118 1119 +3008 33 1116 1117 1118 1132 +3009 45 1116 1117 1122 1123 +3010 45 1116 1117 1122 1124 +3011 46 1116 1117 1122 1125 +3012 47 1118 1117 1122 1123 +3013 47 1118 1117 1122 1124 +3014 48 1118 1117 1122 1125 +3015 10 1121 1117 1118 1119 +3016 11 1121 1117 1118 1132 +3017 49 1121 1117 1122 1123 +3018 49 1121 1117 1122 1124 +3019 50 1121 1117 1122 1125 +3020 51 1122 1117 1118 1119 +3021 52 1122 1117 1118 1132 +3022 16 1117 1118 1132 1133 +3023 17 1117 1118 1132 1136 +3024 18 1119 1118 1132 1133 +3025 19 1119 1118 1132 1136 +3026 54 1117 1122 1123 1126 +3027 54 1117 1122 1123 1127 +3028 54 1117 1122 1123 1128 +3029 54 1117 1122 1124 1129 +3030 54 1117 1122 1124 1130 +3031 54 1117 1122 1124 1131 +3032 55 1123 1122 1124 1129 +3033 55 1123 1122 1124 1130 +3034 55 1123 1122 1124 1131 +3035 55 1124 1122 1123 1126 +3036 55 1124 1122 1123 1127 +3037 55 1124 1122 1123 1128 +3038 13 1125 1122 1123 1126 +3039 13 1125 1122 1123 1127 +3040 13 1125 1122 1123 1128 +3041 13 1125 1122 1124 1129 +3042 13 1125 1122 1124 1130 +3043 13 1125 1122 1124 1131 +3044 26 1118 1132 1133 1134 +3045 27 1118 1132 1133 1137 +3046 28 1118 1132 1133 1138 +3047 29 1136 1132 1133 1134 +3048 30 1136 1132 1133 1137 +3049 31 1136 1132 1133 1138 +3050 32 1132 1133 1134 1135 +3051 33 1132 1133 1134 1151 +3052 81 1132 1133 1138 1139 +3053 35 1132 1133 1138 1142 +3054 35 1132 1133 1138 1143 +3055 82 1134 1133 1138 1139 +3056 9 1134 1133 1138 1142 +3057 9 1134 1133 1138 1143 +3058 10 1137 1133 1134 1135 +3059 11 1137 1133 1134 1151 +3060 83 1137 1133 1138 1139 +3061 13 1137 1133 1138 1142 +3062 13 1137 1133 1138 1143 +3063 14 1138 1133 1134 1135 +3064 15 1138 1133 1134 1151 +3065 16 1133 1134 1151 1152 +3066 17 1133 1134 1151 1155 +3067 18 1135 1134 1151 1152 +3068 19 1135 1134 1151 1155 +3069 84 1133 1138 1139 1140 +3070 84 1133 1138 1139 1141 +3071 83 1133 1138 1139 1144 +3072 55 1142 1138 1139 1140 +3073 55 1142 1138 1139 1141 +3074 13 1142 1138 1139 1144 +3075 55 1143 1138 1139 1140 +3076 55 1143 1138 1139 1141 +3077 13 1143 1138 1139 1144 +3078 55 1138 1139 1140 1145 +3079 55 1138 1139 1140 1146 +3080 55 1138 1139 1140 1147 +3081 55 1138 1139 1141 1148 +3082 55 1138 1139 1141 1149 +3083 55 1138 1139 1141 1150 +3084 55 1140 1139 1141 1148 +3085 55 1140 1139 1141 1149 +3086 55 1140 1139 1141 1150 +3087 55 1141 1139 1140 1145 +3088 55 1141 1139 1140 1146 +3089 55 1141 1139 1140 1147 +3090 13 1144 1139 1140 1145 +3091 13 1144 1139 1140 1146 +3092 13 1144 1139 1140 1147 +3093 13 1144 1139 1141 1148 +3094 13 1144 1139 1141 1149 +3095 13 1144 1139 1141 1150 +3096 26 1134 1151 1152 1153 +3097 27 1134 1151 1152 1156 +3098 28 1134 1151 1152 1157 +3099 29 1155 1151 1152 1153 +3100 30 1155 1151 1152 1156 +3101 31 1155 1151 1152 1157 +3102 32 1151 1152 1153 1154 +3103 33 1151 1152 1153 1175 +3104 34 1151 1152 1157 1158 +3105 35 1151 1152 1157 1164 +3106 35 1151 1152 1157 1165 +3107 8 1153 1152 1157 1158 +3108 9 1153 1152 1157 1164 +3109 9 1153 1152 1157 1165 +3110 10 1156 1152 1153 1154 +3111 11 1156 1152 1153 1175 +3112 12 1156 1152 1157 1158 +3113 13 1156 1152 1157 1164 +3114 13 1156 1152 1157 1165 +3115 14 1157 1152 1153 1154 +3116 15 1157 1152 1153 1175 +3117 16 1152 1153 1175 1176 +3118 17 1152 1153 1175 1179 +3119 18 1154 1153 1175 1176 +3120 19 1154 1153 1175 1179 +3121 67 1152 1157 1158 1159 +3122 21 1152 1157 1158 1166 +3123 21 1152 1157 1158 1167 +3124 68 1164 1157 1158 1159 +3125 23 1164 1157 1158 1166 +3126 23 1164 1157 1158 1167 +3127 68 1165 1157 1158 1159 +3128 23 1165 1157 1158 1166 +3129 23 1165 1157 1158 1167 +3130 153 1157 1158 1159 1160 +3131 68 1157 1158 1159 1168 +3132 68 1157 1158 1159 1169 +3133 154 1166 1158 1159 1160 +3134 23 1166 1158 1159 1168 +3135 23 1166 1158 1159 1169 +3136 154 1167 1158 1159 1160 +3137 23 1167 1158 1159 1168 +3138 23 1167 1158 1159 1169 +3139 155 1158 1159 1160 1161 +3140 156 1158 1159 1160 1170 +3141 157 1168 1159 1160 1161 +3142 158 1168 1159 1160 1170 +3143 157 1169 1159 1160 1161 +3144 158 1169 1159 1160 1170 +3145 159 1159 1160 1161 1162 +3146 159 1159 1160 1161 1163 +3147 160 1170 1160 1161 1162 +3148 160 1170 1160 1161 1163 +3149 160 1160 1161 1162 1171 +3150 160 1160 1161 1162 1172 +3151 160 1160 1161 1163 1173 +3152 160 1160 1161 1163 1174 +3153 160 1162 1161 1163 1173 +3154 160 1162 1161 1163 1174 +3155 160 1163 1161 1162 1171 +3156 160 1163 1161 1162 1172 +3157 26 1153 1175 1176 1177 +3158 27 1153 1175 1176 1180 +3159 28 1153 1175 1176 1181 +3160 29 1179 1175 1176 1177 +3161 30 1179 1175 1176 1180 +3162 31 1179 1175 1176 1181 +3163 32 1175 1176 1177 1178 +3164 33 1175 1176 1177 1194 +3165 81 1175 1176 1181 1182 +3166 35 1175 1176 1181 1185 +3167 35 1175 1176 1181 1186 +3168 82 1177 1176 1181 1182 +3169 9 1177 1176 1181 1185 +3170 9 1177 1176 1181 1186 +3171 10 1180 1176 1177 1178 +3172 11 1180 1176 1177 1194 +3173 83 1180 1176 1181 1182 +3174 13 1180 1176 1181 1185 +3175 13 1180 1176 1181 1186 +3176 14 1181 1176 1177 1178 +3177 15 1181 1176 1177 1194 +3178 16 1176 1177 1194 1195 +3179 17 1176 1177 1194 1198 +3180 18 1178 1177 1194 1195 +3181 19 1178 1177 1194 1198 +3182 84 1176 1181 1182 1183 +3183 84 1176 1181 1182 1184 +3184 83 1176 1181 1182 1187 +3185 55 1185 1181 1182 1183 +3186 55 1185 1181 1182 1184 +3187 13 1185 1181 1182 1187 +3188 55 1186 1181 1182 1183 +3189 55 1186 1181 1182 1184 +3190 13 1186 1181 1182 1187 +3191 55 1181 1182 1183 1188 +3192 55 1181 1182 1183 1189 +3193 55 1181 1182 1183 1190 +3194 55 1181 1182 1184 1191 +3195 55 1181 1182 1184 1192 +3196 55 1181 1182 1184 1193 +3197 55 1183 1182 1184 1191 +3198 55 1183 1182 1184 1192 +3199 55 1183 1182 1184 1193 +3200 55 1184 1182 1183 1188 +3201 55 1184 1182 1183 1189 +3202 55 1184 1182 1183 1190 +3203 13 1187 1182 1183 1188 +3204 13 1187 1182 1183 1189 +3205 13 1187 1182 1183 1190 +3206 13 1187 1182 1184 1191 +3207 13 1187 1182 1184 1192 +3208 13 1187 1182 1184 1193 +3209 26 1177 1194 1195 1196 +3210 27 1177 1194 1195 1199 +3211 28 1177 1194 1195 1200 +3212 29 1198 1194 1195 1196 +3213 30 1198 1194 1195 1199 +3214 31 1198 1194 1195 1200 +3215 32 1194 1195 1196 1197 +3216 33 1194 1195 1196 1218 +3217 34 1194 1195 1200 1201 +3218 35 1194 1195 1200 1207 +3219 35 1194 1195 1200 1208 +3220 8 1196 1195 1200 1201 +3221 9 1196 1195 1200 1207 +3222 9 1196 1195 1200 1208 +3223 10 1199 1195 1196 1197 +3224 11 1199 1195 1196 1218 +3225 12 1199 1195 1200 1201 +3226 13 1199 1195 1200 1207 +3227 13 1199 1195 1200 1208 +3228 14 1200 1195 1196 1197 +3229 15 1200 1195 1196 1218 +3230 85 1195 1196 1218 1219 +3231 17 1195 1196 1218 1222 +3232 86 1197 1196 1218 1219 +3233 19 1197 1196 1218 1222 +3234 67 1195 1200 1201 1202 +3235 21 1195 1200 1201 1209 +3236 21 1195 1200 1201 1210 +3237 68 1207 1200 1201 1202 +3238 23 1207 1200 1201 1209 +3239 23 1207 1200 1201 1210 +3240 68 1208 1200 1201 1202 +3241 23 1208 1200 1201 1209 +3242 23 1208 1200 1201 1210 +3243 153 1200 1201 1202 1203 +3244 68 1200 1201 1202 1211 +3245 68 1200 1201 1202 1212 +3246 154 1209 1201 1202 1203 +3247 23 1209 1201 1202 1211 +3248 23 1209 1201 1202 1212 +3249 154 1210 1201 1202 1203 +3250 23 1210 1201 1202 1211 +3251 23 1210 1201 1202 1212 +3252 155 1201 1202 1203 1204 +3253 156 1201 1202 1203 1213 +3254 157 1211 1202 1203 1204 +3255 158 1211 1202 1203 1213 +3256 157 1212 1202 1203 1204 +3257 158 1212 1202 1203 1213 +3258 159 1202 1203 1204 1205 +3259 159 1202 1203 1204 1206 +3260 160 1213 1203 1204 1205 +3261 160 1213 1203 1204 1206 +3262 160 1203 1204 1205 1214 +3263 160 1203 1204 1205 1215 +3264 160 1203 1204 1206 1216 +3265 160 1203 1204 1206 1217 +3266 160 1205 1204 1206 1216 +3267 160 1205 1204 1206 1217 +3268 160 1206 1204 1205 1214 +3269 160 1206 1204 1205 1215 +3270 87 1196 1218 1219 1220 +3271 88 1196 1218 1219 1223 +3272 88 1196 1218 1219 1224 +3273 89 1222 1218 1219 1220 +3274 90 1222 1218 1219 1223 +3275 90 1222 1218 1219 1224 +3276 91 1218 1219 1220 1221 +3277 92 1218 1219 1220 1225 +3278 93 1223 1219 1220 1221 +3279 94 1223 1219 1220 1225 +3280 93 1224 1219 1220 1221 +3281 94 1224 1219 1220 1225 +3282 185 1219 1220 1225 1226 +3283 96 1219 1220 1225 1229 +3284 86 1221 1220 1225 1226 +3285 19 1221 1220 1225 1229 +3286 186 1220 1225 1226 1227 +3287 88 1220 1225 1226 1230 +3288 88 1220 1225 1226 1231 +3289 187 1229 1225 1226 1227 +3290 90 1229 1225 1226 1230 +3291 90 1229 1225 1226 1231 +3292 188 1225 1226 1227 1228 +3293 188 1225 1226 1227 1232 +3294 189 1230 1226 1227 1228 +3295 189 1230 1226 1227 1232 +3296 189 1231 1226 1227 1228 +3297 189 1231 1226 1227 1232 + +Impropers + +1 1 2 3 4 20 +2 2 4 3 2 20 +3 3 20 3 2 4 +4 4 3 20 21 24 +5 5 21 20 3 24 +6 6 24 20 3 21 +7 1 21 22 23 37 +8 2 23 22 21 37 +9 3 37 22 21 23 +10 7 27 28 29 30 +11 2 29 28 27 30 +12 3 30 28 27 29 +13 4 28 30 35 36 +14 6 35 30 28 36 +15 6 36 30 28 35 +16 4 22 37 38 41 +17 5 38 37 22 41 +18 6 41 37 22 38 +19 1 38 39 40 56 +20 2 40 39 38 56 +21 3 56 39 38 40 +22 4 39 56 57 60 +23 5 57 56 39 60 +24 6 60 56 39 57 +25 1 57 58 59 76 +26 2 59 58 57 76 +27 3 76 58 57 59 +28 8 62 63 64 65 +29 9 64 63 62 65 +30 9 65 63 62 64 +31 9 63 64 66 71 +32 9 66 64 63 71 +33 10 71 64 63 66 +34 9 63 65 67 72 +35 9 67 65 63 72 +36 10 72 65 63 67 +37 9 64 66 68 73 +38 9 68 66 64 73 +39 10 73 66 64 68 +40 9 65 67 68 74 +41 9 68 67 65 74 +42 10 74 67 65 68 +43 9 66 68 67 75 +44 9 67 68 66 75 +45 10 75 68 66 67 +46 4 58 76 77 80 +47 5 77 76 58 80 +48 6 80 76 58 77 +49 1 77 78 79 92 +50 2 79 78 77 92 +51 3 92 78 77 79 +52 4 78 92 93 96 +53 5 93 92 78 96 +54 6 96 92 78 93 +55 1 93 94 95 114 +56 2 95 94 93 114 +57 3 114 94 93 95 +58 4 94 114 115 118 +59 5 115 114 94 118 +60 6 118 114 94 115 +61 1 115 116 117 128 +62 2 117 116 115 128 +63 3 128 116 115 117 +64 4 116 128 129 132 +65 5 129 128 116 132 +66 6 132 128 116 129 +67 1 129 130 131 147 +68 2 131 130 129 147 +69 3 147 130 129 131 +70 4 130 147 148 151 +71 5 148 147 130 151 +72 6 151 147 130 148 +73 1 148 149 150 161 +74 2 150 149 148 161 +75 3 161 149 148 150 +76 4 149 161 162 165 +77 11 162 161 149 165 +78 6 165 161 149 162 +79 12 162 163 164 168 +80 2 164 163 162 168 +81 3 168 163 162 164 +82 4 163 168 169 172 +83 5 169 168 163 172 +84 6 172 168 163 169 +85 1 169 170 171 190 +86 2 171 170 169 190 +87 3 190 170 169 171 +88 4 170 190 191 194 +89 5 191 190 170 194 +90 6 194 190 170 191 +91 1 191 192 193 204 +92 2 193 192 191 204 +93 3 204 192 191 193 +94 4 192 204 205 208 +95 5 205 204 192 208 +96 6 208 204 192 205 +97 1 205 206 207 223 +98 2 207 206 205 223 +99 3 223 206 205 207 +100 4 206 223 224 227 +101 5 224 223 206 227 +102 6 227 223 206 224 +103 1 224 225 226 237 +104 2 226 225 224 237 +105 3 237 225 224 226 +106 4 225 237 238 241 +107 5 238 237 225 241 +108 6 241 237 225 238 +109 1 238 239 240 256 +110 2 240 239 238 256 +111 3 256 239 238 240 +112 4 239 256 257 260 +113 5 257 256 239 260 +114 6 260 256 239 257 +115 1 257 258 259 271 +116 2 259 258 257 271 +117 3 271 258 257 259 +118 13 263 264 265 266 +119 14 265 264 263 266 +120 14 266 264 263 265 +121 4 258 271 272 275 +122 5 272 271 258 275 +123 6 275 271 258 272 +124 1 272 273 274 287 +125 2 274 273 272 287 +126 3 287 273 272 274 +127 4 273 287 288 291 +128 5 288 287 273 291 +129 6 291 287 273 288 +130 1 288 289 290 302 +131 2 290 289 288 302 +132 15 302 289 288 290 +133 13 294 295 296 297 +134 14 296 295 294 297 +135 14 297 295 294 296 +136 16 289 302 303 309 +137 17 303 302 289 309 +138 18 309 302 289 303 +139 1 303 304 305 316 +140 2 305 304 303 316 +141 3 316 304 303 305 +142 4 304 316 317 320 +143 5 317 316 304 320 +144 6 320 316 304 317 +145 1 317 318 319 327 +146 2 319 318 317 327 +147 3 327 318 317 319 +148 4 318 327 328 331 +149 5 328 327 318 331 +150 6 331 327 318 328 +151 1 328 329 330 339 +152 2 330 329 328 339 +153 3 339 329 328 330 +154 13 333 334 335 336 +155 14 335 334 333 336 +156 14 336 334 333 335 +157 4 329 339 340 343 +158 5 340 339 329 343 +159 6 343 339 329 340 +160 1 340 341 342 353 +161 2 342 341 340 353 +162 3 353 341 340 342 +163 4 341 353 354 357 +164 5 354 353 341 357 +165 6 357 353 341 354 +166 1 354 355 356 372 +167 2 356 355 354 372 +168 3 372 355 354 356 +169 4 355 372 373 376 +170 5 373 372 355 376 +171 6 376 372 355 373 +172 1 373 374 375 387 +173 2 375 374 373 387 +174 3 387 374 373 375 +175 13 379 380 381 382 +176 14 381 380 379 382 +177 14 382 380 379 381 +178 4 374 387 388 391 +179 5 388 387 374 391 +180 6 391 387 374 388 +181 1 388 389 390 401 +182 2 390 389 388 401 +183 3 401 389 388 390 +184 7 393 394 395 396 +185 2 395 394 393 396 +186 3 396 394 393 395 +187 4 394 396 399 400 +188 6 399 396 394 400 +189 6 400 396 394 399 +190 4 389 401 402 405 +191 5 402 401 389 405 +192 6 405 401 389 402 +193 1 402 403 404 417 +194 2 404 403 402 417 +195 3 417 403 402 404 +196 4 403 417 418 421 +197 5 418 417 403 421 +198 6 421 417 403 418 +199 1 418 419 420 439 +200 2 420 419 418 439 +201 3 439 419 418 420 +202 4 419 439 440 443 +203 5 440 439 419 443 +204 6 443 439 419 440 +205 1 440 441 442 449 +206 2 442 441 440 449 +207 3 449 441 440 442 +208 4 441 449 450 453 +209 5 450 449 441 453 +210 6 453 449 441 450 +211 1 450 451 452 471 +212 2 452 451 450 471 +213 3 471 451 450 452 +214 4 451 471 472 475 +215 5 472 471 451 475 +216 6 475 471 451 472 +217 1 472 473 474 490 +218 2 474 473 472 490 +219 3 490 473 472 474 +220 4 473 490 491 494 +221 5 491 490 473 494 +222 6 494 490 473 491 +223 1 491 492 493 507 +224 2 493 492 491 507 +225 3 507 492 491 493 +226 7 497 498 499 500 +227 2 499 498 497 500 +228 3 500 498 497 499 +229 4 498 500 505 506 +230 6 505 500 498 506 +231 6 506 500 498 505 +232 4 492 507 508 511 +233 5 508 507 492 511 +234 6 511 507 492 508 +235 1 508 509 510 519 +236 2 510 509 508 519 +237 3 519 509 508 510 +238 13 513 514 515 516 +239 14 515 514 513 516 +240 14 516 514 513 515 +241 4 509 519 520 523 +242 5 520 519 509 523 +243 6 523 519 509 520 +244 1 520 521 522 541 +245 2 522 521 520 541 +246 3 541 521 520 522 +247 4 521 541 542 545 +248 5 542 541 521 545 +249 6 545 541 521 542 +250 1 542 543 544 556 +251 2 544 543 542 556 +252 3 556 543 542 544 +253 13 548 549 550 551 +254 14 550 549 548 551 +255 14 551 549 548 550 +256 4 543 556 557 560 +257 11 557 556 543 560 +258 6 560 556 543 557 +259 12 557 558 559 563 +260 2 559 558 557 563 +261 3 563 558 557 559 +262 4 558 563 564 567 +263 5 564 563 558 567 +264 6 567 563 558 564 +265 1 564 565 566 582 +266 2 566 565 564 582 +267 15 582 565 564 566 +268 16 565 582 583 589 +269 17 583 582 565 589 +270 18 589 582 565 583 +271 1 583 584 585 596 +272 2 585 584 583 596 +273 15 596 584 583 585 +274 16 584 596 597 603 +275 17 597 596 584 603 +276 18 603 596 584 597 +277 1 597 598 599 610 +278 2 599 598 597 610 +279 3 610 598 597 599 +280 4 598 610 611 614 +281 5 611 610 598 614 +282 6 614 610 598 611 +283 1 611 612 613 622 +284 2 613 612 611 622 +285 3 622 612 611 613 +286 13 616 617 618 619 +287 14 618 617 616 619 +288 14 619 617 616 618 +289 4 612 622 623 626 +290 5 623 622 612 626 +291 6 626 622 612 623 +292 1 623 624 625 639 +293 2 625 624 623 639 +294 3 639 624 623 625 +295 7 629 630 631 632 +296 2 631 630 629 632 +297 3 632 630 629 631 +298 4 630 632 637 638 +299 6 637 632 630 638 +300 6 638 632 630 637 +301 4 624 639 640 643 +302 5 640 639 624 643 +303 6 643 639 624 640 +304 1 640 641 642 656 +305 2 642 641 640 656 +306 3 656 641 640 642 +307 7 646 647 648 649 +308 2 648 647 646 649 +309 3 649 647 646 648 +310 4 647 649 654 655 +311 6 654 649 647 655 +312 6 655 649 647 654 +313 4 641 656 657 660 +314 5 657 656 641 660 +315 6 660 656 641 657 +316 1 657 658 659 680 +317 2 659 658 657 680 +318 3 680 658 657 659 +319 19 664 665 666 675 +320 20 666 665 664 675 +321 21 675 665 664 666 +322 22 665 666 667 668 +323 22 667 666 665 668 +324 22 668 666 665 667 +325 20 666 667 676 677 +326 21 676 667 666 677 +327 21 677 667 666 676 +328 20 666 668 678 679 +329 21 678 668 666 679 +330 21 679 668 666 678 +331 4 658 680 681 684 +332 5 681 680 658 684 +333 6 684 680 658 681 +334 1 681 682 683 699 +335 2 683 682 681 699 +336 3 699 682 681 683 +337 4 682 699 700 703 +338 5 700 699 682 703 +339 6 703 699 682 700 +340 1 700 701 702 718 +341 2 702 701 700 718 +342 3 718 701 700 702 +343 4 701 718 719 722 +344 5 719 718 701 722 +345 6 722 718 701 719 +346 1 719 720 721 738 +347 2 721 720 719 738 +348 3 738 720 719 721 +349 8 724 725 726 727 +350 9 726 725 724 727 +351 9 727 725 724 726 +352 9 725 726 728 733 +353 9 728 726 725 733 +354 10 733 726 725 728 +355 9 725 727 729 734 +356 9 729 727 725 734 +357 10 734 727 725 729 +358 9 726 728 730 735 +359 9 730 728 726 735 +360 10 735 728 726 730 +361 9 727 729 730 736 +362 9 730 729 727 736 +363 10 736 729 727 730 +364 9 728 730 729 737 +365 9 729 730 728 737 +366 10 737 730 728 729 +367 4 720 738 739 742 +368 5 739 738 720 742 +369 6 742 738 720 739 +370 1 739 740 741 748 +371 2 741 740 739 748 +372 3 748 740 739 741 +373 4 740 748 749 752 +374 11 749 748 740 752 +375 6 752 748 740 749 +376 12 749 750 751 755 +377 2 751 750 749 755 +378 3 755 750 749 751 +379 4 750 755 756 759 +380 5 756 755 750 759 +381 6 759 755 750 756 +382 1 756 757 758 777 +383 2 758 757 756 777 +384 3 777 757 756 758 +385 4 757 777 778 781 +386 5 778 777 757 781 +387 6 781 777 757 778 +388 1 778 779 780 794 +389 2 780 779 778 794 +390 3 794 779 778 780 +391 7 784 785 786 787 +392 2 786 785 784 787 +393 3 787 785 784 786 +394 4 785 787 792 793 +395 6 792 787 785 793 +396 6 793 787 785 792 +397 4 779 794 795 798 +398 5 795 794 779 798 +399 6 798 794 779 795 +400 1 795 796 797 813 +401 2 797 796 795 813 +402 3 813 796 795 797 +403 4 796 813 814 817 +404 5 814 813 796 817 +405 6 817 813 796 814 +406 1 814 815 816 828 +407 2 816 815 814 828 +408 3 828 815 814 816 +409 13 820 821 822 823 +410 14 822 821 820 823 +411 14 823 821 820 822 +412 4 815 828 829 832 +413 5 829 828 815 832 +414 6 832 828 815 829 +415 1 829 830 831 840 +416 2 831 830 829 840 +417 3 840 830 829 831 +418 13 834 835 836 837 +419 14 836 835 834 837 +420 14 837 835 834 836 +421 4 830 840 841 844 +422 11 841 840 830 844 +423 6 844 840 830 841 +424 12 841 842 843 847 +425 2 843 842 841 847 +426 3 847 842 841 843 +427 4 842 847 848 851 +428 5 848 847 842 851 +429 6 851 847 842 848 +430 1 848 849 850 871 +431 2 850 849 848 871 +432 3 871 849 848 850 +433 19 855 856 857 866 +434 20 857 856 855 866 +435 21 866 856 855 857 +436 22 856 857 858 859 +437 22 858 857 856 859 +438 22 859 857 856 858 +439 20 857 858 867 868 +440 21 867 858 857 868 +441 21 868 858 857 867 +442 20 857 859 869 870 +443 21 869 859 857 870 +444 21 870 859 857 869 +445 4 849 871 872 875 +446 5 872 871 849 875 +447 6 875 871 849 872 +448 1 872 873 874 885 +449 2 874 873 872 885 +450 3 885 873 872 874 +451 4 873 885 886 889 +452 5 886 885 873 889 +453 6 889 885 873 886 +454 1 886 887 888 904 +455 2 888 887 886 904 +456 3 904 887 886 888 +457 4 887 904 905 908 +458 5 905 904 887 908 +459 6 908 904 887 905 +460 1 905 906 907 915 +461 2 907 906 905 915 +462 3 915 906 905 907 +463 4 906 915 916 919 +464 5 916 915 906 919 +465 6 919 915 906 916 +466 1 916 917 918 927 +467 2 918 917 916 927 +468 3 927 917 916 918 +469 13 921 922 923 924 +470 14 923 922 921 924 +471 14 924 922 921 923 +472 4 917 927 928 931 +473 5 928 927 917 931 +474 6 931 927 917 928 +475 1 928 929 930 948 +476 2 930 929 928 948 +477 3 948 929 928 930 +478 8 933 934 935 936 +479 9 935 934 933 936 +480 9 936 934 933 935 +481 9 934 935 937 943 +482 9 937 935 934 943 +483 10 943 935 934 937 +484 9 934 936 938 944 +485 9 938 936 934 944 +486 10 944 936 934 938 +487 9 935 937 939 945 +488 9 939 937 935 945 +489 10 945 937 935 939 +490 9 936 938 939 946 +491 9 939 938 936 946 +492 10 946 938 936 939 +493 9 937 939 938 940 +494 9 938 939 937 940 +495 23 940 939 937 938 +496 4 929 948 949 952 +497 5 949 948 929 952 +498 6 952 948 929 949 +499 1 949 950 951 962 +500 2 951 950 949 962 +501 3 962 950 949 951 +502 7 954 955 956 957 +503 2 956 955 954 957 +504 3 957 955 954 956 +505 4 955 957 960 961 +506 6 960 957 955 961 +507 6 961 957 955 960 +508 4 950 962 963 966 +509 5 963 962 950 966 +510 6 966 962 950 963 +511 1 963 964 965 981 +512 2 965 964 963 981 +513 3 981 964 963 965 +514 4 964 981 982 985 +515 5 982 981 964 985 +516 6 985 981 964 982 +517 1 982 983 984 998 +518 2 984 983 982 998 +519 3 998 983 982 984 +520 7 988 989 990 991 +521 2 990 989 988 991 +522 3 991 989 988 990 +523 4 989 991 996 997 +524 6 996 991 989 997 +525 6 997 991 989 996 +526 4 983 998 999 1002 +527 5 999 998 983 1002 +528 6 1002 998 983 999 +529 1 999 1000 1001 1020 +530 2 1001 1000 999 1020 +531 3 1020 1000 999 1001 +532 4 1000 1020 1021 1024 +533 5 1021 1020 1000 1024 +534 6 1024 1020 1000 1021 +535 1 1021 1022 1023 1035 +536 2 1023 1022 1021 1035 +537 3 1035 1022 1021 1023 +538 13 1027 1028 1029 1030 +539 14 1029 1028 1027 1030 +540 14 1030 1028 1027 1029 +541 4 1022 1035 1036 1039 +542 5 1036 1035 1022 1039 +543 6 1039 1035 1022 1036 +544 1 1036 1037 1038 1046 +545 2 1038 1037 1036 1046 +546 3 1046 1037 1036 1038 +547 4 1037 1046 1047 1050 +548 5 1047 1046 1037 1050 +549 6 1050 1046 1037 1047 +550 1 1047 1048 1049 1060 +551 2 1049 1048 1047 1060 +552 3 1060 1048 1047 1049 +553 4 1048 1060 1061 1064 +554 5 1061 1060 1048 1064 +555 6 1064 1060 1048 1061 +556 1 1061 1062 1063 1079 +557 2 1063 1062 1061 1079 +558 3 1079 1062 1061 1063 +559 4 1062 1079 1080 1083 +560 5 1080 1079 1062 1083 +561 6 1083 1079 1062 1080 +562 1 1080 1081 1082 1097 +563 2 1082 1081 1080 1097 +564 3 1097 1081 1080 1082 +565 24 1085 1086 1087 1088 +566 25 1087 1086 1085 1088 +567 26 1088 1086 1085 1087 +568 27 1086 1087 1089 1093 +569 28 1089 1087 1086 1093 +570 29 1093 1087 1086 1089 +571 26 1086 1088 1090 1094 +572 25 1090 1088 1086 1094 +573 30 1094 1088 1086 1090 +574 31 1087 1089 1090 1095 +575 31 1090 1089 1087 1095 +576 32 1095 1089 1087 1090 +577 27 1088 1090 1089 1096 +578 28 1089 1090 1088 1096 +579 29 1096 1090 1088 1089 +580 4 1081 1097 1098 1101 +581 5 1098 1097 1081 1101 +582 6 1101 1097 1081 1098 +583 1 1098 1099 1100 1116 +584 2 1100 1099 1098 1116 +585 3 1116 1099 1098 1100 +586 4 1099 1116 1117 1120 +587 5 1117 1116 1099 1120 +588 6 1120 1116 1099 1117 +589 1 1117 1118 1119 1132 +590 2 1119 1118 1117 1132 +591 3 1132 1118 1117 1119 +592 4 1118 1132 1133 1136 +593 5 1133 1132 1118 1136 +594 6 1136 1132 1118 1133 +595 1 1133 1134 1135 1151 +596 2 1135 1134 1133 1151 +597 3 1151 1134 1133 1135 +598 4 1134 1151 1152 1155 +599 5 1152 1151 1134 1155 +600 6 1155 1151 1134 1152 +601 1 1152 1153 1154 1175 +602 2 1154 1153 1152 1175 +603 3 1175 1153 1152 1154 +604 19 1159 1160 1161 1170 +605 20 1161 1160 1159 1170 +606 21 1170 1160 1159 1161 +607 22 1160 1161 1162 1163 +608 22 1162 1161 1160 1163 +609 22 1163 1161 1160 1162 +610 20 1161 1162 1171 1172 +611 21 1171 1162 1161 1172 +612 21 1172 1162 1161 1171 +613 20 1161 1163 1173 1174 +614 21 1173 1163 1161 1174 +615 21 1174 1163 1161 1173 +616 4 1153 1175 1176 1179 +617 5 1176 1175 1153 1179 +618 6 1179 1175 1153 1176 +619 1 1176 1177 1178 1194 +620 2 1178 1177 1176 1194 +621 3 1194 1177 1176 1178 +622 4 1177 1194 1195 1198 +623 5 1195 1194 1177 1198 +624 6 1198 1194 1177 1195 +625 1 1195 1196 1197 1218 +626 2 1197 1196 1195 1218 +627 3 1218 1196 1195 1197 +628 19 1202 1203 1204 1213 +629 20 1204 1203 1202 1213 +630 21 1213 1203 1202 1204 +631 22 1203 1204 1205 1206 +632 22 1205 1204 1203 1206 +633 22 1206 1204 1203 1205 +634 20 1204 1205 1214 1215 +635 21 1214 1205 1204 1215 +636 21 1215 1205 1204 1214 +637 20 1204 1206 1216 1217 +638 21 1216 1206 1204 1217 +639 21 1217 1206 1204 1216 +640 4 1196 1218 1219 1222 +641 11 1219 1218 1196 1222 +642 6 1222 1218 1196 1219 +643 12 1219 1220 1221 1225 +644 2 1221 1220 1219 1225 +645 3 1225 1220 1219 1221 +646 4 1220 1225 1226 1229 +647 11 1226 1225 1220 1229 +648 6 1229 1225 1220 1226 +649 33 1226 1227 1228 1232 +650 14 1228 1227 1226 1232 +651 14 1232 1227 1226 1228 + +Bond Coeffs + +1 1.448 381.3 -972.315 1446.3185625 +2 1.015 461.9 -1177.845 1752.0444375 +3 1.509 345.0 -879.75 1308.628125 +4 1.112 341.0 -869.55 1293.455625 +5 1.525 323.0 -823.65 1225.179375 +6 1.2255 662.0 -1688.1 2511.04875 +7 1.345 482.0 -1229.1 1828.28625 +8 1.525 323.0 -823.65 1225.179375 +9 1.112 341.0 -869.55 1293.455625 +10 1.805 215.8 -550.29 818.556375 +11 1.437 375.0 -956.25 1422.421875 +12 1.028 487.0 -1241.85 1847.251875 +13 1.509 345.0 -879.75 1308.628125 +14 1.525 323.0 -823.65 1225.179375 +15 1.499 453.2 -1155.66 1719.04425 +16 1.3887 471.9 -1203.345 1789.9756875 +17 1.1 370.5 -944.775 1405.3528125 +18 1.448 381.3 -972.315 1446.3185625 +19 1.015 461.9 -1177.845 1752.0444375 +20 1.413 410.0 -1045.5 1555.18125 +21 0.947 548.9 -1399.695 2082.0463125 +22 1.437 375.0 -956.25 1422.421875 +23 1.509 345.0 -879.75 1308.628125 +24 1.112 341.0 -869.55 1293.455625 +25 1.509 345.0 -879.75 1308.628125 +26 1.2553 705.0 -1797.75 2674.153125 +27 1.345 482.0 -1229.1 1828.28625 +28 1.437 375.0 -956.25 1422.421875 +29 1.437 375.0 -956.25 1422.421875 +30 1.525 323.0 -823.65 1225.179375 +31 1.5247 323.0 -823.65 1225.179375 +32 1.112 341.0 -869.55 1293.455625 +33 1.112 341.0 -869.55 1293.455625 +34 1.413 410.0 -1045.5 1555.18125 +35 1.446 374.8 -955.74 1421.66325 +36 1.325 491.4 -1253.07 1863.941625 +37 1.028 487.0 -1241.85 1847.251875 +38 1.355 431.6 -1100.58 1637.11275 +39 0.947 548.9 -1399.695 2082.0463125 +40 1.493 453.2 -1155.66 1719.04425 +41 1.373 653.9 -1667.445 2480.3244375 +42 1.371 539.6 -1375.98 2046.77025 +43 1.352 653.9 -1667.445 2480.3244375 +44 1.03 467.6 -1192.38 1773.66525 +45 1.081 370.5 -944.775 1405.3528125 +46 1.081 370.5 -944.775 1405.3528125 +47 1.509 345.0 -879.75 1308.628125 +48 0.9572 556.85 -1419.9675 2112.20165625 + +Angle Coeffs + +1 0 0 108.5 43.2 -34.6524874495 7.94176512195 -5.68787029215 10.2422873821 +2 0 0 105.4 43.2 -34.6524874495 7.94176512195 -5.68787029215 10.2422873821 +3 0 0 110.7 75.2 -60.3209966714 13.8245541012 -9.90110754559 17.8291669244 +4 0 0 109.3 59.0 -47.3263138778 10.8463921804 -7.76815618604 13.9883091561 +5 0 0 110.7 75.2 -60.3209966714 13.8245541012 -9.90110754559 17.8291669244 +6 0 0 109.5 39.0 -31.2834956141 7.16964906843 -5.13488290263 9.24650944218 +7 0 0 110.6 58.0 -46.5241729646 10.6625550248 -7.63649252187 13.7512191704 +8 0 0 112.8 42.0 -33.6899183537 7.72116053523 -5.52987389514 9.95777939927 +9 1 0 122.4 80.0 -64.1712730547 14.7069724481 -10.5330931336 18.9671988558 +10 1 0 113.4 70.0 -56.1498639228 12.868600892 -9.21645649191 16.5962989988 +11 1 0 124.2 77.0 -61.7648503151 14.1554609813 -10.1381021411 18.2559288987 +12 0 0 111.0 48.2 -38.6631920154 8.86095089995 -6.346188613 11.4277373106 +13 0 0 110.7 42.0 -33.6899183537 7.72116053523 -5.52987389514 9.95777939927 +14 0 0 110.7 42.0 -33.6899183537 7.72116053523 -5.52987389514 9.95777939927 +15 0 0 107.8 40.0 -32.0856365273 7.35348622403 -5.2665465668 9.48359942788 +16 0 0 110.1 53.2 -42.6738965813 9.78013667795 -7.00450693385 12.6131872391 +17 0 0 110.8 53.2 -42.6738965813 9.78013667795 -7.00450693385 12.6131872391 +18 0 0 95.9 60.4 -48.4493111563 11.1037641983 -7.95248531587 14.3202351361 +19 0 0 108.0 53.2 -42.6738965813 9.78013667795 -7.00450693385 12.6131872391 +20 1 0 122.0 50.0 -40.1070456592 9.19185778003 -6.5831832085 11.8544992848 +21 1 0 121.0 36.0 -28.8770728746 6.61813760162 -4.73989191012 8.53523948509 +22 1 0 117.0 32.0 -25.6685092219 5.88278897922 -4.21323725344 7.5868795423 +23 0 0 109.6 61.0 -48.9305957042 11.2140664916 -8.03148351438 14.4624891275 +24 0 0 111.0 55.0 -44.1177502251 10.111043558 -7.24150152936 13.0399492133 +25 0 0 111.3 54.0 -43.3156093119 9.92720640244 -7.10983786519 12.8028592276 +26 0 0 110.6 47.6 -38.1819074675 8.75064860659 -6.2671904145 11.2854833192 +27 0 0 109.5 39.0 -31.2834956141 7.16964906843 -5.13488290263 9.24650944218 +28 1 0 122.4 80.0 -64.1712730547 14.7069724481 -10.5330931336 18.9671988558 +29 1 0 113.4 70.0 -56.1498639228 12.868600892 -9.21645649191 16.5962989988 +30 1 0 123.0 29.5 -23.6631569389 5.42319609022 -3.88407809302 6.99415457806 +31 0 0 111.3 54.0 -43.3156093119 9.92720640244 -7.10983786519 12.8028592276 +32 0 0 110.6 58.0 -46.5241729646 10.6625550248 -7.63649252187 13.7512191704 +33 0 0 110.7 42.0 -33.6899183537 7.72116053523 -5.52987389514 9.95777939927 +34 0 0 110.2 48.2 -38.6631920154 8.86095089995 -6.346188613 11.4277373106 +35 0 0 110.2 48.2 -38.6631920154 8.86095089995 -6.346188613 11.4277373106 +36 0 0 110.6 38.9 -31.2032815228 7.15126535287 -5.12171653622 9.22280044361 +37 0 0 109.3 39.6 -31.7647801621 7.27995136179 -5.21388110114 9.3887634336 +38 1 0 122.3 33.8 -27.1123628656 6.2136958593 -4.45023184895 8.01364151656 +39 1 0 121.7 54.7 -43.8771079511 10.0558924114 -7.2020024301 12.9688222176 +40 1 0 120.0 35.3 -28.3155742354 6.4894515927 -4.6477273452 8.3692764951 +41 0 0 111.0 48.2 -38.6631920154 8.86095089995 -6.346188613 11.4277373106 +42 0 0 109.5 56.1 -45.0001052296 10.3132644292 -7.38633155994 13.3007481976 +43 0 0 109.3 59.0 -47.3263138778 10.8463921804 -7.76815618604 13.9883091561 +44 0 0 110.9 43.2 -34.6524874495 7.94176512195 -5.68787029215 10.2422873821 +45 0 0 107.0 43.5 -34.8931297235 7.99691626863 -5.7273693914 10.3134143778 +46 0 0 107.5 59.7 -47.887812517 10.9750781894 -7.86032075095 14.1542721461 +47 0 0 107.5 59.7 -47.887812517 10.9750781894 -7.86032075095 14.1542721461 +48 0 0 110.0 59.0 -47.3263138778 10.8463921804 -7.76815618604 13.9883091561 +49 0 0 106.8 54.0 -43.3156093119 9.92720640244 -7.10983786519 12.8028592276 +50 0 0 111.0 48.2 -38.6631920154 8.86095089995 -6.346188613 11.4277373106 +51 1 0 122.0 50.0 -40.1070456592 9.19185778003 -6.5831832085 11.8544992848 +52 1 0 117.0 32.0 -25.6685092219 5.88278897922 -4.21323725344 7.5868795423 +53 0 0 109.8 55.0 -44.1177502251 10.111043558 -7.24150152936 13.0399492133 +54 0 0 111.0 55.0 -44.1177502251 10.111043558 -7.24150152936 13.0399492133 +55 0 0 109.5 39.0 -31.2834956141 7.16964906843 -5.13488290263 9.24650944218 +56 0 0 107.6 40.0 -32.0856365273 7.35348622403 -5.2665465668 9.48359942788 +57 1 0 122.4 80.0 -64.1712730547 14.7069724481 -10.5330931336 18.9671988558 +58 1 0 113.4 70.0 -56.1498639228 12.868600892 -9.21645649191 16.5962989988 +59 0 0 110.6 47.6 -38.1819074675 8.75064860659 -6.2671904145 11.2854833192 +60 0 0 109.5 39.0 -31.2834956141 7.16964906843 -5.13488290263 9.24650944218 +61 1 0 122.4 80.0 -64.1712730547 14.7069724481 -10.5330931336 18.9671988558 +62 1 0 134.0 57.6 -46.2033165993 10.5890201626 -7.5838270562 13.6563831761 +63 1 0 113.4 70.0 -56.1498639228 12.868600892 -9.21645649191 16.5962989988 +64 1 0 124.2 77.0 -61.7648503151 14.1554609813 -10.1381021411 18.2559288987 +65 1 0 122.0 50.0 -40.1070456592 9.19185778003 -6.5831832085 11.8544992848 +66 1 0 122.0 50.0 -40.1070456592 9.19185778003 -6.5831832085 11.8544992848 +67 1 0 112.5 54.7 -43.8771079511 10.0558924114 -7.2020024301 12.9688222176 +68 0 0 109.6 61.0 -48.9305957042 11.2140664916 -8.03148351438 14.4624891275 +69 0 0 111.0 55.0 -44.1177502251 10.111043558 -7.24150152936 13.0399492133 +70 0 0 104.0 54.0 -43.3156093119 9.92720640244 -7.10983786519 12.8028592276 +71 0 0 110.6 58.0 -46.5241729646 10.6625550248 -7.63649252187 13.7512191704 +72 0 0 112.8 42.0 -33.6899183537 7.72116053523 -5.52987389514 9.95777939927 +73 0 0 104.0 48.2 -38.6631920154 8.86095089995 -6.346188613 11.4277373106 +74 0 0 110.7 42.0 -33.6899183537 7.72116053523 -5.52987389514 9.95777939927 +75 0 0 110.7 42.0 -33.6899183537 7.72116053523 -5.52987389514 9.95777939927 +76 0 0 107.8 40.0 -32.0856365273 7.35348622403 -5.2665465668 9.48359942788 +77 0 0 104.0 48.2 -38.6631920154 8.86095089995 -6.346188613 11.4277373106 +78 0 0 104.0 54.0 -43.3156093119 9.92720640244 -7.10983786519 12.8028592276 +79 0 0 111.0 55.0 -44.1177502251 10.111043558 -7.24150152936 13.0399492133 +80 0 0 110.7 42.0 -33.6899183537 7.72116053523 -5.52987389514 9.95777939927 +81 0 0 107.8 40.0 -32.0856365273 7.35348622403 -5.2665465668 9.48359942788 +82 0 0 107.5 59.7 -47.887812517 10.9750781894 -7.86032075095 14.1542721461 +83 0 0 108.9 59.0 -47.3263138778 10.8463921804 -7.76815618604 13.9883091561 +84 0 0 106.8 54.0 -43.3156093119 9.92720640244 -7.10983786519 12.8028592276 +85 0 0 110.6 47.6 -38.1819074675 8.75064860659 -6.2671904145 11.2854833192 +86 0 0 110.6 47.6 -38.1819074675 8.75064860659 -6.2671904145 11.2854833192 +87 0 0 109.5 56.1 -45.0001052296 10.3132644292 -7.38633155994 13.3007481976 +88 0 0 111.0 54.6 -43.7968938598 10.0375086958 -7.18883606369 12.9451132191 +89 1 0 120.4 52.5 -42.1123979421 9.65145066903 -6.91234236893 12.4472242491 +90 1 0 122.4 13.7 -10.9893305106 2.51856903173 -1.80379219913 3.24813280405 +91 1 0 120.5 41.7 -33.4492760797 7.66600938855 -5.49037479589 9.88665240356 +92 1 0 120.0 28.8 -23.1016582997 5.2945100813 -3.7919135281 6.82819158807 +93 1 0 120.0 29.5 -23.6631569389 5.42319609022 -3.88407809302 6.99415457806 +94 1 0 120.0 43.2 -34.6524874495 7.94176512195 -5.68787029215 10.2422873821 +95 0 0 109.0 25.9 -20.7754496514 4.76138233006 -3.41008890201 6.14063062955 +96 0 0 112.7 38.8 -31.1230674315 7.13288163731 -5.1085501698 9.19909144504 +97 0 0 109.5 39.6 -31.7647801621 7.27995136179 -5.21388110114 9.3887634336 +98 1 0 122.0 36.0 -28.8770728746 6.61813760162 -4.73989191012 8.53523948509 +99 1 0 131.0 36.0 -28.8770728746 6.61813760162 -4.73989191012 8.53523948509 +100 1 0 104.7 47.5 -38.1016933762 8.73226489103 -6.25402404808 11.2617743206 +101 1 0 110.8 86.3 -69.2247608077 15.8651465283 -11.3625742179 20.4608657656 +102 1 0 125.5 35.3 -28.3155742354 6.4894515927 -4.6477273452 8.3692764951 +103 1 0 125.5 35.3 -28.3155742354 6.4894515927 -4.6477273452 8.3692764951 +104 1 0 128.0 35.3 -28.3155742354 6.4894515927 -4.6477273452 8.3692764951 +105 1 0 122.5 38.1 -30.5615687923 7.00419562839 -5.01638560488 9.03312845505 +106 1 0 110.3 28.8 -23.1016582997 5.2945100813 -3.7919135281 6.82819158807 +107 1 0 122.5 38.1 -30.5615687923 7.00419562839 -5.01638560488 9.03312845505 +108 0 0 109.6 61.0 -48.9305957042 11.2140664916 -8.03148351438 14.4624891275 +109 0 0 109.5 39.0 -31.2834956141 7.16964906843 -5.13488290263 9.24650944218 +110 1 0 122.4 80.0 -64.1712730547 14.7069724481 -10.5330931336 18.9671988558 +111 0 1 108.5 48.7 -39.064262472 8.95286947775 -6.41202044508 11.5462823034 + +Dihedral Coeffs + +1 3 0.6195 1 0.0 -0.2025 2 180.0 0.0175 3 0.0 +2 3 0.0 1 0.0 -0.0405 2 180.0 0.185 3 0.0 +3 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +4 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +5 3 -0.1985 1 0.0 1.098 2 180.0 -0.1855 3 0.0 +6 3 0.061 1 0.0 0.0455 2 180.0 0.012 3 0.0 +7 3 0.0 1 0.0 0.0 2 180.0 0.25 3 0.0 +8 3 1.2615 1 0.0 0.4655 2 180.0 -0.205 3 0.0 +9 3 0.0 1 0.0 0.0 2 180.0 0.09 3 0.0 +10 3 0.0 1 0.0 0.0 2 180.0 0.1175 3 0.0 +11 3 0.0 1 0.0 0.0 2 180.0 -0.005 3 0.0 +12 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +13 3 0.0 1 0.0 0.0 2 180.0 0.1495 3 0.0 +14 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +15 3 0.2235 1 0.0 0.8535 2 180.0 -0.671 3 0.0 +16 3 -0.5 1 0.0 1.0 2 180.0 1.0 3 0.0 +17 3 0.0 1 0.0 0.5 2 180.0 0.4 3 0.0 +18 3 0.5 1 0.0 1.125 2 180.0 -1.125 3 0.0 +19 3 0.0 1 0.0 0.5 2 180.0 -0.275 3 0.0 +20 3 0.125 1 0.0 0.08 2 180.0 -0.9025 3 0.0 +21 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +22 3 0.0 1 0.0 0.0 2 180.0 0.2375 3 0.0 +23 3 0.0 1 0.0 0.0 2 180.0 0.1495 3 0.0 +24 3 -0.5305 1 0.0 0.066 2 180.0 0.165 3 0.0 +25 3 0.0 1 0.0 0.0 2 180.0 0.33 3 0.0 +26 3 0.397 1 0.0 -0.3195 2 180.0 0.36 3 0.0 +27 3 0.0 1 0.0 0.0 2 180.0 -0.063 3 0.0 +28 3 0.9995 1 0.0 0.0105 2 180.0 0.0 3 0.0 +29 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +30 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +31 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +32 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +33 3 -0.844 1 0.0 2.1245 2 180.0 0.0 3 0.0 +34 3 0.185 1 0.0 0.297 2 180.0 -0.113 3 0.0 +35 3 0.0 1 0.0 0.0 2 180.0 0.25 3 0.0 +36 3 -0.1285 1 0.0 -0.11 2 180.0 0.0 3 0.0 +37 3 0.0 1 0.0 0.0 2 180.0 0.09 3 0.0 +38 3 0.227 1 0.0 0.04 2 180.0 -0.155 3 0.0 +39 3 -0.2375 1 0.0 0.3875 2 180.0 0.021 3 0.0 +40 3 -0.077 1 0.0 0.022 2 180.0 -0.043 3 0.0 +41 3 0.0 1 0.0 0.0 2 180.0 0.115 3 0.0 +42 3 0.0 1 0.0 0.5 2 180.0 0.4 3 0.0 +43 3 0.9995 1 0.0 0.0105 2 180.0 0.0 3 0.0 +44 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +45 3 0.387 1 0.0 -0.843 2 180.0 0.0 3 0.0 +46 3 0.0 1 0.0 0.0 2 180.0 0.25 3 0.0 +47 3 0.6715 1 0.0 0.0675 2 180.0 0.0 3 0.0 +48 3 0.0 1 0.0 0.0 2 180.0 0.09 3 0.0 +49 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +50 3 0.0 1 0.0 0.0 2 180.0 0.1495 3 0.0 +51 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +52 3 0.2235 1 0.0 0.8535 2 180.0 -0.671 3 0.0 +53 3 0.428 1 0.0 0.4205 2 180.0 -0.187 3 0.0 +54 3 0.0 1 0.0 0.0 2 180.0 0.0455 3 0.0 +55 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +56 3 -0.3155 1 0.0 0.5335 2 180.0 -0.3515 3 0.0 +57 3 -1.142 1 0.0 0.67 2 180.0 0.0 3 0.0 +58 3 -1.6145 1 0.0 0.294 2 180.0 0.0 3 0.0 +59 3 0.0 1 0.0 0.0 2 180.0 0.25 3 0.0 +60 3 -0.2475 1 0.0 0.36 2 180.0 -0.242 3 0.0 +61 3 0.0 1 0.0 0.0 2 180.0 -0.045 3 0.0 +62 3 -0.305 1 0.0 2.106 2 180.0 0.0 3 0.0 +63 3 0.0 1 0.0 2.052 2 180.0 0.0 3 0.0 +64 3 -0.335 1 0.0 2.002 2 180.0 0.0 3 0.0 +65 3 0.275 1 0.0 2.267 2 180.0 -0.275 3 0.0 +66 3 0.0 1 0.0 2.036 2 180.0 0.0 3 0.0 +67 3 0.076 1 0.0 -0.1155 2 180.0 0.189 3 0.0 +68 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +69 3 0.076 1 0.0 -0.1155 2 180.0 0.189 3 0.0 +70 3 0.0 1 0.0 0.032 2 180.0 0.3025 3 0.0 +71 3 0.0 1 0.0 0.0 2 180.0 0.187 3 0.0 +72 3 0.0 1 0.0 0.0 2 180.0 -0.055 3 0.0 +73 3 0.0 1 0.0 -0.0405 2 180.0 0.185 3 0.0 +74 3 -0.547 1 0.0 0.3105 2 180.0 0.009 3 0.0 +75 3 -0.269 1 0.0 0.3515 2 180.0 -0.083 3 0.0 +76 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +77 3 -0.686 1 0.0 0.116 2 180.0 0.2 3 0.0 +78 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +79 3 -0.686 1 0.0 0.116 2 180.0 0.2 3 0.0 +80 3 0.0 1 0.0 0.0 2 180.0 0.133 3 0.0 +81 3 -0.4495 1 0.0 0.539 2 180.0 -0.1705 3 0.0 +82 3 0.574 1 0.0 -0.1445 2 180.0 -0.2785 3 0.0 +83 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +84 3 -0.3155 1 0.0 0.5335 2 180.0 -0.3515 3 0.0 +85 3 -0.5 1 0.0 1.0 2 180.0 1.0 3 0.0 +86 3 0.5 1 0.0 1.125 2 180.0 -1.125 3 0.0 +87 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +88 3 0.0 1 0.0 0.0 2 180.0 -0.063 3 0.0 +89 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +90 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +91 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +92 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +93 3 0.0 1 0.0 0.0 2 180.0 0.1175 3 0.0 +94 3 0.0 1 0.0 0.0 2 180.0 -0.005 3 0.0 +95 3 -0.5 1 0.0 1.0 2 180.0 1.0 3 0.0 +96 3 0.0 1 0.0 0.5 2 180.0 0.4 3 0.0 +97 3 -2.1285 1 0.0 -0.11 2 180.0 0.0 3 0.0 +98 3 0.0 1 0.0 0.0 2 180.0 0.09 3 0.0 +99 3 0.0 1 0.0 0.05 2 180.0 0.0 3 0.0 +100 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +101 3 -0.902 1 0.0 1.806 2 180.0 -0.098 3 0.0 +102 3 0.0 1 0.0 0.0 2 180.0 -0.005 3 0.0 +103 3 0.1775 1 0.0 0.739 2 180.0 -0.448 3 0.0 +104 3 -0.5 1 0.0 1.0 2 180.0 1.0 3 0.0 +105 3 -0.5 1 0.0 1.0 2 180.0 1.0 3 0.0 +106 3 0.5 1 0.0 1.125 2 180.0 -1.125 3 0.0 +107 3 0.5 1 0.0 1.125 2 180.0 -1.125 3 0.0 +108 3 -0.12 1 0.0 -1.543 2 180.0 -0.9145 3 0.0 +109 3 0.0 1 0.0 0.0 2 180.0 -0.063 3 0.0 +110 3 1.5445 1 0.0 2.688 2 180.0 -0.9145 3 0.0 +111 3 1.108 1 0.0 0.1075 2 180.0 0.405 3 0.0 +112 3 0.0 1 0.0 0.0 2 180.0 -0.063 3 0.0 +113 3 1.108 1 0.0 0.1075 2 180.0 0.405 3 0.0 +114 3 0.0 1 0.0 0.0 2 180.0 -0.063 3 0.0 +115 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +116 3 0.0 1 0.0 0.0 2 180.0 -0.063 3 0.0 +117 3 1.108 1 0.0 0.1075 2 180.0 0.405 3 0.0 +118 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +119 3 -1.059 1 0.0 0.5865 2 180.0 0.0 3 0.0 +120 3 -0.1005 1 0.0 0.3435 2 180.0 0.0 3 0.0 +121 3 0.0 1 0.0 0.0 2 180.0 0.25 3 0.0 +122 3 -0.464 1 0.0 0.5135 2 180.0 0.0 3 0.0 +123 3 0.0 1 0.0 0.0 2 180.0 0.09 3 0.0 +124 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +125 3 0.0 1 0.0 0.0 2 180.0 0.1495 3 0.0 +126 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +127 3 1.1125 1 0.0 -0.626 2 180.0 -0.5335 3 0.0 +128 3 0.076 1 0.0 -0.1155 2 180.0 0.189 3 0.0 +129 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +130 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +131 3 0.0 1 0.0 0.0 2 180.0 0.1495 3 0.0 +132 3 -0.1005 1 0.0 0.3435 2 180.0 0.0 3 0.0 +133 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +134 3 0.0 1 0.0 0.0 2 180.0 0.25 3 0.0 +135 3 0.0 1 0.0 0.0 2 180.0 0.1495 3 0.0 +136 3 0.096 1 0.0 -0.0575 2 180.0 -0.1545 3 0.0 +137 3 -0.832 1 0.0 -0.2655 2 180.0 0.0 3 0.0 +138 3 0.0 1 0.0 0.0 2 180.0 0.1705 3 0.0 +139 3 0.635 1 0.0 -0.5115 2 180.0 -0.3635 3 0.0 +140 3 0.0 1 0.0 0.0 2 180.0 0.137 3 0.0 +141 3 0.0825 1 0.0 0.7 2 180.0 0.0 3 0.0 +142 3 -0.589 1 0.0 0.5275 2 180.0 0.0 3 0.0 +143 3 0.0 1 0.0 0.0 2 180.0 0.09 3 0.0 +144 3 0.0 1 0.0 0.5195 2 180.0 0.0 3 0.0 +145 3 -0.254 1 0.0 -0.1065 2 180.0 -0.1685 3 0.0 +146 3 -1.5315 1 0.0 -0.476 2 180.0 0.199 3 0.0 +147 3 0.0 1 0.0 0.0 2 180.0 0.09 3 0.0 +148 3 0.5455 1 0.0 0.224 2 180.0 0.298 3 0.0 +149 3 0.1405 1 0.0 0.332 2 180.0 -0.4235 3 0.0 +150 3 0.1775 1 0.0 0.739 2 180.0 -0.448 3 0.0 +151 3 -1.059 1 0.0 0.5865 2 180.0 0.0 3 0.0 +152 3 1.1125 1 0.0 -0.626 2 180.0 -0.5335 3 0.0 +153 3 -0.2675 1 0.0 -0.055 2 180.0 -0.0365 3 0.0 +154 3 0.0 1 0.0 0.0 2 180.0 0.187 3 0.0 +155 3 0.491 1 0.0 0.497 2 180.0 0.085 3 0.0 +156 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +157 3 0.0 1 0.0 0.0 2 180.0 -0.063 3 0.0 +158 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +159 3 0.0 1 0.0 2.25 2 180.0 0.0 3 0.0 +160 3 0.0 1 0.0 2.0 2 180.0 0.0 3 0.0 +161 3 0.0 1 0.0 2.235 2 180.0 0.0 3 0.0 +162 3 0.0 1 0.0 2.235 2 180.0 0.0 3 0.0 +163 3 0.0 1 0.0 1.0405 2 180.0 0.0 3 0.0 +164 3 0.0 1 0.0 0.0 2 180.0 0.0 3 0.0 +165 3 0.0695 1 0.0 -0.407 2 180.0 0.0 3 0.0 +166 3 0.0 1 0.0 0.0 2 180.0 0.25 3 0.0 +167 3 -0.9105 1 0.0 -1.2185 2 180.0 1.0295 3 0.0 +168 3 0.547 1 0.0 -0.08 2 180.0 0.2515 3 0.0 +169 3 0.0 1 0.0 0.0 2 180.0 0.1495 3 0.0 +170 3 0.0 1 0.0 0.0 2 180.0 0.1495 3 0.0 +171 3 0.0 1 0.0 2.106 2 180.0 0.0 3 0.0 +172 3 0.0 1 0.0 2.052 2 180.0 0.0 3 0.0 +173 3 0.0 1 0.0 2.106 2 180.0 0.0 3 0.0 +174 3 0.0 1 0.0 2.051 2 180.0 0.0 3 0.0 +175 3 0.45 1 0.0 4.0 2 180.0 0.0 3 0.0 +176 3 0.3775 1 0.0 1.5 2 180.0 0.0 3 0.0 +177 3 0.0 1 0.0 3.0 2 180.0 0.0 3 0.0 +178 3 -1.575 1 0.0 1.5 2 180.0 0.0 3 0.0 +179 3 0.0 1 0.0 4.0 2 180.0 0.0 3 0.0 +180 3 0.0 1 0.0 1.5 2 180.0 0.0 3 0.0 +181 3 -1.372 1 0.0 1.5 2 180.0 0.0 3 0.0 +182 3 -0.265 1 0.0 1.5 2 180.0 0.0 3 0.0 +183 3 0.0 1 0.0 1.5 2 180.0 0.0 3 0.0 +184 3 -0.265 1 0.0 1.5 2 180.0 0.0 3 0.0 +185 3 -0.5 1 0.0 1.0 2 180.0 1.0 3 0.0 +186 3 -0.428 1 0.0 0.024 2 180.0 -0.921 3 0.0 +187 3 0.0 1 0.0 4.0 2 180.0 0.0 3 0.0 +188 3 -0.0295 1 0.0 0.95 2 180.0 -0.0225 3 0.0 +189 3 -0.077 1 0.0 0.022 2 180.0 -0.043 3 0.0 + +Improper Coeffs + +1 49.6 +2 54.0 +3 107.9 +4 70.5 +5 41.7 +6 12.9 +7 20.9 +8 14.4 +9 14.4 +10 15.1 +11 41.7 +12 49.6 +13 121.6 +14 118.7 +15 49.6 +16 14.4 +17 14.4 +18 14.4 +19 0.7 +20 3.6 +21 12.9 +22 1.4 +23 14.4 +24 14.4 +25 14.4 +26 14.4 +27 15.1 +28 15.1 +29 12.9 +30 14.4 +31 14.4 +32 14.4 +33 121.6 + +BondAngle Coeffs + +1 4.3 4.3 1.448 1.015 +2 0.0 0.0 0.0 0.0 +3 18.7 18.7 1.509 1.448 +4 11.5 11.5 1.112 1.448 +5 18.7 18.7 1.525 1.448 +6 11.5 11.5 1.509 1.112 +7 18.7 18.7 1.509 1.525 +8 11.5 11.5 1.112 1.525 +9 18.7 18.7 1.2255 1.509 +10 18.7 18.7 1.345 1.509 +11 18.7 18.7 1.345 1.2255 +12 18.7 18.7 1.525 1.525 +13 11.5 11.5 1.525 1.112 +14 11.5 11.5 1.525 1.112 +15 0.0 0.0 0.0 0.0 +16 18.7 18.7 1.525 1.805 +17 11.5 11.5 1.112 1.805 +18 -5.75 -5.75 1.805 1.805 +19 11.5 11.5 1.112 1.805 +20 7.2 7.2 1.345 1.437 +21 4.3 4.3 1.345 1.028 +22 4.3 4.3 1.028 1.437 +23 18.7 18.7 1.437 1.509 +24 11.5 11.5 1.437 1.112 +25 18.7 18.7 1.437 1.525 +26 18.7 18.7 1.509 1.525 +27 11.5 11.5 1.509 1.112 +28 18.7 18.7 1.2255 1.509 +29 18.7 18.7 1.345 1.509 +30 0.0 0.0 0.0 0.0 +31 18.7 18.7 1.437 1.525 +32 18.7 18.7 1.509 1.525 +33 11.5 11.5 1.112 1.525 +34 18.7 18.7 1.525 1.525 +35 18.7 18.7 1.525 1.525 +36 18.7 18.7 1.525 1.499 +37 11.5 11.5 1.112 1.499 +38 18.7 18.7 1.499 1.3887 +39 18.7 18.7 1.3887 1.3887 +40 11.5 11.5 1.3887 1.1 +41 18.7 18.7 1.525 1.525 +42 18.7 18.7 1.525 1.448 +43 11.5 11.5 1.112 1.448 +44 4.3 4.3 1.448 1.015 +45 0.0 0.0 0.0 0.0 +46 18.7 18.7 1.525 1.413 +47 18.7 18.7 1.525 1.413 +48 11.5 11.5 1.112 1.413 +49 12.95 12.95 1.413 0.947 +50 18.7 18.7 1.525 1.525 +51 7.2 7.2 1.437 1.345 +52 4.3 4.3 1.437 1.028 +53 18.7 18.7 1.437 1.509 +54 11.5 11.5 1.437 1.112 +55 11.5 11.5 1.509 1.112 +56 0.0 0.0 0.0 0.0 +57 18.7 18.7 1.509 1.2255 +58 18.7 18.7 1.345 1.509 +59 18.7 18.7 1.525 1.509 +60 11.5 11.5 1.112 1.509 +61 18.7 18.7 1.509 1.2553 +62 18.7 18.7 1.2553 1.2553 +63 18.7 18.7 1.509 1.345 +64 18.7 18.7 1.2255 1.345 +65 7.2 7.2 1.345 1.437 +66 7.2 7.2 1.345 1.437 +67 7.2 7.2 1.437 1.437 +68 18.7 18.7 1.509 1.437 +69 11.5 11.5 1.112 1.437 +70 18.7 18.7 1.437 1.525 +71 18.7 18.7 1.509 1.525 +72 11.5 11.5 1.112 1.525 +73 18.7 18.7 1.525 1.5247 +74 11.5 11.5 1.525 1.112 +75 11.5 11.5 1.112 1.5247 +76 0.0 0.0 0.0 0.0 +77 18.7 18.7 1.5247 1.5247 +78 18.7 18.7 1.437 1.5247 +79 11.5 11.5 1.112 1.437 +80 11.5 11.5 1.112 1.5247 +81 0.0 0.0 0.0 0.0 +82 18.7 18.7 1.525 1.413 +83 11.5 11.5 1.112 1.413 +84 12.95 12.95 1.413 0.947 +85 18.7 18.7 1.525 1.509 +86 18.7 18.7 1.509 1.525 +87 18.7 18.7 1.446 1.525 +88 11.5 11.5 1.446 1.112 +89 7.2 7.2 1.446 1.325 +90 4.3 4.3 1.446 1.028 +91 4.3 4.3 1.028 1.325 +92 18.7 18.7 1.325 1.325 +93 0.0 0.0 0.0 0.0 +94 18.7 18.7 1.3887 1.355 +95 12.95 12.95 1.355 0.947 +96 18.7 18.7 1.525 1.493 +97 11.5 11.5 1.112 1.493 +98 18.7 18.7 1.493 1.373 +99 18.7 18.7 1.493 1.371 +100 18.7 18.7 1.373 1.371 +101 14.4 14.4 1.373 1.352 +102 4.3 4.3 1.03 1.373 +103 4.3 4.3 1.03 1.352 +104 11.5 11.5 1.371 1.081 +105 11.5 11.5 1.373 1.081 +106 18.7 18.7 1.352 1.352 +107 11.5 11.5 1.352 1.081 +108 18.7 18.7 1.437 1.509 +109 11.5 11.5 1.112 1.509 +110 18.7 18.7 1.509 1.2553 +111 0.0 0.0 0.0 0.0 + +UreyBradley Coeffs + +1 0.0 0.0 +2 0.0 0.0 +3 0.0 0.0 +4 0.0 0.0 +5 0.0 0.0 +6 0.0 0.0 +7 0.0 0.0 +8 0.0 0.0 +9 0.0 0.0 +10 0.0 0.0 +11 0.0 0.0 +12 0.0 0.0 +13 0.0 0.0 +14 0.0 0.0 +15 0.0 0.0 +16 0.0 0.0 +17 0.0 0.0 +18 0.0 0.0 +19 0.0 0.0 +20 0.0 0.0 +21 0.0 0.0 +22 0.0 0.0 +23 0.0 0.0 +24 0.0 0.0 +25 0.0 0.0 +26 0.0 0.0 +27 0.0 0.0 +28 0.0 0.0 +29 0.0 0.0 +30 0.0 0.0 +31 0.0 0.0 +32 0.0 0.0 +33 0.0 0.0 +34 0.0 0.0 +35 0.0 0.0 +36 0.0 0.0 +37 0.0 0.0 +38 0.0 0.0 +39 0.0 0.0 +40 0.0 0.0 +41 0.0 0.0 +42 0.0 0.0 +43 0.0 0.0 +44 0.0 0.0 +45 0.0 0.0 +46 0.0 0.0 +47 0.0 0.0 +48 0.0 0.0 +49 0.0 0.0 +50 0.0 0.0 +51 0.0 0.0 +52 0.0 0.0 +53 0.0 0.0 +54 0.0 0.0 +55 0.0 0.0 +56 0.0 0.0 +57 0.0 0.0 +58 0.0 0.0 +59 0.0 0.0 +60 0.0 0.0 +61 0.0 0.0 +62 0.0 0.0 +63 0.0 0.0 +64 0.0 0.0 +65 0.0 0.0 +66 0.0 0.0 +67 0.0 0.0 +68 0.0 0.0 +69 0.0 0.0 +70 0.0 0.0 +71 0.0 0.0 +72 0.0 0.0 +73 0.0 0.0 +74 0.0 0.0 +75 0.0 0.0 +76 0.0 0.0 +77 0.0 0.0 +78 0.0 0.0 +79 0.0 0.0 +80 0.0 0.0 +81 0.0 0.0 +82 0.0 0.0 +83 0.0 0.0 +84 0.0 0.0 +85 0.0 0.0 +86 0.0 0.0 +87 0.0 0.0 +88 0.0 0.0 +89 0.0 0.0 +90 0.0 0.0 +91 0.0 0.0 +92 0.0 0.0 +93 0.0 0.0 +94 0.0 0.0 +95 0.0 0.0 +96 0.0 0.0 +97 0.0 0.0 +98 0.0 0.0 +99 0.0 0.0 +100 0.0 0.0 +101 0.0 0.0 +102 0.0 0.0 +103 0.0 0.0 +104 0.0 0.0 +105 0.0 0.0 +106 0.0 0.0 +107 0.0 0.0 +108 0.0 0.0 +109 0.0 0.0 +110 0.0 0.0 +111 -7.6 1.5537 + +BiTorsions + +1 1 3 20 21 22 37 +2 1 22 37 38 39 56 +3 1 39 56 57 58 76 +4 1 58 76 77 78 92 +5 1 78 92 93 94 114 +6 1 94 114 115 116 128 +7 1 116 128 129 130 147 +8 1 130 147 148 149 161 +9 2 149 161 162 163 168 +10 1 163 168 169 170 190 +11 1 170 190 191 192 204 +12 1 192 204 205 206 223 +13 1 206 223 224 225 237 +14 1 225 237 238 239 256 +15 1 239 256 257 258 271 +16 1 258 271 272 273 287 +17 3 273 287 288 289 302 +18 1 304 316 317 318 327 +19 1 318 327 328 329 339 +20 1 329 339 340 341 353 +21 1 341 353 354 355 372 +22 1 355 372 373 374 387 +23 1 374 387 388 389 401 +24 1 389 401 402 403 417 +25 1 403 417 418 419 439 +26 1 419 439 440 441 449 +27 1 441 449 450 451 471 +28 1 451 471 472 473 490 +29 1 473 490 491 492 507 +30 1 492 507 508 509 519 +31 1 509 519 520 521 541 +32 1 521 541 542 543 556 +33 2 543 556 557 558 563 +34 3 558 563 564 565 582 +35 1 598 610 611 612 622 +36 1 612 622 623 624 639 +37 1 624 639 640 641 656 +38 1 641 656 657 658 680 +39 1 658 680 681 682 699 +40 1 682 699 700 701 718 +41 1 701 718 719 720 738 +42 1 720 738 739 740 748 +43 2 740 748 749 750 755 +44 1 750 755 756 757 777 +45 1 757 777 778 779 794 +46 1 779 794 795 796 813 +47 1 796 813 814 815 828 +48 1 815 828 829 830 840 +49 2 830 840 841 842 847 +50 1 842 847 848 849 871 +51 1 849 871 872 873 885 +52 1 873 885 886 887 904 +53 1 887 904 905 906 915 +54 1 906 915 916 917 927 +55 1 917 927 928 929 948 +56 1 929 948 949 950 962 +57 1 950 962 963 964 981 +58 1 964 981 982 983 998 +59 1 983 998 999 1000 1020 +60 1 1000 1020 1021 1022 1035 +61 1 1022 1035 1036 1037 1046 +62 1 1037 1046 1047 1048 1060 +63 1 1048 1060 1061 1062 1079 +64 1 1062 1079 1080 1081 1097 +65 1 1081 1097 1098 1099 1116 +66 1 1099 1116 1117 1118 1132 +67 1 1118 1132 1133 1134 1151 +68 1 1134 1151 1152 1153 1175 +69 1 1153 1175 1176 1177 1194 +70 1 1177 1194 1195 1196 1218 +71 2 1196 1218 1219 1220 1225 + +PiTorsions + +1 1 2 4 3 20 21 24 +2 1 21 23 22 37 38 41 +3 1 27 29 28 30 35 36 +4 1 38 40 39 56 57 60 +5 1 57 59 58 76 77 80 +6 2 62 65 63 64 66 71 +7 2 62 64 63 65 67 72 +8 2 63 71 64 66 68 73 +9 2 63 72 65 67 68 74 +10 2 64 73 66 68 67 75 +11 2 65 74 67 68 66 75 +12 1 77 79 78 92 93 96 +13 1 93 95 94 114 115 118 +14 1 115 117 116 128 129 132 +15 1 129 131 130 147 148 151 +16 1 148 150 149 161 162 165 +17 1 162 164 163 168 169 172 +18 1 169 171 170 190 191 194 +19 1 191 193 192 204 205 208 +20 1 205 207 206 223 224 227 +21 1 224 226 225 237 238 241 +22 1 238 240 239 256 257 260 +23 1 257 259 258 271 272 275 +24 1 272 274 273 287 288 291 +25 3 288 290 289 302 303 309 +26 1 303 305 304 316 317 320 +27 1 317 319 318 327 328 331 +28 1 328 330 329 339 340 343 +29 1 340 342 341 353 354 357 +30 1 354 356 355 372 373 376 +31 1 373 375 374 387 388 391 +32 1 388 390 389 401 402 405 +33 1 393 395 394 396 399 400 +34 1 402 404 403 417 418 421 +35 1 418 420 419 439 440 443 +36 1 440 442 441 449 450 453 +37 1 450 452 451 471 472 475 +38 1 472 474 473 490 491 494 +39 1 491 493 492 507 508 511 +40 1 497 499 498 500 505 506 +41 1 508 510 509 519 520 523 +42 1 520 522 521 541 542 545 +43 1 542 544 543 556 557 560 +44 1 557 559 558 563 564 567 +45 3 564 566 565 582 583 589 +46 3 583 585 584 596 597 603 +47 1 597 599 598 610 611 614 +48 1 611 613 612 622 623 626 +49 1 623 625 624 639 640 643 +50 1 629 631 630 632 637 638 +51 1 640 642 641 656 657 660 +52 1 646 648 647 649 654 655 +53 1 657 659 658 680 681 684 +54 1 681 683 682 699 700 703 +55 1 700 702 701 718 719 722 +56 1 719 721 720 738 739 742 +57 2 724 727 725 726 728 733 +58 2 724 726 725 727 729 734 +59 2 725 733 726 728 730 735 +60 2 725 734 727 729 730 736 +61 2 726 735 728 730 729 737 +62 2 727 736 729 730 728 737 +63 1 739 741 740 748 749 752 +64 1 749 751 750 755 756 759 +65 1 756 758 757 777 778 781 +66 1 778 780 779 794 795 798 +67 1 784 786 785 787 792 793 +68 1 795 797 796 813 814 817 +69 1 814 816 815 828 829 832 +70 1 829 831 830 840 841 844 +71 1 841 843 842 847 848 851 +72 1 848 850 849 871 872 875 +73 1 872 874 873 885 886 889 +74 1 886 888 887 904 905 908 +75 1 905 907 906 915 916 919 +76 1 916 918 917 927 928 931 +77 1 928 930 929 948 949 952 +78 2 933 936 934 935 937 943 +79 2 933 935 934 936 938 944 +80 2 934 943 935 937 939 945 +81 2 934 944 936 938 939 946 +82 2 935 945 937 939 938 940 +83 2 936 946 938 939 937 940 +84 1 949 951 950 962 963 966 +85 1 954 956 955 957 960 961 +86 1 963 965 964 981 982 985 +87 1 982 984 983 998 999 1002 +88 1 988 990 989 991 996 997 +89 1 999 1001 1000 1020 1021 1024 +90 1 1021 1023 1022 1035 1036 1039 +91 1 1036 1038 1037 1046 1047 1050 +92 1 1047 1049 1048 1060 1061 1064 +93 1 1061 1063 1062 1079 1080 1083 +94 1 1080 1082 1081 1097 1098 1101 +95 4 1085 1088 1086 1087 1089 1093 +96 5 1085 1087 1086 1088 1090 1094 +97 6 1086 1093 1087 1089 1090 1095 +98 4 1086 1094 1088 1090 1089 1096 +99 6 1087 1095 1089 1090 1088 1096 +100 1 1098 1100 1099 1116 1117 1120 +101 1 1117 1119 1118 1132 1133 1136 +102 1 1133 1135 1134 1151 1152 1155 +103 1 1152 1154 1153 1175 1176 1179 +104 1 1176 1178 1177 1194 1195 1198 +105 1 1195 1197 1196 1218 1219 1222 +106 1 1219 1221 1220 1225 1226 1229 + +PiTorsion Coeffs + +1 6.85 +2 6.85 +3 6.85 +4 6.85 +5 6.85 +6 6.85 + +Tinker Types + +1 234 +2 8 +3 9 +4 11 +5 235 +6 235 +7 235 +8 12 +9 178 +10 180 +11 182 +12 183 +13 179 +14 179 +15 181 +16 181 +17 184 +18 184 +19 184 +20 7 +21 8 +22 9 +23 11 +24 10 +25 12 +26 170 +27 172 +28 174 +29 175 +30 176 +31 171 +32 171 +33 173 +34 173 +35 177 +36 177 +37 7 +38 8 +39 9 +40 11 +41 10 +42 12 +43 25 +44 29 +45 27 +46 31 +47 26 +48 30 +49 30 +50 28 +51 28 +52 28 +53 32 +54 32 +55 32 +56 7 +57 8 +58 9 +59 11 +60 10 +61 12 +62 64 +63 66 +64 67 +65 67 +66 69 +67 69 +68 71 +69 65 +70 65 +71 68 +72 68 +73 70 +74 70 +75 72 +76 7 +77 8 +78 9 +79 11 +80 10 +81 12 +82 15 +83 17 +84 17 +85 16 +86 18 +87 18 +88 18 +89 18 +90 18 +91 18 +92 7 +93 8 +94 9 +95 11 +96 10 +97 12 +98 185 +99 187 +100 189 +101 191 +102 193 +103 186 +104 186 +105 188 +106 188 +107 190 +108 190 +109 192 +110 192 +111 194 +112 194 +113 194 +114 7 +115 33 +116 9 +117 11 +118 10 +119 12 +120 38 +121 42 +122 40 +123 39 +124 43 +125 41 +126 41 +127 41 +128 7 +129 8 +130 9 +131 11 +132 10 +133 12 +134 19 +135 21 +136 23 +137 23 +138 20 +139 20 +140 22 +141 24 +142 24 +143 24 +144 24 +145 24 +146 24 +147 7 +148 33 +149 9 +150 11 +151 10 +152 12 +153 38 +154 42 +155 40 +156 39 +157 43 +158 41 +159 41 +160 41 +161 1 +162 2 +163 3 +164 5 +165 4 +166 6 +167 6 +168 7 +169 8 +170 9 +171 11 +172 10 +173 12 +174 185 +175 187 +176 189 +177 191 +178 193 +179 186 +180 186 +181 188 +182 188 +183 190 +184 190 +185 192 +186 192 +187 194 +188 194 +189 194 +190 7 +191 33 +192 9 +193 11 +194 10 +195 12 +196 38 +197 42 +198 40 +199 39 +200 43 +201 41 +202 41 +203 41 +204 7 +205 8 +206 9 +207 11 +208 10 +209 12 +210 25 +211 29 +212 27 +213 31 +214 26 +215 30 +216 30 +217 28 +218 28 +219 28 +220 32 +221 32 +222 32 +223 7 +224 33 +225 9 +226 11 +227 10 +228 12 +229 38 +230 42 +231 40 +232 39 +233 43 +234 41 +235 41 +236 41 +237 7 +238 8 +239 9 +240 11 +241 10 +242 12 +243 19 +244 21 +245 23 +246 23 +247 20 +248 20 +249 22 +250 24 +251 24 +252 24 +253 24 +254 24 +255 24 +256 7 +257 8 +258 9 +259 11 +260 10 +261 12 +262 156 +263 158 +264 160 +265 161 +266 161 +267 157 +268 157 +269 159 +270 159 +271 7 +272 8 +273 9 +274 11 +275 10 +276 12 +277 15 +278 17 +279 17 +280 16 +281 18 +282 18 +283 18 +284 18 +285 18 +286 18 +287 7 +288 8 +289 9 +290 11 +291 10 +292 12 +293 156 +294 158 +295 160 +296 161 +297 161 +298 157 +299 157 +300 159 +301 159 +302 53 +303 54 +304 55 +305 56 +306 57 +307 58 +308 60 +309 62 +310 59 +311 59 +312 61 +313 61 +314 63 +315 63 +316 7 +317 33 +318 9 +319 11 +320 10 +321 12 +322 34 +323 36 +324 35 +325 35 +326 37 +327 7 +328 8 +329 9 +330 11 +331 10 +332 12 +333 140 +334 142 +335 143 +336 143 +337 141 +338 141 +339 7 +340 33 +341 9 +342 11 +343 10 +344 12 +345 38 +346 42 +347 40 +348 39 +349 43 +350 41 +351 41 +352 41 +353 7 +354 8 +355 9 +356 11 +357 10 +358 12 +359 25 +360 29 +361 27 +362 31 +363 26 +364 30 +365 30 +366 28 +367 28 +368 28 +369 32 +370 32 +371 32 +372 7 +373 8 +374 9 +375 11 +376 10 +377 12 +378 156 +379 158 +380 160 +381 161 +382 161 +383 157 +384 157 +385 159 +386 159 +387 7 +388 8 +389 9 +390 11 +391 10 +392 12 +393 150 +394 152 +395 153 +396 154 +397 151 +398 151 +399 155 +400 155 +401 7 +402 8 +403 9 +404 11 +405 10 +406 12 +407 15 +408 17 +409 17 +410 16 +411 18 +412 18 +413 18 +414 18 +415 18 +416 18 +417 7 +418 8 +419 9 +420 11 +421 10 +422 12 +423 185 +424 187 +425 189 +426 191 +427 193 +428 186 +429 186 +430 188 +431 188 +432 190 +433 190 +434 192 +435 192 +436 194 +437 194 +438 194 +439 7 +440 8 +441 9 +442 11 +443 10 +444 12 +445 13 +446 14 +447 14 +448 14 +449 7 +450 8 +451 9 +452 11 +453 10 +454 12 +455 185 +456 187 +457 189 +458 191 +459 193 +460 186 +461 186 +462 188 +463 188 +464 190 +465 190 +466 192 +467 192 +468 194 +469 194 +470 194 +471 7 +472 8 +473 9 +474 11 +475 10 +476 12 +477 25 +478 29 +479 27 +480 31 +481 26 +482 30 +483 30 +484 28 +485 28 +486 28 +487 32 +488 32 +489 32 +490 7 +491 8 +492 9 +493 11 +494 10 +495 12 +496 170 +497 172 +498 174 +499 175 +500 176 +501 171 +502 171 +503 173 +504 173 +505 177 +506 177 +507 7 +508 8 +509 9 +510 11 +511 10 +512 12 +513 140 +514 142 +515 143 +516 143 +517 141 +518 141 +519 7 +520 8 +521 9 +522 11 +523 10 +524 12 +525 185 +526 187 +527 189 +528 191 +529 193 +530 186 +531 186 +532 188 +533 188 +534 190 +535 190 +536 192 +537 192 +538 194 +539 194 +540 194 +541 7 +542 8 +543 9 +544 11 +545 10 +546 12 +547 156 +548 158 +549 160 +550 161 +551 161 +552 157 +553 157 +554 159 +555 159 +556 1 +557 2 +558 3 +559 5 +560 4 +561 6 +562 6 +563 7 +564 8 +565 9 +566 11 +567 10 +568 12 +569 25 +570 29 +571 27 +572 31 +573 26 +574 30 +575 30 +576 28 +577 28 +578 28 +579 32 +580 32 +581 32 +582 53 +583 54 +584 55 +585 56 +586 57 +587 58 +588 60 +589 62 +590 59 +591 59 +592 61 +593 61 +594 63 +595 63 +596 53 +597 54 +598 55 +599 56 +600 57 +601 58 +602 60 +603 62 +604 59 +605 59 +606 61 +607 61 +608 63 +609 63 +610 7 +611 8 +612 9 +613 11 +614 10 +615 12 +616 140 +617 142 +618 143 +619 143 +620 141 +621 141 +622 7 +623 8 +624 9 +625 11 +626 10 +627 12 +628 170 +629 172 +630 174 +631 175 +632 176 +633 171 +634 171 +635 173 +636 173 +637 177 +638 177 +639 7 +640 8 +641 9 +642 11 +643 10 +644 12 +645 170 +646 172 +647 174 +648 175 +649 176 +650 171 +651 171 +652 173 +653 173 +654 177 +655 177 +656 7 +657 8 +658 9 +659 11 +660 10 +661 12 +662 205 +663 207 +664 209 +665 211 +666 213 +667 214 +668 214 +669 206 +670 206 +671 208 +672 208 +673 210 +674 210 +675 212 +676 215 +677 215 +678 215 +679 215 +680 7 +681 8 +682 9 +683 11 +684 10 +685 12 +686 19 +687 21 +688 23 +689 23 +690 20 +691 20 +692 22 +693 24 +694 24 +695 24 +696 24 +697 24 +698 24 +699 7 +700 8 +701 9 +702 11 +703 10 +704 12 +705 25 +706 29 +707 27 +708 31 +709 26 +710 30 +711 30 +712 28 +713 28 +714 28 +715 32 +716 32 +717 32 +718 7 +719 8 +720 9 +721 11 +722 10 +723 12 +724 64 +725 66 +726 67 +727 67 +728 69 +729 69 +730 71 +731 65 +732 65 +733 68 +734 68 +735 70 +736 70 +737 72 +738 7 +739 8 +740 9 +741 11 +742 10 +743 12 +744 13 +745 14 +746 14 +747 14 +748 1 +749 2 +750 3 +751 5 +752 4 +753 6 +754 6 +755 7 +756 8 +757 9 +758 11 +759 10 +760 12 +761 185 +762 187 +763 189 +764 191 +765 193 +766 186 +767 186 +768 188 +769 188 +770 190 +771 190 +772 192 +773 192 +774 194 +775 194 +776 194 +777 7 +778 8 +779 9 +780 11 +781 10 +782 12 +783 170 +784 172 +785 174 +786 175 +787 176 +788 171 +789 171 +790 173 +791 173 +792 177 +793 177 +794 7 +795 8 +796 9 +797 11 +798 10 +799 12 +800 19 +801 21 +802 23 +803 23 +804 20 +805 20 +806 22 +807 24 +808 24 +809 24 +810 24 +811 24 +812 24 +813 7 +814 8 +815 9 +816 11 +817 10 +818 12 +819 156 +820 158 +821 160 +822 161 +823 161 +824 157 +825 157 +826 159 +827 159 +828 7 +829 8 +830 9 +831 11 +832 10 +833 12 +834 140 +835 142 +836 143 +837 143 +838 141 +839 141 +840 1 +841 2 +842 3 +843 5 +844 4 +845 6 +846 6 +847 7 +848 8 +849 9 +850 11 +851 10 +852 12 +853 205 +854 207 +855 209 +856 211 +857 213 +858 214 +859 214 +860 206 +861 206 +862 208 +863 208 +864 210 +865 210 +866 212 +867 215 +868 215 +869 215 +870 215 +871 7 +872 33 +873 9 +874 11 +875 10 +876 12 +877 38 +878 42 +879 40 +880 39 +881 43 +882 41 +883 41 +884 41 +885 7 +886 8 +887 9 +888 11 +889 10 +890 12 +891 19 +892 21 +893 23 +894 23 +895 20 +896 20 +897 22 +898 24 +899 24 +900 24 +901 24 +902 24 +903 24 +904 7 +905 33 +906 9 +907 11 +908 10 +909 12 +910 34 +911 36 +912 35 +913 35 +914 37 +915 7 +916 8 +917 9 +918 11 +919 10 +920 12 +921 140 +922 142 +923 143 +924 143 +925 141 +926 141 +927 7 +928 8 +929 9 +930 11 +931 10 +932 12 +933 73 +934 75 +935 76 +936 76 +937 78 +938 78 +939 80 +940 81 +941 74 +942 74 +943 77 +944 77 +945 79 +946 79 +947 82 +948 7 +949 8 +950 9 +951 11 +952 10 +953 12 +954 150 +955 152 +956 153 +957 154 +958 151 +959 151 +960 155 +961 155 +962 7 +963 8 +964 9 +965 11 +966 10 +967 12 +968 25 +969 29 +970 27 +971 31 +972 26 +973 30 +974 30 +975 28 +976 28 +977 28 +978 32 +979 32 +980 32 +981 7 +982 8 +983 9 +984 11 +985 10 +986 12 +987 170 +988 172 +989 174 +990 175 +991 176 +992 171 +993 171 +994 173 +995 173 +996 177 +997 177 +998 7 +999 8 +1000 9 +1001 11 +1002 10 +1003 12 +1004 185 +1005 187 +1006 189 +1007 191 +1008 193 +1009 186 +1010 186 +1011 188 +1012 188 +1013 190 +1014 190 +1015 192 +1016 192 +1017 194 +1018 194 +1019 194 +1020 7 +1021 8 +1022 9 +1023 11 +1024 10 +1025 12 +1026 156 +1027 158 +1028 160 +1029 161 +1030 161 +1031 157 +1032 157 +1033 159 +1034 159 +1035 7 +1036 33 +1037 9 +1038 11 +1039 10 +1040 12 +1041 34 +1042 36 +1043 35 +1044 35 +1045 37 +1046 7 +1047 33 +1048 9 +1049 11 +1050 10 +1051 12 +1052 38 +1053 42 +1054 40 +1055 39 +1056 43 +1057 41 +1058 41 +1059 41 +1060 7 +1061 8 +1062 9 +1063 11 +1064 10 +1065 12 +1066 19 +1067 21 +1068 23 +1069 23 +1070 20 +1071 20 +1072 22 +1073 24 +1074 24 +1075 24 +1076 24 +1077 24 +1078 24 +1079 7 +1080 8 +1081 9 +1082 11 +1083 10 +1084 12 +1085 109 +1086 111 +1087 112 +1088 114 +1089 116 +1090 118 +1091 110 +1092 110 +1093 113 +1094 115 +1095 117 +1096 119 +1097 7 +1098 8 +1099 9 +1100 11 +1101 10 +1102 12 +1103 19 +1104 21 +1105 23 +1106 23 +1107 20 +1108 20 +1109 22 +1110 24 +1111 24 +1112 24 +1113 24 +1114 24 +1115 24 +1116 7 +1117 8 +1118 9 +1119 11 +1120 10 +1121 12 +1122 15 +1123 17 +1124 17 +1125 16 +1126 18 +1127 18 +1128 18 +1129 18 +1130 18 +1131 18 +1132 7 +1133 8 +1134 9 +1135 11 +1136 10 +1137 12 +1138 19 +1139 21 +1140 23 +1141 23 +1142 20 +1143 20 +1144 22 +1145 24 +1146 24 +1147 24 +1148 24 +1149 24 +1150 24 +1151 7 +1152 8 +1153 9 +1154 11 +1155 10 +1156 12 +1157 205 +1158 207 +1159 209 +1160 211 +1161 213 +1162 214 +1163 214 +1164 206 +1165 206 +1166 208 +1167 208 +1168 210 +1169 210 +1170 212 +1171 215 +1172 215 +1173 215 +1174 215 +1175 7 +1176 8 +1177 9 +1178 11 +1179 10 +1180 12 +1181 19 +1182 21 +1183 23 +1184 23 +1185 20 +1186 20 +1187 22 +1188 24 +1189 24 +1190 24 +1191 24 +1192 24 +1193 24 +1194 7 +1195 8 +1196 9 +1197 11 +1198 10 +1199 12 +1200 205 +1201 207 +1202 209 +1203 211 +1204 213 +1205 214 +1206 214 +1207 206 +1208 206 +1209 208 +1210 208 +1211 210 +1212 210 +1213 212 +1214 215 +1215 215 +1216 215 +1217 215 +1218 1 +1219 2 +1220 3 +1221 5 +1222 4 +1223 6 +1224 6 +1225 1 +1226 2 +1227 238 +1228 239 +1229 4 +1230 6 +1231 6 +1232 239 +1233 402 +1234 403 +1235 403 +1236 402 +1237 403 +1238 403 +1239 402 +1240 403 +1241 403 +1242 402 +1243 403 +1244 403 +1245 402 +1246 403 +1247 403 +1248 402 +1249 403 +1250 403 +1251 402 +1252 403 +1253 403 +1254 402 +1255 403 +1256 403 +1257 402 +1258 403 +1259 403 +1260 402 +1261 403 +1262 403 +1263 402 +1264 403 +1265 403 +1266 402 +1267 403 +1268 403 +1269 402 +1270 403 +1271 403 +1272 402 +1273 403 +1274 403 +1275 402 +1276 403 +1277 403 +1278 402 +1279 403 +1280 403 +1281 402 +1282 403 +1283 403 +1284 402 +1285 403 +1286 403 +1287 402 +1288 403 +1289 403 +1290 402 +1291 403 +1292 403 +1293 402 +1294 403 +1295 403 +1296 402 +1297 403 +1298 403 +1299 402 +1300 403 +1301 403 +1302 402 +1303 403 +1304 403 +1305 402 +1306 403 +1307 403 +1308 402 +1309 403 +1310 403 +1311 402 +1312 403 +1313 403 +1314 402 +1315 403 +1316 403 +1317 402 +1318 403 +1319 403 +1320 402 +1321 403 +1322 403 +1323 402 +1324 403 +1325 403 +1326 402 +1327 403 +1328 403 +1329 402 +1330 403 +1331 403 +1332 402 +1333 403 +1334 403 +1335 402 +1336 403 +1337 403 +1338 402 +1339 403 +1340 403 +1341 402 +1342 403 +1343 403 +1344 402 +1345 403 +1346 403 +1347 402 +1348 403 +1349 403 +1350 402 +1351 403 +1352 403 +1353 402 +1354 403 +1355 403 +1356 402 +1357 403 +1358 403 +1359 402 +1360 403 +1361 403 +1362 402 +1363 403 +1364 403 +1365 402 +1366 403 +1367 403 +1368 402 +1369 403 +1370 403 +1371 402 +1372 403 +1373 403 +1374 402 +1375 403 +1376 403 +1377 402 +1378 403 +1379 403 +1380 402 +1381 403 +1382 403 +1383 402 +1384 403 +1385 403 +1386 402 +1387 403 +1388 403 +1389 402 +1390 403 +1391 403 +1392 402 +1393 403 +1394 403 +1395 402 +1396 403 +1397 403 +1398 402 +1399 403 +1400 403 +1401 402 +1402 403 +1403 403 +1404 402 +1405 403 +1406 403 +1407 402 +1408 403 +1409 403 +1410 402 +1411 403 +1412 403 +1413 402 +1414 403 +1415 403 +1416 402 +1417 403 +1418 403 +1419 402 +1420 403 +1421 403 +1422 402 +1423 403 +1424 403 +1425 402 +1426 403 +1427 403 +1428 402 +1429 403 +1430 403 +1431 402 +1432 403 +1433 403 +1434 402 +1435 403 +1436 403 +1437 402 +1438 403 +1439 403 +1440 402 +1441 403 +1442 403 +1443 402 +1444 403 +1445 403 +1446 402 +1447 403 +1448 403 +1449 402 +1450 403 +1451 403 +1452 402 +1453 403 +1454 403 +1455 402 +1456 403 +1457 403 +1458 402 +1459 403 +1460 403 +1461 402 +1462 403 +1463 403 +1464 402 +1465 403 +1466 403 +1467 402 +1468 403 +1469 403 +1470 402 +1471 403 +1472 403 +1473 402 +1474 403 +1475 403 +1476 402 +1477 403 +1478 403 +1479 402 +1480 403 +1481 403 +1482 402 +1483 403 +1484 403 +1485 402 +1486 403 +1487 403 +1488 402 +1489 403 +1490 403 +1491 402 +1492 403 +1493 403 +1494 402 +1495 403 +1496 403 +1497 402 +1498 403 +1499 403 +1500 402 +1501 403 +1502 403 +1503 402 +1504 403 +1505 403 +1506 402 +1507 403 +1508 403 +1509 402 +1510 403 +1511 403 +1512 402 +1513 403 +1514 403 +1515 402 +1516 403 +1517 403 +1518 402 +1519 403 +1520 403 +1521 402 +1522 403 +1523 403 +1524 402 +1525 403 +1526 403 +1527 402 +1528 403 +1529 403 +1530 402 +1531 403 +1532 403 +1533 402 +1534 403 +1535 403 +1536 402 +1537 403 +1538 403 +1539 402 +1540 403 +1541 403 +1542 402 +1543 403 +1544 403 +1545 402 +1546 403 +1547 403 +1548 402 +1549 403 +1550 403 +1551 402 +1552 403 +1553 403 +1554 402 +1555 403 +1556 403 +1557 402 +1558 403 +1559 403 +1560 402 +1561 403 +1562 403 +1563 402 +1564 403 +1565 403 +1566 402 +1567 403 +1568 403 +1569 402 +1570 403 +1571 403 +1572 402 +1573 403 +1574 403 +1575 402 +1576 403 +1577 403 +1578 402 +1579 403 +1580 403 +1581 402 +1582 403 +1583 403 +1584 402 +1585 403 +1586 403 +1587 402 +1588 403 +1589 403 +1590 402 +1591 403 +1592 403 +1593 402 +1594 403 +1595 403 +1596 402 +1597 403 +1598 403 +1599 402 +1600 403 +1601 403 +1602 402 +1603 403 +1604 403 +1605 402 +1606 403 +1607 403 +1608 402 +1609 403 +1610 403 +1611 402 +1612 403 +1613 403 +1614 402 +1615 403 +1616 403 +1617 402 +1618 403 +1619 403 +1620 402 +1621 403 +1622 403 +1623 402 +1624 403 +1625 403 +1626 402 +1627 403 +1628 403 +1629 402 +1630 403 +1631 403 +1632 402 +1633 403 +1634 403 +1635 402 +1636 403 +1637 403 +1638 402 +1639 403 +1640 403 +1641 402 +1642 403 +1643 403 +1644 402 +1645 403 +1646 403 +1647 402 +1648 403 +1649 403 +1650 402 +1651 403 +1652 403 +1653 402 +1654 403 +1655 403 +1656 402 +1657 403 +1658 403 +1659 402 +1660 403 +1661 403 +1662 402 +1663 403 +1664 403 +1665 402 +1666 403 +1667 403 +1668 402 +1669 403 +1670 403 +1671 402 +1672 403 +1673 403 +1674 402 +1675 403 +1676 403 +1677 402 +1678 403 +1679 403 +1680 402 +1681 403 +1682 403 +1683 402 +1684 403 +1685 403 +1686 402 +1687 403 +1688 403 +1689 402 +1690 403 +1691 403 +1692 402 +1693 403 +1694 403 +1695 402 +1696 403 +1697 403 +1698 402 +1699 403 +1700 403 +1701 402 +1702 403 +1703 403 +1704 402 +1705 403 +1706 403 +1707 402 +1708 403 +1709 403 +1710 402 +1711 403 +1712 403 +1713 402 +1714 403 +1715 403 +1716 402 +1717 403 +1718 403 +1719 402 +1720 403 +1721 403 +1722 402 +1723 403 +1724 403 +1725 402 +1726 403 +1727 403 +1728 402 +1729 403 +1730 403 +1731 402 +1732 403 +1733 403 +1734 402 +1735 403 +1736 403 +1737 402 +1738 403 +1739 403 +1740 402 +1741 403 +1742 403 +1743 402 +1744 403 +1745 403 +1746 402 +1747 403 +1748 403 +1749 402 +1750 403 +1751 403 +1752 402 +1753 403 +1754 403 +1755 402 +1756 403 +1757 403 +1758 402 +1759 403 +1760 403 +1761 402 +1762 403 +1763 403 +1764 402 +1765 403 +1766 403 +1767 402 +1768 403 +1769 403 +1770 402 +1771 403 +1772 403 +1773 402 +1774 403 +1775 403 +1776 402 +1777 403 +1778 403 +1779 402 +1780 403 +1781 403 +1782 402 +1783 403 +1784 403 +1785 402 +1786 403 +1787 403 +1788 402 +1789 403 +1790 403 +1791 402 +1792 403 +1793 403 +1794 402 +1795 403 +1796 403 +1797 402 +1798 403 +1799 403 +1800 402 +1801 403 +1802 403 +1803 402 +1804 403 +1805 403 +1806 402 +1807 403 +1808 403 +1809 402 +1810 403 +1811 403 +1812 402 +1813 403 +1814 403 +1815 402 +1816 403 +1817 403 +1818 402 +1819 403 +1820 403 +1821 402 +1822 403 +1823 403 +1824 402 +1825 403 +1826 403 +1827 402 +1828 403 +1829 403 +1830 402 +1831 403 +1832 403 +1833 402 +1834 403 +1835 403 +1836 402 +1837 403 +1838 403 +1839 402 +1840 403 +1841 403 +1842 402 +1843 403 +1844 403 +1845 402 +1846 403 +1847 403 +1848 402 +1849 403 +1850 403 +1851 402 +1852 403 +1853 403 +1854 402 +1855 403 +1856 403 +1857 402 +1858 403 +1859 403 +1860 402 +1861 403 +1862 403 +1863 402 +1864 403 +1865 403 +1866 402 +1867 403 +1868 403 +1869 402 +1870 403 +1871 403 +1872 402 +1873 403 +1874 403 +1875 402 +1876 403 +1877 403 +1878 402 +1879 403 +1880 403 +1881 402 +1882 403 +1883 403 +1884 402 +1885 403 +1886 403 +1887 402 +1888 403 +1889 403 +1890 402 +1891 403 +1892 403 +1893 402 +1894 403 +1895 403 +1896 402 +1897 403 +1898 403 +1899 402 +1900 403 +1901 403 +1902 402 +1903 403 +1904 403 +1905 402 +1906 403 +1907 403 +1908 402 +1909 403 +1910 403 +1911 402 +1912 403 +1913 403 +1914 402 +1915 403 +1916 403 +1917 402 +1918 403 +1919 403 +1920 402 +1921 403 +1922 403 +1923 402 +1924 403 +1925 403 +1926 402 +1927 403 +1928 403 +1929 402 +1930 403 +1931 403 +1932 402 +1933 403 +1934 403 +1935 402 +1936 403 +1937 403 +1938 402 +1939 403 +1940 403 +1941 402 +1942 403 +1943 403 +1944 402 +1945 403 +1946 403 +1947 402 +1948 403 +1949 403 +1950 402 +1951 403 +1952 403 +1953 402 +1954 403 +1955 403 +1956 402 +1957 403 +1958 403 +1959 402 +1960 403 +1961 403 +1962 402 +1963 403 +1964 403 +1965 402 +1966 403 +1967 403 +1968 402 +1969 403 +1970 403 +1971 402 +1972 403 +1973 403 +1974 402 +1975 403 +1976 403 +1977 402 +1978 403 +1979 403 +1980 402 +1981 403 +1982 403 +1983 402 +1984 403 +1985 403 +1986 402 +1987 403 +1988 403 +1989 402 +1990 403 +1991 403 +1992 402 +1993 403 +1994 403 +1995 402 +1996 403 +1997 403 +1998 402 +1999 403 +2000 403 +2001 402 +2002 403 +2003 403 +2004 402 +2005 403 +2006 403 +2007 402 +2008 403 +2009 403 +2010 402 +2011 403 +2012 403 +2013 402 +2014 403 +2015 403 +2016 402 +2017 403 +2018 403 +2019 402 +2020 403 +2021 403 +2022 402 +2023 403 +2024 403 +2025 402 +2026 403 +2027 403 +2028 402 +2029 403 +2030 403 +2031 402 +2032 403 +2033 403 +2034 402 +2035 403 +2036 403 +2037 402 +2038 403 +2039 403 +2040 402 +2041 403 +2042 403 +2043 402 +2044 403 +2045 403 +2046 402 +2047 403 +2048 403 +2049 402 +2050 403 +2051 403 +2052 402 +2053 403 +2054 403 +2055 402 +2056 403 +2057 403 +2058 402 +2059 403 +2060 403 +2061 402 +2062 403 +2063 403 +2064 402 +2065 403 +2066 403 +2067 402 +2068 403 +2069 403 +2070 402 +2071 403 +2072 403 +2073 402 +2074 403 +2075 403 +2076 402 +2077 403 +2078 403 +2079 402 +2080 403 +2081 403 +2082 402 +2083 403 +2084 403 +2085 402 +2086 403 +2087 403 +2088 402 +2089 403 +2090 403 +2091 402 +2092 403 +2093 403 +2094 402 +2095 403 +2096 403 +2097 402 +2098 403 +2099 403 +2100 402 +2101 403 +2102 403 +2103 402 +2104 403 +2105 403 +2106 402 +2107 403 +2108 403 +2109 402 +2110 403 +2111 403 +2112 402 +2113 403 +2114 403 +2115 402 +2116 403 +2117 403 +2118 402 +2119 403 +2120 403 +2121 402 +2122 403 +2123 403 +2124 402 +2125 403 +2126 403 +2127 402 +2128 403 +2129 403 +2130 402 +2131 403 +2132 403 +2133 402 +2134 403 +2135 403 +2136 402 +2137 403 +2138 403 +2139 402 +2140 403 +2141 403 +2142 402 +2143 403 +2144 403 +2145 402 +2146 403 +2147 403 +2148 402 +2149 403 +2150 403 +2151 402 +2152 403 +2153 403 +2154 402 +2155 403 +2156 403 +2157 402 +2158 403 +2159 403 +2160 402 +2161 403 +2162 403 +2163 402 +2164 403 +2165 403 +2166 402 +2167 403 +2168 403 +2169 402 +2170 403 +2171 403 +2172 402 +2173 403 +2174 403 +2175 402 +2176 403 +2177 403 +2178 402 +2179 403 +2180 403 +2181 402 +2182 403 +2183 403 +2184 402 +2185 403 +2186 403 +2187 402 +2188 403 +2189 403 +2190 402 +2191 403 +2192 403 +2193 402 +2194 403 +2195 403 +2196 402 +2197 403 +2198 403 +2199 402 +2200 403 +2201 403 +2202 402 +2203 403 +2204 403 +2205 402 +2206 403 +2207 403 +2208 402 +2209 403 +2210 403 +2211 402 +2212 403 +2213 403 +2214 402 +2215 403 +2216 403 +2217 402 +2218 403 +2219 403 +2220 402 +2221 403 +2222 403 +2223 402 +2224 403 +2225 403 +2226 402 +2227 403 +2228 403 +2229 402 +2230 403 +2231 403 +2232 402 +2233 403 +2234 403 +2235 402 +2236 403 +2237 403 +2238 402 +2239 403 +2240 403 +2241 402 +2242 403 +2243 403 +2244 402 +2245 403 +2246 403 +2247 402 +2248 403 +2249 403 +2250 402 +2251 403 +2252 403 +2253 402 +2254 403 +2255 403 +2256 402 +2257 403 +2258 403 +2259 402 +2260 403 +2261 403 +2262 402 +2263 403 +2264 403 +2265 402 +2266 403 +2267 403 +2268 402 +2269 403 +2270 403 +2271 402 +2272 403 +2273 403 +2274 402 +2275 403 +2276 403 +2277 402 +2278 403 +2279 403 +2280 402 +2281 403 +2282 403 +2283 402 +2284 403 +2285 403 +2286 402 +2287 403 +2288 403 +2289 402 +2290 403 +2291 403 +2292 402 +2293 403 +2294 403 +2295 402 +2296 403 +2297 403 +2298 402 +2299 403 +2300 403 +2301 402 +2302 403 +2303 403 +2304 402 +2305 403 +2306 403 +2307 402 +2308 403 +2309 403 +2310 402 +2311 403 +2312 403 +2313 402 +2314 403 +2315 403 +2316 402 +2317 403 +2318 403 +2319 402 +2320 403 +2321 403 +2322 402 +2323 403 +2324 403 +2325 402 +2326 403 +2327 403 +2328 402 +2329 403 +2330 403 +2331 402 +2332 403 +2333 403 +2334 402 +2335 403 +2336 403 +2337 402 +2338 403 +2339 403 +2340 402 +2341 403 +2342 403 +2343 402 +2344 403 +2345 403 +2346 402 +2347 403 +2348 403 +2349 402 +2350 403 +2351 403 +2352 402 +2353 403 +2354 403 +2355 402 +2356 403 +2357 403 +2358 402 +2359 403 +2360 403 +2361 402 +2362 403 +2363 403 +2364 402 +2365 403 +2366 403 +2367 402 +2368 403 +2369 403 +2370 402 +2371 403 +2372 403 +2373 402 +2374 403 +2375 403 +2376 402 +2377 403 +2378 403 +2379 402 +2380 403 +2381 403 +2382 402 +2383 403 +2384 403 +2385 402 +2386 403 +2387 403 +2388 402 +2389 403 +2390 403 +2391 402 +2392 403 +2393 403 +2394 402 +2395 403 +2396 403 +2397 402 +2398 403 +2399 403 +2400 402 +2401 403 +2402 403 +2403 402 +2404 403 +2405 403 +2406 402 +2407 403 +2408 403 +2409 402 +2410 403 +2411 403 +2412 402 +2413 403 +2414 403 +2415 402 +2416 403 +2417 403 +2418 402 +2419 403 +2420 403 +2421 402 +2422 403 +2423 403 +2424 402 +2425 403 +2426 403 +2427 402 +2428 403 +2429 403 +2430 402 +2431 403 +2432 403 +2433 402 +2434 403 +2435 403 +2436 402 +2437 403 +2438 403 +2439 402 +2440 403 +2441 403 +2442 402 +2443 403 +2444 403 +2445 402 +2446 403 +2447 403 +2448 402 +2449 403 +2450 403 +2451 402 +2452 403 +2453 403 +2454 402 +2455 403 +2456 403 +2457 402 +2458 403 +2459 403 +2460 402 +2461 403 +2462 403 +2463 402 +2464 403 +2465 403 +2466 402 +2467 403 +2468 403 +2469 402 +2470 403 +2471 403 +2472 402 +2473 403 +2474 403 +2475 402 +2476 403 +2477 403 +2478 402 +2479 403 +2480 403 +2481 402 +2482 403 +2483 403 +2484 402 +2485 403 +2486 403 +2487 402 +2488 403 +2489 403 +2490 402 +2491 403 +2492 403 +2493 402 +2494 403 +2495 403 +2496 402 +2497 403 +2498 403 +2499 402 +2500 403 +2501 403 +2502 402 +2503 403 +2504 403 +2505 402 +2506 403 +2507 403 +2508 402 +2509 403 +2510 403 +2511 402 +2512 403 +2513 403 +2514 402 +2515 403 +2516 403 +2517 402 +2518 403 +2519 403 +2520 402 +2521 403 +2522 403 +2523 402 +2524 403 +2525 403 +2526 402 +2527 403 +2528 403 +2529 402 +2530 403 +2531 403 +2532 402 +2533 403 +2534 403 +2535 402 +2536 403 +2537 403 +2538 402 +2539 403 +2540 403 +2541 402 +2542 403 +2543 403 +2544 402 +2545 403 +2546 403 +2547 402 +2548 403 +2549 403 +2550 402 +2551 403 +2552 403 +2553 402 +2554 403 +2555 403 +2556 402 +2557 403 +2558 403 +2559 402 +2560 403 +2561 403 +2562 402 +2563 403 +2564 403 +2565 402 +2566 403 +2567 403 +2568 402 +2569 403 +2570 403 +2571 402 +2572 403 +2573 403 +2574 402 +2575 403 +2576 403 +2577 402 +2578 403 +2579 403 +2580 402 +2581 403 +2582 403 +2583 402 +2584 403 +2585 403 +2586 402 +2587 403 +2588 403 +2589 402 +2590 403 +2591 403 +2592 402 +2593 403 +2594 403 +2595 402 +2596 403 +2597 403 +2598 402 +2599 403 +2600 403 +2601 402 +2602 403 +2603 403 +2604 402 +2605 403 +2606 403 +2607 402 +2608 403 +2609 403 +2610 402 +2611 403 +2612 403 +2613 402 +2614 403 +2615 403 +2616 402 +2617 403 +2618 403 +2619 402 +2620 403 +2621 403 +2622 402 +2623 403 +2624 403 +2625 402 +2626 403 +2627 403 +2628 402 +2629 403 +2630 403 +2631 402 +2632 403 +2633 403 +2634 402 +2635 403 +2636 403 +2637 402 +2638 403 +2639 403 +2640 402 +2641 403 +2642 403 +2643 402 +2644 403 +2645 403 +2646 402 +2647 403 +2648 403 +2649 402 +2650 403 +2651 403 +2652 402 +2653 403 +2654 403 +2655 402 +2656 403 +2657 403 +2658 402 +2659 403 +2660 403 +2661 402 +2662 403 +2663 403 +2664 402 +2665 403 +2666 403 +2667 402 +2668 403 +2669 403 +2670 402 +2671 403 +2672 403 +2673 402 +2674 403 +2675 403 +2676 402 +2677 403 +2678 403 +2679 402 +2680 403 +2681 403 +2682 402 +2683 403 +2684 403 +2685 402 +2686 403 +2687 403 +2688 402 +2689 403 +2690 403 +2691 402 +2692 403 +2693 403 +2694 402 +2695 403 +2696 403 +2697 402 +2698 403 +2699 403 +2700 402 +2701 403 +2702 403 +2703 402 +2704 403 +2705 403 +2706 402 +2707 403 +2708 403 +2709 402 +2710 403 +2711 403 +2712 402 +2713 403 +2714 403 +2715 402 +2716 403 +2717 403 +2718 402 +2719 403 +2720 403 +2721 402 +2722 403 +2723 403 +2724 402 +2725 403 +2726 403 +2727 402 +2728 403 +2729 403 +2730 402 +2731 403 +2732 403 +2733 402 +2734 403 +2735 403 +2736 402 +2737 403 +2738 403 +2739 402 +2740 403 +2741 403 +2742 402 +2743 403 +2744 403 +2745 402 +2746 403 +2747 403 +2748 402 +2749 403 +2750 403 +2751 402 +2752 403 +2753 403 +2754 402 +2755 403 +2756 403 +2757 402 +2758 403 +2759 403 +2760 402 +2761 403 +2762 403 +2763 402 +2764 403 +2765 403 +2766 402 +2767 403 +2768 403 +2769 402 +2770 403 +2771 403 +2772 402 +2773 403 +2774 403 +2775 402 +2776 403 +2777 403 +2778 402 +2779 403 +2780 403 +2781 402 +2782 403 +2783 403 +2784 402 +2785 403 +2786 403 +2787 402 +2788 403 +2789 403 +2790 402 +2791 403 +2792 403 +2793 402 +2794 403 +2795 403 +2796 402 +2797 403 +2798 403 +2799 402 +2800 403 +2801 403 +2802 402 +2803 403 +2804 403 +2805 402 +2806 403 +2807 403 +2808 402 +2809 403 +2810 403 +2811 402 +2812 403 +2813 403 +2814 402 +2815 403 +2816 403 +2817 402 +2818 403 +2819 403 +2820 402 +2821 403 +2822 403 +2823 402 +2824 403 +2825 403 +2826 402 +2827 403 +2828 403 +2829 402 +2830 403 +2831 403 +2832 402 +2833 403 +2834 403 +2835 402 +2836 403 +2837 403 +2838 402 +2839 403 +2840 403 +2841 402 +2842 403 +2843 403 +2844 402 +2845 403 +2846 403 +2847 402 +2848 403 +2849 403 +2850 402 +2851 403 +2852 403 +2853 402 +2854 403 +2855 403 +2856 402 +2857 403 +2858 403 +2859 402 +2860 403 +2861 403 +2862 402 +2863 403 +2864 403 +2865 402 +2866 403 +2867 403 +2868 402 +2869 403 +2870 403 +2871 402 +2872 403 +2873 403 +2874 402 +2875 403 +2876 403 +2877 402 +2878 403 +2879 403 +2880 402 +2881 403 +2882 403 +2883 402 +2884 403 +2885 403 +2886 402 +2887 403 +2888 403 +2889 402 +2890 403 +2891 403 +2892 402 +2893 403 +2894 403 +2895 402 +2896 403 +2897 403 +2898 402 +2899 403 +2900 403 +2901 402 +2902 403 +2903 403 +2904 402 +2905 403 +2906 403 +2907 402 +2908 403 +2909 403 +2910 402 +2911 403 +2912 403 +2913 402 +2914 403 +2915 403 +2916 402 +2917 403 +2918 403 +2919 402 +2920 403 +2921 403 +2922 402 +2923 403 +2924 403 +2925 402 +2926 403 +2927 403 +2928 402 +2929 403 +2930 403 +2931 402 +2932 403 +2933 403 +2934 402 +2935 403 +2936 403 +2937 402 +2938 403 +2939 403 +2940 402 +2941 403 +2942 403 +2943 402 +2944 403 +2945 403 +2946 402 +2947 403 +2948 403 +2949 402 +2950 403 +2951 403 +2952 402 +2953 403 +2954 403 +2955 402 +2956 403 +2957 403 +2958 402 +2959 403 +2960 403 +2961 402 +2962 403 +2963 403 +2964 402 +2965 403 +2966 403 +2967 402 +2968 403 +2969 403 +2970 402 +2971 403 +2972 403 +2973 402 +2974 403 +2975 403 +2976 402 +2977 403 +2978 403 +2979 402 +2980 403 +2981 403 +2982 402 +2983 403 +2984 403 +2985 402 +2986 403 +2987 403 +2988 402 +2989 403 +2990 403 +2991 402 +2992 403 +2993 403 +2994 402 +2995 403 +2996 403 +2997 402 +2998 403 +2999 403 +3000 402 +3001 403 +3002 403 +3003 402 +3004 403 +3005 403 +3006 402 +3007 403 +3008 403 +3009 402 +3010 403 +3011 403 +3012 402 +3013 403 +3014 403 +3015 402 +3016 403 +3017 403 +3018 402 +3019 403 +3020 403 +3021 402 +3022 403 +3023 403 +3024 402 +3025 403 +3026 403 +3027 402 +3028 403 +3029 403 +3030 402 +3031 403 +3032 403 +3033 402 +3034 403 +3035 403 +3036 402 +3037 403 +3038 403 +3039 402 +3040 403 +3041 403 +3042 402 +3043 403 +3044 403 +3045 402 +3046 403 +3047 403 +3048 402 +3049 403 +3050 403 +3051 402 +3052 403 +3053 403 +3054 402 +3055 403 +3056 403 +3057 402 +3058 403 +3059 403 +3060 402 +3061 403 +3062 403 +3063 402 +3064 403 +3065 403 +3066 402 +3067 403 +3068 403 +3069 402 +3070 403 +3071 403 +3072 402 +3073 403 +3074 403 +3075 402 +3076 403 +3077 403 +3078 402 +3079 403 +3080 403 +3081 402 +3082 403 +3083 403 +3084 402 +3085 403 +3086 403 +3087 402 +3088 403 +3089 403 +3090 402 +3091 403 +3092 403 +3093 402 +3094 403 +3095 403 +3096 402 +3097 403 +3098 403 +3099 402 +3100 403 +3101 403 +3102 402 +3103 403 +3104 403 +3105 402 +3106 403 +3107 403 +3108 402 +3109 403 +3110 403 +3111 402 +3112 403 +3113 403 +3114 402 +3115 403 +3116 403 +3117 402 +3118 403 +3119 403 +3120 402 +3121 403 +3122 403 +3123 402 +3124 403 +3125 403 +3126 402 +3127 403 +3128 403 +3129 402 +3130 403 +3131 403 +3132 402 +3133 403 +3134 403 +3135 402 +3136 403 +3137 403 +3138 402 +3139 403 +3140 403 +3141 402 +3142 403 +3143 403 +3144 402 +3145 403 +3146 403 +3147 402 +3148 403 +3149 403 +3150 402 +3151 403 +3152 403 +3153 402 +3154 403 +3155 403 +3156 402 +3157 403 +3158 403 +3159 402 +3160 403 +3161 403 +3162 402 +3163 403 +3164 403 +3165 402 +3166 403 +3167 403 +3168 402 +3169 403 +3170 403 +3171 402 +3172 403 +3173 403 +3174 402 +3175 403 +3176 403 +3177 402 +3178 403 +3179 403 +3180 402 +3181 403 +3182 403 +3183 402 +3184 403 +3185 403 +3186 402 +3187 403 +3188 403 +3189 402 +3190 403 +3191 403 +3192 402 +3193 403 +3194 403 +3195 402 +3196 403 +3197 403 +3198 402 +3199 403 +3200 403 +3201 402 +3202 403 +3203 403 +3204 402 +3205 403 +3206 403 +3207 402 +3208 403 +3209 403 +3210 402 +3211 403 +3212 403 +3213 402 +3214 403 +3215 403 +3216 402 +3217 403 +3218 403 +3219 402 +3220 403 +3221 403 +3222 402 +3223 403 +3224 403 +3225 402 +3226 403 +3227 403 +3228 402 +3229 403 +3230 403 +3231 402 +3232 403 +3233 403 +3234 402 +3235 403 +3236 403 +3237 402 +3238 403 +3239 403 +3240 402 +3241 403 +3242 403 +3243 402 +3244 403 +3245 403 +3246 402 +3247 403 +3248 403 +3249 402 +3250 403 +3251 403 +3252 402 +3253 403 +3254 403 +3255 402 +3256 403 +3257 403 +3258 402 +3259 403 +3260 403 +3261 402 +3262 403 +3263 403 +3264 402 +3265 403 +3266 403 +3267 402 +3268 403 +3269 403 +3270 402 +3271 403 +3272 403 +3273 402 +3274 403 +3275 403 +3276 402 +3277 403 +3278 403 +3279 402 +3280 403 +3281 403 +3282 402 +3283 403 +3284 403 +3285 402 +3286 403 +3287 403 +3288 402 +3289 403 +3290 403 +3291 402 +3292 403 +3293 403 +3294 402 +3295 403 +3296 403 +3297 402 +3298 403 +3299 403 +3300 402 +3301 403 +3302 403 +3303 402 +3304 403 +3305 403 +3306 402 +3307 403 +3308 403 +3309 402 +3310 403 +3311 403 +3312 402 +3313 403 +3314 403 +3315 402 +3316 403 +3317 403 +3318 402 +3319 403 +3320 403 +3321 402 +3322 403 +3323 403 +3324 402 +3325 403 +3326 403 +3327 402 +3328 403 +3329 403 +3330 402 +3331 403 +3332 403 +3333 402 +3334 403 +3335 403 +3336 402 +3337 403 +3338 403 +3339 402 +3340 403 +3341 403 +3342 402 +3343 403 +3344 403 +3345 402 +3346 403 +3347 403 +3348 402 +3349 403 +3350 403 +3351 402 +3352 403 +3353 403 +3354 402 +3355 403 +3356 403 +3357 402 +3358 403 +3359 403 +3360 402 +3361 403 +3362 403 +3363 402 +3364 403 +3365 403 +3366 402 +3367 403 +3368 403 +3369 402 +3370 403 +3371 403 +3372 402 +3373 403 +3374 403 +3375 402 +3376 403 +3377 403 +3378 402 +3379 403 +3380 403 +3381 402 +3382 403 +3383 403 +3384 402 +3385 403 +3386 403 +3387 402 +3388 403 +3389 403 +3390 402 +3391 403 +3392 403 +3393 402 +3394 403 +3395 403 +3396 402 +3397 403 +3398 403 +3399 402 +3400 403 +3401 403 +3402 402 +3403 403 +3404 403 +3405 402 +3406 403 +3407 403 +3408 402 +3409 403 +3410 403 +3411 402 +3412 403 +3413 403 +3414 402 +3415 403 +3416 403 +3417 402 +3418 403 +3419 403 +3420 402 +3421 403 +3422 403 +3423 402 +3424 403 +3425 403 +3426 402 +3427 403 +3428 403 +3429 402 +3430 403 +3431 403 +3432 402 +3433 403 +3434 403 +3435 402 +3436 403 +3437 403 +3438 402 +3439 403 +3440 403 +3441 402 +3442 403 +3443 403 +3444 402 +3445 403 +3446 403 +3447 402 +3448 403 +3449 403 +3450 402 +3451 403 +3452 403 +3453 402 +3454 403 +3455 403 +3456 402 +3457 403 +3458 403 +3459 402 +3460 403 +3461 403 +3462 402 +3463 403 +3464 403 +3465 402 +3466 403 +3467 403 +3468 402 +3469 403 +3470 403 +3471 402 +3472 403 +3473 403 +3474 402 +3475 403 +3476 403 +3477 402 +3478 403 +3479 403 +3480 402 +3481 403 +3482 403 +3483 402 +3484 403 +3485 403 +3486 402 +3487 403 +3488 403 +3489 402 +3490 403 +3491 403 +3492 402 +3493 403 +3494 403 +3495 402 +3496 403 +3497 403 +3498 402 +3499 403 +3500 403 +3501 402 +3502 403 +3503 403 +3504 402 +3505 403 +3506 403 +3507 402 +3508 403 +3509 403 +3510 402 +3511 403 +3512 403 +3513 402 +3514 403 +3515 403 +3516 402 +3517 403 +3518 403 +3519 402 +3520 403 +3521 403 +3522 402 +3523 403 +3524 403 +3525 402 +3526 403 +3527 403 +3528 402 +3529 403 +3530 403 +3531 402 +3532 403 +3533 403 +3534 402 +3535 403 +3536 403 +3537 402 +3538 403 +3539 403 +3540 402 +3541 403 +3542 403 +3543 402 +3544 403 +3545 403 +3546 402 +3547 403 +3548 403 +3549 402 +3550 403 +3551 403 +3552 402 +3553 403 +3554 403 +3555 402 +3556 403 +3557 403 +3558 402 +3559 403 +3560 403 +3561 402 +3562 403 +3563 403 +3564 402 +3565 403 +3566 403 +3567 402 +3568 403 +3569 403 +3570 402 +3571 403 +3572 403 +3573 402 +3574 403 +3575 403 +3576 402 +3577 403 +3578 403 +3579 402 +3580 403 +3581 403 +3582 402 +3583 403 +3584 403 +3585 402 +3586 403 +3587 403 +3588 402 +3589 403 +3590 403 +3591 402 +3592 403 +3593 403 +3594 402 +3595 403 +3596 403 +3597 402 +3598 403 +3599 403 +3600 402 +3601 403 +3602 403 +3603 402 +3604 403 +3605 403 +3606 402 +3607 403 +3608 403 +3609 402 +3610 403 +3611 403 +3612 402 +3613 403 +3614 403 +3615 402 +3616 403 +3617 403 +3618 402 +3619 403 +3620 403 +3621 402 +3622 403 +3623 403 +3624 402 +3625 403 +3626 403 +3627 402 +3628 403 +3629 403 +3630 402 +3631 403 +3632 403 +3633 402 +3634 403 +3635 403 +3636 402 +3637 403 +3638 403 +3639 402 +3640 403 +3641 403 +3642 402 +3643 403 +3644 403 +3645 402 +3646 403 +3647 403 +3648 402 +3649 403 +3650 403 +3651 402 +3652 403 +3653 403 +3654 402 +3655 403 +3656 403 +3657 402 +3658 403 +3659 403 +3660 402 +3661 403 +3662 403 +3663 402 +3664 403 +3665 403 +3666 402 +3667 403 +3668 403 +3669 402 +3670 403 +3671 403 +3672 402 +3673 403 +3674 403 +3675 402 +3676 403 +3677 403 +3678 402 +3679 403 +3680 403 +3681 402 +3682 403 +3683 403 +3684 402 +3685 403 +3686 403 +3687 402 +3688 403 +3689 403 +3690 402 +3691 403 +3692 403 +3693 402 +3694 403 +3695 403 +3696 402 +3697 403 +3698 403 +3699 402 +3700 403 +3701 403 +3702 402 +3703 403 +3704 403 +3705 402 +3706 403 +3707 403 +3708 402 +3709 403 +3710 403 +3711 402 +3712 403 +3713 403 +3714 402 +3715 403 +3716 403 +3717 402 +3718 403 +3719 403 +3720 402 +3721 403 +3722 403 +3723 402 +3724 403 +3725 403 +3726 402 +3727 403 +3728 403 +3729 402 +3730 403 +3731 403 +3732 402 +3733 403 +3734 403 +3735 402 +3736 403 +3737 403 +3738 402 +3739 403 +3740 403 +3741 402 +3742 403 +3743 403 +3744 402 +3745 403 +3746 403 +3747 402 +3748 403 +3749 403 +3750 402 +3751 403 +3752 403 +3753 402 +3754 403 +3755 403 +3756 402 +3757 403 +3758 403 +3759 402 +3760 403 +3761 403 +3762 402 +3763 403 +3764 403 +3765 402 +3766 403 +3767 403 +3768 402 +3769 403 +3770 403 +3771 402 +3772 403 +3773 403 +3774 402 +3775 403 +3776 403 +3777 402 +3778 403 +3779 403 +3780 402 +3781 403 +3782 403 +3783 402 +3784 403 +3785 403 +3786 402 +3787 403 +3788 403 +3789 402 +3790 403 +3791 403 +3792 402 +3793 403 +3794 403 +3795 402 +3796 403 +3797 403 +3798 402 +3799 403 +3800 403 +3801 402 +3802 403 +3803 403 +3804 402 +3805 403 +3806 403 +3807 402 +3808 403 +3809 403 +3810 402 +3811 403 +3812 403 +3813 402 +3814 403 +3815 403 +3816 402 +3817 403 +3818 403 +3819 402 +3820 403 +3821 403 +3822 402 +3823 403 +3824 403 +3825 402 +3826 403 +3827 403 +3828 402 +3829 403 +3830 403 +3831 402 +3832 403 +3833 403 +3834 402 +3835 403 +3836 403 +3837 402 +3838 403 +3839 403 +3840 402 +3841 403 +3842 403 +3843 402 +3844 403 +3845 403 +3846 402 +3847 403 +3848 403 +3849 402 +3850 403 +3851 403 +3852 402 +3853 403 +3854 403 +3855 402 +3856 403 +3857 403 +3858 402 +3859 403 +3860 403 +3861 402 +3862 403 +3863 403 +3864 402 +3865 403 +3866 403 +3867 402 +3868 403 +3869 403 +3870 402 +3871 403 +3872 403 +3873 402 +3874 403 +3875 403 +3876 402 +3877 403 +3878 403 +3879 402 +3880 403 +3881 403 +3882 402 +3883 403 +3884 403 +3885 402 +3886 403 +3887 403 +3888 402 +3889 403 +3890 403 +3891 402 +3892 403 +3893 403 +3894 402 +3895 403 +3896 403 +3897 402 +3898 403 +3899 403 +3900 402 +3901 403 +3902 403 +3903 402 +3904 403 +3905 403 +3906 402 +3907 403 +3908 403 +3909 402 +3910 403 +3911 403 +3912 402 +3913 403 +3914 403 +3915 402 +3916 403 +3917 403 +3918 402 +3919 403 +3920 403 +3921 402 +3922 403 +3923 403 +3924 402 +3925 403 +3926 403 +3927 402 +3928 403 +3929 403 +3930 402 +3931 403 +3932 403 +3933 402 +3934 403 +3935 403 +3936 402 +3937 403 +3938 403 +3939 402 +3940 403 +3941 403 +3942 402 +3943 403 +3944 403 +3945 402 +3946 403 +3947 403 +3948 402 +3949 403 +3950 403 +3951 402 +3952 403 +3953 403 +3954 402 +3955 403 +3956 403 +3957 402 +3958 403 +3959 403 +3960 402 +3961 403 +3962 403 +3963 402 +3964 403 +3965 403 +3966 402 +3967 403 +3968 403 +3969 402 +3970 403 +3971 403 +3972 402 +3973 403 +3974 403 +3975 402 +3976 403 +3977 403 +3978 402 +3979 403 +3980 403 +3981 402 +3982 403 +3983 403 +3984 402 +3985 403 +3986 403 +3987 402 +3988 403 +3989 403 +3990 402 +3991 403 +3992 403 +3993 402 +3994 403 +3995 403 +3996 402 +3997 403 +3998 403 +3999 402 +4000 403 +4001 403 +4002 402 +4003 403 +4004 403 +4005 402 +4006 403 +4007 403 +4008 402 +4009 403 +4010 403 +4011 402 +4012 403 +4013 403 +4014 402 +4015 403 +4016 403 +4017 402 +4018 403 +4019 403 +4020 402 +4021 403 +4022 403 +4023 402 +4024 403 +4025 403 +4026 402 +4027 403 +4028 403 +4029 402 +4030 403 +4031 403 +4032 402 +4033 403 +4034 403 +4035 402 +4036 403 +4037 403 +4038 402 +4039 403 +4040 403 +4041 402 +4042 403 +4043 403 +4044 402 +4045 403 +4046 403 +4047 402 +4048 403 +4049 403 +4050 402 +4051 403 +4052 403 +4053 402 +4054 403 +4055 403 +4056 402 +4057 403 +4058 403 +4059 402 +4060 403 +4061 403 +4062 402 +4063 403 +4064 403 +4065 402 +4066 403 +4067 403 +4068 402 +4069 403 +4070 403 +4071 402 +4072 403 +4073 403 +4074 402 +4075 403 +4076 403 +4077 402 +4078 403 +4079 403 +4080 402 +4081 403 +4082 403 +4083 402 +4084 403 +4085 403 +4086 402 +4087 403 +4088 403 +4089 402 +4090 403 +4091 403 +4092 402 +4093 403 +4094 403 +4095 402 +4096 403 +4097 403 +4098 402 +4099 403 +4100 403 +4101 402 +4102 403 +4103 403 +4104 402 +4105 403 +4106 403 +4107 402 +4108 403 +4109 403 +4110 402 +4111 403 +4112 403 +4113 402 +4114 403 +4115 403 +4116 402 +4117 403 +4118 403 +4119 402 +4120 403 +4121 403 +4122 402 +4123 403 +4124 403 +4125 402 +4126 403 +4127 403 +4128 402 +4129 403 +4130 403 +4131 402 +4132 403 +4133 403 +4134 402 +4135 403 +4136 403 +4137 402 +4138 403 +4139 403 +4140 402 +4141 403 +4142 403 +4143 402 +4144 403 +4145 403 +4146 402 +4147 403 +4148 403 +4149 402 +4150 403 +4151 403 +4152 402 +4153 403 +4154 403 +4155 402 +4156 403 +4157 403 +4158 402 +4159 403 +4160 403 +4161 402 +4162 403 +4163 403 +4164 402 +4165 403 +4166 403 +4167 402 +4168 403 +4169 403 +4170 402 +4171 403 +4172 403 +4173 402 +4174 403 +4175 403 +4176 402 +4177 403 +4178 403 +4179 402 +4180 403 +4181 403 +4182 402 +4183 403 +4184 403 +4185 402 +4186 403 +4187 403 +4188 402 +4189 403 +4190 403 +4191 402 +4192 403 +4193 403 +4194 402 +4195 403 +4196 403 +4197 402 +4198 403 +4199 403 +4200 402 +4201 403 +4202 403 +4203 402 +4204 403 +4205 403 +4206 402 +4207 403 +4208 403 +4209 402 +4210 403 +4211 403 +4212 402 +4213 403 +4214 403 +4215 402 +4216 403 +4217 403 +4218 402 +4219 403 +4220 403 +4221 402 +4222 403 +4223 403 +4224 402 +4225 403 +4226 403 +4227 402 +4228 403 +4229 403 +4230 402 +4231 403 +4232 403 +4233 402 +4234 403 +4235 403 +4236 402 +4237 403 +4238 403 +4239 402 +4240 403 +4241 403 +4242 402 +4243 403 +4244 403 +4245 402 +4246 403 +4247 403 +4248 402 +4249 403 +4250 403 +4251 402 +4252 403 +4253 403 +4254 402 +4255 403 +4256 403 +4257 402 +4258 403 +4259 403 +4260 402 +4261 403 +4262 403 +4263 402 +4264 403 +4265 403 +4266 402 +4267 403 +4268 403 +4269 402 +4270 403 +4271 403 +4272 402 +4273 403 +4274 403 +4275 402 +4276 403 +4277 403 +4278 402 +4279 403 +4280 403 +4281 402 +4282 403 +4283 403 +4284 402 +4285 403 +4286 403 +4287 402 +4288 403 +4289 403 +4290 402 +4291 403 +4292 403 +4293 402 +4294 403 +4295 403 +4296 402 +4297 403 +4298 403 +4299 402 +4300 403 +4301 403 +4302 402 +4303 403 +4304 403 +4305 402 +4306 403 +4307 403 +4308 402 +4309 403 +4310 403 +4311 402 +4312 403 +4313 403 +4314 402 +4315 403 +4316 403 +4317 402 +4318 403 +4319 403 +4320 402 +4321 403 +4322 403 +4323 402 +4324 403 +4325 403 +4326 402 +4327 403 +4328 403 +4329 402 +4330 403 +4331 403 +4332 402 +4333 403 +4334 403 +4335 402 +4336 403 +4337 403 +4338 402 +4339 403 +4340 403 +4341 402 +4342 403 +4343 403 +4344 402 +4345 403 +4346 403 +4347 402 +4348 403 +4349 403 +4350 402 +4351 403 +4352 403 +4353 402 +4354 403 +4355 403 +4356 402 +4357 403 +4358 403 +4359 402 +4360 403 +4361 403 +4362 402 +4363 403 +4364 403 +4365 402 +4366 403 +4367 403 +4368 402 +4369 403 +4370 403 +4371 402 +4372 403 +4373 403 +4374 402 +4375 403 +4376 403 +4377 402 +4378 403 +4379 403 +4380 402 +4381 403 +4382 403 +4383 402 +4384 403 +4385 403 +4386 402 +4387 403 +4388 403 +4389 402 +4390 403 +4391 403 +4392 402 +4393 403 +4394 403 +4395 402 +4396 403 +4397 403 +4398 402 +4399 403 +4400 403 +4401 402 +4402 403 +4403 403 +4404 402 +4405 403 +4406 403 +4407 402 +4408 403 +4409 403 +4410 402 +4411 403 +4412 403 +4413 402 +4414 403 +4415 403 +4416 402 +4417 403 +4418 403 +4419 402 +4420 403 +4421 403 +4422 402 +4423 403 +4424 403 +4425 402 +4426 403 +4427 403 +4428 402 +4429 403 +4430 403 +4431 402 +4432 403 +4433 403 +4434 402 +4435 403 +4436 403 +4437 402 +4438 403 +4439 403 +4440 402 +4441 403 +4442 403 +4443 402 +4444 403 +4445 403 +4446 402 +4447 403 +4448 403 +4449 402 +4450 403 +4451 403 +4452 402 +4453 403 +4454 403 +4455 402 +4456 403 +4457 403 +4458 402 +4459 403 +4460 403 +4461 402 +4462 403 +4463 403 +4464 402 +4465 403 +4466 403 +4467 402 +4468 403 +4469 403 +4470 402 +4471 403 +4472 403 +4473 402 +4474 403 +4475 403 +4476 402 +4477 403 +4478 403 +4479 402 +4480 403 +4481 403 +4482 402 +4483 403 +4484 403 +4485 402 +4486 403 +4487 403 +4488 402 +4489 403 +4490 403 +4491 402 +4492 403 +4493 403 +4494 402 +4495 403 +4496 403 +4497 402 +4498 403 +4499 403 +4500 402 +4501 403 +4502 403 +4503 402 +4504 403 +4505 403 +4506 402 +4507 403 +4508 403 +4509 402 +4510 403 +4511 403 +4512 402 +4513 403 +4514 403 +4515 402 +4516 403 +4517 403 +4518 402 +4519 403 +4520 403 +4521 402 +4522 403 +4523 403 +4524 402 +4525 403 +4526 403 +4527 402 +4528 403 +4529 403 +4530 402 +4531 403 +4532 403 +4533 402 +4534 403 +4535 403 +4536 402 +4537 403 +4538 403 +4539 402 +4540 403 +4541 403 +4542 402 +4543 403 +4544 403 +4545 402 +4546 403 +4547 403 +4548 402 +4549 403 +4550 403 +4551 402 +4552 403 +4553 403 +4554 402 +4555 403 +4556 403 +4557 402 +4558 403 +4559 403 +4560 402 +4561 403 +4562 403 +4563 402 +4564 403 +4565 403 +4566 402 +4567 403 +4568 403 +4569 402 +4570 403 +4571 403 +4572 402 +4573 403 +4574 403 +4575 402 +4576 403 +4577 403 +4578 402 +4579 403 +4580 403 +4581 402 +4582 403 +4583 403 +4584 402 +4585 403 +4586 403 +4587 402 +4588 403 +4589 403 +4590 402 +4591 403 +4592 403 +4593 402 +4594 403 +4595 403 +4596 402 +4597 403 +4598 403 +4599 402 +4600 403 +4601 403 +4602 402 +4603 403 +4604 403 +4605 402 +4606 403 +4607 403 +4608 402 +4609 403 +4610 403 +4611 402 +4612 403 +4613 403 +4614 402 +4615 403 +4616 403 +4617 402 +4618 403 +4619 403 +4620 402 +4621 403 +4622 403 +4623 402 +4624 403 +4625 403 +4626 402 +4627 403 +4628 403 +4629 402 +4630 403 +4631 403 +4632 402 +4633 403 +4634 403 +4635 402 +4636 403 +4637 403 +4638 402 +4639 403 +4640 403 +4641 402 +4642 403 +4643 403 +4644 402 +4645 403 +4646 403 +4647 402 +4648 403 +4649 403 +4650 402 +4651 403 +4652 403 +4653 402 +4654 403 +4655 403 +4656 402 +4657 403 +4658 403 +4659 402 +4660 403 +4661 403 +4662 402 +4663 403 +4664 403 +4665 402 +4666 403 +4667 403 +4668 402 +4669 403 +4670 403 +4671 402 +4672 403 +4673 403 +4674 402 +4675 403 +4676 403 +4677 402 +4678 403 +4679 403 +4680 402 +4681 403 +4682 403 +4683 402 +4684 403 +4685 403 +4686 402 +4687 403 +4688 403 +4689 402 +4690 403 +4691 403 +4692 402 +4693 403 +4694 403 +4695 402 +4696 403 +4697 403 +4698 402 +4699 403 +4700 403 +4701 402 +4702 403 +4703 403 +4704 402 +4705 403 +4706 403 +4707 402 +4708 403 +4709 403 +4710 402 +4711 403 +4712 403 +4713 402 +4714 403 +4715 403 +4716 402 +4717 403 +4718 403 +4719 402 +4720 403 +4721 403 +4722 402 +4723 403 +4724 403 +4725 402 +4726 403 +4727 403 +4728 402 +4729 403 +4730 403 +4731 402 +4732 403 +4733 403 +4734 402 +4735 403 +4736 403 +4737 402 +4738 403 +4739 403 +4740 402 +4741 403 +4742 403 +4743 402 +4744 403 +4745 403 +4746 402 +4747 403 +4748 403 +4749 402 +4750 403 +4751 403 +4752 402 +4753 403 +4754 403 +4755 402 +4756 403 +4757 403 +4758 402 +4759 403 +4760 403 +4761 402 +4762 403 +4763 403 +4764 402 +4765 403 +4766 403 +4767 402 +4768 403 +4769 403 +4770 402 +4771 403 +4772 403 +4773 402 +4774 403 +4775 403 +4776 402 +4777 403 +4778 403 +4779 402 +4780 403 +4781 403 +4782 402 +4783 403 +4784 403 +4785 402 +4786 403 +4787 403 +4788 402 +4789 403 +4790 403 +4791 402 +4792 403 +4793 403 +4794 402 +4795 403 +4796 403 +4797 402 +4798 403 +4799 403 +4800 402 +4801 403 +4802 403 +4803 402 +4804 403 +4805 403 +4806 402 +4807 403 +4808 403 +4809 402 +4810 403 +4811 403 +4812 402 +4813 403 +4814 403 +4815 402 +4816 403 +4817 403 +4818 402 +4819 403 +4820 403 +4821 402 +4822 403 +4823 403 +4824 402 +4825 403 +4826 403 +4827 402 +4828 403 +4829 403 +4830 402 +4831 403 +4832 403 +4833 402 +4834 403 +4835 403 +4836 402 +4837 403 +4838 403 +4839 402 +4840 403 +4841 403 +4842 402 +4843 403 +4844 403 +4845 402 +4846 403 +4847 403 +4848 402 +4849 403 +4850 403 +4851 402 +4852 403 +4853 403 +4854 402 +4855 403 +4856 403 +4857 402 +4858 403 +4859 403 +4860 402 +4861 403 +4862 403 +4863 402 +4864 403 +4865 403 +4866 402 +4867 403 +4868 403 +4869 402 +4870 403 +4871 403 +4872 402 +4873 403 +4874 403 +4875 402 +4876 403 +4877 403 +4878 402 +4879 403 +4880 403 +4881 402 +4882 403 +4883 403 +4884 402 +4885 403 +4886 403 +4887 402 +4888 403 +4889 403 +4890 402 +4891 403 +4892 403 +4893 402 +4894 403 +4895 403 +4896 402 +4897 403 +4898 403 +4899 402 +4900 403 +4901 403 +4902 402 +4903 403 +4904 403 +4905 402 +4906 403 +4907 403 +4908 402 +4909 403 +4910 403 +4911 402 +4912 403 +4913 403 +4914 402 +4915 403 +4916 403 +4917 402 +4918 403 +4919 403 +4920 402 +4921 403 +4922 403 +4923 402 +4924 403 +4925 403 +4926 402 +4927 403 +4928 403 +4929 402 +4930 403 +4931 403 +4932 402 +4933 403 +4934 403 +4935 402 +4936 403 +4937 403 +4938 402 +4939 403 +4940 403 +4941 402 +4942 403 +4943 403 +4944 402 +4945 403 +4946 403 +4947 402 +4948 403 +4949 403 +4950 402 +4951 403 +4952 403 +4953 402 +4954 403 +4955 403 +4956 402 +4957 403 +4958 403 +4959 402 +4960 403 +4961 403 +4962 402 +4963 403 +4964 403 +4965 402 +4966 403 +4967 403 +4968 402 +4969 403 +4970 403 +4971 402 +4972 403 +4973 403 +4974 402 +4975 403 +4976 403 +4977 402 +4978 403 +4979 403 +4980 402 +4981 403 +4982 403 +4983 402 +4984 403 +4985 403 +4986 402 +4987 403 +4988 403 +4989 402 +4990 403 +4991 403 +4992 402 +4993 403 +4994 403 +4995 402 +4996 403 +4997 403 +4998 402 +4999 403 +5000 403 +5001 402 +5002 403 +5003 403 +5004 402 +5005 403 +5006 403 +5007 402 +5008 403 +5009 403 +5010 402 +5011 403 +5012 403 +5013 402 +5014 403 +5015 403 +5016 402 +5017 403 +5018 403 +5019 402 +5020 403 +5021 403 +5022 402 +5023 403 +5024 403 +5025 402 +5026 403 +5027 403 +5028 402 +5029 403 +5030 403 +5031 402 +5032 403 +5033 403 +5034 402 +5035 403 +5036 403 +5037 402 +5038 403 +5039 403 +5040 402 +5041 403 +5042 403 +5043 402 +5044 403 +5045 403 +5046 402 +5047 403 +5048 403 +5049 402 +5050 403 +5051 403 +5052 402 +5053 403 +5054 403 +5055 402 +5056 403 +5057 403 +5058 402 +5059 403 +5060 403 +5061 402 +5062 403 +5063 403 +5064 402 +5065 403 +5066 403 +5067 402 +5068 403 +5069 403 +5070 402 +5071 403 +5072 403 +5073 402 +5074 403 +5075 403 +5076 402 +5077 403 +5078 403 +5079 402 +5080 403 +5081 403 +5082 402 +5083 403 +5084 403 +5085 402 +5086 403 +5087 403 +5088 402 +5089 403 +5090 403 +5091 402 +5092 403 +5093 403 +5094 402 +5095 403 +5096 403 +5097 402 +5098 403 +5099 403 +5100 402 +5101 403 +5102 403 +5103 402 +5104 403 +5105 403 +5106 402 +5107 403 +5108 403 +5109 402 +5110 403 +5111 403 +5112 402 +5113 403 +5114 403 +5115 402 +5116 403 +5117 403 +5118 402 +5119 403 +5120 403 +5121 402 +5122 403 +5123 403 +5124 402 +5125 403 +5126 403 +5127 402 +5128 403 +5129 403 +5130 402 +5131 403 +5132 403 +5133 402 +5134 403 +5135 403 +5136 402 +5137 403 +5138 403 +5139 402 +5140 403 +5141 403 +5142 402 +5143 403 +5144 403 +5145 402 +5146 403 +5147 403 +5148 402 +5149 403 +5150 403 +5151 402 +5152 403 +5153 403 +5154 402 +5155 403 +5156 403 +5157 402 +5158 403 +5159 403 +5160 402 +5161 403 +5162 403 +5163 402 +5164 403 +5165 403 +5166 402 +5167 403 +5168 403 +5169 402 +5170 403 +5171 403 +5172 402 +5173 403 +5174 403 +5175 402 +5176 403 +5177 403 +5178 402 +5179 403 +5180 403 +5181 402 +5182 403 +5183 403 +5184 402 +5185 403 +5186 403 +5187 402 +5188 403 +5189 403 +5190 402 +5191 403 +5192 403 +5193 402 +5194 403 +5195 403 +5196 402 +5197 403 +5198 403 +5199 402 +5200 403 +5201 403 +5202 402 +5203 403 +5204 403 +5205 402 +5206 403 +5207 403 +5208 402 +5209 403 +5210 403 +5211 402 +5212 403 +5213 403 +5214 402 +5215 403 +5216 403 +5217 402 +5218 403 +5219 403 +5220 402 +5221 403 +5222 403 +5223 402 +5224 403 +5225 403 +5226 402 +5227 403 +5228 403 +5229 402 +5230 403 +5231 403 +5232 402 +5233 403 +5234 403 +5235 402 +5236 403 +5237 403 +5238 402 +5239 403 +5240 403 +5241 402 +5242 403 +5243 403 +5244 402 +5245 403 +5246 403 +5247 402 +5248 403 +5249 403 +5250 402 +5251 403 +5252 403 +5253 402 +5254 403 +5255 403 +5256 402 +5257 403 +5258 403 +5259 402 +5260 403 +5261 403 +5262 402 +5263 403 +5264 403 +5265 402 +5266 403 +5267 403 +5268 402 +5269 403 +5270 403 +5271 402 +5272 403 +5273 403 +5274 402 +5275 403 +5276 403 +5277 402 +5278 403 +5279 403 +5280 402 +5281 403 +5282 403 +5283 402 +5284 403 +5285 403 +5286 402 +5287 403 +5288 403 +5289 402 +5290 403 +5291 403 +5292 402 +5293 403 +5294 403 +5295 402 +5296 403 +5297 403 +5298 402 +5299 403 +5300 403 +5301 402 +5302 403 +5303 403 +5304 402 +5305 403 +5306 403 +5307 402 +5308 403 +5309 403 +5310 402 +5311 403 +5312 403 +5313 402 +5314 403 +5315 403 +5316 402 +5317 403 +5318 403 +5319 402 +5320 403 +5321 403 +5322 402 +5323 403 +5324 403 +5325 402 +5326 403 +5327 403 +5328 402 +5329 403 +5330 403 +5331 402 +5332 403 +5333 403 +5334 402 +5335 403 +5336 403 +5337 402 +5338 403 +5339 403 +5340 402 +5341 403 +5342 403 +5343 402 +5344 403 +5345 403 +5346 402 +5347 403 +5348 403 +5349 402 +5350 403 +5351 403 +5352 402 +5353 403 +5354 403 +5355 402 +5356 403 +5357 403 +5358 402 +5359 403 +5360 403 +5361 402 +5362 403 +5363 403 +5364 402 +5365 403 +5366 403 +5367 402 +5368 403 +5369 403 +5370 402 +5371 403 +5372 403 +5373 402 +5374 403 +5375 403 +5376 402 +5377 403 +5378 403 +5379 402 +5380 403 +5381 403 +5382 402 +5383 403 +5384 403 +5385 402 +5386 403 +5387 403 +5388 402 +5389 403 +5390 403 +5391 402 +5392 403 +5393 403 +5394 402 +5395 403 +5396 403 +5397 402 +5398 403 +5399 403 +5400 402 +5401 403 +5402 403 +5403 402 +5404 403 +5405 403 +5406 402 +5407 403 +5408 403 +5409 402 +5410 403 +5411 403 +5412 402 +5413 403 +5414 403 +5415 402 +5416 403 +5417 403 +5418 402 +5419 403 +5420 403 +5421 402 +5422 403 +5423 403 +5424 402 +5425 403 +5426 403 +5427 402 +5428 403 +5429 403 +5430 402 +5431 403 +5432 403 +5433 402 +5434 403 +5435 403 +5436 402 +5437 403 +5438 403 +5439 402 +5440 403 +5441 403 +5442 402 +5443 403 +5444 403 +5445 402 +5446 403 +5447 403 +5448 402 +5449 403 +5450 403 +5451 402 +5452 403 +5453 403 +5454 402 +5455 403 +5456 403 +5457 402 +5458 403 +5459 403 +5460 402 +5461 403 +5462 403 +5463 402 +5464 403 +5465 403 +5466 402 +5467 403 +5468 403 +5469 402 +5470 403 +5471 403 +5472 402 +5473 403 +5474 403 +5475 402 +5476 403 +5477 403 +5478 402 +5479 403 +5480 403 +5481 402 +5482 403 +5483 403 +5484 402 +5485 403 +5486 403 +5487 402 +5488 403 +5489 403 +5490 402 +5491 403 +5492 403 +5493 402 +5494 403 +5495 403 +5496 402 +5497 403 +5498 403 +5499 402 +5500 403 +5501 403 +5502 402 +5503 403 +5504 403 +5505 402 +5506 403 +5507 403 +5508 402 +5509 403 +5510 403 +5511 402 +5512 403 +5513 403 +5514 402 +5515 403 +5516 403 +5517 402 +5518 403 +5519 403 +5520 402 +5521 403 +5522 403 +5523 402 +5524 403 +5525 403 +5526 402 +5527 403 +5528 403 +5529 402 +5530 403 +5531 403 +5532 402 +5533 403 +5534 403 +5535 402 +5536 403 +5537 403 +5538 402 +5539 403 +5540 403 +5541 402 +5542 403 +5543 403 +5544 402 +5545 403 +5546 403 +5547 402 +5548 403 +5549 403 +5550 402 +5551 403 +5552 403 +5553 402 +5554 403 +5555 403 +5556 402 +5557 403 +5558 403 +5559 402 +5560 403 +5561 403 +5562 402 +5563 403 +5564 403 +5565 402 +5566 403 +5567 403 +5568 402 +5569 403 +5570 403 +5571 402 +5572 403 +5573 403 +5574 402 +5575 403 +5576 403 +5577 402 +5578 403 +5579 403 +5580 402 +5581 403 +5582 403 +5583 402 +5584 403 +5585 403 +5586 402 +5587 403 +5588 403 +5589 402 +5590 403 +5591 403 +5592 402 +5593 403 +5594 403 +5595 402 +5596 403 +5597 403 +5598 402 +5599 403 +5600 403 +5601 402 +5602 403 +5603 403 +5604 402 +5605 403 +5606 403 +5607 402 +5608 403 +5609 403 +5610 402 +5611 403 +5612 403 +5613 402 +5614 403 +5615 403 +5616 402 +5617 403 +5618 403 +5619 402 +5620 403 +5621 403 +5622 402 +5623 403 +5624 403 +5625 402 +5626 403 +5627 403 +5628 402 +5629 403 +5630 403 +5631 402 +5632 403 +5633 403 +5634 402 +5635 403 +5636 403 +5637 402 +5638 403 +5639 403 +5640 402 +5641 403 +5642 403 +5643 402 +5644 403 +5645 403 +5646 402 +5647 403 +5648 403 +5649 402 +5650 403 +5651 403 +5652 402 +5653 403 +5654 403 +5655 402 +5656 403 +5657 403 +5658 402 +5659 403 +5660 403 +5661 402 +5662 403 +5663 403 +5664 402 +5665 403 +5666 403 +5667 402 +5668 403 +5669 403 +5670 402 +5671 403 +5672 403 +5673 402 +5674 403 +5675 403 +5676 402 +5677 403 +5678 403 +5679 402 +5680 403 +5681 403 +5682 402 +5683 403 +5684 403 +5685 402 +5686 403 +5687 403 +5688 402 +5689 403 +5690 403 +5691 402 +5692 403 +5693 403 +5694 402 +5695 403 +5696 403 +5697 402 +5698 403 +5699 403 +5700 402 +5701 403 +5702 403 +5703 402 +5704 403 +5705 403 +5706 402 +5707 403 +5708 403 +5709 402 +5710 403 +5711 403 +5712 402 +5713 403 +5714 403 +5715 402 +5716 403 +5717 403 +5718 402 +5719 403 +5720 403 +5721 402 +5722 403 +5723 403 +5724 402 +5725 403 +5726 403 +5727 402 +5728 403 +5729 403 +5730 402 +5731 403 +5732 403 +5733 402 +5734 403 +5735 403 +5736 402 +5737 403 +5738 403 +5739 402 +5740 403 +5741 403 +5742 402 +5743 403 +5744 403 +5745 402 +5746 403 +5747 403 +5748 402 +5749 403 +5750 403 +5751 402 +5752 403 +5753 403 +5754 402 +5755 403 +5756 403 +5757 402 +5758 403 +5759 403 +5760 402 +5761 403 +5762 403 +5763 402 +5764 403 +5765 403 +5766 402 +5767 403 +5768 403 +5769 402 +5770 403 +5771 403 +5772 402 +5773 403 +5774 403 +5775 402 +5776 403 +5777 403 +5778 402 +5779 403 +5780 403 +5781 402 +5782 403 +5783 403 +5784 402 +5785 403 +5786 403 +5787 402 +5788 403 +5789 403 +5790 402 +5791 403 +5792 403 +5793 402 +5794 403 +5795 403 +5796 402 +5797 403 +5798 403 +5799 402 +5800 403 +5801 403 +5802 402 +5803 403 +5804 403 +5805 402 +5806 403 +5807 403 +5808 402 +5809 403 +5810 403 +5811 402 +5812 403 +5813 403 +5814 402 +5815 403 +5816 403 +5817 402 +5818 403 +5819 403 +5820 402 +5821 403 +5822 403 +5823 402 +5824 403 +5825 403 +5826 402 +5827 403 +5828 403 +5829 402 +5830 403 +5831 403 +5832 402 +5833 403 +5834 403 +5835 402 +5836 403 +5837 403 +5838 402 +5839 403 +5840 403 +5841 402 +5842 403 +5843 403 +5844 402 +5845 403 +5846 403 +5847 402 +5848 403 +5849 403 +5850 402 +5851 403 +5852 403 +5853 402 +5854 403 +5855 403 +5856 402 +5857 403 +5858 403 +5859 402 +5860 403 +5861 403 +5862 402 +5863 403 +5864 403 +5865 402 +5866 403 +5867 403 +5868 402 +5869 403 +5870 403 +5871 402 +5872 403 +5873 403 +5874 402 +5875 403 +5876 403 +5877 402 +5878 403 +5879 403 +5880 402 +5881 403 +5882 403 +5883 402 +5884 403 +5885 403 +5886 402 +5887 403 +5888 403 +5889 402 +5890 403 +5891 403 +5892 402 +5893 403 +5894 403 +5895 402 +5896 403 +5897 403 +5898 402 +5899 403 +5900 403 +5901 402 +5902 403 +5903 403 +5904 402 +5905 403 +5906 403 +5907 402 +5908 403 +5909 403 +5910 402 +5911 403 +5912 403 +5913 402 +5914 403 +5915 403 +5916 402 +5917 403 +5918 403 +5919 402 +5920 403 +5921 403 +5922 402 +5923 403 +5924 403 +5925 402 +5926 403 +5927 403 +5928 402 +5929 403 +5930 403 +5931 402 +5932 403 +5933 403 +5934 402 +5935 403 +5936 403 +5937 402 +5938 403 +5939 403 +5940 402 +5941 403 +5942 403 +5943 402 +5944 403 +5945 403 +5946 402 +5947 403 +5948 403 +5949 402 +5950 403 +5951 403 +5952 402 +5953 403 +5954 403 +5955 402 +5956 403 +5957 403 +5958 402 +5959 403 +5960 403 +5961 402 +5962 403 +5963 403 +5964 402 +5965 403 +5966 403 +5967 402 +5968 403 +5969 403 +5970 402 +5971 403 +5972 403 +5973 402 +5974 403 +5975 403 +5976 402 +5977 403 +5978 403 +5979 402 +5980 403 +5981 403 +5982 402 +5983 403 +5984 403 +5985 402 +5986 403 +5987 403 +5988 402 +5989 403 +5990 403 +5991 402 +5992 403 +5993 403 +5994 402 +5995 403 +5996 403 +5997 402 +5998 403 +5999 403 +6000 402 +6001 403 +6002 403 +6003 402 +6004 403 +6005 403 +6006 402 +6007 403 +6008 403 +6009 402 +6010 403 +6011 403 +6012 402 +6013 403 +6014 403 +6015 402 +6016 403 +6017 403 +6018 402 +6019 403 +6020 403 +6021 402 +6022 403 +6023 403 +6024 402 +6025 403 +6026 403 +6027 402 +6028 403 +6029 403 +6030 402 +6031 403 +6032 403 +6033 402 +6034 403 +6035 403 +6036 402 +6037 403 +6038 403 +6039 402 +6040 403 +6041 403 +6042 402 +6043 403 +6044 403 +6045 402 +6046 403 +6047 403 +6048 402 +6049 403 +6050 403 +6051 402 +6052 403 +6053 403 +6054 402 +6055 403 +6056 403 +6057 402 +6058 403 +6059 403 +6060 402 +6061 403 +6062 403 +6063 402 +6064 403 +6065 403 +6066 402 +6067 403 +6068 403 +6069 402 +6070 403 +6071 403 +6072 402 +6073 403 +6074 403 +6075 402 +6076 403 +6077 403 +6078 402 +6079 403 +6080 403 +6081 402 +6082 403 +6083 403 +6084 402 +6085 403 +6086 403 +6087 402 +6088 403 +6089 403 +6090 402 +6091 403 +6092 403 +6093 402 +6094 403 +6095 403 +6096 402 +6097 403 +6098 403 +6099 402 +6100 403 +6101 403 +6102 402 +6103 403 +6104 403 +6105 402 +6106 403 +6107 403 +6108 402 +6109 403 +6110 403 +6111 402 +6112 403 +6113 403 +6114 402 +6115 403 +6116 403 +6117 402 +6118 403 +6119 403 +6120 402 +6121 403 +6122 403 +6123 402 +6124 403 +6125 403 +6126 402 +6127 403 +6128 403 +6129 402 +6130 403 +6131 403 +6132 402 +6133 403 +6134 403 +6135 402 +6136 403 +6137 403 +6138 402 +6139 403 +6140 403 +6141 402 +6142 403 +6143 403 +6144 402 +6145 403 +6146 403 +6147 402 +6148 403 +6149 403 +6150 402 +6151 403 +6152 403 +6153 402 +6154 403 +6155 403 +6156 402 +6157 403 +6158 403 +6159 402 +6160 403 +6161 403 +6162 402 +6163 403 +6164 403 +6165 402 +6166 403 +6167 403 +6168 402 +6169 403 +6170 403 +6171 402 +6172 403 +6173 403 +6174 402 +6175 403 +6176 403 +6177 402 +6178 403 +6179 403 +6180 402 +6181 403 +6182 403 +6183 402 +6184 403 +6185 403 +6186 402 +6187 403 +6188 403 +6189 402 +6190 403 +6191 403 +6192 402 +6193 403 +6194 403 +6195 402 +6196 403 +6197 403 +6198 402 +6199 403 +6200 403 +6201 402 +6202 403 +6203 403 +6204 402 +6205 403 +6206 403 +6207 402 +6208 403 +6209 403 +6210 402 +6211 403 +6212 403 +6213 402 +6214 403 +6215 403 +6216 402 +6217 403 +6218 403 +6219 402 +6220 403 +6221 403 +6222 402 +6223 403 +6224 403 +6225 402 +6226 403 +6227 403 +6228 402 +6229 403 +6230 403 +6231 402 +6232 403 +6233 403 +6234 402 +6235 403 +6236 403 +6237 402 +6238 403 +6239 403 +6240 402 +6241 403 +6242 403 +6243 402 +6244 403 +6245 403 +6246 402 +6247 403 +6248 403 +6249 402 +6250 403 +6251 403 +6252 402 +6253 403 +6254 403 +6255 402 +6256 403 +6257 403 +6258 402 +6259 403 +6260 403 +6261 402 +6262 403 +6263 403 +6264 402 +6265 403 +6266 403 +6267 402 +6268 403 +6269 403 +6270 402 +6271 403 +6272 403 +6273 402 +6274 403 +6275 403 +6276 402 +6277 403 +6278 403 +6279 402 +6280 403 +6281 403 +6282 402 +6283 403 +6284 403 +6285 402 +6286 403 +6287 403 +6288 402 +6289 403 +6290 403 +6291 402 +6292 403 +6293 403 +6294 402 +6295 403 +6296 403 +6297 402 +6298 403 +6299 403 +6300 402 +6301 403 +6302 403 +6303 402 +6304 403 +6305 403 +6306 402 +6307 403 +6308 403 +6309 402 +6310 403 +6311 403 +6312 402 +6313 403 +6314 403 +6315 402 +6316 403 +6317 403 +6318 402 +6319 403 +6320 403 +6321 402 +6322 403 +6323 403 +6324 402 +6325 403 +6326 403 +6327 402 +6328 403 +6329 403 +6330 402 +6331 403 +6332 403 +6333 402 +6334 403 +6335 403 +6336 402 +6337 403 +6338 403 +6339 402 +6340 403 +6341 403 +6342 402 +6343 403 +6344 403 +6345 402 +6346 403 +6347 403 +6348 402 +6349 403 +6350 403 +6351 402 +6352 403 +6353 403 +6354 402 +6355 403 +6356 403 +6357 402 +6358 403 +6359 403 +6360 402 +6361 403 +6362 403 +6363 402 +6364 403 +6365 403 +6366 402 +6367 403 +6368 403 +6369 402 +6370 403 +6371 403 +6372 402 +6373 403 +6374 403 +6375 402 +6376 403 +6377 403 +6378 402 +6379 403 +6380 403 +6381 402 +6382 403 +6383 403 +6384 402 +6385 403 +6386 403 +6387 402 +6388 403 +6389 403 +6390 402 +6391 403 +6392 403 +6393 402 +6394 403 +6395 403 +6396 402 +6397 403 +6398 403 +6399 402 +6400 403 +6401 403 +6402 402 +6403 403 +6404 403 +6405 402 +6406 403 +6407 403 +6408 402 +6409 403 +6410 403 +6411 402 +6412 403 +6413 403 +6414 402 +6415 403 +6416 403 +6417 402 +6418 403 +6419 403 +6420 402 +6421 403 +6422 403 +6423 402 +6424 403 +6425 403 +6426 402 +6427 403 +6428 403 +6429 402 +6430 403 +6431 403 +6432 402 +6433 403 +6434 403 +6435 402 +6436 403 +6437 403 +6438 402 +6439 403 +6440 403 +6441 402 +6442 403 +6443 403 +6444 402 +6445 403 +6446 403 +6447 402 +6448 403 +6449 403 +6450 402 +6451 403 +6452 403 +6453 402 +6454 403 +6455 403 +6456 402 +6457 403 +6458 403 +6459 402 +6460 403 +6461 403 +6462 402 +6463 403 +6464 403 +6465 402 +6466 403 +6467 403 +6468 402 +6469 403 +6470 403 +6471 402 +6472 403 +6473 403 +6474 402 +6475 403 +6476 403 +6477 402 +6478 403 +6479 403 +6480 402 +6481 403 +6482 403 +6483 402 +6484 403 +6485 403 +6486 402 +6487 403 +6488 403 +6489 402 +6490 403 +6491 403 +6492 402 +6493 403 +6494 403 +6495 402 +6496 403 +6497 403 +6498 402 +6499 403 +6500 403 +6501 402 +6502 403 +6503 403 +6504 402 +6505 403 +6506 403 +6507 402 +6508 403 +6509 403 +6510 402 +6511 403 +6512 403 +6513 402 +6514 403 +6515 403 +6516 402 +6517 403 +6518 403 +6519 402 +6520 403 +6521 403 +6522 402 +6523 403 +6524 403 +6525 402 +6526 403 +6527 403 +6528 402 +6529 403 +6530 403 +6531 402 +6532 403 +6533 403 +6534 402 +6535 403 +6536 403 +6537 402 +6538 403 +6539 403 +6540 402 +6541 403 +6542 403 +6543 402 +6544 403 +6545 403 +6546 402 +6547 403 +6548 403 +6549 402 +6550 403 +6551 403 +6552 402 +6553 403 +6554 403 +6555 402 +6556 403 +6557 403 +6558 402 +6559 403 +6560 403 +6561 402 +6562 403 +6563 403 +6564 402 +6565 403 +6566 403 +6567 402 +6568 403 +6569 403 +6570 402 +6571 403 +6572 403 +6573 402 +6574 403 +6575 403 +6576 402 +6577 403 +6578 403 +6579 402 +6580 403 +6581 403 +6582 402 +6583 403 +6584 403 +6585 402 +6586 403 +6587 403 +6588 402 +6589 403 +6590 403 +6591 402 +6592 403 +6593 403 +6594 402 +6595 403 +6596 403 +6597 402 +6598 403 +6599 403 +6600 402 +6601 403 +6602 403 +6603 402 +6604 403 +6605 403 +6606 402 +6607 403 +6608 403 +6609 402 +6610 403 +6611 403 +6612 402 +6613 403 +6614 403 +6615 402 +6616 403 +6617 403 +6618 402 +6619 403 +6620 403 +6621 402 +6622 403 +6623 403 +6624 402 +6625 403 +6626 403 +6627 402 +6628 403 +6629 403 +6630 402 +6631 403 +6632 403 +6633 402 +6634 403 +6635 403 +6636 402 +6637 403 +6638 403 +6639 402 +6640 403 +6641 403 +6642 402 +6643 403 +6644 403 +6645 402 +6646 403 +6647 403 +6648 402 +6649 403 +6650 403 +6651 402 +6652 403 +6653 403 +6654 402 +6655 403 +6656 403 +6657 402 +6658 403 +6659 403 +6660 402 +6661 403 +6662 403 +6663 402 +6664 403 +6665 403 +6666 402 +6667 403 +6668 403 +6669 402 +6670 403 +6671 403 +6672 402 +6673 403 +6674 403 +6675 402 +6676 403 +6677 403 +6678 402 +6679 403 +6680 403 +6681 402 +6682 403 +6683 403 +6684 402 +6685 403 +6686 403 +6687 402 +6688 403 +6689 403 +6690 402 +6691 403 +6692 403 +6693 402 +6694 403 +6695 403 +6696 402 +6697 403 +6698 403 +6699 402 +6700 403 +6701 403 +6702 402 +6703 403 +6704 403 +6705 402 +6706 403 +6707 403 +6708 402 +6709 403 +6710 403 +6711 402 +6712 403 +6713 403 +6714 402 +6715 403 +6716 403 +6717 402 +6718 403 +6719 403 +6720 402 +6721 403 +6722 403 +6723 402 +6724 403 +6725 403 +6726 402 +6727 403 +6728 403 +6729 402 +6730 403 +6731 403 +6732 402 +6733 403 +6734 403 +6735 402 +6736 403 +6737 403 +6738 402 +6739 403 +6740 403 +6741 402 +6742 403 +6743 403 +6744 402 +6745 403 +6746 403 +6747 402 +6748 403 +6749 403 +6750 402 +6751 403 +6752 403 +6753 402 +6754 403 +6755 403 +6756 402 +6757 403 +6758 403 +6759 402 +6760 403 +6761 403 +6762 402 +6763 403 +6764 403 +6765 402 +6766 403 +6767 403 +6768 402 +6769 403 +6770 403 +6771 402 +6772 403 +6773 403 +6774 402 +6775 403 +6776 403 +6777 402 +6778 403 +6779 403 +6780 402 +6781 403 +6782 403 +6783 402 +6784 403 +6785 403 +6786 402 +6787 403 +6788 403 +6789 402 +6790 403 +6791 403 +6792 402 +6793 403 +6794 403 +6795 402 +6796 403 +6797 403 +6798 402 +6799 403 +6800 403 +6801 402 +6802 403 +6803 403 +6804 402 +6805 403 +6806 403 +6807 402 +6808 403 +6809 403 +6810 402 +6811 403 +6812 403 +6813 402 +6814 403 +6815 403 +6816 402 +6817 403 +6818 403 +6819 402 +6820 403 +6821 403 +6822 402 +6823 403 +6824 403 +6825 402 +6826 403 +6827 403 +6828 402 +6829 403 +6830 403 +6831 402 +6832 403 +6833 403 +6834 402 +6835 403 +6836 403 +6837 402 +6838 403 +6839 403 +6840 402 +6841 403 +6842 403 +6843 402 +6844 403 +6845 403 +6846 402 +6847 403 +6848 403 +6849 402 +6850 403 +6851 403 +6852 402 +6853 403 +6854 403 +6855 402 +6856 403 +6857 403 +6858 402 +6859 403 +6860 403 +6861 402 +6862 403 +6863 403 +6864 402 +6865 403 +6866 403 +6867 402 +6868 403 +6869 403 +6870 402 +6871 403 +6872 403 +6873 402 +6874 403 +6875 403 +6876 402 +6877 403 +6878 403 +6879 402 +6880 403 +6881 403 +6882 402 +6883 403 +6884 403 +6885 402 +6886 403 +6887 403 +6888 402 +6889 403 +6890 403 +6891 402 +6892 403 +6893 403 +6894 402 +6895 403 +6896 403 +6897 402 +6898 403 +6899 403 +6900 402 +6901 403 +6902 403 +6903 402 +6904 403 +6905 403 +6906 402 +6907 403 +6908 403 +6909 402 +6910 403 +6911 403 +6912 402 +6913 403 +6914 403 +6915 402 +6916 403 +6917 403 +6918 402 +6919 403 +6920 403 +6921 402 +6922 403 +6923 403 +6924 402 +6925 403 +6926 403 +6927 402 +6928 403 +6929 403 +6930 402 +6931 403 +6932 403 +6933 402 +6934 403 +6935 403 +6936 402 +6937 403 +6938 403 +6939 402 +6940 403 +6941 403 +6942 402 +6943 403 +6944 403 +6945 402 +6946 403 +6947 403 +6948 402 +6949 403 +6950 403 +6951 402 +6952 403 +6953 403 +6954 402 +6955 403 +6956 403 +6957 402 +6958 403 +6959 403 +6960 402 +6961 403 +6962 403 +6963 402 +6964 403 +6965 403 +6966 402 +6967 403 +6968 403 +6969 402 +6970 403 +6971 403 +6972 402 +6973 403 +6974 403 +6975 402 +6976 403 +6977 403 +6978 402 +6979 403 +6980 403 +6981 402 +6982 403 +6983 403 +6984 402 +6985 403 +6986 403 +6987 402 +6988 403 +6989 403 +6990 402 +6991 403 +6992 403 +6993 402 +6994 403 +6995 403 +6996 402 +6997 403 +6998 403 +6999 402 +7000 403 +7001 403 +7002 402 +7003 403 +7004 403 +7005 402 +7006 403 +7007 403 +7008 402 +7009 403 +7010 403 +7011 402 +7012 403 +7013 403 +7014 402 +7015 403 +7016 403 +7017 402 +7018 403 +7019 403 +7020 402 +7021 403 +7022 403 +7023 402 +7024 403 +7025 403 +7026 402 +7027 403 +7028 403 +7029 402 +7030 403 +7031 403 +7032 402 +7033 403 +7034 403 +7035 402 +7036 403 +7037 403 +7038 402 +7039 403 +7040 403 +7041 402 +7042 403 +7043 403 +7044 402 +7045 403 +7046 403 +7047 402 +7048 403 +7049 403 +7050 402 +7051 403 +7052 403 +7053 402 +7054 403 +7055 403 +7056 402 +7057 403 +7058 403 +7059 402 +7060 403 +7061 403 +7062 402 +7063 403 +7064 403 +7065 402 +7066 403 +7067 403 +7068 402 +7069 403 +7070 403 +7071 402 +7072 403 +7073 403 +7074 402 +7075 403 +7076 403 +7077 402 +7078 403 +7079 403 +7080 402 +7081 403 +7082 403 +7083 402 +7084 403 +7085 403 +7086 402 +7087 403 +7088 403 +7089 402 +7090 403 +7091 403 +7092 402 +7093 403 +7094 403 +7095 402 +7096 403 +7097 403 +7098 402 +7099 403 +7100 403 +7101 402 +7102 403 +7103 403 +7104 402 +7105 403 +7106 403 +7107 402 +7108 403 +7109 403 +7110 402 +7111 403 +7112 403 +7113 402 +7114 403 +7115 403 +7116 402 +7117 403 +7118 403 +7119 402 +7120 403 +7121 403 +7122 402 +7123 403 +7124 403 +7125 402 +7126 403 +7127 403 +7128 402 +7129 403 +7130 403 +7131 402 +7132 403 +7133 403 +7134 402 +7135 403 +7136 403 +7137 402 +7138 403 +7139 403 +7140 402 +7141 403 +7142 403 +7143 402 +7144 403 +7145 403 +7146 402 +7147 403 +7148 403 +7149 402 +7150 403 +7151 403 +7152 402 +7153 403 +7154 403 +7155 402 +7156 403 +7157 403 +7158 402 +7159 403 +7160 403 +7161 402 +7162 403 +7163 403 +7164 402 +7165 403 +7166 403 +7167 402 +7168 403 +7169 403 +7170 402 +7171 403 +7172 403 +7173 402 +7174 403 +7175 403 +7176 402 +7177 403 +7178 403 +7179 402 +7180 403 +7181 403 +7182 402 +7183 403 +7184 403 +7185 402 +7186 403 +7187 403 +7188 402 +7189 403 +7190 403 +7191 402 +7192 403 +7193 403 +7194 402 +7195 403 +7196 403 +7197 402 +7198 403 +7199 403 +7200 402 +7201 403 +7202 403 +7203 402 +7204 403 +7205 403 +7206 402 +7207 403 +7208 403 +7209 402 +7210 403 +7211 403 +7212 402 +7213 403 +7214 403 +7215 402 +7216 403 +7217 403 +7218 402 +7219 403 +7220 403 +7221 402 +7222 403 +7223 403 +7224 402 +7225 403 +7226 403 +7227 402 +7228 403 +7229 403 +7230 402 +7231 403 +7232 403 +7233 402 +7234 403 +7235 403 +7236 402 +7237 403 +7238 403 +7239 402 +7240 403 +7241 403 +7242 402 +7243 403 +7244 403 +7245 402 +7246 403 +7247 403 +7248 402 +7249 403 +7250 403 +7251 402 +7252 403 +7253 403 +7254 402 +7255 403 +7256 403 +7257 402 +7258 403 +7259 403 +7260 402 +7261 403 +7262 403 +7263 402 +7264 403 +7265 403 +7266 402 +7267 403 +7268 403 +7269 402 +7270 403 +7271 403 +7272 402 +7273 403 +7274 403 +7275 402 +7276 403 +7277 403 +7278 402 +7279 403 +7280 403 +7281 402 +7282 403 +7283 403 +7284 402 +7285 403 +7286 403 +7287 402 +7288 403 +7289 403 +7290 402 +7291 403 +7292 403 +7293 402 +7294 403 +7295 403 +7296 402 +7297 403 +7298 403 +7299 402 +7300 403 +7301 403 +7302 402 +7303 403 +7304 403 +7305 402 +7306 403 +7307 403 +7308 402 +7309 403 +7310 403 +7311 402 +7312 403 +7313 403 +7314 402 +7315 403 +7316 403 +7317 402 +7318 403 +7319 403 +7320 402 +7321 403 +7322 403 +7323 402 +7324 403 +7325 403 +7326 402 +7327 403 +7328 403 +7329 402 +7330 403 +7331 403 +7332 402 +7333 403 +7334 403 +7335 402 +7336 403 +7337 403 +7338 402 +7339 403 +7340 403 +7341 402 +7342 403 +7343 403 +7344 402 +7345 403 +7346 403 +7347 402 +7348 403 +7349 403 +7350 402 +7351 403 +7352 403 +7353 402 +7354 403 +7355 403 +7356 402 +7357 403 +7358 403 +7359 402 +7360 403 +7361 403 +7362 402 +7363 403 +7364 403 +7365 402 +7366 403 +7367 403 +7368 402 +7369 403 +7370 403 +7371 402 +7372 403 +7373 403 +7374 402 +7375 403 +7376 403 +7377 402 +7378 403 +7379 403 +7380 402 +7381 403 +7382 403 +7383 402 +7384 403 +7385 403 +7386 402 +7387 403 +7388 403 +7389 402 +7390 403 +7391 403 +7392 402 +7393 403 +7394 403 +7395 402 +7396 403 +7397 403 +7398 402 +7399 403 +7400 403 +7401 402 +7402 403 +7403 403 +7404 402 +7405 403 +7406 403 +7407 402 +7408 403 +7409 403 +7410 402 +7411 403 +7412 403 +7413 402 +7414 403 +7415 403 +7416 402 +7417 403 +7418 403 +7419 402 +7420 403 +7421 403 +7422 402 +7423 403 +7424 403 +7425 402 +7426 403 +7427 403 +7428 402 +7429 403 +7430 403 +7431 402 +7432 403 +7433 403 +7434 402 +7435 403 +7436 403 +7437 402 +7438 403 +7439 403 +7440 402 +7441 403 +7442 403 +7443 402 +7444 403 +7445 403 +7446 402 +7447 403 +7448 403 +7449 402 +7450 403 +7451 403 +7452 402 +7453 403 +7454 403 +7455 402 +7456 403 +7457 403 +7458 402 +7459 403 +7460 403 +7461 402 +7462 403 +7463 403 +7464 402 +7465 403 +7466 403 +7467 402 +7468 403 +7469 403 +7470 402 +7471 403 +7472 403 +7473 402 +7474 403 +7475 403 +7476 402 +7477 403 +7478 403 +7479 402 +7480 403 +7481 403 +7482 402 +7483 403 +7484 403 +7485 402 +7486 403 +7487 403 +7488 402 +7489 403 +7490 403 +7491 402 +7492 403 +7493 403 +7494 402 +7495 403 +7496 403 +7497 402 +7498 403 +7499 403 +7500 402 +7501 403 +7502 403 +7503 402 +7504 403 +7505 403 +7506 402 +7507 403 +7508 403 +7509 402 +7510 403 +7511 403 +7512 402 +7513 403 +7514 403 +7515 402 +7516 403 +7517 403 +7518 402 +7519 403 +7520 403 +7521 402 +7522 403 +7523 403 +7524 402 +7525 403 +7526 403 +7527 402 +7528 403 +7529 403 +7530 402 +7531 403 +7532 403 +7533 402 +7534 403 +7535 403 +7536 402 +7537 403 +7538 403 +7539 402 +7540 403 +7541 403 +7542 402 +7543 403 +7544 403 +7545 402 +7546 403 +7547 403 +7548 402 +7549 403 +7550 403 +7551 402 +7552 403 +7553 403 +7554 402 +7555 403 +7556 403 +7557 402 +7558 403 +7559 403 +7560 402 +7561 403 +7562 403 +7563 402 +7564 403 +7565 403 +7566 402 +7567 403 +7568 403 +7569 402 +7570 403 +7571 403 +7572 402 +7573 403 +7574 403 +7575 402 +7576 403 +7577 403 +7578 402 +7579 403 +7580 403 +7581 402 +7582 403 +7583 403 +7584 402 +7585 403 +7586 403 +7587 402 +7588 403 +7589 403 +7590 402 +7591 403 +7592 403 +7593 402 +7594 403 +7595 403 +7596 402 +7597 403 +7598 403 +7599 402 +7600 403 +7601 403 +7602 402 +7603 403 +7604 403 +7605 402 +7606 403 +7607 403 +7608 402 +7609 403 +7610 403 +7611 402 +7612 403 +7613 403 +7614 402 +7615 403 +7616 403 +7617 402 +7618 403 +7619 403 +7620 402 +7621 403 +7622 403 +7623 402 +7624 403 +7625 403 +7626 402 +7627 403 +7628 403 +7629 402 +7630 403 +7631 403 +7632 402 +7633 403 +7634 403 +7635 402 +7636 403 +7637 403 +7638 402 +7639 403 +7640 403 +7641 402 +7642 403 +7643 403 +7644 402 +7645 403 +7646 403 +7647 402 +7648 403 +7649 403 +7650 402 +7651 403 +7652 403 +7653 402 +7654 403 +7655 403 +7656 402 +7657 403 +7658 403 +7659 402 +7660 403 +7661 403 +7662 402 +7663 403 +7664 403 +7665 402 +7666 403 +7667 403 +7668 402 +7669 403 +7670 403 +7671 402 +7672 403 +7673 403 +7674 402 +7675 403 +7676 403 +7677 402 +7678 403 +7679 403 +7680 402 +7681 403 +7682 403 +7683 402 +7684 403 +7685 403 +7686 402 +7687 403 +7688 403 +7689 402 +7690 403 +7691 403 +7692 402 +7693 403 +7694 403 +7695 402 +7696 403 +7697 403 +7698 402 +7699 403 +7700 403 +7701 402 +7702 403 +7703 403 +7704 402 +7705 403 +7706 403 +7707 402 +7708 403 +7709 403 +7710 402 +7711 403 +7712 403 +7713 402 +7714 403 +7715 403 +7716 402 +7717 403 +7718 403 +7719 402 +7720 403 +7721 403 +7722 402 +7723 403 +7724 403 +7725 402 +7726 403 +7727 403 +7728 402 +7729 403 +7730 403 +7731 402 +7732 403 +7733 403 +7734 402 +7735 403 +7736 403 +7737 402 +7738 403 +7739 403 +7740 402 +7741 403 +7742 403 +7743 402 +7744 403 +7745 403 +7746 402 +7747 403 +7748 403 +7749 402 +7750 403 +7751 403 +7752 402 +7753 403 +7754 403 +7755 402 +7756 403 +7757 403 +7758 402 +7759 403 +7760 403 +7761 402 +7762 403 +7763 403 +7764 402 +7765 403 +7766 403 +7767 402 +7768 403 +7769 403 +7770 402 +7771 403 +7772 403 +7773 402 +7774 403 +7775 403 +7776 402 +7777 403 +7778 403 +7779 402 +7780 403 +7781 403 +7782 402 +7783 403 +7784 403 +7785 402 +7786 403 +7787 403 +7788 402 +7789 403 +7790 403 +7791 402 +7792 403 +7793 403 +7794 402 +7795 403 +7796 403 +7797 402 +7798 403 +7799 403 +7800 402 +7801 403 +7802 403 +7803 402 +7804 403 +7805 403 +7806 402 +7807 403 +7808 403 +7809 402 +7810 403 +7811 403 +7812 402 +7813 403 +7814 403 +7815 402 +7816 403 +7817 403 +7818 402 +7819 403 +7820 403 +7821 402 +7822 403 +7823 403 +7824 402 +7825 403 +7826 403 +7827 402 +7828 403 +7829 403 +7830 402 +7831 403 +7832 403 +7833 402 +7834 403 +7835 403 +7836 402 +7837 403 +7838 403 +7839 402 +7840 403 +7841 403 +7842 402 +7843 403 +7844 403 +7845 402 +7846 403 +7847 403 +7848 402 +7849 403 +7850 403 +7851 402 +7852 403 +7853 403 +7854 402 +7855 403 +7856 403 +7857 402 +7858 403 +7859 403 +7860 402 +7861 403 +7862 403 +7863 402 +7864 403 +7865 403 +7866 402 +7867 403 +7868 403 +7869 402 +7870 403 +7871 403 +7872 402 +7873 403 +7874 403 +7875 402 +7876 403 +7877 403 +7878 402 +7879 403 +7880 403 +7881 402 +7882 403 +7883 403 +7884 402 +7885 403 +7886 403 +7887 402 +7888 403 +7889 403 +7890 402 +7891 403 +7892 403 +7893 402 +7894 403 +7895 403 +7896 402 +7897 403 +7898 403 +7899 402 +7900 403 +7901 403 +7902 402 +7903 403 +7904 403 +7905 402 +7906 403 +7907 403 +7908 402 +7909 403 +7910 403 +7911 402 +7912 403 +7913 403 +7914 402 +7915 403 +7916 403 +7917 402 +7918 403 +7919 403 +7920 402 +7921 403 +7922 403 +7923 402 +7924 403 +7925 403 +7926 402 +7927 403 +7928 403 +7929 402 +7930 403 +7931 403 +7932 402 +7933 403 +7934 403 +7935 402 +7936 403 +7937 403 +7938 402 +7939 403 +7940 403 +7941 402 +7942 403 +7943 403 +7944 402 +7945 403 +7946 403 +7947 402 +7948 403 +7949 403 +7950 402 +7951 403 +7952 403 +7953 402 +7954 403 +7955 403 +7956 402 +7957 403 +7958 403 +7959 402 +7960 403 +7961 403 +7962 402 +7963 403 +7964 403 +7965 402 +7966 403 +7967 403 +7968 402 +7969 403 +7970 403 +7971 402 +7972 403 +7973 403 +7974 402 +7975 403 +7976 403 +7977 402 +7978 403 +7979 403 +7980 402 +7981 403 +7982 403 +7983 402 +7984 403 +7985 403 +7986 402 +7987 403 +7988 403 +7989 402 +7990 403 +7991 403 +7992 402 +7993 403 +7994 403 +7995 402 +7996 403 +7997 403 +7998 402 +7999 403 +8000 403 +8001 402 +8002 403 +8003 403 +8004 402 +8005 403 +8006 403 +8007 402 +8008 403 +8009 403 +8010 402 +8011 403 +8012 403 +8013 402 +8014 403 +8015 403 +8016 402 +8017 403 +8018 403 +8019 402 +8020 403 +8021 403 +8022 402 +8023 403 +8024 403 +8025 402 +8026 403 +8027 403 +8028 402 +8029 403 +8030 403 +8031 402 +8032 403 +8033 403 +8034 402 +8035 403 +8036 403 +8037 402 +8038 403 +8039 403 +8040 402 +8041 403 +8042 403 +8043 402 +8044 403 +8045 403 +8046 402 +8047 403 +8048 403 +8049 402 +8050 403 +8051 403 +8052 402 +8053 403 +8054 403 +8055 402 +8056 403 +8057 403 +8058 402 +8059 403 +8060 403 +8061 402 +8062 403 +8063 403 +8064 402 +8065 403 +8066 403 +8067 402 +8068 403 +8069 403 +8070 402 +8071 403 +8072 403 +8073 402 +8074 403 +8075 403 +8076 402 +8077 403 +8078 403 +8079 402 +8080 403 +8081 403 +8082 402 +8083 403 +8084 403 +8085 402 +8086 403 +8087 403 +8088 402 +8089 403 +8090 403 +8091 402 +8092 403 +8093 403 +8094 402 +8095 403 +8096 403 +8097 402 +8098 403 +8099 403 +8100 402 +8101 403 +8102 403 +8103 402 +8104 403 +8105 403 +8106 402 +8107 403 +8108 403 +8109 402 +8110 403 +8111 403 +8112 402 +8113 403 +8114 403 +8115 402 +8116 403 +8117 403 +8118 402 +8119 403 +8120 403 +8121 402 +8122 403 +8123 403 +8124 402 +8125 403 +8126 403 +8127 402 +8128 403 +8129 403 +8130 402 +8131 403 +8132 403 +8133 402 +8134 403 +8135 403 +8136 402 +8137 403 +8138 403 +8139 402 +8140 403 +8141 403 +8142 402 +8143 403 +8144 403 +8145 402 +8146 403 +8147 403 +8148 402 +8149 403 +8150 403 +8151 402 +8152 403 +8153 403 +8154 402 +8155 403 +8156 403 +8157 402 +8158 403 +8159 403 +8160 402 +8161 403 +8162 403 +8163 402 +8164 403 +8165 403 +8166 402 +8167 403 +8168 403 +8169 402 +8170 403 +8171 403 +8172 402 +8173 403 +8174 403 +8175 402 +8176 403 +8177 403 +8178 402 +8179 403 +8180 403 +8181 402 +8182 403 +8183 403 +8184 402 +8185 403 +8186 403 +8187 402 +8188 403 +8189 403 +8190 402 +8191 403 +8192 403 +8193 402 +8194 403 +8195 403 +8196 402 +8197 403 +8198 403 +8199 402 +8200 403 +8201 403 +8202 402 +8203 403 +8204 403 +8205 402 +8206 403 +8207 403 +8208 402 +8209 403 +8210 403 +8211 402 +8212 403 +8213 403 +8214 402 +8215 403 +8216 403 +8217 402 +8218 403 +8219 403 +8220 402 +8221 403 +8222 403 +8223 402 +8224 403 +8225 403 +8226 402 +8227 403 +8228 403 +8229 402 +8230 403 +8231 403 +8232 402 +8233 403 +8234 403 +8235 402 +8236 403 +8237 403 +8238 402 +8239 403 +8240 403 +8241 402 +8242 403 +8243 403 +8244 402 +8245 403 +8246 403 +8247 402 +8248 403 +8249 403 +8250 402 +8251 403 +8252 403 +8253 402 +8254 403 +8255 403 +8256 402 +8257 403 +8258 403 +8259 402 +8260 403 +8261 403 +8262 402 +8263 403 +8264 403 +8265 402 +8266 403 +8267 403 +8268 402 +8269 403 +8270 403 +8271 402 +8272 403 +8273 403 +8274 402 +8275 403 +8276 403 +8277 402 +8278 403 +8279 403 +8280 402 +8281 403 +8282 403 +8283 402 +8284 403 +8285 403 +8286 402 +8287 403 +8288 403 +8289 402 +8290 403 +8291 403 +8292 402 +8293 403 +8294 403 +8295 402 +8296 403 +8297 403 +8298 402 +8299 403 +8300 403 +8301 402 +8302 403 +8303 403 +8304 402 +8305 403 +8306 403 +8307 402 +8308 403 +8309 403 +8310 402 +8311 403 +8312 403 +8313 402 +8314 403 +8315 403 +8316 402 +8317 403 +8318 403 +8319 402 +8320 403 +8321 403 +8322 402 +8323 403 +8324 403 +8325 402 +8326 403 +8327 403 +8328 402 +8329 403 +8330 403 +8331 402 +8332 403 +8333 403 +8334 402 +8335 403 +8336 403 +8337 402 +8338 403 +8339 403 +8340 402 +8341 403 +8342 403 +8343 402 +8344 403 +8345 403 +8346 402 +8347 403 +8348 403 +8349 402 +8350 403 +8351 403 +8352 402 +8353 403 +8354 403 +8355 402 +8356 403 +8357 403 +8358 402 +8359 403 +8360 403 +8361 402 +8362 403 +8363 403 +8364 402 +8365 403 +8366 403 +8367 402 +8368 403 +8369 403 +8370 402 +8371 403 +8372 403 +8373 402 +8374 403 +8375 403 +8376 402 +8377 403 +8378 403 +8379 402 +8380 403 +8381 403 +8382 402 +8383 403 +8384 403 +8385 402 +8386 403 +8387 403 +8388 402 +8389 403 +8390 403 +8391 402 +8392 403 +8393 403 +8394 402 +8395 403 +8396 403 +8397 402 +8398 403 +8399 403 +8400 402 +8401 403 +8402 403 +8403 402 +8404 403 +8405 403 +8406 402 +8407 403 +8408 403 +8409 402 +8410 403 +8411 403 +8412 402 +8413 403 +8414 403 +8415 402 +8416 403 +8417 403 +8418 402 +8419 403 +8420 403 +8421 402 +8422 403 +8423 403 +8424 402 +8425 403 +8426 403 +8427 402 +8428 403 +8429 403 +8430 402 +8431 403 +8432 403 +8433 402 +8434 403 +8435 403 +8436 402 +8437 403 +8438 403 +8439 402 +8440 403 +8441 403 +8442 402 +8443 403 +8444 403 +8445 402 +8446 403 +8447 403 +8448 402 +8449 403 +8450 403 +8451 402 +8452 403 +8453 403 +8454 402 +8455 403 +8456 403 +8457 402 +8458 403 +8459 403 +8460 402 +8461 403 +8462 403 +8463 402 +8464 403 +8465 403 +8466 402 +8467 403 +8468 403 +8469 402 +8470 403 +8471 403 +8472 402 +8473 403 +8474 403 +8475 402 +8476 403 +8477 403 +8478 402 +8479 403 +8480 403 +8481 402 +8482 403 +8483 403 +8484 402 +8485 403 +8486 403 +8487 402 +8488 403 +8489 403 +8490 402 +8491 403 +8492 403 +8493 402 +8494 403 +8495 403 +8496 402 +8497 403 +8498 403 +8499 402 +8500 403 +8501 403 +8502 402 +8503 403 +8504 403 +8505 402 +8506 403 +8507 403 +8508 402 +8509 403 +8510 403 +8511 402 +8512 403 +8513 403 +8514 402 +8515 403 +8516 403 +8517 402 +8518 403 +8519 403 +8520 402 +8521 403 +8522 403 +8523 402 +8524 403 +8525 403 +8526 402 +8527 403 +8528 403 +8529 402 +8530 403 +8531 403 +8532 402 +8533 403 +8534 403 +8535 402 +8536 403 +8537 403 +8538 402 +8539 403 +8540 403 +8541 402 +8542 403 +8543 403 +8544 402 +8545 403 +8546 403 +8547 402 +8548 403 +8549 403 +8550 402 +8551 403 +8552 403 +8553 402 +8554 403 +8555 403 +8556 402 +8557 403 +8558 403 +8559 402 +8560 403 +8561 403 +8562 402 +8563 403 +8564 403 +8565 402 +8566 403 +8567 403 +8568 402 +8569 403 +8570 403 +8571 402 +8572 403 +8573 403 +8574 402 +8575 403 +8576 403 +8577 402 +8578 403 +8579 403 +8580 402 +8581 403 +8582 403 +8583 402 +8584 403 +8585 403 +8586 402 +8587 403 +8588 403 +8589 402 +8590 403 +8591 403 +8592 402 +8593 403 +8594 403 +8595 402 +8596 403 +8597 403 +8598 402 +8599 403 +8600 403 +8601 402 +8602 403 +8603 403 +8604 402 +8605 403 +8606 403 +8607 402 +8608 403 +8609 403 +8610 402 +8611 403 +8612 403 +8613 402 +8614 403 +8615 403 +8616 402 +8617 403 +8618 403 +8619 402 +8620 403 +8621 403 +8622 402 +8623 403 +8624 403 +8625 402 +8626 403 +8627 403 +8628 402 +8629 403 +8630 403 +8631 402 +8632 403 +8633 403 +8634 402 +8635 403 +8636 403 +8637 402 +8638 403 +8639 403 +8640 402 +8641 403 +8642 403 +8643 402 +8644 403 +8645 403 +8646 402 +8647 403 +8648 403 +8649 402 +8650 403 +8651 403 +8652 402 +8653 403 +8654 403 +8655 402 +8656 403 +8657 403 +8658 402 +8659 403 +8660 403 +8661 402 +8662 403 +8663 403 +8664 402 +8665 403 +8666 403 +8667 402 +8668 403 +8669 403 +8670 402 +8671 403 +8672 403 +8673 402 +8674 403 +8675 403 +8676 402 +8677 403 +8678 403 +8679 402 +8680 403 +8681 403 +8682 402 +8683 403 +8684 403 +8685 402 +8686 403 +8687 403 +8688 402 +8689 403 +8690 403 +8691 402 +8692 403 +8693 403 +8694 402 +8695 403 +8696 403 +8697 402 +8698 403 +8699 403 +8700 402 +8701 403 +8702 403 +8703 402 +8704 403 +8705 403 +8706 402 +8707 403 +8708 403 +8709 402 +8710 403 +8711 403 +8712 402 +8713 403 +8714 403 +8715 402 +8716 403 +8717 403 +8718 402 +8719 403 +8720 403 +8721 402 +8722 403 +8723 403 +8724 402 +8725 403 +8726 403 +8727 402 +8728 403 +8729 403 +8730 402 +8731 403 +8732 403 +8733 402 +8734 403 +8735 403 +8736 402 +8737 403 +8738 403 +8739 402 +8740 403 +8741 403 +8742 402 +8743 403 +8744 403 +8745 402 +8746 403 +8747 403 +8748 402 +8749 403 +8750 403 +8751 402 +8752 403 +8753 403 +8754 402 +8755 403 +8756 403 +8757 402 +8758 403 +8759 403 +8760 402 +8761 403 +8762 403 +8763 402 +8764 403 +8765 403 +8766 402 +8767 403 +8768 403 +8769 402 +8770 403 +8771 403 +8772 402 +8773 403 +8774 403 +8775 402 +8776 403 +8777 403 +8778 402 +8779 403 +8780 403 +8781 402 +8782 403 +8783 403 +8784 402 +8785 403 +8786 403 +8787 402 +8788 403 +8789 403 +8790 402 +8791 403 +8792 403 +8793 402 +8794 403 +8795 403 +8796 402 +8797 403 +8798 403 +8799 402 +8800 403 +8801 403 +8802 402 +8803 403 +8804 403 +8805 402 +8806 403 +8807 403 +8808 402 +8809 403 +8810 403 +8811 402 +8812 403 +8813 403 +8814 402 +8815 403 +8816 403 +8817 402 +8818 403 +8819 403 +8820 402 +8821 403 +8822 403 +8823 402 +8824 403 +8825 403 +8826 402 +8827 403 +8828 403 +8829 402 +8830 403 +8831 403 +8832 402 +8833 403 +8834 403 +8835 402 +8836 403 +8837 403 +8838 402 +8839 403 +8840 403 +8841 402 +8842 403 +8843 403 +8844 402 +8845 403 +8846 403 +8847 402 +8848 403 +8849 403 +8850 402 +8851 403 +8852 403 +8853 402 +8854 403 +8855 403 +8856 402 +8857 403 +8858 403 +8859 402 +8860 403 +8861 403 +8862 402 +8863 403 +8864 403 +8865 402 +8866 403 +8867 403 +8868 402 +8869 403 +8870 403 +8871 402 +8872 403 +8873 403 +8874 402 +8875 403 +8876 403 +8877 402 +8878 403 +8879 403 +8880 402 +8881 403 +8882 403 +8883 402 +8884 403 +8885 403 +8886 402 +8887 403 +8888 403 +8889 402 +8890 403 +8891 403 +8892 402 +8893 403 +8894 403 +8895 402 +8896 403 +8897 403 +8898 402 +8899 403 +8900 403 +8901 402 +8902 403 +8903 403 +8904 402 +8905 403 +8906 403 +8907 402 +8908 403 +8909 403 +8910 402 +8911 403 +8912 403 +8913 402 +8914 403 +8915 403 +8916 402 +8917 403 +8918 403 +8919 402 +8920 403 +8921 403 +8922 402 +8923 403 +8924 403 +8925 402 +8926 403 +8927 403 +8928 402 +8929 403 +8930 403 +8931 402 +8932 403 +8933 403 +8934 402 +8935 403 +8936 403 +8937 402 +8938 403 +8939 403 +8940 402 +8941 403 +8942 403 +8943 402 +8944 403 +8945 403 +8946 402 +8947 403 +8948 403 +8949 402 +8950 403 +8951 403 +8952 402 +8953 403 +8954 403 +8955 402 +8956 403 +8957 403 +8958 402 +8959 403 +8960 403 +8961 402 +8962 403 +8963 403 +8964 402 +8965 403 +8966 403 +8967 402 +8968 403 +8969 403 +8970 402 +8971 403 +8972 403 +8973 402 +8974 403 +8975 403 +8976 402 +8977 403 +8978 403 +8979 402 +8980 403 +8981 403 +8982 402 +8983 403 +8984 403 +8985 402 +8986 403 +8987 403 +8988 402 +8989 403 +8990 403 +8991 402 +8992 403 +8993 403 +8994 402 +8995 403 +8996 403 +8997 402 +8998 403 +8999 403 +9000 402 +9001 403 +9002 403 +9003 402 +9004 403 +9005 403 +9006 402 +9007 403 +9008 403 +9009 402 +9010 403 +9011 403 +9012 402 +9013 403 +9014 403 +9015 402 +9016 403 +9017 403 +9018 402 +9019 403 +9020 403 +9021 402 +9022 403 +9023 403 +9024 402 +9025 403 +9026 403 +9027 402 +9028 403 +9029 403 +9030 402 +9031 403 +9032 403 +9033 402 +9034 403 +9035 403 +9036 402 +9037 403 +9038 403 +9039 402 +9040 403 +9041 403 +9042 402 +9043 403 +9044 403 +9045 402 +9046 403 +9047 403 +9048 402 +9049 403 +9050 403 +9051 402 +9052 403 +9053 403 +9054 402 +9055 403 +9056 403 +9057 402 +9058 403 +9059 403 +9060 402 +9061 403 +9062 403 +9063 402 +9064 403 +9065 403 +9066 402 +9067 403 +9068 403 +9069 402 +9070 403 +9071 403 +9072 402 +9073 403 +9074 403 +9075 402 +9076 403 +9077 403 +9078 402 +9079 403 +9080 403 +9081 402 +9082 403 +9083 403 +9084 402 +9085 403 +9086 403 +9087 402 +9088 403 +9089 403 +9090 402 +9091 403 +9092 403 +9093 402 +9094 403 +9095 403 +9096 402 +9097 403 +9098 403 +9099 402 +9100 403 +9101 403 +9102 402 +9103 403 +9104 403 +9105 402 +9106 403 +9107 403 +9108 402 +9109 403 +9110 403 +9111 402 +9112 403 +9113 403 +9114 402 +9115 403 +9116 403 +9117 402 +9118 403 +9119 403 +9120 402 +9121 403 +9122 403 +9123 402 +9124 403 +9125 403 +9126 402 +9127 403 +9128 403 +9129 402 +9130 403 +9131 403 +9132 402 +9133 403 +9134 403 +9135 402 +9136 403 +9137 403 +9138 402 +9139 403 +9140 403 +9141 402 +9142 403 +9143 403 +9144 402 +9145 403 +9146 403 +9147 402 +9148 403 +9149 403 +9150 402 +9151 403 +9152 403 +9153 402 +9154 403 +9155 403 +9156 402 +9157 403 +9158 403 +9159 402 +9160 403 +9161 403 +9162 402 +9163 403 +9164 403 +9165 402 +9166 403 +9167 403 +9168 402 +9169 403 +9170 403 +9171 402 +9172 403 +9173 403 +9174 402 +9175 403 +9176 403 +9177 402 +9178 403 +9179 403 +9180 402 +9181 403 +9182 403 +9183 402 +9184 403 +9185 403 +9186 402 +9187 403 +9188 403 +9189 402 +9190 403 +9191 403 +9192 402 +9193 403 +9194 403 +9195 402 +9196 403 +9197 403 +9198 402 +9199 403 +9200 403 +9201 402 +9202 403 +9203 403 +9204 402 +9205 403 +9206 403 +9207 402 +9208 403 +9209 403 +9210 402 +9211 403 +9212 403 +9213 402 +9214 403 +9215 403 +9216 402 +9217 403 +9218 403 +9219 402 +9220 403 +9221 403 +9222 402 +9223 403 +9224 403 +9225 402 +9226 403 +9227 403 +9228 402 +9229 403 +9230 403 +9231 402 +9232 403 +9233 403 +9234 402 +9235 403 +9236 403 +9237 402 +9238 403 +9239 403 +9240 402 +9241 403 +9242 403 +9243 402 +9244 403 +9245 403 +9246 402 +9247 403 +9248 403 +9249 402 +9250 403 +9251 403 +9252 402 +9253 403 +9254 403 +9255 402 +9256 403 +9257 403 +9258 402 +9259 403 +9260 403 +9261 402 +9262 403 +9263 403 +9264 402 +9265 403 +9266 403 +9267 402 +9268 403 +9269 403 +9270 402 +9271 403 +9272 403 +9273 402 +9274 403 +9275 403 +9276 402 +9277 403 +9278 403 +9279 402 +9280 403 +9281 403 +9282 402 +9283 403 +9284 403 +9285 402 +9286 403 +9287 403 +9288 402 +9289 403 +9290 403 +9291 402 +9292 403 +9293 403 +9294 402 +9295 403 +9296 403 +9297 402 +9298 403 +9299 403 +9300 402 +9301 403 +9302 403 +9303 402 +9304 403 +9305 403 +9306 402 +9307 403 +9308 403 +9309 402 +9310 403 +9311 403 +9312 402 +9313 403 +9314 403 +9315 402 +9316 403 +9317 403 +9318 402 +9319 403 +9320 403 +9321 402 +9322 403 +9323 403 +9324 402 +9325 403 +9326 403 +9327 402 +9328 403 +9329 403 +9330 402 +9331 403 +9332 403 +9333 402 +9334 403 +9335 403 +9336 402 +9337 403 +9338 403 +9339 402 +9340 403 +9341 403 +9342 402 +9343 403 +9344 403 +9345 402 +9346 403 +9347 403 +9348 402 +9349 403 +9350 403 +9351 402 +9352 403 +9353 403 +9354 402 +9355 403 +9356 403 +9357 402 +9358 403 +9359 403 +9360 402 +9361 403 +9362 403 +9363 402 +9364 403 +9365 403 +9366 402 +9367 403 +9368 403 +9369 402 +9370 403 +9371 403 +9372 402 +9373 403 +9374 403 +9375 402 +9376 403 +9377 403 +9378 402 +9379 403 +9380 403 +9381 402 +9382 403 +9383 403 +9384 402 +9385 403 +9386 403 +9387 402 +9388 403 +9389 403 +9390 402 +9391 403 +9392 403 +9393 402 +9394 403 +9395 403 +9396 402 +9397 403 +9398 403 +9399 402 +9400 403 +9401 403 +9402 402 +9403 403 +9404 403 +9405 402 +9406 403 +9407 403 +9408 402 +9409 403 +9410 403 +9411 402 +9412 403 +9413 403 +9414 402 +9415 403 +9416 403 +9417 402 +9418 403 +9419 403 +9420 402 +9421 403 +9422 403 +9423 402 +9424 403 +9425 403 +9426 402 +9427 403 +9428 403 +9429 402 +9430 403 +9431 403 +9432 402 +9433 403 +9434 403 +9435 402 +9436 403 +9437 403 +9438 402 +9439 403 +9440 403 +9441 402 +9442 403 +9443 403 +9444 402 +9445 403 +9446 403 +9447 402 +9448 403 +9449 403 +9450 402 +9451 403 +9452 403 +9453 402 +9454 403 +9455 403 +9456 402 +9457 403 +9458 403 +9459 402 +9460 403 +9461 403 +9462 402 +9463 403 +9464 403 +9465 402 +9466 403 +9467 403 +9468 402 +9469 403 +9470 403 +9471 402 +9472 403 +9473 403 +9474 402 +9475 403 +9476 403 +9477 402 +9478 403 +9479 403 +9480 402 +9481 403 +9482 403 +9483 402 +9484 403 +9485 403 +9486 402 +9487 403 +9488 403 +9489 402 +9490 403 +9491 403 +9492 402 +9493 403 +9494 403 +9495 402 +9496 403 +9497 403 +9498 402 +9499 403 +9500 403 +9501 402 +9502 403 +9503 403 +9504 402 +9505 403 +9506 403 +9507 402 +9508 403 +9509 403 +9510 402 +9511 403 +9512 403 +9513 402 +9514 403 +9515 403 +9516 402 +9517 403 +9518 403 +9519 402 +9520 403 +9521 403 +9522 402 +9523 403 +9524 403 +9525 402 +9526 403 +9527 403 +9528 402 +9529 403 +9530 403 +9531 402 +9532 403 +9533 403 +9534 402 +9535 403 +9536 403 +9537 402 +9538 403 +9539 403 +9540 402 +9541 403 +9542 403 +9543 402 +9544 403 +9545 403 +9546 402 +9547 403 +9548 403 +9549 402 +9550 403 +9551 403 +9552 402 +9553 403 +9554 403 +9555 402 +9556 403 +9557 403 +9558 402 +9559 403 +9560 403 +9561 402 +9562 403 +9563 403 +9564 402 +9565 403 +9566 403 +9567 402 +9568 403 +9569 403 +9570 402 +9571 403 +9572 403 +9573 402 +9574 403 +9575 403 +9576 402 +9577 403 +9578 403 +9579 402 +9580 403 +9581 403 +9582 402 +9583 403 +9584 403 +9585 402 +9586 403 +9587 403 +9588 402 +9589 403 +9590 403 +9591 402 +9592 403 +9593 403 +9594 402 +9595 403 +9596 403 +9597 402 +9598 403 +9599 403 +9600 402 +9601 403 +9602 403 +9603 402 +9604 403 +9605 403 +9606 402 +9607 403 +9608 403 +9609 402 +9610 403 +9611 403 +9612 402 +9613 403 +9614 403 +9615 402 +9616 403 +9617 403 +9618 402 +9619 403 +9620 403 +9621 402 +9622 403 +9623 403 +9624 402 +9625 403 +9626 403 +9627 402 +9628 403 +9629 403 +9630 402 +9631 403 +9632 403 +9633 402 +9634 403 +9635 403 +9636 402 +9637 403 +9638 403 +9639 402 +9640 403 +9641 403 +9642 402 +9643 403 +9644 403 +9645 402 +9646 403 +9647 403 +9648 402 +9649 403 +9650 403 +9651 402 +9652 403 +9653 403 +9654 402 +9655 403 +9656 403 +9657 402 +9658 403 +9659 403 +9660 402 +9661 403 +9662 403 +9663 402 +9664 403 +9665 403 +9666 402 +9667 403 +9668 403 +9669 402 +9670 403 +9671 403 +9672 402 +9673 403 +9674 403 +9675 402 +9676 403 +9677 403 +9678 402 +9679 403 +9680 403 +9681 402 +9682 403 +9683 403 +9684 402 +9685 403 +9686 403 +9687 402 +9688 403 +9689 403 +9690 402 +9691 403 +9692 403 +9693 402 +9694 403 +9695 403 +9696 402 +9697 403 +9698 403 +9699 402 +9700 403 +9701 403 +9702 402 +9703 403 +9704 403 +9705 402 +9706 403 +9707 403 +9708 402 +9709 403 +9710 403 +9711 402 +9712 403 +9713 403 +9714 402 +9715 403 +9716 403 +9717 402 +9718 403 +9719 403 +9720 402 +9721 403 +9722 403 +9723 402 +9724 403 +9725 403 +9726 402 +9727 403 +9728 403 +9729 402 +9730 403 +9731 403 +9732 402 +9733 403 +9734 403 +9735 402 +9736 403 +9737 403 diff --git a/examples/amoeba/data.water_box.amoeba b/examples/amoeba/data.water_box.amoeba new file mode 100644 index 0000000000..54cabb7a2f --- /dev/null +++ b/examples/amoeba/data.water_box.amoeba @@ -0,0 +1,1988 @@ +LAMMPS data file created from Tinker water_box.xyz and amoeba_water.prm files + +648 atoms +432 bonds +216 angles +2 atom types +1 bond types +1 angle types +0 18.643 xlo xhi +0 18.643 ylo yhi +0 18.643 zlo zhi + +Masses + +1 15.995 +2 1.008 + +Atoms + +1 1 1 0 8.679662 7.087692 -0.696862 +2 1 2 0 7.809455 6.755792 -0.382259 +3 1 2 0 8.722232 6.814243 -1.617561 +4 2 1 0 -0.117313 8.244447 6.837616 +5 2 2 0 0.216892 7.895445 6.050027 +6 2 2 0 0.444268 7.826013 7.530196 +7 3 1 0 8.379057 -0.092611 6.814631 +8 3 2 0 9.340423 0.098069 6.734062 +9 3 2 0 7.939619 0.573676 6.269838 +10 4 1 0 6.589952 1.844323 -6.923167 +11 4 2 0 5.885429 2.402305 -6.717934 +12 4 2 0 6.181533 1.062747 -7.273678 +13 5 1 0 7.146600 5.753582 2.331517 +14 5 2 0 6.368123 6.126035 2.862678 +15 5 2 0 7.025018 6.294645 1.518196 +16 6 1 0 -2.426581 -8.504195 -2.504834 +17 6 2 0 -1.692063 -8.368252 -3.058292 +18 6 2 0 -2.793207 -7.602469 -2.403097 +19 7 1 0 -8.038375 -3.605589 2.303691 +20 7 2 0 -8.113753 -4.248127 3.018494 +21 7 2 0 -7.619392 -2.863004 2.709622 +22 8 1 0 -1.480631 8.244085 -8.272215 +23 8 2 0 -2.090204 8.687978 -7.676996 +24 8 2 0 -0.700878 8.823325 -8.322213 +25 9 1 0 -3.741962 -2.777830 -2.326319 +26 9 2 0 -4.620456 -2.444778 -2.390519 +27 9 2 0 -3.728921 -3.160952 -1.433101 +28 10 1 0 -6.467812 -5.265942 0.408263 +29 10 2 0 -6.585076 -4.796537 -0.413008 +30 10 2 0 -7.021252 -4.752640 1.007958 +31 11 1 0 9.273577 5.342431 4.055460 +32 11 2 0 8.645939 5.466500 4.837640 +33 11 2 0 8.741774 5.686149 3.302820 +34 12 1 0 1.830160 4.276731 -6.993499 +35 12 2 0 1.703275 5.223773 -6.703852 +36 12 2 0 2.408113 3.853447 -6.383339 +37 13 1 0 1.964382 6.832988 8.373101 +38 13 2 0 2.496135 7.215781 9.056298 +39 13 2 0 1.811283 5.905846 8.573539 +40 14 1 0 5.405568 4.388994 7.932737 +41 14 2 0 5.537380 3.438955 7.781311 +42 14 2 0 4.755156 4.734908 7.290617 +43 15 1 0 3.229998 2.928417 -1.090650 +44 15 2 0 3.931090 3.198265 -1.702769 +45 15 2 0 3.004438 3.708969 -0.493266 +46 16 1 0 7.462400 5.262829 6.131170 +47 16 2 0 8.025650 5.588493 6.881770 +48 16 2 0 6.935076 4.455766 6.325405 +49 17 1 0 -8.864042 7.023845 -6.659632 +50 17 2 0 -8.370939 6.372557 -7.141895 +51 17 2 0 -9.489800 7.315873 -7.293125 +52 18 1 0 -4.526299 3.549989 8.030031 +53 18 2 0 -5.169770 4.224127 7.731323 +54 18 2 0 -4.262096 3.801892 8.884875 +55 19 1 0 4.823286 -1.386218 4.038464 +56 19 2 0 5.493155 -0.669965 4.013081 +57 19 2 0 4.187463 -1.101832 3.338433 +58 20 1 0 -2.151150 -2.017060 -8.593685 +59 20 2 0 -2.475709 -2.320356 -7.783564 +60 20 2 0 -2.650484 -2.434614 -9.307384 +61 21 1 0 1.944893 4.933226 0.497910 +62 21 2 0 2.553221 5.263352 1.205303 +63 21 2 0 2.082534 5.590999 -0.202171 +64 22 1 0 -6.827006 -5.285917 -2.371899 +65 22 2 0 -7.405873 -6.022738 -2.075913 +66 22 2 0 -6.398443 -5.453726 -3.235054 +67 23 1 0 -8.538047 -7.577917 -1.688532 +68 23 2 0 -8.075591 -8.448260 -1.513455 +69 23 2 0 -9.389507 -7.836271 -2.051835 +70 24 1 0 -6.916556 -1.100882 -5.168782 +71 24 2 0 -6.365888 -1.659366 -5.746210 +72 24 2 0 -6.538885 -0.249374 -5.325993 +73 25 1 0 6.330290 -9.323893 -6.416630 +74 25 2 0 7.026026 -9.680578 -7.007727 +75 25 2 0 6.812488 -8.683594 -5.925799 +76 26 1 0 -2.424345 -5.918126 2.701855 +77 26 2 0 -1.613829 -5.486394 2.503024 +78 26 2 0 -3.144797 -5.307275 2.618121 +79 27 1 0 0.637202 -6.080457 5.849135 +80 27 2 0 0.892312 -6.092342 4.907709 +81 27 2 0 -0.339074 -5.838972 5.853292 +82 28 1 0 5.199216 -2.264918 -0.138343 +83 28 2 0 5.802838 -2.788698 -0.697536 +84 28 2 0 5.670340 -1.679393 0.462296 +85 29 1 0 0.510145 7.629450 4.054500 +86 29 2 0 -0.071135 8.146563 3.452959 +87 29 2 0 1.464962 7.740819 3.669172 +88 30 1 0 3.146724 8.895843 6.526257 +89 30 2 0 3.506091 8.599906 7.352942 +90 30 2 0 2.145729 8.929622 6.682029 +91 31 1 0 7.308541 -8.339335 -2.471342 +92 31 2 0 6.562127 -8.180601 -3.062803 +93 31 2 0 6.993025 -8.364954 -1.531235 +94 32 1 0 -7.530792 1.069683 4.989387 +95 32 2 0 -7.565406 1.971422 4.648636 +96 32 2 0 -7.938250 0.433547 4.370266 +97 33 1 0 4.452035 2.700609 -5.437815 +98 33 2 0 4.603326 3.058652 -4.551590 +99 33 2 0 4.386453 1.737004 -5.180419 +100 34 1 0 8.427922 -8.619286 1.784691 +101 34 2 0 8.340498 -8.005342 2.536225 +102 34 2 0 8.496720 -9.530562 2.174667 +103 35 1 0 -8.109456 1.753830 -3.096997 +104 35 2 0 -7.245287 1.827177 -2.721417 +105 35 2 0 -8.082178 1.783171 -4.059329 +106 36 1 0 2.776933 -5.701955 7.748213 +107 36 2 0 3.287974 -5.069688 7.233816 +108 36 2 0 1.987041 -5.817355 7.200131 +109 37 1 0 3.635171 -6.953519 5.339628 +110 37 2 0 3.353851 -7.592789 6.031367 +111 37 2 0 2.875801 -6.787975 4.740576 +112 38 1 0 6.888027 -4.169023 -1.800190 +113 38 2 0 7.559735 -4.813701 -2.004669 +114 38 2 0 6.603805 -3.759237 -2.626496 +115 39 1 0 -4.470837 -4.105640 3.415362 +116 39 2 0 -4.991607 -3.358538 3.140956 +117 39 2 0 -4.791764 -4.392214 4.254387 +118 40 1 0 8.282263 -0.462068 -2.560579 +119 40 2 0 8.776769 -1.293641 -2.335945 +120 40 2 0 8.760297 0.384816 -2.651128 +121 41 1 0 4.737236 1.616430 4.901115 +122 41 2 0 3.969692 2.168368 5.152631 +123 41 2 0 5.184651 2.148403 4.154746 +124 42 1 0 -3.497332 -5.781436 -2.202713 +125 42 2 0 -4.038857 -5.773824 -1.381680 +126 42 2 0 -4.152970 -6.012265 -2.829379 +127 43 1 0 -2.863989 -0.259334 -1.857006 +128 43 2 0 -2.132201 -0.027953 -1.174211 +129 43 2 0 -2.873625 -1.224425 -1.874253 +130 44 1 0 1.138300 1.133100 -2.085899 +131 44 2 0 1.965506 1.503520 -1.725316 +132 44 2 0 0.420521 1.534440 -1.551356 +133 45 1 0 -0.561328 4.590705 -2.780017 +134 45 2 0 -0.061173 3.919356 -3.294128 +135 45 2 0 -0.082763 4.733898 -1.955602 +136 46 1 0 -6.423002 -1.705204 -2.528225 +137 46 2 0 -7.233989 -1.949552 -1.975418 +138 46 2 0 -6.678416 -1.321413 -3.351278 +139 47 1 0 -2.772100 2.552210 -0.672282 +140 47 2 0 -2.907489 3.483552 -0.385605 +141 47 2 0 -2.977127 2.592348 -1.635820 +142 48 1 0 6.708678 -4.852016 -8.379280 +143 48 2 0 6.593474 -5.094964 -7.447187 +144 48 2 0 6.582524 -5.591596 -8.966502 +145 49 1 0 -8.497001 -0.440284 2.803721 +146 49 2 0 -8.422350 0.331961 2.183451 +147 49 2 0 -9.377295 -0.756160 2.677026 +148 50 1 0 2.975383 -0.894970 6.060783 +149 50 2 0 2.093991 -0.995700 5.670129 +150 50 2 0 3.458832 -0.759248 5.263958 +151 51 1 0 -6.085023 -1.629620 7.970284 +152 51 2 0 -6.685848 -2.391830 7.820849 +153 51 2 0 -6.177296 -1.190584 8.835912 +154 52 1 0 -3.763523 -3.356777 8.285436 +155 52 2 0 -4.660650 -3.029414 8.406662 +156 52 2 0 -3.411834 -3.178947 7.431180 +157 53 1 0 -1.100120 -0.320162 0.375372 +158 53 2 0 -0.527013 -1.012183 0.128652 +159 53 2 0 -0.673226 0.288559 0.934677 +160 54 1 0 0.910209 -8.271802 1.411429 +161 54 2 0 0.158544 -8.759532 1.870895 +162 54 2 0 0.565924 -7.546113 0.944383 +163 55 1 0 1.554065 -6.468033 3.310872 +164 55 2 0 1.362455 -7.162802 2.722340 +165 55 2 0 1.616233 -5.622409 2.872854 +166 56 1 0 0.543127 -1.388652 4.886094 +167 56 2 0 0.110320 -0.665826 5.311239 +168 56 2 0 0.420366 -2.216367 5.267301 +169 57 1 0 1.100526 1.019490 -9.255318 +170 57 2 0 1.460815 0.575286 -8.484128 +171 57 2 0 0.265613 0.594128 -9.297750 +172 58 1 0 -1.842348 2.327827 -5.355326 +173 58 2 0 -1.572941 2.573139 -6.288125 +174 58 2 0 -2.216679 1.439934 -5.361006 +175 59 1 0 2.452307 -2.814686 -6.448759 +176 59 2 0 2.862295 -3.091668 -5.589336 +177 59 2 0 2.913920 -3.262923 -7.181510 +178 60 1 0 -2.207998 -3.112007 5.945795 +179 60 2 0 -1.262203 -3.125339 6.205467 +180 60 2 0 -2.228269 -2.421858 5.220629 +181 61 1 0 5.845471 5.020556 -6.836491 +182 61 2 0 5.557986 5.913737 -6.753889 +183 61 2 0 5.089998 4.459153 -6.661079 +184 62 1 0 -3.421643 4.865553 0.731755 +185 62 2 0 -3.965419 4.458452 1.478214 +186 62 2 0 -3.973445 4.958338 -0.044430 +187 63 1 0 -2.302950 -2.349717 2.112168 +188 63 2 0 -2.576438 -1.873492 2.873191 +189 63 2 0 -1.882868 -1.715106 1.503782 +190 64 1 0 0.305885 4.878766 3.791182 +191 64 2 0 0.299338 5.855407 4.097578 +192 64 2 0 1.169911 4.563497 4.030616 +193 65 1 0 2.925008 -3.664845 -3.607450 +194 65 2 0 3.015896 -3.916618 -2.644267 +195 65 2 0 2.353923 -2.889459 -3.518284 +196 66 1 0 1.111505 -4.070255 -9.085693 +197 66 2 0 2.084905 -4.227348 -9.180249 +198 66 2 0 0.897072 -4.902218 -8.740523 +199 67 1 0 -4.992929 -1.974219 -7.099668 +200 67 2 0 -5.173269 -1.186309 -7.673625 +201 67 2 0 -5.070893 -2.753273 -7.658821 +202 68 1 0 4.730983 1.478420 0.720986 +203 68 2 0 4.271686 1.988265 0.034225 +204 68 2 0 4.117413 0.788607 1.061818 +205 69 1 0 1.421583 -0.176666 -6.729105 +206 69 2 0 1.217660 0.394331 -5.978213 +207 69 2 0 1.948444 -0.877988 -6.400659 +208 70 1 0 -7.093223 -8.541193 4.116187 +209 70 2 0 -7.074252 -8.047477 3.242159 +210 70 2 0 -6.153142 -8.537148 4.455550 +211 71 1 0 8.382540 -6.460958 3.765735 +212 71 2 0 9.258625 -6.141972 4.060763 +213 71 2 0 7.637364 -6.217910 4.407852 +214 72 1 0 -4.320241 4.037137 3.297092 +215 72 2 0 -3.750151 4.141786 4.105470 +216 72 2 0 -5.172925 4.455578 3.488906 +217 73 1 0 5.581877 1.781994 7.505132 +218 73 2 0 5.017196 1.139584 8.120950 +219 73 2 0 5.330781 1.591217 6.595286 +220 74 1 0 -0.734443 1.125031 4.884666 +221 74 2 0 -0.239224 1.540322 4.142070 +222 74 2 0 -0.961628 1.783437 5.554548 +223 75 1 0 6.831005 -9.249970 4.497165 +224 75 2 0 6.836746 -9.068011 5.427146 +225 75 2 0 7.668067 -9.652510 4.249957 +226 76 1 0 2.714055 -3.677581 1.962003 +227 76 2 0 3.333432 -3.851775 2.663540 +228 76 2 0 3.095021 -3.978526 1.102566 +229 77 1 0 -1.364034 -5.762724 -5.514747 +230 77 2 0 -2.238584 -5.409106 -5.314718 +231 77 2 0 -0.948185 -4.908428 -5.559580 +232 78 1 0 -3.623435 -8.061229 1.383141 +233 78 2 0 -3.132847 -7.446722 1.857906 +234 78 2 0 -4.307943 -7.546630 0.933298 +235 79 1 0 5.717894 6.958376 4.528556 +236 79 2 0 5.852657 7.879846 4.341790 +237 79 2 0 6.443636 6.708413 5.135144 +238 80 1 0 8.121415 8.262619 -8.483986 +239 80 2 0 8.585190 8.939651 -8.974230 +240 80 2 0 7.560207 7.748539 -9.044644 +241 81 1 0 -5.111889 -0.352865 5.807903 +242 81 2 0 -5.940048 0.102298 5.569630 +243 81 2 0 -5.349104 -1.014090 6.507582 +244 82 1 0 0.327324 2.563438 0.113251 +245 82 2 0 -0.633994 2.522136 -0.069385 +246 82 2 0 0.724331 3.482989 0.160564 +247 83 1 0 -6.003367 -7.683112 -8.874252 +248 83 2 0 -6.987751 -7.912403 -8.892689 +249 83 2 0 -5.699015 -8.504722 -8.558813 +250 84 1 0 0.789377 -6.357883 -7.563043 +251 84 2 0 -0.151101 -6.341313 -7.440906 +252 84 2 0 1.090881 -5.879281 -6.770796 +253 85 1 0 5.045666 7.219298 -5.151826 +254 85 2 0 5.598994 7.846492 -5.618276 +255 85 2 0 5.480466 6.978976 -4.337211 +256 86 1 0 1.286092 6.990271 -6.806004 +257 86 2 0 0.481329 7.140371 -7.345224 +258 86 2 0 1.716012 7.791024 -6.762706 +259 87 1 0 -3.198783 -9.175883 -6.334156 +260 87 2 0 -3.032721 -8.198157 -6.198635 +261 87 2 0 -3.084774 -9.539992 -5.434969 +262 88 1 0 -2.002554 -5.668583 5.440781 +263 88 2 0 -2.347493 -4.756386 5.542471 +264 88 2 0 -2.133027 -6.049986 4.540349 +265 89 1 0 6.174952 -8.574733 0.210584 +266 89 2 0 5.358389 -8.191902 0.557392 +267 89 2 0 6.760918 -8.561710 0.943985 +268 90 1 0 -6.278610 6.057339 4.042358 +269 90 2 0 -6.169211 6.708022 3.383078 +270 90 2 0 -7.221766 5.771239 4.032205 +271 91 1 0 0.124733 -5.816398 0.203961 +272 91 2 0 0.029974 -5.049468 0.786871 +273 91 2 0 -0.458026 -5.646677 -0.555312 +274 92 1 0 3.839311 -0.064469 8.619720 +275 92 2 0 3.586253 -0.282978 7.705313 +276 92 2 0 3.079936 0.282626 9.065559 +277 93 1 0 7.375986 -1.368885 4.452411 +278 93 2 0 8.024931 -0.682735 4.768078 +279 93 2 0 7.477247 -1.279372 3.493009 +280 94 1 0 9.209092 -1.611532 -6.423337 +281 94 2 0 9.487648 -2.470973 -6.800897 +282 94 2 0 9.998917 -1.354277 -5.866779 +283 95 1 0 -5.314625 -5.613762 7.941745 +284 95 2 0 -5.589748 -6.389969 8.478078 +285 95 2 0 -4.444519 -5.357513 8.149460 +286 96 1 0 -3.655884 2.941259 -3.295211 +287 96 2 0 -4.418712 2.528163 -3.712668 +288 96 2 0 -2.937568 3.025005 -3.971189 +289 97 1 0 -8.786626 -3.149090 -1.640379 +290 97 2 0 -8.441651 -4.011755 -1.901885 +291 97 2 0 -9.285717 -3.276173 -0.834535 +292 98 1 0 -7.358188 8.239942 -2.093781 +293 98 2 0 -7.811518 7.751233 -2.768278 +294 98 2 0 -6.892430 7.625331 -1.541437 +295 99 1 0 3.770974 -0.453172 -1.931225 +296 99 2 0 4.245757 -0.966218 -1.286114 +297 99 2 0 3.797803 0.441972 -1.542180 +298 100 1 0 2.205813 4.098894 8.958738 +299 100 2 0 3.001973 3.555440 8.746430 +300 100 2 0 2.103639 4.243668 9.940011 +301 101 1 0 -8.723398 -8.284874 -8.890692 +302 101 2 0 -9.298972 -7.537539 -9.239127 +303 101 2 0 -8.772683 -8.361037 -7.925940 +304 102 1 0 -8.908952 0.807167 -7.785764 +305 102 2 0 -9.061230 -0.061912 -7.422589 +306 102 2 0 -9.534219 1.030144 -8.475490 +307 103 1 0 9.182207 -3.418263 -8.430667 +308 103 2 0 9.046738 -2.558299 -8.879898 +309 103 2 0 8.390804 -3.958734 -8.701949 +310 104 1 0 1.003162 9.279867 -8.313986 +311 104 2 0 1.167271 10.190392 -8.070619 +312 104 2 0 1.849962 8.761188 -8.493178 +313 105 1 0 -1.842572 4.893383 8.198130 +314 105 2 0 -2.468210 5.316242 8.833179 +315 105 2 0 -1.155294 4.389410 8.716281 +316 106 1 0 -4.005055 -3.953707 0.402347 +317 106 2 0 -3.682148 -3.305443 1.058769 +318 106 2 0 -4.738199 -4.452434 0.841144 +319 107 1 0 3.511815 -7.590537 -9.004707 +320 107 2 0 3.415066 -7.281286 -8.094635 +321 107 2 0 3.251550 -6.835442 -9.579171 +322 108 1 0 -7.614136 -7.773463 1.262079 +323 108 2 0 -7.489497 -6.927033 0.753779 +324 108 2 0 -8.528840 -8.050689 1.164710 +325 109 1 0 -5.419143 7.061880 -5.745275 +326 109 2 0 -4.504905 6.840455 -5.750772 +327 109 2 0 -5.895918 6.221393 -5.676189 +328 110 1 0 -9.017162 1.888781 0.937813 +329 110 2 0 -9.868157 2.115056 0.623903 +330 110 2 0 -8.466599 1.708818 0.191067 +331 111 1 0 -8.037596 -5.106016 4.750802 +332 111 2 0 -7.322228 -5.707104 5.043673 +333 111 2 0 -8.230169 -4.481051 5.475067 +334 112 1 0 -4.390546 1.691502 -7.756245 +335 112 2 0 -3.558844 1.264966 -7.996466 +336 112 2 0 -4.136121 2.629917 -7.760619 +337 113 1 0 -3.975194 -6.218233 -6.927330 +338 113 2 0 -3.085645 -6.066352 -7.325296 +339 113 2 0 -4.640815 -6.676349 -7.524295 +340 114 1 0 8.240648 5.082183 -8.857912 +341 114 2 0 7.453645 5.101728 -8.259448 +342 114 2 0 8.368223 4.228825 -9.227974 +343 115 1 0 1.598931 -1.829796 -0.316752 +344 115 2 0 1.992252 -1.475465 -1.149815 +345 115 2 0 1.726926 -2.749881 -0.397199 +346 116 1 0 1.433819 -1.386702 -3.304673 +347 116 2 0 1.323094 -0.486757 -3.067110 +348 116 2 0 0.623143 -1.802016 -3.264828 +349 117 1 0 3.735991 5.554990 6.219603 +350 117 2 0 3.320916 6.265941 6.761937 +351 117 2 0 4.195666 6.053207 5.526652 +352 118 1 0 -6.285976 -9.228132 -4.460410 +353 118 2 0 -5.683885 -10.005163 -4.740870 +354 118 2 0 -6.707036 -9.488426 -3.608438 +355 119 1 0 4.036200 -3.378299 6.905724 +356 119 2 0 3.457441 -2.618106 6.794504 +357 119 2 0 4.929409 -2.991177 6.666963 +358 120 1 0 0.606517 8.561279 -3.782406 +359 120 2 0 0.498099 9.526035 -3.699299 +360 120 2 0 1.288545 8.500162 -4.475972 +361 121 1 0 -5.666717 8.368298 -8.299623 +362 121 2 0 -4.926661 7.904359 -8.744783 +363 121 2 0 -5.742748 8.095703 -7.389592 +364 122 1 0 -3.344692 7.636718 3.475830 +365 122 2 0 -4.140634 7.105012 3.296472 +366 122 2 0 -3.350797 7.470949 4.433350 +367 123 1 0 -1.322186 6.638182 0.028906 +368 123 2 0 -1.895088 6.054034 0.554933 +369 123 2 0 -1.928852 7.271511 -0.442137 +370 124 1 0 8.793551 6.925450 7.841717 +371 124 2 0 9.639675 7.325848 7.850680 +372 124 2 0 8.776882 6.398711 8.674036 +373 125 1 0 -6.322101 0.607808 1.174099 +374 125 2 0 -5.647986 1.150825 1.588348 +375 125 2 0 -5.852992 -0.060471 0.660730 +376 126 1 0 5.685139 -3.546046 -4.128549 +377 126 2 0 4.727966 -3.473549 -4.165755 +378 126 2 0 6.024761 -2.749532 -4.610993 +379 127 1 0 3.821999 6.538527 1.678030 +380 127 2 0 3.549684 7.331168 1.175762 +381 127 2 0 3.816423 6.788603 2.602522 +382 128 1 0 3.892622 -7.034239 -6.415978 +383 128 2 0 4.720509 -6.539827 -6.295004 +384 128 2 0 3.262810 -6.550918 -5.890370 +385 129 1 0 5.454437 3.881722 -2.767521 +386 129 2 0 5.906266 3.240489 -3.272250 +387 129 2 0 6.116652 4.657253 -2.669082 +388 130 1 0 -4.179373 -8.326009 4.395005 +389 130 2 0 -3.737878 -8.754475 5.134173 +390 130 2 0 -3.934584 -8.825320 3.534465 +391 131 1 0 7.949488 -1.353498 9.244688 +392 131 2 0 7.234465 -1.100736 9.869694 +393 131 2 0 8.010855 -0.754076 8.476271 +394 132 1 0 4.498603 -4.219267 3.963173 +395 132 2 0 4.895226 -3.311215 4.147093 +396 132 2 0 4.802371 -4.871698 4.671292 +397 133 1 0 -4.307250 7.384668 -2.879462 +398 133 2 0 -3.402854 7.237543 -3.252031 +399 133 2 0 -4.143231 7.834459 -2.019767 +400 134 1 0 2.868752 -0.418389 1.909340 +401 134 2 0 2.544472 -0.880398 1.179279 +402 134 2 0 2.082841 -0.227627 2.457964 +403 135 1 0 7.961389 1.611971 4.525253 +404 135 2 0 7.498497 1.833174 3.728113 +405 135 2 0 8.841880 2.050996 4.576281 +406 136 1 0 2.692467 -4.517946 -0.884665 +407 136 2 0 1.789435 -4.835617 -0.587396 +408 136 2 0 3.330887 -5.126025 -0.474679 +409 137 1 0 0.711797 1.680547 -4.780435 +410 137 2 0 0.854596 1.567911 -3.850059 +411 137 2 0 -0.187286 1.868256 -4.936632 +412 138 1 0 4.558200 -0.044434 -4.673875 +413 138 2 0 5.376141 -0.551202 -4.913295 +414 138 2 0 4.409600 -0.197728 -3.739555 +415 139 1 0 7.109730 0.453475 -0.268844 +416 139 2 0 6.996444 0.098599 -1.119484 +417 139 2 0 6.343115 1.050849 -0.110689 +418 140 1 0 -2.549577 -0.200852 -4.492507 +419 140 2 0 -3.199039 -0.856439 -4.888752 +420 140 2 0 -2.605120 -0.151501 -3.534000 +421 141 1 0 -8.527353 4.524174 -2.347408 +422 141 2 0 -7.662213 4.342466 -2.104852 +423 141 2 0 -8.794374 3.696793 -2.795740 +424 142 1 0 -2.820431 -0.700478 4.413266 +425 142 2 0 -2.088343 -0.069797 4.530521 +426 142 2 0 -3.535913 -0.413547 5.069151 +427 143 1 0 6.924598 -1.285634 -4.901833 +428 143 2 0 7.496477 -0.831510 -4.206076 +429 143 2 0 7.527035 -1.446676 -5.677236 +430 144 1 0 -5.353763 6.572088 6.734366 +431 144 2 0 -4.428432 6.663173 6.834862 +432 144 2 0 -5.603600 6.385787 5.822425 +433 145 1 0 7.661597 2.386104 9.175259 +434 145 2 0 7.321694 2.395921 10.055536 +435 145 2 0 6.959141 2.102200 8.533079 +436 146 1 0 -3.496590 -3.765912 -4.994838 +437 146 2 0 -3.612181 -3.620689 -4.036115 +438 146 2 0 -4.323649 -3.527816 -5.463213 +439 147 1 0 -9.351953 8.343146 3.704719 +440 147 2 0 -8.465363 8.758592 3.736785 +441 147 2 0 -9.159223 7.399420 3.880808 +442 148 1 0 -0.957571 -5.174275 -2.190170 +443 148 2 0 -1.907345 -5.209294 -2.303164 +444 148 2 0 -0.758582 -4.314608 -2.636469 +445 149 1 0 5.048831 -7.988284 2.587515 +446 149 2 0 5.870168 -8.296198 3.043816 +447 149 2 0 4.551970 -7.498875 3.229280 +448 150 1 0 3.705658 8.368298 -8.304931 +449 150 2 0 3.860607 9.297256 -8.425405 +450 150 2 0 3.866516 8.146007 -7.371475 +451 151 1 0 -2.535134 7.116414 6.338590 +452 151 2 0 -1.918884 7.705593 6.804078 +453 151 2 0 -1.975225 6.330832 6.121365 +454 152 1 0 -3.440263 7.005018 9.111704 +455 152 2 0 -2.633953 7.421761 9.465848 +456 152 2 0 -3.654896 7.513753 8.256470 +457 153 1 0 6.452501 -5.478051 -5.722874 +458 153 2 0 7.297698 -5.914122 -5.586895 +459 153 2 0 6.253267 -4.919338 -4.937095 +460 154 1 0 -6.528475 4.497861 -5.573636 +461 154 2 0 -6.257840 4.684056 -4.656222 +462 154 2 0 -7.247764 3.931701 -5.623068 +463 155 1 0 -7.310706 8.183648 7.852201 +464 155 2 0 -6.552879 7.735013 7.436342 +465 155 2 0 -6.877865 8.451022 8.686616 +466 156 1 0 -1.476441 -7.867001 7.421787 +467 156 2 0 -0.852398 -8.570669 7.084405 +468 156 2 0 -1.363740 -7.190554 6.737331 +469 157 1 0 5.228019 -0.495870 -7.592953 +470 157 2 0 4.737616 -0.538139 -6.742036 +471 157 2 0 4.625354 -0.901329 -8.269022 +472 158 1 0 7.566531 -1.006734 1.808213 +473 158 2 0 7.657411 -1.866188 1.428564 +474 158 2 0 7.358547 -0.388051 1.139943 +475 159 1 0 1.850924 -5.717449 -5.035416 +476 159 2 0 1.721040 -6.227449 -4.217213 +477 159 2 0 2.199319 -4.856378 -4.692892 +478 160 1 0 -8.904325 6.791585 -3.842866 +479 160 2 0 -8.690637 5.952112 -3.490118 +480 160 2 0 -8.676001 6.844077 -4.770651 +481 161 1 0 -3.434304 4.397198 -7.863568 +482 161 2 0 -2.634777 3.892027 -7.779256 +483 161 2 0 -3.432847 5.161485 -7.310788 +484 162 1 0 -7.446738 6.124823 0.150068 +485 162 2 0 -7.404893 5.207959 0.481504 +486 162 2 0 -8.405563 6.215466 -0.024439 +487 163 1 0 0.195330 -7.307128 -3.501714 +488 163 2 0 -0.240912 -6.769004 -4.243655 +489 163 2 0 -0.194915 -6.981989 -2.679860 +490 164 1 0 7.068819 9.130323 7.260588 +491 164 2 0 6.559855 8.400987 7.699406 +492 164 2 0 7.972497 8.829223 7.213747 +493 165 1 0 -0.185218 -3.192290 -6.289346 +494 165 2 0 0.776651 -3.073203 -6.391948 +495 165 2 0 -0.497426 -2.964088 -7.170893 +496 166 1 0 -2.073630 4.369672 5.251074 +497 166 2 0 -1.868638 3.811508 6.060261 +498 166 2 0 -1.253174 4.326708 4.781680 +499 167 1 0 -0.855003 3.069108 -7.935226 +500 167 2 0 0.075758 3.132202 -7.617253 +501 167 2 0 -1.009845 2.207487 -8.320426 +502 168 1 0 -6.328833 0.064083 -8.467228 +503 168 2 0 -7.268416 0.384648 -8.383978 +504 168 2 0 -5.825246 0.919304 -8.320175 +505 169 1 0 -8.276352 -8.809851 -6.344910 +506 169 2 0 -7.541457 -8.792368 -5.688031 +507 169 2 0 -8.510208 -9.731116 -6.353248 +508 170 1 0 0.463654 2.826776 7.018388 +509 170 2 0 0.875324 3.588447 7.482107 +510 170 2 0 0.770257 2.126646 7.583650 +511 171 1 0 0.478371 -3.407198 6.910039 +512 171 2 0 0.585298 -2.996750 7.756467 +513 171 2 0 0.556531 -4.390636 7.183527 +514 172 1 0 -1.689559 7.002511 -3.303561 +515 172 2 0 -1.009152 7.635432 -3.553133 +516 172 2 0 -1.333699 6.195680 -2.919485 +517 173 1 0 9.000097 -6.227871 8.137681 +518 173 2 0 9.373858 -6.821152 7.497417 +519 173 2 0 8.024020 -6.011019 8.033727 +520 174 1 0 1.272378 1.954065 3.058033 +521 174 2 0 1.260842 2.615112 2.341207 +522 174 2 0 1.890312 2.223439 3.732934 +523 175 1 0 4.139066 -3.527427 -9.022609 +524 175 2 0 4.070028 -3.499117 -9.985525 +525 175 2 0 4.960292 -3.942364 -8.778433 +526 176 1 0 7.176276 2.178662 -4.075940 +527 176 2 0 6.995275 1.684022 -4.873223 +528 176 2 0 7.621313 2.984315 -4.393994 +529 177 1 0 -0.034836 -3.929919 2.148095 +530 177 2 0 0.838003 -3.513346 2.259663 +531 177 2 0 -0.654999 -3.288581 2.426748 +532 178 1 0 -8.701616 2.795237 -5.700842 +533 178 2 0 -8.848959 2.145603 -6.420186 +534 178 2 0 -9.464654 3.362988 -5.610379 +535 179 1 0 2.804444 8.909551 -5.635389 +536 179 2 0 3.063615 9.805993 -5.770957 +537 179 2 0 3.512196 8.486179 -5.165468 +538 180 1 0 3.236002 8.357402 3.636639 +539 180 2 0 3.450854 9.071799 3.073263 +540 180 2 0 3.476445 8.586691 4.607935 +541 181 1 0 5.628532 7.185941 8.510937 +542 181 2 0 5.467837 6.318153 8.138885 +543 181 2 0 4.964153 7.477925 9.150467 +544 182 1 0 -3.767261 1.260390 2.017681 +545 182 2 0 -3.707734 2.019520 2.565591 +546 182 2 0 -3.364602 1.609935 1.212351 +547 183 1 0 8.228917 -3.441761 0.850139 +548 183 2 0 9.022130 -3.709208 1.334881 +549 183 2 0 7.553662 -3.976731 1.276651 +550 184 1 0 -3.004292 1.345869 7.236734 +551 184 2 0 -3.715311 0.724731 6.912689 +552 184 2 0 -3.525684 2.111901 7.538936 +553 185 1 0 4.901423 -5.547141 -0.119795 +554 185 2 0 5.327550 -5.560969 0.769770 +555 185 2 0 5.447642 -4.930752 -0.617088 +556 186 1 0 -3.306210 8.469477 -0.495057 +557 186 2 0 -2.836855 9.122642 -1.080706 +558 186 2 0 -3.311215 8.916887 0.353875 +559 187 1 0 -6.572180 3.018421 -0.262079 +560 187 2 0 -6.711444 2.659956 0.606460 +561 187 2 0 -6.040782 2.473886 -0.843542 +562 188 1 0 -5.429147 -5.967833 5.177682 +563 188 2 0 -4.896648 -6.608203 4.692534 +564 188 2 0 -5.386594 -6.130690 6.117931 +565 189 1 0 6.054430 7.035601 0.031519 +566 189 2 0 5.939348 7.951184 -0.141094 +567 189 2 0 5.390949 6.866654 0.702638 +568 190 1 0 -0.890229 -2.615376 -3.621726 +569 190 2 0 -1.695442 -2.097314 -3.537976 +570 190 2 0 -0.895128 -2.637531 -4.561712 +571 191 1 0 -5.446979 0.994907 -2.106714 +572 191 2 0 -4.494883 0.997912 -1.881595 +573 191 2 0 -5.759736 0.094199 -1.919247 +574 192 1 0 -7.517688 -4.078340 7.202707 +575 192 2 0 -8.242348 -4.324693 7.729813 +576 192 2 0 -6.924399 -4.817453 7.269430 +577 193 1 0 -1.134884 8.628488 2.081069 +578 193 2 0 -1.962897 8.634713 2.554947 +579 193 2 0 -1.119731 7.882422 1.516003 +580 194 1 0 -6.288317 8.011683 2.022129 +581 194 2 0 -6.404647 8.858198 1.546109 +582 194 2 0 -6.669138 7.315199 1.482614 +583 195 1 0 -6.766934 -4.026505 -8.306645 +584 195 2 0 -6.542552 -4.855702 -8.828363 +585 195 2 0 -7.743726 -3.954163 -8.170031 +586 196 1 0 6.895244 7.052113 -3.031289 +587 196 2 0 7.810039 7.265357 -3.330751 +588 196 2 0 6.666757 7.541675 -2.202178 +589 197 1 0 8.003260 4.735929 -5.168656 +590 197 2 0 7.233375 4.730204 -5.685772 +591 197 2 0 8.406708 5.629580 -5.300038 +592 198 1 0 -5.230160 -6.461196 -4.390836 +593 198 2 0 -5.701559 -7.313756 -4.377348 +594 198 2 0 -4.855545 -6.327970 -5.273444 +595 199 1 0 -3.803496 -9.221115 7.305476 +596 199 2 0 -2.934288 -8.877999 7.425047 +597 199 2 0 -4.416066 -8.566250 7.573191 +598 200 1 0 -5.990438 -1.574415 3.072521 +599 200 2 0 -5.805447 -1.119293 3.933731 +600 200 2 0 -6.651651 -0.947206 2.634773 +601 201 1 0 1.155451 7.138377 -1.178317 +602 201 2 0 0.330359 7.363227 -0.724568 +603 201 2 0 1.055145 7.478676 -2.100793 +604 202 1 0 -5.886817 5.150957 -2.997276 +605 202 2 0 -5.191777 4.556623 -2.611465 +606 202 2 0 -5.401622 6.003350 -3.064194 +607 203 1 0 2.539927 3.387568 4.976180 +608 203 2 0 1.760904 3.182324 5.589217 +609 203 2 0 2.841539 4.315465 5.278853 +610 204 1 0 8.331859 -7.344673 -5.188191 +611 204 2 0 8.424401 -7.586778 -4.198621 +612 204 2 0 8.911675 -7.764424 -5.823267 +613 205 1 0 -5.774081 1.315144 -5.304553 +614 205 2 0 -5.222992 1.580336 -6.077077 +615 205 2 0 -6.219878 2.178441 -5.093360 +616 206 1 0 6.340084 -4.926064 2.149626 +617 206 2 0 5.639784 -4.766017 2.829591 +618 206 2 0 6.883511 -5.598794 2.562820 +619 207 1 0 -2.722394 6.614441 -5.843805 +620 207 2 0 -2.332414 7.251953 -6.403722 +621 207 2 0 -2.221682 6.596615 -5.034993 +622 208 1 0 -1.813152 0.712824 -9.048176 +623 208 2 0 -1.763921 -0.271744 -8.916841 +624 208 2 0 -2.097796 0.860500 -9.970314 +625 209 1 0 6.146244 -6.879929 8.376712 +626 209 2 0 5.324465 -7.183905 8.841506 +627 209 2 0 6.642264 -7.749945 8.201756 +628 210 1 0 2.887544 8.612615 0.453821 +629 210 2 0 2.452117 8.047637 -0.251289 +630 210 2 0 2.348751 9.285636 0.895642 +631 211 1 0 -8.475558 -8.180718 6.501232 +632 211 2 0 -8.034310 -8.945692 6.891221 +633 211 2 0 -8.173606 -8.179435 5.569319 +634 212 1 0 6.714205 -2.947903 6.551671 +635 212 2 0 7.143284 -2.459194 7.270891 +636 212 2 0 7.212365 -2.637046 5.791018 +637 213 1 0 6.445003 -5.462306 5.577966 +638 213 2 0 6.730099 -4.696457 6.073312 +639 213 2 0 6.099428 -6.099736 6.222859 +640 214 1 0 -1.818761 -6.080111 -8.805420 +641 214 2 0 -1.644534 -6.777931 -9.477669 +642 214 2 0 -2.078582 -5.258591 -9.215838 +643 215 1 0 6.037377 2.950576 2.863541 +644 215 2 0 6.409766 3.757001 2.570754 +645 215 2 0 5.577033 2.617474 2.090587 +646 216 1 0 -7.731645 3.337668 3.301121 +647 216 2 0 -8.345957 4.027222 3.589257 +648 216 2 0 -8.130328 2.845238 2.577949 + +Bonds + +1 1 1 2 +2 1 1 3 +3 1 4 5 +4 1 4 6 +5 1 7 8 +6 1 7 9 +7 1 10 11 +8 1 10 12 +9 1 13 14 +10 1 13 15 +11 1 16 17 +12 1 16 18 +13 1 19 20 +14 1 19 21 +15 1 22 23 +16 1 22 24 +17 1 25 26 +18 1 25 27 +19 1 28 29 +20 1 28 30 +21 1 31 32 +22 1 31 33 +23 1 34 35 +24 1 34 36 +25 1 37 38 +26 1 37 39 +27 1 40 41 +28 1 40 42 +29 1 43 44 +30 1 43 45 +31 1 46 47 +32 1 46 48 +33 1 49 50 +34 1 49 51 +35 1 52 53 +36 1 52 54 +37 1 55 56 +38 1 55 57 +39 1 58 59 +40 1 58 60 +41 1 61 62 +42 1 61 63 +43 1 64 65 +44 1 64 66 +45 1 67 68 +46 1 67 69 +47 1 70 71 +48 1 70 72 +49 1 73 74 +50 1 73 75 +51 1 76 77 +52 1 76 78 +53 1 79 80 +54 1 79 81 +55 1 82 83 +56 1 82 84 +57 1 85 86 +58 1 85 87 +59 1 88 89 +60 1 88 90 +61 1 91 92 +62 1 91 93 +63 1 94 95 +64 1 94 96 +65 1 97 98 +66 1 97 99 +67 1 100 101 +68 1 100 102 +69 1 103 104 +70 1 103 105 +71 1 106 107 +72 1 106 108 +73 1 109 110 +74 1 109 111 +75 1 112 113 +76 1 112 114 +77 1 115 116 +78 1 115 117 +79 1 118 119 +80 1 118 120 +81 1 121 122 +82 1 121 123 +83 1 124 125 +84 1 124 126 +85 1 127 128 +86 1 127 129 +87 1 130 131 +88 1 130 132 +89 1 133 134 +90 1 133 135 +91 1 136 137 +92 1 136 138 +93 1 139 140 +94 1 139 141 +95 1 142 143 +96 1 142 144 +97 1 145 146 +98 1 145 147 +99 1 148 149 +100 1 148 150 +101 1 151 152 +102 1 151 153 +103 1 154 155 +104 1 154 156 +105 1 157 158 +106 1 157 159 +107 1 160 161 +108 1 160 162 +109 1 163 164 +110 1 163 165 +111 1 166 167 +112 1 166 168 +113 1 169 170 +114 1 169 171 +115 1 172 173 +116 1 172 174 +117 1 175 176 +118 1 175 177 +119 1 178 179 +120 1 178 180 +121 1 181 182 +122 1 181 183 +123 1 184 185 +124 1 184 186 +125 1 187 188 +126 1 187 189 +127 1 190 191 +128 1 190 192 +129 1 193 194 +130 1 193 195 +131 1 196 197 +132 1 196 198 +133 1 199 200 +134 1 199 201 +135 1 202 203 +136 1 202 204 +137 1 205 206 +138 1 205 207 +139 1 208 209 +140 1 208 210 +141 1 211 212 +142 1 211 213 +143 1 214 215 +144 1 214 216 +145 1 217 218 +146 1 217 219 +147 1 220 221 +148 1 220 222 +149 1 223 224 +150 1 223 225 +151 1 226 227 +152 1 226 228 +153 1 229 230 +154 1 229 231 +155 1 232 233 +156 1 232 234 +157 1 235 236 +158 1 235 237 +159 1 238 239 +160 1 238 240 +161 1 241 242 +162 1 241 243 +163 1 244 245 +164 1 244 246 +165 1 247 248 +166 1 247 249 +167 1 250 251 +168 1 250 252 +169 1 253 254 +170 1 253 255 +171 1 256 257 +172 1 256 258 +173 1 259 260 +174 1 259 261 +175 1 262 263 +176 1 262 264 +177 1 265 266 +178 1 265 267 +179 1 268 269 +180 1 268 270 +181 1 271 272 +182 1 271 273 +183 1 274 275 +184 1 274 276 +185 1 277 278 +186 1 277 279 +187 1 280 281 +188 1 280 282 +189 1 283 284 +190 1 283 285 +191 1 286 287 +192 1 286 288 +193 1 289 290 +194 1 289 291 +195 1 292 293 +196 1 292 294 +197 1 295 296 +198 1 295 297 +199 1 298 299 +200 1 298 300 +201 1 301 302 +202 1 301 303 +203 1 304 305 +204 1 304 306 +205 1 307 308 +206 1 307 309 +207 1 310 311 +208 1 310 312 +209 1 313 314 +210 1 313 315 +211 1 316 317 +212 1 316 318 +213 1 319 320 +214 1 319 321 +215 1 322 323 +216 1 322 324 +217 1 325 326 +218 1 325 327 +219 1 328 329 +220 1 328 330 +221 1 331 332 +222 1 331 333 +223 1 334 335 +224 1 334 336 +225 1 337 338 +226 1 337 339 +227 1 340 341 +228 1 340 342 +229 1 343 344 +230 1 343 345 +231 1 346 347 +232 1 346 348 +233 1 349 350 +234 1 349 351 +235 1 352 353 +236 1 352 354 +237 1 355 356 +238 1 355 357 +239 1 358 359 +240 1 358 360 +241 1 361 362 +242 1 361 363 +243 1 364 365 +244 1 364 366 +245 1 367 368 +246 1 367 369 +247 1 370 371 +248 1 370 372 +249 1 373 374 +250 1 373 375 +251 1 376 377 +252 1 376 378 +253 1 379 380 +254 1 379 381 +255 1 382 383 +256 1 382 384 +257 1 385 386 +258 1 385 387 +259 1 388 389 +260 1 388 390 +261 1 391 392 +262 1 391 393 +263 1 394 395 +264 1 394 396 +265 1 397 398 +266 1 397 399 +267 1 400 401 +268 1 400 402 +269 1 403 404 +270 1 403 405 +271 1 406 407 +272 1 406 408 +273 1 409 410 +274 1 409 411 +275 1 412 413 +276 1 412 414 +277 1 415 416 +278 1 415 417 +279 1 418 419 +280 1 418 420 +281 1 421 422 +282 1 421 423 +283 1 424 425 +284 1 424 426 +285 1 427 428 +286 1 427 429 +287 1 430 431 +288 1 430 432 +289 1 433 434 +290 1 433 435 +291 1 436 437 +292 1 436 438 +293 1 439 440 +294 1 439 441 +295 1 442 443 +296 1 442 444 +297 1 445 446 +298 1 445 447 +299 1 448 449 +300 1 448 450 +301 1 451 452 +302 1 451 453 +303 1 454 455 +304 1 454 456 +305 1 457 458 +306 1 457 459 +307 1 460 461 +308 1 460 462 +309 1 463 464 +310 1 463 465 +311 1 466 467 +312 1 466 468 +313 1 469 470 +314 1 469 471 +315 1 472 473 +316 1 472 474 +317 1 475 476 +318 1 475 477 +319 1 478 479 +320 1 478 480 +321 1 481 482 +322 1 481 483 +323 1 484 485 +324 1 484 486 +325 1 487 488 +326 1 487 489 +327 1 490 491 +328 1 490 492 +329 1 493 494 +330 1 493 495 +331 1 496 497 +332 1 496 498 +333 1 499 500 +334 1 499 501 +335 1 502 503 +336 1 502 504 +337 1 505 506 +338 1 505 507 +339 1 508 509 +340 1 508 510 +341 1 511 512 +342 1 511 513 +343 1 514 515 +344 1 514 516 +345 1 517 518 +346 1 517 519 +347 1 520 521 +348 1 520 522 +349 1 523 524 +350 1 523 525 +351 1 526 527 +352 1 526 528 +353 1 529 530 +354 1 529 531 +355 1 532 533 +356 1 532 534 +357 1 535 536 +358 1 535 537 +359 1 538 539 +360 1 538 540 +361 1 541 542 +362 1 541 543 +363 1 544 545 +364 1 544 546 +365 1 547 548 +366 1 547 549 +367 1 550 551 +368 1 550 552 +369 1 553 554 +370 1 553 555 +371 1 556 557 +372 1 556 558 +373 1 559 560 +374 1 559 561 +375 1 562 563 +376 1 562 564 +377 1 565 566 +378 1 565 567 +379 1 568 569 +380 1 568 570 +381 1 571 572 +382 1 571 573 +383 1 574 575 +384 1 574 576 +385 1 577 578 +386 1 577 579 +387 1 580 581 +388 1 580 582 +389 1 583 584 +390 1 583 585 +391 1 586 587 +392 1 586 588 +393 1 589 590 +394 1 589 591 +395 1 592 593 +396 1 592 594 +397 1 595 596 +398 1 595 597 +399 1 598 599 +400 1 598 600 +401 1 601 602 +402 1 601 603 +403 1 604 605 +404 1 604 606 +405 1 607 608 +406 1 607 609 +407 1 610 611 +408 1 610 612 +409 1 613 614 +410 1 613 615 +411 1 616 617 +412 1 616 618 +413 1 619 620 +414 1 619 621 +415 1 622 623 +416 1 622 624 +417 1 625 626 +418 1 625 627 +419 1 628 629 +420 1 628 630 +421 1 631 632 +422 1 631 633 +423 1 634 635 +424 1 634 636 +425 1 637 638 +426 1 637 639 +427 1 640 641 +428 1 640 642 +429 1 643 644 +430 1 643 645 +431 1 646 647 +432 1 646 648 + +Angles + +1 1 2 1 3 +2 1 5 4 6 +3 1 8 7 9 +4 1 11 10 12 +5 1 14 13 15 +6 1 17 16 18 +7 1 20 19 21 +8 1 23 22 24 +9 1 26 25 27 +10 1 29 28 30 +11 1 32 31 33 +12 1 35 34 36 +13 1 38 37 39 +14 1 41 40 42 +15 1 44 43 45 +16 1 47 46 48 +17 1 50 49 51 +18 1 53 52 54 +19 1 56 55 57 +20 1 59 58 60 +21 1 62 61 63 +22 1 65 64 66 +23 1 68 67 69 +24 1 71 70 72 +25 1 74 73 75 +26 1 77 76 78 +27 1 80 79 81 +28 1 83 82 84 +29 1 86 85 87 +30 1 89 88 90 +31 1 92 91 93 +32 1 95 94 96 +33 1 98 97 99 +34 1 101 100 102 +35 1 104 103 105 +36 1 107 106 108 +37 1 110 109 111 +38 1 113 112 114 +39 1 116 115 117 +40 1 119 118 120 +41 1 122 121 123 +42 1 125 124 126 +43 1 128 127 129 +44 1 131 130 132 +45 1 134 133 135 +46 1 137 136 138 +47 1 140 139 141 +48 1 143 142 144 +49 1 146 145 147 +50 1 149 148 150 +51 1 152 151 153 +52 1 155 154 156 +53 1 158 157 159 +54 1 161 160 162 +55 1 164 163 165 +56 1 167 166 168 +57 1 170 169 171 +58 1 173 172 174 +59 1 176 175 177 +60 1 179 178 180 +61 1 182 181 183 +62 1 185 184 186 +63 1 188 187 189 +64 1 191 190 192 +65 1 194 193 195 +66 1 197 196 198 +67 1 200 199 201 +68 1 203 202 204 +69 1 206 205 207 +70 1 209 208 210 +71 1 212 211 213 +72 1 215 214 216 +73 1 218 217 219 +74 1 221 220 222 +75 1 224 223 225 +76 1 227 226 228 +77 1 230 229 231 +78 1 233 232 234 +79 1 236 235 237 +80 1 239 238 240 +81 1 242 241 243 +82 1 245 244 246 +83 1 248 247 249 +84 1 251 250 252 +85 1 254 253 255 +86 1 257 256 258 +87 1 260 259 261 +88 1 263 262 264 +89 1 266 265 267 +90 1 269 268 270 +91 1 272 271 273 +92 1 275 274 276 +93 1 278 277 279 +94 1 281 280 282 +95 1 284 283 285 +96 1 287 286 288 +97 1 290 289 291 +98 1 293 292 294 +99 1 296 295 297 +100 1 299 298 300 +101 1 302 301 303 +102 1 305 304 306 +103 1 308 307 309 +104 1 311 310 312 +105 1 314 313 315 +106 1 317 316 318 +107 1 320 319 321 +108 1 323 322 324 +109 1 326 325 327 +110 1 329 328 330 +111 1 332 331 333 +112 1 335 334 336 +113 1 338 337 339 +114 1 341 340 342 +115 1 344 343 345 +116 1 347 346 348 +117 1 350 349 351 +118 1 353 352 354 +119 1 356 355 357 +120 1 359 358 360 +121 1 362 361 363 +122 1 365 364 366 +123 1 368 367 369 +124 1 371 370 372 +125 1 374 373 375 +126 1 377 376 378 +127 1 380 379 381 +128 1 383 382 384 +129 1 386 385 387 +130 1 389 388 390 +131 1 392 391 393 +132 1 395 394 396 +133 1 398 397 399 +134 1 401 400 402 +135 1 404 403 405 +136 1 407 406 408 +137 1 410 409 411 +138 1 413 412 414 +139 1 416 415 417 +140 1 419 418 420 +141 1 422 421 423 +142 1 425 424 426 +143 1 428 427 429 +144 1 431 430 432 +145 1 434 433 435 +146 1 437 436 438 +147 1 440 439 441 +148 1 443 442 444 +149 1 446 445 447 +150 1 449 448 450 +151 1 452 451 453 +152 1 455 454 456 +153 1 458 457 459 +154 1 461 460 462 +155 1 464 463 465 +156 1 467 466 468 +157 1 470 469 471 +158 1 473 472 474 +159 1 476 475 477 +160 1 479 478 480 +161 1 482 481 483 +162 1 485 484 486 +163 1 488 487 489 +164 1 491 490 492 +165 1 494 493 495 +166 1 497 496 498 +167 1 500 499 501 +168 1 503 502 504 +169 1 506 505 507 +170 1 509 508 510 +171 1 512 511 513 +172 1 515 514 516 +173 1 518 517 519 +174 1 521 520 522 +175 1 524 523 525 +176 1 527 526 528 +177 1 530 529 531 +178 1 533 532 534 +179 1 536 535 537 +180 1 539 538 540 +181 1 542 541 543 +182 1 545 544 546 +183 1 548 547 549 +184 1 551 550 552 +185 1 554 553 555 +186 1 557 556 558 +187 1 560 559 561 +188 1 563 562 564 +189 1 566 565 567 +190 1 569 568 570 +191 1 572 571 573 +192 1 575 574 576 +193 1 578 577 579 +194 1 581 580 582 +195 1 584 583 585 +196 1 587 586 588 +197 1 590 589 591 +198 1 593 592 594 +199 1 596 595 597 +200 1 599 598 600 +201 1 602 601 603 +202 1 605 604 606 +203 1 608 607 609 +204 1 611 610 612 +205 1 614 613 615 +206 1 617 616 618 +207 1 620 619 621 +208 1 623 622 624 +209 1 626 625 627 +210 1 629 628 630 +211 1 632 631 633 +212 1 635 634 636 +213 1 638 637 639 +214 1 641 640 642 +215 1 644 643 645 +216 1 647 646 648 + +Bond Coeffs + +1 0.9572 556.85 -1419.9675 2112.20165625 + +Angle Coeffs + +1 0 1 108.5 48.7 -39.064262472 8.95286947775 -6.41202044508 11.5462823034 + +BondAngle Coeffs + +1 0.0 0.0 0.0 0.0 + +UreyBradley Coeffs + +1 -7.6 1.5537 + +Tinker Types + +1 1 +2 2 +3 2 +4 1 +5 2 +6 2 +7 1 +8 2 +9 2 +10 1 +11 2 +12 2 +13 1 +14 2 +15 2 +16 1 +17 2 +18 2 +19 1 +20 2 +21 2 +22 1 +23 2 +24 2 +25 1 +26 2 +27 2 +28 1 +29 2 +30 2 +31 1 +32 2 +33 2 +34 1 +35 2 +36 2 +37 1 +38 2 +39 2 +40 1 +41 2 +42 2 +43 1 +44 2 +45 2 +46 1 +47 2 +48 2 +49 1 +50 2 +51 2 +52 1 +53 2 +54 2 +55 1 +56 2 +57 2 +58 1 +59 2 +60 2 +61 1 +62 2 +63 2 +64 1 +65 2 +66 2 +67 1 +68 2 +69 2 +70 1 +71 2 +72 2 +73 1 +74 2 +75 2 +76 1 +77 2 +78 2 +79 1 +80 2 +81 2 +82 1 +83 2 +84 2 +85 1 +86 2 +87 2 +88 1 +89 2 +90 2 +91 1 +92 2 +93 2 +94 1 +95 2 +96 2 +97 1 +98 2 +99 2 +100 1 +101 2 +102 2 +103 1 +104 2 +105 2 +106 1 +107 2 +108 2 +109 1 +110 2 +111 2 +112 1 +113 2 +114 2 +115 1 +116 2 +117 2 +118 1 +119 2 +120 2 +121 1 +122 2 +123 2 +124 1 +125 2 +126 2 +127 1 +128 2 +129 2 +130 1 +131 2 +132 2 +133 1 +134 2 +135 2 +136 1 +137 2 +138 2 +139 1 +140 2 +141 2 +142 1 +143 2 +144 2 +145 1 +146 2 +147 2 +148 1 +149 2 +150 2 +151 1 +152 2 +153 2 +154 1 +155 2 +156 2 +157 1 +158 2 +159 2 +160 1 +161 2 +162 2 +163 1 +164 2 +165 2 +166 1 +167 2 +168 2 +169 1 +170 2 +171 2 +172 1 +173 2 +174 2 +175 1 +176 2 +177 2 +178 1 +179 2 +180 2 +181 1 +182 2 +183 2 +184 1 +185 2 +186 2 +187 1 +188 2 +189 2 +190 1 +191 2 +192 2 +193 1 +194 2 +195 2 +196 1 +197 2 +198 2 +199 1 +200 2 +201 2 +202 1 +203 2 +204 2 +205 1 +206 2 +207 2 +208 1 +209 2 +210 2 +211 1 +212 2 +213 2 +214 1 +215 2 +216 2 +217 1 +218 2 +219 2 +220 1 +221 2 +222 2 +223 1 +224 2 +225 2 +226 1 +227 2 +228 2 +229 1 +230 2 +231 2 +232 1 +233 2 +234 2 +235 1 +236 2 +237 2 +238 1 +239 2 +240 2 +241 1 +242 2 +243 2 +244 1 +245 2 +246 2 +247 1 +248 2 +249 2 +250 1 +251 2 +252 2 +253 1 +254 2 +255 2 +256 1 +257 2 +258 2 +259 1 +260 2 +261 2 +262 1 +263 2 +264 2 +265 1 +266 2 +267 2 +268 1 +269 2 +270 2 +271 1 +272 2 +273 2 +274 1 +275 2 +276 2 +277 1 +278 2 +279 2 +280 1 +281 2 +282 2 +283 1 +284 2 +285 2 +286 1 +287 2 +288 2 +289 1 +290 2 +291 2 +292 1 +293 2 +294 2 +295 1 +296 2 +297 2 +298 1 +299 2 +300 2 +301 1 +302 2 +303 2 +304 1 +305 2 +306 2 +307 1 +308 2 +309 2 +310 1 +311 2 +312 2 +313 1 +314 2 +315 2 +316 1 +317 2 +318 2 +319 1 +320 2 +321 2 +322 1 +323 2 +324 2 +325 1 +326 2 +327 2 +328 1 +329 2 +330 2 +331 1 +332 2 +333 2 +334 1 +335 2 +336 2 +337 1 +338 2 +339 2 +340 1 +341 2 +342 2 +343 1 +344 2 +345 2 +346 1 +347 2 +348 2 +349 1 +350 2 +351 2 +352 1 +353 2 +354 2 +355 1 +356 2 +357 2 +358 1 +359 2 +360 2 +361 1 +362 2 +363 2 +364 1 +365 2 +366 2 +367 1 +368 2 +369 2 +370 1 +371 2 +372 2 +373 1 +374 2 +375 2 +376 1 +377 2 +378 2 +379 1 +380 2 +381 2 +382 1 +383 2 +384 2 +385 1 +386 2 +387 2 +388 1 +389 2 +390 2 +391 1 +392 2 +393 2 +394 1 +395 2 +396 2 +397 1 +398 2 +399 2 +400 1 +401 2 +402 2 +403 1 +404 2 +405 2 +406 1 +407 2 +408 2 +409 1 +410 2 +411 2 +412 1 +413 2 +414 2 +415 1 +416 2 +417 2 +418 1 +419 2 +420 2 +421 1 +422 2 +423 2 +424 1 +425 2 +426 2 +427 1 +428 2 +429 2 +430 1 +431 2 +432 2 +433 1 +434 2 +435 2 +436 1 +437 2 +438 2 +439 1 +440 2 +441 2 +442 1 +443 2 +444 2 +445 1 +446 2 +447 2 +448 1 +449 2 +450 2 +451 1 +452 2 +453 2 +454 1 +455 2 +456 2 +457 1 +458 2 +459 2 +460 1 +461 2 +462 2 +463 1 +464 2 +465 2 +466 1 +467 2 +468 2 +469 1 +470 2 +471 2 +472 1 +473 2 +474 2 +475 1 +476 2 +477 2 +478 1 +479 2 +480 2 +481 1 +482 2 +483 2 +484 1 +485 2 +486 2 +487 1 +488 2 +489 2 +490 1 +491 2 +492 2 +493 1 +494 2 +495 2 +496 1 +497 2 +498 2 +499 1 +500 2 +501 2 +502 1 +503 2 +504 2 +505 1 +506 2 +507 2 +508 1 +509 2 +510 2 +511 1 +512 2 +513 2 +514 1 +515 2 +516 2 +517 1 +518 2 +519 2 +520 1 +521 2 +522 2 +523 1 +524 2 +525 2 +526 1 +527 2 +528 2 +529 1 +530 2 +531 2 +532 1 +533 2 +534 2 +535 1 +536 2 +537 2 +538 1 +539 2 +540 2 +541 1 +542 2 +543 2 +544 1 +545 2 +546 2 +547 1 +548 2 +549 2 +550 1 +551 2 +552 2 +553 1 +554 2 +555 2 +556 1 +557 2 +558 2 +559 1 +560 2 +561 2 +562 1 +563 2 +564 2 +565 1 +566 2 +567 2 +568 1 +569 2 +570 2 +571 1 +572 2 +573 2 +574 1 +575 2 +576 2 +577 1 +578 2 +579 2 +580 1 +581 2 +582 2 +583 1 +584 2 +585 2 +586 1 +587 2 +588 2 +589 1 +590 2 +591 2 +592 1 +593 2 +594 2 +595 1 +596 2 +597 2 +598 1 +599 2 +600 2 +601 1 +602 2 +603 2 +604 1 +605 2 +606 2 +607 1 +608 2 +609 2 +610 1 +611 2 +612 2 +613 1 +614 2 +615 2 +616 1 +617 2 +618 2 +619 1 +620 2 +621 2 +622 1 +623 2 +624 2 +625 1 +626 2 +627 2 +628 1 +629 2 +630 2 +631 1 +632 2 +633 2 +634 1 +635 2 +636 2 +637 1 +638 2 +639 2 +640 1 +641 2 +642 2 +643 1 +644 2 +645 2 +646 1 +647 2 +648 2 diff --git a/examples/amoeba/data.water_box.hippo b/examples/amoeba/data.water_box.hippo new file mode 100644 index 0000000000..8c6511ea5f --- /dev/null +++ b/examples/amoeba/data.water_box.hippo @@ -0,0 +1,1988 @@ +LAMMPS data file created from Tinker water_box.xyz and hippo_water.prm files + +648 atoms +432 bonds +216 angles +2 atom types +1 bond types +1 angle types +0 18.643 xlo xhi +0 18.643 ylo yhi +0 18.643 zlo zhi + +Masses + +1 15.999 +2 1.008 + +Atoms + +1 1 1 0 8.679662 7.087692 -0.696862 +2 1 2 0 7.809455 6.755792 -0.382259 +3 1 2 0 8.722232 6.814243 -1.617561 +4 2 1 0 -0.117313 8.244447 6.837616 +5 2 2 0 0.216892 7.895445 6.050027 +6 2 2 0 0.444268 7.826013 7.530196 +7 3 1 0 8.379057 -0.092611 6.814631 +8 3 2 0 9.340423 0.098069 6.734062 +9 3 2 0 7.939619 0.573676 6.269838 +10 4 1 0 6.589952 1.844323 -6.923167 +11 4 2 0 5.885429 2.402305 -6.717934 +12 4 2 0 6.181533 1.062747 -7.273678 +13 5 1 0 7.146600 5.753582 2.331517 +14 5 2 0 6.368123 6.126035 2.862678 +15 5 2 0 7.025018 6.294645 1.518196 +16 6 1 0 -2.426581 -8.504195 -2.504834 +17 6 2 0 -1.692063 -8.368252 -3.058292 +18 6 2 0 -2.793207 -7.602469 -2.403097 +19 7 1 0 -8.038375 -3.605589 2.303691 +20 7 2 0 -8.113753 -4.248127 3.018494 +21 7 2 0 -7.619392 -2.863004 2.709622 +22 8 1 0 -1.480631 8.244085 -8.272215 +23 8 2 0 -2.090204 8.687978 -7.676996 +24 8 2 0 -0.700878 8.823325 -8.322213 +25 9 1 0 -3.741962 -2.777830 -2.326319 +26 9 2 0 -4.620456 -2.444778 -2.390519 +27 9 2 0 -3.728921 -3.160952 -1.433101 +28 10 1 0 -6.467812 -5.265942 0.408263 +29 10 2 0 -6.585076 -4.796537 -0.413008 +30 10 2 0 -7.021252 -4.752640 1.007958 +31 11 1 0 9.273577 5.342431 4.055460 +32 11 2 0 8.645939 5.466500 4.837640 +33 11 2 0 8.741774 5.686149 3.302820 +34 12 1 0 1.830160 4.276731 -6.993499 +35 12 2 0 1.703275 5.223773 -6.703852 +36 12 2 0 2.408113 3.853447 -6.383339 +37 13 1 0 1.964382 6.832988 8.373101 +38 13 2 0 2.496135 7.215781 9.056298 +39 13 2 0 1.811283 5.905846 8.573539 +40 14 1 0 5.405568 4.388994 7.932737 +41 14 2 0 5.537380 3.438955 7.781311 +42 14 2 0 4.755156 4.734908 7.290617 +43 15 1 0 3.229998 2.928417 -1.090650 +44 15 2 0 3.931090 3.198265 -1.702769 +45 15 2 0 3.004438 3.708969 -0.493266 +46 16 1 0 7.462400 5.262829 6.131170 +47 16 2 0 8.025650 5.588493 6.881770 +48 16 2 0 6.935076 4.455766 6.325405 +49 17 1 0 -8.864042 7.023845 -6.659632 +50 17 2 0 -8.370939 6.372557 -7.141895 +51 17 2 0 -9.489800 7.315873 -7.293125 +52 18 1 0 -4.526299 3.549989 8.030031 +53 18 2 0 -5.169770 4.224127 7.731323 +54 18 2 0 -4.262096 3.801892 8.884875 +55 19 1 0 4.823286 -1.386218 4.038464 +56 19 2 0 5.493155 -0.669965 4.013081 +57 19 2 0 4.187463 -1.101832 3.338433 +58 20 1 0 -2.151150 -2.017060 -8.593685 +59 20 2 0 -2.475709 -2.320356 -7.783564 +60 20 2 0 -2.650484 -2.434614 -9.307384 +61 21 1 0 1.944893 4.933226 0.497910 +62 21 2 0 2.553221 5.263352 1.205303 +63 21 2 0 2.082534 5.590999 -0.202171 +64 22 1 0 -6.827006 -5.285917 -2.371899 +65 22 2 0 -7.405873 -6.022738 -2.075913 +66 22 2 0 -6.398443 -5.453726 -3.235054 +67 23 1 0 -8.538047 -7.577917 -1.688532 +68 23 2 0 -8.075591 -8.448260 -1.513455 +69 23 2 0 -9.389507 -7.836271 -2.051835 +70 24 1 0 -6.916556 -1.100882 -5.168782 +71 24 2 0 -6.365888 -1.659366 -5.746210 +72 24 2 0 -6.538885 -0.249374 -5.325993 +73 25 1 0 6.330290 -9.323893 -6.416630 +74 25 2 0 7.026026 -9.680578 -7.007727 +75 25 2 0 6.812488 -8.683594 -5.925799 +76 26 1 0 -2.424345 -5.918126 2.701855 +77 26 2 0 -1.613829 -5.486394 2.503024 +78 26 2 0 -3.144797 -5.307275 2.618121 +79 27 1 0 0.637202 -6.080457 5.849135 +80 27 2 0 0.892312 -6.092342 4.907709 +81 27 2 0 -0.339074 -5.838972 5.853292 +82 28 1 0 5.199216 -2.264918 -0.138343 +83 28 2 0 5.802838 -2.788698 -0.697536 +84 28 2 0 5.670340 -1.679393 0.462296 +85 29 1 0 0.510145 7.629450 4.054500 +86 29 2 0 -0.071135 8.146563 3.452959 +87 29 2 0 1.464962 7.740819 3.669172 +88 30 1 0 3.146724 8.895843 6.526257 +89 30 2 0 3.506091 8.599906 7.352942 +90 30 2 0 2.145729 8.929622 6.682029 +91 31 1 0 7.308541 -8.339335 -2.471342 +92 31 2 0 6.562127 -8.180601 -3.062803 +93 31 2 0 6.993025 -8.364954 -1.531235 +94 32 1 0 -7.530792 1.069683 4.989387 +95 32 2 0 -7.565406 1.971422 4.648636 +96 32 2 0 -7.938250 0.433547 4.370266 +97 33 1 0 4.452035 2.700609 -5.437815 +98 33 2 0 4.603326 3.058652 -4.551590 +99 33 2 0 4.386453 1.737004 -5.180419 +100 34 1 0 8.427922 -8.619286 1.784691 +101 34 2 0 8.340498 -8.005342 2.536225 +102 34 2 0 8.496720 -9.530562 2.174667 +103 35 1 0 -8.109456 1.753830 -3.096997 +104 35 2 0 -7.245287 1.827177 -2.721417 +105 35 2 0 -8.082178 1.783171 -4.059329 +106 36 1 0 2.776933 -5.701955 7.748213 +107 36 2 0 3.287974 -5.069688 7.233816 +108 36 2 0 1.987041 -5.817355 7.200131 +109 37 1 0 3.635171 -6.953519 5.339628 +110 37 2 0 3.353851 -7.592789 6.031367 +111 37 2 0 2.875801 -6.787975 4.740576 +112 38 1 0 6.888027 -4.169023 -1.800190 +113 38 2 0 7.559735 -4.813701 -2.004669 +114 38 2 0 6.603805 -3.759237 -2.626496 +115 39 1 0 -4.470837 -4.105640 3.415362 +116 39 2 0 -4.991607 -3.358538 3.140956 +117 39 2 0 -4.791764 -4.392214 4.254387 +118 40 1 0 8.282263 -0.462068 -2.560579 +119 40 2 0 8.776769 -1.293641 -2.335945 +120 40 2 0 8.760297 0.384816 -2.651128 +121 41 1 0 4.737236 1.616430 4.901115 +122 41 2 0 3.969692 2.168368 5.152631 +123 41 2 0 5.184651 2.148403 4.154746 +124 42 1 0 -3.497332 -5.781436 -2.202713 +125 42 2 0 -4.038857 -5.773824 -1.381680 +126 42 2 0 -4.152970 -6.012265 -2.829379 +127 43 1 0 -2.863989 -0.259334 -1.857006 +128 43 2 0 -2.132201 -0.027953 -1.174211 +129 43 2 0 -2.873625 -1.224425 -1.874253 +130 44 1 0 1.138300 1.133100 -2.085899 +131 44 2 0 1.965506 1.503520 -1.725316 +132 44 2 0 0.420521 1.534440 -1.551356 +133 45 1 0 -0.561328 4.590705 -2.780017 +134 45 2 0 -0.061173 3.919356 -3.294128 +135 45 2 0 -0.082763 4.733898 -1.955602 +136 46 1 0 -6.423002 -1.705204 -2.528225 +137 46 2 0 -7.233989 -1.949552 -1.975418 +138 46 2 0 -6.678416 -1.321413 -3.351278 +139 47 1 0 -2.772100 2.552210 -0.672282 +140 47 2 0 -2.907489 3.483552 -0.385605 +141 47 2 0 -2.977127 2.592348 -1.635820 +142 48 1 0 6.708678 -4.852016 -8.379280 +143 48 2 0 6.593474 -5.094964 -7.447187 +144 48 2 0 6.582524 -5.591596 -8.966502 +145 49 1 0 -8.497001 -0.440284 2.803721 +146 49 2 0 -8.422350 0.331961 2.183451 +147 49 2 0 -9.377295 -0.756160 2.677026 +148 50 1 0 2.975383 -0.894970 6.060783 +149 50 2 0 2.093991 -0.995700 5.670129 +150 50 2 0 3.458832 -0.759248 5.263958 +151 51 1 0 -6.085023 -1.629620 7.970284 +152 51 2 0 -6.685848 -2.391830 7.820849 +153 51 2 0 -6.177296 -1.190584 8.835912 +154 52 1 0 -3.763523 -3.356777 8.285436 +155 52 2 0 -4.660650 -3.029414 8.406662 +156 52 2 0 -3.411834 -3.178947 7.431180 +157 53 1 0 -1.100120 -0.320162 0.375372 +158 53 2 0 -0.527013 -1.012183 0.128652 +159 53 2 0 -0.673226 0.288559 0.934677 +160 54 1 0 0.910209 -8.271802 1.411429 +161 54 2 0 0.158544 -8.759532 1.870895 +162 54 2 0 0.565924 -7.546113 0.944383 +163 55 1 0 1.554065 -6.468033 3.310872 +164 55 2 0 1.362455 -7.162802 2.722340 +165 55 2 0 1.616233 -5.622409 2.872854 +166 56 1 0 0.543127 -1.388652 4.886094 +167 56 2 0 0.110320 -0.665826 5.311239 +168 56 2 0 0.420366 -2.216367 5.267301 +169 57 1 0 1.100526 1.019490 -9.255318 +170 57 2 0 1.460815 0.575286 -8.484128 +171 57 2 0 0.265613 0.594128 -9.297750 +172 58 1 0 -1.842348 2.327827 -5.355326 +173 58 2 0 -1.572941 2.573139 -6.288125 +174 58 2 0 -2.216679 1.439934 -5.361006 +175 59 1 0 2.452307 -2.814686 -6.448759 +176 59 2 0 2.862295 -3.091668 -5.589336 +177 59 2 0 2.913920 -3.262923 -7.181510 +178 60 1 0 -2.207998 -3.112007 5.945795 +179 60 2 0 -1.262203 -3.125339 6.205467 +180 60 2 0 -2.228269 -2.421858 5.220629 +181 61 1 0 5.845471 5.020556 -6.836491 +182 61 2 0 5.557986 5.913737 -6.753889 +183 61 2 0 5.089998 4.459153 -6.661079 +184 62 1 0 -3.421643 4.865553 0.731755 +185 62 2 0 -3.965419 4.458452 1.478214 +186 62 2 0 -3.973445 4.958338 -0.044430 +187 63 1 0 -2.302950 -2.349717 2.112168 +188 63 2 0 -2.576438 -1.873492 2.873191 +189 63 2 0 -1.882868 -1.715106 1.503782 +190 64 1 0 0.305885 4.878766 3.791182 +191 64 2 0 0.299338 5.855407 4.097578 +192 64 2 0 1.169911 4.563497 4.030616 +193 65 1 0 2.925008 -3.664845 -3.607450 +194 65 2 0 3.015896 -3.916618 -2.644267 +195 65 2 0 2.353923 -2.889459 -3.518284 +196 66 1 0 1.111505 -4.070255 -9.085693 +197 66 2 0 2.084905 -4.227348 -9.180249 +198 66 2 0 0.897072 -4.902218 -8.740523 +199 67 1 0 -4.992929 -1.974219 -7.099668 +200 67 2 0 -5.173269 -1.186309 -7.673625 +201 67 2 0 -5.070893 -2.753273 -7.658821 +202 68 1 0 4.730983 1.478420 0.720986 +203 68 2 0 4.271686 1.988265 0.034225 +204 68 2 0 4.117413 0.788607 1.061818 +205 69 1 0 1.421583 -0.176666 -6.729105 +206 69 2 0 1.217660 0.394331 -5.978213 +207 69 2 0 1.948444 -0.877988 -6.400659 +208 70 1 0 -7.093223 -8.541193 4.116187 +209 70 2 0 -7.074252 -8.047477 3.242159 +210 70 2 0 -6.153142 -8.537148 4.455550 +211 71 1 0 8.382540 -6.460958 3.765735 +212 71 2 0 9.258625 -6.141972 4.060763 +213 71 2 0 7.637364 -6.217910 4.407852 +214 72 1 0 -4.320241 4.037137 3.297092 +215 72 2 0 -3.750151 4.141786 4.105470 +216 72 2 0 -5.172925 4.455578 3.488906 +217 73 1 0 5.581877 1.781994 7.505132 +218 73 2 0 5.017196 1.139584 8.120950 +219 73 2 0 5.330781 1.591217 6.595286 +220 74 1 0 -0.734443 1.125031 4.884666 +221 74 2 0 -0.239224 1.540322 4.142070 +222 74 2 0 -0.961628 1.783437 5.554548 +223 75 1 0 6.831005 -9.249970 4.497165 +224 75 2 0 6.836746 -9.068011 5.427146 +225 75 2 0 7.668067 -9.652510 4.249957 +226 76 1 0 2.714055 -3.677581 1.962003 +227 76 2 0 3.333432 -3.851775 2.663540 +228 76 2 0 3.095021 -3.978526 1.102566 +229 77 1 0 -1.364034 -5.762724 -5.514747 +230 77 2 0 -2.238584 -5.409106 -5.314718 +231 77 2 0 -0.948185 -4.908428 -5.559580 +232 78 1 0 -3.623435 -8.061229 1.383141 +233 78 2 0 -3.132847 -7.446722 1.857906 +234 78 2 0 -4.307943 -7.546630 0.933298 +235 79 1 0 5.717894 6.958376 4.528556 +236 79 2 0 5.852657 7.879846 4.341790 +237 79 2 0 6.443636 6.708413 5.135144 +238 80 1 0 8.121415 8.262619 -8.483986 +239 80 2 0 8.585190 8.939651 -8.974230 +240 80 2 0 7.560207 7.748539 -9.044644 +241 81 1 0 -5.111889 -0.352865 5.807903 +242 81 2 0 -5.940048 0.102298 5.569630 +243 81 2 0 -5.349104 -1.014090 6.507582 +244 82 1 0 0.327324 2.563438 0.113251 +245 82 2 0 -0.633994 2.522136 -0.069385 +246 82 2 0 0.724331 3.482989 0.160564 +247 83 1 0 -6.003367 -7.683112 -8.874252 +248 83 2 0 -6.987751 -7.912403 -8.892689 +249 83 2 0 -5.699015 -8.504722 -8.558813 +250 84 1 0 0.789377 -6.357883 -7.563043 +251 84 2 0 -0.151101 -6.341313 -7.440906 +252 84 2 0 1.090881 -5.879281 -6.770796 +253 85 1 0 5.045666 7.219298 -5.151826 +254 85 2 0 5.598994 7.846492 -5.618276 +255 85 2 0 5.480466 6.978976 -4.337211 +256 86 1 0 1.286092 6.990271 -6.806004 +257 86 2 0 0.481329 7.140371 -7.345224 +258 86 2 0 1.716012 7.791024 -6.762706 +259 87 1 0 -3.198783 -9.175883 -6.334156 +260 87 2 0 -3.032721 -8.198157 -6.198635 +261 87 2 0 -3.084774 -9.539992 -5.434969 +262 88 1 0 -2.002554 -5.668583 5.440781 +263 88 2 0 -2.347493 -4.756386 5.542471 +264 88 2 0 -2.133027 -6.049986 4.540349 +265 89 1 0 6.174952 -8.574733 0.210584 +266 89 2 0 5.358389 -8.191902 0.557392 +267 89 2 0 6.760918 -8.561710 0.943985 +268 90 1 0 -6.278610 6.057339 4.042358 +269 90 2 0 -6.169211 6.708022 3.383078 +270 90 2 0 -7.221766 5.771239 4.032205 +271 91 1 0 0.124733 -5.816398 0.203961 +272 91 2 0 0.029974 -5.049468 0.786871 +273 91 2 0 -0.458026 -5.646677 -0.555312 +274 92 1 0 3.839311 -0.064469 8.619720 +275 92 2 0 3.586253 -0.282978 7.705313 +276 92 2 0 3.079936 0.282626 9.065559 +277 93 1 0 7.375986 -1.368885 4.452411 +278 93 2 0 8.024931 -0.682735 4.768078 +279 93 2 0 7.477247 -1.279372 3.493009 +280 94 1 0 9.209092 -1.611532 -6.423337 +281 94 2 0 9.487648 -2.470973 -6.800897 +282 94 2 0 9.998917 -1.354277 -5.866779 +283 95 1 0 -5.314625 -5.613762 7.941745 +284 95 2 0 -5.589748 -6.389969 8.478078 +285 95 2 0 -4.444519 -5.357513 8.149460 +286 96 1 0 -3.655884 2.941259 -3.295211 +287 96 2 0 -4.418712 2.528163 -3.712668 +288 96 2 0 -2.937568 3.025005 -3.971189 +289 97 1 0 -8.786626 -3.149090 -1.640379 +290 97 2 0 -8.441651 -4.011755 -1.901885 +291 97 2 0 -9.285717 -3.276173 -0.834535 +292 98 1 0 -7.358188 8.239942 -2.093781 +293 98 2 0 -7.811518 7.751233 -2.768278 +294 98 2 0 -6.892430 7.625331 -1.541437 +295 99 1 0 3.770974 -0.453172 -1.931225 +296 99 2 0 4.245757 -0.966218 -1.286114 +297 99 2 0 3.797803 0.441972 -1.542180 +298 100 1 0 2.205813 4.098894 8.958738 +299 100 2 0 3.001973 3.555440 8.746430 +300 100 2 0 2.103639 4.243668 9.940011 +301 101 1 0 -8.723398 -8.284874 -8.890692 +302 101 2 0 -9.298972 -7.537539 -9.239127 +303 101 2 0 -8.772683 -8.361037 -7.925940 +304 102 1 0 -8.908952 0.807167 -7.785764 +305 102 2 0 -9.061230 -0.061912 -7.422589 +306 102 2 0 -9.534219 1.030144 -8.475490 +307 103 1 0 9.182207 -3.418263 -8.430667 +308 103 2 0 9.046738 -2.558299 -8.879898 +309 103 2 0 8.390804 -3.958734 -8.701949 +310 104 1 0 1.003162 9.279867 -8.313986 +311 104 2 0 1.167271 10.190392 -8.070619 +312 104 2 0 1.849962 8.761188 -8.493178 +313 105 1 0 -1.842572 4.893383 8.198130 +314 105 2 0 -2.468210 5.316242 8.833179 +315 105 2 0 -1.155294 4.389410 8.716281 +316 106 1 0 -4.005055 -3.953707 0.402347 +317 106 2 0 -3.682148 -3.305443 1.058769 +318 106 2 0 -4.738199 -4.452434 0.841144 +319 107 1 0 3.511815 -7.590537 -9.004707 +320 107 2 0 3.415066 -7.281286 -8.094635 +321 107 2 0 3.251550 -6.835442 -9.579171 +322 108 1 0 -7.614136 -7.773463 1.262079 +323 108 2 0 -7.489497 -6.927033 0.753779 +324 108 2 0 -8.528840 -8.050689 1.164710 +325 109 1 0 -5.419143 7.061880 -5.745275 +326 109 2 0 -4.504905 6.840455 -5.750772 +327 109 2 0 -5.895918 6.221393 -5.676189 +328 110 1 0 -9.017162 1.888781 0.937813 +329 110 2 0 -9.868157 2.115056 0.623903 +330 110 2 0 -8.466599 1.708818 0.191067 +331 111 1 0 -8.037596 -5.106016 4.750802 +332 111 2 0 -7.322228 -5.707104 5.043673 +333 111 2 0 -8.230169 -4.481051 5.475067 +334 112 1 0 -4.390546 1.691502 -7.756245 +335 112 2 0 -3.558844 1.264966 -7.996466 +336 112 2 0 -4.136121 2.629917 -7.760619 +337 113 1 0 -3.975194 -6.218233 -6.927330 +338 113 2 0 -3.085645 -6.066352 -7.325296 +339 113 2 0 -4.640815 -6.676349 -7.524295 +340 114 1 0 8.240648 5.082183 -8.857912 +341 114 2 0 7.453645 5.101728 -8.259448 +342 114 2 0 8.368223 4.228825 -9.227974 +343 115 1 0 1.598931 -1.829796 -0.316752 +344 115 2 0 1.992252 -1.475465 -1.149815 +345 115 2 0 1.726926 -2.749881 -0.397199 +346 116 1 0 1.433819 -1.386702 -3.304673 +347 116 2 0 1.323094 -0.486757 -3.067110 +348 116 2 0 0.623143 -1.802016 -3.264828 +349 117 1 0 3.735991 5.554990 6.219603 +350 117 2 0 3.320916 6.265941 6.761937 +351 117 2 0 4.195666 6.053207 5.526652 +352 118 1 0 -6.285976 -9.228132 -4.460410 +353 118 2 0 -5.683885 -10.005163 -4.740870 +354 118 2 0 -6.707036 -9.488426 -3.608438 +355 119 1 0 4.036200 -3.378299 6.905724 +356 119 2 0 3.457441 -2.618106 6.794504 +357 119 2 0 4.929409 -2.991177 6.666963 +358 120 1 0 0.606517 8.561279 -3.782406 +359 120 2 0 0.498099 9.526035 -3.699299 +360 120 2 0 1.288545 8.500162 -4.475972 +361 121 1 0 -5.666717 8.368298 -8.299623 +362 121 2 0 -4.926661 7.904359 -8.744783 +363 121 2 0 -5.742748 8.095703 -7.389592 +364 122 1 0 -3.344692 7.636718 3.475830 +365 122 2 0 -4.140634 7.105012 3.296472 +366 122 2 0 -3.350797 7.470949 4.433350 +367 123 1 0 -1.322186 6.638182 0.028906 +368 123 2 0 -1.895088 6.054034 0.554933 +369 123 2 0 -1.928852 7.271511 -0.442137 +370 124 1 0 8.793551 6.925450 7.841717 +371 124 2 0 9.639675 7.325848 7.850680 +372 124 2 0 8.776882 6.398711 8.674036 +373 125 1 0 -6.322101 0.607808 1.174099 +374 125 2 0 -5.647986 1.150825 1.588348 +375 125 2 0 -5.852992 -0.060471 0.660730 +376 126 1 0 5.685139 -3.546046 -4.128549 +377 126 2 0 4.727966 -3.473549 -4.165755 +378 126 2 0 6.024761 -2.749532 -4.610993 +379 127 1 0 3.821999 6.538527 1.678030 +380 127 2 0 3.549684 7.331168 1.175762 +381 127 2 0 3.816423 6.788603 2.602522 +382 128 1 0 3.892622 -7.034239 -6.415978 +383 128 2 0 4.720509 -6.539827 -6.295004 +384 128 2 0 3.262810 -6.550918 -5.890370 +385 129 1 0 5.454437 3.881722 -2.767521 +386 129 2 0 5.906266 3.240489 -3.272250 +387 129 2 0 6.116652 4.657253 -2.669082 +388 130 1 0 -4.179373 -8.326009 4.395005 +389 130 2 0 -3.737878 -8.754475 5.134173 +390 130 2 0 -3.934584 -8.825320 3.534465 +391 131 1 0 7.949488 -1.353498 9.244688 +392 131 2 0 7.234465 -1.100736 9.869694 +393 131 2 0 8.010855 -0.754076 8.476271 +394 132 1 0 4.498603 -4.219267 3.963173 +395 132 2 0 4.895226 -3.311215 4.147093 +396 132 2 0 4.802371 -4.871698 4.671292 +397 133 1 0 -4.307250 7.384668 -2.879462 +398 133 2 0 -3.402854 7.237543 -3.252031 +399 133 2 0 -4.143231 7.834459 -2.019767 +400 134 1 0 2.868752 -0.418389 1.909340 +401 134 2 0 2.544472 -0.880398 1.179279 +402 134 2 0 2.082841 -0.227627 2.457964 +403 135 1 0 7.961389 1.611971 4.525253 +404 135 2 0 7.498497 1.833174 3.728113 +405 135 2 0 8.841880 2.050996 4.576281 +406 136 1 0 2.692467 -4.517946 -0.884665 +407 136 2 0 1.789435 -4.835617 -0.587396 +408 136 2 0 3.330887 -5.126025 -0.474679 +409 137 1 0 0.711797 1.680547 -4.780435 +410 137 2 0 0.854596 1.567911 -3.850059 +411 137 2 0 -0.187286 1.868256 -4.936632 +412 138 1 0 4.558200 -0.044434 -4.673875 +413 138 2 0 5.376141 -0.551202 -4.913295 +414 138 2 0 4.409600 -0.197728 -3.739555 +415 139 1 0 7.109730 0.453475 -0.268844 +416 139 2 0 6.996444 0.098599 -1.119484 +417 139 2 0 6.343115 1.050849 -0.110689 +418 140 1 0 -2.549577 -0.200852 -4.492507 +419 140 2 0 -3.199039 -0.856439 -4.888752 +420 140 2 0 -2.605120 -0.151501 -3.534000 +421 141 1 0 -8.527353 4.524174 -2.347408 +422 141 2 0 -7.662213 4.342466 -2.104852 +423 141 2 0 -8.794374 3.696793 -2.795740 +424 142 1 0 -2.820431 -0.700478 4.413266 +425 142 2 0 -2.088343 -0.069797 4.530521 +426 142 2 0 -3.535913 -0.413547 5.069151 +427 143 1 0 6.924598 -1.285634 -4.901833 +428 143 2 0 7.496477 -0.831510 -4.206076 +429 143 2 0 7.527035 -1.446676 -5.677236 +430 144 1 0 -5.353763 6.572088 6.734366 +431 144 2 0 -4.428432 6.663173 6.834862 +432 144 2 0 -5.603600 6.385787 5.822425 +433 145 1 0 7.661597 2.386104 9.175259 +434 145 2 0 7.321694 2.395921 10.055536 +435 145 2 0 6.959141 2.102200 8.533079 +436 146 1 0 -3.496590 -3.765912 -4.994838 +437 146 2 0 -3.612181 -3.620689 -4.036115 +438 146 2 0 -4.323649 -3.527816 -5.463213 +439 147 1 0 -9.351953 8.343146 3.704719 +440 147 2 0 -8.465363 8.758592 3.736785 +441 147 2 0 -9.159223 7.399420 3.880808 +442 148 1 0 -0.957571 -5.174275 -2.190170 +443 148 2 0 -1.907345 -5.209294 -2.303164 +444 148 2 0 -0.758582 -4.314608 -2.636469 +445 149 1 0 5.048831 -7.988284 2.587515 +446 149 2 0 5.870168 -8.296198 3.043816 +447 149 2 0 4.551970 -7.498875 3.229280 +448 150 1 0 3.705658 8.368298 -8.304931 +449 150 2 0 3.860607 9.297256 -8.425405 +450 150 2 0 3.866516 8.146007 -7.371475 +451 151 1 0 -2.535134 7.116414 6.338590 +452 151 2 0 -1.918884 7.705593 6.804078 +453 151 2 0 -1.975225 6.330832 6.121365 +454 152 1 0 -3.440263 7.005018 9.111704 +455 152 2 0 -2.633953 7.421761 9.465848 +456 152 2 0 -3.654896 7.513753 8.256470 +457 153 1 0 6.452501 -5.478051 -5.722874 +458 153 2 0 7.297698 -5.914122 -5.586895 +459 153 2 0 6.253267 -4.919338 -4.937095 +460 154 1 0 -6.528475 4.497861 -5.573636 +461 154 2 0 -6.257840 4.684056 -4.656222 +462 154 2 0 -7.247764 3.931701 -5.623068 +463 155 1 0 -7.310706 8.183648 7.852201 +464 155 2 0 -6.552879 7.735013 7.436342 +465 155 2 0 -6.877865 8.451022 8.686616 +466 156 1 0 -1.476441 -7.867001 7.421787 +467 156 2 0 -0.852398 -8.570669 7.084405 +468 156 2 0 -1.363740 -7.190554 6.737331 +469 157 1 0 5.228019 -0.495870 -7.592953 +470 157 2 0 4.737616 -0.538139 -6.742036 +471 157 2 0 4.625354 -0.901329 -8.269022 +472 158 1 0 7.566531 -1.006734 1.808213 +473 158 2 0 7.657411 -1.866188 1.428564 +474 158 2 0 7.358547 -0.388051 1.139943 +475 159 1 0 1.850924 -5.717449 -5.035416 +476 159 2 0 1.721040 -6.227449 -4.217213 +477 159 2 0 2.199319 -4.856378 -4.692892 +478 160 1 0 -8.904325 6.791585 -3.842866 +479 160 2 0 -8.690637 5.952112 -3.490118 +480 160 2 0 -8.676001 6.844077 -4.770651 +481 161 1 0 -3.434304 4.397198 -7.863568 +482 161 2 0 -2.634777 3.892027 -7.779256 +483 161 2 0 -3.432847 5.161485 -7.310788 +484 162 1 0 -7.446738 6.124823 0.150068 +485 162 2 0 -7.404893 5.207959 0.481504 +486 162 2 0 -8.405563 6.215466 -0.024439 +487 163 1 0 0.195330 -7.307128 -3.501714 +488 163 2 0 -0.240912 -6.769004 -4.243655 +489 163 2 0 -0.194915 -6.981989 -2.679860 +490 164 1 0 7.068819 9.130323 7.260588 +491 164 2 0 6.559855 8.400987 7.699406 +492 164 2 0 7.972497 8.829223 7.213747 +493 165 1 0 -0.185218 -3.192290 -6.289346 +494 165 2 0 0.776651 -3.073203 -6.391948 +495 165 2 0 -0.497426 -2.964088 -7.170893 +496 166 1 0 -2.073630 4.369672 5.251074 +497 166 2 0 -1.868638 3.811508 6.060261 +498 166 2 0 -1.253174 4.326708 4.781680 +499 167 1 0 -0.855003 3.069108 -7.935226 +500 167 2 0 0.075758 3.132202 -7.617253 +501 167 2 0 -1.009845 2.207487 -8.320426 +502 168 1 0 -6.328833 0.064083 -8.467228 +503 168 2 0 -7.268416 0.384648 -8.383978 +504 168 2 0 -5.825246 0.919304 -8.320175 +505 169 1 0 -8.276352 -8.809851 -6.344910 +506 169 2 0 -7.541457 -8.792368 -5.688031 +507 169 2 0 -8.510208 -9.731116 -6.353248 +508 170 1 0 0.463654 2.826776 7.018388 +509 170 2 0 0.875324 3.588447 7.482107 +510 170 2 0 0.770257 2.126646 7.583650 +511 171 1 0 0.478371 -3.407198 6.910039 +512 171 2 0 0.585298 -2.996750 7.756467 +513 171 2 0 0.556531 -4.390636 7.183527 +514 172 1 0 -1.689559 7.002511 -3.303561 +515 172 2 0 -1.009152 7.635432 -3.553133 +516 172 2 0 -1.333699 6.195680 -2.919485 +517 173 1 0 9.000097 -6.227871 8.137681 +518 173 2 0 9.373858 -6.821152 7.497417 +519 173 2 0 8.024020 -6.011019 8.033727 +520 174 1 0 1.272378 1.954065 3.058033 +521 174 2 0 1.260842 2.615112 2.341207 +522 174 2 0 1.890312 2.223439 3.732934 +523 175 1 0 4.139066 -3.527427 -9.022609 +524 175 2 0 4.070028 -3.499117 -9.985525 +525 175 2 0 4.960292 -3.942364 -8.778433 +526 176 1 0 7.176276 2.178662 -4.075940 +527 176 2 0 6.995275 1.684022 -4.873223 +528 176 2 0 7.621313 2.984315 -4.393994 +529 177 1 0 -0.034836 -3.929919 2.148095 +530 177 2 0 0.838003 -3.513346 2.259663 +531 177 2 0 -0.654999 -3.288581 2.426748 +532 178 1 0 -8.701616 2.795237 -5.700842 +533 178 2 0 -8.848959 2.145603 -6.420186 +534 178 2 0 -9.464654 3.362988 -5.610379 +535 179 1 0 2.804444 8.909551 -5.635389 +536 179 2 0 3.063615 9.805993 -5.770957 +537 179 2 0 3.512196 8.486179 -5.165468 +538 180 1 0 3.236002 8.357402 3.636639 +539 180 2 0 3.450854 9.071799 3.073263 +540 180 2 0 3.476445 8.586691 4.607935 +541 181 1 0 5.628532 7.185941 8.510937 +542 181 2 0 5.467837 6.318153 8.138885 +543 181 2 0 4.964153 7.477925 9.150467 +544 182 1 0 -3.767261 1.260390 2.017681 +545 182 2 0 -3.707734 2.019520 2.565591 +546 182 2 0 -3.364602 1.609935 1.212351 +547 183 1 0 8.228917 -3.441761 0.850139 +548 183 2 0 9.022130 -3.709208 1.334881 +549 183 2 0 7.553662 -3.976731 1.276651 +550 184 1 0 -3.004292 1.345869 7.236734 +551 184 2 0 -3.715311 0.724731 6.912689 +552 184 2 0 -3.525684 2.111901 7.538936 +553 185 1 0 4.901423 -5.547141 -0.119795 +554 185 2 0 5.327550 -5.560969 0.769770 +555 185 2 0 5.447642 -4.930752 -0.617088 +556 186 1 0 -3.306210 8.469477 -0.495057 +557 186 2 0 -2.836855 9.122642 -1.080706 +558 186 2 0 -3.311215 8.916887 0.353875 +559 187 1 0 -6.572180 3.018421 -0.262079 +560 187 2 0 -6.711444 2.659956 0.606460 +561 187 2 0 -6.040782 2.473886 -0.843542 +562 188 1 0 -5.429147 -5.967833 5.177682 +563 188 2 0 -4.896648 -6.608203 4.692534 +564 188 2 0 -5.386594 -6.130690 6.117931 +565 189 1 0 6.054430 7.035601 0.031519 +566 189 2 0 5.939348 7.951184 -0.141094 +567 189 2 0 5.390949 6.866654 0.702638 +568 190 1 0 -0.890229 -2.615376 -3.621726 +569 190 2 0 -1.695442 -2.097314 -3.537976 +570 190 2 0 -0.895128 -2.637531 -4.561712 +571 191 1 0 -5.446979 0.994907 -2.106714 +572 191 2 0 -4.494883 0.997912 -1.881595 +573 191 2 0 -5.759736 0.094199 -1.919247 +574 192 1 0 -7.517688 -4.078340 7.202707 +575 192 2 0 -8.242348 -4.324693 7.729813 +576 192 2 0 -6.924399 -4.817453 7.269430 +577 193 1 0 -1.134884 8.628488 2.081069 +578 193 2 0 -1.962897 8.634713 2.554947 +579 193 2 0 -1.119731 7.882422 1.516003 +580 194 1 0 -6.288317 8.011683 2.022129 +581 194 2 0 -6.404647 8.858198 1.546109 +582 194 2 0 -6.669138 7.315199 1.482614 +583 195 1 0 -6.766934 -4.026505 -8.306645 +584 195 2 0 -6.542552 -4.855702 -8.828363 +585 195 2 0 -7.743726 -3.954163 -8.170031 +586 196 1 0 6.895244 7.052113 -3.031289 +587 196 2 0 7.810039 7.265357 -3.330751 +588 196 2 0 6.666757 7.541675 -2.202178 +589 197 1 0 8.003260 4.735929 -5.168656 +590 197 2 0 7.233375 4.730204 -5.685772 +591 197 2 0 8.406708 5.629580 -5.300038 +592 198 1 0 -5.230160 -6.461196 -4.390836 +593 198 2 0 -5.701559 -7.313756 -4.377348 +594 198 2 0 -4.855545 -6.327970 -5.273444 +595 199 1 0 -3.803496 -9.221115 7.305476 +596 199 2 0 -2.934288 -8.877999 7.425047 +597 199 2 0 -4.416066 -8.566250 7.573191 +598 200 1 0 -5.990438 -1.574415 3.072521 +599 200 2 0 -5.805447 -1.119293 3.933731 +600 200 2 0 -6.651651 -0.947206 2.634773 +601 201 1 0 1.155451 7.138377 -1.178317 +602 201 2 0 0.330359 7.363227 -0.724568 +603 201 2 0 1.055145 7.478676 -2.100793 +604 202 1 0 -5.886817 5.150957 -2.997276 +605 202 2 0 -5.191777 4.556623 -2.611465 +606 202 2 0 -5.401622 6.003350 -3.064194 +607 203 1 0 2.539927 3.387568 4.976180 +608 203 2 0 1.760904 3.182324 5.589217 +609 203 2 0 2.841539 4.315465 5.278853 +610 204 1 0 8.331859 -7.344673 -5.188191 +611 204 2 0 8.424401 -7.586778 -4.198621 +612 204 2 0 8.911675 -7.764424 -5.823267 +613 205 1 0 -5.774081 1.315144 -5.304553 +614 205 2 0 -5.222992 1.580336 -6.077077 +615 205 2 0 -6.219878 2.178441 -5.093360 +616 206 1 0 6.340084 -4.926064 2.149626 +617 206 2 0 5.639784 -4.766017 2.829591 +618 206 2 0 6.883511 -5.598794 2.562820 +619 207 1 0 -2.722394 6.614441 -5.843805 +620 207 2 0 -2.332414 7.251953 -6.403722 +621 207 2 0 -2.221682 6.596615 -5.034993 +622 208 1 0 -1.813152 0.712824 -9.048176 +623 208 2 0 -1.763921 -0.271744 -8.916841 +624 208 2 0 -2.097796 0.860500 -9.970314 +625 209 1 0 6.146244 -6.879929 8.376712 +626 209 2 0 5.324465 -7.183905 8.841506 +627 209 2 0 6.642264 -7.749945 8.201756 +628 210 1 0 2.887544 8.612615 0.453821 +629 210 2 0 2.452117 8.047637 -0.251289 +630 210 2 0 2.348751 9.285636 0.895642 +631 211 1 0 -8.475558 -8.180718 6.501232 +632 211 2 0 -8.034310 -8.945692 6.891221 +633 211 2 0 -8.173606 -8.179435 5.569319 +634 212 1 0 6.714205 -2.947903 6.551671 +635 212 2 0 7.143284 -2.459194 7.270891 +636 212 2 0 7.212365 -2.637046 5.791018 +637 213 1 0 6.445003 -5.462306 5.577966 +638 213 2 0 6.730099 -4.696457 6.073312 +639 213 2 0 6.099428 -6.099736 6.222859 +640 214 1 0 -1.818761 -6.080111 -8.805420 +641 214 2 0 -1.644534 -6.777931 -9.477669 +642 214 2 0 -2.078582 -5.258591 -9.215838 +643 215 1 0 6.037377 2.950576 2.863541 +644 215 2 0 6.409766 3.757001 2.570754 +645 215 2 0 5.577033 2.617474 2.090587 +646 216 1 0 -7.731645 3.337668 3.301121 +647 216 2 0 -8.345957 4.027222 3.589257 +648 216 2 0 -8.130328 2.845238 2.577949 + +Bonds + +1 1 1 2 +2 1 1 3 +3 1 4 5 +4 1 4 6 +5 1 7 8 +6 1 7 9 +7 1 10 11 +8 1 10 12 +9 1 13 14 +10 1 13 15 +11 1 16 17 +12 1 16 18 +13 1 19 20 +14 1 19 21 +15 1 22 23 +16 1 22 24 +17 1 25 26 +18 1 25 27 +19 1 28 29 +20 1 28 30 +21 1 31 32 +22 1 31 33 +23 1 34 35 +24 1 34 36 +25 1 37 38 +26 1 37 39 +27 1 40 41 +28 1 40 42 +29 1 43 44 +30 1 43 45 +31 1 46 47 +32 1 46 48 +33 1 49 50 +34 1 49 51 +35 1 52 53 +36 1 52 54 +37 1 55 56 +38 1 55 57 +39 1 58 59 +40 1 58 60 +41 1 61 62 +42 1 61 63 +43 1 64 65 +44 1 64 66 +45 1 67 68 +46 1 67 69 +47 1 70 71 +48 1 70 72 +49 1 73 74 +50 1 73 75 +51 1 76 77 +52 1 76 78 +53 1 79 80 +54 1 79 81 +55 1 82 83 +56 1 82 84 +57 1 85 86 +58 1 85 87 +59 1 88 89 +60 1 88 90 +61 1 91 92 +62 1 91 93 +63 1 94 95 +64 1 94 96 +65 1 97 98 +66 1 97 99 +67 1 100 101 +68 1 100 102 +69 1 103 104 +70 1 103 105 +71 1 106 107 +72 1 106 108 +73 1 109 110 +74 1 109 111 +75 1 112 113 +76 1 112 114 +77 1 115 116 +78 1 115 117 +79 1 118 119 +80 1 118 120 +81 1 121 122 +82 1 121 123 +83 1 124 125 +84 1 124 126 +85 1 127 128 +86 1 127 129 +87 1 130 131 +88 1 130 132 +89 1 133 134 +90 1 133 135 +91 1 136 137 +92 1 136 138 +93 1 139 140 +94 1 139 141 +95 1 142 143 +96 1 142 144 +97 1 145 146 +98 1 145 147 +99 1 148 149 +100 1 148 150 +101 1 151 152 +102 1 151 153 +103 1 154 155 +104 1 154 156 +105 1 157 158 +106 1 157 159 +107 1 160 161 +108 1 160 162 +109 1 163 164 +110 1 163 165 +111 1 166 167 +112 1 166 168 +113 1 169 170 +114 1 169 171 +115 1 172 173 +116 1 172 174 +117 1 175 176 +118 1 175 177 +119 1 178 179 +120 1 178 180 +121 1 181 182 +122 1 181 183 +123 1 184 185 +124 1 184 186 +125 1 187 188 +126 1 187 189 +127 1 190 191 +128 1 190 192 +129 1 193 194 +130 1 193 195 +131 1 196 197 +132 1 196 198 +133 1 199 200 +134 1 199 201 +135 1 202 203 +136 1 202 204 +137 1 205 206 +138 1 205 207 +139 1 208 209 +140 1 208 210 +141 1 211 212 +142 1 211 213 +143 1 214 215 +144 1 214 216 +145 1 217 218 +146 1 217 219 +147 1 220 221 +148 1 220 222 +149 1 223 224 +150 1 223 225 +151 1 226 227 +152 1 226 228 +153 1 229 230 +154 1 229 231 +155 1 232 233 +156 1 232 234 +157 1 235 236 +158 1 235 237 +159 1 238 239 +160 1 238 240 +161 1 241 242 +162 1 241 243 +163 1 244 245 +164 1 244 246 +165 1 247 248 +166 1 247 249 +167 1 250 251 +168 1 250 252 +169 1 253 254 +170 1 253 255 +171 1 256 257 +172 1 256 258 +173 1 259 260 +174 1 259 261 +175 1 262 263 +176 1 262 264 +177 1 265 266 +178 1 265 267 +179 1 268 269 +180 1 268 270 +181 1 271 272 +182 1 271 273 +183 1 274 275 +184 1 274 276 +185 1 277 278 +186 1 277 279 +187 1 280 281 +188 1 280 282 +189 1 283 284 +190 1 283 285 +191 1 286 287 +192 1 286 288 +193 1 289 290 +194 1 289 291 +195 1 292 293 +196 1 292 294 +197 1 295 296 +198 1 295 297 +199 1 298 299 +200 1 298 300 +201 1 301 302 +202 1 301 303 +203 1 304 305 +204 1 304 306 +205 1 307 308 +206 1 307 309 +207 1 310 311 +208 1 310 312 +209 1 313 314 +210 1 313 315 +211 1 316 317 +212 1 316 318 +213 1 319 320 +214 1 319 321 +215 1 322 323 +216 1 322 324 +217 1 325 326 +218 1 325 327 +219 1 328 329 +220 1 328 330 +221 1 331 332 +222 1 331 333 +223 1 334 335 +224 1 334 336 +225 1 337 338 +226 1 337 339 +227 1 340 341 +228 1 340 342 +229 1 343 344 +230 1 343 345 +231 1 346 347 +232 1 346 348 +233 1 349 350 +234 1 349 351 +235 1 352 353 +236 1 352 354 +237 1 355 356 +238 1 355 357 +239 1 358 359 +240 1 358 360 +241 1 361 362 +242 1 361 363 +243 1 364 365 +244 1 364 366 +245 1 367 368 +246 1 367 369 +247 1 370 371 +248 1 370 372 +249 1 373 374 +250 1 373 375 +251 1 376 377 +252 1 376 378 +253 1 379 380 +254 1 379 381 +255 1 382 383 +256 1 382 384 +257 1 385 386 +258 1 385 387 +259 1 388 389 +260 1 388 390 +261 1 391 392 +262 1 391 393 +263 1 394 395 +264 1 394 396 +265 1 397 398 +266 1 397 399 +267 1 400 401 +268 1 400 402 +269 1 403 404 +270 1 403 405 +271 1 406 407 +272 1 406 408 +273 1 409 410 +274 1 409 411 +275 1 412 413 +276 1 412 414 +277 1 415 416 +278 1 415 417 +279 1 418 419 +280 1 418 420 +281 1 421 422 +282 1 421 423 +283 1 424 425 +284 1 424 426 +285 1 427 428 +286 1 427 429 +287 1 430 431 +288 1 430 432 +289 1 433 434 +290 1 433 435 +291 1 436 437 +292 1 436 438 +293 1 439 440 +294 1 439 441 +295 1 442 443 +296 1 442 444 +297 1 445 446 +298 1 445 447 +299 1 448 449 +300 1 448 450 +301 1 451 452 +302 1 451 453 +303 1 454 455 +304 1 454 456 +305 1 457 458 +306 1 457 459 +307 1 460 461 +308 1 460 462 +309 1 463 464 +310 1 463 465 +311 1 466 467 +312 1 466 468 +313 1 469 470 +314 1 469 471 +315 1 472 473 +316 1 472 474 +317 1 475 476 +318 1 475 477 +319 1 478 479 +320 1 478 480 +321 1 481 482 +322 1 481 483 +323 1 484 485 +324 1 484 486 +325 1 487 488 +326 1 487 489 +327 1 490 491 +328 1 490 492 +329 1 493 494 +330 1 493 495 +331 1 496 497 +332 1 496 498 +333 1 499 500 +334 1 499 501 +335 1 502 503 +336 1 502 504 +337 1 505 506 +338 1 505 507 +339 1 508 509 +340 1 508 510 +341 1 511 512 +342 1 511 513 +343 1 514 515 +344 1 514 516 +345 1 517 518 +346 1 517 519 +347 1 520 521 +348 1 520 522 +349 1 523 524 +350 1 523 525 +351 1 526 527 +352 1 526 528 +353 1 529 530 +354 1 529 531 +355 1 532 533 +356 1 532 534 +357 1 535 536 +358 1 535 537 +359 1 538 539 +360 1 538 540 +361 1 541 542 +362 1 541 543 +363 1 544 545 +364 1 544 546 +365 1 547 548 +366 1 547 549 +367 1 550 551 +368 1 550 552 +369 1 553 554 +370 1 553 555 +371 1 556 557 +372 1 556 558 +373 1 559 560 +374 1 559 561 +375 1 562 563 +376 1 562 564 +377 1 565 566 +378 1 565 567 +379 1 568 569 +380 1 568 570 +381 1 571 572 +382 1 571 573 +383 1 574 575 +384 1 574 576 +385 1 577 578 +386 1 577 579 +387 1 580 581 +388 1 580 582 +389 1 583 584 +390 1 583 585 +391 1 586 587 +392 1 586 588 +393 1 589 590 +394 1 589 591 +395 1 592 593 +396 1 592 594 +397 1 595 596 +398 1 595 597 +399 1 598 599 +400 1 598 600 +401 1 601 602 +402 1 601 603 +403 1 604 605 +404 1 604 606 +405 1 607 608 +406 1 607 609 +407 1 610 611 +408 1 610 612 +409 1 613 614 +410 1 613 615 +411 1 616 617 +412 1 616 618 +413 1 619 620 +414 1 619 621 +415 1 622 623 +416 1 622 624 +417 1 625 626 +418 1 625 627 +419 1 628 629 +420 1 628 630 +421 1 631 632 +422 1 631 633 +423 1 634 635 +424 1 634 636 +425 1 637 638 +426 1 637 639 +427 1 640 641 +428 1 640 642 +429 1 643 644 +430 1 643 645 +431 1 646 647 +432 1 646 648 + +Angles + +1 1 2 1 3 +2 1 5 4 6 +3 1 8 7 9 +4 1 11 10 12 +5 1 14 13 15 +6 1 17 16 18 +7 1 20 19 21 +8 1 23 22 24 +9 1 26 25 27 +10 1 29 28 30 +11 1 32 31 33 +12 1 35 34 36 +13 1 38 37 39 +14 1 41 40 42 +15 1 44 43 45 +16 1 47 46 48 +17 1 50 49 51 +18 1 53 52 54 +19 1 56 55 57 +20 1 59 58 60 +21 1 62 61 63 +22 1 65 64 66 +23 1 68 67 69 +24 1 71 70 72 +25 1 74 73 75 +26 1 77 76 78 +27 1 80 79 81 +28 1 83 82 84 +29 1 86 85 87 +30 1 89 88 90 +31 1 92 91 93 +32 1 95 94 96 +33 1 98 97 99 +34 1 101 100 102 +35 1 104 103 105 +36 1 107 106 108 +37 1 110 109 111 +38 1 113 112 114 +39 1 116 115 117 +40 1 119 118 120 +41 1 122 121 123 +42 1 125 124 126 +43 1 128 127 129 +44 1 131 130 132 +45 1 134 133 135 +46 1 137 136 138 +47 1 140 139 141 +48 1 143 142 144 +49 1 146 145 147 +50 1 149 148 150 +51 1 152 151 153 +52 1 155 154 156 +53 1 158 157 159 +54 1 161 160 162 +55 1 164 163 165 +56 1 167 166 168 +57 1 170 169 171 +58 1 173 172 174 +59 1 176 175 177 +60 1 179 178 180 +61 1 182 181 183 +62 1 185 184 186 +63 1 188 187 189 +64 1 191 190 192 +65 1 194 193 195 +66 1 197 196 198 +67 1 200 199 201 +68 1 203 202 204 +69 1 206 205 207 +70 1 209 208 210 +71 1 212 211 213 +72 1 215 214 216 +73 1 218 217 219 +74 1 221 220 222 +75 1 224 223 225 +76 1 227 226 228 +77 1 230 229 231 +78 1 233 232 234 +79 1 236 235 237 +80 1 239 238 240 +81 1 242 241 243 +82 1 245 244 246 +83 1 248 247 249 +84 1 251 250 252 +85 1 254 253 255 +86 1 257 256 258 +87 1 260 259 261 +88 1 263 262 264 +89 1 266 265 267 +90 1 269 268 270 +91 1 272 271 273 +92 1 275 274 276 +93 1 278 277 279 +94 1 281 280 282 +95 1 284 283 285 +96 1 287 286 288 +97 1 290 289 291 +98 1 293 292 294 +99 1 296 295 297 +100 1 299 298 300 +101 1 302 301 303 +102 1 305 304 306 +103 1 308 307 309 +104 1 311 310 312 +105 1 314 313 315 +106 1 317 316 318 +107 1 320 319 321 +108 1 323 322 324 +109 1 326 325 327 +110 1 329 328 330 +111 1 332 331 333 +112 1 335 334 336 +113 1 338 337 339 +114 1 341 340 342 +115 1 344 343 345 +116 1 347 346 348 +117 1 350 349 351 +118 1 353 352 354 +119 1 356 355 357 +120 1 359 358 360 +121 1 362 361 363 +122 1 365 364 366 +123 1 368 367 369 +124 1 371 370 372 +125 1 374 373 375 +126 1 377 376 378 +127 1 380 379 381 +128 1 383 382 384 +129 1 386 385 387 +130 1 389 388 390 +131 1 392 391 393 +132 1 395 394 396 +133 1 398 397 399 +134 1 401 400 402 +135 1 404 403 405 +136 1 407 406 408 +137 1 410 409 411 +138 1 413 412 414 +139 1 416 415 417 +140 1 419 418 420 +141 1 422 421 423 +142 1 425 424 426 +143 1 428 427 429 +144 1 431 430 432 +145 1 434 433 435 +146 1 437 436 438 +147 1 440 439 441 +148 1 443 442 444 +149 1 446 445 447 +150 1 449 448 450 +151 1 452 451 453 +152 1 455 454 456 +153 1 458 457 459 +154 1 461 460 462 +155 1 464 463 465 +156 1 467 466 468 +157 1 470 469 471 +158 1 473 472 474 +159 1 476 475 477 +160 1 479 478 480 +161 1 482 481 483 +162 1 485 484 486 +163 1 488 487 489 +164 1 491 490 492 +165 1 494 493 495 +166 1 497 496 498 +167 1 500 499 501 +168 1 503 502 504 +169 1 506 505 507 +170 1 509 508 510 +171 1 512 511 513 +172 1 515 514 516 +173 1 518 517 519 +174 1 521 520 522 +175 1 524 523 525 +176 1 527 526 528 +177 1 530 529 531 +178 1 533 532 534 +179 1 536 535 537 +180 1 539 538 540 +181 1 542 541 543 +182 1 545 544 546 +183 1 548 547 549 +184 1 551 550 552 +185 1 554 553 555 +186 1 557 556 558 +187 1 560 559 561 +188 1 563 562 564 +189 1 566 565 567 +190 1 569 568 570 +191 1 572 571 573 +192 1 575 574 576 +193 1 578 577 579 +194 1 581 580 582 +195 1 584 583 585 +196 1 587 586 588 +197 1 590 589 591 +198 1 593 592 594 +199 1 596 595 597 +200 1 599 598 600 +201 1 602 601 603 +202 1 605 604 606 +203 1 608 607 609 +204 1 611 610 612 +205 1 614 613 615 +206 1 617 616 618 +207 1 620 619 621 +208 1 623 622 624 +209 1 626 625 627 +210 1 629 628 630 +211 1 632 631 633 +212 1 635 634 636 +213 1 638 637 639 +214 1 641 640 642 +215 1 644 643 645 +216 1 647 646 648 + +Bond Coeffs + +1 0.9572 556.85 -1419.9675 2112.20165625 + +Angle Coeffs + +1 0 0 107.7 48.7 -39.064262472 8.95286947775 -6.41202044508 11.5462823034 + +BondAngle Coeffs + +1 0.0 0.0 0.0 0.0 + +UreyBradley Coeffs + +1 0.0 0.0 + +Tinker Types + +1 1 +2 2 +3 2 +4 1 +5 2 +6 2 +7 1 +8 2 +9 2 +10 1 +11 2 +12 2 +13 1 +14 2 +15 2 +16 1 +17 2 +18 2 +19 1 +20 2 +21 2 +22 1 +23 2 +24 2 +25 1 +26 2 +27 2 +28 1 +29 2 +30 2 +31 1 +32 2 +33 2 +34 1 +35 2 +36 2 +37 1 +38 2 +39 2 +40 1 +41 2 +42 2 +43 1 +44 2 +45 2 +46 1 +47 2 +48 2 +49 1 +50 2 +51 2 +52 1 +53 2 +54 2 +55 1 +56 2 +57 2 +58 1 +59 2 +60 2 +61 1 +62 2 +63 2 +64 1 +65 2 +66 2 +67 1 +68 2 +69 2 +70 1 +71 2 +72 2 +73 1 +74 2 +75 2 +76 1 +77 2 +78 2 +79 1 +80 2 +81 2 +82 1 +83 2 +84 2 +85 1 +86 2 +87 2 +88 1 +89 2 +90 2 +91 1 +92 2 +93 2 +94 1 +95 2 +96 2 +97 1 +98 2 +99 2 +100 1 +101 2 +102 2 +103 1 +104 2 +105 2 +106 1 +107 2 +108 2 +109 1 +110 2 +111 2 +112 1 +113 2 +114 2 +115 1 +116 2 +117 2 +118 1 +119 2 +120 2 +121 1 +122 2 +123 2 +124 1 +125 2 +126 2 +127 1 +128 2 +129 2 +130 1 +131 2 +132 2 +133 1 +134 2 +135 2 +136 1 +137 2 +138 2 +139 1 +140 2 +141 2 +142 1 +143 2 +144 2 +145 1 +146 2 +147 2 +148 1 +149 2 +150 2 +151 1 +152 2 +153 2 +154 1 +155 2 +156 2 +157 1 +158 2 +159 2 +160 1 +161 2 +162 2 +163 1 +164 2 +165 2 +166 1 +167 2 +168 2 +169 1 +170 2 +171 2 +172 1 +173 2 +174 2 +175 1 +176 2 +177 2 +178 1 +179 2 +180 2 +181 1 +182 2 +183 2 +184 1 +185 2 +186 2 +187 1 +188 2 +189 2 +190 1 +191 2 +192 2 +193 1 +194 2 +195 2 +196 1 +197 2 +198 2 +199 1 +200 2 +201 2 +202 1 +203 2 +204 2 +205 1 +206 2 +207 2 +208 1 +209 2 +210 2 +211 1 +212 2 +213 2 +214 1 +215 2 +216 2 +217 1 +218 2 +219 2 +220 1 +221 2 +222 2 +223 1 +224 2 +225 2 +226 1 +227 2 +228 2 +229 1 +230 2 +231 2 +232 1 +233 2 +234 2 +235 1 +236 2 +237 2 +238 1 +239 2 +240 2 +241 1 +242 2 +243 2 +244 1 +245 2 +246 2 +247 1 +248 2 +249 2 +250 1 +251 2 +252 2 +253 1 +254 2 +255 2 +256 1 +257 2 +258 2 +259 1 +260 2 +261 2 +262 1 +263 2 +264 2 +265 1 +266 2 +267 2 +268 1 +269 2 +270 2 +271 1 +272 2 +273 2 +274 1 +275 2 +276 2 +277 1 +278 2 +279 2 +280 1 +281 2 +282 2 +283 1 +284 2 +285 2 +286 1 +287 2 +288 2 +289 1 +290 2 +291 2 +292 1 +293 2 +294 2 +295 1 +296 2 +297 2 +298 1 +299 2 +300 2 +301 1 +302 2 +303 2 +304 1 +305 2 +306 2 +307 1 +308 2 +309 2 +310 1 +311 2 +312 2 +313 1 +314 2 +315 2 +316 1 +317 2 +318 2 +319 1 +320 2 +321 2 +322 1 +323 2 +324 2 +325 1 +326 2 +327 2 +328 1 +329 2 +330 2 +331 1 +332 2 +333 2 +334 1 +335 2 +336 2 +337 1 +338 2 +339 2 +340 1 +341 2 +342 2 +343 1 +344 2 +345 2 +346 1 +347 2 +348 2 +349 1 +350 2 +351 2 +352 1 +353 2 +354 2 +355 1 +356 2 +357 2 +358 1 +359 2 +360 2 +361 1 +362 2 +363 2 +364 1 +365 2 +366 2 +367 1 +368 2 +369 2 +370 1 +371 2 +372 2 +373 1 +374 2 +375 2 +376 1 +377 2 +378 2 +379 1 +380 2 +381 2 +382 1 +383 2 +384 2 +385 1 +386 2 +387 2 +388 1 +389 2 +390 2 +391 1 +392 2 +393 2 +394 1 +395 2 +396 2 +397 1 +398 2 +399 2 +400 1 +401 2 +402 2 +403 1 +404 2 +405 2 +406 1 +407 2 +408 2 +409 1 +410 2 +411 2 +412 1 +413 2 +414 2 +415 1 +416 2 +417 2 +418 1 +419 2 +420 2 +421 1 +422 2 +423 2 +424 1 +425 2 +426 2 +427 1 +428 2 +429 2 +430 1 +431 2 +432 2 +433 1 +434 2 +435 2 +436 1 +437 2 +438 2 +439 1 +440 2 +441 2 +442 1 +443 2 +444 2 +445 1 +446 2 +447 2 +448 1 +449 2 +450 2 +451 1 +452 2 +453 2 +454 1 +455 2 +456 2 +457 1 +458 2 +459 2 +460 1 +461 2 +462 2 +463 1 +464 2 +465 2 +466 1 +467 2 +468 2 +469 1 +470 2 +471 2 +472 1 +473 2 +474 2 +475 1 +476 2 +477 2 +478 1 +479 2 +480 2 +481 1 +482 2 +483 2 +484 1 +485 2 +486 2 +487 1 +488 2 +489 2 +490 1 +491 2 +492 2 +493 1 +494 2 +495 2 +496 1 +497 2 +498 2 +499 1 +500 2 +501 2 +502 1 +503 2 +504 2 +505 1 +506 2 +507 2 +508 1 +509 2 +510 2 +511 1 +512 2 +513 2 +514 1 +515 2 +516 2 +517 1 +518 2 +519 2 +520 1 +521 2 +522 2 +523 1 +524 2 +525 2 +526 1 +527 2 +528 2 +529 1 +530 2 +531 2 +532 1 +533 2 +534 2 +535 1 +536 2 +537 2 +538 1 +539 2 +540 2 +541 1 +542 2 +543 2 +544 1 +545 2 +546 2 +547 1 +548 2 +549 2 +550 1 +551 2 +552 2 +553 1 +554 2 +555 2 +556 1 +557 2 +558 2 +559 1 +560 2 +561 2 +562 1 +563 2 +564 2 +565 1 +566 2 +567 2 +568 1 +569 2 +570 2 +571 1 +572 2 +573 2 +574 1 +575 2 +576 2 +577 1 +578 2 +579 2 +580 1 +581 2 +582 2 +583 1 +584 2 +585 2 +586 1 +587 2 +588 2 +589 1 +590 2 +591 2 +592 1 +593 2 +594 2 +595 1 +596 2 +597 2 +598 1 +599 2 +600 2 +601 1 +602 2 +603 2 +604 1 +605 2 +606 2 +607 1 +608 2 +609 2 +610 1 +611 2 +612 2 +613 1 +614 2 +615 2 +616 1 +617 2 +618 2 +619 1 +620 2 +621 2 +622 1 +623 2 +624 2 +625 1 +626 2 +627 2 +628 1 +629 2 +630 2 +631 1 +632 2 +633 2 +634 1 +635 2 +636 2 +637 1 +638 2 +639 2 +640 1 +641 2 +642 2 +643 1 +644 2 +645 2 +646 1 +647 2 +648 2 diff --git a/examples/amoeba/data.water_dimer.amoeba b/examples/amoeba/data.water_dimer.amoeba new file mode 100644 index 0000000000..09c8aea3b3 --- /dev/null +++ b/examples/amoeba/data.water_dimer.amoeba @@ -0,0 +1,62 @@ +LAMMPS data file created from Tinker water_dimer.xyz and amoeba_water.prm files + +6 atoms +4 bonds +2 angles +2 atom types +1 bond types +1 angle types +-1.463996 0.933234 xlo xhi +-0.756549 0.75612 ylo yhi +-0.009705 2.935934 zlo zhi + +Masses + +1 15.995 +2 1.008 + +Atoms + +1 1 1 0 -0.024616 -0.001154 -0.003748 +2 1 2 0 -0.244211 -0.000666 0.933978 +3 1 2 0 0.932234 -0.000406 -0.008705 +4 2 1 0 -0.892721 0.000120 2.773674 +5 2 2 0 -1.462996 0.755120 2.933870 +6 2 2 0 -1.461809 -0.755549 2.934934 + +Bonds + +1 1 1 2 +2 1 1 3 +3 1 4 5 +4 1 4 6 + +Angles + +1 1 2 1 3 +2 1 5 4 6 + +Bond Coeffs + +1 0.9572 556.85 -1419.9675 2112.20165625 + +Angle Coeffs + +1 0 1 108.5 48.7 -39.064262472 8.95286947775 -6.41202044508 11.5462823034 + +BondAngle Coeffs + +1 0.0 0.0 0.0 0.0 + +UreyBradley Coeffs + +1 -7.6 1.5537 + +Tinker Types + +1 1 +2 2 +3 2 +4 1 +5 2 +6 2 diff --git a/examples/amoeba/data.water_dimer.hippo b/examples/amoeba/data.water_dimer.hippo new file mode 100644 index 0000000000..0264e7d8b0 --- /dev/null +++ b/examples/amoeba/data.water_dimer.hippo @@ -0,0 +1,62 @@ +LAMMPS data file created from Tinker water_dimer.xyz and hippo_water.prm files + +6 atoms +4 bonds +2 angles +2 atom types +1 bond types +1 angle types +-1.463996 0.933234 xlo xhi +-0.756549 0.75612 ylo yhi +-0.009705 2.935934 zlo zhi + +Masses + +1 15.999 +2 1.008 + +Atoms + +1 1 1 0 -0.024616 -0.001154 -0.003748 +2 1 2 0 -0.244211 -0.000666 0.933978 +3 1 2 0 0.932234 -0.000406 -0.008705 +4 2 1 0 -0.892721 0.000120 2.773674 +5 2 2 0 -1.462996 0.755120 2.933870 +6 2 2 0 -1.461809 -0.755549 2.934934 + +Bonds + +1 1 1 2 +2 1 1 3 +3 1 4 5 +4 1 4 6 + +Angles + +1 1 2 1 3 +2 1 5 4 6 + +Bond Coeffs + +1 0.9572 556.85 -1419.9675 2112.20165625 + +Angle Coeffs + +1 0 0 107.7 48.7 -39.064262472 8.95286947775 -6.41202044508 11.5462823034 + +BondAngle Coeffs + +1 0.0 0.0 0.0 0.0 + +UreyBradley Coeffs + +1 0.0 0.0 + +Tinker Types + +1 1 +2 2 +3 2 +4 1 +5 2 +6 2 diff --git a/examples/amoeba/data.water_hexamer.amoeba b/examples/amoeba/data.water_hexamer.amoeba new file mode 100644 index 0000000000..af84237336 --- /dev/null +++ b/examples/amoeba/data.water_hexamer.amoeba @@ -0,0 +1,98 @@ +LAMMPS data file created from Tinker water_hexamer.xyz and amoeba_water.prm files + +18 atoms +12 bonds +6 angles +2 atom types +1 bond types +1 angle types +-2.517835 2.675716 xlo xhi +-1.523041 2.01883 ylo yhi +-1.734766 2.220847 zlo zhi + +Masses + +1 15.995 +2 1.008 + +Atoms + +1 1 1 0 -1.502169 -0.191359 1.434927 +2 1 2 0 -0.601054 -0.596972 1.553718 +3 1 2 0 -2.006698 -0.422327 2.219847 +4 2 1 0 -1.744575 -0.382348 -1.309144 +5 2 2 0 -1.888941 -0.479653 -0.347624 +6 2 2 0 -2.516835 -0.766765 -1.733766 +7 3 1 0 -0.560409 2.017830 -0.121984 +8 3 2 0 -0.947720 1.533567 0.625228 +9 3 2 0 -0.989831 1.592736 -0.877419 +10 4 1 0 0.964803 -1.165765 1.439987 +11 4 2 0 0.979557 -1.522041 0.527833 +12 4 2 0 1.542224 -0.393692 1.344373 +13 5 1 0 0.974705 -1.401503 -1.335970 +14 5 2 0 0.065161 -1.118951 -1.522886 +15 5 2 0 1.470709 -0.570933 -1.277710 +16 6 1 0 2.002280 1.057824 -0.124502 +17 6 2 0 1.141637 1.532266 -0.140121 +18 6 2 0 2.674716 1.735342 -0.237995 + +Bonds + +1 1 1 2 +2 1 1 3 +3 1 4 5 +4 1 4 6 +5 1 7 8 +6 1 7 9 +7 1 10 11 +8 1 10 12 +9 1 13 14 +10 1 13 15 +11 1 16 17 +12 1 16 18 + +Angles + +1 1 2 1 3 +2 1 5 4 6 +3 1 8 7 9 +4 1 11 10 12 +5 1 14 13 15 +6 1 17 16 18 + +Bond Coeffs + +1 0.9572 556.85 -1419.9675 2112.20165625 + +Angle Coeffs + +1 0 1 108.5 48.7 -39.064262472 8.95286947775 -6.41202044508 11.5462823034 + +BondAngle Coeffs + +1 0.0 0.0 0.0 0.0 + +UreyBradley Coeffs + +1 -7.6 1.5537 + +Tinker Types + +1 1 +2 2 +3 2 +4 1 +5 2 +6 2 +7 1 +8 2 +9 2 +10 1 +11 2 +12 2 +13 1 +14 2 +15 2 +16 1 +17 2 +18 2 diff --git a/examples/amoeba/data.water_hexamer.hippo b/examples/amoeba/data.water_hexamer.hippo new file mode 100644 index 0000000000..e44f2ca5f9 --- /dev/null +++ b/examples/amoeba/data.water_hexamer.hippo @@ -0,0 +1,98 @@ +LAMMPS data file created from Tinker water_hexamer.xyz and hippo_water.prm files + +18 atoms +12 bonds +6 angles +2 atom types +1 bond types +1 angle types +-2.517835 2.675716 xlo xhi +-1.523041 2.01883 ylo yhi +-1.734766 2.220847 zlo zhi + +Masses + +1 15.999 +2 1.008 + +Atoms + +1 1 1 0 -1.502169 -0.191359 1.434927 +2 1 2 0 -0.601054 -0.596972 1.553718 +3 1 2 0 -2.006698 -0.422327 2.219847 +4 2 1 0 -1.744575 -0.382348 -1.309144 +5 2 2 0 -1.888941 -0.479653 -0.347624 +6 2 2 0 -2.516835 -0.766765 -1.733766 +7 3 1 0 -0.560409 2.017830 -0.121984 +8 3 2 0 -0.947720 1.533567 0.625228 +9 3 2 0 -0.989831 1.592736 -0.877419 +10 4 1 0 0.964803 -1.165765 1.439987 +11 4 2 0 0.979557 -1.522041 0.527833 +12 4 2 0 1.542224 -0.393692 1.344373 +13 5 1 0 0.974705 -1.401503 -1.335970 +14 5 2 0 0.065161 -1.118951 -1.522886 +15 5 2 0 1.470709 -0.570933 -1.277710 +16 6 1 0 2.002280 1.057824 -0.124502 +17 6 2 0 1.141637 1.532266 -0.140121 +18 6 2 0 2.674716 1.735342 -0.237995 + +Bonds + +1 1 1 2 +2 1 1 3 +3 1 4 5 +4 1 4 6 +5 1 7 8 +6 1 7 9 +7 1 10 11 +8 1 10 12 +9 1 13 14 +10 1 13 15 +11 1 16 17 +12 1 16 18 + +Angles + +1 1 2 1 3 +2 1 5 4 6 +3 1 8 7 9 +4 1 11 10 12 +5 1 14 13 15 +6 1 17 16 18 + +Bond Coeffs + +1 0.9572 556.85 -1419.9675 2112.20165625 + +Angle Coeffs + +1 0 0 107.7 48.7 -39.064262472 8.95286947775 -6.41202044508 11.5462823034 + +BondAngle Coeffs + +1 0.0 0.0 0.0 0.0 + +UreyBradley Coeffs + +1 0.0 0.0 + +Tinker Types + +1 1 +2 2 +3 2 +4 1 +5 2 +6 2 +7 1 +8 2 +9 2 +10 1 +11 2 +12 2 +13 1 +14 2 +15 2 +16 1 +17 2 +18 2 diff --git a/examples/amoeba/hippo_water.key b/examples/amoeba/hippo_water.key new file mode 100644 index 0000000000..1b509c2276 --- /dev/null +++ b/examples/amoeba/hippo_water.key @@ -0,0 +1,10 @@ +!! DATE: 2022-07-05 UNITS: real +parameters ./hippo.prm + +digits 8 + +cutoff 10 +taper 8 + +polar-eps 1e-5 +usolve-diag 1.0 diff --git a/examples/amoeba/hippo_water.prm b/examples/amoeba/hippo_water.prm new file mode 100644 index 0000000000..8cd658b4f3 --- /dev/null +++ b/examples/amoeba/hippo_water.prm @@ -0,0 +1,320 @@ +!! DATE: 2022-07-05 UNITS: real + + ############################## + ## ## + ## Force Field Definition ## + ## ## + ############################## + + +forcefield HIPPO-WATER-2019 + +bond-cubic -2.55 +bond-quartic 3.793125 +angle-cubic -0.014 +angle-quartic 0.000056 +angle-pentic -0.0000007 +angle-sextic 0.000000022 +opbendtype ALLINGER +opbend-cubic -0.014 +opbend-quartic 0.000056 +opbend-pentic -0.0000007 +opbend-sextic 0.000000022 +torsionunit 0.5 +dielectric 1.0 +polarization MUTUAL +rep-12-scale 0.0 +rep-13-scale 0.0 +rep-14-scale 1.0 +rep-15-scale 1.0 +disp-12-scale 0.0 +disp-13-scale 0.0 +disp-14-scale 0.4 +#disp-15-scale 0.8 +mpole-12-scale 0.0 +mpole-13-scale 0.0 +mpole-14-scale 0.4 +#mpole-15-scale 0.8 +polar-12-scale 0.0 +polar-13-scale 0.0 +polar-14-scale 1.0 +polar-15-scale 1.0 +polar-12-intra 0.0 +polar-13-intra 0.0 +polar-14-intra 0.5 +polar-15-intra 1.0 +direct-11-scale 0.0 +direct-12-scale 1.0 +direct-13-scale 1.0 +direct-14-scale 1.0 +mutual-11-scale 1.0 +mutual-12-scale 1.0 +mutual-13-scale 1.0 +mutual-14-scale 1.0 +induce-12-scale 0.2 +induce-13-scale 1.0 +induce-14-scale 1.0 +induce-15-scale 1.0 + + + ############################# + ## ## + ## Literature References ## + ## ## + ############################# + + +This is a preliminary parameter set for water based on the HIPPO +(Hydrogen-like Intermolecular Polarizable Potential) force field. +It uses terms describing charge penetration, damped dispersion, and +anisotropic repulsion as per the papers below. The parameters are as +of 13 May 2019 and are from Roseane dos Reis Silva and Josh Rackers +in the Ponder lab at Washington University. These parameter values +are under development and are subject to change. + +J. A. Rackers, Q. Wang, C. Liu, J.-P. Piquemal, P. Ren and J. W. Ponder, +An Optimized Charge Penetration Model for Use with the AMOEBA Force Field, +Physical Chemistry Chemical Physics, 19, 276-291 (2017) + +J. A. Rackers, C. Liu, P. Ren and J. W. Ponder, A Physically Grounded +Damped Dispersion Model with Particle Mesh Ewald Summation, Journal +of Chemical Physics, 149, 084115 (2018) + +J. A. Rackers and J. W. Ponder, Classical Pauli Repulsion: An Anisotropic, +Atomic Multipole Model, Journal of Chemical Physics, 150, 084104 (2019) + + + ############################# + ## ## + ## Atom Type Definitions ## + ## ## + ############################# + + +atom 1 1 O "HIPPO Water O" 8 15.999 2 +atom 2 2 H "HIPPO Water H" 1 1.008 1 + + + ################################## + ## ## + ## Bond Stretching Parameters ## + ## ## + ################################## + + +bond 1 2 556.85 0.9572 !! all + + + ################################ + ## ## + ## Angle Bending Parameters ## + ## ## + ################################ + + +#angle 2 1 2 48.70 108.50 !! orig +#angle 2 1 2 48.70 107.70 !! 13 +#angle 2 1 2 48.70 107.70 !! 12 +#angle 2 1 2 48.70 107.70 !! 16t-i2 +#angle 2 1 2 48.70 107.70 !! 16t-i6 +#angle 2 1 2 48.70 107.70 !! 17t-i3 +angle 2 1 2 48.70 107.70 !! 17t-i6 + + + ################################## + ## ## + ## Pauli Repulsion Parameters ## + ## ## + ################################## + + +#repulsion 1 2.8478 4.6069 3.3353 !! orig +#repulsion 2 2.0560 4.8356 0.7423 !! orig +#repulsion 1 2.7716 4.4097 3.3789 !! 13 +#repulsion 2 2.0410 4.8567 0.6592 !! 13 +#repulsion 1 2.7875 4.4310 3.3914 !! 12 +#repulsion 2 2.0510 4.8314 0.6557 !! 12 +#repulsion 1 2.8604 4.5590 3.3554 !! t16-i2 +#repulsion 2 2.0508 4.8497 0.7264 !! t16-i2 +#repulsion 1 2.8618 4.4770 3.3790 !! t16-i6 +#repulsion 2 2.0658 4.9052 0.6831 !! t16-i6 +#repulsion 1 2.8644 4.4964 3.3594 !! t17-i3 +#repulsion 2 2.0605 4.8965 0.6958 !! t17-i3 +repulsion 1 2.8758 4.4394 3.3883 !! t17-i6 +repulsion 2 2.0610 4.9367 0.6505 !! t17-i6 + + + ############################# + ## ## + ## Dispersion Parameters ## + ## ## + ############################# + + +#dispersion 1 16.4682 4.4288 !! orig +#dispersion 2 2.9470 4.9751 !! orig +#dispersion 1 17.0790 4.3977 !! 13 +#dispersion 2 4.2262 4.9255 !! 13 +#dispersion 1 17.0607 4.3872 !! 12 +#dispersion 2 4.2382 4.9542 !! 12 +#dispersion 1 16.6803 4.4470 !! t16-i2 +#dispersion 2 3.4415 4.9267 !! t16-i2 +#dispersion 1 16.7807 4.4427 !! t16-i6 +#dispersion 2 3.8508 4.9261 !! t16-i6 +#dispersion 1 16.6579 4.2763 !! t17-i3 +#dispersion 2 3.2999 4.9597 !! t17-i3 +dispersion 1 16.7190 4.3418 !! t17-i6 +dispersion 2 3.4239 4.9577 !! t17-i6 + + + ################################### + ## ## + ## Atomic Multipole Parameters ## + ## ## + ################################### + + +!! orig +#multipole 1 -2 -2 -0.38280 + 0.00000 0.00000 0.05477 + 0.69866 + 0.00000 -0.60471 + 0.00000 0.00000 -0.09395 +#multipole 2 1 2 0.19140 + 0.00000 0.00000 -0.20097 + 0.03881 + 0.00000 0.02214 + 0.00000 0.00000 -0.06095 +!! 13 +#multipole 1 -2 -2 -0.38296 + 0.00000 0.00000 0.05086 + 0.70053 + 0.00000 -0.61138 + 0.00000 0.00000 -0.08915 +#multipole 2 1 2 0.19148 + 0.00000 0.00000 -0.20142 + 0.06672 + 0.00000 0.04168 + 0.01245 0.00000 -0.10840 +!! 12 +#multipole 1 -2 -2 -0.38468 + 0.00000 0.00000 0.05069 + 0.70076 + 0.00000 -0.61593 + 0.00000 0.00000 -0.08483 +#multipole 2 1 2 0.19234 + 0.00000 0.00000 -0.20236 + 0.06136 + 0.00000 0.04166 + 0.00591 0.00000 -0.10302 +!! t16-i2 +#multipole 1 -2 -2 -0.38236 + 0.00000 0.00000 0.05488 + 0.69693 + 0.00000 -0.60514 + 0.00000 0.00000 -0.09179 +#multipole 2 1 2 0.19118 + 0.00000 0.00000 -0.20081 + 0.04614 + 0.00000 0.02258 + 0.00000 0.00000 -0.07172 +!! t16-i6 +#multipole 1 -2 -2 -0.37854 + 0.00000 0.00000 0.05439 + 0.68442 + 0.00000 -0.61857 + 0.00000 0.00000 -0.06585 +#multipole 2 1 2 0.18927 + 0.00000 0.00000 -0.19918 + 0.05839 + 0.00000 0.03699 + 0.00683 0.00000 -0.09538 +!! t17-i3 +#multipole 1 -2 -2 -0.37944 + 0.00000 0.00000 0.05496 + 0.69091 + 0.00000 -0.60566 + 0.00000 0.00000 -0.08525 +#multipole 2 1 2 0.18972 + 0.00000 0.00000 -0.20057 + 0.05030 + 0.00000 0.03290 + 0.00187 0.00000 -0.08320 +!! t17-i6 +multipole 1 -2 -2 -0.37724 + 0.00000 0.00000 0.05410 + 0.68565 + 0.00000 -0.60559 + 0.00000 0.00000 -0.08006 +multipole 2 1 2 0.18862 + 0.00000 0.00000 -0.19902 + 0.06206 + 0.00000 0.04341 + 0.00709 0.00000 -0.10547 + + + ##################################### + ## ## + ## Charge Penetration Parameters ## + ## ## + ##################################### + + +#chgpen 1 6.0000 4.4288 !! orig +#chgpen 2 1.0000 4.9751 !! orig +#chgpen 1 6.0000 4.3977 !! 13 +#chgpen 2 1.0000 4.9255 !! 13 +#chgpen 1 6.0000 4.3872 !! 12 +#chgpen 2 1.0000 4.9542 !! 12 +#chgpen 1 6.0000 4.4470 !! t16-i2 +#chgpen 2 1.0000 4.9767 !! t16-i2 +#chgpen 1 6.0000 4.4427 !! t16-i6 +#chgpen 2 1.0000 4.9261 !! t16-i6 +#chgpen 1 6.0000 4.3763 !! t17-i3 +#chgpen 2 1.0000 4.9597 !! t17-i3 +chgpen 1 6.0000 4.3418 !! t17-i6 +chgpen 2 1.0000 4.9577 !! t17-i6 + + + ######################################## + ## ## + ## Dipole Polarizability Parameters ## + ## ## + ######################################## + + +#polarize 1 0.7482 2 !! orig +#polarize 2 0.3703 1 !! orig +#polarize 1 0.7448 2 !! 13 +#polarize 2 0.3897 1 !! 13 +#polarize 1 0.7442 2 !! 12 +#polarize 2 0.3874 1 !! 12 +#polarize 1 0.7499 2 !! t16-i2 +#polarize 2 0.3706 1 !! t16-i2 +#polarize 1 0.7403 2 !! t16-i6 +#polarize 2 0.3774 1 !! t16-i6 +#polarize 1 0.7416 2 !! t17-i3 +#polarize 2 0.3670 1 !! t17-i3 +polarize 1 0.7332 2 !! t17-i6 +polarize 2 0.3691 1 !! t17-i6 + + + ################################## + ## ## + ## Charge Transfer Parameters ## + ## ## + ################################## + + +#chgtrn 1 3.5788 0.0000 !! orig +#chgtrn 2 0.0000 3.3292 !1 orig +#chgtrn 1 3.5856 0.0000 !! 13 +#chgtrn 2 0.0000 3.3482 !! 13 +#chgtrn 1 3.5867 0.0000 !! t16-i2 +#chgtrn 2 0.0000 3.3105 !! t16-i2 +#chgtrn 1 3.5812 0.0000 !! t16-i6 +#chgtrn 2 0.0000 3.2909 !! t16-i6 +#chgtrn 1 3.5762 0.0000 !! t17-i3 +#chgtrn 2 0.0000 3.2881 !! t17-i3 +chgtrn 1 3.5551 0.0000 !! t17-i6 +chgtrn 2 0.0000 3.2812 !! t17-i6 diff --git a/examples/amoeba/hippo_water_box.key b/examples/amoeba/hippo_water_box.key new file mode 100644 index 0000000000..24710cb465 --- /dev/null +++ b/examples/amoeba/hippo_water_box.key @@ -0,0 +1,22 @@ +!! DATE: 2022-07-05 UNITS: real +parameters ./hippo.prm + +digits 8 +verbose + +ewald +ewald-alpha 0.4 +pewald-alpha 0.5 + +dewald +dewald-alpha 0.45 +dpme-grid 16 16 16 + +neighbor-list +a-axis 18.643 + +cutoff 7 +taper 6 + +polar-eps 1e-5 +usolve-diag 1.0 diff --git a/examples/amoeba/in.ubiquitin b/examples/amoeba/in.ubiquitin new file mode 100644 index 0000000000..4c47edfcfc --- /dev/null +++ b/examples/amoeba/in.ubiquitin @@ -0,0 +1,52 @@ +# solvated ubiquitin molecule with AMOEBA force field + +units real +boundary p p p +atom_modify sort 0 0.0 + +atom_style amoeba + +bond_style class2 +angle_style amoeba +dihedral_style fourier +improper_style amoeba + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +fix pit all amoeba/pitorsion +fix_modify pit energy yes +fix bit all amoeba/bitorsion bitorsion.ubiquitin.data +fix_modify bit energy yes + +# read data file + +read_data data.ubiquitin fix amtype NULL "Tinker Types" & + fix pit "pitorsion types" "PiTorsion Coeffs" & + fix pit pitorsions PiTorsions & + fix bit bitorsions BiTorsions + +pair_style amoeba +pair_coeff * * amoeba_ubiquitin.prm amoeba_ubiquitin.key + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp & + emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.ubiquitin id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 1 +run 10 diff --git a/examples/amoeba/in.water_box.amoeba b/examples/amoeba/in.water_box.amoeba new file mode 100644 index 0000000000..d01368c4b4 --- /dev/null +++ b/examples/amoeba/in.water_box.amoeba @@ -0,0 +1,43 @@ +# replicate water box with AMOEBA or HIPPO + +units real +boundary p p p + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_box.amoeba fix amtype NULL "Tinker Types" + +# force field + +pair_style amoeba +pair_coeff * * amoeba_water.prm amoeba_water_box.key + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp & + emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_box id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 diff --git a/examples/amoeba/in.water_box.hippo b/examples/amoeba/in.water_box.hippo new file mode 100644 index 0000000000..85e804068d --- /dev/null +++ b/examples/amoeba/in.water_box.hippo @@ -0,0 +1,43 @@ +# water box with AMOEBA or HIPPO + +units real +boundary p p p + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_box.hippo fix amtype NULL "Tinker Types" + +# force field + +pair_style hippo +pair_coeff * * hippo_water.prm hippo_water_box.key + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp & + emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_box id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 diff --git a/examples/amoeba/in.water_dimer.amoeba b/examples/amoeba/in.water_dimer.amoeba new file mode 100644 index 0000000000..b48ae9f7a9 --- /dev/null +++ b/examples/amoeba/in.water_dimer.amoeba @@ -0,0 +1,43 @@ +# water dimer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_dimer.amoeba fix amtype NULL "Tinker Types" + +# force field + +pair_style amoeba +pair_coeff * * amoeba_water.prm amoeba_water.key + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp & + emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_dimer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 diff --git a/examples/amoeba/in.water_dimer.hippo b/examples/amoeba/in.water_dimer.hippo new file mode 100644 index 0000000000..154656049a --- /dev/null +++ b/examples/amoeba/in.water_dimer.hippo @@ -0,0 +1,43 @@ +# water dimer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_dimer.hippo fix amtype NULL "Tinker Types" + +# force field + +pair_style hippo +pair_coeff * * hippo_water.prm hippo_water.key + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp & + emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_dimer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 diff --git a/examples/amoeba/in.water_hexamer.amoeba b/examples/amoeba/in.water_hexamer.amoeba new file mode 100644 index 0000000000..91642854ff --- /dev/null +++ b/examples/amoeba/in.water_hexamer.amoeba @@ -0,0 +1,43 @@ +# water hexamer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_hexamer.amoeba fix amtype NULL "Tinker Types" + +# force field + +pair_style amoeba +pair_coeff * * amoeba_water.prm amoeba_water.key + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp & + emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_hexamer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 diff --git a/examples/amoeba/in.water_hexamer.hippo b/examples/amoeba/in.water_hexamer.hippo new file mode 100644 index 0000000000..f0d7c0ab97 --- /dev/null +++ b/examples/amoeba/in.water_hexamer.hippo @@ -0,0 +1,43 @@ +# water hexamer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_hexamer.hippo fix amtype NULL "Tinker Types" + +# force field + +pair_style hippo +pair_coeff * * hippo_water.prm hippo_water.key + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp & + emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_hexamer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 diff --git a/examples/amoeba/log.7Jul22.ubiquitin.g++.1 b/examples/amoeba/log.7Jul22.ubiquitin.g++.1 new file mode 100644 index 0000000000..d10a114126 --- /dev/null +++ b/examples/amoeba/log.7Jul22.ubiquitin.g++.1 @@ -0,0 +1,163 @@ +LAMMPS (23 Jun 2022) +# solvated ubiquitin molecule with AMOEBA force field + +units real +boundary p p p +atom_modify sort 0 0.0 + +atom_style amoeba + +bond_style class2 +angle_style amoeba +dihedral_style fourier +improper_style amoeba + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +fix pit all amoeba/pitorsion +fix_modify pit energy yes +fix bit all amoeba/bitorsion bitorsion.ubiquitin.data +fix_modify bit energy yes + +# read data file + +read_data data.ubiquitin fix amtype NULL "Tinker Types" fix pit "pitorsion types" "PiTorsion Coeffs" fix pit pitorsions PiTorsions fix bit bitorsions BiTorsions +Reading data file ... + orthogonal box = (0 0 0) to (54.99 41.91 41.91) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 9737 atoms + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 6 = max angles/atom + scanning dihedrals ... + 18 = max dihedrals/atom + scanning impropers ... + 3 = max impropers/atom + reading bonds ... + 6908 bonds + reading angles ... + 5094 angles + reading dihedrals ... + 3297 dihedrals + reading impropers ... + 651 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 19 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.004 seconds + read_data CPU = 0.091 seconds + +pair_style amoeba +pair_coeff * * amoeba_ubiquitin.prm amoeba_ubiquitin.key +Reading potential file amoeba_ubiquitin.prm with DATE: 2022-07-05 +Skipping section: AMOEBA Protein Force Field Atom Classes +Skipping section: Torsion-Torsion Parameters +Skipping section: Biopolymer Atom Type Conversions +Reading potential file amoeba_ubiquitin.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 19 = max # of 1-4 neighbors + 58 = max # of 1-5 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.007 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.ubiquitin id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 1 +run 10 +AMOEBA force field settings + hal: cut 12 taper 10.8 vscale 0 0 1 1 + multipole: cut 7 aewald 0.4 bsorder 5 FFT 60 48 48 mscale 0 0 0.4 1 + polar: cut 7 aewald 0.5 bsorder 5 FFT 60 48 48 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 1 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 15 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 8 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair amoeba, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + AMOEBA group count: 3196 +Per MPI rank memory allocation (min/avg/max) = 258.3 | 258.3 | 258.3 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -35338.057 2856.5938 1955.5431 224.37609 65.00809 5101.5211 -30247.585 -6336.5196 -5795.4272 -6329.8149 -6884.3167 349.52657 77.164877 652.41925 + 1 29.61379 -35356.153 2037.3541 1840.7883 223.90217 64.293945 4166.3385 -30341.522 -6486.773 -6452.8463 -6841.5982 -7386.1106 311.38025 120.72605 545.35513 + 2 78.518242 -35383.65 825.39919 1538.3909 222.55095 62.191009 2648.5321 -30467.814 -5502.9841 -6410.2998 -6396.1829 -6937.8137 217.3515 210.76948 294.28051 + 3 88.8921 -35402.11 938.99299 1162.2914 220.5271 58.832521 2380.644 -30453.516 -1929.5417 -3331.1291 -2769.7218 -3350.5733 117.32302 279.72705 31.237776 + 4 68.740402 -35477.589 2048.0659 858.03795 218.14277 54.460022 3178.7066 -30316.325 2041.1138 594.25938 1665.7799 1030.8539 66.230421 304.28296 -155.80224 + 5 76.267862 -35707.869 2206.6534 736.37385 215.75693 49.401674 3208.1859 -30299.377 2276.9276 536.21124 1893.4621 1258.492 92.097191 299.65604 -228.58369 + 6 118.24373 -36092.77 1166.179 815.59206 213.67399 44.022297 2239.4673 -30435.629 -1677.8051 -3988.2428 -2669.6848 -3247.7207 197.42472 285.87129 -162.35459 + 7 137.7204 -36521.444 782.87113 1026.745 212.04289 38.686259 2060.3452 -30479.082 -5987.83 -8386.8104 -7363.188 -7888.261 357.00835 253.66346 32.827786 + 8 112.66452 -36897.181 1750.0569 1269.152 210.83571 33.742799 3263.7874 -30379.432 -7886.4081 -9703.2601 -9043.015 -9555.2908 490.76046 182.31259 278.727 + 9 88.237359 -37209.906 2695.1766 1454.55 209.91331 29.503458 4389.1434 -30276.565 -8202.16 -9492.368 -9110.7037 -9639.2288 502.55699 107.82333 443.6705 + 10 108.86756 -37474.988 2240.4603 1523.7936 209.10313 26.208515 3999.5656 -30333.279 -8468.4347 -9956.923 -9709.5874 -10224.682 365.98214 95.262991 425.12746 +Loop time of 24.2102 on 1 procs for 10 steps with 9737 atoms + +Performance: 0.036 ns/day, 672.507 hours/ns, 0.413 timesteps/s +97.8% CPU use with 1 MPI tasks x no OpenMP threads + +AMOEBA timing breakdown: + Init time: 0.0401664 0.17% + Hal time: 7.62094 31.51% + Mpole time: 2.44622 10.12% + Induce time: 9.28925 38.41% + Polar time: 4.78631 19.79% + Total time: 24.1829 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 24.183 | 24.183 | 24.183 | 0.0 | 99.89 +Bond | 0.016031 | 0.016031 | 0.016031 | 0.0 | 0.07 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.004396 | 0.004396 | 0.004396 | 0.0 | 0.02 +Output | 0.0011692 | 0.0011692 | 0.0011692 | 0.0 | 0.00 +Modify | 0.0044765 | 0.0044765 | 0.0044765 | 0.0 | 0.02 +Other | | 0.001194 | | | 0.00 + +Nlocal: 9737 ave 9737 max 9737 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 31511 ave 31511 max 31511 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 5.6393e+06 ave 5.6393e+06 max 5.6393e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 5639296 +Ave neighs/atom = 579.16155 +Ave special neighs/atom = 3.1364897 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:27 diff --git a/examples/amoeba/log.7Jul22.ubiquitin.g++.4 b/examples/amoeba/log.7Jul22.ubiquitin.g++.4 new file mode 100644 index 0000000000..50bbd6ce03 --- /dev/null +++ b/examples/amoeba/log.7Jul22.ubiquitin.g++.4 @@ -0,0 +1,163 @@ +LAMMPS (23 Jun 2022) +# solvated ubiquitin molecule with AMOEBA force field + +units real +boundary p p p +atom_modify sort 0 0.0 + +atom_style amoeba + +bond_style class2 +angle_style amoeba +dihedral_style fourier +improper_style amoeba + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +fix pit all amoeba/pitorsion +fix_modify pit energy yes +fix bit all amoeba/bitorsion bitorsion.ubiquitin.data +fix_modify bit energy yes + +# read data file + +read_data data.ubiquitin fix amtype NULL "Tinker Types" fix pit "pitorsion types" "PiTorsion Coeffs" fix pit pitorsions PiTorsions fix bit bitorsions BiTorsions +Reading data file ... + orthogonal box = (0 0 0) to (54.99 41.91 41.91) + 2 by 1 by 2 MPI processor grid + reading atoms ... + 9737 atoms + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 6 = max angles/atom + scanning dihedrals ... + 18 = max dihedrals/atom + scanning impropers ... + 3 = max impropers/atom + reading bonds ... + 6908 bonds + reading angles ... + 5094 angles + reading dihedrals ... + 3297 dihedrals + reading impropers ... + 651 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 19 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.072 seconds + +pair_style amoeba +pair_coeff * * amoeba_ubiquitin.prm amoeba_ubiquitin.key +Reading potential file amoeba_ubiquitin.prm with DATE: 2022-07-05 +Skipping section: AMOEBA Protein Force Field Atom Classes +Skipping section: Torsion-Torsion Parameters +Skipping section: Biopolymer Atom Type Conversions +Reading potential file amoeba_ubiquitin.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 19 = max # of 1-4 neighbors + 58 = max # of 1-5 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.002 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.ubiquitin id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 1 +run 10 +AMOEBA force field settings + hal: cut 12 taper 10.8 vscale 0 0 1 1 + multipole: cut 7 aewald 0.4 bsorder 5 FFT 60 48 48 mscale 0 0 0.4 1 + polar: cut 7 aewald 0.5 bsorder 5 FFT 60 48 48 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 1 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 15 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 8 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair amoeba, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + AMOEBA group count: 3196 +Per MPI rank memory allocation (min/avg/max) = 144.2 | 144.7 | 145.4 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -35338.057 2856.5938 1955.5431 224.37609 65.00809 5101.5211 -30247.585 -6336.5196 -5795.4272 -6329.8149 -6884.3167 349.52657 77.164877 652.41925 + 1 29.61379 -35356.153 2037.3541 1840.7883 223.90217 64.293945 4166.3385 -30341.522 -6486.773 -6452.8463 -6841.5982 -7386.1106 311.38025 120.72605 545.35513 + 2 78.518242 -35383.65 825.39919 1538.3909 222.55095 62.191009 2648.5321 -30467.814 -5502.9841 -6410.2998 -6396.1829 -6937.8137 217.3515 210.76948 294.28051 + 3 88.8921 -35402.11 938.99299 1162.2914 220.5271 58.832521 2380.644 -30453.516 -1929.5417 -3331.1291 -2769.7218 -3350.5733 117.32302 279.72705 31.237776 + 4 68.740402 -35477.589 2048.0659 858.03795 218.14277 54.460022 3178.7066 -30316.325 2041.1138 594.25938 1665.7799 1030.8539 66.230421 304.28296 -155.80224 + 5 76.267862 -35707.869 2206.6534 736.37385 215.75693 49.401674 3208.1859 -30299.377 2276.9276 536.21124 1893.4621 1258.492 92.097191 299.65604 -228.58369 + 6 118.24373 -36092.77 1166.179 815.59206 213.67399 44.022297 2239.4673 -30435.629 -1677.8051 -3988.2428 -2669.6848 -3247.7207 197.42472 285.87129 -162.35459 + 7 137.7204 -36521.444 782.87113 1026.745 212.04289 38.686259 2060.3452 -30479.082 -5987.83 -8386.8104 -7363.188 -7888.261 357.00835 253.66346 32.827786 + 8 112.66452 -36897.181 1750.0569 1269.152 210.83571 33.742799 3263.7874 -30379.432 -7886.4081 -9703.2601 -9043.015 -9555.2908 490.76046 182.31259 278.727 + 9 88.237359 -37209.906 2695.1766 1454.55 209.91331 29.503458 4389.1434 -30276.565 -8202.16 -9492.368 -9110.7037 -9639.2288 502.55699 107.82333 443.6705 + 10 108.86756 -37474.988 2240.4603 1523.7936 209.10313 26.208515 3999.5656 -30333.279 -8468.4347 -9956.923 -9709.5874 -10224.682 365.98214 95.262991 425.12746 +Loop time of 6.03244 on 4 procs for 10 steps with 9737 atoms + +Performance: 0.143 ns/day, 167.568 hours/ns, 1.658 timesteps/s +99.7% CPU use with 4 MPI tasks x no OpenMP threads + +AMOEBA timing breakdown: + Init time: 0.0192504 0.32% + Hal time: 1.86975 31.05% + Mpole time: 0.633256 10.52% + Induce time: 2.26029 37.54% + Polar time: 1.23884 20.57% + Total time: 6.02139 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 6.0202 | 6.0215 | 6.0228 | 0.0 | 99.82 +Bond | 0.0029895 | 0.0033805 | 0.0036579 | 0.4 | 0.06 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0044978 | 0.0059188 | 0.0070446 | 1.5 | 0.10 +Output | 0.00055049 | 0.00062352 | 0.00079826 | 0.0 | 0.01 +Modify | 0.00067451 | 0.00071394 | 0.00074612 | 0.0 | 0.01 +Other | | 0.0003294 | | | 0.01 + +Nlocal: 2434.25 ave 2498 max 2390 min +Histogram: 1 1 0 0 1 0 0 0 0 1 +Nghost: 16683.2 ave 16765 max 16568 min +Histogram: 1 0 0 1 0 0 0 0 0 2 +Neighs: 1.40982e+06 ave 1.52088e+06 max 1.30717e+06 min +Histogram: 2 0 0 0 0 0 0 0 1 1 + +Total # of neighbors = 5639296 +Ave neighs/atom = 579.16155 +Ave special neighs/atom = 3.1364897 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:07 diff --git a/examples/amoeba/log.7Jul22.water_box.amoeba.g++.1 b/examples/amoeba/log.7Jul22.water_box.amoeba.g++.1 new file mode 100644 index 0000000000..f0b1ed83e5 --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_box.amoeba.g++.1 @@ -0,0 +1,146 @@ +LAMMPS (23 Jun 2022) +# replicate water box with AMOEBA or HIPPO + +units real +boundary p p p + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_box.amoeba fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (0 0 0) to (18.643 18.643 18.643) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 648 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 432 bonds + reading angles ... + 216 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.010 seconds + +# force field + +pair_style amoeba +pair_coeff * * amoeba_water.prm amoeba_water_box.key +Reading potential file amoeba_water.prm with DATE: 2022-07-05 +Reading potential file amoeba_water_box.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.001 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_box id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +AMOEBA force field settings + hal: cut 7 taper 6 vscale 0 0 1 1 + multipole: cut 7 aewald 0.4 bsorder 5 FFT 24 24 24 mscale 0 0 0.4 1 + polar: cut 7 aewald 0.5 bsorder 5 FFT 24 24 24 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 1 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 9 + ghost atom cutoff = 9 + binsize = 4.5, bins = 5 5 5 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair amoeba, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + AMOEBA group count: 216 +Per MPI rank memory allocation (min/avg/max) = 56.94 | 56.94 | 56.94 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -2172.0637 166.82637 83.732524 0 0 250.5589 -1921.5048 -6181.4178 -4772.1682 -6954.8414 -6817.2437 -272.19967 3173.3481 2229.9454 + 10 105.50186 -2373.7036 136.67877 106.86833 0 0 243.5471 -1926.6873 -8440.8076 -10450.396 -9513.7369 -9664.6007 -301.7395 322.28511 1917.0314 + 20 143.89822 -2358.363 70.950306 76.775658 0 0 147.72596 -1933.1172 -7370.2083 -7728.5515 -11580.39 -8675.2341 -806.78779 780.67516 2096.34 + 30 157.22465 -2375.4739 50.393531 87.108003 0 0 137.50153 -1934.7514 -4449.577 -6946.7795 -7865.2165 -4954.2358 -417.69587 -1004.2877 -36.388669 + 40 150.92481 -2354.1892 78.482464 53.798462 0 0 132.28093 -1930.8371 353.42948 -939.14353 -4636.5062 475.58057 -1073.8523 -1583.9471 -574.21807 + 50 153.0181 -2388.7322 100.20232 65.813823 0 0 166.01614 -1927.6078 3975.1981 1368.1361 425.64533 3886.0124 -1806.8586 -2534.5272 -2118.2395 + 60 155.01494 -2364.3168 92.946192 44.248949 0 0 137.19514 -1928.1623 5793.7546 3524.7523 1420.4096 6108.7958 -1536.5261 -2558.8204 -1501.5292 + 70 166.70755 -2383.503 76.491199 55.01988 0 0 131.51108 -1930.4824 4744.1583 1919.3954 2838.7666 2669.745 -169.21643 -188.08678 -2256.4142 + 80 171.83506 -2388.0612 76.465932 49.1299 0 0 125.59583 -1931.067 2210.3658 -318.23867 330.74353 -395.26693 -43.142216 252.53012 -1987.0412 + 90 175.73401 -2423.8154 90.786573 63.719496 0 0 154.50607 -1930.3915 -916.91571 -3942.3954 -2566.5361 -3414.8202 199.82369 2365.9443 -266.38604 + 100 173.72684 -2422.367 99.75941 57.294464 0 0 157.05387 -1930.2663 -3585.8356 -5734.1341 -5882.0146 -6232.4353 -227.79935 959.68225 404.47924 +Loop time of 14.5572 on 1 procs for 100 steps with 648 atoms + +Performance: 0.594 ns/day, 40.437 hours/ns, 6.869 timesteps/s +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +AMOEBA timing breakdown: + Init time: 0.0224497 0.15% + Hal time: 1.00248 6.90% + Mpole time: 1.42229 9.78% + Induce time: 9.23983 63.55% + Polar time: 2.8515 19.61% + Total time: 14.5386 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 14.539 | 14.539 | 14.539 | 0.0 | 99.87 +Bond | 0.0029302 | 0.0029302 | 0.0029302 | 0.0 | 0.02 +Neigh | 0.010789 | 0.010789 | 0.010789 | 0.0 | 0.07 +Comm | 0.0027888 | 0.0027888 | 0.0027888 | 0.0 | 0.02 +Output | 0.00040039 | 0.00040039 | 0.00040039 | 0.0 | 0.00 +Modify | 0.0007305 | 0.0007305 | 0.0007305 | 0.0 | 0.01 +Other | | 0.0008703 | | | 0.01 + +Nlocal: 648 ave 648 max 648 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 4290 ave 4290 max 4290 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 98545 ave 98545 max 98545 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 98545 +Ave neighs/atom = 152.07562 +Ave special neighs/atom = 2 +Neighbor list builds = 2 +Dangerous builds = 0 +Total wall time: 0:00:14 diff --git a/examples/amoeba/log.7Jul22.water_box.amoeba.g++.4 b/examples/amoeba/log.7Jul22.water_box.amoeba.g++.4 new file mode 100644 index 0000000000..f813feadb9 --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_box.amoeba.g++.4 @@ -0,0 +1,146 @@ +LAMMPS (23 Jun 2022) +# replicate water box with AMOEBA or HIPPO + +units real +boundary p p p + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_box.amoeba fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (0 0 0) to (18.643 18.643 18.643) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 648 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 432 bonds + reading angles ... + 216 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.011 seconds + +# force field + +pair_style amoeba +pair_coeff * * amoeba_water.prm amoeba_water_box.key +Reading potential file amoeba_water.prm with DATE: 2022-07-05 +Reading potential file amoeba_water_box.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.001 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_box id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +AMOEBA force field settings + hal: cut 7 taper 6 vscale 0 0 1 1 + multipole: cut 7 aewald 0.4 bsorder 5 FFT 24 24 24 mscale 0 0 0.4 1 + polar: cut 7 aewald 0.5 bsorder 5 FFT 24 24 24 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 1 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 9 + ghost atom cutoff = 9 + binsize = 4.5, bins = 5 5 5 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair amoeba, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + AMOEBA group count: 216 +Per MPI rank memory allocation (min/avg/max) = 56.38 | 56.38 | 56.38 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -2172.0637 166.82637 83.732524 0 0 250.5589 -1921.5048 -6181.4178 -4772.1682 -6954.8414 -6817.2437 -272.19967 3173.3481 2229.9454 + 10 105.50186 -2373.7036 136.67877 106.86833 0 0 243.5471 -1926.6873 -8440.8076 -10450.396 -9513.7369 -9664.6007 -301.7395 322.28511 1917.0314 + 20 143.89822 -2358.363 70.950306 76.775658 0 0 147.72596 -1933.1172 -7370.2083 -7728.5515 -11580.39 -8675.2341 -806.78779 780.67516 2096.34 + 30 157.22465 -2375.4739 50.393531 87.108003 0 0 137.50153 -1934.7514 -4449.577 -6946.7795 -7865.2165 -4954.2358 -417.69587 -1004.2877 -36.388669 + 40 150.92481 -2354.1892 78.482464 53.798462 0 0 132.28093 -1930.8371 353.42948 -939.14353 -4636.5062 475.58057 -1073.8523 -1583.9471 -574.21807 + 50 153.0181 -2388.7322 100.20232 65.813823 0 0 166.01614 -1927.6078 3975.1981 1368.1361 425.64533 3886.0124 -1806.8586 -2534.5272 -2118.2395 + 60 155.01494 -2364.3168 92.946192 44.248949 0 0 137.19514 -1928.1623 5793.7546 3524.7523 1420.4096 6108.7958 -1536.5261 -2558.8204 -1501.5292 + 70 166.70755 -2383.503 76.491199 55.01988 0 0 131.51108 -1930.4824 4744.1583 1919.3954 2838.7666 2669.745 -169.21643 -188.08678 -2256.4142 + 80 171.83506 -2388.0612 76.465932 49.1299 0 0 125.59583 -1931.067 2210.3658 -318.23867 330.74353 -395.26693 -43.142216 252.53012 -1987.0412 + 90 175.73401 -2423.8154 90.786573 63.719496 0 0 154.50607 -1930.3915 -916.91571 -3942.3954 -2566.5361 -3414.8202 199.82369 2365.9443 -266.38604 + 100 173.72684 -2422.367 99.75941 57.294464 0 0 157.05387 -1930.2663 -3585.8356 -5734.1341 -5882.0146 -6232.4353 -227.79935 959.68225 404.47924 +Loop time of 5.22237 on 4 procs for 100 steps with 648 atoms + +Performance: 1.654 ns/day, 14.507 hours/ns, 19.148 timesteps/s +100.0% CPU use with 4 MPI tasks x no OpenMP threads + +AMOEBA timing breakdown: + Init time: 0.0217547 0.42% + Hal time: 0.246901 4.74% + Mpole time: 0.489975 9.41% + Induce time: 3.54999 68.15% + Polar time: 0.900374 17.28% + Total time: 5.20901 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 5.2084 | 5.2093 | 5.2114 | 0.1 | 99.75 +Bond | 0.00074127 | 0.00080769 | 0.00084525 | 0.0 | 0.02 +Neigh | 0.0014801 | 0.001481 | 0.0014832 | 0.0 | 0.03 +Comm | 0.007438 | 0.0095884 | 0.010526 | 1.3 | 0.18 +Output | 0.00028866 | 0.00033051 | 0.00044509 | 0.0 | 0.01 +Modify | 0.00020399 | 0.00020969 | 0.00021248 | 0.0 | 0.00 +Other | | 0.000658 | | | 0.01 + +Nlocal: 162 ave 164 max 159 min +Histogram: 1 0 0 0 0 0 1 0 1 1 +Nghost: 2568.5 ave 2585 max 2544 min +Histogram: 1 0 0 0 0 1 0 0 1 1 +Neighs: 24636.2 ave 25226 max 23891 min +Histogram: 1 0 0 0 0 0 2 0 0 1 + +Total # of neighbors = 98545 +Ave neighs/atom = 152.07562 +Ave special neighs/atom = 2 +Neighbor list builds = 2 +Dangerous builds = 0 +Total wall time: 0:00:05 diff --git a/examples/amoeba/log.7Jul22.water_box.hippo.g++.1 b/examples/amoeba/log.7Jul22.water_box.hippo.g++.1 new file mode 100644 index 0000000000..0c4d2a2ebf --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_box.hippo.g++.1 @@ -0,0 +1,150 @@ +LAMMPS (23 Jun 2022) +# water box with AMOEBA or HIPPO + +units real +boundary p p p + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_box.hippo fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (0 0 0) to (18.643 18.643 18.643) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 648 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 432 bonds + reading angles ... + 216 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.011 seconds + +# force field + +pair_style hippo +pair_coeff * * hippo_water.prm hippo_water_box.key +Reading potential file hippo_water.prm with DATE: 2022-07-05 +Reading potential file hippo_water_box.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.001 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_box id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +HIPPO force field settings + repulsion: cut 7 taper 6 rscale 0 0 1 1 + qxfer: cut 7 taper 6 mscale 0 0 0.4 1 + dispersion: cut 7 aewald 0.45 bsorder 4 FFT 16 16 16 dspscale 0 0 0.4 1 + multipole: cut 7 aewald 0.4 bsorder 5 FFT 24 24 24 mscale 0 0 0.4 1 + polar: cut 7 aewald 0.5 bsorder 5 FFT 24 24 24 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 0.2 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 9 + ghost atom cutoff = 9 + binsize = 4.5, bins = 5 5 5 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair hippo, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + HIPPO group count: 216 +Per MPI rank memory allocation (min/avg/max) = 56.46 | 56.46 | 56.46 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -2188.594 166.82637 77.478353 0 0 244.30473 -1944.2893 -10859.589 -9285.4645 -11598.049 -11695.254 -282.7072 3164.4148 2495.2578 + 10 100.94691 -2350.192 116.13156 88.56605 0 0 204.69761 -1950.8098 -11480.919 -13574.139 -12190.797 -12798.212 -263.77028 280.62864 1974.1486 + 20 153.91622 -2358.3058 36.396961 66.22466 0 0 102.62162 -1958.8438 -7778.4529 -8492.3868 -11999.431 -9125.9998 -917.99962 589.09064 1788.2094 + 30 145.5951 -2343.9956 39.651541 65.833248 0 0 105.48479 -1957.7184 -288.79965 -2574.4466 -3820.4824 -414.28285 -347.51491 -1147.3995 -126.71025 + 40 126.87801 -2340.2623 102.93951 43.896946 0 0 146.83646 -1948.7309 6766.15 5908.7048 1280.0961 7930.8191 -1085.6811 -1596.6859 -714.82888 + 50 134.52078 -2358.9232 107.49288 44.253826 0 0 151.74671 -1947.7419 8762.4348 6023.4661 5377.0189 9396.0316 -1629.1364 -1663.1666 -2381.51 + 60 173.10181 -2374.3854 51.097314 33.03646 0 0 84.133774 -1956.4102 4614.2907 1719.1989 505.79149 4552.3167 -1661.1714 -587.92108 -1380.6732 + 70 184.86849 -2391.6106 39.916931 35.978152 0 0 75.895083 -1959.1811 -2146.9339 -4993.4021 -4095.6729 -4897.5768 -833.09046 1542.411 -1539.5266 + 80 164.75795 -2406.3017 101.94229 33.067832 0 0 135.01013 -1953.542 -8779.3265 -10545.409 -10418.702 -12098.858 -1319.194 1750.3511 -275.1272 + 90 151.17491 -2434.6876 152.21826 41.301673 0 0 193.51993 -1949.6141 -13330.691 -15436.505 -13791.461 -16934.674 149.25497 2289.1026 976.14333 + 100 166.99163 -2452.5298 143.57768 35.341459 0 0 178.91914 -1951.5533 -14918.51 -16077.49 -17353.738 -18140.466 19.009088 1487.0469 1084.0231 +Loop time of 9.10254 on 1 procs for 100 steps with 648 atoms + +Performance: 0.949 ns/day, 25.285 hours/ns, 10.986 timesteps/s +99.8% CPU use with 1 MPI tasks x no OpenMP threads + +HIPPO timing breakdown: + Init time: 0.0131104 0.14% + Repulse time: 1.06663 11.73% + Disp time: 0.585678 6.44% + Mpole time: 1.7162 18.88% + Induce time: 3.27504 36.03% + Polar time: 2.14366 23.58% + Qxfer time: 0.289804 3.19% + Total time: 9.09012 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 9.0902 | 9.0902 | 9.0902 | 0.0 | 99.86 +Bond | 0.0024561 | 0.0024561 | 0.0024561 | 0.0 | 0.03 +Neigh | 0.005878 | 0.005878 | 0.005878 | 0.0 | 0.06 +Comm | 0.0023344 | 0.0023344 | 0.0023344 | 0.0 | 0.03 +Output | 0.00036107 | 0.00036107 | 0.00036107 | 0.0 | 0.00 +Modify | 0.00062368 | 0.00062368 | 0.00062368 | 0.0 | 0.01 +Other | | 0.0006736 | | | 0.01 + +Nlocal: 648 ave 648 max 648 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 4282 ave 4282 max 4282 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 98490 ave 98490 max 98490 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 98490 +Ave neighs/atom = 151.99074 +Ave special neighs/atom = 2 +Neighbor list builds = 2 +Dangerous builds = 0 +Total wall time: 0:00:09 diff --git a/examples/amoeba/log.7Jul22.water_box.hippo.g++.4 b/examples/amoeba/log.7Jul22.water_box.hippo.g++.4 new file mode 100644 index 0000000000..0cb1e8a934 --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_box.hippo.g++.4 @@ -0,0 +1,150 @@ +LAMMPS (23 Jun 2022) +# water box with AMOEBA or HIPPO + +units real +boundary p p p + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_box.hippo fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (0 0 0) to (18.643 18.643 18.643) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 648 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 432 bonds + reading angles ... + 216 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.013 seconds + +# force field + +pair_style hippo +pair_coeff * * hippo_water.prm hippo_water_box.key +Reading potential file hippo_water.prm with DATE: 2022-07-05 +Reading potential file hippo_water_box.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.001 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_box id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +HIPPO force field settings + repulsion: cut 7 taper 6 rscale 0 0 1 1 + qxfer: cut 7 taper 6 mscale 0 0 0.4 1 + dispersion: cut 7 aewald 0.45 bsorder 4 FFT 16 16 16 dspscale 0 0 0.4 1 + multipole: cut 7 aewald 0.4 bsorder 5 FFT 24 24 24 mscale 0 0 0.4 1 + polar: cut 7 aewald 0.5 bsorder 5 FFT 24 24 24 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 0.2 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 9 + ghost atom cutoff = 9 + binsize = 4.5, bins = 5 5 5 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair hippo, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + HIPPO group count: 216 +Per MPI rank memory allocation (min/avg/max) = 55.94 | 55.94 | 55.94 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -2188.594 166.82637 77.478353 0 0 244.30473 -1944.2893 -10859.589 -9285.4645 -11598.049 -11695.254 -282.7072 3164.4148 2495.2578 + 10 100.94691 -2350.192 116.13156 88.56605 0 0 204.69761 -1950.8098 -11480.919 -13574.139 -12190.797 -12798.212 -263.77028 280.62864 1974.1486 + 20 153.91622 -2358.3058 36.396961 66.22466 0 0 102.62162 -1958.8438 -7778.4529 -8492.3868 -11999.431 -9125.9998 -917.99962 589.09064 1788.2094 + 30 145.5951 -2343.9956 39.651541 65.833248 0 0 105.48479 -1957.7184 -288.79965 -2574.4466 -3820.4824 -414.28285 -347.51491 -1147.3995 -126.71025 + 40 126.87801 -2340.2623 102.93951 43.896946 0 0 146.83646 -1948.7309 6766.15 5908.7048 1280.0961 7930.8191 -1085.6811 -1596.6859 -714.82888 + 50 134.52078 -2358.9232 107.49288 44.253826 0 0 151.74671 -1947.7419 8762.4348 6023.4661 5377.0189 9396.0316 -1629.1364 -1663.1666 -2381.51 + 60 173.10181 -2374.3854 51.097314 33.03646 0 0 84.133774 -1956.4102 4614.2907 1719.1989 505.79149 4552.3167 -1661.1714 -587.92108 -1380.6732 + 70 184.86849 -2391.6106 39.916931 35.978152 0 0 75.895083 -1959.1811 -2146.9339 -4993.4021 -4095.6729 -4897.5768 -833.09046 1542.411 -1539.5266 + 80 164.75795 -2406.3017 101.94229 33.067832 0 0 135.01013 -1953.542 -8779.3265 -10545.409 -10418.702 -12098.858 -1319.194 1750.3511 -275.1272 + 90 151.17491 -2434.6876 152.21826 41.301673 0 0 193.51993 -1949.6141 -13330.691 -15436.505 -13791.461 -16934.674 149.25497 2289.1026 976.14333 + 100 166.99163 -2452.5298 143.57768 35.341459 0 0 178.91914 -1951.5533 -14918.51 -16077.49 -17353.738 -18140.466 19.009088 1487.0469 1084.0231 +Loop time of 3.60321 on 4 procs for 100 steps with 648 atoms + +Performance: 2.398 ns/day, 10.009 hours/ns, 27.753 timesteps/s +100.0% CPU use with 4 MPI tasks x no OpenMP threads + +HIPPO timing breakdown: + Init time: 0.0162772 0.45% + Repulse time: 0.329178 9.19% + Disp time: 0.244602 6.83% + Mpole time: 0.640969 17.89% + Induce time: 1.44984 40.47% + Polar time: 0.821061 22.92% + Qxfer time: 0.0804381 2.25% + Total time: 3.58237 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.5752 | 3.5827 | 3.59 | 0.4 | 99.43 +Bond | 0.00065212 | 0.00072305 | 0.00075673 | 0.0 | 0.02 +Neigh | 0.0015663 | 0.0015681 | 0.00157 | 0.0 | 0.04 +Comm | 0.0097453 | 0.017024 | 0.024558 | 5.5 | 0.47 +Output | 0.00030331 | 0.0003444 | 0.00045896 | 0.0 | 0.01 +Modify | 0.00018335 | 0.00020346 | 0.00021611 | 0.0 | 0.01 +Other | | 0.0006822 | | | 0.02 + +Nlocal: 162 ave 166 max 160 min +Histogram: 2 0 0 1 0 0 0 0 0 1 +Nghost: 2563.25 ave 2589 max 2535 min +Histogram: 1 1 0 0 0 0 0 0 0 2 +Neighs: 24622.5 ave 25210 max 24056 min +Histogram: 1 0 1 0 0 0 0 1 0 1 + +Total # of neighbors = 98490 +Ave neighs/atom = 151.99074 +Ave special neighs/atom = 2 +Neighbor list builds = 2 +Dangerous builds = 0 +Total wall time: 0:00:03 diff --git a/examples/amoeba/log.7Jul22.water_dimer.amoeba.g++.1 b/examples/amoeba/log.7Jul22.water_dimer.amoeba.g++.1 new file mode 100644 index 0000000000..824e1df844 --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_dimer.amoeba.g++.1 @@ -0,0 +1,147 @@ +LAMMPS (23 Jun 2022) +# water dimer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_dimer.amoeba fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (-1.463996 -0.756549 -0.009705) to (0.933234 0.75612 2.935934) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 6 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 4 bonds + reading angles ... + 2 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.007 seconds + +# force field + +pair_style amoeba +pair_coeff * * amoeba_water.prm amoeba_water.key +Reading potential file amoeba_water.prm with DATE: 2022-07-05 +Reading potential file amoeba_water.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_dimer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +AMOEBA force field settings + hal: cut 10 taper 8 vscale 0 0 1 1 + multipole: cut 10 aewald 0 mscale 0 0 0.4 1 + polar: cut 10 aewald 0 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 1 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 1 1 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair amoeba, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Proc sub-domain size < neighbor skin, could lead to lost atoms (../domain.cpp:970) + AMOEBA group count: 2 +Per MPI rank memory allocation (min/avg/max) = 48.33 | 48.33 | 48.33 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -5.1627563 0.025695395 0.71581114 0 0 0.74150653 -4.4212497 -12260.522 -43226.042 39448.214 -33003.739 -85.160886 -28101.905 -72.971988 + 10 1.1174766 -4.7928792 0.045080327 0.30848527 0 0 0.35356559 -4.4226587 -14728.416 11456.119 -52592.829 -3262.8454 70.868937 29494.268 57.977562 + 20 3.0821934 -5.1387316 0.013108182 0.65694692 0 0 0.6700551 -4.4227393 3007.4148 -25925.326 49641.41 -15284.933 -79.726771 -29005.234 -68.530079 + 30 3.461967 -4.8079248 0.013888863 0.31895667 0 0 0.33284554 -4.423482 8616.211 40027.877 -31134.295 16291.126 72.510013 23088.238 51.407946 + 40 4.2181367 -5.0535921 0.0099009766 0.55796811 0 0 0.56786908 -4.4228557 24239.885 -5761.6967 62095.735 15576.675 -76.240192 -33057.385 -58.850871 + 50 5.216657 -4.8012751 0.0053003148 0.29489399 0 0 0.30019431 -4.4233315 17728.056 44785.731 -21215.714 28613.715 66.24671 20292.137 51.010856 + 60 9.45101 -5.0818046 0.0043357361 0.5118733 0 0 0.51620903 -4.4247372 16893.135 -15068.961 50111.11 13824.77 -75.966047 -34809.168 -52.83183 + 70 10.385926 -4.8250769 0.022572262 0.22235766 0 0 0.24492992 -4.4253547 -1117.3665 19070.918 -36063.612 11648.813 61.067533 25754.59 53.919881 + 80 12.797691 -5.123735 0.023756795 0.48275385 0 0 0.50651065 -4.4264869 -6491.9826 -28436.037 20681.908 -14176.121 -64.024669 -35737.052 -52.583533 + 90 12.569481 -4.8303379 0.060369422 0.15670502 0 0 0.21707444 -4.4259273 -16762.536 1720.5855 -47624.986 -6793.7441 59.966729 30024.566 52.339671 + 100 17.750788 -5.1195235 0.039885925 0.38711474 0 0 0.42700067 -4.4279642 -10817.92 -21833.456 4186.8301 -18211.329 -43.11086 -32664.671 -41.508916 +Loop time of 0.00539351 on 1 procs for 100 steps with 6 atoms + +Performance: 1601.925 ns/day, 0.015 hours/ns, 18540.802 timesteps/s +97.1% CPU use with 1 MPI tasks x no OpenMP threads + +AMOEBA timing breakdown: + Init time: 0.000111932 2.32% + Hal time: 0.00045057 9.33% + Mpole time: 0.00055958 11.59% + Induce time: 0.00238881 49.46% + Polar time: 0.0013042 27.00% + Total time: 0.00482974 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0048575 | 0.0048575 | 0.0048575 | 0.0 | 90.06 +Bond | 9.4036e-05 | 9.4036e-05 | 9.4036e-05 | 0.0 | 1.74 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 1.3435e-05 | 1.3435e-05 | 1.3435e-05 | 0.0 | 0.25 +Output | 0.00034323 | 0.00034323 | 0.00034323 | 0.0 | 6.36 +Modify | 3.5435e-05 | 3.5435e-05 | 3.5435e-05 | 0.0 | 0.66 +Other | | 4.986e-05 | | | 0.92 + +Nlocal: 6 ave 6 max 6 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 15 ave 15 max 15 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 15 +Ave neighs/atom = 2.5 +Ave special neighs/atom = 2 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/amoeba/log.7Jul22.water_dimer.amoeba.g++.4 b/examples/amoeba/log.7Jul22.water_dimer.amoeba.g++.4 new file mode 100644 index 0000000000..f4ec45928d --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_dimer.amoeba.g++.4 @@ -0,0 +1,147 @@ +LAMMPS (23 Jun 2022) +# water dimer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_dimer.amoeba fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (-1.463996 -0.756549 -0.009705) to (0.933234 0.75612 2.935934) + 2 by 1 by 2 MPI processor grid + reading atoms ... + 6 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 4 bonds + reading angles ... + 2 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.009 seconds + +# force field + +pair_style amoeba +pair_coeff * * amoeba_water.prm amoeba_water.key +Reading potential file amoeba_water.prm with DATE: 2022-07-05 +Reading potential file amoeba_water.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_dimer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +AMOEBA force field settings + hal: cut 10 taper 8 vscale 0 0 1 1 + multipole: cut 10 aewald 0 mscale 0 0 0.4 1 + polar: cut 10 aewald 0 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 1 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 1 1 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair amoeba, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Proc sub-domain size < neighbor skin, could lead to lost atoms (../domain.cpp:970) + AMOEBA group count: 2 +Per MPI rank memory allocation (min/avg/max) = 48.35 | 48.48 | 48.62 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -5.1627563 0.025695395 0.71581114 0 0 0.74150653 -4.4212497 -12260.522 -43226.042 39448.214 -33003.739 -85.160886 -28101.905 -72.971988 + 10 1.1174766 -4.7928792 0.045080327 0.30848527 0 0 0.35356559 -4.4226587 -14728.416 11456.119 -52592.829 -3262.8454 70.868937 29494.268 57.977562 + 20 3.0821934 -5.1387316 0.013108182 0.65694692 0 0 0.6700551 -4.4227393 3007.4148 -25925.326 49641.41 -15284.933 -79.726771 -29005.234 -68.530079 + 30 3.461967 -4.8079248 0.013888863 0.31895667 0 0 0.33284554 -4.423482 8616.211 40027.877 -31134.295 16291.126 72.510013 23088.238 51.407946 + 40 4.2181367 -5.0535921 0.0099009766 0.55796811 0 0 0.56786908 -4.4228557 24239.885 -5761.6967 62095.735 15576.675 -76.240192 -33057.385 -58.850871 + 50 5.216657 -4.8012751 0.0053003148 0.29489399 0 0 0.30019431 -4.4233315 17728.056 44785.731 -21215.714 28613.715 66.24671 20292.137 51.010856 + 60 9.45101 -5.0818046 0.0043357361 0.5118733 0 0 0.51620903 -4.4247372 16893.135 -15068.961 50111.11 13824.77 -75.966047 -34809.168 -52.83183 + 70 10.385926 -4.8250769 0.022572262 0.22235766 0 0 0.24492992 -4.4253547 -1117.3665 19070.918 -36063.612 11648.813 61.067533 25754.59 53.919881 + 80 12.797691 -5.123735 0.023756795 0.48275385 0 0 0.50651065 -4.4264869 -6491.9826 -28436.037 20681.908 -14176.121 -64.024669 -35737.052 -52.583533 + 90 12.569481 -4.8303379 0.060369422 0.15670502 0 0 0.21707444 -4.4259273 -16762.536 1720.5855 -47624.986 -6793.7441 59.966729 30024.566 52.339671 + 100 17.750788 -5.1195235 0.039885925 0.38711474 0 0 0.42700067 -4.4279642 -10817.92 -21833.456 4186.8301 -18211.329 -43.11086 -32664.671 -41.508916 +Loop time of 0.0160927 on 4 procs for 100 steps with 6 atoms + +Performance: 536.891 ns/day, 0.045 hours/ns, 6214.012 timesteps/s +99.7% CPU use with 4 MPI tasks x no OpenMP threads + +AMOEBA timing breakdown: + Init time: 0.000643833 4.58% + Hal time: 0.000105979 0.75% + Mpole time: 0.00070704 5.03% + Induce time: 0.0115637 82.32% + Polar time: 0.00101148 7.20% + Total time: 0.0140469 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.014163 | 0.014289 | 0.01443 | 0.1 | 88.79 +Bond | 1.3072e-05 | 4.8341e-05 | 8.4206e-05 | 0.0 | 0.30 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.00071242 | 0.00081499 | 0.0010064 | 0.0 | 5.06 +Output | 0.00041395 | 0.00049646 | 0.0005516 | 0.0 | 3.08 +Modify | 2.5768e-05 | 3.3385e-05 | 4.7843e-05 | 0.0 | 0.21 +Other | | 0.0004106 | | | 2.55 + +Nlocal: 1.5 ave 3 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 4.5 ave 6 max 3 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 3.75 ave 12 max 0 min +Histogram: 2 0 1 0 0 0 0 0 0 1 + +Total # of neighbors = 15 +Ave neighs/atom = 2.5 +Ave special neighs/atom = 2 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/amoeba/log.7Jul22.water_dimer.hippo.g++.1 b/examples/amoeba/log.7Jul22.water_dimer.hippo.g++.1 new file mode 100644 index 0000000000..5eaf8cf8a5 --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_dimer.hippo.g++.1 @@ -0,0 +1,151 @@ +LAMMPS (23 Jun 2022) +# water dimer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_dimer.hippo fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (-1.463996 -0.756549 -0.009705) to (0.933234 0.75612 2.935934) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 6 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 4 bonds + reading angles ... + 2 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.007 seconds + +# force field + +pair_style hippo +pair_coeff * * hippo_water.prm hippo_water.key +Reading potential file hippo_water.prm with DATE: 2022-07-05 +Reading potential file hippo_water.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_dimer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +HIPPO force field settings + repulsion: cut 10 taper 8 rscale 0 0 1 1 + qxfer: cut 10 taper 8 mscale 0 0 0.4 1 + dispersion: cut 10 aewald 0 dspscale 0 0 0.4 1 + multipole: cut 10 aewald 0 mscale 0 0 0.4 1 + polar: cut 10 aewald 0 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 0.2 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 1 1 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair hippo, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Proc sub-domain size < neighbor skin, could lead to lost atoms (../domain.cpp:970) + HIPPO group count: 2 +Per MPI rank memory allocation (min/avg/max) = 47.9 | 47.9 | 47.9 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -5.0101954 0.025695395 0.51472748 0 0 0.54042288 -4.4697726 -11875.159 -38149.178 29162.678 -26638.977 -70.63422 -24614.614 -58.505595 + 10 0.75132894 -4.7952077 0.028216017 0.28494196 0 0 0.31315798 -4.4708519 -13243.822 12661.254 -49613.657 -2923.1497 69.449413 29456.684 56.087663 + 20 2.1716525 -5.0036265 0.011809223 0.48875837 0 0 0.50056759 -4.4706925 4371.5298 -22102.532 47044.297 -12243.648 -74.588915 -28903.762 -64.48154 + 30 2.9930198 -4.8261906 0.0091463366 0.30162756 0 0 0.3107739 -4.4708086 9992.4549 41973.539 -20985.339 8415.1715 67.458145 25027.414 40.261795 + 40 3.312268 -4.9802484 0.010400667 0.45076258 0 0 0.46116325 -4.4697189 21565.307 -11602.414 65186.215 10476.902 -83.374203 -33222.094 -64.700001 + 50 4.3187397 -4.8535614 0.0060313545 0.31244652 0 0 0.31847788 -4.4707168 11344.244 45839.35 -21073.749 8438.8954 73.345039 29422.636 43.897876 + 60 4.9127902 -5.0035271 0.0070589202 0.45246538 0 0 0.4595243 -4.4707824 6529.9354 -37107.891 46740.24 9015.2973 -90.41111 -34402.095 -53.57079 + 70 5.3145827 -4.8748857 0.025797484 0.29875503 0 0 0.32455252 -4.4711244 -10208.876 26324.134 -49272.688 -8697.2875 84.479942 36185.667 57.000355 + 80 3.8409793 -5.0262066 0.027669388 0.47104466 0 0 0.49871405 -4.4702464 -9777.1809 -52088.554 28053.855 -6033.4555 -94.607853 -44638.417 -59.108505 + 90 3.0683704 -4.8369716 0.035455716 0.28466932 0 0 0.32012503 -4.4711155 -10626.245 31066.635 -49425.925 -14107.889 87.765958 34632.905 52.101981 + 100 3.5262799 -4.9906817 0.016687539 0.45011301 0 0 0.46680055 -4.4713252 5216.7691 -34991.221 43883.163 6082.1058 -95.830393 -48645.129 -64.784334 +Loop time of 0.00554871 on 1 procs for 100 steps with 6 atoms + +Performance: 1557.118 ns/day, 0.015 hours/ns, 18022.197 timesteps/s +98.4% CPU use with 1 MPI tasks x no OpenMP threads + +HIPPO timing breakdown: + Init time: 0.000115545 2.34% + Repulse time: 0.000625219 12.67% + Disp time: 0.000296056 6.00% + Mpole time: 0.000954451 19.35% + Induce time: 0.00169706 34.40% + Polar time: 0.001079 21.87% + Qxfer time: 0.000160858 3.26% + Total time: 0.0049333 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0049642 | 0.0049642 | 0.0049642 | 0.0 | 89.47 +Bond | 8.7687e-05 | 8.7687e-05 | 8.7687e-05 | 0.0 | 1.58 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 1.8012e-05 | 1.8012e-05 | 1.8012e-05 | 0.0 | 0.32 +Output | 0.00037567 | 0.00037567 | 0.00037567 | 0.0 | 6.77 +Modify | 4.1717e-05 | 4.1717e-05 | 4.1717e-05 | 0.0 | 0.75 +Other | | 6.144e-05 | | | 1.11 + +Nlocal: 6 ave 6 max 6 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 15 ave 15 max 15 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 15 +Ave neighs/atom = 2.5 +Ave special neighs/atom = 2 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/amoeba/log.7Jul22.water_dimer.hippo.g++.4 b/examples/amoeba/log.7Jul22.water_dimer.hippo.g++.4 new file mode 100644 index 0000000000..cccd71a5d6 --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_dimer.hippo.g++.4 @@ -0,0 +1,151 @@ +LAMMPS (23 Jun 2022) +# water dimer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_dimer.hippo fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (-1.463996 -0.756549 -0.009705) to (0.933234 0.75612 2.935934) + 2 by 1 by 2 MPI processor grid + reading atoms ... + 6 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 4 bonds + reading angles ... + 2 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.008 seconds + +# force field + +pair_style hippo +pair_coeff * * hippo_water.prm hippo_water.key +Reading potential file hippo_water.prm with DATE: 2022-07-05 +Reading potential file hippo_water.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_dimer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +HIPPO force field settings + repulsion: cut 10 taper 8 rscale 0 0 1 1 + qxfer: cut 10 taper 8 mscale 0 0 0.4 1 + dispersion: cut 10 aewald 0 dspscale 0 0 0.4 1 + multipole: cut 10 aewald 0 mscale 0 0 0.4 1 + polar: cut 10 aewald 0 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 0.2 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 1 1 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair hippo, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Proc sub-domain size < neighbor skin, could lead to lost atoms (../domain.cpp:970) + HIPPO group count: 2 +Per MPI rank memory allocation (min/avg/max) = 47.91 | 48.04 | 48.18 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -5.0101954 0.025695395 0.51472748 0 0 0.54042288 -4.4697726 -11875.159 -38149.178 29162.678 -26638.977 -70.63422 -24614.614 -58.505595 + 10 0.75132894 -4.7952077 0.028216017 0.28494196 0 0 0.31315798 -4.4708519 -13243.822 12661.254 -49613.657 -2923.1497 69.449413 29456.684 56.087663 + 20 2.1716525 -5.0036265 0.011809223 0.48875837 0 0 0.50056759 -4.4706925 4371.5298 -22102.532 47044.297 -12243.648 -74.588915 -28903.762 -64.48154 + 30 2.9930198 -4.8261906 0.0091463366 0.30162756 0 0 0.3107739 -4.4708086 9992.4549 41973.539 -20985.339 8415.1715 67.458145 25027.414 40.261795 + 40 3.312268 -4.9802484 0.010400667 0.45076258 0 0 0.46116325 -4.4697189 21565.307 -11602.414 65186.215 10476.902 -83.374203 -33222.094 -64.700001 + 50 4.3187397 -4.8535614 0.0060313545 0.31244652 0 0 0.31847788 -4.4707168 11344.244 45839.35 -21073.749 8438.8954 73.345039 29422.636 43.897876 + 60 4.9127902 -5.0035271 0.0070589202 0.45246538 0 0 0.4595243 -4.4707824 6529.9354 -37107.891 46740.24 9015.2973 -90.41111 -34402.095 -53.57079 + 70 5.3145827 -4.8748857 0.025797484 0.29875503 0 0 0.32455252 -4.4711244 -10208.876 26324.134 -49272.688 -8697.2875 84.479942 36185.667 57.000355 + 80 3.8409793 -5.0262066 0.027669388 0.47104466 0 0 0.49871405 -4.4702464 -9777.1809 -52088.554 28053.855 -6033.4555 -94.607853 -44638.417 -59.108505 + 90 3.0683704 -4.8369716 0.035455716 0.28466932 0 0 0.32012503 -4.4711155 -10626.245 31066.635 -49425.925 -14107.889 87.765958 34632.905 52.101981 + 100 3.5262799 -4.9906817 0.016687539 0.45011301 0 0 0.46680055 -4.4713252 5216.7691 -34991.221 43883.163 6082.1058 -95.830393 -48645.129 -64.784334 +Loop time of 0.0121417 on 4 procs for 100 steps with 6 atoms + +Performance: 711.596 ns/day, 0.034 hours/ns, 8236.062 timesteps/s +99.4% CPU use with 4 MPI tasks x no OpenMP threads + +HIPPO timing breakdown: + Init time: 0.000597179 5.89% + Repulse time: 0.000498881 4.92% + Disp time: 8.8931e-05 0.88% + Mpole time: 0.000837487 8.26% + Induce time: 0.00727381 71.77% + Polar time: 0.000785393 7.75% + Qxfer time: 4.87313e-05 0.48% + Total time: 0.0101354 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.010257 | 0.010374 | 0.01049 | 0.1 | 85.44 +Bond | 1.2833e-05 | 4.7018e-05 | 8.6931e-05 | 0.0 | 0.39 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0006916 | 0.00076578 | 0.00092404 | 0.0 | 6.31 +Output | 0.00040685 | 0.00049547 | 0.00057258 | 0.0 | 4.08 +Modify | 3.3096e-05 | 3.6004e-05 | 4.4046e-05 | 0.0 | 0.30 +Other | | 0.0004238 | | | 3.49 + +Nlocal: 1.5 ave 3 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 4.5 ave 6 max 3 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 3.75 ave 12 max 0 min +Histogram: 2 0 1 0 0 0 0 0 0 1 + +Total # of neighbors = 15 +Ave neighs/atom = 2.5 +Ave special neighs/atom = 2 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/amoeba/log.7Jul22.water_hexamer.amoeba.g++.1 b/examples/amoeba/log.7Jul22.water_hexamer.amoeba.g++.1 new file mode 100644 index 0000000000..ba9d7c5391 --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_hexamer.amoeba.g++.1 @@ -0,0 +1,146 @@ +LAMMPS (23 Jun 2022) +# water hexamer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_hexamer.amoeba fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (-2.517835 -1.523041 -1.734766) to (2.675716 2.01883 2.220847) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 18 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 12 bonds + reading angles ... + 6 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.007 seconds + +# force field + +pair_style amoeba +pair_coeff * * amoeba_water.prm amoeba_water.key +Reading potential file amoeba_water.prm with DATE: 2022-07-05 +Reading potential file amoeba_water.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_hexamer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +AMOEBA force field settings + hal: cut 10 taper 8 vscale 0 0 1 1 + multipole: cut 10 aewald 0 mscale 0 0 0.4 1 + polar: cut 10 aewald 0 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 1 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 1 1 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair amoeba, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + AMOEBA group count: 6 +Per MPI rank memory allocation (min/avg/max) = 48.28 | 48.28 | 48.28 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -48.469664 1.9820353 2.2499329 0 0 4.2319683 -44.237696 -26322.671 -28303.103 -27669.614 -22995.296 1312.6688 2624.8394 4042.0489 + 10 6.3616471 -46.626437 1.7910812 0.25704063 0 0 2.0481218 -44.255947 -23813.06 -24671.886 -17167.34 -30208.043 -474.208 -8339.5934 -5278.359 + 20 15.149798 -48.177533 1.1130818 2.007499 0 0 3.1205807 -44.289255 -16468.855 -20150.975 -18596.629 -12107.083 885.52697 6320.1867 3064.949 + 30 17.896968 -45.959274 0.54802739 0.19519937 0 0 0.74322676 -44.309141 -4749.0624 -9053.7792 -182.37209 -6721.7499 -2003.7641 -627.56998 -1658.1301 + 40 16.203813 -46.840973 0.1371751 1.5793326 0 0 1.7165077 -44.303357 9267.4858 6108.7966 4116.4548 16028.336 380.03787 8468.0648 4492.3331 + 50 11.584975 -45.166711 0.017120512 0.28622888 0 0 0.30334939 -44.276308 22189.511 21453.083 22339.471 21668.607 150.93139 1059.5253 200.0668 + 60 10.002055 -45.994946 0.037889337 1.1987062 0 0 1.2365956 -44.251509 30944.004 35801.925 19832.696 36241.326 2042.3054 2320.5193 1660.0834 + 70 11.272241 -45.411622 0.07431614 0.51778317 0 0 0.59209931 -44.248316 32055.564 39306.193 30181.52 25601.501 1373.4778 -4501.0686 -2570.4767 + 80 14.011502 -46.081444 0.089688317 1.006928 0 0 1.0966163 -44.274812 25661.838 38836.598 12603.734 24205.867 -867.36437 -4211.9639 -2820.6725 + 90 17.659498 -46.247295 0.21744649 0.82687716 0 0 1.0443237 -44.308098 12101.207 19426.995 14142.311 1046.299 -2157.5418 -2141.2454 -2621.456 + 100 17.630532 -46.788272 0.61811601 0.9654966 0 0 1.5836126 -44.311254 -4455.3587 3961.5737 -11554.095 -7458.8012 -3120.9771 -1532.1706 -1499.0117 +Loop time of 0.0418011 on 1 procs for 100 steps with 18 atoms + +Performance: 206.693 ns/day, 0.116 hours/ns, 2392.284 timesteps/s +99.4% CPU use with 1 MPI tasks x no OpenMP threads + +AMOEBA timing breakdown: + Init time: 0.000326312 0.80% + Hal time: 0.0050371 12.28% + Mpole time: 0.00454501 11.08% + Induce time: 0.0200157 48.79% + Polar time: 0.0110863 27.02% + Total time: 0.0410272 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.041065 | 0.041065 | 0.041065 | 0.0 | 98.24 +Bond | 0.00019979 | 0.00019979 | 0.00019979 | 0.0 | 0.48 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 1.5617e-05 | 1.5617e-05 | 1.5617e-05 | 0.0 | 0.04 +Output | 0.00037937 | 0.00037937 | 0.00037937 | 0.0 | 0.91 +Modify | 6.5901e-05 | 6.5901e-05 | 6.5901e-05 | 0.0 | 0.16 +Other | | 7.527e-05 | | | 0.18 + +Nlocal: 18 ave 18 max 18 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 153 ave 153 max 153 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 153 +Ave neighs/atom = 8.5 +Ave special neighs/atom = 2 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/amoeba/log.7Jul22.water_hexamer.amoeba.g++.4 b/examples/amoeba/log.7Jul22.water_hexamer.amoeba.g++.4 new file mode 100644 index 0000000000..1cbc7797e9 --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_hexamer.amoeba.g++.4 @@ -0,0 +1,147 @@ +LAMMPS (23 Jun 2022) +# water hexamer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_hexamer.amoeba fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (-2.517835 -1.523041 -1.734766) to (2.675716 2.01883 2.220847) + 2 by 1 by 2 MPI processor grid + reading atoms ... + 18 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 12 bonds + reading angles ... + 6 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.008 seconds + +# force field + +pair_style amoeba +pair_coeff * * amoeba_water.prm amoeba_water.key +Reading potential file amoeba_water.prm with DATE: 2022-07-05 +Reading potential file amoeba_water.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_hexamer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +AMOEBA force field settings + hal: cut 10 taper 8 vscale 0 0 1 1 + multipole: cut 10 aewald 0 mscale 0 0 0.4 1 + polar: cut 10 aewald 0 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 1 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 1 1 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair amoeba, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Proc sub-domain size < neighbor skin, could lead to lost atoms (../domain.cpp:970) + AMOEBA group count: 6 +Per MPI rank memory allocation (min/avg/max) = 48.3 | 48.3 | 48.3 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -48.469664 1.9820353 2.2499329 0 0 4.2319683 -44.237696 -26322.671 -28303.103 -27669.614 -22995.296 1312.6688 2624.8394 4042.0489 + 10 6.3616471 -46.626437 1.7910812 0.25704063 0 0 2.0481218 -44.255947 -23813.06 -24671.886 -17167.34 -30208.043 -474.208 -8339.5934 -5278.359 + 20 15.149798 -48.177533 1.1130818 2.007499 0 0 3.1205807 -44.289255 -16468.855 -20150.975 -18596.629 -12107.083 885.52697 6320.1867 3064.949 + 30 17.896968 -45.959274 0.54802739 0.19519937 0 0 0.74322676 -44.309141 -4749.0624 -9053.7792 -182.37209 -6721.7499 -2003.7641 -627.56998 -1658.1301 + 40 16.203813 -46.840973 0.1371751 1.5793326 0 0 1.7165077 -44.303357 9267.4858 6108.7966 4116.4548 16028.336 380.03787 8468.0648 4492.3331 + 50 11.584975 -45.166711 0.017120512 0.28622888 0 0 0.30334939 -44.276308 22189.511 21453.083 22339.471 21668.607 150.93139 1059.5253 200.0668 + 60 10.002055 -45.994946 0.037889337 1.1987062 0 0 1.2365956 -44.251509 30944.004 35801.925 19832.696 36241.326 2042.3054 2320.5193 1660.0834 + 70 11.272241 -45.411622 0.07431614 0.51778317 0 0 0.59209931 -44.248316 32055.564 39306.193 30181.52 25601.501 1373.4778 -4501.0686 -2570.4767 + 80 14.011502 -46.081444 0.089688317 1.006928 0 0 1.0966163 -44.274812 25661.838 38836.598 12603.734 24205.867 -867.36437 -4211.9639 -2820.6725 + 90 17.659498 -46.247295 0.21744649 0.82687716 0 0 1.0443237 -44.308098 12101.207 19426.995 14142.311 1046.299 -2157.5418 -2141.2454 -2621.456 + 100 17.630532 -46.788272 0.61811601 0.9654966 0 0 1.5836126 -44.311254 -4455.3587 3961.5737 -11554.095 -7458.8012 -3120.9771 -1532.1706 -1499.0117 +Loop time of 0.0397428 on 4 procs for 100 steps with 18 atoms + +Performance: 217.398 ns/day, 0.110 hours/ns, 2516.180 timesteps/s +100.0% CPU use with 4 MPI tasks x no OpenMP threads + +AMOEBA timing breakdown: + Init time: 0.000772875 2.05% + Hal time: 0.00114925 3.04% + Mpole time: 0.00316129 8.37% + Induce time: 0.0278156 73.61% + Polar time: 0.0048762 12.90% + Total time: 0.0377876 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.03793 | 0.038002 | 0.038115 | 0.0 | 95.62 +Bond | 6.3821e-05 | 8.0969e-05 | 9.9652e-05 | 0.0 | 0.20 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.00067584 | 0.00085989 | 0.0009896 | 0.0 | 2.16 +Output | 0.00035407 | 0.00040202 | 0.00051789 | 0.0 | 1.01 +Modify | 3.6589e-05 | 4.0916e-05 | 4.417e-05 | 0.0 | 0.10 +Other | | 0.0003569 | | | 0.90 + +Nlocal: 4.5 ave 6 max 3 min +Histogram: 1 0 0 1 0 0 1 0 0 1 +Nghost: 13.5 ave 15 max 12 min +Histogram: 1 0 0 1 0 0 1 0 0 1 +Neighs: 38.25 ave 77 max 9 min +Histogram: 2 0 0 0 0 0 1 0 0 1 + +Total # of neighbors = 153 +Ave neighs/atom = 8.5 +Ave special neighs/atom = 2 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/amoeba/log.7Jul22.water_hexamer.hippo.g++.1 b/examples/amoeba/log.7Jul22.water_hexamer.hippo.g++.1 new file mode 100644 index 0000000000..b94be8930b --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_hexamer.hippo.g++.1 @@ -0,0 +1,150 @@ +LAMMPS (23 Jun 2022) +# water hexamer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_hexamer.hippo fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (-2.517835 -1.523041 -1.734766) to (2.675716 2.01883 2.220847) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 18 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 12 bonds + reading angles ... + 6 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.007 seconds + +# force field + +pair_style hippo +pair_coeff * * hippo_water.prm hippo_water.key +Reading potential file hippo_water.prm with DATE: 2022-07-05 +Reading potential file hippo_water.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_hexamer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +HIPPO force field settings + repulsion: cut 10 taper 8 rscale 0 0 1 1 + qxfer: cut 10 taper 8 mscale 0 0 0.4 1 + dispersion: cut 10 aewald 0 dspscale 0 0 0.4 1 + multipole: cut 10 aewald 0 mscale 0 0 0.4 1 + polar: cut 10 aewald 0 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 0.2 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 1 1 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair hippo, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + HIPPO group count: 6 +Per MPI rank memory allocation (min/avg/max) = 47.84 | 47.84 | 47.84 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -47.362156 1.9820353 1.6634749 0 0 3.6455102 -43.716646 -34513.768 -42206.078 -31383.641 -29951.584 2850.1184 3579.9253 5768.3698 + 10 11.52238 -45.959856 1.53397 0.085100522 0 0 1.6190706 -43.756903 -28644.676 -34867.94 -19324.955 -32842.522 -370.63233 -6452.0859 -4002.3535 + 20 20.237283 -46.772008 0.54762833 1.3835192 0 0 1.9311476 -43.815361 -10546.356 -10116.359 -17063.425 -6393.701 -1166.7608 4243.6327 3493.9596 + 30 20.666374 -45.011106 0.086797459 0.071122604 0 0 0.15792006 -43.805943 13150.762 15882.022 10964.553 10630.278 -6754.7642 -432.29165 -3783.115 + 40 10.639014 -45.430939 0.18926921 0.96410995 0 0 1.1533792 -43.738441 33402.664 41252.58 19726.586 38211.875 -6166.03 6081.5692 1815.7739 + 50 10.992432 -44.741108 0.19575431 0.25851128 0 0 0.45426559 -43.729815 37696.923 41572.466 33299.43 37168.141 -3254.5134 2.9639226 -1017.3669 + 60 19.748633 -45.461264 0.035287281 0.63217389 0 0 0.66746117 -43.793065 26212.839 28825.788 16048.096 31876.925 3504.5461 135.3505 420.28566 + 70 26.129957 -46.022729 0.30434543 0.56770169 0 0 0.87204711 -43.826579 3919.9866 -2755.6905 11500.428 517.54333 5626.9543 -2238.5786 86.305984 + 80 17.768494 -46.309777 1.1680612 0.45551823 0 0 1.6235794 -43.785801 -18335.898 -22168.789 -14488.992 -20048.346 7343.173 -2646.2196 -2525.6625 + 90 8.3822494 -47.063502 2.0182644 0.88875358 0 0 2.9070179 -43.731724 -33693.203 -43487.996 -15178.35 -43214.494 2412.6411 1993.0113 1780.7512 + 100 8.6486333 -46.517402 1.9551958 0.38696887 0 0 2.3421647 -43.736979 -34734.97 -34372.659 -28372.146 -42286.799 226.18821 40.353457 -755.93912 +Loop time of 0.0384281 on 1 procs for 100 steps with 18 atoms + +Performance: 224.836 ns/day, 0.107 hours/ns, 2602.266 timesteps/s +99.7% CPU use with 1 MPI tasks x no OpenMP threads + +HIPPO timing breakdown: + Init time: 0.000296169 0.79% + Repulse time: 0.00605807 16.08% + Disp time: 0.00222186 5.90% + Mpole time: 0.00734879 19.51% + Induce time: 0.0128126 34.02% + Polar time: 0.00749189 19.89% + Qxfer time: 0.00142542 3.78% + Total time: 0.0376635 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.037703 | 0.037703 | 0.037703 | 0.0 | 98.11 +Bond | 0.00016755 | 0.00016755 | 0.00016755 | 0.0 | 0.44 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 2.4711e-05 | 2.4711e-05 | 2.4711e-05 | 0.0 | 0.06 +Output | 0.00038288 | 0.00038288 | 0.00038288 | 0.0 | 1.00 +Modify | 6.4863e-05 | 6.4863e-05 | 6.4863e-05 | 0.0 | 0.17 +Other | | 8.521e-05 | | | 0.22 + +Nlocal: 18 ave 18 max 18 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 153 ave 153 max 153 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 153 +Ave neighs/atom = 8.5 +Ave special neighs/atom = 2 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/amoeba/log.7Jul22.water_hexamer.hippo.g++.4 b/examples/amoeba/log.7Jul22.water_hexamer.hippo.g++.4 new file mode 100644 index 0000000000..aeb3bd7420 --- /dev/null +++ b/examples/amoeba/log.7Jul22.water_hexamer.hippo.g++.4 @@ -0,0 +1,151 @@ +LAMMPS (23 Jun 2022) +# water hexamer with AMOEBA or HIPPO + +units real +boundary s s s + +atom_style amoeba +bond_style class2 +angle_style amoeba +dihedral_style none + +# per-atom properties required by AMOEBA or HIPPO + +fix amtype all property/atom i_amtype ghost yes +fix extra all property/atom i_amgroup d_redID d_pval ghost yes +fix extra2 all property/atom i_polaxe d2_xyzaxis 3 + +# read data file + +read_data data.water_hexamer.hippo fix amtype NULL "Tinker Types" +Reading data file ... + orthogonal box = (-2.517835 -1.523041 -1.734766) to (2.675716 2.01883 2.220847) + 2 by 1 by 2 MPI processor grid + reading atoms ... + 18 atoms + scanning bonds ... + 2 = max bonds/atom + scanning angles ... + 1 = max angles/atom + reading bonds ... + 12 bonds + reading angles ... + 6 angles +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.008 seconds + +# force field + +pair_style hippo +pair_coeff * * hippo_water.prm hippo_water.key +Reading potential file hippo_water.prm with DATE: 2022-07-05 +Reading potential file hippo_water.key with DATE: 2022-07-05 + +special_bonds lj/coul 0.5 0.5 0.5 one/five yes +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0.5 0.5 0.5 + special bond factors coul: 0.5 0.5 0.5 + 2 = max # of 1-2 neighbors + 1 = max # of 1-3 neighbors + 1 = max # of 1-4 neighbors + 2 = max # of 1-5 neighbors + 2 = max # of special neighbors + special bonds CPU = 0.001 seconds + +# thermo output + +compute virial all pressure NULL virial + +thermo_style custom step temp epair ebond eangle edihed eimp emol etotal press c_virial[*] + +#dump 1 all custom 10 dump.water_hexamer id type x y z fx fy fz +#dump_modify 1 sort id + +# dynamics + +fix 1 all nve + +thermo 10 +run 100 +HIPPO force field settings + repulsion: cut 10 taper 8 rscale 0 0 1 1 + qxfer: cut 10 taper 8 mscale 0 0 0.4 1 + dispersion: cut 10 aewald 0 dspscale 0 0 0.4 1 + multipole: cut 10 aewald 0 mscale 0 0 0.4 1 + polar: cut 10 aewald 0 + pscale 0 0 1 1 piscale 0 0 0.5 1 wscale 0.2 1 1 1 d/u scale 0 1 + precondition: cut 4.5 +Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 1 1 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair hippo, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Proc sub-domain size < neighbor skin, could lead to lost atoms (../domain.cpp:970) + HIPPO group count: 6 +Per MPI rank memory allocation (min/avg/max) = 47.86 | 47.86 | 47.86 Mbytes + Step Temp E_pair E_bond E_angle E_dihed E_impro E_mol TotEng Press c_virial[1] c_virial[2] c_virial[3] c_virial[4] c_virial[5] c_virial[6] + 0 0 -47.362156 1.9820353 1.6634749 0 0 3.6455102 -43.716646 -34513.768 -42206.078 -31383.641 -29951.584 2850.1184 3579.9253 5768.3698 + 10 11.52238 -45.959856 1.53397 0.085100522 0 0 1.6190706 -43.756903 -28644.676 -34867.94 -19324.955 -32842.522 -370.63233 -6452.0859 -4002.3535 + 20 20.237283 -46.772008 0.54762833 1.3835192 0 0 1.9311476 -43.815361 -10546.356 -10116.359 -17063.425 -6393.701 -1166.7608 4243.6327 3493.9596 + 30 20.666374 -45.011106 0.086797459 0.071122604 0 0 0.15792006 -43.805943 13150.762 15882.022 10964.553 10630.278 -6754.7642 -432.29165 -3783.115 + 40 10.639014 -45.430939 0.18926921 0.96410995 0 0 1.1533792 -43.738441 33402.664 41252.58 19726.586 38211.875 -6166.03 6081.5692 1815.7739 + 50 10.992432 -44.741108 0.19575431 0.25851128 0 0 0.45426559 -43.729815 37696.923 41572.466 33299.43 37168.141 -3254.5134 2.9639226 -1017.3669 + 60 19.748633 -45.461264 0.035287281 0.63217389 0 0 0.66746117 -43.793065 26212.839 28825.788 16048.096 31876.925 3504.5461 135.3505 420.28566 + 70 26.129957 -46.022729 0.30434543 0.56770169 0 0 0.87204711 -43.826579 3919.9866 -2755.6905 11500.428 517.54333 5626.9543 -2238.5786 86.305984 + 80 17.768494 -46.309777 1.1680612 0.45551823 0 0 1.6235794 -43.785801 -18335.898 -22168.789 -14488.992 -20048.346 7343.173 -2646.2196 -2525.6625 + 90 8.3822494 -47.063502 2.0182644 0.88875358 0 0 2.9070179 -43.731724 -33693.203 -43487.996 -15178.35 -43214.494 2412.6411 1993.0113 1780.7512 + 100 8.6486333 -46.517402 1.9551958 0.38696887 0 0 2.3421647 -43.736979 -34734.97 -34372.659 -28372.146 -42286.799 226.18821 40.353457 -755.93912 +Loop time of 0.0332539 on 4 procs for 100 steps with 18 atoms + +Performance: 259.819 ns/day, 0.092 hours/ns, 3007.165 timesteps/s +99.4% CPU use with 4 MPI tasks x no OpenMP threads + +HIPPO timing breakdown: + Init time: 0.000776397 2.52% + Repulse time: 0.00298646 9.69% + Disp time: 0.000570048 1.85% + Mpole time: 0.00370735 12.02% + Induce time: 0.0186844 60.59% + Polar time: 0.00372843 12.09% + Qxfer time: 0.000377474 1.22% + Total time: 0.0308356 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.030832 | 0.031056 | 0.031379 | 0.1 | 93.39 +Bond | 7.9467e-05 | 9.2634e-05 | 0.00010651 | 0.0 | 0.28 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.00073586 | 0.0011119 | 0.001379 | 0.8 | 3.34 +Output | 0.00045718 | 0.00052546 | 0.00061508 | 0.0 | 1.58 +Modify | 3.7723e-05 | 5.1869e-05 | 6.5238e-05 | 0.0 | 0.16 +Other | | 0.000416 | | | 1.25 + +Nlocal: 4.5 ave 6 max 3 min +Histogram: 1 0 0 1 0 0 1 0 0 1 +Nghost: 13.5 ave 15 max 12 min +Histogram: 1 0 0 1 0 0 1 0 0 1 +Neighs: 38.25 ave 77 max 9 min +Histogram: 2 0 0 0 0 0 1 0 0 1 + +Total # of neighbors = 153 +Ave neighs/atom = 8.5 +Ave special neighs/atom = 2 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/amoeba/ubiquitin.xyz b/examples/amoeba/ubiquitin.xyz new file mode 100644 index 0000000000..95b82e9793 --- /dev/null +++ b/examples/amoeba/ubiquitin.xyz @@ -0,0 +1,9738 @@ + 9737 UBIQUITIN (AMOEBA PROTEIN + 2835 WATERS) + 1 N 9.963103 5.604761 0.008413 234 2 5 6 7 + 2 CA 9.595854 5.616857 -1.387669 8 1 3 8 9 + 3 C 8.190092 6.079015 -1.537478 9 2 4 20 + 4 O 7.228002 5.276741 -1.343729 11 3 + 5 H 9.248539 5.324856 0.671238 235 1 + 6 H 10.310756 6.543175 0.309331 235 1 + 7 H 10.709289 4.952168 0.170763 235 1 + 8 H 10.342605 6.385672 -1.876827 12 2 + 9 C 9.777424 4.134312 -1.928716 178 2 10 13 14 + 10 C 9.485635 3.817581 -3.412559 180 9 11 15 16 + 11 S 10.117567 2.116666 -3.905314 182 10 12 + 12 C 9.214556 1.102048 -2.698793 183 11 17 18 19 + 13 H 8.995937 3.481218 -1.313618 179 9 + 14 H 10.813555 3.756529 -1.729292 179 9 + 15 H 10.074410 4.479912 -4.109344 181 10 + 16 H 8.425285 3.844015 -3.623677 181 10 + 17 H 9.476005 1.466410 -1.683717 184 12 + 18 H 9.531462 0.065851 -2.728696 184 12 + 19 H 8.157703 1.221346 -2.837348 184 12 + 20 N 8.075651 7.407997 -1.589694 7 3 21 24 + 21 CA 6.846787 8.085212 -1.711474 8 20 22 25 26 + 22 C 6.189365 7.484141 -3.005186 9 21 23 37 + 23 O 6.734597 7.675309 -4.068223 11 22 + 24 HN 8.951370 7.929371 -1.808185 10 20 + 25 H 6.170991 7.786742 -0.821099 12 21 + 26 C 7.045430 9.684350 -1.731240 170 21 27 31 32 + 27 C 5.783147 10.543682 -1.755861 172 26 28 33 34 + 28 C 4.878227 10.489051 -3.011941 174 27 29 30 + 29 O 5.100354 11.293553 -3.954911 175 28 + 30 N 3.787647 9.697542 -2.965312 176 28 35 36 + 31 H 7.774130 9.919050 -2.476360 171 26 + 32 H 7.651586 10.027873 -0.831299 171 26 + 33 H 6.211664 11.592747 -1.874653 173 27 + 34 H 5.241990 10.447103 -0.794638 173 27 + 35 HN 3.649816 9.134508 -2.112027 177 30 + 36 HN 3.185263 9.534971 -3.811678 177 30 + 37 N 5.036494 6.768214 -2.882880 7 22 38 41 + 38 CA 4.174197 6.305367 -3.990075 8 37 39 42 43 + 39 C 2.728098 6.643573 -3.679890 9 38 40 56 + 40 O 2.485580 7.278505 -2.662964 11 39 + 41 HN 4.569007 6.922928 -2.037115 10 37 + 42 H 4.411152 6.930990 -4.873795 12 38 + 43 C 4.308955 4.772244 -4.223706 25 38 44 45 47 + 44 C 3.611944 3.837131 -3.115456 29 43 46 48 49 + 45 C 5.819814 4.327532 -4.394409 27 43 50 51 52 + 46 C 3.741844 2.375632 -3.462760 31 44 53 54 55 + 47 H 3.791883 4.511448 -5.208449 26 43 + 48 H 2.547744 4.084411 -3.073934 30 44 + 49 H 4.014866 4.138283 -2.115089 30 44 + 50 H 6.389594 4.495961 -3.449963 28 45 + 51 H 6.367709 4.976173 -5.128547 28 45 + 52 H 5.908880 3.195479 -4.756566 28 45 + 53 H 3.393827 2.185310 -4.536109 32 46 + 54 H 3.102312 1.694874 -2.887955 32 46 + 55 H 4.760146 2.000072 -3.426085 32 46 + 56 N 1.684147 6.367185 -4.575190 7 39 57 60 + 57 CA 0.304736 6.655628 -4.231748 8 56 58 61 62 + 58 C -0.626185 5.414986 -4.519968 9 57 59 76 + 59 O -0.188430 4.481000 -5.239972 11 58 + 60 HN 1.811341 5.682101 -5.345446 10 56 + 61 H 0.263980 6.686032 -3.118862 12 57 + 62 C -0.297187 7.876289 -4.967331 64 57 63 69 70 + 63 C 0.656467 9.081574 -5.199077 66 62 64 65 + 64 C 1.564880 9.231158 -6.344247 67 63 66 71 + 65 C 0.518242 10.180719 -4.311011 67 63 67 72 + 66 C 2.254905 10.428397 -6.564398 69 64 68 73 + 67 C 1.266077 11.295338 -4.552651 69 65 68 74 + 68 C 2.142006 11.455092 -5.583064 71 66 67 75 + 69 H -1.140556 8.280905 -4.296048 65 62 + 70 H -0.810414 7.566064 -5.884866 65 62 + 71 H 1.670266 8.406033 -7.077975 68 64 + 72 H -0.165699 10.178758 -3.490791 68 65 + 73 H 2.904650 10.539850 -7.451626 70 66 + 74 H 1.204400 12.095766 -3.710976 70 67 + 75 H 2.760015 12.463610 -5.750178 72 68 + 76 N -1.919463 5.547799 -4.105657 7 58 77 80 + 77 CA -3.045010 4.631011 -4.380927 8 76 78 81 82 + 78 C -4.206191 5.442932 -4.923986 9 77 79 92 + 79 O -4.727895 6.299647 -4.174539 11 78 + 80 HN -2.189033 6.454364 -3.576690 10 76 + 81 H -2.684685 3.831124 -5.207150 12 77 + 82 C -3.444418 3.799031 -3.130661 15 77 83 84 85 + 83 C -4.638073 2.796605 -3.426800 17 82 86 87 88 + 84 C -2.172636 3.025555 -2.692910 17 82 89 90 91 + 85 H -3.669812 4.518348 -2.290701 16 82 + 86 H -4.428840 2.137544 -4.376863 18 83 + 87 H -5.534299 3.436652 -3.543248 18 83 + 88 H -4.789185 2.176325 -2.494354 18 83 + 89 H -1.667617 3.522055 -1.846039 18 84 + 90 H -1.416445 2.861139 -3.471806 18 84 + 91 H -2.413054 1.986644 -2.328475 18 84 + 92 N -4.550673 5.196731 -6.274871 7 78 93 96 + 93 CA -5.820881 5.714130 -6.792896 8 92 94 97 98 + 94 C -6.901797 4.657281 -6.559257 9 93 95 114 + 95 O -6.707326 3.538748 -6.976520 11 94 + 96 HN -4.247417 4.330282 -6.731623 10 92 + 97 H -6.018895 6.628095 -6.157881 12 93 + 98 C -5.786797 6.030910 -8.386430 185 93 99 103 104 + 99 C -7.031253 6.879587 -8.916479 187 98 100 105 106 + 100 C -6.946629 7.328107 -10.409836 189 99 101 107 108 + 101 C -6.782582 6.224048 -11.537592 191 100 102 109 110 + 102 N -6.791739 6.775547 -12.918869 193 101 111 112 113 + 103 H -5.650656 5.119864 -8.896094 186 98 + 104 H -4.894535 6.632893 -8.720825 186 98 + 105 H -7.188700 7.743879 -8.218707 188 99 + 106 H -7.899583 6.225721 -8.760371 188 99 + 107 H -5.985957 7.986594 -10.510771 190 100 + 108 H -7.792216 7.961266 -10.639952 190 100 + 109 H -7.448325 5.332480 -11.448147 192 101 + 110 H -5.800269 5.666745 -11.336805 192 101 + 111 HN -5.991776 7.279636 -13.178670 194 102 + 112 HN -7.621495 7.404931 -13.058222 194 102 + 113 HN -6.983504 6.085979 -13.693073 194 102 + 114 N -8.069363 5.037776 -5.939754 7 94 115 118 + 115 CA -9.334342 4.259320 -5.870215 33 114 116 119 120 + 116 C -10.106400 4.390027 -7.235984 9 115 117 128 + 117 O -9.678872 5.138872 -8.064541 11 116 + 118 HN -8.065341 5.988423 -5.484094 10 114 + 119 H -9.057846 3.167719 -5.835950 12 115 + 120 C -10.266512 4.660993 -4.660344 38 115 121 122 123 + 121 OH -10.534149 6.114601 -4.706758 42 120 124 + 122 C -9.745157 4.269631 -3.191928 40 120 125 126 127 + 123 H -11.263017 4.131676 -4.781723 39 120 + 124 HO -9.713871 6.599029 -4.391676 43 121 + 125 H -9.116723 4.972749 -2.508566 41 122 + 126 H -9.168034 3.361328 -3.330127 41 122 + 127 H -10.522836 3.973872 -2.499829 41 122 + 128 N -11.233860 3.687218 -7.306137 7 116 129 132 + 129 CA -12.200193 3.653311 -8.374575 8 128 130 133 134 + 130 C -13.220650 4.788154 -8.169599 9 129 131 147 + 131 O -13.737841 5.372844 -9.165473 11 130 + 132 HN -11.460538 2.988105 -6.540266 10 128 + 133 H -11.637688 3.949136 -9.406377 12 129 + 134 C -12.914543 2.186268 -8.423705 19 129 135 138 139 + 135 C -12.050888 0.859767 -8.189045 21 134 136 137 140 + 136 C -12.754212 -0.443223 -8.481524 23 135 141 142 143 + 137 C -10.761720 0.854864 -8.962914 23 135 144 145 146 + 138 H -13.378342 2.203311 -9.441391 20 134 + 139 H -13.731396 2.273518 -7.697910 20 134 + 140 H -11.784384 0.837730 -7.097584 22 135 + 141 H -12.178199 -1.386252 -8.511713 24 136 + 142 H -13.030296 -0.361584 -9.541647 24 136 + 143 H -13.665537 -0.574300 -7.888432 24 136 + 144 H -10.907312 0.853311 -10.020395 24 137 + 145 H -10.166450 -0.087962 -8.625340 24 137 + 146 H -10.131655 1.808766 -8.717686 24 137 + 147 N -13.463568 5.196109 -6.936262 7 130 148 151 + 148 CA -14.321525 6.337206 -6.640073 33 147 149 152 153 + 149 C -13.602436 7.749411 -6.813046 9 148 150 161 + 150 O -14.285287 8.753093 -7.068264 11 149 + 151 HN -13.224563 4.686522 -6.108713 10 147 + 152 H -15.116925 6.447123 -7.471724 12 148 + 153 C -15.130805 6.126006 -5.300665 38 148 154 155 156 + 154 OH -14.245708 5.884444 -4.246742 42 153 157 + 155 C -16.085304 4.854769 -5.370470 40 153 158 159 160 + 156 H -15.668029 7.073411 -5.139360 39 153 + 157 HO -13.863528 6.745981 -4.031876 43 154 + 158 H -16.931480 4.985645 -6.114646 41 155 + 159 H -16.633409 4.776539 -4.392875 41 155 + 160 H -15.447009 3.996959 -5.527187 41 155 + 161 N -12.255780 7.804163 -6.773987 1 149 162 165 + 162 CA -11.475822 9.029360 -6.961862 2 161 163 166 167 + 163 C -10.482668 9.429993 -5.875126 3 162 164 168 + 164 O -9.615012 10.212498 -6.150085 5 163 + 165 HN -11.791631 6.946169 -6.476230 4 161 + 166 H -10.849439 8.869550 -7.825758 6 162 + 167 H -12.070294 9.912283 -7.089554 6 162 + 168 N -10.710240 8.937450 -4.551265 7 163 169 172 + 169 CA -9.795182 9.275190 -3.486218 8 168 170 173 174 + 170 C -8.432503 8.733444 -3.903900 9 169 171 190 + 171 O -8.256860 7.497941 -4.141932 11 170 + 172 HN -11.613017 8.458729 -4.378865 10 168 + 173 H -9.758201 10.415786 -3.586213 12 169 + 174 C -10.207682 8.847560 -2.068515 185 169 175 179 180 + 175 C -9.468868 9.640494 -0.969458 187 174 176 181 182 + 176 C -9.960726 11.106750 -0.880514 189 175 177 183 184 + 177 C -8.996147 11.882980 0.056845 191 176 178 185 186 + 178 N -9.422979 13.246330 0.389189 193 177 187 188 189 + 179 H -10.025076 7.711214 -1.993654 186 174 + 180 H -11.260829 8.969143 -1.909413 186 174 + 181 H -8.357381 9.561485 -1.037070 188 175 + 182 H -9.831062 9.156523 0.052119 188 175 + 183 H -10.951565 11.152527 -0.421834 190 176 + 184 H -10.025528 11.645570 -1.861235 190 176 + 185 H -7.996392 12.007902 -0.493686 192 177 + 186 H -8.903714 11.241749 1.019391 192 177 + 187 HN -9.372439 13.931515 -0.356496 194 178 + 188 HN -8.869279 13.642636 1.216690 194 178 + 189 HN -10.417962 13.346471 0.725918 194 178 + 190 N -7.417712 9.626751 -3.887457 7 170 191 194 + 191 CA -6.048686 9.319758 -4.265281 33 190 192 195 196 + 192 C -5.195256 9.655954 -3.012996 9 191 193 204 + 193 O -5.383682 10.790154 -2.469855 11 192 + 194 HN -7.536192 10.638944 -3.603417 10 190 + 195 H -5.899497 8.237555 -4.489940 12 191 + 196 C -5.632346 10.139153 -5.558621 38 191 197 198 199 + 197 OH -6.651850 9.845307 -6.610520 42 196 200 + 198 C -4.307909 9.733791 -6.252541 40 196 201 202 203 + 199 H -5.546957 11.240303 -5.391676 39 196 + 200 HO -7.479446 10.239776 -6.352124 43 197 + 201 H -4.057722 10.346459 -7.141293 41 198 + 202 H -4.216816 8.651918 -6.414903 41 198 + 203 H -3.513698 9.947681 -5.542599 41 198 + 204 N -4.487761 8.698281 -2.479508 7 192 205 208 + 205 CA -3.941682 8.719222 -1.101838 8 204 206 209 210 + 206 C -2.471661 8.338585 -1.186861 9 205 207 223 + 207 O -2.098577 7.337481 -1.795680 11 206 + 208 HN -4.371107 7.734334 -2.775858 10 204 + 209 H -3.985516 9.750968 -0.737465 12 205 + 210 C -4.697768 7.852820 -0.064484 25 205 211 212 214 + 211 C -4.708913 6.295035 -0.438982 29 210 213 215 216 + 212 C -6.123205 8.316839 0.212195 27 210 217 218 219 + 213 C -5.620903 5.382941 0.512646 31 211 220 221 222 + 214 H -4.057362 7.911400 0.860642 26 210 + 215 H -3.677285 5.838816 -0.381317 30 211 + 216 H -5.097879 6.136516 -1.456773 30 211 + 217 H -6.958332 8.061232 -0.486042 28 212 + 218 H -6.120750 9.492014 0.254246 28 212 + 219 H -6.463653 8.052122 1.235972 28 212 + 220 H -6.708420 5.577546 0.309314 32 213 + 221 H -5.353714 5.729677 1.560568 32 213 + 222 H -5.449967 4.323238 0.397743 32 213 + 223 N -1.597496 9.147378 -0.364603 7 206 224 227 + 224 CA -0.135695 9.298656 -0.268971 33 223 225 228 229 + 225 C 0.407838 8.259131 0.762984 9 224 226 237 + 226 O -0.125678 8.256398 1.864934 11 225 + 227 HN -2.061490 9.698188 0.341812 10 223 + 228 H 0.291486 9.062300 -1.222284 12 224 + 229 C 0.359683 10.712136 0.203065 38 224 230 231 232 + 230 OH -0.513535 11.802509 -0.157986 42 229 233 + 231 C 1.661404 11.100111 -0.496546 40 229 234 235 236 + 232 H 0.487415 10.613723 1.289529 39 229 + 233 HO -0.894682 12.193680 0.613553 43 230 + 234 H 1.924560 12.095482 -0.170163 41 231 + 235 H 1.527624 11.126022 -1.612055 41 231 + 236 H 2.524096 10.406872 -0.273554 41 231 + 237 N 1.458638 7.533911 0.367476 7 225 238 241 + 238 CA 2.250809 6.653110 1.155065 8 237 239 242 243 + 239 C 3.767103 6.967571 0.917085 9 238 240 256 + 240 O 4.150469 7.414883 -0.134304 11 239 + 241 HN 1.800100 7.626011 -0.603649 10 237 + 242 H 1.984132 6.848652 2.199761 12 238 + 243 C 1.985932 5.208560 0.673411 19 238 244 247 248 + 244 C 0.499001 4.775460 0.950638 21 243 245 246 249 + 245 C 0.302449 3.382258 0.307039 23 244 250 251 252 + 246 C 0.318833 4.590905 2.467625 23 244 253 254 255 + 247 H 2.620352 4.479840 1.153057 20 243 + 248 H 2.170192 5.140748 -0.421262 20 243 + 249 H -0.141837 5.460611 0.448133 22 244 + 250 H -0.765868 3.158508 0.337643 24 245 + 251 H 0.881511 2.586559 0.876485 24 245 + 252 H 0.635114 3.382961 -0.727832 24 245 + 253 H 0.991181 3.809378 2.860913 24 246 + 254 H -0.810422 4.305406 2.724253 24 246 + 255 H 0.495432 5.527245 3.085307 24 246 + 256 N 4.493868 6.668739 2.051013 7 239 257 260 + 257 CA 5.977452 6.826187 2.081574 8 256 258 261 262 + 258 C 6.574479 5.473810 2.542943 9 257 259 271 + 259 O 7.539223 5.437653 3.331859 11 258 + 260 HN 4.101906 6.335458 2.916399 10 256 + 261 H 6.354091 6.853748 1.027532 12 257 + 262 C 6.470006 8.005228 2.962480 156 257 263 267 268 + 263 C 6.523156 9.385148 2.265263 158 262 264 269 270 + 264 C 6.660389 10.531119 3.176475 160 263 265 266 + 265 O 7.818717 10.946737 3.494784 161 264 + 266 O 5.641727 11.057335 3.676704 161 264 + 267 H 7.426538 7.872313 3.417016 157 262 + 268 H 5.818378 7.862045 3.841666 157 262 + 269 H 5.562369 9.490953 1.596644 159 263 + 270 H 7.296811 9.382149 1.478494 159 263 + 271 N 6.080956 4.317668 2.172588 7 258 272 275 + 272 CA 6.395184 2.914756 2.360428 8 271 273 276 277 + 273 C 7.756330 2.626277 1.796235 9 272 274 287 + 274 O 8.336336 3.369371 0.946953 11 273 + 275 HN 5.286582 4.431259 1.580017 10 271 + 276 H 6.544551 2.775770 3.450173 12 272 + 277 C 5.254270 2.029334 1.828047 15 272 278 279 280 + 278 C 3.855516 2.115298 2.663831 17 277 281 282 283 + 279 C 4.878513 2.275077 0.297641 17 277 284 285 286 + 280 H 5.659978 0.937168 1.997214 16 277 + 281 H 3.988977 1.632132 3.721066 18 278 + 282 H 3.154094 1.488836 2.202125 18 278 + 283 H 3.518024 3.208135 2.707458 18 278 + 284 H 4.391723 3.244259 0.119355 18 279 + 285 H 4.197460 1.515591 -0.214541 18 279 + 286 H 5.820024 2.281294 -0.232189 18 279 + 287 N 8.439412 1.532076 2.306730 7 273 288 291 + 288 CA 9.766718 1.104522 1.810124 8 287 289 292 293 + 289 C 9.609640 -0.146333 0.921245 9 288 290 302 + 290 O 8.595667 -0.823014 1.060066 11 289 + 291 HN 7.906057 0.817610 2.769235 10 287 + 292 H 10.402589 1.878772 1.340853 12 288 + 293 C 10.623245 0.647963 3.024596 156 288 294 298 299 + 294 C 11.099332 1.681203 4.040791 158 293 295 300 301 + 295 C 12.471923 2.276164 3.591284 160 294 296 297 + 296 O 13.467460 1.635754 4.022756 161 295 + 297 O 12.447093 3.241865 2.732975 161 295 + 298 H 11.464087 0.045385 2.632771 157 293 + 299 H 10.035308 -0.165388 3.606999 157 293 + 300 H 11.283249 1.117646 5.042705 159 294 + 301 H 10.341030 2.493195 4.310498 159 294 + 302 N 10.649425 -0.442448 0.039711 53 289 303 309 + 303 CA 10.721650 -1.691625 -0.719097 54 302 304 306 307 + 304 C 10.688929 -3.019270 0.171469 55 303 305 316 + 305 O 10.136780 -4.017164 -0.258017 56 304 + 306 H 9.824725 -1.703322 -1.331408 57 303 + 307 C 12.047830 -1.730137 -1.583772 58 303 308 310 311 + 308 C 12.438841 -0.254934 -1.430560 60 307 309 312 313 + 309 C 11.880473 0.342410 -0.130781 62 302 308 314 315 + 310 H 11.910217 -2.011767 -2.680814 59 307 + 311 H 12.740874 -2.453727 -1.101295 59 307 + 312 H 12.084519 0.391154 -2.320456 61 308 + 313 H 13.550172 -0.165266 -1.345695 61 308 + 314 H 11.730541 1.403440 -0.268593 63 309 + 315 H 12.568702 0.262680 0.684216 63 309 + 316 N 11.185418 -2.821488 1.401909 7 304 317 320 + 317 CA 11.478487 -3.819995 2.417066 33 316 318 321 322 + 318 C 10.240507 -4.133695 3.340195 9 317 319 327 + 319 O 10.437807 -4.944657 4.272068 11 318 + 320 HN 11.675553 -1.939666 1.629182 10 316 + 321 H 11.715305 -4.763029 1.892686 12 317 + 322 C 12.726302 -3.441835 3.258589 34 317 323 324 325 + 323 OH 12.588509 -2.169159 3.871288 36 322 326 + 324 H 13.594515 -3.465914 2.619460 35 322 + 325 H 12.919669 -4.225010 4.041833 35 322 + 326 HO 11.928461 -2.056942 4.572136 37 323 + 327 N 8.989610 -3.538327 3.147788 7 318 328 331 + 328 CA 7.780090 -3.809839 3.903153 8 327 329 332 333 + 329 C 6.830692 -4.723128 3.182411 9 328 330 339 + 330 O 6.843975 -4.931536 1.971249 11 329 + 331 HN 8.790490 -2.959432 2.207143 10 327 + 332 H 8.112743 -4.402734 4.754275 12 328 + 333 C 7.007696 -2.493713 4.325713 140 328 334 337 338 + 334 C 7.757815 -1.793205 5.421557 142 333 335 336 + 335 O 8.301432 -0.683792 5.213313 143 334 + 336 O 8.105449 -2.430264 6.467845 143 334 + 337 H 6.015719 -2.736995 4.787540 141 333 + 338 H 6.870322 -1.705199 3.554568 141 333 + 339 N 5.911537 -5.420074 3.889645 7 329 340 343 + 340 CA 4.985368 -6.339027 3.207488 33 339 341 344 345 + 341 C 3.791981 -5.460118 2.675447 9 340 342 353 + 342 O 3.602436 -4.262217 3.058351 11 341 + 343 HN 5.945002 -5.355465 4.936544 10 339 + 344 H 5.522096 -6.871961 2.401608 12 340 + 345 C 4.403843 -7.437211 4.151447 38 340 346 347 348 + 346 OH 3.984983 -6.837474 5.417872 42 345 349 + 347 C 5.484751 -8.435266 4.460478 40 345 350 351 352 + 348 H 3.543374 -7.871125 3.610585 39 345 + 349 HO 3.626750 -7.635311 5.866975 43 346 + 350 H 5.852794 -8.923165 3.576288 41 347 + 351 H 5.092476 -9.235700 5.230406 41 347 + 352 H 6.347457 -8.009387 5.033245 41 347 + 353 N 3.001520 -6.091562 1.873663 7 341 354 357 + 354 CA 1.770212 -5.563203 1.356920 8 353 355 358 359 + 355 C 0.721356 -5.331197 2.570590 9 354 356 372 + 356 O -0.022158 -4.354859 2.639919 11 355 + 357 HN 3.312873 -6.951353 1.400664 10 353 + 358 H 2.050592 -4.577254 0.922928 12 354 + 359 C 1.071972 -6.339450 0.158527 25 354 360 361 363 + 360 C 1.737761 -5.960287 -1.242592 29 359 362 364 365 + 361 C -0.457848 -6.189077 0.133627 27 359 366 367 368 + 362 C 3.239275 -5.961276 -1.280042 31 360 369 370 371 + 363 H 1.324741 -7.458613 0.269568 26 359 + 364 H 1.479259 -4.859796 -1.271486 30 360 + 365 H 1.361220 -6.531125 -2.132946 30 360 + 366 H -0.903041 -6.854230 -0.657366 28 361 + 367 H -0.782418 -5.132849 -0.071473 28 361 + 368 H -0.922422 -6.573767 1.109124 28 361 + 369 H 3.570026 -6.965706 -1.066579 32 362 + 370 H 3.783014 -5.330759 -0.595789 32 362 + 371 H 3.656696 -5.782972 -2.272787 32 362 + 372 N 0.712989 -6.304521 3.584311 7 355 373 376 + 373 CA 0.052790 -6.261661 4.839148 8 372 374 377 378 + 374 C 0.191347 -4.895606 5.488007 9 373 375 387 + 375 O -0.836031 -4.209177 5.761481 11 374 + 376 HN 1.234822 -7.176952 3.358561 10 372 + 377 H -1.022887 -6.329021 4.691721 12 373 + 378 C 0.463881 -7.420468 5.813551 156 373 379 383 384 + 379 C -0.181732 -7.570702 7.165576 158 378 380 385 386 + 380 C 0.007120 -6.414258 8.102713 160 379 381 382 + 381 O -0.893307 -5.557057 8.345423 161 380 + 382 O 1.071916 -6.451342 8.739901 161 380 + 383 H 1.565739 -7.379644 5.945185 157 378 + 384 H 0.280894 -8.335875 5.233490 157 378 + 385 H 0.223173 -8.515314 7.648734 159 379 + 386 H -1.278836 -7.754581 6.974807 159 379 + 387 N 1.506487 -4.494779 5.655260 7 374 388 391 + 388 CA 2.024384 -3.272083 6.150972 8 387 389 392 393 + 389 C 1.585880 -2.044887 5.407014 9 388 390 401 + 390 O 1.072089 -1.054656 5.937784 11 389 + 391 HN 2.247022 -5.169015 5.381363 10 387 + 392 H 1.726295 -3.077017 7.202284 12 388 + 393 C 3.519486 -3.297907 6.249706 150 388 394 397 398 + 394 C 4.110165 -2.209620 7.106417 152 393 395 396 + 395 O 4.558866 -1.206675 6.574355 153 394 + 396 N 3.975447 -2.353795 8.429417 154 394 399 400 + 397 H 3.926527 -3.312701 5.199577 151 393 + 398 H 3.906987 -4.290859 6.729019 151 393 + 399 HN 3.351621 -3.100412 8.835262 155 396 + 400 HN 4.250233 -1.572327 9.095945 155 396 + 401 N 1.646215 -2.106555 3.995169 7 389 402 405 + 402 CA 0.960547 -1.056203 3.144271 8 401 403 406 407 + 403 C -0.585323 -0.906494 3.471384 9 402 404 417 + 404 O -1.001272 0.221409 3.639638 11 403 + 405 HN 2.076586 -2.917444 3.633085 10 401 + 406 H 1.398083 -0.037330 3.348893 12 402 + 407 C 1.148406 -1.421290 1.565953 15 402 408 409 410 + 408 C 0.469253 -0.291141 0.677094 17 407 411 412 413 + 409 C 2.652804 -1.432319 1.256255 17 407 414 415 416 + 410 H 0.776571 -2.470203 1.403081 16 407 + 411 H -0.604778 -0.059927 0.825468 18 408 + 412 H 0.696071 -0.403531 -0.364402 18 408 + 413 H 0.904174 0.691668 0.985463 18 408 + 414 H 2.642691 -1.597766 0.131660 18 409 + 415 H 3.137894 -2.381059 1.586216 18 409 + 416 H 3.298051 -0.632131 1.598249 18 409 + 417 N -1.305966 -1.988607 3.652565 7 403 418 421 + 418 CA -2.689415 -1.960736 4.065894 8 417 419 422 423 + 419 C -2.947986 -1.384388 5.464246 9 418 420 439 + 420 O -3.956927 -0.687209 5.701440 11 419 + 421 HN -0.971106 -2.849328 3.302467 10 417 + 422 H -3.296900 -1.262385 3.382761 12 418 + 423 C -3.427836 -3.412377 3.961933 185 418 424 428 429 + 424 C -3.574171 -3.928612 2.505721 187 423 425 430 431 + 425 C -3.982306 -5.479470 2.370643 189 424 426 432 433 + 426 C -4.137753 -5.916145 0.907307 191 425 427 434 435 + 427 N -4.842456 -7.207476 0.671588 193 426 436 437 438 + 428 H -4.389394 -3.425752 4.550163 186 423 + 429 H -2.806920 -4.163717 4.552623 186 423 + 430 H -2.578225 -3.744348 2.022778 188 424 + 431 H -4.131610 -3.317335 1.794895 188 424 + 432 H -4.944670 -5.685367 2.884988 190 425 + 433 H -3.219699 -6.072549 2.922384 190 425 + 434 H -3.220948 -5.866340 0.240386 192 426 + 435 H -4.886137 -5.224022 0.371600 192 426 + 436 HN -4.398637 -8.010724 1.108282 194 427 + 437 HN -4.689919 -7.536305 -0.283243 194 427 + 438 HN -5.789366 -7.298894 0.961468 194 427 + 439 N -1.966539 -1.653932 6.352370 7 419 440 443 + 440 CA -1.877059 -1.184384 7.700740 8 439 441 444 445 + 441 C -1.810243 0.352689 7.772527 9 440 442 449 + 442 O -2.478130 1.012858 8.630055 11 441 + 443 HN -1.296883 -2.342673 6.065841 10 439 + 444 H -2.903503 -1.425619 8.306499 12 440 + 445 C -0.719870 -1.906634 8.460693 13 440 446 447 448 + 446 H -0.392867 -1.394748 9.399750 14 445 + 447 H 0.201561 -1.700787 7.931161 14 445 + 448 H -0.824494 -3.016135 8.415257 14 445 + 449 N -1.014819 0.884949 6.873831 7 441 450 453 + 450 CA -0.928004 2.359933 6.752150 8 449 451 454 455 + 451 C -2.242871 3.020975 6.141860 9 450 452 471 + 452 O -2.667293 4.165871 6.497798 11 451 + 453 HN -0.255487 0.266534 6.475305 10 449 + 454 H -0.709751 2.767594 7.790539 12 450 + 455 C 0.185451 2.818592 5.731872 185 450 456 460 461 + 456 C 1.718082 2.368933 6.157097 187 455 457 462 463 + 457 C 1.976397 2.630036 7.634372 189 456 458 464 465 + 458 C 3.272626 1.811866 8.042755 191 457 459 466 467 + 459 N 3.783277 2.119562 9.341763 193 458 468 469 470 + 460 H 0.173809 4.017727 5.824418 186 455 + 461 H -0.110843 2.644975 4.655738 186 455 + 462 H 2.436177 2.906087 5.459782 188 456 + 463 H 1.767963 1.228903 6.013437 188 456 + 464 H 1.214734 2.413689 8.372810 190 457 + 465 H 2.023085 3.725792 7.759055 190 457 + 466 H 4.113891 1.884123 7.336520 192 458 + 467 H 2.915132 0.727469 8.065927 192 458 + 468 HN 3.879659 1.332383 9.938486 194 459 + 469 HN 3.292027 2.768104 9.893226 194 459 + 470 HN 4.657654 2.620898 9.415395 194 459 + 471 N -2.951323 2.325118 5.282730 7 451 472 475 + 472 CA -4.325905 2.722744 4.841568 8 471 473 476 477 + 473 C -5.448579 2.576087 5.910067 9 472 474 490 + 474 O -6.209518 3.521045 6.095847 11 473 + 475 HN -2.521898 1.551084 4.791650 10 471 + 476 H -4.313051 3.829830 4.708638 12 472 + 477 C -4.631289 2.056947 3.491556 25 472 478 479 481 + 478 C -3.597982 2.356462 2.341899 29 477 480 482 483 + 479 C -6.057287 2.415036 2.978562 27 477 484 485 486 + 480 C -3.795503 1.412901 1.156511 31 478 487 488 489 + 481 H -4.671054 0.937191 3.752299 26 477 + 482 H -2.607674 2.121882 2.680974 30 478 + 483 H -3.588639 3.467984 2.067654 30 478 + 484 H -6.778277 2.127584 3.784506 28 479 + 485 H -6.408690 1.672558 2.286363 28 479 + 486 H -6.257305 3.445522 2.543283 28 479 + 487 H -2.827681 1.370598 0.452926 32 480 + 488 H -4.701905 1.709692 0.600596 32 480 + 489 H -3.968868 0.353877 1.535108 32 480 + 490 N -5.427736 1.517434 6.772139 7 473 491 494 + 491 CA -6.281638 1.417159 7.917235 8 490 492 495 496 + 492 C -6.135061 2.619316 8.825463 9 491 493 507 + 493 O -7.083993 3.050483 9.468967 11 492 + 494 HN -4.778187 0.710522 6.592937 10 490 + 495 H -7.347518 1.392997 7.523591 12 491 + 496 C -5.911289 0.089334 8.730160 170 491 497 501 502 + 497 C -6.704804 -0.165892 10.024245 172 496 498 503 504 + 498 C -8.207420 0.060746 9.966819 174 497 499 500 + 499 O -8.766731 0.511631 10.987813 175 498 + 500 N -8.851167 -0.577098 8.977765 176 498 505 506 + 501 H -4.871800 0.035639 8.932959 171 496 + 502 H -6.099650 -0.797867 8.002499 171 496 + 503 H -6.379603 0.602172 10.795373 173 497 + 504 H -6.514059 -1.228415 10.339368 173 497 + 505 HN -8.316985 -1.014678 8.258816 177 500 + 506 HN -9.833090 -0.545963 8.919578 177 500 + 507 N -4.878643 3.139322 9.062914 7 492 508 511 + 508 CA -4.649566 4.328949 9.987955 8 507 509 512 513 + 509 C -4.957775 5.668926 9.413617 9 508 510 519 + 510 O -5.630236 6.445624 10.106188 11 509 + 511 HN -4.081549 2.846329 8.507102 10 507 + 512 H -5.406537 4.281488 10.784832 12 508 + 513 C -3.243945 4.227889 10.546816 140 508 514 517 518 + 514 C -3.087728 5.171882 11.728346 142 513 515 516 + 515 O -4.053576 5.190045 12.600221 143 514 + 516 O -2.058101 5.835943 11.978474 143 514 + 517 H -2.562382 4.521403 9.724738 141 513 + 518 H -2.932032 3.215635 10.964683 141 513 + 519 N -4.878039 5.785317 8.031390 7 509 520 523 + 520 CA -5.310084 7.089332 7.406389 8 519 521 524 525 + 521 C -6.749125 7.172087 6.971101 9 520 522 541 + 522 O -7.405628 8.229614 7.089684 11 521 + 523 HN -4.283642 5.091117 7.531729 10 519 + 524 H -5.274077 7.841191 8.198368 12 520 + 525 C -4.287673 7.649544 6.440392 185 520 526 530 531 + 526 C -4.264316 6.824230 5.084233 187 525 527 532 533 + 527 C -3.348184 7.282872 3.940214 189 526 528 534 535 + 528 C -1.862959 6.984827 4.246876 191 527 529 536 537 + 529 N -1.232990 7.951755 5.175746 193 528 538 539 540 + 530 H -3.353989 7.682751 6.978380 186 525 + 531 H -4.577117 8.665353 6.188031 186 525 + 532 H -5.271336 7.010431 4.645228 188 526 + 533 H -4.183939 5.756196 5.214904 188 526 + 534 H -3.478219 8.414723 3.726542 190 527 + 535 H -3.567163 6.665420 3.125679 190 527 + 536 H -1.380469 7.033451 3.200397 192 528 + 537 H -1.658625 5.960828 4.579387 192 528 + 538 HN -1.681026 8.865239 5.169898 194 529 + 539 HN -0.322832 8.170574 4.811931 194 529 + 540 HN -1.120976 7.690090 6.115363 194 529 + 541 N -7.260673 6.129896 6.365283 7 521 542 545 + 542 CA -8.574938 6.119982 5.731267 8 541 543 546 547 + 543 C -9.544300 5.242356 6.500946 9 542 544 556 + 544 O -10.776630 5.341657 6.228564 11 543 + 545 HN -6.694313 5.297054 6.084394 10 541 + 546 H -8.965369 7.148290 5.836761 12 542 + 547 C -8.593435 5.700600 4.232465 156 542 548 552 553 + 548 C -8.142917 6.797216 3.313691 158 547 549 554 555 + 549 C -8.922098 8.128550 3.290754 160 548 550 551 + 550 O -10.019708 8.282415 2.683597 161 549 + 551 O -8.418377 9.080422 3.962396 161 549 + 552 H -9.637470 5.370747 3.983240 157 547 + 553 H -7.841735 4.791994 4.106244 157 547 + 554 H -7.988334 6.410373 2.240226 159 548 + 555 H -7.108545 7.056748 3.606925 159 548 + 556 N -9.109752 4.287946 7.340476 1 543 557 560 + 557 CA -10.009860 3.416611 8.055823 2 556 558 561 562 + 558 C -10.705939 2.327979 7.248022 3 557 559 563 + 559 O -11.556202 1.623209 7.719085 5 558 + 560 HN -8.134437 4.133993 7.462110 4 556 + 561 H -9.403268 2.909131 8.828371 6 557 + 562 H -10.766691 4.008828 8.630570 6 557 + 563 N -10.238426 2.084832 5.988242 7 558 564 567 + 564 CA -10.830327 1.014314 5.135787 8 563 565 568 569 + 565 C -10.123635 -0.408365 5.490888 9 564 566 582 + 566 O -8.886974 -0.473105 5.573450 11 565 + 567 HN -9.463779 2.473999 5.471519 10 563 + 568 H -11.972825 0.862184 5.405029 12 564 + 569 C -10.573783 1.408499 3.605155 25 564 570 571 573 + 570 C -11.473874 2.659840 3.274246 29 569 572 574 575 + 571 C -10.768674 0.116838 2.675834 27 569 576 577 578 + 572 C -11.386046 3.100490 1.827956 31 570 579 580 581 + 573 H -9.497664 1.719665 3.575726 26 569 + 574 H -11.189235 3.505368 3.971634 30 570 + 575 H -12.466031 2.387035 3.608591 30 570 + 576 H -10.418619 0.285197 1.650312 28 571 + 577 H -11.889425 -0.154704 2.658339 28 571 + 578 H -10.253412 -0.844191 2.935472 28 571 + 579 H -10.489631 3.687189 1.608836 32 572 + 580 H -12.252949 3.808896 1.730836 32 572 + 581 H -11.600834 2.256313 1.164934 32 572 + 582 N -10.904182 -1.495291 5.769914 53 565 583 589 + 583 CA -10.294825 -2.685192 6.266115 54 582 584 586 587 + 584 C -9.362686 -3.411747 5.150144 55 583 585 596 + 585 O -9.822907 -3.806655 4.048145 56 584 + 586 H -9.678597 -2.483780 7.200705 57 583 + 587 C -11.433893 -3.623279 6.740457 58 583 588 590 591 + 588 C -12.623002 -3.096904 5.800687 60 587 589 592 593 + 589 C -12.355474 -1.596314 5.926055 62 582 588 594 595 + 590 H -11.632975 -3.481644 7.836795 59 587 + 591 H -11.185183 -4.717775 6.760900 59 587 + 592 H -13.676441 -3.284634 6.130235 61 588 + 593 H -12.571296 -3.294434 4.749284 61 588 + 594 H -12.712668 -1.093954 6.983468 63 589 + 595 H -12.878080 -1.082331 5.087665 63 589 + 596 N -8.141305 -3.913338 5.553940 53 584 597 603 + 597 CA -7.265296 -4.892156 4.877616 54 596 598 600 601 + 598 C -7.954629 -6.074235 4.106746 55 597 599 610 + 599 O -7.526189 -6.449816 3.017058 56 598 + 600 H -6.579043 -4.462262 4.120819 57 597 + 601 C -6.340090 -5.386881 5.987491 58 597 602 604 605 + 602 C -6.098980 -4.115508 6.793069 60 601 603 606 607 + 603 C -7.478029 -3.499220 6.819358 62 596 602 608 609 + 604 H -5.439953 -5.907262 5.648183 59 601 + 605 H -6.857707 -6.166813 6.603499 59 601 + 606 H -5.359728 -3.456071 6.338156 61 602 + 607 H -5.774381 -4.378426 7.875984 61 602 + 608 H -7.367742 -2.409829 6.921891 63 603 + 609 H -8.055072 -3.868224 7.656931 63 603 + 610 N -9.008919 -6.608446 4.793434 7 598 611 614 + 611 CA -9.678181 -7.733135 4.285369 8 610 612 615 616 + 612 C -10.514900 -7.453854 3.062726 9 611 613 622 + 613 O -10.598980 -8.267352 2.099054 11 612 + 614 HN -9.372380 -6.226786 5.718134 10 610 + 615 H -8.952673 -8.430078 3.800831 12 611 + 616 C -10.385978 -8.504460 5.406790 140 611 617 620 621 + 617 C -11.095963 -9.718862 4.959627 142 616 618 619 + 618 O -12.323382 -9.860403 5.304109 143 617 + 619 O -10.342738 -10.617376 4.418998 143 617 + 620 H -11.151852 -7.927877 5.826167 141 616 + 621 H -9.623560 -8.740853 6.193107 141 616 + 622 N -11.049078 -6.202245 2.940419 7 612 623 626 + 623 CA -11.642018 -5.709443 1.705877 8 622 624 627 628 + 624 C -10.614336 -5.092838 0.713167 9 623 625 639 + 625 O -10.927213 -4.951138 -0.459225 11 624 + 626 HN -11.081256 -5.587042 3.696816 10 622 + 627 H -11.984075 -6.605539 1.087897 12 623 + 628 C -12.768231 -4.705104 1.983069 170 623 629 633 634 + 629 C -13.883829 -5.316250 2.907105 172 628 630 635 636 + 630 C -15.114338 -4.418666 2.924881 174 629 631 632 + 631 O -15.405304 -3.917271 4.026449 175 630 + 632 N -15.906827 -4.358107 1.868346 176 630 637 638 + 633 H -13.285557 -4.431812 1.024843 171 628 + 634 H -12.425058 -3.757312 2.498081 171 628 + 635 H -13.493993 -5.422715 3.976146 173 629 + 636 H -14.172955 -6.317959 2.590855 173 629 + 637 HN -15.643280 -4.761085 0.943045 177 632 + 638 HN -16.887617 -4.110344 2.002905 177 632 + 639 N -9.403516 -4.718671 1.187009 7 624 640 643 + 640 CA -8.418526 -4.190723 0.263736 8 639 641 644 645 + 641 C -7.842430 -5.239112 -0.660532 9 640 642 656 + 642 O -7.328931 -6.262671 -0.141830 11 641 + 643 HN -9.039521 -4.862514 2.100989 10 639 + 644 H -8.913388 -3.436668 -0.331077 12 640 + 645 C -7.143827 -3.503558 1.041637 170 640 646 650 651 + 646 C -7.586437 -2.244888 1.828880 172 645 647 652 653 + 647 C -6.397386 -1.503568 2.513414 174 646 648 649 + 648 O -5.279630 -1.340947 1.984414 175 647 + 649 N -6.649301 -1.020214 3.747788 176 647 654 655 + 650 H -6.392988 -3.161834 0.246377 171 645 + 651 H -6.600747 -4.159050 1.729753 171 645 + 652 H -8.388106 -2.412938 2.663083 173 646 + 653 H -8.063908 -1.554062 1.129126 173 646 + 654 HN -7.599327 -0.974932 4.121687 177 649 + 655 HN -5.824088 -0.762663 4.379842 177 649 + 656 N -7.975739 -5.085940 -2.051099 7 641 657 660 + 657 CA -7.316226 -5.859411 -3.099220 8 656 658 661 662 + 658 C -6.535954 -4.884159 -3.940503 9 657 659 680 + 659 O -7.016650 -4.323287 -4.885061 11 658 + 660 HN -8.649330 -4.421740 -2.442279 10 656 + 661 H -6.552638 -6.577875 -2.549459 12 657 + 662 C -8.293193 -6.657174 -4.000956 205 657 663 669 670 + 663 C -8.951016 -7.920548 -3.205693 207 662 664 671 672 + 664 C -8.120004 -9.231611 -2.981077 209 663 665 673 674 + 665 N -7.224446 -9.317181 -1.844858 211 664 666 675 + 666 C -6.456272 -10.352566 -1.540149 213 665 667 668 + 667 N -6.261777 -11.358001 -2.422146 214 666 676 677 + 668 N -6.102837 -10.524228 -0.288739 214 666 678 679 + 669 H -7.757336 -7.047341 -4.904160 206 662 + 670 H -9.163272 -5.963583 -4.290787 206 662 + 671 H -9.924984 -8.240285 -3.732011 208 663 + 672 H -9.185465 -7.539611 -2.167170 208 663 + 673 H -7.474087 -9.426829 -3.909433 210 664 + 674 H -8.804222 -10.092199 -2.813314 210 664 + 675 HN -7.241497 -8.530605 -1.089185 212 665 + 676 HN -6.629122 -11.380337 -3.383889 215 667 + 677 HN -5.815388 -12.216685 -2.108949 215 667 + 678 HN -6.430516 -9.899279 0.447997 215 668 + 679 HN -5.622476 -11.346782 -0.024111 215 668 + 680 N -5.292942 -4.653337 -3.548836 7 658 681 684 + 681 CA -4.364875 -3.733621 -4.272520 8 680 682 685 686 + 682 C -3.884056 -4.434009 -5.580010 9 681 683 699 + 683 O -3.533279 -5.624908 -5.562725 11 682 + 684 HN -4.823372 -5.284331 -2.925755 10 680 + 685 H -4.946353 -2.808529 -4.509708 12 681 + 686 C -3.111739 -3.306714 -3.368632 19 681 687 690 691 + 687 C -3.512923 -2.415189 -2.103271 21 686 688 689 692 + 688 C -2.187524 -2.216424 -1.223893 23 687 693 694 695 + 689 C -3.958754 -1.022674 -2.555738 23 687 696 697 698 + 690 H -2.365328 -2.709721 -3.991308 20 686 + 691 H -2.556390 -4.179643 -2.968211 20 686 + 692 H -4.305604 -2.923554 -1.464240 22 687 + 693 H -2.062550 -3.144793 -0.620117 24 688 + 694 H -2.115031 -1.291482 -0.497561 24 688 + 695 H -1.342308 -2.211899 -1.862143 24 688 + 696 H -3.107951 -0.478453 -3.033604 24 689 + 697 H -4.161562 -0.403495 -1.628661 24 689 + 698 H -4.885892 -1.120725 -3.194404 24 689 + 699 N -3.856496 -3.700788 -6.722801 7 682 700 703 + 700 CA -3.452842 -4.182763 -8.089520 8 699 701 704 705 + 701 C -2.174020 -3.372729 -8.520048 9 700 702 718 + 702 O -2.088562 -2.114569 -8.327579 11 701 + 703 HN -3.898301 -2.618583 -6.734908 10 699 + 704 H -3.183017 -5.236597 -7.998616 12 700 + 705 C -4.717190 -3.967990 -8.947270 25 700 706 707 709 + 706 C -5.895436 -4.854833 -8.519342 29 705 708 710 711 + 707 C -4.331848 -4.232926 -10.428080 27 705 712 713 714 + 708 C -5.797633 -6.318004 -8.660393 31 706 715 716 717 + 709 H -4.967766 -2.891891 -8.863808 26 705 + 710 H -6.807800 -4.540991 -9.113471 30 706 + 711 H -6.224024 -4.682991 -7.474756 30 706 + 712 H -5.263890 -4.453041 -11.073519 28 707 + 713 H -3.637199 -5.120375 -10.524428 28 707 + 714 H -3.762608 -3.358380 -10.861528 28 707 + 715 H -4.807288 -6.678730 -8.216144 32 708 + 716 H -5.855482 -6.587729 -9.747066 32 708 + 717 H -6.665159 -6.845883 -8.176671 32 708 + 718 N -1.222564 -4.057751 -9.205087 7 701 719 722 + 719 CA -0.136624 -3.415950 -9.921138 8 718 720 723 724 + 720 C 0.070256 -3.976880 -11.394080 9 719 721 738 + 721 O 0.610536 -5.076439 -11.582664 11 720 + 722 HN -1.285072 -5.056820 -9.232195 10 718 + 723 H -0.492377 -2.326993 -10.196345 12 719 + 724 C 1.325233 -3.451838 -9.292553 64 719 725 731 732 + 725 C 2.252979 -2.485580 -9.980048 66 724 726 727 + 726 C 1.821424 -1.150642 -9.963953 67 725 728 733 + 727 C 3.553048 -2.772749 -10.524243 67 725 729 734 + 728 C 2.627188 -0.136222 -10.473998 69 726 730 735 + 729 C 4.271695 -1.747890 -11.019280 69 727 730 736 + 730 C 3.875296 -0.391840 -11.048201 71 728 729 737 + 731 H 1.721374 -4.514315 -9.302918 65 724 + 732 H 1.363608 -3.152679 -8.161531 65 724 + 733 H 0.900203 -0.869990 -9.442890 68 726 + 734 H 4.058655 -3.780788 -10.525233 68 727 + 735 H 2.406689 0.963664 -10.402987 70 728 + 736 H 5.227337 -2.093738 -11.483853 70 729 + 737 H 4.613135 0.382875 -11.414402 72 730 + 738 N -0.469213 -3.209862 -12.373989 7 720 739 742 + 739 CA -0.546701 -3.542255 -13.816781 8 738 740 743 744 + 740 C -1.166423 -4.938647 -14.104553 9 739 741 748 + 741 O -0.706356 -5.741630 -14.896149 11 740 + 742 HN -0.983659 -2.328002 -12.034153 10 738 + 743 H -1.328286 -2.810564 -14.197792 12 739 + 744 C 0.847710 -3.453814 -14.522754 13 739 745 746 747 + 745 H 1.557524 -2.617362 -14.253614 14 744 + 746 H 0.737328 -3.373371 -15.641978 14 744 + 747 H 1.440476 -4.334496 -14.238884 14 744 + 748 N -2.318816 -5.128826 -13.446057 1 740 749 752 + 749 CA -3.143886 -6.311856 -13.378529 2 748 750 753 754 + 750 C -2.861305 -7.249269 -12.148953 3 749 751 755 + 751 O -3.693124 -8.018797 -11.770725 5 750 + 752 HN -2.759876 -4.364139 -12.830293 4 748 + 753 H -4.238045 -6.105454 -13.271863 6 749 + 754 H -3.058170 -6.943948 -14.307195 6 749 + 755 N -1.585886 -7.303614 -11.606121 7 750 756 759 + 756 CA -1.141926 -8.330961 -10.575659 8 755 757 760 761 + 757 C -1.714720 -8.146916 -9.185538 9 756 758 777 + 758 O -1.663641 -7.016934 -8.671236 11 757 + 759 HN -0.991604 -6.486688 -11.627949 10 755 + 760 H -1.432507 -9.342075 -10.930403 12 756 + 761 C 0.441949 -8.242663 -10.513047 185 756 762 766 767 + 762 C 1.115895 -8.804397 -11.798957 187 761 763 768 769 + 763 C 2.659392 -8.559556 -11.862927 189 762 764 770 771 + 764 C 3.525297 -9.477008 -11.044076 191 763 765 772 773 + 765 N 4.928913 -9.126450 -11.049928 193 764 774 775 776 + 766 H 0.930008 -8.793558 -9.704840 186 761 + 767 H 0.820281 -7.154573 -10.383627 186 761 + 768 H 0.726808 -8.346899 -12.740661 188 762 + 769 H 0.816642 -9.905594 -11.898832 188 762 + 770 H 2.766554 -7.492314 -11.630235 190 763 + 771 H 2.990272 -8.709413 -12.938787 190 763 + 772 H 3.480243 -10.547229 -11.281436 192 764 + 773 H 3.142144 -9.394311 -9.993141 192 764 + 774 HN 5.380243 -9.145878 -11.941964 194 765 + 775 HN 5.445854 -9.749951 -10.436478 194 765 + 776 HN 5.117208 -8.202842 -10.744769 194 765 + 777 N -2.261410 -9.249088 -8.588259 7 757 778 781 + 778 CA -2.615396 -9.233499 -7.225533 8 777 779 782 783 + 779 C -1.335567 -8.948793 -6.438233 9 778 780 794 + 780 O -0.279868 -9.480653 -6.690356 11 779 + 781 HN -2.255352 -10.169786 -9.074177 10 777 + 782 H -3.334713 -8.420685 -7.023961 12 778 + 783 C -3.251131 -10.563774 -6.767452 170 778 784 788 789 + 784 C -4.535149 -10.474262 -6.008036 172 783 785 790 791 + 785 C -4.398618 -9.939824 -4.513090 174 784 786 787 + 786 O -5.077126 -8.969050 -4.171499 175 785 + 787 N -3.545204 -10.582628 -3.678241 176 785 792 793 + 788 H -2.536808 -11.208918 -6.196239 171 783 + 789 H -3.428126 -11.121298 -7.678818 171 783 + 790 H -4.970296 -11.490264 -5.897297 173 784 + 791 H -5.221487 -9.801148 -6.555491 173 784 + 792 HN -3.257694 -11.568395 -3.807768 177 787 + 793 HN -3.345020 -10.122941 -2.746863 177 787 + 794 N -1.450039 -8.014788 -5.496898 7 779 795 798 + 795 CA -0.421843 -7.645217 -4.599782 8 794 796 799 800 + 796 C -0.664467 -8.314648 -3.266854 9 795 797 813 + 797 O -1.615751 -8.129338 -2.521866 11 796 + 798 HN -2.373522 -7.541372 -5.361698 10 794 + 799 H 0.525104 -7.914594 -5.012102 12 795 + 800 C -0.361457 -6.082978 -4.502645 19 795 801 804 805 + 801 C 0.013954 -5.455430 -5.851982 21 800 802 803 806 + 802 C 0.049019 -3.957376 -5.617040 23 801 807 808 809 + 803 C 1.428022 -5.979157 -6.227374 23 801 810 811 812 + 804 H 0.435555 -5.929917 -3.703749 20 800 + 805 H -1.370222 -5.613724 -4.112042 20 800 + 806 H -0.783872 -5.696630 -6.601592 22 801 + 807 H -0.918682 -3.670337 -5.057847 24 802 + 808 H -0.051016 -3.481788 -6.645675 24 802 + 809 H 0.927863 -3.578685 -5.148034 24 802 + 810 H 1.304895 -7.011135 -6.510945 24 803 + 811 H 2.256941 -6.075607 -5.425529 24 803 + 812 H 1.836340 -5.473788 -7.076509 24 803 + 813 N 0.008587 -9.534155 -3.176981 7 796 814 817 + 814 CA -0.164006 -10.610017 -2.276861 8 813 815 818 819 + 815 C 0.455793 -10.123372 -0.937523 9 814 816 828 + 816 O 1.609433 -9.732719 -0.855349 11 815 + 817 HN 0.661532 -9.822276 -3.993714 10 813 + 818 H -1.244755 -10.767542 -2.035039 12 814 + 819 C 0.574437 -11.905679 -2.866050 156 814 820 824 825 + 820 C 0.334302 -13.196441 -2.052243 158 819 821 826 827 + 821 C 0.695999 -13.209957 -0.547494 160 820 822 823 + 822 O -0.264686 -13.183024 0.298109 161 821 + 823 O 1.910632 -13.459361 -0.183932 161 821 + 824 H 1.710862 -11.775851 -2.827976 157 819 + 825 H 0.358791 -11.917380 -3.993445 157 819 + 826 H 0.882365 -13.997962 -2.620937 159 820 + 827 H -0.759904 -13.530227 -2.138213 159 820 + 828 N -0.357453 -10.118381 0.156881 7 815 829 832 + 829 CA -0.126858 -9.579761 1.459753 8 828 830 833 834 + 830 C 1.210865 -9.885856 2.201894 9 829 831 840 + 831 O 1.578355 -9.098965 3.087348 11 830 + 832 HN -1.314386 -10.278297 -0.048400 10 828 + 833 H -0.027285 -8.417312 1.375403 12 829 + 834 C -1.323443 -9.874534 2.428279 140 829 835 838 839 + 835 C -2.796658 -9.594191 2.040205 142 834 836 837 + 836 O -3.598938 -8.858694 2.747148 143 835 + 837 O -3.069275 -9.875155 0.835441 143 835 + 838 H -1.081085 -9.350501 3.331576 141 834 + 839 H -1.329114 -10.904878 2.757681 141 834 + 840 N 1.774130 -11.086092 1.992881 1 830 841 844 + 841 CA 2.994120 -11.545091 2.708587 2 840 842 845 846 + 842 C 4.377665 -11.351494 1.943197 3 841 843 847 + 843 O 5.433148 -11.274449 2.624196 5 842 + 844 HN 1.231410 -11.794245 1.490134 4 840 + 845 H 3.087086 -10.934376 3.717487 6 841 + 846 H 2.994182 -12.632411 2.994368 6 841 + 847 N 4.334836 -11.180015 0.643592 7 842 848 851 + 848 CA 5.298784 -10.617673 -0.256284 8 847 849 852 853 + 849 C 5.545436 -9.161422 0.121481 9 848 850 871 + 850 O 4.681756 -8.523001 0.675460 11 849 + 851 HN 3.389098 -11.194600 0.224796 10 847 + 852 H 6.302556 -11.051188 -0.027697 12 848 + 853 C 4.842303 -10.729803 -1.752153 205 848 854 860 861 + 854 C 4.713323 -12.135756 -2.446341 207 853 855 862 863 + 855 C 5.630639 -13.213151 -1.906582 209 854 856 864 865 + 856 N 5.284941 -13.736409 -0.601898 211 855 857 866 + 857 C 6.075566 -13.904284 0.492928 213 856 858 859 + 858 N 7.378324 -13.682239 0.392183 214 857 867 868 + 859 N 5.537046 -14.223213 1.666359 214 857 869 870 + 860 H 5.533031 -10.123030 -2.400529 206 853 + 861 H 3.921522 -10.207566 -1.834451 206 853 + 862 H 4.892154 -12.013932 -3.582693 208 854 + 863 H 3.646766 -12.426728 -2.380513 208 854 + 864 H 6.696275 -12.970967 -1.977244 210 855 + 865 H 5.489916 -14.113101 -2.629388 210 855 + 866 HN 4.272537 -13.863270 -0.494816 212 856 + 867 HN 7.985377 -13.700052 -0.424821 215 858 + 868 HN 7.940470 -13.667672 1.245648 215 858 + 869 HN 4.531855 -14.502228 1.787659 215 859 + 870 HN 6.101298 -14.389973 2.557369 215 859 + 871 N 6.795959 -8.709417 -0.229618 7 849 872 875 + 872 CA 7.151484 -7.314826 -0.044504 33 871 873 876 877 + 873 C 6.772152 -6.618863 -1.344791 9 872 874 885 + 874 O 6.491580 -7.195037 -2.353138 11 873 + 875 HN 7.318576 -9.171415 -1.002843 10 871 + 876 H 6.525833 -6.859535 0.829338 12 872 + 877 C 8.635451 -7.121669 0.159249 38 872 878 879 880 + 878 OH 9.319110 -7.714935 -0.864105 42 877 881 + 879 C 9.122393 -7.761915 1.542275 40 877 882 883 884 + 880 H 8.861381 -6.006942 0.177513 39 877 + 881 HO 10.194312 -7.422946 -0.650194 43 878 + 882 H 10.121810 -7.432113 1.729501 41 879 + 883 H 9.135396 -8.869565 1.459149 41 879 + 884 H 8.446951 -7.382073 2.362364 41 879 + 885 N 6.963090 -5.264591 -1.254451 7 873 886 889 + 886 CA 6.942143 -4.382454 -2.396821 8 885 887 890 891 + 887 C 8.032255 -4.727919 -3.355290 9 886 888 904 + 888 O 7.874094 -4.700903 -4.606280 11 887 + 889 HN 7.090170 -4.902090 -0.328807 10 885 + 890 H 6.016462 -4.502766 -2.986232 12 886 + 891 C 7.011823 -2.893701 -1.884788 19 886 892 895 896 + 892 C 5.619258 -2.371640 -1.146601 21 891 893 894 897 + 893 C 5.747407 -0.832171 -0.836537 23 892 898 899 900 + 894 C 4.304852 -2.632042 -1.932473 23 892 901 902 903 + 895 H 7.232530 -2.302129 -2.742395 20 891 + 896 H 7.918264 -2.789406 -1.123344 20 891 + 897 H 5.453202 -2.916654 -0.186086 22 892 + 898 H 4.887008 -0.456110 -0.323416 24 893 + 899 H 5.896335 -0.152245 -1.791542 24 893 + 900 H 6.670665 -0.673450 -0.254409 24 893 + 901 H 4.181643 -2.082693 -2.916672 24 894 + 902 H 3.442444 -2.383879 -1.330292 24 894 + 903 H 4.282395 -3.716052 -2.117091 24 894 + 904 N 9.237825 -5.055680 -2.844670 7 887 905 908 + 905 CA 10.327506 -5.326158 -3.751795 33 904 906 909 910 + 906 C 10.299712 -6.687552 -4.448700 9 905 907 915 + 907 O 11.020799 -6.802866 -5.444496 11 906 + 908 HN 9.513335 -4.765910 -1.839355 10 904 + 909 H 10.385954 -4.560168 -4.527939 12 905 + 910 C 11.616785 -5.225390 -2.849555 34 905 911 912 913 + 911 OH 11.681845 -6.184576 -1.811464 36 910 914 + 912 H 11.731770 -4.245308 -2.404822 35 910 + 913 H 12.479811 -5.484003 -3.480128 35 910 + 914 HO 12.247855 -6.858858 -2.142458 37 911 + 915 N 9.390895 -7.583629 -4.036730 7 906 916 919 + 916 CA 8.992160 -8.754252 -4.825764 8 915 917 920 921 + 917 C 8.441950 -8.325775 -6.179531 9 916 918 927 + 918 O 8.453951 -9.076338 -7.106677 11 917 + 919 HN 8.901001 -7.489208 -3.091813 10 915 + 920 H 10.003891 -9.220020 -5.018515 12 916 + 921 C 8.053488 -9.759256 -4.183158 140 916 922 925 926 + 922 C 8.636121 -10.682406 -3.119472 142 921 923 924 + 923 O 8.285666 -10.472382 -1.922177 143 922 + 924 O 9.461725 -11.579888 -3.491527 143 922 + 925 H 7.570077 -10.438277 -4.930342 141 921 + 926 H 7.245571 -9.201184 -3.714526 141 921 + 927 N 7.768214 -7.119718 -6.199610 7 917 928 931 + 928 CA 7.005887 -6.638728 -7.315257 8 927 929 932 933 + 929 C 7.851617 -5.582566 -8.113333 9 928 930 948 + 930 O 7.595614 -5.232955 -9.268020 11 929 + 931 HN 7.640444 -6.594365 -5.349903 10 927 + 932 H 6.951423 -7.445998 -8.104085 12 928 + 933 C 5.604718 -6.020286 -6.971603 73 928 934 941 942 + 934 C 4.808080 -7.258931 -6.484822 75 933 935 936 + 935 C 4.589395 -7.461018 -5.120438 76 934 937 943 + 936 C 4.447069 -8.273894 -7.429155 76 934 938 944 + 937 C 3.784056 -8.535024 -4.755017 78 935 939 945 + 938 C 3.579283 -9.310814 -7.055696 78 936 939 946 + 939 C 3.326057 -9.397762 -5.690539 80 937 938 940 + 940 OH 2.439893 -10.287138 -5.195207 81 939 947 + 941 H 5.141919 -5.567564 -7.921399 74 933 + 942 H 5.606057 -5.151689 -6.311062 74 933 + 943 H 4.944905 -6.731723 -4.350204 77 935 + 944 H 4.660459 -8.167346 -8.489786 77 936 + 945 H 3.457378 -8.750277 -3.665145 79 937 + 946 H 3.267954 -10.081994 -7.761989 79 938 + 947 HO 2.186803 -10.747811 -5.996630 82 940 + 948 N 8.902051 -5.011864 -7.407302 7 929 949 952 + 949 CA 9.703612 -3.896573 -7.971331 8 948 950 953 954 + 950 C 8.854605 -2.738907 -8.339936 9 949 951 962 + 951 O 9.065146 -2.145748 -9.384005 11 950 + 952 HN 9.116746 -5.266463 -6.458188 10 948 + 953 H 10.386108 -3.586461 -7.092001 12 949 + 954 C 10.578732 -4.353776 -9.179322 150 949 955 958 959 + 955 C 11.689249 -3.400850 -9.487746 152 954 956 957 + 956 O 11.683048 -2.729553 -10.505813 153 955 + 957 N 12.685159 -3.379988 -8.534891 154 955 960 961 + 958 H 9.859055 -4.483921 -10.059621 151 954 + 959 H 11.053015 -5.363302 -8.978055 151 954 + 960 HN 12.816952 -4.073113 -7.744033 155 957 + 961 HN 13.500082 -2.669172 -8.653591 155 957 + 962 N 7.961974 -2.346899 -7.450123 7 950 963 966 + 963 CA 7.210073 -1.082393 -7.353242 8 962 964 967 968 + 964 C 8.220074 -0.014005 -6.989916 9 963 965 981 + 965 O 8.976625 -0.122583 -6.038982 11 964 + 966 HN 7.839428 -2.859206 -6.569147 10 962 + 967 H 6.707337 -0.850947 -8.383918 12 963 + 968 C 6.030095 -1.285349 -6.242570 25 963 969 970 972 + 969 C 4.899744 -1.930604 -7.085273 29 968 971 973 974 + 970 C 5.645671 -0.002619 -5.492558 27 968 975 976 977 + 971 C 3.850643 -2.639039 -6.295674 31 969 978 979 980 + 972 H 6.419510 -1.908236 -5.417144 26 968 + 973 H 5.364352 -2.708104 -7.784017 30 969 + 974 H 4.483419 -1.167649 -7.800574 30 969 + 975 H 5.004870 -0.066649 -4.602552 28 970 + 976 H 5.129294 0.689353 -6.215366 28 970 + 977 H 6.560668 0.460605 -5.074466 28 970 + 978 H 3.234235 -1.930388 -5.649940 32 971 + 979 H 4.384891 -3.374819 -5.577049 32 971 + 980 H 3.162458 -3.233503 -6.928627 32 971 + 981 N 8.279015 1.096767 -7.735473 7 964 982 985 + 982 CA 9.149500 2.177313 -7.448918 8 981 983 986 987 + 983 C 8.443049 3.455173 -7.091881 9 982 984 998 + 984 O 7.225838 3.588535 -7.314849 11 983 + 985 HN 7.643874 1.078344 -8.517521 10 981 + 986 H 9.726155 1.989811 -6.530547 12 982 + 987 C 10.141562 2.393897 -8.637297 170 982 988 992 993 + 988 C 11.175363 1.278751 -8.856450 172 987 989 994 995 + 989 C 12.297979 1.259017 -7.866598 174 988 990 991 + 990 O 13.426383 1.600621 -8.288936 175 989 + 991 N 12.128586 0.499484 -6.748544 176 989 996 997 + 992 H 10.711669 3.336580 -8.503837 171 987 + 993 H 9.628679 2.543322 -9.607849 171 987 + 994 H 11.602578 1.390889 -9.880921 173 988 + 995 H 10.646349 0.304077 -8.758295 173 988 + 996 HN 11.162328 0.324257 -6.474357 177 991 + 997 HN 12.859952 0.645961 -6.011600 177 991 + 998 N 9.290608 4.442003 -6.647564 7 983 999 1002 + 999 CA 8.811159 5.826111 -6.212163 8 998 1000 1003 1004 + 1000 C 7.909587 6.365352 -7.395189 9 999 1001 1020 + 1001 O 8.277887 6.147537 -8.576688 11 1000 + 1002 HN 10.326040 4.354253 -6.566650 10 998 + 1003 H 8.074366 5.700259 -5.392561 12 999 + 1004 C 9.995835 6.763127 -5.753453 185 999 1005 1009 1010 + 1005 C 11.134989 6.936166 -6.773871 187 1004 1006 1011 1012 + 1006 C 12.450245 7.429690 -6.051861 189 1005 1007 1013 1014 + 1007 C 12.385757 8.858415 -5.565813 191 1006 1008 1015 1016 + 1008 N 13.633988 9.413177 -5.138817 193 1007 1017 1018 1019 + 1009 H 10.292905 6.307034 -4.826845 186 1004 + 1010 H 9.733735 7.849575 -5.494064 186 1004 + 1011 H 10.808074 7.681538 -7.552779 188 1005 + 1012 H 11.297990 5.963599 -7.337475 188 1005 + 1013 H 13.159036 7.413697 -6.874982 190 1006 + 1014 H 12.808296 6.686485 -5.298299 190 1006 + 1015 H 11.641999 8.947159 -4.656213 192 1007 + 1016 H 11.959207 9.504307 -6.407475 192 1007 + 1017 HN 13.653846 10.372301 -4.854541 194 1008 + 1018 HN 14.288544 9.333898 -5.904378 194 1008 + 1019 HN 14.092755 8.836443 -4.392426 194 1008 + 1020 N 6.734291 6.959000 -7.083862 7 1000 1021 1024 + 1021 CA 5.689140 7.483124 -7.928906 8 1020 1022 1025 1026 + 1022 C 4.722565 6.430009 -8.546693 9 1021 1023 1035 + 1023 O 3.693452 6.803359 -9.036911 11 1022 + 1024 HN 6.540297 7.080673 -6.102459 10 1020 + 1025 H 4.958282 8.082892 -7.282649 12 1021 + 1026 C 6.303009 8.338869 -9.147185 156 1021 1027 1031 1032 + 1027 C 6.962321 9.683020 -8.698706 158 1026 1028 1033 1034 + 1028 C 6.113335 10.806050 -8.094806 160 1027 1029 1030 + 1029 O 5.314957 11.441914 -8.867803 161 1028 + 1030 O 6.281814 11.153556 -6.860003 161 1028 + 1031 H 5.501095 8.608142 -9.829181 157 1026 + 1032 H 7.017775 7.642829 -9.688511 157 1026 + 1033 H 7.483003 10.111296 -9.587458 159 1027 + 1034 H 7.840208 9.443341 -8.067185 159 1027 + 1035 N 4.989573 5.171451 -8.501981 7 1022 1036 1039 + 1036 CA 4.030569 4.128878 -8.960795 33 1035 1037 1040 1041 + 1037 C 2.659803 4.362057 -8.317970 9 1036 1038 1046 + 1038 O 2.633685 4.624499 -7.137127 11 1037 + 1039 HN 5.932873 4.885550 -8.132184 10 1035 + 1040 H 3.970653 4.088976 -10.125056 12 1036 + 1041 C 4.547974 2.736928 -8.477716 34 1036 1042 1043 1044 + 1042 OH 5.739602 2.385810 -9.103937 36 1041 1045 + 1043 H 3.830289 1.946588 -8.750291 35 1041 + 1044 H 4.757904 2.775726 -7.322086 35 1041 + 1045 HO 6.399052 2.573026 -8.460448 37 1042 + 1046 N 1.554928 4.204648 -9.116288 7 1037 1047 1050 + 1047 CA 0.143907 4.283937 -8.678656 33 1046 1048 1051 1052 + 1048 C -0.303717 2.830944 -8.588594 9 1047 1049 1060 + 1049 O -0.192844 2.048979 -9.526722 11 1048 + 1050 HN 1.755361 3.846256 -10.076285 10 1046 + 1051 H 0.145346 4.729291 -7.623107 12 1047 + 1052 C -0.896382 4.990465 -9.602777 38 1047 1053 1054 1055 + 1053 OH -0.546909 6.390258 -9.553197 42 1052 1056 + 1054 C -2.266687 5.014292 -9.040912 40 1052 1057 1058 1059 + 1055 H -0.839484 4.664962 -10.623152 39 1052 + 1056 HO -1.191403 6.852676 -10.030026 43 1053 + 1057 H -2.370256 5.547925 -8.077780 41 1054 + 1058 H -2.643323 3.985031 -8.945267 41 1054 + 1059 H -3.015295 5.554521 -9.684458 41 1054 + 1060 N -0.809824 2.397412 -7.387791 7 1048 1061 1064 + 1061 CA -1.543539 1.146508 -7.125034 8 1060 1062 1065 1066 + 1062 C -2.990030 1.446385 -7.471646 9 1061 1063 1079 + 1063 O -3.473985 2.523645 -7.085299 11 1062 + 1064 HN -0.918513 3.078458 -6.559929 10 1060 + 1065 H -1.082428 0.391021 -7.805730 12 1061 + 1066 C -1.383109 0.737389 -5.704209 19 1061 1067 1070 1071 + 1067 C 0.156980 0.778637 -5.025094 21 1066 1068 1069 1072 + 1068 C 0.184063 0.045177 -3.655495 23 1067 1073 1074 1075 + 1069 C 1.197637 0.213126 -5.986021 23 1067 1076 1077 1078 + 1070 H -1.814061 -0.254567 -5.578464 20 1066 + 1071 H -2.073414 1.403223 -5.171331 20 1066 + 1072 H 0.570353 1.840354 -4.807618 22 1067 + 1073 H -0.614353 0.329349 -2.926832 24 1068 + 1074 H 1.166261 0.241414 -3.114555 24 1068 + 1075 H 0.023700 -1.069031 -3.783533 24 1068 + 1076 H 2.158203 0.044818 -5.470973 24 1069 + 1077 H 1.222442 1.006598 -6.769381 24 1069 + 1078 H 0.965216 -0.653562 -6.606231 24 1069 + 1079 N -3.781136 0.498160 -8.148625 7 1062 1080 1083 + 1080 CA -5.195999 0.627079 -8.395144 8 1079 1081 1084 1085 + 1081 C -5.839586 -0.173798 -7.325540 9 1080 1082 1097 + 1082 O -5.682825 -1.396726 -7.207748 11 1081 + 1083 HN -3.423672 -0.475658 -8.058410 10 1079 + 1084 H -5.466443 1.726348 -8.275345 12 1080 + 1085 C -5.700075 0.093076 -9.698941 109 1080 1086 1091 1092 + 1086 C -5.439579 1.075796 -10.855403 111 1085 1087 1088 + 1087 N -6.279526 2.029710 -11.458307 112 1086 1089 1093 + 1088 C -4.192293 1.220658 -11.582303 114 1086 1090 1094 + 1089 C -5.690995 2.592928 -12.533727 116 1087 1090 1095 + 1090 N -4.422291 2.142927 -12.597346 118 1088 1089 1096 + 1091 H -6.836699 -0.066381 -9.723009 110 1085 + 1092 H -5.265040 -0.930234 -9.855749 110 1085 + 1093 HN -7.252692 2.264574 -11.108175 113 1087 + 1094 H -3.349838 0.582035 -11.517840 115 1088 + 1095 H -6.306793 3.255586 -13.155877 117 1089 + 1096 HN -3.777635 2.395819 -13.330102 119 1090 + 1097 N -6.626714 0.438016 -6.407006 7 1081 1098 1101 + 1098 CA -7.321255 -0.209395 -5.260830 8 1097 1099 1102 1103 + 1099 C -8.726044 -0.540624 -5.779334 9 1098 1100 1116 + 1100 O -9.643748 0.246853 -6.020516 11 1099 + 1101 HN -6.861887 1.458160 -6.506142 10 1097 + 1102 H -6.783811 -1.126314 -4.931556 12 1098 + 1103 C -7.394204 0.687745 -4.053531 19 1098 1104 1107 1108 + 1104 C -8.296909 0.064749 -2.869849 21 1103 1105 1106 1109 + 1105 C -7.951698 -1.454279 -2.487926 23 1104 1110 1111 1112 + 1106 C -8.060038 0.927044 -1.568059 23 1104 1113 1114 1115 + 1107 H -7.854595 1.761490 -4.347062 20 1103 + 1108 H -6.360197 0.997945 -3.694450 20 1103 + 1109 H -9.450918 0.148422 -3.062584 22 1104 + 1110 H -7.020548 -1.637465 -1.993488 24 1105 + 1111 H -7.993278 -2.155479 -3.352501 24 1105 + 1112 H -8.718116 -1.826418 -1.776705 24 1105 + 1113 H -6.906806 1.040935 -1.329769 24 1106 + 1114 H -8.507678 0.388091 -0.676703 24 1106 + 1115 H -8.513627 1.951825 -1.684662 24 1106 + 1116 N -8.874500 -1.873711 -5.910632 7 1099 1117 1120 + 1117 CA -10.054693 -2.628336 -6.198564 8 1116 1118 1121 1122 + 1118 C -10.572111 -3.015072 -4.753004 9 1117 1119 1132 + 1119 O -9.832635 -3.443205 -3.816546 11 1118 + 1120 HN -7.996568 -2.422971 -5.836674 10 1116 + 1121 H -10.870694 -1.994424 -6.483439 12 1117 + 1122 C -9.759279 -3.959835 -7.069730 15 1117 1123 1124 1125 + 1123 C -10.946970 -4.877626 -7.068986 17 1122 1126 1127 1128 + 1124 C -9.371460 -3.542046 -8.470112 17 1122 1129 1130 1131 + 1125 H -8.949402 -4.516022 -6.543614 16 1122 + 1126 H -11.541359 -4.965020 -6.098983 18 1123 + 1127 H -10.625500 -5.914327 -7.249472 18 1123 + 1128 H -11.748695 -4.562709 -7.779917 18 1123 + 1129 H -8.371018 -3.050033 -8.468892 18 1124 + 1130 H -10.059019 -2.758287 -8.851634 18 1124 + 1131 H -9.340042 -4.349447 -9.290806 18 1124 + 1132 N -11.926250 -3.006119 -4.579854 7 1118 1133 1136 + 1133 CA -12.599868 -3.427499 -3.271795 8 1132 1134 1137 1138 + 1134 C -13.119425 -4.819080 -3.443024 9 1133 1135 1151 + 1135 O -13.506292 -5.208366 -4.502651 11 1134 + 1136 HN -12.484786 -2.940272 -5.402807 10 1132 + 1137 H -11.809544 -3.497303 -2.534649 12 1133 + 1138 C -13.689712 -2.401148 -2.755481 19 1133 1139 1142 1143 + 1139 C -13.005610 -1.020901 -2.289793 21 1138 1140 1141 1144 + 1140 C -13.886801 0.170603 -2.491323 23 1139 1145 1146 1147 + 1141 C -12.530133 -1.092500 -0.802600 23 1139 1148 1149 1150 + 1142 H -14.252193 -2.898736 -1.884096 20 1138 + 1143 H -14.401815 -2.226641 -3.620690 20 1138 + 1144 H -12.072590 -0.884860 -2.820312 22 1139 + 1145 H -13.445227 1.217778 -2.222189 24 1140 + 1146 H -14.793098 0.063548 -1.909740 24 1140 + 1147 H -14.187182 0.152067 -3.578149 24 1140 + 1148 H -13.308581 -1.365227 -0.079185 24 1141 + 1149 H -12.103016 -0.144811 -0.412295 24 1141 + 1150 H -11.612023 -1.776214 -0.714294 24 1141 + 1151 N -13.156998 -5.622978 -2.323616 7 1134 1152 1155 + 1152 CA -13.787861 -6.967978 -2.285282 8 1151 1153 1156 1157 + 1153 C -15.146212 -6.800506 -1.593340 9 1152 1154 1175 + 1154 O -15.158053 -6.442067 -0.396674 11 1153 + 1155 HN -12.804286 -5.282526 -1.428142 10 1151 + 1156 H -13.916618 -7.485164 -3.412935 12 1152 + 1157 C -12.946414 -7.979280 -1.497063 205 1152 1158 1164 1165 + 1158 C -13.667631 -9.245528 -0.905442 207 1157 1159 1166 1167 + 1159 C -12.815857 -10.499980 -0.801429 209 1158 1160 1168 1169 + 1160 N -11.666913 -10.382988 0.124040 211 1159 1161 1170 + 1161 C -10.598009 -11.176366 0.312631 213 1160 1162 1163 + 1162 N -10.307009 -12.288930 -0.364431 214 1161 1171 1172 + 1163 N -9.633279 -10.774307 1.106366 214 1161 1173 1174 + 1164 H -12.386465 -7.607216 -0.581206 206 1157 + 1165 H -12.215820 -8.370972 -2.244713 206 1157 + 1166 H -14.479446 -9.568262 -1.529164 208 1158 + 1167 H -14.129833 -9.168539 0.056180 208 1158 + 1168 H -12.412465 -10.669174 -1.854364 210 1159 + 1169 H -13.466079 -11.423733 -0.479836 210 1159 + 1170 HN -11.512692 -9.382182 0.495625 212 1160 + 1171 HN -10.805304 -12.650925 -1.216224 215 1162 + 1172 HN -9.470321 -12.815770 -0.049797 215 1162 + 1173 HN -9.791948 -9.915404 1.677222 215 1163 + 1174 HN -8.883682 -11.348748 1.394071 215 1163 + 1175 N -16.257217 -7.220554 -2.308703 7 1153 1176 1179 + 1176 CA -17.613518 -7.141694 -1.748926 8 1175 1177 1180 1181 + 1177 C -17.781416 -8.219845 -0.663951 9 1176 1178 1194 + 1178 O -17.284390 -9.348310 -0.956865 11 1177 + 1179 HN -16.199694 -7.696122 -3.255195 10 1175 + 1180 H -17.779696 -6.166353 -1.252915 12 1176 + 1181 C -18.748459 -7.363962 -2.843069 19 1176 1182 1185 1186 + 1182 C -18.849202 -6.260828 -3.989572 21 1181 1183 1184 1187 + 1183 C -19.614490 -6.870808 -5.148395 23 1182 1188 1189 1190 + 1184 C -19.500680 -4.982113 -3.494742 23 1182 1191 1192 1193 + 1185 H -19.731301 -7.397251 -2.283025 20 1181 + 1186 H -18.632820 -8.422553 -3.243609 20 1181 + 1187 H -17.781339 -6.071752 -4.343559 22 1182 + 1188 H -19.542258 -6.264447 -6.144731 24 1183 + 1189 H -20.684366 -6.894552 -4.987517 24 1183 + 1190 H -19.302207 -7.942787 -5.285929 24 1183 + 1191 H -19.636746 -4.174795 -4.365113 24 1184 + 1192 H -18.901688 -4.545004 -2.684455 24 1184 + 1193 H -20.591982 -5.186371 -3.176857 24 1184 + 1194 N -18.472240 -7.923944 0.433190 7 1177 1195 1198 + 1195 CA -18.558377 -8.661913 1.684016 8 1194 1196 1199 1200 + 1196 C -19.865592 -8.197617 2.423657 9 1195 1197 1218 + 1197 O -20.225574 -7.007408 2.517047 11 1196 + 1198 HN -19.018633 -7.045923 0.383040 10 1194 + 1199 H -18.591712 -9.815151 1.449892 12 1195 + 1200 C -17.330534 -8.352242 2.590189 205 1195 1201 1207 1208 + 1201 C -17.197501 -9.255175 3.894695 207 1200 1202 1209 1210 + 1202 C -15.917138 -8.993799 4.761448 209 1201 1203 1211 1212 + 1203 N -15.862754 -7.604311 5.340549 211 1202 1204 1213 + 1204 C -14.953946 -7.213621 6.222257 213 1203 1205 1206 + 1205 N -13.939504 -7.925565 6.768523 214 1204 1214 1215 + 1206 N -15.231901 -6.019110 6.758979 214 1204 1216 1217 + 1207 H -17.334188 -7.257380 2.696147 206 1200 + 1208 H -16.422266 -8.568012 1.978366 206 1200 + 1209 H -17.281791 -10.298139 3.520877 208 1201 + 1210 H -18.121600 -9.053051 4.460330 208 1201 + 1211 H -14.891329 -9.193895 4.266694 210 1202 + 1212 H -16.028045 -9.747706 5.563074 210 1202 + 1213 HN -16.694442 -6.992689 5.266552 212 1203 + 1214 HN -13.473108 -8.806088 6.384760 215 1205 + 1215 HN -13.382022 -7.560903 7.513773 215 1205 + 1216 HN -16.061939 -5.573954 6.401806 215 1206 + 1217 HN -14.719788 -5.491070 7.406533 215 1206 + 1218 N -20.555642 -9.238644 2.984101 1 1196 1219 1222 + 1219 CA -21.702627 -8.980829 3.816986 2 1218 1220 1223 1224 + 1220 C -22.667592 -10.144922 3.908536 3 1219 1221 1225 + 1221 O -23.356911 -10.299018 4.988328 5 1220 + 1222 HN -20.172384 -10.204330 3.007070 4 1218 + 1223 H -21.390921 -8.619000 4.839945 6 1219 + 1224 H -22.324153 -8.174944 3.384408 6 1219 + 1225 N -22.722375 -11.026698 2.860636 1 1220 1226 1229 + 1226 CA -23.459566 -12.247827 2.845542 2 1225 1227 1230 1231 + 1227 C -22.978621 -13.438108 1.985225 238 1226 1228 1232 + 1228 O -23.756241 -13.995796 1.178096 239 1227 + 1229 HN -22.154953 -11.003456 1.998676 4 1225 + 1230 H -23.492303 -12.585024 3.945342 6 1226 + 1231 H -24.562029 -11.982169 2.632418 6 1226 + 1232 O -21.741623 -13.731454 2.030156 239 1227 + 1233 O -25.305889 -8.873286 2.603094 402 1234 1235 + 1234 H -26.195231 -8.788006 2.967312 403 1233 + 1235 H -25.362163 -9.790033 2.275871 403 1233 + 1236 O 1.912477 -17.151817 -13.840126 402 1237 1238 + 1237 H 1.018390 -17.464992 -13.630219 403 1236 + 1238 H 2.439262 -17.334772 -13.036215 403 1236 + 1239 O 8.975970 -6.483371 7.068342 402 1240 1241 + 1240 H 8.251083 -5.855922 6.942323 403 1239 + 1241 H 9.786320 -5.989537 6.904165 403 1239 + 1242 O -17.059429 -6.682892 -18.382532 402 1243 1244 + 1243 H -17.356881 -6.533480 -19.279335 403 1242 + 1244 H -16.147993 -6.804945 -18.480643 403 1242 + 1245 O 11.369980 -7.303894 20.323145 402 1246 1247 + 1246 H 10.458255 -7.203431 20.535809 403 1245 + 1247 H 11.777545 -7.941380 20.905100 403 1245 + 1248 O 3.047993 13.115234 13.513593 402 1249 1250 + 1249 H 2.189597 12.815932 13.781761 403 1248 + 1250 H 3.351020 13.772449 14.197587 403 1248 + 1251 O 9.177488 -19.531354 -17.025005 402 1252 1253 + 1252 H 8.997180 -19.923922 -17.884170 403 1251 + 1253 H 8.309703 -19.391487 -16.606802 403 1251 + 1254 O -23.848340 -5.791211 7.441678 402 1255 1256 + 1255 H -24.004055 -6.746691 7.261738 403 1254 + 1256 H -23.114081 -5.501409 6.867622 403 1254 + 1257 O 20.312209 0.171955 -11.773561 402 1258 1259 + 1258 H 20.146745 1.095650 -12.020368 403 1257 + 1259 H 21.238842 0.205679 -11.456820 403 1257 + 1260 O -22.314798 3.014770 5.149047 402 1261 1262 + 1261 H -22.929289 2.276522 4.980524 403 1260 + 1262 H -22.201264 3.090196 6.138941 403 1260 + 1263 O 26.239381 8.286972 11.597675 402 1264 1265 + 1264 H 26.254621 7.398022 11.997034 403 1263 + 1265 H 26.842192 8.820608 12.190091 403 1263 + 1266 O 1.081563 20.255845 0.892389 402 1267 1268 + 1267 H 0.921065 19.278377 0.845371 403 1266 + 1268 H 1.812904 20.277503 0.290341 403 1266 + 1269 O -25.838005 -18.994104 1.429638 402 1270 1271 + 1270 H -26.326160 -18.188143 1.703932 403 1269 + 1271 H -25.342908 -19.303427 2.200872 403 1269 + 1272 O -20.846054 -7.092652 6.478370 402 1273 1274 + 1273 H -20.166552 -7.554414 6.018306 403 1272 + 1274 H -21.115422 -7.596368 7.225200 403 1272 + 1275 O 25.160173 -4.728893 -15.381523 402 1276 1277 + 1276 H 24.661069 -4.062502 -14.979503 403 1275 + 1277 H 25.990165 -4.238213 -15.567710 403 1275 + 1278 O 14.535913 -19.677013 15.675709 402 1279 1280 + 1279 H 14.037278 -20.588075 15.600840 403 1278 + 1280 H 14.211502 -19.181601 14.912412 403 1278 + 1281 O 2.857645 5.855417 4.079262 402 1282 1283 + 1282 H 3.430506 5.710138 4.830199 403 1281 + 1283 H 2.475458 6.741420 4.276791 403 1281 + 1284 O -27.372739 -15.194690 -19.205198 402 1285 1286 + 1285 H -28.210581 -15.653921 -19.162899 403 1284 + 1286 H -27.456185 -14.667250 -19.960242 403 1284 + 1287 O 17.781541 0.602750 -19.513277 402 1288 1289 + 1288 H 17.110642 0.664367 -18.792643 403 1287 + 1289 H 18.099117 1.530660 -19.555262 403 1287 + 1290 O 8.088032 9.439765 10.567445 402 1291 1292 + 1291 H 8.015346 10.287070 10.169518 403 1290 + 1292 H 8.124832 9.462611 11.569641 403 1290 + 1293 O 15.345860 8.714934 -11.152067 402 1294 1295 + 1294 H 15.658920 9.075500 -11.972725 403 1293 + 1295 H 14.523818 9.211910 -11.028938 403 1293 + 1296 O 11.013253 17.283874 -4.348263 402 1297 1298 + 1297 H 10.789838 18.205570 -4.504969 403 1296 + 1298 H 10.260676 16.779106 -4.055437 403 1296 + 1299 O -12.889592 -16.760154 20.387880 402 1300 1301 + 1300 H -13.380671 -16.152118 19.799845 403 1299 + 1301 H -13.369275 -16.639729 21.191087 403 1299 + 1302 O 25.866516 4.706708 -8.061449 402 1303 1304 + 1303 H 25.769362 4.461317 -8.965208 403 1302 + 1304 H 25.764828 5.656105 -8.114825 403 1302 + 1305 O -26.248807 10.809987 -17.556369 402 1306 1307 + 1306 H -25.862537 10.639607 -16.669023 403 1305 + 1307 H -25.586772 10.275331 -18.075376 403 1305 + 1308 O 5.011891 -0.095276 11.102149 402 1309 1310 + 1309 H 5.950070 -0.328570 10.928116 403 1308 + 1310 H 4.658035 -0.692033 11.838618 403 1308 + 1311 O -3.238023 12.776925 -11.754925 402 1312 1313 + 1312 H -3.559468 13.177496 -12.562608 403 1311 + 1313 H -2.242036 12.949361 -11.730152 403 1311 + 1314 O 7.608155 6.209090 6.533228 402 1315 1316 + 1315 H 6.751309 6.368791 6.939913 403 1314 + 1316 H 7.470608 5.288476 6.273733 403 1314 + 1317 O 14.666135 -14.922987 -11.755230 402 1318 1319 + 1318 H 14.581988 -14.800079 -10.784928 403 1317 + 1319 H 15.226569 -14.207434 -12.104465 403 1317 + 1320 O 15.326386 3.732831 -20.745668 402 1321 1322 + 1321 H 14.863781 4.277641 -20.063559 403 1320 + 1322 H 14.723700 3.157686 -21.298124 403 1320 + 1323 O 18.627348 -11.469990 6.467592 402 1324 1325 + 1324 H 19.047503 -12.239416 6.986935 403 1323 + 1325 H 19.345653 -10.823603 6.332871 403 1323 + 1326 O -14.220347 1.309533 12.809953 402 1327 1328 + 1327 H -15.112916 1.674865 12.966390 403 1326 + 1328 H -13.905824 1.691626 11.972749 403 1326 + 1329 O 17.738294 20.743473 -0.318702 402 1330 1331 + 1330 H 16.798924 21.074482 -0.373811 403 1329 + 1331 H 18.299449 21.160545 -1.000515 403 1329 + 1332 O 20.455752 2.132791 12.340284 402 1333 1334 + 1333 H 19.810773 1.395571 12.257305 403 1332 + 1334 H 20.198026 2.647549 11.503824 403 1332 + 1335 O 9.853022 -4.726683 18.073966 402 1336 1337 + 1336 H 9.922207 -4.319154 18.942345 403 1335 + 1337 H 10.745493 -4.795112 17.634995 403 1335 + 1338 O 22.828162 7.406766 18.911442 402 1339 1340 + 1339 H 23.277041 7.740752 18.085874 403 1338 + 1340 H 21.875678 7.287001 18.697167 403 1338 + 1341 O 12.857348 6.858682 -2.850558 402 1342 1343 + 1342 H 12.349544 7.638411 -2.700800 403 1341 + 1343 H 13.434641 6.773930 -2.100368 403 1341 + 1344 O 10.156535 2.406121 -18.658294 402 1345 1346 + 1345 H 10.409878 1.989225 -19.465922 403 1344 + 1346 H 9.490048 3.103188 -18.852928 403 1344 + 1347 O 12.554233 20.216080 19.570476 402 1348 1349 + 1348 H 11.705682 19.810667 19.782475 403 1347 + 1349 H 12.468266 20.347772 18.588160 403 1347 + 1350 O -1.134276 6.357754 18.934733 402 1351 1352 + 1351 H -1.973226 6.075942 19.245633 403 1350 + 1352 H -0.442075 6.043387 19.552910 403 1350 + 1353 O 1.750577 4.009032 13.244051 402 1354 1355 + 1354 H 1.218838 4.545834 13.791599 403 1353 + 1355 H 1.398756 3.100724 13.349288 403 1353 + 1356 O 2.689021 16.465513 4.587974 402 1357 1358 + 1357 H 3.467483 16.279752 5.178457 403 1356 + 1358 H 3.010897 17.110882 3.971315 403 1356 + 1359 O 22.627367 7.401815 -6.857148 402 1360 1361 + 1360 H 21.892213 7.078953 -7.539727 403 1359 + 1361 H 22.599466 6.767179 -6.162623 403 1359 + 1362 O -24.350411 -14.025041 19.899958 402 1363 1364 + 1363 H -23.879390 -13.314568 19.375377 403 1362 + 1364 H -25.008554 -14.400223 19.294992 403 1362 + 1365 O 18.357304 9.543924 6.204099 402 1366 1367 + 1366 H 18.326985 9.093740 5.378574 403 1365 + 1367 H 19.117744 9.183856 6.709862 403 1365 + 1368 O 21.017970 -11.520615 -11.071883 402 1369 1370 + 1369 H 21.726613 -10.894899 -10.978046 403 1368 + 1370 H 20.726915 -11.629983 -10.116083 403 1368 + 1371 O -26.667012 4.365972 15.083664 402 1372 1373 + 1372 H -27.091443 3.550925 15.267577 403 1371 + 1373 H -25.989136 4.193758 14.444620 403 1371 + 1374 O 12.781386 0.642540 16.526237 402 1375 1376 + 1375 H 13.038723 1.476289 17.006927 403 1374 + 1376 H 12.089659 0.933072 15.871227 403 1374 + 1377 O -27.429715 -6.725581 8.240721 402 1378 1379 + 1378 H -26.910936 -6.564480 7.470893 403 1377 + 1379 H -28.162464 -7.327953 7.969065 403 1377 + 1380 O 24.070362 5.174514 -0.911512 402 1381 1382 + 1381 H 24.629840 5.966148 -0.705486 403 1380 + 1382 H 23.362520 5.287238 -1.509298 403 1380 + 1383 O 16.846666 -16.995462 -13.603864 402 1384 1385 + 1384 H 15.867560 -16.748669 -13.456021 403 1383 + 1385 H 17.071846 -16.254095 -14.246763 403 1383 + 1386 O 20.841116 12.797120 17.009497 402 1387 1388 + 1387 H 20.969187 13.669803 17.421731 403 1386 + 1388 H 21.771225 12.416689 16.764510 403 1386 + 1389 O -19.221734 -18.875573 -10.983743 402 1390 1391 + 1390 H -20.186979 -18.779925 -10.982038 403 1389 + 1391 H -19.009681 -19.369621 -10.158798 403 1389 + 1392 O -18.683521 -20.505972 -16.031221 402 1393 1394 + 1393 H -19.618898 -20.618800 -16.082058 403 1392 + 1394 H -18.315789 -21.292104 -15.650396 403 1392 + 1395 O 13.486524 6.749112 5.293446 402 1396 1397 + 1396 H 13.961609 6.056192 4.983058 403 1395 + 1397 H 12.780504 7.007906 4.716738 403 1395 + 1398 O 20.810382 20.409198 13.765268 402 1399 1400 + 1399 H 21.268029 20.454532 14.598864 403 1398 + 1400 H 19.895912 20.318361 13.998352 403 1398 + 1401 O 20.363727 -12.785030 1.387420 402 1402 1403 + 1402 H 20.625728 -12.042183 1.970150 403 1401 + 1403 H 19.472843 -13.114509 1.692870 403 1401 + 1404 O -4.110768 13.121183 -4.644500 402 1405 1406 + 1405 H -3.600734 12.558925 -4.032909 403 1404 + 1406 H -4.403120 13.867412 -4.044378 403 1404 + 1407 O -21.061840 -7.740629 20.493954 402 1408 1409 + 1408 H -21.039453 -7.543946 19.536841 403 1407 + 1409 H -21.757349 -7.146898 20.900973 403 1407 + 1410 O 26.211082 -13.851944 -14.351632 402 1411 1412 + 1411 H 26.688652 -13.578058 -13.560156 403 1410 + 1412 H 25.237610 -13.844318 -14.168406 403 1410 + 1413 O 7.682001 -20.605822 4.285305 402 1414 1415 + 1414 H 8.364066 -21.007718 3.810153 403 1413 + 1415 H 7.192709 -19.999465 3.748655 403 1413 + 1416 O 22.004930 15.161537 5.915259 402 1417 1418 + 1417 H 22.529069 15.401145 5.140758 403 1416 + 1418 H 21.836857 14.241604 6.044353 403 1416 + 1419 O 21.713613 -17.900383 3.815703 402 1420 1421 + 1420 H 22.679247 -17.725384 3.950726 403 1419 + 1421 H 21.695664 -18.649618 3.180406 403 1419 + 1422 O 11.567159 -18.128823 12.553393 402 1423 1424 + 1423 H 11.856655 -17.178344 12.428270 403 1422 + 1424 H 11.248307 -18.230630 13.449380 403 1422 + 1425 O -22.622068 18.057993 -12.095565 402 1426 1427 + 1426 H -21.694228 17.853670 -11.941877 403 1425 + 1427 H -22.819172 17.835208 -12.993248 403 1425 + 1428 O 9.275007 12.390062 -11.584253 402 1429 1430 + 1429 H 8.977379 13.016934 -10.914605 403 1428 + 1430 H 10.127813 12.041771 -11.232361 403 1428 + 1431 O -14.822916 -15.989738 9.135198 402 1432 1433 + 1432 H -14.194812 -16.628214 9.459309 403 1431 + 1433 H -14.342626 -15.188459 9.014917 403 1431 + 1434 O -11.828358 -9.561319 -4.583271 402 1435 1436 + 1435 H -12.150096 -9.065398 -5.351378 403 1434 + 1436 H -12.516681 -10.185548 -4.230080 403 1434 + 1437 O -10.898855 6.281982 -10.651011 402 1438 1439 + 1438 H -11.533704 6.844824 -10.249357 403 1437 + 1439 H -10.394778 5.928734 -9.945580 403 1437 + 1440 O 10.206251 18.878731 19.697794 402 1441 1442 + 1441 H 10.128033 18.397864 20.526746 403 1440 + 1442 H 9.368907 19.321892 19.635002 403 1440 + 1443 O 7.056097 15.592239 15.029949 402 1444 1445 + 1444 H 7.186116 15.478315 14.072096 403 1443 + 1445 H 7.414569 14.832987 15.435389 403 1443 + 1446 O 24.543977 3.489901 -14.044452 402 1447 1448 + 1447 H 23.682275 3.287251 -13.651175 403 1446 + 1448 H 24.372867 3.165473 -14.930902 403 1446 + 1449 O -0.579079 -10.101283 9.711937 402 1450 1451 + 1450 H -1.148742 -10.353328 9.005933 403 1449 + 1451 H -0.914837 -9.213566 9.976954 403 1449 + 1452 O 6.810722 17.081705 -5.703105 402 1453 1454 + 1453 H 5.903603 16.716054 -5.813888 403 1452 + 1454 H 7.038830 17.199405 -6.631357 403 1452 + 1455 O -26.352729 7.462163 20.420411 402 1456 1457 + 1456 H -27.199047 7.711650 20.831378 403 1455 + 1457 H -26.411228 7.671245 19.444854 403 1455 + 1458 O 17.042652 1.713603 8.364686 402 1459 1460 + 1459 H 16.951087 0.795520 8.175385 403 1458 + 1460 H 16.736372 2.035025 7.509624 403 1458 + 1461 O 19.131873 19.334012 -6.335242 402 1462 1463 + 1462 H 18.416265 18.729295 -6.454050 403 1461 + 1463 H 19.910836 18.805924 -6.078777 403 1461 + 1464 O 7.310440 -10.543485 13.587642 402 1465 1466 + 1465 H 6.863481 -11.404338 13.838041 403 1464 + 1466 H 6.716557 -9.980934 13.023023 403 1464 + 1467 O 16.655451 5.245734 12.848556 402 1468 1469 + 1468 H 17.418946 5.791006 12.911180 403 1467 + 1469 H 16.851104 4.455072 13.419371 403 1467 + 1470 O -11.098331 12.748199 -7.329972 402 1471 1472 + 1471 H -11.009338 13.599863 -7.754046 403 1470 + 1472 H -12.065844 12.538087 -7.393876 403 1470 + 1473 O -12.334041 -5.457784 -13.381783 402 1474 1475 + 1474 H -12.711013 -4.568395 -13.257780 403 1473 + 1475 H -11.461517 -5.234972 -13.709702 403 1473 + 1476 O -19.619563 15.046747 6.026220 402 1477 1478 + 1477 H -19.064160 15.888434 5.869584 403 1476 + 1478 H -20.197675 14.948767 5.270745 403 1476 + 1479 O 19.403362 5.853957 6.190263 402 1480 1481 + 1480 H 18.497327 6.115780 6.469846 403 1479 + 1481 H 20.017752 6.471645 6.487352 403 1479 + 1482 O -25.726372 -3.750023 6.981390 402 1483 1484 + 1483 H -26.510590 -3.855351 7.566875 403 1482 + 1484 H -25.108784 -4.364237 7.293376 403 1482 + 1485 O 19.363936 -15.722056 8.477199 402 1486 1487 + 1486 H 19.376520 -16.156352 9.371325 403 1485 + 1487 H 20.131991 -16.106093 8.026790 403 1485 + 1488 O 4.918015 16.654603 6.129016 402 1489 1490 + 1489 H 5.581517 17.300026 5.845056 403 1488 + 1490 H 5.390842 15.802197 6.094486 403 1488 + 1491 O 6.078733 16.693115 -13.842069 402 1492 1493 + 1492 H 5.199251 16.442614 -14.064650 403 1491 + 1493 H 6.443869 16.763088 -14.767416 403 1491 + 1494 O 21.731326 -12.551581 -19.815904 402 1495 1496 + 1495 H 21.519077 -11.572592 -19.819800 403 1494 + 1496 H 21.264568 -12.901316 -18.987186 403 1494 + 1497 O 24.487045 0.545827 12.845924 402 1498 1499 + 1498 H 24.038085 0.883409 12.081688 403 1497 + 1499 H 24.083597 0.980384 13.591108 403 1497 + 1500 O 18.410889 -13.655540 -1.593840 402 1501 1502 + 1501 H 18.336634 -14.202424 -0.852695 403 1500 + 1502 H 19.187521 -13.942267 -2.059694 403 1500 + 1503 O 10.380738 17.460434 -20.015294 402 1504 1505 + 1504 H 9.800569 16.677901 -20.098710 403 1503 + 1505 H 10.044263 17.935616 -19.257888 403 1503 + 1506 O 13.540400 13.359091 -2.277273 402 1507 1508 + 1507 H 13.918768 14.199197 -2.621352 403 1506 + 1508 H 13.546416 13.374894 -1.268707 403 1506 + 1509 O 19.550822 -15.885302 -17.171256 402 1510 1511 + 1510 H 19.618925 -16.577230 -17.813037 403 1509 + 1511 H 20.364869 -15.924821 -16.745913 403 1509 + 1512 O 8.934453 -16.027660 20.082161 402 1513 1514 + 1513 H 8.350825 -15.432721 20.504320 403 1512 + 1514 H 9.504005 -15.407057 19.696244 403 1512 + 1515 O 13.449317 -0.696209 -11.399773 402 1516 1517 + 1516 H 14.259684 -0.816041 -10.861718 403 1515 + 1517 H 12.841649 -1.407477 -11.030433 403 1515 + 1518 O 21.159598 -20.230615 11.116255 402 1519 1520 + 1519 H 20.955379 -21.039069 10.677683 403 1518 + 1520 H 21.227629 -20.467861 12.046012 403 1518 + 1521 O -11.425719 10.313603 15.561621 402 1522 1523 + 1522 H -11.752060 9.489612 15.149018 403 1521 + 1523 H -12.009787 11.024201 15.339594 403 1521 + 1524 O 23.530234 5.073332 12.308815 402 1525 1526 + 1525 H 23.411228 4.192303 12.037314 403 1524 + 1526 H 23.017800 5.539035 11.565588 403 1524 + 1527 O 9.285394 15.401019 4.247587 402 1528 1529 + 1528 H 9.029223 16.111512 4.827382 403 1527 + 1529 H 9.908946 14.931813 4.786975 403 1527 + 1530 O 26.710953 10.879732 17.565984 402 1531 1532 + 1531 H 26.481837 11.014223 18.458503 403 1530 + 1532 H 26.801930 11.751805 17.193691 403 1530 + 1533 O 26.059219 -18.322514 -8.230640 402 1534 1535 + 1534 H 25.468209 -17.831491 -8.807599 403 1533 + 1535 H 26.660395 -17.588693 -7.832128 403 1533 + 1536 O 7.573847 10.494945 -13.000340 402 1537 1538 + 1537 H 6.752773 10.585941 -12.508913 403 1536 + 1538 H 8.060915 11.203548 -12.596091 403 1536 + 1539 O 16.495334 16.907261 -17.264088 402 1540 1541 + 1540 H 15.936311 17.701142 -17.215765 403 1539 + 1541 H 16.146725 16.404479 -17.972530 403 1539 + 1542 O 12.550501 12.792681 0.441559 402 1543 1544 + 1543 H 12.890193 12.783948 1.424080 403 1542 + 1544 H 12.972043 11.976735 0.117581 403 1542 + 1545 O 6.804544 2.469256 9.043785 402 1546 1547 + 1546 H 7.053760 2.925055 9.856512 403 1545 + 1547 H 7.365554 1.678918 9.065958 403 1545 + 1548 O -26.111190 11.845380 12.004953 402 1549 1550 + 1549 H -26.772515 12.430684 11.621087 403 1548 + 1550 H -25.209540 12.292191 11.872070 403 1548 + 1551 O -10.314383 -9.317643 -12.200930 402 1552 1553 + 1552 H -11.268643 -8.984584 -12.345854 403 1551 + 1553 H -10.432002 -10.035760 -11.529786 403 1551 + 1554 O -26.380108 15.118882 -9.622008 402 1555 1556 + 1555 H -25.930871 15.887042 -9.924512 403 1554 + 1556 H -25.979073 14.306361 -10.084998 403 1554 + 1557 O 1.139515 -19.714505 -8.279716 402 1558 1559 + 1558 H 0.675447 -19.100241 -8.876686 403 1557 + 1559 H 1.861101 -19.991496 -8.757935 403 1557 + 1560 O 17.452914 16.822171 9.920464 402 1561 1562 + 1561 H 17.934078 17.151660 9.199989 403 1560 + 1562 H 17.980199 16.103548 10.329451 403 1560 + 1563 O 18.740004 -12.107924 14.391777 402 1564 1565 + 1564 H 19.596584 -12.274465 14.867937 403 1563 + 1565 H 18.902733 -12.244474 13.491103 403 1563 + 1566 O -15.579375 6.511760 13.017065 402 1567 1568 + 1567 H -15.193219 7.321701 12.610540 403 1566 + 1568 H -15.093538 5.769586 12.622079 403 1566 + 1569 O -0.877815 -3.636485 14.316002 402 1570 1571 + 1570 H -1.480812 -3.188883 14.944590 403 1569 + 1571 H -1.224311 -3.235271 13.526942 403 1569 + 1572 O 7.516564 -9.888221 20.928138 402 1573 1574 + 1573 H 7.083616 -9.984725 20.119275 403 1572 + 1574 H 7.035439 -10.492537 21.460270 403 1572 + 1575 O 26.972175 15.513650 13.835965 402 1576 1577 + 1576 H 27.290530 14.677325 14.220401 403 1575 + 1577 H 26.022826 15.628989 13.956832 403 1575 + 1578 O 18.373056 16.436866 -9.784173 402 1579 1580 + 1579 H 18.173740 16.705423 -10.702898 403 1578 + 1580 H 19.003590 17.095921 -9.494087 403 1578 + 1581 O -2.499599 -10.235115 -18.681799 402 1582 1583 + 1582 H -2.484635 -9.679910 -17.855014 403 1581 + 1583 H -1.762196 -9.952193 -19.147621 403 1581 + 1584 O 2.170631 9.696760 -13.707491 402 1585 1586 + 1585 H 2.410831 10.573952 -14.022044 403 1584 + 1586 H 1.366528 9.911718 -13.203660 403 1584 + 1587 O -22.060495 0.084333 -19.330968 402 1588 1589 + 1588 H -21.759145 -0.801023 -19.628154 403 1587 + 1589 H -21.345397 0.598803 -18.978005 403 1587 + 1590 O 20.717073 -0.364667 -3.266977 402 1591 1592 + 1591 H 20.064258 -0.869174 -2.840894 403 1590 + 1592 H 20.978768 -0.863225 -4.123117 403 1590 + 1593 O -11.693545 -17.585832 12.155919 402 1594 1595 + 1594 H -11.693581 -16.618165 12.297539 403 1593 + 1595 H -10.965597 -17.630843 11.482629 403 1593 + 1596 O 22.033287 -5.610818 11.814279 402 1597 1598 + 1597 H 21.603774 -4.969289 11.213082 403 1596 + 1598 H 22.863855 -5.854126 11.399621 403 1596 + 1599 O -4.245364 20.530679 -11.580108 402 1600 1601 + 1600 H -4.613077 20.058542 -10.812152 403 1599 + 1601 H -4.869612 21.297733 -11.750599 403 1599 + 1602 O 20.837886 3.849343 18.187160 402 1603 1604 + 1603 H 21.637221 4.154388 17.767478 403 1602 + 1604 H 20.753725 4.316852 19.044680 403 1602 + 1605 O 4.000998 20.642070 6.993614 402 1606 1607 + 1606 H 3.097228 20.600441 6.539412 403 1605 + 1607 H 4.007858 20.203528 7.895914 403 1605 + 1608 O 11.947977 15.441293 -0.469120 402 1609 1610 + 1609 H 11.971275 14.454085 -0.273912 403 1608 + 1610 H 12.470807 15.488877 -1.291943 403 1608 + 1611 O 3.007637 18.543541 -2.984774 402 1612 1613 + 1612 H 3.565232 17.725540 -3.038270 403 1611 + 1613 H 2.929337 18.913789 -3.837866 403 1611 + 1614 O 8.597796 -3.024177 11.307241 402 1615 1616 + 1615 H 9.440361 -2.907621 10.794269 403 1614 + 1616 H 8.194484 -3.777321 10.948431 403 1614 + 1617 O 12.969092 -7.932168 -3.416690 402 1618 1619 + 1618 H 12.657272 -8.671538 -3.962914 403 1617 + 1619 H 13.930699 -7.927015 -3.644128 403 1617 + 1620 O 4.690692 11.990242 6.047085 402 1621 1622 + 1621 H 3.830915 11.620745 5.794047 403 1620 + 1622 H 5.366958 11.770788 5.369987 403 1620 + 1623 O 10.838100 15.915400 -16.690449 402 1624 1625 + 1624 H 11.719066 16.216650 -16.583824 403 1623 + 1625 H 10.351788 16.668150 -17.062399 403 1623 + 1626 O 20.760419 3.237669 6.554876 402 1627 1628 + 1627 H 20.210628 2.565167 6.189576 403 1626 + 1628 H 20.243367 4.047032 6.450547 403 1626 + 1629 O -7.351853 -2.751166 -10.694739 402 1630 1631 + 1630 H -8.277520 -2.829710 -11.023595 403 1629 + 1631 H -6.973902 -2.027001 -11.286243 403 1629 + 1632 O 8.338680 -14.152925 -14.216839 402 1633 1634 + 1633 H 7.907963 -14.913791 -13.766433 403 1632 + 1634 H 9.057618 -14.554948 -14.672432 403 1632 + 1635 O -21.745003 -1.600080 -8.484704 402 1636 1637 + 1636 H -22.396276 -0.906185 -8.690601 403 1635 + 1637 H -21.042086 -1.417961 -9.157366 403 1635 + 1638 O 24.505779 -7.277316 -14.651231 402 1639 1640 + 1639 H 24.835649 -6.369110 -14.893362 403 1638 + 1640 H 24.135101 -7.595011 -15.516575 403 1638 + 1641 O 13.325591 -5.149951 -6.169737 402 1642 1643 + 1642 H 14.291969 -5.289577 -6.041288 403 1641 + 1643 H 12.813376 -5.844865 -5.785812 403 1641 + 1644 O -20.933242 20.161591 -8.696079 402 1645 1646 + 1645 H -20.088965 20.396502 -9.157616 403 1644 + 1646 H -21.417399 20.940524 -8.320759 403 1644 + 1647 O 22.832947 -8.348413 -10.288572 402 1648 1649 + 1648 H 23.575495 -7.724229 -10.313126 403 1647 + 1649 H 23.029160 -9.044226 -9.677546 403 1647 + 1650 O 23.743445 2.427859 19.849750 402 1651 1652 + 1651 H 24.532045 1.907225 19.711678 403 1650 + 1652 H 23.062926 1.994077 19.368217 403 1650 + 1653 O 10.589993 1.639740 20.516878 402 1654 1655 + 1654 H 9.987052 1.032362 20.047348 403 1653 + 1655 H 10.624644 2.472330 20.027640 403 1653 + 1656 O 6.500815 -17.047237 7.812429 402 1657 1658 + 1657 H 7.407059 -16.956263 7.440866 403 1656 + 1658 H 6.013508 -17.774059 7.384568 403 1656 + 1659 O -0.199269 -9.380208 -16.449921 402 1660 1661 + 1660 H -0.920685 -8.715985 -16.515053 403 1659 + 1661 H 0.387469 -9.304809 -17.255371 403 1659 + 1662 O 6.245654 20.180381 -12.940075 402 1663 1664 + 1663 H 5.376160 20.220616 -13.392701 403 1662 + 1664 H 6.857081 19.702851 -13.499407 403 1662 + 1665 O -4.928957 -20.301289 11.340442 402 1666 1667 + 1666 H -4.017513 -20.158995 11.049259 403 1665 + 1667 H -4.923799 -20.953195 11.990322 403 1665 + 1668 O -11.515851 -8.388468 19.647979 402 1669 1670 + 1669 H -11.184791 -8.359618 20.524675 403 1668 + 1670 H -12.443923 -8.327763 19.606292 403 1668 + 1671 O -24.167509 7.194575 -0.837148 402 1672 1673 + 1672 H -24.972654 7.649920 -1.275517 403 1671 + 1673 H -24.204709 7.474688 0.131591 403 1671 + 1674 O 12.126351 -16.062203 11.096539 402 1675 1676 + 1675 H 11.280449 -15.927172 10.574646 403 1674 + 1676 H 12.611089 -15.288570 10.879908 403 1674 + 1677 O -7.169287 5.827131 17.736258 402 1678 1679 + 1678 H -6.956548 5.152949 17.035326 403 1677 + 1679 H -6.291387 6.127541 18.098754 403 1677 + 1680 O -19.820265 12.907447 16.581358 402 1681 1682 + 1681 H -19.659011 12.980070 17.534136 403 1680 + 1682 H -20.478433 13.648938 16.483830 403 1680 + 1683 O 10.474631 10.634400 -7.924386 402 1684 1685 + 1684 H 10.794363 11.386619 -7.409132 403 1683 + 1685 H 9.591861 10.377005 -7.560987 403 1683 + 1686 O 9.869765 7.468088 9.667232 402 1687 1688 + 1687 H 9.072542 8.000794 9.695304 403 1686 + 1688 H 10.102662 7.299293 8.720054 403 1686 + 1689 O 11.149756 9.562904 -12.765396 402 1690 1691 + 1690 H 10.686250 9.267978 -11.959062 403 1689 + 1691 H 11.324858 8.766817 -13.298380 403 1689 + 1692 O -8.591767 12.757143 -4.012695 402 1693 1694 + 1693 H -8.324896 13.003317 -4.932948 403 1692 + 1694 H -8.147829 13.384049 -3.416515 403 1692 + 1695 O 4.774504 19.024876 15.999665 402 1696 1697 + 1696 H 4.160294 19.017277 16.757162 403 1695 + 1697 H 5.517925 18.569472 16.400595 403 1695 + 1698 O -4.714429 -2.091345 19.353537 402 1699 1700 + 1699 H -4.854280 -2.828837 19.971329 403 1698 + 1700 H -5.535288 -2.163222 18.793806 403 1698 + 1701 O 3.570216 -18.611817 -15.598378 402 1702 1703 + 1702 H 3.046765 -18.582990 -16.425866 403 1701 + 1703 H 3.158896 -17.918154 -15.032600 403 1701 + 1704 O -11.657691 18.235653 20.509864 402 1705 1706 + 1705 H -12.226759 18.986315 20.717707 403 1704 + 1706 H -11.080397 18.121952 21.271087 403 1704 + 1707 O 14.493937 -0.382813 19.719393 402 1708 1709 + 1708 H 13.979118 -0.142020 20.470391 403 1707 + 1709 H 15.349953 -0.432678 20.118874 403 1707 + 1710 O -25.714868 -12.047610 -14.994953 402 1711 1712 + 1711 H -25.527994 -12.236118 -16.000515 403 1710 + 1712 H -24.876261 -11.553460 -14.748410 403 1710 + 1713 O 6.325847 -15.764455 11.544131 402 1714 1715 + 1714 H 6.229128 -16.154079 12.417251 403 1713 + 1715 H 6.886521 -15.002890 11.743125 403 1713 + 1716 O -27.331883 9.233246 15.237568 402 1717 1718 + 1717 H -26.599380 9.867873 14.994627 403 1716 + 1718 H -27.264332 8.495991 14.623286 403 1716 + 1719 O -25.207375 -3.847132 17.095096 402 1720 1721 + 1720 H -25.445321 -4.629286 16.543803 403 1719 + 1721 H -25.823438 -3.158780 16.776808 403 1719 + 1722 O -2.766266 -13.179260 4.266317 402 1723 1724 + 1723 H -1.896026 -13.215786 3.757612 403 1722 + 1724 H -3.151612 -14.038152 4.175240 403 1722 + 1725 O 17.165111 16.676060 6.100929 402 1726 1727 + 1726 H 17.064451 17.522432 6.606579 403 1725 + 1727 H 16.942925 15.940574 6.655125 403 1725 + 1728 O -18.331646 7.552754 -8.484008 402 1729 1730 + 1729 H -18.933791 7.004225 -7.919061 403 1728 + 1730 H -18.900890 7.785944 -9.196075 403 1728 + 1731 O 26.169311 3.132717 9.584634 402 1732 1733 + 1732 H 26.518912 3.613350 10.302634 403 1731 + 1733 H 25.680453 2.435972 9.901377 403 1731 + 1734 O 1.192323 17.107553 -8.736586 402 1735 1736 + 1735 H 1.021901 17.797734 -9.422544 403 1734 + 1736 H 0.892750 17.475660 -7.885822 403 1734 + 1737 O -25.815030 10.180500 5.376868 402 1738 1739 + 1738 H -26.459337 10.344257 6.080597 403 1737 + 1739 H -25.337134 9.352614 5.563562 403 1737 + 1740 O 9.219642 -20.775000 0.193729 402 1741 1742 + 1741 H 9.939354 -21.194791 -0.335512 403 1740 + 1742 H 8.458200 -21.122557 -0.245347 403 1740 + 1743 O 7.419149 -15.012981 -7.052183 402 1744 1745 + 1744 H 7.072086 -14.800593 -6.138570 403 1743 + 1745 H 6.878848 -15.717530 -7.366638 403 1743 + 1746 O 18.623745 10.156288 3.028217 402 1747 1748 + 1747 H 17.982257 9.440233 2.875628 403 1746 + 1748 H 18.009023 10.975494 3.182536 403 1746 + 1749 O 13.145546 -20.676260 -16.694649 402 1750 1751 + 1750 H 12.815312 -20.227755 -17.488442 403 1749 + 1751 H 12.786182 -21.555938 -16.737351 403 1749 + 1752 O 4.910310 -17.490236 -1.378014 402 1753 1754 + 1753 H 5.657779 -17.456107 -0.820623 403 1752 + 1754 H 5.268563 -17.934730 -2.200934 403 1752 + 1755 O -0.270185 6.286195 9.930733 402 1756 1757 + 1756 H -0.856415 6.001917 10.611025 403 1755 + 1757 H 0.005563 7.171058 10.176397 403 1755 + 1758 O -3.229650 16.643646 19.387659 402 1759 1760 + 1759 H -3.312058 16.163949 18.538257 403 1758 + 1760 H -2.782251 17.481594 19.257422 403 1758 + 1761 O -16.368157 2.960013 13.098824 402 1762 1763 + 1762 H -16.360100 3.430962 13.984851 403 1761 + 1763 H -16.773065 3.567928 12.508334 403 1761 + 1764 O 19.447080 -6.209321 9.611666 402 1765 1766 + 1765 H 18.833539 -5.622887 9.193795 403 1764 + 1766 H 18.949525 -6.526265 10.384214 403 1764 + 1767 O -8.044280 -4.288816 -16.207882 402 1768 1769 + 1768 H -7.966109 -3.883769 -17.074640 403 1767 + 1769 H -7.261903 -4.793399 -15.982149 403 1767 + 1770 O 20.024947 17.270827 14.758218 402 1771 1772 + 1771 H 19.172341 17.478642 15.170634 403 1770 + 1772 H 20.700921 17.006922 15.403538 403 1770 + 1773 O 24.735763 -12.617736 3.782055 402 1774 1775 + 1774 H 24.742238 -13.518522 3.370896 403 1773 + 1775 H 25.350602 -12.232493 3.147824 403 1773 + 1776 O 3.431414 8.925671 6.826679 402 1777 1778 + 1777 H 3.084862 8.827163 7.759644 403 1776 + 1778 H 4.424412 9.107829 6.895448 403 1776 + 1779 O 17.489102 -11.319977 19.702626 402 1780 1781 + 1780 H 18.434347 -11.550903 19.419885 403 1779 + 1781 H 16.965653 -12.122535 19.583109 403 1779 + 1782 O 13.274816 16.183286 -2.849704 402 1783 1784 + 1783 H 13.777976 16.949053 -2.573649 403 1782 + 1784 H 12.549844 16.546466 -3.345363 403 1782 + 1785 O 23.841910 -13.944818 11.597095 402 1786 1787 + 1786 H 23.043336 -14.386099 11.958056 403 1785 + 1787 H 23.668687 -13.015455 11.845078 403 1785 + 1788 O 14.458157 -17.498951 -20.684884 402 1789 1790 + 1789 H 13.916318 -16.687121 -20.523929 403 1788 + 1790 H 14.348004 -17.977683 -19.850686 403 1788 + 1791 O -8.369104 15.140447 -19.622301 402 1792 1793 + 1792 H -9.156426 14.702367 -19.949175 403 1791 + 1793 H -7.765440 15.416867 -20.299390 403 1791 + 1794 O 19.145293 -12.193056 11.874609 402 1795 1796 + 1795 H 18.766654 -11.373734 11.579591 403 1794 + 1796 H 18.521350 -12.726230 11.327543 403 1794 + 1797 O -18.076775 18.801612 -14.295021 402 1798 1799 + 1798 H -18.586562 18.486836 -15.063616 403 1797 + 1799 H -18.385853 18.166574 -13.559441 403 1797 + 1800 O -19.106085 17.513715 -16.406412 402 1801 1802 + 1801 H -18.423458 17.909352 -17.009956 403 1800 + 1802 H -19.076533 16.547362 -16.469991 403 1800 + 1803 O 8.044684 -0.011875 -10.373353 402 1804 1805 + 1804 H 8.668860 -0.626009 -9.915411 403 1803 + 1805 H 8.602268 0.704634 -10.757756 403 1803 + 1806 O -23.287552 -7.074362 17.929889 402 1807 1808 + 1807 H -22.370365 -7.411352 17.793085 403 1806 + 1808 H -23.082861 -6.243551 18.339191 403 1806 + 1809 O 22.099315 -0.856463 5.137385 402 1810 1811 + 1810 H 22.143526 -1.231806 5.942781 403 1809 + 1811 H 22.809699 -1.264756 4.609180 403 1809 + 1812 O 11.618777 5.171830 -12.366225 402 1813 1814 + 1813 H 12.078170 4.347700 -12.198463 403 1812 + 1814 H 10.837551 5.069580 -11.726531 403 1812 + 1815 O 13.014153 9.452672 -20.836207 402 1816 1817 + 1816 H 13.647981 9.913017 -20.352836 403 1815 + 1817 H 13.495084 8.718233 -21.270254 403 1815 + 1818 O 12.425877 4.164162 0.171584 402 1819 1820 + 1819 H 12.703840 3.756309 0.988868 403 1818 + 1820 H 12.991444 5.029213 0.073462 403 1818 + 1821 O -9.835180 14.629378 -13.804396 402 1822 1823 + 1822 H -9.610077 14.944151 -14.684564 403 1821 + 1823 H -8.989021 14.154277 -13.615953 403 1821 + 1824 O -2.408060 19.252237 0.880939 402 1825 1826 + 1825 H -2.493340 19.315730 -0.074698 403 1824 + 1826 H -2.255762 20.125803 1.185504 403 1824 + 1827 O 0.176360 18.576859 -11.340843 402 1828 1829 + 1828 H 0.973470 18.653833 -11.875634 403 1827 + 1829 H -0.251936 19.428753 -11.234458 403 1827 + 1830 O 17.647376 -13.725079 1.965824 402 1831 1832 + 1831 H 17.003636 -13.021631 1.726278 403 1830 + 1832 H 17.566508 -13.822114 2.932054 403 1830 + 1833 O 22.517860 -11.753774 5.019726 402 1834 1835 + 1834 H 23.053003 -11.763573 4.218425 403 1833 + 1835 H 22.141706 -12.627432 4.996598 403 1833 + 1836 O 11.399220 8.806142 17.642468 402 1837 1838 + 1837 H 12.004399 8.181799 18.040253 403 1836 + 1838 H 12.065291 9.442856 17.324430 403 1836 + 1839 O -22.707547 3.590100 -15.076457 402 1840 1841 + 1840 H -23.015628 3.384474 -15.944834 403 1839 + 1841 H -22.136913 4.410365 -15.213029 403 1839 + 1842 O 26.828338 -4.765161 15.663973 402 1843 1844 + 1843 H 26.832047 -4.257803 16.501858 403 1842 + 1844 H 26.708016 -5.703070 15.737740 403 1842 + 1845 O 22.946626 3.404021 -19.628978 402 1846 1847 + 1846 H 23.362608 3.005393 -20.435220 403 1845 + 1847 H 23.702005 3.678843 -19.069388 403 1845 + 1848 O 14.618693 -13.688118 5.201099 402 1849 1850 + 1849 H 14.145978 -13.778387 4.371412 403 1848 + 1850 H 14.286294 -12.904817 5.661369 403 1848 + 1851 O 20.255504 -4.724409 16.548573 402 1852 1853 + 1852 H 21.059576 -4.438221 16.144026 403 1851 + 1853 H 20.147655 -4.094495 17.295647 403 1851 + 1854 O 17.946944 -13.347081 -18.020931 402 1855 1856 + 1855 H 18.795624 -13.646112 -18.426334 403 1854 + 1856 H 17.332163 -14.081728 -18.189230 403 1854 + 1857 O -21.344615 -17.675607 -16.681902 402 1858 1859 + 1858 H -21.267118 -18.651712 -16.747948 403 1857 + 1859 H -21.006193 -17.563628 -15.786919 403 1857 + 1860 O 9.992481 17.630547 2.228887 402 1861 1862 + 1861 H 10.766809 17.530717 1.634799 403 1860 + 1862 H 9.806200 16.754569 2.642189 403 1860 + 1863 O 24.337802 -5.112482 8.921340 402 1864 1865 + 1864 H 24.079827 -4.328771 8.467115 403 1863 + 1865 H 24.773308 -4.851600 9.745303 403 1863 + 1866 O 14.392943 4.303039 -14.169804 402 1867 1868 + 1867 H 15.354569 4.444986 -14.451391 403 1866 + 1868 H 13.827235 4.378323 -14.920116 403 1866 + 1869 O 13.209648 -16.451396 -6.580199 402 1870 1871 + 1870 H 13.147603 -16.683269 -5.631990 403 1869 + 1871 H 12.554494 -16.916090 -7.141613 403 1869 + 1872 O -11.258451 -8.728449 -17.504889 402 1873 1874 + 1873 H -10.630935 -8.841887 -16.742169 403 1872 + 1874 H -10.880429 -7.995350 -17.987253 403 1872 + 1875 O 6.970091 -11.502288 7.137693 402 1876 1877 + 1876 H 6.712825 -11.950891 7.959605 403 1875 + 1877 H 6.204207 -11.628119 6.619766 403 1875 + 1878 O -10.553038 -2.495546 -20.126478 402 1879 1880 + 1879 H -11.112035 -2.806841 -20.861108 403 1878 + 1880 H -10.112026 -1.746092 -20.545249 403 1878 + 1881 O 1.164804 16.447528 -16.932229 402 1882 1883 + 1882 H 1.075245 17.028648 -17.728070 403 1881 + 1883 H 0.434843 16.567725 -16.272167 403 1881 + 1884 O 8.169876 -8.073942 10.663670 402 1885 1886 + 1885 H 8.495588 -8.362155 9.831946 403 1884 + 1886 H 7.357988 -8.507192 10.922724 403 1884 + 1887 O -9.618401 15.869865 -1.419048 402 1888 1889 + 1888 H -10.476694 15.771852 -1.849867 403 1887 + 1889 H -9.747028 16.624761 -0.845144 403 1887 + 1890 O -16.212359 4.292450 15.905633 402 1891 1892 + 1891 H -15.313397 4.006789 16.095169 403 1890 + 1892 H -16.439629 4.732906 16.740073 403 1890 + 1893 O 21.084596 9.207592 -17.940912 402 1894 1895 + 1894 H 20.944531 8.655711 -18.738875 403 1893 + 1895 H 20.567153 10.036337 -17.965821 403 1893 + 1896 O 6.469383 -5.770861 20.006921 402 1897 1898 + 1897 H 5.993567 -6.597617 19.829705 403 1896 + 1898 H 7.305198 -6.017049 20.409842 403 1896 + 1899 O 17.758755 -18.446472 11.244435 402 1900 1901 + 1900 H 16.943206 -18.055205 11.026410 403 1899 + 1901 H 17.620974 -18.589448 12.216673 403 1899 + 1902 O 2.239377 -2.639523 -18.372832 402 1903 1904 + 1903 H 2.961435 -2.802836 -17.698014 403 1902 + 1904 H 2.575925 -2.857520 -19.307575 403 1902 + 1905 O 21.718884 10.313541 3.085849 402 1906 1907 + 1906 H 21.842990 10.122072 2.194243 403 1905 + 1907 H 20.773441 10.408461 3.286860 403 1905 + 1908 O 13.337112 -4.261456 -15.095198 402 1909 1910 + 1909 H 12.794211 -4.900007 -14.644470 403 1908 + 1910 H 14.199509 -4.728814 -15.315507 403 1908 + 1911 O -9.310962 9.865254 8.826714 402 1912 1913 + 1912 H -9.669554 9.579689 7.984792 403 1911 + 1913 H -9.735207 9.276237 9.445171 403 1911 + 1914 O -15.178299 -9.566992 -12.324180 402 1915 1916 + 1915 H -15.367699 -10.462879 -12.630414 403 1914 + 1916 H -14.646062 -9.588613 -11.528432 403 1914 + 1917 O -15.859885 -9.750776 8.964734 402 1918 1919 + 1918 H -15.304809 -9.850444 8.125201 403 1917 + 1919 H -16.789316 -9.705790 8.757985 403 1917 + 1920 O -25.239908 11.310293 -1.569623 402 1921 1922 + 1921 H -25.920791 10.663431 -1.377427 403 1920 + 1922 H -24.373594 10.784234 -1.594237 403 1920 + 1923 O 24.834518 19.880125 -12.068838 402 1924 1925 + 1924 H 24.902598 19.037821 -11.641999 403 1923 + 1925 H 24.569359 20.529336 -11.363034 403 1923 + 1926 O -4.910084 -12.441089 2.868321 402 1927 1928 + 1927 H -4.196304 -12.571833 3.512128 403 1926 + 1928 H -4.472778 -12.489053 1.987214 403 1926 + 1929 O 26.315754 13.248691 -3.958358 402 1930 1931 + 1930 H 27.266655 13.212107 -4.180929 403 1929 + 1931 H 26.465406 13.335958 -3.028348 403 1929 + 1932 O 24.328527 13.817013 16.149181 402 1933 1934 + 1933 H 24.827781 14.030624 16.932358 403 1932 + 1934 H 24.179636 14.591188 15.603219 403 1932 + 1935 O 21.962373 -16.827624 8.004516 402 1936 1937 + 1936 H 22.598048 -16.206072 7.580939 403 1935 + 1937 H 22.450590 -17.261823 8.740917 403 1935 + 1938 O -4.825363 -16.614974 -12.877741 402 1939 1940 + 1939 H -4.014790 -16.722031 -13.388018 403 1938 + 1940 H -4.509200 -15.980807 -12.256351 403 1938 + 1941 O 23.185997 6.818710 7.631707 402 1942 1943 + 1942 H 24.005009 7.366044 7.817913 403 1941 + 1943 H 22.474898 7.499325 7.506791 403 1941 + 1944 O 6.937383 5.850956 20.832797 402 1945 1946 + 1945 H 7.490164 6.651357 20.679338 403 1944 + 1946 H 6.435673 5.734889 20.013467 403 1944 + 1947 O 25.402656 -2.159701 -17.957744 402 1948 1949 + 1948 H 25.621496 -3.084064 -17.880786 403 1947 + 1949 H 25.529344 -1.860574 -18.911595 403 1947 + 1950 O 10.846509 -11.228008 2.120758 402 1951 1952 + 1951 H 9.913338 -11.028888 2.277705 403 1950 + 1952 H 11.049198 -10.691152 1.384887 403 1950 + 1953 O 23.084559 -1.383675 -1.852278 402 1954 1955 + 1954 H 23.773226 -1.138388 -2.498419 403 1953 + 1955 H 22.268498 -0.905061 -2.136333 403 1953 + 1956 O -25.783789 -13.543097 -4.342707 402 1957 1958 + 1957 H -26.780798 -13.463014 -4.533505 403 1956 + 1958 H -25.653740 -14.383466 -3.955333 403 1956 + 1959 O 1.861632 12.171063 18.076482 402 1960 1961 + 1960 H 2.556591 11.916600 18.652688 403 1959 + 1961 H 1.260792 12.537866 18.715290 403 1959 + 1962 O -19.142537 14.105154 8.572032 402 1963 1964 + 1963 H -19.793181 13.415150 8.631452 403 1962 + 1964 H -19.398536 14.384324 7.672644 403 1962 + 1965 O 9.479353 -2.096525 -4.320850 402 1966 1967 + 1966 H 10.426570 -2.240688 -4.643403 403 1965 + 1967 H 9.264888 -1.350839 -4.888316 403 1965 + 1968 O 3.551422 -11.576062 19.271265 402 1969 1970 + 1969 H 4.336383 -11.005500 19.220941 403 1968 + 1970 H 3.612389 -12.122719 20.093542 403 1968 + 1971 O -18.654239 -9.535541 17.560019 402 1972 1973 + 1972 H -17.877715 -9.179943 17.854976 403 1971 + 1973 H -18.494513 -10.119241 16.820922 403 1971 + 1974 O 22.066324 -17.399278 -0.499821 402 1975 1976 + 1975 H 21.820234 -16.674838 0.099599 403 1974 + 1976 H 21.433067 -17.360481 -1.209273 403 1974 + 1977 O -9.234082 15.614627 11.653381 402 1978 1979 + 1978 H -8.328429 15.947628 11.735875 403 1977 + 1979 H -9.156328 14.657428 11.604942 403 1977 + 1980 O 22.367726 20.360775 16.024793 402 1981 1982 + 1981 H 21.845316 20.438168 16.820627 403 1980 + 1982 H 23.011426 21.038841 16.155608 403 1980 + 1983 O 25.827187 -16.169219 18.903921 402 1984 1985 + 1984 H 25.252638 -15.420311 18.639632 403 1983 + 1985 H 25.326971 -16.554629 19.621305 403 1983 + 1986 O -19.668270 -7.707320 -8.620499 402 1987 1988 + 1987 H -19.491830 -6.794820 -8.636334 403 1986 + 1988 H -20.495353 -7.784914 -8.110009 403 1986 + 1989 O -15.712732 17.116061 17.387342 402 1990 1991 + 1990 H -14.998205 17.679818 17.573935 403 1989 + 1991 H -16.301994 17.627283 16.828989 403 1989 + 1992 O 0.390078 14.938221 -20.122911 402 1993 1994 + 1993 H -0.551277 14.873494 -20.329275 403 1992 + 1994 H 0.539841 14.256395 -19.453229 403 1992 + 1995 O 15.977716 -18.683555 17.772786 402 1996 1997 + 1996 H 15.456606 -18.921580 16.979089 403 1995 + 1997 H 16.280568 -17.751033 17.661557 403 1995 + 1998 O 5.239306 11.123091 17.557541 402 1999 2000 + 1999 H 4.918202 10.242467 17.653834 403 1998 + 2000 H 6.086403 10.952070 18.021365 403 1998 + 2001 O 9.328850 -5.185156 13.272163 402 2002 2003 + 2002 H 9.601653 -6.131901 13.229534 403 2001 + 2003 H 9.762360 -4.740121 12.531719 403 2001 + 2004 O 25.477790 -8.345165 0.584885 402 2005 2006 + 2005 H 25.598427 -7.389198 0.879361 403 2004 + 2006 H 26.086040 -8.798249 1.118095 403 2004 + 2007 O 17.311830 -17.527015 -10.578123 402 2008 2009 + 2008 H 17.719447 -16.732289 -10.965110 403 2007 + 2009 H 16.654082 -17.252150 -9.925765 403 2007 + 2010 O -4.429164 -9.201790 -14.116626 402 2011 2012 + 2011 H -4.244658 -8.992311 -13.212737 403 2010 + 2012 H -5.336375 -8.936542 -14.234036 403 2010 + 2013 O 2.267339 -4.673980 16.117302 402 2014 2015 + 2014 H 3.232259 -4.591281 16.113612 403 2013 + 2015 H 1.900019 -4.413838 16.958419 403 2013 + 2016 O 25.781004 -8.714690 8.400591 402 2017 2018 + 2017 H 24.912042 -8.751175 8.867313 403 2016 + 2018 H 25.752072 -9.508607 7.845086 403 2016 + 2019 O 24.780338 7.832712 -16.490027 402 2020 2021 + 2020 H 25.553470 8.297242 -16.909830 403 2019 + 2021 H 24.349053 7.422109 -17.205903 403 2019 + 2022 O -10.973211 -14.579748 -20.349565 402 2023 2024 + 2023 H -11.809581 -14.181319 -20.199526 403 2022 + 2024 H -11.271798 -15.372634 -20.833354 403 2022 + 2025 O 20.831402 -9.834964 6.727716 402 2026 2027 + 2026 H 21.613032 -10.442134 6.754402 403 2025 + 2027 H 20.647604 -9.731183 7.657599 403 2025 + 2028 O 0.619789 -15.810628 3.994148 402 2029 2030 + 2029 H 0.887335 -16.417198 3.309856 403 2028 + 2030 H 1.249715 -15.910162 4.713083 403 2028 + 2031 O 23.689965 0.227417 -19.055575 402 2032 2033 + 2032 H 23.390627 1.115135 -18.834814 403 2031 + 2033 H 24.618115 0.214091 -18.686279 403 2031 + 2034 O -19.356143 -14.966182 6.464534 402 2035 2036 + 2035 H -18.731353 -14.875616 7.195912 403 2034 + 2036 H -19.299498 -14.034705 6.108709 403 2034 + 2037 O -4.810820 7.093213 18.692708 402 2038 2039 + 2038 H -4.214506 7.397678 17.991691 403 2037 + 2039 H -5.304442 7.897279 18.897729 403 2037 + 2040 O 12.472494 14.825856 12.199392 402 2041 2042 + 2041 H 11.666376 14.488038 12.655650 403 2040 + 2042 H 12.151762 15.361991 11.488854 403 2040 + 2043 O -2.525590 -19.553036 -5.583420 402 2044 2045 + 2044 H -3.387077 -20.012041 -5.603558 403 2043 + 2045 H -1.916602 -19.904101 -6.266561 403 2043 + 2046 O -13.215935 11.484331 -2.785220 402 2047 2048 + 2047 H -12.887174 11.682417 -1.972234 403 2046 + 2048 H -12.509591 11.786661 -3.422263 403 2046 + 2049 O 13.801640 -19.398163 -2.800474 402 2050 2051 + 2050 H 12.819741 -19.619737 -2.646754 403 2049 + 2051 H 13.897982 -19.592042 -3.772199 403 2049 + 2052 O -26.233001 19.527836 -20.067788 402 2053 2054 + 2053 H -25.451886 18.897692 -20.194468 403 2052 + 2054 H -26.399315 19.934622 -20.917526 403 2052 + 2055 O 8.349896 -20.273103 -5.512912 402 2056 2057 + 2056 H 8.674030 -19.375363 -5.549945 403 2055 + 2057 H 7.700037 -20.342277 -4.787842 403 2055 + 2058 O -15.037355 -17.935516 15.211469 402 2059 2060 + 2059 H -14.146082 -18.339695 15.389947 403 2058 + 2060 H -15.202223 -17.984699 14.215392 403 2058 + 2061 O 8.152699 -3.220333 -19.381684 402 2062 2063 + 2062 H 7.762730 -2.473688 -19.830286 403 2061 + 2063 H 8.435795 -2.793242 -18.522747 403 2061 + 2064 O 10.849575 20.172811 -12.945894 402 2065 2066 + 2065 H 9.989543 19.760584 -12.890237 403 2064 + 2066 H 10.974253 20.477018 -13.831243 403 2064 + 2067 O -18.094216 -18.088456 -0.091619 402 2068 2069 + 2068 H -17.380813 -18.647373 0.106032 403 2067 + 2069 H -18.936664 -18.511988 -0.052421 403 2067 + 2070 O 23.784383 -1.234714 -8.545459 402 2071 2072 + 2071 H 23.004694 -0.954068 -8.088149 403 2070 + 2072 H 23.886388 -2.202962 -8.397824 403 2070 + 2073 O 4.670856 19.296845 -6.507264 402 2074 2075 + 2074 H 5.525567 19.132893 -6.020467 403 2073 + 2075 H 4.474979 18.536310 -7.056492 403 2073 + 2076 O 9.453183 -16.128245 10.894262 402 2077 2078 + 2077 H 9.172486 -17.052303 10.804233 403 2076 + 2078 H 8.694890 -15.636054 10.554101 403 2076 + 2079 O 27.285633 -19.419687 13.608447 402 2080 2081 + 2080 H 27.147712 -20.155434 14.224268 403 2079 + 2081 H 27.432376 -19.841205 12.735609 403 2079 + 2082 O -13.953143 18.767914 -18.628277 402 2083 2084 + 2083 H -14.509541 18.177509 -19.151919 403 2082 + 2084 H -14.459773 19.481659 -18.276757 403 2082 + 2085 O -8.503297 -13.558947 20.139036 402 2086 2087 + 2086 H -9.241112 -13.897460 20.705789 403 2085 + 2087 H -7.777412 -13.533354 20.859006 403 2085 + 2088 O 14.842167 15.398345 -11.842827 402 2089 2090 + 2089 H 14.711447 15.430309 -12.769279 403 2088 + 2090 H 14.422321 14.556870 -11.583006 403 2088 + 2091 O 23.515535 -17.148566 -6.707313 402 2092 2093 + 2092 H 22.824916 -16.517939 -6.421660 403 2091 + 2093 H 24.263955 -17.052636 -6.082683 403 2091 + 2094 O 19.904467 -17.703379 -13.473161 402 2095 2096 + 2095 H 20.119864 -16.820025 -13.921272 403 2094 + 2096 H 18.948028 -17.662123 -13.295016 403 2094 + 2097 O -9.019729 7.630624 20.233912 402 2098 2099 + 2098 H -8.958585 7.872806 21.205680 403 2097 + 2099 H -8.777610 8.395080 19.734355 403 2097 + 2100 O -16.953402 12.468570 8.282984 402 2101 2102 + 2101 H -17.680339 13.160784 8.478943 403 2100 + 2102 H -17.500933 11.923064 7.633961 403 2100 + 2103 O -8.054795 18.180983 8.459840 402 2104 2105 + 2104 H -8.807469 17.559774 8.499933 403 2103 + 2105 H -7.598916 17.959389 7.659706 403 2103 + 2106 O 10.859202 13.972660 9.371520 402 2107 2108 + 2107 H 10.330904 14.662590 8.917941 403 2106 + 2108 H 11.760678 13.901317 8.995461 403 2106 + 2109 O -20.599796 5.434907 14.082586 402 2110 2111 + 2110 H -19.823357 5.807091 13.669543 403 2109 + 2111 H -20.650272 4.587948 13.614754 403 2109 + 2112 O 0.190160 0.223418 -18.957409 402 2113 2114 + 2113 H 0.213080 -0.260216 -19.803123 403 2112 + 2114 H -0.108015 1.088627 -19.162666 403 2112 + 2115 O -14.055059 -11.353804 -4.019394 402 2116 2117 + 2116 H -14.940567 -11.063742 -3.674139 403 2115 + 2117 H -13.870222 -12.125592 -3.430663 403 2115 + 2118 O 16.635849 17.308753 12.681784 402 2119 2120 + 2119 H 16.261670 16.470264 12.423079 403 2118 + 2120 H 17.008841 17.677123 11.849363 403 2118 + 2121 O -25.308969 5.432856 -17.149527 402 2122 2123 + 2122 H -24.655164 5.918154 -17.671798 403 2121 + 2123 H -24.982451 5.555957 -16.246756 403 2121 + 2124 O -5.099798 0.287541 -14.704188 402 2125 2126 + 2125 H -5.138931 0.519591 -15.635776 403 2124 + 2126 H -4.195405 -0.084328 -14.624163 403 2124 + 2127 O -23.748764 -10.173408 15.212702 402 2128 2129 + 2128 H -23.345980 -11.023651 15.356645 403 2127 + 2129 H -22.994745 -9.539993 15.112815 403 2127 + 2130 O -19.199669 -17.758897 16.946421 402 2131 2132 + 2131 H -19.316903 -16.926776 16.445483 403 2130 + 2132 H -18.281115 -18.078783 16.752689 403 2130 + 2133 O 24.275104 4.639677 -5.172613 402 2134 2135 + 2134 H 24.760810 5.226861 -4.613774 403 2133 + 2135 H 24.701632 4.684738 -6.052735 403 2133 + 2136 O 17.563599 12.903092 3.658695 402 2137 2138 + 2137 H 17.685848 13.560550 2.940588 403 2136 + 2138 H 16.898391 13.306778 4.183635 403 2136 + 2139 O 4.174461 14.293392 18.270873 402 2140 2141 + 2140 H 4.252009 13.308189 18.184247 403 2139 + 2141 H 3.284820 14.507614 18.560426 403 2139 + 2142 O 19.179266 -5.054347 -19.519249 402 2143 2144 + 2143 H 18.780260 -5.604062 -18.845970 403 2142 + 2144 H 19.534147 -5.684633 -20.141388 403 2142 + 2145 O 15.658994 11.957779 13.199900 402 2146 2147 + 2146 H 15.623319 12.838749 12.752640 403 2145 + 2147 H 16.531973 11.890366 13.660327 403 2145 + 2148 O 24.758272 -19.997077 5.366209 402 2149 2150 + 2149 H 24.975628 -20.215262 6.282332 403 2148 + 2150 H 23.761106 -19.988430 5.431807 403 2148 + 2151 O -2.249027 18.570837 -6.683241 402 2152 2153 + 2152 H -2.430859 18.100958 -7.499568 403 2151 + 2153 H -2.994327 18.644727 -6.092295 403 2151 + 2154 O 3.560378 -14.631233 -16.617924 402 2155 2156 + 2155 H 3.964695 -14.691511 -15.761000 403 2154 + 2156 H 3.979389 -13.913756 -17.067597 403 2154 + 2157 O -20.545154 -8.912553 -11.230039 402 2158 2159 + 2158 H -21.471069 -9.085454 -11.070560 403 2157 + 2159 H -20.109583 -8.288894 -10.586743 403 2157 + 2160 O -19.728929 -18.157363 9.832477 402 2161 2162 + 2161 H -20.527618 -17.995705 9.320962 403 2160 + 2162 H -19.366046 -18.994557 9.552804 403 2160 + 2163 O -12.565736 15.723300 8.977635 402 2164 2165 + 2164 H -13.331978 15.327968 8.600724 403 2163 + 2165 H -12.885953 15.953376 9.855856 403 2163 + 2166 O 7.768656 -13.056656 -8.955241 402 2167 2168 + 2167 H 8.048624 -13.789739 -8.425150 403 2166 + 2168 H 8.500788 -12.860524 -9.542256 403 2166 + 2169 O 17.695317 -0.658526 -5.443674 402 2170 2171 + 2170 H 16.888949 -0.180431 -5.230393 403 2169 + 2171 H 17.868907 -0.568768 -6.336008 403 2169 + 2172 O -26.474265 -17.668366 15.551800 402 2173 2174 + 2173 H -25.973432 -16.911585 15.255881 403 2172 + 2174 H -26.867392 -18.124201 14.764520 403 2172 + 2175 O 20.955024 16.299890 1.156790 402 2176 2177 + 2176 H 20.921523 15.384753 1.335509 403 2175 + 2177 H 20.079452 16.568627 1.085050 403 2175 + 2178 O -23.821616 -1.174086 5.308601 402 2179 2180 + 2179 H -24.669920 -1.473611 4.967755 403 2178 + 2180 H -23.878862 -0.261519 5.469448 403 2178 + 2181 O -25.063965 -17.135593 -5.451522 402 2182 2183 + 2182 H -24.564833 -16.443850 -5.938694 403 2181 + 2183 H -25.016214 -17.933665 -5.953179 403 2181 + 2184 O 8.668628 -10.867057 3.901078 402 2185 2186 + 2185 H 7.746163 -11.110803 3.959883 403 2184 + 2186 H 8.752868 -10.022287 4.307352 403 2184 + 2187 O 5.527084 -9.208555 11.411321 402 2188 2189 + 2188 H 4.725607 -8.751662 11.714973 403 2187 + 2189 H 5.164735 -10.130404 11.316322 403 2187 + 2190 O -9.337532 -6.457757 20.443267 402 2191 2192 + 2191 H -9.836709 -6.506988 19.607051 403 2190 + 2192 H -8.808476 -7.295450 20.450087 403 2190 + 2193 O 19.513522 2.780765 9.780761 402 2194 2195 + 2194 H 19.329574 3.702885 9.602934 403 2193 + 2195 H 18.756331 2.266956 9.355945 403 2193 + 2196 O -0.037870 9.082570 10.914997 402 2197 2198 + 2197 H -0.144923 8.896093 11.865591 403 2196 + 2198 H 0.659909 9.734037 10.785946 403 2196 + 2199 O 21.027998 -15.348739 14.790857 402 2200 2201 + 2200 H 21.254465 -15.801776 13.888722 403 2199 + 2201 H 20.075738 -15.400354 14.845656 403 2199 + 2202 O 14.156515 -11.391327 -14.361896 402 2203 2204 + 2203 H 14.547773 -11.645291 -13.478079 403 2202 + 2204 H 14.944302 -11.067054 -14.899771 403 2202 + 2205 O -25.175320 17.336673 -10.823444 402 2206 2207 + 2206 H -24.334636 17.464575 -11.235937 403 2205 + 2207 H -25.742033 18.106292 -10.995823 403 2205 + 2208 O -4.110604 17.298456 -14.084863 402 2209 2210 + 2209 H -5.063030 17.631527 -14.014860 403 2208 + 2210 H -3.534872 17.849349 -13.549744 403 2208 + 2211 O -8.725501 -4.824788 13.985429 402 2212 2213 + 2212 H -8.885224 -4.493817 14.844915 403 2211 + 2213 H -9.307957 -4.341036 13.364528 403 2211 + 2214 O -16.804142 -4.642352 -8.769233 402 2215 2216 + 2215 H -16.450670 -4.499749 -7.869595 403 2214 + 2216 H -16.368056 -3.963859 -9.273107 403 2214 + 2217 O -13.154274 13.347332 -10.792162 402 2218 2219 + 2218 H -13.404917 13.942330 -10.034598 403 2217 + 2219 H -12.589084 12.641097 -10.473229 403 2217 + 2220 O -8.087285 12.645852 17.838668 402 2221 2222 + 2221 H -8.371003 13.597239 17.804934 403 2220 + 2222 H -8.469236 12.290110 16.988633 403 2220 + 2223 O -22.931798 10.095495 10.652715 402 2224 2225 + 2224 H -23.213802 9.766315 11.531742 403 2223 + 2225 H -23.320207 11.046413 10.700380 403 2223 + 2226 O -20.983751 11.377312 6.751864 402 2227 2228 + 2227 H -21.503099 10.599928 6.692621 403 2226 + 2228 H -21.162587 11.703483 7.660694 403 2226 + 2229 O -9.661190 -11.046578 19.483449 402 2230 2231 + 2230 H -9.724620 -11.203957 20.428241 403 2229 + 2231 H -9.182029 -11.809683 19.119545 403 2229 + 2232 O 20.353500 0.575918 7.152755 402 2233 2234 + 2233 H 20.303576 0.620770 8.117649 403 2232 + 2234 H 20.337320 -0.339163 6.903512 403 2232 + 2235 O 15.990143 -2.457675 4.143017 402 2236 2237 + 2236 H 15.489807 -1.953955 3.480334 403 2235 + 2237 H 15.653499 -2.040453 4.954556 403 2235 + 2238 O -2.567783 16.482281 -16.807948 402 2239 2240 + 2239 H -3.050946 16.892783 -16.078496 403 2238 + 2240 H -2.535318 17.087619 -17.572948 403 2238 + 2241 O -16.459463 12.994478 3.247220 402 2242 2243 + 2242 H -16.263104 13.723100 3.963882 403 2241 + 2243 H -16.915538 12.273221 3.618885 403 2241 + 2244 O -19.849611 -12.213163 -10.741659 402 2245 2246 + 2245 H -19.664050 -11.750480 -11.517833 403 2244 + 2246 H -20.220973 -11.559473 -10.070660 403 2244 + 2247 O 9.529408 -8.147204 4.860752 402 2248 2249 + 2248 H 9.247691 -7.588893 5.626073 403 2247 + 2249 H 10.362750 -8.519549 5.100951 403 2247 + 2250 O 21.538384 -19.843213 20.537686 402 2251 2252 + 2251 H 20.838857 -19.226662 20.298246 403 2250 + 2252 H 21.322950 -20.195215 21.445033 403 2250 + 2253 O -17.414751 11.192172 -0.613866 402 2254 2255 + 2254 H -16.961551 11.804357 -1.153593 403 2253 + 2255 H -16.725569 10.585952 -0.366735 403 2253 + 2256 O -21.091905 1.428060 -3.164120 402 2257 2258 + 2257 H -21.397983 0.608166 -3.585164 403 2256 + 2258 H -21.036566 1.285518 -2.209763 403 2256 + 2259 O 4.570809 -15.227797 -13.905090 402 2260 2261 + 2260 H 5.091400 -16.090349 -13.835376 403 2259 + 2261 H 4.857834 -14.567263 -13.304845 403 2259 + 2262 O 10.258640 0.903759 11.623534 402 2263 2264 + 2263 H 10.598017 1.120991 12.514742 403 2262 + 2264 H 10.521679 1.552470 11.006853 403 2262 + 2265 O 17.642778 19.808652 2.346246 402 2266 2267 + 2266 H 17.869355 20.445525 1.653123 403 2265 + 2267 H 18.518553 19.467904 2.662406 403 2265 + 2268 O -22.563090 -16.244370 16.474521 402 2269 2270 + 2269 H -22.037402 -15.816362 17.175370 403 2268 + 2270 H -22.163193 -17.008155 16.111897 403 2268 + 2271 O -21.737447 10.632642 0.323883 402 2272 2273 + 2272 H -22.138870 9.972645 -0.310600 403 2271 + 2273 H -20.878663 10.242561 0.662313 403 2271 + 2274 O 4.943953 4.514136 10.142833 402 2275 2276 + 2275 H 4.093975 4.955485 10.181030 403 2274 + 2276 H 5.290181 4.560969 11.077254 403 2274 + 2277 O 27.098096 16.972617 9.553607 402 2278 2279 + 2278 H 27.164532 17.549674 10.320006 403 2277 + 2279 H 26.222145 17.230319 9.158216 403 2277 + 2280 O 9.975471 10.519219 19.375075 402 2281 2282 + 2281 H 10.438521 9.921274 18.809666 403 2280 + 2282 H 10.113621 10.195006 20.328269 403 2280 + 2283 O 19.572560 8.531305 -14.059063 402 2284 2285 + 2284 H 20.062311 8.733262 -13.213496 403 2283 + 2285 H 20.153062 7.889577 -14.538183 403 2283 + 2286 O -7.918488 -2.954663 -18.780336 402 2287 2288 + 2287 H -7.314540 -2.910798 -19.514402 403 2286 + 2288 H -8.797924 -3.116600 -19.166228 403 2286 + 2289 O 19.686374 -16.545236 11.269807 402 2290 2291 + 2290 H 18.989129 -17.260241 11.377153 403 2289 + 2291 H 19.219253 -15.710481 11.534976 403 2289 + 2292 O 27.391573 13.462198 15.739536 402 2293 2294 + 2293 H 26.622656 13.814429 16.131734 403 2292 + 2294 H 28.086271 13.184682 16.372753 403 2292 + 2295 O 18.671829 14.132646 1.432787 402 2296 2297 + 2296 H 18.377115 15.035385 1.296775 403 2295 + 2297 H 19.190360 13.851325 0.615983 403 2295 + 2298 O -12.681771 -19.875375 -9.428073 402 2299 2300 + 2299 H -12.883609 -20.344329 -8.608964 403 2298 + 2300 H -13.567320 -19.451635 -9.646126 403 2298 + 2301 O 10.029899 9.448526 2.506329 402 2302 2303 + 2302 H 9.228082 9.803143 2.872633 403 2301 + 2303 H 10.370666 8.711255 3.072050 403 2301 + 2304 O 6.829895 1.451627 -19.901465 402 2305 2306 + 2305 H 5.933644 1.521889 -20.328666 403 2304 + 2306 H 6.997933 0.508973 -20.108952 403 2304 + 2307 O 11.280235 -14.880225 18.973288 402 2308 2309 + 2308 H 11.853282 -14.806884 19.759711 403 2307 + 2309 H 11.206610 -13.922929 18.647648 403 2307 + 2310 O -13.509311 20.508361 -14.696662 402 2311 2312 + 2311 H -13.366236 21.153458 -13.979706 403 2310 + 2312 H -13.642549 19.724179 -14.192639 403 2310 + 2313 O 15.445671 -17.794973 -8.479139 402 2314 2315 + 2314 H 14.669400 -17.783629 -7.901271 403 2313 + 2315 H 15.605108 -18.746647 -8.547881 403 2313 + 2316 O -18.852558 16.377330 10.008262 402 2317 2318 + 2317 H -18.954566 15.472318 9.697097 403 2316 + 2318 H -18.836824 16.305839 10.975588 403 2316 + 2319 O -3.265075 16.259228 2.098989 402 2320 2321 + 2320 H -3.687496 16.647682 2.840607 403 2319 + 2321 H -3.231168 15.327934 2.400445 403 2319 + 2322 O 23.408970 8.557256 -2.138126 402 2323 2324 + 2323 H 23.726381 8.828223 -3.046334 403 2322 + 2324 H 24.153951 8.006209 -1.806696 403 2322 + 2325 O -18.228938 -7.461297 -20.804424 402 2326 2327 + 2326 H -17.795687 -7.325321 -21.656583 403 2325 + 2327 H -19.188295 -7.558977 -20.991723 403 2325 + 2328 O 14.146043 8.886880 -14.615085 402 2329 2330 + 2329 H 13.553393 8.171127 -14.600739 403 2328 + 2330 H 15.003303 8.599303 -14.311172 403 2328 + 2331 O 20.665164 -4.419654 -16.715421 402 2332 2333 + 2332 H 20.745422 -5.254288 -17.245683 403 2331 + 2333 H 20.538188 -3.785743 -17.440686 403 2331 + 2334 O -26.165001 -17.430791 -11.871737 402 2335 2336 + 2335 H -26.769662 -17.569088 -12.614295 403 2334 + 2336 H -25.372303 -17.816712 -12.251152 403 2334 + 2337 O 8.380243 12.002311 -18.225092 402 2338 2339 + 2338 H 9.331509 12.039099 -17.900481 403 2337 + 2339 H 7.935426 11.441291 -17.531137 403 2337 + 2340 O 16.095732 -15.248679 -18.961804 402 2341 2342 + 2341 H 16.404115 -16.023436 -19.441838 403 2340 + 2342 H 15.279718 -15.501183 -18.509138 403 2340 + 2343 O 22.345963 -0.521889 9.487232 402 2344 2345 + 2344 H 22.570555 0.299269 9.062706 403 2343 + 2345 H 21.500534 -0.394595 9.878388 403 2343 + 2346 O -5.612444 19.185073 -9.536350 402 2347 2348 + 2347 H -5.038468 18.530538 -9.043403 403 2346 + 2348 H -6.014867 19.664271 -8.828529 403 2346 + 2349 O -25.317965 -13.476019 -10.680751 402 2350 2351 + 2350 H -24.422815 -13.795959 -10.857483 403 2349 + 2351 H -25.587407 -14.286723 -10.139795 403 2349 + 2352 O 5.097575 -2.791870 -18.340648 402 2353 2354 + 2353 H 5.426002 -3.124971 -17.421700 403 2352 + 2354 H 5.173769 -1.845992 -18.214725 403 2352 + 2355 O -12.050426 13.594034 -0.308748 402 2356 2357 + 2356 H -12.143354 14.332220 -0.865135 403 2355 + 2357 H -12.835416 13.379684 0.170780 403 2355 + 2358 O 21.220086 12.431770 7.373850 402 2359 2360 + 2359 H 20.289621 12.356271 7.355050 403 2358 + 2360 H 21.528409 11.600369 6.969319 403 2358 + 2361 O -11.849558 -15.011079 -4.217755 402 2362 2363 + 2362 H -12.535045 -15.564610 -4.601476 403 2361 + 2363 H -11.261594 -15.726054 -3.732481 403 2361 + 2364 O 19.540600 10.648547 -0.222993 402 2365 2366 + 2365 H 19.073765 10.676651 0.596923 403 2364 + 2366 H 19.853650 11.516176 -0.351029 403 2364 + 2367 O -1.367659 10.060973 3.255905 402 2368 2369 + 2368 H -0.787645 10.846481 3.221548 403 2367 + 2369 H -0.921325 9.404127 2.683633 403 2367 + 2370 O 17.574245 20.192556 -13.486878 402 2371 2372 + 2371 H 18.041333 19.630746 -14.072375 403 2370 + 2372 H 18.127340 20.293838 -12.705179 403 2370 + 2373 O -18.105957 7.325844 1.685035 402 2374 2375 + 2374 H -17.284929 7.597738 2.015915 403 2373 + 2375 H -18.515197 8.193099 1.440712 403 2373 + 2376 O -25.771851 -0.494052 1.833459 402 2377 2378 + 2377 H -26.562791 0.014660 2.156519 403 2376 + 2378 H -25.800109 -0.615443 0.880744 403 2376 + 2379 O 13.515684 3.091718 8.129575 402 2380 2381 + 2380 H 12.824035 3.780462 8.011639 403 2379 + 2381 H 13.855067 3.149101 9.026041 403 2379 + 2382 O 15.024255 -12.331971 18.507086 402 2383 2384 + 2383 H 14.688886 -12.986046 17.868523 403 2382 + 2384 H 14.285850 -11.759175 18.796860 403 2382 + 2385 O 10.503062 -17.208661 -17.537094 402 2386 2387 + 2386 H 10.869560 -17.224545 -18.470986 403 2385 + 2387 H 10.144441 -18.040582 -17.343990 403 2385 + 2388 O 2.330431 13.849933 -16.758821 402 2389 2390 + 2389 H 1.519885 13.548197 -17.169816 403 2388 + 2390 H 2.257199 14.793756 -16.760513 403 2388 + 2391 O -23.129172 -9.148548 -12.092521 402 2392 2393 + 2392 H -24.075243 -8.995756 -12.000743 403 2391 + 2393 H -23.086180 -10.039746 -12.445685 403 2391 + 2394 O -17.448662 -1.079141 -7.931513 402 2395 2396 + 2395 H -17.738453 -1.885709 -7.374659 403 2394 + 2396 H -18.172042 -1.099635 -8.625421 403 2394 + 2397 O 24.048570 -3.763661 -7.564125 402 2398 2399 + 2398 H 24.193240 -3.884883 -6.642519 403 2397 + 2399 H 24.456227 -4.566888 -7.925689 403 2397 + 2400 O -17.808703 -19.337398 7.373130 402 2401 2402 + 2401 H -17.303175 -20.173651 7.501985 403 2400 + 2402 H -17.692612 -19.135904 6.461238 403 2400 + 2403 O 4.319079 -18.666468 -6.315988 402 2404 2405 + 2404 H 4.318654 -19.531271 -6.749054 403 2403 + 2405 H 3.377567 -18.420225 -6.140192 403 2403 + 2406 O 15.744362 14.892988 2.660633 402 2407 2408 + 2407 H 15.944482 15.856708 2.714939 403 2406 + 2408 H 15.301384 14.836913 1.848608 403 2406 + 2409 O -6.829329 -18.727707 2.030136 402 2410 2411 + 2410 H -6.415578 -18.452019 2.842593 403 2409 + 2411 H -6.067476 -19.005491 1.466821 403 2409 + 2412 O 24.121188 19.977112 -20.354495 402 2413 2414 + 2413 H 24.224055 19.319758 -19.652345 403 2412 + 2414 H 24.762727 19.635175 -20.939363 403 2412 + 2415 O 10.579259 -12.534608 5.151755 402 2416 2417 + 2416 H 9.930043 -12.025918 4.646940 403 2415 + 2417 H 11.359927 -12.071097 4.861131 403 2415 + 2418 O 5.967673 -14.216687 -10.676351 402 2419 2420 + 2419 H 6.631855 -14.774737 -11.170158 403 2418 + 2420 H 6.490580 -13.637897 -10.118514 403 2418 + 2421 O 18.539687 -16.102929 15.331204 402 2422 2423 + 2422 H 18.327655 -16.200138 16.203787 403 2421 + 2423 H 17.897003 -15.568195 14.864351 403 2421 + 2424 O -2.895055 -4.676531 11.113797 402 2425 2426 + 2425 H -2.434824 -5.435723 10.710060 403 2424 + 2426 H -2.231401 -4.035506 11.395814 403 2424 + 2427 O -8.133832 14.629593 7.309404 402 2428 2429 + 2428 H -8.851831 15.090624 7.871798 403 2427 + 2429 H -7.946895 13.906109 7.942402 403 2427 + 2430 O 22.250798 0.698906 -0.231699 402 2431 2432 + 2431 H 22.200775 1.664146 -0.197509 403 2430 + 2432 H 22.955911 0.389699 -0.887067 403 2430 + 2433 O 4.057613 14.734523 9.271521 402 2434 2435 + 2434 H 3.560432 15.591515 9.153949 403 2433 + 2435 H 4.938114 14.882755 8.921185 403 2433 + 2436 O -17.698257 12.666615 -4.894250 402 2437 2438 + 2437 H -17.252884 12.676027 -4.012690 403 2436 + 2438 H -18.619276 12.371224 -4.622833 403 2436 + 2439 O 26.668158 -12.819700 -1.311515 402 2440 2441 + 2440 H 27.032009 -13.646800 -1.097954 403 2439 + 2441 H 26.646890 -12.850693 -2.254784 403 2439 + 2442 O 7.224554 13.850996 3.318452 402 2443 2444 + 2443 H 8.019795 14.275937 3.600876 403 2442 + 2444 H 7.668540 12.980654 3.041459 403 2442 + 2445 O 8.952709 -7.047293 -13.075849 402 2446 2447 + 2446 H 9.898167 -6.904505 -13.302591 403 2445 + 2447 H 8.562667 -6.214154 -12.992709 403 2445 + 2448 O -17.814401 -1.840934 -1.803929 402 2449 2450 + 2449 H -18.744975 -1.741200 -1.902642 403 2448 + 2450 H -17.699335 -2.395812 -1.018915 403 2448 + 2451 O -24.621095 6.164997 -14.673611 402 2452 2453 + 2452 H -24.877382 5.755063 -13.785112 403 2451 + 2453 H -23.950276 6.830635 -14.339769 403 2451 + 2454 O 10.479140 -19.025039 18.297194 402 2455 2456 + 2455 H 11.349364 -18.876899 18.653004 403 2454 + 2456 H 10.644550 -19.606803 17.504887 403 2454 + 2457 O -19.101403 14.252398 -1.786055 402 2458 2459 + 2458 H -19.573879 14.657593 -2.525389 403 2457 + 2459 H -19.587903 13.601901 -1.323620 403 2457 + 2460 O 6.717226 1.088539 17.700070 402 2461 2462 + 2461 H 6.231555 1.199419 18.516697 403 2460 + 2462 H 6.881490 0.099135 17.787770 403 2460 + 2463 O -13.643189 -7.863866 -8.730575 402 2464 2465 + 2464 H -14.517866 -7.638837 -9.023604 403 2463 + 2465 H -13.154332 -7.346815 -9.390510 403 2463 + 2466 O -17.730487 0.990816 -0.622980 402 2467 2468 + 2467 H -17.303015 0.205330 -0.935730 403 2466 + 2468 H -17.531444 1.017418 0.308170 403 2466 + 2469 O 25.260176 -10.957318 6.206094 402 2470 2471 + 2470 H 25.876991 -10.477352 5.676397 403 2469 + 2471 H 24.475935 -10.963099 5.603334 403 2469 + 2472 O 14.205628 -17.408033 -13.601399 402 2473 2474 + 2473 H 14.188193 -18.247713 -13.204445 403 2472 + 2474 H 13.713279 -17.625825 -14.405922 403 2472 + 2475 O -20.784853 -15.686238 -5.898849 402 2476 2477 + 2476 H -19.875611 -15.547599 -5.727799 403 2475 + 2477 H -21.245430 -14.929289 -5.375604 403 2475 + 2478 O -22.633197 8.330983 -13.909999 402 2479 2480 + 2479 H -22.233520 9.245054 -13.847024 403 2478 + 2480 H -21.843881 7.942242 -14.256165 403 2478 + 2481 O 11.786714 0.286536 -14.937634 402 2482 2483 + 2482 H 11.786532 -0.671475 -15.215390 403 2481 + 2483 H 11.605445 0.272418 -13.981805 403 2481 + 2484 O 1.681240 0.254113 10.330852 402 2485 2486 + 2485 H 1.597166 -0.618385 10.733271 403 2484 + 2486 H 1.413887 0.849687 11.007136 403 2484 + 2487 O 6.751727 13.837704 8.238736 402 2488 2489 + 2488 H 6.439245 13.979946 7.299037 403 2487 + 2489 H 7.165300 14.697405 8.431164 403 2487 + 2490 O 22.234756 20.556412 6.164713 402 2491 2492 + 2491 H 21.672715 21.351790 6.258812 403 2490 + 2492 H 21.702890 19.818097 6.555926 403 2490 + 2493 O 17.385018 20.449668 10.876882 402 2494 2495 + 2494 H 16.551469 20.156010 10.407413 403 2493 + 2495 H 17.440995 21.384757 10.538556 403 2493 + 2496 O 17.700641 4.527370 19.573010 402 2497 2498 + 2497 H 17.031995 4.431285 20.256942 403 2496 + 2498 H 17.481318 3.724034 19.023628 403 2496 + 2499 O 0.483339 18.111382 -1.823860 402 2500 2501 + 2500 H 0.218803 18.655109 -1.106869 403 2499 + 2501 H 1.294713 18.496788 -2.211913 403 2499 + 2502 O 22.943918 -17.096855 -14.079609 402 2503 2504 + 2503 H 22.830905 -16.325512 -14.742916 403 2502 + 2504 H 22.793828 -16.695124 -13.249381 403 2502 + 2505 O -12.197414 -2.755310 -15.143763 402 2506 2507 + 2506 H -11.972492 -3.409760 -15.785801 403 2505 + 2507 H -11.687560 -1.995802 -15.449188 403 2505 + 2508 O 26.233813 3.059744 -20.109192 402 2509 2510 + 2509 H 25.634066 3.752709 -19.758728 403 2508 + 2510 H 26.841050 3.505495 -20.746283 403 2508 + 2511 O -0.398685 9.886291 -12.320899 402 2512 2513 + 2512 H -0.971500 9.110158 -12.271110 403 2511 + 2513 H -0.140227 10.055684 -11.384852 403 2511 + 2514 O 24.766172 -8.159537 20.532359 402 2515 2516 + 2515 H 24.676407 -7.239089 20.840721 403 2514 + 2516 H 23.932220 -8.459730 20.138818 403 2514 + 2517 O -13.286555 16.304911 0.900630 402 2518 2519 + 2518 H -13.716595 15.953327 1.640887 403 2517 + 2519 H -12.366691 16.365858 1.124146 403 2517 + 2520 O 23.399832 -13.989313 -14.426821 402 2521 2522 + 2521 H 22.828210 -13.569339 -13.765880 403 2520 + 2522 H 23.255649 -13.414985 -15.246789 403 2520 + 2523 O -22.204092 -4.611638 18.736383 402 2524 2525 + 2524 H -21.249902 -4.938147 18.770328 403 2523 + 2525 H -22.211606 -3.716829 18.428273 403 2523 + 2526 O 21.224851 -14.221140 4.789172 402 2527 2528 + 2527 H 20.596044 -14.495409 5.464993 403 2526 + 2528 H 21.036876 -14.781346 3.969428 403 2526 + 2529 O -0.044311 17.960476 1.830489 402 2530 2531 + 2530 H -0.313520 17.147157 1.446425 403 2529 + 2531 H -0.796207 18.542831 1.866711 403 2529 + 2532 O -18.246500 10.701990 6.592891 402 2533 2534 + 2533 H -19.216406 10.992455 6.669125 403 2532 + 2534 H -18.267435 9.771442 6.876019 403 2532 + 2535 O -0.694143 4.494214 14.021020 402 2536 2537 + 2536 H -1.277964 4.997681 13.392435 403 2535 + 2537 H -1.155981 4.663647 14.857205 403 2535 + 2538 O 22.107052 12.819546 -9.903327 402 2539 2540 + 2539 H 21.296704 13.306649 -9.951121 403 2538 + 2540 H 22.688713 13.295428 -10.537192 403 2538 + 2541 O 15.302055 -5.253465 4.034438 402 2542 2543 + 2542 H 15.326181 -4.291521 3.882146 403 2541 + 2543 H 16.042293 -5.540500 3.526531 403 2541 + 2544 O 23.950953 1.271229 5.710913 402 2545 2546 + 2545 H 23.173495 0.716989 5.765239 403 2544 + 2546 H 24.051944 1.770274 6.552925 403 2544 + 2547 O 14.279151 12.647971 15.806599 402 2548 2549 + 2548 H 14.591090 12.573140 14.893038 403 2547 + 2549 H 13.381765 12.300162 15.960467 403 2547 + 2550 O 15.038801 -1.661905 6.589100 402 2551 2552 + 2551 H 15.892587 -1.551660 6.975739 403 2550 + 2552 H 14.462182 -0.875051 6.734929 403 2550 + 2553 O -6.429505 -9.279231 12.087220 402 2554 2555 + 2554 H -6.701830 -10.093703 11.622225 403 2553 + 2555 H -5.612815 -9.032770 11.586921 403 2553 + 2556 O 11.290924 -10.372276 7.217133 402 2557 2558 + 2557 H 10.622389 -10.955150 6.788259 403 2556 + 2558 H 11.616275 -9.796597 6.503882 403 2556 + 2559 O -24.866907 -13.913179 10.222650 402 2560 2561 + 2560 H -24.271979 -13.182736 9.950447 403 2559 + 2561 H -25.017302 -14.420326 9.408453 403 2559 + 2562 O -27.314146 -19.793576 17.380891 402 2563 2564 + 2563 H -27.699149 -20.386657 16.714229 403 2562 + 2564 H -26.959051 -19.085769 16.826343 403 2562 + 2565 O 12.965414 4.595141 18.162499 402 2566 2567 + 2566 H 13.458928 3.797998 18.472673 403 2565 + 2567 H 12.462784 4.369395 17.349650 403 2565 + 2568 O 19.720286 6.716538 19.074363 402 2569 2570 + 2569 H 18.977040 6.161032 19.255447 403 2568 + 2570 H 20.199596 6.784088 19.921433 403 2568 + 2571 O -17.837323 -10.531279 11.466891 402 2572 2573 + 2572 H -18.443320 -10.286485 12.180075 403 2571 + 2573 H -17.136906 -10.892709 12.057832 403 2571 + 2574 O 3.118617 16.201513 -14.560896 402 2575 2576 + 2575 H 2.524275 15.456086 -14.261283 403 2574 + 2576 H 3.153477 16.211998 -15.545130 403 2574 + 2577 O 15.713269 9.977240 -3.550942 402 2578 2579 + 2578 H 16.125798 10.839790 -3.855082 403 2577 + 2579 H 16.256998 9.663172 -2.774134 403 2577 + 2580 O 13.404328 14.288352 8.236302 402 2581 2582 + 2581 H 13.804031 15.222512 8.339581 403 2580 + 2582 H 14.094703 13.583706 8.316160 403 2580 + 2583 O 1.715242 -17.595877 -5.517990 402 2584 2585 + 2584 H 1.864739 -16.803207 -5.011472 403 2583 + 2585 H 1.121502 -17.292257 -6.152942 403 2583 + 2586 O 11.186181 -15.378074 -8.941210 402 2587 2588 + 2587 H 10.964916 -15.109818 -9.814041 403 2586 + 2588 H 11.164732 -14.643976 -8.304569 403 2586 + 2589 O -25.412651 0.765668 -5.618949 402 2590 2591 + 2590 H -25.840497 0.596705 -6.434188 403 2589 + 2591 H -26.027451 1.074079 -4.940438 403 2589 + 2592 O -11.380143 13.107124 -18.001950 402 2593 2594 + 2593 H -12.159770 13.386797 -17.518060 403 2592 + 2594 H -11.627822 13.258638 -18.958908 403 2592 + 2595 O 7.443094 19.776722 19.670510 402 2596 2597 + 2596 H 6.730151 19.191868 19.918965 403 2595 + 2597 H 7.622698 19.719431 18.722036 403 2595 + 2598 O 24.425946 4.299128 7.836287 402 2599 2600 + 2599 H 24.143986 5.210765 7.985415 403 2598 + 2600 H 24.990386 4.054602 8.572061 403 2598 + 2601 O -3.501704 -11.679155 -10.742632 402 2602 2603 + 2602 H -4.397462 -12.025343 -10.633214 403 2601 + 2603 H -3.405610 -11.663721 -11.695424 403 2601 + 2604 O 0.913373 -18.230470 16.876362 402 2605 2606 + 2605 H 0.053834 -18.577145 16.706546 403 2604 + 2606 H 1.398023 -19.065707 17.119688 403 2604 + 2607 O -9.901596 19.393938 15.691257 402 2608 2609 + 2608 H -9.078500 18.954279 15.490614 403 2607 + 2609 H -10.185869 18.992605 16.470215 403 2607 + 2610 O 17.500333 8.706246 -1.323866 402 2611 2612 + 2611 H 18.176182 9.357546 -1.088149 403 2610 + 2612 H 17.886380 7.895975 -1.087485 403 2610 + 2613 O -24.806806 -14.651049 -14.711674 402 2614 2615 + 2614 H -23.905722 -14.363057 -14.892641 403 2613 + 2615 H -25.324843 -13.797568 -14.671497 403 2613 + 2616 O -11.922848 -15.711273 -13.536344 402 2617 2618 + 2617 H -11.771327 -16.170114 -14.379176 403 2616 + 2618 H -11.859275 -16.406199 -12.902056 403 2616 + 2619 O -27.003017 7.585104 3.060101 402 2620 2621 + 2620 H -26.800446 6.932155 2.407207 403 2619 + 2621 H -26.438815 7.393710 3.843574 403 2619 + 2622 O -10.312090 7.223617 10.185454 402 2623 2624 + 2623 H -10.405406 7.379966 11.161275 403 2622 + 2624 H -9.783333 6.436443 10.181461 403 2622 + 2625 O 23.537015 20.390749 -9.649267 402 2626 2627 + 2626 H 23.323982 21.198505 -9.168669 403 2625 + 2627 H 23.931089 19.837314 -8.973454 403 2625 + 2628 O -17.448795 -20.856696 -12.629322 402 2629 2630 + 2629 H -17.613855 -21.585186 -13.226336 403 2628 + 2630 H -18.268235 -20.483922 -12.239203 403 2628 + 2631 O -5.704053 -12.831319 -13.206852 402 2632 2633 + 2632 H -6.332034 -12.109323 -13.311978 403 2631 + 2633 H -4.837836 -12.573450 -13.575508 403 2631 + 2634 O -7.475606 18.168410 15.238194 402 2635 2636 + 2635 H -6.927022 17.679409 15.798229 403 2634 + 2636 H -6.978971 18.983237 14.964387 403 2634 + 2637 O 23.258739 11.168040 16.596096 402 2638 2639 + 2638 H 23.818087 11.847416 16.270136 403 2637 + 2639 H 23.610710 10.307417 16.344734 403 2637 + 2640 O 3.146606 8.327361 -18.713397 402 2641 2642 + 2641 H 3.334432 7.845623 -19.520851 403 2640 + 2642 H 3.621381 9.175132 -18.785471 403 2640 + 2643 O 0.508878 16.181859 6.176221 402 2644 2645 + 2644 H 1.478661 16.383107 6.127134 403 2643 + 2645 H 0.329178 16.140784 7.185704 403 2643 + 2646 O -11.810390 15.699273 5.840977 402 2647 2648 + 2647 H -12.031355 16.450687 6.361038 403 2646 + 2648 H -10.941390 15.840688 5.470174 403 2646 + 2649 O 16.703781 -6.435675 -7.458235 402 2650 2651 + 2650 H 15.950366 -6.851824 -7.907248 403 2649 + 2651 H 16.319676 -6.119538 -6.579472 403 2649 + 2652 O -16.104630 7.738737 15.683306 402 2653 2654 + 2653 H -15.741449 7.072122 15.101362 403 2652 + 2654 H -15.325944 8.330995 15.966646 403 2652 + 2655 O -12.982372 -5.391773 13.641043 402 2656 2657 + 2656 H -13.067158 -6.334773 13.565642 403 2655 + 2657 H -13.835584 -5.074352 13.303582 403 2655 + 2658 O -0.691433 15.384761 -9.798051 402 2659 2660 + 2659 H 0.035655 15.975465 -9.534555 403 2658 + 2660 H -1.411870 15.925295 -10.115684 403 2658 + 2661 O 22.895397 13.997330 -2.879616 402 2662 2663 + 2662 H 23.276050 14.805518 -2.488993 403 2661 + 2663 H 21.981907 14.160579 -3.026251 403 2661 + 2664 O -6.947442 -13.379975 4.783672 402 2665 2666 + 2665 H -6.469058 -13.127559 4.014561 403 2664 + 2666 H -7.365275 -12.581164 5.147764 403 2664 + 2667 O -6.156966 10.605862 2.666376 402 2668 2669 + 2668 H -6.752949 10.183956 3.255572 403 2667 + 2669 H -5.588229 11.111653 3.195145 403 2667 + 2670 O 17.104300 -12.560553 4.419376 402 2671 2672 + 2671 H 16.344172 -13.086998 4.734928 403 2670 + 2672 H 17.420711 -11.981042 5.141534 403 2670 + 2673 O -27.199948 7.334242 -15.333048 402 2674 2675 + 2674 H -26.297948 6.895160 -15.306746 403 2673 + 2675 H -27.693886 6.547850 -15.268217 403 2673 + 2676 O 18.024202 -19.856328 -19.395594 402 2677 2678 + 2677 H 18.487766 -20.698158 -19.394705 403 2676 + 2678 H 17.496643 -19.929970 -20.262172 403 2676 + 2679 O 22.144036 -16.812143 16.683717 402 2680 2681 + 2680 H 21.875393 -16.308766 15.860916 403 2679 + 2681 H 22.479620 -17.614693 16.338233 403 2679 + 2682 O 25.514687 -13.472113 7.132093 402 2683 2684 + 2683 H 25.319079 -13.294653 8.096235 403 2682 + 2684 H 25.494887 -12.570062 6.821050 403 2682 + 2685 O -12.445347 -17.163112 -18.161764 402 2686 2687 + 2686 H -13.331012 -16.853903 -17.823843 403 2685 + 2687 H -12.475852 -18.105485 -18.058376 403 2685 + 2688 O 6.245110 16.618836 2.470683 402 2689 2690 + 2689 H 5.362728 16.987415 2.415415 403 2688 + 2690 H 6.013984 15.709339 2.583315 403 2688 + 2691 O -7.618060 -8.630004 1.461475 402 2692 2693 + 2692 H -8.009714 -7.788174 1.663581 403 2691 + 2693 H -7.300014 -8.871099 2.309214 403 2691 + 2694 O 1.276161 -5.724890 -17.027124 402 2695 2696 + 2695 H 0.639753 -5.451556 -16.374073 403 2694 + 2696 H 1.572713 -6.534640 -16.615769 403 2694 + 2697 O 20.941259 -12.865847 16.430327 402 2698 2699 + 2698 H 21.406858 -13.389929 15.801253 403 2697 + 2699 H 21.410092 -12.085207 16.695307 403 2697 + 2700 O 18.670123 -9.367430 14.139852 402 2701 2702 + 2701 H 17.803568 -9.004865 14.207764 403 2700 + 2702 H 18.435630 -10.292015 14.355155 403 2700 + 2703 O 15.733761 -0.209804 0.007017 402 2704 2705 + 2704 H 15.513443 -0.802742 -0.762427 403 2703 + 2705 H 15.180436 -0.596633 0.738607 403 2703 + 2706 O 20.535815 18.401459 7.207233 402 2707 2708 + 2707 H 20.172747 18.499555 8.120342 403 2706 + 2708 H 19.715556 18.443909 6.669483 403 2706 + 2709 O -19.654075 2.825062 1.617329 402 2710 2711 + 2710 H -20.035859 3.209607 2.473368 403 2709 + 2711 H -19.137175 3.619122 1.285240 403 2709 + 2712 O -5.984107 19.675136 -16.959798 402 2713 2714 + 2713 H -5.160819 19.281994 -17.190879 403 2712 + 2714 H -5.770973 20.610003 -16.990477 403 2712 + 2715 O 26.042716 7.197405 -0.343564 402 2716 2717 + 2716 H 26.688586 6.461363 -0.227844 403 2715 + 2717 H 25.557638 7.239657 0.456505 403 2715 + 2718 O 22.024763 3.604615 -12.891547 402 2719 2720 + 2719 H 21.193970 3.808969 -13.364435 403 2718 + 2720 H 22.195897 4.401136 -12.384999 403 2718 + 2721 O -27.135160 -9.370585 20.643959 402 2722 2723 + 2722 H -28.030228 -9.176750 20.474699 403 2721 + 2723 H -26.577987 -8.800343 20.128692 403 2721 + 2724 O 8.395602 -17.119113 3.456766 402 2725 2726 + 2725 H 8.859834 -17.667269 2.833722 403 2724 + 2726 H 7.655636 -17.591648 3.745120 403 2724 + 2727 O -24.404359 -0.181200 15.657271 402 2728 2729 + 2728 H -25.038728 0.161741 16.314921 403 2727 + 2729 H -24.896501 -0.279136 14.882179 403 2727 + 2730 O -6.891560 5.632315 -20.701537 402 2731 2732 + 2731 H -7.366523 6.287143 -21.223329 403 2730 + 2732 H -7.630504 5.050659 -20.462604 403 2730 + 2733 O -15.566391 -18.747028 -6.177602 402 2734 2735 + 2734 H -15.142312 -18.219593 -5.559758 403 2733 + 2735 H -16.127679 -19.358388 -5.691405 403 2733 + 2736 O -3.401719 -8.548294 5.789954 402 2737 2738 + 2737 H -3.203950 -7.652649 5.894670 403 2736 + 2738 H -3.475505 -8.723091 4.829013 403 2736 + 2739 O -14.869473 17.641299 -11.130330 402 2740 2741 + 2740 H -15.356466 18.395479 -10.824746 403 2739 + 2741 H -14.164630 17.932079 -11.714816 403 2739 + 2742 O -8.566470 9.810858 18.580750 402 2743 2744 + 2743 H -7.826026 10.409943 18.459685 403 2742 + 2744 H -8.595914 9.242196 17.832030 403 2742 + 2745 O 15.884351 -0.825682 -9.976397 402 2746 2747 + 2746 H 16.580456 -1.202192 -10.550817 403 2745 + 2747 H 16.179129 0.090931 -10.023947 403 2745 + 2748 O -6.440363 -16.182406 14.932475 402 2749 2750 + 2749 H -5.547886 -16.002472 14.729390 403 2748 + 2750 H -6.819275 -16.083044 14.039020 403 2748 + 2751 O -15.767451 -12.920838 -5.752541 402 2752 2753 + 2752 H -14.944068 -12.805684 -5.287481 403 2751 + 2753 H -15.473066 -13.122281 -6.647708 403 2751 + 2754 O -17.665031 -20.836176 14.939409 402 2755 2756 + 2755 H -16.990389 -21.130134 14.286529 403 2754 + 2756 H -18.400170 -20.675073 14.279982 403 2754 + 2757 O -22.492854 -19.049287 15.743348 402 2758 2759 + 2758 H -23.226808 -19.456562 15.249983 403 2757 + 2759 H -22.430818 -19.617870 16.566271 403 2757 + 2760 O 18.577331 8.130140 -4.339187 402 2761 2762 + 2761 H 19.102086 8.936870 -4.101075 403 2760 + 2762 H 17.943090 8.097223 -3.622023 403 2760 + 2763 O -8.059195 -11.528283 11.014399 402 2764 2765 + 2764 H -8.491272 -11.206486 10.183267 403 2763 + 2765 H -7.559001 -12.278215 10.621240 403 2763 + 2766 O -0.354476 13.050972 -11.242317 402 2767 2768 + 2767 H -0.049943 12.197330 -10.889757 403 2766 + 2768 H -0.319360 13.679003 -10.509947 403 2766 + 2769 O -22.692724 -6.768839 -13.959385 402 2770 2771 + 2770 H -22.638060 -6.234744 -13.112330 403 2769 + 2771 H -22.909077 -7.637803 -13.626522 403 2769 + 2772 O 4.453531 -16.513982 -10.118567 402 2773 2774 + 2773 H 5.009279 -17.005000 -9.492769 403 2772 + 2774 H 4.837806 -15.680507 -10.286610 403 2772 + 2775 O -14.211895 -3.759096 -20.057898 402 2776 2777 + 2776 H -14.318355 -2.866044 -19.740155 403 2775 + 2777 H -13.541901 -3.847665 -20.736218 403 2775 + 2778 O 26.693079 9.858450 -14.505848 402 2779 2780 + 2779 H 26.995219 9.161898 -15.033866 403 2778 + 2780 H 25.767285 9.604872 -14.294807 403 2778 + 2781 O -1.593304 -2.461499 11.764930 402 2782 2783 + 2782 H -0.575245 -2.524541 11.545614 403 2781 + 2783 H -1.885036 -1.661756 11.286623 403 2781 + 2784 O -19.660824 -20.494500 2.235869 402 2785 2786 + 2785 H -20.078029 -21.333649 2.487444 403 2784 + 2786 H -19.181632 -20.681107 1.379436 403 2784 + 2787 O 4.144088 17.144901 -7.996934 402 2788 2789 + 2788 H 4.141310 16.441147 -7.303669 403 2787 + 2789 H 3.204041 17.192031 -8.237159 403 2787 + 2790 O 24.148563 16.188551 14.675204 402 2791 2792 + 2791 H 24.234269 17.058984 15.034647 403 2790 + 2792 H 23.773522 16.320292 13.788777 403 2790 + 2793 O -11.859704 2.830217 -15.811214 402 2794 2795 + 2794 H -12.674780 3.212291 -15.481544 403 2793 + 2795 H -11.777095 3.234540 -16.701788 403 2793 + 2796 O -14.309989 12.182667 1.560506 402 2797 2798 + 2797 H -13.393237 12.215837 1.842065 403 2796 + 2798 H -14.715876 12.517376 2.368763 403 2796 + 2799 O -7.611903 8.096548 -15.149217 402 2800 2801 + 2800 H -8.323994 7.679983 -15.518143 403 2799 + 2801 H -6.945506 8.015221 -15.887869 403 2799 + 2802 O -19.095296 -11.187670 -3.400222 402 2803 2804 + 2803 H -19.337682 -11.939672 -2.902754 403 2802 + 2804 H -18.131286 -10.890144 -3.347747 403 2802 + 2805 O -3.684618 -18.692360 -9.413075 402 2806 2807 + 2806 H -3.418979 -17.929749 -9.940845 403 2805 + 2807 H -2.916246 -19.202389 -9.257694 403 2805 + 2808 O -24.383366 4.449647 -2.247488 402 2809 2810 + 2809 H -24.017217 3.645809 -1.897604 403 2808 + 2810 H -24.220917 5.021187 -1.511294 403 2808 + 2811 O -19.731647 -12.211221 2.860739 402 2812 2813 + 2812 H -19.245645 -12.129462 2.005512 403 2811 + 2813 H -20.512036 -12.824760 2.628969 403 2811 + 2814 O -4.683560 -15.770086 9.389938 402 2815 2816 + 2815 H -5.061246 -15.024625 8.860317 403 2814 + 2816 H -5.320477 -16.506457 9.373591 403 2814 + 2817 O -4.887399 -5.093738 -15.497549 402 2818 2819 + 2818 H -5.401164 -5.893295 -15.248311 403 2817 + 2819 H -4.758120 -4.537262 -14.717756 403 2817 + 2820 O -14.685481 -17.958902 -3.365836 402 2821 2822 + 2821 H -14.177516 -17.147605 -3.110889 403 2820 + 2822 H -15.533211 -17.687906 -3.096067 403 2820 + 2823 O 24.950357 10.761179 -11.253927 402 2824 2825 + 2824 H 25.623382 10.724523 -10.501653 403 2823 + 2825 H 24.912589 11.668740 -11.614144 403 2823 + 2826 O 5.896274 1.022377 5.410141 402 2827 2828 + 2827 H 5.144364 0.409378 5.470882 403 2826 + 2828 H 6.702894 0.529043 5.601445 403 2826 + 2829 O -10.707964 -12.538200 -15.636360 402 2830 2831 + 2830 H -11.433886 -12.205371 -16.086670 403 2829 + 2831 H -10.099661 -13.047707 -16.220825 403 2829 + 2832 O 25.311857 10.178415 6.672916 402 2833 2834 + 2833 H 25.652073 11.053667 6.645762 403 2832 + 2834 H 25.462543 9.793786 5.796182 403 2832 + 2835 O 13.351375 -13.843752 2.567223 402 2836 2837 + 2836 H 12.454525 -14.099339 2.561046 403 2835 + 2837 H 13.804123 -14.196570 1.793439 403 2835 + 2838 O 6.447086 -1.674870 18.025371 402 2839 2840 + 2839 H 6.966001 -2.437397 17.753314 403 2838 + 2840 H 5.596824 -1.849843 17.645605 403 2838 + 2841 O -7.195562 13.506129 2.012549 402 2842 2843 + 2842 H -6.788362 12.635839 2.194379 403 2841 + 2843 H -6.577836 13.973475 1.500153 403 2841 + 2844 O 13.594384 20.297397 2.445796 402 2845 2846 + 2845 H 13.788282 19.607477 3.108308 403 2844 + 2846 H 13.006415 19.871282 1.852966 403 2844 + 2847 O 15.233611 0.850818 -5.243920 402 2848 2849 + 2848 H 15.311708 1.467460 -4.483590 403 2847 + 2849 H 15.351381 1.519810 -6.000951 403 2847 + 2850 O -21.392858 -6.660913 15.084747 402 2851 2852 + 2851 H -21.093136 -6.580317 16.005763 403 2850 + 2852 H -20.482050 -6.866879 14.680665 403 2850 + 2853 O 21.798067 9.236981 0.429299 402 2854 2855 + 2854 H 22.425954 9.071754 -0.267587 403 2853 + 2855 H 21.188410 9.810447 0.032847 403 2853 + 2856 O -16.844679 -14.439050 3.033305 402 2857 2858 + 2857 H -17.236824 -14.606294 2.191567 403 2856 + 2858 H -17.149528 -13.681189 3.446869 403 2856 + 2859 O -16.118636 -14.695009 11.770906 402 2860 2861 + 2860 H -16.061462 -15.566570 12.219315 403 2859 + 2861 H -15.401385 -14.815928 11.092232 403 2859 + 2862 O -25.116635 -0.336266 -13.211265 402 2863 2864 + 2863 H -26.034773 -0.593788 -13.205266 403 2862 + 2864 H -25.075870 0.263017 -13.996810 403 2862 + 2865 O -20.959975 8.707771 -3.841257 402 2866 2867 + 2866 H -20.129335 8.189240 -3.711541 403 2865 + 2867 H -21.648123 8.152127 -4.150679 403 2865 + 2868 O -16.180937 -14.560529 -11.236167 402 2869 2870 + 2869 H -16.474551 -15.471407 -11.472150 403 2868 + 2870 H -16.621414 -14.329172 -10.425074 403 2868 + 2871 O -13.342695 17.268978 -5.546108 402 2872 2873 + 2872 H -13.676329 17.161979 -6.427016 403 2871 + 2873 H -13.273106 16.392331 -5.194906 403 2871 + 2874 O -24.265742 -14.933019 -6.702562 402 2875 2876 + 2875 H -23.594698 -14.475474 -7.192272 403 2874 + 2876 H -24.769412 -14.353533 -6.144027 403 2874 + 2877 O -7.448634 4.091980 -14.623254 402 2878 2879 + 2878 H -8.354031 4.372416 -14.477512 403 2877 + 2879 H -7.429422 3.997857 -15.560262 403 2877 + 2880 O 20.945964 8.392028 7.273218 402 2881 2882 + 2881 H 20.936526 8.748124 8.157739 403 2880 + 2882 H 21.409383 8.938927 6.671909 403 2880 + 2883 O -18.135613 13.691026 0.855516 402 2884 2885 + 2884 H -17.605509 13.473951 1.604996 403 2883 + 2885 H -17.989769 12.903203 0.328977 403 2883 + 2886 O -26.399609 20.299424 -15.455568 402 2887 2888 + 2887 H -26.506532 19.402038 -15.778173 403 2886 + 2888 H -27.208559 20.540561 -15.036657 403 2886 + 2889 O -3.382080 16.857093 -8.397864 402 2890 2891 + 2890 H -3.374084 16.083688 -7.808965 403 2889 + 2891 H -4.084724 16.687463 -9.043127 403 2889 + 2892 O 16.271526 -9.902746 -4.216439 402 2893 2894 + 2893 H 16.409251 -10.505040 -3.454487 403 2892 + 2894 H 15.497720 -10.304168 -4.762308 403 2892 + 2895 O 14.340659 -16.032990 13.215463 402 2896 2897 + 2896 H 13.501340 -15.882091 13.690140 403 2895 + 2897 H 14.455052 -15.349188 12.509336 403 2895 + 2898 O -0.015146 -13.033200 3.303743 402 2899 2900 + 2899 H -0.181704 -13.007242 2.346702 403 2898 + 2900 H 0.267440 -13.997638 3.485458 403 2898 + 2901 O 17.219995 5.155984 2.579305 402 2902 2903 + 2902 H 17.867362 4.521907 2.914585 403 2901 + 2903 H 17.421034 5.907098 3.091911 403 2901 + 2904 O -4.290476 -8.859344 10.315396 402 2905 2906 + 2905 H -4.367776 -8.058305 9.793864 403 2904 + 2906 H -4.232508 -9.643259 9.792086 403 2904 + 2907 O -26.107401 19.840481 -9.535848 402 2908 2909 + 2908 H -25.152722 20.076292 -9.710007 403 2907 + 2909 H -26.580648 20.657816 -9.784705 403 2907 + 2910 O 22.430740 12.824805 -18.610921 402 2911 2912 + 2911 H 22.555563 12.342166 -17.752607 403 2910 + 2912 H 21.710766 13.488004 -18.415345 403 2910 + 2913 O -0.213702 15.539427 8.868930 402 2914 2915 + 2914 H 0.465115 15.308974 9.514310 403 2913 + 2915 H -0.991140 15.165260 9.301737 403 2913 + 2916 O 10.451773 19.296672 -15.739638 402 2917 2918 + 2917 H 11.250242 18.716315 -15.675225 403 2916 + 2918 H 10.166040 19.254066 -16.609341 403 2916 + 2919 O -16.340404 20.299845 -6.677501 402 2920 2921 + 2920 H -15.394517 20.367214 -6.949699 403 2919 + 2921 H -16.411819 19.609339 -6.000069 403 2919 + 2922 O 17.490554 18.048717 15.249869 402 2923 2924 + 2923 H 17.383710 17.561453 14.453086 403 2922 + 2924 H 17.231849 18.986361 14.979711 403 2922 + 2925 O -25.356900 0.960567 -15.630378 402 2926 2927 + 2926 H -25.668408 1.746466 -16.112686 403 2925 + 2927 H -25.749312 0.266373 -16.283472 403 2925 + 2928 O -24.523491 12.684913 -13.612913 402 2929 2930 + 2929 H -25.162839 13.082234 -14.200312 403 2928 + 2930 H -24.857615 11.766450 -13.558078 403 2928 + 2931 O -18.320478 -19.787535 -8.552256 402 2932 2933 + 2932 H -17.456232 -20.243682 -8.416866 403 2931 + 2933 H -18.816764 -20.212417 -7.902570 403 2931 + 2934 O -20.122796 -19.443402 14.311268 402 2935 2936 + 2935 H -20.955070 -19.458490 14.740741 403 2934 + 2936 H -20.448309 -19.736012 13.412761 403 2934 + 2937 O 15.526182 9.609189 7.445275 402 2938 2939 + 2938 H 16.546971 9.522464 7.260687 403 2937 + 2939 H 15.127662 8.717624 7.262881 403 2937 + 2940 O 21.815800 -13.876078 19.805359 402 2941 2942 + 2941 H 21.861374 -13.448639 20.652235 403 2940 + 2942 H 20.873448 -13.977249 19.618277 403 2940 + 2943 O -20.455209 -17.485281 2.435687 402 2944 2945 + 2944 H -20.514677 -18.504590 2.320539 403 2943 + 2945 H -19.650253 -17.416617 3.035233 403 2943 + 2946 O 12.598962 20.934840 -8.411100 402 2947 2948 + 2947 H 11.759105 20.691141 -7.924616 403 2946 + 2948 H 12.471156 20.908914 -9.376870 403 2946 + 2949 O -9.216318 -10.756192 8.704342 402 2950 2951 + 2950 H -9.035829 -9.823066 8.964150 403 2949 + 2951 H -10.158700 -10.965843 8.822969 403 2949 + 2952 O 15.481710 -19.357119 -11.731342 402 2953 2954 + 2953 H 16.266851 -18.921549 -11.423511 403 2952 + 2954 H 15.782813 -20.280095 -11.705706 403 2952 + 2955 O -15.247931 17.174276 -3.500551 402 2956 2957 + 2956 H -15.486872 16.716297 -4.319984 403 2955 + 2957 H -14.488844 17.725770 -3.787040 403 2955 + 2958 O 13.994416 -17.236082 0.675362 402 2959 2960 + 2959 H 14.353425 -17.278489 1.570062 403 2958 + 2960 H 14.236303 -16.341554 0.403337 403 2958 + 2961 O -23.467726 19.561551 3.571514 402 2962 2963 + 2962 H -24.004822 19.287615 4.359125 403 2961 + 2963 H -22.609407 19.390622 3.887076 403 2961 + 2964 O -18.884839 -16.840019 19.441419 402 2965 2966 + 2965 H -17.972164 -16.942648 19.429089 403 2964 + 2966 H -19.117567 -17.305223 18.656489 403 2964 + 2967 O -3.304416 17.688255 14.806768 402 2968 2969 + 2968 H -3.274068 18.569163 15.273992 403 2967 + 2969 H -3.909468 17.884508 14.115697 403 2967 + 2970 O -17.284600 -14.419545 -3.713924 402 2971 2972 + 2971 H -17.245841 -15.056389 -4.407408 403 2970 + 2972 H -16.814676 -13.644893 -4.121390 403 2970 + 2973 O -20.198946 13.854179 -11.126603 402 2974 2975 + 2974 H -19.842134 14.641594 -10.704689 403 2973 + 2975 H -20.994231 13.579588 -10.762730 403 2973 + 2976 O 19.633175 -4.534579 -1.940156 402 2977 2978 + 2977 H 20.573656 -4.404910 -1.787896 403 2976 + 2978 H 19.476036 -5.006335 -2.786939 403 2976 + 2979 O -14.050747 -7.840313 -20.451392 402 2980 2981 + 2980 H -13.804502 -7.885621 -19.536069 403 2979 + 2981 H -14.163116 -8.770871 -20.729134 403 2979 + 2982 O -22.035810 -14.696947 -15.342419 402 2983 2984 + 2983 H -21.244458 -14.172213 -14.968853 403 2982 + 2984 H -21.709618 -15.071176 -16.129917 403 2982 + 2985 O 24.404519 18.662499 15.604580 402 2986 2987 + 2986 H 23.649634 19.231742 15.720672 403 2985 + 2987 H 24.564861 18.257635 16.462026 403 2985 + 2988 O -25.023703 1.632995 9.069342 402 2989 2990 + 2989 H -24.924833 0.728361 9.205894 403 2988 + 2990 H -25.848027 1.691778 8.537435 403 2988 + 2991 O -23.501597 20.098664 7.878789 402 2992 2993 + 2992 H -23.060988 19.669189 7.073786 403 2991 + 2993 H -24.179799 19.453525 8.025704 403 2991 + 2994 O -19.949605 3.791557 -8.640569 402 2995 2996 + 2995 H -20.735484 4.236110 -9.006112 403 2994 + 2996 H -20.021037 3.910265 -7.668204 403 2994 + 2997 O -11.039604 7.965462 12.985718 402 2998 2999 + 2998 H -11.657528 7.295810 13.344834 403 2997 + 2999 H -11.533657 8.735729 12.733347 403 2997 + 3000 O -10.874373 -9.234080 16.940331 402 3001 3002 + 3001 H -10.287226 -8.454268 16.808084 403 3000 + 3002 H -10.829657 -9.367499 17.890097 403 3000 + 3003 O -14.385649 -14.739019 19.039927 402 3004 3005 + 3004 H -15.014366 -15.430322 18.739868 403 3003 + 3005 H -13.950162 -14.385374 18.202705 403 3003 + 3006 O -8.943007 -18.707640 -12.863046 402 3007 3008 + 3007 H -8.324251 -18.030317 -12.441569 403 3006 + 3008 H -8.503951 -19.555164 -12.986191 403 3006 + 3009 O -12.368468 -11.299670 18.862003 402 3010 3011 + 3010 H -11.462838 -11.162374 19.089512 403 3009 + 3011 H -12.285975 -11.967140 18.162474 403 3009 + 3012 O -18.864908 10.893225 -18.642183 402 3013 3014 + 3013 H -19.737729 11.286548 -18.797146 403 3012 + 3014 H -18.291730 11.691326 -18.413733 403 3012 + 3015 O 13.738555 -10.387697 15.727067 402 3016 3017 + 3016 H 14.677946 -10.190824 15.738680 403 3015 + 3017 H 13.381035 -9.878174 14.979047 403 3015 + 3018 O -21.819721 -0.482540 -14.130337 402 3019 3020 + 3019 H -22.018580 0.101499 -14.814948 403 3018 + 3020 H -21.732054 0.043937 -13.284517 403 3018 + 3021 O -22.088145 -19.005770 -10.424446 402 3022 3023 + 3022 H -22.700458 -18.735873 -11.127116 403 3021 + 3023 H -22.265806 -18.243802 -9.851663 403 3021 + 3024 O -27.334131 16.862943 6.388414 402 3025 3026 + 3025 H -27.128884 17.208336 5.542208 403 3024 + 3026 H -28.186942 16.459356 6.245911 403 3024 + 3027 O -7.724914 11.617317 -15.852447 402 3028 3029 + 3028 H -7.898781 11.683763 -14.888607 403 3027 + 3029 H -7.243883 12.459704 -15.934395 403 3027 + 3030 O -27.430510 7.062419 7.641894 402 3031 3032 + 3031 H -28.241619 7.496835 7.830929 403 3030 + 3032 H -26.905937 6.864821 8.456222 403 3030 + 3033 O -15.189130 9.068233 11.973047 402 3034 3035 + 3034 H -15.507439 9.270556 11.066477 403 3033 + 3035 H -16.000569 9.109399 12.508881 403 3033 + 3036 O 18.197719 -8.444367 -5.807006 402 3037 3038 + 3037 H 17.669265 -7.953475 -6.477556 403 3036 + 3038 H 17.491033 -8.840952 -5.199557 403 3036 + 3039 O -17.798267 -15.359279 0.720984 402 3040 3041 + 3040 H -17.605358 -16.253295 0.449070 403 3039 + 3041 H -18.769315 -15.298569 0.739208 403 3039 + 3042 O -10.801299 19.625083 -5.021468 402 3043 3044 + 3043 H -9.963843 19.123292 -5.234694 403 3042 + 3044 H -10.501894 20.547773 -4.927487 403 3042 + 3045 O -27.215648 6.353394 -6.216686 402 3046 3047 + 3046 H -27.824477 6.975672 -6.597897 403 3045 + 3047 H -27.715217 5.539077 -6.142494 403 3045 + 3048 O -20.222710 16.482564 20.889728 402 3049 3050 + 3049 H -19.409945 15.875063 20.936404 403 3048 + 3050 H -20.827135 16.165289 21.596363 403 3048 + 3051 O -15.955148 20.970093 -1.473146 402 3052 3053 + 3052 H -16.254513 20.076270 -1.042106 403 3051 + 3053 H -15.662348 21.552087 -0.814219 403 3051 + 3054 O 10.807526 -13.982475 1.662510 402 3055 3056 + 3055 H 10.120672 -14.259351 2.204544 403 3054 + 3056 H 10.863967 -13.021251 1.772688 403 3054 + 3057 O -7.966458 -18.779639 13.245673 402 3058 3059 + 3058 H -7.309099 -18.332730 12.718011 403 3057 + 3059 H -8.719738 -18.984231 12.613154 403 3057 + 3060 O -20.403821 -13.506340 10.662924 402 3061 3062 + 3061 H -20.510093 -14.184751 11.331921 403 3060 + 3062 H -19.449692 -13.488641 10.607253 403 3060 + 3063 O 3.347403 17.582790 14.279585 402 3064 3065 + 3064 H 3.542375 16.697267 14.539882 403 3063 + 3065 H 3.842808 18.157712 14.875497 403 3063 + 3066 O -27.268704 11.599332 7.521962 402 3067 3068 + 3067 H -27.319935 12.603952 7.610238 403 3066 + 3068 H -27.760414 11.222738 8.251319 403 3066 + 3069 O -13.558625 -13.571833 9.018373 402 3070 3071 + 3070 H -14.134501 -13.113855 9.622383 403 3069 + 3071 H -13.282735 -12.952963 8.287428 403 3069 + 3072 O -12.904629 4.779698 8.188511 402 3073 3074 + 3073 H -12.946789 5.709486 7.819080 403 3072 + 3074 H -13.125056 4.225008 7.389046 403 3072 + 3075 O -26.521845 8.632500 -1.585840 402 3076 3077 + 3076 H -27.252112 8.571224 -0.926514 403 3075 + 3077 H -27.101821 8.697912 -2.395641 403 3075 + 3078 O 0.711352 18.247453 15.282784 402 3079 3080 + 3079 H 1.603697 18.249814 14.962197 403 3078 + 3080 H 0.201613 17.732907 14.670147 403 3078 + 3081 O 7.113451 16.228888 -1.466776 402 3082 3083 + 3082 H 7.173117 15.305699 -1.111399 403 3081 + 3083 H 7.220512 16.670305 -0.601189 403 3081 + 3084 O -13.904243 8.625524 20.904818 402 3085 3086 + 3085 H -14.598235 8.427161 20.276223 403 3084 + 3086 H -13.595573 9.537530 20.812383 403 3084 + 3087 O -23.282747 7.422865 -4.367991 402 3088 3089 + 3088 H -23.494082 7.124036 -5.259399 403 3087 + 3089 H -24.056516 7.114406 -3.864243 403 3087 + 3090 O -14.263410 11.647626 -16.485013 402 3091 3092 + 3091 H -14.250457 12.591263 -16.217484 403 3090 + 3092 H -13.447733 11.223560 -16.266518 403 3090 + 3093 O -25.123489 -11.752131 6.663069 402 3094 3095 + 3094 H -24.434538 -11.175706 6.315833 403 3093 + 3095 H -24.632736 -12.584077 6.767142 403 3093 + 3096 O -14.146070 -17.326290 5.680123 402 3097 3098 + 3097 H -13.644335 -16.487658 5.902302 403 3096 + 3098 H -14.878124 -17.344106 6.279009 403 3096 + 3099 O -20.598314 9.096753 20.421892 402 3100 3101 + 3100 H -21.420000 9.436011 20.788368 403 3099 + 3101 H -20.773261 8.800990 19.535216 403 3099 + 3102 O 18.231067 -8.355182 -15.374644 402 3103 3104 + 3103 H 19.158997 -8.699272 -15.469475 403 3102 + 3104 H 18.162062 -7.866000 -14.601450 403 3102 + 3105 O -26.082795 17.419257 -15.113528 402 3106 3107 + 3106 H -26.663305 16.880075 -15.659385 403 3105 + 3107 H -26.614420 17.764627 -14.366811 403 3105 + 3108 O -4.564502 -6.365364 18.192018 402 3109 3110 + 3109 H -4.423912 -6.577366 17.248668 403 3108 + 3110 H -4.413382 -7.162274 18.732886 403 3108 + 3111 O 2.994631 -20.344673 -10.462592 402 3112 3113 + 3112 H 3.336979 -19.647973 -11.071544 403 3111 + 3113 H 2.839013 -21.162093 -11.031196 403 3111 + 3114 O -18.808948 18.745667 8.606647 402 3115 3116 + 3115 H -18.793078 17.928925 9.047490 403 3114 + 3116 H -19.375318 18.782786 7.854831 403 3114 + 3117 O 20.293384 6.483656 -8.185168 402 3118 3119 + 3118 H 19.822775 6.335085 -7.339796 403 3117 + 3119 H 19.910867 5.733330 -8.676027 403 3117 + 3120 O 14.001637 -11.377427 6.654390 402 3121 3122 + 3121 H 14.665802 -10.891103 7.186571 403 3120 + 3122 H 13.155623 -11.243569 7.110824 403 3120 + 3123 O -18.716197 16.452296 -6.146582 402 3124 3125 + 3124 H -17.737092 16.308167 -6.065641 403 3123 + 3125 H -18.803071 17.441704 -6.266673 403 3123 + 3126 O -9.164502 -4.245435 9.687071 402 3127 3128 + 3127 H -9.504754 -3.618059 10.271725 403 3126 + 3128 H -8.758976 -4.901714 10.277390 403 3126 + 3129 O -7.567104 17.996846 -14.273209 402 3130 3131 + 3130 H -7.423981 17.432000 -15.103459 403 3129 + 3131 H -7.626914 17.354562 -13.501068 403 3129 + 3132 O 25.957404 18.297560 0.964228 402 3133 3134 + 3133 H 26.373386 18.902213 1.607245 403 3132 + 3134 H 24.996135 18.298154 0.948557 403 3132 + 3135 O 27.365655 -19.507447 4.283366 402 3136 3137 + 3136 H 27.265808 -18.590346 4.470644 403 3135 + 3137 H 27.346229 -19.502059 3.318095 403 3135 + 3138 O 3.399017 3.842973 -14.306661 402 3139 3140 + 3139 H 3.874219 4.645706 -14.438487 403 3138 + 3140 H 3.960550 3.060792 -14.302404 403 3138 + 3141 O -9.633558 -14.252688 -13.074954 402 3142 3143 + 3142 H -10.397961 -14.800052 -13.280458 403 3141 + 3143 H -9.599658 -13.580050 -13.748986 403 3141 + 3144 O -26.597184 -9.526044 16.214934 402 3145 3146 + 3145 H -25.761551 -9.704064 15.705422 403 3144 + 3146 H -26.282395 -9.291353 17.107825 403 3144 + 3147 O 9.904852 -8.080714 13.028578 402 3148 3149 + 3148 H 9.633649 -8.672937 13.775436 403 3147 + 3149 H 9.328640 -8.216914 12.289674 403 3147 + 3150 O -16.656465 -15.275719 14.920535 402 3151 3152 + 3151 H -16.332015 -16.176602 15.149012 403 3150 + 3152 H -17.604168 -15.312599 15.097227 403 3150 + 3153 O -23.632856 16.383578 4.244499 402 3154 3155 + 3154 H -24.439865 15.907903 4.567947 403 3153 + 3155 H -23.758905 16.459340 3.297146 403 3153 + 3156 O 6.174822 3.396366 6.558333 402 3157 3158 + 3157 H 6.411031 3.086511 7.491490 403 3156 + 3158 H 5.914298 2.639627 6.072475 403 3156 + 3159 O -12.394642 12.999960 5.615295 402 3160 3161 + 3160 H -12.767249 13.829992 5.894454 403 3159 + 3161 H -11.542368 12.942527 6.067628 403 3159 + 3162 O -13.943061 -10.506777 -8.106784 402 3163 3164 + 3163 H -14.282580 -10.512566 -7.188555 403 3162 + 3164 H -13.832495 -9.541181 -8.393822 403 3162 + 3165 O -2.132377 12.062639 -15.645930 402 3166 3167 + 3166 H -2.521581 12.726985 -15.116060 403 3165 + 3167 H -2.383415 12.256835 -16.605675 403 3165 + 3168 O -15.781380 4.295423 -12.837615 402 3169 3170 + 3169 H -16.545564 4.857521 -12.623883 403 3168 + 3170 H -14.991403 4.649584 -12.386947 403 3168 + 3171 O 3.657686 -14.899636 11.284985 402 3172 3173 + 3172 H 4.599918 -15.027083 11.351362 403 3171 + 3173 H 3.451904 -14.114684 10.742312 403 3171 + 3174 O -13.445931 -12.269834 -16.644595 402 3175 3176 + 3175 H -13.143553 -12.206221 -17.543310 403 3174 + 3176 H -14.277341 -11.802665 -16.570144 403 3174 + 3177 O -4.514598 -14.412565 -11.239008 402 3178 3179 + 3178 H -4.912249 -14.782052 -10.430067 403 3177 + 3179 H -5.207582 -13.911802 -11.682506 403 3177 + 3180 O -22.202449 -8.277754 -0.156304 402 3181 3182 + 3181 H -21.822932 -9.154115 -0.107154 403 3180 + 3182 H -22.081748 -7.881016 0.675063 403 3180 + 3183 O 5.980605 9.643233 7.937147 402 3184 3185 + 3184 H 5.778293 9.935793 8.831204 403 3183 + 3185 H 6.322796 10.408255 7.426496 403 3183 + 3186 O -2.201607 -16.515113 -14.210032 402 3187 3188 + 3187 H -2.059974 -15.558981 -14.035317 403 3186 + 3188 H -1.990188 -17.058199 -13.410631 403 3186 + 3189 O 18.679591 -18.705711 14.460946 402 3190 3191 + 3190 H 18.696979 -17.793354 14.872009 403 3189 + 3191 H 19.598133 -18.732862 14.241557 403 3189 + 3192 O -23.704300 9.078870 13.078638 402 3193 3194 + 3193 H -23.670653 8.205186 13.541582 403 3192 + 3194 H -24.192847 9.646015 13.627775 403 3192 + 3195 O -2.173657 16.833015 -11.939576 402 3196 3197 + 3196 H -1.811491 16.347920 -12.704849 403 3195 + 3197 H -1.445451 17.452841 -11.775832 403 3195 + 3198 O 13.483501 -11.256705 11.913651 402 3199 3200 + 3199 H 12.870120 -10.662512 12.431360 403 3198 + 3200 H 14.331458 -10.851122 11.936251 403 3198 + 3201 O 24.414471 -17.245267 11.179269 402 3202 3203 + 3202 H 25.211262 -16.789228 11.385933 403 3201 + 3203 H 24.640242 -18.219159 11.091473 403 3201 + 3204 O 11.120331 -15.111988 5.927148 402 3205 3206 + 3205 H 11.451561 -14.918986 6.814295 403 3204 + 3206 H 11.019394 -14.187742 5.582882 403 3204 + 3207 O 12.007104 -9.600387 4.572911 402 3208 3209 + 3208 H 11.779325 -9.981896 3.630934 403 3207 + 3209 H 12.299473 -8.663707 4.379041 403 3207 + 3210 O 6.432204 5.492806 -11.438378 402 3211 3212 + 3211 H 6.858563 6.325600 -11.691904 403 3210 + 3212 H 5.497288 5.536187 -11.496269 403 3210 + 3213 O -16.803408 -2.309975 -12.525084 402 3214 3215 + 3214 H -17.553689 -1.730249 -12.823644 403 3213 + 3215 H -17.150179 -3.188627 -12.867169 403 3213 + 3216 O -2.408853 19.363640 5.416041 402 3217 3218 + 3217 H -2.506588 20.324223 5.172630 403 3216 + 3218 H -1.499205 19.245311 4.997471 403 3216 + 3219 O 18.335645 9.820504 -20.835302 402 3220 3221 + 3220 H 17.802051 9.406337 -21.556671 403 3219 + 3221 H 19.054571 10.173338 -21.326492 403 3219 + 3222 O 14.492400 -0.793925 15.043220 402 3223 3224 + 3223 H 15.273199 -0.763837 15.602226 403 3222 + 3224 H 13.903082 -0.202173 15.510237 403 3222 + 3225 O -18.990417 -18.003103 -15.160778 402 3226 3227 + 3226 H -19.065422 -18.467887 -14.363137 403 3225 + 3227 H -18.682751 -18.771930 -15.707456 403 3225 + 3228 O -19.355981 10.428580 -15.655699 402 3229 3230 + 3229 H -18.958237 10.419569 -16.503824 403 3228 + 3230 H -19.555621 9.469325 -15.477396 403 3228 + 3231 O -9.689572 -17.625802 20.274891 402 3232 3233 + 3232 H -9.638458 -16.856491 19.680753 403 3231 + 3233 H -10.446575 -18.157818 20.089513 403 3231 + 3234 O 15.818186 -2.858530 -17.669337 402 3235 3236 + 3235 H 15.374117 -2.032149 -17.355590 403 3234 + 3236 H 16.772354 -2.603400 -17.785321 403 3234 + 3237 O 4.606592 -16.002710 16.812249 402 3238 3239 + 3238 H 5.315620 -15.500456 17.249944 403 3237 + 3239 H 3.799748 -15.479801 16.918622 403 3237 + 3240 O -21.513339 9.988705 -9.339870 402 3241 3242 + 3241 H -20.667999 10.159257 -9.025723 403 3240 + 3242 H -21.969690 9.708425 -8.552482 403 3240 + 3243 O 22.932065 -4.395951 1.502838 402 3244 3245 + 3244 H 23.014854 -3.682098 2.132967 403 3243 + 3245 H 22.755233 -5.203260 2.068576 403 3243 + 3246 O -15.865161 20.547416 -16.433392 402 3247 3248 + 3247 H -15.771392 21.394273 -16.845693 403 3246 + 3248 H -15.137003 20.501933 -15.748936 403 3246 + 3249 O 25.069907 -16.838970 -4.299599 402 3250 3251 + 3250 H 25.999382 -16.506367 -4.277797 403 3249 + 3251 H 24.882196 -17.073394 -3.399165 403 3249 + 3252 O 12.210843 -6.139817 11.421079 402 3253 3254 + 3253 H 11.494183 -5.792293 10.826764 403 3252 + 3254 H 12.753399 -6.598677 10.772296 403 3252 + 3255 O -12.958185 15.721214 20.131937 402 3256 3257 + 3256 H -12.417015 15.448234 19.335440 403 3255 + 3257 H -12.670185 16.622230 20.361377 403 3255 + 3258 O -1.787017 -16.482436 -2.383044 402 3259 3260 + 3259 H -1.225925 -16.053148 -3.012278 403 3258 + 3260 H -2.501380 -15.880251 -2.214679 403 3258 + 3261 O -1.190078 -20.139554 1.294226 402 3262 3263 + 3262 H -0.299194 -20.371113 0.969279 403 3261 + 3263 H -1.688402 -19.692251 0.619486 403 3261 + 3264 O 1.937567 -19.455705 20.174807 402 3265 3266 + 3265 H 1.600890 -18.656647 20.650502 403 3264 + 3266 H 2.270116 -20.076098 20.862273 403 3264 + 3267 O -13.809787 16.178967 11.484043 402 3268 3269 + 3268 H -14.142545 15.377181 11.850775 403 3267 + 3269 H -14.373329 16.882494 11.935295 403 3267 + 3270 O 17.196672 -3.298677 9.603341 402 3271 3272 + 3271 H 17.785156 -3.273949 10.352111 403 3270 + 3272 H 16.328249 -3.307055 9.989818 403 3270 + 3273 O -21.793083 12.953802 -3.361588 402 3274 3275 + 3274 H -21.341354 13.824014 -3.442583 403 3273 + 3275 H -21.956486 12.886091 -2.420332 403 3273 + 3276 O 24.722833 -20.214271 -1.932412 402 3277 3278 + 3277 H 24.583170 -20.295689 -2.905459 403 3276 + 3278 H 25.266330 -20.988208 -1.659517 403 3276 + 3279 O 13.576953 15.549687 -14.568922 402 3280 3281 + 3280 H 13.196035 16.082140 -13.845167 403 3279 + 3281 H 12.903095 14.935032 -14.704323 403 3279 + 3282 O 24.686323 18.724782 9.264820 402 3283 3284 + 3283 H 25.356258 19.231143 8.760904 403 3282 + 3284 H 24.376076 19.091122 10.133820 403 3282 + 3285 O 10.974277 8.210457 0.042398 402 3286 3287 + 3286 H 10.346946 8.747962 0.639501 403 3285 + 3287 H 11.775308 8.082914 0.592641 403 3285 + 3288 O 15.749941 -9.949096 -10.535727 402 3289 3290 + 3289 H 14.881677 -9.994266 -10.933909 403 3288 + 3290 H 16.082746 -9.069742 -10.712222 403 3288 + 3291 O 20.372551 -2.740524 -20.295283 402 3292 3293 + 3292 H 19.972569 -3.556917 -19.910575 403 3291 + 3293 H 21.117159 -2.669954 -19.650483 403 3291 + 3294 O -16.130593 19.525141 7.609103 402 3295 3296 + 3295 H -16.988329 19.095523 7.574165 403 3294 + 3296 H -15.815635 19.368486 8.484111 403 3294 + 3297 O -13.620470 -12.179873 -20.763485 402 3298 3299 + 3298 H -13.206848 -12.281384 -21.584939 403 3297 + 3299 H -13.003543 -11.952064 -20.092320 403 3297 + 3300 O -4.286145 -8.076676 -19.850653 402 3301 3302 + 3301 H -4.024629 -8.962570 -19.497729 403 3300 + 3302 H -4.628013 -8.265378 -20.732144 403 3300 + 3303 O 18.167149 11.171401 14.365772 402 3304 3305 + 3304 H 18.072419 11.267858 15.337991 403 3303 + 3305 H 19.114984 11.092302 14.227006 403 3303 + 3306 O -6.484207 14.268929 15.251307 402 3307 3308 + 3307 H -5.622289 14.569256 15.414810 403 3306 + 3308 H -6.409671 13.589284 14.542615 403 3306 + 3309 O -22.009910 15.740037 8.254841 402 3310 3311 + 3310 H -21.174881 15.566577 7.788279 403 3309 + 3311 H -21.784303 15.725302 9.211467 403 3309 + 3312 O -12.075884 4.855934 18.759604 402 3313 3314 + 3313 H -11.922580 5.826978 18.890965 403 3312 + 3314 H -11.210639 4.506344 19.097368 403 3312 + 3315 O 10.488011 -18.196911 -8.466384 402 3316 3317 + 3316 H 10.637969 -17.211540 -8.520849 403 3315 + 3317 H 11.163762 -18.500106 -9.085738 403 3315 + 3318 O 1.125820 20.066151 11.277514 402 3319 3320 + 3319 H 0.488344 19.358887 11.406985 403 3318 + 3320 H 1.175707 20.424035 12.220043 403 3318 + 3321 O 1.508244 -2.375369 14.307932 402 3322 3323 + 3322 H 0.868346 -1.761280 14.698396 403 3321 + 3323 H 1.257101 -3.281035 14.657092 403 3321 + 3324 O 8.333201 -20.303098 14.135689 402 3325 3326 + 3325 H 8.173342 -20.812430 14.996202 403 3324 + 3326 H 7.563231 -20.469348 13.580696 403 3324 + 3327 O 7.161769 13.324939 -3.684466 402 3328 3329 + 3328 H 6.692561 13.032914 -4.505707 403 3327 + 3329 H 7.435294 14.252208 -3.751921 403 3327 + 3330 O -8.368806 1.641675 18.686706 402 3331 3332 + 3331 H -7.449000 1.561105 18.992044 403 3330 + 3332 H -8.829402 1.367359 19.523867 403 3330 + 3333 O 4.081470 8.393376 14.788004 402 3334 3335 + 3334 H 3.416356 8.289314 15.434673 403 3333 + 3335 H 3.901559 7.693490 14.181822 403 3333 + 3336 O -7.418847 -5.372814 17.842250 402 3337 3338 + 3337 H -7.820918 -6.206339 17.693835 403 3336 + 3338 H -6.460103 -5.466581 17.841167 403 3336 + 3339 O -6.272338 -9.280731 3.614771 402 3340 3341 + 3340 H -5.671659 -9.851333 3.097194 403 3339 + 3341 H -6.583386 -9.880058 4.252855 403 3339 + 3342 O 26.867212 -7.498721 15.184014 402 3343 3344 + 3343 H 27.180613 -8.176302 15.786609 403 3342 + 3344 H 27.338168 -7.770453 14.373438 403 3342 + 3345 O 9.996033 -14.570233 13.333736 402 3346 3347 + 3346 H 9.969634 -13.724445 12.959529 403 3345 + 3347 H 9.789000 -15.194125 12.559782 403 3345 + 3348 O 2.391061 -15.016416 -4.564378 402 3349 3350 + 3349 H 2.249440 -15.150315 -3.614545 403 3348 + 3350 H 3.332088 -14.950210 -4.710721 403 3348 + 3351 O -21.651564 17.273027 -5.114431 402 3352 3353 + 3352 H -22.612266 17.402180 -4.967856 403 3351 + 3353 H -21.475301 17.110688 -6.035544 403 3351 + 3354 O 10.670434 18.798919 9.295678 402 3355 3356 + 3355 H 10.772878 18.810256 8.313948 403 3354 + 3356 H 10.935580 19.678994 9.619801 403 3354 + 3357 O 8.580286 -14.501479 3.135425 402 3358 3359 + 3358 H 8.621343 -14.445805 4.107721 403 3357 + 3359 H 8.542982 -15.491097 3.062040 403 3357 + 3360 O -14.377865 -7.995183 14.343301 402 3361 3362 + 3361 H -14.100201 -8.614257 14.993234 403 3360 + 3362 H -14.866324 -7.355345 14.871637 403 3360 + 3363 O -0.977425 16.774193 13.640180 402 3364 3365 + 3364 H -0.958949 17.266593 12.835191 403 3363 + 3365 H -1.881684 16.955536 13.931092 403 3363 + 3366 O -15.828708 -3.415349 7.406744 402 3367 3368 + 3367 H -16.180618 -3.426100 6.520488 403 3366 + 3368 H -16.669651 -3.380771 7.995037 403 3366 + 3369 O -12.774799 -8.235123 -12.889327 402 3370 3371 + 3370 H -12.978669 -7.282136 -13.083792 403 3369 + 3371 H -13.615071 -8.678664 -13.235742 403 3369 + 3372 O 2.845289 0.060180 20.134181 402 3373 3374 + 3373 H 2.858756 0.453048 19.232311 403 3372 + 3374 H 1.957136 -0.331348 20.300492 403 3372 + 3375 O 24.984643 -14.973253 -17.474954 402 3376 3377 + 3376 H 25.370717 -15.847238 -17.382478 403 3375 + 3377 H 25.194569 -14.524794 -16.625306 403 3375 + 3378 O 13.620247 -7.920957 7.008348 402 3379 3380 + 3379 H 14.470702 -8.278296 6.767655 403 3378 + 3380 H 13.126236 -7.674429 6.169358 403 3378 + 3381 O 17.636081 -10.073874 3.386982 402 3382 3383 + 3382 H 17.376472 -9.849973 2.460148 403 3381 + 3383 H 17.541385 -10.988029 3.459151 403 3381 + 3384 O -23.876026 -12.063687 -5.995846 402 3385 3386 + 3385 H -24.585420 -12.252172 -5.420831 403 3384 + 3386 H -23.110219 -12.523733 -5.650434 403 3384 + 3387 O -23.535607 1.699271 1.932031 402 3388 3389 + 3388 H -24.143027 1.031548 1.814474 403 3387 + 3389 H -23.866587 2.338510 2.606284 403 3387 + 3390 O 13.720565 9.351789 12.307976 402 3391 3392 + 3391 H 13.899370 10.225405 12.040604 403 3390 + 3392 H 13.192298 9.477241 13.121209 403 3390 + 3393 O 15.291476 15.170550 12.140656 402 3394 3395 + 3394 H 14.287956 15.135496 12.069067 403 3393 + 3395 H 15.572140 14.570493 11.432982 403 3393 + 3396 O -10.060226 -11.465180 13.094454 402 3397 3398 + 3397 H -9.757397 -11.240849 13.961157 403 3396 + 3398 H -9.428065 -11.417927 12.436211 403 3396 + 3399 O -19.840622 -4.281655 -17.053557 402 3400 3401 + 3400 H -20.444679 -3.559033 -16.740868 403 3399 + 3401 H -20.093102 -5.062268 -16.449961 403 3399 + 3402 O -11.088232 19.299933 12.989268 402 3403 3404 + 3403 H -11.278861 18.327556 12.943710 403 3402 + 3404 H -10.555994 19.370336 13.806383 403 3402 + 3405 O 14.192836 -14.527612 16.897429 402 3406 3407 + 3406 H 13.394071 -15.012895 17.049022 403 3405 + 3407 H 14.074952 -14.064189 16.039244 403 3405 + 3408 O 5.078670 -4.434084 15.727807 402 3409 3410 + 3409 H 5.834022 -4.419315 16.349614 403 3408 + 3410 H 5.405954 -4.558925 14.872493 403 3408 + 3411 O -19.510762 -4.936357 -8.682052 402 3412 3413 + 3412 H -18.583830 -4.871299 -8.739257 403 3411 + 3413 H -19.725350 -4.373920 -7.917441 403 3411 + 3414 O 6.637127 -10.197837 -8.914867 402 3415 3416 + 3415 H 7.303561 -10.846941 -9.129195 403 3414 + 3416 H 7.018008 -9.736820 -8.200293 403 3414 + 3417 O -23.721355 20.227172 -16.438294 402 3418 3419 + 3418 H -24.533045 20.118818 -15.892499 403 3417 + 3419 H -24.022901 20.350741 -17.335304 403 3417 + 3420 O -0.030599 -15.820284 7.354097 402 3421 3422 + 3421 H -0.675125 -15.374015 6.761895 403 3420 + 3422 H -0.583629 -16.217933 8.065590 403 3420 + 3423 O 17.878609 -6.751885 -17.518842 402 3424 3425 + 3424 H 17.903391 -7.334049 -16.742820 403 3423 + 3425 H 17.140042 -7.214968 -18.038372 403 3423 + 3426 O -5.849569 3.309930 19.753024 402 3427 3428 + 3427 H -6.252138 4.072448 20.161965 403 3426 + 3428 H -5.149208 3.038493 20.337689 403 3426 + 3429 O -24.710885 -6.308647 13.490216 402 3430 3431 + 3430 H -25.586238 -6.177846 13.106753 403 3429 + 3431 H -24.889314 -6.461576 14.430169 403 3429 + 3432 O -11.604329 -16.031249 -0.237137 402 3433 3434 + 3433 H -10.966421 -16.304157 -0.881127 403 3432 + 3434 H -11.170811 -15.476610 0.378509 403 3432 + 3435 O 21.103321 -18.752766 6.405335 402 3436 3437 + 3436 H 21.283349 -17.950114 6.943720 403 3435 + 3437 H 21.235391 -18.472219 5.506239 403 3435 + 3438 O -0.369145 -20.712312 19.095306 402 3439 3440 + 3439 H 0.355231 -20.367028 19.676247 403 3438 + 3440 H -1.186977 -20.260183 19.421119 403 3438 + 3441 O 13.869578 -2.965624 18.758945 402 3442 3443 + 3442 H 13.547281 -3.390529 19.570053 403 3441 + 3443 H 14.278344 -2.158860 19.065428 403 3441 + 3444 O -15.806264 2.737988 -2.216704 402 3445 3446 + 3445 H -16.485177 2.180539 -1.805532 403 3444 + 3446 H -15.814791 2.396599 -3.131246 403 3444 + 3447 O -11.766416 -8.088239 8.837485 402 3448 3449 + 3448 H -11.812419 -8.926527 9.226533 403 3447 + 3449 H -12.558194 -7.583042 9.186828 403 3447 + 3450 O 23.076788 16.678629 12.104295 402 3451 3452 + 3451 H 23.468754 16.241536 11.310898 403 3450 + 3452 H 22.132874 16.713960 11.904816 403 3450 + 3453 O -14.202464 -15.765503 -5.593495 402 3454 3455 + 3454 H -14.871838 -15.026911 -5.676361 403 3453 + 3455 H -13.955401 -15.992753 -6.481500 403 3453 + 3456 O 15.150303 11.672770 19.298045 402 3457 3458 + 3457 H 15.470730 12.261881 18.627217 403 3456 + 3458 H 15.518028 11.969931 20.141796 403 3456 + 3459 O 9.848503 -12.101587 -10.529245 402 3460 3461 + 3460 H 10.607536 -11.738045 -10.041608 403 3459 + 3461 H 9.985842 -11.615457 -11.376399 403 3459 + 3462 O 2.125570 -11.875883 -16.645987 402 3463 3464 + 3463 H 2.047554 -12.712083 -16.165814 403 3462 + 3464 H 2.067413 -12.170151 -17.579365 403 3462 + 3465 O -5.977611 10.651495 7.046682 402 3466 3467 + 3466 H -5.213541 10.455986 7.620137 403 3465 + 3467 H -6.494562 9.846985 7.169759 403 3465 + 3468 O -16.351535 -7.485266 -9.424947 402 3469 3470 + 3469 H -16.745079 -6.668906 -9.070767 403 3468 + 3470 H -16.602332 -8.158689 -8.798627 403 3468 + 3471 O 24.296678 -17.192464 4.785797 402 3472 3473 + 3472 H 24.587865 -18.035334 5.123313 403 3471 + 3473 H 24.068802 -16.574501 5.523851 403 3471 + 3474 O -10.968856 -18.323021 -8.138707 402 3475 3476 + 3475 H -11.363544 -18.853138 -8.863013 403 3474 + 3476 H -10.206142 -17.988660 -8.562061 403 3474 + 3477 O -9.854962 -9.956148 -15.278228 402 3478 3479 + 3478 H -10.293465 -9.897483 -14.451993 403 3477 + 3479 H -9.970473 -10.887047 -15.573043 403 3477 + 3480 O -2.935483 6.363032 -19.045018 402 3481 3482 + 3481 H -3.535132 5.588364 -18.854687 403 3480 + 3482 H -3.494550 7.145960 -19.014910 403 3480 + 3483 O 5.112400 17.701587 -11.443651 402 3484 3485 + 3484 H 5.575170 17.705031 -12.266361 403 3483 + 3485 H 5.677404 18.265335 -10.960537 403 3483 + 3486 O -6.450118 17.009140 6.526693 402 3487 3488 + 3487 H -6.743394 16.108032 6.566324 403 3486 + 3488 H -5.677664 17.076672 5.879731 403 3486 + 3489 O 13.801680 -10.581422 -18.444834 402 3490 3491 + 3490 H 14.024633 -10.709852 -17.519503 403 3489 + 3491 H 14.526918 -10.713699 -19.015218 403 3489 + 3492 O -26.491618 -8.486894 -15.884962 402 3493 3494 + 3493 H -26.227094 -9.167912 -16.481603 403 3492 + 3494 H -27.254427 -8.747438 -15.427464 403 3492 + 3495 O 9.041006 -18.956744 11.010081 402 3496 3497 + 3496 H 9.242427 -19.133960 10.087876 403 3495 + 3497 H 9.841718 -19.136012 11.534074 403 3495 + 3498 O -14.427557 4.070601 -15.330760 402 3499 3500 + 3499 H -14.952347 4.033207 -14.554014 403 3498 + 3500 H -14.812926 4.741427 -15.800456 403 3498 + 3501 O 17.060580 -3.941095 -20.977244 402 3502 3503 + 3502 H 17.749250 -4.204310 -20.329442 403 3501 + 3503 H 16.300042 -3.942896 -20.427486 403 3501 + 3504 O -23.014194 6.362529 14.192538 402 3505 3506 + 3505 H -23.324814 5.470443 14.451595 403 3504 + 3506 H -22.082482 6.279068 14.241974 403 3504 + 3507 O -25.628726 -6.961569 -2.257843 402 3508 3509 + 3508 H -25.574604 -7.184504 -1.341207 403 3507 + 3509 H -26.582064 -6.786831 -2.353726 403 3507 + 3510 O 22.564240 2.932310 -9.807597 402 3511 3512 + 3511 H 23.151969 3.604785 -10.163343 403 3510 + 3512 H 22.874635 2.102350 -10.219491 403 3510 + 3513 O -3.253479 19.088800 -17.106412 402 3514 3515 + 3514 H -2.788864 19.318234 -16.243589 403 3513 + 3515 H -2.764381 19.537649 -17.806531 403 3513 + 3516 O -22.859061 13.661040 -17.687912 402 3517 3518 + 3517 H -22.818174 13.783386 -16.772102 403 3516 + 3518 H -23.770832 13.543351 -17.918472 403 3516 + 3519 O 9.494782 -11.734449 -13.112549 402 3520 3521 + 3520 H 8.961400 -12.465267 -13.446468 403 3519 + 3521 H 9.761388 -11.207603 -13.875868 403 3519 + 3522 O -23.688259 3.132799 -17.827915 402 3523 3524 + 3523 H -24.125760 3.978960 -17.963214 403 3522 + 3524 H -22.830341 3.138251 -18.271402 403 3522 + 3525 O 2.139153 19.832776 -5.462308 402 3526 3527 + 3526 H 3.092901 19.927439 -5.794969 403 3525 + 3527 H 1.766619 18.977669 -5.658347 403 3525 + 3528 O -18.034230 16.770127 14.099225 402 3529 3530 + 3529 H -17.902225 17.120236 14.993829 403 3528 + 3530 H -17.676323 15.854045 14.106616 403 3528 + 3531 O 1.824513 11.181132 6.084313 402 3532 3533 + 3532 H 1.685221 10.344866 6.529341 403 3531 + 3533 H 1.455718 11.848001 6.661967 403 3531 + 3534 O -11.843291 -5.056449 -16.641604 402 3535 3536 + 3535 H -12.501020 -5.242103 -17.328702 403 3534 + 3536 H -12.014281 -5.753377 -15.968200 403 3534 + 3537 O -22.854164 5.542584 7.008128 402 3538 3539 + 3538 H -23.145262 4.706955 7.372586 403 3537 + 3539 H -23.371620 6.215233 7.454255 403 3537 + 3540 O 15.073774 -20.411976 -0.392431 402 3541 3542 + 3541 H 14.408322 -20.469017 0.286083 403 3540 + 3542 H 14.632572 -19.889979 -1.049199 403 3540 + 3543 O -17.960070 -5.852749 5.689988 402 3544 3545 + 3544 H -18.090795 -5.039390 5.186397 403 3543 + 3545 H -18.353234 -5.775538 6.579834 403 3543 + 3546 O -15.352248 -19.036717 0.344261 402 3547 3548 + 3547 H -15.093308 -18.197320 -0.050384 403 3546 + 3548 H -15.225898 -18.950231 1.302869 403 3546 + 3549 O 18.470960 -18.740483 5.244443 402 3550 3551 + 3550 H 18.242618 -17.821184 5.079689 403 3549 + 3551 H 19.343394 -18.632602 5.657266 403 3549 + 3552 O -20.494949 -15.508798 0.415196 402 3553 3554 + 3553 H -21.033257 -14.800381 0.873351 403 3552 + 3554 H -20.631551 -16.381502 0.919462 403 3552 + 3555 O -26.836213 -15.820962 -1.291434 402 3556 3557 + 3556 H -25.922353 -15.963173 -1.047747 403 3555 + 3557 H -27.438259 -16.224400 -0.574562 403 3555 + 3558 O -13.235942 4.403119 -11.675233 402 3559 3560 + 3559 H -12.394934 3.955397 -11.762629 403 3558 + 3560 H -13.370313 4.660640 -10.729304 403 3558 + 3561 O 4.457457 8.304220 -12.786971 402 3562 3563 + 3562 H 3.724242 8.788507 -13.141101 403 3561 + 3563 H 4.902410 9.007385 -12.278991 403 3561 + 3564 O 12.905103 9.611740 -9.761522 402 3565 3566 + 3565 H 12.523788 8.903277 -10.260068 403 3564 + 3566 H 13.450668 9.299611 -9.028515 403 3564 + 3567 O -6.337643 16.236433 1.452793 402 3568 3569 + 3568 H -5.424381 16.339480 1.573225 403 3567 + 3569 H -6.667968 16.644895 2.291271 403 3567 + 3570 O 26.439116 -1.915810 -20.713552 402 3571 3572 + 3571 H 27.188632 -1.287536 -20.817388 403 3570 + 3572 H 26.782485 -2.730706 -20.995261 403 3570 + 3573 O -19.182622 4.092355 9.034920 402 3574 3575 + 3574 H -19.485362 4.670885 8.308243 403 3573 + 3575 H -20.013187 3.814515 9.521856 403 3573 + 3576 O -2.300541 3.557512 -14.043398 402 3577 3578 + 3577 H -1.431422 3.599599 -13.555115 403 3576 + 3578 H -1.988145 3.224630 -14.961052 403 3576 + 3579 O -6.670819 -15.218721 -14.514642 402 3580 3581 + 3580 H -6.017795 -15.980959 -14.424699 403 3579 + 3581 H -6.265671 -14.423752 -14.172913 403 3579 + 3582 O 24.507006 4.960415 18.725868 402 3583 3584 + 3583 H 24.051892 4.202462 19.172938 403 3582 + 3584 H 23.940639 5.744203 18.851669 403 3582 + 3585 O 24.049293 12.473043 -13.141226 402 3586 3587 + 3586 H 23.243912 12.962673 -12.967339 403 3585 + 3587 H 23.840443 11.608716 -13.489633 403 3585 + 3588 O -14.826342 -14.174711 -1.101280 402 3589 3590 + 3589 H -14.425942 -14.926791 -0.673989 403 3588 + 3590 H -15.768151 -14.488595 -1.118329 403 3588 + 3591 O 11.933486 13.553808 -14.961215 402 3592 3593 + 3592 H 11.036396 13.817670 -14.752407 403 3591 + 3593 H 12.216429 12.950104 -14.279104 403 3591 + 3594 O -2.797562 -12.367574 -0.515800 402 3595 3596 + 3595 H -3.179634 -11.713519 0.050158 403 3594 + 3596 H -1.854871 -12.532942 -0.270880 403 3594 + 3597 O 17.488207 19.028545 -2.724709 402 3598 3599 + 3598 H 17.501182 19.646316 -1.945319 403 3597 + 3599 H 17.260989 19.579570 -3.517708 403 3597 + 3600 O -8.757369 -14.229883 -8.206010 402 3601 3602 + 3601 H -8.893000 -13.537739 -8.862015 403 3600 + 3602 H -9.392123 -14.135387 -7.486682 403 3600 + 3603 O -19.153579 -12.365172 5.625409 402 3604 3605 + 3604 H -19.433383 -12.590110 4.725475 403 3603 + 3605 H -19.595557 -11.555979 5.869535 403 3603 + 3606 O -7.701926 -16.135625 -11.737971 402 3607 3608 + 3607 H -6.868196 -16.044745 -12.240387 403 3606 + 3608 H -8.301809 -15.535544 -12.265120 403 3606 + 3609 O -3.605808 12.358960 20.023921 402 3610 3611 + 3610 H -4.119307 12.832959 19.358309 403 3609 + 3611 H -4.145218 11.656406 20.372183 403 3609 + 3612 O -13.013980 18.377636 -12.951904 402 3613 3614 + 3613 H -12.288179 17.997337 -13.504982 403 3612 + 3614 H -12.538318 18.992103 -12.385350 403 3612 + 3615 O -1.385735 6.480272 7.505236 402 3616 3617 + 3616 H -1.829939 5.594981 7.333987 403 3615 + 3617 H -1.326794 6.575998 8.446333 403 3615 + 3618 O 9.907861 10.609361 -15.151767 402 3619 3620 + 3619 H 10.299023 10.375476 -14.276851 403 3618 + 3620 H 9.651161 11.529891 -14.985274 403 3618 + 3621 O 9.310538 -2.514250 -12.134416 402 3622 3623 + 3622 H 10.198177 -2.553660 -11.653872 403 3621 + 3623 H 8.836792 -1.753472 -11.726830 403 3621 + 3624 O -21.580142 4.778390 0.032360 402 3625 3626 + 3625 H -21.344591 5.531473 -0.492439 403 3624 + 3626 H -20.893065 4.098475 -0.015753 403 3624 + 3627 O -19.278441 10.667329 -7.670184 402 3628 3629 + 3628 H -19.734646 10.867025 -6.871193 403 3627 + 3629 H -18.532328 10.061861 -7.412248 403 3627 + 3630 O 15.203902 17.401580 19.186703 402 3631 3632 + 3631 H 15.570898 16.998223 18.309293 403 3630 + 3632 H 14.252264 17.471997 19.020983 403 3630 + 3633 O 17.475659 -4.241820 15.422666 402 3634 3635 + 3634 H 17.040898 -4.071975 16.320909 403 3633 + 3635 H 18.352897 -4.517345 15.720235 403 3633 + 3636 O 26.262986 8.204965 -20.205701 402 3637 3638 + 3637 H 26.293506 8.464866 -19.242230 403 3636 + 3638 H 25.312183 8.095575 -20.318886 403 3636 + 3639 O 0.327844 9.896832 15.417356 402 3640 3641 + 3640 H 1.202524 9.685899 15.170065 403 3639 + 3641 H -0.168717 9.349803 14.747140 403 3639 + 3642 O 13.450972 -1.248355 9.296159 402 3643 3644 + 3643 H 12.530981 -1.651940 9.252801 403 3642 + 3644 H 13.953341 -1.912001 9.787602 403 3642 + 3645 O -5.429467 -15.995612 -8.899753 402 3646 3647 + 3646 H -4.916725 -16.325409 -8.062672 403 3645 + 3647 H -6.362549 -16.264748 -8.759990 403 3645 + 3648 O -17.910357 -1.868084 -15.474085 402 3649 3650 + 3649 H -18.801800 -2.365773 -15.300107 403 3648 + 3650 H -17.939036 -0.883951 -15.233581 403 3648 + 3651 O -6.998449 17.854546 12.155260 402 3652 3653 + 3652 H -7.324766 18.684261 11.705842 403 3651 + 3653 H -7.250338 17.940958 13.056006 403 3651 + 3654 O -27.017579 -12.852914 -7.744953 402 3655 3656 + 3655 H -26.095216 -13.088941 -7.541719 403 3654 + 3656 H -27.046015 -11.903607 -7.742366 403 3654 + 3657 O -20.992952 2.770137 13.223137 402 3658 3659 + 3658 H -21.230776 2.404263 14.087077 403 3657 + 3659 H -20.235470 2.326081 12.930982 403 3657 + 3660 O -26.544599 -5.877011 11.453664 402 3661 3662 + 3661 H -26.990332 -6.544246 10.916058 403 3660 + 3662 H -26.022394 -5.435999 10.830265 403 3660 + 3663 O -18.806379 11.367507 -13.046200 402 3664 3665 + 3664 H -19.789015 11.313553 -13.067429 403 3663 + 3665 H -18.628129 11.249318 -14.024506 403 3663 + 3666 O 24.794642 -2.429791 16.906929 402 3667 3668 + 3667 H 24.375084 -1.564983 16.998802 403 3666 + 3668 H 24.946627 -2.558178 15.958491 403 3666 + 3669 O -5.039569 8.056593 -19.064906 402 3670 3671 + 3670 H -5.052461 7.958795 -18.117466 403 3669 + 3671 H -5.966890 7.849304 -19.446709 403 3669 + 3672 O -2.889572 19.346856 10.223639 402 3673 3674 + 3673 H -3.384312 19.390763 9.401856 403 3672 + 3674 H -2.683383 20.308050 10.287170 403 3672 + 3675 O 24.834396 15.890694 6.130456 402 3676 3677 + 3676 H 24.234322 16.328808 6.788069 403 3675 + 3677 H 24.458399 16.070054 5.248361 403 3675 + 3678 O -5.675815 -18.202610 8.635402 402 3679 3680 + 3679 H -5.773224 -18.994730 9.253066 403 3678 + 3680 H -6.566693 -17.951332 8.462469 403 3678 + 3681 O 0.200228 10.638735 -9.720146 402 3682 3683 + 3682 H 1.124053 10.363079 -9.765946 403 3681 + 3683 H -0.169388 10.758518 -8.862327 403 3681 + 3684 O 12.586551 -8.995486 13.235948 402 3685 3686 + 3685 H 11.738414 -8.465169 13.179917 403 3684 + 3686 H 13.275714 -8.448558 12.911108 403 3684 + 3687 O 21.728995 -9.340509 14.117203 402 3688 3689 + 3688 H 21.166035 -8.543859 14.159733 403 3687 + 3689 H 21.300249 -10.103143 14.587027 403 3687 + 3690 O -6.837755 -7.061822 -14.579566 402 3691 3692 + 3691 H -7.451539 -6.737549 -13.910594 403 3690 + 3692 H -7.310401 -7.496795 -15.364575 403 3690 + 3693 O -9.354286 -10.670675 -5.815047 402 3694 3695 + 3694 H -9.142443 -9.961054 -6.416990 403 3693 + 3695 H -10.107132 -10.315463 -5.251791 403 3693 + 3696 O -8.705352 0.316369 14.356920 402 3697 3698 + 3697 H -8.755318 1.248673 14.182151 403 3696 + 3698 H -7.817961 -0.022395 14.313721 403 3696 + 3699 O 14.343736 18.982116 -1.699643 402 3700 3701 + 3700 H 14.409424 19.286931 -2.586247 403 3699 + 3701 H 14.592964 19.709765 -1.190359 403 3699 + 3702 O 14.559527 1.138316 10.218417 402 3703 3704 + 3703 H 15.479051 1.159830 9.856479 403 3702 + 3704 H 14.063855 0.416501 9.816078 403 3702 + 3705 O -20.566241 -0.996254 13.005878 402 3706 3707 + 3706 H -20.899331 -1.479928 12.209922 403 3705 + 3707 H -20.624473 -1.700653 13.673656 403 3705 + 3708 O -12.852778 -16.278261 -7.915385 402 3709 3710 + 3709 H -13.264438 -16.542888 -8.750067 403 3708 + 3710 H -12.112512 -16.948829 -7.782415 403 3708 + 3711 O -25.785944 -19.319619 -1.839096 402 3712 3713 + 3712 H -26.458799 -18.855500 -2.342721 403 3711 + 3713 H -25.985807 -19.145409 -0.929325 403 3711 + 3714 O -10.186107 18.619821 1.502896 402 3715 3716 + 3715 H -10.024101 19.020438 2.390188 403 3714 + 3716 H -10.942245 19.107400 1.164289 403 3714 + 3717 O 4.484858 10.819107 -17.964431 402 3718 3719 + 3718 H 5.133939 11.386899 -18.298672 403 3717 + 3719 H 4.527691 10.727124 -17.013873 403 3717 + 3720 O 6.463933 -18.890881 -12.906574 402 3721 3722 + 3721 H 7.142489 -18.893949 -12.181472 403 3720 + 3722 H 6.490763 -19.813219 -13.109192 403 3720 + 3723 O -15.198788 -16.766626 -9.336110 402 3724 3725 + 3724 H -15.377180 -16.563167 -8.461513 403 3723 + 3725 H -15.323254 -15.974257 -9.877497 403 3723 + 3726 O -14.146010 -20.422548 8.878122 402 3727 3728 + 3727 H -14.236979 -20.532175 7.917793 403 3726 + 3728 H -13.662828 -21.215449 9.131232 403 3726 + 3729 O 0.614957 1.428020 12.956126 402 3730 3731 + 3730 H -0.110540 1.901658 12.528670 403 3729 + 3731 H 0.325279 0.716474 13.497208 403 3729 + 3732 O -22.321257 -12.194484 -18.427855 402 3733 3734 + 3733 H -22.696325 -13.106322 -18.375252 403 3732 + 3734 H -22.412389 -11.917225 -19.335761 403 3732 + 3735 O 12.531442 -4.758462 20.472899 402 3736 3737 + 3736 H 13.067534 -4.753926 21.307738 403 3735 + 3737 H 12.096556 -5.562360 20.454035 403 3735 + 3738 O 13.892356 14.515119 -17.220006 402 3739 3740 + 3739 H 13.491013 15.249793 -17.676248 403 3738 + 3740 H 14.027899 14.819402 -16.306112 403 3738 + 3741 O 17.502120 -14.847049 -15.435947 402 3742 3743 + 3742 H 17.364472 -13.948352 -15.811879 403 3741 + 3743 H 18.105027 -15.359005 -16.059699 403 3741 + 3744 O -0.502268 9.530205 -15.562269 402 3745 3746 + 3745 H -0.938753 10.373293 -15.281955 403 3744 + 3746 H -0.097702 9.138998 -14.755615 403 3744 + 3747 O -21.309309 -20.408905 -16.987522 402 3748 3749 + 3748 H -21.345337 -20.375840 -17.999142 403 3747 + 3749 H -22.141862 -20.762308 -16.688786 403 3747 + 3750 O 22.147493 -6.639909 2.885000 402 3751 3752 + 3751 H 22.188652 -7.549798 2.578098 403 3750 + 3752 H 22.107229 -6.728348 3.871637 403 3750 + 3753 O -9.687279 5.414380 15.613331 402 3754 3755 + 3754 H -9.782742 5.066486 16.529208 403 3753 + 3755 H -10.448969 5.923644 15.361474 403 3753 + 3756 O 5.675344 7.586899 16.980957 402 3757 3758 + 3757 H 5.258959 7.810456 16.122506 403 3756 + 3758 H 6.513311 8.070410 16.991766 403 3756 + 3759 O -20.413973 -2.810756 -14.704675 402 3760 3761 + 3760 H -20.680710 -3.455276 -14.087899 403 3759 + 3761 H -20.927913 -2.006038 -14.605374 403 3759 + 3762 O -22.235897 -8.299273 -7.619662 402 3763 3764 + 3763 H -22.889194 -7.882281 -8.261122 403 3762 + 3764 H -22.332627 -7.861076 -6.765324 403 3762 + 3765 O -23.981218 -0.704780 -9.514827 402 3766 3767 + 3766 H -24.783483 -0.715849 -8.978342 403 3765 + 3767 H -24.016239 0.147898 -9.927153 403 3765 + 3768 O 7.651613 1.583143 -14.760840 402 3769 3770 + 3769 H 8.495812 1.439050 -15.299970 403 3768 + 3770 H 7.511620 2.516131 -14.862425 403 3768 + 3771 O 0.884173 -19.810112 -4.062624 402 3772 3773 + 3772 H 1.292889 -20.586437 -4.551786 403 3771 + 3773 H 1.192078 -19.022801 -4.536111 403 3771 + 3774 O 7.412040 11.115702 19.231433 402 3775 3776 + 3775 H 7.538580 12.059258 19.246795 403 3774 + 3776 H 8.260401 10.691591 19.301522 403 3774 + 3777 O -11.204219 12.495567 -4.600276 402 3778 3779 + 3778 H -11.028750 12.509428 -5.556334 403 3777 + 3779 H -10.363635 12.791820 -4.218009 403 3777 + 3780 O -25.903206 -8.385161 -5.723268 402 3781 3782 + 3781 H -25.119970 -7.920015 -6.092411 403 3780 + 3782 H -25.526651 -8.874179 -5.022568 403 3780 + 3783 O 14.802024 4.590987 3.933454 402 3784 3785 + 3784 H 14.375737 4.043905 3.277970 403 3783 + 3785 H 15.659394 4.916121 3.578549 403 3783 + 3786 O -15.934931 6.397950 6.388644 402 3787 3788 + 3787 H -15.620802 7.216906 6.047813 403 3786 + 3788 H -15.636175 5.690485 5.842853 403 3786 + 3789 O 22.212269 -3.912264 -1.134049 402 3790 3791 + 3790 H 22.458591 -3.040474 -1.407870 403 3789 + 3791 H 22.479085 -3.998208 -0.233468 403 3789 + 3792 O 4.448770 -18.623307 6.143091 402 3793 3794 + 3793 H 3.859811 -18.031485 6.593889 403 3792 + 3794 H 4.151476 -19.464236 6.536017 403 3792 + 3795 O 12.429816 -18.121512 9.248186 402 3796 3797 + 3796 H 11.629942 -18.388099 8.814270 403 3795 + 3797 H 12.215561 -17.727680 10.120763 403 3795 + 3798 O -8.497823 15.258872 16.966673 402 3799 3800 + 3799 H -7.810852 14.986731 16.348784 403 3798 + 3800 H -8.167882 16.114306 17.249722 403 3798 + 3801 O -20.878291 -14.745638 19.779655 402 3802 3803 + 3802 H -20.112590 -15.386225 19.796245 403 3801 + 3803 H -20.957585 -14.429386 20.699068 403 3801 + 3804 O -8.042069 13.212107 -6.799126 402 3805 3806 + 3805 H -7.666844 14.065367 -7.020588 403 3804 + 3806 H -8.432360 12.994260 -7.617112 403 3804 + 3807 O -4.401745 18.792233 12.536049 402 3808 3809 + 3808 H -5.252264 18.441661 12.206342 403 3807 + 3809 H -3.786314 18.658531 11.783750 403 3807 + 3810 O -22.502948 12.635671 -9.954592 402 3811 3812 + 3811 H -22.382976 11.654218 -10.023557 403 3810 + 3812 H -22.588936 12.849370 -9.051340 403 3810 + 3813 O 6.205019 19.677761 10.016183 402 3814 3815 + 3814 H 6.418256 20.244108 9.256973 403 3813 + 3815 H 6.081289 20.311217 10.773751 403 3813 + 3816 O 21.525435 -20.385383 2.444412 402 3817 3818 + 3817 H 21.737318 -20.408572 1.494251 403 3816 + 3818 H 22.084053 -21.109629 2.761837 403 3816 + 3819 O -16.599942 -18.820535 17.198669 402 3820 3821 + 3820 H -16.278472 -18.736077 16.290240 403 3819 + 3821 H -16.380933 -19.763878 17.294110 403 3819 + 3822 O -25.290808 -16.946358 -19.688799 402 3823 3824 + 3823 H -24.765600 -16.889073 -18.911085 403 3822 + 3824 H -25.960541 -16.377910 -19.456590 403 3822 + 3825 O -24.694098 -20.476906 -4.136770 402 3826 3827 + 3826 H -24.606655 -20.536372 -5.117234 403 3825 + 3827 H -25.625806 -20.119370 -3.878957 403 3825 + 3828 O 11.896824 11.712030 16.306177 402 3829 3830 + 3829 H 11.348704 12.251154 16.873688 403 3828 + 3830 H 11.274914 11.545841 15.498058 403 3828 + 3831 O 5.697623 16.972820 10.470297 402 3832 3833 + 3832 H 4.991770 17.170798 11.097893 403 3831 + 3833 H 5.852878 17.817924 10.052784 403 3831 + 3834 O -13.284850 -7.746454 -6.025360 402 3835 3836 + 3835 H -12.994189 -6.883337 -5.651840 403 3834 + 3836 H -13.328473 -7.609512 -6.952585 403 3834 + 3837 O -21.223162 1.160412 -11.807882 402 3838 3839 + 3838 H -22.146291 1.276713 -11.566889 403 3837 + 3839 H -20.896068 1.043394 -10.863664 403 3837 + 3840 O -4.631057 18.622729 -4.921244 402 3841 3842 + 3841 H -4.887844 18.863646 -4.031199 403 3840 + 3842 H -5.230286 17.969756 -5.219284 403 3840 + 3843 O 24.681797 -17.654294 -1.670971 402 3844 3845 + 3844 H 23.768274 -17.475294 -1.329114 403 3843 + 3845 H 24.791039 -18.602540 -1.565321 403 3843 + 3846 O -17.687536 -19.879421 -18.679576 402 3847 3848 + 3847 H -17.986562 -20.092647 -17.773622 403 3846 + 3848 H -17.222303 -20.676328 -18.924760 403 3846 + 3849 O -6.573668 -1.414933 -12.940464 402 3850 3851 + 3850 H -5.981594 -0.685726 -13.202528 403 3849 + 3851 H -7.313339 -1.430989 -13.600227 403 3849 + 3852 O 24.852405 8.745112 16.566019 402 3853 3854 + 3853 H 25.315387 9.320408 17.189845 403 3852 + 3854 H 25.373490 7.938156 16.494188 403 3852 + 3855 O 19.231159 -18.894566 -9.451949 402 3856 3857 + 3856 H 18.429507 -18.461081 -9.748217 403 3855 + 3857 H 18.920766 -19.499725 -8.784679 403 3855 + 3858 O 3.338073 -20.229490 -19.454945 402 3859 3860 + 3859 H 2.656040 -19.781393 -18.876483 403 3858 + 3860 H 4.028693 -19.592026 -19.519704 403 3858 + 3861 O 10.225819 20.337141 12.829025 402 3862 3863 + 3862 H 9.563839 20.833795 13.325284 403 3861 + 3863 H 9.705679 19.640109 12.367009 403 3861 + 3864 O 9.533934 0.668964 -16.571520 402 3865 3866 + 3865 H 10.399193 0.538209 -16.091711 403 3864 + 3866 H 9.576351 1.385138 -17.298275 403 3864 + 3867 O 10.662383 -1.197996 9.643694 402 3868 3869 + 3868 H 10.669217 -0.519470 10.302977 403 3867 + 3869 H 9.975986 -0.906856 8.995989 403 3867 + 3870 O -8.631045 -16.685206 -9.233119 402 3871 3872 + 3871 H -8.853335 -15.836492 -8.694578 403 3870 + 3872 H -8.361803 -16.344073 -10.088388 403 3870 + 3873 O -16.046867 3.202795 -18.808362 402 3874 3875 + 3874 H -16.950450 3.324347 -19.009457 403 3873 + 3875 H -16.106623 2.648826 -18.004784 403 3873 + 3876 O -21.655953 -18.268305 -5.022876 402 3877 3878 + 3877 H -22.220521 -18.292491 -4.188932 403 3876 + 3878 H -21.437192 -17.347868 -5.235461 403 3876 + 3879 O -3.054479 -8.582825 -16.474970 402 3880 3881 + 3880 H -3.561388 -8.760643 -15.715699 403 3879 + 3881 H -3.058659 -7.559442 -16.547327 403 3879 + 3882 O -22.812267 -16.888527 -8.744475 402 3883 3884 + 3883 H -22.235942 -16.090582 -8.825879 403 3882 + 3884 H -23.719738 -16.520887 -8.878128 403 3882 + 3885 O -3.704190 -14.195133 -2.407699 402 3886 3887 + 3886 H -3.387102 -14.174810 -3.288821 403 3885 + 3887 H -3.356349 -13.453995 -1.933962 403 3885 + 3888 O -20.696165 -13.591009 17.258237 402 3889 3890 + 3889 H -21.475297 -13.153296 16.960866 403 3888 + 3890 H -20.768473 -13.524910 18.211894 403 3888 + 3891 O -18.077515 8.036142 -4.047377 402 3892 3893 + 3892 H -17.812789 8.648744 -4.737838 403 3891 + 3893 H -17.620887 8.520879 -3.289746 403 3891 + 3894 O -20.110600 19.407267 6.124785 402 3895 3896 + 3895 H -20.896902 18.868688 6.157232 403 3894 + 3896 H -20.402600 20.334320 6.077069 403 3894 + 3897 O -2.051195 9.467924 7.827905 402 3898 3899 + 3898 H -2.097838 10.162479 7.064246 403 3897 + 3899 H -2.844983 9.344092 8.305687 403 3897 + 3900 O -18.682154 5.478699 -2.934427 402 3901 3902 + 3901 H -18.229636 5.442492 -2.124369 403 3900 + 3902 H -18.518659 6.286464 -3.381696 403 3900 + 3903 O 10.010203 14.447632 13.470001 402 3904 3905 + 3904 H 10.226696 15.357421 13.799091 403 3903 + 3905 H 9.262668 14.599091 12.884669 403 3903 + 3906 O 17.215836 -17.548329 -2.124086 402 3907 3908 + 3907 H 16.925189 -16.662250 -2.252230 403 3906 + 3908 H 16.865887 -17.769074 -1.235796 403 3906 + 3909 O -5.919183 -9.349524 7.766171 402 3910 3911 + 3910 H -6.741218 -8.869400 7.859192 403 3909 + 3911 H -5.404573 -8.951408 7.082536 403 3909 + 3912 O -10.112774 -17.514245 5.470012 402 3913 3914 + 3913 H -10.177248 -17.335797 6.413035 403 3912 + 3914 H -10.903396 -17.912916 5.176788 403 3912 + 3915 O -17.679442 -12.718669 -9.050443 402 3916 3917 + 3916 H -18.270476 -12.557016 -8.300034 403 3915 + 3917 H -18.198469 -12.552825 -9.805697 403 3915 + 3918 O 0.903259 -17.089060 -20.671596 402 3919 3920 + 3919 H 1.071535 -16.725461 -21.579419 403 3918 + 3920 H 1.485989 -16.556142 -20.071022 403 3918 + 3921 O -1.956506 2.203046 13.006137 402 3922 3923 + 3922 H -2.272231 1.835920 13.818085 403 3921 + 3923 H -1.592679 3.074581 13.177858 403 3921 + 3924 O 24.307317 -7.931160 13.942533 402 3925 3926 + 3925 H 23.816648 -8.756525 14.130421 403 3924 + 3926 H 25.262169 -8.082231 14.204005 403 3924 + 3927 O -14.058968 19.300765 0.314297 402 3928 3929 + 3928 H -13.917031 18.387642 0.266006 403 3927 + 3929 H -13.221511 19.754514 0.415523 403 3927 + 3930 O -16.676872 -9.877858 -20.319129 402 3931 3932 + 3931 H -17.274810 -10.519927 -20.729021 403 3930 + 3932 H -16.941519 -8.964879 -20.646570 403 3930 + 3933 O -12.680702 -6.911233 16.978199 402 3934 3935 + 3934 H -13.557850 -6.922758 17.425905 403 3933 + 3935 H -12.269134 -7.738029 17.145620 403 3933 + 3936 O 19.555509 -17.579926 -19.976313 402 3937 3938 + 3937 H 19.050335 -18.389167 -19.640518 403 3936 + 3938 H 18.949443 -17.119931 -20.527020 403 3936 + 3939 O 21.076471 3.084534 14.949703 402 3940 3941 + 3940 H 21.982711 3.424585 15.137726 403 3939 + 3941 H 21.059338 2.943234 13.989445 403 3939 + 3942 O 16.442213 12.147725 -13.378964 402 3943 3944 + 3943 H 16.950297 12.610197 -12.695317 403 3942 + 3944 H 15.827762 12.795203 -13.746701 403 3942 + 3945 O -25.439902 4.711302 -20.157995 402 3946 3947 + 3946 H -25.232468 3.814757 -20.523590 403 3945 + 3947 H -26.313293 4.971364 -20.426324 403 3945 + 3948 O -7.588528 12.088664 13.408162 402 3949 3950 + 3949 H -8.200423 12.174754 12.658025 403 3948 + 3950 H -8.113691 11.630720 14.142990 403 3948 + 3951 O 26.436785 0.034911 5.586573 402 3952 3953 + 3952 H 25.457878 0.386547 5.643112 403 3951 + 3953 H 26.282513 -0.892272 5.901143 403 3951 + 3954 O 20.823937 -7.100912 -0.564869 402 3955 3956 + 3955 H 20.884805 -6.179294 -0.203608 403 3954 + 3956 H 21.513466 -7.607628 -0.095760 403 3954 + 3957 O 12.691400 17.480587 1.380786 402 3958 3959 + 3958 H 12.692396 17.261428 2.322353 403 3957 + 3959 H 12.611923 16.651984 0.923905 403 3957 + 3960 O -24.911725 10.197954 8.411953 402 3961 3962 + 3961 H -25.636701 10.762551 8.096402 403 3960 + 3962 H -25.071847 10.060147 9.332683 403 3960 + 3963 O -18.639378 5.447813 -18.001661 402 3964 3965 + 3964 H -18.974361 6.320483 -18.277153 403 3963 + 3965 H -17.987263 5.631149 -17.283273 403 3963 + 3966 O -20.959865 -1.961151 19.496385 402 3967 3968 + 3967 H -20.534023 -2.468481 20.215248 403 3966 + 3968 H -20.355179 -1.361709 19.053432 403 3966 + 3969 O 25.098062 -12.896695 17.002170 402 3970 3971 + 3970 H 24.406639 -13.455503 17.206622 403 3969 + 3971 H 24.932322 -12.540708 16.110034 403 3969 + 3972 O -26.490917 -20.588542 6.528398 402 3973 3974 + 3973 H -26.917008 -20.096913 5.823633 403 3972 + 3974 H -25.946103 -19.813146 6.884354 403 3972 + 3975 O 18.663882 -15.761448 0.434559 402 3976 3977 + 3976 H 18.293356 -16.602715 0.618971 403 3975 + 3977 H 18.164755 -15.050245 0.892557 403 3975 + 3978 O 10.988074 -12.207500 15.456319 402 3979 3980 + 3979 H 11.659991 -12.535619 14.945024 403 3978 + 3980 H 11.316489 -11.864883 16.268157 403 3978 + 3981 O -21.505805 3.757682 10.585783 402 3982 3983 + 3982 H -21.516645 3.500786 11.561155 403 3981 + 3983 H -21.430683 4.736521 10.599986 403 3981 + 3984 O 12.282284 -13.106227 -18.881930 402 3985 3986 + 3985 H 12.759593 -12.281589 -18.973554 403 3984 + 3986 H 11.656222 -12.946682 -18.168338 403 3984 + 3987 O 13.087944 10.285301 -0.892868 402 3988 3989 + 3988 H 13.800763 10.058844 -0.348329 403 3987 + 3989 H 13.444993 10.532975 -1.717057 403 3987 + 3990 O -9.162139 -11.933739 -19.558277 402 3991 3992 + 3991 H -8.651549 -11.246835 -19.197918 403 3990 + 3992 H -8.816392 -12.749175 -19.109531 403 3990 + 3993 O -13.431343 12.125781 14.789987 402 3994 3995 + 3994 H -14.177333 12.077783 15.386597 403 3993 + 3995 H -13.089871 13.025037 14.836795 403 3993 + 3996 O 18.177368 7.215321 -17.740007 402 3997 3998 + 3997 H 17.389540 7.853045 -17.679076 403 3996 + 3998 H 17.843221 6.367105 -17.888163 403 3996 + 3999 O 1.466167 -13.601298 7.582198 402 4000 4001 + 4000 H 0.972435 -14.385853 7.776388 403 3999 + 4001 H 0.919057 -12.873156 7.164133 403 3999 + 4002 O 11.325663 12.317782 -17.859494 402 4003 4004 + 4003 H 11.786996 12.918180 -17.243704 403 4002 + 4004 H 11.714407 11.538450 -17.534509 403 4002 + 4005 O 17.972713 -1.451543 -17.483151 402 4006 4007 + 4006 H 18.207855 -0.912662 -18.203981 403 4005 + 4007 H 17.842338 -0.769611 -16.779012 403 4005 + 4008 O 25.598333 7.442585 -7.896359 402 4009 4010 + 4009 H 25.893540 7.973241 -8.686847 403 4008 + 4010 H 24.662621 7.579298 -7.748832 403 4008 + 4011 O 16.953262 -5.516556 7.796955 402 4012 4013 + 4012 H 16.150883 -6.127947 7.920888 403 4011 + 4013 H 16.872953 -4.676742 8.219748 403 4011 + 4014 O 12.447806 -2.742404 -5.103683 402 4015 4016 + 4015 H 13.262065 -2.337192 -4.865615 403 4014 + 4016 H 12.567802 -3.638206 -5.489980 403 4014 + 4017 O 23.442824 1.912863 -4.186751 402 4018 4019 + 4018 H 22.783687 1.609227 -4.831788 403 4017 + 4019 H 23.692291 2.783304 -4.548967 403 4017 + 4020 O 26.613065 -7.057291 -2.847144 402 4021 4022 + 4021 H 25.921057 -6.884909 -2.189136 403 4020 + 4022 H 26.624480 -6.286981 -3.475448 403 4020 + 4023 O -10.239445 -6.332791 -18.742073 402 4024 4025 + 4024 H -10.340169 -5.647767 -18.098924 403 4023 + 4025 H -10.090969 -5.968696 -19.646250 403 4023 + 4026 O -20.376403 -6.492157 -15.200035 402 4027 4028 + 4027 H -21.216096 -6.709010 -14.741818 403 4026 + 4028 H -19.747585 -6.443291 -14.454302 403 4026 + 4029 O 12.425316 -12.073259 9.372568 402 4030 4031 + 4030 H 12.595386 -11.730652 10.279050 403 4029 + 4031 H 11.975580 -11.375801 8.874658 403 4029 + 4032 O -8.532199 -0.531892 16.952480 402 4033 4034 + 4033 H -8.680978 0.164546 17.584693 403 4032 + 4034 H -8.601294 -0.093174 16.091071 403 4032 + 4035 O -15.814683 -10.863297 -17.898155 402 4036 4037 + 4036 H -15.883461 -10.639190 -18.879894 403 4035 + 4037 H -16.703278 -10.849248 -17.497731 403 4035 + 4038 O -14.449801 9.759702 -12.925291 402 4039 4040 + 4039 H -14.272437 8.788361 -12.976539 403 4038 + 4040 H -15.016657 9.891030 -12.180657 403 4038 + 4041 O -21.430732 11.921106 -19.181002 402 4042 4043 + 4042 H -21.526880 12.138660 -20.109451 403 4041 + 4043 H -22.050688 12.479567 -18.617821 403 4041 + 4044 O -25.974066 -3.158098 2.462777 402 4045 4046 + 4045 H -25.831369 -2.255405 2.174801 403 4044 + 4046 H -26.439926 -3.064742 3.263507 403 4044 + 4047 O -3.706735 6.147388 -13.605663 402 4048 4049 + 4048 H -3.297323 5.307884 -13.886877 403 4047 + 4049 H -3.422860 6.737980 -14.321183 403 4047 + 4050 O -20.883597 16.612287 14.041958 402 4051 4052 + 4051 H -20.999564 17.543929 13.958831 403 4050 + 4052 H -19.965627 16.487176 14.039107 403 4050 + 4053 O -20.557889 -1.845471 7.488592 402 4054 4055 + 4054 H -20.340337 -1.068424 6.935483 403 4053 + 4055 H -20.903185 -2.604394 7.012639 403 4053 + 4056 O -12.460264 -18.929249 4.382660 402 4057 4058 + 4057 H -12.282133 -18.769615 3.435033 403 4056 + 4058 H -13.389343 -18.666156 4.432821 403 4056 + 4059 O 1.417248 11.708889 10.582961 402 4060 4061 + 4060 H 2.296023 11.794703 10.114913 403 4059 + 4061 H 1.322165 12.680869 10.895877 403 4059 + 4062 O 10.022181 17.152306 -1.509079 402 4063 4064 + 4063 H 9.099220 16.788088 -1.473811 403 4062 + 4064 H 10.556572 16.462293 -1.005697 403 4062 + 4065 O 26.377298 1.167852 -18.114945 402 4066 4067 + 4066 H 26.294922 1.597527 -19.017371 403 4065 + 4067 H 26.810582 1.835218 -17.546811 403 4065 + 4068 O 4.477282 16.231872 -2.892567 402 4069 4070 + 4069 H 4.601255 15.878653 -3.817385 403 4068 + 4070 H 5.378487 16.115183 -2.438618 403 4068 + 4071 O 24.364511 -2.064551 14.086212 402 4072 4073 + 4072 H 24.217903 -1.193238 13.665466 403 4071 + 4073 H 25.144037 -2.400521 13.646565 403 4071 + 4074 O 19.972396 19.003953 10.129446 402 4075 4076 + 4075 H 19.099910 19.391464 10.278245 403 4074 + 4076 H 20.140306 18.289889 10.813702 403 4074 + 4077 O -9.744468 15.055459 -16.611544 402 4078 4079 + 4078 H -10.467454 15.614656 -16.286228 403 4077 + 4079 H -10.073803 14.402676 -17.210684 403 4077 + 4080 O -7.338670 -8.956276 -11.936725 402 4081 4082 + 4081 H -7.205180 -9.461193 -11.112425 403 4080 + 4082 H -8.291268 -8.840677 -12.000288 403 4080 + 4083 O 9.310332 14.156142 -6.279488 402 4084 4085 + 4084 H 10.218649 13.951492 -6.545390 403 4083 + 4085 H 9.258047 14.553265 -5.370592 403 4083 + 4086 O 0.560208 -13.174622 -9.781962 402 4087 4088 + 4087 H 0.439761 -12.748376 -10.646076 403 4086 + 4088 H 0.670280 -14.103731 -9.913873 403 4086 + 4089 O 26.128167 14.199294 -1.068870 402 4090 4091 + 4090 H 26.431992 13.452397 -0.460937 403 4089 + 4091 H 25.201007 14.292566 -1.045597 403 4089 + 4092 O -16.949107 1.727945 -4.563937 402 4093 4094 + 4093 H -16.652995 1.770027 -5.488123 403 4092 + 4094 H -17.803051 2.243334 -4.537865 403 4092 + 4095 O -11.599049 -20.904475 0.385428 402 4096 4097 + 4096 H -11.617180 -19.974350 0.739051 403 4095 + 4097 H -10.733402 -20.802194 -0.016961 403 4095 + 4098 O -25.256117 12.394753 17.084014 402 4099 4100 + 4099 H -24.597187 12.955531 17.523929 403 4098 + 4100 H -25.351341 11.801006 17.816577 403 4098 + 4101 O 21.083077 10.997597 -6.264609 402 4102 4103 + 4102 H 20.914438 11.935561 -6.410001 403 4101 + 4103 H 20.611065 10.573853 -6.944918 403 4101 + 4104 O 24.363484 -19.776402 17.065120 402 4105 4106 + 4105 H 24.744693 -19.074320 16.551577 403 4104 + 4106 H 25.036878 -20.294208 17.436608 403 4104 + 4107 O -10.735684 9.638082 6.150386 402 4108 4109 + 4108 H -10.221167 9.463561 5.360913 403 4107 + 4109 H -11.618988 9.902798 5.921573 403 4107 + 4110 O -14.186781 2.877388 6.286661 402 4111 4112 + 4111 H -14.662769 3.118087 7.092293 403 4110 + 4112 H -14.425510 3.607015 5.695311 403 4110 + 4113 O 23.488790 -12.140879 -16.710373 402 4114 4115 + 4114 H 23.035645 -11.840916 -17.492726 403 4113 + 4115 H 24.198140 -11.533887 -16.669370 403 4113 + 4116 O -9.756394 20.612891 7.487522 402 4117 4118 + 4117 H -10.567829 20.596149 6.941769 403 4116 + 4118 H -9.567427 19.672366 7.650269 403 4116 + 4119 O -10.809623 -15.325182 16.646046 402 4120 4121 + 4120 H -10.540345 -15.380934 15.754906 403 4119 + 4121 H -10.995048 -16.212302 17.003558 403 4119 + 4122 O 23.590175 -14.844140 18.091313 402 4123 4124 + 4123 H 23.082950 -15.642639 17.817614 403 4122 + 4124 H 22.918432 -14.433938 18.680116 403 4122 + 4125 O -9.843301 16.099124 8.917553 402 4126 4127 + 4126 H -10.800912 15.942477 8.746196 403 4125 + 4127 H -9.776206 16.007775 9.870062 403 4125 + 4128 O -15.969686 15.153089 5.232592 402 4129 4130 + 4129 H -15.190596 15.577230 4.796399 403 4128 + 4130 H -16.653218 15.791665 5.086615 403 4128 + 4131 O -14.522038 4.774109 20.092720 402 4132 4133 + 4132 H -13.726552 4.726517 19.600040 403 4131 + 4133 H -14.275341 5.232921 20.890928 403 4131 + 4134 O -19.150467 -13.472817 -2.000864 402 4135 4136 + 4135 H -19.948375 -14.097323 -2.133949 403 4134 + 4136 H -18.565882 -13.718795 -2.719742 403 4134 + 4137 O 26.570568 3.571434 2.677152 402 4138 4139 + 4138 H 26.009960 3.474978 1.867261 403 4137 + 4139 H 25.979473 4.132392 3.254985 403 4137 + 4140 O 2.963742 -20.267378 17.680551 402 4141 4142 + 4141 H 2.939273 -19.702759 18.451804 403 4140 + 4142 H 3.704894 -20.009537 17.129551 403 4140 + 4143 O 12.886914 -16.854820 -15.969948 402 4144 4145 + 4144 H 13.277380 -15.998244 -16.290560 403 4143 + 4145 H 12.084202 -16.946569 -16.485310 403 4143 + 4146 O -13.403098 20.670706 14.180090 402 4147 4148 + 4147 H -12.697115 20.129500 13.825532 403 4146 + 4148 H -13.078241 21.562186 14.353615 403 4146 + 4149 O 1.263724 -2.316623 11.541630 402 4150 4151 + 4150 H 1.604989 -3.147382 11.057854 403 4149 + 4151 H 1.301508 -2.419331 12.514250 403 4149 + 4152 O 16.027424 -2.901060 -7.834089 402 4153 4154 + 4153 H 15.527925 -3.644628 -8.229138 403 4152 + 4154 H 15.964477 -2.241942 -8.584411 403 4152 + 4155 O 20.574908 7.015109 -16.355513 402 4156 4157 + 4156 H 20.799767 7.912603 -16.672696 403 4155 + 4157 H 19.614717 7.020855 -16.464707 403 4155 + 4158 O -9.799678 -16.315433 -2.735469 402 4159 4160 + 4159 H -9.082163 -15.876270 -3.158920 403 4158 + 4160 H -9.675027 -17.234496 -2.912849 403 4158 + 4161 O 19.925358 -1.799248 -13.616500 402 4162 4163 + 4162 H 19.041533 -1.607762 -13.949745 403 4161 + 4163 H 20.105803 -1.002750 -13.099573 403 4161 + 4164 O 26.502531 14.202393 -14.528425 402 4165 4166 + 4165 H 25.566109 14.188457 -14.685868 403 4164 + 4166 H 26.586381 14.616670 -13.692642 403 4164 + 4167 O -3.640972 -15.964509 3.441932 402 4168 4169 + 4168 H -3.916866 -16.633969 4.049731 403 4167 + 4169 H -3.180242 -16.493582 2.755249 403 4167 + 4170 O 20.157853 -15.783144 2.660570 402 4171 4172 + 4171 H 20.419750 -16.681495 2.950489 403 4170 + 4172 H 19.984795 -15.805827 1.709836 403 4170 + 4173 O 3.128568 11.959447 -14.685598 402 4174 4175 + 4174 H 2.607191 12.662191 -15.102263 403 4173 + 4175 H 3.769283 12.428495 -14.079944 403 4173 + 4176 O -24.815536 -15.542873 4.007555 402 4177 4178 + 4177 H -24.218085 -16.000016 3.406953 403 4176 + 4178 H -25.315854 -15.091766 3.403899 403 4176 + 4179 O 19.308952 20.661672 -11.377272 402 4180 4181 + 4180 H 19.335667 21.503703 -10.905560 403 4179 + 4181 H 20.214980 20.602723 -11.631713 403 4179 + 4182 O 13.542822 -5.649499 0.333332 402 4183 4184 + 4183 H 13.963629 -4.763289 0.274336 403 4182 + 4184 H 12.814580 -5.810940 -0.269097 403 4182 + 4185 O 13.690049 -20.143279 -5.943461 402 4186 4187 + 4186 H 13.436356 -20.544177 -6.811045 403 4185 + 4187 H 14.540599 -19.746894 -6.080417 403 4185 + 4188 O -15.552613 1.765055 -16.570745 402 4189 4190 + 4189 H -15.053582 2.345281 -15.988522 403 4188 + 4190 H -15.170829 0.889200 -16.752662 403 4188 + 4191 O 18.304944 6.143260 -6.070829 402 4192 4193 + 4192 H 18.125046 5.326107 -5.570747 403 4191 + 4193 H 18.266448 6.784180 -5.360045 403 4191 + 4194 O 2.506981 -17.274997 10.100766 402 4195 4196 + 4195 H 3.347828 -17.659592 10.064456 403 4194 + 4196 H 2.856471 -16.401034 10.442415 403 4194 + 4197 O -19.165460 9.947070 1.363209 402 4198 4199 + 4198 H -18.730236 10.366229 0.602857 403 4197 + 4199 H -18.849961 10.481480 2.151944 403 4197 + 4200 O -25.980688 17.933161 -0.316559 402 4201 4202 + 4201 H -26.443527 17.228913 -0.781861 403 4200 + 4202 H -25.367896 18.145268 -0.998602 403 4200 + 4203 O -8.979352 -14.825818 -16.044347 402 4204 4205 + 4204 H -8.232685 -15.013438 -15.478412 403 4203 + 4205 H -9.593300 -15.565144 -15.856307 403 4203 + 4206 O -26.878522 10.651550 -5.997590 402 4207 4208 + 4207 H -27.657923 11.080372 -6.414692 403 4206 + 4208 H -26.575102 11.315809 -5.418717 403 4206 + 4209 O 25.946197 20.187421 -17.138659 402 4210 4211 + 4210 H 26.747885 20.729551 -17.283461 403 4209 + 4211 H 25.893413 20.171520 -16.172728 403 4209 + 4212 O -22.758506 -11.646357 10.203824 402 4213 4214 + 4213 H -22.294597 -11.119698 9.558550 403 4212 + 4214 H -22.038786 -12.335635 10.328914 403 4212 + 4215 O 5.051118 -7.506736 -18.096705 402 4216 4217 + 4216 H 5.890399 -6.995469 -18.089124 403 4215 + 4217 H 4.432798 -7.081744 -18.676680 403 4215 + 4218 O -25.361275 -6.967887 -18.797135 402 4219 4220 + 4219 H -24.723765 -6.707007 -18.115496 403 4218 + 4220 H -25.259315 -7.901704 -18.865340 403 4218 + 4221 O -2.799085 -16.680409 -5.658803 402 4222 4223 + 4222 H -3.041668 -16.532466 -4.707237 403 4221 + 4223 H -2.655725 -17.646573 -5.729646 403 4221 + 4224 O 6.961841 -0.650018 14.982518 402 4225 4226 + 4225 H 7.049840 -0.822572 15.899427 403 4224 + 4226 H 7.585417 -1.245556 14.495279 403 4224 + 4227 O -27.328225 -2.775920 4.654966 402 4228 4229 + 4228 H -28.131668 -3.256883 4.960696 403 4227 + 4229 H -26.702154 -2.749977 5.390082 403 4227 + 4230 O -10.545176 15.887401 -11.516094 402 4231 4232 + 4231 H -11.354652 16.437925 -11.631152 403 4230 + 4232 H -10.234139 15.573972 -12.408175 403 4230 + 4233 O 27.293890 -3.784569 13.095470 402 4234 4235 + 4234 H 27.629930 -4.552840 12.571336 403 4233 + 4235 H 27.297508 -4.139921 14.014667 403 4233 + 4236 O 26.677289 -8.930589 -5.080635 402 4237 4238 + 4237 H 27.349144 -8.367067 -5.399678 403 4236 + 4238 H 26.178389 -8.423219 -4.437089 403 4236 + 4239 O 26.303353 -13.709693 -10.199064 402 4240 4241 + 4240 H 26.819339 -13.575870 -11.047002 403 4239 + 4241 H 26.995460 -13.448744 -9.504732 403 4239 + 4242 O -5.782538 -6.137070 -18.577558 402 4243 4244 + 4243 H -5.225175 -5.601455 -18.004594 403 4242 + 4244 H -5.277523 -6.828742 -18.969936 403 4242 + 4245 O -10.751593 15.373515 -8.362078 402 4246 4247 + 4246 H -10.116580 15.133048 -9.031534 403 4245 + 4247 H -11.426882 15.817389 -8.872810 403 4245 + 4248 O 16.641528 -6.647086 14.042481 402 4249 4250 + 4249 H 16.877857 -5.780320 14.352388 403 4248 + 4250 H 15.723201 -6.556522 13.694961 403 4248 + 4251 O -9.692102 -20.433174 12.075319 402 4252 4253 + 4252 H -9.015496 -20.798185 11.574612 403 4251 + 4253 H -10.349277 -21.179838 12.030713 403 4251 + 4254 O -3.342987 5.338933 20.099174 402 4255 4256 + 4255 H -3.147711 5.827567 20.954747 403 4254 + 4256 H -4.124775 5.753362 19.736033 403 4254 + 4257 O 22.616008 -14.603236 0.953729 402 4258 4259 + 4258 H 21.991188 -13.989371 1.394272 403 4257 + 4259 H 22.974372 -14.081510 0.229956 403 4257 + 4260 O -8.097592 12.140479 -19.585886 402 4261 4262 + 4261 H -8.453866 12.623380 -20.326053 403 4260 + 4262 H -8.784224 11.654989 -19.152969 403 4260 + 4263 O -21.232297 5.610953 -16.679404 402 4264 4265 + 4264 H -20.585466 5.060918 -17.156512 403 4263 + 4265 H -21.930038 5.836903 -17.294471 403 4263 + 4266 O -10.747633 18.133699 -14.681278 402 4267 4268 + 4267 H -10.847151 18.670752 -15.499579 403 4266 + 4268 H -9.785896 18.213162 -14.415037 403 4266 + 4269 O 5.277447 -4.914937 -12.832056 402 4270 4271 + 4270 H 4.837973 -4.063025 -13.209955 403 4269 + 4271 H 6.186619 -4.697637 -12.711347 403 4269 + 4272 O 20.041500 5.021710 -2.968457 402 4273 4274 + 4273 H 19.672986 5.469423 -2.234503 403 4272 + 4274 H 20.344328 4.132583 -2.637240 403 4272 + 4275 O 17.907741 2.778212 -8.037993 402 4276 4277 + 4276 H 18.567517 3.366180 -8.410651 403 4275 + 4277 H 17.288995 3.302520 -7.441301 403 4275 + 4278 O 5.562515 -18.543574 -19.590057 402 4279 4280 + 4279 H 6.312662 -18.495893 -20.210476 403 4278 + 4280 H 5.830551 -17.824826 -18.960179 403 4278 + 4281 O 12.736551 -13.896404 -1.831403 402 4282 4283 + 4282 H 12.773597 -12.929037 -1.656141 403 4281 + 4283 H 13.175198 -14.041740 -2.708482 403 4281 + 4284 O -4.469179 -3.097942 -13.481704 402 4285 4286 + 4285 H -3.873920 -2.479353 -13.901987 403 4284 + 4286 H -5.276658 -2.695674 -13.122340 403 4284 + 4287 O -21.439043 8.219030 17.863426 402 4288 4289 + 4288 H -21.056703 8.853759 17.338517 403 4287 + 4289 H -21.129569 7.386574 17.512818 403 4287 + 4290 O -20.342022 -7.199464 17.782819 402 4291 4292 + 4291 H -19.811208 -6.577246 18.288787 403 4290 + 4292 H -19.701668 -7.908647 17.571092 403 4290 + 4293 O -14.263922 5.278640 -18.510906 402 4294 4295 + 4294 H -13.564113 4.937165 -17.913388 403 4293 + 4295 H -14.930181 4.580837 -18.615930 403 4293 + 4296 O 16.913731 -14.141037 14.480884 402 4297 4298 + 4297 H 16.066655 -13.798463 14.461234 403 4296 + 4298 H 17.548578 -13.399940 14.431310 403 4296 + 4299 O -25.968088 14.659464 5.007859 402 4300 4301 + 4300 H -25.454004 13.822928 4.891375 403 4299 + 4301 H -26.104124 14.757551 5.974942 403 4299 + 4302 O -18.135969 17.732537 5.080161 402 4303 4304 + 4303 H -18.773193 18.355342 5.390012 403 4302 + 4304 H -18.159466 17.860761 4.093910 403 4302 + 4305 O -27.275820 -16.400609 -7.043757 402 4306 4307 + 4306 H -26.590275 -16.756481 -6.431378 403 4305 + 4307 H -27.617212 -15.617979 -6.640114 403 4305 + 4308 O 24.748058 17.280534 18.064239 402 4309 4310 + 4309 H 25.308718 17.915370 18.504903 403 4308 + 4310 H 24.056361 17.050512 18.710421 403 4308 + 4311 O -24.811053 1.584408 5.834113 402 4312 4313 + 4312 H -25.507909 1.858017 6.420755 403 4311 + 4313 H -25.030959 2.043401 4.912778 403 4311 + 4314 O -17.538048 -16.019040 8.437894 402 4315 4316 + 4315 H -16.656025 -15.917276 8.786670 403 4314 + 4316 H -18.001949 -16.630915 9.146335 403 4314 + 4317 O 24.760362 7.007344 2.270076 402 4318 4319 + 4318 H 25.402754 6.314627 2.489308 403 4317 + 4319 H 23.915754 6.586671 2.268737 403 4317 + 4320 O 25.788659 -3.059441 10.761911 402 4321 4322 + 4321 H 26.310282 -3.490606 11.381049 403 4320 + 4322 H 26.152501 -2.184136 10.493232 403 4320 + 4323 O 0.555207 13.578019 -13.771204 402 4324 4325 + 4324 H 0.341766 12.780750 -14.192088 403 4323 + 4325 H 0.413626 13.443525 -12.823611 403 4323 + 4326 O 20.410457 17.119094 12.037026 402 4327 4328 + 4327 H 20.229518 17.254716 12.960534 403 4326 + 4328 H 19.888401 16.300517 11.792550 403 4326 + 4329 O -23.997550 7.377972 16.665323 402 4330 4331 + 4330 H -23.725736 7.038438 15.778438 403 4329 + 4331 H -23.233133 7.945952 17.026136 403 4329 + 4332 O 10.209255 5.785175 12.171401 402 4333 4334 + 4333 H 10.101397 6.356166 11.459081 403 4332 + 4334 H 9.657068 5.061974 12.024038 403 4332 + 4335 O 18.434676 -10.560721 -17.755033 402 4336 4337 + 4336 H 18.443899 -11.522200 -17.622101 403 4335 + 4337 H 18.319805 -10.178413 -16.882655 403 4335 + 4338 O -27.095192 -12.657493 -12.643385 402 4339 4340 + 4339 H -26.627310 -12.318558 -13.484881 403 4338 + 4340 H -26.470420 -12.949131 -11.963689 403 4338 + 4341 O -16.616222 15.445597 -12.118963 402 4342 4343 + 4342 H -16.900898 14.503610 -11.855586 403 4341 + 4343 H -15.694269 15.632029 -11.755889 403 4341 + 4344 O 21.704052 -7.110846 5.569340 402 4345 4346 + 4345 H 21.462097 -8.042671 5.894386 403 4344 + 4346 H 20.943089 -6.635884 5.906995 403 4344 + 4347 O 18.206432 16.827370 1.010928 402 4348 4349 + 4348 H 17.640465 17.264033 0.353478 403 4347 + 4349 H 17.852918 17.062780 1.898646 403 4347 + 4350 O -11.473367 18.497190 -2.566431 402 4351 4352 + 4351 H -11.979906 19.196582 -2.198797 403 4350 + 4352 H -11.280546 18.932999 -3.450291 403 4350 + 4353 O 17.797648 10.068787 -6.366632 402 4354 4355 + 4354 H 17.894506 9.407090 -5.699458 403 4353 + 4355 H 18.545928 9.973231 -6.994936 403 4353 + 4356 O -18.401148 -11.350055 -12.827243 402 4357 4358 + 4357 H -18.476782 -10.412318 -13.195678 403 4356 + 4358 H -17.491834 -11.585994 -12.934422 403 4356 + 4359 O -16.495719 -5.941792 10.422239 402 4360 4361 + 4360 H -16.334766 -5.213442 11.122849 403 4359 + 4361 H -16.639135 -6.780551 10.923477 403 4359 + 4362 O -11.586396 18.803652 -7.549338 402 4363 4364 + 4363 H -12.019098 18.189302 -8.166804 403 4362 + 4364 H -11.712347 18.317066 -6.668883 403 4362 + 4365 O 11.058497 -1.697211 6.108850 402 4366 4367 + 4366 H 11.596453 -0.983751 6.451941 403 4365 + 4367 H 10.144328 -1.357434 6.135852 403 4365 + 4368 O -6.655801 13.749288 -17.439254 402 4369 4370 + 4369 H -7.132448 13.358752 -18.156046 403 4368 + 4370 H -7.118927 14.596314 -17.196637 403 4368 + 4371 O 1.472049 -16.138831 -18.127087 402 4372 4373 + 4372 H 0.854396 -15.448228 -18.418147 403 4371 + 4373 H 2.130556 -15.578106 -17.697816 403 4371 + 4374 O 20.585602 0.045789 -20.805188 402 4375 4376 + 4375 H 19.811710 0.249922 -20.316920 403 4374 + 4376 H 20.451948 -0.908979 -20.865716 403 4374 + 4377 O -17.322452 12.895993 -11.204513 402 4378 4379 + 4378 H -17.802771 12.549260 -12.003007 403 4377 + 4379 H -17.950866 13.176295 -10.574188 403 4377 + 4380 O -5.523481 17.380120 9.246553 402 4381 4382 + 4381 H -6.455503 17.665024 9.326329 403 4380 + 4382 H -5.168113 17.988295 8.544540 403 4380 + 4383 O -20.625677 5.350199 17.142096 402 4384 4385 + 4384 H -20.365541 5.269750 16.185658 403 4383 + 4385 H -21.560214 5.201087 17.226176 403 4383 + 4386 O 14.783181 -14.244465 0.085624 402 4387 4388 + 4387 H 14.103412 -14.020780 -0.585079 403 4386 + 4388 H 15.175676 -13.378076 0.287496 403 4386 + 4389 O -6.126500 15.521051 20.750377 402 4390 4391 + 4390 H -5.864785 16.375379 20.437098 403 4389 + 4391 H -5.831488 14.924080 20.076176 403 4389 + 4392 O 23.807408 -1.524862 20.387679 402 4393 4394 + 4393 H 23.526614 -0.919002 21.138248 403 4392 + 4394 H 24.692883 -1.828224 20.645004 403 4392 + 4395 O -19.809983 -10.410676 13.714221 402 4396 4397 + 4396 H -20.768119 -10.598102 13.488906 403 4395 + 4397 H -19.553271 -11.125518 14.242975 403 4395 + 4398 O 10.977545 9.011145 -2.389433 402 4399 4400 + 4399 H 10.555694 9.915559 -2.389522 403 4398 + 4400 H 11.154202 8.870964 -1.470695 403 4398 + 4401 O -1.783860 4.881032 16.604931 402 4402 4403 + 4402 H -1.311789 5.388703 17.223932 403 4401 + 4403 H -2.422445 4.514982 17.225489 403 4401 + 4404 O 7.835617 -8.106110 -15.760424 402 4405 4406 + 4405 H 7.624633 -7.756681 -14.894547 403 4404 + 4406 H 8.420342 -7.335138 -16.124751 403 4404 + 4407 O -23.662148 -13.962817 6.282978 402 4408 4409 + 4408 H -23.067991 -14.398941 6.936570 403 4407 + 4409 H -23.877149 -14.577723 5.532763 403 4407 + 4410 O -23.624539 2.173832 -0.854956 402 4411 4412 + 4411 H -23.179146 2.179020 0.040340 403 4410 + 4412 H -23.749597 1.237465 -1.001396 403 4410 + 4413 O -21.224847 4.257385 -6.009865 402 4414 4415 + 4414 H -20.741474 3.800756 -5.299605 403 4413 + 4415 H -22.182298 4.137922 -5.723698 403 4413 + 4416 O -7.017487 16.063624 -12.051636 402 4417 4418 + 4417 H -6.269158 16.416276 -11.536793 403 4416 + 4418 H -7.636713 15.594733 -11.454123 403 4416 + 4419 O -5.651528 10.093505 -13.321462 402 4420 4421 + 4420 H -6.401351 10.663800 -13.086078 403 4419 + 4421 H -5.597617 10.115851 -14.301208 403 4419 + 4422 O 21.418715 -14.140702 -12.149975 402 4423 4424 + 4423 H 21.861018 -14.674641 -11.447553 403 4422 + 4424 H 21.182805 -13.281849 -11.830093 403 4422 + 4425 O 11.675702 -2.428019 -16.058290 402 4426 4427 + 4426 H 12.296485 -3.131417 -15.821102 403 4425 + 4427 H 10.819347 -2.825354 -16.198440 403 4425 + 4428 O 22.979820 -2.598953 7.858168 402 4429 4430 + 4429 H 22.305897 -3.288078 7.958439 403 4428 + 4430 H 22.577225 -1.844154 8.317572 403 4428 + 4431 O -12.448543 -5.982245 -10.570856 402 4432 4433 + 4432 H -12.345287 -6.440367 -11.438582 403 4431 + 4433 H -12.479780 -5.112730 -10.871625 403 4431 + 4434 O -21.326982 14.741209 3.984994 402 4435 4436 + 4435 H -22.133596 15.218464 4.095957 403 4434 + 4436 H -21.095649 14.791647 3.001164 403 4434 + 4437 O -18.292976 8.601702 17.515296 402 4438 4439 + 4438 H -17.819784 7.959109 16.915944 403 4437 + 4439 H -18.716579 9.254092 16.954312 403 4437 + 4440 O 20.829524 -9.495435 17.330944 402 4441 4442 + 4441 H 20.166412 -8.937403 16.904816 403 4440 + 4442 H 20.227087 -10.108486 17.846508 403 4440 + 4443 O 20.700328 -6.588173 14.108279 402 4444 4445 + 4444 H 21.318200 -6.371434 13.409947 403 4443 + 4445 H 20.919049 -5.966297 14.775431 403 4443 + 4446 O 20.232319 2.519356 -1.744863 402 4447 4448 + 4447 H 19.792632 2.343537 -0.866566 403 4446 + 4448 H 20.751642 1.718603 -1.892919 403 4446 + 4449 O 15.047686 14.467227 0.247890 402 4450 4451 + 4450 H 15.482736 13.695414 -0.222271 403 4449 + 4451 H 15.218594 15.203623 -0.400616 403 4449 + 4452 O 24.814901 -4.572712 18.521288 402 4453 4454 + 4453 H 24.436069 -3.989712 17.861088 403 4452 + 4454 H 24.560432 -4.263207 19.423396 403 4452 + 4455 O 3.169892 -14.115589 5.242292 402 4456 4457 + 4456 H 2.664005 -13.989979 6.094893 403 4455 + 4457 H 4.025199 -14.428367 5.639157 403 4455 + 4458 O -17.864265 -2.850216 -5.852738 402 4459 4460 + 4459 H -17.430066 -2.321482 -5.131734 403 4458 + 4460 H -17.446095 -3.672125 -5.727214 403 4458 + 4461 O -13.642312 16.367207 3.840240 402 4462 4463 + 4462 H -13.546920 17.318166 3.892058 403 4461 + 4463 H -12.985388 16.154870 4.544614 403 4461 + 4464 O 15.575472 3.168399 -6.551464 402 4465 4466 + 4465 H 15.114514 3.591709 -7.323565 403 4464 + 4466 H 15.203187 3.608807 -5.831817 403 4464 + 4467 O -21.816911 -17.666243 7.967285 402 4468 4469 + 4468 H -21.649191 -17.232658 7.144499 403 4467 + 4469 H -22.407552 -17.039323 8.334081 403 4467 + 4470 O -19.125021 -12.172620 15.597940 402 4471 4472 + 4471 H -18.215275 -12.242849 15.770287 403 4470 + 4472 H -19.633754 -12.872939 15.973922 403 4470 + 4473 O 17.584300 -5.074564 -0.037211 402 4474 4475 + 4474 H 18.183319 -5.137038 0.675699 403 4473 + 4475 H 18.235909 -5.047683 -0.784982 403 4473 + 4476 O 26.562235 4.146721 -10.779327 402 4477 4478 + 4477 H 27.258204 4.596271 -10.364313 403 4476 + 4478 H 26.892796 3.237656 -11.037254 403 4476 + 4479 O -23.034850 1.331983 -7.473112 402 4480 4481 + 4480 H -22.263084 1.153047 -6.915575 403 4479 + 4481 H -23.725786 1.086847 -6.826224 403 4479 + 4482 O 24.491038 14.753421 2.384575 402 4483 4484 + 4483 H 24.275342 13.963741 2.927789 403 4482 + 4484 H 25.462558 14.841355 2.559853 403 4482 + 4485 O 25.756605 20.905461 -14.371089 402 4486 4487 + 4486 H 25.459034 20.605712 -13.483891 403 4485 + 4487 H 25.637109 21.868510 -14.335232 403 4485 + 4488 O 18.144532 -1.757335 -11.270502 402 4489 4490 + 4489 H 18.514080 -2.646244 -11.055555 403 4488 + 4490 H 18.939318 -1.202686 -11.251734 403 4488 + 4491 O -8.201074 -18.018606 -17.312094 402 4492 4493 + 4492 H -8.700168 -17.307968 -17.835946 403 4491 + 4493 H -7.577873 -18.381345 -17.962687 403 4491 + 4494 O -9.369914 -19.217851 -15.403305 402 4495 4496 + 4495 H -8.952768 -18.975805 -16.243189 403 4494 + 4496 H -8.911643 -18.742350 -14.709664 403 4494 + 4497 O 20.100577 4.488027 -15.212556 402 4498 4499 + 4498 H 20.248911 5.438169 -15.424742 403 4497 + 4499 H 20.660237 3.933680 -15.689536 403 4497 + 4500 O -19.712024 -15.323556 12.551955 402 4501 4502 + 4501 H -19.317175 -16.207750 12.463402 403 4500 + 4502 H -19.212616 -14.787825 13.210358 403 4500 + 4503 O 3.258787 -7.943131 12.290678 402 4504 4505 + 4504 H 2.342628 -8.287555 12.320149 403 4503 + 4505 H 3.267355 -6.993463 12.332634 403 4503 + 4506 O -18.302710 1.278985 -16.334436 402 4507 4508 + 4507 H -17.378406 1.373256 -16.132103 403 4506 + 4508 H -18.777760 1.517880 -15.493665 403 4506 + 4509 O 16.870546 4.656852 -17.868704 402 4510 4511 + 4510 H 15.857496 4.704340 -17.988259 403 4509 + 4511 H 17.247038 4.338791 -18.723974 403 4509 + 4512 O -15.333473 15.071500 7.805725 402 4513 4514 + 4513 H -15.704647 14.257623 8.137122 403 4512 + 4514 H -15.627172 15.251727 6.915271 403 4512 + 4515 O 9.979483 20.165851 2.918770 402 4516 4517 + 4516 H 9.638769 20.645174 2.150266 403 4515 + 4517 H 9.859690 19.210620 2.805973 403 4515 + 4518 O 23.413497 4.631399 15.271695 402 4519 4520 + 4519 H 23.659592 4.570914 14.363590 403 4518 + 4520 H 23.076746 5.481003 15.471203 403 4518 + 4521 O 23.514270 -0.269090 17.919270 402 4522 4523 + 4522 H 23.883706 -0.646818 18.744448 403 4521 + 4523 H 22.647737 0.129763 18.103196 403 4521 + 4524 O -24.064290 4.819702 1.332253 402 4525 4526 + 4525 H -24.383325 4.040819 1.008702 403 4524 + 4526 H -23.189236 4.997095 0.898826 403 4524 + 4527 O -25.779315 -8.150537 18.610217 402 4528 4529 + 4528 H -24.782772 -7.888401 18.544405 403 4527 + 4529 H -26.257671 -7.381934 18.370006 403 4527 + 4530 O 23.115913 16.716123 3.668102 402 4531 4532 + 4531 H 23.749362 16.385349 2.997452 403 4530 + 4532 H 23.088241 17.666029 3.599261 403 4530 + 4533 O -20.088868 -15.143633 -10.159937 402 4534 4535 + 4534 H -19.953025 -14.270168 -10.582681 403 4533 + 4535 H -19.990998 -15.687042 -10.954781 403 4533 + 4536 O 7.102126 -1.136927 20.971306 402 4537 4538 + 4537 H 6.576190 -1.521838 20.280208 403 4536 + 4538 H 7.955207 -1.040834 20.509983 403 4536 + 4539 O -2.534299 9.690544 11.933304 402 4540 4541 + 4540 H -2.860248 8.888179 11.453477 403 4539 + 4541 H -1.828854 10.072496 11.393589 403 4539 + 4542 O 12.023524 -9.150206 -14.165841 402 4543 4544 + 4543 H 11.362618 -9.759930 -14.520833 403 4542 + 4544 H 12.740525 -9.263946 -14.788240 403 4542 + 4545 O 15.791803 18.545995 0.850378 402 4546 4547 + 4546 H 16.437977 18.981342 1.416680 403 4545 + 4547 H 14.975349 18.624193 1.311898 403 4545 + 4548 O -23.993331 13.937802 7.429388 402 4549 4550 + 4549 H -23.946766 13.591295 6.487146 403 4548 + 4550 H -23.318125 14.639075 7.439315 403 4548 + 4551 O 23.938328 -2.346007 3.554880 402 4552 4553 + 4552 H 24.343685 -3.093714 4.072487 403 4551 + 4553 H 24.649326 -2.174810 2.889988 403 4551 + 4554 O -1.744771 13.957566 2.002292 402 4555 4556 + 4555 H -0.940707 14.398422 2.247093 403 4554 + 4556 H -2.025476 14.420450 1.204293 403 4554 + 4557 O -25.534328 -15.482539 7.809635 402 4558 4559 + 4558 H -25.054678 -15.173162 7.005447 403 4557 + 4559 H -26.465036 -15.629268 7.587481 403 4557 + 4560 O 24.624742 -18.307755 -10.821110 402 4561 4562 + 4561 H 23.724217 -18.723401 -10.975653 403 4560 + 4562 H 24.780187 -17.602754 -11.546790 403 4560 + 4563 O -21.325143 19.316329 -1.400937 402 4564 4565 + 4564 H -21.154588 18.656956 -0.705637 403 4563 + 4565 H -20.679486 19.156150 -2.095481 403 4563 + 4566 O 0.559384 -5.922570 14.213390 402 4567 4568 + 4567 H 1.239405 -5.963730 14.899585 403 4566 + 4568 H 0.030681 -5.131536 14.297850 403 4566 + 4569 O 7.056613 12.758986 15.777863 402 4570 4571 + 4570 H 6.345829 12.596606 16.456405 403 4569 + 4571 H 6.917568 12.084839 15.095389 403 4569 + 4572 O 7.882824 3.878180 -19.492657 402 4573 4574 + 4573 H 7.490185 4.569137 -19.983338 403 4572 + 4574 H 7.617907 3.037912 -19.945297 403 4572 + 4575 O -4.242915 -9.821169 16.240099 402 4576 4577 + 4576 H -5.114830 -10.078772 16.528494 403 4575 + 4577 H -4.353835 -8.852979 15.979121 403 4575 + 4578 O 15.302976 18.208896 -11.851032 402 4579 4580 + 4579 H 14.901111 18.506138 -12.642478 403 4578 + 4580 H 14.917266 17.320837 -11.712610 403 4578 + 4581 O -18.266869 -16.450266 -8.528802 402 4582 4583 + 4582 H -19.072723 -16.071961 -9.086324 403 4581 + 4583 H -18.243043 -17.366820 -8.807270 403 4581 + 4584 O 16.535819 -20.059315 20.261479 402 4585 4586 + 4585 H 16.531825 -20.982895 19.988148 403 4584 + 4586 H 16.217098 -19.563433 19.483491 403 4584 + 4587 O -10.711611 3.116140 -11.835025 402 4588 4589 + 4588 H -10.699224 2.230856 -12.204415 403 4587 + 4589 H -10.469479 3.689824 -12.532473 403 4587 + 4590 O -3.907796 14.129489 -14.135830 402 4591 4592 + 4591 H -3.774958 15.065764 -14.110303 403 4590 + 4592 H -4.871885 13.969469 -14.280187 403 4590 + 4593 O -0.848559 15.883551 -14.784892 402 4594 4595 + 4594 H -0.414200 14.990499 -14.630689 403 4593 + 4595 H -1.164070 15.745918 -15.703167 403 4593 + 4596 O 26.710694 15.162885 -7.381020 402 4597 4598 + 4597 H 26.708875 16.144027 -7.444500 403 4596 + 4598 H 27.516272 14.997257 -7.900997 403 4596 + 4599 O -20.320110 2.222669 -14.437513 402 4600 4601 + 4600 H -20.674693 1.937159 -13.587288 403 4599 + 4601 H -21.090888 2.252982 -14.954492 403 4599 + 4602 O -18.681714 17.640935 -1.514728 402 4603 4604 + 4603 H -19.273979 17.179134 -2.084688 403 4602 + 4604 H -18.333083 16.926527 -0.959606 403 4602 + 4605 O 26.297214 0.194896 -8.814341 402 4606 4607 + 4606 H 26.092612 0.771392 -8.062520 403 4605 + 4607 H 25.469129 -0.223458 -9.080468 403 4605 + 4608 O 5.191134 -6.332696 -10.274288 402 4609 4610 + 4609 H 6.147598 -6.194127 -10.166488 403 4608 + 4610 H 4.968608 -5.815003 -11.012193 403 4608 + 4611 O 20.219068 -19.874563 -6.779564 402 4612 4613 + 4612 H 19.984433 -20.709740 -7.181101 403 4611 + 4613 H 20.478152 -20.150413 -5.862690 403 4611 + 4614 O 15.925069 -5.315100 -4.962971 402 4615 4616 + 4615 H 16.483651 -4.538813 -4.855095 403 4614 + 4616 H 16.031011 -5.844220 -4.094051 403 4614 + 4617 O -24.041642 -19.508457 3.561309 402 4618 4619 + 4618 H -23.889244 -19.214184 4.445568 403 4617 + 4619 H -23.734917 -20.488280 3.584072 403 4617 + 4620 O -7.947126 8.409362 14.208637 402 4621 4622 + 4621 H -8.729737 8.295090 13.605991 403 4620 + 4622 H -7.220157 7.896970 13.768244 403 4620 + 4623 O -20.888915 18.615896 3.147997 402 4624 4625 + 4624 H -20.353651 18.339741 3.899224 403 4623 + 4625 H -20.608848 18.126465 2.400982 403 4623 + 4626 O 26.799597 -16.513942 12.340813 402 4627 4628 + 4627 H 27.311676 -15.749176 12.455669 403 4626 + 4628 H 26.641412 -16.884054 13.252799 403 4626 + 4629 O 22.610810 -16.125525 -11.025534 402 4630 4631 + 4630 H 23.428805 -16.214604 -10.496780 403 4629 + 4631 H 22.231404 -17.004775 -11.137826 403 4629 + 4632 O 23.631086 9.762764 -6.151528 402 4633 4634 + 4633 H 22.831437 10.283165 -6.251895 403 4632 + 4634 H 23.313903 8.866850 -6.410178 403 4632 + 4635 O 10.407629 -5.135788 9.642425 402 4636 4637 + 4636 H 9.500671 -5.522467 9.593528 403 4635 + 4637 H 10.722620 -5.079856 8.742604 403 4635 + 4638 O 4.000382 -9.483456 -16.043131 402 4639 4640 + 4639 H 4.388443 -8.972484 -16.767773 403 4638 + 4640 H 3.270597 -9.958423 -16.410357 403 4638 + 4641 O -25.904986 -15.880364 18.652683 402 4642 4643 + 4642 H -26.778482 -15.886913 19.026359 403 4641 + 4643 H -25.526797 -16.780938 18.932335 403 4641 + 4644 O 15.308933 1.325497 -13.930838 402 4645 4646 + 4645 H 15.049598 0.974163 -14.793125 403 4644 + 4646 H 14.735466 2.123881 -13.829588 403 4644 + 4647 O -6.379415 2.888159 -18.944523 402 4648 4649 + 4648 H -6.573457 2.028181 -19.291846 403 4647 + 4649 H -5.489918 2.985716 -19.266815 403 4647 + 4650 O -1.982477 0.360990 19.729630 402 4651 4652 + 4651 H -2.393479 -0.007753 20.516214 403 4650 + 4652 H -2.616886 0.223553 19.013623 403 4650 + 4653 O 1.410741 17.503605 17.946189 402 4654 4655 + 4654 H 1.299933 17.358511 17.001928 403 4653 + 4655 H 1.382712 16.600387 18.282286 403 4653 + 4656 O -17.081613 19.032309 -4.304375 402 4657 4658 + 4657 H -18.004189 18.728506 -4.171643 403 4656 + 4658 H -16.569290 18.434220 -3.790534 403 4656 + 4659 O 26.981274 -11.552908 -3.820441 402 4660 4661 + 4660 H 26.121174 -11.624996 -4.253473 403 4659 + 4661 H 27.276376 -10.703146 -4.209015 403 4659 + 4662 O 20.095481 18.572235 3.036961 402 4663 4664 + 4663 H 20.026299 17.806007 3.594224 403 4662 + 4664 H 20.832186 19.036343 3.467658 403 4662 + 4665 O -19.905861 6.946943 4.083849 402 4666 4667 + 4666 H -19.307403 7.160688 3.357801 403 4665 + 4667 H -20.728729 7.427643 3.991449 403 4665 + 4668 O 22.217595 -4.822160 -10.650121 402 4669 4670 + 4669 H 22.159340 -5.054178 -11.530210 403 4668 + 4670 H 21.255204 -4.714847 -10.351112 403 4668 + 4671 O 12.390352 -19.538948 -0.083493 402 4672 4673 + 4672 H 13.062326 -18.900361 -0.469572 403 4671 + 4673 H 11.739170 -19.679826 -0.768861 403 4671 + 4674 O -11.756735 -11.595474 -18.753407 402 4675 4676 + 4675 H -10.845705 -11.914606 -18.999006 403 4674 + 4676 H -11.631200 -10.619419 -18.528946 403 4674 + 4677 O 16.531650 8.079043 16.659190 402 4678 4679 + 4678 H 16.426030 8.463579 15.788072 403 4677 + 4679 H 17.442132 8.278108 16.859520 403 4677 + 4680 O 10.052731 8.649788 -10.126307 402 4681 4682 + 4681 H 10.131192 7.907466 -9.580859 403 4680 + 4682 H 10.118299 9.470033 -9.652222 403 4680 + 4683 O 10.138877 6.520965 -16.282122 402 4684 4685 + 4684 H 9.429867 6.198945 -15.746097 403 4683 + 4685 H 9.762597 7.172991 -16.879414 403 4683 + 4686 O -5.128627 7.237138 -16.384778 402 4687 4688 + 4687 H -4.943315 6.311211 -16.467826 403 4686 + 4688 H -4.299328 7.630954 -16.159960 403 4686 + 4689 O 18.467732 -4.333427 -7.973507 402 4690 4691 + 4690 H 17.685481 -3.749427 -7.814406 403 4689 + 4691 H 18.051764 -5.199527 -7.872728 403 4689 + 4692 O -22.790877 -7.110126 -2.658913 402 4693 4694 + 4693 H -22.592444 -7.612682 -1.822969 403 4692 + 4694 H -23.671839 -6.831554 -2.552705 403 4692 + 4695 O -5.452870 -18.001674 4.454273 402 4696 4697 + 4696 H -5.227357 -18.684872 5.061214 403 4695 + 4697 H -6.200455 -17.594596 4.818204 403 4695 + 4698 O 6.056152 -17.434479 -7.972778 402 4699 4700 + 4699 H 6.787809 -18.060671 -8.028928 403 4698 + 4700 H 5.440331 -17.702859 -7.267591 403 4698 + 4701 O 1.714168 -18.930287 -17.718130 402 4702 4703 + 4702 H 1.740272 -18.003727 -18.035560 403 4701 + 4703 H 0.785802 -19.119877 -17.580120 403 4701 + 4704 O 12.454449 16.569541 -9.572034 402 4705 4706 + 4705 H 13.143421 15.995002 -9.358789 403 4704 + 4706 H 11.970081 16.409711 -8.733167 403 4704 + 4707 O 21.377566 -4.531623 -13.959167 402 4708 4709 + 4708 H 21.220313 -4.586863 -14.883806 403 4707 + 4709 H 20.718007 -3.864167 -13.706228 403 4707 + 4710 O 27.229945 -1.071212 -13.106863 402 4711 4712 + 4711 H 26.536738 -0.401088 -12.953451 403 4710 + 4712 H 27.406489 -1.591477 -12.306455 403 4710 + 4713 O 0.993205 -20.183906 13.537173 402 4714 4715 + 4714 H 1.864290 -20.100713 13.823720 403 4713 + 4715 H 0.417346 -20.489716 14.247240 403 4713 + 4716 O 22.306745 2.581458 8.736617 402 4717 4718 + 4717 H 22.972169 3.057047 8.241655 403 4716 + 4718 H 21.515448 2.587605 8.237638 403 4716 + 4719 O -24.994740 17.845616 8.243126 402 4720 4721 + 4720 H -25.935974 17.671320 8.306538 403 4719 + 4721 H -24.615426 17.427508 9.019818 403 4719 + 4722 O 3.628195 -4.198159 -16.200147 402 4723 4724 + 4723 H 4.404223 -4.757640 -16.114355 403 4722 + 4724 H 2.941004 -4.862278 -16.461468 403 4722 + 4725 O 26.808990 -14.261974 -5.551088 402 4726 4727 + 4726 H 26.801404 -13.726938 -6.334245 403 4725 + 4727 H 25.872464 -14.345791 -5.184066 403 4725 + 4728 O 13.355891 -16.600141 -3.794039 402 4729 4730 + 4729 H 13.295908 -17.531097 -3.472837 403 4728 + 4730 H 14.114590 -16.215977 -3.304966 403 4728 + 4731 O -5.285172 -14.650134 6.726219 402 4732 4733 + 4732 H -5.321392 -15.573092 6.451324 403 4731 + 4733 H -5.705533 -14.040342 6.049451 403 4731 + 4734 O -15.245133 11.577568 10.198692 402 4735 4736 + 4735 H -14.684069 10.842805 9.868029 403 4734 + 4736 H -15.899308 11.783343 9.507232 403 4734 + 4737 O 17.485666 -16.919340 -6.354127 402 4738 4739 + 4738 H 17.235852 -17.135664 -7.261939 403 4737 + 4739 H 18.432637 -16.981881 -6.360484 403 4737 + 4740 O -9.901382 -6.924152 -10.070687 402 4741 4742 + 4741 H -10.735776 -6.481799 -9.885298 403 4740 + 4742 H -10.186933 -7.424453 -10.836686 403 4740 + 4743 O -24.779066 9.890774 -10.589824 402 4744 4745 + 4744 H -24.555747 10.752218 -10.986744 403 4743 + 4745 H -24.892417 10.088688 -9.640328 403 4743 + 4746 O -22.615173 9.224641 6.611089 402 4747 4748 + 4747 H -22.778201 8.680839 5.764537 403 4746 + 4748 H -23.446696 9.423303 6.964274 403 4746 + 4749 O 9.268447 -16.931793 -5.987149 402 4750 4751 + 4750 H 8.956403 -16.451784 -6.788388 403 4749 + 4751 H 9.877183 -16.351625 -5.503938 403 4749 + 4752 O -14.656535 1.482956 18.890158 402 4753 4754 + 4753 H -15.369331 1.942366 19.276786 403 4752 + 4754 H -14.153965 0.952532 19.494908 403 4752 + 4755 O 5.277331 10.616617 -11.480664 402 4756 4757 + 4756 H 5.005306 11.447583 -11.898782 403 4755 + 4757 H 5.358629 10.918462 -10.514309 403 4755 + 4758 O 25.665486 11.699398 -16.256540 402 4759 4760 + 4759 H 25.839240 12.448046 -15.719245 403 4758 + 4760 H 25.814575 10.942656 -15.634104 403 4758 + 4761 O 21.920761 20.073624 -12.126972 402 4762 4763 + 4762 H 22.552772 19.967397 -11.382127 403 4761 + 4763 H 21.479644 19.202351 -12.146674 403 4761 + 4764 O 10.003073 19.989386 -7.403776 402 4765 4766 + 4765 H 9.439166 20.478736 -6.817011 403 4764 + 4766 H 9.975278 19.064238 -7.087034 403 4764 + 4767 O 24.639512 10.361086 12.201260 402 4768 4769 + 4768 H 24.706246 9.532944 12.698966 403 4767 + 4769 H 25.008910 11.010832 12.873283 403 4767 + 4770 O -4.551351 -13.614062 11.550986 402 4771 4772 + 4771 H -3.695594 -13.200426 11.181108 403 4770 + 4772 H -4.841622 -13.040560 12.238016 403 4770 + 4773 O 13.925499 -14.277948 -16.852509 402 4774 4775 + 4774 H 13.468499 -13.949023 -16.059490 403 4773 + 4775 H 13.404967 -13.901558 -17.624653 403 4773 + 4776 O -8.822453 18.672284 -1.497284 402 4777 4778 + 4777 H -9.773739 18.628726 -1.762866 403 4776 + 4778 H -8.737384 19.554941 -1.117958 403 4776 + 4779 O -22.502543 14.174443 -14.775760 402 4780 4781 + 4780 H -23.095969 13.602099 -14.242424 403 4779 + 4781 H -22.857075 15.080918 -14.689705 403 4779 + 4782 O 14.064111 -5.559010 13.387762 402 4783 4784 + 4783 H 14.064485 -4.565565 13.355502 403 4782 + 4784 H 13.283489 -5.675258 12.845674 403 4782 + 4785 O 1.894767 -5.320136 -19.924307 402 4786 4787 + 4786 H 1.751326 -5.338831 -18.971201 403 4785 + 4787 H 2.815685 -5.078504 -20.067932 403 4785 + 4788 O 25.294324 -10.049317 -2.168254 402 4789 4790 + 4789 H 24.998964 -9.181655 -2.438448 403 4788 + 4790 H 25.460965 -9.966915 -1.197557 403 4788 + 4791 O 6.479700 -19.891353 1.298943 402 4792 4793 + 4792 H 5.533528 -20.103717 1.361966 403 4791 + 4793 H 6.573201 -19.075339 0.809570 403 4791 + 4794 O -27.363431 -16.882485 4.699786 402 4795 4796 + 4795 H -26.488335 -16.423824 4.667383 403 4794 + 4796 H -27.778495 -16.519493 5.529189 403 4794 + 4797 O 21.647371 -10.967083 -0.688726 402 4798 4799 + 4798 H 21.307654 -11.566578 -0.059145 403 4797 + 4799 H 20.903506 -10.948374 -1.343290 403 4797 + 4800 O -22.639740 18.869062 12.772784 402 4801 4802 + 4801 H -23.598249 18.977251 12.816087 403 4800 + 4802 H -22.528147 18.565590 11.856412 403 4800 + 4803 O -19.354849 19.459324 -20.763860 402 4804 4805 + 4804 H -19.638921 18.619981 -20.405119 403 4803 + 4805 H -19.999366 20.121418 -20.384538 403 4803 + 4806 O -27.292577 17.947849 -7.899480 402 4807 4808 + 4807 H -26.865640 18.369463 -8.665053 403 4806 + 4808 H -26.976583 18.519563 -7.163255 403 4806 + 4809 O -20.817821 -2.868450 14.802525 402 4810 4811 + 4810 H -21.140828 -3.572172 14.242551 403 4809 + 4811 H -21.382527 -2.899729 15.647552 403 4809 + 4812 O -26.483700 3.477220 -8.027358 402 4813 4814 + 4813 H -27.118971 4.203207 -8.001463 403 4812 + 4814 H -25.572543 3.766211 -8.004075 403 4812 + 4815 O -20.066885 -9.761422 6.553470 402 4816 4817 + 4816 H -20.997945 -9.935159 6.946701 403 4815 + 4817 H -19.442249 -9.796491 7.281455 403 4815 + 4818 O -23.097741 6.873436 -18.392975 402 4819 4820 + 4819 H -22.589483 6.725087 -19.200274 403 4818 + 4820 H -22.785797 7.752769 -18.098029 403 4818 + 4821 O 18.849536 1.746914 0.846251 402 4822 4823 + 4822 H 18.128002 2.129064 0.287715 403 4821 + 4823 H 19.181226 2.420341 1.435040 403 4821 + 4824 O 27.002887 18.923510 11.873786 402 4825 4826 + 4825 H 27.227664 19.764419 11.414163 403 4824 + 4826 H 26.105946 19.033421 11.984937 403 4824 + 4827 O -11.158512 11.141322 18.442481 402 4828 4829 + 4828 H -11.408050 10.995491 17.540347 403 4827 + 4829 H -10.502213 10.475024 18.734764 403 4827 + 4830 O -21.495790 -1.351514 -4.237645 402 4831 4832 + 4831 H -21.044359 -1.664515 -3.433502 403 4830 + 4832 H -22.384314 -1.671646 -4.060127 403 4830 + 4833 O 15.621755 -15.205139 -2.495677 402 4834 4835 + 4834 H 15.424484 -14.934581 -1.611471 403 4833 + 4835 H 16.121625 -14.529114 -2.853796 403 4833 + 4836 O 4.381992 13.875981 -1.032186 402 4837 4838 + 4837 H 5.333475 13.689707 -0.896179 403 4836 + 4838 H 4.022732 13.223499 -1.665135 403 4836 + 4839 O 20.177887 10.395959 -3.696541 402 4840 4841 + 4840 H 20.356404 10.914845 -4.496586 403 4839 + 4841 H 20.991017 10.244340 -3.211612 403 4839 + 4842 O 15.157815 19.249081 -18.039544 402 4843 4844 + 4843 H 15.352336 20.161425 -17.776001 403 4842 + 4844 H 15.059841 19.346261 -19.002141 403 4842 + 4845 O -7.108984 -13.295157 15.804846 402 4846 4847 + 4846 H -6.929809 -14.169985 15.496547 403 4845 + 4847 H -6.361874 -13.100921 16.402035 403 4845 + 4848 O -25.065030 -11.005040 18.970744 402 4849 4850 + 4849 H -25.902113 -11.429253 18.763963 403 4848 + 4850 H -25.182957 -10.072508 18.787257 403 4848 + 4851 O 11.932413 -6.103636 -13.397989 402 4852 4853 + 4852 H 12.570617 -5.775336 -12.776618 403 4851 + 4853 H 12.223586 -6.926860 -13.765008 403 4851 + 4854 O -25.022964 -4.047632 -16.421532 402 4855 4856 + 4855 H -24.729550 -4.908790 -16.087160 403 4854 + 4856 H -24.546933 -3.445338 -15.856315 403 4854 + 4857 O -2.351505 -13.799895 -9.640381 402 4858 4859 + 4858 H -2.806266 -13.103621 -10.108151 403 4857 + 4859 H -1.432803 -13.498454 -9.473869 403 4857 + 4860 O -17.970640 -1.824370 11.981061 402 4861 4862 + 4861 H -18.720197 -1.276483 12.154733 403 4860 + 4862 H -17.669382 -2.084512 12.859437 403 4860 + 4863 O 16.682335 16.786230 -5.408443 402 4864 4865 + 4864 H 15.963934 17.446355 -5.166695 403 4863 + 4865 H 16.709036 16.877417 -6.391919 403 4863 + 4866 O -26.984415 4.176614 -3.075863 402 4867 4868 + 4867 H -26.123649 4.345106 -2.684692 403 4866 + 4868 H -26.853761 3.725314 -3.913099 403 4866 + 4869 O -26.077892 0.261300 17.719641 402 4870 4871 + 4870 H -26.784019 0.913023 17.543217 403 4869 + 4871 H -26.472468 -0.574255 17.882963 403 4869 + 4872 O 22.927522 20.111945 -15.638008 402 4873 4874 + 4873 H 23.596986 20.008343 -14.934189 403 4872 + 4874 H 22.343012 20.821690 -15.365852 403 4872 + 4875 O -5.579568 -12.021256 13.421129 402 4876 4877 + 4876 H -5.890589 -11.086014 13.250578 403 4875 + 4877 H -6.303487 -12.389144 13.952477 403 4875 + 4878 O 2.458268 -17.079274 7.291369 402 4879 4880 + 4879 H 2.320253 -17.365496 8.234460 403 4878 + 4880 H 1.770368 -16.394030 7.185697 403 4878 + 4881 O -24.595173 -15.448874 14.340370 402 4882 4883 + 4882 H -23.877774 -15.587584 14.998240 403 4881 + 4883 H -25.176320 -14.635721 14.530870 403 4881 + 4884 O 27.032054 -9.403183 3.148273 402 4885 4886 + 4885 H 26.403900 -8.794366 3.626157 403 4884 + 4886 H 27.383095 -9.993711 3.825592 403 4884 + 4887 O -20.726606 14.795856 1.273133 402 4888 4889 + 4888 H -19.806504 14.435167 1.199972 403 4887 + 4889 H -21.276966 14.325769 0.588346 403 4887 + 4890 O -24.967956 8.541628 1.328681 402 4891 4892 + 4891 H -24.984827 9.452469 1.040896 403 4890 + 4892 H -25.740396 8.434977 1.929151 403 4890 + 4893 O -12.425328 11.518457 -14.199688 402 4894 4895 + 4894 H -12.773966 12.392793 -14.015441 403 4893 + 4895 H -13.118630 10.965584 -13.849575 403 4893 + 4896 O -2.529035 -2.360811 17.836544 402 4897 4898 + 4897 H -3.234696 -2.119216 18.386147 403 4896 + 4898 H -1.867440 -1.729883 18.015495 403 4896 + 4899 O -21.776402 4.919177 -10.291667 402 4900 4901 + 4900 H -22.083924 5.863215 -10.349382 403 4899 + 4901 H -22.101633 4.482076 -11.074994 403 4899 + 4902 O 6.293596 15.999990 18.747555 402 4903 4904 + 4903 H 5.792274 16.524552 19.421554 403 4902 + 4904 H 5.641363 15.346197 18.513974 403 4902 + 4905 O 8.520334 14.536496 -17.222476 402 4906 4907 + 4906 H 9.367910 14.362425 -16.812169 403 4905 + 4907 H 8.183656 13.684606 -17.523424 403 4905 + 4908 O 22.691056 10.129741 -9.774947 402 4909 4910 + 4909 H 22.388373 10.989892 -9.545078 403 4908 + 4910 H 23.520258 10.122274 -10.228776 403 4908 + 4911 O 11.292032 2.127043 14.679028 402 4912 4913 + 4912 H 10.300438 2.012949 14.574584 403 4911 + 4913 H 11.707898 2.382716 13.839204 403 4911 + 4914 O -10.080449 15.590962 -5.638342 402 4915 4916 + 4915 H -9.913581 15.482801 -6.607010 403 4914 + 4916 H -11.000029 15.446049 -5.572110 403 4914 + 4917 O 9.724654 19.017882 -10.687275 402 4918 4919 + 4918 H 10.589720 19.426462 -10.594122 403 4917 + 4919 H 9.112520 19.575919 -10.256988 403 4917 + 4920 O -3.018641 7.588470 16.688095 402 4921 4922 + 4921 H -2.330160 6.909662 16.567035 403 4920 + 4922 H -3.336233 7.572799 15.739189 403 4920 + 4923 O -23.558310 -7.134740 -5.487980 402 4924 4925 + 4924 H -23.265138 -7.142827 -4.583180 403 4923 + 4925 H -23.745933 -6.250685 -5.834602 403 4923 + 4926 O 4.226629 15.093702 15.365734 402 4927 4928 + 4927 H 4.100578 14.882406 16.320809 403 4926 + 4928 H 5.174530 15.177349 15.271261 403 4926 + 4929 O -7.236890 20.676688 -13.887599 402 4930 4931 + 4930 H -7.297460 19.771023 -14.250227 403 4929 + 4931 H -6.598431 21.116314 -14.486914 403 4929 + 4932 O 15.815010 1.151652 -17.502222 402 4933 4934 + 4933 H 15.282468 0.557615 -16.965425 403 4932 + 4934 H 15.054480 1.630363 -17.957554 403 4932 + 4935 O -20.408893 -2.203285 -1.832435 402 4936 4937 + 4936 H -20.785863 -1.600728 -1.206934 403 4935 + 4937 H -20.672903 -3.085785 -1.719471 403 4935 + 4938 O 20.195914 -9.732203 -7.503586 402 4939 4940 + 4939 H 19.775594 -9.020266 -6.898678 403 4938 + 4940 H 21.112065 -9.804356 -7.217365 403 4938 + 4941 O 19.296629 -3.381575 11.843745 402 4942 4943 + 4942 H 19.274699 -4.314587 11.989050 403 4941 + 4943 H 20.065392 -3.074363 12.391528 403 4941 + 4944 O 6.531812 13.501627 -15.078637 402 4945 4946 + 4945 H 5.967341 14.060209 -15.705952 403 4944 + 4946 H 6.508026 12.632112 -15.439267 403 4944 + 4947 O 23.589867 -10.343367 -8.571682 402 4948 4949 + 4948 H 23.047931 -10.296334 -7.779151 403 4947 + 4949 H 23.642788 -11.281031 -8.849406 403 4947 + 4950 O -13.933420 -9.985099 16.210161 402 4951 4952 + 4951 H -13.061691 -9.875550 16.658981 403 4950 + 4952 H -13.656103 -10.632088 15.489463 403 4950 + 4953 O -23.237683 18.866731 19.359260 402 4954 4955 + 4954 H -22.914140 19.726873 19.738290 403 4953 + 4955 H -23.718173 18.429834 20.073905 403 4953 + 4956 O 10.494095 4.110524 19.341374 402 4957 4958 + 4957 H 9.723154 4.572616 18.942773 403 4956 + 4958 H 11.209458 4.339646 18.681127 403 4956 + 4959 O 1.369329 -9.441779 19.284078 402 4960 4961 + 4960 H 2.015289 -10.186860 19.212218 403 4959 + 4961 H 1.015324 -9.189016 18.436693 403 4959 + 4962 O -12.121346 16.858305 -16.912154 402 4963 4964 + 4963 H -12.482071 17.717178 -16.927558 403 4962 + 4964 H -11.557811 16.791147 -17.773819 403 4962 + 4965 O -9.672999 19.181029 4.107845 402 4966 4967 + 4966 H -8.970953 19.839775 3.892751 403 4965 + 4967 H -10.347573 19.719934 4.574402 403 4965 + 4968 O -25.848254 19.893856 -6.158583 402 4969 4970 + 4969 H -26.297371 20.306721 -5.458518 403 4968 + 4970 H -25.747309 20.595741 -6.795744 403 4968 + 4971 O -23.033567 -20.060181 19.659192 402 4972 4973 + 4972 H -22.235177 -19.955724 19.067747 403 4971 + 4973 H -23.368334 -19.148619 19.847979 403 4971 + 4974 O -15.791938 8.271699 18.828418 402 4975 4976 + 4975 H -16.027582 7.356294 18.646313 403 4974 + 4976 H -16.655172 8.767091 18.686291 403 4974 + 4977 O -21.708167 13.277512 -0.641646 402 4978 4979 + 4978 H -22.597047 13.562637 -0.909355 403 4977 + 4979 H -21.809236 12.333829 -0.325507 403 4977 + 4980 O 5.941295 -12.360207 -6.112984 402 4981 4982 + 4981 H 6.359630 -11.626042 -5.736075 403 4980 + 4982 H 6.495648 -12.726477 -6.802834 403 4980 + 4983 O 13.032092 -7.701355 -9.994956 402 4984 4985 + 4984 H 13.027162 -8.501577 -10.533994 403 4983 + 4985 H 12.548921 -8.005933 -9.172971 403 4983 + 4986 O -21.030949 -20.119698 18.010996 402 4987 4988 + 4987 H -20.244199 -20.716690 18.012037 403 4986 + 4988 H -20.696565 -19.252737 17.848450 403 4986 + 4989 O -19.015223 -0.571456 18.155941 402 4990 4991 + 4990 H -19.180719 -0.389583 17.176932 403 4989 + 4991 H -18.385462 0.098617 18.394716 403 4989 + 4992 O -20.138485 -4.252628 -11.316573 402 4993 4994 + 4993 H -19.840849 -5.049159 -11.793063 403 4992 + 4994 H -20.052902 -4.580000 -10.382886 403 4992 + 4995 O 26.001968 -7.495414 4.672795 402 4996 4997 + 4996 H 25.441451 -7.324776 5.428706 403 4995 + 4997 H 26.791498 -7.049997 4.959197 403 4995 + 4998 O 19.055181 -8.349517 1.323580 402 4999 5000 + 4999 H 19.813936 -8.781204 1.703347 403 4998 + 5000 H 19.440205 -7.777422 0.589952 403 4998 + 5001 O 25.264798 8.233933 8.591555 402 5002 5003 + 5002 H 25.487528 8.137778 9.540405 403 5001 + 5003 H 25.431397 9.162412 8.389274 403 5001 + 5004 O 12.847916 19.693484 13.048286 402 5005 5006 + 5005 H 11.960267 19.995654 12.950099 403 5004 + 5006 H 13.352276 20.516003 12.895948 403 5004 + 5007 O -1.639765 11.429914 5.808063 402 5008 5009 + 5008 H -1.143950 12.047063 6.360614 403 5007 + 5009 H -2.350791 11.948090 5.492463 403 5007 + 5010 O 9.848758 16.041115 -10.707370 402 5011 5012 + 5011 H 9.065082 15.706216 -11.123228 403 5010 + 5012 H 9.845269 17.025290 -10.747608 403 5010 + 5013 O 25.426954 20.293141 3.300623 402 5014 5015 + 5014 H 25.545358 20.769417 4.152492 403 5013 + 5015 H 25.632270 21.033287 2.715396 403 5013 + 5016 O 20.761109 8.207487 15.638898 402 5017 5018 + 5017 H 20.452100 8.556874 16.455577 403 5016 + 5018 H 20.418491 7.276974 15.507884 403 5016 + 5019 O -17.340920 8.603213 9.973826 402 5020 5021 + 5020 H -17.013776 7.715227 10.202262 403 5019 + 5021 H -17.708959 8.550775 9.106960 403 5019 + 5022 O -4.331343 4.519352 -17.647753 402 5023 5024 + 5023 H -5.066787 3.870671 -17.637369 403 5022 + 5024 H -3.551869 3.998790 -17.434586 403 5022 + 5025 O 20.173773 -17.092486 -7.001341 402 5026 5027 + 5026 H 19.888855 -16.443588 -7.714490 403 5025 + 5027 H 20.413820 -17.900629 -7.443434 403 5025 + 5028 O -24.408814 -19.385733 11.225815 402 5029 5030 + 5029 H -23.821161 -19.917061 10.749392 403 5028 + 5030 H -23.910074 -18.660169 11.617528 403 5028 + 5031 O 17.324633 -1.128975 8.030022 402 5032 5033 + 5032 H 17.360905 -1.837044 8.692495 403 5031 + 5033 H 18.151746 -0.980682 7.588726 403 5031 + 5034 O 23.955106 -0.867756 -15.846487 402 5035 5036 + 5035 H 24.366679 -1.312193 -16.592677 403 5034 + 5036 H 23.040207 -0.721605 -15.963924 403 5034 + 5037 O 9.794322 -16.325238 -14.689703 402 5038 5039 + 5038 H 10.077445 -16.942203 -15.418778 403 5037 + 5039 H 10.274190 -16.591924 -13.896103 403 5037 + 5040 O -19.734101 -12.095151 -17.153284 402 5041 5042 + 5041 H -20.605684 -12.154989 -17.550952 403 5040 + 5042 H -19.490756 -11.177750 -17.393726 403 5040 + 5043 O 2.145542 4.244476 10.559284 402 5044 5045 + 5044 H 1.712137 4.346774 11.448612 403 5043 + 5045 H 1.552348 4.733416 9.969137 403 5043 + 5046 O -11.816250 3.934419 -18.405990 402 5047 5048 + 5047 H -11.103191 4.038219 -19.027130 403 5046 + 5048 H -12.427642 3.303177 -18.846649 403 5046 + 5049 O 18.893576 -19.279190 2.434753 402 5050 5051 + 5050 H 19.835933 -19.611541 2.415682 403 5049 + 5051 H 18.743093 -19.115267 3.373179 403 5049 + 5052 O 20.503855 18.939356 -0.359795 402 5053 5054 + 5053 H 20.047818 18.683781 0.506021 403 5052 + 5054 H 19.907310 19.650581 -0.623461 403 5052 + 5055 O 26.407017 7.546865 -12.797932 402 5056 5057 + 5056 H 25.672384 7.104790 -13.280274 403 5055 + 5057 H 27.091777 7.777455 -13.451817 403 5055 + 5058 O 25.647383 -6.341604 -8.154924 402 5059 5060 + 5059 H 26.357304 -5.715813 -8.365206 403 5058 + 5060 H 25.997425 -7.137628 -8.663351 403 5058 + 5061 O 24.828979 0.493040 8.418984 402 5062 5063 + 5062 H 25.575762 0.370102 9.128898 403 5061 + 5063 H 24.779810 -0.342584 8.014099 403 5061 + 5064 O 17.019067 17.317670 3.445072 402 5065 5066 + 5065 H 16.246945 17.951681 3.647617 403 5064 + 5066 H 17.118513 16.924515 4.354268 403 5064 + 5067 O -14.811273 -9.813473 19.349487 402 5068 5069 + 5068 H -15.258466 -10.583929 19.669257 403 5067 + 5069 H -14.033228 -10.041012 18.847205 403 5067 + 5070 O 23.382015 -15.215511 6.306360 402 5071 5072 + 5071 H 24.055596 -14.464366 6.446483 403 5070 + 5072 H 22.714188 -14.794741 5.753275 403 5070 + 5073 O -26.337628 -13.401476 1.412480 402 5074 5075 + 5074 H -26.098445 -12.489264 1.304520 403 5073 + 5075 H -25.434229 -13.739613 1.185013 403 5073 + 5076 O 12.045641 6.334478 14.034491 402 5077 5078 + 5077 H 11.290237 6.052909 13.448299 403 5076 + 5078 H 12.782332 5.993917 13.490639 403 5076 + 5079 O 20.125812 -8.202150 -9.814098 402 5080 5081 + 5080 H 20.194536 -8.887766 -9.162911 403 5079 + 5081 H 21.027215 -8.057148 -10.044296 403 5079 + 5082 O 12.066525 -8.540938 -7.364209 402 5083 5084 + 5083 H 11.508583 -8.030746 -6.799426 403 5082 + 5084 H 11.560454 -9.411302 -7.497328 403 5082 + 5085 O 6.006584 -19.643391 -16.856771 402 5086 5087 + 5086 H 5.834004 -19.490315 -17.723180 403 5085 + 5087 H 5.173445 -19.306940 -16.418662 403 5085 + 5088 O -26.105240 9.497668 11.035009 402 5089 5090 + 5089 H -25.940506 10.208588 11.676762 403 5088 + 5090 H -26.907023 9.839249 10.688906 403 5088 + 5091 O 25.980779 -10.760099 -17.043079 402 5092 5093 + 5092 H 26.294152 -9.947887 -17.408944 403 5091 + 5093 H 26.659719 -11.433214 -17.294305 403 5091 + 5094 O 17.405056 -19.269747 -14.944723 402 5095 5096 + 5095 H 17.214410 -18.409556 -14.434720 403 5094 + 5096 H 17.526094 -19.972476 -14.301658 403 5094 + 5097 O -24.018604 17.625199 1.640879 402 5098 5099 + 5098 H -24.784080 17.611175 1.083900 403 5097 + 5099 H -24.038354 18.437262 2.233960 403 5097 + 5100 O -19.713596 9.725034 11.241378 402 5101 5102 + 5101 H -20.334881 9.562447 10.458947 403 5100 + 5102 H -18.859792 9.431551 10.874150 403 5100 + 5103 O 12.017227 10.801952 4.275634 402 5104 5105 + 5104 H 11.431320 10.637434 5.045035 403 5103 + 5105 H 11.407446 10.560420 3.532631 403 5103 + 5106 O -2.032321 -18.778706 7.677870 402 5107 5108 + 5107 H -1.174746 -18.822855 7.226095 403 5106 + 5108 H -2.302104 -17.849324 7.787431 403 5106 + 5109 O 27.376193 5.800091 -18.808667 402 5110 5111 + 5110 H 28.217784 5.560939 -18.324424 403 5109 + 5111 H 27.470430 6.797809 -18.833583 403 5109 + 5112 O 22.777052 -4.203723 15.528690 402 5113 5114 + 5113 H 22.819825 -4.163457 14.596219 403 5112 + 5114 H 23.290333 -4.967303 15.841471 403 5112 + 5115 O -24.407041 -11.771935 -2.162786 402 5116 5117 + 5116 H -24.850114 -12.297116 -2.844402 403 5115 + 5117 H -24.335332 -10.842961 -2.448771 403 5115 + 5118 O 26.515383 14.863308 -11.949090 402 5119 5120 + 5119 H 25.693505 15.247676 -11.698157 403 5118 + 5120 H 27.137639 14.903509 -11.237657 403 5118 + 5121 O 9.526170 19.544584 -4.495947 402 5122 5123 + 5122 H 8.563440 19.681938 -4.310177 403 5121 + 5123 H 9.710873 20.389152 -4.948099 403 5121 + 5124 O 0.930640 14.865621 2.693375 402 5125 5126 + 5125 H 1.441052 15.216977 2.015262 403 5124 + 5126 H 0.982855 15.427541 3.521397 403 5124 + 5127 O -8.560884 -14.779791 -0.317309 402 5128 5129 + 5128 H -7.563132 -14.724309 -0.578447 403 5127 + 5129 H -8.944725 -15.346794 -1.006948 403 5127 + 5130 O -7.319722 -18.863858 -20.528347 402 5131 5132 + 5131 H -8.028502 -18.663258 -21.126375 403 5130 + 5132 H -7.164500 -19.772394 -20.500444 403 5130 + 5133 O -15.128995 -19.691380 3.092730 402 5134 5135 + 5134 H -16.008789 -19.690772 3.472840 403 5133 + 5135 H -14.968322 -20.623238 2.789294 403 5133 + 5136 O 14.985700 14.931491 -8.447163 402 5137 5138 + 5137 H 15.394555 15.826269 -8.282486 403 5136 + 5138 H 14.583931 14.705829 -7.592039 403 5136 + 5139 O 27.322481 11.495061 -9.977404 402 5140 5141 + 5140 H 26.863175 12.062729 -9.353442 403 5139 + 5141 H 28.126888 11.829690 -10.258173 403 5139 + 5142 O -18.229397 7.978168 7.639376 402 5143 5144 + 5143 H -19.028971 7.438874 7.807107 403 5142 + 5144 H -17.575997 7.370338 7.232298 403 5142 + 5145 O -5.554901 9.643950 18.209130 402 5146 5147 + 5146 H -4.877908 10.197790 17.765078 403 5145 + 5147 H -5.709375 10.290933 18.919059 403 5145 + 5148 O 27.055810 -8.039157 10.769461 402 5149 5150 + 5149 H 27.007722 -8.570107 10.005081 403 5148 + 5150 H 26.186325 -7.596689 10.673325 403 5148 + 5151 O 11.193144 -4.443017 6.826722 402 5152 5153 + 5152 H 10.836891 -3.569010 6.720665 403 5151 + 5153 H 12.137206 -4.292318 6.939554 403 5151 + 5154 O 19.268222 19.404109 -20.005983 402 5155 5156 + 5155 H 18.552307 19.427583 -20.612317 403 5154 + 5156 H 20.054546 19.443947 -20.508778 403 5154 + 5157 O -0.489608 2.918279 -19.339493 402 5158 5159 + 5158 H -0.728227 3.023881 -20.237208 403 5157 + 5159 H 0.435524 3.253135 -19.140478 403 5157 + 5160 O -9.930055 10.868000 -17.673601 402 5161 5162 + 5161 H -10.626469 11.466271 -17.943644 403 5160 + 5162 H -9.408670 11.199903 -16.908283 403 5160 + 5163 O 14.391665 -7.492360 -17.133433 402 5164 5165 + 5164 H 14.776095 -6.640715 -16.914336 403 5163 + 5165 H 14.844935 -7.826758 -17.919613 403 5163 + 5166 O -4.403090 17.562294 4.304967 402 5167 5168 + 5167 H -3.639926 17.895809 4.788467 403 5166 + 5168 H -4.847822 18.247386 3.881416 403 5166 + 5169 O 14.924216 -8.572989 -7.802421 402 5170 5171 + 5170 H 15.080791 -9.001730 -8.577899 403 5169 + 5171 H 14.072292 -8.888256 -7.443501 403 5169 + 5172 O 20.863060 -8.335281 -2.996473 402 5173 5174 + 5173 H 20.865038 -7.834818 -2.195694 403 5172 + 5174 H 20.360014 -9.121641 -2.844384 403 5172 + 5175 O 7.770701 4.749626 -15.173810 402 5176 5177 + 5176 H 7.232605 4.918984 -14.407401 403 5175 + 5177 H 7.150893 4.735931 -15.889673 403 5175 + 5178 O 9.287502 -20.421293 -19.615918 402 5179 5180 + 5179 H 8.673901 -19.918813 -20.140368 403 5178 + 5180 H 10.257214 -20.289398 -19.904230 403 5178 + 5181 O 20.543914 -3.694600 8.858562 402 5182 5183 + 5182 H 20.350529 -3.346561 9.790355 403 5181 + 5183 H 20.284447 -4.620852 8.950478 403 5181 + 5184 O -24.889469 -2.826087 -11.161559 402 5185 5186 + 5185 H -24.617642 -1.952238 -10.677372 403 5184 + 5186 H -25.879679 -2.907043 -11.066325 403 5184 + 5187 O 16.046200 -19.874001 -17.403642 402 5188 5189 + 5188 H 16.633402 -19.935906 -18.189298 403 5187 + 5189 H 16.556861 -19.594522 -16.612102 403 5187 + 5190 O 5.741718 -12.703855 14.460309 402 5191 5192 + 5191 H 6.418646 -13.226075 14.848859 403 5190 + 5192 H 5.375423 -12.291966 15.251474 403 5190 + 5193 O -26.921124 3.080708 -16.683288 402 5194 5195 + 5194 H -26.349288 3.764354 -17.076383 403 5193 + 5195 H -27.310492 3.610598 -15.940909 403 5193 + 5196 O -9.051861 -12.598891 -10.481740 402 5197 5198 + 5197 H -9.312975 -13.202994 -11.160740 403 5196 + 5198 H -9.863453 -12.002119 -10.435649 403 5196 + 5199 O 11.222934 -19.072403 -5.120308 402 5200 5201 + 5200 H 10.662322 -18.478568 -5.660022 403 5199 + 5201 H 12.014749 -19.325909 -5.638718 403 5199 + 5202 O 18.944446 -1.761496 -1.989981 402 5203 5204 + 5203 H 19.143872 -2.715939 -1.959282 403 5202 + 5204 H 18.884717 -1.422297 -1.082916 403 5202 + 5205 O 23.550316 -15.829708 -20.623087 402 5206 5207 + 5206 H 22.847013 -15.261005 -20.962532 403 5205 + 5207 H 23.291254 -16.269725 -19.776352 403 5205 + 5208 O 16.851801 5.388343 15.856452 402 5209 5210 + 5209 H 16.397949 5.383405 15.017945 403 5208 + 5210 H 16.364224 6.131529 16.215918 403 5208 + 5211 O 12.029283 -15.298450 15.005226 402 5212 5213 + 5212 H 11.752968 -15.998705 15.556968 403 5211 + 5213 H 11.367704 -14.915688 14.430927 403 5211 + 5214 O 14.340396 -0.486882 2.372215 402 5215 5216 + 5215 H 13.663877 -0.866715 2.885453 403 5214 + 5216 H 14.313669 0.446574 2.655905 403 5214 + 5217 O -4.590564 -6.037942 9.321481 402 5218 5219 + 5218 H -4.191484 -6.200341 8.445394 403 5217 + 5219 H -4.057284 -5.373615 9.813704 403 5217 + 5220 O 11.373242 -19.244304 -15.042581 402 5221 5222 + 5221 H 12.222601 -19.509329 -15.419988 403 5220 + 5222 H 10.727440 -19.492586 -15.694712 403 5220 + 5223 O 8.445009 -7.353337 -20.644303 402 5224 5225 + 5224 H 8.065671 -6.779925 -19.985343 403 5223 + 5225 H 8.109658 -8.330016 -20.463794 403 5223 + 5226 O 9.428901 8.662531 -17.428301 402 5227 5228 + 5227 H 8.456111 8.645724 -17.644511 403 5226 + 5228 H 9.529146 9.218358 -16.645571 403 5226 + 5229 O -22.387040 -19.582592 -7.404304 402 5230 5231 + 5230 H -22.537521 -18.739332 -7.873166 403 5229 + 5231 H -22.150442 -19.339940 -6.528223 403 5229 + 5232 O 26.735971 -15.726321 7.121648 402 5233 5234 + 5233 H 25.953722 -16.106883 7.512069 403 5232 + 5234 H 26.460359 -14.804570 6.934323 403 5232 + 5235 O -20.988572 11.929476 3.968066 402 5236 5237 + 5236 H -21.340596 11.563124 4.784938 403 5235 + 5237 H -21.130650 12.884161 4.069043 403 5235 + 5238 O 21.473005 20.923952 -4.710755 402 5239 5240 + 5239 H 22.324172 21.375208 -4.753044 403 5238 + 5240 H 21.707980 20.020307 -4.884522 403 5238 + 5241 O 18.479193 -0.888136 0.672743 402 5242 5243 + 5242 H 17.536329 -0.750808 0.451811 403 5241 + 5243 H 18.753176 -0.016644 0.847545 403 5241 + 5244 O -13.644220 -0.195942 -16.728164 402 5245 5246 + 5245 H -14.145608 -0.971886 -16.514909 403 5244 + 5246 H -13.412704 -0.294150 -17.655379 403 5244 + 5247 O -27.356282 -13.782004 3.934427 402 5248 5249 + 5248 H -27.242980 -13.845896 2.900565 403 5247 + 5249 H -28.015991 -14.339318 4.193014 403 5247 + 5250 O 18.276550 10.521821 -10.411508 402 5251 5252 + 5251 H 17.466149 10.037966 -10.334512 403 5250 + 5252 H 18.135131 11.463023 -10.441937 403 5250 + 5253 O 11.304676 -3.958739 14.771873 402 5254 5255 + 5254 H 10.819571 -4.657592 14.338362 403 5253 + 5255 H 11.872243 -4.302988 15.497743 403 5253 + 5256 O 0.810718 18.132291 -14.333312 402 5257 5258 + 5257 H 0.190255 17.471051 -14.607576 403 5256 + 5258 H 1.665202 17.681600 -14.166677 403 5256 + 5259 O -18.194302 10.734237 20.288216 402 5260 5261 + 5260 H -18.737476 10.008872 20.011140 403 5259 + 5261 H -18.413412 10.870765 21.217524 403 5259 + 5262 O -7.563142 -16.389647 8.034997 402 5263 5264 + 5263 H -7.754897 -16.237987 7.073421 403 5262 + 5264 H -8.386855 -16.715419 8.384876 403 5262 + 5265 O 13.912058 -6.782117 15.996328 402 5266 5267 + 5266 H 13.180027 -7.276194 16.277557 403 5265 + 5267 H 13.861231 -6.438577 15.112401 403 5265 + 5268 O -25.429958 -6.548345 16.184656 402 5269 5270 + 5269 H -24.780220 -7.006450 16.697079 403 5268 + 5270 H -26.340485 -6.934525 16.332424 403 5268 + 5271 O -25.500783 -16.025799 -9.490569 402 5272 5273 + 5272 H -26.164448 -16.158413 -8.820769 403 5271 + 5273 H -25.951236 -16.456932 -10.263221 403 5271 + 5274 O 24.124222 2.121712 -16.465144 402 5275 5276 + 5275 H 24.497335 2.845246 -17.081218 403 5274 + 5276 H 24.792485 1.399163 -16.373949 403 5274 + 5277 O 4.547327 -7.471124 19.146289 402 5278 5279 + 5278 H 4.354864 -7.322111 18.216109 403 5277 + 5279 H 3.632016 -7.470487 19.500477 403 5277 + 5280 O 10.120616 17.236092 14.316409 402 5281 5282 + 5281 H 10.306027 17.503867 15.195486 403 5280 + 5282 H 9.503499 17.802179 13.861569 403 5280 + 5283 O 21.443686 -0.137574 -7.240239 402 5284 5285 + 5284 H 21.320909 -0.780264 -6.543039 403 5283 + 5285 H 20.520021 0.052046 -7.411757 403 5283 + 5286 O -18.828207 -17.795055 12.603944 402 5287 5288 + 5287 H -19.462622 -18.118613 13.289732 403 5286 + 5288 H -19.239011 -18.165303 11.770846 403 5286 + 5289 O -5.408698 18.602640 19.942387 402 5290 5291 + 5290 H -4.940011 19.368098 19.546138 403 5289 + 5291 H -4.701861 17.940803 20.028319 403 5289 + 5292 O 1.246630 7.058463 14.491223 402 5293 5294 + 5293 H 1.833210 6.855645 13.673367 403 5292 + 5294 H 1.409024 6.330352 15.131330 403 5292 + 5295 O 12.743100 -19.137500 -10.658143 402 5296 5297 + 5296 H 12.731029 -19.861558 -11.325766 403 5295 + 5297 H 13.636140 -18.849862 -10.621111 403 5295 + 5298 O 8.176227 18.621713 -14.093293 402 5299 5300 + 5299 H 8.403415 17.666902 -14.107193 403 5298 + 5300 H 8.904018 18.994347 -14.634670 403 5298 + 5301 O -2.850169 -13.873152 15.306117 402 5302 5303 + 5302 H -2.778021 -14.417883 14.515219 403 5301 + 5303 H -2.855607 -12.985119 14.927436 403 5301 + 5304 O -2.292558 -20.012333 10.080992 402 5305 5306 + 5305 H -1.651194 -19.572426 10.625999 403 5304 + 5306 H -2.187742 -19.593458 9.218576 403 5304 + 5307 O 22.331247 5.799873 2.670280 402 5308 5309 + 5308 H 22.434189 5.666649 3.628261 403 5307 + 5309 H 22.776307 5.021312 2.347574 403 5307 + 5310 O 15.417762 16.217823 -20.022192 402 5311 5312 + 5311 H 14.476316 16.148202 -19.889414 403 5310 + 5312 H 15.596696 16.629517 -20.930968 403 5310 + 5313 O -26.290384 -0.615609 -8.011370 402 5314 5315 + 5314 H -26.337180 -1.338819 -7.375398 403 5313 + 5315 H -27.197456 -0.506091 -8.331222 403 5313 + 5316 O 9.027104 -10.649673 18.216586 402 5317 5318 + 5317 H 9.003116 -9.685060 18.321463 403 5316 + 5318 H 8.395635 -11.040516 18.879208 403 5316 + 5319 O 20.540085 20.400943 18.176526 402 5320 5321 + 5320 H 21.096121 20.661895 18.908831 403 5319 + 5321 H 19.896888 21.145098 18.113813 403 5319 + 5322 O -1.026820 14.710767 -4.091506 402 5323 5324 + 5323 H -1.483470 15.499879 -3.851169 403 5322 + 5324 H -1.334746 14.285611 -4.859625 403 5322 + 5325 O -26.089489 15.380454 18.855264 402 5326 5327 + 5326 H -25.115552 15.260124 18.557693 403 5325 + 5327 H -26.107913 15.393677 19.825673 403 5325 + 5328 O 2.007574 -16.086893 18.910154 402 5329 5330 + 5329 H 2.169938 -15.300051 18.371811 403 5328 + 5330 H 1.765349 -16.777501 18.309170 403 5328 + 5331 O -1.731416 -1.209658 -17.616026 402 5332 5333 + 5332 H -1.627324 -2.121913 -17.876677 403 5331 + 5333 H -0.897064 -0.759027 -17.856313 403 5331 + 5334 O -7.458988 -9.905611 -19.067646 402 5335 5336 + 5335 H -7.612323 -9.236466 -18.379766 403 5334 + 5336 H -6.775597 -10.433737 -18.660285 403 5334 + 5337 O 24.628885 -15.762187 -8.892475 402 5338 5339 + 5338 H 24.465618 -16.362594 -8.154270 403 5337 + 5339 H 25.428263 -15.265529 -8.789821 403 5337 + 5340 O 21.341678 17.087622 -2.433709 402 5341 5342 + 5341 H 22.027154 16.590055 -2.017304 403 5340 + 5342 H 20.972791 17.595736 -1.703682 403 5340 + 5343 O 11.041731 -1.458544 17.027146 402 5344 5345 + 5344 H 11.616990 -0.777488 17.323484 403 5343 + 5345 H 11.529032 -2.030322 16.345409 403 5343 + 5346 O 20.352182 -20.640448 -2.038220 402 5347 5348 + 5347 H 20.706451 -20.927732 -2.854198 403 5346 + 5348 H 21.078721 -20.655585 -1.410115 403 5346 + 5349 O 2.118915 -12.215325 -19.313844 402 5350 5351 + 5350 H 1.412292 -12.890446 -19.223921 403 5349 + 5351 H 2.971726 -12.642687 -19.466619 403 5349 + 5352 O -18.234007 -11.608978 -6.453902 402 5353 5354 + 5353 H -18.824060 -11.919205 -5.748304 403 5352 + 5354 H -17.399503 -12.148958 -6.321644 403 5352 + 5355 O 12.956287 4.319222 -3.994225 402 5356 5357 + 5356 H 12.213046 3.674862 -3.908399 403 5355 + 5357 H 12.579678 5.119154 -3.559136 403 5355 + 5358 O -16.653199 5.258818 18.455342 402 5359 5360 + 5359 H -17.496007 5.121615 18.892108 403 5358 + 5360 H -16.041443 5.030868 19.126227 403 5358 + 5361 O 10.499124 9.233410 -20.179160 402 5362 5363 + 5362 H 10.147585 9.358107 -19.280974 403 5361 + 5363 H 11.442853 9.276973 -20.041862 403 5361 + 5364 O 0.510441 -0.870953 17.320417 402 5365 5366 + 5365 H 1.102755 -1.566191 17.515002 403 5364 + 5366 H 0.955429 -0.019852 17.557716 403 5364 + 5367 O 4.110276 5.067141 6.431077 402 5368 5369 + 5368 H 4.761963 4.437776 6.681941 403 5367 + 5369 H 4.337595 5.795548 6.948690 403 5367 + 5370 O 11.452671 -16.505838 0.173069 402 5371 5372 + 5371 H 11.303683 -15.607972 0.510340 403 5370 + 5372 H 12.391250 -16.653982 0.330533 403 5370 + 5373 O 7.430077 -20.350208 8.105888 402 5374 5375 + 5374 H 7.675587 -20.672677 7.187383 403 5373 + 5375 H 8.248925 -20.047358 8.520026 403 5373 + 5376 O -7.400434 16.364237 -16.666884 402 5377 5378 + 5377 H -8.382471 16.160840 -16.727806 403 5376 + 5378 H -7.133812 16.815236 -17.541828 403 5376 + 5379 O -24.060814 19.512535 -2.061658 402 5380 5381 + 5380 H -23.130977 19.418843 -1.893643 403 5379 + 5381 H -24.267554 20.363324 -2.551066 403 5379 + 5382 O 20.387077 -17.871252 -2.506384 402 5383 5384 + 5383 H 19.459013 -17.739929 -2.640716 403 5382 + 5384 H 20.424417 -18.802885 -2.422640 403 5382 + 5385 O -9.102927 -20.662897 -0.744511 402 5386 5387 + 5386 H -8.351458 -20.647416 -0.154773 403 5385 + 5387 H -8.808769 -19.943254 -1.313754 403 5385 + 5388 O -22.416841 -13.711743 -11.454147 402 5389 5390 + 5389 H -22.023904 -14.600414 -11.267420 403 5388 + 5390 H -21.766795 -13.100859 -11.064675 403 5388 + 5391 O 18.020659 1.320207 -14.873666 402 5392 5393 + 5392 H 17.072103 1.602050 -14.789845 403 5391 + 5393 H 18.329426 1.503733 -13.971877 403 5391 + 5394 O -15.611967 -16.933927 -20.034244 402 5395 5396 + 5395 H -15.697544 -15.974880 -19.912529 403 5394 + 5396 H -16.463764 -17.241305 -19.666078 403 5394 + 5397 O -21.399563 -20.604313 -19.819242 402 5398 5399 + 5398 H -22.286272 -20.451053 -20.149900 403 5397 + 5399 H -20.960242 -19.767241 -20.062136 403 5397 + 5400 O -14.873799 15.000585 15.755334 402 5401 5402 + 5401 H -15.665375 14.566463 15.276438 403 5400 + 5402 H -15.221469 15.704608 16.223975 403 5400 + 5403 O -22.283717 17.924070 6.363117 402 5404 5405 + 5404 H -22.326943 17.328611 7.088360 403 5403 + 5405 H -22.769780 17.540247 5.616208 403 5403 + 5406 O -4.518256 15.930815 -10.776370 402 5407 5408 + 5407 H -3.722298 16.148281 -11.175263 403 5406 + 5408 H -4.440115 15.005875 -10.441712 403 5406 + 5409 O 23.829242 -12.577808 -10.269253 402 5410 5411 + 5410 H 23.709620 -12.211859 -11.148216 403 5409 + 5411 H 24.681269 -13.072156 -10.250620 403 5409 + 5412 O 25.052401 -0.262291 -3.629356 402 5413 5414 + 5413 H 25.651051 -0.543026 -4.364585 403 5412 + 5414 H 24.527612 0.474703 -4.021632 403 5412 + 5415 O 14.329934 -16.440730 7.995977 402 5416 5417 + 5416 H 15.030052 -16.157725 7.466301 403 5415 + 5417 H 13.674876 -16.863377 7.389073 403 5415 + 5418 O 17.211657 20.746652 5.342912 402 5419 5420 + 5419 H 17.565761 20.264477 4.651199 403 5418 + 5420 H 17.675222 21.576262 5.214762 403 5418 + 5421 O 18.857835 10.961021 -18.198746 402 5422 5423 + 5422 H 18.582121 10.331224 -18.896135 403 5421 + 5423 H 18.706900 11.843177 -18.451427 403 5421 + 5424 O 7.806576 -0.529506 11.040094 402 5425 5426 + 5425 H 8.004288 -1.400200 11.405855 403 5424 + 5426 H 8.516912 0.066000 11.339425 403 5424 + 5427 O -6.293411 -18.726760 -7.845237 402 5428 5429 + 5428 H -6.910802 -18.996812 -8.589964 403 5427 + 5429 H -5.423066 -18.680010 -8.240732 403 5427 + 5430 O -1.265386 -18.351217 15.342196 402 5431 5432 + 5431 H -0.978536 -17.941389 14.498149 403 5430 + 5432 H -1.776754 -19.060650 14.957444 403 5430 + 5433 O 22.240898 5.630349 9.837319 402 5434 5435 + 5434 H 21.800731 4.901204 9.365178 403 5433 + 5435 H 22.570414 6.163537 9.075972 403 5433 + 5436 O -21.322343 8.388055 9.072770 402 5437 5438 + 5437 H -22.042357 8.964988 9.320991 403 5436 + 5438 H -21.568690 8.084477 8.201200 403 5436 + 5439 O -7.671244 -4.189475 20.344117 402 5440 5441 + 5440 H -7.419567 -4.322104 19.418696 403 5439 + 5441 H -8.363860 -4.824728 20.370282 403 5439 + 5442 O -24.129456 16.739076 10.610161 402 5443 5444 + 5443 H -24.547205 17.167468 11.404792 403 5442 + 5444 H -24.468711 15.757636 10.582819 403 5442 + 5445 O -6.867333 -14.186985 10.119152 402 5446 5447 + 5446 H -6.049023 -14.321450 10.601875 403 5445 + 5447 H -7.023306 -14.804381 9.421465 403 5445 + 5448 O 27.346506 -3.270333 -16.312802 402 5449 5450 + 5449 H 28.255175 -3.592935 -16.275175 403 5448 + 5450 H 27.317511 -2.474622 -16.807450 403 5448 + 5451 O -21.641506 5.727852 -20.459813 402 5452 5453 + 5452 H -22.279373 6.214532 -21.053396 403 5451 + 5453 H -20.775787 6.025886 -20.684218 403 5451 + 5454 O 25.309710 5.144361 4.524619 402 5455 5456 + 5455 H 25.816635 5.036211 5.343240 403 5454 + 5456 H 24.410878 4.895458 4.808645 403 5454 + 5457 O -14.509617 -6.262805 19.159506 402 5458 5459 + 5458 H -14.342716 -6.722944 19.988985 403 5457 + 5459 H -14.602416 -5.323286 19.288859 403 5457 + 5460 O -5.343448 -11.274271 19.025798 402 5461 5462 + 5461 H -4.940638 -11.918950 18.424498 403 5460 + 5462 H -5.498793 -11.715720 19.830266 403 5460 + 5463 O -12.848588 -13.590248 17.033609 402 5464 5465 + 5464 H -13.088575 -13.796556 16.123304 403 5463 + 5465 H -11.991420 -14.074390 17.232742 403 5463 + 5466 O -7.289082 -17.381003 -5.549847 402 5467 5468 + 5467 H -8.038865 -17.962440 -5.504293 403 5466 + 5468 H -6.970028 -17.592513 -6.445260 403 5466 + 5469 O 19.348721 -14.932661 19.813219 402 5470 5471 + 5470 H 19.577232 -15.858745 19.765206 403 5469 + 5471 H 18.713188 -14.720751 20.514547 403 5469 + 5472 O -7.930616 -15.106164 -4.397641 402 5473 5474 + 5473 H -8.445836 -14.519877 -4.885728 403 5472 + 5474 H -7.532499 -15.797439 -4.932460 403 5472 + 5475 O 9.305997 -17.229888 -1.625877 402 5476 5477 + 5476 H 9.781891 -17.999835 -2.038321 403 5475 + 5477 H 10.027236 -16.701835 -1.179404 403 5475 + 5478 O 14.485547 17.913855 14.273541 402 5479 5480 + 5479 H 13.775573 18.190913 13.687091 403 5478 + 5480 H 15.292649 17.853242 13.696917 403 5478 + 5481 O -17.856749 -3.239166 18.728922 402 5482 5483 + 5482 H -18.264266 -2.371813 18.585117 403 5481 + 5483 H -17.320266 -3.326693 17.906655 403 5481 + 5484 O 11.415319 5.923359 -20.462324 402 5485 5486 + 5485 H 12.034713 5.464442 -19.848871 403 5484 + 5486 H 10.982818 5.221175 -20.955049 403 5484 + 5487 O 4.246715 -11.198844 16.227140 402 5488 5489 + 5488 H 4.054406 -10.449224 15.720401 403 5487 + 5489 H 3.729643 -11.076561 16.998845 403 5487 + 5490 O 17.668887 16.010513 -14.839435 402 5491 5492 + 5491 H 17.475048 15.032227 -14.810123 403 5490 + 5492 H 17.201356 16.387530 -15.640949 403 5490 + 5493 O -18.492111 8.644500 -1.484673 402 5494 5495 + 5494 H -18.325091 9.560921 -1.252627 403 5493 + 5495 H -19.325787 8.367546 -1.121513 403 5493 + 5496 O 13.610401 12.947630 3.013371 402 5497 5498 + 5497 H 13.281039 12.533993 3.856655 403 5496 + 5498 H 14.367204 13.456810 3.354976 403 5496 + 5499 O -16.423725 20.151070 -20.282392 402 5500 5501 + 5500 H -15.764964 20.343494 -20.952998 403 5499 + 5501 H -17.250142 20.198658 -20.732026 403 5499 + 5502 O -3.989847 10.270724 -11.073966 402 5503 5504 + 5503 H -3.495466 11.034119 -11.283995 403 5502 + 5504 H -4.624991 10.165649 -11.788271 403 5502 + 5505 O 16.276806 2.440391 -0.575792 402 5506 5507 + 5506 H 15.765940 1.689695 -0.443195 403 5505 + 5507 H 16.230870 2.461846 -1.548388 403 5505 + 5508 O 16.582337 4.961920 -0.018366 402 5509 5510 + 5509 H 16.750405 4.953804 0.881833 403 5508 + 5510 H 16.382476 4.092139 -0.296219 403 5508 + 5511 O -16.776801 -4.258809 -20.926631 402 5512 5513 + 5512 H -16.876778 -3.694234 -21.711494 403 5511 + 5513 H -15.815010 -4.231038 -20.634779 403 5511 + 5514 O 27.306315 1.909319 15.774251 402 5515 5516 + 5515 H 27.528797 1.213633 15.174474 403 5514 + 5516 H 26.309168 1.894233 15.827646 403 5514 + 5517 O -25.977063 12.434586 -4.101907 402 5518 5519 + 5518 H -25.419677 13.227991 -4.057872 403 5517 + 5519 H -25.558038 11.886611 -3.392245 403 5517 + 5520 O -8.917537 20.162429 18.906910 402 5521 5522 + 5521 H -9.817722 20.516050 18.889155 403 5520 + 5522 H -8.402992 20.765622 18.322054 403 5520 + 5523 O 2.036338 -3.225452 18.493289 402 5524 5525 + 5524 H 2.815627 -3.223614 19.047224 403 5523 + 5525 H 1.451253 -3.554309 19.176609 403 5523 + 5526 O -10.943111 -16.939296 -15.943963 402 5527 5528 + 5527 H -10.715338 -17.873691 -15.814810 403 5526 + 5528 H -11.411581 -16.839878 -16.774067 403 5526 + 5529 O 5.983465 -15.296272 4.531445 402 5530 5531 + 5530 H 6.553908 -14.747320 5.130885 403 5529 + 5531 H 6.297291 -16.216179 4.672680 403 5529 + 5532 O 0.087877 -18.701863 10.933978 402 5533 5534 + 5533 H 0.685292 -18.178478 10.372593 403 5532 + 5534 H 0.721975 -19.147274 11.528158 403 5532 + 5535 O -15.867197 20.628171 12.879631 402 5536 5537 + 5536 H -14.941749 20.909539 13.127416 403 5535 + 5537 H -16.061214 21.005786 12.011063 403 5535 + 5538 O -15.031464 -1.955849 18.854814 402 5539 5540 + 5539 H -15.381408 -1.375187 18.132775 403 5538 + 5540 H -15.567308 -1.774457 19.596007 403 5538 + 5541 O -5.713639 -18.898958 -11.393727 402 5542 5543 + 5542 H -5.561092 -18.122829 -11.901780 403 5541 + 5543 H -5.027945 -19.039448 -10.715374 403 5541 + 5544 O 10.351785 2.342628 9.137608 402 5545 5546 + 5545 H 10.219354 1.517524 8.764529 403 5544 + 5546 H 9.579584 2.957546 9.024779 403 5544 + 5547 O 9.614533 -0.976089 19.746830 402 5548 5549 + 5548 H 9.631955 -1.223467 18.785924 403 5547 + 5549 H 10.037560 -1.819567 20.145752 403 5547 + 5550 O -25.737514 5.101092 17.496072 402 5551 5552 + 5551 H -25.949189 4.771339 16.619275 403 5550 + 5552 H -25.460497 6.029342 17.333464 403 5550 + 5553 O 27.098530 15.410179 3.235558 402 5554 5555 + 5554 H 27.365221 16.280617 3.273489 403 5553 + 5555 H 27.777628 14.851248 3.682250 403 5553 + 5556 O -22.145578 -2.524811 -16.789026 402 5557 5558 + 5557 H -22.476890 -1.687774 -16.973175 403 5556 + 5558 H -22.545487 -2.678464 -15.881093 403 5556 + 5559 O -20.038660 7.882073 -10.677168 402 5560 5561 + 5560 H -20.786353 8.456789 -10.411968 403 5559 + 5561 H -20.303885 6.997195 -10.661212 403 5559 + 5562 O 6.124673 -5.149502 -15.761404 402 5563 5564 + 5563 H 6.612667 -4.434874 -15.249053 403 5562 + 5564 H 6.646658 -5.246066 -16.553355 403 5562 + 5565 O 6.017362 -16.085801 -17.806752 402 5566 5567 + 5566 H 6.270539 -16.458116 -16.921098 403 5565 + 5567 H 5.250388 -15.542937 -17.506389 403 5565 + 5568 O -9.374031 -17.523242 2.545572 402 5569 5570 + 5569 H -8.487532 -17.678151 2.185352 403 5568 + 5570 H -9.361698 -17.695772 3.484410 403 5568 + 5571 O 15.510564 11.705332 -9.223052 402 5572 5573 + 5572 H 15.764354 12.551003 -8.768718 403 5571 + 5573 H 14.956013 11.971918 -9.941944 403 5571 + 5574 O -8.575937 17.703676 -4.431665 402 5575 5576 + 5575 H -8.405924 17.883222 -3.539392 403 5574 + 5576 H -8.969679 16.778001 -4.495229 403 5574 + 5577 O -15.277037 20.916980 18.527990 402 5578 5579 + 5578 H -14.557049 20.578200 18.029786 403 5577 + 5579 H -14.784644 21.516499 19.154300 403 5577 + 5580 O 23.805081 -13.876618 -5.245218 402 5581 5582 + 5581 H 23.301003 -14.539959 -4.743943 403 5580 + 5582 H 23.699048 -13.156658 -4.566103 403 5580 + 5583 O 23.235009 0.659798 -11.019427 402 5584 5585 + 5584 H 23.356235 -0.020938 -10.331928 403 5583 + 5585 H 23.922180 0.433479 -11.687400 403 5583 + 5586 O -17.846164 6.890268 -13.615475 402 5587 5588 + 5587 H -18.227474 6.233852 -12.960353 403 5586 + 5588 H -17.502560 7.653333 -13.062645 403 5586 + 5589 O 3.237690 6.611110 12.384611 402 5590 5591 + 5590 H 2.939622 6.791701 11.472608 403 5589 + 5591 H 3.597050 5.706217 12.314107 403 5589 + 5592 O 12.621261 19.151311 -10.788464 402 5593 5594 + 5593 H 12.568861 18.191071 -10.482080 403 5592 + 5594 H 12.304890 19.095240 -11.710548 403 5592 + 5595 O 15.189541 -3.590616 -0.359174 402 5596 5597 + 5596 H 15.402717 -3.225037 -1.223302 403 5595 + 5597 H 15.977001 -4.068104 -0.090059 403 5595 + 5598 O -5.355594 -8.568333 19.641427 402 5599 5600 + 5599 H -6.310615 -8.510356 19.969721 403 5598 + 5600 H -5.329970 -9.512642 19.277800 403 5598 + 5601 O 6.365722 2.783749 -12.009649 402 5602 5603 + 5602 H 6.365749 3.750417 -12.183807 403 5601 + 5603 H 5.965929 2.688579 -11.148102 403 5601 + 5604 O 13.169614 -10.142007 -11.634557 402 5605 5606 + 5605 H 12.793149 -9.899166 -12.523960 403 5604 + 5606 H 12.998542 -11.088881 -11.478349 403 5604 + 5607 O -22.674956 -9.666699 -16.999652 402 5608 5609 + 5608 H -22.331812 -10.389941 -17.591652 403 5607 + 5609 H -22.299353 -8.906035 -17.478779 403 5607 + 5610 O -12.989714 14.562837 -4.489024 402 5611 5612 + 5611 H -13.895012 14.141511 -4.581855 403 5610 + 5612 H -12.287469 13.906583 -4.558336 403 5610 + 5613 O 11.889244 7.234465 -14.239933 402 5614 5615 + 5614 H 11.841540 6.403022 -13.699089 403 5613 + 5615 H 11.297036 7.163549 -15.011709 403 5613 + 5616 O 14.205425 -4.375072 6.885349 402 5617 5618 + 5617 H 14.444785 -3.467494 6.828421 403 5616 + 5618 H 14.540396 -4.824463 6.047265 403 5616 + 5619 O 14.238877 -11.199937 -5.844240 402 5620 5621 + 5620 H 14.336897 -11.151845 -6.791045 403 5619 + 5621 H 14.161965 -12.124432 -5.730368 403 5619 + 5622 O 16.419881 -8.263494 5.499713 402 5623 5624 + 5623 H 16.888087 -7.438031 5.380531 403 5622 + 5624 H 16.938306 -8.794006 4.823282 403 5622 + 5625 O 23.034740 17.150944 7.848428 402 5626 5627 + 5626 H 22.252785 17.491282 7.376162 403 5625 + 5627 H 23.353461 18.012155 8.262400 403 5625 + 5628 O -3.250988 20.899767 -14.198279 402 5629 5630 + 5629 H -3.536111 20.593819 -13.311678 403 5628 + 5630 H -2.238291 20.969313 -14.122183 403 5628 + 5631 O 2.193864 -14.308738 -13.102332 402 5632 5633 + 5632 H 2.901120 -13.646677 -13.123464 403 5631 + 5633 H 2.577942 -14.916050 -13.753214 403 5631 + 5634 O 17.220878 14.344503 7.704982 402 5635 5636 + 5635 H 16.741444 14.217801 8.575501 403 5634 + 5636 H 17.724190 13.489371 7.542738 403 5634 + 5637 O 12.455324 8.941935 14.709279 402 5638 5639 + 5638 H 12.329532 7.965607 14.651692 403 5637 + 5639 H 13.090154 8.950686 15.466000 403 5637 + 5640 O -12.573656 -3.849306 9.754915 402 5641 5642 + 5641 H -11.774505 -4.059630 10.198532 403 5640 + 5642 H -13.177238 -3.385101 10.384533 403 5640 + 5643 O -3.160920 -11.557605 -13.637501 402 5644 5645 + 5644 H -3.513108 -10.729378 -13.902906 403 5643 + 5645 H -2.423129 -11.640209 -14.202523 403 5643 + 5646 O 0.173291 18.530627 4.588870 402 5647 5648 + 5647 H 0.366643 18.095665 3.775805 403 5646 + 5648 H 0.528197 17.966406 5.256043 403 5646 + 5649 O -20.835824 0.618182 3.010345 402 5650 5651 + 5650 H -21.714394 0.910710 2.556806 403 5649 + 5651 H -20.176134 1.018899 2.465288 403 5649 + 5652 O -5.819679 17.244537 -18.746988 402 5653 5654 + 5653 H -4.895225 17.522561 -18.912967 403 5652 + 5654 H -5.875069 16.339088 -19.152521 403 5652 + 5655 O 23.150756 6.504841 -18.289508 402 5656 5657 + 5656 H 23.185422 7.145655 -19.092606 403 5655 + 5657 H 22.256620 6.278150 -18.023232 403 5655 + 5658 O 11.077729 -17.823438 -12.637425 402 5659 5660 + 5659 H 11.305129 -18.418523 -13.399570 403 5658 + 5660 H 11.718877 -18.045413 -11.962474 403 5658 + 5661 O -18.440076 4.089219 -20.233130 402 5662 5663 + 5662 H -18.592368 4.508225 -19.389005 403 5661 + 5663 H -18.684565 4.808320 -20.850382 403 5661 + 5664 O -23.687711 -16.266769 -17.315735 402 5665 5666 + 5665 H -23.698996 -15.631059 -16.558060 403 5664 + 5666 H -22.895860 -16.803598 -17.114489 403 5664 + 5667 O -12.383477 -18.880969 14.766217 402 5668 5669 + 5668 H -12.124554 -18.562567 13.876588 403 5667 + 5669 H -11.797092 -18.625014 15.425543 403 5667 + 5670 O 14.311125 11.668895 8.886321 402 5671 5672 + 5671 H 13.349519 11.381714 8.877659 403 5670 + 5672 H 14.742001 11.037775 8.253125 403 5670 + 5673 O 21.499156 2.133932 3.402465 402 5674 5675 + 5674 H 22.423113 2.229631 3.696856 403 5673 + 5675 H 21.472059 1.349459 2.811378 403 5673 + 5676 O 22.466695 -14.225899 -2.830703 402 5677 5678 + 5677 H 22.948700 -13.678947 -2.237715 403 5676 + 5678 H 22.233121 -15.024736 -2.381007 403 5676 + 5679 O -17.714836 -8.402483 -11.856647 402 5680 5681 + 5680 H -18.457906 -8.997855 -11.616200 403 5679 + 5681 H -16.950883 -8.800780 -11.389594 403 5679 + 5682 O -13.154395 20.875531 -1.901594 402 5683 5684 + 5683 H -14.099007 20.684326 -1.676218 403 5682 + 5684 H -12.776951 21.273644 -1.137151 403 5682 + 5685 O 10.058528 -10.804893 -19.659672 402 5686 5687 + 5686 H 10.024212 -10.944820 -18.690131 403 5685 + 5687 H 9.262507 -10.364334 -19.857371 403 5685 + 5688 O 24.206149 -6.530273 6.651758 402 5689 5690 + 5689 H 23.298132 -6.779979 6.469418 403 5688 + 5690 H 24.435964 -6.280937 7.532499 403 5688 + 5691 O -0.769539 13.370711 18.754750 402 5692 5693 + 5692 H -1.399471 13.295369 18.002641 403 5691 + 5693 H -1.282846 13.503163 19.578024 403 5691 + 5694 O 12.489489 -16.824385 17.447916 402 5695 5696 + 5695 H 12.052693 -16.106503 17.961272 403 5694 + 5696 H 12.979700 -17.322750 18.119196 403 5694 + 5697 O 22.391449 -7.947848 18.889943 402 5698 5699 + 5698 H 22.777744 -7.558109 18.080179 403 5697 + 5699 H 21.582771 -8.396208 18.531967 403 5697 + 5700 O 24.444175 12.917036 5.832052 402 5701 5702 + 5701 H 24.511172 13.835523 6.045623 403 5700 + 5702 H 23.797849 12.920835 5.128292 403 5700 + 5703 O 13.404469 11.238393 -13.308046 402 5704 5705 + 5704 H 13.712479 10.420163 -13.763288 403 5703 + 5705 H 12.688252 10.856036 -12.768343 403 5703 + 5706 O 20.968072 -7.216860 -20.774585 402 5707 5708 + 5707 H 21.500932 -6.797898 -20.085206 403 5706 + 5708 H 21.506305 -7.089210 -21.583804 403 5706 + 5709 O -17.856365 -7.389334 -15.755928 402 5710 5711 + 5710 H -17.779099 -7.695814 -16.681187 403 5709 + 5711 H -17.454778 -6.543622 -15.646073 403 5709 + 5712 O -5.627767 -14.791821 -18.435422 402 5713 5714 + 5713 H -6.515410 -14.559760 -18.598093 403 5712 + 5714 H -5.318446 -15.164242 -19.264852 403 5712 + 5715 O 2.656405 -0.176950 -14.262302 402 5716 5717 + 5716 H 2.534896 -0.323212 -15.231477 403 5715 + 5717 H 3.447328 0.360291 -14.052654 403 5715 + 5718 O -26.736151 5.658653 0.855763 402 5719 5720 + 5719 H -25.877403 5.925247 0.635025 403 5718 + 5720 H -26.753355 4.689074 0.832778 403 5718 + 5721 O -8.652434 19.947608 -11.265190 402 5722 5723 + 5722 H -8.042720 19.800388 -11.992106 403 5721 + 5723 H -8.377500 20.767189 -10.778181 403 5721 + 5724 O 3.645772 -16.139913 -20.354692 402 5725 5726 + 5725 H 3.723824 -17.050742 -20.075710 403 5724 + 5726 H 3.139128 -16.051183 -21.192748 403 5724 + 5727 O 2.751218 19.096756 -12.278055 402 5728 5729 + 5728 H 3.589100 18.687062 -12.053483 403 5727 + 5729 H 2.907368 19.432717 -13.149786 403 5727 + 5730 O 11.895340 -6.132227 -17.645418 402 5731 5732 + 5731 H 12.272195 -6.990163 -17.614612 403 5730 + 5732 H 12.522919 -5.533948 -18.055179 403 5730 + 5733 O -2.649062 -11.532506 14.303842 402 5734 5735 + 5734 H -2.171418 -10.788172 14.727655 403 5733 + 5735 H -3.444108 -11.118837 14.016513 403 5733 + 5736 O 0.083662 -17.539610 -9.794080 402 5737 5738 + 5737 H 0.925887 -17.184555 -10.098352 403 5736 + 5738 H 0.064605 -17.230344 -8.891803 403 5736 + 5739 O -23.495878 -18.174487 -3.096140 402 5740 5741 + 5740 H -23.397765 -18.550076 -2.214521 403 5739 + 5741 H -23.991094 -18.883389 -3.445375 403 5739 + 5742 O -2.870665 -20.299637 3.495989 402 5743 5744 + 5743 H -2.025936 -20.316623 2.990845 403 5742 + 5744 H -2.887489 -19.480343 3.955086 403 5742 + 5745 O -23.237675 -7.968838 11.601659 402 5746 5747 + 5746 H -23.646989 -7.664067 12.406714 403 5745 + 5747 H -22.916603 -8.875240 11.799352 403 5745 + 5748 O 7.034857 17.671926 16.668461 402 5749 5750 + 5749 H 6.910916 17.021535 17.353714 403 5748 + 5750 H 7.298259 17.003434 15.931912 403 5748 + 5751 O -3.135847 -0.037211 -19.720235 402 5752 5753 + 5752 H -2.687204 -0.465713 -19.004635 403 5751 + 5753 H -3.883189 -0.596483 -19.830762 403 5751 + 5754 O -4.116282 9.933467 -15.972432 402 5755 5756 + 5755 H -4.382486 10.098448 -16.874934 403 5754 + 5756 H -3.276586 10.322141 -15.857331 403 5754 + 5757 O 9.001776 -2.037724 13.845066 402 5758 5759 + 5758 H 9.557925 -2.591779 14.385639 403 5757 + 5759 H 8.707709 -2.619965 13.087293 403 5757 + 5760 O -14.291358 -16.357375 0.136544 402 5761 5762 + 5761 H -14.623350 -16.546154 1.040530 403 5760 + 5762 H -13.337866 -16.185545 0.296606 403 5760 + 5763 O -8.307685 7.831957 -19.053875 402 5764 5765 + 5764 H -8.711204 7.493084 -18.235703 403 5763 + 5765 H -7.891044 8.658915 -18.717398 403 5763 + 5766 O 20.987462 12.906787 9.958048 402 5767 5768 + 5767 H 21.435148 12.305385 10.516693 403 5766 + 5768 H 21.330938 12.746483 9.110616 403 5766 + 5769 O 24.845310 0.514421 -13.306188 402 5770 5771 + 5770 H 24.715007 0.071792 -14.155230 403 5769 + 5771 H 25.044193 1.459969 -13.507156 403 5769 + 5772 O 9.940414 -19.224463 8.285169 402 5773 5774 + 5773 H 10.344194 -19.951358 7.833443 403 5772 + 5774 H 9.604359 -18.739761 7.480563 403 5772 + 5775 O -21.714063 9.254293 -18.084261 402 5776 5777 + 5776 H -21.666348 10.112348 -18.429358 403 5775 + 5777 H -20.881272 8.819770 -18.352190 403 5775 + 5778 O -7.191585 20.361392 -7.614111 402 5779 5780 + 5779 H -7.827974 20.909525 -8.157675 403 5778 + 5780 H -7.763622 19.592347 -7.497909 403 5778 + 5781 O 7.492921 13.497090 -0.820023 402 5782 5783 + 5782 H 7.499014 13.132441 -1.738485 403 5781 + 5783 H 8.327452 13.163732 -0.446731 403 5781 + 5784 O 9.961122 -18.299786 1.611143 402 5785 5786 + 5785 H 10.342232 -17.763270 0.893187 403 5784 + 5786 H 9.632169 -19.079234 1.161105 403 5784 + 5787 O 27.327916 14.167474 11.338410 402 5788 5789 + 5788 H 27.056501 14.797382 10.658423 403 5787 + 5789 H 26.973899 14.521349 12.195671 403 5787 + 5790 O 25.841592 -10.137073 17.886653 402 5791 5792 + 5791 H 26.549845 -10.744837 17.581594 403 5790 + 5792 H 26.136382 -9.297891 18.115726 403 5790 + 5793 O -26.484582 -7.570640 0.220618 402 5794 5795 + 5794 H -25.957551 -8.034324 0.885908 403 5793 + 5795 H -27.278989 -8.010770 0.092994 403 5793 + 5796 O -15.507886 -14.234567 -19.185887 402 5797 5798 + 5797 H -16.428047 -14.062315 -19.146906 403 5796 + 5798 H -15.141693 -13.449414 -19.706261 403 5796 + 5799 O 19.398920 -6.403154 -4.265132 402 5800 5801 + 5800 H 18.793855 -6.981438 -4.692992 403 5799 + 5801 H 20.078652 -7.004436 -3.840081 403 5799 + 5802 O -14.727762 -11.689529 10.739544 402 5803 5804 + 5803 H -15.118028 -11.677285 11.572442 403 5802 + 5804 H -15.363496 -11.211251 10.219303 403 5802 + 5805 O -10.164834 -13.429658 -5.821471 402 5806 5807 + 5806 H -10.898604 -13.964191 -5.277591 403 5805 + 5807 H -10.251403 -12.561784 -5.414595 403 5805 + 5808 O 17.930460 13.937399 -7.632026 402 5809 5810 + 5809 H 17.350338 14.712619 -7.873504 403 5808 + 5810 H 17.573194 13.449935 -6.914302 403 5808 + 5811 O 22.771963 11.789723 -15.991841 402 5812 5813 + 5812 H 22.407892 10.960756 -15.803516 403 5811 + 5813 H 23.728244 11.844157 -15.970852 403 5811 + 5814 O -27.022171 -9.935535 -1.551898 402 5815 5816 + 5815 H -26.648537 -9.163079 -1.958000 403 5814 + 5816 H -27.147733 -10.561946 -2.264608 403 5814 + 5817 O -25.271131 5.141749 -12.209736 402 5818 5819 + 5818 H -25.693109 5.472145 -11.442865 403 5817 + 5819 H -24.406635 4.695966 -11.908321 403 5817 + 5820 O 3.108121 -20.428019 2.767972 402 5821 5822 + 5821 H 2.883888 -19.516039 2.682074 403 5820 + 5822 H 2.524652 -20.911289 2.151071 403 5820 + 5823 O 13.645477 -11.248379 -2.168699 402 5824 5825 + 5824 H 14.495812 -10.982395 -1.919860 403 5823 + 5825 H 13.602764 -10.946321 -3.131943 403 5823 + 5826 O -15.802101 -18.826697 -13.646876 402 5827 5828 + 5827 H -15.629728 -18.718460 -14.634045 403 5826 + 5828 H -16.312937 -19.607220 -13.527508 403 5826 + 5829 O 16.994190 -18.162501 0.782551 402 5830 5831 + 5830 H 16.183512 -18.419341 1.225144 403 5829 + 5831 H 17.692383 -18.785460 1.112617 403 5829 + 5832 O 0.346250 -8.244458 13.026523 402 5833 5834 + 5833 H -0.056728 -8.794215 13.707605 403 5832 + 5834 H 0.196186 -7.378794 13.513605 403 5832 + 5835 O -5.876633 -1.250758 16.950150 402 5836 5837 + 5836 H -5.897139 -0.851532 16.048115 403 5835 + 5837 H -6.813697 -1.215101 17.207829 403 5835 + 5838 O -2.852852 -1.916845 15.179008 402 5839 5840 + 5839 H -3.068812 -1.830206 16.106831 403 5838 + 5840 H -3.640384 -2.245054 14.797756 403 5838 + 5841 O -25.940841 -4.816621 -4.070316 402 5842 5843 + 5842 H -25.207622 -5.264430 -3.620016 403 5841 + 5843 H -26.649933 -4.717697 -3.451686 403 5841 + 5844 O 4.874827 1.473886 -14.337797 402 5845 5846 + 5845 H 5.189548 1.046518 -15.146140 403 5844 + 5846 H 5.658759 1.677209 -13.804635 403 5844 + 5847 O -11.399492 -17.545168 -11.709535 402 5848 5849 + 5848 H -10.632696 -17.968067 -12.065761 403 5847 + 5849 H -11.990484 -18.281339 -11.463174 403 5847 + 5850 O -21.235393 3.531686 -18.981903 402 5851 5852 + 5851 H -20.811243 2.725219 -19.355158 403 5850 + 5852 H -21.330003 4.199180 -19.707403 403 5850 + 5853 O 19.884738 13.457886 -16.503712 402 5854 5855 + 5854 H 20.546443 14.081854 -16.252605 403 5853 + 5855 H 19.863325 12.725299 -15.889148 403 5853 + 5856 O -7.613490 -18.734979 -2.286157 402 5857 5858 + 5857 H -7.224353 -19.383742 -2.870642 403 5856 + 5858 H -7.258594 -17.884019 -2.571812 403 5856 + 5859 O 20.179247 18.669512 -9.520770 402 5860 5861 + 5860 H 19.745104 19.383705 -9.949059 403 5859 + 5861 H 21.106271 18.888549 -9.619590 403 5859 + 5862 O 0.469489 5.800556 -16.240608 402 5863 5864 + 5863 H 0.192512 6.630216 -16.696807 403 5862 + 5864 H 0.599388 6.155641 -15.380452 403 5862 + 5865 O 6.877961 19.550178 -9.988757 402 5866 5867 + 5866 H 6.368993 19.971864 -9.244013 403 5865 + 5867 H 6.518231 19.965222 -10.851986 403 5865 + 5868 O 6.720059 20.276251 -3.381777 402 5869 5870 + 5869 H 5.891426 20.783054 -3.333942 403 5868 + 5870 H 6.919774 20.067477 -2.473444 403 5868 + 5871 O 22.013148 -15.969229 12.266907 402 5872 5873 + 5872 H 21.416898 -16.484884 11.623216 403 5871 + 5873 H 22.857478 -16.358079 12.000305 403 5871 + 5874 O -15.694438 7.944675 2.647767 402 5875 5876 + 5875 H -15.370792 7.967212 3.559417 403 5874 + 5876 H -15.467715 7.066496 2.332465 403 5874 + 5877 O -25.016666 -19.872056 -7.507112 402 5878 5879 + 5878 H -24.041389 -19.998563 -7.476847 403 5877 + 5879 H -25.261819 -19.677629 -8.458935 403 5877 + 5880 O -17.404966 16.289559 0.378862 402 5881 5882 + 5881 H -17.816202 15.395796 0.469359 403 5880 + 5882 H -16.592061 16.078371 -0.128857 403 5880 + 5883 O 11.719854 13.896915 -20.007550 402 5884 5885 + 5884 H 11.762017 13.509054 -20.946443 403 5883 + 5885 H 11.730057 13.211150 -19.340581 403 5883 + 5886 O -21.635289 10.922735 -14.289364 402 5887 5888 + 5887 H -22.250180 11.585121 -14.648600 403 5886 + 5888 H -20.920683 10.786571 -14.961527 403 5886 + 5889 O -24.042065 -5.374879 10.098466 402 5890 5891 + 5890 H -23.939428 -5.512490 9.105496 403 5889 + 5891 H -23.970753 -6.321333 10.460122 403 5889 + 5892 O -9.411597 6.559490 -16.669992 402 5893 5894 + 5893 H -10.312323 6.551498 -16.403482 403 5892 + 5894 H -9.011995 5.640085 -16.634798 403 5892 + 5895 O 9.530893 -11.884062 12.046782 402 5896 5897 + 5896 H 9.879650 -11.398694 11.280896 403 5895 + 5897 H 9.261341 -11.231618 12.651989 403 5895 + 5898 O -1.911349 -16.933894 1.374617 402 5899 5900 + 5899 H -2.219904 -17.739022 1.023023 403 5898 + 5900 H -1.747381 -16.334388 0.676612 403 5898 + 5901 O 26.179381 -17.174136 0.502901 402 5902 5903 + 5902 H 25.703357 -17.150578 -0.364558 403 5901 + 5903 H 25.879759 -16.529513 1.122222 403 5901 + 5904 O 23.006008 2.418768 11.548952 402 5905 5906 + 5905 H 22.123244 2.196506 11.872833 403 5904 + 5906 H 22.916266 2.423276 10.570078 403 5904 + 5907 O -25.061378 12.895337 -10.920642 402 5908 5909 + 5908 H -24.236859 12.794849 -10.380539 403 5907 + 5909 H -24.844809 13.124176 -11.856801 403 5907 + 5910 O 24.065450 16.186345 -1.562209 402 5911 5912 + 5911 H 23.818077 16.816733 -0.921419 403 5910 + 5912 H 24.446065 16.798992 -2.179306 403 5910 + 5913 O 21.877525 -11.997066 12.743827 402 5914 5915 + 5914 H 21.110101 -12.307846 12.276099 403 5913 + 5915 H 21.795852 -11.028569 12.668947 403 5913 + 5916 O -9.770390 12.275988 6.625277 402 5917 5918 + 5917 H -9.540551 11.529014 6.118639 403 5916 + 5918 H -9.063347 12.943993 6.639152 403 5916 + 5919 O 7.590434 -16.518614 -3.885689 402 5920 5921 + 5920 H 8.245405 -16.780602 -4.602660 403 5919 + 5921 H 8.060783 -16.730529 -3.006396 403 5919 + 5922 O -8.819809 7.819937 16.686859 402 5923 5924 + 5923 H -8.459184 7.862962 15.781131 403 5922 + 5924 H -8.333215 7.208627 17.206742 403 5922 + 5925 O -0.018770 12.851916 7.726452 402 5926 5927 + 5926 H -0.018534 13.815629 7.654360 403 5925 + 5927 H -0.678950 12.568762 8.379340 403 5925 + 5928 O 26.935998 -2.260542 -4.734090 402 5929 5930 + 5929 H 27.692757 -2.309847 -5.350797 403 5928 + 5930 H 27.186636 -2.518573 -3.802021 403 5928 + 5931 O 27.034878 8.922183 -3.893061 402 5932 5933 + 5932 H 26.315953 9.520583 -3.776301 403 5931 + 5933 H 27.485194 9.316156 -4.684455 403 5931 + 5934 O 8.051349 7.651612 -11.998393 402 5935 5936 + 5935 H 8.628507 7.928025 -11.260450 403 5934 + 5936 H 7.748144 8.473350 -12.355271 403 5934 + 5937 O -27.116258 -14.053521 12.105107 402 5938 5939 + 5938 H -27.545532 -13.197780 12.384888 403 5937 + 5939 H -26.358772 -13.875946 11.579879 403 5937 + 5940 O 23.554783 -11.406323 -3.754207 402 5941 5942 + 5941 H 24.096179 -11.152033 -2.997418 403 5940 + 5942 H 23.941749 -11.074873 -4.532762 403 5940 + 5943 O -6.910654 -17.603975 17.334387 402 5944 5945 + 5944 H -7.702761 -17.167889 17.745512 403 5943 + 5945 H -6.836320 -17.171292 16.454588 403 5943 + 5946 O -16.492037 5.302939 -1.579501 402 5947 5948 + 5947 H -16.042514 4.646869 -2.112816 403 5946 + 5948 H -15.801804 6.017062 -1.587499 403 5946 + 5949 O -23.756350 3.926953 -8.179925 402 5950 5951 + 5950 H -23.195167 4.286584 -8.893370 403 5949 + 5951 H -23.460247 3.034235 -7.983373 403 5949 + 5952 O -13.747357 8.818643 -3.799589 402 5953 5954 + 5953 H -13.952688 8.414506 -2.934484 403 5952 + 5954 H -13.853214 9.757832 -3.600478 403 5952 + 5955 O -1.628128 -12.816264 -17.331527 402 5956 5957 + 5956 H -2.433523 -13.356344 -17.119883 403 5955 + 5957 H -2.044696 -11.950129 -17.560931 403 5955 + 5958 O -0.085635 15.544048 -1.201911 402 5959 5960 + 5959 H -0.000781 16.405004 -1.546695 403 5958 + 5960 H -0.971991 15.289121 -0.919162 403 5958 + 5961 O -8.590554 17.067218 -10.033341 402 5962 5963 + 5962 H -8.478641 17.979748 -10.381694 403 5961 + 5963 H -9.177179 16.660222 -10.710438 403 5961 + 5964 O -18.092032 -16.862277 -18.860686 402 5965 5966 + 5965 H -17.787112 -16.936281 -17.986509 403 5964 + 5966 H -18.687545 -17.567560 -19.061403 403 5964 + 5967 O 11.369215 4.413430 15.924887 402 5968 5969 + 5968 H 11.372520 3.624729 15.359827 403 5967 + 5969 H 11.705477 5.119414 15.321428 403 5967 + 5970 O 12.784492 7.071253 19.464041 402 5971 5972 + 5971 H 12.860418 6.279814 18.965525 403 5970 + 5972 H 12.277088 6.716268 20.219705 403 5970 + 5973 O 12.068135 -8.262908 17.552171 402 5974 5975 + 5974 H 11.944483 -7.791072 18.350772 403 5973 + 5975 H 12.525141 -9.091659 17.770424 403 5973 + 5976 O 10.241854 4.742923 2.559332 402 5977 5978 + 5977 H 9.423895 4.504759 2.987600 403 5976 + 5978 H 10.968724 4.120073 2.820528 403 5976 + 5979 O 4.587851 -5.032891 12.160556 402 5980 5981 + 5980 H 4.431505 -4.242508 12.621627 403 5979 + 5981 H 5.402359 -4.988575 11.647199 403 5979 + 5982 O -24.230874 -6.577818 -16.070853 402 5983 5984 + 5983 H -23.682020 -6.608606 -15.296098 403 5982 + 5984 H -25.097764 -7.040376 -15.909446 403 5982 + 5985 O 20.182613 7.158966 1.874949 402 5986 5987 + 5986 H 20.915498 6.541606 2.146531 403 5985 + 5987 H 20.710894 7.927513 1.477203 403 5985 + 5988 O 21.755390 6.896132 -12.917138 402 5989 5990 + 5989 H 22.076449 7.236600 -12.089303 403 5988 + 5990 H 22.525120 6.527089 -13.344666 403 5988 + 5991 O 6.877822 -4.771079 6.941634 402 5992 5993 + 5992 H 7.368474 -3.917167 6.794895 403 5991 + 5993 H 6.561555 -4.815923 7.876455 403 5991 + 5994 O -17.794941 18.359853 16.305117 402 5995 5996 + 5995 H -18.421394 18.650198 16.927781 403 5994 + 5996 H -17.650629 19.254815 15.811542 403 5994 + 5997 O -2.602624 -16.412046 -10.596632 402 5998 5999 + 5998 H -2.730413 -15.479270 -10.244360 403 5997 + 5999 H -1.636947 -16.665956 -10.610129 403 5997 + 6000 O 3.935143 -2.077202 16.379950 402 6001 6002 + 6001 H 3.116180 -2.074570 16.871393 403 6000 + 6002 H 4.258130 -3.011541 16.214763 403 6000 + 6003 O 26.054987 14.635245 18.309718 402 6004 6005 + 6004 H 27.012144 14.531484 18.422001 403 6003 + 6005 H 25.883129 15.612156 18.232382 403 6003 + 6006 O 22.186055 -2.285036 -18.276384 402 6007 6008 + 6007 H 22.575561 -1.490206 -18.592190 403 6006 + 6008 H 21.774977 -1.952262 -17.452519 403 6006 + 6009 O 5.982701 12.874655 -19.536076 402 6010 6011 + 6010 H 6.160786 13.198075 -20.428652 403 6009 + 6011 H 6.854019 12.668623 -19.180374 403 6009 + 6012 O -6.054158 -13.744402 -7.200732 402 6013 6014 + 6013 H -6.689102 -14.438760 -7.467162 403 6012 + 6014 H -5.241683 -14.218938 -7.253580 403 6012 + 6015 O 7.766648 -19.472206 -8.674412 402 6016 6017 + 6016 H 7.994143 -19.850740 -7.811770 403 6015 + 6017 H 7.159819 -20.051349 -9.144842 403 6015 + 6018 O -13.899693 -2.310609 11.719170 402 6019 6020 + 6019 H -14.293895 -1.540339 11.338780 403 6018 + 6020 H -13.136046 -1.840341 12.108102 403 6018 + 6021 O 26.880118 -3.988040 -2.564260 402 6022 6023 + 6022 H 27.141785 -3.912376 -1.619664 403 6021 + 6023 H 25.991507 -4.403119 -2.509330 403 6021 + 6024 O 16.831698 -0.370079 16.786168 402 6025 6026 + 6025 H 17.550555 0.178386 16.456695 403 6024 + 6026 H 17.096485 -0.465948 17.715552 403 6024 + 6027 O 19.019953 8.994801 17.672825 402 6028 6029 + 6028 H 18.825567 9.927341 17.839722 403 6027 + 6029 H 19.072225 8.455310 18.528449 403 6027 + 6030 O -23.890734 -17.531047 20.103131 402 6031 6032 + 6031 H -24.410048 -17.249588 20.880036 403 6030 + 6032 H -23.243461 -16.838233 19.952601 403 6030 + 6033 O 24.612082 6.311703 -14.314049 402 6034 6035 + 6034 H 24.685511 6.721117 -15.194578 403 6033 + 6035 H 24.456182 5.357259 -14.330432 403 6033 + 6036 O 11.630912 5.335794 8.212450 402 6037 6038 + 6037 H 10.744689 5.096999 8.355771 403 6036 + 6038 H 11.632399 6.142908 7.660144 403 6036 + 6039 O 16.482829 -7.676138 17.246704 402 6040 6041 + 6040 H 15.832973 -7.172968 16.764273 403 6039 + 6041 H 17.323015 -7.087522 17.068424 403 6039 + 6042 O -14.246850 -1.445493 8.521283 402 6043 6044 + 6043 H -14.965431 -1.234868 9.098827 403 6042 + 6044 H -14.565647 -2.243574 8.052945 403 6042 + 6045 O -12.243735 5.878745 14.287709 402 6046 6047 + 6046 H -12.931194 5.878071 14.927194 403 6045 + 6047 H -12.476832 5.118118 13.758795 403 6045 + 6048 O 14.365931 -20.845025 6.067181 402 6049 6050 + 6049 H 14.538057 -20.237448 6.808442 403 6048 + 6050 H 15.204917 -21.078698 5.761047 403 6048 + 6051 O 16.298718 -4.138023 18.121710 402 6052 6053 + 6052 H 15.424215 -3.680129 18.372722 403 6051 + 6053 H 16.684549 -4.205202 19.001012 403 6051 + 6054 O -14.198508 -14.194772 -14.794207 402 6055 6056 + 6055 H -13.444357 -14.590983 -14.343955 403 6054 + 6056 H -13.774495 -13.612371 -15.434882 403 6054 + 6057 O -10.030484 -15.925396 14.049869 402 6058 6059 + 6058 H -9.661016 -16.753356 13.643301 403 6057 + 6059 H -9.506338 -15.169357 13.752939 403 6057 + 6060 O 2.620657 -7.959507 -20.667278 402 6061 6062 + 6061 H 2.062110 -7.160386 -20.605865 403 6060 + 6062 H 2.138798 -8.553220 -21.271787 403 6060 + 6063 O 5.778060 4.436909 12.837835 402 6064 6065 + 6064 H 5.362329 3.721975 13.322111 403 6063 + 6065 H 5.808629 5.246373 13.380366 403 6063 + 6066 O 16.866472 5.920215 7.405820 402 6067 6068 + 6067 H 16.435352 5.086965 7.209575 403 6066 + 6068 H 16.163833 6.543037 7.470100 403 6066 + 6069 O 17.825944 -3.501642 -5.065436 402 6070 6071 + 6070 H 17.700510 -2.538825 -4.863235 403 6069 + 6071 H 18.532466 -3.602326 -5.702852 403 6069 + 6072 O -11.681593 20.597292 5.432499 402 6073 6074 + 6073 H -11.969564 21.510542 5.152859 403 6072 + 6074 H -12.562576 20.147115 5.430236 403 6072 + 6075 O 21.531845 -18.609965 -11.465553 402 6076 6077 + 6076 H 21.036885 -18.970566 -10.752405 403 6075 + 6077 H 20.911041 -18.252243 -12.167168 403 6075 + 6078 O 0.249866 -13.875504 -5.737561 402 6079 6080 + 6079 H 1.053242 -14.152812 -5.334020 403 6078 + 6080 H 0.540234 -13.078009 -6.238789 403 6078 + 6081 O 3.047539 17.051565 11.568254 402 6082 6083 + 6082 H 3.164343 17.306128 12.474589 403 6081 + 6083 H 2.524042 17.779795 11.213697 403 6081 + 6084 O 24.178795 -4.873391 -17.954897 402 6085 6086 + 6085 H 23.609912 -4.083965 -18.078992 403 6084 + 6086 H 24.401168 -4.923489 -16.992528 403 6084 + 6087 O 3.954939 20.513379 -14.418517 402 6088 6089 + 6088 H 3.581046 20.093104 -15.154897 403 6087 + 6089 H 3.811800 21.468596 -14.662255 403 6087 + 6090 O -0.149556 2.777227 -12.291758 402 6091 6092 + 6091 H -0.121223 2.435369 -11.351012 403 6090 + 6092 H 0.596183 3.441893 -12.318897 403 6090 + 6093 O 27.193112 8.418341 -10.172198 402 6094 6095 + 6094 H 26.787164 8.259494 -11.042944 403 6093 + 6095 H 27.410726 9.433106 -10.260356 403 6093 + 6096 O -24.022975 1.655208 -11.524687 402 6097 6098 + 6097 H -24.291048 0.824835 -11.888466 403 6096 + 6098 H -24.881489 1.940641 -11.171341 403 6096 + 6099 O 26.405280 -5.462847 -5.065504 402 6100 6101 + 6100 H 26.209462 -6.029181 -5.803215 403 6099 + 6101 H 27.373218 -5.317034 -5.077630 403 6099 + 6102 O -3.690721 10.045789 -20.208648 402 6103 6104 + 6103 H -4.248266 9.317998 -19.851069 403 6102 + 6104 H -2.834866 9.590938 -20.465215 403 6102 + 6105 O -2.559171 12.379195 -18.651596 402 6106 6107 + 6106 H -3.295406 13.039384 -18.601178 403 6105 + 6107 H -2.957289 11.575659 -18.948915 403 6105 + 6108 O 9.997514 -3.540058 20.611729 402 6109 6110 + 6109 H 9.428623 -3.673422 21.365363 403 6108 + 6110 H 10.919581 -3.718379 20.892643 403 6108 + 6111 O 22.711145 -8.644902 0.632604 402 6112 6113 + 6112 H 23.670226 -8.511619 0.628432 403 6111 + 6113 H 22.493868 -9.498519 0.275412 403 6111 + 6114 O 14.085903 -1.038370 -16.414394 402 6115 6116 + 6115 H 14.059869 -1.196217 -15.467296 403 6114 + 6116 H 13.262318 -1.459953 -16.715075 403 6114 + 6117 O -12.216643 15.094727 14.953780 402 6118 6119 + 6118 H -11.931679 15.769402 14.281719 403 6117 + 6119 H -13.149517 15.224147 15.123844 403 6117 + 6120 O -24.757277 7.231003 8.542276 402 6121 6122 + 6121 H -24.784189 8.210199 8.450823 403 6120 + 6122 H -24.549551 6.922193 9.397707 403 6120 + 6123 O 3.372929 19.847026 -0.606151 402 6124 6125 + 6124 H 3.191569 19.283633 -1.369340 403 6123 + 6125 H 4.347642 20.010416 -0.683022 403 6123 + 6126 O 8.872330 -16.761760 17.202410 402 6127 6128 + 6127 H 8.996558 -17.151460 16.293393 403 6126 + 6128 H 9.700285 -17.024144 17.621618 403 6126 + 6129 O 9.343569 14.953908 -19.877613 402 6130 6131 + 6130 H 9.005091 14.803515 -18.977870 403 6129 + 6131 H 10.168474 14.477496 -19.931351 403 6129 + 6132 O 2.034725 4.776928 20.854933 402 6133 6134 + 6133 H 2.700859 5.449702 20.919206 403 6132 + 6134 H 1.289075 5.153942 21.314556 403 6132 + 6135 O 18.285982 7.046313 3.854888 402 6136 6137 + 6136 H 18.754091 7.109170 3.047358 403 6135 + 6137 H 18.852898 6.489134 4.447893 403 6135 + 6138 O 17.000427 19.166068 19.844454 402 6139 6140 + 6139 H 17.780774 18.891038 19.347291 403 6138 + 6140 H 16.338665 18.528198 19.533743 403 6138 + 6141 O 4.309924 6.553220 -20.552969 402 6142 6143 + 6142 H 4.375422 6.917713 -21.455723 403 6141 + 6143 H 5.249758 6.290930 -20.364274 403 6141 + 6144 O 20.777753 -4.985339 -6.248152 402 6145 6146 + 6145 H 20.286399 -4.821264 -7.053768 403 6144 + 6146 H 20.234568 -5.537952 -5.671124 403 6144 + 6147 O 4.730675 15.020276 -10.674086 402 6148 6149 + 6148 H 4.376943 14.834207 -9.767214 403 6147 + 6149 H 4.726770 15.973286 -10.733237 403 6147 + 6150 O 2.355355 1.234033 17.572616 402 6151 6152 + 6151 H 3.034023 1.365267 16.849468 403 6150 + 6152 H 1.929729 2.103871 17.645246 403 6150 + 6153 O -20.364763 -10.341423 19.798444 402 6154 6155 + 6154 H -20.097141 -9.967826 18.943902 403 6153 + 6155 H -20.518570 -9.582890 20.375779 403 6153 + 6156 O 24.191317 -20.301143 13.503559 402 6157 6158 + 6157 H 25.075667 -20.080336 13.914227 403 6156 + 6158 H 23.551864 -19.853712 14.034970 403 6156 + 6159 O -17.771965 -0.812840 5.691659 402 6160 6161 + 6160 H -17.110001 -0.172585 5.922995 403 6159 + 6161 H -18.609271 -0.533119 5.998788 403 6159 + 6162 O 8.428411 7.992467 20.234546 402 6163 6164 + 6163 H 9.349683 8.062329 20.534745 403 6162 + 6164 H 7.930578 8.665863 20.632958 403 6162 + 6165 O 14.933965 18.875827 -5.159997 402 6166 6167 + 6166 H 14.094884 19.194527 -5.500018 403 6165 + 6167 H 15.603425 19.608364 -5.196749 403 6165 + 6168 O -11.010909 -1.265131 18.652423 402 6169 6170 + 6169 H -11.027649 -1.155636 17.705218 403 6168 + 6170 H -10.091875 -1.091225 18.938417 403 6168 + 6171 O -21.191413 -9.651017 -4.562795 402 6172 6173 + 6172 H -20.962638 -9.680538 -5.508642 403 6171 + 6173 H -20.795476 -10.416878 -4.182448 403 6171 + 6174 O 5.099725 -12.626597 -17.884817 402 6175 6176 + 6175 H 5.666927 -12.400935 -17.105607 403 6174 + 6176 H 4.764175 -11.785457 -18.184293 403 6174 + 6177 O -21.388510 -5.492100 10.971049 402 6178 6179 + 6178 H -22.216480 -5.626371 10.534286 403 6177 + 6179 H -21.551676 -5.367629 11.909886 403 6177 + 6180 O -26.689928 -8.293398 13.111418 402 6181 6182 + 6181 H -27.003954 -8.182450 12.219010 403 6180 + 6182 H -26.900928 -9.235390 13.263182 403 6180 + 6183 O 6.162303 19.062401 -17.622686 402 6184 6185 + 6184 H 5.955026 19.807434 -17.095725 403 6183 + 6185 H 6.287880 18.311383 -17.062421 403 6183 + 6186 O -26.568944 19.936247 1.863051 402 6187 6188 + 6187 H -26.429552 19.451776 1.050937 403 6186 + 6188 H -25.730651 20.069282 2.308590 403 6186 + 6189 O -12.939452 -17.938569 9.558916 402 6190 6191 + 6190 H -12.598970 -18.093496 10.439491 403 6189 + 6191 H -13.201371 -18.755858 9.152488 403 6189 + 6192 O -11.464685 7.314998 -14.468616 402 6193 6194 + 6193 H -12.254067 7.075040 -13.971198 403 6192 + 6194 H -11.784844 7.883355 -15.166065 403 6192 + 6195 O 20.495565 -8.915532 9.256247 402 6196 6197 + 6196 H 19.761356 -9.177749 9.963841 403 6195 + 6197 H 20.333767 -7.961456 9.244216 403 6195 + 6198 O -16.958223 -6.637117 15.942724 402 6199 6200 + 6199 H -17.590511 -6.925764 15.256778 403 6198 + 6200 H -17.006530 -7.309307 16.639627 403 6198 + 6201 O -7.465242 20.880802 3.955458 402 6202 6203 + 6202 H -6.906639 21.395406 3.368693 403 6201 + 6203 H -7.384772 21.435308 4.777200 403 6201 + 6204 O 10.987484 -10.220761 -0.486092 402 6205 6206 + 6205 H 11.657995 -10.039232 -1.157052 403 6204 + 6206 H 10.134305 -10.217278 -0.922065 403 6204 + 6207 O -11.745045 12.656305 2.561380 402 6208 6209 + 6208 H -12.067404 12.975187 3.387647 403 6207 + 6209 H -11.009457 12.085090 2.865904 403 6207 + 6210 O -5.579572 -16.497607 -20.750701 402 6211 6212 + 6211 H -4.847773 -16.621590 -21.371280 403 6210 + 6212 H -6.034567 -17.358476 -20.680344 403 6210 + 6213 O 1.964841 -7.772342 -15.446535 402 6214 6215 + 6214 H 2.789953 -8.261174 -15.222416 403 6213 + 6215 H 1.224980 -8.401255 -15.497885 403 6213 + 6216 O 17.133687 20.836195 -5.235713 402 6217 6218 + 6217 H 16.963395 21.728366 -4.832203 403 6216 + 6218 H 18.061664 20.710791 -5.306008 403 6216 + 6219 O -18.390780 10.973515 3.704388 402 6220 6221 + 6220 H -19.253132 11.409402 3.769882 403 6219 + 6221 H -18.035350 10.771168 4.577357 403 6219 + 6222 O 14.221292 20.673222 -19.936970 402 6223 6224 + 6223 H 13.920637 20.243897 -20.741067 403 6222 + 6224 H 14.685112 21.462779 -20.332088 403 6222 + 6225 O -21.084831 12.253935 9.565359 402 6226 6227 + 6226 H -20.600168 11.482007 9.886149 403 6225 + 6227 H -21.728096 12.542158 10.140605 403 6225 + 6228 O 21.807475 -0.416214 2.152466 402 6229 6230 + 6229 H 22.039987 -0.306167 1.206900 403 6228 + 6230 H 22.400722 -1.068057 2.516791 403 6228 + 6231 O 20.924050 10.441338 14.208356 402 6232 6233 + 6232 H 21.615541 10.869208 14.797933 403 6231 + 6233 H 20.771960 9.540413 14.573568 403 6231 + 6234 O 6.259921 4.454937 -17.265429 402 6235 6236 + 6235 H 6.706330 4.203652 -18.064753 403 6234 + 6236 H 5.711163 3.710753 -17.001578 403 6234 + 6237 O -4.214022 14.596706 -18.431597 402 6238 6239 + 6238 H -3.688756 15.025866 -17.718188 403 6237 + 6239 H -5.088033 14.473133 -18.084790 403 6237 + 6240 O -2.199419 13.906578 9.672426 402 6241 6242 + 6241 H -2.129396 13.038932 9.992785 403 6240 + 6242 H -3.120153 14.058476 9.477073 403 6240 + 6243 O 9.044748 2.046702 -11.991573 402 6244 6245 + 6244 H 9.465655 2.820071 -11.709794 403 6243 + 6245 H 8.080161 2.265383 -12.092250 403 6243 + 6246 O 7.143894 -11.920235 -15.669336 402 6247 6248 + 6247 H 6.531119 -11.505986 -15.060545 403 6246 + 6248 H 7.414267 -12.765754 -15.195832 403 6246 + 6249 O -5.826228 -0.168688 14.337506 402 6250 6251 + 6250 H -5.465882 -0.527232 13.513436 403 6249 + 6251 H -5.608854 0.802946 14.323569 403 6249 + 6252 O 5.648885 3.826675 19.190577 402 6253 6254 + 6253 H 5.186784 3.361795 19.925791 403 6252 + 6254 H 5.056212 3.823989 18.450900 403 6252 + 6255 O 9.326815 -6.082614 -17.012500 402 6256 6257 + 6256 H 10.201835 -6.094812 -17.433769 403 6255 + 6257 H 9.461714 -5.493002 -16.251384 403 6255 + 6258 O -1.961522 -12.154184 11.549933 402 6259 6260 + 6259 H -1.624684 -11.469274 10.968619 403 6258 + 6260 H -2.192863 -11.701664 12.378278 403 6258 + 6261 O 22.610380 9.966271 5.674665 402 6262 6263 + 6262 H 23.383558 10.326639 6.158091 403 6261 + 6263 H 22.639822 10.376867 4.833334 403 6261 + 6264 O -15.460748 19.613439 2.679694 402 6265 6266 + 6265 H -16.411896 19.506793 2.586178 403 6264 + 6266 H -14.953260 19.393944 1.878689 403 6264 + 6267 O -9.915773 -6.329847 7.803991 402 6268 6269 + 6268 H -9.882720 -5.651785 8.461110 403 6267 + 6269 H -10.460430 -6.991760 8.214687 403 6267 + 6270 O -25.207118 14.245870 9.965310 402 6271 6272 + 6271 H -24.983683 14.155643 9.024696 403 6270 + 6272 H -26.142233 13.940881 10.004034 403 6270 + 6273 O -25.736790 -11.761067 -20.022820 402 6274 6275 + 6274 H -25.863929 -11.074881 -20.678750 403 6273 + 6275 H -24.932339 -12.237137 -20.159436 403 6273 + 6276 O 11.102836 18.814945 6.564463 402 6277 6278 + 6277 H 11.289797 19.730591 6.307298 403 6276 + 6278 H 11.992226 18.441595 6.571960 403 6276 + 6279 O 13.403000 -2.765436 13.474813 402 6280 6281 + 6280 H 13.769730 -2.059344 13.993878 403 6279 + 6281 H 12.629241 -3.051764 13.938568 403 6279 + 6282 O -4.846771 12.989332 0.138872 402 6283 6284 + 6283 H -5.140341 12.692091 -0.669471 403 6282 + 6284 H -4.237694 12.323085 0.503203 403 6282 + 6285 O -7.158804 -10.565376 -14.125410 402 6286 6287 + 6286 H -7.106658 -9.969989 -13.387772 403 6285 + 6287 H -8.014522 -10.262139 -14.505555 403 6285 + 6288 O -27.281285 1.637807 7.500082 402 6289 6290 + 6289 H -28.034365 1.595491 8.055974 403 6288 + 6290 H -27.473389 0.963037 6.821339 403 6288 + 6291 O -0.097834 20.799965 16.033059 402 6292 6293 + 6292 H -0.061833 20.955427 16.971561 403 6291 + 6293 H 0.211633 19.849506 15.947964 403 6291 + 6294 O -17.560941 -8.904350 -7.470152 402 6295 6296 + 6295 H -17.692194 -9.827361 -7.296744 403 6294 + 6296 H -18.413628 -8.634527 -7.892701 403 6294 + 6297 O 19.510410 -2.135779 6.750602 402 6298 6299 + 6298 H 19.129310 -2.691827 6.012246 403 6297 + 6299 H 19.916248 -2.816246 7.354253 403 6297 + 6300 O -22.550074 2.726993 8.069055 402 6301 6302 + 6301 H -22.055287 3.149406 8.816420 403 6300 + 6302 H -23.436863 2.498421 8.376578 403 6300 + 6303 O 12.975725 16.091516 4.066177 402 6304 6305 + 6304 H 12.574447 15.652668 4.834328 403 6303 + 6305 H 13.351330 15.347325 3.556206 403 6303 + 6306 O 4.646769 -11.986650 5.429828 402 6307 6308 + 6307 H 4.999571 -11.714192 4.521067 403 6306 + 6308 H 3.860805 -12.541717 5.180051 403 6306 + 6309 O -25.235875 -9.797804 -17.843826 402 6310 6311 + 6310 H -24.333006 -9.678887 -17.478651 403 6309 + 6311 H -25.154219 -10.357082 -18.609102 403 6309 + 6312 O 11.868872 -11.212949 -8.438903 402 6313 6314 + 6313 H 11.896093 -12.062241 -7.862109 403 6312 + 6314 H 12.728803 -11.139741 -8.855401 403 6312 + 6315 O 17.367617 -1.497743 -14.604934 402 6316 6317 + 6316 H 17.309530 -0.538237 -14.454327 403 6315 + 6317 H 16.651273 -1.922704 -14.219436 403 6315 + 6318 O 8.667339 4.899012 8.930629 402 6319 6320 + 6319 H 8.353473 5.408040 8.182722 403 6318 + 6320 H 8.163336 5.229248 9.676915 403 6318 + 6321 O -15.429574 17.683315 9.572006 402 6322 6323 + 6322 H -15.724205 17.604776 10.464011 403 6321 + 6323 H -15.265015 16.716829 9.310192 403 6321 + 6324 O -23.494483 -11.734522 -13.358407 402 6325 6326 + 6325 H -22.637486 -11.515244 -13.732205 403 6324 + 6326 H -23.249990 -12.537148 -12.866248 403 6324 + 6327 O -2.321548 19.267216 -1.843679 402 6328 6329 + 6328 H -1.979401 18.732155 -2.589027 403 6327 + 6329 H -1.922284 20.138548 -2.014462 403 6327 + 6330 O 3.241639 7.816664 9.859978 402 6331 6332 + 6331 H 3.830186 8.534324 10.230363 403 6330 + 6332 H 3.848530 7.292787 9.307399 403 6330 + 6333 O 23.128975 -6.691964 -6.315464 402 6334 6335 + 6334 H 23.778438 -6.570891 -6.974137 403 6333 + 6335 H 22.501465 -5.970161 -6.490266 403 6333 + 6336 O 19.510034 14.065263 20.822119 402 6337 6338 + 6337 H 19.858660 14.498532 21.601080 403 6336 + 6338 H 18.527411 14.085196 20.963708 403 6336 + 6339 O 23.620502 15.862352 -17.889270 402 6340 6341 + 6340 H 23.702347 16.808368 -17.871251 403 6339 + 6341 H 24.460420 15.474942 -18.227702 403 6339 + 6342 O 0.280487 -11.413982 6.100970 402 6343 6344 + 6343 H -0.020983 -11.734838 5.286550 403 6342 + 6344 H -0.533188 -11.093828 6.515383 403 6342 + 6345 O 4.888182 13.212978 -12.788937 402 6346 6347 + 6346 H 4.811212 13.849406 -12.115682 403 6345 + 6347 H 5.658749 13.451904 -13.292659 403 6345 + 6348 O -0.778683 -14.633842 19.192088 402 6349 6350 + 6349 H 0.068746 -14.541913 19.608269 403 6348 + 6350 H -0.746217 -14.102331 18.428497 403 6348 + 6351 O 13.914707 -6.162346 9.195387 402 6352 6353 + 6352 H 13.649776 -6.881207 8.533412 403 6351 + 6353 H 13.921705 -5.396594 8.630327 403 6351 + 6354 O 5.918950 -10.003796 18.819888 402 6355 6356 + 6355 H 5.593681 -9.082358 18.773797 403 6354 + 6356 H 6.335696 -10.082856 17.966116 403 6354 + 6357 O 5.800793 -13.047074 9.485819 402 6358 6359 + 6358 H 5.149198 -12.578404 10.015587 403 6357 + 6359 H 5.268076 -13.674415 8.965513 403 6357 + 6360 O -14.871416 6.062880 9.725201 402 6361 6362 + 6361 H -14.929573 6.618371 8.917863 403 6360 + 6362 H -14.144906 5.419527 9.466087 403 6360 + 6363 O 20.324875 13.466462 -0.499122 402 6364 6365 + 6364 H 21.247971 13.704707 -0.183814 403 6363 + 6365 H 20.407782 13.624960 -1.484430 403 6363 + 6366 O 14.435517 -20.166926 -14.557910 402 6367 6368 + 6367 H 15.392894 -20.186163 -14.367445 403 6366 + 6368 H 14.408577 -20.346774 -15.497151 403 6366 + 6369 O -16.234833 1.803853 -11.857132 402 6370 6371 + 6370 H -16.542525 1.963315 -10.988159 403 6369 + 6371 H -16.125965 2.663685 -12.253266 403 6369 + 6372 O 5.603802 10.853652 14.181232 402 6373 6374 + 6373 H 4.967001 11.570744 14.103506 403 6372 + 6374 H 5.112428 10.099067 14.600012 403 6372 + 6375 O -9.571538 -5.196535 -13.987191 402 6376 6377 + 6376 H -8.921300 -5.201306 -13.287766 403 6375 + 6377 H -9.272779 -4.631556 -14.762861 403 6375 + 6378 O -0.910109 -6.872259 20.397408 402 6379 6380 + 6379 H -1.142400 -7.798393 20.536047 403 6378 + 6380 H -1.036778 -6.702293 19.444051 403 6378 + 6381 O -12.922858 14.220990 -13.435094 402 6382 6383 + 6382 H -13.045814 13.904342 -12.512925 403 6381 + 6383 H -11.991363 14.443415 -13.600018 403 6381 + 6384 O -20.145038 7.688023 -15.204652 402 6385 6386 + 6385 H -19.285409 7.391425 -14.875634 403 6384 + 6386 H -20.496640 7.059764 -15.839841 403 6384 + 6387 O -5.329489 -11.195881 -18.058590 402 6388 6389 + 6388 H -4.529646 -10.716556 -18.053482 403 6387 + 6389 H -5.175370 -11.944129 -17.502821 403 6387 + 6390 O -4.095176 7.801479 14.167088 402 6391 6392 + 6391 H -4.165281 6.967753 13.710500 403 6390 + 6392 H -4.424466 8.518942 13.657209 403 6390 + 6393 O 4.268934 -2.427400 -14.058821 402 6394 6395 + 6394 H 3.658313 -1.685938 -14.058738 403 6393 + 6395 H 4.003282 -2.951965 -14.808726 403 6393 + 6396 O 8.751768 -9.075907 8.222826 402 6397 6398 + 6397 H 8.238298 -9.781595 7.726938 403 6396 + 6398 H 8.832788 -8.372787 7.566934 403 6396 + 6399 O -2.030633 -16.421805 9.382972 402 6400 6401 + 6400 H -3.001825 -16.480774 9.651189 403 6399 + 6401 H -1.831960 -15.434055 9.498271 403 6399 + 6402 O -25.423917 -5.184358 19.460275 402 6403 6404 + 6403 H -25.411355 -4.513854 18.790648 403 6402 + 6404 H -24.533549 -5.279059 19.872583 403 6402 + 6405 O -2.666399 -5.808727 -16.793146 402 6406 6407 + 6406 H -2.024398 -6.172832 -16.200012 403 6405 + 6407 H -3.330516 -5.483909 -16.238573 403 6405 + 6408 O 21.181989 15.710253 -10.722839 402 6409 6410 + 6409 H 20.653330 16.200547 -11.388544 403 6408 + 6410 H 20.518018 15.224350 -10.216895 403 6408 + 6411 O 10.656923 -19.476259 -2.456922 402 6412 6413 + 6412 H 10.832717 -19.488093 -3.445481 403 6411 + 6413 H 10.250558 -20.351142 -2.291869 403 6411 + 6414 O 25.111320 11.672906 -19.193595 402 6415 6416 + 6415 H 25.138171 11.478665 -18.282125 403 6414 + 6416 H 24.182357 11.511761 -19.351363 403 6414 + 6417 O -23.200367 10.470264 2.902172 402 6418 6419 + 6418 H -22.375402 10.749923 3.283481 403 6417 + 6419 H -23.150590 10.446395 1.924180 403 6417 + 6420 O -2.505105 -5.473938 -19.743686 402 6421 6422 + 6421 H -1.843966 -5.849443 -20.362634 403 6420 + 6422 H -2.920619 -6.270770 -19.289080 403 6420 + 6423 O -8.780745 -1.877077 -14.922296 402 6424 6425 + 6424 H -8.514938 -2.635843 -15.397360 403 6423 + 6425 H -9.085199 -1.200825 -15.532893 403 6423 + 6426 O 24.088505 -5.188189 -2.808937 402 6427 6428 + 6427 H 23.599921 -6.002172 -2.943267 403 6426 + 6428 H 23.455922 -4.686553 -2.320873 403 6426 + 6429 O 22.351359 7.425470 -10.093129 402 6430 6431 + 6430 H 22.221254 8.332765 -9.845260 403 6429 + 6431 H 21.646534 6.920728 -9.570168 403 6429 + 6432 O 14.350169 18.359669 4.097284 402 6433 6434 + 6433 H 14.109937 17.421914 3.931070 403 6432 + 6434 H 14.072554 18.536427 5.036536 403 6432 + 6435 O 27.317468 -3.450042 0.124188 402 6436 6437 + 6436 H 26.939527 -2.629423 0.463932 403 6435 + 6437 H 28.260772 -3.496973 0.454380 403 6435 + 6438 O 18.669483 0.162292 12.223874 402 6439 6440 + 6439 H 17.730334 0.262878 12.571330 403 6438 + 6440 H 18.943346 -0.589794 12.749858 403 6438 + 6441 O -5.566955 -16.930775 -16.571789 402 6442 6443 + 6442 H -6.441648 -17.209772 -16.309110 403 6441 + 6443 H -5.639154 -16.106816 -17.074766 403 6441 + 6444 O -2.921475 20.285760 15.744633 402 6445 6446 + 6445 H -2.016920 20.514916 15.782961 403 6444 + 6446 H -3.245126 20.259651 16.667577 403 6444 + 6447 O -5.332369 15.647169 -3.415792 402 6448 6449 + 6448 H -5.780073 16.016536 -4.186943 403 6447 + 6449 H -5.479798 16.195769 -2.646722 403 6447 + 6450 O 15.921074 -18.186514 13.419302 402 6451 6452 + 6451 H 16.506049 -18.207521 14.214727 403 6450 + 6452 H 15.521744 -17.337545 13.281325 403 6450 + 6453 O 14.356618 -12.746498 14.307435 402 6454 6455 + 6454 H 14.126271 -12.290732 13.456316 403 6453 + 6455 H 14.125424 -12.072615 14.973510 403 6453 + 6456 O -24.563586 19.861169 16.888289 402 6457 6458 + 6457 H -24.271423 19.518156 17.745286 403 6456 + 6458 H -25.132062 20.568890 17.055680 403 6456 + 6459 O 21.313706 -20.874831 -18.789259 402 6460 6461 + 6460 H 22.217533 -20.760960 -18.415032 403 6459 + 6461 H 20.727813 -20.829114 -18.018243 403 6459 + 6462 O -22.635680 0.425745 -16.655779 402 6463 6464 + 6463 H -22.761860 0.339162 -17.612196 403 6462 + 6464 H -23.459506 0.792307 -16.373813 403 6462 + 6465 O 26.144043 -9.495490 -14.387597 402 6466 6467 + 6466 H 25.579221 -8.746398 -14.601070 403 6465 + 6467 H 25.873666 -10.165392 -15.002042 403 6465 + 6468 O -23.297595 -18.906211 -0.461159 402 6469 6470 + 6469 H -22.408325 -19.188074 -0.167323 403 6468 + 6470 H -23.911286 -19.189688 0.234806 403 6468 + 6471 O -0.622548 17.838288 10.712907 402 6472 6473 + 6472 H -1.439971 18.247686 10.442799 403 6471 + 6473 H -0.378140 17.187351 10.096413 403 6471 + 6474 O 15.411072 -13.353252 8.623995 402 6475 6476 + 6475 H 14.707363 -12.901715 8.076042 403 6474 + 6476 H 15.905287 -13.988830 8.076423 403 6474 + 6477 O 21.923001 -19.583331 -14.240322 402 6478 6479 + 6478 H 22.075731 -18.649005 -14.150919 403 6477 + 6479 H 22.015325 -19.897017 -13.337089 403 6477 + 6480 O 2.935997 17.036657 8.133011 402 6481 6482 + 6481 H 3.807044 17.141662 7.698882 403 6480 + 6482 H 2.908723 17.824640 8.654298 403 6480 + 6483 O -27.412013 18.278336 3.981062 402 6484 6485 + 6484 H -28.006219 18.986550 3.874615 403 6483 + 6485 H -26.604657 18.625220 3.564949 403 6483 + 6486 O 24.767119 -17.376689 8.467100 402 6487 6488 + 6487 H 25.034677 -18.274073 8.247745 403 6486 + 6488 H 24.572504 -17.372764 9.407309 403 6486 + 6489 O -13.003243 -11.441578 13.780080 402 6490 6491 + 6490 H -12.042782 -11.458495 13.652747 403 6489 + 6491 H -13.148063 -12.394708 13.704955 403 6489 + 6492 O 15.688282 -7.232516 -0.339939 402 6493 6494 + 6493 H 16.449877 -6.627843 -0.361901 403 6492 + 6494 H 14.991365 -6.661690 -0.041038 403 6492 + 6495 O 11.147257 19.763552 -1.319428 402 6496 6497 + 6496 H 12.091516 19.826512 -1.542128 403 6495 + 6497 H 10.791166 18.908813 -1.667004 403 6495 + 6498 O -7.494481 -7.378915 14.293630 402 6499 6500 + 6499 H -8.055772 -6.598314 14.231678 403 6498 + 6500 H -7.492239 -7.996336 13.497808 403 6498 + 6501 O 12.398150 -14.923360 -13.423871 402 6502 6503 + 6502 H 13.226011 -15.063936 -12.905542 403 6501 + 6503 H 12.384263 -15.811229 -13.930308 403 6501 + 6504 O -27.354781 16.207013 -2.080282 402 6505 6506 + 6505 H -27.773374 15.417476 -1.753252 403 6504 + 6506 H -26.769089 15.853853 -2.726016 403 6504 + 6507 O -21.588756 -10.691290 -14.634202 402 6508 6509 + 6508 H -20.864974 -10.142417 -14.313329 403 6507 + 6509 H -22.092217 -10.206931 -15.343402 403 6507 + 6510 O -15.891662 -2.331448 -9.986612 402 6511 6512 + 6511 H -16.165526 -2.271915 -10.920230 403 6510 + 6512 H -16.438270 -1.699757 -9.489314 403 6510 + 6513 O 22.887456 16.566156 19.955577 402 6514 6515 + 6514 H 23.271415 15.746747 20.347130 403 6513 + 6515 H 22.072508 16.181382 19.562781 403 6513 + 6516 O 23.972546 -20.036642 10.589623 402 6517 6518 + 6517 H 22.980691 -20.033626 10.504814 403 6516 + 6518 H 24.188289 -20.743981 11.184377 403 6516 + 6519 O -14.810897 -16.471565 2.793852 402 6520 6521 + 6520 H -14.868506 -16.959673 3.603780 403 6519 + 6521 H -15.147942 -15.567810 2.891865 403 6519 + 6522 O 15.022183 19.763656 9.414504 402 6523 6524 + 6523 H 14.727721 20.725814 9.294400 403 6522 + 6524 H 14.198126 19.316744 9.803487 403 6522 + 6525 O 7.167340 -17.033861 0.122492 402 6526 6527 + 6526 H 7.922624 -17.174527 -0.428152 403 6525 + 6527 H 7.373246 -16.583291 0.937782 403 6525 + 6528 O -11.594968 10.896089 -10.580500 402 6529 6530 + 6529 H -11.121081 11.033261 -11.432170 403 6528 + 6530 H -10.865005 11.002637 -9.903313 403 6528 + 6531 O 13.844708 19.069913 -14.047834 402 6532 6533 + 6532 H 12.983337 18.716343 -13.811534 403 6531 + 6533 H 13.787413 20.053839 -14.066463 403 6531 + 6534 O 3.487281 19.589235 9.612730 402 6535 6536 + 6535 H 2.698355 20.090461 9.969632 403 6534 + 6536 H 4.250101 19.910242 10.053781 403 6534 + 6537 O -3.973097 19.421213 7.719503 402 6538 6539 + 6538 H -4.241991 20.257528 7.213642 403 6537 + 6539 H -3.132076 19.220373 7.212628 403 6537 + 6540 O -12.775076 2.609100 10.411237 402 6541 6542 + 6541 H -11.827718 2.459042 10.644395 403 6540 + 6542 H -12.804655 2.331119 9.464699 403 6540 + 6543 O -24.197168 6.439006 -6.711367 402 6544 6545 + 6544 H -25.160507 6.393035 -6.538446 403 6543 + 6545 H -23.942233 5.506445 -6.828627 403 6543 + 6546 O -2.117774 -4.949968 18.594717 402 6547 6548 + 6547 H -2.924336 -5.465197 18.506055 403 6546 + 6548 H -2.296534 -4.057750 18.222583 403 6546 + 6549 O -10.788206 6.295992 1.048829 402 6550 6551 + 6550 H -10.485607 7.066710 1.589289 403 6549 + 6551 H -10.038032 6.105261 0.487985 403 6549 + 6552 O -12.857377 -3.305264 -10.725085 402 6553 6554 + 6553 H -13.206640 -2.923560 -11.499351 403 6552 + 6554 H -13.499606 -3.077602 -10.047332 403 6552 + 6555 O -11.268130 12.801261 9.055194 402 6556 6557 + 6556 H -11.672865 13.689974 8.877182 403 6555 + 6557 H -11.032167 12.415049 8.150138 403 6555 + 6558 O 13.406197 0.438838 6.515611 402 6559 6560 + 6559 H 12.971912 1.148987 7.055731 403 6558 + 6560 H 13.378188 0.782754 5.596959 403 6558 + 6561 O 16.121687 13.290724 10.280494 402 6562 6563 + 6562 H 16.894647 12.756757 10.507582 403 6561 + 6563 H 15.529920 12.609242 9.885455 403 6561 + 6564 O 1.591126 8.482167 4.697447 402 6565 6566 + 6565 H 1.970540 9.119397 4.113006 403 6564 + 6566 H 2.267655 8.435325 5.388951 403 6564 + 6567 O -17.696505 1.721021 10.517174 402 6568 6569 + 6568 H -17.885845 2.645526 10.594973 403 6567 + 6569 H -18.179500 1.418546 11.298333 403 6567 + 6570 O -1.148874 9.889607 17.693251 402 6571 6572 + 6571 H -0.454725 10.039896 17.084647 403 6570 + 6572 H -1.617929 9.083378 17.328962 403 6570 + 6573 O -9.511269 -11.292655 15.803762 402 6574 6575 + 6574 H -10.218255 -10.722353 16.196307 403 6573 + 6575 H -9.799298 -12.212118 15.932439 403 6573 + 6576 O -15.065889 16.639418 -8.067448 402 6577 6578 + 6577 H -15.835102 17.201609 -8.362394 403 6576 + 6578 H -15.172025 15.753046 -8.516586 403 6576 + 6579 O -22.136814 -17.146244 -13.973167 402 6580 6581 + 6580 H -21.367059 -16.850746 -13.432779 403 6579 + 6581 H -22.384487 -16.427789 -14.634859 403 6579 + 6582 O 7.866282 -10.293632 -17.800934 402 6583 6584 + 6583 H 7.775951 -11.047150 -17.161148 403 6582 + 6584 H 8.173086 -9.555520 -17.163954 403 6582 + 6585 O -11.457596 -0.574420 15.816493 402 6586 6587 + 6586 H -11.795621 0.320073 15.789591 403 6585 + 6587 H -10.561019 -0.510839 15.442995 403 6585 + 6588 O 20.020980 -12.359468 -8.719780 402 6589 6590 + 6589 H 20.891102 -12.503083 -8.310836 403 6588 + 6590 H 19.657638 -11.746384 -8.095286 403 6588 + 6591 O -11.584374 -20.453145 18.626549 402 6592 6593 + 6592 H -11.940173 -20.540398 19.531255 403 6591 + 6593 H -12.005638 -21.078955 18.029825 403 6591 + 6594 O 3.431174 19.121516 18.407979 402 6595 6596 + 6595 H 3.226206 20.056373 18.426687 403 6594 + 6596 H 2.600881 18.679871 18.370259 403 6594 + 6597 O -13.315767 -3.798762 16.329856 402 6598 6599 + 6598 H -13.096103 -4.569637 15.670760 403 6597 + 6599 H -12.649730 -3.801668 17.013121 403 6597 + 6600 O 7.563392 -5.518546 10.504795 402 6601 6602 + 6601 H 6.706770 -5.750354 10.096728 403 6600 + 6602 H 7.922512 -6.417021 10.555834 403 6600 + 6603 O -18.725820 19.110329 -7.091283 402 6604 6605 + 6604 H -19.518142 19.318716 -7.662306 403 6603 + 6605 H -18.568680 19.881279 -6.590714 403 6603 + 6606 O -1.414023 -16.961715 12.639857 402 6607 6608 + 6607 H -1.328118 -15.968577 12.668980 403 6606 + 6608 H -1.076983 -17.347672 11.778245 403 6606 + 6609 O -23.307644 10.461811 -20.820802 402 6610 6611 + 6610 H -23.561946 9.673912 -20.318452 403 6609 + 6611 H -24.099105 10.583838 -21.379713 403 6609 + 6612 O 18.109258 -13.123924 17.182346 402 6613 6614 + 6613 H 19.074027 -13.199454 16.973877 403 6612 + 6614 H 17.765173 -12.302968 16.728002 403 6612 + 6615 O 21.683386 18.223931 -5.030005 402 6616 6617 + 6616 H 22.567099 18.027021 -5.437892 403 6615 + 6617 H 21.636745 17.754335 -4.163593 403 6615 + 6618 O 25.055072 19.034839 -7.681292 402 6619 6620 + 6619 H 24.766294 18.344263 -7.038060 403 6618 + 6620 H 25.882695 18.757787 -7.948244 403 6618 + 6621 O 15.570913 13.019010 5.553904 402 6622 6623 + 6622 H 15.992685 13.329314 6.362922 403 6621 + 6623 H 15.449140 12.068146 5.738277 403 6621 + 6624 O -0.520016 -0.269780 14.795928 402 6625 6626 + 6625 H -0.180326 -0.456884 15.694661 403 6624 + 6626 H -1.219092 -0.915185 14.727056 403 6624 + 6627 O 1.663902 -15.429144 -10.527250 402 6628 6629 + 6628 H 2.554915 -15.533567 -10.136462 403 6627 + 6629 H 1.815948 -15.297258 -11.416174 403 6627 + 6630 O -22.648336 -4.623238 -12.225694 402 6631 6632 + 6631 H -23.412412 -4.010770 -12.025660 403 6630 + 6632 H -21.872894 -4.224451 -11.815463 403 6630 + 6633 O -2.279585 -20.867759 -19.023308 402 6634 6635 + 6634 H -3.100549 -20.369345 -19.314139 403 6633 + 6635 H -1.811469 -21.235753 -19.767859 403 6633 + 6636 O -22.243475 -13.329179 -1.390694 402 6637 6638 + 6637 H -22.862810 -12.659332 -1.686427 403 6636 + 6638 H -22.410657 -13.599367 -0.469217 403 6636 + 6639 O 23.607826 -9.844602 16.352810 402 6640 6641 + 6640 H 24.370141 -9.837102 16.979270 403 6639 + 6641 H 22.885616 -9.527980 16.925581 403 6639 + 6642 O -17.460421 9.171816 -11.938616 402 6643 6644 + 6643 H -18.218389 8.865436 -11.398928 403 6642 + 6644 H -17.867876 9.968898 -12.335632 403 6642 + 6645 O 2.263863 -17.526491 14.554618 402 6646 6647 + 6646 H 1.859635 -17.896680 15.358713 403 6645 + 6647 H 2.052535 -18.087323 13.764230 403 6645 + 6648 O 27.368617 -13.116454 -17.139830 402 6649 6650 + 6649 H 27.233784 -13.465846 -16.264251 403 6648 + 6650 H 27.362385 -13.865254 -17.806940 403 6648 + 6651 O 16.784972 2.549591 14.309398 402 6652 6653 + 6652 H 17.733190 2.537919 14.322805 403 6651 + 6653 H 16.413277 1.810095 13.861707 403 6651 + 6654 O 21.804761 -2.107242 -5.095741 402 6655 6656 + 6655 H 22.776789 -2.281899 -4.959560 403 6654 + 6656 H 21.413198 -2.898127 -5.388708 403 6654 + 6657 O 14.063924 6.483674 -0.351431 402 6658 6659 + 6658 H 14.941176 6.100507 -0.517796 403 6657 + 6659 H 14.071859 7.050391 0.399753 403 6657 + 6660 O 14.554835 16.507491 9.329558 402 6661 6662 + 6661 H 15.358643 16.591416 9.875030 403 6660 + 6662 H 13.889851 17.088326 9.657109 403 6660 + 6663 O 8.670655 -18.428515 -11.354395 402 6664 6665 + 6664 H 9.496711 -18.254251 -11.776580 403 6663 + 6665 H 8.693110 -18.508570 -10.379319 403 6663 + 6666 O -17.333287 2.077059 19.999340 402 6667 6668 + 6667 H -18.012974 2.265838 19.359237 403 6666 + 6668 H -17.678958 2.658724 20.686523 403 6666 + 6669 O -12.269943 7.557325 8.022561 402 6670 6671 + 6670 H -11.782231 7.901385 7.310410 403 6669 + 6671 H -11.518722 7.369844 8.741429 403 6669 + 6672 O -16.422160 -12.244301 6.857276 402 6673 6674 + 6673 H -16.476236 -12.690789 7.708566 403 6672 + 6674 H -17.265810 -12.438972 6.474023 403 6672 + 6675 O -12.460293 15.701651 -2.123616 402 6676 6677 + 6676 H -12.202263 16.633440 -2.262429 403 6675 + 6677 H -12.915395 15.335750 -2.913659 403 6675 + 6678 O 19.857137 7.435921 -19.855513 402 6679 6680 + 6679 H 19.224411 8.121790 -20.149860 403 6678 + 6680 H 19.459580 7.115365 -18.985221 403 6678 + 6681 O 27.414938 3.220691 12.551587 402 6682 6683 + 6682 H 28.302084 3.292286 12.082110 403 6681 + 6683 H 27.376652 2.288121 12.758098 403 6681 + 6684 O -20.578446 6.501862 -7.543872 402 6685 6686 + 6685 H -21.322455 7.133983 -7.483478 403 6684 + 6686 H -20.905164 5.709027 -7.068017 403 6684 + 6687 O 9.893421 -13.954239 -2.145744 402 6688 6689 + 6688 H 10.845577 -13.887452 -1.806008 403 6687 + 6689 H 9.670044 -13.100245 -2.522670 403 6687 + 6690 O -4.428072 -19.794959 6.392084 402 6691 6692 + 6691 H -3.499634 -19.499125 6.457248 403 6690 + 6692 H -4.796122 -19.302160 7.159538 403 6690 + 6693 O -7.874919 11.488098 -11.872687 402 6694 6695 + 6694 H -7.741906 10.850602 -11.130468 403 6693 + 6695 H -8.663122 11.156415 -12.262641 403 6693 + 6696 O 25.941607 -13.435898 9.799183 402 6697 6698 + 6697 H 26.834803 -13.623931 10.154795 403 6696 + 6698 H 25.332757 -14.073159 10.291155 403 6696 + 6699 O -19.551589 -5.315854 19.441555 402 6700 6701 + 6700 H -19.573638 -5.247652 20.432003 403 6699 + 6701 H -18.874142 -4.641904 19.223175 403 6699 + 6702 O -15.895156 17.865430 12.295752 402 6703 6704 + 6703 H -15.942604 18.800693 12.596548 403 6702 + 6704 H -16.548061 17.362585 12.771509 403 6702 + 6705 O 2.671083 -14.766415 2.401009 402 6706 6707 + 6706 H 1.987603 -14.345575 1.847880 403 6705 + 6707 H 2.531547 -14.517967 3.328895 403 6705 + 6708 O 12.335851 -9.704468 -20.394740 402 6709 6710 + 6709 H 12.648806 -9.830295 -19.492670 403 6708 + 6710 H 11.490958 -10.100623 -20.194535 403 6708 + 6711 O -22.106737 -9.538400 8.455985 402 6712 6713 + 6712 H -21.536209 -9.084366 9.058590 403 6711 + 6713 H -23.017732 -9.207212 8.501551 403 6711 + 6714 O 12.648535 6.444583 -9.932281 402 6715 6716 + 6715 H 13.157813 6.358331 -10.726454 403 6714 + 6716 H 11.747411 6.253342 -10.180418 403 6714 + 6717 O -13.625525 -14.166725 14.041460 402 6718 6719 + 6718 H -13.177614 -14.592522 13.259629 403 6717 + 6719 H -14.592492 -14.334369 13.940732 403 6717 + 6720 O 6.601614 16.498956 -16.461129 402 6721 6722 + 6721 H 7.358480 15.895066 -16.451685 403 6720 + 6722 H 6.023786 16.041896 -17.084703 403 6720 + 6723 O 21.778571 -2.612574 13.360688 402 6724 6725 + 6724 H 22.384822 -2.519802 12.682789 403 6723 + 6725 H 21.622799 -1.672884 13.624001 403 6723 + 6726 O -20.149213 6.013192 6.945622 402 6727 6728 + 6727 H -21.145473 5.909263 6.918876 403 6726 + 6728 H -19.835482 6.282517 6.065703 403 6726 + 6729 O -21.966774 -11.494919 -8.738743 402 6730 6731 + 6730 H -22.851768 -11.211695 -9.113733 403 6729 + 6731 H -21.879165 -10.921961 -8.012191 403 6729 + 6732 O 15.449095 -9.497086 12.201305 402 6733 6734 + 6733 H 16.382306 -9.836986 12.244632 403 6732 + 6734 H 15.422419 -9.084200 11.356115 403 6732 + 6735 O 12.664756 -15.306651 -20.531836 402 6736 6737 + 6736 H 12.034408 -16.012414 -20.359938 403 6735 + 6737 H 12.739209 -14.577278 -19.974973 403 6735 + 6738 O -7.972869 -5.604918 -11.934405 402 6739 6740 + 6739 H -7.601267 -4.885318 -11.379446 403 6738 + 6740 H -8.575310 -6.063681 -11.263704 403 6738 + 6741 O 0.299553 12.700530 -18.524181 402 6742 6743 + 6742 H 0.558430 11.815355 -18.777046 403 6741 + 6743 H -0.711668 12.618485 -18.481012 403 6741 + 6744 O -0.824908 18.918494 -20.332651 402 6745 6746 + 6745 H 0.055729 18.800950 -20.088514 403 6744 + 6746 H -0.726815 18.736133 -21.275575 403 6744 + 6747 O 25.716218 -17.621624 -18.165089 402 6748 6749 + 6748 H 25.183585 -18.348327 -18.615572 403 6747 + 6749 H 26.570805 -18.051277 -17.821631 403 6747 + 6750 O 11.895246 -12.886376 -15.030415 402 6751 6752 + 6751 H 12.581969 -12.241572 -14.789572 403 6750 + 6752 H 12.014494 -13.590976 -14.363464 403 6750 + 6753 O -6.984781 -6.050242 10.699580 402 6754 6755 + 6754 H -6.200372 -6.230567 10.144341 403 6753 + 6755 H -6.715278 -5.563587 11.454374 403 6753 + 6756 O -7.335609 -12.055455 -4.954546 402 6757 6758 + 6757 H -6.870389 -12.537029 -5.731051 403 6756 + 6758 H -8.034369 -11.614893 -5.410536 403 6756 + 6759 O 7.328653 12.351276 10.622525 402 6760 6761 + 6760 H 7.205722 12.826673 9.764783 403 6759 + 6761 H 6.491360 12.585679 11.094427 403 6759 + 6762 O -2.064418 15.964062 4.897369 402 6763 6764 + 6763 H -1.989044 16.110456 3.944429 403 6762 + 6764 H -1.188158 16.010465 5.256453 403 6762 + 6765 O 10.673140 16.947190 -7.298199 402 6766 6767 + 6766 H 11.053321 16.848368 -6.437645 403 6765 + 6767 H 9.833705 16.415071 -7.530378 403 6765 + 6768 O 25.146955 -10.850377 -5.894794 402 6769 6770 + 6769 H 25.793466 -10.144367 -5.792885 403 6768 + 6770 H 25.341761 -11.315139 -6.748470 403 6768 + 6771 O -20.898709 -20.024244 -0.432532 402 6772 6773 + 6772 H -21.327485 -20.809324 -0.731327 403 6771 + 6773 H -20.384646 -19.736744 -1.159428 403 6771 + 6774 O 15.773125 -11.828239 1.267979 402 6775 6776 + 6775 H 15.082308 -11.485912 1.791000 403 6774 + 6776 H 16.210809 -11.047975 0.843250 403 6774 + 6777 O -25.459831 -14.049130 16.602221 402 6778 6779 + 6778 H -25.659268 -15.033606 16.753032 403 6777 + 6779 H -26.167299 -13.609133 17.155971 403 6777 + 6780 O -15.346212 9.776118 0.552706 402 6781 6782 + 6781 H -14.861031 10.583944 0.897097 403 6780 + 6782 H -15.499398 9.230659 1.360288 403 6780 + 6783 O 1.515239 -10.027493 16.408903 402 6784 6785 + 6784 H 2.112245 -9.685145 15.772127 403 6783 + 6785 H 1.563862 -10.961534 16.268707 403 6783 + 6786 O 8.730778 -2.046469 -16.855487 402 6787 6788 + 6787 H 8.003213 -2.349766 -16.293070 403 6786 + 6788 H 8.893912 -1.127143 -16.700440 403 6786 + 6789 O -12.659858 10.277753 9.764551 402 6790 6791 + 6790 H -12.954976 10.194740 10.671493 403 6789 + 6791 H -12.294313 11.185370 9.686563 403 6789 + 6792 O 13.241019 7.614156 1.958471 402 6793 6794 + 6793 H 13.989186 7.821908 2.548064 403 6792 + 6794 H 12.569506 7.225025 2.564990 403 6792 + 6795 O 18.743445 -1.851686 14.221199 402 6796 6797 + 6796 H 19.241705 -2.155912 15.013052 403 6795 + 6797 H 17.934973 -2.360999 14.283218 403 6795 + 6798 O 20.097738 14.045420 -3.353931 402 6799 6800 + 6799 H 20.264111 13.632005 -4.240012 403 6798 + 6800 H 19.782670 14.876950 -3.580329 403 6798 + 6801 O 22.656523 -13.025771 -7.851202 402 6802 6803 + 6802 H 23.058494 -13.682024 -8.427211 403 6801 + 6803 H 22.939496 -13.206983 -6.927788 403 6801 + 6804 O 22.687429 4.701978 5.232797 402 6805 6806 + 6805 H 22.127391 3.970799 5.568822 403 6804 + 6806 H 22.543397 5.316387 5.948219 403 6804 + 6807 O 23.649228 -7.915795 -3.510236 402 6808 6809 + 6808 H 22.801078 -8.238516 -3.339971 403 6807 + 6809 H 23.474938 -7.503073 -4.391727 403 6807 + 6810 O -6.616017 -20.555130 17.274390 402 6811 6812 + 6811 H -6.785872 -19.593361 17.044755 403 6810 + 6812 H -6.639098 -20.935653 16.386762 403 6810 + 6813 O 11.575769 10.993842 8.632733 402 6814 6815 + 6814 H 11.631285 10.248287 9.251562 403 6813 + 6815 H 11.054687 11.776369 9.032913 403 6813 + 6816 O -14.897591 -13.741408 -8.424343 402 6817 6818 + 6817 H -13.944044 -13.521919 -8.374624 403 6816 + 6818 H -15.245652 -13.416716 -9.247098 403 6816 + 6819 O -7.606286 -16.239672 5.296165 402 6820 6821 + 6820 H -8.529013 -16.377754 5.125689 403 6819 + 6821 H -7.372109 -15.298609 5.089587 403 6819 + 6822 O 21.651688 -6.687757 -17.914010 402 6823 6824 + 6823 H 21.631109 -7.371723 -17.250699 403 6822 + 6824 H 22.595382 -6.421930 -17.913376 403 6822 + 6825 O 8.244086 -0.418132 8.413538 402 6826 6827 + 6826 H 8.150004 -1.042562 7.678730 403 6825 + 6827 H 7.835426 -0.797019 9.189825 403 6825 + 6828 O 16.479760 -10.801798 -19.696932 402 6829 6830 + 6829 H 17.075192 -11.093875 -20.402321 403 6828 + 6830 H 17.056365 -10.719762 -18.940382 403 6828 + 6831 O -0.277774 0.459271 -13.592265 402 6832 6833 + 6832 H 0.641958 0.154550 -13.512461 403 6831 + 6833 H -0.452113 1.346343 -13.286369 403 6831 + 6834 O -6.542284 15.376168 4.177517 402 6835 6836 + 6835 H -5.816160 15.112821 4.810192 403 6834 + 6836 H -6.899831 14.592226 3.628797 403 6834 + 6837 O -20.635866 7.001713 -1.480479 402 6838 6839 + 6838 H -21.373222 6.994284 -2.078088 403 6837 + 6839 H -20.006067 6.359671 -1.951231 403 6837 + 6840 O -13.639335 3.376760 17.002766 402 6841 6842 + 6841 H -13.969979 2.665180 17.593575 403 6840 + 6842 H -13.046017 3.905659 17.530455 403 6840 + 6843 O -6.547337 20.684985 14.541933 402 6844 6845 + 6844 H -6.972273 21.348698 14.071679 403 6843 + 6845 H -5.602331 20.918763 14.522709 403 6843 + 6846 O -2.497800 -13.782262 -4.791828 402 6847 6848 + 6847 H -1.576617 -13.507624 -4.869174 403 6846 + 6848 H -2.714797 -14.013702 -5.709334 403 6846 + 6849 O -1.112625 18.563757 18.790030 402 6850 6851 + 6850 H -0.288236 18.142534 18.527379 403 6849 + 6851 H -0.946536 19.452779 18.744542 403 6849 + 6852 O -13.988854 -2.769276 -13.122084 402 6853 6854 + 6853 H -13.598926 -2.700606 -13.943868 403 6852 + 6854 H -14.937873 -2.607884 -13.208114 403 6852 + 6855 O -16.715661 8.750744 -17.681497 402 6856 6857 + 6856 H -15.798116 8.603619 -18.047851 403 6855 + 6857 H -16.635460 9.420085 -17.000771 403 6855 + 6858 O 2.991113 -12.748536 9.631899 402 6859 6860 + 6859 H 2.533802 -13.278079 8.996870 403 6858 + 6860 H 2.583180 -11.923543 9.637997 403 6858 + 6861 O -27.414426 -12.634511 18.337817 402 6862 6863 + 6862 H -28.225666 -12.744824 17.838871 403 6861 + 6863 H -27.706128 -12.906300 19.286418 403 6861 + 6864 O 11.850131 -20.736745 10.117226 402 6865 6866 + 6865 H 12.209918 -19.885422 9.990598 403 6864 + 6866 H 12.449458 -21.164159 10.776006 403 6864 + 6867 O 16.900404 -9.611117 0.299881 402 6868 6869 + 6868 H 17.702920 -9.200486 0.626455 403 6867 + 6869 H 16.211832 -8.949525 0.285394 403 6867 + 6870 O 1.300636 17.476583 -19.357702 402 6871 6872 + 6871 H 1.244601 16.535623 -19.680589 403 6870 + 6872 H 2.229065 17.802299 -19.528512 403 6870 + 6873 O -13.442641 6.855380 -12.602329 402 6874 6875 + 6874 H -13.248683 5.960155 -12.345808 403 6873 + 6875 H -12.964930 7.379163 -11.927446 403 6873 + 6876 O 10.508692 10.781998 13.857653 402 6877 6878 + 6877 H 10.700750 11.227397 13.025331 403 6876 + 6878 H 11.274159 10.169036 14.047871 403 6876 + 6879 O -15.161111 15.497808 -1.075417 402 6880 6881 + 6880 H -14.941306 16.067302 -1.834212 403 6879 + 6881 H -14.307102 15.425376 -0.587763 403 6879 + 6882 O 26.516448 19.605204 -1.401155 402 6883 6884 + 6883 H 27.409955 19.971686 -1.420282 403 6882 + 6884 H 26.420947 18.971191 -0.667802 403 6882 + 6885 O -0.954004 8.187819 13.771505 402 6886 6887 + 6886 H -0.458409 7.469182 14.137804 403 6885 + 6887 H -1.797548 7.882182 13.530929 403 6885 + 6888 O 15.694940 -16.566561 10.671838 402 6889 6890 + 6889 H 15.180482 -16.576742 9.844033 403 6888 + 6890 H 14.966563 -16.548505 11.318780 403 6888 + 6891 O 18.598747 3.441754 -19.980603 402 6892 6893 + 6892 H 19.607131 3.445422 -19.714075 403 6891 + 6893 H 18.629619 3.587760 -20.937873 403 6891 + 6894 O -4.101725 20.626483 18.518698 402 6895 6896 + 6895 H -4.832741 21.173287 18.195756 403 6894 + 6896 H -3.506641 21.284151 19.004490 403 6894 + 6897 O -1.622747 20.903759 -10.623135 402 6898 6899 + 6898 H -1.749055 20.907257 -9.665824 403 6897 + 6899 H -2.518273 20.806241 -11.004696 403 6897 + 6900 O -2.179807 -14.291095 -12.926864 402 6901 6902 + 6901 H -2.705153 -14.473812 -12.111290 403 6900 + 6902 H -1.495280 -13.773858 -12.562680 403 6900 + 6903 O -21.678830 15.695505 11.326422 402 6904 6905 + 6904 H -21.490132 16.123832 12.219822 403 6903 + 6905 H -22.555374 16.000330 11.105890 403 6903 + 6906 O 20.387528 -15.104299 -14.428654 402 6907 6908 + 6907 H 19.639614 -14.550582 -14.652181 403 6906 + 6908 H 20.966724 -14.615439 -13.782083 403 6906 + 6909 O 8.543989 2.061633 14.171285 402 6910 6911 + 6910 H 8.138366 1.205164 14.195988 403 6909 + 6911 H 8.018048 2.600851 14.790181 403 6909 + 6912 O -14.889828 7.565748 -1.232224 402 6913 6914 + 6913 H -15.277980 8.149588 -0.532147 403 6912 + 6914 H -14.157076 7.163538 -0.720742 403 6912 + 6915 O 6.890439 6.835565 10.786892 402 6916 6917 + 6916 H 7.316224 7.702174 10.597929 403 6915 + 6917 H 7.041785 6.699181 11.734956 403 6915 + 6918 O -23.725715 6.589830 20.135978 402 6919 6920 + 6919 H -24.326282 5.920341 20.500508 403 6918 + 6920 H -24.274788 7.300563 19.971121 403 6918 + 6921 O -0.448883 -20.864583 -14.617458 402 6922 6923 + 6922 H 0.071192 -21.697111 -14.370110 403 6921 + 6923 H -0.336801 -20.602783 -15.491876 403 6921 + 6924 O 4.752131 -18.759171 16.224472 402 6925 6926 + 6925 H 4.247100 -17.909089 16.159151 403 6924 + 6926 H 5.497199 -18.596379 16.767517 403 6924 + 6927 O 25.551466 11.024091 14.835821 402 6928 6929 + 6928 H 26.097565 10.360826 15.318240 403 6927 + 6929 H 25.868265 11.894670 15.113284 403 6927 + 6930 O -13.792632 -0.131648 -11.968031 402 6931 6932 + 6931 H -14.069742 -1.037349 -12.273373 403 6930 + 6932 H -14.587746 0.465719 -12.016945 403 6930 + 6933 O -2.710690 15.293627 -0.278680 402 6934 6935 + 6934 H -2.998969 15.960057 0.331443 403 6933 + 6935 H -3.386842 14.623069 -0.355634 403 6933 + 6936 O -17.248233 -20.121844 -4.059452 402 6937 6938 + 6937 H -17.172414 -21.044463 -4.251654 403 6936 + 6938 H -16.877225 -20.034684 -3.174803 403 6936 + 6939 O 23.843575 9.736974 -14.350198 402 6940 6941 + 6940 H 23.682322 8.979239 -15.046519 403 6939 + 6941 H 23.367386 9.481782 -13.520758 403 6939 + 6942 O -11.977920 -13.866924 -9.096345 402 6943 6944 + 6943 H -12.034457 -14.762049 -8.738542 403 6942 + 6944 H -11.033924 -13.842490 -9.319192 403 6942 + 6945 O -20.844885 -20.673768 11.904219 402 6946 6947 + 6946 H -21.211544 -21.565612 12.158518 403 6945 + 6947 H -21.251746 -20.526654 11.038182 403 6945 + 6948 O 10.501648 -10.083276 10.087293 402 6949 6950 + 6949 H 10.918566 -9.250606 10.394612 403 6948 + 6950 H 9.992333 -9.906650 9.274003 403 6948 + 6951 O -19.115579 -4.779064 -19.789173 402 6952 6953 + 6952 H -18.214269 -4.399767 -19.923178 403 6951 + 6953 H -19.400662 -4.666966 -18.902157 403 6951 + 6954 O 27.292959 4.591920 -14.450094 402 6955 6956 + 6955 H 27.857326 4.638750 -13.673258 403 6954 + 6956 H 26.302663 4.467257 -14.132617 403 6954 + 6957 O -15.973482 -19.623868 10.652463 402 6958 6959 + 6958 H -15.396164 -19.929927 9.974366 403 6957 + 6959 H -16.843194 -19.544182 10.235192 403 6957 + 6960 O -24.224954 -2.728737 10.935846 402 6961 6962 + 6961 H -23.262685 -2.710705 11.036848 403 6960 + 6962 H -24.594330 -3.621981 10.847310 403 6960 + 6963 O -10.392772 -14.962488 2.206954 402 6964 6965 + 6964 H -10.142273 -15.819733 2.617268 403 6963 + 6965 H -9.689412 -14.869628 1.550246 403 6963 + 6966 O 23.781651 14.549010 -15.425504 402 6967 6968 + 6967 H 23.508500 15.178591 -16.172525 403 6966 + 6968 H 23.231402 13.779403 -15.566088 403 6966 + 6969 O -16.655122 13.378532 -2.256893 402 6970 6971 + 6970 H -15.876557 13.842392 -1.809556 403 6969 + 6971 H -17.352965 14.010234 -2.115536 403 6969 + 6972 O 17.907598 17.234287 -12.510154 402 6973 6974 + 6973 H 17.700495 16.802779 -13.342124 403 6972 + 6974 H 17.297348 17.961204 -12.489351 403 6972 + 6975 O 17.427023 -12.078823 9.916700 402 6976 6977 + 6976 H 16.525879 -12.070244 9.636554 403 6975 + 6977 H 17.909679 -12.239509 9.119337 403 6975 + 6978 O -19.359847 6.057050 19.624868 402 6979 6980 + 6979 H -19.814369 5.574360 18.904014 403 6978 + 6980 H -19.255770 6.911903 19.182635 403 6978 + 6981 O 18.674024 -19.624270 17.522963 402 6982 6983 + 6982 H 17.740156 -19.461855 17.682137 403 6981 + 6983 H 18.867385 -19.535332 16.599150 403 6981 + 6984 O 20.025827 3.814045 -9.622919 402 6985 6986 + 6985 H 19.683972 4.038069 -10.485997 403 6984 + 6986 H 20.937506 3.543209 -9.811005 403 6984 + 6987 O 5.470940 6.984171 8.109869 402 6988 6989 + 6988 H 5.850717 7.846581 8.087996 403 6987 + 6989 H 5.945843 6.559192 8.827716 403 6987 + 6990 O -10.808039 20.531242 -16.312076 402 6991 6992 + 6991 H -10.302470 21.104206 -15.760708 403 6990 + 6992 H -10.017446 20.227222 -16.784699 403 6990 + 6993 O -11.027875 -4.920821 17.870938 402 6994 6995 + 6994 H -10.325336 -4.445713 17.369166 403 6993 + 6995 H -11.377886 -5.529192 17.224974 403 6993 + 6996 O -20.371671 10.114815 16.255481 402 6997 6998 + 6997 H -20.580138 10.101355 15.263993 403 6996 + 6998 H -20.344545 11.071578 16.437819 403 6996 + 6999 O 23.653520 3.436168 1.325510 402 7000 7001 + 7000 H 23.536106 2.474980 1.098717 403 6999 + 7001 H 23.860683 3.796523 0.414552 403 6999 + 7002 O -21.567514 -2.949387 5.091162 402 7003 7004 + 7003 H -22.071317 -3.738968 4.916553 403 7002 + 7004 H -22.336939 -2.390166 5.390630 403 7002 + 7005 O 22.554166 -9.402044 -6.100872 402 7006 7007 + 7006 H 23.431323 -9.766839 -6.077907 403 7005 + 7007 H 22.697180 -8.479613 -6.418284 403 7005 + 7008 O -22.569113 -4.640399 13.826281 402 7009 7010 + 7009 H -23.358557 -5.049193 13.550678 403 7008 + 7010 H -22.257880 -5.191735 14.515317 403 7008 + 7011 O -2.385157 12.751460 -2.313524 402 7012 7013 + 7012 H -1.730031 13.357140 -2.644514 403 7011 + 7013 H -1.978595 12.282671 -1.585523 403 7011 + 7014 O -26.161645 14.565358 1.232440 402 7015 7016 + 7015 H -26.706603 13.814255 1.347347 403 7014 + 7016 H -26.622850 15.329972 1.567273 403 7014 + 7017 O 1.453589 -9.489501 -18.511074 402 7018 7019 + 7018 H 1.470127 -10.349425 -18.991155 403 7017 + 7019 H 1.973543 -8.965754 -19.091787 403 7017 + 7020 O -0.660378 -18.577536 -12.938447 402 7021 7022 + 7021 H -0.732583 -19.053338 -12.113581 403 7020 + 7022 H -0.517701 -19.272917 -13.578982 403 7020 + 7023 O 14.312654 12.150861 -6.246651 402 7024 7025 + 7024 H 14.287806 12.704737 -5.491569 403 7023 + 7025 H 15.175580 11.801455 -6.299294 403 7023 + 7026 O 18.998590 6.532260 -0.632888 402 7027 7028 + 7027 H 18.366049 5.787028 -0.799484 403 7026 + 7028 H 19.311853 6.485139 0.272589 403 7026 + 7029 O 5.329915 17.883588 20.342830 402 7030 7031 + 7030 H 4.796701 18.410992 19.709020 403 7029 + 7031 H 4.770971 17.852635 21.154570 403 7029 + 7032 O 24.723592 -6.944303 -11.741165 402 7033 7034 + 7033 H 24.780327 -6.008688 -11.867155 403 7032 + 7034 H 24.690407 -7.329055 -12.639425 403 7032 + 7035 O -23.122003 4.618796 18.181339 402 7036 7037 + 7036 H -23.209287 5.265752 18.869409 403 7035 + 7037 H -23.988906 4.549652 17.803581 403 7035 + 7038 O 8.709146 17.478249 5.929770 402 7039 7040 + 7039 H 7.992855 18.166454 5.872705 403 7038 + 7040 H 9.532770 18.014027 5.879190 403 7038 + 7041 O -25.145193 10.967387 14.467030 402 7042 7043 + 7042 H -25.638192 11.462461 13.811080 403 7041 + 7043 H -25.115880 11.602045 15.194844 403 7041 + 7044 O -6.270672 10.298692 -9.326284 402 7045 7046 + 7045 H -6.326041 9.841909 -8.460997 403 7044 + 7046 H -5.298295 10.155581 -9.629880 403 7044 + 7047 O 8.331282 15.667208 -4.044961 402 7048 7049 + 7048 H 8.081425 16.068754 -3.248975 403 7047 + 7049 H 7.784433 16.176579 -4.661216 403 7047 + 7050 O -4.605111 3.075866 17.330627 402 7051 7052 + 7051 H -4.999875 2.960715 16.481841 403 7050 + 7052 H -5.159040 3.212840 18.083160 403 7050 + 7053 O 14.687017 -3.513814 10.903431 402 7054 7055 + 7054 H 14.499277 -3.337699 11.823116 403 7053 + 7055 H 14.262838 -4.331541 10.602044 403 7053 + 7056 O -20.872612 6.379762 10.816794 402 7057 7058 + 7057 H -20.860809 7.234769 10.341581 403 7056 + 7058 H -20.061300 6.341520 11.384808 403 7056 + 7059 O 7.161896 -4.360755 17.634105 402 7060 7061 + 7060 H 8.175987 -4.400233 17.464973 403 7059 + 7061 H 7.057446 -4.853463 18.480499 403 7059 + 7062 O -3.475038 11.316770 16.798166 402 7063 7064 + 7063 H -2.755042 10.845936 17.155120 403 7062 + 7064 H -3.489190 11.054731 15.856176 403 7062 + 7065 O 15.663266 8.649743 3.198716 402 7066 7067 + 7066 H 15.359027 9.298705 3.810376 403 7065 + 7067 H 16.192400 8.008866 3.672568 403 7065 + 7068 O 5.436707 -20.461241 11.921265 402 7069 7070 + 7069 H 5.119701 -19.606856 11.530637 403 7068 + 7070 H 4.713208 -20.630626 12.549382 403 7068 + 7071 O -4.801212 -17.868960 -3.936676 402 7072 7073 + 7072 H -5.438715 -17.659702 -4.657529 403 7071 + 7073 H -4.229156 -18.589597 -4.194370 403 7071 + 7074 O -15.253442 11.238290 -10.212163 402 7075 7076 + 7075 H -14.642285 11.918974 -10.588009 403 7074 + 7076 H -16.099309 11.643007 -10.393989 403 7074 + 7077 O 26.686176 10.830985 20.584564 402 7078 7079 + 7078 H 26.369951 11.360874 21.358365 403 7077 + 7079 H 26.509688 9.944710 20.906243 403 7077 + 7080 O 12.561683 17.569279 18.161912 402 7081 7082 + 7081 H 12.373224 16.635553 17.927044 403 7080 + 7082 H 11.953579 17.940076 18.749558 403 7080 + 7083 O -7.212093 -10.307008 17.334494 402 7084 7085 + 7084 H -6.512620 -10.511909 17.944932 403 7083 + 7085 H -7.614860 -11.144180 17.014381 403 7083 + 7086 O 1.066613 3.381658 18.538737 402 7087 7088 + 7087 H 1.472142 3.810443 19.302366 403 7086 + 7088 H 0.121217 3.213227 18.686468 403 7086 + 7089 O 26.591569 20.388220 15.314096 402 7090 7091 + 7090 H 27.027629 19.549241 15.003737 403 7089 + 7091 H 25.677162 20.106742 15.492223 403 7089 + 7092 O -12.980829 3.037173 -5.149300 402 7093 7094 + 7093 H -13.518049 2.271141 -5.381098 403 7092 + 7094 H -13.015144 3.271986 -4.233059 403 7092 + 7095 O -15.670290 -19.461795 -8.693893 402 7096 7097 + 7096 H -15.312346 -19.371467 -7.762922 403 7095 + 7097 H -15.700912 -18.579237 -9.112271 403 7095 + 7098 O 18.498310 -6.951013 11.923309 402 7099 7100 + 7099 H 19.331146 -6.980278 12.293062 403 7098 + 7100 H 17.952458 -6.708175 12.679535 403 7098 + 7101 O 22.848965 14.115566 0.206953 402 7102 7103 + 7102 H 23.127347 14.768732 -0.415947 403 7101 + 7103 H 23.434401 14.218348 0.991573 403 7101 + 7104 O -23.977260 16.643521 -8.138268 402 7105 7106 + 7105 H -24.563932 16.858836 -8.896849 403 7104 + 7106 H -23.095154 16.760370 -8.386216 403 7104 + 7107 O -26.584391 -6.397854 5.547650 402 7108 7109 + 7108 H -25.925294 -7.061435 5.741608 403 7107 + 7109 H -26.133892 -5.544387 5.442967 403 7107 + 7110 O 2.060216 -10.468459 10.640375 402 7111 7112 + 7111 H 2.489904 -9.711105 10.219505 403 7110 + 7112 H 1.131111 -10.283322 10.616360 403 7110 + 7113 O 5.954667 9.758583 -20.555530 402 7114 7115 + 7114 H 6.264304 10.543474 -21.120622 403 7113 + 7115 H 5.484413 9.147185 -21.197897 403 7113 + 7116 O 24.786566 -15.292270 2.666103 402 7117 7118 + 7117 H 23.947578 -15.213745 2.181575 403 7116 + 7118 H 24.621364 -16.114647 3.180504 403 7116 + 7119 O -9.238549 4.246640 18.608373 402 7120 7121 + 7120 H -8.516205 4.915950 18.512268 403 7119 + 7121 H -8.905672 3.343488 18.421048 403 7119 + 7122 O 4.458783 0.783326 15.910622 402 7123 7124 + 7123 H 4.333357 -0.156607 15.829450 403 7122 + 7124 H 5.377583 0.813141 16.228468 403 7122 + 7125 O 2.440654 19.498822 -16.520052 402 7126 7127 + 7126 H 1.894281 18.987314 -15.882707 403 7125 + 7127 H 2.550447 18.871750 -17.222238 403 7125 + 7128 O -14.387304 8.489545 5.108260 402 7129 7130 + 7129 H -14.330824 9.314254 5.570879 403 7128 + 7130 H -13.611936 7.964241 5.306370 403 7128 + 7131 O -5.680779 -19.561928 -0.391390 402 7132 7133 + 7132 H -6.492940 -19.118143 -0.731363 403 7131 + 7133 H -5.761503 -20.446667 -0.611520 403 7131 + 7134 O 0.364483 -0.976730 20.596640 402 7135 7136 + 7135 H 0.190818 -1.943299 20.568078 403 7134 + 7136 H -0.296384 -0.570410 19.967598 403 7134 + 7137 O -20.103572 15.327950 -3.864750 402 7138 7139 + 7138 H -20.721760 16.087200 -3.977948 403 7137 + 7139 H -19.620299 15.411599 -4.730333 403 7137 + 7140 O 7.762229 -15.911349 -12.044815 402 7141 7142 + 7141 H 8.618390 -15.446157 -11.951239 403 7140 + 7142 H 8.056718 -16.844883 -11.932849 403 7140 + 7143 O -14.271772 -19.114636 20.444087 402 7144 7145 + 7144 H -13.631359 -18.451185 20.013255 403 7143 + 7145 H -14.788312 -18.613074 21.058254 403 7143 + 7146 O -17.296785 -16.270141 -5.846230 402 7147 7148 + 7147 H -16.661324 -16.986407 -5.791657 403 7146 + 7148 H -17.698563 -16.270611 -6.699261 403 7146 + 7149 O 5.461014 -17.908610 10.258639 402 7150 7151 + 7150 H 6.041339 -18.066045 9.495427 403 7149 + 7151 H 5.907462 -17.113295 10.672048 403 7149 + 7152 O -6.579640 -20.864919 -3.728078 402 7153 7154 + 7153 H -6.197014 -21.129682 -2.892954 403 7152 + 7154 H -5.867159 -20.529771 -4.364102 403 7152 + 7155 O 15.290566 -16.899037 3.541007 402 7156 7157 + 7156 H 15.456923 -17.854501 3.506824 403 7155 + 7157 H 14.682578 -16.661722 4.258103 403 7155 + 7158 O -8.595092 -1.638190 20.084084 402 7159 7160 + 7159 H -8.261779 -2.590969 20.168832 403 7158 + 7160 H -7.852015 -1.108351 20.332316 403 7158 + 7161 O -20.323788 -5.436750 0.324161 402 7162 7163 + 7162 H -20.170009 -5.941054 1.094644 403 7161 + 7163 H -21.208252 -5.031900 0.601954 403 7161 + 7164 O -2.393237 8.004242 -11.498413 402 7165 7166 + 7165 H -2.950404 8.660356 -11.054135 403 7164 + 7166 H -3.061318 7.581791 -12.073133 403 7164 + 7167 O -22.912771 3.860494 -12.441206 402 7168 7169 + 7168 H -23.451777 3.037762 -12.348507 403 7167 + 7169 H -22.899565 4.032930 -13.430208 403 7167 + 7170 O 20.362995 17.824512 -13.264003 402 7171 7172 + 7171 H 19.551615 17.496626 -12.844707 403 7170 + 7172 H 20.082478 18.300222 -14.079166 403 7170 + 7173 O -24.585913 -0.746630 -0.896798 402 7174 7175 + 7174 H -24.470331 -1.075027 -1.802806 403 7173 + 7175 H -23.819676 -0.946255 -0.373167 403 7173 + 7176 O -19.535789 -9.056148 -13.988499 402 7177 7178 + 7177 H -19.846462 -8.673779 -13.166776 403 7176 + 7178 H -19.115510 -8.309283 -14.534612 403 7176 + 7179 O 14.390022 6.679518 12.730957 402 7180 7181 + 7180 H 15.232081 6.289813 12.946155 403 7179 + 7181 H 14.506655 7.667961 12.798775 403 7179 + 7182 O -13.116074 -0.366672 20.319004 402 7183 7184 + 7183 H -12.270792 -0.638533 19.918398 403 7182 + 7184 H -13.671647 -1.133311 20.295523 403 7182 + 7185 O -8.591511 -19.336122 8.863799 402 7186 7187 + 7186 H -9.117090 -20.010877 8.426692 403 7185 + 7187 H -7.862918 -19.753372 9.330648 403 7185 + 7188 O 17.402278 20.652639 13.900402 402 7189 7190 + 7189 H 17.697788 21.603581 13.957892 403 7188 + 7190 H 17.312316 20.500438 12.944824 403 7188 + 7191 O 8.201262 9.483818 13.348516 402 7192 7193 + 7192 H 7.444873 10.096390 13.607594 403 7191 + 7193 H 8.957598 10.011937 13.627746 403 7191 + 7194 O 7.585535 14.800848 -12.327563 402 7195 7196 + 7195 H 7.057327 14.353832 -11.664194 403 7194 + 7196 H 7.019891 15.502887 -12.695142 403 7194 + 7197 O -25.423194 -2.683175 -19.281520 402 7198 7199 + 7198 H -25.154720 -3.154251 -18.493055 403 7197 + 7199 H -24.615481 -2.633480 -19.773081 403 7197 + 7200 O 19.725045 -13.114787 8.444878 402 7201 7202 + 7201 H 19.513124 -14.034339 8.634210 403 7200 + 7202 H 20.698306 -13.102042 8.543928 403 7200 + 7203 O 20.099503 -20.282525 -15.985101 402 7204 7205 + 7204 H 20.708189 -19.889578 -15.319196 403 7203 + 7205 H 19.393142 -19.575319 -15.986140 403 7203 + 7206 O 12.771061 16.100563 -19.111418 402 7207 7208 + 7207 H 12.131597 16.778356 -19.314806 403 7206 + 7208 H 12.464661 15.303336 -19.572804 403 7206 + 7209 O 7.091753 -14.703139 17.991009 402 7210 7211 + 7210 H 7.807603 -15.309333 17.938259 403 7209 + 7211 H 7.194027 -14.118016 17.231754 403 7209 + 7212 O -22.592481 8.686176 -7.047127 402 7213 7214 + 7213 H -22.216240 9.064017 -6.202984 403 7212 + 7214 H -23.491060 9.070100 -7.232883 403 7212 + 7215 O -4.638462 -13.691402 17.535113 402 7216 7217 + 7216 H -4.741933 -14.552763 17.998987 403 7215 + 7217 H -3.917812 -13.768318 16.891949 403 7215 + 7218 O 15.674081 -9.755387 -16.113189 402 7219 7220 + 7219 H 16.400378 -9.301702 -15.729512 403 7218 + 7220 H 15.141124 -9.061926 -16.542582 403 7218 + 7221 O -13.702316 -19.909047 -12.268941 402 7222 7223 + 7222 H -14.359478 -19.319853 -12.555858 403 7221 + 7223 H -14.123812 -20.688800 -11.912022 403 7221 + 7224 O 24.541571 12.760808 8.882057 402 7225 7226 + 7225 H 24.177431 13.512218 9.353984 403 7224 + 7226 H 24.288780 12.867460 7.942115 403 7224 + 7227 O -7.687548 20.108508 10.397741 402 7228 7229 + 7228 H -6.786045 20.459581 10.465576 403 7227 + 7229 H -7.840032 19.590481 9.619893 403 7227 + 7230 O 17.691564 14.211194 -11.948720 402 7231 7232 + 7231 H 16.837678 14.621970 -11.842799 403 7230 + 7232 H 18.118330 14.755742 -12.626475 403 7230 + 7233 O 21.348057 -7.329463 -13.375832 402 7234 7235 + 7234 H 21.593345 -6.492239 -13.815720 403 7233 + 7235 H 21.736068 -7.343951 -12.513154 403 7233 + 7236 O -19.887601 4.039241 4.011716 402 7237 7238 + 7237 H -20.804227 3.899388 4.382950 403 7236 + 7238 H -19.888370 5.029157 3.892591 403 7236 + 7239 O -25.084134 8.583682 -19.308703 402 7240 7241 + 7240 H -25.512658 8.302589 -20.191094 403 7239 + 7241 H -24.552230 7.802502 -19.104750 403 7239 + 7242 O 9.783143 -8.944234 15.919722 402 7243 7244 + 7243 H 9.846305 -9.847677 16.313657 403 7242 + 7244 H 10.422901 -8.539313 16.532052 403 7242 + 7245 O 24.921152 14.233454 -9.328043 402 7246 7247 + 7246 H 25.485037 14.435637 -8.538860 403 7245 + 7247 H 24.550831 15.052607 -9.617520 403 7245 + 7248 O -5.336150 -19.944956 -15.675499 402 7249 7250 + 7249 H -4.550070 -20.475028 -15.352798 403 7248 + 7250 H -4.968558 -19.050199 -15.973828 403 7248 + 7251 O -15.773463 -12.281833 -13.129558 402 7252 7253 + 7252 H -15.686354 -12.889867 -12.384071 403 7251 + 7253 H -15.452029 -12.783419 -13.894154 403 7251 + 7254 O -4.300139 -7.123836 -2.160106 402 7255 7256 + 7255 H -3.342814 -7.235681 -2.390788 403 7254 + 7256 H -4.824947 -7.659223 -2.750865 403 7254 + 7257 O -25.789560 20.874236 19.526065 402 7258 7259 + 7258 H -24.843357 21.124661 19.555308 403 7257 + 7259 H -26.065421 21.149679 18.673765 403 7257 + 7260 O -9.146229 1.424908 -20.523854 402 7261 7262 + 7261 H -10.001499 1.119683 -20.181523 403 7260 + 7262 H -8.546249 0.921170 -20.019617 403 7260 + 7263 O 26.101075 5.848590 12.988450 402 7264 7265 + 7264 H 26.554693 5.084410 12.637458 403 7263 + 7265 H 25.161381 5.669725 12.803554 403 7263 + 7266 O 9.006687 19.040346 -18.186210 402 7267 7268 + 7267 H 8.065932 18.907108 -18.115528 403 7266 + 7268 H 9.047297 19.909251 -18.666859 403 7266 + 7269 O -7.293872 14.178171 -1.883075 402 7270 7271 + 7270 H -6.467767 14.351226 -2.386146 403 7269 + 7271 H -7.610529 15.055318 -1.621187 403 7269 + 7272 O -6.991462 19.787403 0.500962 402 7273 7274 + 7273 H -6.438660 19.949638 1.223968 403 7272 + 7274 H -7.711116 19.103046 0.704655 403 7272 + 7275 O 27.160597 -2.308726 -10.478195 402 7276 7277 + 7276 H 26.892593 -1.628933 -9.894058 403 7275 + 7277 H 26.370866 -2.910166 -10.699907 403 7275 + 7278 O 20.720937 15.282200 -14.602248 402 7279 7280 + 7279 H 19.787625 15.378072 -14.861312 403 7278 + 7280 H 21.253153 16.033456 -14.917484 403 7278 + 7281 O -1.717777 3.126430 19.684869 402 7282 7283 + 7282 H -2.457020 3.742545 19.704262 403 7281 + 7283 H -1.981408 2.239558 19.670325 403 7281 + 7284 O -14.236932 -8.531350 -17.888137 402 7285 7286 + 7285 H -13.483311 -8.743594 -17.293313 403 7284 + 7286 H -14.879621 -9.247417 -17.747177 403 7284 + 7287 O -4.783415 -4.020396 -20.532866 402 7288 7289 + 7288 H -4.012136 -4.566525 -20.414031 403 7287 + 7289 H -5.530185 -4.500179 -20.351823 403 7287 + 7290 O -13.666695 2.341198 -19.917613 402 7291 7292 + 7291 H -13.647430 2.522072 -20.842149 403 7290 + 7292 H -14.523681 2.756089 -19.651511 403 7290 + 7293 O 3.688675 -20.632144 14.338255 402 7294 7295 + 7294 H 4.124765 -20.055049 14.958708 403 7293 + 7295 H 3.773276 -21.474844 14.693545 403 7293 + 7296 O -20.711810 11.153254 -5.295425 402 7297 7298 + 7297 H -20.997628 10.543621 -4.576628 403 7296 + 7298 H -20.872806 11.978037 -4.877765 403 7296 + 7299 O 24.053294 -19.987538 -18.448521 402 7300 7301 + 7300 H 23.997797 -20.379984 -19.321399 403 7299 + 7301 H 24.605029 -20.616521 -17.920358 403 7299 + 7302 O 18.893096 0.346665 4.419514 402 7303 7304 + 7303 H 18.836810 -0.563948 4.138422 403 7302 + 7304 H 19.384494 0.416823 5.258191 403 7302 + 7305 O 1.611674 7.827775 17.729516 402 7306 7307 + 7306 H 1.683155 6.883076 17.518073 403 7305 + 7307 H 0.776664 7.948423 18.173512 403 7305 + 7308 O 9.885872 -10.367999 -15.423519 402 7309 7310 + 7309 H 9.747228 -11.080640 -16.152068 403 7308 + 7310 H 9.165955 -9.782881 -15.477159 403 7308 + 7311 O -8.001025 -8.903978 20.363588 402 7312 7313 + 7312 H -7.919331 -9.384725 21.262606 403 7311 + 7313 H -8.555002 -9.547097 19.892421 403 7311 + 7314 O -5.444250 -12.618432 -20.512332 402 7315 7316 + 7315 H -4.642289 -13.086364 -20.688100 403 7314 + 7316 H -5.443229 -12.055754 -19.736438 403 7314 + 7317 O 13.515262 -10.012095 19.152766 402 7318 7319 + 7318 H 12.845808 -9.927516 19.858658 403 7317 + 7319 H 14.340617 -9.646593 19.590648 403 7317 + 7320 O -8.356973 -7.803379 16.925718 402 7321 7322 + 7321 H -8.140830 -7.917106 15.999678 403 7320 + 7322 H -8.084091 -8.687693 17.308394 403 7320 + 7323 O 19.760910 -2.370831 2.421662 402 7324 7325 + 7324 H 20.560599 -1.857333 2.578796 403 7323 + 7325 H 19.273809 -1.863655 1.723372 403 7323 + 7326 O 16.532929 9.397948 -13.603509 402 7327 7328 + 7327 H 16.407542 10.353638 -13.545246 403 7326 + 7328 H 17.450225 9.202690 -13.801843 403 7326 + 7329 O 3.043298 -8.545676 8.964253 402 7330 7331 + 7330 H 2.418694 -7.834314 8.742863 403 7329 + 7331 H 3.163757 -8.907052 8.081541 403 7329 + 7332 O -5.314921 -13.601995 0.201579 402 7333 7334 + 7333 H -4.416708 -13.534559 -0.042940 403 7332 + 7334 H -5.417418 -14.438498 0.657175 403 7332 + 7335 O 1.416185 6.843538 -11.410595 402 7336 7337 + 7336 H 1.633970 7.742217 -11.087491 403 7335 + 7337 H 0.761793 6.459053 -10.786036 403 7335 + 7338 O 19.767922 9.421307 -8.193013 402 7339 7340 + 7339 H 19.914480 8.466041 -8.135440 403 7338 + 7340 H 19.575103 9.558308 -9.177735 403 7338 + 7341 O 26.172410 11.919029 3.610739 402 7342 7343 + 7342 H 25.535585 12.193435 4.240735 403 7341 + 7343 H 26.042272 10.983029 3.549151 403 7341 + 7344 O -21.735841 2.144400 18.211620 402 7345 7346 + 7345 H -22.104009 2.960860 18.654752 403 7344 + 7346 H -22.313927 1.460249 18.492995 403 7344 + 7347 O 1.557972 -12.790578 15.622137 402 7348 7349 + 7348 H 0.853719 -13.365055 15.935999 403 7347 + 7349 H 1.906483 -13.231160 14.910699 403 7347 + 7350 O -13.258859 4.104211 -2.315588 402 7351 7352 + 7351 H -13.608254 4.812418 -2.986967 403 7350 + 7352 H -14.087487 3.646024 -2.095452 403 7350 + 7353 O -26.307679 -0.111768 -20.714469 402 7354 7355 + 7354 H -25.812995 0.720645 -20.583269 403 7353 + 7355 H -25.528348 -0.678575 -20.909717 403 7353 + 7356 O 11.642962 12.398152 -6.461792 402 7357 7358 + 7357 H 11.596820 12.230702 -5.538685 403 7356 + 7358 H 12.552221 12.400971 -6.683261 403 7356 + 7359 O 9.805562 12.056033 0.297197 402 7360 7361 + 7360 H 10.657658 12.469311 0.654830 403 7359 + 7361 H 9.202541 11.759951 0.941289 403 7359 + 7362 O -6.826832 12.393010 9.213697 402 7363 7364 + 7363 H -6.537792 11.811004 8.506850 403 7362 + 7364 H -6.100427 12.347418 9.835231 403 7362 + 7365 O 20.133141 -17.531986 18.955618 402 7366 7367 + 7366 H 19.437169 -18.073233 18.517051 403 7365 + 7367 H 20.798807 -17.276415 18.236384 403 7365 + 7368 O 16.549382 -10.626162 16.457286 402 7369 7370 + 7369 H 16.551942 -9.717820 16.759418 403 7368 + 7370 H 16.147566 -11.023294 17.252231 403 7368 + 7371 O 1.789829 14.643494 -5.619552 402 7372 7373 + 7372 H 1.048933 14.228176 -6.039228 403 7371 + 7373 H 1.669053 14.391952 -4.707740 403 7371 + 7374 O 4.371658 -12.694698 -12.318562 402 7375 7376 + 7375 H 4.915573 -13.184619 -11.694576 403 7374 + 7376 H 4.915130 -11.958781 -12.720896 403 7374 + 7377 O -11.293082 0.237019 -19.250596 402 7378 7379 + 7378 H -11.966255 0.783547 -19.678369 403 7377 + 7379 H -11.548510 -0.704739 -19.364586 403 7377 + 7380 O -2.484806 -0.918295 -14.668621 402 7381 7382 + 7381 H -2.177091 -1.152345 -15.589201 403 7380 + 7382 H -1.695025 -0.610144 -14.221845 403 7380 + 7383 O 25.578482 -18.001184 -14.174826 402 7384 7385 + 7384 H 24.716923 -17.519582 -14.309086 403 7383 + 7385 H 26.303012 -17.438870 -14.436407 403 7383 + 7386 O 23.132217 17.040870 -8.595297 402 7387 7388 + 7387 H 23.143509 17.518773 -7.762629 403 7386 + 7388 H 22.923741 16.132690 -8.372110 403 7386 + 7389 O 2.923503 11.871856 -20.547177 402 7390 7391 + 7390 H 2.198503 11.234695 -20.236214 403 7389 + 7391 H 3.511763 11.911115 -19.844001 403 7389 + 7392 O 2.179585 4.144910 -11.877852 402 7393 7394 + 7393 H 2.151655 5.096818 -11.803012 403 7392 + 7394 H 2.729899 3.974673 -12.667805 403 7392 + 7395 O 26.669404 -11.624549 13.477594 402 7396 7397 + 7396 H 25.735733 -11.431455 13.654851 403 7395 + 7397 H 27.077849 -11.550313 14.372992 403 7395 + 7398 O 24.873075 -11.097731 10.824618 402 7399 7400 + 7399 H 25.209728 -11.897467 10.432443 403 7398 + 7400 H 25.614915 -10.682030 11.193580 403 7398 + 7401 O -1.826162 -17.791623 4.511609 402 7402 7403 + 7402 H -1.466714 -17.114337 3.985489 403 7401 + 7403 H -1.066332 -18.298254 4.813832 403 7401 + 7404 O 24.895806 4.512131 -17.916870 402 7405 7406 + 7405 H 24.133889 5.103597 -18.006070 403 7404 + 7406 H 25.725831 4.889044 -18.163865 403 7404 + 7407 O -20.306217 1.655909 -0.658591 402 7408 7409 + 7408 H -19.365596 1.457605 -0.837148 403 7407 + 7409 H -20.259907 1.991986 0.211928 403 7407 + 7410 O 13.312009 19.524936 16.387048 402 7411 7412 + 7411 H 13.933293 19.167357 15.722455 403 7410 + 7412 H 13.259660 18.816564 17.092867 403 7410 + 7413 O -6.291960 0.181353 20.409012 402 7414 7415 + 7414 H -5.886986 -0.391564 19.697954 403 7413 + 7415 H -6.191361 -0.287042 21.246927 403 7413 + 7416 O -11.925605 -14.118393 11.513337 402 7417 7418 + 7417 H -12.390021 -13.899494 10.677619 403 7416 + 7418 H -11.499213 -13.318961 11.825704 403 7416 + 7419 O 25.690900 -20.544963 -6.726643 402 7420 7421 + 7420 H 25.848636 -19.865858 -7.443635 403 7419 + 7421 H 25.541265 -21.356361 -7.237324 403 7419 + 7422 O -10.266763 4.606069 -14.148088 402 7423 7424 + 7423 H -10.666583 4.007171 -14.802051 403 7422 + 7424 H -10.592890 5.506386 -14.316808 403 7422 + 7425 O -13.700313 11.443217 -7.703372 402 7426 7427 + 7426 H -14.305805 11.566376 -8.451855 403 7425 + 7427 H -13.797593 10.519533 -7.520760 403 7425 + 7428 O 19.896960 -5.260769 2.047938 402 7429 7430 + 7429 H 20.639909 -5.673868 2.498703 403 7428 + 7430 H 19.902578 -4.275845 1.972121 403 7428 + 7431 O 27.483595 4.667361 6.350280 402 7432 7433 + 7432 H 27.612327 3.821689 6.792070 403 7431 + 7433 H 27.474096 5.241160 7.041075 403 7431 + 7434 O 16.838162 -11.125573 -1.977415 402 7435 7436 + 7435 H 17.018636 -10.652759 -1.169733 403 7434 + 7436 H 17.083147 -12.071800 -1.748280 403 7434 + 7437 O -3.825915 15.193309 16.332435 402 7438 7439 + 7438 H -3.868970 16.088775 15.893612 403 7437 + 7439 H -2.922251 14.779372 16.138541 403 7437 + 7440 O -4.999597 -20.685905 -5.935566 402 7441 7442 + 7441 H -5.618635 -20.401156 -6.580918 403 7440 + 7442 H -5.077868 -21.673790 -5.909799 403 7440 + 7443 O -20.562039 0.140160 5.669443 402 7444 7445 + 7444 H -20.686050 0.843366 6.344794 403 7443 + 7445 H -20.730893 0.582485 4.804185 403 7443 + 7446 O -6.671827 11.535978 19.876374 402 7447 7448 + 7447 H -7.261521 11.364859 20.662982 403 7446 + 7448 H -7.266511 12.144069 19.377508 403 7446 + 7449 O 4.191517 -2.479488 13.355524 402 7450 7451 + 7450 H 4.884007 -2.164404 14.019008 403 7449 + 7451 H 3.372874 -2.220309 13.814811 403 7449 + 7452 O 8.749947 16.191041 8.535964 402 7453 7454 + 7453 H 8.732297 16.863275 9.229059 403 7452 + 7454 H 8.691576 16.634682 7.644507 403 7452 + 7455 O -25.961494 14.282183 -15.383787 402 7456 7457 + 7456 H -25.985646 15.282436 -15.164995 403 7455 + 7457 H -26.833664 13.915918 -15.151600 403 7455 + 7458 O 27.385198 14.529212 8.142639 402 7459 7460 + 7459 H 26.412128 14.399556 8.083311 403 7458 + 7460 H 27.495002 15.490751 8.294493 403 7458 + 7461 O 14.126472 -14.702927 -8.987957 402 7462 7463 + 7462 H 14.925682 -14.560974 -8.448204 403 7461 + 7463 H 13.489976 -15.067821 -8.401821 403 7461 + 7464 O -23.336636 -6.121383 -20.639900 402 7465 7466 + 7465 H -22.869154 -5.535755 -20.072156 403 7464 + 7466 H -24.124908 -6.450781 -20.113919 403 7464 + 7467 O -0.774826 -13.203604 16.888646 402 7468 7469 + 7468 H -1.468020 -13.376023 16.234547 403 7467 + 7469 H -0.931871 -12.304587 17.229608 403 7467 + 7470 O 9.061125 5.283331 17.143683 402 7471 7472 + 7471 H 9.916783 5.174639 16.603587 403 7470 + 7472 H 8.778289 6.220910 17.070877 403 7470 + 7473 O -25.315423 9.781118 -15.359265 402 7474 7475 + 7474 H -24.471315 9.264358 -15.331486 403 7473 + 7475 H -25.606191 9.792640 -14.434801 403 7473 + 7476 O -10.967554 -10.738154 -9.731527 402 7477 7478 + 7477 H -11.765483 -10.936834 -9.181748 403 7476 + 7478 H -10.379375 -10.133651 -9.266538 403 7476 + 7479 O -1.488275 3.623351 -16.767913 402 7480 7481 + 7480 H -0.882657 4.371387 -16.669247 403 7479 + 7481 H -1.492403 3.254437 -17.674715 403 7479 + 7482 O 12.452312 -19.040060 3.375147 402 7483 7484 + 7483 H 12.871486 -19.871899 3.246114 403 7482 + 7484 H 11.754508 -18.893125 2.776534 403 7482 + 7485 O -15.573729 -12.221722 0.716973 402 7486 7487 + 7486 H -15.002380 -12.832434 0.254063 403 7485 + 7487 H -16.254430 -12.772029 1.034977 403 7485 + 7488 O 13.752256 -4.097413 -18.870896 402 7489 7490 + 7489 H 14.581949 -3.712772 -18.513163 403 7488 + 7490 H 13.271688 -3.261042 -18.845949 403 7488 + 7491 O -21.641111 -0.680590 0.005430 402 7492 7493 + 7492 H -21.093432 0.076279 -0.365044 403 7491 + 7493 H -21.445828 -0.814377 0.968664 403 7491 + 7494 O 15.724559 3.520455 6.328412 402 7495 7496 + 7495 H 14.921141 3.234676 6.784467 403 7494 + 7496 H 15.461693 3.698167 5.450324 403 7494 + 7497 O -27.214078 -11.147965 5.082767 402 7498 7499 + 7498 H -26.390239 -11.278816 5.572480 403 7497 + 7499 H -27.321203 -12.054005 4.683669 403 7497 + 7500 O 13.328280 7.582484 -18.567300 402 7501 7502 + 7501 H 14.185844 7.864153 -18.950423 403 7500 + 7502 H 12.732777 7.507446 -19.290185 403 7500 + 7503 O -16.683838 -4.586561 -13.916725 402 7504 7505 + 7504 H -16.820834 -4.523796 -14.842726 403 7503 + 7505 H -15.965498 -5.193692 -13.685180 403 7503 + 7506 O -19.170260 12.551147 12.092952 402 7507 7508 + 7507 H -19.387562 11.609567 12.048568 403 7506 + 7508 H -18.718827 12.726237 11.286473 403 7506 + 7509 O -2.873940 -18.817391 -0.630738 402 7510 7511 + 7510 H -2.585106 -18.870724 -1.613607 403 7509 + 7511 H -3.793192 -19.000736 -0.761036 403 7509 + 7512 O -15.440453 11.669180 16.607856 402 7513 7514 + 7513 H -15.211613 10.749409 16.748182 403 7512 + 7514 H -15.523689 11.929189 17.511524 403 7512 + 7515 O 0.676885 9.019049 7.967361 402 7516 7517 + 7516 H -0.188437 8.924038 8.296825 403 7515 + 7517 H 1.100577 8.314509 8.389075 403 7515 + 7518 O -12.658914 -13.169855 -2.443871 402 7519 7520 + 7519 H -13.329719 -13.325087 -1.824892 403 7518 + 7520 H -12.438077 -13.988972 -2.754186 403 7518 + 7521 O -16.248882 -11.627131 16.273828 402 7522 7523 + 7522 H -16.071661 -12.035171 17.149648 403 7521 + 7523 H -15.584055 -10.905357 16.247158 403 7521 + 7524 O 7.587639 18.040490 0.648325 402 7525 7526 + 7525 H 7.127313 17.621736 1.427370 403 7524 + 7526 H 8.472509 18.025945 0.938181 403 7524 + 7527 O -21.260403 -7.316165 -17.769548 402 7528 7529 + 7528 H -21.464936 -6.579095 -18.356837 403 7527 + 7529 H -21.090642 -6.945093 -16.896335 403 7527 + 7530 O 16.016635 -1.860641 -2.314369 402 7531 7532 + 7531 H 16.938184 -1.677711 -2.476393 403 7530 + 7532 H 15.526197 -1.857629 -3.158683 403 7530 + 7533 O 4.492292 -4.776655 -20.071507 402 7534 7535 + 7534 H 4.666835 -4.194018 -19.383577 403 7533 + 7535 H 5.379154 -5.033244 -20.511472 403 7533 + 7536 O -15.720931 20.128785 -10.578428 402 7537 7538 + 7537 H -15.839702 20.941641 -10.100642 403 7536 + 7538 H -16.315376 20.178519 -11.349297 403 7536 + 7539 O -26.439198 6.163682 -9.860618 402 7540 7541 + 7540 H -25.627768 6.495816 -9.484731 403 7539 + 7541 H -26.911803 6.981208 -10.036013 403 7539 + 7542 O 9.335945 11.329795 -3.722917 402 7543 7544 + 7543 H 8.644451 12.059424 -3.617751 403 7542 + 7544 H 8.888513 10.554570 -4.126032 403 7542 + 7545 O -13.380471 10.478242 6.861111 402 7546 7547 + 7546 H -13.220641 10.103750 7.786550 403 7545 + 7547 H -13.207886 11.438191 6.902907 403 7545 + 7548 O 3.128674 -13.794262 17.620598 402 7549 7550 + 7549 H 2.638158 -13.260660 17.056399 403 7548 + 7550 H 3.597573 -13.167888 18.155001 403 7548 + 7551 O -15.640110 12.239687 19.252890 402 7552 7553 + 7552 H -15.744305 13.228589 19.346365 403 7551 + 7553 H -16.382496 11.838747 19.767704 403 7551 + 7554 O 2.784908 9.116859 -10.197973 402 7555 7556 + 7555 H 3.297798 8.414513 -9.705521 403 7554 + 7556 H 3.275248 9.528201 -10.883691 403 7554 + 7557 O -7.890712 -7.603783 -17.743202 402 7558 7559 + 7558 H -7.124761 -7.008882 -17.935759 403 7557 + 7559 H -8.550851 -7.045750 -18.114982 403 7557 + 7560 O -13.699956 -6.291585 9.543158 402 7561 7562 + 7561 H -14.665087 -6.196216 9.729838 403 7560 + 7562 H -13.399326 -5.367978 9.707420 403 7560 + 7563 O 20.465588 -10.458716 3.145054 402 7564 7565 + 7564 H 20.979944 -10.701349 3.922596 403 7563 + 7565 H 19.551694 -10.315318 3.519540 403 7563 + 7566 O -21.770772 17.965042 -17.112890 402 7567 7568 + 7567 H -20.830189 18.026694 -16.817043 403 7566 + 7568 H -22.065602 18.901599 -17.079860 403 7566 + 7569 O -14.835473 -2.018047 -6.153382 402 7570 7571 + 7570 H -15.436027 -2.198495 -6.881730 403 7569 + 7571 H -15.436197 -1.848312 -5.360006 403 7569 + 7572 O 4.864928 -7.193456 16.503727 402 7573 7574 + 7573 H 4.980211 -6.246101 16.323915 403 7572 + 7574 H 5.579734 -7.640000 16.024530 403 7572 + 7575 O 19.120349 11.030815 -15.362470 402 7576 7577 + 7576 H 19.294800 10.826080 -16.279672 403 7575 + 7577 H 19.622213 10.380633 -14.881548 403 7575 + 7578 O -0.977018 13.926628 -7.123442 402 7579 7580 + 7579 H -1.852314 14.048847 -6.757564 403 7578 + 7580 H -1.008005 14.146864 -8.050474 403 7578 + 7581 O 1.836955 20.649010 5.205237 402 7582 7583 + 7582 H 1.357046 19.856623 4.900209 403 7581 + 7583 H 2.481382 20.946625 4.486330 403 7581 + 7584 O 22.248352 0.089789 14.254305 402 7585 7586 + 7585 H 21.482126 0.622149 14.431275 403 7584 + 7586 H 22.760633 -0.073685 15.065722 403 7584 + 7587 O 4.943704 7.039238 -17.178880 402 7588 7589 + 7588 H 4.132510 7.341202 -17.610714 403 7587 + 7589 H 5.316936 6.264192 -17.636046 403 7587 + 7590 O -13.513178 20.872697 -6.966661 402 7591 7592 + 7591 H -12.917889 20.159554 -6.816410 403 7590 + 7592 H -13.438901 21.399519 -6.129707 403 7590 + 7593 O -26.783745 1.737872 -10.173855 402 7594 7595 + 7594 H -27.406703 1.045834 -9.889439 403 7593 + 7595 H -26.563015 2.284868 -9.419251 403 7593 + 7596 O 16.895897 -14.537239 -4.916419 402 7597 7598 + 7597 H 17.186118 -13.833540 -5.508216 403 7596 + 7598 H 17.149098 -15.342322 -5.413605 403 7596 + 7599 O 26.817205 -3.814990 8.332532 402 7600 7601 + 7600 H 26.423093 -3.721401 9.229654 403 7599 + 7601 H 26.751966 -4.740274 8.261936 403 7599 + 7602 O 26.660512 -8.107918 -18.699113 402 7603 7604 + 7603 H 27.143708 -8.664547 -19.302869 403 7602 + 7604 H 27.318084 -7.817236 -18.086633 403 7602 + 7605 O 10.208858 -14.799716 -11.685147 402 7606 7607 + 7606 H 10.229559 -13.857528 -11.605014 403 7605 + 7607 H 10.909011 -14.996510 -12.361468 403 7605 + 7608 O -7.122161 12.606835 5.012358 402 7609 7610 + 7609 H -6.742894 13.446553 5.343573 403 7608 + 7610 H -6.707272 11.958739 5.582727 403 7608 + 7611 O -1.649859 -17.353593 -19.765333 402 7612 7613 + 7612 H -1.703196 -17.292489 -18.801764 403 7611 + 7613 H -0.740888 -17.269565 -19.956034 403 7611 + 7614 O -25.578511 10.750973 19.368175 402 7615 7616 + 7615 H -25.759953 9.955006 18.909465 403 7614 + 7616 H -26.373616 10.876703 19.816004 403 7614 + 7617 O -15.512850 14.948587 19.552015 402 7618 7619 + 7618 H -14.592416 15.278921 19.862734 403 7617 + 7619 H -15.517720 15.251241 18.670365 403 7617 + 7620 O -22.108713 15.986768 -19.097538 402 7621 7622 + 7621 H -21.973356 16.492171 -18.298729 403 7620 + 7622 H -22.275608 15.084558 -18.884443 403 7620 + 7623 O -24.432040 1.967038 -20.402572 402 7624 7625 + 7624 H -24.316057 2.005234 -19.442897 403 7623 + 7625 H -23.617246 1.596664 -20.796357 403 7623 + 7626 O 0.976021 12.002153 3.317883 402 7627 7628 + 7627 H 1.233810 12.944966 3.271665 403 7626 + 7628 H 1.053167 11.659322 4.215764 403 7626 + 7629 O -22.848328 -11.507211 20.792792 402 7630 7631 + 7630 H -22.031691 -11.288244 20.331458 403 7629 + 7631 H -23.563342 -11.121670 20.237130 403 7629 + 7632 O 5.372331 -6.390447 8.998397 402 7633 7634 + 7633 H 5.156327 -6.136745 8.105017 403 7632 + 7634 H 4.867716 -7.183706 9.243399 403 7632 + 7635 O -5.077546 13.038740 -9.712665 402 7636 7637 + 7636 H -4.384730 12.918197 -10.436683 403 7635 + 7637 H -5.739596 12.361322 -9.833579 403 7635 + 7638 O 4.313864 -17.817036 1.578679 402 7639 7640 + 7639 H 3.642179 -17.175797 1.786403 403 7638 + 7640 H 4.014882 -18.443226 0.872394 403 7638 + 7641 O -10.825600 -3.788470 12.345548 402 7642 7643 + 7642 H -11.474785 -4.350281 12.848087 403 7641 + 7643 H -11.121245 -2.913918 12.572141 403 7641 + 7644 O -10.308333 17.332588 -19.108687 402 7645 7646 + 7645 H -9.699779 18.058376 -18.760246 403 7644 + 7646 H -9.696827 16.600840 -19.450737 403 7644 + 7647 O 20.367843 11.704165 19.663819 402 7648 7649 + 7648 H 19.894726 12.360595 20.126357 403 7647 + 7649 H 20.501092 12.010854 18.743343 403 7647 + 7650 O 4.454769 15.397642 -5.721382 402 7651 7652 + 7651 H 5.096605 14.668068 -5.812036 403 7650 + 7652 H 3.560506 15.012254 -5.700523 403 7650 + 7653 O -10.186828 -2.388640 -11.736429 402 7654 7655 + 7654 H -10.325119 -2.558008 -12.705589 403 7653 + 7655 H -10.806607 -2.883931 -11.193573 403 7653 + 7656 O -24.912356 3.520925 11.318625 402 7657 7658 + 7657 H -24.410292 4.337248 11.078911 403 7656 + 7658 H -25.009199 2.856626 10.581227 403 7656 + 7659 O 25.624082 -17.044203 16.133293 402 7660 7661 + 7660 H 26.569447 -17.105418 15.881796 403 7659 + 7661 H 25.526730 -16.778186 17.038064 403 7659 + 7662 O -18.172292 -12.061346 20.656118 402 7663 7664 + 7663 H -19.064000 -11.714052 20.415716 403 7662 + 7664 H -18.318393 -12.531580 21.542312 403 7662 + 7665 O -2.771360 17.065768 -3.605776 402 7666 7667 + 7666 H -3.498372 16.467521 -3.261648 403 7665 + 7667 H -3.165333 17.613939 -4.263088 403 7665 + 7668 O 3.828793 -18.285133 -12.035298 402 7669 7670 + 7669 H 4.572657 -18.613626 -12.559285 403 7668 + 7670 H 4.121067 -17.462806 -11.547371 403 7668 + 7671 O 6.372209 19.895468 -0.828574 402 7672 7673 + 7672 H 6.671245 19.260688 -0.181419 403 7671 + 7673 H 6.498252 20.741942 -0.410853 403 7671 + 7674 O -26.077165 -2.986273 -6.579517 402 7675 7676 + 7675 H -26.530567 -3.662357 -7.045915 403 7674 + 7676 H -25.278966 -3.412687 -6.199533 403 7674 + 7677 O 1.066751 -11.604098 -7.437054 402 7678 7679 + 7678 H 0.780778 -12.103600 -8.170135 403 7677 + 7679 H 0.490797 -10.859423 -7.390052 403 7677 + 7680 O 26.435886 -19.880105 20.436273 402 7681 7682 + 7681 H 27.363986 -19.578464 20.393790 403 7680 + 7682 H 25.964716 -19.053915 20.333618 403 7680 + 7683 O 3.948373 18.634138 -19.227666 402 7684 7685 + 7684 H 4.776804 18.681442 -18.670875 403 7683 + 7685 H 3.724437 19.545742 -19.268399 403 7683 + 7686 O 6.895853 -2.593776 -14.926776 402 7687 7688 + 7687 H 6.939228 -1.872325 -14.297950 403 7686 + 7688 H 5.922138 -2.668665 -14.881269 403 7686 + 7689 O -11.002838 -0.157918 -15.377800 402 7690 7691 + 7690 H -11.039095 0.271800 -14.533222 403 7689 + 7691 H -11.858546 -0.101002 -15.791180 403 7689 + 7692 O -23.278682 -12.335400 16.986956 402 7693 7694 + 7693 H -23.969958 -13.046960 17.013455 403 7692 + 7694 H -23.739191 -11.494386 17.223424 403 7692 + 7695 O -8.733901 10.961189 15.538536 402 7696 7697 + 7696 H -9.664866 10.721280 15.448379 403 7695 + 7697 H -8.333145 10.082375 15.772687 403 7695 + 7698 O -18.407350 15.043497 -16.093194 402 7699 7700 + 7699 H -17.602548 15.511802 -15.718946 403 7698 + 7700 H -18.860502 14.688871 -15.320254 403 7698 + 7701 O -7.717846 -19.245322 6.135762 402 7702 7703 + 7702 H -8.369623 -18.587554 5.773934 403 7701 + 7703 H -8.005786 -19.439467 7.014406 403 7701 + 7704 O 27.537835 -2.244938 17.802365 402 7705 7706 + 7705 H 26.595262 -2.186775 17.618048 403 7704 + 7706 H 27.566413 -2.809518 18.555718 403 7704 + 7707 O 14.035672 -13.942494 -5.025234 402 7708 7709 + 7708 H 13.436663 -14.726681 -5.087496 403 7707 + 7709 H 14.937241 -14.361386 -5.014306 403 7707 + 7710 O -21.221588 13.030355 13.864922 402 7711 7712 + 7711 H -20.364838 12.937985 13.362956 403 7710 + 7712 H -21.556169 12.132892 13.747752 403 7710 + 7713 O 3.382602 17.477038 1.971338 402 7714 7715 + 7714 H 2.998725 16.711070 1.403757 403 7713 + 7715 H 3.440438 18.202483 1.331855 403 7713 + 7716 O -27.449290 2.763472 -5.473864 402 7717 7718 + 7717 H -26.862644 2.952928 -6.231930 403 7716 + 7718 H -28.220354 2.416823 -5.903707 403 7716 + 7719 O 21.309171 1.208177 18.719816 402 7720 7721 + 7720 H 20.908787 2.039246 18.612886 403 7719 + 7721 H 21.184556 0.863131 19.641302 403 7719 + 7722 O 11.888692 16.675087 -12.603821 402 7723 7724 + 7723 H 10.999248 16.541633 -13.021832 403 7722 + 7724 H 11.878107 16.199062 -11.723643 403 7722 + 7725 O 15.960563 -12.459489 -12.277920 402 7726 7727 + 7726 H 16.878686 -12.644050 -12.500987 403 7725 + 7727 H 16.057647 -11.602612 -11.757235 403 7725 + 7728 O -12.060427 7.034589 4.513332 402 7729 7730 + 7729 H -11.557894 7.520852 3.823017 403 7728 + 7730 H -11.343768 6.740188 5.138402 403 7728 + 7731 O -8.561873 -15.574827 18.511819 402 7732 7733 + 7732 H -8.355748 -14.726119 18.975068 403 7731 + 7733 H -9.321577 -15.327632 17.928691 403 7731 + 7734 O 26.839386 -9.977418 -11.801214 402 7735 7736 + 7735 H 27.210714 -10.886833 -12.066458 403 7734 + 7736 H 26.680237 -9.508287 -12.672668 403 7734 + 7737 O 19.487816 -4.295750 -10.653772 402 7738 7739 + 7738 H 19.155987 -5.040203 -11.186489 403 7737 + 7739 H 19.101905 -4.274245 -9.721574 403 7737 + 7740 O -2.617367 -9.196096 12.807798 402 7741 7742 + 7741 H -3.053330 -8.849761 12.003083 403 7740 + 7742 H -1.757135 -8.732443 12.734709 403 7740 + 7743 O 6.741614 9.283527 -17.879312 402 7744 7745 + 7744 H 6.380288 9.612761 -18.710343 403 7743 + 7745 H 6.169408 8.510946 -17.615438 403 7743 + 7746 O -15.244518 -2.348788 -16.411194 402 7747 7748 + 7747 H -15.286492 -3.293206 -16.627416 403 7746 + 7748 H -16.141604 -2.133344 -16.101761 403 7746 + 7749 O 24.076224 14.005333 -20.764432 402 7750 7751 + 7750 H 23.579840 13.567519 -20.086274 403 7749 + 7751 H 24.304722 13.264661 -21.387917 403 7749 + 7752 O 5.197586 -0.122428 -17.048391 402 7753 7754 + 7753 H 5.961074 0.070496 -16.498322 403 7752 + 7754 H 4.803638 0.707910 -17.262899 403 7752 + 7755 O -12.626531 20.869184 -20.635254 402 7756 7757 + 7756 H -12.565754 20.478495 -19.764243 403 7755 + 7757 H -13.248230 21.560435 -20.592028 403 7755 + 7758 O -6.742302 15.365874 -8.317692 402 7759 7760 + 7759 H -6.373557 14.699314 -8.910768 403 7758 + 7760 H -7.355781 15.918239 -8.809096 403 7758 + 7761 O -8.968953 -3.618531 16.586721 402 7762 7763 + 7762 H -8.318587 -4.203738 17.052583 403 7761 + 7763 H -8.772937 -2.703569 16.930654 403 7761 + 7764 O 4.646490 -13.425952 -20.543948 402 7765 7766 + 7765 H 5.006101 -13.053008 -19.771175 403 7764 + 7766 H 4.114028 -14.244399 -20.306406 403 7764 + 7767 O 20.560148 15.165785 18.388964 402 7768 7769 + 7768 H 20.026901 15.914780 18.133927 403 7767 + 7769 H 20.137478 14.695974 19.131845 403 7767 + 7770 O 16.253616 13.647989 17.466410 402 7771 7772 + 7771 H 16.144396 14.607506 17.611846 403 7770 + 7772 H 15.603177 13.394335 16.728326 403 7770 + 7773 O -2.493112 -10.958918 18.158226 402 7774 7775 + 7774 H -2.871350 -10.325469 17.572446 403 7773 + 7775 H -3.230138 -11.343072 18.670608 403 7773 + 7776 O 24.417011 1.731847 15.781773 402 7777 7778 + 7777 H 24.256339 1.199810 16.598463 403 7776 + 7778 H 24.103762 2.612690 16.033534 403 7776 + 7779 O 23.869641 5.093835 -10.829152 402 7780 7781 + 7780 H 23.849127 5.899360 -10.350720 403 7779 + 7781 H 24.806312 4.827153 -11.005653 403 7779 + 7782 O -25.326011 -10.985445 0.393748 402 7783 7784 + 7783 H -24.487021 -11.323998 0.018652 403 7782 + 7784 H -25.846018 -10.577330 -0.299092 403 7782 + 7785 O -22.140365 -4.015548 -19.394205 402 7786 7787 + 7786 H -21.298001 -3.731962 -19.753685 403 7785 + 7787 H -22.037014 -3.787820 -18.464135 403 7785 + 7788 O 16.480100 17.378886 -8.149325 402 7789 7790 + 7789 H 15.944629 17.865308 -8.816984 403 7788 + 7790 H 17.136048 16.933781 -8.707099 403 7788 + 7791 O 9.225758 13.395457 -14.366037 402 7792 7793 + 7792 H 8.369757 13.485099 -14.794251 403 7791 + 7793 H 9.149310 12.977217 -13.491919 403 7791 + 7794 O -11.512364 7.735604 17.233390 402 7795 7796 + 7795 H -11.580776 7.745448 18.221759 403 7794 + 7796 H -10.572713 7.856344 17.057877 403 7794 + 7797 O 22.313965 -17.567699 -18.743216 402 7798 7799 + 7798 H 22.795472 -18.390700 -18.665650 403 7797 + 7799 H 21.527641 -17.771604 -19.283408 403 7797 + 7800 O 26.008630 -8.991349 -9.190478 402 7801 7802 + 7801 H 26.251546 -9.200527 -10.105321 403 7800 + 7802 H 25.207812 -9.493737 -9.000776 403 7800 + 7803 O 16.930474 19.046264 7.447647 402 7804 7805 + 7804 H 16.385483 19.298108 8.210284 403 7803 + 7805 H 17.081495 19.851182 6.876771 403 7803 + 7806 O -6.878192 14.458044 -14.342832 402 7807 7808 + 7807 H -6.947724 15.178650 -14.986529 403 7806 + 7808 H -6.902494 14.876539 -13.459345 403 7806 + 7809 O -2.603745 -0.170130 11.118461 402 7810 7811 + 7810 H -2.603735 0.193993 10.245898 403 7809 + 7811 H -2.301286 0.557857 11.700540 403 7809 + 7812 O -18.658918 6.935889 12.709416 402 7813 7814 + 7813 H -18.611105 7.903442 12.826990 403 7812 + 7814 H -17.731206 6.682204 12.672567 403 7812 + 7815 O 8.242150 20.321564 16.671943 402 7816 7817 + 7816 H 8.085884 19.395160 16.403784 403 7815 + 7817 H 9.204603 20.443804 16.719883 403 7815 + 7818 O -26.194647 -1.598660 12.827976 402 7819 7820 + 7819 H -25.470850 -1.539447 12.228660 403 7818 + 7820 H -26.434617 -2.532329 12.905279 403 7818 + 7821 O 18.147255 11.834318 16.939503 402 7822 7823 + 7822 H 17.684791 12.638752 17.229443 403 7821 + 7823 H 19.094703 11.992223 16.922098 403 7821 + 7824 O -24.103113 17.414200 -20.406032 402 7825 7826 + 7825 H -24.841847 16.822155 -20.721607 403 7824 + 7826 H -23.364705 16.873068 -20.183752 403 7824 + 7827 O -20.188758 19.419367 -3.947439 402 7828 7829 + 7828 H -20.092108 20.138589 -4.627770 403 7827 + 7829 H -20.779520 18.760391 -4.305720 403 7827 + 7830 O -19.169152 16.892293 -12.706791 402 7831 7832 + 7831 H -18.376967 16.525250 -12.263419 403 7830 + 7832 H -19.451828 16.244073 -13.317784 403 7830 + 7833 O 3.042793 -9.624584 6.339287 402 7834 7835 + 7834 H 2.126469 -9.764000 6.059404 403 7833 + 7835 H 3.422607 -10.448883 6.082030 403 7833 + 7836 O 26.796575 -0.250362 10.146355 402 7837 7838 + 7837 H 27.695465 -0.487351 9.790163 403 7836 + 7838 H 26.991766 0.015930 11.058370 403 7836 + 7839 O -2.724018 -17.347993 -17.041468 402 7840 7841 + 7840 H -3.685391 -17.148462 -17.004347 403 7839 + 7841 H -2.333214 -17.040061 -16.217705 403 7839 + 7842 O 22.693834 -19.258880 -8.334918 402 7843 7844 + 7843 H 23.207274 -18.747223 -7.672504 403 7842 + 7844 H 21.922700 -19.482635 -7.787257 403 7842 + 7845 O 10.650819 14.245326 -8.863815 402 7846 7847 + 7846 H 10.590380 14.958254 -9.492462 403 7845 + 7847 H 9.797431 14.052470 -8.521894 403 7845 + 7848 O 21.896317 10.846424 11.520743 402 7849 7850 + 7849 H 22.820423 10.614982 11.723752 403 7848 + 7850 H 21.512259 10.848333 12.397036 403 7848 + 7851 O -16.629808 6.024934 -16.061930 402 7852 7853 + 7852 H -16.979035 6.163556 -15.154311 403 7851 + 7853 H -16.556800 6.853702 -16.565081 403 7851 + 7854 O -24.056464 -15.267357 -3.334116 402 7855 7856 + 7855 H -24.017471 -15.426759 -2.411717 403 7854 + 7856 H -23.826595 -16.112409 -3.791556 403 7854 + 7857 O -24.814205 14.617559 -6.421721 402 7858 7859 + 7858 H -24.613019 15.462145 -6.916680 403 7857 + 7859 H -25.784459 14.689331 -6.455648 403 7857 + 7860 O 12.539335 -4.690091 16.952299 402 7861 7862 + 7861 H 12.874872 -3.959104 17.433778 403 7860 + 7862 H 13.165313 -5.396450 16.984519 403 7860 + 7863 O 27.426473 -20.349285 -4.187459 402 7864 7865 + 7864 H 26.932613 -20.185019 -4.988935 403 7863 + 7865 H 27.020619 -19.915963 -3.444392 403 7863 + 7866 O -25.378069 18.390923 12.676602 402 7867 7868 + 7867 H -25.468295 18.108442 13.617931 403 7866 + 7868 H -26.284264 18.454249 12.373374 403 7866 + 7869 O 2.358488 15.655904 0.172343 402 7870 7871 + 7870 H 1.576275 15.538047 -0.330180 403 7869 + 7871 H 2.949284 15.115348 -0.279388 403 7869 + 7872 O 17.823860 -16.181961 4.219054 402 7873 7874 + 7873 H 16.871832 -16.285669 3.895196 403 7872 + 7874 H 18.296855 -16.171292 3.367102 403 7872 + 7875 O -13.185175 11.185524 20.273552 402 7876 7877 + 7876 H -12.491020 11.326572 19.606343 403 7875 + 7877 H -14.008783 11.327741 19.799749 403 7875 + 7878 O -16.946375 18.382248 -17.880917 402 7879 7880 + 7879 H -16.601871 19.114714 -17.373712 403 7878 + 7880 H -17.112525 18.719683 -18.756566 403 7878 + 7881 O 4.139489 13.924517 -8.158999 402 7882 7883 + 7882 H 3.276763 13.674016 -7.871220 403 7881 + 7883 H 4.619548 13.009700 -8.222873 403 7881 + 7884 O 19.195530 19.194186 -15.410073 402 7885 7886 + 7885 H 19.530087 20.044690 -15.698710 403 7884 + 7886 H 18.880211 18.717599 -16.173654 403 7884 + 7887 O 22.465366 -15.697985 -16.572314 402 7888 7889 + 7888 H 22.341005 -16.447983 -17.175221 403 7887 + 7889 H 23.268415 -15.298896 -16.787665 403 7887 + 7890 O -6.168779 -9.840021 -9.350190 402 7891 7892 + 7891 H -6.138060 -10.776075 -9.519650 403 7890 + 7892 H -5.375773 -9.424169 -9.650695 403 7890 + 7893 O 25.209173 18.017697 -14.898072 402 7894 7895 + 7894 H 24.521605 17.467415 -14.490123 403 7893 + 7895 H 25.669461 17.420196 -15.513375 403 7893 + 7896 O 1.750289 -0.354167 -16.972701 402 7897 7898 + 7897 H 1.941430 -1.107141 -17.603779 403 7896 + 7898 H 1.332140 0.330238 -17.528621 403 7896 + 7899 O 18.682749 11.765475 10.852294 402 7900 7901 + 7900 H 19.563556 11.904202 10.494828 403 7899 + 7901 H 18.677947 10.845188 11.223074 403 7899 + 7902 O -9.368425 16.562190 4.853452 402 7903 7904 + 7903 H -8.407375 16.292116 4.842479 403 7902 + 7904 H -9.332928 17.502581 4.563723 403 7902 + 7905 O -14.320728 -5.516222 -17.892457 402 7906 7907 + 7906 H -14.106677 -5.147397 -18.800379 403 7905 + 7907 H -14.225038 -6.471192 -17.943054 403 7905 + 7908 O -22.779663 -5.587037 4.961004 402 7909 7910 + 7909 H -23.387774 -5.905882 4.279957 403 7908 + 7910 H -22.003636 -6.116854 4.731429 403 7908 + 7911 O 1.608693 14.675487 10.806060 402 7912 7913 + 7912 H 2.333564 15.322059 10.910925 403 7911 + 7913 H 1.191042 14.647480 11.723121 403 7911 + 7914 O -19.989851 14.272748 -13.831000 402 7915 7916 + 7915 H -20.108765 14.145345 -12.856725 403 7914 + 7916 H -20.810178 14.265544 -14.251075 403 7914 + 7917 O -0.277500 6.116052 -20.054497 402 7918 7919 + 7918 H -1.205482 6.025573 -19.750342 403 7917 + 7919 H 0.030270 6.890733 -19.590961 403 7917 + 7920 O -23.218686 16.925049 -14.531729 402 7921 7922 + 7921 H -24.154801 17.137589 -14.620012 403 7920 + 7922 H -22.798436 17.177619 -15.342960 403 7920 + 7923 O 14.465041 -13.890297 11.092988 402 7924 7925 + 7924 H 14.125737 -13.087596 11.450092 403 7923 + 7925 H 14.769204 -13.729760 10.198115 403 7923 + 7926 O -19.342535 19.484499 18.315509 402 7927 7928 + 7927 H -18.817282 19.354539 19.111327 403 7926 + 7928 H -19.942353 18.726732 18.320837 403 7926 + 7929 O 0.909574 12.732606 15.451247 402 7930 7931 + 7930 H 0.713888 11.749814 15.284439 403 7929 + 7931 H 1.425345 12.740199 16.283139 403 7929 + 7932 O -2.274926 14.829696 20.985211 402 7933 7934 + 7933 H -2.781123 13.962453 20.790809 403 7932 + 7934 H -2.630126 15.421882 20.359114 403 7932 + 7935 O 7.507399 6.793027 13.609399 402 7936 7937 + 7936 H 7.518937 7.728154 13.813229 403 7935 + 7937 H 8.443553 6.424691 13.587889 403 7935 + 7938 O 12.870660 -12.764019 -10.964166 402 7939 7940 + 7939 H 12.942835 -13.465015 -11.598871 403 7938 + 7940 H 13.227628 -13.197338 -10.244586 403 7938 + 7941 O 8.913179 -11.919018 -6.239675 402 7942 7943 + 7942 H 8.887002 -11.850316 -5.252925 403 7941 + 7943 H 8.813455 -11.004941 -6.499380 403 7941 + 7944 O -25.746417 7.206326 5.578919 402 7945 7946 + 7945 H -25.082293 6.620904 5.823246 403 7944 + 7946 H -26.564541 6.922453 6.051858 403 7944 + 7947 O 25.894755 9.257899 3.861774 402 7948 7949 + 7948 H 26.648604 8.789353 3.465470 403 7947 + 7949 H 25.145952 8.756940 3.475241 403 7947 + 7950 O -8.830905 19.535286 -18.058852 402 7951 7952 + 7951 H -7.932809 19.419232 -17.567730 403 7950 + 7952 H -8.446850 19.854198 -18.903385 403 7950 + 7953 O 18.592621 -6.587479 -13.125998 402 7954 7955 + 7954 H 18.627063 -5.766281 -13.617980 403 7953 + 7955 H 19.549944 -6.934441 -13.170231 403 7953 + 7956 O -27.003747 -19.268722 -9.708049 402 7957 7958 + 7957 H -26.900925 -18.931745 -10.609127 403 7956 + 7958 H -27.848600 -18.948692 -9.403186 403 7956 + 7959 O 25.990256 18.432601 -19.230300 402 7960 7961 + 7960 H 26.786890 18.827306 -19.540837 403 7959 + 7961 H 25.720829 18.921009 -18.426769 403 7959 + 7962 O -23.820277 -18.817979 -12.740742 402 7963 7964 + 7963 H -23.782285 -19.769046 -12.956748 403 7962 + 7964 H -23.248364 -18.334977 -13.329239 403 7962 + 7965 O -18.359691 4.931419 0.480080 402 7966 7967 + 7966 H -18.326292 5.822977 0.895967 403 7965 + 7967 H -17.534355 4.919940 -0.130658 403 7965 + 7968 O -18.507249 20.994985 10.044481 402 7969 7970 + 7969 H -18.547987 20.135365 9.607738 403 7968 + 7970 H -19.101082 20.989892 10.808237 403 7968 + 7971 O -4.383167 -16.727404 18.388451 402 7972 7973 + 7972 H -5.073507 -17.158665 17.848255 403 7971 + 7973 H -3.547429 -16.962110 18.031186 403 7971 + 7974 O -4.804252 -2.255440 12.424858 402 7975 7976 + 7975 H -5.246469 -3.100345 12.658891 403 7974 + 7976 H -3.913941 -2.453866 12.205563 403 7974 + 7977 O -24.450781 12.411164 4.813077 402 7978 7979 + 7978 H -24.979534 11.582140 4.901976 403 7977 + 7979 H -24.028938 12.289668 3.990280 403 7977 + 7980 O -26.039273 15.478503 -20.033643 402 7981 7982 + 7981 H -25.787380 14.593225 -19.599455 403 7980 + 7982 H -26.775794 15.819420 -19.491089 403 7980 + 7983 O 14.062056 9.563642 16.993740 402 7984 7985 + 7984 H 14.763770 8.911350 17.143673 403 7983 + 7985 H 14.500104 10.412012 17.077299 403 7983 + 7986 O 4.484184 -11.730676 11.850201 402 7987 7988 + 7987 H 4.881439 -12.103947 12.684819 403 7986 + 7988 H 3.547835 -11.668873 12.049225 403 7986 + 7989 O -14.097503 8.062860 -18.256877 402 7990 7991 + 7990 H -14.097091 8.286015 -19.217701 403 7989 + 7991 H -14.272348 7.101844 -18.168430 403 7989 + 7992 O -1.242617 -6.859800 16.709128 402 7993 7994 + 7993 H -1.538903 -6.069642 17.158826 403 7992 + 7994 H -0.956774 -6.520222 15.820973 403 7992 + 7995 O -1.281101 10.186382 20.363478 402 7996 7997 + 7996 H -1.124991 9.953584 19.434999 403 7995 + 7997 H -1.916024 10.917360 20.415283 403 7995 + 7998 O 4.583247 -14.837260 7.792526 402 7999 8000 + 7999 H 5.277242 -15.516956 7.802532 403 7998 + 8000 H 3.716772 -15.158571 7.921129 403 7998 + 8001 O -4.482585 -19.369183 -19.767924 402 8002 8003 + 8002 H -4.741173 -18.669761 -19.147665 403 8001 + 8003 H -4.193943 -19.053555 -20.619737 403 8001 + 8004 O 7.047318 -14.707276 -20.284385 402 8005 8006 + 8005 H 6.703500 -15.207330 -19.488017 403 8004 + 8006 H 6.190142 -14.503563 -20.700524 403 8004 + 8007 O 23.833142 -6.861157 16.589067 402 8008 8009 + 8008 H 24.695476 -7.170817 16.950692 403 8007 + 8009 H 23.677150 -7.301955 15.784807 403 8007 + 8010 O 5.995679 -17.998909 3.914141 402 8011 8012 + 8011 H 5.476318 -17.882781 3.080567 403 8010 + 8012 H 5.412579 -18.346872 4.640099 403 8010 + 8013 O -16.261535 -16.837503 19.128385 402 8014 8015 + 8014 H -16.159495 -17.582113 18.531735 403 8013 + 8015 H -16.037295 -17.072210 20.047591 403 8013 + 8016 O 12.975391 18.290335 10.617581 402 8017 8018 + 8017 H 12.118949 18.283115 10.175431 403 8016 + 8018 H 12.802601 18.580055 11.511186 403 8016 + 8019 O -16.943334 -0.673380 -20.801827 402 8020 8021 + 8020 H -17.817924 -1.087446 -20.715945 403 8019 + 8021 H -17.115465 0.133442 -21.270654 403 8019 + 8022 O 6.976699 -19.049773 17.844693 402 8023 8024 + 8023 H 7.570702 -18.339339 17.660197 403 8022 + 8024 H 7.315559 -19.860252 17.427987 403 8022 + 8025 O 24.109467 19.393222 12.331621 402 8026 8027 + 8026 H 23.874527 19.733950 13.195341 403 8025 + 8027 H 23.847585 18.486492 12.389872 403 8025 + 8028 O -10.766788 -13.469242 4.827464 402 8029 8030 + 8029 H -10.709694 -13.795601 3.910452 403 8028 + 8030 H -10.845380 -12.510608 4.689270 403 8028 + 8031 O 23.311349 8.299149 -20.488106 402 8032 8033 + 8032 H 22.936005 9.229209 -20.435353 403 8031 + 8033 H 23.101181 8.056904 -21.396526 403 8031 + 8034 O 14.346382 2.187727 18.536242 402 8035 8036 + 8035 H 14.267850 1.244178 18.689768 403 8034 + 8036 H 15.244469 2.406046 18.304739 403 8034 + 8037 O -26.947566 -9.971921 -7.791553 402 8038 8039 + 8038 H -26.523003 -9.588995 -7.018587 403 8037 + 8039 H -27.719947 -9.398867 -7.926452 403 8037 + 8040 O -1.645004 -17.217466 18.281848 402 8041 8042 + 8041 H -1.503441 -17.212547 17.328466 403 8040 + 8042 H -1.259441 -16.407871 18.526419 403 8040 + 8043 O -18.185068 -13.481465 -18.963605 402 8044 8045 + 8044 H -18.306998 -12.962840 -18.154768 403 8043 + 8045 H -18.826126 -14.192063 -18.983318 403 8043 + 8046 O 21.894032 -11.323972 -14.426640 402 8047 8048 + 8047 H 22.165764 -10.897898 -13.607124 403 8046 + 8048 H 22.549926 -11.213429 -15.092175 403 8046 + 8049 O 10.286552 3.282899 -14.672865 402 8050 8051 + 8050 H 10.156644 2.736482 -13.881860 403 8049 + 8051 H 9.503828 3.794923 -14.925645 403 8049 + 8052 O -17.275465 -16.899995 -12.204316 402 8053 8054 + 8053 H -16.650047 -17.347498 -12.847925 403 8052 + 8054 H -17.728716 -17.694142 -11.839955 403 8052 + 8055 O 9.132713 -17.465568 14.475104 402 8056 8057 + 8056 H 9.109121 -16.931937 13.716053 403 8055 + 8057 H 8.685477 -18.260615 14.298118 403 8055 + 8058 O -2.219003 -10.437316 7.385585 402 8059 8060 + 8059 H -2.683869 -9.726981 6.932036 403 8058 + 8060 H -2.863656 -10.910261 7.899378 403 8058 + 8061 O 21.328627 5.452241 -5.411722 402 8062 8063 + 8062 H 20.702591 5.402774 -4.696060 403 8061 + 8063 H 21.847512 4.616832 -5.258353 403 8061 + 8064 O 25.174339 -4.700786 4.319189 402 8065 8066 + 8065 H 25.475426 -5.192515 3.516499 403 8064 + 8066 H 24.849082 -5.290270 5.019481 403 8064 + 8067 O -20.973509 17.475850 18.235841 402 8068 8069 + 8068 H -20.795645 16.959839 19.077904 403 8067 + 8069 H -21.937194 17.741268 18.405829 403 8067 + 8070 O -17.032214 -4.404070 -16.615581 402 8071 8072 + 8071 H -18.027750 -4.237947 -16.713048 403 8070 + 8072 H -16.825738 -5.153522 -17.221012 403 8070 + 8073 O 5.077355 4.864838 15.841740 402 8074 8075 + 8074 H 5.888380 4.293000 15.916342 403 8073 + 8075 H 5.502771 5.719564 15.999661 403 8073 + 8076 O 14.150746 7.193364 7.768856 402 8077 8078 + 8077 H 13.512887 7.556242 8.342946 403 8076 + 8078 H 13.719519 6.964481 6.933299 403 8076 + 8079 O 24.979967 10.864144 -3.827107 402 8080 8081 + 8080 H 25.315666 11.790605 -3.820018 403 8079 + 8081 H 24.586117 10.647324 -4.635764 403 8079 + 8082 O -19.307013 7.977617 -19.097895 402 8083 8084 + 8083 H -18.730894 8.713079 -18.873103 403 8082 + 8084 H -19.574094 8.132279 -20.016040 403 8082 + 8085 O 24.806727 -12.761480 -19.492468 402 8086 8087 + 8086 H 24.884669 -13.553250 -18.933552 403 8085 + 8087 H 23.868023 -12.741257 -19.679606 403 8085 + 8088 O -16.494024 -10.263681 -3.455262 402 8089 8090 + 8089 H -16.433900 -9.520847 -4.087773 403 8088 + 8090 H -16.512097 -9.942519 -2.552121 403 8088 + 8091 O 7.239107 -8.678420 15.402099 402 8092 8093 + 8092 H 8.128327 -8.620090 15.837696 403 8091 + 8093 H 7.413730 -9.358400 14.729775 403 8091 + 8094 O -11.637039 -18.299602 1.445919 402 8095 8096 + 8095 H -11.805502 -17.472273 0.974361 403 8094 + 8096 H -10.835652 -18.063314 1.950128 403 8094 + 8097 O 3.539913 -9.008378 14.869684 402 8098 8099 + 8098 H 3.690725 -8.667083 13.987735 403 8097 + 8099 H 3.786240 -8.275061 15.438308 403 8097 + 8100 O 25.309639 -20.139973 8.261630 402 8101 8102 + 8101 H 26.025004 -20.789387 8.243372 403 8100 + 8102 H 24.785538 -20.229959 9.088332 403 8100 + 8103 O -11.167618 15.368263 17.768795 402 8104 8105 + 8104 H -11.447760 15.042536 16.890680 403 8103 + 8105 H -10.221576 15.243374 17.719247 403 8103 + 8106 O 15.783799 16.252451 16.657327 402 8107 8108 + 8107 H 16.469650 16.826129 16.279349 403 8106 + 8108 H 15.146657 16.166099 16.010457 403 8106 + 8109 O -23.087822 12.851874 11.524125 402 8110 8111 + 8110 H -22.550515 13.272517 12.247361 403 8109 + 8111 H -23.433828 13.646077 11.045696 403 8109 + 8112 O 18.224787 5.336233 10.181216 402 8113 8114 + 8113 H 17.768669 5.758936 9.423686 403 8112 + 8114 H 17.527118 5.295554 10.828797 403 8112 + 8115 O 23.091715 -2.832106 10.928215 402 8116 8117 + 8116 H 23.963022 -3.221214 10.847174 403 8115 + 8117 H 23.111421 -1.957098 10.500452 403 8115 + 8118 O -8.122293 -8.153763 8.762475 402 8119 8120 + 8119 H -8.486311 -7.377176 8.275878 403 8118 + 8120 H -7.842547 -7.967759 9.693098 403 8118 + 8121 O -23.746981 -1.978340 20.222446 402 8122 8123 + 8122 H -24.119623 -2.610408 19.587105 403 8121 + 8123 H -22.788269 -2.052555 20.075719 403 8121 + 8124 O 15.889034 -8.818090 19.786354 402 8125 8126 + 8125 H 16.162821 -8.087882 19.189549 403 8124 + 8126 H 16.517604 -9.567302 19.583898 403 8124 + 8127 O -22.434542 -1.993577 2.665229 402 8128 8129 + 8128 H -21.639169 -2.320398 3.125908 403 8127 + 8129 H -22.887302 -1.544538 3.368374 403 8127 + 8130 O -4.294135 12.198286 3.905187 402 8131 8132 + 8131 H -3.524217 12.481373 3.400532 403 8130 + 8132 H -4.358032 12.831366 4.583192 403 8130 + 8133 O -10.287802 2.763656 12.120543 402 8134 8135 + 8134 H -10.140580 1.873404 11.826731 403 8133 + 8135 H -10.262187 2.731368 13.100818 403 8133 + 8136 O 11.514142 11.933521 -10.265166 402 8137 8138 + 8137 H 11.257715 12.740478 -9.772518 403 8136 + 8138 H 11.449563 11.209135 -9.611780 403 8136 + 8139 O 4.752686 10.041816 10.494911 402 8140 8141 + 8140 H 5.000099 10.228340 11.405783 403 8139 + 8141 H 4.465587 10.901799 10.118351 403 8139 + 8142 O 17.099352 -16.900118 20.580015 402 8143 8144 + 8143 H 16.248341 -17.056394 20.914403 403 8142 + 8144 H 16.964732 -16.230792 19.853524 403 8142 + 8145 O -6.880763 4.754709 14.803663 402 8146 8147 + 8146 H -7.780049 5.017298 14.837120 403 8145 + 8147 H -6.602000 5.380408 14.109963 403 8145 + 8148 O 18.852257 3.117416 3.416315 402 8149 8150 + 8149 H 18.466519 2.248205 3.599368 403 8148 + 8150 H 19.770424 2.988919 3.600584 403 8148 + 8151 O -19.565302 -15.452338 -12.857316 402 8152 8153 + 8152 H -19.465174 -14.703294 -13.434992 403 8151 + 8153 H -18.713185 -15.861077 -12.849765 403 8151 + 8154 O -22.600437 -10.691469 12.850297 402 8155 8156 + 8155 H -23.397550 -10.659087 13.302216 403 8154 + 8156 H -22.787116 -11.067370 12.012734 403 8154 + 8157 O -21.982415 -13.573385 -4.311729 402 8158 8159 + 8158 H -22.884778 -13.924822 -4.053153 403 8157 + 8159 H -21.591210 -13.340585 -3.436663 403 8157 + 8160 O -9.482768 -17.119153 10.316888 402 8161 8162 + 8161 H -10.089752 -16.593034 9.704444 403 8160 + 8162 H -9.402425 -17.912940 9.854825 403 8160 + 8163 O 14.779023 -10.205617 3.169184 402 8164 8165 + 8164 H 14.033719 -9.624095 2.903870 403 8163 + 8165 H 14.431082 -10.650018 3.996000 403 8163 + 8166 O -23.065785 7.688851 4.302863 402 8167 8168 + 8167 H -23.519497 6.846326 4.179947 403 8166 + 8168 H -23.396856 8.243234 3.642471 403 8166 + 8169 O -12.420110 17.313613 -9.713155 402 8170 8171 + 8170 H -13.364634 17.232909 -9.649724 403 8169 + 8171 H -12.198343 18.200726 -10.087577 403 8169 + 8172 O 13.807063 -18.735375 -18.358481 402 8173 8174 + 8173 H 13.518261 -18.146104 -17.665040 403 8172 + 8174 H 14.609291 -19.207101 -18.003404 403 8172 + 8175 O 10.712591 7.098327 3.970951 402 8176 8177 + 8176 H 10.424496 6.939336 4.829144 403 8175 + 8177 H 10.486897 6.231102 3.501449 403 8175 + 8178 O -26.193278 8.679696 17.901485 402 8179 8180 + 8179 H -25.410504 8.357458 17.457879 403 8178 + 8180 H -26.819464 8.901614 17.137834 403 8178 + 8181 O 19.451507 -12.567707 -15.280479 402 8182 8183 + 8182 H 19.003766 -12.254527 -14.428024 403 8181 + 8183 H 20.294592 -12.135913 -15.254851 403 8181 + 8184 O -14.332854 -0.923507 14.572189 402 8185 8186 + 8185 H -14.044747 -0.194105 14.037975 403 8184 + 8186 H -13.492568 -1.193300 14.988120 403 8184 + 8187 O -8.730522 14.085678 -10.180676 402 8188 8189 + 8188 H -8.524068 13.138626 -10.211460 403 8187 + 8189 H -9.480763 14.191583 -10.748692 403 8187 + 8190 O -18.278878 -5.590157 8.386336 402 8191 8192 + 8191 H -18.405152 -4.662040 8.661744 403 8190 + 8192 H -17.563780 -5.717750 9.039776 403 8190 + 8193 O -24.210906 -9.471833 -3.828648 402 8194 8195 + 8194 H -23.595084 -9.970587 -4.330527 403 8193 + 8195 H -23.577826 -8.951405 -3.327851 403 8193 + 8196 O -7.110604 8.838398 10.174602 402 8197 8198 + 8197 H -7.782545 9.119070 9.563121 403 8196 + 8198 H -6.874836 7.936950 10.110612 403 8196 + 8199 O 24.419141 17.000522 -10.922840 402 8200 8201 + 8200 H 23.664703 16.933938 -11.553390 403 8199 + 8201 H 24.021846 17.152778 -10.052143 403 8199 + 8202 O -14.488243 5.098469 4.479912 402 8203 8204 + 8203 H -13.709956 5.650481 4.473177 403 8202 + 8204 H -14.910202 5.058380 3.581039 403 8202 + 8205 O -2.415807 -13.812743 6.907700 402 8206 8207 + 8206 H -2.596718 -13.309899 6.111317 403 8205 + 8207 H -3.251745 -14.327682 7.109165 403 8205 + 8208 O -18.926033 -9.523396 -18.297588 402 8209 8210 + 8209 H -18.539154 -9.705366 -19.167443 403 8208 + 8210 H -19.196583 -8.616444 -18.314206 403 8208 + 8211 O 23.648770 -10.033565 -19.143545 402 8212 8213 + 8212 H 23.763359 -9.374241 -19.822180 403 8211 + 8213 H 24.359914 -10.609348 -19.397407 403 8211 + 8214 O 0.735457 -17.444252 -0.196869 402 8215 8216 + 8215 H 1.204966 -17.103235 -0.982724 403 8214 + 8216 H -0.166461 -17.675326 -0.501142 403 8214 + 8217 O 15.977053 8.980217 19.819118 402 8218 8219 + 8218 H 15.510910 8.262919 19.411773 403 8217 + 8219 H 15.638831 9.774710 19.469638 403 8217 + 8220 O -21.818391 12.562887 20.032627 402 8221 8222 + 8221 H -22.085628 11.618258 19.842948 403 8220 + 8222 H -20.827992 12.718524 19.975012 403 8220 + 8223 O 7.039712 -16.964990 -15.541675 402 8224 8225 + 8224 H 6.809451 -17.534371 -14.799854 403 8223 + 8225 H 7.846558 -16.584905 -15.213738 403 8223 + 8226 O -10.516103 -19.359216 -4.984483 402 8227 8228 + 8227 H -11.487322 -19.499249 -4.976576 403 8226 + 8228 H -10.316797 -19.130113 -5.876399 403 8226 + 8229 O -15.712544 -18.195821 -16.791463 402 8230 8231 + 8230 H -15.386725 -17.379305 -16.972966 403 8229 + 8231 H -16.234052 -18.450302 -17.577749 403 8229 + 8232 O 20.375630 2.207122 -4.920313 402 8233 8234 + 8233 H 20.216775 1.456591 -4.343459 403 8232 + 8234 H 20.280207 1.853389 -5.797632 403 8232 + 8235 O 22.857055 19.552693 3.665905 402 8236 8237 + 8236 H 22.878248 19.783393 4.649190 403 8235 + 8237 H 23.742572 19.802123 3.384761 403 8235 + 8238 O -23.291098 12.571857 -7.317143 402 8239 8240 + 8239 H -23.912608 13.233941 -6.880268 403 8238 + 8240 H -22.652186 12.332429 -6.543330 403 8238 + 8241 O 12.984606 10.221427 -16.808099 402 8242 8243 + 8242 H 13.667678 9.959368 -16.244780 403 8241 + 8243 H 12.511584 9.401797 -16.883576 403 8241 + 8244 O 27.270245 0.587979 13.208753 402 8245 8246 + 8245 H 27.702404 -0.278797 13.294250 403 8244 + 8246 H 26.279511 0.464606 13.258979 403 8244 + 8247 O 5.657499 -16.976293 13.990530 402 8248 8249 + 8248 H 4.705984 -16.954734 13.883042 403 8247 + 8249 H 5.909722 -16.502798 14.791441 403 8247 + 8250 O 22.979947 17.951763 0.527007 402 8251 8252 + 8251 H 22.428004 18.639190 0.176667 403 8250 + 8252 H 22.281623 17.341478 0.914453 403 8250 + 8253 O -21.891524 -16.491873 5.462047 402 8254 8255 + 8254 H -21.611111 -15.606060 5.550776 403 8253 + 8255 H -22.025511 -16.701806 4.529568 403 8253 + 8256 O 8.528721 7.946876 17.483315 402 8257 8258 + 8257 H 9.390982 8.385502 17.311853 403 8256 + 8258 H 8.485801 7.948173 18.426233 403 8256 + 8259 O 26.823691 0.686378 2.887481 402 8260 8261 + 8260 H 26.841167 0.391628 3.805678 403 8259 + 8261 H 26.597454 1.662650 2.917193 403 8259 + 8262 O -4.950286 -7.194323 15.626699 402 8263 8264 + 8263 H -4.352839 -6.657887 15.072055 403 8262 + 8264 H -5.857741 -7.272638 15.219003 403 8262 + 8265 O -8.714977 5.000352 11.128210 402 8266 8267 + 8266 H -9.170865 4.207326 11.391243 403 8265 + 8267 H -8.026665 4.716136 10.523111 403 8265 + 8268 O -21.206733 -3.279994 -6.524932 402 8269 8270 + 8269 H -20.929590 -2.947470 -5.608742 403 8268 + 8270 H -21.369929 -2.564467 -7.124044 403 8268 + 8271 O -24.169876 -16.066494 -0.699927 402 8272 8273 + 8272 H -23.893194 -16.983386 -0.501792 403 8271 + 8273 H -23.818535 -15.566437 0.016995 403 8271 + 8274 O -4.762418 0.978128 -17.450230 402 8275 8276 + 8275 H -5.459419 0.534407 -17.851461 403 8274 + 8276 H -3.876584 0.532188 -17.586085 403 8274 + 8277 O -23.690384 0.720873 19.030161 402 8278 8279 + 8278 H -24.529537 0.743437 18.583662 403 8277 + 8279 H -23.655688 -0.011267 19.593259 403 8277 + 8280 O -15.912159 -12.362138 19.142289 402 8281 8282 + 8281 H -16.860673 -12.328378 19.455109 403 8280 + 8282 H -15.543971 -13.259386 19.298591 403 8280 + 8283 O 21.658993 17.599149 -16.014662 402 8284 8285 + 8284 H 22.041785 18.520354 -15.943036 403 8283 + 8285 H 20.778035 17.749200 -16.427622 403 8283 + 8286 O -19.912308 -13.107035 -14.484614 402 8287 8288 + 8287 H -19.659870 -12.430860 -13.832450 403 8286 + 8288 H -19.896529 -12.695904 -15.325705 403 8286 + 8289 O -24.276277 -16.465070 11.658834 402 8290 8291 + 8290 H -24.414709 -16.008322 12.561598 403 8289 + 8291 H -24.456920 -15.764788 11.022016 403 8289 + 8292 O 7.338121 15.134359 12.353797 402 8293 8294 + 8293 H 6.756929 14.359360 12.209000 403 8292 + 8294 H 7.312954 15.621960 11.560650 403 8292 + 8295 O 16.833359 -15.091185 7.049718 402 8296 8297 + 8296 H 17.575828 -15.201998 7.598156 403 8295 + 8297 H 17.181929 -14.913423 6.159696 403 8295 + 8298 O -25.459827 -8.831619 -10.909942 402 8299 8300 + 8299 H -26.346699 -9.154571 -11.164077 403 8298 + 8300 H -25.113612 -9.635356 -10.548749 403 8298 + 8301 O 14.104756 2.118788 -11.000106 402 8302 8303 + 8302 H 14.145828 1.958779 -9.996196 403 8301 + 8303 H 13.664160 1.315915 -11.343904 403 8301 + 8304 O 15.657145 -19.646810 2.896166 402 8305 8306 + 8305 H 16.434824 -20.115913 3.051182 403 8304 + 8306 H 15.028606 -20.220332 2.452201 403 8304 + 8307 O 23.725885 -12.794695 -0.945499 402 8308 8309 + 8308 H 23.281780 -11.890719 -0.926868 403 8307 + 8309 H 24.708749 -12.621299 -0.988388 403 8307 + 8310 O -16.865263 14.164216 13.710722 402 8311 8312 + 8311 H -17.362193 13.380801 13.838272 403 8310 + 8312 H -16.087062 13.922374 13.209541 403 8310 + 8313 O -19.739666 -15.403180 15.520974 402 8314 8315 + 8314 H -20.455057 -15.397351 14.881774 403 8313 + 8315 H -20.082522 -14.871806 16.282279 403 8313 + 8316 O 19.096837 -7.172079 16.486018 402 8317 8318 + 8317 H 19.407501 -6.257692 16.370379 403 8316 + 8318 H 19.040095 -7.459208 15.607247 403 8316 + 8319 O 18.172332 -12.158590 -6.201699 402 8320 8321 + 8320 H 18.304057 -11.335714 -6.732706 403 8319 + 8321 H 19.035089 -12.338188 -5.764950 403 8319 + 8322 O -0.868698 -19.642469 -16.996885 402 8323 8324 + 8323 H -1.363468 -20.113317 -17.713302 403 8322 + 8324 H -1.471726 -19.010491 -16.662422 403 8322 + 8325 O -24.645397 10.341459 -7.907386 402 8326 8327 + 8326 H -25.403222 10.434913 -7.336084 403 8325 + 8327 H -24.138877 11.164300 -7.816681 403 8325 + 8328 O -16.672238 -8.013464 18.598945 402 8329 8330 + 8329 H -16.066967 -8.743970 18.706313 403 8328 + 8330 H -16.176282 -7.259661 18.335226 403 8328 + 8331 O 22.487322 14.165266 -7.478753 402 8332 8333 + 8332 H 22.557098 13.462620 -8.195467 403 8331 + 8333 H 23.077183 13.896514 -6.804199 403 8331 + 8334 O -16.969008 0.617904 2.364611 402 8335 8336 + 8335 H -17.366120 1.196458 3.012496 403 8334 + 8336 H -16.204897 0.132723 2.713670 403 8334 + 8337 O -16.105014 -0.776954 10.291984 402 8338 8339 + 8338 H -16.257341 0.223589 10.333435 403 8337 + 8339 H -16.822249 -1.143779 10.739482 403 8337 + 8340 O -1.572980 -19.983373 -2.947973 402 8341 8342 + 8341 H -1.992560 -20.034455 -3.807433 403 8340 + 8342 H -0.620010 -19.746082 -3.116100 403 8340 + 8343 O -14.996679 12.712532 -5.614114 402 8344 8345 + 8344 H -15.916609 12.454215 -5.655277 403 8343 + 8345 H -14.599913 12.087283 -6.181656 403 8343 + 8346 O -6.550042 17.243085 -1.311911 402 8347 8348 + 8347 H -7.370137 17.795578 -1.470109 403 8346 + 8348 H -6.675338 16.814239 -0.435288 403 8346 + 8349 O -22.961585 9.343900 -1.894881 402 8350 8351 + 8350 H -22.135413 9.413165 -2.387021 403 8349 + 8351 H -23.019360 8.393337 -1.628379 403 8349 + 8352 O -23.240008 -19.417092 6.368497 402 8353 8354 + 8353 H -23.612098 -20.201035 6.825569 403 8352 + 8354 H -23.684109 -18.690648 6.877699 403 8352 + 8355 O -3.975590 2.585287 -20.330975 402 8356 8357 + 8356 H -3.555653 1.727030 -20.090182 403 8355 + 8357 H -3.232879 3.201768 -20.459323 403 8355 + 8358 O 13.624748 -19.863473 12.144241 402 8359 8360 + 8359 H 14.457772 -19.530528 12.546517 403 8358 + 8360 H 12.915028 -19.260602 12.383266 403 8358 + 8361 O 23.620886 -17.871879 14.645268 402 8362 8363 + 8362 H 24.200914 -17.421417 15.259794 403 8361 + 8363 H 23.549736 -17.298378 13.830439 403 8361 + 8364 O 9.321358 4.851563 -10.671349 402 8365 8366 + 8365 H 8.417643 4.825903 -10.980879 403 8364 + 8366 H 9.236659 5.389642 -9.880988 403 8364 + 8367 O 16.676932 -15.595371 18.042582 402 8368 8369 + 8368 H 15.776328 -15.312249 17.740520 403 8367 + 8369 H 17.268778 -14.856833 17.976717 403 8367 + 8370 O 5.120016 13.517889 11.545409 402 8371 8372 + 8371 H 4.343182 13.415911 12.098245 403 8370 + 8372 H 4.693345 13.853732 10.680472 403 8370 + 8373 O -25.377039 -18.256471 8.076220 402 8374 8375 + 8374 H -25.781276 -18.544454 8.897977 403 8373 + 8375 H -25.633977 -17.323858 7.972468 403 8373 + 8376 O 0.809058 7.564416 -14.066874 402 8377 8378 + 8377 H 0.916059 7.331613 -13.143223 403 8376 + 8378 H 1.470333 8.274989 -14.200531 403 8376 + 8379 O 15.418267 9.781452 0.490529 402 8380 8381 + 8380 H 16.087047 9.430117 -0.107289 403 8379 + 8381 H 15.469266 9.208927 1.264230 403 8379 + 8382 O 18.819099 0.059487 -7.791298 402 8383 8384 + 8383 H 18.409799 -0.334456 -8.599701 403 8382 + 8384 H 18.505418 0.975155 -7.815461 403 8382 + 8385 O 18.734857 -11.129665 -12.743525 402 8386 8387 + 8386 H 19.553404 -11.223386 -12.120138 403 8385 + 8387 H 18.518443 -10.240054 -12.855533 403 8385 + 8388 O -6.542631 16.490309 -5.774007 402 8389 8390 + 8389 H -7.424909 16.908246 -5.691889 403 8388 + 8390 H -6.518994 16.127379 -6.676862 403 8388 + 8391 O -11.192140 0.472205 -12.639446 402 8392 8393 + 8392 H -12.103697 0.267919 -12.529950 403 8391 + 8393 H -10.710800 -0.374282 -12.557572 403 8391 + 8394 O 16.720488 13.886958 -20.533060 402 8395 8396 + 8395 H 16.205223 14.702224 -20.376437 403 8394 + 8396 H 16.691127 13.403715 -19.702754 403 8394 + 8397 O 17.388334 13.435587 -15.657568 402 8398 8399 + 8398 H 18.130270 13.582226 -16.327461 403 8397 + 8399 H 17.639406 12.621568 -15.195169 403 8397 + 8400 O -6.834253 10.232886 -18.214238 402 8401 8402 + 8401 H -6.903061 10.582756 -17.312839 403 8400 + 8402 H -7.065760 10.977380 -18.753726 403 8400 + 8403 O -26.724908 17.912645 17.886470 402 8404 8405 + 8404 H -25.957218 18.458136 17.628812 403 8403 + 8405 H -26.362765 17.099535 18.218344 403 8403 + 8406 O -0.903403 -3.732795 -18.221524 402 8407 8408 + 8407 H 0.015845 -3.986413 -18.434069 403 8406 + 8408 H -1.449749 -4.292278 -18.787390 403 8406 + 8409 O 8.478846 18.397280 11.407292 402 8410 8411 + 8410 H 7.633351 18.651942 11.041557 403 8409 + 8411 H 9.129265 18.582960 10.779627 403 8409 + 8412 O -9.044898 12.879599 11.037060 402 8413 8414 + 8413 H -8.299458 12.613036 10.480728 403 8412 + 8414 H -9.785562 12.774996 10.383091 403 8412 + 8415 O 16.212680 8.794036 14.029672 402 8416 8417 + 8416 H 15.473945 9.288728 13.836685 403 8415 + 8417 H 17.028607 9.276518 14.011973 403 8415 + 8418 O -12.268552 13.361223 -20.521861 402 8419 8420 + 8419 H -13.186409 13.158881 -20.579852 403 8418 + 8420 H -12.306685 14.297827 -20.782380 403 8418 + 8421 O 21.001802 -1.484392 16.467423 402 8422 8423 + 8422 H 20.737187 -1.861020 17.327615 403 8421 + 8423 H 21.860569 -1.911455 16.193850 403 8421 + 8424 O -9.356304 11.431280 -8.974418 402 8425 8426 + 8425 H -8.659737 10.769575 -8.653703 403 8424 + 8426 H -9.803431 11.675976 -8.182315 403 8424 + 8427 O 26.948445 8.871461 -17.613543 402 8428 8429 + 8428 H 27.531052 9.681414 -17.576254 403 8427 + 8429 H 27.482335 8.261182 -17.042391 403 8427 + 8430 O 18.976966 2.434133 -12.543728 402 8431 8432 + 8431 H 18.194377 2.424795 -11.982928 403 8430 + 8432 H 19.117316 3.368724 -12.808991 403 8430 + 8433 O 8.245403 -12.742057 19.723005 402 8434 8435 + 8434 H 8.144484 -13.022949 20.662655 403 8433 + 8435 H 7.837153 -13.446042 19.196869 403 8433 + 8436 O 9.039756 -7.597109 18.653269 402 8437 8438 + 8437 H 8.770812 -7.616934 19.576989 403 8436 + 8438 H 9.066589 -6.664479 18.418706 403 8436 + 8439 O 10.189217 11.926636 11.235547 402 8440 8441 + 8440 H 10.233257 12.873995 11.065027 403 8439 + 8441 H 9.236322 11.798256 11.121031 403 8439 + 8442 O -19.235380 -20.224186 -5.743147 402 8443 8444 + 8443 H -19.963520 -19.550478 -5.766714 403 8442 + 8444 H -18.597575 -19.892671 -5.077870 403 8442 + 8445 O 17.081164 12.504780 -5.519702 402 8446 8447 + 8446 H 17.317528 12.830762 -4.628825 403 8445 + 8447 H 17.566228 11.707478 -5.694496 403 8445 + 8448 O -17.833354 13.022736 -7.625662 402 8449 8450 + 8449 H -18.435075 12.266236 -7.562794 403 8448 + 8450 H -17.596760 13.126821 -6.753333 403 8448 + 8451 O -16.003848 -12.359888 13.230149 402 8452 8453 + 8452 H -16.195567 -13.201470 12.841886 403 8451 + 8453 H -16.339851 -12.416796 14.117412 403 8451 + 8454 O 0.176516 -12.560501 -12.425472 402 8455 8456 + 8455 H 0.737394 -13.294947 -12.707192 403 8454 + 8456 H -0.008554 -11.988851 -13.210535 403 8454 + 8457 O 15.945838 0.256833 12.759642 402 8458 8459 + 8458 H 15.315992 0.578271 12.079867 403 8457 + 8459 H 15.303877 -0.130234 13.393857 403 8457 + 8460 O 3.991270 11.948196 8.788506 402 8461 8462 + 8461 H 4.354131 11.617913 7.978688 403 8460 + 8462 H 3.989725 12.878797 8.755522 403 8460 + 8463 O 24.041021 -18.227784 19.978317 402 8464 8465 + 8464 H 23.613150 -19.023367 19.715938 403 8463 + 8465 H 23.421760 -17.634320 20.391706 403 8463 + 8466 O 4.480569 2.293232 -17.929461 402 8467 8468 + 8467 H 4.737918 2.408019 -18.806644 403 8466 + 8468 H 3.697109 2.859289 -17.719771 403 8466 + 8469 O -21.893430 -14.247042 -8.071389 402 8470 8471 + 8470 H -21.621325 -13.340615 -8.179140 403 8469 + 8471 H -21.245096 -14.771492 -7.611926 403 8469 + 8472 O 11.391170 -20.197067 6.087190 402 8473 8474 + 8473 H 12.332346 -20.225253 6.056925 403 8472 + 8474 H 11.169435 -19.741912 5.268989 403 8472 + 8475 O -17.767521 13.536365 -18.283934 402 8476 8477 + 8476 H -17.676219 14.086222 -17.468766 403 8475 + 8477 H -17.016627 12.978563 -18.394451 403 8475 + 8478 O 5.005032 -20.873389 -8.545316 402 8479 8480 + 8479 H 4.212566 -20.486316 -8.983260 403 8478 + 8480 H 4.690972 -21.402526 -7.849785 403 8478 + 8481 O 18.199775 -4.330757 -14.972084 402 8482 8483 + 8482 H 17.789625 -3.483346 -14.772916 403 8481 + 8483 H 18.849294 -4.135351 -15.681645 403 8481 + 8484 O 19.744670 16.153747 4.684702 402 8485 8486 + 8485 H 18.926975 15.872879 5.113981 403 8484 + 8486 H 20.486481 15.836577 5.222155 403 8484 + 8487 O -0.915970 -9.397508 15.585411 402 8488 8489 + 8488 H -0.105843 -9.703483 16.010408 403 8487 + 8489 H -1.285330 -8.812368 16.200287 403 8487 + 8490 O -23.858596 3.816844 -5.177897 402 8491 8492 + 8491 H -23.879687 4.029482 -4.237763 403 8490 + 8492 H -24.276504 2.954820 -5.342696 403 8490 + 8493 O 11.838596 14.359137 5.947499 402 8494 8495 + 8494 H 11.923450 13.438110 5.725008 403 8493 + 8495 H 12.426438 14.419837 6.789373 403 8493 + 8496 O -24.516087 -8.212903 6.467548 402 8497 8498 + 8497 H -24.905939 -8.825058 7.092971 403 8496 + 8498 H -23.896260 -8.737352 6.010203 403 8496 + 8499 O 12.794509 0.536645 -20.243875 402 8500 8501 + 8500 H 12.046024 0.975194 -20.739130 403 8499 + 8501 H 12.750658 0.998686 -19.404096 403 8499 + 8502 O -2.221545 7.221132 -15.714309 402 8503 8504 + 8503 H -1.564134 7.922819 -15.440249 403 8502 + 8504 H -1.907716 6.786282 -16.499729 403 8502 + 8505 O -15.262103 -1.025135 3.744497 402 8506 8507 + 8506 H -15.665604 -1.870757 3.765630 403 8505 + 8507 H -15.328619 -0.606155 4.583614 403 8505 + 8508 O 20.108494 -9.991193 -19.911625 402 8509 8510 + 8509 H 19.428700 -9.825766 -19.213627 403 8508 + 8510 H 20.361712 -9.133136 -20.249113 403 8508 + 8511 O 12.867409 -6.904802 4.443594 402 8512 8513 + 8512 H 12.264306 -6.203776 4.409753 403 8511 + 8513 H 13.784027 -6.565705 4.350727 403 8511 + 8514 O 24.058876 -8.248822 -17.051222 402 8515 8516 + 8515 H 23.730319 -9.008822 -17.519701 403 8514 + 8516 H 24.878618 -8.026208 -17.519719 403 8514 + 8517 O -14.847363 -1.001783 -19.170682 402 8518 8519 + 8518 H -15.449801 -0.826718 -19.858698 403 8517 + 8519 H -15.320403 -1.330455 -18.387373 403 8517 + 8520 O 15.553192 2.814264 -3.465226 402 8521 8522 + 8521 H 14.896744 3.481739 -3.135135 403 8520 + 8522 H 16.160657 3.336721 -3.991437 403 8520 + 8523 O -13.974002 9.185648 16.956055 402 8524 8525 + 8524 H -13.130305 8.696408 16.805351 403 8523 + 8525 H -14.376866 8.733537 17.688722 403 8523 + 8526 O -11.797740 -0.516894 9.586967 402 8527 8528 + 8527 H -12.628798 -0.925501 9.242559 403 8526 + 8528 H -11.646717 0.185675 8.970795 403 8526 + 8529 O 24.903028 -3.994226 -11.118622 402 8530 8531 + 8530 H 23.952025 -4.106045 -10.736954 403 8529 + 8531 H 24.790476 -3.484811 -11.918719 403 8529 + 8532 O 2.220549 5.328975 16.431794 402 8533 8534 + 8533 H 1.808604 4.568086 16.851941 403 8532 + 8534 H 3.174924 5.179737 16.323538 403 8532 + 8535 O 1.396616 14.937103 19.138615 402 8536 8537 + 8536 H 0.558182 14.600636 18.844822 403 8535 + 8537 H 1.257435 14.884393 20.102246 403 8535 + 8538 O -20.671636 -15.366474 -18.208204 402 8539 8540 + 8539 H -21.380399 -15.277369 -18.859413 403 8538 + 8540 H -20.736983 -16.181001 -17.742657 403 8538 + 8541 O -13.058044 -20.095582 -4.362430 402 8542 8543 + 8542 H -13.024712 -20.612656 -3.543798 403 8541 + 8543 H -13.691481 -19.389144 -4.075579 403 8541 + 8544 O -15.561123 -4.237765 12.636329 402 8545 8546 + 8545 H -16.268647 -3.833291 13.167415 403 8544 + 8546 H -15.110937 -3.419743 12.299589 403 8544 + 8547 O -24.759181 -6.035582 2.884287 402 8548 8549 + 8548 H -25.250513 -6.831996 2.887098 403 8547 + 8549 H -25.305365 -5.369041 2.551951 403 8547 + 8550 O -4.620853 12.299627 11.037908 402 8551 8552 + 8551 H -4.440765 13.138122 11.409774 403 8550 + 8552 H -4.916886 11.692935 11.716163 403 8550 + 8553 O -16.569703 1.526861 -7.254759 402 8554 8555 + 8554 H -16.695783 1.936301 -8.074606 403 8553 + 8555 H -16.882141 0.632206 -7.402201 403 8553 + 8556 O 23.467888 -9.654261 -12.695108 402 8557 8558 + 8557 H 24.029597 -9.067666 -13.167615 403 8556 + 8558 H 23.123232 -9.217050 -11.833851 403 8556 + 8559 O -18.429010 -3.061156 8.894173 402 8560 8561 + 8560 H -19.027972 -2.389846 8.642550 403 8559 + 8561 H -18.106797 -2.785618 9.787642 403 8559 + 8562 O -19.107978 15.849121 -9.475466 402 8563 8564 + 8563 H -18.864733 15.428418 -8.655322 403 8562 + 8564 H -18.505127 16.629956 -9.591908 403 8562 + 8565 O 22.274682 -20.084251 -0.325198 402 8566 8567 + 8566 H 22.135094 -19.096797 -0.356152 403 8565 + 8567 H 23.083213 -20.126631 -0.830959 403 8565 + 8568 O 24.369325 -3.216706 -4.897640 402 8569 8570 + 8569 H 25.222404 -2.719894 -4.895318 403 8568 + 8570 H 24.445157 -3.895914 -4.229474 403 8568 + 8571 O -9.139981 -19.842644 16.043544 402 8572 8573 + 8572 H -8.820691 -19.672535 15.122253 403 8571 + 8573 H -9.672340 -20.660357 15.944536 403 8571 + 8574 O -20.896241 -15.764905 -2.307185 402 8575 8576 + 8575 H -21.812479 -15.705631 -2.446120 403 8574 + 8576 H -20.844603 -15.784793 -1.327016 403 8574 + 8577 O 7.223156 -5.748983 -18.629737 402 8578 8579 + 8578 H 7.206095 -4.844227 -18.946828 403 8577 + 8579 H 7.989785 -5.796585 -18.164482 403 8577 + 8580 O -25.843140 -1.143611 9.149078 402 8581 8582 + 8581 H -25.886005 -1.657786 8.289135 403 8580 + 8582 H -25.272098 -1.801443 9.596520 403 8580 + 8583 O -25.617505 11.234770 1.302402 402 8584 8585 + 8584 H -26.519698 11.382080 0.891273 403 8583 + 8585 H -25.709717 11.496799 2.260967 403 8583 + 8586 O -24.008718 3.700426 14.077463 402 8587 8588 + 8587 H -23.636744 2.818441 14.397144 403 8586 + 8588 H -24.193959 3.715212 13.098008 403 8586 + 8589 O -25.288161 15.287096 -3.633466 402 8590 8591 + 8590 H -24.701801 15.181375 -2.917528 403 8589 + 8591 H -24.884059 15.980496 -4.222265 403 8589 + 8592 O -18.371976 0.316233 -12.753606 402 8593 8594 + 8593 H -17.540257 0.805382 -12.677195 403 8592 + 8594 H -18.928928 0.935156 -13.269213 403 8592 + 8595 O -7.333443 0.117823 -18.660950 402 8596 8597 + 8596 H -8.021021 0.414744 -18.077567 403 8595 + 8597 H -7.588161 -0.774648 -18.860400 403 8595 + 8598 O 7.916046 -4.737118 -11.962175 402 8599 8600 + 8599 H 7.823803 -4.591176 -10.961540 403 8598 + 8600 H 8.487079 -3.962811 -12.242330 403 8598 + 8601 O -16.065017 -17.683748 12.637430 402 8602 8603 + 8602 H -17.011987 -17.735296 12.722608 403 8601 + 8603 H -15.831448 -18.384474 11.953837 403 8601 + 8604 O 21.305339 -15.655490 -5.124093 402 8605 8606 + 8605 H 20.807407 -16.186834 -5.710639 403 8604 + 8606 H 21.624819 -16.214868 -4.447516 403 8604 + 8607 O -26.764181 -18.581640 -16.921151 402 8608 8609 + 8608 H -26.740653 -17.883931 -16.251171 403 8607 + 8609 H -25.889831 -19.016845 -16.852743 403 8607 + 8610 O -16.578359 -2.340901 14.589648 402 8611 8612 + 8611 H -16.492161 -3.040832 15.326073 403 8610 + 8612 H -15.697628 -1.820257 14.616293 403 8610 + 8613 O 26.043166 5.997514 -3.795215 402 8614 8615 + 8614 H 26.451990 6.864435 -3.803447 403 8613 + 8615 H 26.795850 5.513156 -3.370169 403 8613 + 8616 O -2.866251 17.249672 -19.402655 402 8617 8618 + 8617 H -2.050135 17.665045 -19.652864 403 8616 + 8618 H -2.832242 16.313071 -19.542218 403 8616 + 8619 O -15.459807 -11.710100 -10.460216 402 8620 8621 + 8620 H -14.969300 -11.366276 -9.661631 403 8619 + 8621 H -16.276955 -12.017208 -9.984012 403 8619 + 8622 O 19.650264 6.930828 12.762298 402 8623 8624 + 8623 H 19.873188 6.462285 13.595929 403 8622 + 8624 H 20.303044 6.550090 12.177619 403 8622 + 8625 O -22.570365 -4.412836 -1.811273 402 8626 8627 + 8626 H -22.171357 -5.263031 -1.838077 403 8625 + 8627 H -22.826216 -4.391044 -0.929643 403 8625 + 8628 O -15.225393 0.344956 6.093949 402 8629 8630 + 8629 H -14.897061 1.256657 6.050627 403 8628 + 8630 H -14.862108 -0.118094 6.882677 403 8628 + 8631 O -26.214592 10.149434 -12.755279 402 8632 8633 + 8632 H -27.155901 10.181440 -12.954282 403 8631 + 8633 H -26.080437 9.913123 -11.832638 403 8631 + 8634 O -26.639137 -20.836220 10.642324 402 8635 8636 + 8635 H -26.244776 -19.942202 10.604043 403 8634 + 8636 H -26.010374 -21.363114 10.100802 403 8634 + 8637 O 27.068918 -13.224704 20.865450 402 8638 8639 + 8638 H 27.744233 -12.679284 21.316162 403 8637 + 8639 H 26.232445 -12.945570 21.191563 403 8637 + 8640 O -15.301597 13.975513 -8.460131 402 8641 8642 + 8641 H -14.952706 13.782668 -7.567357 403 8640 + 8642 H -16.244257 13.821878 -8.381549 403 8640 + 8643 O 25.467875 11.658105 -7.593959 402 8644 8645 + 8644 H 24.761290 11.160502 -7.120317 403 8643 + 8645 H 25.002961 12.057880 -8.288551 403 8643 + 8646 O -27.479869 -4.262964 -20.483737 402 8647 8648 + 8647 H -26.752473 -4.746654 -20.858210 403 8646 + 8648 H -27.165915 -3.756567 -19.782830 403 8646 + 8649 O -24.406173 20.048905 -13.265390 402 8650 8651 + 8650 H -23.845919 19.394517 -12.782711 403 8649 + 8651 H -25.326791 19.952777 -13.266139 403 8649 + 8652 O -12.606740 1.855396 14.924299 402 8653 8654 + 8653 H -13.099296 2.292250 15.633985 403 8652 + 8654 H -13.213129 1.841828 14.213081 403 8652 + 8655 O 12.163259 12.537713 19.532478 402 8656 8657 + 8656 H 12.952113 12.023699 19.336851 403 8655 + 8657 H 11.421932 11.885251 19.451751 403 8655 + 8658 O 19.216013 1.204159 16.354062 402 8659 8660 + 8659 H 19.693651 0.628292 16.987922 403 8658 + 8660 H 19.788924 1.982359 16.259421 403 8658 + 8661 O 9.476954 16.143883 -14.222672 402 8662 8663 + 8662 H 9.874109 15.966920 -15.122506 403 8661 + 8663 H 9.278436 15.281894 -13.908079 403 8661 + 8664 O -14.534233 -15.722743 -17.125213 402 8665 8666 + 8665 H -14.612818 -15.234699 -16.271855 403 8664 + 8666 H -14.914996 -15.225762 -17.899753 403 8664 + 8667 O -7.315791 17.649326 18.027047 402 8668 8669 + 8668 H -6.781097 18.032306 18.752166 403 8667 + 8669 H -8.151176 18.220094 17.921736 403 8667 + 8670 O -18.382710 -16.629801 4.193883 402 8671 8672 + 8671 H -18.385951 -16.521263 5.149432 403 8670 + 8672 H -17.627253 -16.147937 3.769420 403 8670 + 8673 O -15.417927 -6.534956 -12.241821 402 8674 8675 + 8674 H -15.990818 -7.277530 -12.157190 403 8673 + 8675 H -15.651097 -5.969923 -11.493776 403 8673 + 8676 O 0.402862 14.629930 13.340607 402 8677 8678 + 8677 H -0.252964 15.247709 13.638832 403 8676 + 8678 H 0.540834 14.019125 14.040061 403 8676 + 8679 O 12.212673 -14.561562 8.432466 402 8680 8681 + 8680 H 12.964986 -15.158798 8.469829 403 8679 + 8681 H 12.315635 -13.749340 8.974910 403 8679 + 8682 O -18.091351 14.816669 -20.791191 402 8683 8684 + 8683 H -17.950349 14.394028 -19.955312 403 8682 + 8684 H -17.259160 15.337091 -20.997461 403 8682 + 8685 O 20.846407 4.941141 -20.805564 402 8686 8687 + 8686 H 20.364445 5.609240 -20.314152 403 8685 + 8687 H 21.773006 5.036677 -20.468448 403 8685 + 8688 O -18.235581 1.799447 7.616936 402 8689 8690 + 8689 H -18.663035 2.668602 7.871183 403 8688 + 8690 H -18.147248 1.507995 8.534548 403 8688 + 8691 O 12.243946 -10.407747 -4.453069 402 8692 8693 + 8692 H 12.758610 -10.750408 -5.173538 403 8691 + 8693 H 11.391861 -10.887258 -4.514732 403 8691 + 8694 O -15.999205 -0.324038 16.881023 402 8695 8696 + 8695 H -15.685432 -0.202706 15.976630 403 8694 + 8696 H -15.623326 0.405687 17.366937 403 8694 + 8697 O -23.099614 -14.642217 -19.649766 402 8698 8699 + 8698 H -23.777759 -15.309775 -19.518530 403 8697 + 8699 H -23.241127 -14.411915 -20.620505 403 8697 + 8700 O -12.249488 9.185541 -16.320990 402 8701 8702 + 8701 H -12.902804 8.826914 -16.950148 403 8700 + 8702 H -11.588894 9.548457 -16.894605 403 8700 + 8703 O -4.051701 -13.736377 -16.555628 402 8704 8705 + 8704 H -4.494654 -14.354729 -17.129699 403 8703 + 8705 H -4.462835 -13.910768 -15.684946 403 8703 + 8706 O -11.801200 19.657830 -10.999540 402 8707 8708 + 8707 H -10.902720 19.828996 -11.011831 403 8706 + 8708 H -12.193533 20.466103 -10.567549 403 8706 + 8709 O -24.325618 14.045672 -1.110263 402 8710 8711 + 8710 H -24.668600 14.350444 -0.200830 403 8709 + 8711 H -24.816092 13.231043 -1.195474 403 8709 + 8712 O 20.913056 15.489658 -18.886527 402 8713 8714 + 8713 H 20.368015 16.190531 -18.479805 403 8712 + 8714 H 21.821778 15.751011 -18.640831 403 8712 + 8715 O -20.772862 0.764056 -6.084683 402 8716 8717 + 8716 H -20.333324 1.468628 -5.568275 403 8715 + 8717 H -20.870557 -0.044044 -5.434493 403 8715 + 8718 O -16.073764 -5.000219 -5.989733 402 8719 8720 + 8719 H -15.211568 -4.748827 -5.581555 403 8718 + 8720 H -16.376788 -5.851245 -5.640415 403 8718 + 8721 O -9.856355 -16.695376 -19.135619 402 8722 8723 + 8722 H -10.833867 -16.815665 -19.193496 403 8721 + 8723 H -9.591699 -17.153724 -19.905312 403 8721 + 8724 O -14.392982 0.813400 -5.967904 402 8725 8726 + 8725 H -14.439076 -0.104057 -5.900368 403 8724 + 8726 H -15.047260 1.134714 -6.628678 403 8724 + 8727 O 11.045455 -13.563452 -6.886523 402 8728 8729 + 8728 H 10.981894 -14.173292 -6.136333 403 8727 + 8729 H 10.392197 -12.867802 -6.742279 403 8727 + 8730 O 20.205100 13.593403 -6.053417 402 8731 8732 + 8731 H 19.481313 14.001651 -6.432278 403 8730 + 8732 H 20.986779 14.039356 -6.342708 403 8730 + 8733 O -15.365488 5.137757 1.769971 402 8734 8735 + 8734 H -16.164843 4.770892 1.413857 403 8733 + 8735 H -14.688240 4.932112 1.136328 403 8733 + 8736 O -24.720205 -11.036422 -9.472540 402 8737 8738 + 8737 H -25.299911 -10.766165 -8.734947 403 8736 + 8738 H -25.200381 -11.736926 -9.906125 403 8736 + 8739 O 14.559792 11.008849 -19.039727 402 8740 8741 + 8740 H 15.234376 11.619514 -18.598604 403 8739 + 8741 H 13.848001 10.777673 -18.398174 403 8739 + 8742 O 20.737940 13.944347 3.008812 402 8743 8744 + 8743 H 19.926090 13.665780 2.507060 403 8742 + 8744 H 20.524403 14.681916 3.550067 403 8742 + 8745 O -13.687080 4.284684 12.620334 402 8746 8747 + 8746 H -14.374801 3.638577 12.764178 403 8745 + 8747 H -13.341649 4.114854 11.765071 403 8745 + 8748 O 10.858099 -17.177182 -20.193932 402 8749 8750 + 8749 H 10.006770 -17.050221 -20.711055 403 8748 + 8750 H 11.163899 -17.997677 -20.596267 403 8748 + 8751 O -1.413844 20.882523 -7.532723 402 8752 8753 + 8752 H -0.481522 20.795022 -7.591494 403 8751 + 8753 H -1.734791 20.061230 -7.123891 403 8751 + 8754 O 14.883760 4.844985 -11.460983 402 8755 8756 + 8755 H 14.857826 5.007527 -12.430076 403 8754 + 8756 H 14.543696 3.941245 -11.329620 403 8754 + 8757 O -6.076326 -4.794057 13.123230 402 8758 8759 + 8758 H -7.063204 -4.795068 13.194896 403 8757 + 8759 H -5.787599 -5.455376 13.703743 403 8757 + 8760 O 26.801734 19.306820 7.537896 402 8761 8762 + 8761 H 27.324481 18.524252 7.345834 403 8760 + 8762 H 27.305309 20.057747 7.249205 403 8760 + 8763 O 17.631040 11.938297 -2.819567 402 8764 8765 + 8764 H 18.494147 11.630708 -2.989743 403 8763 + 8765 H 17.500906 12.097849 -1.861896 403 8763 + 8766 O -5.066723 14.593124 8.613540 402 8767 8768 + 8767 H -5.776044 13.928470 8.604036 403 8766 + 8768 H -5.472521 15.379622 8.936421 403 8766 + 8769 O -22.625793 -6.943329 -10.402222 402 8770 8771 + 8770 H -22.918006 -7.487802 -11.106371 403 8769 + 8771 H -22.525718 -6.063678 -10.788262 403 8769 + 8772 O 11.828624 -19.683428 -20.603919 402 8773 8774 + 8773 H 12.217112 -20.243126 -21.346224 403 8772 + 8774 H 12.385880 -19.784195 -19.860322 403 8772 + 8775 O -21.139138 9.961065 13.641562 402 8776 8777 + 8776 H -21.977740 9.505083 13.402813 403 8775 + 8777 H -20.669934 9.781538 12.788303 403 8775 + 8778 O 25.519216 -5.515401 1.511029 402 8779 8780 + 8779 H 26.084211 -5.177738 0.810141 403 8778 + 8780 H 24.693318 -5.003524 1.409607 403 8778 + 8781 O 26.272080 10.541058 9.764091 402 8782 8783 + 8782 H 25.609606 11.193003 9.426754 403 8781 + 8783 H 25.839012 9.942262 10.435364 403 8781 + 8784 O 25.016001 0.794303 -1.014649 402 8785 8786 + 8785 H 25.368203 0.342397 -1.801633 403 8784 + 8786 H 25.407512 1.692440 -0.976171 403 8784 + 8787 O -8.746565 3.936264 -17.089748 402 8788 8789 + 8788 H -8.606611 4.042084 -18.035704 403 8787 + 8789 H -8.750589 2.966468 -16.991948 403 8787 + 8790 O 21.588920 13.603723 -12.704304 402 8791 8792 + 8791 H 21.601929 14.305164 -12.022119 403 8790 + 8792 H 21.312576 14.081953 -13.484692 403 8790 + 8793 O -18.216349 -3.529717 0.360926 402 8794 8795 + 8794 H -18.540051 -2.874458 0.978203 403 8793 + 8795 H -18.963370 -4.161327 0.221890 403 8793 + 8796 O 19.308604 17.633776 -17.848331 402 8797 8798 + 8797 H 18.426310 17.372206 -17.746813 403 8796 + 8798 H 19.313729 18.351135 -18.545042 403 8796 + 8799 O 23.180289 12.694539 3.506974 402 8800 8801 + 8800 H 22.252060 12.962086 3.303073 403 8799 + 8801 H 23.366253 11.863114 3.057800 403 8799 + 8802 O -17.100932 8.883526 -6.444854 402 8803 8804 + 8803 H -16.173403 8.831265 -6.716554 403 8802 + 8804 H -17.583234 8.325208 -7.157965 403 8802 + 8805 O 14.323717 15.125299 -5.725594 402 8806 8807 + 8806 H 15.041767 15.729064 -5.519842 403 8805 + 8807 H 13.765048 15.154023 -4.972067 403 8805 + 8808 O -19.909899 0.941274 -8.892043 402 8809 8810 + 8809 H -20.063118 1.882998 -8.670527 403 8808 + 8810 H -20.016683 0.615676 -7.987400 403 8808 + 8811 O -4.062922 0.518298 17.993285 402 8812 8813 + 8812 H -4.234902 1.391334 17.589117 403 8811 + 8813 H -4.820041 -0.077704 17.801729 403 8811 + 8814 O 26.232840 -11.346405 0.934374 402 8815 8816 + 8815 H 26.965729 -10.796137 1.273638 403 8814 + 8816 H 26.535197 -11.828470 0.207089 403 8814 + 8817 O 18.568052 -3.606897 4.561302 402 8818 8819 + 8818 H 17.633584 -3.536757 4.401867 403 8817 + 8819 H 18.956111 -3.197861 3.755933 403 8817 + 8820 O -23.855092 5.074567 4.116598 402 8821 8822 + 8821 H -23.064224 4.611628 4.537652 403 8820 + 8822 H -23.710838 5.025654 3.139103 403 8820 + 8823 O 26.437758 -20.018004 1.491909 402 8824 8825 + 8824 H 26.350439 -19.182255 1.070486 403 8823 + 8825 H 27.361760 -20.307715 1.508970 403 8823 + 8826 O -15.774583 11.702587 -19.124466 402 8827 8828 + 8827 H -15.128134 11.654611 -18.394652 403 8826 + 8828 H -16.197784 10.854994 -19.059229 403 8826 + 8829 O 13.604852 -5.588538 -11.240265 402 8830 8831 + 8830 H 13.941716 -4.779794 -10.783187 403 8829 + 8831 H 13.492173 -6.306084 -10.658525 403 8829 + 8832 O -4.406927 9.867817 9.346751 402 8833 8834 + 8833 H -5.311013 9.555296 9.655422 403 8832 + 8834 H -4.255731 10.665634 9.843775 403 8832 + 8835 O -5.324087 -1.607821 -19.326145 402 8836 8837 + 8836 H -5.081210 -2.540467 -19.512431 403 8835 + 8837 H -5.681118 -1.658898 -18.424650 403 8835 + 8838 O 7.210255 -0.591966 -13.016339 402 8839 8840 + 8839 H 7.132769 -0.267418 -12.059025 403 8838 + 8840 H 7.145986 0.215754 -13.558300 403 8838 + 8841 O 13.031739 18.007964 -16.574884 402 8842 8843 + 8842 H 13.701983 18.076453 -17.280260 403 8841 + 8843 H 13.560834 18.505150 -15.807835 403 8841 + 8844 O -4.939182 19.582248 2.433779 402 8845 8846 + 8845 H -4.348475 19.232076 1.705221 403 8844 + 8846 H -4.493649 20.306827 2.886563 403 8844 + 8847 O -26.648293 -0.947736 -17.385316 402 8848 8849 + 8848 H -26.109245 -1.287067 -18.123131 403 8847 + 8849 H -27.139044 -0.227784 -17.739830 403 8847 + 8850 O 19.417331 5.365442 -12.381828 402 8851 8852 + 8851 H 20.057565 6.030330 -12.629842 403 8850 + 8852 H 18.801680 5.841907 -11.794057 403 8850 + 8853 O -19.679332 -1.764604 -19.638774 402 8854 8855 + 8854 H -19.289416 -1.940059 -18.795824 403 8853 + 8855 H -19.719754 -0.802184 -19.615952 403 8853 + 8856 O 16.188925 -8.137607 9.745803 402 8857 8858 + 8857 H 15.895930 -8.655747 9.012990 403 8856 + 8858 H 15.671496 -7.334126 9.820282 403 8856 + 8859 O 17.367529 -1.265528 20.226689 402 8860 8861 + 8860 H 17.209414 -2.128384 20.612209 403 8859 + 8861 H 17.475811 -0.580216 20.915152 403 8859 + 8862 O 20.517093 9.728672 9.587262 402 8863 8864 + 8863 H 21.222551 9.963620 10.212987 403 8862 + 8864 H 19.824767 9.384636 10.113042 403 8862 + 8865 O -7.547448 20.192218 -20.533482 402 8866 8867 + 8866 H -6.695025 19.629425 -20.571646 403 8865 + 8867 H -8.008402 20.075383 -21.344144 403 8865 + 8868 O -16.582915 -1.120027 -4.095394 402 8869 8870 + 8869 H -16.849559 -0.208322 -4.049542 403 8868 + 8870 H -16.720426 -1.473779 -3.214581 403 8868 + 8871 O 4.785781 1.946407 13.103817 402 8872 8873 + 8872 H 4.799308 1.247503 12.424632 403 8871 + 8873 H 4.583242 1.575294 13.963927 403 8871 + 8874 O -8.165114 -12.900949 2.168446 402 8875 8876 + 8875 H -8.256829 -12.788477 3.143987 403 8874 + 8876 H -7.320909 -13.341131 2.150781 403 8874 + 8877 O -17.554071 -15.744741 -16.262189 402 8878 8879 + 8878 H -17.806278 -16.375423 -15.592159 403 8877 + 8879 H -18.351583 -15.356631 -16.607464 403 8877 + 8880 O 27.326866 4.195826 19.441977 402 8881 8882 + 8881 H 28.011431 4.581461 18.842795 403 8880 + 8882 H 26.527694 4.615286 19.081611 403 8880 + 8883 O -25.419970 -6.739402 -9.247054 402 8884 8885 + 8884 H -25.459364 -7.498417 -9.890859 403 8883 + 8885 H -24.515740 -6.409622 -9.324420 403 8883 + 8886 O -3.380308 -14.523714 -7.300867 402 8887 8888 + 8887 H -3.061003 -15.308131 -6.909980 403 8886 + 8888 H -2.917512 -14.327994 -8.109098 403 8886 + 8889 O 26.207829 15.728093 -19.215945 402 8890 8891 + 8890 H 25.966653 16.561497 -19.590938 403 8889 + 8891 H 26.062905 14.999376 -19.810656 403 8889 + 8892 O -18.866057 -0.711382 15.470718 402 8893 8894 + 8893 H -19.290122 -1.568096 15.298654 403 8892 + 8894 H -17.951441 -0.972639 15.451259 403 8892 + 8895 O 18.465047 8.813449 11.216472 402 8896 8897 + 8896 H 18.798663 8.151346 11.818158 403 8895 + 8897 H 17.716063 8.381682 10.839333 403 8895 + 8898 O -24.781204 -20.600352 -18.705084 402 8899 8900 + 8899 H -25.022898 -19.710672 -18.985244 403 8898 + 8900 H -25.460136 -21.155945 -19.120654 403 8898 + 8901 O 22.729959 2.205214 -7.072615 402 8902 8903 + 8902 H 22.357169 1.293535 -7.021078 403 8901 + 8903 H 22.701750 2.488699 -7.961356 403 8901 + 8904 O 12.690918 2.750591 12.342202 402 8905 8906 + 8905 H 12.532985 3.617962 11.878555 403 8904 + 8906 H 13.133585 2.199071 11.681589 403 8904 + 8907 O 24.106980 -11.846114 14.571893 402 8908 8909 + 8908 H 23.699036 -11.148912 15.134462 403 8907 + 8909 H 23.233694 -12.194399 14.228632 403 8907 + 8910 O 0.015177 -14.005197 -19.056743 402 8911 8912 + 8911 H -0.340775 -13.532157 -18.287023 403 8910 + 8912 H -0.773966 -14.258584 -19.587550 403 8910 + 8913 O 12.361724 4.484402 -15.999210 402 8914 8915 + 8914 H 12.200963 5.407914 -16.093788 403 8913 + 8915 H 11.619804 4.000673 -15.643034 403 8913 + 8916 O -4.332154 14.465183 5.913532 402 8917 8918 + 8917 H -3.550293 15.013973 5.769350 403 8916 + 8918 H -4.511279 14.482735 6.928514 403 8916 + 8919 O -2.423184 -19.036991 20.142811 402 8920 8921 + 8920 H -2.033960 -18.570661 20.871778 403 8919 + 8921 H -2.200093 -18.567230 19.324641 403 8919 + 8922 O -11.400807 16.524027 12.877501 402 8923 8924 + 8923 H -10.684181 16.008719 12.380621 403 8922 + 8924 H -12.191788 16.488834 12.343702 403 8922 + 8925 O 15.966093 16.748739 -1.323378 402 8926 8927 + 8926 H 16.412638 17.338758 -1.989326 403 8925 + 8927 H 15.598457 17.376590 -0.651299 403 8925 + 8928 O 23.415752 18.871243 -18.062665 402 8929 8930 + 8929 H 23.451778 19.269195 -17.182012 403 8928 + 8930 H 22.494121 18.975734 -18.366439 403 8928 + 8931 O -8.572201 3.275476 -10.014766 402 8932 8933 + 8932 H -9.403406 3.269988 -10.503336 403 8931 + 8933 H -8.724278 3.329701 -9.074127 403 8931 + 8934 O -11.585480 -0.851627 12.287499 402 8935 8936 + 8935 H -11.320746 -0.082366 12.769641 403 8934 + 8936 H -11.472816 -0.637183 11.362553 403 8934 + 8937 O 7.497602 -9.434427 -12.321588 402 8938 8939 + 8938 H 8.071421 -10.126251 -12.076632 403 8937 + 8939 H 8.042121 -8.593371 -12.397957 403 8937 + 8940 O 4.778213 -10.266015 -19.410251 402 8941 8942 + 8941 H 5.274109 -9.668837 -18.817242 403 8940 + 8942 H 4.120565 -9.651627 -19.758229 403 8940 + 8943 O -6.111007 -15.043780 2.679188 402 8944 8945 + 8944 H -5.289890 -15.200515 3.239461 403 8943 + 8945 H -6.645239 -15.919834 2.758924 403 8943 + 8946 O -19.627428 -18.648983 -20.285776 402 8947 8948 + 8947 H -18.763886 -19.012576 -20.099994 403 8946 + 8948 H -19.447444 -17.996380 -20.946059 403 8946 + 8949 O 9.799336 -4.134177 -14.605227 402 8950 8951 + 8950 H 9.726430 -3.298650 -14.107003 403 8949 + 8951 H 10.588497 -4.491055 -14.189406 403 8949 + 8952 O 6.956853 10.981174 -15.927933 402 8953 8954 + 8953 H 6.333575 10.252829 -16.183246 403 8952 + 8954 H 7.290948 10.697439 -15.077221 403 8952 + 8955 O 15.996505 -7.421222 -2.982722 402 8956 8957 + 8956 H 16.037378 -8.363657 -3.163947 403 8955 + 8957 H 15.971488 -7.414229 -2.004616 403 8955 + 8958 O 24.116659 17.319712 -5.748450 402 8959 8960 + 8959 H 24.717303 17.575301 -5.045222 403 8958 + 8960 H 24.154648 16.310133 -5.689457 403 8958 + 8961 O -25.014350 19.047244 5.636389 402 8962 8963 + 8962 H -24.831592 18.532801 6.467994 403 8961 + 8963 H -25.569417 19.791621 5.840508 403 8961 + 8964 O -13.760710 14.201790 -16.036971 402 8965 8966 + 8965 H -13.882187 15.099458 -16.440666 403 8964 + 8966 H -13.724599 14.326841 -15.088458 403 8964 + 8967 O -24.389392 17.787413 -4.553817 402 8968 8969 + 8968 H -24.972675 18.418071 -5.068364 403 8967 + 8969 H -24.356964 18.276421 -3.698179 403 8967 + 8970 O -18.723840 -6.150098 -13.057313 402 8971 8972 + 8971 H -18.318192 -6.956567 -12.670367 403 8970 + 8972 H -17.968230 -5.629913 -13.262178 403 8970 + 8973 O 0.195836 -4.045493 20.385139 402 8974 8975 + 8974 H 0.549498 -4.632208 21.063706 403 8973 + 8975 H -0.603773 -4.486592 20.007533 403 8973 + 8976 O -5.473498 -2.320372 -16.638624 402 8977 8978 + 8977 H -5.812762 -2.143253 -15.717531 403 8976 + 8978 H -5.163919 -3.274843 -16.629360 403 8976 + 8979 O 21.657434 10.195244 -12.556194 402 8980 8981 + 8980 H 21.466450 11.110479 -12.686972 403 8979 + 8981 H 21.662028 10.206355 -11.604800 403 8979 + 8982 O -18.526380 -11.853303 0.119709 402 8983 8984 + 8983 H -18.677742 -12.441590 -0.589422 403 8982 + 8984 H -18.075660 -11.001968 -0.204346 403 8982 + 8985 O -19.755563 -18.537381 -2.766741 402 8986 8987 + 8986 H -19.962233 -18.408807 -3.703137 403 8985 + 8987 H -19.999131 -17.782990 -2.372006 403 8985 + 8988 O 25.476128 17.625846 -3.184333 402 8989 8990 + 8989 H 26.203145 17.076934 -2.886644 403 8988 + 8990 H 25.710710 18.493253 -2.850200 403 8988 + 8991 O -22.305377 1.710018 15.373391 402 8992 8993 + 8992 H -22.044667 1.930929 16.308564 403 8991 + 8993 H -22.836038 0.853232 15.392466 403 8991 + 8994 O 2.757401 -15.671844 -1.738405 402 8995 8996 + 8995 H 2.387180 -15.115097 -1.096143 403 8994 + 8996 H 3.413578 -16.267070 -1.380191 403 8994 + 8997 O 25.430670 -2.334847 6.648866 402 8998 8999 + 8998 H 25.893201 -2.829135 7.309607 403 8997 + 8999 H 24.545839 -2.463509 7.030661 403 8997 + 9000 O 3.889750 2.458553 -20.722084 402 9001 9002 + 9001 H 3.444777 1.541092 -20.936428 403 9000 + 9002 H 3.192280 2.998470 -20.481554 403 9000 + 9003 O 19.435277 -5.919201 6.178342 402 9004 9005 + 9004 H 18.742497 -6.147165 6.835144 403 9003 + 9005 H 19.082846 -5.397301 5.451949 403 9003 + 9006 O -1.325956 10.838557 -7.120140 402 9007 9008 + 9007 H -1.379491 10.683558 -6.153949 403 9006 + 9008 H -1.024828 11.727198 -7.077078 403 9006 + 9009 O -3.710126 14.086716 -7.244913 402 9010 9011 + 9010 H -4.337761 13.541137 -7.799347 403 9009 + 9011 H -4.000550 13.881396 -6.362053 403 9009 + 9012 O 14.433778 -1.890208 -13.881242 402 9013 9014 + 9013 H 13.768753 -2.557931 -14.088173 403 9012 + 9014 H 14.194801 -1.387777 -13.039639 403 9012 + 9015 O -18.934813 -1.053060 1.293190 402 9016 9017 + 9016 H -19.547923 -0.821685 1.967866 403 9015 + 9017 H -18.094001 -0.641682 1.660883 403 9015 + 9018 O -22.405398 -20.039410 9.627718 402 9019 9020 + 9019 H -22.796434 -20.600182 8.972850 403 9018 + 9020 H -22.131968 -19.299630 9.083235 403 9018 + 9021 O -1.229753 11.457428 10.074790 402 9022 9023 + 9022 H -0.334237 11.703470 10.327241 403 9021 + 9023 H -1.157156 10.837370 9.316439 403 9021 + 9024 O 25.443002 2.066902 -6.888756 402 9025 9026 + 9025 H 25.641541 2.915762 -7.359788 403 9024 + 9026 H 24.465208 2.093523 -6.739748 403 9024 + 9027 O -16.581214 16.377510 -14.832297 402 9028 9029 + 9028 H -16.587099 15.904994 -13.968869 403 9027 + 9029 H -16.866698 17.278853 -14.742235 403 9027 + 9030 O 11.983368 11.828299 -3.823724 402 9031 9032 + 9031 H 12.336985 12.445002 -3.178218 403 9030 + 9032 H 11.049304 11.604866 -3.665958 403 9030 + 9033 O 21.164572 -1.185333 -16.015117 402 9034 9035 + 9034 H 20.715162 -0.431609 -16.354646 403 9033 + 9035 H 20.819380 -1.264906 -15.151962 403 9033 + 9036 O 5.457366 -10.657358 -13.800772 402 9037 9038 + 9037 H 4.779858 -10.165440 -14.279853 403 9036 + 9038 H 6.212045 -10.040539 -13.706945 403 9036 + 9039 O -16.423429 10.434483 -15.277807 402 9040 9041 + 9040 H -15.708526 10.928082 -15.699592 403 9039 + 9041 H -15.960741 9.897443 -14.616298 403 9039 + 9042 O -20.419587 -19.665938 5.773644 402 9043 9044 + 9043 H -21.363895 -19.581010 6.013361 403 9042 + 9044 H -19.853905 -19.280863 6.468747 403 9042 + 9045 O 19.508036 -18.494331 8.912926 402 9046 9047 + 9046 H 19.727428 -18.712582 9.835185 403 9045 + 9047 H 19.913134 -19.105692 8.298087 403 9045 + 9048 O 19.742354 -2.749373 18.946243 402 9049 9050 + 9049 H 20.356111 -2.867791 19.687152 403 9048 + 9050 H 19.073759 -2.160527 19.341368 403 9048 + 9051 O 19.005725 16.659102 -4.024674 402 9052 9053 + 9052 H 18.186097 16.480938 -4.427734 403 9051 + 9053 H 18.814608 17.298422 -3.358553 403 9051 + 9054 O -8.835887 18.312505 -7.442487 402 9055 9056 + 9055 H -8.830492 17.732483 -8.193218 403 9054 + 9056 H -9.752425 18.649905 -7.404203 403 9054 + 9057 O -17.336326 4.931650 10.634975 402 9058 9059 + 9058 H -16.450097 5.217439 10.271982 403 9057 + 9059 H -17.882557 4.558518 9.889708 403 9057 + 9060 O -3.010824 -5.905956 6.847801 402 9061 9062 + 9061 H -2.748688 -5.113745 6.359917 403 9060 + 9062 H -2.163371 -6.028171 7.336259 403 9060 + 9063 O 26.674110 12.326845 1.003397 402 9064 9065 + 9064 H 26.498840 12.357411 1.941376 403 9063 + 9065 H 26.095376 11.585032 0.663483 403 9063 + 9066 O -3.647702 -6.137587 13.529843 402 9067 9068 + 9067 H -3.585661 -5.496886 12.804045 403 9066 + 9068 H -3.582668 -6.993279 13.154224 403 9066 + 9069 O 1.988731 3.642853 -17.323133 402 9070 9071 + 9070 H 1.657523 3.030179 -16.746788 403 9069 + 9071 H 1.714357 4.548463 -17.022125 403 9069 + 9072 O -21.467906 15.279507 16.450567 402 9073 9074 + 9073 H -21.342432 15.396388 15.459294 403 9072 + 9074 H -21.255917 16.108495 16.873553 403 9072 + 9075 O 10.722659 -15.332451 -4.565762 402 9076 9077 + 9076 H 10.219128 -14.832093 -3.873147 403 9075 + 9077 H 11.478425 -15.649236 -4.183169 403 9075 + 9078 O -15.362943 8.381189 -9.911049 402 9079 9080 + 9079 H -15.790421 8.852870 -9.163602 403 9078 + 9080 H -15.901457 8.456340 -10.687883 403 9078 + 9081 O -6.117005 -17.666075 11.598739 402 9082 9083 + 9082 H -5.807530 -18.593273 11.402299 403 9081 + 9083 H -5.391363 -17.258909 12.082625 403 9081 + 9084 O 15.809786 8.519937 -19.377408 402 9085 9086 + 9085 H 15.758815 8.522648 -20.341707 403 9084 + 9086 H 15.420577 9.368007 -19.123689 403 9084 + 9087 O 16.939240 -18.373645 7.950825 402 9088 9089 + 9088 H 17.207858 -18.006941 7.092997 403 9087 + 9089 H 17.812610 -18.447723 8.295733 403 9087 + 9090 O -12.507522 -15.054493 6.331021 402 9091 9092 + 9091 H -13.226017 -14.420799 6.460827 403 9090 + 9092 H -11.849976 -14.561229 5.786593 403 9090 + 9093 O -18.182152 4.799952 -11.866172 402 9094 9095 + 9094 H -18.038039 4.897463 -10.917789 403 9093 + 9095 H -18.695958 4.021311 -12.029165 403 9093 + 9096 O -9.377203 11.614184 3.311631 402 9097 9098 + 9097 H -9.092786 10.701027 3.311174 403 9096 + 9098 H -8.739940 12.083447 3.909937 403 9096 + 9099 O 24.894256 -5.525807 -20.636863 402 9100 9101 + 9100 H 24.507335 -5.547278 -19.753182 403 9099 + 9101 H 25.790020 -5.247577 -20.418409 403 9099 + 9102 O -23.172834 -17.188227 2.440789 402 9103 9104 + 9103 H -23.395171 -18.018880 2.825747 403 9102 + 9104 H -22.193387 -17.125237 2.517058 403 9102 + 9105 O 24.135008 -19.930490 -4.684991 402 9106 9107 + 9106 H 24.122289 -18.925946 -4.803857 403 9105 + 9107 H 24.712920 -20.215229 -5.372877 403 9105 + 9108 O -17.792076 11.534192 15.059996 402 9109 9110 + 9109 H -16.965370 11.797213 15.470927 403 9108 + 9110 H -18.560988 11.913780 15.443831 403 9108 + 9111 O -18.514941 20.339905 -0.125520 402 9112 9113 + 9112 H -18.667243 19.462095 -0.535183 403 9111 + 9113 H -18.065408 20.873029 -0.719025 403 9111 + 9114 O -22.940337 -3.988570 -9.248839 402 9115 9116 + 9115 H -22.556330 -3.193733 -8.929657 403 9114 + 9116 H -23.624559 -3.640649 -9.848732 403 9114 + 9117 O 12.039511 -1.981999 -19.397718 402 9118 9119 + 9118 H 12.283853 -1.068627 -19.717430 403 9117 + 9119 H 11.293173 -1.821725 -18.743785 403 9117 + 9120 O 26.340624 1.335259 19.289276 402 9121 9122 + 9121 H 26.841055 0.655996 19.819897 403 9120 + 9122 H 26.800288 2.181296 19.386054 403 9120 + 9123 O 5.916695 14.316365 5.690974 402 9124 9125 + 9124 H 6.301016 14.102416 4.790199 403 9123 + 9125 H 5.065517 13.849361 5.701154 403 9123 + 9126 O 13.370348 -18.821001 19.162682 402 9127 9128 + 9127 H 14.108633 -19.097802 18.663220 403 9126 + 9128 H 13.699085 -18.168012 19.800526 403 9126 + 9129 O 23.405805 15.068779 9.736213 402 9130 9131 + 9130 H 22.573160 14.660972 10.019951 403 9129 + 9131 H 23.219623 15.734719 9.058682 403 9129 + 9132 O -5.408829 13.828838 18.447419 402 9133 9134 + 9133 H -6.168561 13.481395 17.992340 403 9132 + 9134 H -4.784831 14.172206 17.836655 403 9132 + 9135 O -13.245623 5.670961 -0.018513 402 9136 9137 + 9136 H -12.419620 5.936404 0.475256 403 9135 + 9137 H -12.953928 4.989305 -0.645525 403 9135 + 9138 O 17.249203 -6.366308 2.555121 402 9139 9140 + 9139 H 18.196321 -6.281038 2.412817 403 9138 + 9140 H 16.966298 -7.253693 2.384394 403 9138 + 9141 O -5.296416 19.864731 -1.668047 402 9142 9143 + 9142 H -5.749980 19.031441 -1.444019 403 9141 + 9143 H -4.299943 19.722461 -1.604460 403 9141 + 9144 O -16.684535 5.831070 -9.866261 402 9145 9146 + 9145 H -17.133431 6.510584 -9.314798 403 9144 + 9146 H -15.783199 6.112174 -9.905469 403 9144 + 9147 O 16.265639 6.852785 -7.896636 402 9148 9149 + 9148 H 16.527802 6.700601 -8.808419 403 9147 + 9149 H 17.070642 6.577942 -7.414049 403 9147 + 9150 O -21.312105 18.191924 10.459876 402 9151 9152 + 9151 H -20.762633 18.843032 9.983997 403 9150 + 9152 H -20.749711 17.337404 10.555555 403 9150 + 9153 O -16.100357 -8.153697 -5.142815 402 9154 9155 + 9154 H -16.563606 -8.364758 -6.004467 403 9153 + 9155 H -15.154250 -7.906094 -5.382181 403 9153 + 9156 O -9.615286 13.091225 20.211510 402 9157 9158 + 9157 H -9.791366 12.655362 19.395743 403 9156 + 9158 H -10.462726 13.102852 20.699120 403 9156 + 9159 O -18.598056 -9.697384 8.839376 402 9160 9161 + 9160 H -18.669310 -10.516686 9.343906 403 9159 + 9161 H -18.931363 -8.964428 9.385541 403 9159 + 9162 O 7.933987 -14.093590 6.186519 402 9163 9164 + 9163 H 8.207527 -14.668399 6.884006 403 9162 + 9164 H 8.301922 -13.235214 6.418423 403 9162 + 9165 O 14.288937 4.874936 -8.228821 402 9166 9167 + 9166 H 13.542574 5.155680 -8.863279 403 9165 + 9167 H 14.810343 5.654336 -8.058197 403 9165 + 9168 O 12.246994 8.643633 9.863872 402 9169 9170 + 9169 H 12.726549 8.831956 10.652198 403 9168 + 9170 H 11.373287 8.283693 10.003012 403 9168 + 9171 O -25.270711 -9.927997 8.533897 402 9172 9173 + 9172 H -24.762785 -10.112710 9.286810 403 9171 + 9173 H -25.238676 -10.761122 8.058752 403 9171 + 9174 O 22.391162 10.881778 -20.435148 402 9175 9176 + 9175 H 21.795271 11.117663 -21.128050 403 9174 + 9176 H 22.356795 11.558284 -19.773744 403 9174 + 9177 O -0.807548 -14.371789 12.994860 402 9178 9179 + 9178 H 0.169556 -14.376294 13.074982 403 9177 + 9179 H -1.104471 -13.660037 12.471373 403 9177 + 9180 O 7.732198 13.812736 20.037022 402 9181 9182 + 9181 H 8.322105 14.100985 20.697382 403 9180 + 9182 H 7.280009 14.639584 19.691732 403 9180 + 9183 O 19.803756 0.841082 -17.134900 402 9184 9185 + 9184 H 19.288798 0.974936 -16.312323 403 9183 + 9185 H 20.344973 1.668924 -17.222026 403 9183 + 9186 O 3.006216 10.098697 2.949568 402 9187 9188 + 9187 H 2.578021 10.984530 2.806805 403 9186 + 9188 H 3.907142 10.297785 3.184074 403 9186 + 9189 O 15.873541 13.013460 -17.893320 402 9190 9191 + 9190 H 15.039690 13.457379 -17.843027 403 9189 + 9191 H 16.307486 13.271147 -17.069099 403 9189 + 9192 O 17.084293 4.346353 -14.985379 402 9193 9194 + 9193 H 16.897186 4.218804 -15.905422 403 9192 + 9194 H 18.061148 4.233803 -14.912436 403 9192 + 9195 O -21.371098 -2.500601 10.634104 402 9196 9197 + 9196 H -21.050859 -3.246995 11.070174 403 9195 + 9197 H -21.156581 -2.501005 9.672558 403 9195 + 9198 O -18.750890 1.105436 13.107103 402 9199 9200 + 9199 H -19.405065 0.422507 13.292755 403 9198 + 9200 H -18.176163 1.261421 13.836264 403 9198 + 9201 O -14.137019 19.297443 5.108564 402 9202 9203 + 9202 H -14.447107 19.586959 4.301598 403 9201 + 9203 H -14.859255 19.041560 5.714699 403 9201 + 9204 O 2.347144 -4.353199 10.184512 402 9205 9206 + 9205 H 3.047693 -4.789736 10.732160 403 9204 + 9206 H 1.864240 -5.020658 9.719618 403 9204 + 9207 O 8.101274 -12.868709 15.865572 402 9208 9209 + 9208 H 9.008432 -13.290947 15.950755 403 9207 + 9209 H 8.164041 -12.117937 16.446599 403 9207 + 9210 O -7.675769 -15.390059 12.539289 402 9211 9212 + 9211 H -7.409496 -14.626553 11.915042 403 9210 + 9212 H -7.614755 -16.191218 12.009248 403 9210 + 9213 O -21.398277 17.515428 0.659811 402 9214 9215 + 9214 H -22.373476 17.461084 0.916402 403 9213 + 9215 H -21.187696 16.555626 0.790839 403 9213 + 9216 O -16.011532 15.600476 -5.525384 402 9217 9218 + 9217 H -15.829552 14.648078 -5.450075 403 9216 + 9218 H -15.676036 15.915857 -6.377072 403 9216 + 9219 O -20.171456 -7.558847 9.362228 402 9220 9221 + 9220 H -19.542732 -6.922489 9.041804 403 9219 + 9221 H -20.565885 -7.210783 10.122068 403 9219 + 9222 O -10.027028 2.569851 14.780708 402 9223 9224 + 9223 H -10.957643 2.497925 14.922514 403 9222 + 9224 H -9.726024 3.392205 15.205842 403 9222 + 9225 O -12.389641 -3.630575 19.832870 402 9226 9227 + 9226 H -12.243221 -2.721357 19.438252 403 9225 + 9227 H -11.816036 -4.199902 19.239521 403 9225 + 9228 O 18.688398 -15.142019 -11.646870 402 9229 9230 + 9229 H 18.104901 -15.132683 -12.455435 403 9228 + 9230 H 19.565818 -14.972254 -11.954461 403 9228 + 9231 O -16.127768 -4.186936 16.465789 402 9232 9233 + 9232 H -16.199826 -5.136635 16.281789 403 9231 + 9233 H -15.213417 -3.948084 16.556706 403 9231 + 9234 O -5.695916 9.820869 12.533783 402 9235 9236 + 9235 H -6.081058 9.297651 11.888045 403 9234 + 9236 H -6.375197 10.194994 13.105807 403 9234 + 9237 O -11.767595 7.371441 19.819990 402 9238 9239 + 9238 H -12.489308 7.774706 20.373473 403 9237 + 9239 H -10.903774 7.497881 20.264329 403 9237 + 9240 O -18.646029 -3.188135 4.429231 402 9241 9242 + 9241 H -18.121897 -2.394969 4.628228 403 9240 + 9242 H -19.564881 -3.024196 4.677418 403 9240 + 9243 O -27.199358 17.790334 15.106308 402 9244 9245 + 9244 H -27.385927 16.881826 14.776421 403 9243 + 9245 H -27.100030 17.729872 16.057267 403 9243 + 9246 O 18.093363 3.769702 -4.593442 402 9247 9248 + 9247 H 18.609903 3.037301 -4.942422 403 9246 + 9248 H 18.650829 4.233336 -3.997439 403 9246 + 9249 O 7.706432 11.586595 6.521802 402 9250 9251 + 9250 H 7.812472 12.398627 6.995928 403 9249 + 9251 H 7.694286 11.737503 5.595545 403 9249 + 9252 O -23.496957 14.349318 18.036220 402 9253 9254 + 9253 H -22.854057 14.699094 17.423607 403 9252 + 9254 H -22.990832 13.822071 18.687726 403 9252 + 9255 O -4.664327 -11.498090 8.919813 402 9256 9257 + 9256 H -5.320061 -11.113845 8.334147 403 9255 + 9257 H -4.917357 -12.403653 9.095316 403 9255 + 9258 O -12.823426 10.100060 12.766547 402 9259 9260 + 9259 H -13.732598 9.891677 12.621183 403 9258 + 9260 H -12.785614 10.926980 13.238539 403 9258 + 9261 O -17.217436 3.102574 -9.344857 402 9262 9263 + 9262 H -16.824523 3.966216 -9.255133 403 9261 + 9263 H -18.161389 3.114177 -9.202666 403 9261 + 9264 O -19.237099 13.102459 19.268997 402 9265 9266 + 9265 H -18.881981 13.843795 19.761617 403 9264 + 9266 H -18.662460 12.340333 19.526666 403 9264 + 9267 O -9.459329 4.127006 -20.423384 402 9268 9269 + 9268 H -9.437953 4.152565 -21.392157 403 9267 + 9269 H -9.259556 3.201676 -20.170944 403 9267 + 9270 O 16.881832 1.847629 -10.429065 402 9271 9272 + 9271 H 16.137346 2.355903 -10.841218 403 9270 + 9272 H 16.970716 2.383474 -9.646384 403 9270 + 9273 O 14.087997 4.886317 -18.329611 402 9274 9275 + 9274 H 13.870527 5.790902 -18.194453 403 9273 + 9275 H 13.733176 4.313827 -17.614840 403 9273 + 9276 O -16.672076 -8.158476 12.371072 402 9277 9278 + 9277 H -16.864374 -8.959184 11.822666 403 9276 + 9278 H -15.812107 -8.255964 12.755980 403 9276 + 9279 O -19.299758 3.045618 -4.235388 402 9280 9281 + 9280 H -19.897059 2.549328 -3.677605 403 9279 + 9281 H -19.150628 3.861874 -3.750292 403 9279 + 9282 O -23.652514 -4.511442 -6.532734 402 9283 9284 + 9283 H -22.727919 -4.287115 -6.467785 403 9282 + 9284 H -23.794359 -4.367125 -7.440392 403 9282 + 9285 O -2.920139 11.742479 14.018818 402 9286 9287 + 9286 H -3.093279 11.094202 13.278761 403 9285 + 9287 H -2.213003 12.387804 13.722639 403 9285 + 9288 O 26.349425 3.441434 -0.896655 402 9289 9290 + 9289 H 25.559323 3.941367 -0.786766 403 9288 + 9290 H 26.827837 3.589174 -1.727789 403 9288 + 9291 O 24.371024 -6.950117 11.157076 402 9292 9293 + 9292 H 24.363949 -7.335870 12.010991 403 9291 + 9293 H 23.997586 -7.623084 10.641501 403 9291 + 9294 O -22.986862 7.597219 -10.685297 402 9295 9296 + 9295 H -22.839220 7.363568 -11.582970 403 9294 + 9296 H -23.377355 8.488181 -10.698170 403 9294 + 9297 O -26.260863 2.606900 0.424694 402 9298 9299 + 9298 H -25.763469 2.340546 -0.362004 403 9297 + 9299 H -27.210163 2.597209 0.142899 403 9297 + 9300 O -12.863331 19.210721 9.863577 402 9301 9302 + 9301 H -12.261758 19.250393 10.674962 403 9300 + 9302 H -13.524604 18.506027 9.993308 403 9300 + 9303 O -21.978336 -14.820148 8.330413 402 9304 9305 + 9304 H -21.114644 -14.929597 7.888749 403 9303 + 9305 H -21.801101 -14.612357 9.239922 403 9303 + 9306 O 4.170159 8.312971 19.162038 402 9307 9308 + 9307 H 4.570566 7.905151 18.357550 403 9306 + 9308 H 3.241810 8.258885 18.904642 403 9306 + 9309 O 20.797031 -12.724867 -4.841837 402 9310 9311 + 9310 H 20.936034 -13.677427 -4.931553 403 9309 + 9311 H 21.567394 -12.221377 -4.833917 403 9309 + 9312 O 13.112963 4.999431 10.925314 402 9313 9314 + 9313 H 13.381193 5.910915 11.162187 403 9312 + 9314 H 12.775168 5.031277 10.023795 403 9312 + 9315 O -17.488498 18.101828 -9.390547 402 9316 9317 + 9316 H -16.811412 18.773847 -9.686587 403 9315 + 9317 H -17.803299 18.410345 -8.511456 403 9315 + 9318 O 17.749103 -8.641103 -11.171278 402 9319 9320 + 9319 H 17.842099 -7.910400 -11.803229 403 9318 + 9320 H 18.554099 -8.647320 -10.650095 403 9318 + 9321 O 23.187132 -9.133014 9.904940 402 9322 9323 + 9322 H 23.460415 -9.970033 10.292082 403 9321 + 9323 H 22.233888 -9.184916 9.742240 403 9321 + 9324 O 14.891551 9.368784 -7.655561 402 9325 9326 + 9325 H 15.425686 8.571538 -7.734882 403 9324 + 9326 H 15.193600 9.946038 -8.368338 403 9324 + 9327 O -23.866954 -2.554397 -3.337520 402 9328 9329 + 9328 H -23.349227 -3.276607 -2.890486 403 9327 + 9329 H -24.593652 -2.997738 -3.796287 403 9327 + 9330 O 5.289348 -7.469003 -13.632279 402 9331 9332 + 9331 H 5.277377 -6.512734 -13.514077 403 9330 + 9332 H 5.158552 -7.590503 -14.588796 403 9330 + 9333 O -24.673900 -20.221091 14.116865 402 9334 9335 + 9334 H -24.507583 -21.124377 14.341508 403 9333 + 9335 H -24.631103 -20.019803 13.186904 403 9333 + 9336 O 23.849959 -2.905384 -13.612324 402 9337 9338 + 9337 H 23.991560 -2.301635 -14.360144 403 9336 + 9338 H 23.035961 -3.322471 -13.648750 403 9336 + 9339 O 9.597419 13.539609 16.458855 402 9340 9341 + 9340 H 8.786247 13.049602 16.392590 403 9339 + 9341 H 9.783350 13.953319 15.588815 403 9339 + 9342 O 25.970484 6.179678 15.798539 402 9343 9344 + 9343 H 26.018959 6.019011 14.863720 403 9342 + 9344 H 26.760326 5.647911 16.135033 403 9342 + 9345 O 15.995160 -8.299211 -19.360180 402 9346 9347 + 9346 H 16.084534 -7.778026 -20.183460 403 9345 + 9347 H 16.045247 -9.240694 -19.615365 403 9345 + 9348 O -14.294639 13.545693 12.129310 402 9349 9350 + 9349 H -14.596139 13.059241 11.355518 403 9348 + 9350 H -13.936091 12.903120 12.762555 403 9348 + 9351 O -19.407809 -1.632719 -10.223791 402 9352 9353 + 9352 H -18.944881 -0.931680 -10.694558 403 9351 + 9353 H -19.337036 -2.518503 -10.649693 403 9351 + 9354 O 19.353851 17.575670 17.852735 402 9355 9356 + 9355 H 19.970328 18.410638 17.937921 403 9354 + 9356 H 18.705869 17.842357 17.182350 403 9354 + 9357 O 7.952485 -13.835833 10.779314 402 9358 9359 + 9358 H 8.503126 -13.070419 11.090754 403 9357 + 9359 H 7.207795 -13.430815 10.322018 403 9357 + 9360 O -22.842698 -2.314944 16.647836 402 9361 9362 + 9361 H -23.333149 -1.519155 16.340397 403 9360 + 9362 H -23.463394 -3.038396 16.463743 403 9360 + 9363 O -19.201717 2.632915 18.127454 402 9364 9365 + 9364 H -20.123441 2.325926 18.179315 403 9363 + 9365 H -19.210821 3.510831 17.811602 403 9363 + 9366 O 14.940360 -1.960385 -5.022951 402 9367 9368 + 9367 H 15.464903 -2.467492 -5.627366 403 9366 + 9368 H 15.028383 -1.068080 -5.249177 403 9366 + 9369 O 18.305226 -9.507548 11.469011 402 9370 9371 + 9370 H 18.631115 -9.386360 12.404545 403 9369 + 9371 H 17.861273 -8.670836 11.223009 403 9369 + 9372 O 14.602066 10.381034 5.005010 402 9373 9374 + 9373 H 13.693795 10.430464 4.699453 403 9372 + 9374 H 14.612959 10.041819 5.921815 403 9372 + 9375 O 2.027713 14.335519 -2.737302 402 9376 9377 + 9376 H 2.701727 15.041848 -2.820213 403 9375 + 9377 H 1.287972 14.760203 -2.236217 403 9375 + 9378 O 7.583318 14.155640 -9.444813 402 9379 9380 + 9379 H 6.943304 13.664978 -8.934443 403 9378 + 9380 H 7.541292 15.069839 -9.060789 403 9378 + 9381 O 6.157219 -18.775945 -4.259618 402 9382 9383 + 9382 H 6.564876 -17.949995 -4.135465 403 9381 + 9383 H 5.381952 -18.685791 -4.858352 403 9381 + 9384 O -17.694760 -19.372982 4.444716 402 9385 9386 + 9385 H -18.482553 -19.775840 4.189782 403 9384 + 9386 H -17.768985 -18.373906 4.216234 403 9384 + 9387 O -7.853241 -10.893164 5.893751 402 9388 9389 + 9388 H -8.018175 -11.113207 6.770281 403 9387 + 9389 H -8.721602 -10.559022 5.533534 403 9387 + 9390 O -0.179053 -16.316262 -6.972426 402 9391 9392 + 9391 H -0.917372 -16.443486 -6.358316 403 9390 + 9392 H 0.161491 -15.370029 -6.873414 403 9390 + 9393 O -17.840107 2.077389 4.804516 402 9394 9395 + 9394 H -18.321956 2.898522 4.546830 403 9393 + 9395 H -17.883766 1.968309 5.738130 403 9393 + 9396 O 22.514225 -13.301014 8.910658 402 9397 9398 + 9397 H 22.980267 -13.555893 9.738284 403 9396 + 9398 H 22.816838 -13.961875 8.319245 403 9396 + 9399 O 8.642838 -14.756688 -17.347259 402 9400 9401 + 9400 H 7.685639 -14.854800 -17.271066 403 9399 + 9401 H 9.104821 -15.542415 -17.427483 403 9399 + 9402 O 1.148414 -18.182410 2.438452 402 9403 9404 + 9403 H 1.244513 -18.018729 1.471145 403 9402 + 9404 H 0.297784 -18.622295 2.484621 403 9402 + 9405 O -0.615129 -11.682105 -14.874888 402 9406 9407 + 9406 H -0.743014 -12.466140 -15.424873 403 9405 + 9407 H -0.401037 -10.992229 -15.542345 403 9405 + 9408 O 0.382292 8.435158 -17.928055 402 9409 9410 + 9409 H 1.324448 8.603691 -17.753474 403 9408 + 9410 H -0.034745 8.730008 -17.117939 403 9408 + 9411 O 16.913096 -13.325161 -8.541691 402 9412 9413 + 9412 H 17.365381 -13.123665 -7.714485 403 9411 + 9413 H 17.395114 -14.047333 -9.044404 403 9411 + 9414 O -21.295513 -11.021940 0.140848 402 9415 9416 + 9415 H -20.399742 -11.414489 0.196618 403 9414 + 9416 H -21.717453 -11.457849 -0.596997 403 9414 + 9417 O 16.257153 -20.396691 -7.748186 402 9418 9419 + 9418 H 15.866593 -21.141436 -8.252209 403 9417 + 9419 H 16.774217 -20.799101 -7.019481 403 9417 + 9420 O 0.208862 17.804049 -6.156398 402 9421 9422 + 9421 H -0.761445 17.806961 -6.377662 403 9420 + 9422 H 0.362977 16.942869 -5.716103 403 9420 + 9423 O 16.820504 12.298715 0.018055 402 9424 9425 + 9424 H 17.269628 12.806166 0.753963 403 9423 + 9425 H 16.616966 11.447779 0.422257 403 9423 + 9426 O 8.249689 9.539413 -5.657026 402 9427 9428 + 9427 H 7.926267 8.961633 -4.961649 403 9426 + 9428 H 7.466873 9.988595 -6.079963 403 9426 + 9429 O -6.420145 -15.194726 -2.072771 402 9430 9431 + 9430 H -6.645150 -15.017421 -2.971457 403 9429 + 9431 H -5.532921 -14.874756 -2.025757 403 9429 + 9432 O -19.505572 1.070481 -18.793079 402 9433 9434 + 9433 H -18.974247 1.767142 -19.229226 403 9432 + 9434 H -19.357244 1.271413 -17.799689 403 9432 + 9435 O 20.278433 -11.278541 19.375197 402 9436 9437 + 9436 H 20.311617 -10.856797 20.258994 403 9435 + 9437 H 20.934421 -12.034086 19.419062 403 9435 + 9438 O -10.619435 15.949865 1.585511 402 9439 9440 + 9439 H -10.621509 15.567618 2.491670 403 9438 + 9440 H -10.362619 16.916267 1.609401 403 9438 + 9441 O -1.101917 -7.441924 10.586362 402 9442 9443 + 9442 H -0.567999 -7.634893 11.314871 403 9441 + 9443 H -0.711206 -6.670438 10.158382 403 9441 + 9444 O -8.851165 -9.058377 -8.388886 402 9445 9446 + 9445 H -9.044805 -8.277288 -8.905613 403 9444 + 9446 H -7.947771 -9.334823 -8.625881 403 9444 + 9447 O -12.865173 -20.003868 -17.685004 402 9448 9449 + 9448 H -11.900331 -20.290871 -17.648188 403 9447 + 9449 H -13.259242 -20.215643 -16.805809 403 9447 + 9450 O 8.134636 3.904853 11.647104 402 9451 9452 + 9451 H 7.339621 4.198944 12.086138 403 9450 + 9452 H 8.359181 3.015108 11.941173 403 9450 + 9453 O 19.642179 -0.232387 9.832126 402 9454 9455 + 9454 H 18.865134 -0.769467 9.662648 403 9453 + 9455 H 19.348750 0.264237 10.621214 403 9453 + 9456 O -12.682747 8.424040 -10.230134 402 9457 9458 + 9457 H -13.551445 8.389330 -9.854912 403 9456 + 9458 H -12.463391 9.379389 -10.339605 403 9456 + 9459 O 26.914440 16.154997 -16.554272 402 9460 9461 + 9460 H 26.893167 15.808906 -17.482437 403 9459 + 9461 H 26.594368 15.442541 -16.021243 403 9459 + 9462 O -6.756073 6.486074 12.621266 402 9463 9464 + 9463 H -6.001614 6.299854 12.037502 403 9462 + 9464 H -7.537856 6.154367 12.136267 403 9462 + 9465 O -1.534934 -0.378729 -11.255488 402 9466 9467 + 9466 H -1.019268 -0.077205 -12.015010 403 9465 + 9467 H -1.396223 0.199493 -10.524178 403 9465 + 9468 O -7.913402 -19.479583 -10.101731 402 9469 9470 + 9469 H -7.094305 -19.451963 -10.661033 403 9468 + 9470 H -8.430321 -18.659348 -10.306663 403 9468 + 9471 O 19.510276 5.438180 15.252043 402 9472 9473 + 9472 H 19.984510 4.581515 15.209276 403 9471 + 9473 H 18.693891 5.265727 15.619608 403 9471 + 9474 O 14.672317 -11.674219 -8.512325 402 9475 9476 + 9475 H 15.214654 -10.997268 -8.992741 403 9474 + 9476 H 15.271629 -12.444207 -8.537082 403 9474 + 9477 O -26.549973 -17.678593 10.402834 402 9478 9479 + 9478 H -25.763998 -17.483834 10.878590 403 9477 + 9479 H -27.160376 -17.361462 11.034196 403 9477 + 9480 O 5.271179 14.438724 -17.415549 402 9481 9482 + 9481 H 4.435936 14.151626 -17.136425 403 9480 + 9482 H 5.468504 14.023544 -18.253894 403 9480 + 9483 O 26.352424 19.290788 19.181784 402 9484 9485 + 9484 H 26.638793 20.134863 19.511609 403 9483 + 9485 H 27.096123 18.959221 18.597699 403 9483 + 9486 O -26.414188 7.441925 13.185744 402 9487 9488 + 9487 H -26.562431 6.574296 12.885418 403 9486 + 9488 H -25.860420 7.846130 12.499402 403 9486 + 9489 O 5.368816 -14.762666 -4.864027 402 9490 9491 + 9490 H 6.085752 -14.950510 -4.202359 403 9489 + 9491 H 5.366848 -13.815827 -5.050153 403 9489 + 9492 O -1.852223 13.402453 16.099559 402 9493 9494 + 9493 H -0.907053 13.096616 15.950410 403 9492 + 9494 H -2.405269 12.678324 16.442150 403 9492 + 9495 O -9.537989 1.018888 -17.294635 402 9496 9497 + 9496 H -10.174283 0.989703 -18.011766 403 9495 + 9497 H -10.088090 0.844105 -16.509242 403 9495 + 9498 O -4.825860 2.375466 13.925597 402 9499 9500 + 9499 H -4.190822 2.787671 13.323831 403 9498 + 9500 H -5.515449 3.033395 14.087300 403 9498 + 9501 O 19.580327 -10.893880 -2.747248 402 9502 9503 + 9502 H 19.742431 -11.614878 -3.428406 403 9501 + 9503 H 18.622372 -10.972265 -2.491828 403 9501 + 9504 O 19.256086 14.705134 10.874402 402 9505 9506 + 9505 H 20.041175 14.096992 10.573737 403 9504 + 9506 H 18.760180 14.026878 11.366191 403 9504 + 9507 O 4.455935 -2.361452 20.137505 402 9508 9509 + 9508 H 3.955764 -1.509452 20.278229 403 9507 + 9509 H 4.874829 -2.603490 21.001857 403 9507 + 9510 O -25.974850 13.344171 -18.000007 402 9511 9512 + 9511 H -26.267499 12.457368 -18.163639 403 9510 + 9512 H -26.149308 13.539735 -17.037715 403 9510 + 9513 O 17.067973 2.763490 17.660244 402 9514 9515 + 9514 H 16.915215 3.437471 16.973312 403 9513 + 9515 H 17.816632 2.203161 17.314923 403 9513 + 9516 O -11.517545 18.040646 17.714435 402 9517 9518 + 9517 H -11.560942 17.052444 17.749537 403 9516 + 9518 H -11.413962 18.230547 18.657315 403 9516 + 9519 O 25.776483 -1.160860 1.258340 402 9520 9521 + 9520 H 26.324116 -0.766625 1.925968 403 9519 + 9521 H 25.733053 -0.545865 0.469204 403 9519 + 9522 O 0.465549 -19.018322 6.222139 402 9523 9524 + 9523 H 0.971697 -19.764727 5.842403 403 9522 + 9524 H 1.099427 -18.538006 6.759456 403 9522 + 9525 O 26.241049 -6.898960 18.643166 402 9526 9527 + 9526 H 25.947101 -5.963940 18.676752 403 9525 + 9527 H 25.610721 -7.314304 19.228579 403 9525 + 9528 O 16.134037 -10.035813 7.553052 402 9529 9530 + 9529 H 16.959970 -10.575559 7.222214 403 9528 + 9530 H 16.256703 -9.244050 7.026849 403 9528 + 9531 O 22.936475 16.842438 -13.354400 402 9532 9533 + 9532 H 23.113117 16.122413 -13.952998 403 9531 + 9533 H 22.167217 17.380611 -13.705166 403 9531 + 9534 O -6.174635 -12.567358 -9.759225 402 9535 9536 + 9535 H -7.056186 -12.732423 -10.081695 403 9534 + 9536 H -6.114005 -12.989145 -8.857709 403 9534 + 9537 O 13.127494 -17.049020 5.559108 402 9538 9539 + 9538 H 12.909499 -17.802411 4.984143 403 9537 + 9539 H 12.442780 -16.360937 5.316305 403 9537 + 9540 O 10.969996 20.716828 15.837969 402 9541 9542 + 9541 H 10.927306 20.477406 14.883647 403 9540 + 9542 H 11.840696 20.306837 16.078361 403 9540 + 9543 O 13.866770 18.367517 6.937702 402 9544 9545 + 9544 H 13.986130 19.326827 7.078015 403 9543 + 9545 H 14.231164 17.993652 7.716184 403 9543 + 9546 O 13.832788 12.943646 -11.273375 402 9547 9548 + 9547 H 14.056108 12.521321 -12.121074 403 9546 + 9548 H 13.085693 12.513389 -10.836623 403 9546 + 9549 O 17.127641 6.332315 -10.642348 402 9550 9551 + 9550 H 16.719396 7.195424 -10.818370 403 9549 + 9551 H 16.487151 5.750510 -10.856669 403 9549 + 9552 O 7.636882 -18.482195 20.548956 402 9553 9554 + 9553 H 7.346233 -18.787052 19.666640 403 9552 + 9554 H 8.040956 -17.608352 20.385186 403 9552 + 9555 O 15.587474 -5.247845 -16.278347 402 9556 9557 + 9556 H 16.572338 -5.288530 -16.165720 403 9555 + 9557 H 15.545571 -4.364820 -16.698452 403 9555 + 9558 O 0.738994 10.421255 -19.729083 402 9559 9560 + 9559 H 0.031346 10.313580 -20.434784 403 9558 + 9560 H 0.614162 9.625359 -19.156085 403 9558 + 9561 O -21.514700 17.398643 -8.313387 402 9562 9563 + 9562 H -21.261038 18.368357 -8.523940 403 9561 + 9563 H -20.879597 16.869528 -8.849738 403 9561 + 9564 O 21.659354 19.006928 20.763229 402 9565 9566 + 9565 H 22.346807 19.674088 20.960616 403 9564 + 9566 H 22.147607 18.139994 20.600269 403 9564 + 9567 O -13.226723 20.003033 16.874806 402 9568 9569 + 9568 H -12.786621 19.156341 16.987387 403 9567 + 9569 H -13.521849 20.036703 15.939938 403 9567 + 9570 O 12.035825 14.976596 17.699907 402 9571 9572 + 9571 H 11.299148 14.549820 17.199522 403 9570 + 9572 H 12.476396 14.244702 18.105024 403 9570 + 9573 O 23.014725 11.421066 -1.195826 402 9574 9575 + 9574 H 22.935852 12.296840 -0.719881 403 9573 + 9575 H 23.315744 11.556530 -2.052974 403 9573 + 9576 O 21.005599 -13.607746 -17.329690 402 9577 9578 + 9577 H 20.264961 -13.783556 -16.739494 403 9576 + 9578 H 21.692829 -14.155085 -17.164895 403 9576 + 9579 O 19.390018 13.715877 -9.986126 402 9580 9581 + 9580 H 18.766137 13.984667 -10.642161 403 9579 + 9581 H 18.882708 13.584906 -9.182021 403 9579 + 9582 O 21.591458 2.844658 -17.196608 402 9583 9584 + 9583 H 21.687177 3.186923 -18.110216 403 9582 + 9584 H 22.488513 2.580610 -17.004967 403 9582 + 9585 O 11.345787 -11.914521 18.833564 402 9586 9587 + 9586 H 10.571637 -11.320431 18.801840 403 9585 + 9587 H 11.974322 -11.433977 19.432443 403 9585 + 9588 O 14.649482 -19.545223 8.356804 402 9589 9590 + 9589 H 14.003078 -18.851322 8.539351 403 9588 + 9590 H 15.599308 -19.149367 8.338570 403 9588 + 9591 O -11.043193 -18.255867 17.281239 402 9592 9593 + 9592 H -10.224926 -18.639865 16.994545 403 9591 + 9593 H -11.487164 -19.009987 17.634582 403 9591 + 9594 O -26.985345 -16.412246 -14.400881 402 9595 9596 + 9595 H -27.454047 -15.606813 -14.379952 403 9594 + 9596 H -26.081841 -16.159237 -14.585861 403 9594 + 9597 O 19.102051 -15.098666 -8.764412 402 9598 9599 + 9598 H 19.000932 -15.521094 -9.678404 403 9597 + 9599 H 19.453733 -14.174347 -8.910357 403 9597 + 9600 O 6.376012 19.349948 5.671135 402 9601 9602 + 9601 H 6.687862 20.029372 5.077314 403 9600 + 9602 H 5.561947 19.709229 6.038539 403 9600 + 9603 O -17.499998 -13.507016 9.684050 402 9604 9605 + 9604 H -17.138230 -13.962493 10.435127 403 9603 + 9605 H -17.640659 -14.284861 9.096248 403 9603 + 9606 O 17.699807 -14.814698 11.789809 402 9607 9608 + 9607 H 17.014114 -15.422000 11.369433 403 9606 + 9608 H 17.429825 -14.840034 12.737607 403 9606 + 9609 O 12.888820 1.939624 -17.757092 402 9610 9611 + 9610 H 12.023501 2.459281 -17.778689 403 9609 + 9611 H 12.922205 1.789197 -16.837552 403 9609 + 9612 O -27.142428 -4.791675 -8.608453 402 9613 9614 + 9613 H -27.117499 -4.179414 -9.373351 403 9612 + 9614 H -26.563163 -5.561210 -8.869517 403 9612 + 9615 O 18.673615 12.370651 6.319082 402 9616 9617 + 9616 H 18.699459 11.385010 6.253835 403 9615 + 9617 H 18.583561 12.688817 5.434396 403 9615 + 9618 O 10.178364 -12.605036 -17.136500 402 9619 9620 + 9619 H 10.699128 -12.924478 -16.370473 403 9618 + 9620 H 9.489391 -13.311993 -17.195335 403 9618 + 9621 O 7.257958 3.289333 16.273726 402 9622 9623 + 9622 H 7.801701 4.023865 16.654114 403 9621 + 9623 H 6.831954 2.726700 16.945762 403 9621 + 9624 O -22.793525 -4.351149 1.112435 402 9625 9626 + 9625 H -23.178683 -4.998212 1.686297 403 9624 + 9626 H -22.676437 -3.490820 1.495852 403 9624 + 9627 O 10.431915 10.150385 6.416596 402 9628 9629 + 9628 H 9.504032 10.369808 6.525826 403 9627 + 9629 H 10.818627 10.534325 7.222492 403 9627 + 9630 O 16.181318 -18.659361 -4.530126 402 9631 9632 + 9631 H 16.539581 -18.491898 -3.640666 403 9630 + 9632 H 16.723714 -18.083763 -5.128977 403 9630 + 9633 O 24.085884 14.331318 -5.367949 402 9634 9635 + 9634 H 25.027794 14.190212 -5.345575 403 9633 + 9635 H 23.725489 13.957121 -4.548465 403 9633 + 9636 O 27.476267 18.553177 -13.120949 402 9637 9638 + 9637 H 27.278972 18.193548 -12.233661 403 9636 + 9638 H 26.663894 18.473337 -13.667172 403 9636 + 9639 O -3.429941 10.490939 1.565767 402 9640 9641 + 9640 H -4.189571 9.996973 1.988486 403 9639 + 9641 H -2.756994 10.462029 2.200444 403 9639 + 9642 O -23.874077 -2.287625 -14.406474 402 9643 9644 + 9643 H -24.326434 -2.528790 -13.612508 403 9642 + 9644 H -23.725821 -1.349091 -14.150316 403 9642 + 9645 O 6.913124 -5.939231 14.325196 402 9646 9647 + 9646 H 7.603991 -5.675852 13.760866 403 9645 + 9647 H 7.141094 -6.840164 14.586103 403 9645 + 9648 O -9.435672 7.567999 -12.736311 402 9649 9650 + 9649 H -10.092450 7.532344 -13.480723 403 9648 + 9650 H -9.904849 7.166688 -11.970693 403 9648 + 9651 O -23.627772 20.561997 -10.291642 402 9652 9653 + 9652 H -23.140188 21.403417 -10.120507 403 9651 + 9653 H -23.127330 19.939171 -10.860601 403 9651 + 9654 O -11.957151 -10.758767 10.380421 402 9655 9656 + 9655 H -12.914975 -11.025570 10.474104 403 9654 + 9656 H -11.726864 -10.328942 11.254768 403 9654 + 9657 O -4.055025 -16.357375 12.638110 402 9658 9659 + 9658 H -4.145602 -15.539307 12.188903 403 9657 + 9659 H -3.229424 -16.754351 12.492730 403 9657 + 9660 O -25.660951 2.977355 3.644209 402 9661 9662 + 9661 H -25.405729 3.847728 3.825406 403 9660 + 9662 H -26.592530 3.015138 3.572516 403 9660 + 9663 O -1.059386 -9.814838 20.360215 402 9664 9665 + 9664 H -0.131280 -9.654603 20.258879 403 9663 + 9665 H -1.404044 -10.175480 19.521783 403 9663 + 9666 O -13.274409 -12.355600 6.487680 402 9667 9668 + 9667 H -14.175655 -12.374044 6.195808 403 9666 + 9668 H -12.869043 -11.626070 5.932127 403 9666 + 9669 O -17.154642 -17.337539 -2.602671 402 9670 9671 + 9670 H -17.684268 -17.711860 -3.323318 403 9669 + 9671 H -17.542126 -17.638492 -1.768263 403 9669 + 9672 O -8.431986 -14.331490 -18.620988 402 9673 9674 + 9673 H -8.525378 -14.518157 -17.652352 403 9672 + 9674 H -9.070115 -15.091242 -18.962501 403 9672 + 9675 O 9.227734 -14.707755 8.334683 402 9676 9677 + 9676 H 8.912750 -14.297078 9.180099 403 9675 + 9677 H 10.141362 -14.864367 8.460368 403 9675 + 9678 O -18.940927 -7.749229 13.986681 402 9679 9680 + 9679 H -18.998677 -8.736236 14.046068 403 9678 + 9680 H -18.235160 -7.570709 13.352401 403 9678 + 9681 O -3.315848 14.486693 12.321029 402 9682 9683 + 9682 H -2.891118 14.428375 11.433488 403 9681 + 9683 H -3.009257 15.355409 12.649294 403 9681 + 9684 O 15.258302 19.640916 -9.495586 402 9685 9686 + 9685 H 15.255790 19.268774 -10.417780 403 9684 + 9686 H 14.362167 19.825595 -9.329840 403 9684 + 9687 O -27.308827 -17.253050 -3.549375 402 9688 9689 + 9688 H -27.016406 -16.762829 -2.812626 403 9687 + 9689 H -26.618283 -17.291456 -4.216078 403 9687 + 9690 O -17.469474 9.268976 13.624133 402 9691 9692 + 9691 H -17.003981 8.734120 14.281842 403 9690 + 9692 H -17.567961 10.133200 14.047196 403 9690 + 9693 O 20.896249 -8.668059 -15.648620 402 9694 9695 + 9694 H 21.320419 -8.468808 -14.797523 403 9693 + 9695 H 20.936901 -9.602395 -15.783740 403 9693 + 9696 O 6.591038 13.945476 -6.677072 402 9697 9698 + 9697 H 6.387452 12.989743 -6.664344 403 9696 + 9698 H 7.535066 14.092588 -6.670539 403 9696 + 9699 O 10.072634 7.484666 6.879205 402 9700 9701 + 9700 H 9.218040 7.159172 6.564500 403 9699 + 9701 H 10.122197 8.421774 6.591601 403 9699 + 9702 O -23.792275 5.951536 11.433857 402 9703 9704 + 9703 H -23.560372 6.167334 12.401775 403 9702 + 9704 H -23.076924 6.327786 10.856454 403 9702 + 9705 O 12.132840 3.851033 -6.616749 402 9706 9707 + 9706 H 12.785083 4.216573 -7.191058 403 9705 + 9707 H 12.512257 3.897859 -5.719717 403 9705 + 9708 O 5.351683 6.078049 -14.255102 402 9709 9710 + 9709 H 5.013358 6.855687 -13.813494 403 9708 + 9710 H 5.137704 6.252225 -15.124513 403 9708 + 9711 O 13.138157 -8.336001 1.684188 402 9712 9713 + 9712 H 12.595335 -8.813255 1.081700 403 9711 + 9713 H 13.382247 -7.459796 1.264391 403 9711 + 9714 O -10.347292 10.399621 -12.874082 402 9715 9716 + 9715 H -10.494653 9.452942 -12.814808 403 9714 + 9716 H -10.828227 10.775518 -13.651328 403 9714 + 9717 O 9.152946 -17.315622 6.377534 402 9718 9719 + 9718 H 8.873272 -17.655423 5.536131 403 9717 + 9719 H 9.644625 -16.466151 6.247065 403 9717 + 9720 O -2.422355 -14.638070 -20.255326 402 9721 9722 + 9721 H -2.466677 -15.603006 -20.125891 403 9720 + 9722 H -2.234204 -14.630853 -21.192244 403 9720 + 9723 O 7.306601 16.960372 -8.356338 402 9724 9725 + 9724 H 7.335426 17.713766 -8.966973 403 9723 + 9725 H 6.389385 16.681622 -8.314986 403 9723 + 9726 O -11.068015 -16.691381 7.975224 402 9727 9728 + 9727 H -11.725330 -17.098102 8.584468 403 9726 + 9728 H -11.554703 -15.995305 7.530686 403 9726 + 9729 O 2.086903 -14.793471 13.604939 402 9730 9731 + 9730 H 2.196059 -15.680487 13.948768 403 9729 + 9731 H 2.568411 -14.755595 12.759739 403 9729 + 9732 O -17.658207 18.277094 2.186303 402 9733 9734 + 9733 H -17.424686 17.674490 1.472227 403 9732 + 9734 H -18.244002 18.909136 1.776504 403 9732 + 9735 O 24.999903 10.057013 0.434977 402 9736 9737 + 9736 H 24.330807 10.404778 -0.199378 403 9735 + 9737 H 24.595385 9.375992 1.021837 403 9735 diff --git a/examples/amoeba/water_box.xyz b/examples/amoeba/water_box.xyz new file mode 100644 index 0000000000..0936f51b41 --- /dev/null +++ b/examples/amoeba/water_box.xyz @@ -0,0 +1,649 @@ + 648 Water Cubic Box (18.643 Ang, 216 AMOEBA) + 1 O 8.679662 7.087692 -0.696862 1 2 3 + 2 H 7.809455 6.755792 -0.382259 2 1 + 3 H 8.722232 6.814243 -1.617561 2 1 + 4 O -0.117313 8.244447 6.837616 1 5 6 + 5 H 0.216892 7.895445 6.050027 2 4 + 6 H 0.444268 7.826013 7.530196 2 4 + 7 O 8.379057 -0.092611 6.814631 1 8 9 + 8 H 9.340423 0.098069 6.734062 2 7 + 9 H 7.939619 0.573676 6.269838 2 7 + 10 O 6.589952 1.844323 -6.923167 1 11 12 + 11 H 5.885429 2.402305 -6.717934 2 10 + 12 H 6.181533 1.062747 -7.273678 2 10 + 13 O 7.146600 5.753582 2.331517 1 14 15 + 14 H 6.368123 6.126035 2.862678 2 13 + 15 H 7.025018 6.294645 1.518196 2 13 + 16 O -2.426581 -8.504195 -2.504834 1 17 18 + 17 H -1.692063 -8.368252 -3.058292 2 16 + 18 H -2.793207 -7.602469 -2.403097 2 16 + 19 O -8.038375 -3.605589 2.303691 1 20 21 + 20 H -8.113753 -4.248127 3.018494 2 19 + 21 H -7.619392 -2.863004 2.709622 2 19 + 22 O -1.480631 8.244085 -8.272215 1 23 24 + 23 H -2.090204 8.687978 -7.676996 2 22 + 24 H -0.700878 8.823325 -8.322213 2 22 + 25 O -3.741962 -2.777830 -2.326319 1 26 27 + 26 H -4.620456 -2.444778 -2.390519 2 25 + 27 H -3.728921 -3.160952 -1.433101 2 25 + 28 O -6.467812 -5.265942 0.408263 1 29 30 + 29 H -6.585076 -4.796537 -0.413008 2 28 + 30 H -7.021252 -4.752640 1.007958 2 28 + 31 O 9.273577 5.342431 4.055460 1 32 33 + 32 H 8.645939 5.466500 4.837640 2 31 + 33 H 8.741774 5.686149 3.302820 2 31 + 34 O 1.830160 4.276731 -6.993499 1 35 36 + 35 H 1.703275 5.223773 -6.703852 2 34 + 36 H 2.408113 3.853447 -6.383339 2 34 + 37 O 1.964382 6.832988 8.373101 1 38 39 + 38 H 2.496135 7.215781 9.056298 2 37 + 39 H 1.811283 5.905846 8.573539 2 37 + 40 O 5.405568 4.388994 7.932737 1 41 42 + 41 H 5.537380 3.438955 7.781311 2 40 + 42 H 4.755156 4.734908 7.290617 2 40 + 43 O 3.229998 2.928417 -1.090650 1 44 45 + 44 H 3.931090 3.198265 -1.702769 2 43 + 45 H 3.004438 3.708969 -0.493266 2 43 + 46 O 7.462400 5.262829 6.131170 1 47 48 + 47 H 8.025650 5.588493 6.881770 2 46 + 48 H 6.935076 4.455766 6.325405 2 46 + 49 O -8.864042 7.023845 -6.659632 1 50 51 + 50 H -8.370939 6.372557 -7.141895 2 49 + 51 H -9.489800 7.315873 -7.293125 2 49 + 52 O -4.526299 3.549989 8.030031 1 53 54 + 53 H -5.169770 4.224127 7.731323 2 52 + 54 H -4.262096 3.801892 8.884875 2 52 + 55 O 4.823286 -1.386218 4.038464 1 56 57 + 56 H 5.493155 -0.669965 4.013081 2 55 + 57 H 4.187463 -1.101832 3.338433 2 55 + 58 O -2.151150 -2.017060 -8.593685 1 59 60 + 59 H -2.475709 -2.320356 -7.783564 2 58 + 60 H -2.650484 -2.434614 -9.307384 2 58 + 61 O 1.944893 4.933226 0.497910 1 62 63 + 62 H 2.553221 5.263352 1.205303 2 61 + 63 H 2.082534 5.590999 -0.202171 2 61 + 64 O -6.827006 -5.285917 -2.371899 1 65 66 + 65 H -7.405873 -6.022738 -2.075913 2 64 + 66 H -6.398443 -5.453726 -3.235054 2 64 + 67 O -8.538047 -7.577917 -1.688532 1 68 69 + 68 H -8.075591 -8.448260 -1.513455 2 67 + 69 H -9.389507 -7.836271 -2.051835 2 67 + 70 O -6.916556 -1.100882 -5.168782 1 71 72 + 71 H -6.365888 -1.659366 -5.746210 2 70 + 72 H -6.538885 -0.249374 -5.325993 2 70 + 73 O 6.330290 -9.323893 -6.416630 1 74 75 + 74 H 7.026026 -9.680578 -7.007727 2 73 + 75 H 6.812488 -8.683594 -5.925799 2 73 + 76 O -2.424345 -5.918126 2.701855 1 77 78 + 77 H -1.613829 -5.486394 2.503024 2 76 + 78 H -3.144797 -5.307275 2.618121 2 76 + 79 O 0.637202 -6.080457 5.849135 1 80 81 + 80 H 0.892312 -6.092342 4.907709 2 79 + 81 H -0.339074 -5.838972 5.853292 2 79 + 82 O 5.199216 -2.264918 -0.138343 1 83 84 + 83 H 5.802838 -2.788698 -0.697536 2 82 + 84 H 5.670340 -1.679393 0.462296 2 82 + 85 O 0.510145 7.629450 4.054500 1 86 87 + 86 H -0.071135 8.146563 3.452959 2 85 + 87 H 1.464962 7.740819 3.669172 2 85 + 88 O 3.146724 8.895843 6.526257 1 89 90 + 89 H 3.506091 8.599906 7.352942 2 88 + 90 H 2.145729 8.929622 6.682029 2 88 + 91 O 7.308541 -8.339335 -2.471342 1 92 93 + 92 H 6.562127 -8.180601 -3.062803 2 91 + 93 H 6.993025 -8.364954 -1.531235 2 91 + 94 O -7.530792 1.069683 4.989387 1 95 96 + 95 H -7.565406 1.971422 4.648636 2 94 + 96 H -7.938250 0.433547 4.370266 2 94 + 97 O 4.452035 2.700609 -5.437815 1 98 99 + 98 H 4.603326 3.058652 -4.551590 2 97 + 99 H 4.386453 1.737004 -5.180419 2 97 + 100 O 8.427922 -8.619286 1.784691 1 101 102 + 101 H 8.340498 -8.005342 2.536225 2 100 + 102 H 8.496720 -9.530562 2.174667 2 100 + 103 O -8.109456 1.753830 -3.096997 1 104 105 + 104 H -7.245287 1.827177 -2.721417 2 103 + 105 H -8.082178 1.783171 -4.059329 2 103 + 106 O 2.776933 -5.701955 7.748213 1 107 108 + 107 H 3.287974 -5.069688 7.233816 2 106 + 108 H 1.987041 -5.817355 7.200131 2 106 + 109 O 3.635171 -6.953519 5.339628 1 110 111 + 110 H 3.353851 -7.592789 6.031367 2 109 + 111 H 2.875801 -6.787975 4.740576 2 109 + 112 O 6.888027 -4.169023 -1.800190 1 113 114 + 113 H 7.559735 -4.813701 -2.004669 2 112 + 114 H 6.603805 -3.759237 -2.626496 2 112 + 115 O -4.470837 -4.105640 3.415362 1 116 117 + 116 H -4.991607 -3.358538 3.140956 2 115 + 117 H -4.791764 -4.392214 4.254387 2 115 + 118 O 8.282263 -0.462068 -2.560579 1 119 120 + 119 H 8.776769 -1.293641 -2.335945 2 118 + 120 H 8.760297 0.384816 -2.651128 2 118 + 121 O 4.737236 1.616430 4.901115 1 122 123 + 122 H 3.969692 2.168368 5.152631 2 121 + 123 H 5.184651 2.148403 4.154746 2 121 + 124 O -3.497332 -5.781436 -2.202713 1 125 126 + 125 H -4.038857 -5.773824 -1.381680 2 124 + 126 H -4.152970 -6.012265 -2.829379 2 124 + 127 O -2.863989 -0.259334 -1.857006 1 128 129 + 128 H -2.132201 -0.027953 -1.174211 2 127 + 129 H -2.873625 -1.224425 -1.874253 2 127 + 130 O 1.138300 1.133100 -2.085899 1 131 132 + 131 H 1.965506 1.503520 -1.725316 2 130 + 132 H 0.420521 1.534440 -1.551356 2 130 + 133 O -0.561328 4.590705 -2.780017 1 134 135 + 134 H -0.061173 3.919356 -3.294128 2 133 + 135 H -0.082763 4.733898 -1.955602 2 133 + 136 O -6.423002 -1.705204 -2.528225 1 137 138 + 137 H -7.233989 -1.949552 -1.975418 2 136 + 138 H -6.678416 -1.321413 -3.351278 2 136 + 139 O -2.772100 2.552210 -0.672282 1 140 141 + 140 H -2.907489 3.483552 -0.385605 2 139 + 141 H -2.977127 2.592348 -1.635820 2 139 + 142 O 6.708678 -4.852016 -8.379280 1 143 144 + 143 H 6.593474 -5.094964 -7.447187 2 142 + 144 H 6.582524 -5.591596 -8.966502 2 142 + 145 O -8.497001 -0.440284 2.803721 1 146 147 + 146 H -8.422350 0.331961 2.183451 2 145 + 147 H -9.377295 -0.756160 2.677026 2 145 + 148 O 2.975383 -0.894970 6.060783 1 149 150 + 149 H 2.093991 -0.995700 5.670129 2 148 + 150 H 3.458832 -0.759248 5.263958 2 148 + 151 O -6.085023 -1.629620 7.970284 1 152 153 + 152 H -6.685848 -2.391830 7.820849 2 151 + 153 H -6.177296 -1.190584 8.835912 2 151 + 154 O -3.763523 -3.356777 8.285436 1 155 156 + 155 H -4.660650 -3.029414 8.406662 2 154 + 156 H -3.411834 -3.178947 7.431180 2 154 + 157 O -1.100120 -0.320162 0.375372 1 158 159 + 158 H -0.527013 -1.012183 0.128652 2 157 + 159 H -0.673226 0.288559 0.934677 2 157 + 160 O 0.910209 -8.271802 1.411429 1 161 162 + 161 H 0.158544 -8.759532 1.870895 2 160 + 162 H 0.565924 -7.546113 0.944383 2 160 + 163 O 1.554065 -6.468033 3.310872 1 164 165 + 164 H 1.362455 -7.162802 2.722340 2 163 + 165 H 1.616233 -5.622409 2.872854 2 163 + 166 O 0.543127 -1.388652 4.886094 1 167 168 + 167 H 0.110320 -0.665826 5.311239 2 166 + 168 H 0.420366 -2.216367 5.267301 2 166 + 169 O 1.100526 1.019490 -9.255318 1 170 171 + 170 H 1.460815 0.575286 -8.484128 2 169 + 171 H 0.265613 0.594128 -9.297750 2 169 + 172 O -1.842348 2.327827 -5.355326 1 173 174 + 173 H -1.572941 2.573139 -6.288125 2 172 + 174 H -2.216679 1.439934 -5.361006 2 172 + 175 O 2.452307 -2.814686 -6.448759 1 176 177 + 176 H 2.862295 -3.091668 -5.589336 2 175 + 177 H 2.913920 -3.262923 -7.181510 2 175 + 178 O -2.207998 -3.112007 5.945795 1 179 180 + 179 H -1.262203 -3.125339 6.205467 2 178 + 180 H -2.228269 -2.421858 5.220629 2 178 + 181 O 5.845471 5.020556 -6.836491 1 182 183 + 182 H 5.557986 5.913737 -6.753889 2 181 + 183 H 5.089998 4.459153 -6.661079 2 181 + 184 O -3.421643 4.865553 0.731755 1 185 186 + 185 H -3.965419 4.458452 1.478214 2 184 + 186 H -3.973445 4.958338 -0.044430 2 184 + 187 O -2.302950 -2.349717 2.112168 1 188 189 + 188 H -2.576438 -1.873492 2.873191 2 187 + 189 H -1.882868 -1.715106 1.503782 2 187 + 190 O 0.305885 4.878766 3.791182 1 191 192 + 191 H 0.299338 5.855407 4.097578 2 190 + 192 H 1.169911 4.563497 4.030616 2 190 + 193 O 2.925008 -3.664845 -3.607450 1 194 195 + 194 H 3.015896 -3.916618 -2.644267 2 193 + 195 H 2.353923 -2.889459 -3.518284 2 193 + 196 O 1.111505 -4.070255 -9.085693 1 197 198 + 197 H 2.084905 -4.227348 -9.180249 2 196 + 198 H 0.897072 -4.902218 -8.740523 2 196 + 199 O -4.992929 -1.974219 -7.099668 1 200 201 + 200 H -5.173269 -1.186309 -7.673625 2 199 + 201 H -5.070893 -2.753273 -7.658821 2 199 + 202 O 4.730983 1.478420 0.720986 1 203 204 + 203 H 4.271686 1.988265 0.034225 2 202 + 204 H 4.117413 0.788607 1.061818 2 202 + 205 O 1.421583 -0.176666 -6.729105 1 206 207 + 206 H 1.217660 0.394331 -5.978213 2 205 + 207 H 1.948444 -0.877988 -6.400659 2 205 + 208 O -7.093223 -8.541193 4.116187 1 209 210 + 209 H -7.074252 -8.047477 3.242159 2 208 + 210 H -6.153142 -8.537148 4.455550 2 208 + 211 O 8.382540 -6.460958 3.765735 1 212 213 + 212 H 9.258625 -6.141972 4.060763 2 211 + 213 H 7.637364 -6.217910 4.407852 2 211 + 214 O -4.320241 4.037137 3.297092 1 215 216 + 215 H -3.750151 4.141786 4.105470 2 214 + 216 H -5.172925 4.455578 3.488906 2 214 + 217 O 5.581877 1.781994 7.505132 1 218 219 + 218 H 5.017196 1.139584 8.120950 2 217 + 219 H 5.330781 1.591217 6.595286 2 217 + 220 O -0.734443 1.125031 4.884666 1 221 222 + 221 H -0.239224 1.540322 4.142070 2 220 + 222 H -0.961628 1.783437 5.554548 2 220 + 223 O 6.831005 -9.249970 4.497165 1 224 225 + 224 H 6.836746 -9.068011 5.427146 2 223 + 225 H 7.668067 -9.652510 4.249957 2 223 + 226 O 2.714055 -3.677581 1.962003 1 227 228 + 227 H 3.333432 -3.851775 2.663540 2 226 + 228 H 3.095021 -3.978526 1.102566 2 226 + 229 O -1.364034 -5.762724 -5.514747 1 230 231 + 230 H -2.238584 -5.409106 -5.314718 2 229 + 231 H -0.948185 -4.908428 -5.559580 2 229 + 232 O -3.623435 -8.061229 1.383141 1 233 234 + 233 H -3.132847 -7.446722 1.857906 2 232 + 234 H -4.307943 -7.546630 0.933298 2 232 + 235 O 5.717894 6.958376 4.528556 1 236 237 + 236 H 5.852657 7.879846 4.341790 2 235 + 237 H 6.443636 6.708413 5.135144 2 235 + 238 O 8.121415 8.262619 -8.483986 1 239 240 + 239 H 8.585190 8.939651 -8.974230 2 238 + 240 H 7.560207 7.748539 -9.044644 2 238 + 241 O -5.111889 -0.352865 5.807903 1 242 243 + 242 H -5.940048 0.102298 5.569630 2 241 + 243 H -5.349104 -1.014090 6.507582 2 241 + 244 O 0.327324 2.563438 0.113251 1 245 246 + 245 H -0.633994 2.522136 -0.069385 2 244 + 246 H 0.724331 3.482989 0.160564 2 244 + 247 O -6.003367 -7.683112 -8.874252 1 248 249 + 248 H -6.987751 -7.912403 -8.892689 2 247 + 249 H -5.699015 -8.504722 -8.558813 2 247 + 250 O 0.789377 -6.357883 -7.563043 1 251 252 + 251 H -0.151101 -6.341313 -7.440906 2 250 + 252 H 1.090881 -5.879281 -6.770796 2 250 + 253 O 5.045666 7.219298 -5.151826 1 254 255 + 254 H 5.598994 7.846492 -5.618276 2 253 + 255 H 5.480466 6.978976 -4.337211 2 253 + 256 O 1.286092 6.990271 -6.806004 1 257 258 + 257 H 0.481329 7.140371 -7.345224 2 256 + 258 H 1.716012 7.791024 -6.762706 2 256 + 259 O -3.198783 -9.175883 -6.334156 1 260 261 + 260 H -3.032721 -8.198157 -6.198635 2 259 + 261 H -3.084774 -9.539992 -5.434969 2 259 + 262 O -2.002554 -5.668583 5.440781 1 263 264 + 263 H -2.347493 -4.756386 5.542471 2 262 + 264 H -2.133027 -6.049986 4.540349 2 262 + 265 O 6.174952 -8.574733 0.210584 1 266 267 + 266 H 5.358389 -8.191902 0.557392 2 265 + 267 H 6.760918 -8.561710 0.943985 2 265 + 268 O -6.278610 6.057339 4.042358 1 269 270 + 269 H -6.169211 6.708022 3.383078 2 268 + 270 H -7.221766 5.771239 4.032205 2 268 + 271 O 0.124733 -5.816398 0.203961 1 272 273 + 272 H 0.029974 -5.049468 0.786871 2 271 + 273 H -0.458026 -5.646677 -0.555312 2 271 + 274 O 3.839311 -0.064469 8.619720 1 275 276 + 275 H 3.586253 -0.282978 7.705313 2 274 + 276 H 3.079936 0.282626 9.065559 2 274 + 277 O 7.375986 -1.368885 4.452411 1 278 279 + 278 H 8.024931 -0.682735 4.768078 2 277 + 279 H 7.477247 -1.279372 3.493009 2 277 + 280 O 9.209092 -1.611532 -6.423337 1 281 282 + 281 H 9.487648 -2.470973 -6.800897 2 280 + 282 H 9.998917 -1.354277 -5.866779 2 280 + 283 O -5.314625 -5.613762 7.941745 1 284 285 + 284 H -5.589748 -6.389969 8.478078 2 283 + 285 H -4.444519 -5.357513 8.149460 2 283 + 286 O -3.655884 2.941259 -3.295211 1 287 288 + 287 H -4.418712 2.528163 -3.712668 2 286 + 288 H -2.937568 3.025005 -3.971189 2 286 + 289 O -8.786626 -3.149090 -1.640379 1 290 291 + 290 H -8.441651 -4.011755 -1.901885 2 289 + 291 H -9.285717 -3.276173 -0.834535 2 289 + 292 O -7.358188 8.239942 -2.093781 1 293 294 + 293 H -7.811518 7.751233 -2.768278 2 292 + 294 H -6.892430 7.625331 -1.541437 2 292 + 295 O 3.770974 -0.453172 -1.931225 1 296 297 + 296 H 4.245757 -0.966218 -1.286114 2 295 + 297 H 3.797803 0.441972 -1.542180 2 295 + 298 O 2.205813 4.098894 8.958738 1 299 300 + 299 H 3.001973 3.555440 8.746430 2 298 + 300 H 2.103639 4.243668 9.940011 2 298 + 301 O -8.723398 -8.284874 -8.890692 1 302 303 + 302 H -9.298972 -7.537539 -9.239127 2 301 + 303 H -8.772683 -8.361037 -7.925940 2 301 + 304 O -8.908952 0.807167 -7.785764 1 305 306 + 305 H -9.061230 -0.061912 -7.422589 2 304 + 306 H -9.534219 1.030144 -8.475490 2 304 + 307 O 9.182207 -3.418263 -8.430667 1 308 309 + 308 H 9.046738 -2.558299 -8.879898 2 307 + 309 H 8.390804 -3.958734 -8.701949 2 307 + 310 O 1.003162 9.279867 -8.313986 1 311 312 + 311 H 1.167271 10.190392 -8.070619 2 310 + 312 H 1.849962 8.761188 -8.493178 2 310 + 313 O -1.842572 4.893383 8.198130 1 314 315 + 314 H -2.468210 5.316242 8.833179 2 313 + 315 H -1.155294 4.389410 8.716281 2 313 + 316 O -4.005055 -3.953707 0.402347 1 317 318 + 317 H -3.682148 -3.305443 1.058769 2 316 + 318 H -4.738199 -4.452434 0.841144 2 316 + 319 O 3.511815 -7.590537 -9.004707 1 320 321 + 320 H 3.415066 -7.281286 -8.094635 2 319 + 321 H 3.251550 -6.835442 -9.579171 2 319 + 322 O -7.614136 -7.773463 1.262079 1 323 324 + 323 H -7.489497 -6.927033 0.753779 2 322 + 324 H -8.528840 -8.050689 1.164710 2 322 + 325 O -5.419143 7.061880 -5.745275 1 326 327 + 326 H -4.504905 6.840455 -5.750772 2 325 + 327 H -5.895918 6.221393 -5.676189 2 325 + 328 O -9.017162 1.888781 0.937813 1 329 330 + 329 H -9.868157 2.115056 0.623903 2 328 + 330 H -8.466599 1.708818 0.191067 2 328 + 331 O -8.037596 -5.106016 4.750802 1 332 333 + 332 H -7.322228 -5.707104 5.043673 2 331 + 333 H -8.230169 -4.481051 5.475067 2 331 + 334 O -4.390546 1.691502 -7.756245 1 335 336 + 335 H -3.558844 1.264966 -7.996466 2 334 + 336 H -4.136121 2.629917 -7.760619 2 334 + 337 O -3.975194 -6.218233 -6.927330 1 338 339 + 338 H -3.085645 -6.066352 -7.325296 2 337 + 339 H -4.640815 -6.676349 -7.524295 2 337 + 340 O 8.240648 5.082183 -8.857912 1 341 342 + 341 H 7.453645 5.101728 -8.259448 2 340 + 342 H 8.368223 4.228825 -9.227974 2 340 + 343 O 1.598931 -1.829796 -0.316752 1 344 345 + 344 H 1.992252 -1.475465 -1.149815 2 343 + 345 H 1.726926 -2.749881 -0.397199 2 343 + 346 O 1.433819 -1.386702 -3.304673 1 347 348 + 347 H 1.323094 -0.486757 -3.067110 2 346 + 348 H 0.623143 -1.802016 -3.264828 2 346 + 349 O 3.735991 5.554990 6.219603 1 350 351 + 350 H 3.320916 6.265941 6.761937 2 349 + 351 H 4.195666 6.053207 5.526652 2 349 + 352 O -6.285976 -9.228132 -4.460410 1 353 354 + 353 H -5.683885 -10.005163 -4.740870 2 352 + 354 H -6.707036 -9.488426 -3.608438 2 352 + 355 O 4.036200 -3.378299 6.905724 1 356 357 + 356 H 3.457441 -2.618106 6.794504 2 355 + 357 H 4.929409 -2.991177 6.666963 2 355 + 358 O 0.606517 8.561279 -3.782406 1 359 360 + 359 H 0.498099 9.526035 -3.699299 2 358 + 360 H 1.288545 8.500162 -4.475972 2 358 + 361 O -5.666717 8.368298 -8.299623 1 362 363 + 362 H -4.926661 7.904359 -8.744783 2 361 + 363 H -5.742748 8.095703 -7.389592 2 361 + 364 O -3.344692 7.636718 3.475830 1 365 366 + 365 H -4.140634 7.105012 3.296472 2 364 + 366 H -3.350797 7.470949 4.433350 2 364 + 367 O -1.322186 6.638182 0.028906 1 368 369 + 368 H -1.895088 6.054034 0.554933 2 367 + 369 H -1.928852 7.271511 -0.442137 2 367 + 370 O 8.793551 6.925450 7.841717 1 371 372 + 371 H 9.639675 7.325848 7.850680 2 370 + 372 H 8.776882 6.398711 8.674036 2 370 + 373 O -6.322101 0.607808 1.174099 1 374 375 + 374 H -5.647986 1.150825 1.588348 2 373 + 375 H -5.852992 -0.060471 0.660730 2 373 + 376 O 5.685139 -3.546046 -4.128549 1 377 378 + 377 H 4.727966 -3.473549 -4.165755 2 376 + 378 H 6.024761 -2.749532 -4.610993 2 376 + 379 O 3.821999 6.538527 1.678030 1 380 381 + 380 H 3.549684 7.331168 1.175762 2 379 + 381 H 3.816423 6.788603 2.602522 2 379 + 382 O 3.892622 -7.034239 -6.415978 1 383 384 + 383 H 4.720509 -6.539827 -6.295004 2 382 + 384 H 3.262810 -6.550918 -5.890370 2 382 + 385 O 5.454437 3.881722 -2.767521 1 386 387 + 386 H 5.906266 3.240489 -3.272250 2 385 + 387 H 6.116652 4.657253 -2.669082 2 385 + 388 O -4.179373 -8.326009 4.395005 1 389 390 + 389 H -3.737878 -8.754475 5.134173 2 388 + 390 H -3.934584 -8.825320 3.534465 2 388 + 391 O 7.949488 -1.353498 9.244688 1 392 393 + 392 H 7.234465 -1.100736 9.869694 2 391 + 393 H 8.010855 -0.754076 8.476271 2 391 + 394 O 4.498603 -4.219267 3.963173 1 395 396 + 395 H 4.895226 -3.311215 4.147093 2 394 + 396 H 4.802371 -4.871698 4.671292 2 394 + 397 O -4.307250 7.384668 -2.879462 1 398 399 + 398 H -3.402854 7.237543 -3.252031 2 397 + 399 H -4.143231 7.834459 -2.019767 2 397 + 400 O 2.868752 -0.418389 1.909340 1 401 402 + 401 H 2.544472 -0.880398 1.179279 2 400 + 402 H 2.082841 -0.227627 2.457964 2 400 + 403 O 7.961389 1.611971 4.525253 1 404 405 + 404 H 7.498497 1.833174 3.728113 2 403 + 405 H 8.841880 2.050996 4.576281 2 403 + 406 O 2.692467 -4.517946 -0.884665 1 407 408 + 407 H 1.789435 -4.835617 -0.587396 2 406 + 408 H 3.330887 -5.126025 -0.474679 2 406 + 409 O 0.711797 1.680547 -4.780435 1 410 411 + 410 H 0.854596 1.567911 -3.850059 2 409 + 411 H -0.187286 1.868256 -4.936632 2 409 + 412 O 4.558200 -0.044434 -4.673875 1 413 414 + 413 H 5.376141 -0.551202 -4.913295 2 412 + 414 H 4.409600 -0.197728 -3.739555 2 412 + 415 O 7.109730 0.453475 -0.268844 1 416 417 + 416 H 6.996444 0.098599 -1.119484 2 415 + 417 H 6.343115 1.050849 -0.110689 2 415 + 418 O -2.549577 -0.200852 -4.492507 1 419 420 + 419 H -3.199039 -0.856439 -4.888752 2 418 + 420 H -2.605120 -0.151501 -3.534000 2 418 + 421 O -8.527353 4.524174 -2.347408 1 422 423 + 422 H -7.662213 4.342466 -2.104852 2 421 + 423 H -8.794374 3.696793 -2.795740 2 421 + 424 O -2.820431 -0.700478 4.413266 1 425 426 + 425 H -2.088343 -0.069797 4.530521 2 424 + 426 H -3.535913 -0.413547 5.069151 2 424 + 427 O 6.924598 -1.285634 -4.901833 1 428 429 + 428 H 7.496477 -0.831510 -4.206076 2 427 + 429 H 7.527035 -1.446676 -5.677236 2 427 + 430 O -5.353763 6.572088 6.734366 1 431 432 + 431 H -4.428432 6.663173 6.834862 2 430 + 432 H -5.603600 6.385787 5.822425 2 430 + 433 O 7.661597 2.386104 9.175259 1 434 435 + 434 H 7.321694 2.395921 10.055536 2 433 + 435 H 6.959141 2.102200 8.533079 2 433 + 436 O -3.496590 -3.765912 -4.994838 1 437 438 + 437 H -3.612181 -3.620689 -4.036115 2 436 + 438 H -4.323649 -3.527816 -5.463213 2 436 + 439 O -9.351953 8.343146 3.704719 1 440 441 + 440 H -8.465363 8.758592 3.736785 2 439 + 441 H -9.159223 7.399420 3.880808 2 439 + 442 O -0.957571 -5.174275 -2.190170 1 443 444 + 443 H -1.907345 -5.209294 -2.303164 2 442 + 444 H -0.758582 -4.314608 -2.636469 2 442 + 445 O 5.048831 -7.988284 2.587515 1 446 447 + 446 H 5.870168 -8.296198 3.043816 2 445 + 447 H 4.551970 -7.498875 3.229280 2 445 + 448 O 3.705658 8.368298 -8.304931 1 449 450 + 449 H 3.860607 9.297256 -8.425405 2 448 + 450 H 3.866516 8.146007 -7.371475 2 448 + 451 O -2.535134 7.116414 6.338590 1 452 453 + 452 H -1.918884 7.705593 6.804078 2 451 + 453 H -1.975225 6.330832 6.121365 2 451 + 454 O -3.440263 7.005018 9.111704 1 455 456 + 455 H -2.633953 7.421761 9.465848 2 454 + 456 H -3.654896 7.513753 8.256470 2 454 + 457 O 6.452501 -5.478051 -5.722874 1 458 459 + 458 H 7.297698 -5.914122 -5.586895 2 457 + 459 H 6.253267 -4.919338 -4.937095 2 457 + 460 O -6.528475 4.497861 -5.573636 1 461 462 + 461 H -6.257840 4.684056 -4.656222 2 460 + 462 H -7.247764 3.931701 -5.623068 2 460 + 463 O -7.310706 8.183648 7.852201 1 464 465 + 464 H -6.552879 7.735013 7.436342 2 463 + 465 H -6.877865 8.451022 8.686616 2 463 + 466 O -1.476441 -7.867001 7.421787 1 467 468 + 467 H -0.852398 -8.570669 7.084405 2 466 + 468 H -1.363740 -7.190554 6.737331 2 466 + 469 O 5.228019 -0.495870 -7.592953 1 470 471 + 470 H 4.737616 -0.538139 -6.742036 2 469 + 471 H 4.625354 -0.901329 -8.269022 2 469 + 472 O 7.566531 -1.006734 1.808213 1 473 474 + 473 H 7.657411 -1.866188 1.428564 2 472 + 474 H 7.358547 -0.388051 1.139943 2 472 + 475 O 1.850924 -5.717449 -5.035416 1 476 477 + 476 H 1.721040 -6.227449 -4.217213 2 475 + 477 H 2.199319 -4.856378 -4.692892 2 475 + 478 O -8.904325 6.791585 -3.842866 1 479 480 + 479 H -8.690637 5.952112 -3.490118 2 478 + 480 H -8.676001 6.844077 -4.770651 2 478 + 481 O -3.434304 4.397198 -7.863568 1 482 483 + 482 H -2.634777 3.892027 -7.779256 2 481 + 483 H -3.432847 5.161485 -7.310788 2 481 + 484 O -7.446738 6.124823 0.150068 1 485 486 + 485 H -7.404893 5.207959 0.481504 2 484 + 486 H -8.405563 6.215466 -0.024439 2 484 + 487 O 0.195330 -7.307128 -3.501714 1 488 489 + 488 H -0.240912 -6.769004 -4.243655 2 487 + 489 H -0.194915 -6.981989 -2.679860 2 487 + 490 O 7.068819 9.130323 7.260588 1 491 492 + 491 H 6.559855 8.400987 7.699406 2 490 + 492 H 7.972497 8.829223 7.213747 2 490 + 493 O -0.185218 -3.192290 -6.289346 1 494 495 + 494 H 0.776651 -3.073203 -6.391948 2 493 + 495 H -0.497426 -2.964088 -7.170893 2 493 + 496 O -2.073630 4.369672 5.251074 1 497 498 + 497 H -1.868638 3.811508 6.060261 2 496 + 498 H -1.253174 4.326708 4.781680 2 496 + 499 O -0.855003 3.069108 -7.935226 1 500 501 + 500 H 0.075758 3.132202 -7.617253 2 499 + 501 H -1.009845 2.207487 -8.320426 2 499 + 502 O -6.328833 0.064083 -8.467228 1 503 504 + 503 H -7.268416 0.384648 -8.383978 2 502 + 504 H -5.825246 0.919304 -8.320175 2 502 + 505 O -8.276352 -8.809851 -6.344910 1 506 507 + 506 H -7.541457 -8.792368 -5.688031 2 505 + 507 H -8.510208 -9.731116 -6.353248 2 505 + 508 O 0.463654 2.826776 7.018388 1 509 510 + 509 H 0.875324 3.588447 7.482107 2 508 + 510 H 0.770257 2.126646 7.583650 2 508 + 511 O 0.478371 -3.407198 6.910039 1 512 513 + 512 H 0.585298 -2.996750 7.756467 2 511 + 513 H 0.556531 -4.390636 7.183527 2 511 + 514 O -1.689559 7.002511 -3.303561 1 515 516 + 515 H -1.009152 7.635432 -3.553133 2 514 + 516 H -1.333699 6.195680 -2.919485 2 514 + 517 O 9.000097 -6.227871 8.137681 1 518 519 + 518 H 9.373858 -6.821152 7.497417 2 517 + 519 H 8.024020 -6.011019 8.033727 2 517 + 520 O 1.272378 1.954065 3.058033 1 521 522 + 521 H 1.260842 2.615112 2.341207 2 520 + 522 H 1.890312 2.223439 3.732934 2 520 + 523 O 4.139066 -3.527427 -9.022609 1 524 525 + 524 H 4.070028 -3.499117 -9.985525 2 523 + 525 H 4.960292 -3.942364 -8.778433 2 523 + 526 O 7.176276 2.178662 -4.075940 1 527 528 + 527 H 6.995275 1.684022 -4.873223 2 526 + 528 H 7.621313 2.984315 -4.393994 2 526 + 529 O -0.034836 -3.929919 2.148095 1 530 531 + 530 H 0.838003 -3.513346 2.259663 2 529 + 531 H -0.654999 -3.288581 2.426748 2 529 + 532 O -8.701616 2.795237 -5.700842 1 533 534 + 533 H -8.848959 2.145603 -6.420186 2 532 + 534 H -9.464654 3.362988 -5.610379 2 532 + 535 O 2.804444 8.909551 -5.635389 1 536 537 + 536 H 3.063615 9.805993 -5.770957 2 535 + 537 H 3.512196 8.486179 -5.165468 2 535 + 538 O 3.236002 8.357402 3.636639 1 539 540 + 539 H 3.450854 9.071799 3.073263 2 538 + 540 H 3.476445 8.586691 4.607935 2 538 + 541 O 5.628532 7.185941 8.510937 1 542 543 + 542 H 5.467837 6.318153 8.138885 2 541 + 543 H 4.964153 7.477925 9.150467 2 541 + 544 O -3.767261 1.260390 2.017681 1 545 546 + 545 H -3.707734 2.019520 2.565591 2 544 + 546 H -3.364602 1.609935 1.212351 2 544 + 547 O 8.228917 -3.441761 0.850139 1 548 549 + 548 H 9.022130 -3.709208 1.334881 2 547 + 549 H 7.553662 -3.976731 1.276651 2 547 + 550 O -3.004292 1.345869 7.236734 1 551 552 + 551 H -3.715311 0.724731 6.912689 2 550 + 552 H -3.525684 2.111901 7.538936 2 550 + 553 O 4.901423 -5.547141 -0.119795 1 554 555 + 554 H 5.327550 -5.560969 0.769770 2 553 + 555 H 5.447642 -4.930752 -0.617088 2 553 + 556 O -3.306210 8.469477 -0.495057 1 557 558 + 557 H -2.836855 9.122642 -1.080706 2 556 + 558 H -3.311215 8.916887 0.353875 2 556 + 559 O -6.572180 3.018421 -0.262079 1 560 561 + 560 H -6.711444 2.659956 0.606460 2 559 + 561 H -6.040782 2.473886 -0.843542 2 559 + 562 O -5.429147 -5.967833 5.177682 1 563 564 + 563 H -4.896648 -6.608203 4.692534 2 562 + 564 H -5.386594 -6.130690 6.117931 2 562 + 565 O 6.054430 7.035601 0.031519 1 566 567 + 566 H 5.939348 7.951184 -0.141094 2 565 + 567 H 5.390949 6.866654 0.702638 2 565 + 568 O -0.890229 -2.615376 -3.621726 1 569 570 + 569 H -1.695442 -2.097314 -3.537976 2 568 + 570 H -0.895128 -2.637531 -4.561712 2 568 + 571 O -5.446979 0.994907 -2.106714 1 572 573 + 572 H -4.494883 0.997912 -1.881595 2 571 + 573 H -5.759736 0.094199 -1.919247 2 571 + 574 O -7.517688 -4.078340 7.202707 1 575 576 + 575 H -8.242348 -4.324693 7.729813 2 574 + 576 H -6.924399 -4.817453 7.269430 2 574 + 577 O -1.134884 8.628488 2.081069 1 578 579 + 578 H -1.962897 8.634713 2.554947 2 577 + 579 H -1.119731 7.882422 1.516003 2 577 + 580 O -6.288317 8.011683 2.022129 1 581 582 + 581 H -6.404647 8.858198 1.546109 2 580 + 582 H -6.669138 7.315199 1.482614 2 580 + 583 O -6.766934 -4.026505 -8.306645 1 584 585 + 584 H -6.542552 -4.855702 -8.828363 2 583 + 585 H -7.743726 -3.954163 -8.170031 2 583 + 586 O 6.895244 7.052113 -3.031289 1 587 588 + 587 H 7.810039 7.265357 -3.330751 2 586 + 588 H 6.666757 7.541675 -2.202178 2 586 + 589 O 8.003260 4.735929 -5.168656 1 590 591 + 590 H 7.233375 4.730204 -5.685772 2 589 + 591 H 8.406708 5.629580 -5.300038 2 589 + 592 O -5.230160 -6.461196 -4.390836 1 593 594 + 593 H -5.701559 -7.313756 -4.377348 2 592 + 594 H -4.855545 -6.327970 -5.273444 2 592 + 595 O -3.803496 -9.221115 7.305476 1 596 597 + 596 H -2.934288 -8.877999 7.425047 2 595 + 597 H -4.416066 -8.566250 7.573191 2 595 + 598 O -5.990438 -1.574415 3.072521 1 599 600 + 599 H -5.805447 -1.119293 3.933731 2 598 + 600 H -6.651651 -0.947206 2.634773 2 598 + 601 O 1.155451 7.138377 -1.178317 1 602 603 + 602 H 0.330359 7.363227 -0.724568 2 601 + 603 H 1.055145 7.478676 -2.100793 2 601 + 604 O -5.886817 5.150957 -2.997276 1 605 606 + 605 H -5.191777 4.556623 -2.611465 2 604 + 606 H -5.401622 6.003350 -3.064194 2 604 + 607 O 2.539927 3.387568 4.976180 1 608 609 + 608 H 1.760904 3.182324 5.589217 2 607 + 609 H 2.841539 4.315465 5.278853 2 607 + 610 O 8.331859 -7.344673 -5.188191 1 611 612 + 611 H 8.424401 -7.586778 -4.198621 2 610 + 612 H 8.911675 -7.764424 -5.823267 2 610 + 613 O -5.774081 1.315144 -5.304553 1 614 615 + 614 H -5.222992 1.580336 -6.077077 2 613 + 615 H -6.219878 2.178441 -5.093360 2 613 + 616 O 6.340084 -4.926064 2.149626 1 617 618 + 617 H 5.639784 -4.766017 2.829591 2 616 + 618 H 6.883511 -5.598794 2.562820 2 616 + 619 O -2.722394 6.614441 -5.843805 1 620 621 + 620 H -2.332414 7.251953 -6.403722 2 619 + 621 H -2.221682 6.596615 -5.034993 2 619 + 622 O -1.813152 0.712824 -9.048176 1 623 624 + 623 H -1.763921 -0.271744 -8.916841 2 622 + 624 H -2.097796 0.860500 -9.970314 2 622 + 625 O 6.146244 -6.879929 8.376712 1 626 627 + 626 H 5.324465 -7.183905 8.841506 2 625 + 627 H 6.642264 -7.749945 8.201756 2 625 + 628 O 2.887544 8.612615 0.453821 1 629 630 + 629 H 2.452117 8.047637 -0.251289 2 628 + 630 H 2.348751 9.285636 0.895642 2 628 + 631 O -8.475558 -8.180718 6.501232 1 632 633 + 632 H -8.034310 -8.945692 6.891221 2 631 + 633 H -8.173606 -8.179435 5.569319 2 631 + 634 O 6.714205 -2.947903 6.551671 1 635 636 + 635 H 7.143284 -2.459194 7.270891 2 634 + 636 H 7.212365 -2.637046 5.791018 2 634 + 637 O 6.445003 -5.462306 5.577966 1 638 639 + 638 H 6.730099 -4.696457 6.073312 2 637 + 639 H 6.099428 -6.099736 6.222859 2 637 + 640 O -1.818761 -6.080111 -8.805420 1 641 642 + 641 H -1.644534 -6.777931 -9.477669 2 640 + 642 H -2.078582 -5.258591 -9.215838 2 640 + 643 O 6.037377 2.950576 2.863541 1 644 645 + 644 H 6.409766 3.757001 2.570754 2 643 + 645 H 5.577033 2.617474 2.090587 2 643 + 646 O -7.731645 3.337668 3.301121 1 647 648 + 647 H -8.345957 4.027222 3.589257 2 646 + 648 H -8.130328 2.845238 2.577949 2 646 diff --git a/examples/amoeba/water_dimer.xyz b/examples/amoeba/water_dimer.xyz new file mode 100644 index 0000000000..5f2a27cc0b --- /dev/null +++ b/examples/amoeba/water_dimer.xyz @@ -0,0 +1,7 @@ + 6 Schaefer Water Dimer 1 + 1 O -0.024616 -0.001154 -0.003748 1 2 3 + 2 H -0.244211 -0.000666 0.933978 2 1 + 3 H 0.932234 -0.000406 -0.008705 2 1 + 4 O -0.892721 0.000120 2.773674 1 5 6 + 5 H -1.462996 0.755120 2.933870 2 4 + 6 H -1.461809 -0.755549 2.934934 2 4 diff --git a/examples/amoeba/water_hexamer.xyz b/examples/amoeba/water_hexamer.xyz new file mode 100644 index 0000000000..995b27ad70 --- /dev/null +++ b/examples/amoeba/water_hexamer.xyz @@ -0,0 +1,19 @@ + 18 TINKER Water Hexamer + 1 O -1.502169 -0.191359 1.434927 1 2 3 + 2 H -0.601054 -0.596972 1.553718 2 1 + 3 H -2.006698 -0.422327 2.219847 2 1 + 4 O -1.744575 -0.382348 -1.309144 1 5 6 + 5 H -1.888941 -0.479653 -0.347624 2 4 + 6 H -2.516835 -0.766765 -1.733766 2 4 + 7 O -0.560409 2.017830 -0.121984 1 8 9 + 8 H -0.947720 1.533567 0.625228 2 7 + 9 H -0.989831 1.592736 -0.877419 2 7 + 10 O 0.964803 -1.165765 1.439987 1 11 12 + 11 H 0.979557 -1.522041 0.527833 2 10 + 12 H 1.542224 -0.393692 1.344373 2 10 + 13 O 0.974705 -1.401503 -1.335970 1 14 15 + 14 H 0.065161 -1.118951 -1.522886 2 13 + 15 H 1.470709 -0.570933 -1.277710 2 13 + 16 O 2.002280 1.057824 -0.124502 1 17 18 + 17 H 1.141637 1.532266 -0.140121 2 16 + 18 H 2.674716 1.735342 -0.237995 2 16 diff --git a/examples/kim/plugin/CMakeLists.txt b/examples/kim/plugin/CMakeLists.txt index f4cb5f598d..78d117469d 100644 --- a/examples/kim/plugin/CMakeLists.txt +++ b/examples/kim/plugin/CMakeLists.txt @@ -6,46 +6,11 @@ cmake_minimum_required(VERSION 3.10) -# enforce out-of-source build -if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) - message(FATAL_ERROR "In-source builds are not allowed. You must create and use a build directory. " - "Please remove CMakeCache.txt and CMakeFiles first.") -endif() - project(kimplugin VERSION 1.0 LANGUAGES CXX) -set(LAMMPS_SOURCE_DIR "" CACHE PATH "Location of LAMMPS sources folder") -if(NOT LAMMPS_SOURCE_DIR) - message(FATAL_ERROR "Must set LAMMPS_SOURCE_DIR") -endif() - -# by default, install into $HOME/.local (not /usr/local), -# so that no root access (and sudo) is needed -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH "Default install path" FORCE) -endif() - -# ugly hacks for MSVC which by default always reports an old C++ standard in the __cplusplus macro -# and prints lots of pointless warnings about "unsafe" functions -if(MSVC) - add_compile_options(/Zc:__cplusplus) - add_compile_options(/wd4244) - add_compile_options(/wd4267) - add_compile_definitions(_CRT_SECURE_NO_WARNINGS) -endif() - -# C++11 is required -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -# Need -restrict with Intel compilers -if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict") -endif() - set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) include(CheckIncludeFileCXX) -include(LAMMPSInterfaceCXX) +include(LAMMPSInterfacePlugin) ########################## # building the plugins @@ -90,9 +55,9 @@ if(CMAKE_SYSTEM_NAME STREQUAL Darwin) set_target_properties(kimplugin PROPERTIES LINK_FLAGS "-Wl,-undefined,dynamic_lookup") elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") # tell CMake to export all symbols to a .dll on Windows with special case for MinGW cross-compilers - set_target_properties(kimplugin.so PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) + set_target_properties(kimplugin PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) if(CMAKE_CROSSCOMPILING) - set_target_properties(kimplugin PROPERTIES LINK_FLAGS "-Wl,--export-all-symbols") + set_target_properties(kimplugin PROPERTIES LINK_FLAGS "-Wl,--export-all-symbols") endif() else() set_target_properties(kimplugin PROPERTIES LINK_FLAGS "-rdynamic") diff --git a/examples/kim/plugin/LAMMPSInterfaceCXX.cmake b/examples/kim/plugin/LAMMPSInterfaceCXX.cmake deleted file mode 100644 index dfbd77e28a..0000000000 --- a/examples/kim/plugin/LAMMPSInterfaceCXX.cmake +++ /dev/null @@ -1,88 +0,0 @@ -# Cmake script code to define the LAMMPS C++ interface -# settings required for building LAMMPS plugins - -################################################################################ -# helper function -function(validate_option name values) - string(TOLOWER ${${name}} needle_lower) - string(TOUPPER ${${name}} needle_upper) - list(FIND ${values} ${needle_lower} IDX_LOWER) - list(FIND ${values} ${needle_upper} IDX_UPPER) - if(${IDX_LOWER} LESS 0 AND ${IDX_UPPER} LESS 0) - list_to_bulletpoints(POSSIBLE_VALUE_LIST ${${values}}) - message(FATAL_ERROR "\n########################################################################\n" - "Invalid value '${${name}}' for option ${name}\n" - "\n" - "Possible values are:\n" - "${POSSIBLE_VALUE_LIST}" - "########################################################################") - endif() -endfunction(validate_option) - -################################################################################# -# LAMMPS C++ interface. We only need the header related parts. -add_library(lammps INTERFACE) -target_include_directories(lammps INTERFACE ${LAMMPS_SOURCE_DIR}) -if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING) - target_link_libraries(lammps INTERFACE ${CMAKE_BINARY_DIR}/../liblammps.dll.a) -endif() -################################################################################ -# MPI configuration -if(NOT CMAKE_CROSSCOMPILING) - set(MPI_CXX_SKIP_MPICXX TRUE) - find_package(MPI QUIET) - option(BUILD_MPI "Build MPI version" ${MPI_FOUND}) -else() - option(BUILD_MPI "Build MPI version" OFF) -endif() - -if(BUILD_MPI) - find_package(MPI REQUIRED) - option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF) - if(LAMMPS_LONGLONG_TO_LONG) - target_compile_definitions(lammps INTERFACE -DLAMMPS_LONGLONG_TO_LONG) - endif() - target_link_libraries(lammps INTERFACE MPI::MPI_CXX) -else() - target_include_directories(lammps INTERFACE "${LAMMPS_SOURCE_DIR}/STUBS") -endif() - -set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallsmall: all 32-bit, smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)") -set(LAMMPS_SIZES_VALUES smallbig bigbig smallsmall) -set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES}) -validate_option(LAMMPS_SIZES LAMMPS_SIZES_VALUES) -string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES) -target_compile_definitions(lammps INTERFACE -DLAMMPS_${LAMMPS_SIZES}) - -################################################################################ -# detect if we may enable OpenMP support by default -set(BUILD_OMP_DEFAULT OFF) -find_package(OpenMP QUIET) -if(OpenMP_FOUND) - check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE) - if(HAVE_OMP_H_INCLUDE) - set(BUILD_OMP_DEFAULT ON) - endif() -endif() - -option(BUILD_OMP "Build with OpenMP support" ${BUILD_OMP_DEFAULT}) - -if(BUILD_OMP) - find_package(OpenMP REQUIRED) - check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE) - if(NOT HAVE_OMP_H_INCLUDE) - message(FATAL_ERROR "Cannot find the 'omp.h' header file required for full OpenMP support") - endif() - - if (((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.0)) OR - (CMAKE_CXX_COMPILER_ID STREQUAL "PGI") OR - ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR - ((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0))) - # GCC 9.x and later plus Clang 10.x and later implement strict OpenMP 4.0 semantics for consts. - # Intel 18.0 was tested to support both, so we switch to OpenMP 4+ from 19.x onward to be safe. - target_compile_definitions(lammps INTERFACE -DLAMMPS_OMP_COMPAT=4) - else() - target_compile_definitions(lammps INTERFACE -DLAMMPS_OMP_COMPAT=3) - endif() - target_link_libraries(lammps INTERFACE OpenMP::OpenMP_CXX) -endif() diff --git a/examples/kim/plugin/LAMMPSInterfacePlugin.cmake b/examples/kim/plugin/LAMMPSInterfacePlugin.cmake new file mode 120000 index 0000000000..2b78a6ebcc --- /dev/null +++ b/examples/kim/plugin/LAMMPSInterfacePlugin.cmake @@ -0,0 +1 @@ +../../../cmake/Modules/LAMMPSInterfacePlugin.cmake \ No newline at end of file diff --git a/examples/kim/plugin/README.txt b/examples/kim/plugin/README.txt new file mode 100644 index 0000000000..eecc6cc7b4 --- /dev/null +++ b/examples/kim/plugin/README.txt @@ -0,0 +1,2 @@ +This folder contains a loader and support files to build the KIM package as plugin. +For more information please see: https://docs.lammps.org/Developer_plugins.html diff --git a/examples/mdi/README b/examples/mdi/README index fd459e6670..c6267a7abb 100644 --- a/examples/mdi/README +++ b/examples/mdi/README @@ -2,10 +2,11 @@ These are examples that work the MDI package in LAMMPS which uses the MolSSI MDI library for coupling codes together and communicating between them with MDI messages. -In MDI lingo, one code is the driver and another code is the engine. -The 2 codes can be written in any language; C++ (LAMMPS) and Python -are illustrated here. The 2 codes can each be stand-alone codes, in -which case they can be run on different numbers of processors. The 2 +Within the MDI context, one code is the driver and another code is +the engine. The 2 codes can be written in any language; C++ (LAMMPS) +and Python are illustrated here. The 2 codes can each be stand-alone +codes, in which case they can be run on different numbers of processors. +The 2 codes can communicate either via TCP (sockets) or via MPI. For the TCP case, the driver and engine need to be launched separately, e.g. in 2 windows on your desktop machine. For the MPI case, a single @@ -19,87 +20,99 @@ LAMMPS supports operating in all these MDI modes. It can be an engine operating either as a stand-alone code or as a plugin. It can also be a driver and couple to an engine that is either a stand-alone code or a plugin. Examples for all these use cases are in this directory. -The example commands below illustrate how to run all the variants. +The Run.sh file shows how run in all the modes. Type "sh Run.sh" +to try them all out. -To use LAMMPS as a plugin engine, you must build it as a shared library. -Something like this, which also builds the normal LAMMPS executable -lmp_mpi: +To use LAMMPS as a plugin engine, you must build it as a shared +library. Something like this with make, which also builds the normal +LAMMPS executable lmp_mpi: cd src make yes-mdi make mode=shlib mpi -To use the serial_driver.py example you will need Python 3 with Numpy -and mpi4py available in your Python. Make sure LAMMPS and Python are -using same the same version of MPI. +------------------------------------------------- + +Examples 4 and 5 use Python scripts as MDI drivers. For this you will +need Python 3 with Numpy and mpi4py installed. Make sure LAMMPS and +Python/mpi4py are using same the same version of MPI. + +You will also need MDI installed in your Python. You cannot use the +LAMMPS build of the MDI library for this, b/c LAMMPS builds MDI as a +static library, not shared, which Python requires. + +You can install MDI in your Python via conda: + +% conda install -c conda-forge pymdi=1.4.1 + +or via pip: + +% pip install pymdi==1.4.1 + +It is likely fine to leave off the version number, to get the latest +MDI version. But to be safe, 1.4.1 is the version LAMMPS is currently +using. + +------------------------------------------------- + +5 example use-cases are explained below. + +In the first 3 examples, results running with MDI should be identical +to running without MDI (alone log files). Example #4 has no non-MDI +run. Example #5 results should match the non-MDI run of example #1. + +------------------------------------------------- + +* Example #1 = run ab initio MD (AIMD) + +Two instances of LAMMPS operate as a driver and engine. As an engine, +LAMMPS is a surrogate for a quantum code. + +You can compare the thermo output in log.aimd.alone.1 to the thermo output in +any of the log.aimd.driver* files. It should be identical. + +Note that the "alone" and "driver" input scripts have options for +running in NVE vs NPT Comment in/out the appropriate line to make +change. Nothing needs to be changed in the "engine" scripts. ------------------------------------------------- ------------------------------------------------- -* Example #1 = run ab inito MD (AIMD) - Two instances of LAMMPS operate as a driver and engine - As an engine, LAMMPS is a surrogate for a quantum code +* Example #2 = run LAMMPS, compute QM forces on snapshots from a long run -Note that the 2 input scripts in.aimd.alone and in.aimd.driver -have an option for running in NVE vs NPT mode. Comment in/out -the appropriate line to change modes. Nothing needs to be -changed in the in.aimd.engine or in.aimd.engine.plugin scripts. +Two instances of LAMMPS operate as a driver and engine. As an engine, +LAMMPS is a surrogate for a quantum code ---- +You can compare the thermo output in log.snapshot.alone.1 to the +thermo output in any of the log.snapshot.driver* files. It should be +identical. -Run the entire calculation with a single instance of LAMMPS by itself - results should be identical to running this example with MDI - -% lmp_mpi < in.aimd.alone - -With MDI, the thermo output of the driver should match the thermo -output of the in.aimd.alone script. - ---- - -Run with TCP: 1 proc each - -% lmp_mpi -mdi "-name aimd -role DRIVER -method TCP -port 8021" -log log.aimd.driver -in in.aimd.driver - -% lmp_mpi -mdi "-name LAMMPS -role ENGINE -method TCP -port 8021 -hostname localhost" -log log.aimd.engine -in in.aimd.engine - ---- - -Run with TCP: 3 procs + 4 procs - -% mpirun -np 3 lmp_mpi -mdi "-name aimd -role DRIVER -method TCP -port 8021" -log log.aimd.driver -in in.aimd.driver - -% mpirun -np 4 lmp_mpi -mdi "-name LAMMPS -role ENGINE -method TCP -port 8021 -hostname localhost" -log log.aimd.engine -in in.aimd.engine - ---- - -Run with MPI: 1 proc each - -% mpirun -np 1 lmp_mpi -mdi "-name aimd -role DRIVER -method MPI" -log log.aimd.driver -in in.aimd.driver : -np 1 lmp_mpi -mdi "-name LAMMPS -role ENGINE -method MPI" -log log.aimd.engine -in in.aimd.engine - ---- - -Run with MPI: 3 procs + 4 procs - -% mpirun -np 3 lmp_mpi -mdi "-name aimd -role DRIVER -method MPI" -log log.aimd.driver -in in.aimd.driver : -np 4 lmp_mpi -mdi "-name LAMMPS -role ENGINE -method MPI" -log log.aimd.engine -in in.aimd.engine - ---- - -Run in plugin mode: 1 proc - -% lmp_mpi -mdi "-name aimd -role DRIVER -method LINK -plugin_path /home/sjplimp/lammps/git/src" -log log.aimd.driver.plugin -in in.aimd.driver.plugin - ---- - -Run in plugin mode: 3 procs - -% mpirun -np 3 lmp_mpi -mdi "-name aimd -role DRIVER -method LINK -plugin_path /home/sjplimp/lammps/git/src" -log log.aimd.driver.plugin -in in.aimd.driver.plugin +You can compare the dumped forces in dump.snapshot.alone.1 to the +forces in any of the dump.snapshot.* files. They should be identical, +although at step 0 the forces are "zero" and may be epsilon different. ------------------------------------------------- ------------------------------------------------- -* Example #2 = Python driver runs a sequence of unrelated LAMMPS calculations - Each calculation can be a single-point evaluation, MD run, or minimization +* Example #3 = run LAMMPS, compute QM forces on series of independent systems + +Two instances of LAMMPS operate as a driver and engine. As an engine, +LAMMPS is a surrogate for a quantum code + +You can compare the thermo output in log.series.alone.1 to the thermo +output in any of the log.series.driver* files. It should be +identical. + +You can compare the dumped forces in dump.series.alone.1 to the forces +in any of the dump.series.* files. They should be identical, + +------------------------------------------------- +------------------------------------------------- + +* Example #4 = Python driver runs a sequence of unrelated LAMMPS calculations + +Each calculation can be a single-point evaluation, MD run, or +minimization The sequence_driver.py code allows for optional switches in addition to -mdi (required) and the -plugin and -plugin_args switches which are @@ -128,101 +141,31 @@ copied here: # -seed 12345 # random number seed > 0, default = 12345 ---- - -Run with TCP: 1 proc each - -% python3 sequence_driver.py -mdi "-role DRIVER -name sequence -method TCP -port 8021" - -% lmp_mpi -mdi "-role ENGINE -name LAMMPS -method TCP -port 8021 -hostname localhost" -log log.sequence -in in.sequence - ---- - -Run with TCP: 2 proc + 4 procs - -% mpirun -np 2 python3 sequence_driver.py -mdi "-role DRIVER -name sequence -method TCP -port 8021" - -% mpirun -np 4 lmp_mpi -mdi "-role ENGINE -name LAMMPS -method TCP -port 8021 -hostname localhost" -log log.sequence -in in.sequence - ---- - -Run with MPI: 1 proc each - -% mpirun -np 1 python3 sequence_driver.py -mdi "-role DRIVER -name sequence -method MPI" : -np 1 lmp_mpi -mdi "-role ENGINE -name LAMMPS -method MPI" -log log.sequence -in in.sequence - ---- - -Run with MPI: 2 procs + 4 procs - -% mpirun -np 2 python3 sequence_driver.py -mdi "-role DRIVER -name sequence -method MPI" : -np 4 lmp_mpi -mdi "-role ENGINE -name LAMMPS -method MPI" -log log.sequence -in in.sequence - ---- - -Run in plugin mode: 1 proc - -% python3 sequence_driver.py -plugin lammps -mdi "-role DRIVER -name sequence -method LINK -plugin_path /home/sjplimp/lammps/git/src" -plugin_args "-log log.sequence -in in.sequence" - ---- - -Run in plugin mode: 3 procs - -% mpirun -np 3 python3 sequence_driver.py -plugin lammps -mdi "-role DRIVER -name sequence -method LINK -plugin_path /home/sjplimp/lammps/git/src" -plugin_args "-log log.sequence -in in.sequence" +You can compare the thermo output in any of the log.sequence.engine.* +files. It should be identical. ------------------------------------------------- ------------------------------------------------- -* Example #3 = run AIMD with Python driver code and 2 LAMMPS instances as engines - First LAMMPS instance performs the MD timestepping - Second LAMMPS instance is surrogate QM = computes forces +* Example #5 = run AIMD with Python driver code and 2 LAMMPS instances as engines + +First LAMMPS instance performs the MD timestepping. Second LAMMPS +instance is surrogate QM to compute forces. The aimd_driver.py code allows for an optional switch in addition to -mdi (required) and the -plugin and -plugin_args swiches which are used to link to the 2 engines as a plugin libraries. The example run commands below use the default values of the optional switch. The -switch is also explained the top of the file; the info is copied -here: +switch is also explained the top of the file; the info is copied here: -# -nsteps 5 -# number of timesteps in dynamics runs, default = 5 +# -nsteps 10 +# number of timesteps in dynamics runs, default = 10 ---- +This calculation is the same as Example #1 with a LAMMPS driver and a +LAMMPS engine. Now there is a Python driver and two LAMMPS engines. -Run the entire calculation with a single instance of LAMMPS by itself - results should be identical to running this example with MDI +You can compare the thermo output in log.aimd.alone.1 output to the +thermo output is any of the log.sequence.engine.* files. It should be +identical for the Total Energy printed out by the Python driver script. -% lmp_mpi < in.aimd.alone - -With MDI, the driver prints the QM and Total energies. These should -match the PotEng and TotEng output of the in.aimd.alone script. - ---- - -Run with TCP: 1 proc each - -% python3 aimd_driver.py -mdi "-role DRIVER -name aimd -method TCP -port 8021" - -% lmp_mpi -mdi "-role ENGINE -name MM -method TCP -port 8021 -hostname localhost" -log log.aimd.mm -in in.aimd.mm - -% lmp_mpi -mdi "-role ENGINE -name QM -method TCP -port 8021 -hostname localhost" -log log.aimd.qm -in in.aimd.qm - ---- - -Run with TCP: 2 procs + 2 procs + 3 procs - -% mpirun -np 2 python3 aimd_driver.py -mdi "-role DRIVER -name aimd -method TCP -port 8021" - -% mpirun -np 2 lmp_mpi -mdi "-role ENGINE -name MM -method TCP -port 8021 -hostname localhost" -log log.aimd.mm -in in.aimd.mm - -% mpirun -np 3 lmp_mpi -mdi "-role ENGINE -name QM -method TCP -port 8021 -hostname localhost" -log log.aimd.qm -in in.aimd.qm - ---- - -Run with MPI: 1 proc each - -% mpirun -np 1 python3 aimd_driver.py -mdi "-role DRIVER -name aimd -method MPI" : -np 1 lmp_mpi -mdi "-role ENGINE -name MM -method MPI" -log log.aimd.mm -in in.aimd.mm : -np 1 lmp_mpi -mdi "-role ENGINE -name QM -method MPI" -log log.aimd.qm -in in.aimd.qm - ---- - -Run with MPI: 2 procs + 2 procs + 3 procs - -% mpirun -np 2 python3 aimd_driver.py -mdi "-role DRIVER -name aimd -method MPI" : -np 2 lmp_mpi -mdi "-role ENGINE -name MM -method MPI" -log log.aimd.mm -in in.aimd.mm : -np 3 lmp_mpi -mdi "-role ENGINE -name QM -method MPI" -log log.aimd.qm -in in.aimd.qm +E.g. Step 10: MM energy 1.69875, QM energy -6.31535, Total energy -4.6166 diff --git a/examples/mdi/Run.sh b/examples/mdi/Run.sh new file mode 100644 index 0000000000..3b70a8bf79 --- /dev/null +++ b/examples/mdi/Run.sh @@ -0,0 +1,256 @@ +# Run all the examples + +# ------------------------------------------------- +# ------------------------------------------------- + +# Example 1 = run ab initio MD (AIMD) + +# --- + +# Run without MDI + +lmp_mpi -log log.aimd.alone.1 < in.aimd.alone + +# --- + +# Run with TCP: 1 proc each + +lmp_mpi -mdi "-name LMP1 -role DRIVER -method TCP -port 8021" -log log.aimd.driver.tcp.1 -in in.aimd.driver & + +lmp_mpi -mdi "-name LMP2 -role ENGINE -method TCP -port 8021 -hostname localhost" -log log.aimd.engine.tcp.1 -in in.aimd.engine + +# --- + +# Run with TCP: 3 procs + 4 procs + +mpirun -np 3 lmp_mpi -mdi "-name LMP1 -role DRIVER -method TCP -port 8021" -log log.aimd.driver.tcp.3 -in in.aimd.driver & + +mpirun -np 4 lmp_mpi -mdi "-name LMP2 -role ENGINE -method TCP -port 8021 -hostname localhost" -log log.aimd.engine.tcp.4 -in in.aimd.engine + +# --- + +# Run with MPI: 1 proc each + +mpirun -np 1 lmp_mpi -mdi "-name LMP1 -role DRIVER -method MPI" -log log.aimd.driver.mpi.1 -in in.aimd.driver : -np 1 lmp_mpi -mdi "-name LMP2 -role ENGINE -method MPI" -log log.aimd.engine.mpi.1 -in in.aimd.engine + +# --- + +# Run with MPI: 3 procs + 4 procs + +mpirun -np 3 lmp_mpi -mdi "-name LMP1 -role DRIVER -method MPI" -log log.aimd.driver.mpi.3 -in in.aimd.driver : -np 4 lmp_mpi -mdi "-name LMP2 -role ENGINE -method MPI" -log log.aimd.engine.mpi.4 -in in.aimd.engine + +# --- + +# Run in plugin mode: 1 proc + +lmp_mpi -mdi "-name LMP1 -role DRIVER -method LINK -plugin_path /home/sjplimp/lammps/git/src" -log log.aimd.driver.plugin.1 -in in.aimd.driver.plugin +mv log.aimd.engine.plugin log.aimd.engine.plugin.1 + +# --- + +# Run in plugin mode: 3 procs + +mpirun -np 3 lmp_mpi -mdi "-name LMP1 -role DRIVER -method LINK -plugin_path /home/sjplimp/lammps/git/src" -log log.aimd.driver.plugin.3 -in in.aimd.driver.plugin +mv log.aimd.engine.plugin log.aimd.engine.plugin.3 + +# ------------------------------------------------- +# ------------------------------------------------- + +# Example 2 = run LAMMPS, compute QM forces on snapshots from a long run + +# --- + +# Run without MDI + +lmp_mpi -log log.snapshot.alone.1 < in.snapshot.alone +mv dump.snapshot.alone dump.snapshot.alone.1 + +# --- + +# Run with TCP: 1 proc each + +lmp_mpi -mdi "-name LMP1 -role DRIVER -method TCP -port 8021" -log log.snapshot.driver.tcp.1 -in in.snapshot.driver & + +lmp_mpi -mdi "-name LMP2 -role ENGINE -method TCP -port 8021 -hostname localhost" -log log.snapshot.engine.tcp.1 -in in.snapshot.engine +mv dump.snapshot.driver dump.snapshot.driver.tcp.1 + +# --- + +# Run with TCP: 3 procs + 4 procs + +mpirun -np 3 lmp_mpi -mdi "-name LMP1 -role DRIVER -method TCP -port 8021" -log log.snapshot.driver.tcp.3 -in in.snapshot.driver & + +mpirun -np 4 lmp_mpi -mdi "-name LMP2 -role ENGINE -method TCP -port 8021 -hostname localhost" -log log.snapshot.engine.tcp.4 -in in.snapshot.engine +mv dump.snapshot.driver dump.snapshot.driver.tcp.4 + +# --- + +# Run with MPI: 1 proc each + +mpirun -np 1 lmp_mpi -mdi "-name LMP1 -role DRIVER -method MPI" -log log.snapshot.driver.mpi.1 -in in.snapshot.driver : -np 1 lmp_mpi -mdi "-name LMP2 -role ENGINE -method MPI" -log log.snapshot.engine.mpi.1 -in in.snapshot.engine +mv dump.snapshot.driver dump.snapshot.driver.mpi.1 + +# --- + +# Run with MPI: 3 procs + 4 procs + +mpirun -np 3 lmp_mpi -mdi "-name LMP1 -role DRIVER -method MPI" -log log.snapshot.driver.mpi.3 -in in.snapshot.driver : -np 4 lmp_mpi -mdi "-name LMP2 -role ENGINE -method MPI" -log log.snapshot.engine.mpi.3 -in in.snapshot.engine +mv dump.snapshot.driver dump.snapshot.driver.mpi.4 + +# --- + +# Run in plugin mode: 1 proc + +lmp_mpi -mdi "-name LMP1 -role DRIVER -method LINK -plugin_path /home/sjplimp/lammps/git/src" -log log.snapshot.driver.plugin.1 -in in.snapshot.driver.plugin +mv log.snapshot.engine.plugin log.snapshot.engine.plugin.1 +mv dump.snapshot.driver.plugin dump.snapshot.driver.plugin.1 + +# --- + +# Run in plugin mode: 3 procs + +mpirun -np 3 lmp_mpi -mdi "-name LMP1 -role DRIVER -method LINK -plugin_path /home/sjplimp/lammps/git/src" -log log.snapshot.driver.plugin.3 -in in.snapshot.driver.plugin +mv log.snapshot.engine.plugin log.snapshot.engine.plugin.3 +mv dump.snapshot.driver.plugin dump.snapshot.driver.plugin.3 + +# ------------------------------------------------- +# ------------------------------------------------- + +# Example 3 = run LAMMPS, compute QM forces on series of independent systems + +# --- + +# Run without MDI + +lmp_mpi -log log.series.alone.1 < in.series.alone +mv dump.series.alone dump.series.alone.1 + +# --- + +# Run with TCP: 1 proc each + +lmp_mpi -mdi "-name LMP1 -role DRIVER -method TCP -port 8021" -log log.series.driver.tcp.1 -in in.series.driver & + +lmp_mpi -mdi "-name LMP2 -role ENGINE -method TCP -port 8021 -hostname localhost" -log log.series.engine.tcp.1 -in in.series.engine +mv dump.series.driver dump.series.driver.tcp.1 + +# --- + +# Run with TCP: 3 procs + 4 procs + +mpirun -np 3 lmp_mpi -mdi "-name LMP1 -role DRIVER -method TCP -port 8021" -log log.series.driver.tcp.3 -in in.series.driver & + +mpirun -np 4 lmp_mpi -mdi "-name LMP2 -role ENGINE -method TCP -port 8021 -hostname localhost" -log log.series.engine.tcp.4 -in in.series.engine +mv dump.series.driver dump.series.driver.tcp.4 + +# --- + +# Run with MPI: 1 proc each + +mpirun -np 1 lmp_mpi -mdi "-name LMP1 -role DRIVER -method MPI" -log log.series.driver.mpi.1 -in in.series.driver : -np 1 lmp_mpi -mdi "-name LMP2 -role ENGINE -method MPI" -log log.series.engine.mpi.1 -in in.series.engine +mv dump.series.driver dump.series.driver.mpi.1 + +# --- + +# Run with MPI: 3 procs + 4 procs + +mpirun -np 3 lmp_mpi -mdi "-name LMP1 -role DRIVER -method MPI" -log log.series.driver.mpi.3 -in in.series.driver : -np 4 lmp_mpi -mdi "-name LMP2 -role ENGINE -method MPI" -log log.series.engine.mpi.4 -in in.series.engine +mv dump.series.driver dump.series.driver.mpi.4 + +# --- + +# Run in plugin mode: 1 proc + +lmp_mpi -mdi "-name LMP1 -role DRIVER -method LINK -plugin_path /home/sjplimp/lammps/git/src" -log log.series.driver.plugin.1 -in in.series.driver.plugin +mv log.series.engine.plugin log.series.engine.plugin.1 +mv dump.series.driver.plugin dump.series.driver.plugin.1 + +# --- + +# Run in plugin mode: 3 procs + +mpirun -np 3 lmp_mpi -mdi "-name LMP1 -role DRIVER -method LINK -plugin_path /home/sjplimp/lammps/git/src" -log log.series.driver.plugin.3 -in in.series.driver.plugin +mv log.series.engine.plugin log.series.engine.plugin.3 +mv dump.series.driver.plugin dump.series.driver.plugin.3 + +# ------------------------------------------------- +# ------------------------------------------------- + +# Example 4 = Python driver runs a sequence of unrelated LAMMPS calculations + +# --- + +# Run with TCP: 1 proc each + +python3 sequence_driver.py -mdi "-role DRIVER -name sequence -method TCP -port 8021" & + +lmp_mpi -mdi "-role ENGINE -name LMP -method TCP -port 8021 -hostname localhost" -log log.sequence.engine.tcp.1 -in in.sequence.python + +# --- + +# Run with TCP: 2 proc + 4 procs + +mpirun -np 2 python3 sequence_driver.py -mdi "-role DRIVER -name sequence -method TCP -port 8021" & + +mpirun -np 4 lmp_mpi -mdi "-role ENGINE -name LMP -method TCP -port 8021 -hostname localhost" -log log.sequence.engine.tcp.4 -in in.sequence.python + +# --- + +# Run with MPI: 1 proc each + +mpirun -np 1 python3 sequence_driver.py -mdi "-role DRIVER -name sequence -method MPI" : -np 1 lmp_mpi -mdi "-role ENGINE -name LAMMPS -method MPI" -log log.sequence.engine.mpi.1 -in in.sequence.python + +# --- + +# Run with MPI: 2 procs + 4 procs + +mpirun -np 2 python3 sequence_driver.py -mdi "-role DRIVER -name sequence -method MPI" : -np 4 lmp_mpi -mdi "-role ENGINE -name LMP -method MPI" -log log.sequence.engine.mpi.4 -in in.sequence.python + +# --- + +# Run in plugin mode: 1 proc + +python3 sequence_driver.py -plugin lammps -mdi "-role DRIVER -name sequence -method LINK -plugin_path /home/sjplimp/lammps/git/src" -plugin_args "-log log.sequence.engine.plugin.1 -in in.sequence".python + +# --- + +# Run in plugin mode: 3 procs + +mpirun -np 3 python3 sequence_driver.py -plugin lammps -mdi "-role DRIVER -name sequence -method LINK -plugin_path /home/sjplimp/lammps/git/src" -plugin_args "-log log.sequence.engine.plugin.3 -in in.sequence".python + +# ------------------------------------------------- +# ------------------------------------------------- + +# Example 5 = run AIMD with Python driver code and 2 LAMMPS instances as engines + +# --- + +# Run with TCP: 1 proc each + +python3 aimd_driver.py -mdi "-role DRIVER -name aimdpy -method TCP -port 8021" > log.aimdpy.driver.tcp.1 & + +lmp_mpi -mdi "-role ENGINE -name MM -method TCP -port 8021 -hostname localhost" -log log.aimdpy.mm.tcp.1 -in in.aimdpy.mm & + +lmp_mpi -mdi "-role ENGINE -name QM -method TCP -port 8021 -hostname localhost" -log log.aimdpy.qm.tcp.1 -in in.aimdpy.qm + +# --- + +# Run with TCP: 2 procs + 2 procs + 3 procs + +mpirun -np 2 python3 aimd_driver.py -mdi "-role DRIVER -name aimdpy -method TCP -port 8021" > log.aimdpy.driver.tcp.2 & + +mpirun -np 2 lmp_mpi -mdi "-role ENGINE -name MM -method TCP -port 8021 -hostname localhost" -log log.aimdpy.mm.tcp.2 -in in.aimdpy.mm & + +mpirun -np 3 lmp_mpi -mdi "-role ENGINE -name QM -method TCP -port 8021 -hostname localhost" -log log.aimdpy.qm.tcp.3 -in in.aimdpy.qm + +# --- + +# Run with MPI: 1 proc each + +mpirun -np 1 python3 aimd_driver.py -mdi "-role DRIVER -name aimdpy -method MPI" : -np 1 lmp_mpi -mdi "-role ENGINE -name MM -method MPI" -log log.aimdpy.mm.mpi.1 -in in.aimdpy.mm : -np 1 lmp_mpi -mdi "-role ENGINE -name QM -method MPI" -log log.aimdpy.qm.mpi.1 -in in.aimdpy.qm > log.aimdpy.driver.mpi.1 + +# --- + +# Run with MPI: 2 procs + 2 procs + 3 procs + +mpirun -np 2 python3 aimd_driver.py -mdi "-role DRIVER -name aimdpy -method MPI" : -np 2 lmp_mpi -mdi "-role ENGINE -name MM -method MPI" -log log.aimdpy.mm.mpi.2 -in in.aimdpy.mm : -np 3 lmp_mpi -mdi "-role ENGINE -name QM -method MPI" -log log.aimdpy.qm.mpi.3 -in in.aimdpy.qm > log.aimdpy.driver.mpi.2 diff --git a/examples/mdi/aimd_driver.py b/examples/mdi/aimd_driver.py index 2d8fe10c1a..062d680a1f 100644 --- a/examples/mdi/aimd_driver.py +++ b/examples/mdi/aimd_driver.py @@ -23,10 +23,10 @@ # -plugin_args arglist # args to add when launching plugin library, only when using plugin mode # enclose arglist in quotes if multiple words -# -nsteps 5 -# number of timesteps, default = 5 +# -nsteps 10 +# number of timesteps, default = 10 -import sys,math,random +import sys import mdi import numpy as np from mpi4py import MPI @@ -42,10 +42,9 @@ def error(txt=None): def perform_aimd(world,mm_comm,qm_comm): me = world.Get_rank() - nprocs = world.Get_size() # receive number of atoms from the MM engine - + mdi.MDI_Send_command("/lib/libmpi.a) + else() + ExternalProject_Add(mpi4win_build + URL ${MPICH2_WIN32_DEVEL_URL} + URL_MD5 ${MPICH2_WIN32_DEVEL_MD5} + CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" + BUILD_BYPRODUCTS /lib/libmpi.a) + endif() + + ExternalProject_get_property(mpi4win_build SOURCE_DIR) + file(MAKE_DIRECTORY "${SOURCE_DIR}/include") + add_library(MPI::MPI_CXX UNKNOWN IMPORTED) + set_target_properties(MPI::MPI_CXX PROPERTIES + IMPORTED_LOCATION "${SOURCE_DIR}/lib/libmpi.a" + INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include" + INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") + add_dependencies(MPI::MPI_CXX mpi4win_build) + + # set variables for status reporting at the end of CMake run + set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include") + set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") + set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmpi.a") + else() + find_package(MPI REQUIRED) + option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF) + if(LAMMPS_LONGLONG_TO_LONG) + target_compile_definitions(lammps INTERFACE -DLAMMPS_LONGLONG_TO_LONG) + endif() endif() target_link_libraries(lammps INTERFACE MPI::MPI_CXX) else() diff --git a/examples/snap/README.md b/examples/snap/README.md new file mode 100644 index 0000000000..305f920ae8 --- /dev/null +++ b/examples/snap/README.md @@ -0,0 +1,13 @@ +This directory contains a variety of tests for the ML-SNAP package. These include: + +in.snap.Ta06A # SNAP linear Ta potential +in.snap.W.2940 # SNAP linear W potential +in.snap.hybrid.WSNAP.HePair # Hybrid overlay pair style for linear SNAP W potential and twobody tables for He-He and W-He +in.snap.WBe.PRB2019 # SNAP linear W/Be potential +in.snap.InP.JCPA2020 # SNAP linear InP potential using chem keyword (explicit multi-element) +in.snap.Mo_Chen # SNAP linear Mo potential +in.snap.compute # SNAP compute for training a linear model +in.snap.compute.quadratic # SNAP compute for training a quadratic model +in.snap.scale.Ni_Zuo_JCPA2020 # SNAP linear Ni potential with thermodynamic integration (fix adapt scale) + +compute_snap_dgrad.py # SNAP compute with dgradflag (dBi/dRj) for training a non-linear model diff --git a/examples/snap/compute_snap_dgrad.py b/examples/snap/compute_snap_dgrad.py new file mode 100644 index 0000000000..0919af8598 --- /dev/null +++ b/examples/snap/compute_snap_dgrad.py @@ -0,0 +1,173 @@ +""" +compute_snap_dgrad.py +Purpose: Demonstrate extraction of descriptor gradient (dB/dR) array from compute snap. + Show that dBi/dRj components summed over neighbors i yields same output as regular compute snap with dgradflag = 0. + This shows that the dBi/dRj components extracted with dgradflag = 1 are correct. +Serial syntax: + python compute_snap_dgrad.py +Parallel syntax: + mpirun -np 4 python compute_snap_dgrad.py +""" + +from __future__ import print_function +import sys +import ctypes +import numpy as np +from lammps import lammps, LMP_TYPE_ARRAY, LMP_STYLE_GLOBAL + +# get MPI settings from LAMMPS + +lmp = lammps() +me = lmp.extract_setting("world_rank") +nprocs = lmp.extract_setting("world_size") + +cmds = ["-screen", "none", "-log", "none"] +lmp = lammps(cmdargs = cmds) + +def run_lammps(dgradflag): + + # simulation settings + + lmp.command("clear") + lmp.command("units metal") + lmp.command("boundary p p p") + lmp.command("atom_modify map hash") + lmp.command(f"lattice bcc {latparam}") + lmp.command(f"region box block 0 {nx} 0 {ny} 0 {nz}") + lmp.command(f"create_box {ntypes} box") + lmp.command(f"create_atoms {ntypes} box") + lmp.command("mass * 180.88") + lmp.command("displace_atoms all random 0.01 0.01 0.01 123456") + + # potential settings + + snap_options = f'{rcutfac} {rfac0} {twojmax} {radelem1} {radelem2} {wj1} {wj2} rmin0 {rmin0} quadraticflag {quadratic} bzeroflag {bzero} switchflag {switch} bikflag {bikflag} dgradflag {dgradflag}' + lmp.command(f"pair_style zero {rcutfac}") + lmp.command(f"pair_coeff * *") + lmp.command(f"pair_style zbl {zblcutinner} {zblcutouter}") + lmp.command(f"pair_coeff * * {zblz} {zblz}") + + # define compute snap + + lmp.command(f"compute snap all snap {snap_options}") + + # run + + lmp.command(f"thermo 100") + lmp.command(f"run {nsteps}") + +# declare simulation/structure variables + +nsteps = 0 +nrep = 2 +latparam = 2.0 +ntypes = 2 +nx = nrep +ny = nrep +nz = nrep + +# declare compute snap variables + +twojmax = 8 +rcutfac = 1.0 +rfac0 = 0.99363 +rmin0 = 0 +radelem1 = 2.3 +radelem2 = 2.0 +wj1 = 1.0 +wj2 = 0.96 +quadratic = 0 +bzero = 0 +switch = 0 +bikflag = 1 + +# define reference potential + +zblcutinner = 4.0 +zblcutouter = 4.8 +zblz = 73 + +# number of descriptors + +if (twojmax % 2 == 0): + m = twojmax / 2 + 1 + nd = int(m*(m+1)*(2*m+1)/6) +else: + m = (twojmax + 1) / 2 + nd = int(m*(m+1)*(m+2)/3) + +if me == 0: + print(f"Number of descriptors based on twojmax : {nd}") + +# run lammps with dgradflag on + +if me == 0: + print("Running with dgradflag on") + +dgradflag = 1 +run_lammps(dgradflag) + +# get global snap array + +lmp_snap = lmp.numpy.extract_compute("snap", LMP_STYLE_GLOBAL, LMP_TYPE_ARRAY) + +# print snap array to observe +#if (me==0): +# np.savetxt("test_snap.dat", lmp_snap, fmt="%d %d %d %f %f %f %f %f") + +# take out rows with zero column + +# extract dBj/dRi (includes dBi/dRi) + +natoms = lmp.get_natoms() +fref1 = lmp_snap[0:natoms,0:3].flatten() +eref1 = lmp_snap[-1,0] +dbdr_length = np.shape(lmp_snap)[0]-(natoms) - 1 +dBdR = lmp_snap[natoms:(natoms+dbdr_length),3:(nd+3)] +force_indices = lmp_snap[natoms:(natoms+dbdr_length),0:3].astype(np.int32) + +# strip rows with all zero descriptor gradients to demonstrate how to save memory + +nonzero_rows = lmp_snap[natoms:(natoms+dbdr_length),3:(nd+3)] != 0.0 +nonzero_rows = np.any(nonzero_rows, axis=1) +dBdR = dBdR[nonzero_rows, :] +force_indices = force_indices[nonzero_rows,:] +dbdr_length = np.shape(dBdR)[0] + +# sum over atoms i that j is a neighbor of, like dgradflag = 0 does. + +array1 = np.zeros((3*natoms,nd)) +for k in range(0,nd): + for l in range(0,dbdr_length): + i = force_indices[l,0] + j = force_indices[l,1] + a = force_indices[l,2] + #print(f"{i} {j} {a}") + array1[3 * j + a, k] += dBdR[l,k] + +# run lammps with dgradflag off + +if me == 0: + print("Running with dgradflag off") + +dgradflag = 0 +run_lammps(dgradflag) + +# get global snap array + +lmp_snap = lmp.numpy.extract_compute("snap", LMP_STYLE_GLOBAL, LMP_TYPE_ARRAY) +natoms = lmp.get_natoms() +fref2 = lmp_snap[natoms:(natoms+3*natoms),-1] +eref2 = lmp_snap[0,-1] +array2 = lmp_snap[natoms:natoms+(3*natoms), nd:-1] + +# take difference of arrays obtained from dgradflag on and off. + +diffm = array1 - array2 +difff = fref1 - fref2 +diffe = eref1 - eref2 + +if me == 0: + print(f"Max/min difference in dSum(Bi)/dRj: {np.max(diffm)} {np.min(diffm)}") + print(f"Max/min difference in reference forces: {np.max(difff)} {np.min(difff)}") + print(f"Difference in reference energy: {diffe}") diff --git a/examples/snap/in.grid.snap b/examples/snap/in.grid.snap new file mode 100644 index 0000000000..08c95a004f --- /dev/null +++ b/examples/snap/in.grid.snap @@ -0,0 +1,94 @@ +# Demonstrate calculation of SNAP bispectrum descriptors on a grid + +# CORRECTNESS: The two atom positions coincide with two of +# the gridpoints, so c_b[2][1-5] should match c_mygrid[8][4-8]. +# The same is true for compute grid/local c_mygridlocal[8][4-11]. +# Local arrays can not be access directly in the script, +# but they are printed out to file dump.blocal + +variable nrep index 1 +variable a index 3.316 +variable ngrid index 2 + +units metal +atom_modify map hash + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrep} +variable ny equal ${nrep} +variable nz equal ${nrep} + +boundary p p p + +lattice custom $a & + a1 1 0 0 & + a2 0 1 0 & + a3 0 0 1 & + basis 0 0 0 & + basis 0.5 0.5 0.5 & + +region box block 0 ${nx} 0 ${ny} 0 ${nz} +create_box 1 box +create_atoms 1 box + +mass 1 180.88 + +# define atom compute and grid compute + +group snapgroup type 1 +variable twojmax equal 2 +variable rcutfac equal 4.67637 +variable rfac0 equal 0.99363 +variable rmin0 equal 0 +variable wj equal 1 +variable radelem equal 0.5 +variable bzero equal 0 +variable quadratic equal 0 +variable switch equal 1 + +variable snap_options string & + "${rcutfac} ${rfac0} ${twojmax} ${radelem} & + ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} & + bzeroflag ${bzero} switchflag ${switch}" + +# build zero potential to satisfy compute sna/atom + +pair_style zero ${rcutfac} +pair_coeff * * + +# define atom and grid computes + +compute b all sna/atom ${snap_options} +compute mygrid all sna/grid grid ${ngrid} ${ngrid} ${ngrid} & + ${snap_options} +compute mygridlocal all sna/grid/local grid ${ngrid} ${ngrid} ${ngrid} & + ${snap_options} + +# define output + +variable B5atom equal c_b[2][5] +variable B5grid equal c_mygrid[8][8] + +variable rmse_global equal "sqrt( & + (c_mygrid[8][1] - x[2])^2 + & + (c_mygrid[8][2] - y[2])^2 + & + (c_mygrid[8][3] - z[2])^2 + & + (c_mygrid[8][4] - c_b[2][1])^2 + & + (c_mygrid[8][5] - c_b[2][2])^2 + & + (c_mygrid[8][6] - c_b[2][3])^2 + & + (c_mygrid[8][7] - c_b[2][4])^2 + & + (c_mygrid[8][8] - c_b[2][5])^2 & + )" + +thermo_style custom step v_B5atom v_B5grid v_rmse_global + +# this is the only way to view the local grid + +dump 1 all local 1000 dump.blocal c_mygridlocal[*] +dump 2 all custom 1000 dump.batom id x y z c_b[*] + +# run + +run 0 + diff --git a/examples/snap/in.grid.tri b/examples/snap/in.grid.tri new file mode 100644 index 0000000000..5283957eb8 --- /dev/null +++ b/examples/snap/in.grid.tri @@ -0,0 +1,114 @@ +# Demonstrate calculation of SNAP bispectrum +# descriptors on a grid for triclinic cell + +# This triclinic cell has 6 times the volume of the single +# unit cell used by in.grid +# and contains 12 atoms. It is a 3x2x1 supercell +# with each unit cell containing 2 atoms and the +# reduced lattice vectors are [1 0 0], [1 1 0], and [1 1 1]. +# The grid is listed in x-fastest order + +# CORRECTNESS: The atom positions coincide with certain +# gridpoints, so c_b[1][1-5] should match c_mygrid[1][4-8] +# and c_b[7][1-5] should match c_mygrid[13][4-8]. +# Local arrays can not be access directly in the script, +# but they are printed out to file dump.blocal.tri + +# Initialize simulation + +variable nrep index 1 +variable a index 3.316 +variable ngrid index 2 + +variable nrepx equal 3*${nrep} +variable nrepy equal 2*${nrep} +variable nrepz equal 1*${nrep} + +variable ngridx equal 3*${ngrid} +variable ngridy equal 2*${ngrid} +variable ngridz equal 1*${ngrid} + +units metal +atom_modify map hash sort 0 0 + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrepx} +variable ny equal ${nrepy} +variable nz equal ${nrepz} + +boundary p p p + +lattice custom $a & + a1 1 0 0 & + a2 1 1 0 & + a3 1 1 1 & + basis 0 0 0 & + basis 0.0 0.0 0.5 & + spacing 1 1 1 + +box tilt large +region box prism 0 ${nx} 0 ${ny} 0 ${nz} ${ny} ${nz} ${nz} +create_box 1 box +create_atoms 1 box + +mass 1 180.88 + +# define atom compute and grid compute + +group snapgroup type 1 +variable twojmax equal 2 +variable rcutfac equal 4.67637 +variable rfac0 equal 0.99363 +variable rmin0 equal 0 +variable wj equal 1 +variable radelem equal 0.5 +variable bzero equal 0 +variable quadratic equal 0 +variable switch equal 1 + +variable snap_options string & + "${rcutfac} ${rfac0} ${twojmax} ${radelem} & + ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} & + bzeroflag ${bzero} switchflag ${switch}" + +# build zero potential to satisfy compute sna/atom + +pair_style zero ${rcutfac} +pair_coeff * * + +# define atom and grid computes + +compute b all sna/atom ${snap_options} +compute mygrid all sna/grid grid ${ngridx} ${ngridy} ${ngridz} & + ${snap_options} +compute mygridlocal all sna/grid/local grid ${ngridx} ${ngridy} ${ngridz} & + ${snap_options} + +# define output + +variable B5atom equal c_b[7][5] +variable B5grid equal c_mygrid[13][8] + +# do not compare x,y,z because assignment of ids +# to atoms is not unnique for different processor grids + +variable rmse_global equal "sqrt( & + (c_mygrid[13][4] - c_b[7][1])^2 + & + (c_mygrid[13][5] - c_b[7][2])^2 + & + (c_mygrid[13][6] - c_b[7][3])^2 + & + (c_mygrid[13][7] - c_b[7][4])^2 + & + (c_mygrid[13][8] - c_b[7][5])^2 & + )" + +thermo_style custom step v_B5atom v_B5grid v_rmse_global + +# this is the only way to view the local grid + +dump 1 all local 1000 dump.blocal.tri c_mygridlocal[*] +dump 2 all custom 1000 dump.batom.tri id x y z c_b[*] + +# run + +run 0 + diff --git a/examples/snap/log.15Jun22.grid.snap.g++.1 b/examples/snap/log.15Jun22.grid.snap.g++.1 new file mode 100644 index 0000000000..ec2026b16e --- /dev/null +++ b/examples/snap/log.15Jun22.grid.snap.g++.1 @@ -0,0 +1,159 @@ +LAMMPS (2 Jun 2022) + using 1 OpenMP thread(s) per MPI task +# Demonstrate calculation of SNAP bispectrum descriptors on a grid + +# CORRECTNESS: The two atom positions coincide with two of +# the gridpoints, so c_b[2][1-5] should match c_mygrid[8][4-8]. +# The same is true for compute grid/local c_mygridlocal[8][4-11]. +# Local arrays can not be access directly in the script, +# but they are printed out to file dump.blocal + +variable nrep index 1 +variable a index 3.316 +variable ngrid index 2 + +units metal +atom_modify map hash + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrep} +variable nx equal 1 +variable ny equal ${nrep} +variable ny equal 1 +variable nz equal ${nrep} +variable nz equal 1 + +boundary p p p + +lattice custom $a a1 1 0 0 a2 0 1 0 a3 0 0 1 basis 0 0 0 basis 0.5 0.5 0.5 +lattice custom 3.316 a1 1 0 0 a2 0 1 0 a3 0 0 1 basis 0 0 0 basis 0.5 0.5 0.5 +Lattice spacing in x,y,z = 3.316 3.316 3.316 +region box block 0 ${nx} 0 ${ny} 0 ${nz} +region box block 0 1 0 ${ny} 0 ${nz} +region box block 0 1 0 1 0 ${nz} +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (3.316 3.316 3.316) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 2 atoms + using lattice units in orthogonal box = (0 0 0) to (3.316 3.316 3.316) + create_atoms CPU = 0.000 seconds + +mass 1 180.88 + +# define atom compute and grid compute + +group snapgroup type 1 +2 atoms in group snapgroup +variable twojmax equal 2 +variable rcutfac equal 4.67637 +variable rfac0 equal 0.99363 +variable rmin0 equal 0 +variable wj equal 1 +variable radelem equal 0.5 +variable bzero equal 0 +variable quadratic equal 0 +variable switch equal 1 + +variable snap_options string "${rcutfac} ${rfac0} ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}" +4.67637 ${rfac0} ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 + +# build zero potential to satisfy compute sna/atom + +pair_style zero ${rcutfac} +pair_style zero 4.67637 +pair_coeff * * + +# define atom and grid computes + +compute b all sna/atom ${snap_options} +compute b all sna/atom 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 +compute mygrid all sna/grid grid ${ngrid} ${ngrid} ${ngrid} ${snap_options} +compute mygrid all sna/grid grid 2 ${ngrid} ${ngrid} ${snap_options} +compute mygrid all sna/grid grid 2 2 ${ngrid} ${snap_options} +compute mygrid all sna/grid grid 2 2 2 ${snap_options} +compute mygrid all sna/grid grid 2 2 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 +compute mygridlocal all sna/grid/local grid ${ngrid} ${ngrid} ${ngrid} ${snap_options} +compute mygridlocal all sna/grid/local grid 2 ${ngrid} ${ngrid} ${snap_options} +compute mygridlocal all sna/grid/local grid 2 2 ${ngrid} ${snap_options} +compute mygridlocal all sna/grid/local grid 2 2 2 ${snap_options} +compute mygridlocal all sna/grid/local grid 2 2 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 + +# define output + +variable B5atom equal c_b[2][5] +variable B5grid equal c_mygrid[8][8] + +variable rmse_global equal "sqrt( (c_mygrid[8][1] - x[2])^2 + (c_mygrid[8][2] - y[2])^2 + (c_mygrid[8][3] - z[2])^2 + (c_mygrid[8][4] - c_b[2][1])^2 + (c_mygrid[8][5] - c_b[2][2])^2 + (c_mygrid[8][6] - c_b[2][3])^2 + (c_mygrid[8][7] - c_b[2][4])^2 + (c_mygrid[8][8] - c_b[2][5])^2 )" + +thermo_style custom step v_B5atom v_B5grid v_rmse_global + +# this is the only way to view the local grid + +dump 1 all local 1000 dump.blocal c_mygridlocal[*] +dump 2 all custom 1000 dump.batom id x y z c_b[*] + +# run + +run 0 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.67637 + ghost atom cutoff = 6.67637 + binsize = 3.338185, bins = 1 1 1 + 2 neighbor lists, perpetual/occasional/extra = 1 1 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard + (2) compute sna/atom, occasional + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.127 | 7.127 | 7.127 Mbytes + Step v_B5atom v_B5grid v_rmse_global + 0 1.0427295 1.0427295 9.1551336e-16 +Loop time of 1.43e-06 on 1 procs for 0 steps with 2 atoms + +139.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.43e-06 | | |100.00 + +Nlocal: 2 ave 2 max 2 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 339 ave 339 max 339 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 64 ave 64 max 64 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 128 ave 128 max 128 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 128 +Ave neighs/atom = 64 +Neighbor list builds = 0 +Dangerous builds = 0 + +Total wall time: 0:00:00 diff --git a/examples/snap/log.15Jun22.grid.snap.g++.4 b/examples/snap/log.15Jun22.grid.snap.g++.4 new file mode 100644 index 0000000000..5be17ada7d --- /dev/null +++ b/examples/snap/log.15Jun22.grid.snap.g++.4 @@ -0,0 +1,160 @@ +LAMMPS (2 Jun 2022) + using 1 OpenMP thread(s) per MPI task +# Demonstrate calculation of SNAP bispectrum descriptors on a grid + +# CORRECTNESS: The two atom positions coincide with two of +# the gridpoints, so c_b[2][1-5] should match c_mygrid[8][4-8]. +# The same is true for compute grid/local c_mygridlocal[8][4-11]. +# Local arrays can not be access directly in the script, +# but they are printed out to file dump.blocal + +variable nrep index 1 +variable a index 3.316 +variable ngrid index 2 + +units metal +atom_modify map hash + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrep} +variable nx equal 1 +variable ny equal ${nrep} +variable ny equal 1 +variable nz equal ${nrep} +variable nz equal 1 + +boundary p p p + +lattice custom $a a1 1 0 0 a2 0 1 0 a3 0 0 1 basis 0 0 0 basis 0.5 0.5 0.5 +lattice custom 3.316 a1 1 0 0 a2 0 1 0 a3 0 0 1 basis 0 0 0 basis 0.5 0.5 0.5 +Lattice spacing in x,y,z = 3.316 3.316 3.316 +region box block 0 ${nx} 0 ${ny} 0 ${nz} +region box block 0 1 0 ${ny} 0 ${nz} +region box block 0 1 0 1 0 ${nz} +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (3.316 3.316 3.316) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 2 atoms + using lattice units in orthogonal box = (0 0 0) to (3.316 3.316 3.316) + create_atoms CPU = 0.001 seconds + +mass 1 180.88 + +# define atom compute and grid compute + +group snapgroup type 1 +2 atoms in group snapgroup +variable twojmax equal 2 +variable rcutfac equal 4.67637 +variable rfac0 equal 0.99363 +variable rmin0 equal 0 +variable wj equal 1 +variable radelem equal 0.5 +variable bzero equal 0 +variable quadratic equal 0 +variable switch equal 1 + +variable snap_options string "${rcutfac} ${rfac0} ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}" +4.67637 ${rfac0} ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 + +# build zero potential to satisfy compute sna/atom + +pair_style zero ${rcutfac} +pair_style zero 4.67637 +pair_coeff * * + +# define atom and grid computes + +compute b all sna/atom ${snap_options} +compute b all sna/atom 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 +compute mygrid all sna/grid grid ${ngrid} ${ngrid} ${ngrid} ${snap_options} +compute mygrid all sna/grid grid 2 ${ngrid} ${ngrid} ${snap_options} +compute mygrid all sna/grid grid 2 2 ${ngrid} ${snap_options} +compute mygrid all sna/grid grid 2 2 2 ${snap_options} +compute mygrid all sna/grid grid 2 2 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 +compute mygridlocal all sna/grid/local grid ${ngrid} ${ngrid} ${ngrid} ${snap_options} +compute mygridlocal all sna/grid/local grid 2 ${ngrid} ${ngrid} ${snap_options} +compute mygridlocal all sna/grid/local grid 2 2 ${ngrid} ${snap_options} +compute mygridlocal all sna/grid/local grid 2 2 2 ${snap_options} +compute mygridlocal all sna/grid/local grid 2 2 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 + +# define output + +variable B5atom equal c_b[2][5] +variable B5grid equal c_mygrid[8][8] + +variable rmse_global equal "sqrt( (c_mygrid[8][1] - x[2])^2 + (c_mygrid[8][2] - y[2])^2 + (c_mygrid[8][3] - z[2])^2 + (c_mygrid[8][4] - c_b[2][1])^2 + (c_mygrid[8][5] - c_b[2][2])^2 + (c_mygrid[8][6] - c_b[2][3])^2 + (c_mygrid[8][7] - c_b[2][4])^2 + (c_mygrid[8][8] - c_b[2][5])^2 )" + +thermo_style custom step v_B5atom v_B5grid v_rmse_global + +# this is the only way to view the local grid + +dump 1 all local 1000 dump.blocal c_mygridlocal[*] +dump 2 all custom 1000 dump.batom id x y z c_b[*] + +# run + +run 0 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.67637 + ghost atom cutoff = 6.67637 + binsize = 3.338185, bins = 1 1 1 + 2 neighbor lists, perpetual/occasional/extra = 1 1 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard + (2) compute sna/atom, occasional + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +WARNING: Proc sub-domain size < neighbor skin, could lead to lost atoms (src/domain.cpp:970) +Per MPI rank memory allocation (min/avg/max) = 6.123 | 6.631 | 7.139 Mbytes + Step v_B5atom v_B5grid v_rmse_global + 0 1.0427295 1.0427295 1.6316879e-15 +Loop time of 2.57125e-06 on 4 procs for 0 steps with 2 atoms + +107.0% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.571e-06 | | |100.00 + +Nlocal: 0.5 ave 1 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 274.5 ave 275 max 274 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 16 ave 40 max 0 min +Histogram: 2 0 0 0 0 0 1 0 0 1 +FullNghs: 32 ave 64 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 2 + +Total # of neighbors = 128 +Ave neighs/atom = 64 +Neighbor list builds = 0 +Dangerous builds = 0 + +Total wall time: 0:00:00 diff --git a/examples/snap/log.15Jun22.grid.tri.g++.1 b/examples/snap/log.15Jun22.grid.tri.g++.1 new file mode 100644 index 0000000000..e26315235b --- /dev/null +++ b/examples/snap/log.15Jun22.grid.tri.g++.1 @@ -0,0 +1,192 @@ +LAMMPS (2 Jun 2022) + using 1 OpenMP thread(s) per MPI task +# Demonstrate calculation of SNAP bispectrum +# descriptors on a grid for triclinic cell + +# This triclinic cell has 6 times the volume of the single +# unit cell used by in.grid +# and contains 12 atoms. It is a 3x2x1 supercell +# with each unit cell containing 2 atoms and the +# reduced lattice vectors are [1 0 0], [1 1 0], and [1 1 1]. +# The grid is listed in x-fastest order + +# CORRECTNESS: The atom positions coincide with certain +# gridpoints, so c_b[1][1-5] should match c_mygrid[1][4-8] +# and c_b[7][1-5] should match c_mygrid[13][4-8]. +# Local arrays can not be access directly in the script, +# but they are printed out to file dump.blocal.tri + +# Initialize simulation + +variable nrep index 1 +variable a index 3.316 +variable ngrid index 2 + +variable nrepx equal 3*${nrep} +variable nrepx equal 3*1 +variable nrepy equal 2*${nrep} +variable nrepy equal 2*1 +variable nrepz equal 1*${nrep} +variable nrepz equal 1*1 + +variable ngridx equal 3*${ngrid} +variable ngridx equal 3*2 +variable ngridy equal 2*${ngrid} +variable ngridy equal 2*2 +variable ngridz equal 1*${ngrid} +variable ngridz equal 1*2 + +units metal +atom_modify map hash sort 0 0 + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrepx} +variable nx equal 3 +variable ny equal ${nrepy} +variable ny equal 2 +variable nz equal ${nrepz} +variable nz equal 1 + +boundary p p p + +lattice custom $a a1 1 0 0 a2 1 1 0 a3 1 1 1 basis 0 0 0 basis 0.0 0.0 0.5 spacing 1 1 1 +lattice custom 3.316 a1 1 0 0 a2 1 1 0 a3 1 1 1 basis 0 0 0 basis 0.0 0.0 0.5 spacing 1 1 1 +Lattice spacing in x,y,z = 3.316 3.316 3.316 + +box tilt large +region box prism 0 ${nx} 0 ${ny} 0 ${nz} ${ny} ${nz} ${nz} +region box prism 0 3 0 ${ny} 0 ${nz} ${ny} ${nz} ${nz} +region box prism 0 3 0 2 0 ${nz} ${ny} ${nz} ${nz} +region box prism 0 3 0 2 0 1 ${ny} ${nz} ${nz} +region box prism 0 3 0 2 0 1 2 ${nz} ${nz} +region box prism 0 3 0 2 0 1 2 1 ${nz} +region box prism 0 3 0 2 0 1 2 1 1 +create_box 1 box +Created triclinic box = (0 0 0) to (9.948 6.632 3.316) with tilt (6.632 3.316 3.316) +WARNING: Triclinic box skew is large (src/domain.cpp:224) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 12 atoms + using lattice units in triclinic box = (0 0 0) to (9.948 6.632 3.316) with tilt (6.632 3.316 3.316) + create_atoms CPU = 0.000 seconds + +mass 1 180.88 + +# define atom compute and grid compute + +group snapgroup type 1 +12 atoms in group snapgroup +variable twojmax equal 2 +variable rcutfac equal 4.67637 +variable rfac0 equal 0.99363 +variable rmin0 equal 0 +variable wj equal 1 +variable radelem equal 0.5 +variable bzero equal 0 +variable quadratic equal 0 +variable switch equal 1 + +variable snap_options string "${rcutfac} ${rfac0} ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}" +4.67637 ${rfac0} ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 + +# build zero potential to satisfy compute sna/atom + +pair_style zero ${rcutfac} +pair_style zero 4.67637 +pair_coeff * * + +# define atom and grid computes + +compute b all sna/atom ${snap_options} +compute b all sna/atom 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 +compute mygrid all sna/grid grid ${ngridx} ${ngridy} ${ngridz} ${snap_options} +compute mygrid all sna/grid grid 6 ${ngridy} ${ngridz} ${snap_options} +compute mygrid all sna/grid grid 6 4 ${ngridz} ${snap_options} +compute mygrid all sna/grid grid 6 4 2 ${snap_options} +compute mygrid all sna/grid grid 6 4 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 +compute mygridlocal all sna/grid/local grid ${ngridx} ${ngridy} ${ngridz} ${snap_options} +compute mygridlocal all sna/grid/local grid 6 ${ngridy} ${ngridz} ${snap_options} +compute mygridlocal all sna/grid/local grid 6 4 ${ngridz} ${snap_options} +compute mygridlocal all sna/grid/local grid 6 4 2 ${snap_options} +compute mygridlocal all sna/grid/local grid 6 4 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 + +# define output + +variable B5atom equal c_b[7][5] +variable B5grid equal c_mygrid[13][8] + +# do not compare x,y,z because assignment of ids +# to atoms is not unnique for different processor grids + +variable rmse_global equal "sqrt( (c_mygrid[13][4] - c_b[7][1])^2 + (c_mygrid[13][5] - c_b[7][2])^2 + (c_mygrid[13][6] - c_b[7][3])^2 + (c_mygrid[13][7] - c_b[7][4])^2 + (c_mygrid[13][8] - c_b[7][5])^2 )" + +thermo_style custom step v_B5atom v_B5grid v_rmse_global + +# this is the only way to view the local grid + +dump 1 all local 1000 dump.blocal.tri c_mygridlocal[*] +dump 2 all custom 1000 dump.batom.tri id x y z c_b[*] + +# run + +run 0 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.67637 + ghost atom cutoff = 6.67637 + binsize = 3.338185, bins = 6 3 1 + 2 neighbor lists, perpetual/occasional/extra = 1 1 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/3d/tri + bin: standard + (2) compute sna/atom, occasional + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.183 | 7.183 | 7.183 Mbytes + Step v_B5atom v_B5grid v_rmse_global + 0 1.0427295 1.0427295 7.2262471e-14 +Loop time of 1.414e-06 on 1 procs for 0 steps with 12 atoms + +70.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.414e-06 | | |100.00 + +Nlocal: 12 ave 12 max 12 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 604 ave 604 max 604 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 384 ave 384 max 384 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 768 ave 768 max 768 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 768 +Ave neighs/atom = 64 +Neighbor list builds = 0 +Dangerous builds = 0 + +Total wall time: 0:00:00 diff --git a/examples/snap/log.15Jun22.grid.tri.g++.4 b/examples/snap/log.15Jun22.grid.tri.g++.4 new file mode 100644 index 0000000000..cee3ce7f12 --- /dev/null +++ b/examples/snap/log.15Jun22.grid.tri.g++.4 @@ -0,0 +1,192 @@ +LAMMPS (2 Jun 2022) + using 1 OpenMP thread(s) per MPI task +# Demonstrate calculation of SNAP bispectrum +# descriptors on a grid for triclinic cell + +# This triclinic cell has 6 times the volume of the single +# unit cell used by in.grid +# and contains 12 atoms. It is a 3x2x1 supercell +# with each unit cell containing 2 atoms and the +# reduced lattice vectors are [1 0 0], [1 1 0], and [1 1 1]. +# The grid is listed in x-fastest order + +# CORRECTNESS: The atom positions coincide with certain +# gridpoints, so c_b[1][1-5] should match c_mygrid[1][4-8] +# and c_b[7][1-5] should match c_mygrid[13][4-8]. +# Local arrays can not be access directly in the script, +# but they are printed out to file dump.blocal.tri + +# Initialize simulation + +variable nrep index 1 +variable a index 3.316 +variable ngrid index 2 + +variable nrepx equal 3*${nrep} +variable nrepx equal 3*1 +variable nrepy equal 2*${nrep} +variable nrepy equal 2*1 +variable nrepz equal 1*${nrep} +variable nrepz equal 1*1 + +variable ngridx equal 3*${ngrid} +variable ngridx equal 3*2 +variable ngridy equal 2*${ngrid} +variable ngridy equal 2*2 +variable ngridz equal 1*${ngrid} +variable ngridz equal 1*2 + +units metal +atom_modify map hash sort 0 0 + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrepx} +variable nx equal 3 +variable ny equal ${nrepy} +variable ny equal 2 +variable nz equal ${nrepz} +variable nz equal 1 + +boundary p p p + +lattice custom $a a1 1 0 0 a2 1 1 0 a3 1 1 1 basis 0 0 0 basis 0.0 0.0 0.5 spacing 1 1 1 +lattice custom 3.316 a1 1 0 0 a2 1 1 0 a3 1 1 1 basis 0 0 0 basis 0.0 0.0 0.5 spacing 1 1 1 +Lattice spacing in x,y,z = 3.316 3.316 3.316 + +box tilt large +region box prism 0 ${nx} 0 ${ny} 0 ${nz} ${ny} ${nz} ${nz} +region box prism 0 3 0 ${ny} 0 ${nz} ${ny} ${nz} ${nz} +region box prism 0 3 0 2 0 ${nz} ${ny} ${nz} ${nz} +region box prism 0 3 0 2 0 1 ${ny} ${nz} ${nz} +region box prism 0 3 0 2 0 1 2 ${nz} ${nz} +region box prism 0 3 0 2 0 1 2 1 ${nz} +region box prism 0 3 0 2 0 1 2 1 1 +create_box 1 box +Created triclinic box = (0 0 0) to (9.948 6.632 3.316) with tilt (6.632 3.316 3.316) +WARNING: Triclinic box skew is large (src/domain.cpp:224) + 2 by 2 by 1 MPI processor grid +create_atoms 1 box +Created 12 atoms + using lattice units in triclinic box = (0 0 0) to (9.948 6.632 3.316) with tilt (6.632 3.316 3.316) + create_atoms CPU = 0.000 seconds + +mass 1 180.88 + +# define atom compute and grid compute + +group snapgroup type 1 +12 atoms in group snapgroup +variable twojmax equal 2 +variable rcutfac equal 4.67637 +variable rfac0 equal 0.99363 +variable rmin0 equal 0 +variable wj equal 1 +variable radelem equal 0.5 +variable bzero equal 0 +variable quadratic equal 0 +variable switch equal 1 + +variable snap_options string "${rcutfac} ${rfac0} ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}" +4.67637 ${rfac0} ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag ${bzero} switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag ${switch} +4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 + +# build zero potential to satisfy compute sna/atom + +pair_style zero ${rcutfac} +pair_style zero 4.67637 +pair_coeff * * + +# define atom and grid computes + +compute b all sna/atom ${snap_options} +compute b all sna/atom 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 +compute mygrid all sna/grid grid ${ngridx} ${ngridy} ${ngridz} ${snap_options} +compute mygrid all sna/grid grid 6 ${ngridy} ${ngridz} ${snap_options} +compute mygrid all sna/grid grid 6 4 ${ngridz} ${snap_options} +compute mygrid all sna/grid grid 6 4 2 ${snap_options} +compute mygrid all sna/grid grid 6 4 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 +compute mygridlocal all sna/grid/local grid ${ngridx} ${ngridy} ${ngridz} ${snap_options} +compute mygridlocal all sna/grid/local grid 6 ${ngridy} ${ngridz} ${snap_options} +compute mygridlocal all sna/grid/local grid 6 4 ${ngridz} ${snap_options} +compute mygridlocal all sna/grid/local grid 6 4 2 ${snap_options} +compute mygridlocal all sna/grid/local grid 6 4 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 + +# define output + +variable B5atom equal c_b[7][5] +variable B5grid equal c_mygrid[13][8] + +# do not compare x,y,z because assignment of ids +# to atoms is not unnique for different processor grids + +variable rmse_global equal "sqrt( (c_mygrid[13][4] - c_b[7][1])^2 + (c_mygrid[13][5] - c_b[7][2])^2 + (c_mygrid[13][6] - c_b[7][3])^2 + (c_mygrid[13][7] - c_b[7][4])^2 + (c_mygrid[13][8] - c_b[7][5])^2 )" + +thermo_style custom step v_B5atom v_B5grid v_rmse_global + +# this is the only way to view the local grid + +dump 1 all local 1000 dump.blocal.tri c_mygridlocal[*] +dump 2 all custom 1000 dump.batom.tri id x y z c_b[*] + +# run + +run 0 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.67637 + ghost atom cutoff = 6.67637 + binsize = 3.338185, bins = 6 3 1 + 2 neighbor lists, perpetual/occasional/extra = 1 1 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/3d/tri + bin: standard + (2) compute sna/atom, occasional + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.15 | 7.15 | 7.15 Mbytes + Step v_B5atom v_B5grid v_rmse_global + 0 1.0427295 1.0427295 1.9367585e-14 +Loop time of 2.65825e-06 on 4 procs for 0 steps with 12 atoms + +84.6% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.658e-06 | | |100.00 + +Nlocal: 3 ave 4 max 2 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 459 ave 460 max 458 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 96 ave 128 max 64 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +FullNghs: 192 ave 256 max 128 min +Histogram: 2 0 0 0 0 0 0 0 0 2 + +Total # of neighbors = 768 +Ave neighs/atom = 64 +Neighbor list builds = 0 +Dangerous builds = 0 + +Total wall time: 0:00:00 diff --git a/lib/colvars/Makefile.common b/lib/colvars/Makefile.common index a920c24958..31a93652ae 100644 --- a/lib/colvars/Makefile.common +++ b/lib/colvars/Makefile.common @@ -62,10 +62,13 @@ COLVARS_SRCS = \ colvar_neuralnetworkcompute.cpp LEPTON_SRCS = \ - lepton/src/CompiledExpression.cpp lepton/src/ExpressionTreeNode.cpp \ - lepton/src/ParsedExpression.cpp lepton/src/ExpressionProgram.cpp \ - lepton/src/Operation.cpp lepton/src/Parser.cpp - + lepton/src/CompiledExpression.cpp \ + lepton/src/CompiledVectorExpression.cpp \ + lepton/src/ExpressionProgram.cpp \ + lepton/src/ExpressionTreeNode.cpp \ + lepton/src/Operation.cpp \ + lepton/src/ParsedExpression.cpp \ + lepton/src/Parser.cpp # Allow to selectively turn off Lepton ifeq ($(COLVARS_LEPTON),no) @@ -93,4 +96,13 @@ Makefile.deps: $(COLVARS_SRCS) done include Makefile.deps -include Makefile.lepton.deps # Hand-generated + +Makefile.lepton.deps: $(LEPTON_SRCS) + @echo > $@ + @for src in $^ ; do \ + obj=`basename $$src .cpp`.o ; \ + $(CXX) $(CXXFLAGS) -MM $(LEPTON_INCFLAGS) \ + -MT '$$(COLVARS_OBJ_DIR)'$$obj $$src >> $@ ; \ + done + +include Makefile.lepton.deps diff --git a/lib/colvars/Makefile.lepton.deps b/lib/colvars/Makefile.lepton.deps index 93c3912384..4546339de6 100644 --- a/lib/colvars/Makefile.lepton.deps +++ b/lib/colvars/Makefile.lepton.deps @@ -1,36 +1,46 @@ -lepton/src/CompiledExpression.o: lepton/src/CompiledExpression.cpp \ + +$(COLVARS_OBJ_DIR)CompiledExpression.o: lepton/src/CompiledExpression.cpp \ lepton/include/lepton/CompiledExpression.h \ lepton/include/lepton/ExpressionTreeNode.h \ lepton/include/lepton/windowsIncludes.h \ lepton/include/lepton/Operation.h lepton/include/lepton/CustomFunction.h \ lepton/include/lepton/Exception.h \ lepton/include/lepton/ParsedExpression.h -lepton/src/ExpressionProgram.o: lepton/src/ExpressionProgram.cpp \ +$(COLVARS_OBJ_DIR)CompiledVectorExpression.o: \ + lepton/src/CompiledVectorExpression.cpp \ + lepton/include/lepton/CompiledVectorExpression.h \ + lepton/include/lepton/ExpressionTreeNode.h \ + lepton/include/lepton/windowsIncludes.h \ + lepton/include/lepton/Operation.h lepton/include/lepton/CustomFunction.h \ + lepton/include/lepton/Exception.h \ + lepton/include/lepton/ParsedExpression.h +$(COLVARS_OBJ_DIR)ExpressionProgram.o: lepton/src/ExpressionProgram.cpp \ lepton/include/lepton/ExpressionProgram.h \ lepton/include/lepton/ExpressionTreeNode.h \ lepton/include/lepton/windowsIncludes.h \ lepton/include/lepton/Operation.h lepton/include/lepton/CustomFunction.h \ lepton/include/lepton/Exception.h \ lepton/include/lepton/ParsedExpression.h -lepton/src/ExpressionTreeNode.o: lepton/src/ExpressionTreeNode.cpp \ +$(COLVARS_OBJ_DIR)ExpressionTreeNode.o: lepton/src/ExpressionTreeNode.cpp \ lepton/include/lepton/ExpressionTreeNode.h \ lepton/include/lepton/windowsIncludes.h \ lepton/include/lepton/Exception.h lepton/include/lepton/Operation.h \ lepton/include/lepton/CustomFunction.h lepton/include/lepton/Exception.h -lepton/src/Operation.o: lepton/src/Operation.cpp \ +$(COLVARS_OBJ_DIR)Operation.o: lepton/src/Operation.cpp \ lepton/include/lepton/Operation.h \ lepton/include/lepton/windowsIncludes.h \ lepton/include/lepton/CustomFunction.h lepton/include/lepton/Exception.h \ lepton/include/lepton/ExpressionTreeNode.h lepton/src/MSVC_erfc.h -lepton/src/ParsedExpression.o: lepton/src/ParsedExpression.cpp \ +$(COLVARS_OBJ_DIR)ParsedExpression.o: lepton/src/ParsedExpression.cpp \ lepton/include/lepton/ParsedExpression.h \ lepton/include/lepton/ExpressionTreeNode.h \ lepton/include/lepton/windowsIncludes.h \ lepton/include/lepton/CompiledExpression.h \ + lepton/include/lepton/CompiledVectorExpression.h \ lepton/include/lepton/ExpressionProgram.h \ lepton/include/lepton/Operation.h lepton/include/lepton/CustomFunction.h \ lepton/include/lepton/Exception.h -lepton/src/Parser.o: lepton/src/Parser.cpp \ +$(COLVARS_OBJ_DIR)Parser.o: lepton/src/Parser.cpp \ lepton/include/lepton/Parser.h lepton/include/lepton/windowsIncludes.h \ lepton/include/lepton/CustomFunction.h lepton/include/lepton/Exception.h \ lepton/include/lepton/ExpressionTreeNode.h \ diff --git a/lib/colvars/colvargrid.h b/lib/colvars/colvargrid.h index e0b2ec7f03..f34c5eccab 100644 --- a/lib/colvars/colvargrid.h +++ b/lib/colvars/colvargrid.h @@ -1275,7 +1275,7 @@ public: inline cvm::real log_gradient_finite_diff(const std::vector &ix0, int n = 0) { - int A0, A1, A2; + cvm::real A0, A1, A2; std::vector ix = ix0; // TODO this can be rewritten more concisely with wrap_edge() @@ -1288,7 +1288,7 @@ public: if (A0 * A1 == 0) { return 0.; // can't handle empty bins } else { - return (cvm::logn((cvm::real)A1) - cvm::logn((cvm::real)A0)) + return (cvm::logn(A1) - cvm::logn(A0)) / (widths[n] * 2.); } } else if (ix[n] > 0 && ix[n] < nx[n]-1) { // not an edge @@ -1300,7 +1300,7 @@ public: if (A0 * A1 == 0) { return 0.; // can't handle empty bins } else { - return (cvm::logn((cvm::real)A1) - cvm::logn((cvm::real)A0)) + return (cvm::logn(A1) - cvm::logn(A0)) / (widths[n] * 2.); } } else { @@ -1313,8 +1313,8 @@ public: if (A0 * A1 * A2 == 0) { return 0.; // can't handle empty bins } else { - return (-1.5 * cvm::logn((cvm::real)A0) + 2. * cvm::logn((cvm::real)A1) - - 0.5 * cvm::logn((cvm::real)A2)) * increment / widths[n]; + return (-1.5 * cvm::logn(A0) + 2. * cvm::logn(A1) + - 0.5 * cvm::logn(A2)) * increment / widths[n]; } } } @@ -1324,7 +1324,7 @@ public: inline cvm::real gradient_finite_diff(const std::vector &ix0, int n = 0) { - int A0, A1, A2; + cvm::real A0, A1, A2; std::vector ix = ix0; // FIXME this can be rewritten more concisely with wrap_edge() @@ -1337,7 +1337,7 @@ public: if (A0 * A1 == 0) { return 0.; // can't handle empty bins } else { - return cvm::real(A1 - A0) / (widths[n] * 2.); + return (A1 - A0) / (widths[n] * 2.); } } else if (ix[n] > 0 && ix[n] < nx[n]-1) { // not an edge ix[n]--; @@ -1348,7 +1348,7 @@ public: if (A0 * A1 == 0) { return 0.; // can't handle empty bins } else { - return cvm::real(A1 - A0) / (widths[n] * 2.); + return (A1 - A0) / (widths[n] * 2.); } } else { // edge: use 2nd order derivative @@ -1357,8 +1357,8 @@ public: A0 = value(ix); ix[n] += increment; A1 = value(ix); ix[n] += increment; A2 = value(ix); - return (-1.5 * cvm::real(A0) + 2. * cvm::real(A1) - - 0.5 * cvm::real(A2)) * increment / widths[n]; + return (-1.5 * A0 + 2. * A1 + - 0.5 * A2) * increment / widths[n]; } } }; diff --git a/lib/colvars/colvarproxy_tcl.cpp b/lib/colvars/colvarproxy_tcl.cpp index 33bdc9dc38..700492f0e7 100644 --- a/lib/colvars/colvarproxy_tcl.cpp +++ b/lib/colvars/colvarproxy_tcl.cpp @@ -22,9 +22,7 @@ colvarproxy_tcl::colvarproxy_tcl() { -#ifdef COLVARS_TCL tcl_interp_ = NULL; -#endif } diff --git a/lib/colvars/colvars_version.h b/lib/colvars/colvars_version.h index 2a1d449ab5..d2a48f8af7 100644 --- a/lib/colvars/colvars_version.h +++ b/lib/colvars/colvars_version.h @@ -1,3 +1,3 @@ #ifndef COLVARS_VERSION -#define COLVARS_VERSION "2022-05-09" +#define COLVARS_VERSION "2022-05-24" #endif diff --git a/lib/colvars/lepton/include/lepton/CompiledExpression.h b/lib/colvars/lepton/include/lepton/CompiledExpression.h index c7e393e93b..82d66d5c6a 100644 --- a/lib/colvars/lepton/include/lepton/CompiledExpression.h +++ b/lib/colvars/lepton/include/lepton/CompiledExpression.h @@ -9,7 +9,7 @@ * Biological Structures at Stanford, funded under the NIH Roadmap for * * Medical Research, grant U54 GM072970. See https://simtk.org. * * * - * Portions copyright (c) 2013-2019 Stanford University and the Authors. * + * Portions copyright (c) 2013-2022 Stanford University and the Authors. * * Authors: Peter Eastman * * Contributors: * * * @@ -40,7 +40,11 @@ #include #include #ifdef LEPTON_USE_JIT - #include "asmjit.h" +#if defined(__ARM__) || defined(__ARM64__) +#include "asmjit/a64.h" +#else +#include "asmjit/x86.h" +#endif #endif namespace Lepton { @@ -101,9 +105,15 @@ private: std::map dummyVariables; double (*jitCode)(); #ifdef LEPTON_USE_JIT + void findPowerGroups(std::vector >& groups, std::vector >& groupPowers, std::vector& stepGroup); void generateJitCode(); - void generateSingleArgCall(asmjit::X86Compiler& c, asmjit::X86Xmm& dest, asmjit::X86Xmm& arg, double (*function)(double)); - void generateTwoArgCall(asmjit::X86Compiler& c, asmjit::X86Xmm& dest, asmjit::X86Xmm& arg1, asmjit::X86Xmm& arg2, double (*function)(double, double)); +#if defined(__ARM__) || defined(__ARM64__) + void generateSingleArgCall(asmjit::a64::Compiler& c, asmjit::arm::Vec& dest, asmjit::arm::Vec& arg, double (*function)(double)); + void generateTwoArgCall(asmjit::a64::Compiler& c, asmjit::arm::Vec& dest, asmjit::arm::Vec& arg1, asmjit::arm::Vec& arg2, double (*function)(double, double)); +#else + void generateSingleArgCall(asmjit::x86::Compiler& c, asmjit::x86::Xmm& dest, asmjit::x86::Xmm& arg, double (*function)(double)); + void generateTwoArgCall(asmjit::x86::Compiler& c, asmjit::x86::Xmm& dest, asmjit::x86::Xmm& arg1, asmjit::x86::Xmm& arg2, double (*function)(double, double)); +#endif std::vector constants; asmjit::JitRuntime runtime; #endif diff --git a/lib/colvars/lepton/include/lepton/CompiledVectorExpression.h b/lib/colvars/lepton/include/lepton/CompiledVectorExpression.h new file mode 100644 index 0000000000..ea3586f1b0 --- /dev/null +++ b/lib/colvars/lepton/include/lepton/CompiledVectorExpression.h @@ -0,0 +1,145 @@ +#ifndef LEPTON_VECTOR_EXPRESSION_H_ +#define LEPTON_VECTOR_EXPRESSION_H_ + +/* -------------------------------------------------------------------------- * + * Lepton * + * -------------------------------------------------------------------------- * + * This is part of the Lepton expression parser originating from * + * Simbios, the NIH National Center for Physics-Based Simulation of * + * Biological Structures at Stanford, funded under the NIH Roadmap for * + * Medical Research, grant U54 GM072970. See https://simtk.org. * + * * + * Portions copyright (c) 2013-2022 Stanford University and the Authors. * + * Authors: Peter Eastman * + * Contributors: * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the "Software"), * + * to deal in the Software without restriction, including without limitation * + * the rights to use, copy, modify, merge, publish, distribute, sublicense, * + * and/or sell copies of the Software, and to permit persons to whom the * + * Software is furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included in * + * all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * + * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE * + * USE OR OTHER DEALINGS IN THE SOFTWARE. * + * -------------------------------------------------------------------------- */ + +#include "ExpressionTreeNode.h" +#include "windowsIncludes.h" +#include +#include +#include +#include +#include +#include +#ifdef LEPTON_USE_JIT +#if defined(__ARM__) || defined(__ARM64__) +#include "asmjit/a64.h" +#else +#include "asmjit/x86.h" +#endif +#endif + +namespace Lepton { + +class Operation; +class ParsedExpression; + +/** + * A CompiledVectorExpression is a highly optimized representation of an expression for cases when you want to evaluate + * it many times as quickly as possible. It is similar to CompiledExpression, with the extra feature that it uses the CPU's + * vector unit (AVX on x86, NEON on ARM) to evaluate the expression for multiple sets of arguments at once. It also differs + * from CompiledExpression and ParsedExpression in using single precision rather than double precision to evaluate the expression. + * You should treat it as an opaque object; none of the internal representation is visible. + * + * A CompiledVectorExpression is created by calling createCompiledVectorExpression() on a ParsedExpression. When you create + * it, you must specify the width of the vectors on which to compute the expression. The allowed widths depend on the type of + * CPU it is running on. 4 is always allowed, and 8 is allowed on x86 processors with AVX. Call getAllowedWidths() to query + * the allowed values. + * + * WARNING: CompiledVectorExpression is NOT thread safe. You should never access a CompiledVectorExpression from two threads at + * the same time. + */ + +class LEPTON_EXPORT CompiledVectorExpression { +public: + CompiledVectorExpression(); + CompiledVectorExpression(const CompiledVectorExpression& expression); + ~CompiledVectorExpression(); + CompiledVectorExpression& operator=(const CompiledVectorExpression& expression); + /** + * Get the width of the vectors on which the expression is computed. + */ + int getWidth() const; + /** + * Get the names of all variables used by this expression. + */ + const std::set& getVariables() const; + /** + * Get a pointer to the memory location where the value of a particular variable is stored. This can be used + * to set the value of the variable before calling evaluate(). + * + * @param name the name of the variable to query + * @return a pointer to N floating point values, where N is the vector width + */ + float* getVariablePointer(const std::string& name); + /** + * You can optionally specify the memory locations from which the values of variables should be read. + * This is useful, for example, when several expressions all use the same variable. You can then set + * the value of that variable in one place, and it will be seen by all of them. The location should + * be a pointer to N floating point values, where N is the vector width. + */ + void setVariableLocations(std::map& variableLocations); + /** + * Evaluate the expression. The values of all variables should have been set before calling this. + * + * @return a pointer to N floating point values, where N is the vector width + */ + const float* evaluate() const; + /** + * Get the list of vector widths that are supported on the current processor. + */ + static const std::vector& getAllowedWidths(); +private: + friend class ParsedExpression; + CompiledVectorExpression(const ParsedExpression& expression, int width); + void compileExpression(const ExpressionTreeNode& node, std::vector >& temps, int& workspaceSize); + int findTempIndex(const ExpressionTreeNode& node, std::vector >& temps); + int width; + std::map variablePointers; + std::vector > variablesToCopy; + std::vector > arguments; + std::vector target; + std::vector operation; + std::map variableIndices; + std::set variableNames; + mutable std::vector workspace; + mutable std::vector argValues; + std::map dummyVariables; + void (*jitCode)(); +#ifdef LEPTON_USE_JIT + void findPowerGroups(std::vector >& groups, std::vector >& groupPowers, std::vector& stepGroup); + void generateJitCode(); +#if defined(__ARM__) || defined(__ARM64__) + void generateSingleArgCall(asmjit::a64::Compiler& c, asmjit::arm::Vec& dest, asmjit::arm::Vec& arg, float (*function)(float)); + void generateTwoArgCall(asmjit::a64::Compiler& c, asmjit::arm::Vec& dest, asmjit::arm::Vec& arg1, asmjit::arm::Vec& arg2, float (*function)(float, float)); +#else + void generateSingleArgCall(asmjit::x86::Compiler& c, asmjit::x86::Ymm& dest, asmjit::x86::Ymm& arg, float (*function)(float)); + void generateTwoArgCall(asmjit::x86::Compiler& c, asmjit::x86::Ymm& dest, asmjit::x86::Ymm& arg1, asmjit::x86::Ymm& arg2, float (*function)(float, float)); +#endif + std::vector constants; + asmjit::JitRuntime runtime; +#endif +}; + +} // namespace Lepton + +#endif /*LEPTON_VECTOR_EXPRESSION_H_*/ diff --git a/lib/colvars/lepton/include/lepton/ExpressionTreeNode.h b/lib/colvars/lepton/include/lepton/ExpressionTreeNode.h index bf3a9a0902..dde26103cb 100644 --- a/lib/colvars/lepton/include/lepton/ExpressionTreeNode.h +++ b/lib/colvars/lepton/include/lepton/ExpressionTreeNode.h @@ -9,7 +9,7 @@ * Biological Structures at Stanford, funded under the NIH Roadmap for * * Medical Research, grant U54 GM072970. See https://simtk.org. * * * - * Portions copyright (c) 2009 Stanford University and the Authors. * + * Portions copyright (c) 2009-2021 Stanford University and the Authors. * * Authors: Peter Eastman * * Contributors: * * * @@ -39,6 +39,7 @@ namespace Lepton { class Operation; +class ParsedExpression; /** * This class represents a node in the abstract syntax tree representation of an expression. @@ -82,11 +83,13 @@ public: */ ExpressionTreeNode(Operation* operation); ExpressionTreeNode(const ExpressionTreeNode& node); + ExpressionTreeNode(ExpressionTreeNode&& node); ExpressionTreeNode(); ~ExpressionTreeNode(); bool operator==(const ExpressionTreeNode& node) const; bool operator!=(const ExpressionTreeNode& node) const; ExpressionTreeNode& operator=(const ExpressionTreeNode& node); + ExpressionTreeNode& operator=(ExpressionTreeNode&& node); /** * Get the Operation performed by this node. */ @@ -96,8 +99,11 @@ public: */ const std::vector& getChildren() const; private: + friend class ParsedExpression; + void assignTags(std::vector& examples) const; Operation* operation; std::vector children; + mutable int tag; }; } // namespace Lepton diff --git a/lib/colvars/lepton/include/lepton/ParsedExpression.h b/lib/colvars/lepton/include/lepton/ParsedExpression.h index d88b3d5829..e2a7572c4a 100644 --- a/lib/colvars/lepton/include/lepton/ParsedExpression.h +++ b/lib/colvars/lepton/include/lepton/ParsedExpression.h @@ -9,7 +9,7 @@ * Biological Structures at Stanford, funded under the NIH Roadmap for * * Medical Research, grant U54 GM072970. See https://simtk.org. * * * - * Portions copyright (c) 2009=2013 Stanford University and the Authors. * + * Portions copyright (c) 2009-2022 Stanford University and the Authors. * * Authors: Peter Eastman * * Contributors: * * * @@ -41,6 +41,7 @@ namespace Lepton { class CompiledExpression; class ExpressionProgram; +class CompiledVectorExpression; /** * This class represents the result of parsing an expression. It provides methods for working with the @@ -102,6 +103,16 @@ public: * Create a CompiledExpression that represents the same calculation as this expression. */ CompiledExpression createCompiledExpression() const; + /** + * Create a CompiledVectorExpression that allows the expression to be evaluated efficiently + * using the CPU's vector unit. + * + * @param width the width of the vectors to evaluate it on. The allowed values + * depend on the CPU. 4 is always allowed, and 8 is allowed on + * x86 processors with AVX. Call CompiledVectorExpression::getAllowedWidths() + * to query the allowed widths on the current processor. + */ + CompiledVectorExpression createCompiledVectorExpression(int width) const; /** * Create a new ParsedExpression which is identical to this one, except that the names of some * variables have been changed. @@ -113,9 +124,10 @@ public: private: static double evaluate(const ExpressionTreeNode& node, const std::map& variables); static ExpressionTreeNode preevaluateVariables(const ExpressionTreeNode& node, const std::map& variables); - static ExpressionTreeNode precalculateConstantSubexpressions(const ExpressionTreeNode& node); - static ExpressionTreeNode substituteSimplerExpression(const ExpressionTreeNode& node); - static ExpressionTreeNode differentiate(const ExpressionTreeNode& node, const std::string& variable); + static ExpressionTreeNode precalculateConstantSubexpressions(const ExpressionTreeNode& node, std::map& nodeCache); + static ExpressionTreeNode substituteSimplerExpression(const ExpressionTreeNode& node, std::map& nodeCache); + static ExpressionTreeNode differentiate(const ExpressionTreeNode& node, const std::string& variable, std::map& nodeCache); + static bool isConstant(const ExpressionTreeNode& node); static double getConstantValue(const ExpressionTreeNode& node); static ExpressionTreeNode renameNodeVariables(const ExpressionTreeNode& node, const std::map& replacements); ExpressionTreeNode rootNode; diff --git a/lib/colvars/lepton/src/CompiledExpression.cpp b/lib/colvars/lepton/src/CompiledExpression.cpp index 1ad348b47d..d8b6e112b2 100644 --- a/lib/colvars/lepton/src/CompiledExpression.cpp +++ b/lib/colvars/lepton/src/CompiledExpression.cpp @@ -6,7 +6,7 @@ * Biological Structures at Stanford, funded under the NIH Roadmap for * * Medical Research, grant U54 GM072970. See https://simtk.org. * * * - * Portions copyright (c) 2013-2019 Stanford University and the Authors. * + * Portions copyright (c) 2013-2022 Stanford University and the Authors. * * Authors: Peter Eastman * * Contributors: * * * @@ -151,7 +151,7 @@ void CompiledExpression::setVariableLocations(map& variableLoca if (workspace.size() > 0) generateJitCode(); -#else +#endif // Make a list of all variables we will need to copy before evaluating the expression. variablesToCopy.clear(); @@ -160,13 +160,11 @@ void CompiledExpression::setVariableLocations(map& variableLoca if (pointer != variablePointers.end()) variablesToCopy.push_back(make_pair(&workspace[iter->second], pointer->second)); } -#endif } double CompiledExpression::evaluate() const { -#ifdef LEPTON_USE_JIT - return jitCode(); -#else + if (jitCode) + return jitCode(); for (int i = 0; i < variablesToCopy.size(); i++) *variablesToCopy[i].first = *variablesToCopy[i].second; @@ -183,7 +181,6 @@ double CompiledExpression::evaluate() const { } } return workspace[workspace.size()-1]; -#endif } #ifdef LEPTON_USE_JIT @@ -192,24 +189,70 @@ static double evaluateOperation(Operation* op, double* args) { return op->evaluate(args, dummyVariables); } +void CompiledExpression::findPowerGroups(vector >& groups, vector >& groupPowers, vector& stepGroup) { + // Identify every step that raises an argument to an integer power. + + vector stepPower(operation.size(), 0); + vector stepArg(operation.size(), -1); + for (int step = 0; step < operation.size(); step++) { + Operation& op = *operation[step]; + int power = 0; + if (op.getId() == Operation::SQUARE) + power = 2; + else if (op.getId() == Operation::CUBE) + power = 3; + else if (op.getId() == Operation::POWER_CONSTANT) { + double realPower = dynamic_cast(&op)->getValue(); + if (realPower == (int) realPower) + power = (int) realPower; + } + if (power != 0) { + stepPower[step] = power; + stepArg[step] = arguments[step][0]; + } + } + + // Find groups that operate on the same argument and whose powers have the same sign. + + stepGroup.resize(operation.size(), -1); + for (int i = 0; i < operation.size(); i++) { + if (stepGroup[i] != -1) + continue; + vector group, power; + for (int j = i; j < operation.size(); j++) { + if (stepArg[i] == stepArg[j] && stepPower[i]*stepPower[j] > 0) { + stepGroup[j] = groups.size(); + group.push_back(j); + power.push_back(stepPower[j]); + } + } + groups.push_back(group); + groupPowers.push_back(power); + } +} + +#if defined(__ARM__) || defined(__ARM64__) void CompiledExpression::generateJitCode() { CodeHolder code; - code.init(runtime.getCodeInfo()); - X86Compiler c(&code); - c.addFunc(FuncSignature0()); - vector workspaceVar(workspace.size()); + code.init(runtime.environment()); + a64::Compiler c(&code); + c.addFunc(FuncSignatureT()); + vector workspaceVar(workspace.size()); for (int i = 0; i < (int) workspaceVar.size(); i++) - workspaceVar[i] = c.newXmmSd(); - X86Gp argsPointer = c.newIntPtr(); - c.mov(argsPointer, imm_ptr(&argValues[0])); + workspaceVar[i] = c.newVecD(); + arm::Gp argsPointer = c.newIntPtr(); + c.mov(argsPointer, imm(&argValues[0])); + vector > groups, groupPowers; + vector stepGroup; + findPowerGroups(groups, groupPowers, stepGroup); // Load the arguments into variables. for (set::const_iterator iter = variableNames.begin(); iter != variableNames.end(); ++iter) { map::iterator index = variableIndices.find(*iter); - X86Gp variablePointer = c.newIntPtr(); - c.mov(variablePointer, imm_ptr(&getVariableReference(index->first))); - c.movsd(workspaceVar[index->second], x86::ptr(variablePointer, 0, 0)); + arm::Gp variablePointer = c.newIntPtr(); + c.mov(variablePointer, imm(&getVariableReference(index->first))); + c.ldr(workspaceVar[index->second], arm::ptr(variablePointer, 0)); } // Make a list of all constants that will be needed for evaluation. @@ -232,6 +275,12 @@ void CompiledExpression::generateJitCode() { value = 1.0; else if (op.getId() == Operation::DELTA) value = 1.0; + else if (op.getId() == Operation::POWER_CONSTANT) { + if (stepGroup[step] == -1) + value = dynamic_cast(op).getValue(); + else + value = 1.0; + } else continue; @@ -250,19 +299,63 @@ void CompiledExpression::generateJitCode() { // Load constants into variables. - vector constantVar(constants.size()); + vector constantVar(constants.size()); if (constants.size() > 0) { - X86Gp constantsPointer = c.newIntPtr(); - c.mov(constantsPointer, imm_ptr(&constants[0])); + arm::Gp constantsPointer = c.newIntPtr(); + c.mov(constantsPointer, imm(&constants[0])); for (int i = 0; i < (int) constants.size(); i++) { - constantVar[i] = c.newXmmSd(); - c.movsd(constantVar[i], x86::ptr(constantsPointer, 8*i, 0)); + constantVar[i] = c.newVecD(); + c.ldr(constantVar[i], arm::ptr(constantsPointer, 8*i)); } } // Evaluate the operations. + vector hasComputedPower(operation.size(), false); for (int step = 0; step < (int) operation.size(); step++) { + if (hasComputedPower[step]) + continue; + + // When one or more steps involve raising the same argument to multiple integer + // powers, we can compute them all together for efficiency. + + if (stepGroup[step] != -1) { + vector& group = groups[stepGroup[step]]; + vector& powers = groupPowers[stepGroup[step]]; + arm::Vec multiplier = c.newVecD(); + if (powers[0] > 0) + c.fmov(multiplier, workspaceVar[arguments[step][0]]); + else { + c.fdiv(multiplier, constantVar[operationConstantIndex[step]], workspaceVar[arguments[step][0]]); + for (int i = 0; i < powers.size(); i++) + powers[i] = -powers[i]; + } + vector hasAssigned(group.size(), false); + bool done = false; + while (!done) { + done = true; + for (int i = 0; i < group.size(); i++) { + if (powers[i]%2 == 1) { + if (!hasAssigned[i]) + c.fmov(workspaceVar[target[group[i]]], multiplier); + else + c.fmul(workspaceVar[target[group[i]]], workspaceVar[target[group[i]]], multiplier); + hasAssigned[i] = true; + } + powers[i] >>= 1; + if (powers[i] != 0) + done = false; + } + if (!done) + c.fmul(multiplier, multiplier, multiplier); + } + for (int step : group) + hasComputedPower[step] = true; + continue; + } + + // Evaluate the step. + Operation& op = *operation[step]; vector args = arguments[step]; if (args.size() == 1) { @@ -276,33 +369,28 @@ void CompiledExpression::generateJitCode() { switch (op.getId()) { case Operation::CONSTANT: - c.movsd(workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + c.fmov(workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); break; case Operation::ADD: - c.movsd(workspaceVar[target[step]], workspaceVar[args[0]]); - c.addsd(workspaceVar[target[step]], workspaceVar[args[1]]); + c.fadd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); break; case Operation::SUBTRACT: - c.movsd(workspaceVar[target[step]], workspaceVar[args[0]]); - c.subsd(workspaceVar[target[step]], workspaceVar[args[1]]); + c.fsub(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); break; case Operation::MULTIPLY: - c.movsd(workspaceVar[target[step]], workspaceVar[args[0]]); - c.mulsd(workspaceVar[target[step]], workspaceVar[args[1]]); + c.fmul(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); break; case Operation::DIVIDE: - c.movsd(workspaceVar[target[step]], workspaceVar[args[0]]); - c.divsd(workspaceVar[target[step]], workspaceVar[args[1]]); + c.fdiv(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); break; case Operation::POWER: generateTwoArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]], pow); break; case Operation::NEGATE: - c.xorps(workspaceVar[target[step]], workspaceVar[target[step]]); - c.subsd(workspaceVar[target[step]], workspaceVar[args[0]]); + c.fneg(workspaceVar[target[step]], workspaceVar[args[0]]); break; case Operation::SQRT: - c.sqrtsd(workspaceVar[target[step]], workspaceVar[args[0]]); + c.fsqrt(workspaceVar[target[step]], workspaceVar[args[0]]); break; case Operation::EXP: generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], exp); @@ -341,56 +429,63 @@ void CompiledExpression::generateJitCode() { generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], tanh); break; case Operation::STEP: - c.xorps(workspaceVar[target[step]], workspaceVar[target[step]]); - c.cmpsd(workspaceVar[target[step]], workspaceVar[args[0]], imm(18)); // Comparison mode is _CMP_LE_OQ = 18 - c.andps(workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + c.cmge(workspaceVar[target[step]], workspaceVar[args[0]], imm(0)); + c.and_(workspaceVar[target[step]], workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); break; case Operation::DELTA: - c.xorps(workspaceVar[target[step]], workspaceVar[target[step]]); - c.cmpsd(workspaceVar[target[step]], workspaceVar[args[0]], imm(16)); // Comparison mode is _CMP_EQ_OS = 16 - c.andps(workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + c.cmeq(workspaceVar[target[step]], workspaceVar[args[0]], imm(0)); + c.and_(workspaceVar[target[step]], workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); break; case Operation::SQUARE: - c.movsd(workspaceVar[target[step]], workspaceVar[args[0]]); - c.mulsd(workspaceVar[target[step]], workspaceVar[args[0]]); + c.fmul(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[0]]); break; case Operation::CUBE: - c.movsd(workspaceVar[target[step]], workspaceVar[args[0]]); - c.mulsd(workspaceVar[target[step]], workspaceVar[args[0]]); - c.mulsd(workspaceVar[target[step]], workspaceVar[args[0]]); + c.fmul(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[0]]); + c.fmul(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[args[0]]); break; case Operation::RECIPROCAL: - c.movsd(workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); - c.divsd(workspaceVar[target[step]], workspaceVar[args[0]]); + c.fdiv(workspaceVar[target[step]], constantVar[operationConstantIndex[step]], workspaceVar[args[0]]); break; case Operation::ADD_CONSTANT: - c.movsd(workspaceVar[target[step]], workspaceVar[args[0]]); - c.addsd(workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + c.fadd(workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]]); break; case Operation::MULTIPLY_CONSTANT: - c.movsd(workspaceVar[target[step]], workspaceVar[args[0]]); - c.mulsd(workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + c.fmul(workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]]); + break; + case Operation::POWER_CONSTANT: + generateTwoArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]], pow); + break; + case Operation::MIN: + c.fmin(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::MAX: + c.fmax(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); break; case Operation::ABS: - generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], fabs); + c.fabs(workspaceVar[target[step]], workspaceVar[args[0]]); break; case Operation::FLOOR: - generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], floor); + c.frintm(workspaceVar[target[step]], workspaceVar[args[0]]); break; case Operation::CEIL: - generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], ceil); + c.frintp(workspaceVar[target[step]], workspaceVar[args[0]]); + break; + case Operation::SELECT: + c.fcmeq(workspaceVar[target[step]], workspaceVar[args[0]], imm(0)); + c.bsl(workspaceVar[target[step]], workspaceVar[args[2]], workspaceVar[args[1]]); break; default: // Just invoke evaluateOperation(). for (int i = 0; i < (int) args.size(); i++) - c.movsd(x86::ptr(argsPointer, 8*i, 0), workspaceVar[args[i]]); - X86Gp fn = c.newIntPtr(); - c.mov(fn, imm_ptr((void*) evaluateOperation)); - CCFuncCall* call = c.call(fn, FuncSignature2()); - call->setArg(0, imm_ptr(&op)); - call->setArg(1, imm_ptr(&argValues[0])); - call->setRet(0, workspaceVar[target[step]]); + c.str(workspaceVar[args[i]], arm::ptr(argsPointer, 8*i)); + arm::Gp fn = c.newIntPtr(); + c.mov(fn, imm((void*) evaluateOperation)); + InvokeNode* invoke; + c.invoke(&invoke, fn, FuncSignatureT()); + invoke->setArg(0, imm(&op)); + invoke->setArg(1, imm(&argValues[0])); + invoke->setRet(0, workspaceVar[target[step]]); } } c.ret(workspaceVar[workspace.size()-1]); @@ -399,20 +494,319 @@ void CompiledExpression::generateJitCode() { runtime.add(&jitCode, &code); } -void CompiledExpression::generateSingleArgCall(X86Compiler& c, X86Xmm& dest, X86Xmm& arg, double (*function)(double)) { - X86Gp fn = c.newIntPtr(); - c.mov(fn, imm_ptr((void*) function)); - CCFuncCall* call = c.call(fn, FuncSignature1()); - call->setArg(0, arg); - call->setRet(0, dest); +void CompiledExpression::generateSingleArgCall(a64::Compiler& c, arm::Vec& dest, arm::Vec& arg, double (*function)(double)) { + arm::Gp fn = c.newIntPtr(); + c.mov(fn, imm((void*) function)); + InvokeNode* invoke; + c.invoke(&invoke, fn, FuncSignatureT()); + invoke->setArg(0, arg); + invoke->setRet(0, dest); } -void CompiledExpression::generateTwoArgCall(X86Compiler& c, X86Xmm& dest, X86Xmm& arg1, X86Xmm& arg2, double (*function)(double, double)) { - X86Gp fn = c.newIntPtr(); - c.mov(fn, imm_ptr((void*) function)); - CCFuncCall* call = c.call(fn, FuncSignature2()); - call->setArg(0, arg1); - call->setArg(1, arg2); - call->setRet(0, dest); +void CompiledExpression::generateTwoArgCall(a64::Compiler& c, arm::Vec& dest, arm::Vec& arg1, arm::Vec& arg2, double (*function)(double, double)) { + arm::Gp fn = c.newIntPtr(); + c.mov(fn, imm((void*) function)); + InvokeNode* invoke; + c.invoke(&invoke, fn, FuncSignatureT()); + invoke->setArg(0, arg1); + invoke->setArg(1, arg2); + invoke->setRet(0, dest); +} +#else +void CompiledExpression::generateJitCode() { + const CpuInfo& cpu = CpuInfo::host(); + if (!cpu.hasFeature(CpuFeatures::X86::kAVX)) + return; + CodeHolder code; + code.init(runtime.environment()); + x86::Compiler c(&code); + FuncNode* funcNode = c.addFunc(FuncSignatureT()); + funcNode->frame().setAvxEnabled(); + vector workspaceVar(workspace.size()); + for (int i = 0; i < (int) workspaceVar.size(); i++) + workspaceVar[i] = c.newXmmSd(); + x86::Gp argsPointer = c.newIntPtr(); + c.mov(argsPointer, imm(&argValues[0])); + vector > groups, groupPowers; + vector stepGroup; + findPowerGroups(groups, groupPowers, stepGroup); + + // Load the arguments into variables. + + x86::Gp variablePointer = c.newIntPtr(); + for (set::const_iterator iter = variableNames.begin(); iter != variableNames.end(); ++iter) { + map::iterator index = variableIndices.find(*iter); + c.mov(variablePointer, imm(&getVariableReference(index->first))); + c.vmovsd(workspaceVar[index->second], x86::ptr(variablePointer, 0, 0)); + } + + // Make a list of all constants that will be needed for evaluation. + + vector operationConstantIndex(operation.size(), -1); + for (int step = 0; step < (int) operation.size(); step++) { + // Find the constant value (if any) used by this operation. + + Operation& op = *operation[step]; + double value; + if (op.getId() == Operation::CONSTANT) + value = dynamic_cast(op).getValue(); + else if (op.getId() == Operation::ADD_CONSTANT) + value = dynamic_cast(op).getValue(); + else if (op.getId() == Operation::MULTIPLY_CONSTANT) + value = dynamic_cast(op).getValue(); + else if (op.getId() == Operation::RECIPROCAL) + value = 1.0; + else if (op.getId() == Operation::STEP) + value = 1.0; + else if (op.getId() == Operation::DELTA) + value = 1.0; + else if (op.getId() == Operation::ABS) { + long long mask = 0x7FFFFFFFFFFFFFFF; + value = *reinterpret_cast(&mask); + } + else if (op.getId() == Operation::POWER_CONSTANT) { + if (stepGroup[step] == -1) + value = dynamic_cast(op).getValue(); + else + value = 1.0; + } + else + continue; + + // See if we already have a variable for this constant. + + for (int i = 0; i < (int) constants.size(); i++) + if (value == constants[i]) { + operationConstantIndex[step] = i; + break; + } + if (operationConstantIndex[step] == -1) { + operationConstantIndex[step] = constants.size(); + constants.push_back(value); + } + } + + // Load constants into variables. + + vector constantVar(constants.size()); + if (constants.size() > 0) { + x86::Gp constantsPointer = c.newIntPtr(); + c.mov(constantsPointer, imm(&constants[0])); + for (int i = 0; i < (int) constants.size(); i++) { + constantVar[i] = c.newXmmSd(); + c.vmovsd(constantVar[i], x86::ptr(constantsPointer, 8*i, 0)); + } + } + + // Evaluate the operations. + + vector hasComputedPower(operation.size(), false); + for (int step = 0; step < (int) operation.size(); step++) { + if (hasComputedPower[step]) + continue; + + // When one or more steps involve raising the same argument to multiple integer + // powers, we can compute them all together for efficiency. + + if (stepGroup[step] != -1) { + vector& group = groups[stepGroup[step]]; + vector& powers = groupPowers[stepGroup[step]]; + x86::Xmm multiplier = c.newXmmSd(); + if (powers[0] > 0) + c.vmovsd(multiplier, workspaceVar[arguments[step][0]], workspaceVar[arguments[step][0]]); + else { + c.vdivsd(multiplier, constantVar[operationConstantIndex[step]], workspaceVar[arguments[step][0]]); + for (int i = 0; i < powers.size(); i++) + powers[i] = -powers[i]; + } + vector hasAssigned(group.size(), false); + bool done = false; + while (!done) { + done = true; + for (int i = 0; i < group.size(); i++) { + if (powers[i]%2 == 1) { + if (!hasAssigned[i]) + c.vmovsd(workspaceVar[target[group[i]]], multiplier, multiplier); + else + c.vmulsd(workspaceVar[target[group[i]]], workspaceVar[target[group[i]]], multiplier); + hasAssigned[i] = true; + } + powers[i] >>= 1; + if (powers[i] != 0) + done = false; + } + if (!done) + c.vmulsd(multiplier, multiplier, multiplier); + } + for (int step : group) + hasComputedPower[step] = true; + continue; + } + + // Evaluate the step. + + Operation& op = *operation[step]; + vector args = arguments[step]; + if (args.size() == 1) { + // One or more sequential arguments. Fill out the list. + + for (int i = 1; i < op.getNumArguments(); i++) + args.push_back(args[0]+i); + } + + // Generate instructions to execute this operation. + + switch (op.getId()) { + case Operation::CONSTANT: + c.vmovsd(workspaceVar[target[step]], constantVar[operationConstantIndex[step]], constantVar[operationConstantIndex[step]]); + break; + case Operation::ADD: + c.vaddsd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::SUBTRACT: + c.vsubsd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::MULTIPLY: + c.vmulsd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::DIVIDE: + c.vdivsd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::POWER: + generateTwoArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]], pow); + break; + case Operation::NEGATE: + c.vxorps(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[target[step]]); + c.vsubsd(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[args[0]]); + break; + case Operation::SQRT: + c.vsqrtsd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[0]]); + break; + case Operation::EXP: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], exp); + break; + case Operation::LOG: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], log); + break; + case Operation::SIN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], sin); + break; + case Operation::COS: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], cos); + break; + case Operation::TAN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], tan); + break; + case Operation::ASIN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], asin); + break; + case Operation::ACOS: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], acos); + break; + case Operation::ATAN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], atan); + break; + case Operation::ATAN2: + generateTwoArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]], atan2); + break; + case Operation::SINH: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], sinh); + break; + case Operation::COSH: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], cosh); + break; + case Operation::TANH: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], tanh); + break; + case Operation::STEP: + c.vxorps(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[target[step]]); + c.vcmpsd(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[args[0]], imm(18)); // Comparison mode is _CMP_LE_OQ = 18 + c.vandps(workspaceVar[target[step]], workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + break; + case Operation::DELTA: + c.vxorps(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[target[step]]); + c.vcmpsd(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[args[0]], imm(16)); // Comparison mode is _CMP_EQ_OS = 16 + c.vandps(workspaceVar[target[step]], workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + break; + case Operation::SQUARE: + c.vmulsd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[0]]); + break; + case Operation::CUBE: + c.vmulsd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[0]]); + c.vmulsd(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[args[0]]); + break; + case Operation::RECIPROCAL: + c.vdivsd(workspaceVar[target[step]], constantVar[operationConstantIndex[step]], workspaceVar[args[0]]); + break; + case Operation::ADD_CONSTANT: + c.vaddsd(workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]]); + break; + case Operation::MULTIPLY_CONSTANT: + c.vmulsd(workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]]); + break; + case Operation::POWER_CONSTANT: + generateTwoArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]], pow); + break; + case Operation::MIN: + c.vminsd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::MAX: + c.vmaxsd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::ABS: + c.vandpd(workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]]); + break; + case Operation::FLOOR: + c.vroundsd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[0]], imm(1)); + break; + case Operation::CEIL: + c.vroundsd(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[0]], imm(2)); + break; + case Operation::SELECT: + { + x86::Xmm mask = c.newXmmSd(); + c.vxorps(mask, mask, mask); + c.vcmpsd(mask, mask, workspaceVar[args[0]], imm(0)); // Comparison mode is _CMP_EQ_OQ = 0 + c.vblendvps(workspaceVar[target[step]], workspaceVar[args[1]], workspaceVar[args[2]], mask); + break; + } + default: + // Just invoke evaluateOperation(). + + for (int i = 0; i < (int) args.size(); i++) + c.vmovsd(x86::ptr(argsPointer, 8*i, 0), workspaceVar[args[i]]); + x86::Gp fn = c.newIntPtr(); + c.mov(fn, imm((void*) evaluateOperation)); + InvokeNode* invoke; + c.invoke(&invoke, fn, FuncSignatureT()); + invoke->setArg(0, imm(&op)); + invoke->setArg(1, imm(&argValues[0])); + invoke->setRet(0, workspaceVar[target[step]]); + } + } + c.ret(workspaceVar[workspace.size()-1]); + c.endFunc(); + c.finalize(); + runtime.add(&jitCode, &code); +} + +void CompiledExpression::generateSingleArgCall(x86::Compiler& c, x86::Xmm& dest, x86::Xmm& arg, double (*function)(double)) { + x86::Gp fn = c.newIntPtr(); + c.mov(fn, imm((void*) function)); + InvokeNode* invoke; + c.invoke(&invoke, fn, FuncSignatureT()); + invoke->setArg(0, arg); + invoke->setRet(0, dest); +} + +void CompiledExpression::generateTwoArgCall(x86::Compiler& c, x86::Xmm& dest, x86::Xmm& arg1, x86::Xmm& arg2, double (*function)(double, double)) { + x86::Gp fn = c.newIntPtr(); + c.mov(fn, imm((void*) function)); + InvokeNode* invoke; + c.invoke(&invoke, fn, FuncSignatureT()); + invoke->setArg(0, arg1); + invoke->setArg(1, arg2); + invoke->setRet(0, dest); } #endif +#endif diff --git a/lib/colvars/lepton/src/CompiledVectorExpression.cpp b/lib/colvars/lepton/src/CompiledVectorExpression.cpp new file mode 100644 index 0000000000..7c01a986bb --- /dev/null +++ b/lib/colvars/lepton/src/CompiledVectorExpression.cpp @@ -0,0 +1,933 @@ +/* -------------------------------------------------------------------------- * + * Lepton * + * -------------------------------------------------------------------------- * + * This is part of the Lepton expression parser originating from * + * Simbios, the NIH National Center for Physics-Based Simulation of * + * Biological Structures at Stanford, funded under the NIH Roadmap for * + * Medical Research, grant U54 GM072970. See https://simtk.org. * + * * + * Portions copyright (c) 2013-2022 Stanford University and the Authors. * + * Authors: Peter Eastman * + * Contributors: * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the "Software"), * + * to deal in the Software without restriction, including without limitation * + * the rights to use, copy, modify, merge, publish, distribute, sublicense, * + * and/or sell copies of the Software, and to permit persons to whom the * + * Software is furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included in * + * all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * + * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE * + * USE OR OTHER DEALINGS IN THE SOFTWARE. * + * -------------------------------------------------------------------------- */ + +#include "lepton/CompiledVectorExpression.h" +#include "lepton/Operation.h" +#include "lepton/ParsedExpression.h" +#include +#include + +using namespace Lepton; +using namespace std; +#ifdef LEPTON_USE_JIT +using namespace asmjit; +#endif + +CompiledVectorExpression::CompiledVectorExpression() : jitCode(NULL) { +} + +CompiledVectorExpression::CompiledVectorExpression(const ParsedExpression& expression, int width) : jitCode(NULL), width(width) { + const vector allowedWidths = getAllowedWidths(); + if (find(allowedWidths.begin(), allowedWidths.end(), width) == allowedWidths.end()) + throw Exception("Unsupported width for vector expression: "+to_string(width)); + ParsedExpression expr = expression.optimize(); // Just in case it wasn't already optimized. + vector > temps; + int workspaceSize = 0; + compileExpression(expr.getRootNode(), temps, workspaceSize); + workspace.resize(workspaceSize*width); + int maxArguments = 1; + for (int i = 0; i < (int) operation.size(); i++) + if (operation[i]->getNumArguments() > maxArguments) + maxArguments = operation[i]->getNumArguments(); + argValues.resize(maxArguments); +#ifdef LEPTON_USE_JIT + generateJitCode(); +#endif +} + +CompiledVectorExpression::~CompiledVectorExpression() { + for (int i = 0; i < (int) operation.size(); i++) + if (operation[i] != NULL) + delete operation[i]; +} + +CompiledVectorExpression::CompiledVectorExpression(const CompiledVectorExpression& expression) : jitCode(NULL) { + *this = expression; +} + +CompiledVectorExpression& CompiledVectorExpression::operator=(const CompiledVectorExpression& expression) { + arguments = expression.arguments; + width = expression.width; + target = expression.target; + variableIndices = expression.variableIndices; + variableNames = expression.variableNames; + workspace.resize(expression.workspace.size()); + argValues.resize(expression.argValues.size()); + operation.resize(expression.operation.size()); + for (int i = 0; i < (int) operation.size(); i++) + operation[i] = expression.operation[i]->clone(); + setVariableLocations(variablePointers); + return *this; +} + +const vector& CompiledVectorExpression::getAllowedWidths() { + static vector widths; + if (widths.size() == 0) { + widths.push_back(4); +#ifdef LEPTON_USE_JIT + const CpuInfo& cpu = CpuInfo::host(); + if (cpu.hasFeature(CpuFeatures::X86::kAVX)) + widths.push_back(8); +#endif + } + return widths; +} + +void CompiledVectorExpression::compileExpression(const ExpressionTreeNode& node, vector >& temps, int& workspaceSize) { + if (findTempIndex(node, temps) != -1) + return; // We have already processed a node identical to this one. + + // Process the child nodes. + + vector args; + for (int i = 0; i < node.getChildren().size(); i++) { + compileExpression(node.getChildren()[i], temps, workspaceSize); + args.push_back(findTempIndex(node.getChildren()[i], temps)); + } + + // Process this node. + + if (node.getOperation().getId() == Operation::VARIABLE) { + variableIndices[node.getOperation().getName()] = workspaceSize; + variableNames.insert(node.getOperation().getName()); + } + else { + int stepIndex = (int) arguments.size(); + arguments.push_back(vector()); + target.push_back(workspaceSize); + operation.push_back(node.getOperation().clone()); + if (args.size() == 0) + arguments[stepIndex].push_back(0); // The value won't actually be used. We just need something there. + else { + // If the arguments are sequential, we can just pass a pointer to the first one. + + bool sequential = true; + for (int i = 1; i < args.size(); i++) + if (args[i] != args[i - 1] + 1) + sequential = false; + if (sequential) + arguments[stepIndex].push_back(args[0]); + else + arguments[stepIndex] = args; + } + } + temps.push_back(make_pair(node, workspaceSize)); + workspaceSize++; +} + +int CompiledVectorExpression::findTempIndex(const ExpressionTreeNode& node, vector >& temps) { + for (int i = 0; i < (int) temps.size(); i++) + if (temps[i].first == node) + return i; + return -1; +} + +int CompiledVectorExpression::getWidth() const { + return width; +} + +const set& CompiledVectorExpression::getVariables() const { + return variableNames; +} + +float* CompiledVectorExpression::getVariablePointer(const string& name) { + map::iterator pointer = variablePointers.find(name); + if (pointer != variablePointers.end()) + return pointer->second; + map::iterator index = variableIndices.find(name); + if (index == variableIndices.end()) + throw Exception("getVariableReference: Unknown variable '" + name + "'"); + return &workspace[index->second*width]; +} + +void CompiledVectorExpression::setVariableLocations(map& variableLocations) { + variablePointers = variableLocations; +#ifdef LEPTON_USE_JIT + // Rebuild the JIT code. + + if (workspace.size() > 0) + generateJitCode(); +#endif + // Make a list of all variables we will need to copy before evaluating the expression. + + variablesToCopy.clear(); + for (map::const_iterator iter = variableIndices.begin(); iter != variableIndices.end(); ++iter) { + map::iterator pointer = variablePointers.find(iter->first); + if (pointer != variablePointers.end()) + variablesToCopy.push_back(make_pair(&workspace[iter->second*width], pointer->second)); + } +} + +const float* CompiledVectorExpression::evaluate() const { + if (jitCode) { + jitCode(); + return &workspace[workspace.size()-width]; + } + for (int i = 0; i < variablesToCopy.size(); i++) + for (int j = 0; j < width; j++) + variablesToCopy[i].first[j] = variablesToCopy[i].second[j]; + + // Loop over the operations and evaluate each one. + + for (int step = 0; step < operation.size(); step++) { + const vector& args = arguments[step]; + if (args.size() == 1) { + for (int j = 0; j < width; j++) { + for (int i = 0; i < operation[step]->getNumArguments(); i++) + argValues[i] = workspace[(args[0]+i)*width+j]; + workspace[target[step]*width+j] = operation[step]->evaluate(&argValues[0], dummyVariables); + } + } else { + for (int j = 0; j < width; j++) { + for (int i = 0; i < args.size(); i++) + argValues[i] = workspace[args[i]*width+j]; + workspace[target[step]*width+j] = operation[step]->evaluate(&argValues[0], dummyVariables); + } + } + } + return &workspace[workspace.size()-width]; +} + +#ifdef LEPTON_USE_JIT + +static double evaluateOperation(Operation* op, double* args) { + static map dummyVariables; + return op->evaluate(args, dummyVariables); +} + +void CompiledVectorExpression::findPowerGroups(vector >& groups, vector >& groupPowers, vector& stepGroup) { + // Identify every step that raises an argument to an integer power. + + vector stepPower(operation.size(), 0); + vector stepArg(operation.size(), -1); + for (int step = 0; step < operation.size(); step++) { + Operation& op = *operation[step]; + int power = 0; + if (op.getId() == Operation::SQUARE) + power = 2; + else if (op.getId() == Operation::CUBE) + power = 3; + else if (op.getId() == Operation::POWER_CONSTANT) { + double realPower = dynamic_cast (&op)->getValue(); + if (realPower == (int) realPower) + power = (int) realPower; + } + if (power != 0) { + stepPower[step] = power; + stepArg[step] = arguments[step][0]; + } + } + + // Find groups that operate on the same argument and whose powers have the same sign. + + stepGroup.resize(operation.size(), -1); + for (int i = 0; i < operation.size(); i++) { + if (stepGroup[i] != -1) + continue; + vector group, power; + for (int j = i; j < operation.size(); j++) { + if (stepArg[i] == stepArg[j] && stepPower[i] * stepPower[j] > 0) { + stepGroup[j] = groups.size(); + group.push_back(j); + power.push_back(stepPower[j]); + } + } + groups.push_back(group); + groupPowers.push_back(power); + } +} + +#if defined(__ARM__) || defined(__ARM64__) + +void CompiledVectorExpression::generateJitCode() { + CodeHolder code; + code.init(runtime.environment()); + a64::Compiler c(&code); + c.addFunc(FuncSignatureT()); + vector workspaceVar(workspace.size()/width); + for (int i = 0; i < (int) workspaceVar.size(); i++) + workspaceVar[i] = c.newVecQ(); + arm::Gp argsPointer = c.newIntPtr(); + c.mov(argsPointer, imm(&argValues[0])); + vector > groups, groupPowers; + vector stepGroup; + findPowerGroups(groups, groupPowers, stepGroup); + + // Load the arguments into variables. + + arm::Gp variablePointer = c.newIntPtr(); + for (set::const_iterator iter = variableNames.begin(); iter != variableNames.end(); ++iter) { + map::iterator index = variableIndices.find(*iter); + c.mov(variablePointer, imm(getVariablePointer(index->first))); + c.ldr(workspaceVar[index->second].s4(), arm::ptr(variablePointer, 0)); + } + + // Make a list of all constants that will be needed for evaluation. + + vector operationConstantIndex(operation.size(), -1); + for (int step = 0; step < (int) operation.size(); step++) { + // Find the constant value (if any) used by this operation. + + Operation& op = *operation[step]; + float value; + if (op.getId() == Operation::CONSTANT) + value = dynamic_cast (op).getValue(); + else if (op.getId() == Operation::ADD_CONSTANT) + value = dynamic_cast (op).getValue(); + else if (op.getId() == Operation::MULTIPLY_CONSTANT) + value = dynamic_cast (op).getValue(); + else if (op.getId() == Operation::RECIPROCAL) + value = 1.0; + else if (op.getId() == Operation::STEP) + value = 1.0; + else if (op.getId() == Operation::DELTA) + value = 1.0; + else if (op.getId() == Operation::POWER_CONSTANT) { + if (stepGroup[step] == -1) + value = dynamic_cast (op).getValue(); + else + value = 1.0; + } else + continue; + + // See if we already have a variable for this constant. + + for (int i = 0; i < (int) constants.size(); i++) + if (value == constants[i]) { + operationConstantIndex[step] = i; + break; + } + if (operationConstantIndex[step] == -1) { + operationConstantIndex[step] = constants.size(); + constants.push_back(value); + } + } + + // Load constants into variables. + + vector constantVar(constants.size()); + if (constants.size() > 0) { + arm::Gp constantsPointer = c.newIntPtr(); + for (int i = 0; i < (int) constants.size(); i++) { + c.mov(constantsPointer, imm(&constants[i])); + constantVar[i] = c.newVecQ(); + c.ld1r(constantVar[i].s4(), arm::ptr(constantsPointer)); + } + } + + // Evaluate the operations. + + vector hasComputedPower(operation.size(), false); + arm::Vec argReg = c.newVecS(); + arm::Vec doubleArgReg = c.newVecD(); + arm::Vec doubleResultReg = c.newVecD(); + for (int step = 0; step < (int) operation.size(); step++) { + if (hasComputedPower[step]) + continue; + + // When one or more steps involve raising the same argument to multiple integer + // powers, we can compute them all together for efficiency. + + if (stepGroup[step] != -1) { + vector& group = groups[stepGroup[step]]; + vector& powers = groupPowers[stepGroup[step]]; + arm::Vec multiplier = c.newVecQ(); + if (powers[0] > 0) + c.mov(multiplier.s4(), workspaceVar[arguments[step][0]].s4()); + else { + c.fdiv(multiplier.s4(), constantVar[operationConstantIndex[step]].s4(), workspaceVar[arguments[step][0]].s4()); + for (int i = 0; i < powers.size(); i++) + powers[i] = -powers[i]; + } + vector hasAssigned(group.size(), false); + bool done = false; + while (!done) { + done = true; + for (int i = 0; i < group.size(); i++) { + if (powers[i] % 2 == 1) { + if (!hasAssigned[i]) + c.mov(workspaceVar[target[group[i]]].s4(), multiplier.s4()); + else + c.fmul(workspaceVar[target[group[i]]].s4(), workspaceVar[target[group[i]]].s4(), multiplier.s4()); + hasAssigned[i] = true; + } + powers[i] >>= 1; + if (powers[i] != 0) + done = false; + } + if (!done) + c.fmul(multiplier.s4(), multiplier.s4(), multiplier.s4()); + } + for (int step : group) + hasComputedPower[step] = true; + continue; + } + + // Evaluate the step. + + Operation& op = *operation[step]; + vector args = arguments[step]; + if (args.size() == 1) { + // One or more sequential arguments. Fill out the list. + + for (int i = 1; i < op.getNumArguments(); i++) + args.push_back(args[0] + i); + } + + // Generate instructions to execute this operation. + + switch (op.getId()) { + case Operation::CONSTANT: + c.mov(workspaceVar[target[step]].s4(), constantVar[operationConstantIndex[step]].s4()); + break; + case Operation::ADD: + c.fadd(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), workspaceVar[args[1]].s4()); + break; + case Operation::SUBTRACT: + c.fsub(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), workspaceVar[args[1]].s4()); + break; + case Operation::MULTIPLY: + c.fmul(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), workspaceVar[args[1]].s4()); + break; + case Operation::DIVIDE: + c.fdiv(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), workspaceVar[args[1]].s4()); + break; + case Operation::POWER: + generateTwoArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]], powf); + break; + case Operation::NEGATE: + c.fneg(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4()); + break; + case Operation::SQRT: + c.fsqrt(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4()); + break; + case Operation::EXP: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], expf); + break; + case Operation::LOG: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], logf); + break; + case Operation::SIN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], sinf); + break; + case Operation::COS: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], cosf); + break; + case Operation::TAN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], tanf); + break; + case Operation::ASIN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], asinf); + break; + case Operation::ACOS: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], acosf); + break; + case Operation::ATAN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], atanf); + break; + case Operation::ATAN2: + generateTwoArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]], atan2f); + break; + case Operation::SINH: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], sinhf); + break; + case Operation::COSH: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], coshf); + break; + case Operation::TANH: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], tanhf); + break; + case Operation::STEP: + c.cmge(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), imm(0)); + c.and_(workspaceVar[target[step]], workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + break; + case Operation::DELTA: + c.cmeq(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), imm(0)); + c.and_(workspaceVar[target[step]], workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + break; + case Operation::SQUARE: + c.fmul(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), workspaceVar[args[0]].s4()); + break; + case Operation::CUBE: + c.fmul(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), workspaceVar[args[0]].s4()); + c.fmul(workspaceVar[target[step]].s4(), workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4()); + break; + case Operation::RECIPROCAL: + c.fdiv(workspaceVar[target[step]].s4(), constantVar[operationConstantIndex[step]].s4(), workspaceVar[args[0]].s4()); + break; + case Operation::ADD_CONSTANT: + c.fadd(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), constantVar[operationConstantIndex[step]].s4()); + break; + case Operation::MULTIPLY_CONSTANT: + c.fmul(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), constantVar[operationConstantIndex[step]].s4()); + break; + case Operation::POWER_CONSTANT: + generateTwoArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]], powf); + break; + case Operation::MIN: + c.fmin(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), workspaceVar[args[1]].s4()); + break; + case Operation::MAX: + c.fmax(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), workspaceVar[args[1]].s4()); + break; + case Operation::ABS: + c.fabs(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4()); + break; + case Operation::FLOOR: + c.frintm(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4()); + break; + case Operation::CEIL: + c.frintp(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4()); + break; + case Operation::SELECT: + c.fcmeq(workspaceVar[target[step]].s4(), workspaceVar[args[0]].s4(), imm(0)); + c.bsl(workspaceVar[target[step]], workspaceVar[args[2]], workspaceVar[args[1]]); + break; + default: + // Just invoke evaluateOperation(). + for (int element = 0; element < width; element++) { + for (int i = 0; i < (int) args.size(); i++) { + c.ins(argReg.s(0), workspaceVar[args[i]].s(element)); + c.fcvt(doubleArgReg, argReg); + c.str(doubleArgReg, arm::ptr(argsPointer, 8*i)); + } + arm::Gp fn = c.newIntPtr(); + c.mov(fn, imm((void*) evaluateOperation)); + InvokeNode* invoke; + c.invoke(&invoke, fn, FuncSignatureT()); + invoke->setArg(0, imm(&op)); + invoke->setArg(1, imm(&argValues[0])); + invoke->setRet(0, doubleResultReg); + c.fcvt(argReg, doubleResultReg); + c.ins(workspaceVar[target[step]].s(element), argReg.s(0)); + } + } + } + arm::Gp resultPointer = c.newIntPtr(); + c.mov(resultPointer, imm(&workspace[workspace.size()-width])); + c.str(workspaceVar.back().s4(), arm::ptr(resultPointer, 0)); + c.endFunc(); + c.finalize(); + runtime.add(&jitCode, &code); +} + +void CompiledVectorExpression::generateSingleArgCall(a64::Compiler& c, arm::Vec& dest, arm::Vec& arg, float (*function)(float)) { + arm::Gp fn = c.newIntPtr(); + c.mov(fn, imm((void*) function)); + arm::Vec a = c.newVecS(); + arm::Vec d = c.newVecS(); + for (int element = 0; element < width; element++) { + c.ins(a.s(0), arg.s(element)); + InvokeNode* invoke; + c.invoke(&invoke, fn, FuncSignatureT()); + invoke->setArg(0, a); + invoke->setRet(0, d); + c.ins(dest.s(element), d.s(0)); + } +} + +void CompiledVectorExpression::generateTwoArgCall(a64::Compiler& c, arm::Vec& dest, arm::Vec& arg1, arm::Vec& arg2, float (*function)(float, float)) { + arm::Gp fn = c.newIntPtr(); + c.mov(fn, imm((void*) function)); + arm::Vec a1 = c.newVecS(); + arm::Vec a2 = c.newVecS(); + arm::Vec d = c.newVecS(); + for (int element = 0; element < width; element++) { + c.ins(a1.s(0), arg1.s(element)); + c.ins(a2.s(0), arg2.s(element)); + InvokeNode* invoke; + c.invoke(&invoke, fn, FuncSignatureT()); + invoke->setArg(0, a1); + invoke->setArg(1, a2); + invoke->setRet(0, d); + c.ins(dest.s(element), d.s(0)); + } +} +#else + +void CompiledVectorExpression::generateJitCode() { + const CpuInfo& cpu = CpuInfo::host(); + if (!cpu.hasFeature(CpuFeatures::X86::kAVX)) + return; + CodeHolder code; + code.init(runtime.environment()); + x86::Compiler c(&code); + FuncNode* funcNode = c.addFunc(FuncSignatureT()); + funcNode->frame().setAvxEnabled(); + vector workspaceVar(workspace.size()/width); + for (int i = 0; i < (int) workspaceVar.size(); i++) + workspaceVar[i] = c.newYmmPs(); + x86::Gp argsPointer = c.newIntPtr(); + c.mov(argsPointer, imm(&argValues[0])); + vector > groups, groupPowers; + vector stepGroup; + findPowerGroups(groups, groupPowers, stepGroup); + + // Load the arguments into variables. + + for (set::const_iterator iter = variableNames.begin(); iter != variableNames.end(); ++iter) { + map::iterator index = variableIndices.find(*iter); + x86::Gp variablePointer = c.newIntPtr(); + c.mov(variablePointer, imm(getVariablePointer(index->first))); + if (width == 4) + c.vmovdqu(workspaceVar[index->second].xmm(), x86::ptr(variablePointer, 0, 0)); + else + c.vmovdqu(workspaceVar[index->second], x86::ptr(variablePointer, 0, 0)); + } + + // Make a list of all constants that will be needed for evaluation. + + vector operationConstantIndex(operation.size(), -1); + for (int step = 0; step < (int) operation.size(); step++) { + // Find the constant value (if any) used by this operation. + + Operation& op = *operation[step]; + double value; + if (op.getId() == Operation::CONSTANT) + value = dynamic_cast (op).getValue(); + else if (op.getId() == Operation::ADD_CONSTANT) + value = dynamic_cast (op).getValue(); + else if (op.getId() == Operation::MULTIPLY_CONSTANT) + value = dynamic_cast (op).getValue(); + else if (op.getId() == Operation::RECIPROCAL) + value = 1.0; + else if (op.getId() == Operation::STEP) + value = 1.0; + else if (op.getId() == Operation::DELTA) + value = 1.0; + else if (op.getId() == Operation::ABS) { + int mask = 0x7FFFFFFF; + value = *reinterpret_cast(&mask); + } + else if (op.getId() == Operation::POWER_CONSTANT) { + if (stepGroup[step] == -1) + value = dynamic_cast (op).getValue(); + else + value = 1.0; + } else + continue; + + // See if we already have a variable for this constant. + + for (int i = 0; i < (int) constants.size(); i++) + if (value == constants[i]) { + operationConstantIndex[step] = i; + break; + } + if (operationConstantIndex[step] == -1) { + operationConstantIndex[step] = constants.size(); + constants.push_back(value); + } + } + + // Load constants into variables. + + vector constantVar(constants.size()); + if (constants.size() > 0) { + x86::Gp constantsPointer = c.newIntPtr(); + c.mov(constantsPointer, imm(&constants[0])); + for (int i = 0; i < (int) constants.size(); i++) { + constantVar[i] = c.newYmmPs(); + c.vbroadcastss(constantVar[i], x86::ptr(constantsPointer, 4*i, 0)); + } + } + + // Evaluate the operations. + + vector hasComputedPower(operation.size(), false); + x86::Ymm argReg = c.newYmm(); + x86::Ymm doubleArgReg = c.newYmm(); + x86::Ymm doubleResultReg = c.newYmm(); + for (int step = 0; step < (int) operation.size(); step++) { + if (hasComputedPower[step]) + continue; + + // When one or more steps involve raising the same argument to multiple integer + // powers, we can compute them all together for efficiency. + + if (stepGroup[step] != -1) { + vector& group = groups[stepGroup[step]]; + vector& powers = groupPowers[stepGroup[step]]; + x86::Ymm multiplier = c.newYmmPs(); + if (powers[0] > 0) + c.vmovdqu(multiplier, workspaceVar[arguments[step][0]]); + else { + c.vdivps(multiplier, constantVar[operationConstantIndex[step]], workspaceVar[arguments[step][0]]); + for (int i = 0; i < powers.size(); i++) + powers[i] = -powers[i]; + } + vector hasAssigned(group.size(), false); + bool done = false; + while (!done) { + done = true; + for (int i = 0; i < group.size(); i++) { + if (powers[i] % 2 == 1) { + if (!hasAssigned[i]) + c.vmovdqu(workspaceVar[target[group[i]]], multiplier); + else + c.vmulps(workspaceVar[target[group[i]]], workspaceVar[target[group[i]]], multiplier); + hasAssigned[i] = true; + } + powers[i] >>= 1; + if (powers[i] != 0) + done = false; + } + if (!done) + c.vmulps(multiplier, multiplier, multiplier); + } + for (int step : group) + hasComputedPower[step] = true; + continue; + } + + // Evaluate the step. + + Operation& op = *operation[step]; + vector args = arguments[step]; + if (args.size() == 1) { + // One or more sequential arguments. Fill out the list. + + for (int i = 1; i < op.getNumArguments(); i++) + args.push_back(args[0] + i); + } + + // Generate instructions to execute this operation. + + switch (op.getId()) { + case Operation::CONSTANT: + c.vmovdqu(workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + break; + case Operation::ADD: + c.vaddps(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::SUBTRACT: + c.vsubps(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::MULTIPLY: + c.vmulps(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::DIVIDE: + c.vdivps(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::POWER: + generateTwoArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]], powf); + break; + case Operation::NEGATE: + c.vxorps(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[target[step]]); + c.vsubps(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[args[0]]); + break; + case Operation::SQRT: + c.vsqrtps(workspaceVar[target[step]], workspaceVar[args[0]]); + break; + case Operation::EXP: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], expf); + break; + case Operation::LOG: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], logf); + break; + case Operation::SIN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], sinf); + break; + case Operation::COS: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], cosf); + break; + case Operation::TAN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], tanf); + break; + case Operation::ASIN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], asinf); + break; + case Operation::ACOS: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], acosf); + break; + case Operation::ATAN: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], atanf); + break; + case Operation::ATAN2: + generateTwoArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]], atan2f); + break; + case Operation::SINH: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], sinhf); + break; + case Operation::COSH: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], coshf); + break; + case Operation::TANH: + generateSingleArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], tanhf); + break; + case Operation::STEP: + c.vxorps(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[target[step]]); + c.vcmpps(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[args[0]], imm(18)); // Comparison mode is _CMP_LE_OQ = 18 + c.vandps(workspaceVar[target[step]], workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + break; + case Operation::DELTA: + c.vxorps(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[target[step]]); + c.vcmpps(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[args[0]], imm(16)); // Comparison mode is _CMP_EQ_OQ = 0 + c.vandps(workspaceVar[target[step]], workspaceVar[target[step]], constantVar[operationConstantIndex[step]]); + break; + case Operation::SQUARE: + c.vmulps(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[0]]); + break; + case Operation::CUBE: + c.vmulps(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[0]]); + c.vmulps(workspaceVar[target[step]], workspaceVar[target[step]], workspaceVar[args[0]]); + break; + case Operation::RECIPROCAL: + c.vdivps(workspaceVar[target[step]], constantVar[operationConstantIndex[step]], workspaceVar[args[0]]); + break; + case Operation::ADD_CONSTANT: + c.vaddps(workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]]); + break; + case Operation::MULTIPLY_CONSTANT: + c.vmulps(workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]]); + break; + case Operation::POWER_CONSTANT: + generateTwoArgCall(c, workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]], powf); + break; + case Operation::MIN: + c.vminps(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::MAX: + c.vmaxps(workspaceVar[target[step]], workspaceVar[args[0]], workspaceVar[args[1]]); + break; + case Operation::ABS: + c.vandps(workspaceVar[target[step]], workspaceVar[args[0]], constantVar[operationConstantIndex[step]]); + break; + case Operation::FLOOR: + c.vroundps(workspaceVar[target[step]], workspaceVar[args[0]], imm(1)); + break; + case Operation::CEIL: + c.vroundps(workspaceVar[target[step]], workspaceVar[args[0]], imm(2)); + break; + case Operation::SELECT: + { + x86::Ymm mask = c.newYmmPs(); + c.vxorps(mask, mask, mask); + c.vcmpps(mask, mask, workspaceVar[args[0]], imm(0)); // Comparison mode is _CMP_EQ_OQ = 0 + c.vblendvps(workspaceVar[target[step]], workspaceVar[args[1]], workspaceVar[args[2]], mask); + break; + } + default: + // Just invoke evaluateOperation(). + + for (int element = 0; element < width; element++) { + for (int i = 0; i < (int) args.size(); i++) { + if (element < 4) + c.vshufps(argReg, workspaceVar[args[i]], workspaceVar[args[i]], imm(element)); + else { + c.vperm2f128(argReg, workspaceVar[args[i]], workspaceVar[args[i]], imm(1)); + c.vshufps(argReg, argReg, argReg, imm(element-4)); + } + c.vcvtss2sd(doubleArgReg.xmm(), doubleArgReg.xmm(), argReg.xmm()); + c.vmovsd(x86::ptr(argsPointer, 8*i, 0), doubleArgReg.xmm()); + } + x86::Gp fn = c.newIntPtr(); + c.mov(fn, imm((void*) evaluateOperation)); + InvokeNode* invoke; + c.invoke(&invoke, fn, FuncSignatureT()); + invoke->setArg(0, imm(&op)); + invoke->setArg(1, imm(&argValues[0])); + invoke->setRet(0, doubleResultReg); + c.vcvtsd2ss(argReg.xmm(), argReg.xmm(), doubleResultReg.xmm()); + if (element > 3) + c.vperm2f128(argReg, argReg, argReg, imm(0)); + if (element != 0) + c.vshufps(argReg, argReg, argReg, imm(0)); + c.vblendps(workspaceVar[target[step]], workspaceVar[target[step]], argReg, 1<()); + invoke->setArg(0, a); + invoke->setRet(0, d); + if (element > 3) + c.vperm2f128(d, d, d, imm(0)); + if (element != 0) + c.vshufps(d, d, d, imm(0)); + c.vblendps(dest, dest, d, 1<()); + invoke->setArg(0, a1); + invoke->setArg(1, a2); + invoke->setRet(0, d); + if (element > 3) + c.vperm2f128(d, d, d, imm(0)); + if (element != 0) + c.vshufps(d, d, d, imm(0)); + c.vblendps(dest, dest, d, 1< using namespace Lepton; using namespace std; @@ -62,6 +63,11 @@ ExpressionTreeNode::ExpressionTreeNode(Operation* operation) : operation(operati ExpressionTreeNode::ExpressionTreeNode(const ExpressionTreeNode& node) : operation(node.operation == NULL ? NULL : node.operation->clone()), children(node.getChildren()) { } +ExpressionTreeNode::ExpressionTreeNode(ExpressionTreeNode&& node) : operation(node.operation), children(move(node.children)) { + node.operation = NULL; + node.children.clear(); +} + ExpressionTreeNode::ExpressionTreeNode() : operation(NULL) { } @@ -98,6 +104,16 @@ ExpressionTreeNode& ExpressionTreeNode::operator=(const ExpressionTreeNode& node return *this; } +ExpressionTreeNode& ExpressionTreeNode::operator=(ExpressionTreeNode&& node) { + if (operation != NULL) + delete operation; + operation = node.operation; + children = move(node.children); + node.operation = NULL; + node.children.clear(); + return *this; +} + const Operation& ExpressionTreeNode::getOperation() const { return *operation; } @@ -105,3 +121,33 @@ const Operation& ExpressionTreeNode::getOperation() const { const vector& ExpressionTreeNode::getChildren() const { return children; } + +void ExpressionTreeNode::assignTags(vector& examples) const { + // Assign tag values to all nodes in a tree, such that two nodes have the same + // tag if and only if they (and all their children) are equal. This is used to + // optimize other operations. + + int numTags = examples.size(); + for (const ExpressionTreeNode& child : getChildren()) + child.assignTags(examples); + if (numTags == examples.size()) { + // All the children matched existing tags, so possibly this node does too. + + for (int i = 0; i < examples.size(); i++) { + const ExpressionTreeNode& example = *examples[i]; + bool matches = (getChildren().size() == example.getChildren().size() && getOperation() == example.getOperation()); + for (int j = 0; matches && j < getChildren().size(); j++) + if (getChildren()[j].tag != example.getChildren()[j].tag) + matches = false; + if (matches) { + tag = i; + return; + } + } + } + + // This node does not match any previous node, so assign a new tag. + + tag = examples.size(); + examples.push_back(this); +} diff --git a/lib/colvars/lepton/src/Operation.cpp b/lib/colvars/lepton/src/Operation.cpp index 78741c4814..b5a958b2f7 100644 --- a/lib/colvars/lepton/src/Operation.cpp +++ b/lib/colvars/lepton/src/Operation.cpp @@ -7,7 +7,7 @@ * Biological Structures at Stanford, funded under the NIH Roadmap for * * Medical Research, grant U54 GM072970. See https://simtk.org. * * * - * Portions copyright (c) 2009-2019 Stanford University and the Authors. * + * Portions copyright (c) 2009-2021 Stanford University and the Authors. * * Authors: Peter Eastman * * Contributors: * * * @@ -37,6 +37,12 @@ using namespace Lepton; using namespace std; +static bool isZero(const ExpressionTreeNode& node) { + if (node.getOperation().getId() != Operation::CONSTANT) + return false; + return dynamic_cast(node.getOperation()).getValue() == 0.0; +} + double Operation::Erf::evaluate(double* args, const map& variables) const { return erf(args[0]); } @@ -58,35 +64,71 @@ ExpressionTreeNode Operation::Variable::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { if (function->getNumArguments() == 0) return ExpressionTreeNode(new Operation::Constant(0.0)); - ExpressionTreeNode result = ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Custom(*this, 0), children), childDerivs[0]); - for (int i = 1; i < getNumArguments(); i++) { - result = ExpressionTreeNode(new Operation::Add(), - result, - ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Custom(*this, i), children), childDerivs[i])); + ExpressionTreeNode result; + bool foundTerm = false; + for (int i = 0; i < getNumArguments(); i++) { + if (!isZero(childDerivs[i])) { + if (foundTerm) + result = ExpressionTreeNode(new Operation::Add(), + result, + ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Custom(*this, i), children), childDerivs[i])); + else { + result = ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Custom(*this, i), children), childDerivs[i]); + foundTerm = true; + } + } } - return result; + if (foundTerm) + return result; + return ExpressionTreeNode(new Operation::Constant(0.0)); } ExpressionTreeNode Operation::Add::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return childDerivs[1]; + if (isZero(childDerivs[1])) + return childDerivs[0]; return ExpressionTreeNode(new Operation::Add(), childDerivs[0], childDerivs[1]); } ExpressionTreeNode Operation::Subtract::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) { + if (isZero(childDerivs[1])) + return ExpressionTreeNode(new Operation::Constant(0.0)); + return ExpressionTreeNode(new Operation::Negate(), childDerivs[1]); + } + if (isZero(childDerivs[1])) + return childDerivs[0]; return ExpressionTreeNode(new Operation::Subtract(), childDerivs[0], childDerivs[1]); } ExpressionTreeNode Operation::Multiply::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) { + if (isZero(childDerivs[1])) + return ExpressionTreeNode(new Operation::Constant(0.0)); + return ExpressionTreeNode(new Operation::Multiply(), children[0], childDerivs[1]); + } + if (isZero(childDerivs[1])) + return ExpressionTreeNode(new Operation::Multiply(), children[1], childDerivs[0]); return ExpressionTreeNode(new Operation::Add(), ExpressionTreeNode(new Operation::Multiply(), children[0], childDerivs[1]), ExpressionTreeNode(new Operation::Multiply(), children[1], childDerivs[0])); } ExpressionTreeNode Operation::Divide::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { - return ExpressionTreeNode(new Operation::Divide(), - ExpressionTreeNode(new Operation::Subtract(), + ExpressionTreeNode subexp; + if (isZero(childDerivs[0])) { + if (isZero(childDerivs[1])) + return ExpressionTreeNode(new Operation::Constant(0.0)); + subexp = ExpressionTreeNode(new Operation::Negate(), ExpressionTreeNode(new Operation::Multiply(), children[0], childDerivs[1])); + } + else if (isZero(childDerivs[1])) + subexp = ExpressionTreeNode(new Operation::Multiply(), children[1], childDerivs[0]); + else + subexp = ExpressionTreeNode(new Operation::Subtract(), ExpressionTreeNode(new Operation::Multiply(), children[1], childDerivs[0]), - ExpressionTreeNode(new Operation::Multiply(), children[0], childDerivs[1])), - ExpressionTreeNode(new Operation::Square(), children[1])); + ExpressionTreeNode(new Operation::Multiply(), children[0], childDerivs[1])); + return ExpressionTreeNode(new Operation::Divide(), subexp, ExpressionTreeNode(new Operation::Square(), children[1])); } ExpressionTreeNode Operation::Power::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { @@ -105,10 +147,14 @@ ExpressionTreeNode Operation::Power::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Negate(), childDerivs[0]); } ExpressionTreeNode Operation::Sqrt::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::MultiplyConstant(0.5), ExpressionTreeNode(new Operation::Reciprocal(), @@ -117,24 +163,32 @@ ExpressionTreeNode Operation::Sqrt::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Exp(), children[0]), childDerivs[0]); } ExpressionTreeNode Operation::Log::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Reciprocal(), children[0]), childDerivs[0]); } ExpressionTreeNode Operation::Sin::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Cos(), children[0]), childDerivs[0]); } ExpressionTreeNode Operation::Cos::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Negate(), ExpressionTreeNode(new Operation::Sin(), children[0])), @@ -142,6 +196,8 @@ ExpressionTreeNode Operation::Cos::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Sec(), children[0]), @@ -150,6 +206,8 @@ ExpressionTreeNode Operation::Sec::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Negate(), ExpressionTreeNode(new Operation::Multiply(), @@ -159,6 +217,8 @@ ExpressionTreeNode Operation::Csc::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Square(), ExpressionTreeNode(new Operation::Sec(), children[0])), @@ -166,6 +226,8 @@ ExpressionTreeNode Operation::Tan::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Negate(), ExpressionTreeNode(new Operation::Square(), @@ -174,6 +236,8 @@ ExpressionTreeNode Operation::Cot::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Reciprocal(), ExpressionTreeNode(new Operation::Sqrt(), @@ -184,6 +248,8 @@ ExpressionTreeNode Operation::Asin::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Negate(), ExpressionTreeNode(new Operation::Reciprocal(), @@ -195,6 +261,8 @@ ExpressionTreeNode Operation::Acos::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Reciprocal(), ExpressionTreeNode(new Operation::AddConstant(1.0), @@ -213,6 +281,8 @@ ExpressionTreeNode Operation::Atan2::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Cosh(), children[0]), @@ -220,6 +290,8 @@ ExpressionTreeNode Operation::Sinh::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Sinh(), children[0]), @@ -227,6 +299,8 @@ ExpressionTreeNode Operation::Cosh::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Subtract(), ExpressionTreeNode(new Operation::Constant(1.0)), @@ -236,6 +310,8 @@ ExpressionTreeNode Operation::Tanh::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Constant(2.0/sqrt(M_PI))), @@ -246,6 +322,8 @@ ExpressionTreeNode Operation::Erf::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Constant(-2.0/sqrt(M_PI))), @@ -264,6 +342,8 @@ ExpressionTreeNode Operation::Delta::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::MultiplyConstant(2.0), children[0]), @@ -271,6 +351,8 @@ ExpressionTreeNode Operation::Square::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::MultiplyConstant(3.0), ExpressionTreeNode(new Operation::Square(), children[0])), @@ -278,6 +360,8 @@ ExpressionTreeNode Operation::Cube::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::Negate(), ExpressionTreeNode(new Operation::Reciprocal(), @@ -290,11 +374,15 @@ ExpressionTreeNode Operation::AddConstant::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::MultiplyConstant(value), childDerivs[0]); } ExpressionTreeNode Operation::PowerConstant::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); return ExpressionTreeNode(new Operation::Multiply(), ExpressionTreeNode(new Operation::MultiplyConstant(value), ExpressionTreeNode(new Operation::PowerConstant(value-1), @@ -305,22 +393,18 @@ ExpressionTreeNode Operation::PowerConstant::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { ExpressionTreeNode step(new Operation::Step(), ExpressionTreeNode(new Operation::Subtract(), children[0], children[1])); - return ExpressionTreeNode(new Operation::Subtract(), - ExpressionTreeNode(new Operation::Multiply(), childDerivs[1], step), - ExpressionTreeNode(new Operation::Multiply(), childDerivs[0], - ExpressionTreeNode(new Operation::AddConstant(-1), step))); + return ExpressionTreeNode(new Operation::Select(), {step, childDerivs[1], childDerivs[0]}); } ExpressionTreeNode Operation::Max::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { ExpressionTreeNode step(new Operation::Step(), ExpressionTreeNode(new Operation::Subtract(), children[0], children[1])); - return ExpressionTreeNode(new Operation::Subtract(), - ExpressionTreeNode(new Operation::Multiply(), childDerivs[0], step), - ExpressionTreeNode(new Operation::Multiply(), childDerivs[1], - ExpressionTreeNode(new Operation::AddConstant(-1), step))); + return ExpressionTreeNode(new Operation::Select(), {step, childDerivs[0], childDerivs[1]}); } ExpressionTreeNode Operation::Abs::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { + if (isZero(childDerivs[0])) + return ExpressionTreeNode(new Operation::Constant(0.0)); ExpressionTreeNode step(new Operation::Step(), children[0]); return ExpressionTreeNode(new Operation::Multiply(), childDerivs[0], @@ -337,9 +421,5 @@ ExpressionTreeNode Operation::Ceil::differentiate(const std::vector& children, const std::vector& childDerivs, const std::string& variable) const { - vector derivChildren; - derivChildren.push_back(children[0]); - derivChildren.push_back(childDerivs[1]); - derivChildren.push_back(childDerivs[2]); - return ExpressionTreeNode(new Operation::Select(), derivChildren); + return ExpressionTreeNode(new Operation::Select(), {children[0], childDerivs[1], childDerivs[2]}); } diff --git a/lib/colvars/lepton/src/ParsedExpression.cpp b/lib/colvars/lepton/src/ParsedExpression.cpp index fd3b091d3c..ea2cf707d6 100644 --- a/lib/colvars/lepton/src/ParsedExpression.cpp +++ b/lib/colvars/lepton/src/ParsedExpression.cpp @@ -6,7 +6,7 @@ * Biological Structures at Stanford, funded under the NIH Roadmap for * * Medical Research, grant U54 GM072970. See https://simtk.org. * * * - * Portions copyright (c) 2009 Stanford University and the Authors. * + * Portions copyright (c) 2009-2022 Stanford University and the Authors. * * Authors: Peter Eastman * * Contributors: * * * @@ -31,6 +31,7 @@ #include "lepton/ParsedExpression.h" #include "lepton/CompiledExpression.h" +#include "lepton/CompiledVectorExpression.h" #include "lepton/ExpressionProgram.h" #include "lepton/Operation.h" #include @@ -68,9 +69,16 @@ double ParsedExpression::evaluate(const ExpressionTreeNode& node, const map examples; + result.assignTags(examples); + map nodeCache; + result = precalculateConstantSubexpressions(result, nodeCache); while (true) { - ExpressionTreeNode simplified = substituteSimplerExpression(result); + examples.clear(); + result.assignTags(examples); + nodeCache.clear(); + ExpressionTreeNode simplified = substituteSimplerExpression(result, nodeCache); if (simplified == result) break; result = simplified; @@ -80,9 +88,15 @@ ParsedExpression ParsedExpression::optimize() const { ParsedExpression ParsedExpression::optimize(const map& variables) const { ExpressionTreeNode result = preevaluateVariables(getRootNode(), variables); - result = precalculateConstantSubexpressions(result); + vector examples; + result.assignTags(examples); + map nodeCache; + result = precalculateConstantSubexpressions(result, nodeCache); while (true) { - ExpressionTreeNode simplified = substituteSimplerExpression(result); + examples.clear(); + result.assignTags(examples); + nodeCache.clear(); + ExpressionTreeNode simplified = substituteSimplerExpression(result, nodeCache); if (simplified == result) break; result = simplified; @@ -104,36 +118,67 @@ ExpressionTreeNode ParsedExpression::preevaluateVariables(const ExpressionTreeNo return ExpressionTreeNode(node.getOperation().clone(), children); } -ExpressionTreeNode ParsedExpression::precalculateConstantSubexpressions(const ExpressionTreeNode& node) { +ExpressionTreeNode ParsedExpression::precalculateConstantSubexpressions(const ExpressionTreeNode& node, map& nodeCache) { + auto cached = nodeCache.find(node.tag); + if (cached != nodeCache.end()) + return cached->second; vector children(node.getChildren().size()); for (int i = 0; i < (int) children.size(); i++) - children[i] = precalculateConstantSubexpressions(node.getChildren()[i]); + children[i] = precalculateConstantSubexpressions(node.getChildren()[i], nodeCache); ExpressionTreeNode result = ExpressionTreeNode(node.getOperation().clone(), children); - if (node.getOperation().getId() == Operation::VARIABLE || node.getOperation().getId() == Operation::CUSTOM) + if (node.getOperation().getId() == Operation::VARIABLE || node.getOperation().getId() == Operation::CUSTOM) { + nodeCache[node.tag] = result; return result; + } for (int i = 0; i < (int) children.size(); i++) - if (children[i].getOperation().getId() != Operation::CONSTANT) + if (children[i].getOperation().getId() != Operation::CONSTANT) { + nodeCache[node.tag] = result; return result; - return ExpressionTreeNode(new Operation::Constant(evaluate(result, map()))); + } + result = ExpressionTreeNode(new Operation::Constant(evaluate(result, map()))); + nodeCache[node.tag] = result; + return result; } -ExpressionTreeNode ParsedExpression::substituteSimplerExpression(const ExpressionTreeNode& node) { +ExpressionTreeNode ParsedExpression::substituteSimplerExpression(const ExpressionTreeNode& node, map& nodeCache) { vector children(node.getChildren().size()); - for (int i = 0; i < (int) children.size(); i++) - children[i] = substituteSimplerExpression(node.getChildren()[i]); + for (int i = 0; i < (int) children.size(); i++) { + const ExpressionTreeNode& child = node.getChildren()[i]; + auto cached = nodeCache.find(child.tag); + if (cached == nodeCache.end()) { + children[i] = substituteSimplerExpression(child, nodeCache); + nodeCache[child.tag] = children[i]; + } + else + children[i] = cached->second; + } + + // Collect some info on constant expressions in children + bool first_const = children.size() > 0 && isConstant(children[0]); // is first child constant? + bool second_const = children.size() > 1 && isConstant(children[1]); ; // is second child constant? + double first, second; // if yes, value of first and second child + if (first_const) + first = getConstantValue(children[0]); + if (second_const) + second = getConstantValue(children[1]); + switch (node.getOperation().getId()) { case Operation::ADD: { - double first = getConstantValue(children[0]); - double second = getConstantValue(children[1]); - if (first == 0.0) // Add 0 - return children[1]; - if (second == 0.0) // Add 0 - return children[0]; - if (first == first) // Add a constant - return ExpressionTreeNode(new Operation::AddConstant(first), children[1]); - if (second == second) // Add a constant - return ExpressionTreeNode(new Operation::AddConstant(second), children[0]); + if (first_const) { + if (first == 0.0) { // Add 0 + return children[1]; + } else { // Add a constant + return ExpressionTreeNode(new Operation::AddConstant(first), children[1]); + } + } + if (second_const) { + if (second == 0.0) { // Add 0 + return children[0]; + } else { // Add a constant + return ExpressionTreeNode(new Operation::AddConstant(second), children[0]); + } + } if (children[1].getOperation().getId() == Operation::NEGATE) // a+(-b) = a-b return ExpressionTreeNode(new Operation::Subtract(), children[0], children[1].getChildren()[0]); if (children[0].getOperation().getId() == Operation::NEGATE) // (-a)+b = b-a @@ -144,34 +189,35 @@ ExpressionTreeNode ParsedExpression::substituteSimplerExpression(const Expressio { if (children[0] == children[1]) return ExpressionTreeNode(new Operation::Constant(0.0)); // Subtracting anything from itself is 0 - double first = getConstantValue(children[0]); - if (first == 0.0) // Subtract from 0 - return ExpressionTreeNode(new Operation::Negate(), children[1]); - double second = getConstantValue(children[1]); - if (second == 0.0) // Subtract 0 - return children[0]; - if (second == second) // Subtract a constant - return ExpressionTreeNode(new Operation::AddConstant(-second), children[0]); + if (first_const) { + if (first == 0.0) // Subtract from 0 + return ExpressionTreeNode(new Operation::Negate(), children[1]); + } + if (second_const) { + if (second == 0.0) { // Subtract 0 + return children[0]; + } else { // Subtract a constant + return ExpressionTreeNode(new Operation::AddConstant(-second), children[0]); + } + } if (children[1].getOperation().getId() == Operation::NEGATE) // a-(-b) = a+b return ExpressionTreeNode(new Operation::Add(), children[0], children[1].getChildren()[0]); break; } case Operation::MULTIPLY: { - double first = getConstantValue(children[0]); - double second = getConstantValue(children[1]); - if (first == 0.0 || second == 0.0) // Multiply by 0 + if ((first_const && first == 0.0) || (second_const && second == 0.0)) // Multiply by 0 return ExpressionTreeNode(new Operation::Constant(0.0)); - if (first == 1.0) // Multiply by 1 + if (first_const && first == 1.0) // Multiply by 1 return children[1]; - if (second == 1.0) // Multiply by 1 + if (second_const && second == 1.0) // Multiply by 1 return children[0]; - if (children[0].getOperation().getId() == Operation::CONSTANT) { // Multiply by a constant + if (first_const) { // Multiply by a constant if (children[1].getOperation().getId() == Operation::MULTIPLY_CONSTANT) // Combine two multiplies into a single one return ExpressionTreeNode(new Operation::MultiplyConstant(first*dynamic_cast(&children[1].getOperation())->getValue()), children[1].getChildren()[0]); return ExpressionTreeNode(new Operation::MultiplyConstant(first), children[1]); } - if (children[1].getOperation().getId() == Operation::CONSTANT) { // Multiply by a constant + if (second_const) { // Multiply by a constant if (children[0].getOperation().getId() == Operation::MULTIPLY_CONSTANT) // Combine two multiplies into a single one return ExpressionTreeNode(new Operation::MultiplyConstant(second*dynamic_cast(&children[0].getOperation())->getValue()), children[0].getChildren()[0]); return ExpressionTreeNode(new Operation::MultiplyConstant(second), children[0]); @@ -202,18 +248,16 @@ ExpressionTreeNode ParsedExpression::substituteSimplerExpression(const Expressio { if (children[0] == children[1]) return ExpressionTreeNode(new Operation::Constant(1.0)); // Dividing anything from itself is 0 - double numerator = getConstantValue(children[0]); - if (numerator == 0.0) // 0 divided by something + if (first_const && first == 0.0) // 0 divided by something return ExpressionTreeNode(new Operation::Constant(0.0)); - if (numerator == 1.0) // 1 divided by something + if (first_const && first == 1.0) // 1 divided by something return ExpressionTreeNode(new Operation::Reciprocal(), children[1]); - double denominator = getConstantValue(children[1]); - if (denominator == 1.0) // Divide by 1 + if (second_const && second == 1.0) // Divide by 1 return children[0]; - if (children[1].getOperation().getId() == Operation::CONSTANT) { + if (second_const) { if (children[0].getOperation().getId() == Operation::MULTIPLY_CONSTANT) // Combine a multiply and a divide into one multiply - return ExpressionTreeNode(new Operation::MultiplyConstant(dynamic_cast(&children[0].getOperation())->getValue()/denominator), children[0].getChildren()[0]); - return ExpressionTreeNode(new Operation::MultiplyConstant(1.0/denominator), children[0]); // Replace a divide with a multiply + return ExpressionTreeNode(new Operation::MultiplyConstant(dynamic_cast(&children[0].getOperation())->getValue()/second), children[0].getChildren()[0]); + return ExpressionTreeNode(new Operation::MultiplyConstant(1.0/second), children[0]); // Replace a divide with a multiply } if (children[0].getOperation().getId() == Operation::NEGATE && children[1].getOperation().getId() == Operation::NEGATE) // The two negations cancel return ExpressionTreeNode(new Operation::Divide(), children[0].getChildren()[0], children[1].getChildren()[0]); @@ -229,34 +273,34 @@ ExpressionTreeNode ParsedExpression::substituteSimplerExpression(const Expressio } case Operation::POWER: { - double base = getConstantValue(children[0]); - if (base == 0.0) // 0 to any power is 0 + if (first_const && first == 0.0) // 0 to any power is 0 return ExpressionTreeNode(new Operation::Constant(0.0)); - if (base == 1.0) // 1 to any power is 1 + if (first_const && first == 1.0) // 1 to any power is 1 return ExpressionTreeNode(new Operation::Constant(1.0)); - double exponent = getConstantValue(children[1]); - if (exponent == 0.0) // x^0 = 1 - return ExpressionTreeNode(new Operation::Constant(1.0)); - if (exponent == 1.0) // x^1 = x - return children[0]; - if (exponent == -1.0) // x^-1 = recip(x) - return ExpressionTreeNode(new Operation::Reciprocal(), children[0]); - if (exponent == 2.0) // x^2 = square(x) - return ExpressionTreeNode(new Operation::Square(), children[0]); - if (exponent == 3.0) // x^3 = cube(x) - return ExpressionTreeNode(new Operation::Cube(), children[0]); - if (exponent == 0.5) // x^0.5 = sqrt(x) - return ExpressionTreeNode(new Operation::Sqrt(), children[0]); - if (exponent == exponent) // Constant power - return ExpressionTreeNode(new Operation::PowerConstant(exponent), children[0]); + if (second_const) { // Constant exponent + if (second == 0.0) // x^0 = 1 + return ExpressionTreeNode(new Operation::Constant(1.0)); + if (second == 1.0) // x^1 = x + return children[0]; + if (second == -1.0) // x^-1 = recip(x) + return ExpressionTreeNode(new Operation::Reciprocal(), children[0]); + if (second == 2.0) // x^2 = square(x) + return ExpressionTreeNode(new Operation::Square(), children[0]); + if (second == 3.0) // x^3 = cube(x) + return ExpressionTreeNode(new Operation::Cube(), children[0]); + if (second == 0.5) // x^0.5 = sqrt(x) + return ExpressionTreeNode(new Operation::Sqrt(), children[0]); + // Constant power + return ExpressionTreeNode(new Operation::PowerConstant(second), children[0]); + } break; } case Operation::NEGATE: { if (children[0].getOperation().getId() == Operation::MULTIPLY_CONSTANT) // Combine a multiply and a negate into a single multiply return ExpressionTreeNode(new Operation::MultiplyConstant(-dynamic_cast(&children[0].getOperation())->getValue()), children[0].getChildren()[0]); - if (children[0].getOperation().getId() == Operation::CONSTANT) // Negate a constant - return ExpressionTreeNode(new Operation::Constant(-getConstantValue(children[0]))); + if (first_const) // Negate a constant + return ExpressionTreeNode(new Operation::Constant(-first)); if (children[0].getOperation().getId() == Operation::NEGATE) // The two negations cancel return children[0].getChildren()[0]; break; @@ -265,7 +309,7 @@ ExpressionTreeNode ParsedExpression::substituteSimplerExpression(const Expressio { if (children[0].getOperation().getId() == Operation::MULTIPLY_CONSTANT) // Combine two multiplies into a single one return ExpressionTreeNode(new Operation::MultiplyConstant(dynamic_cast(&node.getOperation())->getValue()*dynamic_cast(&children[0].getOperation())->getValue()), children[0].getChildren()[0]); - if (children[0].getOperation().getId() == Operation::CONSTANT) // Multiply two constants + if (first_const) // Multiply two constants return ExpressionTreeNode(new Operation::Constant(dynamic_cast(&node.getOperation())->getValue()*getConstantValue(children[0]))); if (children[0].getOperation().getId() == Operation::NEGATE) // Combine a multiply and a negate into a single multiply return ExpressionTreeNode(new Operation::MultiplyConstant(-dynamic_cast(&node.getOperation())->getValue()), children[0].getChildren()[0]); @@ -293,20 +337,33 @@ ExpressionTreeNode ParsedExpression::substituteSimplerExpression(const Expressio } ParsedExpression ParsedExpression::differentiate(const string& variable) const { - return differentiate(getRootNode(), variable); + vector examples; + getRootNode().assignTags(examples); + map nodeCache; + return differentiate(getRootNode(), variable, nodeCache); } -ExpressionTreeNode ParsedExpression::differentiate(const ExpressionTreeNode& node, const string& variable) { +ExpressionTreeNode ParsedExpression::differentiate(const ExpressionTreeNode& node, const string& variable, map& nodeCache) { + auto cached = nodeCache.find(node.tag); + if (cached != nodeCache.end()) + return cached->second; vector childDerivs(node.getChildren().size()); for (int i = 0; i < (int) childDerivs.size(); i++) - childDerivs[i] = differentiate(node.getChildren()[i], variable); - return node.getOperation().differentiate(node.getChildren(),childDerivs, variable); + childDerivs[i] = differentiate(node.getChildren()[i], variable, nodeCache); + ExpressionTreeNode result = node.getOperation().differentiate(node.getChildren(), childDerivs, variable); + nodeCache[node.tag] = result; + return result; +} + +bool ParsedExpression::isConstant(const ExpressionTreeNode& node) { + return (node.getOperation().getId() == Operation::CONSTANT); } double ParsedExpression::getConstantValue(const ExpressionTreeNode& node) { - if (node.getOperation().getId() == Operation::CONSTANT) - return dynamic_cast(node.getOperation()).getValue(); - return numeric_limits::quiet_NaN(); + if (node.getOperation().getId() != Operation::CONSTANT) { + throw Exception("getConstantValue called on a non-constant ExpressionNode"); + } + return dynamic_cast(node.getOperation()).getValue(); } ExpressionProgram ParsedExpression::createProgram() const { @@ -317,6 +374,10 @@ CompiledExpression ParsedExpression::createCompiledExpression() const { return CompiledExpression(*this); } +CompiledVectorExpression ParsedExpression::createCompiledVectorExpression(int width) const { + return CompiledVectorExpression(*this, width); +} + ParsedExpression ParsedExpression::renameVariables(const map& replacements) const { return ParsedExpression(renameNodeVariables(getRootNode(), replacements)); } diff --git a/lib/install_helpers.py b/lib/install_helpers.py index 7990463736..e1ebd1cde7 100644 --- a/lib/install_helpers.py +++ b/lib/install_helpers.py @@ -1,4 +1,4 @@ -import hashlib,os,subprocess,sys +import hashlib,os,subprocess # try to auto-detect the maximum number of available CPUs def get_cpus(): diff --git a/lib/kokkos/CHANGELOG.md b/lib/kokkos/CHANGELOG.md index dfbe22edde..a908507704 100644 --- a/lib/kokkos/CHANGELOG.md +++ b/lib/kokkos/CHANGELOG.md @@ -1,5 +1,21 @@ # Change Log +## [3.6.01](https://github.com/kokkos/kokkos/tree/3.6.01) (2022-05-23) +[Full Changelog](https://github.com/kokkos/kokkos/compare/3.6.00...3.6.01) + +### Bug Fixes: +- Fix Threads: Fix serial resizing scratch space (3.6.01 cherry-pick) [\#5109](https://github.com/kokkos/kokkos/pull/5109) +- Fix ScatterMin/ScatterMax to use proper atomics (3.6.01 cherry-pick) [\#5046](https://github.com/kokkos/kokkos/pull/5046) +- Fix allocating large Views [\#4907](https://github.com/kokkos/kokkos/pull/4907) +- Fix bounds errors with Kokkos::sort [\#4980](https://github.com/kokkos/kokkos/pull/4980) +- Fix HIP version when printing the configuration [\#4872](https://github.com/kokkos/kokkos/pull/4872) +- Fixed `_CUDA_ARCH__` to `__CUDA_ARCH__` for CUDA LDG [\#4893](https://github.com/kokkos/kokkos/pull/4893) +- Fixed an incorrect struct initialization [\#5028](https://github.com/kokkos/kokkos/pull/5028) +- Fix racing condition in `HIPParallelLaunch` [\#5008](https://github.com/kokkos/kokkos/pull/5008) +- Avoid deprecation warnings with `OpenMPExec::validate_partition` [\#4982](https://github.com/kokkos/kokkos/pull/4982) +- Make View self-assignment not produce double-free [\#5024](https://github.com/kokkos/kokkos/pull/5024) + + ## [3.6.00](https://github.com/kokkos/kokkos/tree/3.6.00) (2022-02-18) [Full Changelog](https://github.com/kokkos/kokkos/compare/3.5.00...3.6.00) diff --git a/lib/kokkos/CMakeLists.txt b/lib/kokkos/CMakeLists.txt index e1c6893725..b0a54118a0 100644 --- a/lib/kokkos/CMakeLists.txt +++ b/lib/kokkos/CMakeLists.txt @@ -136,7 +136,7 @@ ENDIF() set(Kokkos_VERSION_MAJOR 3) set(Kokkos_VERSION_MINOR 6) -set(Kokkos_VERSION_PATCH 00) +set(Kokkos_VERSION_PATCH 01) set(Kokkos_VERSION "${Kokkos_VERSION_MAJOR}.${Kokkos_VERSION_MINOR}.${Kokkos_VERSION_PATCH}") math(EXPR KOKKOS_VERSION "${Kokkos_VERSION_MAJOR} * 10000 + ${Kokkos_VERSION_MINOR} * 100 + ${Kokkos_VERSION_PATCH}") diff --git a/lib/kokkos/Makefile.kokkos b/lib/kokkos/Makefile.kokkos index aa5f7c98f8..755831452b 100644 --- a/lib/kokkos/Makefile.kokkos +++ b/lib/kokkos/Makefile.kokkos @@ -12,7 +12,7 @@ endif KOKKOS_VERSION_MAJOR = 3 KOKKOS_VERSION_MINOR = 6 -KOKKOS_VERSION_PATCH = 00 +KOKKOS_VERSION_PATCH = 01 KOKKOS_VERSION = $(shell echo $(KOKKOS_VERSION_MAJOR)*10000+$(KOKKOS_VERSION_MINOR)*100+$(KOKKOS_VERSION_PATCH) | bc) # Options: Cuda,HIP,SYCL,OpenMPTarget,OpenMP,Threads,Serial diff --git a/lib/kokkos/algorithms/src/Kokkos_Sort.hpp b/lib/kokkos/algorithms/src/Kokkos_Sort.hpp index cde5e6857e..ce97de9b7d 100644 --- a/lib/kokkos/algorithms/src/Kokkos_Sort.hpp +++ b/lib/kokkos/algorithms/src/Kokkos_Sort.hpp @@ -422,54 +422,34 @@ class BinSort { template struct BinOp1D { - int max_bins_; - double mul_; - typename KeyViewType::const_value_type range_; - typename KeyViewType::const_value_type min_; + int max_bins_ = {}; + double mul_ = {}; + double min_ = {}; - BinOp1D() - : max_bins_(0), - mul_(0.0), - range_(typename KeyViewType::const_value_type()), - min_(typename KeyViewType::const_value_type()) {} + BinOp1D() = default; // Construct BinOp with number of bins, minimum value and maxuimum value BinOp1D(int max_bins__, typename KeyViewType::const_value_type min, typename KeyViewType::const_value_type max) : max_bins_(max_bins__ + 1), - // Cast to int64_t to avoid possible overflow when using integer - mul_(std::is_integral::value - ? 1.0 * max_bins__ / (int64_t(max) - int64_t(min)) - : 1.0 * max_bins__ / (max - min)), - range_(max - min), - min_(min) { + // Cast to double to avoid possible overflow when using integer + mul_(static_cast(max_bins__) / + (static_cast(max) - static_cast(min))), + min_(static_cast(min)) { // For integral types the number of bins may be larger than the range // in which case we can exactly have one unique value per bin // and then don't need to sort bins. if (std::is_integral::value && - static_cast(range_) <= static_cast(max_bins__)) { + (static_cast(max) - static_cast(min)) <= + static_cast(max_bins__)) { mul_ = 1.; } } // Determine bin index from key value - template < - class ViewType, - std::enable_if_t::value, - bool> = true> + template KOKKOS_INLINE_FUNCTION int bin(ViewType& keys, const int& i) const { - return int(mul_ * (keys(i) - min_)); - } - - // Determine bin index from key value - template < - class ViewType, - std::enable_if_t::value, - bool> = true> - KOKKOS_INLINE_FUNCTION int bin(ViewType& keys, const int& i) const { - // The cast to int64_t is necessary because otherwise HIP returns the wrong - // result. - return int(mul_ * (int64_t(keys(i)) - int64_t(min_))); + return static_cast(mul_ * (static_cast(keys(i)) - min_)); } // Return maximum bin index + 1 @@ -486,10 +466,9 @@ struct BinOp1D { template struct BinOp3D { - int max_bins_[3]; - double mul_[3]; - typename KeyViewType::non_const_value_type range_[3]; - typename KeyViewType::non_const_value_type min_[3]; + int max_bins_[3] = {}; + double mul_[3] = {}; + double min_[3] = {}; BinOp3D() = default; @@ -498,15 +477,15 @@ struct BinOp3D { max_bins_[0] = max_bins__[0]; max_bins_[1] = max_bins__[1]; max_bins_[2] = max_bins__[2]; - mul_[0] = 1.0 * max_bins__[0] / (max[0] - min[0]); - mul_[1] = 1.0 * max_bins__[1] / (max[1] - min[1]); - mul_[2] = 1.0 * max_bins__[2] / (max[2] - min[2]); - range_[0] = max[0] - min[0]; - range_[1] = max[1] - min[1]; - range_[2] = max[2] - min[2]; - min_[0] = min[0]; - min_[1] = min[1]; - min_[2] = min[2]; + mul_[0] = static_cast(max_bins__[0]) / + (static_cast(max[0]) - static_cast(min[0])); + mul_[1] = static_cast(max_bins__[1]) / + (static_cast(max[1]) - static_cast(min[1])); + mul_[2] = static_cast(max_bins__[2]) / + (static_cast(max[2]) - static_cast(min[2])); + min_[0] = static_cast(min[0]); + min_[1] = static_cast(min[1]); + min_[2] = static_cast(min[2]); } template @@ -596,9 +575,9 @@ std::enable_if_t::value> sort( // TODO: figure out better max_bins then this ... int64_t max_bins = view.extent(0) / 2; if (std::is_integral::value) { - // Cast to int64_t to avoid possible overflow when using integer - int64_t const max_val = result.max_val; - int64_t const min_val = result.min_val; + // Cast to double to avoid possible overflow when using integer + auto const max_val = static_cast(result.max_val); + auto const min_val = static_cast(result.min_val); // using 10M as the cutoff for special behavior (roughly 40MB for the count // array) if ((max_val - min_val) < 10000000) { @@ -606,6 +585,10 @@ std::enable_if_t::value> sort( sort_in_bins = false; } } + if (std::is_floating_point::value) { + KOKKOS_ASSERT(std::isfinite(static_cast(result.max_val) - + static_cast(result.min_val))); + } BinSort bin_sort( view, CompType(max_bins, result.min_val, result.max_val), sort_in_bins); diff --git a/lib/kokkos/algorithms/unit_tests/TestSort.hpp b/lib/kokkos/algorithms/unit_tests/TestSort.hpp index a03847f2b2..9108731c15 100644 --- a/lib/kokkos/algorithms/unit_tests/TestSort.hpp +++ b/lib/kokkos/algorithms/unit_tests/TestSort.hpp @@ -353,6 +353,55 @@ void test_issue_1160_impl() { } } +template +void test_issue_4978_impl() { + Kokkos::View element_("element", 9); + + auto h_element = Kokkos::create_mirror_view(element_); + + h_element(0) = LLONG_MIN; + h_element(1) = 0; + h_element(2) = 3; + h_element(3) = 2; + h_element(4) = 1; + h_element(5) = 3; + h_element(6) = 6; + h_element(7) = 4; + h_element(8) = 3; + + ExecutionSpace exec; + Kokkos::deep_copy(exec, element_, h_element); + + Kokkos::sort(exec, element_); + + Kokkos::deep_copy(exec, h_element, element_); + exec.fence(); + + ASSERT_EQ(h_element(0), LLONG_MIN); + ASSERT_EQ(h_element(1), 0); + ASSERT_EQ(h_element(2), 1); + ASSERT_EQ(h_element(3), 2); + ASSERT_EQ(h_element(4), 3); + ASSERT_EQ(h_element(5), 3); + ASSERT_EQ(h_element(6), 3); + ASSERT_EQ(h_element(7), 4); + ASSERT_EQ(h_element(8), 6); +} + +template +void test_sort_integer_overflow() { + // array with two extrema in reverse order to expose integer overflow bug in + // bin calculation + T a[2] = {Kokkos::Experimental::finite_max::value, + Kokkos::Experimental::finite_min::value}; + auto vd = Kokkos::create_mirror_view_and_copy( + ExecutionSpace(), Kokkos::View(a)); + Kokkos::sort(vd, /*force using Kokkos bin sort*/ true); + auto vh = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), vd); + EXPECT_TRUE(std::is_sorted(vh.data(), vh.data() + 2)) + << "view (" << vh[0] << ", " << vh[1] << ") is not sorted"; +} + //---------------------------------------------------------------------------- template @@ -376,6 +425,11 @@ void test_issue_1160_sort() { test_issue_1160_impl(); } +template +void test_issue_4978_sort() { + test_issue_4978_impl(); +} + template void test_sort(unsigned int N) { test_1D_sort(N); @@ -385,6 +439,10 @@ void test_sort(unsigned int N) { test_dynamic_view_sort(N); #endif test_issue_1160_sort(); + test_issue_4978_sort(); + test_sort_integer_overflow(); + test_sort_integer_overflow(); + test_sort_integer_overflow(); } } // namespace Impl } // namespace Test diff --git a/lib/kokkos/containers/src/Kokkos_ScatterView.hpp b/lib/kokkos/containers/src/Kokkos_ScatterView.hpp index 024b4618a4..e4dd9531fc 100644 --- a/lib/kokkos/containers/src/Kokkos_ScatterView.hpp +++ b/lib/kokkos/containers/src/Kokkos_ScatterView.hpp @@ -369,18 +369,6 @@ struct ScatterValue(&dest, dest_old, dest_new); - success = ((dest_new - dest_old) / dest_old <= 1e-15); - } - } - KOKKOS_INLINE_FUNCTION void join(ValueType& dest, const ValueType& src) const { atomic_prod(&dest, src); @@ -440,21 +428,9 @@ struct ScatterValue src) ? src : dest_old; - dest_new = - Kokkos::atomic_compare_exchange(&dest, dest_old, dest_new); - success = ((dest_new - dest_old) / dest_old <= 1e-15); - } - } - KOKKOS_INLINE_FUNCTION void join(ValueType& dest, const ValueType& src) const { - atomic_min(dest, src); + atomic_min(&dest, src); } KOKKOS_INLINE_FUNCTION @@ -511,21 +487,9 @@ struct ScatterValue(&dest, dest_old, dest_new); - success = ((dest_new - dest_old) / dest_old <= 1e-15); - } - } - KOKKOS_INLINE_FUNCTION void join(ValueType& dest, const ValueType& src) const { - atomic_max(dest, src); + atomic_max(&dest, src); } KOKKOS_INLINE_FUNCTION diff --git a/lib/kokkos/containers/src/Kokkos_Vector.hpp b/lib/kokkos/containers/src/Kokkos_Vector.hpp index 88721bd89e..eddb878003 100644 --- a/lib/kokkos/containers/src/Kokkos_Vector.hpp +++ b/lib/kokkos/containers/src/Kokkos_Vector.hpp @@ -162,7 +162,7 @@ class vector : public DualView { } DV::sync_host(); DV::modify_host(); - if (it < begin() || it > end()) + if (std::less<>()(it, begin()) || std::less<>()(end(), it)) Kokkos::abort("Kokkos::vector::insert : invalid insert iterator"); if (count == 0) return it; ptrdiff_t start = std::distance(begin(), it); @@ -189,27 +189,21 @@ class vector : public DualView { iterator>::type insert(iterator it, InputIterator b, InputIterator e) { ptrdiff_t count = std::distance(b, e); - if (count == 0) return it; DV::sync_host(); DV::modify_host(); - if (it < begin() || it > end()) + if (std::less<>()(it, begin()) || std::less<>()(end(), it)) Kokkos::abort("Kokkos::vector::insert : invalid insert iterator"); - bool resized = false; - if ((size() == 0) && (it == begin())) { - resize(count); - it = begin(); - resized = true; - } ptrdiff_t start = std::distance(begin(), it); auto org_size = size(); - if (!resized) resize(size() + count); - it = begin() + start; + + // Note: resize(...) invalidates it; use begin() + start instead + resize(size() + count); std::copy_backward(begin() + start, begin() + org_size, begin() + org_size + count); - std::copy(b, e, it); + std::copy(b, e, begin() + start); return begin() + start; } diff --git a/lib/kokkos/containers/unit_tests/TestVector.hpp b/lib/kokkos/containers/unit_tests/TestVector.hpp index 57b92c38f8..c093c7b0c9 100644 --- a/lib/kokkos/containers/unit_tests/TestVector.hpp +++ b/lib/kokkos/containers/unit_tests/TestVector.hpp @@ -172,6 +172,23 @@ struct test_vector_insert { run_test(a); check_test(a, size); } + { test_vector_insert_into_empty(size); } + } + + void test_vector_insert_into_empty(const size_t size) { + using Vector = Kokkos::vector; + { + Vector a; + Vector b(size); + a.insert(a.begin(), b.begin(), b.end()); + ASSERT_EQ(a.size(), size); + } + + { + Vector c; + c.insert(c.begin(), size, Scalar{}); + ASSERT_EQ(c.size(), size); + } } }; diff --git a/lib/kokkos/core/src/CMakeLists.txt b/lib/kokkos/core/src/CMakeLists.txt index 88cca93f3c..793e07a841 100644 --- a/lib/kokkos/core/src/CMakeLists.txt +++ b/lib/kokkos/core/src/CMakeLists.txt @@ -8,6 +8,7 @@ KOKKOS_INCLUDE_DIRECTORIES( INSTALL (DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" DESTINATION ${KOKKOS_HEADER_DIR} + FILES_MATCHING PATTERN desul/src EXCLUDE PATTERN "*.inc" PATTERN "*.inc_*" diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp index 294be2774b..aaa9ea8ad4 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp @@ -1007,6 +1007,15 @@ void CudaSpaceInitializer::print_configuration(std::ostream &msg, } } // namespace Impl + +#ifdef KOKKOS_ENABLE_CXX14 +namespace Tools { +namespace Experimental { +constexpr DeviceType DeviceTypeTraits::id; +} +} // namespace Tools +#endif + } // namespace Kokkos #else diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp index 61563a0100..dec6ef15e1 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp @@ -139,7 +139,7 @@ struct CudaLDGFetch { template KOKKOS_INLINE_FUNCTION ValueType operator[](const iType& i) const { -#if defined(__CUDA_ARCH__) && (350 <= _CUDA_ARCH__) +#if defined(__CUDA_ARCH__) && (350 <= __CUDA_ARCH__) AliasType v = __ldg(reinterpret_cast(&m_ptr[i])); return *(reinterpret_cast(&v)); #else diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp index 4a6a3ba99e..a8a0496afe 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp @@ -132,7 +132,8 @@ void HIPInternal::print_configuration(std::ostream &s) const { s << "macro KOKKOS_ENABLE_HIP : defined" << '\n'; #if defined(HIP_VERSION) s << "macro HIP_VERSION = " << HIP_VERSION << " = version " - << HIP_VERSION / 100 << "." << HIP_VERSION % 100 << '\n'; + << HIP_VERSION_MAJOR << '.' << HIP_VERSION_MINOR << '.' << HIP_VERSION_PATCH + << '\n'; #endif for (int i = 0; i < dev_info.m_hipDevCount; ++i) { @@ -467,7 +468,6 @@ void HIPInternal::finalize() { } char *HIPInternal::get_next_driver(size_t driverTypeSize) const { - std::lock_guard const lock(m_mutexWorkArray); if (d_driverWorkArray == nullptr) { KOKKOS_IMPL_HIP_SAFE_CALL( hipHostMalloc(&d_driverWorkArray, diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp index 384b7ffd67..70b979e00a 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp @@ -490,6 +490,8 @@ struct HIPParallelLaunch< KOKKOS_ENSURE_HIP_LOCK_ARRAYS_ON_DEVICE(); + std::lock_guard const lock(hip_instance->m_mutexWorkArray); + // Invoke the driver function on the device DriverType *d_driver = reinterpret_cast( hip_instance->get_next_driver(sizeof(DriverType))); diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp index f334d93412..e9cfbf99f7 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp @@ -56,8 +56,7 @@ namespace Kokkos { #ifdef KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE namespace Impl { -__device__ __constant__ HIPLockArrays g_device_hip_lock_arrays = {nullptr, - nullptr, 0}; +__device__ __constant__ HIPLockArrays g_device_hip_lock_arrays = {nullptr, 0}; } #endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp index 6ade677fa8..776b7c6abe 100644 --- a/lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp @@ -464,6 +464,15 @@ void HIPSpaceInitializer::print_configuration(std::ostream& msg, } } // namespace Impl + +#ifdef KOKKOS_ENABLE_CXX14 +namespace Tools { +namespace Experimental { +constexpr DeviceType DeviceTypeTraits::id; +} +} // namespace Tools +#endif + } // namespace Kokkos //============================================================================== diff --git a/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp b/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp index acf2224f02..623c7da025 100644 --- a/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp +++ b/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp @@ -199,6 +199,15 @@ void HPXSpaceInitializer::print_configuration(std::ostream &msg, } } // namespace Impl + +#ifdef KOKKOS_ENABLE_CXX14 +namespace Tools { +namespace Experimental { +constexpr DeviceType DeviceTypeTraits::id; +} +} // namespace Tools +#endif + } // namespace Kokkos #else diff --git a/lib/kokkos/core/src/Kokkos_Cuda.hpp b/lib/kokkos/core/src/Kokkos_Cuda.hpp index 6305a1fa5d..0063b1cd1e 100644 --- a/lib/kokkos/core/src/Kokkos_Cuda.hpp +++ b/lib/kokkos/core/src/Kokkos_Cuda.hpp @@ -260,6 +260,7 @@ template <> struct DeviceTypeTraits { /// \brief An ID to differentiate (for example) Serial from OpenMP in Tooling static constexpr DeviceType id = DeviceType::Cuda; + static int device_id(const Cuda& exec) { return exec.cuda_device(); } }; } // namespace Experimental } // namespace Tools diff --git a/lib/kokkos/core/src/Kokkos_HIP_Space.hpp b/lib/kokkos/core/src/Kokkos_HIP_Space.hpp index 1371d21d38..68869a6074 100644 --- a/lib/kokkos/core/src/Kokkos_HIP_Space.hpp +++ b/lib/kokkos/core/src/Kokkos_HIP_Space.hpp @@ -571,6 +571,9 @@ namespace Experimental { template <> struct DeviceTypeTraits { static constexpr DeviceType id = DeviceType::HIP; + static int device_id(const Kokkos::Experimental::HIP& exec) { + return exec.hip_device(); + } }; } // namespace Experimental } // namespace Tools diff --git a/lib/kokkos/core/src/Kokkos_HPX.hpp b/lib/kokkos/core/src/Kokkos_HPX.hpp index d2ae9c0ec2..9238ca30a7 100644 --- a/lib/kokkos/core/src/Kokkos_HPX.hpp +++ b/lib/kokkos/core/src/Kokkos_HPX.hpp @@ -500,6 +500,7 @@ namespace Experimental { template <> struct DeviceTypeTraits { static constexpr DeviceType id = DeviceType::HPX; + static int device_id(const Kokkos::Experimental::HPX &) { return 0; } }; } // namespace Experimental } // namespace Tools diff --git a/lib/kokkos/core/src/Kokkos_OpenMP.hpp b/lib/kokkos/core/src/Kokkos_OpenMP.hpp index 5d76e689f2..767e5b9324 100644 --- a/lib/kokkos/core/src/Kokkos_OpenMP.hpp +++ b/lib/kokkos/core/src/Kokkos_OpenMP.hpp @@ -179,6 +179,7 @@ namespace Experimental { template <> struct DeviceTypeTraits { static constexpr DeviceType id = DeviceType::OpenMP; + static int device_id(const OpenMP&) { return 0; } }; } // namespace Experimental } // namespace Tools diff --git a/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp b/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp index f394f32408..373dc3d9c7 100644 --- a/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp +++ b/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp @@ -130,6 +130,9 @@ template <> struct DeviceTypeTraits<::Kokkos::Experimental::OpenMPTarget> { static constexpr DeviceType id = ::Kokkos::Profiling::Experimental::DeviceType::OpenMPTarget; + static int device_id(const Kokkos::Experimental::OpenMPTarget&) { + return omp_get_default_device(); + } }; } // namespace Experimental } // namespace Tools diff --git a/lib/kokkos/core/src/Kokkos_SYCL.hpp b/lib/kokkos/core/src/Kokkos_SYCL.hpp index 02095ff7b3..e29093db32 100644 --- a/lib/kokkos/core/src/Kokkos_SYCL.hpp +++ b/lib/kokkos/core/src/Kokkos_SYCL.hpp @@ -182,6 +182,9 @@ template <> struct DeviceTypeTraits { /// \brief An ID to differentiate (for example) Serial from OpenMP in Tooling static constexpr DeviceType id = DeviceType::SYCL; + static int device_id(const Kokkos::Experimental::SYCL& exec) { + return exec.sycl_device(); + } }; } // namespace Experimental } // namespace Tools diff --git a/lib/kokkos/core/src/Kokkos_Serial.hpp b/lib/kokkos/core/src/Kokkos_Serial.hpp index 9aada48bf6..b2e524c374 100644 --- a/lib/kokkos/core/src/Kokkos_Serial.hpp +++ b/lib/kokkos/core/src/Kokkos_Serial.hpp @@ -226,6 +226,7 @@ namespace Experimental { template <> struct DeviceTypeTraits { static constexpr DeviceType id = DeviceType::Serial; + static int device_id(const Serial&) { return 0; } }; } // namespace Experimental } // namespace Tools diff --git a/lib/kokkos/core/src/Kokkos_Threads.hpp b/lib/kokkos/core/src/Kokkos_Threads.hpp index 45a2d0e326..5879209f12 100644 --- a/lib/kokkos/core/src/Kokkos_Threads.hpp +++ b/lib/kokkos/core/src/Kokkos_Threads.hpp @@ -175,6 +175,7 @@ namespace Experimental { template <> struct DeviceTypeTraits { static constexpr DeviceType id = DeviceType::Threads; + static int device_id(const Threads&) { return 0; } }; } // namespace Experimental } // namespace Tools diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp index d2283d456f..66dbbacce9 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp @@ -67,8 +67,9 @@ __thread int t_openmp_hardware_id = 0; __thread Impl::OpenMPExec *t_openmp_instance = nullptr; #ifdef KOKKOS_ENABLE_DEPRECATED_CODE_3 -void OpenMPExec::validate_partition(const int nthreads, int &num_partitions, - int &partition_size) { +void OpenMPExec::validate_partition_impl(const int nthreads, + int &num_partitions, + int &partition_size) { if (nthreads == 1) { num_partitions = 1; partition_size = 1; @@ -506,6 +507,15 @@ void OpenMPSpaceInitializer::print_configuration(std::ostream &msg, } } // namespace Impl + +#ifdef KOKKOS_ENABLE_CXX14 +namespace Tools { +namespace Experimental { +constexpr DeviceType DeviceTypeTraits::id; +} +} // namespace Tools +#endif + } // namespace Kokkos #else diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp index 2f647af77e..ede24d1094 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp @@ -93,7 +93,11 @@ class OpenMPExec { #ifdef KOKKOS_ENABLE_DEPRECATED_CODE_3 KOKKOS_DEPRECATED static void validate_partition(const int nthreads, int& num_partitions, - int& partition_size); + int& partition_size) { + validate_partition_impl(nthreads, num_partitions, partition_size); + } + static void validate_partition_impl(const int nthreads, int& num_partitions, + int& partition_size); #endif private: @@ -179,8 +183,8 @@ KOKKOS_DEPRECATED void OpenMP::partition_master(F const& f, int num_partitions, Exec* prev_instance = Impl::t_openmp_instance; - Exec::validate_partition(prev_instance->m_pool_size, num_partitions, - partition_size); + Exec::validate_partition_impl(prev_instance->m_pool_size, num_partitions, + partition_size); OpenMP::memory_space space; diff --git a/lib/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.hpp b/lib/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.hpp index 907e4e9efe..45aacd7258 100644 --- a/lib/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.hpp +++ b/lib/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.hpp @@ -72,7 +72,7 @@ class SYCLInternal { bool force_shrink = false); uint32_t impl_get_instance_id() const; - int m_syclDev = -1; + int m_syclDev = 0; size_t m_maxWorkgroupSize = 0; uint32_t m_maxConcurrency = 0; diff --git a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp index 8a7c49871b..9682564ee0 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp +++ b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp @@ -399,27 +399,68 @@ bool ThreadsExec::wake() { //---------------------------------------------------------------------------- +void ThreadsExec::execute_resize_scratch_in_serial() { + const unsigned begin = s_threads_process.m_pool_base ? 1 : 0; + + auto deallocate_scratch_memory = [](ThreadsExec &exec) { + if (exec.m_scratch) { + using Record = + Kokkos::Impl::SharedAllocationRecord; + Record *const r = Record::get_record(exec.m_scratch); + exec.m_scratch = nullptr; + Record::decrement(r); + } + }; + if (s_threads_process.m_pool_base) { + for (unsigned i = s_thread_pool_size[0]; begin < i;) { + deallocate_scratch_memory(*s_threads_exec[--i]); + } + } + + s_current_function = &first_touch_allocate_thread_private_scratch; + s_current_function_arg = &s_threads_process; + + // Make sure function and arguments are written before activating threads. + memory_fence(); + + for (unsigned i = s_thread_pool_size[0]; begin < i;) { + ThreadsExec &th = *s_threads_exec[--i]; + + th.m_pool_state = ThreadsExec::Active; + + wait_yield(th.m_pool_state, ThreadsExec::Active); + } + + if (s_threads_process.m_pool_base) { + deallocate_scratch_memory(s_threads_process); + s_threads_process.m_pool_state = ThreadsExec::Active; + first_touch_allocate_thread_private_scratch(s_threads_process, nullptr); + s_threads_process.m_pool_state = ThreadsExec::Inactive; + } + + s_current_function_arg = nullptr; + s_current_function = nullptr; + + // Make sure function and arguments are cleared before proceeding. + memory_fence(); +} + +//---------------------------------------------------------------------------- + void *ThreadsExec::root_reduce_scratch() { return s_threads_process.reduce_memory(); } -void ThreadsExec::execute_resize_scratch(ThreadsExec &exec, const void *) { - using Record = Kokkos::Impl::SharedAllocationRecord; - - if (exec.m_scratch) { - Record *const r = Record::get_record(exec.m_scratch); - - exec.m_scratch = nullptr; - - Record::decrement(r); - } - +void ThreadsExec::first_touch_allocate_thread_private_scratch(ThreadsExec &exec, + const void *) { exec.m_scratch_reduce_end = s_threads_process.m_scratch_reduce_end; exec.m_scratch_thread_end = s_threads_process.m_scratch_thread_end; if (s_threads_process.m_scratch_thread_end) { // Allocate tracked memory: { + using Record = + Kokkos::Impl::SharedAllocationRecord; Record *const r = Record::allocate(Kokkos::HostSpace(), "Kokkos::thread_scratch", s_threads_process.m_scratch_thread_end); @@ -461,7 +502,7 @@ void *ThreadsExec::resize_scratch(size_t reduce_size, size_t thread_size) { s_threads_process.m_scratch_reduce_end = reduce_size; s_threads_process.m_scratch_thread_end = reduce_size + thread_size; - execute_resize_scratch(s_threads_process, nullptr); + execute_resize_scratch_in_serial(); s_threads_process.m_scratch = s_threads_exec[0]->m_scratch; } @@ -845,6 +886,15 @@ void ThreadsSpaceInitializer::print_configuration(std::ostream &msg, } } // namespace Impl + +#ifdef KOKKOS_ENABLE_CXX14 +namespace Tools { +namespace Experimental { +constexpr DeviceType DeviceTypeTraits::id; +} +} // namespace Tools +#endif + } /* namespace Kokkos */ //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- diff --git a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp index 561b1ce292..d17f417bbc 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp +++ b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp @@ -123,12 +123,15 @@ class ThreadsExec { static void global_unlock(); static void spawn(); - static void execute_resize_scratch(ThreadsExec &, const void *); + static void first_touch_allocate_thread_private_scratch(ThreadsExec &, + const void *); static void execute_sleep(ThreadsExec &, const void *); ThreadsExec(const ThreadsExec &); ThreadsExec &operator=(const ThreadsExec &); + static void execute_resize_scratch_in_serial(); + public: KOKKOS_INLINE_FUNCTION int pool_size() const { return m_pool_size; } KOKKOS_INLINE_FUNCTION int pool_rank() const { return m_pool_rank; } diff --git a/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp b/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp index 4e0e81405f..d526682056 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp @@ -118,11 +118,14 @@ template constexpr uint32_t device_id_root() { constexpr auto device_id = static_cast(DeviceTypeTraits::id); - return (device_id << num_instance_bits); + return (device_id << (num_instance_bits + num_device_bits)); } template inline uint32_t device_id(ExecutionSpace const& space) noexcept { - return device_id_root() + space.impl_instance_id(); + return device_id_root() + + (DeviceTypeTraits::device_id(space) + << num_instance_bits) + + space.impl_instance_id(); } } // namespace Experimental } // namespace Tools diff --git a/lib/kokkos/core/src/impl/Kokkos_Serial.cpp b/lib/kokkos/core/src/impl/Kokkos_Serial.cpp index c49e838d8f..e5917eb59d 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Serial.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_Serial.cpp @@ -233,6 +233,15 @@ void SerialSpaceInitializer::print_configuration(std::ostream& msg, } } // namespace Impl + +#ifdef KOKKOS_ENABLE_CXX14 +namespace Tools { +namespace Experimental { +constexpr DeviceType DeviceTypeTraits::id; +} +} // namespace Tools +#endif + } // namespace Kokkos #else diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp index 09f7af0918..f606a39839 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp @@ -1005,15 +1005,15 @@ struct ViewOffset< /* Cardinality of the domain index space */ KOKKOS_INLINE_FUNCTION constexpr size_type size() const { - return m_dim.N0 * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * m_dim.N5 * - m_dim.N6 * m_dim.N7; + return size_type(m_dim.N0) * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * + m_dim.N5 * m_dim.N6 * m_dim.N7; } /* Span of the range space */ KOKKOS_INLINE_FUNCTION constexpr size_type span() const { - return m_dim.N0 * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * m_dim.N5 * - m_dim.N6 * m_dim.N7; + return size_type(m_dim.N0) * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * + m_dim.N5 * m_dim.N6 * m_dim.N7; } KOKKOS_INLINE_FUNCTION constexpr bool span_is_contiguous() const { @@ -1026,23 +1026,24 @@ struct ViewOffset< return m_dim.N0; } KOKKOS_INLINE_FUNCTION constexpr size_type stride_2() const { - return m_dim.N0 * m_dim.N1; + return size_type(m_dim.N0) * m_dim.N1; } KOKKOS_INLINE_FUNCTION constexpr size_type stride_3() const { - return m_dim.N0 * m_dim.N1 * m_dim.N2; + return size_type(m_dim.N0) * m_dim.N1 * m_dim.N2; } KOKKOS_INLINE_FUNCTION constexpr size_type stride_4() const { - return m_dim.N0 * m_dim.N1 * m_dim.N2 * m_dim.N3; + return size_type(m_dim.N0) * m_dim.N1 * m_dim.N2 * m_dim.N3; } KOKKOS_INLINE_FUNCTION constexpr size_type stride_5() const { - return m_dim.N0 * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4; + return size_type(m_dim.N0) * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4; } KOKKOS_INLINE_FUNCTION constexpr size_type stride_6() const { - return m_dim.N0 * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * m_dim.N5; + return size_type(m_dim.N0) * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * + m_dim.N5; } KOKKOS_INLINE_FUNCTION constexpr size_type stride_7() const { - return m_dim.N0 * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * m_dim.N5 * - m_dim.N6; + return size_type(m_dim.N0) * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * + m_dim.N5 * m_dim.N6; } // Stride with [ rank ] value is the total length @@ -1288,8 +1289,8 @@ struct ViewOffset< /* Cardinality of the domain index space */ KOKKOS_INLINE_FUNCTION constexpr size_type size() const { - return m_dim.N0 * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * m_dim.N5 * - m_dim.N6 * m_dim.N7; + return size_type(m_dim.N0) * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * + m_dim.N5 * m_dim.N6 * m_dim.N7; } /* Span of the range space */ @@ -1633,15 +1634,15 @@ struct ViewOffset< /* Cardinality of the domain index space */ KOKKOS_INLINE_FUNCTION constexpr size_type size() const { - return m_dim.N0 * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * m_dim.N5 * - m_dim.N6 * m_dim.N7; + return size_type(m_dim.N0) * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * + m_dim.N5 * m_dim.N6 * m_dim.N7; } /* Span of the range space */ KOKKOS_INLINE_FUNCTION constexpr size_type span() const { - return m_dim.N0 * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * m_dim.N5 * - m_dim.N6 * m_dim.N7; + return size_type(m_dim.N0) * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * + m_dim.N5 * m_dim.N6 * m_dim.N7; } KOKKOS_INLINE_FUNCTION constexpr bool span_is_contiguous() const { @@ -1916,14 +1917,14 @@ struct ViewOffset< /* Cardinality of the domain index space */ KOKKOS_INLINE_FUNCTION constexpr size_type size() const { - return m_dim.N0 * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * m_dim.N5 * - m_dim.N6 * m_dim.N7; + return size_type(m_dim.N0) * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * + m_dim.N5 * m_dim.N6 * m_dim.N7; } /* Span of the range space */ KOKKOS_INLINE_FUNCTION constexpr size_type span() const { - return size() > 0 ? m_dim.N0 * m_stride : 0; + return size() > 0 ? size_type(m_dim.N0) * m_stride : 0; } KOKKOS_INLINE_FUNCTION constexpr bool span_is_contiguous() const { @@ -2066,27 +2067,29 @@ struct ViewOffset< stride(/* 2 <= rank */ m_dim.N1 * (dimension_type::rank == 2 - ? 1 + ? size_t(1) : m_dim.N2 * (dimension_type::rank == 3 - ? 1 + ? size_t(1) : m_dim.N3 * (dimension_type::rank == 4 - ? 1 + ? size_t(1) : m_dim.N4 * (dimension_type::rank == 5 - ? 1 + ? size_t(1) : m_dim.N5 * (dimension_type:: rank == 6 - ? 1 + ? size_t( + 1) : m_dim.N6 * (dimension_type:: rank == 7 - ? 1 + ? size_t( + 1) : m_dim .N7)))))))) { } @@ -2447,8 +2450,8 @@ struct ViewOffset { constexpr size_type size() const { return dimension_type::rank == 0 ? 1 - : m_dim.N0 * m_dim.N1 * m_dim.N2 * m_dim.N3 * m_dim.N4 * - m_dim.N5 * m_dim.N6 * m_dim.N7; + : size_type(m_dim.N0) * m_dim.N1 * m_dim.N2 * m_dim.N3 * + m_dim.N4 * m_dim.N5 * m_dim.N6 * m_dim.N7; } private: diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewTracker.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewTracker.hpp index fe3651886b..972b1b6d9a 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewTracker.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewTracker.hpp @@ -91,6 +91,7 @@ struct ViewTracker { template KOKKOS_INLINE_FUNCTION void assign(const View& vt) noexcept { + if (this == reinterpret_cast(&vt.m_track)) return; KOKKOS_IF_ON_HOST(( if (view_traits::is_managed && Kokkos::Impl::SharedAllocationRecord< void, void>::tracking_enabled()) { @@ -102,6 +103,7 @@ struct ViewTracker { KOKKOS_INLINE_FUNCTION ViewTracker& operator=( const ViewTracker& rhs) noexcept { + if (this == &rhs) return *this; KOKKOS_IF_ON_HOST(( if (view_traits::is_managed && Kokkos::Impl::SharedAllocationRecord< void, void>::tracking_enabled()) { diff --git a/lib/kokkos/core/unit_test/TestViewAPI.hpp b/lib/kokkos/core/unit_test/TestViewAPI.hpp index 21602be086..83efae6170 100644 --- a/lib/kokkos/core/unit_test/TestViewAPI.hpp +++ b/lib/kokkos/core/unit_test/TestViewAPI.hpp @@ -1087,6 +1087,20 @@ class TestViewAPI { dView4_unmanaged unmanaged_dx = dx; ASSERT_EQ(dx.use_count(), 1); + // Test self assignment +#if defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wself-assign-overloaded" +#endif + dx = dx; // copy-assignment operator +#if defined(__clang__) +#pragma GCC diagnostic pop +#endif + ASSERT_EQ(dx.use_count(), 1); + dx = reinterpret_cast( + dx); // conversion assignment operator + ASSERT_EQ(dx.use_count(), 1); + dView4_unmanaged unmanaged_from_ptr_dx = dView4_unmanaged( dx.data(), dx.extent(0), dx.extent(1), dx.extent(2), dx.extent(3)); diff --git a/lib/kokkos/core/unit_test/TestViewAPI_e.hpp b/lib/kokkos/core/unit_test/TestViewAPI_e.hpp index d4f484a530..d1d38022a7 100644 --- a/lib/kokkos/core/unit_test/TestViewAPI_e.hpp +++ b/lib/kokkos/core/unit_test/TestViewAPI_e.hpp @@ -240,6 +240,35 @@ struct TestViewOverloadResolution { TEST(TEST_CATEGORY, view_overload_resolution) { TestViewOverloadResolution::test_function_overload(); } + +template +struct TestViewAllocationLargeRank { + using ViewType = Kokkos::View; + + KOKKOS_FUNCTION void operator()(int) const { + size_t idx = v.extent(0) - 1; + auto& lhs = v(idx, idx, idx, idx, idx, idx, idx, idx); + lhs = 42; // This is where it segfaulted + } + + ViewType v; +}; + +TEST(TEST_CATEGORY, view_allocation_large_rank) { + using ExecutionSpace = typename TEST_EXECSPACE::execution_space; + using MemorySpace = typename TEST_EXECSPACE::memory_space; + constexpr int dim = 16; + using FunctorType = TestViewAllocationLargeRank; + typename FunctorType::ViewType v("v", dim, dim, dim, dim, dim, dim, dim, dim); + + Kokkos::parallel_for(Kokkos::RangePolicy(0, 1), + FunctorType{v}); + typename FunctorType::ViewType v_single(v.data() + v.size() - 1, 1, 1, 1, 1, + 1, 1, 1, 1); + auto result = + Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace{}, v_single); + ASSERT_EQ(result(0, 0, 0, 0, 0, 0, 0, 0), 42); +} } // namespace Test #include diff --git a/lib/kokkos/core/unit_test/tools/TestEventCorrectness.hpp b/lib/kokkos/core/unit_test/tools/TestEventCorrectness.hpp index 08863232ed..bb1d3156f5 100644 --- a/lib/kokkos/core/unit_test/tools/TestEventCorrectness.hpp +++ b/lib/kokkos/core/unit_test/tools/TestEventCorrectness.hpp @@ -238,13 +238,10 @@ TEST(kokkosp, test_id_gen) { using Kokkos::Tools::Experimental::DeviceTypeTraits; test_wrapper([&]() { Kokkos::DefaultExecutionSpace ex; - auto id = device_id(ex); - auto id_ref = identifier_from_devid(id); - auto success = (id_ref.instance_id == ex.impl_instance_id()) && - (id_ref.device_id == - static_cast( - DeviceTypeTraits::id)); - ASSERT_TRUE(success); + auto id = device_id(ex); + auto id_ref = identifier_from_devid(id); + ASSERT_EQ(DeviceTypeTraits::id, id_ref.type); + ASSERT_EQ(id_ref.instance_id, ex.impl_instance_id()); }); } @@ -253,6 +250,7 @@ TEST(kokkosp, test_id_gen) { */ TEST(kokkosp, test_kernel_sequence) { test_wrapper([&]() { + Kokkos::DefaultExecutionSpace ex; auto root = Kokkos::Tools::Experimental::device_id_root< Kokkos::DefaultExecutionSpace>(); std::vector expected{ @@ -260,11 +258,10 @@ TEST(kokkosp, test_kernel_sequence) { {"named_instance", FencePayload::distinguishable_devices::no, root + num_instances}, {"test_kernel", FencePayload::distinguishable_devices::no, - root + num_instances} + Kokkos::Tools::Experimental::device_id(ex)} }; expect_fence_events(expected, [=]() { - Kokkos::DefaultExecutionSpace ex; TestFunctor tf; ex.fence("named_instance"); Kokkos::parallel_for( diff --git a/lib/kokkos/master_history.txt b/lib/kokkos/master_history.txt index e174b47f67..41c755a8a8 100644 --- a/lib/kokkos/master_history.txt +++ b/lib/kokkos/master_history.txt @@ -27,3 +27,4 @@ tag: 3.4.00 date: 04:26:2021 master: 1fb0c284 release: 5d7738d6 tag: 3.4.01 date: 05:20:2021 master: 4b97a22f release: 410b15c8 tag: 3.5.00 date: 11:19:2021 master: c28a8b03 release: 21b879e4 tag: 3.6.00 date: 04:14:2022 master: 2834f94a release: 6ea708ff +tag: 3.6.01 date: 06:16:2022 master: b52f8c83 release: afe9b404 diff --git a/lib/latte/Install.py b/lib/latte/Install.py index 94879ff4a0..2e8f9bee8d 100644 --- a/lib/latte/Install.py +++ b/lib/latte/Install.py @@ -71,7 +71,8 @@ buildflag = args.build pathflag = args.path is not None version = args.version suffixflag = args.machine is not None -suffix = args.machine +if suffixflag: + suffix = args.machine if pathflag: lattedir = args.path @@ -132,8 +133,6 @@ os.symlink(os.path.join(lattedir, 'src', 'latte_c_bind.o'), 'filelink.o') # copy Makefile.lammps.suffix to Makefile.lammps if suffixflag or not os.path.exists("Makefile.lammps"): - if suffix is None: - suffix = 'gfortran' print("Creating Makefile.lammps") if os.path.exists("Makefile.lammps.%s" % suffix): shutil.copyfile("Makefile.lammps.%s" % suffix, 'Makefile.lammps') diff --git a/lib/mdi/Install.py b/lib/mdi/Install.py index a439da34d2..5452853b82 100644 --- a/lib/mdi/Install.py +++ b/lib/mdi/Install.py @@ -34,12 +34,12 @@ make lib-meam args="-m ifort" # build MEAM lib with custom Makefile.ifort (usi # settings -version = "1.3.2" +version = "1.4.1" url = "https://github.com/MolSSI-MDI/MDI_Library/archive/v%s.tar.gz" % version # known checksums for different MDI versions. used to validate the download. checksums = { \ - '1.3.2' : '836f5da400d8cff0f0e4435640f9454f', \ + '1.4.1' : 'f9505fccd4c79301a619f6452dad4ad9', \ } # print error message or help @@ -177,7 +177,7 @@ try: except: n_cpus = 1 -print("Building lib%s.so ..." % lib) +print("Building lib%s.a ..." % lib) cmd = "make -f Makefile.auto clean; make -f Makefile.auto -j%d" % n_cpus txt = subprocess.check_output(cmd,shell=True,stderr=subprocess.STDOUT) print(txt.decode('UTF-8')) @@ -201,10 +201,10 @@ makefile_lammps.write(str(rpath_option) + "\n") makefile_lammps.close() -shared_files = glob.glob( os.path.join( homepath, "liblink", "lib%s.so*" % lib) ) +shared_files = glob.glob( os.path.join( homepath, "liblink", "lib%s.a" % lib) ) if len(shared_files) > 0: print("Build was successful") else: - error("Build of lib/%s/lib%s.so was NOT successful" % (lib,lib)) + error("Build of lib/%s/lib%s.a was NOT successful" % (lib,lib)) if has_extramake and not os.path.exists("Makefile.lammps"): print("lib/%s/Makefile.lammps was NOT created" % lib) diff --git a/lib/mdi/Makefile.g++ b/lib/mdi/Makefile.g++ deleted file mode 100644 index 15cc9c3a3b..0000000000 --- a/lib/mdi/Makefile.g++ +++ /dev/null @@ -1,18 +0,0 @@ -SHELL = /bin/sh - -# which file will be copied to Makefile.lammps - -EXTRAMAKE = Makefile.lammps.empty - -# ------ MAKE PROCEDURE ------ - -lib: $(OBJ) - mkdir -p build - cd build; cmake -Dlibtype=SHARED -Dlanguage=CXX -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ ../MDI_Library; make - @cp $(EXTRAMAKE) Makefile.lammps - -# ------ CLEAN ------ - -clean: - -rm *.o *.h $(LIB) - -rm -r build diff --git a/lib/mdi/Makefile.gcc b/lib/mdi/Makefile.gcc index ef8a96f5ad..3653f77a2f 100644 --- a/lib/mdi/Makefile.gcc +++ b/lib/mdi/Makefile.gcc @@ -8,7 +8,7 @@ EXTRAMAKE = Makefile.lammps.empty lib: $(OBJ) mkdir -p build - cd build; cmake -Dlibtype=SHARED -Dlanguage=C -D CMAKE_C_COMPILER=gcc ../MDI_Library; make + cd build && cmake -D libtype=STATIC -D language=C -D CMAKE_POSITION_INDEPENDENT_CODE=yes -D mpi=ON -D plugins=ON -D python_plugins=ON -D CMAKE_C_COMPILER=gcc ../MDI_Library && make @cp $(EXTRAMAKE) Makefile.lammps # ------ CLEAN ------ diff --git a/lib/mdi/Makefile.icc b/lib/mdi/Makefile.icc index d70ff28f97..615ebf9070 100644 --- a/lib/mdi/Makefile.icc +++ b/lib/mdi/Makefile.icc @@ -8,7 +8,7 @@ EXTRAMAKE = Makefile.lammps.empty lib: $(OBJ) mkdir -p build - cd build; cmake -Dlibtype=SHARED -Dlanguage=C -D CMAKE_C_COMPILER=icc -D CMAKE_CXX_COMPILER=icc ../MDI_Library; make + cd build && cmake -D libtype=STATIC -D language=C -D CMAKE_POSITION_INDEPENDENT_CODE=yes -D mpi=ON -D plugins=ON -D python_plugins=ON -D CMAKE_C_COMPILER=icc ../MDI_Library && make @cp $(EXTRAMAKE) Makefile.lammps # ------ CLEAN ------ diff --git a/lib/mdi/Makefile.lammps.empty b/lib/mdi/Makefile.lammps.empty index 3aabe162d2..01c8fe0b70 100644 --- a/lib/mdi/Makefile.lammps.empty +++ b/lib/mdi/Makefile.lammps.empty @@ -1,5 +1,7 @@ # Settings that the LAMMPS build will import when this package library is used -mdi_SYSINC = -mdi_SYSLIB = -mdi_SYSPATH = \ No newline at end of file +mdi_python_SYSLIB = $(shell which python3-config > /dev/null 2>&1 && python3-config --ldflags --embed > /dev/null 2>&1 && python3-config --ldflags --embed || (which python3-config > /dev/null 2>&1 && python3-config --ldflags || :) ) + +mdi_SYSINC = +mdi_SYSLIB = $(mdi_python_SYSLIB) +mdi_SYSPATH = diff --git a/lib/mdi/Makefile.mpi b/lib/mdi/Makefile.mpi index cff60f5e0b..4274f3e0e8 100644 --- a/lib/mdi/Makefile.mpi +++ b/lib/mdi/Makefile.mpi @@ -8,7 +8,7 @@ EXTRAMAKE = Makefile.lammps.empty lib: $(OBJ) mkdir -p build - cd build; cmake -Dlibtype=SHARED -Dlanguage=CXX -D CMAKE_C_COMPILER=mpicc -D CMAKE_CXX_COMPILER=mpicxx ../MDI_Library; make + cd build && cmake -D libtype=STATIC -D language=C -D CMAKE_POSITION_INDEPENDENT_CODE=yes -D mpi=ON -D plugins=ON -D python_plugins=ON -D CMAKE_C_COMPILER=mpicc ../MDI_Library && make @cp $(EXTRAMAKE) Makefile.lammps # ------ CLEAN ------ diff --git a/lib/pace/Install.py b/lib/pace/Install.py index c59c249657..790acd4cf4 100644 --- a/lib/pace/Install.py +++ b/lib/pace/Install.py @@ -15,7 +15,7 @@ from install_helpers import fullpath, geturl, checkmd5sum # settings thisdir = fullpath('.') -version = 'v.2021.10.25.fix' +version = 'v.2021.10.25.fix2' # known checksums for different PACE versions. used to validate the download. checksums = { \ @@ -23,7 +23,8 @@ checksums = { \ 'v.2021.4.9' : '4db54962fbd6adcf8c18d46e1798ceb5', 'v.2021.9.28' : 'f98363bb98adc7295ea63974738c2a1b', 'v.2021.10.25' : 'a2ac3315c41a1a4a5c912bcb1bc9c5cc', - 'v.2021.10.25.fix': 'e0572de57039d4afedefb25707b6ceae' + 'v.2021.10.25.fix': 'e0572de57039d4afedefb25707b6ceae', + 'v.2021.10.25.fix2': '32394d799bc282bb57696c78c456e64f' } diff --git a/python/install.py b/python/install.py index a71a601c42..591e8525dc 100644 --- a/python/install.py +++ b/python/install.py @@ -11,7 +11,7 @@ independently and used to build the wheel without installing it. """ from __future__ import print_function -import sys,os,shutil,time,glob,subprocess +import sys,os,shutil,glob,subprocess from argparse import ArgumentParser parser = ArgumentParser(prog='install.py', @@ -23,6 +23,8 @@ parser.add_argument("-l", "--lib", required=True, help="path to the compiled LAMMPS shared library") parser.add_argument("-n", "--noinstall", action="store_true", default=False, help="only build a binary wheel. Don't attempt to install it") +parser.add_argument("-w", "--wheeldir", required=False, + help="path to a directory where the created wheel will be stored") args = parser.parse_args() @@ -30,7 +32,7 @@ args = parser.parse_args() if args.package: if not os.path.exists(args.package): - print( "ERROR: LAMMPS package %s does not exist" % args.package) + print("ERROR: LAMMPS package %s does not exist" % args.package) parser.print_help() sys.exit(1) else: @@ -38,12 +40,20 @@ if args.package: if args.lib: if not os.path.exists(args.lib): - print( "ERROR: LAMMPS shared library %s does not exist" % args.lib) + print("ERROR: LAMMPS shared library %s does not exist" % args.lib) parser.print_help() sys.exit(1) else: args.lib = os.path.abspath(args.lib) +if args.wheeldir: + if not os.path.exists(args.wheeldir): + print("ERROR: directory %s to store the wheel does not exist" % args.wheeldir) + parser.print_help() + sys.exit(1) + else: + args.wheeldir = os.path.abspath(args.wheeldir) + # we need to switch to the folder of the python package olddir = os.path.abspath('.') os.chdir(os.path.dirname(args.package)) @@ -62,10 +72,10 @@ shutil.copy(args.lib,'lammps') # create a virtual environment for building the wheel shutil.rmtree('buildwheel',True) try: - txt = subprocess.check_output([sys.executable, '-m', 'virtualenv', 'buildwheel', '-p', sys.executable], stderr=subprocess.STDOUT, shell=False) + txt = subprocess.check_output([sys.executable, '-m', 'venv', 'buildwheel'], stderr=subprocess.STDOUT, shell=False) print(txt.decode('UTF-8')) except subprocess.CalledProcessError as err: - sys.exit("Failed to create a virtualenv: {0}".format(err.output.decode('UTF-8'))) + sys.exit("Failed to create a virtual environment: {0}".format(err.output.decode('UTF-8'))) # now run the commands to build the wheel. those must be in a separate script # and run in subprocess, since this will use the virtual environment and @@ -80,10 +90,18 @@ os.remove(os.path.join('lammps',os.path.basename(args.lib))) # stop here if we were asked not to install the wheel we created if args.noinstall: - exit(0) + if args.wheeldir: + for wheel in glob.glob('lammps-*.whl'): + shutil.copy(wheel, args.wheeldir) + os.remove(wheel) + exit(0) # install the wheel with pip. first try to install in the default environment. # that will be a virtual environment, if active, or the system folder. +# if in a virtual environment, we must not use the python executable +# that is running this script (configured by cmake), but use "python" +# from the regular system path. The user may have changed to the virtual +# environment *after* running cmake. # recent versions of pip will automatically drop to use the user folder # in case the system folder is not writable. @@ -93,21 +111,35 @@ if args.noinstall: # must be uninstalled manually. We must not ignore this and drop # back to install into a (forced) user folder. -print("Installing wheel") +if "VIRTUAL_ENV" in os.environ: + print("Installing wheel into virtual environment") + py_exe = 'python' +else: + print("Installing wheel into system site-packages folder") + py_exe = sys.executable + for wheel in glob.glob('lammps-*.whl'): try: - txt = subprocess.check_output([sys.executable, '-m', 'pip', 'install', '--force-reinstall', wheel], stderr=subprocess.STDOUT, shell=False) + txt = subprocess.check_output([py_exe, '-m', 'pip', 'install', '--force-reinstall', wheel], stderr=subprocess.STDOUT, shell=False) print(txt.decode('UTF-8')) + if args.wheeldir: + shutil.copy(wheel, args.wheeldir) + else: + shutil.copy(wheel, olddir) + os.remove(wheel) continue except subprocess.CalledProcessError as err: errmsg = err.output.decode('UTF-8') if errmsg.find("distutils installed"): sys.exit(errmsg + "You need to uninstall the LAMMPS python module manually first.\n") try: - print('Installing wheel into standard site-packages folder failed. Trying user folder now') + print('Installing wheel into system site-packages folder failed. Trying user folder now') txt = subprocess.check_output([sys.executable, '-m', 'pip', 'install', '--user', '--force-reinstall', wheel], stderr=subprocess.STDOUT, shell=False) print(txt.decode('UTF-8')) + if args.wheeldir: + shutil.copy(wheel, args.wheeldir) + else: + shutil.copy(wheel, olddir) + os.remove(wheel) except: sys.exit('Failed to install wheel ' + wheel) - shutil.copy(wheel, olddir) - os.remove(wheel) diff --git a/python/lammps/core.py b/python/lammps/core.py index 23002b210c..930a40a4b0 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -188,20 +188,17 @@ class lammps(object): [c_void_p,POINTER(c_double),POINTER(c_double),c_double,c_double,c_double] self.lib.lammps_reset_box.restype = None - self.lib.lammps_gather_atoms.argtypes = \ - [c_void_p,c_char_p,c_int,c_int,c_void_p] + self.lib.lammps_gather_atoms.argtypes = [c_void_p,c_char_p,c_int,c_int,c_void_p] self.lib.lammps_gather_atoms.restype = None - self.lib.lammps_gather_atoms_concat.argtypes = \ - [c_void_p,c_char_p,c_int,c_int,c_void_p] + self.lib.lammps_gather_atoms_concat.argtypes = [c_void_p,c_char_p,c_int,c_int,c_void_p] self.lib.lammps_gather_atoms_concat.restype = None self.lib.lammps_gather_atoms_subset.argtypes = \ [c_void_p,c_char_p,c_int,c_int,c_int,POINTER(c_int),c_void_p] self.lib.lammps_gather_atoms_subset.restype = None - self.lib.lammps_scatter_atoms.argtypes = \ - [c_void_p,c_char_p,c_int,c_int,c_void_p] + self.lib.lammps_scatter_atoms.argtypes = [c_void_p,c_char_p,c_int,c_int,c_void_p] self.lib.lammps_scatter_atoms.restype = None self.lib.lammps_scatter_atoms_subset.argtypes = \ @@ -211,20 +208,17 @@ class lammps(object): self.lib.lammps_gather_bonds.argtypes = [c_void_p,c_void_p] self.lib.lammps_gather_bonds.restype = None - self.lib.lammps_gather.argtypes = \ - [c_void_p,c_char_p,c_int,c_int,c_void_p] + self.lib.lammps_gather.argtypes = [c_void_p,c_char_p,c_int,c_int,c_void_p] self.lib.lammps_gather.restype = None - self.lib.lammps_gather_concat.argtypes = \ - [c_void_p,c_char_p,c_int,c_int,c_void_p] + self.lib.lammps_gather_concat.argtypes = [c_void_p,c_char_p,c_int,c_int,c_void_p] self.lib.lammps_gather_concat.restype = None self.lib.lammps_gather_subset.argtypes = \ [c_void_p,c_char_p,c_int,c_int,c_int,POINTER(c_int),c_void_p] self.lib.lammps_gather_subset.restype = None - self.lib.lammps_scatter.argtypes = \ - [c_void_p,c_char_p,c_int,c_int,c_void_p] + self.lib.lammps_scatter.argtypes = [c_void_p,c_char_p,c_int,c_int,c_void_p] self.lib.lammps_scatter.restype = None self.lib.lammps_scatter_subset.argtypes = \ @@ -244,7 +238,8 @@ class lammps(object): self.lib.lammps_neighlist_num_elements.argtypes = [c_void_p, c_int] self.lib.lammps_neighlist_num_elements.restype = c_int - self.lib.lammps_neighlist_element_neighbors.argtypes = [c_void_p, c_int, c_int, POINTER(c_int), POINTER(c_int), POINTER(POINTER(c_int))] + self.lib.lammps_neighlist_element_neighbors.argtypes = \ + [c_void_p, c_int, c_int, POINTER(c_int), POINTER(c_int), POINTER(POINTER(c_int))] self.lib.lammps_neighlist_element_neighbors.restype = None self.lib.lammps_is_running.argtypes = [c_void_p] @@ -368,11 +363,9 @@ class lammps(object): if type(cmdargs[i]) is str: cmdargs[i] = cmdargs[i].encode() cargs = (c_char_p*narg)(*cmdargs) - self.lib.lammps_open.argtypes = [c_int, c_char_p*narg, \ - MPI_Comm, c_void_p] + self.lib.lammps_open.argtypes = [c_int, c_char_p*narg, MPI_Comm, c_void_p] else: - self.lib.lammps_open.argtypes = [c_int, c_char_p, \ - MPI_Comm, c_void_p] + self.lib.lammps_open.argtypes = [c_int, c_char_p, MPI_Comm, c_void_p] self.opened = 1 comm_ptr = self.MPI._addressof(comm) @@ -390,8 +383,7 @@ class lammps(object): if type(cmdargs[i]) is str: cmdargs[i] = cmdargs[i].encode() cargs = (c_char_p*narg)(*cmdargs) - self.lib.lammps_open_no_mpi.argtypes = [c_int, c_char_p*narg, \ - c_void_p] + self.lib.lammps_open_no_mpi.argtypes = [c_int, c_char_p*narg, c_void_p] self.lmp = c_void_p(self.lib.lammps_open_no_mpi(narg,cargs,None)) else: self.lib.lammps_open_no_mpi.argtypes = [c_int, c_char_p, c_void_p] @@ -963,17 +955,14 @@ class lammps(object): return ptr elif ctype == LMP_SIZE_COLS: - if cstyle == LMP_STYLE_GLOBAL \ - or cstyle == LMP_STYLE_ATOM \ - or cstyle == LMP_STYLE_LOCAL: + if cstyle == LMP_STYLE_GLOBAL or cstyle == LMP_STYLE_ATOM or cstyle == LMP_STYLE_LOCAL: self.lib.lammps_extract_compute.restype = POINTER(c_int) with ExceptionCheck(self): ptr = self.lib.lammps_extract_compute(self.lmp,cid,cstyle,ctype) return ptr[0] elif ctype == LMP_SIZE_VECTOR or ctype == LMP_SIZE_ROWS: - if cstyle == LMP_STYLE_GLOBAL \ - or cstyle == LMP_STYLE_LOCAL: + if cstyle == LMP_STYLE_GLOBAL or cstyle == LMP_STYLE_LOCAL: self.lib.lammps_extract_compute.restype = POINTER(c_int) with ExceptionCheck(self): ptr = self.lib.lammps_extract_compute(self.lmp,cid,cstyle,ctype) diff --git a/python/lammps/numpy_wrapper.py b/python/lammps/numpy_wrapper.py index 3619728081..ce0cb35e47 100644 --- a/python/lammps/numpy_wrapper.py +++ b/python/lammps/numpy_wrapper.py @@ -165,7 +165,7 @@ class numpy_wrapper: """ value = self.lmp.extract_compute(cid, cstyle, ctype) - if cstyle in (LMP_STYLE_GLOBAL, LMP_STYLE_LOCAL): + if cstyle == LMP_STYLE_GLOBAL: if ctype == LMP_TYPE_VECTOR: nrows = self.lmp.extract_compute(cid, cstyle, LMP_SIZE_VECTOR) return self.darray(value, nrows) @@ -173,6 +173,13 @@ class numpy_wrapper: nrows = self.lmp.extract_compute(cid, cstyle, LMP_SIZE_ROWS) ncols = self.lmp.extract_compute(cid, cstyle, LMP_SIZE_COLS) return self.darray(value, nrows, ncols) + elif cstyle == LMP_STYLE_LOCAL: + nrows = self.lmp.extract_compute(cid, cstyle, LMP_SIZE_ROWS) + ncols = self.lmp.extract_compute(cid, cstyle, LMP_SIZE_COLS) + if ncols == 0: + return self.darray(value, nrows) + else: + return self.darray(value, nrows, ncols) elif cstyle == LMP_STYLE_ATOM: if ctype == LMP_TYPE_VECTOR: nlocal = self.lmp.extract_global("nlocal") diff --git a/python/lammps/pylammps.py b/python/lammps/pylammps.py index cdb6620c27..1fe1f2452b 100644 --- a/python/lammps/pylammps.py +++ b/python/lammps/pylammps.py @@ -449,6 +449,8 @@ class PyLammps(object): :type ptr: pointer :param comm: MPI communicator (as provided by `mpi4py `_). ``None`` means use ``MPI_COMM_WORLD`` implicitly. :type comm: MPI_Comm + :param verbose: print all LAMMPS output to stdout + :type verbose: bool :ivar lmp: instance of original LAMMPS Python interface :vartype lmp: :py:class:`lammps` @@ -457,8 +459,9 @@ class PyLammps(object): :vartype run: list """ - def __init__(self, name="", cmdargs=None, ptr=None, comm=None): + def __init__(self, name="", cmdargs=None, ptr=None, comm=None, verbose=False): self.has_echo = False + self.verbose = verbose if cmdargs: if '-echo' in cmdargs: @@ -869,8 +872,8 @@ class PyLammps(object): if comm: output = self.lmp.comm.bcast(output, root=0) - if 'verbose' in kwargs and kwargs['verbose']: - print(output) + if self.verbose or ('verbose' in kwargs and kwargs['verbose']): + print(output, end = '') lines = output.splitlines() diff --git a/python/makewheel.py b/python/makewheel.py index 64ecbe2464..f13ad110ce 100644 --- a/python/makewheel.py +++ b/python/makewheel.py @@ -1,14 +1,26 @@ #!/usr/bin/env python -import sys,os,shutil +import sys,os,site -# find python script to activate the virtual environment and source it +base = os.path.abspath('buildwheel') if sys.platform == 'win32': - virtenv=os.path.join('buildwheel','Scripts','activate_this.py') + bin_dir=os.path.join(base,'Scripts') else: - virtenv=os.path.join('buildwheel','bin','activate_this.py') + bin_dir=os.path.join(base,'bin') -exec(open(virtenv).read(), {'__file__': virtenv}) +# prepend bin to PATH, set venv path +os.environ["PATH"] = os.pathsep.join([bin_dir] + os.environ.get("PATH", "").split(os.pathsep)) +os.environ["VIRTUAL_ENV"] = base + +# add the virtual environments libraries to the host python import mechanism +prev_length = len(sys.path) +for lib in "__LIB_FOLDERS__".split(os.pathsep): + path = os.path.realpath(os.path.join(bin_dir, lib)) + site.addsitedir(path) +sys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length] + +sys.real_prefix = sys.prefix +sys.prefix = base # update pip and install all requirements to build the wheel os.system('python -m pip install --upgrade pip') diff --git a/python/setup.py b/python/setup.py index 0097e3d596..7794119930 100644 --- a/python/setup.py +++ b/python/setup.py @@ -3,7 +3,7 @@ from setuptools import setup from setuptools.dist import Distribution from sys import version_info -import os,time,shutil +import os,time LAMMPS_PYTHON_DIR = os.path.dirname(os.path.realpath(__file__)) LAMMPS_DIR = os.path.dirname(LAMMPS_PYTHON_DIR) LAMMPS_SOURCE_DIR = os.path.join(LAMMPS_DIR, 'src') @@ -24,7 +24,7 @@ def get_lammps_version(): class BinaryDistribution(Distribution): """Wrapper to enforce creating a binary package""" - def has_ext_modules(foo): + def has_ext_modules(self): return True if version_info.major >= 3: diff --git a/src/.gitignore b/src/.gitignore index 6657256e8f..4c1cf49b3b 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -173,12 +173,20 @@ /pair_tdpd.cpp /pair_tdpd.h +/compute_grid.cpp +/compute_grid.h +/compute_grid_local.cpp +/compute_grid_local.h /compute_sna_atom.cpp /compute_sna_atom.h /compute_snad_atom.cpp /compute_snad_atom.h /compute_snav_atom.cpp /compute_snav_atom.h +/compute_sna_grid.cpp +/compute_sna_grid.h +/compute_sna_grid_local.cpp +/compute_sna_grid_local.h /compute_snap.cpp /compute_snap.h /openmp_snap.h @@ -997,6 +1005,8 @@ /neb.h /netcdf_units.cpp /netcdf_units.h +/pair_threebody_table.cpp +/pair_threebody_table.h /pair_adp.cpp /pair_adp.h /pair_agni.cpp @@ -1291,6 +1301,8 @@ /pair_sph_taitwater_morris.h /pair_sw.cpp /pair_sw.h +/pair_sw_angle_table.cpp +/pair_sw_angle_table.h /pair_sw_mod.cpp /pair_sw_mod.h /pair_tersoff.cpp diff --git a/src/AMOEBA/Install.sh b/src/AMOEBA/Install.sh new file mode 100644 index 0000000000..a4032d781e --- /dev/null +++ b/src/AMOEBA/Install.sh @@ -0,0 +1,40 @@ +# Install/unInstall package files in LAMMPS +# mode = 0/1/2 for uninstall/install/update + +mode=$1 + +# enforce using portable C locale +LC_ALL=C +export LC_ALL + +# arg1 = file, arg2 = file it depends on + +action () { + if (test $mode = 0) then + rm -f ../$1 + elif (! cmp -s $1 ../$1) then + if (test -z "$2" || test -e ../$2) then + cp $1 .. + if (test $mode = 2) then + echo " updating src/$1" + fi + fi + elif (test -n "$2") then + if (test ! -e ../$2) then + rm -f ../$1 + fi + fi +} + +# pair style amoeba calls KSPACE functions and requires FFT grid. + +if (test $1 = 1) then + if (test ! -e ../pppm.cpp) then + echo "Must install KSPACE package with AMOEBA package" + exit 1 + fi +fi + +for file in *.cpp *.h; do + action ${file} +done diff --git a/src/AMOEBA/amoeba_charge_transfer.cpp b/src/AMOEBA/amoeba_charge_transfer.cpp new file mode 100644 index 0000000000..1528ea348f --- /dev/null +++ b/src/AMOEBA/amoeba_charge_transfer.cpp @@ -0,0 +1,167 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_amoeba.h" + +#include "atom.h" +#include "memory.h" +#include "neigh_list.h" + +#include + +using namespace LAMMPS_NS; + +enum{VDWL,REPULSE,QFER,DISP,MPOLE,POLAR,USOLV,DISP_LONG,MPOLE_LONG,POLAR_LONG}; + +/* ---------------------------------------------------------------------- + charge_transfer = HIPPO charge transfer forces + adapted from Tinker echgtrn1b() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::charge_transfer() +{ + int i,j,ii,jj,itype,jtype,iclass,jclass; + double e,de,felec; + double rr1,r,r2; + double r3,r4,r5; + double xi,yi,zi; + double xr,yr,zr; + double chgi,chgj; + double alphai,alphaj; + double expi,expj; + double frcx,frcy,frcz; + double vxx,vyy,vzz; + double vxy,vxz,vyz; + double taper,dtaper; + double factor_mpole; + + int inum,jnum; + int *ilist,*jlist,*numneigh,**firstneigh; + + // set cutoffs and taper coeffs + + choose(QFER); + + // owned atoms + + double **x = atom->x; + double **f = atom->f; + + // neigh list + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // set the energy unit conversion factor + + felec = electric / am_dielectric; + + // find charge transfer energy and derivatives via neighbor list + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + itype = amtype[i]; + iclass = amtype2class[itype]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + chgi = chgct[iclass]; + alphai = dmpct[iclass]; + if (alphai == 0.0) alphai = 100.0; + + // evaluate all sites within the cutoff distance + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_mpole = special_mpole[sbmask15(j)]; + if (factor_mpole == 0.0) continue; + j &= NEIGHMASK15; + + xr = x[j][0] - xi; + yr = x[j][1] - yi; + zr = x[j][2] - zi; + r2 = xr*xr + yr* yr + zr*zr; + if (r2 > off2) continue; + + jtype = amtype[j]; + jclass = amtype2class[jtype]; + + r = sqrt(r2); + rr1 = 1.0 / r; + chgj = chgct[jclass]; + alphaj = dmpct[jclass]; + if (alphaj == 0.0) alphaj = 100.0; + + expi = exp(-alphai*r); + expj = exp(-alphaj*r); + e = -chgi*expj - chgj*expi; + de = chgi*expj*alphaj + chgj*expi*alphai; + e = felec * e * factor_mpole; + de = felec * de * factor_mpole; + + // use energy switching if near the cutoff distance + + if (r2 > cut2) { + r3 = r2 * r; + r4 = r2 * r2; + r5 = r2 * r3; + taper = c5*r5 + c4*r4 + c3*r3 + c2*r2 + c1*r + c0; + dtaper = 5.0*c5*r4 + 4.0*c4*r3 + 3.0*c3*r2 + 2.0*c2*r + c1; + de = e*dtaper + de*taper; + e *= taper; + } + + eqxfer += e; + + // compute the force components for this interaction + + frcx = de * xr * rr1; + frcy = de * yr * rr1; + frcz = de * zr * rr1; + + // increment the total charge transfer energy and derivatives + + f[i][0] += frcx; + f[i][1] += frcy; + f[i][2] += frcz; + f[j][0] -= frcx; + f[j][1] -= frcy; + f[j][2] -= frcz; + + // increment the internal virial tensor components + + if (vflag_global) { + vxx = xr * frcx; + vxy = yr * frcx; + vxz = zr * frcx; + vyy = yr * frcy; + vyz = zr * frcy; + vzz = zr * frcz; + + virqxfer[0] -= vxx; + virqxfer[1] -= vyy; + virqxfer[2] -= vzz; + virqxfer[3] -= vxy; + virqxfer[4] -= vxz; + virqxfer[5] -= vyz; + } + } + } +} + diff --git a/src/AMOEBA/amoeba_convolution.cpp b/src/AMOEBA/amoeba_convolution.cpp new file mode 100644 index 0000000000..9d08dd6e79 --- /dev/null +++ b/src/AMOEBA/amoeba_convolution.cpp @@ -0,0 +1,843 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "amoeba_convolution.h" + +#include "comm.h" +#include "domain.h" +#include "fft3d_wrap.h" +#include "gridcomm.h" +#include "memory.h" +#include "neighbor.h" +#include "remap_wrap.h" +#include "update.h" + +using namespace LAMMPS_NS; + +// DEBUG + +#define DEBUG_AMOEBA 0 +#if DEBUG_AMOEBA +char *labels[7] = + {(char *) "MPOLE_GRID", (char *) "POLAR_GRID", + (char *) "POLAR_GRIDC", (char *) "DISP_GRID", + (char *) "INDUCE_GRID", (char *) "INDUCE_GRIDC"}; + +enum{GRIDBRICK_OUT,GRIDBRICK_IN,FFT,CFFT1,CFFT2}; +#endif +// END DEBUG + +enum{MPOLE_GRID,POLAR_GRID,POLAR_GRIDC,DISP_GRID,INDUCE_GRID,INDUCE_GRIDC}; + +//#define SCALE 1 +#define SCALE 0 + +#ifdef FFT_SINGLE +#define ZEROF 0.0f +#define ONEF 1.0f +#else +#define ZEROF 0.0 +#define ONEF 1.0 +#endif + +/* ---------------------------------------------------------------------- + partition an FFT grid across processors + both for a brick and FFT x pencil decomposition + nx,nz,nz = global FFT grid size + order = size of stencil in each dimension that maps atoms to grid + adapted from PPPM::set_grid_local() +------------------------------------------------------------------------- */ + +AmoebaConvolution::AmoebaConvolution(LAMMPS *lmp, Pair *pair, + int nx_caller, int ny_caller, int nz_caller, + int order_caller, int which_caller) : + Pointers(lmp) +{ + amoeba = pair; + nx = nx_caller; + ny = ny_caller; + nz = nz_caller; + order = order_caller; + which = which_caller; + + flag3d = 1; + if (which == POLAR_GRIDC || which == INDUCE_GRIDC) flag3d = 0; + + nfft_global = (bigint) nx * ny * nz; + + // global indices of grid range from 0 to N-1 + // nlo_in,nhi_in = lower/upper limits of the 3d sub-brick of + // global grid that I own without ghost cells + // both non-tiled and tiled proc layouts use 0-1 fractional subdomain info + + if (comm->layout != Comm::LAYOUT_TILED) { + nxlo_in = static_cast (comm->xsplit[comm->myloc[0]] * nx); + nxhi_in = static_cast (comm->xsplit[comm->myloc[0]+1] * nx) - 1; + nylo_in = static_cast (comm->ysplit[comm->myloc[1]] * ny); + nyhi_in = static_cast (comm->ysplit[comm->myloc[1]+1] * ny) - 1; + nzlo_in = static_cast (comm->zsplit[comm->myloc[2]] * nz); + nzhi_in = static_cast (comm->zsplit[comm->myloc[2]+1] * nz) - 1; + + } else { + nxlo_in = static_cast (comm->mysplit[0][0] * nx); + nxhi_in = static_cast (comm->mysplit[0][1] * nx) - 1; + nylo_in = static_cast (comm->mysplit[1][0] * ny); + nyhi_in = static_cast (comm->mysplit[1][1] * ny) - 1; + nzlo_in = static_cast (comm->mysplit[2][0] * nz); + nzhi_in = static_cast (comm->mysplit[2][1] * nz) - 1; + } + + // nlower,nupper = stencil size for mapping particles to FFT grid + + int nlower = -(order-1)/2; + int nupper = order/2; + + // nlo_out,nhi_out = lower/upper limits of the 3d sub-brick of + // global grid that my particles can contribute charge to + // effectively nlo_in,nhi_in + ghost cells + // nlo,nhi = global coords of grid pt to "lower left" of smallest/largest + // position a particle in my box can be at + // dist[3] = particle position bound = subbox + skin/2.0 + // convert to triclinic if necessary + // nlo_out,nhi_out = nlo,nhi + stencil size for particle mapping + + double *prd,*boxlo,*sublo,*subhi; + int triclinic = domain->triclinic; + + if (triclinic == 0) { + prd = domain->prd; + boxlo = domain->boxlo; + sublo = domain->sublo; + subhi = domain->subhi; + } else { + prd = domain->prd_lamda; + boxlo = domain->boxlo_lamda; + sublo = domain->sublo_lamda; + subhi = domain->subhi_lamda; + } + + double xprd = prd[0]; + double yprd = prd[1]; + double zprd = prd[2]; + + double dist[3] = {0.0,0.0,0.0}; + double cuthalf = 0.5*neighbor->skin; + if (triclinic == 0) dist[0] = dist[1] = dist[2] = cuthalf; + else kspacebbox(cuthalf,&dist[0]); + + int nlo,nhi; + + nlo = static_cast ((sublo[0]-dist[0]-boxlo[0]) * nx/xprd); + nhi = static_cast ((subhi[0]+dist[0]-boxlo[0]) * nx/xprd); + nxlo_out = nlo + nlower; + nxhi_out = nhi + nupper; + + nlo = static_cast ((sublo[1]-dist[1]-boxlo[1]) * ny/yprd); + nhi = static_cast ((subhi[1]+dist[1]-boxlo[1]) * ny/yprd); + nylo_out = nlo + nlower; + nyhi_out = nhi + nupper; + + nlo = static_cast ((sublo[2]-dist[2]-boxlo[2]) * nz/zprd); + nhi = static_cast ((subhi[2]+dist[2]-boxlo[2]) * nz/zprd); + nzlo_out = nlo + nlower; + nzhi_out = nhi + nupper; + + // x-pencil decomposition of FFT mesh + // global indices range from 0 to N-1 + // each proc owns entire x-dimension, clumps of columns in y,z dimensions + // npey_fft,npez_fft = # of procs in y,z dims + // if nprocs is small enough, proc can own 1 or more entire xy planes, + // else proc owns 2d sub-blocks of yz plane + // me_y,me_z = which proc (0-npe_fft-1) I am in y,z dimensions + // nlo_fft,nhi_fft = lower/upper limit of the section + // of the global FFT mesh that I own in x-pencil decomposition + + int me = comm->me; + int nprocs = comm->nprocs; + + int npey_fft,npez_fft; + if (nz >= nprocs) { + npey_fft = 1; + npez_fft = nprocs; + } else procs2grid2d(nprocs,ny,nz,npey_fft,npez_fft); + + int me_y = me % npey_fft; + int me_z = me / npey_fft; + + nxlo_fft = 0; + nxhi_fft = nx - 1; + nylo_fft = me_y*ny/npey_fft; + nyhi_fft = (me_y+1)*ny/npey_fft - 1; + nzlo_fft = me_z*nz/npez_fft; + nzhi_fft = (me_z+1)*nz/npez_fft - 1; + + // grid sizes + // nbrick_owned = owned grid points in brick decomp + // nbrick_ghosts = owned + ghost grid points in grid decomp + // nfft_owned = owned grid points in FFT decomp + // ngrid_either = max of nbrick_onwed and nfft_owned + // nfft = total FFT grid points + + nbrick_owned = (nxhi_in-nxlo_in+1) * (nyhi_in-nylo_in+1) * + (nzhi_in-nzlo_in+1); + nbrick_ghosts = (nxhi_out-nxlo_out+1) * (nyhi_out-nylo_out+1) * + (nzhi_out-nzlo_out+1); + nfft_owned = (nxhi_fft-nxlo_fft+1) * (nyhi_fft-nylo_fft+1) * + (nzhi_fft-nzlo_fft+1); + + ngrid_either = MAX(nbrick_owned,nfft_owned); + + // instantiate FFT, GridComm, and Remap + + int tmp; + + fft1 = new FFT3d(lmp,world,nx,ny,nz, + nxlo_fft,nxhi_fft,nylo_fft,nyhi_fft,nzlo_fft,nzhi_fft, + nxlo_fft,nxhi_fft,nylo_fft,nyhi_fft,nzlo_fft,nzhi_fft, + 1,0,&tmp,0); + // 0,0,&tmp,0); + + fft2 = new FFT3d(lmp,world,nx,ny,nz, + nxlo_fft,nxhi_fft,nylo_fft,nyhi_fft,nzlo_fft,nzhi_fft, + nxlo_in,nxhi_in,nylo_in,nyhi_in,nzlo_in,nzhi_in, + //1,0,&tmp,0); + 0,0,&tmp,0); + + gc = new GridComm(lmp,world,nx,ny,nz, + nxlo_in,nxhi_in,nylo_in,nyhi_in,nzlo_in,nzhi_in, + nxlo_out,nxhi_out,nylo_out,nyhi_out,nzlo_out,nzhi_out); + + int nqty = flag3d ? 1 : 2; + remap = new Remap(lmp,world, + nxlo_in,nxhi_in,nylo_in,nyhi_in,nzlo_in,nzhi_in, + nxlo_fft,nxhi_fft,nylo_fft,nyhi_fft,nzlo_fft,nzhi_fft, + nqty,0,0,FFT_PRECISION,0); + + // memory allocations + + if (flag3d) { + memory->create3d_offset(grid_brick,nzlo_out,nzhi_out,nylo_out,nyhi_out, + nxlo_out,nxhi_out,"amoeba:grid_brick"); + grid_brick_start = &grid_brick[nzlo_out][nylo_out][nxlo_out]; + cgrid_brick = nullptr; + } else { + memory->create4d_offset_last(cgrid_brick,nzlo_out,nzhi_out,nylo_out,nyhi_out, + nxlo_out,nxhi_out,2,"amoeba:cgrid_brick"); + grid_brick_start = &cgrid_brick[nzlo_out][nylo_out][nxlo_out][0]; + grid_brick = nullptr; + } + + memory->create(grid_fft,ngrid_either,"amoeba:grid_fft"); + memory->create(cfft,2*ngrid_either,"amoeba:cfft"); + + int ngc_buf1,ngc_buf2; + gc->setup(ngc_buf1,ngc_buf2); + memory->create(gc_buf1,nqty*ngc_buf1,"amoeba:gc_buf1"); + memory->create(gc_buf2,nqty*ngc_buf2,"amoeba:gc_buf2"); + + memory->create(remap_buf,nqty*nfft_owned,"amoeba:remap_buf"); +} + +/* ---------------------------------------------------------------------- + free all memory +------------------------------------------------------------------------- */ + +AmoebaConvolution::~AmoebaConvolution() +{ + memory->destroy3d_offset(grid_brick,nzlo_out,nylo_out,nxlo_out); + memory->destroy4d_offset_last(cgrid_brick,nzlo_out,nylo_out,nxlo_out); + memory->destroy(grid_fft); + memory->destroy(cfft); + memory->destroy(gc_buf1); + memory->destroy(gc_buf2); + memory->destroy(remap_buf); + + delete fft1; + delete fft2; + delete gc; + delete remap; +} + +/* ---------------------------------------------------------------------- + zero brick grid, including ghosts + can be 3d real or 4d complex array + return pointer to data in brick grid, caller casts to 3d or 4d +------------------------------------------------------------------------- */ + +void *AmoebaConvolution::zero() +{ + if (flag3d) return zero_3d(); + return zero_4d(); +} + +/* ---------------------------------------------------------------------- */ + +void *AmoebaConvolution::zero_3d() +{ + if (!grid_brick) return nullptr; + memset(&(grid_brick[nzlo_out][nylo_out][nxlo_out]),0, + nbrick_ghosts*sizeof(FFT_SCALAR)); + return (void *) grid_brick; +} + +/* ---------------------------------------------------------------------- */ + +void *AmoebaConvolution::zero_4d() +{ + if (!cgrid_brick) return nullptr; + memset(&(cgrid_brick[nzlo_out][nylo_out][nxlo_out][0]),0, + 2*nbrick_ghosts*sizeof(FFT_SCALAR)); + return (void *) cgrid_brick; +} + +/* ---------------------------------------------------------------------- + perform pre-convolution grid operations + can be 3d real or 4d complex array + return pointer to complex cfft vector +------------------------------------------------------------------------- */ + +FFT_SCALAR *AmoebaConvolution::pre_convolution() +{ + if (flag3d) return pre_convolution_3d(); + return pre_convolution_4d(); +} + +/* ---------------------------------------------------------------------- + perform pre-convolution grid operations for 3d grid_brick array +------------------------------------------------------------------------- */ + +FFT_SCALAR *AmoebaConvolution::pre_convolution_3d() +{ + int ix,iy,iz,n; + + // reverse comm for 3d brick grid + ghosts + +#if DEBUG_AMOEBA + debug_scalar(GRIDBRICK_OUT,"PRE Convo / PRE GridComm"); +#endif + + gc->reverse_comm(GridComm::PAIR,amoeba,1,sizeof(FFT_SCALAR),which, + gc_buf1,gc_buf2,MPI_FFT_SCALAR); + +#if DEBUG_AMOEBA + debug_scalar(GRIDBRICK_IN,"PRE Convo / POST GridComm"); + debug_file(GRIDBRICK_IN,"pre.convo.post.gridcomm"); +#endif + + // copy owned 3d brick grid values to FFT grid + + n = 0; + for (iz = nzlo_in; iz <= nzhi_in; iz++) + for (iy = nylo_in; iy <= nyhi_in; iy++) + for (ix = nxlo_in; ix <= nxhi_in; ix++) + grid_fft[n++] = grid_brick[iz][iy][ix]; + + // remap FFT grid from brick to x pencil partitioning + + remap->perform(grid_fft,grid_fft,remap_buf); + +#if DEBUG_AMOEBA + debug_scalar(FFT,"PRE Convo / POST Remap"); + debug_file(FFT,"pre.convo.post.remap"); +#endif + + // copy real values into complex grid + + n = 0; + for (int i = 0; i < nfft_owned; i++) { + cfft[n++] = grid_fft[i]; + cfft[n++] = ZEROF; + } + + // perform forward FFT + + fft1->compute(cfft,cfft,FFT3d::FORWARD); + + if (SCALE) { + double scale = 1.0/nfft_global; + for (int i = 0; i < 2*nfft_owned; i++) cfft[i] *= scale; + } + +#if DEBUG_AMOEBA + debug_scalar(CFFT1,"PRE Convo / POST FFT"); + debug_file(CFFT1,"pre.convo.post.fft"); +#endif + return cfft; +} + +/* ---------------------------------------------------------------------- + perform pre-convolution grid operations for 4d cgrid_brick array +------------------------------------------------------------------------- */ + +FFT_SCALAR *AmoebaConvolution::pre_convolution_4d() +{ + int ix,iy,iz,n; + + // reverse comm for 4d brick grid + ghosts + +#if DEBUG_AMOEBA + debug_scalar(GRIDBRICK_OUT,"PRE Convo / PRE GridComm"); +#endif + + gc->reverse_comm(GridComm::PAIR,amoeba,2,sizeof(FFT_SCALAR),which, + gc_buf1,gc_buf2,MPI_FFT_SCALAR); + +#if DEBUG_AMOEBA + debug_scalar(GRIDBRICK_IN,"PRE Convo / POST GridComm"); + debug_file(GRIDBRICK_IN,"pre.convo.post.gridcomm"); +#endif + // copy owned 4d brick grid values to FFT grid + + n = 0; + for (iz = nzlo_in; iz <= nzhi_in; iz++) + for (iy = nylo_in; iy <= nyhi_in; iy++) + for (ix = nxlo_in; ix <= nxhi_in; ix++) { + cfft[n++] = cgrid_brick[iz][iy][ix][0]; + cfft[n++] = cgrid_brick[iz][iy][ix][1]; + } + + // remap FFT grid from brick to x pencil partitioning + // NOTE: could just setup FFT to start from brick decomp and skip remap + + remap->perform(cfft,cfft,remap_buf); + +#if DEBUG_AMOEBA + debug_scalar(FFT,"PRE Convo / POST Remap"); + debug_file(FFT,"pre.convo.post.remap"); +#endif + // perform forward FFT + + fft1->compute(cfft,cfft,FFT3d::FORWARD); + + if (SCALE) { + double scale = 1.0/nfft_global; + for (int i = 0; i < 2*nfft_owned; i++) cfft[i] *= scale; + } + +#if DEBUG_AMOEBA + debug_scalar(CFFT1,"PRE Convo / POST FFT"); + debug_file(CFFT1,"pre.convo.post.fft"); +#endif + return cfft; +} + +/* ---------------------------------------------------------------------- + perform post-convolution grid operations + can be 3d real or 4d complex array + return pointer to data in brick grid, caller casts to 3d or 4d +------------------------------------------------------------------------- */ + +void *AmoebaConvolution::post_convolution() +{ + if (flag3d) return post_convolution_3d(); + return post_convolution_4d(); +} + +/* ---------------------------------------------------------------------- + perform post-convolution grid operations for 3d grid_brick array +------------------------------------------------------------------------- */ + +void *AmoebaConvolution::post_convolution_3d() +{ + int ix,iy,iz,n; + + // perform backward FFT +#if DEBUG_AMOEBA + debug_scalar(CFFT1,"POST Convo / PRE FFT"); + debug_file(CFFT1,"post.convo.pre.fft"); +#endif + fft2->compute(cfft,cfft,FFT3d::BACKWARD); + +#if DEBUG_AMOEBA + debug_scalar(CFFT2,"POST Convo / POST FFT"); + debug_file(CFFT2,"post.convo.post.fft"); +#endif + // copy real portion of 1d complex values into 3d real grid + + n = 0; + for (iz = nzlo_in; iz <= nzhi_in; iz++) + for (iy = nylo_in; iy <= nyhi_in; iy++) + for (ix = nxlo_in; ix <= nxhi_in; ix++) { + grid_brick[iz][iy][ix] = cfft[n]; + n += 2; + } + + // forward comm to populate ghost grid values + +#if DEBUG_AMOEBA + debug_scalar(GRIDBRICK_IN,"POST Convo / PRE gridcomm"); + debug_file(GRIDBRICK_IN,"post.convo.pre.gridcomm"); +#endif + gc->forward_comm(GridComm::PAIR,amoeba,1,sizeof(FFT_SCALAR),which, + gc_buf1,gc_buf2,MPI_FFT_SCALAR); + + return (void *) grid_brick; +} + +/* ---------------------------------------------------------------------- + perform post-convolution grid operations for 4d cgrid_brick array +------------------------------------------------------------------------- */ + +void *AmoebaConvolution::post_convolution_4d() +{ + int ix,iy,iz,n; + + // perform backward FFT + +#if DEBUG_AMOEBA + debug_scalar(CFFT1,"POST Convo / PRE FFT"); + debug_file(CFFT1,"post.convo.pre.fft"); +#endif + fft2->compute(cfft,cfft,FFT3d::BACKWARD); + +#if DEBUG_AMOEBA + debug_scalar(CFFT2,"POST Convo / POST FFT"); + debug_file(CFFT2,"post.convo.post.fft"); +#endif + // copy 1d complex values into 4d complex grid + + n = 0; + for (iz = nzlo_in; iz <= nzhi_in; iz++) + for (iy = nylo_in; iy <= nyhi_in; iy++) + for (ix = nxlo_in; ix <= nxhi_in; ix++) { + cgrid_brick[iz][iy][ix][0] = cfft[n++]; + cgrid_brick[iz][iy][ix][1] = cfft[n++]; + } + + // forward comm to populate ghost grid values + +#if DEBUG_AMOEBA + debug_scalar(GRIDBRICK_IN,"POST Convo / PRE gridcomm"); + debug_file(GRIDBRICK_IN,"post.convo.pre.gridcomm"); +#endif + gc->forward_comm(GridComm::PAIR,amoeba,2,sizeof(FFT_SCALAR),which, + gc_buf1,gc_buf2,MPI_FFT_SCALAR); + + return (void *) cgrid_brick; +} + +/* ---------------------------------------------------------------------- + convert a sphere in box coords to an ellipsoid in lamda (0-1) + coords and return the tight (axis-aligned) bounding box, does not + preserve vector magnitude + see http://www.loria.fr/~shornus/ellipsoid-bbox.html and + http://yiningkarlli.blogspot.com/2013/02/ + bounding-boxes-for-ellipsoidsfigure.html +------------------------------------------------------------------------- */ + +void AmoebaConvolution::kspacebbox(double r, double *b) +{ + double *h = domain->h; + double lx,ly,lz,xy,xz,yz; + + lx = h[0]; ly = h[1]; lz = h[2]; + yz = h[3]; xz = h[4]; xy = h[5]; + + b[0] = r*sqrt(ly*ly*lz*lz + ly*ly*xz*xz - 2.0*ly*xy*xz*yz + lz*lz*xy*xy + + xy*xy*yz*yz)/(lx*ly*lz); + b[1] = r*sqrt(lz*lz + yz*yz)/(ly*lz); + b[2] = r/lz; +} + +/* ---------------------------------------------------------------------- + map nprocs to NX by NY grid as PX by PY procs - return optimal px,py + copy of PPPM::procs2grid2d() +------------------------------------------------------------------------- */ + +void AmoebaConvolution::procs2grid2d(int nprocs, int nx, int ny, int &px, int &py) +{ + // loop thru all possible factorizations of nprocs + // surf = surface area of largest proc sub-domain + // innermost if test minimizes surface area and surface/volume ratio + + int bestsurf = 2 * (nx + ny); + int bestboxx = 0; + int bestboxy = 0; + + int boxx,boxy,surf,ipx,ipy; + + ipx = 1; + while (ipx <= nprocs) { + if (nprocs % ipx == 0) { + ipy = nprocs/ipx; + boxx = nx/ipx; + if (nx % ipx) boxx++; + boxy = ny/ipy; + if (ny % ipy) boxy++; + surf = boxx + boxy; + if (surf < bestsurf || + (surf == bestsurf && boxx*boxy > bestboxx*bestboxy)) { + bestsurf = surf; + bestboxx = boxx; + bestboxy = boxy; + px = ipx; + py = ipy; + } + } + ipx++; + } +} + +#if DEBUG_AMOEBA +/* ---------------------------------------------------------------------- + output a scalar value to screen + array = which array is being summed over +---------------------------------------------------------------------- */ + +void AmoebaConvolution::debug_scalar(int array, const char *label) +{ + double sum = 0.0; + + if (array == GRIDBRICK_OUT) { + if (flag3d) { + for (int iz = nzlo_out; iz <= nzhi_out; iz++) + for (int iy = nylo_out; iy <= nyhi_out; iy++) + for (int ix = nxlo_out; ix <= nxhi_out; ix++) + sum += grid_brick[iz][iy][ix]; + } else { + for (int iz = nzlo_out; iz <= nzhi_out; iz++) + for (int iy = nylo_out; iy <= nyhi_out; iy++) + for (int ix = nxlo_out; ix <= nxhi_out; ix++) { + sum += cgrid_brick[iz][iy][ix][0]; + sum += cgrid_brick[iz][iy][ix][1]; + } + } + } + + if (array == GRIDBRICK_IN) { + if (flag3d) { + for (int iz = nzlo_in; iz <= nzhi_in; iz++) + for (int iy = nylo_in; iy <= nyhi_in; iy++) + for (int ix = nxlo_in; ix <= nxhi_in; ix++) + sum += grid_brick[iz][iy][ix]; + } else { + for (int iz = nzlo_in; iz <= nzhi_in; iz++) + for (int iy = nylo_in; iy <= nyhi_in; iy++) + for (int ix = nxlo_in; ix <= nxhi_in; ix++) { + sum += cgrid_brick[iz][iy][ix][0]; + sum += cgrid_brick[iz][iy][ix][1]; + } + } + } + + if (array == FFT) { + if (flag3d) { + for (int i = 0; i < nfft_owned; i++) + sum += grid_fft[i]; + } else { + for (int i = 0; i < 2*nfft_owned; i++) + sum += cfft[i]; + } + } + + if (array == CFFT1) { + for (int i = 0; i < 2*nfft_owned; i++) + sum += cfft[i]; + } + + if (array == CFFT2) { + for (int i = 0; i < 2*nbrick_owned; i++) + sum += cfft[i]; + } + + /* + double sumall; + MPI_Allreduce(&sum,&sumall,1,MPI_DOUBLE,MPI_SUM,world); + if (comm->me == 0) printf("%s: %s: %12.8g\n",labels[which],label,sumall); + */ +} + +/* ---------------------------------------------------------------------- + dump grid values to a file + array = which array is being output +---------------------------------------------------------------------- */ + +void AmoebaConvolution::debug_file(int array, const char *label) +{ + FILE *fp; + + int me = comm->me; + int nprocs = comm->nprocs; + + // open file + + char fname[128]; + sprintf(fname,"tmp.%s.%s",labels[which],label); + if (me == 0) fp = fopen(fname,"w"); + + // file header + // ncol = # of columns, including grid cell ID + + bigint ntot = nx * ny * nz; + + int ncol; + char *columns; + + if (array == CFFT1 || array == CFFT2 || !flag3d) { + ncol = 3; + columns = (char *) "id real imag"; + } else { + ncol = 2; + columns = (char *) "id value"; + } + + char boundstr[9]; // encoding of boundary flags + domain->boundary_string(boundstr); + + if (me == 0) { + fprintf(fp,"ITEM: TIMESTEP\n"); + fprintf(fp,BIGINT_FORMAT "\n",update->ntimestep); + fprintf(fp,"ITEM: NUMBER OF ATOMS\n"); + fprintf(fp,BIGINT_FORMAT "\n",ntot); + fprintf(fp,"ITEM: BOX BOUNDS %s\n",boundstr); + fprintf(fp,"%-1.16e %-1.16e\n",domain->boxlo[0],domain->boxhi[0]); + fprintf(fp,"%-1.16e %-1.16e\n",domain->boxlo[1],domain->boxhi[1]); + fprintf(fp,"%-1.16e %-1.16e\n",domain->boxlo[2],domain->boxhi[2]); + fprintf(fp,"ITEM: ATOMS %s\n",columns); + } + + // pack my values + // ngrid = # of grid cells I own + + int ngrid; + if (array == GRIDBRICK_IN) ngrid = nbrick_owned; + else if (array == FFT) ngrid = nfft_owned; + else if (array == CFFT1) ngrid = nfft_owned; + else if (array == CFFT2) ngrid = nbrick_owned; + + int ngridmax; + MPI_Allreduce(&ngrid,&ngridmax,1,MPI_INT,MPI_MAX,world); + + double *buf,*buf2; + memory->create(buf,ncol*ngridmax,"amoeba:buf"); + memory->create(buf2,ncol*ngridmax,"amoeba:buf2"); + + ngrid = 0; + + if (array == GRIDBRICK_IN) { + if (flag3d) { + for (int iz = nzlo_in; iz <= nzhi_in; iz++) + for (int iy = nylo_in; iy <= nyhi_in; iy++) + for (int ix = nxlo_in; ix <= nxhi_in; ix++) { + int id = iz*ny*nx + iy*nx + ix + 1; + buf[ncol*ngrid] = id; + buf[ncol*ngrid+1] = grid_brick[iz][iy][ix]; + ngrid++; + } + } else { + for (int iz = nzlo_in; iz <= nzhi_in; iz++) + for (int iy = nylo_in; iy <= nyhi_in; iy++) + for (int ix = nxlo_in; ix <= nxhi_in; ix++) { + int id = iz*ny*nx + iy*nx + ix + 1; + buf[ncol*ngrid] = id; + buf[ncol*ngrid+1] = cgrid_brick[iz][iy][ix][0]; + buf[ncol*ngrid+2] = cgrid_brick[iz][iy][ix][1]; + ngrid++; + } + } + } + + if (array == FFT) { + if (flag3d) { + int m = 0; + for (int iz = nzlo_fft; iz <= nzhi_fft; iz++) + for (int iy = nylo_fft; iy <= nyhi_fft; iy++) + for (int ix = nxlo_fft; ix <= nxhi_fft; ix++) { + int id = iz*ny*nx + iy*nx + ix + 1; + buf[ncol*ngrid] = id; + buf[ncol*ngrid+1] = grid_fft[m++]; + ngrid++; + } + } else { + int m = 0; + for (int iz = nzlo_fft; iz <= nzhi_fft; iz++) + for (int iy = nylo_fft; iy <= nyhi_fft; iy++) + for (int ix = nxlo_fft; ix <= nxhi_fft; ix++) { + int id = iz*ny*nx + iy*nx + ix + 1; + buf[ncol*ngrid] = id; + buf[ncol*ngrid+1] = cfft[m++]; + buf[ncol*ngrid+2] = cfft[m++]; + ngrid++; + } + } + } + + if (array == CFFT1) { + int m = 0; + for (int iz = nzlo_fft; iz <= nzhi_fft; iz++) + for (int iy = nylo_fft; iy <= nyhi_fft; iy++) + for (int ix = nxlo_fft; ix <= nxhi_fft; ix++) { + int id = iz*ny*nx + iy*nx + ix + 1; + buf[ncol*ngrid] = id; + buf[ncol*ngrid+1] = cfft[m++]; + buf[ncol*ngrid+2] = cfft[m++]; + ngrid++; + } + } + + if (array == CFFT2) { + int m = 0; + for (int iz = nzlo_in; iz <= nzhi_in; iz++) + for (int iy = nylo_in; iy <= nyhi_in; iy++) + for (int ix = nxlo_in; ix <= nxhi_in; ix++) { + int id = iz*ny*nx + iy*nx + ix + 1; + buf[ncol*ngrid] = id; + buf[ncol*ngrid+1] = cfft[m++]; + buf[ncol*ngrid+2] = cfft[m++]; + ngrid++; + } + } + + // proc 0 outputs values + // pings other procs, send/recv of their values + + int tmp,nlines; + MPI_Request request; + MPI_Status status; + + if (me == 0) { + for (int iproc = 0; iproc < nprocs; iproc++) { + if (iproc) { + MPI_Irecv(buf,ngridmax*ncol,MPI_DOUBLE,iproc,0,world,&request); + MPI_Send(&tmp,0,MPI_INT,me+iproc,0,world); + MPI_Wait(&request,&status); + MPI_Get_count(&status,MPI_DOUBLE,&nlines); + nlines /= ncol; + } else nlines = ngrid; + + int n = 0; + for (int m = 0; m < nlines; m++) { + if (ncol == 2) + fprintf(fp,"%d %12.8g\n",(int) buf[n],buf[n+1]); + else if (ncol == 3) + fprintf(fp,"%d %12.8g %12.8g\n",(int ) buf[n],buf[n+1],buf[n+2]); + n += ncol; + } + } + + } else { + MPI_Recv(&tmp,0,MPI_INT,0,0,world,MPI_STATUS_IGNORE); + MPI_Rsend(buf,ngrid*ncol,MPI_DOUBLE,0,0,world); + } + + // close file + + if (me == 0) fclose(fp); + + // clean up + + memory->destroy(buf); + memory->destroy(buf2); +} +#endif diff --git a/src/AMOEBA/amoeba_convolution.h b/src/AMOEBA/amoeba_convolution.h new file mode 100644 index 0000000000..d7c4f9fbd7 --- /dev/null +++ b/src/AMOEBA/amoeba_convolution.h @@ -0,0 +1,85 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef LMP_AMOEBA_CONVOLUTION_H +#define LMP_AMOEBA_CONVOLUTION_H + +#include "pointers.h" + +#ifdef FFT_SINGLE +typedef float FFT_SCALAR; +#define LMP_FFT_PREC "single" +#define MPI_FFT_SCALAR MPI_FLOAT +#else + +typedef double FFT_SCALAR; +#define LMP_FFT_PREC "double" +#define MPI_FFT_SCALAR MPI_DOUBLE +#endif + +namespace LAMMPS_NS { + +class AmoebaConvolution : protected Pointers { + public: + int nx, ny, nz; + int order; + int nfft_owned; // owned grid points in FFT decomp + int nxlo_in, nxhi_in, nylo_in, nyhi_in, nzlo_in, nzhi_in; + int nxlo_out, nxhi_out, nylo_out, nyhi_out, nzlo_out, nzhi_out; + int nxlo_fft, nxhi_fft, nylo_fft, nyhi_fft, nzlo_fft, nzhi_fft; + bigint nfft_global; // nx * ny * nz + double *grid_brick_start; // lower left corner of (c)grid_brick data + + AmoebaConvolution(class LAMMPS *, class Pair *, int, int, int, int, int); + ~AmoebaConvolution(); + void *zero(); + FFT_SCALAR *pre_convolution(); + void *post_convolution(); + + private: + int which; // caller name for convolution being performed + int flag3d; // 1 if using 3d grid_brick, 0 for 4d cgrid_brick + int nbrick_owned; // owned grid points in brick decomp + int nbrick_ghosts; // owned + ghost brick grid points + int ngrid_either; // max of nbrick_owned or nfft_owned + + class Pair *amoeba; + class FFT3d *fft1, *fft2; + class GridComm *gc; + class Remap *remap; + + double ***grid_brick; // 3d real brick grid with ghosts + double ****cgrid_brick; // 4d complex brick grid with ghosts + + FFT_SCALAR *grid_fft; // 3d FFT grid as 1d vector + FFT_SCALAR *cfft; // 3d complex FFT grid as 1d vector + + double *gc_buf1, *gc_buf2; // buffers for GridComm + double *remap_buf; // buffer for Remap + + void *zero_3d(); + void *zero_4d(); + FFT_SCALAR *pre_convolution_3d(); + FFT_SCALAR *pre_convolution_4d(); + void *post_convolution_3d(); + void *post_convolution_4d(); + void kspacebbox(double, double *); + void procs2grid2d(int, int, int, int &, int &); + + // DEBUG + + void debug_scalar(int, const char *); + void debug_file(int, const char *); +}; +} // namespace LAMMPS_NS +#endif diff --git a/src/AMOEBA/amoeba_dispersion.cpp b/src/AMOEBA/amoeba_dispersion.cpp new file mode 100644 index 0000000000..4005c3b1bd --- /dev/null +++ b/src/AMOEBA/amoeba_dispersion.cpp @@ -0,0 +1,422 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_amoeba.h" + +#include "amoeba_convolution.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "fft3d_wrap.h" +#include "math_const.h" +#include "math_special.h" +#include "memory.h" +#include "neigh_list.h" + +#include + +using namespace LAMMPS_NS; +using namespace MathConst; + +using MathSpecial::cube; +using MathSpecial::powint; + +enum{VDWL,REPULSE,QFER,DISP,MPOLE,POLAR,USOLV,DISP_LONG,MPOLE_LONG,POLAR_LONG}; + +/* ---------------------------------------------------------------------- + dispersion = Ewald dispersion + adapted from Tinker edisp1d() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::dispersion() +{ + // set cutoffs, taper coeffs, and PME params + + if (use_dewald) choose(DISP_LONG); + else choose(DISP); + + // owned atoms + + int nlocal = atom->nlocal; + + // compute the real space portion of the Ewald summation + + if (disp_rspace_flag) dispersion_real(); + + // compute the reciprocal space part of the Ewald summation + + if (disp_kspace_flag) dispersion_kspace(); + + // compute the self-energy portion of the Ewald summation + + int itype,iclass; + double term; + + for (int i = 0; i < nlocal; i++) { + itype = amtype[i]; + iclass = amtype2class[itype]; + term = powint(aewald,6) / 12.0; + edisp += term*csix[iclass]*csix[iclass]; + } +} + +/* ---------------------------------------------------------------------- + dispersion_real = real-space portion of Ewald dispersion + adapted from Tinker edreal1d() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::dispersion_real() +{ + int i,j,ii,jj,itype,jtype,iclass,jclass; + double xi,yi,zi; + double xr,yr,zr; + double e,de; + double ci,ck; + double r,r2,r6,r7; + double ai,ai2; + double ak,ak2; + double di,di2,di3,di4,di5; + double dk,dk2,dk3; + double ti,ti2; + double tk,tk2; + double expi,expk; + double damp3,damp5; + double damp,ddamp; + double ralpha2,scale; + double expterm,term; + double expa,rterm; + double dedx,dedy,dedz; + double vxx,vyx,vzx; + double vyy,vzy,vzz; + double factor_disp; + + int inum,jnum; + int *ilist,*jlist,*numneigh,**firstneigh; + + // owned atoms + + double **x = atom->x; + double **f = atom->f; + + // neigh list + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // compute the real space portion of the Ewald summation + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + itype = amtype[i]; + iclass = amtype2class[itype]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + ci = csix[iclass]; + ai = adisp[iclass]; + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + + // decide whether to compute the current interaction + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_disp = special_disp[sbmask15(j)]; + j &= NEIGHMASK15; + + xr = xi - x[j][0]; + yr = yi - x[j][1]; + zr = zi - x[j][2]; + r2 = xr*xr + yr*yr + zr*zr; + if (r2 > off2) continue; + + // compute the energy contribution for this interaction + + jtype = amtype[j]; + jclass = amtype2class[jtype]; + ck = csix[jclass]; + ak = adisp[jclass]; + + r6 = r2*r2*r2; + ralpha2 = r2 * aewald*aewald; + term = 1.0 + ralpha2 + 0.5*ralpha2*ralpha2; + expterm = exp(-ralpha2); + expa = expterm * term; + + // find the damping factor for the dispersion interaction + + r = sqrt(r2); + r7 = r6 * r; + di = ai * r; + di2 = di * di; + di3 = di * di2; + dk = ak * r; + expi = exp(-di); + expk = exp(-dk); + + if (ai != ak) { + ai2 = ai * ai; + ak2 = ak * ak; + dk2 = dk * dk; + dk3 = dk * dk2; + ti = ak2 / (ak2-ai2); + ti2 = ti * ti; + tk = ai2 / (ai2-ak2); + tk2 = tk * tk; + damp3 = 1.0 - ti2*(1.0+di+0.5*di2)*expi - tk2*(1.0+dk+0.5*dk2)*expk - + 2.0*ti2*tk*(1.0+di)*expi - 2.0*tk2*ti*(1.0+dk)*expk; + damp5 = 1.0 - ti2*(1.0+di+0.5*di2+di3/6.0)*expi - + tk2*(1.0+dk+0.5*dk2 + dk3/6.0)*expk - + 2.0*ti2*tk*(1.0+di+di2/3.0)*expi - 2.0*tk2*ti*(1.0+dk+dk2/3.0)*expk; + ddamp = 0.25 * di2 * ti2 * ai * expi * (r*ai+4.0*tk-1.0) + + 0.25 * dk2 * tk2 * ak * expk * (r*ak+4.0*ti-1.0); + + } else { + di4 = di2 * di2; + di5 = di2 * di3; + damp3 = 1.0 - (1.0+di+0.5*di2 + 7.0*di3/48.0+di4/48.0)*expi; + damp5 = 1.0 - (1.0+di+0.5*di2 + di3/6.0+di4/24.0+di5/144.0)*expi; + ddamp = ai * expi * (di5-3.0*di3-3.0*di2) / 96.0; + } + + damp = 1.5*damp5 - 0.5*damp3; + + // apply damping and scaling factors for this interaction + + scale = factor_disp * damp*damp; + scale = scale - 1.0; + e = -ci * ck * (expa+scale) / r6; + rterm = -cube(ralpha2) * expterm / r; + de = -6.0*e/r2 - ci*ck*rterm/r7 - 2.0*ci*ck*factor_disp*damp*ddamp/r7; + + edisp += e; + + // increment the damped dispersion derivative components + + dedx = de * xr; + dedy = de * yr; + dedz = de * zr; + f[i][0] -= dedx; + f[i][1] -= dedy; + f[i][2] -= dedz; + f[j][0] += dedx; + f[j][1] += dedy; + f[j][2] += dedz; + + // increment the internal virial tensor components + + if (vflag_global) { + vxx = xr * dedx; + vyx = yr * dedx; + vzx = zr * dedx; + vyy = yr * dedy; + vzy = zr * dedy; + vzz = zr * dedz; + + virdisp[0] -= vxx; + virdisp[1] -= vyy; + virdisp[2] -= vzz; + virdisp[3] -= vyx; + virdisp[4] -= vzx; + virdisp[5] -= vzy; + } + } + } +} + +/* ---------------------------------------------------------------------- + dispersion_kspace = KSpace portion of Ewald dispersion + adapted from Tinker edrecip1d() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::dispersion_kspace() +{ + int i,j,k,m,n,ib,jb,kb,itype,iclass; + int nhalf1,nhalf2,nhalf3; + int nxlo,nxhi,nylo,nyhi,nzlo,nzhi; + double e,fi,denom,scale; + double r1,r2,r3; + double h1,h2,h3; + double term,vterm; + double expterm; + double erfcterm; + double hsq,struc2; + double h,hhh,b,bfac; + double term1,denom0; + double fac1,fac2,fac3; + double de1,de2,de3; + double dt1,dt2,dt3; + double t1,t2,t3; + + // return if the Ewald coefficient is zero + + if (aewald < 1.0e-6) return; + + // owned atoms + + double **f = atom->f; + int nlocal = atom->nlocal; + + double volbox = domain->prd[0] * domain->prd[1] * domain->prd[2]; + + // FFT moduli pre-computations + // set igrid for each atom and its B-spline coeffs + + nfft1 = d_kspace->nx; + nfft2 = d_kspace->ny; + nfft3 = d_kspace->nz; + bsorder = d_kspace->order; + + moduli(); + bspline_fill(); + + // gridpre = my portion of 3d grid in brick decomp w/ ghost values + // zeroed by zero() + + double ***gridpre = (double ***) d_kspace->zero(); + + // map atoms to grid + + grid_disp(gridpre); + + // pre-convolution operations including forward FFT + // gridfft = my portion of complex 3d grid in FFT decomposition + + double *gridfft = d_kspace->pre_convolution(); + + // --------------------- + // convolution operation + // --------------------- + + nhalf1 = (nfft1+1) / 2; + nhalf2 = (nfft2+1) / 2; + nhalf3 = (nfft3+1) / 2; + + nxlo = d_kspace->nxlo_fft; + nxhi = d_kspace->nxhi_fft; + nylo = d_kspace->nylo_fft; + nyhi = d_kspace->nyhi_fft; + nzlo = d_kspace->nzlo_fft; + nzhi = d_kspace->nzhi_fft; + + bfac = MY_PI / aewald; + fac1 = 2.0*pow(MY_PI,3.5); + fac2 = cube(aewald); + fac3 = -2.0*aewald*MY_PI*MY_PI; + denom0 = (6.0*volbox)/pow(MY_PI,1.5); + + n = 0; + for (k = nzlo; k <= nzhi; k++) { + for (j = nylo; j <= nyhi; j++) { + for (i = nxlo; i <= nxhi; i++) { + r1 = (i >= nhalf1) ? i-nfft1 : i; + r2 = (j >= nhalf2) ? j-nfft2 : j; + r3 = (k >= nhalf3) ? k-nfft3 : k; + h1 = recip[0][0]*r1 + recip[0][1]*r2 + recip[0][2]*r3; // matvec + h2 = recip[1][0]*r1 + recip[1][1]*r2 + recip[1][2]*r3; + h3 = recip[2][0]*r1 + recip[2][1]*r2 + recip[2][2]*r3; + hsq = h1*h1 + h2*h2 + h3*h3; + h = sqrt(hsq); + b = h*bfac; + hhh = h*hsq; + term = -b*b; + expterm = 0.0; + erfcterm = erfc(b); + denom = denom0*bsmod1[i]*bsmod2[j]*bsmod3[k]; + if (term > -50.0 && hsq != 0.0) { + expterm = exp(term); + erfcterm = erfc(b); + term1 = fac1*erfcterm*hhh + expterm*(fac2 + fac3*hsq); + struc2 = gridfft[n]*gridfft[n] + gridfft[n+1]*gridfft[n+1]; + e = -(term1 / denom) * struc2; + edisp += e; + if (vflag_global) { + vterm = 3.0 * (fac1*erfcterm*h + fac3*expterm) * struc2/denom; + virdisp[0] -= h1*h1*vterm - e; + virdisp[1] -= h2*h2*vterm - e; + virdisp[2] -= h3*h3*vterm - e; + virdisp[3] -= h1*h2*vterm; + virdisp[4] -= h1*h3*vterm; + virdisp[5] -= h2*h3*vterm; + } + } else term1 = 0.0; + scale = -term1 / denom; + gridfft[n] *= scale; + gridfft[n+1] *= scale; + n += 2; + } + } + } + + // post-convolution operations including backward FFT + // gridppost = my portion of 3d grid in brick decomp w/ ghost values + + double ***gridpost = (double ***) d_kspace->post_convolution(); + + // get first derivatives of the reciprocal space energy + + int nlpts = (bsorder-1) / 2; + + for (m = 0; m < nlocal; m++) { + itype = amtype[m]; + iclass = amtype2class[itype]; + de1 = de2 = de3 = 0.0; + + k = igrid[m][2] - nlpts; + for (kb = 0; kb < bsorder; kb++) { + t3 = thetai3[m][kb][0]; + dt3 = nfft3 * thetai3[m][kb][1]; + + j = igrid[m][1] - nlpts; + for (jb = 0; jb < bsorder; jb++) { + t2 = thetai2[m][jb][0]; + dt2 = nfft2 * thetai2[m][jb][1]; + + i = igrid[m][0] - nlpts; + for (ib = 0; ib < bsorder; ib++) { + t1 = thetai1[m][ib][0]; + dt1 = nfft1 * thetai1[m][ib][1]; + term = gridpost[k][j][i]; + de1 += 2.0*term*dt1*t2*t3; + de2 += 2.0*term*dt2*t1*t3; + de3 += 2.0*term*dt3*t1*t2; + i++; + } + j++; + } + k++; + } + + fi = csix[iclass]; + f[m][0] -= fi * (recip[0][0]*de1 + recip[0][1]*de2 + recip[0][2]*de3); + f[m][1] -= fi * (recip[1][0]*de1 + recip[1][1]*de2 + recip[1][2]*de3); + f[m][2] -= fi * (recip[2][0]*de1 + recip[2][1]*de2 + recip[2][2]*de3); + } + + // account for the energy and virial correction terms + + term = csixpr * aewald*aewald*aewald / denom0; + + if (comm->me == 0) { + edisp -= term; + if (vflag_global) { + virdisp[0] -= term; + virdisp[1] -= term; + virdisp[2] -= term; + } + } +} diff --git a/src/AMOEBA/amoeba_file.cpp b/src/AMOEBA/amoeba_file.cpp new file mode 100644 index 0000000000..ebedbc13d5 --- /dev/null +++ b/src/AMOEBA/amoeba_file.cpp @@ -0,0 +1,1402 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel ator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_amoeba.h" + +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "utils.h" +#include "tokenizer.h" + +#include +#include +#include + +using namespace LAMMPS_NS; + +enum{UNKNOWN,FFIELD,LITERATURE,ATOMTYPE,VDWL,VDWLPAIR,BSTRETCH,SBEND,ABEND, + PAULI,DISPERSION,UB,OUTPLANE,TORSION,PITORSION,ATOMMULT, + QPENETRATION,DIPPOLAR,QTRANSFER,END_OF_FILE}; +enum{ALLINGER,BUFFERED_14_7}; +enum{ARITHMETIC,GEOMETRIC,CUBIC_MEAN,R_MIN,SIGMA,DIAMETER,HARMONIC,HHG,W_H}; +enum{MUTUAL,OPT,TCG,DIRECT}; +enum{NOFRAME,ZONLY,ZTHENX,BISECTOR,ZBISECT,THREEFOLD}; +enum{GEAR,ASPC,LSQR}; + +#define MAXLINE 65536 // crazy big for TORSION-TORSION section +#define MAX_TYPE_PER_GROUP 6 // max types per AMOEBA group +#define MAX_FRAME_PER_TYPE 32 // max multipole frames for any AMOEBA type + +#define DELTA_TYPE_CLASS 32 +#define DELTA_VDWL_PAIR 16 + +#define BOHR 0.52917721067 // Bohr in Angstroms + +// methods to read, parse, and store info from force field file + +/* ---------------------------------------------------------------------- + set default values for items read from PRM and key files +------------------------------------------------------------------------- */ + +void PairAmoeba::set_defaults() +{ + optorder = 0; + maxualt = 7; + tcgnab = 0; + + for (int i = 0; i <= 4; i++) { + special_hal[i] = 1.0; + special_repel[i] = 1.0; + special_disp[i] = 1.0; + special_mpole[i] = 1.0; + special_polar_pscale[i] = 1.0; + special_polar_piscale[i] = 1.0; + special_polar_wscale[i] = 1.0; + } + + polar_dscale = 0.0; + polar_uscale = 0.0; +} + +/* ---------------------------------------------------------------------- + read PRM force field file +------------------------------------------------------------------------- */ + +void PairAmoeba::read_prmfile(char *filename) +{ + // open potential file + + int me = comm->me; + FILE *fptr; + char line[MAXLINE]; + + if (me == 0) { + fptr = utils::open_potential(filename, lmp, nullptr); + if (fptr == nullptr) + error->one(FLERR, "Cannot open {} PRM file {}: {}", utils::uppercase(mystyle), filename, + utils::getsyserror()); + } + + // read sections, one at a time + // Force Field Definition section must come first + // skip Literature References section + // Atom Type Definitions must come before any other section + // other sections can follow in any order + + bool forcefield_flag = false; + bool atomtype_flag = false; + int section; + int nline = 0; + + while (true) { + if (me == 0) { + clearerr(fptr); + section = END_OF_FILE; + while (fgets(line, MAXLINE, fptr)) { + ++nline; + if (utils::strmatch(line, "^\\s*##\\s+\\S+.*##\\s*$")) { + auto trimmed = utils::trim(line); + if (utils::strmatch(trimmed, "^##\\s*Force Field")) + section = FFIELD; + else if (utils::strmatch(trimmed, "^##\\s*Literature")) + section = LITERATURE; + else if (utils::strmatch(trimmed, "^##\\s*Atom Type")) + section = ATOMTYPE; + else if (utils::strmatch(trimmed, "^##\\s*Van der Waals Param")) + section = VDWL; + else if (utils::strmatch(trimmed, "^##\\s*Van der Waals Pair")) + section = VDWLPAIR; + else if (utils::strmatch(trimmed, "^##\\s*Bond Stretching")) + section = BSTRETCH; + else if (utils::strmatch(trimmed, "^##\\s*Stretch-Bend")) + section = SBEND; + else if (utils::strmatch(trimmed, "^##\\s*Angle Bending")) + section = ABEND; + else if (utils::strmatch(trimmed, "^##\\s*Pauli Repulsion")) + section = PAULI; + else if (utils::strmatch(trimmed, "^##\\s*Dispersion Param")) + section = DISPERSION; + else if (utils::strmatch(trimmed, "^##\\s*Urey-Bradley")) + section = UB; + else if (utils::strmatch(trimmed, "^##\\s*Out-of-Plane")) + section = OUTPLANE; + else if (utils::strmatch(trimmed, "^##\\s*Torsional")) + section = TORSION; + else if (utils::strmatch(trimmed, "^##\\s*Pi-Torsion")) + section = PITORSION; + else if (utils::strmatch(trimmed, "^##\\s*Atomic Multipole")) + section = ATOMMULT; + else if (utils::strmatch(trimmed, "^##\\s*Charge Penetration")) + section = QPENETRATION; + else if (utils::strmatch(trimmed, "^##\\s*Dipole Polarizability")) + section = DIPPOLAR; + else if (utils::strmatch(trimmed, "^##\\s*Charge Transfer")) + section = QTRANSFER; + else { + section = UNKNOWN; + utils::logmesg(lmp, "Skipping section: {}\n", trimmed.substr(2, trimmed.size() - 4)); + } + + // skip two lines following section head keyword + fgets(line, MAXLINE, fptr); + fgets(line, MAXLINE, fptr); + nline += 2; + break; + } + } + if (ferror(fptr)) + error->one(FLERR, "Problem reading {} PRM file {}:{} {}", utils::uppercase(mystyle), nline, + filename, utils::getsyserror()); + if (feof(fptr)) section = END_OF_FILE; + } + MPI_Bcast(§ion, 1, MPI_INT, 0, world); + if (section == END_OF_FILE) break; + + // sanity checks + if (!forcefield_flag && (section != FFIELD)) + error->all(FLERR, "Force Field is not first section of pair {} potential file", mystyle); + + if ((section > ATOMTYPE) && !atomtype_flag) + error->all(FLERR, + "Atom Type section of pair {} potential file must " + "come before all but the Force Field section", + mystyle); + + if (section == FFIELD) forcefield_flag = true; + if (section == ATOMTYPE) atomtype_flag = true; + if (section == ATOMMULT) { + for (int i = 1; i <= n_amtype; i++) nmultiframe[i] = 0; + } + + char next[MAXLINE]; + next[0] = '\0'; + bool has_next = false; + int n; + while (true) { + if (me == 0) { + while (true) { + line[0] = '\0'; + n = -1; + if (has_next) strcpy(line, next); + has_next = false; + clearerr(fptr); + while (fgets(next, MAXLINE, fptr)) { + ++nline; + auto trimmed = utils::trim(next); + // chop off !! comments + std::size_t pos = trimmed.find("!!"); + if (pos != std::string::npos) trimmed = trimmed.substr(0, pos); + + // append to line if next line starts with a number + if (utils::is_double(utils::strfind(trimmed, "^\\S+"))) { + strcat(line, " "); + strcat(line, trimmed.c_str()); + has_next = false; + } else { + strcpy(next, trimmed.c_str()); + has_next = true; + break; + } + } + if (ferror(fptr)) + error->one(FLERR, "Problem reading {} PRM file {}:{} {}", utils::uppercase(mystyle), + nline, filename, utils::getsyserror()); + + auto trimmed = utils::trim(line); + + // start of next section + if (utils::strmatch(trimmed, "^####+$")) { + n = 0; + break; + } + + // skip concatenated line with commented out keyword + if (utils::strmatch(trimmed, "^#\\w+")) continue; + + // exit loop if line is not empty + if (!trimmed.empty()) { + strcpy(line, trimmed.c_str()); + n = strlen(line) + 1; + break; + } + if (feof(fptr)) { + n = -1; + break; + } + } + } + MPI_Bcast(&n, 1, MPI_INT, 0, world); + if (n < 0) break; + MPI_Bcast(line, n, MPI_CHAR, 0, world); + + // next section + + if (n == 0) break; + + // convert line to lowercase and get list of words + // XXX do we need to use lowercase? Preserving case may be useful later for type lables. + // XXX We could also use utils::split_words() which slower but can handle quotes. + auto words = Tokenizer(utils::lowercase(line)).as_vector(); + + switch (section) { + case FFIELD: + file_ffield(words, nline - 1); + break; + case LITERATURE: + file_literature(words, nline - 1); + break; + case ATOMTYPE: + file_atomtype(words, nline - 1); + break; + case VDWL: + file_vdwl(words, nline - 1); + break; + case VDWLPAIR: + file_vdwl_pair(words, nline - 1); + break; + case BSTRETCH: + file_bstretch(words, nline - 1); + break; + case SBEND: + file_sbend(words, nline - 1); + break; + case ABEND: + file_abend(words, nline - 1); + break; + case PAULI: + file_pauli(words, nline - 1); + break; + case DISPERSION: + file_dispersion(words, nline - 1); + break; + case UB: + file_ub(words, nline - 1); + break; + case OUTPLANE: + file_outplane(words, nline - 1); + break; + case TORSION: + file_torsion(words, nline - 1); + break; + case PITORSION: + file_pitorsion(words, nline - 1); + break; + case ATOMMULT: + file_multipole(words, nline - 1); + break; + case QPENETRATION: + file_charge_penetration(words, nline - 1); + break; + case DIPPOLAR: + file_dippolar(words, nline - 1); + break; + case QTRANSFER: + file_charge_transfer(words, nline - 1); + break; + case UNKNOWN: + case END_OF_FILE: + default: + ; // do nothing + } + } + + if (n < 0) break; + } + + if (me == 0) fclose(fptr); + + if (forcefield_flag == 0 || atomtype_flag == 0) + error->all(FLERR, "Pair {} potential file {} incomplete", mystyle, filename); +} + +/* ---------------------------------------------------------------------- + read optional KEY file of one-line settings +------------------------------------------------------------------------- */ + +void PairAmoeba::read_keyfile(char *filename) +{ + double aprd, bprd, cprd; + + // default settings for which there are keyword options + + aprd = bprd = cprd = 0.0; + + vdwcut = 9.0; + vdwtaper = 0.9 * vdwcut; + repcut = 6.0; + reptaper = 0.9 * repcut; + dispcut = 9.0; + disptaper = 0.9 * dispcut; + mpolecut = 9.0; + mpoletaper = 0.65 * mpolecut; + ctrncut = 6.0; + ctrntaper = 0.9 * ctrncut; + + ewaldcut = 7.0; + dewaldcut = 7.0; + usolvcut = 4.5; + udiag = 2.0; + + dhal = 0.07; + ghal = 0.12; + + use_ewald = use_dewald = 0; + + bseorder = 5; + bsporder = 5; + bsdorder = 4; + + aeewald = 0.4; + apewald = 0.4; + adewald = 0.4; + + use_pred = 0; + polpred = LSQR; + politer = 100; + poleps = 1.0e-6; + + pcgprec = 1; + pcgpeek = 1.0; + pcgguess = 1; + + aeewald_key = apewald_key = adewald_key = 0; + pmegrid_key = dpmegrid_key = 0; + + // done if keyfile not specified by pair_coeff command + + if (!filename) return; + + // open key file + + int me = comm->me; + FILE *fptr; + char line[MAXLINE]; + if (me == 0) { + fptr = utils::open_potential(filename, lmp, nullptr); + if (fptr == nullptr) + error->one(FLERR, "Cannot open {} key file {}: {}", utils::uppercase(mystyle), filename, + utils::getsyserror()); + } + + // read lines, one at a time + + int n; + char *ptr; + + while (true) { + if (me == 0) { + ptr = fgets(line, MAXLINE, fptr); + if (!ptr) + n = -1; + else + n = strlen(line) + 1; + } + MPI_Bcast(&n, 1, MPI_INT, 0, world); + if (n < 0) break; + MPI_Bcast(line, n, MPI_CHAR, 0, world); + + // skip over empty or comment lines + auto trimmed = utils::lowercase(utils::trim(line)); + if (trimmed.empty() || utils::strmatch(trimmed, "^#") || utils::strmatch(trimmed, "!!")) + continue; + + const auto words = Tokenizer(trimmed).as_vector(); + const int nwords = words.size(); + const auto keyword = words[0]; + + if (utils::strmatch(keyword, "^[^a-z]+")) { + ; // ignore keywords that do not start with text + } else if (keyword == "a-axis") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + aprd = utils::numeric(FLERR, words[1], false, lmp); + } else if (keyword == "b-axis") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + bprd = utils::numeric(FLERR, words[1], false, lmp); + } else if (keyword == "c-axis") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + cprd = utils::numeric(FLERR, words[1], false, lmp); + + } else if (keyword == "cutoff") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + double cut = utils::numeric(FLERR, words[1], false, lmp); + vdwcut = repcut = dispcut = mpolecut = ctrncut = ewaldcut = dewaldcut = cut; + vdwtaper = 0.9 * vdwcut; + reptaper = 0.9 * repcut; + disptaper = 0.9 * dispcut; + mpoletaper = 0.65 * mpolecut; + ctrntaper = 0.9 * ctrncut; + } else if (keyword == "taper") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + double taper = utils::numeric(FLERR, words[1], false, lmp); + if (taper >= 1.0) { + vdwtaper = reptaper = disptaper = mpoletaper = ctrntaper = taper; + } else { + taper = -taper; + vdwtaper = taper * vdwcut; + reptaper = taper * repcut; + disptaper = taper * dispcut; + mpoletaper = taper * mpolecut; + ctrntaper = taper * ctrncut; + } + } else if (keyword == "vdw-cutoff") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + vdwcut = utils::numeric(FLERR, words[1], false, lmp); + vdwtaper = 0.9 * vdwcut; + } else if (keyword == "repulsion-cutoff") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + repcut = utils::numeric(FLERR, words[1], false, lmp); + reptaper = 0.9 * repcut; + } else if (keyword == "dispersion-cutoff") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + dispcut = utils::numeric(FLERR, words[1], false, lmp); + disptaper = 0.9 * dispcut; + } else if (keyword == "mpole-cutoff") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + mpolecut = utils::numeric(FLERR, words[1], false, lmp); + mpoletaper = 0.65 * mpolecut; + } else if (keyword == "ctrn-cutoff") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + ctrncut = utils::numeric(FLERR, words[1], false, lmp); + ctrntaper = 0.9 * ctrncut; + } else if (keyword == "ewald-cutoff") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + ewaldcut = utils::numeric(FLERR, words[1], false, lmp); + } else if (keyword == "dewald-cutoff") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + dewaldcut = utils::numeric(FLERR, words[1], false, lmp); + } else if (keyword == "usolve-cutoff") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + usolvcut = utils::numeric(FLERR, words[1], false, lmp); + } else if (keyword == "usolve-diag") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + udiag = utils::numeric(FLERR, words[1], false, lmp); + + } else if (keyword == "vdw-taper") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + vdwtaper = utils::numeric(FLERR, words[1], false, lmp); + if (vdwtaper < 1.0) vdwtaper = -vdwtaper * vdwcut; + } else if (keyword == "repulsion-taper") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + reptaper = utils::numeric(FLERR, words[1], false, lmp); + if (reptaper < 1.0) reptaper = -reptaper * repcut; + } else if (keyword == "dispersion-taper") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + disptaper = utils::numeric(FLERR, words[1], false, lmp); + if (disptaper < 1.0) disptaper = -disptaper * vdwcut; + } else if (keyword == "mpole-taper") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + mpoletaper = utils::numeric(FLERR, words[1], false, lmp); + if (mpoletaper < 1.0) mpoletaper = -mpoletaper * vdwcut; + } else if (keyword == "ctrn-taper") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + ctrntaper = utils::numeric(FLERR, words[1], false, lmp); + if (ctrntaper < 1.0) ctrntaper = -ctrntaper * vdwcut; + + } else if (keyword == "delta-halgren") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + dhal = utils::numeric(FLERR, words[1], false, lmp); + } else if (keyword == "gamma-halgren") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + ghal = utils::numeric(FLERR, words[1], false, lmp); + + } else if (keyword == "ewald") { + if (nwords != 1) error->all(FLERR, "AMOEBA keyfile line is invalid"); + use_ewald = 1; + } else if (keyword == "dewald") { + if (nwords != 1) error->all(FLERR, "AMOEBA keyfile line is invalid"); + use_dewald = 1; + + } else if (keyword == "pme-order") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + bseorder = utils::numeric(FLERR, words[1], false, lmp); + } else if (keyword == "ppme-order") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + bsporder = utils::numeric(FLERR, words[1], false, lmp); + } else if (keyword == "dpme-order") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + bsdorder = utils::numeric(FLERR, words[1], false, lmp); + + } else if (keyword == "pme-grid") { + if (nwords != 2 && nwords != 4) error->all(FLERR, "AMOEBA keyfile line is invalid"); + if (nwords == 2) + nefft1 = nefft2 = nefft3 = utils::numeric(FLERR, words[1], false, lmp); + else { + nefft1 = utils::numeric(FLERR, words[1], false, lmp); + nefft2 = utils::numeric(FLERR, words[2], false, lmp); + nefft3 = utils::numeric(FLERR, words[3], false, lmp); + } + pmegrid_key = 1; + } else if (keyword == "dpme-grid") { + if (nwords != 2 && nwords != 4) error->all(FLERR, "AMOEBA keyfile line is invalid"); + if (nwords == 2) + ndfft1 = ndfft2 = ndfft3 = utils::numeric(FLERR, words[1], false, lmp); + else { + ndfft1 = utils::numeric(FLERR, words[1], false, lmp); + ndfft2 = utils::numeric(FLERR, words[2], false, lmp); + ndfft3 = utils::numeric(FLERR, words[3], false, lmp); + } + dpmegrid_key = 1; + + } else if (keyword == "ewald-alpha") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + aeewald = utils::numeric(FLERR, words[1], false, lmp); + aeewald_key = 1; + } else if (keyword == "pewald-alpha") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + apewald = utils::numeric(FLERR, words[1], false, lmp); + apewald_key = 1; + } else if (keyword == "dewald-alpha") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + adewald = utils::numeric(FLERR, words[1], false, lmp); + adewald_key = 1; + + // polarization options + + } else if (keyword == "polarization") { + if (words[1] == "mutual") + poltyp = MUTUAL; + else if (utils::strmatch(words[1], "^opt")) { + poltyp = OPT; + if (words[1] == "opt") + optorder = 4; + else + optorder = utils::inumeric(FLERR, &words[1][3], false, lmp); + if (optorder < 1 || optorder > 6) + error->all(FLERR, "Unrecognized polarization OPT{} in AMOEBA FF file", optorder); + } else if (words[1] == "tcg") + error->all(FLERR, "Polarization TCG not yet supported in AMOEBA/HIPPO"); + else if (words[1] == "direct") + poltyp = DIRECT; + else + error->all(FLERR, "Unrecognized polarization in AMOEBA FF file"); + + } else if (keyword == "polar-predict") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + if (words[1] == "gear") { + polpred = GEAR; + maxualt = 7; + } else if (words[1] == "aspc") { + polpred = ASPC; + maxualt = 17; + } else if (words[1] == "lsqr") { + polpred = LSQR; + maxualt = 7; + } else + error->all(FLERR, "AMOEBA keyfile line is invalid"); + use_pred = 1; + } else if (keyword == "polar-iter") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + politer = utils::inumeric(FLERR, words[1], false, lmp); + } else if (keyword == "polar-eps") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + poleps = utils::numeric(FLERR, words[1], false, lmp); + + } else if (keyword == "pcg-precond") { + if (nwords != 1) error->all(FLERR, "AMOEBA keyfile line is invalid"); + pcgprec = 1; + } else if (keyword == "pcg-noprecond") { + if (nwords != 1) error->all(FLERR, "AMOEBA keyfile line is invalid"); + pcgprec = 0; + } else if (keyword == "pcg-guess") { + if (nwords != 1) error->all(FLERR, "AMOEBA keyfile line is invalid"); + pcgguess = 1; + } else if (keyword == "pcg-noguess") { + if (nwords != 1) error->all(FLERR, "AMOEBA keyfile line is invalid"); + pcgguess = 0; + } else if (keyword == "pcg-peek") { + if (nwords != 2) error->all(FLERR, "AMOEBA keyfile line is invalid"); + pcgpeek = utils::numeric(FLERR, words[1], false, lmp); + + // Tinker keywords that LAMMPS can skip + + } else if (keyword == "parameters") { + } else if (keyword == "verbose") { + } else if (keyword == "openmp-threads") { + } else if (keyword == "digits") { + } else if (keyword == "neighbor-list") { + } else if (keyword == "tau-temperature") { + } else if (keyword == "tau-pressure") { + + // error if LAMMPS does not recognize other keywords + + } else + error->all(FLERR, "LAMMPS does not recognize AMOEBA keyfile keyword {}", keyword); + } + + // close key file + + if (me == 0) fclose(fptr); + + // cutoff resets for long-range interactions + + if (use_ewald) mpolecut = ewaldcut; + if (use_dewald) dispcut = dewaldcut; + + // error checks + + if (use_ewald || use_dewald) { + if (domain->nonperiodic) error->all(FLERR, "AMOEBA KSpace requires fully periodic system"); + } + + if (aprd > 0.0 && (!domain->xperiodic || domain->xprd != aprd)) + error->all(FLERR, "AMOEBA abc prd does not match LAMMPS domain"); + if (bprd > 0.0 && (!domain->yperiodic || domain->yprd != bprd)) + error->all(FLERR, "AMOEBA abc prd does not match LAMMPS domain"); + if (cprd > 0.0 && (!domain->zperiodic || domain->zprd != cprd)) + error->all(FLERR, "AMOEBA abc prd does not match LAMMPS domain"); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_ffield(const std::vector &words, int nline) +{ + if (words.size() < 2) + error->all(FLERR, "Keyword {} without argument(s) in {} PRM file", words[0], mystyle); + + if (words[0] == "forcefield") { + forcefield = utils::strdup(words[1]); + } else if (words[0] == "bond-cubic") { + bond_cubic = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "bond-quartic") { + bond_quartic = utils::numeric(FLERR, words[1], false, lmp); + + } else if (words[0] == "angle-cubic") { + angle_cubic = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "angle-quartic") { + angle_quartic = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "angle-pentic") { + angle_pentic = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "angle-sextic") { + angle_sextic = utils::numeric(FLERR, words[1], false, lmp); + + } else if (words[0] == "opbendtype") { + if (words[1] == "allinger") { + opbendtype = ALLINGER; + } else { + error->all(FLERR, "Unrecognized opbendtype {} in {} PRM file", words[1], mystyle); + } + } else if (words[0] == "opbend-cubic") { + opbend_cubic = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "opbend-quartic") { + opbend_quartic = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "opbend-pentic") { + opbend_pentic = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "opbend-sextic") { + opbend_sextic = utils::numeric(FLERR, words[1], false, lmp); + + } else if (words[0] == "torsionunit") { + torsion_unit = utils::numeric(FLERR, words[1], false, lmp); + + } else if (words[0] == "vdwtype") { + if (words[1] == "buffered-14-7") + vdwtype = BUFFERED_14_7; + else + error->all(FLERR, "Unrecognized vdwtype {} in {} PRM file", words[1], mystyle); + } else if (words[0] == "radiusrule") { + if (words[1] == "arithmetic") + radius_rule = ARITHMETIC; + else if (words[1] == "geometric") + radius_rule = GEOMETRIC; + else if (words[1] == "cubic-mean") + radius_rule = CUBIC_MEAN; + else + error->all(FLERR, "Unrecognized radiusrule {} in {} PRM file", words[1], mystyle); + } else if (words[0] == "radiustype") { + if (words[1] == "r-min") + radius_type = R_MIN; + else if (words[1] == "sigma") + radius_type = SIGMA; + else + error->all(FLERR, "Unrecognized radiustype {} in {} PRM file", words[1], mystyle); + } else if (words[0] == "radiussize") { + if (words[1] == "diameter") + radius_size = DIAMETER; + else + error->all(FLERR, "Unrecognized radiussize {} in {} PRM file", words[1], mystyle); + } else if (words[0] == "epsilonrule") { + if (words[1] == "arithmetic") + epsilon_rule = ARITHMETIC; + else if (words[1] == "geometric") + epsilon_rule = GEOMETRIC; + else if (words[1] == "harmonic") + epsilon_rule = HARMONIC; + else if (words[1] == "hhg") + epsilon_rule = HHG; + else if (words[1] == "w-h") + epsilon_rule = W_H; + else + error->all(FLERR, "Unrecognized epsilonrule {} in {} PRM file", words[1], mystyle); + + } else if (words[0] == "dielectric") { + am_dielectric = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "polarization") { + if (words[1] == "mutual") + poltyp = MUTUAL; + else if (utils::strmatch(words[1], "^opt")) { + poltyp = OPT; + if (words[1] == "opt") + optorder = 4; + else + optorder = utils::inumeric(FLERR, words[1].c_str() + 3, false, lmp); + if (optorder < 1 || optorder > 6) + error->all(FLERR, "Unrecognized polarization {} in {} PRM file line {}", words[1], mystyle); + } else if (words[1] == "tcg") + error->all(FLERR, "Polarization TCG not yet supported in AMOEBA/HIPPO"); + else if (words[1] == "direct") + poltyp = DIRECT; + else + error->all(FLERR, "Unrecognized polarization {} in {} PRM file", words[1], mystyle); + + } else if (words[0] == "vdw-12-scale") { + special_hal[1] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "vdw-13-scale") { + special_hal[2] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "vdw-14-scale") { + special_hal[3] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "vdw-15-scale") { + special_hal[4] = utils::numeric(FLERR, words[1], false, lmp); + + } else if (words[0] == "rep-12-scale") { + special_repel[1] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "rep-13-scale") { + special_repel[2] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "rep-14-scale") { + special_repel[3] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "rep-15-scale") { + special_repel[4] = utils::numeric(FLERR, words[1], false, lmp); + + } else if (words[0] == "disp-12-scale") { + special_disp[1] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "disp-13-scale") { + special_disp[2] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "disp-14-scale") { + special_disp[3] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "disp-15-scale") { + special_disp[4] = utils::numeric(FLERR, words[1], false, lmp); + + } else if (words[0] == "mpole-12-scale") { + special_mpole[1] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "mpole-13-scale") { + special_mpole[2] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "mpole-14-scale") { + special_mpole[3] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "mpole-15-scale") { + special_mpole[4] = utils::numeric(FLERR, words[1], false, lmp); + + } else if (words[0] == "polar-12-scale") { + special_polar_pscale[1] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "polar-13-scale") { + special_polar_pscale[2] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "polar-14-scale") { + special_polar_pscale[3] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "polar-15-scale") { + special_polar_pscale[4] = utils::numeric(FLERR, words[1], false, lmp); + + } else if (words[0] == "polar-12-intra") { + special_polar_piscale[1] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "polar-13-intra") { + special_polar_piscale[2] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "polar-14-intra") { + special_polar_piscale[3] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "polar-15-intra") { + special_polar_piscale[4] = utils::numeric(FLERR, words[1], false, lmp); + + } else if (words[0] == "induce-12-scale") { + special_polar_wscale[1] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "induce-13-scale") { + special_polar_wscale[2] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "induce-14-scale") { + special_polar_wscale[3] = utils::numeric(FLERR, words[1], false, lmp); + } else if (words[0] == "induce-15-scale") { + special_polar_wscale[4] = utils::numeric(FLERR, words[1], false, lmp); + + } else if (words[0] == "direct-11-scale") { + polar_dscale = utils::numeric(FLERR, words[1], false, lmp); + } else if (utils::strmatch(words[0], "^direct-1[234]-scale$")) { + double tmp = utils::numeric(FLERR, words[1], false, lmp); + if (tmp != 1.0) + error->all(FLERR, "{} FF direct-scale 1-2, 1-3, 1-4 values should be 1.0", + utils::uppercase(mystyle)); + } else if (words[0] == "mutual-11-scale") { + polar_uscale = utils::numeric(FLERR, words[1], false, lmp); + } else if (utils::strmatch(words[0], "^mutual-1[234]-scale$")) { + double tmp = utils::numeric(FLERR, words[1], false, lmp); + if (tmp != 1.0) + error->all(FLERR, "{} FF mutual-scale 1-2, 1-3, 1-4 values should be 1.0", + utils::uppercase(mystyle)); + // error if LAMMPS does not recognize keyword + } else { + error->all(FLERR, "LAMMPS does not recognize {} PRM file setting on line {}: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_literature(const std::vector & /*words*/, int /*nline*/) +{ + // do nothing, this section is skipped +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_atomtype(const std::vector &words, int nline) +{ + if (words[0] != "atom") + error->all(FLERR, "{} PRM file atom type line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() < 8) + error->all(FLERR, "{} PRM file atom type line {} has too few values ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); + + int itype = utils::inumeric(FLERR, words[1], false, lmp); + int iclass = utils::inumeric(FLERR, words[2], false, lmp); + + // grow per-type and per-class vecs/arrays as needed + + allocate_type_class(itype, iclass); + n_amtype = MAX(n_amtype, itype); + n_amclass = MAX(n_amclass, iclass); + + // store words from line + + amtype_defined[itype] = 1; + amclass_defined[iclass] = 1; + amtype2class[itype] = iclass; + + atomic_num[itype] = utils::inumeric(FLERR, words[words.size() - 3], false, lmp); + am_mass[itype] = utils::numeric(FLERR, words[words.size() - 2], false, lmp); + valence[itype] = utils::inumeric(FLERR, words[words.size() - 1], false, lmp); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_vdwl(const std::vector &words, int nline) +{ + if (words[0] != "vdw") + error->all(FLERR, "{} PRM file Van der Waals line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() != 4 && words.size() != 5) + error->all(FLERR, "{} PRM file Vand der Walls line {} has incorrect length ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); + + int iclass = utils::inumeric(FLERR, words[1], false, lmp); + if (iclass < 1 || iclass > n_amclass) + error->all(FLERR, "{} RPM file Van der Waals type index {} on line {} is invalid: {}", + utils::uppercase(mystyle), iclass, nline, utils::join_words(words, " ")); + + vdwl_sigma[iclass] = utils::numeric(FLERR, words[2], false, lmp); + vdwl_eps[iclass] = utils::numeric(FLERR, words[3], false, lmp); + if (words.size() == 4) + kred[iclass] = 0.0; + else + kred[iclass] = utils::numeric(FLERR, words[4], false, lmp); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_vdwl_pair(const std::vector &words, int nline) +{ + if (words[0] != "vdwpr") + error->all(FLERR, "{} PRM file Van der Waals pair line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() != 5) + error->all(FLERR, "{} PRM file Van der Waals pair line {} has incorret length ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); + + if (nvdwl_pair == max_vdwl_pair) { + max_vdwl_pair += DELTA_VDWL_PAIR; + memory->grow(vdwl_class_pair, max_vdwl_pair, 2, "amoeba:vdwl_class_pair"); + memory->grow(vdwl_sigma_pair, max_vdwl_pair, "amoeba:vdwl_sigma_pair"); + memory->grow(vdwl_eps_pair, max_vdwl_pair, "amoeba:vdwl_eps_pair"); + } + + vdwl_class_pair[nvdwl_pair][0] = utils::inumeric(FLERR, words[1], false, lmp); + vdwl_class_pair[nvdwl_pair][1] = utils::inumeric(FLERR, words[2], false, lmp); + vdwl_sigma_pair[nvdwl_pair] = utils::numeric(FLERR, words[3], false, lmp); + vdwl_eps_pair[nvdwl_pair] = utils::numeric(FLERR, words[4], false, lmp); + nvdwl_pair++; +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_bstretch(const std::vector &words, int nline) +{ + if (words[0] != "bond") + error->all(FLERR, "{} PRM file bond stretch line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() < 5) + error->all(FLERR, "{} PRM file bond stretch line {} has too few values ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_sbend(const std::vector &words, int nline) +{ + if (words[0] != "strbnd") + error->all(FLERR, "{} PRM file stretch-bend line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() != 6) + error->all(FLERR, "{} PRM file stretch-bend line {} has too few values ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_abend(const std::vector &words, int nline) +{ + if (words.size() < 6) + error->all(FLERR, "{} PRM file angle bending line {} has too few values ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_pauli(const std::vector &words, int nline) +{ + if (words[0] != "repulsion") + error->all(FLERR, "{} PRM file Pauli repulsion line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() < 5) + error->all(FLERR, "{} PRM file Pauli repulsion line {} has too few values ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); + + int itype = utils::inumeric(FLERR, words[1], false, lmp); + if (itype < 1 || itype > n_amtype) + error->all(FLERR, "{} PRM file Pauli repulsion type index {} on line {} is invalid: {}", + utils::uppercase(mystyle), itype, nline, utils::join_words(words, " ")); + + // negate the elepr setting + + sizpr[itype] = utils::numeric(FLERR, words[2], false, lmp); + dmppr[itype] = utils::numeric(FLERR, words[3], false, lmp); + elepr[itype] = -fabs(utils::numeric(FLERR, words[4], false, lmp)); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_dispersion(const std::vector &words, int nline) +{ + if (words[0] != "dispersion") + error->all(FLERR, "{} PRM file dispersion line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() < 4) + error->all(FLERR, "{} PRM file dispersion line {} has too few values ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); + + int iclass = utils::inumeric(FLERR, words[1], false, lmp); + if (iclass < 1 || iclass > n_amclass) + error->all(FLERR, "{} PRM file dispersion class index {} on line {} is invalid: {}", + utils::uppercase(mystyle), iclass, nline, utils::join_words(words, " ")); + + csix[iclass] = utils::numeric(FLERR, words[2], false, lmp); + adisp[iclass] = utils::numeric(FLERR, words[3], false, lmp); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_ub(const std::vector &words, int nline) +{ + if (words[0] != "ureybrad") + error->all(FLERR, "{} PRM file Urey-Bradley line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() != 6) + error->all(FLERR, "{} PRM file Urey-Bradley line {} has incorrect length ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_outplane(const std::vector &words, int nline) +{ + if (words[0] != "opbend") + error->all(FLERR, "{} PRM file out-of-plane bend line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() != 6) + error->all(FLERR, "{} PRM file out-of-plane bend line {} has incorrect length ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_torsion(const std::vector &words, int nline) +{ + if (words[0] != "torsion") + error->all(FLERR, "{} PRM file torsion line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() != 14) + error->all(FLERR, "{} PRM file torsion line {} has incorrect length ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_pitorsion(const std::vector &words, int nline) +{ + if (words[0] != "pitors") + error->all(FLERR, "{} PRM file pi-torsion line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() != 4) + error->all(FLERR, "{} PRM file pi-torsion line {} has incorrect length ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_multipole(const std::vector &words, int nline) +{ + if (words[0] != "multipole") + error->all(FLERR, "{} PRM file atomic multipole line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() < 12 || words.size() > 15) + error->all(FLERR, "{} PRM file atomic multipole line {} has incorrect length ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); + + int itype = utils::inumeric(FLERR, words[1], false, lmp); + if (itype < 1 || itype > n_amtype) + error->all(FLERR, "{} PRM file atomic multipole type index {} on line {} is invalid: {}", + utils::uppercase(mystyle), itype, nline, utils::join_words(words, " ")); + + int iframe = nmultiframe[itype]; + if (iframe >= MAX_FRAME_PER_TYPE) + error->all(FLERR, "{} MAX_FRAME_PER_TYPE is too small: {}", utils::uppercase(mystyle), iframe); + + int extra; + if (words.size() == 12) { + zpole[itype][iframe] = xpole[itype][iframe] = ypole[itype][iframe] = 0; + extra = 2; + } else if (words.size() == 13) { + zpole[itype][iframe] = utils::inumeric(FLERR, words[2], false, lmp); + xpole[itype][iframe] = ypole[itype][iframe] = 0; + extra = 3; + } else if (words.size() == 14) { + zpole[itype][iframe] = utils::inumeric(FLERR, words[2], false, lmp); + xpole[itype][iframe] = utils::inumeric(FLERR, words[3], false, lmp); + ypole[itype][iframe] = 0; + extra = 4; + } else if (words.size() == 15) { + zpole[itype][iframe] = utils::inumeric(FLERR, words[2], false, lmp); + xpole[itype][iframe] = utils::inumeric(FLERR, words[3], false, lmp); + ypole[itype][iframe] = utils::inumeric(FLERR, words[4], false, lmp); + extra = 5; + } + + for (int i = 0; i < 10; i++) + fpole[itype][iframe][i] = utils::numeric(FLERR, words[extra + i], false, lmp); + + // convert fpole to be 13 values by symmetrizing quadrupole 3x3 matrix + // xx yx yy zx zy zz --> xx xy xz yz yy yz zx zy zz + + double xx = fpole[itype][iframe][4]; + double yx = fpole[itype][iframe][5]; + double yy = fpole[itype][iframe][6]; + double zx = fpole[itype][iframe][7]; + double zy = fpole[itype][iframe][8]; + double zz = fpole[itype][iframe][9]; + + fpole[itype][iframe][4] = xx; + fpole[itype][iframe][8] = yy; + fpole[itype][iframe][12] = zz; + fpole[itype][iframe][5] = fpole[itype][iframe][7] = yx; + fpole[itype][iframe][6] = fpole[itype][iframe][10] = zx; + fpole[itype][iframe][9] = fpole[itype][iframe][11] = zy; + + // rescale pole values to real units + // convert the dipole and quadrupole moments to Angstroms + // quadrupole terms divided by 3 for use as traceless values + + for (int i = 1; i < 4; i++) fpole[itype][iframe][i] *= BOHR; + for (int i = 4; i < 13; i++) fpole[itype][iframe][i] *= BOHR * BOHR / 3.0; + + // set mpaxis from xyz pole values + // uses both positive and negative values + + mpaxis[itype][iframe] = ZTHENX; + if (zpole[itype][iframe] == 0) mpaxis[itype][iframe] = NOFRAME; + if (zpole[itype][iframe] != 0 && xpole[itype][iframe] == 0) + mpaxis[itype][iframe] = ZONLY; + if (zpole[itype][iframe] < 0 || xpole[itype][iframe] < 0) + mpaxis[itype][iframe] = BISECTOR; + if (xpole[itype][iframe] < 0 && ypole[itype][iframe] < 0) + mpaxis[itype][iframe] = ZBISECT; + int xyzmax = MAX(zpole[itype][iframe],xpole[itype][iframe]); + xyzmax = MAX(xyzmax,ypole[itype][iframe]); + if (xyzmax < 0) mpaxis[itype][iframe] = THREEFOLD; + if (mpaxis[itype][iframe] < 0) error->all(FLERR,"Mpaxis value not set"); + + // now reset xyz pole to positive values + + if (xpole[itype][iframe] < 0) xpole[itype][iframe] = -xpole[itype][iframe]; + if (ypole[itype][iframe] < 0) ypole[itype][iframe] = -ypole[itype][iframe]; + if (zpole[itype][iframe] < 0) zpole[itype][iframe] = -zpole[itype][iframe]; + + nmultiframe[itype]++; +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_charge_penetration(const std::vector &words, int nline) +{ + if (words[0] != "chgpen") + error->all(FLERR, "{} PRM file charge penetration line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() < 4) + error->all(FLERR, "{} PRM file charge penetration line {} has too few values ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); + + int iclass = utils::inumeric(FLERR, words[1], false, lmp); + if (iclass < 1 || iclass > n_amclass) + error->all(FLERR, "{} PRM file charge penetration class index {} on line {} is invalid: {}", + utils::uppercase(mystyle), iclass, nline, utils::join_words(words, " ")); + + pcore[iclass] = fabs(utils::numeric(FLERR, words[2], false, lmp)); + palpha[iclass] = utils::numeric(FLERR, words[3], false, lmp); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_dippolar(const std::vector &words, int nline) +{ + const std::size_t ndipparams = amoeba ? 4 : 3; + if (words[0] != "polarize") + error->all(FLERR, "{} PRM file dipole polariability line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() < ndipparams) + error->all(FLERR, "{} PRM file dipole polarizability line {} has too few values ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); + + int itype = utils::inumeric(FLERR, words[1], false, lmp); + if (itype < 1 || itype > n_amtype) + error->all(FLERR, "{} PRM file dipole polarizability type index {} on line {} is invalid: {}", + utils::uppercase(mystyle), itype, nline, utils::join_words(words, " ")); + + polarity[itype] = utils::numeric(FLERR, words[2], false, lmp); + pdamp[itype] = pow(polarity[itype], 1.0 / 6.0); + if (amoeba) thole[itype] = utils::numeric(FLERR, words[3], false, lmp); + + // eventually AMOEBA+ files will set dirdamp + + dirdamp[itype] = 0.0; + + int ngroup = words.size() - ndipparams; + if (ngroup > MAX_TYPE_PER_GROUP) + error->all(FLERR, "{} MAX_TYPE_PER_GROUP is too small: {} vs {}", utils::uppercase(mystyle), + MAX_TYPE_PER_GROUP, ngroup); + + npolgroup[itype] = ngroup; + for (int igroup = 0; igroup < ngroup; igroup++) + polgroup[itype][igroup] = utils::inumeric(FLERR, words[ndipparams + igroup], false, lmp); +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::file_charge_transfer(const std::vector &words, int nline) +{ + if (words[0] != "chgtrn") + error->all(FLERR, "{} PRM file charge transfer line {} has invalid format: {}", + utils::uppercase(mystyle), nline, utils::join_words(words, " ")); + + if (words.size() < 4) + error->all(FLERR, "{} PRM file charge transfer line {} has too few values ({}): {}", + utils::uppercase(mystyle), nline, words.size(), utils::join_words(words, " ")); + + int iclass = utils::inumeric(FLERR, words[1], false, lmp); + if (iclass < 1 || iclass > n_amclass) + error->all(FLERR, "{} PRM file charge transfer class index {} on line {} is invalid: {}", + utils::uppercase(mystyle), iclass, nline, utils::join_words(words, " ")); + + chgct[iclass] = utils::numeric(FLERR, words[2], false, lmp); + dmpct[iclass] = utils::numeric(FLERR, words[3], false, lmp); +} + +/* ---------------------------------------------------------------------- + initialize per type and per class data to NULL +------------------------------------------------------------------------- */ + +void PairAmoeba::initialize_type_class() +{ + n_amtype = n_amclass = 0; + max_amtype = max_amclass = 0; + nvdwl_pair = max_vdwl_pair = 0; + + // per type data + + amtype_defined = nullptr; + amtype2class = nullptr; + atomic_num = nullptr; + valence = nullptr; + am_mass = nullptr; + am_q = nullptr; + am_mu = nullptr; + npolgroup = nullptr; + polgroup = nullptr; + polarity = nullptr; + pdamp = nullptr; + thole = nullptr; + dirdamp = nullptr; + sizpr = nullptr; + dmppr = nullptr; + elepr = nullptr; + + nmultiframe = nullptr; + mpaxis = nullptr; + xpole = nullptr; + ypole = nullptr; + zpole = nullptr; + fpole = nullptr; + + // per class data + + amclass_defined = nullptr; + vdwl_eps = nullptr; + vdwl_sigma = nullptr; + kred = nullptr; + csix = nullptr; + adisp = nullptr; + chgct = nullptr; + dmpct = nullptr; + pcore = nullptr; + palpha = nullptr; + + // other + + vdwl_class_pair = nullptr; + vdwl_sigma_pair = nullptr; + vdwl_eps_pair = nullptr; +} + +/* ---------------------------------------------------------------------- + allocate per type and per class data + vecs/arrays store info for itype = 1 to N_amtype inclusive + vecs/arrays store info for iclass = 1 to N_amclass inclusive + itype,iclass = line just read from AMOEBA force field file +------------------------------------------------------------------------- */ + +void PairAmoeba::allocate_type_class(int itype, int iclass) +{ + if (itype >= max_amtype) { + while (itype >= max_amtype) max_amtype += DELTA_TYPE_CLASS; + + memory->grow(amtype_defined,max_amtype,"amoeba:amtype_defined"); + memory->grow(amtype2class,max_amtype,"amoeba:amtype2class"); + + memory->grow(atomic_num,max_amtype,"amoeba:atomic_num"); + memory->grow(valence,max_amtype,"amoeba:valence"); + memory->grow(am_mass,max_amtype,"amoeba:am_mass"); + memory->grow(am_q,max_amtype,"amoeba:am_q"); + memory->grow(am_mu,max_amtype,3,"amoeba:am_mu"); + memory->grow(npolgroup,max_amtype,"amoeba:npolgroup"); + memory->grow(polgroup,max_amtype,MAX_TYPE_PER_GROUP,"amoeba:polgroup"); + memory->grow(polarity,max_amtype,"amoeba:polarity"); + memory->grow(pdamp,max_amtype,"amoeba:pdamp"); + memory->grow(thole,max_amtype,"amoeba:thole"); + memory->grow(dirdamp,max_amtype,"amoeba:dirdamp"); + memory->grow(sizpr,max_amtype,"amoeba:sizpr"); + memory->grow(dmppr,max_amtype,"amoeba:dmppr"); + memory->grow(elepr,max_amtype,"amoeba:elepr"); + + memory->grow(nmultiframe,max_amtype,"amoeba:nummulti"); + memory->grow(mpaxis,max_amtype,MAX_FRAME_PER_TYPE,"amoeba:mpaxis"); + memory->grow(xpole,max_amtype,MAX_FRAME_PER_TYPE,"amoeba:xpole"); + memory->grow(ypole,max_amtype,MAX_FRAME_PER_TYPE,"amoeba:ypole"); + memory->grow(zpole,max_amtype,MAX_FRAME_PER_TYPE,"amoeba:zpole"); + memory->grow(fpole,max_amtype,MAX_FRAME_PER_TYPE,13,"amoeba:fpole"); + } + + if (iclass >= max_amclass) { + while (iclass >= max_amclass) max_amclass += DELTA_TYPE_CLASS; + + memory->grow(amclass_defined,max_amtype,"amoeba:amclass_defined"); + + memory->grow(vdwl_eps,max_amclass,"amoeba:vdwl_eps"); + memory->grow(vdwl_sigma,max_amclass,"amoeba:vdwl_sigma"); + memory->grow(kred,max_amclass,"amoeba:kred"); + memory->grow(csix,max_amclass,"amoeba:csix"); + memory->grow(adisp,max_amclass,"amoeba:adisp"); + memory->grow(chgct,max_amclass,"amoeba:chgct"); + memory->grow(dmpct,max_amclass,"amoeba:dmpct"); + memory->grow(pcore,max_amtype,"amoeba:pcore"); + memory->grow(palpha,max_amtype,"amoeba:palpha"); + } +} + +/* ---------------------------------------------------------------------- + deallocate per type and per class data +------------------------------------------------------------------------- */ + +void PairAmoeba::deallocate_type_class() +{ + // per type data + + memory->destroy(amtype_defined); + memory->destroy(amtype2class); + memory->destroy(atomic_num); + memory->destroy(valence); + memory->destroy(am_mass); + memory->destroy(am_q); + memory->destroy(am_mu); + memory->destroy(npolgroup); + memory->destroy(polgroup); + memory->destroy(polarity); + memory->destroy(pdamp); + memory->destroy(thole); + memory->destroy(dirdamp); + memory->destroy(sizpr); + memory->destroy(dmppr); + memory->destroy(elepr); + + memory->destroy(nmultiframe); + memory->destroy(mpaxis); + memory->destroy(xpole); + memory->destroy(ypole); + memory->destroy(zpole); + memory->destroy(fpole); + + // per class data + + memory->destroy(amclass_defined); + memory->destroy(vdwl_eps); + memory->destroy(vdwl_sigma); + memory->destroy(kred); + memory->destroy(csix); + memory->destroy(adisp); + memory->destroy(chgct); + memory->destroy(dmpct); + memory->destroy(pcore); + memory->destroy(palpha); + + // other + + memory->destroy(vdwl_class_pair); + memory->destroy(vdwl_sigma_pair); + memory->destroy(vdwl_eps_pair); +} diff --git a/src/AMOEBA/amoeba_hal.cpp b/src/AMOEBA/amoeba_hal.cpp new file mode 100644 index 0000000000..21bb7ad099 --- /dev/null +++ b/src/AMOEBA/amoeba_hal.cpp @@ -0,0 +1,205 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_amoeba.h" + +#include "atom.h" +#include "error.h" +#include "neigh_list.h" + +#include + +using namespace LAMMPS_NS; + +enum{VDWL,REPULSE,QFER,DISP,MPOLE,POLAR,USOLV,DISP_LONG,MPOLE_LONG,POLAR_LONG}; + +/* ---------------------------------------------------------------------- + hal = buffered 14-7 Vdwl interactions + adapted from Tinker ehal1c() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::hal() +{ + int i,j,ii,jj,itype,jtype,iclass,jclass,iv,jv; + int special_which; + double e,de,eps; + double rv,rv7; + double xi,yi,zi; + double xr,yr,zr; + double redi,rediv; + double redj,redjv; + double dedx,dedy,dedz; + double rho,tau,tau7; + double dtau,gtau; + double taper,dtaper; + double rik,rik2,rik3; + double rik4,rik5; + double rik6,rik7; + double vxx,vyy,vzz; + double vyx,vzx,vzy; + double factor_hal; + + int inum,jnum; + int *ilist,*jlist,*numneigh,**firstneigh; + + // set cutoffs and taper coeffs + + choose(VDWL); + + // owned atoms + + double **f = atom->f; + + // neigh list + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // find van der Waals energy and derivatives via neighbor list + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + itype = amtype[i]; + iclass = amtype2class[itype]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + redi = kred[iclass]; + rediv = 1.0 - redi; + xi = xred[i][0]; + yi = xred[i][1]; + zi = xred[i][2]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + special_which = sbmask15(j); + factor_hal = special_hal[special_which]; + if (factor_hal == 0.0) continue; + j &= NEIGHMASK15; + + xr = xi - xred[j][0]; + yr = yi - xred[j][1]; + zr = zi - xred[j][2]; + rik2 = xr*xr + yr*yr + zr*zr; + + if (rik2 > off2) continue; + + // compute the energy contribution for this interaction + + jtype = amtype[j]; + jclass = amtype2class[jtype]; + + // check for an interaction distance less than the cutoff + // special_which = 3 is a 1-4 neighbor with its own sigma,epsilon + + rik = sqrt(rik2); + rv = radmin[iclass][jclass]; + eps = epsilon[iclass][jclass]; + if (special_which == 3) { + rv = radmin4[iclass][jclass]; + eps = epsilon4[iclass][jclass]; + } + eps *= factor_hal; + + rv7 = pow(rv,7.0); + rik6 = pow(rik2,3.0); + rik7 = rik6 * rik; + rho = rik7 + ghal*rv7; + tau = (dhal+1.0) / (rik + dhal*rv); + tau7 = pow(tau,7.0); + dtau = tau / (dhal+1.0); + gtau = eps*tau7*rik6*(ghal+1.0)*pow(rv7/rho,2.0); + e = eps*tau7*rv7*((ghal+1.0)*rv7/rho-2.0); + de = -7.0 * (dtau*e+gtau); + + // use energy switching if near the cutoff distance + + if (rik2 > cut2) { + rik3 = rik2 * rik; + rik4 = rik2 * rik2; + rik5 = rik2 * rik3; + taper = c5*rik5 + c4*rik4 + c3*rik3 + c2*rik2 + c1*rik + c0; + dtaper = 5.0*c5*rik4 + 4.0*c4*rik3 + 3.0*c3*rik2 + 2.0*c2*rik + c1; + de = e*dtaper + de*taper; + e *= taper; + } + + ehal += e; + + // find the chain rule terms for derivative components + + de = de / rik; + dedx = de * xr; + dedy = de * yr; + dedz = de * zr; + + // increment the total van der Waals energy and derivatives + // if jv < 0, trigger an error, needed H-bond partner is missing + + iv = red2local[i]; + jv = red2local[j]; + if (jv < 0) + error->one(FLERR,"AMOEBA hal cannot find H bond partner - " + "ghost comm is too short"); + + if (i == iv) { + f[i][0] -= dedx; + f[i][1] -= dedy; + f[i][2] -= dedz; + } else { + f[i][0] -= dedx*redi; + f[i][1] -= dedy*redi; + f[i][2] -= dedz*redi; + f[iv][0] -= dedx*rediv; + f[iv][1] -= dedy*rediv; + f[iv][2] -= dedz*rediv; + } + + if (j == jv) { + f[j][0] += dedx; + f[j][1] += dedy; + f[j][2] += dedz; + } else { + redj = kred[jclass]; + redjv = 1.0 - redj; + f[j][0] += dedx*redj; + f[j][1] += dedy*redj; + f[j][2] += dedz*redj; + f[jv][0] += dedx*redjv; + f[jv][1] += dedy*redjv; + f[jv][2] += dedz*redjv; + } + + // increment the internal virial tensor components + + if (vflag_global) { + vxx = xr * dedx; + vyx = yr * dedx; + vzx = zr * dedx; + vyy = yr * dedy; + vzy = zr * dedy; + vzz = zr * dedz; + + virhal[0] -= vxx; + virhal[1] -= vyy; + virhal[2] -= vzz; + virhal[3] -= vyx; + virhal[4] -= vzx; + virhal[5] -= vzy; + } + } + } +} diff --git a/src/AMOEBA/amoeba_induce.cpp b/src/AMOEBA/amoeba_induce.cpp new file mode 100644 index 0000000000..3d9d7809cc --- /dev/null +++ b/src/AMOEBA/amoeba_induce.cpp @@ -0,0 +1,1699 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_amoeba.h" + +#include "amoeba_convolution.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "fft3d_wrap.h" +#include "fix_store.h" +#include "math_const.h" +#include "memory.h" +#include "my_page.h" +#include "neigh_list.h" + +#include +#include + +using namespace LAMMPS_NS; +using namespace MathConst; + +enum{INDUCE,RSD,SETUP_AMOEBA,SETUP_HIPPO,KMPOLE,AMGROUP}; // forward comm +enum{FIELD,ZRSD,TORQUE,UFLD}; // reverse comm +enum{VDWL,REPULSE,QFER,DISP,MPOLE,POLAR,USOLV,DISP_LONG,MPOLE_LONG,POLAR_LONG}; +enum{MUTUAL,OPT,TCG,DIRECT}; +enum{GEAR,ASPC,LSQR}; +enum{BUILD,APPLY}; +enum{GORDON1,GORDON2}; + +#define DEBYE 4.80321 // conversion factor from q-Angs (real units) to Debye + +/* ---------------------------------------------------------------------- + induce = induced dipole moments via pre-conditioned CG solver + adapted from Tinker induce0a() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::induce() +{ + bool done; + int i,j,m,itype; + int iter,maxiter; + double polmin; + double eps,epsold; + double epsd,epsp; + double udsum,upsum; + double a,ap,b,bp; + double sum,sump,term; + double reduce[4],allreduce[4]; + + // set cutoffs, taper coeffs, and PME params + + if (use_ewald) choose(POLAR_LONG); + else choose(POLAR); + + // owned atoms + + int nlocal = atom->nlocal; + + // zero out the induced dipoles at each site + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + uind[i][j] = 0.0; + uinp[i][j] = 0.0; + } + } + + // get the electrostatic field due to permanent multipoles + + dfield0c(field,fieldp); + + // reverse comm to sum field,fieldp from ghost atoms to owned atoms + + crstyle = FIELD; + comm->reverse_comm(this); + + // set induced dipoles to polarizability times direct field + + for (i = 0; i < nlocal; i++) { + itype = amtype[i]; + for (j = 0; j < 3; j++) { + udir[i][j] = polarity[itype] * field[i][j]; + udirp[i][j] = polarity[itype] * fieldp[i][j]; + if (pcgguess) { + uind[i][j] = udir[i][j]; + uinp[i][j] = udirp[i][j]; + } + } + } + + // get induced dipoles via the OPT extrapolation method + // NOTE: could rewrite these loops to avoid allocating + // uopt,uoptp with a optorder+1 dimension, just optorder + // since no need to store optorder+1 values after these loops + + if (poltyp == OPT) { + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + uopt[i][0][j] = udir[i][j]; + uoptp[i][0][j] = udirp[i][j]; + } + } + + for (m = 1; m <= optorder; m++) { + optlevel = m - 1; // used in umutual1() for fopt,foptp + + cfstyle = INDUCE; + comm->forward_comm(this); + + ufield0c(field,fieldp); + + crstyle = FIELD; + comm->reverse_comm(this); + + for (i = 0; i < nlocal; i++) { + itype = amtype[i]; + for (j = 0; j < 3; j++) { + uopt[i][m][j] = polarity[itype] * field[i][j]; + uoptp[i][m][j] = polarity[itype] * fieldp[i][j]; + uind[i][j] = uopt[i][m][j]; + uinp[i][j] = uoptp[i][m][j]; + } + } + } + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + uind[i][j] = 0.0; + uinp[i][j] = 0.0; + usum[i][j] = 0.0; + usump[i][j] = 0.0; + for (m = 0; m <= optorder; m++) { + usum[i][j] += uopt[i][m][j]; + usump[i][j] += uoptp[i][m][j]; + uind[i][j] += copt[m]*usum[i][j]; + uinp[i][j] += copt[m]*usump[i][j]; + } + } + } + } + + // set tolerances for computation of mutual induced dipoles + + if (poltyp == MUTUAL) { + done = false; + maxiter = 100; + iter = 0; + polmin = 0.00000001; + eps = 100.0; + + // estimate induced dipoles using a polynomial predictor + + if (use_pred && nualt == maxualt) { + ulspred(); + + double ***udalt = fixudalt->tstore; + double ***upalt = fixupalt->tstore; + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + udsum = 0.0; + upsum = 0.0; + for (m = 0; m < nualt; m++) { + udsum += bpred[m]*udalt[i][m][j]; + upsum += bpredp[m]*upalt[i][m][j]; + } + uind[i][j] = udsum; + uinp[i][j] = upsum; + } + } + } + + // estimate induced dipoles via inertial extended Lagrangian + // not supported for now + // requires uaux,upaux to persist with each atom + // also requires a velocity vector(s) to persist + // also requires updating uaux,upaux in the Verlet integration + + /* + if (use_ielscf) { + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + uind[i][j] = uaux[i][j]; + uinp[i][j] = upaux[i][j]; + } + } + } + */ + + // get the electrostatic field due to induced dipoles + + cfstyle = INDUCE; + comm->forward_comm(this); + + ufield0c(field,fieldp); + + crstyle = FIELD; + comm->reverse_comm(this); + + // set initial conjugate gradient residual and conjugate vector + + for (i = 0; i < nlocal; i++) { + itype = amtype[i]; + + poli[i] = MAX(polmin,polarity[itype]); + for (j = 0; j < 3; j++) { + if (pcgguess) { + rsd[i][j] = (udir[i][j]-uind[i][j])/poli[i] + field[i][j]; + rsdp[i][j] = (udirp[i][j]-uinp[i][j])/poli[i] + fieldp[i][j]; + } else { + rsd[i][j] = udir[i][j] / poli[i]; + rsdp[i][j] = udirp[i][j] / poli[i]; + } + zrsd[i][j] = rsd[i][j]; + zrsdp[i][j] = rsdp[i][j]; + } + } + + if (pcgprec) { + cfstyle = RSD; + comm->forward_comm(this); + uscale0b(BUILD,rsd,rsdp,zrsd,zrsdp); + uscale0b(APPLY,rsd,rsdp,zrsd,zrsdp); + crstyle = ZRSD; + comm->reverse_comm(this); + } + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + conj[i][j] = zrsd[i][j]; + conjp[i][j] = zrsdp[i][j]; + } + } + + // conjugate gradient iteration of the mutual induced dipoles + + while (!done) { + iter++; + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + vec[i][j] = uind[i][j]; + vecp[i][j] = uinp[i][j]; + uind[i][j] = conj[i][j]; + uinp[i][j] = conjp[i][j]; + } + } + + cfstyle = INDUCE; + comm->forward_comm(this); + + ufield0c(field,fieldp); + + crstyle = FIELD; + comm->reverse_comm(this); + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + uind[i][j] = vec[i][j]; + uinp[i][j] = vecp[i][j]; + vec[i][j] = conj[i][j]/poli[i] - field[i][j]; + vecp[i][j] = conjp[i][j]/poli[i] - fieldp[i][j]; + } + } + + a = 0.0; + ap = 0.0; + sum = 0.0; + sump = 0.0; + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + a += conj[i][j]*vec[i][j]; + ap += conjp[i][j]*vecp[i][j]; + sum += rsd[i][j]*zrsd[i][j]; + sump += rsdp[i][j]*zrsdp[i][j]; + } + } + + reduce[0] = a; + reduce[1] = ap; + reduce[2] = sum; + reduce[3] = sump; + MPI_Allreduce(reduce,allreduce,4,MPI_DOUBLE,MPI_SUM,world); + a = allreduce[0]; + ap = allreduce[1]; + sum = allreduce[2]; + sump = allreduce[3]; + + if (a != 0.0) a = sum / a; + if (ap != 0.0) ap = sump / ap; + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + uind[i][j] = uind[i][j] + a*conj[i][j]; + uinp[i][j] = uinp[i][j] + ap*conjp[i][j]; + rsd[i][j] = rsd[i][j] - a*vec[i][j]; + rsdp[i][j] = rsdp[i][j] - ap*vecp[i][j]; + zrsd[i][j] = rsd[i][j]; + zrsdp[i][j] = rsdp[i][j]; + } + } + + if (pcgprec) { + cfstyle = RSD; + comm->forward_comm(this); + uscale0b(APPLY,rsd,rsdp,zrsd,zrsdp); + crstyle = ZRSD; + comm->reverse_comm(this); + } + + b = 0.0; + bp = 0.0; + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + b += rsd[i][j]*zrsd[i][j]; + bp += rsdp[i][j]*zrsdp[i][j]; + } + } + + reduce[0] = b; + reduce[1] = bp; + MPI_Allreduce(reduce,allreduce,4,MPI_DOUBLE,MPI_SUM,world); + b = allreduce[0]; + bp = allreduce[1]; + + if (sum != 0.0) b /= sum; + if (sump != 0.0) bp /= sump; + + epsd = 0.0; + epsp = 0.0; + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + conj[i][j] = zrsd[i][j] + b*conj[i][j]; + conjp[i][j] = zrsdp[i][j] + bp*conjp[i][j]; + epsd += rsd[i][j]*rsd[i][j]; + epsp += rsdp[i][j]*rsdp[i][j]; + } + } + + reduce[0] = epsd; + reduce[1] = epsp; + MPI_Allreduce(reduce,allreduce,4,MPI_DOUBLE,MPI_SUM,world); + epsd = allreduce[0]; + epsp = allreduce[1]; + + // check the convergence of the mutual induced dipoles + + epsold = eps; + eps = MAX(epsd,epsp); + eps = DEBYE * sqrt(eps/atom->natoms); + + if (eps < poleps) done = true; + if (eps > epsold) done = true; + if (iter >= politer) done = true; + + // apply a "peek" iteration to the mutual induced dipoles + + if (done) { + for (i = 0; i < nlocal; i++) { + term = pcgpeek * poli[i]; + for (j = 0; j < 3; j++) { + uind[i][j] += term*rsd[i][j]; + uinp[i][j] += term*rsdp[i][j]; + } + } + } + } + + // if (comm->me == 0) printf("CG iteration count = %d\n",iter); + + // terminate the calculation if dipoles failed to converge + // NOTE: could make this an error + + if (iter >= maxiter || eps > epsold) + if (comm->me == 0) + error->warning(FLERR,"AMOEBA induced dipoles did not converge"); + } + + // update the lists of previous induced dipole values + // shift previous m values up to m+1, add new values at m = 0 + // only when preconditioner is used + + if (use_pred) { + double ***udalt = fixudalt->tstore; + double ***upalt = fixupalt->tstore; + + nualt = MIN(nualt+1,maxualt); + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + for (m = nualt-1; m > 0; m--) { + udalt[i][m][j] = udalt[i][m-1][j]; + upalt[i][m][j] = upalt[i][m-1][j]; + } + udalt[i][0][j] = uind[i][j]; + upalt[i][0][j] = uinp[i][j]; + } + } + } +} + +/* ---------------------------------------------------------------------- + ulspred = induced dipole prediction coeffs + + ulspred uses standard extrapolation or a least squares fit + to set coefficients of an induced dipole predictor polynomial + literature references: + + J. Kolafa, "Time-Reversible Always Stable Predictor-Corrector + Method for Molecular Dynamics of Polarizable Molecules", Journal + of Computational Chemistry, 25, 335-342 (2004) + + W. Wang and R. D. Skeel, "Fast Evaluation of Polarizable Forces", + Journal of Chemical Physics, 123, 164107 (2005) +------------------------------------------------------------------------- */ + +void PairAmoeba::ulspred() +{ + int i,j,k,m; + double coeff,udk,upk; + double amax,apmax; + + // set the Gear predictor binomial coefficients + + if (polpred == GEAR) { + for (i = 0; i < nualt; i++) { + coeff = gear[i]; + bpred[i] = coeff; + bpredp[i] = coeff; + bpreds[i] = coeff; + bpredps[i] = coeff; + } + + // set always stable predictor-corrector (ASPC) coefficients + + } else if (polpred == ASPC) { + for (i = 0; i < nualt; i++) { + coeff = aspc[i]; + bpred[i] = coeff; + bpredp[i] = coeff; + bpreds[i] = coeff; + bpredps[i] = coeff; + } + + // derive normal equations corresponding to least squares fit + + } else if (polpred == LSQR) { + double ***udalt = fixudalt->tstore; + double ***upalt = fixupalt->tstore; + + for (k = 0; k < nualt; k++) { + b_ualt[k] = 0.0; + bp_ualt[k] = 0.0; + for (m = k; m < nualt; m++) { + c_ualt[k][m] = 0.0; + cp_ualt[k][m] = 0.0; + } + } + + int nlocal = atom->nlocal; + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + for (k = 0; k < nualt; k++) { + udk = udalt[i][k][j]; + upk = upalt[i][k][j]; + for (m = k; m < nualt; m++) { + c_ualt[k][m] += udk*udalt[i][m][j]; + cp_ualt[k][m] += upk*upalt[i][m][j]; + } + } + } + } + + i = 0; + for (k = 1; k < nualt; k++) { + b_ualt[k-1] = c_ualt[0][k]; + bp_ualt[k-1] = cp_ualt[0][k]; + for (m = k; m < nualt; m++) { + a_ualt[i] = c_ualt[k][m]; + ap_ualt[i] = cp_ualt[k][m]; + i++; + } + } + + // check for nonzero coefficients and solve normal equations + + k = nualt - 1; + amax = 0.0; + apmax = 0.0; + for (i = 0; i < k*(k+1)/2; i++) { + amax = MAX(amax,a_ualt[i]); + apmax = MAX(apmax,ap_ualt[i]); + } + if (amax != 0.0) cholesky(nualt-1,a_ualt,b_ualt); + if (apmax != 0.0) cholesky(nualt-1,ap_ualt,bp_ualt); + + // transfer the final solution to the coefficient vector + + for (k = 0; k < nualt-1; k++) { + bpred[k] = b_ualt[k]; + bpredp[k] = bp_ualt[k]; + bpreds[k] = b_ualt[k]; + bpredps[k] = bp_ualt[k]; + } + bpred[nualt-1] = 0.0; + bpredp[nualt-1] = 0.0; + bpreds[nualt-1] = 0.0; + bpredps[nualt-1] = 0.0; + } +} + +/* ---------------------------------------------------------------------- + ufield0c = mutual induction via Ewald sum + ufield0c computes the mutual electrostatic field due to + induced dipole moments via Ewald summation +------------------------------------------------------------------------- */ + +void PairAmoeba::ufield0c(double **field, double **fieldp) +{ + int i,j; + double term; + + // zero field,fieldp for owned and ghost atoms + + int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; + + for (i = 0; i < nall; i++) { + for (j = 0; j < 3; j++) { + field[i][j] = 0.0; + fieldp[i][j] = 0.0; + } + } + + // get the reciprocal space part of the mutual field + + if (polar_kspace_flag) umutual1(field,fieldp); + + // get the real space portion of the mutual field + + if (polar_rspace_flag) umutual2b(field,fieldp); + + // add the self-energy portion of the mutual field + + term = (4.0/3.0) * aewald*aewald*aewald / MY_PIS; + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + field[i][j] += term*uind[i][j]; + fieldp[i][j] += term*uinp[i][j]; + } + } +} + +/* ---------------------------------------------------------------------- + uscale0b = dipole preconditioner via neigh list + uscale0b builds and applies a preconditioner for the conjugate + gradient induced dipole solver using a neighbor pair list +------------------------------------------------------------------------- */ + +void PairAmoeba::uscale0b(int mode, double **rsd, double **rsdp, + double **zrsd, double **zrsdp) +{ + int i,j,itype,jtype,iclass,jclass,igroup,jgroup; + int ii,jj; + double xi,yi,zi; + double xr,yr,zr; + double r,r2,rr3,rr5; + double pdi,pti; + double polmin; + double poli,polik; + double alphai,alphak; + double damp,expdamp; + double pgamma; + double scale3,scale5; + double m1,m2,m3; + double m4,m5,m6; + double factor_uscale,factor_wscale; + double dmpik[5]; + + // owned atoms + + double **x = atom->x; + int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; + + // neighbor list info + + int inum,jnum; + int *ilist,*jlist; + double *pclist; + + inum = list->inum; + ilist = list->ilist; + + // ------------------------------------------------ + // apply the preconditioning matrix to the current residual + // ------------------------------------------------ + + if (mode == APPLY) { + + // use diagonal preconditioner elements as first approximation + + polmin = 0.00000001; + for (i = 0; i < nlocal; i++) { + itype = amtype[i]; + poli = udiag * MAX(polmin,polarity[itype]); + for (j = 0; j < 3; j++) { + zrsd[i][j] = poli * rsd[i][j]; + zrsdp[i][j] = poli * rsdp[i][j]; + } + } + + // zero zrsd,zrsdp for ghost atoms only + + for (i = nlocal; i < nall; i++) { + for (j = 0; j < 3; j++) { + zrsd[i][j] = 0.0; + zrsdp[i][j] = 0.0; + } + } + + // use the off-diagonal preconditioner elements in second phase + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + jlist = firstneigh_precond[i]; + jnum = numneigh_precond[i]; + pclist = firstneigh_pcpc[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK15; + + m1 = pclist[0]; + m2 = pclist[1]; + m3 = pclist[2]; + m4 = pclist[3]; + m5 = pclist[4]; + m6 = pclist[5]; + + zrsd[i][0] += m1*rsd[j][0] + m2*rsd[j][1] + m3*rsd[j][2]; + zrsd[i][1] += m2*rsd[j][0] + m4*rsd[j][1] + m5*rsd[j][2]; + zrsd[i][2] += m3*rsd[j][0] + m5*rsd[j][1] + m6*rsd[j][2]; + zrsd[j][0] += m1*rsd[i][0] + m2*rsd[i][1] + m3*rsd[i][2]; + zrsd[j][1] += m2*rsd[i][0] + m4*rsd[i][1] + m5*rsd[i][2]; + zrsd[j][2] += m3*rsd[i][0] + m5*rsd[i][1] + m6*rsd[i][2]; + zrsdp[i][0] += m1*rsdp[j][0] + m2*rsdp[j][1] + m3*rsdp[j][2]; + zrsdp[i][1] += m2*rsdp[j][0] + m4*rsdp[j][1] + m5*rsdp[j][2]; + zrsdp[i][2] += m3*rsdp[j][0] + m5*rsdp[j][1] + m6*rsdp[j][2]; + zrsdp[j][0] += m1*rsdp[i][0] + m2*rsdp[i][1] + m3*rsdp[i][2]; + zrsdp[j][1] += m2*rsdp[i][0] + m4*rsdp[i][1] + m5*rsdp[i][2]; + zrsdp[j][2] += m3*rsdp[i][0] + m5*rsdp[i][1] + m6*rsdp[i][2]; + + pclist += 6; + } + } + + return; + } + + // ------------------------------------------------ + // build the off-diagonal elements of preconditioning matrix + // ------------------------------------------------ + + dpage_pcpc->reset(); + + // determine the off-diagonal elements of the preconditioner + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + itype = amtype[i]; + iclass = amtype2class[itype]; + igroup = amgroup[i]; + + jlist = firstneigh_precond[i]; + jnum = numneigh_precond[i]; + + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + + poli = polarity[itype]; + if (amoeba) { + pdi = pdamp[itype]; + pti = thole[itype]; + } else { + alphai = palpha[iclass]; + } + + // evaluate all sites in induce neigh list, no cutoff + // store results in plist for re-use in APPLY + + pclist = dpage_pcpc->get(6*jnum); + firstneigh_pcpc[i] = pclist; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_wscale = special_polar_wscale[sbmask15(j)]; + j &= NEIGHMASK15; + + xr = x[j][0] - xi; + yr = x[j][1] - yi; + zr = x[j][2] - zi; + r2 = xr*xr + yr* yr + zr*zr; + r = sqrt(r2); + + jtype = amtype[j]; + jclass = amtype2class[jtype]; + jgroup = amgroup[j]; + + if (igroup == jgroup) factor_uscale = polar_uscale; + else factor_uscale = 1.0; + + if (amoeba) { + scale3 = factor_uscale; + scale5 = factor_uscale; + damp = pdi * pdamp[jtype]; + if (damp != 0.0) { + pgamma = MIN(pti,thole[jtype]); + damp = -pgamma * pow((r/damp),3.0); + if (damp > -50.0) { + expdamp = exp(damp); + scale3 *= 1.0 - expdamp; + scale5 *= 1.0 - expdamp*(1.0-damp); + } + } + } else { + alphak = palpha[jclass]; + dampmut(r,alphai,alphak,dmpik); + scale3 = factor_wscale * dmpik[2]; + scale5 = factor_wscale * dmpik[4]; + } + + polik = poli * polarity[jtype]; + rr3 = scale3 * polik / (r*r2); + rr5 = 3.0 * scale5 * polik / (r*r2*r2); + + pclist[0] = rr5*xr*xr - rr3; + pclist[1] = rr5*xr*yr; + pclist[2] = rr5*xr*zr; + pclist[3] = rr5*yr*yr - rr3; + pclist[4] = rr5*yr*zr; + pclist[5] = rr5*zr*zr - rr3; + pclist += 6; + } + } +} + +/* ---------------------------------------------------------------------- + dfield0c = direct induction via Ewald sum + dfield0c computes the mutual electrostatic field due to + permanent multipole moments via Ewald summation +------------------------------------------------------------------------- */ + +void PairAmoeba::dfield0c(double **field, double **fieldp) +{ + int i,j; + double term; + + // zero out field,fieldp for owned and ghost atoms + + int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; + + for (i = 0; i < nall; i++) { + for (j = 0; j < 3; j++) { + field[i][j] = 0.0; + fieldp[i][j] = 0.0; + } + } + + // get the reciprocal space part of the permanent field + + if (polar_kspace_flag) udirect1(field); + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + fieldp[i][j] = field[i][j]; + } + } + + // get the real space portion of the permanent field + + if (polar_rspace_flag) udirect2b(field,fieldp); + + // get the self-energy portion of the permanent field + + term = (4.0/3.0) * aewald*aewald*aewald / MY_PIS; + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + field[i][j] += term*rpole[i][j+1]; + fieldp[i][j] += term*rpole[i][j+1]; + } + } +} + +/* ---------------------------------------------------------------------- + umutual1 = Ewald recip mutual induced field + umutual1 computes the reciprocal space contribution of the + induced atomic dipole moments to the field +------------------------------------------------------------------------- */ + +void PairAmoeba::umutual1(double **field, double **fieldp) +{ + int i,j,k,m,n; + int nxlo,nxhi,nylo,nyhi,nzlo,nzhi; + double term; + double a[3][3]; // indices not flipped vs Fortran + + // return if the Ewald coefficient is zero + + if (aewald < 1.0e-6) return; + + // convert Cartesian dipoles to fractional coordinates + + for (j = 0; j < 3; j++) { + a[0][j] = nfft1 * recip[0][j]; + a[1][j] = nfft2 * recip[1][j]; + a[2][j] = nfft3 * recip[2][j]; + } + + int nlocal = atom->nlocal; + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + fuind[i][j] = a[j][0]*uind[i][0] + a[j][1]*uind[i][1] + a[j][2]*uind[i][2]; + fuinp[i][j] = a[j][0]*uinp[i][0] + a[j][1]*uinp[i][1] + a[j][2]*uinp[i][2]; + } + } + + // gridpre = my portion of 4d grid in brick decomp w/ ghost values + + double ****gridpre = (double ****) ic_kspace->zero(); + + // map 2 values to grid + + grid_uind(fuind,fuinp,gridpre); + + // pre-convolution operations including forward FFT + // gridfft = my portion of complex 3d grid in FFT decomposition + + double *gridfft = ic_kspace->pre_convolution(); + + // --------------------- + // convolution operation + // --------------------- + + nxlo = ic_kspace->nxlo_fft; + nxhi = ic_kspace->nxhi_fft; + nylo = ic_kspace->nylo_fft; + nyhi = ic_kspace->nyhi_fft; + nzlo = ic_kspace->nzlo_fft; + nzhi = ic_kspace->nzhi_fft; + + // use qfac values stored in udirect1() + + m = n = 0; + for (k = nzlo; k <= nzhi; k++) { + for (j = nylo; j <= nyhi; j++) { + for (i = nxlo; i <= nxhi; i++) { + term = qfac[m++]; + gridfft[n] *= term; + gridfft[n+1] *= term; + n += 2; + } + } + } + + // post-convolution operations including backward FFT + // gridppost = my portion of 4d grid in brick decomp w/ ghost values + + double ****gridpost = (double ****) ic_kspace->post_convolution(); + + // get potential + + fphi_uind(gridpost,fdip_phi1,fdip_phi2,fdip_sum_phi); + + // store fractional reciprocal potentials for OPT method + + if (poltyp == OPT) { + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 10; j++) { + fopt[i][optlevel][j] = fdip_phi1[i][j]; + foptp[i][optlevel][j] = fdip_phi2[i][j]; + } + } + } + + // convert the dipole fields from fractional to Cartesian + + for (i = 0; i < 3; i++) { + a[0][i] = nfft1 * recip[0][i]; + a[1][i] = nfft2 * recip[1][i]; + a[2][i] = nfft3 * recip[2][i]; + } + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + dipfield1[i][j] = a[j][0]*fdip_phi1[i][1] + + a[j][1]*fdip_phi1[i][2] + a[j][2]*fdip_phi1[i][3]; + dipfield2[i][j] = a[j][0]*fdip_phi2[i][1] + + a[j][1]*fdip_phi2[i][2] + a[j][2]*fdip_phi2[i][3]; + } + } + + // increment the field at each multipole site + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + field[i][j] -= dipfield1[i][j]; + fieldp[i][j] -= dipfield2[i][j]; + } + } +} + +/* ---------------------------------------------------------------------- + umutual2b = Ewald real mutual field via list + umutual2b computes the real space contribution of the induced + atomic dipole moments to the field via a neighbor list +------------------------------------------------------------------------- */ + +void PairAmoeba::umutual2b(double **field, double **fieldp) +{ + int i,j,m,ii,jj,jnum; + double fid[3],fkd[3]; + double fip[3],fkp[3]; + double *uindi,*uindj,*uinpi,*uinpj; + + // neigh list + + int inum = list->inum; + int *ilist = list->ilist; + int *jlist; + double *tdipdip; + + // loop over owned atoms and neighs + // compute field terms for each pairwise interaction + // using tdipdip values stored by udirect2b() + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + uindi = uind[i]; + uinpi = uinp[i]; + jlist = firstneigh_dipole[i]; + tdipdip = firstneigh_dipdip[i]; + jnum = numneigh_dipole[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + uindj = uind[j]; + uinpj = uinp[j]; + + fid[0] = tdipdip[0]*uindj[0] + tdipdip[1]*uindj[1] + tdipdip[2]*uindj[2]; + fid[1] = tdipdip[1]*uindj[0] + tdipdip[3]*uindj[1] + tdipdip[4]*uindj[2]; + fid[2] = tdipdip[2]*uindj[0] + tdipdip[4]*uindj[1] + tdipdip[5]*uindj[2]; + + fkd[0] = tdipdip[0]*uindi[0] + tdipdip[1]*uindi[1] + tdipdip[2]*uindi[2]; + fkd[1] = tdipdip[1]*uindi[0] + tdipdip[3]*uindi[1] + tdipdip[4]*uindi[2]; + fkd[2] = tdipdip[2]*uindi[0] + tdipdip[4]*uindi[1] + tdipdip[5]*uindi[2]; + + fip[0] = tdipdip[0]*uinpj[0] + tdipdip[1]*uinpj[1] + tdipdip[2]*uinpj[2]; + fip[1] = tdipdip[1]*uinpj[0] + tdipdip[3]*uinpj[1] + tdipdip[4]*uinpj[2]; + fip[2] = tdipdip[2]*uinpj[0] + tdipdip[4]*uinpj[1] + tdipdip[5]*uinpj[2]; + + fkp[0] = tdipdip[0]*uinpi[0] + tdipdip[1]*uinpi[1] + tdipdip[2]*uinpi[2]; + fkp[1] = tdipdip[1]*uinpi[0] + tdipdip[3]*uinpi[1] + tdipdip[4]*uinpi[2]; + fkp[2] = tdipdip[2]*uinpi[0] + tdipdip[4]*uinpi[1] + tdipdip[5]*uinpi[2]; + + tdipdip += 6; + + // increment the field at each site due to this interaction + + for (m = 0; m < 3; m++) { + field[i][m] += fid[m]; + field[j][m] += fkd[m]; + fieldp[i][m] += fip[m]; + fieldp[j][m] += fkp[m]; + } + } + } +} + +/* ---------------------------------------------------------------------- + udirect1 = Ewald recip direct induced field + udirect1 computes the reciprocal space contribution of the + permanent atomic multipole moments to the field + since corresponding values in empole and epolar are different +------------------------------------------------------------------------- */ + +void PairAmoeba::udirect1(double **field) +{ + int i,j,k,m,n; + int nhalf1,nhalf2,nhalf3; + int nxlo,nxhi,nylo,nyhi,nzlo,nzhi; + double r1,r2,r3; + double h1,h2,h3; + double volterm,denom; + double hsq,expterm; + double term,pterm; + + // return if the Ewald coefficient is zero + + if (aewald < 1.0e-6) return; + + pterm = (MY_PI/aewald) * (MY_PI/aewald); + double volbox = domain->prd[0] * domain->prd[1] * domain->prd[2]; + volterm = MY_PI * volbox; + + // FFT moduli pre-computations + // set igrid for each atom and its B-spline coeffs + + nfft1 = i_kspace->nx; + nfft2 = i_kspace->ny; + nfft3 = i_kspace->nz; + bsorder = i_kspace->order; + + moduli(); + bspline_fill(); + + // copy the multipole moments into local storage areas + + int nlocal = atom->nlocal; + + for (i = 0; i < nlocal; i++) { + cmp[i][0] = rpole[i][0]; + cmp[i][1] = rpole[i][1]; + cmp[i][2] = rpole[i][2]; + cmp[i][3] = rpole[i][3]; + cmp[i][4] = rpole[i][4]; + cmp[i][5] = rpole[i][8]; + cmp[i][6] = rpole[i][12]; + cmp[i][7] = 2.0 * rpole[i][5]; + cmp[i][8] = 2.0 * rpole[i][6]; + cmp[i][9] = 2.0 * rpole[i][9]; + } + + // convert Cartesian multipoles to fractional coordinates + + cmp_to_fmp(cmp,fmp); + + // gridpre = my portion of 3d grid in brick decomp w/ ghost values + // zeroed by setup() + + double ***gridpre = (double ***) i_kspace->zero(); + + // map multipole moments to grid + + grid_mpole(fmp,gridpre); + + // pre-convolution operations including forward FFT + // gridfft = my 1d portion of complex 3d grid in FFT decomp + + double *gridfft = i_kspace->pre_convolution(); + + // --------------------- + // convolution operation + // --------------------- + + nhalf1 = (nfft1+1) / 2; + nhalf2 = (nfft2+1) / 2; + nhalf3 = (nfft3+1) / 2; + + nxlo = i_kspace->nxlo_fft; + nxhi = i_kspace->nxhi_fft; + nylo = i_kspace->nylo_fft; + nyhi = i_kspace->nyhi_fft; + nzlo = i_kspace->nzlo_fft; + nzhi = i_kspace->nzhi_fft; + + m = n = 0; + for (k = nzlo; k <= nzhi; k++) { + for (j = nylo; j <= nyhi; j++) { + for (i = nxlo; i <= nxhi; i++) { + r1 = (i >= nhalf1) ? i-nfft1 : i; + r2 = (j >= nhalf2) ? j-nfft2 : j; + r3 = (k >= nhalf3) ? k-nfft3 : k; + h1 = recip[0][0]*r1 + recip[0][1]*r2 + recip[0][2]*r3; // matvec + h2 = recip[1][0]*r1 + recip[1][1]*r2 + recip[1][2]*r3; + h3 = recip[2][0]*r1 + recip[2][1]*r2 + recip[2][2]*r3; + hsq = h1*h1 + h2*h2 + h3*h3; + term = -pterm * hsq; + expterm = 0.0; + if (term > -50.0 && hsq != 0.0) { + denom = volterm*hsq*bsmod1[i]*bsmod2[j]*bsmod3[k]; + expterm = exp(term) / denom; + } + qfac[m++] = expterm; + gridfft[n] *= expterm; + gridfft[n+1] *= expterm; + n += 2; + } + } + } + + // post-convolution operations including backward FFT + // gridppost = my portion of 3d grid in brick decomp w/ ghost values + + double ***gridpost = (double ***) i_kspace->post_convolution(); + + // get potential + + fphi_mpole(gridpost,fphi); + + // convert the field from fractional to Cartesian + + fphi_to_cphi(fphi,cphi); + + // increment the field at each multipole site + + for (i = 0; i < nlocal; i++) { + field[i][0] -= cphi[i][1]; + field[i][1] -= cphi[i][2]; + field[i][2] -= cphi[i][3]; + } +} + +/* ---------------------------------------------------------------------- + udirect2b = Ewald real direct field via list + udirect2b computes the real space contribution of the permanent + atomic multipole moments to the field via a neighbor list +------------------------------------------------------------------------- */ + +void PairAmoeba::udirect2b(double **field, double **fieldp) +{ + int i,j,m,n,ii,jj,jextra,ndip,itype,jtype,iclass,jclass,igroup,jgroup; + double xr,yr,zr,r,r2; + double rr1,rr2,rr3; + double rr5,rr7; + double rr3i,rr5i,rr7i; + double rr3k,rr5k,rr7k; + double rr3ik,rr5ik; + double bfac,exp2a; + double ci,dix,diy,diz; + double qixx,qiyy,qizz; + double qixy,qixz,qiyz; + double ck,dkx,dky,dkz; + double qkxx,qkyy,qkzz; + double qkxy,qkxz,qkyz; + double dir,dkr; + double qix,qiy,qiz,qir; + double qkx,qky,qkz,qkr; + double corei,corek; + double vali,valk; + double alphai,alphak; + double ralpha,aefac; + double aesq2,aesq2n; + double pdi,pti,ddi; + double pgamma; + double damp,expdamp; + double scale3,scale5; + double scale7,scalek; + double bn[4],bcn[3]; + double fid[3],fkd[3]; + double fip[3],fkp[3]; + double dmpi[7],dmpk[7]; + double dmpik[5]; + double factor_dscale,factor_pscale,factor_uscale,factor_wscale; + + int inum,jnum; + int *ilist,*jlist,*numneigh,**firstneigh; + + // owned atoms + + double **x = atom->x; + double *pval = atom->dvector[index_pval]; + + // neigh list + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + aesq2 = 2.0 * aewald * aewald; + aesq2n = 0.0; + if (aewald > 0.0) aesq2n = 1.0 / (MY_PIS*aewald); + + // rebuild dipole-dipole pair list and store pairwise dipole matrices + // done one atom at a time in real-space double loop over atoms & neighs + + int *neighptr; + double *tdipdip; + + // compute the real space portion of the Ewald summation + + ipage_dipole->reset(); + dpage_dipdip->reset(); + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + itype = amtype[i]; + iclass = amtype2class[itype]; + igroup = amgroup[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + n = ndip = 0; + neighptr = ipage_dipole->vget(); + tdipdip = dpage_dipdip->vget(); + + ci = rpole[i][0]; + dix = rpole[i][1]; + diy = rpole[i][2]; + diz = rpole[i][3]; + qixx = rpole[i][4]; + qixy = rpole[i][5]; + qixz = rpole[i][6]; + qiyy = rpole[i][8]; + qiyz = rpole[i][9]; + qizz = rpole[i][12]; + if (amoeba) { + pdi = pdamp[itype]; + pti = thole[itype]; + ddi = dirdamp[itype]; + } else { + corei = pcore[iclass]; + alphai = palpha[iclass]; + vali = pval[i]; + } + + // evaluate all sites within the cutoff distance + + for (jj = 0; jj < jnum; jj++) { + jextra = jlist[jj]; + j = jextra & NEIGHMASK15; + + xr = x[j][0] - x[i][0]; + yr = x[j][1] - x[i][1]; + zr = x[j][2] - x[i][2]; + r2 = xr*xr + yr* yr + zr*zr; + if (r2 > off2) continue; + + jtype = amtype[j]; + jclass = amtype2class[jtype]; + jgroup = amgroup[j]; + + if (amoeba) { + factor_wscale = special_polar_wscale[sbmask15(jextra)]; + if (igroup == jgroup) { + factor_pscale = special_polar_piscale[sbmask15(jextra)]; + factor_dscale = polar_dscale; + factor_uscale = polar_uscale; + } else { + factor_pscale = special_polar_pscale[sbmask15(jextra)]; + factor_dscale = factor_uscale = 1.0; + } + + } else { + factor_wscale = special_polar_wscale[sbmask15(jextra)]; + if (igroup == jgroup) { + factor_dscale = factor_pscale = special_polar_piscale[sbmask15(jextra)]; + factor_uscale = polar_uscale; + } else { + factor_dscale = factor_pscale = special_polar_pscale[sbmask15(jextra)]; + factor_uscale = 1.0; + } + } + + r = sqrt(r2); + rr1 = 1.0 / r; + rr2 = rr1 * rr1; + rr3 = rr2 * rr1; + rr5 = 3.0 * rr2 * rr3; + rr7 = 5.0 * rr2 * rr5; + ck = rpole[j][0]; + dkx = rpole[j][1]; + dky = rpole[j][2]; + dkz = rpole[j][3]; + qkxx = rpole[j][4]; + qkxy = rpole[j][5]; + qkxz = rpole[j][6]; + qkyy = rpole[j][8]; + qkyz = rpole[j][9]; + qkzz = rpole[j][12]; + + // intermediates involving moments and separation distance + + dir = dix*xr + diy*yr + diz*zr; + qix = qixx*xr + qixy*yr + qixz*zr; + qiy = qixy*xr + qiyy*yr + qiyz*zr; + qiz = qixz*xr + qiyz*yr + qizz*zr; + qir = qix*xr + qiy*yr + qiz*zr; + dkr = dkx*xr + dky*yr + dkz*zr; + qkx = qkxx*xr + qkxy*yr + qkxz*zr; + qky = qkxy*xr + qkyy*yr + qkyz*zr; + qkz = qkxz*xr + qkyz*yr + qkzz*zr; + qkr = qkx*xr + qky*yr + qkz*zr; + + // calculate the real space Ewald error function terms + + ralpha = aewald * r; + bn[0] = erfc(ralpha) * rr1; + exp2a = exp(-ralpha*ralpha); + aefac = aesq2n; + for (m = 1; m <= 3; m++) { + bfac = m+m-1; + aefac = aesq2 * aefac; + bn[m] = (bfac*bn[m-1]+aefac*exp2a) * rr2; + } + + // find the field components for Thole polarization damping + + if (amoeba) { + scale3 = 1.0; + scale5 = 1.0; + scale7 = 1.0; + damp = pdi * pdamp[jtype]; + if (damp != 0.0) { + pgamma = MIN(ddi,dirdamp[jtype]); + if (pgamma != 0.0) { + damp = pgamma * pow(r/damp,1.5); + if (damp < 50.0) { + expdamp = exp(-damp) ; + scale3 = 1.0 - expdamp ; + scale5 = 1.0 - expdamp*(1.0+0.5*damp); + scale7 = 1.0 - expdamp*(1.0+0.65*damp + 0.15*damp*damp); + } + } else { + pgamma = MIN(pti,thole[jtype]); + damp = pgamma * pow(r/damp,3.0); + if (damp < 50.0) { + expdamp = exp(-damp); + scale3 = 1.0 - expdamp; + scale5 = 1.0 - expdamp*(1.0+damp); + scale7 = 1.0 - expdamp*(1.0+damp + 0.6*damp*damp); + } + } + } + + scalek = factor_dscale; + bcn[0] = bn[1] - (1.0-scalek*scale3)*rr3; + bcn[1] = bn[2] - (1.0-scalek*scale5)*rr5; + bcn[2] = bn[3] - (1.0-scalek*scale7)*rr7; + fid[0] = -xr*(bcn[0]*ck-bcn[1]*dkr+bcn[2]*qkr) - + bcn[0]*dkx + 2.0*bcn[1]*qkx; + fid[1] = -yr*(bcn[0]*ck-bcn[1]*dkr+bcn[2]*qkr) - + bcn[0]*dky + 2.0*bcn[1]*qky; + fid[2] = -zr*(bcn[0]*ck-bcn[1]*dkr+bcn[2]*qkr) - + bcn[0]*dkz + 2.0*bcn[1]*qkz; + fkd[0] = xr*(bcn[0]*ci+bcn[1]*dir+bcn[2]*qir) - + bcn[0]*dix - 2.0*bcn[1]*qix; + fkd[1] = yr*(bcn[0]*ci+bcn[1]*dir+bcn[2]*qir) - + bcn[0]*diy - 2.0*bcn[1]*qiy; + fkd[2] = zr*(bcn[0]*ci+bcn[1]*dir+bcn[2]*qir) - + bcn[0]*diz - 2.0*bcn[1]*qiz; + + scalek = factor_pscale; + bcn[0] = bn[1] - (1.0-scalek*scale3)*rr3; + bcn[1] = bn[2] - (1.0-scalek*scale5)*rr5; + bcn[2] = bn[3] - (1.0-scalek*scale7)*rr7; + fip[0] = -xr*(bcn[0]*ck-bcn[1]*dkr+bcn[2]*qkr) - + bcn[0]*dkx + 2.0*bcn[1]*qkx; + fip[1] = -yr*(bcn[0]*ck-bcn[1]*dkr+bcn[2]*qkr) - + bcn[0]*dky + 2.0*bcn[1]*qky; + fip[2] = -zr*(bcn[0]*ck-bcn[1]*dkr+bcn[2]*qkr) - + bcn[0]*dkz + 2.0*bcn[1]*qkz; + fkp[0] = xr*(bcn[0]*ci+bcn[1]*dir+bcn[2]*qir) - + bcn[0]*dix - 2.0*bcn[1]*qix; + fkp[1] = yr*(bcn[0]*ci+bcn[1]*dir+bcn[2]*qir) - + bcn[0]*diy - 2.0*bcn[1]*qiy; + fkp[2] = zr*(bcn[0]*ci+bcn[1]*dir+bcn[2]*qir) - + bcn[0]*diz - 2.0*bcn[1]*qiz; + + // find terms needed later to compute mutual polarization + + if (poltyp != DIRECT) { + scale3 = 1.0; + scale5 = 1.0; + damp = pdi * pdamp[jtype]; + if (damp != 0.0) { + pgamma = MIN(pti,thole[jtype]); + damp = pgamma * pow(r/damp,3.0); + if (damp < 50.0) { + expdamp = exp(-damp); + scale3 = 1.0 - expdamp; + scale5 = 1.0 - expdamp*(1.0+damp); + } + } + scalek = factor_uscale; + bcn[0] = bn[1] - (1.0-scalek*scale3)*rr3; + bcn[1] = bn[2] - (1.0-scalek*scale5)*rr5; + + neighptr[n++] = j; + tdipdip[ndip++] = -bcn[0] + bcn[1]*xr*xr; + tdipdip[ndip++] = bcn[1]*xr*yr; + tdipdip[ndip++] = bcn[1]*xr*zr; + tdipdip[ndip++] = -bcn[0] + bcn[1]*yr*yr; + tdipdip[ndip++] = bcn[1]*yr*zr; + tdipdip[ndip++] = -bcn[0] + bcn[1]*zr*zr; + } + + // find the field components for charge penetration damping + + } else { + corek = pcore[jclass]; + alphak = palpha[jclass]; + valk = pval[j]; + dampdir(r,alphai,alphak,dmpi,dmpk); + + scalek = factor_dscale; + rr3i = bn[1] - (1.0-scalek*dmpi[2])*rr3; + rr5i = bn[2] - (1.0-scalek*dmpi[4])*rr5; + rr7i = bn[3] - (1.0-scalek*dmpi[6])*rr7; + rr3k = bn[1] - (1.0-scalek*dmpk[2])*rr3; + rr5k = bn[2] - (1.0-scalek*dmpk[4])*rr5; + rr7k = bn[3] - (1.0-scalek*dmpk[6])*rr7; + rr3 = bn[1] - (1.0-scalek)*rr3; + fid[0] = -xr*(rr3*corek + rr3k*valk - rr5k*dkr + rr7k*qkr) - + rr3k*dkx + 2.0*rr5k*qkx; + fid[1] = -yr*(rr3*corek + rr3k*valk - rr5k*dkr + rr7k*qkr) - + rr3k*dky + 2.0*rr5k*qky; + fid[2] = -zr*(rr3*corek + rr3k*valk - rr5k*dkr + rr7k*qkr) - + rr3k*dkz + 2.0*rr5k*qkz; + fkd[0] = xr*(rr3*corei + rr3i*vali + rr5i*dir + rr7i*qir) - + rr3i*dix - 2.0*rr5i*qix; + fkd[1] = yr*(rr3*corei + rr3i*vali + rr5i*dir + rr7i*qir) - + rr3i*diy - 2.0*rr5i*qiy; + fkd[2] = zr*(rr3*corei + rr3i*vali + rr5i*dir + rr7i*qir) - + rr3i*diz - 2.0*rr5i*qiz; + + scalek = factor_pscale; + rr3 = rr2 * rr1; + rr3i = bn[1] - (1.0-scalek*dmpi[2])*rr3; + rr5i = bn[2] - (1.0-scalek*dmpi[4])*rr5; + rr7i = bn[3] - (1.0-scalek*dmpi[6])*rr7; + rr3k = bn[1] - (1.0-scalek*dmpk[2])*rr3; + rr5k = bn[2] - (1.0-scalek*dmpk[4])*rr5; + rr7k = bn[3] - (1.0-scalek*dmpk[6])*rr7; + rr3 = bn[1] - (1.0-scalek)*rr3; + fip[0] = -xr*(rr3*corek + rr3k*valk - rr5k*dkr + rr7k*qkr) - + rr3k*dkx + 2.0*rr5k*qkx; + fip[1] = -yr*(rr3*corek + rr3k*valk - rr5k*dkr + rr7k*qkr) - + rr3k*dky + 2.0*rr5k*qky; + fip[2] = -zr*(rr3*corek + rr3k*valk - rr5k*dkr + rr7k*qkr) - + rr3k*dkz + 2.0*rr5k*qkz; + fkp[0] = xr*(rr3*corei + rr3i*vali + rr5i*dir + rr7i*qir) - + rr3i*dix - 2.0*rr5i*qix; + fkp[1] = yr*(rr3*corei + rr3i*vali + rr5i*dir + rr7i*qir) - + rr3i*diy - 2.0*rr5i*qiy; + fkp[2] = zr*(rr3*corei + rr3i*vali + rr5i*dir + rr7i*qir) - + rr3i*diz - 2.0*rr5i*qiz; + + // find terms needed later to compute mutual polarization + + if (poltyp != DIRECT) { + dampmut(r,alphai,alphak,dmpik); + scalek = factor_wscale; + rr3 = rr2 * rr1; + rr3ik = bn[1] - (1.0-scalek*dmpik[2])*rr3; + rr5ik = bn[2] - (1.0-scalek*dmpik[4])*rr5; + + neighptr[n++] = j; + tdipdip[ndip++] = -rr3ik + rr5ik*xr*xr; + tdipdip[ndip++] = rr5ik*xr*yr; + tdipdip[ndip++] = rr5ik*xr*zr; + tdipdip[ndip++] = -rr3ik + rr5ik*yr*yr; + tdipdip[ndip++] = rr5ik*yr*zr; + tdipdip[ndip++] = -rr3ik + rr5ik*zr*zr; + } + } + + // increment the field at each site due to this interaction + + for (m = 0; m < 3; m++) { + field[i][m] += fid[m]; + field[j][m] += fkd[m]; + fieldp[i][m] += fip[m]; + fieldp[j][m] += fkp[m]; + } + } + + firstneigh_dipole[i] = neighptr; + firstneigh_dipdip[i] = tdipdip; + numneigh_dipole[i] = n; + ipage_dipole->vgot(n); + dpage_dipdip->vgot(ndip); + } +} + +/* ---------------------------------------------------------------------- + dampmut = mutual field damping coefficents + dampmut generates coefficients for the mutual field damping + function for powers of the interatomic distance +------------------------------------------------------------------------- */ + +void PairAmoeba::dampmut(double r, double alphai, double alphak, double *dmpik) +{ + double termi,termk; + double termi2,termk2; + double alphai2,alphak2; + double eps,diff; + double expi,expk; + double dampi,dampk; + double dampi2,dampi3; + double dampi4,dampi5; + double dampk2,dampk3; + + // compute tolerance and exponential damping factors + + eps = 0.001; + diff = fabs(alphai-alphak); + dampi = alphai * r; + dampk = alphak * r; + expi = exp(-dampi); + expk = exp(-dampk); + + // valence-valence charge penetration damping for Gordon f1 (HIPPO) + + dampi2 = dampi * dampi; + dampi3 = dampi * dampi2; + if (diff < eps) { + dampi4 = dampi2 * dampi2; + dampi5 = dampi2 * dampi3; + dmpik[2] = 1.0 - (1.0 + dampi + 0.5*dampi2 + + 7.0*dampi3/48.0 + dampi4/48.0)*expi; + dmpik[4] = 1.0 - (1.0 + dampi + 0.5*dampi2 + dampi3/6.0 + + dampi4/24.0 + dampi5/144.0)*expi; + } else { + dampk2 = dampk * dampk; + dampk3 = dampk * dampk2; + alphai2 = alphai * alphai; + alphak2 = alphak * alphak; + termi = alphak2 / (alphak2-alphai2); + termk = alphai2 / (alphai2-alphak2); + termi2 = termi * termi; + termk2 = termk * termk; + dmpik[2] = 1.0 - termi2*(1.0+dampi+0.5*dampi2)*expi - + termk2*(1.0+dampk+0.5*dampk2)*expk - + 2.0*termi2*termk*(1.0+dampi)*expi - 2.0*termk2*termi*(1.0+dampk)*expk; + dmpik[4] = 1.0 - termi2*(1.0+dampi+0.5*dampi2 + dampi3/6.0)*expi - + termk2*(1.0+dampk+0.5*dampk2 + dampk3/6.00)*expk - + 2.0*termi2*termk *(1.0+dampi+dampi2/3.0)*expi - + 2.0*termk2*termi *(1.0+dampk+dampk2/3.0)*expk; + } +} + +/* ---------------------------------------------------------------------- + dampdir = direct field damping coefficents + dampdir generates coefficients for the direct field damping + function for powers of the interatomic distance +------------------------------------------------------------------------- */ + +void PairAmoeba::dampdir(double r, double alphai, double alphak, + double *dmpi, double *dmpk) +{ + double eps,diff; + double expi,expk; + double dampi,dampk; + double dampi2,dampk2; + double dampi3,dampk3; + double dampi4,dampk4; + + // compute tolerance and exponential damping factors + + eps = 0.001; + diff = fabs(alphai-alphak); + dampi = alphai * r; + dampk = alphak * r; + expi = exp(-dampi); + expk = exp(-dampk); + + // core-valence charge penetration damping for Gordon f1 (HIPPO) + + dampi2 = dampi * dampi; + dampi3 = dampi * dampi2; + dampi4 = dampi2 * dampi2; + dmpi[2] = 1.0 - (1.0 + dampi + 0.5*dampi2)*expi; + dmpi[4] = 1.0 - (1.0 + dampi + 0.5*dampi2 + dampi3/6.0)*expi; + dmpi[6] = 1.0 - (1.0 + dampi + 0.5*dampi2 + dampi3/6.0 + dampi4/30.0)*expi; + if (diff < eps) { + dmpk[2] = dmpi[2]; + dmpk[4] = dmpi[4]; + dmpk[6] = dmpi[6]; + } else { + dampk2 = dampk * dampk; + dampk3 = dampk * dampk2; + dampk4 = dampk2 * dampk2; + dmpk[2] = 1.0 - (1.0 + dampk + 0.5*dampk2)*expk; + dmpk[4] = 1.0 - (1.0 + dampk + 0.5*dampk2 + dampk3/6.0)*expk; + dmpk[6] = 1.0 - (1.0 + dampk + 0.5*dampk2 + dampk3/6.0 + dampk4/30.0)*expk; + } +} + +/* ---------------------------------------------------------------------- + cholesky = modified Cholesky linear solver + cholesky uses a modified Cholesky method to solve the linear + system Ax = b, returning "x" in "b"; "A" is a real symmetric + positive definite matrix with its upper triangle (including the + diagonal) stored by rows + literature reference: + R. S. Martin, G. Peters and J. H. Wilkinson, "Symmetric + Decomposition of a Positive Definite Matrix", Numerische + Mathematik, 7, 362-383 (1965) +------------------------------------------------------------------------- */ + +void PairAmoeba::cholesky(int nvar, double *a, double *b) +{ + int i,j,k; + int ii,ij,ik,ki,kk; + int im,jk,jm; + double r,s,t; + + // all code in this method is exact translation from Fortran version + // decrement pointers so can access vectors like Fortran does from 1:N + + a--; + b--; + + // Cholesky factorization to reduce A to (L)(D)(L transpose) + // L has a unit diagonal; store 1.0/D on the diagonal of A + + ii = 1; + for (i = 1; i <= nvar; i++) { + im = i - 1; + if (i != 1) { + ij = i; + for (j = 1; j <= im; j++) { + r = a[ij]; + if (j != 1) { + ik = i; + jk = j; + jm = j - 1; + for (k = 1; k <= jm; k++) { + r = r - a[ik]*a[jk]; + ik = nvar - k + ik; + jk = nvar - k + jk; + } + } + a[ij] = r; + ij = nvar - j + ij; + } + } + + r = a[ii]; + if (i != 1) { + kk = 1; + ik = i; + for (k = 1; k <= im; k++) { + s = a[ik]; + t = s * a[kk]; + a[ik] = t; + r = r - s*t; + ik = nvar - k + ik; + kk = nvar - k + 1 + kk; + } + } + + a[ii] = 1.0 / r; + ii = nvar - i + 1 + ii; + } + + // solve linear equations; first solve Ly = b for y + + for (i = 1; i <= nvar; i++) { + if (i != 1) { + ik = i; + im = i - 1; + r = b[i]; + for (k = 1; k <= im; k++) { + r = r - b[k]*a[ik]; + ik = nvar - k + ik; + } + b[i] = r; + } + } + + // finally, solve (D)(L transpose)(x) = y for x + + ii = nvar*(nvar+1)/2; + for (j = 1; j <= nvar; j++) { + i = nvar + 1 - j; + r = b[i] * a[ii]; + if (j != 1) { + im = i + 1; + ki = ii + 1; + for (k = im; k <= nvar; k++) { + r = r - a[ki]*b[k]; + ki = ki + 1; + } + } + b[i] = r; + ii = ii - j - 1; + } +} diff --git a/src/AMOEBA/amoeba_kspace.cpp b/src/AMOEBA/amoeba_kspace.cpp new file mode 100644 index 0000000000..22b83c1b59 --- /dev/null +++ b/src/AMOEBA/amoeba_kspace.cpp @@ -0,0 +1,1236 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_amoeba.h" + +#include "atom.h" +#include "domain.h" +#include "math_const.h" +#include "memory.h" + +#include + +using namespace LAMMPS_NS; +using namespace MathConst; + +#define ANINT(x) ((x)>0 ? floor((x)+0.5) : ceil((x)-0.5)) + +/* ---------------------------------------------------------------------- + lattice = setup periodic boundary conditions + lattice stores the periodic box dimensions and sets angle + values to be used in computing fractional coordinates +------------------------------------------------------------------------- */ + +void PairAmoeba::lattice() +{ + recip[0][0] = recip[0][1] = recip[0][2] = 0.0; + recip[1][0] = recip[1][1] = recip[1][2] = 0.0; + recip[2][0] = recip[2][1] = recip[2][2] = 0.0; + + double *h_inv = domain->h_inv; + + recip[0][0] = h_inv[0]; + recip[1][1] = h_inv[1]; + recip[2][2] = h_inv[2]; + + if (domain->triclinic) { + recip[1][0] = h_inv[5]; + recip[2][0] = h_inv[4]; + recip[2][1] = h_inv[3]; + } +} + +/* ---------------------------------------------------------------------- + moduli = store the inverse DFT moduli + moduli sets the moduli of the inverse discrete Fourier transform of the B-splines +------------------------------------------------------------------------- */ + +void PairAmoeba::moduli() +{ + int i; + + // perform dynamic allocation of local arrays + + int maxfft = MAX(nfft1,nfft2); + maxfft = MAX(maxfft,nfft3); + + double *array = new double[bsorder]; + double *bsarray = new double[maxfft]; + + // compute and load the moduli values + + double x = 0.0; + bspline(x,bsorder,array); + + for (i = 0; i < maxfft; i++) bsarray[i] = 0.0; + for (i = 0; i < bsorder; i++) bsarray[i+1] = array[i]; + + dftmod(bsmod1,bsarray,nfft1,bsorder); + dftmod(bsmod2,bsarray,nfft2,bsorder); + dftmod(bsmod3,bsarray,nfft3,bsorder); + + // perform deallocation of local arrays + + delete[] array; + delete[] bsarray; +} + +/* ---------------------------------------------------------------------- + bspline = determine B-spline coefficients + bspline calculates the coefficients for an n-th order B-spline approximation +------------------------------------------------------------------------- */ + +void PairAmoeba::bspline(double x, int n, double *c) +{ + int i,k; + double denom; + + // initialize the B-spline as the linear case + + c[0] = 1.0 - x; + c[1] = x; + + // compute standard B-spline recursion to n-th order + + /*for (k = 2; k < n; k++) { + denom = 1.0 / (k-1); + c[k] = x * c[k-1] * denom; + for (i = 0; i < k-1; i++) + c[k-i] = ((x+i)*c[k-i-1] + (k-i-x)*c[k-i]) * denom; + c[0] = (1.0-x) * c[0] * denom; + }*/ + + for (k = 3; k <= n; k++) { + denom = 1.0 / (k-1); + c[k-1] = x * c[k-2] * denom; + for (i = 1; i <= k-2; i++) + c[k-i-1] = ((x+i)*c[k-i-2] + (k-i-x)*c[k-i-1]) * denom; + c[0] = (1.0-x) * c[0] * denom; + } + +} + +/* ---------------------------------------------------------------------- + dftmod = discrete Fourier transform modulus + dftmod computes the modulus of the discrete Fourier transform + of bsarray and stores it in bsmod +------------------------------------------------------------------------- */ + +void PairAmoeba::dftmod(double *bsmod, double *bsarray, int nfft, int order) +{ + int i,j,k; + int jcut; + int order2; + double eps,zeta; + double arg,factor; + double sum1,sum2; + + // get the modulus of the discrete Fourier transform + + factor = 2.0 * MY_PI / nfft; + for (i = 0; i < nfft; i++) { + sum1 = 0.0; + sum2 = 0.0; + for (j = 0; j < nfft; j++) { + arg = factor*i*j; + sum1 += bsarray[j]*cos(arg); + sum2 += bsarray[j]*sin(arg); + } + bsmod[i] = sum1*sum1 + sum2*sum2; + //printf("BSMOD AAA i %d bsmod %g\n",i,bsmod[i]); + } + + // fix for exponential Euler spline interpolation failure + + eps = 1.0e-7; + if (bsmod[0] < eps) bsmod[0] = 0.5 * bsmod[1]; + for (i = 1; i < nfft-1; i++) + if (bsmod[i] < eps) bsmod[i] = 0.5 * (bsmod[i-1] + bsmod[i+1]); + if (bsmod[nfft-1] < eps) bsmod[nfft-1] = 0.5 * bsmod[nfft-2]; + + // compute and apply the optimal zeta coefficient + + jcut = 50; + order2 = 2 * order; + for (i = 1; i <= nfft; i++) { + k = i - 1; + if (i > nfft/2) k -= nfft; + if (k == 0) zeta = 1.0; + else { + sum1 = 1.0; + sum2 = 1.0; + factor = MY_PI * k / nfft; + for (j = 1; j <= jcut; j++) { + arg = factor / (factor + MY_PI*j); + sum1 += pow(arg,order); + sum2 += pow(arg,order2); + } + for (j = 1; j <= jcut; j++) { + arg = factor / (factor - MY_PI*j); + sum1 += pow(arg,order); + sum2 += pow(arg,order2); + } + zeta = sum2 / sum1; + } + bsmod[i-1] *= zeta*zeta; + } +} + +/* ---------------------------------------------------------------------- + bspline_fill = get PME B-spline coefficients + bspline_fill finds B-spline coefficients and derivatives + for PME atomic sites along the fractional coordinate axes +------------------------------------------------------------------------- */ + +void PairAmoeba::bspline_fill() +{ + int ifr; + double w,fr,eps; + double lamda[3]; + + int nlocal = atom->nlocal; + double **x = atom->x; + + // offset used to shift sites off exact lattice bounds + + eps = 1.0e-8; + + // get the B-spline coefficients for each atomic site + + for (int i = 0; i < nlocal; i++) { + + // NOTE: what about offset/shift and w < 0 or w > 1 + // NOTE: could subtract off nlpts to start with + // NOTE: this is place to check that stencil size does not + // go out of bounds relative to igrid for a proc's sub-domain + // NOTE: could convert x -> lamda for entire set of Nlocal atoms + + domain->x2lamda(x[i],lamda); + + w = lamda[0]; + fr = nfft1 * w; + ifr = static_cast (fr-eps); + w = fr - ifr; + igrid[i][0] = ifr; + //igrid[i][0] = ifr + 1; + //if (igrid[i][0] == nfft1) igrid[i][0] = 0; + bsplgen(w,thetai1[i]); + + w = lamda[1]; + fr = nfft2 * w; + ifr = static_cast (fr-eps); + w = fr - ifr; + igrid[i][1] = ifr; + //igrid[i][1] = ifr + 1; + //if (igrid[i][1] == nfft2) igrid[i][1] = 0; + bsplgen(w,thetai2[i]); + + w = lamda[2]; + fr = nfft3 * w; + ifr = static_cast (fr-eps); + w = fr - ifr; + igrid[i][2] = ifr; + //igrid[i][2] = ifr + 1; + //if (igrid[i][2] == nfft3) igrid[i][2] = 0; + bsplgen(w,thetai3[i]); + } +} + +/* ---------------------------------------------------------------------- + bsplgen = B-spline coefficients for an atom + bsplgen gets B-spline coefficients and derivatives for + a single PME atomic site along a particular direction +------------------------------------------------------------------------- */ + +void PairAmoeba::bsplgen(double w, double **thetai) +{ + int i,j,k; + int level; + double denom; + + level = 4; + + // initialization to get to 2nd order recursion + + bsbuild[1][1] = w; + bsbuild[0][1] = 1.0 - w; + + // perform one pass to get to 3rd order recursion + + bsbuild[2][2] = 0.5 * w * bsbuild[1][1]; + bsbuild[1][2] = 0.5 * ((1.0+w)*bsbuild[0][1] + (2.0-w)*bsbuild[1][1]); + bsbuild[0][2] = 0.5 * (1.0-w) * bsbuild[0][1]; + + // compute standard B-spline recursion to desired order + + for (i = 4; i <= bsorder; i++) { + k = i - 1; + denom = 1.0 / k; + bsbuild[i-1][i-1] = denom * w * bsbuild[k-1][k-1]; + for (j = 1; j <= i-2; j++) { + bsbuild[i-j-1][i-1] = denom * + ((w+j)*bsbuild[i-j-2][k-1] + (i-j-w)*bsbuild[i-j-1][k-1]); + } + bsbuild[0][i-1] = denom * (1.0-w) * bsbuild[0][k-1]; + } + + // get coefficients for the B-spline first derivative + + k = bsorder - 1; + bsbuild[bsorder-1][k-1] = bsbuild[bsorder-2][k-1]; + for (int i = bsorder-1; i >= 2; i--) + bsbuild[i-1][k-1] = bsbuild[i-2][k-1] - bsbuild[i-1][k-1]; + bsbuild[0][k-1] = -bsbuild[0][k-1]; + + // get coefficients for the B-spline second derivative + + if (level == 4) { + k = bsorder - 2; + bsbuild[bsorder-2][k-1] = bsbuild[bsorder-3][k-1]; + for (int i = bsorder-2; i >= 2; i--) + bsbuild[i-1][k-1] = bsbuild[i-2][k-1] - bsbuild[i-1][k-1]; + bsbuild[0][k-1] = -bsbuild[0][k-1]; + bsbuild[bsorder-1][k-1] = bsbuild[bsorder-2][k-1]; + for (int i = bsorder-1; i >= 2; i--) + bsbuild[i-1][k-1] = bsbuild[i-2][k-1] - bsbuild[i-1][k-1]; + bsbuild[0][k-1] = -bsbuild[0][k-1]; + + // get coefficients for the B-spline third derivative + + k = bsorder - 3; + bsbuild[bsorder-3][k-1] = bsbuild[bsorder-4][k-1]; + for (int i = bsorder-3; i >= 2; i--) + bsbuild[i-1][k-1] = bsbuild[i-2][k-1] - bsbuild[i-1][k-1]; + bsbuild[0][k-1] = -bsbuild[0][k-1]; + bsbuild[bsorder-2][k-1] = bsbuild[bsorder-3][k-1]; + for (int i = bsorder-2; i >= 2; i--) + bsbuild[i-1][k-1] = bsbuild[i-2][k-1] - bsbuild[i-1][k-1]; + bsbuild[0][k-1] = -bsbuild[0][k-1]; + bsbuild[bsorder-1][k-1] = bsbuild[bsorder-2][k-1]; + for (int i = bsorder-1; i >= 2; i--) + bsbuild[i-1][k-1] = bsbuild[i-2][k-1] - bsbuild[i-1][k-1]; + bsbuild[0][k-1] = -bsbuild[0][k-1]; + } + + // copy coefficients from temporary to permanent storage + + for (int i = 1; i <= bsorder; i++) + for (int j = 1; j <= level; j++) + thetai[i-1][j-1] = bsbuild[i-1][bsorder-j]; +} + +/* ---------------------------------------------------------------------- + cmp_to_fmp = transformation of multipoles + cmp_to_fmp transforms the atomic multipoles from Cartesian + to fractional coordinates +------------------------------------------------------------------------- */ + +void PairAmoeba::cmp_to_fmp(double **cmp, double **fmp) +{ + int i,j,k; + + // find the matrix to convert Cartesian to fractional + + cart_to_frac(); + + // apply the transformation to get the fractional multipoles + + int nlocal = atom->nlocal; + + for (i = 0; i < nlocal; i++) { + fmp[i][0] = ctf[0][0] * cmp[i][0]; + for (j = 1; j < 4; j++) { + fmp[i][j] = 0.0; + for (k = 1; k < 4; k++) + fmp[i][j] += ctf[j][k] * cmp[i][k]; + } + for (j = 4; j < 10; j++) { + fmp[i][j] = 0.0; + /*for (k = 5; k < 10; k++)*/ + for (k = 4; k < 10; k++) + fmp[i][j] += ctf[j][k] * cmp[i][k]; + } + } +} + +/* ---------------------------------------------------------------------- + cart_to_frac = Cartesian to fractional + cart_to_frac computes a transformation matrix to convert + a multipole object in Cartesian coordinates to fractional + note the multipole components are stored in the condensed + order (m,dx,dy,dz,qxx,qyy,qzz,qxy,qxz,qyz) +------------------------------------------------------------------------- */ + +void PairAmoeba::cart_to_frac() +{ + int i,j,k,m,i1,i2; + int qi1[6] = {0,1,2,0,0,1}; // decremented vs Fortran + int qi2[6] = {0,1,2,1,2,2}; // decremented vs Fortran + double a[3][3]; // indices not flipped vs Fortran + + // set the reciprocal vector transformation matrix + + for (i = 0; i < 3; i++) { + a[0][i] = nfft1 * recip[i][0]; + a[1][i] = nfft2 * recip[i][1]; + a[2][i] = nfft3 * recip[i][2]; + } + + // get the Cartesian to fractional conversion matrix + + for (i = 0; i < 10; i++) + for (j = 0; j < 10; j++) + ctf[i][j] = 0.0; + + ctf[0][0] = 1.0; + for (i = 1; i < 4; i++) + for (j = 1; j < 4; j++) + ctf[i][j] = a[i-1][j-1]; + + for (i1 = 0; i1 < 3; i1++) { + k = qi1[i1]; + for (i2 = 0; i2 < 6; i2++) { + i = qi1[i2]; + j = qi2[i2]; + ctf[i1+4][i2+4] = a[k][i] * a[k][j]; + } + } + + for (i1 = 3; i1 < 6; i1++) { + k = qi1[i1]; + m = qi2[i1]; + for (i2 = 0; i2 < 6; i2++) { + i = qi1[i2]; + j = qi2[i2]; + ctf[i1+4][i2+4] = a[k][i]*a[m][j] + a[k][j]*a[m][i]; + } + } +} + +/* ---------------------------------------------------------------------- + fphi_to_cphi = transformation of potential + fphi_to_cphi transforms the reciprocal space potential from + fractional to Cartesian coordinates +------------------------------------------------------------------------- */ + +void PairAmoeba::fphi_to_cphi(double **fphi, double **cphi) +{ + int i,j,k; + + // find the matrix to convert fractional to Cartesian + + frac_to_cart(); + + // apply the transformation to get the Cartesian potential + + int nlocal = atom->nlocal; + + for (i = 0; i < nlocal; i++) { + cphi[i][0] = ftc[0][0] * fphi[i][0]; + for (j = 1; j < 4; j++) { + cphi[i][j] = 0.0; + for (k = 1; k < 4; k++) + cphi[i][j] += ftc[j][k] * fphi[i][k]; + } + for (j = 4; j < 10; j++) { + cphi[i][j] = 0.0; + for (k = 4; k < 10; k++) + cphi[i][j] += ftc[j][k] * fphi[i][k]; + } + } +} + +/* ---------------------------------------------------------------------- + frac_to_cart = fractional to Cartesian + frac_to_cart computes a transformation matrix to convert + a multipole object in fraction coordinates to Cartesian + note the multipole components are stored in the condensed + order (m,dx,dy,dz,qxx,qyy,qzz,qxy,qxz,qyz) +------------------------------------------------------------------------- */ + +void PairAmoeba::frac_to_cart() +{ + int i,j,k,m,i1,i2; + int qi1[6] = {0,1,2,0,0,1}; // decremented vs Fortran + int qi2[6] = {0,1,2,1,2,2}; // decremented vs Fortran + double a[3][3]; // indices not flipped vs Fortran + + // set the reciprocal vector transformation matrix + + for (i = 0; i < 3; i++) { + a[i][0] = nfft1 * recip[i][0]; + a[i][1] = nfft2 * recip[i][1]; + a[i][2] = nfft3 * recip[i][2]; + } + + // get the fractional to Cartesian conversion matrix + + for (i = 0; i < 10; i++) + for (j = 0; j < 10; j++) + ftc[i][j] = 0.0; + + ftc[0][0] = 1.0; + for (i = 1; i < 4; i++) + for (j = 1; j < 4; j++) + ftc[i][j] = a[i-1][j-1]; + + for (i1 = 0; i1 < 3; i1++) { + k = qi1[i1]; + for (i2 = 0; i2 < 3; i2++) { + i = qi1[i2]; + ftc[i1+4][i2+4] = a[k][i] * a[k][i]; + } + for (i2 = 3; i2 < 6; i2++) { + i = qi1[i2]; + j = qi2[i2]; + ftc[i1+4][i2+4] = 2.0 * a[k][i] * a[k][j]; + } + } + + for (i1 = 3; i1 < 6; i1++) { + k = qi1[i1]; + m = qi2[i1]; + for (i2 = 0; i2 < 3; i2++) { + i = qi1[i2]; + ftc[i1+4][i2+4] = a[k][i] * a[m][i]; + } + for (i2 = 3; i2 < 6; i2++) { + i = qi1[i2]; + j = qi2[i2]; + ftc[i1+4][i2+4] = a[k][i]*a[m][j] + a[m][i]*a[k][j]; + } + } +} + +/* ---------------------------------------------------------------------- + grid_mpole = put multipoles on PME grid + grid_mpole maps fractional atomic multipoles to PME grid +------------------------------------------------------------------------- */ + +void PairAmoeba::grid_mpole(double **fmp, double ***grid) +{ + int i,j,k,m,ib,jb,kb; + double v0,u0,t0; + double v1,u1,t1; + double v2,u2,t2; + double term0,term1,term2; + + int nlpts = (bsorder-1) / 2; + + // spread the permanent multipole moments onto the grid + + int nlocal = atom->nlocal; + + for (m = 0; m < nlocal; m++) { + + k = igrid[m][2] - nlpts; + for (kb = 0; kb < bsorder; kb++) { + v0 = thetai3[m][kb][0]; + v1 = thetai3[m][kb][1]; + v2 = thetai3[m][kb][2]; + + j = igrid[m][1] - nlpts; + for (jb = 0; jb < bsorder; jb++) { + u0 = thetai2[m][jb][0]; + u1 = thetai2[m][jb][1]; + u2 = thetai2[m][jb][2]; + term0 = fmp[m][0]*u0*v0 + fmp[m][2]*u1*v0 + fmp[m][3]*u0*v1 + + fmp[m][5]*u2*v0 + fmp[m][6]*u0*v2 + fmp[m][9]*u1*v1; + term1 = fmp[m][1]*u0*v0 + fmp[m][7]*u1*v0 + fmp[m][8]*u0*v1; + term2 = fmp[m][4]*u0*v0; + + i = igrid[m][0] - nlpts; + for (ib = 0; ib < bsorder; ib++) { + t0 = thetai1[m][ib][0]; + t1 = thetai1[m][ib][1]; + t2 = thetai1[m][ib][2]; + grid[k][j][i] += term0*t0 + term1*t1 + term2*t2; + + // if (m == 0) { + // int istencil = kb*bsorder*bsorder + jb*bsorder + ib + 1; + // printf("GRIDMPOLE iStencil %d atomID %d igrid %d %d %d " + // "ibjbkb %d %d %d ijk %d %d %d " + // "th1 %g %g %g th2 %g %g %g th3 %g %g %g " + // "fmp0-9 %e %e %e %e %e %e %e %e %e %e " + // "term012 %e %e %e " + // "gridvalue %g\n", + // istencil,atom->tag[m], + // igrid[m][0],igrid[m][1],igrid[m][2], + // ib,jb,kb,i,j,k, + // t0,t1,t2,u0,u1,u2,v0,v1,v2, + // fmp[m][0],fmp[m][1],fmp[m][2], + // fmp[m][3],fmp[m][4],fmp[m][5], + // fmp[m][6],fmp[m][7],fmp[m][8],fmp[m][9], + // term0,term1,term2, + // term0*t0 + term1*t1 + term2*t2); + // } + + i++; + } + j++; + } + k++; + } + } +} + +/* ---------------------------------------------------------------------- + fphi_mpole = multipole potential from grid + fphi_mpole extracts the permanent multipole potential from + the particle mesh Ewald grid +------------------------------------------------------------------------- */ + +void PairAmoeba::fphi_mpole(double ***grid, double **fphi) +{ + int i,j,k,m,ib,jb,kb; + double v0,v1,v2,v3; + double u0,u1,u2,u3; + double t0,t1,t2,t3,tq; + double tu00,tu10,tu01,tu20,tu11; + double tu02,tu21,tu12,tu30,tu03; + double tuv000,tuv100,tuv010,tuv001; + double tuv200,tuv020,tuv002,tuv110; + double tuv101,tuv011,tuv300,tuv030; + double tuv003,tuv210,tuv201,tuv120; + double tuv021,tuv102,tuv012,tuv111; + + int nlpts = (bsorder-1) / 2; + + // extract the permanent multipole field at each site + + int nlocal = atom->nlocal; + + for (m = 0; m < nlocal; m++) { + tuv000 = 0.0; + tuv001 = 0.0; + tuv010 = 0.0; + tuv100 = 0.0; + tuv200 = 0.0; + tuv020 = 0.0; + tuv002 = 0.0; + tuv110 = 0.0; + tuv101 = 0.0; + tuv011 = 0.0; + tuv300 = 0.0; + tuv030 = 0.0; + tuv003 = 0.0; + tuv210 = 0.0; + tuv201 = 0.0; + tuv120 = 0.0; + tuv021 = 0.0; + tuv102 = 0.0; + tuv012 = 0.0; + tuv111 = 0.0; + + k = igrid[m][2] - nlpts; + for (kb = 0; kb < bsorder; kb++) { + v0 = thetai3[m][kb][0]; + v1 = thetai3[m][kb][1]; + v2 = thetai3[m][kb][2]; + v3 = thetai3[m][kb][3]; + tu00 = 0.0; + tu10 = 0.0; + tu01 = 0.0; + tu20 = 0.0; + tu11 = 0.0; + tu02 = 0.0; + tu30 = 0.0; + tu21 = 0.0; + tu12 = 0.0; + tu03 = 0.0; + + j = igrid[m][1] - nlpts; + for (jb = 0; jb < bsorder; jb++) { + u0 = thetai2[m][jb][0]; + u1 = thetai2[m][jb][1]; + u2 = thetai2[m][jb][2]; + u3 = thetai2[m][jb][3]; + t0 = 0.0; + t1 = 0.0; + t2 = 0.0; + t3 = 0.0; + + i = igrid[m][0] - nlpts; + for (ib = 0; ib < bsorder; ib++) { + tq = grid[k][j][i]; + t0 += tq*thetai1[m][ib][0]; + t1 += tq*thetai1[m][ib][1]; + t2 += tq*thetai1[m][ib][2]; + t3 += tq*thetai1[m][ib][3]; + i++; + } + + tu00 += t0*u0; + tu10 += t1*u0; + tu01 += t0*u1; + tu20 += t2*u0; + tu11 += t1*u1; + tu02 += t0*u2; + tu30 += t3*u0; + tu21 += t2*u1; + tu12 += t1*u2; + tu03 += t0*u3; + j++; + } + + tuv000 += tu00*v0; + tuv100 += tu10*v0; + tuv010 += tu01*v0; + tuv001 += tu00*v1; + tuv200 += tu20*v0; + tuv020 += tu02*v0; + tuv002 += tu00*v2; + tuv110 += tu11*v0; + tuv101 += tu10*v1; + tuv011 += tu01*v1; + tuv300 += tu30*v0; + tuv030 += tu03*v0; + tuv003 += tu00*v3; + tuv210 += tu21*v0; + tuv201 += tu20*v1; + tuv120 += tu12*v0; + tuv021 += tu02*v1; + tuv102 += tu10*v2; + tuv012 += tu01*v2; + tuv111 += tu11*v1; + k++; + } + + fphi[m][0] = tuv000; + fphi[m][1] = tuv100; + fphi[m][2] = tuv010; + fphi[m][3] = tuv001; + fphi[m][4] = tuv200; + fphi[m][5] = tuv020; + fphi[m][6] = tuv002; + fphi[m][7] = tuv110; + fphi[m][8] = tuv101; + fphi[m][9] = tuv011; + fphi[m][10] = tuv300; + fphi[m][11] = tuv030; + fphi[m][12] = tuv003; + fphi[m][13] = tuv210; + fphi[m][14] = tuv201; + fphi[m][15] = tuv120; + fphi[m][16] = tuv021; + fphi[m][17] = tuv102; + fphi[m][18] = tuv012; + fphi[m][19] = tuv111; + } +} + +/* ---------------------------------------------------------------------- + grid_uind = put induced dipoles on PME grid + grid_uind maps fractional induced dipoles to the PME grid +------------------------------------------------------------------------- */ + +void PairAmoeba::grid_uind(double **fuind, double **fuinp, double ****grid) +{ + int i,j,k,m,ib,jb,kb; + double v0,u0,t0; + double v1,u1,t1; + double term01,term11; + double term02,term12; + + int nlpts = (bsorder-1) / 2; + + // put the induced dipole moments onto the grid + + int nlocal = atom->nlocal; + + for (m = 0; m < nlocal; m++) { + + k = igrid[m][2] - nlpts; + for (kb = 0; kb < bsorder; kb++) { + v0 = thetai3[m][kb][0]; + v1 = thetai3[m][kb][1]; + + j = igrid[m][1] - nlpts; + for (jb = 0; jb < bsorder; jb++) { + u0 = thetai2[m][jb][0]; + u1 = thetai2[m][jb][1]; + term01 = fuind[m][1]*u1*v0 + fuind[m][2]*u0*v1; + term11 = fuind[m][0]*u0*v0; + term02 = fuinp[m][1]*u1*v0 + fuinp[m][2]*u0*v1; + term12 = fuinp[m][0]*u0*v0; + + i = igrid[m][0] - nlpts; + for (ib = 0; ib < bsorder; ib++) { + t0 = thetai1[m][ib][0]; + t1 = thetai1[m][ib][1]; + grid[k][j][i][0] += term01*t0 + term11*t1; + grid[k][j][i][1] += term02*t0 + term12*t1; + //printf("gridcheck %g %g \n",grid[k][j][i][0],grid[k][j][i][0]); + i++; + } + j++; + } + k++; + } + } +} + +/* ---------------------------------------------------------------------- + fphi_uind = induced potential from grid + fphi_uind extracts the induced dipole potential from the particle mesh Ewald grid +------------------------------------------------------------------------- */ + +void PairAmoeba::fphi_uind(double ****grid, double **fdip_phi1, + double **fdip_phi2, double **fdip_sum_phi) +{ + int i,j,k,m,ib,jb,kb; + double v0,v1,v2,v3; + double u0,u1,u2,u3; + double t0,t1,t2,t3; + double t0_1,t0_2,t1_1,t1_2; + double t2_1,t2_2,tq_1,tq_2; + double tu00,tu10,tu01,tu20,tu11; + double tu02,tu30,tu21,tu12,tu03; + double tu00_1,tu01_1,tu10_1; + double tu00_2,tu01_2,tu10_2; + double tu20_1,tu11_1,tu02_1; + double tu20_2,tu11_2,tu02_2; + double tuv100_1,tuv010_1,tuv001_1; + double tuv100_2,tuv010_2,tuv001_2; + double tuv200_1,tuv020_1,tuv002_1; + double tuv110_1,tuv101_1,tuv011_1; + double tuv200_2,tuv020_2,tuv002_2; + double tuv110_2,tuv101_2,tuv011_2; + double tuv000,tuv100,tuv010,tuv001; + double tuv200,tuv020,tuv002,tuv110; + double tuv101,tuv011,tuv300,tuv030; + double tuv003,tuv210,tuv201,tuv120; + double tuv021,tuv102,tuv012,tuv111; + + int nlpts = (bsorder-1) / 2; + + // extract the permanent multipole field at each site + + int nlocal = atom->nlocal; + + for (m = 0; m < nlocal; m++) { + tuv100_1 = 0.0; + tuv010_1 = 0.0; + tuv001_1 = 0.0; + tuv200_1 = 0.0; + tuv020_1 = 0.0; + tuv002_1 = 0.0; + tuv110_1 = 0.0; + tuv101_1 = 0.0; + tuv011_1 = 0.0; + tuv100_2 = 0.0; + tuv010_2 = 0.0; + tuv001_2 = 0.0; + tuv200_2 = 0.0; + tuv020_2 = 0.0; + tuv002_2 = 0.0; + tuv110_2 = 0.0; + tuv101_2 = 0.0; + tuv011_2 = 0.0; + tuv000 = 0.0; + tuv001 = 0.0; + tuv010 = 0.0; + tuv100 = 0.0; + tuv200 = 0.0; + tuv020 = 0.0; + tuv002 = 0.0; + tuv110 = 0.0; + tuv101 = 0.0; + tuv011 = 0.0; + tuv300 = 0.0; + tuv030 = 0.0; + tuv003 = 0.0; + tuv210 = 0.0; + tuv201 = 0.0; + tuv120 = 0.0; + tuv021 = 0.0; + tuv102 = 0.0; + tuv012 = 0.0; + tuv111 = 0.0; + + k = igrid[m][2] - nlpts; + for (kb = 0; kb < bsorder; kb++) { + v0 = thetai3[m][kb][0]; + v1 = thetai3[m][kb][1]; + v2 = thetai3[m][kb][2]; + v3 = thetai3[m][kb][3]; + tu00_1 = 0.0; + tu01_1 = 0.0; + tu10_1 = 0.0; + tu20_1 = 0.0; + tu11_1 = 0.0; + tu02_1 = 0.0; + tu00_2 = 0.0; + tu01_2 = 0.0; + tu10_2 = 0.0; + tu20_2 = 0.0; + tu11_2 = 0.0; + tu02_2 = 0.0; + tu00 = 0.0; + tu10 = 0.0; + tu01 = 0.0; + tu20 = 0.0; + tu11 = 0.0; + tu02 = 0.0; + tu30 = 0.0; + tu21 = 0.0; + tu12 = 0.0; + tu03 = 0.0; + + j = igrid[m][1] - nlpts; + for (jb = 0; jb < bsorder; jb++) { + u0 = thetai2[m][jb][0]; + u1 = thetai2[m][jb][1]; + u2 = thetai2[m][jb][2]; + u3 = thetai2[m][jb][3]; + t0_1 = 0.0; + t1_1 = 0.0; + t2_1 = 0.0; + t0_2 = 0.0; + t1_2 = 0.0; + t2_2 = 0.0; + t3 = 0.0; + + i = igrid[m][0] - nlpts; + for (ib = 0; ib < bsorder; ib++) { + tq_1 = grid[k][j][i][0]; + tq_2 = grid[k][j][i][1]; + t0_1 += tq_1*thetai1[m][ib][0]; + t1_1 += tq_1*thetai1[m][ib][1]; + t2_1 += tq_1*thetai1[m][ib][2]; + t0_2 += tq_2*thetai1[m][ib][0]; + t1_2 += tq_2*thetai1[m][ib][1]; + t2_2 += tq_2*thetai1[m][ib][2]; + t3 += (tq_1+tq_2)*thetai1[m][ib][3]; + i++; + } + + tu00_1 += t0_1*u0; + tu10_1 += t1_1*u0; + tu01_1 += t0_1*u1; + tu20_1 += t2_1*u0; + tu11_1 += t1_1*u1; + tu02_1 += t0_1*u2; + tu00_2 += t0_2*u0; + tu10_2 += t1_2*u0; + tu01_2 += t0_2*u1; + tu20_2 += t2_2*u0; + tu11_2 += t1_2*u1; + tu02_2 += t0_2*u2; + t0 = t0_1 + t0_2; + t1 = t1_1 + t1_2; + t2 = t2_1 + t2_2; + tu00 += t0*u0; + tu10 += t1*u0; + tu01 += t0*u1; + tu20 += t2*u0; + tu11 += t1*u1; + tu02 += t0*u2; + tu30 += t3*u0; + tu21 += t2*u1; + tu12 += t1*u2; + tu03 += t0*u3; + j++; + } + + tuv100_1 += tu10_1*v0; + tuv010_1 += tu01_1*v0; + tuv001_1 += tu00_1*v1; + tuv200_1 += tu20_1*v0; + tuv020_1 += tu02_1*v0; + tuv002_1 += tu00_1*v2; + tuv110_1 += tu11_1*v0; + tuv101_1 += tu10_1*v1; + tuv011_1 += tu01_1*v1; + tuv100_2 += tu10_2*v0; + tuv010_2 += tu01_2*v0; + tuv001_2 += tu00_2*v1; + tuv200_2 += tu20_2*v0; + tuv020_2 += tu02_2*v0; + tuv002_2 += tu00_2*v2; + tuv110_2 += tu11_2*v0; + tuv101_2 += tu10_2*v1; + tuv011_2 += tu01_2*v1; + tuv000 += tu00*v0; + tuv100 += tu10*v0; + tuv010 += tu01*v0; + tuv001 += tu00*v1; + tuv200 += tu20*v0; + tuv020 += tu02*v0; + tuv002 += tu00*v2; + tuv110 += tu11*v0; + tuv101 += tu10*v1; + tuv011 += tu01*v1; + tuv300 += tu30*v0; + tuv030 += tu03*v0; + tuv003 += tu00*v3; + tuv210 += tu21*v0; + tuv201 += tu20*v1; + tuv120 += tu12*v0; + tuv021 += tu02*v1; + tuv102 += tu10*v2; + tuv012 += tu01*v2; + tuv111 += tu11*v1; + k++; + } + + fdip_phi1[m][0] = 0.0; + fdip_phi1[m][1] = tuv100_1; + fdip_phi1[m][2] = tuv010_1; + fdip_phi1[m][3] = tuv001_1; + fdip_phi1[m][4] = tuv200_1; + fdip_phi1[m][5] = tuv020_1; + fdip_phi1[m][6] = tuv002_1; + fdip_phi1[m][7] = tuv110_1; + fdip_phi1[m][8] = tuv101_1; + fdip_phi1[m][9] = tuv011_1; + + fdip_phi2[m][0] = 0.0; + fdip_phi2[m][1] = tuv100_2; + fdip_phi2[m][2] = tuv010_2; + fdip_phi2[m][3] = tuv001_2; + fdip_phi2[m][4] = tuv200_2; + fdip_phi2[m][5] = tuv020_2; + fdip_phi2[m][6] = tuv002_2; + fdip_phi2[m][7] = tuv110_2; + fdip_phi2[m][8] = tuv101_2; + fdip_phi2[m][9] = tuv011_2; + + fdip_sum_phi[m][0] = tuv000; + fdip_sum_phi[m][1] = tuv100; + fdip_sum_phi[m][2] = tuv010; + fdip_sum_phi[m][3] = tuv001; + fdip_sum_phi[m][4] = tuv200; + fdip_sum_phi[m][5] = tuv020; + fdip_sum_phi[m][6] = tuv002; + fdip_sum_phi[m][7] = tuv110; + fdip_sum_phi[m][8] = tuv101; + fdip_sum_phi[m][9] = tuv011; + fdip_sum_phi[m][10] = tuv300; + fdip_sum_phi[m][11] = tuv030; + fdip_sum_phi[m][12] = tuv003; + fdip_sum_phi[m][13] = tuv210; + fdip_sum_phi[m][14] = tuv201; + fdip_sum_phi[m][15] = tuv120; + fdip_sum_phi[m][16] = tuv021; + fdip_sum_phi[m][17] = tuv102; + fdip_sum_phi[m][18] = tuv012; + fdip_sum_phi[m][19] = tuv111; + } +} + +/* ---------------------------------------------------------------------- + grid_disp = put dispersion sites on PME grid + grid_disp maps dispersion coefficients to PME grid +------------------------------------------------------------------------- */ + +void PairAmoeba::grid_disp(double ***grid) +{ + int i,j,k,m,ib,jb,kb,itype,iclass; + double v0,u0,t0; + double term; + + int nlpts = (bsorder-1) / 2; + + // put the dispersion sites onto the grid + + int nlocal = atom->nlocal; + + for (m = 0; m < nlocal; m++) { + itype = amtype[m]; + iclass = amtype2class[itype]; + + k = igrid[m][2] - nlpts; + for (kb = 0; kb < bsorder; kb++) { + v0 = thetai3[m][kb][0] * csix[iclass]; + + j = igrid[m][1] - nlpts; + for (jb = 0; jb < bsorder; jb++) { + u0 = thetai2[m][jb][0]; + term = v0 * u0; + + i = igrid[m][0] - nlpts; + for (ib = 0; ib < bsorder; ib++) { + t0 = thetai1[m][ib][0]; + grid[k][j][i] += term*t0; + i++; + } + j++; + } + k++; + } + } +} + +/* ---------------------------------------------------------------------- + kewald = setup for particle mesh Ewald sum + kewald assigns particle mesh Ewald parameters and options for a periodic system +------------------------------------------------------------------------- */ + +void PairAmoeba::kewald() +{ + int nfft1,nfft2,nfft3; + double delta; + double edens,ddens; + double size,slope; + + // use_ewald is for multipole and induce and polar + + if (!use_ewald) aeewald = apewald = 0.0; + + if (use_ewald) { + if (!aeewald_key) aeewald = ewaldcof(ewaldcut); + + if (!apewald_key) { + apewald = aeewald; + size = MIN(domain->xprd,domain->yprd); + size = MIN(size,domain->zprd); + if (size < 6.0) { + slope = (1.0-apewald) / 2.0; + apewald += slope*(6.0-size); + } + } + + if (!pmegrid_key) { + delta = 1.0e-8; + edens = 1.2; + nefft1 = static_cast (domain->xprd*edens-delta) + 1; + nefft2 = static_cast (domain->yprd*edens-delta) + 1; + nefft3 = static_cast (domain->zprd*edens-delta) + 1; + } + + // round grid sizes up to be factorable by 2,3,5 + // NOTE: also worry about satisfying Tinker minfft ? + + while (!factorable(nefft1)) nefft1++; + while (!factorable(nefft2)) nefft2++; + while (!factorable(nefft3)) nefft3++; + } + + // use_dewald is for dispersion + + if (!use_dewald) adewald = 0.0; + + if (use_dewald) { + if (!adewald_key) adewald = ewaldcof(dispcut); + + if (!dpmegrid_key) { + delta = 1.0e-8; + ddens = 0.8; + ndfft1 = static_cast (domain->xprd*ddens-delta) + 1; + ndfft2 = static_cast (domain->yprd*ddens-delta) + 1; + ndfft3 = static_cast (domain->zprd*ddens-delta) + 1; + } + + // increase grid sizes until factorable by 2,3,5 + // NOTE: also worry about satisfying Tinker minfft ? + + while (!factorable(ndfft1)) ndfft1++; + while (!factorable(ndfft2)) ndfft3++; + while (!factorable(ndfft3)) ndfft3++; + } + + // done if no Ewald + + if (!use_ewald && !use_dewald) return; + + // set maximum sizes for PME grids and B-spline order + // allocate vectors and arrays accordingly + + nfft1 = nfft2 = nfft3 = 0; + if (use_ewald) nfft1 = nefft1; + if (use_ewald) nfft2 = nefft2; + if (use_ewald) nfft3 = nefft3; + if (use_dewald) nfft1 = MAX(nfft1,ndfft1); + if (use_dewald) nfft2 = MAX(nfft2,ndfft2); + if (use_dewald) nfft3 = MAX(nfft3,ndfft3); + + bsordermax = 0; + if (use_ewald) bsordermax = bseorder; + if (use_ewald) bsordermax = MAX(bsordermax,bsporder); + if (use_dewald) bsordermax = MAX(bsordermax,bsdorder); + + memory->create(bsmod1,nfft1,"amoeba:bsmod1"); + memory->create(bsmod2,nfft2,"amoeba:bsmod2"); + memory->create(bsmod3,nfft3,"amoeba:bsmod3"); + memory->create(bsbuild,bsordermax,bsordermax,"amoeba:bsbuild"); +} + +/* ---------------------------------------------------------------------- + ewaldcof = estimation of Ewald coefficient + ewaldcof finds an Ewald coefficient such that all terms + beyond the specified cutoff distance will have a value less + than a specified tolerance +------------------------------------------------------------------------- */ + +double PairAmoeba::ewaldcof(double cutoff) +{ + int i,k,m; + double x,xlo,xhi,y; + double eps,ratio; + + // set the tolerance value; use of 1.0d-8 instead of 1.0d-6 + // gives large coefficients that ensure gradient continuity + + eps = 1.0e-8; + + // get approximate value from cutoff and tolerance + + ratio = eps + 1.0; + x = 0.5; + i = 0; + while (ratio >= eps) { + i++; + x *= 2.0; + y = x * cutoff; + ratio = erfc(y) / cutoff; + } + + // use a binary search to refine the coefficient + + k = i + 60; + xlo = 0.0; + xhi = x; + for (m = 0; m < k; m++) { + x = (xlo+xhi) / 2.0; + y = x * cutoff; + ratio = erfc(y) / cutoff; + if (ratio >= eps) xlo = x; + else xhi = x; + } + + return x; +} + +/* ---------------------------------------------------------------------- + check if all factors of n are in factors[] list of length nfactors + return 1 if yes, 0 if no +------------------------------------------------------------------------- */ + +int PairAmoeba::factorable(int n) +{ + int i; + + while (n > 1) { + for (i = 0; i < nfactors; i++) { + if (n % factors[i] == 0) { + n /= factors[i]; + break; + } + } + if (i == nfactors) return 0; + } + + return 1; +} diff --git a/src/AMOEBA/amoeba_multipole.cpp b/src/AMOEBA/amoeba_multipole.cpp new file mode 100644 index 0000000000..5d11bde1ab --- /dev/null +++ b/src/AMOEBA/amoeba_multipole.cpp @@ -0,0 +1,982 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_amoeba.h" + +#include "amoeba_convolution.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "fft3d_wrap.h" +#include "math_const.h" +#include "memory.h" +#include "neigh_list.h" + +#include +#include + +using namespace LAMMPS_NS; +using namespace MathConst; + +enum{FIELD,ZRSD,TORQUE,UFLD}; // reverse comm +enum{VDWL,REPULSE,QFER,DISP,MPOLE,POLAR,USOLV,DISP_LONG,MPOLE_LONG,POLAR_LONG}; + +#ifdef FFT_SINGLE +#define ZEROF 0.0f +#define ONEF 1.0f +#else +#define ZEROF 0.0 +#define ONEF 1.0 +#endif + +/* ---------------------------------------------------------------------- + multipole = multipole interactions + adapted from Tinker empole1d() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::multipole() +{ + double e; + double felec; + double term,fterm; + double ci; + double dix,diy,diz; + double qixx,qixy,qixz,qiyy,qiyz,qizz; + double cii,dii,qii; + + // set cutoffs, taper coeffs, and PME params + + if (use_ewald) choose(MPOLE_LONG); + else choose(MPOLE); + + // owned atoms + + const int nlocal = atom->nlocal; + + // zero repulsion torque on owned + ghost atoms + + const int nall = nlocal + atom->nghost; + + for (int i = 0; i < nall; i++) { + tq[i][0] = 0.0; + tq[i][1] = 0.0; + tq[i][2] = 0.0; + } + + // set the energy unit conversion factor + + felec = electric / am_dielectric; + + // compute the real space part of the Ewald summation + + if (mpole_rspace_flag) multipole_real(); + + // compute the reciprocal space part of the Ewald summation + + if (mpole_kspace_flag) multipole_kspace(); + + // compute the Ewald self-energy term over all the atoms + + term = 2.0 * aewald * aewald; + fterm = -felec * aewald / MY_PIS; + + for (int i = 0; i < nlocal; i++) { + ci = rpole[i][0]; + dix = rpole[i][1]; + diy = rpole[i][2]; + diz = rpole[i][3]; + qixx = rpole[i][4]; + qixy = rpole[i][5]; + qixz = rpole[i][6]; + qiyy = rpole[i][8]; + qiyz = rpole[i][9]; + qizz = rpole[i][12]; + cii = ci*ci; + dii = dix*dix + diy*diy + diz*diz; + qii = 2.0*(qixy*qixy+qixz*qixz+qiyz*qiyz) + + qixx*qixx + qiyy*qiyy + qizz*qizz; + e = fterm * (cii + term*(dii/3.0+2.0*term*qii/5.0)); + empole += e; + } +} + +/* ---------------------------------------------------------------------- + multipole_real = real-space portion of mulipole interactions + adapted from Tinker emreal1d() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::multipole_real() +{ + int i,j,k,itype,jtype,iclass,jclass; + int ii,jj; + int ix,iy,iz; + double e,de,felec; + double bfac; + double alsq2,alsq2n; + double exp2a,ralpha; + double scalek; + double xi,yi,zi; + double xr,yr,zr; + double xix,yix,zix; + double xiy,yiy,ziy; + double xiz,yiz,ziz; + double r,r2,rr1,rr3; + double rr5,rr7,rr9,rr11; + double rr1i,rr3i,rr5i,rr7i; + double rr1k,rr3k,rr5k,rr7k; + double rr1ik,rr3ik,rr5ik; + double rr7ik,rr9ik,rr11ik; + double ci,dix,diy,diz; + double qixx,qixy,qixz; + double qiyy,qiyz,qizz; + double ck,dkx,dky,dkz; + double qkxx,qkxy,qkxz; + double qkyy,qkyz,qkzz; + double dir,dkr,dik,qik; + double qix,qiy,qiz,qir; + double qkx,qky,qkz,qkr; + double diqk,dkqi,qiqk; + double dirx,diry,dirz; + double dkrx,dkry,dkrz; + double dikx,diky,dikz; + double qirx,qiry,qirz; + double qkrx,qkry,qkrz; + double qikx,qiky,qikz; + double qixk,qiyk,qizk; + double qkxi,qkyi,qkzi; + double qikrx,qikry,qikrz; + double qkirx,qkiry,qkirz; + double diqkx,diqky,diqkz; + double dkqix,dkqiy,dkqiz; + double diqkrx,diqkry,diqkrz; + double dkqirx,dkqiry,dkqirz; + double dqikx,dqiky,dqikz; + double corei,corek; + double vali,valk; + double alphai,alphak; + double term1,term2,term3; + double term4,term5,term6; + double term1i,term2i,term3i; + double term1k,term2k,term3k; + double term1ik,term2ik,term3ik; + double term4ik,term5ik; + double frcx,frcy,frcz; + double vxx,vyy,vzz; + double vxy,vxz,vyz; + double factor_mpole; + double ttmi[3],ttmk[3]; + double fix[3],fiy[3],fiz[3]; + double dmpi[9],dmpj[9]; + double dmpij[11]; + double bn[6]; + + int inum,jnum; + int *ilist,*jlist,*numneigh,**firstneigh; + + // owned atoms + + double *pval = atom->dvector[index_pval]; + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + + // neigh list + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // set conversion factor, cutoff and switching coefficients + + felec = electric / am_dielectric; + + // DEBUG + + //int count = 0; + //int imin,imax; + + // compute the real space portion of the Ewald summation + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + itype = amtype[i]; + iclass = amtype2class[itype]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + ci = rpole[i][0]; + dix = rpole[i][1]; + diy = rpole[i][2]; + diz = rpole[i][3]; + qixx = rpole[i][4]; + qixy = rpole[i][5]; + qixz = rpole[i][6]; + qiyy = rpole[i][8]; + qiyz = rpole[i][9]; + qizz = rpole[i][12]; + if (!amoeba) { + corei = pcore[iclass]; + alphai = palpha[iclass]; + vali = pval[i]; + } + + // evaluate all sites within the cutoff distance + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_mpole = special_mpole[sbmask15(j)]; + j &= NEIGHMASK15; + + xr = x[j][0] - xi; + yr = x[j][1] - yi; + zr = x[j][2] - zi; + r2 = xr*xr + yr*yr + zr*zr; + if (r2 > off2) continue; + + // DEBUG + + //imin = MIN(atom->tag[i],atom->tag[j]); + //imax = MAX(atom->tag[i],atom->tag[j]); + + jtype = amtype[j]; + jclass = amtype2class[jtype]; + + r = sqrt(r2); + ck = rpole[j][0]; + dkx = rpole[j][1]; + dky = rpole[j][2]; + dkz = rpole[j][3]; + qkxx = rpole[j][4]; + qkxy = rpole[j][5]; + qkxz = rpole[j][6]; + qkyy = rpole[j][8]; + qkyz = rpole[j][9]; + qkzz = rpole[j][12]; + + // intermediates involving moments and separation distance + + dir = dix*xr + diy*yr + diz*zr; + qix = qixx*xr + qixy*yr + qixz*zr; + qiy = qixy*xr + qiyy*yr + qiyz*zr; + qiz = qixz*xr + qiyz*yr + qizz*zr; + qir = qix*xr + qiy*yr + qiz*zr; + dkr = dkx*xr + dky*yr + dkz*zr; + qkx = qkxx*xr + qkxy*yr + qkxz*zr; + qky = qkxy*xr + qkyy*yr + qkyz*zr; + qkz = qkxz*xr + qkyz*yr + qkzz*zr; + qkr = qkx*xr + qky*yr + qkz*zr; + dik = dix*dkx + diy*dky + diz*dkz; + qik = qix*qkx + qiy*qky + qiz*qkz; + diqk = dix*qkx + diy*qky + diz*qkz; + dkqi = dkx*qix + dky*qiy + dkz*qiz; + qiqk = 2.0*(qixy*qkxy+qixz*qkxz+qiyz*qkyz) + + qixx*qkxx + qiyy*qkyy + qizz*qkzz; + + // additional intermediates involving moments and distance + + dirx = diy*zr - diz*yr; + diry = diz*xr - dix*zr; + dirz = dix*yr - diy*xr; + dkrx = dky*zr - dkz*yr; + dkry = dkz*xr - dkx*zr; + dkrz = dkx*yr - dky*xr; + dikx = diy*dkz - diz*dky; + diky = diz*dkx - dix*dkz; + dikz = dix*dky - diy*dkx; + qirx = qiz*yr - qiy*zr; + qiry = qix*zr - qiz*xr; + qirz = qiy*xr - qix*yr; + qkrx = qkz*yr - qky*zr; + qkry = qkx*zr - qkz*xr; + qkrz = qky*xr - qkx*yr; + qikx = qky*qiz - qkz*qiy; + qiky = qkz*qix - qkx*qiz; + qikz = qkx*qiy - qky*qix; + qixk = qixx*qkx + qixy*qky + qixz*qkz; + qiyk = qixy*qkx + qiyy*qky + qiyz*qkz; + qizk = qixz*qkx + qiyz*qky + qizz*qkz; + qkxi = qkxx*qix + qkxy*qiy + qkxz*qiz; + qkyi = qkxy*qix + qkyy*qiy + qkyz*qiz; + qkzi = qkxz*qix + qkyz*qiy + qkzz*qiz; + qikrx = qizk*yr - qiyk*zr; + qikry = qixk*zr - qizk*xr; + qikrz = qiyk*xr - qixk*yr; + qkirx = qkzi*yr - qkyi*zr; + qkiry = qkxi*zr - qkzi*xr; + qkirz = qkyi*xr - qkxi*yr; + diqkx = dix*qkxx + diy*qkxy + diz*qkxz; + diqky = dix*qkxy + diy*qkyy + diz*qkyz; + diqkz = dix*qkxz + diy*qkyz + diz*qkzz; + dkqix = dkx*qixx + dky*qixy + dkz*qixz; + dkqiy = dkx*qixy + dky*qiyy + dkz*qiyz; + dkqiz = dkx*qixz + dky*qiyz + dkz*qizz; + diqkrx = diqkz*yr - diqky*zr; + diqkry = diqkx*zr - diqkz*xr; + diqkrz = diqky*xr - diqkx*yr; + dkqirx = dkqiz*yr - dkqiy*zr; + dkqiry = dkqix*zr - dkqiz*xr; + dkqirz = dkqiy*xr - dkqix*yr; + dqikx = diy*qkz - diz*qky + dky*qiz - dkz*qiy - + 2.0*(qixy*qkxz+qiyy*qkyz+qiyz*qkzz - qixz*qkxy-qiyz*qkyy-qizz*qkyz); + dqiky = diz*qkx - dix*qkz + dkz*qix - dkx*qiz - + 2.0*(qixz*qkxx+qiyz*qkxy+qizz*qkxz - qixx*qkxz-qixy*qkyz-qixz*qkzz); + dqikz = dix*qky - diy*qkx + dkx*qiy - dky*qix - + 2.0*(qixx*qkxy+qixy*qkyy+qixz*qkyz - qixy*qkxx-qiyy*qkxy-qiyz*qkxz); + + // get reciprocal distance terms for this interaction + + rr1 = felec / r; + rr3 = rr1 / r2; + rr5 = 3.0 * rr3 / r2; + rr7 = 5.0 * rr5 / r2; + rr9 = 7.0 * rr7 / r2; + rr11 = 9.0 * rr9 / r2; + + // calculate the real space Ewald error function terms + + ralpha = aewald * r; + bn[0] = erfc(ralpha) / r; + alsq2 = 2.0 * aewald*aewald; + alsq2n = 0.0; + if (aewald > 0.0) alsq2n = 1.0 / (MY_PIS*aewald); + exp2a = exp(-ralpha*ralpha); + for (k = 1; k < 6; k++) { + bfac = (double) (k+k-1); + alsq2n = alsq2 * alsq2n; + bn[k] = (bfac*bn[k-1]+alsq2n*exp2a) / r2; + } + for (k = 0; k < 6; k++) bn[k] *= felec; + + // find damped multipole intermediates and energy value + + if (!amoeba) { + corek = pcore[jclass]; + alphak = palpha[jclass]; + valk = pval[j]; + + term1 = corei*corek; + term1i = corek*vali; + term2i = corek*dir; + term3i = corek*qir; + term1k = corei*valk; + term2k = -corei*dkr; + term3k = corei*qkr; + term1ik = vali*valk; + term2ik = valk*dir - vali*dkr + dik; + term3ik = vali*qkr + valk*qir - dir*dkr + 2.0*(dkqi-diqk+qiqk); + term4ik = dir*qkr - dkr*qir - 4.0*qik; + term5ik = qir*qkr; + damppole(r,11,alphai,alphak,dmpi,dmpj,dmpij); + scalek = factor_mpole; + rr1i = bn[0] - (1.0-scalek*dmpi[0])*rr1; + rr3i = bn[1] - (1.0-scalek*dmpi[2])*rr3; + rr5i = bn[2] - (1.0-scalek*dmpi[4])*rr5; + rr7i = bn[3] - (1.0-scalek*dmpi[6])*rr7; + rr1k = bn[0] - (1.0-scalek*dmpj[0])*rr1; + rr3k = bn[1] - (1.0-scalek*dmpj[2])*rr3; + rr5k = bn[2] - (1.0-scalek*dmpj[4])*rr5; + rr7k = bn[3] - (1.0-scalek*dmpj[6])*rr7; + rr1ik = bn[0] - (1.0-scalek*dmpij[0])*rr1; + rr3ik = bn[1] - (1.0-scalek*dmpij[2])*rr3; + rr5ik = bn[2] - (1.0-scalek*dmpij[4])*rr5; + rr7ik = bn[3] - (1.0-scalek*dmpij[6])*rr7; + rr9ik = bn[4] - (1.0-scalek*dmpij[8])*rr9; + rr11ik = bn[5] - (1.0-scalek*dmpij[10])*rr11; + rr1 = bn[0] - (1.0-scalek)*rr1; + rr3 = bn[1] - (1.0-scalek)*rr3; + e = term1*rr1 + term4ik*rr7ik + term5ik*rr9ik + + term1i*rr1i + term1k*rr1k + term1ik*rr1ik + + term2i*rr3i + term2k*rr3k + term2ik*rr3ik + + term3i*rr5i + term3k*rr5k + term3ik*rr5ik; + + // find damped multipole intermediates for force and torque + + de = term1*rr3 + term4ik*rr9ik + term5ik*rr11ik + + term1i*rr3i + term1k*rr3k + term1ik*rr3ik + + term2i*rr5i + term2k*rr5k + term2ik*rr5ik + + term3i*rr7i + term3k*rr7k + term3ik*rr7ik; + term1 = -corek*rr3i - valk*rr3ik + dkr*rr5ik - qkr*rr7ik; + term2 = corei*rr3k + vali*rr3ik + dir*rr5ik + qir*rr7ik; + term3 = 2.0 * rr5ik; + term4 = -2.0 * (corek*rr5i+valk*rr5ik - dkr*rr7ik+qkr*rr9ik); + term5 = -2.0 * (corei*rr5k+vali*rr5ik + dir*rr7ik+qir*rr9ik); + term6 = 4.0 * rr7ik; + rr3 = rr3ik; + + // find standard multipole intermediates and energy value + + } else { + term1 = ci*ck; + term2 = ck*dir - ci*dkr + dik; + term3 = ci*qkr + ck*qir - dir*dkr + 2.0*(dkqi-diqk+qiqk); + term4 = dir*qkr - dkr*qir - 4.0*qik; + term5 = qir*qkr; + scalek = 1.0 - factor_mpole; + rr1 = bn[0] - scalek*rr1; + rr3 = bn[1] - scalek*rr3; + rr5 = bn[2] - scalek*rr5; + rr7 = bn[3] - scalek*rr7; + rr9 = bn[4] - scalek*rr9; + rr11 = bn[5] - scalek*rr11; + e = term1*rr1 + term2*rr3 + term3*rr5 + term4*rr7 + term5*rr9; + + // find standard multipole intermediates for force and torque + + de = term1*rr3 + term2*rr5 + term3*rr7 + term4*rr9 + term5*rr11; + term1 = -ck*rr3 + dkr*rr5 - qkr*rr7; + term2 = ci*rr3 + dir*rr5 + qir*rr7; + term3 = 2.0 * rr5; + term4 = 2.0 * (-ck*rr5+dkr*rr7-qkr*rr9); + term5 = 2.0 * (-ci*rr5-dir*rr7-qir*rr9); + term6 = 4.0 * rr7; + } + + empole += e; + + // compute the force components for this interaction + + frcx = de*xr + term1*dix + term2*dkx + term3*(diqkx-dkqix) + + term4*qix + term5*qkx + term6*(qixk+qkxi); + frcy = de*yr + term1*diy + term2*dky + term3*(diqky-dkqiy) + + term4*qiy + term5*qky + term6*(qiyk+qkyi); + frcz = de*zr + term1*diz + term2*dkz + term3*(diqkz-dkqiz) + + term4*qiz + term5*qkz + term6*(qizk+qkzi); + + // compute the torque components for this interaction + + ttmi[0] = -rr3*dikx + term1*dirx + term3*(dqikx+dkqirx) - + term4*qirx - term6*(qikrx+qikx); + ttmi[1] = -rr3*diky + term1*diry + term3*(dqiky+dkqiry) - + term4*qiry - term6*(qikry+qiky); + ttmi[2] = -rr3*dikz + term1*dirz + term3*(dqikz+dkqirz) - + term4*qirz - term6*(qikrz+qikz); + ttmk[0] = rr3*dikx + term2*dkrx - term3*(dqikx+diqkrx) - + term5*qkrx - term6*(qkirx-qikx); + ttmk[1] = rr3*diky + term2*dkry - term3*(dqiky+diqkry) - + term5*qkry - term6*(qkiry-qiky); + ttmk[2] = rr3*dikz + term2*dkrz - term3*(dqikz+diqkrz) - + term5*qkrz - term6*(qkirz-qikz); + + // increment force-based gradient and torque on first site + + f[i][0] -= frcx; + f[i][1] -= frcy; + f[i][2] -= frcz; + tq[i][0] += ttmi[0]; + tq[i][1] += ttmi[1]; + tq[i][2] += ttmi[2]; + + // increment force-based gradient and torque on second site + + f[j][0] += frcx; + f[j][1] += frcy; + f[j][2] += frcz; + tq[j][0] += ttmk[0]; + tq[j][1] += ttmk[1]; + tq[j][2] += ttmk[2]; + + // increment the virial due to pairwise Cartesian forces + + if (vflag_global) { + vxx = -xr * frcx; + vxy = -0.5 * (yr*frcx+xr*frcy); + vxz = -0.5 * (zr*frcx+xr*frcz); + vyy = -yr * frcy; + vyz = -0.5 * (zr*frcy+yr*frcz); + vzz = -zr * frcz; + + virmpole[0] -= vxx; + virmpole[1] -= vyy; + virmpole[2] -= vzz; + virmpole[3] -= vxy; + virmpole[4] -= vxz; + virmpole[5] -= vyz; + } + } + } + + // reverse comm to sum torque from ghost atoms to owned atoms + + crstyle = TORQUE; + comm->reverse_comm(this); + + // resolve site torques then increment forces and virial + + for (i = 0; i < nlocal; i++) { + torque2force(i,tq[i],fix,fiy,fiz,f); + + if (!vflag_global) continue; + + iz = zaxis2local[i]; + ix = xaxis2local[i]; + iy = yaxis2local[i]; + + xiz = x[iz][0] - x[i][0]; + yiz = x[iz][1] - x[i][1]; + ziz = x[iz][2] - x[i][2]; + xix = x[ix][0] - x[i][0]; + yix = x[ix][1] - x[i][1]; + zix = x[ix][2] - x[i][2]; + xiy = x[iy][0] - x[i][0]; + yiy = x[iy][1] - x[i][1]; + ziy = x[iy][2] - x[i][2]; + + vxx = xix*fix[0] + xiy*fiy[0] + xiz*fiz[0]; + vxy = 0.5 * (yix*fix[0] + yiy*fiy[0] + yiz*fiz[0] + + xix*fix[1] + xiy*fiy[1] + xiz*fiz[1]); + vxz = 0.5 * (zix*fix[0] + ziy*fiy[0] + ziz*fiz[0] + + xix*fix[2] + xiy*fiy[2] + xiz*fiz[2]); + vyy = yix*fix[1] + yiy*fiy[1] + yiz*fiz[1]; + vyz = 0.5 * (zix*fix[1] + ziy*fiy[1] + ziz*fiz[1] + + yix*fix[2] + yiy*fiy[2] + yiz*fiz[2]); + vzz = zix*fix[2] + ziy*fiy[2] + ziz*fiz[2]; + + virmpole[0] -= vxx; + virmpole[1] -= vyy; + virmpole[2] -= vzz; + virmpole[3] -= vxy; + virmpole[4] -= vxz; + virmpole[5] -= vyz; + } +} + +/* ---------------------------------------------------------------------- + multipole_kspace = KSpace portion of multipole interactions + adapted from Tinker emrecip1() routine + literature reference: + C. Sagui, L. G. Pedersen and T. A. Darden, "Towards an Accurate + Representation of Electrostatics in Classical Force Fields: + Efficient Implementation of Multipolar Interactions in + Biomolecular Simulations", Journal of Chemical Physics, 120, + 73-87 (2004) +------------------------------------------------------------------------- */ + +void PairAmoeba::multipole_kspace() +{ + int i,j,k,n,ix,iy,iz; + int nhalf1,nhalf2,nhalf3; + int nxlo,nxhi,nylo,nyhi,nzlo,nzhi; + double e,eterm,felec; + double r1,r2,r3; + double h1,h2,h3; + double f1,f2,f3; + double xix,yix,zix; + double xiy,yiy,ziy; + double xiz,yiz,ziz; + double vxx,vyy,vzz,vxy,vxz,vyz; + double volterm,denom; + double hsq,expterm; + double term,pterm; + double vterm,struc2; + double tem[3],fix[3],fiy[3],fiz[3]; + + // indices into the electrostatic field array + // decremented by 1 versus Fortran + + int deriv1[10] = {1, 4, 7, 8, 10, 15, 17, 13, 14, 19}; + int deriv2[10] = {2, 7, 5, 9, 13, 11, 18, 15, 19, 16}; + int deriv3[10] = {3, 8, 9, 6, 14, 16, 12, 19, 17, 18}; + + // return if the Ewald coefficient is zero + + if (aewald < 1.0e-6) return; + + // owned atoms + + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + + double volbox = domain->prd[0] * domain->prd[1] * domain->prd[2]; + + felec = electric / am_dielectric; + + // FFT moduli pre-computations + // set igrid for each atom and its B-spline coeffs + + nfft1 = m_kspace->nx; + nfft2 = m_kspace->ny; + nfft3 = m_kspace->nz; + bsorder = m_kspace->order; + + moduli(); + bspline_fill(); + + // copy multipole info to Cartesian cmp + + for (i = 0; i < nlocal; i++) { + cmp[i][0] = rpole[i][0]; + cmp[i][1] = rpole[i][1]; + cmp[i][2] = rpole[i][2]; + cmp[i][3] = rpole[i][3]; + cmp[i][4] = rpole[i][4]; + cmp[i][5] = rpole[i][8]; + cmp[i][6] = rpole[i][12]; + cmp[i][7] = 2.0 * rpole[i][5]; + cmp[i][8] = 2.0 * rpole[i][6]; + cmp[i][9] = 2.0 * rpole[i][9]; + } + + // convert Cartesian multipoles to fractional multipoles + + cmp_to_fmp(cmp,fmp); + + // gridpre = my portion of 3d grid in brick decomp w/ ghost values + + double ***gridpre = (double ***) m_kspace->zero(); + + // map atoms to grid + + grid_mpole(fmp,gridpre); + + // pre-convolution operations including forward FFT + // gridfft = my portion of complex 3d grid in FFT decomp as 1d vector + + double *gridfft = m_kspace->pre_convolution(); + + // --------------------- + // convolution operation + // --------------------- + + // zero virial accumulation variables + + vxx = vyy = vzz = vxy = vxz = vyz = 0.0; + + // perform convolution on K-space points I own + + nhalf1 = (nfft1+1) / 2; + nhalf2 = (nfft2+1) / 2; + nhalf3 = (nfft3+1) / 2; + + nxlo = m_kspace->nxlo_fft; + nxhi = m_kspace->nxhi_fft; + nylo = m_kspace->nylo_fft; + nyhi = m_kspace->nyhi_fft; + nzlo = m_kspace->nzlo_fft; + nzhi = m_kspace->nzhi_fft; + + pterm = pow((MY_PI/aewald),2.0); + volterm = MY_PI * volbox; + + n = 0; + for (k = nzlo; k <= nzhi; k++) { + for (j = nylo; j <= nyhi; j++) { + for (i = nxlo; i <= nxhi; i++) { + r1 = (i >= nhalf1) ? i-nfft1 : i; + r2 = (j >= nhalf2) ? j-nfft2 : j; + r3 = (k >= nhalf3) ? k-nfft3 : k; + h1 = recip[0][0]*r1 + recip[0][1]*r2 + recip[0][2]*r3; // matvec + h2 = recip[1][0]*r1 + recip[1][1]*r2 + recip[1][2]*r3; + h3 = recip[2][0]*r1 + recip[2][1]*r2 + recip[2][2]*r3; + hsq = h1*h1 + h2*h2 + h3*h3; + term = -pterm * hsq; + expterm = 0.0; + if (term > -50.0 && hsq != 0.0) { + denom = volterm*hsq*bsmod1[i]*bsmod2[j]*bsmod3[k]; + expterm = exp(term) / denom; + struc2 = gridfft[n]*gridfft[n] + gridfft[n+1]*gridfft[n+1]; + eterm = 0.5 * felec * expterm * struc2; + vterm = (2.0/hsq) * (1.0-term) * eterm; + vxx += h1*h1*vterm - eterm; + vyy += h2*h2*vterm - eterm; + vzz += h3*h3*vterm - eterm; + vxy += h1*h2*vterm; + vxz += h1*h3*vterm; + vyz += h2*h3*vterm; + } + gridfft[n] *= expterm; + gridfft[n+1] *= expterm; + n += 2; + } + } + } + + // save multipole virial for use in polarization computation + + vmsave[0] = vxx; + vmsave[1] = vyy; + vmsave[2] = vzz; + vmsave[3] = vxy; + vmsave[4] = vxz; + vmsave[5] = vyz; + + // post-convolution operations including backward FFT + // gridppost = my portion of 3d grid in brick decomp w/ ghost values + + double ***gridpost = (double ***) m_kspace->post_convolution(); + + // get potential + + fphi_mpole(gridpost,fphi); + + for (i = 0; i < nlocal; i++) { + for (k = 0; k < 20; k++) + fphi[i][k] *= felec; + } + + // convert field from fractional to Cartesian + + fphi_to_cphi(fphi,cphi); + + // increment the permanent multipole energy and gradient + + e = 0.0; + for (i = 0; i < nlocal; i++) { + f1 = 0.0; + f2 = 0.0; + f3 = 0.0; + for (k = 0; k < 10; k++) { + e += fmp[i][k]*fphi[i][k]; + f1 += fmp[i][k]*fphi[i][deriv1[k]]; + f2 += fmp[i][k]*fphi[i][deriv2[k]]; + f3 += fmp[i][k]*fphi[i][deriv3[k]]; + } + f1 *= nfft1; + f2 *= nfft2; + f3 *= nfft3; + h1 = recip[0][0]*f1 + recip[0][1]*f2 + recip[0][2]*f3; // matvec? + h2 = recip[1][0]*f1 + recip[1][1]*f2 + recip[1][2]*f3; + h3 = recip[2][0]*f1 + recip[2][1]*f2 + recip[2][2]*f3; + f[i][0] -= h1; + f[i][1] -= h2; + f[i][2] -= h3; + } + empole += 0.5*e; + + // augment the permanent multipole virial contributions + + if (vflag_global) { + for (i = 0; i < nlocal; i++) { + vxx = vxx - cmp[i][1]*cphi[i][1] - 2.0*cmp[i][4]*cphi[i][4] - + cmp[i][7]*cphi[i][7] - cmp[i][8]*cphi[i][8]; + vxy = vxy - 0.5*(cmp[i][2]*cphi[i][1]+cmp[i][1]*cphi[i][2]) - + (cmp[i][4]+cmp[i][5])*cphi[i][7] - 0.5*cmp[i][7]*(cphi[i][4]+cphi[i][5]) - + 0.5*(cmp[i][8]*cphi[i][9]+cmp[i][9]*cphi[i][8]); + vxz = vxz - 0.5*(cmp[i][3]*cphi[i][1]+cmp[i][1]*cphi[i][3]) - + (cmp[i][4]+cmp[i][6])*cphi[i][8] - 0.5*cmp[i][8]*(cphi[i][4]+cphi[i][6]) - + 0.5*(cmp[i][7]*cphi[i][9]+cmp[i][9]*cphi[i][7]); + vyy = vyy - cmp[i][2]*cphi[i][2] - 2.0*cmp[i][5]*cphi[i][5] - + cmp[i][7]*cphi[i][7] - cmp[i][9]*cphi[i][9]; + vyz = vyz - 0.5*(cmp[i][3]*cphi[i][2]+cmp[i][2]*cphi[i][3]) - + (cmp[i][5]+cmp[i][6])*cphi[i][9] - 0.5*cmp[i][9]*(cphi[i][5]+cphi[i][6]) - + 0.5*(cmp[i][7]*cphi[i][8]+cmp[i][8]*cphi[i][7]); + vzz = vzz - cmp[i][3]*cphi[i][3] - 2.0*cmp[i][6]*cphi[i][6] - + cmp[i][8]*cphi[i][8] - cmp[i][9]*cphi[i][9]; + } + } + + // resolve site torques then increment forces and virial + + for (i = 0; i < nlocal; i++) { + tem[0] = cmp[i][3]*cphi[i][2] - cmp[i][2]*cphi[i][3] + + 2.0*(cmp[i][6]-cmp[i][5])*cphi[i][9] + + cmp[i][8]*cphi[i][7] + cmp[i][9]*cphi[i][5] - + cmp[i][7]*cphi[i][8] - cmp[i][9]*cphi[i][6]; + tem[1] = cmp[i][1]*cphi[i][3] - cmp[i][3]*cphi[i][1] + + 2.0*(cmp[i][4]-cmp[i][6])*cphi[i][8] + + cmp[i][7]*cphi[i][9] + cmp[i][8]*cphi[i][6] - + cmp[i][8]*cphi[i][4] - cmp[i][9]*cphi[i][7]; + tem[2] = cmp[i][2]*cphi[i][1] - cmp[i][1]*cphi[i][2] + + 2.0*(cmp[i][5]-cmp[i][4])*cphi[i][7] + + cmp[i][7]*cphi[i][4] + cmp[i][9]*cphi[i][8] - + cmp[i][7]*cphi[i][5] - cmp[i][8]*cphi[i][9]; + + torque2force(i,tem,fix,fiy,fiz,f); + + if (vflag_global) { + iz = zaxis2local[i]; + ix = xaxis2local[i]; + iy = yaxis2local[i]; + + xiz = x[iz][0] - x[i][0]; + yiz = x[iz][1] - x[i][1]; + ziz = x[iz][2] - x[i][2]; + xix = x[ix][0] - x[i][0]; + yix = x[ix][1] - x[i][1]; + zix = x[ix][2] - x[i][2]; + xiy = x[iy][0] - x[i][0]; + yiy = x[iy][1] - x[i][1]; + ziy = x[iy][2] - x[i][2]; + + vxx += xix*fix[0] + xiy*fiy[0] + xiz*fiz[0]; + vxy += 0.5*(yix*fix[0] + yiy*fiy[0] + yiz*fiz[0] + + xix*fix[1] + xiy*fiy[1] + xiz*fiz[1]); + vxz += 0.5*(zix*fix[0] + ziy*fiy[0] + ziz*fiz[0] + + xix*fix[2] + xiy*fiy[2] + xiz*fiz[2]); + vyy += yix*fix[1] + yiy*fiy[1] + yiz*fiz[1]; + vyz += 0.5*(zix*fix[1] + ziy*fiy[1] + ziz*fiz[1] + + yix*fix[2] + yiy*fiy[2] + yiz*fiz[2]); + vzz += zix*fix[2] + ziy*fiy[2] + ziz*fiz[2]; + } + } + + // increment total internal virial tensor components + + if (vflag_global) { + virmpole[0] -= vxx; + virmpole[1] -= vyy; + virmpole[2] -= vzz; + virmpole[3] -= vxy; + virmpole[4] -= vxz; + virmpole[5] -= vyz; + } +} + +/* ---------------------------------------------------------------------- + damppole generates coefficients for the charge penetration + damping function for powers of the interatomic distance + + literature references: + + L. V. Slipchenko and M. S. Gordon, "Electrostatic Energy in the + Effective Fragment Potential Method: Theory and Application to + the Benzene Dimer", Journal of Computational Chemistry, 28, + 276-291 (2007) [Gordon f1 and f2 models] + + J. A. Rackers, Q. Wang, C. Liu, J.-P. Piquemal, P. Ren and + J. W. Ponder, "An Optimized Charge Penetration Model for Use with + the AMOEBA Force Field", Physical Chemistry Chemical Physics, 19, + 276-291 (2017) +------------------------------------------------------------------------- */ + +void PairAmoeba::damppole(double r, int rorder, double alphai, double alphak, + double *dmpi, double *dmpk, double *dmpik) +{ + double termi,termk; + double termi2,termk2; + double alphai2,alphak2; + double eps,diff; + double expi,expk; + double dampi,dampk; + double dampi2,dampi3; + double dampi4,dampi5; + double dampi6,dampi7; + double dampi8; + double dampk2,dampk3; + double dampk4,dampk5; + double dampk6; + + // compute tolerance and exponential damping factors + + eps = 0.001; + diff = fabs(alphai-alphak); + dampi = alphai * r; + dampk = alphak * r; + expi = exp(-dampi); + expk = exp(-dampk); + + // core-valence charge penetration damping for Gordon f1 + + dampi2 = dampi * dampi; + dampi3 = dampi * dampi2; + dampi4 = dampi2 * dampi2; + dampi5 = dampi2 * dampi3; + dmpi[0] = 1.0 - (1.0 + 0.5*dampi)*expi; + dmpi[2] = 1.0 - (1.0 + dampi + 0.5*dampi2)*expi; + dmpi[4] = 1.0 - (1.0 + dampi + 0.5*dampi2 + dampi3/6.0)*expi; + dmpi[6] = 1.0 - (1.0 + dampi + 0.5*dampi2 + dampi3/6.0 + dampi4/30.0)*expi; + dmpi[8] = 1.0 - (1.0 + dampi + 0.5*dampi2 + dampi3/6.0 + + 4.0*dampi4/105.0 + dampi5/210.0)*expi; + if (diff < eps) { + dmpk[0] = dmpi[0]; + dmpk[2] = dmpi[2]; + dmpk[4] = dmpi[4]; + dmpk[6] = dmpi[6]; + dmpk[8] = dmpi[8]; + } else { + dampk2 = dampk * dampk; + dampk3 = dampk * dampk2; + dampk4 = dampk2 * dampk2; + dampk5 = dampk2 * dampk3; + dmpk[0] = 1.0 - (1.0 + 0.5*dampk)*expk; + dmpk[2] = 1.0 - (1.0 + dampk + 0.5*dampk2)*expk; + dmpk[4] = 1.0 - (1.0 + dampk + 0.5*dampk2 + dampk3/6.0)*expk; + dmpk[6] = 1.0 - (1.0 + dampk + 0.5*dampk2 + dampk3/6.0 + dampk4/30.0)*expk; + dmpk[8] = 1.0 - (1.0 + dampk + 0.5*dampk2 + dampk3/6.0 + + 4.0*dampk4/105.0 + dampk5/210.0)*expk; + } + + // valence-valence charge penetration damping for Gordon f1 + + if (diff < eps) { + dampi6 = dampi3 * dampi3; + dampi7 = dampi3 * dampi4; + dmpik[0] = 1.0 - (1.0 + 11.0*dampi/16.0 + 3.0*dampi2/16.0 + + dampi3/48.0)*expi; + dmpik[2] = 1.0 - (1.0 + dampi + 0.5*dampi2 + + 7.0*dampi3/48.0 + dampi4/48.0)*expi; + dmpik[4] = 1.0 - (1.0 + dampi + 0.5*dampi2 + dampi3/6.0 + + dampi4/24.0 + dampi5/144.0)*expi; + dmpik[6] = 1.0 - (1.0 + dampi + 0.5*dampi2 + dampi3/6.0 + + dampi4/24.0 + dampi5/120.0 + dampi6/720.0)*expi; + dmpik[8] = 1.0 - (1.0 + dampi + 0.5*dampi2 + dampi3/6.0 + + dampi4/24.0 + dampi5/120.0 + dampi6/720.0 + + dampi7/5040.0)*expi; + if (rorder >= 11) { + dampi8 = dampi4 * dampi4; + dmpik[10] = 1.0 - (1.0 + dampi + 0.5*dampi2 + dampi3/6.0 + + dampi4/24.0 + dampi5/120.0 + dampi6/720.0 + + dampi7/5040.0 + dampi8/45360.0)*expi; + } + + } else { + alphai2 = alphai * alphai; + alphak2 = alphak * alphak; + termi = alphak2 / (alphak2-alphai2); + termk = alphai2 / (alphai2-alphak2); + termi2 = termi * termi; + termk2 = termk * termk; + dmpik[0] = 1.0 - termi2*(1.0 + 2.0*termk + 0.5*dampi)*expi - + termk2*(1.0 + 2.0*termi + 0.5*dampk)*expk; + dmpik[2] = 1.0 - termi2*(1.0+dampi+0.5*dampi2)*expi - + termk2*(1.0+dampk+0.5*dampk2)*expk - + 2.0*termi2*termk*(1.0+dampi)*expi - + 2.0*termk2*termi*(1.0+dampk)*expk; + dmpik[4] = 1.0 - termi2*(1.0 + dampi + 0.5*dampi2 + dampi3/6.0)*expi - + termk2*(1.0 + dampk + 0.5*dampk2 + dampk3/6.0)*expk - + 2.0*termi2*termk*(1.0 + dampi + dampi2/3.0)*expi - + 2.0*termk2*termi*(1.0 + dampk + dampk2/3.0)*expk; + dmpik[6] = 1.0 - termi2*(1.0 + dampi + 0.5*dampi2 + + dampi3/6.0 + dampi4/30.0)*expi - + termk2*(1.0 + dampk + 0.5*dampk2 + dampk3/6.0 + dampk4/30.0)*expk - + 2.0*termi2*termk*(1.0 + dampi + 2.0*dampi2/5.0 + dampi3/15.0)*expi - + 2.0*termk2*termi*(1.0 + dampk + 2.0*dampk2/5.0 + dampk3/15.0)*expk; + dmpik[8] = 1.0 - termi2*(1.0 + dampi + 0.5*dampi2 + dampi3/6.0 + + 4.0*dampi4/105.0 + dampi5/210.0)*expi - + termk2*(1.0 + dampk + 0.5*dampk2 + dampk3/6.0 + + 4.0*dampk4/105.0 + dampk5/210.0)*expk - + 2.0*termi2*termk*(1.0 + dampi + 3.0*dampi2/7.0 + + 2.0*dampi3/21.0 + dampi4/105.0)*expi - + 2.0*termk2*termi*(1.0 + dampk + 3.0*dampk2/7.0 + + 2.0*dampk3/21.0 + dampk4/105.0)*expk; + + if (rorder >= 11) { + dampi6 = dampi3 * dampi3; + dampk6 = dampk3 * dampk3; + dmpik[10] = 1.0 - termi2*(1.0 + dampi + 0.5*dampi2 + dampi3/6.0 + + 5.0*dampi4/126.0 + 2.0*dampi5/315.0 + + dampi6/1890.0)*expi - + termk2*(1.0 + dampk + 0.5*dampk2 + dampk3/6.0 + 5.0*dampk4/126.0 + + 2.0*dampk5/315.0 + dampk6/1890.0)*expk - + 2.0*termi2*termk*(1.0 + dampi + 4.0*dampi2/9.0 + dampi3/9.0 + + dampi4/63.0 + dampi5/945.0)*expi - + 2.0*termk2*termi*(1.0 + dampk + 4.0*dampk2/9.0 + dampk3/9.0 + + dampk4/63.0 + dampk5/945.0)*expk; + } + } +} diff --git a/src/AMOEBA/amoeba_polar.cpp b/src/AMOEBA/amoeba_polar.cpp new file mode 100644 index 0000000000..f0670ea8c6 --- /dev/null +++ b/src/AMOEBA/amoeba_polar.cpp @@ -0,0 +1,2161 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_amoeba.h" + +#include "amoeba_convolution.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "fft3d_wrap.h" +#include "math_const.h" +#include "memory.h" +#include "neigh_list.h" + +#include +#include + +using namespace LAMMPS_NS; +using namespace MathConst; + +enum{FIELD,ZRSD,TORQUE,UFLD}; // reverse comm +enum{MUTUAL,OPT,TCG,DIRECT}; +enum{VDWL,REPULSE,QFER,DISP,MPOLE,POLAR,USOLV,DISP_LONG,MPOLE_LONG,POLAR_LONG}; + +/* ---------------------------------------------------------------------- + polar = induced dipole polarization + adapted from Tinker epolar1d() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::polar() +{ + int i; + int ix,iy,iz; + double felec,term; + double dix,diy,diz; + double uix,uiy,uiz; + double xix,yix,zix; + double xiy,yiy,ziy; + double xiz,yiz,ziz; + double vxx,vyy,vzz; + double vxy,vxz,vyz; + double fix[3],fiy[3],fiz[3]; + double tep[3]; + + // set cutoffs, taper coeffs, and PME params + + if (use_ewald) choose(POLAR_LONG); + else choose(POLAR); + + // owned atoms + + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + + // set the energy unit conversion factor + + felec = electric / am_dielectric; + + // compute the total induced dipole polarization energy + + polar_energy(); + + // compute the real space part of the dipole interactions + + if (polar_rspace_flag) polar_real(); + + // compute the reciprocal space part of dipole interactions + + if (polar_kspace_flag) polar_kspace(); + + // compute the Ewald self-energy torque and virial terms + + term = (4.0/3.0) * felec * pow(aewald,3.0) / MY_PIS; + + for (i = 0; i < nlocal; i++) { + dix = rpole[i][1]; + diy = rpole[i][2]; + diz = rpole[i][3]; + uix = 0.5 * (uind[i][0]+uinp[i][0]); + uiy = 0.5 * (uind[i][1]+uinp[i][1]); + uiz = 0.5 * (uind[i][2]+uinp[i][2]); + tep[0] = term * (diy*uiz-diz*uiy); + tep[1] = term * (diz*uix-dix*uiz); + tep[2] = term * (dix*uiy-diy*uix); + + torque2force(i,tep,fix,fiy,fiz,f); + + if (!vflag_global) continue; + + iz = zaxis2local[i]; + ix = xaxis2local[i]; + iy = yaxis2local[i]; + + xiz = x[iz][0] - x[i][0]; + yiz = x[iz][1] - x[i][1]; + ziz = x[iz][2] - x[i][2]; + xix = x[ix][0] - x[i][0]; + yix = x[ix][1] - x[i][1]; + zix = x[ix][2] - x[i][2]; + xiy = x[iy][0] - x[i][0]; + yiy = x[iy][1] - x[i][1]; + ziy = x[iy][2] - x[i][2]; + + vxx = xix*fix[0] + xiy*fiy[0] + xiz*fiz[0]; + vyy = yix*fix[1] + yiy*fiy[1] + yiz*fiz[1]; + vzz = zix*fix[2] + ziy*fiy[2] + ziz*fiz[2]; + + vxy = 0.5 * (yix*fix[0] + yiy*fiy[0] + yiz*fiz[0] + + xix*fix[1] + xiy*fiy[1] + xiz*fiz[1]); + vxz = 0.5 * (zix*fix[0] + ziy*fiy[0] + ziz*fiz[0] + + xix*fix[2] + xiy*fiy[2] + xiz*fiz[2]); + vyz = 0.5 * (zix*fix[1] + ziy*fiy[1] + ziz*fiz[1] + + yix*fix[2] + yiy*fiy[2] + yiz*fiz[2]); + + virpolar[0] -= vxx; + virpolar[1] -= vyy; + virpolar[2] -= vzz; + virpolar[3] -= vxy; + virpolar[4] -= vxz; + virpolar[5] -= vyz; + } +} + +/* ---------------------------------------------------------------------- + polar_energy = inducded dipole polarization energy + adapted from Tinker epolar1e() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::polar_energy() +{ + int i,j,itype; + double e,felec,fi; + + // owned atoms + + int nlocal = atom->nlocal; + + // set the energy unit conversion factor + + felec = -0.5 * electric / am_dielectric; + + // get polarization energy via induced dipoles times field + + for (i = 0; i < nlocal; i++) { + itype = amtype[i]; + fi = felec / polarity[itype]; + e = 0.0; + for (j = 0; j < 3; j++) + e += fi*uind[i][j]*udirp[i][j]; + epolar += e; + } +} + +/* ---------------------------------------------------------------------- + polar_real = real-space portion of induced dipole polarization + adapted from Tinker epreal1d() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::polar_real() +{ + int i,j,k,m,ii,jj,jextra,itype,jtype,iclass,jclass,igroup,jgroup; + int ix,iy,iz; + double felec,bfac; + double alsq2,alsq2n; + double exp2a,ralpha; + double damp,expdamp; + double pdi,pti; + double pgamma; + double temp3,temp5,temp7; + double sc3,sc5,sc7; + double psc3,psc5,psc7; + double dsc3,dsc5,dsc7; + double usc3,usc5; + double psr3,psr5,psr7; + double dsr3,dsr5,dsr7; + double usr5; + double rr3core,rr5core; + double rr3i,rr5i; + double rr7i,rr9i; + double rr3k,rr5k; + double rr7k,rr9k; + double rr5ik,rr7ik; + double xi,yi,zi; + double xr,yr,zr; + double r,r2,rr1,rr3; + double rr5,rr7,rr9; + double ci,dix,diy,diz; + double qixx,qixy,qixz; + double qiyy,qiyz,qizz; + double uix,uiy,uiz; + double uixp,uiyp,uizp; + double ck,dkx,dky,dkz; + double qkxx,qkxy,qkxz; + double qkyy,qkyz,qkzz; + double ukx,uky,ukz; + double ukxp,ukyp,ukzp; + double dir,uir,uirp; + double dkr,ukr,ukrp; + double qix,qiy,qiz,qir; + double qkx,qky,qkz,qkr; + double corei,corek; + double vali,valk; + double alphai,alphak; + double uirm,ukrm; + double tuir,tukr; + double tixx,tiyy,tizz; + double tixy,tixz,tiyz; + double tkxx,tkyy,tkzz; + double tkxy,tkxz,tkyz; + double tix3,tiy3,tiz3; + double tix5,tiy5,tiz5; + double tkx3,tky3,tkz3; + double tkx5,tky5,tkz5; + double term1,term2,term3; + double term4,term5; + double term6,term7; + double term1core; + double term1i,term2i,term3i; + double term4i,term5i,term6i; + double term7i,term8i; + double term1k,term2k,term3k; + double term4k,term5k,term6k; + double term7k,term8k; + double depx,depy,depz; + double frcx,frcy,frcz; + double xix,yix,zix; + double xiy,yiy,ziy; + double xiz,yiz,ziz; + double vxx,vyy,vzz; + double vxy,vxz,vyz; + double factor_pscale,factor_dscale,factor_uscale,factor_wscale; + double rc3[3],rc5[3],rc7[3]; + double prc3[3],prc5[3],prc7[3]; + double drc3[3],drc5[3],drc7[3]; + double urc3[3],urc5[3],tep[3]; + double fix[3],fiy[3],fiz[3]; + double uax[3],uay[3],uaz[3]; + double ubx[3],uby[3],ubz[3]; + double uaxp[3],uayp[3],uazp[3]; + double ubxp[3],ubyp[3],ubzp[3]; + double dmpi[9],dmpk[9]; + double dmpik[9]; + double bn[5]; + + int inum,jnum; + int *ilist,*jlist,*numneigh,**firstneigh; + + // owned atoms + + double *pval = atom->dvector[index_pval]; + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; + + // initialize ufld,dulfd to zero for owned and ghost atoms + + for (i = 0; i < nall; i++) + for (j = 0; j < 3; j++) + ufld[i][j] = 0.0; + + for (i = 0; i < nall; i++) + for (j = 0; j < 6; j++) + dufld[i][j] = 0.0; + + // neigh list + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // set the energy unit conversion factor + // NOTE: why 1/2 ? + + felec = 0.5 * electric / am_dielectric; + + // compute the dipole polarization gradient components + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + itype = amtype[i]; + iclass = amtype2class[itype]; + igroup = amgroup[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + ci = rpole[i][0]; + dix = rpole[i][1]; + diy = rpole[i][2]; + diz = rpole[i][3]; + qixx = rpole[i][4]; + qixy = rpole[i][5]; + qixz = rpole[i][6]; + qiyy = rpole[i][8]; + qiyz = rpole[i][9]; + qizz = rpole[i][12]; + uix = uind[i][0]; + uiy = uind[i][1]; + uiz = uind[i][2]; + uixp = uinp[i][0]; + uiyp = uinp[i][1]; + uizp = uinp[i][2]; + for (m = 0; m < tcgnab; m++) { + uax[m] = uad[m][i][0]; + uay[m] = uad[m][i][1]; + uaz[m] = uad[m][i][2]; + uaxp[m] = uap[m][i][0]; + uayp[m] = uap[m][i][1]; + uazp[m] = uap[m][i][2]; + ubx[m] = ubd[m][i][0]; + uby[m] = ubd[m][i][1]; + ubz[m] = ubd[m][i][2]; + ubxp[m] = ubp[m][i][0]; + ubyp[m] = ubp[m][i][1]; + ubzp[m] = ubp[m][i][2]; + } + + if (amoeba) { + pdi = pdamp[itype]; + pti = thole[itype]; + } else { + corei = pcore[iclass]; + alphai = palpha[iclass]; + vali = pval[i]; + } + + // evaluate all sites within the cutoff distance + + for (jj = 0; jj < jnum; jj++) { + jextra = jlist[jj]; + j = jextra & NEIGHMASK15; + + xr = x[j][0] - xi; + yr = x[j][1] - yi; + zr = x[j][2] - zi; + r2 = xr*xr + yr*yr + zr*zr; + if (r2 > off2) continue; + + jtype = amtype[j]; + jclass = amtype2class[jtype]; + jgroup = amgroup[j]; + + if (amoeba) { + factor_wscale = special_polar_wscale[sbmask15(jextra)]; + if (igroup == jgroup) { + factor_pscale = special_polar_piscale[sbmask15(jextra)]; + factor_dscale = polar_dscale; + factor_uscale = polar_uscale; + } else { + factor_pscale = special_polar_pscale[sbmask15(jextra)]; + factor_dscale = factor_uscale = 1.0; + } + + } else { + factor_wscale = special_polar_wscale[sbmask15(jextra)]; + if (igroup == jgroup) { + factor_dscale = factor_pscale = special_polar_piscale[sbmask15(jextra)]; + factor_uscale = polar_uscale; + } else { + factor_dscale = factor_pscale = special_polar_pscale[sbmask15(jextra)]; + factor_uscale = 1.0; + } + } + + r = sqrt(r2); + ck = rpole[j][0]; + dkx = rpole[j][1]; + dky = rpole[j][2]; + dkz = rpole[j][3]; + qkxx = rpole[j][4]; + qkxy = rpole[j][5]; + qkxz = rpole[j][6]; + qkyy = rpole[j][8]; + qkyz = rpole[j][9]; + qkzz = rpole[j][12]; + ukx = uind[j][0]; + uky = uind[j][1]; + ukz = uind[j][2]; + ukxp = uinp[j][0]; + ukyp = uinp[j][1]; + ukzp = uinp[j][2]; + + // intermediates involving moments and separation distance + + dir = dix*xr + diy*yr + diz*zr; + qix = qixx*xr + qixy*yr + qixz*zr; + qiy = qixy*xr + qiyy*yr + qiyz*zr; + qiz = qixz*xr + qiyz*yr + qizz*zr; + qir = qix*xr + qiy*yr + qiz*zr; + dkr = dkx*xr + dky*yr + dkz*zr; + qkx = qkxx*xr + qkxy*yr + qkxz*zr; + qky = qkxy*xr + qkyy*yr + qkyz*zr; + qkz = qkxz*xr + qkyz*yr + qkzz*zr; + qkr = qkx*xr + qky*yr + qkz*zr; + uir = uix*xr + uiy*yr + uiz*zr; + uirp = uixp*xr + uiyp*yr + uizp*zr; + ukr = ukx*xr + uky*yr + ukz*zr; + ukrp = ukxp*xr + ukyp*yr + ukzp*zr; + + // get reciprocal distance terms for this interaction + + rr1 = felec / r; + rr3 = rr1 / r2; + rr5 = 3.0 * rr3 / r2; + rr7 = 5.0 * rr5 / r2; + rr9 = 7.0 * rr7 / r2; + + // calculate the real space Ewald error function terms + + ralpha = aewald * r; + bn[0] = erfc(ralpha) / r; + alsq2 = 2.0 * aewald*aewald; + alsq2n = 0.0; + if (aewald > 0.0) alsq2n = 1.0 / (MY_PIS*aewald); + exp2a = exp(-ralpha*ralpha); + + for (m = 1; m <= 4; m++) { + bfac = (double) (m+m-1); + alsq2n = alsq2 * alsq2n; + bn[m] = (bfac*bn[m-1]+alsq2n*exp2a) / r2; + } + for (m = 0; m < 5; m++) bn[m] *= felec; + + // apply Thole polarization damping to scale factors + + sc3 = 1.0; + sc5 = 1.0; + sc7 = 1.0; + for (k = 0; k < 3; k++) { + rc3[k] = 0.0; + rc5[k] = 0.0; + rc7[k] = 0.0; + } + + // apply Thole polarization damping to scale factors + + if (amoeba) { + damp = pdi * pdamp[jtype]; + if (damp != 0.0) { + pgamma = MIN(pti,thole[jtype]); + damp = pgamma * pow(r/damp,3.0); + if (damp < 50.0) { + expdamp = exp(-damp); + sc3 = 1.0 - expdamp; + sc5 = 1.0 - (1.0+damp)*expdamp; + sc7 = 1.0 - (1.0+damp+0.6*damp*damp) * expdamp; + temp3 = 3.0 * damp * expdamp / r2; + temp5 = damp; + temp7 = -0.2 + 0.6*damp; + rc3[0] = xr * temp3; + rc3[1] = yr * temp3; + rc3[2] = zr * temp3; + rc5[0] = rc3[0] * temp5; + rc5[1] = rc3[1] * temp5; + rc5[2] = rc3[2] * temp5; + rc7[0] = rc5[0] * temp7; + rc7[1] = rc5[1] * temp7; + rc7[2] = rc5[2] * temp7; + } + + psc3 = 1.0 - sc3*factor_pscale; + psc5 = 1.0 - sc5*factor_pscale; + psc7 = 1.0 - sc7*factor_pscale; + dsc3 = 1.0 - sc3*factor_dscale; + dsc5 = 1.0 - sc5*factor_dscale; + dsc7 = 1.0 - sc7*factor_dscale; + usc3 = 1.0 - sc3*factor_uscale; + usc5 = 1.0 - sc5*factor_uscale; + psr3 = bn[1] - psc3*rr3; + psr5 = bn[2] - psc5*rr5; + psr7 = bn[3] - psc7*rr7; + dsr3 = bn[1] - dsc3*rr3; + dsr5 = bn[2] - dsc5*rr5; + dsr7 = bn[3] - dsc7*rr7; + usr5 = bn[2] - usc5*rr5; + for (k = 0; k < 3; k++) { + prc3[k] = rc3[k] * factor_pscale; + prc5[k] = rc5[k] * factor_pscale; + prc7[k] = rc7[k] * factor_pscale; + drc3[k] = rc3[k] * factor_dscale; + drc5[k] = rc5[k] * factor_dscale; + drc7[k] = rc7[k] * factor_dscale; + urc3[k] = rc3[k] * factor_uscale; + urc5[k] = rc5[k] * factor_uscale; + } + } + + // apply charge penetration damping to scale factors + + } else { + corek = pcore[jclass]; + alphak = palpha[jclass]; + valk = pval[j]; + damppole(r,9,alphai,alphak,dmpi,dmpk,dmpik); + rr3core = bn[1] - (1.0-factor_dscale)*rr3; + rr5core = bn[2] - (1.0-factor_dscale)*rr5; + rr3i = bn[1] - (1.0-factor_dscale*dmpi[2])*rr3; + rr5i = bn[2] - (1.0-factor_dscale*dmpi[4])*rr5; + rr7i = bn[3] - (1.0-factor_dscale*dmpi[6])*rr7; + rr9i = bn[4] - (1.0-factor_dscale*dmpi[8])*rr9; + rr3k = bn[1] - (1.0-factor_dscale*dmpk[2])*rr3; + rr5k = bn[2] - (1.0-factor_dscale*dmpk[4])*rr5; + rr7k = bn[3] - (1.0-factor_dscale*dmpk[6])*rr7; + rr9k = bn[4] - (1.0-factor_dscale*dmpk[8])*rr9; + rr5ik = bn[2] - (1.0-factor_wscale*dmpik[4])*rr5; + rr7ik = bn[3] - (1.0-factor_wscale*dmpik[6])*rr7; + } + + // get the induced dipole field used for dipole torques + + if (amoeba) { + tix3 = psr3*ukx + dsr3*ukxp; + tiy3 = psr3*uky + dsr3*ukyp; + tiz3 = psr3*ukz + dsr3*ukzp; + tkx3 = psr3*uix + dsr3*uixp; + tky3 = psr3*uiy + dsr3*uiyp; + tkz3 = psr3*uiz + dsr3*uizp; + tuir = -psr5*ukr - dsr5*ukrp; + tukr = -psr5*uir - dsr5*uirp; + } else { + tix3 = 2.0*rr3i*ukx; + tiy3 = 2.0*rr3i*uky; + tiz3 = 2.0*rr3i*ukz; + tkx3 = 2.0*rr3k*uix; + tky3 = 2.0*rr3k*uiy; + tkz3 = 2.0*rr3k*uiz; + tuir = -2.0*rr5i*ukr; + tukr = -2.0*rr5k*uir; + } + + ufld[i][0] += tix3 + xr*tuir; + ufld[i][1] += tiy3 + yr*tuir; + ufld[i][2] += tiz3 + zr*tuir; + ufld[j][0] += tkx3 + xr*tukr; + ufld[j][1] += tky3 + yr*tukr; + ufld[j][2] += tkz3 + zr*tukr; + + // get induced dipole field gradient used for quadrupole torques + + if (amoeba) { + tix5 = 2.0 * (psr5*ukx+dsr5*ukxp); + tiy5 = 2.0 * (psr5*uky+dsr5*ukyp); + tiz5 = 2.0 * (psr5*ukz+dsr5*ukzp); + tkx5 = 2.0 * (psr5*uix+dsr5*uixp); + tky5 = 2.0 * (psr5*uiy+dsr5*uiyp); + tkz5 = 2.0 * (psr5*uiz+dsr5*uizp); + tuir = -psr7*ukr - dsr7*ukrp; + tukr = -psr7*uir - dsr7*uirp; + + } else { + tix5 = 4.0 * (rr5i*ukx); + tiy5 = 4.0 * (rr5i*uky); + tiz5 = 4.0 * (rr5i*ukz); + tkx5 = 4.0 * (rr5k*uix); + tky5 = 4.0 * (rr5k*uiy); + tkz5 = 4.0 * (rr5k*uiz); + tuir = -2.0*rr7i*ukr; + tukr = -2.0*rr7k*uir; + } + + dufld[i][0] += xr*tix5 + xr*xr*tuir; + dufld[i][1] += xr*tiy5 + yr*tix5 + 2.0*xr*yr*tuir; + dufld[i][2] += yr*tiy5 + yr*yr*tuir; + dufld[i][3] += xr*tiz5 + zr*tix5 + 2.0*xr*zr*tuir; + dufld[i][4] += yr*tiz5 + zr*tiy5 + 2.0*yr*zr*tuir; + dufld[i][5] += zr*tiz5 + zr*zr*tuir; + + dufld[j][0] -= xr*tkx5 + xr*xr*tukr; + dufld[j][1] -= xr*tky5 + yr*tkx5 + 2.0*xr*yr*tukr; + dufld[j][2] -= yr*tky5 + yr*yr*tukr; + dufld[j][3] -= xr*tkz5 + zr*tkx5 + 2.0*xr*zr*tukr; + dufld[j][4] -= yr*tkz5 + zr*tky5 + 2.0*yr*zr*tukr; + dufld[j][5] -= zr*tkz5 + zr*zr*tukr; + + // get the dEd/dR terms used for direct polarization force + + if (amoeba) { + term1 = bn[2] - dsc3*rr5; + term2 = bn[3] - dsc5*rr7; + term3 = -dsr3 + term1*xr*xr - rr3*xr*drc3[0]; + term4 = rr3*drc3[0] - term1*xr - dsr5*xr; + term5 = term2*xr*xr - dsr5 - rr5*xr*drc5[0]; + term6 = (bn[4]-dsc7*rr9)*xr*xr - bn[3] - rr7*xr*drc7[0]; + term7 = rr5*drc5[0] - 2.0*bn[3]*xr + (dsc5+1.5*dsc7)*rr7*xr; + tixx = ci*term3 + dix*term4 + dir*term5 + + 2.0*dsr5*qixx + (qiy*yr+qiz*zr)*dsc7*rr7 + 2.0*qix*term7 + qir*term6; + tkxx = ck*term3 - dkx*term4 - dkr*term5 + + 2.0*dsr5*qkxx + (qky*yr+qkz*zr)*dsc7*rr7 + 2.0*qkx*term7 + qkr*term6; + term3 = -dsr3 + term1*yr*yr - rr3*yr*drc3[1]; + term4 = rr3*drc3[1] - term1*yr - dsr5*yr; + term5 = term2*yr*yr - dsr5 - rr5*yr*drc5[1]; + term6 = (bn[4]-dsc7*rr9)*yr*yr - bn[3] - rr7*yr*drc7[1]; + term7 = rr5*drc5[1] - 2.0*bn[3]*yr + (dsc5+1.5*dsc7)*rr7*yr; + tiyy = ci*term3 + diy*term4 + dir*term5 + + 2.0*dsr5*qiyy + (qix*xr+qiz*zr)*dsc7*rr7 + 2.0*qiy*term7 + qir*term6; + tkyy = ck*term3 - dky*term4 - dkr*term5 + + 2.0*dsr5*qkyy + (qkx*xr+qkz*zr)*dsc7*rr7 + 2.0*qky*term7 + qkr*term6; + term3 = -dsr3 + term1*zr*zr - rr3*zr*drc3[2]; + term4 = rr3*drc3[2] - term1*zr - dsr5*zr; + term5 = term2*zr*zr - dsr5 - rr5*zr*drc5[2]; + term6 = (bn[4]-dsc7*rr9)*zr*zr - bn[3] - rr7*zr*drc7[2]; + term7 = rr5*drc5[2] - 2.0*bn[3]*zr + (dsc5+1.5*dsc7)*rr7*zr; + tizz = ci*term3 + diz*term4 + dir*term5 + + 2.0*dsr5*qizz + (qix*xr+qiy*yr)*dsc7*rr7 + 2.0*qiz*term7 + qir*term6; + tkzz = ck*term3 - dkz*term4 - dkr*term5 + + 2.0*dsr5*qkzz + (qkx*xr+qky*yr)*dsc7*rr7 + 2.0*qkz*term7 + qkr*term6; + term3 = term1*xr*yr - rr3*yr*drc3[0]; + term4 = rr3*drc3[0] - term1*xr; + term5 = term2*xr*yr - rr5*yr*drc5[0]; + term6 = (bn[4]-dsc7*rr9)*xr*yr - rr7*yr*drc7[0]; + term7 = rr5*drc5[0] - term2*xr; + tixy = ci*term3 - dsr5*dix*yr + diy*term4 + dir*term5 + + 2.0*dsr5*qixy - 2.0*dsr7*yr*qix + 2.0*qiy*term7 + qir*term6; + tkxy = ck*term3 + dsr5*dkx*yr - dky*term4 - dkr*term5 + + 2.0*dsr5*qkxy - 2.0*dsr7*yr*qkx + 2.0*qky*term7 + qkr*term6; + term3 = term1*xr*zr - rr3*zr*drc3[0]; + term5 = term2*xr*zr - rr5*zr*drc5[0]; + term6 = (bn[4]-dsc7*rr9)*xr*zr - rr7*zr*drc7[0]; + tixz = ci*term3 - dsr5*dix*zr + diz*term4 + dir*term5 + + 2.0*dsr5*qixz - 2.0*dsr7*zr*qix + 2.0*qiz*term7 + qir*term6; + tkxz = ck*term3 + dsr5*dkx*zr - dkz*term4 - dkr*term5 + + 2.0*dsr5*qkxz - 2.0*dsr7*zr*qkx + 2.0*qkz*term7 + qkr*term6; + term3 = term1*yr*zr - rr3*zr*drc3[1]; + term4 = rr3*drc3[1] - term1*yr; + term5 = term2*yr*zr - rr5*zr*drc5[1]; + term6 = (bn[4]-dsc7*rr9)*yr*zr - rr7*zr*drc7[1]; + term7 = rr5*drc5[1] - term2*yr; + tiyz = ci*term3 - dsr5*diy*zr + diz*term4 + dir*term5 + + 2.0*dsr5*qiyz - 2.0*dsr7*zr*qiy + 2.0*qiz*term7 + qir*term6; + tkyz = ck*term3 + dsr5*dky*zr - dkz*term4 - dkr*term5 + + 2.0*dsr5*qkyz - 2.0*dsr7*zr*qky + 2.0*qkz*term7 + qkr*term6; + depx = tixx*ukxp + tixy*ukyp + tixz*ukzp - tkxx*uixp - tkxy*uiyp - tkxz*uizp; + depy = tixy*ukxp + tiyy*ukyp + tiyz*ukzp - tkxy*uixp - tkyy*uiyp - tkyz*uizp; + depz = tixz*ukxp + tiyz*ukyp + tizz*ukzp - tkxz*uixp - tkyz*uiyp - tkzz*uizp; + frcx = depx; + frcy = depy; + frcz = depz; + + // get the dEp/dR terms used for direct polarization force + + term1 = bn[2] - psc3*rr5; + term2 = bn[3] - psc5*rr7; + term3 = -psr3 + term1*xr*xr - rr3*xr*prc3[0]; + term4 = rr3*prc3[0] - term1*xr - psr5*xr; + term5 = term2*xr*xr - psr5 - rr5*xr*prc5[0]; + term6 = (bn[4]-psc7*rr9)*xr*xr - bn[3] - rr7*xr*prc7[0]; + term7 = rr5*prc5[0] - 2.0*bn[3]*xr + (psc5+1.5*psc7)*rr7*xr; + tixx = ci*term3 + dix*term4 + dir*term5 + + 2.0*psr5*qixx + (qiy*yr+qiz*zr)*psc7*rr7 + 2.0*qix*term7 + qir*term6; + tkxx = ck*term3 - dkx*term4 - dkr*term5 + + 2.0*psr5*qkxx + (qky*yr+qkz*zr)*psc7*rr7 + 2.0*qkx*term7 + qkr*term6; + term3 = -psr3 + term1*yr*yr - rr3*yr*prc3[1]; + term4 = rr3*prc3[1] - term1*yr - psr5*yr; + term5 = term2*yr*yr - psr5 - rr5*yr*prc5[1]; + term6 = (bn[4]-psc7*rr9)*yr*yr - bn[3] - rr7*yr*prc7[1]; + term7 = rr5*prc5[1] - 2.0*bn[3]*yr + (psc5+1.5*psc7)*rr7*yr; + tiyy = ci*term3 + diy*term4 + dir*term5 + + 2.0*psr5*qiyy + (qix*xr+qiz*zr)*psc7*rr7 + 2.0*qiy*term7 + qir*term6; + tkyy = ck*term3 - dky*term4 - dkr*term5 + + 2.0*psr5*qkyy + (qkx*xr+qkz*zr)*psc7*rr7 + 2.0*qky*term7 + qkr*term6; + term3 = -psr3 + term1*zr*zr - rr3*zr*prc3[2]; + term4 = rr3*prc3[2] - term1*zr - psr5*zr; + term5 = term2*zr*zr - psr5 - rr5*zr*prc5[2]; + term6 = (bn[4]-psc7*rr9)*zr*zr - bn[3] - rr7*zr*prc7[2]; + term7 = rr5*prc5[2] - 2.0*bn[3]*zr + (psc5+1.5*psc7)*rr7*zr; + tizz = ci*term3 + diz*term4 + dir*term5 + + 2.0*psr5*qizz + (qix*xr+qiy*yr)*psc7*rr7 + 2.0*qiz*term7 + qir*term6; + tkzz = ck*term3 - dkz*term4 - dkr*term5 + + 2.0*psr5*qkzz + (qkx*xr+qky*yr)*psc7*rr7 + 2.0*qkz*term7 + qkr*term6; + term3 = term1*xr*yr - rr3*yr*prc3[0]; + term4 = rr3*prc3[0] - term1*xr; + term5 = term2*xr*yr - rr5*yr*prc5[0]; + term6 = (bn[4]-psc7*rr9)*xr*yr - rr7*yr*prc7[0]; + term7 = rr5*prc5[0] - term2*xr; + tixy = ci*term3 - psr5*dix*yr + diy*term4 + dir*term5 + + 2.0*psr5*qixy - 2.0*psr7*yr*qix + 2.0*qiy*term7 + qir*term6; + tkxy = ck*term3 + psr5*dkx*yr - dky*term4 - dkr*term5 + + 2.0*psr5*qkxy - 2.0*psr7*yr*qkx + 2.0*qky*term7 + qkr*term6; + term3 = term1*xr*zr - rr3*zr*prc3[0]; + term5 = term2*xr*zr - rr5*zr*prc5[0]; + term6 = (bn[4]-psc7*rr9)*xr*zr - rr7*zr*prc7[0]; + tixz = ci*term3 - psr5*dix*zr + diz*term4 + dir*term5 + + 2.0*psr5*qixz - 2.0*psr7*zr*qix + 2.0*qiz*term7 + qir*term6; + tkxz = ck*term3 + psr5*dkx*zr - dkz*term4 - dkr*term5 + + 2.0*psr5*qkxz - 2.0*psr7*zr*qkx + 2.0*qkz*term7 + qkr*term6; + term3 = term1*yr*zr - rr3*zr*prc3[1]; + term4 = rr3*prc3[1] - term1*yr; + term5 = term2*yr*zr - rr5*zr*prc5[1]; + term6 = (bn[4]-psc7*rr9)*yr*zr - rr7*zr*prc7[1]; + term7 = rr5*prc5[1] - term2*yr; + tiyz = ci*term3 - psr5*diy*zr + diz*term4 + dir*term5 + + 2.0*psr5*qiyz - 2.0*psr7*zr*qiy + 2.0*qiz*term7 + qir*term6; + tkyz = ck*term3 + psr5*dky*zr - dkz*term4 - dkr*term5 + + 2.0*psr5*qkyz - 2.0*psr7*zr*qky + 2.0*qkz*term7 + qkr*term6; + depx = tixx*ukx + tixy*uky + tixz*ukz - tkxx*uix - tkxy*uiy - tkxz*uiz; + depy = tixy*ukx + tiyy*uky + tiyz*ukz - tkxy*uix - tkyy*uiy - tkyz*uiz; + depz = tixz*ukx + tiyz*uky + tizz*ukz - tkxz*uix - tkyz*uiy - tkzz*uiz; + frcx = frcx + depx; + frcy = frcy + depy; + frcz = frcz + depz; + + // get the field gradient for direct polarization force + + } else { + term1i = rr3i - rr5i*xr*xr; + term1core = rr3core - rr5core*xr*xr; + term2i = 2.0*rr5i*xr ; + term3i = rr7i*xr*xr - rr5i; + term4i = 2.0*rr5i; + term5i = 5.0*rr7i*xr; + term6i = rr9i*xr*xr; + term1k = rr3k - rr5k*xr*xr; + term2k = 2.0*rr5k*xr; + term3k = rr7k*xr*xr - rr5k; + term4k = 2.0*rr5k; + term5k = 5.0*rr7k*xr; + term6k = rr9k*xr*xr; + tixx = vali*term1i + corei*term1core + dix*term2i - dir*term3i - + qixx*term4i + qix*term5i - qir*term6i + (qiy*yr+qiz*zr)*rr7i; + tkxx = valk*term1k + corek*term1core - dkx*term2k + dkr*term3k - + qkxx*term4k + qkx*term5k - qkr*term6k + (qky*yr+qkz*zr)*rr7k; + term1i = rr3i - rr5i*yr*yr; + term1core = rr3core - rr5core*yr*yr; + term2i = 2.0*rr5i*yr; + term3i = rr7i*yr*yr - rr5i; + term4i = 2.0*rr5i; + term5i = 5.0*rr7i*yr; + term6i = rr9i*yr*yr; + term1k = rr3k - rr5k*yr*yr; + term2k = 2.0*rr5k*yr; + term3k = rr7k*yr*yr - rr5k; + term4k = 2.0*rr5k; + term5k = 5.0*rr7k*yr; + term6k = rr9k*yr*yr; + tiyy = vali*term1i + corei*term1core + diy*term2i - dir*term3i - + qiyy*term4i + qiy*term5i - qir*term6i + (qix*xr+qiz*zr)*rr7i; + tkyy = valk*term1k + corek*term1core - dky*term2k + dkr*term3k - + qkyy*term4k + qky*term5k - qkr*term6k + (qkx*xr+qkz*zr)*rr7k; + term1i = rr3i - rr5i*zr*zr; + term1core = rr3core - rr5core*zr*zr; + term2i = 2.0*rr5i*zr; + term3i = rr7i*zr*zr - rr5i; + term4i = 2.0*rr5i; + term5i = 5.0*rr7i*zr; + term6i = rr9i*zr*zr; + term1k = rr3k - rr5k*zr*zr; + term2k = 2.0*rr5k*zr; + term3k = rr7k*zr*zr - rr5k; + term4k = 2.0*rr5k; + term5k = 5.0*rr7k*zr; + term6k = rr9k*zr*zr; + tizz = vali*term1i + corei*term1core + diz*term2i - dir*term3i - + qizz*term4i + qiz*term5i - qir*term6i + (qix*xr+qiy*yr)*rr7i; + tkzz = valk*term1k + corek*term1core - dkz*term2k + dkr*term3k - + qkzz*term4k + qkz*term5k - qkr*term6k + (qkx*xr+qky*yr)*rr7k; + term2i = rr5i*xr ; + term1i = yr * term2i; + term1core = rr5core*xr*yr; + term3i = rr5i*yr; + term4i = yr * (rr7i*xr); + term5i = 2.0*rr5i; + term6i = 2.0*rr7i*xr; + term7i = 2.0*rr7i*yr; + term8i = yr*rr9i*xr; + term2k = rr5k*xr; + term1k = yr * term2k; + term3k = rr5k*yr; + term4k = yr * (rr7k*xr); + term5k = 2.0*rr5k; + term6k = 2.0*rr7k*xr; + term7k = 2.0*rr7k*yr; + term8k = yr*rr9k*xr; + tixy = -vali*term1i - corei*term1core + diy*term2i + dix*term3i - + dir*term4i - qixy*term5i + qiy*term6i + qix*term7i - qir*term8i; + tkxy = -valk*term1k - corek*term1core - dky*term2k - dkx*term3k + + dkr*term4k - qkxy*term5k + qky*term6k + qkx*term7k - qkr*term8k; + term2i = rr5i*xr; + term1i = zr * term2i; + term1core = rr5core*xr*zr; + term3i = rr5i*zr; + term4i = zr * (rr7i*xr); + term5i = 2.0*rr5i; + term6i = 2.0*rr7i*xr; + term7i = 2.0*rr7i*zr; + term8i = zr*rr9i*xr; + term2k = rr5k*xr; + term1k = zr * term2k; + term3k = rr5k*zr; + term4k = zr * (rr7k*xr); + term5k = 2.0*rr5k; + term6k = 2.0*rr7k*xr; + term7k = 2.0*rr7k*zr; + term8k = zr*rr9k*xr; + tixz = -vali*term1i - corei*term1core + diz*term2i + dix*term3i - + dir*term4i - qixz*term5i + qiz*term6i + qix*term7i - qir*term8i; + tkxz = -valk*term1k - corek*term1core - dkz*term2k - dkx*term3k + + dkr*term4k - qkxz*term5k + qkz*term6k + qkx*term7k - qkr*term8k; + term2i = rr5i*yr; + term1i = zr * term2i; + term1core = rr5core*yr*zr; + term3i = rr5i*zr; + term4i = zr * (rr7i*yr); + term5i = 2.0*rr5i; + term6i = 2.0*rr7i*yr; + term7i = 2.0*rr7i*zr; + term8i = zr*rr9i*yr; + term2k = rr5k*yr; + term1k = zr * term2k; + term3k = rr5k*zr; + term4k = zr * (rr7k*yr); + term5k = 2.0*rr5k; + term6k = 2.0*rr7k*yr; + term7k = 2.0*rr7k*zr; + term8k = zr*rr9k*yr; + tiyz = -vali*term1i - corei*term1core + diz*term2i + diy*term3i - + dir*term4i - qiyz*term5i + qiz*term6i + qiy*term7i - qir*term8i; + tkyz = -valk*term1k - corek*term1core - dkz*term2k - dky*term3k + + dkr*term4k - qkyz*term5k + qkz*term6k + qky*term7k - qkr*term8k; + depx = tixx*ukx + tixy*uky + tixz*ukz - tkxx*uix - tkxy*uiy - tkxz*uiz; + depy = tixy*ukx + tiyy*uky + tiyz*ukz - tkxy*uix - tkyy*uiy - tkyz*uiz; + depz = tixz*ukx + tiyz*uky + tizz*ukz - tkxz*uix - tkyz*uiy - tkzz*uiz; + frcx = -2.0 * depx; + frcy = -2.0 * depy; + frcz = -2.0 * depz; + } + + // get the dtau/dr terms used for mutual polarization force + + if (poltyp == MUTUAL && amoeba) { + term1 = bn[2] - usc3*rr5; + term2 = bn[3] - usc5*rr7; + term3 = usr5 + term1; + term4 = rr3 * factor_uscale; + term5 = -xr*term3 + rc3[0]*term4; + term6 = -usr5 + xr*xr*term2 - rr5*xr*urc5[0]; + tixx = uix*term5 + uir*term6; + tkxx = ukx*term5 + ukr*term6; + term5 = -yr*term3 + rc3[1]*term4; + term6 = -usr5 + yr*yr*term2 - rr5*yr*urc5[1]; + tiyy = uiy*term5 + uir*term6; + tkyy = uky*term5 + ukr*term6; + term5 = -zr*term3 + rc3[2]*term4; + term6 = -usr5 + zr*zr*term2 - rr5*zr*urc5[2]; + tizz = uiz*term5 + uir*term6; + tkzz = ukz*term5 + ukr*term6; + term4 = -usr5 * yr; + term5 = -xr*term1 + rr3*urc3[0]; + term6 = xr*yr*term2 - rr5*yr*urc5[0]; + tixy = uix*term4 + uiy*term5 + uir*term6; + tkxy = ukx*term4 + uky*term5 + ukr*term6; + term4 = -usr5 * zr; + term6 = xr*zr*term2 - rr5*zr*urc5[0]; + tixz = uix*term4 + uiz*term5 + uir*term6; + tkxz = ukx*term4 + ukz*term5 + ukr*term6; + term5 = -yr*term1 + rr3*urc3[1]; + term6 = yr*zr*term2 - rr5*zr*urc5[1]; + tiyz = uiy*term4 + uiz*term5 + uir*term6; + tkyz = uky*term4 + ukz*term5 + ukr*term6; + depx = tixx*ukxp + tixy*ukyp + tixz*ukzp + + tkxx*uixp + tkxy*uiyp + tkxz*uizp; + depy = tixy*ukxp + tiyy*ukyp + tiyz*ukzp + + tkxy*uixp + tkyy*uiyp + tkyz*uizp; + depz = tixz*ukxp + tiyz*ukyp + tizz*ukzp + + tkxz*uixp + tkyz*uiyp + tkzz*uizp; + frcx = frcx + depx; + frcy = frcy + depy; + frcz = frcz + depz; + + // get the dtau/dr terms used for mutual polarization force + + } else if (poltyp == MUTUAL && !amoeba) { + term1 = 2.0 * rr5ik; + term2 = term1*xr; + term3 = rr5ik - rr7ik*xr*xr; + tixx = uix*term2 + uir*term3; + tkxx = ukx*term2 + ukr*term3; + term2 = term1*yr; + term3 = rr5ik - rr7ik*yr*yr; + tiyy = uiy*term2 + uir*term3; + tkyy = uky*term2 + ukr*term3; + term2 = term1*zr; + term3 = rr5ik - rr7ik*zr*zr; + tizz = uiz*term2 + uir*term3; + tkzz = ukz*term2 + ukr*term3; + term1 = rr5ik*yr; + term2 = rr5ik*xr; + term3 = yr * (rr7ik*xr); + tixy = uix*term1 + uiy*term2 - uir*term3; + tkxy = ukx*term1 + uky*term2 - ukr*term3; + term1 = rr5ik * zr; + term3 = zr * (rr7ik*xr); + tixz = uix*term1 + uiz*term2 - uir*term3; + tkxz = ukx*term1 + ukz*term2 - ukr*term3; + term2 = rr5ik*yr; + term3 = zr * (rr7ik*yr); + tiyz = uiy*term1 + uiz*term2 - uir*term3; + tkyz = uky*term1 + ukz*term2 - ukr*term3; + depx = tixx*ukxp + tixy*ukyp + tixz*ukzp + tkxx*uixp + tkxy*uiyp + tkxz*uizp; + depy = tixy*ukxp + tiyy*ukyp + tiyz*ukzp + tkxy*uixp + tkyy*uiyp + tkyz*uizp; + depz = tixz*ukxp + tiyz*ukyp + tizz*ukzp + tkxz*uixp + tkyz*uiyp + tkzz*uizp; + frcx = frcx - depx; + frcy = frcy - depy; + frcz = frcz - depz; + + // get the dtau/dr terms used for OPT polarization force + + } else if (poltyp == OPT && amoeba) { + for (k = 0; k < optorder; k++) { + uirm = uopt[i][k][0]*xr + uopt[i][k][1]*yr + uopt[i][k][2]*zr; + for (m = 0; m < optorder-k; m++) { + ukrm = uopt[j][m][0]*xr + uopt[j][m][1]*yr + uopt[j][m][2]*zr; + term1 = bn[2] - usc3*rr5; + term2 = bn[3] - usc5*rr7; + term3 = usr5 + term1; + term4 = rr3 * factor_uscale; + term5 = -xr*term3 + rc3[0]*term4; + term6 = -usr5 + xr*xr*term2 - rr5*xr*urc5[0]; + tixx = uopt[i][k][0]*term5 + uirm*term6; + tkxx = uopt[j][m][0]*term5 + ukrm*term6; + term5 = -yr*term3 + rc3[1]*term4; + term6 = -usr5 + yr*yr*term2 - rr5*yr*urc5[1]; + tiyy = uopt[i][k][1]*term5 + uirm*term6; + tkyy = uopt[j][m][1]*term5 + ukrm*term6; + term5 = -zr*term3 + rc3[2]*term4; + term6 = -usr5 + zr*zr*term2 - rr5*zr*urc5[2]; + tizz = uopt[i][k][2]*term5 + uirm*term6; + tkzz = uopt[j][m][2]*term5 + ukrm*term6; + term4 = -usr5 * yr; + term5 = -xr*term1 + rr3*urc3[0]; + term6 = xr*yr*term2 - rr5*yr*urc5[0]; + tixy = uopt[i][k][0]*term4 + uopt[i][k][1]*term5 + uirm*term6; + tkxy = uopt[j][m][0]*term4 + uopt[j][m][1]*term5 + ukrm*term6; + term4 = -usr5 * zr; + term6 = xr*zr*term2 - rr5*zr*urc5[0]; + tixz = uopt[i][k][0]*term4 + uopt[i][k][2]*term5 + uirm*term6; + tkxz = uopt[j][m][0]*term4 + uopt[j][m][2]*term5 + ukrm*term6; + term5 = -yr*term1 + rr3*urc3[1]; + term6 = yr*zr*term2 - rr5*zr*urc5[1]; + tiyz = uopt[i][k][1]*term4 + uopt[i][k][2]*term5 + uirm*term6; + tkyz = uopt[j][m][1]*term4 + uopt[j][m][2]*term5 + ukrm*term6; + depx = tixx*uoptp[j][m][0] + tkxx*uoptp[i][k][0] + tixy*uoptp[j][m][1] + + tkxy*uoptp[i][k][1] + tixz*uoptp[j][m][2] + tkxz*uoptp[i][k][2]; + depy = tixy*uoptp[j][m][0] + tkxy*uoptp[i][k][0] + tiyy*uoptp[j][m][1] + + tkyy*uoptp[i][k][1] + tiyz*uoptp[j][m][2] + tkyz*uoptp[i][k][2]; + depz = tixz*uoptp[j][m][0] + tkxz*uoptp[i][k][0] + tiyz*uoptp[j][m][1] + + tkyz*uoptp[i][k][1] + tizz*uoptp[j][m][2] + tkzz*uoptp[i][k][2]; + frcx += copm[k+m+1]*depx; + frcy += copm[k+m+1]*depy; + frcz += copm[k+m+1]*depz; + } + } + + // get the dtau/dr terms used for OPT polarization force + + } else if (poltyp == OPT && !amoeba) { + for (k = 0; k < optorder; k++) { + uirm = uopt[i][k][0]*xr + uopt[i][k][1]*yr + uopt[i][k][2]*zr; + for (m = 0; m < optorder-k; m++) { + ukrm = uopt[j][m][0]*xr + uopt[j][m][1]*yr + uopt[j][m][2]*zr; + term1 = 2.0 * rr5ik; + term2 = term1*xr; + term3 = rr5ik - rr7ik*xr*xr; + tixx = uopt[i][k][0]*term2 + uirm*term3; + tkxx = uopt[j][m][0]*term2 + ukrm*term3; + term2 = term1*yr; + term3 = rr5ik - rr7ik*yr*yr; + tiyy = uopt[i][k][1]*term2 + uirm*term3; + tkyy = uopt[j][m][1]*term2 + ukrm*term3; + term2 = term1*zr; + term3 = rr5ik - rr7ik*zr*zr; + tizz = uopt[i][k][2]*term2 + uirm*term3; + tkzz = uopt[j][m][2]*term2 + ukrm*term3; + term1 = rr5ik*yr; + term2 = rr5ik*xr; + term3 = yr * (rr7ik*xr); + tixy = uopt[i][k][0]*term1 + uopt[i][k][1]*term2 - uirm*term3; + tkxy = uopt[j][m][0]*term1 + uopt[j][m][1]*term2 - ukrm*term3; + term1 = rr5ik * zr; + term3 = zr * (rr7ik*xr); + tixz = uopt[i][k][0]*term1 + uopt[i][k][2]*term2 - uirm*term3; + tkxz = uopt[j][m][0]*term1 + uopt[j][m][2]*term2 - ukrm*term3; + term2 = rr5ik*yr; + term3 = zr * (rr7ik*yr); + tiyz = uopt[i][k][1]*term1 + uopt[i][k][2]*term2 - uirm*term3; + tkyz = uopt[j][m][1]*term1 + uopt[j][m][2]*term2 - ukrm*term3; + depx = tixx*uoptp[j][m][0] + tkxx*uoptp[i][k][0] + tixy*uoptp[j][m][1] + + tkxy*uoptp[i][k][1] + tixz*uoptp[j][m][2] + tkxz*uoptp[i][k][2]; + depy = tixy*uoptp[j][m][0] + tkxy*uoptp[i][k][0] + tiyy*uoptp[j][m][1] + + tkyy*uoptp[i][k][1] + tiyz*uoptp[j][m][2] + tkyz*uoptp[i][k][2]; + depz = tixz*uoptp[j][m][0] + tkxz*uoptp[i][k][0] + tiyz*uoptp[j][m][1] + + tkyz*uoptp[i][k][1] + tizz*uoptp[j][m][2] + tkzz*uoptp[i][k][2]; + frcx -= copm[k+m+1]*depx; + frcy -= copm[k+m+1]*depy; + frcz -= copm[k+m+1]*depz; + } + } + + // get the dtau/dr terms used for TCG polarization force + + } else if (poltyp == TCG) { + /* + for (m = 0; m < tcgnab; m++) { + ukx = ubd[m][j][0]; + uky = ubd[m][j][1]; + ukz = ubd[m][j][2]; + ukxp = ubp[m][j][0]; + ukyp = ubp[m][j][1]; + ukzp = ubp[m][j][2]; + uirt = uax[m]*xr + uay[m]*yr + uaz[m]*zr; + ukrt = ukx*xr + uky*yr + ukz*zr; + term1 = bn[2] - usc3*rr5; + term2 = bn[3] - usc5*rr7; + term3 = usr5 + term1; + term4 = rr3 * factor_uscale; + term5 = -xr*term3 + rc3[0]*term4; + term6 = -usr5 + xr*xr*term2 - rr5*xr*urc5[0]; + tixx = uax[m]*term5 + uirt*term6; + tkxx = ukx*term5 + ukrt*term6; + term5 = -yr*term3 + rc3[1]*term4; + term6 = -usr5 + yr*yr*term2 - rr5*yr*urc5[1]; + tiyy = uay[m]*term5 + uirt*term6; + tkyy = uky*term5 + ukrt*term6; + term5 = -zr*term3 + rc3[2]*term4; + term6 = -usr5 + zr*zr*term2 - rr5*zr*urc5[2]; + tizz = uaz[m]*term5 + uirt*term6; + tkzz = ukz*term5 + ukrt*term6; + term4 = -usr5 * yr; + term5 = -xr*term1 + rr3*urc3[0]; + term6 = xr*yr*term2 - rr5*yr*urc5[0]; + tixy = uax[m]*term4 + uay[m]*term5 + uirt*term6; + tkxy = ukx*term4 + uky*term5 + ukrt*term6; + term4 = -usr5 * zr; + term6 = xr*zr*term2 - rr5*zr*urc5[0]; + tixz = uax[m]*term4 + uaz[m]*term5 + uirt*term6; + tkxz = ukx*term4 + ukz*term5 + ukrt*term6; + term5 = -yr*term1 + rr3*urc3[1]; + term6 = yr*zr*term2 - rr5*zr*urc5[1]; + tiyz = uay[m]*term4 + uaz[m]*term5 + uirt*term6; + tkyz = uky*term4 + ukz*term5 + ukrt*term6; + depx = tixx*ukxp + tixy*ukyp + tixz*ukzp + + tkxx*uaxp[m] + tkxy*uayp[m] + + tkxz*uazp[m]; + depy = tixy*ukxp + tiyy*ukyp + tiyz*ukzp + + tkxy*uaxp[m] + tkyy*uayp[m] + + tkyz*uazp[m]; + depz = tixz*ukxp + tiyz*ukyp + tizz*ukzp + + tkxz*uaxp[m] + tkyz*uayp[m] + + tkzz*uazp[m]; + frcx += depx; + frcy += depy; + frcz += depz; + + ukx = uad[m][j][0]; + uky = uad[m][j][1]; + ukz = uad[m][j][2]; + ukxp = uap[m][j][0]; + ukyp = uap[m][j][1]; + ukzp = uap[m][j][2]; + uirt = ubx[m]*xr + uby[m]*yr + ubz[m]*zr; + ukrt = ukx*xr + uky*yr + ukz*zr; + term1 = bn[2] - usc3*rr5; + term2 = bn[3] - usc5*rr7; + term3 = usr5 + term1; + term4 = rr3 * factor_uscale; + term5 = -xr*term3 + rc3[0]*term4; + term6 = -usr5 + xr*xr*term2 - rr5*xr*urc5[0]; + tixx = ubx[m]*term5 + uirt*term6; + tkxx = ukx*term5 + ukrt*term6; + term5 = -yr*term3 + rc3[1]*term4; + term6 = -usr5 + yr*yr*term2 - rr5*yr*urc5[1]; + tiyy = uby[m]*term5 + uirt*term6; + tkyy = uky*term5 + ukrt*term6; + term5 = -zr*term3 + rc3[2]*term4; + term6 = -usr5 + zr*zr*term2 - rr5*zr*urc5[2]; + tizz = ubz[m]*term5 + uirt*term6; + tkzz = ukz*term5 + ukrt*term6; + term4 = -usr5 * yr; + term5 = -xr*term1 + rr3*urc3[0]; + term6 = xr*yr*term2 - rr5*yr*urc5[0]; + tixy = ubx[m]*term4 + uby[m]*term5 + uirt*term6; + tkxy = ukx*term4 + uky*term5 + ukrt*term6; + term4 = -usr5 * zr; + term6 = xr*zr*term2 - rr5*zr*urc5[0]; + tixz = ubx[m]*term4 + ubz[m]*term5 + uirt*term6; + tkxz = ukx*term4 + ukz*term5 + ukrt*term6; + term5 = -yr*term1 + rr3*urc3[1]; + term6 = yr*zr*term2 - rr5*zr*urc5[1]; + tiyz = uby[m]*term4 + ubz[m]*term5 + uirt*term6; + tkyz = uky*term4 + ukz*term5 + ukrt*term6; + depx = tixx*ukxp + tixy*ukyp + tixz*ukzp + + tkxx*ubxp[m] + tkxy*ubyp[m] + + tkxz*ubzp[m]; + depy = tixy*ukxp + tiyy*ukyp + tiyz*ukzp + + tkxy*ubxp[m] + tkyy*ubyp[m] + + tkyz*ubzp[m]; + depz = tixz*ukxp + tiyz*ukyp + tizz*ukzp + + tkxz*ubxp[m] + tkyz*ubyp[m] + + tkzz*ubzp[m]; + frcx += depx; + frcy += depy; + frcz += depz; + } + */ + } + + // increment force-based gradient on the interaction sites + + f[i][0] += frcx; + f[i][1] += frcy; + f[i][2] += frcz; + f[j][0] -= frcx; + f[j][1] -= frcy; + f[j][2] -= frcz; + + // increment the virial due to pairwise Cartesian forces + + if (vflag_global) { + vxx = xr * frcx; + vxy = 0.5 * (yr*frcx+xr*frcy); + vxz = 0.5 * (zr*frcx+xr*frcz); + vyy = yr * frcy; + vyz = 0.5 * (zr*frcy+yr*frcz); + vzz = zr * frcz; + + virpolar[0] -= vxx; + virpolar[1] -= vyy; + virpolar[2] -= vzz; + virpolar[3] -= vxy; + virpolar[4] -= vxz; + virpolar[5] -= vyz; + } + } + } + + // reverse comm to sum ufld,dufld from ghost atoms to owned atoms + + crstyle = UFLD; + comm->reverse_comm(this); + + // torque is induced field and gradient cross permanent moments + + for (i = 0; i < nlocal; i++) { + dix = rpole[i][1]; + diy = rpole[i][2]; + diz = rpole[i][3]; + qixx = rpole[i][4]; + qixy = rpole[i][5]; + qixz = rpole[i][6]; + qiyy = rpole[i][8]; + qiyz = rpole[i][9]; + qizz = rpole[i][12]; + tep[0] = diz*ufld[i][1] - diy*ufld[i][2] + + qixz*dufld[i][1] - qixy*dufld[i][3] + + 2.0*qiyz*(dufld[i][2]-dufld[i][5]) + (qizz-qiyy)*dufld[i][4]; + tep[1] = dix*ufld[i][2] - diz*ufld[i][0] - + qiyz*dufld[i][1] + qixy*dufld[i][4] + + 2.0*qixz*(dufld[i][5]-dufld[i][0]) + (qixx-qizz)*dufld[i][3]; + tep[2] = diy*ufld[i][0] - dix*ufld[i][1] + + qiyz*dufld[i][3] - qixz*dufld[i][4] + + 2.0*qixy*(dufld[i][0]-dufld[i][2]) + (qiyy-qixx)*dufld[i][1]; + + torque2force(i,tep,fix,fiy,fiz,f); + + if (!vflag_global) continue; + + iz = zaxis2local[i]; + ix = xaxis2local[i]; + iy = yaxis2local[i]; + + xiz = x[iz][0] - x[i][0]; + yiz = x[iz][1] - x[i][1]; + ziz = x[iz][2] - x[i][2]; + xix = x[ix][0] - x[i][0]; + yix = x[ix][1] - x[i][1]; + zix = x[ix][2] - x[i][2]; + xiy = x[iy][0] - x[i][0]; + yiy = x[iy][1] - x[i][1]; + ziy = x[iy][2] - x[i][2]; + + vxx = xix*fix[0] + xiy*fiy[0] + xiz*fiz[0]; + vyy = yix*fix[1] + yiy*fiy[1] + yiz*fiz[1]; + vzz = zix*fix[2] + ziy*fiy[2] + ziz*fiz[2]; + vxy = 0.5 * (yix*fix[0] + yiy*fiy[0] + yiz*fiz[0] + + xix*fix[1] + xiy*fiy[1] + xiz*fiz[1]); + vxz = 0.5 * (zix*fix[0] + ziy*fiy[0] + ziz*fiz[0] + + xix*fix[2] + xiy*fiy[2] + xiz*fiz[2]); + vyz = 0.5 * (zix*fix[1] + ziy*fiy[1] + ziz*fiz[1] + + yix*fix[2] + yiy*fiy[2] + yiz*fiz[2]); + + virpolar[0] -= vxx; + virpolar[1] -= vyy; + virpolar[2] -= vzz; + virpolar[3] -= vxy; + virpolar[4] -= vxz; + virpolar[5] -= vyz; + } +} + +/* ---------------------------------------------------------------------- + polar_kspace = KSpace portion of induced dipole polarization + adapted from Tinker eprecip1() routine + ------------------------------------------------------------------------- */ + +void PairAmoeba::polar_kspace() +{ + int i,j,k,m,n; + int nhalf1,nhalf2,nhalf3; + int nxlo,nxhi,nylo,nyhi,nzlo,nzhi; + int j1,j2,j3; + int ix,iy,iz; + double eterm,felec; + double r1,r2,r3; + double h1,h2,h3; + double f1,f2,f3; + double xix,yix,zix; + double xiy,yiy,ziy; + double xiz,yiz,ziz; + double vxx,vyy,vzz; + double vxy,vxz,vyz; + double volterm,denom; + double hsq,expterm; + double term,pterm; + double vterm,struc2; + double tep[3]; + double fix[3],fiy[3],fiz[3]; + double cphid[4],cphip[4]; + double a[3][3]; // indices not flipped vs Fortran + + // indices into the electrostatic field array + // decremented by 1 versus Fortran + + int deriv1[10] = {1, 4, 7, 8, 10, 15, 17, 13, 14, 19}; + int deriv2[10] = {2, 7, 5, 9, 13, 11, 18, 15, 19, 16}; + int deriv3[10] = {3, 8, 9, 6, 14, 16, 12, 19, 17, 18}; + + // return if the Ewald coefficient is zero + + if (aewald < 1.0e-6) return; + + // owned atoms + + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + + double volbox = domain->prd[0] * domain->prd[1] * domain->prd[2]; + pterm = pow((MY_PI/aewald),2.0); + volterm = MY_PI * volbox; + + // initialize variables required for the scalar summation + + felec = electric / am_dielectric; + + // remove scalar sum virial from prior multipole FFT + // can only do this if multipoles were computed with same aeewald = apewald + // else need to re-compute it via new long-range solve + + nfft1 = p_kspace->nx; + nfft2 = p_kspace->ny; + nfft3 = p_kspace->nz; + bsorder = p_kspace->order; + + nhalf1 = (nfft1+1) / 2; + nhalf2 = (nfft2+1) / 2; + nhalf3 = (nfft3+1) / 2; + + nxlo = p_kspace->nxlo_fft; + nxhi = p_kspace->nxhi_fft; + nylo = p_kspace->nylo_fft; + nyhi = p_kspace->nyhi_fft; + nzlo = p_kspace->nzlo_fft; + nzhi = p_kspace->nzhi_fft; + + // use previous results or compute new qfac and convolution + + if (aewald == aeewald) { + vxx = -vmsave[0]; + vyy = -vmsave[1]; + vzz = -vmsave[2]; + vxy = -vmsave[3]; + vxz = -vmsave[4]; + vyz = -vmsave[5]; + + } else { + + // setup stencil size and B-spline coefficients + + moduli(); + bspline_fill(); + + // convert Cartesian multipoles to fractional coordinates + + cmp_to_fmp(cmp,fmp); + + // gridpre = my portion of 3d grid in brick decomp w/ ghost values + + double ***gridpre = (double ***) p_kspace->zero(); + + // map atoms to grid + + grid_mpole(fmp,gridpre); + + // pre-convolution operations including forward FFT + // gridfft = my portion of complex 3d grid in FFT decomp as 1d vector + + double *gridfft = p_kspace->pre_convolution(); + + // --------------------- + // convolution operation + // --------------------- + + // zero virial accumulation variables + + vxx = vyy = vzz = vxy = vxz = vyz = 0.0; + + // perform convolution on K-space points I own + + m = n = 0; + for (k = nzlo; k <= nzhi; k++) { + for (j = nylo; j <= nyhi; j++) { + for (i = nxlo; i <= nxhi; i++) { + r1 = (i >= nhalf1) ? i-nfft1 : i; + r2 = (j >= nhalf2) ? j-nfft2 : j; + r3 = (k >= nhalf3) ? k-nfft3 : k; + h1 = recip[0][0]*r1 + recip[0][1]*r2 + recip[0][2]*r3; // matvec + h2 = recip[1][0]*r1 + recip[1][1]*r2 + recip[1][2]*r3; + h3 = recip[2][0]*r1 + recip[2][1]*r2 + recip[2][2]*r3; + hsq = h1*h1 + h2*h2 + h3*h3; + term = -pterm * hsq; + expterm = 0.0; + if (term > -50.0 && hsq != 0.0) { + denom = volterm*hsq*bsmod1[i]*bsmod2[j]*bsmod3[k]; + if (hsq) expterm = exp(term) / denom; + struc2 = gridfft[n]*gridfft[n] + gridfft[n+1]*gridfft[n+1]; + eterm = 0.5 * felec * expterm * struc2; + vterm = (2.0/hsq) * (1.0-term) * eterm; + vxx -= h1*h1*vterm - eterm; + vyy -= h2*h2*vterm - eterm; + vzz -= h3*h3*vterm - eterm; + vxy -= h1*h2*vterm; + vxz -= h1*h3*vterm; + vyz -= h2*h3*vterm; + } + + expterm = qfac[m++]; + gridfft[n] *= expterm; + gridfft[n+1] *= expterm; + n += 2; + } + } + } + + // post-convolution operations including backward FFT + // gridppost = my portion of 3d grid in brick decomp w/ ghost values + + double ***gridpost = (double ***) p_kspace->post_convolution(); + + // get potential + + fphi_mpole(gridpost,fphi); + + for (i = 0; i < nlocal; i++) { + for (k = 0; k < 20; k++) + fphi[i][k] *= felec; + } + + // convert field from fractional to Cartesian + + fphi_to_cphi(fphi,cphi); + } + + // convert Cartesian induced dipoles to fractional coordinates + + for (i = 0; i < 3; i++) { + a[0][i] = nfft1 * recip[0][i]; + a[1][i] = nfft2 * recip[1][i]; + a[2][i] = nfft3 * recip[2][i]; + } + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + fuind[i][j] = a[j][0]*uind[i][0] + a[j][1]*uind[i][1] + a[j][2]*uind[i][2]; + fuinp[i][j] = a[j][0]*uinp[i][0] + a[j][1]*uinp[i][1] + a[j][2]*uinp[i][2]; + } + } + + // gridpre2 = my portion of 4d grid in brick decomp w/ ghost values + + double ****gridpre2 = (double ****) pc_kspace->zero(); + + // map 2 values to grid + + grid_uind(fuind,fuinp,gridpre2); + + // pre-convolution operations including forward FFT + // gridfft = my portion of complex 3d grid in FFT decomposition + + double *gridfft = pc_kspace->pre_convolution(); + + // --------------------- + // convolution operation + // --------------------- + + // use qfac values from above or from induce() + + m = n = 0; + for (k = nzlo; k <= nzhi; k++) { + for (j = nylo; j <= nyhi; j++) { + for (i = nxlo; i <= nxhi; i++) { + term = qfac[m++]; + gridfft[n] *= term; + gridfft[n+1] *= term; + n += 2; + } + } + } + + // post-convolution operations including backward FFT + // gridppost = my portion of 4d grid in brick decomp w/ ghost values + + double ****gridpost = (double ****) pc_kspace->post_convolution(); + + // get potential + + fphi_uind(gridpost,fphid,fphip,fphidp); + + for (i = 0; i < nlocal; i++) { + for (j = 1; j < 10; j++) { + fphid[i][j] = felec * fphid[i][j]; + fphip[i][j] = felec * fphip[i][j]; + } + for (j = 0; j < 20; j++) + fphidp[i][j] = felec * fphidp[i][j]; + } + + // increment the dipole polarization gradient contributions + + for (i = 0; i < nlocal; i++) { + f1 = 0.0; + f2 = 0.0; + f3 = 0.0; + for (k = 0; k < 3; k++) { + j1 = deriv1[k+1]; + j2 = deriv2[k+1]; + j3 = deriv3[k+1]; + f1 += (fuind[i][k]+fuinp[i][k])*fphi[i][j1]; + f2 += (fuind[i][k]+fuinp[i][k])*fphi[i][j2]; + f3 += (fuind[i][k]+fuinp[i][k])*fphi[i][j3]; + if (poltyp == MUTUAL) { + f1 += fuind[i][k]*fphip[i][j1] + fuinp[i][k]*fphid[i][j1]; + f2 += fuind[i][k]*fphip[i][j2] + fuinp[i][k]*fphid[i][j2]; + f3 += fuind[i][k]*fphip[i][j3] + fuinp[i][k]*fphid[i][j3]; + } + } + for (k = 0; k < 10; k++) { + f1 += fmp[i][k]*fphidp[i][deriv1[k]]; + f2 += fmp[i][k]*fphidp[i][deriv2[k]]; + f3 += fmp[i][k]*fphidp[i][deriv3[k]]; + } + f1 *= 0.5 * nfft1; + f2 *= 0.5 * nfft2; + f3 *= 0.5 * nfft3; + h1 = recip[0][0]*f1 + recip[0][1]*f2 + recip[0][2]*f3; + h2 = recip[1][0]*f1 + recip[1][1]*f2 + recip[1][2]*f3; + h3 = recip[2][0]*f1 + recip[2][1]*f2 + recip[2][2]*f3; + f[i][0] -= h1; + f[i][1] -= h2; + f[i][2] -= h3; + } + + // set the potential to be the induced dipole average + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 10; j++) + fphidp[i][j] *= 0.5; + } + + fphi_to_cphi(fphidp,cphidp); + + // get the fractional to Cartesian transformation matrix + + frac_to_cart(); + + // increment the dipole polarization virial contributions + + for (i = 0; i < nlocal; i++) { + for (j = 1; j < 4; j++) { + cphid[j] = 0.0; + cphip[j] = 0.0; + for (k = 1; k < 4; k++) { + cphid[j] += ftc[j][k]*fphid[i][k]; + cphip[j] += ftc[j][k]*fphip[i][k]; + } + } + + vxx -= cmp[i][1]*cphidp[i][1] + + 0.5*((uind[i][0]+uinp[i][0])*cphi[i][1]); + vyy -= cmp[i][2]*cphidp[i][2] + + 0.5*((uind[i][1]+uinp[i][1])*cphi[i][2]); + vzz -= cmp[i][3]*cphidp[i][3] + + 0.5*((uind[i][2]+uinp[i][2])*cphi[i][3]); + vxy -= 0.5*(cphidp[i][1]*cmp[i][2]+cphidp[i][2]*cmp[i][1]) + + 0.25*((uind[i][1]+uinp[i][1])*cphi[i][1] + + (uind[i][0]+uinp[i][0])*cphi[i][2]); + vyz -= 0.5*(cphidp[i][2]*cmp[i][3]+cphidp[i][3]*cmp[i][2]) + + 0.25*((uind[i][2]+uinp[i][2])*cphi[i][2] + + (uind[i][1]+uinp[i][1])*cphi[i][3]); + vxz -= 0.5*(cphidp[i][1]*cmp[i][3]+cphidp[i][3]*cmp[i][1]) + + 0.25*((uind[i][2]+uinp[i][2])*cphi[i][1] + + (uind[i][0]+uinp[i][0])*cphi[i][3]); + + vxx -= 2.0*cmp[i][4]*cphidp[i][4] + cmp[i][7]*cphidp[i][7] + + cmp[i][8]*cphidp[i][8]; + vyy -= 2.0*cmp[i][5]*cphidp[i][5] + cmp[i][7]*cphidp[i][7] + + cmp[i][9]*cphidp[i][9]; + vzz -= 2.0*cmp[i][6]*cphidp[i][6] + cmp[i][8]*cphidp[i][8] + + cmp[i][9]*cphidp[i][9]; + vxy -= (cmp[i][4]+cmp[i][5])*cphidp[i][7] + + 0.5*(cmp[i][7]*(cphidp[i][5]+cphidp[i][4]) + + cmp[i][8]*cphidp[i][9]+cmp[i][9]*cphidp[i][8]); + vyz -= (cmp[i][5]+cmp[i][6])*cphidp[i][9] + + 0.5*(cmp[i][9]*(cphidp[i][5]+cphidp[i][6]) + + cmp[i][7]*cphidp[i][8]+cmp[i][8]*cphidp[i][7]); + vxz -= (cmp[i][4]+cmp[i][6])*cphidp[i][8] + + 0.5*(cmp[i][8]*(cphidp[i][4]+cphidp[i][6]) + + cmp[i][7]*cphidp[i][9]+cmp[i][9]*cphidp[i][7]); + + if (poltyp == MUTUAL) { + vxx -= 0.5 * (cphid[1]*uinp[i][0]+cphip[1]*uind[i][0]); + vyy -= 0.5 * (cphid[2]*uinp[i][1]+cphip[2]*uind[i][1]); + vzz -= 0.5 * (cphid[3]*uinp[i][2]+cphip[3]*uind[i][2]); + vxy -= 0.25 * (cphid[1]*uinp[i][1]+cphip[1]*uind[i][1] + + cphid[2]*uinp[i][0]+cphip[2]*uind[i][0]); + vyz -= 0.25 * (cphid[2]*uinp[i][2]+cphip[2]*uind[i][2] + + cphid[3]*uinp[i][1]+cphip[3]*uind[i][1]); + vxz -= 0.25 * (cphid[1]*uinp[i][2]+cphip[1]*uind[i][2] + + cphid[3]*uinp[i][0]+cphip[3]*uind[i][0]); + } + } + + + // resolve site torques then increment forces and virial + + for (i = 0; i < nlocal; i++) { + tep[0] = cmp[i][3]*cphidp[i][2] - cmp[i][2]*cphidp[i][3] + + 2.0*(cmp[i][6]-cmp[i][5])*cphidp[i][9] + cmp[i][8]*cphidp[i][7] + + cmp[i][9]*cphidp[i][5]- cmp[i][7]*cphidp[i][8] - cmp[i][9]*cphidp[i][6]; + tep[1] = cmp[i][1]*cphidp[i][3] - cmp[i][3]*cphidp[i][1] + + 2.0*(cmp[i][4]-cmp[i][6])*cphidp[i][8] + cmp[i][7]*cphidp[i][9] + + cmp[i][8]*cphidp[i][6] - cmp[i][8]*cphidp[i][4] - cmp[i][9]*cphidp[i][7]; + tep[2] = cmp[i][2]*cphidp[i][1] - cmp[i][1]*cphidp[i][2] + + 2.0*(cmp[i][5]-cmp[i][4])*cphidp[i][7] + cmp[i][7]*cphidp[i][4] + + cmp[i][9]*cphidp[i][8] - cmp[i][7]*cphidp[i][5] - cmp[i][8]*cphidp[i][9]; + + torque2force(i,tep,fix,fiy,fiz,f); + + iz = zaxis2local[i]; + ix = xaxis2local[i]; + iy = yaxis2local[i]; + + xiz = x[iz][0] - x[i][0]; + yiz = x[iz][1] - x[i][1]; + ziz = x[iz][2] - x[i][2]; + xix = x[ix][0] - x[i][0]; + yix = x[ix][1] - x[i][1]; + zix = x[ix][2] - x[i][2]; + xiy = x[iy][0] - x[i][0]; + yiy = x[iy][1] - x[i][1]; + ziy = x[iy][2] - x[i][2]; + + vxx += xix*fix[0] + xiy*fiy[0] + xiz*fiz[0]; + vyy += yix*fix[1] + yiy*fiy[1] + yiz*fiz[1]; + vzz += zix*fix[2] + ziy*fiy[2] + ziz*fiz[2]; + vxy += 0.5*(yix*fix[0] + yiy*fiy[0] + yiz*fiz[0] + + xix*fix[1] + xiy*fiy[1] + xiz*fiz[1]); + vyz += 0.5*(zix*fix[1] + ziy*fiy[1] + ziz*fiz[1] + + yix*fix[2] + yiy*fiy[2] + yiz*fiz[2]); + vxz += 0.5*(zix*fix[0] + ziy*fiy[0] + ziz*fiz[0] + + xix*fix[2] + xiy*fiy[2] + xiz*fiz[2]); + } + + // account for dipole response terms in the OPT method + + if (poltyp == OPT) { + for (i = 0; i < nlocal; i++) { + for (k = 0; k < optorder; k++) { + for (j = 1; j < 10; j++) { + fphid[i][j] = felec * fopt[i][k][j]; + fphip[i][j] = felec * foptp[i][k][j]; + } + + for (m = 0; m < optorder-k; m++) { + for (j = 0; j < 3; j++) { + fuind[i][j] = a[0][j]*uopt[i][m][0] + a[1][j]*uopt[i][m][1] + + a[2][j]*uopt[i][m][2]; + fuinp[i][j] = a[0][j]*uoptp[i][m][0] + a[1][j]*uoptp[i][m][1] + + a[2][j]*uoptp[i][m][2]; + } + + f1 = 0.0; + f2 = 0.0; + f3 = 0.0; + + for (j = 0; j < 3; j++) { + j1 = deriv1[j+1]; + j2 = deriv2[j+1]; + j3 = deriv3[j+1]; + f1 += fuind[i][j]*fphip[i][j1] + fuinp[i][j]*fphid[i][j1]; + f2 += fuind[i][j]*fphip[i][j2] + fuinp[i][j]*fphid[i][j2]; + f3 += fuind[i][j]*fphip[i][j3] + fuinp[i][j]*fphid[i][j3]; + } + + f1 *= 0.5 * nfft1; + f2 *= 0.5 * nfft2; + f3 *= 0.5 * nfft3; + h1 = recip[0][0]*f1 + recip[0][1]*f2 + recip[0][2]*f3; + h2 = recip[1][0]*f1 + recip[1][1]*f2 + recip[1][2]*f3; + h3 = recip[2][0]*f1 + recip[2][1]*f2 + recip[2][2]*f3; + + f[i][0] -= copm[k+m+1]*h1; + f[i][1] -= copm[k+m+1]*h2; + f[i][2] -= copm[k+m+1]*h3; + + for (j = 1; j < 4; j++) { + cphid[j] = 0.0; + cphip[j] = 0.0; + for (j1 = 1; j1 < 4; j1++) { + cphid[j] += ftc[j][j1]*fphid[i][j1]; + cphip[j] += ftc[j][j1]*fphip[i][j1]; + } + } + + vxx -= 0.5*copm[k+m+1] * + (cphid[1]*uoptp[i][m][0] + cphip[1]*uopt[i][m][0]); + vyy -= 0.5*copm[k+m+1] * + (cphid[2]*uoptp[i][m][1]+ cphip[2]*uopt[i][m][1]); + vzz -= 0.5*copm[k+m+1] * + (cphid[3]*uoptp[i][m][2]+ cphip[3]*uopt[i][m][2]); + vxy -= 0.25*copm[k+m+1] * + (cphid[1]*uoptp[i][m][1]+ cphip[1]*uopt[i][m][1]+ + cphid[2]*uoptp[i][m][0]+ cphip[2]*uopt[i][m][0]); + vyz -= 0.25*copm[k+m+1] * + (cphid[1]*uoptp[i][m][2]+ cphip[1]*uopt[i][m][2]+ + cphid[3]*uoptp[i][m][0]+ cphip[3]*uopt[i][m][0]); + vxz -= 0.25*copm[k+m+1] * + (cphid[2]*uoptp[i][m][2]+ cphip[2]*uopt[i][m][2]+ + cphid[3]*uoptp[i][m][1]+ cphip[3]*uopt[i][m][1]); + } + } + } + } + + // account for dipole response terms in the TCG method + + /* + if (poltyp == TCG) { + + for (m = 0; m < tcgnab; m++) { + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + fuind[i][j] = a[0][j]*uad[i][m][0] + a[1][j]*uad[i][m][1] + + a[2][j]*uad[i][m][2]; + fuinp[i][j] = a[0][j]*ubp[i][m][0] + a[1][j]*ubp[i][m][1] + + a[2][j]*ubp[i][m][2]; + } + } + + grid_uind(fuind,fuinp); + efft->compute(qgrid[0][0][0],qgrid[0][0][0],1); + + for (k = 0; k < nfft3; k++) { + for (j = 0; j < nfft2; j++) { + for (i = 0; i < nfft1; i++) { + term = qfac[k][j][i]; + qgrid[k][j][i][0] *= term; + qgrid[k][j][i][1] *= term; + } + } + } + + efft->compute(qgrid[0][0][0],qgrid[0][0][0],-1); + fphi_uind(fphid,fphip,fphidp); + + for (i = 0; i < nlocal; i++) { + for (j = 1; j < 10; j++) { + fphid[i][j] *= felec; + fphip[i][j] *= felec; + } + } + + for (i = 0; i < nlocal; i++) { + f1 = 0.0; + f2 = 0.0; + f3 = 0.0; + for (k = 0; k < 3; k++) { + j1 = deriv1[k+1]; + j2 = deriv2[k+1]; + j3 = deriv3[k+1]; + f1 += fuind[i][k]*fphip[i][j1]+fuinp[i][k]*fphid[i][j1]; + f2 += fuind[i][k]*fphip[i][j2]+fuinp[i][k]*fphid[i][j2]; + f3 += fuind[i][k]*fphip[i][j3]+fuinp[i][k]*fphid[i][j3]; + } + + f1 *= 0.5 * nfft1; + f2 *= 0.5 * nfft2; + f3 *= 0.5 * nfft3; + h1 = recip[0][0]*f1 + recip[0][1]*f2 + recip[0][2]*f3; + h2 = recip[1][0]*f1 + recip[1][1]*f2 + recip[1][2]*f3; + h3 = recip[2][0]*f1 + recip[2][1]*f2 + recip[2][2]*f3; + f[i][0] -= h1; + f[i][1] -= h2; + f[i][2] -= h3; + + for (j = 1; j < 4; j++) { + cphid[j] = 0.0; + cphip[j] = 0.0; + for (k = 1; k < 4; k++) { + cphid[j] += ftc[j][k]*fphid[i][k]; + cphip[j] += ftc[j][k]*fphip[i][k]; + } + } + + vxx -= 0.5*(cphid[1]*ubp[i][m][0] + cphip[1]*uad[i][m][0]); + vyy -= 0.5*(cphid[2]*ubp[i][m][1] + cphip[2]*uad[i][m][1]); + vzz -= 0.5*(cphid[3]*ubp[i][m][2] + cphip[3]*uad[i][m][2]); + + vxy -= 0.25*(cphid[1]*ubp[i][m][1] + cphip[1]*uad[i][m][1] + + cphid[2]*ubp[i][m][0] + cphip[2]*uad[i][m][0]); + vyz -= 0.25*(cphid[1]*ubp[i][m][2] + cphip[1]*uad[i][m][2] + + cphid[3]*ubp[i][m][0] + cphip[3]*uad[i][m][0]); + vxz -= 0.25*(cphid[2]*ubp[i][m][2] + cphip[2]*uad[i][m][2] + + cphid[3]*ubp[i][m][1] + cphip[3]*uad[i][m][1]); + } + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 3; j++) { + fuind[i][j] = a[0][j]*ubd[i][m][0] + a[1][j]*ubd[i][m][1] + + a[2][j]*ubd[i][m][2]; + fuinp[i][j] = a[0][j]*uap[i][m][0] + a[1][j]*uap[i][m][1] + + a[2][j]*uap[i][m][2]; + } + } + + grid_uind(fuind,fuinp); + efft->compute(qgrid[0][0][0],qgrid[0][0][0],1); + + for (k = 0; k < nfft3; k++) { + for (j = 0; j < nfft2; j++) { + for (i = 0; i < nfft1; i++) { + term = qfac[k][j][i]; + qgrid[k][j][i][0] *= term; + qgrid[k][j][i][1] *= term; + } + } + } + + efft->compute(qgrid[0][0][0],qgrid[0][0][0],-1); + fphi_uind(fphid,fphip,fphidp); + + for (i = 0; i < nlocal; i++) { + for (j = 1; j < 10; j++) { + fphid[i][j] *= felec; + fphip[i][j] *= felec; + } + } + + for (i = 0; i < nlocal; i++) { + f1 = 0.0; + f2 = 0.0; + f3 = 0.0; + for (k = 0; k < 3; k++) { + j1 = deriv1[k+1]; + j2 = deriv2[k+1]; + j3 = deriv3[k+1]; + f1 += fuind[i][k]*fphip[i][j1]+fuinp[i][k]*fphid[i][j1]; + f2 += fuind[i][k]*fphip[i][j2]+fuinp[i][k]*fphid[i][j2]; + f3 += fuind[i][k]*fphip[i][j3]+fuinp[i][k]*fphid[i][j3]; + } + + f1 *= 0.5 * nfft1; + f2 *= 0.5 * nfft2; + f3 *= 0.5 * nfft3; + h1 = recip[0][0]*f1 + recip[0][1]*f2 + recip[0][2]*f3; // matvec + h2 = recip[1][0]*f1 + recip[1][1]*f2 + recip[1][2]*f3; + h3 = recip[2][0]*f1 + recip[2][1]*f2 + recip[2][2]*f3; + f[i][0] -= h1; + f[i][1] -= h2; + f[i][2] -= h3; + + for (j = 1; j < 4; j++) { + cphid[j] = 0.0; + cphip[j] = 0.0; + for (k = 1; k < 4; k++) { + cphid[j] += ftc[j][k]*fphid[i][k]; + cphip[j] += ftc[j][k]*fphip[i][k]; + } + } + + vxx -= 0.5*(cphid[1]*uap[i][m][0] + cphip[1]*ubd[i][m][0]); + vyy -= 0.5*(cphid[2]*uap[i][m][1] + cphip[2]*ubd[i][m][1]); + vzz -= 0.5*(cphid[3]*uap[i][m][2] + cphip[3]*ubd[i][m][2]); + vxy -= 0.25*(cphid[1]*uap[i][m][1] + cphip[1]*ubd[i][m][1] + + cphid[2]*uap[i][m][0] + cphip[2]*ubd[i][m][0]); + vxz -= 0.25*(cphid[1]*uap[i][m][2] + cphip[1]*ubd[i][m][2] + + cphid[3]*uap[i][m][0] + cphip[3]*ubd[i][m][0]); + vyz -= 0.25*(cphid[2]*uap[i][m][2] + cphip[2]*ubd[i][m][2] + + cphid[3]*uap[i][m][1] + cphip[3]*ubd[i][m][1]); + } + } + } + */ + + // assign permanent and induced multipoles to the PME grid + + for (i = 0; i < nlocal; i++) { + for (j = 1; j < 4; j++) + cmp[i][j] += uinp[i][j-1]; + } + + // convert Cartesian multipoles to fractional multipoles + + cmp_to_fmp(cmp,fmp); + + // gridpre = my portion of 3d grid in brick decomp w/ ghost values + // zeroed by zero() + + double ***gridpre = (double ***) p_kspace->zero(); + + // map atoms to grid + + grid_mpole(fmp,gridpre); + + // pre-convolution operations including forward FFT + // gridfft = my portion of complex 3d grid in FFT decomp as 1d vector + + gridfft = p_kspace->pre_convolution(); + + // gridfft1 = copy of first FFT + + int nfft_owned = p_kspace->nfft_owned; + memcpy(gridfft1,gridfft,2*nfft_owned*sizeof(FFT_SCALAR)); + + // assign induced dipoles to the PME grid + + for (i = 0; i < nlocal; i++) { + for (j = 1; j < 4; j++) + cmp[i][j] += uind[i][j-1] - uinp[i][j-1]; + } + + // convert Cartesian multipoles to fractional multipoles + + cmp_to_fmp(cmp,fmp); + + // gridpre = my portion of 3d grid in brick decomp w/ ghost values + // zeroed by zero() + + gridpre = (double ***) p_kspace->zero(); + + // map atoms to grid + + grid_mpole(fmp,gridpre); + + // pre-convolution operations including forward FFT + // gridfft1/2 = my portions of complex 3d grid in FFT decomp as 1d vectors + + double *gridfft2 = p_kspace->pre_convolution(); + + // --------------------- + // convolution operation + // --------------------- + + m = n = 0; + for (k = nzlo; k <= nzhi; k++) { + for (j = nylo; j <= nyhi; j++) { + for (i = nxlo; i <= nxhi; i++) { + r1 = (i >= nhalf1) ? i-nfft1 : i; + r2 = (j >= nhalf2) ? j-nfft2 : j; + r3 = (k >= nhalf3) ? k-nfft3 : k; + h1 = recip[0][0]*r1 + recip[0][1]*r2 + recip[0][2]*r3; // matvec + h2 = recip[1][0]*r1 + recip[1][1]*r2 + recip[1][2]*r3; + h3 = recip[2][0]*r1 + recip[2][1]*r2 + recip[2][2]*r3; + hsq = h1*h1 + h2*h2 + h3*h3; + term = -pterm * hsq; + expterm = 0.0; + if (term > -50.0 && hsq != 0.0) { + denom = volterm*hsq*bsmod1[i]*bsmod2[j]*bsmod3[k]; + expterm = exp(term) / denom; + struc2 = gridfft1[n]*gridfft2[n] + gridfft1[n+1]*gridfft2[n+1]; + eterm = 0.5 * felec * expterm * struc2; + vterm = (2.0/hsq) * (1.0-term) * eterm; + vxx += h1*h1*vterm - eterm; + vyy += h2*h2*vterm - eterm; + vzz += h3*h3*vterm - eterm; + vxy += h1*h2*vterm; + vyz += h2*h3*vterm; + vxz += h1*h3*vterm; + } + n += 2; + } + } + } + + // assign only the induced dipoles to the PME grid + // and perform the 3-D FFT forward transformation + // NOTE: why is there no inverse FFT in this section? + + if (poltyp == DIRECT || poltyp == TCG) { + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 10; j++) + cmp[i][j] = 0.0; + for (j = 1; j < 4; j++) + cmp[i][j] = uinp[i][j-1]; + } + + // convert Cartesian multipoles to fractional multipoles + + cmp_to_fmp(cmp,fmp); + + // gridpre = my portion of 3d grid in brick decomp w/ ghost values + // zeroed by zero() + + double ***gridpre = (double ***) p_kspace->zero(); + + // map atoms to grid + + grid_mpole(fmp,gridpre); + + // pre-convolution operations including forward FFT + // gridfft = my portion of complex 3d grid in FFT decomp as 1d vector + + double *gridfft = p_kspace->pre_convolution(); + + // gridfft1 = copy of first FFT + + int nfft_owned = p_kspace->nfft_owned; + memcpy(gridfft1,gridfft,2*nfft_owned*sizeof(double)); + + // assign ??? to the PME grid + + for (i = 0; i < nlocal; i++) { + for (j = 1; j < 4; j++) + cmp[i][j] = uind[i][j-1]; + } + + // convert Cartesian multipoles to fractional multipoles + + cmp_to_fmp(cmp,fmp); + + // gridpre = my portion of 3d grid in brick decomp w/ ghost values + + gridpre = (double ***) p_kspace->zero(); + + // map atoms to grid + + grid_mpole(fmp,gridpre); + + // pre-convolution operations including forward FFT + // gridfft = my portion of complex 3d grid in FFT decomp as 1d vector + + double *gridfft2 = p_kspace->pre_convolution(); + + // --------------------- + // convolution operation + // --------------------- + + m = n = 0; + for (k = nzlo; k <= nzhi; k++) { + for (j = nylo; j <= nyhi; j++) { + for (i = nxlo; i <= nxhi; i++) { + r1 = (i >= nhalf1) ? i-nfft1 : i; + r2 = (j >= nhalf2) ? j-nfft2 : j; + r3 = (k >= nhalf3) ? k-nfft3 : k; + h1 = recip[0][0]*r1 + recip[0][1]*r2 + recip[0][2]*r3; // matvec + h2 = recip[1][0]*r1 + recip[1][1]*r2 + recip[1][2]*r3; + h3 = recip[2][0]*r1 + recip[2][1]*r2 + recip[2][2]*r3; + hsq = h1*h1 + h2*h2 + h3*h3; + term = -pterm * hsq; + expterm = 0.0; + if (term > -50.0 && hsq != 0.0) { + denom = volterm*hsq*bsmod1[i]*bsmod2[j]*bsmod3[k]; + expterm = exp(term) / denom; + struc2 = gridfft1[n]*gridfft2[n] + gridfft1[n+1]*gridfft2[n+1]; + eterm = 0.5 * felec * expterm * struc2; + vterm = (2.0/hsq) * (1.0-term) * eterm; + vxx += h1*h1*vterm - eterm; + vyy += h2*h2*vterm - eterm; + vzz += h3*h3*vterm - eterm; + vxy += h1*h2*vterm; + vyz += h2*h3*vterm; + vxz += h1*h3*vterm; + } + n += 2; + } + } + } + } + + // add back missing terms for the TCG polarization method; + // first do the term for "UAD" dotted with "UBP" + + /* + if (poltyp == TCG) { + + for (m = 0; m < tcgnab; m++) { + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 10; j++) + cmp[i][j] = 0.0; + for (j = 1; j < 4; j++) + cmp[i][j] = ubp[i][m][j-1]; + } + + cmp_to_fmp(cmp,fmp); + grid_mpole(fmp); + efft->compute(qgrid[0][0][0],qgrid[0][0][0],1); + + for (k = 0; k < nfft3; k++) { + for (j = 0; j < nfft2; j++) { + for (i = 0; i < nfft1; i++) { + qgrip[k][j][i][0] = qgrid[k][j][i][0]; + qgrip[k][j][i][1] = qgrid[k][j][i][1]; + } + } + } + + for (i = 0; i < nlocal; i++) { + for (j = 1; j < 4; j++) + cmp[i][j] = uad[i][m][j-1]; + } + + cmp_to_fmp(cmp,fmp); + grid_mpole(fmp); + efft->compute(qgrid[0][0][0],qgrid[0][0][0],1); + + // make the scalar summation over reciprocal lattice + // NOTE: this loop has to be distributed for parallel + // NOTE: why does this one include m = 0 ? + + for (m = 1; m < ntot; m++) { + k1 = m % nfft1; + k2 = (m % nff) / nfft1; + k3 = m/nff; + r1 = (k1 >= nf1) ? k1-nfft1 : k1; + r2 = (k2 >= nf2) ? k2-nfft2 : k2; + r3 = (k3 >= nf3) ? k3-nfft3 : k3; + h1 = recip[0][0]*r1 + recip[0][1]*r2 + recip[0][2]*r3; + h2 = recip[1][0]*r1 + recip[1][1]*r2 + recip[1][2]*r3; + h3 = recip[2][0]*r1 + recip[2][1]*r2 + recip[2][2]*r3; + hsq = h1*h1 + h2*h2 + h3*h3; + term = -pterm * hsq; + expterm = 0.0; + if (term > -50.0 && hsq != 0.0) { + denom = volterm*hsq*bsmod1[k1]*bsmod2[k2]*bsmod3[k3]; + expterm = exp(term) / denom; + struc2 = qgrid[k3][k2][k1][0]*qgrip[k3][k2][k1][0] + + qgrid[k3][k2][k1][1]*qgrip[k3][k2][k1][1]; + eterm = 0.5 * felec * expterm * struc2; + vterm = (2.0/hsq) * (1.0-term) * eterm; + virpolar[0] -= h1*h1*vterm - eterm; + virpolar[1] -= h2*h2*vterm - eterm; + virpolar[2] -= h3*h3*vterm - eterm; + virpolar[3] -= h1*h2*vterm; + virpolar[4] -= h1*h3*vterm; + virpolar[5] -= h2*h3*vterm; + } + } + + // now do the TCG terms with "UBD" dotted with "UAP" + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < 10; j++) + cmp[i][j] = 0.0; + for (j = 1; j < 4; j++) + cmp[i][j] = uap[i][m][j-1]; + } + + cmp_to_fmp(cmp,fmp); + grid_mpole(fmp); + efft->compute(qgrid[0][0][0],qgrid[0][0][0],1); + + for (k = 0; k < nfft3; k++) { + for (j = 0; j < nfft2; j++) { + for (i = 0; i < nfft1; i++) { + qgrip[k][j][i][0] = qgrid[k][j][i][0]; + qgrip[k][j][i][1] = qgrid[k][j][i][1]; + } + } + } + + for (i = 0; i < nlocal; i++) { + for (j = 1; j < 4; j++) + cmp[i][j] = ubd[i][m][j-1]; + } + + cmp_to_fmp(cmp,fmp); + grid_mpole(fmp); + efft->compute(qgrid[0][0][0],qgrid[0][0][0],1); + + // make the scalar summation over reciprocal lattice + // NOTE: this loop has to be distributed for parallel + // NOTE: why does this one include m = 0 ? + + for (m = 1; m < ntot; m++) { + k1 = m % nfft1; + k2 = (m % nff) / nfft1; + k3 = m/nff; + r1 = (k1 >= nf1) ? k1-nfft1 : k1; + r2 = (k2 >= nf2) ? k2-nfft2 : k2; + r3 = (k3 >= nf3) ? k3-nfft3 : k3; + h1 = recip[0][0]*r1 + recip[0][1]*r2 + recip[0][2]*r3; + h2 = recip[1][0]*r1 + recip[1][1]*r2 + recip[1][2]*r3; + h3 = recip[2][0]*r1 + recip[2][1]*r2 + recip[2][2]*r3; + hsq = h1*h1 + h2*h2 + h3*h3; + term = -pterm * hsq; + expterm = 0.0; + if (term > -50.0 && hsq != 0.0) { + denom = volterm*hsq*bsmod1[k1]*bsmod2[k2]*bsmod3[k3]; + expterm = exp(term) / denom; + struc2 = qgrid[k3][k2][k1][0]*qgrip[k3][k2][k1][0] + + qgrid[k3][k2][k1][1]*qgrip[k3][k2][k1][1]; + eterm = 0.5 * felec * expterm * struc2; + vterm = (2.0/hsq) * (1.0-term) * eterm; + virpolar[0] -= h1*h1*vterm - eterm; + virpolar[1] -= h2*h2*vterm - eterm; + virpolar[2] -= h3*h3*vterm - eterm; + virpolar[3] -= h1*h2*vterm; + virpolar[4] -= h1*h3*vterm; + virpolar[5] -= h2*h3*vterm; + } + } + } + } + */ + + // increment the total internal virial tensor components + + if (vflag_global) { + virpolar[0] -= vxx; + virpolar[1] -= vyy; + virpolar[2] -= vzz; + virpolar[3] -= vxy; + virpolar[4] -= vxz; + virpolar[5] -= vyz; + } +} diff --git a/src/AMOEBA/amoeba_repulsion.cpp b/src/AMOEBA/amoeba_repulsion.cpp new file mode 100644 index 0000000000..0784a32d0b --- /dev/null +++ b/src/AMOEBA/amoeba_repulsion.cpp @@ -0,0 +1,569 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_amoeba.h" + +#include "atom.h" +#include "comm.h" +#include "memory.h" +#include "neigh_list.h" + +#include + +using namespace LAMMPS_NS; + +enum{FIELD,ZRSD,TORQUE,UFLD}; // reverse comm +enum{VDWL,REPULSE,QFER,DISP,MPOLE,POLAR,USOLV,DISP_LONG,MPOLE_LONG,POLAR_LONG}; + +/* ---------------------------------------------------------------------- + repulsion = Pauli repulsion interactions + adapted from Tinker erepel1b() routine +------------------------------------------------------------------------- */ + +void PairAmoeba::repulsion() +{ + int i,j,k,ii,jj,itype,jtype; + int ix,iy,iz; + double e; + double eterm,de; + double xi,yi,zi; + double xr,yr,zr; + double xix,yix,zix; + double xiy,yiy,ziy; + double xiz,yiz,ziz; + double r,r2,r3,r4,r5; + double rr1,rr3,rr5; + double rr7,rr9,rr11; + double dix,diy,diz; + double qixx,qixy,qixz; + double qiyy,qiyz,qizz; + double dkx,dky,dkz; + double qkxx,qkxy,qkxz; + double qkyy,qkyz,qkzz; + double dir,dkr,dik,qik; + double qix,qiy,qiz,qir; + double qkx,qky,qkz,qkr; + double diqk,dkqi,qiqk; + double dirx,diry,dirz; + double dkrx,dkry,dkrz; + double dikx,diky,dikz; + double qirx,qiry,qirz; + double qkrx,qkry,qkrz; + double qikx,qiky,qikz; + double qixk,qiyk,qizk; + double qkxi,qkyi,qkzi; + double qikrx,qikry,qikrz; + double qkirx,qkiry,qkirz; + double diqkx,diqky,diqkz; + double dkqix,dkqiy,dkqiz; + double diqkrx,diqkry,diqkrz; + double dkqirx,dkqiry,dkqirz; + double dqikx,dqiky,dqikz; + double term1,term2,term3; + double term4,term5,term6; + double sizi,sizk,sizik; + double vali,valk; + double dmpi,dmpk; + double frcx,frcy,frcz; + double taper,dtaper; + double vxx,vyy,vzz; + double vxy,vxz,vyz; + double factor_repel; + double ttri[3],ttrk[3]; + double fix[3],fiy[3],fiz[3]; + double dmpik[11]; + + int inum,jnum; + int *ilist,*jlist,*numneigh,**firstneigh; + + // set cutoffs and taper coeffs + + choose(REPULSE); + + // owned atoms + + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + + // zero repulsion torque on owned + ghost atoms + + int nall = nlocal + atom->nghost; + + for (i = 0; i < nall; i++) { + tq[i][0] = 0.0; + tq[i][1] = 0.0; + tq[i][2] = 0.0; + } + + // neigh list + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // double loop over owned atoms and neighbors + + // DEBUG + //FILE *fp = fopen("lammps.dat","w"); + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + itype = amtype[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + sizi = sizpr[itype]; + dmpi = dmppr[itype]; + vali = elepr[itype]; + dix = rpole[i][1]; + diy = rpole[i][2]; + diz = rpole[i][3]; + qixx = rpole[i][4]; + qixy = rpole[i][5]; + qixz = rpole[i][6]; + qiyy = rpole[i][8]; + qiyz = rpole[i][9]; + qizz = rpole[i][12]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_repel = special_repel[sbmask15(j)]; + if (factor_repel == 0.0) continue; + j &= NEIGHMASK15; + + xr = x[j][0] - xi; + yr = x[j][1] - yi; + zr = x[j][2] - zi; + r2 = xr*xr + yr*yr + zr*zr; + if (r2 > off2) continue; + + jtype = amtype[j]; + + r = sqrt(r2); + sizk = sizpr[jtype]; + dmpk = dmppr[jtype]; + valk = elepr[jtype]; + dkx = rpole[j][1]; + dky = rpole[j][2]; + dkz = rpole[j][3]; + qkxx = rpole[j][4]; + qkxy = rpole[j][5]; + qkxz = rpole[j][6]; + qkyy = rpole[j][8]; + qkyz = rpole[j][9]; + qkzz = rpole[j][12]; + + // intermediates involving moments and separation distance + + dir = dix*xr + diy*yr + diz*zr; + qix = qixx*xr + qixy*yr + qixz*zr; + qiy = qixy*xr + qiyy*yr + qiyz*zr; + qiz = qixz*xr + qiyz*yr + qizz*zr; + qir = qix*xr + qiy*yr + qiz*zr; + dkr = dkx*xr + dky*yr + dkz*zr; + qkx = qkxx*xr + qkxy*yr + qkxz*zr; + qky = qkxy*xr + qkyy*yr + qkyz*zr; + qkz = qkxz*xr + qkyz*yr + qkzz*zr; + qkr = qkx*xr + qky*yr + qkz*zr; + dik = dix*dkx + diy*dky + diz*dkz; + qik = qix*qkx + qiy*qky + qiz*qkz; + diqk = dix*qkx + diy*qky + diz*qkz; + dkqi = dkx*qix + dky*qiy + dkz*qiz; + qiqk = 2.0*(qixy*qkxy+qixz*qkxz+qiyz*qkyz) + + qixx*qkxx + qiyy*qkyy + qizz*qkzz; + + // additional intermediates involving moments and distance + + dirx = diy*zr - diz*yr; + diry = diz*xr - dix*zr; + dirz = dix*yr - diy*xr; + dkrx = dky*zr - dkz*yr; + dkry = dkz*xr - dkx*zr; + dkrz = dkx*yr - dky*xr; + dikx = diy*dkz - diz*dky; + diky = diz*dkx - dix*dkz; + dikz = dix*dky - diy*dkx; + qirx = qiz*yr - qiy*zr; + qiry = qix*zr - qiz*xr; + qirz = qiy*xr - qix*yr; + qkrx = qkz*yr - qky*zr; + qkry = qkx*zr - qkz*xr; + qkrz = qky*xr - qkx*yr; + qikx = qky*qiz - qkz*qiy; + qiky = qkz*qix - qkx*qiz; + qikz = qkx*qiy - qky*qix; + qixk = qixx*qkx + qixy*qky + qixz*qkz; + qiyk = qixy*qkx + qiyy*qky + qiyz*qkz; + qizk = qixz*qkx + qiyz*qky + qizz*qkz; + qkxi = qkxx*qix + qkxy*qiy + qkxz*qiz; + qkyi = qkxy*qix + qkyy*qiy + qkyz*qiz; + qkzi = qkxz*qix + qkyz*qiy + qkzz*qiz; + qikrx = qizk*yr - qiyk*zr; + qikry = qixk*zr - qizk*xr; + qikrz = qiyk*xr - qixk*yr; + qkirx = qkzi*yr - qkyi*zr; + qkiry = qkxi*zr - qkzi*xr; + qkirz = qkyi*xr - qkxi*yr; + diqkx = dix*qkxx + diy*qkxy + diz*qkxz; + diqky = dix*qkxy + diy*qkyy + diz*qkyz; + diqkz = dix*qkxz + diy*qkyz + diz*qkzz; + dkqix = dkx*qixx + dky*qixy + dkz*qixz; + dkqiy = dkx*qixy + dky*qiyy + dkz*qiyz; + dkqiz = dkx*qixz + dky*qiyz + dkz*qizz; + diqkrx = diqkz*yr - diqky*zr; + diqkry = diqkx*zr - diqkz*xr; + diqkrz = diqky*xr - diqkx*yr; + dkqirx = dkqiz*yr - dkqiy*zr; + dkqiry = dkqix*zr - dkqiz*xr; + dkqirz = dkqiy*xr - dkqix*yr; + dqikx = diy*qkz - diz*qky + dky*qiz - dkz*qiy - + 2.0*(qixy*qkxz+qiyy*qkyz+qiyz*qkzz-qixz*qkxy-qiyz*qkyy-qizz*qkyz); + dqiky = diz*qkx - dix*qkz + dkz*qix - dkx*qiz - + 2.0*(qixz*qkxx+qiyz*qkxy+qizz*qkxz-qixx*qkxz-qixy*qkyz-qixz*qkzz); + dqikz = dix*qky - diy*qkx + dkx*qiy - dky*qix - + 2.0*(qixx*qkxy+qixy*qkyy+qixz*qkyz-qixy*qkxx-qiyy*qkxy-qiyz*qkxz); + + // get reciprocal distance terms for this interaction + + rr1 = 1.0 / r; + rr3 = rr1 / r2; + rr5 = 3.0 * rr3 / r2; + rr7 = 5.0 * rr5 / r2; + rr9 = 7.0 * rr7 / r2; + rr11 = 9.0 * rr9 / r2; + + // get damping coefficients for the Pauli repulsion energy + + damprep(r,r2,rr1,rr3,rr5,rr7,rr9,rr11,11,dmpi,dmpk,dmpik); + + // calculate intermediate terms needed for the energy + + term1 = vali*valk; + term2 = valk*dir - vali*dkr + dik; + term3 = vali*qkr + valk*qir - dir*dkr + 2.0*(dkqi-diqk+qiqk); + term4 = dir*qkr - dkr*qir - 4.0*qik; + term5 = qir*qkr; + eterm = term1*dmpik[0] + term2*dmpik[2] + + term3*dmpik[4] + term4*dmpik[6] + term5*dmpik[8]; + + // compute the Pauli repulsion energy for this interaction + + sizik = sizi * sizk * factor_repel; + e = sizik * eterm * rr1; + + // calculate intermediate terms for force and torque + + de = term1*dmpik[2] + term2*dmpik[4] + term3*dmpik[6] + + term4*dmpik[8] + term5*dmpik[10]; + term1 = -valk*dmpik[2] + dkr*dmpik[4] - qkr*dmpik[6]; + term2 = vali*dmpik[2] + dir*dmpik[4] + qir*dmpik[6]; + term3 = 2.0 * dmpik[4]; + term4 = 2.0 * (-valk*dmpik[4] + dkr*dmpik[6] - qkr*dmpik[8]); + term5 = 2.0 * (-vali*dmpik[4] - dir*dmpik[6] - qir*dmpik[8]); + term6 = 4.0 * dmpik[6]; + + // compute the force components for this interaction + + frcx = de*xr + term1*dix + term2*dkx + term3*(diqkx-dkqix) + + term4*qix + term5*qkx + term6*(qixk+qkxi); + frcy = de*yr + term1*diy + term2*dky + term3*(diqky-dkqiy) + + term4*qiy + term5*qky + term6*(qiyk+qkyi); + frcz = de*zr + term1*diz + term2*dkz + term3*(diqkz-dkqiz) + + term4*qiz + term5*qkz + term6*(qizk+qkzi); + frcx = frcx*rr1 + eterm*rr3*xr; + frcy = frcy*rr1 + eterm*rr3*yr; + frcz = frcz*rr1 + eterm*rr3*zr; + frcx = sizik * frcx; + frcy = sizik * frcy; + frcz = sizik * frcz; + + // compute the torque components for this interaction + + ttri[0] = -dmpik[2]*dikx + term1*dirx + term3*(dqikx+dkqirx) - + term4*qirx - term6*(qikrx+qikx); + ttri[1] = -dmpik[2]*diky + term1*diry + term3*(dqiky+dkqiry) - + term4*qiry - term6*(qikry+qiky); + ttri[2] = -dmpik[2]*dikz + term1*dirz + term3*(dqikz+dkqirz) - + term4*qirz - term6*(qikrz+qikz); + ttrk[0] = dmpik[2]*dikx + term2*dkrx - term3*(dqikx+diqkrx) - + term5*qkrx - term6*(qkirx-qikx); + ttrk[1] = dmpik[2]*diky + term2*dkry - term3*(dqiky+diqkry) - + term5*qkry - term6*(qkiry-qiky); + ttrk[2] = dmpik[2]*dikz + term2*dkrz - term3*(dqikz+diqkrz) - + term5*qkrz - term6*(qkirz-qikz); + ttri[0] = sizik * ttri[0] * rr1; + ttri[1] = sizik * ttri[1] * rr1; + ttri[2] = sizik * ttri[2] * rr1; + ttrk[0] = sizik * ttrk[0] * rr1; + ttrk[1] = sizik * ttrk[1] * rr1; + ttrk[2] = sizik * ttrk[2] * rr1; + + // use energy switching if near the cutoff distance + + if (r2 > cut2) { + r3 = r2 * r; + r4 = r2 * r2; + r5 = r2 * r3; + taper = c5*r5 + c4*r4 + c3*r3 + c2*r2 + c1*r + c0; + dtaper = 5.0*c5*r4 + 4.0*c4*r3 + 3.0*c3*r2 + 2.0*c2*r + c1; + dtaper *= e * rr1; + e *= taper; + frcx = frcx*taper - dtaper*xr; + frcy = frcy*taper - dtaper*yr; + frcz = frcz*taper - dtaper*zr; + for (k = 0; k < 3; k++) { + ttri[k] *= taper; + ttrk[k] *= taper; + } + } + + erepulse += e; + + // increment force-based gradient and torque on atom I + + f[i][0] -= frcx; + f[i][1] -= frcy; + f[i][2] -= frcz; + tq[i][0] += ttri[0]; + tq[i][1] += ttri[1]; + tq[i][2] += ttri[2]; + + // increment force-based gradient and torque on atom J + + f[j][0] += frcx; + f[j][1] += frcy; + f[j][2] += frcz; + tq[j][0] += ttrk[0]; + tq[j][1] += ttrk[1]; + tq[j][2] += ttrk[2]; + + // increment the virial due to pairwise Cartesian forces + + if (vflag_global) { + vxx = -xr * frcx; + vxy = -0.5 * (yr*frcx+xr*frcy); + vxz = -0.5 * (zr*frcx+xr*frcz); + vyy = -yr * frcy; + vyz = -0.5 * (zr*frcy+yr*frcz); + vzz = -zr * frcz; + + virrepulse[0] -= vxx; + virrepulse[1] -= vyy; + virrepulse[2] -= vzz; + virrepulse[3] -= vxy; + virrepulse[4] -= vxz; + virrepulse[5] -= vyz; + } + } + } + + // reverse comm to sum torque from ghost atoms to owned atoms + + crstyle = TORQUE; + comm->reverse_comm(this); + + // resolve site torques then increment forces and virial + + for (i = 0; i < nlocal; i++) { + torque2force(i,tq[i],fix,fiy,fiz,f); + + if (!vflag_global) continue; + + iz = zaxis2local[i]; + ix = xaxis2local[i]; + iy = yaxis2local[i]; + + xiz = x[iz][0] - x[i][0]; + yiz = x[iz][1] - x[i][1]; + ziz = x[iz][2] - x[i][2]; + xix = x[ix][0] - x[i][0]; + yix = x[ix][1] - x[i][1]; + zix = x[ix][2] - x[i][2]; + xiy = x[iy][0] - x[i][0]; + yiy = x[iy][1] - x[i][1]; + ziy = x[iy][2] - x[i][2]; + + vxx = xix*fix[0] + xiy*fiy[0] + xiz*fiz[0]; + vyy = yix*fix[1] + yiy*fiy[1] + yiz*fiz[1]; + vzz = zix*fix[2] + ziy*fiy[2] + ziz*fiz[2]; + vxy = 0.5 * (yix*fix[0] + yiy*fiy[0] + yiz*fiz[0] + + xix*fix[1] + xiy*fiy[1] + xiz*fiz[1]); + vxz = 0.5 * (zix*fix[0] + ziy*fiy[0] + ziz*fiz[0] + + xix*fix[2] + xiy*fiy[2] + xiz*fiz[2]); + vyz = 0.5 * (zix*fix[1] + ziy*fiy[1] + ziz*fiz[1] + + yix*fix[2] + yiy*fiy[2] + yiz*fiz[2]); + + virrepulse[0] -= vxx; + virrepulse[1] -= vyy; + virrepulse[2] -= vzz; + virrepulse[3] -= vxy; + virrepulse[4] -= vxz; + virrepulse[5] -= vyz; + } +} + +/* ---------------------------------------------------------------------- + damprep generates coefficients for the Pauli repulsion + damping function for powers of the interatomic distance + + literature reference: + + J. A. Rackers and J. W. Ponder, "Classical Pauli Repulsion: An + Anisotropic, Atomic Multipole Model", Journal of Chemical Physics, + 150, 084104 (2019) +------------------------------------------------------------------------- */ + +void PairAmoeba::damprep(double r, double r2, double rr1, double rr3, + double rr5, double rr7, double rr9, double rr11, + int rorder, double dmpi, double dmpk, double *dmpik) +{ + double r3,r4; + double r5,r6,r7,r8; + double s,ds,d2s; + double d3s,d4s,d5s; + double dmpi2,dmpk2; + double dmpi22,dmpi23; + double dmpi24,dmpi25; + double dmpi26,dmpi27; + double dmpk22,dmpk23; + double dmpk24,dmpk25; + double dmpk26; + double eps,diff; + double expi,expk; + double dampi,dampk; + double pre,term,tmp; + + // compute tolerance value for damping exponents + + eps = 0.001; + diff = fabs(dmpi-dmpk); + + // treat the case where alpha damping exponents are equal + + if (diff < eps) { + r3 = r2 * r; + r4 = r3 * r; + r5 = r4 * r; + r6 = r5 * r; + r7 = r6 * r; + dmpi2 = 0.5 * dmpi; + dampi = dmpi2 * r; + expi = exp(-dampi); + dmpi22 = dmpi2 * dmpi2; + dmpi23 = dmpi22 * dmpi2; + dmpi24 = dmpi23 * dmpi2; + dmpi25 = dmpi24 * dmpi2; + dmpi26 = dmpi25 * dmpi2; + pre = 128.0; + s = (r + dmpi2*r2 + dmpi22*r3/3.0) * expi; + + ds = (dmpi22*r3 + dmpi23*r4) * expi / 3.0; + d2s = dmpi24 * expi * r5 / 9.0; + d3s = dmpi25 * expi * r6 / 45.0; + d4s = (dmpi25*r6 + dmpi26*r7) * expi / 315.0; + if (rorder >= 11) { + r8 = r7 * r; + dmpi27 = dmpi2 * dmpi26; + d5s = (dmpi25*r6 + dmpi26*r7 + dmpi27*r8/3.0) * expi / 945.0; + } else d5s = 0.0; + + // treat the case where alpha damping exponents are unequal + + } else { + r3 = r2 * r; + r4 = r3 * r; + r5 = r4 * r; + dmpi2 = 0.5 * dmpi; + dmpk2 = 0.5 * dmpk; + dampi = dmpi2 * r; + dampk = dmpk2 * r; + expi = exp(-dampi); + expk = exp(-dampk); + dmpi22 = dmpi2 * dmpi2; + dmpi23 = dmpi22 * dmpi2; + dmpi24 = dmpi23 * dmpi2; + dmpi25 = dmpi24 * dmpi2; + dmpk22 = dmpk2 * dmpk2; + dmpk23 = dmpk22 * dmpk2; + dmpk24 = dmpk23 * dmpk2; + dmpk25 = dmpk24 * dmpk2; + term = dmpi22 - dmpk22; + pre = 8192.0 * dmpi23 * dmpk23 / pow(term,4.0); + tmp = 4.0 * dmpi2 * dmpk2 / term; + s = (dampi-tmp)*expk + (dampk+tmp)*expi; + + ds = (dmpi2*dmpk2*r2 - 4.0*dmpi2*dmpk22*r/term - + 4.0*dmpi2*dmpk2/term) * expk + + (dmpi2*dmpk2*r2 + 4.0*dmpi22*dmpk2*r/term + 4.0*dmpi2*dmpk2/term) * expi; + d2s = (dmpi2*dmpk2*r2/3.0 + dmpi2*dmpk22*r3/3.0 - + (4.0/3.0)*dmpi2*dmpk23*r2/term - 4.0*dmpi2*dmpk22*r/term - + 4.0*dmpi2*dmpk2/term) * expk + + (dmpi2*dmpk2*r2/3.0 + dmpi22*dmpk2*r3/3.0 + + (4.0/3.0)*dmpi23*dmpk2*r2/term + 4.0*dmpi22*dmpk2*r/term + + 4.0*dmpi2*dmpk2/term) * expi; + d3s = (dmpi2*dmpk23*r4/15.0 + dmpi2*dmpk22*r3/5.0 + dmpi2*dmpk2*r2/5.0 - + (4.0/15.0)*dmpi2*dmpk24*r3/term - (8.0/5.0)*dmpi2*dmpk23*r2/term - + 4.0*dmpi2*dmpk22*r/term - 4.0/term*dmpi2*dmpk2) * expk + + (dmpi23*dmpk2*r4/15.0 + dmpi22*dmpk2*r3/5.0 + dmpi2*dmpk2*r2/5.0 + + (4.0/15.0)*dmpi24*dmpk2*r3/term + (8.0/5.0)*dmpi23*dmpk2*r2/term + + 4.0*dmpi22*dmpk2*r/term + 4.0/term*dmpi2*dmpk2) * expi; + d4s = (dmpi2*dmpk24*r5/105.0 + (2.0/35.0)*dmpi2*dmpk23*r4 + + dmpi2*dmpk22*r3/7.0 + dmpi2*dmpk2*r2/7.0 - + (4.0/105.0)*dmpi2*dmpk25*r4/term - (8.0/21.0)*dmpi2*dmpk24*r3/term - + (12.0/7.0)*dmpi2*dmpk23*r2/term - 4.0*dmpi2*dmpk22*r/term - + 4.0*dmpi2*dmpk2/term) * expk + + (dmpi24*dmpk2*r5/105.0 + (2.0/35.0)*dmpi23*dmpk2*r4 + + dmpi22*dmpk2*r3/7.0 + dmpi2*dmpk2*r2/7.0 + + (4.0/105.0)*dmpi25*dmpk2*r4/term + (8.0/21.0)*dmpi24*dmpk2*r3/term + + (12.0/7.0)*dmpi23*dmpk2*r2/term + 4.0*dmpi22*dmpk2*r/term + + 4.0*dmpi2*dmpk2/term) * expi; + + if (rorder >= 11) { + r6 = r5 * r; + dmpi26 = dmpi25 * dmpi2; + dmpk26 = dmpk25 * dmpk2; + d5s = (dmpi2*dmpk25*r6/945.0 + (2.0/189.0)*dmpi2*dmpk24*r5 + + dmpi2*dmpk23*r4/21.0 + dmpi2*dmpk22*r3/9.0 + dmpi2*dmpk2*r2/9.0 - + (4.0/945.0)*dmpi2*dmpk26*r5/term - + (4.0/63.0)*dmpi2*dmpk25*r4/term - (4.0/9.0)*dmpi2*dmpk24*r3/term - + (16.0/9.0)*dmpi2*dmpk23*r2/term - 4.0*dmpi2*dmpk22*r/term - + 4.0*dmpi2*dmpk2/term) * expk + + (dmpi25*dmpk2*r6/945.0 + (2.0/189.0)*dmpi24*dmpk2*r5 + + dmpi23*dmpk2*r4/21.0 + dmpi22*dmpk2*r3/9.0 + dmpi2*dmpk2*r2/9.0 + + (4.0/945.0)*dmpi26*dmpk2*r5/term + (4.0/63.0)*dmpi25*dmpk2*r4/term + + (4.0/9.0)*dmpi24*dmpk2*r3/term + (16.0/9.0)*dmpi23*dmpk2*r2/term + + 4.0*dmpi22*dmpk2*r/term + 4.0*dmpi2*dmpk2/term) * expi; + } else d5s = 0.0; + } + + // convert partial derivatives into full derivatives + + s = s * rr1; + ds = ds * rr3; + d2s = d2s * rr5; + d3s = d3s * rr7; + d4s = d4s * rr9; + d5s = d5s * rr11; + dmpik[0] = 0.5 * pre * s * s; + dmpik[2] = pre * s * ds; + dmpik[4] = pre * (s*d2s + ds*ds); + dmpik[6] = pre * (s*d3s + 3.0*ds*d2s); + dmpik[8] = pre * (s*d4s + 4.0*ds*d3s + 3.0*d2s*d2s); + if (rorder >= 11) dmpik[10] = pre * (s*d5s + 5.0*ds*d4s + 10.0*d2s*d3s); +} diff --git a/src/AMOEBA/amoeba_utils.cpp b/src/AMOEBA/amoeba_utils.cpp new file mode 100644 index 0000000000..b01b9f11b6 --- /dev/null +++ b/src/AMOEBA/amoeba_utils.cpp @@ -0,0 +1,1135 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_amoeba.h" + +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "fix_store.h" +#include "neigh_list.h" + +#include + +using namespace LAMMPS_NS; + +enum{NOFRAME,ZONLY,ZTHENX,BISECTOR,ZBISECT,THREEFOLD}; + +// ---------------------------------------------------------------------- +// utility methods used by different parts of the AMOEBA force field +// ---------------------------------------------------------------------- + +/* ---------------------------------------------------------------------- + kmpole performs one-time assignment of + xyzaxis multipole neighbors to each owned atom + any of the values can be 0 if not used + yaxis can later be negative due to chkpole() + also sets polaxe and pole[13] multipole for each owned atom +------------------------------------------------------------------------- */ + +void PairAmoeba::kmpole() +{ + bool path; + int i,j,k,m,j12,k12,m12,k13,m13,flag; + int iframe,nframe; + int itype,jtype,ktype,mtype,xtype,ytype,ztype; + tagint jneigh,kneigh,mneigh; + + // DEBUG vectors + + tagint bondneigh[12]; + tagint angleneigh[36]; + + amtype = atom->ivector[index_amtype]; + int *polaxe = atom->ivector[index_polaxe]; + double **xyzaxis = atom->darray[index_xyzaxis]; + double **pole = fixpole->astore; + + int **nspecial = atom->nspecial; + tagint **special = atom->special; + int nlocal = atom->nlocal; + + int nmissing = 0; + + for (i = 0; i < nlocal; i++) { + itype = amtype[i]; + nframe = nmultiframe[itype]; + + // flag is used to prevent matching multiple times + // only first match is used + + flag = 0; + + // create a sorted version of bond/angle neighs from special[][] + // NOTE: this is to try and do it identically to Tinker + // b/c I think in Tinker, which case is seen first can depend on atom order + + for (j = 0; j < nspecial[i][0]; j++) + bondneigh[j] = special[i][j]; + for (m = 0; m < nspecial[i][0]; m++) { + tagint smallest = MAXTAGINT; + for (j = m; j < nspecial[i][0]; j++) { + if (bondneigh[j] < smallest) { + smallest = bondneigh[j]; + k = j; + } + bondneigh[k] = bondneigh[m]; + bondneigh[m] = smallest; + } + } + + for (j = nspecial[i][0]; j < nspecial[i][1]; j++) + angleneigh[j] = special[i][j]; + for (m = nspecial[i][0]; m < nspecial[i][1]; m++) { + tagint smallest = MAXTAGINT; + for (j = m; j < nspecial[i][1]; j++) { + if (angleneigh[j] < smallest) { + smallest = angleneigh[j]; + k = j; + } + angleneigh[k] = angleneigh[m]; + angleneigh[m] = smallest; + } + } + + // assign xyz axis and fpole via only 1-2 connected atoms + + for (iframe = 0; iframe < nframe; iframe++) { + xtype = xpole[itype][iframe]; + ytype = ypole[itype][iframe]; + ztype = zpole[itype][iframe]; + for (j12 = 0; j12 < nspecial[i][0]; j12++) { + jneigh = bondneigh[j12]; + j = atom->map(jneigh); + if (j < 0) + error->one(FLERR,"AMOEBA kmpole() could not find bond partner"); + jtype = amtype[j]; + if (jtype == ztype) { + for (k12 = 0; k12 < nspecial[i][0]; k12++) { + if (k12 == j12) continue; + kneigh = bondneigh[k12]; + k = atom->map(kneigh); + if (k < 0) + error->one(FLERR,"AMOEBA kmpole() could not find bond partner"); + ktype = amtype[k]; + if (ktype == xtype) { + if (ytype == 0 && !flag) { + flag = 1; + xyzaxis[i][2] = ubuf(jneigh).d; + xyzaxis[i][0] = ubuf(kneigh).d; + xyzaxis[i][1] = 0.0; + polaxe[i] = mpaxis[itype][iframe]; + for (j = 0; j < 13; j++) + pole[i][j] = fpole[itype][iframe][j]; + } else { + for (m12 = 0; m12 < nspecial[i][0]; m12++) { + if (m12 == j12 || m12 == k12) continue; + mneigh = bondneigh[m12]; + m = atom->map(mneigh); + if (m < 0) + error->one(FLERR,"AMOEBA kmpole() could not find bond partner"); + mtype = amtype[m]; + if (mtype == ytype && !flag) { + flag = 1; + xyzaxis[i][2] = ubuf(jneigh).d; + xyzaxis[i][0] = ubuf(kneigh).d; + xyzaxis[i][1] = ubuf(mneigh).d; + polaxe[i] = mpaxis[itype][iframe]; + for (j = 0; j < 13; j++) + pole[i][j] = fpole[itype][iframe][j]; + } + } + } + } + } + } + } + } + + if (flag) continue; + + // assign xyz axis via 1-2 and 1-3 connected atoms + + for (iframe = 0; iframe < nframe; iframe++) { + xtype = xpole[itype][iframe]; + ytype = ypole[itype][iframe]; + ztype = zpole[itype][iframe]; + for (j12 = 0; j12 < nspecial[i][0]; j12++) { + jneigh = bondneigh[j12]; + j = atom->map(jneigh); + if (j < 0) error->one(FLERR,"AMOEBA kmpole() could not find bond partner"); + jtype = amtype[j]; + if (jtype == ztype) { + for (k13 = nspecial[i][0]; k13 < nspecial[i][1]; k13++) { + kneigh = angleneigh[k13]; + k = atom->map(kneigh); + if (k < 0) error->one(FLERR,"AMOEBA kmpole() could not find bond partner"); + ktype = amtype[k]; + path = false; + for (m12 = 0; m12 < nspecial[k][0]; m12++) + if (special[k][m12] == jneigh) path = true; + if (!path) continue; + + if (ktype == xtype) { + if (ytype == 0 && !flag) { + flag = 1; + xyzaxis[i][2] = ubuf(jneigh).d; + xyzaxis[i][0] = ubuf(kneigh).d; + xyzaxis[i][1] = 0.0; + polaxe[i] = mpaxis[itype][iframe]; + for (j = 0; j < 13; j++) + pole[i][j] = fpole[itype][iframe][j]; + } else { + for (m13 = nspecial[i][0]; m13 < nspecial[i][1]; m13++) { + if (m13 == k13) continue; + mneigh = angleneigh[m13]; + m = atom->map(mneigh); + if (m < 0) + error->one(FLERR,"AMOEBA kmpole() could not find bond partner"); + mtype = amtype[m]; + path = false; + for (m12 = 0; m12 < nspecial[m][0]; m12++) + if (special[m][m12] == jneigh) path = true; + if (!path) continue; + if (mtype == ytype && !flag) { + flag = 1; + xyzaxis[i][2] = ubuf(jneigh).d; + xyzaxis[i][0] = ubuf(kneigh).d; + xyzaxis[i][1] = ubuf(mneigh).d; + polaxe[i] = mpaxis[itype][iframe]; + for (j = 0; j < 13; j++) + pole[i][j] = fpole[itype][iframe][j]; + } + } + } + } + } + } + } + } + + if (flag) continue; + + // assign xyz axis via only a z-defining atom + + for (iframe = 0; iframe < nframe; iframe++) { + xtype = xpole[itype][iframe]; + ytype = ypole[itype][iframe]; + ztype = zpole[itype][iframe]; + for (j12 = 0; j12 < nspecial[i][0]; j12++) { + jneigh = bondneigh[j12]; + j = atom->map(jneigh); + if (j < 0) error->one(FLERR,"AMOEBA kmpole() could not find bond partner"); + jtype = amtype[j]; + if (jtype == ztype) { + if (xtype == 0 && !flag) { + flag = 1; + xyzaxis[i][2] = ubuf(jneigh).d; + xyzaxis[i][0] = xyzaxis[i][1] = 0.0; + polaxe[i] = mpaxis[itype][iframe]; + for (j = 0; j < 13; j++) + pole[i][j] = fpole[itype][iframe][j]; + } + } + } + } + + if (flag) continue; + + // assign xyz axis via no connected atoms + + for (iframe = 0; iframe < nframe; iframe++) { + xtype = xpole[itype][iframe]; + ytype = ypole[itype][iframe]; + ztype = zpole[itype][iframe]; + if (ztype == 0 && !flag) { + flag = 1; + xyzaxis[i][2] = xyzaxis[i][0] = xyzaxis[i][2] = 0.0; + polaxe[i] = mpaxis[itype][iframe]; + for (j = 0; j < 13; j++) + pole[i][j] = fpole[itype][iframe][j]; + } + } + + if (flag) continue; + + // flag error if could not assign xyz axis + + nmissing++; + } + + // error check on missing settings + + int nmissing_all; + MPI_Allreduce(&nmissing,&nmissing_all,1,MPI_INT,MPI_SUM,world); + if (nmissing_all) + error->all(FLERR, "Pair amoeba: {} multipole settings missing\n", nmissing_all); +} + +/* ---------------------------------------------------------------------- + chkpole inverts atomic multipole moments as necessary + at sites with chiral local reference frame definitions + called every timestep for each atom I +------------------------------------------------------------------------- */ + +void PairAmoeba::chkpole(int i) +{ + bool check; + int ib,ic,id; + double xad,yad,zad; + double xbd,ybd,zbd; + double xcd,ycd,zcd; + double c1,c2,c3,vol; + + double **pole = fixpole->astore; + + int *polaxe = atom->ivector[index_polaxe]; + double **xyzaxis = atom->darray[index_xyzaxis]; + tagint yaxisID = (tagint) ubuf(xyzaxis[i][1]).i; + + // test for chirality inversion + // if not, return + + check = true; + if (polaxe[i] != ZTHENX) check = false; + if (yaxisID == 0) check = false; + if (!check) return; + + ib = zaxis2local[i]; + ic = xaxis2local[i]; + id = yaxis2local[i]; + + // compute the signed parallelpiped volume at chiral site + + double **x = atom->x; + + xad = x[i][0] - x[id][0]; + yad = x[i][1] - x[id][1]; + zad = x[i][2] - x[id][2]; + xbd = x[ib][0] - x[id][0]; + ybd = x[ib][1] - x[id][1]; + zbd = x[ib][2] - x[id][2]; + xcd = x[ic][0] - x[id][0]; + ycd = x[ic][1] - x[id][1]; + zcd = x[ic][2] - x[id][2]; + c1 = ybd*zcd - zbd*ycd; + c2 = ycd*zad - zcd*yad; + c3 = yad*zbd - zad*ybd; + vol = xad*c1 + xbd*c2 + xcd*c3; + + // invert atomic multipole components involving the y-axis + // flip sign in permanent yaxis, not yaxis2local + + if ((yaxisID < 0 && vol > 0.0) || (yaxisID > 0 && vol < 0.0)) { + xyzaxis[i][1] = -ubuf(yaxisID).d; + pole[i][2] = -pole[i][2]; + pole[i][5] = -pole[i][5]; + pole[i][7] = -pole[i][7]; + pole[i][9] = -pole[i][9]; + pole[i][11] = -pole[i][11]; + } +} + +/* ---------------------------------------------------------------------- + rotmat finds the rotation matrix that rotates the local + coordinate system into the global frame at a multipole site + called every timestep for each atom I +------------------------------------------------------------------------- */ + +void PairAmoeba::rotmat(int i) +{ + int ix,iy,iz; + double r,dot; + double xi,yi,zi; + double dx,dy,dz; + double dx1,dy1,dz1; + double dx2,dy2,dz2; + double dx3,dy3,dz3; + + int *polaxe = atom->ivector[index_polaxe]; + + // get coordinates and frame definition for the multipole site + + double **x = atom->x; + + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + + iz = zaxis2local[i]; + ix = xaxis2local[i]; + iy = yaxis2local[i]; + + // use the identity matrix as the default rotation matrix + + rotate[0][0] = 1.0; + rotate[0][1] = 0.0; + rotate[0][2] = 0.0; + rotate[2][0] = 0.0; + rotate[2][1] = 0.0; + rotate[2][2] = 1.0; + + // z-only frame rotation matrix elements for z-axis only + + if (polaxe[i] == ZONLY) { + dx = x[iz][0] - xi; + dy = x[iz][1] - yi; + dz = x[iz][2] - zi; + r = sqrt(dx*dx + dy*dy + dz*dz); + rotate[2][0] = dx / r; + rotate[2][1] = dy / r; + rotate[2][2] = dz / r; + dx = 1.0; + dy = 0.0; + dz = 0.0; + dot = rotate[2][0]; + if (fabs(dot) > 0.866) { + dx = 0.0; + dy = 1.0; + dot = rotate[2][1]; + } + dx = dx - dot*rotate[2][0]; + dy = dy - dot*rotate[2][1]; + dz = dz - dot*rotate[2][2]; + r = sqrt(dx*dx + dy*dy + dz*dz); + rotate[0][0] = dx / r; + rotate[0][1] = dy / r; + rotate[0][2] = dz / r; + + // z-then-x frame rotation matrix elements for z- and x-axes + + } else if (polaxe[i] == ZTHENX) { + dx = x[iz][0] - xi; + dy = x[iz][1] - yi; + dz = x[iz][2] - zi; + r = sqrt(dx*dx + dy*dy + dz*dz); + rotate[2][0] = dx / r; + rotate[2][1] = dy / r; + rotate[2][2] = dz / r; + dx = x[ix][0] - xi; + dy = x[ix][1] - yi; + dz = x[ix][2] - zi; + dot = dx*rotate[2][0] + dy*rotate[2][1] + dz*rotate[2][2]; + dx = dx - dot*rotate[2][0]; + dy = dy - dot*rotate[2][1]; + dz = dz - dot*rotate[2][2]; + r = sqrt(dx*dx + dy*dy + dz*dz); + rotate[0][0] = dx / r; + rotate[0][1] = dy / r; + rotate[0][2] = dz / r; + + // bisector frame rotation matrix elements for z- and x-axes + + } else if (polaxe[i] == BISECTOR) { + dx = x[iz][0] - xi; + dy = x[iz][1] - yi; + dz = x[iz][2] - zi; + r = sqrt(dx*dx + dy*dy + dz*dz); + dx1 = dx / r; + dy1 = dy / r; + dz1 = dz / r; + dx = x[ix][0] - xi; + dy = x[ix][1] - yi; + dz = x[ix][2] - zi; + r = sqrt(dx*dx + dy*dy + dz*dz); + dx2 = dx / r; + dy2 = dy / r; + dz2 = dz / r; + dx = dx1 + dx2; + dy = dy1 + dy2; + dz = dz1 + dz2; + r = sqrt(dx*dx + dy*dy + dz*dz); + rotate[2][0] = dx / r; + rotate[2][1] = dy / r; + rotate[2][2] = dz / r; + dot = dx2*rotate[2][0] + dy2*rotate[2][1] + dz2*rotate[2][2]; + dx = dx2 - dot*rotate[2][0]; + dy = dy2 - dot*rotate[2][1]; + dz = dz2 - dot*rotate[2][2]; + r = sqrt(dx*dx + dy*dy + dz*dz); + rotate[0][0] = dx / r; + rotate[0][1] = dy / r; + rotate[0][2] = dz / r; + + // z-bisect frame rotation matrix elements for z- and x-axes + + } else if (polaxe[i] == ZBISECT) { + dx = x[iz][0] - xi; + dy = x[iz][1] - yi; + dz = x[iz][2] - zi; + r = sqrt(dx*dx + dy*dy + dz*dz); + rotate[2][0] = dx / r; + rotate[2][1] = dy / r; + rotate[2][2] = dz / r; + dx = x[ix][0] - xi; + dy = x[ix][1] - yi; + dz = x[ix][2] - zi; + r = sqrt(dx*dx + dy*dy + dz*dz); + dx1 = dx / r; + dy1 = dy / r; + dz1 = dz / r; + dx = x[iy][0] - xi; + dy = x[iy][1] - yi; + dz = x[iy][2] - zi; + r = sqrt(dx*dx + dy*dy + dz*dz); + dx2 = dx / r; + dy2 = dy / r; + dz2 = dz / r; + dx = dx1 + dx2; + dy = dy1 + dy2; + dz = dz1 + dz2; + r = sqrt(dx*dx + dy*dy + dz*dz); + dx = dx / r; + dy = dy / r; + dz = dz / r; + dot = dx*rotate[2][0] + dy*rotate[2][1] + dz*rotate[2][2]; + dx = dx - dot*rotate[2][0]; + dy = dy - dot*rotate[2][1]; + dz = dz - dot*rotate[2][2]; + r = sqrt(dx*dx + dy*dy + dz*dz); + rotate[0][0] = dx / r; + rotate[0][1] = dy / r; + rotate[0][2] = dz / r; + + // 3-fold frame rotation matrix elements for z- and x-axes + + } else if (polaxe[i] == THREEFOLD) { + dx = x[iz][0] - xi; + dy = x[iz][1] - yi; + dz = x[iz][2] - zi; + r = sqrt(dx*dx + dy*dy + dz*dz); + dx1 = dx / r; + dy1 = dy / r; + dz1 = dz / r; + dx = x[ix][0] - xi; + dy = x[ix][1] - yi; + dz = x[ix][2] - zi; + r = sqrt(dx*dx + dy*dy + dz*dz); + dx2 = dx / r; + dy2 = dy / r; + dz2 = dz / r; + dx = x[iy][0] - xi; + dy = x[iy][1] - yi; + dz = x[iy][2] - zi; + r = sqrt(dx*dx + dy*dy + dz*dz); + dx3 = dx / r; + dy3 = dy / r; + dz3 = dz / r; + dx = dx1 + dx2 + dx3; + dy = dy1 + dy2 + dy3; + dz = dz1 + dz2 + dz3; + r = sqrt(dx*dx + dy*dy + dz*dz); + rotate[2][0] = dx / r; + rotate[2][1] = dy / r; + rotate[2][2] = dz / r; + dot = dx2*rotate[2][0] + dy2*rotate[2][1] + dz2*rotate[2][2]; + dx = dx2 - dot*rotate[2][0]; + dy = dy2 - dot*rotate[2][1]; + dz = dz2 - dot*rotate[2][2]; + r = sqrt(dx*dx + dy*dy + dz*dz); + rotate[0][0] = dx / r; + rotate[0][1] = dy / r; + rotate[0][2] = dz / r; + } + + // finally, find rotation matrix elements for the y-axis + + rotate[1][0] = rotate[0][2]*rotate[2][1] - rotate[0][1]*rotate[2][2]; + rotate[1][1] = rotate[0][0]*rotate[2][2] - rotate[0][2]*rotate[2][0]; + rotate[1][2] = rotate[0][1]*rotate[2][0] - rotate[0][0]*rotate[2][1]; +} + +/* ---------------------------------------------------------------------- + rotsite rotates the local frame atomic multipoles at a + specified site into the global coordinate frame by applying a rotation matrix + called every timestep for each atom Isite +------------------------------------------------------------------------- */ + +void PairAmoeba::rotsite(int isite) +{ + int i,j,k,m; + double mp[3][3]; + double rp[3][3]; + + double **pole = fixpole->astore; + + // monopoles have the same value in any coordinate frame + + rpole[isite][0] = pole[isite][0]; + + // rotate the dipoles to the global coordinate frame + + for (i = 1; i <= 3; i++) { + rpole[isite][i] = 0.0; + for (j = 1; j <= 3; j++) + rpole[isite][i] += pole[isite][j] * rotate[j-1][i-1]; + } + + // rotate the quadrupoles to the global coordinate frame + + k = 4; + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { + mp[j][i] = pole[isite][k]; + rp[j][i] = 0.0; + k++; + } + } + + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { + if (j < i) rp[j][i] = rp[i][j]; + else { + for (k = 0; k < 3; k++) + for (m = 0; m < 3; m++) + rp[j][i] += rotate[k][i]*rotate[m][j] * mp[m][k]; + } + } + } + + k = 4; + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { + rpole[isite][k] = rp[j][i]; + k++; + } + } +} + +/* ---------------------------------------------------------------------- + scan standard neighbor list and make it compatible with 1-5 neighbors + if IJ entry is a 1-2,1-3,1-4 neighbor then adjust offset to SBBITS15 + else scan special15 to see if a 1-5 neighbor and adjust offset to SBBITS15 + else do nothing to IJ entry +------------------------------------------------------------------------- */ + +void PairAmoeba::add_onefive_neighbors() +{ + int i,j,k,ii,jj,which,inum,jnum,n15; + tagint jtag; + int *ilist,*jlist,*numneigh,**firstneigh; + tagint *list15; + + // test for overflow of reduced allowed size of neighbor list + + if (atom->nlocal + atom->nghost > NEIGHMASK15) + error->one(FLERR,"Pair amoeba neighbor list overflow"); + + // neigh list + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // reset special neighbor flags to include 1-5 neighbors + + tagint *tag = atom->tag; + int *nspecial15 = atom->nspecial15; + tagint **special15 = atom->special15; + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + n15 = nspecial15[i]; + list15 = special15[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + which = j >> SBBITS & 3; + j &= NEIGHMASK; + jtag = tag[j]; + + if (!which) { + for (k = 0; k < n15; k++) { + if (list15[k] == jtag) { + which = 4; + break; + } + } + } + + if (which) jlist[jj] = j ^ (which << SBBITS15); + } + } +} + +/* ---------------------------------------------------------------------- + update local indices of hydrogen neighbors for owned and ghost atoms + red2local = used for offset of hydrogen positions in Vdwl term + called on reneighboring steps, only for AMOEBA +------------------------------------------------------------------------- */ + +void PairAmoeba::find_hydrogen_neighbors() +{ + int index; + tagint id; + + // grab current ptr for redID + // redID[i] = atom ID that atom I is bonded to + // red2local[i] = local index of that atom + // for furthest away ghost atoms, bond partner can be missing + // in that case red2local = -1, but only an error if accessed in hal() + + double *redID = atom->dvector[index_redID]; + + int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; + + for (int i = 0; i < nall; i++) { + if (redID[i] == 0.0) red2local[i] = i; + else { + id = (tagint) ubuf(redID[i]).i; + index = atom->map(id); + if (index >= 0) index = domain->closest_image(i,index); + red2local[i] = index; + } + } +} + +/* ---------------------------------------------------------------------- + update local indices of bond topology neighbors for owned atoms + xyz axis2local = used for multipole orientation + called on reneighboring steps +------------------------------------------------------------------------- */ + +void PairAmoeba::find_multipole_neighbors() +{ + int index; + tagint xaxisID,yaxisID,zaxisID; + + // grab current pts for xaxis,yaxis,zaxis + // xyzaxis[i] = atom IDs that atom I uses for its multipole orientation + // can be zero if not used, in which case set local index to self + // yaxis can be negative, in which case use absolute value + + double **xyzaxis = atom->darray[index_xyzaxis]; + + int nlocal = atom->nlocal; + int nmissing = 0; + + for (int i = 0; i < nlocal; i++) { + xaxisID = (tagint) ubuf(xyzaxis[i][0]).i; + yaxisID = (tagint) ubuf(xyzaxis[i][1]).i; + zaxisID = (tagint) ubuf(xyzaxis[i][2]).i; + + if (xaxisID) { + index = atom->map(xaxisID); + if (index == -1) nmissing++; + else { + index = domain->closest_image(i,index); + xaxis2local[i] = index; + } + } else xaxis2local[i] = i; + + if (yaxisID) { + if (xyzaxis[i][1] < 0) yaxisID = -yaxisID; + index = atom->map(yaxisID); + if (index == -1) nmissing++; + else { + index = domain->closest_image(i,index); + yaxis2local[i] = index; + } + } else yaxis2local[i] = i; + + if (zaxisID) { + index = atom->map(zaxisID); + if (index == -1) nmissing++; + else { + index = domain->closest_image(i,index); + zaxis2local[i] = index; + } + } else zaxis2local[i] = i; + } + + // error check on missing neighbors + + int nmissing_all; + MPI_Allreduce(&nmissing,&nmissing_all,1,MPI_INT,MPI_SUM,world); + if (nmissing_all) + error->all(FLERR, "Pair amoeba: {} multipole neighbors missing\n", nmissing_all); +} + +/* ---------------------------------------------------------------------- + torque2force takes the torque values on a single site defined by + a local coordinate frame and converts to Cartesian forces on + the original site and sites specifying the local frame, also + gives the x,y,z-force components needed for virial computation + + force distribution for the 3-fold local frame by Chao Lu, + Ponder Lab, Washington University, July 2016 + + literature reference: + + P. L. Popelier and A. J. Stone, "Formulae for the First and + Second Derivatives of Anisotropic Potentials with Respect to + Geometrical Parameters", Molecular Physics, 82, 411-425 (1994) + + C. Segui, L. G. Pedersen and T. A. Darden, "Towards an Accurate + Representation of Electrostatics in Classical Force Fields: + Efficient Implementation of Multipolar Interactions in + Biomolecular Simulations", Journal of Chemical Physics, 120, + 73-87 (2004) + + i = single site = local atom index + trq = torque on that atom + frc xyz = returned xyz force components + f = force vector for local atoms, multiple atoms will be updated +------------------------------------------------------------------------- */ + +void PairAmoeba::torque2force(int i, double *trq, + double *frcx, double *frcy, double *frcz, + double **f) +{ + int j; + int ia,ib,ic,id; + int axetyp; + double du,dv,dw,dot; + double usiz,vsiz,wsiz; + double psiz,rsiz,ssiz; + double t1siz,t2siz; + double uvsiz,uwsiz,vwsiz; + double ursiz,ussiz; + double vssiz,wssiz; + double delsiz,dphiddel; + double uvcos,urcos; + double vscos,wscos; + double upcos,vpcos,wpcos; + double rwcos,rucos,rvcos; + double ut1cos,ut2cos; + double uvsin,ursin; + double vssin,wssin; + double rwsin,rusin,rvsin; + double ut1sin,ut2sin; + double dphidu,dphidv,dphidw; + double dphidr,dphids; + double u[3],v[3],w[3]; + double p[3],r[3],s[3]; + double t1[3],t2[3]; + double uv[3],uw[3],vw[3]; + double ur[3],us[3]; + double vs[3],ws[3]; + double del[3],eps[3]; + + double **x = atom->x; + + // zero out force components on local frame-defining atoms + + for (j = 0; j < 3; j++) { + frcz[j] = 0.0; + frcx[j] = 0.0; + frcy[j] = 0.0; + } + + // get the local frame type and the frame-defining atoms + + int *polaxe = atom->ivector[index_polaxe]; + axetyp = polaxe[i]; + if (axetyp == NOFRAME) return; + + ia = zaxis2local[i]; + ib = i; + ic = xaxis2local[i]; + id = yaxis2local[i]; + + // construct the three rotation axes for the local frame + + u[0] = x[ia][0] - x[ib][0]; + u[1] = x[ia][1] - x[ib][1]; + u[2] = x[ia][2] - x[ib][2]; + usiz = sqrt(u[0]*u[0] + u[1]*u[1] + u[2]*u[2]); + + if (axetyp != ZONLY) { + v[0] = x[ic][0] - x[ib][0]; + v[1] = x[ic][1] - x[ib][1]; + v[2] = x[ic][2] - x[ib][2]; + vsiz = sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]); + } else { + v[0] = 1.0; + v[1] = 0.0; + v[2] = 0.0; + vsiz = 1.0; + dot = u[0] / usiz; + if (fabs(dot) > 0.866) { + v[0] = 0.0; + v[1] = 1.0; + } + } + + if (axetyp == ZBISECT || axetyp == THREEFOLD) { + w[0] = x[id][0] - x[ib][0]; + w[1] = x[id][1] - x[ib][1]; + w[2] = x[id][2] - x[ib][2]; + } else { + w[0] = u[1]*v[2] - u[2]*v[1]; + w[1] = u[2]*v[0] - u[0]*v[2]; + w[2] = u[0]*v[1] - u[1]*v[0]; + } + + wsiz = sqrt(w[0]*w[0] + w[1]*w[1] + w[2]*w[2]); + + for (j = 0; j < 3; j++) { + u[j] /= usiz; + v[j] /= vsiz; + w[j] /= wsiz; + } + + // build some additional axes needed for the Z-Bisect method + + if (axetyp == ZBISECT) { + r[0] = v[0] + w[0]; + r[1] = v[1] + w[1]; + r[2] = v[2] + w[2]; + rsiz = sqrt(r[0]*r[0] + r[1]*r[1] + r[2]*r[2]); + s[0] = u[1]*r[2] - u[2]*r[1]; + s[1] = u[2]*r[0] - u[0]*r[2]; + s[2] = u[0]*r[1] - u[1]*r[0]; + ssiz = sqrt(s[0]*s[0] + s[1]*s[1] + s[2]*s[2]); + for (j = 0; j < 3; j++) { + r[j] /= rsiz; + s[j] /= ssiz; + } + } + + // find the perpendicular and angle for each pair of axes + + uv[0] = v[1]*u[2] - v[2]*u[1]; + uv[1] = v[2]*u[0] - v[0]*u[2]; + uv[2] = v[0]*u[1] - v[1]*u[0]; + uvsiz = sqrt(uv[0]*uv[0] + uv[1]*uv[1] + uv[2]*uv[2]); + uw[0] = w[1]*u[2] - w[2]*u[1]; + uw[1] = w[2]*u[0] - w[0]*u[2]; + uw[2] = w[0]*u[1] - w[1]*u[0]; + uwsiz = sqrt(uw[0]*uw[0] + uw[1]*uw[1] + uw[2]*uw[2]); + vw[0] = w[1]*v[2] - w[2]*v[1]; + vw[1] = w[2]*v[0] - w[0]*v[2]; + vw[2] = w[0]*v[1] - w[1]*v[0]; + vwsiz = sqrt(vw[0]*vw[0] + vw[1]*vw[1] + vw[2]*vw[2]); + for (j = 0; j < 3; j++) { + uv[j] /= uvsiz; + uw[j] /= uwsiz; + vw[j] /= vwsiz; + } + + if (axetyp == ZBISECT) { + ur[0] = r[1]*u[2] - r[2]*u[1]; + ur[1] = r[2]*u[0] - r[0]*u[2]; + ur[2] = r[0]*u[1] - r[1]*u[0]; + ursiz = sqrt(ur[0]*ur[0] + ur[1]*ur[1] + ur[2]*ur[2]); + us[0] = s[1]*u[2] - s[2]*u[1]; + us[1] = s[2]*u[0] - s[0]*u[2]; + us[2] = s[0]*u[1] - s[1]*u[0]; + ussiz = sqrt(us[0]*us[0] + us[1]*us[1] + us[2]*us[2]); + vs[0] = s[1]*v[2] - s[2]*v[1]; + vs[1] = s[2]*v[0] - s[0]*v[2]; + vs[2] = s[0]*v[1] - s[1]*v[0]; + vssiz = sqrt(vs[0]*vs[0] + vs[1]*vs[1] + vs[2]*vs[2]); + ws[0] = s[1]*w[2] - s[2]*w[1]; + ws[1] = s[2]*w[0] - s[0]*w[2]; + ws[2] = s[0]*w[1] - s[1]*w[0]; + wssiz = sqrt(ws[0]*ws[0] + ws[1]*ws[1] + ws[2]*ws[2]); + for (j = 0; j < 3; j++) { + ur[j] /= ursiz; + us[j] /= ussiz; + vs[j] /= vssiz; + ws[j] /= wssiz; + } + } + + // get sine and cosine of angles between the rotation axes + + uvcos = u[0]*v[0] + u[1]*v[1] + u[2]*v[2]; + uvsin = sqrt(1.0 - uvcos*uvcos); + if (axetyp == ZBISECT) { + urcos = u[0]*r[0] + u[1]*r[1] + u[2]*r[2]; + ursin = sqrt(1.0 - urcos*urcos); + vscos = v[0]*s[0] + v[1]*s[1] + v[2]*s[2]; + vssin = sqrt(1.0 - vscos*vscos); + wscos = w[0]*s[0] + w[1]*s[1] + w[2]*s[2]; + wssin = sqrt(1.0 - wscos*wscos); + } + + // compute the projection of v and w onto the ru-plane + + if (axetyp == ZBISECT) { + for (j = 0; j < 3; j++) { + t1[j] = v[j] - s[j]*vscos; + t2[j] = w[j] - s[j]*wscos; + } + t1siz = sqrt(t1[0]*t1[0] + t1[1]*t1[1] + t1[2]*t1[2]); + t2siz = sqrt(t2[0]*t2[0] + t2[1]*t2[1] + t2[2]*t2[2]); + for (j = 0; j < 3; j++) { + t1[j] /= t1siz; + t2[j] /= t2siz; + } + ut1cos = u[0]*t1[0] + u[1]*t1[1] + u[2]*t1[2]; + ut1sin = sqrt(1.0 - ut1cos*ut1cos); + ut2cos = u[0]*t2[0] + u[1]*t2[1] + u[2]*t2[2]; + ut2sin = sqrt(1.0 - ut2cos*ut2cos); + } + + // negative of dot product of torque with unit vectors gives + // result of infinitesimal rotation along these vectors + + dphidu = -trq[0]*u[0] - trq[1]*u[1] - trq[2]*u[2]; + dphidv = -trq[0]*v[0] - trq[1]*v[1] - trq[2]*v[2]; + dphidw = -trq[0]*w[0] - trq[1]*w[1] - trq[2]*w[2]; + if (axetyp == ZBISECT) { + dphidr = -trq[0]*r[0] - trq[1]*r[1] - trq[2]*r[2]; + dphids = -trq[0]*s[0] - trq[1]*s[1] - trq[2]*s[2]; + } + + // force distribution for the Z-Only local coordinate method + + if (axetyp == ZONLY) { + for (j = 0; j < 3; j++) { + du = uv[j]*dphidv/(usiz*uvsin) + uw[j]*dphidw/usiz; + f[ia][j] -= du; + f[ib][j] += du; + frcz[j] += du; + } + + // force distribution for the Z-then-X local coordinate method + + } else if (axetyp == ZTHENX) { + for (j = 0; j < 3; j++) { + du = uv[j]*dphidv/(usiz*uvsin) + uw[j]*dphidw/usiz; + dv = -uv[j]*dphidu/(vsiz*uvsin); + f[ia][j] -= du; + f[ic][j] -= dv; + f[ib][j] += du + dv; + frcz[j] += du; + frcx[j] += dv; + } + + // force distribution for the Bisector local coordinate method + + } else if (axetyp == BISECTOR) { + for (j = 0; j < 3; j++) { + du = uv[j]*dphidv/(usiz*uvsin) + 0.5*uw[j]*dphidw/usiz; + dv = -uv[j]*dphidu/(vsiz*uvsin) + 0.5*vw[j]*dphidw/vsiz; + f[ia][j] -= du; + f[ic][j] -= dv; + f[ib][j] += du + dv; + frcz[j] += du; + frcx[j] += dv; + } + + // force distribution for the Z-Bisect local coordinate method + + } else if (axetyp == ZBISECT) { + for (j = 0; j < 3; j++) { + du = ur[j]*dphidr/(usiz*ursin) + us[j]*dphids/usiz; + dv = (vssin*s[j]-vscos*t1[j])*dphidu / (vsiz*(ut1sin+ut2sin)); + dw = (wssin*s[j]-wscos*t2[j])*dphidu / (wsiz*(ut1sin+ut2sin)); + f[ia][j] -= du; + f[ic][j] -= dv; + f[id][j] -= dw; + f[ib][j] += du + dv + dw; + frcz[j] += du; + frcx[j] += dv; + frcy[j] += dw; + } + + // force distribution for the 3-Fold local coordinate method + + } else if (axetyp == THREEFOLD) { + p[0] = u[0] + v[0] + w[0]; + p[1] = u[1] + v[1] + w[1]; + p[2] = u[2] + v[2] + w[2]; + psiz = sqrt(p[0]*p[0] + p[1]*p[1] + p[2]*p[2]) ; + for (j = 0; j < 3; j++) p[j] /= psiz; + + wpcos = w[0]*p[0] + w[1]*p[1] + w[2]*p[2]; + upcos = u[0]*p[0] + u[1]*p[1] + u[2]*p[2]; + vpcos = v[0]*p[0] + v[1]*p[1] + v[2]*p[2]; + r[0] = u[0] + v[0]; + r[1] = u[1] + v[1]; + r[2] = u[2] + v[2]; + rsiz = sqrt(r[0]*r[0] + r[1]*r[1] + r[2]*r[2]); + for (j = 0; j < 3; j++) r[j] /= rsiz; + + rwcos = r[0]*w[0] + r[1]*w[1] + r[2]*w[2]; + rwsin = sqrt(1.0 - rwcos*rwcos); + dphidr = -trq[0]*r[0] - trq[1]*r[1] - trq[2]*r[2]; + del[0] = r[1]*w[2] - r[2]*w[1]; + del[1] = r[2]*w[0] - r[0]*w[2] ; + del[2] = r[0]*w[1] - r[1]*w[0]; + delsiz = sqrt(del[0]*del[0] + del[1]*del[1] + del[2]*del[2]); + for (j = 0; j < 3; j++) del[j] /= delsiz; + + dphiddel = -trq[0]*del[0] - trq[1]*del[1] - trq[2]*del[2]; + eps[0] = del[1]*w[2] - del[2]*w[1]; + eps[1] = del[2]*w[0] - del[0]*w[2]; + eps[2] = del[0]*w[1] - del[1]*w[0]; + for (j = 0; j < 3; j++) { + dw = del[j]*dphidr/(wsiz*rwsin) + eps[j]*dphiddel*wpcos/(wsiz*psiz); + f[id][j] -= dw; + f[ib][j] += dw; + frcy[j] += dw; + } + r[0] = v[0] + w[0]; + r[1] = v[1] + w[1]; + r[2] = v[2] + w[2]; + rsiz = sqrt(r[0]*r[0] + r[1]*r[1] + r[2]*r[2]); + for (j = 0; j < 3; j++) r[j] /= rsiz; + + rucos = r[0]*u[0] + r[1]*u[1] + r[2]*u[2]; + rusin = sqrt(1.0 - rucos*rucos) ; + dphidr = -trq[0]*r[0] - trq[1]*r[1] - trq[2]*r[2]; + del[0] = r[1]*u[2] - r[2]*u[1]; + del[1] = r[2]*u[0] - r[0]*u[2]; + del[2] = r[0]*u[1] - r[1]*u[0]; + delsiz = sqrt(del[0]*del[0] + del[1]*del[1] + del[2]*del[2]); + for (j = 0; j < 3; j++) del[j] /= delsiz; + + dphiddel = -trq[0]*del[0] - trq[1]*del[1] - trq[2]*del[2]; + eps[0] = del[1]*u[2] - del[2]*u[1]; + eps[1] = del[2]*u[0] - del[0]*u[2]; + eps[2] = del[0]*u[1] - del[1]*u[0]; + for (j = 0; j < 3; j++) { + du = del[j]*dphidr/(usiz*rusin) + eps[j]*dphiddel*upcos/(usiz*psiz); + f[ia][j] -= du; + f[ib][j] += du; + frcz[j] += du; + } + r[0] = u[0] + w[0]; + r[1] = u[1] + w[1]; + r[2] = u[2] + w[2]; + rsiz = sqrt(r[0]*r[0] + r[1]*r[1] + r[2]*r[2]); + for (j = 0; j < 3; j++) r[j] /= rsiz; + + rvcos = r[0]*v[0] + r[1]*v[1] + r[2]*v[2] ; + rvsin = sqrt(1.0 - rvcos*rvcos); + dphidr = -trq[0]*r[0] - trq[1]*r[1] - trq[2]*r[2]; + del[0] = r[1]*v[2] - r[2]*v[1]; + del[1] = r[2]*v[0] - r[0]*v[2]; + del[2] = r[0]*v[1] - r[1]*v[0]; + delsiz = sqrt(del[0]*del[0] + del[1]*del[1] + del[2]*del[2]); + for (j = 0; j < 3; j++) del[j] /= delsiz; + + dphiddel = -trq[0]*del[0] - trq[1]*del[1] - trq[2]*del[2]; + eps[0] = del[1]*v[2] - del[2]*v[1]; + eps[1] = del[2]*v[0] - del[0]*v[2]; + eps[2] = del[0]*v[1] - del[1]*v[0]; + for (j = 0; j < 3; j++) { + dv = del[j]*dphidr/(vsiz*rvsin) + eps[j]*dphiddel*vpcos/(vsiz*psiz); + f[ic][j] -= dv; + f[ib][j] += dv; + frcx[j] += dv; + } + } +} diff --git a/src/AMOEBA/angle_amoeba.cpp b/src/AMOEBA/angle_amoeba.cpp new file mode 100644 index 0000000000..4b9342f058 --- /dev/null +++ b/src/AMOEBA/angle_amoeba.cpp @@ -0,0 +1,866 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "angle_amoeba.h" + +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "math_const.h" +#include "memory.h" +#include "neighbor.h" +#include "pair.h" + +#include +#include + +using namespace LAMMPS_NS; +using namespace MathConst; + +#define SMALL 0.001 + +/* ---------------------------------------------------------------------- */ + +AngleAmoeba::AngleAmoeba(LAMMPS *lmp) : Angle(lmp) +{ + pflag = nullptr; + ubflag = nullptr; + + theta0 = nullptr; + k2 = nullptr; + k3 = nullptr; + k4 = nullptr; + k5 = nullptr; + k6 = nullptr; + + ba_k1 = nullptr; + ba_k2 = nullptr; + ba_r1 = nullptr; + ba_r2 = nullptr; + + ub_k = nullptr; + ub_r0 = nullptr; +} + +/* ---------------------------------------------------------------------- */ + +AngleAmoeba::~AngleAmoeba() +{ + if (copymode) return; + + if (allocated) { + memory->destroy(setflag); + memory->destroy(setflag_a); + memory->destroy(setflag_ba); + memory->destroy(setflag_ub); + + memory->destroy(pflag); + memory->destroy(ubflag); + + memory->destroy(theta0); + memory->destroy(k2); + memory->destroy(k3); + memory->destroy(k4); + memory->destroy(k5); + memory->destroy(k6); + + memory->destroy(ba_k1); + memory->destroy(ba_k2); + memory->destroy(ba_r1); + memory->destroy(ba_r2); + + memory->destroy(ub_k); + memory->destroy(ub_r0); + } +} + +/* ---------------------------------------------------------------------- */ + +void AngleAmoeba::compute(int eflag, int vflag) +{ + int i1,i2,i3,n,type,tflag,uflag; + + int **anglelist = neighbor->anglelist; + int **nspecial = atom->nspecial; + int nanglelist = neighbor->nanglelist; + + ev_init(eflag,vflag); + + for (n = 0; n < nanglelist; n++) { + i1 = anglelist[n][0]; + i2 = anglelist[n][1]; + i3 = anglelist[n][2]; + type = anglelist[n][3]; + + // tflag = 0 for "angle", 1 for "anglep" in Tinker PRM file + // atom 2 must have exactly 3 bond partners to invoke anglep() variant + + if (enable_angle) { + tflag = pflag[type]; + + if (tflag && nspecial[i2][0] == 3) + tinker_anglep(i1,i2,i3,type,eflag); + else + tinker_angle(i1,i2,i3,type,eflag); + + // bondangle = bond-stretch cross term in Tinker + + if (ba_k1[type] != 0.0) + tinker_bondangle(i1,i2,i3,type,eflag); + } + + // Urey-Bradley H-H bond term within water molecules + + if (enable_urey) { + uflag = ubflag[type]; + if (uflag) tinker_urey_bradley(i1,i3,type,eflag); + } + } +} + +/* ---------------------------------------------------------------------- */ + +void AngleAmoeba::tinker_angle(int i1, int i2, int i3, int type, int eflag) +{ + double delx1,dely1,delz1,delx2,dely2,delz2; + double eangle,f1[3],f3[3]; + double dtheta,dtheta2,dtheta3,dtheta4,dtheta5,dtheta6,de_angle; + double rsq1,rsq2,r1,r2,c,s,a; + double a11,a12,a22; + + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + int newton_bond = force->newton_bond; + + // 1st bond + + delx1 = x[i1][0] - x[i2][0]; + dely1 = x[i1][1] - x[i2][1]; + delz1 = x[i1][2] - x[i2][2]; + + rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1; + r1 = sqrt(rsq1); + + // 2nd bond + + delx2 = x[i3][0] - x[i2][0]; + dely2 = x[i3][1] - x[i2][1]; + delz2 = x[i3][2] - x[i2][2]; + + rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2; + r2 = sqrt(rsq2); + + // angle (cos and sin) + + c = delx1*delx2 + dely1*dely2 + delz1*delz2; + c /= r1*r2; + + if (c > 1.0) c = 1.0; + if (c < -1.0) c = -1.0; + + s = sqrt(1.0 - c*c); + if (s < SMALL) s = SMALL; + s = 1.0/s; + + // force & energy for angle term + + dtheta = acos(c) - theta0[type]; + dtheta2 = dtheta*dtheta; + dtheta3 = dtheta2*dtheta; + dtheta4 = dtheta3*dtheta; + dtheta5 = dtheta4*dtheta; + dtheta6 = dtheta5*dtheta; + + de_angle = 2.0*k2[type]*dtheta + 3.0*k3[type]*dtheta2 + + 4.0*k4[type]*dtheta3 + 5.0*k5[type]*dtheta4 + 6.0*k6[type]*dtheta5; + + a = -de_angle*s; + a11 = a*c / rsq1; + a12 = -a / (r1*r2); + a22 = a*c / rsq2; + + f1[0] = a11*delx1 + a12*delx2; + f1[1] = a11*dely1 + a12*dely2; + f1[2] = a11*delz1 + a12*delz2; + + f3[0] = a22*delx2 + a12*delx1; + f3[1] = a22*dely2 + a12*dely1; + f3[2] = a22*delz2 + a12*delz1; + + eangle = 0.0; + if (eflag) eangle = k2[type]*dtheta2 + k3[type]*dtheta3 + + k4[type]*dtheta4 + k5[type]*dtheta5 + k6[type]*dtheta6; + + // apply force to each of 3 atoms + + if (newton_bond || i1 < nlocal) { + f[i1][0] += f1[0]; + f[i1][1] += f1[1]; + f[i1][2] += f1[2]; + } + + if (newton_bond || i2 < nlocal) { + f[i2][0] -= f1[0] + f3[0]; + f[i2][1] -= f1[1] + f3[1]; + f[i2][2] -= f1[2] + f3[2]; + } + + if (newton_bond || i3 < nlocal) { + f[i3][0] += f3[0]; + f[i3][1] += f3[1]; + f[i3][2] += f3[2]; + } + + if (evflag) ev_tally(i1,i2,i3,nlocal,newton_bond,eangle,f1,f3, + delx1,dely1,delz1,delx2,dely2,delz2); +} + +/* ---------------------------------------------------------------------- */ + +void AngleAmoeba::tinker_anglep(int i1, int i2, int i3, int type, int eflag) +{ + int i4; + tagint i1tag,i3tag,i4tag; + double xia,yia,zia,xib,yib,zib,xic,yic,zic,xid,yid,zid; + double xad,yad,zad,xbd,ybd,zbd,xcd,ycd,zcd; + double xt,yt,zt,rt2; + double xip,yip,zip,xap,yap,zap,xcp,ycp,zcp; + double rap2,rcp2; + double dtheta,dtheta2,dtheta3,dtheta4,dtheta5,dtheta6; + double xm,ym,zm,rm,dot; + double cosine,eangle,deddt; + double dedxip,dedyip,dedzip,dpdxia,dpdyia,dpdzia,dpdxic,dpdyic,dpdzic; + double delta,delta2,ptrt2,term,terma,termc; + double f1[3],f2[3],f3[3],f4[3]; + + double **x = atom->x; + double **f = atom->f; + tagint **special = atom->special; + int nlocal = atom->nlocal; + int newton_bond = force->newton_bond; + + // i4 = index of third atom that i2 is bonded to + + i1tag = atom->tag[i1]; + i3tag = atom->tag[i3]; + + for (int ibond = 0; ibond < 3; ibond++) { + i4tag = special[i2][ibond]; + if (i4tag != i1tag && i4tag != i3tag) break; + } + + i4 = atom->map(i4tag); + i4 = domain->closest_image(i2,i4); + + // anglep out-of-plane calculation from Tinker + + xia = x[i1][0]; + yia = x[i1][1]; + zia = x[i1][2]; + xib = x[i2][0]; + yib = x[i2][1]; + zib = x[i2][2]; + xic = x[i3][0]; + yic = x[i3][1]; + zic = x[i3][2]; + xid = x[i4][0]; + yid = x[i4][1]; + zid = x[i4][2]; + + xad = xia - xid; + yad = yia - yid; + zad = zia - zid; + xbd = xib - xid; + ybd = yib - yid; + zbd = zib - zid; + xcd = xic - xid; + ycd = yic - yid; + zcd = zic - zid; + + xt = yad*zcd - zad*ycd; + yt = zad*xcd - xad*zcd; + zt = xad*ycd - yad*xcd; + rt2 = xt*xt + yt*yt + zt*zt; + delta = -(xt*xbd + yt*ybd + zt*zbd) / rt2; + xip = xib + xt*delta; + yip = yib + yt*delta; + zip = zib + zt*delta; + xap = xia - xip; + yap = yia - yip; + zap = zia - zip; + xcp = xic - xip; + ycp = yic - yip; + zcp = zic - zip; + rap2 = xap*xap + yap*yap + zap*zap; + rcp2 = xcp*xcp + ycp*ycp + zcp*zcp; + + // Tinker just skips the computation in either is zero + + if (rap2 == 0.0 || rcp2 == 0.0) return; + + xm = ycp*zap - zcp*yap; + ym = zcp*xap - xcp*zap; + zm = xcp*yap - ycp*xap; + rm = sqrt(xm*xm + ym*ym + zm*zm); + rm = MAX(rm,0.0001); + dot = xap*xcp + yap*ycp + zap*zcp; + cosine = dot / sqrt(rap2*rcp2); + cosine = MIN(1.0,MAX(-1.0,cosine)); + + // force & energy for angle term + + dtheta = acos(cosine) - theta0[type]; + dtheta2 = dtheta*dtheta; + dtheta3 = dtheta2*dtheta; + dtheta4 = dtheta3*dtheta; + dtheta5 = dtheta4*dtheta; + dtheta6 = dtheta5*dtheta; + + deddt = 2.0*k2[type]*dtheta + 3.0*k3[type]*dtheta2 + + 4.0*k4[type]*dtheta3 + 5.0*k5[type]*dtheta4 + 6.0*k6[type]*dtheta5; + + eangle = 0.0; + if (eflag) eangle = k2[type]*dtheta2 + k3[type]*dtheta3 + + k4[type]*dtheta4 + k5[type]*dtheta5 + k6[type]*dtheta6; + + // chain rule terms for first derivative components + + terma = -deddt / (rap2*rm); + termc = deddt / (rcp2*rm); + f1[0] = terma * (yap*zm-zap*ym); + f1[1] = terma * (zap*xm-xap*zm); + f1[2] = terma * (xap*ym-yap*xm); + f3[0] = termc * (ycp*zm-zcp*ym); + f3[1] = termc * (zcp*xm-xcp*zm); + f3[2] = termc * (xcp*ym-ycp*xm); + dedxip = -f1[0] - f3[0]; + dedyip = -f1[1] - f3[1]; + dedzip = -f1[2] - f3[2]; + + // chain rule components for the projection of the central atom + + delta2 = 2.0 * delta; + ptrt2 = (dedxip*xt + dedyip*yt + dedzip*zt) / rt2; + term = (zcd*ybd-ycd*zbd) + delta2*(yt*zcd-zt*ycd); + dpdxia = delta*(ycd*dedzip-zcd*dedyip) + term*ptrt2; + term = (xcd*zbd-zcd*xbd) + delta2*(zt*xcd-xt*zcd); + dpdyia = delta*(zcd*dedxip-xcd*dedzip) + term*ptrt2; + term = (ycd*xbd-xcd*ybd) + delta2*(xt*ycd-yt*xcd); + dpdzia = delta*(xcd*dedyip-ycd*dedxip) + term*ptrt2; + term = (yad*zbd-zad*ybd) + delta2*(zt*yad-yt*zad); + dpdxic = delta*(zad*dedyip-yad*dedzip) + term*ptrt2; + term = (zad*xbd-xad*zbd) + delta2*(xt*zad-zt*xad); + dpdyic = delta*(xad*dedzip-zad*dedxip) + term*ptrt2; + term = (xad*ybd-yad*xbd) + delta2*(yt*xad-xt*yad); + dpdzic = delta*(yad*dedxip-xad*dedyip) + term*ptrt2; + + // compute derivative components for this interaction + + f1[0] += dpdxia; + f1[1] += dpdyia; + f1[2] += dpdzia; + f2[0] = dedxip; + f2[1] = dedyip; + f2[2] = dedzip; + f3[0] += dpdxic; + f3[1] += dpdyic; + f3[2] += dpdzic; + f4[0] = -f1[0] - f2[0] - f3[0]; + f4[1] = -f1[1] - f2[1] - f3[1]; + f4[2] = -f1[2] - f2[2] - f3[2]; + + // apply force to each of 4 atoms + + if (newton_bond || i1 < nlocal) { + f[i1][0] -= f1[0]; + f[i1][1] -= f1[1]; + f[i1][2] -= f1[2]; + } + + if (newton_bond || i2 < nlocal) { + f[i2][0] -= f2[0]; + f[i2][1] -= f2[1]; + f[i2][2] -= f2[2]; + } + + if (newton_bond || i3 < nlocal) { + f[i3][0] -= f3[0]; + f[i3][1] -= f3[1]; + f[i3][2] -= f3[2]; + } + + if (newton_bond || i4 < nlocal) { + f[i4][0] -= f4[0]; + f[i4][1] -= f4[1]; + f[i4][2] -= f4[2]; + } + + if (evflag) { + f1[0] = -f1[0]; f1[1] = -f1[1]; f1[2] = -f1[2]; + f2[0] = -f2[0]; f2[1] = -f2[1]; f2[2] = -f2[2]; + f3[0] = -f3[0]; f3[1] = -f3[1]; f3[2] = -f3[2]; + f4[0] = -f4[0]; f4[1] = -f4[1]; f4[2] = -f4[2]; + ev_tally4(i1,i2,i3,i4,nlocal,newton_bond,eangle,f1,f2,f3,f4); + } +} + +/* ---------------------------------------------------------------------- */ + +void AngleAmoeba::tinker_bondangle(int i1, int i2, int i3, int type, int eflag) +{ + double delx1,dely1,delz1,delx2,dely2,delz2; + double rsq1,r1,rsq2,r2,c,s,dtheta; + double dr1,dr2,aa1,aa2,b1,b2; + double aa11,aa12,aa21,aa22; + double vx11,vx12,vy11,vy12,vz11,vz12,vx21,vx22,vy21,vy22,vz21,vz22; + double eangle,f1[3],f3[3]; + + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + int newton_bond = force->newton_bond; + + // 1st bond + + delx1 = x[i1][0] - x[i2][0]; + dely1 = x[i1][1] - x[i2][1]; + delz1 = x[i1][2] - x[i2][2]; + + rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1; + r1 = sqrt(rsq1); + + // 2nd bond + + delx2 = x[i3][0] - x[i2][0]; + dely2 = x[i3][1] - x[i2][1]; + delz2 = x[i3][2] - x[i2][2]; + + rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2; + r2 = sqrt(rsq2); + + // angle (cos and sin) + + c = delx1*delx2 + dely1*dely2 + delz1*delz2; + c /= r1*r2; + + if (c > 1.0) c = 1.0; + if (c < -1.0) c = -1.0; + + s = sqrt(1.0 - c*c); + if (s < SMALL) s = SMALL; + s = 1.0/s; + + dtheta = acos(c) - theta0[type]; + + // force & energy for bond-angle term + + dr1 = r1 - ba_r1[type]; + dr2 = r2 - ba_r2[type]; + + aa1 = s * dr1 * ba_k1[type]; + aa2 = s * dr2 * ba_k2[type]; + + aa11 = aa1 * c / rsq1; + aa12 = -aa1 / (r1 * r2); + aa21 = aa2 * c / rsq1; + aa22 = -aa2 / (r1 * r2); + + vx11 = (aa11 * delx1) + (aa12 * delx2); + vx12 = (aa21 * delx1) + (aa22 * delx2); + vy11 = (aa11 * dely1) + (aa12 * dely2); + vy12 = (aa21 * dely1) + (aa22 * dely2); + vz11 = (aa11 * delz1) + (aa12 * delz2); + vz12 = (aa21 * delz1) + (aa22 * delz2); + + aa11 = aa1 * c / rsq2; + aa21 = aa2 * c / rsq2; + + vx21 = (aa11 * delx2) + (aa12 * delx1); + vx22 = (aa21 * delx2) + (aa22 * delx1); + vy21 = (aa11 * dely2) + (aa12 * dely1); + vy22 = (aa21 * dely2) + (aa22 * dely1); + vz21 = (aa11 * delz2) + (aa12 * delz1); + vz22 = (aa21 * delz2) + (aa22 * delz1); + + b1 = ba_k1[type] * dtheta / r1; + b2 = ba_k2[type] * dtheta / r2; + + f1[0] = -(vx11 + b1*delx1 + vx12); + f1[1] = -(vy11 + b1*dely1 + vy12); + f1[2] = -(vz11 + b1*delz1 + vz12); + + f3[0] = -(vx21 + b2*delx2 + vx22); + f3[1] = -(vy21 + b2*dely2 + vy22); + f3[2] = -(vz21 + b2*delz2 + vz22); + + eangle = 0.0; + if (eflag) eangle = ba_k1[type]*dr1*dtheta + ba_k2[type]*dr2*dtheta; + + // apply force to each of 3 atoms + + if (newton_bond || i1 < nlocal) { + f[i1][0] += f1[0]; + f[i1][1] += f1[1]; + f[i1][2] += f1[2]; + } + + if (newton_bond || i2 < nlocal) { + f[i2][0] -= f1[0] + f3[0]; + f[i2][1] -= f1[1] + f3[1]; + f[i2][2] -= f1[2] + f3[2]; + } + + if (newton_bond || i3 < nlocal) { + f[i3][0] += f3[0]; + f[i3][1] += f3[1]; + f[i3][2] += f3[2]; + } + + if (evflag) ev_tally(i1,i2,i3,nlocal,newton_bond,eangle,f1,f3, + delx1,dely1,delz1,delx2,dely2,delz2); +} + +/* ---------------------------------------------------------------------- */ + +void AngleAmoeba::tinker_urey_bradley(int i1, int i2, int type, int eflag) +{ + double delx,dely,delz; + double rsq,r,dr,rk; + double fbond,ebond; + + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + int newton_bond = force->newton_bond; + + delx = x[i1][0] - x[i2][0]; + dely = x[i1][1] - x[i2][1]; + delz = x[i1][2] - x[i2][2]; + + rsq = delx*delx + dely*dely + delz*delz; + r = sqrt(rsq); + dr = r - ub_r0[type]; + rk = ub_k[type] * dr; + + // force & energy + + if (r > 0.0) fbond = -2.0*rk/r; + else fbond = 0.0; + + if (eflag) ebond = rk*dr; + + // apply force to each of 2 atoms + + if (newton_bond || i1 < nlocal) { + f[i1][0] += delx*fbond; + f[i1][1] += dely*fbond; + f[i1][2] += delz*fbond; + } + + if (newton_bond || i2 < nlocal) { + f[i2][0] -= delx*fbond; + f[i2][1] -= dely*fbond; + f[i2][2] -= delz*fbond; + } + + if (evflag) ev_tally2(i1,i2,nlocal,newton_bond,ebond,fbond,delx,dely,delz); +} + +/* ---------------------------------------------------------------------- */ + +void AngleAmoeba::allocate() +{ + allocated = 1; + int n = atom->nangletypes; + + memory->create(pflag,n+1,"angle:pflag"); + memory->create(ubflag,n+1,"angle:ubflag"); + memory->create(theta0,n+1,"angle:theta0"); + memory->create(k2,n+1,"angle:k2"); + memory->create(k3,n+1,"angle:k3"); + memory->create(k4,n+1,"angle:k4"); + memory->create(k5,n+1,"angle:k5"); + memory->create(k6,n+1,"angle:k6"); + + memory->create(ba_k1,n+1,"angle:ba_k1"); + memory->create(ba_k2,n+1,"angle:ba_k2"); + memory->create(ba_r1,n+1,"angle:ba_r1"); + memory->create(ba_r2,n+1,"angle:ba_r2"); + + memory->create(ub_k,n+1,"angle:ub_k"); + memory->create(ub_r0,n+1,"angle:ub_r0"); + + memory->create(setflag,n+1,"angle:setflag"); + memory->create(setflag_a,n+1,"angle:setflag_a"); + memory->create(setflag_ba,n+1,"angle:setflag_ba"); + memory->create(setflag_ub,n+1,"angle:setflag_ub"); + + for (int i = 1; i <= n; i++) + setflag[i] = setflag_a[i] = setflag_ba[i] = setflag_ub[i] = 0; +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more types +------------------------------------------------------------------------- */ + +void AngleAmoeba::coeff(int narg, char **arg) +{ + if (narg < 2) error->all(FLERR,"Incorrect args for angle coefficients"); + if (!allocated) allocate(); + + int ilo,ihi; + utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error); + + int count = 0; + + if (strcmp(arg[1],"ba") == 0) { + if (narg != 6) error->all(FLERR,"Incorrect args for angle coefficients"); + + double ba_k1_one = utils::numeric(FLERR,arg[2],false,lmp); + double ba_k2_one = utils::numeric(FLERR,arg[3],false,lmp); + double ba_r1_one = utils::numeric(FLERR,arg[4],false,lmp); + double ba_r2_one = utils::numeric(FLERR,arg[5],false,lmp); + + for (int i = ilo; i <= ihi; i++) { + ba_k1[i] = ba_k1_one; + ba_k2[i] = ba_k2_one; + ba_r1[i] = ba_r1_one; + ba_r2[i] = ba_r2_one; + setflag_ba[i] = 1; + count++; + } + + } else if (strcmp(arg[1],"ub") == 0) { + if (narg != 4) error->all(FLERR,"Incorrect args for angle coefficients"); + + double ub_k_one = utils::numeric(FLERR,arg[2],false,lmp); + double ub_r0_one = utils::numeric(FLERR,arg[3],false,lmp); + + for (int i = ilo; i <= ihi; i++) { + ub_k[i] = ub_k_one; + ub_r0[i] = ub_r0_one; + setflag_ub[i] = 1; + count++; + } + + } else { + if (narg != 9) error->all(FLERR,"Incorrect args for angle coefficients"); + + int pflag_one = utils::inumeric(FLERR,arg[1],false,lmp); + int ubflag_one = utils::inumeric(FLERR,arg[2],false,lmp); + double theta0_one = utils::numeric(FLERR,arg[3],false,lmp); + double k2_one = utils::numeric(FLERR,arg[4],false,lmp); + double k3_one = utils::numeric(FLERR,arg[5],false,lmp); + double k4_one = utils::numeric(FLERR,arg[6],false,lmp); + double k5_one = utils::numeric(FLERR,arg[7],false,lmp); + double k6_one = utils::numeric(FLERR,arg[8],false,lmp); + + // convert theta0 from degrees to radians + + for (int i = ilo; i <= ihi; i++) { + pflag[i] = pflag_one; + ubflag[i] = ubflag_one; + theta0[i] = theta0_one/180.0 * MY_PI; + k2[i] = k2_one; + k3[i] = k3_one; + k4[i] = k4_one; + k5[i] = k5_one; + k6[i] = k6_one; + setflag_a[i] = 1; + count++; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for angle coefficients"); + + for (int i = ilo; i <= ihi; i++) + if (setflag_a[i] == 1 && setflag_ba[i] == 1 && setflag_ub[i]) + setflag[i] = 1; +} + +/* ---------------------------------------------------------------------- */ + +void AngleAmoeba::init_style() +{ + // check if PairAmoeba or PairHippo disabled angle or Urey-Bradley terms + + Pair *pair = nullptr; + pair = force->pair_match("amoeba",1,0); + if (!pair) pair = force->pair_match("hippo",1,0); + + if (!pair) enable_angle = enable_urey = 1; + else { + int tmp; + enable_angle = *((int *) pair->extract("angle_flag",tmp)); + enable_urey = *((int *) pair->extract("urey_flag",tmp)); + } +} + +/* ---------------------------------------------------------------------- */ + +double AngleAmoeba::equilibrium_angle(int i) +{ + return theta0[i]; +} + +/* ---------------------------------------------------------------------- + proc 0 writes out coeffs to restart file +------------------------------------------------------------------------- */ + +void AngleAmoeba::write_restart(FILE *fp) +{ + fwrite(&pflag[1],sizeof(int),atom->nangletypes,fp); + fwrite(&ubflag[1],sizeof(int),atom->nangletypes,fp); + + fwrite(&theta0[1],sizeof(double),atom->nangletypes,fp); + fwrite(&k2[1],sizeof(double),atom->nangletypes,fp); + fwrite(&k3[1],sizeof(double),atom->nangletypes,fp); + fwrite(&k4[1],sizeof(double),atom->nangletypes,fp); + fwrite(&k5[1],sizeof(double),atom->nangletypes,fp); + fwrite(&k6[1],sizeof(double),atom->nangletypes,fp); + + fwrite(&ba_k1[1],sizeof(double),atom->nangletypes,fp); + fwrite(&ba_k2[1],sizeof(double),atom->nangletypes,fp); + fwrite(&ba_r1[1],sizeof(double),atom->nangletypes,fp); + fwrite(&ba_r2[1],sizeof(double),atom->nangletypes,fp); + + fwrite(&ub_k[1],sizeof(double),atom->nangletypes,fp); + fwrite(&ub_r0[1],sizeof(double),atom->nangletypes,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads coeffs from restart file, bcasts them +------------------------------------------------------------------------- */ + +void AngleAmoeba::read_restart(FILE *fp) +{ + allocate(); + + if (comm->me == 0) { + utils::sfread(FLERR,&pflag[1],sizeof(int),atom->nangletypes,fp,nullptr,error); + utils::sfread(FLERR,&ubflag[1],sizeof(int),atom->nangletypes, + fp,nullptr,error); + + utils::sfread(FLERR,&theta0[1],sizeof(double),atom->nangletypes, + fp,nullptr,error); + utils::sfread(FLERR,&k2[1],sizeof(double),atom->nangletypes,fp,nullptr,error); + utils::sfread(FLERR,&k3[1],sizeof(double),atom->nangletypes,fp,nullptr,error); + utils::sfread(FLERR,&k4[1],sizeof(double),atom->nangletypes,fp,nullptr,error); + utils::sfread(FLERR,&k5[1],sizeof(double),atom->nangletypes,fp,nullptr,error); + utils::sfread(FLERR,&k6[1],sizeof(double),atom->nangletypes,fp,nullptr,error); + + utils::sfread(FLERR,&ba_k1[1],sizeof(double),atom->nangletypes, + fp,nullptr,error); + utils::sfread(FLERR,&ba_k2[1],sizeof(double),atom->nangletypes, + fp,nullptr,error); + utils::sfread(FLERR,&ba_r1[1],sizeof(double),atom->nangletypes, + fp,nullptr,error); + utils::sfread(FLERR,&ba_r2[1],sizeof(double),atom->nangletypes, + fp,nullptr,error); + + utils::sfread(FLERR,&ub_k[1],sizeof(double),atom->nangletypes, + fp,nullptr,error); + utils::sfread(FLERR,&ub_r0[1],sizeof(double),atom->nangletypes, + fp,nullptr,error); + } + + MPI_Bcast(&pflag[1],atom->nangletypes,MPI_INT,0,world); + MPI_Bcast(&ubflag[1],atom->nangletypes,MPI_INT,0,world); + MPI_Bcast(&theta0[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&k2[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&k3[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&k4[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&k5[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&k6[1],atom->nangletypes,MPI_DOUBLE,0,world); + + MPI_Bcast(&ba_k1[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&ba_k2[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&ba_r1[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&ba_r2[1],atom->nangletypes,MPI_DOUBLE,0,world); + + MPI_Bcast(&ub_k[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&ub_r0[1],atom->nangletypes,MPI_DOUBLE,0,world); + + for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void AngleAmoeba::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->nangletypes; i++) + fprintf(fp,"%d %d %d %g %g %g %g %g %g\n", + i,pflag[i],ubflag[i],theta0[i]/MY_PI*180.0, + k2[i],k3[i],k4[i],k5[i],k6[i]); + + fprintf(fp,"\nBondAngle Coeffs\n\n"); + for (int i = 1; i <= atom->nangletypes; i++) + fprintf(fp,"%d %g %g %g %g\n",i,ba_k1[i],ba_k2[i],ba_r1[i],ba_r2[i]); + + fprintf(fp,"\nUreyBradley Coeffs\n\n"); + for (int i = 1; i <= atom->nangletypes; i++) + fprintf(fp,"%d %g %g\n",i,ub_k[i],ub_r0[i]); +} + +/* ---------------------------------------------------------------------- + only computes tinker_angle() and tinker_bondangle() + does not compute tinker_anglep() and tinker_urey_bradley() +---------------------------------------------------------------------- */ + +double AngleAmoeba::single(int type, int i1, int i2, int i3) +{ + double **x = atom->x; + + double delx1 = x[i1][0] - x[i2][0]; + double dely1 = x[i1][1] - x[i2][1]; + double delz1 = x[i1][2] - x[i2][2]; + domain->minimum_image(delx1,dely1,delz1); + double r1 = sqrt(delx1*delx1 + dely1*dely1 + delz1*delz1); + + double delx2 = x[i3][0] - x[i2][0]; + double dely2 = x[i3][1] - x[i2][1]; + double delz2 = x[i3][2] - x[i2][2]; + domain->minimum_image(delx2,dely2,delz2); + double r2 = sqrt(delx2*delx2 + dely2*dely2 + delz2*delz2); + + double c = delx1*delx2 + dely1*dely2 + delz1*delz2; + c /= r1*r2; + if (c > 1.0) c = 1.0; + if (c < -1.0) c = -1.0; + + double s = sqrt(1.0 - c*c); + if (s < SMALL) s = SMALL; + s = 1.0/s; + + double dtheta = acos(c) - theta0[type]; + double dtheta2 = dtheta*dtheta; + double dtheta3 = dtheta2*dtheta; + double dtheta4 = dtheta3*dtheta; + double dtheta5 = dtheta4*dtheta; + double dtheta6 = dtheta5*dtheta; + + double energy = k2[type]*dtheta2 + k3[type]*dtheta3 + k4[type]*dtheta4 + + k5[type]*dtheta5 + k6[type]*dtheta6; + + double dr1 = r1 - ba_r1[type]; + double dr2 = r2 - ba_r2[type]; + energy += ba_k1[type]*dr1*dtheta + ba_k2[type]*dr2*dtheta; + + return energy; +} diff --git a/src/AMOEBA/angle_amoeba.h b/src/AMOEBA/angle_amoeba.h new file mode 100644 index 0000000000..de9bd42ca5 --- /dev/null +++ b/src/AMOEBA/angle_amoeba.h @@ -0,0 +1,57 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef ANGLE_CLASS +// clang-format off +AngleStyle(amoeba,AngleAmoeba); +// clang-format on +#else + +#ifndef LMP_ANGLE_AMOEBA_H +#define LMP_ANGLE_AMOEBA_H + +#include "angle.h" + +namespace LAMMPS_NS { + +class AngleAmoeba : public Angle { + public: + AngleAmoeba(class LAMMPS *); + ~AngleAmoeba() override; + void compute(int, int) override; + void coeff(int, char **) override; + void init_style() override; + double equilibrium_angle(int) override; + void write_restart(FILE *) override; + void read_restart(FILE *) override; + void write_data(FILE *) override; + double single(int, int, int, int) override; + + protected: + int *pflag, *ubflag; + double *theta0, *k2, *k3, *k4, *k5, *k6; + double *ba_k1, *ba_k2, *ba_r1, *ba_r2; + double *ub_k, *ub_r0; + int *setflag_a, *setflag_ba, *setflag_ub; + + int enable_angle, enable_urey; + + void tinker_angle(int, int, int, int, int); + void tinker_anglep(int, int, int, int, int); + void tinker_bondangle(int, int, int, int, int); + void tinker_urey_bradley(int, int, int, int); + void allocate(); +}; +} // namespace LAMMPS_NS +#endif +#endif diff --git a/src/AMOEBA/atom_vec_amoeba.cpp b/src/AMOEBA/atom_vec_amoeba.cpp new file mode 100644 index 0000000000..71f614dc40 --- /dev/null +++ b/src/AMOEBA/atom_vec_amoeba.cpp @@ -0,0 +1,226 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "atom_vec_amoeba.h" + +#include "atom.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +AtomVecAmoeba::AtomVecAmoeba(LAMMPS *lmp) : AtomVec(lmp) +{ + molecular = 1; + bonds_allow = angles_allow = dihedrals_allow = impropers_allow = 1; + mass_type = 1; + + atom->molecule_flag = atom->q_flag = 1; + atom->nspecial15_flag = 1; + + // strings with peratom variables to include in each AtomVec method + // strings cannot contain fields in corresponding AtomVec default strings + // order of fields in a string does not matter + // except: fields_data_atom & fields_data_vel must match data file + + // clang-format off + fields_grow = {"q", "molecule", "num_bond", "bond_type", "bond_atom", "num_angle", "angle_type", + "angle_atom1", "angle_atom2", "angle_atom3", "num_dihedral", "dihedral_type", "dihedral_atom1", + "dihedral_atom2", "dihedral_atom3", "dihedral_atom4", "num_improper", "improper_type", + "improper_atom1", "improper_atom2", "improper_atom3", "improper_atom4", "nspecial", "special", + "nspecial15", "special15"}; + fields_copy = {"q", "molecule", "num_bond", "bond_type", "bond_atom", "num_angle", "angle_type", + "angle_atom1", "angle_atom2", "angle_atom3", "num_dihedral", "dihedral_type", "dihedral_atom1", + "dihedral_atom2", "dihedral_atom3", "dihedral_atom4", "num_improper", "improper_type", + "improper_atom1", "improper_atom2", "improper_atom3", "improper_atom4", "nspecial", "special", + "nspecial15", "special15"}; + fields_border = {"q", "molecule"}; + fields_border_vel = {"q", "molecule"}; + fields_exchange = {"q", "molecule", "num_bond", "bond_type", "bond_atom", "num_angle", + "angle_type", "angle_atom1", "angle_atom2", "angle_atom3", "num_dihedral", "dihedral_type", + "dihedral_atom1", "dihedral_atom2", "dihedral_atom3", "dihedral_atom4", "num_improper", + "improper_type", "improper_atom1", "improper_atom2", "improper_atom3", "improper_atom4", + "nspecial", "special", "nspecial15", "special15"}; + fields_restart = {"q", "molecule", "num_bond", "bond_type", "bond_atom", "num_angle", + "angle_type", "angle_atom1", "angle_atom2", "angle_atom3", "num_dihedral", "dihedral_type", + "dihedral_atom1", "dihedral_atom2", "dihedral_atom3", "dihedral_atom4", "num_improper", + "improper_type", "improper_atom1", "improper_atom2", "improper_atom3", "improper_atom4"}; + fields_create = {"q", "molecule", "num_bond", "num_angle", "num_dihedral", "num_improper", + "nspecial", "nspecial15"}; + fields_data_atom = {"id", "molecule", "type", "q", "x"}; + fields_data_vel = {"id", "v"}; + // clang-format on + setup_fields(); + + bond_per_atom = angle_per_atom = dihedral_per_atom = improper_per_atom = 0; + bond_negative = angle_negative = dihedral_negative = improper_negative = nullptr; +} + +/* ---------------------------------------------------------------------- */ + +AtomVecAmoeba::~AtomVecAmoeba() +{ + delete[] bond_negative; + delete[] angle_negative; + delete[] dihedral_negative; + delete[] improper_negative; +} + +/* ---------------------------------------------------------------------- + set local copies of all grow ptrs used by this class, except defaults + needed in replicate when 2 atom classes exist and it calls pack_restart() +------------------------------------------------------------------------- */ + +void AtomVecAmoeba::grow_pointers() +{ + num_bond = atom->num_bond; + bond_type = atom->bond_type; + num_angle = atom->num_angle; + angle_type = atom->angle_type; + num_dihedral = atom->num_dihedral; + dihedral_type = atom->dihedral_type; + num_improper = atom->num_improper; + improper_type = atom->improper_type; + nspecial = atom->nspecial; + nspecial15 = atom->nspecial15; +} + +/* ---------------------------------------------------------------------- + modify values for AtomVec::pack_restart() to pack +------------------------------------------------------------------------- */ + +void AtomVecAmoeba::pack_restart_pre(int ilocal) +{ + // insure negative vectors are needed length + + if (bond_per_atom < atom->bond_per_atom) { + delete[] bond_negative; + bond_per_atom = atom->bond_per_atom; + bond_negative = new int[bond_per_atom]; + } + if (angle_per_atom < atom->angle_per_atom) { + delete[] angle_negative; + angle_per_atom = atom->angle_per_atom; + angle_negative = new int[angle_per_atom]; + } + if (dihedral_per_atom < atom->dihedral_per_atom) { + delete[] dihedral_negative; + dihedral_per_atom = atom->dihedral_per_atom; + dihedral_negative = new int[dihedral_per_atom]; + } + if (improper_per_atom < atom->improper_per_atom) { + delete[] improper_negative; + improper_per_atom = atom->improper_per_atom; + improper_negative = new int[improper_per_atom]; + } + + // flip any negative types to positive and flag which ones + + any_bond_negative = 0; + for (int m = 0; m < num_bond[ilocal]; m++) { + if (bond_type[ilocal][m] < 0) { + bond_negative[m] = 1; + bond_type[ilocal][m] = -bond_type[ilocal][m]; + any_bond_negative = 1; + } else + bond_negative[m] = 0; + } + + any_angle_negative = 0; + for (int m = 0; m < num_angle[ilocal]; m++) { + if (angle_type[ilocal][m] < 0) { + angle_negative[m] = 1; + angle_type[ilocal][m] = -angle_type[ilocal][m]; + any_angle_negative = 1; + } else + angle_negative[m] = 0; + } + + any_dihedral_negative = 0; + for (int m = 0; m < num_dihedral[ilocal]; m++) { + if (dihedral_type[ilocal][m] < 0) { + dihedral_negative[m] = 1; + dihedral_type[ilocal][m] = -dihedral_type[ilocal][m]; + any_dihedral_negative = 1; + } else + dihedral_negative[m] = 0; + } + + any_improper_negative = 0; + for (int m = 0; m < num_improper[ilocal]; m++) { + if (improper_type[ilocal][m] < 0) { + improper_negative[m] = 1; + improper_type[ilocal][m] = -improper_type[ilocal][m]; + any_improper_negative = 1; + } else + improper_negative[m] = 0; + } +} + +/* ---------------------------------------------------------------------- + unmodify values packed by AtomVec::pack_restart() +------------------------------------------------------------------------- */ + +void AtomVecAmoeba::pack_restart_post(int ilocal) +{ + // restore the flagged types to their negative values + + if (any_bond_negative) { + for (int m = 0; m < num_bond[ilocal]; m++) + if (bond_negative[m]) bond_type[ilocal][m] = -bond_type[ilocal][m]; + } + + if (any_angle_negative) { + for (int m = 0; m < num_angle[ilocal]; m++) + if (angle_negative[m]) angle_type[ilocal][m] = -angle_type[ilocal][m]; + } + + if (any_dihedral_negative) { + for (int m = 0; m < num_dihedral[ilocal]; m++) + if (dihedral_negative[m]) dihedral_type[ilocal][m] = -dihedral_type[ilocal][m]; + } + + if (any_improper_negative) { + for (int m = 0; m < num_improper[ilocal]; m++) + if (improper_negative[m]) improper_type[ilocal][m] = -improper_type[ilocal][m]; + } +} + +/* ---------------------------------------------------------------------- + initialize other atom quantities after AtomVec::unpack_restart() +------------------------------------------------------------------------- */ + +void AtomVecAmoeba::unpack_restart_init(int ilocal) +{ + nspecial[ilocal][0] = 0; + nspecial[ilocal][1] = 0; + nspecial[ilocal][2] = 0; + nspecial15[ilocal] = 0; +} + +/* ---------------------------------------------------------------------- + modify what AtomVec::data_atom() just unpacked + or initialize other atom quantities +------------------------------------------------------------------------- */ + +void AtomVecAmoeba::data_atom_post(int ilocal) +{ + num_bond[ilocal] = 0; + num_angle[ilocal] = 0; + num_dihedral[ilocal] = 0; + num_improper[ilocal] = 0; + nspecial[ilocal][0] = 0; + nspecial[ilocal][1] = 0; + nspecial[ilocal][2] = 0; + nspecial15[ilocal] = 0; +} diff --git a/src/AMOEBA/atom_vec_amoeba.h b/src/AMOEBA/atom_vec_amoeba.h new file mode 100644 index 0000000000..a80d4c4b61 --- /dev/null +++ b/src/AMOEBA/atom_vec_amoeba.h @@ -0,0 +1,49 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef ATOM_CLASS +// clang-format off +AtomStyle(amoeba,AtomVecAmoeba); +// clang-format on +#else + +#ifndef LMP_ATOM_VEC_AMOEBA_H +#define LMP_ATOM_VEC_AMOEBA_H + +#include "atom_vec.h" + +namespace LAMMPS_NS { + +class AtomVecAmoeba : public AtomVec { + public: + AtomVecAmoeba(class LAMMPS *); + ~AtomVecAmoeba() override; + + void grow_pointers() override; + void pack_restart_pre(int) override; + void pack_restart_post(int) override; + void unpack_restart_init(int) override; + void data_atom_post(int) override; + + private: + int *num_bond, *num_angle, *num_dihedral, *num_improper; + int **bond_type, **angle_type, **dihedral_type, **improper_type; + int **nspecial, *nspecial15; + + int any_bond_negative, any_angle_negative, any_dihedral_negative, any_improper_negative; + int bond_per_atom, angle_per_atom, dihedral_per_atom, improper_per_atom; + int *bond_negative, *angle_negative, *dihedral_negative, *improper_negative; +}; +} // namespace LAMMPS_NS +#endif +#endif diff --git a/src/AMOEBA/fix_amoeba_bitorsion.cpp b/src/AMOEBA/fix_amoeba_bitorsion.cpp new file mode 100644 index 0000000000..711ac7e05d --- /dev/null +++ b/src/AMOEBA/fix_amoeba_bitorsion.cpp @@ -0,0 +1,1849 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "fix_amoeba_bitorsion.h" + +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "math_const.h" +#include "memory.h" +#include "pair.h" +#include "respa.h" +#include "update.h" + +#include +#include + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathConst; + +#define BITORSIONMAX 6 // max # of BiTorsion terms stored by one atom +#define LISTDELTA 10000 +#define LB_FACTOR 1.5 +#define MAXLINE 1024 + +// spline weighting factors + +static constexpr double WT[16][16] = { + { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-3.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0,-2.0, 0.0, 0.0,-1.0, 0.0, 0.0, 0.0, 0.0}, + { 2.0, 0.0, 0.0,-2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0}, + { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0}, + { 0.0, 0.0, 0.0, 0.0,-3.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0,-2.0, 0.0, 0.0,-1.0}, + { 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0,-2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0}, + {-3.0, 3.0, 0.0, 0.0,-2.0,-1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,-3.0, 3.0, 0.0, 0.0,-2.0,-1.0, 0.0, 0.0}, + { 9.0,-9.0, 9.0,-9.0, 6.0, 3.0,-3.0,-6.0, 6.0,-6.0,-3.0, 3.0, 4.0, 2.0, 1.0, 2.0}, + {-6.0, 6.0,-6.0, 6.0,-4.0,-2.0, 2.0, 4.0,-3.0, 3.0, 3.0,-3.0,-2.0,-1.0,-1.0,-2.0}, + { 2.0,-2.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0,-2.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0}, + {-6.0, 6.0,-6.0, 6.0,-3.0,-3.0, 3.0, 3.0,-4.0, 4.0, 2.0,-2.0,-2.0,-2.0,-1.0,-1.0}, + { 4.0,-4.0, 4.0,-4.0, 2.0, 2.0,-2.0,-2.0, 2.0,-2.0,-2.0, 2.0, 1.0, 1.0, 1.0, 1.0} +}; + +/* ---------------------------------------------------------------------- */ + +FixAmoebaBiTorsion::FixAmoebaBiTorsion(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg), num_bitorsion(nullptr), bitorsion_type(nullptr), bitorsion_atom1(nullptr), + bitorsion_atom2(nullptr), bitorsion_atom3(nullptr), bitorsion_atom4(nullptr), + bitorsion_atom5(nullptr), bitorsion_list(nullptr) +{ + if (narg != 4) error->all(FLERR,"Illegal fix amoeba/bitorsion command"); + + restart_global = 1; + restart_peratom = 1; + energy_global_flag = energy_peratom_flag = 1; + virial_global_flag = virial_peratom_flag = 1; + thermo_energy = thermo_virial = 1; + centroidstressflag = CENTROID_NOTAVAIL; + peratom_freq = 1; + scalar_flag = 1; + global_freq = 1; + extscalar = 1; + extvector = 1; + wd_header = 1; + wd_section = 1; + respa_level_support = 1; + ilevel_respa = 0; + + MPI_Comm_rank(world,&me); + MPI_Comm_size(world,&nprocs); + + // read and setup BiTorsion grid data + + read_grid_data(arg[3]); + create_splines(); + + // border comm of 1st neighbors in special list + // so chkttor() can use them when central atom = ghost to check chirality + // comm_border = max # of bonds per atom + 1 for count + + comm_border = 7; + atom->add_callback(Atom::BORDER); + + // perform initial allocation of atom-based arrays + + num_bitorsion = nullptr; + bitorsion_type = nullptr; + bitorsion_atom1 = nullptr; + bitorsion_atom2 = nullptr; + bitorsion_atom3 = nullptr; + bitorsion_atom4 = nullptr; + bitorsion_atom5 = nullptr; + + // register with Atom class + + nmax_previous = 0; + grow_arrays(atom->nmax); + atom->add_callback(Atom::GROW); + atom->add_callback(Atom::RESTART); + + // list of all bitorsions to compute on this proc + + nbitorsion_list = 0; + max_bitorsion_list = 0; + bitorsion_list = nullptr; + + // zero thermo energy + + ebitorsion = 0.0; +} + +/* --------------------------------------------------------------------- */ + +FixAmoebaBiTorsion::~FixAmoebaBiTorsion() +{ + // unregister callbacks to this fix from Atom class + + atom->delete_callback(id,Atom::GROW); + atom->delete_callback(id,Atom::RESTART); + + // per-atom data + + memory->destroy(num_bitorsion); + memory->destroy(bitorsion_type); + memory->destroy(bitorsion_atom1); + memory->destroy(bitorsion_atom2); + memory->destroy(bitorsion_atom3); + memory->destroy(bitorsion_atom4); + memory->destroy(bitorsion_atom5); + + // local list of bitorsions to compute + + memory->destroy(bitorsion_list); + + // BiTorsion grid data + + delete[] nxgrid; + delete[] nygrid; + for (int itype = 1; itype <= nbitypes; itype++) { + memory->destroy(ttx[itype]); + memory->destroy(tty[itype]); + memory->destroy(tbf[itype]); + memory->destroy(tbx[itype]); + memory->destroy(tby[itype]); + memory->destroy(tbxy[itype]); + } + delete[] ttx; + delete[] tty; + delete[] tbf; + delete[] tbx; + delete[] tby; + delete[] tbxy; +} + +/* ---------------------------------------------------------------------- */ + +int FixAmoebaBiTorsion::setmask() +{ + int mask = 0; + mask |= PRE_NEIGHBOR; + mask |= PRE_REVERSE; + mask |= POST_FORCE; + mask |= POST_FORCE_RESPA; + mask |= MIN_POST_FORCE; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::init() +{ + if (utils::strmatch(update->integrate_style,"^respa")) { + ilevel_respa = ((Respa *) update->integrate)->nlevels-1; + if (respa_level >= 0) ilevel_respa = MIN(respa_level,ilevel_respa); + } + + // error check that PairAmoeba or PairHiippo exist + + pair = nullptr; + pair = force->pair_match("amoeba",1,0); + if (!pair) pair = force->pair_match("hippo",1,0); + + if (!pair) + error->all(FLERR,"Cannot use fix amoeba/bitorsion w/out pair amoeba/hippo"); + + // check if PairAmoeba or PairHippo disabled bitorsion terms + + int tmp; + int flag = *((int *) pair->extract("bitorsion_flag",tmp)); + disable = flag ? 0 : 1; + + // constant + + onefifth = 0.2; +} + +/* --------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::setup(int vflag) +{ + pre_neighbor(); + + if (utils::strmatch(update->integrate_style,"^verlet")) + post_force(vflag); + else { + ((Respa *) update->integrate)->copy_flevel_f(ilevel_respa); + post_force_respa(vflag,ilevel_respa,0); + ((Respa *) update->integrate)->copy_f_flevel(ilevel_respa); + } +} + +/* --------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::setup_pre_neighbor() +{ + pre_neighbor(); +} + +/* --------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::setup_pre_reverse(int eflag, int vflag) +{ + pre_reverse(eflag,vflag); +} + +/* --------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::min_setup(int vflag) +{ + pre_neighbor(); + post_force(vflag); +} + +/* ---------------------------------------------------------------------- + create local list of bitorsions + if one or more atoms in bitorsion are on this proc, + this proc lists the bitorsion exactly once +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::pre_neighbor() +{ + int i,m,atom1,atom2,atom3,atom4,atom5; + + // guesstimate initial length of local bitorsion list + // if nbitorsions was not set (due to read_restart, no read_data), + // then list will grow by LISTDELTA chunks + + if (max_bitorsion_list == 0) { + if (nprocs == 1) max_bitorsion_list = nbitorsions; + else max_bitorsion_list = + static_cast (LB_FACTOR*nbitorsions/nprocs); + memory->create(bitorsion_list,max_bitorsion_list,6, + "bitorsion:bitorsion_list"); + } + + int nlocal = atom->nlocal; + nbitorsion_list = 0; + + for (i = 0; i < nlocal; i++) { + for (m = 0; m < num_bitorsion[i]; m++) { + atom1 = atom->map(bitorsion_atom1[i][m]); + atom2 = atom->map(bitorsion_atom2[i][m]); + atom3 = atom->map(bitorsion_atom3[i][m]); + atom4 = atom->map(bitorsion_atom4[i][m]); + atom5 = atom->map(bitorsion_atom5[i][m]); + + if (atom1 == -1 || atom2 == -1 || atom3 == -1 || + atom4 == -1 || atom5 == -1) + error->one(FLERR,"BiTorsion atoms {} {} {} {} {} {} missing on " + "proc {} at step {}", + bitorsion_atom1[i][m],bitorsion_atom2[i][m], + bitorsion_atom3[i][m],bitorsion_atom4[i][m], + bitorsion_atom5[i][m],me,update->ntimestep); + atom1 = domain->closest_image(i,atom1); + atom2 = domain->closest_image(i,atom2); + atom3 = domain->closest_image(i,atom3); + atom4 = domain->closest_image(i,atom4); + atom5 = domain->closest_image(i,atom5); + + if (i <= atom1 && i <= atom2 && i <= atom3 && + i <= atom4 && i <= atom5) { + if (nbitorsion_list == max_bitorsion_list) { + max_bitorsion_list += LISTDELTA; + memory->grow(bitorsion_list,max_bitorsion_list,6, + "bitorsion:bitorsion_list"); + } + bitorsion_list[nbitorsion_list][0] = atom1; + bitorsion_list[nbitorsion_list][1] = atom2; + bitorsion_list[nbitorsion_list][2] = atom3; + bitorsion_list[nbitorsion_list][3] = atom4; + bitorsion_list[nbitorsion_list][4] = atom5; + bitorsion_list[nbitorsion_list][5] = bitorsion_type[i][m]; + nbitorsion_list++; + } + } + } +} + +/* ---------------------------------------------------------------------- + store eflag, so can use it in post_force to tally per-atom energies +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::pre_reverse(int eflag, int /*vflag*/) +{ + eflag_caller = eflag; +} + +/* ---------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::post_force(int vflag) +{ + if (disable) return; + + int ia,ib,ic,id,ie,btype; + int nx,ny,nlo,nhi,nt; + int xlo,ylo; + int pos1,pos2; + double e,sign,dot; + double angle1,angle2; + double value1,value2; + double cosine1,cosine2; + double xt,yt,zt,rt2; + double xu,yu,zu,ru2; + double xv,yv,zv,rv2; + double rtru,rurv; + double x1l,x1u; + double y1l,y1u; + double xia,yia,zia; + double xib,yib,zib; + double xic,yic,zic; + double xid,yid,zid; + double xie,yie,zie; + double xba,yba,zba; + double xdc,ydc,zdc; + double xcb,ycb,zcb; + double xed,yed,zed; + double rcb,rdc; + double xca,yca,zca; + double xdb,ydb,zdb; + double xec,yec,zec; + double dedang1,dedang2; + double dedxt,dedyt,dedzt; + double dedxu,dedyu,dedzu; + double dedxu2,dedyu2,dedzu2; + double dedxv2,dedyv2,dedzv2; + double dedxia,dedyia,dedzia; + double dedxib,dedyib,dedzib; + double dedxic,dedyic,dedzic; + double dedxid,dedyid,dedzid; + double dedxib2,dedyib2,dedzib2; + double dedxic2,dedyic2,dedzic2; + double dedxid2,dedyid2,dedzid2; + double dedxie2,dedyie2,dedzie2; + double vxx,vyy,vzz; + double vyx,vzx,vzy; + double vxx2,vyy2,vzz2; + double vyx2,vzx2,vzy2; + double ftt[4],ft12[4]; + double ft1[4],ft2[4]; + + double engfraction; + int nlist,list[6]; + double v[6]; + + double radian2degree = 180.0 / MY_PI; + + ebitorsion = 0.0; + int eflag = eflag_caller; + ev_init(eflag,vflag); + + // set current ptrs to PairAmoeba amtype and atomic_num + + int tmp; + amtype = (int *) pair->extract("amtype",tmp); + atomic_num = (int *) pair->extract("atomic_num",tmp); + + // loop over local bitorsions + + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + + for (int n = 0; n < nbitorsion_list; n++) { + + ia = bitorsion_list[n][0]; + ib = bitorsion_list[n][1]; + ic = bitorsion_list[n][2]; + id = bitorsion_list[n][3]; + ie = bitorsion_list[n][4]; + btype = bitorsion_list[n][5]; + + xia = x[ia][0]; + yia = x[ia][1]; + zia = x[ia][2]; + xib = x[ib][0]; + yib = x[ib][1]; + zib = x[ib][2]; + xic = x[ic][0]; + yic = x[ic][1]; + zic = x[ic][2]; + xid = x[id][0]; + yid = x[id][1]; + zid = x[id][2]; + xie = x[ie][0]; + yie = x[ie][1]; + zie = x[ie][2]; + + xba = xib - xia; + yba = yib - yia; + zba = zib - zia; + xcb = xic - xib; + ycb = yic - yib; + zcb = zic - zib; + xdc = xid - xic; + ydc = yid - yic; + zdc = zid - zic; + xed = xie - xid; + yed = yie - yid; + zed = zie - zid; + + xt = yba*zcb - ycb*zba; + yt = zba*xcb - zcb*xba; + zt = xba*ycb - xcb*yba; + xu = ycb*zdc - ydc*zcb; + yu = zcb*xdc - zdc*xcb; + zu = xcb*ydc - xdc*ycb; + + rt2 = xt*xt + yt*yt + zt*zt; + ru2 = xu*xu + yu*yu + zu*zu; + rtru = sqrt(rt2 * ru2); + xv = ydc*zed - yed*zdc; + yv = zdc*xed - zed*xdc; + zv = xdc*yed - xed*ydc; + rv2 = xv*xv + yv*yv + zv*zv; + rurv = sqrt(ru2 * rv2); + + if (rtru <= 0.0 || rurv <= 0.0) continue; + + rcb = sqrt(xcb*xcb + ycb*ycb + zcb*zcb); + cosine1 = (xt*xu + yt*yu + zt*zu) / rtru; + cosine1 = MIN(1.0,MAX(-1.0,cosine1)); + angle1 = radian2degree * acos(cosine1); + dot = xba*xu + yba*yu + zba*zu; + if (dot < 0.0) angle1 = -angle1; + value1 = angle1; + + rdc = sqrt(xdc*xdc + ydc*ydc + zdc*zdc); + cosine2 = (xu*xv + yu*yv + zu*zv) / rurv; + cosine2 = MIN(1.0,MAX(-1.0,cosine2)); + angle2 = radian2degree * acos(cosine2); + dot = xcb*xv + ycb*yv + zcb*zv; + if (dot < 0.0) angle2 = -angle2; + value2 = angle2; + + // check for inverted chirality at the central atom + // inputs = ib,ic,id + // outputs = sign,value1,value2 + + chkttor(ib,ic,id,sign,value1,value2); + + // 2 binary searches to find location of angles 1,2 in grid + // ttx,tty are 0-indexed here, 1-indexed in Tinker + // xlo,ylo = final location, each one less than in Tinker + + nx = nxgrid[btype]; + ny = nygrid[btype]; + + nlo = 0; + nhi = nx-1; + + while (nhi-nlo > 1) { + nt = (nhi+nlo) / 2; + if (ttx[btype][nt] > value1) nhi = nt; + else nlo = nt; + } + xlo = nlo; + + nlo = 0; + nhi = ny-1; + while (nhi-nlo > 1) { + nt = (nhi + nlo)/2; + if (tty[btype][nt] > value2) nhi = nt; + else nlo = nt; + } + ylo = nlo; + + // fill ftt,ft1,ft2,ft12 vecs with spline coeffs near xlo,ylo grid pt + // ttx,tty,tbf,tbx,tby,tbxy are 0-indexed here, 1-indexed in Tinker + // xlo,ylo,pos1,pos2 are all one less than in Tinker + + x1l = ttx[btype][xlo]; + x1u = ttx[btype][xlo+1]; + y1l = tty[btype][ylo]; + y1u = tty[btype][ylo+1]; + + pos2 = (ylo+1)*nx + xlo; + pos1 = pos2 - nx; + + ftt[0] = tbf[btype][pos1]; + ftt[1] = tbf[btype][pos1+1]; + ftt[2] = tbf[btype][pos2+1]; + ftt[3] = tbf[btype][pos2]; + + ft1[0] = tbx[btype][pos1]; + ft1[1] = tbx[btype][pos1+1]; + ft1[2] = tbx[btype][pos2+1]; + ft1[3] = tbx[btype][pos2]; + + ft2[0] = tby[btype][pos1]; + ft2[1] = tby[btype][pos1+1]; + ft2[2] = tby[btype][pos2+1]; + ft2[3] = tby[btype][pos2]; + + ft12[0] = tbxy[btype][pos1]; + ft12[1] = tbxy[btype][pos1+1]; + ft12[2] = tbxy[btype][pos2+1]; + ft12[3] = tbxy[btype][pos2]; + + // bicuint1() uses bicubic interpolation to compute interpolated values + // outputs = e,dedang1,dedang2 + + bcuint1(ftt,ft1,ft2,ft12,x1l,x1u,y1l,y1u,value1,value2, + e,dedang1,dedang2); + + dedang1 = sign * radian2degree * dedang1; + dedang2 = sign * radian2degree * dedang2; + + // fraction of energy for each atom + + engfraction = e * onefifth; + + // chain rule terms for first angle derivative components + + xca = xic - xia; + yca = yic - yia; + zca = zic - zia; + xdb = xid - xib; + ydb = yid - yib; + zdb = zid - zib; + + dedxt = dedang1 * (yt*zcb - ycb*zt) / (rt2*rcb); + dedyt = dedang1 * (zt*xcb - zcb*xt) / (rt2*rcb); + dedzt = dedang1 * (xt*ycb - xcb*yt) / (rt2*rcb); + dedxu = -dedang1 * (yu*zcb - ycb*zu) / (ru2*rcb); + dedyu = -dedang1 * (zu*xcb - zcb*xu) / (ru2*rcb); + dedzu = -dedang1 * (xu*ycb - xcb*yu) / (ru2*rcb); + + // compute first derivative components for first angle + + dedxia = zcb*dedyt - ycb*dedzt; + dedyia = xcb*dedzt - zcb*dedxt; + dedzia = ycb*dedxt - xcb*dedyt; + dedxib = yca*dedzt - zca*dedyt + zdc*dedyu - ydc*dedzu; + dedyib = zca*dedxt - xca*dedzt + xdc*dedzu - zdc*dedxu; + dedzib = xca*dedyt - yca*dedxt + ydc*dedxu - xdc*dedyu; + dedxic = zba*dedyt - yba*dedzt + ydb*dedzu - zdb*dedyu; + dedyic = xba*dedzt - zba*dedxt + zdb*dedxu - xdb*dedzu; + dedzic = yba*dedxt - xba*dedyt + xdb*dedyu - ydb*dedxu; + dedxid = zcb*dedyu - ycb*dedzu; + dedyid = xcb*dedzu - zcb*dedxu; + dedzid = ycb*dedxu - xcb*dedyu; + + // chain rule terms for second angle derivative components + + xec = xie - xic; + yec = yie - yic; + zec = zie - zic; + + dedxu2 = dedang2 * (yu*zdc - ydc*zu) / (ru2*rdc); + dedyu2 = dedang2 * (zu*xdc - zdc*xu) / (ru2*rdc); + dedzu2 = dedang2 * (xu*ydc - xdc*yu) / (ru2*rdc); + dedxv2 = -dedang2 * (yv*zdc - ydc*zv) / (rv2*rdc); + dedyv2 = -dedang2 * (zv*xdc - zdc*xv) / (rv2*rdc); + dedzv2 = -dedang2 * (xv*ydc - xdc*yv) / (rv2*rdc); + + // compute first derivative components for second angle + + dedxib2 = zdc*dedyu2 - ydc*dedzu2; + dedyib2 = xdc*dedzu2 - zdc*dedxu2; + dedzib2 = ydc*dedxu2 - xdc*dedyu2; + dedxic2 = ydb*dedzu2 - zdb*dedyu2 + zed*dedyv2 - yed*dedzv2; + dedyic2 = zdb*dedxu2 - xdb*dedzu2 + xed*dedzv2 - zed*dedxv2; + dedzic2 = xdb*dedyu2 - ydb*dedxu2 + yed*dedxv2 - xed*dedyv2; + dedxid2 = zcb*dedyu2 - ycb*dedzu2 + yec*dedzv2 - zec*dedyv2; + dedyid2 = xcb*dedzu2 - zcb*dedxu2 + zec*dedxv2 - xec*dedzv2; + dedzid2 = ycb*dedxu2 - xcb*dedyu2 + xec*dedyv2 - yec*dedxv2; + dedxie2 = zdc*dedyv2 - ydc*dedzv2; + dedyie2 = xdc*dedzv2 - zdc*dedxv2; + dedzie2 = ydc*dedxv2 - xdc*dedyv2; + + // increment the torsion-torsion energy and gradient + + if (ia < nlocal) { + ebitorsion += engfraction; + f[ia][0] -= dedxia; + f[ia][1] -= dedyia; + f[ia][2] -= dedzia; + } + + if (ib < nlocal) { + ebitorsion += engfraction; + f[ib][0] -= dedxib + dedxib2; + f[ib][1] -= dedyib + dedyib2; + f[ib][2] -= dedzib + dedzib2; + } + + if (ic < nlocal) { + ebitorsion += engfraction; + f[ic][0] -= dedxic + dedxic2; + f[ic][1] -= dedyic + dedyic2; + f[ic][2] -= dedzic + dedzic2; + } + + if (id < nlocal) { + ebitorsion += engfraction; + f[id][0] -= dedxid + dedxid2; + f[id][1] -= dedyid + dedyid2; + f[id][2] -= dedzid + dedzid2; + } + + if (ie < nlocal) { + ebitorsion += engfraction; + f[ie][0] -= dedxie2; + f[ie][1] -= dedyie2; + f[ie][2] -= dedzie2; + } + + // increment the internal virial tensor components + + if (evflag) { + nlist = 0; + if (ia < nlocal) list[nlist++] = ia; + if (ib < nlocal) list[nlist++] = ib; + if (ic < nlocal) list[nlist++] = ic; + if (id < nlocal) list[nlist++] = id; + if (ie < nlocal) list[nlist++] = ie; + + vxx = xcb*(dedxic+dedxid) - xba*dedxia + xdc*dedxid; + vyx = ycb*(dedxic+dedxid) - yba*dedxia + ydc*dedxid; + vzx = zcb*(dedxic+dedxid) - zba*dedxia + zdc*dedxid; + vyy = ycb*(dedyic+dedyid) - yba*dedyia + ydc*dedyid; + vzy = zcb*(dedyic+dedyid) - zba*dedyia + zdc*dedyid; + vzz = zcb*(dedzic+dedzid) - zba*dedzia + zdc*dedzid; + vxx2 = xdc*(dedxid2+dedxie2) - xcb*dedxib2 + xed*dedxie2; + vyx2 = ydc*(dedxid2+dedxie2) - ycb*dedxib2 + yed*dedxie2; + vzx2 = zdc*(dedxid2+dedxie2) - zcb*dedxib2 + zed*dedxie2; + vyy2 = ydc*(dedyid2+dedyie2) - ycb*dedyib2 + yed*dedyie2; + vzy2 = zdc*(dedyid2+dedyie2) - zcb*dedyib2 + zed*dedyie2; + vzz2 = zdc*(dedzid2+dedzie2) - zcb*dedzib2 + zed*dedzie2; + + v[0] = -vxx - vxx2; + v[1] = -vyy - vyy2; + v[2] = -vzz - vzz2; + v[3] = -vyx - vyx2; + v[4] = -vzx - vzx2; + v[5] = -vzy - vzy2; + + ev_tally(nlist,list,5.0,e,v); + } + } +} + +/* ---------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::post_force_respa(int vflag, int ilevel, int /*iloop*/) +{ + if (ilevel == ilevel_respa) post_force(vflag); +} + +/* ---------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::min_post_force(int vflag) +{ + post_force(vflag); +} + +/* ---------------------------------------------------------------------- + energy of BiTorsion term +------------------------------------------------------------------------- */ + +double FixAmoebaBiTorsion::compute_scalar() +{ + double all; + MPI_Allreduce(&ebitorsion,&all,1,MPI_DOUBLE,MPI_SUM,world); + return all; +} + +// ---------------------------------------------------------------------- +// ---------------------------------------------------------------------- +// methods to read BiTorsion grid file, spline grids, perform interpolation +// ---------------------------------------------------------------------- +// ---------------------------------------------------------------------- + +/* ---------------------------------------------------------------------- + read grid data from bitorsion_file produced by tinker2lmp.py + one entry for each biotorsion type + when complete: + nbitypes = # of bitorsion types + nxgrid,nygrid = x,y dimensions of grid for each type + ttx,tty = vectors of x,y angles for each type + length = nx or ny, 0-indexed + tbf = vector of 2d grid values for each type + length = nx*ny, 0-indexed, x varies fastest + ttx,tty,tbf are similar to Tinker data structs + here they are 0-indexed, in Tinker they are 1-indexed +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::read_grid_data(char *bitorsion_file) +{ + char line[MAXLINE]; + char *eof; + + FILE *fp = nullptr; + if (me == 0) { + fp = utils::open_potential(bitorsion_file,lmp,nullptr); + if (fp == nullptr) + error->one(FLERR,"Cannot open fix amoeba/bitorsion file {}: {}", + bitorsion_file, utils::getsyserror()); + + eof = fgets(line,MAXLINE,fp); + eof = fgets(line,MAXLINE,fp); + eof = fgets(line,MAXLINE,fp); + if (eof == nullptr) + error->one(FLERR,"Unexpected end of fix amoeba/bitorsion file"); + + sscanf(line,"%d",&nbitypes); + } + + MPI_Bcast(&nbitypes,1,MPI_INT,0,world); + if (nbitypes == 0) error->all(FLERR,"Fix amoeba/bitorsion file has no types"); + + // allocate data structs + // type index ranges from 1 to Nbitypes, so allocate one larger + + nxgrid = new int[nbitypes+1]; + nygrid = new int[nbitypes+1]; + ttx = new double*[nbitypes+1]; + tty = new double*[nbitypes+1]; + tbf = new double*[nbitypes+1]; + + // read one array for each BiTorsion type from file + + int tmp,nx,ny; + double xgrid,ygrid,value; + + for (int itype = 1; itype <= nbitypes; itype++) { + if (me == 0) { + eof = fgets(line,MAXLINE,fp); + eof = fgets(line,MAXLINE,fp); + if (eof == nullptr) + error->one(FLERR,"Unexpected end of fix amoeba/bitorsion file"); + sscanf(line,"%d %d %d",&tmp,&nx,&ny); + } + + MPI_Bcast(&nx,1,MPI_INT,0,world); + MPI_Bcast(&ny,1,MPI_INT,0,world); + nxgrid[itype] = nx; + nygrid[itype] = ny; + + memory->create(ttx[itype],nx,"bitorsion:ttx"); + memory->create(tty[itype],ny,"bitorsion:tty"); + memory->create(tbf[itype],nx*ny,"bitorsion:tbf"); + + // NOTE: could read this chunk of lines with utils in single read? + + if (me == 0) { + for (int iy = 0; iy < ny; iy++) { + for (int ix = 0; ix < nx; ix++) { + eof = fgets(line,MAXLINE,fp); + if (eof == nullptr) + error->one(FLERR,"Unexpected end of fix amoeba/bitorsion file"); + sscanf(line,"%lg %lg %lg",&xgrid,&ygrid,&value); + if (iy == 0) ttx[itype][ix] = xgrid; + if (ix == 0) tty[itype][iy] = ygrid; + tbf[itype][iy*nx+ix] = value; + } + } + } + + MPI_Bcast(ttx[itype],nx,MPI_DOUBLE,0,world); + MPI_Bcast(tty[itype],ny,MPI_DOUBLE,0,world); + MPI_Bcast(tbf[itype],nx*ny,MPI_DOUBLE,0,world); + } + + if (me == 0) fclose(fp); +} + +/* ---------------------------------------------------------------------- + create spline data structs for each bitorsion type + based on Tinker ktortor.f + when complete: + tbx,tby = spline coeffs + tbxy = vector of 2d grid values for each type, x varies fastest + tbx,tby,tbxy are similar to Tinker data structs + here they are 0-indexed, in Tinker they are 1-indexed +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::create_splines() +{ + int nx,ny; + + // allocate work vectors for cspline() and nspline() methods + // all are 0-indexed here and in Tinker + // tmp1,tmp2 = (x,y) inputs to spline methods + // bs = retained output from spline methods + // cs,ds,tmp3-7 = additional outputs from spline methods, not retained + // allocate to max length of any grid dimension for all types + + double *bs,*cs,*ds; + double *tmp1,*tmp2; + double *tmp3,*tmp4,*tmp5,*tmp6,*tmp7; + + int maxdim = 0; + for (int itype = 1; itype <= nbitypes; itype++) { + maxdim = MAX(maxdim,nxgrid[itype]); + maxdim = MAX(maxdim,nygrid[itype]); + } + + memory->create(bs,maxdim,"bitorsion:bs"); + memory->create(cs,maxdim,"bitorsion:cs"); + memory->create(ds,maxdim,"bitorsion:ds"); + memory->create(tmp1,maxdim,"bitorsion:tmp1"); + memory->create(tmp2,maxdim,"bitorsion:tmp2"); + memory->create(tmp3,maxdim,"bitorsion:tmp3"); + memory->create(tmp4,maxdim,"bitorsion:tmp4"); + memory->create(tmp5,maxdim,"bitorsion:tmp5"); + memory->create(tmp6,maxdim,"bitorsion:tmp6"); + memory->create(tmp7,maxdim,"bitorsion:tmp7"); + + // allocate data structs + // type index ranges from 1 to Nbitypes, so allocate one larger + + tbx = new double*[nbitypes+1]; + tby = new double*[nbitypes+1]; + tbxy = new double*[nbitypes+1]; + + for (int itype = 1; itype <= nbitypes; itype++) { + + nx = nxgrid[itype]; + ny = nygrid[itype]; + + // cyclic = 1 if angle range is -180.0 to 180.0 in both dims + // error if cyclic and x,y pairs of edges of 2d array values do not match + // equality comparisons are within eps + + int cyclic = 1; + double eps = 1.0e-6; + + if (fabs(fabs(ttx[itype][0]-ttx[itype][nx-1]) - 360.0) > eps) cyclic = 0; + if (fabs(fabs(tty[itype][0]-tty[itype][ny-1]) - 360.0) > eps) cyclic = 0; + + if (cyclic) { + // do error check on matching edge values + } + + // allocate nx*ny vectors for itype + + memory->create(tbx[itype],nx*ny,"bitorsion:tbx"); + memory->create(tby[itype],nx*ny,"bitorsion:tby"); + memory->create(tbxy[itype],nx*ny,"bitorsion:tbxy"); + + // spline fit of derivatives about 1st torsion + + for (int i = 0; i < nx; i++) + tmp1[i] = ttx[itype][i]; + + for (int j = 0; j < ny; j++) { + for (int i = 0; i < nx; i++) + tmp2[i] = tbf[itype][j*nx+i]; + + if (cyclic) + cspline(nx-1,tmp1,tmp2,bs,cs,ds,tmp3,tmp4,tmp5,tmp6,tmp7); + else + nspline(nx-1,tmp1,tmp2,bs,cs,tmp3,tmp4,tmp5,tmp6,tmp7); + + for (int i = 0; i < nx; i++) + tbx[itype][j*nx+i] = bs[i]; + } + + // spline fit of derivatives about 2nd torsion + + for (int j = 0; j < ny; j++) + tmp1[j] = ttx[itype][j]; + + for (int i = 0; i < nx; i++) { + for (int j = 0; j < ny; j++) + tmp2[j] = tbf[itype][j*nx+i]; + + if (cyclic) + cspline(ny-1,tmp1,tmp2,bs,cs,ds,tmp3,tmp4,tmp5,tmp6,tmp7); + else + nspline(ny-1,tmp1,tmp2,bs,cs,tmp3,tmp4,tmp5,tmp6,tmp7); + + for (int j = 0; j < ny; j++) + tby[itype][j*nx+i] = bs[j]; + } + + // spline fit of cross derivatives about both torsions + + for (int j = 0; j < ny; j++) + tmp1[j] = ttx[itype][j]; + + for (int i = 0; i < nx; i++) { + for (int j = 0; j < ny; j++) + tmp2[j] = tbx[itype][j*nx+i]; + + if (cyclic) + cspline(ny-1,tmp1,tmp2,bs,cs,ds,tmp3,tmp4,tmp5,tmp6,tmp7); + else + nspline(ny-1,tmp1,tmp2,bs,cs,tmp3,tmp4,tmp5,tmp6,tmp7); + + for (int j = 0; j < ny; j++) + tbxy[itype][j*nx+i] = bs[j]; + } + } + + // free work vectors local to this method + + memory->destroy(bs); + memory->destroy(cs); + memory->destroy(ds); + memory->destroy(tmp1); + memory->destroy(tmp2); + memory->destroy(tmp3); + memory->destroy(tmp4); + memory->destroy(tmp5); + memory->destroy(tmp6); + memory->destroy(tmp7); +} + +/* ---------------------------------------------------------------------- + Tinker method nspline() + computes coefficients for an nonperiodic cubic spline + with natural boundary conditions where the first and last second + derivatives are already known + all vectors are of length n+1 and are indexed from 0 to n inclusive + n,x0,y0 are inputs + rest of args are outputs +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::nspline(int n, double *x0, double *y0, + double *s1, double *s2, + double *h, double *g, double *dy, + double *dla, double *dmu) +{ + int i; + double t; + + // set first and last second deriviatives to zero + + double y21 = 0.0; + double y2n = 0.0; + + // find the intervals to be used + + for (i = 0; i <= n-1; i++) { + h[i] = x0[i+1] - x0[i]; + dy[i] = (y0[i+1]-y0[i]) / h[i]; + } + + // calculate the spline coeffcients + + for (i = 1; i <= n-1; i++) { + dla[i] = h[i] / (h[i]+h[i-1]); + dmu[i] = 1.0 - dla[i]; + g[i] = 3.0 * (dla[i]*dy[i-1]+dmu[i]*dy[i]); + } + + // set the initial value via natural boundary condition + + dla[n] = 1.0; + dla[0] = 0.0; + dmu[n] = 0.0; + dmu[0] = 1.0; + g[0] = 3.0*dy[0] - 0.5*h[0]*y21; + g[n] = 3.0*dy[n-1] + 0.5*h[n-1]*y2n; + + // solve the triagonal system of linear equations + + dmu[0] = 0.5 * dmu[0]; + g[0] = 0.5 * g[0]; + + for (i = 1; i <= n; i++) { + t = 2.0 - dmu[i-1]*dla[i]; + dmu[i] = dmu[i] / t; + g[i] = (g[i]-g[i-1]*dla[i]) / t; + } + for (i = n-1; i >= 0; i--) + g[i] = g[i] - dmu[i]*g[i+1]; + + // get the first derivative at each grid point + + for (i = 0; i <= n; i++) + s1[i] = g[i]; + + // get the second derivative at each grid point + + s2[0] = y21; + s2[n] = y2n; + for (i = 1; i <= n-1; i++) + s2[i] = 6.0*(y0[i+1]-y0[i])/(h[i]*h[i]) - 4.0*s1[i]/h[i] - 2.0*s1[i+1]/h[i]; +} + +/* ---------------------------------------------------------------------- + Tinker method cspline() + computes coefficients for an periodic interpolating cubic spline + all vectors are of length n+1 and are indexed from 0 to n inclusive + n,xn,fn are inputs + rest of args are outputs +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::cspline(int n, double *xn, double *fn, + double *b, double *c, double *d, + double *h, double *du, double *dm, + double *rc, double *rs) +{ + int i; + double temp1,temp2; + + double average = 0.5 * (fn[0] + fn[n]); + fn[0] = average; + fn[n] = average; + + // get auxiliary variables and matrix elements on first call + + for (i = 0; i < n; i++) + h[i] = xn[i+1] - xn[i]; + h[n] = h[0]; + + for (i = 1; i < n; i++) + du[i] = h[i]; + du[n] = h[0]; + + for (i = 1; i <= n; i++) + dm[i] = 2.0 * (h[i-1]+h[i]); + + // compute the right hand side + + temp1 = (fn[1]-fn[0]) / h[0]; + for (i = 1; i < n; i++) { + temp2 = (fn[i+1]-fn[i]) / h[i]; + rs[i] = 3.0 * (temp2-temp1); + temp1 = temp2; + } + rs[n] = 3.0 * ((fn[1]-fn[0])/h[0]-temp1); + + // solve the linear system with factorization + + int iflag; + cytsy(n,dm,du,rc,rs,c,iflag); + if (iflag != 1) return; + + // compute remaining spline coefficients + + c[0] = c[n]; + for (i = 0; i < n; i++) { + b[i] = (fn[i+1]-fn[i])/h[i] - h[i]/3.0*(c[i+1]+2.0*c[i]); + d[i] = (c[i+1]-c[i]) / (3.0*h[i]); + } + b[n] = (fn[1]-fn[n])/h[n] - h[n]/3.0*(c[1]+2.0*c[n]); +} + +/* ---------------------------------------------------------------------- + Tinker method cytsy() + solve cyclic tridiagonal system + all vectors are of length n+1 and are indexed from 0 to n inclusive + n,dm,du are inputs + du,cr,rs,x,iflag are outputs +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::cytsy(int n, double *dm, double *du, + double *cr, double *rs, double *x, int &iflag) +{ + iflag = -2; + if (n < 3) return; + cytsyp(n,dm,du,cr,iflag); + + // update and back substitute as necessary + + if (iflag == 1) cytsys(n,dm,du,cr,rs,x); +} + +/* ---------------------------------------------------------------------- + Tinker method ctsys() + tridiagonal Cholesky factorization + all vectors are of length n+1 and are indexed from 0 to n inclusive + n,dm,du are inputs + du,cr,iflag are outputs +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::cytsyp(int n, double *dm, double *du, + double *cr, int &iflag) +{ + int i; + double temp1,temp2; + + // set error bound and test for condition n greater than 2 + + double eps = 1.0e-8; + + iflag = -2; + if (n < 3) return; + + // checking to see if matrix is positive definite + + double row = fabs(dm[1]) + fabs(du[1]) + fabs(du[n]); + + if (row == 0.0) { + iflag = 0; + return; + } + + double d = 1.0 / row; + + if (dm[1] < 0.0) { + iflag = -1; + return; + } else if (fabs(dm[1])*d <= eps) { + iflag = 0; + return; + } + + // factoring a while checking for a positive definite and + // strong nonsingular matrix a + + temp1 = du[1]; + du[1] = du[1] / dm[1]; + cr[1] = du[n] / dm[1]; + + for (i = 2; i < n; i++) { + row = fabs(dm[i]) + fabs(du[i]) + fabs(temp1); + if (row == 0.0) { + iflag = 0; + return; + } + d = 1.0 / row; + dm[i] = dm[i] - temp1*du[i-1]; + if (dm[i] < 0.0) { + iflag = -1; + return; + } else if (fabs(dm[i])*d <= eps) { + iflag = 0; + return; + } + if (i < n-1) { + cr[i] = -temp1 * cr[i-1] / dm[i]; + temp1 = du[i]; + du[i] = du[i] / dm[i]; + } else { + temp2 = du[i]; + du[i] = (du[i] - temp1*cr[i-1]) / dm[i]; + } + } + + row = fabs(du[n]) + fabs(dm[n]) + fabs(temp2); + if (row == 0.0) { + iflag = 0; + return; + } + + d = 1.0 / row; + dm[n] = dm[n] - dm[n-1]*du[n-1]*du[n-1]; + temp1 = 0.0; + + for (i = 1; i < n-1; i++) + temp1 += dm[i]*cr[i]*cr[i]; + + dm[n] = dm[n] - temp1; + + if (dm[n] < 0.0) { + iflag = -1; + return; + } else if (fabs(dm[n])*d <= eps) { + iflag = 0; + return; + } + + iflag = 1; +} + +/* ---------------------------------------------------------------------- + Tinker method cytsys() + tridiagonal solution from factors + all vectors are of length n+1 and are indexed from 0 to n inclusive + n,dm,du,cr are inputs + rs,x are outputs +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::cytsys(int n, double *dm, double *du, + double *cr, double *rs, double *x) +{ + int i; + + // updating phase + + double temp = rs[1]; + rs[1] = temp / dm[1]; + double sum = cr[1] * temp; + + for (i = 2; i < n; i++) { + temp = rs[i] - du[i-1]*temp; + rs[i] = temp / dm[i]; + if (i != n-1) sum += cr[i]*temp; + } + + temp = rs[n] - du[n-1]*temp; + temp = temp - sum; + rs[n] = temp / dm[n]; + + // back substitution phase + + x[n] = rs[n]; + x[n-1] = rs[n-1] - du[n-1]*x[n]; + for (i = n-2; i > 0; i--) + x[i] = rs[i] - du[i]*x[i+1] - cr[i]*x[n]; +} + +/* ---------------------------------------------------------------------- + chkttor tests the attached atoms at a torsion-torsion central + site and inverts the angle values if the site is chiral +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::chkttor(int ib, int ic, int id, + double &sign, double &value1, double &value2) +{ + int i,ia,ilocal,jlocal,klocal,jtype,ktype; + tagint j,k,m; + double xac,yac,zac; + double xbc,ybc,zbc; + double xdc,ydc,zdc; + double c1,c2,c3,vol; + + // test for chirality at the central torsion-torsion site + + sign = 1.0; + if (atom->nspecial[ic][0] != 4) return; + + tagint **special = atom->special; + tagint *tag = atom->tag; + + // j,k,m are atom IDs + + j = 0; + for (i = 0; i < 4; i++) { + m = special[ic][i]; + if (m != tag[ib] && m != tag[id]) { + if (j == 0) j = m; + else k = m; + } + } + + // convert atom IDs j,k to local indices jlocal,klocal closest to atom IC + + jlocal = atom->map(j); + jlocal = domain->closest_image(ic,jlocal); + jtype = amtype[jlocal]; + + klocal = atom->map(k); + klocal = domain->closest_image(ic,klocal); + ktype = amtype[klocal]; + + // atom ilocal = jlocal or klocal (or -1) + // set atom IA = ilocal + + ilocal = -1; + if (jtype > ktype) ilocal = jlocal; + if (ktype > jtype) ilocal = klocal; + if (atomic_num[jtype] > atomic_num[ktype]) ilocal = jlocal; + if (atomic_num[ktype] > atomic_num[jtype]) ilocal = klocal; + if (ilocal < 0) return; + ia = ilocal; + + // compute the signed parallelpiped volume at central site + + double **x = atom->x; + + xac = x[ia][0] - x[ic][0]; + yac = x[ia][1] - x[ic][1]; + zac = x[ia][2] - x[ic][2]; + xbc = x[ib][0] - x[ic][0]; + ybc = x[ib][1] - x[ic][1]; + zbc = x[ib][2] - x[ic][2]; + xdc = x[id][0] - x[ic][0]; + ydc = x[id][1] - x[ic][1]; + zdc = x[id][2] - x[ic][2]; + c1 = ybc*zdc - zbc*ydc; + c2 = ydc*zac - zdc*yac; + c3 = yac*zbc - zac*ybc; + vol = xac*c1 + xbc*c2 + xdc*c3; + + // invert the angle values if chirality has an inverted sign + + if (vol < 0.0) { + sign = -1.0; + value1 = -value1; + value2 = -value2; + } +} + +/* ---------------------------------------------------------------------- + perform bicubic spline interpolation + based on Tinker bcuint1.f + input = all args except last 3 + output = ansy,ansy1,ansy2 +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::bcuint1(double *y, double *y1, + double *y2, double *y12, + double x1l, double x1u, double x2l, double x2u, + double x1, double x2, + double &ansy, double &ansy1, double &ansy2) +{ + double c[4][4]; + + // get coefficients, then perform bicubic interpolation + + bcucof(y,y1,y2,y12,x1u-x1l,x2u-x2l,c); + + double t = (x1-x1l) / (x1u-x1l); + double u = (x2-x2l) / (x2u-x2l); + + ansy = ansy1 = ansy2 = 0.0; + + for (int i = 3; i >= 0; i--) { + ansy = t*ansy + ((c[i][3]*u+c[i][2])*u+c[i][1])*u + c[i][0]; + ansy1 = u*ansy1 + (3.0*c[3][i]*t+2.0*c[2][i])*t + c[1][i]; + ansy2 = t*ansy2 + (3.0*c[i][3]*u+2.0*c[i][2])*u + c[i][1]; + } + + ansy1 /= x1u-x1l; + ansy2 /= x2u-x2l; +} + +/* ---------------------------------------------------------------------- + compute bicubic spline coeffs + based on Tinker bcucof.f + input = all args except c + output = c +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::bcucof(double *y, double *y1, double *y2, double *y12, + double d1, double d2, double c[4][4]) +{ + int i,j,k; + double xx; + double x[16],cl[16]; + + // pack a temporary vector of corner values + + double d1d2 = d1 * d2; + for (i = 0; i < 4; i++) { + x[i] = y[i]; + x[i+4] = y1[i] * d1; + x[i+8] = y2[i] * d2; + x[i+12] = y12[i] * d1d2; + } + + // matrix multiply by the stored weight table + + for (i = 0; i < 16; i++) { + xx = 0.0; + for (k = 0; k < 16; k++) + xx += WT[i][k]*x[k]; + cl[i] = xx; + } + + // unpack the result into the coefficient table + + j = 0; + for (i = 0; i < 4; i++) { + for (k = 0; k < 4; k++) { + c[i][k] = cl[j++]; + } + } +} + +// ---------------------------------------------------------------------- +// ---------------------------------------------------------------------- +// methods to read and write data file +// ---------------------------------------------------------------------- +// ---------------------------------------------------------------------- + +void FixAmoebaBiTorsion::read_data_header(char *line) +{ + if (strstr(line,"bitorsions")) { + sscanf(line,BIGINT_FORMAT,&nbitorsions); + } else error->all(FLERR, + "Invalid read data header line for fix amoeba/bitorsion"); +} + +/* ---------------------------------------------------------------------- + unpack N lines in buf from section of data file labeled by keyword + id_offset is applied to atomID fields if multiple data files are read +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::read_data_section(char *keyword, int n, char *buf, + tagint id_offset) +{ + int m,tmp,itype; + tagint atom1,atom2,atom3,atom4,atom5; + char *next; + + next = strchr(buf,'\n'); + *next = '\0'; + int nwords = utils::count_words(utils::trim_comment(buf)); + *next = '\n'; + + if (nwords != 7) + error->all(FLERR,"Incorrect {} format in data file",keyword); + + // loop over lines of BiTorsions + // tokenize the line into values + // each atom in the BiTorsion stores it + + for (int i = 0; i < n; i++) { + next = strchr(buf,'\n'); + *next = '\0'; + sscanf(buf,"%d %d " TAGINT_FORMAT " " TAGINT_FORMAT " " TAGINT_FORMAT + " " TAGINT_FORMAT " " TAGINT_FORMAT, + &tmp,&itype,&atom1,&atom2,&atom3,&atom4,&atom5); + + atom1 += id_offset; + atom2 += id_offset; + atom3 += id_offset; + atom4 += id_offset; + atom5 += id_offset; + + if ((m = atom->map(atom1)) >= 0) { + if (num_bitorsion[m] == BITORSIONMAX) + error->one(FLERR,"Too many BIORSIONS for one atom"); + bitorsion_type[m][num_bitorsion[m]] = itype; + bitorsion_atom1[m][num_bitorsion[m]] = atom1; + bitorsion_atom2[m][num_bitorsion[m]] = atom2; + bitorsion_atom3[m][num_bitorsion[m]] = atom3; + bitorsion_atom4[m][num_bitorsion[m]] = atom4; + bitorsion_atom5[m][num_bitorsion[m]] = atom5; + num_bitorsion[m]++; + } + + if ((m = atom->map(atom2)) >= 0) { + if (num_bitorsion[m] == BITORSIONMAX) + error->one(FLERR,"Too many BIORSIONS for one atom"); + bitorsion_type[m][num_bitorsion[m]] = itype; + bitorsion_atom1[m][num_bitorsion[m]] = atom1; + bitorsion_atom2[m][num_bitorsion[m]] = atom2; + bitorsion_atom3[m][num_bitorsion[m]] = atom3; + bitorsion_atom4[m][num_bitorsion[m]] = atom4; + bitorsion_atom5[m][num_bitorsion[m]] = atom5; + num_bitorsion[m]++; + } + + if ((m = atom->map(atom3)) >= 0) { + if (num_bitorsion[m] == BITORSIONMAX) + error->one(FLERR,"Too many BIORSIONS for one atom"); + bitorsion_type[m][num_bitorsion[m]] = itype; + bitorsion_atom1[m][num_bitorsion[m]] = atom1; + bitorsion_atom2[m][num_bitorsion[m]] = atom2; + bitorsion_atom3[m][num_bitorsion[m]] = atom3; + bitorsion_atom4[m][num_bitorsion[m]] = atom4; + bitorsion_atom5[m][num_bitorsion[m]] = atom5; + num_bitorsion[m]++; + } + + if ((m = atom->map(atom4)) >= 0) { + if (num_bitorsion[m] == BITORSIONMAX) + error->one(FLERR,"Too many BIORSIONS for one atom"); + bitorsion_type[m][num_bitorsion[m]] = itype; + bitorsion_atom1[m][num_bitorsion[m]] = atom1; + bitorsion_atom2[m][num_bitorsion[m]] = atom2; + bitorsion_atom3[m][num_bitorsion[m]] = atom3; + bitorsion_atom4[m][num_bitorsion[m]] = atom4; + bitorsion_atom5[m][num_bitorsion[m]] = atom5; + num_bitorsion[m]++; + } + + if ((m = atom->map(atom5)) >= 0) { + if (num_bitorsion[m] == BITORSIONMAX) + error->one(FLERR,"Too many BIORSIONS for one atom"); + bitorsion_type[m][num_bitorsion[m]] = itype; + bitorsion_atom1[m][num_bitorsion[m]] = atom1; + bitorsion_atom2[m][num_bitorsion[m]] = atom2; + bitorsion_atom3[m][num_bitorsion[m]] = atom3; + bitorsion_atom4[m][num_bitorsion[m]] = atom4; + bitorsion_atom5[m][num_bitorsion[m]] = atom5; + num_bitorsion[m]++; + } + + buf = next + 1; + } +} + +/* ---------------------------------------------------------------------- */ + +bigint FixAmoebaBiTorsion::read_data_skip_lines(char * /*keyword*/) +{ + return nbitorsions; +} + +/* ---------------------------------------------------------------------- + write Mth header line to file + only called by proc 0 +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::write_data_header(FILE *fp, int /*mth*/) +{ + fprintf(fp,BIGINT_FORMAT " bitorsions\n",nbitorsions); +} + +/* ---------------------------------------------------------------------- + return size I own for Mth data section + # of data sections = 1 for this fix + // nx = # of BiTorsions owned by my local atoms + // only atom3 owns the BiTorsion in this context + // ny = 6 columns = type + 5 atom IDs +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::write_data_section_size(int /*mth*/, int &nx, int &ny) +{ + int i,m; + + tagint *tag = atom->tag; + int nlocal = atom->nlocal; + + nx = 0; + for (i = 0; i < nlocal; i++) + for (m = 0; m < num_bitorsion[i]; m++) + if (bitorsion_atom3[i][m] == tag[i]) nx++; + + ny = 6; +} + +/* ---------------------------------------------------------------------- + pack values for Mth data section into 2d buf + buf allocated by caller as owned BiTorsions by 6 +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::write_data_section_pack(int /*mth*/, double **buf) +{ + int i,m; + + // 1st column = BiTorsion type + // 2nd-6th columns = 5 atom IDs + + tagint *tag = atom->tag; + int nlocal = atom->nlocal; + + int n = 0; + for (i = 0; i < nlocal; i++) { + for (m = 0; m < num_bitorsion[i]; m++) { + if (bitorsion_atom3[i][m] != tag[i]) continue; + buf[n][0] = ubuf(bitorsion_type[i][m]).d; + buf[n][1] = ubuf(bitorsion_atom1[i][m]).d; + buf[n][2] = ubuf(bitorsion_atom2[i][m]).d; + buf[n][3] = ubuf(bitorsion_atom3[i][m]).d; + buf[n][4] = ubuf(bitorsion_atom4[i][m]).d; + buf[n][5] = ubuf(bitorsion_atom5[i][m]).d; + n++; + } + } +} + +/* ---------------------------------------------------------------------- + write section keyword for Mth data section to file + use Molecules or Charges if that is only field, else use fix ID + only called by proc 0 +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::write_data_section_keyword(int /*mth*/, FILE *fp) +{ + fprintf(fp,"\nBiTorsions\n\n"); +} + +/* ---------------------------------------------------------------------- + write N lines from buf to file + convert buf fields to int or double depending on styles + index can be used to prepend global numbering + only called by proc 0 +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::write_data_section(int /*mth*/, FILE *fp, + int n, double **buf, int index) +{ + for (int i = 0; i < n; i++) + fprintf(fp,"%d %d " TAGINT_FORMAT " " TAGINT_FORMAT + " " TAGINT_FORMAT " " TAGINT_FORMAT " " TAGINT_FORMAT "\n", + index+i,(int) ubuf(buf[i][0]).i,(tagint) ubuf(buf[i][1]).i, + (tagint) ubuf(buf[i][2]).i,(tagint) ubuf(buf[i][3]).i, + (tagint) ubuf(buf[i][4]).i,(tagint) ubuf(buf[i][5]).i); +} + +// ---------------------------------------------------------------------- +// ---------------------------------------------------------------------- +// methods for restart and communication +// ---------------------------------------------------------------------- +// ---------------------------------------------------------------------- + +/* ---------------------------------------------------------------------- + pack entire state of Fix into one write +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::write_restart(FILE *fp) +{ + if (comm->me == 0) { + int size = sizeof(bigint); + fwrite(&size,sizeof(int),1,fp); + fwrite(&nbitorsions,sizeof(bigint),1,fp); + } +} + +/* ---------------------------------------------------------------------- + use state info from restart file to restart the Fix +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::restart(char *buf) +{ + nbitorsions = *((bigint *) buf); +} + +/* ---------------------------------------------------------------------- + pack values in local atom-based arrays for restart file +------------------------------------------------------------------------- */ + +int FixAmoebaBiTorsion::pack_restart(int i, double *buf) +{ + int n = 1; + for (int m = 0; m < num_bitorsion[i]; m++) { + buf[n++] = ubuf(MAX(bitorsion_type[i][m],-bitorsion_type[i][m])).d; + buf[n++] = ubuf(bitorsion_atom1[i][m]).d; + buf[n++] = ubuf(bitorsion_atom2[i][m]).d; + buf[n++] = ubuf(bitorsion_atom3[i][m]).d; + buf[n++] = ubuf(bitorsion_atom4[i][m]).d; + buf[n++] = ubuf(bitorsion_atom5[i][m]).d; + } + buf[0] = n; + + return n; +} + +/* ---------------------------------------------------------------------- + unpack values from atom->extra array to restart the fix +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::unpack_restart(int nlocal, int nth) +{ + double **extra = atom->extra; + + // skip to Nth set of extra values + // unpack the Nth first values this way because other fixes pack them + + int n = 0; + for (int i = 0; i < nth; i++) n += static_cast (extra[nlocal][n]); + + int count = static_cast (extra[nlocal][n++]); + num_bitorsion[nlocal] = (count-1)/6; + + for (int m = 0; m < num_bitorsion[nlocal]; m++) { + bitorsion_type[nlocal][m] = (int) ubuf(extra[nlocal][n++]).i; + bitorsion_atom1[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i; + bitorsion_atom2[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i; + bitorsion_atom3[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i; + bitorsion_atom4[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i; + bitorsion_atom5[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i; + } +} + +/* ---------------------------------------------------------------------- + maxsize of any atom's restart data +------------------------------------------------------------------------- */ + +int FixAmoebaBiTorsion::maxsize_restart() +{ + return 1 + BITORSIONMAX*6; +} + +/* ---------------------------------------------------------------------- + size of atom nlocal's restart data +------------------------------------------------------------------------- */ + +int FixAmoebaBiTorsion::size_restart(int nlocal) +{ + return 1 + num_bitorsion[nlocal]*6; +} + +/* ---------------------------------------------------------------------- + allocate atom-based array +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::grow_arrays(int nmax) +{ + num_bitorsion = memory->grow(num_bitorsion,nmax,"cmap:num_bitorsion"); + bitorsion_type = memory->grow(bitorsion_type,nmax,BITORSIONMAX, + "cmap:bitorsion_type"); + bitorsion_atom1 = memory->grow(bitorsion_atom1,nmax,BITORSIONMAX, + "cmap:bitorsion_atom1"); + bitorsion_atom2 = memory->grow(bitorsion_atom2,nmax,BITORSIONMAX, + "cmap:bitorsion_atom2"); + bitorsion_atom3 = memory->grow(bitorsion_atom3,nmax,BITORSIONMAX, + "cmap:bitorsion_atom3"); + bitorsion_atom4 = memory->grow(bitorsion_atom4,nmax,BITORSIONMAX, + "cmap:bitorsion_atom4"); + bitorsion_atom5 = memory->grow(bitorsion_atom5,nmax,BITORSIONMAX, + "cmap:bitorsion_atom5"); + + // must initialize num_bitorsion to 0 for added atoms + // may never be set for some atoms when data file is read + + for (int i = nmax_previous; i < nmax; i++) num_bitorsion[i] = 0; + nmax_previous = nmax; +} + +/* ---------------------------------------------------------------------- + copy values within local atom-based array +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::copy_arrays(int i, int j, int /*delflag*/) +{ + num_bitorsion[j] = num_bitorsion[i]; + + for (int k = 0; k < num_bitorsion[j]; k++) { + bitorsion_type[j][k] = bitorsion_type[i][k]; + bitorsion_atom1[j][k] = bitorsion_atom1[i][k]; + bitorsion_atom2[j][k] = bitorsion_atom2[i][k]; + bitorsion_atom3[j][k] = bitorsion_atom3[i][k]; + bitorsion_atom4[j][k] = bitorsion_atom4[i][k]; + bitorsion_atom5[j][k] = bitorsion_atom5[i][k]; + } +} + +/* ---------------------------------------------------------------------- + initialize one atom's array values, called when atom is created +------------------------------------------------------------------------- */ + +void FixAmoebaBiTorsion::set_arrays(int i) +{ + num_bitorsion[i] = 0; +} + +/* ---------------------------------------------------------------------- + pack values for border communication at re-neighboring +------------------------------------------------------------------------- */ + +int FixAmoebaBiTorsion::pack_border(int n, int *list, double *buf) +{ + int i, j, k; + + int **nspecial = atom->nspecial; + tagint **special = atom->special; + + int m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = ubuf(nspecial[j][0]).d; + for (k = 0; k < nspecial[j][0]; k++) + buf[m++] = ubuf(special[j][k]).d; + } + + return m; +} + +/* ---------------------------------------------------------------------- + unpack values for border communication at re-neighboring +------------------------------------------------------------------------- */ + +int FixAmoebaBiTorsion::unpack_border(int n, int first, double *buf) +{ + int i, k, last; + + int **nspecial = atom->nspecial; + tagint **special = atom->special; + + int m = 0; + last = first + n; + for (i = first; i < last; i++) { + nspecial[i][0] = (int) ubuf(buf[m++]).i; + for (k = 0; k < nspecial[i][0]; k++) + special[i][k] = (tagint) ubuf(buf[m++]).i; + } + + return m; +} + +/* ---------------------------------------------------------------------- + pack values in local atom-based array for exchange with another proc +------------------------------------------------------------------------- */ + +int FixAmoebaBiTorsion::pack_exchange(int i, double *buf) +{ + int n = 0; + buf[n++] = ubuf(num_bitorsion[i]).d; + for (int m = 0; m < num_bitorsion[i]; m++) { + buf[n++] = ubuf(bitorsion_type[i][m]).d; + buf[n++] = ubuf(bitorsion_atom1[i][m]).d; + buf[n++] = ubuf(bitorsion_atom2[i][m]).d; + buf[n++] = ubuf(bitorsion_atom3[i][m]).d; + buf[n++] = ubuf(bitorsion_atom4[i][m]).d; + buf[n++] = ubuf(bitorsion_atom5[i][m]).d; + } + return n; +} + +/* ---------------------------------------------------------------------- + unpack values in local atom-based array from exchange with another proc +------------------------------------------------------------------------- */ + +int FixAmoebaBiTorsion::unpack_exchange(int nlocal, double *buf) +{ + int n = 0; + num_bitorsion[nlocal] = (int) ubuf(buf[n++]).i; + for (int m = 0; m < num_bitorsion[nlocal]; m++) { + bitorsion_type[nlocal][m] = (int) ubuf(buf[n++]).i; + bitorsion_atom1[nlocal][m] = (tagint) ubuf(buf[n++]).i; + bitorsion_atom2[nlocal][m] = (tagint) ubuf(buf[n++]).i; + bitorsion_atom3[nlocal][m] = (tagint) ubuf(buf[n++]).i; + bitorsion_atom4[nlocal][m] = (tagint) ubuf(buf[n++]).i; + bitorsion_atom5[nlocal][m] = (tagint) ubuf(buf[n++]).i; + } + return n; +} + +/* ---------------------------------------------------------------------- + memory usage of local atom-based arrays +------------------------------------------------------------------------- */ + +double FixAmoebaBiTorsion::memory_usage() +{ + int nmax = atom->nmax; + double bytes = (double)nmax * sizeof(int); // num_bitorsion + bytes += (double)nmax*BITORSIONMAX * sizeof(int); // bitorsion_type + bytes += (double)5*nmax*BITORSIONMAX * sizeof(int); // bitorsion_atom 12345 + bytes += (double)6*max_bitorsion_list * sizeof(int); // bitorsion_list + return bytes; +} diff --git a/src/AMOEBA/fix_amoeba_bitorsion.h b/src/AMOEBA/fix_amoeba_bitorsion.h new file mode 100644 index 0000000000..f9d1da3b52 --- /dev/null +++ b/src/AMOEBA/fix_amoeba_bitorsion.h @@ -0,0 +1,126 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef FIX_CLASS +// clang-format off +FixStyle(amoeba/bitorsion,FixAmoebaBiTorsion); +// clang-format on +#else + +#ifndef LMP_FIX_AMOEBA_BITORSION_H +#define LMP_FIX_AMOEBA_BITORSION_H + +#include "fix.h" +namespace LAMMPS_NS { + +class FixAmoebaBiTorsion : public Fix { + public: + FixAmoebaBiTorsion(class LAMMPS *, int, char **); + ~FixAmoebaBiTorsion() override; + int setmask() override; + void init() override; + void setup(int) override; + void setup_pre_neighbor() override; + void setup_pre_reverse(int, int) override; + void min_setup(int) override; + void pre_neighbor() override; + void pre_reverse(int, int) override; + void post_force(int) override; + void post_force_respa(int, int, int) override; + void min_post_force(int) override; + double compute_scalar() override; + + void read_data_header(char *) override; + void read_data_section(char *, int, char *, tagint) override; + bigint read_data_skip_lines(char *) override; + void write_data_header(FILE *, int) override; + void write_data_section_size(int, int &, int &) override; + void write_data_section_pack(int, double **) override; + void write_data_section_keyword(int, FILE *) override; + void write_data_section(int, FILE *, int, double **, int) override; + + void write_restart(FILE *) override; + void restart(char *) override; + int pack_restart(int, double *) override; + void unpack_restart(int, int) override; + int size_restart(int) override; + int maxsize_restart() override; + + void grow_arrays(int) override; + void copy_arrays(int, int, int) override; + void set_arrays(int) override; + int pack_border(int, int *, double *) override; + int unpack_border(int, int, double *) override; + int pack_exchange(int, double *) override; + int unpack_exchange(int, double *) override; + + double memory_usage() override; + + private: + int nprocs, me; + int eflag_caller; + int ilevel_respa; + int disable; + bigint nbitorsions; // total count of all bitorsions in system + double ebitorsion; + double onefifth; + + // per-atom data for bitorsions stored with each owned atom + + int *num_bitorsion; + int **bitorsion_type; + tagint **bitorsion_atom1, **bitorsion_atom2, **bitorsion_atom3; + tagint **bitorsion_atom4, **bitorsion_atom5; + + // previous max atoms on this proc before grow() is called + + int nmax_previous; + + // list of all bitorsions to compute on this proc + + int nbitorsion_list; + int max_bitorsion_list; + int **bitorsion_list; + + // BiTorsion grid and spline data + + int nbitypes; + int *nxgrid, *nygrid; + double **ttx, **tty, **tbf; + double **tbx, **tby, **tbxy; + + // data from PairAmoeba + + class Pair *pair; + int *amtype, *atomic_num; + + // local methods + + void read_grid_data(char *); + void create_splines(); + void nspline(int, double *, double *, double *, double *, double *, double *, double *, double *, + double *); + void cspline(int, double *, double *, double *, double *, double *, double *, double *, double *, + double *, double *); + void cytsy(int, double *, double *, double *, double *, double *, int &); + void cytsyp(int, double *, double *, double *, int &); + void cytsys(int, double *, double *, double *, double *, double *); + + void chkttor(int, int, int, double &, double &, double &); + void bcuint1(double *, double *, double *, double *, double, double, double, double, double, + double, double &, double &, double &); + void bcucof(double *, double *, double *, double *, double, double, double[][4]); +}; +} // namespace LAMMPS_NS +#endif +#endif diff --git a/src/AMOEBA/fix_amoeba_pitorsion.cpp b/src/AMOEBA/fix_amoeba_pitorsion.cpp new file mode 100644 index 0000000000..d8d712cfcb --- /dev/null +++ b/src/AMOEBA/fix_amoeba_pitorsion.cpp @@ -0,0 +1,1114 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "fix_amoeba_pitorsion.h" + +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "math_const.h" +#include "memory.h" +#include "pair.h" +#include "respa.h" +#include "update.h" + +#include +#include + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathConst; + +#define PITORSIONMAX 6 // max # of PiTorsion terms stored by one atom +#define LISTDELTA 8196 +#define LB_FACTOR 1.5 + +/* ---------------------------------------------------------------------- */ + +FixAmoebaPiTorsion::FixAmoebaPiTorsion(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg), num_pitorsion(nullptr), pitorsion_type(nullptr), pitorsion_atom1(nullptr), + pitorsion_atom2(nullptr), pitorsion_atom3(nullptr), pitorsion_atom4(nullptr), pitorsion_atom5(nullptr), + pitorsion_atom6(nullptr), pitorsion_list(nullptr) +{ + if (narg != 3) error->all(FLERR,"Illegal fix amoeba/pitorsion command"); + + // settings for this fix + + restart_global = 1; + restart_peratom = 1; + energy_global_flag = energy_peratom_flag = 1; + virial_global_flag = virial_peratom_flag = 1; + thermo_energy = thermo_virial = 1; + centroidstressflag = CENTROID_NOTAVAIL; + peratom_freq = 1; + scalar_flag = 1; + global_freq = 1; + extscalar = 1; + extvector = 1; + wd_header = 1; + wd_section = 1; + respa_level_support = 1; + ilevel_respa = 0; + + MPI_Comm_rank(world,&me); + MPI_Comm_size(world,&nprocs); + + // perform initial allocation of atom-based arrays + + num_pitorsion = nullptr; + pitorsion_type = nullptr; + pitorsion_atom1 = nullptr; + pitorsion_atom2 = nullptr; + pitorsion_atom3 = nullptr; + pitorsion_atom4 = nullptr; + pitorsion_atom5 = nullptr; + pitorsion_atom6 = nullptr; + + // register with Atom class + + nmax_previous = 0; + grow_arrays(atom->nmax); + atom->add_callback(Atom::GROW); + atom->add_callback(Atom::RESTART); + + // list of all pitorsions to compute on this proc + + npitorsion_list = 0; + max_pitorsion_list = 0; + pitorsion_list = nullptr; + + // pitorsion coeff + + kpit = nullptr; + + // zero thermo energy + + epitorsion = 0.0; +} + +/* --------------------------------------------------------------------- */ + +FixAmoebaPiTorsion::~FixAmoebaPiTorsion() +{ + // unregister callbacks to this fix from Atom class + + atom->delete_callback(id,Atom::GROW); + atom->delete_callback(id,Atom::RESTART); + + // per-atom data + + memory->destroy(num_pitorsion); + memory->destroy(pitorsion_type); + memory->destroy(pitorsion_atom1); + memory->destroy(pitorsion_atom2); + memory->destroy(pitorsion_atom3); + memory->destroy(pitorsion_atom4); + memory->destroy(pitorsion_atom5); + memory->destroy(pitorsion_atom6); + + // local list of bitorsions to compute + + memory->destroy(pitorsion_list); + + // coeff + + memory->destroy(kpit); +} + +/* ---------------------------------------------------------------------- */ + +int FixAmoebaPiTorsion::setmask() +{ + int mask = 0; + mask |= PRE_NEIGHBOR; + mask |= PRE_REVERSE; + mask |= POST_FORCE; + mask |= POST_FORCE_RESPA; + mask |= MIN_POST_FORCE; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::init() +{ + if (utils::strmatch(update->integrate_style,"^respa")) { + ilevel_respa = ((Respa *) update->integrate)->nlevels-1; + if (respa_level >= 0) ilevel_respa = MIN(respa_level,ilevel_respa); + } + + // check if PairAmoeba or PairHippo disabled pitorsion terms + + Pair *pair = nullptr; + pair = force->pair_match("amoeba",1,0); + if (!pair) pair = force->pair_match("hippo",1,0); + + if (!pair) disable = 0; + else { + int tmp; + int flag = *((int *) pair->extract("pitorsion_flag",tmp)); + disable = flag ? 0 : 1; + } + + // constant + + onesixth = 1.0/6.0; +} + +/* --------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::setup(int vflag) +{ + pre_neighbor(); + + if (utils::strmatch(update->integrate_style,"^verlet")) + post_force(vflag); + else { + ((Respa *) update->integrate)->copy_flevel_f(ilevel_respa); + post_force_respa(vflag,ilevel_respa,0); + ((Respa *) update->integrate)->copy_f_flevel(ilevel_respa); + } +} + +/* --------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::setup_pre_neighbor() +{ + pre_neighbor(); +} + +/* --------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::setup_pre_reverse(int eflag, int vflag) +{ + pre_reverse(eflag,vflag); +} + +/* --------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::min_setup(int vflag) +{ + pre_neighbor(); + post_force(vflag); +} + +/* ---------------------------------------------------------------------- + create local list of pitorsions + if one or more atoms in pitorsion are on this proc, + this proc lists the pitorsion exactly once +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::pre_neighbor() +{ + int i,m,atom1,atom2,atom3,atom4,atom5,atom6; + + // guesstimate initial length of local pitorsion list + // if npitorsions was not set (due to read_restart, no read_data), + // then list will grow by LISTDELTA chunks + + if (max_pitorsion_list == 0) { + if (nprocs == 1) max_pitorsion_list = npitorsions; + else max_pitorsion_list = + static_cast (LB_FACTOR*npitorsions/nprocs); + memory->create(pitorsion_list,max_pitorsion_list,7, + "pitorsion:pitorsion_list"); + } + + int nlocal = atom->nlocal; + npitorsion_list = 0; + + for (i = 0; i < nlocal; i++) { + for (m = 0; m < num_pitorsion[i]; m++) { + atom1 = atom->map(pitorsion_atom1[i][m]); + atom2 = atom->map(pitorsion_atom2[i][m]); + atom3 = atom->map(pitorsion_atom3[i][m]); + atom4 = atom->map(pitorsion_atom4[i][m]); + atom5 = atom->map(pitorsion_atom5[i][m]); + atom6 = atom->map(pitorsion_atom6[i][m]); + + if (atom1 == -1 || atom2 == -1 || atom3 == -1 || + atom4 == -1 || atom5 == -1 || atom6 == -1) + error->one(FLERR,"PiTorsion atoms {} {} {} {} {} {} missing on " + "proc {} at step {}", + pitorsion_atom1[i][m],pitorsion_atom2[i][m], + pitorsion_atom3[i][m],pitorsion_atom4[i][m], + pitorsion_atom5[i][m],pitorsion_atom6[i][m], + me,update->ntimestep); + atom1 = domain->closest_image(i,atom1); + atom2 = domain->closest_image(i,atom2); + atom3 = domain->closest_image(i,atom3); + atom4 = domain->closest_image(i,atom4); + atom5 = domain->closest_image(i,atom5); + atom6 = domain->closest_image(i,atom6); + + if (i <= atom1 && i <= atom2 && i <= atom3 && + i <= atom4 && i <= atom5 && i <= atom6) { + if (npitorsion_list == max_pitorsion_list) { + max_pitorsion_list += LISTDELTA; + memory->grow(pitorsion_list,max_pitorsion_list,7, + "pitorsion:pitorsion_list"); + } + pitorsion_list[npitorsion_list][0] = atom1; + pitorsion_list[npitorsion_list][1] = atom2; + pitorsion_list[npitorsion_list][2] = atom3; + pitorsion_list[npitorsion_list][3] = atom4; + pitorsion_list[npitorsion_list][4] = atom5; + pitorsion_list[npitorsion_list][5] = atom6; + pitorsion_list[npitorsion_list][6] = pitorsion_type[i][m]; + npitorsion_list++; + } + } + } +} + +/* ---------------------------------------------------------------------- + store eflag, so can use it in post_force to tally per-atom energies +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::pre_reverse(int eflag, int /*vflag*/) +{ + eflag_caller = eflag; +} + +/* ---------------------------------------------------------------------- + compute PiTorsion terms +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::post_force(int vflag) +{ + if (disable) return; + + int ia,ib,ic,id,ie,ig,ptype; + double e,dedphi,engfraction; + double xt,yt,zt,rt2; + double xu,yu,zu,ru2; + double xtu,ytu,ztu; + double rdc,rtru; + double v2,c2,s2; + double phi2,dphi2; + double sine,cosine; + double sine2,cosine2; + double xia,yia,zia; + double xib,yib,zib; + double xic,yic,zic; + double xid,yid,zid; + double xie,yie,zie; + double xig,yig,zig; + double xip,yip,zip; + double xiq,yiq,ziq; + double xad,yad,zad; + double xbd,ybd,zbd; + double xec,yec,zec; + double xgc,ygc,zgc; + double xcp,ycp,zcp; + double xdc,ydc,zdc; + double xqd,yqd,zqd; + double xdp,ydp,zdp; + double xqc,yqc,zqc; + double dedxt,dedyt,dedzt; + double dedxu,dedyu,dedzu; + double dedxia,dedyia,dedzia; + double dedxib,dedyib,dedzib; + double dedxic,dedyic,dedzic; + double dedxid,dedyid,dedzid; + double dedxie,dedyie,dedzie; + double dedxig,dedyig,dedzig; + double dedxip,dedyip,dedzip; + double dedxiq,dedyiq,dedziq; + double vxterm,vyterm,vzterm; + + int nlist,list[6]; + double v[6]; + + epitorsion = 0.0; + int eflag = eflag_caller; + ev_init(eflag,vflag); + + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + + for (int n = 0; n < npitorsion_list; n++) { + ia = pitorsion_list[n][0]; + ib = pitorsion_list[n][1]; + ic = pitorsion_list[n][2]; + id = pitorsion_list[n][3]; + ie = pitorsion_list[n][4]; + ig = pitorsion_list[n][5]; + ptype = pitorsion_list[n][6]; + + // compute the value of the pi-system torsion angle + + xia = x[ia][0]; + yia = x[ia][1]; + zia = x[ia][2]; + xib = x[ib][0]; + yib = x[ib][1]; + zib = x[ib][2]; + xic = x[ic][0]; + yic = x[ic][1]; + zic = x[ic][2]; + xid = x[id][0]; + yid = x[id][1]; + zid = x[id][2]; + xie = x[ie][0]; + yie = x[ie][1]; + zie = x[ie][2]; + xig = x[ig][0]; + yig = x[ig][1]; + zig = x[ig][2]; + + xad = xia - xid; + yad = yia - yid; + zad = zia - zid; + xbd = xib - xid; + ybd = yib - yid; + zbd = zib - zid; + xec = xie - xic; + yec = yie - yic; + zec = zie - zic; + xgc = xig - xic; + ygc = yig - yic; + zgc = zig - zic; + + xip = yad*zbd - ybd*zad + xic; + yip = zad*xbd - zbd*xad + yic; + zip = xad*ybd - xbd*yad + zic; + xiq = yec*zgc - ygc*zec + xid; + yiq = zec*xgc - zgc*xec + yid; + ziq = xec*ygc - xgc*yec + zid; + xcp = xic - xip; + ycp = yic - yip; + zcp = zic - zip; + xdc = xid - xic; + ydc = yid - yic; + zdc = zid - zic; + xqd = xiq - xid; + yqd = yiq - yid; + zqd = ziq - zid; + + xt = ycp*zdc - ydc*zcp; + yt = zcp*xdc - zdc*xcp; + zt = xcp*ydc - xdc*ycp; + xu = ydc*zqd - yqd*zdc; + yu = zdc*xqd - zqd*xdc; + zu = xdc*yqd - xqd*ydc; + xtu = yt*zu - yu*zt; + ytu = zt*xu - zu*xt; + ztu = xt*yu - xu*yt; + rt2 = xt*xt + yt*yt + zt*zt; + ru2 = xu*xu + yu*yu + zu*zu; + rtru = sqrt(rt2*ru2); + + if (rtru <= 0.0) continue; + + rdc = sqrt(xdc*xdc + ydc*ydc + zdc*zdc); + cosine = (xt*xu + yt*yu + zt*zu) / rtru; + sine = (xdc*xtu + ydc*ytu + zdc*ztu) / (rdc*rtru); + + // set the pi-system torsion parameters for this angle + + v2 = kpit[ptype]; + c2 = -1.0; + s2 = 0.0; + + // compute the multiple angle trigonometry and the phase terms + + cosine2 = cosine*cosine - sine*sine; + sine2 = 2.0 * cosine * sine; + phi2 = 1.0 + (cosine2*c2 + sine2*s2); + dphi2 = 2.0 * (cosine2*s2 - sine2*c2); + + // calculate pi-system torsion energy and master chain rule term + + e = v2 * phi2; + dedphi = v2 * dphi2; + + // fraction of energy for each atom + + engfraction = e * onesixth; + + // chain rule terms for first derivative components + + xdp = xid - xip; + ydp = yid - yip; + zdp = zid - zip; + xqc = xiq - xic; + yqc = yiq - yic; + zqc = ziq - zic; + dedxt = dedphi * (yt*zdc - ydc*zt) / (rt2*rdc); + dedyt = dedphi * (zt*xdc - zdc*xt) / (rt2*rdc); + dedzt = dedphi * (xt*ydc - xdc*yt) / (rt2*rdc); + dedxu = -dedphi * (yu*zdc - ydc*zu) / (ru2*rdc); + dedyu = -dedphi * (zu*xdc - zdc*xu) / (ru2*rdc); + dedzu = -dedphi * (xu*ydc - xdc*yu) / (ru2*rdc); + + // compute first derivative components for pi-system angle + + dedxip = zdc*dedyt - ydc*dedzt; + dedyip = xdc*dedzt - zdc*dedxt; + dedzip = ydc*dedxt - xdc*dedyt; + dedxic = ydp*dedzt - zdp*dedyt + zqd*dedyu - yqd*dedzu; + dedyic = zdp*dedxt - xdp*dedzt + xqd*dedzu - zqd*dedxu; + dedzic = xdp*dedyt - ydp*dedxt + yqd*dedxu - xqd*dedyu; + dedxid = zcp*dedyt - ycp*dedzt + yqc*dedzu - zqc*dedyu; + dedyid = xcp*dedzt - zcp*dedxt + zqc*dedxu - xqc*dedzu; + dedzid = ycp*dedxt - xcp*dedyt + xqc*dedyu - yqc*dedxu; + dedxiq = zdc*dedyu - ydc*dedzu; + dedyiq = xdc*dedzu - zdc*dedxu; + dedziq = ydc*dedxu - xdc*dedyu; + + // compute first derivative components for individual atoms + + dedxia = ybd*dedzip - zbd*dedyip; + dedyia = zbd*dedxip - xbd*dedzip; + dedzia = xbd*dedyip - ybd*dedxip; + dedxib = zad*dedyip - yad*dedzip; + dedyib = xad*dedzip - zad*dedxip; + dedzib = yad*dedxip - xad*dedyip; + dedxie = ygc*dedziq - zgc*dedyiq; + dedyie = zgc*dedxiq - xgc*dedziq; + dedzie = xgc*dedyiq - ygc*dedxiq; + dedxig = zec*dedyiq - yec*dedziq; + dedyig = xec*dedziq - zec*dedxiq; + dedzig = yec*dedxiq - xec*dedyiq; + dedxic = dedxic + dedxip - dedxie - dedxig; + dedyic = dedyic + dedyip - dedyie - dedyig; + dedzic = dedzic + dedzip - dedzie - dedzig; + dedxid = dedxid + dedxiq - dedxia - dedxib; + dedyid = dedyid + dedyiq - dedyia - dedyib; + dedzid = dedzid + dedziq - dedzia - dedzib; + + // forces and energy + + if (ia < nlocal) { + epitorsion += engfraction; + f[ia][0] -= dedxia; + f[ia][1] -= dedyia; + f[ia][2] -= dedzia; + } + + if (ib < nlocal) { + epitorsion += engfraction; + f[ib][0] -= dedxib; + f[ib][1] -= dedyib; + f[ib][2] -= dedzib; + } + + if (ic < nlocal) { + epitorsion += engfraction; + f[ic][0] -= dedxic; + f[ic][1] -= dedyic; + f[ic][2] -= dedzic; + } + + if (id < nlocal) { + epitorsion += engfraction; + f[id][0] -= dedxid; + f[id][1] -= dedyid; + f[id][2] -= dedzid; + } + + if (ie < nlocal) { + epitorsion += engfraction; + f[ie][0] -= dedxie; + f[ie][1] -= dedyie; + f[ie][2] -= dedzie; + } + + if (ig < nlocal) { + epitorsion += engfraction; + f[ig][0] -= dedxig; + f[ig][1] -= dedyig; + f[ig][2] -= dedzig; + } + + // virial tensor components + + if (evflag) { + nlist = 0; + if (ia < nlocal) list[nlist++] = ia; + if (ib < nlocal) list[nlist++] = ib; + if (ic < nlocal) list[nlist++] = ic; + if (id < nlocal) list[nlist++] = id; + if (ie < nlocal) list[nlist++] = ie; + if (ig < nlocal) list[nlist++] = ig; + + vxterm = dedxid + dedxia + dedxib; + vyterm = dedyid + dedyia + dedyib; + vzterm = dedzid + dedzia + dedzib; + v[0] = -xdc*vxterm - xcp*dedxip + xqd*dedxiq; + v[1] = -ydc*vyterm - ycp*dedyip + yqd*dedyiq; + v[2] = -zdc*vzterm - zcp*dedzip + zqd*dedziq; + v[3] = -ydc*vxterm - ycp*dedxip + yqd*dedxiq; + v[4] = -zdc*vxterm - zcp*dedxip + zqd*dedxiq; + v[5] = -zdc*vyterm - zcp*dedyip + zqd*dedyiq; + + ev_tally(nlist,list,6.0,e,v); + } + } +} + +/* ---------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::post_force_respa(int vflag, int ilevel, int /*iloop*/) +{ + if (ilevel == ilevel_respa) post_force(vflag); +} + +/* ---------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::min_post_force(int vflag) +{ + post_force(vflag); +} + +/* ---------------------------------------------------------------------- + energy of PiTorsion term +------------------------------------------------------------------------- */ + +double FixAmoebaPiTorsion::compute_scalar() +{ + double all; + MPI_Allreduce(&epitorsion,&all,1,MPI_DOUBLE,MPI_SUM,world); + return all; +} + +// ---------------------------------------------------------------------- +// ---------------------------------------------------------------------- +// methods to read and write data file +// ---------------------------------------------------------------------- +// ---------------------------------------------------------------------- + +void FixAmoebaPiTorsion::read_data_header(char *line) +{ + if (strstr(line,"pitorsions")) { + sscanf(line,BIGINT_FORMAT,&npitorsions); + } else if (strstr(line,"pitorsion types")) { + sscanf(line,"%d",&npitorsion_types); + } else error->all(FLERR, + "Invalid read data header line for amoeba/fix pitorsion"); +} + +/* ---------------------------------------------------------------------- + unpack N lines in buf from section of data file labeled by keyword + id_offset is applied to atomID fields if multiple data files are read +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::read_data_section(char *keyword, int n, char *buf, tagint id_offset) +{ + int which = -1; + + if (strstr(keyword,"PiTorsions")) { + sscanf(keyword,BIGINT_FORMAT,&npitorsions); + which = 0; + } else if (strstr(keyword,"PiTorsion Coeffs")) { + sscanf(keyword,"%d",&npitorsion_types); + which = 1; + } else error->all(FLERR,"Invalid read data section for fix amoeba/pitorsion"); + + // loop over lines of PiTorsion Coeffs + // tokenize the line into values + // initialize kpit vector + + if (which == 1) { + int itype; + double value; + char *next; + + memory->create(kpit,npitorsion_types+1,"pitorsion:kpit"); + + for (int i = 0; i < n; i++) { + next = strchr(buf,'\n'); + *next = '\0'; + sscanf(buf,"%d %lg",&itype,&value); + if (itype <= 0 || itype > npitorsion_types) + error->all(FLERR,"Incorrect args for fix amoeba/pitorsion coeffs"); + kpit[itype] = value; + buf = next + 1; + } + } + + // loop over lines of PiTorsions + // tokenize the line into values + // each atom in the PiTorsion stores it + + if (which == 0) { + + int m,tmp,itype; + tagint atom1,atom2,atom3,atom4,atom5,atom6; + char *next; + + next = strchr(buf,'\n'); + *next = '\0'; + int nwords = utils::count_words(utils::trim_comment(buf)); + *next = '\n'; + + if (nwords != 8) + error->all(FLERR,"Incorrect {} format in data file",keyword); + + for (int i = 0; i < n; i++) { + next = strchr(buf,'\n'); + *next = '\0'; + sscanf(buf,"%d %d " TAGINT_FORMAT " " TAGINT_FORMAT " " TAGINT_FORMAT + " " TAGINT_FORMAT " " TAGINT_FORMAT " " TAGINT_FORMAT, + &tmp,&itype,&atom1,&atom2,&atom3,&atom4,&atom5,&atom6); + + atom1 += id_offset; + atom2 += id_offset; + atom3 += id_offset; + atom4 += id_offset; + atom5 += id_offset; + atom6 += id_offset; + + if ((m = atom->map(atom1)) >= 0) { + if (num_pitorsion[m] == PITORSIONMAX) + error->one(FLERR,"Too many PiTorsions for one atom"); + pitorsion_type[m][num_pitorsion[m]] = itype; + pitorsion_atom1[m][num_pitorsion[m]] = atom1; + pitorsion_atom2[m][num_pitorsion[m]] = atom2; + pitorsion_atom3[m][num_pitorsion[m]] = atom3; + pitorsion_atom4[m][num_pitorsion[m]] = atom4; + pitorsion_atom5[m][num_pitorsion[m]] = atom5; + pitorsion_atom6[m][num_pitorsion[m]] = atom6; + num_pitorsion[m]++; + } + + if ((m = atom->map(atom2)) >= 0) { + if (num_pitorsion[m] == PITORSIONMAX) + error->one(FLERR,"Too many PiTorsions for one atom"); + pitorsion_type[m][num_pitorsion[m]] = itype; + pitorsion_atom1[m][num_pitorsion[m]] = atom1; + pitorsion_atom2[m][num_pitorsion[m]] = atom2; + pitorsion_atom3[m][num_pitorsion[m]] = atom3; + pitorsion_atom4[m][num_pitorsion[m]] = atom4; + pitorsion_atom5[m][num_pitorsion[m]] = atom5; + pitorsion_atom6[m][num_pitorsion[m]] = atom6; + num_pitorsion[m]++; + } + + if ((m = atom->map(atom3)) >= 0) { + if (num_pitorsion[m] == PITORSIONMAX) + error->one(FLERR,"Too many PiTorsions for one atom"); + pitorsion_type[m][num_pitorsion[m]] = itype; + pitorsion_atom1[m][num_pitorsion[m]] = atom1; + pitorsion_atom2[m][num_pitorsion[m]] = atom2; + pitorsion_atom3[m][num_pitorsion[m]] = atom3; + pitorsion_atom4[m][num_pitorsion[m]] = atom4; + pitorsion_atom5[m][num_pitorsion[m]] = atom5; + pitorsion_atom6[m][num_pitorsion[m]] = atom6; + num_pitorsion[m]++; + } + + if ((m = atom->map(atom4)) >= 0) { + if (num_pitorsion[m] == PITORSIONMAX) + error->one(FLERR,"Too many PiTorsions for one atom"); + pitorsion_type[m][num_pitorsion[m]] = itype; + pitorsion_atom1[m][num_pitorsion[m]] = atom1; + pitorsion_atom2[m][num_pitorsion[m]] = atom2; + pitorsion_atom3[m][num_pitorsion[m]] = atom3; + pitorsion_atom4[m][num_pitorsion[m]] = atom4; + pitorsion_atom5[m][num_pitorsion[m]] = atom5; + pitorsion_atom6[m][num_pitorsion[m]] = atom6; + num_pitorsion[m]++; + } + + if ((m = atom->map(atom5)) >= 0) { + if (num_pitorsion[m] == PITORSIONMAX) + error->one(FLERR,"Too many PiTorsions for one atom"); + pitorsion_type[m][num_pitorsion[m]] = itype; + pitorsion_atom1[m][num_pitorsion[m]] = atom1; + pitorsion_atom2[m][num_pitorsion[m]] = atom2; + pitorsion_atom3[m][num_pitorsion[m]] = atom3; + pitorsion_atom4[m][num_pitorsion[m]] = atom4; + pitorsion_atom5[m][num_pitorsion[m]] = atom5; + pitorsion_atom6[m][num_pitorsion[m]] = atom6; + num_pitorsion[m]++; + } + + if ((m = atom->map(atom6)) >= 0) { + if (num_pitorsion[m] == PITORSIONMAX) + error->one(FLERR,"Too many PiTorsions for one atom"); + pitorsion_type[m][num_pitorsion[m]] = itype; + pitorsion_atom1[m][num_pitorsion[m]] = atom1; + pitorsion_atom2[m][num_pitorsion[m]] = atom2; + pitorsion_atom3[m][num_pitorsion[m]] = atom3; + pitorsion_atom4[m][num_pitorsion[m]] = atom4; + pitorsion_atom5[m][num_pitorsion[m]] = atom5; + pitorsion_atom6[m][num_pitorsion[m]] = atom6; + num_pitorsion[m]++; + } + + buf = next + 1; + } + } +} + +/* ---------------------------------------------------------------------- */ + +bigint FixAmoebaPiTorsion::read_data_skip_lines(char *keyword) +{ + if (strcmp(keyword,"PiTorsions") == 0) return npitorsions; + if (strcmp(keyword,"PiTorsion Coeffs") == 0) return (bigint) npitorsion_types; + return 0; +} + +/* ---------------------------------------------------------------------- + write Mth header line to file + only called by proc 0 +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::write_data_header(FILE *fp, int mth) +{ + if (mth == 0) fmt::print(fp,"{} pitorsions\n",npitorsions); + else if (mth == 1) + fmt::print(fp, "{} pitorsion types\n",npitorsion_types); +} + +/* ---------------------------------------------------------------------- + return size I own for Mth data section + # of data sections = 2 for this fix +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::write_data_section_size(int mth, int &nx, int &ny) +{ + int i,m; + + // PiTorsions section + // nx = # of PiTorsions owned by my local atoms + // only atom3 owns the PiTorsion in this context + // ny = 7 columns = type + 6 atom IDs + + if (mth == 0) { + tagint *tag = atom->tag; + int nlocal = atom->nlocal; + + nx = 0; + for (i = 0; i < nlocal; i++) + for (m = 0; m < num_pitorsion[i]; m++) + if (pitorsion_atom3[i][m] == tag[i]) nx++; + + ny = 7; + + // PiTorsion Coeffs section + // nx = # of PiTorsion types + // ny = 2 columns = PiTorsion type + value + // only proc 0 returns a non-zero nx + + } else if (mth == 1) { + if (me == 0) nx = npitorsion_types; + else nx = 0; + ny = 2; + } +} + +/* ---------------------------------------------------------------------- + pack values for Mth data section into 2d buf + buf allocated by caller as owned PiTorsions by 7 +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::write_data_section_pack(int mth, double **buf) +{ + int i,m; + + // PiTorsions section + // 1st column = PiTorsion type + // 2nd-7th columns = 6 atom IDs + + if (mth == 0) { + + tagint *tag = atom->tag; + int nlocal = atom->nlocal; + + int n = 0; + for (i = 0; i < nlocal; i++) { + for (m = 0; m < num_pitorsion[i]; m++) { + if (pitorsion_atom3[i][m] != tag[i]) continue; + buf[n][0] = ubuf(pitorsion_type[i][m]).d; + buf[n][1] = ubuf(pitorsion_atom1[i][m]).d; + buf[n][2] = ubuf(pitorsion_atom2[i][m]).d; + buf[n][3] = ubuf(pitorsion_atom3[i][m]).d; + buf[n][4] = ubuf(pitorsion_atom4[i][m]).d; + buf[n][5] = ubuf(pitorsion_atom5[i][m]).d; + buf[n][6] = ubuf(pitorsion_atom6[i][m]).d; + n++; + } + } + + // PiTorsion Coeffs section + // 1st column = pitorsion type + // 2nd column = value + // only proc 0 returns any data + + } else if (mth == 1) { + if (me) return; + + int n = 0; + for (i = 1; i <= npitorsion_types; i++) { + buf[n][0] = ubuf(i).d; + buf[n][1] = kpit[i]; + n += 2; + } + } +} + +/* ---------------------------------------------------------------------- + write section keyword for Mth data section to file + use Molecules or Charges if that is only field, else use fix ID + only called by proc 0 +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::write_data_section_keyword(int mth, FILE *fp) +{ + if (mth == 0) fprintf(fp,"\nPiTorsions\n\n"); + else if (mth == 1) fprintf(fp,"\nPiTorsion Coeffs\n\n"); +} + +/* ---------------------------------------------------------------------- + write N lines from buf to file + convert buf fields to int or double depending on styles + index can be used to prepend global numbering + only called by proc 0 +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::write_data_section(int mth, FILE *fp, + int n, double **buf, int index) +{ + // PiTorsions section + + if (mth == 0) { + for (int i = 0; i < n; i++) + fprintf(fp,"%d %d " TAGINT_FORMAT " " TAGINT_FORMAT + " " TAGINT_FORMAT " " TAGINT_FORMAT " " TAGINT_FORMAT + " " TAGINT_FORMAT "\n", + index+i,(int) ubuf(buf[i][0]).i,(tagint) ubuf(buf[i][1]).i, + (tagint) ubuf(buf[i][2]).i,(tagint) ubuf(buf[i][3]).i, + (tagint) ubuf(buf[i][4]).i,(tagint) ubuf(buf[i][5]).i, + (tagint) ubuf(buf[i][6]).i); + + // PiTorsion Coeffs section + + } else if (mth == 1) { + for (int i = 0; i < n; i++) + fprintf(fp,"%d %g\n",(int) ubuf(buf[i][0]).i,buf[i][1]); + } +} + +// ---------------------------------------------------------------------- +// ---------------------------------------------------------------------- +// methods for restart and communication +// ---------------------------------------------------------------------- +// ---------------------------------------------------------------------- + +/* ---------------------------------------------------------------------- + pack entire state of Fix into one write +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::write_restart(FILE *fp) +{ + if (comm->me == 0) { + int size = sizeof(bigint); + fwrite(&size,sizeof(int),1,fp); + fwrite(&npitorsions,sizeof(bigint),1,fp); + } +} + +/* ---------------------------------------------------------------------- + use state info from restart file to restart the Fix +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::restart(char *buf) +{ + npitorsions = *((bigint *) buf); +} + +/* ---------------------------------------------------------------------- + pack values in local atom-based arrays for restart file +------------------------------------------------------------------------- */ + +int FixAmoebaPiTorsion::pack_restart(int i, double *buf) +{ + int n = 1; + for (int m = 0; m < num_pitorsion[i]; m++) { + buf[n++] = ubuf(MAX(pitorsion_type[i][m],-pitorsion_type[i][m])).d; + buf[n++] = ubuf(pitorsion_atom1[i][m]).d; + buf[n++] = ubuf(pitorsion_atom2[i][m]).d; + buf[n++] = ubuf(pitorsion_atom3[i][m]).d; + buf[n++] = ubuf(pitorsion_atom4[i][m]).d; + buf[n++] = ubuf(pitorsion_atom5[i][m]).d; + buf[n++] = ubuf(pitorsion_atom6[i][m]).d; + } + buf[0] = n; + + return n; +} + +/* ---------------------------------------------------------------------- + unpack values from atom->extra array to restart the fix +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::unpack_restart(int nlocal, int nth) +{ + double **extra = atom->extra; + + // skip to Nth set of extra values + // unpack the Nth first values this way because other fixes pack them + + int n = 0; + for (int i = 0; i < nth; i++) n += static_cast (extra[nlocal][n]); + + int count = static_cast (extra[nlocal][n++]); + num_pitorsion[nlocal] = (count-1)/7; + + for (int m = 0; m < num_pitorsion[nlocal]; m++) { + pitorsion_type[nlocal][m] = (int) ubuf(extra[nlocal][n++]).i; + pitorsion_atom1[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i; + pitorsion_atom2[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i; + pitorsion_atom3[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i; + pitorsion_atom4[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i; + pitorsion_atom5[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i; + pitorsion_atom6[nlocal][m] = (tagint) ubuf(extra[nlocal][n++]).i; + } +} + +/* ---------------------------------------------------------------------- + maxsize of any atom's restart data +------------------------------------------------------------------------- */ + +int FixAmoebaPiTorsion::maxsize_restart() +{ + return 1 + PITORSIONMAX*6; +} + +/* ---------------------------------------------------------------------- + size of atom nlocal's restart data +------------------------------------------------------------------------- */ + +int FixAmoebaPiTorsion::size_restart(int nlocal) +{ + return 1 + num_pitorsion[nlocal]*7; +} + +/* ---------------------------------------------------------------------- + allocate atom-based arrays +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::grow_arrays(int nmax) +{ + num_pitorsion = memory->grow(num_pitorsion,nmax,"pitorsion:num_pitorsion"); + pitorsion_type = memory->grow(pitorsion_type,nmax,PITORSIONMAX, + "pitorsion:pitorsion_type"); + pitorsion_atom1 = memory->grow(pitorsion_atom1,nmax,PITORSIONMAX, + "pitorsion:pitorsion_atom1"); + pitorsion_atom2 = memory->grow(pitorsion_atom2,nmax,PITORSIONMAX, + "pitorsion:pitorsion_atom2"); + pitorsion_atom3 = memory->grow(pitorsion_atom3,nmax,PITORSIONMAX, + "pitorsion:pitorsion_atom3"); + pitorsion_atom4 = memory->grow(pitorsion_atom4,nmax,PITORSIONMAX, + "pitorsion:pitorsion_atom4"); + pitorsion_atom5 = memory->grow(pitorsion_atom5,nmax,PITORSIONMAX, + "pitorsion:pitorsion_atom5"); + pitorsion_atom6 = memory->grow(pitorsion_atom6,nmax,PITORSIONMAX, + "pitorsion:pitorsion_atom6"); + + // initialize num_pitorion to 0 for added atoms + // may never be set for some atoms when data file is read + + for (int i = nmax_previous; i < nmax; i++) num_pitorsion[i] = 0; + nmax_previous = nmax; +} + +/* ---------------------------------------------------------------------- + copy values within local atom-based array +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::copy_arrays(int i, int j, int /*delflag*/) +{ + num_pitorsion[j] = num_pitorsion[i]; + + for (int k = 0; k < num_pitorsion[j]; k++) { + pitorsion_type[j][k] = pitorsion_type[i][k]; + pitorsion_atom1[j][k] = pitorsion_atom1[i][k]; + pitorsion_atom2[j][k] = pitorsion_atom2[i][k]; + pitorsion_atom3[j][k] = pitorsion_atom3[i][k]; + pitorsion_atom4[j][k] = pitorsion_atom4[i][k]; + pitorsion_atom5[j][k] = pitorsion_atom5[i][k]; + pitorsion_atom6[j][k] = pitorsion_atom6[i][k]; + } +} + +/* ---------------------------------------------------------------------- + initialize one atom's array values, called when atom is created +------------------------------------------------------------------------- */ + +void FixAmoebaPiTorsion::set_arrays(int i) +{ + num_pitorsion[i] = 0; +} + +/* ---------------------------------------------------------------------- + pack values in local atom-based array for exchange with another proc +------------------------------------------------------------------------- */ + +int FixAmoebaPiTorsion::pack_exchange(int i, double *buf) +{ + int n = 0; + buf[n++] = ubuf(num_pitorsion[i]).d; + for (int m = 0; m < num_pitorsion[i]; m++) { + buf[n++] = ubuf(pitorsion_type[i][m]).d; + buf[n++] = ubuf(pitorsion_atom1[i][m]).d; + buf[n++] = ubuf(pitorsion_atom2[i][m]).d; + buf[n++] = ubuf(pitorsion_atom3[i][m]).d; + buf[n++] = ubuf(pitorsion_atom4[i][m]).d; + buf[n++] = ubuf(pitorsion_atom5[i][m]).d; + buf[n++] = ubuf(pitorsion_atom6[i][m]).d; + } + return n; +} + +/* ---------------------------------------------------------------------- + unpack values in local atom-based array from exchange with another proc +------------------------------------------------------------------------- */ + +int FixAmoebaPiTorsion::unpack_exchange(int nlocal, double *buf) +{ + int n = 0; + num_pitorsion[nlocal] = (int) ubuf(buf[n++]).i; + for (int m = 0; m < num_pitorsion[nlocal]; m++) { + pitorsion_type[nlocal][m] = (int) ubuf(buf[n++]).i; + pitorsion_atom1[nlocal][m] = (tagint) ubuf(buf[n++]).i; + pitorsion_atom2[nlocal][m] = (tagint) ubuf(buf[n++]).i; + pitorsion_atom3[nlocal][m] = (tagint) ubuf(buf[n++]).i; + pitorsion_atom4[nlocal][m] = (tagint) ubuf(buf[n++]).i; + pitorsion_atom5[nlocal][m] = (tagint) ubuf(buf[n++]).i; + pitorsion_atom6[nlocal][m] = (tagint) ubuf(buf[n++]).i; + } + return n; +} + +/* ---------------------------------------------------------------------- + memory usage of local atom-based arrays +------------------------------------------------------------------------- */ + +double FixAmoebaPiTorsion::memory_usage() +{ + int nmax = atom->nmax; + double bytes = (double)nmax * sizeof(int); // num_pitorsion + bytes += (double)nmax*PITORSIONMAX * sizeof(int); // pitorsion_type + bytes += (double)6*nmax*PITORSIONMAX * sizeof(int); // pitorsion_atom 123456 + bytes += (double)7*max_pitorsion_list * sizeof(int); // pitorsion_list + return bytes; +} diff --git a/src/AMOEBA/fix_amoeba_pitorsion.h b/src/AMOEBA/fix_amoeba_pitorsion.h new file mode 100644 index 0000000000..6f78cbe34c --- /dev/null +++ b/src/AMOEBA/fix_amoeba_pitorsion.h @@ -0,0 +1,98 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef FIX_CLASS +// clang-format off +FixStyle(amoeba/pitorsion,FixAmoebaPiTorsion); +// clang-format on +#else + +#ifndef LMP_FIX_AMOEBA_PITORSION_H +#define LMP_FIX_AMOEBA_PITORSION_H + +#include "fix.h" +namespace LAMMPS_NS { + +class FixAmoebaPiTorsion : public Fix { + public: + FixAmoebaPiTorsion(class LAMMPS *, int, char **); + ~FixAmoebaPiTorsion() override; + int setmask() override; + void init() override; + void setup(int) override; + void setup_pre_neighbor() override; + void setup_pre_reverse(int, int) override; + void min_setup(int) override; + void pre_neighbor() override; + void pre_reverse(int, int) override; + void post_force(int) override; + void post_force_respa(int, int, int) override; + void min_post_force(int) override; + double compute_scalar() override; + + void read_data_header(char *) override; + void read_data_section(char *, int, char *, tagint) override; + bigint read_data_skip_lines(char *) override; + void write_data_header(FILE *, int) override; + void write_data_section_size(int, int &, int &) override; + void write_data_section_pack(int, double **) override; + void write_data_section_keyword(int, FILE *) override; + void write_data_section(int, FILE *, int, double **, int) override; + + void write_restart(FILE *) override; + void restart(char *) override; + int pack_restart(int, double *) override; + void unpack_restart(int, int) override; + int size_restart(int) override; + int maxsize_restart() override; + + void grow_arrays(int) override; + void copy_arrays(int, int, int) override; + void set_arrays(int) override; + int pack_exchange(int, double *) override; + int unpack_exchange(int, double *) override; + + double memory_usage() override; + + private: + int nprocs, me; + int eflag_caller; + int ilevel_respa; + int disable; + bigint npitorsions; + int npitorsion_types; + double epitorsion; + double onesixth; + + double *kpit; + + // per-atom data for pitorsions stored with each owned atom + + int *num_pitorsion; + int **pitorsion_type; + tagint **pitorsion_atom1, **pitorsion_atom2, **pitorsion_atom3; + tagint **pitorsion_atom4, **pitorsion_atom5, **pitorsion_atom6; + + // previous max atoms on this proc before grow() is called + + int nmax_previous; + + // list of all pitorsions to compute on this proc + + int npitorsion_list; + int max_pitorsion_list; + int **pitorsion_list; +}; +} // namespace LAMMPS_NS +#endif +#endif diff --git a/src/AMOEBA/improper_amoeba.cpp b/src/AMOEBA/improper_amoeba.cpp new file mode 100644 index 0000000000..93e07f662f --- /dev/null +++ b/src/AMOEBA/improper_amoeba.cpp @@ -0,0 +1,338 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "improper_amoeba.h" + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "math_const.h" +#include "memory.h" +#include "neighbor.h" +#include "pair.h" +#include "update.h" + +#include + +using namespace LAMMPS_NS; +using namespace MathConst; + +#define TOLERANCE 0.05 +#define SMALL 0.001 + +/* ---------------------------------------------------------------------- */ + +ImproperAmoeba::ImproperAmoeba(LAMMPS *lmp) : Improper(lmp) +{ + writedata = 1; +} + +/* ---------------------------------------------------------------------- */ + +ImproperAmoeba::~ImproperAmoeba() +{ + if (allocated && !copymode) { + memory->destroy(setflag); + memory->destroy(k); + } +} + +/* ---------------------------------------------------------------------- */ + +void ImproperAmoeba::compute(int eflag, int vflag) +{ + if (disable) return; + + int ia,ib,ic,id,n,type; + double xia,yia,zia,xib,yib,zib,xic,yic,zic,xid,yid,zid; + double xab,yab,zab,xcb,ycb,zcb,xdb,ydb,zdb,xad,yad,zad,xcd,ycd,zcd; + double rad2,rcd2,rdb2,dot,cc,ee; + double sine,angle; + double dt,dt2,dt3,dt4,e; + double deddt,sign,dedcos,term; + double dccdxia,dccdyia,dccdzia,dccdxic,dccdyic,dccdzic; + double dccdxid,dccdyid,dccdzid; + double deedxia,deedyia,deedzia,deedxic,deedyic,deedzic; + double deedxid,deedyid,deedzid; + double fa[3],fb[3],fc[3],fd[3]; + + ev_init(eflag,vflag); + + double **x = atom->x; + double **f = atom->f; + int **improperlist = neighbor->improperlist; + int nimproperlist = neighbor->nimproperlist; + int nlocal = atom->nlocal; + int newton_bond = force->newton_bond; + + // conversion factors for radians to degrees and vice versa + + double rad2degree = 180.0/MY_PI; + double eprefactor = 1.0 / (rad2degree*rad2degree); + double fprefactor = 1.0 / rad2degree; + + for (n = 0; n < nimproperlist; n++) { + + // in Tinker code, atom1 = D, atom2 = B, atom3 = A, atom4 = C + // for Alligner angle: + // atoms A,C,D form a plane, B is out-of-plane + // angle is between plane and the vector from D to B + + id = improperlist[n][0]; + ib = improperlist[n][1]; + ia = improperlist[n][2]; + ic = improperlist[n][3]; + type = improperlist[n][4]; + + // coordinates of the atoms at trigonal center + + xia = x[ia][0]; + yia = x[ia][1]; + zia = x[ia][2]; + xib = x[ib][0]; + yib = x[ib][1]; + zib = x[ib][2]; + xic = x[ic][0]; + yic = x[ic][1]; + zic = x[ic][2]; + xid = x[id][0]; + yid = x[id][1]; + zid = x[id][2]; + + // compute the out-of-plane bending angle + + xab = xia - xib; + yab = yia - yib; + zab = zia - zib; + xcb = xic - xib; + ycb = yic - yib; + zcb = zic - zib; + xdb = xid - xib; + ydb = yid - yib; + zdb = zid - zib; + xad = xia - xid; + yad = yia - yid; + zad = zia - zid; + xcd = xic - xid; + ycd = yic - yid; + zcd = zic - zid; + + // Allinger angle between A-C-D plane and D-B vector for D-B < AC + + rad2 = xad*xad + yad*yad + zad*zad; + rcd2 = xcd*xcd + ycd*ycd + zcd*zcd; + dot = xad*xcd + yad*ycd + zad*zcd; + cc = rad2*rcd2 - dot*dot; + + // find the out-of-plane angle bending energy + + ee = xdb*(yab*zcb-zab*ycb) + ydb*(zab*xcb-xab*zcb) + zdb*(xab*ycb-yab*xcb); + rdb2 = xdb*xdb + ydb*ydb + zdb*zdb; + if (rdb2 == 0.0 || cc == 0.0) continue; + + sine = fabs(ee) / sqrt(cc*rdb2); + sine = MIN(1.0,sine); + + // angle needs to be in degrees for Tinker formulas + // b/c opbend_3456 coeffs are in mixed units + + angle = rad2degree * asin(sine); + dt = angle; + dt2 = dt * dt; + dt3 = dt2 * dt; + dt4 = dt2 * dt2; + e = eprefactor * k[type] * dt2 * + (1.0 + opbend_cubic*dt + opbend_quartic*dt2 + + opbend_pentic*dt3 + opbend_sextic*dt4); + + deddt = fprefactor * k[type] * dt * + (2.0 + 3.0*opbend_cubic*dt + 4.0*opbend_quartic*dt2 + + 5.0*opbend_pentic*dt3 + 6.0*opbend_sextic*dt4); + sign = (ee >= 0.0) ? 1.0 : -1.0; + dedcos = -deddt * sign / sqrt(cc*rdb2 - ee*ee); + + // chain rule terms for first derivative components + + term = ee / cc; + dccdxia = (xad*rcd2-xcd*dot) * term; + dccdyia = (yad*rcd2-ycd*dot) * term; + dccdzia = (zad*rcd2-zcd*dot) * term; + dccdxic = (xcd*rad2-xad*dot) * term; + dccdyic = (ycd*rad2-yad*dot) * term; + dccdzic = (zcd*rad2-zad*dot) * term; + dccdxid = -dccdxia - dccdxic; + dccdyid = -dccdyia - dccdyic; + dccdzid = -dccdzia - dccdzic; + + term = ee / rdb2; + deedxia = ydb*zcb - zdb*ycb; + deedyia = zdb*xcb - xdb*zcb; + deedzia = xdb*ycb - ydb*xcb; + deedxic = yab*zdb - zab*ydb; + deedyic = zab*xdb - xab*zdb; + deedzic = xab*ydb - yab*xdb; + deedxid = ycb*zab - zcb*yab + xdb*term; + deedyid = zcb*xab - xcb*zab + ydb*term; + deedzid = xcb*yab - ycb*xab + zdb*term; + + // compute first derivative components for this angle + + fa[0] = dedcos * (dccdxia+deedxia); + fa[1] = dedcos * (dccdyia+deedyia); + fa[2] = dedcos * (dccdzia+deedzia); + fc[0] = dedcos * (dccdxic+deedxic); + fc[1] = dedcos * (dccdyic+deedyic); + fc[2] = dedcos * (dccdzic+deedzic); + fd[0] = dedcos * (dccdxid+deedxid); + fd[1] = dedcos * (dccdyid+deedyid); + fd[2] = dedcos * (dccdzid+deedzid); + fb[0] = -fa[0] - fc[0] - fd[0]; + fb[1] = -fa[1] - fc[1] - fd[1]; + fb[2] = -fa[2] - fc[2] - fd[2]; + + // apply force to each of 4 atoms + + if (newton_bond || id < nlocal) { + f[id][0] -= fd[0]; + f[id][1] -= fd[1]; + f[id][2] -= fd[2]; + } + + if (newton_bond || ib < nlocal) { + f[ib][0] -= fb[0]; + f[ib][1] -= fb[1]; + f[ib][2] -= fb[2]; + } + + if (newton_bond || ia < nlocal) { + f[ia][0] -= fa[0]; + f[ia][1] -= fa[1]; + f[ia][2] -= fa[2]; + } + + if (newton_bond || ic < nlocal) { + f[ic][0] -= fc[0]; + f[ic][1] -= fc[1]; + f[ic][2] -= fc[2]; + } + + if (evflag) { + fd[0] = -fd[0]; fd[1] = -fd[1]; fd[2] = -fd[2]; + fa[0] = -fa[0]; fa[1] = -fa[1]; fa[2] = -fa[2]; + fc[0] = -fc[0]; fc[1] = -fc[1]; fc[2] = -fc[2]; + ev_tally(id,ib,ia,ic,nlocal,newton_bond,e,fd,fa,fc, + xdb,ydb,zdb,xab,yab,zab,xic-xia,yic-yia,zic-zia); + } + } +} + +/* ---------------------------------------------------------------------- */ + +void ImproperAmoeba::allocate() +{ + allocated = 1; + int n = atom->nimpropertypes; + + memory->create(k,n+1,"improper:k"); + + memory->create(setflag,n+1,"improper:setflag"); + for (int i = 1; i <= n; i++) setflag[i] = 0; +} + +/* ---------------------------------------------------------------------- + set coeffs for one type +------------------------------------------------------------------------- */ + +void ImproperAmoeba::coeff(int narg, char **arg) +{ + if (narg != 2) error->all(FLERR,"Incorrect args for improper coefficients"); + if (!allocated) allocate(); + + int ilo,ihi; + utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error); + + double k_one = utils::numeric(FLERR,arg[1],false,lmp); + + // convert chi from degrees to radians + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + k[i] = k_one; + setflag[i] = 1; + count++; + } + + if (count == 0) error->all(FLERR,"Incorrect args for improper coefficients"); +} + +/* ---------------------------------------------------------------------- + set opbend higher-order term weights from PairAmoeba +------------------------------------------------------------------------- */ + +void ImproperAmoeba::init_style() +{ + // check if PairAmoeba disabled improper terms + + Pair *pair = nullptr; + pair = force->pair_match("amoeba",1,0); + if (!pair) pair = force->pair_match("hippo",1,0); + if (!pair) error->all(FLERR,"Improper amoeba could not find pair amoeba/hippo"); + + int tmp; + int flag = *((int *) pair->extract("improper_flag",tmp)); + disable = flag ? 0 : 1; + + // also extract opbend params + + int dim; + opbend_cubic = *(double *) pair->extract("opbend_cubic",dim); + opbend_quartic = *(double *) pair->extract("opbend_quartic",dim); + opbend_pentic = *(double *) pair->extract("opbend_pentic",dim); + opbend_sextic = *(double *) pair->extract("opbend_sextic",dim); +} + +/* ---------------------------------------------------------------------- + proc 0 writes out coeffs to restart file +------------------------------------------------------------------------- */ + +void ImproperAmoeba::write_restart(FILE *fp) +{ + fwrite(&k[1],sizeof(double),atom->nimpropertypes,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads coeffs from restart file, bcasts them +------------------------------------------------------------------------- */ + +void ImproperAmoeba::read_restart(FILE *fp) +{ + allocate(); + + if (comm->me == 0) + utils::sfread(FLERR,&k[1],sizeof(double),atom->nimpropertypes,fp,nullptr,error); + MPI_Bcast(&k[1],atom->nimpropertypes,MPI_DOUBLE,0,world); + + for (int i = 1; i <= atom->nimpropertypes; i++) setflag[i] = 1; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void ImproperAmoeba::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->nimpropertypes; i++) + fprintf(fp,"%d %g\n",i,k[i]); +} diff --git a/src/AMOEBA/improper_amoeba.h b/src/AMOEBA/improper_amoeba.h new file mode 100644 index 0000000000..36fdcf4da9 --- /dev/null +++ b/src/AMOEBA/improper_amoeba.h @@ -0,0 +1,47 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef IMPROPER_CLASS +// clang-format off +ImproperStyle(amoeba,ImproperAmoeba); +// clang-format on +#else + +#ifndef LMP_IMPROPER_AMOEBA_H +#define LMP_IMPROPER_AMOEBA_H + +#include "improper.h" + +namespace LAMMPS_NS { + +class ImproperAmoeba : public Improper { + public: + ImproperAmoeba(class LAMMPS *); + ~ImproperAmoeba() override; + void compute(int, int) override; + void coeff(int, char **) override; + void init_style() override; + void write_restart(FILE *) override; + void read_restart(FILE *) override; + void write_data(FILE *) override; + + protected: + int disable; + double opbend_cubic, opbend_quartic, opbend_pentic, opbend_sextic; + double *k; + + virtual void allocate(); +}; +} // namespace LAMMPS_NS +#endif +#endif diff --git a/src/AMOEBA/pair_amoeba.cpp b/src/AMOEBA/pair_amoeba.cpp new file mode 100644 index 0000000000..be5f9c73df --- /dev/null +++ b/src/AMOEBA/pair_amoeba.cpp @@ -0,0 +1,2330 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_amoeba.h" + +#include "amoeba_convolution.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "fft3d_wrap.h" +#include "fix.h" +#include "fix_store.h" +#include "force.h" +#include "gridcomm.h" +#include "group.h" +#include "memory.h" +#include "modify.h" +#include "my_page.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "neighbor.h" +#include "update.h" +#include "utils.h" + +#include +#include +#include + +using namespace LAMMPS_NS; + +enum{INDUCE,RSD,SETUP_AMOEBA,SETUP_HIPPO,KMPOLE,AMGROUP,PVAL}; // forward comm +enum{FIELD,ZRSD,TORQUE,UFLD}; // reverse comm +enum{ARITHMETIC,GEOMETRIC,CUBIC_MEAN,R_MIN,SIGMA,DIAMETER,HARMONIC,HHG,W_H}; +enum{HAL,REPULSE,QFER,DISP,MPOLE,POLAR,USOLV,DISP_LONG,MPOLE_LONG,POLAR_LONG}; +enum{MPOLE_GRID,POLAR_GRID,POLAR_GRIDC,DISP_GRID,INDUCE_GRID,INDUCE_GRIDC}; +enum{MUTUAL,OPT,TCG,DIRECT}; +enum{GEAR,ASPC,LSQR}; + +#define DELTASTACK 16 + +/* ---------------------------------------------------------------------- */ + +PairAmoeba::PairAmoeba(LAMMPS *lmp) : Pair(lmp) +{ + amoeba = true; + mystyle = "amoeba"; + + // pair style settings + + one_coeff = 1; + single_enable = 0; + no_virial_fdotr_compute = 1; + + nextra = 6; + pvector = new double[nextra]; + + // force field settings + + nmax = 0; + xaxis2local = yaxis2local = zaxis2local = nullptr; + rpole = nullptr; + tq = nullptr; + + red2local = nullptr; + xred = nullptr; + + uind = uinp = udirp = nullptr; + uopt = uoptp = nullptr; + fopt = foptp = nullptr; + field = fieldp = nullptr; + ufld = dufld = nullptr; + rsd = rsdp = nullptr; + zrsd = zrsdp = nullptr; + + cmp = fmp = nullptr; + cphi = fphi = nullptr; + + poli = nullptr; + conj = conjp = nullptr; + vec = vecp = nullptr; + udir = usum = usump = nullptr; + + fuind = fuinp = nullptr; + fdip_phi1 = fdip_phi2 = fdip_sum_phi = nullptr; + dipfield1 = dipfield2 = nullptr; + + fphid = fphip = nullptr; + fphidp = cphidp = nullptr; + + bsordermax = 0; + thetai1 = thetai2 = thetai3 = nullptr; + bsmod1 = bsmod2 = bsmod3 = nullptr; + bsbuild = nullptr; + igrid = nullptr; + m_kspace = p_kspace = pc_kspace = d_kspace = nullptr; + i_kspace = ic_kspace = nullptr; + + numneigh_dipole = nullptr; + firstneigh_dipole = nullptr; + firstneigh_dipdip = nullptr; + ipage_dipole = nullptr; + dpage_dipdip = nullptr; + + numneigh_precond = nullptr; + firstneigh_precond = nullptr; + ipage_precond = nullptr; + + firstneigh_pcpc = nullptr; + dpage_pcpc = nullptr; + + qfac = nullptr; + gridfft1 = nullptr; + + initialize_type_class(); + initialize_vdwl(); + initialize_smallsize(); + + forcefield = nullptr; + + id_pole = id_udalt = id_upalt = nullptr; + + nualt = 0; + first_flag = 1; + first_flag_compute = 1; + + // use Tinker value = 332.063713 (one extra digit) + // LAMMPS value = 332.06371 + + electric = 332.063713; + //electric = force->qqr2e; + + // factors for FFT grid size + + nfactors = 3; + factors = new int[nfactors]; + factors[0] = 2; + factors[1] = 3; + factors[2] = 5; +} + +/* ---------------------------------------------------------------------- */ + +PairAmoeba::~PairAmoeba() +{ + delete[] pvector; + + // check nfix in case all fixes have already been deleted + + if (modify->nfix) { + if (id_pole) modify->delete_fix(id_pole); + if (id_udalt) modify->delete_fix(id_udalt); + if (id_upalt) modify->delete_fix(id_upalt); + } + + delete[] id_pole; + delete[] id_udalt; + delete[] id_upalt; + + memory->destroy(xaxis2local); + memory->destroy(yaxis2local); + memory->destroy(zaxis2local); + memory->destroy(rpole); + memory->destroy(tq); + + memory->destroy(red2local); + memory->destroy(xred); + + memory->destroy(uind); + memory->destroy(uinp); + memory->destroy(udirp); + memory->destroy(uopt); + memory->destroy(uoptp); + memory->destroy(fopt); + memory->destroy(foptp); + + memory->destroy(field); + memory->destroy(fieldp); + memory->destroy(ufld); + memory->destroy(dufld); + memory->destroy(rsd); + memory->destroy(rsdp); + memory->destroy(zrsd); + memory->destroy(zrsdp); + + memory->destroy(cmp); + memory->destroy(fmp); + memory->destroy(cphi); + memory->destroy(fphi); + + memory->destroy(poli); + memory->destroy(conj); + memory->destroy(conjp); + memory->destroy(vec); + memory->destroy(vecp); + memory->destroy(udir); + memory->destroy(usum); + memory->destroy(usump); + + memory->destroy(fuind); + memory->destroy(fuinp); + memory->destroy(fdip_phi1); + memory->destroy(fdip_phi2); + memory->destroy(fdip_sum_phi); + memory->destroy(dipfield1); + memory->destroy(dipfield2); + + memory->destroy(fphid); + memory->destroy(fphip); + memory->destroy(fphidp); + memory->destroy(cphidp); + + memory->destroy(thetai1); + memory->destroy(thetai2); + memory->destroy(thetai3); + memory->destroy(igrid); + + memory->destroy(bsmod1); + memory->destroy(bsmod2); + memory->destroy(bsmod3); + memory->destroy(bsbuild); + + memory->destroy(qfac); + memory->destroy(gridfft1); + + delete m_kspace; + delete p_kspace; + delete pc_kspace; + delete d_kspace; + delete i_kspace; + delete ic_kspace; + + memory->destroy(numneigh_dipole); + memory->sfree(firstneigh_dipole); + memory->sfree(firstneigh_dipdip); + delete ipage_dipole; + delete dpage_dipdip; + + memory->destroy(numneigh_precond); + memory->sfree(firstneigh_precond); + delete ipage_precond; + + memory->sfree(firstneigh_pcpc); + delete dpage_pcpc; + + deallocate_type_class(); + if (amoeba) deallocate_vdwl(); + deallocate_smallsize(); + + delete[] forcefield; + + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + } + + delete[] factors; +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::compute(int eflag, int vflag) +{ + ev_init(eflag,vflag); + + if (eflag_atom || vflag_atom) + error->all(FLERR,"Cannot (yet) compute per-atom energy/virial with pair_style {}", mystyle); + + // zero energy/virial components + + ehal = erepulse = edisp = epolar = empole = eqxfer = 0.0; + + for (int i = 0; i < 6; i++) { + virhal[i] = 0.0; + virrepulse[i] = 0.0; + virdisp[i] = 0.0; + virpolar[i] = 0.0; + virmpole[i] = 0.0; + virqxfer[i] = 0.0; + } + + // grow local vectors and arrays if necessary + + if (atom->nmax > nmax) grow_local(); + + // set amtype/amgroup ptrs for rest of compute() to use it + + amtype = atom->ivector[index_amtype]; + amgroup = atom->ivector[index_amgroup]; + + // ------------------------------------------------------------------- + // one-time initializations + // can't do in init_style() b/c these operations require communication + // ------------------------------------------------------------------- + + // assignment of atoms to polarization groups + + if (first_flag_compute) assign_groups(); + + // assigmment of multipole neighbors to each owned atom + // sets xaxis,yaxis,zaxis + // for HIPPO, also set pval for each atom, then ghost comm of pval + + if (first_flag_compute) { + cfstyle = KMPOLE; + comm->forward_comm(this); + kmpole(); + + if (!amoeba) { + double *pval = atom->dvector[index_pval]; + double **pole = fixpole->astore; + int nlocal = atom->nlocal; + int itype,iclass; + for (int i = 0; i < nlocal; i++) { + itype = amtype[i]; + iclass = amtype2class[itype]; + pval[i] = pole[i][0] - pcore[iclass]; + } + cfstyle = PVAL; + comm->forward_comm(this); + } + } + + first_flag_compute = 0; + + // ------------------------------------------------------------------- + // end of one-time initializations + // ------------------------------------------------------------------- + + // initialize timers on first compute() call after setup + + if (update->ntimestep <= update->beginstep+1) { + time_init = time_hal = time_repulse = time_disp = time_mpole = 0.0; + time_induce = time_polar = time_qxfer = 0.0; + } + + double time0,time1,time2,time3,time4,time5,time6,time7,time8; + + MPI_Barrier(world); + time0 = MPI_Wtime(); + + // if reneighboring step: + // augment neighbor list to include 1-5 neighbor flags + // re-create red2local and xyz axis2local + // re-create induce neighbor list + + if (neighbor->ago == 0) { + add_onefive_neighbors(); + if (amoeba) find_hydrogen_neighbors(); + find_multipole_neighbors(); + if (poltyp == MUTUAL && pcgprec) precond_neigh(); + } + + // reset KSpace recip matrix if box size/shape change dynamically + + if (domain->box_change) lattice(); + + // compute reduced H coords for owned atoms + // needs to be computed before forward_comm with cfstyle = SETUP + + if (amoeba) { + int j,iclass; + double rdn; + + double **x = atom->x; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) { + j = red2local[i]; + iclass = amtype2class[amtype[i]]; + rdn = kred[iclass]; + xred[i][0] = rdn*(x[i][0]-x[j][0]) + x[j][0]; + xred[i][1] = rdn*(x[i][1]-x[j][1]) + x[j][1]; + xred[i][2] = rdn*(x[i][2]-x[j][2]) + x[j][2]; + } + } + + // compute rpole for owned atoms + + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) { + chkpole(i); + rotmat(i); + rotsite(i); + } + + // communicate quantities needed by ghost atoms: xred, rpole + // for xred, need to account for PBC + + if (amoeba) cfstyle = SETUP_AMOEBA; + else cfstyle = SETUP_HIPPO; + comm->forward_comm(this); + + if (amoeba) pbc_xred(); + + time1 = MPI_Wtime(); + + // ---------------------------------------- + // compute components of force field + // ---------------------------------------- + + // buffered 14-7 Vdwl, pairwise + + if (amoeba && hal_flag) hal(); + time2 = MPI_Wtime(); + + // Pauli repulsion, pairwise + + if (!amoeba && repulse_flag) repulsion(); + time3 = MPI_Wtime(); + + // Ewald dispersion, pairwise and long range + + if (!amoeba && (disp_rspace_flag || disp_kspace_flag)) dispersion(); + time4 = MPI_Wtime(); + + // multipole, pairwise and long range + + if (mpole_rspace_flag || mpole_kspace_flag) multipole(); + time5 = MPI_Wtime(); + + // induced dipoles, interative CG relaxation + // communicate induce() output values needed by ghost atoms + + if (polar_rspace_flag || polar_kspace_flag) { + induce(); + cfstyle = INDUCE; + comm->forward_comm(this); + } + time6 = MPI_Wtime(); + + // dipoles, pairwise and long range + + if (polar_rspace_flag || polar_kspace_flag) polar(); + time7 = MPI_Wtime(); + + // charge transfer, pairwise + + if (!amoeba && qxfer_flag) charge_transfer(); + time8 = MPI_Wtime(); + + // store energy components for output by compute pair command + + pvector[0] = ehal; + pvector[1] = erepulse; + pvector[2] = edisp; + pvector[3] = empole; + pvector[4] = epolar; + pvector[5] = eqxfer; + + // energy & virial summations + + eng_vdwl = ehal + edisp; + eng_coul = erepulse + empole + epolar + eqxfer; + + for (int i = 0; i < 6; i++) + virial[i] = virhal[i] + virrepulse[i] + virdisp[i] + + virpolar[i] + virmpole[i] + virqxfer[i]; + + // accumulate timing information + + time_init += time1 - time0; + time_hal += time2 - time1; + time_repulse += time3 - time2; + time_disp += time4 - time3; + time_mpole += time5 - time4; + time_induce += time6 - time5; + time_polar += time7 - time6; + time_qxfer += time8 - time7; +} + +/* ---------------------------------------------------------------------- + print out AMOEBA/HIPPO timing info at end of run +------------------------------------------------------------------------- */ + +void PairAmoeba::finish() +{ + double ave; + MPI_Allreduce(&time_init,&ave,1,MPI_DOUBLE,MPI_SUM,world); + time_init = ave/comm->nprocs; + + MPI_Allreduce(&time_hal,&ave,1,MPI_DOUBLE,MPI_SUM,world); + time_hal = ave/comm->nprocs; + + MPI_Allreduce(&time_repulse,&ave,1,MPI_DOUBLE,MPI_SUM,world); + time_repulse = ave/comm->nprocs; + + MPI_Allreduce(&time_disp,&ave,1,MPI_DOUBLE,MPI_SUM,world); + time_disp = ave/comm->nprocs; + + MPI_Allreduce(&time_mpole,&ave,1,MPI_DOUBLE,MPI_SUM,world); + time_mpole = ave/comm->nprocs; + + MPI_Allreduce(&time_induce,&ave,1,MPI_DOUBLE,MPI_SUM,world); + time_induce = ave/comm->nprocs; + + MPI_Allreduce(&time_polar,&ave,1,MPI_DOUBLE,MPI_SUM,world); + time_polar = ave/comm->nprocs; + + MPI_Allreduce(&time_qxfer,&ave,1,MPI_DOUBLE,MPI_SUM,world); + time_qxfer = ave/comm->nprocs; + + double time_total = (time_init + time_hal + time_repulse + time_disp + + time_mpole + time_induce + time_polar + time_qxfer) / 100.0; + + if (comm->me == 0) { + utils::logmesg(lmp,"\n{} timing breakdown:\n", utils::uppercase(mystyle)); + utils::logmesg(lmp," Init time: {:<12.6g} {:6.2f}%\n", time_init, time_init/time_total); + if (amoeba) { + utils::logmesg(lmp," Hal time: {:<12.6g} {:6.2f}%\n", time_hal, time_hal/time_total); + } else { // hippo + utils::logmesg(lmp," Repulse time: {:<12.6g} {:6.2f}%\n", time_repulse, time_repulse/time_total); + utils::logmesg(lmp," Disp time: {:<12.6g} {:6.2f}%\n", time_disp, time_disp/time_total); + } + utils::logmesg(lmp," Mpole time: {:<12.6g} {:6.2f}%\n", time_mpole, time_mpole/time_total); + utils::logmesg(lmp," Induce time: {:<12.6g} {:6.2f}%\n", time_induce, time_induce/time_total); + utils::logmesg(lmp," Polar time: {:<12.6g} {:6.2f}%\n", time_polar, time_polar/time_total); + if (!amoeba) + utils::logmesg(lmp," Qxfer time: {:<12.6g} {:6.2f}%\n", time_qxfer, time_qxfer/time_total); + utils::logmesg(lmp," Total time: {:<12.6g}\n",time_total * 100.0); + } +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairAmoeba::allocate() +{ + allocated = 1; + int n = atom->ntypes; + + memory->create(setflag,n+1,n+1,"pair:setflag"); + for (int i = 1; i <= n; i++) + for (int j = i; j <= n; j++) + setflag[i][j] = 0; + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); +} + +/* ---------------------------------------------------------------------- + global settings + NOTE: these undocumented args are only for debugging +------------------------------------------------------------------------- */ + +void PairAmoeba::settings(int narg, char **arg) +{ + // turn on all FF components by default + // first 4 lines are non-bonded terms + // last 2 lines are bonded terms + + hal_flag = repulse_flag = qxfer_flag = 1; + disp_rspace_flag = disp_kspace_flag = 1; + polar_rspace_flag = polar_kspace_flag = 1; + mpole_rspace_flag = mpole_kspace_flag = 1; + bond_flag = angle_flag = dihedral_flag = improper_flag = 1; + urey_flag = pitorsion_flag = bitorsion_flag = 1; + + int newvalue = -1; + + // include only specified FF components + + if (narg && (strcmp(arg[0],"include") == 0)) { + newvalue = 1; + hal_flag = repulse_flag = qxfer_flag = 0; + disp_rspace_flag = disp_kspace_flag = 0; + polar_rspace_flag = polar_kspace_flag = 0; + mpole_rspace_flag = mpole_kspace_flag = 0; + bond_flag = angle_flag = dihedral_flag = improper_flag = 0; + urey_flag = pitorsion_flag = bitorsion_flag = 0; + + // exclude only specified FF components + + } else if (narg && (strcmp(arg[0],"exclude") == 0)) { + newvalue = 0; + + } else if (narg) error->all(FLERR,"Illegal pair_style command"); + + if (narg == 0) return; + + if (narg < 2) error->all(FLERR,"Illegal pair_style command"); + + // toggle components to include or exclude + + for (int iarg = 1; iarg < narg; iarg++) { + if (strcmp(arg[iarg],"hal") == 0) hal_flag = newvalue; + else if (strcmp(arg[iarg],"repulse") == 0) repulse_flag = newvalue; + else if (strcmp(arg[iarg],"qxfer") == 0) qxfer_flag = newvalue; + else if (strcmp(arg[iarg],"disp") == 0) + disp_rspace_flag = disp_kspace_flag = newvalue; + else if (strcmp(arg[iarg],"disp/rspace") == 0) disp_rspace_flag = newvalue; + else if (strcmp(arg[iarg],"disp/kspace") == 0) disp_kspace_flag = newvalue; + else if (strcmp(arg[iarg],"polar") == 0) + polar_rspace_flag = polar_kspace_flag = newvalue; + else if (strcmp(arg[iarg],"polar/rspace") == 0) polar_rspace_flag = newvalue; + else if (strcmp(arg[iarg],"polar/kspace") == 0) polar_kspace_flag = newvalue; + else if (strcmp(arg[iarg],"mpole") == 0) + mpole_rspace_flag = mpole_kspace_flag = newvalue; + else if (strcmp(arg[iarg],"mpole/rspace") == 0) mpole_rspace_flag = newvalue; + else if (strcmp(arg[iarg],"mpole/kspace") == 0) mpole_kspace_flag = newvalue; + else if (strcmp(arg[iarg],"bond") == 0) bond_flag = newvalue; + else if (strcmp(arg[iarg],"angle") == 0) angle_flag = newvalue; + else if (strcmp(arg[iarg],"dihedral") == 0) dihedral_flag = newvalue; + else if (strcmp(arg[iarg],"improper") == 0) improper_flag = newvalue; + else if (strcmp(arg[iarg],"urey") == 0) urey_flag = newvalue; + else if (strcmp(arg[iarg],"pitorsion") == 0) pitorsion_flag = newvalue; + else if (strcmp(arg[iarg],"bitorsion") == 0) bitorsion_flag = newvalue; + else error->all(FLERR,"Illegal pair_style command"); + } + + // cannot disable bond and dihedral terms b/c those classes not in AMOEBA pkg + + if ((bond_flag == 0 || dihedral_flag == 0) && comm->me == 0) + error->warning(FLERR,"Cannot disable AMOEBA bonds or dihedrals - " + "use bond_style or dihedral_style none instead"); +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairAmoeba::coeff(int narg, char **arg) +{ + int i,j; + + if (!allocated) allocate(); + + if ((narg < 3) || (narg > 4)) error->all(FLERR,"Incorrect args for pair coefficients"); + + // set setflag since coeff() is only called once with I,J = * * + + int n = atom->ntypes; + for (i = 1; i <= n; i++) + for (j = i; j <= n; j++) + setflag[i][j] = 1; + + // read force field PRM file and optional KEY file + + set_defaults(); + read_prmfile(arg[2]); + if (narg == 3) read_keyfile(nullptr); + else read_keyfile(arg[3]); + + // compute Vdwl mixing rules, only for AMOEBA + + if (amoeba) { + allocate_vdwl(); + mix(); + } + + // allocate arrays that depend on optorder or maxualt values from keyfile + + allocate_smallsize(); + + // set copt and comp values, now that allocated to 0:optorder + + for (i = 0; i <= optorder; i++) + copt[i] = copm[i] = 0.0; + + if (optorder == 1) { + copt[0] = 0.530; + copt[1] = 0.604; + } else if (optorder == 2) { + copt[0] = 0.042; + copt[1] = 0.635; + copt[2] = 0.414; + } else if (optorder == 3) { + copt[0] = -0.132; + copt[1] = 0.218; + copt[2] = 0.637; + copt[3] = 0.293; + } else if (optorder == 4) { + copt[0] = -0.071; + copt[1] = -0.096; + copt[2] = 0.358; + copt[3] = 0.587; + copt[4] = 0.216; + } else if (optorder == 5) { + copt[0] = -0.005; + copt[1] = -0.129; + copt[2] = -0.026; + copt[3] = 0.465; + copt[4] = 0.528; + copt[5] = 0.161; + } else if (optorder == 6) { + copt[0] = 0.014; + copt[1] = -0.041; + copt[2] = -0.172; + copt[3] = 0.073; + copt[4] = 0.535; + copt[5] = 0.467; + copt[6] = 0.122; + } + + for (i = 0; i <= optorder; i++) + for (j = optorder; j >= i; j--) + copm[i] += copt[j]; +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairAmoeba::init_style() +{ + // error checks + if (strcmp(update->unit_style,"real") != 0) + error->all(FLERR, "Pair style {} requires real units", mystyle); + if (force->newton_pair == 0) + error->all(FLERR, "Pair style {} requires newton pair on", mystyle); + if (domain->dimension == 2) + error->all(FLERR, "Pair style {} requires a 3d system", mystyle); + if (domain->triclinic) + error->all(FLERR, "Pair style {} does not (yet) support triclinic systems", mystyle); + + int nperiodic = domain->xperiodic + domain->yperiodic + domain->zperiodic; + if ((nperiodic != 0) && (nperiodic != 3)) + error->all(FLERR,"Pair style {} requires a fully periodic or fully non-periodic system", + mystyle); + + if (!atom->q_flag) + error->all(FLERR,"Pair style {} requires atom attribute q", mystyle); + //if (!force->special_onefive) + // error->all(FLERR,"Pair style amoeba/hippo requires special_bonds one/five be set"); + + // b/c polar uses mutipole virial terms + + if (apewald == aeewald && polar_kspace_flag && !mpole_kspace_flag) + error->all(FLERR, "Pair {} with apewald = aeewald requires mpole and polar together", mystyle); + + // check if all custom atom arrays were set via fix property/atom + + int flag,cols; + + index_amtype = atom->find_custom("amtype",flag,cols); + if (index_amtype < 0 || flag || cols) + error->all(FLERR,"Pair {} amtype is not defined", mystyle); + index_amgroup = atom->find_custom("amgroup",flag,cols); + if (index_amgroup < 0 || flag || cols) + error->all(FLERR,"Pair {} amgroup is not defined", mystyle); + + index_redID = atom->find_custom("redID",flag,cols); + if (index_redID < 0 || !flag || cols) + error->all(FLERR,"Pair {} redID is not defined", mystyle); + index_xyzaxis = atom->find_custom("xyzaxis",flag,cols); + if (index_xyzaxis < 0 || !flag || cols == 0) + error->all(FLERR,"Pair {} xyzaxis is not defined", mystyle); + + index_polaxe = atom->find_custom("polaxe",flag,cols); + if (index_polaxe < 0 || flag || cols) + error->all(FLERR,"Pair {} polaxe is not defined", mystyle); + index_pval = atom->find_custom("pval",flag,cols); + if (index_pval < 0 || !flag || cols) + error->all(FLERR,"Pair {} pval is not defined", mystyle); + + // ------------------------------------------------------------------- + // one-time initializations + // can't do earlier b/c need all atoms to exist + // ------------------------------------------------------------------- + + // creation of per-atom storage + // create a new fix STORE style for each atom's pole vector + // id = "AMOEBA_pole", fix group = all + + // TODO: shouldn't there be an instance_me added to the identifier + // in case there would be multiple pair style instances in a hybrid pair style? + + Fix *myfix; + if (first_flag) { + id_pole = utils::strdup("AMOEBA_pole"); + myfix = modify->add_fix(fmt::format("{} {} STORE peratom 1 13",id_pole,group->names[0])); + fixpole = dynamic_cast(myfix); + } + + // creation of per-atom storage + // create 2 new fix STORE styles for each atom's induced dipole history info + // id = "AMOEBA_udalt", fix group = all + // id = "AMOEBA_upalt", fix group = all + // only if using preconditioner + + if (first_flag && use_pred) { + id_udalt = utils::strdup("AMOEBA_udalt"); + myfix = modify->add_fix(fmt::format("{} {} STORE peratom 1 {} 3", + id_udalt, group->names[0], maxualt)); + fixudalt = dynamic_cast(myfix); + + id_upalt = utils::strdup("AMOEBA_upalt"); + myfix = modify->add_fix(fmt::format("{} {} STORE peratom 1 {} 3", + id_upalt, group->names[0], maxualt)); + fixupalt = dynamic_cast(myfix); + } + + // create pages for storing pairwise data: + // dipole/dipole interactions and preconditioner values + + if (first_flag) { + ipage_dipole = new MyPage(); + dpage_dipdip = new MyPage(); + ipage_dipole->init(neighbor->oneatom,neighbor->pgsize); + dpage_dipdip->init(6*neighbor->oneatom,6*neighbor->pgsize); + + if (poltyp == MUTUAL && pcgprec) { + ipage_precond = new MyPage(); + dpage_pcpc = new MyPage(); + ipage_precond->init(neighbor->oneatom,neighbor->pgsize); + dpage_pcpc->init(6*neighbor->oneatom,6*neighbor->pgsize); + } + } + + // initialize KSpace Ewald settings and FFTs and parallel grid objects + // Coulombic grid is used with two orders: bseorder and bsporder + // so need two GridComm instantiations for ghost comm + + if (first_flag) { + kewald(); + if (use_ewald) { + m_kspace = + new AmoebaConvolution(lmp,this,nefft1,nefft2,nefft3,bseorder,MPOLE_GRID); + p_kspace = + new AmoebaConvolution(lmp,this,nefft1,nefft2,nefft3,bsporder,POLAR_GRID); + pc_kspace = + new AmoebaConvolution(lmp,this,nefft1,nefft2,nefft3,bsporder,POLAR_GRIDC); + i_kspace = + new AmoebaConvolution(lmp,this,nefft1,nefft2,nefft3,bsporder,INDUCE_GRID); + ic_kspace = + new AmoebaConvolution(lmp,this,nefft1,nefft2,nefft3,bsporder,INDUCE_GRIDC); + + // qfac is shared by induce and polar + // gridfft1 is copy of FFT grid used within polar + + int nmine = p_kspace->nfft_owned; + memory->create(qfac,nmine,"ameoba/induce:qfac"); + memory->create(gridfft1,2*nmine,"amoeba/polar:gridfft1"); + } + if (use_dewald) { + d_kspace = + new AmoebaConvolution(lmp,this,ndfft1,ndfft2,ndfft3,bsdorder,DISP_GRID); + } + } + + // set csixpr = sum of csix[i]*csix[j] for a double loop over all atoms + // compute this efficiently as M^2 instead of N^2, where M = # of classes + // csix_num[iclass] = # of atoms in class Iclass + + if (first_flag) { + amtype = atom->ivector[index_amtype]; + int nlocal = atom->nlocal; + + int *csix_num_one = new int[n_amclass+1]; + for (int i = 0; i <= n_amclass; i++) csix_num_one[i] = 0; + + int itype,iclass; + + for (int i = 0; i < nlocal; i++) { + itype = amtype[i]; + iclass = amtype2class[itype]; + csix_num_one[iclass]++; + } + + int *csix_num = new int[n_amclass+1]; + MPI_Allreduce(csix_num_one,csix_num,n_amclass+1,MPI_INT,MPI_SUM,world); + + csixpr = 0.0; + for (int i = 1; i <= n_amclass; i++) { + for (int j = i+1; j <= n_amclass; j++) { + csixpr += csix[i]*csix[j] * csix_num[i]*csix_num[j]; + } + } + csixpr *= 2.0; + + for (int i = 1; i <= n_amclass; i++) + csixpr += csix[i]*csix[i] * csix_num[i]*csix_num[i]; + + delete[] csix_num_one; + delete[] csix_num; + } + + // initialize peratom pval to zero + // so that initial ghost comm will be valid + // pval is not set until first call to compute(), and only for HIPPO + + if (first_flag) { + double *pval = atom->dvector[index_pval]; + int nlocal = atom->nlocal; + for (int i = 0; i < nlocal; i++) pval[i] = 0.0; + } + + // output FF settings to screen and logfile + + if (first_flag && (comm->me == 0)) print_settings(); + + // all done with one-time initializations + + first_flag = 0; + + // ------------------------------------------------------------------- + // end of one-time initializations + // ------------------------------------------------------------------- + + // check for fixes which store persistent per-atom properties + + if (id_pole) { + myfix = modify->get_fix_by_id(id_pole); + if (!myfix) error->all(FLERR,"Could not find internal pair amoeba fix STORE id {}", id_pole); + fixpole = dynamic_cast(myfix); + + } + + if (id_udalt) { + myfix = modify->get_fix_by_id(id_udalt); + if (!myfix) error->all(FLERR,"Could not find internal pair amoeba fix STORE id {}", id_udalt); + fixudalt = dynamic_cast(myfix); + + myfix = modify->get_fix_by_id(id_upalt); + if (!myfix) error->all(FLERR,"Could not find internal pair amoeba fix STORE id {}", id_upalt); + fixupalt = dynamic_cast(myfix); + } + + // assign hydrogen neighbors (redID) to each owned atom + // only set if kred[i] is non-zero and I is bonded to a single atom + // conceptually: non-zero if I is hydrogen bonded to another atom + + if (amoeba) { + amtype = atom->ivector[index_amtype]; + double *redID = atom->dvector[index_redID]; + + int **nspecial = atom->nspecial; + tagint **special = atom->special; + int nlocal = atom->nlocal; + + int itype,iclass; + + for (int i = 0; i < nlocal; i++) { + itype = amtype[i]; + iclass = amtype2class[itype]; + if (kred[iclass] == 0.0) { + redID[i] = 0.0; + } + else if (nspecial[i][0] != 1) { + redID[i] = 0.0; + } + else { + redID[i] = ubuf(special[i][0]).d; + } + } + } + + // set KSpace recip matrix based on box size and shape + + lattice(); + + // can now set comm size needed by this Pair + // cfstyle KMPOLE is max # of 1-2 bond partners, smaller than comm_forward + + if (amoeba) comm_forward = 16; // xred, rpole + else comm_forward = 13; // just rpole + int fsize = 6; + if (poltyp == OPT) fsize += 6*optorder; + //if (poltyp == TCG) fsize += 12*tcgnab; + comm_forward = MAX(comm_forward,fsize); + + comm_reverse = 9; + + // request standard neighbor list + + neighbor->add_request(this); +} + +/* ---------------------------------------------------------------------- + print settings to screen and logfile +------------------------------------------------------------------------- */ + +void PairAmoeba::print_settings() +{ + std::string mesg = utils::uppercase(mystyle) + " force field settings\n"; + + if (amoeba) { + choose(HAL); + mesg += fmt::format(" hal: cut {} taper {} vscale {} {} {} {}\n", sqrt(off2),sqrt(cut2), + special_hal[1],special_hal[2],special_hal[3],special_hal[4]); + } else { + choose(REPULSE); + mesg += fmt::format(" repulsion: cut {} taper {} rscale {} {} {} {}\n", sqrt(off2),sqrt(cut2), + special_repel[1],special_repel[2],special_repel[3],special_repel[4]); + + choose(QFER); + mesg += fmt::format(" qxfer: cut {} taper {} mscale {} {} {} {}\n", sqrt(off2),sqrt(cut2), + special_mpole[1],special_mpole[2],special_mpole[3],special_mpole[4]); + + if (use_dewald) { + choose(DISP_LONG); + mesg += fmt::format(" dispersion: cut {} aewald {} bsorder {} FFT {} {} {} " + "dspscale {} {} {} {}\n", sqrt(off2),aewald,bsdorder,ndfft1,ndfft2,ndfft3, + special_disp[1],special_disp[2],special_disp[3],special_disp[4]); + } else { + choose(DISP); + mesg += fmt::format(" dispersion: cut {} aewald {} dspscale {} {} {} {}\n", + sqrt(off2),aewald,special_disp[1], + special_disp[2],special_disp[3],special_disp[4]); + } + } + + if (use_ewald) { + choose(MPOLE_LONG); + mesg += fmt::format(" multipole: cut {} aewald {} bsorder {} FFT {} {} {} " + "mscale {} {} {} {}\n", + sqrt(off2),aewald,bseorder,nefft1,nefft2,nefft3, + special_mpole[1],special_mpole[2],special_mpole[3],special_mpole[4]); + } else { + choose(MPOLE); + mesg += fmt::format(" multipole: cut {} aewald {} mscale {} {} {} {}\n", sqrt(off2),aewald, + special_mpole[1],special_mpole[2],special_mpole[3],special_mpole[4]); + } + + if (use_ewald) { + choose(POLAR_LONG); + mesg += fmt::format(" polar: cut {} aewald {} bsorder {} FFT {} {} {}\n", + sqrt(off2),aewald,bsporder,nefft1,nefft2,nefft3); + mesg += fmt::format(" pscale {} {} {} {} piscale {} {} {} {} " + "wscale {} {} {} {} d/u scale {} {}\n", + special_polar_pscale[1],special_polar_pscale[2], + special_polar_pscale[3],special_polar_pscale[4], + special_polar_piscale[1],special_polar_piscale[2], + special_polar_piscale[3],special_polar_piscale[4], + special_polar_wscale[1],special_polar_wscale[2], + special_polar_wscale[3],special_polar_wscale[4], + polar_dscale,polar_uscale); + } else { + choose(POLAR); + mesg += fmt::format(" polar: cut {} aewald {}\n",sqrt(off2),aewald); + mesg += fmt::format(" pscale {} {} {} {} piscale {} {} {} {} " + "wscale {} {} {} {} d/u scale {} {}\n", + special_polar_pscale[1],special_polar_pscale[2], + special_polar_pscale[3],special_polar_pscale[4], + special_polar_piscale[1],special_polar_piscale[2], + special_polar_piscale[3],special_polar_piscale[4], + special_polar_wscale[1],special_polar_wscale[2], + special_polar_wscale[3],special_polar_wscale[4], + polar_dscale,polar_uscale); + } + + choose(USOLV); + mesg += fmt::format(" precondition: cut {}\n",sqrt(off2)); + utils::logmesg(lmp, mesg); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairAmoeba::init_one(int /*i*/, int /*j*/) +{ + double cutoff = 0.0; + + if (amoeba) { + choose(HAL); + cutoff = MAX(cutoff,sqrt(off2)); + } else { + choose(REPULSE); + cutoff = MAX(cutoff,sqrt(off2)); + if (use_dewald) choose(DISP_LONG); + else choose(DISP); + cutoff = MAX(cutoff,sqrt(off2)); + } + + if (use_ewald) choose(MPOLE_LONG); + else choose(MPOLE); + cutoff = MAX(cutoff,sqrt(off2)); + + if (use_ewald) choose(POLAR_LONG); + else choose(POLAR); + cutoff = MAX(cutoff,sqrt(off2)); + + if (!amoeba) { + choose(QFER); + cutoff = MAX(cutoff,sqrt(off2)); + } + + return cutoff; +} + +/* ---------------------------------------------------------------------- */ + +int PairAmoeba::pack_forward_comm(int n, int *list, double *buf, + int /*pbc_flag*/, int * /*pbc*/) +{ + int i,j,k,m; + + m = 0; + + if (cfstyle == INDUCE) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = uind[j][0]; + buf[m++] = uind[j][1]; + buf[m++] = uind[j][2]; + buf[m++] = uinp[j][0]; + buf[m++] = uinp[j][1]; + buf[m++] = uinp[j][2]; + } + + if (poltyp == OPT) { + for (i = 0; i < n; i++) { + j = list[i]; + for (k = 0; k < optorder; k++) { + buf[m++] = uopt[j][k][0]; + buf[m++] = uopt[j][k][1]; + buf[m++] = uopt[j][k][2]; + buf[m++] = uoptp[j][k][0]; + buf[m++] = uoptp[j][k][1]; + buf[m++] = uoptp[j][k][2]; + } + } + } + + /* + if (poltyp == TCG) { + for (i = 0; i < n; i++) { + j = list[i]; + for (k = 0; k < tcgnab; k++) { + buf[m++] = uad[k][j][0]; + buf[m++] = uad[k][j][1]; + buf[m++] = uad[k][j][2]; + buf[m++] = uap[k][j][0]; + buf[m++] = uap[k][j][1]; + buf[m++] = uap[k][j][2]; + buf[m++] = ubd[k][j][0]; + buf[m++] = ubd[k][j][1]; + buf[m++] = ubd[k][j][2]; + buf[m++] = ubp[k][j][0]; + buf[m++] = ubp[k][j][1]; + buf[m++] = ubp[k][j][2]; + } + } + } + */ + + } else if (cfstyle == RSD) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = rsd[j][0]; + buf[m++] = rsd[j][1]; + buf[m++] = rsd[j][2]; + buf[m++] = rsdp[j][0]; + buf[m++] = rsdp[j][1]; + buf[m++] = rsdp[j][2]; + } + + } else if (cfstyle == SETUP_AMOEBA) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = xred[j][0]; + buf[m++] = xred[j][1]; + buf[m++] = xred[j][2]; + for (k = 0; k < 13; k++) + buf[m++] = rpole[j][k]; + } + + } else if (cfstyle == SETUP_HIPPO) { + for (i = 0; i < n; i++) { + j = list[i]; + for (k = 0; k < 13; k++) + buf[m++] = rpole[j][k]; + } + + } else if (cfstyle == KMPOLE) { + int **nspecial = atom->nspecial; + tagint **special = atom->special; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = ubuf(nspecial[j][0]).d; + for (k = 0; k < nspecial[j][0]; k++) + buf[m++] = ubuf(special[j][k]).d; + } + + } else if (cfstyle == AMGROUP) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = ubuf(amgroup[j]).d; + } + + } else if (cfstyle == PVAL) { + double *pval = atom->dvector[index_pval]; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = pval[j]; + } + } + + return m; +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::unpack_forward_comm(int n, int first, double *buf) +{ + int i,k,m,last; + + m = 0; + last = first + n; + + if (cfstyle == INDUCE) { + for (i = first; i < last; i++) { + uind[i][0] = buf[m++]; + uind[i][1] = buf[m++]; + uind[i][2] = buf[m++]; + uinp[i][0] = buf[m++]; + uinp[i][1] = buf[m++]; + uinp[i][2] = buf[m++]; + } + + if (poltyp == OPT) { + for (i = first; i < last; i++) { + for (k = 0; k < optorder; k++) { + uopt[i][k][0] = buf[m++]; + uopt[i][k][1] = buf[m++]; + uopt[i][k][2] = buf[m++]; + uoptp[i][k][0] = buf[m++]; + uoptp[i][k][1] = buf[m++]; + uoptp[i][k][2] = buf[m++]; + } + } + } + + /* + if (poltyp == TCG) { + for (i = first; i < last; i++) { + for (k = 0; k < tcgnab; k++) { + uad[k][i][0] = buf[m++]; + uad[k][i][1] = buf[m++]; + uad[k][i][2] = buf[m++]; + uap[k][i][0] = buf[m++]; + uap[k][i][1] = buf[m++]; + uap[k][i][2] = buf[m++]; + ubd[k][i][0] = buf[m++]; + ubd[k][i][1] = buf[m++]; + ubd[k][i][2] = buf[m++]; + ubp[k][i][0] = buf[m++]; + ubp[k][i][1] = buf[m++]; + ubp[k][i][2] = buf[m++]; + } + } + } + */ + + } else if (cfstyle == RSD) { + for (i = first; i < last; i++) { + rsd[i][0] = buf[m++]; + rsd[i][1] = buf[m++]; + rsd[i][2] = buf[m++]; + rsdp[i][0] = buf[m++]; + rsdp[i][1] = buf[m++]; + rsdp[i][2] = buf[m++]; + } + + } else if (cfstyle == SETUP_AMOEBA) { + for (i = first; i < last; i++) { + xred[i][0] = buf[m++]; + xred[i][1] = buf[m++]; + xred[i][2] = buf[m++]; + for (k = 0; k < 13; k++) + rpole[i][k] = buf[m++]; + } + + } else if (cfstyle == SETUP_HIPPO) { + for (i = first; i < last; i++) { + for (k = 0; k < 13; k++) + rpole[i][k] = buf[m++]; + } + + + } else if (cfstyle == KMPOLE) { + int **nspecial = atom->nspecial; + tagint **special = atom->special; + for (i = first; i < last; i++) { + nspecial[i][0] = (int) ubuf(buf[m++]).i; + for (k = 0; k < nspecial[i][0]; k++) + special[i][k] = (tagint) ubuf(buf[m++]).i; + } + + } else if (cfstyle == AMGROUP) { + for (i = first; i < last; i++) { + amgroup[i] = (int) ubuf(buf[m++]).i; + } + + } else if (cfstyle == PVAL) { + double *pval = atom->dvector[index_pval]; + for (i = first; i < last; i++) { + pval[i] = buf[m++]; + } + } +} + +/* ---------------------------------------------------------------------- */ + +int PairAmoeba::pack_reverse_comm(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + + if (crstyle == FIELD) { + for (i = first; i < last; i++) { + buf[m++] = field[i][0]; + buf[m++] = field[i][1]; + buf[m++] = field[i][2]; + buf[m++] = fieldp[i][0]; + buf[m++] = fieldp[i][1]; + buf[m++] = fieldp[i][2]; + } + } else if (crstyle == ZRSD) { + for (i = first; i < last; i++) { + buf[m++] = zrsd[i][0]; + buf[m++] = zrsd[i][1]; + buf[m++] = zrsd[i][2]; + buf[m++] = zrsdp[i][0]; + buf[m++] = zrsdp[i][1]; + buf[m++] = zrsdp[i][2]; + } + } else if (crstyle == TORQUE) { + for (i = first; i < last; i++) { + buf[m++] = tq[i][0]; + buf[m++] = tq[i][1]; + buf[m++] = tq[i][2]; + } + } else if (crstyle == UFLD) { + for (i = first; i < last; i++) { + buf[m++] = ufld[i][0]; + buf[m++] = ufld[i][1]; + buf[m++] = ufld[i][2]; + buf[m++] = dufld[i][0]; + buf[m++] = dufld[i][1]; + buf[m++] = dufld[i][2]; + buf[m++] = dufld[i][3]; + buf[m++] = dufld[i][4]; + buf[m++] = dufld[i][5]; + } + } + + return m; +} + +/* ---------------------------------------------------------------------- */ + +void PairAmoeba::unpack_reverse_comm(int n, int *list, double *buf) +{ + int i,j,m; + + m = 0; + + if (crstyle == FIELD) { + for (i = 0; i < n; i++) { + j = list[i]; + field[j][0] += buf[m++]; + field[j][1] += buf[m++]; + field[j][2] += buf[m++]; + fieldp[j][0] += buf[m++]; + fieldp[j][1] += buf[m++]; + fieldp[j][2] += buf[m++]; + } + } else if (crstyle == ZRSD) { + for (i = 0; i < n; i++) { + j = list[i]; + zrsd[j][0] += buf[m++]; + zrsd[j][1] += buf[m++]; + zrsd[j][2] += buf[m++]; + zrsdp[j][0] += buf[m++]; + zrsdp[j][1] += buf[m++]; + zrsdp[j][2] += buf[m++]; + } + } else if (crstyle == TORQUE) { + for (i = 0; i < n; i++) { + j = list[i]; + tq[j][0] += buf[m++]; + tq[j][1] += buf[m++]; + tq[j][2] += buf[m++]; + } + } else if (crstyle == UFLD) { + for (i = 0; i < n; i++) { + j = list[i]; + ufld[j][0] += buf[m++]; + ufld[j][1] += buf[m++]; + ufld[j][2] += buf[m++]; + dufld[j][0] += buf[m++]; + dufld[j][1] += buf[m++]; + dufld[j][2] += buf[m++]; + dufld[j][3] += buf[m++]; + dufld[j][4] += buf[m++]; + dufld[j][5] += buf[m++]; + } + } +} + +/* ---------------------------------------------------------------------- + pack own values to buf to send to another proc +------------------------------------------------------------------------- */ + +void PairAmoeba::pack_forward_grid(int flag, void *vbuf, int nlist, int *list) +{ + FFT_SCALAR *buf = (FFT_SCALAR *) vbuf; + + if (flag == MPOLE_GRID) { + FFT_SCALAR *src = m_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + buf[i] = src[list[i]]; + } else if (flag == POLAR_GRID) { + FFT_SCALAR *src = p_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + buf[i] = src[list[i]]; + } else if (flag == POLAR_GRIDC) { + FFT_SCALAR *src = pc_kspace->grid_brick_start; + int n = 0; + for (int i = 0; i < nlist; i++) { + buf[n++] = src[2*list[i]]; + buf[n++] = src[2*list[i]+1]; + } + } else if (flag == DISP_GRID) { + FFT_SCALAR *src = d_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + buf[i] = src[list[i]]; + } else if (flag == INDUCE_GRID) { + FFT_SCALAR *src = i_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + buf[i] = src[list[i]]; + } else if (flag == INDUCE_GRIDC) { + FFT_SCALAR *src = ic_kspace->grid_brick_start; + int n = 0; + for (int i = 0; i < nlist; i++) { + buf[n++] = src[2*list[i]]; + buf[n++] = src[2*list[i]+1]; + } + } +} + +/* ---------------------------------------------------------------------- + unpack another proc's own values from buf and set own ghost values +------------------------------------------------------------------------- */ + +void PairAmoeba::unpack_forward_grid(int flag, void *vbuf, int nlist, int *list) +{ + FFT_SCALAR *buf = (FFT_SCALAR *) vbuf; + + if (flag == MPOLE_GRID) { + FFT_SCALAR *dest = m_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + dest[list[i]] = buf[i]; + } else if (flag == POLAR_GRID) { + FFT_SCALAR *dest = p_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + dest[list[i]] = buf[i]; + } else if (flag == POLAR_GRIDC) { + FFT_SCALAR *dest = pc_kspace->grid_brick_start; + int n = 0; + for (int i = 0; i < nlist; i++) { + dest[2*list[i]] = buf[n++]; + dest[2*list[i]+1] = buf[n++]; + } + } else if (flag == DISP_GRID) { + FFT_SCALAR *dest = d_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + dest[list[i]] = buf[i]; + } else if (flag == INDUCE_GRID) { + FFT_SCALAR *dest = i_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + dest[list[i]] = buf[i]; + } else if (flag == INDUCE_GRIDC) { + FFT_SCALAR *dest = ic_kspace->grid_brick_start; + int n = 0; + for (int i = 0; i < nlist; i++) { + dest[2*list[i]] = buf[n++]; + dest[2*list[i]+1] = buf[n++]; + } + } +} + +/* ---------------------------------------------------------------------- + pack ghost values into buf to send to another proc +------------------------------------------------------------------------- */ + +void PairAmoeba::pack_reverse_grid(int flag, void *vbuf, int nlist, int *list) +{ + FFT_SCALAR *buf = (FFT_SCALAR *) vbuf; + + if (flag == MPOLE_GRID) { + FFT_SCALAR *src = m_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + buf[i] = src[list[i]]; + } else if (flag == POLAR_GRID) { + FFT_SCALAR *src = p_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + buf[i] = src[list[i]]; + } else if (flag == POLAR_GRIDC) { + FFT_SCALAR *src = pc_kspace->grid_brick_start; + int n = 0; + for (int i = 0; i < nlist; i++) { + buf[n++] = src[2*list[i]]; + buf[n++] = src[2*list[i]+1]; + } + } else if (flag == DISP_GRID) { + FFT_SCALAR *src = d_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + buf[i] = src[list[i]]; + } else if (flag == INDUCE_GRID) { + FFT_SCALAR *src = i_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + buf[i] = src[list[i]]; + } else if (flag == INDUCE_GRIDC) { + FFT_SCALAR *src = ic_kspace->grid_brick_start; + int n = 0; + for (int i = 0; i < nlist; i++) { + buf[n++] = src[2*list[i]]; + buf[n++] = src[2*list[i]+1]; + } + } +} + +/* ---------------------------------------------------------------------- + unpack another proc's ghost values from buf and add to own values +------------------------------------------------------------------------- */ + +void PairAmoeba::unpack_reverse_grid(int flag, void *vbuf, int nlist, int *list) +{ + FFT_SCALAR *buf = (FFT_SCALAR *) vbuf; + + if (flag == MPOLE_GRID) { + FFT_SCALAR *dest = m_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + dest[list[i]] += buf[i]; + } else if (flag == POLAR_GRID) { + FFT_SCALAR *dest = p_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + dest[list[i]] += buf[i]; + } else if (flag == POLAR_GRIDC) { + FFT_SCALAR *dest = pc_kspace->grid_brick_start; + int n = 0; + for (int i = 0; i < nlist; i++) { + dest[2*list[i]] += buf[n++]; + dest[2*list[i]+1] += buf[n++]; + } + } else if (flag == DISP_GRID) { + FFT_SCALAR *dest = d_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + dest[list[i]] += buf[i]; + } else if (flag == INDUCE_GRID) { + FFT_SCALAR *dest = i_kspace->grid_brick_start; + for (int i = 0; i < nlist; i++) + dest[list[i]] += buf[i]; + } else if (flag == INDUCE_GRIDC) { + FFT_SCALAR *dest = ic_kspace->grid_brick_start; + int n = 0; + for (int i = 0; i < nlist; i++) { + dest[2*list[i]] += buf[n++]; + dest[2*list[i]+1] += buf[n++]; + } + } +} + +// ---------------------------------------------------------------------- +// AMOEBA/HIPPO specific methods +// ---------------------------------------------------------------------- + +/* ---------------------------------------------------------------------- + assign atoms to polarization groups with unique IDs +------------------------------------------------------------------------- */ + +void PairAmoeba::assign_groups() +{ + int i,j,m,jtype,mtype; + int nbond,ngroup,ibond,igroup,ghostmark,anyghostmark; + tagint jglobal; + + int nstack = 0; + int maxstack = 0; + int *stack = nullptr; + + tagint **special = atom->special; + int **nspecial = atom->nspecial; + tagint *tag = atom->tag; + int nlocal = atom->nlocal; + + // initially, groupID = atomID + // communicate new groupIDs to ghost atoms + + for (i = 0; i < nlocal; i++) amgroup[i] = tag[i]; + cfstyle = AMGROUP; + comm->forward_comm(this); + + // loop until no ghost atom groupIDs are reset + + while (true) { + + // loop over all atoms and their group neighborhoods + + ghostmark = 0; + for (i = 0; i < nlocal; i++) { + + // push atom I on stack + + nstack = 0; + if (nstack == maxstack) { + maxstack += DELTASTACK; + memory->grow(stack,maxstack,"amoeba:stack"); + } + stack[nstack++] = i; + + // loop over I's group neighborhood until stack is empty + + while (nstack > 0) { + + // pop atom M off stack + + m = stack[nstack-1]; + nstack--; + mtype = amtype[m]; + + // loop over bond partners of atom M + + nbond = nspecial[m][0]; + for (ibond = 0; ibond < nbond; ibond++) { + jglobal = special[m][ibond]; + j = atom->map(jglobal); + if (j < 0) + error->one(FLERR,"AMOEBA group assignment bond neighbor not found"); + jtype = amtype[j]; + + // if amtype of bondpartner J is not in polgroup of atom M, continue + + ngroup = npolgroup[mtype]; + for (igroup = 0; igroup < ngroup; igroup++) + if (jtype == polgroup[mtype][igroup]) break; + if (igroup == ngroup) continue; + + // if groupID of atoms J and M are the same, continue + // else set atom with larger groupID to smaller groupID + // if changed atom is ghost, set ghostmark, else push atom on stack + + if (amgroup[m] == amgroup[j]) continue; + + if (amgroup[m] > amgroup[j]) { + amgroup[m] = amgroup[j]; + if (nstack == maxstack) { + maxstack += DELTASTACK; + memory->grow(stack,maxstack,"amoeba:stack"); + } + stack[nstack++] = m; + } else { + amgroup[j] = amgroup[m]; + if (j >= nlocal) ghostmark = 1; + else { + if (nstack == maxstack) { + maxstack += DELTASTACK; + memory->grow(stack,maxstack,"amoeba:stack"); + } + stack[nstack++] = j; + } + } + } + } + } + + // communicate new groupIDs to ghost atoms + + cfstyle = AMGROUP; + comm->forward_comm(this); + + // done if no proc reset groupID of a ghost atom + + MPI_Allreduce(&ghostmark,&anyghostmark,1,MPI_INT,MPI_MAX,world); + if (!anyghostmark) break; + } + + memory->destroy(stack); + + // print group count + + int count = 0; + for (i = 0; i < nlocal; i++) + if (tag[i] == amgroup[i]) count++; + bigint bcount = count; + bigint allbcount; + MPI_Allreduce(&bcount,&allbcount,1,MPI_LMP_BIGINT,MPI_SUM,world); + + if (comm->me == 0) + utils::logmesg(lmp, " {} group count: {}\n",utils::uppercase(mystyle), allbcount); +} + +/* ---------------------------------------------------------------------- + adjust xred for ghost atoms due to PBC +------------------------------------------------------------------------- */ + +void PairAmoeba::pbc_xred() +{ + double prd,prd_half,delta; + + double **x = atom->x; + int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; + + if (domain->xperiodic) { + prd = domain->xprd; + prd_half = domain->xprd_half; + for (int i = nlocal; i < nall; i++) { + delta = xred[i][0] - x[i][0]; + while (fabs(delta) > prd_half) { + if (delta < 0.0) xred[i][0] += prd; + else xred[i][0] -= prd; + delta = xred[i][0] - x[i][0]; + } + } + } + + if (domain->yperiodic) { + prd = domain->yprd; + prd_half = domain->yprd_half; + for (int i = nlocal; i < nall; i++) { + delta = xred[i][1] - x[i][1]; + while (fabs(delta) > prd_half) { + if (delta < 0.0) xred[i][1] += prd; + else xred[i][1] -= prd; + delta = xred[i][1] - x[i][1]; + } + } + } + + if (domain->zperiodic) { + prd = domain->zprd; + prd_half = domain->zprd_half; + for (int i = nlocal; i < nall; i++) { + delta = xred[i][2] - x[i][2]; + while (fabs(delta) > prd_half) { + if (delta < 0.0) xred[i][2] += prd; + else xred[i][2] -= prd; + delta = xred[i][2] - x[i][2]; + } + } + } +} + +/* ---------------------------------------------------------------------- + build reduced-size preconditioner neigh list from master neigh list +------------------------------------------------------------------------- */ + +void PairAmoeba::precond_neigh() +{ + int i,j,ii,jj,n,inum,jnum; + double xtmp,ytmp,ztmp,delx,dely,delz,rsq; + int *ilist,*jlist,*numneigh,**firstneigh; + int *neighptr; + + // NOTE: no skin added to cutoff for this shorter neighbor list + // also note that Tinker (and thus LAMMPS) does not apply the + // distance cutoff in the CG iterations in induce.cpp, + // rather all interactions in the precond neigh list are + // used every step until the neighbor list is rebuilt, + // this means the cutoff distance is not exactly enforced, + // on later steps atoms outside may contribute, atoms inside may not + + choose(USOLV); + + // atoms and neighbor list + + double **x = atom->x; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // store all induce neighs of owned atoms within shorter cutoff + // scan longer-cutoff neighbor list of I + + ipage_precond->reset(); + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + + n = 0; + neighptr = ipage_precond->vget(); + + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK15; + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + if (rsq < off2) neighptr[n++] = jlist[jj]; + } + + firstneigh_precond[i] = neighptr; + numneigh_precond[i] = n; + ipage_precond->vgot(n); + } +} + + +/* ---------------------------------------------------------------------- + allocate Vdwl arrays + note that n_amclass = # of classes in Tinker PRM file + actual number of classes for atoms in simulation may be smaller + this is determined by the AMOEBA types listed in Tinker xyz file + and their mapping to AMOEBA classes +------------------------------------------------------------------------- */ + +void PairAmoeba::initialize_vdwl() +{ + radmin = radmin4 = epsilon = epsilon4 = nullptr; +} + +void PairAmoeba::allocate_vdwl() +{ + memory->create(radmin,n_amclass+1,n_amclass+1,"amoeba:radmin"); + memory->create(radmin4,n_amclass+1,n_amclass+1,"amoeba:radmin4"); + memory->create(epsilon,n_amclass+1,n_amclass+1,"amoeba:epsilon"); + memory->create(epsilon4,n_amclass+1,n_amclass+1,"amoeba:epsilon4"); +} + +void PairAmoeba::deallocate_vdwl() +{ + memory->destroy(radmin); + memory->destroy(radmin4); + memory->destroy(epsilon); + memory->destroy(epsilon4); +} + +/* ---------------------------------------------------------------------- + allocate small-size arrays +------------------------------------------------------------------------- */ + +void PairAmoeba::initialize_smallsize() +{ + copt = copm = nullptr; + a_ualt = ap_ualt = nullptr; + b_ualt = bp_ualt = nullptr; + c_ualt = cp_ualt = nullptr; + bpred = bpredp = bpreds = bpredps = nullptr; + gear = aspc = nullptr; +} + +void PairAmoeba::allocate_smallsize() +{ + // note use of optorder+1 + + copt = new double[optorder+1]; + copm = new double[optorder+1]; + + a_ualt = new double[maxualt*(maxualt+1)/2]; + ap_ualt = new double[maxualt*(maxualt+1)/2]; + b_ualt = new double[maxualt]; + bp_ualt = new double[maxualt]; + memory->create(c_ualt,maxualt,maxualt,"amoeba:c_ualt"); + memory->create(cp_ualt,maxualt,maxualt,"amoeba:cp_ualt"); + bpred = new double[maxualt]; + bpredp = new double[maxualt]; + bpreds = new double[maxualt]; + bpredps = new double[maxualt]; + if (use_pred) { + if (polpred == GEAR) gear = new double[maxualt]; + if (polpred == ASPC) aspc = new double[maxualt]; + } +} + +void PairAmoeba::deallocate_smallsize() +{ + delete[] copt; + delete[] copm; + delete[] a_ualt; + delete[] ap_ualt; + delete[] b_ualt; + delete[] bp_ualt; + memory->destroy(c_ualt); + memory->destroy(cp_ualt); + delete[] bpred; + delete[] bpredp; + delete[] bpreds; + delete[] bpredps; + delete[] gear; + delete[] aspc; +} + +/* ---------------------------------------------------------------------- + set cutoffs, taper constants, PME params for a FF component +------------------------------------------------------------------------- */ + +void PairAmoeba::choose(int which) +{ + double off = 0.0; + double cut = 0.0; + + // short-range only terms + + if (which == HAL) { + off = vdwcut; + cut = vdwtaper; + } else if (which == REPULSE) { + off = repcut; + cut = reptaper; + } else if (which == QFER) { + off = ctrncut; + cut = ctrntaper; + } else if (which == DISP) { + off = dispcut; + cut = disptaper; + aewald = 0.0; + } else if (which == MPOLE) { + off = mpolecut; + cut = mpoletaper; + aewald = 0.0; + } else if (which == POLAR) { + off = ewaldcut; + cut = 0.99*off; // not used + aewald = 0.0; + } else if (which == USOLV) { + off = usolvcut; + cut = 0.99*off; // not used + + // short-range + long-range terms + + } else if (which == DISP_LONG) { + off = dispcut; + cut = 0.99*cut; // not used + aewald = adewald; + } else if (which == MPOLE_LONG) { + off = mpolecut; + cut = 0.99*cut; // not used + aewald = aeewald; + } else if (which == POLAR_LONG) { + off = ewaldcut; + cut = 0.99*off; // not used + aewald = apewald; + } + + off2 = off*off; + cut2 = cut*cut; + + // taper coeffs + + double denom = pow(off-cut,5.0); + c0 = off*off2 * (off2 - 5.0*off*cut + 10.0*cut2) / denom; + c1 = -30.0 * off2*cut2 / denom; + c2 = 30.0 * (off2*cut+off*cut2) / denom; + c3 = -10.0 * (off2 + 4.0*off*cut + cut2) / denom; + c4 = 15.0 * (off+cut) / denom; + c5 = -6.0 / denom; +} + +/* ---------------------------------------------------------------------- + compute mixing rules for all pairwise params on a per-class basis + override default mixing with VDWLPR entries in force field file + no vdwl14 terms are used by AMOEBA or HIPPO force fields +------------------------------------------------------------------------- */ + +void PairAmoeba::mix() +{ + int i,j,m; + double ei,ej,sei,sej,eij; + double ri,rj,sri,srj,rij; + + double TWOSIX = pow(2.0,1.0/6.0); + + for (i = 1; i <= n_amclass; i++) { + for (j = i; j <= n_amclass; j++) { + + ei = vdwl_eps[i]; + ej = vdwl_eps[j]; + ri = vdwl_sigma[i]; + rj = vdwl_sigma[j]; + + if (radius_type == SIGMA) { + ri *= TWOSIX; + rj *= TWOSIX; + } + if (radius_size == DIAMETER) { + ri *= 0.5; + rj *= 0.5; + } + + sri = sqrt(ri); + ei = fabs(ei); + sei = sqrt(ei); + srj = sqrt(rj); + ej = fabs(ej); + sej = sqrt(ej); + + if (ri == 0.0 && rj == 0.0) { + rij = 0.0; + } else if (radius_rule == ARITHMETIC) { + rij = ri + rj; + } else if (radius_rule == GEOMETRIC) { + rij = 2.0 * sri * srj; + } else if (radius_rule == CUBIC_MEAN) { + rij = 2.0 * (ri*ri*ri + rj*rj*rj) / (ri*ri + rj*rj); + } else { + rij = ri + rj; + } + + if (ei == 0.0 && ej == 0.0) { + eij = 0.0; + } else if (epsilon_rule == ARITHMETIC) { + eij = 0.5 * (ei + ej); + } else if (epsilon_rule == GEOMETRIC) { + eij = sei * sej; + } else if (epsilon_rule == HARMONIC) { + eij = 2.0 * (ei*ej) / (ei+ej); + } else if (epsilon_rule == HHG) { + eij = 4.0 * (ei*ej) / ((sei+sej)*(sei+sej)); + } else if (epsilon_rule == W_H) { + eij = 2.0 * (sei*sej) * pow(ri*rj,3.0) / (pow(ri,6.0) + pow(rj,6.0)); + } else { + eij = sei * sej; + } + + radmin[j][i] = radmin[i][j] = rij; + radmin4[j][i] = radmin4[i][j] = rij; + epsilon[j][i] = epsilon[i][j] = eij; + epsilon4[j][i] = epsilon4[i][j] = eij; + } + } + + // override with VDWPR pairwise entries from force field file + + for (m = 0; m < nvdwl_pair; m++) { + i = vdwl_class_pair[m][0]; + j = vdwl_class_pair[m][1]; + rij = vdwl_sigma_pair[m]; + eij = vdwl_eps_pair[m]; + + if (radius_type == SIGMA) rij *= TWOSIX; + + radmin[j][i] = radmin[i][j] = rij; + radmin4[j][i] = radmin4[i][j] = rij; + epsilon[j][i] = epsilon[i][j] = eij; + epsilon4[j][i] = epsilon4[i][j] = eij; + } +} + +/* ---------------------------------------------------------------------- */ + +void *PairAmoeba::extract(const char *str, int &dim) +{ + dim = 0; + + if (strcmp(str,"amtype") == 0) return (void *) amtype; + if (strcmp(str,"atomic_num") == 0) return (void *) atomic_num; + + if (strcmp(str,"bond_flag") == 0) return (void *) &bond_flag; + if (strcmp(str,"angle_flag") == 0) return (void *) &angle_flag; + if (strcmp(str,"dihedral_flag") == 0) return (void *) &dihedral_flag; + if (strcmp(str,"improper_flag") == 0) return (void *) &improper_flag; + if (strcmp(str,"urey_flag") == 0) return (void *) &urey_flag; + if (strcmp(str,"pitorsion_flag") == 0) return (void *) &pitorsion_flag; + if (strcmp(str,"bitorsion_flag") == 0) return (void *) &bitorsion_flag; + + if (strcmp(str,"opbend_cubic") == 0) return (void *) &opbend_cubic; + if (strcmp(str,"opbend_quartic") == 0) return (void *) &opbend_quartic; + if (strcmp(str,"opbend_pentic") == 0) return (void *) &opbend_pentic; + if (strcmp(str,"opbend_sextic") == 0) return (void *) &opbend_sextic; + + return nullptr; +} + +/* ---------------------------------------------------------------------- + grow local vectors and arrays if necessary + keep them all atom->nmax in length even if ghost storage not needed +------------------------------------------------------------------------- */ + +void PairAmoeba::grow_local() +{ + // free vectors and arrays + + memory->destroy(xaxis2local); + memory->destroy(yaxis2local); + memory->destroy(zaxis2local); + memory->destroy(rpole); + memory->destroy(tq); + + if (amoeba) { + memory->destroy(red2local); + memory->destroy(xred); + } + + memory->destroy(uind); + memory->destroy(uinp); + memory->destroy(udirp); + if (poltyp == OPT) { + memory->destroy(uopt); + memory->destroy(uoptp); + memory->destroy(fopt); + memory->destroy(foptp); + } + + memory->destroy(field); + memory->destroy(fieldp); + memory->destroy(ufld); + memory->destroy(dufld); + memory->destroy(rsd); + memory->destroy(rsdp); + memory->destroy(zrsd); + memory->destroy(zrsdp); + + // multipole + + memory->destroy(cmp); + memory->destroy(fmp); + memory->destroy(cphi); + memory->destroy(fphi); + + // induce + + memory->destroy(poli); + memory->destroy(conj); + memory->destroy(conjp); + memory->destroy(vec); + memory->destroy(vecp); + memory->destroy(udir); + memory->destroy(usum); + memory->destroy(usump); + + memory->destroy(fuind); + memory->destroy(fuinp); + memory->destroy(fdip_phi1); + memory->destroy(fdip_phi2); + memory->destroy(fdip_sum_phi); + memory->destroy(dipfield1); + memory->destroy(dipfield2); + + // polar + + memory->destroy(fphid); + memory->destroy(fphip); + memory->destroy(fphidp); + memory->destroy(cphidp); + + if (use_ewald || use_dewald) { + memory->destroy(thetai1); + memory->destroy(thetai2); + memory->destroy(thetai3); + memory->destroy(igrid); + } + + // dipole and PCG neighbor lists + + memory->destroy(numneigh_dipole); + memory->sfree(firstneigh_dipole); + memory->sfree(firstneigh_dipdip); + + if (poltyp == MUTUAL && pcgprec) { + memory->destroy(numneigh_precond); + memory->sfree(firstneigh_precond); + memory->sfree(firstneigh_pcpc); + } + + // reset nmax + + nmax = atom->nmax; + + // re-allocate vectors and arrays + + memory->create(xaxis2local,nmax,"amoeba:xaxis2local"); + memory->create(yaxis2local,nmax,"amoeba:yaxis2local"); + memory->create(zaxis2local,nmax,"amoeba:zaxis2local"); + memory->create(rpole,nmax,13,"amoeba:rpole"); + memory->create(tq,nmax,3,"amoeba:tq"); + + if (amoeba) { + memory->create(red2local,nmax,"amoeba:red2local"); + memory->create(xred,nmax,3,"amoeba:xred"); + } + + // note use of optorder+1 for uopt and uoptp + + memory->create(uind,nmax,3,"amoeba:uind"); + memory->create(uinp,nmax,3,"amoeba:uinp"); + memory->create(udirp,nmax,3,"amoeba:uinp"); + if (poltyp == OPT) { + memory->create(uopt,nmax,optorder+1,3,"amoeba:uopt"); + memory->create(uoptp,nmax,optorder+1,3,"amoeba:uopt"); + memory->create(fopt,nmax,optorder,10,"amoeba:fopt"); + memory->create(foptp,nmax,optorder,10,"amoeba:foptp"); + } + + memory->create(field,nmax,3,"amoeba:field"); + memory->create(fieldp,nmax,3,"amoeba:fieldp"); + memory->create(ufld,nmax,3,"amoeba:ufld"); + memory->create(dufld,nmax,6,"amoeba:dufld"); + memory->create(rsd,nmax,3,"amoeba:rsd"); + memory->create(rsdp,nmax,3,"amoeba:rsdp"); + memory->create(zrsd,nmax,3,"amoeba:zrsd"); + memory->create(zrsdp,nmax,3,"amoeba:zrsdp"); + + // multipole + + memory->create(cmp,nmax,10,"ameoba/mpole:cmp"); + memory->create(fmp,nmax,10,"ameoba/mpole:fmp"); + memory->create(cphi,nmax,10,"ameoba/mpole:cphi"); + memory->create(fphi,nmax,20,"ameoba/mpole:fphi"); + + // induce + + memory->create(poli,nmax,"ameoba/induce:poli"); + memory->create(conj,nmax,3,"ameoba/induce:conj"); + memory->create(conjp,nmax,3,"ameoba/induce:conjp"); + memory->create(vec,nmax,3,"ameoba/induce:vec"); + memory->create(vecp,nmax,3,"ameoba/induce:vecp"); + memory->create(udir,nmax,3,"ameoba/induce:udir"); + memory->create(usum,nmax,3,"ameoba/induce:usum"); + memory->create(usump,nmax,3,"ameoba/induce:usump"); + + memory->create(fuind,nmax,3,"ameoba/induce:fuind"); + memory->create(fuinp,nmax,3,"ameoba/induce:fuinp"); + memory->create(fdip_phi1,nmax,10,"ameoba/induce:fdip_phi1"); + memory->create(fdip_phi2,nmax,10,"ameoba/induce:fdip_phi2"); + memory->create(fdip_sum_phi,nmax,20,"ameoba/induce:fdip_dum_phi"); + memory->create(dipfield1,nmax,3,"ameoba/induce:dipfield1"); + memory->create(dipfield2,nmax,3,"ameoba/induce:dipfield2"); + + // polar + + memory->create(fphid,nmax,10,"polar:fphid"); + memory->create(fphip,nmax,10,"polar:fphip"); + memory->create(fphidp,nmax,20,"polar:fphidp"); + memory->create(cphidp,nmax,10,"polar:cphidp"); + + if (use_ewald || use_dewald) { + memory->create(thetai1,nmax,bsordermax,4,"amoeba:thetai1"); + memory->create(thetai2,nmax,bsordermax,4,"amoeba:thetai2"); + memory->create(thetai3,nmax,bsordermax,4,"amoeba:thetai3"); + memory->create(igrid,nmax,3,"amoeba:igrid"); + } + + memory->create(numneigh_dipole,nmax,"amoeba:numneigh_dipole"); + firstneigh_dipole = (int **) + memory->smalloc(nmax*sizeof(int *),"induce:firstneigh_dipole"); + firstneigh_dipdip = (double **) + memory->smalloc(nmax*sizeof(double *),"induce:firstneigh_dipdip"); + + if (poltyp == MUTUAL && pcgprec) { + memory->create(numneigh_precond,nmax,"amoeba:numneigh_precond"); + firstneigh_precond = (int **) + memory->smalloc(nmax*sizeof(int *),"induce:firstneigh_precond"); + firstneigh_pcpc = (double **) + memory->smalloc(nmax*sizeof(double *),"induce:firstneigh_pcpc"); + } +} + +/* ---------------------------------------------------------------------- + memory usage of local atom-based arrays and FFTs +------------------------------------------------------------------------- */ + +double PairAmoeba::memory_usage() +{ + double bytes = 0.0; + + bytes += (double) 3 * nmax * sizeof(int); // xyz axis2local + bytes += (double) 13 * nmax * sizeof(double); // rpole + bytes += (double) 3 * nmax * sizeof(double); // tq + + if (amoeba) { + bytes += (double) nmax * sizeof(int); // red22local + bytes += (double) 3 * nmax * sizeof(double); // xred + } + + bytes += (double) 9 * nmax * sizeof(double); // uind/uinp/udirp + if (poltyp == OPT) { + bytes += (double) 6 * (optorder+1) * nmax * sizeof(double); // uopt/uoptp + bytes += (double) 20 * optorder * nmax * sizeof(double); // fopt/foptp + } + + bytes += (double) 15 * nmax * sizeof(double); // field/fieldp/ufld/dufld + bytes += (double) 12 * nmax * sizeof(double); // rsd/rsdp/zrsd/zrsdp + + bytes += (double) 50 * nmax * sizeof(double); // cmp/fmp/cphi/fphi + + bytes += (double) nmax * sizeof(double); // poli + bytes += (double) 12 * nmax * sizeof(double); // conj/conjp/vec/vecp + bytes += (double) 9 * nmax * sizeof(double); // udir/usum/usump + + bytes += (double) 6 * nmax * sizeof(double); // fuind/fuinp + bytes += (double) 20 * nmax * sizeof(double); // fdip_phi1/fdip_phi1 + bytes += (double) 20 * nmax * sizeof(double); // fdip_sum_phi + bytes += (double) 6 * nmax * sizeof(double); // dipfield1/dipfield2 + + bytes += (double) 50 * nmax * sizeof(double); // fphid/fphip/fphidp/cphidp + + if (use_ewald || use_dewald) { + bytes += (double) 12 * bsordermax * nmax *sizeof(double); // theta123 + bytes += (double) 3 * nmax *sizeof(int); // igrid + } + + bytes += (double) nmax * sizeof(int); // numneigh_dipole + bytes += (double) nmax * sizeof(int *); // firstneigh_dipole + bytes += (double) nmax * sizeof(double *); // firstneigh_dipdip + for (int i = 0; i < comm->nthreads; i++) { // 2 neighbor lists + bytes += ipage_dipole[i].size(); + bytes += dpage_dipdip[i].size(); + } + + if (poltyp == MUTUAL && pcgprec) { + bytes += (double) nmax * sizeof(int); // numneigh_rpecond + bytes += (double) nmax * sizeof(int *); // firstneigh_precond + bytes += (double) nmax * sizeof(double *); // firstneigh_pcpc + for (int i = 0; i < comm->nthreads; i++) { // 2 neighbor lists + bytes += ipage_precond[i].size(); + bytes += dpage_pcpc[i].size(); + } + } + + return bytes; +} diff --git a/src/AMOEBA/pair_amoeba.h b/src/AMOEBA/pair_amoeba.h new file mode 100644 index 0000000000..7b0719bca0 --- /dev/null +++ b/src/AMOEBA/pair_amoeba.h @@ -0,0 +1,480 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS +// clang-format off +PairStyle(amoeba,PairAmoeba); +// clang-format on +#else + +#ifndef LMP_PAIR_AMOEBA_H +#define LMP_PAIR_AMOEBA_H + +#include "lmpfftsettings.h" +#include "pair.h" + +namespace LAMMPS_NS { + +#define SBBITS15 29 +#define NEIGHMASK15 0x1FFFFFFF + +class PairAmoeba : public Pair { + public: + PairAmoeba(class LAMMPS *); + ~PairAmoeba() override; + void compute(int, int) override; + void settings(int, char **) override; + void coeff(int, char **) override; + void init_style() override; + double init_one(int, int) override; + void finish() override; + + int pack_forward_comm(int, int *, double *, int, int *) override; + void unpack_forward_comm(int, int, double *) override; + int pack_reverse_comm(int, int, double *) override; + void unpack_reverse_comm(int, int *, double *) override; + + void pack_forward_grid(int, void *, int, int *) override; + void unpack_forward_grid(int, void *, int, int *) override; + void pack_reverse_grid(int, void *, int, int *) override; + void unpack_reverse_grid(int, void *, int, int *) override; + + void *extract(const char *, int &) override; + double memory_usage() override; + + protected: + int nmax; // allocation for owned+ghost + int cfstyle, crstyle; // style of forward/reverse comm operations + int nualt; + double electric; + double rotate[3][3]; // rotation matrix + + bool amoeba; // which force field: amoeba == true, hippo == false + std::string mystyle; // text label for style + int first_flag; // 1 before first init_style() + int first_flag_compute; // 1 before first call to compute() + int optlevel; + + // turn on/off components of force field + + int hal_flag, repulse_flag, qxfer_flag; + int disp_rspace_flag, disp_kspace_flag; + int polar_rspace_flag, polar_kspace_flag; + int mpole_rspace_flag, mpole_kspace_flag; + int bond_flag, angle_flag, dihedral_flag, improper_flag; + int urey_flag, pitorsion_flag, bitorsion_flag; + + // DEBUG timers + + double time_init, time_hal, time_repulse, time_disp; + double time_mpole, time_induce, time_polar, time_qxfer; + + // energy/virial components + + double ehal, erepulse, edisp, epolar, empole, eqxfer; + double virhal[6], virrepulse[6], virdisp[6], virpolar[6], virmpole[6], virqxfer[6]; + + // scalar values defined in force-field file + + char *forcefield; // FF name + double am_dielectric; + + int opbendtype, vdwtype; + int radius_rule, radius_type, radius_size, epsilon_rule; + + double bond_cubic, bond_quartic; + double angle_cubic, angle_quartic, angle_pentic, angle_sextic; + double opbend_cubic, opbend_quartic, opbend_pentic, opbend_sextic; + double torsion_unit; + + int poltyp; + + double special_hal[5]; + double special_repel[5]; + double special_disp[5]; + double special_mpole[5]; + double special_polar_pscale[5]; + double special_polar_piscale[5]; + double special_polar_wscale[5]; + + double polar_dscale, polar_uscale; + + // scalar values defined in keyfile + + double dhal, ghal; + + double vdwcut, vdwtaper; + double repcut, reptaper; + double dispcut, disptaper; + double mpolecut, mpoletaper; + double ctrncut, ctrntaper; + + double ewaldcut; + double dewaldcut; + double usolvcut; + + int use_ewald, use_dewald; + + int use_pred; + int politer, polpred; + int pcgprec, pcgguess; + double pcgpeek; + int tcgnab, optorder; + int maxualt; + double poleps; + double udiag; + + int aeewald_key, apewald_key, adewald_key; + int pmegrid_key, dpmegrid_key; + + // types and classes + + int n_amtype; // # of defined AMOEBA types, 1-N + int n_amclass; // # of defined AMOEBA classes, 1-N + int max_amtype; // allocation length of per-type data + int max_amclass; // allocation length of per-class data + + int *amtype_defined; // 1 if type was defined in FF file + int *amclass_defined; // 1 if class was defined in FF file + int *amtype2class; // amt2c[i] = class which type I belongs to + + // static per-atom properties, must persist as atoms migrate + + int index_amtype, index_amgroup, index_redID; + int index_xyzaxis, index_polaxe, index_pval; + + int *amtype; // AMOEBA type, 1 to N_amtype + int *amgroup; // AMOEBA polarization group, 1 to Ngroup + + char *id_pole, *id_udalt, *id_upalt; + class FixStore *fixpole; // stores pole = multipole components + class FixStore *fixudalt; // stores udalt = induced dipole history + class FixStore *fixupalt; // stores upalt = induced dipole history + + // static per-type properties defined in force-field file + + int *atomic_num; // atomic number + int *valence; // valence (# of possible bonds) + double *am_mass; // atomic weight + double *am_q; // charge + double **am_mu; // dipole moment + + double *polarity; // for polar + double *pdamp; // for polar + double *thole; // for polar + double *dirdamp; // for polar + int *npolgroup; // # of other types in polarization group, per-type + int **polgroup; // list of other types in polarization group, per-type + + double *sizpr, *dmppr, *elepr; + + // multipole frame info for each amtype, read from PRM file + + int *nmultiframe; // # of frames for each type + int **mpaxis; // polaxe values + int **xpole, **ypole, **zpole; // other types in xyz dirs for multipole frame + double ***fpole; // 13 values from file + // 0 = monopole, same as q + // 1,2,3 = 3 dipole components + // 4-12 = 9 quadrupole components + + // static per-class properties defined in force-field file + + double *vdwl_eps; // Vdwl epsilon for each class of atom + double *vdwl_sigma; // Vdwl sigma for each class of atom + double *kred; // fraction that H atoms move towards bonded atom + // used in Vdwl, 0.0 if not H atom + double *csix, *adisp; // used in dispersion + double *chgct, *dmpct; // used in charge transfer + double *pcore, *palpha; // for multipole + + int **vdwl_class_pair; // Vdwl iclass/jclass for pair of classes + double *vdwl_eps_pair; // Vdwl epsilon for pair of classes + double *vdwl_sigma_pair; // Vdwl sigma for pair of classes + int nvdwl_pair; // # of pairwise Vdwl entries in file + int max_vdwl_pair; // size of allocated data for pairwise Vdwl + + // vectors and arrays of small size + + double *copt, *copm; // 0:optorder in length + double *gear, *aspc; + + double *a_ualt, *ap_ualt; // maxualt*(maxualt+1)/2 in length + double *b_ualt, *bp_ualt; // maxualt in length + double **c_ualt, **cp_ualt; // maxualt x maxualt in size + // indices NOT flipped vs Fortran + double *bpred, *bpredp, *bpreds, *bpredps; // maxualt in length + + double vmsave[6]; // multipole virial saved to use in polar + + double csixpr; // square of csix for all atoms + + // params common to pairwise terms + + double off2, cut2; + double c0, c1, c2, c3, c4, c5; + + // Vdwl hal params - only for AMOEBA + + double **radmin, **epsilon; + double **radmin4, **epsilon4; + + // peratom values computed each step + // none of them persist with atoms + // some of them need communication to ghosts + + double **rpole; // multipole, comm to ghosts + + int *xaxis2local, *yaxis2local, *zaxis2local; // xyz axis IDs -> local indices + // just for owned atoms + // set to self if not defined + + int *red2local; // local indices of ired IDs, computed for owned and ghost + double **xred; // altered coords for H atoms for Vdwl, comm to ghosts + + double **tq; // torque from pairwise multipole, reverse comm from ghosts + + double **uind, **uinp; // computed by induce, comm to ghosts + double **udirp; + double **rsd, **rsdp; // used by induce, comm to ghosts + + double **field, **fieldp; // used by induce, reverse comm from ghosts + double ***uopt, ***uoptp; // Nlocal x Optorder+1 x 3 arrays + + double **ufld, **dufld; // used by polar, reverse comm from ghosts + double **zrsd, **zrsdp; // used by induce, reverse comm from ghosts + + double ***uad, ***uap, ***ubd, ***ubp; // used by TCG (not for now) + + double ***fopt, ***foptp; // computed in induce, used by polar, if OPT + // Nlocal x optorder x 10 + + double *poli; + double **conj, **conjp; + double **vec, **vecp; + double **udir, **usum, **usump; + + double **fuind, **fuinp; + double **fdip_phi1, **fdip_phi2, **fdip_sum_phi; + double **dipfield1, **dipfield2; + + double **fphid, **fphip; + double **fphidp, **cphidp; + + // derived local neighbor lists + + int *numneigh_dipole; // number of dipole neighs for each atom + int **firstneigh_dipole; // ptr to each atom's dipole neigh indices + MyPage *ipage_dipole; // pages of neighbor indices for dipole neighs + + double **firstneigh_dipdip; // ptr to each atom's dip/dip values + MyPage *dpage_dipdip; // pages of dip/dip values for dipole neighs + + int *numneigh_precond; // number of precond neighs for each atom + int **firstneigh_precond; // ptr to each atom's precond neigh indices + MyPage *ipage_precond; // pages of neighbor indices for precond neighs + + double **firstneigh_pcpc; // ptr to each atom's pc/pc values + MyPage *dpage_pcpc; // pages of pc/pc values for precond neighs + + // KSpace data + // in indices = owned portion of grid in spatial decomp + // out indices = in + ghost grid cells + // fft indices = owned portion of grid in FFT decomp + + int nefft1, nefft2, nefft3; // for electrostatic PME operations + int ndfft1, ndfft2, ndfft3; // for dispersion PME operations + + int bseorder; // for electrostatics + int bsporder; // for polarization + int bsdorder; // for dispersion + int bsordermax; // max of 3 bsorder values + + double aewald; // current Ewald alpha + double aeewald; // for electrostatics + double apewald; // for polarization + double adewald; // for dispersion + + double *bsmod1, *bsmod2, *bsmod3; // B-spline module along abc axes + // set to max of any nfft1,nfft2,nfft3 + + double ***thetai1, ***thetai2, ***thetai3; // B-spline coeffs along abc axes + // Nlocal x max bsorder x 4 + + int **igrid; // grid indices for each owned particle, Nlocal x 3 + + double **bsbuild; // used internally in bsplgen, max-bsorder x max-bsorder + // indices ARE flipped vs Fortran + + // Kspace data for induce and polar + + double *qfac; // convoulution pre-factors + double *gridfft1; // copy of p_kspace FFT grid + + double **cmp, **fmp; // Cartesian and fractional multipoles + double **cphi, **fphi; + + // params for current KSpace solve and FFT being worked on + + int nfft1, nfft2, nfft3; // size of FFT + int bsorder; // stencil size + double recip[3][3]; // indices NOT flipped vs Fortran + double ctf[10][10]; // indices NOT flipped vs Fortran + double ftc[10][10]; // indices NOT flipped vs Fortran + + class AmoebaConvolution *m_kspace, *p_kspace, *pc_kspace, *d_kspace; + class AmoebaConvolution *i_kspace, *ic_kspace; + + // FFT grid size factors + + int nfactors; // # of factors + int *factors; // list of possible factors (2,3,5) + + // components of force field + + void hal(); + + void repulsion(); + void damprep(double, double, double, double, double, double, double, double, int, double, double, + double *); + + void dispersion(); + void dispersion_real(); + void dispersion_kspace(); + + void multipole(); + void multipole_real(); + void multipole_kspace(); + + void polar(); + void polar_energy(); + void polar_real(); + void polar_kspace(); + void damppole(double, int, double, double, double *, double *, double *); + + void induce(); + void ulspred(); + void ufield0c(double **, double **); + void uscale0b(int, double **, double **, double **, double **); + void dfield0c(double **, double **); + void umutual1(double **, double **); + void umutual2b(double **, double **); + void udirect1(double **); + void udirect2b(double **, double **); + void dampmut(double, double, double, double *); + void dampdir(double, double, double, double *, double *); + void cholesky(int, double *, double *); + + void charge_transfer(); + + // KSpace methods + + void lattice(); + void moduli(); + void bspline(double, int, double *); + void dftmod(double *, double *, int, int); + void bspline_fill(); + void bsplgen(double, double **); + void cmp_to_fmp(double **, double **); + void cart_to_frac(); + void fphi_to_cphi(double **, double **); + void frac_to_cart(); + + void grid_mpole(double **, double ***); + void fphi_mpole(double ***, double **); + void grid_uind(double **, double **, double ****); + void fphi_uind(double ****, double **, double **, double **); + void grid_disp(double ***); + + void kewald(); + void kewald_parallel(int, int, int, int, int &, int &, int &, int &, int &, int &, int &, int &, + int &, int &, int &, int &, int &, int &, int &, int &, int &, int &); + double ewaldcof(double); + int factorable(int); + + // debug methods + + FILE *fp_uind; + void dump6(FILE *, const char *, double, double **, double **); + + // functions in pair_amoeba.cpp + + void allocate(); + void print_settings(); + + void initialize_vdwl(); + void allocate_vdwl(); + void deallocate_vdwl(); + + void initialize_smallsize(); + void allocate_smallsize(); + void deallocate_smallsize(); + + void assign_groups(); + void pbc_xred(); + void precond_neigh(); + void choose(int); + void mix(); + void zero_energy_force_virial(); + void grow_local(); + + // functions in amoeba_utils.cpp + + void kmpole(); + + void chkpole(int); + void rotmat(int); + void rotsite(int); + + void add_onefive_neighbors(); + void find_hydrogen_neighbors(); + void find_multipole_neighbors(); + + void torque2force(int, double *, double *, double *, double *, double **); + + // functions in file_amoeba.cpp + + void set_defaults(); + void read_prmfile(char *); + void read_keyfile(char *); + + void initialize_type_class(); + void allocate_type_class(int, int); + void deallocate_type_class(); + + void file_ffield(const std::vector &, int); + void file_literature(const std::vector &, int); + void file_atomtype(const std::vector &, int); + void file_vdwl(const std::vector &, int); + void file_vdwl_pair(const std::vector &, int); + void file_bstretch(const std::vector &, int); + void file_sbend(const std::vector &, int); + void file_abend(const std::vector &, int); + void file_pauli(const std::vector &, int); + void file_dispersion(const std::vector &, int); + void file_ub(const std::vector &, int); + void file_outplane(const std::vector &, int); + void file_torsion(const std::vector &, int); + void file_pitorsion(const std::vector &, int); + void file_multipole(const std::vector &, int); + void file_charge_penetration(const std::vector &, int); + void file_dippolar(const std::vector &, int); + void file_charge_transfer(const std::vector &, int); + + // inline function for neighbor list unmasking + + inline int sbmask15(int j) const { return j >> SBBITS15 & 7; } +}; +} // namespace LAMMPS_NS +#endif +#endif diff --git a/src/AMOEBA/pair_hippo.cpp b/src/AMOEBA/pair_hippo.cpp new file mode 100644 index 0000000000..d798ce2d4b --- /dev/null +++ b/src/AMOEBA/pair_hippo.cpp @@ -0,0 +1,24 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_hippo.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +PairHippo::PairHippo(LAMMPS *lmp) : PairAmoeba(lmp) +{ + amoeba = false; + mystyle = "hippo"; +} diff --git a/src/AMOEBA/pair_hippo.h b/src/AMOEBA/pair_hippo.h new file mode 100644 index 0000000000..e8ad7a14ab --- /dev/null +++ b/src/AMOEBA/pair_hippo.h @@ -0,0 +1,33 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS +// clang-format off +PairStyle(hippo,PairHippo); +// clang-format on +#else + +#ifndef LMP_PAIR_HIPPO_H +#define LMP_PAIR_HIPPO_H + +#include "pair_amoeba.h" + +namespace LAMMPS_NS { + +class PairHippo : public PairAmoeba { + public: + PairHippo(class LAMMPS *); +}; +} // namespace LAMMPS_NS +#endif +#endif diff --git a/src/ATC/fix_atc.cpp b/src/ATC/fix_atc.cpp index a7c0cf5ade..356aa2596c 100644 --- a/src/ATC/fix_atc.cpp +++ b/src/ATC/fix_atc.cpp @@ -284,7 +284,7 @@ FixATC::FixATC(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), int me = ATC::LammpsInterface::instance()->comm_rank(); string groupName(arg[1]); - int igroup = group->find(groupName.c_str()); + int igroup = group->find(groupName); int atomCount = group->count(igroup); try { diff --git a/src/CLASS2/bond_class2.cpp b/src/CLASS2/bond_class2.cpp index 1a4c525ac6..8aec47c394 100644 --- a/src/CLASS2/bond_class2.cpp +++ b/src/CLASS2/bond_class2.cpp @@ -24,10 +24,10 @@ #include "neighbor.h" #include "comm.h" #include "force.h" +#include "pair.h" #include "memory.h" #include "error.h" - using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ diff --git a/src/COLVARS/colvarproxy_lammps.cpp b/src/COLVARS/colvarproxy_lammps.cpp index 0989460a75..eb03c14de7 100644 --- a/src/COLVARS/colvarproxy_lammps.cpp +++ b/src/COLVARS/colvarproxy_lammps.cpp @@ -117,7 +117,7 @@ void colvarproxy_lammps::init(const char *conf_file) if (_lmp->update->ntimestep != 0) { cvm::log("Setting initial step number from LAMMPS: "+ cvm::to_str(_lmp->update->ntimestep)+"\n"); - colvars->it = colvars->it_restart = + colvarmodule::it = colvarmodule::it_restart = static_cast(_lmp->update->ntimestep); } @@ -174,7 +174,7 @@ double colvarproxy_lammps::compute() } else { // Use the time step number from LAMMPS Update object if (_lmp->update->ntimestep - previous_step == 1) { - colvars->it++; + colvarmodule::it++; b_simulation_continuing = false; } else { // Cases covered by this condition: @@ -209,7 +209,7 @@ double colvarproxy_lammps::compute() if (cvm::debug()) { cvm::log(std::string(cvm::line_marker)+ - "colvarproxy_lammps, step no. "+cvm::to_str(colvars->it)+"\n"+ + "colvarproxy_lammps, step no. "+cvm::to_str(colvarmodule::it)+"\n"+ "Updating internal data.\n"); } @@ -269,7 +269,7 @@ cvm::rvector colvarproxy_lammps::position_distance(cvm::atom_pos const &pos1, double ytmp = pos2.y - pos1.y; double ztmp = pos2.z - pos1.z; _lmp->domain->minimum_image(xtmp,ytmp,ztmp); - return cvm::rvector(xtmp, ytmp, ztmp); + return {xtmp, ytmp, ztmp}; } diff --git a/src/COLVARS/fix_colvars.cpp b/src/COLVARS/fix_colvars.cpp index 02bf8d4347..a46e6318d0 100644 --- a/src/COLVARS/fix_colvars.cpp +++ b/src/COLVARS/fix_colvars.cpp @@ -135,8 +135,6 @@ static void rebuild_table_int(inthash_t *tptr) { /* free memory used by old table */ free(old_bucket); - - return; } /* @@ -166,8 +164,6 @@ void inthash_init(inthash_t *tptr, int buckets) { /* allocate memory for table */ tptr->bucket=(inthash_node_t **) calloc(tptr->size, sizeof(inthash_node_t *)); - - return; } /* @@ -847,7 +843,6 @@ void FixColvars::post_force_respa(int vflag, int ilevel, int /*iloop*/) { /* only process colvar forces on the outmost RESPA level. */ if (ilevel == nlevels_respa-1) post_force(vflag); - return; } /* ---------------------------------------------------------------------- */ @@ -939,7 +934,7 @@ void FixColvars::end_of_step() void FixColvars::write_restart(FILE *fp) { if (me == 0) { - std::string rest_text(""); + std::string rest_text; proxy->serialize_status(rest_text); // TODO call write_output_files() const char *cvm_state = rest_text.c_str(); diff --git a/src/COLVARS/ndx_group.cpp b/src/COLVARS/ndx_group.cpp index 9560c41c6a..34b3bd7dae 100644 --- a/src/COLVARS/ndx_group.cpp +++ b/src/COLVARS/ndx_group.cpp @@ -76,7 +76,7 @@ void Ndx2Group::command(int narg, char **arg) int len; bigint num; FILE *fp; - std::string name = "", next; + std::string name, next; if (narg < 1) error->all(FLERR,"Illegal ndx2group command"); if (atom->tag_enable == 0) diff --git a/src/DIELECTRIC/atom_vec_dielectric.cpp b/src/DIELECTRIC/atom_vec_dielectric.cpp index b15b233991..67bb9f7dc3 100644 --- a/src/DIELECTRIC/atom_vec_dielectric.cpp +++ b/src/DIELECTRIC/atom_vec_dielectric.cpp @@ -78,9 +78,9 @@ AtomVecDielectric::AtomVecDielectric(LAMMPS *_lmp) : AtomVec(_lmp) "mu", "area", "ed", "em", "epsilon", "curvature", "q_unscaled"}; fields_create = {"q", "molecule", "num_bond", "num_angle", "num_dihedral", "num_improper", "nspecial", "mu", "area", "ed", "em", "epsilon", "curvature", "q_unscaled"}; - fields_data_atom = { "id", "molecule", "type", "q", "x", "mu3", "area", "ed", "em", "epsilon", + fields_data_atom = {"id", "molecule", "type", "q", "x", "mu3", "area", "ed", "em", "epsilon", "curvature"}; - fields_data_vel = {"id v"}; + fields_data_vel = {"id", "v"}; // clang-format on setup_fields(); diff --git a/src/DIELECTRIC/pppm_dielectric.cpp b/src/DIELECTRIC/pppm_dielectric.cpp index 7f32a0a3f3..92bd89ebd9 100644 --- a/src/DIELECTRIC/pppm_dielectric.cpp +++ b/src/DIELECTRIC/pppm_dielectric.cpp @@ -58,6 +58,9 @@ PPPMDielectric::PPPMDielectric(LAMMPS *_lmp) : PPPM(_lmp) phi = nullptr; potflag = 0; + // no warnings about non-neutral systems from qsum_qsq() + warn_nonneutral = 2; + avec = dynamic_cast( atom->style_match("dielectric")); if (!avec) error->all(FLERR,"pppm/dielectric requires atom style dielectric"); } @@ -463,25 +466,3 @@ void PPPMDielectric::slabcorr() efield[i][2] += ffact * eps[i]*(dipole_all - qsum*x[i][2]); } } - -/* ---------------------------------------------------------------------- - compute qsum,qsqsum,q2 and ignore error/warning if not charge neutral - called whenever charges are changed -------------------------------------------------------------------------- */ - -void PPPMDielectric::qsum_qsq() -{ - const double * const q = atom->q; - const int nlocal = atom->nlocal; - double qsum_local(0.0), qsqsum_local(0.0); - - for (int i = 0; i < nlocal; i++) { - qsum_local += q[i]; - qsqsum_local += q[i]*q[i]; - } - - MPI_Allreduce(&qsum_local,&qsum,1,MPI_DOUBLE,MPI_SUM,world); - MPI_Allreduce(&qsqsum_local,&qsqsum,1,MPI_DOUBLE,MPI_SUM,world); - - q2 = qsqsum * force->qqrd2e; -} diff --git a/src/DIELECTRIC/pppm_dielectric.h b/src/DIELECTRIC/pppm_dielectric.h index 92a93daa90..96ebdb1524 100644 --- a/src/DIELECTRIC/pppm_dielectric.h +++ b/src/DIELECTRIC/pppm_dielectric.h @@ -34,8 +34,6 @@ class PPPMDielectric : public PPPM { double *phi; int potflag; // 1/0 if per-atom electrostatic potential phi is needed - void qsum_qsq(); - protected: void slabcorr() override; diff --git a/src/DIELECTRIC/pppm_disp_dielectric.cpp b/src/DIELECTRIC/pppm_disp_dielectric.cpp index e525ba7384..d4d84e0f62 100644 --- a/src/DIELECTRIC/pppm_disp_dielectric.cpp +++ b/src/DIELECTRIC/pppm_disp_dielectric.cpp @@ -65,6 +65,9 @@ PPPMDispDielectric::PPPMDispDielectric(LAMMPS *_lmp) : PPPMDisp(_lmp) mu_flag = 0; + // no warnings about non-neutral systems from qsum_qsq() + warn_nonneutral = 2; + efield = nullptr; phi = nullptr; potflag = 0; @@ -837,25 +840,3 @@ double PPPMDispDielectric::memory_usage() bytes += nmax * sizeof(double); return bytes; } - -/* ---------------------------------------------------------------------- - compute qsum,qsqsum,q2 and give error/warning if not charge neutral - called initially, when particle count changes, when charges are changed -------------------------------------------------------------------------- */ - -void PPPMDispDielectric::qsum_qsq() -{ - const double * const q = atom->q; - const int nlocal = atom->nlocal; - double qsum_local(0.0), qsqsum_local(0.0); - - for (int i = 0; i < nlocal; i++) { - qsum_local += q[i]; - qsqsum_local += q[i]*q[i]; - } - - MPI_Allreduce(&qsum_local,&qsum,1,MPI_DOUBLE,MPI_SUM,world); - MPI_Allreduce(&qsqsum_local,&qsqsum,1,MPI_DOUBLE,MPI_SUM,world); - - q2 = qsqsum * force->qqrd2e; -} diff --git a/src/DIELECTRIC/pppm_disp_dielectric.h b/src/DIELECTRIC/pppm_disp_dielectric.h index b89be02f92..ce20e292aa 100644 --- a/src/DIELECTRIC/pppm_disp_dielectric.h +++ b/src/DIELECTRIC/pppm_disp_dielectric.h @@ -30,8 +30,7 @@ class PPPMDispDielectric : public PPPMDisp { ~PPPMDispDielectric() override; double memory_usage() override; void compute(int, int) override; - void qsum_qsq(); - void slabcorr(int); + void slabcorr(int) override; double **efield; double *phi; diff --git a/src/DPD-MESO/fix_mvv_dpd.cpp b/src/DPD-MESO/fix_mvv_dpd.cpp index 73290535b1..d96031c9f9 100644 --- a/src/DPD-MESO/fix_mvv_dpd.cpp +++ b/src/DPD-MESO/fix_mvv_dpd.cpp @@ -17,8 +17,8 @@ modified velocity-Verlet (MVV) algorithm. Setting verlet = 0.5 recovers the standard velocity-Verlet algorithm. - Contributing author: Zhen Li (Brown University) - Email: zhen_li@brown.edu + Contributing author: Zhen Li (Clemson University) + Email: zli7@clemson.edu ------------------------------------------------------------------------- */ #include "fix_mvv_dpd.h" diff --git a/src/DPD-MESO/fix_mvv_edpd.cpp b/src/DPD-MESO/fix_mvv_edpd.cpp index 856647d792..9b31bc4c5d 100644 --- a/src/DPD-MESO/fix_mvv_edpd.cpp +++ b/src/DPD-MESO/fix_mvv_edpd.cpp @@ -17,8 +17,8 @@ v and edpd_T) using the modified velocity-Verlet (MVV) algorithm. Setting verlet = 0.5 recovers the standard velocity-Verlet algorithm. - Contributing author: Zhen Li (Brown University) - Email: zhen_li@brown.edu + Contributing author: Zhen Li (Clemson University) + Email: zli7@clemson.edu Please cite the related publication: Z. Li, Y.-H. Tang, H. Lei, B. Caswell and G.E. Karniadakis. "Energy- diff --git a/src/DPD-MESO/fix_mvv_tdpd.cpp b/src/DPD-MESO/fix_mvv_tdpd.cpp index 00c6e29968..1a0dc5d520 100644 --- a/src/DPD-MESO/fix_mvv_tdpd.cpp +++ b/src/DPD-MESO/fix_mvv_tdpd.cpp @@ -17,8 +17,8 @@ v and cc) using the modified velocity-Verlet (MVV) algorithm. Setting verlet = 0.5 recovers the standard velocity-Verlet algorithm. - Contributing author: Zhen Li (Brown University) - Email: zhen_li@brown.edu + Contributing author: Zhen Li (Clemson University) + Email: zli7@clemson.edu Please cite the related publication: Z. Li, A. Yazdani, A. Tartakovsky and G.E. Karniadakis. "Transport diff --git a/src/DPD-MESO/pair_edpd.cpp b/src/DPD-MESO/pair_edpd.cpp index ddbbd05085..b05f588b7c 100644 --- a/src/DPD-MESO/pair_edpd.cpp +++ b/src/DPD-MESO/pair_edpd.cpp @@ -13,8 +13,8 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing author: Zhen Li (Brown University) - Email: zhen_li@brown.edu + Contributing author: Zhen Li (Clemson University) + Email: zli7@clemson.edu ------------------------------------------------------------------------- */ #include "pair_edpd.h" diff --git a/src/DPD-MESO/pair_mdpd.cpp b/src/DPD-MESO/pair_mdpd.cpp index 053d322f00..ec0a57be15 100644 --- a/src/DPD-MESO/pair_mdpd.cpp +++ b/src/DPD-MESO/pair_mdpd.cpp @@ -13,8 +13,8 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing author: Zhen Li (Brown University) - Email: zhen_li@brown.edu + Contributing author: Zhen Li (Clemson University) + Email: zli7@clemson.edu ------------------------------------------------------------------------- */ #include "pair_mdpd.h" diff --git a/src/DPD-MESO/pair_mdpd_rhosum.cpp b/src/DPD-MESO/pair_mdpd_rhosum.cpp index b44ca94c4e..773248a212 100644 --- a/src/DPD-MESO/pair_mdpd_rhosum.cpp +++ b/src/DPD-MESO/pair_mdpd_rhosum.cpp @@ -17,7 +17,7 @@ before the force calculation. The code uses 3D Lucy kernel, it can be modified for other kernels. - Contributing author: Zhen Li (Brown University) + Contributing author: Zhen Li (Clemson University) ------------------------------------------------------------------------- */ #include "pair_mdpd_rhosum.h" diff --git a/src/DPD-MESO/pair_tdpd.cpp b/src/DPD-MESO/pair_tdpd.cpp index 76f4b59108..39d9a151d9 100644 --- a/src/DPD-MESO/pair_tdpd.cpp +++ b/src/DPD-MESO/pair_tdpd.cpp @@ -13,8 +13,8 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing author: Zhen Li (Brown University) - Email: zhen_li@brown.edu + Contributing author: Zhen Li (Clemson University) + Email: zli7@clemson.edu ------------------------------------------------------------------------- */ #include "pair_tdpd.h" diff --git a/src/DPD-SMOOTH/pair_sdpd_taitwater_isothermal.cpp b/src/DPD-SMOOTH/pair_sdpd_taitwater_isothermal.cpp index f5ccb15eac..7a36cdfc5c 100644 --- a/src/DPD-SMOOTH/pair_sdpd_taitwater_isothermal.cpp +++ b/src/DPD-SMOOTH/pair_sdpd_taitwater_isothermal.cpp @@ -44,7 +44,7 @@ static const double sqrt_2_inv = std::sqrt(0.5); /* ---------------------------------------------------------------------- */ PairSDPDTaitwaterIsothermal::PairSDPDTaitwaterIsothermal (LAMMPS *lmp) -: Pair (lmp) { +: Pair (lmp), random(nullptr) { restartinfo = 0; single_enable =0; } @@ -61,6 +61,7 @@ PairSDPDTaitwaterIsothermal::~PairSDPDTaitwaterIsothermal () { memory->destroy (soundspeed); memory->destroy (B); } + delete random; } /* ---------------------------------------------------------------------- */ diff --git a/src/Depend.sh b/src/Depend.sh index 8046fd2636..0d49512c3e 100755 --- a/src/Depend.sh +++ b/src/Depend.sh @@ -121,12 +121,17 @@ fi if (test $1 = "MANYBODY") then depend ATC depend GPU + depend INTEL depend KOKKOS depend OPT depend QEQ depend OPENMP fi +if (test $1 = "MEAM") then + depend KOKKOS +fi + if (test $1 = "MOLECULE") then depend EXTRA-MOLECULE depend GPU diff --git a/src/ELECTRODE/ewald_electrode.cpp b/src/ELECTRODE/ewald_electrode.cpp index d84ef317ff..4e47d955ef 100644 --- a/src/ELECTRODE/ewald_electrode.cpp +++ b/src/ELECTRODE/ewald_electrode.cpp @@ -40,7 +40,7 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -EwaldElectrode::EwaldElectrode(LAMMPS *lmp) : Ewald(lmp), ElectrodeKSpace() +EwaldElectrode::EwaldElectrode(LAMMPS *lmp) : Ewald(lmp) { eikr_step = -1; } diff --git a/src/ELECTRODE/pppm_electrode.cpp b/src/ELECTRODE/pppm_electrode.cpp index 9733c47b14..91d6acc2d5 100644 --- a/src/ELECTRODE/pppm_electrode.cpp +++ b/src/ELECTRODE/pppm_electrode.cpp @@ -65,8 +65,7 @@ enum { FORWARD_IK, FORWARD_AD, FORWARD_IK_PERATOM, FORWARD_AD_PERATOM }; /* ---------------------------------------------------------------------- */ PPPMElectrode::PPPMElectrode(LAMMPS *lmp) : - PPPM(lmp), ElectrodeKSpace(), electrolyte_density_brick(nullptr), - electrolyte_density_fft(nullptr) + PPPM(lmp), electrolyte_density_brick(nullptr), electrolyte_density_fft(nullptr) { group_group_enable = 0; electrolyte_density_brick = nullptr; diff --git a/src/EXTRA-COMPUTE/compute_ave_sphere_atom.cpp b/src/EXTRA-COMPUTE/compute_ave_sphere_atom.cpp index 07803aca20..010051029a 100644 --- a/src/EXTRA-COMPUTE/compute_ave_sphere_atom.cpp +++ b/src/EXTRA-COMPUTE/compute_ave_sphere_atom.cpp @@ -11,10 +11,15 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + Contributing author: Stan Moore (SNL) +------------------------------------------------------------------------- */ + #include "compute_ave_sphere_atom.h" #include "atom.h" #include "comm.h" +#include "domain.h" #include "error.h" #include "force.h" #include "math_const.h" @@ -98,7 +103,10 @@ void ComputeAveSphereAtom::init() } cutsq = cutoff * cutoff; - sphere_vol = 4.0 / 3.0 * MY_PI * cutsq * cutoff; + if (domain->dimension == 3) + volume = 4.0 / 3.0 * MY_PI * cutsq * cutoff; + else + volume = MY_PI * cutsq; // need an occasional full neighbor list @@ -121,7 +129,7 @@ void ComputeAveSphereAtom::compute_peratom() double xtmp, ytmp, ztmp, delx, dely, delz, rsq; int *ilist, *jlist, *numneigh, **firstneigh; int count; - double vsum[3], vavg[3], vnet[3]; + double p[3], vcom[3], vnet[3]; invoked_peratom = update->ntimestep; @@ -152,12 +160,26 @@ void ComputeAveSphereAtom::compute_peratom() double **x = atom->x; double **v = atom->v; + double *mass = atom->mass; + double *rmass = atom->rmass; + int *type = atom->type; int *mask = atom->mask; + double massone_i, massone_j, totalmass; + + double adof = domain->dimension; + double mvv2e = force->mvv2e; + double mv2d = force->mv2d; + double boltz = force->boltz; for (ii = 0; ii < inum; ii++) { i = ilist[ii]; if (mask[i] & groupbit) { + if (rmass) + massone_i = rmass[i]; + else + massone_i = mass[type[i]]; + xtmp = x[i][0]; ytmp = x[i][1]; ztmp = x[i][2]; @@ -167,13 +189,18 @@ void ComputeAveSphereAtom::compute_peratom() // i atom contribution count = 1; - vsum[0] = v[i][0]; - vsum[1] = v[i][1]; - vsum[2] = v[i][2]; + totalmass = massone_i; + p[0] = v[i][0] * massone_i; + p[1] = v[i][1] * massone_i; + p[2] = v[i][2] * massone_i; for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; + if (rmass) + massone_j = rmass[j]; + else + massone_j = mass[type[j]]; delx = xtmp - x[j][0]; dely = ytmp - x[j][1]; @@ -181,42 +208,45 @@ void ComputeAveSphereAtom::compute_peratom() rsq = delx * delx + dely * dely + delz * delz; if (rsq < cutsq) { count++; - vsum[0] += v[j][0]; - vsum[1] += v[j][1]; - vsum[2] += v[j][2]; + totalmass += massone_j; + p[0] += v[j][0] * massone_j; + p[1] += v[j][1] * massone_j; + p[2] += v[j][2] * massone_j; } } - vavg[0] = vsum[0] / count; - vavg[1] = vsum[1] / count; - vavg[2] = vsum[2] / count; + vcom[0] = p[0] / totalmass; + vcom[1] = p[1] / totalmass; + vcom[2] = p[2] / totalmass; // i atom contribution - count = 1; - vnet[0] = v[i][0] - vavg[0]; - vnet[1] = v[i][1] - vavg[1]; - vnet[2] = v[i][2] - vavg[2]; - double ke_sum = vnet[0] * vnet[0] + vnet[1] * vnet[1] + vnet[2] * vnet[2]; + vnet[0] = v[i][0] - vcom[0]; + vnet[1] = v[i][1] - vcom[1]; + vnet[2] = v[i][2] - vcom[2]; + double ke_sum = massone_i * (vnet[0] * vnet[0] + vnet[1] * vnet[1] + vnet[2] * vnet[2]); for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; + if (rmass) + massone_j = rmass[j]; + else + massone_j = mass[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 < cutsq) { - count++; - vnet[0] = v[j][0] - vavg[0]; - vnet[1] = v[j][1] - vavg[1]; - vnet[2] = v[j][2] - vavg[2]; - ke_sum += vnet[0] * vnet[0] + vnet[1] * vnet[1] + vnet[2] * vnet[2]; + vnet[0] = v[j][0] - vcom[0]; + vnet[1] = v[j][1] - vcom[1]; + vnet[2] = v[j][2] - vcom[2]; + ke_sum += massone_j * (vnet[0] * vnet[0] + vnet[1] * vnet[1] + vnet[2] * vnet[2]); } } - double density = count / sphere_vol; - double temp = ke_sum / 3.0 / count; + double density = mv2d * totalmass / volume; + double temp = mvv2e * ke_sum / (adof * count * boltz); result[i][0] = density; result[i][1] = temp; } diff --git a/src/EXTRA-COMPUTE/compute_ave_sphere_atom.h b/src/EXTRA-COMPUTE/compute_ave_sphere_atom.h index ffed09bae5..76350997f9 100644 --- a/src/EXTRA-COMPUTE/compute_ave_sphere_atom.h +++ b/src/EXTRA-COMPUTE/compute_ave_sphere_atom.h @@ -37,7 +37,7 @@ class ComputeAveSphereAtom : public Compute { protected: int nmax; - double cutoff, cutsq, sphere_vol; + double cutoff, cutsq, volume; class NeighList *list; double **result; diff --git a/src/EXTRA-COMPUTE/compute_stress_cartesian.cpp b/src/EXTRA-COMPUTE/compute_stress_cartesian.cpp index 5a92f6c347..2dde2397db 100644 --- a/src/EXTRA-COMPUTE/compute_stress_cartesian.cpp +++ b/src/EXTRA-COMPUTE/compute_stress_cartesian.cpp @@ -80,21 +80,23 @@ ComputeStressCartesian::ComputeStressCartesian(LAMMPS *lmp, int narg, char **arg dir2 = 0; bin_width1 = utils::numeric(FLERR, arg[4], false, lmp); - bin_width2 = 0.0; + bin_width2 = domain->boxhi[dir2] - domain->boxlo[dir2]; nbins1 = (int) ((domain->boxhi[dir1] - domain->boxlo[dir1]) / bin_width1); nbins2 = 1; + // adjust bin width if not a perfect match - invV = (domain->boxhi[dir1] - domain->boxlo[dir1]) / nbins1; - if ((fabs(invV - bin_width1) > SMALL) && (comm->me == 0)) - utils::logmesg(lmp, "Adjusting first bin width for compute {} from {:.6f} to {:.6f}\n", style, - bin_width1, invV); - bin_width1 = invV; + double tmp_binwidth = (domain->boxhi[dir1] - domain->boxlo[dir1]) / nbins1; + if ((fabs(tmp_binwidth - bin_width1) > SMALL) && (comm->me == 0)) + utils::logmesg(lmp, "Adjusting second bin width for compute {} from {:.6f} to {:.6f}\n", style, + bin_width1, tmp_binwidth); + bin_width1 = tmp_binwidth; if (bin_width1 <= 0.0) error->all(FLERR, "Illegal compute stress/cartesian command. Bin width must be > 0"); else if (bin_width1 > domain->boxhi[dir1] - domain->boxlo[dir1]) error->all(FLERR, "Illegal compute stress/cartesian command. Bin width larger than box."); + invV = bin_width1; if (dims == 2) { if (strcmp(arg[5], "x") == 0) dir2 = 0; @@ -107,7 +109,9 @@ ComputeStressCartesian::ComputeStressCartesian(LAMMPS *lmp, int narg, char **arg bin_width2 = utils::numeric(FLERR, arg[6], false, lmp); nbins2 = (int) ((domain->boxhi[dir2] - domain->boxlo[dir2]) / bin_width2); - double tmp_binwidth = (domain->boxhi[dir2] - domain->boxlo[dir2]) / nbins2; + + // adjust bin width if not a perfect match + tmp_binwidth = (domain->boxhi[dir2] - domain->boxlo[dir2]) / nbins2; if ((fabs(tmp_binwidth - bin_width2) > SMALL) && (comm->me == 0)) utils::logmesg(lmp, "Adjusting second bin width for compute {} from {:.6f} to {:.6f}\n", style, bin_width2, tmp_binwidth); @@ -262,7 +266,7 @@ void ComputeStressCartesian::compute_array() Pair *pair = force->pair; double **cutsq = force->pair->cutsq; - double xi1, xi2, xj1, xj2; + double xi1, xi2; for (ii = 0; ii < inum; ii++) { i = ilist[ii]; @@ -301,9 +305,6 @@ void ComputeStressCartesian::compute_array() } } } - xj1 = x[j][dir1]; - xj2 = x[j][dir2]; - delx = x[j][0] - xtmp; dely = x[j][1] - ytmp; delz = x[j][2] - ztmp; @@ -314,8 +315,7 @@ void ComputeStressCartesian::compute_array() // Check if inside cut-off if (rsq >= cutsq[itype][jtype]) continue; pair->single(i, j, itype, jtype, rsq, factor_coul, factor_lj, fpair); - if (dims == 1) compute_pressure_1d(fpair, xi1, xj1, delx, dely, delz); - if (dims == 2) compute_pressure_2d(fpair, xi1, xi2, xj1, xj2, delx, dely, delz); + compute_pressure(fpair, xi1, xi2, delx, dely, delz); } } @@ -353,107 +353,8 @@ void ComputeStressCartesian::compute_array() } } -void ComputeStressCartesian::compute_pressure_1d(double fpair, double xi, double xj, double delx, - double dely, double delz) -{ - int bin_s, bin_e, bin_step, bin, bin_limit; - double xa, xb; - - if (xi < domain->boxlo[dir1]) - xi += (domain->boxhi[dir1] - domain->boxlo[dir1]); - else if (xi > domain->boxhi[dir1]) - xi -= (domain->boxhi[dir1] - domain->boxlo[dir1]); - if (xj < domain->boxlo[dir1]) - xj += (domain->boxhi[dir1] - domain->boxlo[dir1]); - else if (xj > domain->boxhi[dir1]) - xj -= (domain->boxhi[dir1] - domain->boxlo[dir1]); - - // Integrating contour from bin_s to bin_e - bin_s = ((int) lround((xi - domain->boxlo[dir1]) / bin_width1)) % nbins1; - bin_e = ((int) lround((xj - domain->boxlo[dir1]) / bin_width1)) % nbins1; - - // If not periodic in dir1 - if (domain->periodicity[dir1] == 0) { - bin_s = ((int) lround((xi - domain->boxlo[dir1]) / bin_width1)); - bin_e = ((int) lround((xj - domain->boxlo[dir1]) / bin_width1)); - - if (bin_e == nbins1) bin_e--; - if (bin_s == nbins1) bin_s--; - } - - bin_step = 1; - if (domain->periodicity[dir1] == 1) { - if (bin_e - bin_s > 0.5 * nbins1) - bin_step = -1; - else if (bin_s - bin_e > 0.5 * nbins1) - bin_step = 1; - else if (bin_s > bin_e) - bin_step = -1; - } else { - if (bin_s > bin_e) bin_step = -1; - } - if (domain->periodicity[dir1] == 1) - bin_limit = (bin_e + bin_step) % nbins1 < 0 ? (bin_e + bin_step) % nbins1 + nbins1 - : (bin_e + bin_step) % nbins1; - else - bin_limit = bin_e + bin_step; - - bin = bin_s; - // Integrate from bin_s to bin_e with step bin_step. - while (bin < bin_limit) { - - // Calculating exit and entry point (xa, xb). Checking if inside current bin. - if (bin == bin_s) { - if (domain->periodicity[dir1] == 1) - xa = fmod(xi, domain->boxhi[dir1]) + domain->boxlo[dir1]; - else - xa = xi; - } else - xa = (bin_step == 1) ? bin * bin_width1 : (bin + 1) * bin_width1; - if (bin == bin_e) { - if (domain->periodicity[dir1] == 1) - xb = fmod(xj, domain->boxhi[dir1]) + domain->boxlo[dir1]; - else - xb = xj; - } else - xb = (bin_step == 1) ? (bin + 1) * bin_width1 : bin * bin_width1; - - if (bin < 0 || bin >= nbins1) error->all(FLERR, "ERROR: Bin outside simulation."); - - if (bin_s != bin_e) { - if (dir1 == 0) { - tpcxx[bin] += (fpair * delx * delx) * (xb - xa) / delx; - tpcyy[bin] += (fpair * dely * dely) * (xb - xa) / delx; - tpczz[bin] += (fpair * delz * delz) * (xb - xa) / delx; - } else if (dir1 == 1) { - tpcxx[bin] += (fpair * delx * delx) * (xb - xa) / dely; - tpcyy[bin] += (fpair * dely * dely) * (xb - xa) / dely; - tpczz[bin] += (fpair * delz * delz) * (xb - xa) / dely; - } else if (dir1 == 2) { - tpcxx[bin] += (fpair * delx * delx) * (xb - xa) / delz; - tpcyy[bin] += (fpair * dely * dely) * (xb - xa) / delz; - tpczz[bin] += (fpair * delz * delz) * (xb - xa) / delz; - } - } - // Particle i and j in same bin. Avoiding zero divided by zero. - else { - tpcxx[bin] += fpair * delx * delx; - tpcyy[bin] += fpair * dely * dely; - tpczz[bin] += fpair * delz * delz; - } - - // Stepping bin to next bin - if (domain->periodicity[dir1] == 1) - bin = (bin + bin_step) % nbins1 < 0 ? (bin + bin_step) % nbins1 + nbins1 - : (bin + bin_step) % nbins1; - else - bin = bin + bin_step; - } -} - -void ComputeStressCartesian::compute_pressure_2d(double fpair, double xi, double yi, double /*xj*/, - double /*yj*/, double delx, double dely, - double delz) +void ComputeStressCartesian::compute_pressure(double fpair, double xi, double yi, double delx, + double dely, double delz) { int bin1, bin2, next_bin1, next_bin2; double la = 0.0, lb = 0.0, l_sum = 0.0; diff --git a/src/EXTRA-COMPUTE/compute_stress_cartesian.h b/src/EXTRA-COMPUTE/compute_stress_cartesian.h index 30ddc8e45e..d4505a1e8e 100644 --- a/src/EXTRA-COMPUTE/compute_stress_cartesian.h +++ b/src/EXTRA-COMPUTE/compute_stress_cartesian.h @@ -41,8 +41,7 @@ class ComputeStressCartesian : public Compute { double *dens, *pkxx, *pkyy, *pkzz, *pcxx, *pcyy, *pczz; double *tdens, *tpkxx, *tpkyy, *tpkzz, *tpcxx, *tpcyy, *tpczz; class NeighList *list; - void compute_pressure_1d(double, double, double, double, double, double); - void compute_pressure_2d(double, double, double, double, double, double, double, double); + void compute_pressure(double, double, double, double, double, double); }; } // namespace LAMMPS_NS diff --git a/src/EXTRA-DUMP/dump_xtc.cpp b/src/EXTRA-DUMP/dump_xtc.cpp index 3c5be6b9be..8e0bb4a0d7 100644 --- a/src/EXTRA-DUMP/dump_xtc.cpp +++ b/src/EXTRA-DUMP/dump_xtc.cpp @@ -433,10 +433,10 @@ int xdropen(XDR *xdrs, const char *filename, const char *type) return 0; } if (*type == 'w' || *type == 'W') { - type = (char *) "w+"; + type = (char *) "wb+"; lmode = XDR_ENCODE; } else { - type = (char *) "r"; + type = (char *) "rb"; lmode = XDR_DECODE; } xdrfiles[xdrid] = fopen(filename, type); diff --git a/src/EXTRA-DUMP/dump_yaml.cpp b/src/EXTRA-DUMP/dump_yaml.cpp index d4f3208ffb..be1c9768bf 100644 --- a/src/EXTRA-DUMP/dump_yaml.cpp +++ b/src/EXTRA-DUMP/dump_yaml.cpp @@ -124,6 +124,12 @@ void DumpYAML::write_data(int n, double *mybuf) } fputs("]\n", fp); } +} + +/* ---------------------------------------------------------------------- */ + +void DumpYAML::write_footer() +{ fputs("...\n", fp); } diff --git a/src/EXTRA-DUMP/dump_yaml.h b/src/EXTRA-DUMP/dump_yaml.h index bf621dcb51..60ab894de4 100644 --- a/src/EXTRA-DUMP/dump_yaml.h +++ b/src/EXTRA-DUMP/dump_yaml.h @@ -35,6 +35,7 @@ class DumpYAML : public DumpCustom { void write() override; void write_header(bigint) override; void write_data(int, double *) override; + void write_footer() override; int modify_param(int, char **) override; }; diff --git a/src/EXTRA-MOLECULE/dihedral_fourier.cpp b/src/EXTRA-MOLECULE/dihedral_fourier.cpp index 4303e67755..666b5e91a1 100644 --- a/src/EXTRA-MOLECULE/dihedral_fourier.cpp +++ b/src/EXTRA-MOLECULE/dihedral_fourier.cpp @@ -26,6 +26,7 @@ #include "math_const.h" #include "memory.h" #include "neighbor.h" +#include "pair.h" #include @@ -61,7 +62,6 @@ DihedralFourier::~DihedralFourier() delete [] shift; delete [] cos_shift; delete [] sin_shift; - } } @@ -332,7 +332,6 @@ void DihedralFourier::coeff(int narg, char **arg) void DihedralFourier::write_restart(FILE *fp) { - fwrite(&nterms[1],sizeof(int),atom->ndihedraltypes,fp); for (int i = 1; i <= atom->ndihedraltypes; i++) { fwrite(k[i],sizeof(double),nterms[i],fp); diff --git a/src/EXTRA-PAIR/pair_coul_slater_long.cpp b/src/EXTRA-PAIR/pair_coul_slater_long.cpp index 65619f0f65..6662ae3721 100644 --- a/src/EXTRA-PAIR/pair_coul_slater_long.cpp +++ b/src/EXTRA-PAIR/pair_coul_slater_long.cpp @@ -116,15 +116,15 @@ void PairCoulSlaterLong::compute(int eflag, int vflag) if (rsq < cut_coulsq) { r2inv = 1.0/rsq; - r = sqrt(rsq); - grij = g_ewald * r; - expm2 = exp(-grij*grij); - t = 1.0 / (1.0 + EWALD_P*grij); - erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; - slater_term = exp(-2*r/lamda)*(1 + (2*r/lamda*(1+r/lamda))); - prefactor = qqrd2e * scale[itype][jtype] * qtmp*q[j]/r; - forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - slater_term); - if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor; + r = sqrt(rsq); + grij = g_ewald * r; + expm2 = exp(-grij*grij); + t = 1.0 / (1.0 + EWALD_P*grij); + erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + slater_term = exp(-2*r/lamda)*(1 + (2*r/lamda*(1+r/lamda))); + prefactor = qqrd2e * scale[itype][jtype] * qtmp*q[j]/r; + forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - slater_term); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor*(1-slater_term); fpair = forcecoul * r2inv; @@ -138,8 +138,8 @@ void PairCoulSlaterLong::compute(int eflag, int vflag) } if (eflag) { - ecoul = prefactor*(erfc - (1 + r/lamda)*exp(-2*r/lamda)); - if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor; + ecoul = prefactor*(erfc - (1 + r/lamda)*exp(-2*r/lamda)); + if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor*(1.0-(1 + r/lamda)*exp(-2*r/lamda)); } if (evflag) ev_tally(i,j,nlocal,newton_pair, diff --git a/src/INTEL/npair_halffull_newtoff_trim_intel.h b/src/INTEL/npair_halffull_newtoff_trim_intel.h new file mode 100644 index 0000000000..923a0c8c95 --- /dev/null +++ b/src/INTEL/npair_halffull_newtoff_trim_intel.h @@ -0,0 +1,44 @@ +// clang-format off +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Stan Moore (SNL) +------------------------------------------------------------------------- */ + +// Only used for hybrid to generate list for non-intel style. Use +// standard routines. + +#ifdef NPAIR_CLASS +// clang-format off +NPairStyle(halffull/newtoff/trim/intel, + NPairHalffullNewtoffTrim, + NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_HALF | + NP_ORTHO | NP_TRI | NP_TRIM | NP_INTEL); + +NPairStyle(halffull/newtoff/skip/trim/intel, + NPairHalffullNewtoffTrim, + NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_HALF | + NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM | NP_INTEL); + +NPairStyle(halffull/newtoff/ghost/trim/intel, + NPairHalffullNewtoffTrim, + NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_HALF | + NP_ORTHO | NP_TRI | NP_GHOST | NP_TRIM | NP_INTEL); + +NPairStyle(halffull/newtoff/skip/ghost/trim/intel, + NPairHalffullNewtoffTrim, + NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_HALF | + NP_ORTHO | NP_TRI | NP_SKIP | NP_GHOST | NP_TRIM | NP_INTEL); +// clang-format on +#endif diff --git a/src/INTEL/npair_halffull_newton_trim_intel.cpp b/src/INTEL/npair_halffull_newton_trim_intel.cpp new file mode 100644 index 0000000000..e0c01086da --- /dev/null +++ b/src/INTEL/npair_halffull_newton_trim_intel.cpp @@ -0,0 +1,258 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Stan Moore (SNL) +------------------------------------------------------------------------- */ + +#include "npair_halffull_newton_trim_intel.h" + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "modify.h" +#include "my_page.h" +#include "neigh_list.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +NPairHalffullNewtonTrimIntel::NPairHalffullNewtonTrimIntel(LAMMPS *lmp) : NPair(lmp) { + _fix = static_cast(modify->get_fix_by_id("package_intel")); + if (!_fix) error->all(FLERR, "The 'package intel' command is required for /intel styles"); +} + +/* ---------------------------------------------------------------------- + build half list from full list and trim to shorter cutoff + pair stored once if i,j are both owned and i < j + if j is ghost, only store if j coords are "above and to the right" of i + works if full list is a skip list +------------------------------------------------------------------------- */ + +template +void NPairHalffullNewtonTrimIntel::build_t(NeighList *list, + IntelBuffers *buffers) +{ + const int inum_full = list->listfull->inum; + const int nlocal = atom->nlocal; + const int e_nall = nlocal + atom->nghost; + const ATOM_T * _noalias const x = buffers->get_x(); + int * _noalias const ilist = list->ilist; + int * _noalias const numneigh = list->numneigh; + int ** _noalias const firstneigh = list->firstneigh; + const int * _noalias const ilist_full = list->listfull->ilist; + const int * _noalias const numneigh_full = list->listfull->numneigh; + const int ** _noalias const firstneigh_full = (const int ** const)list->listfull->firstneigh; // NOLINT + + const flt_t cutsq_custom = cutoff_custom * cutoff_custom; + + #if defined(_OPENMP) + #pragma omp parallel + #endif + { + int tid, ifrom, ito; + IP_PRE_omp_range_id(ifrom, ito, tid, inum_full, comm->nthreads); + + // each thread has its own page allocator + MyPage &ipage = list->ipage[tid]; + ipage.reset(); + + // loop over parent full list + for (int ii = ifrom; ii < ito; ii++) { + int n = 0; + int *neighptr = ipage.vget(); + + const int i = ilist_full[ii]; + const flt_t xtmp = x[i].x; + const flt_t ytmp = x[i].y; + const flt_t ztmp = x[i].z; + + // loop over full neighbor list + + const int * _noalias const jlist = firstneigh_full[i]; + const int jnum = numneigh_full[i]; + + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma ivdep + #endif + for (int jj = 0; jj < jnum; jj++) { + const int joriginal = jlist[jj]; + const int j = joriginal & NEIGHMASK; + int addme = 1; + if (j < nlocal) { + if (i > j) addme = 0; + } else { + if (x[j].z < ztmp) addme = 0; + if (x[j].z == ztmp) { + if (x[j].y < ytmp) addme = 0; + if (x[j].y == ytmp && x[j].x < xtmp) addme = 0; + } + } + + // trim to shorter cutoff + + const flt_t delx = xtmp - x[j].x; + const flt_t dely = ytmp - x[j].y; + const flt_t delz = ztmp - x[j].z; + const flt_t rsq = delx * delx + dely * dely + delz * delz; + + if (rsq > cutsq_custom) addme = 0; + + if (addme) + neighptr[n++] = joriginal; + } + + ilist[ii] = i; + firstneigh[i] = neighptr; + numneigh[i] = n; + + int pad_end = n; + IP_PRE_neighbor_pad(pad_end, 0); + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma loop_count min=1, max=INTEL_COMPILE_WIDTH-1, \ + avg=INTEL_COMPILE_WIDTH/2 + #endif + for ( ; n < pad_end; n++) + neighptr[n] = e_nall; + + ipage.vgot(n); + if (ipage.status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } + } + list->inum = inum_full; +} + +/* ---------------------------------------------------------------------- + build half list from full 3-body list and trim to shorter cutoff + half list is already stored as first part of 3-body list +------------------------------------------------------------------------- */ + +template +void NPairHalffullNewtonTrimIntel::build_t3(NeighList *list, int *numhalf, + IntelBuffers *buffers) +{ + const int inum_full = list->listfull->inum; + const int e_nall = atom->nlocal + atom->nghost; + const ATOM_T * _noalias const x = buffers->get_x(); + int * _noalias const ilist = list->ilist; + int * _noalias const numneigh = list->numneigh; + int ** _noalias const firstneigh = list->firstneigh; + const int * _noalias const ilist_full = list->listfull->ilist; + const int * _noalias const numneigh_full = numhalf; + const int ** _noalias const firstneigh_full = (const int ** const)list->listfull->firstneigh; // NOLINT + + const flt_t cutsq_custom = cutoff_custom * cutoff_custom; + + int packthreads = 1; + if (comm->nthreads > INTEL_HTHREADS) packthreads = comm->nthreads; + + #if defined(_OPENMP) + #pragma omp parallel if (packthreads > 1) + #endif + { + int tid, ifrom, ito; + IP_PRE_omp_range_id(ifrom, ito, tid, inum_full, packthreads); + + // each thread has its own page allocator + MyPage &ipage = list->ipage[tid]; + ipage.reset(); + + // loop over parent full list + for (int ii = ifrom; ii < ito; ii++) { + int n = 0; + int *neighptr = ipage.vget(); + + const int i = ilist_full[ii]; + const flt_t xtmp = x[i].x; + const flt_t ytmp = x[i].y; + const flt_t ztmp = x[i].z; + + // loop over full neighbor list + + const int * _noalias const jlist = firstneigh_full[i]; + const int jnum = numneigh_full[ii]; + + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma ivdep + #endif + for (int jj = 0; jj < jnum; jj++) { + const int joriginal = jlist[jj]; + const int j = joriginal & NEIGHMASK; + int addme = 1; + + // trim to shorter cutoff + + const flt_t delx = xtmp - x[j].x; + const flt_t dely = ytmp - x[j].y; + const flt_t delz = ztmp - x[j].z; + const flt_t rsq = delx * delx + dely * dely + delz * delz; + + if (rsq > cutsq_custom) addme = 0; + + if (addme) + neighptr[n++] = joriginal; + } + + ilist[ii] = i; + firstneigh[i] = neighptr; + numneigh[i] = n; + + int pad_end = n; + IP_PRE_neighbor_pad(pad_end, 0); + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma loop_count min=1, max=INTEL_COMPILE_WIDTH-1, \ + avg=INTEL_COMPILE_WIDTH/2 + #endif + for ( ; n < pad_end; n++) + neighptr[n] = e_nall; + + ipage.vgot(n); + if (ipage.status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } + } + list->inum = inum_full; +} + +/* ---------------------------------------------------------------------- */ + +void NPairHalffullNewtonTrimIntel::build(NeighList *list) +{ + if (_fix->three_body_neighbor() == 0) { + if (_fix->precision() == FixIntel::PREC_MODE_MIXED) + build_t(list, _fix->get_mixed_buffers()); + else if (_fix->precision() == FixIntel::PREC_MODE_DOUBLE) + build_t(list, _fix->get_double_buffers()); + else + build_t(list, _fix->get_single_buffers()); + } else { + int *nhalf, *cnum; + if (_fix->precision() == FixIntel::PREC_MODE_MIXED) { + _fix->get_mixed_buffers()->get_list_data3(list->listfull, nhalf, cnum); + build_t3(list, nhalf, _fix->get_mixed_buffers()); + } else if (_fix->precision() == FixIntel::PREC_MODE_DOUBLE) { + _fix->get_double_buffers()->get_list_data3(list->listfull, nhalf, cnum); + build_t3(list, nhalf, _fix->get_double_buffers()); + } else { + _fix->get_single_buffers()->get_list_data3(list->listfull, nhalf, cnum); + build_t3(list, nhalf, _fix->get_single_buffers()); + } + } +} diff --git a/src/INTEL/npair_halffull_newton_trim_intel.h b/src/INTEL/npair_halffull_newton_trim_intel.h new file mode 100644 index 0000000000..096cf3bd66 --- /dev/null +++ b/src/INTEL/npair_halffull_newton_trim_intel.h @@ -0,0 +1,61 @@ +// clang-format off +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Stan Moore (SNL) +------------------------------------------------------------------------- */ + +#ifdef NPAIR_CLASS +// clang-format off +NPairStyle(halffull/newton/trim/intel, + NPairHalffullNewtonTrimIntel, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI| NP_TRIM | NP_INTEL); + +NPairStyle(halffull/newton/skip/trim/intel, + NPairHalffullNewtonTrimIntel, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM | NP_INTEL); +// clang-format on +#else + +#ifndef LMP_NPAIR_HALFFULL_NEWTON_TRIM_INTEL_H +#define LMP_NPAIR_HALFFULL_NEWTON_TRIM_INTEL_H + +#include "fix_intel.h" +#include "npair.h" + +#if defined(_OPENMP) +#include +#endif + +namespace LAMMPS_NS { + +class NPairHalffullNewtonTrimIntel : public NPair { + public: + NPairHalffullNewtonTrimIntel(class LAMMPS *); + void build(class NeighList *) override; + + protected: + FixIntel *_fix; + + template void build_t(NeighList *, IntelBuffers *); + + template void build_t3(NeighList *, int *, IntelBuffers *); +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/INTEL/npair_trim_intel.cpp b/src/INTEL/npair_trim_intel.cpp new file mode 100644 index 0000000000..61c20db547 --- /dev/null +++ b/src/INTEL/npair_trim_intel.cpp @@ -0,0 +1,138 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Stan Moore (SNL) +------------------------------------------------------------------------- */ + +#include "npair_trim_intel.h" + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "modify.h" +#include "my_page.h" +#include "neigh_list.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +NPairTrimIntel::NPairTrimIntel(LAMMPS *lmp) : NPair(lmp) { + _fix = static_cast(modify->get_fix_by_id("package_intel")); + if (!_fix) error->all(FLERR, "The 'package intel' command is required for /intel styles"); +} + +/* ---------------------------------------------------------------------- + trim from copy list to shorter cutoff +------------------------------------------------------------------------- */ + +template +void NPairTrimIntel::build_t(NeighList *list, + IntelBuffers *buffers) +{ + const int inum_copy = list->listcopy->inum; + const int nlocal = atom->nlocal; + const int e_nall = nlocal + atom->nghost; + const ATOM_T * _noalias const x = buffers->get_x(); + int * _noalias const ilist = list->ilist; + int * _noalias const numneigh = list->numneigh; + int ** _noalias const firstneigh = list->firstneigh; + const int * _noalias const ilist_copy = list->listcopy->ilist; + const int * _noalias const numneigh_copy = list->listcopy->numneigh; + const int ** _noalias const firstneigh_copy = (const int ** const)list->listcopy->firstneigh; // NOLINT + + const flt_t cutsq_custom = cutoff_custom * cutoff_custom; + + #if defined(_OPENMP) + #pragma omp parallel + #endif + { + int tid, ifrom, ito; + IP_PRE_omp_range_id(ifrom, ito, tid, inum_copy, comm->nthreads); + + // each thread has its own page allocator + MyPage &ipage = list->ipage[tid]; + ipage.reset(); + + // loop over parent copy list + for (int ii = ifrom; ii < ito; ii++) { + int n = 0; + int *neighptr = ipage.vget(); + + const int i = ilist_copy[ii]; + const flt_t xtmp = x[i].x; + const flt_t ytmp = x[i].y; + const flt_t ztmp = x[i].z; + + // loop over copy neighbor list + + const int * _noalias const jlist = firstneigh_copy[i]; + const int jnum = numneigh_copy[i]; + + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma ivdep + #endif + for (int jj = 0; jj < jnum; jj++) { + const int joriginal = jlist[jj]; + const int j = joriginal & NEIGHMASK; + int addme = 1; + + // trim to shorter cutoff + + const flt_t delx = xtmp - x[j].x; + const flt_t dely = ytmp - x[j].y; + const flt_t delz = ztmp - x[j].z; + const flt_t rsq = delx * delx + dely * dely + delz * delz; + + if (rsq > cutsq_custom) addme = 0; + + if (addme) + neighptr[n++] = joriginal; + } + + ilist[ii] = i; + firstneigh[i] = neighptr; + numneigh[i] = n; + + int pad_end = n; + IP_PRE_neighbor_pad(pad_end, 0); + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma loop_count min=1, max=INTEL_COMPILE_WIDTH-1, \ + avg=INTEL_COMPILE_WIDTH/2 + #endif + for ( ; n < pad_end; n++) + neighptr[n] = e_nall; + + ipage.vgot(n); + if (ipage.status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } + } + list->inum = inum_copy; +} + +/* ---------------------------------------------------------------------- */ + +void NPairTrimIntel::build(NeighList *list) +{ + if (_fix->precision() == FixIntel::PREC_MODE_MIXED) + build_t(list, _fix->get_mixed_buffers()); + else if (_fix->precision() == FixIntel::PREC_MODE_DOUBLE) + build_t(list, _fix->get_double_buffers()); + else + build_t(list, _fix->get_single_buffers()); +} diff --git a/src/INTEL/npair_trim_intel.h b/src/INTEL/npair_trim_intel.h new file mode 100644 index 0000000000..6a68c19b26 --- /dev/null +++ b/src/INTEL/npair_trim_intel.h @@ -0,0 +1,53 @@ +// clang-format off +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Stan Moore (SNL) +------------------------------------------------------------------------- */ + +#ifdef NPAIR_CLASS +// clang-format off +NPairStyle(trim/intel, + NPairTrimIntel, + NP_COPY | NP_TRIM | NP_INTEL); +// clang-format on +#else + +#ifndef LMP_NPAIR_TRIM_INTEL_H +#define LMP_NPAIR_TRIM_INTEL_H + +#include "fix_intel.h" +#include "npair.h" + +#if defined(_OPENMP) +#include +#endif + +namespace LAMMPS_NS { + +class NPairTrimIntel : public NPair { + public: + NPairTrimIntel(class LAMMPS *); + void build(class NeighList *) override; + + protected: + FixIntel *_fix; + + template void build_t(NeighList *, IntelBuffers *); +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/INTEL/pair_sw_intel.cpp b/src/INTEL/pair_sw_intel.cpp index a882f8bfba..37fe19260a 100644 --- a/src/INTEL/pair_sw_intel.cpp +++ b/src/INTEL/pair_sw_intel.cpp @@ -1101,7 +1101,11 @@ void PairSWIntel::allocate() void PairSWIntel::init_style() { + // there is no support for skipping threebody loops (yet) + bool tmp_threebody = skip_threebody_flag; + skip_threebody_flag = false; PairSW::init_style(); + skip_threebody_flag = tmp_threebody; map[0] = map[1]; diff --git a/src/INTERLAYER/pair_ilp_tmd.cpp b/src/INTERLAYER/pair_ilp_tmd.cpp index 15e1beede7..52119cbf12 100644 --- a/src/INTERLAYER/pair_ilp_tmd.cpp +++ b/src/INTERLAYER/pair_ilp_tmd.cpp @@ -483,7 +483,7 @@ void PairILPTMD::calc_normal() } } //############################ For the edge atoms of TMD ################################ - else if (cont > 1 && cont < Nnei) { + else if (cont < Nnei) { if (strcmp(elements[itype], "Mo") == 0 || strcmp(elements[itype], "W") == 0 || strcmp(elements[itype], "S") == 0 || strcmp(elements[itype], "Se") == 0) { // derivatives of Ni[l] respect to the cont neighbors diff --git a/src/KOKKOS/Install.sh b/src/KOKKOS/Install.sh index 022da7855a..6ad96be466 100755 --- a/src/KOKKOS/Install.sh +++ b/src/KOKKOS/Install.sh @@ -182,6 +182,13 @@ action kokkos_base.h action kokkos_base_fft.h fft3d.h action kokkos_few.h action kokkos_type.h +action meam_kokkos.h meam.h +action meam_dens_final_kokkos.h meam_dens_final.cpp +action meam_dens_init_kokkos.h meam_dens_init.cpp +action meam_force_kokkos.h meam_force.cpp +action meam_funcs_kokkos.h meam_funcs.cpp +action meam_impl_kokkos.h meam_impl.cpp +action meam_setup_done_kokkos.h meam_setup_done.cpp action memory_kokkos.h action modify_kokkos.cpp action modify_kokkos.h @@ -197,6 +204,8 @@ action npair_halffull_kokkos.cpp action npair_halffull_kokkos.h action npair_skip_kokkos.cpp action npair_skip_kokkos.h +action npair_trim_kokkos.cpp +action npair_trim_kokkos.h action npair_kokkos.cpp action npair_kokkos.h action npair_ssa_kokkos.cpp npair_half_bin_newton_ssa.cpp @@ -287,6 +296,8 @@ action pair_lj_gromacs_kokkos.cpp pair_lj_gromacs.cpp action pair_lj_gromacs_kokkos.h pair_lj_gromacs.h action pair_lj_sdk_kokkos.cpp pair_lj_sdk.cpp action pair_lj_sdk_kokkos.h pair_lj_sdk.h +action pair_meam_kokkos.cpp pair_meam.cpp +action pair_meam_kokkos.h pair_meam.h action pair_morse_kokkos.cpp action pair_morse_kokkos.h action pair_multi_lucy_rx_kokkos.cpp pair_multi_lucy_rx.cpp diff --git a/src/KOKKOS/atom_vec_angle_kokkos.cpp b/src/KOKKOS/atom_vec_angle_kokkos.cpp index 18de4d46cb..dd37d1a838 100644 --- a/src/KOKKOS/atom_vec_angle_kokkos.cpp +++ b/src/KOKKOS/atom_vec_angle_kokkos.cpp @@ -1391,6 +1391,9 @@ int AtomVecAngleKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int n int nlocal,int dim,X_FLOAT lo,X_FLOAT hi, ExecutionSpace space) { const size_t elements = 17+atom->maxspecial+2*atom->bond_per_atom+4*atom->angle_per_atom; + + while (nlocal + nrecv/elements >= nmax) grow(0); + if (space == Host) { k_count.h_view(0) = nlocal; AtomVecAngleKokkos_UnpackExchangeFunctor diff --git a/src/KOKKOS/atom_vec_atomic_kokkos.cpp b/src/KOKKOS/atom_vec_atomic_kokkos.cpp index 891ebb51c2..0a78b42227 100644 --- a/src/KOKKOS/atom_vec_atomic_kokkos.cpp +++ b/src/KOKKOS/atom_vec_atomic_kokkos.cpp @@ -649,6 +649,8 @@ struct AtomVecAtomicKokkos_UnpackExchangeFunctor { /* ---------------------------------------------------------------------- */ int AtomVecAtomicKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int nrecv,int nlocal,int dim,X_FLOAT lo,X_FLOAT hi,ExecutionSpace space) { + while (nlocal + nrecv/11 >= nmax) grow(0); + if (space == Host) { k_count.h_view(0) = nlocal; AtomVecAtomicKokkos_UnpackExchangeFunctor f(atomKK,k_buf,k_count,dim,lo,hi); diff --git a/src/KOKKOS/atom_vec_bond_kokkos.cpp b/src/KOKKOS/atom_vec_bond_kokkos.cpp index 3655d894c9..ea70f15dcb 100644 --- a/src/KOKKOS/atom_vec_bond_kokkos.cpp +++ b/src/KOKKOS/atom_vec_bond_kokkos.cpp @@ -845,6 +845,9 @@ int AtomVecBondKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int nr int nlocal,int dim,X_FLOAT lo,X_FLOAT hi, ExecutionSpace space) { const size_t elements = 16+atomKK->maxspecial+atomKK->bond_per_atom+atomKK->bond_per_atom; + + while (nlocal + nrecv/elements >= nmax) grow(0); + if (space == Host) { k_count.h_view(0) = nlocal; AtomVecBondKokkos_UnpackExchangeFunctor diff --git a/src/KOKKOS/atom_vec_charge_kokkos.cpp b/src/KOKKOS/atom_vec_charge_kokkos.cpp index 7de36ffd5d..3c0e1d46bb 100644 --- a/src/KOKKOS/atom_vec_charge_kokkos.cpp +++ b/src/KOKKOS/atom_vec_charge_kokkos.cpp @@ -774,6 +774,8 @@ struct AtomVecChargeKokkos_UnpackExchangeFunctor { int AtomVecChargeKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int nrecv, int nlocal,int dim,X_FLOAT lo,X_FLOAT hi, ExecutionSpace space) { + while (nlocal + nrecv/12 >= nmax) grow(0); + if (space == Host) { k_count.h_view(0) = nlocal; AtomVecChargeKokkos_UnpackExchangeFunctor f(atomKK,k_buf,k_count,dim,lo,hi); diff --git a/src/KOKKOS/atom_vec_dpd_kokkos.cpp b/src/KOKKOS/atom_vec_dpd_kokkos.cpp index cf7ad9d533..1b7ccd97d0 100644 --- a/src/KOKKOS/atom_vec_dpd_kokkos.cpp +++ b/src/KOKKOS/atom_vec_dpd_kokkos.cpp @@ -1505,6 +1505,8 @@ struct AtomVecDPDKokkos_UnpackExchangeFunctor { /* ---------------------------------------------------------------------- */ int AtomVecDPDKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int nrecv,int nlocal,int dim,X_FLOAT lo,X_FLOAT hi,ExecutionSpace space) { + while (nlocal + nrecv/17 >= nmax) grow(0); + if (space == Host) { k_count.h_view(0) = nlocal; AtomVecDPDKokkos_UnpackExchangeFunctor f(atomKK,k_buf,k_count,dim,lo,hi); diff --git a/src/KOKKOS/atom_vec_full_kokkos.cpp b/src/KOKKOS/atom_vec_full_kokkos.cpp index b75c33e046..7322a75b11 100644 --- a/src/KOKKOS/atom_vec_full_kokkos.cpp +++ b/src/KOKKOS/atom_vec_full_kokkos.cpp @@ -1186,6 +1186,9 @@ int AtomVecFullKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int nr ExecutionSpace space) { const size_t elements = 20+atom->maxspecial+2*atom->bond_per_atom+4*atom->angle_per_atom+ 5*atom->dihedral_per_atom + 5*atom->improper_per_atom; + + while (nlocal + nrecv/elements >= nmax) grow(0); + if (space == Host) { k_count.h_view(0) = nlocal; AtomVecFullKokkos_UnpackExchangeFunctor diff --git a/src/KOKKOS/atom_vec_molecular_kokkos.cpp b/src/KOKKOS/atom_vec_molecular_kokkos.cpp index c4e75c1da7..123adedbdf 100644 --- a/src/KOKKOS/atom_vec_molecular_kokkos.cpp +++ b/src/KOKKOS/atom_vec_molecular_kokkos.cpp @@ -1594,6 +1594,9 @@ int AtomVecMolecularKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,i ExecutionSpace space) { const size_t elements = 19+atom->maxspecial+2*atom->bond_per_atom+4*atom->angle_per_atom+ 5*atom->dihedral_per_atom + 5*atom->improper_per_atom; + + while (nlocal + nrecv/elements >= nmax) grow(0); + if (space == Host) { k_count.h_view(0) = nlocal; AtomVecMolecularKokkos_UnpackExchangeFunctor diff --git a/src/KOKKOS/atom_vec_sphere_kokkos.cpp b/src/KOKKOS/atom_vec_sphere_kokkos.cpp index 0b722e8563..206d6c832c 100644 --- a/src/KOKKOS/atom_vec_sphere_kokkos.cpp +++ b/src/KOKKOS/atom_vec_sphere_kokkos.cpp @@ -2341,6 +2341,8 @@ struct AtomVecSphereKokkos_UnpackExchangeFunctor { /* ---------------------------------------------------------------------- */ int AtomVecSphereKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int nrecv,int nlocal,int dim,X_FLOAT lo,X_FLOAT hi,ExecutionSpace space) { + while (nlocal + nrecv/16 >= nmax) grow(0); + if (space == Host) { k_count.h_view(0) = nlocal; AtomVecSphereKokkos_UnpackExchangeFunctor f(atomKK,k_buf,k_count,dim,lo,hi); diff --git a/src/KOKKOS/atom_vec_spin_kokkos.cpp b/src/KOKKOS/atom_vec_spin_kokkos.cpp index 039c08f31c..7722241756 100644 --- a/src/KOKKOS/atom_vec_spin_kokkos.cpp +++ b/src/KOKKOS/atom_vec_spin_kokkos.cpp @@ -863,6 +863,8 @@ struct AtomVecSpinKokkos_UnpackExchangeFunctor { int AtomVecSpinKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int nrecv, int nlocal,int dim,X_FLOAT lo,X_FLOAT hi, ExecutionSpace space) { + while (nlocal + nrecv/15 >= nmax) grow(0); + if(space == Host) { k_count.h_view(0) = nlocal; AtomVecSpinKokkos_UnpackExchangeFunctor f(atomKK,k_buf,k_count,dim,lo,hi); diff --git a/src/KOKKOS/comm_kokkos.cpp b/src/KOKKOS/comm_kokkos.cpp index 4883838273..fea5864225 100644 --- a/src/KOKKOS/comm_kokkos.cpp +++ b/src/KOKKOS/comm_kokkos.cpp @@ -109,6 +109,7 @@ void CommKokkos::init() exchange_comm_classic = lmp->kokkos->exchange_comm_classic; forward_comm_classic = lmp->kokkos->forward_comm_classic; forward_pair_comm_classic = lmp->kokkos->forward_pair_comm_classic; + reverse_pair_comm_classic = lmp->kokkos->reverse_pair_comm_classic; forward_fix_comm_classic = lmp->kokkos->forward_fix_comm_classic; reverse_comm_classic = lmp->kokkos->reverse_comm_classic; exchange_comm_on_host = lmp->kokkos->exchange_comm_on_host; @@ -478,12 +479,13 @@ void CommKokkos::forward_comm_device(Pair *pair) int nsize = pair->comm_forward; KokkosBase* pairKKBase = dynamic_cast(pair); + int nmax = max_buf_pair; for (iswap = 0; iswap < nswap; iswap++) { - int n = MAX(max_buf_pair,nsize*sendnum[iswap]); - n = MAX(n,nsize*recvnum[iswap]); - if (n > max_buf_pair) - grow_buf_pair(n); + nmax = MAX(nmax,nsize*sendnum[iswap]); + nmax = MAX(nmax,nsize*recvnum[iswap]); } + if (nmax > max_buf_pair) + grow_buf_pair(nmax); for (iswap = 0; iswap < nswap; iswap++) { @@ -545,8 +547,76 @@ void CommKokkos::grow_buf_fix(int n) { void CommKokkos::reverse_comm(Pair *pair) { - k_sendlist.sync(); - CommBrick::reverse_comm(pair); + if (pair->execution_space == Host || !pair->reverse_comm_device || reverse_pair_comm_classic) { + k_sendlist.sync(); + CommBrick::reverse_comm(pair); + } else { + k_sendlist.sync(); + reverse_comm_device(pair); + } +} + +template +void CommKokkos::reverse_comm_device(Pair *pair) +{ + int iswap,n; + MPI_Request request; + DAT::tdual_xfloat_1d k_buf_tmp; + + KokkosBase* pairKKBase = dynamic_cast(pair); + + int nsize = MAX(pair->comm_reverse,pair->comm_reverse_off); + + int nmax = max_buf_pair; + for (iswap = 0; iswap < nswap; iswap++) { + nmax = MAX(nmax,nsize*sendnum[iswap]); + nmax = MAX(nmax,nsize*recvnum[iswap]); + } + if (nmax > max_buf_pair) + grow_buf_pair(nmax); + + for (iswap = nswap-1; iswap >= 0; iswap--) { + + // pack buffer + + n = pairKKBase->pack_reverse_comm_kokkos(recvnum[iswap],firstrecv[iswap],k_buf_send_pair); + DeviceType().fence(); + + // exchange with another proc + // if self, set recv buffer to send buffer + + double* buf_send_pair; + double* buf_recv_pair; + if (lmp->kokkos->gpu_aware_flag) { + buf_send_pair = k_buf_send_pair.view().data(); + buf_recv_pair = k_buf_recv_pair.view().data(); + } else { + k_buf_send_pair.modify(); + k_buf_send_pair.sync(); + buf_send_pair = k_buf_send_pair.h_view.data(); + buf_recv_pair = k_buf_recv_pair.h_view.data(); + } + + if (sendproc[iswap] != me) { + if (sendnum[iswap]) + MPI_Irecv(buf_recv_pair,nsize*sendnum[iswap],MPI_DOUBLE,sendproc[iswap],0,world,&request); + if (recvnum[iswap]) + MPI_Send(buf_send_pair,n,MPI_DOUBLE,recvproc[iswap],0,world); + if (sendnum[iswap]) MPI_Wait(&request,MPI_STATUS_IGNORE); + + if (!lmp->kokkos->gpu_aware_flag) { + k_buf_recv_pair.modify(); + k_buf_recv_pair.sync(); + } + k_buf_tmp = k_buf_recv_pair; + } else k_buf_tmp = k_buf_send_pair; + + // unpack buffer + + pairKKBase->unpack_reverse_comm_kokkos(sendnum[iswap],k_sendlist, + iswap,k_buf_tmp); + DeviceType().fence(); + } } void CommKokkos::forward_comm(Dump *dump) diff --git a/src/KOKKOS/comm_kokkos.h b/src/KOKKOS/comm_kokkos.h index 3fcce82e2c..80736c1f92 100644 --- a/src/KOKKOS/comm_kokkos.h +++ b/src/KOKKOS/comm_kokkos.h @@ -27,6 +27,7 @@ class CommKokkos : public CommBrick { bool exchange_comm_classic; bool forward_comm_classic; bool forward_pair_comm_classic; + bool reverse_pair_comm_classic; bool forward_fix_comm_classic; bool reverse_comm_classic; bool exchange_comm_on_host; @@ -58,6 +59,7 @@ class CommKokkos : public CommBrick { template void forward_comm_device(int dummy); template void reverse_comm_device(); template void forward_comm_device(Pair *pair); + template void reverse_comm_device(Pair *pair); template void forward_comm_device(Fix *fix, int size=0); template void exchange_device(); template void borders_device(); diff --git a/src/KOKKOS/compute_ave_sphere_atom_kokkos.cpp b/src/KOKKOS/compute_ave_sphere_atom_kokkos.cpp index d2cb6682a7..7873bd0d92 100644 --- a/src/KOKKOS/compute_ave_sphere_atom_kokkos.cpp +++ b/src/KOKKOS/compute_ave_sphere_atom_kokkos.cpp @@ -11,11 +11,16 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + Contributing author: Stan Moore (SNL) +------------------------------------------------------------------------- */ + #include "compute_ave_sphere_atom_kokkos.h" #include "atom_kokkos.h" #include "atom_masks.h" #include "comm.h" +#include "domain.h" #include "error.h" #include "force.h" #include "memory_kokkos.h" @@ -105,11 +110,19 @@ void ComputeAveSphereAtomKokkos::compute_peratom() // compute properties for each atom in group // use full neighbor list to count atoms less than cutoff - atomKK->sync(execution_space,X_MASK|V_MASK|TYPE_MASK|MASK_MASK); + atomKK->sync(execution_space,X_MASK|V_MASK|RMASS_MASK|TYPE_MASK|MASK_MASK); x = atomKK->k_x.view(); v = atomKK->k_v.view(); + rmass = atomKK->k_rmass.view(); + mass = atomKK->k_mass.view(); + type = atomKK->k_type.view(); mask = atomKK->k_mask.view(); + adof = domain->dimension; + mvv2e = force->mvv2e; + mv2d = force->mv2d; + boltz = force->boltz; + Kokkos::deep_copy(d_result,0.0); copymode = 1; @@ -125,8 +138,13 @@ template KOKKOS_INLINE_FUNCTION void ComputeAveSphereAtomKokkos::operator()(TagComputeAveSphereAtom, const int &ii) const { + double massone_i,massone_j; + const int i = d_ilist[ii]; if (mask[i] & groupbit) { + if (rmass.data()) massone_i = rmass[i]; + else massone_i = mass[type[i]]; + const X_FLOAT xtmp = x(i,0); const X_FLOAT ytmp = x(i,1); const X_FLOAT ztmp = x(i,2); @@ -135,14 +153,17 @@ void ComputeAveSphereAtomKokkos::operator()(TagComputeAveSphereAtom, // i atom contribution int count = 1; - double vsum[3]; - vsum[0] = v(i,0); - vsum[1] = v(i,1); - vsum[2] = v(i,2); + double totalmass = massone_i; + double p[3]; + p[0] = v(i,0)*massone_i; + p[1] = v(i,1)*massone_i; + p[2] = v(i,2)*massone_i; for (int jj = 0; jj < jnum; jj++) { int j = d_neighbors(i,jj); j &= NEIGHMASK; + if (rmass.data()) massone_j = rmass[j]; + else massone_j = mass[type[j]]; const F_FLOAT delx = x(j,0) - xtmp; const F_FLOAT dely = x(j,1) - ytmp; @@ -150,44 +171,45 @@ void ComputeAveSphereAtomKokkos::operator()(TagComputeAveSphereAtom, const F_FLOAT rsq = delx*delx + dely*dely + delz*delz; if (rsq < cutsq) { count++; - vsum[0] += v(j,0); - vsum[1] += v(j,1); - vsum[2] += v(j,2); + totalmass += massone_j; + p[0] += v(j,0)*massone_j; + p[1] += v(j,1)*massone_j; + p[2] += v(j,2)*massone_j; } } - double vavg[3]; - vavg[0] = vsum[0]/count; - vavg[1] = vsum[1]/count; - vavg[2] = vsum[2]/count; + double vcom[3]; + vcom[0] = p[0]/totalmass; + vcom[1] = p[1]/totalmass; + vcom[2] = p[2]/totalmass; // i atom contribution - count = 1; double vnet[3]; - vnet[0] = v(i,0) - vavg[0]; - vnet[1] = v(i,1) - vavg[1]; - vnet[2] = v(i,2) - vavg[2]; - double ke_sum = vnet[0]*vnet[0] + vnet[1]*vnet[1] + vnet[2]*vnet[2]; + vnet[0] = v(i,0) - vcom[0]; + vnet[1] = v(i,1) - vcom[1]; + vnet[2] = v(i,2) - vcom[2]; + double ke_sum = massone_i * (vnet[0]*vnet[0] + vnet[1]*vnet[1] + vnet[2]*vnet[2]); for (int jj = 0; jj < jnum; jj++) { int j = d_neighbors(i,jj); j &= NEIGHMASK; + if (rmass.data()) massone_j = rmass[j]; + else massone_j = mass[type[j]]; const F_FLOAT delx = x(j,0) - xtmp; const F_FLOAT dely = x(j,1) - ytmp; const F_FLOAT delz = x(j,2) - ztmp; const F_FLOAT rsq = delx*delx + dely*dely + delz*delz; if (rsq < cutsq) { - count++; - vnet[0] = v(j,0) - vavg[0]; - vnet[1] = v(j,1) - vavg[1]; - vnet[2] = v(j,2) - vavg[2]; - ke_sum += vnet[0]*vnet[0] + vnet[1]*vnet[1] + vnet[2]*vnet[2]; + vnet[0] = v(j,0) - vcom[0]; + vnet[1] = v(j,1) - vcom[1]; + vnet[2] = v(j,2) - vcom[2]; + ke_sum += massone_j * (vnet[0]*vnet[0] + vnet[1]*vnet[1] + vnet[2]*vnet[2]); } } - double density = count/sphere_vol; - double temp = ke_sum/3.0/count; + double density = mv2d*totalmass/volume; + double temp = mvv2e*ke_sum/(adof*count*boltz); d_result(i,0) = density; d_result(i,1) = temp; } diff --git a/src/KOKKOS/compute_ave_sphere_atom_kokkos.h b/src/KOKKOS/compute_ave_sphere_atom_kokkos.h index 75b5ca3aba..1ddf943e7d 100644 --- a/src/KOKKOS/compute_ave_sphere_atom_kokkos.h +++ b/src/KOKKOS/compute_ave_sphere_atom_kokkos.h @@ -46,13 +46,18 @@ template class ComputeAveSphereAtomKokkos : public ComputeAve void operator()(TagComputeAveSphereAtom, const int &) const; private: - typename AT::t_x_array_randomread x; - typename AT::t_v_array_randomread v; + double adof,mvv2e,mv2d,boltz; + + typename AT::t_x_array x; + typename AT::t_v_array v; + typename ArrayTypes::t_float_1d rmass; + typename ArrayTypes::t_float_1d mass; + typename ArrayTypes::t_int_1d type; typename ArrayTypes::t_int_1d mask; typename AT::t_neighbors_2d d_neighbors; - typename AT::t_int_1d_randomread d_ilist; - typename AT::t_int_1d_randomread d_numneigh; + typename AT::t_int_1d d_ilist; + typename AT::t_int_1d d_numneigh; DAT::tdual_float_2d k_result; typename AT::t_float_2d d_result; diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 18f05fa281..3ecce0d75d 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -91,6 +91,7 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) exchange_comm_changed = 0; forward_comm_changed = 0; forward_pair_comm_changed = 0; + reverse_pair_comm_changed = 0; forward_fix_comm_changed = 0; reverse_comm_changed = 0; @@ -239,7 +240,7 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) newtonflag = 0; exchange_comm_classic = forward_comm_classic = reverse_comm_classic = 0; - forward_pair_comm_classic = forward_fix_comm_classic = 0; + forward_pair_comm_classic = reverse_pair_comm_classic = forward_fix_comm_classic = 0; exchange_comm_on_host = forward_comm_on_host = reverse_comm_on_host = 0; } else { @@ -253,7 +254,7 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) newtonflag = 1; exchange_comm_classic = forward_comm_classic = reverse_comm_classic = 1; - forward_pair_comm_classic = forward_fix_comm_classic = 1; + forward_pair_comm_classic = reverse_pair_comm_classic = forward_fix_comm_classic = 1; exchange_comm_on_host = forward_comm_on_host = reverse_comm_on_host = 0; } @@ -394,17 +395,17 @@ void KokkosLMP::accelerator(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal package kokkos command"); if (strcmp(arg[iarg+1],"no") == 0) { exchange_comm_classic = forward_comm_classic = reverse_comm_classic = 1; - forward_pair_comm_classic = forward_fix_comm_classic = 1; + forward_pair_comm_classic = reverse_pair_comm_classic = forward_fix_comm_classic = 1; exchange_comm_on_host = forward_comm_on_host = reverse_comm_on_host = 0; } else if (strcmp(arg[iarg+1],"host") == 0) { exchange_comm_classic = forward_comm_classic = reverse_comm_classic = 0; - forward_pair_comm_classic = forward_fix_comm_classic = 1; + forward_pair_comm_classic = reverse_pair_comm_classic = forward_fix_comm_classic = 1; exchange_comm_on_host = forward_comm_on_host = reverse_comm_on_host = 1; } else if (strcmp(arg[iarg+1],"device") == 0) { exchange_comm_classic = forward_comm_classic = reverse_comm_classic = 0; - forward_pair_comm_classic = forward_fix_comm_classic = 0; + forward_pair_comm_classic = reverse_pair_comm_classic = forward_fix_comm_classic = 0; exchange_comm_on_host = forward_comm_on_host = reverse_comm_on_host = 0; } else error->all(FLERR,"Illegal package kokkos command"); @@ -441,6 +442,14 @@ void KokkosLMP::accelerator(int narg, char **arg) else error->all(FLERR,"Illegal package kokkos command"); forward_pair_comm_changed = 0; iarg += 2; + } else if (strcmp(arg[iarg],"comm/pair/reverse") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal package kokkos command"); + if (strcmp(arg[iarg+1],"no") == 0) reverse_pair_comm_classic = 1; + else if (strcmp(arg[iarg+1],"host") == 0) reverse_pair_comm_classic = 1; + else if (strcmp(arg[iarg+1],"device") == 0) reverse_pair_comm_classic = 0; + else error->all(FLERR,"Illegal package kokkos command"); + reverse_pair_comm_changed = 0; + iarg += 2; } else if (strcmp(arg[iarg],"comm/fix/forward") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package kokkos command"); if (strcmp(arg[iarg+1],"no") == 0) forward_fix_comm_classic = 1; @@ -515,6 +524,10 @@ void KokkosLMP::accelerator(int narg, char **arg) forward_pair_comm_classic = 1; forward_pair_comm_changed = 1; } + if (reverse_pair_comm_classic == 0) { + reverse_pair_comm_classic = 1; + reverse_pair_comm_changed = 1; + } if (forward_fix_comm_classic == 0) { forward_fix_comm_classic = 1; forward_fix_comm_changed = 1; @@ -540,6 +553,10 @@ void KokkosLMP::accelerator(int narg, char **arg) forward_pair_comm_classic = 0; forward_pair_comm_changed = 0; } + if (reverse_pair_comm_changed) { + reverse_pair_comm_classic = 0; + reverse_pair_comm_changed = 0; + } if (forward_fix_comm_changed) { forward_fix_comm_classic = 0; forward_fix_comm_changed = 0; diff --git a/src/KOKKOS/kokkos.h b/src/KOKKOS/kokkos.h index 07d172e524..1cecd69c5f 100644 --- a/src/KOKKOS/kokkos.h +++ b/src/KOKKOS/kokkos.h @@ -30,6 +30,7 @@ class KokkosLMP : protected Pointers { int exchange_comm_classic; int forward_comm_classic; int forward_pair_comm_classic; + int reverse_pair_comm_classic; int forward_fix_comm_classic; int reverse_comm_classic; int exchange_comm_on_host; @@ -38,6 +39,7 @@ class KokkosLMP : protected Pointers { int exchange_comm_changed; int forward_comm_changed; int forward_pair_comm_changed; + int reverse_pair_comm_changed; int forward_fix_comm_changed; int reverse_comm_changed; int nthreads,ngpus; diff --git a/src/KOKKOS/kokkos_base.h b/src/KOKKOS/kokkos_base.h index f18d55eec2..c593f0ae60 100644 --- a/src/KOKKOS/kokkos_base.h +++ b/src/KOKKOS/kokkos_base.h @@ -29,6 +29,10 @@ class KokkosBase { int, int *) {return 0;}; virtual void unpack_forward_comm_kokkos(int, int, DAT::tdual_xfloat_1d &) {} + virtual int pack_reverse_comm_kokkos(int, int, DAT::tdual_xfloat_1d &) {return 0;}; + virtual void unpack_reverse_comm_kokkos(int, DAT::tdual_int_2d, + int, DAT::tdual_xfloat_1d &) {} + // Fix virtual int pack_forward_comm_fix_kokkos(int, DAT::tdual_int_2d, int, DAT::tdual_xfloat_1d &, diff --git a/src/KOKKOS/math_special_kokkos.cpp b/src/KOKKOS/math_special_kokkos.cpp index 89f6586581..84c584a5cc 100644 --- a/src/KOKKOS/math_special_kokkos.cpp +++ b/src/KOKKOS/math_special_kokkos.cpp @@ -477,59 +477,3 @@ double MathSpecialKokkos::erfcx_y100(const double y100) return 1.0; } /* erfcx_y100 */ -/* optimizer friendly implementation of exp2(x). - * - * strategy: - * - * split argument into an integer part and a fraction: - * ipart = floor(x+0.5); - * fpart = x - ipart; - * - * compute exp2(ipart) from setting the ieee754 exponent - * compute exp2(fpart) using a pade' approximation for x in [-0.5;0.5[ - * - * the result becomes: exp2(x) = exp2(ipart) * exp2(fpart) - */ - -/* IEEE 754 double precision floating point data manipulation */ -typedef union -{ - double f; - uint64_t u; - struct {int32_t i0,i1;} s; -} udi_t; - -static const double fm_exp2_q[] = { -/* 1.00000000000000000000e0, */ - 2.33184211722314911771e2, - 4.36821166879210612817e3 -}; -static const double fm_exp2_p[] = { - 2.30933477057345225087e-2, - 2.02020656693165307700e1, - 1.51390680115615096133e3 -}; - -double MathSpecialKokkos::exp2_x86(double x) -{ - double ipart, fpart, px, qx; - udi_t epart; - - ipart = floor(x+0.5); - fpart = x - ipart; - epart.s.i0 = 0; - epart.s.i1 = (((int) ipart) + 1023) << 20; - - x = fpart*fpart; - - px = fm_exp2_p[0]; - px = px*x + fm_exp2_p[1]; - qx = x + fm_exp2_q[0]; - px = px*x + fm_exp2_p[2]; - qx = qx*x + fm_exp2_q[1]; - - px = px * fpart; - - x = 1.0 + 2.0*(px/(qx-px)); - return epart.f*x; -} diff --git a/src/KOKKOS/math_special_kokkos.h b/src/KOKKOS/math_special_kokkos.h index 802d1c2979..35a8bf56c5 100644 --- a/src/KOKKOS/math_special_kokkos.h +++ b/src/KOKKOS/math_special_kokkos.h @@ -22,79 +22,233 @@ namespace LAMMPS_NS { namespace MathSpecialKokkos { + /*! Fast tabulated factorial function + * + * This function looks up pre-computed factorial values for arguments of n = 0 + * to a maximum of 167, which is the maximal value representable by a double + * precision floating point number. For other values of n a NaN value is returned. + * + * \param n argument (valid: 0 <= n <= 167) + * \return value of n! as double precision number or NaN */ + + extern double factorial(const int n); + + /* optimizer friendly implementation of exp2(x). + * + * strategy: + * + * split argument into an integer part and a fraction: + * ipart = floor(x+0.5); + * fpart = x - ipart; + * + * compute exp2(ipart) from setting the ieee754 exponent + * compute exp2(fpart) using a pade' approximation for x in [-0.5;0.5[ + * + * the result becomes: exp2(x) = exp2(ipart) * exp2(fpart) + */ + + /* IEEE 754 double precision floating point data manipulation */ + typedef union + { + double f; + uint64_t u; + struct {int32_t i0,i1;} s; + } udi_t; + + /* double precision constants */ + #define FM_DOUBLE_LOG2OFE 1.4426950408889634074 + + /*! Fast implementation of 2^x without argument checks for little endian CPUs + * + * This function implements an optimized version of pow(2.0, x) that does not + * check for valid arguments and thus may only be used where arguments are well + * behaved. The implementation makes assumptions about the layout of double + * precision floating point numbers in memory and thus will only work on little + * endian CPUs. If little endian cannot be safely detected, the result of + * calling pow(2.0, x) will be returned. This function also is the basis for + * the fast exponential fm_exp(x). + * + * \param x argument + * \return value of 2^x as double precision number */ + + KOKKOS_INLINE_FUNCTION + static double exp2_x86(double x) + { + #if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + double ipart, fpart, px, qx; + udi_t epart; + + const double fm_exp2_q[2] = { + /* 1.00000000000000000000e0, */ + 2.33184211722314911771e2, + 4.36821166879210612817e3 + }; + const double fm_exp2_p[3] = { + 2.30933477057345225087e-2, + 2.02020656693165307700e1, + 1.51390680115615096133e3 + }; + + ipart = floor(x+0.5); + fpart = x - ipart; + epart.s.i0 = 0; + epart.s.i1 = (((int) ipart) + 1023) << 20; + + x = fpart*fpart; + + px = fm_exp2_p[0]; + px = px*x + fm_exp2_p[1]; + qx = x + fm_exp2_q[0]; + px = px*x + fm_exp2_p[2]; + qx = qx*x + fm_exp2_q[1]; + + px = px * fpart; + + x = 1.0 + 2.0*(px/(qx-px)); + return epart.f*x; + #else + return pow(2.0, x); + #endif + } + + /*! Fast implementation of exp(x) for little endian CPUs + * + * This function implements an optimized version of exp(x) for little endian CPUs. + * It calls the exp2_x86(x) function with a suitable prefactor to x to return exp(x). + * The implementation makes assumptions about the layout of double + * precision floating point numbers in memory and thus will only work on little + * endian CPUs. If little endian cannot be safely detected, the result of + * calling the exp(x) implementation in the standard math library will be returned. + * + * \param x argument + * \return value of e^x as double precision number */ + + KOKKOS_INLINE_FUNCTION + static double fm_exp(double x) + { + #if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + if (x < -1022.0/FM_DOUBLE_LOG2OFE) return 0; + if (x > 1023.0/FM_DOUBLE_LOG2OFE) return INFINITY; + return exp2_x86(FM_DOUBLE_LOG2OFE * x); + #else + return ::exp(x); + #endif + } + // support function for scaled error function complement extern double erfcx_y100(const double y100); - // fast 2**x function without argument checks for little endian CPUs - extern double exp2_x86(double x); - - // scaled error function complement exp(x*x)*erfc(x) for coul/long styles + /*! Fast scaled error function complement exp(x*x)*erfc(x) for coul/long styles + * + * This is a portable fast implementation of exp(x*x)*erfc(x) that can be used + * in coul/long pair styles as a replacement for the polynomial expansion that + * is/was widely used. Unlike the polynomial expansion, that is only accurate + * at the level of single precision floating point it provides full double precision + * accuracy, but at comparable speed (unlike the erfc() implementation shipped + * with GNU standard math library). + * + * \param x argument + * \return value of e^(x*x)*erfc(x) */ static inline double my_erfcx(const double x) { - if (x >= 0.0) return erfcx_y100(400.0/(4.0+x)); - else return 2.0*exp(x*x) - erfcx_y100(400.0/(4.0-x)); + if (x >= 0.0) + return erfcx_y100(400.0 / (4.0 + x)); + else + return 2.0 * exp(x * x) - erfcx_y100(400.0 / (4.0 - x)); } - // exp(-x*x) for coul/long styles + /*! Fast implementation of exp(-x*x) for little endian CPUs for coul/long styles + * + * This function implements an optimized version of exp(-x*x) based on exp2_x86() + * for use with little endian CPUs. If little endian cannot be safely detected, + * the result of calling the exp(-x*x) implementation in the standard math + * library will be returned. + * + * \param x argument + * \return value of e^(-x*x) as double precision number */ static inline double expmsq(double x) { x *= x; x *= 1.4426950408889634074; // log_2(e) -#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ return (x < 1023.0) ? exp2_x86(-x) : 0.0; #else return (x < 1023.0) ? exp2(-x) : 0.0; #endif } - // x**2, use instead of pow(x,2.0) - KOKKOS_INLINE_FUNCTION - static double square(const double &x) { return x*x; } + /*! Fast inline version of pow(x, 2.0) + * + * \param x argument + * \return x*x */ - // x**3, use instead of pow(x,3.0) KOKKOS_INLINE_FUNCTION - static double cube(const double &x) { return x*x*x; } + static double square(const double &x) { return x * x; } + + /*! Fast inline version of pow(x, 3.0) + * + * \param x argument + * \return x*x */ + + KOKKOS_INLINE_FUNCTION + static double cube(const double &x) { return x * x * x; } + + /* Fast inline version of pow(-1.0, n) + * + * \param n argument (integer) + * \return -1 if n is odd, 1.0 if n is even */ - // return -1.0 for odd n, 1.0 for even n, like pow(-1.0,n) KOKKOS_INLINE_FUNCTION static double powsign(const int n) { return (n & 1) ? -1.0 : 1.0; } - // optimized version of pow(x,n) with n being integer - // up to 10x faster than pow(x,y) + /* Fast inline version of pow(x,n) for integer n + * + * This is a version of pow(x,n) optimized for n being integer. + * Speedups of up to 10x faster than pow(x,y) have been measured. + * + * \param n argument (integer) + * \return value of x^n */ KOKKOS_INLINE_FUNCTION - static double powint(const double &x, const int n) { - double yy,ww; + static double powint(const double &x, const int n) + { + double yy, ww; if (x == 0.0) return 0.0; int nn = (n > 0) ? n : -n; ww = x; - for (yy = 1.0; nn != 0; nn >>= 1, ww *=ww) + for (yy = 1.0; nn != 0; nn >>= 1, ww *= ww) if (nn & 1) yy *= ww; - return (n > 0) ? yy : 1.0/yy; + return (n > 0) ? yy : 1.0 / yy; } - // optimized version of (sin(x)/x)**n with n being a _positive_ integer + /* Fast inline version of (sin(x)/x)^n as used by PPPM kspace styles + * + * This is an optimized function to compute (sin(x)/x)^n as frequently used by PPPM. + * + * \param n argument (integer). Expected to be positive. + * \return value of (sin(x)/x)^n */ KOKKOS_INLINE_FUNCTION - static double powsinxx(const double &x, int n) { - double yy,ww; + static double powsinxx(const double &x, int n) + { + double yy, ww; if (x == 0.0) return 1.0; - ww = sin(x)/x; + ww = sin(x) / x; - for (yy = 1.0; n != 0; n >>= 1, ww *=ww) + for (yy = 1.0; n != 0; n >>= 1, ww *= ww) if (n & 1) yy *= ww; return yy; } -} -} +} // namespace MathSpecialKokkos +} // namespace LAMMPS_NS #endif diff --git a/src/KOKKOS/meam_dens_final_kokkos.h b/src/KOKKOS/meam_dens_final_kokkos.h new file mode 100644 index 0000000000..a3b95e837d --- /dev/null +++ b/src/KOKKOS/meam_dens_final_kokkos.h @@ -0,0 +1,164 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "meam_kokkos.h" +#include "math_special.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +template +void +MEAMKokkos::meam_dens_final(int nlocal, int eflag_either, int eflag_global, int eflag_atom, + typename ArrayTypes::t_efloat_1d eatom, int ntype, typename AT::t_int_1d type, typename AT::t_int_1d d_map, typename AT::t_int_2d d_scale, int& errorflag, EV_FLOAT &ev_all) +{ + EV_FLOAT ev; + this->eflag_either = eflag_either; + this->eflag_global = eflag_global; + this->eflag_atom = eflag_atom; + this->d_eatom = eatom; + this->ntype = ntype; + this->type = type; + this->d_map = d_map; + this->d_scale = d_scale; + + Kokkos::deep_copy(d_errorflag,0); + + // Complete the calculation of density + + copymode = 1; + Kokkos::parallel_reduce(Kokkos::RangePolicy(0,nlocal),*this,ev); + ev_all.evdwl += ev.evdwl; + copymode = 0; + + auto h_errorflag = Kokkos::create_mirror_view_and_copy(LMPHostType(),d_errorflag); + errorflag = h_errorflag(); +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void MEAMKokkos::operator()(TagMEAMDensFinal, const int &i, EV_FLOAT& ev) const { + + F_FLOAT rhob, G, dG, Gbar, dGbar, gam, shp[3], Z; + F_FLOAT denom, rho_bkgd, Fl; + double scaleii; + + int elti = d_map[type[i]]; + if (elti >= 0) { + scaleii = d_scale(type[i],type[i]); + d_rho1[i] = 0.0; + d_rho2[i] = -1.0 / 3.0 * d_arho2b[i] * d_arho2b[i]; + d_rho3[i] = 0.0; + for (int m = 0; m < 3; m++) { + d_rho1[i] += d_arho1(i,m) * d_arho1(i,m); + d_rho3[i] -= 3.0 / 5.0 * d_arho3b(i,m) * d_arho3b(i,m); + } + for (int m = 0; m < 6; m++) + d_rho2[i] += v2D[m] * d_arho2(i,m) * d_arho2(i,m); + for (int m = 0; m < 10; m++) + d_rho3[i] += v3D[m] * d_arho3(i,m) * d_arho3(i,m); + + if (d_rho0[i] > 0.0) { + if (ialloy == 1) { + d_t_ave(i,0) = fdiv_zero_kk(d_t_ave(i,0), d_tsq_ave(i,0)); + d_t_ave(i,1) = fdiv_zero_kk(d_t_ave(i,1), d_tsq_ave(i,1)); + d_t_ave(i,2) = fdiv_zero_kk(d_t_ave(i,2), d_tsq_ave(i,2)); + } else if (ialloy == 2) { + d_t_ave(i,0) = t1_meam[elti]; + d_t_ave(i,1) = t2_meam[elti]; + d_t_ave(i,2) = t3_meam[elti]; + } else { + d_t_ave(i,0) /= d_rho0[i]; + d_t_ave(i,1) /= d_rho0[i]; + d_t_ave(i,2) /= d_rho0[i]; + } + } + + d_gamma[i] = d_t_ave(i,0) * d_rho1[i] + d_t_ave(i,1) * d_rho2[i] + d_t_ave(i,2) * d_rho3[i]; + + if (d_rho0[i] > 0.0) + d_gamma[i] /= (d_rho0[i] * d_rho0[i]); + + Z = get_Zij(lattce_meam[elti][elti]); + + G = G_gam(d_gamma[i], ibar_meam[elti], d_errorflag()); + if (d_errorflag() != 0) + return; + + get_shpfcn(lattce_meam[elti][elti], stheta_meam[elti][elti], ctheta_meam[elti][elti], shp); + if (ibar_meam[elti] <= 0) { + Gbar = 1.0; + dGbar = 0.0; + } else { + if (mix_ref_t == 1) + gam = (d_t_ave(i,0) * shp[0] + d_t_ave(i,1) * shp[1] + d_t_ave(i,2) * shp[2]) / (Z * Z); + else + gam = (t1_meam[elti] * shp[0] + t2_meam[elti] * shp[1] + t3_meam[elti] * shp[2]) / + (Z * Z); + Gbar = G_gam(gam, ibar_meam[elti], d_errorflag()); + } + d_rho[i] = d_rho0[i] * G; + + if (mix_ref_t == 1) { + if (ibar_meam[elti] <= 0) { + Gbar = 1.0; + dGbar = 0.0; + } else { + gam = (d_t_ave(i,0) * shp[0] + d_t_ave(i,1) * shp[1] + d_t_ave(i,2) * shp[2]) / (Z * Z); + Gbar = dG_gam(gam, ibar_meam[elti], dGbar); + } + rho_bkgd = rho0_meam[elti] * Z * Gbar; + } else { + if (bkgd_dyn == 1) + rho_bkgd = rho0_meam[elti] * Z; + else + rho_bkgd = rho_ref_meam[elti]; + } + rhob = d_rho[i] / rho_bkgd; + denom = 1.0 / rho_bkgd; + + G = dG_gam(d_gamma[i], ibar_meam[elti], dG); + + d_dgamma1[i] = (G - 2 * dG * d_gamma[i]) * denom; + + if (!iszero_kk(d_rho0[i])) + d_dgamma2[i] = (dG / d_rho0[i]) * denom; + else + d_dgamma2[i] = 0.0; + + // dgamma3 is nonzero only if we are using the "mixed" rule for + // computing t in the reference system (which is not correct, but + // included for backward compatibility + if (mix_ref_t == 1) + d_dgamma3[i] = d_rho0[i] * G * dGbar / (Gbar * Z * Z) * denom; + else + d_dgamma3[i] = 0.0; + + Fl = embedding(A_meam[elti], Ec_meam[elti][elti], rhob, d_frhop[i]); + + if (eflag_either) { + Fl *= scaleii; + if (eflag_global) { + ev.evdwl += Fl; + } + if (eflag_atom) { + d_eatom[i] += Fl; + } + } + } +} + diff --git a/src/KOKKOS/meam_dens_init_kokkos.h b/src/KOKKOS/meam_dens_init_kokkos.h new file mode 100644 index 0000000000..4342cc1ba1 --- /dev/null +++ b/src/KOKKOS/meam_dens_init_kokkos.h @@ -0,0 +1,602 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "meam_kokkos.h" +#include "math_special_kokkos.h" + +using namespace LAMMPS_NS; +using namespace MathSpecialKokkos; + +/* ---------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION +void MEAMKokkos::operator()(TagMEAMDensInit, const int &i) const { + int ii, offsetval; + ii = d_ilist_half[i]; + offsetval = d_offset[i]; + // compute screening function and derivatives + this->template getscreen(ii, offsetval, x, d_numneigh_half, + d_numneigh_full, ntype, type, d_map); + + // calculate intermediate density terms to be communicated + this->template calc_rho1(ii, ntype, type, d_map, x, d_numneigh_half, offsetval); +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void MEAMKokkos::operator()(TagMEAMZero, const int &i) const { + d_rho0[i] = 0.0; + d_arho2b[i] = 0.0; + d_arho1(i,0) = d_arho1(i,1) = d_arho1(i,2) = 0.0; + for (int j = 0; j < 6; j++) + d_arho2(i,j) = 0.0; + for (int j = 0; j < 10; j++) + d_arho3(i,j) = 0.0; + d_arho3b(i,0) = d_arho3b(i,1) = d_arho3b(i,2) = 0.0; + d_t_ave(i,0) = d_t_ave(i,1) = d_t_ave(i,2) = 0.0; + d_tsq_ave(i,0) = d_tsq_ave(i,1) = d_tsq_ave(i,2) = 0.0; +} + +/* ---------------------------------------------------------------------- */ + +template +void +MEAMKokkos::meam_dens_setup(int atom_nmax, int nall, int n_neigh) +{ + MemoryKokkos *memoryKK = (MemoryKokkos *)memory; + + // grow local arrays if necessary + + if (atom_nmax > nmax) { + memoryKK->destroy_kokkos(k_rho,rho); + memoryKK->destroy_kokkos(k_rho0,rho0); + memoryKK->destroy_kokkos(k_rho1,rho1); + memoryKK->destroy_kokkos(k_rho2,rho2); + memoryKK->destroy_kokkos(k_rho3,rho3); + memoryKK->destroy_kokkos(k_frhop,frhop); + memoryKK->destroy_kokkos(k_gamma,gamma); + memoryKK->destroy_kokkos(k_dgamma1,dgamma1); + memoryKK->destroy_kokkos(k_dgamma2,dgamma2); + memoryKK->destroy_kokkos(k_dgamma3,dgamma3); + memoryKK->destroy_kokkos(k_arho2b,arho2b); + memoryKK->destroy_kokkos(k_arho1,arho1); + memoryKK->destroy_kokkos(k_arho2,arho2); + memoryKK->destroy_kokkos(k_arho3,arho3); + memoryKK->destroy_kokkos(k_arho3b,arho3b); + memoryKK->destroy_kokkos(k_t_ave,t_ave); + memoryKK->destroy_kokkos(k_tsq_ave,tsq_ave); + + nmax = atom_nmax; +// memory->create(rho, nmax, "pair:rho"); + k_rho = DAT::tdual_ffloat_1d("pair:rho",nmax); + d_rho = k_rho.template view(); + h_rho = k_rho.h_view; + // memory->create(rho0, nmax, "pair:rho0"); + k_rho0 = DAT::tdual_ffloat_1d("pair:rho0",nmax); + d_rho0 = k_rho0.template view(); + h_rho0 = k_rho0.h_view; + //memory->create(rho1, nmax, "pair:rho1"); + k_rho1 = DAT::tdual_ffloat_1d("pair:rho1",nmax); + d_rho1 = k_rho1.template view(); + h_rho1 = k_rho1.h_view; + //memory->create(rho2, nmax, "pair:rho2"); + k_rho2 = DAT::tdual_ffloat_1d("pair:rho2",nmax); + d_rho2 = k_rho2.template view(); + h_rho2 = k_rho2.h_view; + //memory->create(rho3, nmax, "pair:rho3"); + k_rho3 = DAT::tdual_ffloat_1d("pair:rho3",nmax); + d_rho3 = k_rho3.template view(); + h_rho3 = k_rho3.h_view; + //memory->create(frhop, nmax, "pair:frhop"); + k_frhop = DAT::tdual_ffloat_1d("pair:frhop",nmax); + d_frhop = k_frhop.template view(); + h_frhop = k_frhop.h_view; + //memory->create(gamma, nmax, "pair:gamma"); + k_gamma = DAT::tdual_ffloat_1d("pair:gamma",nmax); + d_gamma = k_gamma.template view(); + h_gamma = k_gamma.h_view; + //memory->create(dgamma1, nmax, "pair:dgamma1"); + k_dgamma1 = DAT::tdual_ffloat_1d("pair:dgamma1",nmax); + d_dgamma1 = k_dgamma1.template view(); + h_dgamma1 = k_dgamma1.h_view; + //memory->create(dgamma2, nmax, "pair:dgamma2"); + k_dgamma2 = DAT::tdual_ffloat_1d("pair:dgamma2",nmax); + d_dgamma2 = k_dgamma2.template view(); + h_dgamma2 = k_dgamma2.h_view; + //memory->create(dgamma3, nmax, "pair:dgamma3"); + k_dgamma3 = DAT::tdual_ffloat_1d("pair:dgamma3",nmax); + d_dgamma3 = k_dgamma3.template view(); + h_dgamma3 = k_dgamma3.h_view; + //memory->create(arho2b, nmax, "pair:arho2b"); + k_arho2b = DAT::tdual_ffloat_1d("pair:arho2b",nmax); + d_arho2b = k_arho2b.template view(); + h_arho2b = k_arho2b.h_view; + //memory->create(arho1, nmax, 3, "pair:arho1"); + k_arho1 = DAT::tdual_ffloat_2d("pair:arho1",nmax, 3); + d_arho1 = k_arho1.template view(); + h_arho1 = k_arho1.h_view; + //memory->create(arho2, nmax, 6, "pair:arho2"); + k_arho2 = DAT::tdual_ffloat_2d("pair:arho2",nmax, 6); + d_arho2 = k_arho2.template view(); + h_arho2 = k_arho2.h_view; + //memory->create(arho3, nmax, 10, "pair:arho3"); + k_arho3 = DAT::tdual_ffloat_2d("pair:arho3",nmax, 10); + d_arho3 = k_arho3.template view(); + h_arho3 = k_arho3.h_view; + //memory->create(arho3b, nmax, 3, "pair:arho3b"); + k_arho3b = DAT::tdual_ffloat_2d("pair:arho3b",nmax, 3); + d_arho3b = k_arho3b.template view(); + h_arho3b = k_arho3b.h_view; + //memory->create(t_ave, nmax, 3, "pair:t_ave"); + k_t_ave = DAT::tdual_ffloat_2d("pair:t_ave",nmax, 3); + d_t_ave = k_t_ave.template view(); + h_t_ave = k_t_ave.h_view; + //memory->create(tsq_ave, nmax, 3, "pair:tsq_ave"); + k_tsq_ave = DAT::tdual_ffloat_2d("pair:tsq_ave",nmax, 3); + d_tsq_ave = k_tsq_ave.template view(); + h_tsq_ave = k_tsq_ave.h_view; + } + + if (n_neigh > maxneigh) { + memoryKK->destroy_kokkos(k_scrfcn,scrfcn); + memoryKK->destroy_kokkos(k_dscrfcn,dscrfcn); + memoryKK->destroy_kokkos(k_fcpair,fcpair); + maxneigh = n_neigh; + // memory->create(scrfcn, maxneigh, "pair:scrfcn"); + k_scrfcn = DAT::tdual_ffloat_1d("pair:scrfcn", maxneigh); + d_scrfcn = k_scrfcn.template view(); + h_scrfcn = k_scrfcn.h_view; + //memory->create(dscrfcn, maxneigh, "pair:dscrfcn"); + k_dscrfcn = DAT::tdual_ffloat_1d("pair:dscrfcn", maxneigh); + d_dscrfcn = k_dscrfcn.template view(); + h_dscrfcn = k_dscrfcn.h_view; + //memory->create(fcpair, maxneigh, "pair:fcpair"); + k_fcpair = DAT::tdual_ffloat_1d("pair:fcpair", maxneigh); + d_fcpair = k_fcpair.template view(); + h_fcpair = k_fcpair.h_view; + } + + // zero out local arrays + + copymode = 1; + Kokkos::parallel_for(Kokkos::RangePolicy(0, nall),*this); + copymode = 0; +} + +/* ---------------------------------------------------------------------- */ + +template +void +MEAMKokkos::meam_dens_init(int inum_half, int ntype, typename AT::t_int_1d type, typename AT::t_int_1d d_map, typename AT::t_x_array x, typename AT::t_int_1d d_numneigh_half, typename AT::t_int_1d d_numneigh_full, + typename AT::t_int_1d d_ilist_half, typename AT::t_neighbors_2d d_neighbors_half, typename AT::t_neighbors_2d d_neighbors_full, typename AT::t_int_1d d_offset, int neighflag, int need_dup) +{ + this->ntype = ntype; + this->type = type; + this->d_map = d_map; + this->x = x; + this->d_numneigh_half = d_numneigh_half; + this->d_numneigh_full = d_numneigh_full; + this->d_ilist_half = d_ilist_half; + this->d_neighbors_half = d_neighbors_half; + this->d_neighbors_full = d_neighbors_full; + this->d_offset = d_offset; + this->nlocal = nlocal; + + if (need_dup) { + dup_rho0 = Kokkos::Experimental::create_scatter_view(d_rho0); + dup_arho2b = Kokkos::Experimental::create_scatter_view(d_arho2b); + dup_arho1 = Kokkos::Experimental::create_scatter_view(d_arho1); + dup_arho2 = Kokkos::Experimental::create_scatter_view(d_arho2); + dup_arho3 = Kokkos::Experimental::create_scatter_view(d_arho3); + dup_arho3b = Kokkos::Experimental::create_scatter_view(d_arho3b); + dup_t_ave = Kokkos::Experimental::create_scatter_view(d_t_ave); + dup_tsq_ave = Kokkos::Experimental::create_scatter_view(d_tsq_ave); + } else { + ndup_rho0 = Kokkos::Experimental::create_scatter_view(d_rho0); + ndup_arho2b = Kokkos::Experimental::create_scatter_view(d_arho2b); + ndup_arho1 = Kokkos::Experimental::create_scatter_view(d_arho1); + ndup_arho2 = Kokkos::Experimental::create_scatter_view(d_arho2); + ndup_arho3 = Kokkos::Experimental::create_scatter_view(d_arho3); + ndup_arho3b = Kokkos::Experimental::create_scatter_view(d_arho3b); + ndup_t_ave = Kokkos::Experimental::create_scatter_view(d_t_ave); + ndup_tsq_ave = Kokkos::Experimental::create_scatter_view(d_tsq_ave); + } + + copymode = 1; + if (neighflag == HALF) + Kokkos::parallel_for(Kokkos::RangePolicy >(0,inum_half),*this); + else if (neighflag == HALFTHREAD) + Kokkos::parallel_for(Kokkos::RangePolicy >(0,inum_half),*this); + copymode = 0; + + if (need_dup) { + Kokkos::Experimental::contribute(d_rho0, dup_rho0); + Kokkos::Experimental::contribute(d_arho2b, dup_arho2b); + Kokkos::Experimental::contribute(d_arho1, dup_arho1); + Kokkos::Experimental::contribute(d_arho2, dup_arho2); + Kokkos::Experimental::contribute(d_arho3, dup_arho3); + Kokkos::Experimental::contribute(d_arho3b, dup_arho3b); + Kokkos::Experimental::contribute(d_t_ave, dup_t_ave); + Kokkos::Experimental::contribute(d_tsq_ave, dup_tsq_ave); + + // free duplicated memory + dup_rho0 = decltype(dup_rho0)(); + dup_arho2b = decltype(dup_arho2b)(); + dup_arho1 = decltype(dup_arho1)(); + dup_arho2 = decltype(dup_arho2)(); + dup_arho3 = decltype(dup_arho3)(); + dup_arho3b = decltype(dup_arho3b)(); + dup_t_ave = decltype(dup_t_ave)(); + dup_tsq_ave = decltype(dup_tsq_ave)(); + } +} + +/* ---------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION +void +MEAMKokkos::getscreen(int i, int offset, typename AT::t_x_array x, typename AT::t_int_1d d_numneigh_half, + typename AT::t_int_1d d_numneigh_full, int /*ntype*/, typename AT::t_int_1d type, typename AT::t_int_1d d_map) +const { + const double drinv = 1.0 / delr_meam; + const int elti = d_map[type[i]]; + if (elti < 0) return; + + const double xitmp = x(i,0); + const double yitmp = x(i,1); + const double zitmp = x(i,2); + + for (int jn = 0; jn < d_numneigh_half[i]; jn++) { + const int j = d_neighbors_half(i,jn); + + const int eltj = d_map[type[j]]; + if (eltj < 0) continue; + + // First compute screening function itself, sij + const double xjtmp = x(j,0); + const double yjtmp = x(j,1); + const double zjtmp = x(j,2); + const double delxij = xjtmp - xitmp; + const double delyij = yjtmp - yitmp; + const double delzij = zjtmp - zitmp; + + const double rij2 = delxij * delxij + delyij * delyij + delzij * delzij; + + if (rij2 > cutforcesq) { + d_dscrfcn[offset+jn] = 0.0; + d_scrfcn[offset+jn] = 0.0; + d_fcpair[offset+jn] = 0.0; + continue; + } + + // Now compute derivatives + const double rbound = ebound_meam[elti][eltj] * rij2; + const double rij = sqrt(rij2); + const double rnorm = (cutforce - rij) * drinv; + double sij = 1.0; + + // if rjk2 > ebound*rijsq, atom k is definitely outside the ellipse + for (int kn = 0; kn < d_numneigh_full[i]; kn++) { + int k = d_neighbors_full(i,kn); + if (k == j) continue; + int eltk = d_map[type[k]]; + if (eltk < 0) continue; + + const double xktmp = x(k,0); + const double yktmp = x(k,1); + const double zktmp = x(k,2); + + const double delxjk = xktmp - xjtmp; + const double delyjk = yktmp - yjtmp; + const double delzjk = zktmp - zjtmp; + const double rjk2 = delxjk * delxjk + delyjk * delyjk + delzjk * delzjk; + if (rjk2 > rbound) continue; + + const double delxik = xktmp - xitmp; + const double delyik = yktmp - yitmp; + const double delzik = zktmp - zitmp; + const double rik2 = delxik * delxik + delyik * delyik + delzik * delzik; + if (rik2 > rbound) continue; + + const double xik = rik2 / rij2; + const double xjk = rjk2 / rij2; + const double a = 1 - (xik - xjk) * (xik - xjk); + // if a < 0, then ellipse equation doesn't describe this case and + // atom k can't possibly screen i-j + if (a <= 0.0) continue; + + double cikj = (2.0 * (xik + xjk) + a - 2.0) / a; + const double Cmax = Cmax_meam[elti][eltj][eltk]; + const double Cmin = Cmin_meam[elti][eltj][eltk]; + double sikj; + if (cikj >= Cmax) continue; + // note that cikj may be slightly negative (within numerical + // tolerance) if atoms are colinear, so don't reject that case here + // (other negative cikj cases were handled by the test on "a" above) + else if (cikj <= Cmin) { + sij = 0.0; + break; + } else { + const double delc = Cmax - Cmin; + cikj = (cikj - Cmin) / delc; + sikj = fcut(cikj); + } + sij *= sikj; + } + + double dfc; + const double fc = dfcut(rnorm, dfc); + const double fcij = fc; + const double dfcij = dfc * drinv; + + // Now compute derivatives + d_dscrfcn[offset+jn] = 0.0; + const double sfcij = sij * fcij; + if (!iszero_kk(sfcij) && !isone_kk(sfcij)) { + for (int kn = 0; kn < d_numneigh_full[i]; kn++) { + const int k = d_neighbors_full(i,kn); + if (k == j) continue; + const int eltk = d_map[type[k]]; + if (eltk < 0) continue; + + const double delxjk = x(k,0) - xjtmp; + const double delyjk = x(k,1) - yjtmp; + const double delzjk = x(k,2) - zjtmp; + const double rjk2 = delxjk * delxjk + delyjk * delyjk + delzjk * delzjk; + if (rjk2 > rbound) continue; + + const double delxik = x(k,0) - xitmp; + const double delyik = x(k,1) - yitmp; + const double delzik = x(k,2) - zitmp; + const double rik2 = delxik * delxik + delyik * delyik + delzik * delzik; + if (rik2 > rbound) continue; + + const double xik = rik2 / rij2; + const double xjk = rjk2 / rij2; + const double a = 1 - (xik - xjk) * (xik - xjk); + // if a < 0, then ellipse equation doesn't describe this case and + // atom k can't possibly screen i-j + if (a <= 0.0) continue; + + double cikj = (2.0 * (xik + xjk) + a - 2.0) / a; + const double Cmax = Cmax_meam[elti][eltj][eltk]; + const double Cmin = Cmin_meam[elti][eltj][eltk]; + if (cikj >= Cmax) { + continue; + // Note that cikj may be slightly negative (within numerical + // tolerance) if atoms are colinear, so don't reject that case + // here + // (other negative cikj cases were handled by the test on "a" + // above) + // Note that we never have 0 +template +KOKKOS_INLINE_FUNCTION +void +MEAMKokkos::calc_rho1(int i, int /*ntype*/, typename AT::t_int_1d type, typename AT::t_int_1d d_map, typename AT::t_x_array x, typename AT::t_int_1d d_numneigh, + int offset) const +{ + // The rho0, etc. arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial + + auto v_rho0 = ScatterViewHelper,decltype(dup_rho0),decltype(ndup_rho0)>::get(dup_rho0,ndup_rho0); + auto a_rho0 = v_rho0.template access>(); + auto v_arho2b = ScatterViewHelper,decltype(dup_arho2b),decltype(ndup_arho2b)>::get(dup_arho2b,ndup_arho2b); + auto a_arho2b = v_arho2b.template access>(); + auto v_arho1 = ScatterViewHelper,decltype(dup_arho1),decltype(ndup_arho1)>::get(dup_arho1,ndup_arho1); + auto a_arho1 = v_arho1.template access>(); + auto v_arho2 = ScatterViewHelper,decltype(dup_arho2),decltype(ndup_arho2)>::get(dup_arho2,ndup_arho2); + auto a_arho2 = v_arho2.template access>(); + auto v_arho3 = ScatterViewHelper,decltype(dup_arho3),decltype(ndup_arho3)>::get(dup_arho3,ndup_arho3); + auto a_arho3 = v_arho3.template access>(); + auto v_arho3b = ScatterViewHelper,decltype(dup_arho3b),decltype(ndup_arho3b)>::get(dup_arho3b,ndup_arho3b); + auto a_arho3b = v_arho3b.template access>(); + auto v_t_ave = ScatterViewHelper,decltype(dup_t_ave),decltype(ndup_t_ave)>::get(dup_t_ave,ndup_t_ave); + auto a_t_ave = v_t_ave.template access>(); + auto v_tsq_ave = ScatterViewHelper,decltype(dup_tsq_ave),decltype(ndup_tsq_ave)>::get(dup_tsq_ave,ndup_tsq_ave); + auto a_tsq_ave = v_tsq_ave.template access>(); + + const int elti = d_map[type[i]]; + const double xtmp = x(i,0); + const double ytmp = x(i,1); + const double ztmp = x(i,2); + for (int jn = 0; jn < d_numneigh[i]; jn++) { + if (!iszero_kk(d_scrfcn[offset+jn])) { + const int j = d_neighbors_half(i,jn); + const double sij = d_scrfcn[offset+jn] * d_fcpair[offset+jn]; + double delij[3]; + delij[0] = x(j,0) - xtmp; + delij[1] = x(j,1) - ytmp; + delij[2] = x(j,2) - ztmp; + const double rij2 = delij[0] * delij[0] + delij[1] * delij[1] + delij[2] * delij[2]; + if (rij2 < cutforcesq) { + const int eltj = d_map[type[j]]; + const double rij = sqrt(rij2); + const double ai = rij / re_meam[elti][elti] - 1.0; + const double aj = rij / re_meam[eltj][eltj] - 1.0; + const double ro0i = rho0_meam[elti]; + const double ro0j = rho0_meam[eltj]; + const double rhoa0j = ro0j * MathSpecialKokkos::fm_exp(-beta0_meam[eltj] * aj) * sij; + double rhoa1j = ro0j * MathSpecialKokkos::fm_exp(-beta1_meam[eltj] * aj) * sij; + double rhoa2j = ro0j * MathSpecialKokkos::fm_exp(-beta2_meam[eltj] * aj) * sij; + double rhoa3j = ro0j * MathSpecialKokkos::fm_exp(-beta3_meam[eltj] * aj) * sij; + const double rhoa0i = ro0i * MathSpecialKokkos::fm_exp(-beta0_meam[elti] * ai) * sij; + double rhoa1i = ro0i * MathSpecialKokkos::fm_exp(-beta1_meam[elti] * ai) * sij; + double rhoa2i = ro0i * MathSpecialKokkos::fm_exp(-beta2_meam[elti] * ai) * sij; + double rhoa3i = ro0i * MathSpecialKokkos::fm_exp(-beta3_meam[elti] * ai) * sij; + if (ialloy == 1) { + rhoa1j *= t1_meam[eltj]; + rhoa2j *= t2_meam[eltj]; + rhoa3j *= t3_meam[eltj]; + rhoa1i *= t1_meam[elti]; + rhoa2i *= t2_meam[elti]; + rhoa3i *= t3_meam[elti]; + } + a_rho0[i] += rhoa0j; + a_rho0[j] += rhoa0i; + // For ialloy = 2, use single-element value (not average) + if (ialloy != 2) { + a_t_ave(i,0) += t1_meam[eltj] * rhoa0j; + a_t_ave(i,1) += t2_meam[eltj] * rhoa0j; + a_t_ave(i,2) += t3_meam[eltj] * rhoa0j; + a_t_ave(j,0) += t1_meam[elti] * rhoa0i; + a_t_ave(j,1) += t2_meam[elti] * rhoa0i; + a_t_ave(j,2) += t3_meam[elti] * rhoa0i; + } + if (ialloy == 1) { + a_tsq_ave(i,0) += t1_meam[eltj] * t1_meam[eltj] * rhoa0j; + a_tsq_ave(i,1) += t2_meam[eltj] * t2_meam[eltj] * rhoa0j; + a_tsq_ave(i,2) += t3_meam[eltj] * t3_meam[eltj] * rhoa0j; + a_tsq_ave(j,0) += t1_meam[elti] * t1_meam[elti] * rhoa0i; + a_tsq_ave(j,1) += t2_meam[elti] * t2_meam[elti] * rhoa0i; + a_tsq_ave(j,2) += t3_meam[elti] * t3_meam[elti] * rhoa0i; + } + a_arho2b[i] += rhoa2j; + a_arho2b[j] += rhoa2i; + + const double A1j = rhoa1j / rij; + const double A2j = rhoa2j / rij2; + const double A3j = rhoa3j / (rij2 * rij); + const double A1i = rhoa1i / rij; + const double A2i = rhoa2i / rij2; + const double A3i = rhoa3i / (rij2 * rij); + int nv2 = 0; + int nv3 = 0; + for (int m = 0; m < 3; m++) { + a_arho1(i,m) += A1j * delij[m]; + a_arho1(j,m) += -A1i * delij[m]; + a_arho3b(i,m) += rhoa3j * delij[m] / rij; + a_arho3b(j,m) += -rhoa3i * delij[m] / rij; + for (int n = m; n < 3; n++) { + a_arho2(i,nv2) += A2j * delij[m] * delij[n]; + a_arho2(j,nv2) += A2i * delij[m] * delij[n]; + nv2++; + for (int p = n; p < 3; p++) { + a_arho3(i,nv3) += A3j * delij[m] * delij[n] * delij[p]; + a_arho3(j,nv3) += -A3i * delij[m] * delij[n] * delij[p]; + nv3++; + } + } + } + } + } + } +} + +/* ---------------------------------------------------------------------- */ + +//Cutoff function and derivative + +template +KOKKOS_INLINE_FUNCTION +double MEAMKokkos::dfcut(const double xi, double& dfc) const +{ + if (xi >= 1.0) { + dfc = 0.0; + return 1.0; + } else if (xi <= 0.0) { + dfc = 0.0; + return 0.0; + } else { + const double a = 1.0 - xi; + const double a3 = a * a * a; + const double a4 = a * a3; + const double a1m4 = 1.0 - a4; + + dfc = 8 * a1m4 * a3; + return a1m4*a1m4; + } +} + + //----------------------------------------------------------------------------- + // Derivative of Cikj w.r.t. rij + // Inputs: rij,rij2,rik2,rjk2 + +template +KOKKOS_INLINE_FUNCTION +double MEAMKokkos::dCfunc(const double rij2, const double rik2, const double rjk2) const +{ + const double rij4 = rij2 * rij2; + const double a = rik2 - rjk2; + const double b = rik2 + rjk2; + const double asq = a*a; + double denom = rij4 - asq; + denom = denom * denom; + return -4 * (-2 * rij2 * asq + rij4 * b + asq * b) / denom; +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void MEAMKokkos::dCfunc2(const double rij2, const double rik2, const double rjk2, double& dCikj1, double& dCikj2) const +{ + const double rij4 = rij2 * rij2; + const double rik4 = rik2 * rik2; + const double rjk4 = rjk2 * rjk2; + const double a = rik2 - rjk2; + double denom = rij4 - a * a; + denom = denom * denom; + dCikj1 = 4 * rij2 * (rij4 + rik4 + 2 * rik2 * rjk2 - 3 * rjk4 - 2 * rij2 * a) / denom; + dCikj2 = 4 * rij2 * (rij4 - 3 * rik4 + 2 * rik2 * rjk2 + rjk4 + 2 * rij2 * a) / denom; +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +double MEAMKokkos::fcut(const double xi) const +{ + double a; + if (xi >= 1.0) + return 1.0; + else if (xi <= 0.0) + return 0.0; + else { + // ( 1.d0 - (1.d0 - xi)**4 )**2, but with better codegen + a = 1.0 - xi; + a *= a; a *= a; + a = 1.0 - a; + return a * a; + } +} + diff --git a/src/KOKKOS/meam_force_kokkos.h b/src/KOKKOS/meam_force_kokkos.h new file mode 100644 index 0000000000..e7e6c64231 --- /dev/null +++ b/src/KOKKOS/meam_force_kokkos.h @@ -0,0 +1,613 @@ +#include "math_special_kokkos.h" +#include "meam_kokkos.h" +#include + +using namespace LAMMPS_NS; +using namespace MathSpecialKokkos; + +template +void MEAMKokkos::meam_force( + int inum_half, int eflag_global, int eflag_atom, int vflag_global, int vflag_atom, + typename ArrayTypes::t_efloat_1d eatom, int ntype, typename AT::t_int_1d type, + typename AT::t_int_1d d_map, typename AT::t_x_array x, typename AT::t_int_1d numneigh, + typename AT::t_int_1d numneigh_full, typename AT::t_f_array f, + typename ArrayTypes::t_virial_array vatom, typename AT::t_int_1d d_ilist_half, + typename AT::t_int_1d d_offset, typename AT::t_neighbors_2d d_neighbors_half, + typename AT::t_neighbors_2d d_neighbors_full, int neighflag, int need_dup, EV_FLOAT &ev_all) +{ + EV_FLOAT ev; + + this->eflag_either = eflag_either; + this->eflag_global = eflag_global; + this->eflag_atom = eflag_atom; + this->vflag_global = vflag_global; + this->vflag_atom = vflag_atom; + eflag_either = eflag_atom || eflag_global; + vflag_either = vflag_atom || vflag_global; + this->d_eatom = eatom; + this->ntype = ntype; + this->type = type; + this->d_map = d_map; + this->x = x; + this->d_numneigh_half = numneigh; + this->d_numneigh_full = numneigh_full; + this->d_neighbors_half = d_neighbors_half; + this->d_neighbors_full = d_neighbors_full; + this->f = f; + this->d_vatom = vatom; + this->d_ilist_half = d_ilist_half; + this->d_offset = d_offset; + + if (need_dup) { + dup_f = Kokkos::Experimental::create_scatter_view(f); + if (eflag_atom) + dup_eatom = Kokkos::Experimental::create_scatter_view< + Kokkos::Experimental::ScatterSum, Kokkos::Experimental::ScatterDuplicated>(d_eatom); + if (vflag_atom) + dup_vatom = Kokkos::Experimental::create_scatter_view< + Kokkos::Experimental::ScatterSum, Kokkos::Experimental::ScatterDuplicated>(d_vatom); + } else { + ndup_f = + Kokkos::Experimental::create_scatter_view(f); + if (eflag_atom) + ndup_eatom = Kokkos::Experimental::create_scatter_view< + Kokkos::Experimental::ScatterSum, Kokkos::Experimental::ScatterNonDuplicated>(d_eatom); + if (vflag_atom) + ndup_vatom = Kokkos::Experimental::create_scatter_view< + Kokkos::Experimental::ScatterSum, Kokkos::Experimental::ScatterNonDuplicated>(d_vatom); + } + + copymode = 1; + if (neighflag == HALF) + Kokkos::parallel_reduce(Kokkos::RangePolicy>(0, inum_half), + *this, ev); + else if (neighflag == HALFTHREAD) + Kokkos::parallel_reduce(Kokkos::RangePolicy>(0, inum_half), + *this, ev); + ev_all += ev; + copymode = 0; + + if (need_dup) { + Kokkos::Experimental::contribute(f, dup_f); + if (eflag_atom) Kokkos::Experimental::contribute(d_eatom, dup_eatom); + if (vflag_atom) Kokkos::Experimental::contribute(d_vatom, dup_vatom); + + // free duplicated memory + dup_f = decltype(dup_f)(); + if (eflag_atom) dup_eatom = decltype(dup_eatom)(); + if (vflag_atom) dup_vatom = decltype(dup_vatom)(); + } +} + +template +template +KOKKOS_INLINE_FUNCTION void MEAMKokkos::operator()(TagMEAMForce, + const int &ii, EV_FLOAT &ev) const +{ + int i, j, jn, k, kn, kk, m, n, p, q; + int nv2, nv3, elti, eltj, eltk, ind; + X_FLOAT xitmp, yitmp, zitmp, delij[3]; + double rij2, rij, rij3; + double v[6], fi[3], fj[3]; + double third, sixth; + double pp, dUdrij, dUdsij, dUdrijm[3], force, forcem; + double recip, phi, phip; + double sij; + double a1, a1i, a1j, a2, a2i, a2j; + double a3i, a3j; + double shpi[3], shpj[3]; + double ai, aj, ro0i, ro0j, invrei, invrej; + double rhoa0j, drhoa0j, rhoa0i, drhoa0i; + double rhoa1j, drhoa1j, rhoa1i, drhoa1i; + double rhoa2j, drhoa2j, rhoa2i, drhoa2i; + double a3, a3a, rhoa3j, drhoa3j, rhoa3i, drhoa3i; + double drho0dr1, drho0dr2, drho0ds1, drho0ds2; + double drho1dr1, drho1dr2, drho1ds1, drho1ds2; + double drho1drm1[3], drho1drm2[3]; + double drho2dr1, drho2dr2, drho2ds1, drho2ds2; + double drho2drm1[3], drho2drm2[3]; + double drho3dr1, drho3dr2, drho3ds1, drho3ds2; + double drho3drm1[3], drho3drm2[3]; + double dt1dr1, dt1dr2, dt1ds1, dt1ds2; + double dt2dr1, dt2dr2, dt2ds1, dt2ds2; + double dt3dr1, dt3dr2, dt3ds1, dt3ds2; + double drhodr1, drhodr2, drhods1, drhods2, drhodrm1[3], drhodrm2[3]; + double arg; + double arg1i1, arg1j1, arg1i2, arg1j2, arg1i3, arg1j3, arg3i3, arg3j3; + double dsij1, dsij2, force1, force2; + double t1i, t2i, t3i, t1j, t2j, t3j; + int fnoffset; + + // The f, etc. arrays are duplicated for OpenMP, atomic for CUDA, and neither for Serial + + auto v_f = + ScatterViewHelper, decltype(dup_f), decltype(ndup_f)>::get( + dup_f, ndup_f); + auto a_f = v_f.template access>(); + auto v_eatom = ScatterViewHelper, decltype(dup_eatom), + decltype(ndup_eatom)>::get(dup_eatom, ndup_eatom); + auto a_eatom = v_eatom.template access>(); + auto v_vatom = ScatterViewHelper, decltype(dup_vatom), + decltype(ndup_vatom)>::get(dup_vatom, ndup_vatom); + auto a_vatom = v_vatom.template access>(); + + i = d_ilist_half[ii]; + fnoffset = d_offset[i]; + third = 1.0 / 3.0; + sixth = 1.0 / 6.0; + + elti = d_map[type[i]]; + if (elti < 0) return; + + xitmp = x(i, 0); + yitmp = x(i, 1); + zitmp = x(i, 2); + + // Treat each pair + for (jn = 0; jn < d_numneigh_half[i]; jn++) { + j = d_neighbors_half(i, jn); + eltj = d_map[type[j]]; + + if (!iszero_kk(d_scrfcn[fnoffset + jn]) && eltj >= 0) { + + sij = d_scrfcn[fnoffset + jn] * d_fcpair[fnoffset + jn]; + delij[0] = x(j, 0) - xitmp; + delij[1] = x(j, 1) - yitmp; + delij[2] = x(j, 2) - zitmp; + rij2 = delij[0] * delij[0] + delij[1] * delij[1] + delij[2] * delij[2]; + if (rij2 < cutforcesq) { + rij = sqrt(rij2); + recip = 1.0 / rij; + + // Compute phi and phip + ind = eltind[elti][eltj]; + pp = rij * rdrar; + kk = (int) pp; + kk = (kk <= (nrar - 2)) ? kk : nrar - 2; + pp = pp - kk; + pp = (pp <= 1.0) ? pp : 1.0; + phi = ((d_phirar3(ind, kk) * pp + d_phirar2(ind, kk)) * pp + d_phirar1(ind, kk)) * pp + + d_phirar(ind, kk); + phip = (d_phirar6(ind, kk) * pp + d_phirar5(ind, kk)) * pp + d_phirar4(ind, kk); + + if (eflag_either) { + double scaleij = d_scale(type[i], type[i]); + double phi_sc = phi * scaleij; + if (eflag_global) ev.evdwl += phi_sc * sij; + if (eflag_atom) { + a_eatom[i] += 0.5 * phi * sij; + a_eatom[j] += 0.5 * phi * sij; + } + } + + // write(1,*) "force_meamf: phi: ",phi + // write(1,*) "force_meamf: phip: ",phip + + // Compute pair densities and derivatives + invrei = 1.0 / re_meam[elti][elti]; + ai = rij * invrei - 1.0; + ro0i = rho0_meam[elti]; + rhoa0i = ro0i * MathSpecialKokkos::fm_exp(-beta0_meam[elti] * ai); + drhoa0i = -beta0_meam[elti] * invrei * rhoa0i; + rhoa1i = ro0i * MathSpecialKokkos::fm_exp(-beta1_meam[elti] * ai); + drhoa1i = -beta1_meam[elti] * invrei * rhoa1i; + rhoa2i = ro0i * MathSpecialKokkos::fm_exp(-beta2_meam[elti] * ai); + drhoa2i = -beta2_meam[elti] * invrei * rhoa2i; + rhoa3i = ro0i * MathSpecialKokkos::fm_exp(-beta3_meam[elti] * ai); + drhoa3i = -beta3_meam[elti] * invrei * rhoa3i; + + if (elti != eltj) { + invrej = 1.0 / re_meam[eltj][eltj]; + aj = rij * invrej - 1.0; + ro0j = rho0_meam[eltj]; + rhoa0j = ro0j * MathSpecialKokkos::fm_exp(-beta0_meam[eltj] * aj); + drhoa0j = -beta0_meam[eltj] * invrej * rhoa0j; + rhoa1j = ro0j * MathSpecialKokkos::fm_exp(-beta1_meam[eltj] * aj); + drhoa1j = -beta1_meam[eltj] * invrej * rhoa1j; + rhoa2j = ro0j * MathSpecialKokkos::fm_exp(-beta2_meam[eltj] * aj); + drhoa2j = -beta2_meam[eltj] * invrej * rhoa2j; + rhoa3j = ro0j * MathSpecialKokkos::fm_exp(-beta3_meam[eltj] * aj); + drhoa3j = -beta3_meam[eltj] * invrej * rhoa3j; + } else { + rhoa0j = rhoa0i; + drhoa0j = drhoa0i; + rhoa1j = rhoa1i; + drhoa1j = drhoa1i; + rhoa2j = rhoa2i; + drhoa2j = drhoa2i; + rhoa3j = rhoa3i; + drhoa3j = drhoa3i; + } + + const double t1mi = t1_meam[elti]; + const double t2mi = t2_meam[elti]; + const double t3mi = t3_meam[elti]; + const double t1mj = t1_meam[eltj]; + const double t2mj = t2_meam[eltj]; + const double t3mj = t3_meam[eltj]; + + if (ialloy == 1) { + rhoa1j *= t1mj; + rhoa2j *= t2mj; + rhoa3j *= t3mj; + rhoa1i *= t1mi; + rhoa2i *= t2mi; + rhoa3i *= t3mi; + drhoa1j *= t1mj; + drhoa2j *= t2mj; + drhoa3j *= t3mj; + drhoa1i *= t1mi; + drhoa2i *= t2mi; + drhoa3i *= t3mi; + } + + nv2 = 0; + nv3 = 0; + arg1i1 = 0.0; + arg1j1 = 0.0; + arg1i2 = 0.0; + arg1j2 = 0.0; + arg1i3 = 0.0; + arg1j3 = 0.0; + arg3i3 = 0.0; + arg3j3 = 0.0; + for (n = 0; n < 3; n++) { + for (p = n; p < 3; p++) { + for (q = p; q < 3; q++) { + arg = delij[n] * delij[p] * delij[q] * v3D[nv3]; + arg1i3 = arg1i3 + d_arho3(i, nv3) * arg; + arg1j3 = arg1j3 - d_arho3(j, nv3) * arg; + nv3 = nv3 + 1; + } + arg = delij[n] * delij[p] * v2D[nv2]; + arg1i2 = arg1i2 + d_arho2(i, nv2) * arg; + arg1j2 = arg1j2 + d_arho2(j, nv2) * arg; + nv2 = nv2 + 1; + } + arg1i1 = arg1i1 + d_arho1(i, n) * delij[n]; + arg1j1 = arg1j1 - d_arho1(j, n) * delij[n]; + arg3i3 = arg3i3 + d_arho3b(i, n) * delij[n]; + arg3j3 = arg3j3 - d_arho3b(j, n) * delij[n]; + } + + // rho0 terms + drho0dr1 = drhoa0j * sij; + drho0dr2 = drhoa0i * sij; + + // rho1 terms + a1 = 2 * sij / rij; + drho1dr1 = a1 * (drhoa1j - rhoa1j / rij) * arg1i1; + drho1dr2 = a1 * (drhoa1i - rhoa1i / rij) * arg1j1; + a1 = 2.0 * sij / rij; + for (m = 0; m < 3; m++) { + drho1drm1[m] = a1 * rhoa1j * d_arho1(i, m); + drho1drm2[m] = -a1 * rhoa1i * d_arho1(j, m); + } + + // rho2 terms + a2 = 2 * sij / rij2; + drho2dr1 = + a2 * (drhoa2j - 2 * rhoa2j / rij) * arg1i2 - 2.0 / 3.0 * d_arho2b[i] * drhoa2j * sij; + drho2dr2 = + a2 * (drhoa2i - 2 * rhoa2i / rij) * arg1j2 - 2.0 / 3.0 * d_arho2b[j] * drhoa2i * sij; + a2 = 4 * sij / rij2; + for (m = 0; m < 3; m++) { + drho2drm1[m] = 0.0; + drho2drm2[m] = 0.0; + for (n = 0; n < 3; n++) { + drho2drm1[m] = drho2drm1[m] + d_arho2(i, vind2D[m][n]) * delij[n]; + drho2drm2[m] = drho2drm2[m] - d_arho2(j, vind2D[m][n]) * delij[n]; + } + drho2drm1[m] = a2 * rhoa2j * drho2drm1[m]; + drho2drm2[m] = -a2 * rhoa2i * drho2drm2[m]; + } + + // rho3 terms + rij3 = rij * rij2; + a3 = 2 * sij / rij3; + a3a = 6.0 / 5.0 * sij / rij; + drho3dr1 = + a3 * (drhoa3j - 3 * rhoa3j / rij) * arg1i3 - a3a * (drhoa3j - rhoa3j / rij) * arg3i3; + drho3dr2 = + a3 * (drhoa3i - 3 * rhoa3i / rij) * arg1j3 - a3a * (drhoa3i - rhoa3i / rij) * arg3j3; + a3 = 6 * sij / rij3; + a3a = 6 * sij / (5 * rij); + for (m = 0; m < 3; m++) { + drho3drm1[m] = 0.0; + drho3drm2[m] = 0.0; + nv2 = 0; + for (n = 0; n < 3; n++) { + for (p = n; p < 3; p++) { + arg = delij[n] * delij[p] * v2D[nv2]; + drho3drm1[m] = drho3drm1[m] + d_arho3(i, vind3D[m][n][p]) * arg; + drho3drm2[m] = drho3drm2[m] + d_arho3(j, vind3D[m][n][p]) * arg; + nv2 = nv2 + 1; + } + } + drho3drm1[m] = (a3 * drho3drm1[m] - a3a * d_arho3b(i, m)) * rhoa3j; + drho3drm2[m] = (-a3 * drho3drm2[m] + a3a * d_arho3b(j, m)) * rhoa3i; + } + + // Compute derivatives of weighting functions t wrt rij + t1i = d_t_ave(i, 0); + t2i = d_t_ave(i, 1); + t3i = d_t_ave(i, 2); + t1j = d_t_ave(j, 0); + t2j = d_t_ave(j, 1); + t3j = d_t_ave(j, 2); + + if (ialloy == 1) { + + a1i = fdiv_zero_kk(drhoa0j * sij, d_tsq_ave(i, 0)); + a1j = fdiv_zero_kk(drhoa0i * sij, d_tsq_ave(j, 0)); + a2i = fdiv_zero_kk(drhoa0j * sij, d_tsq_ave(i, 1)); + a2j = fdiv_zero_kk(drhoa0i * sij, d_tsq_ave(j, 1)); + a3i = fdiv_zero_kk(drhoa0j * sij, d_tsq_ave(i, 2)); + a3j = fdiv_zero_kk(drhoa0i * sij, d_tsq_ave(j, 2)); + + dt1dr1 = a1i * (t1mj - t1i * MathSpecialKokkos::square(t1mj)); + dt1dr2 = a1j * (t1mi - t1j * MathSpecialKokkos::square(t1mi)); + dt2dr1 = a2i * (t2mj - t2i * MathSpecialKokkos::square(t2mj)); + dt2dr2 = a2j * (t2mi - t2j * MathSpecialKokkos::square(t2mi)); + dt3dr1 = a3i * (t3mj - t3i * MathSpecialKokkos::square(t3mj)); + dt3dr2 = a3j * (t3mi - t3j * MathSpecialKokkos::square(t3mi)); + + } else if (ialloy == 2) { + + dt1dr1 = 0.0; + dt1dr2 = 0.0; + dt2dr1 = 0.0; + dt2dr2 = 0.0; + dt3dr1 = 0.0; + dt3dr2 = 0.0; + + } else { + + ai = 0.0; + if (!iszero_kk(d_rho0[i])) ai = drhoa0j * sij / d_rho0[i]; + aj = 0.0; + if (!iszero_kk(d_rho0[j])) aj = drhoa0i * sij / d_rho0[j]; + + dt1dr1 = ai * (t1mj - t1i); + dt1dr2 = aj * (t1mi - t1j); + dt2dr1 = ai * (t2mj - t2i); + dt2dr2 = aj * (t2mi - t2j); + dt3dr1 = ai * (t3mj - t3i); + dt3dr2 = aj * (t3mi - t3j); + } + + // Compute derivatives of total density wrt rij, sij and rij(3) + get_shpfcn(lattce_meam[elti][elti], stheta_meam[elti][elti], ctheta_meam[elti][elti], shpi); + get_shpfcn(lattce_meam[eltj][eltj], stheta_meam[elti][elti], ctheta_meam[elti][elti], shpj); + + drhodr1 = d_dgamma1[i] * drho0dr1 + + d_dgamma2[i] * + (dt1dr1 * d_rho1[i] + t1i * drho1dr1 + dt2dr1 * d_rho2[i] + t2i * drho2dr1 + + dt3dr1 * d_rho3[i] + t3i * drho3dr1) - + d_dgamma3[i] * (shpi[0] * dt1dr1 + shpi[1] * dt2dr1 + shpi[2] * dt3dr1); + drhodr2 = d_dgamma1[j] * drho0dr2 + + d_dgamma2[j] * + (dt1dr2 * d_rho1[j] + t1j * drho1dr2 + dt2dr2 * d_rho2[j] + t2j * drho2dr2 + + dt3dr2 * d_rho3[j] + t3j * drho3dr2) - + d_dgamma3[j] * (shpj[0] * dt1dr2 + shpj[1] * dt2dr2 + shpj[2] * dt3dr2); + for (m = 0; m < 3; m++) { + drhodrm1[m] = 0.0; + drhodrm2[m] = 0.0; + drhodrm1[m] = + d_dgamma2[i] * (t1i * drho1drm1[m] + t2i * drho2drm1[m] + t3i * drho3drm1[m]); + drhodrm2[m] = + d_dgamma2[j] * (t1j * drho1drm2[m] + t2j * drho2drm2[m] + t3j * drho3drm2[m]); + } + + // Compute derivatives wrt sij, but only if necessary + if (!iszero_kk(d_dscrfcn[fnoffset + jn])) { + drho0ds1 = rhoa0j; + drho0ds2 = rhoa0i; + a1 = 2.0 / rij; + drho1ds1 = a1 * rhoa1j * arg1i1; + drho1ds2 = a1 * rhoa1i * arg1j1; + a2 = 2.0 / rij2; + drho2ds1 = a2 * rhoa2j * arg1i2 - 2.0 / 3.0 * d_arho2b[i] * rhoa2j; + drho2ds2 = a2 * rhoa2i * arg1j2 - 2.0 / 3.0 * d_arho2b[j] * rhoa2i; + a3 = 2.0 / rij3; + a3a = 6.0 / (5.0 * rij); + drho3ds1 = a3 * rhoa3j * arg1i3 - a3a * rhoa3j * arg3i3; + drho3ds2 = a3 * rhoa3i * arg1j3 - a3a * rhoa3i * arg3j3; + + if (ialloy == 1) { + a1i = fdiv_zero_kk(rhoa0j, d_tsq_ave(i, 0)); + a1j = fdiv_zero_kk(rhoa0i, d_tsq_ave(j, 0)); + a2i = fdiv_zero_kk(rhoa0j, d_tsq_ave(i, 1)); + a2j = fdiv_zero_kk(rhoa0i, d_tsq_ave(j, 1)); + a3i = fdiv_zero_kk(rhoa0j, d_tsq_ave(i, 2)); + a3j = fdiv_zero_kk(rhoa0i, d_tsq_ave(j, 2)); + + dt1ds1 = a1i * (t1mj - t1i * MathSpecialKokkos::square(t1mj)); + dt1ds2 = a1j * (t1mi - t1j * MathSpecialKokkos::square(t1mi)); + dt2ds1 = a2i * (t2mj - t2i * MathSpecialKokkos::square(t2mj)); + dt2ds2 = a2j * (t2mi - t2j * MathSpecialKokkos::square(t2mi)); + dt3ds1 = a3i * (t3mj - t3i * MathSpecialKokkos::square(t3mj)); + dt3ds2 = a3j * (t3mi - t3j * MathSpecialKokkos::square(t3mi)); + + } else if (ialloy == 2) { + + dt1ds1 = 0.0; + dt1ds2 = 0.0; + dt2ds1 = 0.0; + dt2ds2 = 0.0; + dt3ds1 = 0.0; + dt3ds2 = 0.0; + + } else { + + ai = 0.0; + if (!iszero_kk(d_rho0[i])) ai = rhoa0j / d_rho0[i]; + aj = 0.0; + if (!iszero_kk(d_rho0[j])) aj = rhoa0i / d_rho0[j]; + + dt1ds1 = ai * (t1mj - t1i); + dt1ds2 = aj * (t1mi - t1j); + dt2ds1 = ai * (t2mj - t2i); + dt2ds2 = aj * (t2mi - t2j); + dt3ds1 = ai * (t3mj - t3i); + dt3ds2 = aj * (t3mi - t3j); + } + + drhods1 = d_dgamma1[i] * drho0ds1 + + d_dgamma2[i] * + (dt1ds1 * d_rho1[i] + t1i * drho1ds1 + dt2ds1 * d_rho2[i] + t2i * drho2ds1 + + dt3ds1 * d_rho3[i] + t3i * drho3ds1) - + d_dgamma3[i] * (shpi[0] * dt1ds1 + shpi[1] * dt2ds1 + shpi[2] * dt3ds1); + drhods2 = d_dgamma1[j] * drho0ds2 + + d_dgamma2[j] * + (dt1ds2 * d_rho1[j] + t1j * drho1ds2 + dt2ds2 * d_rho2[j] + t2j * drho2ds2 + + dt3ds2 * d_rho3[j] + t3j * drho3ds2) - + d_dgamma3[j] * (shpj[0] * dt1ds2 + shpj[1] * dt2ds2 + shpj[2] * dt3ds2); + } + + // Compute derivatives of energy wrt rij, sij and rij[3] + dUdrij = phip * sij + d_frhop[i] * drhodr1 + d_frhop[j] * drhodr2; + dUdsij = 0.0; + if (!iszero_kk(d_dscrfcn[fnoffset + jn])) { + dUdsij = phi + d_frhop[i] * drhods1 + d_frhop[j] * drhods2; + } + for (m = 0; m < 3; m++) { + dUdrijm[m] = d_frhop[i] * drhodrm1[m] + d_frhop[j] * drhodrm2[m]; + } + + // Add the part of the force due to dUdrij and dUdsij + force = dUdrij * recip + dUdsij * d_dscrfcn[fnoffset + jn]; + for (m = 0; m < 3; m++) { + forcem = delij[m] * force + dUdrijm[m]; + a_f(i, m) += forcem; + a_f(j, m) -= forcem; + } + + // Tabulate per-atom virial as symmetrized stress tensor + + if (vflag_either) { + fi[0] = delij[0] * force + dUdrijm[0]; + fi[1] = delij[1] * force + dUdrijm[1]; + fi[2] = delij[2] * force + dUdrijm[2]; + v[0] = -0.5 * (delij[0] * fi[0]); + v[1] = -0.5 * (delij[1] * fi[1]); + v[2] = -0.5 * (delij[2] * fi[2]); + v[3] = -0.25 * (delij[0] * fi[1] + delij[1] * fi[0]); + v[4] = -0.25 * (delij[0] * fi[2] + delij[2] * fi[0]); + v[5] = -0.25 * (delij[1] * fi[2] + delij[2] * fi[1]); + + if (vflag_global) + for (m = 0; m < 6; m++) ev.v[m] += 2.0 * v[m]; + + if (vflag_atom) { + for (m = 0; m < 6; m++) { + a_vatom(i, m) += v[m]; + a_vatom(j, m) += v[m]; + } + } + } + + // Now compute forces on other atoms k due to change in sij + + if (iszero_kk(sij) || isone_kk(sij)) continue; //: cont jn loop + + double dxik(0), dyik(0), dzik(0); + double dxjk(0), dyjk(0), dzjk(0); + + for (kn = 0; kn < d_numneigh_full[i]; kn++) { + k = d_neighbors_full(i, kn); + eltk = d_map[type[k]]; + if (k != j && eltk >= 0) { + double xik, xjk, cikj, sikj, dfc, a; + double dCikj1, dCikj2; + double delc, rik2, rjk2; + + sij = d_scrfcn[jn + fnoffset] * d_fcpair[jn + fnoffset]; + const double Cmax = Cmax_meam[elti][eltj][eltk]; + const double Cmin = Cmin_meam[elti][eltj][eltk]; + + dsij1 = 0.0; + dsij2 = 0.0; + if (!iszero_kk(sij) && !isone_kk(sij)) { + const double rbound = rij2 * ebound_meam[elti][eltj]; + delc = Cmax - Cmin; + dxjk = x(k, 0) - x(j, 0); + dyjk = x(k, 1) - x(j, 1); + dzjk = x(k, 2) - x(j, 2); + rjk2 = dxjk * dxjk + dyjk * dyjk + dzjk * dzjk; + if (rjk2 <= rbound) { + dxik = x(k, 0) - x(i, 0); + dyik = x(k, 1) - x(i, 1); + dzik = x(k, 2) - x(i, 2); + rik2 = dxik * dxik + dyik * dyik + dzik * dzik; + if (rik2 <= rbound) { + xik = rik2 / rij2; + xjk = rjk2 / rij2; + a = 1 - (xik - xjk) * (xik - xjk); + if (!iszero_kk(a)) { + cikj = (2.0 * (xik + xjk) + a - 2.0) / a; + if (cikj >= Cmin && cikj <= Cmax) { + cikj = (cikj - Cmin) / delc; + sikj = dfcut(cikj, dfc); + dCfunc2(rij2, rik2, rjk2, dCikj1, dCikj2); + a = sij / delc * dfc / sikj; + dsij1 = a * dCikj1; + dsij2 = a * dCikj2; + } + } + } + } + } + + if (!iszero_kk(dsij1) || !iszero_kk(dsij2)) { + force1 = dUdsij * dsij1; + force2 = dUdsij * dsij2; + + a_f(i, 0) += force1 * dxik; + a_f(i, 1) += force1 * dyik; + a_f(i, 2) += force1 * dzik; + a_f(j, 0) += force2 * dxjk; + a_f(j, 1) += force2 * dyjk; + a_f(j, 2) += force2 * dzjk; + a_f(k, 0) -= force1 * dxik + force2 * dxjk; + a_f(k, 1) -= force1 * dyik + force2 * dyjk; + a_f(k, 2) -= force1 * dzik + force2 * dzjk; + + // Tabulate per-atom virial as symmetrized stress tensor + + if (vflag_either) { + fi[0] = force1 * dxik; + fi[1] = force1 * dyik; + fi[2] = force1 * dzik; + fj[0] = force2 * dxjk; + fj[1] = force2 * dyjk; + fj[2] = force2 * dzjk; + v[0] = -third * (dxik * fi[0] + dxjk * fj[0]); + v[1] = -third * (dyik * fi[1] + dyjk * fj[1]); + v[2] = -third * (dzik * fi[2] + dzjk * fj[2]); + v[3] = -sixth * (dxik * fi[1] + dxjk * fj[1] + dyik * fi[0] + dyjk * fj[0]); + v[4] = -sixth * (dxik * fi[2] + dxjk * fj[2] + dzik * fi[0] + dzjk * fj[0]); + v[5] = -sixth * (dyik * fi[2] + dyjk * fj[2] + dzik * fi[1] + dzjk * fj[1]); + + if (vflag_global) + for (m = 0; m < 6; m++) ev.v[m] += 3.0 * v[m]; + + if (vflag_atom) { + for (m = 0; m < 6; m++) { + a_vatom(i, m) += v[m]; + a_vatom(j, m) += v[m]; + a_vatom(k, m) += v[m]; + } + } + } + } + } + // end of k loop + } + } + } + // end of j loop + } +} diff --git a/src/KOKKOS/meam_funcs_kokkos.h b/src/KOKKOS/meam_funcs_kokkos.h new file mode 100644 index 0000000000..a20f0c9182 --- /dev/null +++ b/src/KOKKOS/meam_funcs_kokkos.h @@ -0,0 +1,289 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Naga Vydyanathan (NVIDIA) +------------------------------------------------------------------------- */ + +#include "math_special_kokkos.h" +#include +#include "meam_kokkos.h" +using namespace MathSpecialKokkos; + +//----------------------------------------------------------------------------- +// Compute G(gamma) based on selection flag ibar: +// 0 => G = sqrt(1+gamma) +// 1 => G = exp(gamma/2) +// 2 => not implemented +// 3 => G = 2/(1+exp(-gamma)) +// 4 => G = sqrt(1+gamma) +// -5 => G = +-sqrt(abs(1+gamma)) +// +template +KOKKOS_INLINE_FUNCTION +double MEAMKokkos::G_gam(const double gamma, const int ibar, int &errorflag) const +{ + double gsmooth_switchpoint; + + switch (ibar) { + case 0: + case 4: + gsmooth_switchpoint = -gsmooth_factor / (gsmooth_factor + 1); + if (gamma < gsmooth_switchpoint) { + // e.g. gsmooth_factor is 99, {: + // gsmooth_switchpoint = -0.99 + // G = 0.01*(-0.99/gamma)**99 + double G = 1 / (gsmooth_factor + 1) * pow((gsmooth_switchpoint / gamma), gsmooth_factor); + return sqrt(G); + } else { + return sqrt(1.0 + gamma); + } + case 1: + return MathSpecialKokkos::fm_exp(gamma / 2.0); + case 3: + return 2.0 / (1.0 + MathSpecialKokkos::fm_exp(-gamma)); + case -5: + if ((1.0 + gamma) >= 0) { + return sqrt(1.0 + gamma); + } else { + return -sqrt(-1.0 - gamma); + } + } + errorflag = 1; + return 0.0; +} + +//----------------------------------------------------------------------------- +// Compute G(gamma and dG(gamma) based on selection flag ibar: +// 0 => G = sqrt(1+gamma) +// 1 => G = exp(gamma/2) +// 2 => not implemented +// 3 => G = 2/(1+exp(-gamma)) +// 4 => G = sqrt(1+gamma) +// -5 => G = +-sqrt(abs(1+gamma)) +// +template +KOKKOS_INLINE_FUNCTION +double MEAMKokkos::dG_gam(const double gamma, const int ibar, double& dG) const +{ + double gsmooth_switchpoint; + double G; + + switch (ibar) { + case 0: + case 4: + gsmooth_switchpoint = -gsmooth_factor / (gsmooth_factor + 1); + if (gamma < gsmooth_switchpoint) { + // e.g. gsmooth_factor is 99, {: + // gsmooth_switchpoint = -0.99 + // G = 0.01*(-0.99/gamma)**99 + G = 1 / (gsmooth_factor + 1) * pow((gsmooth_switchpoint / gamma), gsmooth_factor); + G = sqrt(G); + dG = -gsmooth_factor * G / (2.0 * gamma); + return G; + } else { + G = sqrt(1.0 + gamma); + dG = 1.0 / (2.0 * G); + return G; + } + case 1: + G = MathSpecialKokkos::fm_exp(gamma / 2.0); + dG = G / 2.0; + return G; + case 3: + G = 2.0 / (1.0 + MathSpecialKokkos::fm_exp(-gamma)); + dG = G * (2.0 - G) / 2; + return G; + case -5: + if ((1.0 + gamma) >= 0) { + G = sqrt(1.0 + gamma); + dG = 1.0 / (2.0 * G); + return G; + } else { + G = -sqrt(-1.0 - gamma); + dG = -1.0 / (2.0 * G); + return G; + } + } + dG = 1.0; + return 0.0; +} + +//----------------------------------------------------------------------------- +// Compute ZBL potential +// +template +KOKKOS_INLINE_FUNCTION +double MEAMKokkos::zbl(const double r, const int z1, const int z2) const +{ + int i; + const double c[] = { 0.028171, 0.28022, 0.50986, 0.18175 }; + const double d[] = { 0.20162, 0.40290, 0.94229, 3.1998 }; + const double azero = 0.4685; + const double cc = 14.3997; + double a, x; + // azero = (9pi^2/128)^1/3 (0.529) Angstroms + a = azero / (pow(z1, 0.23) + pow(z2, 0.23)); + double result = 0.0; + x = r / a; + for (i = 0; i <= 3; i++) { + result = result + c[i] * MathSpecialKokkos::fm_exp(-d[i] * x); + } + if (r > 0.0) + result = result * z1 * z2 / r * cc; + return result; +} + +//----------------------------------------------------------------------------- +// Compute embedding function F(rhobar) and derivative F'(rhobar), eqn I.5 +// +template +KOKKOS_INLINE_FUNCTION +double MEAMKokkos::embedding(const double A, const double Ec, const double rhobar, double& dF) const +{ + const double AEc = A * Ec; + + if (rhobar > 0.0) { + const double lrb = log(rhobar); + dF = AEc * (1.0 + lrb); + return AEc * rhobar * lrb; + } else { + if (emb_lin_neg == 0) { + dF = 0.0; + return 0.0; + } else { + dF = - AEc; + return - AEc * rhobar; + } + } +} + +//----------------------------------------------------------------------------- +// Compute Rose energy function, I.16 +// +template +KOKKOS_INLINE_FUNCTION +double MEAMKokkos::erose(const double r, const double re, const double alpha, const double Ec, const double repuls, + const double attrac, const int form) const +{ + double astar, a3; + double result = 0.0; + + if (r > 0.0) { + astar = alpha * (r / re - 1.0); + a3 = 0.0; + if (astar >= 0) + a3 = attrac; + else if (astar < 0) + a3 = repuls; + + if (form == 1) + result = -Ec * (1 + astar + (-attrac + repuls / r) * MathSpecialKokkos::cube(astar)) * MathSpecialKokkos::fm_exp(-astar); + else if (form == 2) + result = -Ec * (1 + astar + a3 * MathSpecialKokkos::cube(astar)) * MathSpecialKokkos::fm_exp(-astar); + else + result = -Ec * (1 + astar + a3 * MathSpecialKokkos::cube(astar) / (r / re)) * MathSpecialKokkos::fm_exp(-astar); + } + return result; +} + +//----------------------------------------------------------------------------- +// Shape factors for various configurations +// +template +KOKKOS_INLINE_FUNCTION +void MEAMKokkos::get_shpfcn(const lattice_t latt, const double sthe, const double cthe, double (&s)[3]) const +{ + switch (latt) { + case FCC: + case BCC: + case B1: + case B2: + s[0] = 0.0; + s[1] = 0.0; + s[2] = 0.0; + break; + case HCP: + s[0] = 0.0; + s[1] = 0.0; + s[2] = 1.0 / 3.0; + break; + case CH4: // CH4 actually needs shape factor for diamond for C, dimer for H + case DIA: + case DIA3: + s[0] = 0.0; + s[1] = 0.0; + s[2] = 32.0 / 9.0; + break; + case DIM: + s[0] = 1.0; + s[1] = 2.0 / 3.0; + // s(4) = 1.d0 // this should be 0.4 unless (1-legendre) is multiplied in the density calc. + s[2] = 0.40; // this is (1-legendre) where legendre = 0.6 in dynamo is accounted. + break; + case LIN: // linear, theta being 180 + s[0] = 0.0; + s[1] = 8.0 / 3.0; // 4*(co**4 + si**4 - 1.0/3.0) in zig become 4*(1-1/3) + s[2] = 0.0; + break; + case ZIG: //zig-zag + case TRI: //trimer e.g. H2O + s[0] = 4.0*pow(cthe,2); + s[1] = 4.0*(pow(cthe,4) + pow(sthe,4) - 1.0/3.0); + s[2] = 4.0*(pow(cthe,2) * (3*pow(sthe,4) + pow(cthe,4))); + s[2] = s[2] - 0.6*s[0]; //legend in dyn, 0.6 is default value. + break; + default: + s[0] = 0.0; + // call error('Lattice not defined in get_shpfcn.') + } +} + +//----------------------------------------------------------------------------- +// Number of neighbors for the reference structure +// +template +KOKKOS_INLINE_FUNCTION +int MEAMKokkos::get_Zij(const lattice_t latt) const +{ + switch (latt) { + case FCC: + return 12; + case BCC: + return 8; + case HCP: + return 12; + case DIA: + case DIA3: + return 4; + case DIM: + return 1; + case B1: + return 6; + case C11: + return 10; + case L12: + return 12; + case B2: + return 8; + case CH4: // DYNAMO currently implemented this way while it needs two Z values, 4 and 1 + return 4; + case LIN: + case ZIG: + case TRI: + return 2; + // call error('Lattice not defined in get_Zij.') + } + return 0; +} diff --git a/src/KOKKOS/meam_impl_kokkos.h b/src/KOKKOS/meam_impl_kokkos.h new file mode 100644 index 0000000000..be69f247be --- /dev/null +++ b/src/KOKKOS/meam_impl_kokkos.h @@ -0,0 +1,68 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Naga Vydyanathan (NVIDIA), Stan Moore (SNL) +------------------------------------------------------------------------- */ + +#include "memory_kokkos.h" +#include "meam_kokkos.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +template +MEAMKokkos::MEAMKokkos(Memory *mem) : MEAM(mem) +{ + d_errorflag = typename AT::t_int_scalar("meam:errorflag"); +} + +template +MEAMKokkos::~MEAMKokkos() +{ + if (copymode) return; + + MemoryKokkos *memoryKK = (MemoryKokkos *)memory; + + memoryKK->destroy_kokkos(k_rho,rho); + memoryKK->destroy_kokkos(k_rho0,rho0); + memoryKK->destroy_kokkos(k_rho1,rho1); + memoryKK->destroy_kokkos(k_rho2,rho2); + memoryKK->destroy_kokkos(k_rho3,rho3); + memoryKK->destroy_kokkos(k_frhop,frhop); + memoryKK->destroy_kokkos(k_gamma,gamma); + memoryKK->destroy_kokkos(k_dgamma1,dgamma1); + memoryKK->destroy_kokkos(k_dgamma2,dgamma2); + memoryKK->destroy_kokkos(k_dgamma3,dgamma3); + memoryKK->destroy_kokkos(k_arho2b,arho2b); + + memoryKK->destroy_kokkos(k_arho1,arho1); + memoryKK->destroy_kokkos(k_arho2,arho2); + memoryKK->destroy_kokkos(k_arho3,arho3); + memoryKK->destroy_kokkos(k_arho3b,arho3b); + memoryKK->destroy_kokkos(k_t_ave,t_ave); + memoryKK->destroy_kokkos(k_tsq_ave,tsq_ave); + + memoryKK->destroy_kokkos(k_scrfcn,scrfcn); + memoryKK->destroy_kokkos(k_dscrfcn,dscrfcn); + memoryKK->destroy_kokkos(k_fcpair,fcpair); +} + +#include "meam_setup_done_kokkos.h" +#include "meam_funcs_kokkos.h" +#include "meam_dens_init_kokkos.h" +#include "meam_dens_final_kokkos.h" +#include "meam_force_kokkos.h" + diff --git a/src/KOKKOS/meam_kokkos.h b/src/KOKKOS/meam_kokkos.h new file mode 100644 index 0000000000..1f289d6a4f --- /dev/null +++ b/src/KOKKOS/meam_kokkos.h @@ -0,0 +1,224 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef LMP_MEAMKOKKOS_H +#define LMP_MEAMKOKKOS_H + +#include "kokkos.h" +#include "meam.h" +#include "memory_kokkos.h" +#include "neigh_request.h" +#include "neighbor_kokkos.h" +#include +#include + +namespace LAMMPS_NS { + +struct TagMEAMDensFinal {}; +template struct TagMEAMDensInit { +}; +struct TagMEAMZero {}; +template struct TagMEAMForce { +}; + +template class MEAMKokkos : public MEAM { + public: + typedef ArrayTypes AT; + typedef EV_FLOAT value_type; + MEAMKokkos(Memory *mem); + ~MEAMKokkos() override; + + KOKKOS_INLINE_FUNCTION + void operator()(TagMEAMDensFinal, const int &, EV_FLOAT &) const; + + template + KOKKOS_INLINE_FUNCTION void operator()(TagMEAMDensInit, const int &) const; + + KOKKOS_INLINE_FUNCTION + void operator()(TagMEAMZero, const int &) const; + + template + KOKKOS_INLINE_FUNCTION void operator()(TagMEAMForce, const int &, EV_FLOAT &) const; + + private: + // parameters to meam_dens_init + + int ntype, nlocal; + typename AT::t_int_1d type; + typename AT::t_int_1d d_offset; + typename AT::t_int_1d d_map; + typename AT::t_int_2d d_scale; + typename AT::t_x_array x; + typename AT::t_int_1d d_numneigh_half; + typename AT::t_int_1d d_numneigh_full; + typename AT::t_neighbors_2d d_neighbors_half; + typename AT::t_neighbors_2d d_neighbors_full; + typename AT::t_int_1d d_ilist_half; + typename AT::t_f_array f; + typename ArrayTypes::t_virial_array d_vatom; + + // parameters to meam_dens_final + + typename AT::t_int_scalar d_errorflag; + int eflag_either, eflag_global, eflag_atom, vflag_either, vflag_global, vflag_atom; + typename ArrayTypes::t_efloat_1d d_eatom; + + public: + void meam_dens_setup(int, int, int) override; + void meam_setup_done(double *) override; + void meam_dens_init(int, int, typename AT::t_int_1d, typename AT::t_int_1d, + typename AT::t_x_array, typename AT::t_int_1d, typename AT::t_int_1d, + typename AT::t_int_1d, typename AT::t_neighbors_2d, + typename AT::t_neighbors_2d, typename AT::t_int_1d, int, int); + void meam_dens_final(int, int, int, int, typename ArrayTypes::t_efloat_1d, int, + typename AT::t_int_1d, typename AT::t_int_1d, typename AT::t_int_2d, int &, + EV_FLOAT &); + void meam_force(int, int, int, int, int, typename ArrayTypes::t_efloat_1d, int, + typename AT::t_int_1d, typename AT::t_int_1d, typename AT::t_x_array, + typename AT::t_int_1d, typename AT::t_int_1d, typename AT::t_f_array, + typename ArrayTypes::t_virial_array, typename AT::t_int_1d, + typename AT::t_int_1d, typename AT::t_neighbors_2d, typename AT::t_neighbors_2d, + int, int, EV_FLOAT &); + template + KOKKOS_INLINE_FUNCTION void getscreen(int, int, typename AT::t_x_array, typename AT::t_int_1d, + typename AT::t_int_1d, int, typename AT::t_int_1d, + typename AT::t_int_1d) const; + template + KOKKOS_INLINE_FUNCTION void calc_rho1(int, int, typename AT::t_int_1d, typename AT::t_int_1d, + typename AT::t_x_array, typename AT::t_int_1d, int) const; + KOKKOS_INLINE_FUNCTION + double fcut(const double xi) const; + KOKKOS_INLINE_FUNCTION + double dfcut(const double xi, double &dfc) const; + KOKKOS_INLINE_FUNCTION + double dCfunc(const double, const double, const double) const; + KOKKOS_INLINE_FUNCTION + void dCfunc2(const double, const double, const double, double &, double &) const; + KOKKOS_INLINE_FUNCTION + double G_gam(const double, const int, int &) const; + KOKKOS_INLINE_FUNCTION + double dG_gam(const double, const int, double &) const; + KOKKOS_INLINE_FUNCTION + double zbl(const double, const int, const int) const; + KOKKOS_INLINE_FUNCTION + double embedding(const double, const double, const double, double &) const; + KOKKOS_INLINE_FUNCTION + double erose(const double, const double, const double, const double, const double, const double, + const int) const; + KOKKOS_INLINE_FUNCTION + void get_shpfcn(const lattice_t latt, const double sthe, const double cthe, double (&s)[3]) const; + KOKKOS_INLINE_FUNCTION + int get_Zij(const lattice_t) const; + + public: + DAT::tdual_ffloat_1d k_rho, k_rho0, k_rho1, k_rho2, k_rho3, k_frhop; + typename ArrayTypes::t_ffloat_1d d_rho, d_rho0, d_rho1, d_rho2, d_rho3, d_frhop; + HAT::t_ffloat_1d h_rho, h_rho0, h_rho1, h_rho2, h_rho3, h_frhop; + DAT::tdual_ffloat_1d k_gamma, k_dgamma1, k_dgamma2, k_dgamma3, k_arho2b; + typename ArrayTypes::t_ffloat_1d d_gamma, d_dgamma1, d_dgamma2, d_dgamma3, d_arho2b; + HAT::t_ffloat_1d h_gamma, h_dgamma1, h_dgamma2, h_dgamma3, h_arho2b; + DAT::tdual_ffloat_2d k_arho1, k_arho2, k_arho3, k_arho3b, k_t_ave, k_tsq_ave; + typename ArrayTypes::t_ffloat_2d d_arho1, d_arho2, d_arho3, d_arho3b, d_t_ave, + d_tsq_ave; + HAT::t_ffloat_2d h_arho1, h_arho2, h_arho3, h_arho3b, h_t_ave, h_tsq_ave; + typename ArrayTypes::t_ffloat_2d d_phir, d_phirar, d_phirar1, d_phirar2, d_phirar3, + d_phirar4, d_phirar5, d_phirar6; + DAT::tdual_ffloat_1d k_scrfcn, k_dscrfcn, k_fcpair; + typename ArrayTypes::t_ffloat_1d d_scrfcn, d_dscrfcn, d_fcpair; + HAT::t_ffloat_1d h_scrfcn, h_dscrfcn, h_fcpair; + + protected: + int need_dup; + using KKDeviceType = typename KKDevice::value; + + template + using DupScatterView = + KKScatterView; + + template + using NonDupScatterView = + KKScatterView; + + DupScatterView + dup_rho0; + NonDupScatterView + ndup_rho0; + DupScatterView + dup_arho2b; + NonDupScatterView + ndup_arho2b; + DupScatterView + dup_arho1; + NonDupScatterView + ndup_arho1; + DupScatterView + dup_arho2; + NonDupScatterView + ndup_arho2; + DupScatterView + dup_arho3; + NonDupScatterView + ndup_arho3; + DupScatterView + dup_arho3b; + NonDupScatterView + ndup_arho3b; + DupScatterView + dup_t_ave; + NonDupScatterView + ndup_t_ave; + DupScatterView + dup_tsq_ave; + NonDupScatterView + ndup_tsq_ave; + DupScatterView dup_f; + NonDupScatterView ndup_f; + DupScatterView + dup_eatom; + NonDupScatterView + ndup_eatom; + DupScatterView + dup_vatom; + NonDupScatterView + ndup_vatom; +}; + +KOKKOS_INLINE_FUNCTION +static bool iszero_kk(const double f) +{ + return fabs(f) < 1e-20; +} + +KOKKOS_INLINE_FUNCTION +static bool isone_kk(const double f) +{ + return fabs(f - 1.0) < 1e-20; +} + +KOKKOS_INLINE_FUNCTION +static double fdiv_zero_kk(const double n, const double d) +{ + if (iszero_kk(d)) return 0.0; + return n / d; +} + +// Functions we need for compat + +} // namespace LAMMPS_NS +#include "meam_impl_kokkos.h" + +#endif diff --git a/src/KOKKOS/meam_setup_done_kokkos.h b/src/KOKKOS/meam_setup_done_kokkos.h new file mode 100644 index 0000000000..8b705217b0 --- /dev/null +++ b/src/KOKKOS/meam_setup_done_kokkos.h @@ -0,0 +1,60 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "meam_kokkos.h" + +template +void MEAMKokkos::meam_setup_done(double* cutmax) +{ + MEAM::meam_setup_done(cutmax); + + MemKK::realloc_kokkos(d_phir, "pair:phir", (neltypes * (neltypes + 1)) / 2, nr); + MemKK::realloc_kokkos(d_phirar, "pair:phirar", (neltypes * (neltypes + 1)) / 2, nr); + MemKK::realloc_kokkos(d_phirar1, "pair:phirar1", (neltypes * (neltypes + 1)) / 2, nr); + MemKK::realloc_kokkos(d_phirar2, "pair:phirar2", (neltypes * (neltypes + 1)) / 2, nr); + MemKK::realloc_kokkos(d_phirar3, "pair:phirar3", (neltypes * (neltypes + 1)) / 2, nr); + MemKK::realloc_kokkos(d_phirar4, "pair:phirar4", (neltypes * (neltypes + 1)) / 2, nr); + MemKK::realloc_kokkos(d_phirar5, "pair:phirar5", (neltypes * (neltypes + 1)) / 2, nr); + MemKK::realloc_kokkos(d_phirar6, "pair:phirar6", (neltypes * (neltypes + 1)) / 2, nr); + + auto h_phir = Kokkos::create_mirror_view(d_phir); + auto h_phirar = Kokkos::create_mirror_view(d_phirar); + auto h_phirar1 = Kokkos::create_mirror_view(d_phirar1); + auto h_phirar2 = Kokkos::create_mirror_view(d_phirar2); + auto h_phirar3 = Kokkos::create_mirror_view(d_phirar3); + auto h_phirar4 = Kokkos::create_mirror_view(d_phirar4); + auto h_phirar5 = Kokkos::create_mirror_view(d_phirar5); + auto h_phirar6 = Kokkos::create_mirror_view(d_phirar6); + + for (int i = 0; i <(neltypes * (neltypes + 1)) / 2; i++) + for(int j = 0; j < nr; j++) { + h_phir(i,j) = phir[i][j]; + h_phirar(i,j) = phirar[i][j]; + h_phirar1(i,j) = phirar1[i][j]; + h_phirar2(i,j) = phirar2[i][j]; + h_phirar3(i,j) = phirar3[i][j]; + h_phirar4(i,j) = phirar4[i][j]; + h_phirar5(i,j) = phirar5[i][j]; + h_phirar6(i,j) = phirar6[i][j]; + } + + Kokkos::deep_copy(d_phir,h_phir); + Kokkos::deep_copy(d_phirar,h_phirar); + Kokkos::deep_copy(d_phirar1,h_phirar1); + Kokkos::deep_copy(d_phirar2,h_phirar2); + Kokkos::deep_copy(d_phirar3,h_phirar3); + Kokkos::deep_copy(d_phirar4,h_phirar4); + Kokkos::deep_copy(d_phirar5,h_phirar5); + Kokkos::deep_copy(d_phirar6,h_phirar6); +} diff --git a/src/KOKKOS/memory_kokkos.h b/src/KOKKOS/memory_kokkos.h index e82746f34d..b421bcc825 100644 --- a/src/KOKKOS/memory_kokkos.h +++ b/src/KOKKOS/memory_kokkos.h @@ -20,6 +20,8 @@ namespace LAMMPS_NS { +typedef MemoryKokkos MemKK; + class MemoryKokkos : public Memory { public: MemoryKokkos(class LAMMPS *lmp) : Memory(lmp) {} @@ -278,46 +280,11 @@ void destroy_kokkos(TYPE data, typename TYPE::value_type** &array) deallocate first to reduce memory use ------------------------------------------------------------------------- */ -template -void realloc_kokkos(TYPE &data, const char *name, int n1) +template +static void realloc_kokkos(TYPE &data, const char *name, Indices... ns) { data = TYPE(); - data = TYPE(Kokkos::NoInit(std::string(name)),n1); -} - -template -void realloc_kokkos(TYPE &data, const char *name, int n1, int n2) -{ - data = TYPE(); - data = TYPE(Kokkos::NoInit(std::string(name)),n1,n2); -} - -template -void realloc_kokkos(TYPE &data, const char *name, int n1, int n2, int n3) -{ - data = TYPE(); - data = TYPE(Kokkos::NoInit(std::string(name)),n1,n2,n3); -} - -template -void realloc_kokkos(TYPE &data, const char *name, int n1, int n2, int n3, int n4) -{ - data = TYPE(); - data = TYPE(Kokkos::NoInit(std::string(name)),n1,n2,n3,n4); -} - -template -void realloc_kokkos(TYPE &data, const char *name, int n1, int n2, int n3, int n4, int n5) -{ - data = TYPE(); - data = TYPE(Kokkos::NoInit(std::string(name)),n1,n2,n3,n4,n5); -} - -template -void realloc_kokkos(TYPE &data, const char *name, int n1, int n2, int n3, int n4, int n5, int n6) -{ - data = TYPE(); - data = TYPE(Kokkos::NoInit(std::string(name)),n1,n2,n3,n4,n5,n6); + data = TYPE(Kokkos::NoInit(std::string(name)), ns...); } /* ---------------------------------------------------------------------- @@ -325,7 +292,7 @@ void realloc_kokkos(TYPE &data, const char *name, int n1, int n2, int n3, int n4 ------------------------------------------------------------------------- */ template -double memory_usage(TYPE &data) +static double memory_usage(TYPE &data) { return data.span() * sizeof(typename TYPE::value_type); } diff --git a/src/KOKKOS/min_cg_kokkos.cpp b/src/KOKKOS/min_cg_kokkos.cpp index 32f97437c7..53c4031f9b 100644 --- a/src/KOKKOS/min_cg_kokkos.cpp +++ b/src/KOKKOS/min_cg_kokkos.cpp @@ -49,6 +49,8 @@ int MinCGKokkos::iterate(int maxiter) fix_minimize_kk->k_vectors.sync(); fix_minimize_kk->k_vectors.modify(); + atomKK->sync(Device,F_MASK); + // nlimit = max # of CG iterations before restarting // set to ndoftotal unless too big diff --git a/src/KOKKOS/min_kokkos.cpp b/src/KOKKOS/min_kokkos.cpp index 8dc7b68287..a590409c49 100644 --- a/src/KOKKOS/min_kokkos.cpp +++ b/src/KOKKOS/min_kokkos.cpp @@ -79,6 +79,8 @@ void MinKokkos::setup(int flag) } update->setupflag = 1; + lmp->kokkos->auto_sync = 1; + // setup extra global dof due to fixes // cannot be done in init() b/c update init() is before modify init() @@ -170,7 +172,7 @@ void MinKokkos::setup(int flag) } else if (force->pair) force->pair->compute_dummy(eflag,vflag); - if (atomKK->molecular) { + if (atom->molecular != Atom::ATOMIC) { if (force->bond) { atomKK->sync(force->bond->execution_space,force->bond->datamask_read); force->bond->compute(eflag,vflag); @@ -242,6 +244,8 @@ void MinKokkos::setup_minimal(int flag) // acquire ghosts // build neighbor lists + lmp->kokkos->auto_sync = 1; + if (flag) { modify->setup_pre_exchange(); if (triclinic) domain->x2lamda(atom->nlocal); @@ -277,7 +281,7 @@ void MinKokkos::setup_minimal(int flag) } else if (force->pair) force->pair->compute_dummy(eflag,vflag); - if (atomKK->molecular) { + if (atom->molecular != Atom::ATOMIC) { if (force->bond) { atomKK->sync(force->bond->execution_space,force->bond->datamask_read); force->bond->compute(eflag,vflag); @@ -495,6 +499,7 @@ double MinKokkos::energy_force(int resetflag) if (force->newton) { comm->reverse_comm(); timer->stamp(Timer::COMM); + atomKK->sync(Device,F_MASK); } // update per-atom minimization variables stored by pair styles @@ -567,7 +572,7 @@ void MinKokkos::force_clear() } }); } - atomKK->modified(Device,F_MASK); + atomKK->modified(Device,F_MASK|TORQUE_MASK); } /* ---------------------------------------------------------------------- @@ -576,6 +581,7 @@ void MinKokkos::force_clear() double MinKokkos::fnorm_sqr() { + atomKK->sync(Device,F_MASK); double local_norm2_sqr = 0.0; { @@ -604,6 +610,7 @@ double MinKokkos::fnorm_sqr() double MinKokkos::fnorm_inf() { + atomKK->sync(Device,F_MASK); double local_norm_inf = 0.0; { @@ -632,6 +639,7 @@ double MinKokkos::fnorm_inf() double MinKokkos::fnorm_max() { + atomKK->sync(Device,F_MASK); double local_norm_max = 0.0; { diff --git a/src/KOKKOS/min_linesearch_kokkos.cpp b/src/KOKKOS/min_linesearch_kokkos.cpp index 2fad14f3b4..76ea522fa8 100644 --- a/src/KOKKOS/min_linesearch_kokkos.cpp +++ b/src/KOKKOS/min_linesearch_kokkos.cpp @@ -111,9 +111,6 @@ void MinLineSearchKokkos::reset_vectors() x0 = fix_minimize_kk->request_vector_kokkos(0); g = fix_minimize_kk->request_vector_kokkos(1); h = fix_minimize_kk->request_vector_kokkos(2); - - auto h_fvec = Kokkos::create_mirror_view(fvec); - Kokkos::deep_copy(h_fvec,fvec); } /* ---------------------------------------------------------------------- @@ -181,6 +178,8 @@ int MinLineSearchKokkos::linemin_quadratic(double eoriginal, double &alpha) fix_minimize_kk->k_vectors.sync(); fix_minimize_kk->k_vectors.modify(); + atomKK->sync(Device,X_MASK|F_MASK); + // fdothall = projection of search dir along downhill gradient // if search direction is not downhill, exit with error @@ -364,8 +363,8 @@ double MinLineSearchKokkos::alpha_step(double alpha, int resetflag) // reset to starting point if (nextra_global) modify->min_step(0.0,hextra); - atomKK->k_x.clear_sync_state(); // ignore if host positions since device - // positions will be reset below + atomKK->k_x.clear_sync_state(); // ignore if host positions modified since + // device positions will be reset below { // local variables for lambda capture @@ -409,6 +408,8 @@ double MinLineSearchKokkos::compute_dir_deriv(double &ff) double dot[2],dotall[2]; double fh; + atomKK->sync(Device,F_MASK); + // compute new fh, alpha, delfh s_double2 sdot; diff --git a/src/KOKKOS/npair_halffull_kokkos.cpp b/src/KOKKOS/npair_halffull_kokkos.cpp index 53bd132cac..3005f0e463 100644 --- a/src/KOKKOS/npair_halffull_kokkos.cpp +++ b/src/KOKKOS/npair_halffull_kokkos.cpp @@ -26,8 +26,8 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -template -NPairHalffullKokkos::NPairHalffullKokkos(LAMMPS *lmp) : NPair(lmp) { +template +NPairHalffullKokkos::NPairHalffullKokkos(LAMMPS *lmp) : NPair(lmp) { atomKK = (AtomKokkos *) atom; execution_space = ExecutionSpaceFromDevice::space; } @@ -41,15 +41,17 @@ NPairHalffullKokkos::NPairHalffullKokkos(LAMMPS *lmp) : NPair if ghost, also store neighbors of ghost atoms & set inum,gnum correctly ------------------------------------------------------------------------- */ -template -void NPairHalffullKokkos::build(NeighList *list) +template +void NPairHalffullKokkos::build(NeighList *list) { - if (NEWTON) { + if (NEWTON || TRIM) { x = atomKK->k_x.view(); atomKK->sync(execution_space,X_MASK); } nlocal = atom->nlocal; + cutsq_custom = cutoff_custom*cutoff_custom; + NeighListKokkos* k_list_full = static_cast*>(list->listfull); d_ilist_full = k_list_full->d_ilist; d_numneigh_full = k_list_full->d_numneigh; @@ -76,14 +78,14 @@ void NPairHalffullKokkos::build(NeighList *list) k_list->k_ilist.template modify(); } -template +template KOKKOS_INLINE_FUNCTION -void NPairHalffullKokkos::operator()(TagNPairHalffullCompute, const int &ii) const { +void NPairHalffullKokkos::operator()(TagNPairHalffullCompute, const int &ii) const { int n = 0; const int i = d_ilist_full(ii); F_FLOAT xtmp,ytmp,ztmp; - if (NEWTON) { + if (NEWTON || TRIM) { xtmp = x(i,0); ytmp = x(i,1); ztmp = x(i,2); @@ -108,9 +110,29 @@ void NPairHalffullKokkos::operator()(TagNPairHalffullCompute, if (x(j,1) == ytmp && x(j,0) < xtmp) continue; } } + + if (TRIM) { + const double delx = xtmp - x(j,0); + const double dely = ytmp - x(j,1); + const double delz = ztmp - x(j,2); + const double rsq = delx*delx + dely*dely + delz*delz; + + if (rsq > cutsq_custom) continue; + } + + neighbors_i(n++) = joriginal; + } else if (j > i) { + + if (TRIM) { + const double delx = xtmp - x(j,0); + const double dely = ytmp - x(j,1); + const double delz = ztmp - x(j,2); + const double rsq = delx*delx + dely*dely + delz*delz; + + if (rsq > cutsq_custom) continue; + } + neighbors_i(n++) = joriginal; - } else { - if (j > i) neighbors_i(n++) = joriginal; } } @@ -119,10 +141,14 @@ void NPairHalffullKokkos::operator()(TagNPairHalffullCompute, } namespace LAMMPS_NS { -template class NPairHalffullKokkos; -template class NPairHalffullKokkos; +template class NPairHalffullKokkos; +template class NPairHalffullKokkos; +template class NPairHalffullKokkos; +template class NPairHalffullKokkos; #ifdef LMP_KOKKOS_GPU -template class NPairHalffullKokkos; -template class NPairHalffullKokkos; +template class NPairHalffullKokkos; +template class NPairHalffullKokkos; +template class NPairHalffullKokkos; +template class NPairHalffullKokkos; #endif } diff --git a/src/KOKKOS/npair_halffull_kokkos.h b/src/KOKKOS/npair_halffull_kokkos.h index 6d4e722098..ce2321f6fd 100644 --- a/src/KOKKOS/npair_halffull_kokkos.h +++ b/src/KOKKOS/npair_halffull_kokkos.h @@ -13,27 +13,30 @@ #ifdef NPAIR_CLASS // clang-format off + +// Trim off + // Newton -typedef NPairHalffullKokkos NPairKokkosHalffullNewtonDevice; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonDevice; NPairStyle(halffull/newton/kk/device, NPairKokkosHalffullNewtonDevice, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_KOKKOS_DEVICE); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtonHost; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonHost; NPairStyle(halffull/newton/kk/host, NPairKokkosHalffullNewtonHost, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_KOKKOS_HOST); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtonDevice; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonDevice; NPairStyle(halffull/newton/skip/kk/device, NPairKokkosHalffullNewtonDevice, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_SKIP | NP_KOKKOS_DEVICE); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtonHost; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonHost; NPairStyle(halffull/newton/skip/kk/host, NPairKokkosHalffullNewtonHost, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | @@ -41,25 +44,25 @@ NPairStyle(halffull/newton/skip/kk/host, // Newtoff -typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffDevice; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffDevice; NPairStyle(halffull/newtoff/kk/device, NPairKokkosHalffullNewtoffDevice, NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_KOKKOS_DEVICE); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffHost; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffHost; NPairStyle(halffull/newtoff/kk/host, NPairKokkosHalffullNewtoffHost, NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_KOKKOS_HOST); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffDevice; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffDevice; NPairStyle(halffull/newtoff/skip/kk/device, NPairKokkosHalffullNewtoffDevice, NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_SKIP | NP_KOKKOS_DEVICE); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffHost; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffHost; NPairStyle(halffull/newtoff/skip/kk/host, NPairKokkosHalffullNewtoffHost, NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | @@ -69,25 +72,25 @@ NPairStyle(halffull/newtoff/skip/kk/host, // Newton -typedef NPairHalffullKokkos NPairKokkosHalffullNewtonGhostDevice; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonGhostDevice; NPairStyle(halffull/newton/ghost/kk/device, NPairKokkosHalffullNewtonGhostDevice, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_GHOST | NP_KOKKOS_DEVICE); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtonHost; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonHost; NPairStyle(halffull/newton/ghost/kk/host, NPairKokkosHalffullNewtonHost, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_GHOST | NP_KOKKOS_HOST); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtonGhostDevice; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonGhostDevice; NPairStyle(halffull/newton/skip/ghost/kk/device, NPairKokkosHalffullNewtonGhostDevice, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_GHOST | NP_SKIP | NP_KOKKOS_DEVICE); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtonHost; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonHost; NPairStyle(halffull/newton/skip/ghost/kk/host, NPairKokkosHalffullNewtonHost, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | @@ -95,29 +98,138 @@ NPairStyle(halffull/newton/skip/ghost/kk/host, // Newtoff -typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffGhostDevice; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffGhostDevice; NPairStyle(halffull/newtoff/ghost/kk/device, NPairKokkosHalffullNewtoffGhostDevice, NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_GHOST | NP_KOKKOS_DEVICE); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffHost; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffHost; NPairStyle(halffull/newtoff/ghost/kk/host, NPairKokkosHalffullNewtoffHost, NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_GHOST | NP_KOKKOS_HOST); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffGhostDevice; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffGhostDevice; NPairStyle(halffull/newtoff/skip/ghost/kk/device, NPairKokkosHalffullNewtoffGhostDevice, NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_GHOST | NP_SKIP | NP_KOKKOS_DEVICE); -typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffHost; +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffHost; NPairStyle(halffull/newtoff/skip/ghost/kk/host, NPairKokkosHalffullNewtoffHost, NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_ORTHO | NP_TRI | NP_GHOST | NP_SKIP | NP_KOKKOS_HOST); + + +//************ Trim ************** + +// Newton + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonTrimDevice; +NPairStyle(halffull/newton/trim/kk/device, + NPairKokkosHalffullNewtonTrimDevice, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_TRIM | NP_KOKKOS_DEVICE); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonTrimHost; +NPairStyle(halffull/newton/trim/kk/host, + NPairKokkosHalffullNewtonTrimHost, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_TRIM | NP_KOKKOS_HOST); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonTrimDevice; +NPairStyle(halffull/newton/skip/trim/kk/device, + NPairKokkosHalffullNewtonTrimDevice, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM | NP_KOKKOS_DEVICE); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonTrimHost; +NPairStyle(halffull/newton/skip/trim/kk/host, + NPairKokkosHalffullNewtonTrimHost, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM | NP_KOKKOS_HOST); + +// Newtoff + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffTrimDevice; +NPairStyle(halffull/newtoff/trim/kk/device, + NPairKokkosHalffullNewtoffTrimDevice, + NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_TRIM | NP_KOKKOS_DEVICE); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffTrimHost; +NPairStyle(halffull/newtoff/trim/kk/host, + NPairKokkosHalffullNewtoffTrimHost, + NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_TRIM | NP_KOKKOS_HOST); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffTrimDevice; +NPairStyle(halffull/newtoff/skip/trim/kk/device, + NPairKokkosHalffullNewtoffTrimDevice, + NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM | NP_KOKKOS_DEVICE); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffTrimHost; +NPairStyle(halffull/newtoff/skip/trim/kk/host, + NPairKokkosHalffullNewtoffTrimHost, + NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM | NP_KOKKOS_HOST); + +//************ Ghost ************** + +// Newton + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonGhostTrimDevice; +NPairStyle(halffull/newton/ghost/trim/kk/device, + NPairKokkosHalffullNewtonGhostTrimDevice, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_GHOST | NP_TRIM | NP_KOKKOS_DEVICE); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonTrimHost; +NPairStyle(halffull/newton/ghost/trim/kk/host, + NPairKokkosHalffullNewtonTrimHost, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_GHOST | NP_TRIM | NP_KOKKOS_HOST); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonGhostTrimDevice; +NPairStyle(halffull/newton/skip/ghost/trim/kk/device, + NPairKokkosHalffullNewtonGhostTrimDevice, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_GHOST | NP_SKIP | NP_TRIM | NP_KOKKOS_DEVICE); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtonTrimHost; +NPairStyle(halffull/newton/skip/ghost/trim/kk/host, + NPairKokkosHalffullNewtonTrimHost, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_GHOST | NP_SKIP | NP_TRIM | NP_KOKKOS_HOST); + +// Newtoff + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffGhostTrimDevice; +NPairStyle(halffull/newtoff/ghost/trim/kk/device, + NPairKokkosHalffullNewtoffGhostTrimDevice, + NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_GHOST | NP_TRIM | NP_KOKKOS_DEVICE); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffTrimHost; +NPairStyle(halffull/newtoff/ghost/trim/kk/host, + NPairKokkosHalffullNewtoffTrimHost, + NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_GHOST | NP_TRIM | NP_KOKKOS_HOST); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffGhostTrimDevice; +NPairStyle(halffull/newtoff/skip/ghost/trim/kk/device, + NPairKokkosHalffullNewtoffGhostTrimDevice, + NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_GHOST | NP_SKIP | NP_TRIM | NP_KOKKOS_DEVICE); + +typedef NPairHalffullKokkos NPairKokkosHalffullNewtoffTrimHost; +NPairStyle(halffull/newtoff/skip/ghost/trim/kk/host, + NPairKokkosHalffullNewtoffTrimHost, + NP_HALF_FULL | NP_NEWTOFF | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_ORTHO | NP_TRI | NP_GHOST | NP_SKIP | NP_TRIM | NP_KOKKOS_HOST); // clang-format on #else @@ -132,7 +244,7 @@ namespace LAMMPS_NS { struct TagNPairHalffullCompute{}; -template +template class NPairHalffullKokkos : public NPair { public: typedef DeviceType device_type; @@ -146,6 +258,7 @@ class NPairHalffullKokkos : public NPair { private: int nlocal; + double cutsq_custom; typename AT::t_x_array_randomread x; diff --git a/src/KOKKOS/npair_kokkos.cpp b/src/KOKKOS/npair_kokkos.cpp index 5be91fed4a..a1f8fcbf48 100644 --- a/src/KOKKOS/npair_kokkos.cpp +++ b/src/KOKKOS/npair_kokkos.cpp @@ -153,6 +153,9 @@ void NPairKokkos::build(NeighList *list_) int nall = nlocal; if (GHOST) nall += atom->nghost; + + if (nall == 0) return; + list->grow(nall); NeighborKokkosExecute diff --git a/src/KOKKOS/npair_trim_kokkos.cpp b/src/KOKKOS/npair_trim_kokkos.cpp new file mode 100644 index 0000000000..bd2761f40c --- /dev/null +++ b/src/KOKKOS/npair_trim_kokkos.cpp @@ -0,0 +1,196 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Trimright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "npair_trim_kokkos.h" +#include "atom_kokkos.h" +#include "atom_masks.h" +#include "neigh_list_kokkos.h" +#include "my_page.h" +#include "error.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +template +NPairTrimKokkos::NPairTrimKokkos(LAMMPS *lmp) : NPair(lmp) {} + +/* ---------------------------------------------------------------------- + create list which is simply a copy of parent list +------------------------------------------------------------------------- */ + +template +void NPairTrimKokkos::build(NeighList *list) +{ + NeighList *listcopy = list->listcopy; + + cutsq_custom = cutoff_custom*cutoff_custom; + + if (list->kokkos) { + if (!listcopy->kokkos) + error->all(FLERR,"Cannot trim non-Kokkos neighbor list to Kokkos neighbor list"); + trim_to_kokkos(list); + } else { + if (!listcopy->kokkos) + error->all(FLERR,"Missing Kokkos neighbor list for trim"); + trim_to_cpu(list); + } +} + +/* ---------------------------------------------------------------------- */ + +template +void NPairTrimKokkos::trim_to_kokkos(NeighList *list) +{ + x = atomKK->k_x.view(); + atomKK->sync(execution_space,X_MASK); + + cutsq_custom = cutoff_custom*cutoff_custom; + + NeighListKokkos* k_list_copy = static_cast*>(list->listcopy); + d_ilist_copy = k_list_copy->d_ilist; + d_numneigh_copy = k_list_copy->d_numneigh; + d_neighbors_copy = k_list_copy->d_neighbors; + int inum_copy = list->listcopy->inum; + if (list->ghost) inum_copy += list->listcopy->gnum; + + NeighListKokkos* k_list = static_cast*>(list); + k_list->maxneighs = k_list_copy->maxneighs; // simple, but could be made more memory efficient + k_list->grow(atom->nmax); + d_ilist = k_list->d_ilist; + d_numneigh = k_list->d_numneigh; + d_neighbors = k_list->d_neighbors; + + // loop over parent list and trim + + copymode = 1; + Kokkos::parallel_for(Kokkos::RangePolicy(0,inum_copy),*this); + copymode = 0; + + list->inum = k_list_copy->inum; + list->gnum = k_list_copy->gnum; + + k_list->k_ilist.template modify(); +} + +template +KOKKOS_INLINE_FUNCTION +void NPairTrimKokkos::operator()(TagNPairTrim, const int &ii) const { + int n = 0; + + const int i = d_ilist_copy(ii); + const double xtmp = x(i,0); + const double ytmp = x(i,1); + const double ztmp = x(i,2); + + // loop over copy neighbor list + + const int jnum = d_numneigh_copy(i); + const AtomNeighbors neighbors_i = AtomNeighbors(&d_neighbors(i,0),d_numneigh(i), + &d_neighbors(i,1)-&d_neighbors(i,0)); + + for (int jj = 0; jj < jnum; jj++) { + const int joriginal = d_neighbors_copy(i,jj); + const int j = joriginal & NEIGHMASK; + + const double delx = xtmp - x(j,0); + const double dely = ytmp - x(j,1); + const double delz = ztmp - x(j,2); + const double rsq = delx*delx + dely*dely + delz*delz; + + if (rsq > cutsq_custom) continue; + + neighbors_i(n++) = joriginal; + } + + d_numneigh(i) = n; + d_ilist(ii) = i; +} + +/* ---------------------------------------------------------------------- */ + +template +void NPairTrimKokkos::trim_to_cpu(NeighList *list) +{ + NeighList *listcopy = list->listcopy; + NeighListKokkos* listcopy_kk = (NeighListKokkos*) listcopy; + + listcopy_kk->k_ilist.template sync(); + + double** x = atom->x; + + int inum = listcopy->inum; + int gnum = listcopy->gnum; + int inum_all = inum; + if (list->ghost) inum_all += gnum; + auto h_ilist = listcopy_kk->k_ilist.h_view; + auto h_numneigh = Kokkos::create_mirror_view_and_copy(LMPHostType(),listcopy_kk->d_numneigh); + auto h_neighbors = Kokkos::create_mirror_view_and_copy(LMPHostType(),listcopy_kk->d_neighbors); + + list->inum = inum; + list->gnum = gnum; + auto ilist = list->ilist; + auto numneigh = list->numneigh; + + // Kokkos neighbor data is stored differently than regular CPU, + // must loop over lists + + int *neighptr; + int **firstneigh = list->firstneigh; + MyPage *ipage = list->ipage; + ipage->reset(); + + for (int ii = 0; ii < inum_all; ii++) { + int n = 0; + neighptr = ipage->vget(); + + const int i = h_ilist[ii]; + ilist[ii] = i; + const double xtmp = x[i][0]; + const double ytmp = x[i][1]; + const double ztmp = x[i][2]; + + // loop over Kokkos neighbor list + + const int jnum = h_numneigh[i]; + + for (int jj = 0; jj < jnum; jj++) { + const int joriginal = h_neighbors(i,jj); + + const int j = joriginal & NEIGHMASK; + + const double delx = xtmp - x[j][0]; + const double dely = ytmp - x[j][1]; + const double delz = ztmp - x[j][2]; + const double rsq = delx*delx + dely*dely + delz*delz; + + if (rsq > cutsq_custom) continue; + + neighptr[n++] = joriginal; + } + + firstneigh[i] = neighptr; + numneigh[i] = n; + ipage->vgot(n); + if (ipage->status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } +} + +namespace LAMMPS_NS { +template class NPairTrimKokkos; +#ifdef LMP_KOKKOS_GPU +template class NPairTrimKokkos; +#endif +} diff --git a/src/KOKKOS/npair_trim_kokkos.h b/src/KOKKOS/npair_trim_kokkos.h new file mode 100644 index 0000000000..67b60f7337 --- /dev/null +++ b/src/KOKKOS/npair_trim_kokkos.h @@ -0,0 +1,70 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Trimright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef NPAIR_CLASS +// clang-format off +NPairStyle(trim/kk/device, + NPairTrimKokkos, + NP_COPY | NP_TRIM | NP_KOKKOS_DEVICE); + +NPairStyle(trim/kk/host, + NPairTrimKokkos, + NP_COPY | NP_TRIM | NP_KOKKOS_HOST); +// clang-format on +#else + +// clang-format off +#ifndef LMP_NPAIR_TRIM_KOKKOS_H +#define LMP_NPAIR_TRIM_KOKKOS_H + +#include "npair.h" +#include "kokkos_type.h" + +namespace LAMMPS_NS { + +struct TagNPairTrim{}; + +template +class NPairTrimKokkos : public NPair { + public: + typedef DeviceType device_type; + typedef ArrayTypes AT; + + NPairTrimKokkos(class LAMMPS *); + void build(class NeighList *) override; + + KOKKOS_INLINE_FUNCTION + void operator()(TagNPairTrim, const int&) const; + + private: + double cutsq_custom; + + typename AT::t_x_array_randomread x; + + typename AT::t_neighbors_2d_const d_neighbors_copy; + typename AT::t_int_1d_const d_ilist_copy; + typename AT::t_int_1d_const d_numneigh_copy; + + typename AT::t_neighbors_2d d_neighbors; + typename AT::t_int_1d d_ilist; + typename AT::t_int_1d d_numneigh; + + void trim_to_kokkos(class NeighList *); + void trim_to_cpu(class NeighList *); +}; + +} + +#endif +#endif + diff --git a/src/KOKKOS/pair_meam_kokkos.cpp b/src/KOKKOS/pair_meam_kokkos.cpp new file mode 100644 index 0000000000..c0f18a2969 --- /dev/null +++ b/src/KOKKOS/pair_meam_kokkos.cpp @@ -0,0 +1,753 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing authors: Naga Vydyanathan (NVIDIA), Stan Moore (SNL) +------------------------------------------------------------------------- */ + +#include "pair_meam_kokkos.h" +#include "meam_kokkos.h" + +#include "atom_kokkos.h" +#include "atom_masks.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "kokkos.h" +#include "memory_kokkos.h" +#include "neigh_list_kokkos.h" +#include "neigh_request.h" +#include "neighbor.h" + +#include + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +template +PairMEAMKokkos::PairMEAMKokkos(LAMMPS *lmp) : PairMEAM(lmp) +{ + respa_enable = 0; + + kokkosable = 1; + reverse_comm_device = 1; + atomKK = (AtomKokkos *) atom; + execution_space = ExecutionSpaceFromDevice::space; + datamask_read = X_MASK | F_MASK | TYPE_MASK | ENERGY_MASK | VIRIAL_MASK; + datamask_modify = F_MASK | ENERGY_MASK | VIRIAL_MASK; + + delete meam_inst; + meam_inst_kk = new MEAMKokkos(memory); + meam_inst = meam_inst_kk; +} + +/* ---------------------------------------------------------------------- */ + +template +PairMEAMKokkos::~PairMEAMKokkos() +{ + if (copymode) return; + + memoryKK->destroy_kokkos(k_eatom,eatom); + memoryKK->destroy_kokkos(k_vatom,vatom); + delete meam_inst_kk; + meam_inst = nullptr; +} + +/* ---------------------------------------------------------------------- */ + +template +void PairMEAMKokkos::compute(int eflag_in, int vflag_in) +{ + eflag = eflag_in; + vflag = vflag_in; + + if (neighflag == FULL) no_virial_fdotr_compute = 1; + + ev_init(eflag,vflag,0); + + // reallocate per-atom arrays if necessary + + if (eflag_atom) { + memoryKK->destroy_kokkos(k_eatom,eatom); + memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"pair:eatom"); + d_eatom = k_eatom.view(); + } + if (vflag_atom) { + memoryKK->destroy_kokkos(k_vatom,vatom); + memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"pair:vatom"); + d_vatom = k_vatom.view(); + } + + // neighbor list info + + int inum_half = listhalf->inum; + NeighListKokkos* k_halflist = static_cast*>(listhalf); + d_ilist_half = k_halflist->d_ilist; + d_numneigh_half = k_halflist->d_numneigh; + d_neighbors_half = k_halflist->d_neighbors; + + NeighListKokkos* k_fulllist = static_cast*>(listfull); + d_numneigh_full = k_fulllist->d_numneigh; + d_neighbors_full = k_fulllist->d_neighbors; + + EV_FLOAT ev; + + copymode = 1; + meam_inst_kk->copymode = 1; + + // strip neighbor lists of any special bond flags before using with MEAM + // necessary before doing neigh_f2c and neigh_c2f conversions each step + + if (neighbor->ago == 0) + Kokkos::parallel_for(Kokkos::RangePolicy(0,inum_half),*this); + + // check size of scrfcn based on half neighbor list + + nlocal = atom->nlocal; + nall = nlocal + atom->nghost; + + int n = 0; + Kokkos::parallel_reduce(Kokkos::RangePolicy(0,inum_half),*this,n); + + meam_inst_kk->meam_dens_setup(atom->nmax, nall, n); + + x = atomKK->k_x.view(); + f = atomKK->k_f.view(); + type = atomKK->k_type.view(); + + atomKK->sync(execution_space,datamask_read); + + int ntype = atom->ntypes; + + // 3 stages of MEAM calculation + // loop over my atoms followed by communication + + int errorflag = 0; + + d_offset = typename AT::t_int_1d("pair:offset",inum_half+1); + { + // local variables for lambda capture + + auto l_ilist_half = d_ilist_half; + auto l_numneigh_half = d_numneigh_half; + auto l_offset = d_offset; + + Kokkos::parallel_scan(inum_half, LAMMPS_LAMBDA(int ii, int &m_fill, bool final) { + int i = l_ilist_half[ii]; + m_fill += l_numneigh_half[i]; + if (final) + l_offset[ii+1] = m_fill; + }); + } + + int need_dup = lmp->kokkos->need_dup(); + + meam_inst_kk->meam_dens_init(inum_half,ntype,type,d_map,x,d_numneigh_half,d_numneigh_full,d_ilist_half,d_neighbors_half, d_neighbors_full, d_offset, neighflag, need_dup); + + meam_inst_kk->k_rho0.template modify(); + meam_inst_kk->k_arho2b.template modify(); + meam_inst_kk->k_arho1.template modify(); + meam_inst_kk->k_arho2.template modify(); + meam_inst_kk->k_arho3.template modify(); + meam_inst_kk->k_arho3b.template modify(); + meam_inst_kk->k_t_ave.template modify(); + meam_inst_kk->k_tsq_ave.template modify(); + + comm->reverse_comm(this); + + meam_inst_kk->k_rho0.template sync(); + meam_inst_kk->k_arho2b.template sync(); + meam_inst_kk->k_arho1.template sync(); + meam_inst_kk->k_arho2.template sync(); + meam_inst_kk->k_arho3.template sync(); + meam_inst_kk->k_arho3b.template sync(); + meam_inst_kk->k_t_ave.template sync(); + meam_inst_kk->k_tsq_ave.template sync(); + + meam_inst_kk->meam_dens_final(nlocal,eflag_either,eflag_global,eflag_atom, + d_eatom,ntype,type,d_map,d_scale,errorflag,ev); + + if (errorflag) + error->one(FLERR,"MEAM library error {}",errorflag); + + meam_inst_kk->k_rho0.template modify(); + meam_inst_kk->k_rho1.template modify(); + meam_inst_kk->k_rho2.template modify(); + meam_inst_kk->k_rho3.template modify(); + meam_inst_kk->k_frhop.template modify(); + meam_inst_kk->k_gamma.template modify(); + meam_inst_kk->k_dgamma1.template modify(); + meam_inst_kk->k_dgamma2.template modify(); + meam_inst_kk->k_dgamma3.template modify(); + meam_inst_kk->k_arho2b.template modify(); + meam_inst_kk->k_arho1.template modify(); + meam_inst_kk->k_arho2.template modify(); + meam_inst_kk->k_arho3.template modify(); + meam_inst_kk->k_arho3b.template modify(); + meam_inst_kk->k_t_ave.template modify(); + meam_inst_kk->k_tsq_ave.template modify(); + + comm->forward_comm(this); + + meam_inst_kk->k_rho0.template sync(); + meam_inst_kk->k_rho1.template sync(); + meam_inst_kk->k_rho2.template sync(); + meam_inst_kk->k_rho3.template sync(); + meam_inst_kk->k_frhop.template sync(); + meam_inst_kk->k_gamma.template sync(); + meam_inst_kk->k_dgamma1.template sync(); + meam_inst_kk->k_dgamma2.template sync(); + meam_inst_kk->k_dgamma3.template sync(); + meam_inst_kk->k_arho2b.template sync(); + meam_inst_kk->k_arho1.template sync(); + meam_inst_kk->k_arho2.template sync(); + meam_inst_kk->k_arho3.template sync(); + meam_inst_kk->k_arho3b.template sync(); + meam_inst_kk->k_t_ave.template sync(); + meam_inst_kk->k_tsq_ave.template sync(); + + meam_inst_kk->meam_force(inum_half,eflag_global,eflag_atom,vflag_global, + vflag_atom,d_eatom,ntype,type,d_map,x, + d_numneigh_half, d_numneigh_full,f,d_vatom, + d_ilist_half, d_offset, d_neighbors_half, d_neighbors_full, + neighflag, need_dup, ev); + + if (eflag_global) eng_vdwl += ev.evdwl; + if (vflag_global) { + virial[0] += ev.v[0]; + virial[1] += ev.v[1]; + virial[2] += ev.v[2]; + virial[3] += ev.v[3]; + virial[4] += ev.v[4]; + virial[5] += ev.v[5]; + } + + if (vflag_fdotr) pair_virial_fdotr_compute(this); + if (eflag_atom) { + k_eatom.template modify(); + k_eatom.sync_host(); + } + + if (vflag_atom) { + k_vatom.template modify(); + k_vatom.sync_host(); + } + + if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); + else atomKK->modified(execution_space,F_MASK); + + copymode = 0; + meam_inst_kk->copymode = 0; +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ +template +void PairMEAMKokkos::coeff(int narg, char **arg) +{ + PairMEAM::coeff(narg,arg); + + // sync map and scale + + int n = atom->ntypes; + MemKK::realloc_kokkos(d_map,"pair:map",n+1); + MemKK::realloc_kokkos(d_scale,"pair:scale",n+1,n+1); + auto h_map = Kokkos::create_mirror_view(d_map); + auto h_scale = Kokkos::create_mirror_view(d_scale); + + for (int i = 1; i <= n; i++) { + h_map[i] = map[i]; + for (int j = 1; j <= n; j++) + h_scale(i,j) = scale[i][j]; + } + + Kokkos::deep_copy(d_map,h_map); + Kokkos::deep_copy(d_scale,h_scale); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ +template +void PairMEAMKokkos::init_style() +{ + PairMEAM::init_style(); + + // adjust neighbor list request for KOKKOS + + neighflag = lmp->kokkos->neighflag; + auto request = neighbor->find_request(this,1); + request->set_kokkos_host(std::is_same::value && + !std::is_same::value); + request->set_kokkos_device(std::is_same::value); + + request = neighbor->find_request(this,2); + request->set_kokkos_host(std::is_same::value && + !std::is_same::value); + request->set_kokkos_device(std::is_same::value); + + if (neighflag == FULL) + error->all(FLERR,"Must use half neighbor list style with pair meam/kk"); +} + +/* ---------------------------------------------------------------------- */ + +template +int PairMEAMKokkos::pack_forward_comm_kokkos(int n, DAT::tdual_int_2d k_sendlist, int iswap_in, DAT::tdual_xfloat_1d &buf, + int /*pbc_flag*/, int * /*pbc*/) +{ + d_sendlist = k_sendlist.view(); + iswap = iswap_in; + v_buf = buf.view(); + Kokkos::parallel_for(Kokkos::RangePolicy(0,n),*this); + return n*38; +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void PairMEAMKokkos::operator()(TagPairMEAMPackForwardComm, const int &i) const { + int j = d_sendlist(iswap, i); + int m = i*38; + v_buf[m++] = meam_inst_kk->d_rho0[j]; + v_buf[m++] = meam_inst_kk->d_rho1[j]; + v_buf[m++] = meam_inst_kk->d_rho2[j]; + v_buf[m++] = meam_inst_kk->d_rho3[j]; + v_buf[m++] = meam_inst_kk->d_frhop[j]; + v_buf[m++] = meam_inst_kk->d_gamma[j]; + v_buf[m++] = meam_inst_kk->d_dgamma1[j]; + v_buf[m++] = meam_inst_kk->d_dgamma2[j]; + v_buf[m++] = meam_inst_kk->d_dgamma3[j]; + v_buf[m++] = meam_inst_kk->d_arho2b[j]; + v_buf[m++] = meam_inst_kk->d_arho1(j,0); + v_buf[m++] = meam_inst_kk->d_arho1(j,1); + v_buf[m++] = meam_inst_kk->d_arho1(j,2); + v_buf[m++] = meam_inst_kk->d_arho2(j,0); + v_buf[m++] = meam_inst_kk->d_arho2(j,1); + v_buf[m++] = meam_inst_kk->d_arho2(j,2); + v_buf[m++] = meam_inst_kk->d_arho2(j,3); + v_buf[m++] = meam_inst_kk->d_arho2(j,4); + v_buf[m++] = meam_inst_kk->d_arho2(j,5); + for (int k = 0; k < 10; k++) v_buf[m++] = meam_inst_kk->d_arho3(j,k); + v_buf[m++] = meam_inst_kk->d_arho3b(j,0); + v_buf[m++] = meam_inst_kk->d_arho3b(j,1); + v_buf[m++] = meam_inst_kk->d_arho3b(j,2); + v_buf[m++] = meam_inst_kk->d_t_ave(j,0); + v_buf[m++] = meam_inst_kk->d_t_ave(j,1); + v_buf[m++] = meam_inst_kk->d_t_ave(j,2); + v_buf[m++] = meam_inst_kk->d_tsq_ave(j,0); + v_buf[m++] = meam_inst_kk->d_tsq_ave(j,1); + v_buf[m++] = meam_inst_kk->d_tsq_ave(j,2); +} + +/* ---------------------------------------------------------------------- */ + +template +void PairMEAMKokkos::unpack_forward_comm_kokkos(int n, int first_in, DAT::tdual_xfloat_1d &buf) +{ + first = first_in; + v_buf = buf.view(); + Kokkos::parallel_for(Kokkos::RangePolicy(0,n),*this); +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void PairMEAMKokkos::operator()(TagPairMEAMUnpackForwardComm, const int &i) const{ + int m = i*38; + + meam_inst_kk->d_rho0[i+first] = v_buf[m++]; + meam_inst_kk->d_rho1[i+first] = v_buf[m++]; + meam_inst_kk->d_rho2[i+first] = v_buf[m++]; + meam_inst_kk->d_rho3[i+first] = v_buf[m++]; + meam_inst_kk->d_frhop[i+first] = v_buf[m++]; + meam_inst_kk->d_gamma[i+first] = v_buf[m++]; + meam_inst_kk->d_dgamma1[i+first] = v_buf[m++]; + meam_inst_kk->d_dgamma2[i+first] = v_buf[m++]; + meam_inst_kk->d_dgamma3[i+first] = v_buf[m++]; + meam_inst_kk->d_arho2b[i+first] = v_buf[m++]; + meam_inst_kk->d_arho1(i+first,0) = v_buf[m++]; + meam_inst_kk->d_arho1(i+first,1) = v_buf[m++]; + meam_inst_kk->d_arho1(i+first,2) = v_buf[m++]; + meam_inst_kk->d_arho2(i+first,0) = v_buf[m++]; + meam_inst_kk->d_arho2(i+first,1) = v_buf[m++]; + meam_inst_kk->d_arho2(i+first,2) = v_buf[m++]; + meam_inst_kk->d_arho2(i+first,3) = v_buf[m++]; + meam_inst_kk->d_arho2(i+first,4) = v_buf[m++]; + meam_inst_kk->d_arho2(i+first,5) = v_buf[m++]; + for (int k = 0; k < 10; k++) meam_inst_kk->d_arho3(i+first,k) = v_buf[m++]; + meam_inst_kk->d_arho3b(i+first,0) = v_buf[m++]; + meam_inst_kk->d_arho3b(i+first,1) = v_buf[m++]; + meam_inst_kk->d_arho3b(i+first,2) = v_buf[m++]; + meam_inst_kk->d_t_ave(i+first,0) = v_buf[m++]; + meam_inst_kk->d_t_ave(i+first,1) = v_buf[m++]; + meam_inst_kk->d_t_ave(i+first,2) = v_buf[m++]; + meam_inst_kk->d_tsq_ave(i+first,0) = v_buf[m++]; + meam_inst_kk->d_tsq_ave(i+first,1) = v_buf[m++]; + meam_inst_kk->d_tsq_ave(i+first,2) = v_buf[m++]; + } + +/* ---------------------------------------------------------------------- */ + +template +int PairMEAMKokkos::pack_forward_comm(int n, int *list, double *buf, + int pbc_flag, int *pbc) +{ + meam_inst_kk->k_rho0.sync_host(); + meam_inst_kk->k_rho1.sync_host(); + meam_inst_kk->k_rho2.sync_host(); + meam_inst_kk->k_rho3.sync_host(); + meam_inst_kk->k_frhop.sync_host(); + meam_inst_kk->k_gamma.sync_host(); + meam_inst_kk->k_dgamma1.sync_host(); + meam_inst_kk->k_dgamma2.sync_host(); + meam_inst_kk->k_dgamma3.sync_host(); + meam_inst_kk->k_arho2b.sync_host(); + meam_inst_kk->k_arho1.sync_host(); + meam_inst_kk->k_arho2.sync_host(); + meam_inst_kk->k_arho3.sync_host(); + meam_inst_kk->k_arho3b.sync_host(); + meam_inst_kk->k_t_ave.sync_host(); + meam_inst_kk->k_tsq_ave.sync_host(); + + int m = 0; + for (int i = 0; i < n; i++) { + const int j = list[i]; + buf[m++] = meam_inst_kk->h_rho0[j]; + buf[m++] = meam_inst_kk->h_rho1[j]; + buf[m++] = meam_inst_kk->h_rho2[j]; + buf[m++] = meam_inst_kk->h_rho3[j]; + buf[m++] = meam_inst_kk->h_frhop[j]; + buf[m++] = meam_inst_kk->h_gamma[j]; + buf[m++] = meam_inst_kk->h_dgamma1[j]; + buf[m++] = meam_inst_kk->h_dgamma2[j]; + buf[m++] = meam_inst_kk->h_dgamma3[j]; + buf[m++] = meam_inst_kk->h_arho2b[j]; + buf[m++] = meam_inst_kk->h_arho1(j,0); + buf[m++] = meam_inst_kk->h_arho1(j,1); + buf[m++] = meam_inst_kk->h_arho1(j,2); + buf[m++] = meam_inst_kk->h_arho2(j,0); + buf[m++] = meam_inst_kk->h_arho2(j,1); + buf[m++] = meam_inst_kk->h_arho2(j,2); + buf[m++] = meam_inst_kk->h_arho2(j,3); + buf[m++] = meam_inst_kk->h_arho2(j,4); + buf[m++] = meam_inst_kk->h_arho2(j,5); + for (int k = 0; k < 10; k++) buf[m++] = meam_inst_kk->h_arho3(j,k); + buf[m++] = meam_inst_kk->h_arho3b(j,0); + buf[m++] = meam_inst_kk->h_arho3b(j,1); + buf[m++] = meam_inst_kk->h_arho3b(j,2); + buf[m++] = meam_inst_kk->h_t_ave(j,0); + buf[m++] = meam_inst_kk->h_t_ave(j,1); + buf[m++] = meam_inst_kk->h_t_ave(j,2); + buf[m++] = meam_inst_kk->h_tsq_ave(j,0); + buf[m++] = meam_inst_kk->h_tsq_ave(j,1); + buf[m++] = meam_inst_kk->h_tsq_ave(j,2); + } + + return m; +} + +/* ---------------------------------------------------------------------- */ + +template +void PairMEAMKokkos::unpack_forward_comm(int n, int first, double *buf) +{ + meam_inst_kk->k_rho0.sync_host(); + meam_inst_kk->k_rho1.sync_host(); + meam_inst_kk->k_rho2.sync_host(); + meam_inst_kk->k_rho3.sync_host(); + meam_inst_kk->k_frhop.sync_host(); + meam_inst_kk->k_gamma.sync_host(); + meam_inst_kk->k_dgamma1.sync_host(); + meam_inst_kk->k_dgamma2.sync_host(); + meam_inst_kk->k_dgamma3.sync_host(); + meam_inst_kk->k_arho2b.sync_host(); + meam_inst_kk->k_arho1.sync_host(); + meam_inst_kk->k_arho2.sync_host(); + meam_inst_kk->k_arho3.sync_host(); + meam_inst_kk->k_arho3b.sync_host(); + meam_inst_kk->k_t_ave.sync_host(); + meam_inst_kk->k_tsq_ave.sync_host(); + + int m = 0; + const int last = first + n; + for (int i = first; i < last; i++) { + meam_inst_kk->h_rho0[i] = buf[m++]; + meam_inst_kk->h_rho1[i] = buf[m++]; + meam_inst_kk->h_rho2[i] = buf[m++]; + meam_inst_kk->h_rho3[i] = buf[m++]; + meam_inst_kk->h_frhop[i] = buf[m++]; + meam_inst_kk->h_gamma[i] = buf[m++]; + meam_inst_kk->h_dgamma1[i] = buf[m++]; + meam_inst_kk->h_dgamma2[i] = buf[m++]; + meam_inst_kk->h_dgamma3[i] = buf[m++]; + meam_inst_kk->h_arho2b[i] = buf[m++]; + meam_inst_kk->h_arho1(i,0) = buf[m++]; + meam_inst_kk->h_arho1(i,1) = buf[m++]; + meam_inst_kk->h_arho1(i,2) = buf[m++]; + meam_inst_kk->h_arho2(i,0) = buf[m++]; + meam_inst_kk->h_arho2(i,1) = buf[m++]; + meam_inst_kk->h_arho2(i,2) = buf[m++]; + meam_inst_kk->h_arho2(i,3) = buf[m++]; + meam_inst_kk->h_arho2(i,4) = buf[m++]; + meam_inst_kk->h_arho2(i,5) = buf[m++]; + for (int k = 0; k < 10; k++) meam_inst_kk->h_arho3(i,k) = buf[m++]; + meam_inst_kk->h_arho3b(i,0) = buf[m++]; + meam_inst_kk->h_arho3b(i,1) = buf[m++]; + meam_inst_kk->h_arho3b(i,2) = buf[m++]; + meam_inst_kk->h_t_ave(i,0) = buf[m++]; + meam_inst_kk->h_t_ave(i,1) = buf[m++]; + meam_inst_kk->h_t_ave(i,2) = buf[m++]; + meam_inst_kk->h_tsq_ave(i,0) = buf[m++]; + meam_inst_kk->h_tsq_ave(i,1) = buf[m++]; + meam_inst_kk->h_tsq_ave(i,2) = buf[m++]; + } + + meam_inst_kk->k_rho0.modify_host(); + meam_inst_kk->k_rho1.modify_host(); + meam_inst_kk->k_rho2.modify_host(); + meam_inst_kk->k_rho3.modify_host(); + meam_inst_kk->k_frhop.modify_host(); + meam_inst_kk->k_gamma.modify_host(); + meam_inst_kk->k_dgamma1.modify_host(); + meam_inst_kk->k_dgamma2.modify_host(); + meam_inst_kk->k_dgamma3.modify_host(); + meam_inst_kk->k_arho2b.modify_host(); + meam_inst_kk->k_arho1.modify_host(); + meam_inst_kk->k_arho2.modify_host(); + meam_inst_kk->k_arho3.modify_host(); + meam_inst_kk->k_arho3b.modify_host(); + meam_inst_kk->k_t_ave.modify_host(); + meam_inst_kk->k_tsq_ave.modify_host(); +} + +/* ---------------------------------------------------------------------- */ + +template +int PairMEAMKokkos::pack_reverse_comm_kokkos(int n, int first_in, DAT::tdual_xfloat_1d &buf) +{ + first = first_in; + v_buf = buf.view(); + Kokkos::parallel_for(Kokkos::RangePolicy(0,n),*this); + return n*30; +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void PairMEAMKokkos::operator()(TagPairMEAMPackReverseComm, const int &i) const { + int m = i*30; + + v_buf[m++] = meam_inst_kk->d_rho0[i+first]; + v_buf[m++] = meam_inst_kk->d_arho2b[i+first]; + v_buf[m++] = meam_inst_kk->d_arho1(i+first,0); + v_buf[m++] = meam_inst_kk->d_arho1(i+first,1); + v_buf[m++] = meam_inst_kk->d_arho1(i+first,2); + v_buf[m++] = meam_inst_kk->d_arho2(i+first,0); + v_buf[m++] = meam_inst_kk->d_arho2(i+first,1); + v_buf[m++] = meam_inst_kk->d_arho2(i+first,2); + v_buf[m++] = meam_inst_kk->d_arho2(i+first,3); + v_buf[m++] = meam_inst_kk->d_arho2(i+first,4); + v_buf[m++] = meam_inst_kk->d_arho2(i+first,5); + for (int k = 0; k < 10; k++) v_buf[m++] = meam_inst_kk->d_arho3(i+first,k); + v_buf[m++] = meam_inst_kk->d_arho3b(i+first,0); + v_buf[m++] = meam_inst_kk->d_arho3b(i+first,1); + v_buf[m++] = meam_inst_kk->d_arho3b(i+first,2); + v_buf[m++] = meam_inst_kk->d_t_ave(i+first,0); + v_buf[m++] = meam_inst_kk->d_t_ave(i+first,1); + v_buf[m++] = meam_inst_kk->d_t_ave(i+first,2); + v_buf[m++] = meam_inst_kk->d_tsq_ave(i+first,0); + v_buf[m++] = meam_inst_kk->d_tsq_ave(i+first,1); + v_buf[m++] = meam_inst_kk->d_tsq_ave(i+first,2); +} + +/* ---------------------------------------------------------------------- */ + +template +int PairMEAMKokkos::pack_reverse_comm(int n, int first, double *buf) +{ + meam_inst_kk->k_rho0.sync_host(); + meam_inst_kk->k_arho2b.sync_host(); + meam_inst_kk->k_arho1.sync_host(); + meam_inst_kk->k_arho2.sync_host(); + meam_inst_kk->k_arho3.sync_host(); + meam_inst_kk->k_arho3b.sync_host(); + meam_inst_kk->k_t_ave.sync_host(); + meam_inst_kk->k_tsq_ave.sync_host(); + + int m = 0; + const int last = first + n; + for (int i = first; i < last; i++) { + buf[m++] = meam_inst_kk->h_rho0[i]; + buf[m++] = meam_inst_kk->h_arho2b[i]; + buf[m++] = meam_inst_kk->h_arho1(i,0); + buf[m++] = meam_inst_kk->h_arho1(i,1); + buf[m++] = meam_inst_kk->h_arho1(i,2); + buf[m++] = meam_inst_kk->h_arho2(i,0); + buf[m++] = meam_inst_kk->h_arho2(i,1); + buf[m++] = meam_inst_kk->h_arho2(i,2); + buf[m++] = meam_inst_kk->h_arho2(i,3); + buf[m++] = meam_inst_kk->h_arho2(i,4); + buf[m++] = meam_inst_kk->h_arho2(i,5); + for (int k = 0; k < 10; k++) buf[m++] = meam_inst_kk->h_arho3(i,k); + buf[m++] = meam_inst_kk->h_arho3b(i,0); + buf[m++] = meam_inst_kk->h_arho3b(i,1); + buf[m++] = meam_inst_kk->h_arho3b(i,2); + buf[m++] = meam_inst_kk->h_t_ave(i,0); + buf[m++] = meam_inst_kk->h_t_ave(i,1); + buf[m++] = meam_inst_kk->h_t_ave(i,2); + buf[m++] = meam_inst_kk->h_tsq_ave(i,0); + buf[m++] = meam_inst_kk->h_tsq_ave(i,1); + buf[m++] = meam_inst_kk->h_tsq_ave(i,2); + } + + return m; +} + +/* ---------------------------------------------------------------------- */ + +template +void PairMEAMKokkos::unpack_reverse_comm_kokkos(int n, DAT::tdual_int_2d k_sendlist, int iswap_in, DAT::tdual_xfloat_1d &buf) +{ + d_sendlist = k_sendlist.view(); + iswap = iswap_in; + v_buf = buf.view(); + Kokkos::parallel_for(Kokkos::RangePolicy(0,n),*this); +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void PairMEAMKokkos::operator()(TagPairMEAMUnpackReverseComm, const int &i) const { + int j = d_sendlist(iswap, i); + int m = i*30; + + meam_inst_kk->d_rho0[j] += v_buf[m++]; + meam_inst_kk->d_arho2b[j] += v_buf[m++]; + meam_inst_kk->d_arho1(j,0) += v_buf[m++]; + meam_inst_kk->d_arho1(j,1) += v_buf[m++]; + meam_inst_kk->d_arho1(j,2) += v_buf[m++]; + meam_inst_kk->d_arho2(j,0) += v_buf[m++]; + meam_inst_kk->d_arho2(j,1) += v_buf[m++]; + meam_inst_kk->d_arho2(j,2) += v_buf[m++]; + meam_inst_kk->d_arho2(j,3) += v_buf[m++]; + meam_inst_kk->d_arho2(j,4) += v_buf[m++]; + meam_inst_kk->d_arho2(j,5) += v_buf[m++]; + for (int k = 0; k < 10; k++) meam_inst_kk->d_arho3(j,k) += v_buf[m++]; + meam_inst_kk->d_arho3b(j,0) += v_buf[m++]; + meam_inst_kk->d_arho3b(j,1) += v_buf[m++]; + meam_inst_kk->d_arho3b(j,2) += v_buf[m++]; + meam_inst_kk->d_t_ave(j,0) += v_buf[m++]; + meam_inst_kk->d_t_ave(j,1) += v_buf[m++]; + meam_inst_kk->d_t_ave(j,2) += v_buf[m++]; + meam_inst_kk->d_tsq_ave(j,0) += v_buf[m++]; + meam_inst_kk->d_tsq_ave(j,1) += v_buf[m++]; + meam_inst_kk->d_tsq_ave(j,2) += v_buf[m++]; +} + +/* ---------------------------------------------------------------------- */ + +template +void PairMEAMKokkos::unpack_reverse_comm(int n, int *list, double *buf) +{ + meam_inst_kk->k_rho0.sync_host(); + meam_inst_kk->k_arho2b.sync_host(); + meam_inst_kk->k_arho1.sync_host(); + meam_inst_kk->k_arho2.sync_host(); + meam_inst_kk->k_arho3.sync_host(); + meam_inst_kk->k_arho3b.sync_host(); + meam_inst_kk->k_t_ave.sync_host(); + meam_inst_kk->k_tsq_ave.sync_host(); + + int m = 0; + for (int i = 0; i < n; i++) { + const int j = list[i]; + meam_inst_kk->h_rho0[j] += buf[m++]; + meam_inst_kk->h_arho2b[j] += buf[m++]; + meam_inst_kk->h_arho1(j,0) += buf[m++]; + meam_inst_kk->h_arho1(j,1) += buf[m++]; + meam_inst_kk->h_arho1(j,2) += buf[m++]; + meam_inst_kk->h_arho2(j,0) += buf[m++]; + meam_inst_kk->h_arho2(j,1) += buf[m++]; + meam_inst_kk->h_arho2(j,2) += buf[m++]; + meam_inst_kk->h_arho2(j,3) += buf[m++]; + meam_inst_kk->h_arho2(j,4) += buf[m++]; + meam_inst_kk->h_arho2(j,5) += buf[m++]; + for (int k = 0; k < 10; k++) meam_inst_kk->h_arho3(j,k) += buf[m++]; + meam_inst_kk->h_arho3b(j,0) += buf[m++]; + meam_inst_kk->h_arho3b(j,1) += buf[m++]; + meam_inst_kk->h_arho3b(j,2) += buf[m++]; + meam_inst_kk->h_t_ave(j,0) += buf[m++]; + meam_inst_kk->h_t_ave(j,1) += buf[m++]; + meam_inst_kk->h_t_ave(j,2) += buf[m++]; + meam_inst_kk->h_tsq_ave(j,0) += buf[m++]; + meam_inst_kk->h_tsq_ave(j,1) += buf[m++]; + meam_inst_kk->h_tsq_ave(j,2) += buf[m++]; + } + + meam_inst_kk->k_rho0.modify_host(); + meam_inst_kk->k_arho2b.modify_host(); + meam_inst_kk->k_arho1.modify_host(); + meam_inst_kk->k_arho2.modify_host(); + meam_inst_kk->k_arho3.modify_host(); + meam_inst_kk->k_arho3b.modify_host(); + meam_inst_kk->k_t_ave.modify_host(); + meam_inst_kk->k_tsq_ave.modify_host(); +} + +/* ---------------------------------------------------------------------- + strip special bond flags from neighbor list entries + are not used with MEAM + need to do here so Fortran lib doesn't see them + done once per reneighbor so that neigh_f2c and neigh_c2f don't see them +------------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void PairMEAMKokkos::operator()(TagPairMEAMNeighStrip, const int &ii) const { + + const int i = d_ilist_half[ii]; + const int jnum_half = d_numneigh_half[i]; + const int jnum_full = d_numneigh_full[i]; + for (int jj = 0; jj < jnum_half; jj++) + d_neighbors_half(i,jj) &= NEIGHMASK; + for (int jj = 0; jj < jnum_full; jj++) + d_neighbors_full(i,jj) &= NEIGHMASK; +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void PairMEAMKokkos::operator()(TagPairMEAMOffsets, const int ii, int &n) const { + const int i = d_ilist_half[ii]; + n += d_numneigh_half[i]; +} + +/* ---------------------------------------------------------------------- */ + +namespace LAMMPS_NS { +template class PairMEAMKokkos; +#ifdef KOKKOS_ENABLE_CUDA +template class PairMEAMKokkos; +#endif +} + diff --git a/src/KOKKOS/pair_meam_kokkos.h b/src/KOKKOS/pair_meam_kokkos.h new file mode 100644 index 0000000000..fef4266b8a --- /dev/null +++ b/src/KOKKOS/pair_meam_kokkos.h @@ -0,0 +1,123 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS +// clang-format off +PairStyle(meam/c/kk,PairMEAMKokkos) +PairStyle(meam/c/kk/device,PairMEAMKokkos) +PairStyle(meam/c/kk/host,PairMEAMKokkos) +PairStyle(meam/kk,PairMEAMKokkos) +PairStyle(meam/kk/device,PairMEAMKokkos) +PairStyle(meam/kk/host,PairMEAMKokkos) +// clang-format on +#else + +// clang-format off +#ifndef LMP_PAIR_MEAM_KOKKOS_H +#define LMP_PAIR_MEAM_KOKKOS_H + +#include "kokkos_base.h" +#include "pair_kokkos.h" +#include "pair_meam.h" +#include "meam_kokkos.h" + +namespace LAMMPS_NS { + +struct TagPairMEAMNeighStrip{}; +struct TagPairMEAMOffsets{}; +struct TagPairMEAMPackForwardComm{}; +struct TagPairMEAMUnpackForwardComm{}; +struct TagPairMEAMPackReverseComm{}; +struct TagPairMEAMUnpackReverseComm{}; + +template +class MEAMKokkos; + +template +class PairMEAMKokkos : public PairMEAM, public KokkosBase { + public: + enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF}; + enum {COUL_FLAG=0}; + typedef DeviceType device_type; + typedef ArrayTypes AT; + typedef int value_type; + + PairMEAMKokkos(class LAMMPS *); + ~PairMEAMKokkos() override; + void compute(int, int) override; + void coeff(int, char **) override; + void init_style() override; + + KOKKOS_INLINE_FUNCTION + void operator()(TagPairMEAMPackForwardComm, const int&) const; + + KOKKOS_INLINE_FUNCTION + void operator()(TagPairMEAMUnpackForwardComm, const int&) const; + + KOKKOS_INLINE_FUNCTION + void operator()(TagPairMEAMPackReverseComm, const int&) const; + + KOKKOS_INLINE_FUNCTION + void operator()(TagPairMEAMUnpackReverseComm, const int&) const; + + KOKKOS_INLINE_FUNCTION + void operator()(TagPairMEAMNeighStrip, const int&) const; + + KOKKOS_INLINE_FUNCTION + void operator()(TagPairMEAMOffsets, const int, int&) const; + + int pack_forward_comm_kokkos(int, DAT::tdual_int_2d, int, DAT::tdual_xfloat_1d&, + int, int *) override; + int pack_forward_comm(int, int *, double *, int, int *) override; + void unpack_forward_comm_kokkos(int, int, DAT::tdual_xfloat_1d&) override; + void unpack_forward_comm(int, int, double *) override; + int pack_reverse_comm_kokkos(int, int, DAT::tdual_xfloat_1d&) override; + int pack_reverse_comm(int, int, double *) override; + void unpack_reverse_comm_kokkos(int, DAT::tdual_int_2d, + int, DAT::tdual_xfloat_1d&) override; + void unpack_reverse_comm(int, int *, double *) override; + + protected: + class MEAMKokkos *meam_inst_kk; + typename AT::t_x_array x; + typename AT::t_f_array f; + typename AT::t_int_1d type; + + DAT::tdual_efloat_1d k_eatom; + DAT::tdual_virial_array k_vatom; + typename AT::t_efloat_1d d_eatom; + typename AT::t_virial_array d_vatom; + + typename AT::t_int_1d d_offset; + + DAT::tdual_int_1d k_map; + typename AT::t_int_1d d_map; + typename AT::t_int_2d d_scale; + typename AT::t_int_1d d_ilist_half; + typename AT::t_int_1d d_numneigh_half; + typename AT::t_neighbors_2d d_neighbors_half; + typename AT::t_int_1d d_numneigh_full; + typename AT::t_neighbors_2d d_neighbors_full; + typename AT::t_int_2d d_sendlist; + typename AT::t_xfloat_1d_um v_buf; + + int iswap,first; + int neighflag,nlocal,nall,eflag,vflag; + + friend void pair_virial_fdotr_compute(PairMEAMKokkos*); +}; + +} +#endif +#endif + diff --git a/src/KOKKOS/pair_pace_kokkos.cpp b/src/KOKKOS/pair_pace_kokkos.cpp index ddf3bf9107..4ffc971cea 100644 --- a/src/KOKKOS/pair_pace_kokkos.cpp +++ b/src/KOKKOS/pair_pace_kokkos.cpp @@ -104,55 +104,55 @@ void PairPACEKokkos::grow(int natom, int maxneigh) if ((int)A.extent(0) < natom) { - memoryKK->realloc_kokkos(A, "pace:A", natom, nelements, nradmax + 1, (lmax + 1) * (lmax + 1)); - memoryKK->realloc_kokkos(A_rank1, "pace:A_rank1", natom, nelements, nradbase); + MemKK::realloc_kokkos(A, "pace:A", natom, nelements, nradmax + 1, (lmax + 1) * (lmax + 1)); + MemKK::realloc_kokkos(A_rank1, "pace:A_rank1", natom, nelements, nradbase); - memoryKK->realloc_kokkos(A_list, "pace:A_list", natom, idx_rho_max, basis_set->rankmax); + MemKK::realloc_kokkos(A_list, "pace:A_list", natom, idx_rho_max, basis_set->rankmax); //size is +1 of max to avoid out-of-boundary array access in double-triangular scheme - memoryKK->realloc_kokkos(A_forward_prod, "pace:A_forward_prod", natom, idx_rho_max, basis_set->rankmax + 1); + MemKK::realloc_kokkos(A_forward_prod, "pace:A_forward_prod", natom, idx_rho_max, basis_set->rankmax + 1); - memoryKK->realloc_kokkos(e_atom, "pace:e_atom", natom); - memoryKK->realloc_kokkos(rhos, "pace:rhos", natom, basis_set->ndensitymax + 1); // +1 density for core repulsion - memoryKK->realloc_kokkos(dF_drho, "pace:dF_drho", natom, basis_set->ndensitymax + 1); // +1 density for core repulsion + MemKK::realloc_kokkos(e_atom, "pace:e_atom", natom); + MemKK::realloc_kokkos(rhos, "pace:rhos", natom, basis_set->ndensitymax + 1); // +1 density for core repulsion + MemKK::realloc_kokkos(dF_drho, "pace:dF_drho", natom, basis_set->ndensitymax + 1); // +1 density for core repulsion - memoryKK->realloc_kokkos(weights, "pace:weights", natom, nelements, nradmax + 1, (lmax + 1) * (lmax + 1)); - memoryKK->realloc_kokkos(weights_rank1, "pace:weights_rank1", natom, nelements, nradbase); + MemKK::realloc_kokkos(weights, "pace:weights", natom, nelements, nradmax + 1, (lmax + 1) * (lmax + 1)); + MemKK::realloc_kokkos(weights_rank1, "pace:weights_rank1", natom, nelements, nradbase); // hard-core repulsion - memoryKK->realloc_kokkos(rho_core, "pace:rho_core", natom); - memoryKK->realloc_kokkos(dF_drho_core, "pace:dF_drho_core", natom); - memoryKK->realloc_kokkos(dB_flatten, "pace:dB_flatten", natom, idx_rho_max, basis_set->rankmax); + MemKK::realloc_kokkos(rho_core, "pace:rho_core", natom); + MemKK::realloc_kokkos(dF_drho_core, "pace:dF_drho_core", natom); + MemKK::realloc_kokkos(dB_flatten, "pace:dB_flatten", natom, idx_rho_max, basis_set->rankmax); } if (((int)ylm.extent(0) < natom) || ((int)ylm.extent(1) < maxneigh)) { // radial functions - memoryKK->realloc_kokkos(fr, "pace:fr", natom, maxneigh, nradmax, lmax + 1); - memoryKK->realloc_kokkos(dfr, "pace:dfr", natom, maxneigh, nradmax, lmax + 1); - memoryKK->realloc_kokkos(gr, "pace:gr", natom, maxneigh, nradbase); - memoryKK->realloc_kokkos(dgr, "pace:dgr", natom, maxneigh, nradbase); + MemKK::realloc_kokkos(fr, "pace:fr", natom, maxneigh, nradmax, lmax + 1); + MemKK::realloc_kokkos(dfr, "pace:dfr", natom, maxneigh, nradmax, lmax + 1); + MemKK::realloc_kokkos(gr, "pace:gr", natom, maxneigh, nradbase); + MemKK::realloc_kokkos(dgr, "pace:dgr", natom, maxneigh, nradbase); const int max_num_functions = MAX(nradbase, nradmax*(lmax + 1)); - memoryKK->realloc_kokkos(d_values, "pace:d_values", natom, maxneigh, max_num_functions); - memoryKK->realloc_kokkos(d_derivatives, "pace:d_derivatives", natom, maxneigh, max_num_functions); + MemKK::realloc_kokkos(d_values, "pace:d_values", natom, maxneigh, max_num_functions); + MemKK::realloc_kokkos(d_derivatives, "pace:d_derivatives", natom, maxneigh, max_num_functions); // hard-core repulsion - memoryKK->realloc_kokkos(cr, "pace:cr", natom, maxneigh); - memoryKK->realloc_kokkos(dcr, "pace:dcr", natom, maxneigh); + MemKK::realloc_kokkos(cr, "pace:cr", natom, maxneigh); + MemKK::realloc_kokkos(dcr, "pace:dcr", natom, maxneigh); // spherical harmonics - memoryKK->realloc_kokkos(plm, "pace:plm", natom, maxneigh, (lmax + 1) * (lmax + 1)); - memoryKK->realloc_kokkos(dplm, "pace:dplm", natom, maxneigh, (lmax + 1) * (lmax + 1)); - memoryKK->realloc_kokkos(ylm, "pace:ylm", natom, maxneigh, (lmax + 1) * (lmax + 1)); - memoryKK->realloc_kokkos(dylm, "pace:dylm", natom, maxneigh, (lmax + 1) * (lmax + 1)); + MemKK::realloc_kokkos(plm, "pace:plm", natom, maxneigh, (lmax + 1) * (lmax + 1)); + MemKK::realloc_kokkos(dplm, "pace:dplm", natom, maxneigh, (lmax + 1) * (lmax + 1)); + MemKK::realloc_kokkos(ylm, "pace:ylm", natom, maxneigh, (lmax + 1) * (lmax + 1)); + MemKK::realloc_kokkos(dylm, "pace:dylm", natom, maxneigh, (lmax + 1) * (lmax + 1)); // short neigh list - memoryKK->realloc_kokkos(d_ncount, "pace:ncount", natom); - memoryKK->realloc_kokkos(d_mu, "pace:mu", natom, maxneigh); - memoryKK->realloc_kokkos(d_rhats, "pace:rhats", natom, maxneigh); - memoryKK->realloc_kokkos(d_rnorms, "pace:rnorms", natom, maxneigh); - memoryKK->realloc_kokkos(d_nearest, "pace:nearest", natom, maxneigh); + MemKK::realloc_kokkos(d_ncount, "pace:ncount", natom); + MemKK::realloc_kokkos(d_mu, "pace:mu", natom, maxneigh); + MemKK::realloc_kokkos(d_rhats, "pace:rhats", natom, maxneigh); + MemKK::realloc_kokkos(d_rnorms, "pace:rnorms", natom, maxneigh); + MemKK::realloc_kokkos(d_nearest, "pace:nearest", natom, maxneigh); - memoryKK->realloc_kokkos(f_ij, "pace:f_ij", natom, maxneigh); + MemKK::realloc_kokkos(f_ij, "pace:f_ij", natom, maxneigh); } } @@ -163,11 +163,11 @@ void PairPACEKokkos::copy_pertype() { auto basis_set = aceimpl->basis_set; - memoryKK->realloc_kokkos(d_rho_core_cutoff, "pace:rho_core_cutoff", nelements); - memoryKK->realloc_kokkos(d_drho_core_cutoff, "pace:drho_core_cutoff", nelements); - memoryKK->realloc_kokkos(d_E0vals, "pace:E0vals", nelements); - memoryKK->realloc_kokkos(d_ndensity, "pace:ndensity", nelements); - memoryKK->realloc_kokkos(d_npoti, "pace:npoti", nelements); + MemKK::realloc_kokkos(d_rho_core_cutoff, "pace:rho_core_cutoff", nelements); + MemKK::realloc_kokkos(d_drho_core_cutoff, "pace:drho_core_cutoff", nelements); + MemKK::realloc_kokkos(d_E0vals, "pace:E0vals", nelements); + MemKK::realloc_kokkos(d_ndensity, "pace:ndensity", nelements); + MemKK::realloc_kokkos(d_npoti, "pace:npoti", nelements); auto h_rho_core_cutoff = Kokkos::create_mirror_view(d_rho_core_cutoff); auto h_drho_core_cutoff = Kokkos::create_mirror_view(d_drho_core_cutoff); @@ -196,8 +196,8 @@ void PairPACEKokkos::copy_pertype() Kokkos::deep_copy(d_ndensity, h_ndensity); Kokkos::deep_copy(d_npoti, h_npoti); - memoryKK->realloc_kokkos(d_wpre, "pace:wpre", nelements, basis_set->ndensitymax); - memoryKK->realloc_kokkos(d_mexp, "pace:mexp", nelements, basis_set->ndensitymax); + MemKK::realloc_kokkos(d_wpre, "pace:wpre", nelements, basis_set->ndensitymax); + MemKK::realloc_kokkos(d_mexp, "pace:mexp", nelements, basis_set->ndensitymax); auto h_wpre = Kokkos::create_mirror_view(d_wpre); auto h_mexp = Kokkos::create_mirror_view(d_mexp); @@ -266,7 +266,7 @@ void PairPACEKokkos::copy_tilde() idx_rho_max = 0; int total_basis_size_max = 0; - memoryKK->realloc_kokkos(d_idx_rho_count, "pace:idx_rho_count", nelements); + MemKK::realloc_kokkos(d_idx_rho_count, "pace:idx_rho_count", nelements); auto h_idx_rho_count = Kokkos::create_mirror_view(d_idx_rho_count); for (int n = 0; n < nelements; n++) { @@ -295,14 +295,14 @@ void PairPACEKokkos::copy_tilde() Kokkos::deep_copy(d_idx_rho_count, h_idx_rho_count); - memoryKK->realloc_kokkos(d_rank, "pace:rank", nelements, total_basis_size_max); - memoryKK->realloc_kokkos(d_num_ms_combs, "pace:num_ms_combs", nelements, total_basis_size_max); - memoryKK->realloc_kokkos(d_offsets, "pace:offsets", nelements, idx_rho_max); - memoryKK->realloc_kokkos(d_mus, "pace:mus", nelements, total_basis_size_max, basis_set->rankmax); - memoryKK->realloc_kokkos(d_ns, "pace:ns", nelements, total_basis_size_max, basis_set->rankmax); - memoryKK->realloc_kokkos(d_ls, "pace:ls", nelements, total_basis_size_max, basis_set->rankmax); - memoryKK->realloc_kokkos(d_ms_combs, "pace:ms_combs", nelements, idx_rho_max, basis_set->rankmax); - memoryKK->realloc_kokkos(d_ctildes, "pace:ctildes", nelements, idx_rho_max, basis_set->ndensitymax); + MemKK::realloc_kokkos(d_rank, "pace:rank", nelements, total_basis_size_max); + MemKK::realloc_kokkos(d_num_ms_combs, "pace:num_ms_combs", nelements, total_basis_size_max); + MemKK::realloc_kokkos(d_offsets, "pace:offsets", nelements, idx_rho_max); + MemKK::realloc_kokkos(d_mus, "pace:mus", nelements, total_basis_size_max, basis_set->rankmax); + MemKK::realloc_kokkos(d_ns, "pace:ns", nelements, total_basis_size_max, basis_set->rankmax); + MemKK::realloc_kokkos(d_ls, "pace:ls", nelements, total_basis_size_max, basis_set->rankmax); + MemKK::realloc_kokkos(d_ms_combs, "pace:ms_combs", nelements, idx_rho_max, basis_set->rankmax); + MemKK::realloc_kokkos(d_ctildes, "pace:ctildes", nelements, idx_rho_max, basis_set->ndensitymax); auto h_rank = Kokkos::create_mirror_view(d_rank); auto h_num_ms_combs = Kokkos::create_mirror_view(d_num_ms_combs); @@ -418,10 +418,10 @@ void PairPACEKokkos::init_style() // spherical harmonics - memoryKK->realloc_kokkos(alm, "pace:alm", (lmax + 1) * (lmax + 1)); - memoryKK->realloc_kokkos(blm, "pace:blm", (lmax + 1) * (lmax + 1)); - memoryKK->realloc_kokkos(cl, "pace:cl", lmax + 1); - memoryKK->realloc_kokkos(dl, "pace:dl", lmax + 1); + MemKK::realloc_kokkos(alm, "pace:alm", (lmax + 1) * (lmax + 1)); + MemKK::realloc_kokkos(blm, "pace:blm", (lmax + 1) * (lmax + 1)); + MemKK::realloc_kokkos(cl, "pace:cl", lmax + 1); + MemKK::realloc_kokkos(dl, "pace:dl", lmax + 1); pre_compute_harmonics(lmax); copy_pertype(); @@ -474,12 +474,12 @@ void PairPACEKokkos::allocate() PairPACE::allocate(); int n = atom->ntypes + 1; - memoryKK->realloc_kokkos(d_map, "pace:map", n); + MemKK::realloc_kokkos(d_map, "pace:map", n); - memoryKK->realloc_kokkos(k_cutsq, "pace:cutsq", n, n); + MemKK::realloc_kokkos(k_cutsq, "pace:cutsq", n, n); d_cutsq = k_cutsq.template view(); - memoryKK->realloc_kokkos(k_scale, "pace:scale", n, n); + MemKK::realloc_kokkos(k_scale, "pace:scale", n, n); d_scale = k_scale.template view(); } @@ -534,8 +534,7 @@ void PairPACEKokkos::compute(int eflag_in, int vflag_in) } copymode = 1; - int newton_pair = force->newton_pair; - if (newton_pair == false) + if (!force->newton_pair) error->all(FLERR,"PairPACEKokkos requires 'newton on'"); if (recursive) @@ -1651,56 +1650,56 @@ double PairPACEKokkos::memory_usage() { double bytes = 0; - bytes += memoryKK->memory_usage(A); - bytes += memoryKK->memory_usage(A_rank1); - bytes += memoryKK->memory_usage(A_list); - bytes += memoryKK->memory_usage(A_forward_prod); - bytes += memoryKK->memory_usage(e_atom); - bytes += memoryKK->memory_usage(rhos); - bytes += memoryKK->memory_usage(dF_drho); - bytes += memoryKK->memory_usage(weights); - bytes += memoryKK->memory_usage(weights_rank1); - bytes += memoryKK->memory_usage(rho_core); - bytes += memoryKK->memory_usage(dF_drho_core); - bytes += memoryKK->memory_usage(dB_flatten); - bytes += memoryKK->memory_usage(fr); - bytes += memoryKK->memory_usage(dfr); - bytes += memoryKK->memory_usage(gr); - bytes += memoryKK->memory_usage(dgr); - bytes += memoryKK->memory_usage(d_values); - bytes += memoryKK->memory_usage(d_derivatives); - bytes += memoryKK->memory_usage(cr); - bytes += memoryKK->memory_usage(dcr); - bytes += memoryKK->memory_usage(plm); - bytes += memoryKK->memory_usage(dplm); - bytes += memoryKK->memory_usage(ylm); - bytes += memoryKK->memory_usage(dylm); - bytes += memoryKK->memory_usage(d_ncount); - bytes += memoryKK->memory_usage(d_mu); - bytes += memoryKK->memory_usage(d_rhats); - bytes += memoryKK->memory_usage(d_rnorms); - bytes += memoryKK->memory_usage(d_nearest); - bytes += memoryKK->memory_usage(f_ij); - bytes += memoryKK->memory_usage(d_rho_core_cutoff); - bytes += memoryKK->memory_usage(d_drho_core_cutoff); - bytes += memoryKK->memory_usage(d_E0vals); - bytes += memoryKK->memory_usage(d_ndensity); - bytes += memoryKK->memory_usage(d_npoti); - bytes += memoryKK->memory_usage(d_wpre); - bytes += memoryKK->memory_usage(d_mexp); - bytes += memoryKK->memory_usage(d_idx_rho_count); - bytes += memoryKK->memory_usage(d_rank); - bytes += memoryKK->memory_usage(d_num_ms_combs); - bytes += memoryKK->memory_usage(d_offsets); - bytes += memoryKK->memory_usage(d_mus); - bytes += memoryKK->memory_usage(d_ns); - bytes += memoryKK->memory_usage(d_ls); - bytes += memoryKK->memory_usage(d_ms_combs); - bytes += memoryKK->memory_usage(d_ctildes); - bytes += memoryKK->memory_usage(alm); - bytes += memoryKK->memory_usage(blm); - bytes += memoryKK->memory_usage(cl); - bytes += memoryKK->memory_usage(dl); + bytes += MemKK::memory_usage(A); + bytes += MemKK::memory_usage(A_rank1); + bytes += MemKK::memory_usage(A_list); + bytes += MemKK::memory_usage(A_forward_prod); + bytes += MemKK::memory_usage(e_atom); + bytes += MemKK::memory_usage(rhos); + bytes += MemKK::memory_usage(dF_drho); + bytes += MemKK::memory_usage(weights); + bytes += MemKK::memory_usage(weights_rank1); + bytes += MemKK::memory_usage(rho_core); + bytes += MemKK::memory_usage(dF_drho_core); + bytes += MemKK::memory_usage(dB_flatten); + bytes += MemKK::memory_usage(fr); + bytes += MemKK::memory_usage(dfr); + bytes += MemKK::memory_usage(gr); + bytes += MemKK::memory_usage(dgr); + bytes += MemKK::memory_usage(d_values); + bytes += MemKK::memory_usage(d_derivatives); + bytes += MemKK::memory_usage(cr); + bytes += MemKK::memory_usage(dcr); + bytes += MemKK::memory_usage(plm); + bytes += MemKK::memory_usage(dplm); + bytes += MemKK::memory_usage(ylm); + bytes += MemKK::memory_usage(dylm); + bytes += MemKK::memory_usage(d_ncount); + bytes += MemKK::memory_usage(d_mu); + bytes += MemKK::memory_usage(d_rhats); + bytes += MemKK::memory_usage(d_rnorms); + bytes += MemKK::memory_usage(d_nearest); + bytes += MemKK::memory_usage(f_ij); + bytes += MemKK::memory_usage(d_rho_core_cutoff); + bytes += MemKK::memory_usage(d_drho_core_cutoff); + bytes += MemKK::memory_usage(d_E0vals); + bytes += MemKK::memory_usage(d_ndensity); + bytes += MemKK::memory_usage(d_npoti); + bytes += MemKK::memory_usage(d_wpre); + bytes += MemKK::memory_usage(d_mexp); + bytes += MemKK::memory_usage(d_idx_rho_count); + bytes += MemKK::memory_usage(d_rank); + bytes += MemKK::memory_usage(d_num_ms_combs); + bytes += MemKK::memory_usage(d_offsets); + bytes += MemKK::memory_usage(d_mus); + bytes += MemKK::memory_usage(d_ns); + bytes += MemKK::memory_usage(d_ls); + bytes += MemKK::memory_usage(d_ms_combs); + bytes += MemKK::memory_usage(d_ctildes); + bytes += MemKK::memory_usage(alm); + bytes += MemKK::memory_usage(blm); + bytes += MemKK::memory_usage(cl); + bytes += MemKK::memory_usage(dl); if (k_splines_gk.h_view.data()) { for (int i = 0; i < nelements; i++) { diff --git a/src/KOKKOS/pair_reaxff_kokkos.cpp b/src/KOKKOS/pair_reaxff_kokkos.cpp index 192300d642..bb6ee0c1f1 100644 --- a/src/KOKKOS/pair_reaxff_kokkos.cpp +++ b/src/KOKKOS/pair_reaxff_kokkos.cpp @@ -36,6 +36,7 @@ #include "kokkos.h" #include "math_const.h" #include "math_special.h" +#include "memory_kokkos.h" #include "neigh_request.h" #include "neighbor.h" @@ -78,8 +79,8 @@ PairReaxFFKokkos::PairReaxFFKokkos(LAMMPS *lmp) : PairReaxFF(lmp) k_error_flag = DAT::tdual_int_scalar("pair:error_flag"); k_nbuf_local = DAT::tdual_int_scalar("pair:nbuf_local"); - d_torsion_pack = t_reax_int4_2d("reaxff:torsion_pack",1,2); - d_angular_pack = t_reax_int4_2d("reaxff:angular_pack",1,2); + MemKK::realloc_kokkos(d_torsion_pack,"reaxff:torsion_pack",1,2); + MemKK::realloc_kokkos(d_angular_pack,"reaxff:angular_pack",1,2); k_count_angular_torsion = DAT::tdual_int_1d("PairReaxFF::count_angular_torsion",2); d_count_angular_torsion = k_count_angular_torsion.template view(); @@ -883,17 +884,10 @@ void PairReaxFFKokkos::compute(int eflag_in, int vflag_in) Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); // allocate duplicated memory - if (need_dup) { + if (need_dup) dup_CdDelta = Kokkos::Experimental::create_scatter_view(d_CdDelta); - //dup_Cdbo = Kokkos::Experimental::create_scatter_view(d_Cdbo); - //dup_Cdbopi = Kokkos::Experimental::create_scatter_view(d_Cdbopi); - //dup_Cdbopi2 = Kokkos::Experimental::create_scatter_view(d_Cdbopi2); - } else { + else ndup_CdDelta = Kokkos::Experimental::create_scatter_view(d_CdDelta); - //ndup_Cdbo = Kokkos::Experimental::create_scatter_view(d_Cdbo); - //ndup_Cdbopi = Kokkos::Experimental::create_scatter_view(d_Cdbopi); - //ndup_Cdbopi2 = Kokkos::Experimental::create_scatter_view(d_Cdbopi2); - } // reduction over duplicated memory if (need_dup) @@ -959,9 +953,9 @@ void PairReaxFFKokkos::compute(int eflag_in, int vflag_in) count_torsion = h_count_angular_torsion(1); if (count_angular > (int)d_angular_pack.extent(0)) - d_angular_pack = t_reax_int4_2d("reaxff:angular_pack",(int)(count_angular * 1.1),2); + MemKK::realloc_kokkos(d_angular_pack,"reaxff:angular_pack",(int)(count_angular * 1.1),2); if (count_torsion > (int)d_torsion_pack.extent(0)) - d_torsion_pack = t_reax_int4_2d("reaxff:torsion_pack",(int)(count_torsion * 1.1),2); + MemKK::realloc_kokkos(d_torsion_pack,"reaxff:torsion_pack",(int)(count_torsion * 1.1),2); // need to zero to re-count h_count_angular_torsion(0) = 0; @@ -1033,26 +1027,12 @@ void PairReaxFFKokkos::compute(int eflag_in, int vflag_in) if (need_dup) { Kokkos::Experimental::contribute(d_dDeltap_self, dup_dDeltap_self); // needed in ComputeBond2 Kokkos::Experimental::contribute(d_CdDelta, dup_CdDelta); // needed in ComputeBond2 - - //Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in UpdateBond, but also used in UpdateBond - //Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in UpdateBond, but also used in UpdateBond - //Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in UpdateBond, but also used in UpdateBond - //dup_Cdbo.reset_except(d_Cdbo); - //dup_Cdbopi.reset_except(d_Cdbopi); - //dup_Cdbopi2.reset_except(d_Cdbopi2); } // Bond force if (neighflag == HALF) { Kokkos::parallel_for(Kokkos::RangePolicy>(0,ignum),*this); - // reduction over duplicated memory - //if (need_dup) { - // Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 - // Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 - // Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 - //} - if (vflag_either) Kokkos::parallel_reduce(Kokkos::RangePolicy>(0,ignum),*this,ev); else @@ -1062,13 +1042,6 @@ void PairReaxFFKokkos::compute(int eflag_in, int vflag_in) } else { //if (neighflag == HALFTHREAD) { Kokkos::parallel_for(Kokkos::RangePolicy>(0,ignum),*this); - // reduction over duplicated memory - //if (need_dup) { - // Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 - // Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 - // Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 - //} - if (vflag_either) Kokkos::parallel_reduce(Kokkos::RangePolicy>(0,ignum),*this,ev); else @@ -1116,7 +1089,7 @@ void PairReaxFFKokkos::compute(int eflag_in, int vflag_in) copymode = 0; - // free duplicated memory + // free scatterview memory if (need_dup) { dup_f = decltype(dup_f)(); dup_eatom = decltype(dup_eatom)(); @@ -1124,9 +1097,13 @@ void PairReaxFFKokkos::compute(int eflag_in, int vflag_in) dup_dDeltap_self = decltype(dup_dDeltap_self)(); dup_total_bo = decltype(dup_total_bo)(); dup_CdDelta = decltype(dup_CdDelta)(); - //dup_Cdbo = decltype(dup_Cdbo)(); - //dup_Cdbopi = decltype(dup_Cdbopi)(); - //dup_Cdbopi2 = decltype(dup_Cdbopi2)(); + } else { + ndup_f = decltype(ndup_f)(); + ndup_eatom = decltype(ndup_eatom)(); + ndup_vatom = decltype(ndup_vatom)(); + ndup_dDeltap_self = decltype(ndup_dDeltap_self)(); + ndup_total_bo = decltype(ndup_total_bo)(); + ndup_CdDelta = decltype(ndup_CdDelta)(); } d_neighbors = typename AT::t_neighbors_2d(); @@ -1512,131 +1489,74 @@ void PairReaxFFKokkos::operator()(TagPairReaxComputeTabulatedLJCoulo template void PairReaxFFKokkos::allocate_array() { - // deallocate first to reduce memory overhead - - deallocate_array(); + // free scatterview memory + if (need_dup) { + dup_dDeltap_self = decltype(dup_dDeltap_self)(); + dup_total_bo = decltype(dup_total_bo)(); + dup_CdDelta = decltype(dup_CdDelta)(); + } else { + ndup_dDeltap_self = decltype(ndup_dDeltap_self)(); + ndup_total_bo = decltype(ndup_total_bo)(); + ndup_CdDelta = decltype(ndup_CdDelta)(); + } if (cut_hbsq > 0.0) { - d_hb_first = typename AT::t_int_1d("reaxff/kk:hb_first",nmax); - d_hb_num = typename AT::t_int_1d("reaxff/kk:hb_num",nmax); - d_hb_list = typename AT::t_int_1d("reaxff/kk:hb_list",nmax*maxhb); + MemKK::realloc_kokkos(d_hb_first,"reaxff/kk:hb_first",nmax); + MemKK::realloc_kokkos(d_hb_num,"reaxff/kk:hb_num",nmax); + MemKK::realloc_kokkos(d_hb_list,"reaxff/kk:hb_list",nmax*maxhb); } - d_bo_first = typename AT::t_int_1d("reaxff/kk:bo_first",nmax); - d_bo_num = typename AT::t_int_1d("reaxff/kk:bo_num",nmax); - d_bo_list = typename AT::t_int_1d("reaxff/kk:bo_list",nmax*maxbo); + MemKK::realloc_kokkos(d_bo_first,"reaxff/kk:bo_first",nmax); + MemKK::realloc_kokkos(d_bo_num,"reaxff/kk:bo_num",nmax); + MemKK::realloc_kokkos(d_bo_list,"reaxff/kk:bo_list",nmax*maxbo); - d_BO = typename AT::t_ffloat_2d_dl("reaxff/kk:BO",nmax,maxbo); - d_BO_s = typename AT::t_ffloat_2d_dl("reaxff/kk:BO",nmax,maxbo); - d_BO_pi = typename AT::t_ffloat_2d_dl("reaxff/kk:BO_pi",nmax,maxbo); - d_BO_pi2 = typename AT::t_ffloat_2d_dl("reaxff/kk:BO_pi2",nmax,maxbo); + MemKK::realloc_kokkos(d_BO,"reaxff/kk:BO",nmax,maxbo); + MemKK::realloc_kokkos(d_BO_s,"reaxff/kk:BO",nmax,maxbo); + MemKK::realloc_kokkos(d_BO_pi,"reaxff/kk:BO_pi",nmax,maxbo); + MemKK::realloc_kokkos(d_BO_pi2,"reaxff/kk:BO_pi2",nmax,maxbo); - d_dln_BOp_pi = typename AT::t_ffloat_2d_dl("reaxff/kk:d_dln_BOp_pi",nmax,maxbo); - d_dln_BOp_pi2 = typename AT::t_ffloat_2d_dl("reaxff/kk:d_dln_BOp_pi2",nmax,maxbo); + MemKK::realloc_kokkos(d_dln_BOp_pi,"reaxff/kk:d_dln_BOp_pi",nmax,maxbo); + MemKK::realloc_kokkos(d_dln_BOp_pi2,"reaxff/kk:d_dln_BOp_pi2",nmax,maxbo); - d_C1dbo = typename AT::t_ffloat_2d_dl("reaxff/kk:d_C1dbo",nmax,maxbo); - d_C2dbo = typename AT::t_ffloat_2d_dl("reaxff/kk:d_C2dbo",nmax,maxbo); - d_C3dbo = typename AT::t_ffloat_2d_dl("reaxff/kk:d_C3dbo",nmax,maxbo); + MemKK::realloc_kokkos(d_C1dbo,"reaxff/kk:d_C1dbo",nmax,maxbo); + MemKK::realloc_kokkos(d_C2dbo,"reaxff/kk:d_C2dbo",nmax,maxbo); + MemKK::realloc_kokkos(d_C3dbo,"reaxff/kk:d_C3dbo",nmax,maxbo); - d_C1dbopi = typename AT::t_ffloat_2d_dl("reaxff/kk:d_C1dbopi",nmax,maxbo); - d_C2dbopi = typename AT::t_ffloat_2d_dl("reaxff/kk:d_C2dbopi",nmax,maxbo); - d_C3dbopi = typename AT::t_ffloat_2d_dl("reaxff/kk:d_C3dbopi",nmax,maxbo); - d_C4dbopi = typename AT::t_ffloat_2d_dl("reaxff/kk:d_C4dbopi",nmax,maxbo); + MemKK::realloc_kokkos(d_C1dbopi,"reaxff/kk:d_C1dbopi",nmax,maxbo); + MemKK::realloc_kokkos(d_C2dbopi,"reaxff/kk:d_C2dbopi",nmax,maxbo); + MemKK::realloc_kokkos(d_C3dbopi,"reaxff/kk:d_C3dbopi",nmax,maxbo); + MemKK::realloc_kokkos(d_C4dbopi,"reaxff/kk:d_C4dbopi",nmax,maxbo); - d_C1dbopi2 = typename AT::t_ffloat_2d_dl("reaxff/kk:d_C1dbopi2",nmax,maxbo); - d_C2dbopi2 = typename AT::t_ffloat_2d_dl("reaxff/kk:d_C2dbopi2",nmax,maxbo); - d_C3dbopi2 = typename AT::t_ffloat_2d_dl("reaxff/kk:d_C3dbopi2",nmax,maxbo); - d_C4dbopi2 = typename AT::t_ffloat_2d_dl("reaxff/kk:d_C4dbopi2",nmax,maxbo); + MemKK::realloc_kokkos(d_C1dbopi2,"reaxff/kk:d_C1dbopi2",nmax,maxbo); + MemKK::realloc_kokkos(d_C2dbopi2,"reaxff/kk:d_C2dbopi2",nmax,maxbo); + MemKK::realloc_kokkos(d_C3dbopi2,"reaxff/kk:d_C3dbopi2",nmax,maxbo); + MemKK::realloc_kokkos(d_C4dbopi2,"reaxff/kk:d_C4dbopi2",nmax,maxbo); - d_dBOp = typename AT::t_ffloat_2d_dl("reaxff/kk:dBOp",nmax,maxbo); + MemKK::realloc_kokkos(d_dBOp,"reaxff/kk:dBOp",nmax,maxbo); - d_dDeltap_self = typename AT::t_ffloat_2d_dl("reaxff/kk:dDeltap_self",nmax,3); - d_Deltap_boc = typename AT::t_ffloat_1d("reaxff/kk:Deltap_boc",nmax); - d_Deltap = typename AT::t_ffloat_1d("reaxff/kk:Deltap",nmax); - d_total_bo = typename AT::t_ffloat_1d("reaxff/kk:total_bo",nmax); + MemKK::realloc_kokkos(d_dDeltap_self,"reaxff/kk:dDeltap_self",nmax,3); + MemKK::realloc_kokkos(d_Deltap_boc,"reaxff/kk:Deltap_boc",nmax); + MemKK::realloc_kokkos(d_Deltap,"reaxff/kk:Deltap",nmax); + MemKK::realloc_kokkos(d_total_bo,"reaxff/kk:total_bo",nmax); - d_Cdbo = typename AT::t_ffloat_2d_dl("reaxff/kk:Cdbo",nmax,3*maxbo); - d_Cdbopi = typename AT::t_ffloat_2d_dl("reaxff/kk:Cdbopi",nmax,3*maxbo); - d_Cdbopi2 = typename AT::t_ffloat_2d_dl("reaxff/kk:Cdbopi2",nmax,3*maxbo); + MemKK::realloc_kokkos(d_Cdbo,"reaxff/kk:Cdbo",nmax,3*maxbo); + MemKK::realloc_kokkos(d_Cdbopi,"reaxff/kk:Cdbopi",nmax,3*maxbo); + MemKK::realloc_kokkos(d_Cdbopi2,"reaxff/kk:Cdbopi2",nmax,3*maxbo); - d_Delta = typename AT::t_ffloat_1d("reaxff/kk:Delta",nmax); - d_Delta_boc = typename AT::t_ffloat_1d("reaxff/kk:Delta_boc",nmax); - d_dDelta_lp = typename AT::t_ffloat_1d("reaxff/kk:dDelta_lp",nmax); - d_Delta_lp = typename AT::t_ffloat_1d("reaxff/kk:Delta_lp",nmax); - d_Delta_lp_temp = typename AT::t_ffloat_1d("reaxff/kk:Delta_lp_temp",nmax); - d_CdDelta = typename AT::t_ffloat_1d("reaxff/kk:CdDelta",nmax); - d_sum_ovun = typename AT::t_ffloat_2d_dl("reaxff/kk:sum_ovun",nmax,3); + MemKK::realloc_kokkos(d_Delta,"reaxff/kk:Delta",nmax); + MemKK::realloc_kokkos(d_Delta_boc,"reaxff/kk:Delta_boc",nmax); + MemKK::realloc_kokkos(d_dDelta_lp,"reaxff/kk:dDelta_lp",nmax); + MemKK::realloc_kokkos(d_Delta_lp,"reaxff/kk:Delta_lp",nmax); + MemKK::realloc_kokkos(d_Delta_lp_temp,"reaxff/kk:Delta_lp_temp",nmax); + MemKK::realloc_kokkos(d_CdDelta,"reaxff/kk:CdDelta",nmax); + MemKK::realloc_kokkos(d_sum_ovun,"reaxff/kk:sum_ovun",nmax,3); // FixReaxFFBonds - d_abo = typename AT::t_ffloat_2d("reaxff/kk:abo",nmax,maxbo); - d_neighid = typename AT::t_tagint_2d("reaxff/kk:neighid",nmax,maxbo); - d_numneigh_bonds = typename AT::t_int_1d("reaxff/kk:numneigh_bonds",nmax); + MemKK::realloc_kokkos(d_abo,"reaxff/kk:abo",nmax,maxbo); + MemKK::realloc_kokkos(d_neighid,"reaxff/kk:neighid",nmax,maxbo); + MemKK::realloc_kokkos(d_numneigh_bonds,"reaxff/kk:numneigh_bonds",nmax); // ComputeAngular intermediates - d_angular_intermediates = typename AT::t_ffloat_2d("reaxff/kk:angular_intermediates",nmax,4); -} - -/* ---------------------------------------------------------------------- */ - -template -void PairReaxFFKokkos::deallocate_array() -{ - if (cut_hbsq > 0.0) { - d_hb_first = typename AT::t_int_1d(); - d_hb_num = typename AT::t_int_1d(); - d_hb_list = typename AT::t_int_1d(); - } - d_bo_first = typename AT::t_int_1d(); - d_bo_num = typename AT::t_int_1d(); - d_bo_list = typename AT::t_int_1d(); - - d_BO = typename AT::t_ffloat_2d_dl(); - d_BO_s = typename AT::t_ffloat_2d_dl(); - d_BO_pi = typename AT::t_ffloat_2d_dl(); - d_BO_pi2 = typename AT::t_ffloat_2d_dl(); - - d_dln_BOp_pi = typename AT::t_ffloat_2d_dl(); - d_dln_BOp_pi2 = typename AT::t_ffloat_2d_dl(); - - d_C1dbo = typename AT::t_ffloat_2d_dl(); - d_C2dbo = typename AT::t_ffloat_2d_dl(); - d_C3dbo = typename AT::t_ffloat_2d_dl(); - - d_C1dbopi = typename AT::t_ffloat_2d_dl(); - d_C2dbopi = typename AT::t_ffloat_2d_dl(); - d_C3dbopi = typename AT::t_ffloat_2d_dl(); - d_C4dbopi = typename AT::t_ffloat_2d_dl(); - - d_C1dbopi2 = typename AT::t_ffloat_2d_dl(); - d_C2dbopi2 = typename AT::t_ffloat_2d_dl(); - d_C3dbopi2 = typename AT::t_ffloat_2d_dl(); - d_C4dbopi2 = typename AT::t_ffloat_2d_dl(); - - d_dBOp = typename AT::t_ffloat_2d_dl(); - - d_dDeltap_self = typename AT::t_ffloat_2d_dl(); - d_Deltap_boc = typename AT::t_ffloat_1d(); - d_Deltap = typename AT::t_ffloat_1d(); - d_total_bo = typename AT::t_ffloat_1d(); - - d_Cdbo = typename AT::t_ffloat_2d_dl(); - d_Cdbopi = typename AT::t_ffloat_2d_dl(); - d_Cdbopi2 = typename AT::t_ffloat_2d_dl(); - - d_Delta = typename AT::t_ffloat_1d(); - d_Delta_boc = typename AT::t_ffloat_1d(); - d_dDelta_lp = typename AT::t_ffloat_1d(); - d_Delta_lp = typename AT::t_ffloat_1d(); - d_Delta_lp_temp = typename AT::t_ffloat_1d(); - d_CdDelta = typename AT::t_ffloat_1d(); - d_sum_ovun = typename AT::t_ffloat_2d_dl(); - - // FixReaxFFBonds - d_abo = typename AT::t_ffloat_2d(); - d_neighid = typename AT::t_tagint_2d(); - d_numneigh_bonds = typename AT::t_int_1d(); - - // ComputeAngular intermediates - d_angular_intermediates = typename AT::t_ffloat_2d(); + MemKK::realloc_kokkos(d_angular_intermediates,"reaxff/kk:angular_intermediates",nmax,4); } /* ---------------------------------------------------------------------- */ @@ -2708,7 +2628,7 @@ int PairReaxFFKokkos::preprocess_angular(int i, int itype, int j_sta template template KOKKOS_INLINE_FUNCTION -int PairReaxFFKokkos::preprocess_torsion(int i, int /*itype*/, int itag, +int PairReaxFFKokkos::preprocess_torsion(int i, int /*itype*/, tagint itag, F_FLOAT xtmp, F_FLOAT ytmp, F_FLOAT ztmp, int j_start, int j_end, int location_torsion) const { // in reaxff_torsion_angles: j = i, k = j, i = k; @@ -2862,174 +2782,174 @@ void PairReaxFFKokkos::operator()(TagPairReaxComputeAngularPreproces F_FLOAT fitmp[3],fjtmp[3]; for (int j = 0; j < 3; j++) fitmp[j] = 0.0; - delij[0] = x(j,0) - xtmp; - delij[1] = x(j,1) - ytmp; - delij[2] = x(j,2) - ztmp; - const F_FLOAT rsqij = delij[0]*delij[0] + delij[1]*delij[1] + delij[2]*delij[2]; - rij = sqrt(rsqij); - bo_ij = d_BO(i,j_index); + delij[0] = x(j,0) - xtmp; + delij[1] = x(j,1) - ytmp; + delij[2] = x(j,2) - ztmp; + const F_FLOAT rsqij = delij[0]*delij[0] + delij[1]*delij[1] + delij[2]*delij[2]; + rij = sqrt(rsqij); + bo_ij = d_BO(i,j_index); - BOA_ij = bo_ij - thb_cut; + BOA_ij = bo_ij - thb_cut; - const int jtype = type(j); + const int jtype = type(j); - F_FLOAT CdDelta_j = 0.0; - for (int k = 0; k < 3; k++) fjtmp[k] = 0.0; + F_FLOAT CdDelta_j = 0.0; + for (int k = 0; k < 3; k++) fjtmp[k] = 0.0; - delik[0] = x(k,0) - xtmp; - delik[1] = x(k,1) - ytmp; - delik[2] = x(k,2) - ztmp; - const F_FLOAT rsqik = delik[0]*delik[0] + delik[1]*delik[1] + delik[2]*delik[2]; - const F_FLOAT rik = sqrt(rsqik); - bo_ik = d_BO(i,k_index); - BOA_ik = bo_ik - thb_cut; + delik[0] = x(k,0) - xtmp; + delik[1] = x(k,1) - ytmp; + delik[2] = x(k,2) - ztmp; + const F_FLOAT rsqik = delik[0]*delik[0] + delik[1]*delik[1] + delik[2]*delik[2]; + const F_FLOAT rik = sqrt(rsqik); + bo_ik = d_BO(i,k_index); + BOA_ik = bo_ik - thb_cut; - const int ktype = type(k); + const int ktype = type(k); - // theta and derivatives + // theta and derivatives - cos_theta = (delij[0]*delik[0]+delij[1]*delik[1]+delij[2]*delik[2])/(rij*rik); - if (cos_theta > 1.0) cos_theta = 1.0; - if (cos_theta < -1.0) cos_theta = -1.0; - theta = acos(cos_theta); + cos_theta = (delij[0]*delik[0]+delij[1]*delik[1]+delij[2]*delik[2])/(rij*rik); + if (cos_theta > 1.0) cos_theta = 1.0; + if (cos_theta < -1.0) cos_theta = -1.0; + theta = acos(cos_theta); - const F_FLOAT inv_dists = 1.0 / (rij * rik); - const F_FLOAT Cdot_inv3 = cos_theta * inv_dists * inv_dists; + const F_FLOAT inv_dists = 1.0 / (rij * rik); + const F_FLOAT Cdot_inv3 = cos_theta * inv_dists * inv_dists; - for (int t = 0; t < 3; t++) { - dcos_theta_di[t] = -(delik[t] + delij[t]) * inv_dists + Cdot_inv3 * (rsqik * delij[t] + rsqij * delik[t]); - dcos_theta_dj[t] = delik[t] * inv_dists - Cdot_inv3 * rsqik * delij[t]; - dcos_theta_dk[t] = delij[t] * inv_dists - Cdot_inv3 * rsqij * delik[t]; - } + for (int t = 0; t < 3; t++) { + dcos_theta_di[t] = -(delik[t] + delij[t]) * inv_dists + Cdot_inv3 * (rsqik * delij[t] + rsqij * delik[t]); + dcos_theta_dj[t] = delik[t] * inv_dists - Cdot_inv3 * rsqik * delij[t]; + dcos_theta_dk[t] = delij[t] * inv_dists - Cdot_inv3 * rsqij * delik[t]; + } - sin_theta = sin(theta); - if (sin_theta < 1.0e-5) sin_theta = 1.0e-5; - p_val1 = paramsthbp(jtype,itype,ktype).p_val1; + sin_theta = sin(theta); + if (sin_theta < 1.0e-5) sin_theta = 1.0e-5; + p_val1 = paramsthbp(jtype,itype,ktype).p_val1; - // ANGLE ENERGY + // ANGLE ENERGY - p_val1 = paramsthbp(jtype,itype,ktype).p_val1; - p_val2 = paramsthbp(jtype,itype,ktype).p_val2; - p_val4 = paramsthbp(jtype,itype,ktype).p_val4; - p_val7 = paramsthbp(jtype,itype,ktype).p_val7; - theta_00 = paramsthbp(jtype,itype,ktype).theta_00; + p_val1 = paramsthbp(jtype,itype,ktype).p_val1; + p_val2 = paramsthbp(jtype,itype,ktype).p_val2; + p_val4 = paramsthbp(jtype,itype,ktype).p_val4; + p_val7 = paramsthbp(jtype,itype,ktype).p_val7; + theta_00 = paramsthbp(jtype,itype,ktype).theta_00; - exp3ij = exp(-p_val3 * pow(BOA_ij, p_val4)); - f7_ij = 1.0 - exp3ij; - Cf7ij = p_val3 * p_val4 * pow(BOA_ij, p_val4 - 1.0) * exp3ij; - exp3jk = exp(-p_val3 * pow(BOA_ik, p_val4)); - f7_jk = 1.0 - exp3jk; - Cf7jk = p_val3 * p_val4 * pow(BOA_ik, p_val4 - 1.0) * exp3jk; - expval7 = exp(-p_val7 * d_Delta_boc[i]); - trm8 = 1.0 + expval6 + expval7; - f8_Dj = p_val5 - ((p_val5 - 1.0) * (2.0 + expval6) / trm8); - Cf8j = ((1.0 - p_val5) / (trm8*trm8)) * - (p_val6 * expval6 * trm8 - (2.0 + expval6) * (p_val6*expval6 - p_val7*expval7)); - theta_0 = 180.0 - theta_00 * (1.0 - exp(-p_val10 * (2.0 - SBO2))); - theta_0 = theta_0*constPI/180.0; + exp3ij = exp(-p_val3 * pow(BOA_ij, p_val4)); + f7_ij = 1.0 - exp3ij; + Cf7ij = p_val3 * p_val4 * pow(BOA_ij, p_val4 - 1.0) * exp3ij; + exp3jk = exp(-p_val3 * pow(BOA_ik, p_val4)); + f7_jk = 1.0 - exp3jk; + Cf7jk = p_val3 * p_val4 * pow(BOA_ik, p_val4 - 1.0) * exp3jk; + expval7 = exp(-p_val7 * d_Delta_boc[i]); + trm8 = 1.0 + expval6 + expval7; + f8_Dj = p_val5 - ((p_val5 - 1.0) * (2.0 + expval6) / trm8); + Cf8j = ((1.0 - p_val5) / (trm8*trm8)) * + (p_val6 * expval6 * trm8 - (2.0 + expval6) * (p_val6*expval6 - p_val7*expval7)); + theta_0 = 180.0 - theta_00 * (1.0 - exp(-p_val10 * (2.0 - SBO2))); + theta_0 = theta_0*constPI/180.0; - expval2theta = exp(-p_val2 * (theta_0-theta)*(theta_0-theta)); - if (p_val1 >= 0) - expval12theta = p_val1 * (1.0 - expval2theta); - else // To avoid linear Me-H-Me angles (6/6/06) - expval12theta = p_val1 * -expval2theta; + expval2theta = exp(-p_val2 * (theta_0-theta)*(theta_0-theta)); + if (p_val1 >= 0) + expval12theta = p_val1 * (1.0 - expval2theta); + else // To avoid linear Me-H-Me angles (6/6/06) + expval12theta = p_val1 * -expval2theta; - CEval1 = Cf7ij * f7_jk * f8_Dj * expval12theta; - CEval2 = Cf7jk * f7_ij * f8_Dj * expval12theta; - CEval3 = Cf8j * f7_ij * f7_jk * expval12theta; - CEval4 = -2.0 * p_val1 * p_val2 * f7_ij * f7_jk * f8_Dj * expval2theta * (theta_0 - theta); - Ctheta_0 = p_val10 * theta_00*constPI/180.0 * exp(-p_val10 * (2.0 - SBO2)); - CEval5 = -CEval4 * Ctheta_0 * CSBO2; - CEval6 = CEval5 * dSBO1; - CEval7 = CEval5 * dSBO2; - CEval8 = -CEval4 / sin_theta; + CEval1 = Cf7ij * f7_jk * f8_Dj * expval12theta; + CEval2 = Cf7jk * f7_ij * f8_Dj * expval12theta; + CEval3 = Cf8j * f7_ij * f7_jk * expval12theta; + CEval4 = -2.0 * p_val1 * p_val2 * f7_ij * f7_jk * f8_Dj * expval2theta * (theta_0 - theta); + Ctheta_0 = p_val10 * theta_00*constPI/180.0 * exp(-p_val10 * (2.0 - SBO2)); + CEval5 = -CEval4 * Ctheta_0 * CSBO2; + CEval6 = CEval5 * dSBO1; + CEval7 = CEval5 * dSBO2; + CEval8 = -CEval4 / sin_theta; - e_ang = f7_ij * f7_jk * f8_Dj * expval12theta; - if (eflag) ev.ereax[3] += e_ang; + e_ang = f7_ij * f7_jk * f8_Dj * expval12theta; + if (eflag) ev.ereax[3] += e_ang; - // Penalty energy + // Penalty energy - p_pen1 = paramsthbp(jtype,itype,ktype).p_pen1; + p_pen1 = paramsthbp(jtype,itype,ktype).p_pen1; - exp_pen2ij = exp(-p_pen2 * (BOA_ij - 2.0)*(BOA_ij - 2.0)); - exp_pen2jk = exp(-p_pen2 * (BOA_ik - 2.0)*(BOA_ik - 2.0)); - exp_pen3 = exp(-p_pen3 * d_Delta[i]); - exp_pen4 = exp(p_pen4 * d_Delta[i]); - trm_pen34 = 1.0 + exp_pen3 + exp_pen4; - f9_Dj = (2.0 + exp_pen3) / trm_pen34; - Cf9j = (-p_pen3 * exp_pen3 * trm_pen34 - (2.0 + exp_pen3) * - (-p_pen3 * exp_pen3 + p_pen4 * exp_pen4))/(trm_pen34*trm_pen34); + exp_pen2ij = exp(-p_pen2 * (BOA_ij - 2.0)*(BOA_ij - 2.0)); + exp_pen2jk = exp(-p_pen2 * (BOA_ik - 2.0)*(BOA_ik - 2.0)); + exp_pen3 = exp(-p_pen3 * d_Delta[i]); + exp_pen4 = exp(p_pen4 * d_Delta[i]); + trm_pen34 = 1.0 + exp_pen3 + exp_pen4; + f9_Dj = (2.0 + exp_pen3) / trm_pen34; + Cf9j = (-p_pen3 * exp_pen3 * trm_pen34 - (2.0 + exp_pen3) * + (-p_pen3 * exp_pen3 + p_pen4 * exp_pen4))/(trm_pen34*trm_pen34); - e_pen = p_pen1 * f9_Dj * exp_pen2ij * exp_pen2jk; - if (eflag) ev.ereax[4] += e_pen; + e_pen = p_pen1 * f9_Dj * exp_pen2ij * exp_pen2jk; + if (eflag) ev.ereax[4] += e_pen; - CEpen1 = e_pen * Cf9j / f9_Dj; - temp = -2.0 * p_pen2 * e_pen; - CEpen2 = temp * (BOA_ij - 2.0); - CEpen3 = temp * (BOA_ik - 2.0); + CEpen1 = e_pen * Cf9j / f9_Dj; + temp = -2.0 * p_pen2 * e_pen; + CEpen2 = temp * (BOA_ij - 2.0); + CEpen3 = temp * (BOA_ik - 2.0); - // ConjAngle energy + // ConjAngle energy - p_coa1 = paramsthbp(jtype,itype,ktype).p_coa1; - exp_coa2 = exp(p_coa2 * Delta_val); - e_coa = p_coa1 / (1. + exp_coa2) * - exp(-p_coa3 * SQR(d_total_bo[j]-BOA_ij)) * - exp(-p_coa3 * SQR(d_total_bo[k]-BOA_ik)) * - exp(-p_coa4 * SQR(BOA_ij - 1.5)) * - exp(-p_coa4 * SQR(BOA_ik - 1.5)); + p_coa1 = paramsthbp(jtype,itype,ktype).p_coa1; + exp_coa2 = exp(p_coa2 * Delta_val); + e_coa = p_coa1 / (1. + exp_coa2) * + exp(-p_coa3 * SQR(d_total_bo[j]-BOA_ij)) * + exp(-p_coa3 * SQR(d_total_bo[k]-BOA_ik)) * + exp(-p_coa4 * SQR(BOA_ij - 1.5)) * + exp(-p_coa4 * SQR(BOA_ik - 1.5)); - CEcoa1 = -2 * p_coa4 * (BOA_ij - 1.5) * e_coa; - CEcoa2 = -2 * p_coa4 * (BOA_ik - 1.5) * e_coa; - CEcoa3 = -p_coa2 * exp_coa2 * e_coa / (1 + exp_coa2); - CEcoa4 = -2 * p_coa3 * (d_total_bo[j]-BOA_ij) * e_coa; - CEcoa5 = -2 * p_coa3 * (d_total_bo[k]-BOA_ik) * e_coa; + CEcoa1 = -2 * p_coa4 * (BOA_ij - 1.5) * e_coa; + CEcoa2 = -2 * p_coa4 * (BOA_ik - 1.5) * e_coa; + CEcoa3 = -p_coa2 * exp_coa2 * e_coa / (1 + exp_coa2); + CEcoa4 = -2 * p_coa3 * (d_total_bo[j]-BOA_ij) * e_coa; + CEcoa5 = -2 * p_coa3 * (d_total_bo[k]-BOA_ik) * e_coa; - if (eflag) ev.ereax[5] += e_coa; + if (eflag) ev.ereax[5] += e_coa; - // Forces + // Forces - a_Cdbo(i,j_index) += (CEval1 + CEpen2 + (CEcoa1 - CEcoa4)); - a_Cdbo(j,i_index) += (CEval1 + CEpen2 + (CEcoa1 - CEcoa4)); - a_Cdbo(i,k_index) += (CEval2 + CEpen3 + (CEcoa2 - CEcoa5)); - a_Cdbo(k,i_index) += (CEval2 + CEpen3 + (CEcoa2 - CEcoa5)); + a_Cdbo(i,j_index) += (CEval1 + CEpen2 + (CEcoa1 - CEcoa4)); + a_Cdbo(j,i_index) += (CEval1 + CEpen2 + (CEcoa1 - CEcoa4)); + a_Cdbo(i,k_index) += (CEval2 + CEpen3 + (CEcoa2 - CEcoa5)); + a_Cdbo(k,i_index) += (CEval2 + CEpen3 + (CEcoa2 - CEcoa5)); - CdDelta_i += ((CEval3 + CEval7) + CEpen1 + CEcoa3); - CdDelta_j += CEcoa4; - a_CdDelta[k] += CEcoa5; + CdDelta_i += ((CEval3 + CEval7) + CEpen1 + CEcoa3); + CdDelta_j += CEcoa4; + a_CdDelta[k] += CEcoa5; - for (int ll = j_start; ll < j_end; ll++) { - int l = d_bo_list[ll]; - l &= NEIGHMASK; - const int l_index = ll - j_start; + for (int ll = j_start; ll < j_end; ll++) { + int l = d_bo_list[ll]; + l &= NEIGHMASK; + const int l_index = ll - j_start; - temp_bo_jt = d_BO(i,l_index); - temp = temp_bo_jt * temp_bo_jt * temp_bo_jt; - pBOjt7 = temp * temp * temp_bo_jt; + temp_bo_jt = d_BO(i,l_index); + temp = temp_bo_jt * temp_bo_jt * temp_bo_jt; + pBOjt7 = temp * temp * temp_bo_jt; - a_Cdbo(i,l_index) += (CEval6 * pBOjt7); - a_Cdbopi(i,l_index) += CEval5; - a_Cdbopi2(i,l_index) += CEval5; - } + a_Cdbo(i,l_index) += (CEval6 * pBOjt7); + a_Cdbopi(i,l_index) += CEval5; + a_Cdbopi2(i,l_index) += CEval5; + } - for (int d = 0; d < 3; d++) fi_tmp[d] = CEval8 * dcos_theta_di[d]; - for (int d = 0; d < 3; d++) fj_tmp[d] = CEval8 * dcos_theta_dj[d]; - for (int d = 0; d < 3; d++) fk_tmp[d] = CEval8 * dcos_theta_dk[d]; - for (int d = 0; d < 3; d++) fitmp[d] -= fi_tmp[d]; - for (int d = 0; d < 3; d++) fjtmp[d] -= fj_tmp[d]; - for (int d = 0; d < 3; d++) a_f(k,d) -= fk_tmp[d]; + for (int d = 0; d < 3; d++) fi_tmp[d] = CEval8 * dcos_theta_di[d]; + for (int d = 0; d < 3; d++) fj_tmp[d] = CEval8 * dcos_theta_dj[d]; + for (int d = 0; d < 3; d++) fk_tmp[d] = CEval8 * dcos_theta_dk[d]; + for (int d = 0; d < 3; d++) fitmp[d] -= fi_tmp[d]; + for (int d = 0; d < 3; d++) fjtmp[d] -= fj_tmp[d]; + for (int d = 0; d < 3; d++) a_f(k,d) -= fk_tmp[d]; - // energy/virial tally - if (EVFLAG) { - eng_tmp = e_ang + e_pen + e_coa; - //if (eflag_atom) this->template ev_tally(ev,i,j,eng_tmp,0.0,0.0,0.0,0.0); - for (int d = 0; d < 3; d++) delki[d] = -1.0 * delik[d]; - for (int d = 0; d < 3; d++) delji[d] = -1.0 * delij[d]; - if (eflag_atom) this->template e_tally(ev,i,j,eng_tmp); - if (vflag_either) this->template v_tally3(ev,i,j,k,fj_tmp,fk_tmp,delji,delki); - } + // energy/virial tally + if (EVFLAG) { + eng_tmp = e_ang + e_pen + e_coa; + //if (eflag_atom) this->template ev_tally(ev,i,j,eng_tmp,0.0,0.0,0.0,0.0); + for (int d = 0; d < 3; d++) delki[d] = -1.0 * delik[d]; + for (int d = 0; d < 3; d++) delji[d] = -1.0 * delij[d]; + if (eflag_atom) this->template e_tally(ev,i,j,eng_tmp); + if (vflag_either) this->template v_tally3(ev,i,j,k,fj_tmp,fk_tmp,delji,delki); + } - a_CdDelta[j] += CdDelta_j; - for (int d = 0; d < 3; d++) a_f(j,d) += fjtmp[d]; + a_CdDelta[j] += CdDelta_j; + for (int d = 0; d < 3; d++) a_f(j,d) += fjtmp[d]; a_CdDelta[i] += CdDelta_i; for (int d = 0; d < 3; d++) a_f(i,d) += fitmp[d]; } @@ -3099,285 +3019,284 @@ void PairReaxFFKokkos::operator()(TagPairReaxComputeTorsionPreproces const X_FLOAT ztmp = x(i,2); Delta_i = d_Delta_boc[i]; - const int jtype = type(j); - - bo_ij = d_BO(i,j_index); - - delij[0] = x(j,0) - xtmp; - delij[1] = x(j,1) - ytmp; - delij[2] = x(j,2) - ztmp; - const F_FLOAT rsqij = delij[0]*delij[0] + delij[1]*delij[1] + delij[2]*delij[2]; - const F_FLOAT rij = sqrt(rsqij); - - BOA_ij = bo_ij - thb_cut; - Delta_j = d_Delta_boc[j]; - exp_tor2_ij = exp(-p_tor2 * BOA_ij); - exp_cot2_ij = exp(-p_cot2 * SQR(BOA_ij - 1.5)); - exp_tor3_DiDj = exp(-p_tor3 * (Delta_i + Delta_j)); - exp_tor4_DiDj = exp(p_tor4 * (Delta_i + Delta_j)); - exp_tor34_inv = 1.0 / (1.0 + exp_tor3_DiDj + exp_tor4_DiDj); - f11_DiDj = (2.0 + exp_tor3_DiDj) * exp_tor34_inv; - - const int ktype = type(k); - - bo_ik = d_BO(i,k_index); - - BOA_ik = bo_ik - thb_cut; - for (int d = 0; d < 3; d ++) delik[d] = x(k,d) - x(i,d); - const F_FLOAT rsqik = delik[0]*delik[0] + delik[1]*delik[1] + delik[2]*delik[2]; - const F_FLOAT rik = sqrt(rsqik); - - cos_ijk = (delij[0]*delik[0]+delij[1]*delik[1]+delij[2]*delik[2])/(rij*rik); - if (cos_ijk > 1.0) cos_ijk = 1.0; - if (cos_ijk < -1.0) cos_ijk = -1.0; - theta_ijk = acos(cos_ijk); - - // dcos_ijk - const F_FLOAT inv_dists = 1.0 / (rij * rik); - const F_FLOAT cos_ijk_tmp = cos_ijk / ((rij*rik)*(rij*rik)); - - for (int d = 0; d < 3; d++) { - dcos_ijk_di[d] = -(delik[d] + delij[d]) * inv_dists + cos_ijk_tmp * (rsqik * delij[d] + rsqij * delik[d]); - dcos_ijk_dj[d] = delik[d] * inv_dists - cos_ijk_tmp * rsqik * delij[d]; - dcos_ijk_dk[d] = delij[d] * inv_dists - cos_ijk_tmp * rsqij * delik[d]; - } - - sin_ijk = sin(theta_ijk); - if (sin_ijk >= 0 && sin_ijk <= 1e-10) - tan_ijk_i = cos_ijk / 1e-10; - else if (sin_ijk <= 0 && sin_ijk >= -1e-10) - tan_ijk_i = -cos_ijk / 1e-10; - else tan_ijk_i = cos_ijk / sin_ijk; - - exp_tor2_ik = exp(-p_tor2 * BOA_ik); - exp_cot2_ik = exp(-p_cot2 * SQR(BOA_ik -1.5)); - - const int ltype = type(l); - - bo_jl = d_BO(j,l_index); - - for (int d = 0; d < 3; d ++) deljl[d] = x(l,d) - x(j,d); - const F_FLOAT rsqjl = deljl[0]*deljl[0] + deljl[1]*deljl[1] + deljl[2]*deljl[2]; - const F_FLOAT rjl = sqrt(rsqjl); - BOA_jl = bo_jl - thb_cut; - - cos_jil = -(delij[0]*deljl[0]+delij[1]*deljl[1]+delij[2]*deljl[2])/(rij*rjl); - if (cos_jil > 1.0) cos_jil = 1.0; - if (cos_jil < -1.0) cos_jil = -1.0; - theta_jil = acos(cos_jil); - - // dcos_jil - const F_FLOAT inv_distjl = 1.0 / (rij * rjl); - const F_FLOAT cos_jil_tmp = cos_jil / ((rij*rjl)*(rij*rjl)); - - for (int d = 0; d < 3; d++) { - dcos_jil_di[d] = deljl[d] * inv_distjl - cos_jil_tmp * rsqjl * -delij[d]; - dcos_jil_dj[d] = (-deljl[d] + delij[d]) * inv_distjl - cos_jil_tmp * (rsqjl * delij[d] + rsqij * -deljl[d]); - dcos_jil_dk[d] = -delij[d] * inv_distjl - cos_jil_tmp * rsqij * deljl[d]; - } - - sin_jil = sin(theta_jil); - if (sin_jil >= 0 && sin_jil <= 1e-10) - tan_jil_i = cos_jil / 1e-10; - else if (sin_jil <= 0 && sin_jil >= -1e-10) - tan_jil_i = -cos_jil / 1e-10; - else tan_jil_i = cos_jil / sin_jil; - - for (int d = 0; d < 3; d ++) dellk[d] = x(k,d) - x(l,d); - const F_FLOAT rsqlk = dellk[0]*dellk[0] + dellk[1]*dellk[1] + dellk[2]*dellk[2]; - const F_FLOAT rlk = sqrt(rsqlk); + const int jtype = type(j); + + bo_ij = d_BO(i,j_index); + + delij[0] = x(j,0) - xtmp; + delij[1] = x(j,1) - ytmp; + delij[2] = x(j,2) - ztmp; + const F_FLOAT rsqij = delij[0]*delij[0] + delij[1]*delij[1] + delij[2]*delij[2]; + const F_FLOAT rij = sqrt(rsqij); + + BOA_ij = bo_ij - thb_cut; + Delta_j = d_Delta_boc[j]; + exp_tor2_ij = exp(-p_tor2 * BOA_ij); + exp_cot2_ij = exp(-p_cot2 * SQR(BOA_ij - 1.5)); + exp_tor3_DiDj = exp(-p_tor3 * (Delta_i + Delta_j)); + exp_tor4_DiDj = exp(p_tor4 * (Delta_i + Delta_j)); + exp_tor34_inv = 1.0 / (1.0 + exp_tor3_DiDj + exp_tor4_DiDj); + f11_DiDj = (2.0 + exp_tor3_DiDj) * exp_tor34_inv; + + const int ktype = type(k); + + bo_ik = d_BO(i,k_index); + + BOA_ik = bo_ik - thb_cut; + for (int d = 0; d < 3; d ++) delik[d] = x(k,d) - x(i,d); + const F_FLOAT rsqik = delik[0]*delik[0] + delik[1]*delik[1] + delik[2]*delik[2]; + const F_FLOAT rik = sqrt(rsqik); + + cos_ijk = (delij[0]*delik[0]+delij[1]*delik[1]+delij[2]*delik[2])/(rij*rik); + if (cos_ijk > 1.0) cos_ijk = 1.0; + if (cos_ijk < -1.0) cos_ijk = -1.0; + theta_ijk = acos(cos_ijk); + + // dcos_ijk + const F_FLOAT inv_dists = 1.0 / (rij * rik); + const F_FLOAT cos_ijk_tmp = cos_ijk / ((rij*rik)*(rij*rik)); + + for (int d = 0; d < 3; d++) { + dcos_ijk_di[d] = -(delik[d] + delij[d]) * inv_dists + cos_ijk_tmp * (rsqik * delij[d] + rsqij * delik[d]); + dcos_ijk_dj[d] = delik[d] * inv_dists - cos_ijk_tmp * rsqik * delij[d]; + dcos_ijk_dk[d] = delij[d] * inv_dists - cos_ijk_tmp * rsqij * delik[d]; + } + + sin_ijk = sin(theta_ijk); + if (sin_ijk >= 0 && sin_ijk <= MIN_SINE) + tan_ijk_i = cos_ijk / MIN_SINE; + else if (sin_ijk <= 0 && sin_ijk >= -MIN_SINE) + tan_ijk_i = -cos_ijk / MIN_SINE; + else tan_ijk_i = cos_ijk / sin_ijk; + + exp_tor2_ik = exp(-p_tor2 * BOA_ik); + exp_cot2_ik = exp(-p_cot2 * SQR(BOA_ik -1.5)); + + const int ltype = type(l); + + bo_jl = d_BO(j,l_index); + + for (int d = 0; d < 3; d ++) deljl[d] = x(l,d) - x(j,d); + const F_FLOAT rsqjl = deljl[0]*deljl[0] + deljl[1]*deljl[1] + deljl[2]*deljl[2]; + const F_FLOAT rjl = sqrt(rsqjl); + BOA_jl = bo_jl - thb_cut; + + cos_jil = -(delij[0]*deljl[0]+delij[1]*deljl[1]+delij[2]*deljl[2])/(rij*rjl); + if (cos_jil > 1.0) cos_jil = 1.0; + if (cos_jil < -1.0) cos_jil = -1.0; + theta_jil = acos(cos_jil); + + // dcos_jil + const F_FLOAT inv_distjl = 1.0 / (rij * rjl); + const F_FLOAT cos_jil_tmp = cos_jil / ((rij*rjl)*(rij*rjl)); + + for (int d = 0; d < 3; d++) { + dcos_jil_di[d] = deljl[d] * inv_distjl - cos_jil_tmp * rsqjl * -delij[d]; + dcos_jil_dj[d] = (-deljl[d] + delij[d]) * inv_distjl - cos_jil_tmp * (rsqjl * delij[d] + rsqij * -deljl[d]); + dcos_jil_dk[d] = -delij[d] * inv_distjl - cos_jil_tmp * rsqij * deljl[d]; + } + + sin_jil = sin(theta_jil); + if (sin_jil >= 0 && sin_jil <= MIN_SINE) + tan_jil_i = cos_jil / MIN_SINE; + else if (sin_jil <= 0 && sin_jil >= -MIN_SINE) + tan_jil_i = -cos_jil / MIN_SINE; + else tan_jil_i = cos_jil / sin_jil; + + for (int d = 0; d < 3; d ++) dellk[d] = x(k,d) - x(l,d); + const F_FLOAT rsqlk = dellk[0]*dellk[0] + dellk[1]*dellk[1] + dellk[2]*dellk[2]; + const F_FLOAT rlk = sqrt(rsqlk); - F_FLOAT unnorm_cos_omega, unnorm_sin_omega, omega; - F_FLOAT htra, htrb, htrc, hthd, hthe, hnra, hnrc, hnhd, hnhe; - F_FLOAT arg, poem, tel; - F_FLOAT cross_ij_jl[3]; + // non-Kokkos ReaxFF has a separate function for computing omega, which + // limits the scope of the MIN_SINE statements below - // omega + F_FLOAT sin_ijk_rnd = sin_ijk; + F_FLOAT sin_jil_rnd = sin_jil; - F_FLOAT dot_ij_jk = -(delij[0]*delik[0]+delij[1]*delik[1]+delij[2]*delik[2]); - F_FLOAT dot_ij_lj = delij[0]*deljl[0]+delij[1]*deljl[1]+delij[2]*deljl[2]; - F_FLOAT dot_ik_jl = delik[0]*deljl[0]+delik[1]*deljl[1]+delik[2]*deljl[2]; - unnorm_cos_omega = dot_ij_jk * dot_ij_lj + rsqij * dot_ik_jl; + if (sin_ijk >= 0 && sin_ijk <= MIN_SINE) sin_ijk_rnd = MIN_SINE; + else if (sin_ijk <= 0 && sin_ijk >= -MIN_SINE) sin_ijk_rnd = -MIN_SINE; + if (sin_jil >= 0 && sin_jil <= MIN_SINE) sin_jil_rnd = MIN_SINE; + else if (sin_jil <= 0 && sin_jil >= -MIN_SINE) sin_jil_rnd = -MIN_SINE; - cross_ij_jl[0] = delij[1]*deljl[2] - delij[2]*deljl[1]; - cross_ij_jl[1] = delij[2]*deljl[0] - delij[0]*deljl[2]; - cross_ij_jl[2] = delij[0]*deljl[1] - delij[1]*deljl[0]; + F_FLOAT unnorm_cos_omega, unnorm_sin_omega, omega; + F_FLOAT htra, htrb, htrc, hthd, hthe, hnra, hnrc, hnhd, hnhe; + F_FLOAT arg, poem, tel; + F_FLOAT cross_ij_jl[3]; - unnorm_sin_omega = -rij*(delik[0]*cross_ij_jl[0]+delik[1]*cross_ij_jl[1]+delik[2]*cross_ij_jl[2]); - omega = atan2(unnorm_sin_omega, unnorm_cos_omega); + // omega - htra = rik + cos_ijk * (rjl * cos_jil - rij); - htrb = rij - rik * cos_ijk - rjl * cos_jil; - htrc = rjl + cos_jil * (rik * cos_ijk - rij); - hthd = rik * sin_ijk * (rij - rjl * cos_jil); - hthe = rjl * sin_jil * (rij - rik * cos_ijk); - hnra = rjl * sin_ijk * sin_jil; - hnrc = rik * sin_ijk * sin_jil; - hnhd = rik * rjl * cos_ijk * sin_jil; - hnhe = rik * rjl * sin_ijk * cos_jil; + F_FLOAT dot_ij_jk = -(delij[0]*delik[0]+delij[1]*delik[1]+delij[2]*delik[2]); + F_FLOAT dot_ij_lj = delij[0]*deljl[0]+delij[1]*deljl[1]+delij[2]*deljl[2]; + F_FLOAT dot_ik_jl = delik[0]*deljl[0]+delik[1]*deljl[1]+delik[2]*deljl[2]; + unnorm_cos_omega = dot_ij_jk * dot_ij_lj + rsqij * dot_ik_jl; - poem = 2.0 * rik * rjl * sin_ijk * sin_jil; - if (poem < 1e-20) poem = 1e-20; + cross_ij_jl[0] = delij[1]*deljl[2] - delij[2]*deljl[1]; + cross_ij_jl[1] = delij[2]*deljl[0] - delij[0]*deljl[2]; + cross_ij_jl[2] = delij[0]*deljl[1] - delij[1]*deljl[0]; - tel = SQR(rik) + SQR(rij) + SQR(rjl) - SQR(rlk) - - 2.0 * (rik * rij * cos_ijk - rik * rjl * cos_ijk * cos_jil + rij * rjl * cos_jil); + unnorm_sin_omega = -rij*(delik[0]*cross_ij_jl[0]+delik[1]*cross_ij_jl[1]+delik[2]*cross_ij_jl[2]); + omega = atan2(unnorm_sin_omega, unnorm_cos_omega); - F_FLOAT inv_poem = 1.0 / poem; + htra = rik + cos_ijk * (rjl * cos_jil - rij); + htrb = rij - rik * cos_ijk - rjl * cos_jil; + htrc = rjl + cos_jil * (rik * cos_ijk - rij); + hthd = rik * sin_ijk_rnd * (rij - rjl * cos_jil); + hthe = rjl * sin_jil_rnd * (rij - rik * cos_ijk); + hnra = rjl * sin_ijk_rnd * sin_jil_rnd; + hnrc = rik * sin_ijk_rnd * sin_jil_rnd; + hnhd = rik * rjl * cos_ijk * sin_jil_rnd; + hnhe = rik * rjl * sin_ijk_rnd * cos_jil; - arg = tel * inv_poem; - if (arg > 1.0) arg = 1.0; - if (arg < -1.0) arg = -1.0; + tel = SQR(rik) + SQR(rij) + SQR(rjl) - SQR(rlk) - + 2.0 * (rik * rij * cos_ijk - rik * rjl * cos_ijk * cos_jil + rij * rjl * cos_jil); - F_FLOAT sin_ijk_rnd = sin_ijk; - F_FLOAT sin_jil_rnd = sin_jil; + poem = 2.0 * rik * rjl * sin_ijk_rnd * sin_jil_rnd; + F_FLOAT inv_poem = 1.0 / poem; - if (sin_ijk >= 0 && sin_ijk <= 1e-10) sin_ijk_rnd = 1e-10; - else if (sin_ijk <= 0 && sin_ijk >= -1e-10) sin_ijk_rnd = -1e-10; - if (sin_jil >= 0 && sin_jil <= 1e-10) sin_jil_rnd = 1e-10; - else if (sin_jil <= 0 && sin_jil >= -1e-10) sin_jil_rnd = -1e-10; + arg = tel * inv_poem; + if (arg > 1.0) arg = 1.0; + if (arg < -1.0) arg = -1.0; - cos_omega = cos(omega); - cos2omega = cos(2. * omega); - cos3omega = cos(3. * omega); + cos_omega = cos(omega); + cos2omega = cos(2. * omega); + cos3omega = cos(3. * omega); - // torsion energy + // torsion energy - p_tor1 = paramsfbp(ktype,itype,jtype,ltype).p_tor1; - p_cot1 = paramsfbp(ktype,itype,jtype,ltype).p_cot1; - V1 = paramsfbp(ktype,itype,jtype,ltype).V1; - V2 = paramsfbp(ktype,itype,jtype,ltype).V2; - V3 = paramsfbp(ktype,itype,jtype,ltype).V3; - - exp_tor1 = exp(p_tor1 * SQR(2.0 - d_BO_pi(i,j_index) - f11_DiDj)); - exp_tor2_jl = exp(-p_tor2 * BOA_jl); - exp_cot2_jl = exp(-p_cot2 * SQR(BOA_jl - 1.5)); - fn10 = (1.0 - exp_tor2_ik) * (1.0 - exp_tor2_ij) * (1.0 - exp_tor2_jl); - - CV = 0.5 * (V1 * (1.0 + cos_omega) + V2 * exp_tor1 * (1.0 - cos2omega) + V3 * (1.0 + cos3omega)); - - e_tor = fn10 * sin_ijk * sin_jil * CV; - if (eflag) ev.ereax[6] += e_tor; - - dfn11 = (-p_tor3 * exp_tor3_DiDj + (p_tor3 * exp_tor3_DiDj - p_tor4 * exp_tor4_DiDj) * - (2.0 + exp_tor3_DiDj) * exp_tor34_inv) * exp_tor34_inv; - - CEtors1 = sin_ijk * sin_jil * CV; - - CEtors2 = -fn10 * 2.0 * p_tor1 * V2 * exp_tor1 * (2.0 - d_BO_pi(i,j_index) - f11_DiDj) * - (1.0 - SQR(cos_omega)) * sin_ijk * sin_jil; - CEtors3 = CEtors2 * dfn11; - - CEtors4 = CEtors1 * p_tor2 * exp_tor2_ik * (1.0 - exp_tor2_ij) * (1.0 - exp_tor2_jl); - CEtors5 = CEtors1 * p_tor2 * (1.0 - exp_tor2_ik) * exp_tor2_ij * (1.0 - exp_tor2_jl); - CEtors6 = CEtors1 * p_tor2 * (1.0 - exp_tor2_ik) * (1.0 - exp_tor2_ij) * exp_tor2_jl; - - cmn = -fn10 * CV; - CEtors7 = cmn * sin_jil * tan_ijk_i; - CEtors8 = cmn * sin_ijk * tan_jil_i; - - CEtors9 = fn10 * sin_ijk * sin_jil * - (0.5 * V1 - 2.0 * V2 * exp_tor1 * cos_omega + 1.5 * V3 * (cos2omega + 2.0 * SQR(cos_omega))); - - // 4-body conjugation energy - - fn12 = exp_cot2_ik * exp_cot2_ij * exp_cot2_jl; - e_con = p_cot1 * fn12 * (1.0 + (SQR(cos_omega) - 1.0) * sin_ijk * sin_jil); - if (eflag) ev.ereax[7] += e_con; - - Cconj = -2.0 * fn12 * p_cot1 * p_cot2 * (1.0 + (SQR(cos_omega) - 1.0) * sin_ijk * sin_jil); - - CEconj1 = Cconj * (BOA_ik - 1.5e0); - CEconj2 = Cconj * (BOA_ij - 1.5e0); - CEconj3 = Cconj * (BOA_jl - 1.5e0); - - CEconj4 = -p_cot1 * fn12 * (SQR(cos_omega) - 1.0) * sin_jil * tan_ijk_i; - CEconj5 = -p_cot1 * fn12 * (SQR(cos_omega) - 1.0) * sin_ijk * tan_jil_i; - CEconj6 = 2.0 * p_cot1 * fn12 * cos_omega * sin_ijk * sin_jil; - - // forces - - // contribution to bond order - - a_Cdbopi(i,j_index) += CEtors2; - - a_CdDelta[j] += CEtors3; - a_CdDelta[i] += CEtors3; - - a_Cdbo(i,k_index) += CEtors4 + CEconj1; - a_Cdbo(i,j_index) += CEtors5 + CEconj2; - a_Cdbo(j,l_index) += CEtors6 + CEconj3; // trouble - - const F_FLOAT coeff74 = CEtors7 + CEconj4; - const F_FLOAT coeff85 = CEtors8 + CEconj5; - const F_FLOAT coeff96 = CEtors9 + CEconj6; - - const F_FLOAT inv_rij = 1.0 / rij; - const F_FLOAT inv_rik = 1.0 / rik; - const F_FLOAT inv_rjl = 1.0 / rjl; - const F_FLOAT inv_sin_ijk_rnd = 1.0 / sin_ijk_rnd; - const F_FLOAT inv_sin_jil_rnd = 1.0 / sin_jil_rnd; - - #pragma unroll - for (int d = 0; d < 3; d++) { - // dcos_omega_di - F_FLOAT dcos_omega_dk = ((htra-arg*hnra) * inv_rik) * delik[d] - dellk[d]; - dcos_omega_dk += (hthd-arg*hnhd) * inv_sin_ijk_rnd * -dcos_ijk_dk[d]; - dcos_omega_dk *= 2.0 * inv_poem; - - // dcos_omega_dj - F_FLOAT dcos_omega_di = -((htra-arg*hnra) * inv_rik) * delik[d] - htrb * inv_rij * delij[d]; - dcos_omega_di += -(hthd-arg*hnhd) * inv_sin_ijk_rnd * dcos_ijk_di[d]; - dcos_omega_di += -(hthe-arg*hnhe) * inv_sin_jil_rnd * dcos_jil_di[d]; - dcos_omega_di *= 2.0 * inv_poem; - - // dcos_omega_dk - F_FLOAT dcos_omega_dj = -((htrc-arg*hnrc) * inv_rjl) * deljl[d] + htrb * inv_rij * delij[d]; - dcos_omega_dj += -(hthd-arg*hnhd) * inv_sin_ijk_rnd * dcos_ijk_dj[d]; - dcos_omega_dj += -(hthe-arg*hnhe) * inv_sin_jil_rnd * dcos_jil_dj[d]; - dcos_omega_dj *= 2.0 * inv_poem; - - // dcos_omega_dl - F_FLOAT dcos_omega_dl = ((htrc-arg*hnrc) * inv_rjl) * deljl[d] + dellk[d]; - dcos_omega_dl += (hthe-arg*hnhe) * inv_sin_jil_rnd * -dcos_jil_dk[d]; - dcos_omega_dl *= 2.0 * inv_poem; - - // dcos_theta_ijk - fi_tmp[d] = (coeff74) * dcos_ijk_di[d]; - fj_tmp[d] = (coeff74) * dcos_ijk_dj[d]; - fk_tmp[d] = (coeff74) * dcos_ijk_dk[d]; - - // dcos_theta_jil - fi_tmp[d] += (coeff85) * dcos_jil_di[d]; - fj_tmp[d] += (coeff85) * dcos_jil_dj[d]; - F_FLOAT fl_tmp = (coeff85) * dcos_jil_dk[d]; - - // dcos_omega - fi_tmp[d] += (coeff96) * dcos_omega_di; - fj_tmp[d] += (coeff96) * dcos_omega_dj; - fk_tmp[d] += (coeff96) * dcos_omega_dk; - fl_tmp += (coeff96) * dcos_omega_dl; - - // total forces - a_f(i,d) -= fi_tmp[d]; - a_f(j,d) -= fj_tmp[d]; - a_f(k,d) -= fk_tmp[d]; - a_f(l,d) -= fl_tmp; - } - - // per-atom energy/virial tally - - if (EVFLAG) { - eng_tmp = e_tor + e_con; - //if (eflag_atom) this->template ev_tally(ev,i,j,eng_tmp,0.0,0.0,0.0,0.0); - if (eflag_atom) this->template e_tally(ev,i,j,eng_tmp); - if (vflag_either) { - for (int d = 0; d < 3; d ++) delil[d] = x(l,d) - x(i,d); - for (int d = 0; d < 3; d ++) delkl[d] = x(l,d) - x(k,d); - this->template v_tally4(ev,k,i,j,l,fk_tmp,fi_tmp,fj_tmp,delkl,delil,deljl); - } - } + p_tor1 = paramsfbp(ktype,itype,jtype,ltype).p_tor1; + p_cot1 = paramsfbp(ktype,itype,jtype,ltype).p_cot1; + V1 = paramsfbp(ktype,itype,jtype,ltype).V1; + V2 = paramsfbp(ktype,itype,jtype,ltype).V2; + V3 = paramsfbp(ktype,itype,jtype,ltype).V3; + exp_tor1 = exp(p_tor1 * SQR(2.0 - d_BO_pi(i,j_index) - f11_DiDj)); + exp_tor2_jl = exp(-p_tor2 * BOA_jl); + exp_cot2_jl = exp(-p_cot2 * SQR(BOA_jl - 1.5)); + fn10 = (1.0 - exp_tor2_ik) * (1.0 - exp_tor2_ij) * (1.0 - exp_tor2_jl); + CV = 0.5 * (V1 * (1.0 + cos_omega) + V2 * exp_tor1 * (1.0 - cos2omega) + V3 * (1.0 + cos3omega)); + + e_tor = fn10 * sin_ijk * sin_jil * CV; + if (eflag) ev.ereax[6] += e_tor; + + dfn11 = (-p_tor3 * exp_tor3_DiDj + (p_tor3 * exp_tor3_DiDj - p_tor4 * exp_tor4_DiDj) * + (2.0 + exp_tor3_DiDj) * exp_tor34_inv) * exp_tor34_inv; + + CEtors1 = sin_ijk * sin_jil * CV; + + CEtors2 = -fn10 * 2.0 * p_tor1 * V2 * exp_tor1 * (2.0 - d_BO_pi(i,j_index) - f11_DiDj) * + (1.0 - SQR(cos_omega)) * sin_ijk * sin_jil; + CEtors3 = CEtors2 * dfn11; + + CEtors4 = CEtors1 * p_tor2 * exp_tor2_ik * (1.0 - exp_tor2_ij) * (1.0 - exp_tor2_jl); + CEtors5 = CEtors1 * p_tor2 * (1.0 - exp_tor2_ik) * exp_tor2_ij * (1.0 - exp_tor2_jl); + CEtors6 = CEtors1 * p_tor2 * (1.0 - exp_tor2_ik) * (1.0 - exp_tor2_ij) * exp_tor2_jl; + + cmn = -fn10 * CV; + CEtors7 = cmn * sin_jil * tan_ijk_i; + CEtors8 = cmn * sin_ijk * tan_jil_i; + + CEtors9 = fn10 * sin_ijk * sin_jil * + (0.5 * V1 - 2.0 * V2 * exp_tor1 * cos_omega + 1.5 * V3 * (cos2omega + 2.0 * SQR(cos_omega))); + + // 4-body conjugation energy + + fn12 = exp_cot2_ik * exp_cot2_ij * exp_cot2_jl; + e_con = p_cot1 * fn12 * (1.0 + (SQR(cos_omega) - 1.0) * sin_ijk * sin_jil); + if (eflag) ev.ereax[7] += e_con; + + Cconj = -2.0 * fn12 * p_cot1 * p_cot2 * (1.0 + (SQR(cos_omega) - 1.0) * sin_ijk * sin_jil); + + CEconj1 = Cconj * (BOA_ik - 1.5e0); + CEconj2 = Cconj * (BOA_ij - 1.5e0); + CEconj3 = Cconj * (BOA_jl - 1.5e0); + + CEconj4 = -p_cot1 * fn12 * (SQR(cos_omega) - 1.0) * sin_jil * tan_ijk_i; + CEconj5 = -p_cot1 * fn12 * (SQR(cos_omega) - 1.0) * sin_ijk * tan_jil_i; + CEconj6 = 2.0 * p_cot1 * fn12 * cos_omega * sin_ijk * sin_jil; + + // forces + + // contribution to bond order + + a_Cdbopi(i,j_index) += CEtors2; + + a_CdDelta[j] += CEtors3; + a_CdDelta[i] += CEtors3; + + a_Cdbo(i,k_index) += CEtors4 + CEconj1; + a_Cdbo(i,j_index) += CEtors5 + CEconj2; + a_Cdbo(j,l_index) += CEtors6 + CEconj3; + + const F_FLOAT coeff74 = CEtors7 + CEconj4; + const F_FLOAT coeff85 = CEtors8 + CEconj5; + const F_FLOAT coeff96 = CEtors9 + CEconj6; + + const F_FLOAT inv_rij = 1.0 / rij; + const F_FLOAT inv_rik = 1.0 / rik; + const F_FLOAT inv_rjl = 1.0 / rjl; + const F_FLOAT inv_sin_ijk_rnd = 1.0 / sin_ijk_rnd; + const F_FLOAT inv_sin_jil_rnd = 1.0 / sin_jil_rnd; + + #pragma unroll + for (int d = 0; d < 3; d++) { + // dcos_omega_di + F_FLOAT dcos_omega_dk = ((htra-arg*hnra) * inv_rik) * delik[d] - dellk[d]; + dcos_omega_dk += (hthd-arg*hnhd) * inv_sin_ijk_rnd * -dcos_ijk_dk[d]; + dcos_omega_dk *= 2.0 * inv_poem; + + // dcos_omega_dj + F_FLOAT dcos_omega_di = -((htra-arg*hnra) * inv_rik) * delik[d] - htrb * inv_rij * delij[d]; + dcos_omega_di += -(hthd-arg*hnhd) * inv_sin_ijk_rnd * dcos_ijk_di[d]; + dcos_omega_di += -(hthe-arg*hnhe) * inv_sin_jil_rnd * dcos_jil_di[d]; + dcos_omega_di *= 2.0 * inv_poem; + + // dcos_omega_dk + F_FLOAT dcos_omega_dj = -((htrc-arg*hnrc) * inv_rjl) * deljl[d] + htrb * inv_rij * delij[d]; + dcos_omega_dj += -(hthd-arg*hnhd) * inv_sin_ijk_rnd * dcos_ijk_dj[d]; + dcos_omega_dj += -(hthe-arg*hnhe) * inv_sin_jil_rnd * dcos_jil_dj[d]; + dcos_omega_dj *= 2.0 * inv_poem; + + // dcos_omega_dl + F_FLOAT dcos_omega_dl = ((htrc-arg*hnrc) * inv_rjl) * deljl[d] + dellk[d]; + dcos_omega_dl += (hthe-arg*hnhe) * inv_sin_jil_rnd * -dcos_jil_dk[d]; + dcos_omega_dl *= 2.0 * inv_poem; + + // dcos_theta_ijk + fi_tmp[d] = (coeff74) * dcos_ijk_di[d]; + fj_tmp[d] = (coeff74) * dcos_ijk_dj[d]; + fk_tmp[d] = (coeff74) * dcos_ijk_dk[d]; + + // dcos_theta_jil + fi_tmp[d] += (coeff85) * dcos_jil_di[d]; + fj_tmp[d] += (coeff85) * dcos_jil_dj[d]; + F_FLOAT fl_tmp = (coeff85) * dcos_jil_dk[d]; + + // dcos_omega + fi_tmp[d] += (coeff96) * dcos_omega_di; + fj_tmp[d] += (coeff96) * dcos_omega_dj; + fk_tmp[d] += (coeff96) * dcos_omega_dk; + fl_tmp += (coeff96) * dcos_omega_dl; + + // total forces + a_f(i,d) -= fi_tmp[d]; + a_f(j,d) -= fj_tmp[d]; + a_f(k,d) -= fk_tmp[d]; + a_f(l,d) -= fl_tmp; + } + + // per-atom energy/virial tally + + if (EVFLAG) { + eng_tmp = e_tor + e_con; + //if (eflag_atom) this->template ev_tally(ev,i,j,eng_tmp,0.0,0.0,0.0,0.0); + if (eflag_atom) this->template e_tally(ev,i,j,eng_tmp); + if (vflag_either) { + for (int d = 0; d < 3; d ++) delil[d] = x(l,d) - x(i,d); + for (int d = 0; d < 3; d ++) delkl[d] = x(l,d) - x(k,d); + this->template v_tally4(ev,k,i,j,l,fk_tmp,fi_tmp,fj_tmp,delkl,delil,deljl); + } + } } template @@ -3549,11 +3468,11 @@ void PairReaxFFKokkos::operator()(TagPairReaxUpdateBond, Kokkos::View::value>> a_Cdbo = d_Cdbo; Kokkos::View::value>> a_Cdbopi = d_Cdbopi; Kokkos::View::value>> a_Cdbopi2 = d_Cdbopi2; - //auto a_Cdbo = dup_Cdbo.template access>(); - //auto a_Cdbopi = dup_Cdbopi.template access>(); - //auto a_Cdbopi2 = dup_Cdbopi2.template access>(); const int i = d_ilist[ii]; + const X_FLOAT xtmp = x(i,0); + const X_FLOAT ytmp = x(i,1); + const X_FLOAT ztmp = x(i,2); const tagint itag = tag(i); const int j_start = d_bo_first[i]; const int j_end = j_start + d_bo_num[i]; @@ -3562,6 +3481,21 @@ void PairReaxFFKokkos::operator()(TagPairReaxUpdateBond, int j = d_bo_list[jj]; j &= NEIGHMASK; const tagint jtag = tag(j); + + int flag = 0; + + if (itag > jtag) { + if ((itag+jtag) % 2 == 0) flag = 1; + } else if (itag < jtag) { + if ((itag+jtag) % 2 == 1) flag = 1; + } else { + if (x(j,2) < ztmp) flag = 1; + if (x(j,2) == ztmp && x(j,1) < ytmp) flag = 1; + if (x(j,2) == ztmp && x(j,1) == ytmp && x(j,0) < xtmp) flag = 1; + } + + if (!flag) continue; + const int j_index = jj - j_start; const F_FLOAT Cdbo_i = d_Cdbo(i,j_index); const F_FLOAT Cdbopi_i = d_Cdbopi(i,j_index); @@ -3576,18 +3510,9 @@ void PairReaxFFKokkos::operator()(TagPairReaxUpdateBond, if (k != i) continue; const int k_index = kk - k_start; - int flag = 0; - if (itag > jtag) { - if ((itag+jtag) % 2 == 0) flag = 1; - } else if (itag < jtag) { - if ((itag+jtag) % 2 == 1) flag = 1; - } - - if (flag) { - a_Cdbo(j,k_index) += Cdbo_i; - a_Cdbopi(j,k_index) += Cdbopi_i; - a_Cdbopi2(j,k_index) += Cdbopi2_i; - } + a_Cdbo(j,k_index) += Cdbo_i; + a_Cdbopi(j,k_index) += Cdbopi_i; + a_Cdbopi2(j,k_index) += Cdbopi2_i; } } } diff --git a/src/KOKKOS/pair_reaxff_kokkos.h b/src/KOKKOS/pair_reaxff_kokkos.h index 64d9ced875..836a2de731 100644 --- a/src/KOKKOS/pair_reaxff_kokkos.h +++ b/src/KOKKOS/pair_reaxff_kokkos.h @@ -257,7 +257,7 @@ class PairReaxFFKokkos : public PairReaxFF { // Abstraction for counting and populating torsion intermediated template KOKKOS_INLINE_FUNCTION - int preprocess_torsion(int, int, int, F_FLOAT, F_FLOAT, F_FLOAT, int, int, int) const; + int preprocess_torsion(int, int, tagint, F_FLOAT, F_FLOAT, F_FLOAT, int, int, int) const; template KOKKOS_INLINE_FUNCTION @@ -384,7 +384,6 @@ class PairReaxFFKokkos : public PairReaxFF { protected: void allocate(); void allocate_array(); - void deallocate_array(); void setup(); void init_md(); int Init_Lookup_Tables(); @@ -436,6 +435,8 @@ class PairReaxFFKokkos : public PairReaxFF { typename AT::t_ffloat_2d_dl d_C1dbopi2, d_C2dbopi2, d_C3dbopi2, d_C4dbopi2; typename AT::t_ffloat_2d_dl d_Cdbo, d_Cdbopi, d_Cdbopi2, d_dDeltap_self; + int need_dup; + using KKDeviceType = typename KKDevice::value; template @@ -444,27 +445,19 @@ class PairReaxFFKokkos : public PairReaxFF { template using NonDupScatterView = KKScatterView; - DupScatterView dup_total_bo; - DupScatterView dup_CdDelta; - DupScatterView dup_eatom; DupScatterView dup_f; + DupScatterView dup_eatom; DupScatterView dup_vatom; DupScatterView dup_dDeltap_self; - DupScatterView dup_Cdbo; - DupScatterView dup_Cdbopi; - DupScatterView dup_Cdbopi2; + DupScatterView dup_total_bo; + DupScatterView dup_CdDelta; - NonDupScatterView ndup_total_bo; - NonDupScatterView ndup_CdDelta; - NonDupScatterView ndup_eatom; NonDupScatterView ndup_f; + NonDupScatterView ndup_eatom; NonDupScatterView ndup_vatom; NonDupScatterView ndup_dDeltap_self; - NonDupScatterView ndup_Cdbo; - NonDupScatterView ndup_Cdbopi; - NonDupScatterView ndup_Cdbopi2; - - int need_dup; + NonDupScatterView ndup_total_bo; + NonDupScatterView ndup_CdDelta; typedef Kokkos::DualView tdual_ffloat_2d_n7; typedef typename tdual_ffloat_2d_n7::t_dev_const_randomread t_ffloat_2d_n7_randomread; diff --git a/src/KOKKOS/pair_snap_kokkos.h b/src/KOKKOS/pair_snap_kokkos.h index 2cd0003478..2937359822 100644 --- a/src/KOKKOS/pair_snap_kokkos.h +++ b/src/KOKKOS/pair_snap_kokkos.h @@ -238,44 +238,14 @@ class PairSNAPKokkos : public PairSNAP { typename AT::t_efloat_1d d_eatom; typename AT::t_virial_array d_vatom; - typedef Kokkos::View t_bvec; - t_bvec bvec; - typedef Kokkos::View t_dbvec; - t_dbvec dbvec; SNAKokkos snaKK; int inum,max_neighs,chunk_size,chunk_offset; - int host_flag; + int host_flag,neighflag; int eflag,vflag; void allocate() override; - //void read_files(char *, char *); - /*template - inline int equal(double* x,double* y); - template - inline double dist2(double* x,double* y); - double extra_cutoff(); - void load_balance(); - void set_sna_to_shared(int snaid,int i); - void build_per_atom_arrays();*/ - - int neighflag; - - Kokkos::View ilistmast; - Kokkos::View ghostilist; - Kokkos::View ghostnumneigh; - Kokkos::View ghostneighs; - Kokkos::View ghostfirstneigh; - - Kokkos::View i_pairs; - Kokkos::View i_rij; - Kokkos::View i_inside; - Kokkos::View i_wj; - Kokkos::Viewi_rcutij; - Kokkos::View i_ninside; - Kokkos::View i_uarraytot_r, i_uarraytot_i; - Kokkos::View i_zarray_r, i_zarray_i; Kokkos::View d_radelem; // element radii Kokkos::View d_wjelem; // elements weights @@ -286,7 +256,6 @@ class PairSNAPKokkos : public PairSNAP { Kokkos::View d_ninside; // ninside for all atoms in list Kokkos::View d_beta; // betas for all atoms in list Kokkos::View d_beta_pack; // betas for all atoms in list, GPU - Kokkos::View d_bispectrum; // bispectrum components for all atoms in list typedef Kokkos::DualView tdual_fparams; tdual_fparams k_cutsq; diff --git a/src/KOKKOS/pair_snap_kokkos_impl.h b/src/KOKKOS/pair_snap_kokkos_impl.h index c2657f8534..d36497964e 100644 --- a/src/KOKKOS/pair_snap_kokkos_impl.h +++ b/src/KOKKOS/pair_snap_kokkos_impl.h @@ -139,7 +139,7 @@ template void PairSNAPKokkos::compute(int eflag_in, int vflag_in) { if (host_flag) { - atomKK->sync(Host,X_MASK|TYPE_MASK); + atomKK->sync(Host,X_MASK|F_MASK|TYPE_MASK); PairSNAP::compute(eflag_in,vflag_in); atomKK->modified(Host,F_MASK); return; @@ -206,10 +206,10 @@ void PairSNAPKokkos::compute(int eflag_in, if (beta_max < inum) { beta_max = inum; - d_beta = Kokkos::View("PairSNAPKokkos:beta",ncoeff,inum); + MemKK::realloc_kokkos(d_beta,"PairSNAPKokkos:beta",ncoeff,inum); if (!host_flag) - d_beta_pack = Kokkos::View("PairSNAPKokkos:beta_pack",vector_length,ncoeff,(inum + vector_length - 1) / vector_length); - d_ninside = Kokkos::View("PairSNAPKokkos:ninside",inum); + MemKK::realloc_kokkos(d_beta_pack,"PairSNAPKokkos:beta_pack",vector_length,ncoeff,(inum + vector_length - 1) / vector_length); + MemKK::realloc_kokkos(d_ninside,"PairSNAPKokkos:ninside",inum); } chunk_size = MIN(chunksize,inum); // "chunksize" variable is set by user @@ -545,7 +545,7 @@ void PairSNAPKokkos::allocate() PairSNAP::allocate(); int n = atom->ntypes; - d_map = Kokkos::View("PairSNAPKokkos::map",n+1); + MemKK::realloc_kokkos(d_map,"PairSNAPKokkos::map",n+1); } @@ -574,11 +574,11 @@ void PairSNAPKokkos::coeff(int narg, char // Set up element lists - d_radelem = Kokkos::View("pair:radelem",nelements); - d_wjelem = Kokkos::View("pair:wjelem",nelements); - d_coeffelem = Kokkos::View("pair:coeffelem",nelements,ncoeffall); - d_sinnerelem = Kokkos::View("pair:sinnerelem",nelements); - d_dinnerelem = Kokkos::View("pair:dinnerelem",nelements); + MemKK::realloc_kokkos(d_radelem,"pair:radelem",nelements); + MemKK::realloc_kokkos(d_wjelem,"pair:wjelem",nelements); + MemKK::realloc_kokkos(d_coeffelem,"pair:coeffelem",nelements,ncoeffall); + MemKK::realloc_kokkos(d_sinnerelem,"pair:sinnerelem",nelements); + MemKK::realloc_kokkos(d_dinnerelem,"pair:dinnerelem",nelements); auto h_radelem = Kokkos::create_mirror_view(d_radelem); auto h_wjelem = Kokkos::create_mirror_view(d_wjelem); @@ -1411,12 +1411,16 @@ template double PairSNAPKokkos::memory_usage() { double bytes = Pair::memory_usage(); - int n = atom->ntypes+1; - bytes += n*n*sizeof(int); - bytes += n*n*sizeof(real_type); - bytes += (2*ncoeffall)*sizeof(real_type); - bytes += (ncoeff*3)*sizeof(real_type); - bytes += snaKK.memory_usage(); + bytes += MemKK::memory_usage(d_beta); + if (!host_flag) + bytes += MemKK::memory_usage(d_beta_pack); + bytes += MemKK::memory_usage(d_ninside); + bytes += MemKK::memory_usage(d_map); + bytes += MemKK::memory_usage(d_radelem); + bytes += MemKK::memory_usage(d_wjelem); + bytes += MemKK::memory_usage(d_coeffelem); + bytes += MemKK::memory_usage(d_sinnerelem); + bytes += MemKK::memory_usage(d_dinnerelem); return bytes; } diff --git a/src/KOKKOS/pair_sw_kokkos.cpp b/src/KOKKOS/pair_sw_kokkos.cpp index cae0aea0e8..a3d8d11380 100644 --- a/src/KOKKOS/pair_sw_kokkos.cpp +++ b/src/KOKKOS/pair_sw_kokkos.cpp @@ -392,7 +392,11 @@ void PairSWKokkos::coeff(int narg, char **arg) template void PairSWKokkos::init_style() { + // there is no support for skipping threebody loops (yet) + bool tmp_threebody = skip_threebody_flag; + skip_threebody_flag = false; PairSW::init_style(); + skip_threebody_flag = tmp_threebody; // adjust neighbor list request for KOKKOS diff --git a/src/KOKKOS/pair_zbl_kokkos.cpp b/src/KOKKOS/pair_zbl_kokkos.cpp index 316c583717..e881196e5e 100644 --- a/src/KOKKOS/pair_zbl_kokkos.cpp +++ b/src/KOKKOS/pair_zbl_kokkos.cpp @@ -126,8 +126,6 @@ void PairZBLKokkos::compute(int eflag_in, int vflag_in) } atomKK->sync(execution_space,datamask_read); - if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); - else atomKK->modified(execution_space,F_MASK); x = atomKK->k_x.view(); f = atomKK->k_f.view(); @@ -177,6 +175,9 @@ void PairZBLKokkos::compute(int eflag_in, int vflag_in) } if (vflag_fdotr) pair_virial_fdotr_compute(this); + + if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); + else atomKK->modified(execution_space,F_MASK); } template diff --git a/src/KOKKOS/sna_kokkos_impl.h b/src/KOKKOS/sna_kokkos_impl.h index 77130b9781..8d81a4a65b 100644 --- a/src/KOKKOS/sna_kokkos_impl.h +++ b/src/KOKKOS/sna_kokkos_impl.h @@ -17,6 +17,7 @@ ------------------------------------------------------------------------- */ #include "sna_kokkos.h" +#include "memory_kokkos.h" #include #include #include @@ -62,12 +63,12 @@ SNAKokkos::SNAKokkos(real_type rfac0_in, build_indexlist(); int jdimpq = twojmax + 2; - rootpqarray = t_sna_2d("SNAKokkos::rootpqarray",jdimpq,jdimpq); + MemKK::realloc_kokkos(rootpqarray,"SNAKokkos::rootpqarray",jdimpq,jdimpq); - cglist = t_sna_1d("SNAKokkos::cglist",idxcg_max); + MemKK::realloc_kokkos(cglist,"SNAKokkos::cglist",idxcg_max); if (bzero_flag) { - bzero = Kokkos::View("sna:bzero",twojmax+1); + MemKK::realloc_kokkos(bzero,"sna:bzero",twojmax+1); auto h_bzero = Kokkos::create_mirror_view(bzero); double www = wself*wself*wself; @@ -95,7 +96,7 @@ void SNAKokkos::build_indexlist() // index list for cglist int jdim = twojmax + 1; - idxcg_block = Kokkos::View(Kokkos::NoInit("SNAKokkos::idxcg_block"),jdim,jdim,jdim); + MemKK::realloc_kokkos(idxcg_block,"SNAKokkos::idxcg_block",jdim,jdim,jdim); auto h_idxcg_block = Kokkos::create_mirror_view(idxcg_block); int idxcg_count = 0; @@ -113,7 +114,7 @@ void SNAKokkos::build_indexlist() // index list for uarray // need to include both halves - idxu_block = Kokkos::View(Kokkos::NoInit("SNAKokkos::idxu_block"),jdim); + MemKK::realloc_kokkos(idxu_block,"SNAKokkos::idxu_block",jdim); auto h_idxu_block = Kokkos::create_mirror_view(idxu_block); int idxu_count = 0; @@ -128,7 +129,7 @@ void SNAKokkos::build_indexlist() Kokkos::deep_copy(idxu_block,h_idxu_block); // index list for half uarray - idxu_half_block = Kokkos::View(Kokkos::NoInit("SNAKokkos::idxu_half_block"),jdim); + MemKK::realloc_kokkos(idxu_half_block,"SNAKokkos::idxu_half_block",jdim); auto h_idxu_half_block = Kokkos::create_mirror_view(idxu_half_block); int idxu_half_count = 0; @@ -142,7 +143,7 @@ void SNAKokkos::build_indexlist() Kokkos::deep_copy(idxu_half_block, h_idxu_half_block); // mapping between full and half indexing, encoding flipping - idxu_full_half = Kokkos::View(Kokkos::NoInit("SNAKokkos::idxu_full_half"),idxu_max); + MemKK::realloc_kokkos(idxu_full_half,"SNAKokkos::idxu_full_half",idxu_max); auto h_idxu_full_half = Kokkos::create_mirror_view(idxu_full_half); idxu_count = 0; @@ -169,7 +170,7 @@ void SNAKokkos::build_indexlist() // index list for "cache" uarray // this is the GPU scratch memory requirements // applied the CPU structures - idxu_cache_block = Kokkos::View(Kokkos::NoInit("SNAKokkos::idxu_cache_block"),jdim); + MemKK::realloc_kokkos(idxu_cache_block,"SNAKokkos::idxu_cache_block",jdim); auto h_idxu_cache_block = Kokkos::create_mirror_view(idxu_cache_block); int idxu_cache_count = 0; @@ -191,7 +192,7 @@ void SNAKokkos::build_indexlist() if (j >= j1) idxb_count++; idxb_max = idxb_count; - idxb = Kokkos::View(Kokkos::NoInit("SNAKokkos::idxb"),idxb_max); + MemKK::realloc_kokkos(idxb,"SNAKokkos::idxb",idxb_max); auto h_idxb = Kokkos::create_mirror_view(idxb); idxb_count = 0; @@ -208,7 +209,7 @@ void SNAKokkos::build_indexlist() // reverse index list for beta and b - idxb_block = Kokkos::View(Kokkos::NoInit("SNAKokkos::idxb_block"),jdim,jdim,jdim); + MemKK::realloc_kokkos(idxb_block,"SNAKokkos::idxb_block",jdim,jdim,jdim); auto h_idxb_block = Kokkos::create_mirror_view(idxb_block); idxb_count = 0; @@ -234,10 +235,10 @@ void SNAKokkos::build_indexlist() idxz_count++; idxz_max = idxz_count; - idxz = Kokkos::View(Kokkos::NoInit("SNAKokkos::idxz"),idxz_max); + MemKK::realloc_kokkos(idxz,"SNAKokkos::idxz",idxz_max); auto h_idxz = Kokkos::create_mirror_view(idxz); - idxz_block = Kokkos::View(Kokkos::NoInit("SNAKokkos::idxz_block"), jdim,jdim,jdim); + MemKK::realloc_kokkos(idxz_block,"SNAKokkos::idxz_block", jdim,jdim,jdim); auto h_idxz_block = Kokkos::create_mirror_view(idxz_block); idxz_count = 0; @@ -294,59 +295,59 @@ void SNAKokkos::grow_rij(int newnatom, int natom = newnatom; nmax = newnmax; - rij = t_sna_3d(Kokkos::NoInit("sna:rij"),natom,nmax,3); - wj = t_sna_2d(Kokkos::NoInit("sna:wj"),natom,nmax); - rcutij = t_sna_2d(Kokkos::NoInit("sna:rcutij"),natom,nmax); - sinnerij = t_sna_2d(Kokkos::NoInit("sna:sinnerij"),natom,nmax); - dinnerij = t_sna_2d(Kokkos::NoInit("sna:dinnerij"),natom,nmax); - inside = t_sna_2i(Kokkos::NoInit("sna:inside"),natom,nmax); - element = t_sna_2i(Kokkos::NoInit("sna:element"),natom,nmax); - dedr = t_sna_3d(Kokkos::NoInit("sna:dedr"),natom,nmax,3); + MemKK::realloc_kokkos(rij,"sna:rij",natom,nmax,3); + MemKK::realloc_kokkos(wj,"sna:wj",natom,nmax); + MemKK::realloc_kokkos(rcutij,"sna:rcutij",natom,nmax); + MemKK::realloc_kokkos(sinnerij,"sna:sinnerij",natom,nmax); + MemKK::realloc_kokkos(dinnerij,"sna:dinnerij",natom,nmax); + MemKK::realloc_kokkos(inside,"sna:inside",natom,nmax); + MemKK::realloc_kokkos(element,"sna:element",natom,nmax); + MemKK::realloc_kokkos(dedr,"sna:dedr",natom,nmax,3); #ifdef LMP_KOKKOS_GPU if (!host_flag) { const int natom_div = (natom + vector_length - 1) / vector_length; - a_pack = t_sna_3c_ll(Kokkos::NoInit("sna:a_pack"),vector_length,nmax,natom_div); - b_pack = t_sna_3c_ll(Kokkos::NoInit("sna:b_pack"),vector_length,nmax,natom_div); - da_pack = t_sna_4c_ll(Kokkos::NoInit("sna:da_pack"),vector_length,nmax,natom_div,3); - db_pack = t_sna_4c_ll(Kokkos::NoInit("sna:db_pack"),vector_length,nmax,natom_div,3); - sfac_pack = t_sna_4d_ll(Kokkos::NoInit("sna:sfac_pack"),vector_length,nmax,natom_div,4); - ulisttot = t_sna_3c_ll(Kokkos::NoInit("sna:ulisttot"),1,1,1); // dummy allocation - ulisttot_full = t_sna_3c_ll(Kokkos::NoInit("sna:ulisttot"),1,1,1); - ulisttot_re_pack = t_sna_4d_ll(Kokkos::NoInit("sna:ulisttot_re_pack"),vector_length,idxu_half_max,nelements,natom_div); - ulisttot_im_pack = t_sna_4d_ll(Kokkos::NoInit("sna:ulisttot_im_pack"),vector_length,idxu_half_max,nelements,natom_div); - ulisttot_pack = t_sna_4c_ll(Kokkos::NoInit("sna:ulisttot_pack"),vector_length,idxu_max,nelements,natom_div); - ulist = t_sna_3c_ll(Kokkos::NoInit("sna:ulist"),1,1,1); - zlist = t_sna_3c_ll(Kokkos::NoInit("sna:zlist"),1,1,1); - zlist_pack = t_sna_4c_ll(Kokkos::NoInit("sna:zlist_pack"),vector_length,idxz_max,ndoubles,natom_div); - blist = t_sna_3d(Kokkos::NoInit("sna:blist"),natom,ntriples,idxb_max); - blist_pack = t_sna_4d_ll(Kokkos::NoInit("sna:blist_pack"),vector_length,idxb_max,ntriples,natom_div); - ylist = t_sna_3c_ll(Kokkos::NoInit("sna:ylist"),1,1,1); - ylist_pack_re = t_sna_4d_ll(Kokkos::NoInit("sna:ylist_pack_re"),vector_length,idxu_half_max,nelements,natom_div); - ylist_pack_im = t_sna_4d_ll(Kokkos::NoInit("sna:ylist_pack_im"),vector_length,idxu_half_max,nelements,natom_div); - dulist = t_sna_4c3_ll(Kokkos::NoInit("sna:dulist"),1,1,1); + MemKK::realloc_kokkos(a_pack,"sna:a_pack",vector_length,nmax,natom_div); + MemKK::realloc_kokkos(b_pack,"sna:b_pack",vector_length,nmax,natom_div); + MemKK::realloc_kokkos(da_pack,"sna:da_pack",vector_length,nmax,natom_div,3); + MemKK::realloc_kokkos(db_pack,"sna:db_pack",vector_length,nmax,natom_div,3); + MemKK::realloc_kokkos(sfac_pack,"sna:sfac_pack",vector_length,nmax,natom_div,4); + MemKK::realloc_kokkos(ulisttot,"sna:ulisttot",1,1,1); // dummy allocation + MemKK::realloc_kokkos(ulisttot_full,"sna:ulisttot",1,1,1); + MemKK::realloc_kokkos(ulisttot_re_pack,"sna:ulisttot_re_pack",vector_length,idxu_half_max,nelements,natom_div); + MemKK::realloc_kokkos(ulisttot_im_pack,"sna:ulisttot_im_pack",vector_length,idxu_half_max,nelements,natom_div); + MemKK::realloc_kokkos(ulisttot_pack,"sna:ulisttot_pack",vector_length,idxu_max,nelements,natom_div); + MemKK::realloc_kokkos(ulist,"sna:ulist",1,1,1); + MemKK::realloc_kokkos(zlist,"sna:zlist",1,1,1); + MemKK::realloc_kokkos(zlist_pack,"sna:zlist_pack",vector_length,idxz_max,ndoubles,natom_div); + MemKK::realloc_kokkos(blist,"sna:blist",natom,ntriples,idxb_max); + MemKK::realloc_kokkos(blist_pack,"sna:blist_pack",vector_length,idxb_max,ntriples,natom_div); + MemKK::realloc_kokkos(ylist,"sna:ylist",1,1,1); + MemKK::realloc_kokkos(ylist_pack_re,"sna:ylist_pack_re",vector_length,idxu_half_max,nelements,natom_div); + MemKK::realloc_kokkos(ylist_pack_im,"sna:ylist_pack_im",vector_length,idxu_half_max,nelements,natom_div); + MemKK::realloc_kokkos(dulist,"sna:dulist",1,1,1); } else { #endif - a_pack = t_sna_3c_ll(Kokkos::NoInit("sna:a_pack"),1,1,1); - b_pack = t_sna_3c_ll(Kokkos::NoInit("sna:b_pack"),1,1,1); - da_pack = t_sna_4c_ll(Kokkos::NoInit("sna:da_pack"),1,1,1,1); - db_pack = t_sna_4c_ll(Kokkos::NoInit("sna:db_pack"),1,1,1,1); - sfac_pack = t_sna_4d_ll(Kokkos::NoInit("sna:sfac_pack"),1,1,1,1); - ulisttot = t_sna_3c_ll(Kokkos::NoInit("sna:ulisttot"),idxu_half_max,nelements,natom); - ulisttot_full = t_sna_3c_ll(Kokkos::NoInit("sna:ulisttot_full"),idxu_max,nelements,natom); - ulisttot_re_pack = t_sna_4d_ll(Kokkos::NoInit("sna:ulisttot_re"),1,1,1,1); - ulisttot_im_pack = t_sna_4d_ll(Kokkos::NoInit("sna:ulisttot_im"),1,1,1,1); - ulisttot_pack = t_sna_4c_ll(Kokkos::NoInit("sna:ulisttot_pack"),1,1,1,1); - ulist = t_sna_3c_ll(Kokkos::NoInit("sna:ulist"),idxu_cache_max,natom,nmax); - zlist = t_sna_3c_ll(Kokkos::NoInit("sna:zlist"),idxz_max,ndoubles,natom); - zlist_pack = t_sna_4c_ll(Kokkos::NoInit("sna:zlist_pack"),1,1,1,1); - blist = t_sna_3d(Kokkos::NoInit("sna:blist"),natom,ntriples,idxb_max); - blist_pack = t_sna_4d_ll(Kokkos::NoInit("sna:blist_pack"),1,1,1,1); - ylist = t_sna_3c_ll(Kokkos::NoInit("sna:ylist"),idxu_half_max,nelements,natom); - ylist_pack_re = t_sna_4d_ll(Kokkos::NoInit("sna:ylist_pack_re"),1,1,1,1); - ylist_pack_im = t_sna_4d_ll(Kokkos::NoInit("sna:ylist_pack_im"),1,1,1,1); - dulist = t_sna_4c3_ll(Kokkos::NoInit("sna:dulist"),idxu_cache_max,natom,nmax); + MemKK::realloc_kokkos(a_pack,"sna:a_pack",1,1,1); + MemKK::realloc_kokkos(b_pack,"sna:b_pack",1,1,1); + MemKK::realloc_kokkos(da_pack,"sna:da_pack",1,1,1,1); + MemKK::realloc_kokkos(db_pack,"sna:db_pack",1,1,1,1); + MemKK::realloc_kokkos(sfac_pack,"sna:sfac_pack",1,1,1,1); + MemKK::realloc_kokkos(ulisttot,"sna:ulisttot",idxu_half_max,nelements,natom); + MemKK::realloc_kokkos(ulisttot_full,"sna:ulisttot_full",idxu_max,nelements,natom); + MemKK::realloc_kokkos(ulisttot_re_pack,"sna:ulisttot_re",1,1,1,1); + MemKK::realloc_kokkos(ulisttot_im_pack,"sna:ulisttot_im",1,1,1,1); + MemKK::realloc_kokkos(ulisttot_pack,"sna:ulisttot_pack",1,1,1,1); + MemKK::realloc_kokkos(ulist,"sna:ulist",idxu_cache_max,natom,nmax); + MemKK::realloc_kokkos(zlist,"sna:zlist",idxz_max,ndoubles,natom); + MemKK::realloc_kokkos(zlist_pack,"sna:zlist_pack",1,1,1,1); + MemKK::realloc_kokkos(blist,"sna:blist",natom,ntriples,idxb_max); + MemKK::realloc_kokkos(blist_pack,"sna:blist_pack",1,1,1,1); + MemKK::realloc_kokkos(ylist,"sna:ylist",idxu_half_max,nelements,natom); + MemKK::realloc_kokkos(ylist_pack_re,"sna:ylist_pack_re",1,1,1,1); + MemKK::realloc_kokkos(ylist_pack_im,"sna:ylist_pack_im",1,1,1,1); + MemKK::realloc_kokkos(dulist,"sna:dulist",idxu_cache_max,natom,nmax); #ifdef LMP_KOKKOS_GPU } @@ -2356,74 +2357,68 @@ void SNAKokkos::compute_s_dsfac(const real template double SNAKokkos::memory_usage() { - int jdimpq = twojmax + 2; - int jdim = twojmax + 1; - double bytes; + double bytes = 0; - bytes = 0; - - bytes += jdimpq*jdimpq * sizeof(real_type); // pqarray - bytes += idxcg_max * sizeof(real_type); // cglist + bytes += MemKK::memory_usage(rootpqarray); + bytes += MemKK::memory_usage(cglist); #ifdef LMP_KOKKOS_GPU if (!host_flag) { - auto natom_pad = (natom+vector_length-1)/vector_length; - - bytes += natom_pad * nmax * sizeof(real_type) * 2; // a_pack - bytes += natom_pad * nmax * sizeof(real_type) * 2; // b_pack - bytes += natom_pad * nmax * 3 * sizeof(real_type) * 2; // da_pack - bytes += natom_pad * nmax * 3 * sizeof(real_type) * 2; // db_pack - bytes += natom_pad * nmax * 4 * sizeof(real_type); // sfac_pack + bytes += MemKK::memory_usage(a_pack); + bytes += MemKK::memory_usage(b_pack); + bytes += MemKK::memory_usage(da_pack); + bytes += MemKK::memory_usage(db_pack); + bytes += MemKK::memory_usage(sfac_pack); - bytes += natom_pad * idxu_half_max * nelements * sizeof(real_type); // ulisttot_re_pack - bytes += natom_pad * idxu_half_max * nelements * sizeof(real_type); // ulisttot_im_pack - bytes += natom_pad * idxu_max * nelements * sizeof(real_type) * 2; // ulisttot_pack + bytes += MemKK::memory_usage(ulisttot_re_pack); + bytes += MemKK::memory_usage(ulisttot_im_pack); + bytes += MemKK::memory_usage(ulisttot_pack); - bytes += natom_pad * idxz_max * ndoubles * sizeof(real_type) * 2; // zlist_pack - bytes += natom_pad * idxb_max * ntriples * sizeof(real_type); // blist_pack + bytes += MemKK::memory_usage(zlist_pack); + bytes += MemKK::memory_usage(blist_pack); - bytes += natom_pad * idxu_half_max * nelements * sizeof(real_type); // ylist_pack_re - bytes += natom_pad * idxu_half_max * nelements * sizeof(real_type); // ylist_pack_im + bytes += MemKK::memory_usage(ylist_pack_re); + bytes += MemKK::memory_usage(ylist_pack_im); } else { #endif - bytes += natom * nmax * idxu_cache_max * sizeof(real_type) * 2; // ulist - bytes += natom * idxu_half_max * nelements * sizeof(real_type) * 2; // ulisttot - bytes += natom * idxu_max * nelements * sizeof(real_type) * 2; // ulisttot_full + bytes += MemKK::memory_usage(ulist); + bytes += MemKK::memory_usage(ulisttot); + bytes += MemKK::memory_usage(ulisttot_full); - bytes += natom * idxz_max * ndoubles * sizeof(real_type) * 2; // zlist - bytes += natom * idxb_max * ntriples * sizeof(real_type); // blist + bytes += MemKK::memory_usage(zlist); + bytes += MemKK::memory_usage(blist); - bytes += natom * idxu_half_max * nelements * sizeof(real_type) * 2; // ylist + bytes += MemKK::memory_usage(ylist); - bytes += natom * nmax * idxu_cache_max * 3 * sizeof(real_type) * 2; // dulist + bytes += MemKK::memory_usage(dulist); #ifdef LMP_KOKKOS_GPU } #endif - bytes += natom * nmax * 3 * sizeof(real_type); // dedr + bytes += MemKK::memory_usage(dedr); - bytes += jdim * jdim * jdim * sizeof(int); // idxcg_block - bytes += jdim * sizeof(int); // idxu_block - bytes += jdim * sizeof(int); // idxu_half_block - bytes += idxu_max * sizeof(FullHalfMapper); // idxu_full_half - bytes += jdim * sizeof(int); // idxu_cache_block - bytes += jdim * jdim * jdim * sizeof(int); // idxz_block - bytes += jdim * jdim * jdim * sizeof(int); // idxb_block + bytes += MemKK::memory_usage(idxcg_block); + bytes += MemKK::memory_usage(idxu_block); + bytes += MemKK::memory_usage(idxu_half_block); + bytes += MemKK::memory_usage(idxu_full_half); + bytes += MemKK::memory_usage(idxu_cache_block); + bytes += MemKK::memory_usage(idxz_block); + bytes += MemKK::memory_usage(idxb_block); - bytes += idxz_max * 10 * sizeof(int); // idxz - bytes += idxb_max * 3 * sizeof(int); // idxb + bytes += MemKK::memory_usage(idxz); + bytes += MemKK::memory_usage(idxb); - bytes += jdim * sizeof(real_type); // bzero + bytes += MemKK::memory_usage(bzero); - bytes += natom * nmax * 3 * sizeof(real_type); // rij - bytes += natom * nmax * sizeof(real_type); // inside - bytes += natom * nmax * sizeof(real_type); // wj - bytes += natom * nmax * sizeof(real_type); // rcutij - bytes += natom * nmax * sizeof(real_type); // sinnerij - bytes += natom * nmax * sizeof(real_type); // dinnerij + bytes += MemKK::memory_usage(rij); + bytes += MemKK::memory_usage(inside); + bytes += MemKK::memory_usage(wj); + bytes += MemKK::memory_usage(rcutij); + bytes += MemKK::memory_usage(sinnerij); + bytes += MemKK::memory_usage(dinnerij); return bytes; } diff --git a/src/KOKKOS/verlet_kokkos.cpp b/src/KOKKOS/verlet_kokkos.cpp index 1816415b47..573a6118b9 100644 --- a/src/KOKKOS/verlet_kokkos.cpp +++ b/src/KOKKOS/verlet_kokkos.cpp @@ -282,8 +282,6 @@ void VerletKokkos::run(int n) f_merge_copy = DAT::t_f_array("VerletKokkos::f_merge_copy",atomKK->k_f.extent(0)); atomKK->sync(Device,ALL_MASK); - //static double time = 0.0; - //Kokkos::Timer ktimer; timer->init_timeout(); for (int i = 0; i < n; i++) { @@ -297,10 +295,8 @@ void VerletKokkos::run(int n) // initial time integration - //ktimer.reset(); timer->stamp(); modify->initial_integrate(vflag); - //time += ktimer.seconds(); if (n_post_integrate) modify->post_integrate(); timer->stamp(Timer::MODIFY); @@ -445,7 +441,6 @@ void VerletKokkos::run(int n) if (pair_compute_flag) { atomKK->sync(force->pair->execution_space,force->pair->datamask_read); atomKK->sync(force->pair->execution_space,~(~force->pair->datamask_read|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); - Kokkos::Timer ktimer; force->pair->compute(eflag,vflag); atomKK->modified(force->pair->execution_space,force->pair->datamask_modify); atomKK->modified(force->pair->execution_space,~(~force->pair->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); diff --git a/src/KSPACE/pppm_disp.h b/src/KSPACE/pppm_disp.h index 87265bee2f..1f254e772d 100644 --- a/src/KSPACE/pppm_disp.h +++ b/src/KSPACE/pppm_disp.h @@ -320,7 +320,7 @@ class PPPMDisp : public KSpace { void compute_drho1d(const FFT_SCALAR &, const FFT_SCALAR &, const FFT_SCALAR &, int, FFT_SCALAR **, FFT_SCALAR **); void compute_rho_coeff(FFT_SCALAR **, FFT_SCALAR **, int); - void slabcorr(int); + virtual void slabcorr(int); // grid communication diff --git a/src/KSPACE/pppm_disp_tip4p.cpp b/src/KSPACE/pppm_disp_tip4p.cpp index 902b512bc3..9ebc32ad05 100644 --- a/src/KSPACE/pppm_disp_tip4p.cpp +++ b/src/KSPACE/pppm_disp_tip4p.cpp @@ -486,6 +486,85 @@ void PPPMDispTIP4P::fieldforce_c_peratom() } } +/* ---------------------------------------------------------------------- + Fix handling of TIP4P dipole compared to PPPMDisp::slabcorr +------------------------------------------------------------------------- */ + +#define SMALL 0.00001 + +void PPPMDispTIP4P::slabcorr(int /*eflag*/) +{ + // compute local contribution to global dipole moment + + double *q = atom->q; + double **x = atom->x; + double zprd = domain->zprd; + int nlocal = atom->nlocal; + int *type = atom->type; + double *xi, xM[3]; int iH1, iH2; //for TIP4P virtual site + + // sum local contributions to get global dipole moment + double dipole = 0.0; + for (int i = 0; i < nlocal; i++) { + if (type[i] == typeO) { + find_M(i,iH1,iH2,xM); + xi = xM; + } else xi = x[i]; + dipole += q[i]*xi[2]; + } + + double dipole_all; + MPI_Allreduce(&dipole,&dipole_all,1,MPI_DOUBLE,MPI_SUM,world); + + // need to make non-neutral systems and/or + // per-atom energy translationally invariant + + double dipole_r2 = 0.0; + if (eflag_atom || fabs(qsum) > SMALL) { + for (int i = 0; i < nlocal; i++) + dipole_r2 += q[i]*x[i][2]*x[i][2]; + + // sum local contributions + + double tmp; + MPI_Allreduce(&dipole_r2,&tmp,1,MPI_DOUBLE,MPI_SUM,world); + dipole_r2 = tmp; + } + + // compute corrections + + const double e_slabcorr = MY_2PI*(dipole_all*dipole_all - + qsum*dipole_r2 - qsum*qsum*zprd*zprd/12.0)/volume; + const double qscale = force->qqrd2e * scale; + + if (eflag_global) energy_1 += qscale * e_slabcorr; + + // per-atom energy + + if (eflag_atom) { + double efact = qscale * MY_2PI/volume; + for (int i = 0; i < nlocal; i++) + eatom[i] += efact * q[i]*(x[i][2]*dipole_all - 0.5*(dipole_r2 + + qsum*x[i][2]*x[i][2]) - qsum*zprd*zprd/12.0); + } + + // add on force corrections + + double ffact = qscale * (-4.0*MY_PI/volume); + double **f = atom->f; + + for (int i = 0; i < nlocal; i++) { + double fzi_corr = ffact * q[i]*(dipole_all - qsum*x[i][2]); + if (type[i] == typeO) { + find_M(i,iH1,iH2,xM); + f[i][2] += fzi_corr*(1 - alpha); + f[iH1][2] += 0.5*alpha*fzi_corr; + f[iH2][2] += 0.5*alpha*fzi_corr; + } + else f[i][2] += fzi_corr; + } +} + /* ---------------------------------------------------------------------- find 2 H atoms bonded to O atom i compute position xM of fictitious charge site for O atom diff --git a/src/KSPACE/pppm_disp_tip4p.h b/src/KSPACE/pppm_disp_tip4p.h index a432a7eeeb..e9d5babe0f 100644 --- a/src/KSPACE/pppm_disp_tip4p.h +++ b/src/KSPACE/pppm_disp_tip4p.h @@ -37,6 +37,7 @@ class PPPMDispTIP4P : public PPPMDisp { void fieldforce_c_ik() override; void fieldforce_c_ad() override; void fieldforce_c_peratom() override; + void slabcorr(int) override; private: void find_M(int, int &, int &, double *); diff --git a/src/KSPACE/pppm_tip4p.cpp b/src/KSPACE/pppm_tip4p.cpp index 1cb7bf462f..e9d72bcefe 100644 --- a/src/KSPACE/pppm_tip4p.cpp +++ b/src/KSPACE/pppm_tip4p.cpp @@ -477,6 +477,86 @@ void PPPMTIP4P::fieldforce_peratom() } } + +/* ---------------------------------------------------------------------- + Fix handling of TIP4P dipole compared to PPPMDisp::slabcorr +------------------------------------------------------------------------- */ + +#define SMALL 0.00001 + +void PPPMTIP4P::slabcorr() +{ + // compute local contribution to global dipole moment + + double *q = atom->q; + double **x = atom->x; + double zprd = domain->zprd; + int nlocal = atom->nlocal; + int *type = atom->type; + double *xi, xM[3]; int iH1, iH2; //for TIP4P virtual site + + // sum local contributions to get global dipole moment + double dipole = 0.0; + for (int i = 0; i < nlocal; i++) { + if (type[i] == typeO) { + find_M(i,iH1,iH2,xM); + xi = xM; + } else xi = x[i]; + dipole += q[i]*xi[2]; + } + + double dipole_all; + MPI_Allreduce(&dipole,&dipole_all,1,MPI_DOUBLE,MPI_SUM,world); + + // need to make non-neutral systems and/or + // per-atom energy translationally invariant + + double dipole_r2 = 0.0; + if (eflag_atom || fabs(qsum) > SMALL) { + for (int i = 0; i < nlocal; i++) + dipole_r2 += q[i]*x[i][2]*x[i][2]; + + // sum local contributions + + double tmp; + MPI_Allreduce(&dipole_r2,&tmp,1,MPI_DOUBLE,MPI_SUM,world); + dipole_r2 = tmp; + } + + // compute corrections + + const double e_slabcorr = MY_2PI*(dipole_all*dipole_all - + qsum*dipole_r2 - qsum*qsum*zprd*zprd/12.0)/volume; + const double qscale = force->qqrd2e * scale; + + if (eflag_global) energy_1 += qscale * e_slabcorr; + + // per-atom energy + + if (eflag_atom) { + double efact = qscale * MY_2PI/volume; + for (int i = 0; i < nlocal; i++) + eatom[i] += efact * q[i]*(x[i][2]*dipole_all - 0.5*(dipole_r2 + + qsum*x[i][2]*x[i][2]) - qsum*zprd*zprd/12.0); + } + + // add on force corrections + + double ffact = qscale * (-4.0*MY_PI/volume); + double **f = atom->f; + + for (int i = 0; i < nlocal; i++) { + double fzi_corr = ffact * q[i]*(dipole_all - qsum*x[i][2]); + if (type[i] == typeO) { + find_M(i,iH1,iH2,xM); + f[i][2] += fzi_corr*(1 - alpha); + f[iH1][2] += 0.5*alpha*fzi_corr; + f[iH2][2] += 0.5*alpha*fzi_corr; + } + else f[i][2] += fzi_corr; + } +} + /* ---------------------------------------------------------------------- find 2 H atoms bonded to O atom i compute position xM of fictitious charge site for O atom diff --git a/src/KSPACE/pppm_tip4p.h b/src/KSPACE/pppm_tip4p.h index cf63af0d81..0e6b2cc91b 100644 --- a/src/KSPACE/pppm_tip4p.h +++ b/src/KSPACE/pppm_tip4p.h @@ -35,6 +35,7 @@ class PPPMTIP4P : public PPPM { void fieldforce_ik() override; void fieldforce_ad() override; void fieldforce_peratom() override; + void slabcorr() override; private: void find_M(int, int &, int &, double *); diff --git a/src/MANYBODY/pair_bop.cpp b/src/MANYBODY/pair_bop.cpp index b3aa470592..b1d128db24 100644 --- a/src/MANYBODY/pair_bop.cpp +++ b/src/MANYBODY/pair_bop.cpp @@ -95,6 +95,7 @@ PairBOP::PairBOP(LAMMPS *lmp) : Pair(lmp) pairParameters = nullptr; tripletParameters = nullptr; bop_elements = nullptr; + bop_masses = nullptr; bop_types = 0; pairlist1 = nullptr; @@ -183,17 +184,13 @@ PairBOP::~PairBOP() if (bop_elements) for (int i = 0; i < bop_types; i++) delete[] bop_elements[i]; delete[] bop_elements; + delete[] bop_masses; } /* ---------------------------------------------------------------------- */ void PairBOP::compute(int eflag, int vflag) { - double minbox = MIN(MIN(domain->xprd, domain->yprd), domain->zprd); - if (minbox-0.001 < 6.0*cutmax) - error->all(FLERR,"Pair style bop requires system dimension " - "of at least {:.4}",6.0*cutmax); - int i, ii, j, jj; int nlisti, *ilist; tagint i_tag,j_tag, itype, jtype; @@ -203,6 +200,7 @@ void PairBOP::compute(int eflag, int vflag) int newton_pair = force->newton_pair; int nlocal = atom->nlocal; + double **x = atom->x; double **f = atom->f; int *type = atom->type; tagint *tag = atom->tag; @@ -226,7 +224,15 @@ void PairBOP::compute(int eflag, int vflag) temp_ij = BOP_index[i] + jj; j = ilist[neigh_index[temp_ij]]; j_tag = tag[j]; - if (j_tag <= i_tag) continue; + if (i_tag > j_tag) { + if ((i_tag+j_tag) % 2 == 0) continue; + } else if (i_tag < j_tag) { + if ((i_tag+j_tag) % 2 == 1) continue; + } else { + if (x[j][2] < x[i][2]) continue; + if (x[j][2] == x[i][2] && x[j][1] < x[i][1]) continue; + if (x[j][2] == x[i][2] && x[j][1] == x[i][1] && x[j][0] < x[i][0]) continue; + } jtype = map[type[j]]; int param_ij = elem2param[itype][jtype]; sigB_0 = SigmaBo(ii,jj); @@ -256,7 +262,15 @@ void PairBOP::compute(int eflag, int vflag) temp_ij = BOP_index2[i] + jj; j = ilist[neigh_index2[temp_ij]]; j_tag = tag[j]; - if (j_tag <= i_tag) continue; + if (i_tag > j_tag) { + if ((i_tag+j_tag) % 2 == 0) continue; + } else if (i_tag < j_tag) { + if ((i_tag+j_tag) % 2 == 1) continue; + } else { + if (x[j][2] < x[i][2]) continue; + if (x[j][2] == x[i][2] && x[j][1] < x[i][1]) continue; + if (x[j][2] == x[i][2] && x[j][1] == x[i][1] && x[j][0] < x[i][0]) continue; + } PairList2 & p2_ij = pairlist2[temp_ij]; dpr2 = -p2_ij.dRep / p2_ij.r; ftmp1 = dpr2 * p2_ij.dis[0]; @@ -349,16 +363,16 @@ void PairBOP::settings(int narg, char **arg) void PairBOP::coeff(int narg, char **arg) { - const int n = atom->ntypes; - delete [] map; - map = new int[n+1]; + const int np1 = atom->ntypes+1; + delete[] map; + map = new int[np1]; memory->destroy(setflag); memory->destroy(cutsq); memory->destroy(cutghost); - memory->create(setflag,n+1,n+1,"BOP:setflag"); - memory->create(cutsq,n+1,n+1,"BOP:cutsq"); - memory->create(cutghost,n+1,n+1,"BOP:cutghost"); - bytes = (n+1)*(n+1) * (sizeof (int) + 2.0*sizeof (double)); + memory->create(setflag,np1,np1,"BOP:setflag"); + memory->create(cutsq,np1,np1,"BOP:cutsq"); + memory->create(cutghost,np1,np1,"BOP:cutghost"); + bytes = np1*np1*(sizeof (int) + 2.0*sizeof (double)); map_element2type(narg-3, arg+3); @@ -370,22 +384,23 @@ void PairBOP::coeff(int narg, char **arg) // and check for missing elements if (comm->me == 0) { - for (int i = 1; i <= n; i++) { + for (int i = 1; i < np1; i++) { int j; if (map[i] >= 0) { for (j = 0; j < bop_types; j++) { - if (strcmp(elements[map[i]],bop_elements[j]) == 0) { + if (strcmp(elements[map[i]], bop_elements[j]) == 0) { map[i] = j; + atom->set_mass(FLERR, i, bop_masses[j]); break; } } if (j == bop_types) error->one(FLERR,"Element {} not found in bop potential file {}", - elements[map[i]],arg[2]); + elements[map[i]], arg[2]); } } } - MPI_Bcast(map,atom->ntypes+1,MPI_INT,0,world); + MPI_Bcast(map,np1,MPI_INT,0,world); } /* ---------------------------------------------------------------------- @@ -1849,9 +1864,10 @@ void PairBOP::read_table(char *filename) PotentialFileReader *reader = nullptr; if (bop_elements) { - for (int i = 0; i < bop_types; i++) delete [] bop_elements[i]; - delete [] bop_elements; + for (int i = 0; i < bop_types; i++) delete[] bop_elements[i]; + delete[] bop_elements; } + delete[] bop_masses; if (comm->me == 0) { try { @@ -1862,10 +1878,11 @@ void PairBOP::read_table(char *filename) "elements",bop_types)); bop_elements = new char*[bop_types]; + bop_masses = new double[bop_types]; for (int i=0; i < bop_types; ++i) { ValueTokenizer values = reader->next_values(3); - values.next_int(); // element number in PTE (ignored) - values.next_double(); // element mass (ignored) + values.next_int(); // element number (ignored) + bop_masses[i] = values.next_double(); // element mass bop_elements[i] = utils::strdup(values.next_string()); } } catch (TokenizerException &e) { @@ -1878,8 +1895,12 @@ void PairBOP::read_table(char *filename) allocate(); memory->create(rcut,npairs,"BOP:rcut"); - // copy element labels to all MPI ranks for use with write_tables() - if (comm->me != 0) bop_elements = new char*[bop_types]; + // copy element labels and masses to all MPI ranks for use with + // write_tables() and to set the per-type masses + if (comm->me != 0) { + bop_elements = new char*[bop_types]; + bop_masses = new double[bop_types]; + } for (int i = 0; i < bop_types; ++i) { int n=0; if (comm->me == 0) n = strlen(bop_elements[i])+1; @@ -1887,6 +1908,7 @@ void PairBOP::read_table(char *filename) if (comm->me != 0) bop_elements[i] = new char[n]; MPI_Bcast(bop_elements[i],n,MPI_CHAR,0,world); } + MPI_Bcast(bop_masses, bop_types, MPI_DOUBLE, 0, world); if (comm->me == 0) { try { @@ -2015,7 +2037,7 @@ void PairBOP::read_table(char *filename) } } } - delete [] singletable; + delete[] singletable; singletable = new double[nr]; for (int i = 0; i < npairs; i++) { @@ -2043,7 +2065,7 @@ void PairBOP::read_table(char *filename) p.betaP = new TabularFunction(); (p.betaP)->set_values(nr, 0.0, rcut[i], singletable); } - delete [] singletable; + delete[] singletable; singletable = new double[nBOt]; for (int i = 0; i < npairs; i++) { @@ -2053,7 +2075,7 @@ void PairBOP::read_table(char *filename) p.bo = new TabularFunction(); (p.bo)->set_values(nBOt, 0.0, 1.0, singletable); } - delete [] singletable; + delete[] singletable; nbuf = 0; for (int i = 0; i < bop_types; i++) { @@ -2107,7 +2129,7 @@ void PairBOP::read_table(char *filename) (p.cphi)->set_values(nr, 0.0, rcut[i], singletable); } } - delete [] singletable; + delete[] singletable; } memory->destroy(rcut); diff --git a/src/MANYBODY/pair_bop.h b/src/MANYBODY/pair_bop.h index aa6da378ae..483675021b 100644 --- a/src/MANYBODY/pair_bop.h +++ b/src/MANYBODY/pair_bop.h @@ -109,6 +109,7 @@ class PairBOP : public Pair { int npairs; // number of element pairs int ntriples; // number of all triples char **bop_elements; // names of elements in potential file + double *bop_masses; // masses of elements in potential file double bytes; int otfly; // = 1 faster, more memory, = 0 slower, less memory diff --git a/src/MANYBODY/pair_sw.cpp b/src/MANYBODY/pair_sw.cpp index 71cb1cf5bc..de2a7ac8d6 100644 --- a/src/MANYBODY/pair_sw.cpp +++ b/src/MANYBODY/pair_sw.cpp @@ -14,6 +14,7 @@ /* ---------------------------------------------------------------------- Contributing author: Aidan Thompson (SNL) + Optimizations for two-body only: Jackson Elowitt (Univ. of Utah) ------------------------------------------------------------------------- */ #include "pair_sw.h" @@ -44,6 +45,7 @@ PairSW::PairSW(LAMMPS *lmp) : Pair(lmp) manybody_flag = 1; centroidstressflag = CENTROID_NOTAVAIL; unit_convert_flag = utils::get_supported_conversions(utils::ENERGY); + skip_threebody_flag = false; params = nullptr; @@ -137,14 +139,18 @@ void PairSW::compute(int eflag, int vflag) } jtag = tag[j]; - 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; + + // only need to skip if we have a full neighbor list + if (!skip_threebody_flag) { + 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; + } } twobody(¶ms[ijparam],rsq,fpair,eflag,evdwl); @@ -159,9 +165,11 @@ void PairSW::compute(int eflag, int vflag) if (evflag) ev_tally(i,j,nlocal,newton_pair, evdwl,0.0,fpair,delx,dely,delz); } - - jnumm1 = numshort - 1; - + if (skip_threebody_flag) { + jnumm1 = 0; + } else { + jnumm1 = numshort - 1; + } for (jj = 0; jj < jnumm1; jj++) { j = neighshort[jj]; jtype = map[type[j]]; @@ -229,9 +237,21 @@ void PairSW::allocate() global settings ------------------------------------------------------------------------- */ -void PairSW::settings(int narg, char **/*arg*/) +void PairSW::settings(int narg, char ** arg) { - if (narg != 0) error->all(FLERR,"Illegal pair_style command"); + // process optional keywords + int iarg = 0; + while (iarg < narg) { + if (strcmp(arg[iarg],"threebody") == 0) { + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "pair_style sw", error); + skip_threebody_flag = !utils::logical(FLERR,arg[iarg+1],false,lmp); + // without the threebody terms we don't need to enforce + // pair_coeff * * and can enable the single function. + one_coeff = skip_threebody_flag ? 0 : 1; + single_enable = skip_threebody_flag ? 1 : 0; + iarg += 2; + } else error->all(FLERR, "Illegal pair_style sw keyword: {}", arg[iarg]); + } } /* ---------------------------------------------------------------------- @@ -261,9 +281,12 @@ void PairSW::init_style() if (force->newton_pair == 0) error->all(FLERR,"Pair style Stillinger-Weber requires newton pair on"); - // need a full neighbor list + // need a full neighbor list for full threebody calculation - neighbor->add_request(this, NeighConst::REQ_FULL); + if (skip_threebody_flag) + neighbor->add_request(this); + else + neighbor->add_request(this, NeighConst::REQ_FULL); } /* ---------------------------------------------------------------------- @@ -279,6 +302,19 @@ double PairSW::init_one(int i, int j) /* ---------------------------------------------------------------------- */ +double PairSW::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double /*factor_lj*/, double &fforce) +{ + int ijparam = elem3param[map[itype]][map[jtype]][map[jtype]]; + double phisw = 0.0; + fforce = 0.0; + + if (rsq < params[ijparam].cutsq) twobody(¶ms[ijparam],rsq,fforce,1,phisw); + return phisw; +} + +/* ---------------------------------------------------------------------- */ + void PairSW::read_file(char *file) { memory->sfree(params); @@ -291,6 +327,8 @@ void PairSW::read_file(char *file) PotentialFileReader reader(lmp, file, "sw", unit_convert_flag); char *line; + if (skip_threebody_flag) utils::logmesg(lmp, " disabling sw potential three-body terms\n"); + // transparently convert units for supported conversions int unit_convert = reader.get_unit_convert(); @@ -355,6 +393,9 @@ void PairSW::read_file(char *file) params[nparams].epsilon *= conversion_factor; } + // turn off three-body term + if (skip_threebody_flag) params[nparams].lambda = 0; + if (params[nparams].epsilon < 0.0 || params[nparams].sigma < 0.0 || params[nparams].littlea < 0.0 || params[nparams].lambda < 0.0 || params[nparams].gamma < 0.0 || params[nparams].biga < 0.0 || diff --git a/src/MANYBODY/pair_sw.h b/src/MANYBODY/pair_sw.h index 84088926b1..bcc7227554 100644 --- a/src/MANYBODY/pair_sw.h +++ b/src/MANYBODY/pair_sw.h @@ -32,6 +32,7 @@ class PairSW : public Pair { void coeff(int, char **) override; double init_one(int, int) override; void init_style() override; + double single(int, int, int, int, double, double, double, double &) override; static constexpr int NPARAMS_PER_LINE = 14; @@ -48,14 +49,15 @@ class PairSW : public Pair { }; protected: - double cutmax; // max cutoff for all elements - Param *params; // parameter set for an I-J-K interaction - int maxshort; // size of short neighbor list array - int *neighshort; // short neighbor list array + double cutmax; // max cutoff for all elements + Param *params; // parameter set for an I-J-K interaction + int maxshort; // size of short neighbor list array + int *neighshort; // short neighbor list array + int skip_threebody_flag; // whether to run threebody loop void settings(int, char **) override; virtual void allocate(); - void read_file(char *); + virtual void read_file(char *); virtual void setup_params(); void twobody(Param *, double, double &, int, double &); virtual void threebody(Param *, Param *, Param *, double, double, double *, double *, double *, diff --git a/src/MANYBODY/pair_sw_angle_table.cpp b/src/MANYBODY/pair_sw_angle_table.cpp new file mode 100644 index 0000000000..5b9339780f --- /dev/null +++ b/src/MANYBODY/pair_sw_angle_table.cpp @@ -0,0 +1,763 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Christoph Scherer (MPIP Mainz) + scherer@mpip-mainz.mpg.de +------------------------------------------------------------------------- */ + +#include "pair_sw_angle_table.h" + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "math_const.h" +#include "memory.h" +#include "neigh_list.h" +#include "neighbor.h" +#include "table_file_reader.h" +#include "potential_file_reader.h" + +#include +#include + +using namespace LAMMPS_NS; + +using MathConst::DEG2RAD; +using MathConst::MY_PI; +using MathConst::RAD2DEG; + +#define DELTA 4 + +enum { LINEAR, SPLINE }; + +static constexpr double TINY = 1.0e-10; + +/* ---------------------------------------------------------------------- */ + +PairSWAngleTable::PairSWAngleTable(LAMMPS *lmp) : PairSW(lmp), table_params(nullptr) +{ + unit_convert_flag = utils::NOCONVERT; +} + +/* ---------------------------------------------------------------------- + check if allocated, since class can be destructed when incomplete +------------------------------------------------------------------------- */ + +PairSWAngleTable::~PairSWAngleTable() +{ + if (copymode) return; + + for (int m = 0; m < nparams; m++) free_param(&table_params[m]); // free_param will call free_table + memory->destroy(params); + memory->destroy(table_params); + memory->destroy(elem3param); + + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + memory->destroy(neighshort); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairSWAngleTable::compute(int eflag, int vflag) +{ + int i,j,k,ii,jj,kk,inum,jnum,jnumm1; + int itype,jtype,ktype,ijparam,ikparam,ijkparam; + tagint itag,jtag; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; + double rsq,rsq1,rsq2; + double delr1[3],delr2[3],fj[3],fk[3]; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = 0.0; + ev_init(eflag,vflag); + + double **x = atom->x; + double **f = atom->f; + tagint *tag = atom->tag; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + double fxtmp,fytmp,fztmp; + + // loop over full neighbor list of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + itag = tag[i]; + itype = map[type[i]]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + fxtmp = fytmp = fztmp = 0.0; + + // two-body interactions, skip half of them + + jlist = firstneigh[i]; + jnum = numneigh[i]; + int numshort = 0; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + jtype = map[type[j]]; + ijparam = elem3param[itype][jtype][jtype]; + if (rsq >= params[ijparam].cutsq) { + continue; + } else { + neighshort[numshort++] = j; + if (numshort >= maxshort) { + maxshort += maxshort/2; + memory->grow(neighshort,maxshort,"pair:neighshort"); + } + } + + jtag = tag[j]; + 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; + } + + twobody(¶ms[ijparam],rsq,fpair,eflag,evdwl); + + fxtmp += delx*fpair; + fytmp += dely*fpair; + fztmp += delz*fpair; + f[j][0] -= delx*fpair; + f[j][1] -= dely*fpair; + f[j][2] -= delz*fpair; + + if (evflag) ev_tally(i,j,nlocal,newton_pair, + evdwl,0.0,fpair,delx,dely,delz); + } + + jnumm1 = numshort - 1; + + for (jj = 0; jj < jnumm1; jj++) { + j = neighshort[jj]; + jtype = map[type[j]]; + ijparam = elem3param[itype][jtype][jtype]; + delr1[0] = x[j][0] - xtmp; + delr1[1] = x[j][1] - ytmp; + delr1[2] = x[j][2] - ztmp; + rsq1 = delr1[0]*delr1[0] + delr1[1]*delr1[1] + delr1[2]*delr1[2]; + + double fjxtmp,fjytmp,fjztmp; + fjxtmp = fjytmp = fjztmp = 0.0; + + for (kk = jj+1; kk < numshort; kk++) { + k = neighshort[kk]; + ktype = map[type[k]]; + ikparam = elem3param[itype][ktype][ktype]; + ijkparam = elem3param[itype][jtype][ktype]; + + delr2[0] = x[k][0] - xtmp; + delr2[1] = x[k][1] - ytmp; + delr2[2] = x[k][2] - ztmp; + rsq2 = delr2[0]*delr2[0] + delr2[1]*delr2[1] + delr2[2]*delr2[2]; + + threebody_table(¶ms[ijparam],¶ms[ikparam],&table_params[ijkparam], + rsq1,rsq2,delr1,delr2,fj,fk,eflag,evdwl); + + fxtmp -= fj[0] + fk[0]; + fytmp -= fj[1] + fk[1]; + fztmp -= fj[2] + fk[2]; + fjxtmp += fj[0]; + fjytmp += fj[1]; + fjztmp += fj[2]; + f[k][0] += fk[0]; + f[k][1] += fk[1]; + f[k][2] += fk[2]; + + if (evflag) ev_tally3(i,j,k,evdwl,0.0,fj,fk,delr1,delr2); + } + f[j][0] += fjxtmp; + f[j][1] += fjytmp; + f[j][2] += fjztmp; + } + f[i][0] += fxtmp; + f[i][1] += fytmp; + f[i][2] += fztmp; + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- */ + +void PairSWAngleTable::read_file(char *file) +{ + if (params) { + for (int m = 0; m < nparams; m++) free_param(&table_params[m]); // free_param will call free_table + memory->destroy(params); + memory->destroy(table_params); + memory->destroy(elem3param); + } + + nparams = maxparam = 0; + + // open file on proc 0 + + if (comm->me == 0) { + PotentialFileReader reader(lmp, file, "sw", unit_convert_flag); + char *line; + + while ((line = reader.next_line(NPARAMS_PER_LINE))) { + try { + ValueTokenizer values(line); + + std::string iname = values.next_string(); + std::string jname = values.next_string(); + std::string kname = values.next_string(); + + // ielement,jelement,kelement = 1st args + // if all 3 args are in element list, then parse this line + // else skip to next entry in file + int ielement, jelement, kelement; + + for (ielement = 0; ielement < nelements; ielement++) + if (iname == elements[ielement]) break; + if (ielement == nelements) continue; + for (jelement = 0; jelement < nelements; jelement++) + if (jname == elements[jelement]) break; + if (jelement == nelements) continue; + for (kelement = 0; kelement < nelements; kelement++) + if (kname == elements[kelement]) break; + if (kelement == nelements) continue; + + // load up parameter settings and error check their values + + if (nparams == maxparam) { + maxparam += DELTA; + params = (Param *) memory->srealloc(params,maxparam*sizeof(Param), + "pair:params"); + table_params = (ParamTable *) memory->srealloc(table_params,maxparam*sizeof(ParamTable), + "pair:table_params"); + + // make certain all addional allocated storage is initialized + // to avoid false positives when checking with valgrind + + memset(params + nparams, 0, DELTA*sizeof(Param)); + } + + params[nparams].ielement = ielement; + params[nparams].jelement = jelement; + params[nparams].kelement = kelement; + params[nparams].epsilon = values.next_double(); + params[nparams].sigma = values.next_double(); + params[nparams].littlea = values.next_double(); + params[nparams].lambda = values.next_double(); + params[nparams].gamma = values.next_double(); + params[nparams].costheta = values.next_double(); + params[nparams].biga = values.next_double(); + params[nparams].bigb = values.next_double(); + params[nparams].powerp = values.next_double(); + params[nparams].powerq = values.next_double(); + params[nparams].tol = values.next_double(); + + // read parameters of angle table + std::string name = values.next_string(); + table_params[nparams].tablenamelength = name.length()+1; + table_params[nparams].tablename = utils::strdup(name); + + name = values.next_string(); + table_params[nparams].keywordlength = name.length()+1; + table_params[nparams].keyword = utils::strdup(name); + + name = values.next_string(); + if (name == "linear") table_params[nparams].tabstyle = LINEAR; + else if (name == "spline") table_params[nparams].tabstyle = SPLINE; + else error->all(FLERR,"Unknown table style {} of angle table file", name); + table_params[nparams].tablength = values.next_int(); + + } catch (TokenizerException &e) { + error->one(FLERR, e.what()); + } + + if (params[nparams].epsilon < 0.0 || params[nparams].sigma < 0.0 || + params[nparams].littlea < 0.0 || params[nparams].lambda < 0.0 || + params[nparams].gamma < 0.0 || params[nparams].biga < 0.0 || + params[nparams].bigb < 0.0 || params[nparams].powerp < 0.0 || + params[nparams].powerq < 0.0 || params[nparams].tol < 0.0 || + table_params[nparams].tabstyle < 0.0 || table_params[nparams].tablength < 0.0) + error->one(FLERR,"Illegal Stillinger-Weber parameter"); + + nparams++; + } + } + + MPI_Bcast(&nparams, 1, MPI_INT, 0, world); + MPI_Bcast(&maxparam, 1, MPI_INT, 0, world); + + if (comm->me != 0) { + params = (Param *) memory->srealloc(params,maxparam*sizeof(Param), "pair:params"); + table_params = (ParamTable *) memory->srealloc(table_params,maxparam*sizeof(ParamTable), "pair:table_params"); + } + + MPI_Bcast(params, maxparam*sizeof(Param), MPI_BYTE, 0, world); + MPI_Bcast(table_params, maxparam*sizeof(ParamTable), MPI_BYTE, 0, world); + + // for each set of parameters, broadcast table name and keyword and read angle table + for (int m = 0; m < nparams; ++m){ + if (comm->me != 0) { + table_params[m].tablename = new char[table_params[m].tablenamelength]; + table_params[m].keyword = new char[table_params[m].keywordlength]; + } + MPI_Bcast(table_params[m].tablename, table_params[m].tablenamelength, MPI_CHAR, 0, world); + MPI_Bcast(table_params[m].keyword, table_params[m].keywordlength, MPI_CHAR, 0, world); + + // initialize angtable + memory->create(table_params[m].angtable,1,"table_params:angtable"); + null_table(table_params[m].angtable); + + // call read_table to read corresponding tabulated angle file (only called by process 0) + if (comm->me == 0) read_table(table_params[m].angtable,table_params[m].tablename,table_params[m].keyword); + + // broadcast read in angtable to all processes + bcast_table(table_params[m].angtable); + + // the following table manipulations are done in all processes + // error check on table parameters + if (table_params[m].angtable->ninput <= 1) error->one(FLERR,"Invalid angle table length"); + + // error check on parameter range of angle table + double alo,ahi; + alo = table_params[m].angtable->afile[0]; + ahi = table_params[m].angtable->afile[table_params[m].angtable->ninput-1]; + if (fabs(alo-0.0) > TINY || fabs(ahi-180.0) > TINY) + error->all(FLERR,"Angle table must range from 0 to 180 degrees"); + + // convert theta from degrees to radians + for (int i = 0; i < table_params[m].angtable->ninput; ++i){ + table_params[m].angtable->afile[i] *= MY_PI/180.0; + table_params[m].angtable->ffile[i] *= 180.0/MY_PI; + } + + // spline read-in table and compute a,e,f vectors within table + spline_table(table_params[m].angtable); + // compute_table needs parameter params[m].length for this specific interaction as + // read in value length from .sw file can be different from value in angle table file + compute_table(table_params[m].angtable,table_params[m].tablength); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairSWAngleTable::threebody_table(Param *paramij, Param *paramik, ParamTable *table_paramijk, + double rsq1, double rsq2, double *delr1, double *delr2, + double *fj, double *fk, int eflag, double &eng) +{ + double r1,rinvsq1,rainv1,gsrainv1,gsrainvsq1,expgsrainv1; + double r2,rinvsq2,rainv2,gsrainv2,gsrainvsq2,expgsrainv2; + double rinv12,cs,facexp; + double ftheta,facradtable,frad1table,frad2table,var; + double acosprime,gradj1,gradj2,gradk1,gradk2,fprimetheta; + + r1 = sqrt(rsq1); + rinvsq1 = 1.0/rsq1; + rainv1 = 1.0/(r1 - paramij->cut); + gsrainv1 = paramij->sigma_gamma * rainv1; + gsrainvsq1 = gsrainv1*rainv1/r1; + expgsrainv1 = exp(gsrainv1); + + r2 = sqrt(rsq2); + rinvsq2 = 1.0/rsq2; + rainv2 = 1.0/(r2 - paramik->cut); + gsrainv2 = paramik->sigma_gamma * rainv2; + gsrainvsq2 = gsrainv2*rainv2/r2; + expgsrainv2 = exp(gsrainv2); + + facexp = expgsrainv1*expgsrainv2; + + rinv12 = 1.0/(r1*r2); + cs = (delr1[0]*delr2[0] + delr1[1]*delr2[1] + delr1[2]*delr2[2]) * rinv12; + + var = acos(cs); + + // look up energy (f(theta), ftheta) and force (df(theta)/dtheta, fprimetheta) at + // angle theta (var) in angle table belonging to parameter set paramijk + uf_lookup(table_paramijk, var, ftheta, fprimetheta); + + acosprime = 1.0 / (sqrt(1 - cs*cs ) ); + + facradtable = facexp*ftheta; + frad1table = facradtable*gsrainvsq1; + frad2table = facradtable*gsrainvsq2; + gradj1 = acosprime * cs * rinvsq1 * facexp * fprimetheta; + gradj2 = acosprime * rinv12 * facexp * fprimetheta; + gradk1 = acosprime * cs * rinvsq2 * facexp * fprimetheta; + gradk2 = acosprime * rinv12 * facexp * fprimetheta; + + fj[0] = delr1[0]*(frad1table+gradj1)-delr2[0]*gradj2; + fj[1] = delr1[1]*(frad1table+gradj1)-delr2[1]*gradj2; + fj[2] = delr1[2]*(frad1table+gradj1)-delr2[2]*gradj2; + + fk[0] = delr2[0]*(frad2table+gradk1)-delr1[0]*gradk2; + fk[1] = delr2[1]*(frad2table+gradk1)-delr1[1]*gradk2; + fk[2] = delr2[2]*(frad2table+gradk1)-delr1[2]*gradk2; + + if (eflag) eng = facradtable; +} + +/* ---------------------------------------------------------------------- + read table file, only called by proc 0 +------------------------------------------------------------------------- */ + +void PairSWAngleTable::read_table(Table *tb, char *file, char *keyword) +{ + TableFileReader reader(lmp, file, "angletable"); + + char *line = reader.find_section_start(keyword); + + if (!line) { error->one(FLERR, "Did not find keyword in table file"); } + + // read args on 2nd line of section + // allocate table arrays for file values + + line = reader.next_line(); + param_extract(tb, line); + memory->create(tb->afile, tb->ninput, "angle:afile"); + memory->create(tb->efile, tb->ninput, "angle:efile"); + memory->create(tb->ffile, tb->ninput, "angle:ffile"); + + // read a,e,f table values from file + + int cerror = 0; + reader.skip_line(); + for (int i = 0; i < tb->ninput; i++) { + line = reader.next_line(4); + try { + ValueTokenizer values(line); + values.next_int(); + tb->afile[i] = values.next_double(); + tb->efile[i] = values.next_double(); + tb->ffile[i] = values.next_double(); + } catch (TokenizerException &) { + ++cerror; + } + } + + // warn if data was read incompletely, e.g. columns were missing + + if (cerror) + error->warning(FLERR, "{} of {} lines in table incomplete or could not be parsed", cerror, + tb->ninput); +} + +/* ---------------------------------------------------------------------- + build spline representation of e,f over entire range of read-in table + this function sets these values in e2file,f2file +------------------------------------------------------------------------- */ + +void PairSWAngleTable::spline_table(Table *tb) +{ + memory->create(tb->e2file, tb->ninput, "angle:e2file"); + memory->create(tb->f2file, tb->ninput, "angle:f2file"); + + double ep0 = -tb->ffile[0]; + double epn = -tb->ffile[tb->ninput - 1]; + spline(tb->afile, tb->efile, tb->ninput, ep0, epn, tb->e2file); + + if (tb->fpflag == 0) { + tb->fplo = (tb->ffile[1] - tb->ffile[0]) / (tb->afile[1] - tb->afile[0]); + tb->fphi = (tb->ffile[tb->ninput - 1] - tb->ffile[tb->ninput - 2]) / + (tb->afile[tb->ninput - 1] - tb->afile[tb->ninput - 2]); + } + + double fp0 = tb->fplo; + double fpn = tb->fphi; + spline(tb->afile, tb->ffile, tb->ninput, fp0, fpn, tb->f2file); +} + +/* ---------------------------------------------------------------------- + compute a,e,f vectors from splined values +------------------------------------------------------------------------- */ + +void PairSWAngleTable::compute_table(Table *tb,int length) +{ + // delta = table spacing in angle for N-1 bins + + int tlm1 = length - 1; + tb->delta = MY_PI / tlm1; + tb->invdelta = 1.0 / tb->delta; + tb->deltasq6 = tb->delta * tb->delta / 6.0; + + // N-1 evenly spaced bins in angle from 0 to PI + // ang,e,f = value at lower edge of bin + // de,df values = delta values of e,f + // ang,e,f are N in length so de,df arrays can compute difference + + memory->create(tb->ang, length, "angle:ang"); + memory->create(tb->e, length, "angle:e"); + memory->create(tb->de, length, "angle:de"); + memory->create(tb->f, length, "angle:f"); + memory->create(tb->df, length, "angle:df"); + memory->create(tb->e2, length, "angle:e2"); + memory->create(tb->f2, length, "angle:f2"); + + double a; + for (int i = 0; i < length; i++) { + a = i * tb->delta; + tb->ang[i] = a; + tb->e[i] = splint(tb->afile, tb->efile, tb->e2file, tb->ninput, a); + tb->f[i] = splint(tb->afile, tb->ffile, tb->f2file, tb->ninput, a); + } + + for (int i = 0; i < tlm1; i++) { + tb->de[i] = tb->e[i + 1] - tb->e[i]; + tb->df[i] = tb->f[i + 1] - tb->f[i]; + } + // get final elements from linear extrapolation + tb->de[tlm1] = 2.0 * tb->de[tlm1 - 1] - tb->de[tlm1 - 2]; + tb->df[tlm1] = 2.0 * tb->df[tlm1 - 1] - tb->df[tlm1 - 2]; + + double ep0 = -tb->f[0]; + double epn = -tb->f[tlm1]; + spline(tb->ang, tb->e, length, ep0, epn, tb->e2); + spline(tb->ang, tb->f, length, tb->fplo, tb->fphi, tb->f2); +} + +/* ---------------------------------------------------------------------- + broadcast read-in table info from proc 0 to other procs + this function communicates these values in Table: + ninput,afile,efile,ffile,fpflag,fplo,fphi,theta0 +------------------------------------------------------------------------- */ + +void PairSWAngleTable::bcast_table(Table *tb) +{ + MPI_Bcast(&tb->ninput, 1, MPI_INT, 0, world); + + int me; + MPI_Comm_rank(world, &me); + if (me > 0) { + memory->create(tb->afile, tb->ninput, "angle:afile"); + memory->create(tb->efile, tb->ninput, "angle:efile"); + memory->create(tb->ffile, tb->ninput, "angle:ffile"); + } + + MPI_Bcast(tb->afile, tb->ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb->efile, tb->ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb->ffile, tb->ninput, MPI_DOUBLE, 0, world); + + MPI_Bcast(&tb->fpflag, 1, MPI_INT, 0, world); + if (tb->fpflag) { + MPI_Bcast(&tb->fplo, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&tb->fphi, 1, MPI_DOUBLE, 0, world); + } + MPI_Bcast(&tb->theta0, 1, MPI_DOUBLE, 0, world); +} + +/* ---------------------------------------------------------------------- */ + +void PairSWAngleTable::null_table(Table *tb) +{ + tb->afile = tb->efile = tb->ffile = nullptr; + tb->e2file = tb->f2file = nullptr; + tb->ang = tb->e = tb->de = nullptr; + tb->f = tb->df = tb->e2 = tb->f2 = nullptr; +} + +/* ---------------------------------------------------------------------- */ + +void PairSWAngleTable::free_table(Table *tb) +{ + memory->destroy(tb->afile); + memory->destroy(tb->efile); + memory->destroy(tb->ffile); + memory->destroy(tb->e2file); + memory->destroy(tb->f2file); + + memory->destroy(tb->ang); + memory->destroy(tb->e); + memory->destroy(tb->de); + memory->destroy(tb->f); + memory->destroy(tb->df); + memory->destroy(tb->e2); + memory->destroy(tb->f2); +} + +/* ---------------------------------------------------------------------- */ + +void PairSWAngleTable::free_param(ParamTable *pm) +{ + // call free_table to destroy associated angle table + free_table(pm->angtable); + // then destroy associated angle table + delete[] pm->keyword; + delete[] pm->tablename; + memory->sfree(pm->angtable); +} + +/* ---------------------------------------------------------------------- + extract attributes from parameter line in table section + format of line: N value FP fplo fphi EQ theta0 + N is required, other params are optional + + only called by read_table, only called by proc 0 +------------------------------------------------------------------------- */ + +void PairSWAngleTable::param_extract(Table *tb, char *line) +{ + tb->ninput = 0; + tb->fpflag = 0; + tb->theta0 = MY_PI; + + try { + ValueTokenizer values(line); + + while (values.has_next()) { + std::string word = values.next_string(); + + if (word == "N") { + tb->ninput = values.next_int(); + } else if (word == "FP") { + tb->fpflag = 1; + tb->fplo = values.next_double(); + tb->fphi = values.next_double(); + tb->fplo *= RAD2DEG * RAD2DEG; + tb->fphi *= RAD2DEG * RAD2DEG; + } else if (word == "EQ") { + tb->theta0 = DEG2RAD * values.next_double(); + } else { + error->one(FLERR, "Invalid keyword in angle table parameters"); + } + } + } catch (TokenizerException &e) { + error->one(FLERR, e.what()); + } + + if (tb->ninput == 0) error->one(FLERR, "Angle table parameters did not set N"); +} + +/* ---------------------------------------------------------------------- + spline and splint routines modified from Numerical Recipes +------------------------------------------------------------------------- */ + +void PairSWAngleTable::spline(double *x, double *y, int n, double yp1, double ypn, double *y2) +{ + int i, k; + double p, qn, sig, un; + double *u = new double[n]; + + if (yp1 > 0.99e300) + y2[0] = u[0] = 0.0; + else { + y2[0] = -0.5; + u[0] = (3.0 / (x[1] - x[0])) * ((y[1] - y[0]) / (x[1] - x[0]) - yp1); + } + for (i = 1; i < n - 1; i++) { + sig = (x[i] - x[i - 1]) / (x[i + 1] - x[i - 1]); + p = sig * y2[i - 1] + 2.0; + y2[i] = (sig - 1.0) / p; + u[i] = (y[i + 1] - y[i]) / (x[i + 1] - x[i]) - (y[i] - y[i - 1]) / (x[i] - x[i - 1]); + u[i] = (6.0 * u[i] / (x[i + 1] - x[i - 1]) - sig * u[i - 1]) / p; + } + if (ypn > 0.99e300) + qn = un = 0.0; + else { + qn = 0.5; + un = (3.0 / (x[n - 1] - x[n - 2])) * (ypn - (y[n - 1] - y[n - 2]) / (x[n - 1] - x[n - 2])); + } + y2[n - 1] = (un - qn * u[n - 2]) / (qn * y2[n - 2] + 1.0); + for (k = n - 2; k >= 0; k--) y2[k] = y2[k] * y2[k + 1] + u[k]; + + delete[] u; +} +/* ---------------------------------------------------------------------- */ + +double PairSWAngleTable::splint(double *xa, double *ya, double *y2a, int n, double x) +{ + int klo, khi, k; + double h, b, a, y; + + klo = 0; + khi = n - 1; + while (khi - klo > 1) { + k = (khi + klo) >> 1; + if (xa[k] > x) + khi = k; + else + klo = k; + } + h = xa[khi] - xa[klo]; + a = (xa[khi] - x) / h; + b = (x - xa[klo]) / h; + y = a * ya[klo] + b * ya[khi] + + ((a * a * a - a) * y2a[klo] + (b * b * b - b) * y2a[khi]) * (h * h) / 6.0; + return y; +} + +/* ---------------------------------------------------------------------- + calculate potential u and force f at angle x +------------------------------------------------------------------------- */ + +void PairSWAngleTable::uf_lookup(ParamTable *pm, double x, double &u, double &f) +{ + if (!std::isfinite(x)) { error->one(FLERR, "Illegal angle in angle style table"); } + + double fraction,a,b; + + // invdelta is based on tablength-1 + int itable = static_cast(x * pm->angtable->invdelta); + if (itable < 0) itable = 0; + if (itable >= pm->tablength) itable = pm->tablength - 1; + + if (pm->tabstyle == LINEAR) { + fraction = (x - pm->angtable->ang[itable]) * pm->angtable->invdelta; + u = pm->angtable->e[itable] + fraction*pm->angtable->de[itable]; + f = pm->angtable->f[itable] + fraction*pm->angtable->df[itable]; + } else if (pm->tabstyle == SPLINE) { + fraction = (x - pm->angtable->ang[itable]) * pm->angtable->invdelta; + + b = (x - pm->angtable->ang[itable]) * pm->angtable->invdelta; + a = 1.0 - b; + u = a * pm->angtable->e[itable] + b * pm->angtable->e[itable+1] + + ((a * a * a - a) * pm->angtable->e2[itable] + (b * b * b - b) * pm->angtable->e2[itable+1]) * + pm->angtable->deltasq6; + f = a * pm->angtable->f[itable] + b * pm->angtable->f[itable+1] + + ((a * a * a - a) * pm->angtable->f2[itable] + (b * b * b - b) * pm->angtable->f2[itable+1]) * + pm->angtable->deltasq6; + } +} + + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSWAngleTable::settings(int narg, char **/*arg*/) +{ + if (narg != 0) error->all(FLERR,"Illegal pair_style sw/angle/table command"); +} diff --git a/src/MANYBODY/pair_sw_angle_table.h b/src/MANYBODY/pair_sw_angle_table.h new file mode 100644 index 0000000000..e8ff8f82cd --- /dev/null +++ b/src/MANYBODY/pair_sw_angle_table.h @@ -0,0 +1,78 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS +// clang-format off +PairStyle(sw/angle/table,PairSWAngleTable); +// clang-format on +#else + +#ifndef LMP_PAIR_SW_ANGLE_TABLE_H +#define LMP_PAIR_SW_ANGLE_TABLE_H + +#include "pair_sw.h" + +namespace LAMMPS_NS { + +class PairSWAngleTable : public PairSW { + public: + PairSWAngleTable(class LAMMPS *); + ~PairSWAngleTable() override; + void compute(int, int) override; + + static constexpr int NPARAMS_PER_LINE = 18; + + // use struct Table as in class AngleTable + struct Table { + int ninput, fpflag; + double fplo, fphi, theta0; + double *afile, *efile, *ffile; + double *e2file, *f2file; + double delta, invdelta, deltasq6; + double *ang, *e, *de, *f, *df, *e2, *f2; + }; + + struct ParamTable { + int tablenamelength; // length of table name + char *tablename; // name of associated angular table + int keywordlength; // length of key in table + char *keyword; // key in table + int tabstyle, tablength; // length of interpolation table (not ninput) and style + Table *angtable; // angle table + }; + + protected: + ParamTable *table_params; // tabulated parameter set for an I-J-K interaction + + void read_file(char *) override; + void threebody_table(Param *, Param *, ParamTable *, double, double, double *, double *, + double *, double *, int, double &); + + void read_table(Table *, char *, char *); + void spline_table(Table *); + void compute_table(Table *, int length); + void bcast_table(Table *); + void null_table(Table *); + void free_table(Table *); + void free_param(ParamTable *); + void param_extract(Table *, char *); + void spline(double *, double *, int, double, double, double *); + double splint(double *, double *, double *, int, double); + void uf_lookup(ParamTable *, double, double &, double &); + void settings(int, char **) override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/MANYBODY/pair_sw_mod.cpp b/src/MANYBODY/pair_sw_mod.cpp index ce24952fc7..e6d17b0733 100644 --- a/src/MANYBODY/pair_sw_mod.cpp +++ b/src/MANYBODY/pair_sw_mod.cpp @@ -41,21 +41,18 @@ PairSWMOD::PairSWMOD(LAMMPS *lmp) : PairSW(lmp) void PairSWMOD::settings(int narg, char **arg) { - // process optional keywords - + // process optional keywords (and not (yet) optional keywords from parent class). int iarg = 0; - while (iarg < narg) { if (strcmp(arg[iarg],"maxdelcs") == 0) { - if (iarg+3 > narg) error->all(FLERR,"Illegal pair_style command"); + if (iarg+3 > narg) utils::missing_cmd_args(FLERR, "pair_style sw/mod", error); delta1 = utils::numeric(FLERR,arg[iarg+1],false,lmp); delta2 = utils::numeric(FLERR,arg[iarg+2],false,lmp); iarg += 3; if ((delta1 < 0.0) || (delta1 > 1.0) || (delta2 < 0.0) || (delta2 > 1.0) || (delta1 > delta2)) - error->all(FLERR,"Illegal values for maxdelcs keyword"); - } else error->all(FLERR,"Illegal pair_style command"); + error->all(FLERR, "Out of range value(s) for pair style sw/mod maxdelcs keyword"); + } else error->all(FLERR, "Illegal pair_style sw/mod keyword: {}", arg[iarg]); } - PairSW::settings(narg-iarg,arg+iarg); } /* ---------------------------------------------------------------------- */ diff --git a/src/MANYBODY/pair_threebody_table.cpp b/src/MANYBODY/pair_threebody_table.cpp new file mode 100644 index 0000000000..2f4bc83f5a --- /dev/null +++ b/src/MANYBODY/pair_threebody_table.cpp @@ -0,0 +1,809 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Christoph Scherer (MPIP Mainz) + scherer@mpip-mainz.mpg.de +------------------------------------------------------------------------- */ + +#include "pair_threebody_table.h" + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "math_const.h" +#include "memory.h" +#include "neigh_list.h" +#include "neighbor.h" +#include "potential_file_reader.h" +#include "table_file_reader.h" + +#include +#include + +using namespace LAMMPS_NS; +using MathConst::MY_PI; + +#define DELTA 4 + +/* ---------------------------------------------------------------------- */ + +PairThreebodyTable::PairThreebodyTable(LAMMPS *lmp) : + Pair(lmp), params(nullptr), neighshort(nullptr) +{ + single_enable = 0; + restartinfo = 0; + one_coeff = 1; + manybody_flag = 1; + centroidstressflag = CENTROID_NOTAVAIL; + + maxshort = 10; +} + +/* ---------------------------------------------------------------------- + check if allocated, since class can be destructed when incomplete +------------------------------------------------------------------------- */ + +PairThreebodyTable::~PairThreebodyTable() +{ + if (copymode) return; + + for (int m = 0; m < nparams; m++) free_param(¶ms[m]); // free_param will call free_table + memory->sfree(params); + memory->destroy(elem3param); + + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + memory->destroy(neighshort); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairThreebodyTable::compute(int eflag, int vflag) +{ + int i, j, k, ii, jj, kk, inum, jnum, jnumm1; + int itype, jtype, ktype, ijparam, ijkparam; + tagint itag, jtag; + double xtmp, ytmp, ztmp, delx, dely, delz, evdwl; + double rsq, rsq1, rsq2; + double delr1[3], delr2[3], fi[3], fj[3], fk[3]; + int *ilist, *jlist, *numneigh, **firstneigh; + + evdwl = 0.0; + ev_init(eflag, vflag); + + double **x = atom->x; + double **f = atom->f; + tagint *tag = atom->tag; + int *type = atom->type; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + double fxtmp, fytmp, fztmp; + + // loop over full neighbor list of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + itag = tag[i]; + itype = map[type[i]]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + fxtmp = fytmp = fztmp = 0.0; + + // two-body interactions, skip half of them + + jlist = firstneigh[i]; + jnum = numneigh[i]; + int numshort = 0; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx * delx + dely * dely + delz * delz; + + jtype = map[type[j]]; + ijparam = elem3param[itype][jtype][jtype]; + if (rsq >= params[ijparam].cutsq) { + continue; + } else { + neighshort[numshort++] = j; + if (numshort >= maxshort) { + maxshort += maxshort / 2; + memory->grow(neighshort, maxshort, "pair:neighshort"); + } + } + + jtag = tag[j]; + 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; + } + + //two-body interactions are not computed + } + + jnumm1 = numshort - 1; + + for (jj = 0; jj < jnumm1; jj++) { + j = neighshort[jj]; + jtype = map[type[j]]; + ijparam = elem3param[itype][jtype][jtype]; + delr1[0] = x[j][0] - xtmp; + delr1[1] = x[j][1] - ytmp; + delr1[2] = x[j][2] - ztmp; + rsq1 = delr1[0] * delr1[0] + delr1[1] * delr1[1] + delr1[2] * delr1[2]; + + double fjxtmp, fjytmp, fjztmp; + fjxtmp = fjytmp = fjztmp = 0.0; + + for (kk = jj + 1; kk < numshort; kk++) { + k = neighshort[kk]; + ktype = map[type[k]]; + ijkparam = elem3param[itype][jtype][ktype]; + + delr2[0] = x[k][0] - xtmp; + delr2[1] = x[k][1] - ytmp; + delr2[2] = x[k][2] - ztmp; + rsq2 = delr2[0] * delr2[0] + delr2[1] * delr2[1] + delr2[2] * delr2[2]; + + threebody(¶ms[ijkparam], rsq1, rsq2, delr1, delr2, fi, fj, fk, eflag, evdwl); + + fxtmp += fi[0]; + fytmp += fi[1]; + fztmp += fi[2]; + fjxtmp += fj[0]; + fjytmp += fj[1]; + fjztmp += fj[2]; + f[k][0] += fk[0]; + f[k][1] += fk[1]; + f[k][2] += fk[2]; + + if (evflag) ev_tally3(i, j, k, evdwl, 0.0, fj, fk, delr1, delr2); + } + f[j][0] += fjxtmp; + f[j][1] += fjytmp; + f[j][2] += fjztmp; + } + f[i][0] += fxtmp; + f[i][1] += fytmp; + f[i][2] += fztmp; + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- */ + +void PairThreebodyTable::allocate() +{ + allocated = 1; + int np1 = atom->ntypes + 1; + + memory->create(setflag, np1, np1, "pair:setflag"); + memory->create(cutsq, np1, np1, "pair:cutsq"); + memory->create(neighshort, maxshort, "pair:neighshort"); + map = new int[np1]; +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairThreebodyTable::settings(int narg, char ** /*arg*/) +{ + if (narg != 0) error->all(FLERR, "Illegal pair_style command"); +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairThreebodyTable::coeff(int narg, char **arg) +{ + if (!allocated) allocate(); + + map_element2type(narg - 3, arg + 3); + + // read potential file and initialize potential parameters + + if (params) { + for (int m = 0; m < nparams; m++) free_param(¶ms[m]); // free_param will call free_table + memory->sfree(params); + params = nullptr; + } + read_file(arg[2]); + setup_params(); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairThreebodyTable::init_style() +{ + if (atom->tag_enable == 0) error->all(FLERR, "Pair style threebody/table requires atom IDs"); + if (force->newton_pair == 0) + error->all(FLERR, "Pair style threebody/table requires newton pair on"); + + // need a full neighbor list + + neighbor->add_request(this, NeighConst::REQ_FULL); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairThreebodyTable::init_one(int i, int j) +{ + if (setflag[i][j] == 0) error->all(FLERR, "All pair coeffs are not set"); + + return cutmax; +} + +/* ---------------------------------------------------------------------- */ + +void PairThreebodyTable::read_file(char *file) +{ + params = nullptr; + nparams = maxparam = 0; + + // open file on proc 0 + + if (comm->me == 0) { + PotentialFileReader reader(lmp, file, "threebody", unit_convert_flag); + char *line; + + while ((line = reader.next_line(NPARAMS_PER_LINE))) { + try { + ValueTokenizer values(line); + + std::string iname = values.next_string(); + std::string jname = values.next_string(); + std::string kname = values.next_string(); + + // ielement,jelement,kelement = 1st args + // if all 3 args are in element list, then parse this line + // else skip to next entry in file + int ielement, jelement, kelement; + + for (ielement = 0; ielement < nelements; ielement++) + if (iname == elements[ielement]) break; + if (ielement == nelements) continue; + for (jelement = 0; jelement < nelements; jelement++) + if (jname == elements[jelement]) break; + if (jelement == nelements) continue; + for (kelement = 0; kelement < nelements; kelement++) + if (kname == elements[kelement]) break; + if (kelement == nelements) continue; + + // load up parameter settings and error check their values + + if (nparams == maxparam) { + maxparam += DELTA; + params = (Param *) memory->srealloc(params, maxparam * sizeof(Param), "pair:params"); + + // make certain all addional allocated storage is initialized + // to avoid false positives when checking with valgrind + + memset(params + nparams, 0, DELTA * sizeof(Param)); + } + + params[nparams].ielement = ielement; + params[nparams].jelement = jelement; + params[nparams].kelement = kelement; + // if jelement = kelement, symmetric is true, if not then it is false + params[nparams].symmetric = false; + if (params[nparams].jelement == params[nparams].kelement) params[nparams].symmetric = true; + // read cut off + params[nparams].cut = values.next_double(); + + // read parameters of angle table + std::string name = values.next_string(); + params[nparams].tablenamelength = name.length() + 1; + params[nparams].tablename = utils::strdup(name); + + name = values.next_string(); + params[nparams].keywordlength = name.length() + 1; + params[nparams].keyword = utils::strdup(name); + + name = values.next_string(); + if (name != "linear") error->all(FLERR, "Unknown table style {} in threebody table", name); + params[nparams].tablength = values.next_int(); + + } catch (TokenizerException &e) { + error->one(FLERR, e.what()); + } + + if (params[nparams].cut < 0.0 || params[nparams].tablength < 0.0) + error->one(FLERR, "Illegal threebody/table parameters"); + + nparams++; + } + } + + MPI_Bcast(&nparams, 1, MPI_INT, 0, world); + MPI_Bcast(&maxparam, 1, MPI_INT, 0, world); + + if (comm->me != 0) + params = (Param *) memory->srealloc(params, maxparam * sizeof(Param), "pair:params"); + MPI_Bcast(params, maxparam * sizeof(Param), MPI_BYTE, 0, world); + + // for each set of parameters, broadcast table name and keyword and read threebody table + for (int m = 0; m < nparams; ++m) { + if (comm->me != 0) { + params[m].tablename = new char[params[m].tablenamelength]; + params[m].keyword = new char[params[m].keywordlength]; + } + + MPI_Bcast(params[m].tablename, params[m].tablenamelength, MPI_CHAR, 0, world); + MPI_Bcast(params[m].keyword, params[m].keywordlength, MPI_CHAR, 0, world); + + // initialize threebodytable + memory->create(params[m].mltable, 1, "param:threebodytable"); + null_table(params[m].mltable); + + //call read_table to read corresponding tabulated threebody file (only called by process 0) + if (comm->me == 0) { + read_table(params[m].mltable, params[m].tablename, params[m].keyword, params[m].symmetric); + } + + // broadcast read in threebodytable to all processes + bcast_table(params[m].mltable, params[m].symmetric); + + // error check on table parameters + if (params[m].mltable->ninput <= 1) error->one(FLERR, "Invalid threebody table length"); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairThreebodyTable::setup_params() +{ + int i, j, k, m, n; + double rtmp; + + // set elem3param for all triplet combinations + // must be a single exact match to lines read from file + // do not allow for ACB in place of ABC + + memory->destroy(elem3param); + memory->create(elem3param, nelements, nelements, nelements, "pair:elem3param"); + + for (i = 0; i < nelements; i++) + for (j = 0; j < nelements; j++) + for (k = 0; k < nelements; k++) { + n = -1; + for (m = 0; m < nparams; m++) { + if (i == params[m].ielement && j == params[m].jelement && k == params[m].kelement) { + if (n >= 0) error->all(FLERR, "Potential file has duplicate entry"); + n = m; + } + } + if (n < 0) error->all(FLERR, "Potential file is missing an entry"); + elem3param[i][j][k] = n; + } + + // compute parameter values derived from inputs + + // set cutsq using shortcut to reduce neighbor list for accelerated + // calculations. cut must remain unchanged as it is a potential parameter + // (cut = a) + + for (m = 0; m < nparams; m++) { + rtmp = params[m].cut; + params[m].cutsq = rtmp * rtmp; + } + + // set cutmax to max of all params + + cutmax = 0.0; + for (m = 0; m < nparams; m++) { + rtmp = sqrt(params[m].cutsq); + if (rtmp > cutmax) cutmax = rtmp; + } +} + +/* ---------------------------------------------------------------------- + read table file, only called by proc 0 +------------------------------------------------------------------------- */ + +void PairThreebodyTable::read_table(Table *tb, char *file, char *keyword, bool symmetric) +{ + TableFileReader reader(lmp, file, "threebodytable"); + + char *line = reader.find_section_start(keyword); + + if (!line) { error->one(FLERR, "Did not find keyword in table file"); } + + // read args on 2nd line of section + // allocate table arrays for file values + + line = reader.next_line(); + param_extract(tb, line); + + // if it is a symmetric threebody interaction, less table entries are required + if (symmetric) { + memory->create(tb->r12file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:r12file"); + memory->create(tb->r13file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:r13file"); + memory->create(tb->thetafile, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:thetafile"); + memory->create(tb->f11file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f11file"); + memory->create(tb->f12file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f12file"); + memory->create(tb->f21file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f21file"); + memory->create(tb->f22file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f22file"); + memory->create(tb->f31file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f31file"); + memory->create(tb->f32file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f32file"); + memory->create(tb->efile, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:efile"); + } + // else, more (full) table entries are required + else { + memory->create(tb->r12file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:r12file"); + memory->create(tb->r13file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:r13file"); + memory->create(tb->thetafile, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:thetafile"); + memory->create(tb->f11file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f11file"); + memory->create(tb->f12file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f12file"); + memory->create(tb->f21file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f21file"); + memory->create(tb->f22file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f22file"); + memory->create(tb->f31file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f31file"); + memory->create(tb->f32file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f32file"); + memory->create(tb->efile, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:efile"); + } + + // read threebody table values from file + + int cerror = 0; + reader.skip_line(); + // if it is a symmetric threebody interaction, less table entries are required + if (symmetric) { + for (int i = 0; i < tb->ninput * tb->ninput * (tb->ninput + 1); i++) { + line = reader.next_line(11); + try { + ValueTokenizer values(line); + values.next_int(); + tb->r12file[i] = values.next_double(); + tb->r13file[i] = values.next_double(); + tb->thetafile[i] = values.next_double(); + tb->f11file[i] = values.next_double(); + tb->f12file[i] = values.next_double(); + tb->f21file[i] = values.next_double(); + tb->f22file[i] = values.next_double(); + tb->f31file[i] = values.next_double(); + tb->f32file[i] = values.next_double(); + tb->efile[i] = values.next_double(); + } catch (TokenizerException &) { + ++cerror; + } + } + } else { + for (int i = 0; i < 2 * tb->ninput * tb->ninput * tb->ninput; i++) { + line = reader.next_line(11); + try { + ValueTokenizer values(line); + values.next_int(); + tb->r12file[i] = values.next_double(); + tb->r13file[i] = values.next_double(); + tb->thetafile[i] = values.next_double(); + tb->f11file[i] = values.next_double(); + tb->f12file[i] = values.next_double(); + tb->f21file[i] = values.next_double(); + tb->f22file[i] = values.next_double(); + tb->f31file[i] = values.next_double(); + tb->f32file[i] = values.next_double(); + tb->efile[i] = values.next_double(); + } catch (TokenizerException &) { + ++cerror; + } + } + } + + // warn if data was read incompletely, e.g. columns were missing + + if (cerror) + error->warning(FLERR, "{} of {} lines in table incomplete or could not be parsed", cerror, + tb->ninput); +} + +/* ---------------------------------------------------------------------- + extract attributes from parameter line in table section + format of line: N value FP fplo fphi EQ theta0 + N is required, other params are optional + + only called by read_table, only called by proc 0 +------------------------------------------------------------------------- */ + +void PairThreebodyTable::param_extract(Table *tb, char *line) +{ + tb->ninput = 0; + tb->rmin = 0.0; + tb->rmax = 0.0; + + try { + ValueTokenizer values(line); + + while (values.has_next()) { + std::string word = values.next_string(); + + if (word == "N") { + tb->ninput = values.next_int(); + } else if (word == "rmin") { + tb->rmin = values.next_double(); + } else if (word == "rmax") { + tb->rmax = values.next_double(); + } else { + error->one(FLERR, "Invalid keyword {} in angle table parameters", word); + } + } + } catch (TokenizerException &e) { + error->one(FLERR, e.what()); + } + + if (tb->ninput == 0) error->one(FLERR, "threebodytable parameters did not set N"); + if (tb->rmin == 0.0) error->one(FLERR, "threebodytable parameters did not set rmin"); + if (tb->rmax == 0.0) error->one(FLERR, "threebodytable parameters did not set rmax"); +} + +/* ---------------------------------------------------------------------- + broadcast read-in table info from proc 0 to other procs + this function communicates these values in Table: + ninput,afile,efile,ffile,fpflag,fplo,fphi,theta0 +------------------------------------------------------------------------- */ + +void PairThreebodyTable::bcast_table(Table *tb, bool symmetric) +{ + MPI_Bcast(&tb->ninput, 1, MPI_INT, 0, world); + + int me; + MPI_Comm_rank(world, &me); + if (me > 0) { + // if it is a symmetric threebody interaction, less table entries are required + if (symmetric) { + memory->create(tb->r12file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:r12file"); + memory->create(tb->r13file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:r13file"); + memory->create(tb->thetafile, tb->ninput * tb->ninput * (tb->ninput + 1), + "mltable:thetafile"); + memory->create(tb->f11file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f11file"); + memory->create(tb->f12file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f12file"); + memory->create(tb->f21file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f21file"); + memory->create(tb->f22file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f22file"); + memory->create(tb->f31file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f31file"); + memory->create(tb->f32file, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:f32file"); + memory->create(tb->efile, tb->ninput * tb->ninput * (tb->ninput + 1), "mltable:efile"); + } + // else, more (full) table entries are required + else { + memory->create(tb->r12file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:r12file"); + memory->create(tb->r13file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:r13file"); + memory->create(tb->thetafile, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:thetafile"); + memory->create(tb->f11file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f11file"); + memory->create(tb->f12file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f12file"); + memory->create(tb->f21file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f21file"); + memory->create(tb->f22file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f22file"); + memory->create(tb->f31file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f31file"); + memory->create(tb->f32file, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:f32file"); + memory->create(tb->efile, 2 * tb->ninput * tb->ninput * tb->ninput, "mltable:efile"); + } + } + + // if it is a symmetric threebody interaction, less table entries are required + if (symmetric) { + MPI_Bcast(tb->r12file, tb->ninput * tb->ninput * (tb->ninput + 1), MPI_DOUBLE, 0, world); + MPI_Bcast(tb->r13file, tb->ninput * tb->ninput * (tb->ninput + 1), MPI_DOUBLE, 0, world); + MPI_Bcast(tb->thetafile, tb->ninput * tb->ninput * (tb->ninput + 1), MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f11file, tb->ninput * tb->ninput * (tb->ninput + 1), MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f12file, tb->ninput * tb->ninput * (tb->ninput + 1), MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f21file, tb->ninput * tb->ninput * (tb->ninput + 1), MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f22file, tb->ninput * tb->ninput * (tb->ninput + 1), MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f31file, tb->ninput * tb->ninput * (tb->ninput + 1), MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f32file, tb->ninput * tb->ninput * (tb->ninput + 1), MPI_DOUBLE, 0, world); + MPI_Bcast(tb->efile, tb->ninput * tb->ninput * (tb->ninput + 1), MPI_DOUBLE, 0, world); + } + // else, more (full) table entries are required + else { + MPI_Bcast(tb->r12file, 2 * tb->ninput * tb->ninput * tb->ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb->r13file, 2 * tb->ninput * tb->ninput * tb->ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb->thetafile, 2 * tb->ninput * tb->ninput * tb->ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f11file, 2 * tb->ninput * tb->ninput * tb->ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f12file, 2 * tb->ninput * tb->ninput * tb->ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f21file, 2 * tb->ninput * tb->ninput * tb->ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f22file, 2 * tb->ninput * tb->ninput * tb->ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f31file, 2 * tb->ninput * tb->ninput * tb->ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb->f32file, 2 * tb->ninput * tb->ninput * tb->ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb->efile, 2 * tb->ninput * tb->ninput * tb->ninput, MPI_DOUBLE, 0, world); + } + + MPI_Bcast(&tb->rmin, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&tb->rmax, 1, MPI_DOUBLE, 0, world); +} + +/* ---------------------------------------------------------------------- */ + +void PairThreebodyTable::free_param(Param *pm) +{ + // call free_table to destroy associated threebodytables + free_table(pm->mltable); + // then destroy associated threebodytable + delete[] pm->tablename; + delete[] pm->keyword; + memory->sfree(pm->mltable); +} + +/* ---------------------------------------------------------------------- */ + +void PairThreebodyTable::free_table(Table *tb) +{ + memory->destroy(tb->r12file); + memory->destroy(tb->r13file); + memory->destroy(tb->thetafile); + memory->destroy(tb->f11file); + memory->destroy(tb->f12file); + memory->destroy(tb->f21file); + memory->destroy(tb->f22file); + memory->destroy(tb->f31file); + memory->destroy(tb->f32file); + memory->destroy(tb->efile); +} + +/* ---------------------------------------------------------------------- */ + +void PairThreebodyTable::null_table(Table *tb) +{ + tb->r12file = tb->r13file = tb->thetafile = nullptr; + tb->f11file = tb->f12file = nullptr; + tb->f21file = tb->f22file = nullptr; + tb->f31file = tb->f32file = nullptr; + tb->efile = nullptr; +} + +/* ---------------------------------------------------------------------- + calculate potential u and force f at angle x +------------------------------------------------------------------------- */ + +void PairThreebodyTable::uf_lookup(Param *pm, double r12, double r13, double theta, double &f11, + double &f12, double &f21, double &f22, double &f31, double &f32, + double &u) +{ + int i, itable, nr12, nr13, ntheta; + double dr, dtheta; + dr = (pm->mltable->rmax - pm->mltable->rmin) / (pm->mltable->ninput - 1); + dtheta = (180.0 - 0.0) / (pm->mltable->ninput * 2); + + //lookup scheme + + // if it is a symmetric threebody interaction, less table entries are required + if (pm->symmetric) { + nr12 = (r12 - pm->mltable->rmin + 0.5 * dr - 0.00000001) / dr; + if (r12 == (pm->mltable->rmin - 0.5 * dr)) { nr12 = 0; } + nr13 = (r13 - pm->mltable->rmin + 0.5 * dr - 0.00000001) / dr; + if (r13 == (pm->mltable->rmin - 0.5 * dr)) { nr13 = 0; } + nr13 -= nr12; + ntheta = (theta - 0.00000001) / dtheta; + if (theta == 180.0) { ntheta = 79; } + itable = 0; + for (i = 0; i < nr12; i++) { itable += (pm->mltable->ninput - i); } + itable += nr13; + itable *= (pm->mltable->ninput * 2); + itable += ntheta; + } else { + // else, more (full) table entries are required + nr12 = (r12 - pm->mltable->rmin + 0.5 * dr - 0.00000001) / dr; + if (r12 == (pm->mltable->rmin - 0.5 * dr)) { nr12 = 0; } + nr13 = (r13 - pm->mltable->rmin + 0.5 * dr - 0.00000001) / dr; + if (r13 == (pm->mltable->rmin - 0.5 * dr)) { nr13 = 0; } + ntheta = (theta - 0.00000001) / dtheta; + if (theta == 180.0) { ntheta = 79; } + itable = nr12 * (pm->mltable->ninput); + itable += nr13; + itable *= (pm->mltable->ninput * 2); + itable += ntheta; + } + + f11 = pm->mltable->f11file[itable]; + f12 = pm->mltable->f12file[itable]; + f21 = pm->mltable->f21file[itable]; + f22 = pm->mltable->f22file[itable]; + f31 = pm->mltable->f31file[itable]; + f32 = pm->mltable->f32file[itable]; + u = pm->mltable->efile[itable]; +} + +/* ---------------------------------------------------------------------- */ + +void PairThreebodyTable::threebody(Param *paramijk, double rsq1, double rsq2, double *delr1, + double *delr2, double *fi, double *fj, double *fk, int eflag, + double &eng) +{ + double r12, r13, theta, rinv, cs; + + double f11, f12, f21, f22, f31, f32, u, temp; + bool swapped; + double dr; + dr = (paramijk->mltable->rmax - paramijk->mltable->rmin) / (paramijk->mltable->ninput - 1); + + //if swap indices or not + swapped = false; + + r12 = sqrt(rsq1); + r13 = sqrt(rsq2); + rinv = 1.0 / (r12 * r13); + cs = (delr1[0] * delr2[0] + delr1[1] * delr2[1] + delr1[2] * delr2[2]) * rinv; + //compute angle between r12 and r13 in degrees + theta = acos(cs) * 180.0 / MY_PI; + + //if r12 > r13 swap them, as in lookup table always r13 > r12 do to symmetry reasons + if (r12 > r13) { + temp = r12; + r12 = r13; + r13 = temp; + swapped = true; + } + + //look up forces and energy in table belonging to parameter set paramijk + + //only do lookup and add three-body interactions if r12 and r13 are both between rmin and rmax + + if ((r12 >= (paramijk->mltable->rmin - 0.5 * dr)) && + (r13 <= (paramijk->mltable->rmax + 0.5 * dr)) && + (r13 >= (paramijk->mltable->rmin - 0.5 * dr)) && + (r13 <= (paramijk->mltable->rmax + 0.5 * dr))) { + uf_lookup(paramijk, r12, r13, theta, f11, f12, f21, f22, f31, f32, u); + } else { + f11 = f12 = f21 = f22 = f31 = f32 = u = 0.0; + } + + // if the indices have been swapped, swap them back + if (swapped) { + temp = r12; + r12 = r13; + r13 = temp; + temp = f11; + f11 = f12; + f12 = temp; + temp = f21; + f21 = f31; + f31 = temp; + temp = f22; + f22 = -f32; + f32 = -temp; + } + + fi[0] = delr1[0] * f11 + delr2[0] * f12; + fi[1] = delr1[1] * f11 + delr2[1] * f12; + fi[2] = delr1[2] * f11 + delr2[2] * f12; + + fj[0] = delr1[0] * f21 + (delr2[0] - delr1[0]) * f22; + fj[1] = delr1[1] * f21 + (delr2[1] - delr1[1]) * f22; + fj[2] = delr1[2] * f21 + (delr2[2] - delr1[2]) * f22; + + fk[0] = delr2[0] * f31 + (delr2[0] - delr1[0]) * f32; + fk[1] = delr2[1] * f31 + (delr2[1] - delr1[1]) * f32; + fk[2] = delr2[2] * f31 + (delr2[2] - delr1[2]) * f32; + + if (eflag) eng = u; +} diff --git a/src/MANYBODY/pair_threebody_table.h b/src/MANYBODY/pair_threebody_table.h new file mode 100644 index 0000000000..218bfeebd8 --- /dev/null +++ b/src/MANYBODY/pair_threebody_table.h @@ -0,0 +1,89 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS +// clang-format off +PairStyle(threebody/table,PairThreebodyTable); +// clang-format on +#else + +#ifndef LMP_PAIR_THREEBODY_TABLE_H +#define LMP_PAIR_THREEBODY_TABLE_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairThreebodyTable : public Pair { + public: + PairThreebodyTable(class LAMMPS *); + ~PairThreebodyTable() override; + void compute(int, int) override; + void coeff(int, char **) override; + double init_one(int, int) override; + void init_style() override; + + static constexpr int NPARAMS_PER_LINE = 8; + + // no write or read from binary restart file + + // struct for threebody/table + struct Table { + int ninput; + double rmin, rmax; + double *r12file, *r13file, *thetafile, *f11file, *f12file, *f21file, *f22file, *f31file, + *f32file, *efile; + }; + + struct Param { + double cut, cutsq; + int ielement, jelement, kelement; + bool symmetric; // whether it is a symmetric table or not + int tablenamelength; // length of table name + char *tablename; // name of associated angular table + int keywordlength; // length of key in table + char *keyword; // key in table + int tabstyle, tablength; // length of interpolation table (not ninput) and style + Table *mltable; // threebody table + }; + + protected: + double cutmax; // max cutoff for all elements + Param *params; // parameter set for an I-J-K interaction + int maxshort; // size of short neighbor list array + int *neighshort; // short neighbor list array + + void settings(int, char **) override; + virtual void allocate(); + void read_file(char *); + virtual void setup_params(); + void threebody(Param *, double, double, double *, double *, double *, double *, double *, int, + double &); + + void read_table(Table *, char *, char *, bool); + void bcast_table(Table *, bool); + void null_table(Table *); + + void free_table(Table *); + void free_param(Param *); + + void param_extract(Table *, char *); + + void uf_lookup(Param *, double, double, double, double &, double &, double &, double &, double &, + double &, double &); +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/MC/fix_widom.cpp b/src/MC/fix_widom.cpp index 0adabe5eae..0a20e7adf3 100644 --- a/src/MC/fix_widom.cpp +++ b/src/MC/fix_widom.cpp @@ -273,7 +273,7 @@ void FixWidom::init() triclinic = domain->triclinic; - ave_widom_chemical_potential = 0; + ave_widom_chemical_potential = 0.0; if (region) volume = region_volume; else volume = domain->xprd * domain->yprd * domain->zprd; diff --git a/src/MDI/fix_mdi_aimd.cpp b/src/MDI/fix_mdi_aimd.cpp deleted file mode 100644 index c878d183d3..0000000000 --- a/src/MDI/fix_mdi_aimd.cpp +++ /dev/null @@ -1,379 +0,0 @@ -/* ---------------------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - https://www.lammps.org/ Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov - - Copyright (2003) Sandia Corporation. Under the terms of Contract - DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains - certain rights in this software. This software is distributed under - the GNU General Public License. - - See the README file in the top-level LAMMPS directory. -------------------------------------------------------------------------- */ - -#include "fix_mdi_aimd.h" -#include "atom.h" -#include "comm.h" -#include "domain.h" -#include "error.h" -#include "force.h" -#include "memory.h" -#include "update.h" - -using namespace LAMMPS_NS; -using namespace FixConst; - -enum { NATIVE, REAL, METAL }; // LAMMPS units which MDI supports - -/* ---------------------------------------------------------------------- */ - -FixMDIAimd::FixMDIAimd(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) -{ - if (narg != 3) error->all(FLERR, "Illegal fix mdi/aimd command"); - - scalar_flag = 1; - global_freq = 1; - extscalar = 1; - energy_global_flag = 1; - virial_global_flag = 1; - thermo_energy = thermo_virial = 1; - - // check requirements for LAMMPS to work with MDI as an engine - - if (atom->tag_enable == 0) error->all(FLERR, "Cannot use MDI engine without atom IDs"); - - if (atom->natoms && atom->tag_consecutive() == 0) - error->all(FLERR, "MDI engine requires consecutive atom IDs"); - - // confirm LAMMPS is being run as a driver - - int role; - MDI_Get_role(&role); - if (role != MDI_DRIVER) - error->all(FLERR, "Must invoke LAMMPS as an MDI driver to use fix mdi/aimd"); - - // mdicomm will be one-time initialized in init() - // cannot be done here for a plugin library, b/c mdi plugin command is later - - mdicomm = MDI_COMM_NULL; - - // storage for all atoms - - buf3 = buf3all = nullptr; - maxbuf = 0; - - // set unit conversion factors - - if (strcmp(update->unit_style, "real") == 0) - lmpunits = REAL; - else if (strcmp(update->unit_style, "metal") == 0) - lmpunits = METAL; - else - lmpunits = NATIVE; - - unit_conversions(); - - nprocs = comm->nprocs; -} - -/* ---------------------------------------------------------------------- */ - -FixMDIAimd::~FixMDIAimd() -{ - // send exit command to engine if it is a stand-alone code - // for plugin, this happens in MDIPlugin::plugin_wrapper() - - if (!plugin) { - int ierr = MDI_Send_command("EXIT", mdicomm); - if (ierr) error->all(FLERR, "MDI: EXIT command"); - } - - // clean up - - memory->destroy(buf3); - memory->destroy(buf3all); -} - -/* ---------------------------------------------------------------------- */ - -int FixMDIAimd::setmask() -{ - int mask = 0; - mask |= PRE_REVERSE; - mask |= POST_FORCE; - mask |= MIN_POST_FORCE; - return mask; -} - -/* ---------------------------------------------------------------------- */ - -void FixMDIAimd::init() -{ - if (mdicomm != MDI_COMM_NULL) return; - - // one-time auto-detect whether engine is stand-alone code or plugin library - // also initializes mdicomm - // plugin = 0/1 for engine = stand-alone code vs plugin library - - MDI_Get_communicator(&mdicomm, 0); - - if (mdicomm == MDI_COMM_NULL) { - plugin = 0; - MDI_Accept_communicator(&mdicomm); - if (mdicomm == MDI_COMM_NULL) error->all(FLERR, "MDI unable to connect to stand-alone engine"); - } else { - plugin = 1; - int method; - MDI_Get_method(&method, mdicomm); - if (method != MDI_PLUGIN) error->all(FLERR, "MDI internal error for plugin engine"); - } -} - -/* ---------------------------------------------------------------------- */ - -void FixMDIAimd::setup(int vflag) -{ - post_force(vflag); -} - -/* ---------------------------------------------------------------------- */ - -void FixMDIAimd::setup_pre_reverse(int eflag, int vflag) -{ - pre_reverse(eflag, vflag); -} - -/* ---------------------------------------------------------------------- - store eflag, so can use it in post_force to request energy -------------------------------------------------------------------------- */ - -void FixMDIAimd::pre_reverse(int eflag, int /*vflag*/) -{ - eflag_caller = eflag; -} - -/* ---------------------------------------------------------------------- */ - -void FixMDIAimd::post_force(int vflag) -{ - int ilocal, ierr; - double cell[9]; - - int eflag = eflag_caller; - ev_init(eflag, vflag); - - // if simulation box dynamically changes, send current box to MDI engine - - if (domain->box_change_size || domain->box_change_shape) { - ierr = MDI_Send_command(">CELL_DISPL", mdicomm); - if (ierr) error->all(FLERR, "MDI: >CELL_DISPL command"); - cell[0] = domain->boxlo[0] * lmp2mdi_length; - cell[1] = domain->boxlo[1] * lmp2mdi_length; - cell[2] = domain->boxlo[2] * lmp2mdi_length; - ierr = MDI_Send(cell, 3, MDI_DOUBLE, mdicomm); - if (ierr) error->all(FLERR, "MDI: >CELL_DISPL data"); - - ierr = MDI_Send_command(">CELL", mdicomm); - if (ierr) error->all(FLERR, "MDI: >CELL command"); - cell[0] = domain->boxhi[0] - domain->boxlo[0]; - cell[1] = 0.0; - cell[2] = 0.0; - cell[3] = domain->xy; - cell[4] = domain->boxhi[1] - domain->boxlo[1]; - cell[5] = 0.0; - cell[6] = domain->xz; - cell[7] = domain->yz; - cell[8] = domain->boxhi[2] - domain->boxlo[2]; - ierr = MDI_Send(cell, 9, MDI_DOUBLE, mdicomm); - if (ierr) error->all(FLERR, "MDI: >CELL data"); - } - - // gather all coords, ordered by atomID - - reallocate(); - memset(buf3, 0, 3 * atom->natoms * sizeof(double)); - - double **x = atom->x; - tagint *tag = atom->tag; - int nlocal = atom->nlocal; - - for (int i = 0; i < nlocal; i++) { - ilocal = static_cast(tag[i]) - 1; - buf3[3 * ilocal + 0] = x[i][0] * lmp2mdi_length; - buf3[3 * ilocal + 1] = x[i][1] * lmp2mdi_length; - buf3[3 * ilocal + 2] = x[i][2] * lmp2mdi_length; - } - - MPI_Reduce(buf3, buf3all, 3 * atom->natoms, MPI_DOUBLE, MPI_SUM, 0, world); - - // send current coords to MDI engine - - ierr = MDI_Send_command(">COORDS", mdicomm); - if (ierr) error->all(FLERR, "MDI: >COORDS command"); - ierr = MDI_Send(buf3all, 3 * atom->natoms, MDI_DOUBLE, mdicomm); - if (ierr) error->all(FLERR, "MDI: >COORDS data"); - - // request forces from MDI engine - // this triggers engine to evaluate forces,energy,stress for current system - - ierr = MDI_Send_command("all(FLERR, "MDI: natoms, MDI_DOUBLE, mdicomm); - if (ierr) error->all(FLERR, "MDI: natoms, MPI_DOUBLE, 0, world); - - // add forces to owned atoms - // use atomID to index into ordered buf3 - - double **f = atom->f; - - for (int i = 0; i < nlocal; i++) { - ilocal = static_cast(tag[i]) - 1; - f[i][0] += buf3[3 * ilocal + 0] * mdi2lmp_force; - f[i][1] += buf3[3 * ilocal + 1] * mdi2lmp_force; - f[i][2] += buf3[3 * ilocal + 2] * mdi2lmp_force; - } - - // optionally request potential energy from MDI engine - - if (eflag_global) { - ierr = MDI_Send_command("all(FLERR, "MDI: all(FLERR, "MDI: all(FLERR, "MDI: all(FLERR, "MDI: xprd * domain->yprd * domain->zprd; - for (int i = 0; i < 6; i++) { - ptensor[i] *= mdi2lmp_pressure; - virial[i] = ptensor[i] * volume / force->nktv2p / nprocs; - } - } -} - -/* ---------------------------------------------------------------------- */ - -void FixMDIAimd::min_post_force(int vflag) -{ - post_force(vflag); -} - -/* ---------------------------------------------------------------------- - energy from MDI engine -------------------------------------------------------------------------- */ - -double FixMDIAimd::compute_scalar() -{ - return engine_energy; -} - -/* ---------------------------------------------------------------------- - reallocate storage for all atoms if necessary -------------------------------------------------------------------------- */ - -void FixMDIAimd::reallocate() -{ - if (atom->natoms <= maxbuf) return; - - if (3 * atom->natoms > MAXSMALLINT) - error->all(FLERR, "Natoms too large to use with fix mdi/aimd"); - - maxbuf = atom->natoms; - - memory->destroy(buf3); - memory->destroy(buf3all); - - memory->create(buf3, 3 * maxbuf, "mdi:buf3"); - memory->create(buf3all, 3 * maxbuf, "mdi:buf3all"); -} - -/* ---------------------------------------------------------------------- - MDI to/from LAMMPS conversion factors -------------------------------------------------------------------------- */ - -void FixMDIAimd::unit_conversions() -{ - double angstrom_to_bohr, kelvin_to_hartree, ev_to_hartree, second_to_aut; - - MDI_Conversion_factor("angstrom", "bohr", &angstrom_to_bohr); - MDI_Conversion_factor("kelvin_energy", "hartree", &kelvin_to_hartree); - MDI_Conversion_factor("electron_volt", "hartree", &ev_to_hartree); - MDI_Conversion_Factor("second", "atomic_unit_of_time", &second_to_aut); - - // length units - - mdi2lmp_length = 1.0; - lmp2mdi_length = 1.0; - - if (lmpunits == REAL || lmpunits == METAL) { - lmp2mdi_length = angstrom_to_bohr; - mdi2lmp_length = 1.0 / angstrom_to_bohr; - } - - // energy units - - mdi2lmp_energy = 1.0; - lmp2mdi_energy = 1.0; - - if (lmpunits == REAL) { - lmp2mdi_energy = kelvin_to_hartree / force->boltz; - mdi2lmp_energy = force->boltz / kelvin_to_hartree; - } else if (lmpunits == METAL) { - lmp2mdi_energy = ev_to_hartree; - mdi2lmp_energy = 1.0 / ev_to_hartree; - } - - // force units = energy/length - - mdi2lmp_force = 1.0; - lmp2mdi_force = 1.0; - - if (lmpunits == REAL) { - lmp2mdi_force = (kelvin_to_hartree / force->boltz) / angstrom_to_bohr; - mdi2lmp_force = 1.0 / lmp2mdi_force; - } else if (lmpunits == METAL) { - lmp2mdi_force = ev_to_hartree / angstrom_to_bohr; - mdi2lmp_force = angstrom_to_bohr / ev_to_hartree; - } - - // pressure or stress units = force/area = energy/volume - - mdi2lmp_pressure = 1.0; - lmp2mdi_pressure = 1.0; - - if (lmpunits == REAL) { - lmp2mdi_pressure = (kelvin_to_hartree / force->boltz) / - (angstrom_to_bohr * angstrom_to_bohr * angstrom_to_bohr) / force->nktv2p; - mdi2lmp_pressure = 1.0 / lmp2mdi_pressure; - } else if (lmpunits == METAL) { - lmp2mdi_pressure = - ev_to_hartree / (angstrom_to_bohr * angstrom_to_bohr * angstrom_to_bohr) / force->nktv2p; - mdi2lmp_pressure = 1.0 / lmp2mdi_pressure; - } - - // velocity units = distance/time - - mdi2lmp_velocity = 1.0; - lmp2mdi_velocity = 1.0; - - if (lmpunits == REAL) { - lmp2mdi_velocity = angstrom_to_bohr / (1.0e-15 * second_to_aut); - mdi2lmp_velocity = 1.0 / lmp2mdi_velocity; - } else if (lmpunits == METAL) { - lmp2mdi_velocity = angstrom_to_bohr / (1.0e-12 * second_to_aut); - mdi2lmp_velocity = 1.0 / lmp2mdi_velocity; - } -} diff --git a/src/MDI/fix_mdi_qm.cpp b/src/MDI/fix_mdi_qm.cpp new file mode 100644 index 0000000000..db1c59ada9 --- /dev/null +++ b/src/MDI/fix_mdi_qm.cpp @@ -0,0 +1,591 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "fix_mdi_qm.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "update.h" + +using namespace LAMMPS_NS; +using namespace FixConst; + +enum { NATIVE, REAL, METAL }; // LAMMPS units which MDI supports + +#define MAXELEMENT 103 // used elsewhere in MDI package + +/* ---------------------------------------------------------------------- */ + +FixMDIQM::FixMDIQM(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) +{ + // check requirements for LAMMPS to work with MDI as an engine + + if (atom->tag_enable == 0) + error->all(FLERR, "Cannot use MDI engine without atom IDs"); + if (atom->natoms && atom->tag_consecutive() == 0) + error->all(FLERR, "MDI engine requires consecutive atom IDs"); + + // confirm LAMMPS is being run as a driver + + int role; + MDI_Get_role(&role); + if (role != MDI_DRIVER) + error->all(FLERR, "Must invoke LAMMPS as an MDI driver to use fix mdi/qm"); + + // optional args + + virialflag = 0; + addflag = 1; + every = 1; + connectflag = 1; + elements = nullptr; + + int iarg = 3; + while (iarg < narg) { + if (strcmp(arg[iarg],"virial") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal fix mdi/qm command"); + if (strcmp(arg[iarg+1],"yes") == 0) virialflag = 1; + else if (strcmp(arg[iarg+1],"no") == 0) virialflag = 0; + else error->all(FLERR,"Illegal fix mdi/qm command"); + iarg += 2; + } else if (strcmp(arg[iarg],"add") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal fix mdi/qm command"); + if (strcmp(arg[iarg+1],"yes") == 0) addflag = 1; + else if (strcmp(arg[iarg+1],"no") == 0) addflag = 0; + else error->all(FLERR,"Illegal fix mdi/qm command"); + iarg += 2; + } else if (strcmp(arg[iarg],"every") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal fix mdi/qm command"); + every = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + if (every <= 0) error->all(FLERR,"Illegal fix mdi/qm command"); + iarg += 2; + } else if (strcmp(arg[iarg],"connect") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal fix mdi/qm command"); + if (strcmp(arg[iarg+1],"yes") == 0) connectflag = 1; + else if (strcmp(arg[iarg+1],"no") == 0) connectflag = 0; + else error->all(FLERR,"Illegal fix mdi/qm command"); + iarg += 2; + } else if (strcmp(arg[iarg],"elements") == 0) { + int ntypes = atom->ntypes; + if (iarg+ntypes+1 > narg) error->all(FLERR,"Illegal fix mdi/qm command"); + delete [] elements; + elements = new int[ntypes+1]; + for (int i = 1; i <= ntypes; i++) { + elements[i] = utils::inumeric(FLERR,arg[iarg+i],false,lmp); + if (elements[i] < 1 || elements[i] > MAXELEMENT) + error->all(FLERR,"Illegal fix mdi/qm command"); + } + iarg += ntypes+1; + } else error->all(FLERR,"Illegal fix mdi/qm command"); + } + + // fix output settings are based on optional keywords + + scalar_flag = 1; + global_freq = every; + extscalar = 1; + + peratom_flag = 1; + size_peratom_cols = 3; + peratom_freq = every; + extvector = 0; + + if (virialflag) { + vector_flag = 1; + size_vector = 6; + } + + if (addflag) { + energy_global_flag = 1; + virial_global_flag = 1; + thermo_energy = thermo_virial = 1; + } + + // mdicomm will be initialized in init() + // cannot do here for a plugin library, b/c mdi plugin command comes later + + mdicomm = MDI_COMM_NULL; + + // peratom storage, both for nlocal and global natoms + + fqm = nullptr; + maxlocal = 0; + + ibuf1 = ibuf1all = nullptr; + buf3 = buf3all = nullptr; + maxbuf = 0; + + // set unit conversion factors + + if (strcmp(update->unit_style, "real") == 0) + lmpunits = REAL; + else if (strcmp(update->unit_style, "metal") == 0) + lmpunits = METAL; + else + lmpunits = NATIVE; + + unit_conversions(); + + nprocs = comm->nprocs; + + // initialize outputs + + qm_energy = 0.0; + if (virialflag) { + for (int i = 0; i < 6; i++) { + qm_virial[i] = 0.0; + virial[i] = 0.0; + } + sumflag = 0; + } +} + +/* ---------------------------------------------------------------------- */ + +FixMDIQM::~FixMDIQM() +{ + // send exit command to stand-alone engine code + // for connnectflag = 0, this is done via "mdi exit" command + // for plugin, this is done in MDIPlugin::plugin_wrapper() + + if (mdicomm != MDI_COMM_NULL && connectflag && !plugin) { + int ierr = MDI_Send_command("EXIT", mdicomm); + if (ierr) error->all(FLERR, "MDI: EXIT command"); + } + + // clean up + + delete[] elements; + + memory->destroy(fqm); + + memory->destroy(ibuf1); + memory->destroy(ibuf1all); + memory->destroy(buf3); + memory->destroy(buf3all); +} + +/* ---------------------------------------------------------------------- */ + +int FixMDIQM::setmask() +{ + int mask = 0; + mask |= PRE_REVERSE; + mask |= POST_FORCE; + mask |= MIN_POST_FORCE; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixMDIQM::init() +{ + // set local mdicomm one-time only + // also set plugin = 0/1 for engine = stand-alone code vs plugin library + + if (mdicomm == MDI_COMM_NULL) { + + // this fix makes one-time connection to engine + + if (connectflag) { + + // if MDI's mdicomm not set, need to Accept_comm() with stand-alone engine + // othewise are already connected to plugin engine + + MDI_Get_communicator(&mdicomm, 0); + + if (mdicomm == MDI_COMM_NULL) { + plugin = 0; + MDI_Accept_communicator(&mdicomm); + if (mdicomm == MDI_COMM_NULL) + error->all(FLERR, "MDI unable to connect to stand-alone engine"); + + } else { + plugin = 1; + int method; + MDI_Get_method(&method, mdicomm); + if (method != MDI_PLUGIN) + error->all(FLERR, "MDI internal error for plugin engine"); + } + + // connection should have been already made by "mdi connect" command + // only works for stand-alone engines + + } else { + plugin = 0; + + if (lmp->mdicomm == nullptr) + error->all(FLERR,"Fix mdi/qm is not connected to engine via mdi connect"); + + int nbytes = sizeof(MDI_Comm); + char *ptrcomm = (char *) lmp->mdicomm; + memcpy(&mdicomm,ptrcomm,nbytes); + } + } + + // send natoms, atom types or elements, and simulation box to engine + // this will trigger setup of a new system + // subsequent calls in post_force() will be for same system until new init() + + reallocate(); + + int ierr = MDI_Send_command(">NATOMS", mdicomm); + if (ierr) error->all(FLERR, "MDI: >NATOMS command"); + int n = static_cast (atom->natoms); + ierr = MDI_Send(&n, 1, MDI_INT, mdicomm); + if (ierr) error->all(FLERR, "MDI: >NATOMS data"); + + if (elements) send_elements(); + else send_types(); + send_box(); +} + +/* ---------------------------------------------------------------------- */ + +void FixMDIQM::setup(int vflag) +{ + post_force(vflag); +} + +/* ---------------------------------------------------------------------- */ + +void FixMDIQM::post_force(int vflag) +{ + int index, ierr; + + // skip if timestep is not a multiple of every + + if (update->ntimestep % every) return; + + // reallocate peratom storage if necessary, both natoms and nlocal + + reallocate(); + + // if simulation box dynamically changes, send current box to MDI engine + + if (domain->box_change_size || domain->box_change_shape) + send_box(); + + // gather all coords, ordered by atomID + + memset(buf3, 0, 3 * atom->natoms * sizeof(double)); + + double **x = atom->x; + tagint *tag = atom->tag; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) { + index = static_cast(tag[i]) - 1; + buf3[3 * index + 0] = x[i][0] * lmp2mdi_length; + buf3[3 * index + 1] = x[i][1] * lmp2mdi_length; + buf3[3 * index + 2] = x[i][2] * lmp2mdi_length; + } + + int n = static_cast (atom->natoms); + MPI_Reduce(buf3, buf3all, 3 * n, MPI_DOUBLE, MPI_SUM, 0, world); + + // send current coords to MDI engine + + ierr = MDI_Send_command(">COORDS", mdicomm); + if (ierr) error->all(FLERR, "MDI: >COORDS command"); + ierr = MDI_Send(buf3all, 3 * atom->natoms, MDI_DOUBLE, mdicomm); + if (ierr) error->all(FLERR, "MDI: >COORDS data"); + + // request potential energy from MDI engine + // this triggers engine to perform QM calculation + // qm_energy = fix output for global QM energy + + ierr = MDI_Send_command("all(FLERR, "MDI: all(FLERR, "MDI: all(FLERR, "MDI: natoms, MDI_DOUBLE, mdicomm); + if (ierr) error->all(FLERR, "MDI: (tag[i]) - 1; + fqm[i][0] = buf3[3 * index + 0] * mdi2lmp_force; + fqm[i][1] = buf3[3 * index + 1] * mdi2lmp_force; + fqm[i][2] = buf3[3 * index + 2] * mdi2lmp_force; + } + + + // optionally add forces to owned atoms + // use atomID of local atoms to index into ordered buf3 + + if (addflag) { + double **f = atom->f; + for (int i = 0; i < nlocal; i++) { + index = static_cast(tag[i]) - 1; + f[i][0] += buf3[3 * index + 0] * mdi2lmp_force; + f[i][1] += buf3[3 * index + 1] * mdi2lmp_force; + f[i][2] += buf3[3 * index + 2] * mdi2lmp_force; + } + } + + // optionally request stress tensor from MDI engine, convert to virial + // qm_virial = fix output for global QM virial + + if (virialflag) { + ierr = MDI_Send_command("all(FLERR, "MDI: all(FLERR, "MDI: virial + // multiply by volume to make it extensive + // divide by nprocs so each proc stores a portion + // this is b/c ComputePressure expects that as input from a fix + // it will do an MPI_Allreduce and divide by volume + + if (virialflag && addflag) { + double volume; + if (domain->dimension == 2) + volume = domain->xprd * domain->yprd; + else if (domain->dimension == 3) + volume = domain->xprd * domain->yprd * domain->zprd; + for (int i = 0; i < 6; i++) + virial[i] = qm_virial_symmetric[i]*volume/nprocs; + } +} + +/* ---------------------------------------------------------------------- */ + +void FixMDIQM::min_post_force(int vflag) +{ + post_force(vflag); +} + +/* ---------------------------------------------------------------------- + energy from MDI engine +------------------------------------------------------------------------- */ + +double FixMDIQM::compute_scalar() +{ + return qm_energy; +} + +/* ---------------------------------------------------------------------- + virial from MDI engine +------------------------------------------------------------------------- */ + +double FixMDIQM::compute_vector(int n) +{ + return qm_virial_symmetric[n]; +} + +/* ---------------------------------------------------------------------- + reallocate storage for local and global and atoms if needed +------------------------------------------------------------------------- */ + +void FixMDIQM::reallocate() +{ + if (atom->nlocal > maxlocal) { + maxlocal = atom->nmax; + memory->destroy(fqm); + memory->create(fqm, maxlocal, 3, "mdi:fqm"); + array_atom = fqm; + } + + if (atom->natoms > maxbuf) { + bigint nsize = atom->natoms * 3; + if (nsize > MAXSMALLINT) + error->all(FLERR, "Natoms too large to use with fix mdi/qm"); + + maxbuf = static_cast (atom->natoms); + memory->destroy(ibuf1); + memory->destroy(buf3); + memory->destroy(buf3all); + memory->create(ibuf1, maxbuf, "mdi:ibuf1"); + memory->create(ibuf1all, maxbuf, "mdi:ibuf1all"); + memory->create(buf3, 3 * maxbuf, "mdi:buf3"); + memory->create(buf3all, 3 * maxbuf, "mdi:buf3all"); + } +} + +/* ---------------------------------------------------------------------- + send LAMMPS atom types to MDI engine +------------------------------------------------------------------------- */ + +void FixMDIQM::send_types() +{ + int n = static_cast (atom->natoms); + memset(ibuf1, 0, n * sizeof(int)); + + // use local atomID to index into ordered ibuf1 + + tagint *tag = atom->tag; + int *type = atom->type; + int nlocal = atom->nlocal; + + int index; + for (int i = 0; i < nlocal; i++) { + index = static_cast(tag[i]) - 1; + ibuf1[index] = type[i]; + } + + MPI_Reduce(ibuf1, ibuf1all, n, MPI_INT, MPI_SUM, 0, world); + + int ierr = MDI_Send_command(">TYPES", mdicomm); + if (ierr) error->all(FLERR, "MDI: >TYPES command"); + ierr = MDI_Send(ibuf1all, n, MDI_INT, mdicomm); + if (ierr) error->all(FLERR, "MDI: >TYPES data"); +} + +/* ---------------------------------------------------------------------- + send elements to MDI engine = atomic numbers for each type +------------------------------------------------------------------------- */ + +void FixMDIQM::send_elements() +{ + int n = static_cast (atom->natoms); + memset(ibuf1, 0, n * sizeof(int)); + + // use local atomID to index into ordered ibuf1 + + tagint *tag = atom->tag; + int *type = atom->type; + int nlocal = atom->nlocal; + + int index; + for (int i = 0; i < nlocal; i++) { + index = static_cast(tag[i]) - 1; + ibuf1[index] = elements[type[i]]; + } + + MPI_Reduce(ibuf1, ibuf1all, n, MPI_INT, MPI_SUM, 0, world); + + int ierr = MDI_Send_command(">ELEMENTS", mdicomm); + if (ierr) error->all(FLERR, "MDI: >ELEMENTS command"); + ierr = MDI_Send(ibuf1all, n, MDI_INT, mdicomm); + if (ierr) error->all(FLERR, "MDI: >ELEMETNS data"); +} + +/* ---------------------------------------------------------------------- + send simulation box size and shape to MDI engine +------------------------------------------------------------------------- */ + +void FixMDIQM::send_box() +{ + double cell[9]; + + int ierr = MDI_Send_command(">CELL_DISPL", mdicomm); + if (ierr) error->all(FLERR, "MDI: >CELL_DISPL command"); + cell[0] = domain->boxlo[0] * lmp2mdi_length; + cell[1] = domain->boxlo[1] * lmp2mdi_length; + cell[2] = domain->boxlo[2] * lmp2mdi_length; + ierr = MDI_Send(cell, 3, MDI_DOUBLE, mdicomm); + if (ierr) error->all(FLERR, "MDI: >CELL_DISPL data"); + + ierr = MDI_Send_command(">CELL", mdicomm); + if (ierr) error->all(FLERR, "MDI: >CELL command"); + cell[0] = domain->boxhi[0] - domain->boxlo[0]; + cell[1] = 0.0; + cell[2] = 0.0; + cell[3] = domain->xy; + cell[4] = domain->boxhi[1] - domain->boxlo[1]; + cell[5] = 0.0; + cell[6] = domain->xz; + cell[7] = domain->yz; + cell[8] = domain->boxhi[2] - domain->boxlo[2]; + ierr = MDI_Send(cell, 9, MDI_DOUBLE, mdicomm); + if (ierr) error->all(FLERR, "MDI: >CELL data"); +} + +/* ---------------------------------------------------------------------- + MDI to/from LAMMPS conversion factors +------------------------------------------------------------------------- */ + +void FixMDIQM::unit_conversions() +{ + double angstrom_to_bohr, kelvin_to_hartree, ev_to_hartree, second_to_aut; + + MDI_Conversion_factor("angstrom", "bohr", &angstrom_to_bohr); + MDI_Conversion_factor("kelvin_energy", "hartree", &kelvin_to_hartree); + MDI_Conversion_factor("electron_volt", "hartree", &ev_to_hartree); + MDI_Conversion_Factor("second", "atomic_unit_of_time", &second_to_aut); + + // length units + + mdi2lmp_length = 1.0; + lmp2mdi_length = 1.0; + + if (lmpunits == REAL || lmpunits == METAL) { + lmp2mdi_length = angstrom_to_bohr; + mdi2lmp_length = 1.0 / angstrom_to_bohr; + } + + // energy units + + mdi2lmp_energy = 1.0; + lmp2mdi_energy = 1.0; + + if (lmpunits == REAL) { + lmp2mdi_energy = kelvin_to_hartree / force->boltz; + mdi2lmp_energy = force->boltz / kelvin_to_hartree; + } else if (lmpunits == METAL) { + lmp2mdi_energy = ev_to_hartree; + mdi2lmp_energy = 1.0 / ev_to_hartree; + } + + // force units = energy/length + + mdi2lmp_force = 1.0; + lmp2mdi_force = 1.0; + + if (lmpunits == REAL) { + lmp2mdi_force = (kelvin_to_hartree / force->boltz) / angstrom_to_bohr; + mdi2lmp_force = 1.0 / lmp2mdi_force; + } else if (lmpunits == METAL) { + lmp2mdi_force = ev_to_hartree / angstrom_to_bohr; + mdi2lmp_force = angstrom_to_bohr / ev_to_hartree; + } + + // pressure or stress units = force/area = energy/volume + + mdi2lmp_pressure = 1.0; + lmp2mdi_pressure = 1.0; + + if (lmpunits == REAL) { + lmp2mdi_pressure = (kelvin_to_hartree / force->boltz) / + (angstrom_to_bohr * angstrom_to_bohr * angstrom_to_bohr) / force->nktv2p; + mdi2lmp_pressure = 1.0 / lmp2mdi_pressure; + } else if (lmpunits == METAL) { + lmp2mdi_pressure = + ev_to_hartree / (angstrom_to_bohr * angstrom_to_bohr * angstrom_to_bohr) / force->nktv2p; + mdi2lmp_pressure = 1.0 / lmp2mdi_pressure; + } +} diff --git a/src/MDI/fix_mdi_aimd.h b/src/MDI/fix_mdi_qm.h similarity index 75% rename from src/MDI/fix_mdi_aimd.h rename to src/MDI/fix_mdi_qm.h index cdb7977c37..11180925b1 100644 --- a/src/MDI/fix_mdi_aimd.h +++ b/src/MDI/fix_mdi_qm.h @@ -13,42 +13,46 @@ #ifdef FIX_CLASS // clang-format off -FixStyle(mdi/aimd,FixMDIAimd); +FixStyle(mdi/qm,FixMDIQM); // clang-format on #else -#ifndef LMP_FIX_MDI_AIMD_H -#define LMP_FIX_MDI_AIMD_H +#ifndef LMP_FIX_MDI_QM_H +#define LMP_FIX_MDI_QM_H #include "fix.h" #include namespace LAMMPS_NS { -class FixMDIAimd : public Fix { +class FixMDIQM : public Fix { public: - FixMDIAimd(class LAMMPS *, int, char **); - ~FixMDIAimd(); + FixMDIQM(class LAMMPS *, int, char **); + ~FixMDIQM(); int setmask(); void init(); void setup(int); - void setup_pre_reverse(int, int); - void pre_reverse(int, int); void post_force(int); void min_post_force(int); double compute_scalar(); + double compute_vector(int); private: int nprocs; + int every,virialflag,addflag,connectflag; int plugin; + int maxlocal; + int sumflag; + int *elements; + + double qm_energy; + int lmpunits; + double qm_virial[9],qm_virial_symmetric[6]; + double **fqm; MDI_Comm mdicomm; - int eflag_caller; - double engine_energy; - int lmpunits; - // unit conversion factors double lmp2mdi_length, mdi2lmp_length; @@ -60,11 +64,15 @@ class FixMDIAimd : public Fix { // buffers for MDI comm int maxbuf; + int *ibuf1, *ibuf1all; double *buf3, *buf3all; // methods void reallocate(); + void send_types(); + void send_elements(); + void send_box(); void unit_conversions(); }; diff --git a/src/MDI/mdi_command.cpp b/src/MDI/mdi_command.cpp index 65e47e197a..42d8b2691a 100644 --- a/src/MDI/mdi_command.cpp +++ b/src/MDI/mdi_command.cpp @@ -16,13 +16,19 @@ #include "error.h" #include "mdi_engine.h" #include "mdi_plugin.h" +#include "memory.h" #include using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- - mdi command: engine or plugin + mdi command: engine or plugin or connect or exit + engine is used when LAMMPS is an MDI engine, to start listening for requests + plugin is used when LAMMPS is an MDI driver to load a plugin library + connect and exit are used when LAMMPS is an MDI driver to + (a) connect = setup comm with a stand-alone MDI engine + (b) exit = terminate comm with a stand-alone MDI engine ---------------------------------------------------------------------- */ void MDICommand::command(int narg, char **arg) @@ -31,8 +37,45 @@ void MDICommand::command(int narg, char **arg) if (strcmp(arg[0], "engine") == 0) { MDIEngine(lmp, narg - 1, &arg[1]); + } else if (strcmp(arg[0], "plugin") == 0) { MDIPlugin(lmp, narg - 1, &arg[1]); - } else - error->all(FLERR, "Illegal mdi command"); + + } else if (strcmp(arg[0], "connect") == 0) { + + if (lmp->mdicomm != nullptr) + error->all(FLERR,"MDI cannot connect to already connected engine"); + + MDI_Comm mdicomm; + MDI_Get_communicator(&mdicomm, 0); + + if (mdicomm == MDI_COMM_NULL) { + MDI_Accept_communicator(&mdicomm); + if (mdicomm == MDI_COMM_NULL) + error->all(FLERR, "MDI unable to connect to stand-alone engine"); + } else error->all(FLERR, "Cannot use mdi connect with plugin engine"); + + int nbytes = sizeof(MDI_Comm); + char *ptrcomm = (char *) memory->smalloc(nbytes,"mdi:mdicomm"); + memcpy(ptrcomm,&mdicomm,nbytes); + + lmp->mdicomm = (void *) ptrcomm; + + } else if (strcmp(arg[0], "exit") == 0) { + + if (lmp->mdicomm == nullptr) + error->all(FLERR,"MDI cannot send exit to unconnected engine"); + + MDI_Comm mdicomm; + int nbytes = sizeof(MDI_Comm); + char *ptrcomm = (char *) lmp->mdicomm; + memcpy(&mdicomm,ptrcomm,nbytes); + + int ierr = MDI_Send_command("EXIT", mdicomm); + if (ierr) error->all(FLERR, "MDI: EXIT command"); + + memory->sfree(ptrcomm); + lmp->mdicomm = nullptr; + + } else error->all(FLERR, "Illegal mdi command"); } diff --git a/src/MDI/mdi_engine.cpp b/src/MDI/mdi_engine.cpp index f2b96cb69a..91774659ff 100644 --- a/src/MDI/mdi_engine.cpp +++ b/src/MDI/mdi_engine.cpp @@ -54,6 +54,8 @@ enum { DEFAULT, MD, OPT }; // top-level MDI engine modes enum { TYPE, CHARGE, MASS, COORD, VELOCITY, FORCE, ADDFORCE }; +#define MAXELEMENT 103 // used elsewhere in MDI package + /* ---------------------------------------------------------------------- trigger LAMMPS to start acting as an MDI engine either in standalone mode or plugin mode @@ -63,17 +65,47 @@ enum { TYPE, CHARGE, MASS, COORD, VELOCITY, FORCE, ADDFORCE }; when EXIT command is received, mdi engine command exits ---------------------------------------------------------------------- */ -MDIEngine::MDIEngine(LAMMPS *_lmp, int narg, char ** /*arg*/) : Pointers(_lmp) +MDIEngine::MDIEngine(LAMMPS *_lmp, int narg, char ** arg) : Pointers(_lmp) { - if (narg) error->all(FLERR, "Illegal mdi engine command"); - // check requirements for LAMMPS to work with MDI as an engine - if (atom->tag_enable == 0) error->all(FLERR, "Cannot use MDI engine without atom IDs"); + if (atom->tag_enable == 0) error->all(FLERR, "MDI engine requires atom IDs"); if (atom->natoms && atom->tag_consecutive() == 0) error->all(FLERR, "MDI engine requires consecutive atom IDs"); + // optional args + + elements = nullptr; + + int iarg = 0; + while (iarg < narg) { + if (strcmp(arg[iarg],"elements") == 0) { + int ntypes = atom->ntypes; + delete [] elements; + elements = new int[ntypes+1]; + if (iarg+ntypes+1 > narg) error->all(FLERR,"Illegal mdi engine command"); + for (int i = 1; i <= ntypes; i++) { + elements[i] = utils::inumeric(FLERR,arg[iarg+i],false,lmp); + if (elements[i] < 0 || elements[i] > MAXELEMENT) + error->all(FLERR,"Illegal mdi engine command"); + } + iarg += ntypes+1; + } else error->all(FLERR,"Illegal mdi engine command"); + } + + // error check an MDI element does not map to multiple atom types + + if (elements) { + int ntypes = atom->ntypes; + for (int i = 1; i < ntypes; i++) + for (int j = i+1; j <= ntypes; j++) { + if (elements[i] == 0 || elements[j] == 0) continue; + if (elements[i] == elements[j]) + error->all(FLERR,"MDI engine element cannot map to multiple types"); + } + } + // confirm LAMMPS is being run as an engine int role; @@ -135,7 +167,7 @@ MDIEngine::MDIEngine(LAMMPS *_lmp, int narg, char ** /*arg*/) : Pointers(_lmp) ibuf1 = ibuf1all = nullptr; maxatom = 0; - sys_natoms = atom->natoms; + sys_natoms = static_cast (atom->natoms); reallocate(); nsteps = 0; @@ -194,6 +226,8 @@ MDIEngine::MDIEngine(LAMMPS *_lmp, int narg, char ** /*arg*/) : Pointers(_lmp) // clean up + delete[] elements; + delete[] mdicmd; delete[] node_engine; delete[] node_driver; @@ -299,6 +333,11 @@ int MDIEngine::execute_command(const char *command, MDI_Comm mdicomm) } else if (strcmp(command, ">COORDS") == 0) { receive_coords(); + } else if (strcmp(command, ">ELEMENTS") == 0) { + if (!elements) + error->all(FLERR,"MDI engine command did not define element list"); + receive_elements(); + } else if (strcmp(command, ">FORCES") == 0) { receive_double3(FORCE); @@ -323,7 +362,7 @@ int MDIEngine::execute_command(const char *command, MDI_Comm mdicomm) else receive_double3(VELOCITY); - // ----------------------------------------------- + // ----------------------------------------------- } else if (strcmp(command, "<@") == 0) { ierr = MDI_Send(node_engine, MDI_NAME_LENGTH, MDI_CHAR, mdicomm); @@ -372,9 +411,9 @@ int MDIEngine::execute_command(const char *command, MDI_Comm mdicomm) } else if (strcmp(command, "all(FLERR, "MDI: MDI engine is already performing a simulation"); @@ -419,14 +458,14 @@ int MDIEngine::execute_command(const char *command, MDI_Comm mdicomm) strncpy(node_driver, command, MDI_COMMAND_LENGTH); node_match = false; - // exit command + // exit command } else if (strcmp(command, "EXIT") == 0) { exit_command = true; - // ------------------------------------------------------- - // custom LAMMPS commands - // ------------------------------------------------------- + // ------------------------------------------------------- + // custom LAMMPS commands + // ------------------------------------------------------- } else if (strcmp(command, "NBYTES") == 0) { nbytes_command(); @@ -439,9 +478,9 @@ int MDIEngine::execute_command(const char *command, MDI_Comm mdicomm) } else if (strcmp(command, "all(FLERR, "MDI: Unknown command {} received from driver", command); @@ -479,6 +518,7 @@ void MDIEngine::mdi_commands() MDI_Register_command("@DEFAULT", ">CELL_DISPL"); MDI_Register_command("@DEFAULT", ">CHARGES"); MDI_Register_command("@DEFAULT", ">COORDS"); + MDI_Register_command("@DEFAULT", ">ELEMENTS"); MDI_Register_command("@DEFAULT", ">NATOMS"); MDI_Register_command("@DEFAULT", ">NSTEPS"); MDI_Register_command("@DEFAULT", ">TOLERANCE"); @@ -914,7 +954,7 @@ void MDIEngine::evaluate() /* ---------------------------------------------------------------------- create a new system - >CELL, >NATOMS, >TYPES, >COORDS commands are required + >CELL, >NATOMS, >TYPES or >ELEMENTS, >COORDS commands are required >CELL_DISPL, >CHARGES, >VELOCITIES commands are optional ---------------------------------------------------------------------- */ @@ -924,8 +964,8 @@ void MDIEngine::create_system() if (flag_cell == 0 || flag_natoms == 0 || flag_types == 0 || flag_coords == 0) error->all(FLERR, - "MDI create_system requires >CELL, >NATOMS, >TYPES, >COORDS " - "MDI commands"); + "MDI create_system requires >CELL, >NATOMS, " + ">TYPES or >ELEMENTS, >COORDS MDI commands"); // remove all existing atoms via delete_atoms command @@ -955,16 +995,23 @@ void MDIEngine::create_system() lammps_reset_box(lmp, boxlo, boxhi, xy, yz, xz); // invoke lib->create_atoms() + // create list of 1 to sys_natoms IDs // optionally set charges if specified by ">CHARGES" + tagint* sys_ids; + memory->create(sys_ids, sys_natoms, "mdi:sys_ids"); + for (int i = 0; i < sys_natoms; i++) sys_ids[i] = i+1; + if (flag_velocities) - lammps_create_atoms(lmp, sys_natoms, nullptr, sys_types, sys_coords, sys_velocities, nullptr, + lammps_create_atoms(lmp, sys_natoms, sys_ids, sys_types, sys_coords, sys_velocities, nullptr, 1); else - lammps_create_atoms(lmp, sys_natoms, nullptr, sys_types, sys_coords, nullptr, nullptr, 1); + lammps_create_atoms(lmp, sys_natoms, sys_ids, sys_types, sys_coords, nullptr, nullptr, 1); if (flag_charges) lammps_scatter_atoms(lmp, (char *) "q", 1, 1, sys_charges); + memory->destroy(sys_ids); + // new system update->ntimestep = 0; @@ -1153,6 +1200,38 @@ void MDIEngine::receive_coords() for (int i = 0; i < n; i++) sys_coords[i] *= mdi2lmp_length; } +/* ---------------------------------------------------------------------- + >ELEMENTS command + receive elements for each atom = atomic numbers + convert to LAMMPS atom types and store in sys_types +---------------------------------------------------------------------- */ + +void MDIEngine::receive_elements() +{ + actionflag = 0; + flag_types = 1; + int ierr = MDI_Recv(sys_types, sys_natoms, MDI_INT, mdicomm); + if (ierr) error->all(FLERR, "MDI: >ELEMENTS data"); + MPI_Bcast(sys_types, sys_natoms, MPI_INT, 0, world); + + // convert from element atomic numbers to LAMMPS atom types + // use maping provided by mdi engine command + + int ntypes = atom->ntypes; + int itype; + + for (int i = 0; i < sys_natoms; i++) { + for (itype = 1; itype <= ntypes; itype++) { + if (sys_types[i] == elements[itype]) { + sys_types[i] = itype; + break; + } + } + if (itype > ntypes) + error->all(FLERR,"MDI element not found in element list"); + } +} + /* ---------------------------------------------------------------------- >NATOMS command natoms cannot exceed 32-bit int for use with MDI @@ -1239,7 +1318,7 @@ void MDIEngine::receive_velocities() void MDIEngine::receive_double3(int which) { - int n = 3 * atom->natoms; + int n = 3 * sys_natoms; int ierr = MDI_Recv(buf3, n, MDI_DOUBLE, mdicomm); if (ierr) error->all(FLERR, "MDI: natoms * MDI_LABEL_LENGTH]; - memset(labels, ' ', atom->natoms * MDI_LABEL_LENGTH); + auto labels = new char[sys_natoms * MDI_LABEL_LENGTH]; + memset(labels, ' ', sys_natoms * MDI_LABEL_LENGTH); - memset(ibuf1, 0, atom->natoms * sizeof(int)); + memset(ibuf1, 0, sys_natoms * sizeof(int)); // use atomID to index into ordered ibuf1 @@ -1370,17 +1449,17 @@ void MDIEngine::send_labels() ibuf1[ilocal] = type[i]; } - MPI_Reduce(ibuf1, ibuf1all, atom->natoms, MPI_INT, MPI_SUM, 0, world); + MPI_Reduce(ibuf1, ibuf1all, sys_natoms, MPI_INT, MPI_SUM, 0, world); if (comm->me == 0) { - for (int iatom = 0; iatom < atom->natoms; iatom++) { + for (int iatom = 0; iatom < sys_natoms; iatom++) { std::string label = std::to_string(ibuf1all[iatom]); int label_len = std::min(int(label.length()), MDI_LABEL_LENGTH); strncpy(&labels[iatom * MDI_LABEL_LENGTH], label.c_str(), label_len); } } - int ierr = MDI_Send(labels, atom->natoms * MDI_LABEL_LENGTH, MDI_CHAR, mdicomm); + int ierr = MDI_Send(labels, sys_natoms * MDI_LABEL_LENGTH, MDI_CHAR, mdicomm); if (ierr) error->all(FLERR, "MDI: (atom->natoms); - int ierr = MDI_Send(&natoms, 1, MDI_INT, mdicomm); + int ierr = MDI_Send(&sys_natoms, 1, MDI_INT, mdicomm); if (ierr != 0) error->all(FLERR, "MDI: compute_vector(); - for (int i = 0; i < 6; i++) vtensor[i] = press->vector[i] * lmp2mdi_pressure; + vtensor_full[0] = press->vector[0] * lmp2mdi_pressure; + vtensor_full[4] = press->vector[1] * lmp2mdi_pressure; + vtensor_full[8] = press->vector[2] * lmp2mdi_pressure; + vtensor_full[1] = vtensor_full[3] = press->vector[3] * lmp2mdi_pressure; + vtensor_full[2] = vtensor_full[6] = press->vector[4] * lmp2mdi_pressure; + vtensor_full[5] = vtensor_full[7] = press->vector[5] * lmp2mdi_pressure; - int ierr = MDI_Send(vtensor, 6, MDI_DOUBLE, mdicomm); + int ierr = MDI_Send(vtensor_full, 9, MDI_DOUBLE, mdicomm); if (ierr) error->all(FLERR, "MDI: natoms * sizeof(double)); + memset(buf1, 0, sys_natoms * sizeof(double)); // use atomID to index into ordered buf1 @@ -1467,9 +1550,9 @@ void MDIEngine::send_double1(int which) } } - MPI_Reduce(buf1, buf1all, atom->natoms, MPI_DOUBLE, MPI_SUM, 0, world); + MPI_Reduce(buf1, buf1all, sys_natoms, MPI_DOUBLE, MPI_SUM, 0, world); - int ierr = MDI_Send(buf1all, atom->natoms, MDI_DOUBLE, mdicomm); + int ierr = MDI_Send(buf1all, sys_natoms, MDI_DOUBLE, mdicomm); if (ierr) error->all(FLERR, "MDI: natoms * sizeof(int)); + memset(ibuf1, 0, sys_natoms * sizeof(int)); // use atomID to index into ordered ibuf1 @@ -1498,9 +1581,9 @@ void MDIEngine::send_int1(int which) } } - MPI_Reduce(ibuf1, ibuf1all, atom->natoms, MPI_INT, MPI_SUM, 0, world); + MPI_Reduce(ibuf1, ibuf1all, sys_natoms, MPI_INT, MPI_SUM, 0, world); - int ierr = MDI_Send(ibuf1all, atom->natoms, MDI_INT, mdicomm); + int ierr = MDI_Send(ibuf1all, sys_natoms, MDI_INT, mdicomm); if (ierr) error->all(FLERR, "MDI: natoms * sizeof(double)); + memset(buf3, 0, 3 * sys_natoms * sizeof(double)); // use atomID to index into ordered buf3 @@ -1547,9 +1630,9 @@ void MDIEngine::send_double3(int which) } } - MPI_Reduce(buf3, buf3all, 3 * atom->natoms, MPI_DOUBLE, MPI_SUM, 0, world); + MPI_Reduce(buf3, buf3all, 3 * sys_natoms, MPI_DOUBLE, MPI_SUM, 0, world); - int ierr = MDI_Send(buf3all, 3 * atom->natoms, MDI_DOUBLE, mdicomm); + int ierr = MDI_Send(buf3all, 3 * sys_natoms, MDI_DOUBLE, mdicomm); if (ierr) error->all(FLERR, "MDI: MAXSMALLINT) error->all(FLERR, "Natoms too large to use with mdi engine"); + bigint nsize = (bigint) sys_natoms * 3; + if (nsize > MAXSMALLINT) error->all(FLERR, "Natoms too large to use with mdi engine"); maxatom = sys_natoms; diff --git a/src/MDI/mdi_engine.h b/src/MDI/mdi_engine.h index ea840fba02..242755e3b7 100644 --- a/src/MDI/mdi_engine.h +++ b/src/MDI/mdi_engine.h @@ -70,6 +70,8 @@ class MDIEngine : protected Pointers { int actionflag; // 1 if MD or OPTG just completed, else 0 + int *elements; + // buffers for MDI comm int maxatom; @@ -106,6 +108,7 @@ class MDIEngine : protected Pointers { void receive_cell_displ(); void receive_charges(); void receive_coords(); + void receive_elements(); void receive_natoms(); void receive_nsteps(); void receive_tolerance(); diff --git a/src/MDI/mdi_plugin.cpp b/src/MDI/mdi_plugin.cpp index 3c8e38481d..c2add38266 100644 --- a/src/MDI/mdi_plugin.cpp +++ b/src/MDI/mdi_plugin.cpp @@ -19,7 +19,6 @@ #include "mdi_plugin.h" #include "error.h" -#include "fix_mdi_aimd.h" #include "input.h" #include "modify.h" diff --git a/src/MEAM/meam.h b/src/MEAM/meam.h index 237ffed8aa..8a2f43e354 100644 --- a/src/MEAM/meam.h +++ b/src/MEAM/meam.h @@ -27,9 +27,11 @@ typedef enum { FCC, BCC, HCP, DIM, DIA, DIA3, B1, C11, L12, B2, CH4, LIN, ZIG, T class MEAM { public: MEAM(Memory *mem); - ~MEAM(); + virtual ~MEAM(); - private: + int copymode; + + protected: Memory *memory; // cutforce = force cutoff @@ -285,8 +287,8 @@ class MEAM { double *rozero, int *ibar); void meam_setup_param(int which, double value, int nindex, int *index /*index(3)*/, int *errorflag); - void meam_setup_done(double *cutmax); - void meam_dens_setup(int atom_nmax, int nall, int n_neigh); + virtual void meam_setup_done(double *cutmax); + virtual void meam_dens_setup(int atom_nmax, int nall, int n_neigh); void meam_dens_init(int i, int ntype, int *type, int *fmap, double **x, int numneigh, int *firstneigh, int numneigh_full, int *firstneigh_full, int fnoffset); void meam_dens_final(int nlocal, int eflag_either, int eflag_global, int eflag_atom, diff --git a/src/MEAM/meam_impl.cpp b/src/MEAM/meam_impl.cpp index 499a2b1520..d0d81cee88 100644 --- a/src/MEAM/meam_impl.cpp +++ b/src/MEAM/meam_impl.cpp @@ -36,6 +36,7 @@ MEAM::MEAM(Memory* mem) maxneigh = 0; scrfcn = dscrfcn = fcpair = nullptr; + copymode = 0; neltypes = 0; for (int i = 0; i < maxelt; i++) { @@ -53,6 +54,8 @@ MEAM::MEAM(Memory* mem) MEAM::~MEAM() { + if (copymode) return; + memory->destroy(this->phirar6); memory->destroy(this->phirar5); memory->destroy(this->phirar4); diff --git a/src/MEAM/pair_meam.cpp b/src/MEAM/pair_meam.cpp index 7dcb16d3f6..6cbe5c69b9 100644 --- a/src/MEAM/pair_meam.cpp +++ b/src/MEAM/pair_meam.cpp @@ -73,7 +73,10 @@ PairMEAM::PairMEAM(LAMMPS *lmp) : Pair(lmp) PairMEAM::~PairMEAM() { - delete meam_inst; + if (copymode) return; + + if (meam_inst) + delete meam_inst; if (allocated) { memory->destroy(setflag); diff --git a/src/MEAM/pair_meam.h b/src/MEAM/pair_meam.h index eea3893309..304e7eb41f 100644 --- a/src/MEAM/pair_meam.h +++ b/src/MEAM/pair_meam.h @@ -43,7 +43,7 @@ class PairMEAM : public Pair { void unpack_reverse_comm(int, int *, double *) override; double memory_usage() override; - private: + protected: class MEAM *meam_inst; double cutmax; // max cutoff for all elements int nlibelements; // # of library elements diff --git a/src/ML-PACE/pair_pace.cpp b/src/ML-PACE/pair_pace.cpp index a583ebe508..87e580b8d3 100644 --- a/src/ML-PACE/pair_pace.cpp +++ b/src/ML-PACE/pair_pace.cpp @@ -146,18 +146,8 @@ void PairPACE::compute(int eflag, int vflag) // the pointer to the list of neighbors of "i" firstneigh = list->firstneigh; - if (inum != nlocal) error->all(FLERR, "inum: {} nlocal: {} are different", inum, nlocal); - - // Aidan Thompson told RD (26 July 2019) that practically always holds: - // inum = nlocal - // i = ilist(ii) < inum - // j = jlist(jj) < nall - // neighborlist contains neighbor atoms plus skin atoms, - // skin atoms can be removed by setting skin to zero but here - // they are disregarded anyway - //determine the maximum number of neighbours - int max_jnum = -1; + int max_jnum = 0; int nei = 0; for (ii = 0; ii < list->inum; ii++) { i = ilist[ii]; @@ -190,7 +180,7 @@ void PairPACE::compute(int eflag, int vflag) try { aceimpl->ace->compute_atom(i, x, type, jnum, jlist); - } catch (exception &e) { + } catch (std::exception &e) { error->one(FLERR, e.what()); } @@ -269,7 +259,7 @@ void PairPACE::settings(int narg, char **arg) recursive = false; iarg += 1; } else if (strcmp(arg[iarg], "chunksize") == 0) { - chunksize = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + chunksize = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; } else error->all(FLERR, "Illegal pair_style command"); @@ -325,27 +315,34 @@ void PairPACE::coeff(int narg, char **arg) const int n = atom->ntypes; for (int i = 1; i <= n; i++) { - char *elemname = elemtypes[i - 1]; - int atomic_number = AtomicNumberByName_pace(elemname); - if (atomic_number == -1) error->all(FLERR, "'{}' is not a valid element\n", elemname); - - SPECIES_TYPE mu = aceimpl->basis_set->get_species_index_by_name(elemname); - if (mu != -1) { - if (comm->me == 0) - utils::logmesg(lmp, "Mapping LAMMPS atom type #{}({}) -> ACE species type #{}\n", i, - elemname, mu); - map[i] = mu; - // set up LAMMPS atom type to ACE species mapping for ace evaluator - aceimpl->ace->element_type_mapping(i) = mu; + char *elemname = arg[2 + i]; + if (strcmp(elemname, "NULL") == 0) { + // species_type=-1 value will not reach ACE Evaluator::compute_atom, + // but if it will ,then error will be thrown there + aceimpl->ace->element_type_mapping(i) = -1; + map[i] = -1; + if (comm->me == 0) utils::logmesg(lmp, "Skipping LAMMPS atom type #{}(NULL)\n", i); } else { - error->all(FLERR, "Element {} is not supported by ACE-potential from file {}", elemname, - potential_file_name); + int atomic_number = AtomicNumberByName_pace(elemname); + if (atomic_number == -1) error->all(FLERR, "'{}' is not a valid element\n", elemname); + SPECIES_TYPE mu = aceimpl->basis_set->get_species_index_by_name(elemname); + if (mu != -1) { + if (comm->me == 0) + utils::logmesg(lmp, "Mapping LAMMPS atom type #{}({}) -> ACE species type #{}\n", i, + elemname, mu); + map[i] = mu; + // set up LAMMPS atom type to ACE species mapping for ace evaluator + aceimpl->ace->element_type_mapping(i) = mu; + } else { + error->all(FLERR, "Element {} is not supported by ACE-potential from file {}", elemname, + potential_file_name); + } } } // initialize scale factor for (int i = 1; i <= n; i++) { - for (int j = i; j <= n; j++) { scale[i][j] = 1.0; } + for (int j = i; j <= n; j++) scale[i][j] = 1.0; } aceimpl->ace->set_basis(*aceimpl->basis_set, 1); diff --git a/src/ML-SNAP/compute_grid.cpp b/src/ML-SNAP/compute_grid.cpp new file mode 100644 index 0000000000..7a5ffe1e24 --- /dev/null +++ b/src/ML-SNAP/compute_grid.cpp @@ -0,0 +1,242 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "compute_grid.h" + +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "modify.h" +#include "update.h" + +#include + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +ComputeGrid::ComputeGrid(LAMMPS *lmp, int narg, char **arg) : + Compute(lmp, narg, arg), grid(nullptr), gridall(nullptr), gridlocal(nullptr) +{ + if (narg < 6) error->all(FLERR, "Illegal compute grid command"); + + array_flag = 1; + size_array_cols = 0; + size_array_rows = 0; + extarray = 0; + + int iarg0 = 3; + int iarg = iarg0; + if (strcmp(arg[iarg], "grid") == 0) { + if (iarg + 4 > narg) error->all(FLERR, "Illegal compute grid command"); + nx = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + ny = utils::inumeric(FLERR, arg[iarg + 2], false, lmp); + nz = utils::inumeric(FLERR, arg[iarg + 3], false, lmp); + if (nx <= 0 || ny <= 0 || nz <= 0) error->all(FLERR, "All grid dimensions must be positive"); + iarg += 4; + } else + error->all(FLERR, "Illegal compute grid command"); + + nargbase = iarg - iarg0; + + size_array_rows = nx * ny * nz; + size_array_cols_base = 3; + gridlocal_allocated = 0; +} + +/* ---------------------------------------------------------------------- */ + +ComputeGrid::~ComputeGrid() +{ + deallocate(); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeGrid::setup() +{ + deallocate(); + set_grid_global(); + set_grid_local(); + allocate(); +} + +/* ---------------------------------------------------------------------- + convert global array index to box coords +------------------------------------------------------------------------- */ + +void ComputeGrid::grid2x(int igrid, double *x) +{ + int iz = igrid / (nx * ny); + igrid -= iz * (nx * ny); + int iy = igrid / nx; + igrid -= iy * nx; + int ix = igrid; + + x[0] = ix * delx; + x[1] = iy * dely; + x[2] = iz * delz; + + if (triclinic) domain->lamda2x(x, x); +} + +/* ---------------------------------------------------------------------- + copy coords to global array +------------------------------------------------------------------------- */ + +void ComputeGrid::assign_coords_all() +{ + double x[3]; + for (int igrid = 0; igrid < size_array_rows; igrid++) { + grid2x(igrid, x); + gridall[igrid][0] = x[0]; + gridall[igrid][1] = x[1]; + gridall[igrid][2] = x[2]; + } +} + +/* ---------------------------------------------------------------------- + create arrays +------------------------------------------------------------------------- */ + +void ComputeGrid::allocate() +{ + // allocate arrays + + memory->create(grid, size_array_rows, size_array_cols, "grid:grid"); + memory->create(gridall, size_array_rows, size_array_cols, "grid:gridall"); + if (nxlo <= nxhi && nylo <= nyhi && nzlo <= nzhi) { + gridlocal_allocated = 1; + memory->create4d_offset(gridlocal, size_array_cols, nzlo, nzhi, nylo, nyhi, nxlo, nxhi, + "grid:gridlocal"); + } + array = gridall; +} + +/* ---------------------------------------------------------------------- + free arrays +------------------------------------------------------------------------- */ + +void ComputeGrid::deallocate() +{ + memory->destroy(grid); + memory->destroy(gridall); + if (gridlocal_allocated) { + gridlocal_allocated = 0; + memory->destroy4d_offset(gridlocal, nzlo, nylo, nxlo); + } + array = nullptr; +} + +/* ---------------------------------------------------------------------- + set global grid +------------------------------------------------------------------------- */ + +void ComputeGrid::set_grid_global() +{ + // calculate grid layout + + triclinic = domain->triclinic; + + if (triclinic == 0) { + prd = domain->prd; + boxlo = domain->boxlo; + sublo = domain->sublo; + subhi = domain->subhi; + } else { + prd = domain->prd_lamda; + boxlo = domain->boxlo_lamda; + sublo = domain->sublo_lamda; + subhi = domain->subhi_lamda; + } + + double xprd = prd[0]; + double yprd = prd[1]; + double zprd = prd[2]; + + delxinv = nx / xprd; + delyinv = ny / yprd; + delzinv = nz / zprd; + + delx = 1.0 / delxinv; + dely = 1.0 / delyinv; + delz = 1.0 / delzinv; +} + +/* ---------------------------------------------------------------------- + set local subset of grid that I own + n xyz lo/hi = 3d brick that I own (inclusive) +------------------------------------------------------------------------- */ + +void ComputeGrid::set_grid_local() +{ + // nx,ny,nz = extent of global grid + // indices into the global grid range from 0 to N-1 in each dim + // if grid point is inside my sub-domain I own it, + // this includes sub-domain lo boundary but excludes hi boundary + // ixyz lo/hi = inclusive lo/hi bounds of global grid sub-brick I own + // if proc owns no grid cells in a dim, then ilo > ihi + // if 2 procs share a boundary a grid point is exactly on, + // the 2 equality if tests insure a consistent decision + // as to which proc owns it + + double xfraclo, xfrachi, yfraclo, yfrachi, zfraclo, zfrachi; + + if (comm->layout != Comm::LAYOUT_TILED) { + xfraclo = comm->xsplit[comm->myloc[0]]; + xfrachi = comm->xsplit[comm->myloc[0] + 1]; + yfraclo = comm->ysplit[comm->myloc[1]]; + yfrachi = comm->ysplit[comm->myloc[1] + 1]; + zfraclo = comm->zsplit[comm->myloc[2]]; + zfrachi = comm->zsplit[comm->myloc[2] + 1]; + } else { + xfraclo = comm->mysplit[0][0]; + xfrachi = comm->mysplit[0][1]; + yfraclo = comm->mysplit[1][0]; + yfrachi = comm->mysplit[1][1]; + zfraclo = comm->mysplit[2][0]; + zfrachi = comm->mysplit[2][1]; + } + + nxlo = static_cast(xfraclo * nx); + if (1.0 * nxlo != xfraclo * nx) nxlo++; + nxhi = static_cast(xfrachi * nx); + if (1.0 * nxhi == xfrachi * nx) nxhi--; + + nylo = static_cast(yfraclo * ny); + if (1.0 * nylo != yfraclo * ny) nylo++; + nyhi = static_cast(yfrachi * ny); + if (1.0 * nyhi == yfrachi * ny) nyhi--; + + nzlo = static_cast(zfraclo * nz); + if (1.0 * nzlo != zfraclo * nz) nzlo++; + nzhi = static_cast(zfrachi * nz); + if (1.0 * nzhi == zfrachi * nz) nzhi--; + + ngridlocal = (nxhi - nxlo + 1) * (nyhi - nylo + 1) * (nzhi - nzlo + 1); +} + +/* ---------------------------------------------------------------------- + memory usage of local data +------------------------------------------------------------------------- */ + +double ComputeGrid::memory_usage() +{ + double nbytes = size_array_rows * size_array_cols * sizeof(double); // grid + nbytes += size_array_rows * size_array_cols * sizeof(double); // gridall + nbytes += size_array_cols * ngridlocal * sizeof(double); // gridlocal + return nbytes; +} diff --git a/src/ML-SNAP/compute_grid.h b/src/ML-SNAP/compute_grid.h new file mode 100644 index 0000000000..84b3bc4e98 --- /dev/null +++ b/src/ML-SNAP/compute_grid.h @@ -0,0 +1,58 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef LMP_COMPUTE_GRID_H +#define LMP_COMPUTE_GRID_H + +#include "compute.h" + +namespace LAMMPS_NS { + +class ComputeGrid : public Compute { + public: + ComputeGrid(class LAMMPS *, int, char **); + ~ComputeGrid() override; + void setup() override; + void compute_array() override = 0; + + double memory_usage() override; + + protected: + int nx, ny, nz; // global grid dimensions + int nxlo, nxhi, nylo, nyhi, nzlo, nzhi; // local grid bounds, inclusive + int ngridlocal; // number of local grid points + int nvalues; // number of values per grid point + double **grid; // global grid + double **gridall; // global grid summed over procs + double ****gridlocal; // local grid + int triclinic; // triclinic flag + double *boxlo, *prd; // box info (units real/ortho or reduced/tri) + double *sublo, *subhi; // subdomain info (units real/ortho or reduced/tri) + double delxinv, delyinv, delzinv; // inverse grid spacing + double delx, dely, delz; // grid spacing + int nargbase; // number of base class args + double cutmax; // largest cutoff distance + int size_array_cols_base; // number of columns used for coords, etc. + int gridlocal_allocated; // shows if gridlocal allocated + + void allocate(); // create arrays + void deallocate(); // free arrays + void grid2x(int, double *); // convert grid point to coord + void assign_coords_all(); // assign coords for global grid + void set_grid_global(); // set global grid + void set_grid_local(); // set bounds for local grid +}; + +} // namespace LAMMPS_NS + +#endif diff --git a/src/ML-SNAP/compute_grid_local.cpp b/src/ML-SNAP/compute_grid_local.cpp new file mode 100644 index 0000000000..48714962ac --- /dev/null +++ b/src/ML-SNAP/compute_grid_local.cpp @@ -0,0 +1,270 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "compute_grid_local.h" + +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "modify.h" +#include "update.h" + +#include + +// For the subdomain test below; grid-points and subdomain boundaries +// sometimes differ by minimal amounts (in the order of 2e-17). +static constexpr double EPSILON = 1.0e-10; + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +ComputeGridLocal::ComputeGridLocal(LAMMPS *lmp, int narg, char **arg) : + Compute(lmp, narg, arg), alocal(nullptr) +{ + if (narg < 6) error->all(FLERR, "Illegal compute grid/local command"); + + local_flag = 1; + size_local_cols = 0; + size_local_rows = 0; + extarray = 0; + + int iarg0 = 3; + int iarg = iarg0; + if (strcmp(arg[iarg], "grid") == 0) { + if (iarg + 4 > narg) error->all(FLERR, "Illegal compute grid/local command"); + nx = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + ny = utils::inumeric(FLERR, arg[iarg + 2], false, lmp); + nz = utils::inumeric(FLERR, arg[iarg + 3], false, lmp); + if (nx <= 0 || ny <= 0 || nz <= 0) + error->all(FLERR, "All grid/local dimensions must be positive"); + iarg += 4; + } else + error->all(FLERR, "Illegal compute grid/local command"); + + nargbase = iarg - iarg0; + + size_local_cols_base = 6; + gridlocal_allocated = 0; +} + +/* ---------------------------------------------------------------------- */ + +ComputeGridLocal::~ComputeGridLocal() +{ + deallocate(); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeGridLocal::setup() +{ + deallocate(); + set_grid_global(); + set_grid_local(); + allocate(); + assign_coords(); +} + +/* ---------------------------------------------------------------------- + convert global array indexes to box coords +------------------------------------------------------------------------- */ + +void ComputeGridLocal::grid2x(int ix, int iy, int iz, double *x) +{ + x[0] = ix * delx; + x[1] = iy * dely; + x[2] = iz * delz; + + if (triclinic) domain->lamda2x(x, x); +} + +/* ---------------------------------------------------------------------- + convert global array indexes to lamda coords; for orthorombic + cells defaults to grid2x. +------------------------------------------------------------------------- */ + +void ComputeGridLocal::grid2lamda(int ix, int iy, int iz, double *x) +{ + x[0] = ix * delx; + x[1] = iy * dely; + x[2] = iz * delz; +} + +/* ---------------------------------------------------------------------- + create arrays +------------------------------------------------------------------------- */ + +void ComputeGridLocal::allocate() +{ + if (nxlo <= nxhi && nylo <= nyhi && nzlo <= nzhi) { + gridlocal_allocated = 1; + memory->create(alocal, size_local_rows, size_local_cols, "compute/grid/local:alocal"); + array_local = alocal; + } +} + +/* ---------------------------------------------------------------------- + free arrays +------------------------------------------------------------------------- */ + +void ComputeGridLocal::deallocate() +{ + if (gridlocal_allocated) { + gridlocal_allocated = 0; + memory->destroy(alocal); + } + array_local = nullptr; +} + +/* ---------------------------------------------------------------------- + set global grid +------------------------------------------------------------------------- */ + +void ComputeGridLocal::set_grid_global() +{ + // calculate grid layout + + triclinic = domain->triclinic; + + if (triclinic == 0) { + prd = domain->prd; + boxlo = domain->boxlo; + sublo = domain->sublo; + subhi = domain->subhi; + } else { + prd = domain->prd_lamda; + boxlo = domain->boxlo_lamda; + sublo = domain->sublo_lamda; + subhi = domain->subhi_lamda; + } + + double xprd = prd[0]; + double yprd = prd[1]; + double zprd = prd[2]; + + delxinv = nx / xprd; + delyinv = ny / yprd; + delzinv = nz / zprd; + + delx = 1.0 / delxinv; + dely = 1.0 / delyinv; + delz = 1.0 / delzinv; +} + +/* ---------------------------------------------------------------------- + set local subset of grid that I own + n xyz lo/hi = 3d brick that I own (inclusive) +------------------------------------------------------------------------- */ + +void ComputeGridLocal::set_grid_local() +{ + // nx,ny,nz = extent of global grid + // indices into the global grid range from 0 to N-1 in each dim + // if grid point is inside my sub-domain I own it, + // this includes sub-domain lo boundary but excludes hi boundary + // ixyz lo/hi = inclusive lo/hi bounds of global grid sub-brick I own + // if proc owns no grid cells in a dim, then ilo > ihi + // if 2 procs share a boundary a grid point is exactly on, + // the 2 equality if tests insure a consistent decision + // as to which proc owns it + + double xfraclo, xfrachi, yfraclo, yfrachi, zfraclo, zfrachi; + + if (comm->layout != Comm::LAYOUT_TILED) { + xfraclo = comm->xsplit[comm->myloc[0]]; + xfrachi = comm->xsplit[comm->myloc[0] + 1]; + yfraclo = comm->ysplit[comm->myloc[1]]; + yfrachi = comm->ysplit[comm->myloc[1] + 1]; + zfraclo = comm->zsplit[comm->myloc[2]]; + zfrachi = comm->zsplit[comm->myloc[2] + 1]; + } else { + xfraclo = comm->mysplit[0][0]; + xfrachi = comm->mysplit[0][1]; + yfraclo = comm->mysplit[1][0]; + yfrachi = comm->mysplit[1][1]; + zfraclo = comm->mysplit[2][0]; + zfrachi = comm->mysplit[2][1]; + } + + nxlo = static_cast(xfraclo * nx); + if (1.0 * nxlo != xfraclo * nx) nxlo++; + nxhi = static_cast(xfrachi * nx); + if (1.0 * nxhi == xfrachi * nx) nxhi--; + + nylo = static_cast(yfraclo * ny); + if (1.0 * nylo != yfraclo * ny) nylo++; + nyhi = static_cast(yfrachi * ny); + if (1.0 * nyhi == yfrachi * ny) nyhi--; + + nzlo = static_cast(zfraclo * nz); + if (1.0 * nzlo != zfraclo * nz) nzlo++; + nzhi = static_cast(zfrachi * nz); + if (1.0 * nzhi == zfrachi * nz) nzhi--; + + size_local_rows = (nxhi - nxlo + 1) * (nyhi - nylo + 1) * (nzhi - nzlo + 1); +} + +/* ---------------------------------------------------------------------- + copy coords to local array +------------------------------------------------------------------------- */ + +void ComputeGridLocal::assign_coords() +{ + int igrid = 0; + for (int iz = nzlo; iz <= nzhi; iz++) + for (int iy = nylo; iy <= nyhi; iy++) + for (int ix = nxlo; ix <= nxhi; ix++) { + alocal[igrid][0] = ix; + alocal[igrid][1] = iy; + alocal[igrid][2] = iz; + double xgrid[3]; + + // for triclinic: create gridpoint in lamda coordinates and transform after check. + // for orthorombic: create gridpoint in box coordinates. + + if (triclinic) + grid2lamda(ix, iy, iz, xgrid); + else + grid2x(ix, iy, iz, xgrid); + + // ensure gridpoint is not strictly outside subdomain + + if ((sublo[0] - xgrid[0]) > EPSILON || (xgrid[0] - subhi[0]) > EPSILON || + (sublo[1] - xgrid[1]) > EPSILON || (xgrid[1] - subhi[1]) > EPSILON || + (sublo[2] - xgrid[2]) > EPSILON || (xgrid[2] - subhi[2]) > EPSILON) + error->one(FLERR, "Invalid gridpoint position in compute grid/local"); + + // convert lamda to x, y, z, after sudomain check + + if (triclinic) domain->lamda2x(xgrid, xgrid); + + alocal[igrid][3] = xgrid[0]; + alocal[igrid][4] = xgrid[1]; + alocal[igrid][5] = xgrid[2]; + igrid++; + } +} + +/* ---------------------------------------------------------------------- + memory usage of local data +------------------------------------------------------------------------- */ + +double ComputeGridLocal::memory_usage() +{ + int nbytes = size_local_rows * size_local_cols * sizeof(double); // gridlocal + return nbytes; +} diff --git a/src/ML-SNAP/compute_grid_local.h b/src/ML-SNAP/compute_grid_local.h new file mode 100644 index 0000000000..5bc6f2082a --- /dev/null +++ b/src/ML-SNAP/compute_grid_local.h @@ -0,0 +1,56 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef LMP_COMPUTE_GRID_LOCAL_H +#define LMP_COMPUTE_GRID_LOCAL_H + +#include "compute.h" + +namespace LAMMPS_NS { + +class ComputeGridLocal : public Compute { + public: + ComputeGridLocal(class LAMMPS *, int, char **); + ~ComputeGridLocal() override; + void setup() override; + void compute_local() override = 0; + + double memory_usage() override; + + protected: + int nx, ny, nz; // global grid dimensions + int nxlo, nxhi, nylo, nyhi, nzlo, nzhi; // local grid bounds, inclusive + int nvalues; // number of values per grid point + double **alocal; // pointer to Compute::array_local + int triclinic; // triclinic flag + double *boxlo, *prd; // box info (units real/ortho or reduced/tri) + double *sublo, *subhi; // subdomain info (units real/ortho or reduced/tri) + double delxinv, delyinv, delzinv; // inverse grid spacing + double delx, dely, delz; // grid spacing + int nargbase; // number of base class args + double cutmax; // largest cutoff distance + int size_local_cols_base; // number of columns used for coords, etc. + int gridlocal_allocated; // shows if gridlocal allocated + + void allocate(); // create arrays + void deallocate(); // free arrays + void grid2x(int, int, int, double *); // convert global indices to coordinates + void grid2lamda(int, int, int, double *); // convert global indices to lamda coordinates + void set_grid_global(); // set global grid + void set_grid_local(); // set bounds for local grid + void assign_coords(); // assign coords for grid +}; + +} // namespace LAMMPS_NS + +#endif diff --git a/src/ML-SNAP/compute_sna_atom.cpp b/src/ML-SNAP/compute_sna_atom.cpp index 5f24ebeaa6..1d2190d50d 100644 --- a/src/ML-SNAP/compute_sna_atom.cpp +++ b/src/ML-SNAP/compute_sna_atom.cpp @@ -35,20 +35,21 @@ ComputeSNAAtom::ComputeSNAAtom(LAMMPS *lmp, int narg, char **arg) : radelem(nullptr), wjelem(nullptr), sinnerelem(nullptr), dinnerelem(nullptr) { - double rmin0, rfac0; + // begin code common to all SNAP computes + + double rfac0, rmin0; int twojmax, switchflag, bzeroflag, bnormflag, wselfallflag; int ntypes = atom->ntypes; - int nargmin = 6+2*ntypes; + int nargmin = 6 + 2 * ntypes; - if (narg < nargmin) error->all(FLERR,"Illegal compute sna/atom command"); + if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style); // default values rmin0 = 0.0; switchflag = 1; bzeroflag = 1; - bnormflag = 0; quadraticflag = 0; chemflag = 0; bnormflag = 0; @@ -56,32 +57,34 @@ ComputeSNAAtom::ComputeSNAAtom(LAMMPS *lmp, int narg, char **arg) : switchinnerflag = 0; nelements = 1; - // offset by 1 to match up with types + // process required arguments - memory->create(radelem,ntypes+1,"sna/atom:radelem"); - memory->create(wjelem,ntypes+1,"sna/atom:wjelem"); + memory->create(radelem, ntypes + 1, "sna/atom:radelem"); // offset by 1 to match up with types + memory->create(wjelem, ntypes + 1, "sna/atom:wjelem"); - rcutfac = atof(arg[3]); - rfac0 = atof(arg[4]); - twojmax = atoi(arg[5]); + rcutfac = utils::numeric(FLERR, arg[3], false, lmp); + rfac0 = utils::numeric(FLERR, arg[4], false, lmp); + twojmax = utils::inumeric(FLERR, arg[5], false, lmp); for (int i = 0; i < ntypes; i++) - radelem[i+1] = atof(arg[6+i]); + radelem[i + 1] = + utils::numeric(FLERR, arg[6 + i], false, lmp); for (int i = 0; i < ntypes; i++) - wjelem[i+1] = atof(arg[6+ntypes+i]); + wjelem[i + 1] = + utils::numeric(FLERR, arg[6 + ntypes + i], false, lmp); // construct cutsq double cut; cutmax = 0.0; - memory->create(cutsq,ntypes+1,ntypes+1,"sna/atom:cutsq"); + memory->create(cutsq, ntypes + 1, ntypes + 1, "sna/atom:cutsq"); for (int i = 1; i <= ntypes; i++) { - cut = 2.0*radelem[i]*rcutfac; + cut = 2.0 * radelem[i] * rcutfac; if (cut > cutmax) cutmax = cut; - cutsq[i][i] = cut*cut; - for (int j = i+1; j <= ntypes; j++) { - cut = (radelem[i]+radelem[j])*rcutfac; - cutsq[i][j] = cutsq[j][i] = cut*cut; + cutsq[i][i] = cut * cut; + for (int j = i + 1; j <= ntypes; j++) { + cut = (radelem[i] + radelem[j]) * rcutfac; + cutsq[i][j] = cutsq[j][i] = cut * cut; } } @@ -95,89 +98,87 @@ ComputeSNAAtom::ComputeSNAAtom(LAMMPS *lmp, int narg, char **arg) : int iarg = nargmin; while (iarg < narg) { - if (strcmp(arg[iarg],"rmin0") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute sna/atom command"); - rmin0 = atof(arg[iarg+1]); + if (strcmp(arg[iarg], "rmin0") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + rmin0 = utils::numeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"switchflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute sna/atom command"); - switchflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "switchflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + switchflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"bzeroflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute sna/atom command"); - bzeroflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "bzeroflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bzeroflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"quadraticflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute sna/atom command"); - quadraticflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "quadraticflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + quadraticflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"chem") == 0) { - if (iarg+2+ntypes > narg) - error->all(FLERR,"Illegal compute sna/atom command"); + } else if (strcmp(arg[iarg], "chem") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); chemflag = 1; - memory->create(map,ntypes+1,"compute_sna_atom:map"); - nelements = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + memory->create(map, ntypes + 1, "compute_sna_grid:map"); + nelements = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); for (int i = 0; i < ntypes; i++) { - int jelem = utils::inumeric(FLERR,arg[iarg+2+i],false,lmp); - if (jelem < 0 || jelem >= nelements) - error->all(FLERR,"Illegal compute sna/atom command"); - map[i+1] = jelem; + int jelem = utils::inumeric(FLERR, arg[iarg + 2 + i], false, lmp); + if (jelem < 0 || jelem >= nelements) error->all(FLERR, "Illegal compute {} command", style); + map[i + 1] = jelem; } - iarg += 2+ntypes; - } else if (strcmp(arg[iarg],"bnormflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute sna/atom command"); - bnormflag = atoi(arg[iarg+1]); + iarg += 2 + ntypes; + } else if (strcmp(arg[iarg], "bnormflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bnormflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"wselfallflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute sna/atom command"); - wselfallflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "wselfallflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + wselfallflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"switchinnerflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute sna/atom command"); - switchinnerflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "switchinnerflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + switchinnerflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"sinner") == 0) { + } else if (strcmp(arg[iarg], "sinner") == 0) { iarg++; - if (iarg+ntypes > narg) - error->all(FLERR,"Illegal compute sna/atom command"); - memory->create(sinnerelem,ntypes+1,"sna/atom:sinnerelem"); + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(sinnerelem, ntypes + 1, "snap:sinnerelem"); for (int i = 0; i < ntypes; i++) - sinnerelem[i+1] = utils::numeric(FLERR,arg[iarg+i],false,lmp); + sinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); sinnerflag = 1; iarg += ntypes; - } else if (strcmp(arg[iarg],"dinner") == 0) { + } else if (strcmp(arg[iarg], "dinner") == 0) { iarg++; - if (iarg+ntypes > narg) - error->all(FLERR,"Illegal compute sna/atom command"); - memory->create(dinnerelem,ntypes+1,"sna/atom:dinnerelem"); + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(dinnerelem, ntypes + 1, "snap:dinnerelem"); for (int i = 0; i < ntypes; i++) - dinnerelem[i+1] = utils::numeric(FLERR,arg[iarg+i],false,lmp); + dinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); dinnerflag = 1; iarg += ntypes; - } else error->all(FLERR,"Illegal compute sna/atom command"); + } else + error->all(FLERR, "Illegal compute {} command", style); } if (switchinnerflag && !(sinnerflag && dinnerflag)) - error->all(FLERR,"Illegal compute sna/atom command: switchinnerflag = 1, missing sinner/dinner keyword"); + error->all( + FLERR, + "Illegal compute {} command: switchinnerflag = 1, missing sinner/dinner keyword", + style); if (!switchinnerflag && (sinnerflag || dinnerflag)) - error->all(FLERR,"Illegal compute sna/atom command: switchinnerflag = 0, unexpected sinner/dinner keyword"); + error->all( + FLERR, + "Illegal compute {} command: switchinnerflag = 0, unexpected sinner/dinner keyword", + style); - snaptr = new SNA(lmp, rfac0, twojmax, - rmin0, switchflag, bzeroflag, - chemflag, bnormflag, wselfallflag, - nelements, switchinnerflag); + snaptr = new SNA(lmp, rfac0, twojmax, rmin0, switchflag, bzeroflag, chemflag, bnormflag, + wselfallflag, nelements, switchinnerflag); ncoeff = snaptr->ncoeff; - size_peratom_cols = ncoeff; - if (quadraticflag) size_peratom_cols += (ncoeff*(ncoeff+1))/2; + nvalues = ncoeff; + if (quadraticflag) nvalues += (ncoeff * (ncoeff + 1)) / 2; + + // end code common to all SNAP computes + + size_peratom_cols = nvalues; peratom_flag = 1; nmax = 0; diff --git a/src/ML-SNAP/compute_sna_atom.h b/src/ML-SNAP/compute_sna_atom.h index 7d1ebfa2f8..059062670f 100644 --- a/src/ML-SNAP/compute_sna_atom.h +++ b/src/ML-SNAP/compute_sna_atom.h @@ -50,6 +50,7 @@ class ComputeSNAAtom : public Compute { class SNA *snaptr; double cutmax; int quadraticflag; + int nvalues; }; } // namespace LAMMPS_NS diff --git a/src/ML-SNAP/compute_sna_grid.cpp b/src/ML-SNAP/compute_sna_grid.cpp new file mode 100644 index 0000000000..497390f99a --- /dev/null +++ b/src/ML-SNAP/compute_sna_grid.cpp @@ -0,0 +1,320 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "compute_sna_grid.h" + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "modify.h" +#include "sna.h" +#include "update.h" + +#include +#include + +using namespace LAMMPS_NS; + +ComputeSNAGrid::ComputeSNAGrid(LAMMPS *lmp, int narg, char **arg) : + ComputeGrid(lmp, narg, arg), cutsq(nullptr), radelem(nullptr), wjelem(nullptr) +{ + // skip over arguments used by base class + // so that argument positions are identical to + // regular per-atom compute + + arg += nargbase; + narg -= nargbase; + + // begin code common to all SNAP computes + + double rfac0, rmin0; + int twojmax, switchflag, bzeroflag, bnormflag, wselfallflag; + + int ntypes = atom->ntypes; + int nargmin = 6 + 2 * ntypes; + + if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style); + + // default values + + rmin0 = 0.0; + switchflag = 1; + bzeroflag = 1; + quadraticflag = 0; + chemflag = 0; + bnormflag = 0; + wselfallflag = 0; + switchinnerflag = 0; + nelements = 1; + + // process required arguments + + memory->create(radelem, ntypes + 1, "sna/atom:radelem"); // offset by 1 to match up with types + memory->create(wjelem, ntypes + 1, "sna/atom:wjelem"); + + rcutfac = utils::numeric(FLERR, arg[3], false, lmp); + rfac0 = utils::numeric(FLERR, arg[4], false, lmp); + twojmax = utils::inumeric(FLERR, arg[5], false, lmp); + + for (int i = 0; i < ntypes; i++) radelem[i + 1] = utils::numeric(FLERR, arg[6 + i], false, lmp); + for (int i = 0; i < ntypes; i++) + wjelem[i + 1] = utils::numeric(FLERR, arg[6 + ntypes + i], false, lmp); + + // construct cutsq + + double cut; + cutmax = 0.0; + memory->create(cutsq, ntypes + 1, ntypes + 1, "sna/atom:cutsq"); + for (int i = 1; i <= ntypes; i++) { + cut = 2.0 * radelem[i] * rcutfac; + if (cut > cutmax) cutmax = cut; + cutsq[i][i] = cut * cut; + for (int j = i + 1; j <= ntypes; j++) { + cut = (radelem[i] + radelem[j]) * rcutfac; + cutsq[i][j] = cutsq[j][i] = cut * cut; + } + } + + // set local input checks + + int sinnerflag = 0; + int dinnerflag = 0; + + // process optional args + + int iarg = nargmin; + + while (iarg < narg) { + if (strcmp(arg[iarg], "rmin0") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + rmin0 = utils::numeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "switchflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + switchflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "bzeroflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bzeroflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "quadraticflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + quadraticflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "chem") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + chemflag = 1; + memory->create(map, ntypes + 1, "compute_sna_grid:map"); + nelements = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + for (int i = 0; i < ntypes; i++) { + int jelem = utils::inumeric(FLERR, arg[iarg + 2 + i], false, lmp); + if (jelem < 0 || jelem >= nelements) error->all(FLERR, "Illegal compute {} command", style); + map[i + 1] = jelem; + } + iarg += 2 + ntypes; + } else if (strcmp(arg[iarg], "bnormflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bnormflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "wselfallflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + wselfallflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "switchinnerflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + switchinnerflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "sinner") == 0) { + iarg++; + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(sinnerelem, ntypes + 1, "snap:sinnerelem"); + for (int i = 0; i < ntypes; i++) + sinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); + sinnerflag = 1; + iarg += ntypes; + } else if (strcmp(arg[iarg], "dinner") == 0) { + iarg++; + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(dinnerelem, ntypes + 1, "snap:dinnerelem"); + for (int i = 0; i < ntypes; i++) + dinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); + dinnerflag = 1; + iarg += ntypes; + } else + error->all(FLERR, "Illegal compute {} command", style); + } + + if (switchinnerflag && !(sinnerflag && dinnerflag)) + error->all(FLERR, + "Illegal compute {} command: switchinnerflag = 1, missing sinner/dinner keyword", + style); + + if (!switchinnerflag && (sinnerflag || dinnerflag)) + error->all(FLERR, + "Illegal compute {} command: switchinnerflag = 0, unexpected sinner/dinner keyword", + style); + + snaptr = new SNA(lmp, rfac0, twojmax, rmin0, switchflag, bzeroflag, chemflag, bnormflag, + wselfallflag, nelements, switchinnerflag); + + ncoeff = snaptr->ncoeff; + nvalues = ncoeff; + if (quadraticflag) nvalues += (ncoeff * (ncoeff + 1)) / 2; + + // end code common to all SNAP computes + + size_array_cols = size_array_cols_base + nvalues; + array_flag = 1; +} + +/* ---------------------------------------------------------------------- */ + +ComputeSNAGrid::~ComputeSNAGrid() +{ + memory->destroy(radelem); + memory->destroy(wjelem); + memory->destroy(cutsq); + delete snaptr; + + if (chemflag) memory->destroy(map); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeSNAGrid::init() +{ + if ((modify->get_compute_by_style("^sna/grid$").size() > 1) && (comm->me == 0)) + error->warning(FLERR, "More than one instance of compute sna/grid"); + snaptr->init(); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeSNAGrid::compute_array() +{ + invoked_array = update->ntimestep; + + // compute sna for each gridpoint + + double **const x = atom->x; + const int *const mask = atom->mask; + int *const type = atom->type; + const int ntotal = atom->nlocal + atom->nghost; + + // insure rij, inside, and typej are of size jnum + + snaptr->grow_rij(ntotal); + + for (int iz = nzlo; iz <= nzhi; iz++) + for (int iy = nylo; iy <= nyhi; iy++) + for (int ix = nxlo; ix <= nxhi; ix++) { + double xgrid[3]; + const int igrid = iz * (nx * ny) + iy * nx + ix; + grid2x(igrid, xgrid); + const double xtmp = xgrid[0]; + const double ytmp = xgrid[1]; + const double ztmp = xgrid[2]; + + // currently, all grid points are type 1 + // not clear what a better choice would be + + const int itype = 1; + int ielem = 0; + if (chemflag) ielem = map[itype]; + + // rij[][3] = displacements between atom I and those neighbors + // inside = indices of neighbors of I within cutoff + // typej = types of neighbors of I within cutoff + + int ninside = 0; + for (int j = 0; j < ntotal; j++) { + + // check that j is in compute group + + if (!(mask[j] & groupbit)) continue; + + const double delx = xtmp - x[j][0]; + const double dely = ytmp - x[j][1]; + const double delz = ztmp - x[j][2]; + const double rsq = delx * delx + dely * dely + delz * delz; + int jtype = type[j]; + int jelem = 0; + if (chemflag) jelem = map[jtype]; + + if (rsq < cutsq[jtype][jtype] && rsq > 1e-20) { + snaptr->rij[ninside][0] = delx; + snaptr->rij[ninside][1] = dely; + snaptr->rij[ninside][2] = delz; + snaptr->inside[ninside] = j; + snaptr->wj[ninside] = wjelem[jtype]; + snaptr->rcutij[ninside] = 2.0 * radelem[jtype] * rcutfac; + if (switchinnerflag) { + snaptr->sinnerij[ninside] = sinnerelem[jelem]; + snaptr->dinnerij[ninside] = dinnerelem[jelem]; + } + if (chemflag) snaptr->element[ninside] = jelem; + ninside++; + } + } + + snaptr->compute_ui(ninside, ielem); + snaptr->compute_zi(); + snaptr->compute_bi(ielem); + + // linear contributions + + for (int icoeff = 0; icoeff < ncoeff; icoeff++) + gridlocal[size_array_cols_base + icoeff][iz][iy][ix] = snaptr->blist[icoeff]; + + // quadratic contributions + + if (quadraticflag) { + int ncount = ncoeff; + for (int icoeff = 0; icoeff < ncoeff; icoeff++) { + double bveci = snaptr->blist[icoeff]; + gridlocal[size_array_cols_base + ncount++][iz][iy][ix] = 0.5 * bveci * bveci; + for (int jcoeff = icoeff + 1; jcoeff < ncoeff; jcoeff++) + gridlocal[size_array_cols_base + ncount++][iz][iy][ix] = + bveci * snaptr->blist[jcoeff]; + } + } + } + + memset(&grid[0][0], 0, size_array_rows * size_array_cols * sizeof(double)); + + for (int iz = nzlo; iz <= nzhi; iz++) + for (int iy = nylo; iy <= nyhi; iy++) + for (int ix = nxlo; ix <= nxhi; ix++) { + const int igrid = iz * (nx * ny) + iy * nx + ix; + for (int j = 0; j < nvalues; j++) + grid[igrid][size_array_cols_base + j] = gridlocal[size_array_cols_base + j][iz][iy][ix]; + } + MPI_Allreduce(&grid[0][0], &gridall[0][0], size_array_rows * size_array_cols, MPI_DOUBLE, MPI_SUM, + world); + assign_coords_all(); +} + +/* ---------------------------------------------------------------------- + memory usage +------------------------------------------------------------------------- */ + +double ComputeSNAGrid::memory_usage() +{ + double nbytes = snaptr->memory_usage(); // SNA object + int n = atom->ntypes + 1; + nbytes += (double) n * sizeof(int); // map + + return nbytes; +} diff --git a/src/ML-SNAP/compute_sna_grid.h b/src/ML-SNAP/compute_sna_grid.h new file mode 100644 index 0000000000..839003dc2e --- /dev/null +++ b/src/ML-SNAP/compute_sna_grid.h @@ -0,0 +1,54 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef COMPUTE_CLASS +// clang-format off +ComputeStyle(sna/grid,ComputeSNAGrid); +// clang-format on +#else + +#ifndef LMP_COMPUTE_SNA_GRID_H +#define LMP_COMPUTE_SNA_GRID_H + +#include "compute_grid.h" + +namespace LAMMPS_NS { + +class ComputeSNAGrid : public ComputeGrid { + public: + ComputeSNAGrid(class LAMMPS *, int, char **); + ~ComputeSNAGrid() override; + void init() override; + void compute_array() override; + double memory_usage() override; + + private: + int ncoeff; + double **cutsq; + double rcutfac; + double *radelem; + double *wjelem; + int *map; // map types to [0,nelements) + int nelements, chemflag; + int switchinnerflag; + double *sinnerelem; + double *dinnerelem; + class SNA *snaptr; + double cutmax; + int quadraticflag; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/ML-SNAP/compute_sna_grid_local.cpp b/src/ML-SNAP/compute_sna_grid_local.cpp new file mode 100644 index 0000000000..76fe03a03b --- /dev/null +++ b/src/ML-SNAP/compute_sna_grid_local.cpp @@ -0,0 +1,306 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "compute_sna_grid_local.h" + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "modify.h" +#include "sna.h" +#include "update.h" + +#include +#include + +using namespace LAMMPS_NS; + +ComputeSNAGridLocal::ComputeSNAGridLocal(LAMMPS *lmp, int narg, char **arg) : + ComputeGridLocal(lmp, narg, arg), cutsq(nullptr), radelem(nullptr), wjelem(nullptr) +{ + // skip over arguments used by base class + // so that argument positions are identical to + // regular per-atom compute + + arg += nargbase; + narg -= nargbase; + + // begin code common to all SNAP computes + + double rfac0, rmin0; + int twojmax, switchflag, bzeroflag, bnormflag, wselfallflag; + + int ntypes = atom->ntypes; + int nargmin = 6 + 2 * ntypes; + + if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style); + + // default values + + rmin0 = 0.0; + switchflag = 1; + bzeroflag = 1; + quadraticflag = 0; + chemflag = 0; + bnormflag = 0; + wselfallflag = 0; + switchinnerflag = 0; + nelements = 1; + + // process required arguments + + memory->create(radelem, ntypes + 1, "sna/atom:radelem"); // offset by 1 to match up with types + memory->create(wjelem, ntypes + 1, "sna/atom:wjelem"); + + rcutfac = utils::numeric(FLERR, arg[3], false, lmp); + rfac0 = utils::numeric(FLERR, arg[4], false, lmp); + twojmax = utils::inumeric(FLERR, arg[5], false, lmp); + + for (int i = 0; i < ntypes; i++) radelem[i + 1] = utils::numeric(FLERR, arg[6 + i], false, lmp); + for (int i = 0; i < ntypes; i++) + wjelem[i + 1] = utils::numeric(FLERR, arg[6 + ntypes + i], false, lmp); + + // construct cutsq + + double cut; + cutmax = 0.0; + memory->create(cutsq, ntypes + 1, ntypes + 1, "sna/atom:cutsq"); + for (int i = 1; i <= ntypes; i++) { + cut = 2.0 * radelem[i] * rcutfac; + if (cut > cutmax) cutmax = cut; + cutsq[i][i] = cut * cut; + for (int j = i + 1; j <= ntypes; j++) { + cut = (radelem[i] + radelem[j]) * rcutfac; + cutsq[i][j] = cutsq[j][i] = cut * cut; + } + } + + // set local input checks + + int sinnerflag = 0; + int dinnerflag = 0; + + // process optional args + + int iarg = nargmin; + + while (iarg < narg) { + if (strcmp(arg[iarg], "rmin0") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + rmin0 = utils::numeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "switchflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + switchflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "bzeroflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bzeroflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "quadraticflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + quadraticflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "chem") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + chemflag = 1; + memory->create(map, ntypes + 1, "compute_sna_grid:map"); + nelements = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + for (int i = 0; i < ntypes; i++) { + int jelem = utils::inumeric(FLERR, arg[iarg + 2 + i], false, lmp); + if (jelem < 0 || jelem >= nelements) error->all(FLERR, "Illegal compute {} command", style); + map[i + 1] = jelem; + } + iarg += 2 + ntypes; + } else if (strcmp(arg[iarg], "bnormflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bnormflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "wselfallflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + wselfallflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "switchinnerflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + switchinnerflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg], "sinner") == 0) { + iarg++; + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(sinnerelem, ntypes + 1, "snap:sinnerelem"); + for (int i = 0; i < ntypes; i++) + sinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); + sinnerflag = 1; + iarg += ntypes; + } else if (strcmp(arg[iarg], "dinner") == 0) { + iarg++; + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(dinnerelem, ntypes + 1, "snap:dinnerelem"); + for (int i = 0; i < ntypes; i++) + dinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); + dinnerflag = 1; + iarg += ntypes; + } else + error->all(FLERR, "Illegal compute {} command", style); + } + + if (switchinnerflag && !(sinnerflag && dinnerflag)) + error->all(FLERR, + "Illegal compute {} command: switchinnerflag = 1, missing sinner/dinner keyword", + style); + + if (!switchinnerflag && (sinnerflag || dinnerflag)) + error->all(FLERR, + "Illegal compute {} command: switchinnerflag = 0, unexpected sinner/dinner keyword", + style); + + snaptr = new SNA(lmp, rfac0, twojmax, rmin0, switchflag, bzeroflag, chemflag, bnormflag, + wselfallflag, nelements, switchinnerflag); + + ncoeff = snaptr->ncoeff; + nvalues = ncoeff; + if (quadraticflag) nvalues += (ncoeff * (ncoeff + 1)) / 2; + + // end code common to all SNAP computes + + size_local_cols = size_local_cols_base + nvalues; +} + +/* ---------------------------------------------------------------------- */ + +ComputeSNAGridLocal::~ComputeSNAGridLocal() +{ + memory->destroy(radelem); + memory->destroy(wjelem); + memory->destroy(cutsq); + delete snaptr; + + if (chemflag) memory->destroy(map); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeSNAGridLocal::init() +{ + if ((modify->get_compute_by_style("^sna/grid/local$").size() > 1) && (comm->me == 0)) + error->warning(FLERR, "More than one instance of compute sna/grid/local"); + snaptr->init(); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeSNAGridLocal::compute_local() +{ + invoked_local = update->ntimestep; + + // compute sna for each gridpoint + + double **const x = atom->x; + const int *const mask = atom->mask; + int *const type = atom->type; + const int ntotal = atom->nlocal + atom->nghost; + + // insure rij, inside, and typej are of size jnum + + snaptr->grow_rij(ntotal); + + int igrid = 0; + for (int iz = nzlo; iz <= nzhi; iz++) + for (int iy = nylo; iy <= nyhi; iy++) + for (int ix = nxlo; ix <= nxhi; ix++) { + double xgrid[3]; + grid2x(ix, iy, iz, xgrid); + const double xtmp = xgrid[0]; + const double ytmp = xgrid[1]; + const double ztmp = xgrid[2]; + + // currently, all grid points are type 1 + // not clear what a better choice would be + + const int itype = 1; + int ielem = 0; + if (chemflag) ielem = map[itype]; + + // rij[][3] = displacements between atom I and those neighbors + // inside = indices of neighbors of I within cutoff + // typej = types of neighbors of I within cutoff + + int ninside = 0; + for (int j = 0; j < ntotal; j++) { + + // check that j is in compute group + + if (!(mask[j] & groupbit)) continue; + + const double delx = xtmp - x[j][0]; + const double dely = ytmp - x[j][1]; + const double delz = ztmp - x[j][2]; + const double rsq = delx * delx + dely * dely + delz * delz; + int jtype = type[j]; + int jelem = 0; + if (chemflag) jelem = map[jtype]; + if (rsq < cutsq[jtype][jtype] && rsq > 1e-20) { + snaptr->rij[ninside][0] = delx; + snaptr->rij[ninside][1] = dely; + snaptr->rij[ninside][2] = delz; + snaptr->inside[ninside] = j; + snaptr->wj[ninside] = wjelem[jtype]; + snaptr->rcutij[ninside] = 2.0 * radelem[jtype] * rcutfac; + if (switchinnerflag) { + snaptr->sinnerij[ninside] = sinnerelem[jelem]; + snaptr->dinnerij[ninside] = dinnerelem[jelem]; + } + if (chemflag) + snaptr->element[ninside] = jelem; // element index for multi-element snap + ninside++; + } + } + + snaptr->compute_ui(ninside, ielem); + snaptr->compute_zi(); + snaptr->compute_bi(ielem); + + // linear contributions + + for (int icoeff = 0; icoeff < ncoeff; icoeff++) + alocal[igrid][size_local_cols_base + icoeff] = snaptr->blist[icoeff]; + + // quadratic contributions + + if (quadraticflag) { + int ncount = ncoeff; + for (int icoeff = 0; icoeff < ncoeff; icoeff++) { + double bveci = snaptr->blist[icoeff]; + alocal[igrid][size_local_cols_base + ncount++] = 0.5 * bveci * bveci; + for (int jcoeff = icoeff + 1; jcoeff < ncoeff; jcoeff++) + alocal[igrid][size_local_cols_base + ncount++] = bveci * snaptr->blist[jcoeff]; + } + } + igrid++; + } +} + +/* ---------------------------------------------------------------------- + memory usage +------------------------------------------------------------------------- */ + +double ComputeSNAGridLocal::memory_usage() +{ + double nbytes = snaptr->memory_usage(); // SNA object + int n = atom->ntypes + 1; + nbytes += (double) n * sizeof(int); // map + + return nbytes; +} diff --git a/src/ML-SNAP/compute_sna_grid_local.h b/src/ML-SNAP/compute_sna_grid_local.h new file mode 100644 index 0000000000..60f93b92b0 --- /dev/null +++ b/src/ML-SNAP/compute_sna_grid_local.h @@ -0,0 +1,54 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef COMPUTE_CLASS +// clang-format off +ComputeStyle(sna/grid/local,ComputeSNAGridLocal); +// clang-format on +#else + +#ifndef LMP_COMPUTE_SNA_GRID_LOCAL_H +#define LMP_COMPUTE_SNA_GRID_LOCAL_H + +#include "compute_grid_local.h" + +namespace LAMMPS_NS { + +class ComputeSNAGridLocal : public ComputeGridLocal { + public: + ComputeSNAGridLocal(class LAMMPS *, int, char **); + ~ComputeSNAGridLocal() override; + void init() override; + void compute_local() override; + double memory_usage() override; + + private: + int ncoeff; + double **cutsq; + double rcutfac; + double *radelem; + double *wjelem; + int *map; // map types to [0,nelements) + int nelements, chemflag; + int switchinnerflag; + double *sinnerelem; + double *dinnerelem; + class SNA *snaptr; + double cutmax; + int quadraticflag; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/ML-SNAP/compute_snad_atom.cpp b/src/ML-SNAP/compute_snad_atom.cpp index 838d8a85c9..12839629a9 100644 --- a/src/ML-SNAP/compute_snad_atom.cpp +++ b/src/ML-SNAP/compute_snad_atom.cpp @@ -34,20 +34,22 @@ ComputeSNADAtom::ComputeSNADAtom(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), cutsq(nullptr), list(nullptr), snad(nullptr), radelem(nullptr), wjelem(nullptr), sinnerelem(nullptr), dinnerelem(nullptr) { + + // begin code common to all SNAP computes + double rfac0, rmin0; int twojmax, switchflag, bzeroflag, bnormflag, wselfallflag; int ntypes = atom->ntypes; - int nargmin = 6+2*ntypes; + int nargmin = 6 + 2 * ntypes; - if (narg < nargmin) error->all(FLERR,"Illegal compute snad/atom command"); + if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style); // default values rmin0 = 0.0; switchflag = 1; bzeroflag = 1; - bnormflag = 0; quadraticflag = 0; chemflag = 0; bnormflag = 0; @@ -57,28 +59,32 @@ ComputeSNADAtom::ComputeSNADAtom(LAMMPS *lmp, int narg, char **arg) : // process required arguments - memory->create(radelem,ntypes+1,"snad/atom:radelem"); // offset by 1 to match up with types - memory->create(wjelem,ntypes+1,"snad/atom:wjelem"); - rcutfac = atof(arg[3]); - rfac0 = atof(arg[4]); - twojmax = atoi(arg[5]); + memory->create(radelem, ntypes + 1, "sna/atom:radelem"); // offset by 1 to match up with types + memory->create(wjelem, ntypes + 1, "sna/atom:wjelem"); + + rcutfac = utils::numeric(FLERR, arg[3], false, lmp); + rfac0 = utils::numeric(FLERR, arg[4], false, lmp); + twojmax = utils::inumeric(FLERR, arg[5], false, lmp); + for (int i = 0; i < ntypes; i++) - radelem[i+1] = atof(arg[6+i]); + radelem[i + 1] = + utils::numeric(FLERR, arg[6 + i], false, lmp); for (int i = 0; i < ntypes; i++) - wjelem[i+1] = atof(arg[6+ntypes+i]); + wjelem[i + 1] = + utils::numeric(FLERR, arg[6 + ntypes + i], false, lmp); // construct cutsq double cut; cutmax = 0.0; - memory->create(cutsq,ntypes+1,ntypes+1,"snad/atom:cutsq"); + memory->create(cutsq, ntypes + 1, ntypes + 1, "sna/atom:cutsq"); for (int i = 1; i <= ntypes; i++) { - cut = 2.0*radelem[i]*rcutfac; + cut = 2.0 * radelem[i] * rcutfac; if (cut > cutmax) cutmax = cut; - cutsq[i][i] = cut*cut; - for (int j = i+1; j <= ntypes; j++) { - cut = (radelem[i]+radelem[j])*rcutfac; - cutsq[i][j] = cutsq[j][i] = cut*cut; + cutsq[i][i] = cut * cut; + for (int j = i + 1; j <= ntypes; j++) { + cut = (radelem[i] + radelem[j]) * rcutfac; + cutsq[i][j] = cutsq[j][i] = cut * cut; } } @@ -92,93 +98,89 @@ ComputeSNADAtom::ComputeSNADAtom(LAMMPS *lmp, int narg, char **arg) : int iarg = nargmin; while (iarg < narg) { - if (strcmp(arg[iarg],"rmin0") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snad/atom command"); - rmin0 = atof(arg[iarg+1]); + if (strcmp(arg[iarg], "rmin0") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + rmin0 = utils::numeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"bzeroflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snad/atom command"); - bzeroflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "switchflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + switchflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"switchflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snad/atom command"); - switchflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "bzeroflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bzeroflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"quadraticflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snad/atom command"); - quadraticflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "quadraticflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + quadraticflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"chem") == 0) { - if (iarg+2+ntypes > narg) - error->all(FLERR,"Illegal compute snad/atom command"); + } else if (strcmp(arg[iarg], "chem") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); chemflag = 1; - memory->create(map,ntypes+1,"compute_snad_atom:map"); - nelements = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + memory->create(map, ntypes + 1, "compute_sna_grid:map"); + nelements = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); for (int i = 0; i < ntypes; i++) { - int jelem = utils::inumeric(FLERR,arg[iarg+2+i],false,lmp); - if (jelem < 0 || jelem >= nelements) - error->all(FLERR,"Illegal compute snad/atom command"); - map[i+1] = jelem; + int jelem = utils::inumeric(FLERR, arg[iarg + 2 + i], false, lmp); + if (jelem < 0 || jelem >= nelements) error->all(FLERR, "Illegal compute {} command", style); + map[i + 1] = jelem; } - iarg += 2+ntypes; - } else if (strcmp(arg[iarg],"bnormflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snad/atom command"); - bnormflag = atoi(arg[iarg+1]); + iarg += 2 + ntypes; + } else if (strcmp(arg[iarg], "bnormflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bnormflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"wselfallflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snad/atom command"); - wselfallflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "wselfallflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + wselfallflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"switchinnerflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snad/atom command"); - switchinnerflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "switchinnerflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + switchinnerflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"sinner") == 0) { + } else if (strcmp(arg[iarg], "sinner") == 0) { iarg++; - if (iarg+ntypes > narg) - error->all(FLERR,"Illegal compute snad/atom command"); - memory->create(sinnerelem,ntypes+1,"snad/atom:sinnerelem"); + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(sinnerelem, ntypes + 1, "snap:sinnerelem"); for (int i = 0; i < ntypes; i++) - sinnerelem[i+1] = utils::numeric(FLERR,arg[iarg+i],false,lmp); + sinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); sinnerflag = 1; iarg += ntypes; - } else if (strcmp(arg[iarg],"dinner") == 0) { + } else if (strcmp(arg[iarg], "dinner") == 0) { iarg++; - if (iarg+ntypes > narg) - error->all(FLERR,"Illegal compute snad/atom command"); - memory->create(dinnerelem,ntypes+1,"snad/atom:dinnerelem"); + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(dinnerelem, ntypes + 1, "snap:dinnerelem"); for (int i = 0; i < ntypes; i++) - dinnerelem[i+1] = utils::numeric(FLERR,arg[iarg+i],false,lmp); + dinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); dinnerflag = 1; iarg += ntypes; - } else error->all(FLERR,"Illegal compute snad/atom command"); + } else + error->all(FLERR, "Illegal compute {} command", style); } if (switchinnerflag && !(sinnerflag && dinnerflag)) - error->all(FLERR,"Illegal compute snad/atom command: switchinnerflag = 1, missing sinner/dinner keyword"); + error->all( + FLERR, + "Illegal compute {} command: switchinnerflag = 1, missing sinner/dinner keyword", + style); if (!switchinnerflag && (sinnerflag || dinnerflag)) - error->all(FLERR,"Illegal compute snad/atom command: switchinnerflag = 0, unexpected sinner/dinner keyword"); + error->all( + FLERR, + "Illegal compute {} command: switchinnerflag = 0, unexpected sinner/dinner keyword", + style); - - snaptr = new SNA(lmp, rfac0, twojmax, - rmin0, switchflag, bzeroflag, - chemflag, bnormflag, wselfallflag, - nelements, switchinnerflag); + snaptr = new SNA(lmp, rfac0, twojmax, rmin0, switchflag, bzeroflag, chemflag, bnormflag, + wselfallflag, nelements, switchinnerflag); ncoeff = snaptr->ncoeff; - nperdim = ncoeff; - if (quadraticflag) nperdim += (ncoeff*(ncoeff+1))/2; - yoffset = nperdim; - zoffset = 2*nperdim; - size_peratom_cols = 3*nperdim*atom->ntypes; + nvalues = ncoeff; + if (quadraticflag) nvalues += (ncoeff * (ncoeff + 1)) / 2; + + // end code common to all SNAP computes + + yoffset = nvalues; + zoffset = 2*nvalues; + size_peratom_cols = 3*nvalues*atom->ntypes; comm_reverse = size_peratom_cols; peratom_flag = 1; @@ -289,7 +291,7 @@ void ComputeSNADAtom::compute_peratom() // const int typeoffset = threencoeff*(atom->type[i]-1); // const int quadraticoffset = threencoeff*atom->ntypes + // threencoeffq*(atom->type[i]-1); - const int typeoffset = 3*nperdim*(atom->type[i]-1); + const int typeoffset = 3*nvalues*(atom->type[i]-1); // insure rij, inside, and typej are of size jnum diff --git a/src/ML-SNAP/compute_snad_atom.h b/src/ML-SNAP/compute_snad_atom.h index 0cdb075daf..ac27e10769 100644 --- a/src/ML-SNAP/compute_snad_atom.h +++ b/src/ML-SNAP/compute_snad_atom.h @@ -37,7 +37,7 @@ class ComputeSNADAtom : public Compute { private: int nmax; - int ncoeff, nperdim, yoffset, zoffset; + int ncoeff, nvalues, yoffset, zoffset; double **cutsq; class NeighList *list; double **snad; diff --git a/src/ML-SNAP/compute_snap.cpp b/src/ML-SNAP/compute_snap.cpp index 83f56e338c..5d2f3666bc 100644 --- a/src/ML-SNAP/compute_snap.cpp +++ b/src/ML-SNAP/compute_snap.cpp @@ -14,17 +14,17 @@ #include "compute_snap.h" -#include "sna.h" #include "atom.h" -#include "update.h" -#include "modify.h" -#include "neighbor.h" -#include "neigh_list.h" -#include "force.h" -#include "pair.h" #include "comm.h" -#include "memory.h" #include "error.h" +#include "force.h" +#include "memory.h" +#include "modify.h" +#include "neigh_list.h" +#include "neighbor.h" +#include "pair.h" +#include "sna.h" +#include "update.h" #include @@ -41,13 +41,15 @@ ComputeSnap::ComputeSnap(LAMMPS *lmp, int narg, char **arg) : array_flag = 1; extarray = 0; + // begin code common to all SNAP computes + double rfac0, rmin0; int twojmax, switchflag, bzeroflag, bnormflag, wselfallflag; int ntypes = atom->ntypes; - int nargmin = 6+2*ntypes; + int nargmin = 6 + 2 * ntypes; - if (narg < nargmin) error->all(FLERR,"Illegal compute snap command"); + if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style); // default values @@ -56,6 +58,7 @@ ComputeSnap::ComputeSnap(LAMMPS *lmp, int narg, char **arg) : bzeroflag = 1; quadraticflag = 0; bikflag = 0; + dgradflag = 0; chemflag = 0; bnormflag = 0; wselfallflag = 0; @@ -64,28 +67,30 @@ ComputeSnap::ComputeSnap(LAMMPS *lmp, int narg, char **arg) : // process required arguments - memory->create(radelem,ntypes+1,"snap:radelem"); // offset by 1 to match up with types - memory->create(wjelem,ntypes+1,"snap:wjelem"); - rcutfac = atof(arg[3]); - rfac0 = atof(arg[4]); - twojmax = atoi(arg[5]); + memory->create(radelem, ntypes + 1, "sna/atom:radelem"); // offset by 1 to match up with types + memory->create(wjelem, ntypes + 1, "sna/atom:wjelem"); + + rcutfac = utils::numeric(FLERR, arg[3], false, lmp); + rfac0 = utils::numeric(FLERR, arg[4], false, lmp); + twojmax = utils::inumeric(FLERR, arg[5], false, lmp); + for (int i = 0; i < ntypes; i++) - radelem[i+1] = atof(arg[6+i]); + radelem[i + 1] = utils::numeric(FLERR, arg[6 + i], false, lmp); for (int i = 0; i < ntypes; i++) - wjelem[i+1] = atof(arg[6+ntypes+i]); + wjelem[i + 1] = utils::numeric(FLERR, arg[6 + ntypes + i], false, lmp); // construct cutsq double cut; cutmax = 0.0; - memory->create(cutsq,ntypes+1,ntypes+1,"snap:cutsq"); + memory->create(cutsq, ntypes + 1, ntypes + 1, "sna/atom:cutsq"); for (int i = 1; i <= ntypes; i++) { - cut = 2.0*radelem[i]*rcutfac; + cut = 2.0 * radelem[i] * rcutfac; if (cut > cutmax) cutmax = cut; - cutsq[i][i] = cut*cut; - for (int j = i+1; j <= ntypes; j++) { - cut = (radelem[i]+radelem[j])*rcutfac; - cutsq[i][j] = cutsq[j][i] = cut*cut; + cutsq[i][i] = cut * cut; + for (int j = i + 1; j <= ntypes; j++) { + cut = (radelem[i] + radelem[j]) * rcutfac; + cutsq[i][j] = cutsq[j][i] = cut * cut; } } @@ -99,107 +104,119 @@ ComputeSnap::ComputeSnap(LAMMPS *lmp, int narg, char **arg) : int iarg = nargmin; while (iarg < narg) { - if (strcmp(arg[iarg],"rmin0") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snap command"); - rmin0 = atof(arg[iarg+1]); + if (strcmp(arg[iarg], "rmin0") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + rmin0 = utils::numeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"bzeroflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snap command"); - bzeroflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "switchflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + switchflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"switchflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snap command"); - switchflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "bzeroflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bzeroflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"quadraticflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snap command"); - quadraticflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "quadraticflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + quadraticflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"chem") == 0) { - if (iarg+2+ntypes > narg) - error->all(FLERR,"Illegal compute snap command"); + } else if (strcmp(arg[iarg], "chem") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); chemflag = 1; - memory->create(map,ntypes+1,"compute_snap:map"); - nelements = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + memory->create(map, ntypes + 1, "compute_sna_grid:map"); + nelements = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); for (int i = 0; i < ntypes; i++) { - int jelem = utils::inumeric(FLERR,arg[iarg+2+i],false,lmp); - if (jelem < 0 || jelem >= nelements) - error->all(FLERR,"Illegal compute snap command"); - map[i+1] = jelem; + int jelem = utils::inumeric(FLERR, arg[iarg + 2 + i], false, lmp); + if (jelem < 0 || jelem >= nelements) error->all(FLERR, "Illegal compute {} command", style); + map[i + 1] = jelem; } - iarg += 2+ntypes; - } else if (strcmp(arg[iarg],"bnormflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snap command"); - bnormflag = atoi(arg[iarg+1]); + iarg += 2 + ntypes; + } else if (strcmp(arg[iarg], "bnormflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bnormflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"wselfallflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snap command"); - wselfallflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "wselfallflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + wselfallflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"bikflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snap command"); - bikflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "bikflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bikflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + iarg += 2; + } else if (strcmp(arg[iarg],"dgradflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR,"Illegal compute snap command"); + dgradflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; } else if (strcmp(arg[iarg],"switchinnerflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snap command"); - switchinnerflag = atoi(arg[iarg+1]); + if (iarg + 2 > narg) error->all(FLERR,"Illegal compute snap command"); + switchinnerflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"sinner") == 0) { + } else if (strcmp(arg[iarg], "sinner") == 0) { iarg++; - if (iarg+ntypes > narg) - error->all(FLERR,"Illegal compute snap command"); - memory->create(sinnerelem,ntypes+1,"snap:sinnerelem"); + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(sinnerelem, ntypes + 1, "snap:sinnerelem"); for (int i = 0; i < ntypes; i++) - sinnerelem[i+1] = utils::numeric(FLERR,arg[iarg+i],false,lmp); + sinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); sinnerflag = 1; iarg += ntypes; - } else if (strcmp(arg[iarg],"dinner") == 0) { + } else if (strcmp(arg[iarg], "dinner") == 0) { iarg++; - if (iarg+ntypes > narg) - error->all(FLERR,"Illegal compute snap command"); - memory->create(dinnerelem,ntypes+1,"snap:dinnerelem"); + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(dinnerelem, ntypes + 1, "snap:dinnerelem"); for (int i = 0; i < ntypes; i++) - dinnerelem[i+1] = utils::numeric(FLERR,arg[iarg+i],false,lmp); + dinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); dinnerflag = 1; iarg += ntypes; - } else error->all(FLERR,"Illegal compute snap command"); + } else + error->all(FLERR, "Illegal compute {} command", style); } if (switchinnerflag && !(sinnerflag && dinnerflag)) - error->all(FLERR,"Illegal compute snap command: switchinnerflag = 1, missing sinner/dinner keyword"); + error->all( + FLERR, + "Illegal compute {} command: switchinnerflag = 1, missing sinner/dinner keyword", + style); if (!switchinnerflag && (sinnerflag || dinnerflag)) - error->all(FLERR,"Illegal compute snap command: switchinnerflag = 0, unexpected sinner/dinner keyword"); + error->all( + FLERR, + "Illegal compute {} command: switchinnerflag = 0, unexpected sinner/dinner keyword", + style); - snaptr = new SNA(lmp, rfac0, twojmax, - rmin0, switchflag, bzeroflag, - chemflag, bnormflag, wselfallflag, - nelements, switchinnerflag); + if (dgradflag && !bikflag) + error->all(FLERR,"Illegal compute snap command: dgradflag=1 requires bikflag=1"); + + if (dgradflag && quadraticflag) + error->all(FLERR,"Illegal compute snap command: dgradflag=1 not implemented for quadratic SNAP"); + + snaptr = new SNA(lmp, rfac0, twojmax, rmin0, switchflag, bzeroflag, chemflag, bnormflag, + wselfallflag, nelements, switchinnerflag); ncoeff = snaptr->ncoeff; - nperdim = ncoeff; - if (quadraticflag) nperdim += (ncoeff*(ncoeff+1))/2; + nvalues = ncoeff; + if (quadraticflag) nvalues += (ncoeff * (ncoeff + 1)) / 2; + + // end code common to all SNAP computes + ndims_force = 3; ndims_virial = 6; - yoffset = nperdim; - zoffset = 2*nperdim; + yoffset = nvalues; + zoffset = 2*nvalues; natoms = atom->natoms; bik_rows = 1; if (bikflag) bik_rows = natoms; - size_array_rows = bik_rows+ndims_force*natoms+ndims_virial; - size_array_cols = nperdim*atom->ntypes+1; + dgrad_rows = ndims_force*natoms; + size_array_rows = bik_rows+dgrad_rows + ndims_virial; + if (dgradflag) { + size_array_rows = bik_rows + 3*natoms*natoms + 1; + size_array_cols = nvalues + 3; + error->warning(FLERR,"dgradflag=1 creates a N^2 array, beware of large systems."); + } + else size_array_cols = nvalues*atom->ntypes + 1; lastcol = size_array_cols-1; ndims_peratom = ndims_force; - size_peratom = ndims_peratom*nperdim*atom->ntypes; + size_peratom = ndims_peratom*nvalues*atom->ntypes; nmax = 0; } @@ -305,9 +322,8 @@ void ComputeSnap::compute_array() // clear local peratom array for (int i = 0; i < ntotal; i++) - for (int icoeff = 0; icoeff < size_peratom; icoeff++) { + for (int icoeff = 0; icoeff < size_peratom; icoeff++) snap_peratom[i][icoeff] = 0.0; - } // invoke full neighbor list (will copy or build if necessary) @@ -341,10 +357,39 @@ void ComputeSnap::compute_array() const double radi = radelem[itype]; const int* const jlist = firstneigh[i]; const int jnum = numneigh[i]; - const int typeoffset_local = ndims_peratom*nperdim*(itype-1); - const int typeoffset_global = nperdim*(itype-1); + const int typeoffset_local = ndims_peratom*nvalues*(itype-1); + const int typeoffset_global = nvalues*(itype-1); - // insure rij, inside, and typej are of size jnum + if (dgradflag) { + + // dBi/dRi tags + + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 0][0] = atom->tag[i]-1; + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 0][1] = atom->tag[i]-1; + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 0][2] = 0; + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 1][0] = atom->tag[i]-1; + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 1][1] = atom->tag[i]-1; + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 1][2] = 1; + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 2][0] = atom->tag[i]-1; + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 2][1] = atom->tag[i]-1; + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 2][2] = 2; + + // dBi/dRj tags + + for (int j=0; jtag[i]-1) + 0][0] = atom->tag[i]-1; + snap[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 0][1] = j; + snap[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 0][2] = 0; + snap[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 1][0] = atom->tag[i]-1; + snap[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 1][1] = j; + snap[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 1][2] = 1; + snap[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 2][0] = atom->tag[i]-1; + snap[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 2][1] = j; + snap[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 2][2] = 2; + } + } + + // insure rij, inside, and typej are of size jnum snaptr->grow_rij(jnum); @@ -353,7 +398,9 @@ void ComputeSnap::compute_array() // typej = types of neighbors of I within cutoff // note Rij sign convention => dU/dRij = dU/dRj = -dU/dRi - int ninside = 0; + // assign quantities in snaptr + + int ninside=0; for (int jj = 0; jj < jnum; jj++) { int j = jlist[jj]; j &= NEIGHMASK; @@ -382,64 +429,54 @@ void ComputeSnap::compute_array() } } + // compute bispectrum for atom i + snaptr->compute_ui(ninside, ielem); snaptr->compute_zi(); snaptr->compute_bi(ielem); + // loop over neighbors for descriptors derivatives + for (int jj = 0; jj < ninside; jj++) { const int j = snaptr->inside[jj]; + snaptr->compute_duidrj(jj); snaptr->compute_dbidrj(); - // Accumulate dBi/dRi, -dBi/dRj + // accumulate dBi/dRi, -dBi/dRj - double *snadi = snap_peratom[i]+typeoffset_local; - double *snadj = snap_peratom[j]+typeoffset_local; + if (!dgradflag) { - for (int icoeff = 0; icoeff < ncoeff; icoeff++) { - snadi[icoeff] += snaptr->dblist[icoeff][0]; - snadi[icoeff+yoffset] += snaptr->dblist[icoeff][1]; - snadi[icoeff+zoffset] += snaptr->dblist[icoeff][2]; - snadj[icoeff] -= snaptr->dblist[icoeff][0]; - snadj[icoeff+yoffset] -= snaptr->dblist[icoeff][1]; - snadj[icoeff+zoffset] -= snaptr->dblist[icoeff][2]; - } + double *snadi = snap_peratom[i]+typeoffset_local; + double *snadj = snap_peratom[j]+typeoffset_local; - if (quadraticflag) { - const int quadraticoffset = ncoeff; - snadi += quadraticoffset; - snadj += quadraticoffset; - int ncount = 0; for (int icoeff = 0; icoeff < ncoeff; icoeff++) { - double bi = snaptr->blist[icoeff]; - double bix = snaptr->dblist[icoeff][0]; - double biy = snaptr->dblist[icoeff][1]; - double biz = snaptr->dblist[icoeff][2]; - // diagonal elements of quadratic matrix + snadi[icoeff] += snaptr->dblist[icoeff][0]; + snadi[icoeff+yoffset] += snaptr->dblist[icoeff][1]; + snadi[icoeff+zoffset] += snaptr->dblist[icoeff][2]; - double dbxtmp = bi*bix; - double dbytmp = bi*biy; - double dbztmp = bi*biz; + snadj[icoeff] -= snaptr->dblist[icoeff][0]; + snadj[icoeff+yoffset] -= snaptr->dblist[icoeff][1]; + snadj[icoeff+zoffset] -= snaptr->dblist[icoeff][2]; + } - snadi[ncount] += dbxtmp; - snadi[ncount+yoffset] += dbytmp; - snadi[ncount+zoffset] += dbztmp; - snadj[ncount] -= dbxtmp; - snadj[ncount+yoffset] -= dbytmp; - snadj[ncount+zoffset] -= dbztmp; + if (quadraticflag) { + const int quadraticoffset = ncoeff; + snadi += quadraticoffset; + snadj += quadraticoffset; + int ncount = 0; + for (int icoeff = 0; icoeff < ncoeff; icoeff++) { + double bi = snaptr->blist[icoeff]; + double bix = snaptr->dblist[icoeff][0]; + double biy = snaptr->dblist[icoeff][1]; + double biz = snaptr->dblist[icoeff][2]; - ncount++; + // diagonal elements of quadratic matrix - // upper-triangular elements of quadratic matrix - - for (int jcoeff = icoeff+1; jcoeff < ncoeff; jcoeff++) { - double dbxtmp = bi*snaptr->dblist[jcoeff][0] - + bix*snaptr->blist[jcoeff]; - double dbytmp = bi*snaptr->dblist[jcoeff][1] - + biy*snaptr->blist[jcoeff]; - double dbztmp = bi*snaptr->dblist[jcoeff][2] - + biz*snaptr->blist[jcoeff]; + double dbxtmp = bi*bix; + double dbytmp = bi*biy; + double dbztmp = bi*biz; snadi[ncount] += dbxtmp; snadi[ncount+yoffset] += dbytmp; @@ -449,60 +486,119 @@ void ComputeSnap::compute_array() snadj[ncount+zoffset] -= dbztmp; ncount++; + + // upper-triangular elements of quadratic matrix + + for (int jcoeff = icoeff+1; jcoeff < ncoeff; jcoeff++) { + double dbxtmp = bi*snaptr->dblist[jcoeff][0] + + bix*snaptr->blist[jcoeff]; + double dbytmp = bi*snaptr->dblist[jcoeff][1] + + biy*snaptr->blist[jcoeff]; + double dbztmp = bi*snaptr->dblist[jcoeff][2] + + biz*snaptr->blist[jcoeff]; + + snadi[ncount] += dbxtmp; + snadi[ncount+yoffset] += dbytmp; + snadi[ncount+zoffset] += dbztmp; + snadj[ncount] -= dbxtmp; + snadj[ncount+yoffset] -= dbytmp; + snadj[ncount+zoffset] -= dbztmp; + + ncount++; + } + } + } + } else { + + for (int icoeff = 0; icoeff < ncoeff; icoeff++) { + + // add to snap array for this proc + + // dBi/dRj + + snap[bik_rows + ((atom->tag[j]-1)*3*natoms) + 3*(atom->tag[i]-1) + 0][icoeff+3] -= snaptr->dblist[icoeff][0]; + snap[bik_rows + ((atom->tag[j]-1)*3*natoms) + 3*(atom->tag[i]-1) + 1][icoeff+3] -= snaptr->dblist[icoeff][1]; + snap[bik_rows + ((atom->tag[j]-1)*3*natoms) + 3*(atom->tag[i]-1) + 2][icoeff+3] -= snaptr->dblist[icoeff][2]; + + // dBi/dRi + + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 0][icoeff+3] += snaptr->dblist[icoeff][0]; + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 1][icoeff+3] += snaptr->dblist[icoeff][1]; + snap[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 2][icoeff+3] += snaptr->dblist[icoeff][2]; + } + } + } // loop over jj inside + + // accumulate Bi + + if (!dgradflag) { + + // linear contributions + + int k = typeoffset_global; + for (int icoeff = 0; icoeff < ncoeff; icoeff++) + snap[irow][k++] += snaptr->blist[icoeff]; + + // quadratic contributions + + if (quadraticflag) { + for (int icoeff = 0; icoeff < ncoeff; icoeff++) { + double bveci = snaptr->blist[icoeff]; + snap[irow][k++] += 0.5*bveci*bveci; + for (int jcoeff = icoeff+1; jcoeff < ncoeff; jcoeff++) { + double bvecj = snaptr->blist[jcoeff]; + snap[irow][k++] += bveci*bvecj; + } } } + } else { + int k = 3; + for (int icoeff = 0; icoeff < ncoeff; icoeff++) + snap[irow][k++] += snaptr->blist[icoeff]; } - } - - // Accumulate Bi - - // linear contributions - - int k = typeoffset_global; - for (int icoeff = 0; icoeff < ncoeff; icoeff++) - snap[irow][k++] += snaptr->blist[icoeff]; - - // quadratic contributions - - if (quadraticflag) { - for (int icoeff = 0; icoeff < ncoeff; icoeff++) { - double bveci = snaptr->blist[icoeff]; - snap[irow][k++] += 0.5*bveci*bveci; - for (int jcoeff = icoeff+1; jcoeff < ncoeff; jcoeff++) { - double bvecj = snaptr->blist[jcoeff]; - snap[irow][k++] += bveci*bvecj; - } - } - } } - } + } // for (int ii = 0; ii < inum; ii++) { // accumulate bispectrum force contributions to global array - for (int itype = 0; itype < atom->ntypes; itype++) { - const int typeoffset_local = ndims_peratom*nperdim*itype; - const int typeoffset_global = nperdim*itype; - for (int icoeff = 0; icoeff < nperdim; icoeff++) { - for (int i = 0; i < ntotal; i++) { - double *snadi = snap_peratom[i]+typeoffset_local; - int iglobal = atom->tag[i]; - int irow = 3*(iglobal-1)+bik_rows; - snap[irow++][icoeff+typeoffset_global] += snadi[icoeff]; - snap[irow++][icoeff+typeoffset_global] += snadi[icoeff+yoffset]; - snap[irow][icoeff+typeoffset_global] += snadi[icoeff+zoffset]; + if (!dgradflag) { + for (int itype = 0; itype < atom->ntypes; itype++) { + const int typeoffset_local = ndims_peratom*nvalues*itype; + const int typeoffset_global = nvalues*itype; + for (int icoeff = 0; icoeff < nvalues; icoeff++) { + for (int i = 0; i < ntotal; i++) { + double *snadi = snap_peratom[i]+typeoffset_local; + int iglobal = atom->tag[i]; + int irow = 3*(iglobal-1)+bik_rows; + snap[irow++][icoeff+typeoffset_global] += snadi[icoeff]; + snap[irow++][icoeff+typeoffset_global] += snadi[icoeff+yoffset]; + snap[irow][icoeff+typeoffset_global] += snadi[icoeff+zoffset]; + } } } } // accumulate forces to global array - for (int i = 0; i < atom->nlocal; i++) { - int iglobal = atom->tag[i]; - int irow = 3*(iglobal-1)+bik_rows; - snap[irow++][lastcol] = atom->f[i][0]; - snap[irow++][lastcol] = atom->f[i][1]; - snap[irow][lastcol] = atom->f[i][2]; + if (!dgradflag) { + for (int i = 0; i < atom->nlocal; i++) { + int iglobal = atom->tag[i]; + int irow = 3*(iglobal-1)+bik_rows; + snap[irow++][lastcol] = atom->f[i][0]; + snap[irow++][lastcol] = atom->f[i][1]; + snap[irow][lastcol] = atom->f[i][2]; + } + } else { + + // for dgradflag=1, put forces at first 3 columns of bik rows + + for (int i=0; inlocal; i++) { + int iglobal = atom->tag[i]; + snap[iglobal-1][0+0] = atom->f[i][0]; + snap[iglobal-1][0+1] = atom->f[i][1]; + snap[iglobal-1][0+2] = atom->f[i][2]; + } } // accumulate bispectrum virial contributions to global array @@ -514,22 +610,34 @@ void ComputeSnap::compute_array() MPI_Allreduce(&snap[0][0],&snapall[0][0],size_array_rows*size_array_cols,MPI_DOUBLE,MPI_SUM,world); // assign energy to last column - for (int i = 0; i < bik_rows; i++) snapall[i][lastcol] = 0; - int irow = 0; - double reference_energy = c_pe->compute_scalar(); - snapall[irow][lastcol] = reference_energy; + + if (!dgradflag) { + for (int i = 0; i < bik_rows; i++) snapall[i][lastcol] = 0; + int irow = 0; + double reference_energy = c_pe->compute_scalar(); + snapall[irow][lastcol] = reference_energy; + } else { + + // assign reference energy right after the dgrad rows, first column + + int irow = bik_rows + 3*natoms*natoms; + double reference_energy = c_pe->compute_scalar(); + snapall[irow][0] = reference_energy; + } // assign virial stress to last column // switch to Voigt notation - c_virial->compute_vector(); - irow += 3*natoms+bik_rows; - snapall[irow++][lastcol] = c_virial->vector[0]; - snapall[irow++][lastcol] = c_virial->vector[1]; - snapall[irow++][lastcol] = c_virial->vector[2]; - snapall[irow++][lastcol] = c_virial->vector[5]; - snapall[irow++][lastcol] = c_virial->vector[4]; - snapall[irow][lastcol] = c_virial->vector[3]; + if (!dgradflag) { + c_virial->compute_vector(); + int irow = 3*natoms+bik_rows; + snapall[irow++][lastcol] = c_virial->vector[0]; + snapall[irow++][lastcol] = c_virial->vector[1]; + snapall[irow++][lastcol] = c_virial->vector[2]; + snapall[irow++][lastcol] = c_virial->vector[5]; + snapall[irow++][lastcol] = c_virial->vector[4]; + snapall[irow][lastcol] = c_virial->vector[3]; + } } @@ -540,7 +648,13 @@ void ComputeSnap::compute_array() void ComputeSnap::dbdotr_compute() { + + // no virial terms for dgrad yet + + if (dgradflag) return; + double **x = atom->x; + int irow0 = bik_rows+ndims_force*natoms; // sum over bispectrum contributions to forces @@ -549,10 +663,10 @@ void ComputeSnap::dbdotr_compute() int nall = atom->nlocal + atom->nghost; for (int i = 0; i < nall; i++) for (int itype = 0; itype < atom->ntypes; itype++) { - const int typeoffset_local = ndims_peratom*nperdim*itype; - const int typeoffset_global = nperdim*itype; + const int typeoffset_local = ndims_peratom*nvalues*itype; + const int typeoffset_global = nvalues*itype; double *snadi = snap_peratom[i]+typeoffset_local; - for (int icoeff = 0; icoeff < nperdim; icoeff++) { + for (int icoeff = 0; icoeff < nvalues; icoeff++) { double dbdx = snadi[icoeff]; double dbdy = snadi[icoeff+yoffset]; double dbdz = snadi[icoeff+zoffset]; diff --git a/src/ML-SNAP/compute_snap.h b/src/ML-SNAP/compute_snap.h index bc0670e2c7..0a9af58519 100644 --- a/src/ML-SNAP/compute_snap.h +++ b/src/ML-SNAP/compute_snap.h @@ -35,7 +35,7 @@ class ComputeSnap : public Compute { private: int natoms, nmax, size_peratom, lastcol; - int ncoeff, nperdim, yoffset, zoffset; + int ncoeff, nvalues, yoffset, zoffset; int ndims_peratom, ndims_force, ndims_virial; double **cutsq; class NeighList *list; @@ -52,8 +52,7 @@ class ComputeSnap : public Compute { class SNA *snaptr; double cutmax; int quadraticflag; - int bikflag; - int bik_rows; + int bikflag, bik_rows, dgradflag, dgrad_rows; Compute *c_pe; Compute *c_virial; diff --git a/src/ML-SNAP/compute_snav_atom.cpp b/src/ML-SNAP/compute_snav_atom.cpp index 0baa4bc110..949dda8e5c 100644 --- a/src/ML-SNAP/compute_snav_atom.cpp +++ b/src/ML-SNAP/compute_snav_atom.cpp @@ -21,6 +21,7 @@ #include "neighbor.h" #include "neigh_list.h" #include "force.h" +#include "pair.h" #include "comm.h" #include "memory.h" #include "error.h" @@ -33,20 +34,22 @@ ComputeSNAVAtom::ComputeSNAVAtom(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), cutsq(nullptr), list(nullptr), snav(nullptr), radelem(nullptr), wjelem(nullptr), sinnerelem(nullptr), dinnerelem(nullptr) { + + // begin code common to all SNAP computes + double rfac0, rmin0; int twojmax, switchflag, bzeroflag, bnormflag, wselfallflag; int ntypes = atom->ntypes; - int nargmin = 6+2*ntypes; + int nargmin = 6 + 2 * ntypes; - if (narg < nargmin) error->all(FLERR,"Illegal compute snav/atom command"); + if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style); // default values rmin0 = 0.0; switchflag = 1; bzeroflag = 1; - bnormflag = 0; quadraticflag = 0; chemflag = 0; bnormflag = 0; @@ -56,24 +59,32 @@ ComputeSNAVAtom::ComputeSNAVAtom(LAMMPS *lmp, int narg, char **arg) : // process required arguments - memory->create(radelem,ntypes+1,"snav/atom:radelem"); // offset by 1 to match up with types - memory->create(wjelem,ntypes+1,"snav/atom:wjelem"); - rcutfac = atof(arg[3]); - rfac0 = atof(arg[4]); - twojmax = atoi(arg[5]); + memory->create(radelem, ntypes + 1, "sna/atom:radelem"); // offset by 1 to match up with types + memory->create(wjelem, ntypes + 1, "sna/atom:wjelem"); + + rcutfac = utils::numeric(FLERR, arg[3], false, lmp); + rfac0 = utils::numeric(FLERR, arg[4], false, lmp); + twojmax = utils::inumeric(FLERR, arg[5], false, lmp); + for (int i = 0; i < ntypes; i++) - radelem[i+1] = atof(arg[6+i]); + radelem[i + 1] = + utils::numeric(FLERR, arg[6 + i], false, lmp); for (int i = 0; i < ntypes; i++) - wjelem[i+1] = atof(arg[6+ntypes+i]); + wjelem[i + 1] = + utils::numeric(FLERR, arg[6 + ntypes + i], false, lmp); + // construct cutsq + double cut; - memory->create(cutsq,ntypes+1,ntypes+1,"snav/atom:cutsq"); + cutmax = 0.0; + memory->create(cutsq, ntypes + 1, ntypes + 1, "sna/atom:cutsq"); for (int i = 1; i <= ntypes; i++) { - cut = 2.0*radelem[i]*rcutfac; - cutsq[i][i] = cut*cut; - for (int j = i+1; j <= ntypes; j++) { - cut = (radelem[i]+radelem[j])*rcutfac; - cutsq[i][j] = cutsq[j][i] = cut*cut; + cut = 2.0 * radelem[i] * rcutfac; + if (cut > cutmax) cutmax = cut; + cutsq[i][i] = cut * cut; + for (int j = i + 1; j <= ntypes; j++) { + cut = (radelem[i] + radelem[j]) * rcutfac; + cutsq[i][j] = cutsq[j][i] = cut * cut; } } @@ -87,90 +98,87 @@ ComputeSNAVAtom::ComputeSNAVAtom(LAMMPS *lmp, int narg, char **arg) : int iarg = nargmin; while (iarg < narg) { - if (strcmp(arg[iarg],"rmin0") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snav/atom command"); - rmin0 = atof(arg[iarg+1]); + if (strcmp(arg[iarg], "rmin0") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + rmin0 = utils::numeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"switchflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snav/atom command"); - switchflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "switchflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + switchflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"bzeroflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snav/atom command"); - bzeroflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "bzeroflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bzeroflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"quadraticflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snav/atom command"); - quadraticflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "quadraticflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + quadraticflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"chem") == 0) { - if (iarg+2+ntypes > narg) - error->all(FLERR,"Illegal compute snav/atom command"); + } else if (strcmp(arg[iarg], "chem") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); chemflag = 1; - memory->create(map,ntypes+1,"compute_sna_atom:map"); - nelements = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + memory->create(map, ntypes + 1, "compute_sna_grid:map"); + nelements = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); for (int i = 0; i < ntypes; i++) { - int jelem = utils::inumeric(FLERR,arg[iarg+2+i],false,lmp); - if (jelem < 0 || jelem >= nelements) - error->all(FLERR,"Illegal compute snav/atom command"); - map[i+1] = jelem; + int jelem = utils::inumeric(FLERR, arg[iarg + 2 + i], false, lmp); + if (jelem < 0 || jelem >= nelements) error->all(FLERR, "Illegal compute {} command", style); + map[i + 1] = jelem; } - iarg += 2+ntypes; - } else if (strcmp(arg[iarg],"bnormflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snav/atom command"); - bnormflag = atoi(arg[iarg+1]); + iarg += 2 + ntypes; + } else if (strcmp(arg[iarg], "bnormflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + bnormflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"wselfallflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snav/atom command"); - wselfallflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "wselfallflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + wselfallflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"switchinnerflag") == 0) { - if (iarg+2 > narg) - error->all(FLERR,"Illegal compute snav/atom command"); - switchinnerflag = atoi(arg[iarg+1]); + } else if (strcmp(arg[iarg], "switchinnerflag") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal compute {} command", style); + switchinnerflag = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"sinner") == 0) { + } else if (strcmp(arg[iarg], "sinner") == 0) { iarg++; - if (iarg+ntypes > narg) - error->all(FLERR,"Illegal compute snav/atom command"); - memory->create(sinnerelem,ntypes+1,"snav/atom:sinnerelem"); + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(sinnerelem, ntypes + 1, "snap:sinnerelem"); for (int i = 0; i < ntypes; i++) - sinnerelem[i+1] = utils::numeric(FLERR,arg[iarg+i],false,lmp); + sinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); sinnerflag = 1; iarg += ntypes; - } else if (strcmp(arg[iarg],"dinner") == 0) { + } else if (strcmp(arg[iarg], "dinner") == 0) { iarg++; - if (iarg+ntypes > narg) - error->all(FLERR,"Illegal compute snav/atom command"); - memory->create(dinnerelem,ntypes+1,"snav/atom:dinnerelem"); + if (iarg + ntypes > narg) error->all(FLERR, "Illegal compute {} command", style); + memory->create(dinnerelem, ntypes + 1, "snap:dinnerelem"); for (int i = 0; i < ntypes; i++) - dinnerelem[i+1] = utils::numeric(FLERR,arg[iarg+i],false,lmp); + dinnerelem[i + 1] = utils::numeric(FLERR, arg[iarg + i], false, lmp); dinnerflag = 1; iarg += ntypes; - } else error->all(FLERR,"Illegal compute snav/atom command"); + } else + error->all(FLERR, "Illegal compute {} command", style); } if (switchinnerflag && !(sinnerflag && dinnerflag)) - error->all(FLERR,"Illegal compute snav/atom command: switchinnerflag = 1, missing sinner/dinner keyword"); + error->all( + FLERR, + "Illegal compute {} command: switchinnerflag = 1, missing sinner/dinner keyword", + style); if (!switchinnerflag && (sinnerflag || dinnerflag)) - error->all(FLERR,"Illegal compute snav/atom command: switchinnerflag = 0, unexpected sinner/dinner keyword"); + error->all( + FLERR, + "Illegal compute {} command: switchinnerflag = 0, unexpected sinner/dinner keyword", + style); - snaptr = new SNA(lmp, rfac0, twojmax, - rmin0, switchflag, bzeroflag, - chemflag, bnormflag, wselfallflag, - nelements, switchinnerflag); + snaptr = new SNA(lmp, rfac0, twojmax, rmin0, switchflag, bzeroflag, chemflag, bnormflag, + wselfallflag, nelements, switchinnerflag); ncoeff = snaptr->ncoeff; - nperdim = ncoeff; - if (quadraticflag) nperdim += (ncoeff*(ncoeff+1))/2; - size_peratom_cols = 6*nperdim*atom->ntypes; + nvalues = ncoeff; + if (quadraticflag) nvalues += (ncoeff * (ncoeff + 1)) / 2; + + // end code common to all SNAP computes + + size_peratom_cols = 6*nvalues*atom->ntypes; comm_reverse = size_peratom_cols; peratom_flag = 1; @@ -203,10 +211,9 @@ void ComputeSNAVAtom::init() { if (force->pair == nullptr) error->all(FLERR,"Compute snav/atom requires a pair style be defined"); - // TODO: Not sure what to do with this error check since cutoff radius is not - // a single number - //if (sqrt(cutsq) > force->pair->cutforce) - // error->all(FLERR,"Compute snav/atom cutoff is longer than pairwise cutoff"); + + if (cutmax > force->pair->cutforce) + error->all(FLERR,"Compute snav/atom cutoff is longer than pairwise cutoff"); // need an occasional full neighbor list @@ -280,7 +287,7 @@ void ComputeSNAVAtom::compute_peratom() const int* const jlist = firstneigh[i]; const int jnum = numneigh[i]; - const int typeoffset = 6*nperdim*(atom->type[i]-1); + const int typeoffset = 6*nvalues*(atom->type[i]-1); // insure rij, inside, and typej are of size jnum @@ -339,17 +346,17 @@ void ComputeSNAVAtom::compute_peratom() for (int icoeff = 0; icoeff < ncoeff; icoeff++) { snavi[icoeff] += snaptr->dblist[icoeff][0]*xtmp; - snavi[icoeff+nperdim] += snaptr->dblist[icoeff][1]*ytmp; - snavi[icoeff+2*nperdim] += snaptr->dblist[icoeff][2]*ztmp; - snavi[icoeff+3*nperdim] += snaptr->dblist[icoeff][1]*ztmp; - snavi[icoeff+4*nperdim] += snaptr->dblist[icoeff][0]*ztmp; - snavi[icoeff+5*nperdim] += snaptr->dblist[icoeff][0]*ytmp; + snavi[icoeff+nvalues] += snaptr->dblist[icoeff][1]*ytmp; + snavi[icoeff+2*nvalues] += snaptr->dblist[icoeff][2]*ztmp; + snavi[icoeff+3*nvalues] += snaptr->dblist[icoeff][1]*ztmp; + snavi[icoeff+4*nvalues] += snaptr->dblist[icoeff][0]*ztmp; + snavi[icoeff+5*nvalues] += snaptr->dblist[icoeff][0]*ytmp; snavj[icoeff] -= snaptr->dblist[icoeff][0]*x[j][0]; - snavj[icoeff+nperdim] -= snaptr->dblist[icoeff][1]*x[j][1]; - snavj[icoeff+2*nperdim] -= snaptr->dblist[icoeff][2]*x[j][2]; - snavj[icoeff+3*nperdim] -= snaptr->dblist[icoeff][1]*x[j][2]; - snavj[icoeff+4*nperdim] -= snaptr->dblist[icoeff][0]*x[j][2]; - snavj[icoeff+5*nperdim] -= snaptr->dblist[icoeff][0]*x[j][1]; + snavj[icoeff+nvalues] -= snaptr->dblist[icoeff][1]*x[j][1]; + snavj[icoeff+2*nvalues] -= snaptr->dblist[icoeff][2]*x[j][2]; + snavj[icoeff+3*nvalues] -= snaptr->dblist[icoeff][1]*x[j][2]; + snavj[icoeff+4*nvalues] -= snaptr->dblist[icoeff][0]*x[j][2]; + snavj[icoeff+5*nvalues] -= snaptr->dblist[icoeff][0]*x[j][1]; } if (quadraticflag) { @@ -369,17 +376,17 @@ void ComputeSNAVAtom::compute_peratom() double dbytmp = bi*biy; double dbztmp = bi*biz; snavi[ncount] += dbxtmp*xtmp; - snavi[ncount+nperdim] += dbytmp*ytmp; - snavi[ncount+2*nperdim] += dbztmp*ztmp; - snavi[ncount+3*nperdim] += dbytmp*ztmp; - snavi[ncount+4*nperdim] += dbxtmp*ztmp; - snavi[ncount+5*nperdim] += dbxtmp*ytmp; + snavi[ncount+nvalues] += dbytmp*ytmp; + snavi[ncount+2*nvalues] += dbztmp*ztmp; + snavi[ncount+3*nvalues] += dbytmp*ztmp; + snavi[ncount+4*nvalues] += dbxtmp*ztmp; + snavi[ncount+5*nvalues] += dbxtmp*ytmp; snavj[ncount] -= dbxtmp*x[j][0]; - snavj[ncount+nperdim] -= dbytmp*x[j][1]; - snavj[ncount+2*nperdim] -= dbztmp*x[j][2]; - snavj[ncount+3*nperdim] -= dbytmp*x[j][2]; - snavj[ncount+4*nperdim] -= dbxtmp*x[j][2]; - snavj[ncount+5*nperdim] -= dbxtmp*x[j][1]; + snavj[ncount+nvalues] -= dbytmp*x[j][1]; + snavj[ncount+2*nvalues] -= dbztmp*x[j][2]; + snavj[ncount+3*nvalues] -= dbytmp*x[j][2]; + snavj[ncount+4*nvalues] -= dbxtmp*x[j][2]; + snavj[ncount+5*nvalues] -= dbxtmp*x[j][1]; ncount++; // upper-triangular elements of quadratic matrix @@ -392,17 +399,17 @@ void ComputeSNAVAtom::compute_peratom() double dbztmp = bi*snaptr->dblist[jcoeff][2] + biz*snaptr->blist[jcoeff]; snavi[ncount] += dbxtmp*xtmp; - snavi[ncount+nperdim] += dbytmp*ytmp; - snavi[ncount+2*nperdim] += dbztmp*ztmp; - snavi[ncount+3*nperdim] += dbytmp*ztmp; - snavi[ncount+4*nperdim] += dbxtmp*ztmp; - snavi[ncount+5*nperdim] += dbxtmp*ytmp; + snavi[ncount+nvalues] += dbytmp*ytmp; + snavi[ncount+2*nvalues] += dbztmp*ztmp; + snavi[ncount+3*nvalues] += dbytmp*ztmp; + snavi[ncount+4*nvalues] += dbxtmp*ztmp; + snavi[ncount+5*nvalues] += dbxtmp*ytmp; snavj[ncount] -= dbxtmp*x[j][0]; - snavj[ncount+nperdim] -= dbytmp*x[j][1]; - snavj[ncount+2*nperdim] -= dbztmp*x[j][2]; - snavj[ncount+3*nperdim] -= dbytmp*x[j][2]; - snavj[ncount+4*nperdim] -= dbxtmp*x[j][2]; - snavj[ncount+5*nperdim] -= dbxtmp*x[j][1]; + snavj[ncount+nvalues] -= dbytmp*x[j][1]; + snavj[ncount+2*nvalues] -= dbztmp*x[j][2]; + snavj[ncount+3*nvalues] -= dbytmp*x[j][2]; + snavj[ncount+4*nvalues] -= dbxtmp*x[j][2]; + snavj[ncount+5*nvalues] -= dbxtmp*x[j][1]; ncount++; } } diff --git a/src/ML-SNAP/compute_snav_atom.h b/src/ML-SNAP/compute_snav_atom.h index 1eb84d8df7..2eac0b7b28 100644 --- a/src/ML-SNAP/compute_snav_atom.h +++ b/src/ML-SNAP/compute_snav_atom.h @@ -37,7 +37,7 @@ class ComputeSNAVAtom : public Compute { private: int nmax; - int ncoeff, nperdim; + int ncoeff, nvalues; double **cutsq; class NeighList *list; double **snav; @@ -50,6 +50,7 @@ class ComputeSNAVAtom : public Compute { double *sinnerelem; double *dinnerelem; class SNA *snaptr; + double cutmax; int quadraticflag; }; diff --git a/src/ML-SNAP/pair_snap.cpp b/src/ML-SNAP/pair_snap.cpp index 07a8237ab5..7c6e0a8b5d 100644 --- a/src/ML-SNAP/pair_snap.cpp +++ b/src/ML-SNAP/pair_snap.cpp @@ -63,11 +63,8 @@ PairSNAP::~PairSNAP() memory->destroy(radelem); memory->destroy(wjelem); memory->destroy(coeffelem); - - if (switchinnerflag) { - memory->destroy(sinnerelem); - memory->destroy(dinnerelem); - } + memory->destroy(sinnerelem); + memory->destroy(dinnerelem); memory->destroy(beta); memory->destroy(bispectrum); diff --git a/src/ML-SNAP/sna.cpp b/src/ML-SNAP/sna.cpp index 33937b9c45..123c16e2ac 100644 --- a/src/ML-SNAP/sna.cpp +++ b/src/ML-SNAP/sna.cpp @@ -1595,4 +1595,3 @@ double SNA::compute_dsfac(double r, double rcut, double sinner, double dinner) return dsfac; } - diff --git a/src/MOLECULE/angle_table.cpp b/src/MOLECULE/angle_table.cpp index eeb30c4d64..c3959dc898 100644 --- a/src/MOLECULE/angle_table.cpp +++ b/src/MOLECULE/angle_table.cpp @@ -402,26 +402,20 @@ void AngleTable::read_table(Table *tb, char *file, char *keyword) // read a,e,f table values from file - int cerror = 0; reader.skip_line(); for (int i = 0; i < tb->ninput; i++) { - line = reader.next_line(4); + line = reader.next_line(); try { ValueTokenizer values(line); values.next_int(); tb->afile[i] = values.next_double(); tb->efile[i] = values.next_double(); tb->ffile[i] = values.next_double(); - } catch (TokenizerException &) { - ++cerror; + } catch (TokenizerException &e) { + error->one(FLERR, "Error parsing angle table '{}' line {} of {}. {}\nLine was: {}", keyword, + i + 1, tb->ninput, e.what(), line); } } - - // warn if data was read incompletely, e.g. columns were missing - - if (cerror) - error->warning(FLERR, "{} of {} lines in table incomplete or could not be parsed", cerror, - tb->ninput); } /* ---------------------------------------------------------------------- diff --git a/src/MOLECULE/bond_table.cpp b/src/MOLECULE/bond_table.cpp index e1eac7c4c2..7af08a4a08 100644 --- a/src/MOLECULE/bond_table.cpp +++ b/src/MOLECULE/bond_table.cpp @@ -325,20 +325,20 @@ void BondTable::read_table(Table *tb, char *file, char *keyword) // read r,e,f table values from file - int cerror = 0; int r0idx = -1; reader.skip_line(); for (int i = 0; i < tb->ninput; i++) { - line = reader.next_line(4); + line = reader.next_line(); try { ValueTokenizer values(line); values.next_int(); tb->rfile[i] = values.next_double(); tb->efile[i] = values.next_double(); tb->ffile[i] = values.next_double(); - } catch (TokenizerException &) { - ++cerror; + } catch (TokenizerException &e) { + error->one(FLERR, "Error parsing bond table '{}' line {} of {}. {}\nLine was: {}", keyword, + i + 1, tb->ninput, e.what(), line); } if (tb->efile[i] < emin) { @@ -373,21 +373,11 @@ void BondTable::read_table(Table *tb, char *file, char *keyword) if (f > fleft && f > fright) ferror++; } - if (ferror) { + if (ferror) error->warning(FLERR, "{} of {} force values in table are inconsistent with -dE/dr.\n" "WARNING: Should only be flagged at inflection points", ferror, tb->ninput); - } - - // warn if data was read incompletely, e.g. columns were missing - - if (cerror) { - error->warning(FLERR, - "{} of {} lines in table were incomplete or could not be" - " parsed completely", - cerror, tb->ninput); - } } /* ---------------------------------------------------------------------- diff --git a/src/MOLECULE/dihedral_table.cpp b/src/MOLECULE/dihedral_table.cpp index ea0b30cbd5..1a9bc923a7 100644 --- a/src/MOLECULE/dihedral_table.cpp +++ b/src/MOLECULE/dihedral_table.cpp @@ -1020,23 +1020,24 @@ void DihedralTable::read_table(Table *tb, char *file, char *keyword) // read a,e,f table values from file for (int i = 0; i < tb->ninput; i++) { + line = reader.next_line(); try { + ValueTokenizer values(line); if (tb->f_unspecified) { - ValueTokenizer values = reader.next_values(3); values.next_int(); tb->phifile[i] = values.next_double(); tb->efile[i] = values.next_double(); } else { - ValueTokenizer values = reader.next_values(4); values.next_int(); tb->phifile[i] = values.next_double(); tb->efile[i] = values.next_double(); tb->ffile[i] = values.next_double(); } } catch (TokenizerException &e) { - error->one(FLERR, e.what()); + error->one(FLERR, "Error parsing dihedral table '{}' line {} of {}. {}\nLine was: {}", + keyword, i + 1, tb->ninput, e.what(), line); } - } //for (int i = 0; (i < tb->ninput) && fp; i++) { + } } /* ---------------------------------------------------------------------- diff --git a/src/Makefile b/src/Makefile index ab8e5c4fea..14249ab517 100644 --- a/src/Makefile +++ b/src/Makefile @@ -50,6 +50,7 @@ endif PACKAGE = \ adios \ + amoeba \ asphere \ awpmd \ bocs \ @@ -146,6 +147,7 @@ PACKAGE = \ PACKBASIC = kspace manybody molecule rigid PACKMOST = \ + amoeba \ asphere \ bocs \ body \ @@ -461,7 +463,7 @@ mpi-stubs: sinclude ../lib/python/Makefile.lammps install-python: @rm -rf ../python/build - @$(PYTHON) ../python/install.py -p ../python/lammps -l ../src/liblammps.so + @$(PYTHON) ../python/install.py -p ../python/lammps -l ../src/liblammps.so -w $(PWD) # Create a tarball of src dir and packages diff --git a/src/OPENMP/npair_halffull_newtoff_trim_omp.cpp b/src/OPENMP/npair_halffull_newtoff_trim_omp.cpp new file mode 100644 index 0000000000..20d497d53e --- /dev/null +++ b/src/OPENMP/npair_halffull_newtoff_trim_omp.cpp @@ -0,0 +1,111 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "npair_halffull_newtoff_trim_omp.h" + +#include "atom.h" +#include "error.h" +#include "my_page.h" +#include "neigh_list.h" +#include "npair_omp.h" + +#include "omp_compat.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +NPairHalffullNewtoffTrimOmp::NPairHalffullNewtoffTrimOmp(LAMMPS *lmp) : NPair(lmp) {} + +/* ---------------------------------------------------------------------- + build half list from full list and trim to shorter cutoff + pair stored once if i,j are both owned and i < j + pair stored by me if j is ghost (also stored by proc owning j) + works if full list is a skip list +------------------------------------------------------------------------- */ + +void NPairHalffullNewtoffTrimOmp::build(NeighList *list) +{ + const int inum_full = list->listfull->inum; + + NPAIR_OMP_INIT; + +#if defined(_OPENMP) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) +#endif + NPAIR_OMP_SETUP(inum_full); + + int i,j,ii,jj,n,jnum,joriginal; + int *neighptr,*jlist; + double xtmp,ytmp,ztmp; + double delx,dely,delz,rsq; + + double **x = atom->x; + + int *ilist = list->ilist; + int *numneigh = list->numneigh; + int **firstneigh = list->firstneigh; + int *ilist_full = list->listfull->ilist; + int *numneigh_full = list->listfull->numneigh; + int **firstneigh_full = list->listfull->firstneigh; + + // each thread has its own page allocator + MyPage &ipage = list->ipage[tid]; + ipage.reset(); + + double cutsq_custom = cutoff_custom * cutoff_custom; + + // loop over atoms in full list + + for (ii = ifrom; ii < ito; ii++) { + + n = 0; + neighptr = ipage.vget(); + + // loop over parent full list + + i = ilist_full[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + + jlist = firstneigh_full[i]; + jnum = numneigh_full[i]; + + for (jj = 0; jj < jnum; jj++) { + joriginal = jlist[jj]; + j = joriginal & NEIGHMASK; + + // trim to shorter cutoff + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx * delx + dely * dely + delz * delz; + + if (rsq > cutsq_custom) continue; + + if (j > i) neighptr[n++] = joriginal; + } + + ilist[ii] = i; + firstneigh[i] = neighptr; + numneigh[i] = n; + ipage.vgot(n); + if (ipage.status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } + NPAIR_OMP_CLOSE; + list->inum = inum_full; +} diff --git a/src/OPENMP/npair_halffull_newtoff_trim_omp.h b/src/OPENMP/npair_halffull_newtoff_trim_omp.h new file mode 100644 index 0000000000..6d701b5cb6 --- /dev/null +++ b/src/OPENMP/npair_halffull_newtoff_trim_omp.h @@ -0,0 +1,44 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef NPAIR_CLASS +// clang-format off +NPairStyle(halffull/newtoff/trim/omp, + NPairHalffullNewtoffTrimOmp, + NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_HALF | + NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); + +NPairStyle(halffull/newtoff/skip/trim/omp, + NPairHalffullNewtoffTrimOmp, + NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_HALF | + NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM | NP_OMP); +// clang-format on +#else + +#ifndef LMP_NPAIR_HALFFULL_NEWTOFF_TRIM_OMP_H +#define LMP_NPAIR_HALFFULL_NEWTOFF_TRIM_OMP_H + +#include "npair.h" + +namespace LAMMPS_NS { + +class NPairHalffullNewtoffTrimOmp : public NPair { + public: + NPairHalffullNewtoffTrimOmp(class LAMMPS *); + void build(class NeighList *) override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/OPENMP/npair_halffull_newton_trim_omp.cpp b/src/OPENMP/npair_halffull_newton_trim_omp.cpp new file mode 100644 index 0000000000..cefca47a5e --- /dev/null +++ b/src/OPENMP/npair_halffull_newton_trim_omp.cpp @@ -0,0 +1,120 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "npair_halffull_newton_trim_omp.h" + +#include "atom.h" +#include "error.h" +#include "my_page.h" +#include "neigh_list.h" +#include "npair_omp.h" + +#include "omp_compat.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +NPairHalffullNewtonTrimOmp::NPairHalffullNewtonTrimOmp(LAMMPS *lmp) : NPair(lmp) {} + +/* ---------------------------------------------------------------------- + build half list from full list and trim to shorter cutoff + pair stored once if i,j are both owned and i < j + if j is ghost, only store if j coords are "above and to the right" of i + works if full list is a skip list +------------------------------------------------------------------------- */ + +void NPairHalffullNewtonTrimOmp::build(NeighList *list) +{ + const int inum_full = list->listfull->inum; + + NPAIR_OMP_INIT; +#if defined(_OPENMP) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) +#endif + NPAIR_OMP_SETUP(inum_full); + + int i,j,ii,jj,n,jnum,joriginal; + int *neighptr,*jlist; + double xtmp,ytmp,ztmp; + double delx,dely,delz,rsq; + + double **x = atom->x; + int nlocal = atom->nlocal; + + int *ilist = list->ilist; + int *numneigh = list->numneigh; + int **firstneigh = list->firstneigh; + int *ilist_full = list->listfull->ilist; + int *numneigh_full = list->listfull->numneigh; + int **firstneigh_full = list->listfull->firstneigh; + + // each thread has its own page allocator + MyPage &ipage = list->ipage[tid]; + ipage.reset(); + + double cutsq_custom = cutoff_custom * cutoff_custom; + + // loop over parent full list + + for (ii = ifrom; ii < ito; ii++) { + + n = 0; + neighptr = ipage.vget(); + + i = ilist_full[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + + // loop over full neighbor list + + jlist = firstneigh_full[i]; + jnum = numneigh_full[i]; + + for (jj = 0; jj < jnum; jj++) { + joriginal = jlist[jj]; + j = joriginal & NEIGHMASK; + if (j < nlocal) { + if (i > j) continue; + } else { + if (x[j][2] < ztmp) continue; + if (x[j][2] == ztmp) { + if (x[j][1] < ytmp) continue; + if (x[j][1] == ytmp && x[j][0] < xtmp) continue; + } + } + + // trim to shorter cutoff + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx * delx + dely * dely + delz * delz; + + if (rsq > cutsq_custom) continue; + + neighptr[n++] = joriginal; + } + + ilist[ii] = i; + firstneigh[i] = neighptr; + numneigh[i] = n; + ipage.vgot(n); + if (ipage.status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } + NPAIR_OMP_CLOSE; + list->inum = inum_full; +} diff --git a/src/OPENMP/npair_halffull_newton_trim_omp.h b/src/OPENMP/npair_halffull_newton_trim_omp.h new file mode 100644 index 0000000000..a774a68c2b --- /dev/null +++ b/src/OPENMP/npair_halffull_newton_trim_omp.h @@ -0,0 +1,44 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef NPAIR_CLASS +// clang-format off +NPairStyle(halffull/newton/trim/omp, + NPairHalffullNewtonTrimOmp, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_ORTHO | NP_TRI| NP_TRIM | NP_OMP); + +NPairStyle(halffull/newton/skip/trim/omp, + NPairHalffullNewtonTrimOmp, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM | NP_OMP); +// clang-format on +#else + +#ifndef LMP_NPAIR_HALFFULL_NEWTON_TRIM_OMP_H +#define LMP_NPAIR_HALFFULL_NEWTON_TRIM_OMP_H + +#include "npair.h" + +namespace LAMMPS_NS { + +class NPairHalffullNewtonTrimOmp : public NPair { + public: + NPairHalffullNewtonTrimOmp(class LAMMPS *); + void build(class NeighList *) override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/OPENMP/npair_trim_omp.cpp b/src/OPENMP/npair_trim_omp.cpp new file mode 100644 index 0000000000..4b3b835f8c --- /dev/null +++ b/src/OPENMP/npair_trim_omp.cpp @@ -0,0 +1,108 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "npair_trim_omp.h" + +#include "atom.h" +#include "error.h" +#include "my_page.h" +#include "neigh_list.h" +#include "npair_omp.h" + +#include "omp_compat.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +NPairTrimOmp::NPairTrimOmp(LAMMPS *lmp) : NPair(lmp) {} + +/* ---------------------------------------------------------------------- + trim from copy list to shorter cutoff +------------------------------------------------------------------------- */ + +void NPairTrimOmp::build(NeighList *list) +{ + const int inum_copy = list->listcopy->inum; + + NPAIR_OMP_INIT; + +#if defined(_OPENMP) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) +#endif + NPAIR_OMP_SETUP(inum_copy); + + int i,j,ii,jj,n,jnum,joriginal; + int *neighptr,*jlist; + double xtmp,ytmp,ztmp; + double delx,dely,delz,rsq; + + double **x = atom->x; + + int *ilist = list->ilist; + int *numneigh = list->numneigh; + int **firstneigh = list->firstneigh; + int *ilist_copy = list->listcopy->ilist; + int *numneigh_copy = list->listcopy->numneigh; + int **firstneigh_copy = list->listcopy->firstneigh; + + // each thread has its own page allocator + MyPage &ipage = list->ipage[tid]; + ipage.reset(); + + double cutsq_custom = cutoff_custom * cutoff_custom; + + // loop over atoms in copy list + + for (ii = ifrom; ii < ito; ii++) { + + n = 0; + neighptr = ipage.vget(); + + // loop over parent copy list + + i = ilist_copy[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + + jlist = firstneigh_copy[i]; + jnum = numneigh_copy[i]; + + for (jj = 0; jj < jnum; jj++) { + joriginal = jlist[jj]; + j = joriginal & NEIGHMASK; + + // trim to shorter cutoff + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx * delx + dely * dely + delz * delz; + + if (rsq > cutsq_custom) continue; + + neighptr[n++] = joriginal; + } + + ilist[ii] = i; + firstneigh[i] = neighptr; + numneigh[i] = n; + ipage.vgot(n); + if (ipage.status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } + NPAIR_OMP_CLOSE; + list->inum = inum_copy; +} diff --git a/src/OPENMP/npair_trim_omp.h b/src/OPENMP/npair_trim_omp.h new file mode 100644 index 0000000000..48cd9eb6a0 --- /dev/null +++ b/src/OPENMP/npair_trim_omp.h @@ -0,0 +1,39 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef NPAIR_CLASS +// clang-format off +NPairStyle(trim/omp, + NPairTrimOmp, + NP_COPY | NP_TRIM | NP_OMP) + +// clang-format on +#else + +#ifndef LMP_NPAIR_TRIM_OMP_H +#define LMP_NPAIR_TRIM_OMP_H + +#include "npair.h" + +namespace LAMMPS_NS { + +class NPairTrimOmp : public NPair { + public: + NPairTrimOmp(class LAMMPS *); + void build(class NeighList *) override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/OPENMP/pair_sw_omp.cpp b/src/OPENMP/pair_sw_omp.cpp index f6d615b2a1..4f579a9e90 100644 --- a/src/OPENMP/pair_sw_omp.cpp +++ b/src/OPENMP/pair_sw_omp.cpp @@ -134,14 +134,16 @@ void PairSWOMP::eval(int iifrom, int iito, ThrData * const thr) } jtag = tag[j]; - if (itag > jtag) { - if ((itag+jtag) % 2 == 0) continue; - } else if (itag < jtag) { - if ((itag+jtag) % 2 == 1) continue; - } else { - if (x[j].z < ztmp) continue; - if (x[j].z == ztmp && x[j].y < ytmp) continue; - if (x[j].z == ztmp && x[j].y == ytmp && x[j].x < xtmp) continue; + if (!skip_threebody_flag) { + if (itag > jtag) { + if ((itag+jtag) % 2 == 0) continue; + } else if (itag < jtag) { + if ((itag+jtag) % 2 == 1) continue; + } else { + if (x[j].z < ztmp) continue; + if (x[j].z == ztmp && x[j].y < ytmp) continue; + if (x[j].z == ztmp && x[j].y == ytmp && x[j].x < xtmp) continue; + } } twobody(¶ms[ijparam],rsq,fpair,EFLAG,evdwl); @@ -156,9 +158,11 @@ void PairSWOMP::eval(int iifrom, int iito, ThrData * const thr) if (EVFLAG) ev_tally_thr(this,i,j,nlocal,/* newton_pair */ 1, evdwl,0.0,fpair,delx,dely,delz,thr); } - - jnumm1 = numshort - 1; - + if (skip_threebody_flag) { + jnumm1 = 0; + } else { + jnumm1 = numshort - 1; + } for (jj = 0; jj < jnumm1; jj++) { j = neighshort_thr[jj]; jtype = map[type[j]]; diff --git a/src/REAXFF/fix_acks2_reaxff.cpp b/src/REAXFF/fix_acks2_reaxff.cpp index bd93dec0b7..be71bc761f 100644 --- a/src/REAXFF/fix_acks2_reaxff.cpp +++ b/src/REAXFF/fix_acks2_reaxff.cpp @@ -94,8 +94,8 @@ FixACKS2ReaxFF::~FixACKS2ReaxFF() memory->destroy(s_hist_X); memory->destroy(s_hist_last); - deallocate_storage(); - deallocate_matrix(); + FixACKS2ReaxFF::deallocate_storage(); + FixACKS2ReaxFF::deallocate_matrix(); } /* ---------------------------------------------------------------------- */ diff --git a/src/REAXFF/fix_qeq_reaxff.cpp b/src/REAXFF/fix_qeq_reaxff.cpp index aeeee7b71a..48e93f682a 100644 --- a/src/REAXFF/fix_qeq_reaxff.cpp +++ b/src/REAXFF/fix_qeq_reaxff.cpp @@ -163,7 +163,7 @@ FixQEqReaxFF::~FixQEqReaxFF() memory->destroy(t_hist); FixQEqReaxFF::deallocate_storage(); - deallocate_matrix(); + FixQEqReaxFF::deallocate_matrix(); memory->destroy(shld); @@ -640,7 +640,7 @@ void FixQEqReaxFF::compute_H() int jnum; int i, j, ii, jj, flag; double dx, dy, dz, r_sqr; - const double SMALL = 0.0001; + constexpr double EPSILON = 0.0001; int *type = atom->type; tagint *tag = atom->tag; @@ -671,10 +671,10 @@ void FixQEqReaxFF::compute_H() if (j < atom->nlocal) flag = 1; else if (tag[i] < tag[j]) flag = 1; else if (tag[i] == tag[j]) { - if (dz > SMALL) flag = 1; - else if (fabs(dz) < SMALL) { - if (dy > SMALL) flag = 1; - else if (fabs(dy) < SMALL && dx > SMALL) + if (dz > EPSILON) flag = 1; + else if (fabs(dz) < EPSILON) { + if (dy > EPSILON) flag = 1; + else if (fabs(dy) < EPSILON && dx > EPSILON) flag = 1; } } diff --git a/src/REAXFF/fix_reaxff_species.cpp b/src/REAXFF/fix_reaxff_species.cpp index a89cd6f0dc..e5298bdc4d 100644 --- a/src/REAXFF/fix_reaxff_species.cpp +++ b/src/REAXFF/fix_reaxff_species.cpp @@ -14,11 +14,13 @@ /* ---------------------------------------------------------------------- Contributing authors: Ray Shan (Sandia, tnshan@sandia.gov) Oleg Sergeev (VNIIA, sergeev@vniia.ru) + Jacob Gissinger (NASA, jacob.r.gissinger@gmail.com), 'delete' keyword ------------------------------------------------------------------------- */ #include "fix_reaxff_species.h" #include "atom.h" +#include "atom_vec.h" #include "comm.h" #include "domain.h" #include "error.h" @@ -45,7 +47,8 @@ FixReaxFFSpecies::FixReaxFFSpecies(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, { if (narg < 7) error->all(FLERR, "Illegal fix reaxff/species command"); - force_reneighbor = 0; + force_reneighbor = 1; + next_reneighbor = -1; vector_flag = 1; size_vector = 2; @@ -125,8 +128,10 @@ FixReaxFFSpecies::FixReaxFFSpecies(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, MolName = nullptr; MolType = nullptr; NMol = nullptr; + Mol2Spec = nullptr; nd = nullptr; molmap = nullptr; + mark = nullptr; nmax = 0; setupflag = 0; @@ -142,10 +147,11 @@ FixReaxFFSpecies::FixReaxFFSpecies(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, // optional args eletype = nullptr; - ele = filepos = nullptr; + ele = filepos = filedel = nullptr; eleflag = posflag = padflag = 0; + delflag = specieslistflag = masslimitflag = 0; - singlepos_opened = multipos_opened = 0; + singlepos_opened = multipos_opened = del_opened = 0; multipos = 0; posfreq = 0; @@ -180,6 +186,44 @@ FixReaxFFSpecies::FixReaxFFSpecies(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, eleflag = 1; iarg += ntypes + 1; + // delete species + } else if (strcmp(arg[iarg],"delete") == 0) { + delflag = 1; + filedel = new char[255]; + strcpy(filedel,arg[iarg+1]); + if (me == 0) { + fdel = fopen(filedel, "w"); + if (fdel == nullptr) error->one(FLERR,"Cannot open fix reaxff/species delete file"); + } + + del_opened = 1; + + if (strcmp(arg[iarg+2],"masslimit") == 0) { + if (iarg+5 > narg) error->all(FLERR,"Illegal fix reaxff/species command"); + masslimitflag = 1; + massmin = atof(arg[iarg+3]); + massmax = atof(arg[iarg+4]); + iarg += 5; + } else if (strcmp(arg[iarg+2],"specieslist") == 0) { + specieslistflag = 1; + ndelspec = atoi(arg[iarg+3]); + if (iarg+ndelspec+4 > narg) error->all(FLERR,"Illegal fix reaxff/species command"); + + del_species.resize(ndelspec); + for (int i = 0; i < ndelspec; i ++) + del_species[i] = arg[iarg+4+i]; + + if (me == 0) { + fprintf(fdel,"Timestep"); + for (i = 0; i < ndelspec; i++) + fprintf(fdel,"\t%s",del_species[i].c_str()); + fprintf(fdel,"\n"); + fflush(fdel); + } + + iarg += ndelspec + 4; + } else error->all(FLERR, "Illegal fix reaxff/species command"); + // position of molecules } else if (strcmp(arg[iarg], "position") == 0) { if (iarg + 3 > narg) error->all(FLERR, "Illegal fix reaxff/species command"); @@ -213,6 +257,9 @@ FixReaxFFSpecies::FixReaxFFSpecies(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, if (ntypes > 3) ele[3] = 'N'; } + if (delflag && specieslistflag && masslimitflag) + error->all(FLERR, "Illegal fix reaxff/species command"); + vector_nmole = 0; vector_nspec = 0; } @@ -229,6 +276,7 @@ FixReaxFFSpecies::~FixReaxFFSpecies() memory->destroy(nd); memory->destroy(Name); memory->destroy(NMol); + memory->destroy(Mol2Spec); memory->destroy(MolType); memory->destroy(MolName); @@ -358,6 +406,8 @@ void FixReaxFFSpecies::Output_ReaxFF_Bonds(bigint ntimestep, FILE * /*fp*/) if (me == 0) fflush(pos); } + if (delflag) DeleteSpecies(Nmole, Nspec); + nvalid += nfreq; } @@ -540,6 +590,11 @@ void FixReaxFFSpecies::FindSpecies(int Nmole, int &Nspec) memory->create(Nameall, ntypes, "reaxff/species:Nameall"); memory->create(NMolall, Nmole, "reaxff/species:NMolall"); + memory->destroy(Mol2Spec); + Mol2Spec = nullptr; + memory->create(Mol2Spec, Nmole, "reaxff/species:Mol2Spec"); + for (m = 0; m < Nmole; m++) Mol2Spec[m] = -1; + for (m = 1, Nspec = 0; m <= Nmole; m++) { for (n = 0; n < ntypes; n++) Name[n] = 0; for (n = 0, flag_mol = 0; n < nlocal; n++) { @@ -563,11 +618,15 @@ void FixReaxFFSpecies::FindSpecies(int Nmole, int &Nspec) flag_spec = 0; for (l = 0; l < ntypes; l++) if (MolName[ntypes * k + l] != Name[l]) flag_spec = 1; - if (flag_spec == 0) NMol[k]++; + if (flag_spec == 0) { + NMol[k]++; + Mol2Spec[m-1] = k; + } flag_identity *= flag_spec; } if (Nspec == 0 || flag_identity == 1) { for (l = 0; l < ntypes; l++) MolName[ntypes * Nspec + l] = Name[l]; + Mol2Spec[m-1] = Nspec; Nspec++; } } @@ -758,6 +817,169 @@ void FixReaxFFSpecies::WritePos(int Nmole, int Nspec) /* ---------------------------------------------------------------------- */ +void FixReaxFFSpecies::DeleteSpecies(int Nmole, int Nspec) +{ + int i, j, m, n, k, itype, cid; + int ndel, ndelone, count, count_tmp; + int *Nameall; + int *mask = atom->mask; + double localmass, totalmass; + double **spec_atom = f_SPECBOND->array_atom; + std::string species_str; + + AtomVec *avec = atom->avec; + + mark = nullptr; + memory->create(mark, nlocal, "reaxff/species:mark"); + for (i = 0; i < nlocal; i++) mark[i] = 0; + + Nameall = nullptr; + memory->create(Nameall, ntypes, "reaxff/species:Nameall"); + + int ndelcomm; + if (masslimitflag) ndelcomm = Nspec; + else ndelcomm = ndelspec; + + double *deletecount; + memory->create(deletecount, ndelcomm, "reaxff/species:deletecount"); + for (i = 0; i < ndelcomm; i++) deletecount[i] = 0; + + int nmarklist; + int *marklist; + memory->create(marklist, nlocal, "reaxff/species:marklist"); + + for (m = 1; m <= Nmole; m++) { + localmass = totalmass = count = nmarklist = 0; + for (n = 0; n < ntypes; n++) Name[n] = 0; + + for (i = 0; i < nlocal; i++) { + if (!(mask[i] & groupbit)) continue; + cid = nint(clusterID[i]); + if (cid == m) { + itype = atom->type[i]-1; + Name[itype]++; + count++; + marklist[nmarklist++] = i; + localmass += atom->mass[atom->type[i]]; + } + } + + MPI_Allreduce(&count, &count_tmp, 1, MPI_INT, MPI_SUM, world); + count = count_tmp; + + MPI_Allreduce(Name, Nameall, ntypes, MPI_INT, MPI_SUM, world); + for (n = 0; n < ntypes; n++) Name[n] = Nameall[n]; + + MPI_Allreduce(&localmass, &totalmass, 1 , MPI_DOUBLE, MPI_SUM, world); + + species_str = ""; + for (j = 0; j < ntypes; j++) { + if (Name[j] != 0) { + if (eletype) species_str += eletype[j]; + else species_str += ele[j]; + if (Name[j] != 1) species_str += fmt::format("{}",Name[j]); + } + } + + if (masslimitflag) { + + // find corresponding moltype + + if (totalmass > massmin && totalmass < massmax) { + for (j = 0; j < nmarklist; j++) { + mark[marklist[j]] = 1; + deletecount[Mol2Spec[m-1]] += 1.0 / (double) count; + } + } + } else { + if (count > 0) { + for (i = 0; i < ndelspec; i++) { + if (del_species[i] == species_str) { + for (j = 0; j < nmarklist; j++) { + mark[marklist[j]] = 1; + deletecount[i] += 1.0 / (double) count; + } + break; + } + } + } + } + } + + // delete atoms. loop in reverse order to avoid copying marked atoms + + ndel = ndelone = 0; + for (i = atom->nlocal-1; i >= 0; i--) { + if (mark[i] == 1) { + avec->copy(atom->nlocal-1,i,1); + atom->nlocal--; + ndelone++; + } + } + + MPI_Allreduce(&ndelone, &ndel, 1, MPI_INT, MPI_SUM, world); + + atom->natoms -= ndel; + + if (me == 0) MPI_Reduce(MPI_IN_PLACE, deletecount, ndelcomm, MPI_DOUBLE, MPI_SUM, 0, world); + else MPI_Reduce(deletecount, deletecount, ndelcomm, MPI_DOUBLE, MPI_SUM, 0, world); + + if (me == 0) { + if (masslimitflag) { + int printflag = 0; + for (int m = 0; m < Nspec; m++) { + if (deletecount[m] > 0) { + if (printflag == 0) { + fprintf(fdel, "Timestep %lld", update->ntimestep); + printflag = 1; + } + fprintf(fdel, " %g ", deletecount[m]); + for (j = 0; j < ntypes; j ++) { + int itemp = MolName[ntypes * m + j]; + if (itemp != 0) { + if (eletype) fprintf(fdel, "%s", eletype[j]); + else fprintf(fdel, "%c", ele[j]); + if (itemp != 1) fprintf(fdel, "%d", itemp); + } + } + } + } + if (printflag) { + fprintf(fdel, "\n"); + fflush(fdel); + } + } else { + int writeflag = 0; + for (i = 0; i < ndelspec; i++) + if (deletecount[i]) writeflag = 1; + + if (writeflag) { + fprintf(fdel, "%lld", update->ntimestep); + for (i = 0; i < ndelspec; i++) { + fprintf(fdel, "\t%g", deletecount[i]); + } + fprintf(fdel, "\n"); + fflush(fdel); + } + } + } + + if (ndel && (atom->map_style != Atom::MAP_NONE)) { + atom->nghost = 0; + atom->map_init(); + atom->map_set(); + } + + next_reneighbor = update->ntimestep; + + memory->destroy(Nameall); + memory->destroy(marklist); + memory->destroy(mark); + memory->destroy(deletecount); +} + +/* ---------------------------------------------------------------------- */ + double FixReaxFFSpecies::compute_vector(int n) { if (n == 0) return vector_nmole; diff --git a/src/REAXFF/fix_reaxff_species.h b/src/REAXFF/fix_reaxff_species.h index f441c3bc92..e272ff7d6c 100644 --- a/src/REAXFF/fix_reaxff_species.h +++ b/src/REAXFF/fix_reaxff_species.h @@ -45,19 +45,24 @@ class FixReaxFFSpecies : public Fix { protected: int me, nprocs, nmax, nlocal, ntypes, ntotal; - int nrepeat, nfreq, posfreq, compressed; + int nrepeat, nfreq, posfreq, compressed, ndelspec; int Nmoltype, vector_nmole, vector_nspec; - int *Name, *MolName, *NMol, *nd, *MolType, *molmap; + int *Name, *MolName, *NMol, *nd, *MolType, *molmap, *mark; + int *Mol2Spec; double *clusterID; AtomCoord *x0; double bg_cut; double **BOCut; - FILE *fp, *pos; + std::vector del_species; + + FILE *fp, *pos, *fdel; int eleflag, posflag, multipos, padflag, setupflag; - int singlepos_opened, multipos_opened; - char *ele, **eletype, *filepos; + int delflag, specieslistflag, masslimitflag; + double massmin, massmax; + int singlepos_opened, multipos_opened, del_opened; + char *ele, **eletype, *filepos, *filedel; void Output_ReaxFF_Bonds(bigint, FILE *); AtomCoord chAnchor(AtomCoord, AtomCoord); @@ -65,6 +70,7 @@ class FixReaxFFSpecies : public Fix { void SortMolecule(int &); void FindSpecies(int, int &); void WriteFormulas(int, int); + void DeleteSpecies(int, int); int CheckExistence(int, int); int nint(const double &); diff --git a/src/REAXFF/reaxff_defs.h b/src/REAXFF/reaxff_defs.h index 45fa182728..0650c518fe 100644 --- a/src/REAXFF/reaxff_defs.h +++ b/src/REAXFF/reaxff_defs.h @@ -56,6 +56,8 @@ #define REAX_MAX_3BODY_PARAM 5 #define REAX_MAX_4BODY_PARAM 5 +#define MIN_SINE 1e-10 + namespace ReaxFF { /******************* ENUMERATORS *************************/ enum { BONDS, THREE_BODIES, HBONDS, FAR_NBRS, LIST_N }; diff --git a/src/REAXFF/reaxff_torsion_angles.cpp b/src/REAXFF/reaxff_torsion_angles.cpp index 329f7b8a7a..2b94bf50ae 100644 --- a/src/REAXFF/reaxff_torsion_angles.cpp +++ b/src/REAXFF/reaxff_torsion_angles.cpp @@ -31,8 +31,6 @@ #include -#define MIN_SINE 1e-10 - namespace ReaxFF { double Calculate_Omega(rvec dvec_ij, double r_ij, rvec dvec_jk, double r_jk, rvec dvec_kl, double r_kl, rvec dvec_li, double r_li, @@ -52,6 +50,11 @@ namespace ReaxFF { sin_jkl = sin(p_jkl->theta); cos_jkl = cos(p_jkl->theta); + if (sin_ijk >= 0 && sin_ijk <= MIN_SINE) sin_ijk = MIN_SINE; + else if (sin_ijk <= 0 && sin_ijk >= -MIN_SINE) sin_ijk = -MIN_SINE; + if (sin_jkl >= 0 && sin_jkl <= MIN_SINE) sin_jkl = MIN_SINE; + else if (sin_jkl <= 0 && sin_jkl >= -MIN_SINE) sin_jkl = -MIN_SINE; + /* omega */ unnorm_cos_omega = -rvec_Dot(dvec_ij, dvec_jk) * rvec_Dot(dvec_jk, dvec_kl) + SQR(r_jk) * rvec_Dot(dvec_ij, dvec_kl); @@ -71,22 +74,16 @@ namespace ReaxFF { hnhd = r_ij * r_kl * cos_ijk * sin_jkl; hnhe = r_ij * r_kl * sin_ijk * cos_jkl; - poem = 2.0 * r_ij * r_kl * sin_ijk * sin_jkl; - if (poem < 1e-20) poem = 1e-20; - tel = SQR(r_ij) + SQR(r_jk) + SQR(r_kl) - SQR(r_li) - 2.0 * (r_ij * r_jk * cos_ijk - r_ij * r_kl * cos_ijk * cos_jkl + r_jk * r_kl * cos_jkl); + poem = 2.0 * r_ij * r_kl * sin_ijk * sin_jkl; + arg = tel / poem; if (arg > 1.0) arg = 1.0; if (arg < -1.0) arg = -1.0; - if (sin_ijk >= 0 && sin_ijk <= MIN_SINE) sin_ijk = MIN_SINE; - else if (sin_ijk <= 0 && sin_ijk >= -MIN_SINE) sin_ijk = -MIN_SINE; - if (sin_jkl >= 0 && sin_jkl <= MIN_SINE) sin_jkl = MIN_SINE; - else if (sin_jkl <= 0 && sin_jkl >= -MIN_SINE) sin_jkl = -MIN_SINE; - // dcos_omega_di rvec_ScaledSum(dcos_omega_di, (htra-arg*hnra)/r_ij, dvec_ij, -1., dvec_li); rvec_ScaledAdd(dcos_omega_di,-(hthd-arg*hnhd)/sin_ijk, p_ijk->dcos_dk); diff --git a/src/RIGID/fix_ehex.cpp b/src/RIGID/fix_ehex.cpp index 1962578691..6bbd1b7424 100644 --- a/src/RIGID/fix_ehex.cpp +++ b/src/RIGID/fix_ehex.cpp @@ -253,9 +253,10 @@ void FixEHEX::rescale() escale = 1. + (F * dt) / Kr; - // safety check for kinetic energy + // safety checks for kinetic energy rescaling - if (escale < 0.0) error->all(FLERR, "Fix ehex kinetic energy went negative"); + if (escale < 0.0) error->all(FLERR, "Fix ehex kinetic energy went negative: {}", escale); + if (escale > 100.0) error->all(FLERR, "Fix ehex kinetic energy rescaling too large: {}", escale); scale = sqrt(escale); vsub[0] = (scale - 1.0) * vcm[0]; @@ -569,7 +570,11 @@ void FixEHEX::com_properties(double *vr, double *sfr, double *sfvr, double *K, d *mr = buf[4]; - if (*mr < 1.e-14) { error->all(FLERR, "Fix ehex error mass of region is close to zero"); } + if (nlocal > 0) + mi = (rmass) ? rmass[0] : mass[type[0]]; + else + mi = 1.0; + if ((*mr / mi) < 1.e-14) error->all(FLERR, "Fix ehex error mass of region is close to zero"); // total kinetic energy of region diff --git a/src/angle.cpp b/src/angle.cpp index 3cef3fe09f..8581095dca 100644 --- a/src/angle.cpp +++ b/src/angle.cpp @@ -24,6 +24,8 @@ using namespace LAMMPS_NS; using namespace MathConst; +#define FOURTH 0.25 + /* ---------------------------------------------------------------------- */ Angle::Angle(LAMMPS *_lmp) : Pointers(_lmp) @@ -186,6 +188,7 @@ void Angle::ev_setup(int eflag, int vflag, int alloc) /* ---------------------------------------------------------------------- tally energy and virial into global and per-atom accumulators virial = r1F1 + r2F2 + r3F3 = (r1-r2) F1 + (r3-r2) F3 = del1*f1 + del2*f3 + called by standard 3-body angles ------------------------------------------------------------------------- */ void Angle::ev_tally(int i, int j, int k, int nlocal, int newton_bond, double eangle, double *f1, @@ -286,6 +289,7 @@ void Angle::ev_tally(int i, int j, int k, int nlocal, int newton_bond, double ea } // per-atom centroid virial + if (cvflag_atom) { // r0 = (r1+r2+r3)/3 @@ -312,6 +316,7 @@ void Angle::ev_tally(int i, int j, int k, int nlocal, int newton_bond, double ea cvatom[i][7] += a1[2] * f1[0]; cvatom[i][8] += a1[2] * f1[1]; } + if (newton_bond || j < nlocal) { double a2[3]; double f2[3]; @@ -335,6 +340,7 @@ void Angle::ev_tally(int i, int j, int k, int nlocal, int newton_bond, double ea cvatom[j][7] += a2[2] * f2[0]; cvatom[j][8] += a2[2] * f2[1]; } + if (newton_bond || k < nlocal) { double a3[3]; @@ -356,6 +362,192 @@ void Angle::ev_tally(int i, int j, int k, int nlocal, int newton_bond, double ea } } +/* ---------------------------------------------------------------------- + tally energy and virial into global and per-atom accumulators + virial = r1F1 + r2F2 + r3F3 + r4F4 + called by AngleAmoeba for its 4-body angle term +------------------------------------------------------------------------- */ + +void Angle::ev_tally4(int i, int j, int k, int m, int nlocal, int newton_bond, + double eangle, + double *f1, double *f2, double *f3, double *f4) +{ + double eanglefourth,v[6]; + + if (eflag_either) { + if (eflag_global) { + if (newton_bond) energy += eangle; + else { + eanglefourth = FOURTH*eangle; + if (i < nlocal) energy += eanglefourth; + if (j < nlocal) energy += eanglefourth; + if (k < nlocal) energy += eanglefourth; + } + } + if (eflag_atom) { + eanglefourth = FOURTH*eangle; + if (newton_bond || i < nlocal) eatom[i] += eanglefourth; + if (newton_bond || j < nlocal) eatom[j] += eanglefourth; + if (newton_bond || k < nlocal) eatom[k] += eanglefourth; + if (newton_bond || m < nlocal) eatom[m] += eanglefourth; + } + } + + if (vflag_either) { + double **x = atom->x; + v[0] = x[i][0]*f1[0] + x[j][0]*f2[0] + x[k][0]*f3[0] + x[m][0]*f4[0]; + v[1] = x[i][1]*f1[1] + x[j][1]*f2[1] + x[k][1]*f3[1] + x[m][1]*f4[1]; + v[2] = x[i][2]*f1[2] + x[j][2]*f2[2] + x[k][2]*f3[2] + x[m][2]*f4[2]; + v[3] = x[i][0]*f1[1] + x[j][0]*f2[1] + x[k][0]*f3[1] + x[m][0]*f4[1]; + v[4] = x[i][0]*f1[2] + x[j][0]*f2[2] + x[k][0]*f3[2] + x[m][0]*f4[2]; + v[5] = x[i][1]*f1[2] + x[j][1]*f2[2] + x[k][1]*f3[2] + x[m][1]*f4[2]; + + if (vflag_global) { + if (newton_bond) { + virial[0] += v[0]; + virial[1] += v[1]; + virial[2] += v[2]; + virial[3] += v[3]; + virial[4] += v[4]; + virial[5] += v[5]; + } else { + double prefactor = 0.0; + if (i < nlocal) prefactor += 1.0; + if (j < nlocal) prefactor += 1.0; + if (k < nlocal) prefactor += 1.0; + if (m < nlocal) prefactor += 1.0; + virial[0] += prefactor*FOURTH*v[0]; + virial[1] += prefactor*FOURTH*v[1]; + virial[2] += prefactor*FOURTH*v[2]; + virial[3] += prefactor*FOURTH*v[3]; + virial[4] += prefactor*FOURTH*v[4]; + virial[5] += prefactor*FOURTH*v[5]; + } + } + + if (vflag_atom) { + if (newton_bond || i < nlocal) { + vatom[i][0] += FOURTH*v[0]; + vatom[i][1] += FOURTH*v[1]; + vatom[i][2] += FOURTH*v[2]; + vatom[i][3] += FOURTH*v[3]; + vatom[i][4] += FOURTH*v[4]; + vatom[i][5] += FOURTH*v[5]; + } + if (newton_bond || j < nlocal) { + vatom[j][0] += FOURTH*v[0]; + vatom[j][1] += FOURTH*v[1]; + vatom[j][2] += FOURTH*v[2]; + vatom[j][3] += FOURTH*v[3]; + vatom[j][4] += FOURTH*v[4]; + vatom[j][5] += FOURTH*v[5]; + } + if (newton_bond || k < nlocal) { + vatom[k][0] += FOURTH*v[0]; + vatom[k][1] += FOURTH*v[1]; + vatom[k][2] += FOURTH*v[2]; + vatom[k][3] += FOURTH*v[3]; + vatom[k][4] += FOURTH*v[4]; + vatom[k][5] += FOURTH*v[5]; + } + if (newton_bond || m < nlocal) { + vatom[m][0] += FOURTH*v[0]; + vatom[m][1] += FOURTH*v[1]; + vatom[m][2] += FOURTH*v[2]; + vatom[m][3] += FOURTH*v[3]; + vatom[m][4] += FOURTH*v[4]; + vatom[m][5] += FOURTH*v[5]; + } + } + } +} + + +/* ---------------------------------------------------------------------- + tally energy and virial into global and per-atom accumulators + called by AngleAmoeba for its 2-body Urey-Bradley H-H bond term + identical to Bond:ev_tally() +------------------------------------------------------------------------- */ + +void Angle::ev_tally2(int i, int j, int nlocal, int newton_bond, + double ebond, double fbond, + double delx, double dely, double delz) +{ + double ebondhalf,v[6]; + + if (eflag_either) { + if (eflag_global) { + if (newton_bond) energy += ebond; + else { + ebondhalf = 0.5*ebond; + if (i < nlocal) energy += ebondhalf; + if (j < nlocal) energy += ebondhalf; + } + } + if (eflag_atom) { + ebondhalf = 0.5*ebond; + if (newton_bond || i < nlocal) eatom[i] += ebondhalf; + if (newton_bond || j < nlocal) eatom[j] += ebondhalf; + } + } + + if (vflag_either) { + v[0] = delx*delx*fbond; + v[1] = dely*dely*fbond; + v[2] = delz*delz*fbond; + v[3] = delx*dely*fbond; + v[4] = delx*delz*fbond; + v[5] = dely*delz*fbond; + + if (vflag_global) { + if (newton_bond) { + virial[0] += v[0]; + virial[1] += v[1]; + virial[2] += v[2]; + virial[3] += v[3]; + virial[4] += v[4]; + virial[5] += v[5]; + } else { + if (i < nlocal) { + virial[0] += 0.5*v[0]; + virial[1] += 0.5*v[1]; + virial[2] += 0.5*v[2]; + virial[3] += 0.5*v[3]; + virial[4] += 0.5*v[4]; + virial[5] += 0.5*v[5]; + } + if (j < nlocal) { + virial[0] += 0.5*v[0]; + virial[1] += 0.5*v[1]; + virial[2] += 0.5*v[2]; + virial[3] += 0.5*v[3]; + virial[4] += 0.5*v[4]; + virial[5] += 0.5*v[5]; + } + } + } + + if (vflag_atom) { + if (newton_bond || i < nlocal) { + vatom[i][0] += 0.5*v[0]; + vatom[i][1] += 0.5*v[1]; + vatom[i][2] += 0.5*v[2]; + vatom[i][3] += 0.5*v[3]; + vatom[i][4] += 0.5*v[4]; + vatom[i][5] += 0.5*v[5]; + } + if (newton_bond || j < nlocal) { + vatom[j][0] += 0.5*v[0]; + vatom[j][1] += 0.5*v[1]; + vatom[j][2] += 0.5*v[2]; + vatom[j][3] += 0.5*v[3]; + vatom[j][4] += 0.5*v[4]; + vatom[j][5] += 0.5*v[5]; + } + } + } +} + /* ---------------------------------------------------------------------- */ double Angle::memory_usage() diff --git a/src/angle.h b/src/angle.h index 79320a575f..5abc31bc81 100644 --- a/src/angle.h +++ b/src/angle.h @@ -89,6 +89,8 @@ class Angle : protected Pointers { void ev_setup(int, int, int alloc = 1); void ev_tally(int, int, int, int, int, double, double *, double *, double, double, double, double, double, double); + void ev_tally4(int, int, int, int, int, int, double, double *, double *, double *, double *); + void ev_tally2(int, int, int, int, double, double, double, double, double); }; } // namespace LAMMPS_NS diff --git a/src/angle_deprecated.cpp b/src/angle_deprecated.cpp index 55e1651b94..60cdab3398 100644 --- a/src/angle_deprecated.cpp +++ b/src/angle_deprecated.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -19,8 +18,8 @@ #include "angle_deprecated.h" #include "angle_hybrid.h" #include "comm.h" -#include "force.h" #include "error.h" +#include "force.h" using namespace LAMMPS_NS; @@ -33,17 +32,14 @@ void AngleDeprecated::settings(int, char **) // hybrid substyles are created in AngleHybrid::settings(), so when this is // called, our style was just added at the end of the list of substyles - if (utils::strmatch(my_style,"^hybrid")) { + if (utils::strmatch(my_style, "^hybrid")) { auto hybrid = dynamic_cast(force->angle); my_style = hybrid->keywords[hybrid->nstyles]; } if (my_style == "DEPRECATED") { - if (lmp->comm->me == 0) - utils::logmesg(lmp,"\nAngle style 'DEPRECATED' is a dummy style\n\n"); + if (lmp->comm->me == 0) utils::logmesg(lmp, "\nAngle style 'DEPRECATED' is a dummy style\n\n"); return; } - error->all(FLERR,"This angle style is no longer available"); + error->all(FLERR, "This angle style is no longer available"); } - - diff --git a/src/atom.cpp b/src/atom.cpp index 8b3ab8c75d..91b72841f0 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -204,6 +204,12 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp) rho = drho = esph = desph = cv = nullptr; vest = nullptr; + // AMOEBA package + + maxspecial15 = 1; + nspecial15 = nullptr; + special15 = nullptr; + // DIELECTRIC package area = ed = em = epsilon = curvature = q_unscaled = nullptr; @@ -534,6 +540,11 @@ void Atom::peratom_create() add_peratom("eff_plastic_strain_rate",&eff_plastic_strain_rate,DOUBLE,0); add_peratom("damage",&damage,DOUBLE,0); + // AMOEBA package + + add_peratom("nspecial15",&nspecial15,INT,0); + add_peratom_vary("special15",&special15,tagintsize,&maxspecial15,&nspecial15,0); + // DIELECTRIC package add_peratom("area",&area,DOUBLE,0); @@ -622,6 +633,7 @@ void Atom::set_atomflag_defaults() mesont_flag = 0; contact_radius_flag = smd_data_9_flag = smd_stress_flag = 0; eff_plastic_strain_flag = eff_plastic_strain_rate_flag = 0; + nspecial15_flag = 0; pdscale = 1.0; } @@ -2659,10 +2671,18 @@ void *Atom::extract(const char *name) if (strcmp(name,"body") == 0) return (void *) body; if (strcmp(name,"quat") == 0) return (void *) quat; + // PERI PACKAGE + if (strcmp(name,"vfrac") == 0) return (void *) vfrac; if (strcmp(name,"s0") == 0) return (void *) s0; if (strcmp(name,"x0") == 0) return (void *) x0; + // SPIN PACKAGE + + if (strcmp(name,"sp") == 0) return (void *) sp; + + // EFF and AWPMD packages + if (strcmp(name,"spin") == 0) return (void *) spin; if (strcmp(name,"eradius") == 0) return (void *) eradius; if (strcmp(name,"ervel") == 0) return (void *) ervel; @@ -2673,6 +2693,7 @@ void *Atom::extract(const char *name) if (strcmp(name,"vforce") == 0) return (void *) vforce; if (strcmp(name,"etag") == 0) return (void *) etag; + // SPH package if (strcmp(name,"rho") == 0) return (void *) rho; if (strcmp(name,"drho") == 0) return (void *) drho; if (strcmp(name,"esph") == 0) return (void *) esph; diff --git a/src/atom.h b/src/atom.h index 499e5f0d0f..df43898dbf 100644 --- a/src/atom.h +++ b/src/atom.h @@ -162,6 +162,12 @@ class Atom : protected Pointers { double *rho, *drho, *esph, *desph, *cv; double **vest; + // AMOEBA package + + int *nspecial15; // # of 1-5 neighs + tagint **special15; // IDs of 1-5 neighs of each atom + int maxspecial15; // special15[nlocal][maxspecial15] + // DIELECTRIC package double *area, *ed, *em, *epsilon, *curvature, *q_unscaled; @@ -199,6 +205,10 @@ class Atom : protected Pointers { int contact_radius_flag, smd_data_9_flag, smd_stress_flag; int eff_plastic_strain_flag, eff_plastic_strain_rate_flag; + // AMOEBA package + + int nspecial15_flag; + // Peridynamics scale factor, used by dump cfg double pdscale; diff --git a/src/atom_vec.cpp b/src/atom_vec.cpp index deff0cfd58..dbacf2237a 100644 --- a/src/atom_vec.cpp +++ b/src/atom_vec.cpp @@ -207,7 +207,7 @@ void AtomVec::grow(int n) if (n == 0) grow_nmax(); else - nmax = n; + nmax = MAX(n,nmax); atom->nmax = nmax; if (nmax < 0 || nmax > MAXSMALLINT) error->one(FLERR, "Per-processor system is too big"); diff --git a/src/body.cpp b/src/body.cpp index 51b2672040..f59acdfc66 100644 --- a/src/body.cpp +++ b/src/body.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -29,5 +28,5 @@ Body::Body(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp) Body::~Body() { - delete [] style; + delete[] style; } diff --git a/src/bond_deprecated.cpp b/src/bond_deprecated.cpp index 98bf6ea9ae..6d4c17b5d0 100644 --- a/src/bond_deprecated.cpp +++ b/src/bond_deprecated.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -34,17 +33,14 @@ void BondDeprecated::settings(int, char **) // hybrid substyles are created in BondHybrid::settings(), so when this is // called, our style was just added at the end of the list of substyles - if (utils::strmatch(my_style,"^hybrid")) { + if (utils::strmatch(my_style, "^hybrid")) { auto hybrid = dynamic_cast(force->bond); my_style = hybrid->keywords[hybrid->nstyles]; } if (my_style == "DEPRECATED") { - if (lmp->comm->me == 0) - utils::logmesg(lmp,"\nBond style 'DEPRECATED' is a dummy style\n\n"); + if (lmp->comm->me == 0) utils::logmesg(lmp, "\nBond style 'DEPRECATED' is a dummy style\n\n"); return; } - error->all(FLERR,"This bond style is no longer available"); + error->all(FLERR, "This bond style is no longer available"); } - - diff --git a/src/compute_angle.cpp b/src/compute_angle.cpp index e4db464f28..bf1241754d 100644 --- a/src/compute_angle.cpp +++ b/src/compute_angle.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -25,10 +24,9 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ ComputeAngle::ComputeAngle(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg), - emine(nullptr) + Compute(lmp, narg, arg), emine(nullptr) { - if (narg != 3) error->all(FLERR,"Illegal compute angle command"); + if (narg != 3) error->all(FLERR, "Illegal compute angle command"); vector_flag = 1; extvector = 1; @@ -37,9 +35,8 @@ ComputeAngle::ComputeAngle(LAMMPS *lmp, int narg, char **arg) : // check if bond style hybrid exists - angle = dynamic_cast( force->angle_match("hybrid")); - if (!angle) - error->all(FLERR,"Angle style for compute angle command is not hybrid"); + angle = dynamic_cast(force->angle_match("hybrid")); + if (!angle) error->all(FLERR, "Angle style for compute angle command is not hybrid"); size_vector = nsub = angle->nstyles; emine = new double[nsub]; @@ -50,8 +47,8 @@ ComputeAngle::ComputeAngle(LAMMPS *lmp, int narg, char **arg) : ComputeAngle::~ComputeAngle() { - delete [] emine; - delete [] vector; + delete[] emine; + delete[] vector; } /* ---------------------------------------------------------------------- */ @@ -60,11 +57,10 @@ void ComputeAngle::init() { // recheck angle style in case it has been changed - angle = dynamic_cast( force->angle_match("hybrid")); - if (!angle) - error->all(FLERR,"Angle style for compute angle command is not hybrid"); + angle = dynamic_cast(force->angle_match("hybrid")); + if (!angle) error->all(FLERR, "Angle style for compute angle command is not hybrid"); if (angle->nstyles != nsub) - error->all(FLERR,"Angle style for compute angle command has changed"); + error->all(FLERR, "Angle style for compute angle command has changed"); } /* ---------------------------------------------------------------------- */ @@ -73,10 +69,9 @@ void ComputeAngle::compute_vector() { invoked_vector = update->ntimestep; if (update->eflag_global != invoked_vector) - error->all(FLERR,"Energy was not tallied on needed timestep"); + error->all(FLERR, "Energy was not tallied on needed timestep"); - for (int i = 0; i < nsub; i++) - emine[i] = angle->styles[i]->energy; + for (int i = 0; i < nsub; i++) emine[i] = angle->styles[i]->energy; - MPI_Allreduce(emine,vector,nsub,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(emine, vector, nsub, MPI_DOUBLE, MPI_SUM, world); } diff --git a/src/compute_bond.cpp b/src/compute_bond.cpp index 38f15211e0..c0d65c55d5 100644 --- a/src/compute_bond.cpp +++ b/src/compute_bond.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -25,10 +24,9 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ ComputeBond::ComputeBond(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg), - emine(nullptr) + Compute(lmp, narg, arg), emine(nullptr) { - if (narg != 3) error->all(FLERR,"Illegal compute bond command"); + if (narg != 3) error->all(FLERR, "Illegal compute bond command"); vector_flag = 1; extvector = 1; @@ -37,9 +35,8 @@ ComputeBond::ComputeBond(LAMMPS *lmp, int narg, char **arg) : // check if bond style hybrid exists - bond = dynamic_cast( force->bond_match("hybrid")); - if (!bond) - error->all(FLERR,"Bond style for compute bond command is not hybrid"); + bond = dynamic_cast(force->bond_match("hybrid")); + if (!bond) error->all(FLERR, "Bond style for compute bond command is not hybrid"); size_vector = nsub = bond->nstyles; emine = new double[nsub]; @@ -50,8 +47,8 @@ ComputeBond::ComputeBond(LAMMPS *lmp, int narg, char **arg) : ComputeBond::~ComputeBond() { - delete [] emine; - delete [] vector; + delete[] emine; + delete[] vector; } /* ---------------------------------------------------------------------- */ @@ -60,11 +57,9 @@ void ComputeBond::init() { // recheck bond style in case it has been changed - bond = dynamic_cast( force->bond_match("hybrid")); - if (!bond) - error->all(FLERR,"Bond style for compute bond command is not hybrid"); - if (bond->nstyles != nsub) - error->all(FLERR,"Bond style for compute bond command has changed"); + bond = dynamic_cast(force->bond_match("hybrid")); + if (!bond) error->all(FLERR, "Bond style for compute bond command is not hybrid"); + if (bond->nstyles != nsub) error->all(FLERR, "Bond style for compute bond command has changed"); } /* ---------------------------------------------------------------------- */ @@ -73,10 +68,9 @@ void ComputeBond::compute_vector() { invoked_vector = update->ntimestep; if (update->eflag_global != invoked_vector) - error->all(FLERR,"Energy was not tallied on needed timestep"); + error->all(FLERR, "Energy was not tallied on needed timestep"); - for (int i = 0; i < nsub; i++) - emine[i] = bond->styles[i]->energy; + for (int i = 0; i < nsub; i++) emine[i] = bond->styles[i]->energy; - MPI_Allreduce(emine,vector,nsub,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(emine, vector, nsub, MPI_DOUBLE, MPI_SUM, world); } diff --git a/src/compute_com.cpp b/src/compute_com.cpp index e40fb6d9b3..539fd5dcd9 100644 --- a/src/compute_com.cpp +++ b/src/compute_com.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -13,18 +12,17 @@ ------------------------------------------------------------------------- */ #include "compute_com.h" -#include "update.h" -#include "group.h" #include "error.h" +#include "group.h" +#include "update.h" using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -ComputeCOM::ComputeCOM(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg) +ComputeCOM::ComputeCOM(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg) { - if (narg != 3) error->all(FLERR,"Illegal compute com command"); + if (narg != 3) error->all(FLERR, "Illegal compute com command"); vector_flag = 1; size_vector = 3; @@ -37,7 +35,7 @@ ComputeCOM::ComputeCOM(LAMMPS *lmp, int narg, char **arg) : ComputeCOM::~ComputeCOM() { - delete [] vector; + delete[] vector; } /* ---------------------------------------------------------------------- */ @@ -54,5 +52,5 @@ void ComputeCOM::compute_vector() invoked_vector = update->ntimestep; if (group->dynamic[igroup]) masstotal = group->mass(igroup); - group->xcm(igroup,masstotal,vector); + group->xcm(igroup, masstotal, vector); } diff --git a/src/compute_deprecated.cpp b/src/compute_deprecated.cpp index 4747afdf99..fca119a456 100644 --- a/src/compute_deprecated.cpp +++ b/src/compute_deprecated.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -21,15 +20,14 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -ComputeDeprecated::ComputeDeprecated(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg) +ComputeDeprecated::ComputeDeprecated(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg) { std::string my_style = style; if (my_style == "DEPRECATED") { if (lmp->comm->me == 0) - utils::logmesg(lmp,"\nCompute style 'DEPRECATED' is a dummy style\n\n"); + utils::logmesg(lmp, "\nCompute style 'DEPRECATED' is a dummy style\n\n"); return; } - error->all(FLERR,"This compute style is no longer available"); + error->all(FLERR, "This compute style is no longer available"); } diff --git a/src/compute_dihedral.cpp b/src/compute_dihedral.cpp index 86fd1b116e..2fda5b1f1c 100644 --- a/src/compute_dihedral.cpp +++ b/src/compute_dihedral.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -25,10 +24,9 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ ComputeDihedral::ComputeDihedral(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg), - emine(nullptr) + Compute(lmp, narg, arg), emine(nullptr) { - if (narg != 3) error->all(FLERR,"Illegal compute dihedral command"); + if (narg != 3) error->all(FLERR, "Illegal compute dihedral command"); vector_flag = 1; extvector = 1; @@ -37,9 +35,8 @@ ComputeDihedral::ComputeDihedral(LAMMPS *lmp, int narg, char **arg) : // check if dihedral style hybrid exists - dihedral = dynamic_cast( force->dihedral_match("hybrid")); - if (!dihedral) - error->all(FLERR, "Dihedral style for compute dihedral command is not hybrid"); + dihedral = dynamic_cast(force->dihedral_match("hybrid")); + if (!dihedral) error->all(FLERR, "Dihedral style for compute dihedral command is not hybrid"); size_vector = nsub = dihedral->nstyles; emine = new double[nsub]; @@ -50,8 +47,8 @@ ComputeDihedral::ComputeDihedral(LAMMPS *lmp, int narg, char **arg) : ComputeDihedral::~ComputeDihedral() { - delete [] emine; - delete [] vector; + delete[] emine; + delete[] vector; } /* ---------------------------------------------------------------------- */ @@ -60,11 +57,10 @@ void ComputeDihedral::init() { // recheck dihedral style in case it has been changed - dihedral = dynamic_cast( force->dihedral_match("hybrid")); - if (!dihedral) - error->all(FLERR, "Dihedral style for compute dihedral command is not hybrid"); + dihedral = dynamic_cast(force->dihedral_match("hybrid")); + if (!dihedral) error->all(FLERR, "Dihedral style for compute dihedral command is not hybrid"); if (dihedral->nstyles != nsub) - error->all(FLERR,"Dihedral style for compute dihedral command has changed"); + error->all(FLERR, "Dihedral style for compute dihedral command has changed"); } /* ---------------------------------------------------------------------- */ @@ -73,10 +69,9 @@ void ComputeDihedral::compute_vector() { invoked_vector = update->ntimestep; if (update->eflag_global != invoked_vector) - error->all(FLERR,"Energy was not tallied on needed timestep"); + error->all(FLERR, "Energy was not tallied on needed timestep"); - for (int i = 0; i < nsub; i++) - emine[i] = dihedral->styles[i]->energy; + for (int i = 0; i < nsub; i++) emine[i] = dihedral->styles[i]->energy; - MPI_Allreduce(emine,vector,nsub,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(emine, vector, nsub, MPI_DOUBLE, MPI_SUM, world); } diff --git a/src/compute_erotate_sphere.cpp b/src/compute_erotate_sphere.cpp index 22b7c4b46d..3e863eaf65 100644 --- a/src/compute_erotate_sphere.cpp +++ b/src/compute_erotate_sphere.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -21,22 +20,21 @@ using namespace LAMMPS_NS; -#define INERTIA 0.4 // moment of inertia prefactor for sphere +#define INERTIA 0.4 // moment of inertia prefactor for sphere /* ---------------------------------------------------------------------- */ ComputeERotateSphere::ComputeERotateSphere(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg) + Compute(lmp, narg, arg) { - if (narg != 3) error->all(FLERR,"Illegal compute erotate/sphere command"); + if (narg != 3) error->all(FLERR, "Illegal compute erotate/sphere command"); scalar_flag = 1; extscalar = 1; // error check - if (!atom->sphere_flag) - error->all(FLERR,"Compute erotate/sphere requires atom style sphere"); + if (!atom->sphere_flag) error->all(FLERR, "Compute erotate/sphere requires atom style sphere"); } /* ---------------------------------------------------------------------- */ @@ -64,10 +62,11 @@ double ComputeERotateSphere::compute_scalar() double erotate = 0.0; for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) - erotate += (omega[i][0]*omega[i][0] + omega[i][1]*omega[i][1] + - omega[i][2]*omega[i][2]) * radius[i]*radius[i]*rmass[i]; + erotate += + (omega[i][0] * omega[i][0] + omega[i][1] * omega[i][1] + omega[i][2] * omega[i][2]) * + radius[i] * radius[i] * rmass[i]; - MPI_Allreduce(&erotate,&scalar,1,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&erotate, &scalar, 1, MPI_DOUBLE, MPI_SUM, world); scalar *= pfactor; return scalar; } diff --git a/src/compute_improper.cpp b/src/compute_improper.cpp index 3e0780be49..d2b426c5b3 100644 --- a/src/compute_improper.cpp +++ b/src/compute_improper.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -14,21 +13,20 @@ #include "compute_improper.h" -#include "update.h" +#include "error.h" #include "force.h" #include "improper.h" #include "improper_hybrid.h" -#include "error.h" +#include "update.h" using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ ComputeImproper::ComputeImproper(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg), - emine(nullptr) + Compute(lmp, narg, arg), emine(nullptr) { - if (narg != 3) error->all(FLERR,"Illegal compute improper command"); + if (narg != 3) error->all(FLERR, "Illegal compute improper command"); vector_flag = 1; extvector = 1; @@ -37,9 +35,8 @@ ComputeImproper::ComputeImproper(LAMMPS *lmp, int narg, char **arg) : // check if improper style hybrid exists - improper = dynamic_cast( force->improper_match("hybrid")); - if (!improper) - error->all(FLERR, "Improper style for compute improper command is not hybrid"); + improper = dynamic_cast(force->improper_match("hybrid")); + if (!improper) error->all(FLERR, "Improper style for compute improper command is not hybrid"); size_vector = nsub = improper->nstyles; emine = new double[nsub]; @@ -50,8 +47,8 @@ ComputeImproper::ComputeImproper(LAMMPS *lmp, int narg, char **arg) : ComputeImproper::~ComputeImproper() { - delete [] emine; - delete [] vector; + delete[] emine; + delete[] vector; } /* ---------------------------------------------------------------------- */ @@ -60,11 +57,10 @@ void ComputeImproper::init() { // recheck improper style in case it has been changed - improper = dynamic_cast( force->improper_match("hybrid")); - if (!improper) - error->all(FLERR, "Improper style for compute improper command is not hybrid"); + improper = dynamic_cast(force->improper_match("hybrid")); + if (!improper) error->all(FLERR, "Improper style for compute improper command is not hybrid"); if (improper->nstyles != nsub) - error->all(FLERR,"Improper style for compute improper command has changed"); + error->all(FLERR, "Improper style for compute improper command has changed"); } /* ---------------------------------------------------------------------- */ @@ -73,10 +69,9 @@ void ComputeImproper::compute_vector() { invoked_vector = update->ntimestep; if (update->eflag_global != invoked_vector) - error->all(FLERR,"Energy was not tallied on needed timestep"); + error->all(FLERR, "Energy was not tallied on needed timestep"); - for (int i = 0; i < nsub; i++) - emine[i] = improper->styles[i]->energy; + for (int i = 0; i < nsub; i++) emine[i] = improper->styles[i]->energy; - MPI_Allreduce(emine,vector,nsub,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(emine, vector, nsub, MPI_DOUBLE, MPI_SUM, world); } diff --git a/src/compute_ke.cpp b/src/compute_ke.cpp index ea011eccc1..c515522195 100644 --- a/src/compute_ke.cpp +++ b/src/compute_ke.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -15,18 +14,17 @@ #include "compute_ke.h" #include "atom.h" -#include "update.h" -#include "force.h" #include "error.h" +#include "force.h" +#include "update.h" using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -ComputeKE::ComputeKE(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg) +ComputeKE::ComputeKE(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg) { - if (narg != 3) error->all(FLERR,"Illegal compute ke command"); + if (narg != 3) error->all(FLERR, "Illegal compute ke command"); scalar_flag = 1; extscalar = 1; @@ -57,15 +55,14 @@ double ComputeKE::compute_scalar() if (rmass) { for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) - ke += rmass[i] * (v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2]); + ke += rmass[i] * (v[i][0] * v[i][0] + v[i][1] * v[i][1] + v[i][2] * v[i][2]); } else { for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) - ke += mass[type[i]] * - (v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2]); + ke += mass[type[i]] * (v[i][0] * v[i][0] + v[i][1] * v[i][1] + v[i][2] * v[i][2]); } - MPI_Allreduce(&ke,&scalar,1,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&ke, &scalar, 1, MPI_DOUBLE, MPI_SUM, world); scalar *= pfactor; return scalar; } diff --git a/src/compute_stress_atom.cpp b/src/compute_stress_atom.cpp index ac69667294..f9c24847a1 100644 --- a/src/compute_stress_atom.cpp +++ b/src/compute_stress_atom.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -33,15 +32,14 @@ using namespace LAMMPS_NS; -enum{NOBIAS,BIAS}; +enum { NOBIAS, BIAS }; /* ---------------------------------------------------------------------- */ ComputeStressAtom::ComputeStressAtom(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg), - id_temp(nullptr), stress(nullptr) + Compute(lmp, narg, arg), id_temp(nullptr), stress(nullptr) { - if (narg < 4) error->all(FLERR,"Illegal compute stress/atom command"); + if (narg < 4) error->all(FLERR, "Illegal compute stress/atom command"); peratom_flag = 1; size_peratom_cols = 6; @@ -52,17 +50,15 @@ ComputeStressAtom::ComputeStressAtom(LAMMPS *lmp, int narg, char **arg) : // store temperature ID used by stress computation // insure it is valid for temperature computation - if (strcmp(arg[3],"NULL") == 0) id_temp = nullptr; + if (strcmp(arg[3], "NULL") == 0) + id_temp = nullptr; else { id_temp = utils::strdup(arg[3]); int icompute = modify->find_compute(id_temp); - if (icompute < 0) - error->all(FLERR,"Could not find compute stress/atom temperature ID"); + if (icompute < 0) error->all(FLERR, "Could not find compute stress/atom temperature ID"); if (modify->compute[icompute]->tempflag == 0) - error->all(FLERR, - "Compute stress/atom temperature ID does not " - "compute temperature"); + error->all(FLERR, "Compute stress/atom temperature ID does not compute temperature"); } // process optional args @@ -81,19 +77,28 @@ ComputeStressAtom::ComputeStressAtom(LAMMPS *lmp, int narg, char **arg) : fixflag = 0; int iarg = 4; while (iarg < narg) { - if (strcmp(arg[iarg],"ke") == 0) keflag = 1; - else if (strcmp(arg[iarg],"pair") == 0) pairflag = 1; - else if (strcmp(arg[iarg],"bond") == 0) bondflag = 1; - else if (strcmp(arg[iarg],"angle") == 0) angleflag = 1; - else if (strcmp(arg[iarg],"dihedral") == 0) dihedralflag = 1; - else if (strcmp(arg[iarg],"improper") == 0) improperflag = 1; - else if (strcmp(arg[iarg],"kspace") == 0) kspaceflag = 1; - else if (strcmp(arg[iarg],"fix") == 0) fixflag = 1; - else if (strcmp(arg[iarg],"virial") == 0) { + if (strcmp(arg[iarg], "ke") == 0) + keflag = 1; + else if (strcmp(arg[iarg], "pair") == 0) + pairflag = 1; + else if (strcmp(arg[iarg], "bond") == 0) + bondflag = 1; + else if (strcmp(arg[iarg], "angle") == 0) + angleflag = 1; + else if (strcmp(arg[iarg], "dihedral") == 0) + dihedralflag = 1; + else if (strcmp(arg[iarg], "improper") == 0) + improperflag = 1; + else if (strcmp(arg[iarg], "kspace") == 0) + kspaceflag = 1; + else if (strcmp(arg[iarg], "fix") == 0) + fixflag = 1; + else if (strcmp(arg[iarg], "virial") == 0) { pairflag = 1; bondflag = angleflag = dihedralflag = improperflag = 1; kspaceflag = fixflag = 1; - } else error->all(FLERR,"Illegal compute stress/atom command"); + } else + error->all(FLERR, "Illegal compute stress/atom command"); iarg++; } } @@ -105,7 +110,7 @@ ComputeStressAtom::ComputeStressAtom(LAMMPS *lmp, int narg, char **arg) : ComputeStressAtom::~ComputeStressAtom() { - delete [] id_temp; + delete[] id_temp; memory->destroy(stress); } @@ -118,24 +123,26 @@ void ComputeStressAtom::init() if (id_temp) { int icompute = modify->find_compute(id_temp); - if (icompute < 0) - error->all(FLERR,"Could not find compute stress/atom temperature ID"); + if (icompute < 0) error->all(FLERR, "Could not find compute stress/atom temperature ID"); temperature = modify->compute[icompute]; - if (temperature->tempbias) biasflag = BIAS; - else biasflag = NOBIAS; - } else biasflag = NOBIAS; + if (temperature->tempbias) + biasflag = BIAS; + else + biasflag = NOBIAS; + } else + biasflag = NOBIAS; } /* ---------------------------------------------------------------------- */ void ComputeStressAtom::compute_peratom() { - int i,j; + int i, j; double onemass; invoked_peratom = update->ntimestep; if (update->vflag_atom != invoked_peratom) - error->all(FLERR,"Per-atom virial was not tallied on needed timestep"); + error->all(FLERR, "Per-atom virial was not tallied on needed timestep"); // grow local stress array if necessary // needs to be atom->nmax in length @@ -143,7 +150,7 @@ void ComputeStressAtom::compute_peratom() if (atom->nmax > nmax) { memory->destroy(stress); nmax = atom->nmax; - memory->create(stress,nmax,6,"stress/atom:stress"); + memory->create(stress, nmax, 6, "stress/atom:stress"); array_atom = stress; } @@ -166,51 +173,44 @@ void ComputeStressAtom::compute_peratom() // clear local stress array for (i = 0; i < ntotal; i++) - for (j = 0; j < 6; j++) - stress[i][j] = 0.0; + for (j = 0; j < 6; j++) stress[i][j] = 0.0; // add in per-atom contributions from each force if (pairflag && force->pair && force->pair->compute_flag) { double **vatom = force->pair->vatom; for (i = 0; i < npair; i++) - for (j = 0; j < 6; j++) - stress[i][j] += vatom[i][j]; + for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j]; } if (bondflag && force->bond) { double **vatom = force->bond->vatom; for (i = 0; i < nbond; i++) - for (j = 0; j < 6; j++) - stress[i][j] += vatom[i][j]; + for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j]; } if (angleflag && force->angle) { double **vatom = force->angle->vatom; for (i = 0; i < nbond; i++) - for (j = 0; j < 6; j++) - stress[i][j] += vatom[i][j]; + for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j]; } if (dihedralflag && force->dihedral) { double **vatom = force->dihedral->vatom; for (i = 0; i < nbond; i++) - for (j = 0; j < 6; j++) - stress[i][j] += vatom[i][j]; + for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j]; } if (improperflag && force->improper) { double **vatom = force->improper->vatom; for (i = 0; i < nbond; i++) - for (j = 0; j < 6; j++) - stress[i][j] += vatom[i][j]; + for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j]; } if (kspaceflag && force->kspace && force->kspace->compute_flag) { double **vatom = force->kspace->vatom; for (i = 0; i < nkspace; i++) - for (j = 0; j < 6; j++) - stress[i][j] += vatom[i][j]; + for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j]; } // add in per-atom contributions from relevant fixes @@ -225,15 +225,13 @@ void ComputeStressAtom::compute_peratom() double **vatom = ifix->vatom; if (vatom) for (i = 0; i < nlocal; i++) - for (j = 0; j < 6; j++) - stress[i][j] += vatom[i][j]; + for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j]; } } // communicate ghost virials between neighbor procs - if (force->newton || (force->kspace && force->kspace->tip4pflag)) - comm->reverse_comm(this); + if (force->newton || (force->kspace && force->kspace->tip4pflag)) comm->reverse_comm(this); // zero virial of atoms not in group // only do this after comm since ghost contributions must be included @@ -266,24 +264,24 @@ void ComputeStressAtom::compute_peratom() for (i = 0; i < nlocal; i++) if (mask[i] & groupbit) { onemass = mvv2e * rmass[i]; - stress[i][0] += onemass*v[i][0]*v[i][0]; - stress[i][1] += onemass*v[i][1]*v[i][1]; - stress[i][2] += onemass*v[i][2]*v[i][2]; - stress[i][3] += onemass*v[i][0]*v[i][1]; - stress[i][4] += onemass*v[i][0]*v[i][2]; - stress[i][5] += onemass*v[i][1]*v[i][2]; + stress[i][0] += onemass * v[i][0] * v[i][0]; + stress[i][1] += onemass * v[i][1] * v[i][1]; + stress[i][2] += onemass * v[i][2] * v[i][2]; + stress[i][3] += onemass * v[i][0] * v[i][1]; + stress[i][4] += onemass * v[i][0] * v[i][2]; + stress[i][5] += onemass * v[i][1] * v[i][2]; } } else { for (i = 0; i < nlocal; i++) if (mask[i] & groupbit) { onemass = mvv2e * mass[type[i]]; - stress[i][0] += onemass*v[i][0]*v[i][0]; - stress[i][1] += onemass*v[i][1]*v[i][1]; - stress[i][2] += onemass*v[i][2]*v[i][2]; - stress[i][3] += onemass*v[i][0]*v[i][1]; - stress[i][4] += onemass*v[i][0]*v[i][2]; - stress[i][5] += onemass*v[i][1]*v[i][2]; + stress[i][0] += onemass * v[i][0] * v[i][0]; + stress[i][1] += onemass * v[i][1] * v[i][1]; + stress[i][2] += onemass * v[i][2] * v[i][2]; + stress[i][3] += onemass * v[i][0] * v[i][1]; + stress[i][4] += onemass * v[i][0] * v[i][2]; + stress[i][5] += onemass * v[i][1] * v[i][2]; } } @@ -292,35 +290,34 @@ void ComputeStressAtom::compute_peratom() // invoke temperature if it hasn't been already // this insures bias factor is pre-computed - if (keflag && temperature->invoked_scalar != update->ntimestep) - temperature->compute_scalar(); + if (keflag && temperature->invoked_scalar != update->ntimestep) temperature->compute_scalar(); if (rmass) { for (i = 0; i < nlocal; i++) if (mask[i] & groupbit) { - temperature->remove_bias(i,v[i]); + temperature->remove_bias(i, v[i]); onemass = mvv2e * rmass[i]; - stress[i][0] += onemass*v[i][0]*v[i][0]; - stress[i][1] += onemass*v[i][1]*v[i][1]; - stress[i][2] += onemass*v[i][2]*v[i][2]; - stress[i][3] += onemass*v[i][0]*v[i][1]; - stress[i][4] += onemass*v[i][0]*v[i][2]; - stress[i][5] += onemass*v[i][1]*v[i][2]; - temperature->restore_bias(i,v[i]); + stress[i][0] += onemass * v[i][0] * v[i][0]; + stress[i][1] += onemass * v[i][1] * v[i][1]; + stress[i][2] += onemass * v[i][2] * v[i][2]; + stress[i][3] += onemass * v[i][0] * v[i][1]; + stress[i][4] += onemass * v[i][0] * v[i][2]; + stress[i][5] += onemass * v[i][1] * v[i][2]; + temperature->restore_bias(i, v[i]); } } else { for (i = 0; i < nlocal; i++) if (mask[i] & groupbit) { - temperature->remove_bias(i,v[i]); + temperature->remove_bias(i, v[i]); onemass = mvv2e * mass[type[i]]; - stress[i][0] += onemass*v[i][0]*v[i][0]; - stress[i][1] += onemass*v[i][1]*v[i][1]; - stress[i][2] += onemass*v[i][2]*v[i][2]; - stress[i][3] += onemass*v[i][0]*v[i][1]; - stress[i][4] += onemass*v[i][0]*v[i][2]; - stress[i][5] += onemass*v[i][1]*v[i][2]; - temperature->restore_bias(i,v[i]); + stress[i][0] += onemass * v[i][0] * v[i][0]; + stress[i][1] += onemass * v[i][1] * v[i][1]; + stress[i][2] += onemass * v[i][2] * v[i][2]; + stress[i][3] += onemass * v[i][0] * v[i][1]; + stress[i][4] += onemass * v[i][0] * v[i][2]; + stress[i][5] += onemass * v[i][1] * v[i][2]; + temperature->restore_bias(i, v[i]); } } } @@ -344,7 +341,7 @@ void ComputeStressAtom::compute_peratom() int ComputeStressAtom::pack_reverse_comm(int n, int first, double *buf) { - int i,m,last; + int i, m, last; m = 0; last = first + n; @@ -363,7 +360,7 @@ int ComputeStressAtom::pack_reverse_comm(int n, int first, double *buf) void ComputeStressAtom::unpack_reverse_comm(int n, int *list, double *buf) { - int i,j,m; + int i, j, m; m = 0; for (i = 0; i < n; i++) { @@ -383,6 +380,6 @@ void ComputeStressAtom::unpack_reverse_comm(int n, int *list, double *buf) double ComputeStressAtom::memory_usage() { - double bytes = (double)nmax*6 * sizeof(double); + double bytes = (double) nmax * 6 * sizeof(double); return bytes; } diff --git a/src/create_bonds.cpp b/src/create_bonds.cpp index 7b3929db62..d316644e15 100644 --- a/src/create_bonds.cpp +++ b/src/create_bonds.cpp @@ -73,7 +73,6 @@ void CreateBonds::command(int narg, char **arg) iarg = 6; } else if (strcmp(arg[0], "single/bond") == 0) { style = SBOND; - if (narg < 4) error->all(FLERR, "Illegal create_bonds command"); btype = utils::inumeric(FLERR, arg[1], false, lmp); batom1 = utils::tnumeric(FLERR, arg[2], false, lmp); batom2 = utils::tnumeric(FLERR, arg[3], false, lmp); diff --git a/src/dihedral_deprecated.cpp b/src/dihedral_deprecated.cpp index 57ea7f1afa..63afe28dff 100644 --- a/src/dihedral_deprecated.cpp +++ b/src/dihedral_deprecated.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -23,7 +22,6 @@ #include "error.h" #include "force.h" - using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ @@ -36,15 +34,15 @@ void DihedralDeprecated::settings(int, char **) // so when this is called, our style was just added at the end // of the list of substyles - if (utils::strmatch(my_style,"^hybrid")) { + if (utils::strmatch(my_style, "^hybrid")) { auto hybrid = dynamic_cast(force->dihedral); my_style = hybrid->keywords[hybrid->nstyles]; } if (my_style == "DEPRECATED") { if (lmp->comm->me == 0) - utils::logmesg(lmp,"\nDihedral style 'DEPRECATED' is a dummy style\n\n"); + utils::logmesg(lmp, "\nDihedral style 'DEPRECATED' is a dummy style\n\n"); return; } - error->all(FLERR,"This dihedral style is no longer available"); + error->all(FLERR, "This dihedral style is no longer available"); } diff --git a/src/dump.cpp b/src/dump.cpp index 3569d32165..22750ed05c 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -332,6 +332,7 @@ void Dump::write() // if file per timestep, open new file if (multifile) openfile(); + if (fp) clearerr(fp); // simulation box bounds @@ -517,6 +518,10 @@ void Dump::write() if (refreshflag) modify->compute[irefresh]->refresh(); + if (filewriter && fp != nullptr) write_footer(); + + if (fp && ferror(fp)) error->one(FLERR,"Error writing dump {}: {}", id, utils::getsyserror()); + // if file per timestep, close file if I am filewriter if (multifile) { diff --git a/src/dump.h b/src/dump.h index a95029ada8..90866a3567 100644 --- a/src/dump.h +++ b/src/dump.h @@ -153,6 +153,8 @@ class Dump : protected Pointers { virtual void pack(tagint *) = 0; virtual int convert_string(int, double *) { return 0; } virtual void write_data(int, double *) = 0; + virtual void write_footer() {} + void pbc_allocate(); double compute_time(); diff --git a/src/dump_deprecated.cpp b/src/dump_deprecated.cpp index fdd9d06dbc..1c4fb59390 100644 --- a/src/dump_deprecated.cpp +++ b/src/dump_deprecated.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -21,15 +20,13 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -DumpDeprecated::DumpDeprecated(LAMMPS *lmp, int narg, char **arg) : - Dump(lmp, narg, arg) +DumpDeprecated::DumpDeprecated(LAMMPS *lmp, int narg, char **arg) : Dump(lmp, narg, arg) { std::string my_style = style; if (my_style == "DEPRECATED") { - if (lmp->comm->me == 0) - utils::logmesg(lmp,"\nDump style 'DEPRECATED' is a dummy style\n\n"); + if (lmp->comm->me == 0) utils::logmesg(lmp, "\nDump style 'DEPRECATED' is a dummy style\n\n"); return; } - error->all(FLERR,"This dump style is no longer available"); + error->all(FLERR, "This dump style is no longer available"); } diff --git a/src/finish.cpp b/src/finish.cpp index f0d64e1a4e..5300bf8ef7 100644 --- a/src/finish.cpp +++ b/src/finish.cpp @@ -28,6 +28,7 @@ #include "neigh_request.h" #include "neighbor.h" // IWYU pragma: keep #include "output.h" +#include "pair.h" #include "thermo.h" #include "timer.h" // IWYU pragma: keep #include "universe.h" @@ -214,6 +215,10 @@ void Finish::end(int flag) } } + // pair_style timing stats if provided + + if (force->pair) force->pair->finish(); + // PRD stats if (prdflag) { diff --git a/src/fix_deprecated.cpp b/src/fix_deprecated.cpp index 017ae9ff1b..23e219c7c1 100644 --- a/src/fix_deprecated.cpp +++ b/src/fix_deprecated.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -17,23 +16,21 @@ #include "comm.h" #include "error.h" - using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -FixDeprecated::FixDeprecated(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg) +FixDeprecated::FixDeprecated(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { std::string my_style = style; if (my_style == "DEPRECATED") { - if (lmp->comm->me == 0) - utils::logmesg(lmp,"\nFix style 'DEPRECATED' is a dummy style\n\n"); + if (lmp->comm->me == 0) utils::logmesg(lmp, "\nFix style 'DEPRECATED' is a dummy style\n\n"); return; - } else if (utils::strmatch(my_style,"^ave/spatial")) { + } else if (utils::strmatch(my_style, "^ave/spatial")) { if (lmp->comm->me == 0) - utils::logmesg(lmp,"\nFix styles 'ave/spatial' and 'ave/spatial/sphere'" + utils::logmesg(lmp, + "\nFix styles 'ave/spatial' and 'ave/spatial/sphere'" " have been replaced\nby the more general fix ave/chunk " "and compute chunk/atom commands.\nAll ave/spatial and " "ave/spatial/sphere functionality is available in these" @@ -44,14 +41,16 @@ FixDeprecated::FixDeprecated(LAMMPS *lmp, int narg, char **arg) : "compute chunk/atom:\n dim, origin, delta, region, " "bound, discard, units\n\n"); } else if (my_style == "lb/pc") { - utils::logmesg(lmp,"\nFix style 'lb/pc' has been removed from the LATBOLTZ" - " package; 'fix nve' can be used in its place.\n\n"); + utils::logmesg(lmp, + "\nFix style 'lb/pc' has been removed from the LATBOLTZ" + " package; 'fix nve' can be used in its place.\n\n"); } else if (my_style == "lb/rigid/pc/sphere") { - utils::logmesg(lmp,"\nFix style 'lb/rigid/pc/sphere' has been removed from" + utils::logmesg(lmp, + "\nFix style 'lb/rigid/pc/sphere' has been removed from" " the LATBOLTZ package; 'fix rigid' can be used in its place.\n\n"); } else if (my_style == "client/md") { if (lmp->comm->me == 0) utils::logmesg(lmp, "\nThe MESSAGE package has been replaced by the MDI package.\n\n"); } - error->all(FLERR,"This fix style is no longer available"); + error->all(FLERR, "This fix style is no longer available"); } diff --git a/src/fix_dummy.cpp b/src/fix_dummy.cpp index d8a4df173b..eb8c08f43e 100644 --- a/src/fix_dummy.cpp +++ b/src/fix_dummy.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -13,16 +12,16 @@ ------------------------------------------------------------------------- */ #include "fix_dummy.h" -#include #include "error.h" +#include + using namespace LAMMPS_NS; using namespace FixConst; /* ---------------------------------------------------------------------- */ -FixDummy::FixDummy(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg) +FixDummy::FixDummy(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { // process optional args // customize here and in setmask() by adding a new keyword from fix.h @@ -39,14 +38,22 @@ FixDummy::FixDummy(LAMMPS *lmp, int narg, char **arg) : int iarg = 3; while (iarg < narg) { - if (strcmp(arg[iarg],"initial_integrate") == 0) initial_integrate_flag = 1; - else if (strcmp(arg[iarg],"final_integrate") == 0) final_integrate_flag = 1; - else if (strcmp(arg[iarg],"pre_exchange") == 0) pre_exchange_flag = 1; - else if (strcmp(arg[iarg],"pre_neighbor") == 0) pre_neighbor_flag = 1; - else if (strcmp(arg[iarg],"pre_force") == 0) pre_force_flag = 1; - else if (strcmp(arg[iarg],"post_force") == 0) post_force_flag = 1; - else if (strcmp(arg[iarg],"end_of_step") == 0) end_of_step_flag = 1; - else error->all(FLERR,"Illegal fix DUMMY command"); + if (strcmp(arg[iarg], "initial_integrate") == 0) + initial_integrate_flag = 1; + else if (strcmp(arg[iarg], "final_integrate") == 0) + final_integrate_flag = 1; + else if (strcmp(arg[iarg], "pre_exchange") == 0) + pre_exchange_flag = 1; + else if (strcmp(arg[iarg], "pre_neighbor") == 0) + pre_neighbor_flag = 1; + else if (strcmp(arg[iarg], "pre_force") == 0) + pre_force_flag = 1; + else if (strcmp(arg[iarg], "post_force") == 0) + post_force_flag = 1; + else if (strcmp(arg[iarg], "end_of_step") == 0) + end_of_step_flag = 1; + else + error->all(FLERR, "Illegal fix DUMMY command"); iarg++; } } diff --git a/src/fix_nph.cpp b/src/fix_nph.cpp index 2f007c803e..0a8f67e4b0 100644 --- a/src/fix_nph.cpp +++ b/src/fix_nph.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -22,13 +21,10 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ -FixNPH::FixNPH(LAMMPS *lmp, int narg, char **arg) : - FixNH(lmp, narg, arg) +FixNPH::FixNPH(LAMMPS *lmp, int narg, char **arg) : FixNH(lmp, narg, arg) { - if (tstat_flag) - error->all(FLERR,"Temperature control can not be used with fix nph"); - if (!pstat_flag) - error->all(FLERR,"Pressure control must be used with fix nph"); + if (tstat_flag) error->all(FLERR, "Temperature control can not be used with fix nph"); + if (!pstat_flag) error->all(FLERR, "Pressure control must be used with fix nph"); // create a new compute temp style // id = fix-ID + temp @@ -36,7 +32,7 @@ FixNPH::FixNPH(LAMMPS *lmp, int narg, char **arg) : // and thus its KE/temperature contribution should use group all id_temp = utils::strdup(std::string(id) + "_temp"); - modify->add_compute(fmt::format("{} all temp",id_temp)); + modify->add_compute(fmt::format("{} all temp", id_temp)); tcomputeflag = 1; // create a new compute pressure style @@ -44,6 +40,6 @@ FixNPH::FixNPH(LAMMPS *lmp, int narg, char **arg) : // pass id_temp as 4th arg to pressure constructor id_press = utils::strdup(std::string(id) + "_press"); - modify->add_compute(fmt::format("{} all pressure {}",id_press, id_temp)); + modify->add_compute(fmt::format("{} all pressure {}", id_press, id_temp)); pcomputeflag = 1; } diff --git a/src/fix_nph_sphere.cpp b/src/fix_nph_sphere.cpp index bd51c3b7f7..75aab70f06 100644 --- a/src/fix_nph_sphere.cpp +++ b/src/fix_nph_sphere.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -22,13 +21,10 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ -FixNPHSphere::FixNPHSphere(LAMMPS *lmp, int narg, char **arg) : - FixNHSphere(lmp, narg, arg) +FixNPHSphere::FixNPHSphere(LAMMPS *lmp, int narg, char **arg) : FixNHSphere(lmp, narg, arg) { - if (tstat_flag) - error->all(FLERR,"Temperature control can not be used with fix nph/sphere"); - if (!pstat_flag) - error->all(FLERR,"Pressure control must be used with fix nph/sphere"); + if (tstat_flag) error->all(FLERR, "Temperature control can not be used with fix nph/sphere"); + if (!pstat_flag) error->all(FLERR, "Pressure control must be used with fix nph/sphere"); // create a new compute temp style // id = fix-ID + temp @@ -36,7 +32,7 @@ FixNPHSphere::FixNPHSphere(LAMMPS *lmp, int narg, char **arg) : // and thus its KE/temperature contribution should use group all id_temp = utils::strdup(std::string(id) + "_temp"); - modify->add_compute(fmt::format("{} all temp/sphere",id_temp)); + modify->add_compute(fmt::format("{} all temp/sphere", id_temp)); tcomputeflag = 1; // create a new compute pressure style @@ -44,6 +40,6 @@ FixNPHSphere::FixNPHSphere(LAMMPS *lmp, int narg, char **arg) : // pass id_temp as 4th arg to pressure constructor id_press = utils::strdup(std::string(id) + "_press"); - modify->add_compute(fmt::format("{} all pressure {}",id_press, id_temp)); + modify->add_compute(fmt::format("{} all pressure {}", id_press, id_temp)); pcomputeflag = 1; } diff --git a/src/fix_npt.cpp b/src/fix_npt.cpp index fb02919041..ff94ae678d 100644 --- a/src/fix_npt.cpp +++ b/src/fix_npt.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -22,13 +21,10 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ -FixNPT::FixNPT(LAMMPS *lmp, int narg, char **arg) : - FixNH(lmp, narg, arg) +FixNPT::FixNPT(LAMMPS *lmp, int narg, char **arg) : FixNH(lmp, narg, arg) { - if (!tstat_flag) - error->all(FLERR,"Temperature control must be used with fix npt"); - if (!pstat_flag) - error->all(FLERR,"Pressure control must be used with fix npt"); + if (!tstat_flag) error->all(FLERR, "Temperature control must be used with fix npt"); + if (!pstat_flag) error->all(FLERR, "Pressure control must be used with fix npt"); // create a new compute temp style // id = fix-ID + temp @@ -36,7 +32,7 @@ FixNPT::FixNPT(LAMMPS *lmp, int narg, char **arg) : // and thus its KE/temperature contribution should use group all id_temp = utils::strdup(std::string(id) + "_temp"); - modify->add_compute(fmt::format("{} all temp",id_temp)); + modify->add_compute(fmt::format("{} all temp", id_temp)); tcomputeflag = 1; // create a new compute pressure style @@ -44,6 +40,6 @@ FixNPT::FixNPT(LAMMPS *lmp, int narg, char **arg) : // pass id_temp as 4th arg to pressure constructor id_press = utils::strdup(std::string(id) + "_press"); - modify->add_compute(fmt::format("{} all pressure {}",id_press, id_temp)); + modify->add_compute(fmt::format("{} all pressure {}", id_press, id_temp)); pcomputeflag = 1; } diff --git a/src/fix_npt_sphere.cpp b/src/fix_npt_sphere.cpp index fe5d5df6f6..64279b1099 100644 --- a/src/fix_npt_sphere.cpp +++ b/src/fix_npt_sphere.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -22,13 +21,10 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ -FixNPTSphere::FixNPTSphere(LAMMPS *lmp, int narg, char **arg) : - FixNHSphere(lmp, narg, arg) +FixNPTSphere::FixNPTSphere(LAMMPS *lmp, int narg, char **arg) : FixNHSphere(lmp, narg, arg) { - if (!tstat_flag) - error->all(FLERR,"Temperature control must be used with fix npt/sphere"); - if (!pstat_flag) - error->all(FLERR,"Pressure control must be used with fix npt/sphere"); + if (!tstat_flag) error->all(FLERR, "Temperature control must be used with fix npt/sphere"); + if (!pstat_flag) error->all(FLERR, "Pressure control must be used with fix npt/sphere"); // create a new compute temp style // id = fix-ID + temp @@ -36,7 +32,7 @@ FixNPTSphere::FixNPTSphere(LAMMPS *lmp, int narg, char **arg) : // and thus its KE/temperature contribution should use group all id_temp = utils::strdup(std::string(id) + "_temp"); - modify->add_compute(fmt::format("{} all temp/sphere",id_temp)); + modify->add_compute(fmt::format("{} all temp/sphere", id_temp)); tcomputeflag = 1; // create a new compute pressure style @@ -44,6 +40,6 @@ FixNPTSphere::FixNPTSphere(LAMMPS *lmp, int narg, char **arg) : // pass id_temp as 4th arg to pressure constructor id_press = utils::strdup(std::string(id) + "_press"); - modify->add_compute(fmt::format("{} all pressure {}",id_press, id_temp)); + modify->add_compute(fmt::format("{} all pressure {}", id_press, id_temp)); pcomputeflag = 1; } diff --git a/src/fix_nve_noforce.cpp b/src/fix_nve_noforce.cpp index d043dcbd4a..7b79dcc267 100644 --- a/src/fix_nve_noforce.cpp +++ b/src/fix_nve_noforce.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -24,10 +23,9 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ -FixNVENoforce::FixNVENoforce(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg) +FixNVENoforce::FixNVENoforce(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { - if (narg != 3) error->all(FLERR,"Illegal fix nve/noforce command"); + if (narg != 3) error->all(FLERR, "Illegal fix nve/noforce command"); time_integrate = 1; } @@ -48,8 +46,8 @@ void FixNVENoforce::init() { dtv = update->dt; - if (utils::strmatch(update->integrate_style,"^respa")) - step_respa = (dynamic_cast( update->integrate))->step; + if (utils::strmatch(update->integrate_style, "^respa")) + step_respa = (dynamic_cast(update->integrate))->step; } /* ---------------------------------------------------------------------- */ @@ -75,7 +73,7 @@ void FixNVENoforce::initial_integrate(int /*vflag*/) void FixNVENoforce::initial_integrate_respa(int vflag, int ilevel, int flag) { - if (flag) return; // only used by NPT,NPH + if (flag) return; // only used by NPT,NPH dtv = step_respa[ilevel]; diff --git a/src/fix_nvt.cpp b/src/fix_nvt.cpp index e27f3ccc67..11404bf90d 100644 --- a/src/fix_nvt.cpp +++ b/src/fix_nvt.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -23,18 +22,15 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ -FixNVT::FixNVT(LAMMPS *lmp, int narg, char **arg) : - FixNH(lmp, narg, arg) +FixNVT::FixNVT(LAMMPS *lmp, int narg, char **arg) : FixNH(lmp, narg, arg) { - if (!tstat_flag) - error->all(FLERR,"Temperature control must be used with fix nvt"); - if (pstat_flag) - error->all(FLERR,"Pressure control can not be used with fix nvt"); + if (!tstat_flag) error->all(FLERR, "Temperature control must be used with fix nvt"); + if (pstat_flag) error->all(FLERR, "Pressure control can not be used with fix nvt"); // create a new compute temp style // id = fix-ID + temp id_temp = utils::strdup(std::string(id) + "_temp"); - modify->add_compute(fmt::format("{} {} temp",id_temp,group->names[igroup])); + modify->add_compute(fmt::format("{} {} temp", id_temp, group->names[igroup])); tcomputeflag = 1; } diff --git a/src/fix_nvt_sphere.cpp b/src/fix_nvt_sphere.cpp index aff4462356..349da470c7 100644 --- a/src/fix_nvt_sphere.cpp +++ b/src/fix_nvt_sphere.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -23,19 +22,15 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ -FixNVTSphere::FixNVTSphere(LAMMPS *lmp, int narg, char **arg) : - FixNHSphere(lmp, narg, arg) +FixNVTSphere::FixNVTSphere(LAMMPS *lmp, int narg, char **arg) : FixNHSphere(lmp, narg, arg) { - if (!tstat_flag) - error->all(FLERR,"Temperature control must be used with fix nvt/sphere"); - if (pstat_flag) - error->all(FLERR,"Pressure control can not be used with fix nvt/sphere"); + if (!tstat_flag) error->all(FLERR, "Temperature control must be used with fix nvt/sphere"); + if (pstat_flag) error->all(FLERR, "Pressure control can not be used with fix nvt/sphere"); // create a new compute temp style // id = fix-ID + temp id_temp = utils::strdup(std::string(id) + "_temp"); - modify->add_compute(fmt::format("{} {} temp/sphere", - id_temp,group->names[igroup])); + modify->add_compute(fmt::format("{} {} temp/sphere", id_temp, group->names[igroup])); tcomputeflag = 1; } diff --git a/src/fix_property_atom.cpp b/src/fix_property_atom.cpp index a6a1b997e3..3e09815dfe 100644 --- a/src/fix_property_atom.cpp +++ b/src/fix_property_atom.cpp @@ -30,7 +30,8 @@ enum { MOLECULE, CHARGE, RMASS, IVEC, DVEC, IARRAY, DARRAY }; /* ---------------------------------------------------------------------- */ FixPropertyAtom::FixPropertyAtom(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg), nvalue(0), styles(nullptr), index(nullptr), astyle(nullptr) + Fix(lmp, narg, arg), + nvalue(0), styles(nullptr), index(nullptr), astyle(nullptr) { if (narg < 4) error->all(FLERR, "Illegal fix property/atom command"); @@ -299,10 +300,12 @@ void FixPropertyAtom::read_data_section(char *keyword, int n, char *buf, tagint atom->dvector[index[j]][m] = values.next_double(); } else if (styles[j] == IARRAY) { ncol = cols[j]; - for (k = 0; k < ncol; k++) atom->iarray[index[j]][m][k] = values.next_int(); + for (k = 0; k < ncol; k++) + atom->iarray[index[j]][m][k] = values.next_int(); } else if (styles[j] == DARRAY) { ncol = cols[j]; - for (k = 0; k < ncol; k++) atom->darray[index[j]][m][k] = values.next_double(); + for (k = 0; k < ncol; k++) + atom->darray[index[j]][m][k] = values.next_double(); } } } @@ -563,10 +566,12 @@ void FixPropertyAtom::copy_arrays(int i, int j, int /*delflag*/) atom->dvector[index[nv]][j] = atom->dvector[index[nv]][i]; else if (styles[nv] == IARRAY) { ncol = cols[nv]; - for (k = 0; k < ncol; k++) atom->iarray[index[nv]][j][k] = atom->iarray[index[nv]][i][k]; + for (k = 0; k < ncol; k++) + atom->iarray[index[nv]][j][k] = atom->iarray[index[nv]][i][k]; } else if (styles[nv] == DARRAY) { ncol = cols[nv]; - for (k = 0; k < ncol; k++) atom->darray[index[nv]][j][k] = atom->darray[index[nv]][i][k]; + for (k = 0; k < ncol; k++) + atom->darray[index[nv]][j][k] = atom->darray[index[nv]][i][k]; } } } @@ -666,7 +671,8 @@ int FixPropertyAtom::unpack_border(int n, int first, double *buf) ncol = cols[nv]; last = first + n; for (i = first; i < last; i++) - for (k = 0; k < ncol; k++) iarray[i][k] = (int) ubuf(buf[m++]).i; + for (k = 0; k < ncol; k++) + iarray[i][k] = (int) ubuf(buf[m++]).i; } else if (styles[nv] == DARRAY) { double **darray = atom->darray[index[nv]]; ncol = cols[nv]; @@ -733,7 +739,8 @@ int FixPropertyAtom::unpack_exchange(int nlocal, double *buf) atom->dvector[index[nv]][nlocal] = buf[m++]; else if (styles[nv] == IARRAY) { ncol = cols[nv]; - for (k = 0; k < ncol; k++) atom->iarray[index[nv]][nlocal][k] = (int) ubuf(buf[m++]).i; + for (k = 0; k < ncol; k++) + atom->iarray[index[nv]][nlocal][k] = (int) ubuf(buf[m++]).i; } else if (styles[nv] == DARRAY) { ncol = cols[nv]; for (k = 0; k < ncol; k++) atom->darray[index[nv]][nlocal][k] = buf[m++]; @@ -769,10 +776,12 @@ int FixPropertyAtom::pack_restart(int i, double *buf) buf[m++] = atom->dvector[index[nv]][i]; else if (styles[nv] == IARRAY) { ncol = cols[nv]; - for (k = 0; k < ncol; k++) buf[m++] = ubuf(atom->iarray[index[nv]][i][k]).d; + for (k = 0; k < ncol; k++) + buf[m++] = ubuf(atom->iarray[index[nv]][i][k]).d; } else if (styles[nv] == DARRAY) { ncol = cols[nv]; - for (k = 0; k < ncol; k++) buf[m++] = atom->darray[index[nv]][i][k]; + for (k = 0; k < ncol; k++) + buf[m++] = atom->darray[index[nv]][i][k]; } } diff --git a/src/fix_store.cpp b/src/fix_store.cpp index 759e71a955..a80c9b0b56 100644 --- a/src/fix_store.cpp +++ b/src/fix_store.cpp @@ -31,18 +31,17 @@ enum{UNKNOWN,GLOBAL,PERATOM}; FixStore::FixStore(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), vstore(nullptr), astore(nullptr), rbuf(nullptr) { - if (narg != 6) error->all(FLERR,"Illegal fix store command"); + if (narg != 6 && narg != 7) error->all(FLERR,"Illegal fix store command"); // 4th arg determines GLOBAL vs PERATOM values - // syntax: id group style global nrow ncol - // Nrow by Ncol array of global values - // Ncol = 1 is vector, Ncol > 1 is array - // syntax: id group style peratom 0/1 nvalues + // global syntax: id group style global n1 n2 + // N2 = 1 is vector, N2 > 1 is array, no tensor allowed (yet) + // peratom syntax: id group style peratom 0/1 n1 n2 (n3), last arg optional // 0/1 flag = not-store or store peratom values in restart file + // N2 = 1 and no n3 is vector, N2 > 1 and no n3 is array, N3 = tensor // nvalues = # of peratom values, N = 1 is vector, N > 1 is array disable = 0; - nvalues = vecflag = 0; flavor = UNKNOWN; if (strcmp(arg[3],"global") == 0) flavor = GLOBAL; @@ -52,35 +51,48 @@ vstore(nullptr), astore(nullptr), rbuf(nullptr) // GLOBAL values are always written to restart file // PERATOM restart_peratom is set by caller + vecflag = arrayflag = tensorflag = 0; + if (flavor == GLOBAL) { restart_global = 1; - nrow = utils::inumeric(FLERR,arg[4],false,lmp); - ncol = utils::inumeric(FLERR,arg[5],false,lmp); - if (nrow <= 0 || ncol <= 0) - error->all(FLERR,"Illegal fix store command"); - vecflag = 0; - if (ncol == 1) vecflag = 1; + n1 = utils::inumeric(FLERR,arg[4],false,lmp); + n2 = utils::inumeric(FLERR,arg[5],false,lmp); + if (narg == 7) error->all(FLERR,"Illegal fix store command"); + if (n1 <= 0 || n2 <= 0) error->all(FLERR,"Illegal fix store command"); + if (n2 == 1) vecflag = 1; + else arrayflag = 1; + nrow = n1; + ncol = n2; } + if (flavor == PERATOM) { restart_peratom = utils::inumeric(FLERR,arg[4],false,lmp); - nvalues = utils::inumeric(FLERR,arg[5],false,lmp); - if ((restart_peratom < 0) || (restart_peratom > 1) || (nvalues <= 0)) + n2 = utils::inumeric(FLERR,arg[5],false,lmp); + if (narg == 7) n3 = utils::inumeric(FLERR,arg[6],false,lmp); + else n3 = 1; + if (restart_peratom < 0 || restart_peratom > 1) error->all(FLERR,"Illegal fix store command"); - vecflag = 0; - if (nvalues == 1) vecflag = 1; + if (n2 <= 0 || n3 <= 0) error->all(FLERR,"Illegal fix store command"); + if (n2 == 1 && narg == 6) vecflag = 1; + else if (narg == 6) arrayflag = 1; + else tensorflag = 1; + nvalues = n2*n3; + nbytes = n2*n3 * sizeof(double); } vstore = nullptr; astore = nullptr; + tstore = nullptr; - // allocate vector or array and restart buffer rbuf + // allocate data struct and restart buffer rbuf // for PERATOM, register with Atom class if (flavor == GLOBAL) { - if (vecflag) memory->create(vstore,nrow,"fix/store:vstore"); - else memory->create(astore,nrow,ncol,"fix/store:astore"); - memory->create(rbuf,nrow*ncol+2,"fix/store:rbuf"); + if (vecflag) memory->create(vstore,n1,"fix/store:vstore"); + else if (arrayflag) memory->create(astore,n1,n2,"fix/store:astore"); + memory->create(rbuf,n1*n2+2,"fix/store:rbuf"); } + if (flavor == PERATOM) { FixStore::grow_arrays(atom->nmax); atom->add_callback(Atom::GROW); @@ -92,21 +104,31 @@ vstore(nullptr), astore(nullptr), rbuf(nullptr) // PERATOM may be comm->exchanged before filled by caller if (flavor == GLOBAL) { - if (vecflag) - for (int i = 0; i < nrow; i++) vstore[i] = 0.0; - else - for (int i = 0; i < nrow; i++) - for (int j = 0; j < ncol; j++) + if (vecflag) { + for (int i = 0; i < n1; i++) + vstore[i] = 0.0; + } else if (arrayflag) { + for (int i = 0; i < n1; i++) + for (int j = 0; j < n2; j++) astore[i][j] = 0.0; + } } + if (flavor == PERATOM) { int nlocal = atom->nlocal; - if (vecflag) - for (int i = 0; i < nlocal; i++) vstore[i] = 0.0; - else + if (vecflag) { for (int i = 0; i < nlocal; i++) - for (int j = 0; j < nvalues; j++) + vstore[i] = 0.0; + } else if (arrayflag) { + for (int i = 0; i < nlocal; i++) + for (int j = 0; j < n2; j++) astore[i][j] = 0.0; + } else if (tensorflag) { + for (int i = 0; i < nlocal; i++) + for (int j = 0; j < n2; j++) + for (int k = 0; k < n3; k++) + tstore[i][j][k] = 0.0; + } maxexchange = nvalues; } } @@ -124,6 +146,7 @@ FixStore::~FixStore() memory->destroy(vstore); memory->destroy(astore); + memory->destroy(tstore); memory->destroy(rbuf); } @@ -141,7 +164,7 @@ int FixStore::setmask() caller will do subsequent initialization ------------------------------------------------------------------------- */ -void FixStore::reset_global(int nrow_caller, int ncol_caller) + void FixStore::reset_global(int n1_caller, int n2_caller) { memory->destroy(vstore); memory->destroy(astore); @@ -149,29 +172,31 @@ void FixStore::reset_global(int nrow_caller, int ncol_caller) vstore = nullptr; astore = nullptr; - vecflag = 0; - if (ncol_caller == 1) vecflag = 1; - nrow = nrow_caller; - ncol = ncol_caller; - if (vecflag) memory->create(vstore,nrow,"fix/store:vstore"); - else memory->create(astore,nrow,ncol,"fix/store:astore"); - memory->create(rbuf,nrow*ncol+2,"fix/store:rbuf"); + vecflag = arrayflag = 0; + if (n2_caller == 1) vecflag = 1; + else arrayflag = 1; + + n1 = n1_caller; + n2 = n2_caller; + if (vecflag) memory->create(vstore,n1,"fix/store:vstore"); + else if (arrayflag) memory->create(astore,n1,n2,"fix/store:astore"); + memory->create(rbuf,n1*n2+2,"fix/store:rbuf"); } /* ---------------------------------------------------------------------- - write global array to restart file + write global vector/array to restart file ------------------------------------------------------------------------- */ void FixStore::write_restart(FILE *fp) { - // fill rbuf with size and vec/array values + // fill rbuf with size and vector/array values - rbuf[0] = nrow; - rbuf[1] = ncol; - if (vecflag) memcpy(&rbuf[2],vstore,sizeof(double)*nrow); - else memcpy(&rbuf[2],&astore[0][0],sizeof(double)*nrow*ncol); + rbuf[0] = n1; + rbuf[1] = n2; + if (vecflag) memcpy(&rbuf[2],vstore,n1*sizeof(double)); + else if (arrayflag) memcpy(&rbuf[2],&astore[0][0],n1*n2*sizeof(double)); - int n = nrow*ncol + 2; + int n = n1*n2 + 2; if (comm->me == 0) { int size = n * sizeof(double); fwrite(&size,sizeof(int),1,fp); @@ -187,34 +212,35 @@ void FixStore::restart(char *buf) { // first 2 values in buf are vec/array sizes - auto dbuf = (double *) buf; - int nrow_restart = dbuf[0]; - int ncol_restart = dbuf[1]; + auto *dbuf = (double *) buf; + int n1_restart = dbuf[0]; + int n2_restart = dbuf[1]; // if size of vec/array has changed, // means the restart file is setting size of vec or array and doing init // because caller did not know size at time this fix was instantiated // reallocate vstore or astore accordingly - if (nrow != nrow_restart || ncol != ncol_restart) { + if (n1 != n1_restart || n2 != n2_restart) { memory->destroy(vstore); memory->destroy(astore); memory->destroy(rbuf); vstore = nullptr; astore = nullptr; - vecflag = 0; - if (ncol_restart == 1) vecflag = 1; - nrow = nrow_restart; - ncol = ncol_restart; - if (vecflag) memory->create(vstore,nrow,"fix/store:vstore"); - else memory->create(astore,nrow,ncol,"fix/store:astore"); - memory->create(rbuf,nrow*ncol+2,"fix/store:rbuf"); + vecflag = arrayflag = 0; + if (n2_restart == 1) vecflag = 1; + else arrayflag = 1; + n1 = n1_restart; + n2 = n2_restart; + if (vecflag) memory->create(vstore,n1,"fix/store:vstore"); + else if (arrayflag) memory->create(astore,n1,n2,"fix/store:astore"); + memory->create(rbuf,n1*n2+2,"fix/store:rbuf"); } - int n = nrow*ncol; + int n = n1*n2; if (vecflag) memcpy(vstore,&dbuf[2],n*sizeof(double)); - else memcpy(&astore[0][0],&dbuf[2],n*sizeof(double)); + else if (arrayflag) memcpy(&astore[0][0],&dbuf[2],n*sizeof(double)); } /* ---------------------------------------------------------------------- @@ -224,7 +250,8 @@ void FixStore::restart(char *buf) void FixStore::grow_arrays(int nmax) { if (vecflag) memory->grow(vstore,nmax,"store:vstore"); - else memory->grow(astore,nmax,nvalues,"store:astore"); + else if (arrayflag) memory->grow(astore,nmax,n2,"store:astore"); + else if (tensorflag) memory->grow(tstore,nmax,n2,n3,"store:tstore"); } /* ---------------------------------------------------------------------- @@ -235,10 +262,14 @@ void FixStore::copy_arrays(int i, int j, int /*delflag*/) { if (disable) return; - if (vecflag) vstore[j] = vstore[i]; - else + if (vecflag) { + vstore[j] = vstore[i]; + } else if (arrayflag) { for (int m = 0; m < nvalues; m++) astore[j][m] = astore[i][m]; + } else if (tensorflag) { + memcpy(&tstore[j][0][0],&tstore[i][0][0],nbytes); + } } /* ---------------------------------------------------------------------- @@ -249,10 +280,15 @@ int FixStore::pack_exchange(int i, double *buf) { if (disable) return 0; - if (vecflag) buf[0] = vstore[i]; - else + if (vecflag) { + buf[0] = vstore[i]; + } else if (arrayflag) { for (int m = 0; m < nvalues; m++) buf[m] = astore[i][m]; + } else if (tensorflag) { + memcpy(buf,&tstore[i][0][0],nbytes); + } + return nvalues; } @@ -264,10 +300,15 @@ int FixStore::unpack_exchange(int nlocal, double *buf) { if (disable) return 0; - if (vecflag) vstore[nlocal] = buf[0]; - else + if (vecflag) { + vstore[nlocal] = buf[0]; + } else if (arrayflag) { for (int m = 0; m < nvalues; m++) astore[nlocal][m] = buf[m]; + } else if (tensorflag) { + memcpy(&tstore[nlocal][0][0],buf,nbytes); + } + return nvalues; } @@ -284,10 +325,16 @@ int FixStore::pack_restart(int i, double *buf) // pack buf[0] this way because other fixes unpack it buf[0] = nvalues+1; - if (vecflag) buf[1] = vstore[i]; - else + + if (vecflag) { + buf[1] = vstore[i]; + } else if (arrayflag) { for (int m = 0; m < nvalues; m++) buf[m+1] = astore[i][m]; + } else if (tensorflag) { + memcpy(&buf[1],&tstore[i][0][0],nbytes); + } + return nvalues+1; } @@ -308,10 +355,14 @@ void FixStore::unpack_restart(int nlocal, int nth) for (int i = 0; i < nth; i++) m += static_cast (extra[nlocal][m]); m++; - if (vecflag) vstore[nlocal] = extra[nlocal][m]; - else + if (vecflag) { + vstore[nlocal] = extra[nlocal][m]; + } else if (arrayflag) { for (int i = 0; i < nvalues; i++) astore[nlocal][i] = extra[nlocal][m++]; + } else if (tensorflag) { + memcpy(&tstore[nlocal][0][0],&extra[nlocal][m],nbytes); + } } /* ---------------------------------------------------------------------- @@ -335,13 +386,13 @@ int FixStore::size_restart(int /*nlocal*/) } /* ---------------------------------------------------------------------- - memory usage of local atom-based array + memory usage of global or peratom atom-based array ------------------------------------------------------------------------- */ double FixStore::memory_usage() { double bytes = 0.0; - if (flavor == GLOBAL) bytes += (double)nrow*ncol * sizeof(double); - if (flavor == PERATOM) bytes += (double)atom->nmax*nvalues * sizeof(double); + if (flavor == GLOBAL) bytes += n1*n2 * sizeof(double); + if (flavor == PERATOM) bytes += atom->nmax*n2*n3 * sizeof(double); return bytes; } diff --git a/src/fix_store.h b/src/fix_store.h index bde2cdb08f..3beafab21f 100644 --- a/src/fix_store.h +++ b/src/fix_store.h @@ -26,10 +26,10 @@ namespace LAMMPS_NS { class FixStore : public Fix { public: - int nrow, ncol; // size of global data array - int nvalues; // number of per-atom values + int nrow,ncol; // copy of n1,n2 for GLOBAL array for classes to access double *vstore; // vector storage for GLOBAL or PERATOM double **astore; // array storage for GLOBAL or PERATOM + double ***tstore; // tensor (3d array) storage for PERATOM int disable; // 1 if operations (except grow) are currently disabled FixStore(class LAMMPS *, int, char **); @@ -52,10 +52,16 @@ class FixStore : public Fix { double memory_usage() override; private: - int flavor; // GLOBAL or PERATOM - int vecflag; // 1 if ncol=1 or nvalues=1 + int flavor; // GLOBAL or PERATOM + int vecflag; // 1 if ncol=1 or nvalues=1 + int arrayflag; // 1 if a 2d array (vector per atom) + int tensorflag; // 1 if a 3d array (array per atom) - double *rbuf; // restart buffer for GLOBAL vec/array + int n1,n2,n3; // size of 3d dims of data struct + int nvalues; // number of per-atom values + int nbytes; // number of per-atom bytes + + double *rbuf; // restart buffer for GLOBAL vec/array/tensor }; } // namespace LAMMPS_NS diff --git a/src/fix_wall_harmonic.cpp b/src/fix_wall_harmonic.cpp index 1afca23c96..4b55dde8aa 100644 --- a/src/fix_wall_harmonic.cpp +++ b/src/fix_wall_harmonic.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -21,8 +20,7 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ -FixWallHarmonic::FixWallHarmonic(LAMMPS *lmp, int narg, char **arg) : - FixWall(lmp, narg, arg) +FixWallHarmonic::FixWallHarmonic(LAMMPS *lmp, int narg, char **arg) : FixWall(lmp, narg, arg) { dynamic_group_allow = 1; } @@ -36,7 +34,7 @@ FixWallHarmonic::FixWallHarmonic(LAMMPS *lmp, int narg, char **arg) : void FixWallHarmonic::wall_particle(int m, int which, double coord) { - double delta,dr,fwall; + double delta, dr, fwall; double vn; double **x = atom->x; @@ -52,25 +50,29 @@ void FixWallHarmonic::wall_particle(int m, int which, double coord) for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { - if (side < 0) delta = x[i][dim] - coord; - else delta = coord - x[i][dim]; + if (side < 0) + delta = x[i][dim] - coord; + else + delta = coord - x[i][dim]; if (delta >= cutoff[m]) continue; if (delta <= 0.0) { onflag = 1; continue; } - dr = cutoff[m]-delta; - fwall = side * 2.0*epsilon[m]*dr; + dr = cutoff[m] - delta; + fwall = side * 2.0 * epsilon[m] * dr; f[i][dim] -= fwall; - ewall[0] += epsilon[m]*dr*dr; - ewall[m+1] += fwall; + ewall[0] += epsilon[m] * dr * dr; + ewall[m + 1] += fwall; if (evflag) { - if (side < 0) vn = -fwall*delta; - else vn = fwall*delta; - v_tally(dim,i,vn); + if (side < 0) + vn = -fwall * delta; + else + vn = fwall * delta; + v_tally(dim, i, vn); } } - if (onflag) error->one(FLERR,"Particle on or inside fix wall surface"); + if (onflag) error->one(FLERR, "Particle on or inside fix wall surface"); } diff --git a/src/fix_wall_morse.cpp b/src/fix_wall_morse.cpp index afac920c01..942e8e0e04 100644 --- a/src/fix_wall_morse.cpp +++ b/src/fix_wall_morse.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -13,17 +12,17 @@ ------------------------------------------------------------------------- */ #include "fix_wall_morse.h" -#include #include "atom.h" #include "error.h" +#include + using namespace LAMMPS_NS; using namespace FixConst; /* ---------------------------------------------------------------------- */ -FixWallMorse::FixWallMorse(LAMMPS *lmp, int narg, char **arg) : - FixWall(lmp, narg, arg) +FixWallMorse::FixWallMorse(LAMMPS *lmp, int narg, char **arg) : FixWall(lmp, narg, arg) { dynamic_group_allow = 1; } @@ -34,7 +33,7 @@ void FixWallMorse::precompute(int m) { coeff1[m] = 2.0 * epsilon[m] * alpha[m]; const double alpha_dr = -alpha[m] * (cutoff[m] - sigma[m]); - offset[m] = epsilon[m] * (exp(2.0*alpha_dr) - 2.0*exp(alpha_dr)); + offset[m] = epsilon[m] * (exp(2.0 * alpha_dr) - 2.0 * exp(alpha_dr)); } /* ---------------------------------------------------------------------- @@ -46,7 +45,7 @@ void FixWallMorse::precompute(int m) void FixWallMorse::wall_particle(int m, int which, double coord) { - double delta,fwall; + double delta, fwall; double vn; double **x = atom->x; @@ -62,8 +61,10 @@ void FixWallMorse::wall_particle(int m, int which, double coord) for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { - if (side < 0) delta = x[i][dim] - coord; - else delta = coord - x[i][dim]; + if (side < 0) + delta = x[i][dim] - coord; + else + delta = coord - x[i][dim]; if (delta >= cutoff[m]) continue; if (delta <= 0.0) { onflag = 1; @@ -71,18 +72,20 @@ void FixWallMorse::wall_particle(int m, int which, double coord) } double dr = delta - sigma[m]; double dexp = exp(-alpha[m] * dr); - fwall = side * coeff1[m] * (dexp*dexp - dexp) / delta; - ewall[0] += epsilon[m] * (dexp*dexp - 2.0*dexp) - offset[m]; + fwall = side * coeff1[m] * (dexp * dexp - dexp) / delta; + ewall[0] += epsilon[m] * (dexp * dexp - 2.0 * dexp) - offset[m]; f[i][dim] -= fwall; - ewall[m+1] += fwall; + ewall[m + 1] += fwall; if (evflag) { - if (side < 0) vn = -fwall*delta; - else vn = fwall*delta; + if (side < 0) + vn = -fwall * delta; + else + vn = fwall * delta; v_tally(dim, i, vn); } } } - if (onflag) error->one(FLERR,"Particle on or inside fix wall surface"); + if (onflag) error->one(FLERR, "Particle on or inside fix wall surface"); } diff --git a/src/fmt/core.h b/src/fmt/core.h index 8444cd9546..2fafa777ba 100644 --- a/src/fmt/core.h +++ b/src/fmt/core.h @@ -315,7 +315,9 @@ // Enable minimal optimizations for more compact code in debug mode. FMT_GCC_PRAGMA("GCC push_options") -#ifndef __OPTIMIZE__ +// LAMMPS CUSTOMIZATION: suppress warning about pragma with KOKKOS +#if !defined(__OPTIMIZE__) && !defined(LMP_KOKKOS) +// END LAMMPS CUSTOMIZATION FMT_GCC_PRAGMA("GCC optimize(\"Og\")") #endif diff --git a/src/force.cpp b/src/force.cpp index 8bed122451..300c020c4b 100644 --- a/src/force.cpp +++ b/src/force.cpp @@ -53,6 +53,7 @@ Force::Force(LAMMPS *lmp) : Pointers(lmp) special_lj[1] = special_lj[2] = special_lj[3] = 0.0; special_coul[1] = special_coul[2] = special_coul[3] = 0.0; special_angle = special_dihedral = 0; + special_onefive = 0; special_extra = 0; dielectric = 1.0; @@ -704,6 +705,7 @@ void Force::set_special(int narg, char **arg) special_lj[1] = special_lj[2] = special_lj[3] = 0.0; special_coul[1] = special_coul[2] = special_coul[3] = 0.0; special_angle = special_dihedral = 0; + special_onefive = 0; int iarg = 0; while (iarg < narg) { @@ -769,8 +771,16 @@ void Force::set_special(int narg, char **arg) if (iarg + 2 > narg) error->all(FLERR, "Illegal special_bonds command"); special_dihedral = utils::logical(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else - error->all(FLERR, "Illegal special_bonds command"); + } else if (strcmp(arg[iarg],"one/five") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal special_bonds command"); + if (strcmp(arg[iarg+1],"no") == 0) special_onefive = 0; + else if (strcmp(arg[iarg+1],"yes") == 0) special_onefive = 1; + else error->all(FLERR,"Illegal special_bonds command"); + if (special_onefive && atom->nspecial15_flag == 0) + error->all(FLERR,"Cannot set special_bonds one/five if " + "atom style does not support it"); + iarg += 2; + } else error->all(FLERR,"Illegal special_bonds command"); } for (int i = 1; i <= 3; i++) diff --git a/src/force.h b/src/force.h index d196555304..23eeb7e167 100644 --- a/src/force.h +++ b/src/force.h @@ -115,6 +115,7 @@ class Force : protected Pointers { int special_dihedral; // 0 if defined dihedrals are ignored // 1 if only weight 1,4 atoms if in a dihedral int special_extra; // extra space for added bonds + int special_onefive; // 0 if 1-5 neighbors are not stored, 1 if yes Force(class LAMMPS *); ~Force() override; diff --git a/src/gridcomm.cpp b/src/gridcomm.cpp index 57cbb130f5..fc53026cc8 100644 --- a/src/gridcomm.cpp +++ b/src/gridcomm.cpp @@ -17,6 +17,7 @@ #include "comm.h" #include "error.h" #include "irregular.h" +#include "pair.h" #include "kspace.h" #include "fix.h" #include "memory.h" @@ -935,6 +936,9 @@ void GridComm::forward_comm(int caller, void *ptr, int nper, int nbyte, int whic if (caller == KSPACE) forward_comm_regular((KSpace *) ptr,nper,nbyte,which, buf1,buf2,datatype); + else if (caller == PAIR) + forward_comm_regular((Pair *) ptr,nper,nbyte,which, + buf1,buf2,datatype); else if (caller == FIX) forward_comm_regular((Fix *) ptr,nper,nbyte,which, buf1,buf2,datatype); @@ -942,6 +946,9 @@ void GridComm::forward_comm(int caller, void *ptr, int nper, int nbyte, int whic if (caller == KSPACE) forward_comm_tiled((KSpace *) ptr,nper,nbyte,which, buf1,buf2,datatype); + else if (caller == PAIR) + forward_comm_tiled((Pair *) ptr,nper,nbyte,which, + buf1,buf2,datatype); else if (caller == FIX) forward_comm_tiled((Fix *) ptr,nper,nbyte, which,buf1,buf2,datatype); @@ -1034,6 +1041,9 @@ void GridComm::reverse_comm(int caller, void *ptr, int nper, int nbyte, int whic if (caller == KSPACE) reverse_comm_regular((KSpace *) ptr,nper,nbyte,which, buf1,buf2,datatype); + else if (caller == PAIR) + reverse_comm_regular((Pair *) ptr,nper,nbyte,which, + buf1,buf2,datatype); else if (caller == FIX) reverse_comm_regular((Fix *) ptr,nper,nbyte,which, buf1,buf2,datatype); @@ -1041,6 +1051,9 @@ void GridComm::reverse_comm(int caller, void *ptr, int nper, int nbyte, int whic if (caller == KSPACE) reverse_comm_tiled((KSpace *) ptr,nper,nbyte,which, buf1,buf2,datatype); + else if (caller == PAIR) + reverse_comm_tiled((Pair *) ptr,nper,nbyte,which, + buf1,buf2,datatype); else if (caller == FIX) reverse_comm_tiled((Fix *) ptr,nper,nbyte,which, buf1,buf2,datatype); diff --git a/src/gridcomm.h b/src/gridcomm.h index dec43a789a..011faad9fb 100644 --- a/src/gridcomm.h +++ b/src/gridcomm.h @@ -20,7 +20,7 @@ namespace LAMMPS_NS { class GridComm : protected Pointers { public: - enum { KSPACE = 0, FIX = 1 }; // calling classes + enum { KSPACE = 0, PAIR = 1, FIX = 2 }; // calling classes GridComm(class LAMMPS *, MPI_Comm, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int); diff --git a/src/improper_deprecated.cpp b/src/improper_deprecated.cpp index b1e3d3511b..7b757e62e1 100644 --- a/src/improper_deprecated.cpp +++ b/src/improper_deprecated.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories diff --git a/src/info.cpp b/src/info.cpp index 2261b1d12d..fd8c233868 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -1296,45 +1296,45 @@ std::string Info::get_accelerator_info(const std::string &package) void Info::get_memory_info(double *meminfo) { - double bytes = 0; - bytes += atom->memory_usage(); - bytes += neighbor->memory_usage(); - bytes += comm->memory_usage(); - bytes += update->memory_usage(); - bytes += force->memory_usage(); - bytes += modify->memory_usage(); - for (int i = 0; i < output->ndump; i++) - bytes += output->dump[i]->memory_usage(); - meminfo[0] = bytes/1024.0/1024.0; - meminfo[1] = 0; - meminfo[2] = 0; + double bytes = 0; + bytes += atom->memory_usage(); + bytes += neighbor->memory_usage(); + bytes += comm->memory_usage(); + bytes += update->memory_usage(); + bytes += force->memory_usage(); + bytes += modify->memory_usage(); + for (int i = 0; i < output->ndump; i++) + bytes += output->dump[i]->memory_usage(); + meminfo[0] = bytes/1024.0/1024.0; + meminfo[1] = 0; + meminfo[2] = 0; #if defined(_WIN32) - HANDLE phandle = GetCurrentProcess(); - PROCESS_MEMORY_COUNTERS_EX pmc; - GetProcessMemoryInfo(phandle,(PROCESS_MEMORY_COUNTERS *)&pmc,sizeof(pmc)); - meminfo[1] = (double)pmc.PrivateUsage/1048576.0; - meminfo[2] = (double)pmc.PeakWorkingSetSize/1048576.0; + HANDLE phandle = GetCurrentProcess(); + PROCESS_MEMORY_COUNTERS_EX pmc; + GetProcessMemoryInfo(phandle,(PROCESS_MEMORY_COUNTERS *)&pmc,sizeof(pmc)); + meminfo[1] = (double)pmc.PrivateUsage/1048576.0; + meminfo[2] = (double)pmc.PeakWorkingSetSize/1048576.0; #else #if defined(__linux__) #if defined(__GLIBC__) && __GLIBC_PREREQ(2, 33) - struct mallinfo2 mi; - mi = mallinfo2(); + struct mallinfo2 mi; + mi = mallinfo2(); #else - struct mallinfo mi; - mi = mallinfo(); + struct mallinfo mi; + mi = mallinfo(); #endif - meminfo[1] = (double)mi.uordblks/1048576.0+(double)mi.hblkhd/1048576.0; + meminfo[1] = (double)mi.uordblks/1048576.0+(double)mi.hblkhd/1048576.0; #endif - struct rusage ru; - if (getrusage(RUSAGE_SELF, &ru) == 0) - meminfo[2] = (double)ru.ru_maxrss/1024.0; + struct rusage ru; + if (getrusage(RUSAGE_SELF, &ru) == 0) + meminfo[2] = (double)ru.ru_maxrss/1024.0; #endif } /* ---------------------------------------------------------------------- */ char **Info::get_variable_names(int &num) { - num = input->variable->nvar; - return input->variable->names; + num = input->variable->nvar; + return input->variable->names; } diff --git a/src/input.cpp b/src/input.cpp index a28bd48296..2979503d30 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -188,17 +188,20 @@ of the file is reached. The *infile* pointer will usually point to void Input::file() { - int m,n; + int m,n,mstart,ntriple,endfile; while (true) { // read a line from input script - // n = length of line including str terminator, 0 if end of file + // when done, n = length of line including str terminator, 0 if end of file // if line ends in continuation char '&', concatenate next line + // if triple quotes are used, read until closing triple quotes if (me == 0) { - + ntriple = 0; + endfile = 0; m = 0; + while (true) { if (infile == nullptr) { @@ -206,38 +209,58 @@ void Input::file() break; } - if (maxline-m < 2) reallocate(line,maxline,0); + mstart = m; - // end of file reached, so break - // n == 0 if nothing read, else n = line with str terminator + while (1) { + if (maxline-m < 2) reallocate(line,maxline,0); - if (fgets(&line[m],maxline-m,infile) == nullptr) { - if (m) n = strlen(line) + 1; - else n = 0; + // end of file reached, so break + // n == 0 if nothing read, else n = line with str terminator + + if (fgets(&line[m],maxline-m,infile) == nullptr) { + endfile = 1; + if (m) n = strlen(line) + 1; + else n = 0; + break; + } + + // continue if last char read was not a newline + // can happen if line is very long + + m += strlen(&line[m]); + if (line[m-1] != '\n') continue; break; } - // continue if last char read was not a newline - // could happen if line is very long + if (endfile) break; - m = strlen(line); - if (line[m-1] != '\n') continue; + // add # of triple quotes in just-read line to ntriple - // continue reading if final printable char is & char - // or if odd number of triple quotes - // else break with n = line with str terminator + ntriple += numtriple(&line[mstart]); + + // trim whitespace from end of line + // line[m] = last printable char m--; while (m >= 0 && isspace(line[m])) m--; - if (m < 0 || line[m] != '&') { - if (numtriple(line) % 2) { - m += 2; - continue; - } - line[m+1] = '\0'; - n = m+2; - break; + + // continue reading if final printable char is "&" + + if (m >= 0 && line[m] == '&') continue; + + // continue reading if odd number of triple quotes + + if (ntriple % 2) { + line[m+1] = '\n'; + m += 2; + continue; } + + // done, break with n = length of line with str terminator + + line[m+1] = '\0'; + n = m+2; + break; } } @@ -371,8 +394,9 @@ char *Input::one(const std::string &single) } /* ---------------------------------------------------------------------- - Send text to active echo file pointers + send text to active echo file pointers ------------------------------------------------------------------------- */ + void Input::write_echo(const std::string &txt) { if (me == 0) { @@ -399,34 +423,35 @@ void Input::parse() if (n > maxcopy) reallocate(copy,maxcopy,n); strcpy(copy,line); - // strip any # comment by replacing it with 0 - // do not strip from a # inside single/double/triple quotes - // quoteflag = 1,2,3 when encounter first single/double,triple quote - // quoteflag = 0 when encounter matching single/double,triple quote + // strip a # comment by replacing it with 0 + // do not treat a # inside single/double/triple quotes as a comment - int quoteflag = 0; + char *ptrmatch; char *ptr = copy; + while (*ptr) { - if (*ptr == '#' && !quoteflag) { + if (*ptr == '#') { *ptr = '\0'; break; } - if (quoteflag == 0) { + if (*ptr == '\'') { + ptrmatch = strchr(ptr+1,'\''); + if (ptrmatch == NULL) + error->all(FLERR,"Unmatched single quote in command"); + ptr = ptrmatch + 1; + } else if (*ptr == '"') { if (strstr(ptr,"\"\"\"") == ptr) { - quoteflag = 3; - ptr += 2; + ptrmatch = strstr(ptr+3,"\"\"\""); + if (ptrmatch == NULL) + error->all(FLERR,"Unmatched triple quote in command"); + ptr = ptrmatch + 3; + } else { + ptrmatch = strchr(ptr+1,'"'); + if (ptrmatch == NULL) + error->all(FLERR,"Unmatched double quote in command"); + ptr = ptrmatch + 1; } - else if (*ptr == '"') quoteflag = 2; - else if (*ptr == '\'') quoteflag = 1; - } else { - if (quoteflag == 3 && strstr(ptr,"\"\"\"") == ptr) { - quoteflag = 0; - ptr += 2; - } - else if (quoteflag == 2 && *ptr == '"') quoteflag = 0; - else if (quoteflag == 1 && *ptr == '\'') quoteflag = 0; - } - ptr++; + } else ptr++; } if (utils::has_utf8(copy)) { @@ -534,16 +559,18 @@ void Input::substitute(char *&str, char *&str2, int &max, int &max2, int flag) { // use str2 as scratch space to expand str, then copy back to str // reallocate str and str2 as necessary - // do not replace $ inside single/double/triple quotes + // do not replace variables inside single/double/triple quotes // var = pts at variable name, ended by null char // if $ is followed by '{', trailing '}' becomes null char // else $x becomes x followed by null char // beyond = points to text following variable - int i,n,paren_count; + int i,n,paren_count,nchars;; char immediate[256]; char *var,*value,*beyond; int quoteflag = 0; + char *ptrmatch; + char *ptr = str; n = strlen(str) + 1; @@ -637,34 +664,41 @@ void Input::substitute(char *&str, char *&str2, int &max, int &max2, int flag) if (echo_log && logfile) fprintf(logfile,"%s%s\n",str2,beyond); } - continue; - } + // check for single/double/triple quotes and skip past them - // quoteflag = 1,2,3 when encounter first single/double,triple quote - // quoteflag = 0 when encounter matching single/double,triple quote - // copy 2 extra triple quote chars into str2 - - if (quoteflag == 0) { + } else if (*ptr == '\'') { + ptrmatch = strchr(ptr+1,'\''); + if (ptrmatch == NULL) + error->all(FLERR,"Unmatched single quote in command"); + nchars = ptrmatch+1 - ptr; + strncpy(ptr2,ptr,nchars); + ptr += nchars; + ptr2 += nchars; + } else if (*ptr == '"') { if (strstr(ptr,"\"\"\"") == ptr) { - quoteflag = 3; - *ptr2++ = *ptr++; - *ptr2++ = *ptr++; + ptrmatch = strstr(ptr+3,"\"\"\""); + if (ptrmatch == NULL) + error->all(FLERR,"Unmatched triple quote in command"); + nchars = ptrmatch+3 - ptr; + strncpy(ptr2,ptr,nchars); + ptr += nchars; + ptr2 += nchars; + } else { + ptrmatch = strchr(ptr+1,'"'); + if (ptrmatch == NULL) + error->all(FLERR,"Unmatched double quote in command"); + nchars = ptrmatch+1 - ptr; + strncpy(ptr2,ptr,nchars); + ptr += nchars; + ptr2 += nchars; } - else if (*ptr == '"') quoteflag = 2; - else if (*ptr == '\'') quoteflag = 1; - } else { - if (quoteflag == 3 && strstr(ptr,"\"\"\"") == ptr) { - quoteflag = 0; - *ptr2++ = *ptr++; - *ptr2++ = *ptr++; - } - else if (quoteflag == 2 && *ptr == '"') quoteflag = 0; - else if (quoteflag == 1 && *ptr == '\'') quoteflag = 0; - } - // copy current character into str2 + // else copy current single character into str2 + + } else *ptr2++ = *ptr++; + + // terminate current str2 so variable sub can perform strlen() - *ptr2++ = *ptr++; *ptr2 = '\0'; } @@ -1781,6 +1815,7 @@ void Input::special_bonds() double lj3 = force->special_lj[3]; double coul2 = force->special_coul[2]; double coul3 = force->special_coul[3]; + int onefive = force->special_onefive; int angle = force->special_angle; int dihedral = force->special_dihedral; @@ -1791,6 +1826,7 @@ void Input::special_bonds() if (domain->box_exist && atom->molecular == Atom::MOLECULAR) { if (lj2 != force->special_lj[2] || lj3 != force->special_lj[3] || coul2 != force->special_coul[2] || coul3 != force->special_coul[3] || + onefive != force->special_onefive || angle != force->special_angle || dihedral != force->special_dihedral) { Special special(lmp); diff --git a/src/kspace_deprecated.cpp b/src/kspace_deprecated.cpp index 46a3e6df6b..62605542d8 100644 --- a/src/kspace_deprecated.cpp +++ b/src/kspace_deprecated.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -19,8 +18,8 @@ #include "kspace_deprecated.h" #include "comm.h" -#include "force.h" #include "error.h" +#include "force.h" using namespace LAMMPS_NS; @@ -31,11 +30,8 @@ void KSpaceDeprecated::settings(int, char **) std::string my_style = force->kspace_style; if (my_style == "DEPRECATED") { - if (lmp->comm->me == 0) - utils::logmesg(lmp,"\nKSpace style 'DEPRECATED' is a dummy style\n\n"); + if (lmp->comm->me == 0) utils::logmesg(lmp, "\nKSpace style 'DEPRECATED' is a dummy style\n\n"); return; } - error->all(FLERR,"This kspace style is no longer available"); + error->all(FLERR, "This kspace style is no longer available"); } - - diff --git a/src/lammps.cpp b/src/lammps.cpp index c74983be43..e78f9e2019 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -129,9 +129,8 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) : version = (const char *) LAMMPS_VERSION; num_ver = utils::date2num(version); - clientserver = 0; - cslib = nullptr; - cscomm = 0; + external_comm = 0; + mdicomm = nullptr; skiprunflag = 0; @@ -155,19 +154,16 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) : #endif // check if -mpicolor is first arg - // if so, then 2 apps were launched with one mpirun command + // if so, then 2 or more apps were launched with one mpirun command // this means passed communicator (e.g. MPI_COMM_WORLD) is bigger than LAMMPS - // e.g. for client/server coupling with another code - // in the future LAMMPS might leverage this in other ways // universe communicator needs to shrink to be just LAMMPS // syntax: -mpicolor color - // color = integer for this app, different than other app(s) + // color = integer for this app, different than any other app(s) // do the following: // perform an MPI_Comm_split() to create a new LAMMPS-only subcomm - // NOTE: this assumes other app(s) does same thing, else will hang! + // NOTE: this assumes other app(s) make same call, else will hang! // re-create universe with subcomm - // store full multi-app comm in cscomm - // cscomm is used by CSLIB package to exchange messages w/ other app + // store comm that all apps belong to in external_comm int iarg = 1; if (narg-iarg >= 2 && (strcmp(arg[iarg],"-mpicolor") == 0 || @@ -178,7 +174,7 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) : int color = atoi(arg[iarg+1]); MPI_Comm subcomm; MPI_Comm_split(communicator,color,me,&subcomm); - cscomm = communicator; + external_comm = communicator; communicator = subcomm; delete universe; universe = new Universe(this,communicator); @@ -290,7 +286,7 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) : logflag = iarg + 1; iarg += 2; - } else if (strcmp(arg[iarg],"-mpi") == 0 || + } else if (strcmp(arg[iarg],"-mpicolor") == 0 || strcmp(arg[iarg],"-m") == 0) { if (iarg+2 > narg) error->universe_all(FLERR,"Invalid command-line argument"); @@ -446,8 +442,7 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) : // sum of procs in all worlds must equal total # of procs if (!universe->consistent()) - error->universe_all(FLERR,"Processor partitions do not match " - "number of allocated processors"); + error->universe_all(FLERR,"Processor partitions do not match number of allocated processors"); // universe cannot use stdin for input file @@ -516,10 +511,15 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) : else infile = fopen(arg[inflag],"r"); if (infile == nullptr) error->one(FLERR,"Cannot open input script {}: {}", arg[inflag], utils::getsyserror()); + if (!helpflag) + utils::logmesg(this,fmt::format("LAMMPS ({}{})\n",version,UPDATE_STRING)); + // warn against using I/O redirection in parallel runs + if ((inflag == 0) && (universe->nprocs > 1)) + error->warning(FLERR, "Using I/O redirection is unreliable with parallel runs. " + "Better use -in switch to read input file."); + utils::flush_buffers(this); } - if ((universe->me == 0) && !helpflag) - utils::logmesg(this,fmt::format("LAMMPS ({}{})\n",version,UPDATE_STRING)); // universe is one or more worlds, as setup by partition switch // split universe communicator into separate world communicators @@ -762,13 +762,13 @@ LAMMPS::~LAMMPS() delete [] suffix2; delete [] suffixp; - // free the MPI comm created by -mpi command-line arg processed in constructor + // free the MPI comm created by -mpicolor cmdline arg processed in constructor // it was passed to universe as if original universe world // may have been split later by partitions, universe will free the splits // free a copy of uorig here, so check in universe destructor will still work MPI_Comm copy = universe->uorig; - if (cscomm) MPI_Comm_free(©); + if (external_comm) MPI_Comm_free(©); delete input; delete universe; diff --git a/src/lammps.h b/src/lammps.h index 4f3e9cf110..4cdb873db9 100644 --- a/src/lammps.h +++ b/src/lammps.h @@ -61,13 +61,15 @@ class LAMMPS { char *suffix, *suffix2, *suffixp; // suffixes to add to input script style names int suffix_enable; // 1 if suffixes are enabled, 0 if disabled char *exename; // pointer to argv[0] - // + char ***packargs; // arguments for cmdline package commands int num_package; // number of cmdline package commands - // - int clientserver; // 0 = neither, 1 = client, 2 = server - void *cslib; // client/server messaging via CSlib - MPI_Comm cscomm; // MPI comm for client+server in mpi/one mode + + MPI_Comm external_comm; // MPI comm encompassing external programs + // when multiple programs launched by mpirun + // set by -mpicolor command line arg + + void *mdicomm; // for use with MDI code coupling library const char *match_style(const char *style, const char *name); static const char *installed_packages[]; diff --git a/src/library.cpp b/src/library.cpp index c799f3a113..f64e5fdf03 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1659,14 +1659,18 @@ lists the available options. - LMP_TYPE_ARRAY - ``double **`` - Local data array + * - LMP_STYLE_LOCAL + - LMP_SIZE_VECTOR + - ``int *`` + - Alias for using LMP_SIZE_ROWS * - LMP_STYLE_LOCAL - LMP_SIZE_ROWS - ``int *`` - - Number of local data rows + - Number of local array rows or length of vector * - LMP_STYLE_LOCAL - LMP_SIZE_COLS - ``int *`` - - Number of local data columns + - Number of local array columns, 0 if vector .. warning:: @@ -1749,6 +1753,7 @@ void *lammps_extract_compute(void *handle, const char *id, int style, int type) if (type == LMP_TYPE_SCALAR) return (void *) &compute->size_local_rows; /* for backward compatibility */ if (type == LMP_TYPE_VECTOR) return (void *) compute->vector_local; if (type == LMP_TYPE_ARRAY) return (void *) compute->array_local; + if (type == LMP_SIZE_VECTOR) return (void *) &compute->size_local_rows; /* alias for LMP_SIZE_ROWS */ if (type == LMP_SIZE_ROWS) return (void *) &compute->size_local_rows; if (type == LMP_SIZE_COLS) return (void *) &compute->size_local_cols; } diff --git a/src/memory.h b/src/memory.h index b680821d0d..5493b5fa57 100644 --- a/src/memory.h +++ b/src/memory.h @@ -27,7 +27,7 @@ class Memory : protected Pointers { void sfree(void *); void fail(const char *); - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- create/grow/destroy vecs and multidim arrays with contiguous memory blocks only use with primitive data types, e.g. 1d vec of ints, 2d array of doubles fail() prevents use with pointers, @@ -36,7 +36,7 @@ class Memory : protected Pointers { for these other cases, use smalloc/srealloc/sfree directly ------------------------------------------------------------------------- */ - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- create a 1d array ------------------------------------------------------------------------- */ @@ -56,7 +56,7 @@ class Memory : protected Pointers { return nullptr; } - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- grow or shrink 1d array ------------------------------------------------------------------------- */ @@ -91,7 +91,7 @@ class Memory : protected Pointers { array = nullptr; } - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- create a 1d array with index from nlo to nhi inclusive cannot grow it ------------------------------------------------------------------------- */ @@ -114,7 +114,7 @@ class Memory : protected Pointers { return nullptr; } - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- destroy a 1d array with index offset ------------------------------------------------------------------------- */ @@ -124,7 +124,7 @@ class Memory : protected Pointers { array = nullptr; } - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- create a 2d array ------------------------------------------------------------------------- */ @@ -153,7 +153,7 @@ class Memory : protected Pointers { return nullptr; } - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- grow or shrink 1st dim of a 2d array last dim must stay the same ------------------------------------------------------------------------- */ @@ -188,7 +188,7 @@ class Memory : protected Pointers { return nullptr; } - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- destroy a 2d array ------------------------------------------------------------------------- */ @@ -200,7 +200,7 @@ class Memory : protected Pointers { array = nullptr; } - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- create a 2d array with a ragged 2nd dimension ------------------------------------------------------------------------- */ @@ -426,10 +426,10 @@ class Memory : protected Pointers { array = nullptr; } - /* ---------------------------------------------------------------------- - create a 3d array with - 1st index from n1lo to n1hi inclusive, - 2nd index from n2lo to n2hi inclusive, +/* ---------------------------------------------------------------------- + create a 3d array with all 3 indices offset + 1st index from n1lo to n1hi inclusive + 2nd index from n2lo to n2hi inclusive 3rd index from n3lo to n3hi inclusive cannot grow it ------------------------------------------------------------------------- */ @@ -588,8 +588,8 @@ class Memory : protected Pointers { array = nullptr; } - /* ---------------------------------------------------------------------- - create a 4d array with indices +/* ---------------------------------------------------------------------- + create a 4d array with indices 2,3,4 offset 2nd index from n2lo to n2hi inclusive 3rd index from n3lo to n3hi inclusive 4th index from n4lo to n4hi inclusive @@ -638,7 +638,57 @@ class Memory : protected Pointers { array = nullptr; } - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- + create a 4d array with indices 1,2,3 offset + 1st index from n1lo to n2hi inclusive + 2nd index from n3lo to n3hi inclusive + 3rd index from n4lo to n4hi inclusive + cannot grow it +------------------------------------------------------------------------- */ + + template + TYPE ****create4d_offset_last(TYPE ****&array, int n1lo, int n1hi, + int n2lo, int n2hi, int n3lo, int n3hi, int n4, + const char *name) + { + if (n1lo > n1hi || n2lo > n2hi || n3lo > n3hi || n4 <= 0) return nullptr; + + int n1 = n1hi - n1lo + 1; + int n2 = n2hi - n2lo + 1; + int n3 = n3hi - n3lo + 1; + create(array,n1,n2,n3,n4,name); + + bigint m = ((bigint) n1) * n2; + for (bigint i = 0; i < m; i++) array[0][i] -= n3lo; + for (int i = 0; i < n1; i++) array[i] -= n2lo; + array -= n1lo; + return array; + } + + template + TYPE ****create4d_offset_last(TYPE *****& /*array*/, int /*n1lo*/, int /*n1hi*/, + int /*n2lo*/, int /*n2hi*/, + int /*n3lo*/, int /*n3hi*/, int /*n4*/, + const char *name) + {fail(name); return nullptr;} + +/* ---------------------------------------------------------------------- + free a 4d array with indices 1,2,3 offset +------------------------------------------------------------------------- */ + + template + void destroy4d_offset_last(TYPE ****&array, + int n1_offset, int n2_offset, int n3_offset) + { + if (array == nullptr) return; + sfree(&array[n1_offset][n2_offset][n3_offset][0]); + sfree(&array[n1_offset][n2_offset][n3_offset]); + sfree(&array[n1_offset][n2_offset]); + sfree(&array[n1_offset]); + array = nullptr; + } + +/* ---------------------------------------------------------------------- create a 5d array ------------------------------------------------------------------------- */ @@ -692,7 +742,7 @@ class Memory : protected Pointers { return nullptr; } - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- destroy a 5d array ------------------------------------------------------------------------- */ @@ -707,7 +757,7 @@ class Memory : protected Pointers { array = nullptr; } - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- memory usage of arrays, including pointers ------------------------------------------------------------------------- */ diff --git a/src/minimize.cpp b/src/minimize.cpp index 206bc51914..e9c6ec25b3 100644 --- a/src/minimize.cpp +++ b/src/minimize.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -32,28 +31,26 @@ Minimize::Minimize(LAMMPS *lmp) : Command(lmp) {} void Minimize::command(int narg, char **arg) { - if (narg != 4) error->all(FLERR,"Illegal minimize command"); + if (narg != 4) error->all(FLERR, "Illegal minimize command"); if (domain->box_exist == 0) - error->all(FLERR,"Minimize command before simulation box is defined"); + error->all(FLERR, "Minimize command before simulation box is defined"); // ignore minimize command, if walltime limit was already reached if (timer->is_timeout()) return; - update->etol = utils::numeric(FLERR,arg[0],false,lmp); - update->ftol = utils::numeric(FLERR,arg[1],false,lmp); - update->nsteps = utils::inumeric(FLERR,arg[2],false,lmp); - update->max_eval = utils::inumeric(FLERR,arg[3],false,lmp); + update->etol = utils::numeric(FLERR, arg[0], false, lmp); + update->ftol = utils::numeric(FLERR, arg[1], false, lmp); + update->nsteps = utils::inumeric(FLERR, arg[2], false, lmp); + update->max_eval = utils::inumeric(FLERR, arg[3], false, lmp); - if (update->etol < 0.0 || update->ftol < 0.0) - error->all(FLERR,"Illegal minimize command"); + if (update->etol < 0.0 || update->ftol < 0.0) error->all(FLERR, "Illegal minimize command"); if (lmp->citeme) lmp->citeme->flush(); update->whichflag = 2; update->beginstep = update->firststep = update->ntimestep; update->endstep = update->laststep = update->firststep + update->nsteps; - if (update->laststep < 0) - error->all(FLERR,"Too many iterations"); + if (update->laststep < 0) error->all(FLERR, "Too many iterations"); lmp->init(); timer->init_timeout(); diff --git a/src/modify.cpp b/src/modify.cpp index 90b911b9ab..aac08bb31e 100644 --- a/src/modify.cpp +++ b/src/modify.cpp @@ -806,8 +806,10 @@ Fix *Modify::add_fix(int narg, char **arg, int trysuffix) // since some fixes access domain settings in their constructor // nullptr must be last entry in this list - const char *exceptions[] = {"GPU", "OMP", "INTEL", "property/atom", "cmap", - "cmap3", "rx", "deprecated", "STORE/KIM", nullptr}; + const char *exceptions[] = + {"GPU", "OMP", "INTEL", "property/atom", "cmap", "cmap3", "rx", + "deprecated", "STORE/KIM", "amoeba/pitorsion", "amoeba/bitorsion", + nullptr}; if (domain->box_exist == 0) { int m; diff --git a/src/neigh_list.cpp b/src/neigh_list.cpp index dc76b242e9..d8fe7a8c27 100644 --- a/src/neigh_list.cpp +++ b/src/neigh_list.cpp @@ -48,6 +48,7 @@ NeighList::NeighList(LAMMPS *lmp) : Pointers(lmp) respamiddle = 0; respainner = 0; copy = 0; + trim = 0; copymode = 0; // ptrs @@ -97,7 +98,8 @@ NeighList::NeighList(LAMMPS *lmp) : Pointers(lmp) NeighList::~NeighList() { if (copymode) return; - if (!copy) { + + if (!copy || trim || kk2cpu) { memory->destroy(ilist); memory->destroy(numneigh); memory->sfree(firstneigh); @@ -144,6 +146,7 @@ void NeighList::post_constructor(NeighRequest *nq) respamiddle = nq->respamiddle; respainner = nq->respainner; copy = nq->copy; + trim = nq->trim; id = nq->id; if (nq->copy) { @@ -286,6 +289,8 @@ void NeighList::print_attributes() printf(" %d = skip flag\n",rq->skip); printf(" %d = off2on\n",rq->off2on); printf(" %d = copy flag\n",rq->copy); + printf(" %d = trim flag\n",rq->trim); + printf(" %d = kk2cpu flag\n",kk2cpu); printf(" %d = half/full\n",rq->halffull); printf("\n"); } diff --git a/src/neigh_list.h b/src/neigh_list.h index abd9b8205e..9b1bc238e6 100644 --- a/src/neigh_list.h +++ b/src/neigh_list.h @@ -42,6 +42,7 @@ class NeighList : protected Pointers { int respamiddle; // 1 if there is also a rRespa middle list int respainner; // 1 if there is also a rRespa inner list int copy; // 1 if this list is copied from another list + int trim; // 1 if this list is trimmed from another list int kk2cpu; // 1 if this list is copied from Kokkos to CPU int copymode; // 1 if this is a Kokkos on-device copy int id; // copied from neighbor list request diff --git a/src/neigh_request.cpp b/src/neigh_request.cpp index f859ca0fd4..37da50eaea 100644 --- a/src/neigh_request.cpp +++ b/src/neigh_request.cpp @@ -86,6 +86,7 @@ NeighRequest::NeighRequest(LAMMPS *_lmp) : Pointers(_lmp) skiplist = -1; off2on = 0; copy = 0; + trim = 0; copylist = -1; halffull = 0; halffulllist = -1; diff --git a/src/neigh_request.h b/src/neigh_request.h index 71c5987dbe..13b5b11466 100644 --- a/src/neigh_request.h +++ b/src/neigh_request.h @@ -102,6 +102,7 @@ class NeighRequest : protected Pointers { int off2on; // 1 if this is newton on list, but skips from off list int copy; // 1 if this list copied from another list + int trim; // 1 if this list trimmed from another list int copylist; // index of list to copy from int halffull; // 1 if half list computed from another full list diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 2c7ce0004b..03e22f46c5 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -162,6 +162,7 @@ pairclass(nullptr), pairnames(nullptr), pairmasks(nullptr) nrequest = maxrequest = 0; requests = nullptr; + j_sorted = nullptr; old_nrequest = 0; old_requests = nullptr; @@ -254,6 +255,8 @@ Neighbor::~Neighbor() if (old_requests[i]) delete old_requests[i]; memory->sfree(old_requests); + delete[] j_sorted; + delete[] binclass; delete[] binnames; delete[] binmasks; @@ -504,8 +507,8 @@ void Neighbor::init() // flag = 0 if both LJ/Coulomb special values are 0.0 // flag = 1 if both LJ/Coulomb special values are 1.0 // flag = 2 otherwise or if KSpace solver is enabled - // pairwise portion of KSpace solver uses all 1-2,1-3,1-4 neighbors - // or selected Coulomb-approixmation pair styles require it + // b/c pairwise portion of KSpace solver uses all 1-2,1-3,1-4 neighbors + // some Coulomb-approximation pair styles also require it (below) if (force->special_lj[1] == 0.0 && force->special_coul[1] == 0.0) special_flag[1] = 0; @@ -525,10 +528,10 @@ void Neighbor::init() special_flag[3] = 1; else special_flag[3] = 2; - // We cannot remove special neighbors with kspace or kspace-like pair styles - // as the exclusion needs to remove the full coulomb and not the damped interaction. - // Special treatment is required for hybrid pair styles since Force::pair_match() - // will only return a non-null pointer if there is only one substyle of the kind. + // cannot remove special neighbors with kspace or kspace-like pair styles + // b/c exclusion needs to remove the full coulomb and not the damped interaction + // special treatment required for hybrid pair styles since Force::pair_match() + // will only return a non-NULL pointer if there is only one substyle of the kind if (force->kspace) { special_flag[1] = special_flag[2] = special_flag[3] = 2; @@ -537,7 +540,8 @@ void Neighbor::init() if (ph) { int flag=0; for (int isub=0; isub < ph->nstyles; ++isub) { - if (force->pair_match("coul/wolf",0,isub) + if (force->pair_match("amoeba",0,isub) + || force->pair_match("coul/wolf",0,isub) || force->pair_match("coul/dsf",0,isub) || force->pair_match("coul/exclude",0) || force->pair_match("thole",0,isub)) @@ -546,7 +550,8 @@ void Neighbor::init() if (flag) special_flag[1] = special_flag[2] = special_flag[3] = 2; } else { - if (force->pair_match("coul/wolf",0) + if (force->pair_match("amoeba",0) + || force->pair_match("coul/wolf",0) || force->pair_match("coul/dsf",0) || force->pair_match("coul/exclude",0) || force->pair_match("thole",0)) @@ -840,15 +845,22 @@ int Neighbor::init_pair() // (3) after (2), b/c it adjusts lists created by (2) // (4) after (2) and (3), // b/c (2) may create new full lists, (3) may change them - // (5) last, after all lists are finalized, so all possible copies found + // (5) last, after all lists are finalized, so all possible copies/trims found int nrequest_original = nrequest; morph_unique(); morph_skip(); morph_granular(); // this method can change flags set by requestor + + // sort requests by cutoff distance for trimming, used by + // morph_halffull and morph_copy_trim. Must come after + // morph_skip() which change the number of requests + + sort_requests(); + morph_halffull(); - morph_copy(); + morph_copy_trim(); // create new lists, one per request including added requests // wait to allocate initial pages until copy lists are detected @@ -1007,8 +1019,8 @@ int Neighbor::init_pair() // allocate initial pages for each list, except if copy flag set for (i = 0; i < nlist; i++) { - if (lists[i]->copy && !lists[i]->kk2cpu) - continue; + if (lists[i]->copy && !lists[i]->trim && !lists[i]->kk2cpu) + continue; lists[i]->setup_pages(pgsize,oneatom); } @@ -1020,7 +1032,7 @@ int Neighbor::init_pair() int maxatom = atom->nmax; for (i = 0; i < nlist; i++) { - if (neigh_pair[i] && (!lists[i]->copy || lists[i]->kk2cpu)) + if (neigh_pair[i] && (!lists[i]->copy || lists[i]->trim || lists[i]->kk2cpu)) lists[i]->grow(maxatom,maxatom); } @@ -1092,6 +1104,43 @@ int Neighbor::init_pair() return same; } +/* ---------------------------------------------------------------------- + sort NeighRequests by cutoff distance + to find smallest list for trimming +------------------------------------------------------------------------- */ + +void Neighbor::sort_requests() +{ + NeighRequest *jrq; + int i,j,jmin; + double jcut; + + delete[] j_sorted; + j_sorted = new int[nrequest]; + + for (i = 0; i < nrequest; i++) + j_sorted[i] = i; + + for (i = 0; i < nrequest; i++) { + double cutoff_min = cutneighmax; + jmin = i; + + for (j = i; j < nrequest-1; j++) { + jrq = requests[j_sorted[j]]; + if (jrq->cut) jcut = jrq->cutoff; + else jcut = cutneighmax; + + if (jcut <= cutoff_min) { + cutoff_min = jcut; + jmin = j; + } + } + int tmp = j_sorted[i]; + j_sorted[i] = j_sorted[jmin]; + j_sorted[jmin] = tmp; + } +} + /* ---------------------------------------------------------------------- scan NeighRequests to set additional flags: custom cutoff lists and accelerator lists @@ -1104,10 +1153,23 @@ void Neighbor::morph_unique() for (int i = 0; i < nrequest; i++) { irq = requests[i]; - // if cut flag set by requestor, set unique flag + // if cut flag set by requestor and cutoff is different than default, + // set unique flag, otherwise unset cut flag // this forces Pair,Stencil,Bin styles to be instantiated separately + // also add skin to cutoff of perpetual lists - if (irq->cut) irq->unique = 1; + if (irq->cut) { + if (!irq->occasional) + irq->cutoff += skin; + + if (irq->cutoff != cutneighmax) { + irq->unique = 1; + + } else { + irq->cut = 0; + irq->cutoff = 0.0; + } + } // avoid flagging a neighbor list as both INTEL and OPENMP @@ -1292,11 +1354,13 @@ void Neighbor::morph_granular() void Neighbor::morph_halffull() { - int i,j; + int i,j,jj,jmin; NeighRequest *irq,*jrq; + double icut,jcut; for (i = 0; i < nrequest; i++) { irq = requests[i]; + int trim_flag = irq->trim; // only processing half lists @@ -1309,8 +1373,10 @@ void Neighbor::morph_halffull() // check all other lists - for (j = 0; j < nrequest; j++) { - if (i == j) continue; + for (jj = 0; jj < nrequest; jj++) { + if (irq->cut) j = j_sorted[jj]; + else j = jj; + jrq = requests[j]; // can only derive from a perpetual full list @@ -1319,10 +1385,20 @@ void Neighbor::morph_halffull() if (jrq->occasional) continue; if (!jrq->full) continue; + // trim a list with longer cutoff + + if (irq->cut) icut = irq->cutoff; + else icut = cutneighmax; + + if (jrq->cut) jcut = jrq->cutoff; + else jcut = cutneighmax; + + if (icut > jcut) continue; + else if (icut != jcut) trim_flag = 1; + // these flags must be same, // else 2 lists do not store same pairs // or their data structures are different - // this includes custom cutoff set by requestor if (irq->ghost != jrq->ghost) continue; if (irq->size != jrq->size) continue; @@ -1333,8 +1409,6 @@ void Neighbor::morph_halffull() if (irq->kokkos_host != jrq->kokkos_host) continue; if (irq->kokkos_device != jrq->kokkos_device) continue; if (irq->ssa != jrq->ssa) continue; - if (irq->cut != jrq->cut) continue; - if (irq->cutoff != jrq->cutoff) continue; // skip flag must be same // if both are skip lists, skip info must match @@ -1349,25 +1423,28 @@ void Neighbor::morph_halffull() // if matching list exists, point to it - if (j < nrequest) { + if (jj < nrequest) { irq->halffull = 1; irq->halffulllist = j; + irq->trim = trim_flag; } } } /* ---------------------------------------------------------------------- - scan NeighRequests for possible copies - if 2 requests match, turn one into a copy of the other + scan NeighRequests for possible copies or trims + if 2 requests match, turn one into a copy or trim of the other ------------------------------------------------------------------------- */ -void Neighbor::morph_copy() +void Neighbor::morph_copy_trim() { - int i,j,inewton,jnewton; + int i,j,jj,jmin,inewton,jnewton; NeighRequest *irq,*jrq; + double icut,jcut; for (i = 0; i < nrequest; i++) { irq = requests[i]; + int trim_flag = irq->trim; // this list is already a copy list due to another morph method @@ -1375,7 +1452,10 @@ void Neighbor::morph_copy() // check all other lists - for (j = 0; j < nrequest; j++) { + for (jj = 0; jj < nrequest; jj++) { + if (irq->cut) j = j_sorted[jj]; + else j = jj; + if (i == j) continue; jrq = requests[j]; @@ -1383,13 +1463,24 @@ void Neighbor::morph_copy() if (jrq->copy && jrq->copylist == i) continue; + // trim a list with longer cutoff + + if (irq->cut) icut = irq->cutoff; + else icut = cutneighmax; + + if (jrq->cut) jcut = jrq->cutoff; + else jcut = cutneighmax; + + if (icut > jcut) continue; + else if (icut != jcut) trim_flag = 1; + // other list (jrq) to copy from must be perpetual // list that becomes a copy list (irq) can be perpetual or occasional // if both lists are perpetual, require j < i // to prevent circular dependence with 3 or more copies of a list if (jrq->occasional) continue; - if (!irq->occasional && j > i) continue; + if (!irq->occasional && !irq->cut && j > i) continue; // both lists must be half, or both full @@ -1418,7 +1509,6 @@ void Neighbor::morph_copy() // these flags must be same, // else 2 lists do not store same pairs // or their data structures are different - // this includes custom cutoff set by requestor // no need to check omp b/c it stores same pairs // NOTE: need check for 2 Kokkos flags? @@ -1429,8 +1519,6 @@ void Neighbor::morph_copy() if (irq->kokkos_host && !jrq->kokkos_host) continue; if (irq->kokkos_device && !jrq->kokkos_device) continue; if (irq->ssa != jrq->ssa) continue; - if (irq->cut != jrq->cut) continue; - if (irq->cutoff != jrq->cutoff) continue; // skip flag must be same // if both are skip lists, skip info must match @@ -1446,10 +1534,13 @@ void Neighbor::morph_copy() // turn list I into a copy of list J // do not copy a list from another copy list, but from its parent list - if (j < nrequest) { + if (jj < nrequest) { irq->copy = 1; - if (jrq->copy) irq->copylist = jrq->copylist; - else irq->copylist = j; + irq->trim = trim_flag; + if (jrq->copy && irq->cutoff == requests[jrq->copylist]->cutoff) + irq->copylist = jrq->copylist; + else + irq->copylist = j; } } } @@ -1664,10 +1755,16 @@ void Neighbor::print_pairwise_info() // order these to get single output of most relevant - if (rq->copy) - out += fmt::format(", copy from ({})",rq->copylist+1); - else if (rq->halffull) - out += fmt::format(", half/full from ({})",rq->halffulllist+1); + if (rq->copy) { + if (rq->trim) + out += fmt::format(", trim from ({})",rq->copylist+1); + else + out += fmt::format(", copy from ({})",rq->copylist+1); + } else if (rq->halffull) + if (rq->trim) + out += fmt::format(", half/full trim from ({})",rq->halffulllist+1); + else + out += fmt::format(", half/full from ({})",rq->halffulllist+1); else if (rq->skip) out += fmt::format(", skip from ({})",rq->skiplist+1); out += "\n"; @@ -1742,15 +1839,15 @@ void Neighbor::requests_new2old() /* ---------------------------------------------------------------------- find and return request made by classptr if not found or classptr = nullptr, return nullptr - TODO: should have optional argument "id" to match ID if multiple requests + id is optional and defaults to 0, which is the request id value unless set explicitly ------------------------------------------------------------------------- */ -NeighRequest *Neighbor::find_request(void *classptr) const +NeighRequest *Neighbor::find_request(void *classptr, const int id) const { if (classptr == nullptr) return nullptr; for (int i = 0; i < nrequest; i++) - if (requests[i]->requestor == classptr) return requests[i]; + if ((requests[i]->requestor == classptr) && (requests[i]->id == id)) return requests[i]; return nullptr; } @@ -1770,15 +1867,15 @@ const std::vector Neighbor::get_pair_requests() const /* ---------------------------------------------------------------------- find and return list requested by classptr if not found or classptr = nullptr, return nullptr - TODO: should have optional argument "id" to match ID if multiple requests + id is optional and defaults to 0, which is the request id value unless set explicitly ------------------------------------------------------------------------- */ -NeighList *Neighbor::find_list(void *classptr) const +NeighList *Neighbor::find_list(void *classptr, const int id) const { if (classptr == nullptr) return nullptr; for (int i = 0; i < nlist; i++) - if (lists[i]->requestor == classptr) return lists[i]; + if ((lists[i]->requestor == classptr) && (lists[i]->id == id)) return lists[i]; return nullptr; } @@ -1968,10 +2065,16 @@ int Neighbor::choose_pair(NeighRequest *rq) // pairnames[i],pairmasks[i]); // if copy request, no further checks needed, just return or continue - // Kokkos device/host flags must also match in order to copy + // trim and Kokkos device/host flags must also match in order to copy + // intel and omp flags must match to trim if (rq->copy) { if (!(mask & NP_COPY)) continue; + if (rq->trim) { + if (!rq->trim != !(mask & NP_TRIM)) continue; + if (!rq->omp != !(mask & NP_OMP)) continue; + if (!rq->intel != !(mask & NP_INTEL)) continue; + } if (rq->kokkos_device || rq->kokkos_host) { if (!rq->kokkos_device != !(mask & NP_KOKKOS_DEVICE)) continue; if (!rq->kokkos_host != !(mask & NP_KOKKOS_HOST)) continue; @@ -2023,6 +2126,8 @@ int Neighbor::choose_pair(NeighRequest *rq) if (!rq->skip != !(mask & NP_SKIP)) continue; + if (!rq->trim != !(mask & NP_TRIM)) continue; + if (!rq->halffull != !(mask & NP_HALF_FULL)) continue; if (!rq->off2on != !(mask & NP_OFF2ON)) continue; @@ -2327,7 +2432,7 @@ void Neighbor::build(int topoflag) for (i = 0; i < npair_perpetual; i++) { m = plist[i]; - if (!lists[m]->copy || lists[m]->kk2cpu) + if (!lists[m]->copy || lists[m]->trim || lists[m]->kk2cpu) lists[m]->grow(nlocal,nall); neigh_pair[m]->build_setup(); neigh_pair[m]->build(lists[m]); @@ -2418,7 +2523,7 @@ void Neighbor::build_one(class NeighList *mylist, int preflag) // build the list - if (!mylist->copy || mylist->kk2cpu) + if (!mylist->copy || mylist->trim || mylist->kk2cpu) mylist->grow(atom->nlocal,atom->nlocal+atom->nghost); np->build_setup(); np->build(mylist); diff --git a/src/neighbor.h b/src/neighbor.h index 06601f96a7..7d1711c149 100644 --- a/src/neighbor.h +++ b/src/neighbor.h @@ -94,6 +94,7 @@ class Neighbor : protected Pointers { NeighList **lists; NeighRequest **requests; // from Pair,Fix,Compute,Command classes NeighRequest **old_requests; // copy of requests to compare to + int* j_sorted; // index of requests sorted by cutoff distance // data from topology neighbor lists @@ -153,8 +154,12 @@ class Neighbor : protected Pointers { void exclusion_group_group_delete(int, int); // rm a group-group exclusion int exclude_setting(); // return exclude value to accelerator pkg - NeighList *find_list(void *) const; // find a neighbor list based on requestor - NeighRequest *find_request(void *) const; // find a neighbor request based on requestor + + // find a neighbor list based on requestor + NeighList *find_list(void *, const int id = 0) const; + // find a neighbor request based on requestor + NeighRequest *find_request(void *, const int id = 0) const; + const std::vector get_pair_requests() const; int any_full(); // Check if any old requests had full neighbor lists void build_collection(int); // build peratom collection array starting at the given index @@ -241,11 +246,13 @@ class Neighbor : protected Pointers { int init_pair(); virtual void init_topology(); + void sort_requests(); + void morph_unique(); void morph_skip(); void morph_granular(); void morph_halffull(); - void morph_copy(); + void morph_copy_trim(); void print_pairwise_info(); void requests_new2old(); @@ -319,7 +326,8 @@ namespace NeighConst { NP_SKIP = 1 << 22, NP_HALF_FULL = 1 << 23, NP_OFF2ON = 1 << 24, - NP_MULTI_OLD = 1 << 25 + NP_MULTI_OLD = 1 << 25, + NP_TRIM = 1 << 26 }; enum { diff --git a/src/npair_copy.cpp b/src/npair_copy.cpp index b3cab53e0a..38a36d0ba5 100644 --- a/src/npair_copy.cpp +++ b/src/npair_copy.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories diff --git a/src/npair_full_bin_atomonly.cpp b/src/npair_full_bin_atomonly.cpp index b8c4378280..aa7a91dbbe 100644 --- a/src/npair_full_bin_atomonly.cpp +++ b/src/npair_full_bin_atomonly.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -32,8 +31,8 @@ NPairFullBinAtomonly::NPairFullBinAtomonly(LAMMPS *lmp) : NPair(lmp) {} void NPairFullBinAtomonly::build(NeighList *list) { - int i,j,k,n,itype,jtype,ibin; - double xtmp,ytmp,ztmp,delx,dely,delz,rsq; + int i, j, k, n, itype, jtype, ibin; + double xtmp, ytmp, ztmp, delx, dely, delz, rsq; int *neighptr; double **x = atom->x; @@ -66,16 +65,16 @@ void NPairFullBinAtomonly::build(NeighList *list) ibin = atom2bin[i]; for (k = 0; k < nstencil; k++) { - for (j = binhead[ibin+stencil[k]]; j >= 0; j = bins[j]) { + for (j = binhead[ibin + stencil[k]]; j >= 0; j = bins[j]) { if (i == j) continue; jtype = type[j]; - if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; + if (exclude && exclusion(i, j, itype, jtype, mask, molecule)) continue; delx = xtmp - x[j][0]; dely = ytmp - x[j][1]; delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; + rsq = delx * delx + dely * dely + delz * delz; if (rsq <= cutneighsq[itype][jtype]) neighptr[n++] = j; } @@ -85,8 +84,7 @@ void NPairFullBinAtomonly::build(NeighList *list) firstneigh[i] = neighptr; numneigh[i] = n; ipage->vgot(n); - if (ipage->status()) - error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + if (ipage->status()) error->one(FLERR, "Neighbor list overflow, boost neigh_modify one"); } list->inum = inum; diff --git a/src/npair_halffull_newtoff.cpp b/src/npair_halffull_newtoff.cpp index 475325c2f0..57c121b933 100644 --- a/src/npair_halffull_newtoff.cpp +++ b/src/npair_halffull_newtoff.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -35,8 +34,8 @@ NPairHalffullNewtoff::NPairHalffullNewtoff(LAMMPS *lmp) : NPair(lmp) {} void NPairHalffullNewtoff::build(NeighList *list) { - int i,j,ii,jj,n,jnum,joriginal; - int *neighptr,*jlist; + int i, j, ii, jj, n, jnum, joriginal; + int *neighptr, *jlist; int *ilist = list->ilist; int *numneigh = list->numneigh; @@ -74,8 +73,7 @@ void NPairHalffullNewtoff::build(NeighList *list) firstneigh[i] = neighptr; numneigh[i] = n; ipage->vgot(n); - if (ipage->status()) - error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + if (ipage->status()) error->one(FLERR, "Neighbor list overflow, boost neigh_modify one"); } list->inum = inum; diff --git a/src/npair_halffull_newtoff_trim.cpp b/src/npair_halffull_newtoff_trim.cpp new file mode 100644 index 0000000000..28b285ddf3 --- /dev/null +++ b/src/npair_halffull_newtoff_trim.cpp @@ -0,0 +1,101 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "npair_halffull_newtoff_trim.h" + +#include "atom.h" +#include "error.h" +#include "my_page.h" +#include "neigh_list.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +NPairHalffullNewtoffTrim::NPairHalffullNewtoffTrim(LAMMPS *lmp) : NPair(lmp) {} + +/* ---------------------------------------------------------------------- + build half list from full list + pair stored once if i,j are both owned and i < j + pair stored by me if j is ghost (also stored by proc owning j) + works if full list is a skip list + works for owned (non-ghost) list, also for ghost list + if ghost, also store neighbors of ghost atoms & set inum,gnum correctly +------------------------------------------------------------------------- */ + +void NPairHalffullNewtoffTrim::build(NeighList *list) +{ + int i, j, ii, jj, n, jnum, joriginal; + int *neighptr, *jlist; + double xtmp,ytmp,ztmp; + double delx,dely,delz,rsq; + + double **x = atom->x; + + int *ilist = list->ilist; + int *numneigh = list->numneigh; + int **firstneigh = list->firstneigh; + MyPage *ipage = list->ipage; + + int *ilist_full = list->listfull->ilist; + int *numneigh_full = list->listfull->numneigh; + int **firstneigh_full = list->listfull->firstneigh; + int inum_full = list->listfull->inum; + if (list->ghost) inum_full += list->listfull->gnum; + + int inum = 0; + ipage->reset(); + + double cutsq_custom = cutoff_custom * cutoff_custom; + + // loop over atoms in full list + + for (ii = 0; ii < inum_full; ii++) { + n = 0; + neighptr = ipage->vget(); + + // loop over parent full list + + i = ilist_full[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + + jlist = firstneigh_full[i]; + jnum = numneigh_full[i]; + + for (jj = 0; jj < jnum; jj++) { + joriginal = jlist[jj]; + j = joriginal & NEIGHMASK; + if (j > i) { + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx * delx + dely * dely + delz * delz; + + if (rsq > cutsq_custom) continue; + + neighptr[n++] = joriginal; + } + } + + ilist[inum++] = i; + firstneigh[i] = neighptr; + numneigh[i] = n; + ipage->vgot(n); + if (ipage->status()) error->one(FLERR, "Neighbor list overflow, boost neigh_modify one"); + } + + list->inum = inum; + if (list->ghost) list->gnum = list->listfull->gnum; +} diff --git a/src/npair_halffull_newtoff_trim.h b/src/npair_halffull_newtoff_trim.h new file mode 100644 index 0000000000..a5e39e4800 --- /dev/null +++ b/src/npair_halffull_newtoff_trim.h @@ -0,0 +1,54 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef NPAIR_CLASS +// clang-format off +NPairStyle(halffull/newtoff/trim, + NPairHalffullNewtoffTrim, + NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_HALF | + NP_ORTHO | NP_TRI | NP_TRIM); + +NPairStyle(halffull/newtoff/skip/trim, + NPairHalffullNewtoffTrim, + NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_HALF | + NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM); + +NPairStyle(halffull/newtoff/ghost/trim, + NPairHalffullNewtoffTrim, + NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_HALF | + NP_ORTHO | NP_TRI | NP_GHOST | NP_TRIM); + +NPairStyle(halffull/newtoff/skip/ghost/trim, + NPairHalffullNewtoffTrim, + NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_HALF | + NP_ORTHO | NP_TRI | NP_SKIP | NP_GHOST | NP_TRIM); +// clang-format on +#else + +#ifndef LMP_NPAIR_HALFFULL_NEWTOFF_TRIM_H +#define LMP_NPAIR_HALFFULL_NEWTOFF_TRIM_H + +#include "npair.h" + +namespace LAMMPS_NS { + +class NPairHalffullNewtoffTrim : public NPair { + public: + NPairHalffullNewtoffTrim(class LAMMPS *); + void build(class NeighList *) override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/npair_halffull_newton_trim.cpp b/src/npair_halffull_newton_trim.cpp new file mode 100644 index 0000000000..26e46a0525 --- /dev/null +++ b/src/npair_halffull_newton_trim.cpp @@ -0,0 +1,108 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "npair_halffull_newton_trim.h" + +#include "atom.h" +#include "error.h" +#include "my_page.h" +#include "neigh_list.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +NPairHalffullNewtonTrim::NPairHalffullNewtonTrim(LAMMPS *lmp) : NPair(lmp) {} + +/* ---------------------------------------------------------------------- + build half list from full list + pair stored once if i,j are both owned and i < j + if j is ghost, only store if j coords are "above and to the right" of i + works if full list is a skip list +------------------------------------------------------------------------- */ + +void NPairHalffullNewtonTrim::build(NeighList *list) +{ + int i,j,ii,jj,n,jnum,joriginal; + int *neighptr,*jlist; + double xtmp,ytmp,ztmp; + double delx,dely,delz,rsq; + + double **x = atom->x; + int nlocal = atom->nlocal; + + int *ilist = list->ilist; + int *numneigh = list->numneigh; + int **firstneigh = list->firstneigh; + MyPage *ipage = list->ipage; + + int *ilist_full = list->listfull->ilist; + int *numneigh_full = list->listfull->numneigh; + int **firstneigh_full = list->listfull->firstneigh; + int inum_full = list->listfull->inum; + + int inum = 0; + ipage->reset(); + + double cutsq_custom = cutoff_custom * cutoff_custom; + + // loop over parent full list + + for (ii = 0; ii < inum_full; ii++) { + n = 0; + neighptr = ipage->vget(); + + i = ilist_full[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + + // loop over full neighbor list + + jlist = firstneigh_full[i]; + jnum = numneigh_full[i]; + + for (jj = 0; jj < jnum; jj++) { + joriginal = jlist[jj]; + j = joriginal & NEIGHMASK; + if (j < nlocal) { + if (i > j) continue; + } else { + if (x[j][2] < ztmp) continue; + if (x[j][2] == ztmp) { + if (x[j][1] < ytmp) continue; + if (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; + + if (rsq > cutsq_custom) continue; + + neighptr[n++] = joriginal; + } + + ilist[inum++] = i; + firstneigh[i] = neighptr; + numneigh[i] = n; + ipage->vgot(n); + if (ipage->status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } + + list->inum = inum; +} diff --git a/src/npair_halffull_newton_trim.h b/src/npair_halffull_newton_trim.h new file mode 100644 index 0000000000..344ed618a8 --- /dev/null +++ b/src/npair_halffull_newton_trim.h @@ -0,0 +1,44 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef NPAIR_CLASS +// clang-format off +NPairStyle(halffull/newton/trim, + NPairHalffullNewtonTrim, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_ORTHO | NP_TRI | NP_TRIM); + +NPairStyle(halffull/newton/skip/trim, + NPairHalffullNewtonTrim, + NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM); +// clang-format on +#else + +#ifndef LMP_NPAIR_HALFFULL_NEWTON_TRIM_H +#define LMP_NPAIR_HALFFULL_NEWTON_TRIM_H + +#include "npair.h" + +namespace LAMMPS_NS { + +class NPairHalffullNewtonTrim : public NPair { + public: + NPairHalffullNewtonTrim(class LAMMPS *); + void build(class NeighList *) override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/npair_skip_size.cpp b/src/npair_skip_size.cpp index f4fe760e08..b0134fd82c 100644 --- a/src/npair_skip_size.cpp +++ b/src/npair_skip_size.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -32,8 +31,8 @@ NPairSkipSize::NPairSkipSize(LAMMPS *lmp) : NPair(lmp) {} void NPairSkipSize::build(NeighList *list) { - int i,j,ii,jj,n,itype,jnum,joriginal; - int *neighptr,*jlist; + int i, j, ii, jj, n, itype, jnum, joriginal; + int *neighptr, *jlist; int *type = atom->type; int *ilist = list->ilist; @@ -80,8 +79,7 @@ void NPairSkipSize::build(NeighList *list) firstneigh[i] = neighptr; numneigh[i] = n; ipage->vgot(n); - if (ipage->status()) - error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + if (ipage->status()) error->one(FLERR, "Neighbor list overflow, boost neigh_modify one"); } list->inum = inum; diff --git a/src/npair_trim.cpp b/src/npair_trim.cpp new file mode 100644 index 0000000000..5d854b745e --- /dev/null +++ b/src/npair_trim.cpp @@ -0,0 +1,92 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Trimright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "npair_trim.h" +#include "neigh_list.h" +#include "atom.h" +#include "error.h" +#include "my_page.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +NPairTrim::NPairTrim(LAMMPS *lmp) : NPair(lmp) {} + +/* ---------------------------------------------------------------------- + create list which is a trimmed version of parent list +------------------------------------------------------------------------- */ + +void NPairTrim::build(NeighList *list) +{ + NeighList *listcopy = list->listcopy; + + double cutsq_custom = cutoff_custom * cutoff_custom; + + int i,j,ii,jj,n,jnum,joriginal; + int *neighptr,*jlist; + double xtmp,ytmp,ztmp; + double delx,dely,delz,rsq; + + double **x = atom->x; + + int *ilist = list->ilist; + int *numneigh = list->numneigh; + int **firstneigh = list->firstneigh; + MyPage *ipage = list->ipage; + ipage->reset(); + + int *ilist_copy = listcopy->ilist; + int *numneigh_copy = listcopy->numneigh; + int **firstneigh_copy = listcopy->firstneigh; + int inum = listcopy->inum; + + list->inum = inum; + list->gnum = listcopy->gnum; + + for (ii = 0; ii < inum; ii++) { + n = 0; + neighptr = ipage->vget(); + + const int i = ilist_copy[ii]; + ilist[i] = i; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + + // loop over copy list with larger cutoff and trim to shorter cutoff + + jlist = firstneigh_copy[i]; + jnum = numneigh_copy[i]; + + for (jj = 0; jj < jnum; jj++) { + joriginal = jlist[jj]; + j = joriginal & NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx * delx + dely * dely + delz * delz; + + if (rsq > cutsq_custom) continue; + + neighptr[n++] = joriginal; + } + + firstneigh[i] = neighptr; + numneigh[i] = n; + ipage->vgot(n); + if (ipage->status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } +} diff --git a/src/npair_trim.h b/src/npair_trim.h new file mode 100644 index 0000000000..d8510051c8 --- /dev/null +++ b/src/npair_trim.h @@ -0,0 +1,38 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Trimright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef NPAIR_CLASS +// clang-format off +NPairStyle(trim, + NPairTrim, + NP_COPY | NP_TRIM); +// clang-format on +#else + +#ifndef LMP_NPAIR_TRIM_H +#define LMP_NPAIR_TRIM_H + +#include "npair.h" + +namespace LAMMPS_NS { + +class NPairTrim : public NPair { + public: + NPairTrim(class LAMMPS *); + void build(class NeighList *) override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/nstencil_full_bin_2d.cpp b/src/nstencil_full_bin_2d.cpp index ba4ca97ed6..5c79f3ae8a 100644 --- a/src/nstencil_full_bin_2d.cpp +++ b/src/nstencil_full_bin_2d.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -26,12 +25,11 @@ NStencilFullBin2d::NStencilFullBin2d(LAMMPS *lmp) : NStencil(lmp) {} void NStencilFullBin2d::create() { - int i,j; + int i, j; nstencil = 0; for (j = -sy; j <= sy; j++) for (i = -sx; i <= sx; i++) - if (bin_distance(i,j,0) < cutneighmaxsq) - stencil[nstencil++] = j*mbinx + i; + if (bin_distance(i, j, 0) < cutneighmaxsq) stencil[nstencil++] = j * mbinx + i; } diff --git a/src/nstencil_full_bin_3d.cpp b/src/nstencil_full_bin_3d.cpp index 8aa593eb0b..837bf109f2 100644 --- a/src/nstencil_full_bin_3d.cpp +++ b/src/nstencil_full_bin_3d.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -26,13 +25,13 @@ NStencilFullBin3d::NStencilFullBin3d(LAMMPS *lmp) : NStencil(lmp) {} void NStencilFullBin3d::create() { - int i,j,k; + int i, j, k; nstencil = 0; for (k = -sz; k <= sz; k++) for (j = -sy; j <= sy; j++) for (i = -sx; i <= sx; i++) - if (bin_distance(i,j,k) < cutneighmaxsq) - stencil[nstencil++] = k*mbiny*mbinx + j*mbinx + i; + if (bin_distance(i, j, k) < cutneighmaxsq) + stencil[nstencil++] = k * mbiny * mbinx + j * mbinx + i; } diff --git a/src/nstencil_full_ghost_bin_2d.cpp b/src/nstencil_full_ghost_bin_2d.cpp index b5a6bac56c..32c4440647 100644 --- a/src/nstencil_full_ghost_bin_2d.cpp +++ b/src/nstencil_full_ghost_bin_2d.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -29,16 +28,16 @@ NStencilFullGhostBin2d::NStencilFullGhostBin2d(LAMMPS *lmp) : NStencil(lmp) void NStencilFullGhostBin2d::create() { - int i,j; + int i, j; nstencil = 0; for (j = -sy; j <= sy; j++) for (i = -sx; i <= sx; i++) - if (bin_distance(i,j,0) < cutneighmaxsq) { + if (bin_distance(i, j, 0) < cutneighmaxsq) { stencilxyz[nstencil][0] = i; stencilxyz[nstencil][1] = j; stencilxyz[nstencil][2] = 0; - stencil[nstencil++] = j*mbinx + i; + stencil[nstencil++] = j * mbinx + i; } } diff --git a/src/nstencil_full_ghost_bin_3d.cpp b/src/nstencil_full_ghost_bin_3d.cpp index 2023495c34..3d43e35e04 100644 --- a/src/nstencil_full_ghost_bin_3d.cpp +++ b/src/nstencil_full_ghost_bin_3d.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -29,17 +28,17 @@ NStencilFullGhostBin3d::NStencilFullGhostBin3d(LAMMPS *lmp) : NStencil(lmp) void NStencilFullGhostBin3d::create() { - int i,j,k; + int i, j, k; nstencil = 0; for (k = -sz; k <= sz; k++) for (j = -sy; j <= sy; j++) for (i = -sx; i <= sx; i++) - if (bin_distance(i,j,k) < cutneighmaxsq) { + if (bin_distance(i, j, k) < cutneighmaxsq) { stencilxyz[nstencil][0] = i; stencilxyz[nstencil][1] = j; stencilxyz[nstencil][2] = k; - stencil[nstencil++] = k*mbiny*mbinx + j*mbinx + i; + stencil[nstencil++] = k * mbiny * mbinx + j * mbinx + i; } } diff --git a/src/nstencil_full_multi_2d.cpp b/src/nstencil_full_multi_2d.cpp index 52ae88d09e..d6e5fd2a9d 100644 --- a/src/nstencil_full_multi_2d.cpp +++ b/src/nstencil_full_multi_2d.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -50,7 +49,6 @@ void NStencilFullMulti2d::create() int n = ncollections; double cutsq; - for (icollection = 0; icollection < n; icollection++) { for (jcollection = 0; jcollection < n; jcollection++) { if (flag_skip_multi[icollection][jcollection]) { @@ -72,8 +70,8 @@ void NStencilFullMulti2d::create() for (j = -sy; j <= sy; j++) for (i = -sx; i <= sx; i++) - if (bin_distance_multi(i,j,0,bin_collection) < cutsq) - stencil_multi[icollection][jcollection][ns++] = j*mbinx + i; + if (bin_distance_multi(i, j, 0, bin_collection) < cutsq) + stencil_multi[icollection][jcollection][ns++] = j * mbinx + i; nstencil_multi[icollection][jcollection] = ns; } diff --git a/src/nstencil_full_multi_old_2d.cpp b/src/nstencil_full_multi_old_2d.cpp index d653e1080e..3747e99699 100644 --- a/src/nstencil_full_multi_old_2d.cpp +++ b/src/nstencil_full_multi_old_2d.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -27,8 +26,8 @@ NStencilFullMultiOld2d::NStencilFullMultiOld2d(LAMMPS *lmp) : NStencil(lmp) {} void NStencilFullMultiOld2d::create() { - int i,j,n; - double rsq,typesq; + int i, j, n; + double rsq, typesq; int *s; double *distsq; @@ -40,10 +39,10 @@ void NStencilFullMultiOld2d::create() n = 0; for (j = -sy; j <= sy; j++) for (i = -sx; i <= sx; i++) { - rsq = bin_distance(i,j,0); + rsq = bin_distance(i, j, 0); if (rsq < typesq) { distsq[n] = rsq; - s[n++] = j*mbinx + i; + s[n++] = j * mbinx + i; } } nstencil_multi_old[itype] = n; diff --git a/src/nstencil_full_multi_old_3d.cpp b/src/nstencil_full_multi_old_3d.cpp index 849ee5a9f9..04f10c5362 100644 --- a/src/nstencil_full_multi_old_3d.cpp +++ b/src/nstencil_full_multi_old_3d.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -27,8 +26,8 @@ NStencilFullMultiOld3d::NStencilFullMultiOld3d(LAMMPS *lmp) : NStencil(lmp) {} void NStencilFullMultiOld3d::create() { - int i,j,k,n; - double rsq,typesq; + int i, j, k, n; + double rsq, typesq; int *s; double *distsq; @@ -41,10 +40,10 @@ void NStencilFullMultiOld3d::create() for (k = -sz; k <= sz; k++) for (j = -sy; j <= sy; j++) for (i = -sx; i <= sx; i++) { - rsq = bin_distance(i,j,k); + rsq = bin_distance(i, j, k); if (rsq < typesq) { distsq[n] = rsq; - s[n++] = k*mbiny*mbinx + j*mbinx + i; + s[n++] = k * mbiny * mbinx + j * mbinx + i; } } nstencil_multi_old[itype] = n; diff --git a/src/nstencil_half_bin_2d.cpp b/src/nstencil_half_bin_2d.cpp index 004d6a8016..b1ad0237a7 100644 --- a/src/nstencil_half_bin_2d.cpp +++ b/src/nstencil_half_bin_2d.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -26,13 +25,12 @@ NStencilHalfBin2d::NStencilHalfBin2d(LAMMPS *lmp) : NStencil(lmp) {} void NStencilHalfBin2d::create() { - int i,j; + int i, j; nstencil = 0; for (j = 0; j <= sy; j++) for (i = -sx; i <= sx; i++) if (j > 0 || (j == 0 && i > 0)) - if (bin_distance(i,j,0) < cutneighmaxsq) - stencil[nstencil++] = j*mbinx + i; + if (bin_distance(i, j, 0) < cutneighmaxsq) stencil[nstencil++] = j * mbinx + i; } diff --git a/src/nstencil_half_bin_2d_tri.cpp b/src/nstencil_half_bin_2d_tri.cpp index 9f5ace1ed1..7b7ce962a2 100644 --- a/src/nstencil_half_bin_2d_tri.cpp +++ b/src/nstencil_half_bin_2d_tri.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -18,8 +17,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -NStencilHalfBin2dTri::NStencilHalfBin2dTri(LAMMPS *lmp) : - NStencil(lmp) {} +NStencilHalfBin2dTri::NStencilHalfBin2dTri(LAMMPS *lmp) : NStencil(lmp) {} /* ---------------------------------------------------------------------- create stencil based on bin geometry and cutoff @@ -27,12 +25,11 @@ NStencilHalfBin2dTri::NStencilHalfBin2dTri(LAMMPS *lmp) : void NStencilHalfBin2dTri::create() { - int i,j; + int i, j; nstencil = 0; for (j = 0; j <= sy; j++) for (i = -sx; i <= sx; i++) - if (bin_distance(i,j,0) < cutneighmaxsq) - stencil[nstencil++] = j*mbinx + i; + if (bin_distance(i, j, 0) < cutneighmaxsq) stencil[nstencil++] = j * mbinx + i; } diff --git a/src/nstencil_half_bin_3d.cpp b/src/nstencil_half_bin_3d.cpp index a8cacdb601..736bf151ee 100644 --- a/src/nstencil_half_bin_3d.cpp +++ b/src/nstencil_half_bin_3d.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -26,7 +25,7 @@ NStencilHalfBin3d::NStencilHalfBin3d(LAMMPS *lmp) : NStencil(lmp) {} void NStencilHalfBin3d::create() { - int i,j,k; + int i, j, k; nstencil = 0; @@ -34,6 +33,6 @@ void NStencilHalfBin3d::create() for (j = -sy; j <= sy; j++) for (i = -sx; i <= sx; i++) if (k > 0 || j > 0 || (j == 0 && i > 0)) - if (bin_distance(i,j,k) < cutneighmaxsq) - stencil[nstencil++] = k*mbiny*mbinx + j*mbinx + i; + if (bin_distance(i, j, k) < cutneighmaxsq) + stencil[nstencil++] = k * mbiny * mbinx + j * mbinx + i; } diff --git a/src/nstencil_half_bin_3d_tri.cpp b/src/nstencil_half_bin_3d_tri.cpp index 8d1920ae8c..a5376d0208 100644 --- a/src/nstencil_half_bin_3d_tri.cpp +++ b/src/nstencil_half_bin_3d_tri.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -18,8 +17,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -NStencilHalfBin3dTri::NStencilHalfBin3dTri(LAMMPS *lmp) : - NStencil(lmp) {} +NStencilHalfBin3dTri::NStencilHalfBin3dTri(LAMMPS *lmp) : NStencil(lmp) {} /* ---------------------------------------------------------------------- create stencil based on bin geometry and cutoff @@ -27,13 +25,13 @@ NStencilHalfBin3dTri::NStencilHalfBin3dTri(LAMMPS *lmp) : void NStencilHalfBin3dTri::create() { - int i,j,k; + int i, j, k; nstencil = 0; for (k = 0; k <= sz; k++) for (j = -sy; j <= sy; j++) for (i = -sx; i <= sx; i++) - if (bin_distance(i,j,k) < cutneighmaxsq) - stencil[nstencil++] = k*mbiny*mbinx + j*mbinx + i; + if (bin_distance(i, j, k) < cutneighmaxsq) + stencil[nstencil++] = k * mbiny * mbinx + j * mbinx + i; } diff --git a/src/nstencil_half_multi_old_2d.cpp b/src/nstencil_half_multi_old_2d.cpp index 7a2f5a25e2..b4869b37f4 100644 --- a/src/nstencil_half_multi_old_2d.cpp +++ b/src/nstencil_half_multi_old_2d.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -19,8 +18,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -NStencilHalfMultiOld2d:: -NStencilHalfMultiOld2d(LAMMPS *lmp) : NStencil(lmp) {} +NStencilHalfMultiOld2d::NStencilHalfMultiOld2d(LAMMPS *lmp) : NStencil(lmp) {} /* ---------------------------------------------------------------------- create stencil based on bin geometry and cutoff @@ -28,8 +26,8 @@ NStencilHalfMultiOld2d(LAMMPS *lmp) : NStencil(lmp) {} void NStencilHalfMultiOld2d::create() { - int i,j,n; - double rsq,typesq; + int i, j, n; + double rsq, typesq; int *s; double *distsq; @@ -42,10 +40,10 @@ void NStencilHalfMultiOld2d::create() for (j = 0; j <= sy; j++) for (i = -sx; i <= sx; i++) if (j > 0 || (j == 0 && i > 0)) { - rsq = bin_distance(i,j,0); + rsq = bin_distance(i, j, 0); if (rsq < typesq) { distsq[n] = rsq; - s[n++] = j*mbinx + i; + s[n++] = j * mbinx + i; } } nstencil_multi_old[itype] = n; diff --git a/src/nstencil_half_multi_old_2d_tri.cpp b/src/nstencil_half_multi_old_2d_tri.cpp index 7e5158cc31..e6cf2d311e 100644 --- a/src/nstencil_half_multi_old_2d_tri.cpp +++ b/src/nstencil_half_multi_old_2d_tri.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -19,8 +18,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -NStencilHalfMultiOld2dTri:: -NStencilHalfMultiOld2dTri(LAMMPS *lmp) : NStencil(lmp) {} +NStencilHalfMultiOld2dTri::NStencilHalfMultiOld2dTri(LAMMPS *lmp) : NStencil(lmp) {} /* ---------------------------------------------------------------------- create stencil based on bin geometry and cutoff @@ -28,8 +26,8 @@ NStencilHalfMultiOld2dTri(LAMMPS *lmp) : NStencil(lmp) {} void NStencilHalfMultiOld2dTri::create() { - int i,j,n; - double rsq,typesq; + int i, j, n; + double rsq, typesq; int *s; double *distsq; @@ -41,10 +39,10 @@ void NStencilHalfMultiOld2dTri::create() n = 0; for (j = 0; j <= sy; j++) for (i = -sx; i <= sx; i++) { - rsq = bin_distance(i,j,0); + rsq = bin_distance(i, j, 0); if (rsq < typesq) { distsq[n] = rsq; - s[n++] = j*mbinx + i; + s[n++] = j * mbinx + i; } } nstencil_multi_old[itype] = n; diff --git a/src/nstencil_half_multi_old_3d.cpp b/src/nstencil_half_multi_old_3d.cpp index cdb22c2d13..ada8c66610 100644 --- a/src/nstencil_half_multi_old_3d.cpp +++ b/src/nstencil_half_multi_old_3d.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -19,8 +18,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -NStencilHalfMultiOld3d:: -NStencilHalfMultiOld3d(LAMMPS *lmp) : NStencil(lmp) {} +NStencilHalfMultiOld3d::NStencilHalfMultiOld3d(LAMMPS *lmp) : NStencil(lmp) {} /* ---------------------------------------------------------------------- create stencil based on bin geometry and cutoff @@ -28,8 +26,8 @@ NStencilHalfMultiOld3d(LAMMPS *lmp) : NStencil(lmp) {} void NStencilHalfMultiOld3d::create() { - int i,j,k,n; - double rsq,typesq; + int i, j, k, n; + double rsq, typesq; int *s; double *distsq; @@ -43,10 +41,10 @@ void NStencilHalfMultiOld3d::create() for (j = -sy; j <= sy; j++) for (i = -sx; i <= sx; i++) if (k > 0 || j > 0 || (j == 0 && i > 0)) { - rsq = bin_distance(i,j,k); + rsq = bin_distance(i, j, k); if (rsq < typesq) { distsq[n] = rsq; - s[n++] = k*mbiny*mbinx + j*mbinx + i; + s[n++] = k * mbiny * mbinx + j * mbinx + i; } } nstencil_multi_old[itype] = n; diff --git a/src/nstencil_half_multi_old_3d_tri.cpp b/src/nstencil_half_multi_old_3d_tri.cpp index 6fb9b6d3d1..c58fe509ef 100644 --- a/src/nstencil_half_multi_old_3d_tri.cpp +++ b/src/nstencil_half_multi_old_3d_tri.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -19,8 +18,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -NStencilHalfMultiOld3dTri:: -NStencilHalfMultiOld3dTri(LAMMPS *lmp) : NStencil(lmp) {} +NStencilHalfMultiOld3dTri::NStencilHalfMultiOld3dTri(LAMMPS *lmp) : NStencil(lmp) {} /* ---------------------------------------------------------------------- create stencil based on bin geometry and cutoff @@ -28,8 +26,8 @@ NStencilHalfMultiOld3dTri(LAMMPS *lmp) : NStencil(lmp) {} void NStencilHalfMultiOld3dTri::create() { - int i,j,k,n; - double rsq,typesq; + int i, j, k, n; + double rsq, typesq; int *s; double *distsq; @@ -42,10 +40,10 @@ void NStencilHalfMultiOld3dTri::create() for (k = 0; k <= sz; k++) for (j = -sy; j <= sy; j++) for (i = -sx; i <= sx; i++) { - rsq = bin_distance(i,j,k); + rsq = bin_distance(i, j, k); if (rsq < typesq) { distsq[n] = rsq; - s[n++] = k*mbiny*mbinx + j*mbinx + i; + s[n++] = k * mbiny * mbinx + j * mbinx + i; } } nstencil_multi_old[itype] = n; diff --git a/src/ntopo_bond_all.cpp b/src/ntopo_bond_all.cpp index ab397cab7b..b3cd3011a5 100644 --- a/src/ntopo_bond_all.cpp +++ b/src/ntopo_bond_all.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -15,14 +14,13 @@ #include "ntopo_bond_all.h" #include "atom.h" -#include "force.h" #include "domain.h" -#include "update.h" +#include "error.h" +#include "force.h" +#include "memory.h" #include "output.h" #include "thermo.h" -#include "memory.h" -#include "error.h" - +#include "update.h" using namespace LAMMPS_NS; @@ -39,7 +37,7 @@ NTopoBondAll::NTopoBondAll(LAMMPS *lmp) : NTopo(lmp) void NTopoBondAll::build() { - int i,m,atom1; + int i, m, atom1; int nlocal = atom->nlocal; int *num_bond = atom->num_bond; @@ -58,16 +56,17 @@ void NTopoBondAll::build() if (atom1 == -1) { nmissing++; if (lostbond == Thermo::ERROR) - error->one(FLERR,"Bond atoms {} {} missing on " - "proc {} at step {}",tag[i], - bond_atom[i][m],me,update->ntimestep); + error->one(FLERR, + "Bond atoms {} {} missing on " + "proc {} at step {}", + tag[i], bond_atom[i][m], me, update->ntimestep); continue; } - atom1 = domain->closest_image(i,atom1); + atom1 = domain->closest_image(i, atom1); if (newton_bond || i < atom1) { if (nbondlist == maxbond) { maxbond += DELTA; - memory->grow(bondlist,maxbond,3,"neigh_topo:bondlist"); + memory->grow(bondlist, maxbond, 3, "neigh_topo:bondlist"); } bondlist[nbondlist][0] = i; bondlist[nbondlist][1] = atom1; @@ -80,7 +79,6 @@ void NTopoBondAll::build() if (lostbond == Thermo::IGNORE) return; int all; - MPI_Allreduce(&nmissing,&all,1,MPI_INT,MPI_SUM,world); - if (all && (me == 0)) - error->warning(FLERR,"Bond atoms missing at step {}",update->ntimestep); + MPI_Allreduce(&nmissing, &all, 1, MPI_INT, MPI_SUM, world); + if (all && (me == 0)) error->warning(FLERR, "Bond atoms missing at step {}", update->ntimestep); } diff --git a/src/ntopo_bond_partial.cpp b/src/ntopo_bond_partial.cpp index 851703776b..de6d0bf151 100644 --- a/src/ntopo_bond_partial.cpp +++ b/src/ntopo_bond_partial.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -15,14 +14,13 @@ #include "ntopo_bond_partial.h" #include "atom.h" -#include "force.h" #include "domain.h" -#include "update.h" +#include "error.h" +#include "force.h" +#include "memory.h" #include "output.h" #include "thermo.h" -#include "memory.h" -#include "error.h" - +#include "update.h" using namespace LAMMPS_NS; @@ -39,7 +37,7 @@ NTopoBondPartial::NTopoBondPartial(LAMMPS *lmp) : NTopo(lmp) void NTopoBondPartial::build() { - int i,m,atom1; + int i, m, atom1; int nlocal = atom->nlocal; int *num_bond = atom->num_bond; @@ -59,16 +57,17 @@ void NTopoBondPartial::build() if (atom1 == -1) { nmissing++; if (lostbond == Thermo::ERROR) - error->one(FLERR,"Bond atoms {} {} missing on " - "proc {} at step {}",tag[i], - bond_atom[i][m],me,update->ntimestep); + error->one(FLERR, + "Bond atoms {} {} missing on " + "proc {} at step {}", + tag[i], bond_atom[i][m], me, update->ntimestep); continue; } - atom1 = domain->closest_image(i,atom1); + atom1 = domain->closest_image(i, atom1); if (newton_bond || i < atom1) { if (nbondlist == maxbond) { maxbond += DELTA; - memory->grow(bondlist,maxbond,3,"neigh_topo:bondlist"); + memory->grow(bondlist, maxbond, 3, "neigh_topo:bondlist"); } bondlist[nbondlist][0] = i; bondlist[nbondlist][1] = atom1; @@ -81,7 +80,6 @@ void NTopoBondPartial::build() if (lostbond == Thermo::IGNORE) return; int all; - MPI_Allreduce(&nmissing,&all,1,MPI_INT,MPI_SUM,world); - if (all && (me == 0)) - error->warning(FLERR,"Bond atoms missing at step {}",update->ntimestep); + MPI_Allreduce(&nmissing, &all, 1, MPI_INT, MPI_SUM, world); + if (all && (me == 0)) error->warning(FLERR, "Bond atoms missing at step {}", update->ntimestep); } diff --git a/src/pair.cpp b/src/pair.cpp index 44f23745d9..4d42035fd1 100644 --- a/src/pair.cpp +++ b/src/pair.cpp @@ -97,6 +97,7 @@ Pair::Pair(LAMMPS *lmp) : Pointers(lmp) tabinner_disp = sqrt(2.0); ftable = nullptr; fdisptable = nullptr; + trim_flag = 1; allocated = 0; suffix_flag = Suffix::NONE; @@ -126,6 +127,7 @@ Pair::Pair(LAMMPS *lmp) : Pointers(lmp) datamask_modify = ALL_MASK; kokkosable = 0; + reverse_comm_device = 0; copymode = 0; } @@ -203,6 +205,10 @@ void Pair::modify_params(int narg, char **arg) } else if (strcmp(arg[iarg],"nofdotr") == 0) { no_virial_fdotr_compute = 1; ++iarg; + } else if (strcmp(arg[iarg],"neigh/trim") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal pair_modify command"); + trim_flag = utils::logical(FLERR,arg[iarg+1],false,lmp); + iarg += 2; } else error->all(FLERR,"Illegal pair_modify command"); } } diff --git a/src/pair.h b/src/pair.h index 4763a225d2..5f2cd00373 100644 --- a/src/pair.h +++ b/src/pair.h @@ -82,6 +82,7 @@ class Pair : protected Pointers { int tail_flag; // pair_modify flag for LJ tail correction double etail, ptail; // energy/pressure tail corrections double etail_ij, ptail_ij; + int trim_flag; // pair_modify flag for trimming neigh list int evflag; // energy,virial settings int eflag_either, eflag_global, eflag_atom; @@ -123,6 +124,7 @@ class Pair : protected Pointers { ExecutionSpace execution_space; unsigned int datamask_read, datamask_modify; int kokkosable; // 1 if Kokkos pair + int reverse_comm_device; // 1 if reverse comm on Device Pair(class LAMMPS *); ~Pair() override; @@ -176,6 +178,7 @@ class Pair : protected Pointers { du = du2 = 0.0; } + virtual void finish() {} virtual void settings(int, char **) = 0; virtual void coeff(int, char **) = 0; @@ -199,6 +202,12 @@ class Pair : protected Pointers { virtual void unpack_forward_comm(int, int, double *) {} virtual int pack_reverse_comm(int, int, double *) { return 0; } virtual void unpack_reverse_comm(int, int *, double *) {} + + virtual void pack_forward_grid(int, void *, int, int *) {} + virtual void unpack_forward_grid(int, void *, int, int *) {} + virtual void pack_reverse_grid(int, void *, int, int *) {} + virtual void unpack_reverse_grid(int, void *, int, int *) {} + virtual double memory_usage(); void set_copymode(int value) { copymode = value; } diff --git a/src/pair_deprecated.cpp b/src/pair_deprecated.cpp index 691eff124f..cafb0ce7c0 100644 --- a/src/pair_deprecated.cpp +++ b/src/pair_deprecated.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -18,11 +17,10 @@ #include "pair_deprecated.h" -#include "pair_hybrid.h" #include "comm.h" -#include "force.h" #include "error.h" - +#include "force.h" +#include "pair_hybrid.h" using namespace LAMMPS_NS; @@ -35,21 +33,21 @@ void PairDeprecated::settings(int, char **) // hybrid substyles are created in PairHybrid::settings(), so when this is // called, our style was just added at the end of the list of substyles - if (utils::strmatch(my_style,"^hybrid")) { + if (utils::strmatch(my_style, "^hybrid")) { auto hybrid = dynamic_cast(force->pair); my_style = hybrid->keywords[hybrid->nstyles]; } if (my_style == "DEPRECATED") { - if (lmp->comm->me == 0) - utils::logmesg(lmp,"\nPair style 'DEPRECATED' is a dummy style\n\n"); + if (lmp->comm->me == 0) utils::logmesg(lmp, "\nPair style 'DEPRECATED' is a dummy style\n\n"); return; } if (my_style == "reax") { if (lmp->comm->me == 0) - utils::logmesg(lmp,"\nPair style 'reax' has been removed from LAMMPS " + utils::logmesg(lmp, + "\nPair style 'reax' has been removed from LAMMPS " "after the 12 December 2018 version\n\n"); } - error->all(FLERR,"This pair style is no longer available"); + error->all(FLERR, "This pair style is no longer available"); } diff --git a/src/pair_hybrid.cpp b/src/pair_hybrid.cpp index f4043bcdf9..375423c321 100644 --- a/src/pair_hybrid.cpp +++ b/src/pair_hybrid.cpp @@ -35,7 +35,7 @@ using namespace LAMMPS_NS; PairHybrid::PairHybrid(LAMMPS *lmp) : Pair(lmp), styles(nullptr), keywords(nullptr), multiple(nullptr), nmap(nullptr), - map(nullptr), special_lj(nullptr), special_coul(nullptr), compute_tally(nullptr) + map(nullptr), special_lj(nullptr), special_coul(nullptr), compute_tally(nullptr), cutmax_style(nullptr) { nstyles = 0; @@ -56,6 +56,7 @@ PairHybrid::~PairHybrid() } } delete[] styles; + delete[] cutmax_style; delete[] keywords; delete[] multiple; @@ -192,6 +193,12 @@ void PairHybrid::compute(int eflag, int vflag) if (vflag_fdotr) virial_fdotr_compute(); } +/* ---------------------------------------------------------------------- */ + +void PairHybrid::finish() +{ + for (int m = 0; m < nstyles; m++) styles[m]->finish(); +} /* ---------------------------------------------------------------------- */ @@ -298,6 +305,8 @@ void PairHybrid::settings(int narg, char **arg) // allocate list of sub-styles as big as possibly needed if no extra args styles = new Pair *[narg]; + cutmax_style = new double[narg]; + memset(cutmax_style, 0.0, narg*sizeof(double)); keywords = new char *[narg]; multiple = new int[narg]; @@ -716,6 +725,24 @@ double PairHybrid::init_one(int i, int j) ptail_ij += styles[map[i][j][k]]->ptail_ij; } cutmax = MAX(cutmax,cut); + + int istyle; + for (istyle = 0; istyle < nstyles; istyle++) + if (styles[istyle] == styles[map[i][j][k]]) break; + + if (styles[istyle]->trim_flag) { + + if (cut > cutmax_style[istyle]) { + cutmax_style[istyle] = cut; + + for (auto &request : neighbor->get_pair_requests()) { + if (styles[istyle] == request->get_requestor() && styles[istyle]->trim_flag) { + request->set_cutoff(cutmax_style[istyle]); + break; + } + } + } + } } return cutmax; @@ -778,6 +805,8 @@ void PairHybrid::read_restart(FILE *fp) delete[] compute_tally; styles = new Pair*[nstyles]; + cutmax_style = new double[nstyles]; + memset(cutmax_style, 0.0, nstyles*sizeof(double)); keywords = new char*[nstyles]; multiple = new int[nstyles]; diff --git a/src/pair_hybrid.h b/src/pair_hybrid.h index 84056f1e79..8c7782bc4f 100644 --- a/src/pair_hybrid.h +++ b/src/pair_hybrid.h @@ -46,6 +46,7 @@ class PairHybrid : public Pair { void init_style() override; double init_one(int, int) override; void setup() override; + void finish() override; void write_restart(FILE *) override; void read_restart(FILE *) override; double single(int, int, int, int, double, double, double, double &) override; @@ -68,10 +69,11 @@ class PairHybrid : public Pair { double radii2cut(double, double) override; protected: - int nstyles; // # of sub-styles - Pair **styles; // list of Pair style classes - char **keywords; // style name of each Pair style - int *multiple; // 0 if style used once, else Mth instance + int nstyles; // # of sub-styles + Pair **styles; // list of Pair style classes + double *cutmax_style; // max cutoff for each style + char **keywords; // style name of each Pair style + int *multiple; // 0 if style used once, else Mth instance int outerflag; // toggle compute() when invoked by outer() int respaflag; // 1 if different substyles are assigned to diff --git a/src/pair_hybrid_scaled.cpp b/src/pair_hybrid_scaled.cpp index 2c0c574f70..a059deb3fb 100644 --- a/src/pair_hybrid_scaled.cpp +++ b/src/pair_hybrid_scaled.cpp @@ -276,6 +276,8 @@ void PairHybridScaled::settings(int narg, char **arg) // allocate list of sub-styles as big as possibly needed if no extra args styles = new Pair *[narg]; + cutmax_style = new double[narg]; + memset(cutmax_style, 0.0, narg*sizeof(double)); keywords = new char *[narg]; multiple = new int[narg]; diff --git a/src/pair_table.cpp b/src/pair_table.cpp index aefe9c4c4f..11bd986822 100644 --- a/src/pair_table.cpp +++ b/src/pair_table.cpp @@ -395,20 +395,18 @@ void PairTable::read_table(Table *tb, char *file, char *keyword) union_int_float_t rsq_lookup; int rerror = 0; - int cerror = 0; - reader.skip_line(); for (int i = 0; i < tb->ninput; i++) { - line = reader.next_line(4); - + line = reader.next_line(); try { ValueTokenizer values(line); values.next_int(); rfile = values.next_double(); tb->efile[i] = conversion_factor * values.next_double(); tb->ffile[i] = conversion_factor * values.next_double(); - } catch (TokenizerException &) { - ++cerror; + } catch (TokenizerException &e) { + error->one(FLERR, "Error parsing pair table '{}' line {} of {}. {}\nLine was: {}", keyword, + i + 1, tb->ninput, e.what(), line); } rnew = rfile; @@ -474,14 +472,6 @@ void PairTable::read_table(Table *tb, char *file, char *keyword) "{} of {} distance values in table {} with relative error\n" "WARNING: over {} to re-computed values", rerror, tb->ninput, EPSILONR, keyword); - - // warn if data was read incompletely, e.g. columns were missing - - if (cerror) - error->warning(FLERR, - "{} of {} lines in table {} were incomplete\n" - "WARNING: or could not be parsed completely", - cerror, tb->ninput, keyword); } /* ---------------------------------------------------------------------- diff --git a/src/pair_yukawa.cpp b/src/pair_yukawa.cpp index 620ca294c3..e1190b614f 100644 --- a/src/pair_yukawa.cpp +++ b/src/pair_yukawa.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -14,14 +13,14 @@ #include "pair_yukawa.h" -#include #include "atom.h" -#include "force.h" #include "comm.h" -#include "neigh_list.h" -#include "memory.h" #include "error.h" +#include "force.h" +#include "memory.h" +#include "neigh_list.h" +#include using namespace LAMMPS_NS; @@ -53,13 +52,13 @@ PairYukawa::~PairYukawa() void PairYukawa::compute(int eflag, int vflag) { - int i,j,ii,jj,inum,jnum,itype,jtype; - double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; - double rsq,r2inv,r,rinv,screening,forceyukawa,factor; - int *ilist,*jlist,*numneigh,**firstneigh; + int i, j, ii, jj, inum, jnum, itype, jtype; + double xtmp, ytmp, ztmp, delx, dely, delz, evdwl, fpair; + double rsq, r2inv, r, rinv, screening, forceyukawa, factor; + int *ilist, *jlist, *numneigh, **firstneigh; evdwl = 0.0; - ev_init(eflag,vflag); + ev_init(eflag, vflag); double **x = atom->x; double **f = atom->f; @@ -92,25 +91,25 @@ void PairYukawa::compute(int eflag, int vflag) delx = xtmp - x[j][0]; dely = ytmp - x[j][1]; delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; + rsq = delx * delx + dely * dely + delz * delz; jtype = type[j]; if (rsq < cutsq[itype][jtype]) { - r2inv = 1.0/rsq; + r2inv = 1.0 / rsq; r = sqrt(rsq); - rinv = 1.0/r; - screening = exp(-kappa*r); + rinv = 1.0 / r; + screening = exp(-kappa * r); forceyukawa = a[itype][jtype] * screening * (kappa + rinv); - fpair = factor*forceyukawa * r2inv; + fpair = factor * forceyukawa * r2inv; - f[i][0] += delx*fpair; - f[i][1] += dely*fpair; - f[i][2] += delz*fpair; + f[i][0] += delx * fpair; + f[i][1] += dely * fpair; + f[i][2] += delz * fpair; if (newton_pair || j < nlocal) { - f[j][0] -= delx*fpair; - f[j][1] -= dely*fpair; - f[j][2] -= delz*fpair; + f[j][0] -= delx * fpair; + f[j][1] -= dely * fpair; + f[j][2] -= delz * fpair; } if (eflag) { @@ -118,8 +117,7 @@ void PairYukawa::compute(int eflag, int vflag) evdwl *= factor; } - if (evflag) ev_tally(i,j,nlocal,newton_pair, - evdwl,0.0,fpair,delx,dely,delz); + if (evflag) ev_tally(i, j, nlocal, newton_pair, evdwl, 0.0, fpair, delx, dely, delz); } } } @@ -134,18 +132,17 @@ void PairYukawa::compute(int eflag, int vflag) void PairYukawa::allocate() { allocated = 1; - int n = atom->ntypes; + int np1 = atom->ntypes + 1; - memory->create(setflag,n+1,n+1,"pair:setflag"); - for (int i = 1; i <= n; i++) - for (int j = i; j <= n; j++) - setflag[i][j] = 0; + memory->create(setflag, np1, np1, "pair:setflag"); + for (int i = 1; i < np1; i++) + for (int j = i; j < np1; j++) setflag[i][j] = 0; - memory->create(cutsq,n+1,n+1,"pair:cutsq"); - memory->create(rad,n+1,"pair:rad"); - memory->create(cut,n+1,n+1,"pair:cut"); - memory->create(a,n+1,n+1,"pair:a"); - memory->create(offset,n+1,n+1,"pair:offset"); + memory->create(cutsq, np1, np1, "pair:cutsq"); + memory->create(rad, np1, "pair:rad"); + memory->create(cut, np1, np1, "pair:cut"); + memory->create(a, np1, np1, "pair:a"); + memory->create(offset, np1, np1, "pair:offset"); } /* ---------------------------------------------------------------------- @@ -154,15 +151,15 @@ void PairYukawa::allocate() void PairYukawa::settings(int narg, char **arg) { - if (narg != 2) error->all(FLERR,"Illegal pair_style command"); + if (narg != 2) error->all(FLERR, "Illegal pair_style command"); - kappa = utils::numeric(FLERR,arg[0],false,lmp); - cut_global = utils::numeric(FLERR,arg[1],false,lmp); + kappa = utils::numeric(FLERR, arg[0], false, lmp); + cut_global = utils::numeric(FLERR, arg[1], false, lmp); // reset cutoffs that have been explicitly set if (allocated) { - int i,j; + int i, j; for (i = 1; i <= atom->ntypes; i++) for (j = i; j <= atom->ntypes; j++) if (setflag[i][j]) cut[i][j] = cut_global; @@ -175,22 +172,21 @@ void PairYukawa::settings(int narg, char **arg) void PairYukawa::coeff(int narg, char **arg) { - if (narg < 3 || narg > 4) - error->all(FLERR,"Incorrect args for pair coefficients"); + if (narg < 3 || narg > 4) error->all(FLERR, "Incorrect args for pair coefficients"); if (!allocated) allocate(); - int ilo,ihi,jlo,jhi; - utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); - utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); + int ilo, ihi, jlo, jhi; + utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); - double a_one = utils::numeric(FLERR,arg[2],false,lmp); + double a_one = utils::numeric(FLERR, arg[2], false, lmp); double cut_one = cut_global; - if (narg == 4) cut_one = utils::numeric(FLERR,arg[3],false,lmp); + if (narg == 4) cut_one = utils::numeric(FLERR, arg[3], false, lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { + for (int j = MAX(jlo, i); j <= jhi; j++) { a[i][j] = a_one; cut[i][j] = cut_one; setflag[i][j] = 1; @@ -198,7 +194,7 @@ void PairYukawa::coeff(int narg, char **arg) } } - if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); + if (count == 0) error->all(FLERR, "Incorrect args for pair coefficients"); } /* ---------------------------------------------------------------------- @@ -208,14 +204,15 @@ void PairYukawa::coeff(int narg, char **arg) double PairYukawa::init_one(int i, int j) { if (setflag[i][j] == 0) { - a[i][j] = mix_energy(a[i][i],a[j][j],1.0,1.0); - cut[i][j] = mix_distance(cut[i][i],cut[j][j]); + a[i][j] = mix_energy(a[i][i], a[j][j], 1.0, 1.0); + cut[i][j] = mix_distance(cut[i][i], cut[j][j]); } if (offset_flag && (cut[i][j] > 0.0)) { double screening = exp(-kappa * cut[i][j]); offset[i][j] = a[i][j] * screening / cut[i][j]; - } else offset[i][j] = 0.0; + } else + offset[i][j] = 0.0; a[j][i] = a[i][j]; offset[j][i] = offset[i][j]; @@ -231,13 +228,13 @@ void PairYukawa::write_restart(FILE *fp) { write_restart_settings(fp); - int i,j; + int i, j; for (i = 1; i <= atom->ntypes; i++) for (j = i; j <= atom->ntypes; j++) { - fwrite(&setflag[i][j],sizeof(int),1,fp); + fwrite(&setflag[i][j], sizeof(int), 1, fp); if (setflag[i][j]) { - fwrite(&a[i][j],sizeof(double),1,fp); - fwrite(&cut[i][j],sizeof(double),1,fp); + fwrite(&a[i][j], sizeof(double), 1, fp); + fwrite(&cut[i][j], sizeof(double), 1, fp); } } } @@ -252,19 +249,19 @@ void PairYukawa::read_restart(FILE *fp) allocate(); - int i,j; + int i, j; int me = comm->me; for (i = 1; i <= atom->ntypes; i++) for (j = i; j <= atom->ntypes; j++) { - if (me == 0) utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error); - MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); + if (me == 0) utils::sfread(FLERR, &setflag[i][j], sizeof(int), 1, fp, nullptr, error); + MPI_Bcast(&setflag[i][j], 1, MPI_INT, 0, world); if (setflag[i][j]) { if (me == 0) { - utils::sfread(FLERR,&a[i][j],sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR,&cut[i][j],sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR, &a[i][j], sizeof(double), 1, fp, nullptr, error); + utils::sfread(FLERR, &cut[i][j], sizeof(double), 1, fp, nullptr, error); } - MPI_Bcast(&a[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&a[i][j], 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut[i][j], 1, MPI_DOUBLE, 0, world); } } } @@ -275,10 +272,10 @@ void PairYukawa::read_restart(FILE *fp) void PairYukawa::write_restart_settings(FILE *fp) { - fwrite(&kappa,sizeof(double),1,fp); - fwrite(&cut_global,sizeof(double),1,fp); - fwrite(&offset_flag,sizeof(int),1,fp); - fwrite(&mix_flag,sizeof(int),1,fp); + fwrite(&kappa, sizeof(double), 1, fp); + fwrite(&cut_global, sizeof(double), 1, fp); + fwrite(&offset_flag, sizeof(int), 1, fp); + fwrite(&mix_flag, sizeof(int), 1, fp); } /* ---------------------------------------------------------------------- @@ -288,15 +285,15 @@ void PairYukawa::write_restart_settings(FILE *fp) void PairYukawa::read_restart_settings(FILE *fp) { if (comm->me == 0) { - utils::sfread(FLERR,&kappa,sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR,&cut_global,sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR,&offset_flag,sizeof(int),1,fp,nullptr,error); - utils::sfread(FLERR,&mix_flag,sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR, &kappa, sizeof(double), 1, fp, nullptr, error); + utils::sfread(FLERR, &cut_global, sizeof(double), 1, fp, nullptr, error); + utils::sfread(FLERR, &offset_flag, sizeof(int), 1, fp, nullptr, error); + utils::sfread(FLERR, &mix_flag, sizeof(int), 1, fp, nullptr, error); } - MPI_Bcast(&kappa,1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); - MPI_Bcast(&offset_flag,1,MPI_INT,0,world); - MPI_Bcast(&mix_flag,1,MPI_INT,0,world); + MPI_Bcast(&kappa, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_global, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&offset_flag, 1, MPI_INT, 0, world); + MPI_Bcast(&mix_flag, 1, MPI_INT, 0, world); } /* ---------------------------------------------------------------------- @@ -305,8 +302,7 @@ void PairYukawa::read_restart_settings(FILE *fp) void PairYukawa::write_data(FILE *fp) { - for (int i = 1; i <= atom->ntypes; i++) - fprintf(fp,"%d %g\n",i,a[i][i]); + for (int i = 1; i <= atom->ntypes; i++) fprintf(fp, "%d %g\n", i, a[i][i]); } /* ---------------------------------------------------------------------- @@ -316,25 +312,23 @@ void PairYukawa::write_data(FILE *fp) void PairYukawa::write_data_all(FILE *fp) { for (int i = 1; i <= atom->ntypes; i++) - for (int j = i; j <= atom->ntypes; j++) - fprintf(fp,"%d %d %g %g\n",i,j,a[i][j],cut[i][j]); + for (int j = i; j <= atom->ntypes; j++) fprintf(fp, "%d %d %g %g\n", i, j, a[i][j], cut[i][j]); } /* ---------------------------------------------------------------------- */ double PairYukawa::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, - double /*factor_coul*/, double factor_lj, - double &fforce) + double /*factor_coul*/, double factor_lj, double &fforce) { - double r2inv,r,rinv,screening,forceyukawa,phi; + double r2inv, r, rinv, screening, forceyukawa, phi; - r2inv = 1.0/rsq; + r2inv = 1.0 / rsq; r = sqrt(rsq); - rinv = 1.0/r; - screening = exp(-kappa*r); + rinv = 1.0 / r; + screening = exp(-kappa * r); forceyukawa = a[itype][jtype] * screening * (kappa + rinv); - fforce = factor_lj*forceyukawa * r2inv; + fforce = factor_lj * forceyukawa * r2inv; phi = a[itype][jtype] * screening * rinv - offset[itype][jtype]; - return factor_lj*phi; + return factor_lj * phi; } diff --git a/src/pair_zero.cpp b/src/pair_zero.cpp index 5c229d6b71..83505edd35 100644 --- a/src/pair_zero.cpp +++ b/src/pair_zero.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -20,8 +19,8 @@ #include "atom.h" #include "comm.h" -#include "memory.h" #include "error.h" +#include "memory.h" #include @@ -29,11 +28,12 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -PairZero::PairZero(LAMMPS *lmp) : Pair(lmp) { - coeffflag=1; - writedata=1; - single_enable=1; - respa_enable=1; +PairZero::PairZero(LAMMPS *lmp) : Pair(lmp) +{ + coeffflag = 1; + writedata = 1; + single_enable = 1; + respa_enable = 1; } /* ---------------------------------------------------------------------- */ @@ -51,15 +51,15 @@ PairZero::~PairZero() void PairZero::compute(int eflag, int vflag) { - ev_init(eflag,vflag); - if (vflag_fdotr) virial_fdotr_compute(); + ev_init(eflag, vflag); + if (vflag_fdotr) virial_fdotr_compute(); } /* ---------------------------------------------------------------------- */ void PairZero::compute_outer(int eflag, int vflag) { - ev_init(eflag,vflag); + ev_init(eflag, vflag); } /* ---------------------------------------------------------------------- @@ -69,15 +69,14 @@ void PairZero::compute_outer(int eflag, int vflag) void PairZero::allocate() { allocated = 1; - int n = atom->ntypes; + int np1 = atom->ntypes + 1; - memory->create(setflag,n+1,n+1,"pair:setflag"); - for (int i = 1; i <= n; i++) - for (int j = i; j <= n; j++) - setflag[i][j] = 0; + memory->create(setflag, np1, np1, "pair:setflag"); + for (int i = 1; i < np1; i++) + for (int j = i; j < np1; j++) setflag[i][j] = 0; - memory->create(cutsq,n+1,n+1,"pair:cutsq"); - memory->create(cut,n+1,n+1,"pair:cut"); + memory->create(cutsq, np1, np1, "pair:cutsq"); + memory->create(cut, np1, np1, "pair:cut"); } /* ---------------------------------------------------------------------- @@ -86,22 +85,22 @@ void PairZero::allocate() void PairZero::settings(int narg, char **arg) { - if ((narg != 1) && (narg != 2)) - error->all(FLERR,"Illegal pair_style command"); + if ((narg != 1) && (narg != 2)) error->all(FLERR, "Illegal pair_style command"); - cut_global = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR, arg[0], false, lmp); if (narg == 2) { - if (strcmp("nocoeff",arg[1]) == 0) coeffflag=0; - else error->all(FLERR,"Illegal pair_style command"); + if (strcmp("nocoeff", arg[1]) == 0) + coeffflag = 0; + else + error->all(FLERR, "Illegal pair_style command"); } // reset cutoffs that have been explicitly set if (allocated) { - int i,j; + int i, j; for (i = 1; i <= atom->ntypes; i++) - for (j = i+1; j <= atom->ntypes; j++) - cut[i][j] = cut_global; + for (j = i + 1; j <= atom->ntypes; j++) cut[i][j] = cut_global; } } @@ -112,27 +111,27 @@ void PairZero::settings(int narg, char **arg) void PairZero::coeff(int narg, char **arg) { if ((narg < 2) || (coeffflag && narg > 3)) - error->all(FLERR,"Incorrect args for pair coefficients"); + error->all(FLERR, "Incorrect args for pair coefficients"); if (!allocated) allocate(); - int ilo,ihi,jlo,jhi; - utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); - utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); + int ilo, ihi, jlo, jhi; + utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); double cut_one = cut_global; - if (coeffflag && (narg == 3)) cut_one = utils::numeric(FLERR,arg[2],false,lmp); + if (coeffflag && (narg == 3)) cut_one = utils::numeric(FLERR, arg[2], false, lmp); int count = 0; for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { + for (int j = MAX(jlo, i); j <= jhi; j++) { cut[i][j] = cut_one; setflag[i][j] = 1; count++; } } - if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); + if (count == 0) error->all(FLERR, "Incorrect args for pair coefficients"); } /* ---------------------------------------------------------------------- @@ -141,9 +140,7 @@ void PairZero::coeff(int narg, char **arg) double PairZero::init_one(int i, int j) { - if (setflag[i][j] == 0) { - cut[i][j] = mix_distance(cut[i][i],cut[j][j]); - } + if (setflag[i][j] == 0) { cut[i][j] = mix_distance(cut[i][i], cut[j][j]); } return cut[i][j]; } @@ -156,13 +153,11 @@ void PairZero::write_restart(FILE *fp) { write_restart_settings(fp); - int i,j; + int i, j; for (i = 1; i <= atom->ntypes; i++) for (j = i; j <= atom->ntypes; j++) { - fwrite(&setflag[i][j],sizeof(int),1,fp); - if (setflag[i][j]) { - fwrite(&cut[i][j],sizeof(double),1,fp); - } + fwrite(&setflag[i][j], sizeof(int), 1, fp); + if (setflag[i][j]) { fwrite(&cut[i][j], sizeof(double), 1, fp); } } } @@ -175,17 +170,15 @@ void PairZero::read_restart(FILE *fp) read_restart_settings(fp); allocate(); - int i,j; + int i, j; int me = comm->me; for (i = 1; i <= atom->ntypes; i++) for (j = i; j <= atom->ntypes; j++) { - if (me == 0) utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error); - MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); + if (me == 0) utils::sfread(FLERR, &setflag[i][j], sizeof(int), 1, fp, nullptr, error); + MPI_Bcast(&setflag[i][j], 1, MPI_INT, 0, world); if (setflag[i][j]) { - if (me == 0) { - utils::sfread(FLERR,&cut[i][j],sizeof(double),1,fp,nullptr,error); - } - MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); + if (me == 0) { utils::sfread(FLERR, &cut[i][j], sizeof(double), 1, fp, nullptr, error); } + MPI_Bcast(&cut[i][j], 1, MPI_DOUBLE, 0, world); } } } @@ -196,8 +189,8 @@ void PairZero::read_restart(FILE *fp) void PairZero::write_restart_settings(FILE *fp) { - fwrite(&cut_global,sizeof(double),1,fp); - fwrite(&coeffflag,sizeof(int),1,fp); + fwrite(&cut_global, sizeof(double), 1, fp); + fwrite(&coeffflag, sizeof(int), 1, fp); } /* ---------------------------------------------------------------------- @@ -208,11 +201,11 @@ void PairZero::read_restart_settings(FILE *fp) { int me = comm->me; if (me == 0) { - utils::sfread(FLERR,&cut_global,sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR,&coeffflag,sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR, &cut_global, sizeof(double), 1, fp, nullptr, error); + utils::sfread(FLERR, &coeffflag, sizeof(int), 1, fp, nullptr, error); } - MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); - MPI_Bcast(&coeffflag,1,MPI_INT,0,world); + MPI_Bcast(&cut_global, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&coeffflag, 1, MPI_INT, 0, world); } /* ---------------------------------------------------------------------- @@ -221,8 +214,7 @@ void PairZero::read_restart_settings(FILE *fp) void PairZero::write_data(FILE *fp) { - for (int i = 1; i <= atom->ntypes; i++) - fprintf(fp,"%d\n",i); + for (int i = 1; i <= atom->ntypes; i++) fprintf(fp, "%d\n", i); } /* ---------------------------------------------------------------------- @@ -232,17 +224,14 @@ void PairZero::write_data(FILE *fp) void PairZero::write_data_all(FILE *fp) { for (int i = 1; i <= atom->ntypes; i++) - for (int j = i; j <= atom->ntypes; j++) - fprintf(fp,"%d %d %g\n",i,j,cut[i][j]); + for (int j = i; j <= atom->ntypes; j++) fprintf(fp, "%d %d %g\n", i, j, cut[i][j]); } /* ---------------------------------------------------------------------- */ -double PairZero::single(int /*i*/, int /*j*/, int /* itype */, int /* jtype */, - double /* rsq */, double /*factor_coul*/, - double /* factor_lj */, double &fforce) +double PairZero::single(int /*i*/, int /*j*/, int /* itype */, int /* jtype */, double /* rsq */, + double /*factor_coul*/, double /* factor_lj */, double &fforce) { fforce = 0.0; return 0.0; } - diff --git a/src/platform.cpp b/src/platform.cpp index 907b4ef677..667481b94d 100644 --- a/src/platform.cpp +++ b/src/platform.cpp @@ -186,13 +186,63 @@ std::string platform::os_info() char value[1024]; DWORD value_length = 1024; const char *subkey = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"; - const char *entry = "ProductName"; + const char *entry = "CurrentBuild"; RegGetValue(HKEY_LOCAL_MACHINE, subkey, entry, RRF_RT_REG_SZ, nullptr, &value, (LPDWORD) &value_length); // enforce zero termination value[1023] = '\0'; - buf = value; + auto build = std::string(value); + if (build == "6002") { + buf = "Windows Vista"; + } else if (build == "6003") { + buf = "Windows Server 2008"; + } else if (build == "7601") { + buf = "Windows 7"; + } else if (build == "9200") { + buf = "Windows 8"; + } else if (build == "9600") { + buf = "Windows 8.1"; + } else if (build == "10240") { + buf = "Windows 10 1507"; + } else if (build == "10586") { + buf = "Windows 10 1511"; + } else if (build == "14393") { + buf = "Windows 10 1607"; + } else if (build == "15063") { + buf = "Windows 10 1703"; + } else if (build == "16299") { + buf = "Windows 10 1709"; + } else if (build == "17134") { + buf = "Windows 10 1803"; + } else if (build == "17763") { + buf = "Windows 10 1809"; + } else if (build == "18362") { + buf = "Windows 10 1903"; + } else if (build == "18363") { + buf = "Windows 10 1909"; + } else if (build == "19041") { + buf = "Windows 10 2004"; + } else if (build == "19042") { + buf = "Windows 10 20H2"; + } else if (build == "19043") { + buf = "Windows 10 21H1"; + } else if (build == "19044") { + buf = "Windows 10 21H2"; + } else if (build == "20348") { + buf = "Windows Server 2022"; + } else if (build == "22000") { + buf = "Windows 11 21H2"; + } else if (build == "22621") { + buf = "Windows 11 22H2"; + } else { + const char *entry = "ProductName"; + RegGetValue(HKEY_LOCAL_MACHINE, subkey, entry, RRF_RT_REG_SZ, nullptr, &value, + (LPDWORD) &value_length); + // enforce zero termination + value[1023] = '\0'; + buf = value; + } DWORD fullversion, majorv, minorv, buildv = 0; fullversion = GetVersion(); majorv = (DWORD) (LOBYTE(LOWORD(fullversion))); @@ -303,11 +353,18 @@ std::string platform::compiler_info() __MINGW32_MINOR_VERSION, __VERSION__); #elif defined(__GNUC__) buf = fmt::format("GNU C++ {}", __VERSION__); -#elif defined(_MSC_VER) && (_MSC_VER > 1920) && (_MSC_VER < 2000) +#elif defined(_MSC_VER) && (_MSC_VER >= 1920) && (_MSC_VER < 1930) constexpr int major = _MSC_VER / 100; constexpr int minor = _MSC_VER - major * 100; - buf = "Microsoft Visual Studio 20" + std::to_string(major) + ", C/C++ " + - std::to_string(major - 5) + "." + std::to_string(minor); + constexpr int patch = minor - 20; + buf = fmt::format("Microsoft Visual Studio 2019 Version 16.{}, C/C++ {}.{}", patch, major - 5, + minor); +#elif defined(_MSC_VER) && (_MSC_VER >= 1930) && (_MSC_VER < 2000) + constexpr int major = _MSC_VER / 100; + constexpr int minor = _MSC_VER - major * 100; + constexpr int patch = minor - 30; + buf = fmt::format("Microsoft Visual Studio 2022 Version 17.{}, C/C++ {}.{}", patch, major - 5, + minor); #else buf = "(Unknown)"; #endif diff --git a/src/read_data.cpp b/src/read_data.cpp index b77394bcb3..1ec8210e5e 100644 --- a/src/read_data.cpp +++ b/src/read_data.cpp @@ -313,11 +313,9 @@ void ReadData::command(int narg, char **arg) error->all(FLERR,"Reading a data file with shrinkwrap boundaries is " "not compatible with a MSM KSpace style"); if (domain->box_exist && !addflag) - error->all(FLERR,"Cannot read_data without add keyword " - "after simulation box is defined"); + error->all(FLERR,"Cannot read_data without add keyword after simulation box is defined"); if (!domain->box_exist && addflag) - error->all(FLERR,"Cannot use read_data add before " - "simulation box is defined"); + error->all(FLERR,"Cannot use read_data add before simulation box is defined"); if (offsetflag && addflag == NONE) error->all(FLERR,"Cannot use read_data offset without add flag"); if (shiftflag && addflag == NONE) @@ -330,8 +328,7 @@ void ReadData::command(int narg, char **arg) // check if data file is available and readable if (!platform::file_is_readable(arg[0])) - error->all(FLERR,fmt::format("Cannot open file {}: {}", - arg[0], utils::getsyserror())); + error->all(FLERR,fmt::format("Cannot open file {}: {}", arg[0], utils::getsyserror())); // reset so we can warn about reset image flags exactly once per data file @@ -683,6 +680,13 @@ void ReadData::command(int narg, char **arg) error->all(FLERR,"Must define angle_style before BondAngle Coeffs"); if (firstpass) anglecoeffs(2); else skip_lines(nangletypes); + } else if (strcmp(keyword,"UreyBradley Coeffs") == 0) { + if (atom->avec->angles_allow == 0) + error->all(FLERR,"Invalid data file section: UreyBradley Coeffs"); + if (force->angle == nullptr) + error->all(FLERR,"Must define angle_style before UreyBradley Coeffs"); + if (firstpass) anglecoeffs(3); + else skip_lines(nangletypes); } else if (strcmp(keyword,"MiddleBondTorsion Coeffs") == 0) { if (atom->avec->dihedrals_allow == 0) @@ -739,8 +743,8 @@ void ReadData::command(int narg, char **arg) for (i = 0; i < nfix; i++) if (strcmp(keyword,fix_section[i]) == 0) { if (firstpass) fix(fix_index[i],keyword); - else skip_lines(modify->fix[fix_index[i]]->read_data_skip_lines(keyword)); - parse_keyword(0); + else skip_lines(modify->fix[fix_index[i]]-> + read_data_skip_lines(keyword)); break; } if (i == nfix) @@ -1847,6 +1851,7 @@ void ReadData::anglecoeffs(int which) if (which == 0) parse_coeffs(buf,nullptr,0,1,aoffset); else if (which == 1) parse_coeffs(buf,"bb",0,1,aoffset); else if (which == 2) parse_coeffs(buf,"ba",0,1,aoffset); + else if (which == 3) parse_coeffs(buf,"ub",0,1,aoffset); if (ncoeffarg == 0) error->all(FLERR,"Unexpected empty line in AngleCoeffs section"); force->angle->coeff(ncoeffarg,coeffarg); buf = next + 1; diff --git a/src/read_dump.cpp b/src/read_dump.cpp index 8af19ee601..aa9ec0bbf0 100644 --- a/src/read_dump.cpp +++ b/src/read_dump.cpp @@ -121,7 +121,7 @@ void ReadDump::command(int narg, char **arg) // reset timestep to nstep - update->reset_timestep(nstep, true); + if (timestepflag) update->reset_timestep(nstep, true); // counters @@ -1202,6 +1202,7 @@ int ReadDump::fields_and_keywords(int narg, char **arg) multiproc_nfile = 0; boxflag = 1; + timestepflag = 1; replaceflag = 1; purgeflag = 0; trimflag = 0; @@ -1219,6 +1220,10 @@ int ReadDump::fields_and_keywords(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal read_dump command"); boxflag = utils::logical(FLERR,arg[iarg+1],false,lmp); iarg += 2; + } else if (strcmp(arg[iarg],"timestep") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal read_dump command"); + timestepflag = utils::logical(FLERR,arg[iarg+1],false,lmp); + iarg += 2; } else if (strcmp(arg[iarg],"replace") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal read_dump command"); replaceflag = utils::logical(FLERR,arg[iarg+1],false,lmp); diff --git a/src/read_dump.h b/src/read_dump.h index 1a94cd1cd3..506cd197c1 100644 --- a/src/read_dump.h +++ b/src/read_dump.h @@ -63,7 +63,8 @@ class ReadDump : public Command { int dimension; // same as in Domain int triclinic; - int boxflag; // overwrite simulation with dump file box params + int boxflag; // overwrite simulation box with dump file box params + int timestepflag; // overwrite simulation timestep with dump file timestep int replaceflag, addflag; // flags for processing dump snapshot atoms int trimflag, purgeflag; int scaleflag; // user 0/1 if dump file coords are unscaled/scaled diff --git a/src/read_restart.cpp b/src/read_restart.cpp index b42dcce1ca..a7fb5a828d 100644 --- a/src/read_restart.cpp +++ b/src/read_restart.cpp @@ -61,9 +61,10 @@ void ReadRestart::command(int narg, char **arg) // check for remap option - int remapflag = 0; + int remapflag = 1; if (narg == 2) { - if (strcmp(arg[1],"remap") == 0) remapflag = 1; + if (strcmp(arg[1],"noremap") == 0) remapflag = 0; + else if (strcmp(arg[1],"remap") == 0) remapflag = 1; // for backward compatibility else error->all(FLERR,"Illegal read_restart command"); } @@ -643,8 +644,7 @@ void ReadRestart::header() int dimension = read_int(); domain->dimension = dimension; if (domain->dimension == 2 && domain->zperiodic == 0) - error->all(FLERR, - "Cannot run 2d simulation with non-periodic Z dimension"); + error->all(FLERR, "Cannot run 2d simulation with non-periodic Z dimension"); // read nprocs from restart file, warn if different diff --git a/src/reader.cpp b/src/reader.cpp index eb8cd9ffb6..025445ca24 100644 --- a/src/reader.cpp +++ b/src/reader.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -29,6 +28,12 @@ Reader::Reader(LAMMPS *lmp) : Pointers(lmp) compressed = false; } +// avoid resource leak +Reader::~Reader() +{ + if (fp != nullptr) close_file(); +} + /* ---------------------------------------------------------------------- try to open given file generic version for ASCII files with optional compression or for native binary dumps @@ -41,19 +46,19 @@ void Reader::open_file(const std::string &file) if (platform::has_compress_extension(file)) { compressed = true; fp = platform::compressed_read(file); - if (!fp) error->one(FLERR,"Cannot open compressed file for reading"); + if (!fp) error->one(FLERR, "Cannot open compressed file for reading"); } else { compressed = false; if (utils::strmatch(file, "\\.bin$")) { binary = true; - fp = fopen(file.c_str(),"rb"); + fp = fopen(file.c_str(), "rb"); } else { - fp = fopen(file.c_str(),"r"); + fp = fopen(file.c_str(), "r"); binary = false; } } - if (!fp) error->one(FLERR,"Cannot open file {}: {}", file, utils::getsyserror()); + if (!fp) error->one(FLERR, "Cannot open file {}: {}", file, utils::getsyserror()); } /* ---------------------------------------------------------------------- @@ -64,8 +69,10 @@ void Reader::open_file(const std::string &file) void Reader::close_file() { if (fp == nullptr) return; - if (compressed) platform::pclose(fp); - else fclose(fp); + if (compressed) + platform::pclose(fp); + else + fclose(fp); fp = nullptr; } @@ -73,8 +80,7 @@ void Reader::close_file() detect unused arguments ------------------------------------------------------------------------- */ -void Reader::settings(int narg, char** /*args*/) +void Reader::settings(int narg, char ** /*args*/) { - if (narg > 0) - error->all(FLERR,"Illegal read_dump command"); + if (narg > 0) error->all(FLERR, "Illegal read_dump command"); } diff --git a/src/reader.h b/src/reader.h index 93f9197b7a..753b6956f7 100644 --- a/src/reader.h +++ b/src/reader.h @@ -23,6 +23,7 @@ namespace LAMMPS_NS { class Reader : protected Pointers { public: Reader(class LAMMPS *); + ~Reader() override; virtual void settings(int, char **); diff --git a/src/region_deprecated.cpp b/src/region_deprecated.cpp index e6d81fdc44..bc59d77259 100644 --- a/src/region_deprecated.cpp +++ b/src/region_deprecated.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -17,20 +16,17 @@ #include "comm.h" #include "error.h" - using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -RegionDeprecated::RegionDeprecated(LAMMPS *lmp, int narg, char **arg) : - Region(lmp, narg, arg) +RegionDeprecated::RegionDeprecated(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) { std::string my_style = style; if (my_style == "DEPRECATED") { - if (lmp->comm->me == 0) - utils::logmesg(lmp,"\nRegion style 'DEPRECATED' is a dummy style\n\n"); + if (lmp->comm->me == 0) utils::logmesg(lmp, "\nRegion style 'DEPRECATED' is a dummy style\n\n"); return; } - error->all(FLERR,"This region style is no longer available"); + error->all(FLERR, "This region style is no longer available"); } diff --git a/src/rerun.cpp b/src/rerun.cpp index b788cfcaec..f0048a3ce2 100644 --- a/src/rerun.cpp +++ b/src/rerun.cpp @@ -165,6 +165,7 @@ void Rerun::command(int narg, char **arg) modify->init(); update->integrate->setup_minimal(1); modify->end_of_step(); + output->next_dump_any = ntimestep; if (firstflag) output->setup(); else if (output->next) output->write(ntimestep); diff --git a/src/special.cpp b/src/special.cpp index 4aa80bc443..a7153b99d9 100644 --- a/src/special.cpp +++ b/src/special.cpp @@ -35,7 +35,7 @@ Special::Special(LAMMPS *lmp) : Pointers(lmp) MPI_Comm_rank(world,&me); MPI_Comm_size(world,&nprocs); - onetwo = onethree = onefour = nullptr; + onetwo = onethree = onefour = onefive = nullptr; } /* ---------------------------------------------------------------------- */ @@ -45,12 +45,13 @@ Special::~Special() memory->destroy(onetwo); memory->destroy(onethree); memory->destroy(onefour); + memory->destroy(onefive); } /* ---------------------------------------------------------------------- - create 1-2, 1-3, 1-4 lists of topology neighbors - store in onetwo, onethree, onefour for each atom - store 3 counters in nspecial[i] + create 1-2, 1-3, 1-4 lists of topology neighbors, 1-5 list is optional + store in onetwo, onethree, onefour, onefive for each atom + store first 3 counters in nspecial[i], and 4th in nspecial15[i] ------------------------------------------------------------------------- */ void Special::build() @@ -69,9 +70,14 @@ void Special::build() utils::logmesg(lmp,mesg); } + // set onefive_flag if special_bonds command set it + + onefive_flag = force->special_onefive; + // initialize nspecial counters to 0 int **nspecial = atom->nspecial; + int *nspecial15 = atom->nspecial15; int nlocal = atom->nlocal; for (int i = 0; i < nlocal; i++) { @@ -80,6 +86,10 @@ void Special::build() nspecial[i][2] = 0; } + if (onefive_flag) { + for (int i = 0; i < nlocal; i++) nspecial15[i] = 0; + } + // setup atomIDs and procowner vectors in rendezvous decomposition atom_owners(); @@ -96,8 +106,10 @@ void Special::build() utils::logmesg(lmp,"{:>6} = max # of 1-2 neighbors\n",maxall); // done if special_bond weights for 1-3, 1-4 are set to 1.0 + // onefive_flag must also be off, else 1-4 is needed to create 1-5 - if (force->special_lj[2] == 1.0 && force->special_coul[2] == 1.0 && + if (!onefive_flag && + force->special_lj[2] == 1.0 && force->special_coul[2] == 1.0 && force->special_lj[3] == 1.0 && force->special_coul[3] == 1.0) { dedup(); combine(); @@ -119,8 +131,10 @@ void Special::build() utils::logmesg(lmp,"{:>6} = max # of 1-3 neighbors\n",maxall); // done if special_bond weights for 1-4 are set to 1.0 + // onefive_flag must also be off, else 1-4 is needed to create 1-5 - if (force->special_lj[3] == 1.0 && force->special_coul[3] == 1.0) { + if (!onefive_flag && + force->special_lj[3] == 1.0 && force->special_coul[3] == 1.0) { dedup(); if (force->special_angle) angle_trim(); combine(); @@ -141,7 +155,17 @@ void Special::build() if (me == 0) utils::logmesg(lmp,"{:>6} = max # of 1-4 neighbors\n",maxall); - // finish processing the onetwo, onethree, onefour lists + // optionally store 1-5 neighbors + // tally nspecial15[i] = # of 1-5 neighbors of atom i + // create onefive[i] = list of 1-5 neighbors for atom i + + if (onefive_flag) { + onefive_build(); + if (me == 0) + utils::logmesg(lmp,fmt::format("{:>6} = max # of 1-5 neighbors\n",maxall)); + } + + // finish processing the onetwo, onethree, onefour, onefive lists dedup(); if (force->special_angle) angle_trim(); @@ -150,7 +174,6 @@ void Special::build() fix_alteration(); memory->destroy(procowner); memory->destroy(atomIDs); - timer_output(time1); } @@ -446,7 +469,7 @@ void Special::onefour_build() // setup input buf to rendezvous comm // datums = pairs of onethree and onetwo partners where onethree is unknown // these pairs are onefour neighbors - // datum = onetwo ID, onetwo ID + // datum = onethree ID, onetwo ID // owning proc for each datum = onethree ID % nprocs nsend = 0; @@ -517,8 +540,113 @@ void Special::onefour_build() memory->sfree(outbuf); } +/* ---------------------------------------------------------------------- + optional onefive build + uses rendezvous comm +------------------------------------------------------------------------- */ + +void Special::onefive_build() +{ + int i,j,k,m,proc; + + int **nspecial = atom->nspecial; + int *nspecial15 = atom->nspecial15; + int nlocal = atom->nlocal; + + // nsend = # of my datums to send + + int nsend = 0; + for (i = 0; i < nlocal; i++) { + for (j = 0; j < nspecial[i][2]; j++) { + m = atom->map(onefour[i][j]); + if (m < 0 || m >= nlocal) nsend += nspecial[i][0]; + } + } + + int *proclist; + memory->create(proclist,nsend,"special:proclist"); + PairRvous *inbuf = (PairRvous *) + memory->smalloc((bigint) nsend*sizeof(PairRvous),"special:inbuf"); + + // setup input buf to rendezvous comm + // datums = pairs of onefour and onetwo partners where onefour is unknown + // these pairs are onefive neighbors + // datum = onefour ID, onetwo ID + // owning proc for each datum = onefour ID % nprocs + + nsend = 0; + for (i = 0; i < nlocal; i++) { + for (j = 0; j < nspecial[i][2]; j++) { + m = atom->map(onefour[i][j]); + if (m >= 0 && m < nlocal) continue; + proc = onefour[i][j] % nprocs; + for (k = 0; k < nspecial[i][0]; k++) { + proclist[nsend] = proc; + inbuf[nsend].atomID = onefour[i][j]; + inbuf[nsend].partnerID = onetwo[i][k]; + nsend++; + } + } + } + + // perform rendezvous operation + + char *buf; + int nreturn = comm->rendezvous(RVOUS,nsend,(char *) inbuf,sizeof(PairRvous), + 0,proclist, + rendezvous_pairs,0,buf,sizeof(PairRvous), + (void *) this); + PairRvous *outbuf = (PairRvous *) buf; + + memory->destroy(proclist); + memory->sfree(inbuf); + + // set nspecial15 and onefive for all owned atoms + // based on owned info plus rendezvous output info + // output datums = pairs of atoms that are 1-5 neighbors + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < nspecial[i][2]; j++) { + m = atom->map(onefour[i][j]); + if (m >= 0 && m < nlocal) nspecial15[m] += nspecial[i][0]; + } + } + + for (m = 0; m < nreturn; m++) { + i = atom->map(outbuf[m].atomID); + nspecial15[i]++; + } + + int max = 0; + for (i = 0; i < nlocal; i++) + max = MAX(max,nspecial15[i]); + + MPI_Allreduce(&max,&maxall,1,MPI_INT,MPI_MAX,world); + memory->create(onefive,nlocal,maxall,"special:onefive"); + + for (i = 0; i < nlocal; i++) nspecial15[i] = 0; + + for (i = 0; i < nlocal; i++) { + for (j = 0; j < nspecial[i][2]; j++) { + m = atom->map(onefour[i][j]); + if (m < 0 || m >= nlocal) continue; + for (k = 0; k < nspecial[i][0]; k++) { + onefive[m][nspecial15[m]++] = onetwo[i][k]; + } + } + } + + for (m = 0; m < nreturn; m++) { + i = atom->map(outbuf[m].atomID); + onefive[i][nspecial15[i]++] = outbuf[m].partnerID; + } + + memory->sfree(outbuf); +} + /* ---------------------------------------------------------------------- remove duplicates within each of onetwo, onethree, onefour individually + also dedup onefive if enabled ------------------------------------------------------------------------- */ void Special::dedup() @@ -532,15 +660,18 @@ void Special::dedup() // use map to cull duplicates // exclude original atom explicitly - // adjust onetwo, onethree, onefour values to reflect removed duplicates + // adjust onetwo, onethree, onefour, onefive values to remove duplicates // must unset map for each atom int **nspecial = atom->nspecial; + int *nspecial15 = atom->nspecial15; tagint *tag = atom->tag; int nlocal = atom->nlocal; int unique; + // dedup onetwo + for (i = 0; i < nlocal; i++) { unique = 0; atom->map_one(tag[i],0); @@ -556,6 +687,8 @@ void Special::dedup() for (j = 0; j < unique; j++) atom->map_one(onetwo[i][j],-1); } + // dedup onethree + for (i = 0; i < nlocal; i++) { unique = 0; atom->map_one(tag[i],0); @@ -571,6 +704,8 @@ void Special::dedup() for (j = 0; j < unique; j++) atom->map_one(onethree[i][j],-1); } + // dedup onefour + for (i = 0; i < nlocal; i++) { unique = 0; atom->map_one(tag[i],0); @@ -586,6 +721,25 @@ void Special::dedup() for (j = 0; j < unique; j++) atom->map_one(onefour[i][j],-1); } + // dedup onefive + + if (onefive_flag) { + for (i = 0; i < nlocal; i++) { + unique = 0; + atom->map_one(tag[i],0); + for (j = 0; j < nspecial15[i]; j++) { + m = onefive[i][j]; + if (atom->map(m) < 0) { + onefive[i][unique++] = m; + atom->map_one(m,0); + } + } + nspecial15[i] = unique; + atom->map_one(tag[i],-1); + for (j = 0; j < unique; j++) atom->map_one(onefive[i][j],-1); + } + } + // re-create map atom->map_init(0); @@ -597,6 +751,7 @@ void Special::dedup() concatenate onetwo, onethree, onefour into master atom->special list remove duplicates between 3 lists, leave dup in first list it appears in convert nspecial[0], nspecial[1], nspecial[2] into cumulative counters + if 1-5 is enabled, reset nspecial15/special15 to remove dups with 1-2,1-3,1-4 ------------------------------------------------------------------------- */ void Special::combine() @@ -608,6 +763,7 @@ void Special::combine() MPI_Comm_rank(world,&me); int **nspecial = atom->nspecial; + int *nspecial15 = atom->nspecial15; tagint *tag = atom->tag; int nlocal = atom->nlocal; @@ -620,12 +776,14 @@ void Special::combine() atom->map_clear(); // unique = # of unique nspecial neighbors of one atom + // unique15 = ditto for 1-5 interactions // cull duplicates using map to check for them // exclude original atom explicitly // must unset map for each atom - int unique; + int unique,unique15; int maxspecial = 0; + int maxspecial15 = 0; for (i = 0; i < nlocal; i++) { unique = 0; @@ -655,15 +813,30 @@ void Special::combine() maxspecial = MAX(maxspecial,unique); + if (onefive_flag) { + unique15 = 0; + for (j = 0; j < nspecial15[i]; j++) { + m = onefive[i][j]; + if (atom->map(m) < 0) { + unique15++; + atom->map_one(m,0); + } + } + maxspecial15 = MAX(maxspecial15,unique15); + } + atom->map_one(tag[i],-1); for (j = 0; j < nspecial[i][0]; j++) atom->map_one(onetwo[i][j],-1); for (j = 0; j < nspecial[i][1]; j++) atom->map_one(onethree[i][j],-1); for (j = 0; j < nspecial[i][2]; j++) atom->map_one(onefour[i][j],-1); + if (onefive_flag) + for (j = 0; j < nspecial15[i]; j++) atom->map_one(onefive[i][j],-1); } - // if atom->maxspecial has been updated before, make certain - // we do not reset it to a smaller value. Since atom->maxspecial - // is initialized to 1, this ensures that it is larger than zero. + // if atom->maxspecial has been updated before, + // make certain it is not reset to a smaller value + // since atom->maxspecial is initialized to 1, + // this ensures that it stays larger than zero maxspecial = MAX(atom->maxspecial,maxspecial); @@ -698,12 +871,23 @@ void Special::combine() memory->create(atom->special,atom->nmax,atom->maxspecial,"atom:special"); } - tagint **special = atom->special; + // if 1-5 is enabled, similarly compute global maxspecial15 and reallocate + + if (onefive_flag) { + maxspecial15 = MAX(atom->maxspecial15,maxspecial15); + MPI_Allreduce(&maxspecial15,&atom->maxspecial15,1,MPI_INT,MPI_MAX,world); + memory->destroy(atom->special15); + memory->create(atom->special15,atom->nmax,atom->maxspecial15,"atom:special15"); + } // ---------------------------------------------------- // fill special array with 1-2, 1-3, 1-4 neighs for each atom + // optionally fill special15 array with 1-5 neighs // ---------------------------------------------------- + tagint **special = atom->special; + tagint **special15 = atom->special15; + // again use map to cull duplicates // exclude original atom explicitly // adjust nspecial[i] values to reflect removed duplicates @@ -740,8 +924,22 @@ void Special::combine() } nspecial[i][2] = unique; + if (onefive_flag) { + unique15 = 0; + for (j = 0; j < nspecial15[i]; j++) { + m = onefive[i][j]; + if (atom->map(m) < 0) { + special15[i][unique15++] = m; + atom->map_one(m,0); + } + } + nspecial15[i] = unique15; + } + atom->map_one(tag[i],-1); for (j = 0; j < nspecial[i][2]; j++) atom->map_one(special[i][j],-1); + if (onefive_flag) + for (j = 0; j < nspecial15[i]; j++) atom->map_one(special15[i][j],-1); } // re-create map diff --git a/src/special.h b/src/special.h index d4c8fc587b..f344eac3ca 100644 --- a/src/special.h +++ b/src/special.h @@ -27,7 +27,8 @@ class Special : protected Pointers { private: int me, nprocs; int maxall; - tagint **onetwo, **onethree, **onefour; + int onefive_flag; + tagint **onetwo,**onethree,**onefour,**onefive; // data used by rendezvous callback methods @@ -51,6 +52,7 @@ class Special : protected Pointers { void onetwo_build_newton_off(); void onethree_build(); void onefour_build(); + void onefive_build(); void dedup(); void angle_trim(); diff --git a/src/utils.cpp b/src/utils.cpp index 87de538dfb..eb9e48985a 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -984,6 +984,19 @@ size_t utils::trim_and_count_words(const std::string &text, const std::string &s return utils::count_words(trim_comment(text), separators); } +/* ---------------------------------------------------------------------- + combine words in vector to single string with separator added between words +------------------------------------------------------------------------- */ +std::string utils::join_words(const std::vector &words, const std::string &sep) +{ + std::string result; + + if (words.size() > 0) result = words[0]; + for (std::size_t i = 1; i < words.size(); ++i) result += sep + words[i]; + + return result; +} + /* ---------------------------------------------------------------------- Convert string into words on whitespace while handling single and double quotes. diff --git a/src/utils.h b/src/utils.h index 6726240d0d..a88244b694 100644 --- a/src/utils.h +++ b/src/utils.h @@ -486,6 +486,17 @@ namespace utils { size_t trim_and_count_words(const std::string &text, const std::string &separators = " \t\r\n\f"); + /*! Take list of words and join them with a given separator text. + * + * This is the inverse operation of what the split_words() function + * Tokenizer classes do. + * + * \param words STL vector with strings + * \param sep separator string (may be empty) + * \return string with the concatenated words and separators */ + + std::string join_words(const std::vector &words, const std::string &sep); + /*! Take text and split into non-whitespace words. * * This can handle strings with single and double quotes, escaped quotes, diff --git a/src/variable.cpp b/src/variable.cpp index 7392379017..878066f466 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -4770,12 +4770,14 @@ double Variable::evaluate_boolean(char *str) } if (opprevious == NOT) { - if (flag2) error->all(FLERR,"Invalid Boolean syntax in if command"); + if (flag2) + error->all(FLERR,"If command boolean not cannot operate on string"); if (value2 == 0.0) argstack[nargstack].value = 1.0; else argstack[nargstack].value = 0.0; + } else if (opprevious == EQ) { if (flag1 != flag2) - error->all(FLERR,"Invalid Boolean syntax in if command"); + error->all(FLERR,"If command boolean is comparing string to number"); if (flag2 == 0) { if (value1 == value2) argstack[nargstack].value = 1.0; else argstack[nargstack].value = 0.0; @@ -4787,7 +4789,7 @@ double Variable::evaluate_boolean(char *str) } } else if (opprevious == NE) { if (flag1 != flag2) - error->all(FLERR,"Invalid Boolean syntax in if command"); + error->all(FLERR,"If command boolean is comparing string to number"); if (flag2 == 0) { if (value1 != value2) argstack[nargstack].value = 1.0; else argstack[nargstack].value = 0.0; @@ -4797,32 +4799,41 @@ double Variable::evaluate_boolean(char *str) delete[] str1; delete[] str2; } + } else if (opprevious == LT) { - if (flag2) error->all(FLERR,"Invalid Boolean syntax in if command"); + if (flag1 || flag2) + error->all(FLERR,"If command boolean can only operate on numbers"); if (value1 < value2) argstack[nargstack].value = 1.0; else argstack[nargstack].value = 0.0; } else if (opprevious == LE) { - if (flag2) error->all(FLERR,"Invalid Boolean syntax in if command"); + if (flag1 || flag2) + error->all(FLERR,"If command boolean can only operate on numbers"); if (value1 <= value2) argstack[nargstack].value = 1.0; else argstack[nargstack].value = 0.0; } else if (opprevious == GT) { - if (flag2) error->all(FLERR,"Invalid Boolean syntax in if command"); + if (flag1 || flag2) + error->all(FLERR,"If command boolean can only operate on numbers"); if (value1 > value2) argstack[nargstack].value = 1.0; else argstack[nargstack].value = 0.0; } else if (opprevious == GE) { - if (flag2) error->all(FLERR,"Invalid Boolean syntax in if command"); + if (flag1 || flag2) + error->all(FLERR,"If command boolean can only operate on numbers"); if (value1 >= value2) argstack[nargstack].value = 1.0; else argstack[nargstack].value = 0.0; + } else if (opprevious == AND) { - if (flag2) error->all(FLERR,"Invalid Boolean syntax in if command"); + if (flag1 || flag2) + error->all(FLERR,"If command boolean can only operate on numbers"); if (value1 != 0.0 && value2 != 0.0) argstack[nargstack].value = 1.0; else argstack[nargstack].value = 0.0; } else if (opprevious == OR) { - if (flag2) error->all(FLERR,"Invalid Boolean syntax in if command"); + if (flag1 || flag2) + error->all(FLERR,"If command boolean can only operate on numbers"); if (value1 != 0.0 || value2 != 0.0) argstack[nargstack].value = 1.0; else argstack[nargstack].value = 0.0; } else if (opprevious == XOR) { - if (flag2) error->all(FLERR,"Invalid Boolean syntax in if command"); + if (flag1 || flag2) + error->all(FLERR,"If command boolean can only operate on numbers"); if ((value1 == 0.0 && value2 != 0.0) || (value1 != 0.0 && value2 == 0.0)) argstack[nargstack].value = 1.0; @@ -4845,6 +4856,13 @@ double Variable::evaluate_boolean(char *str) if (nopstack) error->all(FLERR,"Invalid Boolean syntax in if command"); if (nargstack != 1) error->all(FLERR,"Invalid Boolean syntax in if command"); + + // if flag == 1, Boolean expression was a single string with no operator + // error b/c invalid, only single number with no operator is allowed + + if (argstack[0].flag == 1) + error->all(FLERR,"If command boolean cannot be single string"); + return argstack[0].value; } diff --git a/src/version.h b/src/version.h index 9de4ec5d9f..4b95d1c910 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "4 May 2022" +#define LAMMPS_VERSION "23 Jun 2022" diff --git a/src/write_dump.cpp b/src/write_dump.cpp index e9f610fe31..2ce28f01e4 100644 --- a/src/write_dump.cpp +++ b/src/write_dump.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -34,41 +33,39 @@ using namespace LAMMPS_NS; void WriteDump::command(int narg, char **arg) { - if (narg < 3) error->all(FLERR,"Illegal write_dump command"); + if (narg < 3) error->all(FLERR, "Illegal write_dump command"); // modindex = index in args of "modify" keyword // will be narg if "modify" is not present int modindex; for (modindex = 0; modindex < narg; modindex++) - if (strcmp(arg[modindex],"modify") == 0) break; + if (strcmp(arg[modindex], "modify") == 0) break; // create the Dump instance // create dump command line with extra required args - auto dumpargs = new char*[modindex+2]; - dumpargs[0] = (char *) "WRITE_DUMP"; // dump id - dumpargs[1] = arg[0]; // group - dumpargs[2] = arg[1]; // dump style - std::string ntimestep = std::to_string(MAX(update->ntimestep,1)); - dumpargs[3] = (char *) ntimestep.c_str(); // dump frequency + auto dumpargs = new char *[modindex + 2]; + dumpargs[0] = (char *) "WRITE_DUMP"; // dump id + dumpargs[1] = arg[0]; // group + dumpargs[2] = arg[1]; // dump style + std::string ntimestep = std::to_string(MAX(update->ntimestep, 1)); + dumpargs[3] = (char *) ntimestep.c_str(); // dump frequency - for (int i = 2; i < modindex; ++i) dumpargs[i+2] = arg[i]; + for (int i = 2; i < modindex; ++i) dumpargs[i + 2] = arg[i]; - Dump *dump = output->add_dump(modindex+2, dumpargs); - if (modindex < narg) dump->modify_params(narg-modindex-1,&arg[modindex+1]); + Dump *dump = output->add_dump(modindex + 2, dumpargs); + if (modindex < narg) dump->modify_params(narg - modindex - 1, &arg[modindex + 1]); // write out one frame and then delete the dump again // set multifile_override for DumpImage so that filename needs no "*" - if (strcmp(arg[1],"image") == 0) - (dynamic_cast( dump))->multifile_override = 1; + if (strcmp(arg[1], "image") == 0) (dynamic_cast(dump))->multifile_override = 1; - if (strcmp(arg[1],"cfg") == 0) - (dynamic_cast( dump))->multifile_override = 1; + if (strcmp(arg[1], "cfg") == 0) (dynamic_cast(dump))->multifile_override = 1; if ((update->first_update == 0) && (comm->me == 0)) - error->warning(FLERR,"Calling write_dump before a full system init."); + error->warning(FLERR, "Calling write_dump before a full system init."); dump->init(); dump->write(); diff --git a/tools/README b/tools/README index f53197bd18..22d9c8ea18 100644 --- a/tools/README +++ b/tools/README @@ -48,6 +48,7 @@ smd convert Smooth Mach Dynamics triangles to VTK spin perform a cubic polynomial interpolation of a GNEB MEP stl_bin2txt convert binary STL files to ASCII swig Interface file and demo scripts for SWIG wrappers for the LAMMPS C library interface +tinker2lmp.py convert Tinker input files to LAMMPS input files valgrind suppression files for use with valgrind's memcheck tool vim add-ons to VIM editor for editing LAMMPS input scripts xmgrace a collection of scripts to generate xmgrace plots diff --git a/tools/msi2lmp/src/msi2lmp.c b/tools/msi2lmp/src/msi2lmp.c index 87cffb4e6e..3136678023 100644 --- a/tools/msi2lmp/src/msi2lmp.c +++ b/tools/msi2lmp/src/msi2lmp.c @@ -66,9 +66,9 @@ * The program is started by supplying information at the command prompt * according to the usage described below. * -* USAGE: msi2lmp3 ROOTNAME {-print #} {-class #} {-frc FRC_FILE} {-ignore} {-nocenter} {-oldstyle} +* USAGE: msi2lmp ROOTNAME {-print #} {-class #} {-frc FRC_FILE} {-ignore} {-nocenter} {-oldstyle} * -* -- msi2lmp3 is the name of the executable +* -- msi2lmp is the name of the executable * -- ROOTNAME is the base name of the .car and .mdf files * -- all opther flags are optional and can be abbreviated (e.g. -p instead of -print) * diff --git a/tools/singularity/README.md b/tools/singularity/README.md index db7aa9e3b0..4700dac6ec 100644 --- a/tools/singularity/README.md +++ b/tools/singularity/README.md @@ -1,17 +1,19 @@ -# Singularity container definitions for compiling/testing LAMMPS +# Apptainer (aka Singularity) container definitions for compiling/testing LAMMPS The *.def files in this folder can be used to build container images -for [Singularity](https://sylabs.io), suitable for compiling and testing +for [Apptainer](https://apptainer.org) (previously called +[Singularity](https://sylabs.io)), suitable for compiling and testing LAMMPS on a variety of OS variants with support for most standard packages and - for some of them - also building/spellchecking the manual -in all supported formats. This allows to test and debug LAMMPS code on +in all supported formats. This allows to test and debug LAMMPS code on different OS variants without doing a full installation on your development workstation, e.g. when bugs are reported that can only be reproduced on a specific OS or with specific (mostly older) versions of tools, compilers, or libraries. Here is a workflow for testing a compilation of LAMMPS with a locally -built CentOS 7.x singularity container. +built CentOS 7.x Singularity container. For Apptainer replace the +`singularity` command with `apptainer`. ``` cd some/work/directory diff --git a/tools/singularity/ubuntu18.04_amd_rocm.def b/tools/singularity/ubuntu18.04_amd_rocm.def index ceedfd8144..febdf1172e 100644 --- a/tools/singularity/ubuntu18.04_amd_rocm.def +++ b/tools/singularity/ubuntu18.04_amd_rocm.def @@ -3,7 +3,7 @@ From: ubuntu:18.04 %environment export PATH=/usr/lib/ccache:${PATH}:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rocm/lib:/opt/rocm-5.1.2/llvm/lib + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rocm/lib:/opt/rocm-5.1.3/llvm/lib %post export DEBIAN_FRONTEND=noninteractive apt-get update @@ -22,10 +22,10 @@ From: ubuntu:18.04 apt install -y cmake ########################################################################### - # ROCm 5.1.2 + # ROCm 5.1.3 ########################################################################### - wget https://repo.radeon.com/amdgpu-install/22.10.2/ubuntu/bionic/amdgpu-install_22.10.2.50102-1_all.deb - apt-get install -y ./amdgpu-install_22.10.2.50102-1_all.deb + wget https://repo.radeon.com/amdgpu-install/22.10.3/ubuntu/bionic/amdgpu-install_22.10.3.50103-1_all.deb + apt-get install -y ./amdgpu-install_22.10.3.50103-1_all.deb apt-get update apt-get install --no-install-recommends -y \ diff --git a/tools/singularity/ubuntu18.04_gpu.def b/tools/singularity/ubuntu18.04_gpu.def index 6aa37ccf84..90034285ff 100644 --- a/tools/singularity/ubuntu18.04_gpu.def +++ b/tools/singularity/ubuntu18.04_gpu.def @@ -2,11 +2,11 @@ BootStrap: docker From: ubuntu:18.04 %environment - export PATH=/usr/lib/ccache:/usr/local/cuda-11.5/bin:${PATH}:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 - export CUDADIR=/usr/local/cuda-11.5 - export CUDA_PATH=/usr/local/cuda-11.5 - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.5/lib64:/opt/rocm/lib:/opt/rocm-4.5.0/llvm/lib - export LIBRARY_PATH=/usr/local/cuda-11.5/lib64/stubs + export PATH=/usr/lib/ccache:/usr/local/cuda-11.7/bin:${PATH}:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 + export CUDADIR=/usr/local/cuda-11.7 + export CUDA_PATH=/usr/local/cuda-11.7 + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.7/lib64:/opt/rocm/lib:/opt/rocm-5.1.3/llvm/lib + export LIBRARY_PATH=/usr/local/cuda-11.7/lib64/stubs %post export DEBIAN_FRONTEND=noninteractive apt-get update @@ -27,8 +27,8 @@ From: ubuntu:18.04 ########################################################################### # ROCm 4.5 ########################################################################### - wget https://repo.radeon.com/amdgpu-install/21.40/ubuntu/focal/amdgpu-install-21.40.40500-1_all.deb - apt-get install -y ./amdgpu-install-21.40.40500-1_all.deb + wget https://repo.radeon.com/amdgpu-install/22.10.3/ubuntu/focal/amdgpu-install_22.10.3.50103-1_all.deb + apt-get install -y ./amdgpu-install_22.10.3.50103-1_all.deb apt-get update apt-get install --no-install-recommends -y \ @@ -122,11 +122,11 @@ From: ubuntu:18.04 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 - apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /" apt-get update - export CUDA_PKG_VERSION=11.5 + export CUDA_PKG_VERSION=11.7 apt-get install -y --no-install-recommends \ cuda-libraries-${CUDA_PKG_VERSION} \ diff --git a/tools/singularity/ubuntu20.04_amd_rocm.def b/tools/singularity/ubuntu20.04_amd_rocm.def index 5e351e49a8..6034014370 100644 --- a/tools/singularity/ubuntu20.04_amd_rocm.def +++ b/tools/singularity/ubuntu20.04_amd_rocm.def @@ -3,7 +3,7 @@ From: ubuntu:20.04 %environment export PATH=/usr/lib/ccache:${PATH}:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rocm/lib:/opt/rocm-5.1.2/llvm/lib + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rocm/lib:/opt/rocm-5.1.3/llvm/lib %post export DEBIAN_FRONTEND=noninteractive apt-get update @@ -13,10 +13,10 @@ From: ubuntu:20.04 apt-get install --no-install-recommends -y software-properties-common ########################################################################### - # ROCm 5.1.2 + # ROCm 5.1.3 ########################################################################### - wget https://repo.radeon.com/amdgpu-install/22.10.2/ubuntu/focal/amdgpu-install_22.10.2.50102-1_all.deb - apt-get install -y ./amdgpu-install_22.10.2.50102-1_all.deb + wget https://repo.radeon.com/amdgpu-install/22.10.3/ubuntu/focal/amdgpu-install_22.10.3.50103-1_all.deb + apt-get install -y ./amdgpu-install_22.10.3.50103-1_all.deb apt-get update apt-get install --no-install-recommends -y \ diff --git a/tools/singularity/ubuntu20.04_gpu.def b/tools/singularity/ubuntu20.04_gpu.def index 23bddeb14f..f7bab1ee9d 100644 --- a/tools/singularity/ubuntu20.04_gpu.def +++ b/tools/singularity/ubuntu20.04_gpu.def @@ -2,11 +2,11 @@ BootStrap: docker From: ubuntu:20.04 %environment - export PATH=/usr/lib/ccache:/usr/local/cuda-11.5/bin:${PATH}:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 - export CUDADIR=/usr/local/cuda-11.5 - export CUDA_PATH=/usr/local/cuda-11.5 - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.5/lib64:/opt/rocm/lib:/opt/rocm-4.5.0/llvm/lib - export LIBRARY_PATH=/usr/local/cuda-11.5/lib64/stubs + export PATH=/usr/lib/ccache:/usr/local/cuda-11.7/bin:${PATH}:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 + export CUDADIR=/usr/local/cuda-11.7 + export CUDA_PATH=/usr/local/cuda-11.7 + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.7/lib64:/opt/rocm/lib:/opt/rocm-5.1.3/llvm/lib + export LIBRARY_PATH=/usr/local/cuda-11.7/lib64/stubs %post export DEBIAN_FRONTEND=noninteractive apt-get update @@ -15,10 +15,10 @@ From: ubuntu:20.04 apt-get install -y --no-install-recommends curl wget libnuma-dev gnupg ca-certificates ########################################################################### - # ROCm 4.5 + # ROCm 5.1.3 ########################################################################### - wget https://repo.radeon.com/amdgpu-install/21.40/ubuntu/focal/amdgpu-install-21.40.40500-1_all.deb - apt-get install -y ./amdgpu-install-21.40.40500-1_all.deb + wget https://repo.radeon.com/amdgpu-install/22.10.3/ubuntu/focal/amdgpu-install_22.10.3.50103-1_all.deb + apt-get install -y ./amdgpu-install_22.10.3.50103-1_all.deb apt-get update apt-get install --no-install-recommends -y \ @@ -109,7 +109,7 @@ From: ubuntu:20.04 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 - apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" apt-get update diff --git a/tools/singularity/ubuntu22.04.def b/tools/singularity/ubuntu22.04.def index cf4aa7e175..62a24e81f3 100644 --- a/tools/singularity/ubuntu22.04.def +++ b/tools/singularity/ubuntu22.04.def @@ -4,8 +4,8 @@ From: ubuntu:22.04 %post export DEBIAN_FRONTEND=noninteractive apt-get update - apt-get install --no-install-recommends -y software-properties-common -# add-apt-repository ppa:openkim/latest + apt-get install --no-install-recommends -y software-properties-common gpg gpg-agent + add-apt-repository ppa:openkim/latest apt-get update apt-get upgrade --no-install-recommends -y apt-get install --no-install-recommends -y \ @@ -74,29 +74,28 @@ From: ubuntu:22.04 zstd \ libyaml-cpp-dev \ libkim-api-dev \ - gpg-agent \ -# openkim-models + openkim-models -# ########################################################################### -# # KIM-API -# ########################################################################### -# -# # workaround for installing files in /usr/share/doc inside of a container -# sed -i 's/path-exclude=\/usr\/share\/doc/#path-exclude=\/usr\/share\/doc/g' /etc/dpkg/dpkg.cfg.d/excludes -# apt-get install -y libkim-api-doc -# sed -i 's/#path-exclude=\/usr\/share\/doc/path-exclude=\/usr\/share\/doc/g' /etc/dpkg/dpkg.cfg.d/excludes -# -# # install KIM models -# KIM_API_EXAMPLES=/usr/share/doc/libkim-api-dev/examples + ########################################################################### + # KIM-API + ########################################################################### + + # workaround for installing files in /usr/share/doc inside of a container + sed -i 's/path-exclude=\/usr\/share\/doc/#path-exclude=\/usr\/share\/doc/g' /etc/dpkg/dpkg.cfg.d/excludes + apt-get install -y libkim-api-doc + sed -i 's/#path-exclude=\/usr\/share\/doc/path-exclude=\/usr\/share\/doc/g' /etc/dpkg/dpkg.cfg.d/excludes + + # install KIM models + KIM_API_EXAMPLES=/usr/share/doc/libkim-api-dev/examples # gunzip $KIM_API_EXAMPLES/portable-models/LennardJones612_UniversalShifted__MO_959249795837_003/LennardJones612_UniversalShifted.params.gz # gunzip $KIM_API_EXAMPLES/model-drivers/ex_model_driver_P_LJ/ex_model_driver_P_LJ.f90.gz -# -# kim-api-collections-management install system $KIM_API_EXAMPLES/model-drivers/LennardJones612__MD_414112407348_003 -# kim-api-collections-management install system $KIM_API_EXAMPLES/model-drivers/ex_model_driver_P_LJ -# kim-api-collections-management install system $KIM_API_EXAMPLES/portable-models/LennardJones_Ar -# kim-api-collections-management install system $KIM_API_EXAMPLES/portable-models/ex_model_Ar_P_LJ -# kim-api-collections-management install system $KIM_API_EXAMPLES/portable-models/LennardJones612_UniversalShifted__MO_959249795837_003 -# kim-api-collections-management install system $KIM_API_EXAMPLES/simulator-models/Sim_LAMMPS_LJcut_AkersonElliott_Alchemy_PbAu + + kim-api-collections-management install system $KIM_API_EXAMPLES/model-drivers/LennardJones612__MD_414112407348_003 + kim-api-collections-management install system $KIM_API_EXAMPLES/model-drivers/ex_model_driver_P_LJ + kim-api-collections-management install system $KIM_API_EXAMPLES/portable-models/LennardJones_Ar + kim-api-collections-management install system $KIM_API_EXAMPLES/portable-models/ex_model_Ar_P_LJ + kim-api-collections-management install system $KIM_API_EXAMPLES/portable-models/LennardJones612_UniversalShifted__MO_959249795837_003 + kim-api-collections-management install system $KIM_API_EXAMPLES/simulator-models/Sim_LAMMPS_LJcut_AkersonElliott_Alchemy_PbAu ########################################################################### diff --git a/tools/tinker/README b/tools/tinker/README new file mode 100644 index 0000000000..018db181c8 --- /dev/null +++ b/tools/tinker/README @@ -0,0 +1,26 @@ +Examples for how this tool created the data files in the +examples/amoeba directory: + +** water_dimer: + +% python tinker2lmp.py -xyz water_dimer.xyz -amoeba amoeba_water.prm -data data.water_dimer.amoeba + +% python tinker2lmp.py -xyz water_dimer.xyz -hippo hippo_water.prm -data data.water_dimer.hippo + +** water_hexamer: + +% python tinker2lmp.py -xyz water_hexamer.xyz -amoeba amoeba_water.prm -data data.water_hexamer.amoeba + +% python tinker2lmp.py -xyz water_hexamer.xyz -hippo hippo_water.prm -data data.water_hexamer.hippo + +** water_box: + +% python tinker2lmp.py -xyz water_box.xyz -amoeba amoeba_water.prm -data data.water_box.amoeba -pbc 18.643 18.643 18.643 + +% python tinker2lmp.py -xyz water_box.xyz -hippo hippo_water.prm -data data.water_box.hippo -pbc 18.643 18.643 18.643 + +** ubiquitin: + +% python tinker2lmp.py -xyz ubiquitin.xyz -amoeba amoeba_ubiquitin.prm -data data.ubiquitin.new -pbc 54.99 41.91 41.91 -bitorsion bitorsion.ubiquitin.data.new + + diff --git a/tools/tinker/data.py b/tools/tinker/data.py new file mode 100644 index 0000000000..b75536da93 --- /dev/null +++ b/tools/tinker/data.py @@ -0,0 +1,402 @@ +# Pizza.py toolkit, www.cs.sandia.gov/~sjplimp/pizza.html +# Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories +# +# Copyright (2005) Sandia Corporation. Under the terms of Contract +# DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains +# certain rights in this software. This software is distributed under +# the GNU General Public License. + +# data tool + +from __future__ import print_function +oneline = "Read, write, manipulate LAMMPS data files" + +docstr = """ +d = data("data.poly") read a LAMMPS data file, can be gzipped +d = data() create an empty data file + +d.map(1,"id",3,"x") assign names to atom columns (1-N) + +coeffs = d.get("Pair Coeffs") extract info from data file section +q = d.get("Atoms",4) + + 1 arg = all columns returned as 2d array of floats + 2 args = Nth column returned as vector of floats + +d.reorder("Atoms",1,3,2,4,5) reorder columns (1-N) in a data file section + + 1,3,2,4,5 = new order of previous columns, can delete columns this way + +d.title = "My LAMMPS data file" set title of the data file +d.headers["atoms"] = 1500 set a header value +d.sections["Bonds"] = lines set a section to list of lines (with newlines) +d.delete("bonds") delete a keyword or section of data file +d.delete("Bonds") +d.replace("Atoms",5,vec) replace Nth column of section with vector +d.newxyz(dmp,1000) replace xyz in Atoms with xyz of snapshot N + + newxyz assumes id,x,y,z are defined in both data and dump files + also replaces ix,iy,iz if they are defined + +index,time,flag = d.iterator(0/1) loop over single data file snapshot +time,box,atoms,bonds,tris,lines = d.viz(index) return list of viz objects + + iterator() and viz() are compatible with equivalent dump calls + iterator() called with arg = 0 first time, with arg = 1 on subsequent calls + index = timestep index within dump object (only 0 for data file) + time = timestep value (only 0 for data file) + flag = -1 when iteration is done, 1 otherwise + viz() returns info for specified timestep index (must be 0) + time = 0 + box = [xlo,ylo,zlo,xhi,yhi,zhi] + atoms = id,type,x,y,z for each atom as 2d array + bonds = id,type,x1,y1,z1,x2,y2,z2,t1,t2 for each bond as 2d array + NULL if bonds do not exist + tris = NULL + lines = NULL + +d.write("data.new") write a LAMMPS data file +""" + +# History +# 8/05, Steve Plimpton (SNL): original version +# 11/07, added triclinic box support + +# ToDo list + +# Variables +# title = 1st line of data file +# names = dictionary with atom attributes as keys, col #s as values +# headers = dictionary with header name as key, value or tuple as values +# sections = dictionary with section name as key, array of lines as values +# nselect = 1 = # of snapshots + +# Imports and external programs + +from os import popen + +try: tmp = PIZZA_GUNZIP +except: PIZZA_GUNZIP = "gunzip" + +# Class definition + +class data(object): + + # -------------------------------------------------------------------- + + def __init__(self,*list): + self.nselect = 1 + + if len(list) == 0: + self.title = "LAMMPS data file" + self.names = {} + self.headers = {} + self.sections = {} + return + + file = list[0] + if file[-3:] == ".gz": f = popen("%s -c %s" % (PIZZA_GUNZIP,file),'r') + else: f = open(file) + + self.title = f.readline() + self.names = {} + + headers = {} + while 1: + line = f.readline() + line = line.strip() + if len(line) == 0: + continue + found = 0 + for keyword in hkeywords: + if line.find(keyword) >= 0: + found = 1 + words = line.split() + if keyword == "xlo xhi" or keyword == "ylo yhi" or \ + keyword == "zlo zhi": + headers[keyword] = (float(words[0]),float(words[1])) + elif keyword == "xy xz yz": + headers[keyword] = \ + (float(words[0]),float(words[1]),float(words[2])) + else: + headers[keyword] = int(words[0]) + if not found: + break + + sections = {} + while 1: + found = 0 + for pair in skeywords: + keyword,length = pair[0],pair[1] + if keyword == line: + found = 1 + if length not in headers: + raise (Exception, "data section %s has no matching header value" % line) + f.readline() + list = [] + for i in range(headers[length]): list.append(f.readline()) + sections[keyword] = list + if not found: + raise (Exception,"invalid section %s in data file" % line) + f.readline() + line = f.readline() + if not line: + break + line = line.strip() + + f.close() + self.headers = headers + self.sections = sections + + # -------------------------------------------------------------------- + # assign names to atom columns + + def map(self,*pairs): + if len(pairs) % 2 != 0: + raise Exception("data map() requires pairs of mappings") + for i in range(0,len(pairs),2): + j = i + 1 + self.names[pairs[j]] = pairs[i]-1 + + # -------------------------------------------------------------------- + # extract info from data file fields + + def get(self,*list): + if len(list) == 1: + field = list[0] + array = [] + lines = self.sections[field] + for line in lines: + words = line.split() + values = list(map(float,words)) + array.append(values) + return array + elif len(list) == 2: + field = list[0] + n = list[1] - 1 + vec = [] + lines = self.sections[field] + for line in lines: + words = line.split() + vec.append(float(words[n])) + return vec + else: + raise Exception("invalid arguments for data.get()") + + # -------------------------------------------------------------------- + # reorder columns in a data file field + + def reorder(self,name,*order): + n = len(order) + natoms = len(self.sections[name]) + oldlines = self.sections[name] + newlines = natoms*[""] + for index in order: + for i in range(len(newlines)): + words = oldlines[i].split() + newlines[i] += words[index-1] + " " + for i in range(len(newlines)): + newlines[i] += "\n" + self.sections[name] = newlines + + # -------------------------------------------------------------------- + # replace a column of named section with vector of values + + def replace(self,name,icol,vector): + lines = self.sections[name] + newlines = [] + j = icol - 1 + for i in range(len(lines)): + line = lines[i] + words = line.split() + words[j] = str(vector[i]) + newline = ' '.join(words) + '\n' + newlines.append(newline) + self.sections[name] = newlines + + # -------------------------------------------------------------------- + # replace x,y,z in Atoms with x,y,z values from snapshot ntime of dump object + # assumes id,x,y,z are defined in both data and dump files + # also replaces ix,iy,iz if they are defined + + def newxyz(self,dm,ntime): + nsnap = dm.findtime(ntime) + + dm.sort(ntime) + x,y,z = dm.vecs(ntime,"x","y","z") + + self.replace("Atoms",self.names['x']+1,x) + self.replace("Atoms",self.names['y']+1,y) + self.replace("Atoms",self.names['z']+1,z) + + if "ix" in dm.names and "ix" in self.names: + ix,iy,iz = dm.vecs(ntime,"ix","iy","iz") + self.replace("Atoms",self.names['ix']+1,ix) + self.replace("Atoms",self.names['iy']+1,iy) + self.replace("Atoms",self.names['iz']+1,iz) + + # -------------------------------------------------------------------- + # delete header value or section from data file + + def delete(self,keyword): + + if keyword in self.headers: del self.headers[keyword] + elif keyword in self.sections: del self.sections[keyword] + else: raise Exception("keyword not found in data object") + + # -------------------------------------------------------------------- + # write out a LAMMPS data file + + def write(self,file): + f = open(file,"w") + print(self.title, file=f) + + # write any keywords in standard list hkeywords + # in the order they are in hkeywords + # then write any extra keywords at end of header section + + for keyword in hkeywords: + if keyword in self.headers: + if keyword == "xlo xhi" or keyword == "ylo yhi" or \ + keyword == "zlo zhi": + pair = self.headers[keyword] + print(pair[0],pair[1],keyword, file=f) + elif keyword == "xy xz yz": + triple = self.headers[keyword] + print(triple[0],triple[1],triple[2],keyword, file=f) + else: + print(self.headers[keyword],keyword, file=f) + + for keyword in list(self.headers.keys()): + if keyword not in hkeywords: + print(self.headers[keyword],keyword, file=f) + + # write any sections in standard list skeywords + # in the order they are in skeywords + # then write any extra sections at end of file + + for pair in skeywords: + keyword = pair[0] + if keyword in self.sections: + print("\n%s\n" % keyword, file=f) + for line in self.sections[keyword]: + print(line, end='', file=f) + + skeyfirst = [pair[0] for pair in skeywords] + + for keyword in list(self.sections.keys()): + if keyword not in skeyfirst: + print("\n%s\n" % keyword, file=f) + for line in self.sections[keyword]: + print(line, end='', file=f) + + f.close() + + # -------------------------------------------------------------------- + # iterator called from other tools + + def iterator(self,flag): + if flag == 0: return 0,0,1 + return 0,0,-1 + + # -------------------------------------------------------------------- + # time query from other tools + + def findtime(self,n): + if n == 0: return 0 + raise(Exception, "no step %d exists" % (n)) + + # -------------------------------------------------------------------- + # return list of atoms and bonds to viz for data object + + def viz(self,isnap): + if isnap: raise Exception("cannot call data.viz() with isnap != 0") + + id = self.names["id"] + type = self.names["type"] + x = self.names["x"] + y = self.names["y"] + z = self.names["z"] + + xlohi = self.headers["xlo xhi"] + ylohi = self.headers["ylo yhi"] + zlohi = self.headers["zlo zhi"] + box = [xlohi[0],ylohi[0],zlohi[0],xlohi[1],ylohi[1],zlohi[1]] + + # create atom list needed by viz from id,type,x,y,z + + atoms = [] + atomlines = self.sections["Atoms"] + for line in atomlines: + words = line.split() + atoms.append([int(words[id]),int(words[type]), + float(words[x]),float(words[y]),float(words[z])]) + + # create list of current bond coords from list of bonds + # assumes atoms are sorted so can lookup up the 2 atoms in each bond + + bonds = [] + if "Bonds" in self.sections: + bondlines = self.sections["Bonds"] + for line in bondlines: + words = line.split() + bid,btype = int(words[0]),int(words[1]) + atom1,atom2 = int(words[2]),int(words[3]) + atom1words = atomlines[atom1-1].split() + atom2words = atomlines[atom2-1].split() + bonds.append([bid,btype, + float(atom1words[x]),float(atom1words[y]), + float(atom1words[z]), + float(atom2words[x]),float(atom2words[y]), + float(atom2words[z]), + float(atom1words[type]),float(atom2words[type])]) + + tris = [] + lines = [] + return 0,box,atoms,bonds,tris,lines + + # -------------------------------------------------------------------- + # return box size + + def maxbox(self): + xlohi = self.headers["xlo xhi"] + ylohi = self.headers["ylo yhi"] + zlohi = self.headers["zlo zhi"] + return [xlohi[0],ylohi[0],zlohi[0],xlohi[1],ylohi[1],zlohi[1]] + + # -------------------------------------------------------------------- + # return number of atom types + + def maxtype(self): + return self.headers["atom types"] + +# -------------------------------------------------------------------- +# standard data file keywords, both header and main sections + +hkeywords = ["atoms","ellipsoids","lines","triangles","bodies", + "bonds","angles","dihedrals","impropers", + "atom types","bond types","angle types","dihedral types", + "improper types", + "xlo xhi","ylo yhi","zlo zhi","xy xz yz"] + +skeywords = [["Masses","atom types"], + ["Atoms","atoms"],["Ellipsoids","ellipsoids"], + ["Lines","lines"],["Triangles","triangles"],["Bodies","bodies"], + ["Velocities","atoms"], + ["Bonds","bonds"], + ["Angles","angles"], + ["Dihedrals","dihedrals"], + ["Impropers","impropers"], + ["Pair Coeffs","atom types"], + ["Bond Coeffs","bond types"], + ["Angle Coeffs","angle types"], + ["Dihedral Coeffs","dihedral types"], + ["Improper Coeffs","improper types"], + ["BondBond Coeffs","angle types"], + ["BondAngle Coeffs","angle types"], + ["MiddleBondTorsion Coeffs","dihedral types"], + ["EndBondTorsion Coeffs","dihedral types"], + ["AngleTorsion Coeffs","dihedral types"], + ["AngleAngleTorsion Coeffs","dihedral types"], + ["BondBond13 Coeffs","dihedral types"], + ["AngleAngle Coeffs","improper types"]] diff --git a/tools/tinker/tinker2lmp.py b/tools/tinker/tinker2lmp.py new file mode 100644 index 0000000000..fe80be9a14 --- /dev/null +++ b/tools/tinker/tinker2lmp.py @@ -0,0 +1,1645 @@ +#!/bin/env python + +# convert a Tinker XYZ file + PRM file to a LAMMPS data file + +# Syntax: python tinker2lmp.py -switch args -switch args ... +# -xyz file = Tinker XYZ file name (required) +# -amoeba file = AMOEBA PRM force field file name (required, or hippo) +# -hippo file = HIPPO PRM force field file name (required, or amoeba) +# -data file = LAMMPS data file to output (required) +# -bitorsion file = LAMMPS fix bitorsion file to output (required if BiTorsions) +# -nopbc = non-periodic system (default) +# -pbc xhi yhi zhi = periodic system from 0 to hi in each dimension (optional) +# -rep Nx Ny Nz outfile = replicate periodic system by Nx by Ny by Nz (optional) +# outfile = new xyz file to write out, Null if no file + +# Author: Steve Plimpton + +from __future__ import print_function +import sys,os,math +from data import data + +BIG = 1.0e20 +DELTA = 0.001 # delta on LAMMPS shrink-wrap box size, in Angstroms + +# ---------------------- +# methods and classes +# ---------------------- + +# print an error message and exit + +def error(txt=""): + if not txt: + print("Syntax: tinker2lmp.py -switch args ...") + print(" -xyz file") + print(" -amoeba file") + print(" -hippo file") + print(" -data file") + print(" -bitorsion file") + print(" -nopbc") + print(" -pbc xhi yhi zhi") + else: print("ERROR:",txt) + #sys.exit() + +# read and store values from a Tinker xyz file + +class XYZfile(object): + def __init__(self,file): + lines = open(file,'r').readlines() + header = lines[0] + natoms = int(lines[0].split()[0]) + id = [] + label = [] + type = [] + x = [] + y = [] + z = [] + bonds = [] + + for line in lines[1:natoms+1]: + words = line.split() + id.append(int(words[0])) + label.append(words[1]) + x.append(words[2]) + y.append(words[3]) + z.append(words[4]) + type.append(int(words[5])) + blist = words[6:] + blist = [int(one) for one in blist] + bonds.append(blist) + + self.header = header + self.natoms = natoms + self.id = id + self.label = label + self.type = type + self.x = x + self.y = y + self.z = z + self.bonds = bonds + + # set bond images flags in each dim for each bond of each atom + # used for replication of a periodic system + # 0 = bond partner is closer then half box in dim + # -1 = bond partner is on other side of lower box bound in dim + # +1 = bond partner is on other side of upper box bound in dim + + def bond_images(self): + + xhalfsq = 0.25 * boxhi[0]*boxhi[0] + yhalfsq = 0.25 * boxhi[1]*boxhi[1] + zhalfsq = 0.25 * boxhi[2]*boxhi[2] + + x = self.x + y = self.y + z = self.z + bonds = self.bonds + imageflags = [] + + for i in range(self.natoms): + xi = float(x[i]) + yi = float(y[i]) + zi = float(z[i]) + oneflags = [] + + for j in bonds[i]: + xj = float(x[j-1]) + yj = float(y[j-1]) + zj = float(z[j-1]) + dx = xi - xj + dy = yi - yj + dz = zi - zj + + if dx*dx <= xhalfsq: ximage = 0 + elif xi < xj: ximage = -1 + elif xi > xj: ximage = 1 + if dy*dy <= yhalfsq: yimage = 0 + elif yi < yj: yimage = -1 + elif yi > yj: yimage = 1 + if dz*dz <= zhalfsq: zimage = 0 + elif zi < zj: zimage = -1 + elif zi > zj: zimage = 1 + oneflags.append((ximage,yimage,zimage)) + + imageflags.append(oneflags) + + self.imageflags = imageflags + + # replicate system by Nx and Ny and Nz in each dim + # rebuild data structs (except imageflags) in this class + # also alter global boxhi + + def replicate(self,nx,ny,nz): + + natoms = self.natoms + id = self.id + label = self.label + type = self.type + x = self.x + y = self.y + z = self.z + bonds = self.bonds + imageflags = self.imageflags + + xbox = boxhi[0] + ybox = boxhi[1] + zbox = boxhi[2] + + idnew = [] + labelnew = [] + typenew = [] + xnew = [] + ynew = [] + znew = [] + bondsnew = [] + + count = 0 + for k in range(nz): + for j in range(ny): + for i in range(nx): + for m in range(natoms): + count += 1 + idnew.append(count) + labelnew.append(label[m]) + typenew.append(type[m]) + xnew.append(str(float(x[m]) + i*xbox)) + ynew.append(str(float(y[m]) + j*ybox)) + znew.append(str(float(z[m]) + k*zbox)) + + oneflags = imageflags[m] + onebonds = [] + + for n,mbond in enumerate(bonds[m]): + + # ijk new = which replicated box the mbond atom is in + + if oneflags[n][0] == 0: inew = i + elif oneflags[n][0] == -1: inew = i - 1 + elif oneflags[n][0] == 1: inew = i + 1 + if inew < 0: inew = nx-1 + if inew == nx: inew = 0 + + if oneflags[n][1] == 0: jnew = j + elif oneflags[n][1] == -1: jnew = j - 1 + elif oneflags[n][1] == 1: jnew = j + 1 + if jnew < 0: jnew = ny-1 + if jnew == ny: jnew = 0 + + if oneflags[n][2] == 0: knew = k + elif oneflags[n][2] == -1: knew = k - 1 + elif oneflags[n][2] == 1: knew = k + 1 + if knew < 0: knew = nz-1 + if knew == nz: knew = 0 + + # bondnew = replicated atom ID of bond partner + # based on replication box (inew,jnew,knew) that owns it + + bondnew = mbond + natoms*(knew*ny*nx + jnew*nx + inew) + onebonds.append(bondnew) + + bondsnew.append(onebonds) + + self.natoms = natoms * nx*ny*nz + self.id = idnew + self.label = labelnew + self.type = typenew + self.x = xnew + self.y = ynew + self.z = znew + self.bonds = bondsnew + + # write out new xyzfile for replicated system + + def output(self,outfile): + fp = open(outfile,'w') + words = self.header.split() + print(self.natoms,"replicated",' '.join(words[1:]), file=fp) + + id = self.id + label = self.label + type = self.type + x = self.x + y = self.y + z = self.z + bonds = self.bonds + + # NOTE: worry about formatting of line + + for i in range(self.natoms): + print(i+1,label[i],x[i],y[i],z[i],type[i], end=' ', file=fp) + for j in bonds[i]: print(j, end=' ', file=fp) + print(file=fp) + + fp.close() + + # triplet of atoms in an angle = atom 1,2,3 + # atom2 is center atom + # nbonds = number of atoms which atom2 is bonded to + # hcount = # of H atoms which atom2 is bonded to, excluding atom1 and atom3 + + def angle_hbond_count(self,atom1,atom2,atom3,lmptype,lmpmass): + bondlist = self.bonds[atom2-1] + nbonds = len(bondlist) + + hcount = 0 + for bondID in bondlist: + if atom1 == bondID: continue + if atom3 == bondID: continue + massone = lmpmass[lmptype[bondID-1]-1] + if int(massone+0.5) == 1: hcount += 1 + + return nbonds,hcount + +# read and store select values from a Tinker force field PRM file +# ntypes = # of Tinker types +# per-type values: class and mass +# scalar force field params in Force Field Definition section +# bond, angle, dihedral coeffs indexed by Tinker classes + +class PRMfile(object): + def __init__(self,file): + lines = open(file,'r').readlines() + self.nlines = len(lines) + self.lines = lines + + self.force_field_definition() + self.classes,self.masses = self.peratom() + self.polgroup = self.polarize() + self.bondparams = self.bonds() + self.angleparams = self.angles() + self.bondangleparams = self.bondangles() + self.torsionparams = self.torsions() + self.opbendparams = self.opbend() + self.ureyparams = self.ureybonds() + self.pitorsionparams = self.pitorsions() + self.bitorsionparams = self.bitorsions() + self.ntypes = len(self.masses) + + # find a section in the PRM file + + def find_section(self,txt): + txt = "## %s ##" % txt + for iline,line in enumerate(self.lines): + if txt in line: return iline + return -1 + + # scalar params + + def force_field_definition(self): + iline = self.find_section("Force Field Definition") + iline += 3 + while iline < self.nlines: + words = self.lines[iline].split() + if len(words): + if words[0].startswith("###########"): break + if words[0] == "bond-cubic": self.bond_cubic = float(words[1]) + elif words[0] == "bond-quartic": self.bond_quartic = float(words[1]) + elif words[0] == "angle-cubic": self.angle_cubic = float(words[1]) + elif words[0] == "angle-quartic": self.angle_quartic = float(words[1]) + elif words[0] == "angle-pentic": self.angle_pentic = float(words[1]) + elif words[0] == "angle-sextic": self.angle_sextic = float(words[1]) + iline += 1 + + # atom classes and masses + + def peratom(self): + classes = [] + masses = [] + iline = self.find_section("Atom Type Definitions") + if iline < 0: return classes,masses + iline += 3 + while iline < self.nlines: + words = self.lines[iline].split() + if len(words): + if words[0].startswith("###########"): break + # NOTE: assumes atom entries are numbered consecutively + if words[0] == "atom": + classes.append(int(words[2])) + masses.append(float(words[-2])) + iline += 1 + return classes,masses + + # replicate per-atom data: classes and masses + + def replicate_peratom(self,nx,ny,nz): + classes = self.classes + masses = self.masses + natoms = len(self.masses) + + classes_new = [] + masses_new = [] + + for k in range(nz): + for j in range(ny): + for i in range(nx): + for m in range(natoms): + classes_new.append(classes[m]) + masses_new.append(masses[m]) + + self.classes = classes_new + self.masses = masses_new + + # polarization groups + + def polarize(self): + polgroup = [] + iline = self.find_section("Dipole Polarizability Parameters") + if iline < 0: return polgroup + iline += 3 + while iline < self.nlines: + words = self.lines[iline].split() + if len(words): + if words[0].startswith("###########"): break + # trim off any end-of-line comments + if "!!" in words: words = words[:words.index("!!")] + # NOTE: assumes polarize entries are numbered consecutively + if words[0] == "polarize": + if amoeba: bondtypes = words[4:] + if hippo: bondtypes = words[3:] + bondtypes = [int(one) for one in bondtypes] + polgroup.append(bondtypes) + iline += 1 + return polgroup + + # convert PRMfile params to LAMMPS bond_style class2 params + + def bonds(self): + params = [] + iline = self.find_section("Bond Stretching Parameters") + if iline < 0: return params + iline += 3 + while iline < self.nlines: + words = self.lines[iline].split() + if len(words): + if words[0].startswith("###########"): break + if words[0] == "bond": + class1 = int(words[1]) + class2 = int(words[2]) + value1 = float(words[3]) + value2 = float(words[4]) + lmp1 = value2 + lmp2 = value1 + lmp3 = self.bond_cubic * value1 + lmp4 = self.bond_quartic * value1 + params.append((class1,class2,lmp1,lmp2,lmp3,lmp4)) + iline += 1 + return params + + # convert PRMfile params to LAMMPS angle_style class2/p6 params + # line may have prefactor plus 1,2,3 angle0 params + # save prefactor/angle0 pairs as option 1,2,3 + + def angles(self): + r2d = 180.0 / math.pi + ubflag = 0 + params = [] + iline = self.find_section("Angle Bending Parameters") + if iline < 0: return params + iline += 3 + while iline < self.nlines: + line = self.lines[iline] + line = line[:line.find("!!")] + words = line.split() + if len(words): + if words[0].startswith("###########"): break + if words[0] == "angle" or words[0] == "anglep": + if words[0] == "angle": pflag = 0 + if words[0] == "anglep": pflag = 1 + + class1 = int(words[1]) + class2 = int(words[2]) + class3 = int(words[3]) + value1 = float(words[4]) + value2 = float(words[5]) + option1 = () + option2 = () + option3 = () + + lmp1 = value2 + lmp2 = value1 + lmp3 = self.angle_cubic * value1 * r2d + lmp4 = self.angle_quartic * value1 * r2d*r2d + lmp5 = self.angle_pentic * value1 * r2d*r2d*r2d + lmp6 = self.angle_sextic * value1 * r2d*r2d*r2d*r2d + + option1 = (pflag,ubflag,lmp1,lmp2,lmp3,lmp4,lmp5,lmp6) + + if len(words) >= 7: + value3 = float(words[6]) + lmp1 = value3 + option2 = (pflag,ubflag,lmp1,lmp2,lmp3,lmp4,lmp5,lmp6) + + if len(words) == 8: + value4 = float(words[7]) + lmp1 = value4 + option3 = (pflag,ubflag,lmp1,lmp2,lmp3,lmp4,lmp5,lmp6) + + if not option2 and not option3: + params.append((class1,class2,class3,[option1])) + elif not option3: + params.append((class1,class2,class3,[option1,option2])) + else: + params.append((class1,class2,class3,[option1,option2,option3])) + + iline += 1 + return params + + # convert PRMfile params to LAMMPS angle_style class2/p6 bondangle params + # lmp3,lmp4 = equilibrium bond lengths for 2 bonds in angle + # need to find these values in self.bondparams + # put them in a dictionary for efficient searching + + def bondangles(self): + params = [] + iline = self.find_section("Stretch-Bend Parameters") + if iline < 0: return params + iline += 3 + + bdict = {} + for m,bparams in enumerate(self.bondparams): + bdict[(bparams[0],bparams[1])] = bparams[2] + + while iline < self.nlines: + words = self.lines[iline].split() + if len(words): + if words[0].startswith("###########"): break + if words[0] == "strbnd": + class1 = int(words[1]) + class2 = int(words[2]) + class3 = int(words[3]) + value1 = float(words[4]) + value2 = float(words[5]) + lmp1 = value1 + lmp2 = value2 + + if (class1,class2) in bdict: + lmp3 = bdict[(class1,class2)] + elif (class2,class1) in bdict: + lmp3 = bdict[(class2,class1)] + else: + error("1st bond in BondAngle term not found: %d %d %d" % \ + (class1,class2,class3)) + # NOTE: just for debugging + lmp3 = 0.0 + + if (class2,class3) in bdict: + lmp4 = bdict[(class2,class3)] + elif (class3,class2) in bdict: + lmp4 = bdict[(class3,class2)] + else: + error("2nd bond in BondAngle term not found: %d %d %d" % \ + (class1,class2,class3)) + # NOTE: just for debugging + lmp4 = 0.0 + + params.append((class1,class2,class3,lmp1,lmp2,lmp3,lmp4)) + iline += 1 + return params + + # dihedral interactions + + def torsions(self): + params = [] + iline = self.find_section("Torsional Parameters") + if iline < 0: return params + iline += 3 + while iline < self.nlines: + words = self.lines[iline].split() + if len(words): + if words[0].startswith("###########"): break + if words[0] == "torsion": + class1 = int(words[1]) + class2 = int(words[2]) + class3 = int(words[3]) + class4 = int(words[4]) + + if len(words) <= 5: + error("torsion has no params: %d %d %d %d" % \ + (class1,class2,class3,class4)) + if (len(words)-5) % 3: + error("torsion does not have triplets of params: %d %d %d %d" % \ + (class1,class2,class3,class4)) + + mfourier = int((len(words)-5)/3) + oneparams = [class1,class2,class3,class4,mfourier] + + for iset in range(mfourier): + value1 = float(words[5 + iset*3 + 0]) + value2 = float(words[5 + iset*3 + 1]) + value3 = int(words[5 + iset*3 + 2]) + lmp1 = value1/2.0 + lmp2 = value3 + lmp3 = value2 + oneparams += [lmp1,lmp2,lmp3] + + params.append(oneparams) + iline += 1 + return params + + # improper or out-of-plane bend interactions + + def opbend(self): + params = [] + iline = self.find_section("Out-of-Plane Bend Parameters") + if iline < 0: return params + iline += 3 + while iline < self.nlines: + words = self.lines[iline].split() + if len(words): + if words[0].startswith("###########"): break + if words[0] == "opbend": + class1 = int(words[1]) + class2 = int(words[2]) + class3 = int(words[3]) + class4 = int(words[4]) + value1 = float(words[5]) + lmp1 = value1 + params.append((class1,class2,class3,class4,lmp1)) + iline += 1 + return params + + # convert PRMfile params to LAMMPS angle_style amoeba UB params + # coeffs for K2,K3 = 0.0 since Urey-Bradley is simple harmonic + + def ureybonds(self): + params = [] + iline = self.find_section("Urey-Bradley Parameters") + if iline < 0: return params + iline += 3 + + while iline < self.nlines: + words = self.lines[iline].split() + if len(words): + if words[0].startswith("###########"): break + if words[0] == "ureybrad": + class1 = int(words[1]) + class2 = int(words[2]) + class3 = int(words[3]) + value1 = float(words[4]) + value2 = float(words[5]) + lmp1 = value1 + lmp2 = value2 + + params.append((class1,class2,class3,lmp1,lmp2)) + iline += 1 + return params + + # PiTorsion params, will be read from data file by fix pitorsion + + def pitorsions(self): + params = [] + iline = self.find_section("Pi-Torsion Parameters") + if iline < 0: return params + iline += 3 + + while iline < self.nlines: + words = self.lines[iline].split() + if len(words): + if words[0].startswith("###########"): break + if words[0] == "pitors": + class1 = int(words[1]) + class2 = int(words[2]) + value1 = float(words[3]) + lmp1 = value1 + + params.append((class1,class2,lmp1)) + iline += 1 + return params + + # BiTorsion params, will be read from data file by fix bitorsion + + def bitorsions(self): + params = [] + iline = self.find_section("Torsion-Torsion Parameters") + if iline < 0: return params + iline += 3 + + while iline < self.nlines: + words = self.lines[iline].split() + if len(words): + if words[0].startswith("###########"): break + if words[0] == "tortors": + class1 = int(words[1]) + class2 = int(words[2]) + class3 = int(words[3]) + class4 = int(words[4]) + class5 = int(words[5]) + nx = int(words[6]) + ny = int(words[7]) + iline += 1 + array = [] + for iy in range(ny): + xrow = [] + for ix in range(nx): + words = self.lines[iline].split() + xgrid = float(words[0]) + ygrid = float(words[1]) + value = float(words[2]) + tuple3 = (xgrid,ygrid,value) + xrow.append(tuple3) + iline += 1 + array.append(xrow) + params.append((class1,class2,class3,class4,class5,nx,ny,array)) + iline += 1 + return params + +# ---------------------------------------- +# main program +# ---------------------------------------- + +args = sys.argv[1:] +narg = len(args) + +# process args + +amoeba = hippo = 0 +xyzfile = "" +prmfile = "" +datafile = "" +bitorsionfile = "" +pbcflag = 0 +repflag = 0 + +iarg = 0 +while iarg < narg: + if args[iarg] == "-xyz": + if iarg + 2 > narg: error() + xyzfile = args[iarg+1] + iarg += 2 + elif args[iarg] == "-amoeba": + if iarg + 2 > narg: error() + amoeba = 1 + prmfile = args[iarg+1] + iarg += 2 + elif args[iarg] == "-hippo": + if iarg + 2 > narg: error() + hippo = 1 + prmfile = args[iarg+1] + iarg += 2 + elif args[iarg] == "-data": + if iarg + 2 > narg: error() + datafile = args[iarg+1] + iarg += 2 + elif args[iarg] == "-bitorsion": + if iarg + 2 > narg: error() + bitorsionfile = args[iarg+1] + iarg += 2 + elif args[iarg] == "-nopbc": + pbcflag = 0 + iarg += 1 + elif args[iarg] == "-pbc": + if iarg + 4 > narg: error() + pbcflag = 1 + xhi = float(args[iarg+1]) + yhi = float(args[iarg+2]) + zhi = float(args[iarg+3]) + boxhi = [xhi,yhi,zhi] + iarg += 4 + elif args[iarg] == "-rep": + if iarg + 5 > narg: error() + repflag = 1 + nxrep = int(args[iarg+1]) + nyrep = int(args[iarg+2]) + nzrep = int(args[iarg+3]) + outxyz = args[iarg+4] + if outxyz == "NULL": outxyz = "" + iarg += 5 + else: error() + +# error check + +if not xyzfile: error("xyzfile not specified") +if not prmfile: error("prmfile not specified") +if not datafile: error("datafile not specified") +if not pbcflag and repflag: error("cannot replicate non-periodic system") +if repflag and (nxrep <= 0 or nyrep <= 0 or nzrep <= 0): + error("replication factors <= 0 not allowed") + +# read Tinker xyz and prm files + +xyz = XYZfile(xyzfile) +prm = PRMfile(prmfile) + +# replicate system if requested +# both in XYZ and PRM classes + +if repflag: + xyz.bond_images() + xyz.replicate(nxrep,nyrep,nzrep) + if outxyz: xyz.output(outxyz) + prm.replicate_peratom(nxrep,nyrep,nzrep) + boxhi[0] *= nxrep + boxhi[1] *= nyrep + boxhi[2] *= nzrep + +# create LAMMPS box bounds based on pbcflag + +natoms = xyz.natoms +x = xyz.x +y = xyz.y +z = xyz.z + +if pbcflag: + boxlo = [0,0,0] +else: + xlo = ylo = zlo = BIG + xhi = yhi = zhi = -BIG + for i in range(natoms): + xlo = min(xlo,float(x[i])) + ylo = min(ylo,float(y[i])) + zlo = min(zlo,float(z[i])) + xhi = max(xhi,float(x[i])) + yhi = max(yhi,float(y[i])) + zhi = max(zhi,float(z[i])) + boxlo = [xlo-DELTA,ylo-DELTA,zlo-DELTA] + boxhi = [xhi+DELTA,yhi+DELTA,zhi+DELTA] + +# ---------------------------------------- +# create LAMMPS atom types for each unique Tinker per-type mass +# NOTE: maybe should assign LAMMPS types in a different way, +# e.g. one LAMMPS type for each used Tinker type +# ---------------------------------------- + +# ntypes = # of LAMMPS atoms types = unique Tinker masses +# lmptype = which LAMMPS type for each atom (1 to Ntypes) +# lmpmass = list of per-type masses +# ttype = list of Tinker types for each atom (1 to prm.ntypes) +# tink2lmp = mapping of Tinker types to LAMMPS types + +natoms = xyz.natoms +ttype = xyz.type +tmasses = prm.masses + +ntypes = 0 +lmptype = [] +lmpmass = [] +tink2lmp = {} + +for itype in ttype: + if itype not in tink2lmp: + mass = tmasses[itype-1] + if mass not in lmpmass: + ntypes += 1 + lmpmass.append(mass) + jtype = ntypes + else: jtype = lmpmass.index(mass) + 1 + tink2lmp[itype] = jtype + lmptype.append(tink2lmp[itype]) + +# ---------------------------------------- +# identify molecules from Tinker bond connectivity +# ---------------------------------------- + +# molID = which molecule each atom is in (1 to Nmol) +# use stack to store IDs of atoms to recursively loop over + +natoms = xyz.natoms +id = xyz.id +bonds = xyz.bonds + +molID = natoms*[0] +nmol = 0 + +for i in id: + if molID[i-1] > 0: continue + nmol += 1 + molID[i-1] = nmol + stack = [i] + while stack: + j = stack.pop() + for k in bonds[j-1]: + if molID[k-1] == 0: + molID[k-1] = nmol + stack.append(k) + +# ---------------------------------------- +# create lists of bonds, angles, dihedrals, impropers +# ---------------------------------------- + +# create blist = list of bonds +# avoid double counting by requiring atom1 < atom2 + +id = xyz.id +type = xyz.type +bonds = xyz.bonds + +blist = [] + +for atom1 in id: + for atom2 in bonds[atom1-1]: + if atom1 < atom2: + blist.append((atom1,atom2)) + +# create alist = list of angles +# generate topology by double loop over bonds of center atom2 +# avoid double counting by requiring atom1 < atom3 + +id = xyz.id +type = xyz.type +bonds = xyz.bonds + +alist = [] + +for atom2 in id: + for atom1 in bonds[atom2-1]: + for atom3 in bonds[atom2-1]: + if atom3 == atom1: continue + if atom1 < atom3: + alist.append((atom1,atom2,atom3)) + +# create dlist = list of dihedrals +# generate topology via triple loop over neighbors of dihedral atom2 +# double loop over bonds of atom2 +# additional loop over bonds of atom3 +# avoid double counting the reverse dihedral by use of ddict dictionary + +# NOTE: could just avoid double count by "if atom1 < atom4" as in bond, angle ? +# gives different list, but is it still identical ? +# would have to check 2 data files, write comparison Py script + +id = xyz.id +type = xyz.type +bonds = xyz.bonds + +dlist = [] +ddict = {} + +for atom2 in id: + for atom1 in bonds[atom2-1]: + for atom3 in bonds[atom2-1]: + if atom3 == atom1: continue + for atom4 in bonds[atom3-1]: + if atom4 == atom2 or atom4 == atom1: continue + if (atom4,atom3,atom2,atom1) in ddict: continue + dlist.append((atom1,atom2,atom3,atom4)) + ddict[(atom1,atom2,atom3,atom4)] = 1 + +# create olist = list of out-of-plane impropers +# generate topology by triple loop over bonds of center atom2 +# atom2 must have 3 or more bonds to be part of an improper +# avoid double counting by requiring atom3 < atom4 +# this is since in Tinker the final 2 atoms in the improper are interchangeable + +id = xyz.id +type = xyz.type +bonds = xyz.bonds + +olist = [] + +for atom2 in id: + if len(bonds[atom2-1]) < 3: continue + for atom1 in bonds[atom2-1]: + for atom3 in bonds[atom2-1]: + for atom4 in bonds[atom2-1]: + if atom1 == atom3: continue + if atom1 == atom4: continue + if atom3 >= atom4: continue + olist.append((atom1,atom2,atom3,atom4)) + +# ---------------------------------------- +# create list of Urey-Bradley triplet matches +# ---------------------------------------- + +# scan list of angles to find triplets that match UB parameters +# if match, add it to UB bond list + +type = xyz.type +classes = prm.classes + +ublist = [] + +ubdict = {} +for m,params in enumerate(prm.ureyparams): + ubdict[(params[0],params[1],params[2])] = (m,params) + +for atom1,atom2,atom3 in alist: + type1 = type[atom1-1] + type2 = type[atom2-1] + type3 = type[atom3-1] + c1 = classes[type1-1] + c2 = classes[type2-1] + c3 = classes[type3-1] + + if (c1,c2,c3) in ubdict: + ublist.append((atom1,atom2,atom3)) + elif (c3,c2,c1) in ubdict: + ublist.append((atom3,atom2,atom1)) + +# create pitorslist = list of 6-body interactions +# based on central bond, each bond atom is bonded to exactly 2 other atoms +# avoid double counting by requiring atom1 < atom2 +# NOTE: need more info on how to order the 6 atoms for Tinker to compute on + +type = xyz.type +classes = prm.classes +bonds = xyz.bonds + +pitorsionlist = [] + +for atom1 in id: + for atom2 in bonds[atom1-1]: + if atom1 < atom2: + if len(bonds[atom1-1]) != 3: continue + if len(bonds[atom2-1]) != 3: continue + + if bonds[atom1-1][0] == atom2: + atom3 = bonds[atom1-1][1] + atom4 = bonds[atom1-1][2] + elif bonds[atom1-1][1] == atom2: + atom3 = bonds[atom1-1][0] + atom4 = bonds[atom1-1][2] + elif bonds[atom1-1][2] == atom2: + atom3 = bonds[atom1-1][0] + atom4 = bonds[atom1-1][1] + + if bonds[atom2-1][0] == atom1: + atom5 = bonds[atom2-1][1] + atom6 = bonds[atom2-1][2] + elif bonds[atom2-1][1] == atom1: + atom5 = bonds[atom2-1][0] + atom6 = bonds[atom2-1][2] + elif bonds[atom2-1][2] == atom1: + atom5 = bonds[atom2-1][0] + atom6 = bonds[atom2-1][1] + + pitorsionlist.append((atom3,atom4,atom1,atom2,atom5,atom6)) + +# create bitorslist = list of 5-body interactions +# generate topology via double loop over neighbors of central atom3 +# additional double loop over bonds of atom2 and bonds of atom4 +# avoid double counting the reverse bitorsion by use of btdict dictionary + +type = xyz.type +classes = prm.classes +bonds = xyz.bonds + +bitorsionlist = [] +btdict = {} + +for atom3 in id: + for atom2 in bonds[atom3-1]: + for atom4 in bonds[atom3-1]: + if atom2 == atom4: continue + for atom1 in bonds[atom2-1]: + for atom5 in bonds[atom4-1]: + if atom1 == atom3 or atom5 == atom3 or atom1 == atom5: continue + if (atom5,atom4,atom3,atom2,atom1) in btdict: continue + bitorsionlist.append((atom1,atom2,atom3,atom4,atom5)) + btdict[(atom1,atom2,atom3,atom4,atom5)] = 1 + +# ---------------------------------------- +# create lists of bond/angle/dihedral/improper types +# ---------------------------------------- + +# generate btype = LAMMPS type of each bond +# generate bparams = LAMMPS params for each bond type +# flags[i] = which LAMMPS bond type (1-N) the Ith Tinker PRM file bond is +# 0 = none +# convert prm.bondparams to a dictionary for efficient searching +# key = (class1,class2) +# value = (M,params) where M is index into prm.bondparams + +id = xyz.id +type = xyz.type +classes = prm.classes + +bdict = {} +for m,params in enumerate(prm.bondparams): + bdict[(params[0],params[1])] = (m,params) + +flags = len(prm.bondparams)*[0] +btype = [] +bparams = [] + +for atom1,atom2 in blist: + type1 = type[atom1-1] + type2 = type[atom2-1] + c1 = classes[type1-1] + c2 = classes[type2-1] + + if (c1,c2) in bdict: m,params = bdict[(c1,c2)] + elif (c2,c1) in bdict: m,params = bdict[(c2,c1)] + else: error("bond not found: %d %d: %d %d" % (atom1,atom2,c1,c2)) + + if not flags[m]: + v1,v2,v3,v4 = params[2:] + bparams.append((v1,v2,v3,v4)) + flags[m] = len(bparams) + btype.append(flags[m]) + +# generate atype = LAMMPS type of each angle +# generate aparams = LAMMPS params for each angle type +# flags[i] = which LAMMPS angle type (1-N) the Tinker FF file angle I is +# 0 = none +# Tinker FF file angle entries can have 1, 2, or 3 options +# noptions = total # of Tinker FF file entries with options included +# convert prm.angleparams to a dictionary for efficient searching +# key = (class1,class2) +# value = (M,params) where M is index into prm.angleparams + +id = xyz.id +type = xyz.type +classes = prm.classes + +adict = {} +noptions = 0 +for m,params in enumerate(prm.angleparams): + adict[(params[0],params[1],params[2])] = (noptions,params) + n = len(params[3]) + noptions += n + +flags = noptions*[0] +atype = [] +aparams = [] + +for i,one in enumerate(alist): + atom1,atom2,atom3 = one + type1 = type[atom1-1] + type2 = type[atom2-1] + type3 = type[atom3-1] + c1 = classes[type1-1] + c2 = classes[type2-1] + c3 = classes[type3-1] + + if (c1,c2,c3) in adict or (c3,c2,c1) in adict: + if (c1,c2,c3) in adict: m,params = adict[(c1,c2,c3)] + + # IMPORTANT subtlety + # flip order of 3 atoms in alist if the angle + # matches Angle Bending section of PRM file in reverse order + # no need to flip if c1 = c3 + # necessary b/c BondAngle coeffs will be generated with r1,r2 params + # from Bond Stretching section of PRM file + # since in general r1 != r2, the LAMMPS AngleAmoeba class requires + # the 3 atoms in the angle be in the order that matches r1 and r2 + + if c1 != c3 and (c3,c2,c1) in adict: + m,params = adict[(c3,c2,c1)] + alist[i] = (atom3,atom2,atom1) + + # params is a sequence of 1 or 2 or 3 options + # which = which of 1,2,3 options this atom triplet matches + # for which = 2 or 3, increment m to index correct position in flags + # how match is determined: + # if 2 options: + # require atom2 have 3 bond partners, including atom1 and atom3 + # option 1 if additional bond is not to an H atom + # option 2 if additional bond is to an H atom + # if 3 options: + # require atom2 have 4 bond partners, including atom1 and atom3 + # option 1 if neither of 2 additional bonds is to an H atom + # option 2 if one of 2 additional bonds is to an H atom + # option 3 if both of 2 additional bonds is to an H atom + + if len(params[3]) == 1: + which = 1 + + elif len(params[3]) == 2: + nbonds,hcount = xyz.angle_hbond_count(atom1,atom2,atom3,lmptype,lmpmass) + + if nbonds != 3: + print("Center angle atom has wrong bond count") + print(" angle atom IDs:",atom1,atom2,atom3) + print(" angle atom classes:",c1,c2,c3) + print(" Tinker FF file param options:",len(params[3])) + print(" Nbonds and hydrogen count:",nbonds,hcount) + #sys.exit() NOTE: allow this for now + + if hcount == 0: which = 1 + elif hcount == 1: + which = 2 + m += 1 + + print("3-bond angle") + print(" angle atom IDs:",atom1,atom2,atom3) + print(" angle atom classes:",c1,c2,c3) + print(" Tinker FF file param options:",len(params[3])) + print(" Nbonds and hydrogen count:",nbonds,hcount) + print(" which:",which,m) + + elif len(params[3]) == 3: + nbonds,hcount = xyz.angle_hbond_count(atom1,atom2,atom3,lmptype,lmpmass) + + if nbonds != 4: + print("Center angle atom has wrong bond count") + print(" angle atom IDs:",atom1,atom2,atom3) + print(" angle atom classes:",c1,c2,c3) + print(" Tinker FF file param options:",len(params[3])) + print(" Nbonds and hydrogen count:",nbonds,hcount) + #sys.exit() NOTE: allow this for now + + if hcount == 0: which = 1 + elif hcount == 1: + which = 2 + m += 1 + elif hcount == 2: + which = 3 + m += 2 + + else: + error("angle not found: %d %d %d: %d %d %d" % (atom1,atom2,atom3,c1,c2,c3)) + + if not flags[m]: + pflag,ubflag,v1,v2,v3,v4,v5,v6 = params[3][which-1] + aparams.append((pflag,ubflag,v1,v2,v3,v4,v5,v6)) + flags[m] = len(aparams) + atype.append(flags[m]) + +# augment the aparams with bond-angle cross terms from bondangleparams +# generate baparams = LAMMPS bond-angle params for each angle type +# badict = dictionary for angle tuples in bongangleparams + +badict = {} +for v1,v2,v3,v4,v5,v6,v7 in prm.bondangleparams: + if (v1,v2,v3) in badict: continue + badict[(v1,v2,v3)] = (v4,v5,v6,v7) + +baparams = [] + +for itype in range(len(aparams)): + iangle = atype.index(itype+1) + atom1,atom2,atom3 = alist[iangle] + type1 = type[atom1-1] + type2 = type[atom2-1] + type3 = type[atom3-1] + c1 = classes[type1-1] + c2 = classes[type2-1] + c3 = classes[type3-1] + + if (c1,c2,c3) in badict: + n1,n2,r1,r2 = badict[(c1,c2,c3)] + elif (c3,c2,c1) in badict: + n1,n2,r1,r2 = badict[(c3,c2,c1)] + else: + print("Bond-stretch angle triplet not found: %d %d %d" % (c1,c2,c3)) + n1,n2,r1,r2 = 4*[0.0] + + baparams.append((n1,n2,r1,r2)) + +# augment the aparams with Urey_Bradley terms from ureyparams +# generate ubparams = LAMMPS UB params for 1-3 bond in each angle type +# ubdict = dictionary for angle tuples in ureyparams + +ubdict = {} +for v1,v2,v3,v4,v5 in prm.ureyparams: + if (v1,v2,v3) in ubdict: continue + ubdict[(v1,v2,v3)] = (v4,v5) + +ubparams = [] + +for itype in range(len(aparams)): + iangle = atype.index(itype+1) + atom1,atom2,atom3 = alist[iangle] + type1 = type[atom1-1] + type2 = type[atom2-1] + type3 = type[atom3-1] + c1 = classes[type1-1] + c2 = classes[type2-1] + c3 = classes[type3-1] + + # if UB settings exist for this angle type, set ubflag in aparams to 1 + + if (c1,c2,c3) in ubdict: + r1,r2 = ubdict[(c1,c2,c3)] + pflag,ubflag,v1,v2,v3,v4,v5,v6 = aparams[itype] + ubflag = 1 + aparams[itype] = (pflag,ubflag,v1,v2,v3,v4,v5,v6) + elif (c3,c2,c1) in ubdict: + r1,r2 = ubdict[(c3,c2,c1)] + pflag,ubflag,v1,v2,v3,v4,v5,v6 = aparams[itype] + ubflag = 1 + aparams[itype] = (pflag,ubflag,v1,v2,v3,v4,v5,v6) + else: + r1,r2 = 2*[0.0] + + ubparams.append((r1,r2)) + +# generate dtype = LAMMPS type of each dihedral +# generate dparams = LAMMPS params for each dihedral type +# flags[i] = which LAMMPS dihedral type (1-N) the Tinker FF file dihedral I is +# 0 = none +# convert prm.torsionparams to a dictionary for efficient searching +# key = (class1,class2,class3,class4) +# value = (M,params) where M is index into prm.torsionparams + +id = xyz.id +type = xyz.type +classes = prm.classes + +ddict = {} +for m,params in enumerate(prm.torsionparams): + ddict[(params[0],params[1],params[2],params[3])] = (m,params) + +flags = len(prm.torsionparams)*[0] +dtype = [] +dparams = [] + +for atom1,atom2,atom3,atom4 in dlist: + type1 = type[atom1-1] + type2 = type[atom2-1] + type3 = type[atom3-1] + type4 = type[atom4-1] + c1 = classes[type1-1] + c2 = classes[type2-1] + c3 = classes[type3-1] + c4 = classes[type4-1] + + if (c1,c2,c3,c4) in ddict: m,params = ddict[(c1,c2,c3,c4)] + elif (c4,c3,c2,c1) in ddict: m,params = ddict[(c4,c3,c2,c1)] + else: + error("dihedral not found: %d %d %d %d: %d %d %d %d" % \ + (atom1,atom2,atom3,atom4,c1,c2,c3,c4)) + + if not flags[m]: + oneparams = params[4:] + dparams.append(oneparams) + flags[m] = len(dparams) + dtype.append(flags[m]) + +# generate otype = LAMMPS type of each out-of-plane improper +# generate oparams = LAMMPS params for each improper type +# flags[i] = which LAMMPS improper type (1-N) the Tinker FF file improper I is +# 0 = none +# convert prm.opbendparams to a dictionary for efficient searching +# key = (class1,class2) +# value = (M,params) where M is index into prm.opbendparams + +id = xyz.id +type = xyz.type +classes = prm.classes + +odict = {} +for m,params in enumerate(prm.opbendparams): + odict[(params[0],params[1])] = (m,params) + +flags = len(prm.opbendparams)*[0] +otype = [] +oparams = [] +olist_reduced = [] + +for atom1,atom2,atom3,atom4 in olist: + type1 = type[atom1-1] + type2 = type[atom2-1] + type3 = type[atom3-1] + type4 = type[atom4-1] + c1 = classes[type1-1] + c2 = classes[type2-1] + c3 = classes[type3-1] + c4 = classes[type4-1] + + # 4-tuple is only an improper if matches an entry in PRM file + # olist_reduced = list of just these 4-tuples + + if (c1,c2) in odict: + m,params = odict[(c1,c2)] + olist_reduced.append((atom1,atom2,atom3,atom4)) + + if not flags[m]: + oneparams = params[4:] + oparams.append(oneparams) + flags[m] = len(oparams) + otype.append(flags[m]) + +# replace original olist with reduced version + +olist = olist_reduced + +# generate pitorsiontype = LAMMPS type of each pitorsion +# generate pitorsionparams = LAMMPS params for each pitorsion type +# flags[i] = which LAMMPS pitorsion type (1-N) the Ith Tinker PRM file ptors is +# 0 = none +# convert prm.pitorsionparams to a dictionary for efficient searching +# key = (class1,class2) +# value = (M,params) where M is index into prm.pitorsionparams + +id = xyz.id +type = xyz.type +classes = prm.classes + +pitdict = {} +for m,params in enumerate(prm.pitorsionparams): + pitdict[(params[0],params[1])] = (m,params) + +flags = len(prm.pitorsionparams)*[0] +pitorsiontype = [] +pitorsionparams = [] +pitorsionlist_reduced = [] + +for tmp1,tmp2,atom1,atom2,tmp3,tmp4 in pitorsionlist: + type1 = type[atom1-1] + type2 = type[atom2-1] + c1 = classes[type1-1] + c2 = classes[type2-1] + + # 6-tuple is only a PiTorsion if central 2 atoms match an entry in PRM file + # pitorsionlist_reduced = list of just these 6-tuples + + if (c1,c2) in pitdict or (c2,c1) in pitdict: + if (c1,c2) in pitdict: m,params = pitdict[(c1,c2)] + else: m,params = pitdict[(c2,c1)] + pitorsionlist_reduced.append((tmp1,tmp2,atom1,atom2,tmp3,tmp4)) + + if not flags[m]: + v1 = params[2:] + pitorsionparams.append(v1) + flags[m] = len(pitorsionparams) + pitorsiontype.append(flags[m]) + +# replace original pitorsionlist with reduced version + +pitorsionlist = pitorsionlist_reduced + +# generate bitorsiontype = LAMMPS type of each bitorsion +# generate bitorsionparams = LAMMPS params for each bitorsion type +# flags[i] = which LAMMPS bitorsion type (1-N) the Ith Tinker PRM file btors is +# 0 = none +# convert prm.bitorsionparams to a dictionary for efficient searching +# key = (class1,class2,class3,class4,class5) +# value = (M,params) where M is index into prm.bitorsionparams + +id = xyz.id +type = xyz.type +classes = prm.classes + +bitdict = {} +for m,params in enumerate(prm.bitorsionparams): + bitdict[(params[0],params[1],params[2],params[3],params[4])] = (m,params) + +flags = len(prm.bitorsionparams)*[0] +bitorsiontype = [] +bitorsionparams = [] +bitorsionlist_reduced = [] + +for atom1,atom2,atom3,atom4,atom5 in bitorsionlist: + type1 = type[atom1-1] + type2 = type[atom2-1] + type3 = type[atom3-1] + type4 = type[atom4-1] + type5 = type[atom5-1] + c1 = classes[type1-1] + c2 = classes[type2-1] + c3 = classes[type3-1] + c4 = classes[type4-1] + c5 = classes[type5-1] + + # 5-tuple is only a BiTorsion if 5 atoms match an entry in PRM file + # bitorsionlist_reduced = list of just these 5-tuples + + if (c1,c2,c3,c4,c5) in bitdict or (c5,c4,c3,c2,c1) in bitdict: + if (c1,c2,c3,c4,c5) in bitdict: m,params = bitdict[(c1,c2,c3,c4,c5)] + else: m,params = bitdict[(c5,c4,c3,c2,c1)] + bitorsionlist_reduced.append((atom1,atom2,atom3,atom4,atom5)) + + if not flags[m]: + v1 = params[5:] + bitorsionparams.append(v1) + flags[m] = len(bitorsionparams) + bitorsiontype.append(flags[m]) + +# replace original bitorsionlist with reduced version + +bitorsionlist = bitorsionlist_reduced + +# ---------------------------------------- +# assign each atom to a Tinker group +# NOTE: doing this inside LAMMPS now +# comment out unless need to test +# ---------------------------------------- + +# ngroup = # of groups +# tgroup[i] = groupID (1 to Ngroups) for each atom +# use stack to store IDs of atoms to recursively loop over +# do not set tgroup for an atom if already assigned to a group +# only add atoms J (bonded to M) to stack +# whose Tinker type is in polgroup list for atom M's Tinker type + +#natoms = xyz.natoms +#id = xyz.id +#bonds = xyz.bonds +#ttype = xyz.type +#polgroup = prm.polgroup + +#tgroup = natoms*[0] +#ngroups = 0 + +#for i in id: +# if tgroup[i-1] > 0: continue +# +# ngroups += 1 +# groupID = ngroups +# stack = [i] +# while stack: +# m = stack.pop() +# if tgroup[m-1] > 0: continue +# tgroup[m-1] = groupID +# for j in bonds[m-1]: +# if tgroup[j-1] > 0: continue +# if ttype[j-1] not in polgroup[ttype[m-1]-1]: continue +# stack.append(j) + +# ---------------------------------------- +# write LAMMPS data file via Pizza.py data class +# ---------------------------------------- + +d = data() + +natoms = xyz.natoms +id = xyz.id +x = xyz.x +y = xyz.y +z = xyz.z +ttype = xyz.type + +nbonds = len(blist) +nangles = len(alist) +ndihedrals = len(dlist) +nimpropers = len(olist) +npitorsions = len(pitorsionlist) +nbitorsions = len(bitorsionlist) + +# data file header values + +d.title = "LAMMPS data file created from Tinker %s and %s files\n" % \ + (xyzfile,prmfile) + +d.headers["atoms"] = natoms +d.headers["atom types"] = ntypes + +d.headers["xlo xhi"] = (boxlo[0],boxhi[0]) +d.headers["ylo yhi"] = (boxlo[1],boxhi[1]) +d.headers["zlo zhi"] = (boxlo[2],boxhi[2]) + +# data file sections + +lines = [] +for i,mass in enumerate(lmpmass): + line = "%d %s" % (i+1,mass) + lines.append(line+'\n') +d.sections["Masses"] = lines + +lines = [] +for i,one in enumerate(id): + line = "%d %d %d %g %s %s %s" % (one,molID[i],lmptype[i],0.0,x[i],y[i],z[i]) + lines.append(line+'\n') +d.sections["Atoms"] = lines + +lines = [] +for i,one in enumerate(ttype): + # comment out inclusion of Tinker group, now done by LAMMPS + #line = "%d %d %d" % (id[i],one,tgroup[i]) + line = "%d %d" % (id[i],one) + lines.append(line+'\n') +d.sections["Tinker Types"] = lines + +if nbonds: + d.headers["bonds"] = len(blist) + d.headers["bond types"] = len(bparams) + + lines = [] + for i,one in enumerate(bparams): + strone = [str(single) for single in one] + line = "%d %s" % (i+1,' '.join(strone)) + lines.append(line+'\n') + d.sections["Bond Coeffs"] = lines + + lines = [] + for i,one in enumerate(blist): + line = "%d %d %d %d" % (i+1,btype[i],one[0],one[1]) + lines.append(line+'\n') + d.sections["Bonds"] = lines + +if nangles: + d.headers["angles"] = len(alist) + d.headers["angle types"] = len(aparams) + + lines = [] + for i,one in enumerate(aparams): + strone = [str(single) for single in one] + line = "%d %s" % (i+1,' '.join(strone)) + lines.append(line+'\n') + d.sections["Angle Coeffs"] = lines + + lines = [] + for i,one in enumerate(baparams): + strone = [str(single) for single in one] + line = "%d %s" % (i+1,' '.join(strone)) + lines.append(line+'\n') + d.sections["BondAngle Coeffs"] = lines + + lines = [] + for i,one in enumerate(ubparams): + strone = [str(single) for single in one] + line = "%d %s" % (i+1,' '.join(strone)) + lines.append(line+'\n') + d.sections["UreyBradley Coeffs"] = lines + + lines = [] + for i,one in enumerate(alist): + line = "%d %d %d %d %d" % (i+1,atype[i],one[0],one[1],one[2]) + lines.append(line+'\n') + d.sections["Angles"] = lines + +if ndihedrals: + d.headers["dihedrals"] = len(dlist) + d.headers["dihedral types"] = len(dparams) + + lines = [] + for i,one in enumerate(dparams): + strone = [str(single) for single in one] + line = "%d %s" % (i+1,' '.join(strone)) + lines.append(line+'\n') + d.sections["Dihedral Coeffs"] = lines + + lines = [] + for i,one in enumerate(dlist): + line = "%d %d %d %d %d %d" % (i+1,dtype[i],one[0],one[1],one[2],one[3]) + lines.append(line+'\n') + d.sections["Dihedrals"] = lines + +if nimpropers: + d.headers["impropers"] = len(olist) + d.headers["improper types"] = len(oparams) + + lines = [] + for i,one in enumerate(oparams): + strone = [str(single) for single in one] + line = "%d %s" % (i+1,' '.join(strone)) + lines.append(line+'\n') + d.sections["Improper Coeffs"] = lines + + lines = [] + for i,one in enumerate(olist): + line = "%d %d %d %d %d %d" % (i+1,otype[i],one[0],one[1],one[2],one[3]) + lines.append(line+'\n') + d.sections["Impropers"] = lines + +if npitorsions: + d.headers["pitorsions"] = len(pitorsionlist) + d.headers["pitorsion types"] = len(pitorsionparams) + + lines = [] + for i,one in enumerate(pitorsionparams): + strone = [str(single) for single in one] + line = "%d %s" % (i+1,' '.join(strone)) + lines.append(line+'\n') + d.sections["PiTorsion Coeffs"] = lines + + lines = [] + for i,one in enumerate(pitorsionlist): + line = "%d %d %d %d %d %d %d %d" % \ + (i+1,pitorsiontype[i],one[0],one[1],one[2],one[3],one[4],one[5]) + lines.append(line+'\n') + d.sections["PiTorsions"] = lines + +if nbitorsions: + d.headers["bitorsions"] = len(bitorsionlist) + + # if there are bitorsions, then -bitorsion file must have been specified + + if not bitorsionfile: + error("no -bitorsion file was specified, but %d bitorsions exist" % \ + nbitorsions) + + fp = open(bitorsionfile,'w') + print("Tinker BiTorsion parameter file for fix bitorsion\n", file=fp) + print("%d bitorsion types" % len(bitorsionparams), file=fp) + itype = 0 + for nx,ny,array in bitorsionparams: + itype += 1 + print(file=fp) + print(itype,nx,ny, file=fp) + for ix in range(nx): + for iy in range(ny): + xgrid,ygrid,value = array[ix][iy] + print(" ",xgrid,ygrid,value, file=fp) + fp.close() + + lines = [] + for i,one in enumerate(bitorsionlist): + line = "%d %d %d %d %d %d %d" % \ + (i+1,bitorsiontype[i],one[0],one[1],one[2],one[3],one[4]) + lines.append(line+'\n') + d.sections["BiTorsions"] = lines + +d.write(datafile) + +# print stats to screen + +print("Natoms =",natoms) +print("Ntypes =",ntypes) +print("Tinker XYZ types =",len(tink2lmp)) +print("Tinker PRM types =",prm.ntypes) +#print "Tinker groups =",ngroups +print("Nmol =",nmol) +print("Nbonds =",nbonds) +print("Nangles =",nangles) +print("Ndihedrals =",ndihedrals) +print("Nimpropers =",nimpropers) +print("Npitorsions =",npitorsions) +print("Nbitorsions =",nbitorsions) +print("Nbondtypes =",len(bparams)) +print("Nangletypes =",len(aparams)) +print("Ndihedraltypes =",len(dparams)) +print("Nimpropertypes =",len(oparams)) +print("Npitorsiontypes =",len(pitorsionparams)) +print("Nbitorsiontypes =",len(bitorsionparams)) diff --git a/tools/valgrind/OpenMP.supp b/tools/valgrind/OpenMP.supp index e1870e668c..15531fa8ec 100644 --- a/tools/valgrind/OpenMP.supp +++ b/tools/valgrind/OpenMP.supp @@ -134,3 +134,31 @@ fun:GOMP_parallel obj:* } +{ + OpnMP_open_part1 + Memcheck:Leak + match-leak-kinds: reachable + fun:malloc + ... + fun:openaux + ... + fun:dl_open_worker_begin + ... + fun:dl_open_worker + ... + fun:_dl_open +} +{ + OpnMP_open_part2 + Memcheck:Leak + match-leak-kinds: reachable + fun:calloc + ... + fun:openaux + ... + fun:dl_open_worker_begin + ... + fun:dl_open_worker + ... + fun:_dl_open +} diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt index a015ee6856..28b3e1c1cd 100644 --- a/unittest/CMakeLists.txt +++ b/unittest/CMakeLists.txt @@ -5,8 +5,8 @@ ######################################## # download and build googletest framework message(STATUS "Downloading and building googletest framework") -set(GTEST_URL "https://github.com/google/googletest/archive/8d51dc50eb7e7698427fed81b85edad0e032112e.tar.gz" CACHE STRING "URL of googletest source") -set(GTEST_MD5 "bc33f94adf48a91051dc195077f7e8dc" CACHE STRING "MD5 sum for googletest source") +set(GTEST_URL "https://github.com/google/googletest/archive/release-1.12.1.tar.gz" CACHE STRING "URL of googletest source") +set(GTEST_MD5 "e82199374acdfda3f425331028eb4e2a" CACHE STRING "MD5 sum for googletest source") mark_as_advanced(GTEST_URL) mark_as_advanced(GTEST_MD5) set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) diff --git a/unittest/c-library/test_library_commands.cpp b/unittest/c-library/test_library_commands.cpp index f1cc51d8d9..d4e326cd36 100644 --- a/unittest/c-library/test_library_commands.cpp +++ b/unittest/c-library/test_library_commands.cpp @@ -104,7 +104,7 @@ TEST_F(LibraryCommands, from_list) TEST_F(LibraryCommands, from_string) { - std::string cmds(""); + std::string cmds; for (auto &inp : demo_input) { cmds += inp; diff --git a/unittest/commands/test_variables.cpp b/unittest/commands/test_variables.cpp index 0533de7329..29b985927d 100644 --- a/unittest/commands/test_variables.cpp +++ b/unittest/commands/test_variables.cpp @@ -389,6 +389,8 @@ TEST_F(VariableTest, IfCommand) { BEGIN_HIDE_OUTPUT(); command("variable one index 1"); + command("variable two string xx"); + command("variable three equal 1"); END_HIDE_OUTPUT(); BEGIN_CAPTURE_OUTPUT(); @@ -401,11 +403,36 @@ TEST_F(VariableTest, IfCommand) text = END_CAPTURE_OUTPUT(); ASSERT_THAT(text, ContainsRegex(".*nope\?.*")); + BEGIN_CAPTURE_OUTPUT(); + command("if 0<1 then 'print \"bingo!\"'"); + text = END_CAPTURE_OUTPUT(); + ASSERT_THAT(text, ContainsRegex(".*bingo!.*")); + + BEGIN_CAPTURE_OUTPUT(); + command("if 2<1 then 'print \"bingo!\"' else 'print \"nope?\"'"); + text = END_CAPTURE_OUTPUT(); + ASSERT_THAT(text, ContainsRegex(".*nope\?.*")); + BEGIN_CAPTURE_OUTPUT(); command("if (1<=0) then 'print \"bingo!\"' else 'print \"nope?\"'"); text = END_CAPTURE_OUTPUT(); ASSERT_THAT(text, ContainsRegex(".*nope\?.*")); + BEGIN_CAPTURE_OUTPUT(); + command("if (0<=0) then 'print \"bingo!\"' else 'print \"nope?\"'"); + text = END_CAPTURE_OUTPUT(); + ASSERT_THAT(text, ContainsRegex(".*bingo!.*")); + + BEGIN_CAPTURE_OUTPUT(); + command("if (0>=1) then 'print \"bingo!\"' else 'print \"nope?\"'"); + text = END_CAPTURE_OUTPUT(); + ASSERT_THAT(text, ContainsRegex(".*nope\?.*")); + + BEGIN_CAPTURE_OUTPUT(); + command("if (1>=1) then 'print \"bingo!\"' else 'print \"nope?\"'"); + text = END_CAPTURE_OUTPUT(); + ASSERT_THAT(text, ContainsRegex(".*bingo!.*")); + BEGIN_CAPTURE_OUTPUT(); command("if (-1.0e-1<0.0E+0)|^(1<0) then 'print \"bingo!\"'"); text = END_CAPTURE_OUTPUT(); @@ -444,7 +471,11 @@ TEST_F(VariableTest, IfCommand) BEGIN_CAPTURE_OUTPUT(); command("if x!=x|^a!=b then 'print \"bingo!\"'"); text = END_CAPTURE_OUTPUT(); + ASSERT_THAT(text, ContainsRegex(".*bingo!.*")); + BEGIN_CAPTURE_OUTPUT(); + command("if (${three}) then 'print \"bingo!\"'"); + text = END_CAPTURE_OUTPUT(); ASSERT_THAT(text, ContainsRegex(".*bingo!.*")); TEST_FAILURE(".*ERROR: Invalid Boolean syntax in if command.*", @@ -455,8 +486,16 @@ TEST_F(VariableTest, IfCommand) command("if 1a then 'print \"bingo!\"'");); TEST_FAILURE(".*ERROR: Invalid Boolean syntax in if command.*", command("if 1=<2 then 'print \"bingo!\"'");); - TEST_FAILURE(".*ERROR: Invalid Boolean syntax in if command.*", + TEST_FAILURE(".*ERROR: If command boolean is comparing string to number.*", command("if 1!=a then 'print \"bingo!\"'");); + TEST_FAILURE(".*ERROR: If command boolean can only operate on numbers.*", + command("if ab then 'print \"bingo!\"'");); + TEST_FAILURE(".*ERROR: If command boolean can only operate on numbers.*", + command("if a<=b then 'print \"bingo!\"'");); + TEST_FAILURE(".*ERROR: If command boolean can only operate on numbers.*", + command("if a<=b then 'print \"bingo!\"'");); TEST_FAILURE(".*ERROR: Invalid Boolean syntax in if command.*", command("if 1&<2 then 'print \"bingo!\"'");); TEST_FAILURE(".*ERROR: Invalid Boolean syntax in if command.*", @@ -465,8 +504,14 @@ TEST_F(VariableTest, IfCommand) command("if (1)( then 'print \"bingo!\"'");); TEST_FAILURE(".*ERROR: Invalid Boolean syntax in if command.*", command("if (1)1 then 'print \"bingo!\"'");); - TEST_FAILURE(".*ERROR: Invalid Boolean syntax in if command.*", + TEST_FAILURE(".*ERROR: If command boolean is comparing string to number.*", command("if (v_one==1.0)&&(2>=1) then 'print \"bingo!\"'");); + TEST_FAILURE(".*ERROR: If command boolean cannot be single string.*", + command("if (something) then 'print \"bingo!\"'");); + TEST_FAILURE(".*ERROR: If command boolean cannot be single string.*", + command("if (v_one) then 'print \"bingo!\"'");); + TEST_FAILURE(".*ERROR: If command boolean cannot be single string.*", + command("if (${two}) then 'print \"bingo!\"'");); } TEST_F(VariableTest, NextCommand) diff --git a/unittest/cplusplus/test_lammps_class.cpp b/unittest/cplusplus/test_lammps_class.cpp index d25bf43656..64ce1eefb1 100644 --- a/unittest/cplusplus/test_lammps_class.cpp +++ b/unittest/cplusplus/test_lammps_class.cpp @@ -83,8 +83,8 @@ TEST_F(LAMMPS_plain, InitMembers) EXPECT_STREQ(lmp->exename, "LAMMPS_test"); EXPECT_EQ(lmp->num_package, 0); - EXPECT_EQ(lmp->clientserver, 0); + EXPECT_EQ(lmp->mdicomm, nullptr); EXPECT_EQ(lmp->kokkos, nullptr); EXPECT_EQ(lmp->atomKK, nullptr); EXPECT_EQ(lmp->memoryKK, nullptr); @@ -218,8 +218,8 @@ TEST_F(LAMMPS_omp, InitMembers) EXPECT_STREQ(lmp->exename, "LAMMPS_test"); EXPECT_EQ(lmp->num_package, 1); - EXPECT_EQ(lmp->clientserver, 0); + EXPECT_EQ(lmp->mdicomm, nullptr); EXPECT_EQ(lmp->kokkos, nullptr); EXPECT_EQ(lmp->atomKK, nullptr); EXPECT_EQ(lmp->memoryKK, nullptr); @@ -302,12 +302,12 @@ TEST_F(LAMMPS_kokkos, InitMembers) EXPECT_STREQ(lmp->exename, "LAMMPS_test"); EXPECT_EQ(lmp->num_package, 0); - EXPECT_EQ(lmp->clientserver, 0); if (Info::has_accelerator_feature("KOKKOS", "api", "openmp")) EXPECT_EQ(lmp->comm->nthreads, 2); else EXPECT_EQ(lmp->comm->nthreads, 1); + EXPECT_EQ(lmp->mdicomm, nullptr); EXPECT_NE(lmp->kokkos, nullptr); EXPECT_NE(lmp->atomKK, nullptr); EXPECT_NE(lmp->memoryKK, nullptr); diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index a617ec1783..82a4731492 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -32,8 +32,8 @@ #include "input.h" #include "lammps.h" #include "modify.h" -#include "universe.h" #include "platform.h" +#include "universe.h" #include #include @@ -90,7 +90,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new // utility lambdas to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; auto parse_input_script = [&](const std::string &filename) { lmp->input->file(filename.c_str()); @@ -133,7 +133,7 @@ void run_lammps(LAMMPS *lmp) { // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("fix 1 all nve"); @@ -148,7 +148,7 @@ void restart_lammps(LAMMPS *lmp, const TestConfig &cfg) { // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("clear"); @@ -175,7 +175,7 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg) { // utility lambdas to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; auto parse_input_script = [&](const std::string &filename) { lmp->input->file(filename.c_str()); @@ -226,7 +226,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) } const int natoms = lmp->atom->natoms; - std::string block(""); + std::string block; YamlWriter writer(outfile); @@ -285,7 +285,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // run_stress stress = lmp->force->angle->virial; block = fmt::format("{:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e}", stress[0], - stress[1], stress[2], stress[3], stress[4], stress[5]); + stress[1], stress[2], stress[3], stress[4], stress[5]); writer.emit_block("run_stress", block); block.clear(); @@ -297,10 +297,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) writer.emit_block("run_forces", block); cleanup_lammps(lmp, config); - return; } - TEST(AngleStyle, plain) { if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); @@ -335,7 +333,7 @@ TEST(AngleStyle, plain) double epsilon = test_config.epsilon; ErrorStats stats; - auto angle = lmp->force->angle; + auto angle = lmp->force->angle; EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("init_stress (newton on)", angle->virial, test_config.init_stress, epsilon); @@ -365,10 +363,11 @@ TEST(AngleStyle, plain) // skip over these tests if newton bond is forced to be on if (lmp->force->newton_bond == 0) { - angle = lmp->force->angle; + angle = lmp->force->angle; EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton off)", angle->virial, test_config.init_stress, 2*epsilon); + EXPECT_STRESS("init_stress (newton off)", angle->virial, test_config.init_stress, + 2 * epsilon); stats.reset(); EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); @@ -393,7 +392,7 @@ TEST(AngleStyle, plain) restart_lammps(lmp, test_config); if (!verbose) ::testing::internal::GetCapturedStdout(); - angle = lmp->force->angle; + angle = lmp->force->angle; EXPECT_FORCES("restart_forces", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("restart_stress", angle->virial, test_config.init_stress, epsilon); @@ -405,7 +404,7 @@ TEST(AngleStyle, plain) data_lammps(lmp, test_config); if (!verbose) ::testing::internal::GetCapturedStdout(); - angle = lmp->force->angle; + angle = lmp->force->angle; EXPECT_FORCES("data_forces", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("data_stress", angle->virial, test_config.init_stress, epsilon); @@ -455,7 +454,7 @@ TEST(AngleStyle, omp) double epsilon = 5.0 * test_config.epsilon; ErrorStats stats; - auto angle = lmp->force->angle; + auto angle = lmp->force->angle; EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("init_stress (newton on)", angle->virial, test_config.init_stress, 10 * epsilon); @@ -488,10 +487,11 @@ TEST(AngleStyle, omp) // skip over these tests if newton bond is forced to be on if (lmp->force->newton_bond == 0) { - angle = lmp->force->angle; + angle = lmp->force->angle; EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton off)", angle->virial, test_config.init_stress, 10 * epsilon); + EXPECT_STRESS("init_stress (newton off)", angle->virial, test_config.init_stress, + 10 * epsilon); stats.reset(); EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon); @@ -502,7 +502,8 @@ TEST(AngleStyle, omp) if (!verbose) ::testing::internal::GetCapturedStdout(); EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon); - EXPECT_STRESS("run_stress (newton off)", angle->virial, test_config.run_stress, 10 * epsilon); + EXPECT_STRESS("run_stress (newton off)", angle->virial, test_config.run_stress, + 10 * epsilon); stats.reset(); id = lmp->modify->find_compute("sum"); @@ -556,7 +557,7 @@ TEST(AngleStyle, single) // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; // now start over diff --git a/unittest/force-styles/test_bond_style.cpp b/unittest/force-styles/test_bond_style.cpp index a851f4341f..d0d8f26b6e 100644 --- a/unittest/force-styles/test_bond_style.cpp +++ b/unittest/force-styles/test_bond_style.cpp @@ -32,8 +32,8 @@ #include "input.h" #include "lammps.h" #include "modify.h" -#include "universe.h" #include "platform.h" +#include "universe.h" #include #include @@ -90,7 +90,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new // utility lambdas to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; auto parse_input_script = [&](const std::string &filename) { lmp->input->file(filename.c_str()); @@ -133,7 +133,7 @@ void run_lammps(LAMMPS *lmp) { // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("fix 1 all nve"); @@ -148,7 +148,7 @@ void restart_lammps(LAMMPS *lmp, const TestConfig &cfg) { // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("clear"); @@ -175,7 +175,7 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg) { // utility lambdas to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; auto parse_input_script = [&](const std::string &filename) { lmp->input->file(filename.c_str()); @@ -226,7 +226,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) } const int natoms = lmp->atom->natoms; - std::string block(""); + std::string block; YamlWriter writer(outfile); @@ -285,7 +285,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // run_stress stress = lmp->force->bond->virial; block = fmt::format("{:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e}", stress[0], - stress[1], stress[2], stress[3], stress[4], stress[5]); + stress[1], stress[2], stress[3], stress[4], stress[5]); writer.emit_block("run_stress", block); block.clear(); @@ -297,7 +297,6 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) writer.emit_block("run_forces", block); cleanup_lammps(lmp, config); - return; } TEST(BondStyle, plain) @@ -334,7 +333,7 @@ TEST(BondStyle, plain) double epsilon = test_config.epsilon; ErrorStats stats; - auto bond = lmp->force->bond; + auto bond = lmp->force->bond; EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("init_stress (newton on)", bond->virial, test_config.init_stress, epsilon); @@ -364,10 +363,11 @@ TEST(BondStyle, plain) // skip over these tests if newton bond is forced to be on if (lmp->force->newton_bond == 0) { - bond = lmp->force->bond; + bond = lmp->force->bond; EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton off)", bond->virial, test_config.init_stress, 2 * epsilon); + EXPECT_STRESS("init_stress (newton off)", bond->virial, test_config.init_stress, + 2 * epsilon); stats.reset(); EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon); @@ -392,7 +392,7 @@ TEST(BondStyle, plain) restart_lammps(lmp, test_config); if (!verbose) ::testing::internal::GetCapturedStdout(); - bond = lmp->force->bond; + bond = lmp->force->bond; EXPECT_FORCES("restart_forces", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("restart_stress", bond->virial, test_config.init_stress, epsilon); @@ -405,7 +405,7 @@ TEST(BondStyle, plain) data_lammps(lmp, test_config); if (!verbose) ::testing::internal::GetCapturedStdout(); - bond = lmp->force->bond; + bond = lmp->force->bond; EXPECT_FORCES("data_forces", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("data_stress", bond->virial, test_config.init_stress, epsilon); @@ -456,7 +456,7 @@ TEST(BondStyle, omp) double epsilon = 5.0 * test_config.epsilon; ErrorStats stats; - auto bond = lmp->force->bond; + auto bond = lmp->force->bond; EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); EXPECT_STRESS("init_stress (newton on)", bond->virial, test_config.init_stress, 10 * epsilon); @@ -489,10 +489,11 @@ TEST(BondStyle, omp) // skip over these tests if newton bond is forced to be on if (lmp->force->newton_bond == 0) { - bond = lmp->force->bond; + bond = lmp->force->bond; EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton off)", bond->virial, test_config.init_stress, 10 * epsilon); + EXPECT_STRESS("init_stress (newton off)", bond->virial, test_config.init_stress, + 10 * epsilon); stats.reset(); EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon); @@ -503,7 +504,8 @@ TEST(BondStyle, omp) if (!verbose) ::testing::internal::GetCapturedStdout(); EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon); - EXPECT_STRESS("run_stress (newton off)", bond->virial, test_config.run_stress, 10 * epsilon); + EXPECT_STRESS("run_stress (newton off)", bond->virial, test_config.run_stress, + 10 * epsilon); stats.reset(); id = lmp->modify->find_compute("sum"); @@ -557,7 +559,7 @@ TEST(BondStyle, single) // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; // now start over diff --git a/unittest/force-styles/test_config.h b/unittest/force-styles/test_config.h index ef4d911b60..18b4b4f0b2 100644 --- a/unittest/force-styles/test_config.h +++ b/unittest/force-styles/test_config.h @@ -15,8 +15,8 @@ #define TEST_CONFIG_H #include -#include #include +#include #include #include @@ -96,23 +96,21 @@ public: restart_vel.clear(); global_vector.clear(); } - virtual ~TestConfig(){}; + TestConfig(const TestConfig &) = delete; + TestConfig &operator=(const TestConfig &) = delete; std::string tags_line() const { - if(tags.size() > 0) { - std::stringstream line; - line << tags[0]; - for(size_t i = 1; i < tags.size(); i++) { - line << ", " << tags[i]; - } - return line.str(); - } - return "generated"; + if (tags.size() > 0) { + std::stringstream line; + line << tags[0]; + for (size_t i = 1; i < tags.size(); i++) { + line << ", " << tags[i]; + } + return line.str(); + } + return "generated"; } - -private: - TestConfig(const TestConfig &){}; }; #endif diff --git a/unittest/force-styles/test_config_reader.cpp b/unittest/force-styles/test_config_reader.cpp index d152b4fcf4..d920128862 100644 --- a/unittest/force-styles/test_config_reader.cpp +++ b/unittest/force-styles/test_config_reader.cpp @@ -29,7 +29,7 @@ using LAMMPS_NS::utils::split_words; using LAMMPS_NS::utils::trim; -TestConfigReader::TestConfigReader(TestConfig &config) : YamlReader(), config(config) +TestConfigReader::TestConfigReader(TestConfig &config) : config(config) { consumers["lammps_version"] = &TestConfigReader::lammps_version; consumers["tags"] = &TestConfigReader::tags; diff --git a/unittest/force-styles/test_config_reader.h b/unittest/force-styles/test_config_reader.h index 1f0de8df0a..23da817622 100644 --- a/unittest/force-styles/test_config_reader.h +++ b/unittest/force-styles/test_config_reader.h @@ -22,6 +22,8 @@ class TestConfigReader : public YamlReader { public: TestConfigReader(TestConfig &config); + TestConfigReader() = delete; + const TestConfigReader & operator=(TestConfig &) = delete; void skip_tests(const yaml_event_t &event); void prerequisites(const yaml_event_t &event); diff --git a/unittest/force-styles/test_dihedral_style.cpp b/unittest/force-styles/test_dihedral_style.cpp index 0156e8e021..3f3e1248e8 100644 --- a/unittest/force-styles/test_dihedral_style.cpp +++ b/unittest/force-styles/test_dihedral_style.cpp @@ -32,8 +32,8 @@ #include "input.h" #include "lammps.h" #include "modify.h" -#include "universe.h" #include "platform.h" +#include "universe.h" #include #include @@ -90,7 +90,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new // utility lambdas to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; auto parse_input_script = [&](const std::string &filename) { lmp->input->file(filename.c_str()); @@ -133,7 +133,7 @@ void run_lammps(LAMMPS *lmp) { // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("fix 1 all nve"); @@ -148,7 +148,7 @@ void restart_lammps(LAMMPS *lmp, const TestConfig &cfg) { // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("clear"); @@ -175,7 +175,7 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg) { // utility lambdas to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; auto parse_input_script = [&](const std::string &filename) { lmp->input->file(filename.c_str()); @@ -235,7 +235,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) } const int natoms = lmp->atom->natoms; - std::string block(""); + std::string block; YamlWriter writer(outfile); @@ -288,7 +288,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // run_stress stress = lmp->force->dihedral->virial; block = fmt::format("{:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e}", stress[0], - stress[1], stress[2], stress[3], stress[4], stress[5]); + stress[1], stress[2], stress[3], stress[4], stress[5]); writer.emit_block("run_stress", block); block.clear(); @@ -300,7 +300,6 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) writer.emit_block("run_forces", block); cleanup_lammps(lmp, config); - return; } TEST(DihedralStyle, plain) @@ -370,7 +369,8 @@ TEST(DihedralStyle, plain) dihedral = lmp->force->dihedral; EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton off)", dihedral->virial, test_config.init_stress, epsilon); + EXPECT_STRESS("init_stress (newton off)", dihedral->virial, test_config.init_stress, + epsilon); stats.reset(); EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.init_energy, epsilon); @@ -462,7 +462,8 @@ TEST(DihedralStyle, omp) auto dihedral = lmp->force->dihedral; EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton on)", dihedral->virial, test_config.init_stress, 10 * epsilon); + EXPECT_STRESS("init_stress (newton on)", dihedral->virial, test_config.init_stress, + 10 * epsilon); stats.reset(); EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.init_energy, epsilon); @@ -495,7 +496,8 @@ TEST(DihedralStyle, omp) dihedral = lmp->force->dihedral; EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton off)", dihedral->virial, test_config.init_stress, 10 * epsilon); + EXPECT_STRESS("init_stress (newton off)", dihedral->virial, test_config.init_stress, + 10 * epsilon); stats.reset(); EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.init_energy, epsilon); @@ -506,7 +508,8 @@ TEST(DihedralStyle, omp) if (!verbose) ::testing::internal::GetCapturedStdout(); EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon); - EXPECT_STRESS("run_stress (newton off)", dihedral->virial, test_config.run_stress, 10 * epsilon); + EXPECT_STRESS("run_stress (newton off)", dihedral->virial, test_config.run_stress, + 10 * epsilon); stats.reset(); id = lmp->modify->find_compute("sum"); diff --git a/unittest/force-styles/test_fix_timestep.cpp b/unittest/force-styles/test_fix_timestep.cpp index fcf6be39d3..981bc46eef 100644 --- a/unittest/force-styles/test_fix_timestep.cpp +++ b/unittest/force-styles/test_fix_timestep.cpp @@ -34,10 +34,10 @@ #include "lammps.h" #include "modify.h" #include "pair.h" +#include "platform.h" #include "universe.h" #include "utils.h" #include "variable.h" -#include "platform.h" #include #include @@ -92,7 +92,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool use // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("variable input_dir index " + INPUT_FOLDER); @@ -143,7 +143,7 @@ void restart_lammps(LAMMPS *lmp, const TestConfig &cfg, bool use_rmass, bool use { // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("clear"); @@ -184,7 +184,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) } const int natoms = lmp->atom->natoms; - std::string block(""); + std::string block; YamlWriter writer(outfile); // write yaml header @@ -203,8 +203,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // run_stress, if enabled if (fix->thermo_virial) { auto stress = fix->virial; - block = fmt::format("{:23.16e} {:23.16e} {:23.16e} " - "{:23.16e} {:23.16e} {:23.16e}", + block = fmt::format("{:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e}", stress[0], stress[1], stress[2], stress[3], stress[4], stress[5]); writer.emit_block("run_stress", block); } @@ -243,7 +242,6 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) } writer.emit_block("run_vel", block); cleanup_lammps(lmp, config); - return; } TEST(FixTimestep, plain) @@ -293,7 +291,8 @@ TEST(FixTimestep, plain) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (normal run, verlet)", fix->virial, test_config.run_stress, epsilon); + EXPECT_STRESS("run_stress (normal run, verlet)", fix->virial, test_config.run_stress, + epsilon); } stats.reset(); @@ -342,7 +341,8 @@ TEST(FixTimestep, plain) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (restart, verlet)", fix->virial, test_config.run_stress, epsilon); + EXPECT_STRESS("run_stress (restart, verlet)", fix->virial, test_config.run_stress, + epsilon); } stats.reset(); @@ -380,7 +380,8 @@ TEST(FixTimestep, plain) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (rmass, verlet)", fix->virial, test_config.run_stress, epsilon); + EXPECT_STRESS("run_stress (rmass, verlet)", fix->virial, test_config.run_stress, + epsilon); } stats.reset(); @@ -432,7 +433,8 @@ TEST(FixTimestep, plain) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (normal run, respa)", fix->virial, test_config.run_stress, 1000 * epsilon); + EXPECT_STRESS("run_stress (normal run, respa)", fix->virial, test_config.run_stress, + 1000 * epsilon); } stats.reset(); @@ -469,7 +471,8 @@ TEST(FixTimestep, plain) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (restart, respa)", fix->virial, test_config.run_stress, 1000 * epsilon); + EXPECT_STRESS("run_stress (restart, respa)", fix->virial, test_config.run_stress, + 1000 * epsilon); } stats.reset(); @@ -507,7 +510,8 @@ TEST(FixTimestep, plain) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (rmass, respa)", fix->virial, test_config.run_stress, 1000 * epsilon); + EXPECT_STRESS("run_stress (rmass, respa)", fix->virial, test_config.run_stress, + 1000 * epsilon); } stats.reset(); @@ -587,7 +591,8 @@ TEST(FixTimestep, omp) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (normal run, verlet)", fix->virial, test_config.run_stress, epsilon); + EXPECT_STRESS("run_stress (normal run, verlet)", fix->virial, test_config.run_stress, + epsilon); } stats.reset(); @@ -636,7 +641,8 @@ TEST(FixTimestep, omp) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (restart, verlet)", fix->virial, test_config.run_stress, epsilon); + EXPECT_STRESS("run_stress (restart, verlet)", fix->virial, test_config.run_stress, + epsilon); } stats.reset(); @@ -674,7 +680,8 @@ TEST(FixTimestep, omp) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (rmass, verlet)", fix->virial, test_config.run_stress, epsilon); + EXPECT_STRESS("run_stress (rmass, verlet)", fix->virial, test_config.run_stress, + epsilon); } stats.reset(); @@ -725,7 +732,8 @@ TEST(FixTimestep, omp) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (normal run, respa)", fix->virial, test_config.run_stress, 1000 * epsilon); + EXPECT_STRESS("run_stress (normal run, respa)", fix->virial, test_config.run_stress, + 1000 * epsilon); } stats.reset(); @@ -762,7 +770,8 @@ TEST(FixTimestep, omp) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (restart, respa)", fix->virial, test_config.run_stress, 1000 * epsilon); + EXPECT_STRESS("run_stress (restart, respa)", fix->virial, test_config.run_stress, + 1000 * epsilon); } stats.reset(); @@ -800,7 +809,8 @@ TEST(FixTimestep, omp) } else { Fix *fix = lmp->modify->fix[ifix]; if (fix->thermo_virial) { - EXPECT_STRESS("run_stress (rmass, respa)", fix->virial, test_config.run_stress, 1000 * epsilon); + EXPECT_STRESS("run_stress (rmass, respa)", fix->virial, test_config.run_stress, + 1000 * epsilon); } stats.reset(); diff --git a/unittest/force-styles/test_improper_style.cpp b/unittest/force-styles/test_improper_style.cpp index 49b7d22cad..3d2719f7d0 100644 --- a/unittest/force-styles/test_improper_style.cpp +++ b/unittest/force-styles/test_improper_style.cpp @@ -32,8 +32,8 @@ #include "input.h" #include "lammps.h" #include "modify.h" -#include "universe.h" #include "platform.h" +#include "universe.h" #include #include @@ -90,7 +90,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new // utility lambdas to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; auto parse_input_script = [&](const std::string &filename) { lmp->input->file(filename.c_str()); @@ -133,7 +133,7 @@ void run_lammps(LAMMPS *lmp) { // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("fix 1 all nve"); @@ -148,7 +148,7 @@ void restart_lammps(LAMMPS *lmp, const TestConfig &cfg) { // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("clear"); @@ -175,7 +175,7 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg) { // utility lambdas to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; auto parse_input_script = [&](const std::string &filename) { lmp->input->file(filename.c_str()); @@ -226,7 +226,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) } const int natoms = lmp->atom->natoms; - std::string block(""); + std::string block; YamlWriter writer(outfile); @@ -279,7 +279,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // run_stress stress = lmp->force->improper->virial; block = fmt::format("{:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e}", stress[0], - stress[1], stress[2], stress[3], stress[4], stress[5]); + stress[1], stress[2], stress[3], stress[4], stress[5]); writer.emit_block("run_stress", block); block.clear(); @@ -291,7 +291,6 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) writer.emit_block("run_forces", block); cleanup_lammps(lmp, config); - return; } TEST(ImproperStyle, plain) @@ -361,7 +360,8 @@ TEST(ImproperStyle, plain) improper = lmp->force->improper; EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton off)", improper->virial, test_config.init_stress, 2 * epsilon); + EXPECT_STRESS("init_stress (newton off)", improper->virial, test_config.init_stress, + 2 * epsilon); stats.reset(); EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.init_energy, epsilon); @@ -453,7 +453,8 @@ TEST(ImproperStyle, omp) auto improper = lmp->force->improper; EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton on)", improper->virial, test_config.init_stress, 10 * epsilon); + EXPECT_STRESS("init_stress (newton on)", improper->virial, test_config.init_stress, + 10 * epsilon); stats.reset(); EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.init_energy, epsilon); @@ -486,7 +487,8 @@ TEST(ImproperStyle, omp) improper = lmp->force->improper; EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon); - EXPECT_STRESS("init_stress (newton off)", improper->virial, test_config.init_stress, 10 * epsilon); + EXPECT_STRESS("init_stress (newton off)", improper->virial, test_config.init_stress, + 10 * epsilon); stats.reset(); EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.init_energy, epsilon); @@ -497,7 +499,8 @@ TEST(ImproperStyle, omp) if (!verbose) ::testing::internal::GetCapturedStdout(); EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon); - EXPECT_STRESS("run_stress (newton off)", improper->virial, test_config.run_stress, 10 * epsilon); + EXPECT_STRESS("run_stress (newton off)", improper->virial, test_config.run_stress, + 10 * epsilon); stats.reset(); id = lmp->modify->find_compute("sum"); diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index 0c8dc16c77..e56a5bba1c 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -91,7 +91,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new // utility lambdas to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; auto parse_input_script = [&](const std::string &filename) { lmp->input->file(filename.c_str()); @@ -142,7 +142,7 @@ void run_lammps(LAMMPS *lmp) { // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("fix 1 all nve"); @@ -157,7 +157,7 @@ void restart_lammps(LAMMPS *lmp, const TestConfig &cfg, bool nofdotr = false, bo { // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("clear"); @@ -188,7 +188,7 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg) { // utility lambdas to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; auto parse_input_script = [&](const std::string &filename) { lmp->input->file(filename.c_str()); @@ -239,7 +239,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) } const int natoms = lmp->atom->natoms; - std::string block(""); + std::string block; YamlWriter writer(outfile); @@ -316,7 +316,6 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) writer.emit_block("run_forces", block); cleanup_lammps(lmp, config); - return; } TEST(PairStyle, plain) @@ -1085,7 +1084,7 @@ TEST(PairStyle, single) // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; command("clear"); @@ -1317,7 +1316,7 @@ TEST(PairStyle, extract) // utility lambda to improve readability auto command = [&](const std::string &line) { - lmp->input->one(line.c_str()); + lmp->input->one(line); }; if (!verbose) ::testing::internal::CaptureStdout(); diff --git a/unittest/force-styles/tests/1-1-1.table b/unittest/force-styles/tests/1-1-1.table new file mode 100644 index 0000000000..76d8f8a9ec --- /dev/null +++ b/unittest/force-styles/tests/1-1-1.table @@ -0,0 +1,1875 @@ +ENTRY1 +N 12 rmin 2.55 rmax 3.65 + +1 2.55 2.55 3.75 -867.212 -611.273 867.212 21386.8 611.273 -21386.8 0.0 +2 2.55 2.55 11.25 -621.539 -411.189 621.539 5035.95 411.189 -5035.95 0.0 +3 2.55 2.55 18.75 -394.167 -243.287 394.167 1722.21 243.287 -1722.21 0.0 +4 2.55 2.55 26.25 -218.789 -127.402 218.789 560.206 127.402 -560.206 0.0 +5 2.55 2.55 33.75 -104.252 -59.5774 104.252 156.639 59.5774 -156.639 0.0 +6 2.55 2.55 41.25 -41.0722 -24.6716 41.072 36.4446 24.6716 -36.4446 0.0 +7 2.55 2.55 48.75 -12.357 -8.38061 12.3571 7.1117 8.38062 -7.1117 0.0 +8 2.55 2.55 56.25 -2.29912 -1.68047 2.29907 0.91657 1.68048 -0.916568 0.0 +9 2.55 2.55 63.75 -0.0509977 0.327321 0.0509129 -0.304729 -0.327319 0.30474 0.0 +10 2.55 2.55 71.25 0.0345509 0.431792 -0.0345867 -0.382614 -0.431782 0.382616 0.0 +11 2.55 2.55 78.75 -0.00019898 0.179593 0.000319523 -0.292658 -0.179608 0.292661 0.0 +12 2.55 2.55 86.25 0.154169 0.138217 -0.154088 -0.302917 -0.138224 0.302914 0.0 +13 2.55 2.55 93.75 0.327691 0.263922 -0.327675 -0.340147 -0.263894 0.340148 0.0 +14 2.55 2.55 101.25 0.382895 0.350591 -0.382883 -0.297308 -0.350546 0.297312 0.0 +15 2.55 2.55 108.75 0.300955 0.297417 -0.300746 -0.173862 -0.297437 0.173872 0.0 +16 2.55 2.55 116.25 0.138507 0.141879 -0.138328 -0.0349372 -0.1418 0.0349415 0.0 +17 2.55 2.55 123.75 -0.0287949 -0.0286834 0.0286744 0.065848 0.0287665 -0.0658601 0.0 +18 2.55 2.55 131.25 -0.160323 -0.164235 0.160302 0.120341 0.164191 -0.120297 0.0 +19 2.55 2.55 138.75 -0.274013 -0.280673 0.274077 0.156939 0.280642 -0.156913 0.0 +20 2.55 2.55 146.25 -0.42361 -0.430992 0.423711 0.212433 0.430824 -0.212358 0.0 +21 2.55 2.55 153.75 -0.648177 -0.651719 0.648516 0.305821 0.651726 -0.305791 0.0 +22 2.55 2.55 161.25 -0.93181 -0.926724 0.931895 0.426805 0.926702 -0.426778 0.0 +23 2.55 2.55 168.75 -1.20276 -1.18735 1.20273 0.541966 1.18745 -0.542019 0.0 +24 2.55 2.55 176.25 -1.36933 -1.34705 1.3691 0.612284 1.34703 -0.612297 0.0 +25 2.55 2.65 3.75 -784.444 -675.519 784.444 19696.9 675.519 -19696.9 0.0 +26 2.55 2.65 11.25 -542.941 -440.852 542.941 5300.59 440.852 -5300.59 0.0 +27 2.55 2.65 18.75 -325.839 -241.234 325.839 1817.37 241.234 -1817.37 0.0 +28 2.55 2.65 26.25 -169.421 -111.015 169.421 580.214 111.015 -580.214 0.0 +29 2.55 2.65 33.75 -74.994 -43.3669 74.994 155.496 43.3669 -155.496 0.0 +30 2.55 2.65 41.25 -27.0736 -14.8824 27.0736 33.1152 14.8824 -33.1152 0.0 +31 2.55 2.65 48.75 -7.12613 -4.62454 7.12621 5.36809 4.62453 -5.36811 0.0 +32 2.55 2.65 56.25 -0.874199 -1.13723 0.874234 0.34195 1.13723 -0.341919 0.0 +33 2.55 2.65 63.75 0.204812 -0.0406907 -0.204883 -0.442652 0.0407084 0.442642 0.0 +34 2.55 2.65 71.25 0.0904568 0.154881 -0.0905494 -0.435451 -0.154894 0.435459 0.0 +35 2.55 2.65 78.75 0.0458835 0.126591 -0.0460614 -0.333955 -0.126573 0.33396 0.0 +36 2.55 2.65 86.25 0.168148 0.163197 -0.168343 -0.309845 -0.163197 0.309848 0.0 +37 2.55 2.65 93.75 0.296449 0.261093 -0.296361 -0.307947 -0.261084 0.307954 0.0 +38 2.55 2.65 101.25 0.329963 0.311331 -0.329831 -0.254571 -0.311318 0.254565 0.0 +39 2.55 2.65 108.75 0.253841 0.255391 -0.253789 -0.146686 -0.255437 0.146721 0.0 +40 2.55 2.65 116.25 0.107857 0.119105 -0.107492 -0.0254819 -0.119136 0.0254837 0.0 +41 2.55 2.65 123.75 -0.0492191 -0.0344023 0.0490594 0.0707149 0.0343792 -0.0707119 0.0 +42 2.55 2.65 131.25 -0.180513 -0.166858 0.180388 0.1322 0.16692 -0.132248 0.0 +43 2.55 2.65 138.75 -0.300448 -0.291041 0.300451 0.178321 0.291015 -0.178345 0.0 +44 2.55 2.65 146.25 -0.45666 -0.451363 0.456715 0.239144 0.451427 -0.239145 0.0 +45 2.55 2.65 153.75 -0.684349 -0.67857 0.684481 0.332093 0.678651 -0.332112 0.0 +46 2.55 2.65 161.25 -0.966732 -0.954719 0.966651 0.448833 0.954615 -0.448783 0.0 +47 2.55 2.65 168.75 -1.23353 -1.21297 1.23383 0.558954 1.21297 -0.558949 0.0 +48 2.55 2.65 176.25 -1.39695 -1.37031 1.39698 0.626037 1.37022 -0.625967 0.0 +49 2.55 2.75 3.75 -668.413 -701.057 668.413 15096.3 701.057 -15096.3 0.0 +50 2.55 2.75 11.25 -452.8 -464.411 452.8 5130.32 464.411 -5130.32 0.0 +51 2.55 2.75 18.75 -256.012 -246.87 256.012 1797.07 246.87 -1797.07 0.0 +52 2.55 2.75 26.25 -123.333 -105.643 123.333 565.052 105.643 -565.052 0.0 +53 2.55 2.75 33.75 -50.2709 -35.7913 50.2709 144.93 35.7913 -144.93 0.0 +54 2.55 2.75 41.25 -16.78 -9.69921 16.78 28.1038 9.69923 -28.1038 0.0 +55 2.55 2.75 48.75 -4.12155 -2.37411 4.12164 3.76214 2.3741 -3.76217 0.0 +56 2.55 2.75 56.25 -0.484016 -0.658362 0.484128 0.146857 0.658338 -0.146846 0.0 +57 2.55 2.75 63.75 0.0687647 -0.20106 -0.0687734 -0.260534 0.20103 0.260497 0.0 +58 2.55 2.75 71.25 -0.00147066 -0.0603687 0.0015277 -0.268714 0.0604159 0.268722 0.0 +59 2.55 2.75 78.75 0.0156999 0.0125791 -0.0159656 -0.252993 -0.0125614 0.252974 0.0 +60 2.55 2.75 86.25 0.136925 0.119249 -0.13684 -0.269725 -0.11924 0.269725 0.0 +61 2.55 2.75 93.75 0.247327 0.234358 -0.247334 -0.272826 -0.234332 0.272827 0.0 +62 2.55 2.75 101.25 0.281753 0.286511 -0.281826 -0.224691 -0.286549 0.224691 0.0 +63 2.55 2.75 108.75 0.226138 0.242659 -0.226349 -0.131815 -0.24272 0.131841 0.0 +64 2.55 2.75 116.25 0.106433 0.12752 -0.10664 -0.0258695 -0.127594 0.0258609 0.0 +65 2.55 2.75 123.75 -0.0277616 -0.00630627 0.0276778 0.0615222 0.00630865 -0.0614969 0.0 +66 2.55 2.75 131.25 -0.142446 -0.124893 0.142414 0.118979 0.124975 -0.11903 0.0 +67 2.55 2.75 138.75 -0.248783 -0.237903 0.248779 0.161562 0.237995 -0.161575 0.0 +68 2.55 2.75 146.25 -0.392668 -0.385233 0.392627 0.216964 0.385134 -0.21689 0.0 +69 2.55 2.75 153.75 -0.606858 -0.595071 0.606818 0.302592 0.595088 -0.302606 0.0 +70 2.55 2.75 161.25 -0.874793 -0.851019 0.874799 0.411383 0.850969 -0.411357 0.0 +71 2.55 2.75 168.75 -1.12893 -1.0911 1.12904 0.514712 1.09102 -0.514675 0.0 +72 2.55 2.75 176.25 -1.28457 -1.23755 1.28455 0.577854 1.23747 -0.577828 0.0 +73 2.55 2.85 3.75 -540.757 -671.949 540.757 11232.9 671.949 -11232.9 0.0 +74 2.55 2.85 11.25 -358.962 -456.955 358.962 4626.32 456.955 -4626.32 0.0 +75 2.55 2.85 18.75 -189.205 -242.387 189.205 1670.73 242.387 -1670.73 0.0 +76 2.55 2.85 26.25 -82.3789 -101.034 82.3789 518.217 101.034 -518.217 0.0 +77 2.55 2.85 33.75 -30.0098 -32.1026 30.0098 126.998 32.1025 -126.998 0.0 +78 2.55 2.85 41.25 -9.21751 -7.56922 9.21749 22.2838 7.5692 -22.2838 0.0 +79 2.55 2.85 48.75 -2.28489 -1.50529 2.28485 2.35574 1.50529 -2.35573 0.0 +80 2.55 2.85 56.25 -0.358049 -0.489852 0.357948 0.0188984 0.489874 -0.0189109 0.0 +81 2.55 2.85 63.75 -0.00522043 -0.307792 0.00494878 -0.134592 0.307776 0.134574 0.0 +82 2.55 2.85 71.25 0.00323495 -0.2024 -0.00313048 -0.169997 0.202387 0.169981 0.0 +83 2.55 2.85 78.75 0.0415278 -0.0778296 -0.0414056 -0.213315 0.077898 0.213326 0.0 +84 2.55 2.85 86.25 0.131889 0.069504 -0.132199 -0.248098 -0.0695577 0.248098 0.0 +85 2.55 2.85 93.75 0.214594 0.193542 -0.214655 -0.244475 -0.193398 0.244477 0.0 +86 2.55 2.85 101.25 0.244494 0.247624 -0.244635 -0.195685 -0.247697 0.195696 0.0 +87 2.55 2.85 108.75 0.201434 0.218545 -0.201617 -0.114828 -0.218615 0.114846 0.0 +88 2.55 2.85 116.25 0.0998591 0.127904 -0.0997024 -0.024899 -0.127956 0.0249269 0.0 +89 2.55 2.85 123.75 -0.0181479 0.0163555 0.0181766 0.049407 -0.0163067 -0.0494209 0.0 +90 2.55 2.85 131.25 -0.11898 -0.0876934 0.119352 0.098005 0.0875449 -0.0979311 0.0 +91 2.55 2.85 138.75 -0.214707 -0.191866 0.214605 0.134596 0.191898 -0.13457 0.0 +92 2.55 2.85 146.25 -0.347993 -0.330815 0.348041 0.185048 0.330869 -0.185107 0.0 +93 2.55 2.85 153.75 -0.550177 -0.528952 0.549981 0.265291 0.528797 -0.265232 0.0 +94 2.55 2.85 161.25 -0.804311 -0.769737 0.804194 0.367848 0.769696 -0.367861 0.0 +95 2.55 2.85 168.75 -1.04529 -0.994652 1.04554 0.465186 0.99499 -0.465282 0.0 +96 2.55 2.85 176.25 -1.19281 -1.13166 1.19305 0.52457 1.13177 -0.524594 0.0 +97 2.55 2.95 3.75 -419.502 -582.296 419.502 8332.23 582.296 -8332.23 0.0 +98 2.55 2.95 11.25 -271.55 -404.417 271.55 3930.48 404.417 -3930.48 0.0 +99 2.55 2.95 18.75 -130.928 -214.969 130.928 1464.2 214.969 -1464.2 0.0 +100 2.55 2.95 26.25 -48.786 -88.4342 48.786 447.646 88.4342 -447.646 0.0 +101 2.55 2.95 33.75 -14.3964 -27.3665 14.3964 104.519 27.3665 -104.519 0.0 +102 2.55 2.95 41.25 -3.7883 -6.20808 3.78827 16.4944 6.20806 -16.4944 0.0 +103 2.55 2.95 48.75 -1.0529 -1.19869 1.05292 1.27167 1.19863 -1.27161 0.0 +104 2.55 2.95 56.25 -0.231522 -0.429682 0.231513 -0.0951674 0.429629 0.0951268 0.0 +105 2.55 2.95 63.75 0.0181127 -0.325032 -0.0180919 -0.110423 0.324922 0.110426 0.0 +106 2.55 2.95 71.25 0.049094 -0.246096 -0.0491496 -0.144969 0.245996 0.14495 0.0 +107 2.55 2.95 78.75 0.063364 -0.114463 -0.0633467 -0.196803 0.114426 0.196797 0.0 +108 2.55 2.95 86.25 0.11583 0.0385036 -0.115786 -0.223948 -0.0384687 0.223952 0.0 +109 2.55 2.95 93.75 0.177943 0.156855 -0.178064 -0.209887 -0.156845 0.209889 0.0 +110 2.55 2.95 101.25 0.207654 0.212381 -0.207593 -0.163549 -0.212444 0.163567 0.0 +111 2.55 2.95 108.75 0.175031 0.201414 -0.174609 -0.0967898 -0.20124 0.0967398 0.0 +112 2.55 2.95 116.25 0.0862557 0.136066 -0.0862066 -0.0233966 -0.13596 0.0233258 0.0 +113 2.55 2.95 123.75 -0.0191239 0.0441682 0.0193287 0.0382847 -0.0441811 -0.0382953 0.0 +114 2.55 2.95 131.25 -0.110069 -0.050979 0.109801 0.0798251 0.0509319 -0.0799025 0.0 +115 2.55 2.95 138.75 -0.196213 -0.153394 0.196102 0.113373 0.153405 -0.113396 0.0 +116 2.55 2.95 146.25 -0.318885 -0.291367 0.319145 0.161467 0.291373 -0.161505 0.0 +117 2.55 2.95 153.75 -0.50686 -0.483737 0.506732 0.236963 0.48342 -0.236818 0.0 +118 2.55 2.95 161.25 -0.742764 -0.712982 0.742837 0.331712 0.713077 -0.331758 0.0 +119 2.55 2.95 168.75 -0.965814 -0.924655 0.965837 0.420445 0.924729 -0.420487 0.0 +120 2.55 2.95 176.25 -1.10185 -1.05258 1.10198 0.474136 1.05241 -0.474051 0.0 +121 2.55 3.05 3.75 -319.111 -440.938 319.111 6126.66 440.938 -6126.66 0.0 +122 2.55 3.05 11.25 -200.795 -309.049 200.795 3169.23 309.049 -3169.23 0.0 +123 2.55 3.05 18.75 -86.7152 -162.683 86.7152 1211.49 162.683 -1211.49 0.0 +124 2.55 3.05 26.25 -24.7922 -65.0953 24.7921 363.733 65.0953 -363.733 0.0 +125 2.55 3.05 33.75 -3.79557 -19.4403 3.79568 80.4622 19.4403 -80.4622 0.0 +126 2.55 3.05 41.25 -0.227488 -4.40816 0.227381 11.3442 4.40812 -11.3442 0.0 +127 2.55 3.05 48.75 -0.215962 -0.9846 0.21623 0.572809 0.984607 -0.572833 0.0 +128 2.55 3.05 56.25 -0.0972827 -0.406271 0.0971886 -0.155442 0.406388 0.155438 0.0 +129 2.55 3.05 63.75 0.0474691 -0.320721 -0.0473142 -0.115525 0.320742 0.115541 0.0 +130 2.55 3.05 71.25 0.0542543 -0.274312 -0.0545515 -0.127569 0.274174 0.127517 0.0 +131 2.55 3.05 78.75 0.0439985 -0.158092 -0.0440511 -0.165185 0.158055 0.165194 0.0 +132 2.55 3.05 86.25 0.0821507 -0.00877884 -0.0821081 -0.183829 0.00887135 0.183832 0.0 +133 2.55 3.05 93.75 0.142245 0.109192 -0.142406 -0.168613 -0.109223 0.168609 0.0 +134 2.55 3.05 101.25 0.176786 0.175042 -0.176859 -0.131259 -0.174989 0.13127 0.0 +135 2.55 3.05 108.75 0.153044 0.185839 -0.153188 -0.0796497 -0.185913 0.0796723 0.0 +136 2.55 3.05 116.25 0.0762661 0.144574 -0.0760233 -0.0213083 -0.14475 0.0213947 0.0 +137 2.55 3.05 123.75 -0.0153973 0.0697421 0.0151775 0.0294442 -0.0697414 -0.0295136 0.0 +138 2.55 3.05 131.25 -0.0914496 -0.0164558 0.0915457 0.0650391 0.01638 -0.0650155 0.0 +139 2.55 3.05 138.75 -0.163525 -0.114278 0.163505 0.0952572 0.113968 -0.0951433 0.0 +140 2.55 3.05 146.25 -0.267879 -0.245016 0.267903 0.138326 0.244925 -0.138338 0.0 +141 2.55 3.05 153.75 -0.430018 -0.423265 0.429956 0.203867 0.423326 -0.203942 0.0 +142 2.55 3.05 161.25 -0.633833 -0.631774 0.634037 0.284186 0.631568 -0.284063 0.0 +143 2.55 3.05 168.75 -0.826685 -0.82183 0.826375 0.358252 0.82172 -0.358225 0.0 +144 2.55 3.05 176.25 -0.943422 -0.93572 0.943723 0.402697 0.935847 -0.402743 0.0 +145 2.55 3.15 3.75 -249.767 -271.418 249.767 4425.44 271.418 -4425.44 0.0 +146 2.55 3.15 11.25 -154.5 -187.982 154.5 2434.18 187.982 -2434.18 0.0 +147 2.55 3.15 18.75 -60.5981 -94.4639 60.5982 946.499 94.4639 -946.499 0.0 +148 2.55 3.15 26.25 -11.8534 -34.6155 11.8535 277.025 34.6156 -277.025 0.0 +149 2.55 3.15 33.75 1.6123 -9.2646 -1.61231 57.3974 9.26465 -57.3974 0.0 +150 2.55 3.15 41.25 1.60158 -2.19805 -1.60158 7.12692 2.19808 -7.12698 0.0 +151 2.55 3.15 48.75 0.26948 -0.778894 -0.269488 0.21063 0.778852 -0.210617 0.0 +152 2.55 3.15 56.25 -0.01372 -0.412911 0.0136807 -0.142081 0.412893 0.142164 0.0 +153 2.55 3.15 63.75 0.0224038 -0.329718 -0.0222862 -0.0965871 0.329602 0.096574 0.0 +154 2.55 3.15 71.25 0.0060749 -0.316094 -0.00598008 -0.0883032 0.316076 0.0883122 0.0 +155 2.55 3.15 78.75 0.00302628 -0.219142 -0.00292645 -0.117193 0.219165 0.117188 0.0 +156 2.55 3.15 86.25 0.0523024 -0.0705546 -0.0522252 -0.136651 0.0705734 0.136649 0.0 +157 2.55 3.15 93.75 0.115651 0.0544573 -0.11564 -0.126319 -0.0545821 0.126326 0.0 +158 2.55 3.15 101.25 0.148969 0.134261 -0.149041 -0.0986894 -0.134289 0.0986837 0.0 +159 2.55 3.15 108.75 0.128464 0.165022 -0.12849 -0.0608071 -0.165301 0.0608822 0.0 +160 2.55 3.15 116.25 0.0654112 0.144738 -0.0648575 -0.0171687 -0.144771 0.0172192 0.0 +161 2.55 3.15 123.75 -0.00700089 0.0874701 0.0070514 0.0212287 -0.087399 -0.0213181 0.0 +162 2.55 3.15 131.25 -0.0630668 0.0158432 0.0629726 0.0481408 -0.0158028 -0.0482207 0.0 +163 2.55 3.15 138.75 -0.113207 -0.0669731 0.112947 0.0710475 0.0668196 -0.0709779 0.0 +164 2.55 3.15 146.25 -0.189616 -0.177294 0.189595 0.103802 0.177145 -0.103761 0.0 +165 2.55 3.15 153.75 -0.313405 -0.326317 0.313385 0.153359 0.326249 -0.1534 0.0 +166 2.55 3.15 161.25 -0.471349 -0.499401 0.471384 0.2136 0.499615 -0.213641 0.0 +167 2.55 3.15 168.75 -0.621738 -0.656501 0.621526 0.268765 0.656234 -0.268609 0.0 +168 2.55 3.15 176.25 -0.713168 -0.750131 0.713075 0.301728 0.749961 -0.301587 0.0 +169 2.55 3.25 3.75 -215.533 -105.036 215.533 3115.64 105.036 -3115.64 0.0 +170 2.55 3.25 11.25 -135.709 -66.1673 135.709 1782.43 66.1673 -1782.43 0.0 +171 2.55 3.25 18.75 -53.5226 -25.2778 53.5226 697.12 25.2777 -697.12 0.0 +172 2.55 3.25 26.25 -9.76548 -4.05586 9.76548 196.405 4.05587 -196.405 0.0 +173 2.55 3.25 33.75 2.26986 0.661867 -2.26987 37.2172 -0.661895 -37.2172 0.0 +174 2.55 3.25 41.25 1.94008 -0.139655 -1.94016 3.90169 0.139693 -3.90171 0.0 +175 2.55 3.25 48.75 0.433581 -0.598298 -0.433653 0.0713369 0.598313 -0.071257 0.0 +176 2.55 3.25 56.25 -0.0110448 -0.396733 0.0111185 -0.0792235 0.396666 0.0791487 0.0 +177 2.55 3.25 63.75 -0.0512665 -0.306617 0.0511183 -0.0540821 0.306458 0.05412 0.0 +178 2.55 3.25 71.25 -0.0567327 -0.327807 0.0568023 -0.042547 0.327783 0.0424758 0.0 +179 2.55 3.25 78.75 -0.0248985 -0.256832 0.0248957 -0.0738229 0.256924 0.073814 0.0 +180 2.55 3.25 86.25 0.03699 -0.115693 -0.0368212 -0.0949395 0.115771 0.0949412 0.0 +181 2.55 3.25 93.75 0.088578 0.0114051 -0.0885974 -0.0851166 -0.0114329 0.0851098 0.0 +182 2.55 3.25 101.25 0.108379 0.100211 -0.108454 -0.0631833 -0.100386 0.0632103 0.0 +183 2.55 3.25 108.75 0.0905494 0.146067 -0.0902676 -0.0380134 -0.146103 0.0380456 0.0 +184 2.55 3.25 116.25 0.0446648 0.143011 -0.0447651 -0.0105656 -0.143148 0.0105849 0.0 +185 2.55 3.25 123.75 -0.00397982 0.102972 0.00398606 0.0132778 -0.103051 -0.0132872 0.0 +186 2.55 3.25 131.25 -0.0396488 0.0470538 0.0395149 0.0295482 -0.0468879 -0.0296284 0.0 +187 2.55 3.25 138.75 -0.0696427 -0.0184498 0.0696581 0.0434558 0.0182276 -0.0433637 0.0 +188 2.55 3.25 146.25 -0.118295 -0.104198 0.11835 0.0645889 0.104105 -0.0645169 0.0 +189 2.55 3.25 153.75 -0.201226 -0.219646 0.201381 0.0977209 0.219776 -0.0977906 0.0 +190 2.55 3.25 161.25 -0.310278 -0.35328 0.310501 0.138558 0.353454 -0.138633 0.0 +191 2.55 3.25 168.75 -0.415467 -0.474235 0.415053 0.176198 0.474086 -0.176145 0.0 +192 2.55 3.25 176.25 -0.479006 -0.546119 0.479273 0.198749 0.546279 -0.198787 0.0 +193 2.55 3.35 3.75 -204.898 28.1648 204.898 2043.28 -28.1648 -2043.28 0.0 +194 2.55 3.35 11.25 -135.949 31.6213 135.949 1195.68 -31.6213 -1195.68 0.0 +195 2.55 3.35 18.75 -60.0294 29.3309 60.0294 464.081 -29.3309 -464.081 0.0 +196 2.55 3.35 26.25 -15.5602 19.1482 15.5602 123.342 -19.1482 -123.342 0.0 +197 2.55 3.35 33.75 -0.516502 7.80361 0.516464 20.3914 -7.80361 -20.3915 0.0 +198 2.55 3.35 41.25 1.1959 1.28099 -1.1959 1.61912 -1.28089 -1.61917 0.0 +199 2.55 3.35 48.75 0.338664 -0.427486 -0.338735 0.0672361 0.427458 -0.0671949 0.0 +200 2.55 3.35 56.25 -0.0712654 -0.32692 0.0713186 -0.00513307 0.326996 0.00515152 0.0 +201 2.55 3.35 63.75 -0.121975 -0.24598 0.122164 -0.0158901 0.24595 0.0159275 0.0 +202 2.55 3.35 71.25 -0.0836168 -0.3049 0.0833968 -0.0145822 0.304962 0.0145084 0.0 +203 2.55 3.35 78.75 -0.0227775 -0.26582 0.0226797 -0.0466388 0.265827 0.0466007 0.0 +204 2.55 3.35 86.25 0.0253278 -0.141365 -0.0252494 -0.0598516 0.14135 0.0598496 0.0 +205 2.55 3.35 93.75 0.0478277 -0.0194912 -0.0477364 -0.0442668 0.01948 0.0442715 0.0 +206 2.55 3.35 101.25 0.0542989 0.072706 -0.0542353 -0.0265114 -0.0727603 0.0265457 0.0 +207 2.55 3.35 108.75 0.0474436 0.128762 -0.0473722 -0.0142292 -0.128667 0.0141884 0.0 +208 2.55 3.35 116.25 0.024829 0.139676 -0.0246836 -0.00238193 -0.139623 0.00240878 0.0 +209 2.55 3.35 123.75 -0.00477975 0.112522 0.00457921 0.00880631 -0.112295 -0.00892129 0.0 +210 2.55 3.35 131.25 -0.0290626 0.0670303 0.0288612 0.0167144 -0.0668681 -0.0167711 0.0 +211 2.55 3.35 138.75 -0.0488435 0.012812 0.048558 0.0234532 -0.0126738 -0.0236424 0.0 +212 2.55 3.35 146.25 -0.0762617 -0.0554933 0.0763255 0.0346659 0.0553813 -0.0346319 0.0 +213 2.55 3.35 153.75 -0.123726 -0.144228 0.123766 0.053841 0.144227 -0.0538008 0.0 +214 2.55 3.35 161.25 -0.18791 -0.245407 0.187929 0.078822 0.245764 -0.079086 0.0 +215 2.55 3.35 168.75 -0.251038 -0.336304 0.251286 0.102654 0.336317 -0.102638 0.0 +216 2.55 3.35 176.25 -0.29084 -0.390314 0.290697 0.117217 0.390531 -0.11737 0.0 +217 2.55 3.45 3.75 -160.11 78.3904 160.11 964.746 -78.3904 -964.746 0.0 +218 2.55 3.45 11.25 -112.253 65.2155 112.253 569.896 -65.2155 -569.896 0.0 +219 2.55 3.45 18.75 -55.5875 44.2652 55.5876 216.275 -44.2652 -216.275 0.0 +220 2.55 3.45 26.25 -18.577 23.1948 18.5771 52.7785 -23.1948 -52.7785 0.0 +221 2.55 3.45 33.75 -3.3749 8.35207 3.37496 7.08855 -8.35205 -7.08857 0.0 +222 2.55 3.45 41.25 0.0558271 1.43995 -0.0557888 0.416872 -1.44003 -0.416798 0.0 +223 2.55 3.45 48.75 0.0736874 -0.250918 -0.0736577 0.137694 0.25083 -0.137688 0.0 +224 2.55 3.45 56.25 -0.118382 -0.234235 0.118498 0.029723 0.234224 -0.0297093 0.0 +225 2.55 3.45 63.75 -0.103993 -0.193692 0.103998 -0.0111831 0.193659 0.0111847 0.0 +226 2.55 3.45 71.25 -0.0373239 -0.248873 0.0374 -0.0103758 0.248904 0.0103568 0.0 +227 2.55 3.45 78.75 -0.000815577 -0.221711 0.000857674 -0.0239127 0.221702 0.0239331 0.0 +228 2.55 3.45 86.25 0.00235137 -0.12606 -0.00247045 -0.0235691 0.126024 0.0235785 0.0 +229 2.55 3.45 93.75 0.000693468 -0.0322758 -0.000731622 -0.0100368 0.0322426 0.0100472 0.0 +230 2.55 3.45 101.25 0.0107898 0.0378694 -0.0109773 -0.00230259 -0.0379779 0.00230944 0.0 +231 2.55 3.45 108.75 0.0223901 0.0828189 -0.0224924 -0.0011966 -0.0828617 0.00119886 0.0 +232 2.55 3.45 116.25 0.01901 0.0976112 -0.0189845 0.000576941 -0.0977212 -0.000592258 0.0 +233 2.55 3.45 123.75 0.0023177 0.0865526 -0.00220076 0.00381654 -0.0867258 -0.00376165 0.0 +234 2.55 3.45 131.25 -0.0137084 0.0618094 0.0137112 0.00514774 -0.0618168 -0.00513733 0.0 +235 2.55 3.45 138.75 -0.0208603 0.0307928 0.0209021 0.00395318 -0.0306512 -0.00401619 0.0 +236 2.55 3.45 146.25 -0.0246671 -0.00894626 0.0246851 0.00351226 0.00893543 -0.0035253 0.0 +237 2.55 3.45 153.75 -0.0354818 -0.0611658 0.0352745 0.0074458 0.0613979 -0.00758451 0.0 +238 2.55 3.45 161.25 -0.0568268 -0.12175 0.0568015 0.016221 0.121744 -0.0162267 0.0 +239 2.55 3.45 168.75 -0.0825887 -0.177017 0.0826212 0.0265372 0.177062 -0.0266112 0.0 +240 2.55 3.45 176.25 -0.100362 -0.210215 0.100363 0.0334528 0.210225 -0.0334721 0.0 +241 2.55 3.55 3.75 -78.9919 44.1593 78.9919 272.44 -44.1593 -272.44 0.0 +242 2.55 3.55 11.25 -57.4405 35.3664 57.4405 160.985 -35.3664 -160.985 0.0 +243 2.55 3.55 18.75 -30.4327 22.6574 30.4327 59.1789 -22.6574 -59.1789 0.0 +244 2.55 3.55 26.25 -11.3918 11.2259 11.3918 13.1796 -11.2259 -13.1796 0.0 +245 2.55 3.55 33.75 -2.72329 3.8781 2.7233 1.57893 -3.87813 -1.57891 0.0 +246 2.55 3.55 41.25 -0.349405 0.648596 0.349417 0.278163 -0.648614 -0.278143 0.0 +247 2.55 3.55 48.75 -0.0951034 -0.129698 0.0950942 0.144918 0.129704 -0.144907 0.0 +248 2.55 3.55 56.25 -0.0904303 -0.132617 0.0904025 -0.000622582 0.13263 0.000613981 0.0 +249 2.55 3.55 63.75 -0.0258623 -0.110734 0.0258374 -0.0284537 0.110749 0.0284432 0.0 +250 2.55 3.55 71.25 0.0130336 -0.121492 -0.0129784 -0.00958708 0.121519 0.0095864 0.0 +251 2.55 3.55 78.75 0.00216509 -0.0947175 -0.00212262 -0.00146876 0.0947229 0.0014866 0.0 +252 2.55 3.55 86.25 -0.0193046 -0.044118 0.0193305 0.000949206 0.0440946 -0.000951166 0.0 +253 2.55 3.55 93.75 -0.0204643 -0.00523306 0.0203838 0.00128217 0.00527308 -0.00128181 0.0 +254 2.55 3.55 101.25 -0.00377452 0.0162146 0.00374878 -0.00203826 -0.0161878 0.00203335 0.0 +255 2.55 3.55 108.75 0.0103855 0.0283922 -0.0103646 -0.00590355 -0.0284035 0.0059097 0.0 +256 2.55 3.55 116.25 0.0107496 0.0355757 -0.0107487 -0.00748469 -0.0355346 0.00746902 0.0 +257 2.55 3.55 123.75 0.00390058 0.039282 -0.00394485 -0.00836899 -0.0392871 0.00836606 0.0 +258 2.55 3.55 131.25 0.00302193 0.0417158 -0.00303302 -0.0116169 -0.0417316 0.0116365 0.0 +259 2.55 3.55 138.75 0.0132809 0.0429902 -0.0132594 -0.0177461 -0.0429583 0.0177101 0.0 +260 2.55 3.55 146.25 0.0286472 0.040296 -0.0286569 -0.0242602 -0.0403293 0.0242749 0.0 +261 2.55 3.55 153.75 0.0390318 0.0306394 -0.039064 -0.0280589 -0.0306446 0.028059 0.0 +262 2.55 3.55 161.25 0.0394296 0.0147367 -0.0394103 -0.0279664 -0.0146398 0.0279268 0.0 +263 2.55 3.55 168.75 0.0324474 -0.00226708 -0.0324635 -0.0253945 0.00220765 0.0254368 0.0 +264 2.55 3.55 176.25 0.025994 -0.013213 -0.0260157 -0.0230769 0.0131899 0.0230844 0.0 +265 2.55 3.65 3.75 -10.2735 4.76327 10.2735 20.7201 -4.76327 -20.7201 0.0 +266 2.55 3.65 11.25 -7.59679 3.74938 7.59679 12.2716 -3.74938 -12.2716 0.0 +267 2.55 3.65 18.75 -4.13373 2.33527 4.13373 4.48711 -2.33527 -4.48711 0.0 +268 2.55 3.65 26.25 -1.60809 1.11951 1.60809 1.05798 -1.11951 -1.05798 0.0 +269 2.55 3.65 33.75 -0.426582 0.367384 0.426586 0.237798 -0.367384 -0.237797 0.0 +270 2.55 3.65 41.25 -0.0923209 0.0481501 0.0923222 0.103116 -0.0481492 -0.103116 0.0 +271 2.55 3.65 48.75 -0.0403716 -0.019861 0.0403721 0.0289419 0.0198609 -0.0289447 0.0 +272 2.55 3.65 56.25 -0.0181588 -0.0104242 0.018157 -0.0111623 0.010423 0.0111643 0.0 +273 2.55 3.65 63.75 0.0026199 -0.0022943 -0.00261809 -0.0112332 0.00229608 0.011234 0.0 +274 2.55 3.65 71.25 0.00555137 -0.00054609 -0.00554585 -0.000901878 0.000542356 0.000901001 0.0 +275 2.55 3.65 78.75 -0.00349077 0.00348611 0.00348128 0.00388527 -0.0034823 -0.00388526 0.0 +276 2.55 3.65 86.25 -0.00986876 0.00759326 0.00986851 0.00334418 -0.00759374 -0.00334402 0.0 +277 2.55 3.65 93.75 -0.00861045 0.00735376 0.00861467 0.000656354 -0.00735444 -0.000656104 0.0 +278 2.55 3.65 101.25 -0.00414524 0.00377925 0.00414321 -0.00212584 -0.00377449 0.00212561 0.0 +279 2.55 3.65 108.75 -0.00169477 0.000439308 0.00169322 -0.00396038 -0.000442715 0.00396063 0.0 +280 2.55 3.65 116.25 -0.00201868 -0.000719026 0.00201981 -0.0047974 0.000729887 0.00479364 0.0 +281 2.55 3.65 123.75 -0.0022902 0.000305603 0.00229371 -0.00529632 -0.000307648 0.00529785 0.0 +282 2.55 3.65 131.25 6.5658e-05 0.00293592 -6.35245e-05 -0.00609152 -0.00294529 0.00609664 0.0 +283 2.55 3.65 138.75 0.00496513 0.00653024 -0.0049612 -0.00723673 -0.00653204 0.00723752 0.0 +284 2.55 3.65 146.25 0.0100844 0.0103162 -0.0100899 -0.0082568 -0.0103134 0.00825192 0.0 +285 2.55 3.65 153.75 0.013056 0.0135185 -0.0130568 -0.00863418 -0.0135186 0.00863497 0.0 +286 2.55 3.65 161.25 0.0130732 0.0156428 -0.013084 -0.00825131 -0.0156473 0.00825326 0.0 +287 2.55 3.65 168.75 0.0112797 0.0167179 -0.0112803 -0.00747124 -0.0167224 0.00747658 0.0 +288 2.55 3.65 176.25 0.0096521 0.0170897 -0.00964981 -0.00687278 -0.0170876 0.00686999 0.0 +289 2.65 2.65 3.75 -850.9 -766.532 850.9 24206.3 766.532 -24206.3 0.0 +290 2.65 2.65 11.25 -532.471 -481.095 532.471 5590.03 481.095 -5590.03 0.0 +291 2.65 2.65 18.75 -284.368 -250.886 284.368 1834.01 250.886 -1834.01 0.0 +292 2.65 2.65 26.25 -129.075 -106.598 129.075 555.283 106.598 -555.283 0.0 +293 2.65 2.65 33.75 -49.9399 -36.5293 49.9399 138.315 36.5293 -138.315 0.0 +294 2.65 2.65 41.25 -16.5129 -10.4032 16.5129 27.2019 10.4033 -27.2019 0.0 +295 2.65 2.65 48.75 -4.46528 -2.7076 4.46539 4.42411 2.70761 -4.42411 0.0 +296 2.65 2.65 56.25 -0.741021 -0.597377 0.741105 0.305553 0.597353 -0.305549 0.0 +297 2.65 2.65 63.75 0.104606 0.0237456 -0.104669 -0.572899 -0.0237444 0.572894 0.0 +298 2.65 2.65 71.25 0.139391 0.125946 -0.139515 -0.571709 -0.125927 0.571698 0.0 +299 2.65 2.65 78.75 0.104219 0.102894 -0.104113 -0.382665 -0.102882 0.382676 0.0 +300 2.65 2.65 86.25 0.157087 0.145852 -0.157232 -0.297431 -0.1459 0.297442 0.0 +301 2.65 2.65 93.75 0.240407 0.236266 -0.240541 -0.278188 -0.236265 0.27819 0.0 +302 2.65 2.65 101.25 0.275238 0.279291 -0.274988 -0.229799 -0.27936 0.229805 0.0 +303 2.65 2.65 108.75 0.227141 0.229356 -0.227284 -0.134968 -0.229285 0.134932 0.0 +304 2.65 2.65 116.25 0.115892 0.112442 -0.115868 -0.0291153 -0.112422 0.0291383 0.0 +305 2.65 2.65 123.75 -0.010285 -0.0162117 0.0103961 0.0530193 0.0161505 -0.0529991 0.0 +306 2.65 2.65 131.25 -0.1188 -0.124881 0.118875 0.104487 0.124916 -0.104492 0.0 +307 2.65 2.65 138.75 -0.223058 -0.229731 0.223369 0.145724 0.229737 -0.145685 0.0 +308 2.65 2.65 146.25 -0.368701 -0.376052 0.368859 0.205686 0.3761 -0.205685 0.0 +309 2.65 2.65 153.75 -0.587337 -0.594228 0.587423 0.299459 0.594372 -0.299509 0.0 +310 2.65 2.65 161.25 -0.859864 -0.865453 0.859988 0.416736 0.865344 -0.416708 0.0 +311 2.65 2.65 168.75 -1.11756 -1.12156 1.11739 0.526563 1.12147 -0.526502 0.0 +312 2.65 2.65 176.25 -1.2751 -1.27817 1.27506 0.593124 1.2781 -0.593061 0.0 +313 2.65 2.75 3.75 -835.182 -772.341 835.182 21905.9 772.341 -21905.9 0.0 +314 2.65 2.75 11.25 -513.694 -481.73 513.694 5723.06 481.73 -5723.06 0.0 +315 2.65 2.75 18.75 -261.725 -240.477 261.725 1876.13 240.477 -1876.13 0.0 +316 2.65 2.75 26.25 -110.82 -93.042 110.82 555.313 93.0419 -555.313 0.0 +317 2.65 2.75 33.75 -39.2645 -26.3478 39.2645 131.64 26.3478 -131.64 0.0 +318 2.65 2.75 41.25 -11.8937 -5.23302 11.8938 23.3148 5.233 -23.3148 0.0 +319 2.65 2.75 48.75 -3.05671 -0.993603 3.05657 3.14407 0.993621 -3.14406 0.0 +320 2.65 2.75 56.25 -0.550099 -0.358525 0.550227 0.163089 0.358498 -0.163112 0.0 +321 2.65 2.75 63.75 -0.0205929 -0.0842747 0.0205161 -0.407995 0.0842518 0.407956 0.0 +322 2.65 2.75 71.25 0.00336668 0.0345981 -0.00349936 -0.421497 -0.0346157 0.421506 0.0 +323 2.65 2.75 78.75 0.0253619 0.0593683 -0.0255874 -0.3063 -0.0593531 0.306294 0.0 +324 2.65 2.75 86.25 0.119248 0.114375 -0.119305 -0.255219 -0.114285 0.255229 0.0 +325 2.65 2.75 93.75 0.216069 0.202657 -0.216049 -0.241183 -0.202733 0.241187 0.0 +326 2.65 2.75 101.25 0.255314 0.253769 -0.255148 -0.201128 -0.253738 0.20113 0.0 +327 2.65 2.75 108.75 0.214511 0.222856 -0.214525 -0.121963 -0.222827 0.121965 0.0 +328 2.65 2.75 116.25 0.110921 0.123065 -0.110896 -0.0278056 -0.123096 0.027821 0.0 +329 2.65 2.75 123.75 -0.0119931 0.00216882 0.0119589 0.0508731 -0.00227192 -0.0508543 0.0 +330 2.65 2.75 131.25 -0.119575 -0.104676 0.119555 0.102045 0.10466 -0.10204 0.0 +331 2.65 2.75 138.75 -0.220603 -0.205567 0.220425 0.139953 0.205519 -0.139884 0.0 +332 2.65 2.75 146.25 -0.354901 -0.339963 0.354916 0.191191 0.340301 -0.191375 0.0 +333 2.65 2.75 153.75 -0.553233 -0.537535 0.553233 0.27207 0.537478 -0.272051 0.0 +334 2.65 2.75 161.25 -0.800056 -0.783314 0.80005 0.37528 0.783269 -0.375219 0.0 +335 2.65 2.75 168.75 -1.03362 -1.01636 1.03349 0.473222 1.01637 -0.473237 0.0 +336 2.65 2.75 176.25 -1.17633 -1.15917 1.17626 0.532997 1.15938 -0.533141 0.0 +337 2.65 2.85 3.75 -760.67 -716.576 760.67 16548.2 716.576 -16548.2 0.0 +338 2.65 2.85 11.25 -468.577 -458.252 468.577 5405.79 458.252 -5405.79 0.0 +339 2.65 2.85 18.75 -228.053 -226.497 228.053 1802.81 226.497 -1802.81 0.0 +340 2.65 2.85 26.25 -89.1662 -84.2911 89.1663 523.528 84.2911 -523.528 0.0 +341 2.65 2.85 33.75 -28.2756 -21.661 28.2757 117.98 21.661 -117.98 0.0 +342 2.65 2.85 41.25 -7.65848 -3.29349 7.65854 18.6016 3.29345 -18.6016 0.0 +343 2.65 2.85 48.75 -1.87861 -0.425521 1.87855 1.91342 0.425548 -1.91344 0.0 +344 2.65 2.85 56.25 -0.359414 -0.305329 0.359467 0.0202548 0.305288 -0.0202399 0.0 +345 2.65 2.85 63.75 -0.0454417 -0.184956 0.0452869 -0.276244 0.184875 0.276227 0.0 +346 2.65 2.85 71.25 -0.03328 -0.0799704 0.0333967 -0.292345 0.0799691 0.292342 0.0 +347 2.65 2.85 78.75 0.00639036 -0.0189859 -0.006449 -0.241547 0.0190153 0.241563 0.0 +348 2.65 2.85 86.25 0.102068 0.0661345 -0.102071 -0.222916 -0.0661619 0.222919 0.0 +349 2.65 2.85 93.75 0.188697 0.163968 -0.188721 -0.21219 -0.163988 0.212191 0.0 +350 2.65 2.85 101.25 0.22364 0.220472 -0.223377 -0.175014 -0.220473 0.175017 0.0 +351 2.65 2.85 108.75 0.190707 0.202776 -0.190758 -0.106231 -0.202789 0.106247 0.0 +352 2.65 2.85 116.25 0.101112 0.120884 -0.101059 -0.0239388 -0.120905 0.0239052 0.0 +353 2.65 2.85 123.75 -0.00702613 0.0160528 0.00714713 0.0453335 -0.0161052 -0.0453373 0.0 +354 2.65 2.85 131.25 -0.101648 -0.0781261 0.101387 0.088976 0.0781448 -0.0889832 0.0 +355 2.65 2.85 138.75 -0.188841 -0.166223 0.188892 0.119526 0.166146 -0.119525 0.0 +356 2.65 2.85 146.25 -0.306982 -0.284004 0.307036 0.162419 0.283915 -0.162404 0.0 +357 2.65 2.85 153.75 -0.48517 -0.45968 0.485006 0.233515 0.459501 -0.233437 0.0 +358 2.65 2.85 161.25 -0.709159 -0.680393 0.709041 0.326165 0.680286 -0.32613 0.0 +359 2.65 2.85 168.75 -0.921682 -0.890267 0.921631 0.414752 0.89028 -0.414752 0.0 +360 2.65 2.85 176.25 -1.05193 -1.01912 1.05183 0.468933 1.01918 -0.469002 0.0 +361 2.65 2.95 3.75 -652.979 -606.124 652.978 12075.3 606.124 -12075.3 0.0 +362 2.65 2.95 11.25 -403.824 -399.31 403.824 4765.3 399.31 -4765.3 0.0 +363 2.65 2.95 18.75 -187.153 -198.273 187.153 1631.6 198.273 -1631.6 0.0 +364 2.65 2.95 26.25 -66.1445 -73.0744 66.1444 465.712 73.0744 -465.712 0.0 +365 2.65 2.95 33.75 -17.7622 -18.4285 17.7623 99.7601 18.4285 -99.7601 0.0 +366 2.65 2.95 41.25 -3.98999 -2.7919 3.99011 13.9822 2.7919 -13.9822 0.0 +367 2.65 2.95 48.75 -0.962247 -0.422871 0.962286 1.0033 0.422848 -1.00329 0.0 +368 2.65 2.95 56.25 -0.219175 -0.313473 0.218952 -0.0875255 0.313511 0.0875306 0.0 +369 2.65 2.95 63.75 -0.044678 -0.231589 0.0446919 -0.204831 0.231605 0.204882 0.0 +370 2.65 2.95 71.25 -0.0396615 -0.157633 0.0394157 -0.207168 0.15761 0.207183 0.0 +371 2.65 2.95 78.75 0.000394622 -0.0817809 -0.000419789 -0.190543 0.0817504 0.19052 0.0 +372 2.65 2.95 86.25 0.0846769 0.0240518 -0.0846618 -0.190014 -0.0241096 0.19001 0.0 +373 2.65 2.95 93.75 0.158081 0.12764 -0.157821 -0.180645 -0.127555 0.18064 0.0 +374 2.65 2.95 101.25 0.189421 0.189324 -0.189292 -0.147352 -0.189274 0.147358 0.0 +375 2.65 2.95 108.75 0.164176 0.186927 -0.163977 -0.0895019 -0.186952 0.0894983 0.0 +376 2.65 2.95 116.25 0.0871432 0.125207 -0.0868669 -0.0199561 -0.125352 0.0199732 0.0 +377 2.65 2.95 123.75 -0.0085628 0.0365974 0.00860248 0.0390423 -0.0363033 -0.0391 0.0 +378 2.65 2.95 131.25 -0.0923265 -0.0482959 0.0922008 0.0760854 0.0485513 -0.0762079 0.0 +379 2.65 2.95 138.75 -0.169808 -0.131174 0.169899 0.102608 0.131327 -0.10265 0.0 +380 2.65 2.95 146.25 -0.277395 -0.242796 0.277398 0.141394 0.242783 -0.141344 0.0 +381 2.65 2.95 153.75 -0.440501 -0.407224 0.440757 0.205828 0.407133 -0.205796 0.0 +382 2.65 2.95 161.25 -0.645643 -0.610905 0.6459 0.288976 0.611281 -0.289147 0.0 +383 2.65 2.95 168.75 -0.840165 -0.802999 0.840107 0.367747 0.802858 -0.367578 0.0 +384 2.65 2.95 176.25 -0.958665 -0.920072 0.958486 0.415643 0.920088 -0.415608 0.0 +385 2.65 3.05 3.75 -535.332 -454.934 535.332 8760.56 454.934 -8760.56 0.0 +386 2.65 3.05 11.25 -331.494 -306.561 331.494 3960.52 306.561 -3960.52 0.0 +387 2.65 3.05 18.75 -145.715 -152.648 145.715 1393.82 152.648 -1393.82 0.0 +388 2.65 3.05 26.25 -45.1283 -55.696 45.1283 390.806 55.696 -390.806 0.0 +389 2.65 3.05 33.75 -9.03711 -13.9981 9.03714 79.4908 13.9982 -79.4908 0.0 +390 2.65 3.05 41.25 -1.22467 -2.35412 1.22472 9.98439 2.35415 -9.98442 0.0 +391 2.65 3.05 48.75 -0.350067 -0.498445 0.350201 0.482424 0.498397 -0.482377 0.0 +392 2.65 3.05 56.25 -0.145634 -0.296881 0.145625 -0.138328 0.296866 0.138253 0.0 +393 2.65 3.05 63.75 -0.0512301 -0.23938 0.0510461 -0.169789 0.239391 0.169777 0.0 +394 2.65 3.05 71.25 -0.0475131 -0.216688 0.0475797 -0.14914 0.21666 0.149179 0.0 +395 2.65 3.05 78.75 -0.0100019 -0.142708 0.0103876 -0.145447 0.142686 0.145453 0.0 +396 2.65 3.05 86.25 0.0629653 -0.0219697 -0.0630473 -0.155105 0.0219773 0.155114 0.0 +397 2.65 3.05 93.75 0.12664 0.0897788 -0.12658 -0.148638 -0.0897681 0.148648 0.0 +398 2.65 3.05 101.25 0.15677 0.161102 -0.15675 -0.121208 -0.161149 0.121229 0.0 +399 2.65 3.05 108.75 0.13765 0.175494 -0.137742 -0.0739815 -0.175467 0.0739654 0.0 +400 2.65 3.05 116.25 0.0719305 0.132074 -0.0719425 -0.0160117 -0.13204 0.0159808 0.0 +401 2.65 3.05 123.75 -0.0105205 0.0566312 0.0107171 0.0339816 -0.05635 -0.0341083 0.0 +402 2.65 3.05 131.25 -0.0825435 -0.0218324 0.0823353 0.0659987 0.0216974 -0.0659344 0.0 +403 2.65 3.05 138.75 -0.148847 -0.101917 0.149043 0.0897675 0.101945 -0.0897216 0.0 +404 2.65 3.05 146.25 -0.242919 -0.209388 0.242954 0.124121 0.209336 -0.12419 0.0 +405 2.65 3.05 153.75 -0.386426 -0.362461 0.386542 0.179324 0.362431 -0.179385 0.0 +406 2.65 3.05 161.25 -0.566176 -0.547526 0.566298 0.248855 0.547163 -0.248731 0.0 +407 2.65 3.05 168.75 -0.735042 -0.718844 0.735426 0.313712 0.718869 -0.313772 0.0 +408 2.65 3.05 176.25 -0.837976 -0.822371 0.837847 0.352792 0.822288 -0.352789 0.0 +409 2.65 3.15 3.75 -427.355 -285.2 427.355 6295.52 285.2 -6295.52 0.0 +410 2.65 3.15 11.25 -265.153 -194.02 265.153 3125.25 194.02 -3125.25 0.0 +411 2.65 3.15 18.75 -111.202 -95.1726 111.202 1125.35 95.1726 -1125.35 0.0 +412 2.65 3.15 26.25 -29.6517 -33.3268 29.6517 308.747 33.3268 -308.747 0.0 +413 2.65 3.15 33.75 -3.36664 -8.0325 3.36662 59.3209 8.03251 -59.3209 0.0 +414 2.65 3.15 41.25 0.370119 -1.56003 -0.370195 6.73765 1.55997 -6.73765 0.0 +415 2.65 3.15 48.75 -0.0293352 -0.505394 0.0293329 0.248728 0.505409 -0.248723 0.0 +416 2.65 3.15 56.25 -0.105843 -0.270835 0.105751 -0.145765 0.270743 0.145803 0.0 +417 2.65 3.15 63.75 -0.0513317 -0.246866 0.0514241 -0.147382 0.246878 0.147378 0.0 +418 2.65 3.15 71.25 -0.0501128 -0.275431 0.04993 -0.104001 0.275378 0.10398 0.0 +419 2.65 3.15 78.75 -0.0164568 -0.206434 0.0163659 -0.104649 0.206543 0.1047 0.0 +420 2.65 3.15 86.25 0.0461547 -0.0733023 -0.0462363 -0.11996 0.0733698 0.119964 0.0 +421 2.65 3.15 93.75 0.0990004 0.0476562 -0.0990613 -0.115936 -0.0477138 0.115929 0.0 +422 2.65 3.15 101.25 0.124404 0.129396 -0.124624 -0.0943304 -0.129428 0.0943415 0.0 +423 2.65 3.15 108.75 0.110989 0.159191 -0.110618 -0.0576564 -0.159015 0.0576196 0.0 +424 2.65 3.15 116.25 0.0587243 0.132639 -0.0587968 -0.0121644 -0.132721 0.0121638 0.0 +425 2.65 3.15 123.75 -0.00573936 0.071577 0.00545961 0.0272095 -0.0714379 -0.0272703 0.0 +426 2.65 3.15 131.25 -0.0595329 0.00372402 0.0596701 0.0523942 -0.00377444 -0.0523371 0.0 +427 2.65 3.15 138.75 -0.110101 -0.0680458 0.109914 0.0711533 0.0677435 -0.071079 0.0 +428 2.65 3.15 146.25 -0.183484 -0.162436 0.183193 0.097899 0.16187 -0.0976014 0.0 +429 2.65 3.15 153.75 -0.297201 -0.294331 0.297328 0.13994 0.294371 -0.13996 0.0 +430 2.65 3.15 161.25 -0.440022 -0.45053 0.440364 0.191997 0.45081 -0.192128 0.0 +431 2.65 3.15 168.75 -0.573979 -0.593135 0.574118 0.23999 0.593252 -0.240079 0.0 +432 2.65 3.15 176.25 -0.655332 -0.678506 0.655274 0.268714 0.678407 -0.2687 0.0 +433 2.65 3.25 3.75 -343.28 -124.107 343.28 4445.63 124.107 -4445.63 0.0 +434 2.65 3.25 11.25 -215.576 -82.5722 215.576 2350.25 82.5722 -2350.25 0.0 +435 2.65 3.25 18.75 -89.1611 -36.9434 89.1611 858.678 36.9434 -858.678 0.0 +436 2.65 3.25 26.25 -21.9322 -10.3742 21.9323 228.574 10.3742 -228.574 0.0 +437 2.65 3.25 33.75 -1.31403 -1.72106 1.31403 40.8621 1.72107 -40.8621 0.0 +438 2.65 3.25 41.25 0.795648 -0.575902 -0.795697 4.14894 0.57591 -4.14896 0.0 +439 2.65 3.25 48.75 0.0763357 -0.456169 -0.076398 0.148004 0.456256 -0.148065 0.0 +440 2.65 3.25 56.25 -0.063689 -0.249401 0.0637021 -0.13222 0.249531 0.132205 0.0 +441 2.65 3.25 63.75 -0.0358554 -0.249745 0.0359111 -0.121502 0.249724 0.121491 0.0 +442 2.65 3.25 71.25 -0.0428349 -0.311738 0.0428194 -0.0638131 0.311734 0.0637754 0.0 +443 2.65 3.25 78.75 -0.0147141 -0.250034 0.0144509 -0.0678206 0.250075 0.0677768 0.0 +444 2.65 3.25 86.25 0.0352991 -0.11503 -0.0353655 -0.0843742 0.115078 0.0843892 0.0 +445 2.65 3.25 93.75 0.0720144 0.00909964 -0.0719435 -0.0804605 -0.0090581 0.0804531 0.0 +446 2.65 3.25 101.25 0.0888655 0.0989902 -0.0887325 -0.0647524 -0.0990223 0.0647474 0.0 +447 2.65 3.25 108.75 0.0799171 0.143831 -0.0801351 -0.0405357 -0.143865 0.0405626 0.0 +448 2.65 3.25 116.25 0.0463151 0.13551 -0.0462271 -0.0103342 -0.135713 0.0104217 0.0 +449 2.65 3.25 123.75 0.00341445 0.0908375 -0.00340467 0.0161085 -0.0908948 -0.0161034 0.0 +450 2.65 3.25 131.25 -0.0328772 0.0354199 0.0327234 0.0332693 -0.0353895 -0.0333584 0.0 +451 2.65 3.25 138.75 -0.0675007 -0.0244596 0.0674606 0.0466046 0.0245277 -0.0466162 0.0 +452 2.65 3.25 146.25 -0.119973 -0.102745 0.119865 0.0658272 0.102678 -0.0658241 0.0 +453 2.65 3.25 153.75 -0.201674 -0.208813 0.202075 0.0954721 0.209073 -0.0955902 0.0 +454 2.65 3.25 161.25 -0.304347 -0.332116 0.304539 0.131641 0.332258 -0.131649 0.0 +455 2.65 3.25 168.75 -0.400265 -0.443353 0.400058 0.164689 0.443498 -0.164816 0.0 +456 2.65 3.25 176.25 -0.458148 -0.509414 0.458013 0.184384 0.509501 -0.184446 0.0 +457 2.65 3.35 3.75 -278.227 3.35188 278.227 2946.21 -3.35188 -2946.21 0.0 +458 2.65 3.35 11.25 -180.202 7.30679 180.202 1622.2 -7.30679 -1622.2 0.0 +459 2.65 3.35 18.75 -77.9402 10.1339 77.9402 594.724 -10.1339 -594.724 0.0 +460 2.65 3.35 26.25 -20.9467 8.02501 20.9466 151.361 -8.02502 -151.361 0.0 +461 2.65 3.35 33.75 -2.25835 3.3951 2.25826 24.3523 -3.39512 -24.3522 0.0 +462 2.65 3.35 41.25 0.363524 0.335418 -0.363448 2.07799 -0.335341 -2.07804 0.0 +463 2.65 3.35 48.75 0.0599237 -0.367988 -0.059957 0.0931953 0.367953 -0.0931855 0.0 +464 2.65 3.35 56.25 -0.0236982 -0.242143 0.0236458 -0.098598 0.242167 0.0985908 0.0 +465 2.65 3.35 63.75 -0.0239201 -0.250568 0.023879 -0.0793347 0.250659 0.0793004 0.0 +466 2.65 3.35 71.25 -0.0368509 -0.319915 0.0367806 -0.0239745 0.319926 0.0239988 0.0 +467 2.65 3.35 78.75 -0.0110244 -0.268487 0.0110139 -0.0344337 0.268438 0.0344165 0.0 +468 2.65 3.35 86.25 0.0245226 -0.144794 -0.024666 -0.0497857 0.144602 0.0497966 0.0 +469 2.65 3.35 93.75 0.0424081 -0.0251599 -0.0424651 -0.0453306 0.0251858 0.0453233 0.0 +470 2.65 3.35 101.25 0.04903 0.0707895 -0.0493151 -0.0359067 -0.0707318 0.0358776 0.0 +471 2.65 3.35 108.75 0.0471092 0.130164 -0.0471373 -0.0244748 -0.130189 0.0244837 0.0 +472 2.65 3.35 116.25 0.0314376 0.139837 -0.0314698 -0.00916072 -0.139805 0.00913728 0.0 +473 2.65 3.35 123.75 0.00660309 0.109671 -0.00661976 0.00590828 -0.109418 -0.00599612 0.0 +474 2.65 3.35 131.25 -0.0184331 0.0620534 0.0189306 0.0173272 -0.0619207 -0.0174002 0.0 +475 2.65 3.35 138.75 -0.0453275 0.00760214 0.0452428 0.0275525 -0.00734601 -0.027681 0.0 +476 2.65 3.35 146.25 -0.082266 -0.0599492 0.082171 0.0416578 0.0599927 -0.0416724 0.0 +477 2.65 3.35 153.75 -0.136274 -0.146184 0.136402 0.0620795 0.146055 -0.0619743 0.0 +478 2.65 3.35 161.25 -0.202661 -0.24297 0.20278 0.086379 0.243041 -0.0864087 0.0 +479 2.65 3.35 168.75 -0.264667 -0.328848 0.264622 0.108466 0.328816 -0.108439 0.0 +480 2.65 3.35 176.25 -0.302166 -0.379469 0.302333 0.121649 0.379451 -0.121585 0.0 +481 2.65 3.45 3.75 -181.094 56.5768 181.094 1415.07 -56.5768 -1415.07 0.0 +482 2.65 3.45 11.25 -122.646 43.7184 122.646 798.081 -43.7184 -798.081 0.0 +483 2.65 3.45 18.75 -57.6293 27.3547 57.6292 289.903 -27.3547 -289.903 0.0 +484 2.65 3.45 26.25 -18.2701 13.6208 18.2701 69.1213 -13.6207 -69.1213 0.0 +485 2.65 3.45 33.75 -3.43227 4.75555 3.43223 9.49818 -4.75554 -9.49816 0.0 +486 2.65 3.45 41.25 -0.262119 0.743592 0.262138 0.642703 -0.743569 -0.64265 0.0 +487 2.65 3.45 48.75 -0.0206249 -0.220801 0.0206949 0.0833427 0.220803 -0.0833703 0.0 +488 2.65 3.45 56.25 -0.0278092 -0.219147 0.0277268 -0.0418895 0.219207 0.0419362 0.0 +489 2.65 3.45 63.75 -0.0302865 -0.221675 0.0303371 -0.0292143 0.221725 0.0292088 0.0 +490 2.65 3.45 71.25 -0.0283973 -0.257992 0.0284536 0.00362643 0.257937 -0.00359012 0.0 +491 2.65 3.45 78.75 -0.00583895 -0.217814 0.00603552 -0.0105431 0.217741 0.0105389 0.0 +492 2.65 3.45 86.25 0.0119324 -0.129526 -0.0119649 -0.0224338 0.129557 0.0224452 0.0 +493 2.65 3.45 93.75 0.0144366 -0.0428903 -0.0145475 -0.0187179 0.0429014 0.0187299 0.0 +494 2.65 3.45 101.25 0.0149629 0.0297917 -0.015042 -0.0130715 -0.0298841 0.013074 0.0 +495 2.65 3.45 108.75 0.0176727 0.0802808 -0.0176481 -0.00859687 -0.0801128 0.00854075 0.0 +496 2.65 3.45 116.25 0.0142801 0.0968509 -0.0142142 -0.00275531 -0.0968446 0.00279613 0.0 +497 2.65 3.45 123.75 0.00274599 0.0822463 -0.00285046 0.00385754 -0.0822624 -0.00387098 0.0 +498 2.65 3.45 131.25 -0.0115459 0.0508246 0.0116421 0.00941126 -0.0506893 -0.00950556 0.0 +499 2.65 3.45 138.75 -0.0256544 0.0123774 0.0254092 0.0140698 -0.0124329 -0.0139752 0.0 +500 2.65 3.45 146.25 -0.0416502 -0.0338945 0.0416358 0.0199093 0.0339039 -0.0199382 0.0 +501 2.65 3.45 153.75 -0.06548 -0.0902951 0.0654101 0.02876 0.0902214 -0.0286754 0.0 +502 2.65 3.45 161.25 -0.0968618 -0.152516 0.096841 0.0402396 0.152761 -0.0403307 0.0 +503 2.65 3.45 168.75 -0.128132 -0.207768 0.128088 0.0514288 0.207796 -0.0514167 0.0 +504 2.65 3.45 176.25 -0.147889 -0.240577 0.147879 0.058392 0.24052 -0.0584226 0.0 +505 2.65 3.55 3.75 -77.1979 33.0526 77.1979 408.269 -33.0526 -408.269 0.0 +506 2.65 3.55 11.25 -54.4456 24.806 54.4456 233.071 -24.806 -233.071 0.0 +507 2.65 3.55 18.75 -27.4729 14.6982 27.4729 83.0823 -14.6982 -83.0823 0.0 +508 2.65 3.55 26.25 -9.74029 6.98034 9.74028 18.3878 -6.98034 -18.3878 0.0 +509 2.65 3.55 33.75 -2.26688 2.44976 2.26686 2.2212 -2.44975 -2.22122 0.0 +510 2.65 3.55 41.25 -0.338901 0.452784 0.338876 0.250018 -0.452783 -0.250042 0.0 +511 2.65 3.55 48.75 -0.085801 -0.0837087 0.0858276 0.0833161 0.0837009 -0.0833153 0.0 +512 2.65 3.55 56.25 -0.053787 -0.114074 0.0537453 -0.0208865 0.114083 0.0208809 0.0 +513 2.65 3.55 63.75 -0.0249841 -0.102636 0.0249818 -0.0169731 0.102618 0.0169814 0.0 +514 2.65 3.55 71.25 -0.00793484 -0.104993 0.0079199 0.00243536 0.104968 -0.00244121 0.0 +515 2.65 3.55 78.75 0.000477289 -0.083635 -0.000473373 -0.0028304 0.083634 0.00283354 0.0 +516 2.65 3.55 86.25 0.00225691 -0.0484377 -0.00227501 -0.00865479 0.0484012 0.00865592 0.0 +517 2.65 3.55 93.75 0.00072074 -0.0198074 -0.000659016 -0.00641186 0.0197662 0.00641637 0.0 +518 2.65 3.55 101.25 0.00112223 0.00094823 -0.0011259 -0.00217623 -0.000927796 0.00217226 0.0 +519 2.65 3.55 108.75 0.00303859 0.0169456 -0.0030474 0.000636489 -0.0170012 -0.000616911 0.0 +520 2.65 3.55 116.25 0.00293939 0.0254903 -0.00299498 0.00226534 -0.0254881 -0.00227427 0.0 +521 2.65 3.55 123.75 0.00105767 0.0250956 -0.00100249 0.00302411 -0.0251043 -0.00302286 0.0 +522 2.65 3.55 131.25 0.00089622 0.018822 -0.000861732 0.00254531 -0.0188028 -0.00256904 0.0 +523 2.65 3.55 138.75 0.00382565 0.0100627 -0.0038702 0.000936262 -0.0101195 -0.000921113 0.0 +524 2.65 3.55 146.25 0.00637878 -0.00112474 -0.0063611 -0.000499545 0.00116119 0.000462636 0.0 +525 2.65 3.55 153.75 0.00342379 -0.0163538 -0.00340327 -0.0001089 0.0163686 9.31942e-05 0.0 +526 2.65 3.55 161.25 -0.0063525 -0.0350349 0.00642576 0.00261085 0.0350954 -0.00266173 0.0 +527 2.65 3.55 168.75 -0.0193118 -0.0529521 0.01932 0.00641632 0.0530167 -0.00647477 0.0 +528 2.65 3.55 176.25 -0.0282729 -0.0640227 0.0283342 0.00913184 0.0640796 -0.00915341 0.0 +529 2.65 3.65 3.75 -9.07399 3.23181 9.07399 31.5979 -3.23181 -31.5979 0.0 +530 2.65 3.65 11.25 -6.54957 2.36668 6.54957 18.1922 -2.36668 -18.1922 0.0 +531 2.65 3.65 18.75 -3.41782 1.35636 3.41782 6.44075 -1.35636 -6.44075 0.0 +532 2.65 3.65 26.25 -1.25794 0.63761 1.25794 1.4388 -0.63761 -1.4388 0.0 +533 2.65 3.65 33.75 -0.314954 0.229217 0.314955 0.252105 -0.229219 -0.252103 0.0 +534 2.65 3.65 41.25 -0.0703285 0.0433984 0.0703295 0.0804037 -0.0433987 -0.080406 0.0 +535 2.65 3.65 48.75 -0.0346923 -0.00594178 0.0346905 0.0178914 0.00594136 -0.0178931 0.0 +536 2.65 3.65 56.25 -0.0178793 -0.00218658 0.0178826 -0.0109585 0.00218474 0.0109613 0.0 +537 2.65 3.65 63.75 -0.00296649 0.00371443 0.00296685 -0.0077863 -0.00371456 0.00778602 0.0 +538 2.65 3.65 71.25 0.00156936 0.00391538 -0.00157049 -0.000554586 -0.00391343 0.000556069 0.0 +539 2.65 3.65 78.75 4.72839e-05 0.00437901 -5.76159e-05 0.000766606 -0.00437852 -0.000767667 0.0 +540 2.65 3.65 86.25 -0.00150151 0.00465743 0.00150145 4.48359e-05 -0.00465746 -4.47759e-05 0.0 +541 2.65 3.65 93.75 -0.00154911 0.0023728 0.00155712 3.94444e-05 -0.00237267 -3.93568e-05 0.0 +542 2.65 3.65 101.25 -0.00102647 -0.00107232 0.0010322 0.000455843 0.00107411 -0.000456348 0.0 +543 2.65 3.65 108.75 -0.000931385 -0.00331098 0.000926423 0.000617065 0.00331642 -0.000619741 0.0 +544 2.65 3.65 116.25 -0.00125989 -0.00405896 0.00125662 0.000489735 0.00405917 -0.000489051 0.0 +545 2.65 3.65 123.75 -0.00119027 -0.00416793 0.00118127 0.00025776 0.00417216 -0.000258364 0.0 +546 2.65 3.65 131.25 2.02558e-06 -0.00385544 9.97877e-07 -5.65576e-05 0.00385538 5.6561e-05 0.0 +547 2.65 3.65 138.75 0.0019471 -0.0027434 -0.00193851 -0.000439961 0.00274576 0.000440451 0.0 +548 2.65 3.65 146.25 0.00340728 -0.000754999 -0.00340313 -0.000680537 0.000762165 0.000677165 0.0 +549 2.65 3.65 153.75 0.00324508 0.00162334 -0.00324525 -0.000497576 -0.00162245 0.000496814 0.0 +550 2.65 3.65 161.25 0.00132741 0.00369896 -0.00132849 0.000164919 -0.00371082 -0.000158918 0.0 +551 2.65 3.65 168.75 -0.00130947 0.00507786 0.00131187 0.00102227 -0.00507988 -0.00102051 0.0 +552 2.65 3.65 176.25 -0.00317672 0.00571563 0.00316942 0.00161776 -0.00571614 -0.00161842 0.0 +553 2.75 2.75 3.75 -953.112 -854.306 953.112 25981 854.306 -25981 0.0 +554 2.75 2.75 11.25 -539.051 -520.941 539.051 5855.95 520.941 -5855.95 0.0 +555 2.75 2.75 18.75 -242.983 -254.204 242.983 1824.66 254.204 -1824.66 0.0 +556 2.75 2.75 26.25 -83.2573 -94.4794 83.2573 502.272 94.4793 -502.272 0.0 +557 2.75 2.75 33.75 -20.5412 -24.7823 20.5412 104.828 24.7823 -104.828 0.0 +558 2.75 2.75 41.25 -3.9136 -4.29412 3.91362 14.9464 4.2941 -14.9465 0.0 +559 2.75 2.75 48.75 -1.12328 -0.873619 1.12322 1.93019 0.873624 -1.93018 0.0 +560 2.75 2.75 56.25 -0.514324 -0.496154 0.514312 0.391368 0.496221 -0.39134 0.0 +561 2.75 2.75 63.75 -0.164596 -0.213443 0.164691 -0.208447 0.213484 0.208481 0.0 +562 2.75 2.75 71.25 -0.041967 -0.0485499 0.0420123 -0.328452 0.0485135 0.328445 0.0 +563 2.75 2.75 78.75 0.00770861 0.0144404 -0.0076428 -0.256255 -0.0144125 0.25625 0.0 +564 2.75 2.75 86.25 0.090797 0.0907928 -0.090835 -0.225168 -0.0907865 0.225168 0.0 +565 2.75 2.75 93.75 0.181978 0.179759 -0.182045 -0.218388 -0.179673 0.218388 0.0 +566 2.75 2.75 101.25 0.225859 0.223811 -0.2259 -0.17996 -0.22375 0.17996 0.0 +567 2.75 2.75 108.75 0.197221 0.193022 -0.197213 -0.105534 -0.19316 0.105561 0.0 +568 2.75 2.75 116.25 0.109362 0.103419 -0.109316 -0.0211263 -0.10351 0.0211473 0.0 +569 2.75 2.75 123.75 0.00356169 -0.00337669 -0.00365545 0.0468134 0.00343037 -0.0468135 0.0 +570 2.75 2.75 131.25 -0.0899181 -0.097849 0.0896843 0.0904862 0.0978568 -0.090473 0.0 +571 2.75 2.75 138.75 -0.180752 -0.189165 0.180483 0.124806 0.189251 -0.124873 0.0 +572 2.75 2.75 146.25 -0.307245 -0.315227 0.307006 0.173842 0.315177 -0.173832 0.0 +573 2.75 2.75 153.75 -0.495888 -0.504071 0.495883 0.250885 0.504047 -0.250882 0.0 +574 2.75 2.75 161.25 -0.730452 -0.740638 0.730449 0.347741 0.740677 -0.347784 0.0 +575 2.75 2.75 168.75 -0.951281 -0.965256 0.9512 0.438629 0.965085 -0.438584 0.0 +576 2.75 2.75 176.25 -1.08583 -1.10279 1.08592 0.493743 1.10285 -0.493793 0.0 +577 2.75 2.85 3.75 -970.563 -775.744 970.563 23153.2 775.744 -23153.2 0.0 +578 2.75 2.85 11.25 -556.721 -474.097 556.721 5862.74 474.097 -5862.74 0.0 +579 2.75 2.85 18.75 -250.751 -224.584 250.751 1827.2 224.584 -1827.2 0.0 +580 2.75 2.85 26.25 -86.059 -77.5526 86.059 494.052 77.5526 -494.052 0.0 +581 2.75 2.85 33.75 -21.7848 -16.8577 21.7848 99.2767 16.8577 -99.2767 0.0 +582 2.75 2.85 41.25 -4.50961 -1.52272 4.5095 12.9376 1.52274 -12.9376 0.0 +583 2.75 2.85 48.75 -1.25065 -0.243785 1.25071 1.39261 0.243763 -1.39263 0.0 +584 2.75 2.85 56.25 -0.463066 -0.460087 0.463015 0.300113 0.460075 -0.300136 0.0 +585 2.75 2.85 63.75 -0.151187 -0.275288 0.151132 -0.144808 0.275348 0.144857 0.0 +586 2.75 2.85 71.25 -0.0749749 -0.110892 0.0749169 -0.249281 0.110829 0.249264 0.0 +587 2.75 2.85 78.75 -0.0201116 -0.0351113 0.0202283 -0.210984 0.0351362 0.210976 0.0 +588 2.75 2.85 86.25 0.0736389 0.0501401 -0.0736054 -0.194737 -0.0502144 0.194733 0.0 +589 2.75 2.85 93.75 0.160078 0.146192 -0.159898 -0.1879 -0.146241 0.187904 0.0 +590 2.75 2.85 101.25 0.200786 0.204303 -0.200728 -0.156391 -0.204259 0.156374 0.0 +591 2.75 2.85 108.75 0.17997 0.193028 -0.179585 -0.0955768 -0.192919 0.0955569 0.0 +592 2.75 2.85 116.25 0.103624 0.119278 -0.103941 -0.0221991 -0.119219 0.0221951 0.0 +593 2.75 2.85 123.75 0.00644177 0.0211333 -0.00659697 0.0394802 -0.0210367 -0.0394978 0.0 +594 2.75 2.85 131.25 -0.0803186 -0.0672129 0.080414 0.0781492 0.0671178 -0.0781413 0.0 +595 2.75 2.85 138.75 -0.161637 -0.148838 0.161505 0.105436 0.149111 -0.105534 0.0 +596 2.75 2.85 146.25 -0.270086 -0.257695 0.270083 0.14428 0.257823 -0.144344 0.0 +597 2.75 2.85 153.75 -0.43239 -0.421507 0.432363 0.208547 0.421587 -0.208591 0.0 +598 2.75 2.85 161.25 -0.634898 -0.628455 0.634872 0.291785 0.628448 -0.291789 0.0 +599 2.75 2.85 168.75 -0.826247 -0.825693 0.826352 0.370982 0.825733 -0.37098 0.0 +600 2.75 2.85 176.25 -0.943351 -0.946865 0.943117 0.419282 0.946914 -0.419356 0.0 +601 2.75 2.95 3.75 -897.538 -636.356 897.538 17274.5 636.356 -17274.5 0.0 +602 2.75 2.95 11.25 -527.594 -400.007 527.594 5426.93 400.007 -5426.93 0.0 +603 2.75 2.95 18.75 -234.856 -188.606 234.856 1719.6 188.606 -1719.6 0.0 +604 2.75 2.95 26.25 -78.0109 -63.1924 78.0109 457.632 63.1924 -457.632 0.0 +605 2.75 2.95 33.75 -18.5523 -12.6415 18.5523 88.2261 12.6415 -88.2261 0.0 +606 2.75 2.95 41.25 -3.43241 -0.788747 3.43237 10.3311 0.788758 -10.3311 0.0 +607 2.75 2.95 48.75 -0.834456 -0.199558 0.834517 0.799118 0.199613 -0.799125 0.0 +608 2.75 2.95 56.25 -0.273778 -0.463123 0.273749 0.148104 0.463143 -0.148167 0.0 +609 2.75 2.95 63.75 -0.103413 -0.318818 0.103504 -0.111608 0.31885 0.111645 0.0 +610 2.75 2.95 71.25 -0.0843263 -0.181793 0.0843793 -0.175312 0.181809 0.175287 0.0 +611 2.75 2.95 78.75 -0.0303993 -0.093494 0.0304044 -0.167209 0.0935528 0.167232 0.0 +612 2.75 2.95 86.25 0.0620423 0.00699782 -0.0622995 -0.169543 -0.00683051 0.169553 0.0 +613 2.75 2.95 93.75 0.136614 0.106217 -0.136678 -0.163514 -0.106191 0.163506 0.0 +614 2.75 2.95 101.25 0.17196 0.170249 -0.171903 -0.134812 -0.170364 0.13483 0.0 +615 2.75 2.95 108.75 0.15684 0.174342 -0.156924 -0.0828548 -0.174193 0.082802 0.0 +616 2.75 2.95 116.25 0.0926482 0.118695 -0.0927901 -0.0195911 -0.118646 0.0195826 0.0 +617 2.75 2.95 123.75 0.00849675 0.0355959 -0.00833828 0.0336514 -0.0356652 -0.0336479 0.0 +618 2.75 2.95 131.25 -0.0660839 -0.0418908 0.0662238 0.0659291 0.041797 -0.065883 0.0 +619 2.75 2.95 138.75 -0.134275 -0.114174 0.134106 0.0880437 0.114322 -0.0880806 0.0 +620 2.75 2.95 146.25 -0.227305 -0.21177 0.227027 0.121094 0.2116 -0.121002 0.0 +621 2.75 2.95 153.75 -0.368554 -0.358527 0.368374 0.177219 0.358663 -0.177335 0.0 +622 2.75 2.95 161.25 -0.546482 -0.542986 0.546711 0.250148 0.542877 -0.250051 0.0 +623 2.75 2.95 168.75 -0.715439 -0.717898 0.715379 0.319323 0.717937 -0.319304 0.0 +624 2.75 2.95 176.25 -0.817997 -0.824689 0.818295 0.361371 0.825027 -0.361574 0.0 +625 2.75 3.05 3.75 -770.161 -463.434 770.161 12393.7 463.434 -12393.7 0.0 +626 2.75 3.05 11.25 -462.237 -301.474 462.237 4693.99 301.474 -4693.99 0.0 +627 2.75 3.05 18.75 -201.495 -143.479 201.495 1525.17 143.479 -1525.17 0.0 +628 2.75 3.05 26.25 -62.9238 -47.8688 62.9238 399.794 47.8688 -399.794 0.0 +629 2.75 3.05 33.75 -12.9682 -9.61891 12.9682 73.8547 9.61892 -73.8547 0.0 +630 2.75 3.05 41.25 -1.7583 -0.85457 1.75829 7.81837 0.854518 -7.81834 0.0 +631 2.75 3.05 48.75 -0.381642 -0.346117 0.381587 0.40516 0.34605 -0.405176 0.0 +632 2.75 3.05 56.25 -0.163641 -0.440252 0.163583 0.0381865 0.440156 -0.0381959 0.0 +633 2.75 3.05 63.75 -0.103568 -0.332346 0.103485 -0.0833787 0.332372 0.0833554 0.0 +634 2.75 3.05 71.25 -0.101444 -0.24461 0.101602 -0.107568 0.244525 0.107546 0.0 +635 2.75 3.05 78.75 -0.038508 -0.1504 0.038783 -0.1224 0.150253 0.122395 0.0 +636 2.75 3.05 86.25 0.0496984 -0.0343332 -0.0494439 -0.140095 0.0345932 0.140101 0.0 +637 2.75 3.05 93.75 0.111297 0.06995 -0.111612 -0.135869 -0.0701637 0.135882 0.0 +638 2.75 3.05 101.25 0.140426 0.140943 -0.140275 -0.110396 -0.140778 0.110407 0.0 +639 2.75 3.05 108.75 0.12795 0.158778 -0.128322 -0.0664922 -0.158818 0.0664985 0.0 +640 2.75 3.05 116.25 0.0728381 0.119891 -0.0730793 -0.0130873 -0.11982 0.0129934 0.0 +641 2.75 3.05 123.75 0.000267345 0.0511317 -9.01598e-05 0.0314953 -0.0510922 -0.03149 0.0 +642 2.75 3.05 131.25 -0.063069 -0.0174406 0.0628665 0.0580034 0.0170276 -0.0579042 0.0 +643 2.75 3.05 138.75 -0.119018 -0.0842153 0.11903 0.0763319 0.0841315 -0.0762935 0.0 +644 2.75 3.05 146.25 -0.197865 -0.1752 0.197467 0.104414 0.175196 -0.104295 0.0 +645 2.75 3.05 153.75 -0.319615 -0.309756 0.319424 0.151665 0.309809 -0.15167 0.0 +646 2.75 3.05 161.25 -0.473103 -0.474577 0.47295 0.212121 0.474601 -0.212138 0.0 +647 2.75 3.05 168.75 -0.617392 -0.628077 0.617611 0.268756 0.627819 -0.268631 0.0 +648 2.75 3.05 176.25 -0.705354 -0.720636 0.705297 0.302934 0.720794 -0.303013 0.0 +649 2.75 3.15 3.75 -621.059 -283.307 621.059 8818.58 283.307 -8818.58 0.0 +650 2.75 3.15 11.25 -378.076 -190.869 378.076 3830.09 190.869 -3830.09 0.0 +651 2.75 3.15 18.75 -160.427 -92.3481 160.427 1277.7 92.3481 -1277.7 0.0 +652 2.75 3.15 26.25 -45.9966 -30.9532 45.9966 329.373 30.9532 -329.373 0.0 +653 2.75 3.15 33.75 -7.4094 -6.49374 7.40945 58.1344 6.49371 -58.1344 0.0 +654 2.75 3.15 41.25 -0.360268 -0.948504 0.360207 5.64912 0.948525 -5.64911 0.0 +655 2.75 3.15 48.75 -0.109681 -0.454359 0.109583 0.215632 0.454311 -0.215651 0.0 +656 2.75 3.15 56.25 -0.128581 -0.381055 0.12849 -0.024614 0.380998 0.0245607 0.0 +657 2.75 3.15 63.75 -0.107772 -0.325095 0.107852 -0.0656164 0.325178 0.0656213 0.0 +658 2.75 3.15 71.25 -0.10009 -0.293719 0.100061 -0.059479 0.293753 0.059475 0.0 +659 2.75 3.15 78.75 -0.036158 -0.200438 0.0358502 -0.0856231 0.200546 0.0856524 0.0 +660 2.75 3.15 86.25 0.0377439 -0.0742392 -0.037571 -0.109183 0.0742289 0.109172 0.0 +661 2.75 3.15 93.75 0.0838315 0.0343987 -0.0838656 -0.104987 -0.0344864 0.105012 0.0 +662 2.75 3.15 101.25 0.106057 0.110494 -0.106108 -0.0834801 -0.110598 0.0834927 0.0 +663 2.75 3.15 108.75 0.0968552 0.139813 -0.0967877 -0.0483794 -0.139765 0.0483448 0.0 +664 2.75 3.15 116.25 0.051391 0.115917 -0.0515763 -0.0060004 -0.116112 0.00610288 0.0 +665 2.75 3.15 123.75 -0.00713598 0.0613642 0.00718246 0.0286098 -0.0614779 -0.0285439 0.0 +666 2.75 3.15 131.25 -0.0559847 0.00396885 0.0560961 0.0483465 -0.00390007 -0.0484359 0.0 +667 2.75 3.15 138.75 -0.0990609 -0.0545791 0.0984659 0.061732 0.0548182 -0.0618343 0.0 +668 2.75 3.15 146.25 -0.159454 -0.134936 0.1595 0.0827794 0.135061 -0.08272 0.0 +669 2.75 3.15 153.75 -0.25524 -0.251075 0.255086 0.118141 0.251122 -0.118172 0.0 +670 2.75 3.15 161.25 -0.375288 -0.38964 0.375663 0.162894 0.389747 -0.16293 0.0 +671 2.75 3.15 168.75 -0.488486 -0.516392 0.488643 0.204424 0.516148 -0.204273 0.0 +672 2.75 3.15 176.25 -0.556839 -0.591689 0.556911 0.229329 0.591767 -0.229304 0.0 +673 2.75 3.25 3.75 -476.667 -121.19 476.667 6210.58 121.19 -6210.58 0.0 +674 2.75 3.25 11.25 -293.373 -85.8334 293.373 2968.1 85.8334 -2968.1 0.0 +675 2.75 3.25 18.75 -121.508 -42.7495 121.508 1012.27 42.7495 -1012.27 0.0 +676 2.75 3.25 26.25 -31.8786 -14.325 31.8786 255.334 14.325 -255.334 0.0 +677 2.75 3.25 33.75 -3.63288 -3.16546 3.63301 42.6516 3.16544 -42.6516 0.0 +678 2.75 3.25 41.25 0.315726 -0.793557 -0.315791 3.80727 0.79365 -3.8073 0.0 +679 2.75 3.25 48.75 -0.0242544 -0.460584 0.0242178 0.130581 0.460619 -0.130536 0.0 +680 2.75 3.25 56.25 -0.0991531 -0.30838 0.0992679 -0.0606306 0.308269 0.0605918 0.0 +681 2.75 3.25 63.75 -0.0775749 -0.303078 0.0775341 -0.058713 0.303134 0.0587059 0.0 +682 2.75 3.25 71.25 -0.0726081 -0.316404 0.0725509 -0.0320203 0.316355 0.0321083 0.0 +683 2.75 3.25 78.75 -0.0250871 -0.232854 0.0249036 -0.0576022 0.232759 0.0576201 0.0 +684 2.75 3.25 86.25 0.0262879 -0.108161 -0.0264355 -0.0771184 0.108011 0.0771155 0.0 +685 2.75 3.25 93.75 0.0560476 -0.000207024 -0.0559883 -0.0716051 0.000146475 0.0716155 0.0 +686 2.75 3.25 101.25 0.072468 0.0806321 -0.0723149 -0.0559611 -0.0805163 0.0559016 0.0 +687 2.75 3.25 108.75 0.0683282 0.121003 -0.068317 -0.0319853 -0.121 0.0319423 0.0 +688 2.75 3.25 116.25 0.0376756 0.112607 -0.037291 -0.00283035 -0.112703 0.00284452 0.0 +689 2.75 3.25 123.75 -0.00470402 0.0730337 0.00443815 0.0205484 -0.072994 -0.0206443 0.0 +690 2.75 3.25 131.25 -0.0393657 0.0275953 0.0393646 0.0333389 -0.02763 -0.0332308 0.0 +691 2.75 3.25 138.75 -0.0690594 -0.0208708 0.0692442 0.0419952 0.0207699 -0.0419967 0.0 +692 2.75 3.25 146.25 -0.111014 -0.0862657 0.110952 0.0560987 0.0863438 -0.0561322 0.0 +693 2.75 3.25 153.75 -0.176809 -0.178443 0.176496 0.0798216 0.178512 -0.0798746 0.0 +694 2.75 3.25 161.25 -0.258767 -0.286055 0.259122 0.109635 0.286421 -0.109773 0.0 +695 2.75 3.25 168.75 -0.336709 -0.383242 0.3365 0.137155 0.383371 -0.137249 0.0 +696 2.75 3.25 176.25 -0.383233 -0.440518 0.383304 0.153612 0.440294 -0.153402 0.0 +697 2.75 3.35 3.75 -341.385 1.74756 341.385 4134.74 -1.74757 -4134.74 0.0 +698 2.75 3.35 11.25 -213.168 -3.19693 213.168 2109.24 3.19691 -2109.24 0.0 +699 2.75 3.35 18.75 -87.8275 -2.99417 87.8276 729.622 2.99416 -729.622 0.0 +700 2.75 3.35 26.25 -22.0888 -0.704944 22.0887 178.369 0.70499 -178.369 0.0 +701 2.75 3.35 33.75 -2.07542 -0.0682655 2.0755 27.6089 0.0682662 -27.6089 0.0 +702 2.75 3.35 41.25 0.300247 -0.350456 -0.300305 2.18926 0.350473 -2.18927 0.0 +703 2.75 3.35 48.75 -0.0373785 -0.369541 0.0374118 0.0833796 0.36958 -0.083402 0.0 +704 2.75 3.35 56.25 -0.0518069 -0.259322 0.0517312 -0.0686295 0.259412 0.0687251 0.0 +705 2.75 3.35 63.75 -0.0322367 -0.285586 0.0323754 -0.0471277 0.285461 0.0471608 0.0 +706 2.75 3.35 71.25 -0.0437375 -0.317171 0.043788 -0.0133265 0.317084 0.0133532 0.0 +707 2.75 3.35 78.75 -0.0172441 -0.248737 0.0171536 -0.0330689 0.248747 0.0330618 0.0 +708 2.75 3.35 86.25 0.0144849 -0.135178 -0.014571 -0.0452186 0.135353 0.0452189 0.0 +709 2.75 3.35 93.75 0.030471 -0.0300865 -0.030347 -0.0398041 0.0300945 0.0397911 0.0 +710 2.75 3.35 101.25 0.0406014 0.0563913 -0.0407253 -0.0312837 -0.0564639 0.0312859 0.0 +711 2.75 3.35 108.75 0.0422766 0.108893 -0.0423538 -0.0189637 -0.109138 0.0190212 0.0 +712 2.75 3.35 116.25 0.0267588 0.115186 -0.0269597 -0.00297617 -0.11525 0.00295127 0.0 +713 2.75 3.35 123.75 0.000501099 0.0878862 -0.000774694 0.0104498 -0.0881349 -0.0102325 0.0 +714 2.75 3.35 131.25 -0.0236225 0.0489236 0.0238085 0.0185255 -0.0490552 -0.0184822 0.0 +715 2.75 3.35 138.75 -0.0444452 0.00629968 0.044223 0.0246731 -0.00652667 -0.0245664 0.0 +716 2.75 3.35 146.25 -0.0693381 -0.0474412 0.069485 0.0339103 0.0474594 -0.0339419 0.0 +717 2.75 3.35 153.75 -0.107186 -0.118947 0.107138 0.0484857 0.1189 -0.0484203 0.0 +718 2.75 3.35 161.25 -0.154793 -0.200912 0.154723 0.0665572 0.200588 -0.0663788 0.0 +719 2.75 3.35 168.75 -0.200583 -0.274251 0.200264 0.0833152 0.274149 -0.0833102 0.0 +720 2.75 3.35 176.25 -0.22795 -0.317539 0.228214 0.0934114 0.317615 -0.093522 0.0 +721 2.75 3.45 3.75 -181.602 50.4515 181.602 2007.55 -50.4515 -2007.55 0.0 +722 2.75 3.45 11.25 -116.135 31.353 116.135 1069.23 -31.3531 -1069.23 0.0 +723 2.75 3.45 18.75 -49.1544 14.1197 49.1544 371.433 -14.1197 -371.433 0.0 +724 2.75 3.45 26.25 -12.9027 5.27843 12.9027 86.871 -5.27842 -86.871 0.0 +725 2.75 3.45 33.75 -1.53044 1.58922 1.53042 12.1098 -1.58919 -12.1098 0.0 +726 2.75 3.45 41.25 0.0034182 0.175305 -0.00341175 0.852259 -0.175314 -0.852262 0.0 +727 2.75 3.45 48.75 -0.0627082 -0.187051 0.0626463 0.0745378 0.187162 -0.0745079 0.0 +728 2.75 3.45 56.25 -0.0269175 -0.208615 0.0269865 -0.0380544 0.208565 0.0380413 0.0 +729 2.75 3.45 63.75 -0.0156683 -0.232533 0.0156754 -0.0230666 0.232476 0.0230535 0.0 +730 2.75 3.45 71.25 -0.027083 -0.247837 0.027041 5.30776e-05 0.247723 -0.000124963 0.0 +731 2.75 3.45 78.75 -0.0110419 -0.199747 0.0110237 -0.01275 0.199733 0.0127249 0.0 +732 2.75 3.45 86.25 0.00600723 -0.118375 -0.00584057 -0.01943 0.118327 0.0194294 0.0 +733 2.75 3.45 93.75 0.00873478 -0.0394094 -0.00879205 -0.0152652 0.0394659 0.0152585 0.0 +734 2.75 3.45 101.25 0.00962037 0.0272073 -0.00960224 -0.0103152 -0.0271381 0.0103031 0.0 +735 2.75 3.45 108.75 0.0122306 0.0719369 -0.0122886 -0.00545491 -0.071926 0.00547195 0.0 +736 2.75 3.45 116.25 0.00974245 0.0846866 -0.00979763 -2.00295e-05 -0.084746 5.2625e-05 0.0 +737 2.75 3.45 123.75 0.000243929 0.070346 -0.000352399 0.00484904 -0.0702929 -0.00489636 0.0 +738 2.75 3.45 131.25 -0.010453 0.043801 0.0102586 0.00831848 -0.0439736 -0.00824598 0.0 +739 2.75 3.45 138.75 -0.0180464 0.0137037 0.0179837 0.0107806 -0.0137201 -0.0108167 0.0 +740 2.75 3.45 146.25 -0.025475 -0.0218772 0.0256088 0.0136926 0.0220646 -0.0138449 0.0 +741 2.75 3.45 153.75 -0.0382383 -0.0672046 0.0382092 0.0186021 0.0672579 -0.018626 0.0 +742 2.75 3.45 161.25 -0.0575259 -0.119353 0.0574959 0.0256839 0.119252 -0.0256513 0.0 +743 2.75 3.45 168.75 -0.0781428 -0.166869 0.078149 0.0330717 0.16689 -0.0331148 0.0 +744 2.75 3.45 176.25 -0.0916728 -0.195518 0.0917779 0.0378401 0.195665 -0.037981 0.0 +745 2.75 3.55 3.75 -60.5153 27.692 60.5153 588.046 -27.692 -588.046 0.0 +746 2.75 3.55 11.25 -39.8784 17.4201 39.8784 321.892 -17.4201 -321.892 0.0 +747 2.75 3.55 18.75 -17.6334 7.7718 17.6334 111.365 -7.7718 -111.365 0.0 +748 2.75 3.55 26.25 -4.94614 2.91047 4.94616 24.801 -2.91047 -24.801 0.0 +749 2.75 3.55 33.75 -0.717862 1.02613 0.717872 3.21211 -1.02616 -3.21209 0.0 +750 2.75 3.55 41.25 -0.0703286 0.253386 0.0703577 0.326292 -0.253389 -0.326305 0.0 +751 2.75 3.55 48.75 -0.0696314 -0.0360868 0.0696098 0.0745468 0.0361057 -0.0745544 0.0 +752 2.75 3.55 56.25 -0.0386849 -0.0894109 0.0386635 -0.0191097 0.0894516 0.0190794 0.0 +753 2.75 3.55 63.75 -0.0158765 -0.0925221 0.0158458 -0.0145167 0.09256 0.0145237 0.0 +754 2.75 3.55 71.25 -0.00997075 -0.0929607 0.00998059 0.000467248 0.0929809 -0.000443377 0.0 +755 2.75 3.55 78.75 -0.00149974 -0.0734939 0.00146198 -0.00355586 0.0735358 0.00355353 0.0 +756 2.75 3.55 86.25 0.0028805 -0.042718 -0.00289025 -0.00634796 0.0427423 0.00634686 0.0 +757 2.75 3.55 93.75 -0.000895397 -0.0173398 0.000915914 -0.00268197 0.0173692 0.00268557 0.0 +758 2.75 3.55 101.25 -0.00461455 0.00200332 0.00464936 0.00177679 -0.00195006 -0.0017874 0.0 +759 2.75 3.55 108.75 -0.00367123 0.0176377 0.00372332 0.00363241 -0.0176972 -0.00361264 0.0 +760 2.75 3.55 116.25 -0.00131124 0.0260317 0.00133193 0.00346321 -0.0260021 -0.00346733 0.0 +761 2.75 3.55 123.75 -0.000257145 0.0251737 0.000204938 0.00292588 -0.0251838 -0.00291469 0.0 +762 2.75 3.55 131.25 0.000973531 0.0188626 -0.000971992 0.00228745 -0.0188196 -0.00232812 0.0 +763 2.75 3.55 138.75 0.00409367 0.011615 -0.00404917 0.000911448 -0.011591 -0.000925473 0.0 +764 2.75 3.55 146.25 0.00744491 0.00348645 -0.0075166 -0.000905243 -0.00344952 0.000869305 0.0 +765 2.75 3.55 153.75 0.00762023 -0.00783196 -0.00763712 -0.00180907 0.00784858 0.00180265 0.0 +766 2.75 3.55 161.25 0.00271034 -0.0229315 -0.00264761 -0.000890015 0.0229401 0.000888095 0.0 +767 2.75 3.55 168.75 -0.0051415 -0.0382675 0.00514139 0.00125874 0.0383533 -0.00131918 0.0 +768 2.75 3.55 176.25 -0.0109249 -0.0480268 0.0109626 0.00300256 0.0480665 -0.00301775 0.0 +769 2.75 3.65 3.75 -5.4585 2.19054 5.4585 46.1523 -2.19054 -46.1523 0.0 +770 2.75 3.65 11.25 -3.66097 1.22096 3.66097 25.7483 -1.22096 -25.7483 0.0 +771 2.75 3.65 18.75 -1.63156 0.409151 1.63156 8.91799 -0.409152 -8.91799 0.0 +772 2.75 3.65 26.25 -0.435259 0.123143 0.435261 1.99397 -0.123144 -1.99397 0.0 +773 2.75 3.65 33.75 -0.0493642 0.0652704 0.0493648 0.328683 -0.0652688 -0.328684 0.0 +774 2.75 3.65 41.25 -0.0146925 0.0282769 0.0146967 0.0813637 -0.0282736 -0.0813666 0.0 +775 2.75 3.65 48.75 -0.0246544 0.00490522 0.0246565 0.0166878 -0.00490432 -0.0166888 0.0 +776 2.75 3.65 56.25 -0.0139125 0.00395284 0.0139089 -0.00867723 -0.00395188 0.00867599 0.0 +777 2.75 3.65 63.75 -0.00270241 0.00619066 0.00270068 -0.00571762 -0.00619525 0.00571944 0.0 +778 2.75 3.65 71.25 0.000519918 0.00471435 -0.000521654 -8.15984e-06 -0.00471422 7.2579e-06 0.0 +779 2.75 3.65 78.75 0.000501459 0.00398609 -0.00050026 0.000797399 -0.00398918 -0.000797502 0.0 +780 2.75 3.65 86.25 -4.4671e-05 0.00352149 4.27284e-05 0.000514162 -0.00352011 -0.000514185 0.0 +781 2.75 3.65 93.75 -0.000889969 0.00110883 0.000890202 0.00115235 -0.00110879 -0.00115223 0.0 +782 2.75 3.65 101.25 -0.00151239 -0.00165277 0.00151236 0.00181475 0.00164834 -0.00181365 0.0 +783 2.75 3.65 108.75 -0.00161992 -0.00273717 0.00161755 0.00169929 0.00273792 -0.00169984 0.0 +784 2.75 3.65 116.25 -0.00158692 -0.00271981 0.00158207 0.00119301 0.00272293 -0.00119423 0.0 +785 2.75 3.65 123.75 -0.00161004 -0.0028994 0.00160522 0.000901196 0.00289974 -0.000900406 0.0 +786 2.75 3.65 131.25 -0.00135618 -0.00318701 0.00134929 0.000817217 0.00318514 -0.000815958 0.0 +787 2.75 3.65 138.75 -0.000562397 -0.00258908 0.000562926 0.000632375 0.00259618 -0.000635132 0.0 +788 2.75 3.65 146.25 0.000398525 -0.000673377 -0.000405592 0.000326015 0.000673344 -0.000326095 0.0 +789 2.75 3.65 153.75 0.000850024 0.00202598 -0.000855047 0.000185369 -0.00202081 -0.000188642 0.0 +790 2.75 3.65 161.25 0.000434663 0.00458686 -0.000435573 0.000417059 -0.00458533 -0.000417937 0.0 +791 2.75 3.65 168.75 -0.000552814 0.00638533 0.000542524 0.000898487 -0.00637922 -0.0009015 0.0 +792 2.75 3.65 176.25 -0.00133582 0.00725755 0.00133015 0.00128127 -0.0072543 -0.00128197 0.0 +793 2.85 2.85 3.75 -1116.76 -835.91 1116.76 26640.2 835.91 -26640.2 0.0 +794 2.85 2.85 11.25 -610.386 -506.696 610.386 5875.84 506.696 -5875.84 0.0 +795 2.85 2.85 18.75 -255.208 -239.613 255.208 1744.42 239.613 -1744.42 0.0 +796 2.85 2.85 26.25 -73.7604 -82.5484 73.7603 437.327 82.5484 -437.327 0.0 +797 2.85 2.85 33.75 -11.1104 -18.0796 11.1103 74.9581 18.0796 -74.9581 0.0 +798 2.85 2.85 41.25 0.228715 -1.87052 -0.228784 6.31518 1.87054 -6.31516 0.0 +799 2.85 2.85 48.75 -0.186912 -0.383005 0.186932 0.552533 0.382981 -0.552553 0.0 +800 2.85 2.85 56.25 -0.516548 -0.486964 0.51651 0.427331 0.486994 -0.427316 0.0 +801 2.85 2.85 63.75 -0.277336 -0.279457 0.277442 -0.0294235 0.279516 0.0294254 0.0 +802 2.85 2.85 71.25 -0.12864 -0.127184 0.128869 -0.180718 0.127225 0.180733 0.0 +803 2.85 2.85 78.75 -0.0484987 -0.0475193 0.0484573 -0.172173 0.0474804 0.172167 0.0 +804 2.85 2.85 86.25 0.047169 0.0422314 -0.0471278 -0.173173 -0.0422364 0.173175 0.0 +805 2.85 2.85 93.75 0.132895 0.126705 -0.132882 -0.167927 -0.126598 0.167928 0.0 +806 2.85 2.85 101.25 0.176042 0.170333 -0.17625 -0.134397 -0.170485 0.134408 0.0 +807 2.85 2.85 108.75 0.163576 0.157905 -0.16355 -0.0779511 -0.157842 0.0779731 0.0 +808 2.85 2.85 116.25 0.101997 0.0960507 -0.102078 -0.014347 -0.0959807 0.0143824 0.0 +809 2.85 2.85 123.75 0.0206725 0.0134256 -0.0205836 0.0381676 -0.0135693 -0.0381435 0.0 +810 2.85 2.85 131.25 -0.0539648 -0.0618543 0.0539695 0.071669 0.061813 -0.0716401 0.0 +811 2.85 2.85 138.75 -0.126558 -0.13291 0.126595 0.096029 0.132846 -0.0960093 0.0 +812 2.85 2.85 146.25 -0.226905 -0.229729 0.2268 0.129945 0.229804 -0.130004 0.0 +813 2.85 2.85 153.75 -0.375777 -0.37653 0.375708 0.184542 0.376441 -0.184502 0.0 +814 2.85 2.85 161.25 -0.55951 -0.56228 0.559638 0.254398 0.562318 -0.254441 0.0 +815 2.85 2.85 168.75 -0.731663 -0.739479 0.731781 0.320527 0.739524 -0.32053 0.0 +816 2.85 2.85 176.25 -0.836402 -0.848187 0.836322 0.360778 0.848245 -0.36086 0.0 +817 2.85 2.95 3.75 -1111.67 -671.504 1111.67 23382.6 671.504 -23382.6 0.0 +818 2.85 2.95 11.25 -624.121 -411.338 624.121 5761.08 411.338 -5761.08 0.0 +819 2.85 2.95 18.75 -267.855 -190.585 267.855 1715.29 190.585 -1715.29 0.0 +820 2.85 2.95 26.25 -82.9178 -61.5016 82.9177 426.265 61.5016 -426.265 0.0 +821 2.85 2.95 33.75 -16.5392 -10.9568 16.5393 72.4347 10.9568 -72.4348 0.0 +822 2.85 2.95 41.25 -2.05368 -0.128524 2.05363 6.25085 0.128465 -6.25081 0.0 +823 2.85 2.95 48.75 -0.636623 -0.11763 0.63655 0.514257 0.117589 -0.514248 0.0 +824 2.85 2.95 56.25 -0.408465 -0.491652 0.408393 0.327192 0.491696 -0.327194 0.0 +825 2.85 2.95 63.75 -0.201297 -0.331339 0.201309 -0.0209138 0.331453 0.0209243 0.0 +826 2.85 2.95 71.25 -0.130914 -0.18282 0.130989 -0.130552 0.182746 0.130536 0.0 +827 2.85 2.95 78.75 -0.0608924 -0.0898709 0.0607915 -0.139463 0.0899889 0.139453 0.0 +828 2.85 2.95 86.25 0.0345738 0.00746434 -0.0344701 -0.148244 -0.00754141 0.148234 0.0 +829 2.85 2.95 93.75 0.111119 0.0976325 -0.1113 -0.142909 -0.0978809 0.142911 0.0 +830 2.85 2.95 101.25 0.151941 0.155503 -0.151976 -0.117111 -0.15543 0.11711 0.0 +831 2.85 2.95 108.75 0.145751 0.160353 -0.145553 -0.0726376 -0.160204 0.0725882 0.0 +832 2.85 2.95 116.25 0.0915158 0.110131 -0.0916919 -0.0182529 -0.110235 0.0182768 0.0 +833 2.85 2.95 123.75 0.0152377 0.0331448 -0.0151991 0.0284008 -0.0330236 -0.0284138 0.0 +834 2.85 2.95 131.25 -0.0546463 -0.0389944 0.0545777 0.0573967 0.038874 -0.0573186 0.0 +835 2.85 2.95 138.75 -0.1187 -0.104823 0.118718 0.0772008 0.104764 -0.077174 0.0 +836 2.85 2.95 146.25 -0.204059 -0.191464 0.203984 0.105389 0.191495 -0.105464 0.0 +837 2.85 2.95 153.75 -0.330797 -0.320794 0.330923 0.152322 0.320747 -0.152296 0.0 +838 2.85 2.95 161.25 -0.488129 -0.483077 0.488236 0.213067 0.483198 -0.213056 0.0 +839 2.85 2.95 168.75 -0.635592 -0.636761 0.635765 0.270692 0.636908 -0.270728 0.0 +840 2.85 2.95 176.25 -0.725217 -0.730636 0.725177 0.305753 0.730739 -0.305825 0.0 +841 2.85 3.05 3.75 -991.274 -468.465 991.274 17235.6 468.465 -17235.6 0.0 +842 2.85 3.05 11.25 -573.802 -298.761 573.802 5231.29 298.761 -5231.29 0.0 +843 2.85 3.05 18.75 -246.923 -139.586 246.923 1584.79 139.586 -1584.79 0.0 +844 2.85 3.05 26.25 -76.3431 -44.1795 76.3432 390.143 44.1795 -390.143 0.0 +845 2.85 3.05 33.75 -15.4296 -7.24375 15.4295 64.979 7.24375 -64.979 0.0 +846 2.85 3.05 41.25 -1.99485 0.0867799 1.99484 5.41934 -0.0867462 -5.41932 0.0 +847 2.85 3.05 48.75 -0.466876 -0.194309 0.466823 0.319783 0.194325 -0.319796 0.0 +848 2.85 3.05 56.25 -0.247864 -0.498556 0.247809 0.194278 0.49852 -0.194293 0.0 +849 2.85 3.05 63.75 -0.160838 -0.374237 0.160788 -0.00452736 0.374195 0.00453271 0.0 +850 2.85 3.05 71.25 -0.138726 -0.24602 0.138704 -0.0733155 0.246086 0.0732922 0.0 +851 2.85 3.05 78.75 -0.0645345 -0.137898 0.0646711 -0.10598 0.137892 0.105997 0.0 +852 2.85 3.05 86.25 0.0266641 -0.0289336 -0.0265391 -0.125218 0.0289426 0.125216 0.0 +853 2.85 3.05 93.75 0.0897391 0.0651921 -0.0895906 -0.118986 -0.0650775 0.118989 0.0 +854 2.85 3.05 101.25 0.124171 0.131613 -0.123901 -0.0965881 -0.131532 0.0965755 0.0 +855 2.85 3.05 108.75 0.12195 0.150621 -0.122014 -0.0600585 -0.150659 0.0600667 0.0 +856 2.85 3.05 116.25 0.0781014 0.115484 -0.0778585 -0.0147582 -0.115247 0.0147179 0.0 +857 2.85 3.05 123.75 0.0150628 0.0506384 -0.0150425 0.0236392 -0.0506457 -0.023627 0.0 +858 2.85 3.05 131.25 -0.0400525 -0.0131487 0.0399632 0.0466779 0.0130289 -0.0466525 0.0 +859 2.85 3.05 138.75 -0.0895184 -0.0739947 0.0894657 0.0627374 0.0740386 -0.0627861 0.0 +860 2.85 3.05 146.25 -0.15904 -0.155412 0.159469 0.0871229 0.155461 -0.0870861 0.0 +861 2.85 3.05 153.75 -0.267082 -0.274606 0.267172 0.127796 0.274496 -0.127765 0.0 +862 2.85 3.05 161.25 -0.401901 -0.419629 0.401826 0.179668 0.41968 -0.179776 0.0 +863 2.85 3.05 168.75 -0.527756 -0.553697 0.527878 0.228247 0.553582 -0.228199 0.0 +864 2.85 3.05 176.25 -0.604226 -0.634443 0.604143 0.25757 0.634535 -0.257606 0.0 +865 2.85 3.15 3.75 -806.102 -265.526 806.102 12165.1 265.526 -12165.1 0.0 +866 2.85 3.15 11.25 -477.611 -181.207 477.611 4442.53 181.207 -4442.53 0.0 +867 2.85 3.15 18.75 -202.862 -88.6434 202.862 1380.02 88.6434 -1380.02 0.0 +868 2.85 3.15 26.25 -60.0987 -29.0515 60.0987 336.188 29.0515 -336.188 0.0 +869 2.85 3.15 33.75 -10.968 -5.19052 10.9681 54.504 5.19046 -54.5041 0.0 +870 2.85 3.15 41.25 -1.05094 -0.312006 1.05086 4.33851 0.311981 -4.33846 0.0 +871 2.85 3.15 48.75 -0.213743 -0.352928 0.213728 0.164252 0.352886 -0.164263 0.0 +872 2.85 3.15 56.25 -0.154279 -0.471869 0.154225 0.093218 0.47198 -0.0932153 0.0 +873 2.85 3.15 63.75 -0.141604 -0.388768 0.141653 0.0126807 0.388761 -0.0126585 0.0 +874 2.85 3.15 71.25 -0.130127 -0.294635 0.130139 -0.0263984 0.294556 0.0263117 0.0 +875 2.85 3.15 78.75 -0.0550277 -0.180465 0.0550203 -0.073421 0.180561 0.0734297 0.0 +876 2.85 3.15 86.25 0.0209399 -0.0643701 -0.0207919 -0.0962653 0.0644703 0.0962704 0.0 +877 2.85 3.15 93.75 0.0659847 0.032253 -0.0661012 -0.0898107 -0.0322317 0.0898055 0.0 +878 2.85 3.15 101.25 0.0929454 0.104785 -0.092671 -0.0721152 -0.104858 0.0721226 0.0 +879 2.85 3.15 108.75 0.0923534 0.135562 -0.0925163 -0.0438144 -0.135405 0.0437756 0.0 +880 2.85 3.15 116.25 0.0576885 0.115491 -0.0573926 -0.00846383 -0.115386 0.00845008 0.0 +881 2.85 3.15 123.75 0.00835101 0.0659492 -0.00830537 0.0204391 -0.0659776 -0.020473 0.0 +882 2.85 3.15 131.25 -0.0330033 0.0137364 0.0330472 0.0368218 -0.0138501 -0.0368043 0.0 +883 2.85 3.15 138.75 -0.0696344 -0.0403338 0.0693805 0.0485567 0.0403552 -0.0486203 0.0 +884 2.85 3.15 146.25 -0.123646 -0.114761 0.123498 0.0676978 0.114704 -0.0677341 0.0 +885 2.85 3.15 153.75 -0.209228 -0.220305 0.209164 0.0995682 0.220152 -0.0994412 0.0 +886 2.85 3.15 161.25 -0.316292 -0.3444 0.316446 0.139549 0.344477 -0.139654 0.0 +887 2.85 3.15 168.75 -0.416182 -0.455814 0.416144 0.176494 0.455746 -0.176411 0.0 +888 2.85 3.15 176.25 -0.476042 -0.521785 0.476 0.198621 0.521756 -0.198557 0.0 +889 2.85 3.25 3.75 -599.006 -91.2154 599.006 8491.46 91.2155 -8491.46 0.0 +890 2.85 3.25 11.25 -359.488 -74.6727 359.488 3559.49 74.6727 -3559.49 0.0 +891 2.85 3.25 18.75 -148.661 -42.6777 148.661 1135.12 42.6777 -1135.12 0.0 +892 2.85 3.25 26.25 -40.7166 -16.0322 40.7166 272.812 16.0322 -272.812 0.0 +893 2.85 3.25 33.75 -5.97051 -3.67296 5.97039 42.68 3.67297 -42.68 0.0 +894 2.85 3.25 41.25 -0.182688 -0.670468 0.182753 3.20438 0.670474 -3.20441 0.0 +895 2.85 3.25 48.75 -0.0747798 -0.425329 0.0748223 0.0657742 0.425365 -0.0658515 0.0 +896 2.85 3.25 56.25 -0.0982934 -0.398958 0.0982134 0.0220039 0.399004 -0.0220176 0.0 +897 2.85 3.25 63.75 -0.100813 -0.360976 0.100898 0.0133885 0.360825 -0.0133447 0.0 +898 2.85 3.25 71.25 -0.0945309 -0.307881 0.0945963 -0.00420512 0.307879 0.00421061 0.0 +899 2.85 3.25 78.75 -0.0366795 -0.207353 0.0366632 -0.0482296 0.20741 0.0482248 0.0 +900 2.85 3.25 86.25 0.0149887 -0.0970942 -0.0150626 -0.0654125 0.0972336 0.0654212 0.0 +901 2.85 3.25 93.75 0.0443972 -0.00226785 -0.0443982 -0.0599009 0.00218497 0.0598939 0.0 +902 2.85 3.25 101.25 0.0653842 0.0743707 -0.0655475 -0.0488889 -0.074459 0.048906 0.0 +903 2.85 3.25 108.75 0.0673028 0.115282 -0.0672563 -0.0293956 -0.115121 0.0293551 0.0 +904 2.85 3.25 116.25 0.041101 0.109791 -0.041206 -0.00426137 -0.110092 0.0043584 0.0 +905 2.85 3.25 123.75 0.0030353 0.0756594 -0.00306469 0.0153374 -0.0756692 -0.0152926 0.0 +906 2.85 3.25 131.25 -0.02782 0.0350328 0.0279329 0.0256415 -0.0350474 -0.0256136 0.0 +907 2.85 3.25 138.75 -0.0538742 -0.00966993 0.0537414 0.0330967 0.00970634 -0.033162 0.0 +908 2.85 3.25 146.25 -0.0905357 -0.070843 0.0905608 0.0460454 0.0707919 -0.045972 0.0 +909 2.85 3.25 153.75 -0.14887 -0.15562 0.148901 0.0676893 0.155618 -0.067644 0.0 +910 2.85 3.25 161.25 -0.22216 -0.252709 0.22219 0.0946651 0.252847 -0.0946834 0.0 +911 2.85 3.25 168.75 -0.290593 -0.338691 0.290381 0.119487 0.33884 -0.119576 0.0 +912 2.85 3.25 176.25 -0.3308 -0.388801 0.331427 0.13433 0.388853 -0.134296 0.0 +913 2.85 3.35 3.75 -386.528 33.5021 386.528 5634.36 -33.5021 -5634.36 0.0 +914 2.85 3.35 11.25 -232.313 5.67109 232.313 2604.32 -5.67109 -2604.32 0.0 +915 2.85 3.35 18.75 -91.9697 -7.27714 91.9697 849.253 7.27716 -849.253 0.0 +916 2.85 3.35 26.25 -22.1609 -5.78613 22.161 200.148 5.78612 -200.148 0.0 +917 2.85 3.35 33.75 -1.98022 -2.12648 1.98024 29.7672 2.12648 -29.7672 0.0 +918 2.85 3.35 41.25 0.243179 -0.637377 -0.243178 2.04091 0.637344 -2.04094 0.0 +919 2.85 3.35 48.75 -0.0543799 -0.361761 0.0543227 0.0128587 0.36182 -0.0128186 0.0 +920 2.85 3.35 56.25 -0.053243 -0.315179 0.0533037 -0.0175621 0.315135 0.0175499 0.0 +921 2.85 3.35 63.75 -0.0463022 -0.314223 0.0463235 0.00311652 0.314212 -0.00320789 0.0 +922 2.85 3.35 71.25 -0.0532898 -0.296211 0.0534137 -0.000155585 0.29602 0.000135295 0.0 +923 2.85 3.35 78.75 -0.0212587 -0.22246 0.0212696 -0.0288431 0.222559 0.0288631 0.0 +924 2.85 3.35 86.25 0.00889954 -0.125343 -0.00894718 -0.0369629 0.125394 0.0369644 0.0 +925 2.85 3.35 93.75 0.0262325 -0.0313862 -0.0263584 -0.0340369 0.0311982 0.0340506 0.0 +926 2.85 3.35 101.25 0.0415953 0.0498466 -0.0414478 -0.0293926 -0.0498895 0.0293844 0.0 +927 2.85 3.35 108.75 0.0450451 0.0995096 -0.0449831 -0.0178232 -0.0997351 0.0178778 0.0 +928 2.85 3.35 116.25 0.028077 0.105738 -0.0281433 -0.00230595 -0.105795 0.00235292 0.0 +929 2.85 3.35 123.75 0.00116088 0.0815732 -0.000852722 0.00942911 -0.0816637 -0.00933158 0.0 +930 2.85 3.35 131.25 -0.0216069 0.0479562 0.0217652 0.0156247 -0.0476846 -0.0157325 0.0 +931 2.85 3.35 138.75 -0.0380909 0.0111308 0.0380157 0.0201099 -0.0113054 -0.0200733 0.0 +932 2.85 3.35 146.25 -0.0570642 -0.0359703 0.0570676 0.0273788 0.0359094 -0.0273053 0.0 +933 2.85 3.35 153.75 -0.0874487 -0.0993169 0.0874531 0.0394423 0.0994037 -0.0393806 0.0 +934 2.85 3.35 161.25 -0.127843 -0.172492 0.127557 0.054893 0.172359 -0.0549082 0.0 +935 2.85 3.35 168.75 -0.166559 -0.237682 0.166614 0.0695468 0.237554 -0.0695277 0.0 +936 2.85 3.35 176.25 -0.191 -0.276276 0.19078 0.0784958 0.276377 -0.0785403 0.0 +937 2.85 3.45 3.75 -161.588 70.6187 161.588 2741.33 -70.6187 -2741.33 0.0 +938 2.85 3.45 11.25 -95.5114 34.9158 95.5114 1355.81 -34.9158 -1355.81 0.0 +939 2.85 3.45 18.75 -34.6683 8.27267 34.6684 448.865 -8.27268 -448.865 0.0 +940 2.85 3.45 26.25 -6.16493 -0.139582 6.16494 102.857 0.139618 -102.857 0.0 +941 2.85 3.45 33.75 0.422229 -0.589501 -0.422207 14.2949 0.589425 -14.2948 0.0 +942 2.85 3.45 41.25 0.271293 -0.179716 -0.271334 0.90093 0.179724 -0.900935 0.0 +943 2.85 3.45 48.75 -0.0728654 -0.170806 0.0729137 0.0252674 0.1707 -0.025252 0.0 +944 2.85 3.45 56.25 -0.0333377 -0.213039 0.0332742 -0.0156257 0.212999 0.0155434 0.0 +945 2.85 3.45 63.75 -0.0152903 -0.227014 0.0151849 -0.00379666 0.227029 0.00381385 0.0 +946 2.85 3.45 71.25 -0.0235692 -0.224061 0.0235144 -0.000903934 0.22407 0.000862594 0.0 +947 2.85 3.45 78.75 -0.00941949 -0.180683 0.00940751 -0.0122182 0.180688 0.0122354 0.0 +948 2.85 3.45 86.25 0.00386563 -0.108855 -0.00384482 -0.0147672 0.108894 0.0147696 0.0 +949 2.85 3.45 93.75 0.00738598 -0.0352297 -0.00746621 -0.0134146 0.0352537 0.0134097 0.0 +950 2.85 3.45 101.25 0.0113163 0.0272447 -0.0112177 -0.0108832 -0.027162 0.0109037 0.0 +951 2.85 3.45 108.75 0.0143535 0.0674421 -0.0144727 -0.00585159 -0.0674317 0.00583747 0.0 +952 2.85 3.45 116.25 0.0102386 0.0775271 -0.0102071 -0.000339014 -0.0776401 0.000348303 0.0 +953 2.85 3.45 123.75 2.58732e-05 0.0640245 -4.10589e-05 0.00384167 -0.0641439 -0.00376402 0.0 +954 2.85 3.45 131.25 -0.00902431 0.0415235 0.00900971 0.00644527 -0.0416055 -0.00641701 0.0 +955 2.85 3.45 138.75 -0.0130822 0.0181696 0.0131824 0.00773263 -0.0182103 -0.00771311 0.0 +956 2.85 3.45 146.25 -0.0161839 -0.00998922 0.016076 0.00888536 0.00978667 -0.00879601 0.0 +957 2.85 3.45 153.75 -0.0242202 -0.0483692 0.0241807 0.011811 0.0483358 -0.0118472 0.0 +958 2.85 3.45 161.25 -0.0396328 -0.0952296 0.0395522 0.0172745 0.0951821 -0.0172176 0.0 +959 2.85 3.45 168.75 -0.0578248 -0.139644 0.0577311 0.0236934 0.13953 -0.0236387 0.0 +960 2.85 3.45 176.25 -0.0700834 -0.166806 0.0701114 0.0280544 0.166621 -0.0279388 0.0 +961 2.85 3.55 3.75 -31.029 33.8429 31.029 807.354 -33.8429 -807.354 0.0 +962 2.85 3.55 11.25 -16.6941 17.1581 16.6942 418.065 -17.1581 -418.065 0.0 +963 2.85 3.55 18.75 -3.99472 4.08748 3.9947 139.471 -4.08747 -139.471 0.0 +964 2.85 3.55 26.25 0.82754 0.00960473 -0.827538 30.9637 -0.00959943 -30.9637 0.0 +965 2.85 3.55 33.75 0.904557 -0.081934 -0.904543 4.11608 0.0819614 -4.11609 0.0 +966 2.85 3.55 41.25 0.170681 0.0848305 -0.170682 0.346509 -0.0848039 -0.34653 0.0 +967 2.85 3.55 48.75 -0.0666717 -0.0106917 0.0666836 0.0541797 0.0106909 -0.0541811 0.0 +968 2.85 3.55 56.25 -0.0367163 -0.0711844 0.0367427 -0.00758183 0.0712025 0.00758489 0.0 +969 2.85 3.55 63.75 -0.00980718 -0.0797592 0.00983424 -0.00697712 0.0797424 0.00697812 0.0 +970 2.85 3.55 71.25 -0.00586824 -0.0828521 0.00590764 -3.50261e-07 0.0828154 -9.47724e-06 0.0 +971 2.85 3.55 78.75 -0.000602709 -0.0682983 0.000612821 -0.00212227 0.0683145 0.00213184 0.0 +972 2.85 3.55 86.25 0.000973121 -0.0398569 -0.000961009 -0.00335451 0.0398316 0.00334909 0.0 +973 2.85 3.55 93.75 -0.00358082 -0.0150889 0.00357048 -0.00152868 0.0150508 0.00152981 0.0 +974 2.85 3.55 101.25 -0.00603736 0.00394172 0.00605293 0.000730934 -0.00393071 -0.000744155 0.0 +975 2.85 3.55 108.75 -0.00335262 0.0195109 0.00322804 0.00102238 -0.0194668 -0.00104163 0.0 +976 2.85 3.55 116.25 0.000444349 0.027755 -0.000387332 8.69624e-05 -0.0277462 -9.75392e-05 0.0 +977 2.85 3.55 123.75 0.0014088 0.0269113 -0.00138674 -7.73086e-05 -0.0268849 6.29337e-05 0.0 +978 2.85 3.55 131.25 0.00165964 0.0217477 -0.00165364 0.000223061 -0.0218041 -0.000187964 0.0 +979 2.85 3.55 138.75 0.00401875 0.0169663 -0.00395318 -0.000703326 -0.016976 0.000717988 0.0 +980 2.85 3.55 146.25 0.00768509 0.0118145 -0.00765824 -0.00287592 -0.0118411 0.00289573 0.0 +981 2.85 3.55 153.75 0.00912573 0.00261415 -0.00905729 -0.00443259 -0.00257542 0.00443667 0.0 +982 2.85 3.55 161.25 0.0057808 -0.0119115 -0.00584887 -0.00390544 0.0118818 0.00391874 0.0 +983 2.85 3.55 168.75 -0.000422092 -0.0276521 0.000431626 -0.00177835 0.0276894 0.00174946 0.0 +984 2.85 3.55 176.25 -0.00538109 -0.0379719 0.00540295 7.43942e-05 0.0379802 -5.26705e-05 0.0 +985 2.85 3.65 3.75 0.117993 2.41395 -0.117994 63.6242 -2.41395 -63.6242 0.0 +986 2.85 3.65 11.25 0.547196 0.863222 -0.547196 34.0061 -0.86322 -34.0061 0.0 +987 2.85 3.65 18.75 0.745937 -0.193692 -0.745936 11.4296 0.193693 -11.4296 0.0 +988 2.85 3.65 26.25 0.543519 -0.28335 -0.54352 2.53726 0.28335 -2.53726 0.0 +989 2.85 3.65 33.75 0.224853 -0.0795795 -0.224852 0.395802 0.0795803 -0.395805 0.0 +990 2.85 3.65 41.25 0.0308566 0.0096513 -0.030854 0.0760108 -0.00965396 -0.0760089 0.0 +991 2.85 3.65 48.75 -0.0200071 0.0114374 0.0200007 0.0152694 -0.0114346 -0.0152666 0.0 +992 2.85 3.65 56.25 -0.0121781 0.00806958 0.0121778 -0.00463886 -0.00806824 0.00463935 0.0 +993 2.85 3.65 63.75 -0.00240079 0.00691829 0.00239728 -0.00287853 -0.00691891 0.00287832 0.0 +994 2.85 3.65 71.25 -0.000113974 0.00344927 0.000114402 0.000925612 -0.00345159 -0.000924517 0.0 +995 2.85 3.65 78.75 -0.000150972 0.00204618 0.000149514 0.00127176 -0.00204528 -0.00127259 0.0 +996 2.85 3.65 86.25 -0.00063721 0.00167632 0.000641885 0.000872705 -0.00167479 -0.000872293 0.0 +997 2.85 3.65 93.75 -0.00144962 -0.000316034 0.00144811 0.00113858 0.000313733 -0.00113842 0.0 +998 2.85 3.65 101.25 -0.00167523 -0.00216785 0.00167369 0.00123363 0.00216868 -0.00123425 0.0 +999 2.85 3.65 108.75 -0.00110878 -0.00207464 0.00110977 0.00064396 0.00207751 -0.000643732 0.0 +1000 2.85 3.65 116.25 -0.000764004 -0.00128655 0.000766131 0.000103318 0.00128453 -0.000103182 0.0 +1001 2.85 3.65 123.75 -0.00123412 -0.00134957 0.00123183 0.000216939 0.00135724 -0.000220275 0.0 +1002 2.85 3.65 131.25 -0.00184917 -0.00183778 0.00184664 0.000577507 0.00184059 -0.000579396 0.0 +1003 2.85 3.65 138.75 -0.00163391 -0.00138008 0.00162307 0.000515544 0.00137553 -0.000512344 0.0 +1004 2.85 3.65 146.25 -0.000376327 0.000499681 0.00037387 -6.6379e-06 -0.000506003 1.01884e-05 0.0 +1005 2.85 3.65 153.75 0.00121458 0.00310539 -0.00122162 -0.000485719 -0.00311088 0.000488173 0.0 +1006 2.85 3.65 161.25 0.00238865 0.00543453 -0.0023833 -0.00051915 -0.00542809 0.000516147 0.0 +1007 2.85 3.65 168.75 0.00285962 0.00692717 -0.00285792 -0.000171476 -0.00692344 0.000168255 0.0 +1008 2.85 3.65 176.25 0.00292307 0.00758779 -0.00292581 0.00016883 -0.00759567 -0.000164093 0.0 +1009 2.95 2.95 3.75 -1235.79 -703.549 1235.79 26126.6 703.549 -26126.6 0.0 +1010 2.95 2.95 11.25 -677.675 -435.614 677.675 5671.31 435.614 -5671.31 0.0 +1011 2.95 2.95 18.75 -281.882 -206.464 281.882 1620.38 206.464 -1620.38 0.0 +1012 2.95 2.95 26.25 -80.142 -69.4145 80.142 377.367 69.4145 -377.367 0.0 +1013 2.95 2.95 33.75 -11.535 -14.0454 11.535 55.1741 14.0454 -55.1741 0.0 +1014 2.95 2.95 41.25 0.444691 -1.06867 -0.444678 2.44606 1.06872 -2.44609 0.0 +1015 2.95 2.95 48.75 -0.095339 -0.280002 0.095379 0.150135 0.280037 -0.150155 0.0 +1016 2.95 2.95 56.25 -0.487332 -0.457247 0.487298 0.373103 0.457341 -0.373058 0.0 +1017 2.95 2.95 63.75 -0.309733 -0.308057 0.309669 0.0352679 0.308082 -0.0352801 0.0 +1018 2.95 2.95 71.25 -0.189494 -0.187337 0.189429 -0.0767338 0.187338 0.0767722 0.0 +1019 2.95 2.95 78.75 -0.100558 -0.0943326 0.100538 -0.103742 0.0942838 0.103711 0.0 +1020 2.95 2.95 86.25 -0.00127159 0.00259697 0.00111691 -0.124177 -0.0027075 0.124174 0.0 +1021 2.95 2.95 93.75 0.0781938 0.0795056 -0.0783669 -0.119644 -0.0795165 0.119632 0.0 +1022 2.95 2.95 101.25 0.125437 0.125749 -0.125346 -0.0954926 -0.125695 0.0954816 0.0 +1023 2.95 2.95 108.75 0.131842 0.132451 -0.1318 -0.0582993 -0.132316 0.0582686 0.0 +1024 2.95 2.95 116.25 0.094036 0.0945768 -0.0939986 -0.013007 -0.0944018 0.0129685 0.0 +1025 2.95 2.95 123.75 0.031853 0.0309302 -0.0318676 0.0276584 -0.0309157 -0.0276663 0.0 +1026 2.95 2.95 131.25 -0.0289236 -0.0307662 0.0290267 0.0542911 0.0309129 -0.0543246 0.0 +1027 2.95 2.95 138.75 -0.0860191 -0.0873603 0.0858184 0.0715543 0.0871918 -0.0715138 0.0 +1028 2.95 2.95 146.25 -0.159015 -0.159395 0.158823 0.092785 0.159333 -0.0927604 0.0 +1029 2.95 2.95 153.75 -0.264066 -0.265928 0.264092 0.127317 0.266003 -0.127385 0.0 +1030 2.95 2.95 161.25 -0.392832 -0.399313 0.392736 0.172881 0.399453 -0.172904 0.0 +1031 2.95 2.95 168.75 -0.51305 -0.525949 0.512818 0.216982 0.526087 -0.217102 0.0 +1032 2.95 2.95 176.25 -0.585362 -0.603164 0.585535 0.244165 0.603114 -0.244128 0.0 +1033 2.95 3.05 3.75 -1152 -470.691 1152 22546.9 470.691 -22546.9 0.0 +1034 2.95 3.05 11.25 -646.366 -302.989 646.366 5436.44 302.989 -5436.44 0.0 +1035 2.95 3.05 18.75 -274.735 -144.566 274.735 1560.79 144.566 -1560.79 0.0 +1036 2.95 3.05 26.25 -82.9595 -46.7837 82.9596 363.128 46.7837 -363.128 0.0 +1037 2.95 3.05 33.75 -15.5348 -7.90904 15.5348 54.2888 7.90907 -54.2887 0.0 +1038 2.95 3.05 41.25 -1.52533 0.0877815 1.52529 3.23039 -0.0877658 -3.23043 0.0 +1039 2.95 3.05 48.75 -0.429791 -0.130249 0.429777 0.249314 0.130206 -0.249273 0.0 +1040 2.95 3.05 56.25 -0.354386 -0.465805 0.3544 0.285906 0.465883 -0.285905 0.0 +1041 2.95 3.05 63.75 -0.230807 -0.353693 0.230714 0.0451008 0.353768 -0.0451234 0.0 +1042 2.95 3.05 71.25 -0.171943 -0.228248 0.172051 -0.0442061 0.228171 0.0442394 0.0 +1043 2.95 3.05 78.75 -0.0886759 -0.125763 0.0886157 -0.0870429 0.125748 0.0870611 0.0 +1044 2.95 3.05 86.25 0.00406016 -0.0290639 -0.00400943 -0.106637 0.0291333 0.106635 0.0 +1045 2.95 3.05 93.75 0.0709324 0.0512843 -0.0709031 -0.0997352 -0.0513256 0.0997471 0.0 +1046 2.95 3.05 101.25 0.112173 0.109307 -0.112111 -0.081026 -0.10938 0.0810188 0.0 +1047 2.95 3.05 108.75 0.118241 0.127448 -0.118156 -0.0508854 -0.127498 0.0509172 0.0 +1048 2.95 3.05 116.25 0.082375 0.0967194 -0.0826216 -0.0115758 -0.096743 0.0116038 0.0 +1049 2.95 3.05 123.75 0.0249719 0.0392243 -0.0250633 0.0233571 -0.0393156 -0.0232965 0.0 +1050 2.95 3.05 131.25 -0.0283614 -0.0168684 0.0282743 0.0451621 0.0168661 -0.045173 0.0 +1051 2.95 3.05 138.75 -0.0768736 -0.0688048 0.077069 0.0594051 0.068716 -0.0593073 0.0 +1052 2.95 3.05 146.25 -0.141563 -0.136731 0.141568 0.0784955 0.136426 -0.0784076 0.0 +1053 2.95 3.05 153.75 -0.236122 -0.235072 0.236058 0.109983 0.235346 -0.110141 0.0 +1054 2.95 3.05 161.25 -0.351579 -0.354851 0.351474 0.150951 0.354689 -0.150832 0.0 +1055 2.95 3.05 168.75 -0.458428 -0.465918 0.458345 0.190063 0.465592 -0.18999 0.0 +1056 2.95 3.05 176.25 -0.522577 -0.532559 0.52258 0.213967 0.532625 -0.214084 0.0 +1057 2.95 3.15 3.75 -947.105 -234.064 947.105 16388.2 234.064 -16388.2 0.0 +1058 2.95 3.15 11.25 -544.957 -169.572 544.957 4831.85 169.572 -4831.85 0.0 +1059 2.95 3.15 18.75 -231.218 -87.4264 231.218 1411.96 87.4264 -1411.96 0.0 +1060 2.95 3.15 26.25 -69.489 -29.5946 69.489 327.211 29.5945 -327.211 0.0 +1061 2.95 3.15 33.75 -13.2484 -5.06717 13.2484 48.9414 5.06717 -48.9414 0.0 +1062 2.95 3.15 41.25 -1.4679 0.0238403 1.46795 3.15011 -0.0239097 -3.15014 0.0 +1063 2.95 3.15 48.75 -0.31652 -0.227201 0.316586 0.172569 0.227204 -0.17262 0.0 +1064 2.95 3.15 56.25 -0.21369 -0.480095 0.213689 0.184024 0.480141 -0.184087 0.0 +1065 2.95 3.15 63.75 -0.176969 -0.390853 0.176921 0.0560194 0.390826 -0.0559763 0.0 +1066 2.95 3.15 71.25 -0.150417 -0.269717 0.150456 -0.0151382 0.269771 0.0150882 0.0 +1067 2.95 3.15 78.75 -0.0732588 -0.158111 0.073298 -0.0675252 0.157991 0.0675219 0.0 +1068 2.95 3.15 86.25 0.0011828 -0.0578942 -0.0013546 -0.0836453 0.0579193 0.083656 0.0 +1069 2.95 3.15 93.75 0.0495663 0.0262723 -0.0495336 -0.0758505 -0.0265178 0.0758585 0.0 +1070 2.95 3.15 101.25 0.0825033 0.0923783 -0.0825646 -0.0624571 -0.0924447 0.0624949 0.0 +1071 2.95 3.15 108.75 0.0903024 0.12085 -0.0901393 -0.0395117 -0.120852 0.0395202 0.0 +1072 2.95 3.15 116.25 0.0638444 0.102339 -0.0638579 -0.00894728 -0.102235 0.00890468 0.0 +1073 2.95 3.15 123.75 0.0220461 0.0572511 -0.0219022 0.0169359 -0.0570113 -0.0169543 0.0 +1074 2.95 3.15 131.25 -0.015441 0.00943891 0.0156538 0.0325133 -0.00947592 -0.0324612 0.0 +1075 2.95 3.15 138.75 -0.0518112 -0.0403117 0.0516345 0.043965 0.0403656 -0.0440096 0.0 +1076 2.95 3.15 146.25 -0.104883 -0.106935 0.104923 0.0610883 0.106832 -0.0610049 0.0 +1077 2.95 3.15 153.75 -0.185793 -0.19961 0.185681 0.0885896 0.199403 -0.0885392 0.0 +1078 2.95 3.15 161.25 -0.283884 -0.306665 0.283899 0.123061 0.306488 -0.122974 0.0 +1079 2.95 3.15 168.75 -0.3736 -0.401945 0.373662 0.155182 0.401946 -0.155094 0.0 +1080 2.95 3.15 176.25 -0.427053 -0.458118 0.427085 0.174567 0.458223 -0.174634 0.0 +1081 2.95 3.25 3.75 -684.962 -33.597 684.962 11353.2 33.597 -11353.2 0.0 +1082 2.95 3.25 11.25 -400.069 -51.4433 400.069 4016.56 51.4433 -4016.56 0.0 +1083 2.95 3.25 18.75 -165.833 -38.5931 165.833 1203.1 38.5931 -1203.1 0.0 +1084 2.95 3.25 26.25 -47.263 -16.6148 47.263 276.987 16.6148 -276.987 0.0 +1085 2.95 3.25 33.75 -8.14408 -3.80756 8.14405 40.878 3.80754 -40.8779 0.0 +1086 2.95 3.25 41.25 -0.735673 -0.396549 0.73574 2.63773 0.396509 -2.63772 0.0 +1087 2.95 3.25 48.75 -0.150431 -0.333017 0.150544 0.0672603 0.332896 -0.0672187 0.0 +1088 2.95 3.25 56.25 -0.10876 -0.446971 0.10866 0.0972865 0.44696 -0.0973988 0.0 +1089 2.95 3.25 63.75 -0.118865 -0.37823 0.118992 0.0520019 0.378268 -0.052 0.0 +1090 2.95 3.25 71.25 -0.109895 -0.280626 0.109945 -0.000890606 0.280499 0.000905523 0.0 +1091 2.95 3.25 78.75 -0.0507365 -0.181073 0.0507334 -0.0461242 0.18097 0.0461348 0.0 +1092 2.95 3.25 86.25 -0.000734511 -0.0871476 0.00060714 -0.0555662 0.0872154 0.0555746 0.0 +1093 2.95 3.25 93.75 0.0311957 -0.00236195 -0.0311942 -0.0515041 0.00259597 0.0514843 0.0 +1094 2.95 3.25 101.25 0.0572093 0.0688848 -0.0571052 -0.0452318 -0.0687382 0.0452149 0.0 +1095 2.95 3.25 108.75 0.064287 0.106942 -0.0642778 -0.029198 -0.106939 0.0292002 0.0 +1096 2.95 3.25 116.25 0.0445212 0.10208 -0.0444717 -0.00721917 -0.102122 0.00721939 0.0 +1097 2.95 3.25 123.75 0.0135976 0.0703346 -0.0132914 0.0101515 -0.070214 -0.0102111 0.0 +1098 2.95 3.25 131.25 -0.0135575 0.0313234 0.0136726 0.0203596 -0.0316066 -0.0203055 0.0 +1099 2.95 3.25 138.75 -0.0393187 -0.0123616 0.0392606 0.0289017 0.0125322 -0.0289811 0.0 +1100 2.95 3.25 146.25 -0.0783219 -0.0713966 0.0781054 0.0422706 0.0716338 -0.0424701 0.0 +1101 2.95 3.25 153.75 -0.137718 -0.149787 0.137636 0.0630045 0.149918 -0.0630855 0.0 +1102 2.95 3.25 161.25 -0.209697 -0.23746 0.209832 0.0883427 0.237538 -0.0884379 0.0 +1103 2.95 3.25 168.75 -0.275371 -0.313873 0.275402 0.111664 0.314062 -0.111753 0.0 +1104 2.95 3.25 176.25 -0.314348 -0.358242 0.314391 0.125665 0.357993 -0.125515 0.0 +1105 2.95 3.35 3.75 -399.508 103.619 399.508 7451.41 -103.619 -7451.41 0.0 +1106 2.95 3.35 11.25 -231.405 35.127 231.405 3026.44 -35.127 -3026.44 0.0 +1107 2.95 3.35 18.75 -89.8146 -2.33149 89.8146 930.13 2.3315 -930.13 0.0 +1108 2.95 3.35 26.25 -22.0607 -7.1465 22.0607 211.828 7.14652 -211.828 0.0 +1109 2.95 3.35 33.75 -2.61211 -2.84669 2.61203 30.3988 2.84678 -30.3988 0.0 +1110 2.95 3.35 41.25 -0.0641668 -0.572722 0.0641482 1.85321 0.572769 -1.85319 0.0 +1111 2.95 3.35 48.75 -0.0727144 -0.324155 0.0726592 -0.0128306 0.324113 0.0128188 0.0 +1112 2.95 3.35 56.25 -0.0429539 -0.369477 0.0429431 0.0365148 0.369487 -0.0365382 0.0 +1113 2.95 3.35 63.75 -0.0600198 -0.322362 0.0600919 0.0327313 0.322318 -0.0327163 0.0 +1114 2.95 3.35 71.25 -0.0652833 -0.262303 0.0652719 -0.000945077 0.262315 0.000937457 0.0 +1115 2.95 3.35 78.75 -0.031022 -0.194374 0.0309769 -0.0267122 0.194554 0.0267582 0.0 +1116 2.95 3.35 86.25 -0.00184005 -0.113162 0.00176104 -0.0298197 0.113076 0.0298218 0.0 +1117 2.95 3.35 93.75 0.018586 -0.0277066 -0.0184827 -0.0312711 0.0276271 0.0312812 0.0 +1118 2.95 3.35 101.25 0.0371138 0.0478631 -0.037144 -0.0299553 -0.0480008 0.0299616 0.0 +1119 2.95 3.35 108.75 0.0423982 0.093388 -0.0422422 -0.0188882 -0.0933397 0.0188857 0.0 +1120 2.95 3.35 116.25 0.0273758 0.0979945 -0.0273687 -0.00448478 -0.0979721 0.00447213 0.0 +1121 2.95 3.35 123.75 0.00420771 0.0743592 -0.00427898 0.00600864 -0.0745728 -0.0058675 0.0 +1122 2.95 3.35 131.25 -0.0145851 0.0414175 0.0147362 0.0124371 -0.0414414 -0.0124358 0.0 +1123 2.95 3.35 138.75 -0.03007 0.00528296 0.0300369 0.0181261 -0.00525075 -0.018187 0.0 +1124 2.95 3.35 146.25 -0.0509356 -0.0404972 0.0512567 0.0264418 0.040464 -0.0264103 0.0 +1125 2.95 3.35 153.75 -0.0853645 -0.10106 0.0852954 0.0392425 0.100971 -0.0391701 0.0 +1126 2.95 3.35 161.25 -0.129326 -0.170331 0.12924 0.0554642 0.170326 -0.0554588 0.0 +1127 2.95 3.35 168.75 -0.171342 -0.232151 0.171081 0.0709676 0.232288 -0.0710617 0.0 +1128 2.95 3.35 176.25 -0.196671 -0.268622 0.196769 0.0804998 0.268617 -0.0804939 0.0 +1129 2.95 3.45 3.75 -118.47 124.094 118.47 3596.85 -124.094 -3596.85 0.0 +1130 2.95 3.45 11.25 -62.0251 58.1208 62.0251 1612.69 -58.1208 -1612.69 0.0 +1131 2.95 3.45 18.75 -17.2025 11.8124 17.2025 506.519 -11.8125 -506.519 0.0 +1132 2.95 3.45 26.25 -0.377844 -1.71658 0.37789 113.34 1.71654 -113.34 0.0 +1133 2.95 3.45 33.75 1.37632 -1.48954 -1.37633 15.5555 1.4896 -15.5555 0.0 +1134 2.95 3.45 41.25 0.265026 -0.272138 -0.265013 0.865629 0.272128 -0.865594 0.0 +1135 2.95 3.45 48.75 -0.0675124 -0.169675 0.0675642 -0.0146368 0.169647 0.0146363 0.0 +1136 2.95 3.45 56.25 -0.023388 -0.236641 0.0234179 0.015066 0.236607 -0.015018 0.0 +1137 2.95 3.45 63.75 -0.0206674 -0.214642 0.0205493 0.0137967 0.214624 -0.0137863 0.0 +1138 2.95 3.45 71.25 -0.0266153 -0.192791 0.0266153 -0.00202341 0.192818 0.00206841 0.0 +1139 2.95 3.45 78.75 -0.01303 -0.158177 0.0130391 -0.00963045 0.158217 0.00964696 0.0 +1140 2.95 3.45 86.25 -0.00222429 -0.0960735 0.0021395 -0.0105039 0.0961189 0.0105017 0.0 +1141 2.95 3.45 93.75 0.00366176 -0.0280042 -0.00362622 -0.0130186 0.0279556 0.0130227 0.0 +1142 2.95 3.45 101.25 0.0105055 0.0297138 -0.0104632 -0.0119289 -0.0296664 0.0119117 0.0 +1143 2.95 3.45 108.75 0.0148087 0.0656952 -0.0147408 -0.00665645 -0.0657398 0.0066868 0.0 +1144 2.95 3.45 116.25 0.0114932 0.0726041 -0.0116021 -0.00156607 -0.0726457 0.00154858 0.0 +1145 2.95 3.45 123.75 0.00309518 0.0572911 -0.00312058 0.00244903 -0.0572973 -0.00247607 0.0 +1146 2.95 3.45 131.25 -0.00423195 0.0348253 0.00428653 0.0058355 -0.0347892 -0.0058315 0.0 +1147 2.95 3.45 138.75 -0.00866474 0.0124609 0.00861874 0.00825108 -0.0125166 -0.00826851 0.0 +1148 2.95 3.45 146.25 -0.0145607 -0.0144555 0.0146647 0.0107256 0.0144883 -0.0106962 0.0 +1149 2.95 3.45 153.75 -0.0287837 -0.0532811 0.0286297 0.0157047 0.0531415 -0.0156193 0.0 +1150 2.95 3.45 161.25 -0.0515253 -0.102148 0.0515477 0.0240732 0.102183 -0.0241063 0.0 +1151 2.95 3.45 168.75 -0.0767337 -0.148935 0.0767439 0.0334601 0.1489 -0.0334712 0.0 +1152 2.95 3.45 176.25 -0.0932086 -0.17774 0.0931942 0.0396944 0.177763 -0.0397001 0.0 +1153 2.95 3.55 3.75 9.21891 55.9716 -9.21891 1053.07 -55.9716 -1053.07 0.0 +1154 2.95 3.55 11.25 12.0915 26.8507 -12.0915 505.759 -26.8507 -505.759 0.0 +1155 2.95 3.55 18.75 10.5932 5.25111 -10.5932 161.202 -5.25111 -161.202 0.0 +1156 2.95 3.55 26.25 5.832 -0.960922 -5.83198 35.2215 0.960912 -35.2215 0.0 +1157 2.95 3.55 33.75 1.90632 -0.606111 -1.90629 4.63776 0.606103 -4.63776 0.0 +1158 2.95 3.55 41.25 0.243995 0.00564805 -0.243998 0.296232 -0.00567539 -0.296199 0.0 +1159 2.95 3.55 48.75 -0.0591471 -0.00860415 0.0591375 0.0274887 0.00861739 -0.0274844 0.0 +1160 2.95 3.55 56.25 -0.0269926 -0.0691277 0.0269968 0.0114055 0.0691244 -0.0114149 0.0 +1161 2.95 3.55 63.75 -0.00607235 -0.0689444 0.00606736 0.00520628 0.0689476 -0.00519972 0.0 +1162 2.95 3.55 71.25 -0.00320545 -0.0714308 0.00319651 0.00162512 0.0714338 -0.00162543 0.0 +1163 2.95 3.55 78.75 -0.000709974 -0.0611886 0.00068591 -0.000332506 0.0611933 0.00033069 0.0 +1164 2.95 3.55 86.25 -0.00172169 -0.0350745 0.00168824 -0.00153632 0.035038 0.00153626 0.0 +1165 2.95 3.55 93.75 -0.00504304 -0.0114154 0.00501691 -0.001532 0.0114067 0.0015284 0.0 +1166 2.95 3.55 101.25 -0.00419399 0.00690274 0.00423812 -0.00070908 -0.00693605 0.000712363 0.0 +1167 2.95 3.55 108.75 0.00145246 0.0217666 -0.00146955 -0.00136473 -0.0217677 0.00136709 0.0 +1168 2.95 3.55 116.25 0.00646822 0.0283925 -0.00648991 -0.0023095 -0.0283929 0.00231683 0.0 +1169 2.95 3.55 123.75 0.0071676 0.0255024 -0.00717304 -0.00117394 -0.0255343 0.00118872 0.0 +1170 2.95 3.55 131.25 0.00551051 0.0191405 -0.00553503 0.000805702 -0.0191302 -0.000807014 0.0 +1171 2.95 3.55 138.75 0.00491972 0.0139924 -0.00492367 0.00107791 -0.0140157 -0.00107725 0.0 +1172 2.95 3.55 146.25 0.00468329 0.0079675 -0.00466349 9.16014e-06 -0.0079586 -7.70033e-06 0.0 +1173 2.95 3.55 153.75 0.00109992 -0.00389049 -0.00104878 0.000299902 0.00394253 -0.000326509 0.0 +1174 2.95 3.55 161.25 -0.0078958 -0.022461 0.00792024 0.0035239 0.0224411 -0.0035224 0.0 +1175 2.95 3.55 168.75 -0.019444 -0.0423078 0.0194506 0.00839838 0.0423256 -0.00840352 0.0 +1176 2.95 3.55 176.25 -0.0275442 -0.0551633 0.0275625 0.011971 0.0551683 -0.0119705 0.0 +1177 2.95 3.65 3.75 7.06704 4.57331 -7.06704 82.2836 -4.57331 -82.2836 0.0 +1178 2.95 3.65 11.25 5.4451 1.75617 -5.4451 41.4025 -1.75617 -41.4025 0.0 +1179 2.95 3.65 18.75 3.205 -0.181937 -3.205 13.315 0.181936 -13.315 0.0 +1180 2.95 3.65 26.25 1.3884 -0.45091 -1.3884 2.87287 0.450911 -2.87287 0.0 +1181 2.95 3.65 33.75 0.399535 -0.156162 -0.399534 0.408566 0.156164 -0.408568 0.0 +1182 2.95 3.65 41.25 0.0474327 0.000325414 -0.0474365 0.0559439 -0.000322232 -0.0559436 0.0 +1183 2.95 3.65 48.75 -0.0167623 0.0148239 0.0167622 0.0118571 -0.0148242 -0.011857 0.0 +1184 2.95 3.65 56.25 -0.00966538 0.00961204 0.00966566 0.000613902 -0.00961345 -0.000615629 0.0 +1185 2.95 3.65 63.75 -0.0018771 0.00670523 0.00187471 0.000440809 -0.00670146 -0.000440008 0.0 +1186 2.95 3.65 71.25 -0.000281351 0.00228719 0.000284629 0.00150972 -0.00228777 -0.00150899 0.0 +1187 2.95 3.65 78.75 -0.000573671 0.000786642 0.000576419 0.00114584 -0.000789663 -0.00114555 0.0 +1188 2.95 3.65 86.25 -0.00114618 0.000614687 0.00115016 0.000658531 -0.000610215 -0.000658224 0.0 +1189 2.95 3.65 93.75 -0.0014843 -0.00108906 0.00148416 0.000686066 0.00108644 -0.000685896 0.0 +1190 2.95 3.65 101.25 -0.000744824 -0.00226437 0.000742569 0.000394 0.00226277 -0.000394553 0.0 +1191 2.95 3.65 108.75 0.000733179 -0.00144773 -0.000733097 -0.000392875 0.00144773 0.000393178 0.0 +1192 2.95 3.65 116.25 0.00137293 -0.00049035 -0.00137606 -0.000632154 0.000487911 0.000633826 0.0 +1193 2.95 3.65 123.75 0.000493895 -0.000912215 -0.00049636 8.38473e-05 0.000900696 -7.85158e-05 0.0 +1194 2.95 3.65 131.25 -0.000825425 -0.0018564 0.000824058 0.000856545 0.00185558 -0.000856062 0.0 +1195 2.95 3.65 138.75 -0.00108814 -0.00180504 0.00109441 0.000819354 0.00179515 -0.000812508 0.0 +1196 2.95 3.65 146.25 1.93775e-05 -0.000479276 -1.65839e-05 0.000158438 0.000470583 -0.000154836 0.0 +1197 2.95 3.65 153.75 0.00166473 0.00127079 -0.00166242 -0.000315957 -0.00126902 0.00031561 0.0 +1198 2.95 3.65 161.25 0.00284097 0.00252966 -0.00283858 -0.000108367 -0.00252762 0.000107593 0.0 +1199 2.95 3.65 168.75 0.00323364 0.00305014 -0.00322845 0.000583253 -0.00304442 -0.000587227 0.0 +1200 2.95 3.65 176.25 0.00320119 0.00313431 -0.00320683 0.0011639 -0.00314025 -0.00116103 0.0 +1201 3.05 3.05 3.75 -1202.39 -470.365 1202.39 24403 470.365 -24403 0.0 +1202 3.05 3.05 11.25 -668.169 -316.378 668.169 5239.8 316.378 -5239.8 0.0 +1203 3.05 3.05 18.75 -281.731 -159.304 281.731 1455.24 159.304 -1455.24 0.0 +1204 3.05 3.05 26.25 -82.2316 -55.9751 82.2316 322.339 55.9751 -322.339 0.0 +1205 3.05 3.05 33.75 -13.2072 -11.7376 13.2072 43.2474 11.7377 -43.2475 0.0 +1206 3.05 3.05 41.25 -0.23727 -0.951403 0.237225 1.56363 0.951413 -1.56361 0.0 +1207 3.05 3.05 48.75 -0.165939 -0.246228 0.165967 0.206541 0.24613 -0.206511 0.0 +1208 3.05 3.05 56.25 -0.436043 -0.410636 0.436083 0.304896 0.410632 -0.304963 0.0 +1209 3.05 3.05 63.75 -0.30763 -0.310295 0.307609 0.0679989 0.310281 -0.0680052 0.0 +1210 3.05 3.05 71.25 -0.206649 -0.205757 0.206684 -0.0143256 0.20578 0.0143312 0.0 +1211 3.05 3.05 78.75 -0.11617 -0.112842 0.116269 -0.0611922 0.112662 0.0611357 0.0 +1212 3.05 3.05 86.25 -0.029379 -0.026893 0.0293335 -0.0825493 0.0270606 0.0825471 0.0 +1213 3.05 3.05 93.75 0.0356369 0.0385347 -0.0355095 -0.077343 -0.0385093 0.0773448 0.0 +1214 3.05 3.05 101.25 0.0825754 0.0864857 -0.0826079 -0.0638125 -0.0866197 0.0638187 0.0 +1215 3.05 3.05 108.75 0.102049 0.105697 -0.102052 -0.0415323 -0.105879 0.0415234 0.0 +1216 3.05 3.05 116.25 0.0810613 0.0846985 -0.0811354 -0.00976694 -0.0847927 0.00982253 0.0 +1217 3.05 3.05 123.75 0.0328587 0.0382796 -0.0327086 0.0205591 -0.0383158 -0.0204996 0.0 +1218 3.05 3.05 131.25 -0.0175676 -0.00884341 0.0174819 0.0399706 0.00881225 -0.0399405 0.0 +1219 3.05 3.05 138.75 -0.0618523 -0.0507538 0.0617807 0.050519 0.0510671 -0.0507029 0.0 +1220 3.05 3.05 146.25 -0.112984 -0.102557 0.112876 0.062213 0.102547 -0.0622186 0.0 +1221 3.05 3.05 153.75 -0.183953 -0.177566 0.184157 0.0833769 0.177745 -0.0834765 0.0 +1222 3.05 3.05 161.25 -0.271208 -0.270479 0.271245 0.113891 0.27054 -0.113888 0.0 +1223 3.05 3.05 168.75 -0.353042 -0.357989 0.353053 0.145016 0.357905 -0.145054 0.0 +1224 3.05 3.05 176.25 -0.402759 -0.411064 0.402707 0.164734 0.411172 -0.164821 0.0 +1225 3.05 3.15 3.75 -1005.86 -194.498 1005.86 20622.3 194.498 -20622.3 0.0 +1226 3.05 3.15 11.25 -566.091 -160.869 566.091 4886.81 160.869 -4886.81 0.0 +1227 3.05 3.15 18.75 -240.287 -91.2699 240.287 1363.35 91.2699 -1363.35 0.0 +1228 3.05 3.15 26.25 -72.1732 -33.8748 72.1732 302.315 33.8748 -302.315 0.0 +1229 3.05 3.15 33.75 -13.3946 -6.76814 13.3946 41.8615 6.76815 -41.8615 0.0 +1230 3.05 3.15 41.25 -1.23842 -0.233142 1.2384 2.17485 0.233108 -2.17487 0.0 +1231 3.05 3.15 48.75 -0.292521 -0.178012 0.292534 0.218004 0.177961 -0.217937 0.0 +1232 3.05 3.15 56.25 -0.284809 -0.428332 0.284868 0.232091 0.428389 -0.232079 0.0 +1233 3.05 3.15 63.75 -0.220727 -0.340585 0.220826 0.0743496 0.340452 -0.0743638 0.0 +1234 3.05 3.15 71.25 -0.169662 -0.229028 0.169575 -0.00422416 0.228937 0.00423996 0.0 +1235 3.05 3.15 78.75 -0.0951492 -0.138864 0.0951079 -0.0524268 0.138897 0.0524133 0.0 +1236 3.05 3.15 86.25 -0.0249568 -0.057734 0.0249618 -0.0648182 0.0578461 0.0648357 0.0 +1237 3.05 3.15 93.75 0.0258392 0.0131362 -0.0256859 -0.0587348 -0.0128765 0.058722 0.0 +1238 3.05 3.15 101.25 0.0643498 0.0683206 -0.0643807 -0.0481836 -0.0685476 0.0481991 0.0 +1239 3.05 3.15 108.75 0.0794928 0.0928215 -0.0794856 -0.02838 -0.0927884 0.0283377 0.0 +1240 3.05 3.15 116.25 0.0621262 0.0783423 -0.0619376 -0.00193475 -0.0783081 0.00196418 0.0 +1241 3.05 3.15 123.75 0.0258006 0.041661 -0.0259602 0.0203971 -0.0415221 -0.0204713 0.0 +1242 3.05 3.15 131.25 -0.00984299 0.0033761 0.0098454 0.0334746 -0.00365493 -0.0333855 0.0 +1243 3.05 3.15 138.75 -0.0442769 -0.0350514 0.0443307 0.0414554 0.0352449 -0.041497 0.0 +1244 3.05 3.15 146.25 -0.091463 -0.0871559 0.0914155 0.052571 0.0871283 -0.0525267 0.0 +1245 3.05 3.15 153.75 -0.160353 -0.160828 0.160224 0.0723048 0.160761 -0.0723438 0.0 +1246 3.05 3.15 161.25 -0.243335 -0.247674 0.243164 0.0993507 0.247967 -0.0995663 0.0 +1247 3.05 3.15 168.75 -0.318898 -0.326134 0.319007 0.126072 0.32627 -0.126173 0.0 +1248 3.05 3.15 176.25 -0.36419 -0.372832 0.36427 0.142724 0.372732 -0.142595 0.0 +1249 3.05 3.25 3.75 -707.917 46.1555 707.917 14705.3 -46.1555 -14705.3 0.0 +1250 3.05 3.25 11.25 -403.239 -21.7092 403.239 4225.41 21.7092 -4225.41 0.0 +1251 3.05 3.25 18.75 -168.322 -33.4945 168.322 1198.15 33.4945 -1198.15 0.0 +1252 3.05 3.25 26.25 -49.4611 -17.619 49.4611 265.09 17.619 -265.09 0.0 +1253 3.05 3.25 33.75 -9.19503 -4.34197 9.19508 37.0193 4.34196 -37.0193 0.0 +1254 3.05 3.25 41.25 -0.984275 -0.283052 0.984305 2.13686 0.283053 -2.13689 0.0 +1255 3.05 3.25 48.75 -0.18842 -0.24192 0.188469 0.12944 0.241853 -0.129426 0.0 +1256 3.05 3.25 56.25 -0.14452 -0.42971 0.144635 0.148393 0.42977 -0.148431 0.0 +1257 3.05 3.25 63.75 -0.142141 -0.341575 0.142225 0.0603106 0.341607 -0.0603114 0.0 +1258 3.05 3.25 71.25 -0.120366 -0.235824 0.120331 -0.00584193 0.236031 0.00590595 0.0 +1259 3.05 3.25 78.75 -0.0648858 -0.155118 0.0648497 -0.0407089 0.155197 0.0406872 0.0 +1260 3.05 3.25 86.25 -0.0170367 -0.0778598 0.0169629 -0.0444295 0.0780579 0.0444343 0.0 +1261 3.05 3.25 93.75 0.0177195 -0.00503444 -0.0176269 -0.0424893 0.00514769 0.042496 0.0 +1262 3.05 3.25 101.25 0.0462891 0.05416 -0.0462865 -0.0373615 -0.0542229 0.0373631 0.0 +1263 3.05 3.25 108.75 0.0573669 0.084333 -0.0573216 -0.0224864 -0.0844456 0.0224838 0.0 +1264 3.05 3.25 116.25 0.0451776 0.0795648 -0.0451227 -0.00389795 -0.0795657 0.00392705 0.0 +1265 3.05 3.25 123.75 0.0215897 0.0526945 -0.021368 0.0103573 -0.0529347 -0.010223 0.0 +1266 3.05 3.25 131.25 -0.00169711 0.0202141 0.00167047 0.0191787 -0.0203379 -0.0191286 0.0 +1267 3.05 3.25 138.75 -0.0264021 -0.0159575 0.0263373 0.0263274 0.0160538 -0.0263645 0.0 +1268 3.05 3.25 146.25 -0.0639974 -0.0644796 0.063985 0.0366322 0.0642138 -0.0364741 0.0 +1269 3.05 3.25 153.75 -0.119886 -0.129575 0.119896 0.0530471 0.129703 -0.0531036 0.0 +1270 3.05 3.25 161.25 -0.186549 -0.203618 0.186351 0.0742664 0.20364 -0.0742798 0.0 +1271 3.05 3.25 168.75 -0.246276 -0.269152 0.246288 0.0946959 0.269294 -0.0948405 0.0 +1272 3.05 3.25 176.25 -0.281602 -0.307458 0.281688 0.107277 0.307531 -0.107285 0.0 +1273 3.05 3.35 3.75 -365.113 209.441 365.113 9554.04 -209.441 -9554.04 0.0 +1274 3.05 3.35 11.25 -204.246 81.0767 204.246 3280.1 -81.0766 -3280.1 0.0 +1275 3.05 3.35 18.75 -79.3542 9.6114 79.3542 951.267 -9.61141 -951.267 0.0 +1276 3.05 3.35 26.25 -20.8335 -5.94072 20.8335 209.249 5.9407 -209.249 0.0 +1277 3.05 3.35 33.75 -3.39742 -2.81825 3.39744 28.9771 2.81824 -28.9771 0.0 +1278 3.05 3.35 41.25 -0.403877 -0.37604 0.403872 1.67216 0.375997 -1.67217 0.0 +1279 3.05 3.35 48.75 -0.0863015 -0.268756 0.0862503 0.0304183 0.2687 -0.0303612 0.0 +1280 3.05 3.35 56.25 -0.0467076 -0.385723 0.0467254 0.0764897 0.385756 -0.0765678 0.0 +1281 3.05 3.35 63.75 -0.0765137 -0.296157 0.076492 0.0332949 0.296254 -0.033302 0.0 +1282 3.05 3.35 71.25 -0.0737102 -0.217777 0.0736319 -0.011919 0.217711 0.0118976 0.0 +1283 3.05 3.35 78.75 -0.0386226 -0.164005 0.0385937 -0.0252131 0.164091 0.0252167 0.0 +1284 3.05 3.35 86.25 -0.00860859 -0.0968502 0.00848829 -0.0245854 0.0969682 0.0245984 0.0 +1285 3.05 3.35 93.75 0.0147737 -0.0236231 -0.0147163 -0.0288229 0.0237517 0.0288162 0.0 +1286 3.05 3.35 101.25 0.0330742 0.0394288 -0.0329504 -0.0272844 -0.0394857 0.0273121 0.0 +1287 3.05 3.35 108.75 0.0377886 0.0770313 -0.0378089 -0.0166062 -0.0771797 0.0166531 0.0 +1288 3.05 3.35 116.25 0.0269164 0.0808568 -0.0269524 -0.00526022 -0.0808528 0.00523792 0.0 +1289 3.05 3.35 123.75 0.00994602 0.0605897 -0.00992017 0.00301009 -0.06072 -0.00291031 0.0 +1290 3.05 3.35 131.25 -0.00533206 0.0321631 0.00513532 0.00937287 -0.0322053 -0.00941624 0.0 +1291 3.05 3.35 138.75 -0.0198079 0.00170782 0.0198683 0.0152825 -0.00186433 -0.0152538 0.0 +1292 3.05 3.35 146.25 -0.0421542 -0.0369206 0.0421364 0.0228346 0.0366588 -0.0227076 0.0 +1293 3.05 3.35 153.75 -0.0772172 -0.0895244 0.0772434 0.0344402 0.0896002 -0.0344561 0.0 +1294 3.05 3.35 161.25 -0.121604 -0.151599 0.12161 0.0498996 0.151602 -0.0499331 0.0 +1295 3.05 3.35 168.75 -0.163376 -0.208149 0.163288 0.0652244 0.208133 -0.0652161 0.0 +1296 3.05 3.35 176.25 -0.188553 -0.242014 0.18862 0.0748184 0.241996 -0.0748296 0.0 +1297 3.05 3.45 3.75 -49.0063 211.636 49.0063 4534.02 -211.636 -4534.02 0.0 +1298 3.05 3.45 11.25 -16.2879 99.9048 16.2879 1783.56 -99.9048 -1783.56 0.0 +1299 3.05 3.45 18.75 1.92371 24.1588 -1.92369 528.913 -24.1588 -528.913 0.0 +1300 3.05 3.45 26.25 3.92081 0.239734 -3.92085 114.895 -0.239708 -114.895 0.0 +1301 3.05 3.45 33.75 1.33681 -1.29813 -1.33683 15.4468 1.29814 -15.4467 0.0 +1302 3.05 3.45 41.25 0.0515692 -0.168192 -0.0515773 0.808296 0.168187 -0.808324 0.0 +1303 3.05 3.45 48.75 -0.0454932 -0.172325 0.0455576 -0.0119284 0.172203 0.0119136 0.0 +1304 3.05 3.45 56.25 -0.00725921 -0.261217 0.00720111 0.0402311 0.261254 -0.040187 0.0 +1305 3.05 3.45 63.75 -0.0304125 -0.195611 0.0304302 0.0163773 0.195633 -0.0163835 0.0 +1306 3.05 3.45 71.25 -0.0332991 -0.159008 0.0333114 -0.00806962 0.159016 0.00804613 0.0 +1307 3.05 3.45 78.75 -0.0178735 -0.133654 0.0179131 -0.00824974 0.13361 0.00825353 0.0 +1308 3.05 3.45 86.25 -0.00502976 -0.0823886 0.00511234 -0.00794398 0.0823682 0.00794143 0.0 +1309 3.05 3.45 93.75 0.00414406 -0.0240697 -0.00419551 -0.0119802 0.0240974 0.0119811 0.0 +1310 3.05 3.45 101.25 0.0110567 0.0255518 -0.0111244 -0.0104323 -0.025573 0.0104402 0.0 +1311 3.05 3.45 108.75 0.0138462 0.0574772 -0.013883 -0.00606324 -0.0575893 0.00608259 0.0 +1312 3.05 3.45 116.25 0.011077 0.0635865 -0.0110606 -0.00305434 -0.0635874 0.00307944 0.0 +1313 3.05 3.45 123.75 0.00449426 0.0488256 -0.00448388 0.000439858 -0.0487677 -0.000429246 0.0 +1314 3.05 3.45 131.25 -0.0019067 0.0282409 0.0019165 0.0047807 -0.028183 -0.00479583 0.0 +1315 3.05 3.45 138.75 -0.00725526 0.00817585 0.0071253 0.00823976 -0.0082291 -0.00826636 0.0 +1316 3.05 3.45 146.25 -0.0164527 -0.017166 0.0163605 0.0119186 0.0170814 -0.0118721 0.0 +1317 3.05 3.45 153.75 -0.0355769 -0.0560084 0.0355731 0.0191433 0.0558956 -0.0190579 0.0 +1318 3.05 3.45 161.25 -0.0646594 -0.106219 0.0647645 0.0307881 0.106203 -0.0308022 0.0 +1319 3.05 3.45 168.75 -0.0953586 -0.154516 0.0954731 0.0434057 0.154565 -0.0434184 0.0 +1320 3.05 3.45 176.25 -0.115325 -0.184291 0.11528 0.0516029 0.184203 -0.0515372 0.0 +1321 3.05 3.55 3.75 58.2865 95.694 -58.2865 1303.18 -95.694 -1303.18 0.0 +1322 3.05 3.55 11.25 43.7842 47.0725 -43.7842 564.702 -47.0725 -564.702 0.0 +1323 3.05 3.55 18.75 24.1468 11.6001 -24.1468 170.104 -11.6002 -170.104 0.0 +1324 3.05 3.55 26.25 9.2032 0.165595 -9.2032 36.0656 -0.165608 -36.0656 0.0 +1325 3.05 3.55 33.75 2.10018 -0.495089 -2.10018 4.59251 0.495098 -4.5925 0.0 +1326 3.05 3.55 41.25 0.159888 0.0314295 -0.159875 0.213805 -0.0314347 -0.213825 0.0 +1327 3.05 3.55 48.75 -0.0316332 -0.0209589 0.0316297 0.0113881 0.020965 -0.011392 0.0 +1328 3.05 3.55 56.25 -0.00590874 -0.08247 0.00589294 0.029912 0.0824799 -0.0299018 0.0 +1329 3.05 3.55 63.75 -0.00460387 -0.0639712 0.00458972 0.0134455 0.0639916 -0.0134371 0.0 +1330 3.05 3.55 71.25 -0.00323754 -0.0605657 0.00327371 0.00123371 0.0605309 -0.00124148 0.0 +1331 3.05 3.55 78.75 -0.000975075 -0.0526099 0.000959984 0.00021812 0.052629 -0.000218025 0.0 +1332 3.05 3.55 86.25 -0.00152766 -0.0304211 0.00152531 -0.000124893 0.0304344 0.000128979 0.0 +1333 3.05 3.55 93.75 -0.00281045 -0.0103052 0.00282543 -0.000164696 0.0103138 0.000165631 0.0 +1334 3.05 3.55 101.25 -0.000794283 0.00655645 0.00082915 9.05452e-05 -0.0065146 -9.18973e-05 0.0 +1335 3.05 3.55 108.75 0.0048571 0.0208882 -0.00483972 -0.00172205 -0.020898 0.00171912 0.0 +1336 3.05 3.55 116.25 0.00910593 0.0261263 -0.00910381 -0.00286916 -0.026165 0.00289949 0.0 +1337 3.05 3.55 123.75 0.00835341 0.0213906 -0.00837047 -0.000577344 -0.0213633 0.000556754 0.0 +1338 3.05 3.55 131.25 0.00484672 0.0140179 -0.00483896 0.00261085 -0.0140112 -0.00259889 0.0 +1339 3.05 3.55 138.75 0.00145793 0.00803444 -0.00146708 0.00365082 -0.00802698 -0.00365445 0.0 +1340 3.05 3.55 146.25 -0.00319952 -0.000185068 0.00323208 0.00391313 0.000156672 -0.00387595 0.0 +1341 3.05 3.55 153.75 -0.0136071 -0.0160629 0.0136006 0.0069895 0.0160638 -0.00699597 0.0 +1342 3.05 3.55 161.25 -0.0307544 -0.0391932 0.0307909 0.0140586 0.0392269 -0.0140635 0.0 +1343 3.05 3.55 168.75 -0.0498663 -0.0628118 0.0498782 0.0225481 0.0628021 -0.0225421 0.0 +1344 3.05 3.55 176.25 -0.0625385 -0.0776921 0.0625437 0.0282624 0.0776849 -0.0282597 0.0 +1345 3.05 3.65 3.75 14.7738 9.01288 -14.7738 99.4234 -9.01288 -99.4234 0.0 +1346 3.05 3.65 11.25 10.4256 4.10096 -10.4256 45.9297 -4.10096 -45.9297 0.0 +1347 3.05 3.65 18.75 5.33829 0.564282 -5.33829 13.8766 -0.564281 -13.8766 0.0 +1348 3.05 3.65 26.25 1.92055 -0.318539 -1.92055 2.83407 0.318537 -2.83407 0.0 +1349 3.05 3.65 33.75 0.431842 -0.140656 -0.431843 0.348739 0.140656 -0.348739 0.0 +1350 3.05 3.65 41.25 0.0364247 0.00723669 -0.0364242 0.0264389 -0.00723644 -0.0264393 0.0 +1351 3.05 3.65 48.75 -0.0100345 0.0159315 0.0100318 0.0080024 -0.0159293 -0.00800035 0.0 +1352 3.05 3.65 56.25 -0.00452025 0.00778732 0.00451941 0.00551883 -0.00778686 -0.00552083 0.0 +1353 3.05 3.65 63.75 -0.000672337 0.00521555 0.000670408 0.00280248 -0.00521397 -0.00280318 0.0 +1354 3.05 3.65 71.25 0.000360923 0.00171355 -0.00036216 0.00121365 -0.00171269 -0.00121435 0.0 +1355 3.05 3.65 78.75 6.70805e-05 0.000819412 -6.59271e-05 0.000597606 -0.000817676 -0.000597435 0.0 +1356 3.05 3.65 86.25 -0.00057186 0.000644185 0.000572355 0.000567504 -0.00064307 -0.000567647 0.0 +1357 3.05 3.65 93.75 -0.000751471 -0.00106817 0.000749874 0.000757072 0.00106639 -0.000757055 0.0 +1358 3.05 3.65 101.25 0.000275919 -0.00183009 -0.000275096 0.000255174 0.00183474 -0.00025562 0.0 +1359 3.05 3.65 108.75 0.00189848 -0.000761837 -0.00189497 -0.000636546 0.000759074 0.000637236 0.0 +1360 3.05 3.65 116.25 0.00236351 -0.000115402 -0.00236272 -0.000553323 0.000119324 0.000553044 0.0 +1361 3.05 3.65 123.75 0.00106135 -0.00107726 -0.00106142 0.000592741 0.00108013 -0.000595129 0.0 +1362 3.05 3.65 131.25 -0.000675214 -0.0023987 0.000676951 0.00145629 0.00239971 -0.00145617 0.0 +1363 3.05 3.65 138.75 -0.00134281 -0.00270273 0.00134522 0.00120903 0.00269853 -0.00120659 0.0 +1364 3.05 3.65 146.25 -0.000900174 -0.00203273 0.000901187 0.000435489 0.00203583 -0.00043519 0.0 +1365 3.05 3.65 153.75 -0.000477871 -0.00132233 0.00047692 0.000219008 0.00131769 -0.000216421 0.0 +1366 3.05 3.65 161.25 -0.000970611 -0.00119912 0.000968838 0.000989395 0.00120357 -0.000993014 0.0 +1367 3.05 3.65 168.75 -0.00221265 -0.00158211 0.00221741 0.00227827 0.00158658 -0.00228145 0.0 +1368 3.05 3.65 176.25 -0.00325813 -0.00197769 0.00326165 0.00322864 0.00198236 -0.00323014 0.0 +1369 3.15 3.15 3.75 -956.411 -157.961 956.411 21490.2 157.961 -21490.2 0.0 +1370 3.15 3.15 11.25 -539.133 -158.376 539.133 4570.6 158.376 -4570.6 0.0 +1371 3.15 3.15 18.75 -230.746 -100.448 230.746 1239.08 100.448 -1239.08 0.0 +1372 3.15 3.15 26.25 -69.0286 -41.453 69.0285 264.322 41.4531 -264.322 0.0 +1373 3.15 3.15 33.75 -11.9443 -9.95787 11.9443 34.0693 9.95793 -34.0693 0.0 +1374 3.15 3.15 41.25 -0.582646 -0.953585 0.58261 1.49815 0.953585 -1.49815 0.0 +1375 3.15 3.15 48.75 -0.185725 -0.189058 0.185672 0.262739 0.188971 -0.262688 0.0 +1376 3.15 3.15 56.25 -0.35028 -0.339487 0.350287 0.209512 0.33955 -0.209522 0.0 +1377 3.15 3.15 63.75 -0.251984 -0.259721 0.252092 0.053384 0.25962 -0.0533321 0.0 +1378 3.15 3.15 71.25 -0.171035 -0.17401 0.170979 -0.00382131 0.173971 0.003789 0.0 +1379 3.15 3.15 78.75 -0.103081 -0.108356 0.103106 -0.0377398 0.108153 0.0377189 0.0 +1380 3.15 3.15 86.25 -0.0427632 -0.046394 0.0427713 -0.0466376 0.0463966 0.046639 0.0 +1381 3.15 3.15 93.75 0.00566927 0.00495154 -0.00569908 -0.0428492 -0.00499621 0.0428512 0.0 +1382 3.15 3.15 101.25 0.0504745 0.0463917 -0.0505543 -0.0360707 -0.0464682 0.0360915 0.0 +1383 3.15 3.15 108.75 0.0794281 0.0686813 -0.0795551 -0.0228925 -0.0688457 0.0229235 0.0 +1384 3.15 3.15 116.25 0.0742594 0.061464 -0.0741882 -0.00450275 -0.0615471 0.00449575 0.0 +1385 3.15 3.15 123.75 0.0412054 0.0335455 -0.0410459 0.0122873 -0.0334909 -0.0122658 0.0 +1386 3.15 3.15 131.25 0.00256192 0.00204886 -0.00232937 0.0225283 -0.00204045 -0.0224878 0.0 +1387 3.15 3.15 138.75 -0.0317873 -0.0281822 0.0319935 0.0275685 0.0282669 -0.0275469 0.0 +1388 3.15 3.15 146.25 -0.0711984 -0.0672197 0.0711102 0.0343857 0.0670901 -0.0343675 0.0 +1389 3.15 3.15 153.75 -0.126399 -0.123952 0.126399 0.0498039 0.123889 -0.049802 0.0 +1390 3.15 3.15 161.25 -0.195704 -0.194707 0.195608 0.074158 0.194762 -0.0742025 0.0 +1391 3.15 3.15 168.75 -0.261579 -0.261942 0.261393 0.100026 0.261901 -0.100036 0.0 +1392 3.15 3.15 176.25 -0.301524 -0.302836 0.301604 0.116713 0.302746 -0.116682 0.0 +1393 3.15 3.25 3.75 -650.193 134.226 650.193 17650.1 -134.226 -17650.1 0.0 +1394 3.15 3.25 11.25 -365.979 7.48146 365.979 4109.37 -7.48145 -4109.37 0.0 +1395 3.15 3.25 18.75 -155.208 -30.119 155.208 1115.3 30.119 -1115.3 0.0 +1396 3.15 3.25 26.25 -46.6783 -20.0797 46.6784 237.228 20.0796 -237.228 0.0 +1397 3.15 3.25 33.75 -8.72374 -5.70064 8.7238 31.186 5.70056 -31.186 0.0 +1398 3.15 3.25 41.25 -0.780005 -0.490403 0.779991 1.61053 0.490338 -1.61049 0.0 +1399 3.15 3.25 48.75 -0.160056 -0.188506 0.160035 0.172817 0.188447 -0.172832 0.0 +1400 3.15 3.25 56.25 -0.197253 -0.356173 0.197337 0.156424 0.35612 -0.156432 0.0 +1401 3.15 3.25 63.75 -0.16741 -0.265816 0.167365 0.0571964 0.265815 -0.0571946 0.0 +1402 3.15 3.25 71.25 -0.130237 -0.184874 0.130267 0.00234427 0.184786 -0.0023759 0.0 +1403 3.15 3.25 78.75 -0.0843061 -0.129234 0.0843542 -0.022381 0.129426 0.0223457 0.0 +1404 3.15 3.25 86.25 -0.03979 -0.0657959 0.0398035 -0.0277737 0.0658759 0.0277741 0.0 +1405 3.15 3.25 93.75 -0.00238909 -0.00774928 0.00240125 -0.0282358 0.00785304 0.028235 0.0 +1406 3.15 3.25 101.25 0.0303823 0.0357636 -0.0303854 -0.0222829 -0.0356794 0.0222854 0.0 +1407 3.15 3.25 108.75 0.0506977 0.0585556 -0.0506894 -0.0102554 -0.0584086 0.0102105 0.0 +1408 3.15 3.25 116.25 0.0502104 0.0558613 -0.050186 0.00160465 -0.0559321 -0.00157822 0.0 +1409 3.15 3.25 123.75 0.0345455 0.035523 -0.0344902 0.0104005 -0.0355763 -0.0103987 0.0 +1410 3.15 3.25 131.25 0.0151486 0.0110531 -0.015251 0.0158941 -0.0112994 -0.0157901 0.0 +1411 3.15 3.25 138.75 -0.0050971 -0.013565 0.00511178 0.019016 0.013684 -0.0190174 0.0 +1412 3.15 3.25 146.25 -0.0345021 -0.0459216 0.0345176 0.0233695 0.0459787 -0.0233686 0.0 +1413 3.15 3.25 153.75 -0.0793413 -0.0928252 0.079314 0.0332493 0.092565 -0.033146 0.0 +1414 3.15 3.25 161.25 -0.134603 -0.150218 0.13452 0.0491025 0.150129 -0.0490542 0.0 +1415 3.15 3.25 168.75 -0.18553 -0.204163 0.185623 0.0660649 0.204474 -0.0662343 0.0 +1416 3.15 3.25 176.25 -0.216402 -0.237045 0.216252 0.0770174 0.237253 -0.0771667 0.0 +1417 3.15 3.35 3.75 -275.127 338.879 275.127 11754.8 -338.879 -11754.8 0.0 +1418 3.15 3.35 11.25 -149.928 134.982 149.928 3283.86 -134.982 -3283.86 0.0 +1419 3.15 3.35 18.75 -59.9126 24.6097 59.9126 901.613 -24.6098 -901.613 0.0 +1420 3.15 3.35 26.25 -17.3899 -3.93464 17.3899 190.736 3.93463 -190.736 0.0 +1421 3.15 3.35 33.75 -3.54567 -2.80737 3.54565 25.2257 2.80735 -25.2256 0.0 +1422 3.15 3.35 41.25 -0.5028 -0.297045 0.502764 1.39094 0.297079 -1.39098 0.0 +1423 3.15 3.35 48.75 -0.0786613 -0.21351 0.0785848 0.0781363 0.213592 -0.0781848 0.0 +1424 3.15 3.35 56.25 -0.0749822 -0.340141 0.0749439 0.0885512 0.340151 -0.0884967 0.0 +1425 3.15 3.35 63.75 -0.0903085 -0.233796 0.0902789 0.0251462 0.233735 -0.0251422 0.0 +1426 3.15 3.35 71.25 -0.0742191 -0.168217 0.0742917 -0.0123034 0.168118 0.0122774 0.0 +1427 3.15 3.35 78.75 -0.0442502 -0.131009 0.0441129 -0.0159319 0.131038 0.0159283 0.0 +1428 3.15 3.35 86.25 -0.0140131 -0.074057 0.0140325 -0.0175558 0.0741452 0.0175633 0.0 +1429 3.15 3.35 93.75 0.0107044 -0.016984 -0.0107096 -0.0224514 0.0169392 0.0224516 0.0 +1430 3.15 3.35 101.25 0.0273468 0.0283944 -0.0273571 -0.0182899 -0.0285471 0.0182767 0.0 +1431 3.15 3.35 108.75 0.0341621 0.05763 -0.0342268 -0.00978414 -0.0577058 0.00979257 0.0 +1432 3.15 3.35 116.25 0.0303908 0.0623219 -0.030319 -0.00386081 -0.0623156 0.00386282 0.0 +1433 3.15 3.35 123.75 0.0193498 0.0473473 -0.0192958 0.00117491 -0.0471971 -0.0012989 0.0 +1434 3.15 3.35 131.25 0.00780853 0.0276758 -0.00776157 0.00608841 -0.0275645 -0.00615459 0.0 +1435 3.15 3.35 138.75 -0.00281951 0.00980171 0.0028173 0.00899561 -0.0103754 -0.00875617 0.0 +1436 3.15 3.35 146.25 -0.0177849 -0.0122083 0.0178591 0.0111587 0.0120863 -0.0110729 0.0 +1437 3.15 3.35 153.75 -0.0428755 -0.0468128 0.0427986 0.0164875 0.0467219 -0.0164577 0.0 +1438 3.15 3.35 161.25 -0.0757418 -0.0922436 0.0757394 0.0263114 0.0922185 -0.0263166 0.0 +1439 3.15 3.35 168.75 -0.107642 -0.136426 0.107584 0.0374315 0.136228 -0.0373364 0.0 +1440 3.15 3.35 176.25 -0.127132 -0.16362 0.127062 0.0447389 0.163558 -0.0447096 0.0 +1441 3.15 3.45 3.75 46.6657 326.302 -46.6657 5480.32 -326.302 -5480.32 0.0 +1442 3.15 3.45 11.25 39.3764 154.267 -39.3764 1815.17 -154.267 -1815.17 0.0 +1443 3.15 3.45 18.75 22.0244 42.3138 -22.0244 505.91 -42.3138 -505.91 0.0 +1444 3.15 3.45 26.25 7.29371 4.3406 -7.29372 105.668 -4.3406 -105.668 0.0 +1445 3.15 3.45 33.75 0.914334 -0.603679 -0.914334 13.7287 0.603677 -13.7287 0.0 +1446 3.15 3.45 41.25 -0.158065 -0.0326246 0.158056 0.711344 0.0326778 -0.711315 0.0 +1447 3.15 3.45 48.75 -0.0159738 -0.166204 0.0159671 0.0133403 0.16615 -0.0133219 0.0 +1448 3.15 3.45 56.25 -0.00488119 -0.253233 0.00491148 0.0471634 0.253244 -0.0471562 0.0 +1449 3.15 3.45 63.75 -0.0387289 -0.159738 0.0387929 0.00737726 0.159718 -0.00733701 0.0 +1450 3.15 3.45 71.25 -0.0342167 -0.123108 0.0342095 -0.0134089 0.123119 0.0133794 0.0 +1451 3.15 3.45 78.75 -0.0183889 -0.107233 0.0183971 -0.00702141 0.10719 0.00700092 0.0 +1452 3.15 3.45 86.25 -0.00224304 -0.0672358 0.00223149 -0.00740458 0.06732 0.00740179 0.0 +1453 3.15 3.45 93.75 0.00883338 -0.0235886 -0.00886164 -0.0107045 0.0235433 0.0107089 0.0 +1454 3.15 3.45 101.25 0.0123235 0.015828 -0.012348 -0.00762384 -0.0158064 0.00760398 0.0 +1455 3.15 3.45 108.75 0.0118714 0.0452165 -0.0118843 -0.00509858 -0.0451645 0.00505638 0.0 +1456 3.15 3.45 116.25 0.00859034 0.0531575 -0.00865278 -0.00443542 -0.0532255 0.00444204 0.0 +1457 3.15 3.45 123.75 0.00258788 0.0423716 -0.00256692 -0.00117868 -0.0424366 0.00121603 0.0 +1458 3.15 3.45 131.25 -0.00267606 0.0273421 0.00253797 0.00313079 -0.0273467 -0.00313102 0.0 +1459 3.15 3.45 138.75 -0.00458018 0.0145732 0.00460276 0.00490419 -0.0145389 -0.00492224 0.0 +1460 3.15 3.45 146.25 -0.00839922 -0.00315912 0.00836753 0.00593978 0.00307101 -0.00589991 0.0 +1461 3.15 3.45 153.75 -0.0209444 -0.0338477 0.020904 0.0108714 0.0337667 -0.0108179 0.0 +1462 3.15 3.45 161.25 -0.0433497 -0.0756648 0.043318 0.020838 0.0757092 -0.0208768 0.0 +1463 3.15 3.45 168.75 -0.0683875 -0.116448 0.0683041 0.0321496 0.116416 -0.0321632 0.0 +1464 3.15 3.45 176.25 -0.0847651 -0.141502 0.0847114 0.0395279 0.141475 -0.0394984 0.0 +1465 3.15 3.55 3.75 113.453 150.898 -113.453 1527.06 -150.898 -1527.06 0.0 +1466 3.15 3.55 11.25 75.6979 75.7027 -75.6979 574.861 -75.7027 -574.861 0.0 +1467 3.15 3.55 18.75 35.5664 22.022 -35.5664 161.502 -22.022 -161.502 0.0 +1468 3.15 3.55 26.25 10.941 2.87256 -10.941 32.6315 -2.87256 -32.6315 0.0 +1469 3.15 3.55 33.75 1.72278 0.0375193 -1.7228 3.93133 -0.0374953 -3.93134 0.0 +1470 3.15 3.55 41.25 0.0142898 0.108618 -0.0143047 0.136579 -0.108608 -0.136591 0.0 +1471 3.15 3.55 48.75 0.00816166 -0.0380896 -0.00814953 0.010256 0.0380813 -0.0102749 0.0 +1472 3.15 3.55 56.25 0.0124306 -0.0965177 -0.0124185 0.0389722 0.0965193 -0.0389853 0.0 +1473 3.15 3.55 63.75 -0.00596526 -0.0594462 0.00595775 0.0133454 0.0594234 -0.0133421 0.0 +1474 3.15 3.55 71.25 -0.00358192 -0.0502022 0.00356674 -0.001576 0.0502323 0.00155584 0.0 +1475 3.15 3.55 78.75 0.000427233 -0.0447805 -0.000397985 -0.000360659 0.0448087 0.000358663 0.0 +1476 3.15 3.55 86.25 0.00221954 -0.0289613 -0.00224103 0.000309741 0.0290046 -0.000307859 0.0 +1477 3.15 3.55 93.75 0.00167606 -0.0143391 -0.0016639 0.000808733 0.0143451 -0.000807743 0.0 +1478 3.15 3.55 101.25 0.00112826 0.001235 -0.00111313 0.000644257 -0.00118443 -0.000655222 0.0 +1479 3.15 3.55 108.75 0.00330286 0.0161835 -0.00328457 -0.00210868 -0.0161684 0.00210336 0.0 +1480 3.15 3.55 116.25 0.00487387 0.021415 -0.00489745 -0.00297998 -0.0214282 0.00298062 0.0 +1481 3.15 3.55 123.75 0.00293975 0.016899 -0.00293859 0.000267886 -0.0168868 -0.000264266 0.0 +1482 3.15 3.55 131.25 -0.000108452 0.0105143 0.000105308 0.0034128 -0.0105219 -0.00340601 0.0 +1483 3.15 3.55 138.75 -0.0019759 0.00532812 0.00199003 0.00354695 -0.00537804 -0.00353067 0.0 +1484 3.15 3.55 146.25 -0.00603215 -0.00319989 0.00603288 0.00350166 0.0031536 -0.00347955 0.0 +1485 3.15 3.55 153.75 -0.0177873 -0.0194322 0.017795 0.00752565 0.0194683 -0.00752983 0.0 +1486 3.15 3.55 161.25 -0.0380423 -0.0418389 0.038072 0.0161592 0.041823 -0.016153 0.0 +1487 3.15 3.55 168.75 -0.0604183 -0.0634358 0.0604406 0.025925 0.0634577 -0.0259272 0.0 +1488 3.15 3.55 176.25 -0.0751419 -0.0766462 0.0751429 0.0322594 0.0766293 -0.0322626 0.0 +1489 3.15 3.65 3.75 22.6045 15.6092 -22.6045 111.52 -15.6092 -111.52 0.0 +1490 3.15 3.65 11.25 14.9574 7.74254 -14.9574 45.5783 -7.74254 -45.5783 0.0 +1491 3.15 3.65 18.75 6.90511 1.96171 -6.90511 12.5917 -1.96171 -12.5917 0.0 +1492 3.15 3.65 26.25 2.1033 0.0752923 -2.1033 2.33462 -0.0752924 -2.33462 0.0 +1493 3.15 3.65 33.75 0.345582 -0.0501268 -0.345582 0.224112 0.0501278 -0.224114 0.0 +1494 3.15 3.65 41.25 0.0113715 0.0247154 -0.0113732 -0.00142732 -0.0247142 0.00142719 0.0 +1495 3.15 3.65 48.75 6.87534e-06 0.0140289 -8.51151e-06 0.00563543 -0.0140289 -0.00563605 0.0 +1496 3.15 3.65 56.25 0.00107984 0.0029724 -0.00108132 0.0085864 -0.00297002 -0.00858758 0.0 +1497 3.15 3.65 63.75 0.000469516 0.00270845 -0.000469271 0.00350089 -0.00271011 -0.00350175 0.0 +1498 3.15 3.65 71.25 0.00166924 0.00153728 -0.00167029 0.000471675 -0.00153501 -0.000472585 0.0 +1499 3.15 3.65 78.75 0.00174748 0.00147027 -0.00174735 0.000292892 -0.00147097 -0.000293091 0.0 +1500 3.15 3.65 86.25 0.000889203 0.00101364 -0.000888457 0.000849106 -0.00101254 -0.000849064 0.0 +1501 3.15 3.65 93.75 2.8391e-05 -0.000779719 -2.40476e-05 0.00107302 0.000781464 -0.0010731 0.0 +1502 3.15 3.65 101.25 0.000123662 -0.00119237 -0.000121972 0.000258462 0.00119287 -0.000258603 0.0 +1503 3.15 3.65 108.75 0.000918738 -7.37641e-05 -0.000914812 -0.00070731 7.40479e-05 0.000707953 0.0 +1504 3.15 3.65 116.25 0.00087327 0.000204194 -0.000871841 -0.000333298 -0.000200322 0.000333731 0.0 +1505 3.15 3.65 123.75 -0.000487938 -0.000958429 0.000488243 0.000977954 0.000952902 -0.000975387 0.0 +1506 3.15 3.65 131.25 -0.00192454 -0.00214305 0.00192471 0.00156629 0.00213806 -0.00156455 0.0 +1507 3.15 3.65 138.75 -0.00245031 -0.00237129 0.00244858 0.000874281 0.00237286 -0.000874291 0.0 +1508 3.15 3.65 146.25 -0.00267054 -0.00197417 0.00267194 -7.6905e-05 0.00197292 7.72814e-05 0.0 +1509 3.15 3.65 153.75 -0.00396803 -0.00167631 0.00396857 -7.83088e-05 0.00167684 7.95127e-05 0.0 +1510 3.15 3.65 161.25 -0.00685387 -0.0017756 0.00685877 0.001108 0.0017796 -0.00110938 0.0 +1511 3.15 3.65 168.75 -0.0103819 -0.00210183 0.0103815 0.00276801 0.00210519 -0.00277039 0.0 +1512 3.15 3.65 176.25 -0.0127948 -0.0023518 0.0127908 0.00391691 0.00234768 -0.00391514 0.0 +1513 3.25 3.25 3.75 -516.093 207.353 516.093 17519 -207.353 -17519 0.0 +1514 3.25 3.25 11.25 -297.818 30.2999 297.818 3670.93 -30.2999 -3670.93 0.0 +1515 3.25 3.25 18.75 -131.533 -29.3583 131.533 966.016 29.3582 -966.016 0.0 +1516 3.25 3.25 26.25 -41.2561 -23.5547 41.2561 197.399 23.5547 -197.399 0.0 +1517 3.25 3.25 33.75 -7.77181 -7.42064 7.77175 24.324 7.42059 -24.3239 0.0 +1518 3.25 3.25 41.25 -0.520054 -0.786867 0.520059 1.16473 0.786915 -1.16475 0.0 +1519 3.25 3.25 48.75 -0.135385 -0.107324 0.135384 0.176595 0.107322 -0.176651 0.0 +1520 3.25 3.25 56.25 -0.236403 -0.233969 0.236341 0.100092 0.234021 -0.099998 0.0 +1521 3.25 3.25 63.75 -0.177344 -0.160255 0.177338 0.016127 0.160281 -0.0161542 0.0 +1522 3.25 3.25 71.25 -0.134993 -0.110418 0.134999 -0.0109067 0.110353 0.010913 0.0 +1523 3.25 3.25 78.75 -0.0950825 -0.0779897 0.0951253 -0.021928 0.077927 0.0219105 0.0 +1524 3.25 3.25 86.25 -0.0482799 -0.0371325 0.0482478 -0.0253972 0.0372349 0.0254039 0.0 +1525 3.25 3.25 93.75 -0.00935062 -0.00567433 0.00930825 -0.0233964 0.0056727 0.0233906 0.0 +1526 3.25 3.25 101.25 0.0268556 0.0229776 -0.0268747 -0.016636 -0.0229697 0.0166413 0.0 +1527 3.25 3.25 108.75 0.0559475 0.0486988 -0.0559577 -0.010512 -0.0487913 0.0105343 0.0 +1528 3.25 3.25 116.25 0.0599605 0.0541495 -0.0598537 -0.00538128 -0.0541128 0.00538138 0.0 +1529 3.25 3.25 123.75 0.0386584 0.0352012 -0.038683 0.00205185 -0.0351223 -0.00210039 0.0 +1530 3.25 3.25 131.25 0.0113902 0.00756233 -0.0112221 0.0099077 -0.00759024 -0.00983246 0.0 +1531 3.25 3.25 138.75 -0.0116709 -0.0175027 0.0116404 0.0150778 0.0175656 -0.0151232 0.0 +1532 3.25 3.25 146.25 -0.0379372 -0.0440118 0.0378931 0.0202482 0.0440189 -0.0202764 0.0 +1533 3.25 3.25 153.75 -0.0789016 -0.0826345 0.0789715 0.0309487 0.0826604 -0.0309747 0.0 +1534 3.25 3.25 161.25 -0.13326 -0.134571 0.133258 0.0482225 0.134355 -0.0481305 0.0 +1535 3.25 3.25 168.75 -0.185796 -0.186751 0.185766 0.0666972 0.186837 -0.0667545 0.0 +1536 3.25 3.25 176.25 -0.217924 -0.219808 0.217907 0.078575 0.219826 -0.0785566 0.0 +1537 3.25 3.35 3.75 -136.489 468.84 136.489 13261.2 -468.84 -13261.2 0.0 +1538 3.25 3.35 11.25 -76.3677 186.541 76.3677 3006.19 -186.541 -3006.19 0.0 +1539 3.25 3.35 18.75 -34.4387 38.7843 34.4388 785.234 -38.7843 -785.234 0.0 +1540 3.25 3.35 26.25 -12.2064 -2.42532 12.2063 158.413 2.42535 -158.413 0.0 +1541 3.25 3.35 33.75 -3.01753 -3.19124 3.01752 19.5862 3.19127 -19.5862 0.0 +1542 3.25 3.35 41.25 -0.376538 -0.403329 0.376502 0.965951 0.403384 -0.965979 0.0 +1543 3.25 3.35 48.75 -0.0663706 -0.151905 0.066354 0.0762885 0.151928 -0.0763483 0.0 +1544 3.25 3.35 56.25 -0.115811 -0.241426 0.115854 0.0757353 0.241441 -0.0756865 0.0 +1545 3.25 3.35 63.75 -0.10133 -0.1561 0.101333 0.0257088 0.156123 -0.0256754 0.0 +1546 3.25 3.35 71.25 -0.0830317 -0.123866 0.083011 0.00222966 0.123776 -0.00226914 0.0 +1547 3.25 3.35 78.75 -0.0648663 -0.0963338 0.0649114 -0.00193966 0.0962687 0.00191896 0.0 +1548 3.25 3.35 86.25 -0.0348832 -0.0452658 0.0348888 -0.00953403 0.0452114 0.00953002 0.0 +1549 3.25 3.35 93.75 -0.00930256 -0.00606384 0.00931036 -0.0124204 0.00592252 0.0124271 0.0 +1550 3.25 3.35 101.25 0.0100895 0.0236635 -0.0100704 -0.00601918 -0.0236457 0.00599972 0.0 +1551 3.25 3.35 108.75 0.0265883 0.0477513 -0.0265736 -0.00229502 -0.0475016 0.00223504 0.0 +1552 3.25 3.35 116.25 0.0315534 0.0512958 -0.0315658 -0.00201565 -0.0511774 0.00205073 0.0 +1553 3.25 3.35 123.75 0.0223392 0.0342892 -0.0222605 0.00148067 -0.0341723 -0.00152918 0.0 +1554 3.25 3.35 131.25 0.00941799 0.0153327 -0.00949539 0.00600099 -0.015387 -0.00602979 0.0 +1555 3.25 3.35 138.75 0.00192308 0.00676484 -0.0019709 0.00587968 -0.0067599 -0.00587268 0.0 +1556 3.25 3.35 146.25 -0.00390089 0.00228314 0.00390376 0.00216232 -0.00224221 -0.00219 0.0 +1557 3.25 3.35 153.75 -0.0157319 -0.00974298 0.0157634 0.000201998 0.00958756 -0.00010215 0.0 +1558 3.25 3.35 161.25 -0.0344272 -0.0332355 0.0345224 0.00245974 0.0332678 -0.00241767 0.0 +1559 3.25 3.35 168.75 -0.0539332 -0.0604648 0.0538857 0.00692496 0.0604662 -0.00693555 0.0 +1560 3.25 3.35 176.25 -0.0657833 -0.0784772 0.0659121 0.0101981 0.0784511 -0.0101316 0.0 +1561 3.25 3.45 3.75 160.753 453.103 -160.753 6268.16 -453.103 -6268.16 0.0 +1562 3.25 3.45 11.25 98.9204 211.866 -98.9204 1677.08 -211.866 -1677.08 0.0 +1563 3.25 3.45 18.75 41.6475 62.0615 -41.6475 437.04 -62.0615 -437.04 0.0 +1564 3.25 3.45 26.25 10.2776 8.85177 -10.2776 86.3962 -8.85176 -86.3962 0.0 +1565 3.25 3.45 33.75 0.665198 -0.0281349 -0.665216 10.5941 0.0281541 -10.5942 0.0 +1566 3.25 3.45 41.25 -0.225316 -0.0097665 0.225331 0.540446 0.00977707 -0.540423 0.0 +1567 3.25 3.45 48.75 -0.000555537 -0.138966 0.000568013 0.0245727 0.138941 -0.0245583 0.0 +1568 3.25 3.45 56.25 -0.0247081 -0.191676 0.0246253 0.0387653 0.191736 -0.0387721 0.0 +1569 3.25 3.45 63.75 -0.0406244 -0.104835 0.0405644 0.00218269 0.104904 -0.00218938 0.0 +1570 3.25 3.45 71.25 -0.0316041 -0.0868229 0.0315861 -0.00999292 0.086857 0.00997278 0.0 +1571 3.25 3.45 78.75 -0.0244453 -0.0766617 0.0244139 -0.00348801 0.076724 0.00349178 0.0 +1572 3.25 3.45 86.25 -0.00890648 -0.0447902 0.00892778 -0.00721057 0.0446984 0.00720699 0.0 +1573 3.25 3.45 93.75 0.00249213 -0.015882 -0.00250762 -0.00859341 0.0157787 0.00859132 0.0 +1574 3.25 3.45 101.25 0.00593138 0.0124111 -0.00596771 -0.00363029 -0.0123966 0.00362055 0.0 +1575 3.25 3.45 108.75 0.00849249 0.0372762 -0.00846232 -0.00245363 -0.0373616 0.0024942 0.0 +1576 3.25 3.45 116.25 0.00730472 0.0430354 -0.00734682 -0.00257204 -0.0430353 0.00254668 0.0 +1577 3.25 3.45 123.75 0.000252497 0.0319203 -0.000228003 0.00117018 -0.0317262 -0.00121273 0.0 +1578 3.25 3.45 131.25 -0.00509858 0.0202249 0.00511462 0.00424735 -0.0201591 -0.00429141 0.0 +1579 3.25 3.45 138.75 -0.00189225 0.0157697 0.00192964 0.00188411 -0.0157307 -0.00190094 0.0 +1580 3.25 3.45 146.25 0.00595475 0.0116431 -0.0059073 -0.0030478 -0.0116606 0.00308588 0.0 +1581 3.25 3.45 153.75 0.00984054 -0.000318014 -0.00985575 -0.00518825 0.000191851 0.00524895 0.0 +1582 3.25 3.45 161.25 0.00625952 -0.0201284 -0.00627072 -0.00318494 0.0201728 0.00314475 0.0 +1583 3.25 3.45 168.75 -0.00150526 -0.0406308 0.00144698 0.000485931 0.0405933 -0.00047182 0.0 +1584 3.25 3.45 176.25 -0.00732316 -0.0533522 0.00734119 0.00300328 0.0532394 -0.0029465 0.0 +1585 3.25 3.55 3.75 170.017 215.704 -170.017 1682.14 -215.704 -1682.14 0.0 +1586 3.25 3.55 11.25 104.65 108.392 -104.65 523.152 -108.392 -523.152 0.0 +1587 3.25 3.55 18.75 44.2579 34.3622 -44.2579 134.428 -34.3622 -134.428 0.0 +1588 3.25 3.55 26.25 11.5313 6.21431 -11.5313 25.1215 -6.2143 -25.1215 0.0 +1589 3.25 3.55 33.75 1.18823 0.636226 -1.18825 2.77896 -0.636222 -2.77896 0.0 +1590 3.25 3.55 41.25 -0.090997 0.150717 0.0909756 0.0854078 -0.1507 -0.0854088 0.0 +1591 3.25 3.55 48.75 0.0364606 -0.051279 -0.0364402 0.0168919 0.0512661 -0.0168927 0.0 +1592 3.25 3.55 56.25 0.0111486 -0.090247 -0.0111456 0.0363843 0.090261 -0.0363792 0.0 +1593 3.25 3.55 63.75 -0.0105072 -0.0440459 0.0105073 0.00831444 0.0440284 -0.00831955 0.0 +1594 3.25 3.55 71.25 -0.00433658 -0.0361287 0.00434277 -0.00361399 0.0361351 0.00360689 0.0 +1595 3.25 3.55 78.75 -0.000933427 -0.0350331 0.000939583 -0.00100115 0.0350187 0.00100048 0.0 +1596 3.25 3.55 86.25 0.00219006 -0.0262185 -0.00219325 -0.00134055 0.0262088 0.0013392 0.0 +1597 3.25 3.55 93.75 0.00205156 -0.0171976 -0.00207372 -0.0011449 0.0171792 0.00114581 0.0 +1598 3.25 3.55 101.25 0.000259054 -0.00345069 -0.000235304 -0.00113486 0.00346766 0.00114093 0.0 +1599 3.25 3.55 108.75 0.00134517 0.0104896 -0.0013327 -0.00307345 -0.0104784 0.00307104 0.0 +1600 3.25 3.55 116.25 0.00233262 0.0144818 -0.00234223 -0.00230586 -0.0144733 0.00230359 0.0 +1601 3.25 3.55 123.75 0.00096001 0.00998525 -0.000959656 0.00167455 -0.00992985 -0.00169886 0.0 +1602 3.25 3.55 131.25 0.0010997 0.00500791 -0.00110082 0.00353768 -0.00496742 -0.00356791 0.0 +1603 3.25 3.55 138.75 0.00487751 0.00146684 -0.00487922 0.00142544 -0.00148711 -0.00141137 0.0 +1604 3.25 3.55 146.25 0.00734264 -0.00446313 -0.00734662 -0.000638225 0.00441882 0.000652058 0.0 +1605 3.25 3.55 153.75 0.00197693 -0.014869 -0.00196668 0.0013558 0.0148847 -0.00135051 0.0 +1606 3.25 3.55 161.25 -0.0121606 -0.0275418 0.0121409 0.00720885 0.027516 -0.00721154 0.0 +1607 3.25 3.55 168.75 -0.029033 -0.0382301 0.0290399 0.0137359 0.0382374 -0.01375 0.0 +1608 3.25 3.55 176.25 -0.0403659 -0.0441543 0.0403287 0.0177986 0.0441199 -0.0177946 0.0 +1609 3.25 3.65 3.75 29.8469 23.7536 -29.8469 114.399 -23.7536 -114.399 0.0 +1610 3.25 3.65 11.25 18.5821 12.1922 -18.5821 38.9798 -12.1922 -38.9798 0.0 +1611 3.25 3.65 18.75 7.82427 3.7514 -7.82427 9.32709 -3.7514 -9.32709 0.0 +1612 3.25 3.65 26.25 2.01633 0.610607 -2.01633 1.41075 -0.610606 -1.41076 0.0 +1613 3.25 3.65 33.75 0.207925 0.0661693 -0.207923 0.0650148 -0.0661712 -0.0650166 0.0 +1614 3.25 3.65 41.25 -0.0109411 0.0374143 0.0109448 -0.0172484 -0.0374174 0.0172482 0.0 +1615 3.25 3.65 48.75 0.00854362 0.00771035 -0.00854147 0.00574961 -0.00770984 -0.00574854 0.0 +1616 3.25 3.65 56.25 0.00259756 -0.00264422 -0.00260097 0.00942854 0.00264499 -0.00942948 0.0 +1617 3.25 3.65 63.75 -0.000120554 0.00078573 0.00012058 0.00313857 -0.000784598 -0.00313891 0.0 +1618 3.25 3.65 71.25 0.00248101 0.00185637 -0.00248337 0.000268246 -0.00186001 -0.000268224 0.0 +1619 3.25 3.65 78.75 0.00307847 0.00208771 -0.00307844 0.000606822 -0.00209071 -0.000606483 0.0 +1620 3.25 3.65 86.25 0.00187174 0.00124659 -0.00186937 0.00095551 -0.00124275 -0.000955129 0.0 +1621 3.25 3.65 93.75 6.19913e-05 -0.000371204 -6.04736e-05 0.000563209 0.000365014 -0.000562734 0.0 +1622 3.25 3.65 101.25 -0.000928172 -0.000436879 0.000926995 -0.00063032 0.000434748 0.000630276 0.0 +1623 3.25 3.65 108.75 -0.000830659 0.000473082 0.000832415 -0.00140972 -0.00047285 0.00140969 0.0 +1624 3.25 3.65 116.25 -0.000942827 0.000407146 0.00094397 -0.000633585 -0.000410022 0.000634706 0.0 +1625 3.25 3.65 123.75 -0.00166283 -0.000582597 0.001662 0.000718962 0.000586269 -0.000719648 0.0 +1626 3.25 3.65 131.25 -0.00204479 -0.00128755 0.00204388 0.000938967 0.00128792 -0.000939369 0.0 +1627 3.25 3.65 138.75 -0.00182542 -0.00123409 0.00182692 -0.000123482 0.00123642 0.000123147 0.0 +1628 3.25 3.65 146.25 -0.00225266 -0.000702446 0.00225351 -0.00119521 0.000700296 0.00119733 0.0 +1629 3.25 3.65 153.75 -0.00470753 0.000107114 0.0047067 -0.00120089 -0.000106024 0.00120018 0.0 +1630 3.25 3.65 161.25 -0.00916233 0.00120265 0.0091593 -0.000139049 -0.00120213 0.000137897 0.0 +1631 3.25 3.65 168.75 -0.0140233 0.0024012 0.0140238 0.00124784 -0.00240054 -0.00124848 0.0 +1632 3.25 3.65 176.25 -0.0171689 0.00321938 0.0171732 0.00216427 -0.00322149 -0.00216221 0.0 +1633 3.35 3.35 3.75 21.6477 545.28 -21.6477 11815.8 -545.28 -11815.8 0.0 +1634 3.35 3.35 11.25 0.173729 218.755 -0.173719 2394.74 -218.755 -2394.74 0.0 +1635 3.35 3.35 18.75 -9.53806 48.3705 9.53809 598.087 -48.3705 -598.087 0.0 +1636 3.35 3.35 26.25 -7.66274 -1.12322 7.66276 113.819 1.12321 -113.819 0.0 +1637 3.35 3.35 33.75 -2.74384 -3.33129 2.74384 12.9293 3.33125 -12.9293 0.0 +1638 3.35 3.35 41.25 -0.346706 -0.421196 0.346694 0.581284 0.421155 -0.581292 0.0 +1639 3.35 3.35 48.75 -0.0597258 -0.052617 0.0597015 0.0549515 0.0526707 -0.0549747 0.0 +1640 3.35 3.35 56.25 -0.126882 -0.137188 0.126857 0.0379118 0.137277 -0.0378934 0.0 +1641 3.35 3.35 63.75 -0.109892 -0.0878689 0.109868 0.00253737 0.0878685 -0.00255598 0.0 +1642 3.35 3.35 71.25 -0.0980488 -0.073463 0.0980418 -0.0105894 0.0734524 0.0105771 0.0 +1643 3.35 3.35 78.75 -0.0669262 -0.0528742 0.0669078 -0.0108983 0.0530139 0.0109302 0.0 +1644 3.35 3.35 86.25 -0.0219711 -0.0291652 0.0219318 -0.0154295 0.0291951 0.0154292 0.0 +1645 3.35 3.35 93.75 0.00146699 -0.0207303 -0.00146179 -0.0140867 0.020679 0.0140912 0.0 +1646 3.35 3.35 101.25 0.0168709 0.00290498 -0.0169225 -0.00898105 -0.00281588 0.00896964 0.0 +1647 3.35 3.35 108.75 0.0340663 0.0389815 -0.0340623 -0.0103442 -0.039102 0.0103711 0.0 +1648 3.35 3.35 116.25 0.0352042 0.0499497 -0.0351821 -0.0111656 -0.0499387 0.0111689 0.0 +1649 3.35 3.35 123.75 0.0178821 0.0273981 -0.0178368 -0.0038908 -0.0275323 0.00391568 0.0 +1650 3.35 3.35 131.25 0.00245117 -0.00157526 -0.00237029 0.00543782 0.0017713 -0.00545999 0.0 +1651 3.35 3.35 138.75 -0.000452681 -0.0169013 0.000469283 0.00962862 0.0169401 -0.00965926 0.0 +1652 3.35 3.35 146.25 -0.000710544 -0.0221597 0.000754182 0.0101186 0.0223253 -0.0102137 0.0 +1653 3.35 3.35 153.75 -0.0111111 -0.0323046 0.011189 0.0113797 0.0322223 -0.0112957 0.0 +1654 3.35 3.35 161.25 -0.0318368 -0.0542513 0.0318153 0.0143177 0.0540301 -0.014212 0.0 +1655 3.35 3.35 168.75 -0.0531774 -0.0809936 0.0531282 0.0170487 0.0810135 -0.0171249 0.0 +1656 3.35 3.35 176.25 -0.0660009 -0.0992697 0.0659877 0.01838 0.0992028 -0.0183637 0.0 +1657 3.35 3.45 3.75 264.52 547.577 -264.52 6202.93 -547.577 -6202.93 0.0 +1658 3.35 3.45 11.25 146.664 252.974 -146.664 1327.09 -252.974 -1327.09 0.0 +1659 3.35 3.45 18.75 55.5979 76.7316 -55.5979 320.33 -76.7316 -320.33 0.0 +1660 3.35 3.45 26.25 12.0322 12.2347 -12.0322 58.3259 -12.2346 -58.3259 0.0 +1661 3.35 3.45 33.75 0.596069 0.246217 -0.596031 6.50975 -0.246209 -6.50972 0.0 +1662 3.35 3.45 41.25 -0.174085 -0.0773709 0.174074 0.316004 0.0773448 -0.316022 0.0 +1663 3.35 3.45 48.75 -0.00445633 -0.0860244 0.00448977 0.0121395 0.0860192 -0.0120971 0.0 +1664 3.35 3.45 56.25 -0.0477545 -0.104883 0.0478083 0.0286837 0.104818 -0.0286912 0.0 +1665 3.35 3.45 63.75 -0.0332506 -0.0586084 0.0333016 0.00627557 0.0586119 -0.0062805 0.0 +1666 3.35 3.45 71.25 -0.0281034 -0.0608434 0.0280864 -0.00101144 0.0608456 0.00103223 0.0 +1667 3.35 3.45 78.75 -0.0318181 -0.0457338 0.0317996 0.00287139 0.0457793 -0.00287648 0.0 +1668 3.35 3.45 86.25 -0.0190638 -0.0189326 0.0190873 -0.00282309 0.0188606 0.00282802 0.0 +1669 3.35 3.45 93.75 -0.00845602 -0.00564765 0.00846357 -0.00258802 0.00569123 0.00258276 0.0 +1670 3.35 3.45 101.25 -0.000108637 0.0104483 0.000114753 0.00269483 -0.0103655 -0.00269193 0.0 +1671 3.35 3.45 108.75 0.0096153 0.0272037 -0.00961347 0.00262296 -0.0272254 -0.00260619 0.0 +1672 3.35 3.45 116.25 0.00852246 0.0258295 -0.00856241 0.0019054 -0.0259022 -0.00189501 0.0 +1673 3.35 3.45 123.75 -0.00485077 0.0100252 0.00491377 0.00479164 -0.010035 -0.00474465 0.0 +1674 3.35 3.45 131.25 -0.0151032 -0.00124015 0.0150869 0.00590864 0.00128885 -0.00595605 0.0 +1675 3.35 3.45 138.75 -0.0116773 0.000794051 0.0116531 0.00155451 -0.000693976 -0.00161011 0.0 +1676 3.35 3.45 146.25 0.000951708 0.00984726 -0.000976147 -0.00547841 -0.00985363 0.00546737 0.0 +1677 3.35 3.45 153.75 0.0141348 0.0178974 -0.0141348 -0.0120161 -0.0179225 0.0120171 0.0 +1678 3.35 3.45 161.25 0.024418 0.0223568 -0.0244107 -0.0180532 -0.022375 0.0180171 0.0 +1679 3.35 3.45 168.75 0.0321657 0.0245203 -0.0321044 -0.0239933 -0.0245871 0.0240198 0.0 +1680 3.35 3.45 176.25 0.0366433 0.0254514 -0.0366767 -0.0281044 -0.0255168 0.0281336 0.0 +1681 3.35 3.55 3.75 212.112 270.322 -212.112 1633.44 -270.322 -1633.44 0.0 +1682 3.35 3.55 11.25 122.019 134.508 -122.019 394.591 -134.508 -394.591 0.0 +1683 3.35 3.55 18.75 47.7974 44.519 -47.7974 89.0516 -44.519 -89.0516 0.0 +1684 3.35 3.55 26.25 11.0171 8.96418 -11.0171 14.3465 -8.96418 -14.3466 0.0 +1685 3.35 3.55 33.75 0.785538 1.00667 -0.785533 1.3707 -1.00666 -1.37071 0.0 +1686 3.35 3.55 41.25 -0.100275 0.111814 0.100273 0.063653 -0.111807 -0.0636804 0.0 +1687 3.35 3.55 48.75 0.0358723 -0.0504078 -0.0358729 0.0207167 0.0504272 -0.0207188 0.0 +1688 3.35 3.55 56.25 -0.0107991 -0.0545945 0.0108077 0.0260469 0.0545759 -0.0260665 0.0 +1689 3.35 3.55 63.75 -0.0137965 -0.0162173 0.01382 0.00310984 0.0162029 -0.00312469 0.0 +1690 3.35 3.55 71.25 -0.00443791 -0.0176794 0.00444316 -0.0030039 0.0176744 0.00300773 0.0 +1691 3.35 3.55 78.75 -0.00661178 -0.0194646 0.00662503 -0.000183672 0.0194799 0.000190292 0.0 +1692 3.35 3.55 86.25 -0.0044624 -0.0145146 0.00445811 -0.00308715 0.0145483 0.00308949 0.0 +1693 3.35 3.55 93.75 -0.00201713 -0.0103082 0.00203467 -0.0034837 0.0103487 0.00348302 0.0 +1694 3.35 3.55 101.25 0.000612684 -0.00214047 -0.000633647 -0.00170294 0.00208873 0.00170816 0.0 +1695 3.35 3.55 108.75 0.00492679 0.00544074 -0.00492725 -0.000964504 -0.00547196 0.000980009 0.0 +1696 3.35 3.55 116.25 0.00552459 0.00494329 -0.00551079 0.00128236 -0.00490754 -0.00128794 0.0 +1697 3.35 3.55 123.75 0.00248381 -0.000309276 -0.00248587 0.00443651 0.000330766 -0.00443577 0.0 +1698 3.35 3.55 131.25 0.00307595 -0.00427668 -0.00308807 0.00457978 0.00431048 -0.00460838 0.0 +1699 3.35 3.55 138.75 0.0100829 -0.00649667 -0.0100649 0.00162916 0.00646752 -0.00160639 0.0 +1700 3.35 3.55 146.25 0.0183636 -0.0087324 -0.0183591 -0.00101933 0.00878923 0.000998688 0.0 +1701 3.35 3.55 153.75 0.0223417 -0.00978813 -0.0223341 -0.00163428 0.00977234 0.00164318 0.0 +1702 3.35 3.55 161.25 0.0213234 -0.00730229 -0.0213443 -0.0014192 0.00724781 0.00144804 0.0 +1703 3.35 3.55 168.75 0.0183265 -0.00180711 -0.0183314 -0.00178155 0.00182466 0.00177075 0.0 +1704 3.35 3.55 176.25 0.0161793 0.00277081 -0.0161889 -0.00245834 -0.00278613 0.00245868 0.0 +1705 3.35 3.65 3.75 34.2993 31.2111 -34.2993 99.1827 -31.2111 -99.1827 0.0 +1706 3.35 3.65 11.25 20.1073 16.1249 -20.1073 25.0862 -16.1249 -25.0862 0.0 +1707 3.35 3.65 18.75 7.81038 5.38483 -7.81038 4.29487 -5.38483 -4.29487 0.0 +1708 3.35 3.65 26.25 1.72232 1.10266 -1.72232 0.220387 -1.10265 -0.220388 0.0 +1709 3.35 3.65 33.75 0.0886792 0.151586 -0.0886799 -0.0820027 -0.151586 0.0820019 0.0 +1710 3.35 3.65 41.25 -0.0173171 0.0309048 0.0173154 -0.015518 -0.0309058 0.0155196 0.0 +1711 3.35 3.65 48.75 0.0101661 -0.00286499 -0.0101673 0.00763683 0.00286567 -0.00763753 0.0 +1712 3.35 3.65 56.25 -0.002689 -0.00624694 0.00268935 0.0083081 0.00624704 -0.00830852 0.0 +1713 3.35 3.65 63.75 -0.00312949 0.000414859 0.00313187 0.00248767 -0.000415121 -0.00248719 0.0 +1714 3.35 3.65 71.25 0.00176759 0.00183364 -0.00176593 0.000912355 -0.00183059 -0.000912314 0.0 +1715 3.35 3.65 78.75 0.00272836 0.00157348 -0.00272759 0.00117466 -0.00157332 -0.00117415 0.0 +1716 3.35 3.65 86.25 0.00159309 0.000928734 -0.00159386 0.000236076 -0.000929755 -0.000236263 0.0 +1717 3.35 3.65 93.75 -8.27674e-05 0.000144333 8.23358e-05 -0.00112934 -0.000145183 0.00112914 0.0 +1718 3.35 3.65 101.25 -0.000947847 0.000224482 0.00094892 -0.00225916 -0.000225888 0.00225973 0.0 +1719 3.35 3.65 108.75 -0.000863792 0.000432852 0.000864512 -0.00237019 -0.000431765 0.0023699 0.0 +1720 3.35 3.65 116.25 -0.000961541 -5.64864e-05 0.000960868 -0.0011264 6.07289e-05 0.00112608 0.0 +1721 3.35 3.65 123.75 -0.00127243 -0.000805706 0.0012707 0.000252729 0.000806025 -0.000253886 0.0 +1722 3.35 3.65 131.25 -0.000913381 -0.00130653 0.000910966 0.000474326 0.00130583 -0.000474541 0.0 +1723 3.35 3.65 138.75 -5.53154e-05 -0.00154588 5.78325e-05 -0.000286174 0.00155054 0.000285032 0.0 +1724 3.35 3.65 146.25 -6.51777e-05 -0.00124019 6.5744e-05 -0.000995048 0.00124163 0.000994467 0.0 +1725 3.35 3.65 153.75 -0.0019038 0.00032226 0.00190333 -0.00107275 -0.000320901 0.00107123 0.0 +1726 3.35 3.65 161.25 -0.00517932 0.00335224 0.00517862 -0.000703318 -0.00335729 0.000705883 0.0 +1727 3.35 3.65 168.75 -0.00853589 0.00691614 0.00853695 -0.000307448 -0.00691271 0.000304936 0.0 +1728 3.35 3.65 176.25 -0.0106065 0.00934073 0.0106054 -0.000100664 -0.0093421 0.000101267 0.0 +1729 3.45 3.45 3.75 249.963 447.743 -249.963 3664.97 -447.743 -3664.97 0.0 +1730 3.45 3.45 11.25 130.312 207.993 -130.312 676.249 -207.993 -676.249 0.0 +1731 3.45 3.45 18.75 45.7667 65.0303 -45.7667 147.519 -65.0303 -147.519 0.0 +1732 3.45 3.45 26.25 8.62768 11.3441 -8.62769 23.4633 -11.3441 -23.4633 0.0 +1733 3.45 3.45 33.75 0.110016 0.590793 -0.109988 2.30758 -0.590787 -2.3076 0.0 +1734 3.45 3.45 41.25 -0.153757 -0.0039627 0.153717 0.133259 0.00394772 -0.133226 0.0 +1735 3.45 3.45 48.75 -0.0153495 -0.0393026 0.0153515 0.00700061 0.0393356 -0.00698054 0.0 +1736 3.45 3.45 56.25 -0.0482726 -0.073912 0.0483149 0.0251197 0.0739223 -0.0251188 0.0 +1737 3.45 3.45 63.75 -0.0289355 -0.0533479 0.0289021 0.00597862 0.053373 -0.00597884 0.0 +1738 3.45 3.45 71.25 -0.0187811 -0.0391984 0.018746 0.000512192 0.039198 -0.000501842 0.0 +1739 3.45 3.45 78.75 -0.00856621 -0.0176478 0.00859924 0.00690296 0.0177056 -0.00690308 0.0 +1740 3.45 3.45 86.25 0.00371125 -0.0135792 -0.00372377 0.00136037 0.0136089 -0.0013601 0.0 +1741 3.45 3.45 93.75 0.00477561 -0.0238325 -0.00478562 -0.00283706 0.0238591 0.00283968 0.0 +1742 3.45 3.45 101.25 0.00818656 -0.0174538 -0.00812902 -0.00263731 0.017444 0.00264151 0.0 +1743 3.45 3.45 108.75 0.0169419 0.00155597 -0.0169639 -0.00543721 -0.00155808 0.00543126 0.0 +1744 3.45 3.45 116.25 0.0195788 0.0116859 -0.0195369 -0.00999959 -0.0117365 0.0100136 0.0 +1745 3.45 3.45 123.75 0.0183927 0.0116238 -0.0183971 -0.013227 -0.011666 0.0132448 0.0 +1746 3.45 3.45 131.25 0.0233808 0.0121941 -0.0234038 -0.0149326 -0.0122148 0.0149266 0.0 +1747 3.45 3.45 138.75 0.0316355 0.0161105 -0.0316222 -0.0142598 -0.0161126 0.0142499 0.0 +1748 3.45 3.45 146.25 0.0319972 0.0182352 -0.0319926 -0.0107349 -0.018201 0.0107262 0.0 +1749 3.45 3.45 153.75 0.0212885 0.0151617 -0.0213003 -0.0072284 -0.0151286 0.00721379 0.0 +1750 3.45 3.45 161.25 0.00710262 0.00875975 -0.00709702 -0.00763624 -0.00879653 0.00766868 0.0 +1751 3.45 3.45 168.75 -0.0026401 0.00265877 0.00265377 -0.0121265 -0.00270055 0.0121613 0.0 +1752 3.45 3.45 176.25 -0.00643116 -0.000726218 0.00644015 -0.0165154 0.000842039 0.0164549 0.0 +1753 3.45 3.55 3.75 176.165 231.846 -176.165 1002.13 -231.846 -1002.13 0.0 +1754 3.45 3.55 11.25 95.7124 114.358 -95.7124 175.442 -114.358 -175.442 0.0 +1755 3.45 3.55 18.75 35.3486 38.8706 -35.3486 30.2113 -38.8706 -30.2113 0.0 +1756 3.45 3.55 26.25 7.45817 8.24142 -7.45818 2.93187 -8.24142 -2.93187 0.0 +1757 3.45 3.55 33.75 0.442038 0.937077 -0.442023 0.16053 -0.937083 -0.160524 0.0 +1758 3.45 3.55 41.25 -0.036135 0.0544695 0.0361478 0.0475514 -0.0544678 -0.0475693 0.0 +1759 3.45 3.55 48.75 0.0114763 -0.0262494 -0.0114589 0.0137087 0.0262505 -0.0137065 0.0 +1760 3.45 3.55 56.25 -0.0247279 -0.0151853 0.0247269 0.0138833 0.0151975 -0.0138936 0.0 +1761 3.45 3.55 63.75 -0.00534614 0.000359977 0.00535626 -0.000883675 -0.000355567 0.000884282 0.0 +1762 3.45 3.55 71.25 0.0021508 -0.00431124 -0.00217205 -0.00167595 0.00430117 0.00167024 0.0 +1763 3.45 3.55 78.75 -0.00618242 -0.0011063 0.00617677 0.00219776 0.00111944 -0.00219769 0.0 +1764 3.45 3.55 86.25 -0.00864154 0.00382556 0.00863024 -0.000880014 -0.00382877 0.000881011 0.0 +1765 3.45 3.55 93.75 -0.00688417 0.00308196 0.00688064 -0.000591138 -0.00307945 0.000591269 0.0 +1766 3.45 3.55 101.25 -0.00277733 0.00250811 0.00278446 0.00339576 -0.00248041 -0.00339897 0.0 +1767 3.45 3.55 108.75 9.6645e-05 0.00292517 -9.27955e-05 0.00533124 -0.00297869 -0.00532125 0.0 +1768 3.45 3.55 116.25 -0.00279109 0.00312423 0.0027777 0.004826 -0.00313043 -0.00482587 0.0 +1769 3.45 3.55 123.75 -0.007852 0.00420337 0.00785189 0.00337755 -0.00423422 -0.00336561 0.0 +1770 3.45 3.55 131.25 -0.00899665 0.00525366 0.00898163 0.00211415 -0.00526556 -0.00211688 0.0 +1771 3.45 3.55 138.75 -0.00658818 0.00353401 0.00658935 0.00247574 -0.00351467 -0.00247806 0.0 +1772 3.45 3.55 146.25 -0.00472251 -0.000274464 0.0047137 0.00454554 0.000265355 -0.00453667 0.0 +1773 3.45 3.55 153.75 -0.00408631 -0.00145214 0.00408205 0.00601461 0.00145164 -0.0060113 0.0 +1774 3.45 3.55 161.25 -0.00213812 0.00336809 0.00214451 0.0045329 -0.00336917 -0.00453833 0.0 +1775 3.45 3.55 168.75 0.002039 0.0122448 -0.00204369 0.000537346 -0.0122471 -0.000536574 0.0 +1776 3.45 3.55 176.25 0.00576826 0.0191805 -0.00579318 -0.00289312 -0.0192316 0.00291892 0.0 +1777 3.45 3.65 3.75 27.0106 27.9613 -27.0106 49.4083 -27.9613 -49.4083 0.0 +1778 3.45 3.65 11.25 14.9394 14.3629 -14.9394 5.91574 -14.3629 -5.91574 0.0 +1779 3.45 3.65 18.75 5.42704 4.99328 -5.42704 -0.785154 -4.99328 0.785155 0.0 +1780 3.45 3.65 26.25 1.05899 1.10476 -1.05899 -0.658621 -1.10476 0.658622 0.0 +1781 3.45 3.65 33.75 0.0281818 0.145917 -0.0281832 -0.129014 -0.145916 0.129014 0.0 +1782 3.45 3.65 41.25 -0.00445013 0.00847625 0.00444947 -0.00108348 -0.0084749 0.00108322 0.0 +1783 3.45 3.65 48.75 0.00425589 -0.0101956 -0.00425551 0.00738506 0.0101965 -0.00738428 0.0 +1784 3.45 3.65 56.25 -0.00818272 -0.00590468 0.00818308 0.00485965 0.00590354 -0.00486006 0.0 +1785 3.45 3.65 63.75 -0.00416452 -0.000816284 0.00416288 0.00103036 0.000813653 -0.00103209 0.0 +1786 3.45 3.65 71.25 0.00103127 -0.00146141 -0.00103277 0.000818187 0.00146199 -0.000819189 0.0 +1787 3.45 3.65 78.75 0.0016058 -0.00187691 -0.00160474 0.000733485 0.00187607 -0.000733211 0.0 +1788 3.45 3.65 86.25 0.00109362 -0.000919641 -0.00109306 -0.000877938 0.000920276 0.000877779 0.0 +1789 3.45 3.65 93.75 0.000615382 -0.000162543 -0.000614614 -0.00196718 0.000162038 0.00196727 0.0 +1790 3.45 3.65 101.25 0.000257077 -9.90887e-05 -0.000257803 -0.00198713 9.8806e-05 0.00198727 0.0 +1791 3.45 3.65 108.75 -0.000415666 -0.000551723 0.000416382 -0.00133258 0.000550085 0.00133277 0.0 +1792 3.45 3.65 116.25 -0.00171058 -0.00100344 0.00171033 -0.000283121 0.00100575 0.000281567 0.0 +1793 3.45 3.65 123.75 -0.00282345 -0.00136999 0.00282231 0.000681739 0.00136679 -0.000680174 0.0 +1794 3.45 3.65 131.25 -0.00293906 -0.00227991 0.00293814 0.00125143 0.00227664 -0.00125029 0.0 +1795 3.45 3.65 138.75 -0.00235433 -0.00392254 0.0023561 0.0016008 0.00392512 -0.00160107 0.0 +1796 3.45 3.65 146.25 -0.00181787 -0.00523799 0.00181858 0.00193355 0.00523773 -0.00193291 0.0 +1797 3.45 3.65 153.75 -0.00147655 -0.00473654 0.00147561 0.00211445 0.00473647 -0.00211477 0.0 +1798 3.45 3.65 161.25 -0.000967812 -0.00201348 0.000967111 0.00191586 0.00201087 -0.00191381 0.0 +1799 3.45 3.65 168.75 -0.000185572 0.00169462 0.000184459 0.00140918 -0.00169418 -0.00140983 0.0 +1800 3.45 3.65 176.25 0.000452234 0.00431542 -0.000452919 0.000978651 -0.00431348 -0.000979895 0.0 +1801 3.55 3.55 3.75 81.0059 113.34 -81.0059 260.352 -113.34 -260.352 0.0 +1802 3.55 3.55 11.25 42.1524 56.4121 -42.1524 26.3617 -56.4121 -26.3617 0.0 +1803 3.55 3.55 18.75 14.7132 19.7973 -14.7132 -0.755035 -19.7973 0.755033 0.0 +1804 3.55 3.55 26.25 2.79612 4.5306 -2.79613 -1.38915 -4.53059 1.38915 0.0 +1805 3.55 3.55 33.75 0.10053 0.64794 -0.100533 -0.160016 -0.647941 0.160018 0.0 +1806 3.55 3.55 41.25 -0.0178303 0.07505 0.0178293 0.0195223 -0.0750523 -0.0195244 0.0 +1807 3.55 3.55 48.75 -0.00517875 -0.00351167 0.00518041 0.00760166 0.00350383 -0.00760536 0.0 +1808 3.55 3.55 56.25 -0.0146237 -0.0107977 0.0146179 0.0109189 0.0107984 -0.0109269 0.0 +1809 3.55 3.55 63.75 -3.87507e-05 -0.00362228 4.15324e-05 -0.000860953 0.0036153 0.000862609 0.0 +1810 3.55 3.55 71.25 0.00025554 0.00310581 -0.000258051 -0.00193062 -0.00311301 0.00192984 0.0 +1811 3.55 3.55 78.75 -0.00939829 0.0115235 0.0094016 0.000961058 -0.0115276 -0.000962838 0.0 +1812 3.55 3.55 86.25 -0.0165596 0.0133942 0.0165552 -0.000618444 -0.0133937 0.000618414 0.0 +1813 3.55 3.55 93.75 -0.0192198 0.0081303 0.0192237 0.000800086 -0.00813014 -0.000800389 0.0 +1814 3.55 3.55 101.25 -0.0173135 0.00397392 0.017316 0.00498683 -0.0039722 -0.00498686 0.0 +1815 3.55 3.55 108.75 -0.0127763 0.00613703 0.0127729 0.00547732 -0.00614031 -0.00547708 0.0 +1816 3.55 3.55 116.25 -0.00660985 0.0146966 0.00660871 0.000809944 -0.0146938 -0.000810497 0.0 +1817 3.55 3.55 123.75 0.00134833 0.025362 -0.00135008 -0.00514917 -0.0253577 0.0051477 0.0 +1818 3.55 3.55 131.25 0.00729171 0.0312649 -0.00729682 -0.00779015 -0.0312805 0.00779548 0.0 +1819 3.55 3.55 138.75 0.00442273 0.0279187 -0.00442424 -0.00517592 -0.0279147 0.00517078 0.0 +1820 3.55 3.55 146.25 -0.0095565 0.0168767 0.00955964 0.000965394 -0.0168727 -0.000968108 0.0 +1821 3.55 3.55 153.75 -0.0293138 0.00381127 0.0293123 0.00695552 -0.00382228 -0.00695117 0.0 +1822 3.55 3.55 161.25 -0.0467198 -0.00619086 0.0467172 0.0101031 0.00618452 -0.0101001 0.0 +1823 3.55 3.55 168.75 -0.0572524 -0.0115126 0.0572543 0.0103575 0.0115196 -0.0103592 0.0 +1824 3.55 3.55 176.25 -0.0614583 -0.0133864 0.0614549 0.00960442 0.0133863 -0.00960501 0.0 +1825 3.55 3.65 3.75 12.0786 14.33 -12.0786 4.38613 -14.33 -4.38613 0.0 +1826 3.55 3.65 11.25 6.33912 7.33576 -6.33912 -3.18423 -7.33576 3.18423 0.0 +1827 3.55 3.65 18.75 2.17784 2.6298 -2.17784 -1.96003 -2.6298 1.96003 0.0 +1828 3.55 3.65 26.25 0.39006 0.617253 -0.390059 -0.575786 -0.617253 0.575786 0.0 +1829 3.55 3.65 33.75 0.012681 0.0862211 -0.0126807 -0.0681723 -0.0862212 0.0681722 0.0 +1830 3.55 3.65 41.25 0.00502234 0.00223156 -0.00502212 0.00459513 -0.00223169 -0.00459442 0.0 +1831 3.55 3.65 48.75 0.00119944 -0.00628422 -0.00119894 0.00406756 0.00628446 -0.004068 0.0 +1832 3.55 3.65 56.25 -0.00386742 -0.003943 0.0038666 0.00178896 0.00394351 -0.00178918 0.0 +1833 3.55 3.65 63.75 -8.12468e-05 -0.00348925 8.0267e-05 -0.000674629 0.00348964 0.000674362 0.0 +1834 3.55 3.65 71.25 0.00192557 -0.00505585 -0.00192533 -0.00075298 0.00505521 0.00075297 0.0 +1835 3.55 3.65 78.75 0.00130323 -0.00454114 -0.0013032 -0.000636843 0.00454084 0.000636893 0.0 +1836 3.55 3.65 86.25 0.000803867 -0.00245655 -0.00080399 -0.00102105 0.0024577 0.00102106 0.0 +1837 3.55 3.65 93.75 0.0005973 -0.00111275 -0.000596389 -0.00057336 0.00111433 0.000573242 0.0 +1838 3.55 3.65 101.25 8.21929e-06 -0.00103481 -8.12152e-06 0.000450279 0.00103466 -0.00045023 0.0 +1839 3.55 3.65 108.75 -0.00119309 -0.00126494 0.00119399 0.0010993 0.00126523 -0.00109935 0.0 +1840 3.55 3.65 116.25 -0.00250233 -0.00111306 0.0025023 0.00122707 0.00111394 -0.00122737 0.0 +1841 3.55 3.65 123.75 -0.00325961 -0.00112678 0.00325939 0.00125572 0.00112681 -0.00125599 0.0 +1842 3.55 3.65 131.25 -0.0035151 -0.00233904 0.00351542 0.00158179 0.00233879 -0.00158147 0.0 +1843 3.55 3.65 138.75 -0.00380524 -0.00487295 0.00380513 0.00228977 0.0048732 -0.00229011 0.0 +1844 3.55 3.65 146.25 -0.00421555 -0.00763611 0.00421483 0.00312216 0.00763468 -0.00312155 0.0 +1845 3.55 3.65 153.75 -0.0041875 -0.00929866 0.0041879 0.00369562 0.00929919 -0.00369561 0.0 +1846 3.55 3.65 161.25 -0.00326306 -0.00936525 0.00326349 0.00381045 0.00936578 -0.00381069 0.0 +1847 3.55 3.65 168.75 -0.00175148 -0.00841033 0.00175132 0.00358917 0.00841037 -0.00358917 0.0 +1848 3.55 3.65 176.25 -0.000592392 -0.007527 0.000592354 0.00335056 0.00752733 -0.00335069 0.0 +1849 3.65 3.65 3.75 1.34179 1.8764 -1.34179 -2.21207 -1.8764 2.21207 0.0 +1850 3.65 3.65 11.25 0.674722 0.975627 -0.674722 -1.01114 -0.975627 1.01114 0.0 +1851 3.65 3.65 18.75 0.218094 0.365855 -0.218094 -0.384938 -0.365855 0.384938 0.0 +1852 3.65 3.65 26.25 0.034533 0.0959486 -0.034533 -0.0883541 -0.0959486 0.0883541 0.0 +1853 3.65 3.65 33.75 0.000906004 0.0183831 -0.000905993 -0.00778172 -0.0183832 0.00778172 0.0 +1854 3.65 3.65 41.25 0.00132048 0.00271731 -0.00132051 0.00071098 -0.00271729 -0.000710997 0.0 +1855 3.65 3.65 48.75 0.000821636 -0.000306112 -0.00082155 0.000743727 0.000306079 -0.000743719 0.0 +1856 3.65 3.65 56.25 0.00055949 -0.000894959 -0.000559485 0.000325653 0.000894939 -0.000325638 0.0 +1857 3.65 3.65 63.75 0.000919031 -0.00134167 -0.000918928 -0.000425567 0.0013417 0.000425618 0.0 +1858 3.65 3.65 71.25 0.00068388 -0.00161126 -0.000683975 -0.000595268 0.00161117 0.000595242 0.0 +1859 3.65 3.65 78.75 0.000214632 -0.00126472 -0.000214751 -0.000489084 0.00126474 0.000489099 0.0 +1860 3.65 3.65 86.25 8.67817e-06 -0.000701107 -8.75836e-06 -0.000274181 0.00070111 0.000274184 0.0 +1861 3.65 3.65 93.75 1.71384e-06 -0.000443281 -1.76788e-06 0.000154524 0.000443329 -0.000154528 0.0 +1862 3.65 3.65 101.25 1.95029e-05 -0.000477718 -1.95794e-05 0.000567489 0.000477841 -0.000567493 0.0 +1863 3.65 3.65 108.75 7.48783e-05 -0.00049436 -7.48748e-05 0.000683729 0.000494453 -0.000683746 0.0 +1864 3.65 3.65 116.25 0.000265232 -0.000391767 -0.000265328 0.00052426 0.000391822 -0.000524261 0.0 +1865 3.65 3.65 123.75 0.000509939 -0.000400182 -0.000509922 0.000310119 0.000400276 -0.000310147 0.0 +1866 3.65 3.65 131.25 0.000525607 -0.000787876 -0.000525615 0.000228989 0.000787858 -0.00022897 0.0 +1867 3.65 3.65 138.75 0.000108536 -0.00156718 -0.000108471 0.000330074 0.00156723 -0.000330079 0.0 +1868 3.65 3.65 146.25 -0.000640149 -0.00249673 0.000640125 0.000548861 0.00249673 -0.000548895 0.0 +1869 3.65 3.65 153.75 -0.0014021 -0.00329158 0.00140212 0.000784814 0.00329161 -0.000784826 0.0 +1870 3.65 3.65 161.25 -0.00190979 -0.00380299 0.00190977 0.000966445 0.00380303 -0.000966483 0.0 +1871 3.65 3.65 168.75 -0.00211603 -0.00404799 0.00211605 0.00107292 0.004048 -0.00107292 0.0 +1872 3.65 3.65 176.25 -0.00215132 -0.00412886 0.00215137 0.00111754 0.00412895 -0.00111757 0.0 diff --git a/unittest/force-styles/tests/1-1-2.table b/unittest/force-styles/tests/1-1-2.table new file mode 100644 index 0000000000..528627f03a --- /dev/null +++ b/unittest/force-styles/tests/1-1-2.table @@ -0,0 +1,3459 @@ +ENTRY1 +N 12 rmin 2.55 rmax 3.65 + +1 2.55 2.55 3.75 -867.212 -611.273 867.212 21386.8 611.273 -21386.8 0.0 +2 2.55 2.55 11.25 -621.539 -411.189 621.539 5035.95 411.189 -5035.95 0.0 +3 2.55 2.55 18.75 -394.167 -243.287 394.167 1722.21 243.287 -1722.21 0.0 +4 2.55 2.55 26.25 -218.789 -127.402 218.789 560.206 127.402 -560.206 0.0 +5 2.55 2.55 33.75 -104.252 -59.5774 104.252 156.639 59.5774 -156.639 0.0 +6 2.55 2.55 41.25 -41.0722 -24.6716 41.072 36.4446 24.6716 -36.4446 0.0 +7 2.55 2.55 48.75 -12.357 -8.38061 12.3571 7.1117 8.38062 -7.1117 0.0 +8 2.55 2.55 56.25 -2.29912 -1.68047 2.29907 0.91657 1.68048 -0.916568 0.0 +9 2.55 2.55 63.75 -0.0509977 0.327321 0.0509129 -0.304729 -0.327319 0.30474 0.0 +10 2.55 2.55 71.25 0.0345509 0.431792 -0.0345867 -0.382614 -0.431782 0.382616 0.0 +11 2.55 2.55 78.75 -0.00019898 0.179593 0.000319523 -0.292658 -0.179608 0.292661 0.0 +12 2.55 2.55 86.25 0.154169 0.138217 -0.154088 -0.302917 -0.138224 0.302914 0.0 +13 2.55 2.55 93.75 0.327691 0.263922 -0.327675 -0.340147 -0.263894 0.340148 0.0 +14 2.55 2.55 101.25 0.382895 0.350591 -0.382883 -0.297308 -0.350546 0.297312 0.0 +15 2.55 2.55 108.75 0.300955 0.297417 -0.300746 -0.173862 -0.297437 0.173872 0.0 +16 2.55 2.55 116.25 0.138507 0.141879 -0.138328 -0.0349372 -0.1418 0.0349415 0.0 +17 2.55 2.55 123.75 -0.0287949 -0.0286834 0.0286744 0.065848 0.0287665 -0.0658601 0.0 +18 2.55 2.55 131.25 -0.160323 -0.164235 0.160302 0.120341 0.164191 -0.120297 0.0 +19 2.55 2.55 138.75 -0.274013 -0.280673 0.274077 0.156939 0.280642 -0.156913 0.0 +20 2.55 2.55 146.25 -0.42361 -0.430992 0.423711 0.212433 0.430824 -0.212358 0.0 +21 2.55 2.55 153.75 -0.648177 -0.651719 0.648516 0.305821 0.651726 -0.305791 0.0 +22 2.55 2.55 161.25 -0.93181 -0.926724 0.931895 0.426805 0.926702 -0.426778 0.0 +23 2.55 2.55 168.75 -1.20276 -1.18735 1.20273 0.541966 1.18745 -0.542019 0.0 +24 2.55 2.55 176.25 -1.36933 -1.34705 1.3691 0.612284 1.34703 -0.612297 0.0 +25 2.55 2.65 3.75 -784.444 -675.519 784.444 19696.9 675.519 -19696.9 0.0 +26 2.55 2.65 11.25 -542.941 -440.852 542.941 5300.59 440.852 -5300.59 0.0 +27 2.55 2.65 18.75 -325.839 -241.234 325.839 1817.37 241.234 -1817.37 0.0 +28 2.55 2.65 26.25 -169.421 -111.015 169.421 580.214 111.015 -580.214 0.0 +29 2.55 2.65 33.75 -74.994 -43.3669 74.994 155.496 43.3669 -155.496 0.0 +30 2.55 2.65 41.25 -27.0736 -14.8824 27.0736 33.1152 14.8824 -33.1152 0.0 +31 2.55 2.65 48.75 -7.12613 -4.62454 7.12621 5.36809 4.62453 -5.36811 0.0 +32 2.55 2.65 56.25 -0.874199 -1.13723 0.874234 0.34195 1.13723 -0.341919 0.0 +33 2.55 2.65 63.75 0.204812 -0.0406907 -0.204883 -0.442652 0.0407084 0.442642 0.0 +34 2.55 2.65 71.25 0.0904568 0.154881 -0.0905494 -0.435451 -0.154894 0.435459 0.0 +35 2.55 2.65 78.75 0.0458835 0.126591 -0.0460614 -0.333955 -0.126573 0.33396 0.0 +36 2.55 2.65 86.25 0.168148 0.163197 -0.168343 -0.309845 -0.163197 0.309848 0.0 +37 2.55 2.65 93.75 0.296449 0.261093 -0.296361 -0.307947 -0.261084 0.307954 0.0 +38 2.55 2.65 101.25 0.329963 0.311331 -0.329831 -0.254571 -0.311318 0.254565 0.0 +39 2.55 2.65 108.75 0.253841 0.255391 -0.253789 -0.146686 -0.255437 0.146721 0.0 +40 2.55 2.65 116.25 0.107857 0.119105 -0.107492 -0.0254819 -0.119136 0.0254837 0.0 +41 2.55 2.65 123.75 -0.0492191 -0.0344023 0.0490594 0.0707149 0.0343792 -0.0707119 0.0 +42 2.55 2.65 131.25 -0.180513 -0.166858 0.180388 0.1322 0.16692 -0.132248 0.0 +43 2.55 2.65 138.75 -0.300448 -0.291041 0.300451 0.178321 0.291015 -0.178345 0.0 +44 2.55 2.65 146.25 -0.45666 -0.451363 0.456715 0.239144 0.451427 -0.239145 0.0 +45 2.55 2.65 153.75 -0.684349 -0.67857 0.684481 0.332093 0.678651 -0.332112 0.0 +46 2.55 2.65 161.25 -0.966732 -0.954719 0.966651 0.448833 0.954615 -0.448783 0.0 +47 2.55 2.65 168.75 -1.23353 -1.21297 1.23383 0.558954 1.21297 -0.558949 0.0 +48 2.55 2.65 176.25 -1.39695 -1.37031 1.39698 0.626037 1.37022 -0.625967 0.0 +49 2.55 2.75 3.75 -668.413 -701.057 668.413 15096.3 701.057 -15096.3 0.0 +50 2.55 2.75 11.25 -452.8 -464.411 452.8 5130.32 464.411 -5130.32 0.0 +51 2.55 2.75 18.75 -256.012 -246.87 256.012 1797.07 246.87 -1797.07 0.0 +52 2.55 2.75 26.25 -123.333 -105.643 123.333 565.052 105.643 -565.052 0.0 +53 2.55 2.75 33.75 -50.2709 -35.7913 50.2709 144.93 35.7913 -144.93 0.0 +54 2.55 2.75 41.25 -16.78 -9.69921 16.78 28.1038 9.69923 -28.1038 0.0 +55 2.55 2.75 48.75 -4.12155 -2.37411 4.12164 3.76214 2.3741 -3.76217 0.0 +56 2.55 2.75 56.25 -0.484016 -0.658362 0.484128 0.146857 0.658338 -0.146846 0.0 +57 2.55 2.75 63.75 0.0687647 -0.20106 -0.0687734 -0.260534 0.20103 0.260497 0.0 +58 2.55 2.75 71.25 -0.00147066 -0.0603687 0.0015277 -0.268714 0.0604159 0.268722 0.0 +59 2.55 2.75 78.75 0.0156999 0.0125791 -0.0159656 -0.252993 -0.0125614 0.252974 0.0 +60 2.55 2.75 86.25 0.136925 0.119249 -0.13684 -0.269725 -0.11924 0.269725 0.0 +61 2.55 2.75 93.75 0.247327 0.234358 -0.247334 -0.272826 -0.234332 0.272827 0.0 +62 2.55 2.75 101.25 0.281753 0.286511 -0.281826 -0.224691 -0.286549 0.224691 0.0 +63 2.55 2.75 108.75 0.226138 0.242659 -0.226349 -0.131815 -0.24272 0.131841 0.0 +64 2.55 2.75 116.25 0.106433 0.12752 -0.10664 -0.0258695 -0.127594 0.0258609 0.0 +65 2.55 2.75 123.75 -0.0277616 -0.00630627 0.0276778 0.0615222 0.00630865 -0.0614969 0.0 +66 2.55 2.75 131.25 -0.142446 -0.124893 0.142414 0.118979 0.124975 -0.11903 0.0 +67 2.55 2.75 138.75 -0.248783 -0.237903 0.248779 0.161562 0.237995 -0.161575 0.0 +68 2.55 2.75 146.25 -0.392668 -0.385233 0.392627 0.216964 0.385134 -0.21689 0.0 +69 2.55 2.75 153.75 -0.606858 -0.595071 0.606818 0.302592 0.595088 -0.302606 0.0 +70 2.55 2.75 161.25 -0.874793 -0.851019 0.874799 0.411383 0.850969 -0.411357 0.0 +71 2.55 2.75 168.75 -1.12893 -1.0911 1.12904 0.514712 1.09102 -0.514675 0.0 +72 2.55 2.75 176.25 -1.28457 -1.23755 1.28455 0.577854 1.23747 -0.577828 0.0 +73 2.55 2.85 3.75 -540.757 -671.949 540.757 11232.9 671.949 -11232.9 0.0 +74 2.55 2.85 11.25 -358.962 -456.955 358.962 4626.32 456.955 -4626.32 0.0 +75 2.55 2.85 18.75 -189.205 -242.387 189.205 1670.73 242.387 -1670.73 0.0 +76 2.55 2.85 26.25 -82.3789 -101.034 82.3789 518.217 101.034 -518.217 0.0 +77 2.55 2.85 33.75 -30.0098 -32.1026 30.0098 126.998 32.1025 -126.998 0.0 +78 2.55 2.85 41.25 -9.21751 -7.56922 9.21749 22.2838 7.5692 -22.2838 0.0 +79 2.55 2.85 48.75 -2.28489 -1.50529 2.28485 2.35574 1.50529 -2.35573 0.0 +80 2.55 2.85 56.25 -0.358049 -0.489852 0.357948 0.0188984 0.489874 -0.0189109 0.0 +81 2.55 2.85 63.75 -0.00522043 -0.307792 0.00494878 -0.134592 0.307776 0.134574 0.0 +82 2.55 2.85 71.25 0.00323495 -0.2024 -0.00313048 -0.169997 0.202387 0.169981 0.0 +83 2.55 2.85 78.75 0.0415278 -0.0778296 -0.0414056 -0.213315 0.077898 0.213326 0.0 +84 2.55 2.85 86.25 0.131889 0.069504 -0.132199 -0.248098 -0.0695577 0.248098 0.0 +85 2.55 2.85 93.75 0.214594 0.193542 -0.214655 -0.244475 -0.193398 0.244477 0.0 +86 2.55 2.85 101.25 0.244494 0.247624 -0.244635 -0.195685 -0.247697 0.195696 0.0 +87 2.55 2.85 108.75 0.201434 0.218545 -0.201617 -0.114828 -0.218615 0.114846 0.0 +88 2.55 2.85 116.25 0.0998591 0.127904 -0.0997024 -0.024899 -0.127956 0.0249269 0.0 +89 2.55 2.85 123.75 -0.0181479 0.0163555 0.0181766 0.049407 -0.0163067 -0.0494209 0.0 +90 2.55 2.85 131.25 -0.11898 -0.0876934 0.119352 0.098005 0.0875449 -0.0979311 0.0 +91 2.55 2.85 138.75 -0.214707 -0.191866 0.214605 0.134596 0.191898 -0.13457 0.0 +92 2.55 2.85 146.25 -0.347993 -0.330815 0.348041 0.185048 0.330869 -0.185107 0.0 +93 2.55 2.85 153.75 -0.550177 -0.528952 0.549981 0.265291 0.528797 -0.265232 0.0 +94 2.55 2.85 161.25 -0.804311 -0.769737 0.804194 0.367848 0.769696 -0.367861 0.0 +95 2.55 2.85 168.75 -1.04529 -0.994652 1.04554 0.465186 0.99499 -0.465282 0.0 +96 2.55 2.85 176.25 -1.19281 -1.13166 1.19305 0.52457 1.13177 -0.524594 0.0 +97 2.55 2.95 3.75 -419.502 -582.296 419.502 8332.23 582.296 -8332.23 0.0 +98 2.55 2.95 11.25 -271.55 -404.417 271.55 3930.48 404.417 -3930.48 0.0 +99 2.55 2.95 18.75 -130.928 -214.969 130.928 1464.2 214.969 -1464.2 0.0 +100 2.55 2.95 26.25 -48.786 -88.4342 48.786 447.646 88.4342 -447.646 0.0 +101 2.55 2.95 33.75 -14.3964 -27.3665 14.3964 104.519 27.3665 -104.519 0.0 +102 2.55 2.95 41.25 -3.7883 -6.20808 3.78827 16.4944 6.20806 -16.4944 0.0 +103 2.55 2.95 48.75 -1.0529 -1.19869 1.05292 1.27167 1.19863 -1.27161 0.0 +104 2.55 2.95 56.25 -0.231522 -0.429682 0.231513 -0.0951674 0.429629 0.0951268 0.0 +105 2.55 2.95 63.75 0.0181127 -0.325032 -0.0180919 -0.110423 0.324922 0.110426 0.0 +106 2.55 2.95 71.25 0.049094 -0.246096 -0.0491496 -0.144969 0.245996 0.14495 0.0 +107 2.55 2.95 78.75 0.063364 -0.114463 -0.0633467 -0.196803 0.114426 0.196797 0.0 +108 2.55 2.95 86.25 0.11583 0.0385036 -0.115786 -0.223948 -0.0384687 0.223952 0.0 +109 2.55 2.95 93.75 0.177943 0.156855 -0.178064 -0.209887 -0.156845 0.209889 0.0 +110 2.55 2.95 101.25 0.207654 0.212381 -0.207593 -0.163549 -0.212444 0.163567 0.0 +111 2.55 2.95 108.75 0.175031 0.201414 -0.174609 -0.0967898 -0.20124 0.0967398 0.0 +112 2.55 2.95 116.25 0.0862557 0.136066 -0.0862066 -0.0233966 -0.13596 0.0233258 0.0 +113 2.55 2.95 123.75 -0.0191239 0.0441682 0.0193287 0.0382847 -0.0441811 -0.0382953 0.0 +114 2.55 2.95 131.25 -0.110069 -0.050979 0.109801 0.0798251 0.0509319 -0.0799025 0.0 +115 2.55 2.95 138.75 -0.196213 -0.153394 0.196102 0.113373 0.153405 -0.113396 0.0 +116 2.55 2.95 146.25 -0.318885 -0.291367 0.319145 0.161467 0.291373 -0.161505 0.0 +117 2.55 2.95 153.75 -0.50686 -0.483737 0.506732 0.236963 0.48342 -0.236818 0.0 +118 2.55 2.95 161.25 -0.742764 -0.712982 0.742837 0.331712 0.713077 -0.331758 0.0 +119 2.55 2.95 168.75 -0.965814 -0.924655 0.965837 0.420445 0.924729 -0.420487 0.0 +120 2.55 2.95 176.25 -1.10185 -1.05258 1.10198 0.474136 1.05241 -0.474051 0.0 +121 2.55 3.05 3.75 -319.111 -440.938 319.111 6126.66 440.938 -6126.66 0.0 +122 2.55 3.05 11.25 -200.795 -309.049 200.795 3169.23 309.049 -3169.23 0.0 +123 2.55 3.05 18.75 -86.7152 -162.683 86.7152 1211.49 162.683 -1211.49 0.0 +124 2.55 3.05 26.25 -24.7922 -65.0953 24.7921 363.733 65.0953 -363.733 0.0 +125 2.55 3.05 33.75 -3.79557 -19.4403 3.79568 80.4622 19.4403 -80.4622 0.0 +126 2.55 3.05 41.25 -0.227488 -4.40816 0.227381 11.3442 4.40812 -11.3442 0.0 +127 2.55 3.05 48.75 -0.215962 -0.9846 0.21623 0.572809 0.984607 -0.572833 0.0 +128 2.55 3.05 56.25 -0.0972827 -0.406271 0.0971886 -0.155442 0.406388 0.155438 0.0 +129 2.55 3.05 63.75 0.0474691 -0.320721 -0.0473142 -0.115525 0.320742 0.115541 0.0 +130 2.55 3.05 71.25 0.0542543 -0.274312 -0.0545515 -0.127569 0.274174 0.127517 0.0 +131 2.55 3.05 78.75 0.0439985 -0.158092 -0.0440511 -0.165185 0.158055 0.165194 0.0 +132 2.55 3.05 86.25 0.0821507 -0.00877884 -0.0821081 -0.183829 0.00887135 0.183832 0.0 +133 2.55 3.05 93.75 0.142245 0.109192 -0.142406 -0.168613 -0.109223 0.168609 0.0 +134 2.55 3.05 101.25 0.176786 0.175042 -0.176859 -0.131259 -0.174989 0.13127 0.0 +135 2.55 3.05 108.75 0.153044 0.185839 -0.153188 -0.0796497 -0.185913 0.0796723 0.0 +136 2.55 3.05 116.25 0.0762661 0.144574 -0.0760233 -0.0213083 -0.14475 0.0213947 0.0 +137 2.55 3.05 123.75 -0.0153973 0.0697421 0.0151775 0.0294442 -0.0697414 -0.0295136 0.0 +138 2.55 3.05 131.25 -0.0914496 -0.0164558 0.0915457 0.0650391 0.01638 -0.0650155 0.0 +139 2.55 3.05 138.75 -0.163525 -0.114278 0.163505 0.0952572 0.113968 -0.0951433 0.0 +140 2.55 3.05 146.25 -0.267879 -0.245016 0.267903 0.138326 0.244925 -0.138338 0.0 +141 2.55 3.05 153.75 -0.430018 -0.423265 0.429956 0.203867 0.423326 -0.203942 0.0 +142 2.55 3.05 161.25 -0.633833 -0.631774 0.634037 0.284186 0.631568 -0.284063 0.0 +143 2.55 3.05 168.75 -0.826685 -0.82183 0.826375 0.358252 0.82172 -0.358225 0.0 +144 2.55 3.05 176.25 -0.943422 -0.93572 0.943723 0.402697 0.935847 -0.402743 0.0 +145 2.55 3.15 3.75 -249.767 -271.418 249.767 4425.44 271.418 -4425.44 0.0 +146 2.55 3.15 11.25 -154.5 -187.982 154.5 2434.18 187.982 -2434.18 0.0 +147 2.55 3.15 18.75 -60.5981 -94.4639 60.5982 946.499 94.4639 -946.499 0.0 +148 2.55 3.15 26.25 -11.8534 -34.6155 11.8535 277.025 34.6156 -277.025 0.0 +149 2.55 3.15 33.75 1.6123 -9.2646 -1.61231 57.3974 9.26465 -57.3974 0.0 +150 2.55 3.15 41.25 1.60158 -2.19805 -1.60158 7.12692 2.19808 -7.12698 0.0 +151 2.55 3.15 48.75 0.26948 -0.778894 -0.269488 0.21063 0.778852 -0.210617 0.0 +152 2.55 3.15 56.25 -0.01372 -0.412911 0.0136807 -0.142081 0.412893 0.142164 0.0 +153 2.55 3.15 63.75 0.0224038 -0.329718 -0.0222862 -0.0965871 0.329602 0.096574 0.0 +154 2.55 3.15 71.25 0.0060749 -0.316094 -0.00598008 -0.0883032 0.316076 0.0883122 0.0 +155 2.55 3.15 78.75 0.00302628 -0.219142 -0.00292645 -0.117193 0.219165 0.117188 0.0 +156 2.55 3.15 86.25 0.0523024 -0.0705546 -0.0522252 -0.136651 0.0705734 0.136649 0.0 +157 2.55 3.15 93.75 0.115651 0.0544573 -0.11564 -0.126319 -0.0545821 0.126326 0.0 +158 2.55 3.15 101.25 0.148969 0.134261 -0.149041 -0.0986894 -0.134289 0.0986837 0.0 +159 2.55 3.15 108.75 0.128464 0.165022 -0.12849 -0.0608071 -0.165301 0.0608822 0.0 +160 2.55 3.15 116.25 0.0654112 0.144738 -0.0648575 -0.0171687 -0.144771 0.0172192 0.0 +161 2.55 3.15 123.75 -0.00700089 0.0874701 0.0070514 0.0212287 -0.087399 -0.0213181 0.0 +162 2.55 3.15 131.25 -0.0630668 0.0158432 0.0629726 0.0481408 -0.0158028 -0.0482207 0.0 +163 2.55 3.15 138.75 -0.113207 -0.0669731 0.112947 0.0710475 0.0668196 -0.0709779 0.0 +164 2.55 3.15 146.25 -0.189616 -0.177294 0.189595 0.103802 0.177145 -0.103761 0.0 +165 2.55 3.15 153.75 -0.313405 -0.326317 0.313385 0.153359 0.326249 -0.1534 0.0 +166 2.55 3.15 161.25 -0.471349 -0.499401 0.471384 0.2136 0.499615 -0.213641 0.0 +167 2.55 3.15 168.75 -0.621738 -0.656501 0.621526 0.268765 0.656234 -0.268609 0.0 +168 2.55 3.15 176.25 -0.713168 -0.750131 0.713075 0.301728 0.749961 -0.301587 0.0 +169 2.55 3.25 3.75 -215.533 -105.036 215.533 3115.64 105.036 -3115.64 0.0 +170 2.55 3.25 11.25 -135.709 -66.1673 135.709 1782.43 66.1673 -1782.43 0.0 +171 2.55 3.25 18.75 -53.5226 -25.2778 53.5226 697.12 25.2777 -697.12 0.0 +172 2.55 3.25 26.25 -9.76548 -4.05586 9.76548 196.405 4.05587 -196.405 0.0 +173 2.55 3.25 33.75 2.26986 0.661867 -2.26987 37.2172 -0.661895 -37.2172 0.0 +174 2.55 3.25 41.25 1.94008 -0.139655 -1.94016 3.90169 0.139693 -3.90171 0.0 +175 2.55 3.25 48.75 0.433581 -0.598298 -0.433653 0.0713369 0.598313 -0.071257 0.0 +176 2.55 3.25 56.25 -0.0110448 -0.396733 0.0111185 -0.0792235 0.396666 0.0791487 0.0 +177 2.55 3.25 63.75 -0.0512665 -0.306617 0.0511183 -0.0540821 0.306458 0.05412 0.0 +178 2.55 3.25 71.25 -0.0567327 -0.327807 0.0568023 -0.042547 0.327783 0.0424758 0.0 +179 2.55 3.25 78.75 -0.0248985 -0.256832 0.0248957 -0.0738229 0.256924 0.073814 0.0 +180 2.55 3.25 86.25 0.03699 -0.115693 -0.0368212 -0.0949395 0.115771 0.0949412 0.0 +181 2.55 3.25 93.75 0.088578 0.0114051 -0.0885974 -0.0851166 -0.0114329 0.0851098 0.0 +182 2.55 3.25 101.25 0.108379 0.100211 -0.108454 -0.0631833 -0.100386 0.0632103 0.0 +183 2.55 3.25 108.75 0.0905494 0.146067 -0.0902676 -0.0380134 -0.146103 0.0380456 0.0 +184 2.55 3.25 116.25 0.0446648 0.143011 -0.0447651 -0.0105656 -0.143148 0.0105849 0.0 +185 2.55 3.25 123.75 -0.00397982 0.102972 0.00398606 0.0132778 -0.103051 -0.0132872 0.0 +186 2.55 3.25 131.25 -0.0396488 0.0470538 0.0395149 0.0295482 -0.0468879 -0.0296284 0.0 +187 2.55 3.25 138.75 -0.0696427 -0.0184498 0.0696581 0.0434558 0.0182276 -0.0433637 0.0 +188 2.55 3.25 146.25 -0.118295 -0.104198 0.11835 0.0645889 0.104105 -0.0645169 0.0 +189 2.55 3.25 153.75 -0.201226 -0.219646 0.201381 0.0977209 0.219776 -0.0977906 0.0 +190 2.55 3.25 161.25 -0.310278 -0.35328 0.310501 0.138558 0.353454 -0.138633 0.0 +191 2.55 3.25 168.75 -0.415467 -0.474235 0.415053 0.176198 0.474086 -0.176145 0.0 +192 2.55 3.25 176.25 -0.479006 -0.546119 0.479273 0.198749 0.546279 -0.198787 0.0 +193 2.55 3.35 3.75 -204.898 28.1648 204.898 2043.28 -28.1648 -2043.28 0.0 +194 2.55 3.35 11.25 -135.949 31.6213 135.949 1195.68 -31.6213 -1195.68 0.0 +195 2.55 3.35 18.75 -60.0294 29.3309 60.0294 464.081 -29.3309 -464.081 0.0 +196 2.55 3.35 26.25 -15.5602 19.1482 15.5602 123.342 -19.1482 -123.342 0.0 +197 2.55 3.35 33.75 -0.516502 7.80361 0.516464 20.3914 -7.80361 -20.3915 0.0 +198 2.55 3.35 41.25 1.1959 1.28099 -1.1959 1.61912 -1.28089 -1.61917 0.0 +199 2.55 3.35 48.75 0.338664 -0.427486 -0.338735 0.0672361 0.427458 -0.0671949 0.0 +200 2.55 3.35 56.25 -0.0712654 -0.32692 0.0713186 -0.00513307 0.326996 0.00515152 0.0 +201 2.55 3.35 63.75 -0.121975 -0.24598 0.122164 -0.0158901 0.24595 0.0159275 0.0 +202 2.55 3.35 71.25 -0.0836168 -0.3049 0.0833968 -0.0145822 0.304962 0.0145084 0.0 +203 2.55 3.35 78.75 -0.0227775 -0.26582 0.0226797 -0.0466388 0.265827 0.0466007 0.0 +204 2.55 3.35 86.25 0.0253278 -0.141365 -0.0252494 -0.0598516 0.14135 0.0598496 0.0 +205 2.55 3.35 93.75 0.0478277 -0.0194912 -0.0477364 -0.0442668 0.01948 0.0442715 0.0 +206 2.55 3.35 101.25 0.0542989 0.072706 -0.0542353 -0.0265114 -0.0727603 0.0265457 0.0 +207 2.55 3.35 108.75 0.0474436 0.128762 -0.0473722 -0.0142292 -0.128667 0.0141884 0.0 +208 2.55 3.35 116.25 0.024829 0.139676 -0.0246836 -0.00238193 -0.139623 0.00240878 0.0 +209 2.55 3.35 123.75 -0.00477975 0.112522 0.00457921 0.00880631 -0.112295 -0.00892129 0.0 +210 2.55 3.35 131.25 -0.0290626 0.0670303 0.0288612 0.0167144 -0.0668681 -0.0167711 0.0 +211 2.55 3.35 138.75 -0.0488435 0.012812 0.048558 0.0234532 -0.0126738 -0.0236424 0.0 +212 2.55 3.35 146.25 -0.0762617 -0.0554933 0.0763255 0.0346659 0.0553813 -0.0346319 0.0 +213 2.55 3.35 153.75 -0.123726 -0.144228 0.123766 0.053841 0.144227 -0.0538008 0.0 +214 2.55 3.35 161.25 -0.18791 -0.245407 0.187929 0.078822 0.245764 -0.079086 0.0 +215 2.55 3.35 168.75 -0.251038 -0.336304 0.251286 0.102654 0.336317 -0.102638 0.0 +216 2.55 3.35 176.25 -0.29084 -0.390314 0.290697 0.117217 0.390531 -0.11737 0.0 +217 2.55 3.45 3.75 -160.11 78.3904 160.11 964.746 -78.3904 -964.746 0.0 +218 2.55 3.45 11.25 -112.253 65.2155 112.253 569.896 -65.2155 -569.896 0.0 +219 2.55 3.45 18.75 -55.5875 44.2652 55.5876 216.275 -44.2652 -216.275 0.0 +220 2.55 3.45 26.25 -18.577 23.1948 18.5771 52.7785 -23.1948 -52.7785 0.0 +221 2.55 3.45 33.75 -3.3749 8.35207 3.37496 7.08855 -8.35205 -7.08857 0.0 +222 2.55 3.45 41.25 0.0558271 1.43995 -0.0557888 0.416872 -1.44003 -0.416798 0.0 +223 2.55 3.45 48.75 0.0736874 -0.250918 -0.0736577 0.137694 0.25083 -0.137688 0.0 +224 2.55 3.45 56.25 -0.118382 -0.234235 0.118498 0.029723 0.234224 -0.0297093 0.0 +225 2.55 3.45 63.75 -0.103993 -0.193692 0.103998 -0.0111831 0.193659 0.0111847 0.0 +226 2.55 3.45 71.25 -0.0373239 -0.248873 0.0374 -0.0103758 0.248904 0.0103568 0.0 +227 2.55 3.45 78.75 -0.000815577 -0.221711 0.000857674 -0.0239127 0.221702 0.0239331 0.0 +228 2.55 3.45 86.25 0.00235137 -0.12606 -0.00247045 -0.0235691 0.126024 0.0235785 0.0 +229 2.55 3.45 93.75 0.000693468 -0.0322758 -0.000731622 -0.0100368 0.0322426 0.0100472 0.0 +230 2.55 3.45 101.25 0.0107898 0.0378694 -0.0109773 -0.00230259 -0.0379779 0.00230944 0.0 +231 2.55 3.45 108.75 0.0223901 0.0828189 -0.0224924 -0.0011966 -0.0828617 0.00119886 0.0 +232 2.55 3.45 116.25 0.01901 0.0976112 -0.0189845 0.000576941 -0.0977212 -0.000592258 0.0 +233 2.55 3.45 123.75 0.0023177 0.0865526 -0.00220076 0.00381654 -0.0867258 -0.00376165 0.0 +234 2.55 3.45 131.25 -0.0137084 0.0618094 0.0137112 0.00514774 -0.0618168 -0.00513733 0.0 +235 2.55 3.45 138.75 -0.0208603 0.0307928 0.0209021 0.00395318 -0.0306512 -0.00401619 0.0 +236 2.55 3.45 146.25 -0.0246671 -0.00894626 0.0246851 0.00351226 0.00893543 -0.0035253 0.0 +237 2.55 3.45 153.75 -0.0354818 -0.0611658 0.0352745 0.0074458 0.0613979 -0.00758451 0.0 +238 2.55 3.45 161.25 -0.0568268 -0.12175 0.0568015 0.016221 0.121744 -0.0162267 0.0 +239 2.55 3.45 168.75 -0.0825887 -0.177017 0.0826212 0.0265372 0.177062 -0.0266112 0.0 +240 2.55 3.45 176.25 -0.100362 -0.210215 0.100363 0.0334528 0.210225 -0.0334721 0.0 +241 2.55 3.55 3.75 -78.9919 44.1593 78.9919 272.44 -44.1593 -272.44 0.0 +242 2.55 3.55 11.25 -57.4405 35.3664 57.4405 160.985 -35.3664 -160.985 0.0 +243 2.55 3.55 18.75 -30.4327 22.6574 30.4327 59.1789 -22.6574 -59.1789 0.0 +244 2.55 3.55 26.25 -11.3918 11.2259 11.3918 13.1796 -11.2259 -13.1796 0.0 +245 2.55 3.55 33.75 -2.72329 3.8781 2.7233 1.57893 -3.87813 -1.57891 0.0 +246 2.55 3.55 41.25 -0.349405 0.648596 0.349417 0.278163 -0.648614 -0.278143 0.0 +247 2.55 3.55 48.75 -0.0951034 -0.129698 0.0950942 0.144918 0.129704 -0.144907 0.0 +248 2.55 3.55 56.25 -0.0904303 -0.132617 0.0904025 -0.000622582 0.13263 0.000613981 0.0 +249 2.55 3.55 63.75 -0.0258623 -0.110734 0.0258374 -0.0284537 0.110749 0.0284432 0.0 +250 2.55 3.55 71.25 0.0130336 -0.121492 -0.0129784 -0.00958708 0.121519 0.0095864 0.0 +251 2.55 3.55 78.75 0.00216509 -0.0947175 -0.00212262 -0.00146876 0.0947229 0.0014866 0.0 +252 2.55 3.55 86.25 -0.0193046 -0.044118 0.0193305 0.000949206 0.0440946 -0.000951166 0.0 +253 2.55 3.55 93.75 -0.0204643 -0.00523306 0.0203838 0.00128217 0.00527308 -0.00128181 0.0 +254 2.55 3.55 101.25 -0.00377452 0.0162146 0.00374878 -0.00203826 -0.0161878 0.00203335 0.0 +255 2.55 3.55 108.75 0.0103855 0.0283922 -0.0103646 -0.00590355 -0.0284035 0.0059097 0.0 +256 2.55 3.55 116.25 0.0107496 0.0355757 -0.0107487 -0.00748469 -0.0355346 0.00746902 0.0 +257 2.55 3.55 123.75 0.00390058 0.039282 -0.00394485 -0.00836899 -0.0392871 0.00836606 0.0 +258 2.55 3.55 131.25 0.00302193 0.0417158 -0.00303302 -0.0116169 -0.0417316 0.0116365 0.0 +259 2.55 3.55 138.75 0.0132809 0.0429902 -0.0132594 -0.0177461 -0.0429583 0.0177101 0.0 +260 2.55 3.55 146.25 0.0286472 0.040296 -0.0286569 -0.0242602 -0.0403293 0.0242749 0.0 +261 2.55 3.55 153.75 0.0390318 0.0306394 -0.039064 -0.0280589 -0.0306446 0.028059 0.0 +262 2.55 3.55 161.25 0.0394296 0.0147367 -0.0394103 -0.0279664 -0.0146398 0.0279268 0.0 +263 2.55 3.55 168.75 0.0324474 -0.00226708 -0.0324635 -0.0253945 0.00220765 0.0254368 0.0 +264 2.55 3.55 176.25 0.025994 -0.013213 -0.0260157 -0.0230769 0.0131899 0.0230844 0.0 +265 2.55 3.65 3.75 -10.2735 4.76327 10.2735 20.7201 -4.76327 -20.7201 0.0 +266 2.55 3.65 11.25 -7.59679 3.74938 7.59679 12.2716 -3.74938 -12.2716 0.0 +267 2.55 3.65 18.75 -4.13373 2.33527 4.13373 4.48711 -2.33527 -4.48711 0.0 +268 2.55 3.65 26.25 -1.60809 1.11951 1.60809 1.05798 -1.11951 -1.05798 0.0 +269 2.55 3.65 33.75 -0.426582 0.367384 0.426586 0.237798 -0.367384 -0.237797 0.0 +270 2.55 3.65 41.25 -0.0923209 0.0481501 0.0923222 0.103116 -0.0481492 -0.103116 0.0 +271 2.55 3.65 48.75 -0.0403716 -0.019861 0.0403721 0.0289419 0.0198609 -0.0289447 0.0 +272 2.55 3.65 56.25 -0.0181588 -0.0104242 0.018157 -0.0111623 0.010423 0.0111643 0.0 +273 2.55 3.65 63.75 0.0026199 -0.0022943 -0.00261809 -0.0112332 0.00229608 0.011234 0.0 +274 2.55 3.65 71.25 0.00555137 -0.00054609 -0.00554585 -0.000901878 0.000542356 0.000901001 0.0 +275 2.55 3.65 78.75 -0.00349077 0.00348611 0.00348128 0.00388527 -0.0034823 -0.00388526 0.0 +276 2.55 3.65 86.25 -0.00986876 0.00759326 0.00986851 0.00334418 -0.00759374 -0.00334402 0.0 +277 2.55 3.65 93.75 -0.00861045 0.00735376 0.00861467 0.000656354 -0.00735444 -0.000656104 0.0 +278 2.55 3.65 101.25 -0.00414524 0.00377925 0.00414321 -0.00212584 -0.00377449 0.00212561 0.0 +279 2.55 3.65 108.75 -0.00169477 0.000439308 0.00169322 -0.00396038 -0.000442715 0.00396063 0.0 +280 2.55 3.65 116.25 -0.00201868 -0.000719026 0.00201981 -0.0047974 0.000729887 0.00479364 0.0 +281 2.55 3.65 123.75 -0.0022902 0.000305603 0.00229371 -0.00529632 -0.000307648 0.00529785 0.0 +282 2.55 3.65 131.25 6.5658e-05 0.00293592 -6.35245e-05 -0.00609152 -0.00294529 0.00609664 0.0 +283 2.55 3.65 138.75 0.00496513 0.00653024 -0.0049612 -0.00723673 -0.00653204 0.00723752 0.0 +284 2.55 3.65 146.25 0.0100844 0.0103162 -0.0100899 -0.0082568 -0.0103134 0.00825192 0.0 +285 2.55 3.65 153.75 0.013056 0.0135185 -0.0130568 -0.00863418 -0.0135186 0.00863497 0.0 +286 2.55 3.65 161.25 0.0130732 0.0156428 -0.013084 -0.00825131 -0.0156473 0.00825326 0.0 +287 2.55 3.65 168.75 0.0112797 0.0167179 -0.0112803 -0.00747124 -0.0167224 0.00747658 0.0 +288 2.55 3.65 176.25 0.0096521 0.0170897 -0.00964981 -0.00687278 -0.0170876 0.00686999 0.0 +289 2.65 2.55 3.75 -799.674 -712.655 799.674 18807.8 712.655 -18807.8 0.0 +290 2.65 2.55 11.25 -525.625 -475.265 525.625 4994.59 475.265 -4994.59 0.0 +291 2.65 2.55 18.75 -295.846 -269.889 295.846 1679.59 269.889 -1679.59 0.0 +292 2.65 2.55 26.25 -143.669 -131.164 143.669 522.387 131.164 -522.387 0.0 +293 2.65 2.55 33.75 -60.2595 -54.4807 60.2595 136.208 54.4807 -136.208 0.0 +294 2.65 2.55 41.25 -21.6186 -19.006 21.6186 29.1359 19.006 -29.1359 0.0 +295 2.65 2.55 48.75 -6.2004 -4.98522 6.20039 5.36148 4.98526 -5.3615 0.0 +296 2.65 2.55 56.25 -0.973428 -0.39018 0.973324 0.482318 0.390219 -0.482323 0.0 +297 2.65 2.55 63.75 0.314211 0.536906 -0.314193 -0.589646 -0.536928 0.58965 0.0 +298 2.65 2.55 71.25 0.35202 0.378507 -0.352079 -0.582078 -0.378534 0.582099 0.0 +299 2.65 2.55 78.75 0.201526 0.217522 -0.201635 -0.39221 -0.217499 0.392213 0.0 +300 2.65 2.55 86.25 0.158101 0.284677 -0.15805 -0.345984 -0.284628 0.345996 0.0 +301 2.65 2.55 93.75 0.194955 0.4204 -0.194905 -0.359053 -0.420368 0.359041 0.0 +302 2.65 2.55 101.25 0.217278 0.451611 -0.217168 -0.302903 -0.451706 0.302904 0.0 +303 2.65 2.55 108.75 0.177459 0.346261 -0.177385 -0.174633 -0.34637 0.174667 0.0 +304 2.65 2.55 116.25 0.0932406 0.177749 -0.093405 -0.0419077 -0.177758 0.0419259 0.0 +305 2.65 2.55 123.75 0.0143374 0.03145 -0.0145507 0.0454119 -0.0313795 -0.045448 0.0 +306 2.65 2.55 131.25 -0.0346536 -0.0608535 0.0348124 0.0869938 0.0609483 -0.0870298 0.0 +307 2.65 2.55 138.75 -0.0817334 -0.132275 0.0817107 0.117066 0.132252 -0.11706 0.0 +308 2.65 2.55 146.25 -0.184555 -0.244924 0.18477 0.173455 0.244919 -0.173443 0.0 +309 2.65 2.55 153.75 -0.380746 -0.438659 0.380787 0.272485 0.438786 -0.272543 0.0 +310 2.65 2.55 161.25 -0.649138 -0.696616 0.649172 0.400228 0.696703 -0.400289 0.0 +311 2.65 2.55 168.75 -0.912684 -0.947747 0.912894 0.520664 0.947624 -0.520601 0.0 +312 2.65 2.55 176.25 -1.07651 -1.10339 1.07652 0.593714 1.10339 -0.593746 0.0 +313 2.65 2.65 3.75 -850.9 -766.532 850.9 24206.3 766.532 -24206.3 0.0 +314 2.65 2.65 11.25 -532.471 -481.095 532.471 5590.03 481.095 -5590.03 0.0 +315 2.65 2.65 18.75 -284.368 -250.886 284.368 1834.01 250.886 -1834.01 0.0 +316 2.65 2.65 26.25 -129.075 -106.598 129.075 555.283 106.598 -555.283 0.0 +317 2.65 2.65 33.75 -49.9399 -36.5293 49.9399 138.315 36.5293 -138.315 0.0 +318 2.65 2.65 41.25 -16.5129 -10.4032 16.5129 27.2019 10.4033 -27.2019 0.0 +319 2.65 2.65 48.75 -4.46528 -2.7076 4.46539 4.42411 2.70761 -4.42411 0.0 +320 2.65 2.65 56.25 -0.741021 -0.597377 0.741105 0.305553 0.597353 -0.305549 0.0 +321 2.65 2.65 63.75 0.104606 0.0237456 -0.104669 -0.572899 -0.0237444 0.572894 0.0 +322 2.65 2.65 71.25 0.139391 0.125946 -0.139515 -0.571709 -0.125927 0.571698 0.0 +323 2.65 2.65 78.75 0.104219 0.102894 -0.104113 -0.382665 -0.102882 0.382676 0.0 +324 2.65 2.65 86.25 0.157087 0.145852 -0.157232 -0.297431 -0.1459 0.297442 0.0 +325 2.65 2.65 93.75 0.240407 0.236266 -0.240541 -0.278188 -0.236265 0.27819 0.0 +326 2.65 2.65 101.25 0.275238 0.279291 -0.274988 -0.229799 -0.27936 0.229805 0.0 +327 2.65 2.65 108.75 0.227141 0.229356 -0.227284 -0.134968 -0.229285 0.134932 0.0 +328 2.65 2.65 116.25 0.115892 0.112442 -0.115868 -0.0291153 -0.112422 0.0291383 0.0 +329 2.65 2.65 123.75 -0.010285 -0.0162117 0.0103961 0.0530193 0.0161505 -0.0529991 0.0 +330 2.65 2.65 131.25 -0.1188 -0.124881 0.118875 0.104487 0.124916 -0.104492 0.0 +331 2.65 2.65 138.75 -0.223058 -0.229731 0.223369 0.145724 0.229737 -0.145685 0.0 +332 2.65 2.65 146.25 -0.368701 -0.376052 0.368859 0.205686 0.3761 -0.205685 0.0 +333 2.65 2.65 153.75 -0.587337 -0.594228 0.587423 0.299459 0.594372 -0.299509 0.0 +334 2.65 2.65 161.25 -0.859864 -0.865453 0.859988 0.416736 0.865344 -0.416708 0.0 +335 2.65 2.65 168.75 -1.11756 -1.12156 1.11739 0.526563 1.12147 -0.526502 0.0 +336 2.65 2.65 176.25 -1.2751 -1.27817 1.27506 0.593124 1.2781 -0.593061 0.0 +337 2.65 2.75 3.75 -835.182 -772.341 835.182 21905.9 772.341 -21905.9 0.0 +338 2.65 2.75 11.25 -513.694 -481.73 513.694 5723.06 481.73 -5723.06 0.0 +339 2.65 2.75 18.75 -261.725 -240.477 261.725 1876.13 240.477 -1876.13 0.0 +340 2.65 2.75 26.25 -110.82 -93.042 110.82 555.313 93.0419 -555.313 0.0 +341 2.65 2.75 33.75 -39.2645 -26.3478 39.2645 131.64 26.3478 -131.64 0.0 +342 2.65 2.75 41.25 -11.8937 -5.23302 11.8938 23.3148 5.233 -23.3148 0.0 +343 2.65 2.75 48.75 -3.05671 -0.993603 3.05657 3.14407 0.993621 -3.14406 0.0 +344 2.65 2.75 56.25 -0.550099 -0.358525 0.550227 0.163089 0.358498 -0.163112 0.0 +345 2.65 2.75 63.75 -0.0205929 -0.0842747 0.0205161 -0.407995 0.0842518 0.407956 0.0 +346 2.65 2.75 71.25 0.00336668 0.0345981 -0.00349936 -0.421497 -0.0346157 0.421506 0.0 +347 2.65 2.75 78.75 0.0253619 0.0593683 -0.0255874 -0.3063 -0.0593531 0.306294 0.0 +348 2.65 2.75 86.25 0.119248 0.114375 -0.119305 -0.255219 -0.114285 0.255229 0.0 +349 2.65 2.75 93.75 0.216069 0.202657 -0.216049 -0.241183 -0.202733 0.241187 0.0 +350 2.65 2.75 101.25 0.255314 0.253769 -0.255148 -0.201128 -0.253738 0.20113 0.0 +351 2.65 2.75 108.75 0.214511 0.222856 -0.214525 -0.121963 -0.222827 0.121965 0.0 +352 2.65 2.75 116.25 0.110921 0.123065 -0.110896 -0.0278056 -0.123096 0.027821 0.0 +353 2.65 2.75 123.75 -0.0119931 0.00216882 0.0119589 0.0508731 -0.00227192 -0.0508543 0.0 +354 2.65 2.75 131.25 -0.119575 -0.104676 0.119555 0.102045 0.10466 -0.10204 0.0 +355 2.65 2.75 138.75 -0.220603 -0.205567 0.220425 0.139953 0.205519 -0.139884 0.0 +356 2.65 2.75 146.25 -0.354901 -0.339963 0.354916 0.191191 0.340301 -0.191375 0.0 +357 2.65 2.75 153.75 -0.553233 -0.537535 0.553233 0.27207 0.537478 -0.272051 0.0 +358 2.65 2.75 161.25 -0.800056 -0.783314 0.80005 0.37528 0.783269 -0.375219 0.0 +359 2.65 2.75 168.75 -1.03362 -1.01636 1.03349 0.473222 1.01637 -0.473237 0.0 +360 2.65 2.75 176.25 -1.17633 -1.15917 1.17626 0.532997 1.15938 -0.533141 0.0 +361 2.65 2.85 3.75 -760.67 -716.576 760.67 16548.2 716.576 -16548.2 0.0 +362 2.65 2.85 11.25 -468.577 -458.252 468.577 5405.79 458.252 -5405.79 0.0 +363 2.65 2.85 18.75 -228.053 -226.497 228.053 1802.81 226.497 -1802.81 0.0 +364 2.65 2.85 26.25 -89.1662 -84.2911 89.1663 523.528 84.2911 -523.528 0.0 +365 2.65 2.85 33.75 -28.2756 -21.661 28.2757 117.98 21.661 -117.98 0.0 +366 2.65 2.85 41.25 -7.65848 -3.29349 7.65854 18.6016 3.29345 -18.6016 0.0 +367 2.65 2.85 48.75 -1.87861 -0.425521 1.87855 1.91342 0.425548 -1.91344 0.0 +368 2.65 2.85 56.25 -0.359414 -0.305329 0.359467 0.0202548 0.305288 -0.0202399 0.0 +369 2.65 2.85 63.75 -0.0454417 -0.184956 0.0452869 -0.276244 0.184875 0.276227 0.0 +370 2.65 2.85 71.25 -0.03328 -0.0799704 0.0333967 -0.292345 0.0799691 0.292342 0.0 +371 2.65 2.85 78.75 0.00639036 -0.0189859 -0.006449 -0.241547 0.0190153 0.241563 0.0 +372 2.65 2.85 86.25 0.102068 0.0661345 -0.102071 -0.222916 -0.0661619 0.222919 0.0 +373 2.65 2.85 93.75 0.188697 0.163968 -0.188721 -0.21219 -0.163988 0.212191 0.0 +374 2.65 2.85 101.25 0.22364 0.220472 -0.223377 -0.175014 -0.220473 0.175017 0.0 +375 2.65 2.85 108.75 0.190707 0.202776 -0.190758 -0.106231 -0.202789 0.106247 0.0 +376 2.65 2.85 116.25 0.101112 0.120884 -0.101059 -0.0239388 -0.120905 0.0239052 0.0 +377 2.65 2.85 123.75 -0.00702613 0.0160528 0.00714713 0.0453335 -0.0161052 -0.0453373 0.0 +378 2.65 2.85 131.25 -0.101648 -0.0781261 0.101387 0.088976 0.0781448 -0.0889832 0.0 +379 2.65 2.85 138.75 -0.188841 -0.166223 0.188892 0.119526 0.166146 -0.119525 0.0 +380 2.65 2.85 146.25 -0.306982 -0.284004 0.307036 0.162419 0.283915 -0.162404 0.0 +381 2.65 2.85 153.75 -0.48517 -0.45968 0.485006 0.233515 0.459501 -0.233437 0.0 +382 2.65 2.85 161.25 -0.709159 -0.680393 0.709041 0.326165 0.680286 -0.32613 0.0 +383 2.65 2.85 168.75 -0.921682 -0.890267 0.921631 0.414752 0.89028 -0.414752 0.0 +384 2.65 2.85 176.25 -1.05193 -1.01912 1.05183 0.468933 1.01918 -0.469002 0.0 +385 2.65 2.95 3.75 -652.979 -606.124 652.978 12075.3 606.124 -12075.3 0.0 +386 2.65 2.95 11.25 -403.824 -399.31 403.824 4765.3 399.31 -4765.3 0.0 +387 2.65 2.95 18.75 -187.153 -198.273 187.153 1631.6 198.273 -1631.6 0.0 +388 2.65 2.95 26.25 -66.1445 -73.0744 66.1444 465.712 73.0744 -465.712 0.0 +389 2.65 2.95 33.75 -17.7622 -18.4285 17.7623 99.7601 18.4285 -99.7601 0.0 +390 2.65 2.95 41.25 -3.98999 -2.7919 3.99011 13.9822 2.7919 -13.9822 0.0 +391 2.65 2.95 48.75 -0.962247 -0.422871 0.962286 1.0033 0.422848 -1.00329 0.0 +392 2.65 2.95 56.25 -0.219175 -0.313473 0.218952 -0.0875255 0.313511 0.0875306 0.0 +393 2.65 2.95 63.75 -0.044678 -0.231589 0.0446919 -0.204831 0.231605 0.204882 0.0 +394 2.65 2.95 71.25 -0.0396615 -0.157633 0.0394157 -0.207168 0.15761 0.207183 0.0 +395 2.65 2.95 78.75 0.000394622 -0.0817809 -0.000419789 -0.190543 0.0817504 0.19052 0.0 +396 2.65 2.95 86.25 0.0846769 0.0240518 -0.0846618 -0.190014 -0.0241096 0.19001 0.0 +397 2.65 2.95 93.75 0.158081 0.12764 -0.157821 -0.180645 -0.127555 0.18064 0.0 +398 2.65 2.95 101.25 0.189421 0.189324 -0.189292 -0.147352 -0.189274 0.147358 0.0 +399 2.65 2.95 108.75 0.164176 0.186927 -0.163977 -0.0895019 -0.186952 0.0894983 0.0 +400 2.65 2.95 116.25 0.0871432 0.125207 -0.0868669 -0.0199561 -0.125352 0.0199732 0.0 +401 2.65 2.95 123.75 -0.0085628 0.0365974 0.00860248 0.0390423 -0.0363033 -0.0391 0.0 +402 2.65 2.95 131.25 -0.0923265 -0.0482959 0.0922008 0.0760854 0.0485513 -0.0762079 0.0 +403 2.65 2.95 138.75 -0.169808 -0.131174 0.169899 0.102608 0.131327 -0.10265 0.0 +404 2.65 2.95 146.25 -0.277395 -0.242796 0.277398 0.141394 0.242783 -0.141344 0.0 +405 2.65 2.95 153.75 -0.440501 -0.407224 0.440757 0.205828 0.407133 -0.205796 0.0 +406 2.65 2.95 161.25 -0.645643 -0.610905 0.6459 0.288976 0.611281 -0.289147 0.0 +407 2.65 2.95 168.75 -0.840165 -0.802999 0.840107 0.367747 0.802858 -0.367578 0.0 +408 2.65 2.95 176.25 -0.958665 -0.920072 0.958486 0.415643 0.920088 -0.415608 0.0 +409 2.65 3.05 3.75 -535.332 -454.934 535.332 8760.56 454.934 -8760.56 0.0 +410 2.65 3.05 11.25 -331.494 -306.561 331.494 3960.52 306.561 -3960.52 0.0 +411 2.65 3.05 18.75 -145.715 -152.648 145.715 1393.82 152.648 -1393.82 0.0 +412 2.65 3.05 26.25 -45.1283 -55.696 45.1283 390.806 55.696 -390.806 0.0 +413 2.65 3.05 33.75 -9.03711 -13.9981 9.03714 79.4908 13.9982 -79.4908 0.0 +414 2.65 3.05 41.25 -1.22467 -2.35412 1.22472 9.98439 2.35415 -9.98442 0.0 +415 2.65 3.05 48.75 -0.350067 -0.498445 0.350201 0.482424 0.498397 -0.482377 0.0 +416 2.65 3.05 56.25 -0.145634 -0.296881 0.145625 -0.138328 0.296866 0.138253 0.0 +417 2.65 3.05 63.75 -0.0512301 -0.23938 0.0510461 -0.169789 0.239391 0.169777 0.0 +418 2.65 3.05 71.25 -0.0475131 -0.216688 0.0475797 -0.14914 0.21666 0.149179 0.0 +419 2.65 3.05 78.75 -0.0100019 -0.142708 0.0103876 -0.145447 0.142686 0.145453 0.0 +420 2.65 3.05 86.25 0.0629653 -0.0219697 -0.0630473 -0.155105 0.0219773 0.155114 0.0 +421 2.65 3.05 93.75 0.12664 0.0897788 -0.12658 -0.148638 -0.0897681 0.148648 0.0 +422 2.65 3.05 101.25 0.15677 0.161102 -0.15675 -0.121208 -0.161149 0.121229 0.0 +423 2.65 3.05 108.75 0.13765 0.175494 -0.137742 -0.0739815 -0.175467 0.0739654 0.0 +424 2.65 3.05 116.25 0.0719305 0.132074 -0.0719425 -0.0160117 -0.13204 0.0159808 0.0 +425 2.65 3.05 123.75 -0.0105205 0.0566312 0.0107171 0.0339816 -0.05635 -0.0341083 0.0 +426 2.65 3.05 131.25 -0.0825435 -0.0218324 0.0823353 0.0659987 0.0216974 -0.0659344 0.0 +427 2.65 3.05 138.75 -0.148847 -0.101917 0.149043 0.0897675 0.101945 -0.0897216 0.0 +428 2.65 3.05 146.25 -0.242919 -0.209388 0.242954 0.124121 0.209336 -0.12419 0.0 +429 2.65 3.05 153.75 -0.386426 -0.362461 0.386542 0.179324 0.362431 -0.179385 0.0 +430 2.65 3.05 161.25 -0.566176 -0.547526 0.566298 0.248855 0.547163 -0.248731 0.0 +431 2.65 3.05 168.75 -0.735042 -0.718844 0.735426 0.313712 0.718869 -0.313772 0.0 +432 2.65 3.05 176.25 -0.837976 -0.822371 0.837847 0.352792 0.822288 -0.352789 0.0 +433 2.65 3.15 3.75 -427.355 -285.2 427.355 6295.52 285.2 -6295.52 0.0 +434 2.65 3.15 11.25 -265.153 -194.02 265.153 3125.25 194.02 -3125.25 0.0 +435 2.65 3.15 18.75 -111.202 -95.1726 111.202 1125.35 95.1726 -1125.35 0.0 +436 2.65 3.15 26.25 -29.6517 -33.3268 29.6517 308.747 33.3268 -308.747 0.0 +437 2.65 3.15 33.75 -3.36664 -8.0325 3.36662 59.3209 8.03251 -59.3209 0.0 +438 2.65 3.15 41.25 0.370119 -1.56003 -0.370195 6.73765 1.55997 -6.73765 0.0 +439 2.65 3.15 48.75 -0.0293352 -0.505394 0.0293329 0.248728 0.505409 -0.248723 0.0 +440 2.65 3.15 56.25 -0.105843 -0.270835 0.105751 -0.145765 0.270743 0.145803 0.0 +441 2.65 3.15 63.75 -0.0513317 -0.246866 0.0514241 -0.147382 0.246878 0.147378 0.0 +442 2.65 3.15 71.25 -0.0501128 -0.275431 0.04993 -0.104001 0.275378 0.10398 0.0 +443 2.65 3.15 78.75 -0.0164568 -0.206434 0.0163659 -0.104649 0.206543 0.1047 0.0 +444 2.65 3.15 86.25 0.0461547 -0.0733023 -0.0462363 -0.11996 0.0733698 0.119964 0.0 +445 2.65 3.15 93.75 0.0990004 0.0476562 -0.0990613 -0.115936 -0.0477138 0.115929 0.0 +446 2.65 3.15 101.25 0.124404 0.129396 -0.124624 -0.0943304 -0.129428 0.0943415 0.0 +447 2.65 3.15 108.75 0.110989 0.159191 -0.110618 -0.0576564 -0.159015 0.0576196 0.0 +448 2.65 3.15 116.25 0.0587243 0.132639 -0.0587968 -0.0121644 -0.132721 0.0121638 0.0 +449 2.65 3.15 123.75 -0.00573936 0.071577 0.00545961 0.0272095 -0.0714379 -0.0272703 0.0 +450 2.65 3.15 131.25 -0.0595329 0.00372402 0.0596701 0.0523942 -0.00377444 -0.0523371 0.0 +451 2.65 3.15 138.75 -0.110101 -0.0680458 0.109914 0.0711533 0.0677435 -0.071079 0.0 +452 2.65 3.15 146.25 -0.183484 -0.162436 0.183193 0.097899 0.16187 -0.0976014 0.0 +453 2.65 3.15 153.75 -0.297201 -0.294331 0.297328 0.13994 0.294371 -0.13996 0.0 +454 2.65 3.15 161.25 -0.440022 -0.45053 0.440364 0.191997 0.45081 -0.192128 0.0 +455 2.65 3.15 168.75 -0.573979 -0.593135 0.574118 0.23999 0.593252 -0.240079 0.0 +456 2.65 3.15 176.25 -0.655332 -0.678506 0.655274 0.268714 0.678407 -0.2687 0.0 +457 2.65 3.25 3.75 -343.28 -124.107 343.28 4445.63 124.107 -4445.63 0.0 +458 2.65 3.25 11.25 -215.576 -82.5722 215.576 2350.25 82.5722 -2350.25 0.0 +459 2.65 3.25 18.75 -89.1611 -36.9434 89.1611 858.678 36.9434 -858.678 0.0 +460 2.65 3.25 26.25 -21.9322 -10.3742 21.9323 228.574 10.3742 -228.574 0.0 +461 2.65 3.25 33.75 -1.31403 -1.72106 1.31403 40.8621 1.72107 -40.8621 0.0 +462 2.65 3.25 41.25 0.795648 -0.575902 -0.795697 4.14894 0.57591 -4.14896 0.0 +463 2.65 3.25 48.75 0.0763357 -0.456169 -0.076398 0.148004 0.456256 -0.148065 0.0 +464 2.65 3.25 56.25 -0.063689 -0.249401 0.0637021 -0.13222 0.249531 0.132205 0.0 +465 2.65 3.25 63.75 -0.0358554 -0.249745 0.0359111 -0.121502 0.249724 0.121491 0.0 +466 2.65 3.25 71.25 -0.0428349 -0.311738 0.0428194 -0.0638131 0.311734 0.0637754 0.0 +467 2.65 3.25 78.75 -0.0147141 -0.250034 0.0144509 -0.0678206 0.250075 0.0677768 0.0 +468 2.65 3.25 86.25 0.0352991 -0.11503 -0.0353655 -0.0843742 0.115078 0.0843892 0.0 +469 2.65 3.25 93.75 0.0720144 0.00909964 -0.0719435 -0.0804605 -0.0090581 0.0804531 0.0 +470 2.65 3.25 101.25 0.0888655 0.0989902 -0.0887325 -0.0647524 -0.0990223 0.0647474 0.0 +471 2.65 3.25 108.75 0.0799171 0.143831 -0.0801351 -0.0405357 -0.143865 0.0405626 0.0 +472 2.65 3.25 116.25 0.0463151 0.13551 -0.0462271 -0.0103342 -0.135713 0.0104217 0.0 +473 2.65 3.25 123.75 0.00341445 0.0908375 -0.00340467 0.0161085 -0.0908948 -0.0161034 0.0 +474 2.65 3.25 131.25 -0.0328772 0.0354199 0.0327234 0.0332693 -0.0353895 -0.0333584 0.0 +475 2.65 3.25 138.75 -0.0675007 -0.0244596 0.0674606 0.0466046 0.0245277 -0.0466162 0.0 +476 2.65 3.25 146.25 -0.119973 -0.102745 0.119865 0.0658272 0.102678 -0.0658241 0.0 +477 2.65 3.25 153.75 -0.201674 -0.208813 0.202075 0.0954721 0.209073 -0.0955902 0.0 +478 2.65 3.25 161.25 -0.304347 -0.332116 0.304539 0.131641 0.332258 -0.131649 0.0 +479 2.65 3.25 168.75 -0.400265 -0.443353 0.400058 0.164689 0.443498 -0.164816 0.0 +480 2.65 3.25 176.25 -0.458148 -0.509414 0.458013 0.184384 0.509501 -0.184446 0.0 +481 2.65 3.35 3.75 -278.227 3.35188 278.227 2946.21 -3.35188 -2946.21 0.0 +482 2.65 3.35 11.25 -180.202 7.30679 180.202 1622.2 -7.30679 -1622.2 0.0 +483 2.65 3.35 18.75 -77.9402 10.1339 77.9402 594.724 -10.1339 -594.724 0.0 +484 2.65 3.35 26.25 -20.9467 8.02501 20.9466 151.361 -8.02502 -151.361 0.0 +485 2.65 3.35 33.75 -2.25835 3.3951 2.25826 24.3523 -3.39512 -24.3522 0.0 +486 2.65 3.35 41.25 0.363524 0.335418 -0.363448 2.07799 -0.335341 -2.07804 0.0 +487 2.65 3.35 48.75 0.0599237 -0.367988 -0.059957 0.0931953 0.367953 -0.0931855 0.0 +488 2.65 3.35 56.25 -0.0236982 -0.242143 0.0236458 -0.098598 0.242167 0.0985908 0.0 +489 2.65 3.35 63.75 -0.0239201 -0.250568 0.023879 -0.0793347 0.250659 0.0793004 0.0 +490 2.65 3.35 71.25 -0.0368509 -0.319915 0.0367806 -0.0239745 0.319926 0.0239988 0.0 +491 2.65 3.35 78.75 -0.0110244 -0.268487 0.0110139 -0.0344337 0.268438 0.0344165 0.0 +492 2.65 3.35 86.25 0.0245226 -0.144794 -0.024666 -0.0497857 0.144602 0.0497966 0.0 +493 2.65 3.35 93.75 0.0424081 -0.0251599 -0.0424651 -0.0453306 0.0251858 0.0453233 0.0 +494 2.65 3.35 101.25 0.04903 0.0707895 -0.0493151 -0.0359067 -0.0707318 0.0358776 0.0 +495 2.65 3.35 108.75 0.0471092 0.130164 -0.0471373 -0.0244748 -0.130189 0.0244837 0.0 +496 2.65 3.35 116.25 0.0314376 0.139837 -0.0314698 -0.00916072 -0.139805 0.00913728 0.0 +497 2.65 3.35 123.75 0.00660309 0.109671 -0.00661976 0.00590828 -0.109418 -0.00599612 0.0 +498 2.65 3.35 131.25 -0.0184331 0.0620534 0.0189306 0.0173272 -0.0619207 -0.0174002 0.0 +499 2.65 3.35 138.75 -0.0453275 0.00760214 0.0452428 0.0275525 -0.00734601 -0.027681 0.0 +500 2.65 3.35 146.25 -0.082266 -0.0599492 0.082171 0.0416578 0.0599927 -0.0416724 0.0 +501 2.65 3.35 153.75 -0.136274 -0.146184 0.136402 0.0620795 0.146055 -0.0619743 0.0 +502 2.65 3.35 161.25 -0.202661 -0.24297 0.20278 0.086379 0.243041 -0.0864087 0.0 +503 2.65 3.35 168.75 -0.264667 -0.328848 0.264622 0.108466 0.328816 -0.108439 0.0 +504 2.65 3.35 176.25 -0.302166 -0.379469 0.302333 0.121649 0.379451 -0.121585 0.0 +505 2.65 3.45 3.75 -181.094 56.5768 181.094 1415.07 -56.5768 -1415.07 0.0 +506 2.65 3.45 11.25 -122.646 43.7184 122.646 798.081 -43.7184 -798.081 0.0 +507 2.65 3.45 18.75 -57.6293 27.3547 57.6292 289.903 -27.3547 -289.903 0.0 +508 2.65 3.45 26.25 -18.2701 13.6208 18.2701 69.1213 -13.6207 -69.1213 0.0 +509 2.65 3.45 33.75 -3.43227 4.75555 3.43223 9.49818 -4.75554 -9.49816 0.0 +510 2.65 3.45 41.25 -0.262119 0.743592 0.262138 0.642703 -0.743569 -0.64265 0.0 +511 2.65 3.45 48.75 -0.0206249 -0.220801 0.0206949 0.0833427 0.220803 -0.0833703 0.0 +512 2.65 3.45 56.25 -0.0278092 -0.219147 0.0277268 -0.0418895 0.219207 0.0419362 0.0 +513 2.65 3.45 63.75 -0.0302865 -0.221675 0.0303371 -0.0292143 0.221725 0.0292088 0.0 +514 2.65 3.45 71.25 -0.0283973 -0.257992 0.0284536 0.00362643 0.257937 -0.00359012 0.0 +515 2.65 3.45 78.75 -0.00583895 -0.217814 0.00603552 -0.0105431 0.217741 0.0105389 0.0 +516 2.65 3.45 86.25 0.0119324 -0.129526 -0.0119649 -0.0224338 0.129557 0.0224452 0.0 +517 2.65 3.45 93.75 0.0144366 -0.0428903 -0.0145475 -0.0187179 0.0429014 0.0187299 0.0 +518 2.65 3.45 101.25 0.0149629 0.0297917 -0.015042 -0.0130715 -0.0298841 0.013074 0.0 +519 2.65 3.45 108.75 0.0176727 0.0802808 -0.0176481 -0.00859687 -0.0801128 0.00854075 0.0 +520 2.65 3.45 116.25 0.0142801 0.0968509 -0.0142142 -0.00275531 -0.0968446 0.00279613 0.0 +521 2.65 3.45 123.75 0.00274599 0.0822463 -0.00285046 0.00385754 -0.0822624 -0.00387098 0.0 +522 2.65 3.45 131.25 -0.0115459 0.0508246 0.0116421 0.00941126 -0.0506893 -0.00950556 0.0 +523 2.65 3.45 138.75 -0.0256544 0.0123774 0.0254092 0.0140698 -0.0124329 -0.0139752 0.0 +524 2.65 3.45 146.25 -0.0416502 -0.0338945 0.0416358 0.0199093 0.0339039 -0.0199382 0.0 +525 2.65 3.45 153.75 -0.06548 -0.0902951 0.0654101 0.02876 0.0902214 -0.0286754 0.0 +526 2.65 3.45 161.25 -0.0968618 -0.152516 0.096841 0.0402396 0.152761 -0.0403307 0.0 +527 2.65 3.45 168.75 -0.128132 -0.207768 0.128088 0.0514288 0.207796 -0.0514167 0.0 +528 2.65 3.45 176.25 -0.147889 -0.240577 0.147879 0.058392 0.24052 -0.0584226 0.0 +529 2.65 3.55 3.75 -77.1979 33.0526 77.1979 408.269 -33.0526 -408.269 0.0 +530 2.65 3.55 11.25 -54.4456 24.806 54.4456 233.071 -24.806 -233.071 0.0 +531 2.65 3.55 18.75 -27.4729 14.6982 27.4729 83.0823 -14.6982 -83.0823 0.0 +532 2.65 3.55 26.25 -9.74029 6.98034 9.74028 18.3878 -6.98034 -18.3878 0.0 +533 2.65 3.55 33.75 -2.26688 2.44976 2.26686 2.2212 -2.44975 -2.22122 0.0 +534 2.65 3.55 41.25 -0.338901 0.452784 0.338876 0.250018 -0.452783 -0.250042 0.0 +535 2.65 3.55 48.75 -0.085801 -0.0837087 0.0858276 0.0833161 0.0837009 -0.0833153 0.0 +536 2.65 3.55 56.25 -0.053787 -0.114074 0.0537453 -0.0208865 0.114083 0.0208809 0.0 +537 2.65 3.55 63.75 -0.0249841 -0.102636 0.0249818 -0.0169731 0.102618 0.0169814 0.0 +538 2.65 3.55 71.25 -0.00793484 -0.104993 0.0079199 0.00243536 0.104968 -0.00244121 0.0 +539 2.65 3.55 78.75 0.000477289 -0.083635 -0.000473373 -0.0028304 0.083634 0.00283354 0.0 +540 2.65 3.55 86.25 0.00225691 -0.0484377 -0.00227501 -0.00865479 0.0484012 0.00865592 0.0 +541 2.65 3.55 93.75 0.00072074 -0.0198074 -0.000659016 -0.00641186 0.0197662 0.00641637 0.0 +542 2.65 3.55 101.25 0.00112223 0.00094823 -0.0011259 -0.00217623 -0.000927796 0.00217226 0.0 +543 2.65 3.55 108.75 0.00303859 0.0169456 -0.0030474 0.000636489 -0.0170012 -0.000616911 0.0 +544 2.65 3.55 116.25 0.00293939 0.0254903 -0.00299498 0.00226534 -0.0254881 -0.00227427 0.0 +545 2.65 3.55 123.75 0.00105767 0.0250956 -0.00100249 0.00302411 -0.0251043 -0.00302286 0.0 +546 2.65 3.55 131.25 0.00089622 0.018822 -0.000861732 0.00254531 -0.0188028 -0.00256904 0.0 +547 2.65 3.55 138.75 0.00382565 0.0100627 -0.0038702 0.000936262 -0.0101195 -0.000921113 0.0 +548 2.65 3.55 146.25 0.00637878 -0.00112474 -0.0063611 -0.000499545 0.00116119 0.000462636 0.0 +549 2.65 3.55 153.75 0.00342379 -0.0163538 -0.00340327 -0.0001089 0.0163686 9.31942e-05 0.0 +550 2.65 3.55 161.25 -0.0063525 -0.0350349 0.00642576 0.00261085 0.0350954 -0.00266173 0.0 +551 2.65 3.55 168.75 -0.0193118 -0.0529521 0.01932 0.00641632 0.0530167 -0.00647477 0.0 +552 2.65 3.55 176.25 -0.0282729 -0.0640227 0.0283342 0.00913184 0.0640796 -0.00915341 0.0 +553 2.65 3.65 3.75 -9.07399 3.23181 9.07399 31.5979 -3.23181 -31.5979 0.0 +554 2.65 3.65 11.25 -6.54957 2.36668 6.54957 18.1922 -2.36668 -18.1922 0.0 +555 2.65 3.65 18.75 -3.41782 1.35636 3.41782 6.44075 -1.35636 -6.44075 0.0 +556 2.65 3.65 26.25 -1.25794 0.63761 1.25794 1.4388 -0.63761 -1.4388 0.0 +557 2.65 3.65 33.75 -0.314954 0.229217 0.314955 0.252105 -0.229219 -0.252103 0.0 +558 2.65 3.65 41.25 -0.0703285 0.0433984 0.0703295 0.0804037 -0.0433987 -0.080406 0.0 +559 2.65 3.65 48.75 -0.0346923 -0.00594178 0.0346905 0.0178914 0.00594136 -0.0178931 0.0 +560 2.65 3.65 56.25 -0.0178793 -0.00218658 0.0178826 -0.0109585 0.00218474 0.0109613 0.0 +561 2.65 3.65 63.75 -0.00296649 0.00371443 0.00296685 -0.0077863 -0.00371456 0.00778602 0.0 +562 2.65 3.65 71.25 0.00156936 0.00391538 -0.00157049 -0.000554586 -0.00391343 0.000556069 0.0 +563 2.65 3.65 78.75 4.72839e-05 0.00437901 -5.76159e-05 0.000766606 -0.00437852 -0.000767667 0.0 +564 2.65 3.65 86.25 -0.00150151 0.00465743 0.00150145 4.48359e-05 -0.00465746 -4.47759e-05 0.0 +565 2.65 3.65 93.75 -0.00154911 0.0023728 0.00155712 3.94444e-05 -0.00237267 -3.93568e-05 0.0 +566 2.65 3.65 101.25 -0.00102647 -0.00107232 0.0010322 0.000455843 0.00107411 -0.000456348 0.0 +567 2.65 3.65 108.75 -0.000931385 -0.00331098 0.000926423 0.000617065 0.00331642 -0.000619741 0.0 +568 2.65 3.65 116.25 -0.00125989 -0.00405896 0.00125662 0.000489735 0.00405917 -0.000489051 0.0 +569 2.65 3.65 123.75 -0.00119027 -0.00416793 0.00118127 0.00025776 0.00417216 -0.000258364 0.0 +570 2.65 3.65 131.25 2.02558e-06 -0.00385544 9.97877e-07 -5.65576e-05 0.00385538 5.6561e-05 0.0 +571 2.65 3.65 138.75 0.0019471 -0.0027434 -0.00193851 -0.000439961 0.00274576 0.000440451 0.0 +572 2.65 3.65 146.25 0.00340728 -0.000754999 -0.00340313 -0.000680537 0.000762165 0.000677165 0.0 +573 2.65 3.65 153.75 0.00324508 0.00162334 -0.00324525 -0.000497576 -0.00162245 0.000496814 0.0 +574 2.65 3.65 161.25 0.00132741 0.00369896 -0.00132849 0.000164919 -0.00371082 -0.000158918 0.0 +575 2.65 3.65 168.75 -0.00130947 0.00507786 0.00131187 0.00102227 -0.00507988 -0.00102051 0.0 +576 2.65 3.65 176.25 -0.00317672 0.00571563 0.00316942 0.00161776 -0.00571614 -0.00161842 0.0 +577 2.75 2.55 3.75 -646.883 -824.761 646.883 13661.4 824.761 -13661.4 0.0 +578 2.75 2.55 11.25 -376.729 -565.131 376.729 4500.92 565.131 -4500.92 0.0 +579 2.75 2.55 18.75 -160.492 -319.439 160.492 1493.04 319.439 -1493.04 0.0 +580 2.75 2.55 26.25 -43.8362 -150.439 43.8362 427.402 150.439 -427.402 0.0 +581 2.75 2.55 33.75 -1.31067 -57.798 1.31064 92.2844 57.798 -92.2844 0.0 +582 2.75 2.55 41.25 6.00479 -16.8893 -6.00479 12.5367 16.8893 -12.5367 0.0 +583 2.75 2.55 48.75 4.03968 -2.60255 -4.0397 0.399313 2.60257 -0.399325 0.0 +584 2.75 2.55 56.25 2.21549 0.863126 -2.21544 -0.669249 -0.863129 0.669252 0.0 +585 2.75 2.55 63.75 1.40852 0.965831 -1.40854 -0.799145 -0.965837 0.799139 0.0 +586 2.75 2.55 71.25 0.877522 0.581863 -0.877718 -0.688179 -0.58189 0.688182 0.0 +587 2.75 2.55 78.75 0.432572 0.486926 -0.432514 -0.598602 -0.486947 0.598584 0.0 +588 2.75 2.55 86.25 0.163082 0.5836 -0.163134 -0.629205 -0.583719 0.629203 0.0 +589 2.75 2.55 93.75 0.0579151 0.606926 -0.0578918 -0.622595 -0.606869 0.622589 0.0 +590 2.75 2.55 101.25 0.0188255 0.45842 -0.0190481 -0.481734 -0.458384 0.481734 0.0 +591 2.75 2.55 108.75 -0.0159447 0.212618 0.0158542 -0.267236 -0.212519 0.267236 0.0 +592 2.75 2.55 116.25 -0.0341603 -0.00942321 0.0342676 -0.0831169 0.00944397 0.0831394 0.0 +593 2.75 2.55 123.75 0.00214989 -0.134649 -0.00214598 0.0210578 0.134553 -0.0210391 0.0 +594 2.75 2.55 131.25 0.0938516 -0.166277 -0.0938361 0.0622856 0.166334 -0.0623105 0.0 +595 2.75 2.55 138.75 0.18366 -0.166533 -0.183695 0.0899007 0.166491 -0.0898952 0.0 +596 2.75 2.55 146.25 0.192167 -0.212871 -0.19235 0.147586 0.212929 -0.147608 0.0 +597 2.75 2.55 153.75 0.0741489 -0.350932 -0.0741025 0.250625 0.350927 -0.250612 0.0 +598 2.75 2.55 161.25 -0.14589 -0.565391 0.145774 0.382212 0.565381 -0.382217 0.0 +599 2.75 2.55 168.75 -0.383057 -0.786435 0.383012 0.504804 0.786416 -0.504808 0.0 +600 2.75 2.55 176.25 -0.535417 -0.926475 0.535265 0.578566 0.926571 -0.578605 0.0 +601 2.75 2.65 3.75 -831.831 -860.5 831.831 20895.9 860.5 -20895.9 0.0 +602 2.75 2.65 11.25 -475.094 -547.496 475.094 5365.4 547.496 -5365.4 0.0 +603 2.75 2.65 18.75 -211.099 -284.158 211.099 1707.48 284.158 -1707.48 0.0 +604 2.75 2.65 26.25 -68.5394 -118.424 68.5394 479.405 118.424 -479.405 0.0 +605 2.75 2.65 33.75 -13.6757 -38.7319 13.6757 102.918 38.7319 -102.918 0.0 +606 2.75 2.65 41.25 -0.641629 -9.94534 0.641516 15.2464 9.94536 -15.2464 0.0 +607 2.75 2.65 48.75 0.332944 -2.18488 -0.332922 1.85409 2.18487 -1.8541 0.0 +608 2.75 2.65 56.25 0.112165 -0.465651 -0.112096 0.181132 0.46563 -0.181143 0.0 +609 2.75 2.65 63.75 0.17644 -0.0725113 -0.176231 -0.386031 0.0725132 0.386039 0.0 +610 2.75 2.65 71.25 0.181446 0.0079536 -0.181422 -0.450971 -0.0079448 0.450977 0.0 +611 2.75 2.65 78.75 0.1272 0.0562691 -0.126984 -0.35027 -0.0562978 0.350258 0.0 +612 2.75 2.65 86.25 0.131164 0.146678 -0.130971 -0.320782 -0.146689 0.320782 0.0 +613 2.75 2.65 93.75 0.184111 0.220732 -0.184056 -0.310724 -0.220653 0.310723 0.0 +614 2.75 2.65 101.25 0.213605 0.217192 -0.213601 -0.244091 -0.217167 0.244081 0.0 +615 2.75 2.65 108.75 0.179639 0.136558 -0.179737 -0.132731 -0.136657 0.132727 0.0 +616 2.75 2.65 116.25 0.100081 0.0217289 -0.100093 -0.0251836 -0.0217251 0.0251759 0.0 +617 2.75 2.65 123.75 0.0195628 -0.0815694 -0.0193724 0.0480742 0.0816744 -0.0480962 0.0 +618 2.75 2.65 131.25 -0.0392766 -0.157775 0.0391865 0.0897435 0.157642 -0.0896697 0.0 +619 2.75 2.65 138.75 -0.100375 -0.232729 0.100477 0.125775 0.232723 -0.125727 0.0 +620 2.75 2.65 146.25 -0.214623 -0.354582 0.214959 0.184674 0.354626 -0.184677 0.0 +621 2.75 2.65 153.75 -0.413318 -0.55297 0.413289 0.278244 0.552966 -0.278243 0.0 +622 2.75 2.65 161.25 -0.673058 -0.807985 0.672735 0.393846 0.807876 -0.393806 0.0 +623 2.75 2.65 168.75 -0.921828 -1.05215 0.921789 0.500727 1.05224 -0.500783 0.0 +624 2.75 2.65 176.25 -1.07494 -1.20227 1.0747 0.564979 1.20218 -0.564915 0.0 +625 2.75 2.75 3.75 -953.112 -854.306 953.112 25981 854.306 -25981 0.0 +626 2.75 2.75 11.25 -539.051 -520.941 539.051 5855.95 520.941 -5855.95 0.0 +627 2.75 2.75 18.75 -242.983 -254.204 242.983 1824.66 254.204 -1824.66 0.0 +628 2.75 2.75 26.25 -83.2573 -94.4794 83.2573 502.272 94.4793 -502.272 0.0 +629 2.75 2.75 33.75 -20.5412 -24.7823 20.5412 104.828 24.7823 -104.828 0.0 +630 2.75 2.75 41.25 -3.9136 -4.29412 3.91362 14.9464 4.2941 -14.9465 0.0 +631 2.75 2.75 48.75 -1.12328 -0.873619 1.12322 1.93019 0.873624 -1.93018 0.0 +632 2.75 2.75 56.25 -0.514324 -0.496154 0.514312 0.391368 0.496221 -0.39134 0.0 +633 2.75 2.75 63.75 -0.164596 -0.213443 0.164691 -0.208447 0.213484 0.208481 0.0 +634 2.75 2.75 71.25 -0.041967 -0.0485499 0.0420123 -0.328452 0.0485135 0.328445 0.0 +635 2.75 2.75 78.75 0.00770861 0.0144404 -0.0076428 -0.256255 -0.0144125 0.25625 0.0 +636 2.75 2.75 86.25 0.090797 0.0907928 -0.090835 -0.225168 -0.0907865 0.225168 0.0 +637 2.75 2.75 93.75 0.181978 0.179759 -0.182045 -0.218388 -0.179673 0.218388 0.0 +638 2.75 2.75 101.25 0.225859 0.223811 -0.2259 -0.17996 -0.22375 0.17996 0.0 +639 2.75 2.75 108.75 0.197221 0.193022 -0.197213 -0.105534 -0.19316 0.105561 0.0 +640 2.75 2.75 116.25 0.109362 0.103419 -0.109316 -0.0211263 -0.10351 0.0211473 0.0 +641 2.75 2.75 123.75 0.00356169 -0.00337669 -0.00365545 0.0468134 0.00343037 -0.0468135 0.0 +642 2.75 2.75 131.25 -0.0899181 -0.097849 0.0896843 0.0904862 0.0978568 -0.090473 0.0 +643 2.75 2.75 138.75 -0.180752 -0.189165 0.180483 0.124806 0.189251 -0.124873 0.0 +644 2.75 2.75 146.25 -0.307245 -0.315227 0.307006 0.173842 0.315177 -0.173832 0.0 +645 2.75 2.75 153.75 -0.495888 -0.504071 0.495883 0.250885 0.504047 -0.250882 0.0 +646 2.75 2.75 161.25 -0.730452 -0.740638 0.730449 0.347741 0.740677 -0.347784 0.0 +647 2.75 2.75 168.75 -0.951281 -0.965256 0.9512 0.438629 0.965085 -0.438584 0.0 +648 2.75 2.75 176.25 -1.08583 -1.10279 1.08592 0.493743 1.10285 -0.493793 0.0 +649 2.75 2.85 3.75 -970.563 -775.744 970.563 23153.2 775.744 -23153.2 0.0 +650 2.75 2.85 11.25 -556.721 -474.097 556.721 5862.74 474.097 -5862.74 0.0 +651 2.75 2.85 18.75 -250.751 -224.584 250.751 1827.2 224.584 -1827.2 0.0 +652 2.75 2.85 26.25 -86.059 -77.5526 86.059 494.052 77.5526 -494.052 0.0 +653 2.75 2.85 33.75 -21.7848 -16.8577 21.7848 99.2767 16.8577 -99.2767 0.0 +654 2.75 2.85 41.25 -4.50961 -1.52272 4.5095 12.9376 1.52274 -12.9376 0.0 +655 2.75 2.85 48.75 -1.25065 -0.243785 1.25071 1.39261 0.243763 -1.39263 0.0 +656 2.75 2.85 56.25 -0.463066 -0.460087 0.463015 0.300113 0.460075 -0.300136 0.0 +657 2.75 2.85 63.75 -0.151187 -0.275288 0.151132 -0.144808 0.275348 0.144857 0.0 +658 2.75 2.85 71.25 -0.0749749 -0.110892 0.0749169 -0.249281 0.110829 0.249264 0.0 +659 2.75 2.85 78.75 -0.0201116 -0.0351113 0.0202283 -0.210984 0.0351362 0.210976 0.0 +660 2.75 2.85 86.25 0.0736389 0.0501401 -0.0736054 -0.194737 -0.0502144 0.194733 0.0 +661 2.75 2.85 93.75 0.160078 0.146192 -0.159898 -0.1879 -0.146241 0.187904 0.0 +662 2.75 2.85 101.25 0.200786 0.204303 -0.200728 -0.156391 -0.204259 0.156374 0.0 +663 2.75 2.85 108.75 0.17997 0.193028 -0.179585 -0.0955768 -0.192919 0.0955569 0.0 +664 2.75 2.85 116.25 0.103624 0.119278 -0.103941 -0.0221991 -0.119219 0.0221951 0.0 +665 2.75 2.85 123.75 0.00644177 0.0211333 -0.00659697 0.0394802 -0.0210367 -0.0394978 0.0 +666 2.75 2.85 131.25 -0.0803186 -0.0672129 0.080414 0.0781492 0.0671178 -0.0781413 0.0 +667 2.75 2.85 138.75 -0.161637 -0.148838 0.161505 0.105436 0.149111 -0.105534 0.0 +668 2.75 2.85 146.25 -0.270086 -0.257695 0.270083 0.14428 0.257823 -0.144344 0.0 +669 2.75 2.85 153.75 -0.43239 -0.421507 0.432363 0.208547 0.421587 -0.208591 0.0 +670 2.75 2.85 161.25 -0.634898 -0.628455 0.634872 0.291785 0.628448 -0.291789 0.0 +671 2.75 2.85 168.75 -0.826247 -0.825693 0.826352 0.370982 0.825733 -0.37098 0.0 +672 2.75 2.85 176.25 -0.943351 -0.946865 0.943117 0.419282 0.946914 -0.419356 0.0 +673 2.75 2.95 3.75 -897.538 -636.356 897.538 17274.5 636.356 -17274.5 0.0 +674 2.75 2.95 11.25 -527.594 -400.007 527.594 5426.93 400.007 -5426.93 0.0 +675 2.75 2.95 18.75 -234.856 -188.606 234.856 1719.6 188.606 -1719.6 0.0 +676 2.75 2.95 26.25 -78.0109 -63.1924 78.0109 457.632 63.1924 -457.632 0.0 +677 2.75 2.95 33.75 -18.5523 -12.6415 18.5523 88.2261 12.6415 -88.2261 0.0 +678 2.75 2.95 41.25 -3.43241 -0.788747 3.43237 10.3311 0.788758 -10.3311 0.0 +679 2.75 2.95 48.75 -0.834456 -0.199558 0.834517 0.799118 0.199613 -0.799125 0.0 +680 2.75 2.95 56.25 -0.273778 -0.463123 0.273749 0.148104 0.463143 -0.148167 0.0 +681 2.75 2.95 63.75 -0.103413 -0.318818 0.103504 -0.111608 0.31885 0.111645 0.0 +682 2.75 2.95 71.25 -0.0843263 -0.181793 0.0843793 -0.175312 0.181809 0.175287 0.0 +683 2.75 2.95 78.75 -0.0303993 -0.093494 0.0304044 -0.167209 0.0935528 0.167232 0.0 +684 2.75 2.95 86.25 0.0620423 0.00699782 -0.0622995 -0.169543 -0.00683051 0.169553 0.0 +685 2.75 2.95 93.75 0.136614 0.106217 -0.136678 -0.163514 -0.106191 0.163506 0.0 +686 2.75 2.95 101.25 0.17196 0.170249 -0.171903 -0.134812 -0.170364 0.13483 0.0 +687 2.75 2.95 108.75 0.15684 0.174342 -0.156924 -0.0828548 -0.174193 0.082802 0.0 +688 2.75 2.95 116.25 0.0926482 0.118695 -0.0927901 -0.0195911 -0.118646 0.0195826 0.0 +689 2.75 2.95 123.75 0.00849675 0.0355959 -0.00833828 0.0336514 -0.0356652 -0.0336479 0.0 +690 2.75 2.95 131.25 -0.0660839 -0.0418908 0.0662238 0.0659291 0.041797 -0.065883 0.0 +691 2.75 2.95 138.75 -0.134275 -0.114174 0.134106 0.0880437 0.114322 -0.0880806 0.0 +692 2.75 2.95 146.25 -0.227305 -0.21177 0.227027 0.121094 0.2116 -0.121002 0.0 +693 2.75 2.95 153.75 -0.368554 -0.358527 0.368374 0.177219 0.358663 -0.177335 0.0 +694 2.75 2.95 161.25 -0.546482 -0.542986 0.546711 0.250148 0.542877 -0.250051 0.0 +695 2.75 2.95 168.75 -0.715439 -0.717898 0.715379 0.319323 0.717937 -0.319304 0.0 +696 2.75 2.95 176.25 -0.817997 -0.824689 0.818295 0.361371 0.825027 -0.361574 0.0 +697 2.75 3.05 3.75 -770.161 -463.434 770.161 12393.7 463.434 -12393.7 0.0 +698 2.75 3.05 11.25 -462.237 -301.474 462.237 4693.99 301.474 -4693.99 0.0 +699 2.75 3.05 18.75 -201.495 -143.479 201.495 1525.17 143.479 -1525.17 0.0 +700 2.75 3.05 26.25 -62.9238 -47.8688 62.9238 399.794 47.8688 -399.794 0.0 +701 2.75 3.05 33.75 -12.9682 -9.61891 12.9682 73.8547 9.61892 -73.8547 0.0 +702 2.75 3.05 41.25 -1.7583 -0.85457 1.75829 7.81837 0.854518 -7.81834 0.0 +703 2.75 3.05 48.75 -0.381642 -0.346117 0.381587 0.40516 0.34605 -0.405176 0.0 +704 2.75 3.05 56.25 -0.163641 -0.440252 0.163583 0.0381865 0.440156 -0.0381959 0.0 +705 2.75 3.05 63.75 -0.103568 -0.332346 0.103485 -0.0833787 0.332372 0.0833554 0.0 +706 2.75 3.05 71.25 -0.101444 -0.24461 0.101602 -0.107568 0.244525 0.107546 0.0 +707 2.75 3.05 78.75 -0.038508 -0.1504 0.038783 -0.1224 0.150253 0.122395 0.0 +708 2.75 3.05 86.25 0.0496984 -0.0343332 -0.0494439 -0.140095 0.0345932 0.140101 0.0 +709 2.75 3.05 93.75 0.111297 0.06995 -0.111612 -0.135869 -0.0701637 0.135882 0.0 +710 2.75 3.05 101.25 0.140426 0.140943 -0.140275 -0.110396 -0.140778 0.110407 0.0 +711 2.75 3.05 108.75 0.12795 0.158778 -0.128322 -0.0664922 -0.158818 0.0664985 0.0 +712 2.75 3.05 116.25 0.0728381 0.119891 -0.0730793 -0.0130873 -0.11982 0.0129934 0.0 +713 2.75 3.05 123.75 0.000267345 0.0511317 -9.01598e-05 0.0314953 -0.0510922 -0.03149 0.0 +714 2.75 3.05 131.25 -0.063069 -0.0174406 0.0628665 0.0580034 0.0170276 -0.0579042 0.0 +715 2.75 3.05 138.75 -0.119018 -0.0842153 0.11903 0.0763319 0.0841315 -0.0762935 0.0 +716 2.75 3.05 146.25 -0.197865 -0.1752 0.197467 0.104414 0.175196 -0.104295 0.0 +717 2.75 3.05 153.75 -0.319615 -0.309756 0.319424 0.151665 0.309809 -0.15167 0.0 +718 2.75 3.05 161.25 -0.473103 -0.474577 0.47295 0.212121 0.474601 -0.212138 0.0 +719 2.75 3.05 168.75 -0.617392 -0.628077 0.617611 0.268756 0.627819 -0.268631 0.0 +720 2.75 3.05 176.25 -0.705354 -0.720636 0.705297 0.302934 0.720794 -0.303013 0.0 +721 2.75 3.15 3.75 -621.059 -283.307 621.059 8818.58 283.307 -8818.58 0.0 +722 2.75 3.15 11.25 -378.076 -190.869 378.076 3830.09 190.869 -3830.09 0.0 +723 2.75 3.15 18.75 -160.427 -92.3481 160.427 1277.7 92.3481 -1277.7 0.0 +724 2.75 3.15 26.25 -45.9966 -30.9532 45.9966 329.373 30.9532 -329.373 0.0 +725 2.75 3.15 33.75 -7.4094 -6.49374 7.40945 58.1344 6.49371 -58.1344 0.0 +726 2.75 3.15 41.25 -0.360268 -0.948504 0.360207 5.64912 0.948525 -5.64911 0.0 +727 2.75 3.15 48.75 -0.109681 -0.454359 0.109583 0.215632 0.454311 -0.215651 0.0 +728 2.75 3.15 56.25 -0.128581 -0.381055 0.12849 -0.024614 0.380998 0.0245607 0.0 +729 2.75 3.15 63.75 -0.107772 -0.325095 0.107852 -0.0656164 0.325178 0.0656213 0.0 +730 2.75 3.15 71.25 -0.10009 -0.293719 0.100061 -0.059479 0.293753 0.059475 0.0 +731 2.75 3.15 78.75 -0.036158 -0.200438 0.0358502 -0.0856231 0.200546 0.0856524 0.0 +732 2.75 3.15 86.25 0.0377439 -0.0742392 -0.037571 -0.109183 0.0742289 0.109172 0.0 +733 2.75 3.15 93.75 0.0838315 0.0343987 -0.0838656 -0.104987 -0.0344864 0.105012 0.0 +734 2.75 3.15 101.25 0.106057 0.110494 -0.106108 -0.0834801 -0.110598 0.0834927 0.0 +735 2.75 3.15 108.75 0.0968552 0.139813 -0.0967877 -0.0483794 -0.139765 0.0483448 0.0 +736 2.75 3.15 116.25 0.051391 0.115917 -0.0515763 -0.0060004 -0.116112 0.00610288 0.0 +737 2.75 3.15 123.75 -0.00713598 0.0613642 0.00718246 0.0286098 -0.0614779 -0.0285439 0.0 +738 2.75 3.15 131.25 -0.0559847 0.00396885 0.0560961 0.0483465 -0.00390007 -0.0484359 0.0 +739 2.75 3.15 138.75 -0.0990609 -0.0545791 0.0984659 0.061732 0.0548182 -0.0618343 0.0 +740 2.75 3.15 146.25 -0.159454 -0.134936 0.1595 0.0827794 0.135061 -0.08272 0.0 +741 2.75 3.15 153.75 -0.25524 -0.251075 0.255086 0.118141 0.251122 -0.118172 0.0 +742 2.75 3.15 161.25 -0.375288 -0.38964 0.375663 0.162894 0.389747 -0.16293 0.0 +743 2.75 3.15 168.75 -0.488486 -0.516392 0.488643 0.204424 0.516148 -0.204273 0.0 +744 2.75 3.15 176.25 -0.556839 -0.591689 0.556911 0.229329 0.591767 -0.229304 0.0 +745 2.75 3.25 3.75 -476.667 -121.19 476.667 6210.58 121.19 -6210.58 0.0 +746 2.75 3.25 11.25 -293.373 -85.8334 293.373 2968.1 85.8334 -2968.1 0.0 +747 2.75 3.25 18.75 -121.508 -42.7495 121.508 1012.27 42.7495 -1012.27 0.0 +748 2.75 3.25 26.25 -31.8786 -14.325 31.8786 255.334 14.325 -255.334 0.0 +749 2.75 3.25 33.75 -3.63288 -3.16546 3.63301 42.6516 3.16544 -42.6516 0.0 +750 2.75 3.25 41.25 0.315726 -0.793557 -0.315791 3.80727 0.79365 -3.8073 0.0 +751 2.75 3.25 48.75 -0.0242544 -0.460584 0.0242178 0.130581 0.460619 -0.130536 0.0 +752 2.75 3.25 56.25 -0.0991531 -0.30838 0.0992679 -0.0606306 0.308269 0.0605918 0.0 +753 2.75 3.25 63.75 -0.0775749 -0.303078 0.0775341 -0.058713 0.303134 0.0587059 0.0 +754 2.75 3.25 71.25 -0.0726081 -0.316404 0.0725509 -0.0320203 0.316355 0.0321083 0.0 +755 2.75 3.25 78.75 -0.0250871 -0.232854 0.0249036 -0.0576022 0.232759 0.0576201 0.0 +756 2.75 3.25 86.25 0.0262879 -0.108161 -0.0264355 -0.0771184 0.108011 0.0771155 0.0 +757 2.75 3.25 93.75 0.0560476 -0.000207024 -0.0559883 -0.0716051 0.000146475 0.0716155 0.0 +758 2.75 3.25 101.25 0.072468 0.0806321 -0.0723149 -0.0559611 -0.0805163 0.0559016 0.0 +759 2.75 3.25 108.75 0.0683282 0.121003 -0.068317 -0.0319853 -0.121 0.0319423 0.0 +760 2.75 3.25 116.25 0.0376756 0.112607 -0.037291 -0.00283035 -0.112703 0.00284452 0.0 +761 2.75 3.25 123.75 -0.00470402 0.0730337 0.00443815 0.0205484 -0.072994 -0.0206443 0.0 +762 2.75 3.25 131.25 -0.0393657 0.0275953 0.0393646 0.0333389 -0.02763 -0.0332308 0.0 +763 2.75 3.25 138.75 -0.0690594 -0.0208708 0.0692442 0.0419952 0.0207699 -0.0419967 0.0 +764 2.75 3.25 146.25 -0.111014 -0.0862657 0.110952 0.0560987 0.0863438 -0.0561322 0.0 +765 2.75 3.25 153.75 -0.176809 -0.178443 0.176496 0.0798216 0.178512 -0.0798746 0.0 +766 2.75 3.25 161.25 -0.258767 -0.286055 0.259122 0.109635 0.286421 -0.109773 0.0 +767 2.75 3.25 168.75 -0.336709 -0.383242 0.3365 0.137155 0.383371 -0.137249 0.0 +768 2.75 3.25 176.25 -0.383233 -0.440518 0.383304 0.153612 0.440294 -0.153402 0.0 +769 2.75 3.35 3.75 -341.385 1.74756 341.385 4134.74 -1.74757 -4134.74 0.0 +770 2.75 3.35 11.25 -213.168 -3.19693 213.168 2109.24 3.19691 -2109.24 0.0 +771 2.75 3.35 18.75 -87.8275 -2.99417 87.8276 729.622 2.99416 -729.622 0.0 +772 2.75 3.35 26.25 -22.0888 -0.704944 22.0887 178.369 0.70499 -178.369 0.0 +773 2.75 3.35 33.75 -2.07542 -0.0682655 2.0755 27.6089 0.0682662 -27.6089 0.0 +774 2.75 3.35 41.25 0.300247 -0.350456 -0.300305 2.18926 0.350473 -2.18927 0.0 +775 2.75 3.35 48.75 -0.0373785 -0.369541 0.0374118 0.0833796 0.36958 -0.083402 0.0 +776 2.75 3.35 56.25 -0.0518069 -0.259322 0.0517312 -0.0686295 0.259412 0.0687251 0.0 +777 2.75 3.35 63.75 -0.0322367 -0.285586 0.0323754 -0.0471277 0.285461 0.0471608 0.0 +778 2.75 3.35 71.25 -0.0437375 -0.317171 0.043788 -0.0133265 0.317084 0.0133532 0.0 +779 2.75 3.35 78.75 -0.0172441 -0.248737 0.0171536 -0.0330689 0.248747 0.0330618 0.0 +780 2.75 3.35 86.25 0.0144849 -0.135178 -0.014571 -0.0452186 0.135353 0.0452189 0.0 +781 2.75 3.35 93.75 0.030471 -0.0300865 -0.030347 -0.0398041 0.0300945 0.0397911 0.0 +782 2.75 3.35 101.25 0.0406014 0.0563913 -0.0407253 -0.0312837 -0.0564639 0.0312859 0.0 +783 2.75 3.35 108.75 0.0422766 0.108893 -0.0423538 -0.0189637 -0.109138 0.0190212 0.0 +784 2.75 3.35 116.25 0.0267588 0.115186 -0.0269597 -0.00297617 -0.11525 0.00295127 0.0 +785 2.75 3.35 123.75 0.000501099 0.0878862 -0.000774694 0.0104498 -0.0881349 -0.0102325 0.0 +786 2.75 3.35 131.25 -0.0236225 0.0489236 0.0238085 0.0185255 -0.0490552 -0.0184822 0.0 +787 2.75 3.35 138.75 -0.0444452 0.00629968 0.044223 0.0246731 -0.00652667 -0.0245664 0.0 +788 2.75 3.35 146.25 -0.0693381 -0.0474412 0.069485 0.0339103 0.0474594 -0.0339419 0.0 +789 2.75 3.35 153.75 -0.107186 -0.118947 0.107138 0.0484857 0.1189 -0.0484203 0.0 +790 2.75 3.35 161.25 -0.154793 -0.200912 0.154723 0.0665572 0.200588 -0.0663788 0.0 +791 2.75 3.35 168.75 -0.200583 -0.274251 0.200264 0.0833152 0.274149 -0.0833102 0.0 +792 2.75 3.35 176.25 -0.22795 -0.317539 0.228214 0.0934114 0.317615 -0.093522 0.0 +793 2.75 3.45 3.75 -181.602 50.4515 181.602 2007.55 -50.4515 -2007.55 0.0 +794 2.75 3.45 11.25 -116.135 31.353 116.135 1069.23 -31.3531 -1069.23 0.0 +795 2.75 3.45 18.75 -49.1544 14.1197 49.1544 371.433 -14.1197 -371.433 0.0 +796 2.75 3.45 26.25 -12.9027 5.27843 12.9027 86.871 -5.27842 -86.871 0.0 +797 2.75 3.45 33.75 -1.53044 1.58922 1.53042 12.1098 -1.58919 -12.1098 0.0 +798 2.75 3.45 41.25 0.0034182 0.175305 -0.00341175 0.852259 -0.175314 -0.852262 0.0 +799 2.75 3.45 48.75 -0.0627082 -0.187051 0.0626463 0.0745378 0.187162 -0.0745079 0.0 +800 2.75 3.45 56.25 -0.0269175 -0.208615 0.0269865 -0.0380544 0.208565 0.0380413 0.0 +801 2.75 3.45 63.75 -0.0156683 -0.232533 0.0156754 -0.0230666 0.232476 0.0230535 0.0 +802 2.75 3.45 71.25 -0.027083 -0.247837 0.027041 5.30776e-05 0.247723 -0.000124963 0.0 +803 2.75 3.45 78.75 -0.0110419 -0.199747 0.0110237 -0.01275 0.199733 0.0127249 0.0 +804 2.75 3.45 86.25 0.00600723 -0.118375 -0.00584057 -0.01943 0.118327 0.0194294 0.0 +805 2.75 3.45 93.75 0.00873478 -0.0394094 -0.00879205 -0.0152652 0.0394659 0.0152585 0.0 +806 2.75 3.45 101.25 0.00962037 0.0272073 -0.00960224 -0.0103152 -0.0271381 0.0103031 0.0 +807 2.75 3.45 108.75 0.0122306 0.0719369 -0.0122886 -0.00545491 -0.071926 0.00547195 0.0 +808 2.75 3.45 116.25 0.00974245 0.0846866 -0.00979763 -2.00295e-05 -0.084746 5.2625e-05 0.0 +809 2.75 3.45 123.75 0.000243929 0.070346 -0.000352399 0.00484904 -0.0702929 -0.00489636 0.0 +810 2.75 3.45 131.25 -0.010453 0.043801 0.0102586 0.00831848 -0.0439736 -0.00824598 0.0 +811 2.75 3.45 138.75 -0.0180464 0.0137037 0.0179837 0.0107806 -0.0137201 -0.0108167 0.0 +812 2.75 3.45 146.25 -0.025475 -0.0218772 0.0256088 0.0136926 0.0220646 -0.0138449 0.0 +813 2.75 3.45 153.75 -0.0382383 -0.0672046 0.0382092 0.0186021 0.0672579 -0.018626 0.0 +814 2.75 3.45 161.25 -0.0575259 -0.119353 0.0574959 0.0256839 0.119252 -0.0256513 0.0 +815 2.75 3.45 168.75 -0.0781428 -0.166869 0.078149 0.0330717 0.16689 -0.0331148 0.0 +816 2.75 3.45 176.25 -0.0916728 -0.195518 0.0917779 0.0378401 0.195665 -0.037981 0.0 +817 2.75 3.55 3.75 -60.5153 27.692 60.5153 588.046 -27.692 -588.046 0.0 +818 2.75 3.55 11.25 -39.8784 17.4201 39.8784 321.892 -17.4201 -321.892 0.0 +819 2.75 3.55 18.75 -17.6334 7.7718 17.6334 111.365 -7.7718 -111.365 0.0 +820 2.75 3.55 26.25 -4.94614 2.91047 4.94616 24.801 -2.91047 -24.801 0.0 +821 2.75 3.55 33.75 -0.717862 1.02613 0.717872 3.21211 -1.02616 -3.21209 0.0 +822 2.75 3.55 41.25 -0.0703286 0.253386 0.0703577 0.326292 -0.253389 -0.326305 0.0 +823 2.75 3.55 48.75 -0.0696314 -0.0360868 0.0696098 0.0745468 0.0361057 -0.0745544 0.0 +824 2.75 3.55 56.25 -0.0386849 -0.0894109 0.0386635 -0.0191097 0.0894516 0.0190794 0.0 +825 2.75 3.55 63.75 -0.0158765 -0.0925221 0.0158458 -0.0145167 0.09256 0.0145237 0.0 +826 2.75 3.55 71.25 -0.00997075 -0.0929607 0.00998059 0.000467248 0.0929809 -0.000443377 0.0 +827 2.75 3.55 78.75 -0.00149974 -0.0734939 0.00146198 -0.00355586 0.0735358 0.00355353 0.0 +828 2.75 3.55 86.25 0.0028805 -0.042718 -0.00289025 -0.00634796 0.0427423 0.00634686 0.0 +829 2.75 3.55 93.75 -0.000895397 -0.0173398 0.000915914 -0.00268197 0.0173692 0.00268557 0.0 +830 2.75 3.55 101.25 -0.00461455 0.00200332 0.00464936 0.00177679 -0.00195006 -0.0017874 0.0 +831 2.75 3.55 108.75 -0.00367123 0.0176377 0.00372332 0.00363241 -0.0176972 -0.00361264 0.0 +832 2.75 3.55 116.25 -0.00131124 0.0260317 0.00133193 0.00346321 -0.0260021 -0.00346733 0.0 +833 2.75 3.55 123.75 -0.000257145 0.0251737 0.000204938 0.00292588 -0.0251838 -0.00291469 0.0 +834 2.75 3.55 131.25 0.000973531 0.0188626 -0.000971992 0.00228745 -0.0188196 -0.00232812 0.0 +835 2.75 3.55 138.75 0.00409367 0.011615 -0.00404917 0.000911448 -0.011591 -0.000925473 0.0 +836 2.75 3.55 146.25 0.00744491 0.00348645 -0.0075166 -0.000905243 -0.00344952 0.000869305 0.0 +837 2.75 3.55 153.75 0.00762023 -0.00783196 -0.00763712 -0.00180907 0.00784858 0.00180265 0.0 +838 2.75 3.55 161.25 0.00271034 -0.0229315 -0.00264761 -0.000890015 0.0229401 0.000888095 0.0 +839 2.75 3.55 168.75 -0.0051415 -0.0382675 0.00514139 0.00125874 0.0383533 -0.00131918 0.0 +840 2.75 3.55 176.25 -0.0109249 -0.0480268 0.0109626 0.00300256 0.0480665 -0.00301775 0.0 +841 2.75 3.65 3.75 -5.4585 2.19054 5.4585 46.1523 -2.19054 -46.1523 0.0 +842 2.75 3.65 11.25 -3.66097 1.22096 3.66097 25.7483 -1.22096 -25.7483 0.0 +843 2.75 3.65 18.75 -1.63156 0.409151 1.63156 8.91799 -0.409152 -8.91799 0.0 +844 2.75 3.65 26.25 -0.435259 0.123143 0.435261 1.99397 -0.123144 -1.99397 0.0 +845 2.75 3.65 33.75 -0.0493642 0.0652704 0.0493648 0.328683 -0.0652688 -0.328684 0.0 +846 2.75 3.65 41.25 -0.0146925 0.0282769 0.0146967 0.0813637 -0.0282736 -0.0813666 0.0 +847 2.75 3.65 48.75 -0.0246544 0.00490522 0.0246565 0.0166878 -0.00490432 -0.0166888 0.0 +848 2.75 3.65 56.25 -0.0139125 0.00395284 0.0139089 -0.00867723 -0.00395188 0.00867599 0.0 +849 2.75 3.65 63.75 -0.00270241 0.00619066 0.00270068 -0.00571762 -0.00619525 0.00571944 0.0 +850 2.75 3.65 71.25 0.000519918 0.00471435 -0.000521654 -8.15984e-06 -0.00471422 7.2579e-06 0.0 +851 2.75 3.65 78.75 0.000501459 0.00398609 -0.00050026 0.000797399 -0.00398918 -0.000797502 0.0 +852 2.75 3.65 86.25 -4.4671e-05 0.00352149 4.27284e-05 0.000514162 -0.00352011 -0.000514185 0.0 +853 2.75 3.65 93.75 -0.000889969 0.00110883 0.000890202 0.00115235 -0.00110879 -0.00115223 0.0 +854 2.75 3.65 101.25 -0.00151239 -0.00165277 0.00151236 0.00181475 0.00164834 -0.00181365 0.0 +855 2.75 3.65 108.75 -0.00161992 -0.00273717 0.00161755 0.00169929 0.00273792 -0.00169984 0.0 +856 2.75 3.65 116.25 -0.00158692 -0.00271981 0.00158207 0.00119301 0.00272293 -0.00119423 0.0 +857 2.75 3.65 123.75 -0.00161004 -0.0028994 0.00160522 0.000901196 0.00289974 -0.000900406 0.0 +858 2.75 3.65 131.25 -0.00135618 -0.00318701 0.00134929 0.000817217 0.00318514 -0.000815958 0.0 +859 2.75 3.65 138.75 -0.000562397 -0.00258908 0.000562926 0.000632375 0.00259618 -0.000635132 0.0 +860 2.75 3.65 146.25 0.000398525 -0.000673377 -0.000405592 0.000326015 0.000673344 -0.000326095 0.0 +861 2.75 3.65 153.75 0.000850024 0.00202598 -0.000855047 0.000185369 -0.00202081 -0.000188642 0.0 +862 2.75 3.65 161.25 0.000434663 0.00458686 -0.000435573 0.000417059 -0.00458533 -0.000417937 0.0 +863 2.75 3.65 168.75 -0.000552814 0.00638533 0.000542524 0.000898487 -0.00637922 -0.0009015 0.0 +864 2.75 3.65 176.25 -0.00133582 0.00725755 0.00133015 0.00128127 -0.0072543 -0.00128197 0.0 +865 2.85 2.55 3.75 -449.454 -941.562 449.454 9549.73 941.562 -9549.73 0.0 +866 2.85 2.55 11.25 -203.687 -668.13 203.687 3736.46 668.13 -3736.46 0.0 +867 2.85 2.55 18.75 -12.9246 -383.103 12.9246 1213.6 383.103 -1213.6 0.0 +868 2.85 2.55 26.25 63.1921 -179.462 -63.1921 299.966 179.462 -299.966 0.0 +869 2.85 2.55 33.75 62.6546 -65.7116 -62.6546 36.4372 65.7116 -36.4372 0.0 +870 2.85 2.55 41.25 37.3635 -15.6969 -37.3635 -9.14011 15.6969 9.14011 0.0 +871 2.85 2.55 48.75 16.895 0.618772 -16.8951 -7.08679 -0.618757 7.08678 0.0 +872 2.85 2.55 56.25 6.97832 3.39374 -6.97835 -3.15346 -3.39374 3.15347 0.0 +873 2.85 2.55 63.75 3.27315 2.52802 -3.27315 -1.83047 -2.52803 1.83048 0.0 +874 2.85 2.55 71.25 1.70047 1.62582 -1.70071 -1.50656 -1.62582 1.50656 0.0 +875 2.85 2.55 78.75 0.749832 1.27937 -0.749875 -1.51872 -1.27941 1.51871 0.0 +876 2.85 2.55 86.25 0.164393 1.07494 -0.164439 -1.55346 -1.07491 1.55346 0.0 +877 2.85 2.55 93.75 -0.138619 0.673196 0.138741 -1.36215 -0.67314 1.36215 0.0 +878 2.85 2.55 101.25 -0.256642 0.101433 0.256803 -0.949432 -0.10153 0.949443 0.0 +879 2.85 2.55 108.75 -0.221358 -0.430558 0.221453 -0.50286 0.43059 0.502868 0.0 +880 2.85 2.55 116.25 -0.00716267 -0.763914 0.00707724 -0.182642 0.763996 0.182594 0.0 +881 2.85 2.55 123.75 0.389318 -0.868932 -0.38922 -0.0254116 0.869042 0.0254047 0.0 +882 2.85 2.55 131.25 0.89597 -0.814762 -0.896002 0.0246925 0.814838 -0.0247272 0.0 +883 2.85 2.55 138.75 1.38115 -0.710613 -1.3812 0.0482113 0.710584 -0.0481961 0.0 +884 2.85 2.55 146.25 1.7166 -0.656942 -1.71663 0.102514 0.657017 -0.102563 0.0 +885 2.85 2.55 153.75 1.84068 -0.706888 -1.84082 0.204441 0.706832 -0.204425 0.0 +886 2.85 2.55 161.25 1.78401 -0.848447 -1.78392 0.335056 0.848436 -0.335074 0.0 +887 2.85 2.55 168.75 1.64517 -1.0163 -1.64523 0.455943 1.01631 -0.455929 0.0 +888 2.85 2.55 176.25 1.53852 -1.12802 -1.53859 0.528256 1.12801 -0.528249 0.0 +889 2.85 2.65 3.75 -736.234 -953.145 736.234 15002.2 953.145 -15002.2 0.0 +890 2.85 2.65 11.25 -383.861 -632.529 383.861 4732.78 632.529 -4732.78 0.0 +891 2.85 2.65 18.75 -120.397 -336.411 120.397 1474.26 336.411 -1474.26 0.0 +892 2.85 2.65 26.25 1.63758 -143.419 -1.63759 371.726 143.419 -371.726 0.0 +893 2.85 2.65 33.75 28.1679 -47.6669 -28.1678 57.9974 47.6669 -57.9974 0.0 +894 2.85 2.65 41.25 18.5052 -11.7053 -18.5053 -0.0411589 11.7053 0.0411506 0.0 +895 2.85 2.65 48.75 6.98344 -1.71526 -6.98349 -2.25925 1.71528 2.25926 0.0 +896 2.85 2.65 56.25 1.90515 0.189804 -1.9051 -0.694423 -0.189827 0.694421 0.0 +897 2.85 2.65 63.75 0.644706 0.289163 -0.644765 -0.553254 -0.289196 0.553251 0.0 +898 2.85 2.65 71.25 0.358032 0.188047 -0.358068 -0.577658 -0.187995 0.577686 0.0 +899 2.85 2.65 78.75 0.193029 0.186045 -0.193065 -0.576896 -0.186053 0.576887 0.0 +900 2.85 2.65 86.25 0.118081 0.206903 -0.117948 -0.590427 -0.206951 0.590426 0.0 +901 2.85 2.65 93.75 0.116313 0.137487 -0.116341 -0.523115 -0.137426 0.523116 0.0 +902 2.85 2.65 101.25 0.127124 -0.0206052 -0.127264 -0.356029 0.020677 0.356027 0.0 +903 2.85 2.65 108.75 0.134169 -0.192715 -0.134356 -0.167112 0.192721 0.16712 0.0 +904 2.85 2.65 116.25 0.166274 -0.317368 -0.166229 -0.0278194 0.317368 0.02781 0.0 +905 2.85 2.65 123.75 0.250031 -0.376343 -0.250195 0.044687 0.376311 -0.0446765 0.0 +906 2.85 2.65 131.25 0.37155 -0.389541 -0.371651 0.0749583 0.389552 -0.0749598 0.0 +907 2.85 2.65 138.75 0.472028 -0.404165 -0.471849 0.101639 0.404085 -0.101599 0.0 +908 2.85 2.65 146.25 0.482744 -0.473853 -0.482714 0.154822 0.473671 -0.154746 0.0 +909 2.85 2.65 153.75 0.372903 -0.626739 -0.372891 0.24309 0.626702 -0.24306 0.0 +910 2.85 2.65 161.25 0.172204 -0.842652 -0.172283 0.351704 0.842593 -0.351702 0.0 +911 2.85 2.65 168.75 -0.0401177 -1.05637 0.0403128 0.45108 1.05642 -0.451106 0.0 +912 2.85 2.65 176.25 -0.17528 -1.18958 0.175428 0.510384 1.18961 -0.5104 0.0 +913 2.85 2.75 3.75 -979.272 -927.69 979.272 22134.5 927.69 -22134.5 0.0 +914 2.85 2.75 11.25 -526.991 -579.811 526.991 5507.99 579.811 -5507.99 0.0 +915 2.85 2.75 18.75 -204.787 -287.701 204.787 1660.86 287.701 -1660.86 0.0 +916 2.85 2.75 26.25 -45.4274 -109.617 45.4273 419.099 109.617 -419.099 0.0 +917 2.85 2.75 33.75 3.4094 -30.3253 -3.40934 70.6375 30.3253 -70.6375 0.0 +918 2.85 2.75 41.25 6.54385 -5.89301 -6.54392 4.65436 5.89304 -4.65435 0.0 +919 2.85 2.75 48.75 1.87015 -1.12692 -1.87015 -0.0807475 1.12691 0.0807413 0.0 +920 2.85 2.75 56.25 -0.0855468 -0.433007 0.085563 0.253215 0.433018 -0.253203 0.0 +921 2.85 2.75 63.75 -0.193076 -0.180261 0.193218 -0.116602 0.180287 0.11663 0.0 +922 2.85 2.75 71.25 -0.0627372 -0.0669432 0.0628705 -0.266699 0.0669458 0.266713 0.0 +923 2.85 2.75 78.75 -0.00113364 -0.000718484 0.00128081 -0.256413 0.000816792 0.25642 0.0 +924 2.85 2.75 86.25 0.0719457 0.0756041 -0.0719355 -0.25934 -0.0756465 0.25934 0.0 +925 2.85 2.75 93.75 0.150932 0.126391 -0.150887 -0.242532 -0.126415 0.242533 0.0 +926 2.85 2.75 101.25 0.19142 0.122864 -0.191283 -0.177304 -0.122828 0.177291 0.0 +927 2.85 2.75 108.75 0.179151 0.072715 -0.179217 -0.0881976 -0.0726424 0.0881763 0.0 +928 2.85 2.75 116.25 0.132856 -0.00182507 -0.132993 -0.00716005 0.00182425 0.0071526 0.0 +929 2.85 2.75 123.75 0.0849914 -0.0757887 -0.0849411 0.0491728 0.0758462 -0.0491697 0.0 +930 2.85 2.75 131.25 0.0493045 -0.137104 -0.0494332 0.0829233 0.137118 -0.0829226 0.0 +931 2.85 2.75 138.75 0.00591187 -0.201372 -0.00575361 0.111436 0.201482 -0.11145 0.0 +932 2.85 2.75 146.25 -0.0859415 -0.304683 0.0860687 0.155414 0.304665 -0.155395 0.0 +933 2.85 2.75 153.75 -0.248069 -0.47076 0.248108 0.224424 0.470972 -0.224532 0.0 +934 2.85 2.75 161.25 -0.459817 -0.68392 0.459953 0.309867 0.68373 -0.309803 0.0 +935 2.85 2.75 168.75 -0.661906 -0.887629 0.661947 0.389136 0.887641 -0.389112 0.0 +936 2.85 2.75 176.25 -0.785422 -1.01291 0.785357 0.436894 1.01305 -0.436953 0.0 +937 2.85 2.85 3.75 -1116.76 -835.91 1116.76 26640.2 835.91 -26640.2 0.0 +938 2.85 2.85 11.25 -610.386 -506.696 610.386 5875.84 506.696 -5875.84 0.0 +939 2.85 2.85 18.75 -255.208 -239.613 255.208 1744.42 239.613 -1744.42 0.0 +940 2.85 2.85 26.25 -73.7604 -82.5484 73.7603 437.327 82.5484 -437.327 0.0 +941 2.85 2.85 33.75 -11.1104 -18.0796 11.1103 74.9581 18.0796 -74.9581 0.0 +942 2.85 2.85 41.25 0.228715 -1.87052 -0.228784 6.31518 1.87054 -6.31516 0.0 +943 2.85 2.85 48.75 -0.186912 -0.383005 0.186932 0.552533 0.382981 -0.552553 0.0 +944 2.85 2.85 56.25 -0.516548 -0.486964 0.51651 0.427331 0.486994 -0.427316 0.0 +945 2.85 2.85 63.75 -0.277336 -0.279457 0.277442 -0.0294235 0.279516 0.0294254 0.0 +946 2.85 2.85 71.25 -0.12864 -0.127184 0.128869 -0.180718 0.127225 0.180733 0.0 +947 2.85 2.85 78.75 -0.0484987 -0.0475193 0.0484573 -0.172173 0.0474804 0.172167 0.0 +948 2.85 2.85 86.25 0.047169 0.0422314 -0.0471278 -0.173173 -0.0422364 0.173175 0.0 +949 2.85 2.85 93.75 0.132895 0.126705 -0.132882 -0.167927 -0.126598 0.167928 0.0 +950 2.85 2.85 101.25 0.176042 0.170333 -0.17625 -0.134397 -0.170485 0.134408 0.0 +951 2.85 2.85 108.75 0.163576 0.157905 -0.16355 -0.0779511 -0.157842 0.0779731 0.0 +952 2.85 2.85 116.25 0.101997 0.0960507 -0.102078 -0.014347 -0.0959807 0.0143824 0.0 +953 2.85 2.85 123.75 0.0206725 0.0134256 -0.0205836 0.0381676 -0.0135693 -0.0381435 0.0 +954 2.85 2.85 131.25 -0.0539648 -0.0618543 0.0539695 0.071669 0.061813 -0.0716401 0.0 +955 2.85 2.85 138.75 -0.126558 -0.13291 0.126595 0.096029 0.132846 -0.0960093 0.0 +956 2.85 2.85 146.25 -0.226905 -0.229729 0.2268 0.129945 0.229804 -0.130004 0.0 +957 2.85 2.85 153.75 -0.375777 -0.37653 0.375708 0.184542 0.376441 -0.184502 0.0 +958 2.85 2.85 161.25 -0.55951 -0.56228 0.559638 0.254398 0.562318 -0.254441 0.0 +959 2.85 2.85 168.75 -0.731663 -0.739479 0.731781 0.320527 0.739524 -0.32053 0.0 +960 2.85 2.85 176.25 -0.836402 -0.848187 0.836322 0.360778 0.848245 -0.36086 0.0 +961 2.85 2.95 3.75 -1111.67 -671.504 1111.67 23382.6 671.504 -23382.6 0.0 +962 2.85 2.95 11.25 -624.121 -411.338 624.121 5761.08 411.338 -5761.08 0.0 +963 2.85 2.95 18.75 -267.855 -190.585 267.855 1715.29 190.585 -1715.29 0.0 +964 2.85 2.95 26.25 -82.9178 -61.5016 82.9177 426.265 61.5016 -426.265 0.0 +965 2.85 2.95 33.75 -16.5392 -10.9568 16.5393 72.4347 10.9568 -72.4348 0.0 +966 2.85 2.95 41.25 -2.05368 -0.128524 2.05363 6.25085 0.128465 -6.25081 0.0 +967 2.85 2.95 48.75 -0.636623 -0.11763 0.63655 0.514257 0.117589 -0.514248 0.0 +968 2.85 2.95 56.25 -0.408465 -0.491652 0.408393 0.327192 0.491696 -0.327194 0.0 +969 2.85 2.95 63.75 -0.201297 -0.331339 0.201309 -0.0209138 0.331453 0.0209243 0.0 +970 2.85 2.95 71.25 -0.130914 -0.18282 0.130989 -0.130552 0.182746 0.130536 0.0 +971 2.85 2.95 78.75 -0.0608924 -0.0898709 0.0607915 -0.139463 0.0899889 0.139453 0.0 +972 2.85 2.95 86.25 0.0345738 0.00746434 -0.0344701 -0.148244 -0.00754141 0.148234 0.0 +973 2.85 2.95 93.75 0.111119 0.0976325 -0.1113 -0.142909 -0.0978809 0.142911 0.0 +974 2.85 2.95 101.25 0.151941 0.155503 -0.151976 -0.117111 -0.15543 0.11711 0.0 +975 2.85 2.95 108.75 0.145751 0.160353 -0.145553 -0.0726376 -0.160204 0.0725882 0.0 +976 2.85 2.95 116.25 0.0915158 0.110131 -0.0916919 -0.0182529 -0.110235 0.0182768 0.0 +977 2.85 2.95 123.75 0.0152377 0.0331448 -0.0151991 0.0284008 -0.0330236 -0.0284138 0.0 +978 2.85 2.95 131.25 -0.0546463 -0.0389944 0.0545777 0.0573967 0.038874 -0.0573186 0.0 +979 2.85 2.95 138.75 -0.1187 -0.104823 0.118718 0.0772008 0.104764 -0.077174 0.0 +980 2.85 2.95 146.25 -0.204059 -0.191464 0.203984 0.105389 0.191495 -0.105464 0.0 +981 2.85 2.95 153.75 -0.330797 -0.320794 0.330923 0.152322 0.320747 -0.152296 0.0 +982 2.85 2.95 161.25 -0.488129 -0.483077 0.488236 0.213067 0.483198 -0.213056 0.0 +983 2.85 2.95 168.75 -0.635592 -0.636761 0.635765 0.270692 0.636908 -0.270728 0.0 +984 2.85 2.95 176.25 -0.725217 -0.730636 0.725177 0.305753 0.730739 -0.305825 0.0 +985 2.85 3.05 3.75 -991.274 -468.465 991.274 17235.6 468.465 -17235.6 0.0 +986 2.85 3.05 11.25 -573.802 -298.761 573.802 5231.29 298.761 -5231.29 0.0 +987 2.85 3.05 18.75 -246.923 -139.586 246.923 1584.79 139.586 -1584.79 0.0 +988 2.85 3.05 26.25 -76.3431 -44.1795 76.3432 390.143 44.1795 -390.143 0.0 +989 2.85 3.05 33.75 -15.4296 -7.24375 15.4295 64.979 7.24375 -64.979 0.0 +990 2.85 3.05 41.25 -1.99485 0.0867799 1.99484 5.41934 -0.0867462 -5.41932 0.0 +991 2.85 3.05 48.75 -0.466876 -0.194309 0.466823 0.319783 0.194325 -0.319796 0.0 +992 2.85 3.05 56.25 -0.247864 -0.498556 0.247809 0.194278 0.49852 -0.194293 0.0 +993 2.85 3.05 63.75 -0.160838 -0.374237 0.160788 -0.00452736 0.374195 0.00453271 0.0 +994 2.85 3.05 71.25 -0.138726 -0.24602 0.138704 -0.0733155 0.246086 0.0732922 0.0 +995 2.85 3.05 78.75 -0.0645345 -0.137898 0.0646711 -0.10598 0.137892 0.105997 0.0 +996 2.85 3.05 86.25 0.0266641 -0.0289336 -0.0265391 -0.125218 0.0289426 0.125216 0.0 +997 2.85 3.05 93.75 0.0897391 0.0651921 -0.0895906 -0.118986 -0.0650775 0.118989 0.0 +998 2.85 3.05 101.25 0.124171 0.131613 -0.123901 -0.0965881 -0.131532 0.0965755 0.0 +999 2.85 3.05 108.75 0.12195 0.150621 -0.122014 -0.0600585 -0.150659 0.0600667 0.0 +1000 2.85 3.05 116.25 0.0781014 0.115484 -0.0778585 -0.0147582 -0.115247 0.0147179 0.0 +1001 2.85 3.05 123.75 0.0150628 0.0506384 -0.0150425 0.0236392 -0.0506457 -0.023627 0.0 +1002 2.85 3.05 131.25 -0.0400525 -0.0131487 0.0399632 0.0466779 0.0130289 -0.0466525 0.0 +1003 2.85 3.05 138.75 -0.0895184 -0.0739947 0.0894657 0.0627374 0.0740386 -0.0627861 0.0 +1004 2.85 3.05 146.25 -0.15904 -0.155412 0.159469 0.0871229 0.155461 -0.0870861 0.0 +1005 2.85 3.05 153.75 -0.267082 -0.274606 0.267172 0.127796 0.274496 -0.127765 0.0 +1006 2.85 3.05 161.25 -0.401901 -0.419629 0.401826 0.179668 0.41968 -0.179776 0.0 +1007 2.85 3.05 168.75 -0.527756 -0.553697 0.527878 0.228247 0.553582 -0.228199 0.0 +1008 2.85 3.05 176.25 -0.604226 -0.634443 0.604143 0.25757 0.634535 -0.257606 0.0 +1009 2.85 3.15 3.75 -806.102 -265.526 806.102 12165.1 265.526 -12165.1 0.0 +1010 2.85 3.15 11.25 -477.611 -181.207 477.611 4442.53 181.207 -4442.53 0.0 +1011 2.85 3.15 18.75 -202.862 -88.6434 202.862 1380.02 88.6434 -1380.02 0.0 +1012 2.85 3.15 26.25 -60.0987 -29.0515 60.0987 336.188 29.0515 -336.188 0.0 +1013 2.85 3.15 33.75 -10.968 -5.19052 10.9681 54.504 5.19046 -54.5041 0.0 +1014 2.85 3.15 41.25 -1.05094 -0.312006 1.05086 4.33851 0.311981 -4.33846 0.0 +1015 2.85 3.15 48.75 -0.213743 -0.352928 0.213728 0.164252 0.352886 -0.164263 0.0 +1016 2.85 3.15 56.25 -0.154279 -0.471869 0.154225 0.093218 0.47198 -0.0932153 0.0 +1017 2.85 3.15 63.75 -0.141604 -0.388768 0.141653 0.0126807 0.388761 -0.0126585 0.0 +1018 2.85 3.15 71.25 -0.130127 -0.294635 0.130139 -0.0263984 0.294556 0.0263117 0.0 +1019 2.85 3.15 78.75 -0.0550277 -0.180465 0.0550203 -0.073421 0.180561 0.0734297 0.0 +1020 2.85 3.15 86.25 0.0209399 -0.0643701 -0.0207919 -0.0962653 0.0644703 0.0962704 0.0 +1021 2.85 3.15 93.75 0.0659847 0.032253 -0.0661012 -0.0898107 -0.0322317 0.0898055 0.0 +1022 2.85 3.15 101.25 0.0929454 0.104785 -0.092671 -0.0721152 -0.104858 0.0721226 0.0 +1023 2.85 3.15 108.75 0.0923534 0.135562 -0.0925163 -0.0438144 -0.135405 0.0437756 0.0 +1024 2.85 3.15 116.25 0.0576885 0.115491 -0.0573926 -0.00846383 -0.115386 0.00845008 0.0 +1025 2.85 3.15 123.75 0.00835101 0.0659492 -0.00830537 0.0204391 -0.0659776 -0.020473 0.0 +1026 2.85 3.15 131.25 -0.0330033 0.0137364 0.0330472 0.0368218 -0.0138501 -0.0368043 0.0 +1027 2.85 3.15 138.75 -0.0696344 -0.0403338 0.0693805 0.0485567 0.0403552 -0.0486203 0.0 +1028 2.85 3.15 146.25 -0.123646 -0.114761 0.123498 0.0676978 0.114704 -0.0677341 0.0 +1029 2.85 3.15 153.75 -0.209228 -0.220305 0.209164 0.0995682 0.220152 -0.0994412 0.0 +1030 2.85 3.15 161.25 -0.316292 -0.3444 0.316446 0.139549 0.344477 -0.139654 0.0 +1031 2.85 3.15 168.75 -0.416182 -0.455814 0.416144 0.176494 0.455746 -0.176411 0.0 +1032 2.85 3.15 176.25 -0.476042 -0.521785 0.476 0.198621 0.521756 -0.198557 0.0 +1033 2.85 3.25 3.75 -599.006 -91.2154 599.006 8491.46 91.2155 -8491.46 0.0 +1034 2.85 3.25 11.25 -359.488 -74.6727 359.488 3559.49 74.6727 -3559.49 0.0 +1035 2.85 3.25 18.75 -148.661 -42.6777 148.661 1135.12 42.6777 -1135.12 0.0 +1036 2.85 3.25 26.25 -40.7166 -16.0322 40.7166 272.812 16.0322 -272.812 0.0 +1037 2.85 3.25 33.75 -5.97051 -3.67296 5.97039 42.68 3.67297 -42.68 0.0 +1038 2.85 3.25 41.25 -0.182688 -0.670468 0.182753 3.20438 0.670474 -3.20441 0.0 +1039 2.85 3.25 48.75 -0.0747798 -0.425329 0.0748223 0.0657742 0.425365 -0.0658515 0.0 +1040 2.85 3.25 56.25 -0.0982934 -0.398958 0.0982134 0.0220039 0.399004 -0.0220176 0.0 +1041 2.85 3.25 63.75 -0.100813 -0.360976 0.100898 0.0133885 0.360825 -0.0133447 0.0 +1042 2.85 3.25 71.25 -0.0945309 -0.307881 0.0945963 -0.00420512 0.307879 0.00421061 0.0 +1043 2.85 3.25 78.75 -0.0366795 -0.207353 0.0366632 -0.0482296 0.20741 0.0482248 0.0 +1044 2.85 3.25 86.25 0.0149887 -0.0970942 -0.0150626 -0.0654125 0.0972336 0.0654212 0.0 +1045 2.85 3.25 93.75 0.0443972 -0.00226785 -0.0443982 -0.0599009 0.00218497 0.0598939 0.0 +1046 2.85 3.25 101.25 0.0653842 0.0743707 -0.0655475 -0.0488889 -0.074459 0.048906 0.0 +1047 2.85 3.25 108.75 0.0673028 0.115282 -0.0672563 -0.0293956 -0.115121 0.0293551 0.0 +1048 2.85 3.25 116.25 0.041101 0.109791 -0.041206 -0.00426137 -0.110092 0.0043584 0.0 +1049 2.85 3.25 123.75 0.0030353 0.0756594 -0.00306469 0.0153374 -0.0756692 -0.0152926 0.0 +1050 2.85 3.25 131.25 -0.02782 0.0350328 0.0279329 0.0256415 -0.0350474 -0.0256136 0.0 +1051 2.85 3.25 138.75 -0.0538742 -0.00966993 0.0537414 0.0330967 0.00970634 -0.033162 0.0 +1052 2.85 3.25 146.25 -0.0905357 -0.070843 0.0905608 0.0460454 0.0707919 -0.045972 0.0 +1053 2.85 3.25 153.75 -0.14887 -0.15562 0.148901 0.0676893 0.155618 -0.067644 0.0 +1054 2.85 3.25 161.25 -0.22216 -0.252709 0.22219 0.0946651 0.252847 -0.0946834 0.0 +1055 2.85 3.25 168.75 -0.290593 -0.338691 0.290381 0.119487 0.33884 -0.119576 0.0 +1056 2.85 3.25 176.25 -0.3308 -0.388801 0.331427 0.13433 0.388853 -0.134296 0.0 +1057 2.85 3.35 3.75 -386.528 33.5021 386.528 5634.36 -33.5021 -5634.36 0.0 +1058 2.85 3.35 11.25 -232.313 5.67109 232.313 2604.32 -5.67109 -2604.32 0.0 +1059 2.85 3.35 18.75 -91.9697 -7.27714 91.9697 849.253 7.27716 -849.253 0.0 +1060 2.85 3.35 26.25 -22.1609 -5.78613 22.161 200.148 5.78612 -200.148 0.0 +1061 2.85 3.35 33.75 -1.98022 -2.12648 1.98024 29.7672 2.12648 -29.7672 0.0 +1062 2.85 3.35 41.25 0.243179 -0.637377 -0.243178 2.04091 0.637344 -2.04094 0.0 +1063 2.85 3.35 48.75 -0.0543799 -0.361761 0.0543227 0.0128587 0.36182 -0.0128186 0.0 +1064 2.85 3.35 56.25 -0.053243 -0.315179 0.0533037 -0.0175621 0.315135 0.0175499 0.0 +1065 2.85 3.35 63.75 -0.0463022 -0.314223 0.0463235 0.00311652 0.314212 -0.00320789 0.0 +1066 2.85 3.35 71.25 -0.0532898 -0.296211 0.0534137 -0.000155585 0.29602 0.000135295 0.0 +1067 2.85 3.35 78.75 -0.0212587 -0.22246 0.0212696 -0.0288431 0.222559 0.0288631 0.0 +1068 2.85 3.35 86.25 0.00889954 -0.125343 -0.00894718 -0.0369629 0.125394 0.0369644 0.0 +1069 2.85 3.35 93.75 0.0262325 -0.0313862 -0.0263584 -0.0340369 0.0311982 0.0340506 0.0 +1070 2.85 3.35 101.25 0.0415953 0.0498466 -0.0414478 -0.0293926 -0.0498895 0.0293844 0.0 +1071 2.85 3.35 108.75 0.0450451 0.0995096 -0.0449831 -0.0178232 -0.0997351 0.0178778 0.0 +1072 2.85 3.35 116.25 0.028077 0.105738 -0.0281433 -0.00230595 -0.105795 0.00235292 0.0 +1073 2.85 3.35 123.75 0.00116088 0.0815732 -0.000852722 0.00942911 -0.0816637 -0.00933158 0.0 +1074 2.85 3.35 131.25 -0.0216069 0.0479562 0.0217652 0.0156247 -0.0476846 -0.0157325 0.0 +1075 2.85 3.35 138.75 -0.0380909 0.0111308 0.0380157 0.0201099 -0.0113054 -0.0200733 0.0 +1076 2.85 3.35 146.25 -0.0570642 -0.0359703 0.0570676 0.0273788 0.0359094 -0.0273053 0.0 +1077 2.85 3.35 153.75 -0.0874487 -0.0993169 0.0874531 0.0394423 0.0994037 -0.0393806 0.0 +1078 2.85 3.35 161.25 -0.127843 -0.172492 0.127557 0.054893 0.172359 -0.0549082 0.0 +1079 2.85 3.35 168.75 -0.166559 -0.237682 0.166614 0.0695468 0.237554 -0.0695277 0.0 +1080 2.85 3.35 176.25 -0.191 -0.276276 0.19078 0.0784958 0.276377 -0.0785403 0.0 +1081 2.85 3.45 3.75 -161.588 70.6187 161.588 2741.33 -70.6187 -2741.33 0.0 +1082 2.85 3.45 11.25 -95.5114 34.9158 95.5114 1355.81 -34.9158 -1355.81 0.0 +1083 2.85 3.45 18.75 -34.6683 8.27267 34.6684 448.865 -8.27268 -448.865 0.0 +1084 2.85 3.45 26.25 -6.16493 -0.139582 6.16494 102.857 0.139618 -102.857 0.0 +1085 2.85 3.45 33.75 0.422229 -0.589501 -0.422207 14.2949 0.589425 -14.2948 0.0 +1086 2.85 3.45 41.25 0.271293 -0.179716 -0.271334 0.90093 0.179724 -0.900935 0.0 +1087 2.85 3.45 48.75 -0.0728654 -0.170806 0.0729137 0.0252674 0.1707 -0.025252 0.0 +1088 2.85 3.45 56.25 -0.0333377 -0.213039 0.0332742 -0.0156257 0.212999 0.0155434 0.0 +1089 2.85 3.45 63.75 -0.0152903 -0.227014 0.0151849 -0.00379666 0.227029 0.00381385 0.0 +1090 2.85 3.45 71.25 -0.0235692 -0.224061 0.0235144 -0.000903934 0.22407 0.000862594 0.0 +1091 2.85 3.45 78.75 -0.00941949 -0.180683 0.00940751 -0.0122182 0.180688 0.0122354 0.0 +1092 2.85 3.45 86.25 0.00386563 -0.108855 -0.00384482 -0.0147672 0.108894 0.0147696 0.0 +1093 2.85 3.45 93.75 0.00738598 -0.0352297 -0.00746621 -0.0134146 0.0352537 0.0134097 0.0 +1094 2.85 3.45 101.25 0.0113163 0.0272447 -0.0112177 -0.0108832 -0.027162 0.0109037 0.0 +1095 2.85 3.45 108.75 0.0143535 0.0674421 -0.0144727 -0.00585159 -0.0674317 0.00583747 0.0 +1096 2.85 3.45 116.25 0.0102386 0.0775271 -0.0102071 -0.000339014 -0.0776401 0.000348303 0.0 +1097 2.85 3.45 123.75 2.58732e-05 0.0640245 -4.10589e-05 0.00384167 -0.0641439 -0.00376402 0.0 +1098 2.85 3.45 131.25 -0.00902431 0.0415235 0.00900971 0.00644527 -0.0416055 -0.00641701 0.0 +1099 2.85 3.45 138.75 -0.0130822 0.0181696 0.0131824 0.00773263 -0.0182103 -0.00771311 0.0 +1100 2.85 3.45 146.25 -0.0161839 -0.00998922 0.016076 0.00888536 0.00978667 -0.00879601 0.0 +1101 2.85 3.45 153.75 -0.0242202 -0.0483692 0.0241807 0.011811 0.0483358 -0.0118472 0.0 +1102 2.85 3.45 161.25 -0.0396328 -0.0952296 0.0395522 0.0172745 0.0951821 -0.0172176 0.0 +1103 2.85 3.45 168.75 -0.0578248 -0.139644 0.0577311 0.0236934 0.13953 -0.0236387 0.0 +1104 2.85 3.45 176.25 -0.0700834 -0.166806 0.0701114 0.0280544 0.166621 -0.0279388 0.0 +1105 2.85 3.55 3.75 -31.029 33.8429 31.029 807.354 -33.8429 -807.354 0.0 +1106 2.85 3.55 11.25 -16.6941 17.1581 16.6942 418.065 -17.1581 -418.065 0.0 +1107 2.85 3.55 18.75 -3.99472 4.08748 3.9947 139.471 -4.08747 -139.471 0.0 +1108 2.85 3.55 26.25 0.82754 0.00960473 -0.827538 30.9637 -0.00959943 -30.9637 0.0 +1109 2.85 3.55 33.75 0.904557 -0.081934 -0.904543 4.11608 0.0819614 -4.11609 0.0 +1110 2.85 3.55 41.25 0.170681 0.0848305 -0.170682 0.346509 -0.0848039 -0.34653 0.0 +1111 2.85 3.55 48.75 -0.0666717 -0.0106917 0.0666836 0.0541797 0.0106909 -0.0541811 0.0 +1112 2.85 3.55 56.25 -0.0367163 -0.0711844 0.0367427 -0.00758183 0.0712025 0.00758489 0.0 +1113 2.85 3.55 63.75 -0.00980718 -0.0797592 0.00983424 -0.00697712 0.0797424 0.00697812 0.0 +1114 2.85 3.55 71.25 -0.00586824 -0.0828521 0.00590764 -3.50261e-07 0.0828154 -9.47724e-06 0.0 +1115 2.85 3.55 78.75 -0.000602709 -0.0682983 0.000612821 -0.00212227 0.0683145 0.00213184 0.0 +1116 2.85 3.55 86.25 0.000973121 -0.0398569 -0.000961009 -0.00335451 0.0398316 0.00334909 0.0 +1117 2.85 3.55 93.75 -0.00358082 -0.0150889 0.00357048 -0.00152868 0.0150508 0.00152981 0.0 +1118 2.85 3.55 101.25 -0.00603736 0.00394172 0.00605293 0.000730934 -0.00393071 -0.000744155 0.0 +1119 2.85 3.55 108.75 -0.00335262 0.0195109 0.00322804 0.00102238 -0.0194668 -0.00104163 0.0 +1120 2.85 3.55 116.25 0.000444349 0.027755 -0.000387332 8.69624e-05 -0.0277462 -9.75392e-05 0.0 +1121 2.85 3.55 123.75 0.0014088 0.0269113 -0.00138674 -7.73086e-05 -0.0268849 6.29337e-05 0.0 +1122 2.85 3.55 131.25 0.00165964 0.0217477 -0.00165364 0.000223061 -0.0218041 -0.000187964 0.0 +1123 2.85 3.55 138.75 0.00401875 0.0169663 -0.00395318 -0.000703326 -0.016976 0.000717988 0.0 +1124 2.85 3.55 146.25 0.00768509 0.0118145 -0.00765824 -0.00287592 -0.0118411 0.00289573 0.0 +1125 2.85 3.55 153.75 0.00912573 0.00261415 -0.00905729 -0.00443259 -0.00257542 0.00443667 0.0 +1126 2.85 3.55 161.25 0.0057808 -0.0119115 -0.00584887 -0.00390544 0.0118818 0.00391874 0.0 +1127 2.85 3.55 168.75 -0.000422092 -0.0276521 0.000431626 -0.00177835 0.0276894 0.00174946 0.0 +1128 2.85 3.55 176.25 -0.00538109 -0.0379719 0.00540295 7.43942e-05 0.0379802 -5.26705e-05 0.0 +1129 2.85 3.65 3.75 0.117993 2.41395 -0.117994 63.6242 -2.41395 -63.6242 0.0 +1130 2.85 3.65 11.25 0.547196 0.863222 -0.547196 34.0061 -0.86322 -34.0061 0.0 +1131 2.85 3.65 18.75 0.745937 -0.193692 -0.745936 11.4296 0.193693 -11.4296 0.0 +1132 2.85 3.65 26.25 0.543519 -0.28335 -0.54352 2.53726 0.28335 -2.53726 0.0 +1133 2.85 3.65 33.75 0.224853 -0.0795795 -0.224852 0.395802 0.0795803 -0.395805 0.0 +1134 2.85 3.65 41.25 0.0308566 0.0096513 -0.030854 0.0760108 -0.00965396 -0.0760089 0.0 +1135 2.85 3.65 48.75 -0.0200071 0.0114374 0.0200007 0.0152694 -0.0114346 -0.0152666 0.0 +1136 2.85 3.65 56.25 -0.0121781 0.00806958 0.0121778 -0.00463886 -0.00806824 0.00463935 0.0 +1137 2.85 3.65 63.75 -0.00240079 0.00691829 0.00239728 -0.00287853 -0.00691891 0.00287832 0.0 +1138 2.85 3.65 71.25 -0.000113974 0.00344927 0.000114402 0.000925612 -0.00345159 -0.000924517 0.0 +1139 2.85 3.65 78.75 -0.000150972 0.00204618 0.000149514 0.00127176 -0.00204528 -0.00127259 0.0 +1140 2.85 3.65 86.25 -0.00063721 0.00167632 0.000641885 0.000872705 -0.00167479 -0.000872293 0.0 +1141 2.85 3.65 93.75 -0.00144962 -0.000316034 0.00144811 0.00113858 0.000313733 -0.00113842 0.0 +1142 2.85 3.65 101.25 -0.00167523 -0.00216785 0.00167369 0.00123363 0.00216868 -0.00123425 0.0 +1143 2.85 3.65 108.75 -0.00110878 -0.00207464 0.00110977 0.00064396 0.00207751 -0.000643732 0.0 +1144 2.85 3.65 116.25 -0.000764004 -0.00128655 0.000766131 0.000103318 0.00128453 -0.000103182 0.0 +1145 2.85 3.65 123.75 -0.00123412 -0.00134957 0.00123183 0.000216939 0.00135724 -0.000220275 0.0 +1146 2.85 3.65 131.25 -0.00184917 -0.00183778 0.00184664 0.000577507 0.00184059 -0.000579396 0.0 +1147 2.85 3.65 138.75 -0.00163391 -0.00138008 0.00162307 0.000515544 0.00137553 -0.000512344 0.0 +1148 2.85 3.65 146.25 -0.000376327 0.000499681 0.00037387 -6.6379e-06 -0.000506003 1.01884e-05 0.0 +1149 2.85 3.65 153.75 0.00121458 0.00310539 -0.00122162 -0.000485719 -0.00311088 0.000488173 0.0 +1150 2.85 3.65 161.25 0.00238865 0.00543453 -0.0023833 -0.00051915 -0.00542809 0.000516147 0.0 +1151 2.85 3.65 168.75 0.00285962 0.00692717 -0.00285792 -0.000171476 -0.00692344 0.000168255 0.0 +1152 2.85 3.65 176.25 0.00292307 0.00758779 -0.00292581 0.00016883 -0.00759567 -0.000164093 0.0 +1153 2.95 2.55 3.75 -252.721 -1050.76 252.721 6595.19 1050.76 -6595.19 0.0 +1154 2.95 2.55 11.25 -41.1238 -768.829 41.1238 2888.85 768.829 -2888.85 0.0 +1155 2.95 2.55 18.75 118.417 -449.255 -118.417 900.553 449.255 -900.553 0.0 +1156 2.95 2.55 26.25 156.92 -210.895 -156.92 167.43 210.895 -167.43 0.0 +1157 2.95 2.55 33.75 119.104 -74.0526 -119.104 -18.6078 74.0526 18.6078 0.0 +1158 2.95 2.55 41.25 65.7986 -13.1995 -65.7986 -30.6797 13.1995 30.6797 0.0 +1159 2.95 2.55 48.75 29.0332 5.91326 -29.0332 -15.4024 -5.91326 15.4024 0.0 +1160 2.95 2.55 56.25 11.4878 8.02601 -11.4878 -6.73731 -8.026 6.7373 0.0 +1161 2.95 2.55 63.75 4.66214 5.91098 -4.66202 -3.9881 -5.91102 3.98809 0.0 +1162 2.95 2.55 71.25 1.77619 4.12825 -1.77611 -3.46574 -4.12825 3.46573 0.0 +1163 2.95 2.55 78.75 0.151273 3.12532 -0.151223 -3.50261 -3.12532 3.50263 0.0 +1164 2.95 2.55 86.25 -0.848703 2.18442 0.848724 -3.31518 -2.18449 3.31517 0.0 +1165 2.95 2.55 93.75 -1.36638 0.946406 1.36638 -2.63915 -0.946487 2.63915 0.0 +1166 2.95 2.55 101.25 -1.42623 -0.377787 1.42617 -1.69714 0.377648 1.69715 0.0 +1167 2.95 2.55 108.75 -0.982806 -1.42876 0.982806 -0.865233 1.42871 0.865248 0.0 +1168 2.95 2.55 116.25 -0.0278435 -2.03668 0.0278263 -0.352266 2.0367 0.352236 0.0 +1169 2.95 2.55 123.75 1.31816 -2.25352 -1.31823 -0.14086 2.25366 0.140835 0.0 +1170 2.95 2.55 131.25 2.8161 -2.2369 -2.81616 -0.0975587 2.2368 0.0975804 0.0 +1171 2.95 2.55 138.75 4.19661 -2.14695 -4.1966 -0.0893642 2.14695 0.0893633 0.0 +1172 2.95 2.55 146.25 5.25737 -2.09866 -5.25733 -0.0396033 2.09866 0.0396395 0.0 +1173 2.95 2.55 153.75 5.92169 -2.14378 -5.92174 0.0676359 2.14379 -0.0676218 0.0 +1174 2.95 2.55 161.25 6.2371 -2.26995 -6.23714 0.206683 2.26994 -0.206718 0.0 +1175 2.95 2.55 168.75 6.32882 -2.41823 -6.32875 0.334294 2.41818 -0.334278 0.0 +1176 2.95 2.55 176.25 6.33197 -2.5165 -6.33197 0.409999 2.51647 -0.40999 0.0 +1177 2.95 2.65 3.75 -602.404 -1044.08 602.403 10359.8 1044.08 -10359.8 0.0 +1178 2.95 2.65 11.25 -280.258 -724.735 280.258 3883.61 724.735 -3883.61 0.0 +1179 2.95 2.65 18.75 -31.2855 -399.161 31.2855 1185.42 399.161 -1185.42 0.0 +1180 2.95 2.65 26.25 67.6443 -176.276 -67.6443 254.871 176.276 -254.871 0.0 +1181 2.95 2.65 33.75 67.6221 -60.3361 -67.6221 13.3469 60.3361 -13.3469 0.0 +1182 2.95 2.65 41.25 37.2303 -14.1507 -37.2303 -15.1485 14.1507 15.1485 0.0 +1183 2.95 2.65 48.75 14.0035 -0.570849 -14.0035 -7.01654 0.570878 7.01655 0.0 +1184 2.95 2.65 56.25 3.96826 1.75692 -3.96826 -2.30424 -1.75694 2.30425 0.0 +1185 2.95 2.65 63.75 1.03968 1.41412 -1.03973 -1.31005 -1.41411 1.31004 0.0 +1186 2.95 2.65 71.25 0.218951 0.967353 -0.218964 -1.22938 -0.967351 1.22938 0.0 +1187 2.95 2.65 78.75 -0.174997 0.772767 0.175075 -1.2882 -0.772773 1.2882 0.0 +1188 2.95 2.65 86.25 -0.393839 0.559177 0.393914 -1.24166 -0.559238 1.24165 0.0 +1189 2.95 2.65 93.75 -0.47265 0.167892 0.472634 -0.971798 -0.167863 0.971793 0.0 +1190 2.95 2.65 101.25 -0.415086 -0.29444 0.415096 -0.582018 0.294494 0.582025 0.0 +1191 2.95 2.65 108.75 -0.18344 -0.657303 0.1835 -0.251448 0.657204 0.251466 0.0 +1192 2.95 2.65 116.25 0.242862 -0.853042 -0.242735 -0.0667618 0.853138 0.0667293 0.0 +1193 2.95 2.65 123.75 0.816898 -0.9163 -0.817068 -0.00551971 0.916326 0.00551894 0.0 +1194 2.95 2.65 131.25 1.43137 -0.918518 -1.43133 0.000272837 0.918644 -0.000308227 0.0 +1195 2.95 2.65 138.75 1.95867 -0.929005 -1.95862 0.0112189 0.929075 -0.011238 0.0 +1196 2.95 2.65 146.25 2.30364 -0.998983 -2.30361 0.0592927 0.99898 -0.059327 0.0 +1197 2.95 2.65 153.75 2.4381 -1.14713 -2.43811 0.146803 1.14716 -0.146836 0.0 +1198 2.95 2.65 161.25 2.40678 -1.34935 -2.40669 0.254078 1.34942 -0.254097 0.0 +1199 2.95 2.65 168.75 2.30131 -1.54572 -2.3013 0.350716 1.54578 -0.350713 0.0 +1200 2.95 2.65 176.25 2.21842 -1.66688 -2.21834 0.407733 1.66692 -0.407764 0.0 +1201 2.95 2.75 3.75 -921.349 -993.633 921.349 15774.2 993.633 -15774.2 0.0 +1202 2.95 2.75 11.25 -484.503 -651.799 484.503 4799.82 651.799 -4799.82 0.0 +1203 2.95 2.75 18.75 -156.849 -336.509 156.849 1421.48 336.509 -1421.48 0.0 +1204 2.95 2.75 26.25 -5.03783 -135.732 5.03782 322.829 135.732 -322.829 0.0 +1205 2.95 2.75 33.75 28.3547 -41.434 -28.3547 36.1083 41.434 -36.1083 0.0 +1206 2.95 2.75 41.25 17.8836 -9.27057 -17.8837 -5.3871 9.27056 5.38709 0.0 +1207 2.95 2.75 48.75 5.55648 -1.46767 -5.55657 -2.51898 1.46764 2.519 0.0 +1208 2.95 2.75 56.25 0.672106 -0.0883279 -0.672198 -0.334779 0.0883496 0.334765 0.0 +1209 2.95 2.75 63.75 -0.194927 0.0690679 0.194963 -0.280915 -0.0690525 0.280893 0.0 +1210 2.95 2.75 71.25 -0.206856 0.0649187 0.206763 -0.378435 -0.0649176 0.378425 0.0 +1211 2.95 2.75 78.75 -0.186711 0.113908 0.186572 -0.418937 -0.113823 0.418941 0.0 +1212 2.95 2.75 86.25 -0.14961 0.156382 0.149622 -0.426505 -0.156396 0.426506 0.0 +1213 2.95 2.75 93.75 -0.0954388 0.111367 0.0953423 -0.345344 -0.111332 0.345334 0.0 +1214 2.95 2.75 101.25 -0.0328122 0.00794576 0.032972 -0.207227 -0.00797229 0.207241 0.0 +1215 2.95 2.75 108.75 0.054673 -0.0891922 -0.0546091 -0.0841935 0.0892434 0.0841691 0.0 +1216 2.95 2.75 116.25 0.181234 -0.157367 -0.181265 -0.0087282 0.157339 0.00873243 0.0 +1217 2.95 2.75 123.75 0.34012 -0.205051 -0.340198 0.0264405 0.205132 -0.0264545 0.0 +1218 2.95 2.75 131.25 0.502317 -0.247373 -0.502348 0.0429474 0.247218 -0.0428813 0.0 +1219 2.95 2.75 138.75 0.621852 -0.305681 -0.622162 0.0628186 0.305576 -0.0628133 0.0 +1220 2.95 2.75 146.25 0.656682 -0.406771 -0.656592 0.101823 0.406971 -0.101931 0.0 +1221 2.95 2.75 153.75 0.591488 -0.564489 -0.591646 0.163918 0.564573 -0.163963 0.0 +1222 2.95 2.75 161.25 0.454619 -0.760373 -0.454635 0.239232 0.760289 -0.2392 0.0 +1223 2.95 2.75 168.75 0.305915 -0.944156 -0.305938 0.307995 0.944217 -0.308028 0.0 +1224 2.95 2.75 176.25 0.210804 -1.05602 -0.210888 0.349082 1.05601 -0.34907 0.0 +1225 2.95 2.85 3.75 -1152.1 -884.325 1152.1 22433.3 884.325 -22433.3 0.0 +1226 2.95 2.85 11.25 -623.249 -554.368 623.249 5446.55 554.368 -5446.55 0.0 +1227 2.95 2.85 18.75 -243.026 -270.991 243.026 1573.49 270.991 -1573.49 0.0 +1228 2.95 2.85 26.25 -54.9922 -98.9789 54.9921 364.541 98.9789 -364.541 0.0 +1229 2.95 2.85 33.75 2.25373 -25.1037 -2.25376 49.691 25.1036 -49.691 0.0 +1230 2.95 2.85 41.25 6.24999 -4.21281 -6.25004 -0.0158362 4.21279 0.015854 0.0 +1231 2.95 2.85 48.75 1.46896 -0.83917 -1.46896 -0.516745 0.839147 0.51676 0.0 +1232 2.95 2.85 56.25 -0.371828 -0.443561 0.371951 0.300591 0.443459 -0.300568 0.0 +1233 2.95 2.85 63.75 -0.390584 -0.244547 0.39061 -0.00488443 0.244578 0.00485482 0.0 +1234 2.95 2.85 71.25 -0.227523 -0.141639 0.22751 -0.135266 0.141661 0.135279 0.0 +1235 2.95 2.85 78.75 -0.13169 -0.0500631 0.131746 -0.158901 0.0499834 0.158894 0.0 +1236 2.95 2.85 86.25 -0.0383226 0.048949 0.0384519 -0.178632 -0.048876 0.178639 0.0 +1237 2.95 2.85 93.75 0.0424506 0.108468 -0.0424569 -0.162363 -0.108402 0.162362 0.0 +1238 2.95 2.85 101.25 0.0951102 0.123599 -0.0950067 -0.114705 -0.123527 0.114684 0.0 +1239 2.95 2.85 108.75 0.118329 0.108127 -0.118294 -0.059624 -0.107977 0.0595957 0.0 +1240 2.95 2.85 116.25 0.115747 0.0657013 -0.115496 -0.00921956 -0.0657449 0.00923083 0.0 +1241 2.95 2.85 123.75 0.0997312 0.00632325 -0.0998366 0.0300757 -0.00638085 -0.0300905 0.0 +1242 2.95 2.85 131.25 0.0820412 -0.0544768 -0.0820477 0.0562421 0.0545567 -0.0562266 0.0 +1243 2.95 2.85 138.75 0.0543383 -0.118472 -0.0543542 0.0766667 0.118496 -0.0766528 0.0 +1244 2.95 2.85 146.25 -0.00685308 -0.206793 0.00693165 0.104336 0.206705 -0.104299 0.0 +1245 2.95 2.85 153.75 -0.116153 -0.336589 0.116017 0.147362 0.336516 -0.147325 0.0 +1246 2.95 2.85 161.25 -0.2593 -0.497512 0.259351 0.201965 0.497407 -0.201901 0.0 +1247 2.95 2.85 168.75 -0.396397 -0.649488 0.396361 0.253751 0.649379 -0.253726 0.0 +1248 2.95 2.85 176.25 -0.480441 -0.742274 0.480289 0.285392 0.74211 -0.285331 0.0 +1249 2.95 2.95 3.75 -1235.79 -703.549 1235.79 26126.6 703.549 -26126.6 0.0 +1250 2.95 2.95 11.25 -677.675 -435.614 677.675 5671.31 435.614 -5671.31 0.0 +1251 2.95 2.95 18.75 -281.882 -206.464 281.882 1620.38 206.464 -1620.38 0.0 +1252 2.95 2.95 26.25 -80.142 -69.4145 80.142 377.367 69.4145 -377.367 0.0 +1253 2.95 2.95 33.75 -11.535 -14.0454 11.535 55.1741 14.0454 -55.1741 0.0 +1254 2.95 2.95 41.25 0.444691 -1.06867 -0.444678 2.44606 1.06872 -2.44609 0.0 +1255 2.95 2.95 48.75 -0.095339 -0.280002 0.095379 0.150135 0.280037 -0.150155 0.0 +1256 2.95 2.95 56.25 -0.487332 -0.457247 0.487298 0.373103 0.457341 -0.373058 0.0 +1257 2.95 2.95 63.75 -0.309733 -0.308057 0.309669 0.0352679 0.308082 -0.0352801 0.0 +1258 2.95 2.95 71.25 -0.189494 -0.187337 0.189429 -0.0767338 0.187338 0.0767722 0.0 +1259 2.95 2.95 78.75 -0.100558 -0.0943326 0.100538 -0.103742 0.0942838 0.103711 0.0 +1260 2.95 2.95 86.25 -0.00127159 0.00259697 0.00111691 -0.124177 -0.0027075 0.124174 0.0 +1261 2.95 2.95 93.75 0.0781938 0.0795056 -0.0783669 -0.119644 -0.0795165 0.119632 0.0 +1262 2.95 2.95 101.25 0.125437 0.125749 -0.125346 -0.0954926 -0.125695 0.0954816 0.0 +1263 2.95 2.95 108.75 0.131842 0.132451 -0.1318 -0.0582993 -0.132316 0.0582686 0.0 +1264 2.95 2.95 116.25 0.094036 0.0945768 -0.0939986 -0.013007 -0.0944018 0.0129685 0.0 +1265 2.95 2.95 123.75 0.031853 0.0309302 -0.0318676 0.0276584 -0.0309157 -0.0276663 0.0 +1266 2.95 2.95 131.25 -0.0289236 -0.0307662 0.0290267 0.0542911 0.0309129 -0.0543246 0.0 +1267 2.95 2.95 138.75 -0.0860191 -0.0873603 0.0858184 0.0715543 0.0871918 -0.0715138 0.0 +1268 2.95 2.95 146.25 -0.159015 -0.159395 0.158823 0.092785 0.159333 -0.0927604 0.0 +1269 2.95 2.95 153.75 -0.264066 -0.265928 0.264092 0.127317 0.266003 -0.127385 0.0 +1270 2.95 2.95 161.25 -0.392832 -0.399313 0.392736 0.172881 0.399453 -0.172904 0.0 +1271 2.95 2.95 168.75 -0.51305 -0.525949 0.512818 0.216982 0.526087 -0.217102 0.0 +1272 2.95 2.95 176.25 -0.585362 -0.603164 0.585535 0.244165 0.603114 -0.244128 0.0 +1273 2.95 3.05 3.75 -1152 -470.691 1152 22546.9 470.691 -22546.9 0.0 +1274 2.95 3.05 11.25 -646.366 -302.989 646.366 5436.44 302.989 -5436.44 0.0 +1275 2.95 3.05 18.75 -274.735 -144.566 274.735 1560.79 144.566 -1560.79 0.0 +1276 2.95 3.05 26.25 -82.9595 -46.7837 82.9596 363.128 46.7837 -363.128 0.0 +1277 2.95 3.05 33.75 -15.5348 -7.90904 15.5348 54.2888 7.90907 -54.2887 0.0 +1278 2.95 3.05 41.25 -1.52533 0.0877815 1.52529 3.23039 -0.0877658 -3.23043 0.0 +1279 2.95 3.05 48.75 -0.429791 -0.130249 0.429777 0.249314 0.130206 -0.249273 0.0 +1280 2.95 3.05 56.25 -0.354386 -0.465805 0.3544 0.285906 0.465883 -0.285905 0.0 +1281 2.95 3.05 63.75 -0.230807 -0.353693 0.230714 0.0451008 0.353768 -0.0451234 0.0 +1282 2.95 3.05 71.25 -0.171943 -0.228248 0.172051 -0.0442061 0.228171 0.0442394 0.0 +1283 2.95 3.05 78.75 -0.0886759 -0.125763 0.0886157 -0.0870429 0.125748 0.0870611 0.0 +1284 2.95 3.05 86.25 0.00406016 -0.0290639 -0.00400943 -0.106637 0.0291333 0.106635 0.0 +1285 2.95 3.05 93.75 0.0709324 0.0512843 -0.0709031 -0.0997352 -0.0513256 0.0997471 0.0 +1286 2.95 3.05 101.25 0.112173 0.109307 -0.112111 -0.081026 -0.10938 0.0810188 0.0 +1287 2.95 3.05 108.75 0.118241 0.127448 -0.118156 -0.0508854 -0.127498 0.0509172 0.0 +1288 2.95 3.05 116.25 0.082375 0.0967194 -0.0826216 -0.0115758 -0.096743 0.0116038 0.0 +1289 2.95 3.05 123.75 0.0249719 0.0392243 -0.0250633 0.0233571 -0.0393156 -0.0232965 0.0 +1290 2.95 3.05 131.25 -0.0283614 -0.0168684 0.0282743 0.0451621 0.0168661 -0.045173 0.0 +1291 2.95 3.05 138.75 -0.0768736 -0.0688048 0.077069 0.0594051 0.068716 -0.0593073 0.0 +1292 2.95 3.05 146.25 -0.141563 -0.136731 0.141568 0.0784955 0.136426 -0.0784076 0.0 +1293 2.95 3.05 153.75 -0.236122 -0.235072 0.236058 0.109983 0.235346 -0.110141 0.0 +1294 2.95 3.05 161.25 -0.351579 -0.354851 0.351474 0.150951 0.354689 -0.150832 0.0 +1295 2.95 3.05 168.75 -0.458428 -0.465918 0.458345 0.190063 0.465592 -0.18999 0.0 +1296 2.95 3.05 176.25 -0.522577 -0.532559 0.52258 0.213967 0.532625 -0.214084 0.0 +1297 2.95 3.15 3.75 -947.105 -234.064 947.105 16388.2 234.064 -16388.2 0.0 +1298 2.95 3.15 11.25 -544.957 -169.572 544.957 4831.85 169.572 -4831.85 0.0 +1299 2.95 3.15 18.75 -231.218 -87.4264 231.218 1411.96 87.4264 -1411.96 0.0 +1300 2.95 3.15 26.25 -69.489 -29.5946 69.489 327.211 29.5945 -327.211 0.0 +1301 2.95 3.15 33.75 -13.2484 -5.06717 13.2484 48.9414 5.06717 -48.9414 0.0 +1302 2.95 3.15 41.25 -1.4679 0.0238403 1.46795 3.15011 -0.0239097 -3.15014 0.0 +1303 2.95 3.15 48.75 -0.31652 -0.227201 0.316586 0.172569 0.227204 -0.17262 0.0 +1304 2.95 3.15 56.25 -0.21369 -0.480095 0.213689 0.184024 0.480141 -0.184087 0.0 +1305 2.95 3.15 63.75 -0.176969 -0.390853 0.176921 0.0560194 0.390826 -0.0559763 0.0 +1306 2.95 3.15 71.25 -0.150417 -0.269717 0.150456 -0.0151382 0.269771 0.0150882 0.0 +1307 2.95 3.15 78.75 -0.0732588 -0.158111 0.073298 -0.0675252 0.157991 0.0675219 0.0 +1308 2.95 3.15 86.25 0.0011828 -0.0578942 -0.0013546 -0.0836453 0.0579193 0.083656 0.0 +1309 2.95 3.15 93.75 0.0495663 0.0262723 -0.0495336 -0.0758505 -0.0265178 0.0758585 0.0 +1310 2.95 3.15 101.25 0.0825033 0.0923783 -0.0825646 -0.0624571 -0.0924447 0.0624949 0.0 +1311 2.95 3.15 108.75 0.0903024 0.12085 -0.0901393 -0.0395117 -0.120852 0.0395202 0.0 +1312 2.95 3.15 116.25 0.0638444 0.102339 -0.0638579 -0.00894728 -0.102235 0.00890468 0.0 +1313 2.95 3.15 123.75 0.0220461 0.0572511 -0.0219022 0.0169359 -0.0570113 -0.0169543 0.0 +1314 2.95 3.15 131.25 -0.015441 0.00943891 0.0156538 0.0325133 -0.00947592 -0.0324612 0.0 +1315 2.95 3.15 138.75 -0.0518112 -0.0403117 0.0516345 0.043965 0.0403656 -0.0440096 0.0 +1316 2.95 3.15 146.25 -0.104883 -0.106935 0.104923 0.0610883 0.106832 -0.0610049 0.0 +1317 2.95 3.15 153.75 -0.185793 -0.19961 0.185681 0.0885896 0.199403 -0.0885392 0.0 +1318 2.95 3.15 161.25 -0.283884 -0.306665 0.283899 0.123061 0.306488 -0.122974 0.0 +1319 2.95 3.15 168.75 -0.3736 -0.401945 0.373662 0.155182 0.401946 -0.155094 0.0 +1320 2.95 3.15 176.25 -0.427053 -0.458118 0.427085 0.174567 0.458223 -0.174634 0.0 +1321 2.95 3.25 3.75 -684.962 -33.597 684.962 11353.2 33.597 -11353.2 0.0 +1322 2.95 3.25 11.25 -400.069 -51.4433 400.069 4016.56 51.4433 -4016.56 0.0 +1323 2.95 3.25 18.75 -165.833 -38.5931 165.833 1203.1 38.5931 -1203.1 0.0 +1324 2.95 3.25 26.25 -47.263 -16.6148 47.263 276.987 16.6148 -276.987 0.0 +1325 2.95 3.25 33.75 -8.14408 -3.80756 8.14405 40.878 3.80754 -40.8779 0.0 +1326 2.95 3.25 41.25 -0.735673 -0.396549 0.73574 2.63773 0.396509 -2.63772 0.0 +1327 2.95 3.25 48.75 -0.150431 -0.333017 0.150544 0.0672603 0.332896 -0.0672187 0.0 +1328 2.95 3.25 56.25 -0.10876 -0.446971 0.10866 0.0972865 0.44696 -0.0973988 0.0 +1329 2.95 3.25 63.75 -0.118865 -0.37823 0.118992 0.0520019 0.378268 -0.052 0.0 +1330 2.95 3.25 71.25 -0.109895 -0.280626 0.109945 -0.000890606 0.280499 0.000905523 0.0 +1331 2.95 3.25 78.75 -0.0507365 -0.181073 0.0507334 -0.0461242 0.18097 0.0461348 0.0 +1332 2.95 3.25 86.25 -0.000734511 -0.0871476 0.00060714 -0.0555662 0.0872154 0.0555746 0.0 +1333 2.95 3.25 93.75 0.0311957 -0.00236195 -0.0311942 -0.0515041 0.00259597 0.0514843 0.0 +1334 2.95 3.25 101.25 0.0572093 0.0688848 -0.0571052 -0.0452318 -0.0687382 0.0452149 0.0 +1335 2.95 3.25 108.75 0.064287 0.106942 -0.0642778 -0.029198 -0.106939 0.0292002 0.0 +1336 2.95 3.25 116.25 0.0445212 0.10208 -0.0444717 -0.00721917 -0.102122 0.00721939 0.0 +1337 2.95 3.25 123.75 0.0135976 0.0703346 -0.0132914 0.0101515 -0.070214 -0.0102111 0.0 +1338 2.95 3.25 131.25 -0.0135575 0.0313234 0.0136726 0.0203596 -0.0316066 -0.0203055 0.0 +1339 2.95 3.25 138.75 -0.0393187 -0.0123616 0.0392606 0.0289017 0.0125322 -0.0289811 0.0 +1340 2.95 3.25 146.25 -0.0783219 -0.0713966 0.0781054 0.0422706 0.0716338 -0.0424701 0.0 +1341 2.95 3.25 153.75 -0.137718 -0.149787 0.137636 0.0630045 0.149918 -0.0630855 0.0 +1342 2.95 3.25 161.25 -0.209697 -0.23746 0.209832 0.0883427 0.237538 -0.0884379 0.0 +1343 2.95 3.25 168.75 -0.275371 -0.313873 0.275402 0.111664 0.314062 -0.111753 0.0 +1344 2.95 3.25 176.25 -0.314348 -0.358242 0.314391 0.125665 0.357993 -0.125515 0.0 +1345 2.95 3.35 3.75 -399.508 103.619 399.508 7451.41 -103.619 -7451.41 0.0 +1346 2.95 3.35 11.25 -231.405 35.127 231.405 3026.44 -35.127 -3026.44 0.0 +1347 2.95 3.35 18.75 -89.8146 -2.33149 89.8146 930.13 2.3315 -930.13 0.0 +1348 2.95 3.35 26.25 -22.0607 -7.1465 22.0607 211.828 7.14652 -211.828 0.0 +1349 2.95 3.35 33.75 -2.61211 -2.84669 2.61203 30.3988 2.84678 -30.3988 0.0 +1350 2.95 3.35 41.25 -0.0641668 -0.572722 0.0641482 1.85321 0.572769 -1.85319 0.0 +1351 2.95 3.35 48.75 -0.0727144 -0.324155 0.0726592 -0.0128306 0.324113 0.0128188 0.0 +1352 2.95 3.35 56.25 -0.0429539 -0.369477 0.0429431 0.0365148 0.369487 -0.0365382 0.0 +1353 2.95 3.35 63.75 -0.0600198 -0.322362 0.0600919 0.0327313 0.322318 -0.0327163 0.0 +1354 2.95 3.35 71.25 -0.0652833 -0.262303 0.0652719 -0.000945077 0.262315 0.000937457 0.0 +1355 2.95 3.35 78.75 -0.031022 -0.194374 0.0309769 -0.0267122 0.194554 0.0267582 0.0 +1356 2.95 3.35 86.25 -0.00184005 -0.113162 0.00176104 -0.0298197 0.113076 0.0298218 0.0 +1357 2.95 3.35 93.75 0.018586 -0.0277066 -0.0184827 -0.0312711 0.0276271 0.0312812 0.0 +1358 2.95 3.35 101.25 0.0371138 0.0478631 -0.037144 -0.0299553 -0.0480008 0.0299616 0.0 +1359 2.95 3.35 108.75 0.0423982 0.093388 -0.0422422 -0.0188882 -0.0933397 0.0188857 0.0 +1360 2.95 3.35 116.25 0.0273758 0.0979945 -0.0273687 -0.00448478 -0.0979721 0.00447213 0.0 +1361 2.95 3.35 123.75 0.00420771 0.0743592 -0.00427898 0.00600864 -0.0745728 -0.0058675 0.0 +1362 2.95 3.35 131.25 -0.0145851 0.0414175 0.0147362 0.0124371 -0.0414414 -0.0124358 0.0 +1363 2.95 3.35 138.75 -0.03007 0.00528296 0.0300369 0.0181261 -0.00525075 -0.018187 0.0 +1364 2.95 3.35 146.25 -0.0509356 -0.0404972 0.0512567 0.0264418 0.040464 -0.0264103 0.0 +1365 2.95 3.35 153.75 -0.0853645 -0.10106 0.0852954 0.0392425 0.100971 -0.0391701 0.0 +1366 2.95 3.35 161.25 -0.129326 -0.170331 0.12924 0.0554642 0.170326 -0.0554588 0.0 +1367 2.95 3.35 168.75 -0.171342 -0.232151 0.171081 0.0709676 0.232288 -0.0710617 0.0 +1368 2.95 3.35 176.25 -0.196671 -0.268622 0.196769 0.0804998 0.268617 -0.0804939 0.0 +1369 2.95 3.45 3.75 -118.47 124.094 118.47 3596.85 -124.094 -3596.85 0.0 +1370 2.95 3.45 11.25 -62.0251 58.1208 62.0251 1612.69 -58.1208 -1612.69 0.0 +1371 2.95 3.45 18.75 -17.2025 11.8124 17.2025 506.519 -11.8125 -506.519 0.0 +1372 2.95 3.45 26.25 -0.377844 -1.71658 0.37789 113.34 1.71654 -113.34 0.0 +1373 2.95 3.45 33.75 1.37632 -1.48954 -1.37633 15.5555 1.4896 -15.5555 0.0 +1374 2.95 3.45 41.25 0.265026 -0.272138 -0.265013 0.865629 0.272128 -0.865594 0.0 +1375 2.95 3.45 48.75 -0.0675124 -0.169675 0.0675642 -0.0146368 0.169647 0.0146363 0.0 +1376 2.95 3.45 56.25 -0.023388 -0.236641 0.0234179 0.015066 0.236607 -0.015018 0.0 +1377 2.95 3.45 63.75 -0.0206674 -0.214642 0.0205493 0.0137967 0.214624 -0.0137863 0.0 +1378 2.95 3.45 71.25 -0.0266153 -0.192791 0.0266153 -0.00202341 0.192818 0.00206841 0.0 +1379 2.95 3.45 78.75 -0.01303 -0.158177 0.0130391 -0.00963045 0.158217 0.00964696 0.0 +1380 2.95 3.45 86.25 -0.00222429 -0.0960735 0.0021395 -0.0105039 0.0961189 0.0105017 0.0 +1381 2.95 3.45 93.75 0.00366176 -0.0280042 -0.00362622 -0.0130186 0.0279556 0.0130227 0.0 +1382 2.95 3.45 101.25 0.0105055 0.0297138 -0.0104632 -0.0119289 -0.0296664 0.0119117 0.0 +1383 2.95 3.45 108.75 0.0148087 0.0656952 -0.0147408 -0.00665645 -0.0657398 0.0066868 0.0 +1384 2.95 3.45 116.25 0.0114932 0.0726041 -0.0116021 -0.00156607 -0.0726457 0.00154858 0.0 +1385 2.95 3.45 123.75 0.00309518 0.0572911 -0.00312058 0.00244903 -0.0572973 -0.00247607 0.0 +1386 2.95 3.45 131.25 -0.00423195 0.0348253 0.00428653 0.0058355 -0.0347892 -0.0058315 0.0 +1387 2.95 3.45 138.75 -0.00866474 0.0124609 0.00861874 0.00825108 -0.0125166 -0.00826851 0.0 +1388 2.95 3.45 146.25 -0.0145607 -0.0144555 0.0146647 0.0107256 0.0144883 -0.0106962 0.0 +1389 2.95 3.45 153.75 -0.0287837 -0.0532811 0.0286297 0.0157047 0.0531415 -0.0156193 0.0 +1390 2.95 3.45 161.25 -0.0515253 -0.102148 0.0515477 0.0240732 0.102183 -0.0241063 0.0 +1391 2.95 3.45 168.75 -0.0767337 -0.148935 0.0767439 0.0334601 0.1489 -0.0334712 0.0 +1392 2.95 3.45 176.25 -0.0932086 -0.17774 0.0931942 0.0396944 0.177763 -0.0397001 0.0 +1393 2.95 3.55 3.75 9.21891 55.9716 -9.21891 1053.07 -55.9716 -1053.07 0.0 +1394 2.95 3.55 11.25 12.0915 26.8507 -12.0915 505.759 -26.8507 -505.759 0.0 +1395 2.95 3.55 18.75 10.5932 5.25111 -10.5932 161.202 -5.25111 -161.202 0.0 +1396 2.95 3.55 26.25 5.832 -0.960922 -5.83198 35.2215 0.960912 -35.2215 0.0 +1397 2.95 3.55 33.75 1.90632 -0.606111 -1.90629 4.63776 0.606103 -4.63776 0.0 +1398 2.95 3.55 41.25 0.243995 0.00564805 -0.243998 0.296232 -0.00567539 -0.296199 0.0 +1399 2.95 3.55 48.75 -0.0591471 -0.00860415 0.0591375 0.0274887 0.00861739 -0.0274844 0.0 +1400 2.95 3.55 56.25 -0.0269926 -0.0691277 0.0269968 0.0114055 0.0691244 -0.0114149 0.0 +1401 2.95 3.55 63.75 -0.00607235 -0.0689444 0.00606736 0.00520628 0.0689476 -0.00519972 0.0 +1402 2.95 3.55 71.25 -0.00320545 -0.0714308 0.00319651 0.00162512 0.0714338 -0.00162543 0.0 +1403 2.95 3.55 78.75 -0.000709974 -0.0611886 0.00068591 -0.000332506 0.0611933 0.00033069 0.0 +1404 2.95 3.55 86.25 -0.00172169 -0.0350745 0.00168824 -0.00153632 0.035038 0.00153626 0.0 +1405 2.95 3.55 93.75 -0.00504304 -0.0114154 0.00501691 -0.001532 0.0114067 0.0015284 0.0 +1406 2.95 3.55 101.25 -0.00419399 0.00690274 0.00423812 -0.00070908 -0.00693605 0.000712363 0.0 +1407 2.95 3.55 108.75 0.00145246 0.0217666 -0.00146955 -0.00136473 -0.0217677 0.00136709 0.0 +1408 2.95 3.55 116.25 0.00646822 0.0283925 -0.00648991 -0.0023095 -0.0283929 0.00231683 0.0 +1409 2.95 3.55 123.75 0.0071676 0.0255024 -0.00717304 -0.00117394 -0.0255343 0.00118872 0.0 +1410 2.95 3.55 131.25 0.00551051 0.0191405 -0.00553503 0.000805702 -0.0191302 -0.000807014 0.0 +1411 2.95 3.55 138.75 0.00491972 0.0139924 -0.00492367 0.00107791 -0.0140157 -0.00107725 0.0 +1412 2.95 3.55 146.25 0.00468329 0.0079675 -0.00466349 9.16014e-06 -0.0079586 -7.70033e-06 0.0 +1413 2.95 3.55 153.75 0.00109992 -0.00389049 -0.00104878 0.000299902 0.00394253 -0.000326509 0.0 +1414 2.95 3.55 161.25 -0.0078958 -0.022461 0.00792024 0.0035239 0.0224411 -0.0035224 0.0 +1415 2.95 3.55 168.75 -0.019444 -0.0423078 0.0194506 0.00839838 0.0423256 -0.00840352 0.0 +1416 2.95 3.55 176.25 -0.0275442 -0.0551633 0.0275625 0.011971 0.0551683 -0.0119705 0.0 +1417 2.95 3.65 3.75 7.06704 4.57331 -7.06704 82.2836 -4.57331 -82.2836 0.0 +1418 2.95 3.65 11.25 5.4451 1.75617 -5.4451 41.4025 -1.75617 -41.4025 0.0 +1419 2.95 3.65 18.75 3.205 -0.181937 -3.205 13.315 0.181936 -13.315 0.0 +1420 2.95 3.65 26.25 1.3884 -0.45091 -1.3884 2.87287 0.450911 -2.87287 0.0 +1421 2.95 3.65 33.75 0.399535 -0.156162 -0.399534 0.408566 0.156164 -0.408568 0.0 +1422 2.95 3.65 41.25 0.0474327 0.000325414 -0.0474365 0.0559439 -0.000322232 -0.0559436 0.0 +1423 2.95 3.65 48.75 -0.0167623 0.0148239 0.0167622 0.0118571 -0.0148242 -0.011857 0.0 +1424 2.95 3.65 56.25 -0.00966538 0.00961204 0.00966566 0.000613902 -0.00961345 -0.000615629 0.0 +1425 2.95 3.65 63.75 -0.0018771 0.00670523 0.00187471 0.000440809 -0.00670146 -0.000440008 0.0 +1426 2.95 3.65 71.25 -0.000281351 0.00228719 0.000284629 0.00150972 -0.00228777 -0.00150899 0.0 +1427 2.95 3.65 78.75 -0.000573671 0.000786642 0.000576419 0.00114584 -0.000789663 -0.00114555 0.0 +1428 2.95 3.65 86.25 -0.00114618 0.000614687 0.00115016 0.000658531 -0.000610215 -0.000658224 0.0 +1429 2.95 3.65 93.75 -0.0014843 -0.00108906 0.00148416 0.000686066 0.00108644 -0.000685896 0.0 +1430 2.95 3.65 101.25 -0.000744824 -0.00226437 0.000742569 0.000394 0.00226277 -0.000394553 0.0 +1431 2.95 3.65 108.75 0.000733179 -0.00144773 -0.000733097 -0.000392875 0.00144773 0.000393178 0.0 +1432 2.95 3.65 116.25 0.00137293 -0.00049035 -0.00137606 -0.000632154 0.000487911 0.000633826 0.0 +1433 2.95 3.65 123.75 0.000493895 -0.000912215 -0.00049636 8.38473e-05 0.000900696 -7.85158e-05 0.0 +1434 2.95 3.65 131.25 -0.000825425 -0.0018564 0.000824058 0.000856545 0.00185558 -0.000856062 0.0 +1435 2.95 3.65 138.75 -0.00108814 -0.00180504 0.00109441 0.000819354 0.00179515 -0.000812508 0.0 +1436 2.95 3.65 146.25 1.93775e-05 -0.000479276 -1.65839e-05 0.000158438 0.000470583 -0.000154836 0.0 +1437 2.95 3.65 153.75 0.00166473 0.00127079 -0.00166242 -0.000315957 -0.00126902 0.00031561 0.0 +1438 2.95 3.65 161.25 0.00284097 0.00252966 -0.00283858 -0.000108367 -0.00252762 0.000107593 0.0 +1439 2.95 3.65 168.75 0.00323364 0.00305014 -0.00322845 0.000583253 -0.00304442 -0.000587227 0.0 +1440 2.95 3.65 176.25 0.00320119 0.00313431 -0.00320683 0.0011639 -0.00314025 -0.00116103 0.0 +1441 3.05 2.55 3.75 -99.8903 -1135.49 99.8903 4481.01 1135.49 -4481.01 0.0 +1442 3.05 2.55 11.25 75.4085 -849.863 -75.4085 2098.79 849.863 -2098.79 0.0 +1443 3.05 2.55 18.75 204.713 -503.811 -204.713 608.899 503.811 -608.899 0.0 +1444 3.05 2.55 26.25 215.712 -235.217 -215.712 55.4596 235.217 -55.4596 0.0 +1445 3.05 2.55 33.75 153.506 -77.04 -153.506 -60.3792 77.04 60.3792 0.0 +1446 3.05 2.55 41.25 82.3413 -6.02578 -82.3413 -46.2127 6.02578 46.2127 0.0 +1447 3.05 2.55 48.75 35.0888 15.3934 -35.0889 -22.0144 -15.3934 22.0144 0.0 +1448 3.05 2.55 56.25 12.4887 16.3495 -12.4887 -10.6162 -16.3495 10.6162 0.0 +1449 3.05 2.55 63.75 3.52861 12.5229 -3.52864 -7.32703 -12.5228 7.32705 0.0 +1450 3.05 2.55 71.25 -0.279629 9.40632 0.279539 -6.91201 -9.40632 6.91201 0.0 +1451 3.05 2.55 78.75 -2.43932 7.24433 2.43937 -6.84166 -7.24431 6.84167 0.0 +1452 3.05 2.55 86.25 -3.82544 5.01507 3.82548 -6.03456 -5.01503 6.03456 0.0 +1453 3.05 2.55 93.75 -4.46445 2.39183 4.46443 -4.45383 -2.39181 4.45382 0.0 +1454 3.05 2.55 101.25 -4.14103 -0.193617 4.14113 -2.7115 0.193643 2.7115 0.0 +1455 3.05 2.55 108.75 -2.68814 -2.24179 2.68814 -1.40298 2.24179 1.40298 0.0 +1456 3.05 2.55 116.25 -0.20595 -3.60299 0.205893 -0.720314 3.60292 0.720318 0.0 +1457 3.05 2.55 123.75 2.91287 -4.4257 -2.91292 -0.508612 4.42572 0.50859 0.0 +1458 3.05 2.55 131.25 6.14079 -4.94039 -6.14081 -0.503212 4.94043 0.503203 0.0 +1459 3.05 2.55 138.75 9.01174 -5.32326 -9.01176 -0.502488 5.32335 0.50246 0.0 +1460 3.05 2.55 146.25 11.2442 -5.66887 -11.2442 -0.418121 5.66881 0.418179 0.0 +1461 3.05 2.55 153.75 12.7662 -6.00759 -12.7662 -0.251267 6.00762 0.251242 0.0 +1462 3.05 2.55 161.25 13.6683 -6.32489 -13.6683 -0.0497353 6.3249 0.0497547 0.0 +1463 3.05 2.55 168.75 14.1224 -6.57903 -14.1224 0.126803 6.57893 -0.12674 0.0 +1464 3.05 2.55 176.25 14.2984 -6.72181 -14.2983 0.228789 6.72185 -0.228792 0.0 +1465 3.05 2.65 3.75 -471.72 -1123.11 471.72 7093.34 1123.11 -7093.34 0.0 +1466 3.05 2.65 11.25 -191.767 -808.934 191.767 3001.82 808.934 -3001.82 0.0 +1467 3.05 2.65 18.75 34.008 -459.915 -34.008 894.175 459.915 -894.175 0.0 +1468 3.05 2.65 26.25 112.955 -208.573 -112.955 151.189 208.573 -151.189 0.0 +1469 3.05 2.65 33.75 94.0738 -71.7327 -94.0737 -21.1677 71.7326 21.1677 0.0 +1470 3.05 2.65 41.25 49.4837 -14.5639 -49.4837 -25.8858 14.5639 25.8858 0.0 +1471 3.05 2.65 48.75 18.1201 2.71873 -18.1201 -10.7579 -2.71874 10.7579 0.0 +1472 3.05 2.65 56.25 4.50067 5.1919 -4.50071 -4.17437 -5.19187 4.17439 0.0 +1473 3.05 2.65 63.75 0.324738 4.12228 -0.324708 -2.7649 -4.12229 2.76489 0.0 +1474 3.05 2.65 71.25 -0.885083 3.14173 0.885105 -2.71919 -3.14167 2.71917 0.0 +1475 3.05 2.65 78.75 -1.47411 2.5775 1.47404 -2.75787 -2.57751 2.75787 0.0 +1476 3.05 2.65 86.25 -1.87152 1.90054 1.8715 -2.4228 -1.90059 2.4228 0.0 +1477 3.05 2.65 93.75 -2.02466 0.923135 2.02473 -1.71585 -0.923116 1.71585 0.0 +1478 3.05 2.65 101.25 -1.76347 -0.106789 1.76345 -0.967378 0.106801 0.967378 0.0 +1479 3.05 2.65 108.75 -0.963999 -0.917273 0.964072 -0.468617 0.917246 0.468634 0.0 +1480 3.05 2.65 116.25 0.320331 -1.45246 -0.320253 -0.271727 1.4525 0.271712 0.0 +1481 3.05 2.65 123.75 1.86745 -1.80964 -1.86754 -0.2599 1.80962 0.259901 0.0 +1482 3.05 2.65 131.25 3.39911 -2.09969 -3.3991 -0.291824 2.0997 0.291795 0.0 +1483 3.05 2.65 138.75 4.68845 -2.3866 -4.68845 -0.280717 2.38662 0.280678 0.0 +1484 3.05 2.65 146.25 5.61507 -2.69242 -5.61523 -0.201921 2.6924 0.201911 0.0 +1485 3.05 2.65 153.75 6.16957 -3.01207 -6.1696 -0.0714668 3.01198 0.0715084 0.0 +1486 3.05 2.65 161.25 6.42631 -3.31783 -6.42636 0.0757921 3.31775 -0.0757403 0.0 +1487 3.05 2.65 168.75 6.50157 -3.56436 -6.50164 0.201289 3.56437 -0.201315 0.0 +1488 3.05 2.65 176.25 6.50603 -3.70329 -6.50603 0.273064 3.70334 -0.273107 0.0 +1489 3.05 2.75 3.75 -819.915 -1054.18 819.915 10801.3 1054.18 -10801.3 0.0 +1490 3.05 2.75 11.25 -428.7 -725.593 428.7 3920.51 725.593 -3920.51 0.0 +1491 3.05 2.75 18.75 -114.05 -391.224 114.05 1152.33 391.224 -1152.33 0.0 +1492 3.05 2.75 26.25 26.6042 -166.507 -26.6042 231.532 166.507 -231.532 0.0 +1493 3.05 2.75 33.75 47.3 -54.4281 -47.3 8.52819 54.4281 -8.52819 0.0 +1494 3.05 2.75 41.25 26.4694 -12.5721 -26.4693 -12.454 12.5721 12.454 0.0 +1495 3.05 2.75 48.75 8.21568 -1.0587 -8.21571 -4.42962 1.05872 4.42958 0.0 +1496 3.05 2.75 56.25 0.933521 0.970656 -0.933436 -1.13308 -0.970672 1.13312 0.0 +1497 3.05 2.75 63.75 -0.591387 0.896497 0.591369 -0.802744 -0.896534 0.80272 0.0 +1498 3.05 2.75 71.25 -0.708852 0.736982 0.708892 -0.888009 -0.736903 0.888014 0.0 +1499 3.05 2.75 78.75 -0.726053 0.759715 0.726002 -0.940145 -0.759774 0.940141 0.0 +1500 3.05 2.75 86.25 -0.765586 0.712852 0.765659 -0.840917 -0.712822 0.840918 0.0 +1501 3.05 2.75 93.75 -0.763361 0.473034 0.763336 -0.584351 -0.473083 0.584352 0.0 +1502 3.05 2.75 101.25 -0.61589 0.159455 0.615896 -0.319598 -0.159469 0.319598 0.0 +1503 3.05 2.75 108.75 -0.25518 -0.0967453 0.255171 -0.166777 0.0969022 0.166722 0.0 +1504 3.05 2.75 116.25 0.285009 -0.28291 -0.284971 -0.126066 0.282912 0.126057 0.0 +1505 3.05 2.75 123.75 0.897522 -0.44854 -0.897517 -0.135093 0.448509 0.135108 0.0 +1506 3.05 2.75 131.25 1.46791 -0.62815 -1.46794 -0.139317 0.628143 0.139325 0.0 +1507 3.05 2.75 138.75 1.9137 -0.829458 -1.91378 -0.113487 0.829399 0.113499 0.0 +1508 3.05 2.75 146.25 2.19463 -1.05152 -2.19449 -0.0541464 1.05163 0.0541151 0.0 +1509 3.05 2.75 153.75 2.31281 -1.28912 -2.31287 0.0298665 1.2892 -0.0299121 0.0 +1510 3.05 2.75 161.25 2.31047 -1.52248 -2.31048 0.121875 1.52245 -0.121854 0.0 +1511 3.05 2.75 168.75 2.2526 -1.71516 -2.25253 0.200736 1.7151 -0.200722 0.0 +1512 3.05 2.75 176.25 2.20364 -1.82546 -2.20366 0.246345 1.82537 -0.246316 0.0 +1513 3.05 2.85 3.75 -1091.5 -924.826 1091.5 15876.4 924.826 -15876.4 0.0 +1514 3.05 2.85 11.25 -600.889 -610.446 600.889 4701.21 610.446 -4701.21 0.0 +1515 3.05 2.85 18.75 -221.774 -313.095 221.774 1347.46 313.095 -1347.46 0.0 +1516 3.05 2.85 26.25 -36.1715 -123.034 36.1715 288.867 123.034 -288.867 0.0 +1517 3.05 2.85 33.75 14.4109 -35.751 -14.4109 28.4156 35.751 -28.4156 0.0 +1518 3.05 2.85 41.25 11.7477 -7.54625 -11.7476 -4.47886 7.54624 4.47889 0.0 +1519 3.05 2.85 48.75 3.02266 -1.2724 -3.02262 -1.36059 1.27242 1.36062 0.0 +1520 3.05 2.85 56.25 -0.293101 -0.234224 0.293102 0.0148782 0.234259 -0.0148768 0.0 +1521 3.05 2.85 63.75 -0.604408 -0.0864725 0.604562 -0.135551 0.0865208 0.135542 0.0 +1522 3.05 2.85 71.25 -0.423986 -0.0183332 0.424026 -0.236452 0.0183536 0.236484 0.0 +1523 3.05 2.85 78.75 -0.3123 0.1248 0.312209 -0.277309 -0.124861 0.277305 0.0 +1524 3.05 2.85 86.25 -0.248721 0.239777 0.248749 -0.273132 -0.2399 0.273128 0.0 +1525 3.05 2.85 93.75 -0.199626 0.248962 0.199561 -0.204975 -0.24897 0.204973 0.0 +1526 3.05 2.85 101.25 -0.120259 0.201191 0.120215 -0.129864 -0.201248 0.129884 0.0 +1527 3.05 2.85 108.75 0.0123537 0.148079 -0.0122872 -0.0877108 -0.14809 0.0877165 0.0 +1528 3.05 2.85 116.25 0.173327 0.0836399 -0.173362 -0.0691073 -0.0836389 0.0691089 0.0 +1529 3.05 2.85 123.75 0.32621 -0.00777206 -0.326258 -0.0543665 0.00767605 0.054391 0.0 +1530 3.05 2.85 131.25 0.449831 -0.119322 -0.449959 -0.0354792 0.119322 0.0354522 0.0 +1531 3.05 2.85 138.75 0.531523 -0.239616 -0.531528 -0.0103697 0.239718 0.0103411 0.0 +1532 3.05 2.85 146.25 0.559126 -0.370369 -0.559031 0.0242302 0.370329 -0.0241818 0.0 +1533 3.05 2.85 153.75 0.528094 -0.517307 -0.52826 0.0705032 0.517171 -0.070455 0.0 +1534 3.05 2.85 161.25 0.453914 -0.672153 -0.453993 0.124135 0.672161 -0.124122 0.0 +1535 3.05 2.85 168.75 0.370253 -0.807261 -0.370135 0.173118 0.807245 -0.173108 0.0 +1536 3.05 2.85 176.25 0.315462 -0.887101 -0.315566 0.202652 0.887107 -0.202673 0.0 +1537 3.05 2.95 3.75 -1232.87 -727.611 1232.87 21705.2 727.611 -21705.2 0.0 +1538 3.05 2.95 11.25 -683.419 -470.91 683.419 5177.91 470.91 -5177.91 0.0 +1539 3.05 2.95 18.75 -278.179 -234.268 278.179 1452.23 234.268 -1452.23 0.0 +1540 3.05 2.95 26.25 -72.0176 -85.4621 72.0176 319.105 85.462 -319.105 0.0 +1541 3.05 2.95 33.75 -5.04395 -21.0669 5.04397 39.4173 21.0669 -39.4173 0.0 +1542 3.05 2.95 41.25 3.48774 -3.28191 -3.48769 -0.300635 3.2819 0.300647 0.0 +1543 3.05 2.95 48.75 0.664886 -0.652039 -0.664789 -0.139738 0.652028 0.139711 0.0 +1544 3.05 2.95 56.25 -0.523616 -0.414034 0.523516 0.306792 0.414075 -0.306796 0.0 +1545 3.05 2.95 63.75 -0.434262 -0.279203 0.434317 0.0328779 0.279155 -0.0328601 0.0 +1546 3.05 2.95 71.25 -0.263989 -0.17845 0.263927 -0.0557287 0.178451 0.0557149 0.0 +1547 3.05 2.95 78.75 -0.155524 -0.0604642 0.155421 -0.0950323 0.0604433 0.0950443 0.0 +1548 3.05 2.95 86.25 -0.067447 0.04758 0.0673218 -0.117252 -0.0475915 0.117248 0.0 +1549 3.05 2.95 93.75 -0.00166102 0.107279 0.00164027 -0.105172 -0.107316 0.105191 0.0 +1550 3.05 2.95 101.25 0.0535862 0.135458 -0.0536877 -0.0832458 -0.135274 0.0832323 0.0 +1551 3.05 2.95 108.75 0.0967651 0.14059 -0.0966865 -0.0609958 -0.14058 0.0609828 0.0 +1552 3.05 2.95 116.25 0.109945 0.110287 -0.109908 -0.0329892 -0.110348 0.033027 0.0 +1553 3.05 2.95 123.75 0.0929853 0.0494498 -0.0930526 -0.0025344 -0.0494806 0.00258764 0.0 +1554 3.05 2.95 131.25 0.0642303 -0.01905 -0.0641238 0.0216847 0.0188441 -0.0215685 0.0 +1555 3.05 2.95 138.75 0.0332905 -0.0834771 -0.0332997 0.03867 0.083467 -0.0386494 0.0 +1556 3.05 2.95 146.25 -0.00878391 -0.154233 0.00888735 0.0564103 0.154439 -0.0564727 0.0 +1557 3.05 2.95 153.75 -0.0746897 -0.245398 0.0746327 0.0831603 0.245496 -0.0832365 0.0 +1558 3.05 2.95 161.25 -0.160201 -0.353255 0.160227 0.119078 0.353605 -0.119288 0.0 +1559 3.05 2.95 168.75 -0.243403 -0.453661 0.243311 0.154918 0.453781 -0.154984 0.0 +1560 3.05 2.95 176.25 -0.294717 -0.514746 0.294773 0.177486 0.51451 -0.177287 0.0 +1561 3.05 3.05 3.75 -1202.39 -470.365 1202.39 24403 470.365 -24403 0.0 +1562 3.05 3.05 11.25 -668.169 -316.378 668.169 5239.8 316.378 -5239.8 0.0 +1563 3.05 3.05 18.75 -281.731 -159.304 281.731 1455.24 159.304 -1455.24 0.0 +1564 3.05 3.05 26.25 -82.2316 -55.9751 82.2316 322.339 55.9751 -322.339 0.0 +1565 3.05 3.05 33.75 -13.2072 -11.7376 13.2072 43.2474 11.7377 -43.2475 0.0 +1566 3.05 3.05 41.25 -0.23727 -0.951403 0.237225 1.56363 0.951413 -1.56361 0.0 +1567 3.05 3.05 48.75 -0.165939 -0.246228 0.165967 0.206541 0.24613 -0.206511 0.0 +1568 3.05 3.05 56.25 -0.436043 -0.410636 0.436083 0.304896 0.410632 -0.304963 0.0 +1569 3.05 3.05 63.75 -0.30763 -0.310295 0.307609 0.0679989 0.310281 -0.0680052 0.0 +1570 3.05 3.05 71.25 -0.206649 -0.205757 0.206684 -0.0143256 0.20578 0.0143312 0.0 +1571 3.05 3.05 78.75 -0.11617 -0.112842 0.116269 -0.0611922 0.112662 0.0611357 0.0 +1572 3.05 3.05 86.25 -0.029379 -0.026893 0.0293335 -0.0825493 0.0270606 0.0825471 0.0 +1573 3.05 3.05 93.75 0.0356369 0.0385347 -0.0355095 -0.077343 -0.0385093 0.0773448 0.0 +1574 3.05 3.05 101.25 0.0825754 0.0864857 -0.0826079 -0.0638125 -0.0866197 0.0638187 0.0 +1575 3.05 3.05 108.75 0.102049 0.105697 -0.102052 -0.0415323 -0.105879 0.0415234 0.0 +1576 3.05 3.05 116.25 0.0810613 0.0846985 -0.0811354 -0.00976694 -0.0847927 0.00982253 0.0 +1577 3.05 3.05 123.75 0.0328587 0.0382796 -0.0327086 0.0205591 -0.0383158 -0.0204996 0.0 +1578 3.05 3.05 131.25 -0.0175676 -0.00884341 0.0174819 0.0399706 0.00881225 -0.0399405 0.0 +1579 3.05 3.05 138.75 -0.0618523 -0.0507538 0.0617807 0.050519 0.0510671 -0.0507029 0.0 +1580 3.05 3.05 146.25 -0.112984 -0.102557 0.112876 0.062213 0.102547 -0.0622186 0.0 +1581 3.05 3.05 153.75 -0.183953 -0.177566 0.184157 0.0833769 0.177745 -0.0834765 0.0 +1582 3.05 3.05 161.25 -0.271208 -0.270479 0.271245 0.113891 0.27054 -0.113888 0.0 +1583 3.05 3.05 168.75 -0.353042 -0.357989 0.353053 0.145016 0.357905 -0.145054 0.0 +1584 3.05 3.05 176.25 -0.402759 -0.411064 0.402707 0.164734 0.411172 -0.164821 0.0 +1585 3.05 3.15 3.75 -1005.86 -194.498 1005.86 20622.3 194.498 -20622.3 0.0 +1586 3.05 3.15 11.25 -566.091 -160.869 566.091 4886.81 160.869 -4886.81 0.0 +1587 3.05 3.15 18.75 -240.287 -91.2699 240.287 1363.35 91.2699 -1363.35 0.0 +1588 3.05 3.15 26.25 -72.1732 -33.8748 72.1732 302.315 33.8748 -302.315 0.0 +1589 3.05 3.15 33.75 -13.3946 -6.76814 13.3946 41.8615 6.76815 -41.8615 0.0 +1590 3.05 3.15 41.25 -1.23842 -0.233142 1.2384 2.17485 0.233108 -2.17487 0.0 +1591 3.05 3.15 48.75 -0.292521 -0.178012 0.292534 0.218004 0.177961 -0.217937 0.0 +1592 3.05 3.15 56.25 -0.284809 -0.428332 0.284868 0.232091 0.428389 -0.232079 0.0 +1593 3.05 3.15 63.75 -0.220727 -0.340585 0.220826 0.0743496 0.340452 -0.0743638 0.0 +1594 3.05 3.15 71.25 -0.169662 -0.229028 0.169575 -0.00422416 0.228937 0.00423996 0.0 +1595 3.05 3.15 78.75 -0.0951492 -0.138864 0.0951079 -0.0524268 0.138897 0.0524133 0.0 +1596 3.05 3.15 86.25 -0.0249568 -0.057734 0.0249618 -0.0648182 0.0578461 0.0648357 0.0 +1597 3.05 3.15 93.75 0.0258392 0.0131362 -0.0256859 -0.0587348 -0.0128765 0.058722 0.0 +1598 3.05 3.15 101.25 0.0643498 0.0683206 -0.0643807 -0.0481836 -0.0685476 0.0481991 0.0 +1599 3.05 3.15 108.75 0.0794928 0.0928215 -0.0794856 -0.02838 -0.0927884 0.0283377 0.0 +1600 3.05 3.15 116.25 0.0621262 0.0783423 -0.0619376 -0.00193475 -0.0783081 0.00196418 0.0 +1601 3.05 3.15 123.75 0.0258006 0.041661 -0.0259602 0.0203971 -0.0415221 -0.0204713 0.0 +1602 3.05 3.15 131.25 -0.00984299 0.0033761 0.0098454 0.0334746 -0.00365493 -0.0333855 0.0 +1603 3.05 3.15 138.75 -0.0442769 -0.0350514 0.0443307 0.0414554 0.0352449 -0.041497 0.0 +1604 3.05 3.15 146.25 -0.091463 -0.0871559 0.0914155 0.052571 0.0871283 -0.0525267 0.0 +1605 3.05 3.15 153.75 -0.160353 -0.160828 0.160224 0.0723048 0.160761 -0.0723438 0.0 +1606 3.05 3.15 161.25 -0.243335 -0.247674 0.243164 0.0993507 0.247967 -0.0995663 0.0 +1607 3.05 3.15 168.75 -0.318898 -0.326134 0.319007 0.126072 0.32627 -0.126173 0.0 +1608 3.05 3.15 176.25 -0.36419 -0.372832 0.36427 0.142724 0.372732 -0.142595 0.0 +1609 3.05 3.25 3.75 -707.917 46.1555 707.917 14705.3 -46.1555 -14705.3 0.0 +1610 3.05 3.25 11.25 -403.239 -21.7092 403.239 4225.41 21.7092 -4225.41 0.0 +1611 3.05 3.25 18.75 -168.322 -33.4945 168.322 1198.15 33.4945 -1198.15 0.0 +1612 3.05 3.25 26.25 -49.4611 -17.619 49.4611 265.09 17.619 -265.09 0.0 +1613 3.05 3.25 33.75 -9.19503 -4.34197 9.19508 37.0193 4.34196 -37.0193 0.0 +1614 3.05 3.25 41.25 -0.984275 -0.283052 0.984305 2.13686 0.283053 -2.13689 0.0 +1615 3.05 3.25 48.75 -0.18842 -0.24192 0.188469 0.12944 0.241853 -0.129426 0.0 +1616 3.05 3.25 56.25 -0.14452 -0.42971 0.144635 0.148393 0.42977 -0.148431 0.0 +1617 3.05 3.25 63.75 -0.142141 -0.341575 0.142225 0.0603106 0.341607 -0.0603114 0.0 +1618 3.05 3.25 71.25 -0.120366 -0.235824 0.120331 -0.00584193 0.236031 0.00590595 0.0 +1619 3.05 3.25 78.75 -0.0648858 -0.155118 0.0648497 -0.0407089 0.155197 0.0406872 0.0 +1620 3.05 3.25 86.25 -0.0170367 -0.0778598 0.0169629 -0.0444295 0.0780579 0.0444343 0.0 +1621 3.05 3.25 93.75 0.0177195 -0.00503444 -0.0176269 -0.0424893 0.00514769 0.042496 0.0 +1622 3.05 3.25 101.25 0.0462891 0.05416 -0.0462865 -0.0373615 -0.0542229 0.0373631 0.0 +1623 3.05 3.25 108.75 0.0573669 0.084333 -0.0573216 -0.0224864 -0.0844456 0.0224838 0.0 +1624 3.05 3.25 116.25 0.0451776 0.0795648 -0.0451227 -0.00389795 -0.0795657 0.00392705 0.0 +1625 3.05 3.25 123.75 0.0215897 0.0526945 -0.021368 0.0103573 -0.0529347 -0.010223 0.0 +1626 3.05 3.25 131.25 -0.00169711 0.0202141 0.00167047 0.0191787 -0.0203379 -0.0191286 0.0 +1627 3.05 3.25 138.75 -0.0264021 -0.0159575 0.0263373 0.0263274 0.0160538 -0.0263645 0.0 +1628 3.05 3.25 146.25 -0.0639974 -0.0644796 0.063985 0.0366322 0.0642138 -0.0364741 0.0 +1629 3.05 3.25 153.75 -0.119886 -0.129575 0.119896 0.0530471 0.129703 -0.0531036 0.0 +1630 3.05 3.25 161.25 -0.186549 -0.203618 0.186351 0.0742664 0.20364 -0.0742798 0.0 +1631 3.05 3.25 168.75 -0.246276 -0.269152 0.246288 0.0946959 0.269294 -0.0948405 0.0 +1632 3.05 3.25 176.25 -0.281602 -0.307458 0.281688 0.107277 0.307531 -0.107285 0.0 +1633 3.05 3.35 3.75 -365.113 209.441 365.113 9554.04 -209.441 -9554.04 0.0 +1634 3.05 3.35 11.25 -204.246 81.0767 204.246 3280.1 -81.0766 -3280.1 0.0 +1635 3.05 3.35 18.75 -79.3542 9.6114 79.3542 951.267 -9.61141 -951.267 0.0 +1636 3.05 3.35 26.25 -20.8335 -5.94072 20.8335 209.249 5.9407 -209.249 0.0 +1637 3.05 3.35 33.75 -3.39742 -2.81825 3.39744 28.9771 2.81824 -28.9771 0.0 +1638 3.05 3.35 41.25 -0.403877 -0.37604 0.403872 1.67216 0.375997 -1.67217 0.0 +1639 3.05 3.35 48.75 -0.0863015 -0.268756 0.0862503 0.0304183 0.2687 -0.0303612 0.0 +1640 3.05 3.35 56.25 -0.0467076 -0.385723 0.0467254 0.0764897 0.385756 -0.0765678 0.0 +1641 3.05 3.35 63.75 -0.0765137 -0.296157 0.076492 0.0332949 0.296254 -0.033302 0.0 +1642 3.05 3.35 71.25 -0.0737102 -0.217777 0.0736319 -0.011919 0.217711 0.0118976 0.0 +1643 3.05 3.35 78.75 -0.0386226 -0.164005 0.0385937 -0.0252131 0.164091 0.0252167 0.0 +1644 3.05 3.35 86.25 -0.00860859 -0.0968502 0.00848829 -0.0245854 0.0969682 0.0245984 0.0 +1645 3.05 3.35 93.75 0.0147737 -0.0236231 -0.0147163 -0.0288229 0.0237517 0.0288162 0.0 +1646 3.05 3.35 101.25 0.0330742 0.0394288 -0.0329504 -0.0272844 -0.0394857 0.0273121 0.0 +1647 3.05 3.35 108.75 0.0377886 0.0770313 -0.0378089 -0.0166062 -0.0771797 0.0166531 0.0 +1648 3.05 3.35 116.25 0.0269164 0.0808568 -0.0269524 -0.00526022 -0.0808528 0.00523792 0.0 +1649 3.05 3.35 123.75 0.00994602 0.0605897 -0.00992017 0.00301009 -0.06072 -0.00291031 0.0 +1650 3.05 3.35 131.25 -0.00533206 0.0321631 0.00513532 0.00937287 -0.0322053 -0.00941624 0.0 +1651 3.05 3.35 138.75 -0.0198079 0.00170782 0.0198683 0.0152825 -0.00186433 -0.0152538 0.0 +1652 3.05 3.35 146.25 -0.0421542 -0.0369206 0.0421364 0.0228346 0.0366588 -0.0227076 0.0 +1653 3.05 3.35 153.75 -0.0772172 -0.0895244 0.0772434 0.0344402 0.0896002 -0.0344561 0.0 +1654 3.05 3.35 161.25 -0.121604 -0.151599 0.12161 0.0498996 0.151602 -0.0499331 0.0 +1655 3.05 3.35 168.75 -0.163376 -0.208149 0.163288 0.0652244 0.208133 -0.0652161 0.0 +1656 3.05 3.35 176.25 -0.188553 -0.242014 0.18862 0.0748184 0.241996 -0.0748296 0.0 +1657 3.05 3.45 3.75 -49.0063 211.636 49.0063 4534.02 -211.636 -4534.02 0.0 +1658 3.05 3.45 11.25 -16.2879 99.9048 16.2879 1783.56 -99.9048 -1783.56 0.0 +1659 3.05 3.45 18.75 1.92371 24.1588 -1.92369 528.913 -24.1588 -528.913 0.0 +1660 3.05 3.45 26.25 3.92081 0.239734 -3.92085 114.895 -0.239708 -114.895 0.0 +1661 3.05 3.45 33.75 1.33681 -1.29813 -1.33683 15.4468 1.29814 -15.4467 0.0 +1662 3.05 3.45 41.25 0.0515692 -0.168192 -0.0515773 0.808296 0.168187 -0.808324 0.0 +1663 3.05 3.45 48.75 -0.0454932 -0.172325 0.0455576 -0.0119284 0.172203 0.0119136 0.0 +1664 3.05 3.45 56.25 -0.00725921 -0.261217 0.00720111 0.0402311 0.261254 -0.040187 0.0 +1665 3.05 3.45 63.75 -0.0304125 -0.195611 0.0304302 0.0163773 0.195633 -0.0163835 0.0 +1666 3.05 3.45 71.25 -0.0332991 -0.159008 0.0333114 -0.00806962 0.159016 0.00804613 0.0 +1667 3.05 3.45 78.75 -0.0178735 -0.133654 0.0179131 -0.00824974 0.13361 0.00825353 0.0 +1668 3.05 3.45 86.25 -0.00502976 -0.0823886 0.00511234 -0.00794398 0.0823682 0.00794143 0.0 +1669 3.05 3.45 93.75 0.00414406 -0.0240697 -0.00419551 -0.0119802 0.0240974 0.0119811 0.0 +1670 3.05 3.45 101.25 0.0110567 0.0255518 -0.0111244 -0.0104323 -0.025573 0.0104402 0.0 +1671 3.05 3.45 108.75 0.0138462 0.0574772 -0.013883 -0.00606324 -0.0575893 0.00608259 0.0 +1672 3.05 3.45 116.25 0.011077 0.0635865 -0.0110606 -0.00305434 -0.0635874 0.00307944 0.0 +1673 3.05 3.45 123.75 0.00449426 0.0488256 -0.00448388 0.000439858 -0.0487677 -0.000429246 0.0 +1674 3.05 3.45 131.25 -0.0019067 0.0282409 0.0019165 0.0047807 -0.028183 -0.00479583 0.0 +1675 3.05 3.45 138.75 -0.00725526 0.00817585 0.0071253 0.00823976 -0.0082291 -0.00826636 0.0 +1676 3.05 3.45 146.25 -0.0164527 -0.017166 0.0163605 0.0119186 0.0170814 -0.0118721 0.0 +1677 3.05 3.45 153.75 -0.0355769 -0.0560084 0.0355731 0.0191433 0.0558956 -0.0190579 0.0 +1678 3.05 3.45 161.25 -0.0646594 -0.106219 0.0647645 0.0307881 0.106203 -0.0308022 0.0 +1679 3.05 3.45 168.75 -0.0953586 -0.154516 0.0954731 0.0434057 0.154565 -0.0434184 0.0 +1680 3.05 3.45 176.25 -0.115325 -0.184291 0.11528 0.0516029 0.184203 -0.0515372 0.0 +1681 3.05 3.55 3.75 58.2865 95.694 -58.2865 1303.18 -95.694 -1303.18 0.0 +1682 3.05 3.55 11.25 43.7842 47.0725 -43.7842 564.702 -47.0725 -564.702 0.0 +1683 3.05 3.55 18.75 24.1468 11.6001 -24.1468 170.104 -11.6002 -170.104 0.0 +1684 3.05 3.55 26.25 9.2032 0.165595 -9.2032 36.0656 -0.165608 -36.0656 0.0 +1685 3.05 3.55 33.75 2.10018 -0.495089 -2.10018 4.59251 0.495098 -4.5925 0.0 +1686 3.05 3.55 41.25 0.159888 0.0314295 -0.159875 0.213805 -0.0314347 -0.213825 0.0 +1687 3.05 3.55 48.75 -0.0316332 -0.0209589 0.0316297 0.0113881 0.020965 -0.011392 0.0 +1688 3.05 3.55 56.25 -0.00590874 -0.08247 0.00589294 0.029912 0.0824799 -0.0299018 0.0 +1689 3.05 3.55 63.75 -0.00460387 -0.0639712 0.00458972 0.0134455 0.0639916 -0.0134371 0.0 +1690 3.05 3.55 71.25 -0.00323754 -0.0605657 0.00327371 0.00123371 0.0605309 -0.00124148 0.0 +1691 3.05 3.55 78.75 -0.000975075 -0.0526099 0.000959984 0.00021812 0.052629 -0.000218025 0.0 +1692 3.05 3.55 86.25 -0.00152766 -0.0304211 0.00152531 -0.000124893 0.0304344 0.000128979 0.0 +1693 3.05 3.55 93.75 -0.00281045 -0.0103052 0.00282543 -0.000164696 0.0103138 0.000165631 0.0 +1694 3.05 3.55 101.25 -0.000794283 0.00655645 0.00082915 9.05452e-05 -0.0065146 -9.18973e-05 0.0 +1695 3.05 3.55 108.75 0.0048571 0.0208882 -0.00483972 -0.00172205 -0.020898 0.00171912 0.0 +1696 3.05 3.55 116.25 0.00910593 0.0261263 -0.00910381 -0.00286916 -0.026165 0.00289949 0.0 +1697 3.05 3.55 123.75 0.00835341 0.0213906 -0.00837047 -0.000577344 -0.0213633 0.000556754 0.0 +1698 3.05 3.55 131.25 0.00484672 0.0140179 -0.00483896 0.00261085 -0.0140112 -0.00259889 0.0 +1699 3.05 3.55 138.75 0.00145793 0.00803444 -0.00146708 0.00365082 -0.00802698 -0.00365445 0.0 +1700 3.05 3.55 146.25 -0.00319952 -0.000185068 0.00323208 0.00391313 0.000156672 -0.00387595 0.0 +1701 3.05 3.55 153.75 -0.0136071 -0.0160629 0.0136006 0.0069895 0.0160638 -0.00699597 0.0 +1702 3.05 3.55 161.25 -0.0307544 -0.0391932 0.0307909 0.0140586 0.0392269 -0.0140635 0.0 +1703 3.05 3.55 168.75 -0.0498663 -0.0628118 0.0498782 0.0225481 0.0628021 -0.0225421 0.0 +1704 3.05 3.55 176.25 -0.0625385 -0.0776921 0.0625437 0.0282624 0.0776849 -0.0282597 0.0 +1705 3.05 3.65 3.75 14.7738 9.01288 -14.7738 99.4234 -9.01288 -99.4234 0.0 +1706 3.05 3.65 11.25 10.4256 4.10096 -10.4256 45.9297 -4.10096 -45.9297 0.0 +1707 3.05 3.65 18.75 5.33829 0.564282 -5.33829 13.8766 -0.564281 -13.8766 0.0 +1708 3.05 3.65 26.25 1.92055 -0.318539 -1.92055 2.83407 0.318537 -2.83407 0.0 +1709 3.05 3.65 33.75 0.431842 -0.140656 -0.431843 0.348739 0.140656 -0.348739 0.0 +1710 3.05 3.65 41.25 0.0364247 0.00723669 -0.0364242 0.0264389 -0.00723644 -0.0264393 0.0 +1711 3.05 3.65 48.75 -0.0100345 0.0159315 0.0100318 0.0080024 -0.0159293 -0.00800035 0.0 +1712 3.05 3.65 56.25 -0.00452025 0.00778732 0.00451941 0.00551883 -0.00778686 -0.00552083 0.0 +1713 3.05 3.65 63.75 -0.000672337 0.00521555 0.000670408 0.00280248 -0.00521397 -0.00280318 0.0 +1714 3.05 3.65 71.25 0.000360923 0.00171355 -0.00036216 0.00121365 -0.00171269 -0.00121435 0.0 +1715 3.05 3.65 78.75 6.70805e-05 0.000819412 -6.59271e-05 0.000597606 -0.000817676 -0.000597435 0.0 +1716 3.05 3.65 86.25 -0.00057186 0.000644185 0.000572355 0.000567504 -0.00064307 -0.000567647 0.0 +1717 3.05 3.65 93.75 -0.000751471 -0.00106817 0.000749874 0.000757072 0.00106639 -0.000757055 0.0 +1718 3.05 3.65 101.25 0.000275919 -0.00183009 -0.000275096 0.000255174 0.00183474 -0.00025562 0.0 +1719 3.05 3.65 108.75 0.00189848 -0.000761837 -0.00189497 -0.000636546 0.000759074 0.000637236 0.0 +1720 3.05 3.65 116.25 0.00236351 -0.000115402 -0.00236272 -0.000553323 0.000119324 0.000553044 0.0 +1721 3.05 3.65 123.75 0.00106135 -0.00107726 -0.00106142 0.000592741 0.00108013 -0.000595129 0.0 +1722 3.05 3.65 131.25 -0.000675214 -0.0023987 0.000676951 0.00145629 0.00239971 -0.00145617 0.0 +1723 3.05 3.65 138.75 -0.00134281 -0.00270273 0.00134522 0.00120903 0.00269853 -0.00120659 0.0 +1724 3.05 3.65 146.25 -0.000900174 -0.00203273 0.000901187 0.000435489 0.00203583 -0.00043519 0.0 +1725 3.05 3.65 153.75 -0.000477871 -0.00132233 0.00047692 0.000219008 0.00131769 -0.000216421 0.0 +1726 3.05 3.65 161.25 -0.000970611 -0.00119912 0.000968838 0.000989395 0.00120357 -0.000993014 0.0 +1727 3.05 3.65 168.75 -0.00221265 -0.00158211 0.00221741 0.00227827 0.00158658 -0.00228145 0.0 +1728 3.05 3.65 176.25 -0.00325813 -0.00197769 0.00326165 0.00322864 0.00198236 -0.00323014 0.0 +1729 3.15 2.55 3.75 -27.4076 -1177.54 27.4076 2986.48 1177.54 -2986.48 0.0 +1730 3.15 2.55 11.25 114.909 -893.434 -114.909 1451.97 893.434 -1451.97 0.0 +1731 3.15 2.55 18.75 220.927 -531.426 -220.927 381.487 531.426 -381.487 0.0 +1732 3.15 2.55 26.25 220.034 -241.118 -220.034 -14.948 241.118 14.948 0.0 +1733 3.15 2.55 33.75 151.765 -67.0502 -151.765 -77.8707 67.0502 77.8707 0.0 +1734 3.15 2.55 41.25 77.6615 10.845 -77.6615 -49.9303 -10.845 49.9303 0.0 +1735 3.15 2.55 48.75 29.4755 32.5379 -29.4755 -24.2324 -32.5379 24.2323 0.0 +1736 3.15 2.55 56.25 7.15336 31.0306 -7.15333 -14.0732 -31.0306 14.0732 0.0 +1737 3.15 2.55 63.75 -1.05485 24.6005 1.05486 -12.17 -24.6005 12.17 0.0 +1738 3.15 2.55 71.25 -4.2524 19.4264 4.25245 -12.4357 -19.4264 12.4357 0.0 +1739 3.15 2.55 78.75 -6.26403 15.3863 6.26407 -11.9586 -15.3863 11.9586 0.0 +1740 3.15 2.55 86.25 -7.82419 11.1006 7.82418 -9.89676 -11.1007 9.89676 0.0 +1741 3.15 2.55 93.75 -8.44213 6.27427 8.44211 -6.88922 -6.27428 6.88922 0.0 +1742 3.15 2.55 101.25 -7.38509 1.54713 7.38513 -4.12212 -1.54706 4.12211 0.0 +1743 3.15 2.55 108.75 -4.32105 -2.46579 4.32104 -2.35334 2.46578 2.35333 0.0 +1744 3.15 2.55 116.25 0.406533 -5.63185 -0.406541 -1.60535 5.63179 1.60537 0.0 +1745 3.15 2.55 123.75 5.96181 -8.14327 -5.96181 -1.46219 8.14332 1.46217 0.0 +1746 3.15 2.55 131.25 11.4239 -10.2167 -11.4239 -1.47786 10.2167 1.47787 0.0 +1747 3.15 2.55 138.75 16.1105 -11.9601 -16.1106 -1.38993 11.9601 1.38992 0.0 +1748 3.15 2.55 146.25 19.6942 -13.3963 -19.6941 -1.1318 13.3963 1.13184 0.0 +1749 3.15 2.55 153.75 22.1564 -14.525 -22.1565 -0.756739 14.525 0.756719 0.0 +1750 3.15 2.55 161.25 23.6733 -15.3528 -23.6732 -0.361675 15.3528 0.361658 0.0 +1751 3.15 2.55 168.75 24.4933 -15.8939 -24.4933 -0.0403958 15.894 0.0403855 0.0 +1752 3.15 2.55 176.25 24.8391 -16.1612 -24.8391 0.138146 16.1611 -0.13812 0.0 +1753 3.15 2.65 3.75 -382.3 -1173.57 382.3 4819.79 1173.57 -4819.79 0.0 +1754 3.15 2.65 11.25 -147.278 -867.4 147.278 2217.25 867.401 -2217.25 0.0 +1755 3.15 2.65 18.75 53.0495 -503.218 -53.0495 646.011 503.218 -646.011 0.0 +1756 3.15 2.65 26.25 120.505 -229.082 -120.505 79.9388 229.082 -79.9388 0.0 +1757 3.15 2.65 33.75 95.7401 -74.5765 -95.7401 -36.4567 74.5765 36.4568 0.0 +1758 3.15 2.65 41.25 47.9555 -8.51743 -47.9555 -27.788 8.51743 27.788 0.0 +1759 3.15 2.65 48.75 15.3087 10.8882 -15.3087 -11.5215 -10.8882 11.5215 0.0 +1760 3.15 2.65 56.25 1.71235 12.3958 -1.71239 -5.88678 -12.3958 5.88679 0.0 +1761 3.15 2.65 63.75 -1.85784 9.95377 1.85788 -5.32284 -9.95375 5.32283 0.0 +1762 3.15 2.65 71.25 -2.5107 8.07183 2.51069 -5.66042 -8.0718 5.66043 0.0 +1763 3.15 2.65 78.75 -2.93298 6.81901 2.93306 -5.45184 -6.81897 5.45184 0.0 +1764 3.15 2.65 86.25 -3.48826 5.29061 3.48826 -4.3935 -5.29062 4.3935 0.0 +1765 3.15 2.65 93.75 -3.74316 3.25676 3.74317 -2.91544 -3.25679 2.91544 0.0 +1766 3.15 2.65 101.25 -3.14313 1.11525 3.14314 -1.68737 -1.11521 1.68737 0.0 +1767 3.15 2.65 108.75 -1.44888 -0.762392 1.44888 -1.05333 0.762401 1.05332 0.0 +1768 3.15 2.65 116.25 1.10632 -2.32234 -1.10636 -0.915764 2.32235 0.915769 0.0 +1769 3.15 2.65 123.75 3.999 -3.68327 -3.99905 -0.981961 3.68328 0.981933 0.0 +1770 3.15 2.65 131.25 6.71067 -4.9306 -6.71071 -1.01292 4.93052 1.01295 0.0 +1771 3.15 2.65 138.75 8.90941 -6.06124 -8.90948 -0.909875 6.06128 0.909848 0.0 +1772 3.15 2.65 146.25 10.478 -7.033 -10.478 -0.682663 7.03303 0.682641 0.0 +1773 3.15 2.65 153.75 11.4595 -7.81473 -11.4594 -0.390365 7.81474 0.390393 0.0 +1774 3.15 2.65 161.25 11.9866 -8.3981 -11.9866 -0.100784 8.39817 0.100743 0.0 +1775 3.15 2.65 168.75 12.2197 -8.78538 -12.2197 0.127706 8.78545 -0.127755 0.0 +1776 3.15 2.65 176.25 12.2968 -8.97894 -12.2968 0.253018 8.97893 -0.253004 0.0 +1777 3.15 2.75 3.75 -717.305 -1099.48 717.305 7349.12 1099.48 -7349.12 0.0 +1778 3.15 2.75 11.25 -384.145 -785.693 384.145 3043.13 785.693 -3043.13 0.0 +1779 3.15 2.75 18.75 -94.9682 -438.11 94.9682 898.217 438.11 -898.217 0.0 +1780 3.15 2.75 26.25 35.5855 -192.065 -35.5856 161.966 192.065 -161.966 0.0 +1781 3.15 2.75 33.75 51.0314 -63.115 -51.0314 -5.03306 63.115 5.03305 0.0 +1782 3.15 2.75 41.25 26.9766 -12.3012 -26.9766 -13.3863 12.3012 13.3863 0.0 +1783 3.15 2.75 48.75 7.19477 2.0083 -7.19476 -4.51753 -2.00835 4.51753 0.0 +1784 3.15 2.75 56.25 -0.300499 3.91871 0.300449 -1.9416 -3.91867 1.94161 0.0 +1785 3.15 2.75 63.75 -1.41191 3.2192 1.41193 -2.06438 -3.2192 2.06437 0.0 +1786 3.15 2.75 71.25 -1.09862 2.77961 1.09861 -2.31409 -2.77961 2.31408 0.0 +1787 3.15 2.75 78.75 -0.97934 2.69801 0.979376 -2.21566 -2.69799 2.21565 0.0 +1788 3.15 2.75 86.25 -1.14939 2.40786 1.14941 -1.73719 -2.40788 1.73719 0.0 +1789 3.15 2.75 93.75 -1.28476 1.7366 1.28478 -1.11459 -1.73658 1.11459 0.0 +1790 3.15 2.75 101.25 -1.02518 0.915603 1.02513 -0.67205 -0.915604 0.67204 0.0 +1791 3.15 2.75 108.75 -0.235222 0.152271 0.235251 -0.525599 -0.152295 0.52559 0.0 +1792 3.15 2.75 116.25 0.926335 -0.543285 -0.92633 -0.564825 0.54314 0.56486 0.0 +1793 3.15 2.75 123.75 2.16828 -1.23531 -2.16834 -0.624796 1.23529 0.624801 0.0 +1794 3.15 2.75 131.25 3.25208 -1.93488 -3.25213 -0.609967 1.93479 0.609996 0.0 +1795 3.15 2.75 138.75 4.06218 -2.59574 -4.06216 -0.506014 2.5958 0.506003 0.0 +1796 3.15 2.75 146.25 4.58223 -3.16844 -4.58219 -0.340482 3.16849 0.340441 0.0 +1797 3.15 2.75 153.75 4.85345 -3.63009 -4.85355 -0.150086 3.63016 0.150049 0.0 +1798 3.15 2.75 161.25 4.94755 -3.97851 -4.9476 0.031051 3.97843 -0.0310191 0.0 +1799 3.15 2.75 168.75 4.94687 -4.2147 -4.94688 0.172789 4.21474 -0.172809 0.0 +1800 3.15 2.75 176.25 4.92478 -4.33518 -4.92479 0.250736 4.33503 -0.250683 0.0 +1801 3.15 2.85 3.75 -983.407 -958.469 983.407 10771.7 958.469 -10771.7 0.0 +1802 3.15 2.85 11.25 -561.262 -663.174 561.262 3820.65 663.174 -3820.65 0.0 +1803 3.15 2.85 18.75 -205.213 -355.243 205.213 1105.74 355.243 -1105.74 0.0 +1804 3.15 2.85 26.25 -27.6167 -147.063 27.6167 223.87 147.063 -223.87 0.0 +1805 3.15 2.85 33.75 18.7771 -45.3665 -18.7771 16.2432 45.3665 -16.2432 0.0 +1806 3.15 2.85 41.25 13.1994 -9.43272 -13.1993 -5.05834 9.43266 5.05833 0.0 +1807 3.15 2.85 48.75 2.91908 -0.530057 -2.9191 -1.2319 0.530074 1.23189 0.0 +1808 3.15 2.85 56.25 -0.745478 0.739328 0.745498 -0.367498 -0.73929 0.367529 0.0 +1809 3.15 2.85 63.75 -0.81633 0.642883 0.816313 -0.716454 -0.6429 0.716445 0.0 +1810 3.15 2.85 71.25 -0.349638 0.675056 0.349664 -0.850932 -0.675061 0.850935 0.0 +1811 3.15 2.85 78.75 -0.149673 0.893423 0.149656 -0.801893 -0.893408 0.80189 0.0 +1812 3.15 2.85 86.25 -0.178712 0.982033 0.178685 -0.62163 -0.982034 0.621621 0.0 +1813 3.15 2.85 93.75 -0.242997 0.836119 0.242971 -0.408167 -0.836147 0.408172 0.0 +1814 3.15 2.85 101.25 -0.148846 0.585948 0.148786 -0.292887 -0.586035 0.292911 0.0 +1815 3.15 2.85 108.75 0.15606 0.331721 -0.155971 -0.293195 -0.331795 0.293195 0.0 +1816 3.15 2.85 116.25 0.567422 0.0594929 -0.567484 -0.331987 -0.0594022 0.331944 0.0 +1817 3.15 2.85 123.75 0.950702 -0.26038 -0.950731 -0.339941 0.260353 0.33994 0.0 +1818 3.15 2.85 131.25 1.23582 -0.606832 -1.23578 -0.298798 0.60675 0.298849 0.0 +1819 3.15 2.85 138.75 1.41461 -0.932834 -1.4147 -0.222025 0.932801 0.222074 0.0 +1820 3.15 2.85 146.25 1.50107 -1.20911 -1.50116 -0.126578 1.20906 0.1266 0.0 +1821 3.15 2.85 153.75 1.51127 -1.43277 -1.51127 -0.0238121 1.43294 0.0237802 0.0 +1822 3.15 2.85 161.25 1.46794 -1.61001 -1.46801 0.0755362 1.60995 -0.0755328 0.0 +1823 3.15 2.85 168.75 1.40576 -1.73855 -1.40577 0.156592 1.73865 -0.156591 0.0 +1824 3.15 2.85 176.25 1.36216 -1.80797 -1.36229 0.202726 1.80777 -0.202612 0.0 +1825 3.15 2.95 3.75 -1133.1 -747.847 1133.1 15204 747.847 -15204 0.0 +1826 3.15 2.95 11.25 -651.39 -510.215 651.39 4410.35 510.215 -4410.35 0.0 +1827 3.15 2.95 18.75 -265.384 -267.084 265.384 1240.36 267.084 -1240.36 0.0 +1828 3.15 2.95 26.25 -65.2059 -104.595 65.2059 261.401 104.595 -261.401 0.0 +1829 3.15 2.95 33.75 -1.1926 -29.0236 1.19257 28.5192 29.0237 -28.5193 0.0 +1830 3.15 2.95 41.25 5.04407 -5.31881 -5.04405 -0.879049 5.31877 0.879106 0.0 +1831 3.15 2.95 48.75 0.8753 -0.662049 -0.875315 -0.00872159 0.662128 0.00871009 0.0 +1832 3.15 2.95 56.25 -0.675197 -0.139671 0.675175 0.120631 0.13964 -0.120625 0.0 +1833 3.15 2.95 63.75 -0.46544 -0.0874773 0.465367 -0.212443 0.0874908 0.212434 0.0 +1834 3.15 2.95 71.25 -0.134062 0.0228327 0.133943 -0.278094 -0.0228418 0.278081 0.0 +1835 3.15 2.95 78.75 0.0168447 0.202657 -0.0168125 -0.266574 -0.202643 0.266593 0.0 +1836 3.15 2.95 86.25 0.0503193 0.315249 -0.0504007 -0.219306 -0.315241 0.219299 0.0 +1837 3.15 2.95 93.75 0.0502706 0.316426 -0.050226 -0.163651 -0.316425 0.163654 0.0 +1838 3.15 2.95 101.25 0.0985225 0.273347 -0.0985613 -0.146427 -0.273435 0.146416 0.0 +1839 3.15 2.95 108.75 0.199999 0.219778 -0.200098 -0.158023 -0.219778 0.157999 0.0 +1840 3.15 2.95 116.25 0.291735 0.132266 -0.291722 -0.160235 -0.132314 0.160262 0.0 +1841 3.15 2.95 123.75 0.329285 0.00185382 -0.329175 -0.137448 -0.00180331 0.13745 0.0 +1842 3.15 2.95 131.25 0.321385 -0.143622 -0.32142 -0.0993839 0.143295 0.0995188 0.0 +1843 3.15 2.95 138.75 0.294709 -0.273448 -0.294757 -0.0582161 0.273501 0.0581947 0.0 +1844 3.15 2.95 146.25 0.258238 -0.381886 -0.258155 -0.0155935 0.381841 0.0156253 0.0 +1845 3.15 2.95 153.75 0.205735 -0.479784 -0.205679 0.0327166 0.479841 -0.0327496 0.0 +1846 3.15 2.95 161.25 0.136947 -0.573355 -0.136947 0.0862248 0.573448 -0.0862026 0.0 +1847 3.15 2.95 168.75 0.0680279 -0.653564 -0.0680505 0.135147 0.653578 -0.135158 0.0 +1848 3.15 2.95 176.25 0.0243153 -0.701137 -0.024347 0.164886 0.701089 -0.164896 0.0 +1849 3.15 3.05 3.75 -1128.81 -471.423 1128.81 19895.2 471.423 -19895.2 0.0 +1850 3.15 3.05 11.25 -641.984 -337.183 641.984 4682.14 337.183 -4682.14 0.0 +1851 3.15 3.05 18.75 -271.929 -180.723 271.929 1285.25 180.723 -1285.25 0.0 +1852 3.15 3.05 26.25 -77.5442 -69.2222 77.5442 273.985 69.2222 -273.985 0.0 +1853 3.15 3.05 33.75 -10.5076 -17.2305 10.5076 33.7556 17.2305 -33.7556 0.0 +1854 3.15 3.05 41.25 0.942208 -2.36919 -0.94215 0.890868 2.36915 -0.890877 0.0 +1855 3.15 3.05 48.75 0.0413467 -0.341702 -0.0413853 0.284244 0.341717 -0.284258 0.0 +1856 3.15 3.05 56.25 -0.512539 -0.300118 0.512514 0.221017 0.300055 -0.221053 0.0 +1857 3.15 3.05 63.75 -0.326838 -0.225898 0.326884 -0.0197921 0.225764 0.019847 0.0 +1858 3.15 3.05 71.25 -0.151039 -0.130692 0.151122 -0.0702483 0.130597 0.0702255 0.0 +1859 3.15 3.05 78.75 -0.0510117 -0.0313348 0.0509675 -0.0903598 0.0314037 0.0903852 0.0 +1860 3.15 3.05 86.25 0.0100222 0.0417384 -0.00996435 -0.0903162 -0.0416107 0.090323 0.0 +1861 3.15 3.05 93.75 0.0505204 0.0773802 -0.050533 -0.0784695 -0.0774641 0.0784768 0.0 +1862 3.15 3.05 101.25 0.0974621 0.100727 -0.0974267 -0.0743341 -0.100721 0.0743344 0.0 +1863 3.15 3.05 108.75 0.138649 0.111398 -0.138664 -0.0691871 -0.111313 0.06919 0.0 +1864 3.15 3.05 116.25 0.139119 0.0890717 -0.139004 -0.0513441 -0.089038 0.0513577 0.0 +1865 3.15 3.05 123.75 0.0947612 0.0372026 -0.0948916 -0.0254731 -0.0372875 0.0254522 0.0 +1866 3.15 3.05 131.25 0.0352216 -0.0199093 -0.0352501 -0.0029018 0.0197286 0.003042 0.0 +1867 3.15 3.05 138.75 -0.0170544 -0.0691083 0.0169796 0.0128318 0.0690801 -0.0128405 0.0 +1868 3.15 3.05 146.25 -0.0650118 -0.117582 0.0649726 0.0284301 0.117519 -0.0283881 0.0 +1869 3.15 3.05 153.75 -0.123114 -0.17842 0.123091 0.0525561 0.178429 -0.0526076 0.0 +1870 3.15 3.05 161.25 -0.194145 -0.252323 0.194335 0.0863865 0.252507 -0.0864426 0.0 +1871 3.15 3.05 168.75 -0.263497 -0.323299 0.263507 0.121102 0.323227 -0.121095 0.0 +1872 3.15 3.05 176.25 -0.306581 -0.367138 0.306588 0.143278 0.367034 -0.143215 0.0 +1873 3.15 3.15 3.75 -956.411 -157.961 956.411 21490.2 157.961 -21490.2 0.0 +1874 3.15 3.15 11.25 -539.133 -158.376 539.133 4570.6 158.376 -4570.6 0.0 +1875 3.15 3.15 18.75 -230.746 -100.448 230.746 1239.08 100.448 -1239.08 0.0 +1876 3.15 3.15 26.25 -69.0286 -41.453 69.0285 264.322 41.4531 -264.322 0.0 +1877 3.15 3.15 33.75 -11.9443 -9.95787 11.9443 34.0693 9.95793 -34.0693 0.0 +1878 3.15 3.15 41.25 -0.582646 -0.953585 0.58261 1.49815 0.953585 -1.49815 0.0 +1879 3.15 3.15 48.75 -0.185725 -0.189058 0.185672 0.262739 0.188971 -0.262688 0.0 +1880 3.15 3.15 56.25 -0.35028 -0.339487 0.350287 0.209512 0.33955 -0.209522 0.0 +1881 3.15 3.15 63.75 -0.251984 -0.259721 0.252092 0.053384 0.25962 -0.0533321 0.0 +1882 3.15 3.15 71.25 -0.171035 -0.17401 0.170979 -0.00382131 0.173971 0.003789 0.0 +1883 3.15 3.15 78.75 -0.103081 -0.108356 0.103106 -0.0377398 0.108153 0.0377189 0.0 +1884 3.15 3.15 86.25 -0.0427632 -0.046394 0.0427713 -0.0466376 0.0463966 0.046639 0.0 +1885 3.15 3.15 93.75 0.00566927 0.00495154 -0.00569908 -0.0428492 -0.00499621 0.0428512 0.0 +1886 3.15 3.15 101.25 0.0504745 0.0463917 -0.0505543 -0.0360707 -0.0464682 0.0360915 0.0 +1887 3.15 3.15 108.75 0.0794281 0.0686813 -0.0795551 -0.0228925 -0.0688457 0.0229235 0.0 +1888 3.15 3.15 116.25 0.0742594 0.061464 -0.0741882 -0.00450275 -0.0615471 0.00449575 0.0 +1889 3.15 3.15 123.75 0.0412054 0.0335455 -0.0410459 0.0122873 -0.0334909 -0.0122658 0.0 +1890 3.15 3.15 131.25 0.00256192 0.00204886 -0.00232937 0.0225283 -0.00204045 -0.0224878 0.0 +1891 3.15 3.15 138.75 -0.0317873 -0.0281822 0.0319935 0.0275685 0.0282669 -0.0275469 0.0 +1892 3.15 3.15 146.25 -0.0711984 -0.0672197 0.0711102 0.0343857 0.0670901 -0.0343675 0.0 +1893 3.15 3.15 153.75 -0.126399 -0.123952 0.126399 0.0498039 0.123889 -0.049802 0.0 +1894 3.15 3.15 161.25 -0.195704 -0.194707 0.195608 0.074158 0.194762 -0.0742025 0.0 +1895 3.15 3.15 168.75 -0.261579 -0.261942 0.261393 0.100026 0.261901 -0.100036 0.0 +1896 3.15 3.15 176.25 -0.301524 -0.302836 0.301604 0.116713 0.302746 -0.116682 0.0 +1897 3.15 3.25 3.75 -650.193 134.226 650.193 17650.1 -134.226 -17650.1 0.0 +1898 3.15 3.25 11.25 -365.979 7.48146 365.979 4109.37 -7.48145 -4109.37 0.0 +1899 3.15 3.25 18.75 -155.208 -30.119 155.208 1115.3 30.119 -1115.3 0.0 +1900 3.15 3.25 26.25 -46.6783 -20.0797 46.6784 237.228 20.0796 -237.228 0.0 +1901 3.15 3.25 33.75 -8.72374 -5.70064 8.7238 31.186 5.70056 -31.186 0.0 +1902 3.15 3.25 41.25 -0.780005 -0.490403 0.779991 1.61053 0.490338 -1.61049 0.0 +1903 3.15 3.25 48.75 -0.160056 -0.188506 0.160035 0.172817 0.188447 -0.172832 0.0 +1904 3.15 3.25 56.25 -0.197253 -0.356173 0.197337 0.156424 0.35612 -0.156432 0.0 +1905 3.15 3.25 63.75 -0.16741 -0.265816 0.167365 0.0571964 0.265815 -0.0571946 0.0 +1906 3.15 3.25 71.25 -0.130237 -0.184874 0.130267 0.00234427 0.184786 -0.0023759 0.0 +1907 3.15 3.25 78.75 -0.0843061 -0.129234 0.0843542 -0.022381 0.129426 0.0223457 0.0 +1908 3.15 3.25 86.25 -0.03979 -0.0657959 0.0398035 -0.0277737 0.0658759 0.0277741 0.0 +1909 3.15 3.25 93.75 -0.00238909 -0.00774928 0.00240125 -0.0282358 0.00785304 0.028235 0.0 +1910 3.15 3.25 101.25 0.0303823 0.0357636 -0.0303854 -0.0222829 -0.0356794 0.0222854 0.0 +1911 3.15 3.25 108.75 0.0506977 0.0585556 -0.0506894 -0.0102554 -0.0584086 0.0102105 0.0 +1912 3.15 3.25 116.25 0.0502104 0.0558613 -0.050186 0.00160465 -0.0559321 -0.00157822 0.0 +1913 3.15 3.25 123.75 0.0345455 0.035523 -0.0344902 0.0104005 -0.0355763 -0.0103987 0.0 +1914 3.15 3.25 131.25 0.0151486 0.0110531 -0.015251 0.0158941 -0.0112994 -0.0157901 0.0 +1915 3.15 3.25 138.75 -0.0050971 -0.013565 0.00511178 0.019016 0.013684 -0.0190174 0.0 +1916 3.15 3.25 146.25 -0.0345021 -0.0459216 0.0345176 0.0233695 0.0459787 -0.0233686 0.0 +1917 3.15 3.25 153.75 -0.0793413 -0.0928252 0.079314 0.0332493 0.092565 -0.033146 0.0 +1918 3.15 3.25 161.25 -0.134603 -0.150218 0.13452 0.0491025 0.150129 -0.0490542 0.0 +1919 3.15 3.25 168.75 -0.18553 -0.204163 0.185623 0.0660649 0.204474 -0.0662343 0.0 +1920 3.15 3.25 176.25 -0.216402 -0.237045 0.216252 0.0770174 0.237253 -0.0771667 0.0 +1921 3.15 3.35 3.75 -275.127 338.879 275.127 11754.8 -338.879 -11754.8 0.0 +1922 3.15 3.35 11.25 -149.928 134.982 149.928 3283.86 -134.982 -3283.86 0.0 +1923 3.15 3.35 18.75 -59.9126 24.6097 59.9126 901.613 -24.6098 -901.613 0.0 +1924 3.15 3.35 26.25 -17.3899 -3.93464 17.3899 190.736 3.93463 -190.736 0.0 +1925 3.15 3.35 33.75 -3.54567 -2.80737 3.54565 25.2257 2.80735 -25.2256 0.0 +1926 3.15 3.35 41.25 -0.5028 -0.297045 0.502764 1.39094 0.297079 -1.39098 0.0 +1927 3.15 3.35 48.75 -0.0786613 -0.21351 0.0785848 0.0781363 0.213592 -0.0781848 0.0 +1928 3.15 3.35 56.25 -0.0749822 -0.340141 0.0749439 0.0885512 0.340151 -0.0884967 0.0 +1929 3.15 3.35 63.75 -0.0903085 -0.233796 0.0902789 0.0251462 0.233735 -0.0251422 0.0 +1930 3.15 3.35 71.25 -0.0742191 -0.168217 0.0742917 -0.0123034 0.168118 0.0122774 0.0 +1931 3.15 3.35 78.75 -0.0442502 -0.131009 0.0441129 -0.0159319 0.131038 0.0159283 0.0 +1932 3.15 3.35 86.25 -0.0140131 -0.074057 0.0140325 -0.0175558 0.0741452 0.0175633 0.0 +1933 3.15 3.35 93.75 0.0107044 -0.016984 -0.0107096 -0.0224514 0.0169392 0.0224516 0.0 +1934 3.15 3.35 101.25 0.0273468 0.0283944 -0.0273571 -0.0182899 -0.0285471 0.0182767 0.0 +1935 3.15 3.35 108.75 0.0341621 0.05763 -0.0342268 -0.00978414 -0.0577058 0.00979257 0.0 +1936 3.15 3.35 116.25 0.0303908 0.0623219 -0.030319 -0.00386081 -0.0623156 0.00386282 0.0 +1937 3.15 3.35 123.75 0.0193498 0.0473473 -0.0192958 0.00117491 -0.0471971 -0.0012989 0.0 +1938 3.15 3.35 131.25 0.00780853 0.0276758 -0.00776157 0.00608841 -0.0275645 -0.00615459 0.0 +1939 3.15 3.35 138.75 -0.00281951 0.00980171 0.0028173 0.00899561 -0.0103754 -0.00875617 0.0 +1940 3.15 3.35 146.25 -0.0177849 -0.0122083 0.0178591 0.0111587 0.0120863 -0.0110729 0.0 +1941 3.15 3.35 153.75 -0.0428755 -0.0468128 0.0427986 0.0164875 0.0467219 -0.0164577 0.0 +1942 3.15 3.35 161.25 -0.0757418 -0.0922436 0.0757394 0.0263114 0.0922185 -0.0263166 0.0 +1943 3.15 3.35 168.75 -0.107642 -0.136426 0.107584 0.0374315 0.136228 -0.0373364 0.0 +1944 3.15 3.35 176.25 -0.127132 -0.16362 0.127062 0.0447389 0.163558 -0.0447096 0.0 +1945 3.15 3.45 3.75 46.6657 326.302 -46.6657 5480.32 -326.302 -5480.32 0.0 +1946 3.15 3.45 11.25 39.3764 154.267 -39.3764 1815.17 -154.267 -1815.17 0.0 +1947 3.15 3.45 18.75 22.0244 42.3138 -22.0244 505.91 -42.3138 -505.91 0.0 +1948 3.15 3.45 26.25 7.29371 4.3406 -7.29372 105.668 -4.3406 -105.668 0.0 +1949 3.15 3.45 33.75 0.914334 -0.603679 -0.914334 13.7287 0.603677 -13.7287 0.0 +1950 3.15 3.45 41.25 -0.158065 -0.0326246 0.158056 0.711344 0.0326778 -0.711315 0.0 +1951 3.15 3.45 48.75 -0.0159738 -0.166204 0.0159671 0.0133403 0.16615 -0.0133219 0.0 +1952 3.15 3.45 56.25 -0.00488119 -0.253233 0.00491148 0.0471634 0.253244 -0.0471562 0.0 +1953 3.15 3.45 63.75 -0.0387289 -0.159738 0.0387929 0.00737726 0.159718 -0.00733701 0.0 +1954 3.15 3.45 71.25 -0.0342167 -0.123108 0.0342095 -0.0134089 0.123119 0.0133794 0.0 +1955 3.15 3.45 78.75 -0.0183889 -0.107233 0.0183971 -0.00702141 0.10719 0.00700092 0.0 +1956 3.15 3.45 86.25 -0.00224304 -0.0672358 0.00223149 -0.00740458 0.06732 0.00740179 0.0 +1957 3.15 3.45 93.75 0.00883338 -0.0235886 -0.00886164 -0.0107045 0.0235433 0.0107089 0.0 +1958 3.15 3.45 101.25 0.0123235 0.015828 -0.012348 -0.00762384 -0.0158064 0.00760398 0.0 +1959 3.15 3.45 108.75 0.0118714 0.0452165 -0.0118843 -0.00509858 -0.0451645 0.00505638 0.0 +1960 3.15 3.45 116.25 0.00859034 0.0531575 -0.00865278 -0.00443542 -0.0532255 0.00444204 0.0 +1961 3.15 3.45 123.75 0.00258788 0.0423716 -0.00256692 -0.00117868 -0.0424366 0.00121603 0.0 +1962 3.15 3.45 131.25 -0.00267606 0.0273421 0.00253797 0.00313079 -0.0273467 -0.00313102 0.0 +1963 3.15 3.45 138.75 -0.00458018 0.0145732 0.00460276 0.00490419 -0.0145389 -0.00492224 0.0 +1964 3.15 3.45 146.25 -0.00839922 -0.00315912 0.00836753 0.00593978 0.00307101 -0.00589991 0.0 +1965 3.15 3.45 153.75 -0.0209444 -0.0338477 0.020904 0.0108714 0.0337667 -0.0108179 0.0 +1966 3.15 3.45 161.25 -0.0433497 -0.0756648 0.043318 0.020838 0.0757092 -0.0208768 0.0 +1967 3.15 3.45 168.75 -0.0683875 -0.116448 0.0683041 0.0321496 0.116416 -0.0321632 0.0 +1968 3.15 3.45 176.25 -0.0847651 -0.141502 0.0847114 0.0395279 0.141475 -0.0394984 0.0 +1969 3.15 3.55 3.75 113.453 150.898 -113.453 1527.06 -150.898 -1527.06 0.0 +1970 3.15 3.55 11.25 75.6979 75.7027 -75.6979 574.861 -75.7027 -574.861 0.0 +1971 3.15 3.55 18.75 35.5664 22.022 -35.5664 161.502 -22.022 -161.502 0.0 +1972 3.15 3.55 26.25 10.941 2.87256 -10.941 32.6315 -2.87256 -32.6315 0.0 +1973 3.15 3.55 33.75 1.72278 0.0375193 -1.7228 3.93133 -0.0374953 -3.93134 0.0 +1974 3.15 3.55 41.25 0.0142898 0.108618 -0.0143047 0.136579 -0.108608 -0.136591 0.0 +1975 3.15 3.55 48.75 0.00816166 -0.0380896 -0.00814953 0.010256 0.0380813 -0.0102749 0.0 +1976 3.15 3.55 56.25 0.0124306 -0.0965177 -0.0124185 0.0389722 0.0965193 -0.0389853 0.0 +1977 3.15 3.55 63.75 -0.00596526 -0.0594462 0.00595775 0.0133454 0.0594234 -0.0133421 0.0 +1978 3.15 3.55 71.25 -0.00358192 -0.0502022 0.00356674 -0.001576 0.0502323 0.00155584 0.0 +1979 3.15 3.55 78.75 0.000427233 -0.0447805 -0.000397985 -0.000360659 0.0448087 0.000358663 0.0 +1980 3.15 3.55 86.25 0.00221954 -0.0289613 -0.00224103 0.000309741 0.0290046 -0.000307859 0.0 +1981 3.15 3.55 93.75 0.00167606 -0.0143391 -0.0016639 0.000808733 0.0143451 -0.000807743 0.0 +1982 3.15 3.55 101.25 0.00112826 0.001235 -0.00111313 0.000644257 -0.00118443 -0.000655222 0.0 +1983 3.15 3.55 108.75 0.00330286 0.0161835 -0.00328457 -0.00210868 -0.0161684 0.00210336 0.0 +1984 3.15 3.55 116.25 0.00487387 0.021415 -0.00489745 -0.00297998 -0.0214282 0.00298062 0.0 +1985 3.15 3.55 123.75 0.00293975 0.016899 -0.00293859 0.000267886 -0.0168868 -0.000264266 0.0 +1986 3.15 3.55 131.25 -0.000108452 0.0105143 0.000105308 0.0034128 -0.0105219 -0.00340601 0.0 +1987 3.15 3.55 138.75 -0.0019759 0.00532812 0.00199003 0.00354695 -0.00537804 -0.00353067 0.0 +1988 3.15 3.55 146.25 -0.00603215 -0.00319989 0.00603288 0.00350166 0.0031536 -0.00347955 0.0 +1989 3.15 3.55 153.75 -0.0177873 -0.0194322 0.017795 0.00752565 0.0194683 -0.00752983 0.0 +1990 3.15 3.55 161.25 -0.0380423 -0.0418389 0.038072 0.0161592 0.041823 -0.016153 0.0 +1991 3.15 3.55 168.75 -0.0604183 -0.0634358 0.0604406 0.025925 0.0634577 -0.0259272 0.0 +1992 3.15 3.55 176.25 -0.0751419 -0.0766462 0.0751429 0.0322594 0.0766293 -0.0322626 0.0 +1993 3.15 3.65 3.75 22.6045 15.6092 -22.6045 111.52 -15.6092 -111.52 0.0 +1994 3.15 3.65 11.25 14.9574 7.74254 -14.9574 45.5783 -7.74254 -45.5783 0.0 +1995 3.15 3.65 18.75 6.90511 1.96171 -6.90511 12.5917 -1.96171 -12.5917 0.0 +1996 3.15 3.65 26.25 2.1033 0.0752923 -2.1033 2.33462 -0.0752924 -2.33462 0.0 +1997 3.15 3.65 33.75 0.345582 -0.0501268 -0.345582 0.224112 0.0501278 -0.224114 0.0 +1998 3.15 3.65 41.25 0.0113715 0.0247154 -0.0113732 -0.00142732 -0.0247142 0.00142719 0.0 +1999 3.15 3.65 48.75 6.87534e-06 0.0140289 -8.51151e-06 0.00563543 -0.0140289 -0.00563605 0.0 +2000 3.15 3.65 56.25 0.00107984 0.0029724 -0.00108132 0.0085864 -0.00297002 -0.00858758 0.0 +2001 3.15 3.65 63.75 0.000469516 0.00270845 -0.000469271 0.00350089 -0.00271011 -0.00350175 0.0 +2002 3.15 3.65 71.25 0.00166924 0.00153728 -0.00167029 0.000471675 -0.00153501 -0.000472585 0.0 +2003 3.15 3.65 78.75 0.00174748 0.00147027 -0.00174735 0.000292892 -0.00147097 -0.000293091 0.0 +2004 3.15 3.65 86.25 0.000889203 0.00101364 -0.000888457 0.000849106 -0.00101254 -0.000849064 0.0 +2005 3.15 3.65 93.75 2.8391e-05 -0.000779719 -2.40476e-05 0.00107302 0.000781464 -0.0010731 0.0 +2006 3.15 3.65 101.25 0.000123662 -0.00119237 -0.000121972 0.000258462 0.00119287 -0.000258603 0.0 +2007 3.15 3.65 108.75 0.000918738 -7.37641e-05 -0.000914812 -0.00070731 7.40479e-05 0.000707953 0.0 +2008 3.15 3.65 116.25 0.00087327 0.000204194 -0.000871841 -0.000333298 -0.000200322 0.000333731 0.0 +2009 3.15 3.65 123.75 -0.000487938 -0.000958429 0.000488243 0.000977954 0.000952902 -0.000975387 0.0 +2010 3.15 3.65 131.25 -0.00192454 -0.00214305 0.00192471 0.00156629 0.00213806 -0.00156455 0.0 +2011 3.15 3.65 138.75 -0.00245031 -0.00237129 0.00244858 0.000874281 0.00237286 -0.000874291 0.0 +2012 3.15 3.65 146.25 -0.00267054 -0.00197417 0.00267194 -7.6905e-05 0.00197292 7.72814e-05 0.0 +2013 3.15 3.65 153.75 -0.00396803 -0.00167631 0.00396857 -7.83088e-05 0.00167684 7.95127e-05 0.0 +2014 3.15 3.65 161.25 -0.00685387 -0.0017756 0.00685877 0.001108 0.0017796 -0.00110938 0.0 +2015 3.15 3.65 168.75 -0.0103819 -0.00210183 0.0103815 0.00276801 0.00210519 -0.00277039 0.0 +2016 3.15 3.65 176.25 -0.0127948 -0.0023518 0.0127908 0.00391691 0.00234768 -0.00391514 0.0 +2017 3.25 2.55 3.75 -59.5545 -1160.49 59.5545 1973.77 1160.49 -1973.77 0.0 +2018 3.25 2.55 11.25 56.844 -883.608 -56.844 989.381 883.608 -989.381 0.0 +2019 3.25 2.55 18.75 150.984 -517.626 -150.984 245.884 517.626 -245.884 0.0 +2020 3.25 2.55 26.25 157.168 -217.116 -157.168 -29.2846 217.116 29.2846 0.0 +2021 3.25 2.55 33.75 104.452 -35.7233 -104.452 -62.8432 35.7233 62.8432 0.0 +2022 3.25 2.55 41.25 45.7976 43.3017 -45.7976 -37.3073 -43.3018 37.3072 0.0 +2023 3.25 2.55 48.75 9.60869 61.5692 -9.60866 -20.3111 -61.5692 20.3112 0.0 +2024 3.25 2.55 56.25 -4.20215 55.2685 4.20214 -17.2817 -55.2685 17.2817 0.0 +2025 3.25 2.55 63.75 -6.66487 44.7328 6.66491 -19.5438 -44.7328 19.5438 0.0 +2026 3.25 2.55 71.25 -6.50581 36.3932 6.50582 -21.044 -36.3932 21.044 0.0 +2027 3.25 2.55 78.75 -7.21586 29.4638 7.21588 -19.4803 -29.4638 19.4803 0.0 +2028 3.25 2.55 86.25 -8.72782 22.0388 8.72785 -15.2322 -22.0388 15.2322 0.0 +2029 3.25 2.55 93.75 -9.40848 13.7576 9.40845 -10.2135 -13.7576 10.2135 0.0 +2030 3.25 2.55 101.25 -7.64177 5.41324 7.64175 -6.28364 -5.41318 6.28364 0.0 +2031 3.25 2.55 108.75 -2.88942 -2.25162 2.88943 -4.15915 2.25161 4.15916 0.0 +2032 3.25 2.55 116.25 4.12591 -9.02031 -4.1259 -3.45148 9.02031 3.45149 0.0 +2033 3.25 2.55 123.75 11.9997 -14.9628 -11.9997 -3.35136 14.9629 3.35133 0.0 +2034 3.25 2.55 131.25 19.3907 -20.1146 -19.3907 -3.21822 20.1146 3.21823 0.0 +2035 3.25 2.55 138.75 25.4561 -24.4049 -25.456 -2.78061 24.4049 2.78061 0.0 +2036 3.25 2.55 146.25 29.9071 -27.7562 -29.9071 -2.05757 27.7562 2.05754 0.0 +2037 3.25 2.55 153.75 32.8539 -30.1787 -32.854 -1.20409 30.1786 1.2041 0.0 +2038 3.25 2.55 161.25 34.6093 -31.7823 -34.6093 -0.396587 31.7823 0.396598 0.0 +2039 3.25 2.55 168.75 35.53 -32.7268 -35.5301 0.221162 32.7267 -0.221124 0.0 +2040 3.25 2.55 176.25 35.9092 -33.157 -35.9092 0.553508 33.1571 -0.553511 0.0 +2041 3.25 2.65 3.75 -364.619 -1177.24 364.619 3261.15 1177.24 -3261.15 0.0 +2042 3.25 2.65 11.25 -170.944 -882.259 170.944 1601.98 882.259 -1601.98 0.0 +2043 3.25 2.65 18.75 7.97343 -512.971 -7.97344 473.428 512.971 -473.428 0.0 +2044 3.25 2.65 26.25 76.8197 -225.459 -76.8197 55.4429 225.459 -55.4429 0.0 +2045 3.25 2.65 33.75 63.1706 -60.3759 -63.1705 -25.1786 60.3759 25.1786 0.0 +2046 3.25 2.65 41.25 26.9972 9.4952 -26.9972 -17.0011 -9.4952 17.0011 0.0 +2047 3.25 2.65 48.75 3.21426 27.5458 -3.21427 -7.89242 -27.5458 7.89243 0.0 +2048 3.25 2.65 56.25 -4.19276 25.9514 4.19277 -7.71957 -25.9514 7.71956 0.0 +2049 3.25 2.65 63.75 -3.58514 20.9867 3.58512 -10.032 -20.9868 10.032 0.0 +2050 3.25 2.65 71.25 -1.8218 17.5583 1.82182 -11.0933 -17.5583 11.0933 0.0 +2051 3.25 2.65 78.75 -1.42207 15.0684 1.42209 -10.072 -15.0684 10.0719 0.0 +2052 3.25 2.65 86.25 -2.18006 12.0219 2.18006 -7.5761 -12.0219 7.57611 0.0 +2053 3.25 2.65 93.75 -2.7903 8.07822 2.79028 -4.90189 -8.07821 4.9019 0.0 +2054 3.25 2.65 101.25 -2.02796 3.78203 2.02793 -3.09994 -3.78201 3.09993 0.0 +2055 3.25 2.65 108.75 0.483472 -0.355942 -0.483506 -2.39117 0.355959 2.39116 0.0 +2056 3.25 2.65 116.25 4.21545 -4.19385 -4.21545 -2.34867 4.19387 2.34866 0.0 +2057 3.25 2.65 123.75 8.24608 -7.74498 -8.24604 -2.42106 7.74505 2.42104 0.0 +2058 3.25 2.65 131.25 11.8028 -10.9489 -11.8028 -2.27777 10.9489 2.27773 0.0 +2059 3.25 2.65 138.75 14.4961 -13.663 -14.4961 -1.85408 13.663 1.85407 0.0 +2060 3.25 2.65 146.25 16.276 -15.7727 -16.2759 -1.2414 15.7727 1.24142 0.0 +2061 3.25 2.65 153.75 17.2907 -17.2659 -17.2907 -0.574592 17.266 0.574543 0.0 +2062 3.25 2.65 161.25 17.7665 -18.2245 -17.7665 0.0269533 18.2244 -0.0269058 0.0 +2063 3.25 2.65 168.75 17.9306 -18.771 -17.9305 0.475387 18.7711 -0.475413 0.0 +2064 3.25 2.65 176.25 17.963 -19.0139 -17.9629 0.71373 19.0138 -0.713725 0.0 +2065 3.25 2.75 3.75 -650.81 -1112.84 650.81 4991.17 1112.84 -4991.17 0.0 +2066 3.25 2.75 11.25 -376.912 -814.423 376.912 2284.82 814.423 -2284.82 0.0 +2067 3.25 2.75 18.75 -117.877 -461.215 117.877 695.625 461.215 -695.625 0.0 +2068 3.25 2.75 26.25 8.67283 -200.478 -8.67283 127.828 200.478 -127.828 0.0 +2069 3.25 2.75 33.75 30.7578 -59.6663 -30.7577 1.67013 59.6663 -1.67014 0.0 +2070 3.25 2.75 41.25 14.4779 -3.75451 -14.4779 -5.11202 3.75449 5.112 0.0 +2071 3.25 2.75 48.75 0.564337 10.5362 -0.564367 -1.71911 -10.5363 1.71911 0.0 +2072 3.25 2.75 56.25 -2.87617 10.6345 2.87615 -3.06902 -10.6345 3.06903 0.0 +2073 3.25 2.75 63.75 -1.22692 8.54812 1.22688 -4.99683 -8.54813 4.99685 0.0 +2074 3.25 2.75 71.25 0.676625 7.54109 -0.676628 -5.57438 -7.5411 5.57438 0.0 +2075 3.25 2.75 78.75 1.26747 7.12286 -1.26752 -4.88162 -7.12286 4.88162 0.0 +2076 3.25 2.75 86.25 0.821253 6.2155 -0.821271 -3.51573 -6.2155 3.51573 0.0 +2077 3.25 2.75 93.75 0.269172 4.5723 -0.269183 -2.24524 -4.57233 2.24524 0.0 +2078 3.25 2.75 101.25 0.429798 2.5731 -0.429775 -1.56964 -2.57305 1.56964 0.0 +2079 3.25 2.75 108.75 1.51112 0.548777 -1.51111 -1.46189 -0.548758 1.46189 0.0 +2080 3.25 2.75 116.25 3.14107 -1.42811 -3.14111 -1.57905 1.428 1.57906 0.0 +2081 3.25 2.75 123.75 4.77902 -3.35524 -4.77897 -1.60881 3.35532 1.60877 0.0 +2082 3.25 2.75 131.25 6.0623 -5.14646 -6.06231 -1.42923 5.14643 1.42921 0.0 +2083 3.25 2.75 138.75 6.88223 -6.66178 -6.88228 -1.07207 6.66181 1.07204 0.0 +2084 3.25 2.75 146.25 7.29129 -7.80724 -7.29129 -0.62631 7.80721 0.626318 0.0 +2085 3.25 2.75 153.75 7.40168 -8.58128 -7.40163 -0.175775 8.58129 0.175784 0.0 +2086 3.25 2.75 161.25 7.33627 -9.05184 -7.33623 0.217137 9.05186 -0.217144 0.0 +2087 3.25 2.75 168.75 7.21123 -9.30667 -7.21121 0.506879 9.3067 -0.50691 0.0 +2088 3.25 2.75 176.25 7.12142 -9.41579 -7.12147 0.660755 9.41579 -0.660753 0.0 +2089 3.25 2.85 3.75 -874.718 -974.414 874.718 7259.84 974.414 -7259.84 0.0 +2090 3.25 2.85 11.25 -529.957 -697.024 529.957 2965.19 697.024 -2965.19 0.0 +2091 3.25 2.85 18.75 -210.49 -383.275 210.49 886.088 383.275 -886.088 0.0 +2092 3.25 2.85 26.25 -41.3105 -160.664 41.3105 182.067 160.664 -182.067 0.0 +2093 3.25 2.85 33.75 7.80209 -47.4025 -7.8021 18.2185 47.4025 -18.2185 0.0 +2094 3.25 2.85 41.25 6.66425 -6.22131 -6.66427 0.514926 6.22131 -0.514937 0.0 +2095 3.25 2.85 48.75 -0.257506 3.34457 0.257528 0.598091 -3.34461 -0.598088 0.0 +2096 3.25 2.85 56.25 -1.60108 3.68626 1.60109 -1.12836 -3.68629 1.12836 0.0 +2097 3.25 2.85 63.75 -0.0562389 2.92276 0.0562531 -2.4777 -2.92278 2.47769 0.0 +2098 3.25 2.85 71.25 1.34259 2.85177 -1.34259 -2.68723 -2.85177 2.68723 0.0 +2099 3.25 2.85 78.75 1.78217 3.08196 -1.7822 -2.22735 -3.08197 2.22735 0.0 +2100 3.25 2.85 86.25 1.51729 2.94458 -1.51724 -1.5416 -2.94457 1.5416 0.0 +2101 3.25 2.85 93.75 1.11672 2.32415 -1.11672 -1.01515 -2.32408 1.01514 0.0 +2102 3.25 2.85 101.25 1.04827 1.48668 -1.04823 -0.8323 -1.48656 0.832297 0.0 +2103 3.25 2.85 108.75 1.38957 0.621054 -1.38956 -0.889911 -0.621024 0.889912 0.0 +2104 3.25 2.85 116.25 1.89694 -0.261405 -1.89687 -0.969374 0.26136 0.969375 0.0 +2105 3.25 2.85 123.75 2.30175 -1.1663 -2.3017 -0.931747 1.16616 0.931784 0.0 +2106 3.25 2.85 131.25 2.49539 -2.02222 -2.49531 -0.76339 2.02229 0.763392 0.0 +2107 3.25 2.85 138.75 2.50552 -2.72913 -2.50545 -0.516076 2.72907 0.516141 0.0 +2108 3.25 2.85 146.25 2.39795 -3.23443 -2.39795 -0.243855 3.23438 0.243866 0.0 +2109 3.25 2.85 153.75 2.22514 -3.55264 -2.22503 0.0183988 3.55282 -0.0184731 0.0 +2110 3.25 2.85 161.25 2.02888 -3.73535 -2.02881 0.247142 3.73533 -0.247116 0.0 +2111 3.25 2.85 168.75 1.85569 -3.83283 -1.85573 0.419517 3.83292 -0.419559 0.0 +2112 3.25 2.85 176.25 1.75351 -3.87538 -1.75346 0.513033 3.87536 -0.513003 0.0 +2113 3.25 2.95 3.75 -994.675 -761.925 994.675 10167.8 761.925 -10167.8 0.0 +2114 3.25 2.95 11.25 -604.142 -541.804 604.142 3540.59 541.804 -3540.59 0.0 +2115 3.25 2.95 18.75 -258.167 -293.834 258.167 1019.93 293.834 -1019.93 0.0 +2116 3.25 2.95 26.25 -69.6148 -118.714 69.6148 215.024 118.714 -215.024 0.0 +2117 3.25 2.95 33.75 -5.90221 -32.9966 5.90223 26.311 32.9965 -26.3109 0.0 +2118 3.25 2.95 41.25 2.25602 -4.6363 -2.256 2.23549 4.63633 -2.23548 0.0 +2119 3.25 2.95 48.75 -0.381153 0.893766 0.381197 0.984491 -0.893795 -0.984484 0.0 +2120 3.25 2.95 56.25 -0.837566 1.03175 0.837613 -0.404101 -1.03172 0.404103 0.0 +2121 3.25 2.95 63.75 0.175542 0.816121 -0.175492 -1.20167 -0.816067 1.20172 0.0 +2122 3.25 2.95 71.25 0.973076 0.964456 -0.973105 -1.22149 -0.964472 1.22153 0.0 +2123 3.25 2.95 78.75 1.22755 1.20413 -1.22756 -0.952588 -1.20413 0.952604 0.0 +2124 3.25 2.95 86.25 1.11328 1.21193 -1.11325 -0.647389 -1.21189 0.647396 0.0 +2125 3.25 2.95 93.75 0.908821 0.978321 -0.908822 -0.460875 -0.978329 0.460874 0.0 +2126 3.25 2.95 101.25 0.833653 0.675263 -0.833527 -0.437086 -0.675046 0.437092 0.0 +2127 3.25 2.95 108.75 0.892478 0.384331 -0.892482 -0.487806 -0.384525 0.487835 0.0 +2128 3.25 2.95 116.25 0.941912 0.0767676 -0.941915 -0.503087 -0.0768796 0.50313 0.0 +2129 3.25 2.95 123.75 0.880255 -0.264114 -0.880225 -0.441399 0.264088 0.441378 0.0 +2130 3.25 2.95 131.25 0.721429 -0.593478 -0.721462 -0.324258 0.59346 0.324254 0.0 +2131 3.25 2.95 138.75 0.529658 -0.854889 -0.529654 -0.187313 0.854907 0.187341 0.0 +2132 3.25 2.95 146.25 0.343385 -1.03082 -0.343423 -0.0495403 1.03079 0.0495952 0.0 +2133 3.25 2.95 153.75 0.166185 -1.14208 -0.166078 0.084722 1.14224 -0.0847717 0.0 +2134 3.25 2.95 161.25 -0.0023326 -1.21841 0.00240849 0.210111 1.21855 -0.210151 0.0 +2135 3.25 2.95 168.75 -0.143824 -1.27394 0.143828 0.311754 1.27397 -0.311766 0.0 +2136 3.25 2.95 176.25 -0.226551 -1.30554 0.226594 0.369648 1.30568 -0.369696 0.0 +2137 3.25 3.05 3.75 -978.964 -476.941 978.964 13691.9 476.941 -13691.9 0.0 +2138 3.25 3.05 11.25 -585.6 -358.907 585.6 3897.55 358.907 -3897.55 0.0 +2139 3.25 3.05 18.75 -256.707 -201.647 256.707 1079.65 201.647 -1079.65 0.0 +2140 3.25 3.05 26.25 -76.2438 -81.0977 76.2438 226.645 81.0977 -226.645 0.0 +2141 3.25 3.05 33.75 -11.5833 -21.1654 11.5832 28.5061 21.1655 -28.5061 0.0 +2142 3.25 3.05 41.25 0.173619 -2.61963 -0.173607 2.10869 2.61962 -2.10865 0.0 +2143 3.25 3.05 48.75 -0.315471 0.211809 0.315507 0.701655 -0.211816 -0.701697 0.0 +2144 3.25 3.05 56.25 -0.505868 0.156217 0.505813 -0.107758 -0.156216 0.107744 0.0 +2145 3.25 3.05 63.75 -0.00347947 0.148027 0.00347438 -0.508426 -0.147997 0.508423 0.0 +2146 3.25 3.05 71.25 0.35623 0.275174 -0.356316 -0.485913 -0.275183 0.485916 0.0 +2147 3.25 3.05 78.75 0.491691 0.385673 -0.491641 -0.368162 -0.385769 0.368161 0.0 +2148 3.25 3.05 86.25 0.488401 0.383863 -0.48842 -0.257055 -0.383836 0.257051 0.0 +2149 3.25 3.05 93.75 0.440596 0.300647 -0.440558 -0.200164 -0.300597 0.200155 0.0 +2150 3.25 3.05 101.25 0.428503 0.226143 -0.428439 -0.201568 -0.226229 0.201576 0.0 +2151 3.25 3.05 108.75 0.433838 0.178273 -0.433894 -0.215213 -0.17832 0.215235 0.0 +2152 3.25 3.05 116.25 0.381927 0.115261 -0.381976 -0.200265 -0.115315 0.200286 0.0 +2153 3.25 3.05 123.75 0.250762 0.0199942 -0.250749 -0.152978 -0.0201082 0.153022 0.0 +2154 3.25 3.05 131.25 0.087112 -0.0827914 -0.0871943 -0.0925379 0.0827206 0.0925707 0.0 +2155 3.25 3.05 138.75 -0.059018 -0.166424 0.059112 -0.0336172 0.166526 0.0335871 0.0 +2156 3.25 3.05 146.25 -0.18052 -0.231382 0.180489 0.0245779 0.231091 -0.0244228 0.0 +2157 3.25 3.05 153.75 -0.295942 -0.294287 0.2959 0.0891166 0.294365 -0.089183 0.0 +2158 3.25 3.05 161.25 -0.414913 -0.365011 0.414927 0.159436 0.365193 -0.159527 0.0 +2159 3.25 3.05 168.75 -0.521941 -0.433475 0.521891 0.222797 0.433412 -0.22276 0.0 +2160 3.25 3.05 176.25 -0.586773 -0.476695 0.58675 0.260922 0.476694 -0.260927 0.0 +2161 3.25 3.15 3.75 -814.083 -137.448 814.083 17033 137.448 -17033 0.0 +2162 3.25 3.15 11.25 -477.018 -161.776 477.018 3948.26 161.776 -3948.26 0.0 +2163 3.25 3.15 18.75 -210.543 -111.957 210.543 1059.41 111.957 -1059.41 0.0 +2164 3.25 3.15 26.25 -64.7579 -49.5587 64.7579 219.45 49.5587 -219.45 0.0 +2165 3.25 3.15 33.75 -11.3607 -12.9491 11.3607 27.2729 12.9491 -27.2729 0.0 +2166 3.25 3.15 41.25 -0.501683 -1.37447 0.501697 1.5392 1.37448 -1.53919 0.0 +2167 3.25 3.15 48.75 -0.221118 -0.00415248 0.221156 0.373864 0.00412424 -0.373901 0.0 +2168 3.25 3.15 56.25 -0.358361 -0.136291 0.358397 0.0446509 0.136267 -0.0446373 0.0 +2169 3.25 3.15 63.75 -0.169006 -0.0774782 0.16899 -0.134807 0.0776033 0.134847 0.0 +2170 3.25 3.15 71.25 -0.0396525 0.000838949 0.0396204 -0.138164 -0.000965599 0.138113 0.0 +2171 3.25 3.15 78.75 0.0344374 0.0425985 -0.0344408 -0.11517 -0.0427499 0.115165 0.0 +2172 3.25 3.15 86.25 0.081184 0.0529524 -0.0811964 -0.089771 -0.0528817 0.0897804 0.0 +2173 3.25 3.15 93.75 0.109097 0.0469134 -0.109138 -0.0742976 -0.0469756 0.0743061 0.0 +2174 3.25 3.15 101.25 0.140882 0.0567832 -0.140845 -0.0701795 -0.056761 0.0701752 0.0 +2175 3.25 3.15 108.75 0.161799 0.0792193 -0.161837 -0.0654321 -0.0792445 0.0654376 0.0 +2176 3.25 3.15 116.25 0.136212 0.0826416 -0.136185 -0.0509834 -0.082549 0.0509852 0.0 +2177 3.25 3.15 123.75 0.0646484 0.0562433 -0.0646738 -0.0282995 -0.0561666 0.0282081 0.0 +2178 3.25 3.15 131.25 -0.0160401 0.016597 0.0162145 -0.00533023 -0.0166918 0.00541668 0.0 +2179 3.25 3.15 138.75 -0.0817391 -0.0230835 0.0817603 0.0141581 0.0232302 -0.0142084 0.0 +2180 3.25 3.15 146.25 -0.139744 -0.0669364 0.139812 0.0354497 0.0671282 -0.0355434 0.0 +2181 3.25 3.15 153.75 -0.209767 -0.126707 0.209696 0.0659929 0.126592 -0.0659876 0.0 +2182 3.25 3.15 161.25 -0.294722 -0.202261 0.294788 0.105695 0.202334 -0.105724 0.0 +2183 3.25 3.15 168.75 -0.376427 -0.2763 0.376427 0.144617 0.276396 -0.144692 0.0 +2184 3.25 3.15 176.25 -0.426876 -0.322774 0.42683 0.16886 0.322923 -0.168938 0.0 +2185 3.25 3.25 3.75 -516.093 207.353 516.093 17519 -207.353 -17519 0.0 +2186 3.25 3.25 11.25 -297.818 30.2999 297.818 3670.93 -30.2999 -3670.93 0.0 +2187 3.25 3.25 18.75 -131.533 -29.3583 131.533 966.016 29.3582 -966.016 0.0 +2188 3.25 3.25 26.25 -41.2561 -23.5547 41.2561 197.399 23.5547 -197.399 0.0 +2189 3.25 3.25 33.75 -7.77181 -7.42064 7.77175 24.324 7.42059 -24.3239 0.0 +2190 3.25 3.25 41.25 -0.520054 -0.786867 0.520059 1.16473 0.786915 -1.16475 0.0 +2191 3.25 3.25 48.75 -0.135385 -0.107324 0.135384 0.176595 0.107322 -0.176651 0.0 +2192 3.25 3.25 56.25 -0.236403 -0.233969 0.236341 0.100092 0.234021 -0.099998 0.0 +2193 3.25 3.25 63.75 -0.177344 -0.160255 0.177338 0.016127 0.160281 -0.0161542 0.0 +2194 3.25 3.25 71.25 -0.134993 -0.110418 0.134999 -0.0109067 0.110353 0.010913 0.0 +2195 3.25 3.25 78.75 -0.0950825 -0.0779897 0.0951253 -0.021928 0.077927 0.0219105 0.0 +2196 3.25 3.25 86.25 -0.0482799 -0.0371325 0.0482478 -0.0253972 0.0372349 0.0254039 0.0 +2197 3.25 3.25 93.75 -0.00935062 -0.00567433 0.00930825 -0.0233964 0.0056727 0.0233906 0.0 +2198 3.25 3.25 101.25 0.0268556 0.0229776 -0.0268747 -0.016636 -0.0229697 0.0166413 0.0 +2199 3.25 3.25 108.75 0.0559475 0.0486988 -0.0559577 -0.010512 -0.0487913 0.0105343 0.0 +2200 3.25 3.25 116.25 0.0599605 0.0541495 -0.0598537 -0.00538128 -0.0541128 0.00538138 0.0 +2201 3.25 3.25 123.75 0.0386584 0.0352012 -0.038683 0.00205185 -0.0351223 -0.00210039 0.0 +2202 3.25 3.25 131.25 0.0113902 0.00756233 -0.0112221 0.0099077 -0.00759024 -0.00983246 0.0 +2203 3.25 3.25 138.75 -0.0116709 -0.0175027 0.0116404 0.0150778 0.0175656 -0.0151232 0.0 +2204 3.25 3.25 146.25 -0.0379372 -0.0440118 0.0378931 0.0202482 0.0440189 -0.0202764 0.0 +2205 3.25 3.25 153.75 -0.0789016 -0.0826345 0.0789715 0.0309487 0.0826604 -0.0309747 0.0 +2206 3.25 3.25 161.25 -0.13326 -0.134571 0.133258 0.0482225 0.134355 -0.0481305 0.0 +2207 3.25 3.25 168.75 -0.185796 -0.186751 0.185766 0.0666972 0.186837 -0.0667545 0.0 +2208 3.25 3.25 176.25 -0.217924 -0.219808 0.217907 0.078575 0.219826 -0.0785566 0.0 +2209 3.25 3.35 3.75 -136.489 468.84 136.489 13261.2 -468.84 -13261.2 0.0 +2210 3.25 3.35 11.25 -76.3677 186.541 76.3677 3006.19 -186.541 -3006.19 0.0 +2211 3.25 3.35 18.75 -34.4387 38.7843 34.4388 785.234 -38.7843 -785.234 0.0 +2212 3.25 3.35 26.25 -12.2064 -2.42532 12.2063 158.413 2.42535 -158.413 0.0 +2213 3.25 3.35 33.75 -3.01753 -3.19124 3.01752 19.5862 3.19127 -19.5862 0.0 +2214 3.25 3.35 41.25 -0.376538 -0.403329 0.376502 0.965951 0.403384 -0.965979 0.0 +2215 3.25 3.35 48.75 -0.0663706 -0.151905 0.066354 0.0762885 0.151928 -0.0763483 0.0 +2216 3.25 3.35 56.25 -0.115811 -0.241426 0.115854 0.0757353 0.241441 -0.0756865 0.0 +2217 3.25 3.35 63.75 -0.10133 -0.1561 0.101333 0.0257088 0.156123 -0.0256754 0.0 +2218 3.25 3.35 71.25 -0.0830317 -0.123866 0.083011 0.00222966 0.123776 -0.00226914 0.0 +2219 3.25 3.35 78.75 -0.0648663 -0.0963338 0.0649114 -0.00193966 0.0962687 0.00191896 0.0 +2220 3.25 3.35 86.25 -0.0348832 -0.0452658 0.0348888 -0.00953403 0.0452114 0.00953002 0.0 +2221 3.25 3.35 93.75 -0.00930256 -0.00606384 0.00931036 -0.0124204 0.00592252 0.0124271 0.0 +2222 3.25 3.35 101.25 0.0100895 0.0236635 -0.0100704 -0.00601918 -0.0236457 0.00599972 0.0 +2223 3.25 3.35 108.75 0.0265883 0.0477513 -0.0265736 -0.00229502 -0.0475016 0.00223504 0.0 +2224 3.25 3.35 116.25 0.0315534 0.0512958 -0.0315658 -0.00201565 -0.0511774 0.00205073 0.0 +2225 3.25 3.35 123.75 0.0223392 0.0342892 -0.0222605 0.00148067 -0.0341723 -0.00152918 0.0 +2226 3.25 3.35 131.25 0.00941799 0.0153327 -0.00949539 0.00600099 -0.015387 -0.00602979 0.0 +2227 3.25 3.35 138.75 0.00192308 0.00676484 -0.0019709 0.00587968 -0.0067599 -0.00587268 0.0 +2228 3.25 3.35 146.25 -0.00390089 0.00228314 0.00390376 0.00216232 -0.00224221 -0.00219 0.0 +2229 3.25 3.35 153.75 -0.0157319 -0.00974298 0.0157634 0.000201998 0.00958756 -0.00010215 0.0 +2230 3.25 3.35 161.25 -0.0344272 -0.0332355 0.0345224 0.00245974 0.0332678 -0.00241767 0.0 +2231 3.25 3.35 168.75 -0.0539332 -0.0604648 0.0538857 0.00692496 0.0604662 -0.00693555 0.0 +2232 3.25 3.35 176.25 -0.0657833 -0.0784772 0.0659121 0.0101981 0.0784511 -0.0101316 0.0 +2233 3.25 3.45 3.75 160.753 453.103 -160.753 6268.16 -453.103 -6268.16 0.0 +2234 3.25 3.45 11.25 98.9204 211.866 -98.9204 1677.08 -211.866 -1677.08 0.0 +2235 3.25 3.45 18.75 41.6475 62.0615 -41.6475 437.04 -62.0615 -437.04 0.0 +2236 3.25 3.45 26.25 10.2776 8.85177 -10.2776 86.3962 -8.85176 -86.3962 0.0 +2237 3.25 3.45 33.75 0.665198 -0.0281349 -0.665216 10.5941 0.0281541 -10.5942 0.0 +2238 3.25 3.45 41.25 -0.225316 -0.0097665 0.225331 0.540446 0.00977707 -0.540423 0.0 +2239 3.25 3.45 48.75 -0.000555537 -0.138966 0.000568013 0.0245727 0.138941 -0.0245583 0.0 +2240 3.25 3.45 56.25 -0.0247081 -0.191676 0.0246253 0.0387653 0.191736 -0.0387721 0.0 +2241 3.25 3.45 63.75 -0.0406244 -0.104835 0.0405644 0.00218269 0.104904 -0.00218938 0.0 +2242 3.25 3.45 71.25 -0.0316041 -0.0868229 0.0315861 -0.00999292 0.086857 0.00997278 0.0 +2243 3.25 3.45 78.75 -0.0244453 -0.0766617 0.0244139 -0.00348801 0.076724 0.00349178 0.0 +2244 3.25 3.45 86.25 -0.00890648 -0.0447902 0.00892778 -0.00721057 0.0446984 0.00720699 0.0 +2245 3.25 3.45 93.75 0.00249213 -0.015882 -0.00250762 -0.00859341 0.0157787 0.00859132 0.0 +2246 3.25 3.45 101.25 0.00593138 0.0124111 -0.00596771 -0.00363029 -0.0123966 0.00362055 0.0 +2247 3.25 3.45 108.75 0.00849249 0.0372762 -0.00846232 -0.00245363 -0.0373616 0.0024942 0.0 +2248 3.25 3.45 116.25 0.00730472 0.0430354 -0.00734682 -0.00257204 -0.0430353 0.00254668 0.0 +2249 3.25 3.45 123.75 0.000252497 0.0319203 -0.000228003 0.00117018 -0.0317262 -0.00121273 0.0 +2250 3.25 3.45 131.25 -0.00509858 0.0202249 0.00511462 0.00424735 -0.0201591 -0.00429141 0.0 +2251 3.25 3.45 138.75 -0.00189225 0.0157697 0.00192964 0.00188411 -0.0157307 -0.00190094 0.0 +2252 3.25 3.45 146.25 0.00595475 0.0116431 -0.0059073 -0.0030478 -0.0116606 0.00308588 0.0 +2253 3.25 3.45 153.75 0.00984054 -0.000318014 -0.00985575 -0.00518825 0.000191851 0.00524895 0.0 +2254 3.25 3.45 161.25 0.00625952 -0.0201284 -0.00627072 -0.00318494 0.0201728 0.00314475 0.0 +2255 3.25 3.45 168.75 -0.00150526 -0.0406308 0.00144698 0.000485931 0.0405933 -0.00047182 0.0 +2256 3.25 3.45 176.25 -0.00732316 -0.0533522 0.00734119 0.00300328 0.0532394 -0.0029465 0.0 +2257 3.25 3.55 3.75 170.017 215.704 -170.017 1682.14 -215.704 -1682.14 0.0 +2258 3.25 3.55 11.25 104.65 108.392 -104.65 523.152 -108.392 -523.152 0.0 +2259 3.25 3.55 18.75 44.2579 34.3622 -44.2579 134.428 -34.3622 -134.428 0.0 +2260 3.25 3.55 26.25 11.5313 6.21431 -11.5313 25.1215 -6.2143 -25.1215 0.0 +2261 3.25 3.55 33.75 1.18823 0.636226 -1.18825 2.77896 -0.636222 -2.77896 0.0 +2262 3.25 3.55 41.25 -0.090997 0.150717 0.0909756 0.0854078 -0.1507 -0.0854088 0.0 +2263 3.25 3.55 48.75 0.0364606 -0.051279 -0.0364402 0.0168919 0.0512661 -0.0168927 0.0 +2264 3.25 3.55 56.25 0.0111486 -0.090247 -0.0111456 0.0363843 0.090261 -0.0363792 0.0 +2265 3.25 3.55 63.75 -0.0105072 -0.0440459 0.0105073 0.00831444 0.0440284 -0.00831955 0.0 +2266 3.25 3.55 71.25 -0.00433658 -0.0361287 0.00434277 -0.00361399 0.0361351 0.00360689 0.0 +2267 3.25 3.55 78.75 -0.000933427 -0.0350331 0.000939583 -0.00100115 0.0350187 0.00100048 0.0 +2268 3.25 3.55 86.25 0.00219006 -0.0262185 -0.00219325 -0.00134055 0.0262088 0.0013392 0.0 +2269 3.25 3.55 93.75 0.00205156 -0.0171976 -0.00207372 -0.0011449 0.0171792 0.00114581 0.0 +2270 3.25 3.55 101.25 0.000259054 -0.00345069 -0.000235304 -0.00113486 0.00346766 0.00114093 0.0 +2271 3.25 3.55 108.75 0.00134517 0.0104896 -0.0013327 -0.00307345 -0.0104784 0.00307104 0.0 +2272 3.25 3.55 116.25 0.00233262 0.0144818 -0.00234223 -0.00230586 -0.0144733 0.00230359 0.0 +2273 3.25 3.55 123.75 0.00096001 0.00998525 -0.000959656 0.00167455 -0.00992985 -0.00169886 0.0 +2274 3.25 3.55 131.25 0.0010997 0.00500791 -0.00110082 0.00353768 -0.00496742 -0.00356791 0.0 +2275 3.25 3.55 138.75 0.00487751 0.00146684 -0.00487922 0.00142544 -0.00148711 -0.00141137 0.0 +2276 3.25 3.55 146.25 0.00734264 -0.00446313 -0.00734662 -0.000638225 0.00441882 0.000652058 0.0 +2277 3.25 3.55 153.75 0.00197693 -0.014869 -0.00196668 0.0013558 0.0148847 -0.00135051 0.0 +2278 3.25 3.55 161.25 -0.0121606 -0.0275418 0.0121409 0.00720885 0.027516 -0.00721154 0.0 +2279 3.25 3.55 168.75 -0.029033 -0.0382301 0.0290399 0.0137359 0.0382374 -0.01375 0.0 +2280 3.25 3.55 176.25 -0.0403659 -0.0441543 0.0403287 0.0177986 0.0441199 -0.0177946 0.0 +2281 3.25 3.65 3.75 29.8469 23.7536 -29.8469 114.399 -23.7536 -114.399 0.0 +2282 3.25 3.65 11.25 18.5821 12.1922 -18.5821 38.9798 -12.1922 -38.9798 0.0 +2283 3.25 3.65 18.75 7.82427 3.7514 -7.82427 9.32709 -3.7514 -9.32709 0.0 +2284 3.25 3.65 26.25 2.01633 0.610607 -2.01633 1.41075 -0.610606 -1.41076 0.0 +2285 3.25 3.65 33.75 0.207925 0.0661693 -0.207923 0.0650148 -0.0661712 -0.0650166 0.0 +2286 3.25 3.65 41.25 -0.0109411 0.0374143 0.0109448 -0.0172484 -0.0374174 0.0172482 0.0 +2287 3.25 3.65 48.75 0.00854362 0.00771035 -0.00854147 0.00574961 -0.00770984 -0.00574854 0.0 +2288 3.25 3.65 56.25 0.00259756 -0.00264422 -0.00260097 0.00942854 0.00264499 -0.00942948 0.0 +2289 3.25 3.65 63.75 -0.000120554 0.00078573 0.00012058 0.00313857 -0.000784598 -0.00313891 0.0 +2290 3.25 3.65 71.25 0.00248101 0.00185637 -0.00248337 0.000268246 -0.00186001 -0.000268224 0.0 +2291 3.25 3.65 78.75 0.00307847 0.00208771 -0.00307844 0.000606822 -0.00209071 -0.000606483 0.0 +2292 3.25 3.65 86.25 0.00187174 0.00124659 -0.00186937 0.00095551 -0.00124275 -0.000955129 0.0 +2293 3.25 3.65 93.75 6.19913e-05 -0.000371204 -6.04736e-05 0.000563209 0.000365014 -0.000562734 0.0 +2294 3.25 3.65 101.25 -0.000928172 -0.000436879 0.000926995 -0.00063032 0.000434748 0.000630276 0.0 +2295 3.25 3.65 108.75 -0.000830659 0.000473082 0.000832415 -0.00140972 -0.00047285 0.00140969 0.0 +2296 3.25 3.65 116.25 -0.000942827 0.000407146 0.00094397 -0.000633585 -0.000410022 0.000634706 0.0 +2297 3.25 3.65 123.75 -0.00166283 -0.000582597 0.001662 0.000718962 0.000586269 -0.000719648 0.0 +2298 3.25 3.65 131.25 -0.00204479 -0.00128755 0.00204388 0.000938967 0.00128792 -0.000939369 0.0 +2299 3.25 3.65 138.75 -0.00182542 -0.00123409 0.00182692 -0.000123482 0.00123642 0.000123147 0.0 +2300 3.25 3.65 146.25 -0.00225266 -0.000702446 0.00225351 -0.00119521 0.000700296 0.00119733 0.0 +2301 3.25 3.65 153.75 -0.00470753 0.000107114 0.0047067 -0.00120089 -0.000106024 0.00120018 0.0 +2302 3.25 3.65 161.25 -0.00916233 0.00120265 0.0091593 -0.000139049 -0.00120213 0.000137897 0.0 +2303 3.25 3.65 168.75 -0.0140233 0.0024012 0.0140238 0.00124784 -0.00240054 -0.00124848 0.0 +2304 3.25 3.65 176.25 -0.0171689 0.00321938 0.0171732 0.00216427 -0.00322149 -0.00216221 0.0 +2305 3.35 2.55 3.75 -195.276 -1032.14 195.276 1295.85 1032.14 -1295.85 0.0 +2306 3.35 2.55 11.25 -99.2481 -778.391 99.2481 692.781 778.391 -692.781 0.0 +2307 3.35 2.55 18.75 -6.65643 -434.466 6.65643 206.152 434.466 -206.152 0.0 +2308 3.35 2.55 26.25 25.3003 -148.262 -25.3003 18.5522 148.262 -18.5522 0.0 +2309 3.35 2.55 33.75 11.0692 22.9807 -11.0692 -10.9237 -22.9807 10.9237 0.0 +2310 3.35 2.55 41.25 -11.4134 92.7283 11.4135 -6.39065 -92.7283 6.39065 0.0 +2311 3.35 2.55 48.75 -20.2925 102.13 20.2925 -10.1964 -102.13 10.1964 0.0 +2312 3.35 2.55 56.25 -15.5576 88.407 15.5576 -21.035 -88.4069 21.035 0.0 +2313 3.35 2.55 63.75 -6.26392 72.4403 6.2639 -30.0768 -72.4402 30.0768 0.0 +2314 3.35 2.55 71.25 0.338232 60.0655 -0.338249 -32.7453 -60.0655 32.7453 0.0 +2315 3.35 2.55 78.75 1.98951 49.4255 -1.98942 -28.9805 -49.4255 28.9805 0.0 +2316 3.35 2.55 86.25 0.388913 37.8715 -0.388957 -21.6256 -37.8715 21.6256 0.0 +2317 3.35 2.55 93.75 -1.06672 24.8252 1.06667 -14.3056 -24.8253 14.3056 0.0 +2318 3.35 2.55 101.25 0.391277 11.1758 -0.391251 -9.35123 -11.1758 9.35124 0.0 +2319 3.35 2.55 108.75 5.52125 -2.10395 -5.52124 -7.05211 2.10392 7.05212 0.0 +2320 3.35 2.55 116.25 13.2016 -14.4695 -13.2016 -6.36669 14.4695 6.36669 0.0 +2321 3.35 2.55 123.75 21.5401 -25.5906 -21.5401 -6.05939 25.5905 6.0594 0.0 +2322 3.35 2.55 131.25 28.9456 -35.1239 -28.9457 -5.38465 35.1239 5.38469 0.0 +2323 3.35 2.55 138.75 34.5957 -42.757 -34.5957 -4.17193 42.757 4.17195 0.0 +2324 3.35 2.55 146.25 38.3688 -48.3714 -38.3688 -2.60245 48.3714 2.60243 0.0 +2325 3.35 2.55 153.75 40.566 -52.1207 -40.566 -0.967925 52.1205 0.967988 0.0 +2326 3.35 2.55 161.25 41.6506 -54.3691 -41.6506 0.469012 54.3691 -0.468989 0.0 +2327 3.35 2.55 168.75 42.0782 -55.5528 -42.0782 1.52064 55.5528 -1.52067 0.0 +2328 3.35 2.55 176.25 42.1981 -56.041 -42.1981 2.0729 56.0409 -2.0729 0.0 +2329 3.35 2.65 3.75 -419.098 -1076.13 419.098 2153.24 1076.13 -2153.24 0.0 +2330 3.35 2.65 11.25 -264.945 -806.91 264.945 1138.5 806.91 -1138.5 0.0 +2331 3.35 2.65 18.75 -104.618 -457.574 104.618 379.324 457.574 -379.324 0.0 +2332 3.35 2.65 26.25 -21.9706 -179.872 21.9706 82.5542 179.872 -82.5542 0.0 +2333 3.35 2.65 33.75 -6.05842 -20.7051 6.05842 16.3126 20.7051 -16.3126 0.0 +2334 3.35 2.65 41.25 -13.3029 42.8912 13.3029 8.09772 -42.8912 -8.09772 0.0 +2335 3.35 2.65 48.75 -15.6897 54.0943 15.6897 0.0182538 -54.0943 -0.0182479 0.0 +2336 3.35 2.65 56.25 -9.08183 46.7632 9.08183 -10.6957 -46.7632 10.6957 0.0 +2337 3.35 2.65 63.75 0.136459 38.1374 -0.136456 -17.9284 -38.1374 17.9284 0.0 +2338 3.35 2.65 71.25 6.42034 32.5591 -6.42031 -19.5836 -32.5591 19.5836 0.0 +2339 3.35 2.65 78.75 8.18095 28.2195 -8.18103 -16.7768 -28.2195 16.7768 0.0 +2340 3.35 2.65 86.25 6.86543 22.8055 -6.86542 -12.0332 -22.8055 12.0332 0.0 +2341 3.35 2.65 93.75 5.15555 15.8036 -5.15553 -7.84684 -15.8036 7.84684 0.0 +2342 3.35 2.65 101.25 5.16175 7.93989 -5.16173 -5.47191 -7.93991 5.47192 0.0 +2343 3.35 2.65 108.75 7.39932 -0.00491049 -7.39931 -4.70878 0.00495997 4.70878 0.0 +2344 3.35 2.65 116.25 11.02 -7.59843 -11.02 -4.63522 7.59841 4.63521 0.0 +2345 3.35 2.65 123.75 14.7619 -14.5482 -14.7618 -4.43686 14.5482 4.43688 0.0 +2346 3.35 2.65 131.25 17.7243 -20.5254 -17.7243 -3.76779 20.5254 3.7678 0.0 +2347 3.35 2.65 138.75 19.587 -25.2345 -19.587 -2.6757 25.2346 2.67568 0.0 +2348 3.35 2.65 146.25 20.4495 -28.5646 -20.4495 -1.38054 28.5646 1.38055 0.0 +2349 3.35 2.65 153.75 20.5999 -30.6433 -20.5999 -0.109613 30.6433 0.109611 0.0 +2350 3.35 2.65 161.25 20.3618 -31.7671 -20.3618 0.96685 31.767 -0.966847 0.0 +2351 3.35 2.65 168.75 20.022 -32.2781 -20.022 1.7383 32.278 -1.73826 0.0 +2352 3.35 2.65 176.25 19.7947 -32.4568 -19.7946 2.13939 32.4568 -2.13939 0.0 +2353 3.35 2.75 3.75 -623.075 -1035.97 623.075 3278.31 1035.97 -3278.31 0.0 +2354 3.35 2.75 11.25 -410.652 -765.022 410.652 1641.05 765.022 -1641.05 0.0 +2355 3.35 2.75 18.75 -187.486 -428.713 187.486 547.291 428.713 -547.291 0.0 +2356 3.35 2.75 26.25 -59.4311 -173.568 59.4311 133.12 173.568 -133.12 0.0 +2357 3.35 2.75 33.75 -17.2303 -35.1265 17.2302 31.786 35.1264 -31.786 0.0 +2358 3.35 2.75 41.25 -12.1098 17.1178 12.1099 13.8192 -17.1178 -13.8193 0.0 +2359 3.35 2.75 48.75 -10.4656 26.5604 10.4656 3.88378 -26.5604 -3.88377 0.0 +2360 3.35 2.75 56.25 -4.13597 22.6167 4.136 -5.48779 -22.6166 5.48779 0.0 +2361 3.35 2.75 63.75 3.31091 18.3493 -3.31091 -10.6986 -18.3493 10.6986 0.0 +2362 3.35 2.75 71.25 8.14692 16.4609 -8.14686 -11.4323 -16.4609 11.4323 0.0 +2363 3.35 2.75 78.75 9.44923 15.3065 -9.44926 -9.35408 -15.3065 9.35408 0.0 +2364 3.35 2.75 86.25 8.34302 13.115 -8.34302 -6.45209 -13.115 6.45209 0.0 +2365 3.35 2.75 93.75 6.73127 9.59264 -6.73125 -4.25534 -9.59267 4.25533 0.0 +2366 3.35 2.75 101.25 6.04641 5.36361 -6.04642 -3.28804 -5.36363 3.28804 0.0 +2367 3.35 2.75 108.75 6.5681 1.00824 -6.56803 -3.16383 -1.00821 3.16382 0.0 +2368 3.35 2.75 116.25 7.69424 -3.1996 -7.69426 -3.20291 3.19971 3.20288 0.0 +2369 3.35 2.75 123.75 8.6827 -7.07441 -8.68271 -2.95679 7.07435 2.9568 0.0 +2370 3.35 2.75 131.25 9.13874 -10.3765 -9.13876 -2.33529 10.3765 2.3353 0.0 +2371 3.35 2.75 138.75 9.04359 -12.8901 -9.04363 -1.46655 12.8901 1.46658 0.0 +2372 3.35 2.75 146.25 8.56433 -14.5486 -8.56434 -0.526226 14.5485 0.526253 0.0 +2373 3.35 2.75 153.75 7.89764 -15.464 -7.89766 0.348926 15.464 -0.348943 0.0 +2374 3.35 2.75 161.25 7.21578 -15.8591 -7.2158 1.07115 15.859 -1.0711 0.0 +2375 3.35 2.75 168.75 6.66389 -15.9703 -6.6639 1.58421 15.9702 -1.5842 0.0 +2376 3.35 2.75 176.25 6.3556 -15.9786 -6.35561 1.85074 15.9787 -1.85078 0.0 +2377 3.35 2.85 3.75 -772.698 -919.877 772.698 4708.12 919.877 -4708.12 0.0 +2378 3.35 2.85 11.25 -511.822 -669.074 511.822 2155.18 669.074 -2155.18 0.0 +2379 3.35 2.85 18.75 -243.045 -367.941 243.045 691.364 367.941 -691.364 0.0 +2380 3.35 2.85 26.25 -83.2742 -147.185 83.2742 166.912 147.185 -166.912 0.0 +2381 3.35 2.85 33.75 -22.8244 -33.6483 22.8244 37.1489 33.6483 -37.1488 0.0 +2382 3.35 2.85 41.25 -9.53454 5.8483 9.53452 13.5783 -5.8483 -13.5783 0.0 +2383 3.35 2.85 48.75 -6.09018 12.291 6.09017 4.14913 -12.291 -4.14911 0.0 +2384 3.35 2.85 56.25 -1.26771 10.0666 1.26769 -3.04808 -10.0666 3.04809 0.0 +2385 3.35 2.85 63.75 3.7759 8.1959 -3.77587 -6.37734 -8.19594 6.37731 0.0 +2386 3.35 2.85 71.25 6.89166 7.92994 -6.89164 -6.4809 -7.92993 6.48089 0.0 +2387 3.35 2.85 78.75 7.67029 7.93236 -7.67027 -5.01743 -7.93236 5.01743 0.0 +2388 3.35 2.85 86.25 6.86704 7.07559 -6.86708 -3.3556 -7.07557 3.3556 0.0 +2389 3.35 2.85 93.75 5.65228 5.32847 -5.65231 -2.30528 -5.32852 2.30528 0.0 +2390 3.35 2.85 101.25 4.87116 3.215 -4.87125 -1.98423 -3.21505 1.98422 0.0 +2391 3.35 2.85 108.75 4.63041 1.1067 -4.6304 -2.02318 -1.10679 2.0232 0.0 +2392 3.35 2.85 116.25 4.54443 -0.892094 -4.54436 -2.003 0.892026 2.00303 0.0 +2393 3.35 2.85 123.75 4.25373 -2.7196 -4.25376 -1.73147 2.7196 1.73148 0.0 +2394 3.35 2.85 131.25 3.67676 -4.24518 -3.67683 -1.23922 4.24515 1.23922 0.0 +2395 3.35 2.85 138.75 2.92527 -5.34331 -2.92524 -0.644988 5.34322 0.64504 0.0 +2396 3.35 2.85 146.25 2.13491 -5.99066 -2.135 -0.0510476 5.99066 0.051009 0.0 +2397 3.35 2.85 153.75 1.39275 -6.27569 -1.39282 0.483407 6.27566 -0.483401 0.0 +2398 3.35 2.85 161.25 0.754236 -6.34028 -0.754226 0.924147 6.34015 -0.924067 0.0 +2399 3.35 2.85 168.75 0.275676 -6.31398 -0.275689 1.24213 6.314 -1.24219 0.0 +2400 3.35 2.85 176.25 0.0164689 -6.28159 -0.0164513 1.40997 6.28154 -1.40995 0.0 +2401 3.35 2.95 3.75 -834.912 -728.644 834.912 6476.41 728.644 -6476.41 0.0 +2402 3.35 2.95 11.25 -547.497 -530.188 547.497 2613.47 530.188 -2613.47 0.0 +2403 3.35 2.95 18.75 -262.248 -290.02 262.248 793.304 290.02 -793.304 0.0 +2404 3.35 2.95 26.25 -91.3227 -113.901 91.3227 183.027 113.901 -183.027 0.0 +2405 3.35 2.95 33.75 -23.4608 -26.232 23.4608 35.3151 26.232 -35.3151 0.0 +2406 3.35 2.95 41.25 -6.66345 1.76515 6.66345 10.2484 -1.76515 -10.2484 0.0 +2407 3.35 2.95 48.75 -3.09293 5.49926 3.09291 2.9506 -5.49927 -2.95059 0.0 +2408 3.35 2.95 56.25 -0.128908 4.20301 0.128901 -1.8156 -4.20296 1.81563 0.0 +2409 3.35 2.95 63.75 2.69811 3.54905 -2.69809 -3.66338 -3.54904 3.66335 0.0 +2410 3.35 2.95 71.25 4.37067 3.76567 -4.37061 -3.47926 -3.76571 3.47927 0.0 +2411 3.35 2.95 78.75 4.78503 3.92124 -4.78501 -2.55161 -3.92135 2.55159 0.0 +2412 3.35 2.95 86.25 4.343 3.47426 -4.34301 -1.68279 -3.47427 1.6828 0.0 +2413 3.35 2.95 93.75 3.62999 2.57963 -3.62993 -1.22603 -2.57969 1.22603 0.0 +2414 3.35 2.95 101.25 3.06714 1.6304 -3.06715 -1.13714 -1.63033 1.13713 0.0 +2415 3.35 2.95 108.75 2.6714 0.806801 -2.67137 -1.16012 -0.806856 1.16013 0.0 +2416 3.35 2.95 116.25 2.22983 0.0794546 -2.22987 -1.08361 -0.0795543 1.0836 0.0 +2417 3.35 2.95 123.75 1.62198 -0.581679 -1.62197 -0.855095 0.581669 0.855109 0.0 +2418 3.35 2.95 131.25 0.911108 -1.12896 -0.911104 -0.532177 1.12888 0.532245 0.0 +2419 3.35 2.95 138.75 0.221326 -1.50232 -0.221315 -0.188004 1.50224 0.188057 0.0 +2420 3.35 2.95 146.25 -0.381126 -1.7 0.381078 0.137706 1.6999 -0.137646 0.0 +2421 3.35 2.95 153.75 -0.893851 -1.77735 0.893832 0.432684 1.77726 -0.432674 0.0 +2422 3.35 2.95 161.25 -1.32378 -1.80097 1.32382 0.687059 1.80096 -0.687066 0.0 +2423 3.35 2.95 168.75 -1.6499 -1.81175 1.64995 0.880202 1.81183 -0.880216 0.0 +2424 3.35 2.95 176.25 -1.82978 -1.81925 1.82977 0.985879 1.81919 -0.985873 0.0 +2425 3.35 3.05 3.75 -785.046 -461.717 785.046 8594.91 461.717 -8594.91 0.0 +2426 3.35 3.05 11.25 -505.888 -356.771 505.888 2934.01 356.771 -2934.01 0.0 +2427 3.35 3.05 18.75 -241.842 -203.918 241.842 839.22 203.918 -839.22 0.0 +2428 3.35 3.05 26.25 -83.9245 -81.0674 83.9245 182.984 81.0674 -182.984 0.0 +2429 3.35 3.05 33.75 -20.2141 -18.5085 20.2141 29.6979 18.5085 -29.6979 0.0 +2430 3.35 3.05 41.25 -4.1047 0.409433 4.10472 6.22641 -0.409475 -6.22641 0.0 +2431 3.35 3.05 48.75 -1.36284 2.35911 1.3628 1.60979 -2.35909 -1.60978 0.0 +2432 3.35 3.05 56.25 0.030431 1.62567 -0.030424 -1.01802 -1.6257 1.018 0.0 +2433 3.35 3.05 63.75 1.27646 1.51737 -1.27639 -1.88571 -1.51743 1.88574 0.0 +2434 3.35 3.05 71.25 2.00146 1.74382 -2.00153 -1.67715 -1.74388 1.67713 0.0 +2435 3.35 3.05 78.75 2.22947 1.7724 -2.22943 -1.1839 -1.77249 1.1839 0.0 +2436 3.35 3.05 86.25 2.09366 1.4585 -2.09372 -0.787813 -1.45856 0.787813 0.0 +2437 3.35 3.05 93.75 1.79746 1.00626 -1.79749 -0.60616 -1.00615 0.606162 0.0 +2438 3.35 3.05 101.25 1.51527 0.661229 -1.51529 -0.575074 -0.661245 0.575087 0.0 +2439 3.35 3.05 108.75 1.24058 0.468536 -1.24057 -0.561828 -0.468484 0.561787 0.0 +2440 3.35 3.05 116.25 0.876962 0.332896 -0.876938 -0.482689 -0.332964 0.482687 0.0 +2441 3.35 3.05 123.75 0.416156 0.186434 -0.416121 -0.336497 -0.18647 0.336515 0.0 +2442 3.35 3.05 131.25 -0.0499558 0.038764 0.0498225 -0.163924 -0.0389844 0.163982 0.0 +2443 3.35 3.05 138.75 -0.440256 -0.0796634 0.440301 0.00362958 0.0796422 -0.00361361 0.0 +2444 3.35 3.05 146.25 -0.749289 -0.169351 0.749274 0.161127 0.169574 -0.161167 0.0 +2445 3.35 3.05 153.75 -1.01485 -0.254878 1.01491 0.314525 0.254752 -0.314449 0.0 +2446 3.35 3.05 161.25 -1.25872 -0.351609 1.25877 0.460297 0.351661 -0.460329 0.0 +2447 3.35 3.05 168.75 -1.46132 -0.446415 1.46128 0.579664 0.446487 -0.579718 0.0 +2448 3.35 3.05 176.25 -1.5791 -0.506807 1.57912 0.64783 0.506772 -0.647769 0.0 +2449 3.35 3.15 3.75 -613.346 -128.944 613.346 10936.8 128.944 -10936.8 0.0 +2450 3.35 3.15 11.25 -388.42 -159.752 388.42 3039.67 159.752 -3039.67 0.0 +2451 3.35 3.15 18.75 -185.578 -114.971 185.578 822.812 114.971 -822.812 0.0 +2452 3.35 3.15 26.25 -64.0967 -51.2619 64.0967 169.928 51.2619 -169.928 0.0 +2453 3.35 3.15 33.75 -14.6003 -12.3908 14.6002 23.2626 12.3908 -23.2627 0.0 +2454 3.35 3.15 41.25 -2.15789 -0.18353 2.15785 3.0437 0.183543 -3.04367 0.0 +2455 3.35 3.15 48.75 -0.515911 0.863817 0.515956 0.688645 -0.863876 -0.688622 0.0 +2456 3.35 3.15 56.25 -0.10478 0.478921 0.1048 -0.434933 -0.478877 0.434918 0.0 +2457 3.35 3.15 63.75 0.278403 0.550597 -0.278425 -0.770867 -0.550582 0.770892 0.0 +2458 3.35 3.15 71.25 0.518182 0.679229 -0.518188 -0.658783 -0.679258 0.658773 0.0 +2459 3.35 3.15 78.75 0.661602 0.637382 -0.661573 -0.463196 -0.63745 0.463179 0.0 +2460 3.35 3.15 86.25 0.697289 0.449817 -0.697335 -0.319991 -0.449817 0.319985 0.0 +2461 3.35 3.15 93.75 0.640594 0.258804 -0.6406 -0.254833 -0.258796 0.254831 0.0 +2462 3.35 3.15 101.25 0.556527 0.18774 -0.556486 -0.235323 -0.187938 0.235367 0.0 +2463 3.35 3.15 108.75 0.446937 0.222191 -0.446909 -0.215213 -0.222297 0.215245 0.0 +2464 3.35 3.15 116.25 0.274348 0.26483 -0.274369 -0.168371 -0.264953 0.168437 0.0 +2465 3.35 3.15 123.75 0.0574631 0.256391 -0.0574175 -0.0982881 -0.25635 0.0982953 0.0 +2466 3.35 3.15 131.25 -0.138437 0.203868 0.138469 -0.0233365 -0.203754 0.023301 0.0 +2467 3.35 3.15 138.75 -0.278798 0.131654 0.27879 0.0462375 -0.131622 -0.0462824 0.0 +2468 3.35 3.15 146.25 -0.386441 0.0434165 0.386373 0.115347 -0.0435636 -0.115286 0.0 +2469 3.35 3.15 153.75 -0.50135 -0.0699762 0.50138 0.191887 0.0700475 -0.191868 0.0 +2470 3.35 3.15 161.25 -0.635272 -0.204478 0.635288 0.273074 0.204491 -0.273059 0.0 +2471 3.35 3.15 168.75 -0.76189 -0.331252 0.762029 0.343855 0.331256 -0.343819 0.0 +2472 3.35 3.15 176.25 -0.839967 -0.409418 0.839975 0.385429 0.409487 -0.385428 0.0 +2473 3.35 3.25 3.75 -331.119 235.647 331.119 12776.5 -235.647 -12776.5 0.0 +2474 3.35 3.25 11.25 -210.73 43.1724 210.73 2886.81 -43.1724 -2886.81 0.0 +2475 3.35 3.25 18.75 -103.557 -28.0167 103.557 746.774 28.0167 -746.774 0.0 +2476 3.35 3.25 26.25 -36.8542 -24.6146 36.8541 147.416 24.6146 -147.416 0.0 +2477 3.35 3.25 33.75 -8.31772 -7.63126 8.31767 17.7578 7.6313 -17.7578 0.0 +2478 3.35 3.25 41.25 -0.927756 -0.474989 0.927739 1.25145 0.474959 -1.25143 0.0 +2479 3.35 3.25 48.75 -0.171876 0.182322 0.171929 0.229436 -0.182338 -0.229375 0.0 +2480 3.35 3.25 56.25 -0.173447 -0.00784342 0.173479 -0.0821736 0.00784618 0.0821739 0.0 +2481 3.35 3.25 63.75 -0.109125 0.0713448 0.109065 -0.190602 -0.071458 0.190586 0.0 +2482 3.35 3.25 71.25 -0.051811 0.125665 0.0517963 -0.170553 -0.125602 0.170563 0.0 +2483 3.35 3.25 78.75 0.0349192 0.107932 -0.0348983 -0.12797 -0.107897 0.127947 0.0 +2484 3.35 3.25 86.25 0.109977 0.0525243 -0.109978 -0.0975017 -0.0525561 0.0974949 0.0 +2485 3.35 3.25 93.75 0.133592 0.00564846 -0.133572 -0.079523 -0.0054719 0.0795129 0.0 +2486 3.35 3.25 101.25 0.13514 0.0218498 -0.135139 -0.068635 -0.0218243 0.0686367 0.0 +2487 3.35 3.25 108.75 0.125808 0.0847814 -0.125742 -0.0608821 -0.0845929 0.0608698 0.0 +2488 3.35 3.25 116.25 0.0859804 0.127099 -0.0859118 -0.046674 -0.12691 0.0466421 0.0 +2489 3.35 3.25 123.75 0.0240101 0.116896 -0.0240258 -0.0218336 -0.116907 0.0218839 0.0 +2490 3.35 3.25 131.25 -0.0259337 0.0728231 0.0260029 0.00618536 -0.0729523 -0.00609409 0.0 +2491 3.35 3.25 138.75 -0.0524477 0.0198607 0.0523403 0.031086 -0.019903 -0.0310656 0.0 +2492 3.35 3.25 146.25 -0.0771902 -0.0394305 0.0771127 0.0560935 0.0392944 -0.0560811 0.0 +2493 3.35 3.25 153.75 -0.125327 -0.115249 0.125381 0.0868502 0.11537 -0.0868962 0.0 +2494 3.35 3.25 161.25 -0.197635 -0.207122 0.19763 0.12226 0.207294 -0.122357 0.0 +2495 3.35 3.25 168.75 -0.27075 -0.295144 0.270796 0.154148 0.295239 -0.154149 0.0 +2496 3.35 3.25 176.25 -0.316454 -0.349799 0.316406 0.172999 0.349655 -0.172891 0.0 +2497 3.35 3.35 3.75 21.6477 545.28 -21.6477 11815.8 -545.28 -11815.8 0.0 +2498 3.35 3.35 11.25 0.173729 218.755 -0.173719 2394.74 -218.755 -2394.74 0.0 +2499 3.35 3.35 18.75 -9.53806 48.3705 9.53809 598.087 -48.3705 -598.087 0.0 +2500 3.35 3.35 26.25 -7.66274 -1.12322 7.66276 113.819 1.12321 -113.819 0.0 +2501 3.35 3.35 33.75 -2.74384 -3.33129 2.74384 12.9293 3.33125 -12.9293 0.0 +2502 3.35 3.35 41.25 -0.346706 -0.421196 0.346694 0.581284 0.421155 -0.581292 0.0 +2503 3.35 3.35 48.75 -0.0597258 -0.052617 0.0597015 0.0549515 0.0526707 -0.0549747 0.0 +2504 3.35 3.35 56.25 -0.126882 -0.137188 0.126857 0.0379118 0.137277 -0.0378934 0.0 +2505 3.35 3.35 63.75 -0.109892 -0.0878689 0.109868 0.00253737 0.0878685 -0.00255598 0.0 +2506 3.35 3.35 71.25 -0.0980488 -0.073463 0.0980418 -0.0105894 0.0734524 0.0105771 0.0 +2507 3.35 3.35 78.75 -0.0669262 -0.0528742 0.0669078 -0.0108983 0.0530139 0.0109302 0.0 +2508 3.35 3.35 86.25 -0.0219711 -0.0291652 0.0219318 -0.0154295 0.0291951 0.0154292 0.0 +2509 3.35 3.35 93.75 0.00146699 -0.0207303 -0.00146179 -0.0140867 0.020679 0.0140912 0.0 +2510 3.35 3.35 101.25 0.0168709 0.00290498 -0.0169225 -0.00898105 -0.00281588 0.00896964 0.0 +2511 3.35 3.35 108.75 0.0340663 0.0389815 -0.0340623 -0.0103442 -0.039102 0.0103711 0.0 +2512 3.35 3.35 116.25 0.0352042 0.0499497 -0.0351821 -0.0111656 -0.0499387 0.0111689 0.0 +2513 3.35 3.35 123.75 0.0178821 0.0273981 -0.0178368 -0.0038908 -0.0275323 0.00391568 0.0 +2514 3.35 3.35 131.25 0.00245117 -0.00157526 -0.00237029 0.00543782 0.0017713 -0.00545999 0.0 +2515 3.35 3.35 138.75 -0.000452681 -0.0169013 0.000469283 0.00962862 0.0169401 -0.00965926 0.0 +2516 3.35 3.35 146.25 -0.000710544 -0.0221597 0.000754182 0.0101186 0.0223253 -0.0102137 0.0 +2517 3.35 3.35 153.75 -0.0111111 -0.0323046 0.011189 0.0113797 0.0322223 -0.0112957 0.0 +2518 3.35 3.35 161.25 -0.0318368 -0.0542513 0.0318153 0.0143177 0.0540301 -0.014212 0.0 +2519 3.35 3.35 168.75 -0.0531774 -0.0809936 0.0531282 0.0170487 0.0810135 -0.0171249 0.0 +2520 3.35 3.35 176.25 -0.0660009 -0.0992697 0.0659877 0.01838 0.0992028 -0.0183637 0.0 +2521 3.35 3.45 3.75 264.52 547.577 -264.52 6202.93 -547.577 -6202.93 0.0 +2522 3.35 3.45 11.25 146.664 252.974 -146.664 1327.09 -252.974 -1327.09 0.0 +2523 3.35 3.45 18.75 55.5979 76.7316 -55.5979 320.33 -76.7316 -320.33 0.0 +2524 3.35 3.45 26.25 12.0322 12.2347 -12.0322 58.3259 -12.2346 -58.3259 0.0 +2525 3.35 3.45 33.75 0.596069 0.246217 -0.596031 6.50975 -0.246209 -6.50972 0.0 +2526 3.35 3.45 41.25 -0.174085 -0.0773709 0.174074 0.316004 0.0773448 -0.316022 0.0 +2527 3.35 3.45 48.75 -0.00445633 -0.0860244 0.00448977 0.0121395 0.0860192 -0.0120971 0.0 +2528 3.35 3.45 56.25 -0.0477545 -0.104883 0.0478083 0.0286837 0.104818 -0.0286912 0.0 +2529 3.35 3.45 63.75 -0.0332506 -0.0586084 0.0333016 0.00627557 0.0586119 -0.0062805 0.0 +2530 3.35 3.45 71.25 -0.0281034 -0.0608434 0.0280864 -0.00101144 0.0608456 0.00103223 0.0 +2531 3.35 3.45 78.75 -0.0318181 -0.0457338 0.0317996 0.00287139 0.0457793 -0.00287648 0.0 +2532 3.35 3.45 86.25 -0.0190638 -0.0189326 0.0190873 -0.00282309 0.0188606 0.00282802 0.0 +2533 3.35 3.45 93.75 -0.00845602 -0.00564765 0.00846357 -0.00258802 0.00569123 0.00258276 0.0 +2534 3.35 3.45 101.25 -0.000108637 0.0104483 0.000114753 0.00269483 -0.0103655 -0.00269193 0.0 +2535 3.35 3.45 108.75 0.0096153 0.0272037 -0.00961347 0.00262296 -0.0272254 -0.00260619 0.0 +2536 3.35 3.45 116.25 0.00852246 0.0258295 -0.00856241 0.0019054 -0.0259022 -0.00189501 0.0 +2537 3.35 3.45 123.75 -0.00485077 0.0100252 0.00491377 0.00479164 -0.010035 -0.00474465 0.0 +2538 3.35 3.45 131.25 -0.0151032 -0.00124015 0.0150869 0.00590864 0.00128885 -0.00595605 0.0 +2539 3.35 3.45 138.75 -0.0116773 0.000794051 0.0116531 0.00155451 -0.000693976 -0.00161011 0.0 +2540 3.35 3.45 146.25 0.000951708 0.00984726 -0.000976147 -0.00547841 -0.00985363 0.00546737 0.0 +2541 3.35 3.45 153.75 0.0141348 0.0178974 -0.0141348 -0.0120161 -0.0179225 0.0120171 0.0 +2542 3.35 3.45 161.25 0.024418 0.0223568 -0.0244107 -0.0180532 -0.022375 0.0180171 0.0 +2543 3.35 3.45 168.75 0.0321657 0.0245203 -0.0321044 -0.0239933 -0.0245871 0.0240198 0.0 +2544 3.35 3.45 176.25 0.0366433 0.0254514 -0.0366767 -0.0281044 -0.0255168 0.0281336 0.0 +2545 3.35 3.55 3.75 212.112 270.322 -212.112 1633.44 -270.322 -1633.44 0.0 +2546 3.35 3.55 11.25 122.019 134.508 -122.019 394.591 -134.508 -394.591 0.0 +2547 3.35 3.55 18.75 47.7974 44.519 -47.7974 89.0516 -44.519 -89.0516 0.0 +2548 3.35 3.55 26.25 11.0171 8.96418 -11.0171 14.3465 -8.96418 -14.3466 0.0 +2549 3.35 3.55 33.75 0.785538 1.00667 -0.785533 1.3707 -1.00666 -1.37071 0.0 +2550 3.35 3.55 41.25 -0.100275 0.111814 0.100273 0.063653 -0.111807 -0.0636804 0.0 +2551 3.35 3.55 48.75 0.0358723 -0.0504078 -0.0358729 0.0207167 0.0504272 -0.0207188 0.0 +2552 3.35 3.55 56.25 -0.0107991 -0.0545945 0.0108077 0.0260469 0.0545759 -0.0260665 0.0 +2553 3.35 3.55 63.75 -0.0137965 -0.0162173 0.01382 0.00310984 0.0162029 -0.00312469 0.0 +2554 3.35 3.55 71.25 -0.00443791 -0.0176794 0.00444316 -0.0030039 0.0176744 0.00300773 0.0 +2555 3.35 3.55 78.75 -0.00661178 -0.0194646 0.00662503 -0.000183672 0.0194799 0.000190292 0.0 +2556 3.35 3.55 86.25 -0.0044624 -0.0145146 0.00445811 -0.00308715 0.0145483 0.00308949 0.0 +2557 3.35 3.55 93.75 -0.00201713 -0.0103082 0.00203467 -0.0034837 0.0103487 0.00348302 0.0 +2558 3.35 3.55 101.25 0.000612684 -0.00214047 -0.000633647 -0.00170294 0.00208873 0.00170816 0.0 +2559 3.35 3.55 108.75 0.00492679 0.00544074 -0.00492725 -0.000964504 -0.00547196 0.000980009 0.0 +2560 3.35 3.55 116.25 0.00552459 0.00494329 -0.00551079 0.00128236 -0.00490754 -0.00128794 0.0 +2561 3.35 3.55 123.75 0.00248381 -0.000309276 -0.00248587 0.00443651 0.000330766 -0.00443577 0.0 +2562 3.35 3.55 131.25 0.00307595 -0.00427668 -0.00308807 0.00457978 0.00431048 -0.00460838 0.0 +2563 3.35 3.55 138.75 0.0100829 -0.00649667 -0.0100649 0.00162916 0.00646752 -0.00160639 0.0 +2564 3.35 3.55 146.25 0.0183636 -0.0087324 -0.0183591 -0.00101933 0.00878923 0.000998688 0.0 +2565 3.35 3.55 153.75 0.0223417 -0.00978813 -0.0223341 -0.00163428 0.00977234 0.00164318 0.0 +2566 3.35 3.55 161.25 0.0213234 -0.00730229 -0.0213443 -0.0014192 0.00724781 0.00144804 0.0 +2567 3.35 3.55 168.75 0.0183265 -0.00180711 -0.0183314 -0.00178155 0.00182466 0.00177075 0.0 +2568 3.35 3.55 176.25 0.0161793 0.00277081 -0.0161889 -0.00245834 -0.00278613 0.00245868 0.0 +2569 3.35 3.65 3.75 34.2993 31.2111 -34.2993 99.1827 -31.2111 -99.1827 0.0 +2570 3.35 3.65 11.25 20.1073 16.1249 -20.1073 25.0862 -16.1249 -25.0862 0.0 +2571 3.35 3.65 18.75 7.81038 5.38483 -7.81038 4.29487 -5.38483 -4.29487 0.0 +2572 3.35 3.65 26.25 1.72232 1.10266 -1.72232 0.220387 -1.10265 -0.220388 0.0 +2573 3.35 3.65 33.75 0.0886792 0.151586 -0.0886799 -0.0820027 -0.151586 0.0820019 0.0 +2574 3.35 3.65 41.25 -0.0173171 0.0309048 0.0173154 -0.015518 -0.0309058 0.0155196 0.0 +2575 3.35 3.65 48.75 0.0101661 -0.00286499 -0.0101673 0.00763683 0.00286567 -0.00763753 0.0 +2576 3.35 3.65 56.25 -0.002689 -0.00624694 0.00268935 0.0083081 0.00624704 -0.00830852 0.0 +2577 3.35 3.65 63.75 -0.00312949 0.000414859 0.00313187 0.00248767 -0.000415121 -0.00248719 0.0 +2578 3.35 3.65 71.25 0.00176759 0.00183364 -0.00176593 0.000912355 -0.00183059 -0.000912314 0.0 +2579 3.35 3.65 78.75 0.00272836 0.00157348 -0.00272759 0.00117466 -0.00157332 -0.00117415 0.0 +2580 3.35 3.65 86.25 0.00159309 0.000928734 -0.00159386 0.000236076 -0.000929755 -0.000236263 0.0 +2581 3.35 3.65 93.75 -8.27674e-05 0.000144333 8.23358e-05 -0.00112934 -0.000145183 0.00112914 0.0 +2582 3.35 3.65 101.25 -0.000947847 0.000224482 0.00094892 -0.00225916 -0.000225888 0.00225973 0.0 +2583 3.35 3.65 108.75 -0.000863792 0.000432852 0.000864512 -0.00237019 -0.000431765 0.0023699 0.0 +2584 3.35 3.65 116.25 -0.000961541 -5.64864e-05 0.000960868 -0.0011264 6.07289e-05 0.00112608 0.0 +2585 3.35 3.65 123.75 -0.00127243 -0.000805706 0.0012707 0.000252729 0.000806025 -0.000253886 0.0 +2586 3.35 3.65 131.25 -0.000913381 -0.00130653 0.000910966 0.000474326 0.00130583 -0.000474541 0.0 +2587 3.35 3.65 138.75 -5.53154e-05 -0.00154588 5.78325e-05 -0.000286174 0.00155054 0.000285032 0.0 +2588 3.35 3.65 146.25 -6.51777e-05 -0.00124019 6.5744e-05 -0.000995048 0.00124163 0.000994467 0.0 +2589 3.35 3.65 153.75 -0.0019038 0.00032226 0.00190333 -0.00107275 -0.000320901 0.00107123 0.0 +2590 3.35 3.65 161.25 -0.00517932 0.00335224 0.00517862 -0.000703318 -0.00335729 0.000705883 0.0 +2591 3.35 3.65 168.75 -0.00853589 0.00691614 0.00853695 -0.000307448 -0.00691271 0.000304936 0.0 +2592 3.35 3.65 176.25 -0.0106065 0.00934073 0.0106054 -0.000100664 -0.0093421 0.000101267 0.0 +2593 3.45 2.55 3.75 -306.256 -630.26 306.256 712.027 630.26 -712.027 0.0 +2594 3.45 2.55 11.25 -241.643 -460.837 241.643 436.705 460.837 -436.705 0.0 +2595 3.45 2.55 18.75 -163.644 -227.704 163.644 196.914 227.704 -196.914 0.0 +2596 3.45 2.55 26.25 -109.293 -33.3416 109.293 89.2043 33.3416 -89.2043 0.0 +2597 3.45 2.55 33.75 -79.3847 79.4725 79.3847 51.6528 -79.4725 -51.6528 0.0 +2598 3.45 2.55 41.25 -58.4527 119.272 58.4527 27.3787 -119.272 -27.3787 0.0 +2599 3.45 2.55 48.75 -36.2063 116.335 36.2063 1.24536 -116.335 -1.24536 0.0 +2600 3.45 2.55 56.25 -12.877 98.7088 12.877 -21.3417 -98.7088 21.3417 0.0 +2601 3.45 2.55 63.75 6.39264 81.7834 -6.39265 -34.2469 -81.7834 34.2469 0.0 +2602 3.45 2.55 71.25 17.6707 68.9207 -17.6707 -36.3618 -68.9207 36.3618 0.0 +2603 3.45 2.55 78.75 20.7496 57.5203 -20.7496 -30.7183 -57.5203 30.7183 0.0 +2604 3.45 2.55 86.25 18.6942 44.7959 -18.6942 -22.1495 -44.7959 22.1495 0.0 +2605 3.45 2.55 93.75 15.7399 30.0692 -15.7399 -14.7587 -30.0692 14.7587 0.0 +2606 3.45 2.55 101.25 14.9561 14.1711 -14.9561 -10.3261 -14.1711 10.3261 0.0 +2607 3.45 2.55 108.75 17.1133 -1.75859 -17.1132 -8.43042 1.75863 8.43042 0.0 +2608 3.45 2.55 116.25 21.1653 -16.7758 -21.1653 -7.6838 16.7758 7.6838 0.0 +2609 3.45 2.55 123.75 25.5091 -30.1056 -25.509 -6.89494 30.1057 6.89493 0.0 +2610 3.45 2.55 131.25 28.9655 -41.1155 -28.9654 -5.54039 41.1155 5.54038 0.0 +2611 3.45 2.55 138.75 31.0793 -49.4383 -31.0794 -3.65858 49.4383 3.65857 0.0 +2612 3.45 2.55 146.25 31.9503 -55.0945 -31.9503 -1.54808 55.0945 1.54807 0.0 +2613 3.45 2.55 153.75 31.9458 -58.4765 -31.9458 0.46791 58.4765 -0.467925 0.0 +2614 3.45 2.55 161.25 31.4914 -60.2005 -31.4914 2.14501 60.2005 -2.14503 0.0 +2615 3.45 2.55 168.75 30.9607 -60.9133 -30.9607 3.33031 60.9133 -3.3303 0.0 +2616 3.45 2.55 176.25 30.6245 -61.1297 -30.6245 3.94075 61.1298 -3.94076 0.0 +2617 3.45 2.65 3.75 -410.404 -684.119 410.404 1124.97 684.119 -1124.97 0.0 +2618 3.45 2.65 11.25 -315.445 -504.168 315.445 663.12 504.168 -663.12 0.0 +2619 3.45 2.65 18.75 -200.158 -265.393 200.158 285.214 265.393 -285.214 0.0 +2620 3.45 2.65 26.25 -117.759 -74.4043 117.759 118.865 74.4044 -118.865 0.0 +2621 3.45 2.65 33.75 -72.7391 32.0266 72.7391 62.0115 -32.0266 -62.0115 0.0 +2622 3.45 2.65 41.25 -46.6794 69.0359 46.6794 32.6288 -69.0359 -32.6288 0.0 +2623 3.45 2.65 48.75 -25.0296 68.799 25.0296 6.85355 -68.799 -6.85356 0.0 +2624 3.45 2.65 56.25 -4.70437 57.3573 4.70435 -12.9243 -57.3573 12.9243 0.0 +2625 3.45 2.65 63.75 11.3837 47.5257 -11.3838 -22.9609 -47.5257 22.9609 0.0 +2626 3.45 2.65 71.25 20.5482 41.3831 -20.5482 -23.9869 -41.3831 23.9869 0.0 +2627 3.45 2.65 78.75 22.8085 36.193 -22.8085 -19.5196 -36.193 19.5196 0.0 +2628 3.45 2.65 86.25 20.6545 29.4327 -20.6545 -13.6165 -29.4327 13.6165 0.0 +2629 3.45 2.65 93.75 17.4317 20.6221 -17.4318 -9.11551 -20.6221 9.11551 0.0 +2630 3.45 2.65 101.25 15.4934 10.6053 -15.4934 -6.83936 -10.6052 6.83936 0.0 +2631 3.45 2.65 108.75 15.3634 0.398853 -15.3634 -6.08122 -0.398839 6.08122 0.0 +2632 3.45 2.65 116.25 16.2491 -9.23221 -16.2491 -5.71107 9.23223 5.71106 0.0 +2633 3.45 2.65 123.75 17.0991 -17.6958 -17.0991 -4.98277 17.6958 4.98277 0.0 +2634 3.45 2.65 131.25 17.2969 -24.5169 -17.2969 -3.71694 24.5169 3.71693 0.0 +2635 3.45 2.65 138.75 16.7536 -29.4367 -16.7536 -2.09401 29.4367 2.09401 0.0 +2636 3.45 2.65 146.25 15.6864 -32.5095 -15.6864 -0.393538 32.5095 0.393535 0.0 +2637 3.45 2.65 153.75 14.3972 -34.0775 -14.3972 1.15395 34.0775 -1.15396 0.0 +2638 3.45 2.65 161.25 13.1634 -34.6385 -13.1634 2.40176 34.6385 -2.40176 0.0 +2639 3.45 2.65 168.75 12.2071 -34.6906 -12.2071 3.26815 34.6906 -3.26815 0.0 +2640 3.45 2.65 176.25 11.6868 -34.6153 -11.6868 3.7106 34.6154 -3.7106 0.0 +2641 3.45 2.75 3.75 -497.255 -677 497.255 1652.99 677 -1652.99 0.0 +2642 3.45 2.75 11.25 -373.691 -495.677 373.691 915.601 495.677 -915.601 0.0 +2643 3.45 2.75 18.75 -225.553 -263.706 225.553 365.966 263.706 -365.966 0.0 +2644 3.45 2.75 26.25 -119.766 -85.9838 119.766 136.334 85.9838 -136.334 0.0 +2645 3.45 2.75 33.75 -63.267 7.86172 63.267 62.4019 -7.86172 -62.4019 0.0 +2646 3.45 2.75 41.25 -34.7214 38.5117 34.7215 30.9646 -38.5117 -30.9646 0.0 +2647 3.45 2.75 48.75 -15.6402 38.6905 15.6402 7.75474 -38.6905 -7.75474 0.0 +2648 3.45 2.75 56.25 0.200898 31.3646 -0.200906 -8.25822 -31.3646 8.25823 0.0 +2649 3.45 2.75 63.75 12.1025 26.2015 -12.1025 -15.3813 -26.2016 15.3813 0.0 +2650 3.45 2.75 71.25 18.645 23.9679 -18.645 -15.4998 -23.9679 15.4998 0.0 +2651 3.45 2.75 78.75 20.0366 22.0995 -20.0365 -12.0647 -22.0994 12.0647 0.0 +2652 3.45 2.75 86.25 18.0975 18.6666 -18.0975 -8.18733 -18.6667 8.18733 0.0 +2653 3.45 2.75 93.75 15.203 13.548 -15.2031 -5.61947 -13.548 5.61947 0.0 +2654 3.45 2.75 101.25 12.9731 7.59374 -12.9732 -4.55604 -7.59372 4.55604 0.0 +2655 3.45 2.75 108.75 11.7095 1.61177 -11.7095 -4.26673 -1.61172 4.26671 0.0 +2656 3.45 2.75 116.25 10.8678 -3.90594 -10.8678 -3.95972 3.9059 3.95974 0.0 +2657 3.45 2.75 123.75 9.86364 -8.62299 -9.86364 -3.25525 8.62305 3.25522 0.0 +2658 3.45 2.75 131.25 8.48939 -12.2677 -8.48935 -2.17621 12.2677 2.1762 0.0 +2659 3.45 2.75 138.75 6.8561 -14.7058 -6.85612 -0.925779 14.7058 0.925792 0.0 +2660 3.45 2.75 146.25 5.17617 -16.0173 -5.17617 0.29668 16.0172 -0.296656 0.0 +2661 3.45 2.75 153.75 3.62928 -16.4706 -3.62927 1.36272 16.4706 -1.36274 0.0 +2662 3.45 2.75 161.25 2.34356 -16.418 -2.34357 2.20438 16.4181 -2.2044 0.0 +2663 3.45 2.75 168.75 1.41823 -16.1869 -1.41824 2.78491 16.1869 -2.7849 0.0 +2664 3.45 2.75 176.25 0.93231 -16.012 -0.932328 3.08139 16.012 -3.0814 0.0 +2665 3.45 2.85 3.75 -548.003 -614.565 548.003 2304.07 614.565 -2304.07 0.0 +2666 3.45 2.85 11.25 -403.385 -446.114 403.385 1173.83 446.114 -1173.83 0.0 +2667 3.45 2.85 18.75 -233.959 -236.004 233.959 430.61 236.004 -430.61 0.0 +2668 3.45 2.85 26.25 -114.291 -80.069 114.291 141.231 80.069 -141.231 0.0 +2669 3.45 2.85 33.75 -52.1051 -2.02399 52.1051 55.1217 2.02396 -55.1216 0.0 +2670 3.45 2.85 41.25 -24.0012 21.2002 24.0012 25.0552 -21.2002 -25.0552 0.0 +2671 3.45 2.85 48.75 -8.75879 20.9185 8.75874 6.24251 -20.9185 -6.2425 0.0 +2672 3.45 2.85 56.25 2.17439 16.3646 -2.17443 -5.56933 -16.3647 5.56933 0.0 +2673 3.45 2.85 63.75 9.87494 14.0522 -9.87497 -10.1202 -14.0522 10.1202 0.0 +2674 3.45 2.85 71.25 13.9611 13.6826 -13.9611 -9.68958 -13.6825 9.68959 0.0 +2675 3.45 2.85 78.75 14.7195 13.1469 -14.7196 -7.20381 -13.1468 7.20382 0.0 +2676 3.45 2.85 86.25 13.2825 11.2688 -13.2825 -4.80907 -11.2688 4.80907 0.0 +2677 3.45 2.85 93.75 11.1137 8.28982 -11.1137 -3.43822 -8.28984 3.43822 0.0 +2678 3.45 2.85 101.25 9.19959 4.99293 -9.19962 -2.96627 -4.99292 2.96627 0.0 +2679 3.45 2.85 108.75 7.69011 1.9132 -7.69008 -2.80506 -1.91323 2.80506 0.0 +2680 3.45 2.85 116.25 6.26738 -0.754121 -6.26738 -2.48465 0.754107 2.48465 0.0 +2681 3.45 2.85 123.75 4.69302 -2.92053 -4.69298 -1.87011 2.92052 1.87014 0.0 +2682 3.45 2.85 131.25 3.00043 -4.49316 -3.00046 -1.0617 4.4931 1.0617 0.0 +2683 3.45 2.85 138.75 1.35896 -5.43071 -1.35895 -0.214639 5.4307 0.21465 0.0 +2684 3.45 2.85 146.25 -0.0975721 -5.80953 0.0975683 0.564043 5.80952 -0.564042 0.0 +2685 3.45 2.85 153.75 -1.31554 -5.80487 1.31554 1.22538 5.80502 -1.22545 0.0 +2686 3.45 2.85 161.25 -2.27717 -5.61838 2.27719 1.74807 5.6184 -1.74807 0.0 +2687 3.45 2.85 168.75 -2.95565 -5.41309 2.95571 2.11405 5.41315 -2.11407 0.0 +2688 3.45 2.85 176.25 -3.31048 -5.28882 3.31047 2.30378 5.2888 -2.30378 0.0 +2689 3.45 2.95 3.75 -544.922 -497.061 544.922 3078.39 497.061 -3078.39 0.0 +2690 3.45 2.95 11.25 -393.552 -362.493 393.552 1406.5 362.493 -1406.5 0.0 +2691 3.45 2.95 18.75 -221.236 -192.412 221.236 470.974 192.412 -470.974 0.0 +2692 3.45 2.95 26.25 -101.063 -66.0352 101.063 134.97 66.0352 -134.97 0.0 +2693 3.45 2.95 33.75 -40.2469 -4.86193 40.2469 43.3621 4.86195 -43.3621 0.0 +2694 3.45 2.95 41.25 -15.2898 11.6213 15.2897 17.5126 -11.6213 -17.5126 0.0 +2695 3.45 2.95 48.75 -4.33523 10.905 4.3352 4.04329 -10.905 -4.04327 0.0 +2696 3.45 2.95 56.25 2.18714 8.24837 -2.1872 -3.74017 -8.24831 3.74018 0.0 +2697 3.45 2.95 63.75 6.40955 7.51416 -6.40948 -6.31275 -7.51421 6.31275 0.0 +2698 3.45 2.95 71.25 8.60941 7.77106 -8.60947 -5.71424 -7.77112 5.71422 0.0 +2699 3.45 2.95 78.75 9.03579 7.52495 -9.03581 -4.08358 -7.52497 4.08358 0.0 +2700 3.45 2.95 86.25 8.21402 6.29483 -8.21403 -2.72405 -6.29472 2.72405 0.0 +2701 3.45 2.95 93.75 6.87838 4.54861 -6.87836 -2.03984 -4.54871 2.03984 0.0 +2702 3.45 2.95 101.25 5.55629 2.91176 -5.55627 -1.81705 -2.91174 1.81705 0.0 +2703 3.45 2.95 108.75 4.32565 1.64201 -4.32569 -1.67096 -1.6421 1.67098 0.0 +2704 3.45 2.95 116.25 3.04826 0.69376 -3.04833 -1.37414 -0.693725 1.37412 0.0 +2705 3.45 2.95 123.75 1.69501 -0.0160375 -1.69503 -0.916383 0.0161119 0.916364 0.0 +2706 3.45 2.95 131.25 0.392887 -0.501719 -0.392925 -0.394265 0.501627 0.394291 0.0 +2707 3.45 2.95 138.75 -0.724329 -0.76263 0.724304 0.105035 0.762673 -0.105085 0.0 +2708 3.45 2.95 146.25 -1.61972 -0.843823 1.61969 0.545164 0.843697 -0.545116 0.0 +2709 3.45 2.95 153.75 -2.33022 -0.828516 2.33023 0.921858 0.828524 -0.921868 0.0 +2710 3.45 2.95 161.25 -2.89222 -0.792299 2.89228 1.23178 0.792409 -1.2318 0.0 +2711 3.45 2.95 168.75 -3.30112 -0.771646 3.30113 1.45896 0.771608 -1.45895 0.0 +2712 3.45 2.95 176.25 -3.52114 -0.766502 3.52118 1.58062 0.766532 -1.5806 0.0 +2713 3.45 3.05 3.75 -475.314 -322.42 475.314 3963.8 322.42 -3963.8 0.0 +2714 3.45 3.05 11.25 -338.348 -249.248 338.348 1573.32 249.248 -1573.32 0.0 +2715 3.45 3.05 18.75 -186.445 -139.031 186.445 480.819 139.031 -480.819 0.0 +2716 3.45 3.05 26.25 -81.0201 -49.399 81.0201 120.377 49.399 -120.377 0.0 +2717 3.45 3.05 33.75 -28.6328 -5.08278 28.6327 30.5097 5.08277 -30.5097 0.0 +2718 3.45 3.05 41.25 -8.82638 6.11139 8.82637 10.4404 -6.1114 -10.4404 0.0 +2719 3.45 3.05 48.75 -1.85343 5.32625 1.85346 2.16403 -5.32623 -2.164 0.0 +2720 3.45 3.05 56.25 1.35086 3.92765 -1.35083 -2.2841 -3.92766 2.2841 0.0 +2721 3.45 3.05 63.75 3.18303 3.93111 -3.18308 -3.54526 -3.93104 3.54527 0.0 +2722 3.45 3.05 71.25 4.18326 4.23744 -4.18318 -3.05394 -4.23741 3.05394 0.0 +2723 3.45 3.05 78.75 4.49258 3.9582 -4.49266 -2.12863 -3.95825 2.12861 0.0 +2724 3.45 3.05 86.25 4.19958 3.07628 -4.19957 -1.44525 -3.07631 1.44525 0.0 +2725 3.45 3.05 93.75 3.55703 2.09269 -3.55702 -1.12965 -2.09265 1.12965 0.0 +2726 3.45 3.05 101.25 2.82082 1.42577 -2.82082 -1.00836 -1.42574 1.00835 0.0 +2727 3.45 3.05 108.75 2.05335 1.12201 -2.0533 -0.879428 -1.12204 0.879438 0.0 +2728 3.45 3.05 116.25 1.22927 1.00436 -1.22931 -0.659137 -1.00432 0.659097 0.0 +2729 3.45 3.05 123.75 0.406034 0.922498 -0.406042 -0.375131 -0.922546 0.375153 0.0 +2730 3.45 3.05 131.25 -0.296186 0.832273 0.296225 -0.0883048 -0.832251 0.0882832 0.0 +2731 3.45 3.05 138.75 -0.814568 0.737363 0.814575 0.167299 -0.7374 -0.167276 0.0 +2732 3.45 3.05 146.25 -1.18502 0.630537 1.18498 0.392395 -0.630556 -0.392405 0.0 +2733 3.45 3.05 153.75 -1.48257 0.494496 1.48259 0.5978 -0.494437 -0.597808 0.0 +2734 3.45 3.05 161.25 -1.74881 0.331167 1.74885 0.781687 -0.331182 -0.781664 0.0 +2735 3.45 3.05 168.75 -1.96879 0.175253 1.96874 0.925742 -0.175235 -0.925772 0.0 +2736 3.45 3.05 176.25 -2.0967 0.0786764 2.09672 1.00588 -0.0786713 -1.00589 0.0 +2737 3.45 3.15 3.75 -335.15 -93.6243 335.15 4919.2 93.6243 -4919.2 0.0 +2738 3.45 3.15 11.25 -239.412 -112.098 239.412 1631.97 112.098 -1631.97 0.0 +2739 3.45 3.15 18.75 -132.594 -79.3632 132.594 457.179 79.3632 -457.179 0.0 +2740 3.45 3.15 26.25 -56.3887 -32.3191 56.3887 100.818 32.3191 -100.818 0.0 +2741 3.45 3.15 33.75 -18.16 -4.51131 18.1601 19.3237 4.51132 -19.3237 0.0 +2742 3.45 3.15 41.25 -4.4854 2.78229 4.48539 5.12234 -2.78226 -5.12233 0.0 +2743 3.45 3.15 48.75 -0.65816 2.23549 0.65826 0.957979 -2.23558 -0.957965 0.0 +2744 3.45 3.15 56.25 0.506275 1.58325 -0.506256 -1.13658 -1.58328 1.13657 0.0 +2745 3.45 3.15 63.75 1.03096 1.81098 -1.03093 -1.6632 -1.811 1.66321 0.0 +2746 3.45 3.15 71.25 1.41183 2.0053 -1.4118 -1.38913 -2.00536 1.38912 0.0 +2747 3.45 3.15 78.75 1.68372 1.73689 -1.68371 -0.965934 -1.73688 0.965929 0.0 +2748 3.45 3.15 86.25 1.70752 1.16763 -1.70751 -0.682141 -1.16765 0.682142 0.0 +2749 3.45 3.15 93.75 1.49569 0.679886 -1.49564 -0.555736 -0.679951 0.555736 0.0 +2750 3.45 3.15 101.25 1.17836 0.506082 -1.17831 -0.491039 -0.506091 0.491053 0.0 +2751 3.45 3.15 108.75 0.820869 0.586875 -0.820847 -0.406929 -0.586908 0.406931 0.0 +2752 3.45 3.15 116.25 0.442639 0.726307 -0.442661 -0.282046 -0.726397 0.28205 0.0 +2753 3.45 3.15 123.75 0.104502 0.791195 -0.10453 -0.138832 -0.791224 0.138815 0.0 +2754 3.45 3.15 131.25 -0.122088 0.757803 0.122111 -0.00554787 -0.757786 0.00557081 0.0 +2755 3.45 3.15 138.75 -0.233371 0.647708 0.233317 0.11009 -0.647633 -0.110127 0.0 +2756 3.45 3.15 146.25 -0.294334 0.47602 0.294323 0.218656 -0.476048 -0.218642 0.0 +2757 3.45 3.15 153.75 -0.374289 0.252194 0.374305 0.329856 -0.252147 -0.329913 0.0 +2758 3.45 3.15 161.25 -0.492985 0.00374022 0.493045 0.439147 -0.00376578 -0.439083 0.0 +2759 3.45 3.15 168.75 -0.618588 -0.216468 0.618562 0.529275 0.216442 -0.529286 0.0 +2760 3.45 3.15 176.25 -0.699206 -0.346872 0.699206 0.580539 0.346963 -0.580578 0.0 +2761 3.45 3.25 3.75 -131.986 172.423 131.986 5807.16 -172.423 -5807.16 0.0 +2762 3.45 3.25 11.25 -106.676 37.9086 106.676 1550.79 -37.9086 -1550.79 0.0 +2763 3.45 3.25 18.75 -66.3639 -16.7646 66.364 401.081 16.7646 -401.081 0.0 +2764 3.45 3.25 26.25 -30.3473 -15.2048 30.3473 79.1321 15.2048 -79.1321 0.0 +2765 3.45 3.25 33.75 -9.59735 -3.38585 9.59735 11.2832 3.38583 -11.2832 0.0 +2766 3.45 3.25 41.25 -1.92176 0.888505 1.92175 1.94054 -0.88848 -1.94058 0.0 +2767 3.45 3.25 48.75 -0.186459 0.662911 0.186482 0.346642 -0.662898 -0.346709 0.0 +2768 3.45 3.25 56.25 0.0336511 0.376814 -0.0335823 -0.381553 -0.376846 0.381531 0.0 +2769 3.45 3.25 63.75 0.0610398 0.568743 -0.0610638 -0.568847 -0.568734 0.568857 0.0 +2770 3.45 3.25 71.25 0.191319 0.669351 -0.191358 -0.479143 -0.669399 0.479151 0.0 +2771 3.45 3.25 78.75 0.405751 0.51543 -0.405724 -0.34219 -0.515447 0.3422 0.0 +2772 3.45 3.25 86.25 0.526203 0.236753 -0.526194 -0.259964 -0.236729 0.259964 0.0 +2773 3.45 3.25 93.75 0.497209 0.0446808 -0.49719 -0.226352 -0.0447335 0.226358 0.0 +2774 3.45 3.25 101.25 0.400656 0.0545232 -0.400668 -0.204302 -0.0545018 0.204314 0.0 +2775 3.45 3.25 108.75 0.294574 0.196188 -0.294587 -0.171634 -0.196092 0.1716 0.0 +2776 3.45 3.25 116.25 0.19472 0.324411 -0.194713 -0.123137 -0.324523 0.123175 0.0 +2777 3.45 3.25 123.75 0.132272 0.361164 -0.132303 -0.0670742 -0.361206 0.0670926 0.0 +2778 3.45 3.25 131.25 0.135206 0.313195 -0.135187 -0.0147294 -0.313223 0.0147091 0.0 +2779 3.45 3.25 138.75 0.182857 0.21121 -0.182794 0.0326203 -0.211273 -0.0325507 0.0 +2780 3.45 3.25 146.25 0.217909 0.068651 -0.217902 0.0824645 -0.0686142 -0.0825051 0.0 +2781 3.45 3.25 153.75 0.198459 -0.108935 -0.198506 0.139161 0.1089 -0.139151 0.0 +2782 3.45 3.25 161.25 0.12767 -0.302368 -0.127653 0.197311 0.302337 -0.197299 0.0 +2783 3.45 3.25 168.75 0.0427846 -0.472116 -0.0427358 0.245295 0.472357 -0.245467 0.0 +2784 3.45 3.25 176.25 -0.0129573 -0.572229 0.0129579 0.272254 0.572361 -0.272348 0.0 +2785 3.45 3.35 3.75 108.302 421.496 -108.302 5958.83 -421.496 -5958.83 0.0 +2786 3.45 3.35 11.25 41.2462 175.982 -41.2462 1273.31 -175.982 -1273.31 0.0 +2787 3.45 3.35 18.75 3.01038 41.906 -3.0104 305.247 -41.906 -305.247 0.0 +2788 3.45 3.35 26.25 -6.1326 1.47736 6.13263 54.6726 -1.47737 -54.6726 0.0 +2789 3.45 3.35 33.75 -3.31533 -1.47586 3.31531 6.12001 1.47584 -6.12 0.0 +2790 3.45 3.35 41.25 -0.645403 0.0817823 0.645396 0.522618 -0.081765 -0.52267 0.0 +2791 3.45 3.35 48.75 -0.0508309 0.0548983 0.0508385 0.088753 -0.054907 -0.0887145 0.0 +2792 3.45 3.35 56.25 -0.086444 -0.0749055 0.0864092 -0.0334013 0.0748983 0.0334289 0.0 +2793 3.45 3.35 63.75 -0.118584 0.00885222 0.118561 -0.0912918 -0.00885908 0.0913019 0.0 +2794 3.45 3.35 71.25 -0.0737239 0.0593776 0.0737854 -0.088756 -0.0594375 0.0887584 0.0 +2795 3.45 3.35 78.75 0.036563 0.0346896 -0.0365392 -0.0646539 -0.0346542 0.0646679 0.0 +2796 3.45 3.35 86.25 0.115213 -0.0407592 -0.115217 -0.0589973 0.0407232 0.0589937 0.0 +2797 3.45 3.35 93.75 0.121241 -0.0943378 -0.121253 -0.0623952 0.0942932 0.0623931 0.0 +2798 3.45 3.35 101.25 0.105666 -0.0629274 -0.105684 -0.0638035 0.0629433 0.0637916 0.0 +2799 3.45 3.35 108.75 0.100399 0.0188446 -0.100413 -0.0630221 -0.0188428 0.0629937 0.0 +2800 3.45 3.35 116.25 0.101209 0.0751847 -0.101172 -0.0564777 -0.0751112 0.0564679 0.0 +2801 3.45 3.35 123.75 0.114923 0.0786105 -0.114898 -0.0437503 -0.0785564 0.0437357 0.0 +2802 3.45 3.35 131.25 0.152279 0.0502791 -0.152333 -0.0294588 -0.050311 0.0294693 0.0 +2803 3.45 3.35 138.75 0.197497 0.0112211 -0.197509 -0.0146718 -0.0112948 0.0147128 0.0 +2804 3.45 3.35 146.25 0.218165 -0.0385802 -0.2182 0.00342743 0.0385741 -0.00344245 0.0 +2805 3.45 3.35 153.75 0.198221 -0.105349 -0.198196 0.0247121 0.105367 -0.024701 0.0 +2806 3.45 3.35 161.25 0.149784 -0.1847 -0.149761 0.0445218 0.184701 -0.0445184 0.0 +2807 3.45 3.35 168.75 0.0992213 -0.258039 -0.0992126 0.0582518 0.258116 -0.0583085 0.0 +2808 3.45 3.35 176.25 0.06856 -0.302331 -0.0685837 0.0647053 0.302274 -0.0646862 0.0 +2809 3.45 3.45 3.75 249.963 447.743 -249.963 3664.97 -447.743 -3664.97 0.0 +2810 3.45 3.45 11.25 130.312 207.993 -130.312 676.249 -207.993 -676.249 0.0 +2811 3.45 3.45 18.75 45.7667 65.0303 -45.7667 147.519 -65.0303 -147.519 0.0 +2812 3.45 3.45 26.25 8.62768 11.3441 -8.62769 23.4633 -11.3441 -23.4633 0.0 +2813 3.45 3.45 33.75 0.110016 0.590793 -0.109988 2.30758 -0.590787 -2.3076 0.0 +2814 3.45 3.45 41.25 -0.153757 -0.0039627 0.153717 0.133259 0.00394772 -0.133226 0.0 +2815 3.45 3.45 48.75 -0.0153495 -0.0393026 0.0153515 0.00700061 0.0393356 -0.00698054 0.0 +2816 3.45 3.45 56.25 -0.0482726 -0.073912 0.0483149 0.0251197 0.0739223 -0.0251188 0.0 +2817 3.45 3.45 63.75 -0.0289355 -0.0533479 0.0289021 0.00597862 0.053373 -0.00597884 0.0 +2818 3.45 3.45 71.25 -0.0187811 -0.0391984 0.018746 0.000512192 0.039198 -0.000501842 0.0 +2819 3.45 3.45 78.75 -0.00856621 -0.0176478 0.00859924 0.00690296 0.0177056 -0.00690308 0.0 +2820 3.45 3.45 86.25 0.00371125 -0.0135792 -0.00372377 0.00136037 0.0136089 -0.0013601 0.0 +2821 3.45 3.45 93.75 0.00477561 -0.0238325 -0.00478562 -0.00283706 0.0238591 0.00283968 0.0 +2822 3.45 3.45 101.25 0.00818656 -0.0174538 -0.00812902 -0.00263731 0.017444 0.00264151 0.0 +2823 3.45 3.45 108.75 0.0169419 0.00155597 -0.0169639 -0.00543721 -0.00155808 0.00543126 0.0 +2824 3.45 3.45 116.25 0.0195788 0.0116859 -0.0195369 -0.00999959 -0.0117365 0.0100136 0.0 +2825 3.45 3.45 123.75 0.0183927 0.0116238 -0.0183971 -0.013227 -0.011666 0.0132448 0.0 +2826 3.45 3.45 131.25 0.0233808 0.0121941 -0.0234038 -0.0149326 -0.0122148 0.0149266 0.0 +2827 3.45 3.45 138.75 0.0316355 0.0161105 -0.0316222 -0.0142598 -0.0161126 0.0142499 0.0 +2828 3.45 3.45 146.25 0.0319972 0.0182352 -0.0319926 -0.0107349 -0.018201 0.0107262 0.0 +2829 3.45 3.45 153.75 0.0212885 0.0151617 -0.0213003 -0.0072284 -0.0151286 0.00721379 0.0 +2830 3.45 3.45 161.25 0.00710262 0.00875975 -0.00709702 -0.00763624 -0.00879653 0.00766868 0.0 +2831 3.45 3.45 168.75 -0.0026401 0.00265877 0.00265377 -0.0121265 -0.00270055 0.0121613 0.0 +2832 3.45 3.45 176.25 -0.00643116 -0.000726218 0.00644015 -0.0165154 0.000842039 0.0164549 0.0 +2833 3.45 3.55 3.75 176.165 231.846 -176.165 1002.13 -231.846 -1002.13 0.0 +2834 3.45 3.55 11.25 95.7124 114.358 -95.7124 175.442 -114.358 -175.442 0.0 +2835 3.45 3.55 18.75 35.3486 38.8706 -35.3486 30.2113 -38.8706 -30.2113 0.0 +2836 3.45 3.55 26.25 7.45817 8.24142 -7.45818 2.93187 -8.24142 -2.93187 0.0 +2837 3.45 3.55 33.75 0.442038 0.937077 -0.442023 0.16053 -0.937083 -0.160524 0.0 +2838 3.45 3.55 41.25 -0.036135 0.0544695 0.0361478 0.0475514 -0.0544678 -0.0475693 0.0 +2839 3.45 3.55 48.75 0.0114763 -0.0262494 -0.0114589 0.0137087 0.0262505 -0.0137065 0.0 +2840 3.45 3.55 56.25 -0.0247279 -0.0151853 0.0247269 0.0138833 0.0151975 -0.0138936 0.0 +2841 3.45 3.55 63.75 -0.00534614 0.000359977 0.00535626 -0.000883675 -0.000355567 0.000884282 0.0 +2842 3.45 3.55 71.25 0.0021508 -0.00431124 -0.00217205 -0.00167595 0.00430117 0.00167024 0.0 +2843 3.45 3.55 78.75 -0.00618242 -0.0011063 0.00617677 0.00219776 0.00111944 -0.00219769 0.0 +2844 3.45 3.55 86.25 -0.00864154 0.00382556 0.00863024 -0.000880014 -0.00382877 0.000881011 0.0 +2845 3.45 3.55 93.75 -0.00688417 0.00308196 0.00688064 -0.000591138 -0.00307945 0.000591269 0.0 +2846 3.45 3.55 101.25 -0.00277733 0.00250811 0.00278446 0.00339576 -0.00248041 -0.00339897 0.0 +2847 3.45 3.55 108.75 9.6645e-05 0.00292517 -9.27955e-05 0.00533124 -0.00297869 -0.00532125 0.0 +2848 3.45 3.55 116.25 -0.00279109 0.00312423 0.0027777 0.004826 -0.00313043 -0.00482587 0.0 +2849 3.45 3.55 123.75 -0.007852 0.00420337 0.00785189 0.00337755 -0.00423422 -0.00336561 0.0 +2850 3.45 3.55 131.25 -0.00899665 0.00525366 0.00898163 0.00211415 -0.00526556 -0.00211688 0.0 +2851 3.45 3.55 138.75 -0.00658818 0.00353401 0.00658935 0.00247574 -0.00351467 -0.00247806 0.0 +2852 3.45 3.55 146.25 -0.00472251 -0.000274464 0.0047137 0.00454554 0.000265355 -0.00453667 0.0 +2853 3.45 3.55 153.75 -0.00408631 -0.00145214 0.00408205 0.00601461 0.00145164 -0.0060113 0.0 +2854 3.45 3.55 161.25 -0.00213812 0.00336809 0.00214451 0.0045329 -0.00336917 -0.00453833 0.0 +2855 3.45 3.55 168.75 0.002039 0.0122448 -0.00204369 0.000537346 -0.0122471 -0.000536574 0.0 +2856 3.45 3.55 176.25 0.00576826 0.0191805 -0.00579318 -0.00289312 -0.0192316 0.00291892 0.0 +2857 3.45 3.65 3.75 27.0106 27.9613 -27.0106 49.4083 -27.9613 -49.4083 0.0 +2858 3.45 3.65 11.25 14.9394 14.3629 -14.9394 5.91574 -14.3629 -5.91574 0.0 +2859 3.45 3.65 18.75 5.42704 4.99328 -5.42704 -0.785154 -4.99328 0.785155 0.0 +2860 3.45 3.65 26.25 1.05899 1.10476 -1.05899 -0.658621 -1.10476 0.658622 0.0 +2861 3.45 3.65 33.75 0.0281818 0.145917 -0.0281832 -0.129014 -0.145916 0.129014 0.0 +2862 3.45 3.65 41.25 -0.00445013 0.00847625 0.00444947 -0.00108348 -0.0084749 0.00108322 0.0 +2863 3.45 3.65 48.75 0.00425589 -0.0101956 -0.00425551 0.00738506 0.0101965 -0.00738428 0.0 +2864 3.45 3.65 56.25 -0.00818272 -0.00590468 0.00818308 0.00485965 0.00590354 -0.00486006 0.0 +2865 3.45 3.65 63.75 -0.00416452 -0.000816284 0.00416288 0.00103036 0.000813653 -0.00103209 0.0 +2866 3.45 3.65 71.25 0.00103127 -0.00146141 -0.00103277 0.000818187 0.00146199 -0.000819189 0.0 +2867 3.45 3.65 78.75 0.0016058 -0.00187691 -0.00160474 0.000733485 0.00187607 -0.000733211 0.0 +2868 3.45 3.65 86.25 0.00109362 -0.000919641 -0.00109306 -0.000877938 0.000920276 0.000877779 0.0 +2869 3.45 3.65 93.75 0.000615382 -0.000162543 -0.000614614 -0.00196718 0.000162038 0.00196727 0.0 +2870 3.45 3.65 101.25 0.000257077 -9.90887e-05 -0.000257803 -0.00198713 9.8806e-05 0.00198727 0.0 +2871 3.45 3.65 108.75 -0.000415666 -0.000551723 0.000416382 -0.00133258 0.000550085 0.00133277 0.0 +2872 3.45 3.65 116.25 -0.00171058 -0.00100344 0.00171033 -0.000283121 0.00100575 0.000281567 0.0 +2873 3.45 3.65 123.75 -0.00282345 -0.00136999 0.00282231 0.000681739 0.00136679 -0.000680174 0.0 +2874 3.45 3.65 131.25 -0.00293906 -0.00227991 0.00293814 0.00125143 0.00227664 -0.00125029 0.0 +2875 3.45 3.65 138.75 -0.00235433 -0.00392254 0.0023561 0.0016008 0.00392512 -0.00160107 0.0 +2876 3.45 3.65 146.25 -0.00181787 -0.00523799 0.00181858 0.00193355 0.00523773 -0.00193291 0.0 +2877 3.45 3.65 153.75 -0.00147655 -0.00473654 0.00147561 0.00211445 0.00473647 -0.00211477 0.0 +2878 3.45 3.65 161.25 -0.000967812 -0.00201348 0.000967111 0.00191586 0.00201087 -0.00191381 0.0 +2879 3.45 3.65 168.75 -0.000185572 0.00169462 0.000184459 0.00140918 -0.00169418 -0.00140983 0.0 +2880 3.45 3.65 176.25 0.000452234 0.00431542 -0.000452919 0.000978651 -0.00431348 -0.000979895 0.0 +2881 3.55 2.55 3.75 -229.406 -210.878 229.406 294.295 210.878 -294.295 0.0 +2882 3.55 2.55 11.25 -199.57 -142.531 199.57 214.774 142.531 -214.774 0.0 +2883 3.55 2.55 18.75 -155.766 -47.9091 155.766 136.693 47.9091 -136.693 0.0 +2884 3.55 2.55 26.25 -113.195 30.0688 113.195 89.2497 -30.0688 -89.2497 0.0 +2885 3.55 2.55 33.75 -77.4432 72.6073 77.4432 57.649 -72.6073 -57.649 0.0 +2886 3.55 2.55 41.25 -47.4313 83.435 47.4313 29.1262 -83.435 -29.1262 0.0 +2887 3.55 2.55 48.75 -21.4656 76.4023 21.4655 3.49717 -76.4023 -3.49717 0.0 +2888 3.55 2.55 56.25 0.0313289 64.405 -0.0313427 -14.8015 -64.405 14.8015 0.0 +2889 3.55 2.55 63.75 15.3842 54.1613 -15.3842 -23.4846 -54.1613 23.4846 0.0 +2890 3.55 2.55 71.25 23.5807 46.4646 -23.5807 -23.8098 -46.4646 23.8098 0.0 +2891 3.55 2.55 78.75 25.4225 39.3366 -25.4225 -19.2609 -39.3366 19.2609 0.0 +2892 3.55 2.55 86.25 23.3388 31.024 -23.3388 -13.5921 -31.0241 13.5921 0.0 +2893 3.55 2.55 93.75 20.1539 21.135 -20.1539 -9.24297 -21.135 9.24297 0.0 +2894 3.55 2.55 101.25 17.7701 10.268 -17.7701 -6.83623 -10.268 6.83623 0.0 +2895 3.55 2.55 108.75 16.6831 -0.675633 -16.6831 -5.75168 0.675638 5.75168 0.0 +2896 3.55 2.55 116.25 16.4196 -10.8522 -16.4196 -5.06569 10.8522 5.06568 0.0 +2897 3.55 2.55 123.75 16.2857 -19.5797 -16.2857 -4.17308 19.5797 4.17308 0.0 +2898 3.55 2.55 131.25 15.8485 -26.4045 -15.8485 -2.91647 26.4045 2.91647 0.0 +2899 3.55 2.55 138.75 15.02 -31.1759 -15.02 -1.42561 31.1759 1.4256 0.0 +2900 3.55 2.55 146.25 13.9278 -34.062 -13.9278 0.0838222 34.0619 -0.0838168 0.0 +2901 3.55 2.55 153.75 12.7687 -35.4729 -12.7687 1.42997 35.4729 -1.42997 0.0 +2902 3.55 2.55 161.25 11.7278 -35.927 -11.7278 2.49848 35.927 -2.49848 0.0 +2903 3.55 2.55 168.75 10.9505 -35.9169 -10.9505 3.23067 35.917 -3.23067 0.0 +2904 3.55 2.55 176.25 10.5363 -35.8139 -10.5363 3.60114 35.8139 -3.60114 0.0 +2905 3.55 2.65 3.75 -251.703 -244.274 251.703 410.77 244.274 -410.77 0.0 +2906 3.55 2.65 11.25 -212.889 -171.396 212.889 279.716 171.396 -279.716 0.0 +2907 3.55 2.65 18.75 -157.426 -73.7037 157.426 160.214 73.7037 -160.214 0.0 +2908 3.55 2.65 26.25 -106.127 3.62033 106.127 94.6298 -3.62033 -94.6298 0.0 +2909 3.55 2.65 33.75 -66.6414 43.9955 66.6414 57.7405 -43.9955 -57.7405 0.0 +2910 3.55 2.65 41.25 -37.1568 54.118 37.1568 29.0601 -54.118 -29.0601 0.0 +2911 3.55 2.65 48.75 -14.1506 48.9325 14.1506 5.36658 -48.9325 -5.36657 0.0 +2912 3.55 2.65 56.25 3.71459 40.5629 -3.71458 -10.365 -40.5629 10.365 0.0 +2913 3.55 2.65 63.75 16.0185 34.4708 -16.0185 -17.0997 -34.4708 17.0997 0.0 +2914 3.55 2.65 71.25 22.3492 30.686 -22.3492 -16.8785 -30.686 16.8785 0.0 +2915 3.55 2.65 78.75 23.4632 27.0893 -23.4632 -13.1658 -27.0893 13.1658 0.0 +2916 3.55 2.65 86.25 21.3128 22.1249 -21.3128 -9.07321 -22.1249 9.07321 0.0 +2917 3.55 2.65 93.75 18.1341 15.6344 -18.1341 -6.27069 -15.6344 6.2707 0.0 +2918 3.55 2.65 101.25 15.3987 8.31199 -15.3987 -4.90709 -8.31198 4.90709 0.0 +2919 3.55 2.65 108.75 13.4619 0.987899 -13.4619 -4.30622 -0.987895 4.30622 0.0 +2920 3.55 2.65 116.25 11.9812 -5.67249 -11.9811 -3.75874 5.67248 3.75874 0.0 +2921 3.55 2.65 123.75 10.533 -11.1925 -10.533 -2.9196 11.1925 2.9196 0.0 +2922 3.55 2.65 131.25 8.93728 -15.2892 -8.93728 -1.7942 15.2892 1.7942 0.0 +2923 3.55 2.65 138.75 7.2458 -17.9112 -7.24581 -0.551666 17.9112 0.551669 0.0 +2924 3.55 2.65 146.25 5.60299 -19.2413 -5.60297 0.632986 19.2413 -0.632993 0.0 +2925 3.55 2.65 153.75 4.14439 -19.6283 -4.1444 1.64399 19.6283 -1.64399 0.0 +2926 3.55 2.65 161.25 2.96848 -19.4785 -2.96847 2.42373 19.4785 -2.42373 0.0 +2927 3.55 2.65 168.75 2.14406 -19.1576 -2.14405 2.94939 19.1576 -2.94938 0.0 +2928 3.55 2.65 176.25 1.71892 -18.9295 -1.71891 3.21334 18.9295 -3.21334 0.0 +2929 3.55 2.75 3.75 -264.315 -251.884 264.315 554.153 251.884 -554.153 0.0 +2930 3.55 2.75 11.25 -218.018 -178.063 218.018 348.569 178.063 -348.569 0.0 +2931 3.55 2.75 18.75 -153.431 -82.237 153.431 177.523 82.237 -177.523 0.0 +2932 3.55 2.75 26.25 -95.9973 -9.58238 95.9973 92.8913 9.58238 -92.8913 0.0 +2933 3.55 2.75 33.75 -54.8909 26.1439 54.8909 52.4496 -26.1439 -52.4496 0.0 +2934 3.55 2.75 41.25 -27.4701 34.2513 27.4701 25.5556 -34.2513 -25.5556 0.0 +2935 3.55 2.75 48.75 -8.47775 30.1327 8.47774 5.12254 -30.1327 -5.12254 0.0 +2936 3.55 2.75 56.25 5.07875 24.538 -5.07874 -7.50333 -24.538 7.50333 0.0 +2937 3.55 2.75 63.75 13.9817 21.3671 -13.9817 -12.2962 -21.3671 12.2962 0.0 +2938 3.55 2.75 71.25 18.3904 19.9549 -18.3905 -11.6735 -19.9549 11.6735 0.0 +2939 3.55 2.75 78.75 18.9591 18.3138 -18.959 -8.76449 -18.3138 8.76449 0.0 +2940 3.55 2.75 86.25 17.0821 15.3211 -17.0821 -5.94741 -15.3211 5.94741 0.0 +2941 3.55 2.75 93.75 14.3506 11.1288 -14.3506 -4.23127 -11.1288 4.23127 0.0 +2942 3.55 2.75 101.25 11.7989 6.47419 -11.7989 -3.47648 -6.47418 3.47648 0.0 +2943 3.55 2.75 108.75 9.66457 2.01951 -9.66458 -3.0836 -2.0195 3.0836 0.0 +2944 3.55 2.75 116.25 7.74129 -1.82686 -7.7413 -2.58215 1.82685 2.58216 0.0 +2945 3.55 2.75 123.75 5.83466 -4.83284 -5.83465 -1.82939 4.83283 1.8294 0.0 +2946 3.55 2.75 131.25 3.93964 -6.88932 -3.93963 -0.91277 6.8893 0.912773 0.0 +2947 3.55 2.75 138.75 2.16628 -8.02362 -2.16626 0.0181776 8.02364 -0.0181816 0.0 +2948 3.55 2.75 146.25 0.619367 -8.40184 -0.619378 0.852629 8.40183 -0.852624 0.0 +2949 3.55 2.75 153.75 -0.648178 -8.27967 0.648181 1.53734 8.27967 -1.53733 0.0 +2950 3.55 2.75 161.25 -1.61826 -7.92733 1.61826 2.0554 7.92733 -2.0554 0.0 +2951 3.55 2.75 168.75 -2.27916 -7.56871 2.27916 2.4029 7.56872 -2.4029 0.0 +2952 3.55 2.75 176.25 -2.61565 -7.3533 2.61565 2.5776 7.35327 -2.57759 0.0 +2953 3.55 2.85 3.75 -261.527 -235.81 261.527 724.836 235.81 -724.836 0.0 +2954 3.55 2.85 11.25 -211.244 -166.597 211.244 416.164 166.597 -416.164 0.0 +2955 3.55 2.85 18.75 -142.48 -78.6912 142.48 186.852 78.6912 -186.852 0.0 +2956 3.55 2.85 26.25 -83.1221 -14.2229 83.1221 84.8442 14.223 -84.8442 0.0 +2957 3.55 2.85 33.75 -43.0885 15.5567 43.0885 43.3483 -15.5567 -43.3483 0.0 +2958 3.55 2.85 41.25 -19.0807 21.2967 19.0807 20.0983 -21.2967 -20.0983 0.0 +2959 3.55 2.85 48.75 -4.56564 17.9239 4.56566 3.89029 -17.9239 -3.89029 0.0 +2960 3.55 2.85 56.25 4.68974 14.4266 -4.68973 -5.45881 -14.4266 5.45881 0.0 +2961 3.55 2.85 63.75 10.3993 13.1365 -10.3993 -8.55525 -13.1365 8.55525 0.0 +2962 3.55 2.85 71.25 13.149 12.9016 -13.149 -7.76157 -12.9016 7.76157 0.0 +2963 3.55 2.85 78.75 13.4264 12.095 -13.4264 -5.62748 -12.095 5.62748 0.0 +2964 3.55 2.85 86.25 12.0608 10.1297 -12.0608 -3.80584 -10.1297 3.80584 0.0 +2965 3.55 2.85 93.75 10.0367 7.43249 -10.0367 -2.80863 -7.4325 2.80863 0.0 +2966 3.55 2.85 101.25 8.01353 4.69251 -8.01354 -2.3777 -4.69252 2.3777 0.0 +2967 3.55 2.85 108.75 6.15338 2.33759 -6.15338 -2.06536 -2.33757 2.06536 0.0 +2968 3.55 2.85 116.25 4.37451 0.505156 -4.37452 -1.6121 -0.505158 1.61211 0.0 +2969 3.55 2.85 123.75 2.64685 -0.790656 -2.64685 -1.0014 0.790603 1.00141 0.0 +2970 3.55 2.85 131.25 1.0548 -1.57001 -1.05481 -0.336579 1.57001 0.336585 0.0 +2971 3.55 2.85 138.75 -0.301249 -1.89549 0.301247 0.282316 1.8955 -0.282321 0.0 +2972 3.55 2.85 146.25 -1.3849 -1.88523 1.38489 0.806188 1.88523 -0.806188 0.0 +2973 3.55 2.85 153.75 -2.21895 -1.68823 2.21895 1.22569 1.68826 -1.2257 0.0 +2974 3.55 2.85 161.25 -2.83872 -1.44066 2.83873 1.54425 1.44064 -1.54424 0.0 +2975 3.55 2.85 168.75 -3.25933 -1.23657 3.25933 1.76182 1.23656 -1.76182 0.0 +2976 3.55 2.85 176.25 -3.47478 -1.12538 3.47479 1.87313 1.12538 -1.87313 0.0 +2977 3.55 2.95 3.75 -238.248 -195.778 238.248 919.354 195.778 -919.354 0.0 +2978 3.55 2.95 11.25 -189.674 -139.46 189.674 474.265 139.46 -474.265 0.0 +2979 3.55 2.95 18.75 -123.906 -67.0584 123.906 186.836 67.0584 -186.836 0.0 +2980 3.55 2.95 26.25 -68.0315 -14.1389 68.0315 72.1684 14.1389 -72.1684 0.0 +2981 3.55 2.95 33.75 -31.9787 9.22621 31.9787 32.4164 -9.22622 -32.4164 0.0 +2982 3.55 2.95 41.25 -12.3582 12.9007 12.3583 14.1095 -12.9007 -14.1095 0.0 +2983 3.55 2.95 48.75 -2.18494 10.2138 2.18496 2.49295 -10.2139 -2.49296 0.0 +2984 3.55 2.95 56.25 3.3582 8.24208 -3.35821 -3.79474 -8.24206 3.79474 0.0 +2985 3.55 2.95 63.75 6.49294 8.02143 -6.49294 -5.58908 -8.02143 5.58908 0.0 +2986 3.55 2.95 71.25 8.02049 8.19907 -8.0205 -4.84949 -8.19905 4.84949 0.0 +2987 3.55 2.95 78.75 8.22344 7.62696 -8.22344 -3.42621 -7.62696 3.42621 0.0 +2988 3.55 2.95 86.25 7.44006 6.19885 -7.44002 -2.34519 -6.19886 2.34519 0.0 +2989 3.55 2.95 93.75 6.16909 4.49074 -6.16911 -1.80008 -4.49073 1.80008 0.0 +2990 3.55 2.95 101.25 4.7983 3.05613 -4.79831 -1.53727 -3.05611 1.53727 0.0 +2991 3.55 2.95 108.75 3.45573 2.08096 -3.45575 -1.27583 -2.08101 1.27584 0.0 +2992 3.55 2.95 116.25 2.15328 1.48623 -2.15328 -0.907415 -1.48624 0.907424 0.0 +2993 3.55 2.95 123.75 0.949834 1.14548 -0.949837 -0.471692 -1.14549 0.471698 0.0 +2994 3.55 2.95 131.25 -0.0550126 0.978085 0.0550168 -0.0490852 -0.978089 0.0490994 0.0 +2995 3.55 2.95 138.75 -0.810377 0.930404 0.810378 0.312048 -0.930407 -0.312044 0.0 +2996 3.55 2.95 146.25 -1.34711 0.946474 1.34711 0.605449 -0.946508 -0.605443 0.0 +2997 3.55 2.95 153.75 -1.73568 0.972292 1.73566 0.843093 -0.972294 -0.843115 0.0 +2998 3.55 2.95 161.25 -2.0293 0.976791 2.0293 1.03229 -0.976772 -1.0323 0.0 +2999 3.55 2.95 168.75 -2.2408 0.960264 2.24081 1.16853 -0.960251 -1.16853 0.0 +3000 3.55 2.95 176.25 -2.35501 0.942937 2.355 1.24087 -0.942925 -1.24088 0.0 +3001 3.55 3.05 3.75 -191.297 -130.082 191.297 1128.5 130.082 -1128.5 0.0 +3002 3.55 3.05 11.25 -152.226 -97.7637 152.226 511.643 97.7637 -511.643 0.0 +3003 3.55 3.05 18.75 -98.1201 -49.6499 98.1201 176.712 49.6499 -176.712 0.0 +3004 3.55 3.05 26.25 -51.5683 -11.65 51.5683 57.077 11.65 -57.077 0.0 +3005 3.55 3.05 33.75 -22.1446 5.20584 22.1446 21.6579 -5.20585 -21.6579 0.0 +3006 3.55 3.05 41.25 -7.38019 7.37579 7.38014 8.71709 -7.37577 -8.71708 0.0 +3007 3.55 3.05 48.75 -0.926333 5.37849 0.926342 1.38286 -5.3785 -1.38286 0.0 +3008 3.55 3.05 56.25 1.85514 4.42058 -1.85514 -2.37141 -4.42058 2.3714 0.0 +3009 3.55 3.05 63.75 3.22617 4.68783 -3.22619 -3.29462 -4.68786 3.29461 0.0 +3010 3.55 3.05 71.25 3.99011 4.90415 -3.99008 -2.75614 -4.9041 2.75615 0.0 +3011 3.55 3.05 78.75 4.23211 4.38385 -4.2321 -1.92599 -4.38384 1.92599 0.0 +3012 3.55 3.05 86.25 3.94062 3.32631 -3.9406 -1.36028 -3.3263 1.36028 0.0 +3013 3.55 3.05 93.75 3.29323 2.3031 -3.29324 -1.08948 -2.30313 1.08948 0.0 +3014 3.55 3.05 101.25 2.51472 1.68908 -2.51471 -0.92722 -1.68906 0.92722 0.0 +3015 3.55 3.05 108.75 1.72258 1.48366 -1.72257 -0.729229 -1.48363 0.72922 0.0 +3016 3.55 3.05 116.25 0.978063 1.49003 -0.978058 -0.472368 -1.49006 0.47237 0.0 +3017 3.55 3.05 123.75 0.361941 1.5347 -0.361928 -0.204692 -1.53463 0.204681 0.0 +3018 3.55 3.05 131.25 -0.0580488 1.53872 0.0580497 0.0271852 -1.53873 -0.02718 0.0 +3019 3.55 3.05 138.75 -0.288182 1.48156 0.28818 0.211303 -1.48158 -0.211288 0.0 +3020 3.55 3.05 146.25 -0.402687 1.35988 0.402687 0.361419 -1.35985 -0.361436 0.0 +3021 3.55 3.05 153.75 -0.484044 1.18137 0.484038 0.493182 -1.18138 -0.493177 0.0 +3022 3.55 3.05 161.25 -0.573201 0.974726 0.573209 0.609288 -0.974728 -0.60928 0.0 +3023 3.55 3.05 168.75 -0.662445 0.789454 0.662456 0.699577 -0.789456 -0.699573 0.0 +3024 3.55 3.05 176.25 -0.7198 0.679375 0.719786 0.749601 -0.679392 -0.749593 0.0 +3025 3.55 3.15 3.75 -120.535 -38.5135 120.535 1334.4 38.5135 -1334.4 0.0 +3026 3.55 3.15 11.25 -100.361 -42.9397 100.361 515.461 42.9397 -515.461 0.0 +3027 3.55 3.15 18.75 -66.8257 -27.6715 66.8257 156.437 27.6715 -156.437 0.0 +3028 3.55 3.15 26.25 -34.8806 -7.69081 34.8806 41.7654 7.69081 -41.7654 0.0 +3029 3.55 3.15 33.75 -13.9952 2.60989 13.9952 12.6685 -2.60989 -12.6685 0.0 +3030 3.55 3.15 41.25 -4.0045 3.76721 4.00452 4.60296 -3.76722 -4.60296 0.0 +3031 3.55 3.15 48.75 -0.362908 2.40871 0.362911 0.684517 -2.40873 -0.684496 0.0 +3032 3.55 3.15 56.25 0.698355 2.02222 -0.698341 -1.23238 -2.0222 1.23238 0.0 +3033 3.55 3.15 63.75 1.08795 2.40699 -1.08797 -1.65461 -2.40696 1.65462 0.0 +3034 3.55 3.15 71.25 1.45251 2.55615 -1.45253 -1.35584 -2.55613 1.35584 0.0 +3035 3.55 3.15 78.75 1.73638 2.12607 -1.73637 -0.957408 -2.12608 0.957409 0.0 +3036 3.55 3.15 86.25 1.74868 1.41086 -1.74869 -0.717153 -1.41085 0.717153 0.0 +3037 3.55 3.15 93.75 1.5066 0.86199 -1.5066 -0.608615 -0.862043 0.608616 0.0 +3038 3.55 3.15 101.25 1.15427 0.692349 -1.15426 -0.521959 -0.692347 0.521961 0.0 +3039 3.55 3.15 108.75 0.799794 0.807097 -0.799796 -0.399775 -0.80711 0.399772 0.0 +3040 3.55 3.15 116.25 0.510123 0.993297 -0.510111 -0.252463 -0.993286 0.252463 0.0 +3041 3.55 3.15 123.75 0.344561 1.10258 -0.344571 -0.114896 -1.10259 0.114902 0.0 +3042 3.55 3.15 131.25 0.32494 1.09044 -0.324933 -0.00704299 -1.09044 0.00704928 0.0 +3043 3.55 3.15 138.75 0.404925 0.966593 -0.404949 0.0762265 -0.966647 -0.0762275 0.0 +3044 3.55 3.15 146.25 0.499444 0.753676 -0.499415 0.151485 -0.753669 -0.151477 0.0 +3045 3.55 3.15 153.75 0.542832 0.481048 -0.542816 0.22901 -0.481047 -0.229008 0.0 +3046 3.55 3.15 161.25 0.522198 0.193975 -0.522177 0.305586 -0.193965 -0.305594 0.0 +3047 3.55 3.15 168.75 0.468573 -0.0480481 -0.468564 0.368598 0.048046 -0.368601 0.0 +3048 3.55 3.15 176.25 0.426757 -0.187013 -0.426752 0.404298 0.186996 -0.404293 0.0 +3049 3.55 3.25 3.75 -29.6653 73.925 29.6653 1503.64 -73.925 -1503.64 0.0 +3050 3.55 3.25 11.25 -38.343 21.1792 38.343 474.484 -21.1792 -474.484 0.0 +3051 3.55 3.25 18.75 -32.9234 -2.3694 32.9234 126.727 2.3694 -126.727 0.0 +3052 3.55 3.25 26.25 -19.3004 -2.48733 19.3004 27.8286 2.48732 -27.8286 0.0 +3053 3.55 3.25 33.75 -7.74679 1.20452 7.74681 6.29538 -1.20452 -6.29539 0.0 +3054 3.55 3.25 41.25 -1.94619 1.60378 1.94618 1.96617 -1.60377 -1.96616 0.0 +3055 3.55 3.25 48.75 -0.157335 0.755813 0.157348 0.31596 -0.755837 -0.315945 0.0 +3056 3.55 3.25 56.25 0.0714287 0.611962 -0.0714357 -0.460837 -0.611969 0.460849 0.0 +3057 3.55 3.25 63.75 0.0702285 0.923583 -0.0701829 -0.637809 -0.923614 0.637808 0.0 +3058 3.55 3.25 71.25 0.254878 1.02447 -0.25488 -0.526913 -1.02446 0.526913 0.0 +3059 3.55 3.25 78.75 0.514287 0.758419 -0.514308 -0.387335 -0.758396 0.387332 0.0 +3060 3.55 3.25 86.25 0.632201 0.354653 -0.632241 -0.323832 -0.354649 0.323832 0.0 +3061 3.55 3.25 93.75 0.582318 0.103028 -0.582347 -0.305332 -0.103026 0.305331 0.0 +3062 3.55 3.25 101.25 0.46996 0.111698 -0.46996 -0.276841 -0.111679 0.276842 0.0 +3063 3.55 3.25 108.75 0.380585 0.279066 -0.380591 -0.223034 -0.279092 0.223042 0.0 +3064 3.55 3.25 116.25 0.358122 0.44336 -0.358142 -0.159424 -0.443412 0.159434 0.0 +3065 3.55 3.25 123.75 0.427025 0.512673 -0.427042 -0.104868 -0.51267 0.104858 0.0 +3066 3.55 3.25 131.25 0.574576 0.475402 -0.574594 -0.0645124 -0.475427 0.0645121 0.0 +3067 3.55 3.25 138.75 0.741562 0.351546 -0.741556 -0.0294911 -0.351565 0.0294968 0.0 +3068 3.55 3.25 146.25 0.857969 0.161727 -0.85796 0.0114794 -0.16175 -0.0114787 0.0 +3069 3.55 3.25 153.75 0.888764 -0.0710245 -0.888769 0.0613246 0.071072 -0.0613482 0.0 +3070 3.55 3.25 161.25 0.848268 -0.311204 -0.848278 0.113131 0.311192 -0.113144 0.0 +3071 3.55 3.25 168.75 0.781206 -0.511438 -0.781203 0.155702 0.511431 -0.155695 0.0 +3072 3.55 3.25 176.25 0.733873 -0.625736 -0.733895 0.1795 0.625763 -0.179513 0.0 +3073 3.55 3.35 3.75 70.5641 186.771 -70.5641 1508.57 -186.771 -1508.57 0.0 +3074 3.55 3.35 11.25 26.1135 83.8672 -26.1135 369.137 -83.8672 -369.137 0.0 +3075 3.55 3.35 18.75 -0.0874673 23.0482 0.0874728 85.6093 -23.0482 -85.6093 0.0 +3076 3.55 3.35 26.25 -5.90552 3.52135 5.90552 15.2641 -3.52136 -15.2641 0.0 +3077 3.55 3.35 33.75 -3.28275 0.861657 3.28277 2.42219 -0.861647 -2.42219 0.0 +3078 3.55 3.35 41.25 -0.811789 0.540902 0.811771 0.587392 -0.540899 -0.587387 0.0 +3079 3.55 3.35 48.75 -0.092098 0.0540773 0.0921139 0.12834 -0.0540653 -0.128329 0.0 +3080 3.55 3.35 56.25 -0.113419 -0.0251278 0.113414 -0.065704 0.0251121 0.0657004 0.0 +3081 3.55 3.35 63.75 -0.169707 0.151465 0.169684 -0.136214 -0.151455 0.136224 0.0 +3082 3.55 3.35 71.25 -0.0770462 0.234517 0.0770254 -0.122786 -0.234512 0.122797 0.0 +3083 3.55 3.35 78.75 0.080157 0.14264 -0.0801127 -0.0976888 -0.142618 0.0976915 0.0 +3084 3.55 3.35 86.25 0.16526 -0.0245321 -0.16523 -0.105724 0.0245585 0.105724 0.0 +3085 3.55 3.35 93.75 0.16494 -0.121904 -0.164953 -0.124366 0.121903 0.124366 0.0 +3086 3.55 3.35 101.25 0.150547 -0.0889324 -0.150553 -0.128054 0.0889257 0.128048 0.0 +3087 3.55 3.35 108.75 0.170286 0.0175738 -0.170291 -0.117975 -0.0175791 0.117976 0.0 +3088 3.55 3.35 116.25 0.23787 0.110881 -0.237884 -0.105416 -0.110839 0.105397 0.0 +3089 3.55 3.35 123.75 0.352555 0.149885 -0.352566 -0.0967577 -0.149898 0.0967502 0.0 +3090 3.55 3.35 131.25 0.489812 0.135495 -0.489818 -0.0893887 -0.135477 0.0893863 0.0 +3091 3.55 3.35 138.75 0.60086 0.077142 -0.600855 -0.0756476 -0.0771297 0.0756365 0.0 +3092 3.55 3.35 146.25 0.643546 -0.0196771 -0.643564 -0.0510493 0.0196634 0.0510486 0.0 +3093 3.55 3.35 153.75 0.611551 -0.145928 -0.611561 -0.0188268 0.145921 0.0188254 0.0 +3094 3.55 3.35 161.25 0.533916 -0.281245 -0.533921 0.0128836 0.281282 -0.0128976 0.0 +3095 3.55 3.35 168.75 0.453006 -0.396367 -0.453027 0.0367463 0.396347 -0.036746 0.0 +3096 3.55 3.35 176.25 0.403626 -0.462625 -0.403626 0.0491182 0.462593 -0.0490967 0.0 +3097 3.55 3.45 3.75 121.762 207.785 -121.762 962.688 -207.785 -962.688 0.0 +3098 3.55 3.45 11.25 60.8866 100.045 -60.8866 171.897 -100.045 -171.897 0.0 +3099 3.55 3.45 18.75 19.2588 32.9384 -19.2588 31.2407 -32.9384 -31.2407 0.0 +3100 3.55 3.45 26.25 2.44295 6.83148 -2.44294 3.77225 -6.83148 -3.77225 0.0 +3101 3.55 3.45 33.75 -0.567079 0.958398 0.567088 0.416847 -0.958393 -0.416854 0.0 +3102 3.55 3.45 41.25 -0.222537 0.179899 0.222522 0.084085 -0.179913 -0.0840813 0.0 +3103 3.55 3.45 48.75 -0.0448672 -0.0437923 0.0448399 0.028244 0.0437888 -0.0282332 0.0 +3104 3.55 3.45 56.25 -0.0627155 -0.090292 0.0626997 0.0294423 0.0902953 -0.0294398 0.0 +3105 3.55 3.45 63.75 -0.0651564 -0.0351753 0.0651434 0.00414308 0.035192 -0.00412588 0.0 +3106 3.55 3.45 71.25 -0.042218 0.0132608 0.0422006 -0.00188957 -0.0132483 0.00189618 0.0 +3107 3.55 3.45 78.75 -0.0116982 0.0190232 0.011707 1.57271e-05 -0.0190144 -1.64085e-05 0.0 +3108 3.55 3.45 86.25 0.00013451 -0.0138769 -0.000144209 -0.0123824 0.0138849 0.0123821 0.0 +3109 3.55 3.45 93.75 -0.00393746 -0.0447471 0.00392985 -0.0246058 0.0447166 0.0246083 0.0 +3110 3.55 3.45 101.25 0.00141228 -0.0409447 -0.0013985 -0.0283161 0.0409468 0.0283156 0.0 +3111 3.55 3.45 108.75 0.0263281 -0.010178 -0.0263265 -0.0311072 0.0101511 0.0311133 0.0 +3112 3.55 3.45 116.25 0.0681867 0.0249438 -0.0681732 -0.0385014 -0.0249297 0.0385108 0.0 +3113 3.55 3.45 123.75 0.121836 0.0519122 -0.121824 -0.0480196 -0.0519073 0.048018 0.0 +3114 3.55 3.45 131.25 0.172268 0.0658221 -0.17226 -0.0530535 -0.0658407 0.0530668 0.0 +3115 3.55 3.45 138.75 0.195564 0.0618726 -0.19556 -0.0485273 -0.0619059 0.0485432 0.0 +3116 3.55 3.45 146.25 0.177362 0.0378149 -0.17737 -0.0351206 -0.0378521 0.0351336 0.0 +3117 3.55 3.45 153.75 0.125251 -0.00187406 -0.125266 -0.0186947 0.00187352 0.018683 0.0 +3118 3.55 3.45 161.25 0.0620088 -0.0466966 -0.0619998 -0.0055378 0.0466948 0.00554231 0.0 +3119 3.55 3.45 168.75 0.00986362 -0.0846755 -0.00985828 0.00176039 0.0846777 -0.00175711 0.0 +3120 3.55 3.45 176.25 -0.0183927 -0.10623 0.0183719 0.00441031 0.106201 -0.00440336 0.0 +3121 3.55 3.55 3.75 81.0059 113.34 -81.0059 260.352 -113.34 -260.352 0.0 +3122 3.55 3.55 11.25 42.1524 56.4121 -42.1524 26.3617 -56.4121 -26.3617 0.0 +3123 3.55 3.55 18.75 14.7132 19.7973 -14.7132 -0.755035 -19.7973 0.755033 0.0 +3124 3.55 3.55 26.25 2.79612 4.5306 -2.79613 -1.38915 -4.53059 1.38915 0.0 +3125 3.55 3.55 33.75 0.10053 0.64794 -0.100533 -0.160016 -0.647941 0.160018 0.0 +3126 3.55 3.55 41.25 -0.0178303 0.07505 0.0178293 0.0195223 -0.0750523 -0.0195244 0.0 +3127 3.55 3.55 48.75 -0.00517875 -0.00351167 0.00518041 0.00760166 0.00350383 -0.00760536 0.0 +3128 3.55 3.55 56.25 -0.0146237 -0.0107977 0.0146179 0.0109189 0.0107984 -0.0109269 0.0 +3129 3.55 3.55 63.75 -3.87507e-05 -0.00362228 4.15324e-05 -0.000860953 0.0036153 0.000862609 0.0 +3130 3.55 3.55 71.25 0.00025554 0.00310581 -0.000258051 -0.00193062 -0.00311301 0.00192984 0.0 +3131 3.55 3.55 78.75 -0.00939829 0.0115235 0.0094016 0.000961058 -0.0115276 -0.000962838 0.0 +3132 3.55 3.55 86.25 -0.0165596 0.0133942 0.0165552 -0.000618444 -0.0133937 0.000618414 0.0 +3133 3.55 3.55 93.75 -0.0192198 0.0081303 0.0192237 0.000800086 -0.00813014 -0.000800389 0.0 +3134 3.55 3.55 101.25 -0.0173135 0.00397392 0.017316 0.00498683 -0.0039722 -0.00498686 0.0 +3135 3.55 3.55 108.75 -0.0127763 0.00613703 0.0127729 0.00547732 -0.00614031 -0.00547708 0.0 +3136 3.55 3.55 116.25 -0.00660985 0.0146966 0.00660871 0.000809944 -0.0146938 -0.000810497 0.0 +3137 3.55 3.55 123.75 0.00134833 0.025362 -0.00135008 -0.00514917 -0.0253577 0.0051477 0.0 +3138 3.55 3.55 131.25 0.00729171 0.0312649 -0.00729682 -0.00779015 -0.0312805 0.00779548 0.0 +3139 3.55 3.55 138.75 0.00442273 0.0279187 -0.00442424 -0.00517592 -0.0279147 0.00517078 0.0 +3140 3.55 3.55 146.25 -0.0095565 0.0168767 0.00955964 0.000965394 -0.0168727 -0.000968108 0.0 +3141 3.55 3.55 153.75 -0.0293138 0.00381127 0.0293123 0.00695552 -0.00382228 -0.00695117 0.0 +3142 3.55 3.55 161.25 -0.0467198 -0.00619086 0.0467172 0.0101031 0.00618452 -0.0101001 0.0 +3143 3.55 3.55 168.75 -0.0572524 -0.0115126 0.0572543 0.0103575 0.0115196 -0.0103592 0.0 +3144 3.55 3.55 176.25 -0.0614583 -0.0133864 0.0614549 0.00960442 0.0133863 -0.00960501 0.0 +3145 3.55 3.65 3.75 12.0786 14.33 -12.0786 4.38613 -14.33 -4.38613 0.0 +3146 3.55 3.65 11.25 6.33912 7.33576 -6.33912 -3.18423 -7.33576 3.18423 0.0 +3147 3.55 3.65 18.75 2.17784 2.6298 -2.17784 -1.96003 -2.6298 1.96003 0.0 +3148 3.55 3.65 26.25 0.39006 0.617253 -0.390059 -0.575786 -0.617253 0.575786 0.0 +3149 3.55 3.65 33.75 0.012681 0.0862211 -0.0126807 -0.0681723 -0.0862212 0.0681722 0.0 +3150 3.55 3.65 41.25 0.00502234 0.00223156 -0.00502212 0.00459513 -0.00223169 -0.00459442 0.0 +3151 3.55 3.65 48.75 0.00119944 -0.00628422 -0.00119894 0.00406756 0.00628446 -0.004068 0.0 +3152 3.55 3.65 56.25 -0.00386742 -0.003943 0.0038666 0.00178896 0.00394351 -0.00178918 0.0 +3153 3.55 3.65 63.75 -8.12468e-05 -0.00348925 8.0267e-05 -0.000674629 0.00348964 0.000674362 0.0 +3154 3.55 3.65 71.25 0.00192557 -0.00505585 -0.00192533 -0.00075298 0.00505521 0.00075297 0.0 +3155 3.55 3.65 78.75 0.00130323 -0.00454114 -0.0013032 -0.000636843 0.00454084 0.000636893 0.0 +3156 3.55 3.65 86.25 0.000803867 -0.00245655 -0.00080399 -0.00102105 0.0024577 0.00102106 0.0 +3157 3.55 3.65 93.75 0.0005973 -0.00111275 -0.000596389 -0.00057336 0.00111433 0.000573242 0.0 +3158 3.55 3.65 101.25 8.21929e-06 -0.00103481 -8.12152e-06 0.000450279 0.00103466 -0.00045023 0.0 +3159 3.55 3.65 108.75 -0.00119309 -0.00126494 0.00119399 0.0010993 0.00126523 -0.00109935 0.0 +3160 3.55 3.65 116.25 -0.00250233 -0.00111306 0.0025023 0.00122707 0.00111394 -0.00122737 0.0 +3161 3.55 3.65 123.75 -0.00325961 -0.00112678 0.00325939 0.00125572 0.00112681 -0.00125599 0.0 +3162 3.55 3.65 131.25 -0.0035151 -0.00233904 0.00351542 0.00158179 0.00233879 -0.00158147 0.0 +3163 3.55 3.65 138.75 -0.00380524 -0.00487295 0.00380513 0.00228977 0.0048732 -0.00229011 0.0 +3164 3.55 3.65 146.25 -0.00421555 -0.00763611 0.00421483 0.00312216 0.00763468 -0.00312155 0.0 +3165 3.55 3.65 153.75 -0.0041875 -0.00929866 0.0041879 0.00369562 0.00929919 -0.00369561 0.0 +3166 3.55 3.65 161.25 -0.00326306 -0.00936525 0.00326349 0.00381045 0.00936578 -0.00381069 0.0 +3167 3.55 3.65 168.75 -0.00175148 -0.00841033 0.00175132 0.00358917 0.00841037 -0.00358917 0.0 +3168 3.55 3.65 176.25 -0.000592392 -0.007527 0.000592354 0.00335056 0.00752733 -0.00335069 0.0 +3169 3.65 2.55 3.75 -40.009 -15.4008 40.009 40.0274 15.4008 -40.0274 0.0 +3170 3.65 2.55 11.25 -35.9275 -8.01432 35.9275 33.2501 8.01432 -33.2501 0.0 +3171 3.65 2.55 18.75 -29.1111 2.18604 29.1111 25.2314 -2.18604 -25.2314 0.0 +3172 3.65 2.55 26.25 -21.3547 10.3626 21.3547 18.2796 -10.3626 -18.2796 0.0 +3173 3.65 2.55 33.75 -13.9719 14.348 13.9719 11.7967 -14.348 -11.7967 0.0 +3174 3.65 2.55 41.25 -7.5442 14.6453 7.54421 5.59102 -14.6453 -5.59102 0.0 +3175 3.65 2.55 48.75 -2.24061 13.0038 2.24061 0.431082 -13.0038 -0.431082 0.0 +3176 3.65 2.55 56.25 1.8288 11.0249 -1.8288 -2.89428 -11.0249 2.89428 0.0 +3177 3.65 2.55 63.75 4.53289 9.46602 -4.53289 -4.23204 -9.46602 4.23204 0.0 +3178 3.65 2.55 71.25 5.85495 8.2892 -5.85495 -4.06592 -8.2892 4.06592 0.0 +3179 3.65 2.55 78.75 6.02504 7.12145 -6.02504 -3.16889 -7.12145 3.16889 0.0 +3180 3.65 2.55 86.25 5.48507 5.68167 -5.48507 -2.21374 -5.68167 2.21374 0.0 +3181 3.65 2.55 93.75 4.69928 3.93064 -4.69928 -1.54457 -3.93064 1.54457 0.0 +3182 3.65 2.55 101.25 3.96919 2.00212 -3.96919 -1.18342 -2.00212 1.18342 0.0 +3183 3.65 2.55 108.75 3.38632 0.0868782 -3.38632 -0.988945 -0.0868777 0.988945 0.0 +3184 3.65 2.55 116.25 2.91224 -1.63935 -2.91224 -0.817586 1.63935 0.817586 0.0 +3185 3.65 2.55 123.75 2.48437 -3.04769 -2.48437 -0.599486 3.04769 0.599486 0.0 +3186 3.65 2.55 131.25 2.07217 -4.07177 -2.07217 -0.334193 4.07177 0.334193 0.0 +3187 3.65 2.55 138.75 1.67928 -4.7127 -1.67928 -0.0541061 4.7127 0.0541055 0.0 +3188 3.65 2.55 146.25 1.324 -5.02905 -1.324 0.206511 5.02905 -0.206511 0.0 +3189 3.65 2.55 153.75 1.02384 -5.11434 -1.02384 0.42501 5.11435 -0.425011 0.0 +3190 3.65 2.55 161.25 0.790618 -5.0708 -0.79062 0.59084 5.0708 -0.59084 0.0 +3191 3.65 2.55 168.75 0.631514 -4.98804 -0.631514 0.701038 4.98804 -0.701038 0.0 +3192 3.65 2.55 176.25 0.550863 -4.9302 -0.550863 0.755804 4.93019 -0.755804 0.0 +3193 3.65 2.65 3.75 -40.3415 -20.4462 40.3414 48.2003 20.4462 -48.2003 0.0 +3194 3.65 2.65 11.25 -35.6139 -12.537 35.6139 37.6321 12.537 -37.6321 0.0 +3195 3.65 2.65 18.75 -27.8935 -1.94676 27.8935 26.3964 1.94676 -26.3964 0.0 +3196 3.65 2.65 26.25 -19.4761 6.1859 19.4761 18.0571 -6.1859 -18.0571 0.0 +3197 3.65 2.65 33.75 -11.9713 9.93876 11.9713 11.3141 -9.93876 -11.3141 0.0 +3198 3.65 2.65 41.25 -5.94346 10.1979 5.94346 5.35283 -10.1979 -5.35283 0.0 +3199 3.65 2.65 48.75 -1.33924 8.87517 1.33925 0.645199 -8.87517 -0.645199 0.0 +3200 3.65 2.65 56.25 1.99711 7.47429 -1.99711 -2.21792 -7.47429 2.21792 0.0 +3201 3.65 2.65 63.75 4.13172 6.56384 -4.13172 -3.25512 -6.56384 3.25512 0.0 +3202 3.65 2.65 71.25 5.12808 5.97847 -5.12807 -3.03446 -5.97846 3.03446 0.0 +3203 3.65 2.65 78.75 5.18813 5.32387 -5.18814 -2.29047 -5.32387 2.29047 0.0 +3204 3.65 2.65 86.25 4.66497 4.36756 -4.66497 -1.57788 -4.36756 1.57788 0.0 +3205 3.65 2.65 93.75 3.92751 3.12819 -3.92751 -1.12411 -3.12819 1.12411 0.0 +3206 3.65 2.65 101.25 3.21269 1.76422 -3.21269 -0.893827 -1.76422 0.893826 0.0 +3207 3.65 2.65 108.75 2.59178 0.449106 -2.59178 -0.752929 -0.449104 0.752929 0.0 +3208 3.65 2.65 116.25 2.0428 -0.685103 -2.0428 -0.59797 0.685104 0.597969 0.0 +3209 3.65 2.65 123.75 1.53526 -1.55782 -1.53526 -0.396906 1.55781 0.396906 0.0 +3210 3.65 2.65 131.25 1.06531 -2.13944 -1.0653 -0.167518 2.13944 0.167517 0.0 +3211 3.65 2.65 138.75 0.647302 -2.44867 -0.6473 0.0582564 2.44867 -0.0582566 0.0 +3212 3.65 2.65 146.25 0.295526 -2.54219 -0.295526 0.256206 2.54219 -0.256206 0.0 +3213 3.65 2.65 153.75 0.015987 -2.49637 -0.0159868 0.414877 2.49637 -0.414877 0.0 +3214 3.65 2.65 161.25 -0.191615 -2.38798 0.191615 0.531758 2.38798 -0.531758 0.0 +3215 3.65 2.65 168.75 -0.329232 -2.2801 0.329232 0.608128 2.2801 -0.608129 0.0 +3216 3.65 2.65 176.25 -0.397947 -2.21557 0.397946 0.645792 2.21557 -0.645792 0.0 +3217 3.65 2.75 3.75 -39.2092 -22.6483 39.2092 57.4865 22.6483 -57.4865 0.0 +3218 3.65 2.75 11.25 -34.0902 -14.5832 34.0902 41.5462 14.5832 -41.5462 0.0 +3219 3.65 2.75 18.75 -25.8464 -4.11523 25.8464 26.3647 4.11523 -26.3647 0.0 +3220 3.65 2.75 26.25 -17.1522 3.55165 17.1522 16.7014 -3.55165 -16.7014 0.0 +3221 3.65 2.75 33.75 -9.84656 6.82027 9.84656 10.0278 -6.82027 -10.0278 0.0 +3222 3.65 2.75 41.25 -4.45564 6.92657 4.45564 4.64181 -6.92657 -4.64181 0.0 +3223 3.65 2.75 48.75 -0.70807 5.85889 0.708069 0.607165 -5.85889 -0.607165 0.0 +3224 3.65 2.75 56.25 1.80566 4.93589 -1.80566 -1.70515 -4.93589 1.70515 0.0 +3225 3.65 2.75 63.75 3.33924 4.49868 -3.33924 -2.44435 -4.49868 2.44435 0.0 +3226 3.65 2.75 71.25 4.02671 4.27839 -4.02671 -2.19705 -4.27839 2.19705 0.0 +3227 3.65 2.75 78.75 4.02726 3.91248 -4.02727 -1.60919 -3.91248 1.60919 0.0 +3228 3.65 2.75 86.25 3.58908 3.25589 -3.58908 -1.10369 -3.25589 1.10369 0.0 +3229 3.65 2.75 93.75 2.9762 2.39149 -2.9762 -0.808766 -2.39149 0.808766 0.0 +3230 3.65 2.75 101.25 2.36071 1.48535 -2.36071 -0.659115 -1.48535 0.659115 0.0 +3231 3.65 2.75 108.75 1.79777 0.671454 -1.79777 -0.545142 -0.671455 0.545142 0.0 +3232 3.65 2.75 116.25 1.28284 0.0234409 -1.28284 -0.404026 -0.0234405 0.404026 0.0 +3233 3.65 2.75 123.75 0.811743 -0.43038 -0.811744 -0.231178 0.43038 0.231178 0.0 +3234 3.65 2.75 131.25 0.396762 -0.692839 -0.396759 -0.0508027 0.692839 0.0508029 0.0 +3235 3.65 2.75 138.75 0.0525657 -0.79188 -0.0525663 0.112907 0.79188 -0.112907 0.0 +3236 3.65 2.75 146.25 -0.216914 -0.773428 0.216914 0.247559 0.773429 -0.247559 0.0 +3237 3.65 2.75 153.75 -0.418494 -0.689828 0.418494 0.351026 0.689828 -0.351026 0.0 +3238 3.65 2.75 161.25 -0.562315 -0.588117 0.562314 0.425709 0.588116 -0.425709 0.0 +3239 3.65 2.75 168.75 -0.655784 -0.50303 0.655784 0.474309 0.503029 -0.474309 0.0 +3240 3.65 2.75 176.25 -0.70215 -0.455711 0.702148 0.498348 0.45571 -0.498348 0.0 +3241 3.65 2.85 3.75 -36.1987 -22.1966 36.1987 67.8757 22.1966 -67.8757 0.0 +3242 3.65 2.85 11.25 -31.1231 -14.5476 31.1231 44.722 14.5476 -44.722 0.0 +3243 3.65 2.85 18.75 -22.9507 -4.83831 22.9507 25.1442 4.83831 -25.1442 0.0 +3244 3.65 2.85 26.25 -14.5015 1.99182 14.5015 14.4274 -1.99182 -14.4274 0.0 +3245 3.65 2.85 33.75 -7.74532 4.65105 7.74531 8.19298 -4.65105 -8.19298 0.0 +3246 3.65 2.85 41.25 -3.16789 4.58365 3.16789 3.66897 -4.58364 -3.66897 0.0 +3247 3.65 2.85 48.75 -0.326482 3.73795 0.326483 0.458076 -3.73795 -0.458076 0.0 +3248 3.65 2.85 56.25 1.38627 3.19238 -1.38627 -1.27721 -3.19238 1.27721 0.0 +3249 3.65 2.85 63.75 2.36943 3.06551 -2.36943 -1.75743 -3.06551 1.75743 0.0 +3250 3.65 2.85 71.25 2.8034 3.02746 -2.8034 -1.52065 -3.02746 1.52065 0.0 +3251 3.65 2.85 78.75 2.79373 2.78904 -2.79373 -1.08761 -2.78904 1.08761 0.0 +3252 3.65 2.85 86.25 2.48238 2.30604 -2.48238 -0.752322 -2.30604 0.752322 0.0 +3253 3.65 2.85 93.75 2.0349 1.7119 -2.0349 -0.569675 -1.71189 0.569675 0.0 +3254 3.65 2.85 101.25 1.56805 1.15837 -1.56805 -0.468524 -1.15836 0.468524 0.0 +3255 3.65 2.85 108.75 1.12682 0.726277 -1.12682 -0.371897 -0.726277 0.371897 0.0 +3256 3.65 2.85 116.25 0.721911 0.430298 -0.72191 -0.250757 -0.430296 0.250757 0.0 +3257 3.65 2.85 123.75 0.366105 0.255384 -0.366107 -0.115872 -0.255384 0.115872 0.0 +3258 3.65 2.85 131.25 0.0764133 0.178392 -0.0764139 0.0109956 -0.178395 -0.0109948 0.0 +3259 3.65 2.85 138.75 -0.140159 0.172548 0.140159 0.116179 -0.17255 -0.116179 0.0 +3260 3.65 2.85 146.25 -0.292185 0.208833 0.292184 0.197279 -0.208836 -0.197279 0.0 +3261 3.65 2.85 153.75 -0.396562 0.260566 0.396563 0.257879 -0.260565 -0.25788 0.0 +3262 3.65 2.85 161.25 -0.468221 0.308506 0.468223 0.301952 -0.308503 -0.301952 0.0 +3263 3.65 2.85 168.75 -0.515005 0.342587 0.515006 0.331407 -0.342587 -0.331407 0.0 +3264 3.65 2.85 176.25 -0.538677 0.359692 0.538675 0.346347 -0.359693 -0.346347 0.0 +3265 3.65 2.95 3.75 -31.0019 -19.003 31.0019 78.9744 19.003 -78.9744 0.0 +3266 3.65 2.95 11.25 -26.5858 -12.6408 26.5858 46.6915 12.6408 -46.6915 0.0 +3267 3.65 2.95 18.75 -19.2587 -4.5184 19.2587 22.835 4.51841 -22.835 0.0 +3268 3.65 2.95 26.25 -11.6633 1.10677 11.6633 11.5723 -1.10677 -11.5723 0.0 +3269 3.65 2.95 33.75 -5.7939 3.11687 5.79389 6.11985 -3.11686 -6.11985 0.0 +3270 3.65 2.95 41.25 -2.12727 2.91559 2.12727 2.63537 -2.91559 -2.63537 0.0 +3271 3.65 2.95 48.75 -0.137034 2.26979 0.137037 0.297769 -2.26979 -0.297769 0.0 +3272 3.65 2.95 56.25 0.89062 1.99985 -0.89062 -0.897052 -1.99985 0.897051 0.0 +3273 3.65 2.95 63.75 1.43386 2.04765 -1.43386 -1.17926 -2.04765 1.17926 0.0 +3274 3.65 2.95 71.25 1.68765 2.07234 -1.68766 -0.985761 -2.07234 0.985761 0.0 +3275 3.65 2.95 78.75 1.70109 1.87698 -1.70109 -0.696346 -1.87698 0.696346 0.0 +3276 3.65 2.95 86.25 1.52434 1.50326 -1.52434 -0.494147 -1.50326 0.494147 0.0 +3277 3.65 2.95 93.75 1.24419 1.10746 -1.24419 -0.388517 -1.10746 0.388517 0.0 +3278 3.65 2.95 101.25 0.937154 0.808793 -0.937155 -0.318937 -0.808791 0.318936 0.0 +3279 3.65 2.95 108.75 0.642843 0.634786 -0.642845 -0.240126 -0.634789 0.240127 0.0 +3280 3.65 2.95 116.25 0.381776 0.554629 -0.381776 -0.145979 -0.554627 0.14598 0.0 +3281 3.65 2.95 123.75 0.17295 0.527744 -0.17295 -0.0522492 -0.527741 0.0522488 0.0 +3282 3.65 2.95 131.25 0.0288148 0.525341 -0.0288157 0.0261916 -0.525345 -0.0261907 0.0 +3283 3.65 2.95 138.75 -0.0549588 0.529738 0.054956 0.0850404 -0.529738 -0.0850411 0.0 +3284 3.65 2.95 146.25 -0.0972437 0.529758 0.0972444 0.128089 -0.52976 -0.128088 0.0 +3285 3.65 2.95 153.75 -0.119472 0.520003 0.119472 0.16087 -0.520002 -0.16087 0.0 +3286 3.65 2.95 161.25 -0.13538 0.501774 0.135382 0.186492 -0.501775 -0.186491 0.0 +3287 3.65 2.95 168.75 -0.14865 0.481932 0.148652 0.205017 -0.481933 -0.205016 0.0 +3288 3.65 2.95 176.25 -0.156808 0.469103 0.156808 0.214928 -0.469103 -0.214928 0.0 +3289 3.65 3.05 3.75 -23.5214 -12.7722 23.5214 89.7571 12.7722 -89.7571 0.0 +3290 3.65 3.05 11.25 -20.5344 -8.89321 20.5344 46.7329 8.89321 -46.7329 0.0 +3291 3.65 3.05 18.75 -14.9237 -3.37015 14.9237 19.602 3.37015 -19.602 0.0 +3292 3.65 3.05 26.25 -8.79497 0.654416 8.79497 8.53398 -0.654415 -8.53398 0.0 +3293 3.65 3.05 33.75 -4.08878 2.00814 4.08878 4.118 -2.00814 -4.118 0.0 +3294 3.65 3.05 41.25 -1.34433 1.73251 1.34433 1.70123 -1.73252 -1.70123 0.0 +3295 3.65 3.05 48.75 -0.0691392 1.25993 0.0691406 0.177071 -1.25993 -0.177071 0.0 +3296 3.65 3.05 56.25 0.448 1.16617 -0.448 -0.563897 -1.16617 0.563897 0.0 +3297 3.65 3.05 63.75 0.688998 1.28795 -0.688995 -0.713807 -1.28795 0.713807 0.0 +3298 3.65 3.05 71.25 0.832696 1.31773 -0.8327 -0.581497 -1.31773 0.581496 0.0 +3299 3.65 3.05 78.75 0.879329 1.14394 -0.879329 -0.412977 -1.14394 0.412977 0.0 +3300 3.65 3.05 86.25 0.814193 0.858734 -0.814194 -0.307966 -0.858731 0.307966 0.0 +3301 3.65 3.05 93.75 0.671971 0.610837 -0.671969 -0.25422 -0.610837 0.25422 0.0 +3302 3.65 3.05 101.25 0.504261 0.479465 -0.50426 -0.20887 -0.479465 0.208869 0.0 +3303 3.65 3.05 108.75 0.347065 0.452085 -0.347066 -0.151081 -0.452085 0.151081 0.0 +3304 3.65 3.05 116.25 0.223383 0.474397 -0.22338 -0.0866915 -0.474392 0.0866907 0.0 +3305 3.65 3.05 123.75 0.149325 0.499837 -0.149326 -0.0298693 -0.499834 0.0298677 0.0 +3306 3.65 3.05 131.25 0.12772 0.50528 -0.127719 0.0117782 -0.505278 -0.0117784 0.0 +3307 3.65 3.05 138.75 0.143881 0.48447 -0.143884 0.0399674 -0.484471 -0.0399662 0.0 +3308 3.65 3.05 146.25 0.173862 0.43953 -0.173863 0.0607343 -0.439532 -0.0607346 0.0 +3309 3.65 3.05 153.75 0.197949 0.377853 -0.197948 0.0788534 -0.377854 -0.0788529 0.0 +3310 3.65 3.05 161.25 0.208419 0.311516 -0.20842 0.0954852 -0.311516 -0.0954856 0.0 +3311 3.65 3.05 168.75 0.208396 0.255395 -0.208397 0.108907 -0.255394 -0.108908 0.0 +3312 3.65 3.05 176.25 0.205537 0.223214 -0.205539 0.116501 -0.223214 -0.116501 0.0 +3313 3.65 3.15 3.75 -13.9561 -3.3206 13.9561 98.2858 3.3206 -98.2858 0.0 +3314 3.65 3.15 11.25 -13.261 -3.34518 13.261 43.9082 3.34518 -43.9082 0.0 +3315 3.65 3.15 18.75 -10.2101 -1.48319 10.2101 15.6336 1.48319 -15.6336 0.0 +3316 3.65 3.15 26.25 -6.06397 0.541479 6.06397 5.68372 -0.541479 -5.68372 0.0 +3317 3.65 3.15 33.75 -2.6902 1.22634 2.69021 2.43562 -1.22634 -2.43562 0.0 +3318 3.65 3.15 41.25 -0.799622 0.922855 0.799619 0.965754 -0.922853 -0.965755 0.0 +3319 3.65 3.15 48.75 -0.0595567 0.587691 0.0595571 0.105055 -0.58769 -0.105055 0.0 +3320 3.65 3.15 56.25 0.136132 0.582762 -0.136135 -0.296388 -0.582762 0.296388 0.0 +3321 3.65 3.15 63.75 0.206081 0.714041 -0.20608 -0.369864 -0.714043 0.369864 0.0 +3322 3.65 3.15 71.25 0.291262 0.735392 -0.29126 -0.298228 -0.735391 0.298228 0.0 +3323 3.65 3.15 78.75 0.359948 0.594925 -0.359946 -0.219047 -0.594924 0.219047 0.0 +3324 3.65 3.15 86.25 0.364864 0.394363 -0.36487 -0.178439 -0.39436 0.178439 0.0 +3325 3.65 3.15 93.75 0.314697 0.253059 -0.314697 -0.158716 -0.253058 0.158716 0.0 +3326 3.65 3.15 101.25 0.247244 0.215305 -0.247245 -0.133797 -0.215307 0.133798 0.0 +3327 3.65 3.15 108.75 0.19353 0.249334 -0.193531 -0.0978249 -0.249331 0.0978237 0.0 +3328 3.65 3.15 116.25 0.172327 0.299349 -0.17233 -0.0603582 -0.299354 0.0603583 0.0 +3329 3.65 3.15 123.75 0.191601 0.327027 -0.191602 -0.0313905 -0.327024 0.0313885 0.0 +3330 3.65 3.15 131.25 0.244296 0.319239 -0.244294 -0.0132263 -0.319245 0.0132287 0.0 +3331 3.65 3.15 138.75 0.309669 0.277854 -0.309668 -0.00163962 -0.277858 0.00164223 0.0 +3332 3.65 3.15 146.25 0.36466 0.210708 -0.36466 0.00886413 -0.210705 -0.00886437 0.0 +3333 3.65 3.15 153.75 0.396038 0.12897 -0.396036 0.0210449 -0.128967 -0.0210456 0.0 +3334 3.65 3.15 161.25 0.404322 0.0468919 -0.404325 0.034161 -0.0468877 -0.0341657 0.0 +3335 3.65 3.15 168.75 0.399467 -0.0197308 -0.399467 0.0454309 0.0197332 -0.045432 0.0 +3336 3.65 3.15 176.25 0.393288 -0.0570915 -0.393287 0.0519376 0.0570948 -0.0519383 0.0 +3337 3.65 3.25 3.75 -2.84841 8.98913 2.84841 101.365 -8.98913 -101.365 0.0 +3338 3.65 3.25 11.25 -5.30559 3.68427 5.30559 37.2625 -3.68427 -37.2625 0.0 +3339 3.65 3.25 18.75 -5.47905 1.03572 5.47905 11.105 -1.03572 -11.105 0.0 +3340 3.65 3.25 26.25 -3.63301 0.745278 3.63301 3.27944 -0.745278 -3.27944 0.0 +3341 3.65 3.25 33.75 -1.61937 0.737373 1.61937 1.21149 -0.737371 -1.21149 0.0 +3342 3.65 3.25 41.25 -0.451827 0.424127 0.451828 0.462362 -0.424126 -0.462367 0.0 +3343 3.65 3.25 48.75 -0.0643465 0.186784 0.064344 0.0665433 -0.186787 -0.0665438 0.0 +3344 3.65 3.25 56.25 -0.0271963 0.206749 0.0271963 -0.112307 -0.206747 0.112306 0.0 +3345 3.65 3.25 63.75 -0.0287216 0.314739 0.0287221 -0.147725 -0.314739 0.147727 0.0 +3346 3.65 3.25 71.25 0.0255212 0.334405 -0.0255227 -0.121627 -0.334405 0.121627 0.0 +3347 3.65 3.25 78.75 0.0934406 0.242453 -0.0934401 -0.0975277 -0.242456 0.0975275 0.0 +3348 3.65 3.25 86.25 0.124558 0.11911 -0.12456 -0.0934047 -0.119111 0.0934046 0.0 +3349 3.65 3.25 93.75 0.120536 0.0466826 -0.12054 -0.0939133 -0.0466836 0.0939132 0.0 +3350 3.65 3.25 101.25 0.110584 0.0476725 -0.110584 -0.0847896 -0.0476712 0.0847891 0.0 +3351 3.65 3.25 108.75 0.117935 0.090861 -0.117936 -0.0672303 -0.0908671 0.0672311 0.0 +3352 3.65 3.25 116.25 0.153275 0.133648 -0.153275 -0.0500874 -0.133656 0.0500894 0.0 +3353 3.65 3.25 123.75 0.215727 0.151238 -0.215728 -0.0391482 -0.151235 0.0391465 0.0 +3354 3.65 3.25 131.25 0.291608 0.138189 -0.291609 -0.0336619 -0.13819 0.0336617 0.0 +3355 3.65 3.25 138.75 0.359347 0.0983875 -0.359348 -0.0291956 -0.0983892 0.0291967 0.0 +3356 3.65 3.25 146.25 0.401272 0.038616 -0.401271 -0.022058 -0.0386123 0.0220571 0.0 +3357 3.65 3.25 153.75 0.412585 -0.0321809 -0.412584 -0.0116292 0.0321862 0.0116272 0.0 +3358 3.65 3.25 161.25 0.401401 -0.1024 -0.401399 4.51052e-05 0.102401 -4.42202e-05 0.0 +3359 3.65 3.25 168.75 0.382258 -0.159045 -0.38226 0.00995287 0.159044 -0.00995344 0.0 +3360 3.65 3.25 176.25 0.368774 -0.190698 -0.368775 0.0155765 0.190695 -0.0155759 0.0 +3361 3.65 3.35 3.75 8.57831 22.029 -8.57831 90.4039 -22.029 -90.4039 0.0 +3362 3.65 3.35 11.25 2.48876 10.9716 -2.48876 25.2009 -10.9716 -25.2009 0.0 +3363 3.65 3.35 18.75 -1.10374 3.77841 1.10374 5.92447 -3.77841 -5.92447 0.0 +3364 3.65 3.35 26.25 -1.58014 1.17267 1.58014 1.35603 -1.17267 -1.35603 0.0 +3365 3.65 3.35 33.75 -0.82821 0.490495 0.828207 0.439289 -0.490495 -0.43929 0.0 +3366 3.65 3.35 41.25 -0.237349 0.172633 0.237344 0.163569 -0.172631 -0.163569 0.0 +3367 3.65 3.35 48.75 -0.0586032 0.00522448 0.0586023 0.0404713 -0.00522588 -0.0404716 0.0 +3368 3.65 3.35 56.25 -0.0692222 0.0153302 0.0692185 -0.0129308 -0.0153248 0.0129318 0.0 +3369 3.65 3.35 63.75 -0.0840586 0.0871098 0.0840552 -0.0309457 -0.0871098 0.0309442 0.0 +3370 3.65 3.35 71.25 -0.0536445 0.110943 0.0536423 -0.0295495 -0.110941 0.0295495 0.0 +3371 3.65 3.35 78.75 -0.00982277 0.0701621 0.00982661 -0.0305352 -0.0701671 0.0305349 0.0 +3372 3.65 3.35 86.25 0.0145461 0.0088837 -0.0145485 -0.0406569 -0.00888549 0.040657 0.0 +3373 3.65 3.35 93.75 0.0229469 -0.0252769 -0.0229444 -0.0491129 0.025273 0.0491132 0.0 +3374 3.65 3.35 101.25 0.0355738 -0.0188163 -0.0355749 -0.0488332 0.0188197 0.0488329 0.0 +3375 3.65 3.35 108.75 0.0655018 0.0101297 -0.0655002 -0.0435205 -0.0101327 0.0435213 0.0 +3376 3.65 3.35 116.25 0.115214 0.0376575 -0.115217 -0.0395796 -0.0376578 0.0395802 0.0 +3377 3.65 3.35 123.75 0.178049 0.0506336 -0.17805 -0.0391484 -0.0506349 0.0391483 0.0 +3378 3.65 3.35 131.25 0.238684 0.0459317 -0.238686 -0.0397537 -0.0459383 0.0397562 0.0 +3379 3.65 3.35 138.75 0.279372 0.0244903 -0.27937 -0.0377474 -0.0244898 0.0377484 0.0 +3380 3.65 3.35 146.25 0.29001 -0.0110173 -0.290012 -0.0314691 0.0110121 0.0314721 0.0 +3381 3.65 3.35 153.75 0.273314 -0.0554592 -0.273313 -0.0220115 0.0554597 0.0220096 0.0 +3382 3.65 3.35 161.25 0.241753 -0.100943 -0.241753 -0.0119952 0.100943 0.0119956 0.0 +3383 3.65 3.35 168.75 0.210527 -0.138246 -0.210527 -0.00397578 0.138246 0.0039749 0.0 +3384 3.65 3.35 176.25 0.191739 -0.15925 -0.191737 0.000392892 0.159255 -0.000394892 0.0 +3385 3.65 3.45 3.75 13.9352 25.0134 -13.9352 47.3581 -25.0134 -47.3581 0.0 +3386 3.65 3.45 11.25 6.6144 12.841 -6.6144 7.54163 -12.841 -7.54163 0.0 +3387 3.65 3.45 18.75 1.63977 4.65277 -1.63978 0.626067 -4.65277 -0.626067 0.0 +3388 3.65 3.45 26.25 -0.134965 1.26549 0.134964 -0.00630213 -1.26549 0.0063021 0.0 +3389 3.65 3.45 33.75 -0.257019 0.327565 0.257018 0.0506325 -0.327565 -0.0506314 0.0 +3390 3.65 3.45 41.25 -0.0878206 0.0755859 0.0878219 0.0249344 -0.0755854 -0.0249345 0.0 +3391 3.65 3.45 48.75 -0.0295997 -0.0171818 0.0296009 0.0154182 0.0171825 -0.0154176 0.0 +3392 3.65 3.45 56.25 -0.0349652 -0.0219445 0.0349652 0.0129602 0.0219435 -0.0129587 0.0 +3393 3.65 3.45 63.75 -0.0407381 0.00761187 0.0407386 0.00421853 -0.00761128 -0.00421831 0.0 +3394 3.65 3.45 71.25 -0.034214 0.0259423 0.0342165 7.51679e-05 -0.0259422 -7.45622e-05 0.0 +3395 3.65 3.45 78.75 -0.0246565 0.0206849 0.0246588 -0.00385973 -0.0206858 0.00385946 0.0 +3396 3.65 3.45 86.25 -0.0199608 0.00260566 0.0199588 -0.0108228 -0.00260582 0.0108228 0.0 +3397 3.65 3.45 93.75 -0.0160962 -0.0108235 0.0160951 -0.0154515 0.0108225 0.0154515 0.0 +3398 3.65 3.45 101.25 -0.00516199 -0.0109817 0.00516255 -0.0158667 0.0109834 0.015867 0.0 +3399 3.65 3.45 108.75 0.0161436 -0.000990441 -0.0161444 -0.0157139 0.000992657 0.0157131 0.0 +3400 3.65 3.45 116.25 0.0462359 0.0119933 -0.0462349 -0.0179074 -0.011993 0.0179074 0.0 +3401 3.65 3.45 123.75 0.0789796 0.0222832 -0.0789806 -0.0216543 -0.0222854 0.0216552 0.0 +3402 3.65 3.45 131.25 0.104194 0.0261517 -0.104194 -0.0240943 -0.02615 0.0240937 0.0 +3403 3.65 3.45 138.75 0.112387 0.02152 -0.112387 -0.0230795 -0.0215204 0.0230794 0.0 +3404 3.65 3.45 146.25 0.100783 0.00855296 -0.100781 -0.01859 -0.00855206 0.01859 0.0 +3405 3.65 3.45 153.75 0.0747866 -0.010086 -0.0747873 -0.0122934 0.0100866 0.0122928 0.0 +3406 3.65 3.45 161.25 0.0443158 -0.0300182 -0.0443169 -0.0062199 0.0300166 0.00622007 0.0 +3407 3.65 3.45 168.75 0.0188579 -0.0465341 -0.0188583 -0.00176027 0.0465354 0.00175935 0.0 +3408 3.65 3.45 176.25 0.0047077 -0.0558365 -0.0047082 0.000519921 0.055837 -0.000521264 0.0 +3409 3.65 3.55 3.75 9.08664 14.1707 -9.08664 5.00548 -14.1707 -5.00548 0.0 +3410 3.65 3.55 11.25 4.57491 7.32707 -4.57491 -2.27541 -7.32707 2.27541 0.0 +3411 3.65 3.55 18.75 1.46185 2.72587 -1.46185 -1.40671 -2.72587 1.40671 0.0 +3412 3.65 3.55 26.25 0.202401 0.72718 -0.2024 -0.363615 -0.72718 0.363615 0.0 +3413 3.65 3.55 33.75 -0.0292135 0.158386 0.029214 -0.0296083 -0.158386 0.0296077 0.0 +3414 3.65 3.55 41.25 -0.013327 0.0341023 0.0133271 0.000415071 -0.0341024 -0.000414506 0.0 +3415 3.65 3.55 48.75 -0.00386995 0.00137162 0.00387057 0.00354997 -0.00137196 -0.00354995 0.0 +3416 3.65 3.55 56.25 -0.00362953 -0.00381371 0.00363005 0.00491999 0.00381369 -0.00492036 0.0 +3417 3.65 3.55 63.75 -0.00367255 0.000623919 0.00367258 0.000772869 -0.000624073 -0.000773243 0.0 +3418 3.65 3.55 71.25 -0.00599085 0.00545353 0.00599175 -0.000877382 -0.00545427 0.000877255 0.0 +3419 3.65 3.55 78.75 -0.00914792 0.00752484 0.00914884 -0.00123739 -0.00752489 0.00123748 0.0 +3420 3.65 3.55 86.25 -0.0111926 0.00607339 0.0111914 -0.00180791 -0.00607396 0.00180784 0.0 +3421 3.65 3.55 93.75 -0.0109307 0.00306489 0.0109307 -0.00110181 -0.00306532 0.00110186 0.0 +3422 3.65 3.55 101.25 -0.0077646 0.00146913 0.00776434 0.000281463 -0.00146817 -0.000281676 0.0 +3423 3.65 3.55 108.75 -0.00177445 0.00282649 0.00177504 0.000276509 -0.00282655 -0.00027648 0.0 +3424 3.65 3.55 116.25 0.00630219 0.00656393 -0.00630239 -0.00161604 -0.0065638 0.00161557 0.0 +3425 3.65 3.55 123.75 0.0142754 0.0104985 -0.0142748 -0.00404929 -0.0104982 0.00404958 0.0 +3426 3.65 3.55 131.25 0.0185262 0.0121463 -0.0185258 -0.00537147 -0.0121454 0.00537123 0.0 +3427 3.65 3.55 138.75 0.016205 0.0102423 -0.0162052 -0.00485693 -0.0102423 0.00485692 0.0 +3428 3.65 3.55 146.25 0.00744851 0.00528258 -0.00744923 -0.00289648 -0.00528247 0.00289629 0.0 +3429 3.65 3.55 153.75 -0.0047483 -0.0011129 0.0047475 -0.000439985 0.00111111 0.000440653 0.0 +3430 3.65 3.55 161.25 -0.0165726 -0.00720789 0.0165725 0.00167706 0.00720864 -0.00167778 0.0 +3431 3.65 3.55 168.75 -0.0252959 -0.0117744 0.0252957 0.00306582 0.0117749 -0.00306615 0.0 +3432 3.65 3.55 176.25 -0.0297657 -0.0141745 0.0297651 0.00371221 0.0141748 -0.00371261 0.0 +3433 3.65 3.65 3.75 1.34179 1.8764 -1.34179 -2.21207 -1.8764 2.21207 0.0 +3434 3.65 3.65 11.25 0.674722 0.975627 -0.674722 -1.01114 -0.975627 1.01114 0.0 +3435 3.65 3.65 18.75 0.218094 0.365855 -0.218094 -0.384938 -0.365855 0.384938 0.0 +3436 3.65 3.65 26.25 0.034533 0.0959486 -0.034533 -0.0883541 -0.0959486 0.0883541 0.0 +3437 3.65 3.65 33.75 0.000906004 0.0183831 -0.000905993 -0.00778172 -0.0183832 0.00778172 0.0 +3438 3.65 3.65 41.25 0.00132048 0.00271731 -0.00132051 0.00071098 -0.00271729 -0.000710997 0.0 +3439 3.65 3.65 48.75 0.000821636 -0.000306112 -0.00082155 0.000743727 0.000306079 -0.000743719 0.0 +3440 3.65 3.65 56.25 0.00055949 -0.000894959 -0.000559485 0.000325653 0.000894939 -0.000325638 0.0 +3441 3.65 3.65 63.75 0.000919031 -0.00134167 -0.000918928 -0.000425567 0.0013417 0.000425618 0.0 +3442 3.65 3.65 71.25 0.00068388 -0.00161126 -0.000683975 -0.000595268 0.00161117 0.000595242 0.0 +3443 3.65 3.65 78.75 0.000214632 -0.00126472 -0.000214751 -0.000489084 0.00126474 0.000489099 0.0 +3444 3.65 3.65 86.25 8.67817e-06 -0.000701107 -8.75836e-06 -0.000274181 0.00070111 0.000274184 0.0 +3445 3.65 3.65 93.75 1.71384e-06 -0.000443281 -1.76788e-06 0.000154524 0.000443329 -0.000154528 0.0 +3446 3.65 3.65 101.25 1.95029e-05 -0.000477718 -1.95794e-05 0.000567489 0.000477841 -0.000567493 0.0 +3447 3.65 3.65 108.75 7.48783e-05 -0.00049436 -7.48748e-05 0.000683729 0.000494453 -0.000683746 0.0 +3448 3.65 3.65 116.25 0.000265232 -0.000391767 -0.000265328 0.00052426 0.000391822 -0.000524261 0.0 +3449 3.65 3.65 123.75 0.000509939 -0.000400182 -0.000509922 0.000310119 0.000400276 -0.000310147 0.0 +3450 3.65 3.65 131.25 0.000525607 -0.000787876 -0.000525615 0.000228989 0.000787858 -0.00022897 0.0 +3451 3.65 3.65 138.75 0.000108536 -0.00156718 -0.000108471 0.000330074 0.00156723 -0.000330079 0.0 +3452 3.65 3.65 146.25 -0.000640149 -0.00249673 0.000640125 0.000548861 0.00249673 -0.000548895 0.0 +3453 3.65 3.65 153.75 -0.0014021 -0.00329158 0.00140212 0.000784814 0.00329161 -0.000784826 0.0 +3454 3.65 3.65 161.25 -0.00190979 -0.00380299 0.00190977 0.000966445 0.00380303 -0.000966483 0.0 +3455 3.65 3.65 168.75 -0.00211603 -0.00404799 0.00211605 0.00107292 0.004048 -0.00107292 0.0 +3456 3.65 3.65 176.25 -0.00215132 -0.00412886 0.00215137 0.00111754 0.00412895 -0.00111757 0.0 diff --git a/unittest/force-styles/tests/atomic-pair-sw_angle_table.yaml b/unittest/force-styles/tests/atomic-pair-sw_angle_table.yaml new file mode 100644 index 0000000000..7229a3cd26 --- /dev/null +++ b/unittest/force-styles/tests/atomic-pair-sw_angle_table.yaml @@ -0,0 +1,96 @@ +--- +lammps_version: 4 May 2022 +date_generated: Wed Jun 1 15:17:22 2022 +epsilon: 1e-12 +skip_tests: single +prerequisites: ! | + pair sw/angle/table + pair table +pre_commands: ! | + variable units index real + variable newton_pair delete + variable newton_pair index on + shell cp ${input_dir}/table_CG_CG_CG.txt . +post_commands: ! "" +input_file: in.metal +pair_style: hybrid/overlay table linear 1200 sw/angle/table +pair_coeff: ! | + * * table ${input_dir}/table_CG_CG.txt VOTCA + * * sw/angle/table ${input_dir}/spce.sw type type +extract: ! "" +natoms: 32 +init_vdwl: 2428.9633428241673 +init_coul: 0 +init_stress: ! |2- + 2.1799808252981104e+04 2.2098847758334741e+04 1.5227317495796946e+04 5.5915487284825185e+03 4.2330141376182507e+02 -2.1635648030093221e+03 +init_forces: ! |2 + 1 -3.5272456427265922e+02 4.7896703188444229e+02 7.6160632749768567e+01 + 2 -2.2734507500176406e+01 -1.5821645847684510e+02 1.1028261572305695e+02 + 3 -3.6932223674029137e+02 1.7315628979419187e+03 -5.2288079251214720e+02 + 4 3.1116044194470057e+01 -3.1009878149268530e+01 -6.8414290700926671e+01 + 5 1.2157567668233901e+03 1.3361425827696451e+03 -2.4428700622833938e+02 + 6 2.1498603159595226e+02 1.2379258234822432e+01 -1.8192892150594932e+02 + 7 -5.8065242995364076e+02 6.3615913954340272e+02 -5.8940661342540871e+01 + 8 -2.9330102622037936e+02 -1.4478456371145094e+02 3.4992669050834974e+02 + 9 5.4581529315399578e+01 -1.0085658890730177e+02 -4.3539166606697755e+01 + 10 -7.5328757518773557e+02 -1.9208550331031577e+03 -5.9929086772884966e+02 + 11 -6.2073979508185595e+01 -9.3172505877146349e+01 8.8201736909256510e+01 + 12 5.2022495622775352e+02 -6.4668600468680108e+02 -1.8086255931588799e+01 + 13 -1.4637585277113917e+02 -2.4193749312797078e+01 -1.3497675472534843e+02 + 14 2.2785633726795228e+02 -1.4050021950202930e+02 4.2957377860079254e+02 + 15 -4.1589593903912913e+01 5.6849936807240290e+01 -5.3315771137404397e+01 + 16 5.0207265346701280e+02 -4.3553084670415353e+02 2.2270110539464073e+02 + 17 2.7243217976852867e+02 6.7842110608020960e+02 -1.8488293016613730e+02 + 18 -1.6339467540544510e+03 -8.6208840396403559e+02 -5.2809809085219297e+02 + 19 -1.8146991394127588e+03 -1.4248970633821093e+03 1.6246778777497133e+02 + 20 5.0143947854312678e+01 3.0349353798587607e+01 -7.6753179337391444e+01 + 21 1.1359392702527382e+03 6.7780617382057903e+02 -2.1777379118829096e+01 + 22 2.6318213617558456e+01 -1.1442799194941128e+02 -4.0723882345600529e+01 + 23 1.0173532367943421e+03 1.4870722398544501e+03 -3.3061556638580618e+02 + 24 1.8951324945224176e+03 1.3655558041004167e+03 6.3746947970957035e+02 + 25 2.1139286860441129e+02 -1.4343085616543428e+02 -2.4472193090284622e+02 + 26 -6.6054117554868481e+02 -1.7214679588856484e+03 1.1872792057456782e+03 + 27 3.8554823693482177e+02 -2.4263768110018356e+02 -1.4505783275426307e+01 + 28 -1.6156920382667545e+02 3.2681073686927527e+02 4.0195534333261003e+02 + 29 1.0269877810330740e+03 1.0972018261937728e+03 -4.9239365569732279e+01 + 30 -7.7183246664884393e+01 -1.1163723935859770e+02 -5.6015149765282524e+02 + 31 2.7330076741933460e+01 -6.2134053241130312e+02 3.7926314422192496e+02 + 32 -1.8451713394504984e+03 -9.7754451225108528e+02 -6.8151426644039077e+01 +run_vdwl: 2428.764401023566 +run_coul: 0 +run_stress: ! |2- + 2.1807179009069081e+04 2.2096249577665836e+04 1.5217251424717178e+04 5.5876293741471409e+03 4.2481794037948595e+02 -2.1641073132805273e+03 +run_forces: ! |2 + 1 -3.5657232205619187e+02 4.8051759317525114e+02 7.4589821279043520e+01 + 2 -2.2890330563537752e+01 -1.5847929947391452e+02 1.1057024581491029e+02 + 3 -3.7048240284136381e+02 1.7274339155425446e+03 -5.2721183867080663e+02 + 4 3.1213113517876284e+01 -3.0972108629752253e+01 -6.8362160774369471e+01 + 5 1.2131778379678060e+03 1.3324719919494626e+03 -2.4196312117000102e+02 + 6 2.1588387878389867e+02 1.2017400433555963e+01 -1.8323099068613300e+02 + 7 -5.8298397256607473e+02 6.3858638821865122e+02 -5.9272595884065503e+01 + 8 -2.9450691866540427e+02 -1.4488601302098704e+02 3.5084177622838757e+02 + 9 5.5071730152343321e+01 -1.0126346692429934e+02 -4.3948685147789718e+01 + 10 -7.4709028759946739e+02 -1.9173399004644243e+03 -5.9495231666550546e+02 + 11 -6.1959233740417524e+01 -9.3373357444258517e+01 8.7926257027673998e+01 + 12 5.2278142223716191e+02 -6.4849088771234563e+02 -1.8113808074276363e+01 + 13 -1.4714650249643290e+02 -2.5131629765603009e+01 -1.3479374072464537e+02 + 14 2.2857040301009684e+02 -1.3768541975979431e+02 4.2806018886113947e+02 + 15 -4.1477060277693703e+01 5.7115876564426109e+01 -5.3039366059682528e+01 + 16 4.9944201304657383e+02 -4.3383072035483559e+02 2.2091297501303973e+02 + 17 2.7228851840542382e+02 6.7799738753924669e+02 -1.8446508468678948e+02 + 18 -1.6336221792482595e+03 -8.5972791234834551e+02 -5.2898505983077177e+02 + 19 -1.8135957890859013e+03 -1.4238141052528933e+03 1.6225337159545035e+02 + 20 5.0092828583367634e+01 3.0471251647078265e+01 -7.6722240263741099e+01 + 21 1.1355438484696886e+03 6.7519841904221255e+02 -2.0182855479720033e+01 + 22 2.6571960650017800e+01 -1.1420696745726380e+02 -4.0529746043707348e+01 + 23 1.0263737261398123e+03 1.4932072283307180e+03 -3.2636823427367165e+02 + 24 1.8952730712010357e+03 1.3642712022544688e+03 6.3847090965522716e+02 + 25 2.1193565520738500e+02 -1.4318069871618528e+02 -2.4487119695300959e+02 + 26 -6.5812362830257700e+02 -1.7188102078185152e+03 1.1859492616184705e+03 + 27 3.8565010020982788e+02 -2.4238978364677456e+02 -1.4837594446360082e+01 + 28 -1.6123154438363622e+02 3.2723676308792528e+02 4.0126611479067810e+02 + 29 1.0251768164068674e+03 1.0954706244344939e+03 -4.9292343676448787e+01 + 30 -7.7077129341229522e+01 -1.1123357160671468e+02 -5.6043482841374544e+02 + 31 2.5726118886179297e+01 -6.2166714125994793e+02 3.8003828834174129e+02 + 32 -1.8520137417071724e+03 -9.8551285056318022e+02 -6.9301402300522653e+01 +... diff --git a/unittest/force-styles/tests/atomic-pair-threebody_table.yaml b/unittest/force-styles/tests/atomic-pair-threebody_table.yaml new file mode 100644 index 0000000000..bb3c8c1c1b --- /dev/null +++ b/unittest/force-styles/tests/atomic-pair-threebody_table.yaml @@ -0,0 +1,97 @@ +--- +lammps_version: 4 May 2022 +date_generated: Wed Jun 1 15:28:13 2022 +epsilon: 1e-05 +skip_tests: single +prerequisites: ! | + pair threebody/table + pair table +pre_commands: ! | + variable units index real + variable newton_pair delete + variable newton_pair index on + shell cp ${input_dir}/1-1-1.table . + shell cp ${input_dir}/1-1-2.table . +post_commands: ! "" +input_file: in.metal +pair_style: hybrid/overlay table linear 1200 threebody/table +pair_coeff: ! | + * * table ${input_dir}/table_CG_CG.txt VOTCA + * * threebody/table ${input_dir}/spce2.3b type1 type2 +extract: ! "" +natoms: 32 +init_vdwl: 1491.9850663210582 +init_coul: 0 +init_stress: ! |2- + 2.1388163370760823e+04 2.1664558645983379e+04 1.4729243404366314e+04 5.6495516964437775e+03 5.1637900223635859e+02 -2.2491014848350428e+03 +init_forces: ! |2 + 1 -3.4809429741393029e+02 4.6567597414239913e+02 9.4441973687110405e+01 + 2 -1.8412192720214428e+01 -1.6122507911305391e+02 1.1798397229543718e+02 + 3 -3.6959552927057359e+02 1.7366664628134174e+03 -5.2433878744101696e+02 + 4 1.9704833162904933e+01 -2.8473480842310366e+01 -7.6632873700899410e+01 + 5 1.2286660791793993e+03 1.3189646599149826e+03 -2.5750328829062335e+02 + 6 2.3230773636573508e+02 1.3236909769358112e+01 -1.6536673989911372e+02 + 7 -5.9250555047871524e+02 6.4419772822168966e+02 -7.3421471775369668e+01 + 8 -2.7993451614515635e+02 -1.3398848087050882e+02 3.4786818228776917e+02 + 9 6.0102535250319256e+01 -8.2958743522890487e+01 -4.2554780357129808e+01 + 10 -7.7091710125156442e+02 -1.9316366702146124e+03 -5.7574889508217711e+02 + 11 -6.6141742740805213e+01 -8.9045678804585251e+01 9.2760444861105910e+01 + 12 5.3526455218407943e+02 -6.5780369404995440e+02 -9.4845914108869884e+00 + 13 -1.6564083090865202e+02 -2.1519923677640854e+01 -1.3123092115579615e+02 + 14 2.3337854905367016e+02 -1.1893053800382607e+02 4.3706653618942192e+02 + 15 -4.7292738629250245e+01 6.1031002391688908e+01 -4.2739580007555375e+01 + 16 5.0083107755149183e+02 -4.2750321084667428e+02 2.3013161197871258e+02 + 17 2.9344728675986164e+02 6.8063155134388398e+02 -1.9478515772339574e+02 + 18 -1.6545067282255825e+03 -8.7660521680902912e+02 -5.2486018536431391e+02 + 19 -1.7992841953748712e+03 -1.4223424241054529e+03 1.3975194023223264e+02 + 20 5.3624371129881432e+01 4.2727424976681945e+01 -7.2478104483156997e+01 + 21 1.0897088707455639e+03 7.2603975137317627e+02 -5.1120443430894568e+01 + 22 2.9564358575254730e+01 -1.1955500923091164e+02 -5.6658561557696522e+01 + 23 1.0024095663866029e+03 1.4815830194767184e+03 -3.4241061954729582e+02 + 24 1.8958818608698684e+03 1.3513089573990835e+03 6.4474764645157461e+02 + 25 2.1916799984257568e+02 -1.3480959959762640e+02 -2.5143909195778633e+02 + 26 -6.7819370861387029e+02 -1.7332731917983826e+03 1.1759045104066886e+03 + 27 3.9534539412579926e+02 -2.5831579543312483e+02 -3.0068663848303565e+01 + 28 -1.7049475634836011e+02 3.0557653380225258e+02 3.9667516538156866e+02 + 29 1.0124807267829628e+03 1.0704993768753102e+03 -6.6827000765975839e+01 + 30 -6.0958426550901464e+01 -1.2048001317378247e+02 -5.4659311407722760e+02 + 31 2.7988221050038256e+01 -6.0346016941066136e+02 3.8578368661473195e+02 + 32 -1.8079021293566357e+03 -9.7620852873268325e+02 -2.6848072654532874e+01 +run_vdwl: 1491.7709826398068 +run_coul: 0 +run_stress: ! |2- + 2.1425064502585417e+04 2.1669158423280089e+04 1.4747818832883342e+04 5.6707077802984231e+03 5.4904652273389740e+02 -2.2288016407219948e+03 +run_forces: ! |2 + 1 -3.5191405522221208e+02 4.6719496439671821e+02 9.5160203317446630e+01 + 2 -1.8514912253517174e+01 -1.6167539395717191e+02 1.1813103212569202e+02 + 3 -3.7131956856014324e+02 1.7323797805692438e+03 -5.3074350641727199e+02 + 4 1.9443697338922082e+01 -2.8705869694043574e+01 -7.6619749545143492e+01 + 5 1.2260941309164493e+03 1.3152677694284498e+03 -2.5516802038260235e+02 + 6 2.3322089165638701e+02 1.2862869405899247e+01 -1.6667928243690179e+02 + 7 -5.9486664911064634e+02 6.4667229208938795e+02 -7.3770515588557785e+01 + 8 -2.8115980510834169e+02 -1.3411610929266357e+02 3.4879265918581427e+02 + 9 6.0619815294130184e+01 -8.3407515617420799e+01 -4.2999027435430953e+01 + 10 -7.6429388783007221e+02 -1.9278828213213337e+03 -5.7135063514687909e+02 + 11 -6.6016349831195143e+01 -8.9273528569753211e+01 9.2448231530143218e+01 + 12 5.3785966085411701e+02 -6.5959880855240010e+02 -9.4946135547062909e+00 + 13 -1.6641765862714641e+02 -2.2476690068776783e+01 -1.3101354808256795e+02 + 14 2.3412385380018750e+02 -1.1604834858772836e+02 4.3551831586668749e+02 + 15 -4.7170704261276846e+01 6.1314362285436715e+01 -4.2456307464845409e+01 + 16 4.9810572379063296e+02 -4.2579585263982955e+02 2.2832018077001956e+02 + 17 2.8312588438935751e+02 6.6818248758640414e+02 -2.0387201756671962e+02 + 18 -1.6531905535811466e+03 -8.7325660040293678e+02 -5.2578287557408930e+02 + 19 -1.7717540076086393e+03 -1.4078190114507104e+03 1.5867151421748673e+02 + 20 5.3592891283041261e+01 4.2790401518478163e+01 -7.2482601253922383e+01 + 21 1.0838596264146349e+03 7.2319003723887010e+02 -4.8376931553139812e+01 + 22 2.9966891580030588e+01 -1.1952124544144279e+02 -5.6490752521580006e+01 + 23 1.0114992761256929e+03 1.4877360943225701e+03 -3.3815548489754946e+02 + 24 1.8960185852616901e+03 1.3500190426973886e+03 6.4578239684187895e+02 + 25 2.1972099306244061e+02 -1.3453156341222555e+02 -2.5160650947118697e+02 + 26 -6.7764066859903267e+02 -1.7320367725724675e+03 1.1718183638063283e+03 + 27 3.9544661983654925e+02 -2.5857342971810368e+02 -3.0379689818002142e+01 + 28 -1.7960213685989305e+02 3.0633168671228430e+02 3.8807838388686309e+02 + 29 1.0106463589881000e+03 1.0687745018889480e+03 -6.6861303703586529e+01 + 30 -6.0852844150139362e+01 -1.2007219497990148e+02 -5.4687005523315872e+02 + 31 2.6341847548417515e+01 -6.0380405513895437e+02 3.8656694437683996e+02 + 32 -1.8149728033842284e+03 -9.8411584459831852e+02 -2.8109959690485834e+01 +... diff --git a/unittest/force-styles/tests/fix-timestep-oneway.yaml b/unittest/force-styles/tests/fix-timestep-oneway.yaml index c592517d8e..76a9d4c5a7 100644 --- a/unittest/force-styles/tests/fix-timestep-oneway.yaml +++ b/unittest/force-styles/tests/fix-timestep-oneway.yaml @@ -1,7 +1,7 @@ --- lammps_version: 17 Feb 2022 date_generated: Fri Mar 18 22:17:59 2022 -epsilon: 7.5e-14 +epsilon: 2e-13 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_tip4p_slab.yaml b/unittest/force-styles/tests/kspace-pppm_tip4p_slab.yaml index 51c5a45941..9b9806df5b 100644 --- a/unittest/force-styles/tests/kspace-pppm_tip4p_slab.yaml +++ b/unittest/force-styles/tests/kspace-pppm_tip4p_slab.yaml @@ -1,7 +1,7 @@ --- -lammps_version: 10 Feb 2021 +lammps_version: 4 May 2022 tags: slow -date_generated: Fri Feb 26 23:09:34 2021 +date_generated: Mon May 23 20:12:38 2022 epsilon: 5e-13 prerequisites: ! | atom full @@ -27,67 +27,67 @@ init_coul: 0 init_stress: ! |2- 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 init_forces: ! |2 - 1 -5.1875059319876482e-01 5.1660852898514097e-02 -5.7568746684221916e-01 - 2 2.1689992534273889e-01 -2.6058788219741147e-01 4.1798750467672274e-01 - 3 -3.2123603964927645e-02 -8.8740124548059782e-03 -1.3836110655816162e-02 - 4 1.5801256389492813e-01 2.1126659375654909e-02 7.8030101326860571e-02 - 5 1.4630529362834138e-01 7.0541031372980123e-02 1.0367534136208822e-01 - 6 4.5271336509733173e-01 4.3434073283904712e-01 1.9672609182540585e-01 - 7 -2.5202832073509374e-01 -4.0972860647817611e-01 -5.1025448731009770e-01 - 8 -2.7733728801934087e-03 -6.6285305944413486e-01 -4.2259182161309783e-01 - 9 8.7284510947996261e-02 3.4644067741232221e-01 5.2649415280028289e-01 - 10 -7.0358238250045405e-02 1.2324438068757468e-01 9.7430764543568638e-02 - 11 -1.0611397012429427e-01 1.6778028608628817e-01 1.0243492986761592e-01 - 12 4.7522165036946828e-01 -4.7569230861934814e-01 -3.7620104501978141e-01 - 13 -1.5084555220571103e-01 1.3477824777242514e-01 1.5530580320476042e-01 - 14 -1.7331931611645846e-01 1.4489217533438961e-01 1.5187450400216165e-01 - 15 -1.4457383479163205e-01 1.0191957555196750e-01 1.2647045003724980e-01 - 16 -4.6380086833284712e-01 5.1725747136642608e-01 1.3944164623658954e+00 - 17 2.5830539911922701e-01 -4.4001348824516739e-01 -1.6368568925682263e+00 - 18 7.1711828509507158e-01 1.5135594083235546e+00 -3.0000511375094279e+00 - 19 -2.6526242862377652e-01 -7.5615232036394919e-01 1.6174668711138471e+00 - 20 -3.6412116833354524e-01 -6.8003985707517800e-01 1.5219834320490606e+00 - 21 2.1913962201245335e-01 2.8436767546323427e-01 -1.5830999741451532e+00 - 22 -1.1342236771135741e-01 -2.1501547367331550e-02 8.1828468024256407e-01 - 23 -1.3904196539005109e-01 -1.8302644136991242e-01 7.6537752144201421e-01 - 24 9.9781913572244155e-02 9.7885535038983940e-01 -1.2668572125502537e+00 - 25 1.3435697022842072e-01 -3.4498868790162351e-01 6.9488200140438949e-01 - 26 -2.4062268840602163e-01 -6.1062269338471520e-01 5.8807795407966368e-01 - 27 -6.0379577180174060e-01 9.0922264678215248e-01 -1.6721200413729438e+00 - 28 4.2997465966368542e-01 -5.0965848067708741e-01 9.0674794598209418e-01 - 29 2.4583990189455251e-01 -4.3624778607752923e-01 7.9388967726077175e-01 + 1 -5.1875059319876493e-01 5.1660852898514124e-02 -5.3139324142026889e-01 + 2 2.1689992534273903e-01 -2.6058788219741147e-01 3.8877216450479823e-01 + 3 -3.2123603964927645e-02 -8.8740124548059712e-03 -1.1951249999562964e-02 + 4 1.5801256389492810e-01 2.1126659375654853e-02 6.9548228373721183e-02 + 5 1.4630529362834138e-01 7.0541031372980081e-02 9.5193468408948823e-02 + 6 4.5271336509733173e-01 4.3434073283904689e-01 1.4866214509094927e-01 + 7 -2.5202832073509379e-01 -4.0972860647817605e-01 -4.6219054057564113e-01 + 8 -2.7733728801934924e-03 -6.6285305944413497e-01 -3.7829759619114767e-01 + 9 8.7284510947996316e-02 3.4644067741232221e-01 4.9727881262835838e-01 + 10 -7.0358238250045405e-02 1.2324438068757469e-01 9.0833752246682456e-02 + 11 -1.0611397012429427e-01 1.6778028608628820e-01 9.3953056914476557e-02 + 12 4.7522165036946817e-01 -4.7569230861934830e-01 -3.5075542616036326e-01 + 13 -1.5084555220571100e-01 1.3477824777242520e-01 1.4682393025162105e-01 + 14 -1.7331931611645843e-01 1.4489217533438964e-01 1.4339263104902228e-01 + 15 -1.4457383479163199e-01 1.0191957555196751e-01 1.1798857708411041e-01 + 16 -4.6380086833284706e-01 5.1725747136642608e-01 1.3463525156314389e+00 + 17 2.5830539911922706e-01 -4.4001348824516717e-01 -1.5887929458337697e+00 + 18 7.1711828509507103e-01 1.5135594083235548e+00 -2.9202084401105424e+00 + 19 -2.6526242862377630e-01 -7.5615232036394919e-01 1.5775455224144039e+00 + 20 -3.6412116833354502e-01 -6.8003985707517844e-01 1.4820620833496179e+00 + 21 2.1913962201245299e-01 2.8436767546323433e-01 -1.3892564908575578e+00 + 22 -1.1342236771135721e-01 -2.1501547367331557e-02 7.2136293859876610e-01 + 23 -1.3904196539005081e-01 -1.8302644136991245e-01 6.6845577979821647e-01 + 24 9.9781913572244044e-02 9.7885535038983906e-01 -1.0730137292626583e+00 + 25 1.3435697022842086e-01 -3.4498868790162335e-01 5.9796025976059175e-01 + 26 -2.4062268840602169e-01 -6.1062269338471475e-01 4.9115621243586605e-01 + 27 -6.0379577180174060e-01 9.0922264678215248e-01 -1.4782765580853483e+00 + 28 4.2997465966368531e-01 -5.0965848067708730e-01 8.0982620433829633e-01 + 29 2.4583990189455257e-01 -4.3624778607752923e-01 6.9696793561697401e-01 run_vdwl: 0 run_coul: 0 run_stress: ! |2- 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 run_forces: ! |2 - 1 -5.1741021308022928e-01 5.2164463970109785e-02 -5.7035795586691229e-01 - 2 2.1552845355081662e-01 -2.6145885390966006e-01 4.1455932829319120e-01 - 3 -3.2103136898117973e-02 -8.8506517835662529e-03 -1.3601661681107857e-02 - 4 1.5813149106431929e-01 2.0998590621170252e-02 7.7085061898295948e-02 - 5 1.4611782148177443e-01 7.0495101424978557e-02 1.0262211863021993e-01 - 6 4.5237682723361744e-01 4.3384953789975256e-01 1.9026464391810138e-01 - 7 -2.5220238048340610e-01 -4.1025291093818367e-01 -5.0478860778438306e-01 - 8 -1.8080584227147985e-03 -6.6262062885438788e-01 -4.1641859631215317e-01 - 9 8.6463014670901714e-02 3.4599477171923032e-01 5.2262452042463015e-01 - 10 -7.0489736534953079e-02 1.2334020200473024e-01 9.6566992716111827e-02 - 11 -1.0626441695286094e-01 1.6812163421601856e-01 1.0149591994495212e-01 - 12 4.7577991930135149e-01 -4.7567916757872036e-01 -3.7271573985070183e-01 - 13 -1.5102820761813157e-01 1.3482444566331483e-01 1.5423678933941967e-01 - 14 -1.7348673211954843e-01 1.4502141845434144e-01 1.5087187633492033e-01 - 15 -1.4462875081155377e-01 1.0177069356565076e-01 1.2517182091704590e-01 - 16 -4.6460162929294996e-01 5.1779385845248271e-01 1.3893654572043623e+00 - 17 2.5891442131187525e-01 -4.3950548671559936e-01 -1.6317550757697421e+00 - 18 7.2168431617151652e-01 1.5193451885286362e+00 -2.9893884981487782e+00 - 19 -2.6652798165736163e-01 -7.5811338734451528e-01 1.6128149463359120e+00 - 20 -3.6685702835539502e-01 -6.8322050954334113e-01 1.5165955023073157e+00 - 21 2.1951624771560643e-01 2.7908195130062186e-01 -1.5761953363577819e+00 - 22 -1.1336951380799791e-01 -1.8808477419676436e-02 8.1504600690354212e-01 - 23 -1.3925079650238253e-01 -1.8099002366078934e-01 7.6197026590425576e-01 - 24 1.0040861588721736e-01 9.7605298874640822e-01 -1.2616161159601158e+00 - 25 1.3326916759186308e-01 -3.4383632694371846e-01 6.9190323110048380e-01 - 26 -2.4021815268192853e-01 -6.0890409178886584e-01 5.8556538656853796e-01 - 27 -6.0409904237121848e-01 9.0912495784502378e-01 -1.6654694276801689e+00 - 28 4.3013936095125799e-01 -5.0934391123833689e-01 9.0325113244229294e-01 - 29 2.4601612065863304e-01 -4.3639537669310857e-01 7.9029601422825357e-01 + 1 -5.1741014216891323e-01 5.2164635296042393e-02 -5.2623836978475858e-01 + 2 2.1552846412199758e-01 -2.6145894539516673e-01 3.8545898349593888e-01 + 3 -3.2103138095670579e-02 -8.8506538753520981e-03 -1.1724235859914865e-02 + 4 1.5813145650026225e-01 2.0998621233542170e-02 6.8636593918036282e-02 + 5 1.4611784388196503e-01 7.0495096056163456e-02 9.4173752375773245e-02 + 6 4.5237719221599776e-01 4.3384962277065459e-01 1.4239025998317195e-01 + 7 -2.5220268493187059e-01 -4.1025301686518484e-01 -4.5691379591079689e-01 + 8 -1.8087303830687639e-03 -6.6262053829478962e-01 -3.7229928601228018e-01 + 9 8.6463301781221830e-02 3.4599465684255803e-01 4.9352454715915695e-01 + 10 -7.0489594513774040e-02 1.2334016665695119e-01 8.9996005394677253e-02 + 11 -1.0626421813039562e-01 1.6812158323291176e-01 9.3047478449378010e-02 + 12 4.7577947092697664e-01 -4.7567891996498934e-01 -3.4737046113988318e-01 + 13 -1.5102808666764547e-01 1.3482433032858601e-01 1.4578835246021055e-01 + 14 -1.7348659325588509e-01 1.4502136217343140e-01 1.4242345028236647e-01 + 15 -1.4462864359019598e-01 1.0177061950990737e-01 1.1672337003180658e-01 + 16 -4.6460067645864556e-01 5.1779370227303589e-01 1.3414908637759566e+00 + 17 2.5891386126470772e-01 -4.3950547582143235e-01 -1.5838807201814791e+00 + 18 7.2168370323432252e-01 1.5193447526996697e+00 -2.9098598385970016e+00 + 19 -2.6652787885830853e-01 -7.5811315791679745e-01 1.5730504781450976e+00 + 20 -3.6685665590502275e-01 -6.8322021768929220e-01 1.4768311717846097e+00 + 21 2.1951586762660091e-01 2.7908220235205461e-01 -1.3830824926773011e+00 + 22 -1.1336938042579009e-01 -1.8808601624035179e-02 7.1848935671661196e-01 + 23 -1.3925069633951992e-01 -1.8099007738613887e-01 6.6541382825713724e-01 + 24 1.0040887040966230e-01 9.7605345725512060e-01 -1.0685029118802341e+00 + 25 1.3326911366323715e-01 -3.4383656089990644e-01 5.9534683106490160e-01 + 26 -2.4021835151581941e-01 -6.0890428532016694e-01 4.8900886112265285e-01 + 27 -6.0409926106451306e-01 9.0912468504667421e-01 -1.4723570251596647e+00 + 28 4.3013929998720690e-01 -5.0934380660262080e-01 8.0669499930969779e-01 + 29 2.4601628669087905e-01 -4.3639523607143099e-01 6.9373995347613393e-01 ... diff --git a/unittest/force-styles/tests/manybody-pair-bop.yaml b/unittest/force-styles/tests/manybody-pair-bop.yaml index f809a2db66..28a7acb198 100644 --- a/unittest/force-styles/tests/manybody-pair-bop.yaml +++ b/unittest/force-styles/tests/manybody-pair-bop.yaml @@ -1,7 +1,7 @@ --- -lammps_version: 8 Apr 2021 +lammps_version: 4 May 2022 tags: slow, unstable -date_generated: Wed May 5 11:50:15 2021 +date_generated: Fri May 27 17:36:36 2022 epsilon: 5e-12 prerequisites: ! | pair bop @@ -535,521 +535,521 @@ init_forces: ! |2 510 -3.4726171480710488e+00 5.2740849860611352e+00 -2.8158025166462988e+00 511 9.0442915573980152e+00 -1.4095415165544551e+00 -3.3538829159648067e+00 512 5.7753579505879529e+00 5.6893699296338545e+00 6.1188593723557538e+00 -run_vdwl: -228.0857232848286 +run_vdwl: -227.61849029256774 run_coul: 0 run_stress: ! |2- - 2.3717664948296933e+03 2.4019359900230493e+03 2.4442550920472167e+03 -1.1171763120435550e+02 5.0043476869247547e+02 6.0439649265925254e+01 + 2.3726345230237625e+03 2.4028091143998217e+03 2.4451861002359515e+03 -1.1183772133730268e+02 5.0092092646568466e+02 6.0406121385816192e+01 run_forces: ! |2 - 1 1.4091839800546253e+00 1.7360548678936558e+00 -1.6202615165179715e+00 - 2 -5.8365574626504397e+00 -1.1219252071695536e+00 -1.1485581230473687e+00 - 3 8.7637315082564093e-01 3.3462961780072593e+00 -8.1354040756307189e-01 - 4 1.6600848436445121e+00 1.3250424500391154e+00 -4.9591553993549979e+00 - 5 -9.4927377308725691e-01 -5.8207744490732232e+00 6.4663694433556507e-01 - 6 -4.5177611467364664e-01 4.9415963080206229e+00 1.9433161156269956e+00 - 7 -4.3027400171982393e+00 -4.5613754557341322e+00 1.5699407701143435e+00 - 8 1.5448724473390376e+00 2.4584923079749230e+00 -3.1392452600363878e+00 - 9 -4.6016718693843153e+00 -3.9418857354937766e+00 -4.6668302285853835e+00 - 10 3.7018520600616955e-01 -4.8332896704450473e-01 -3.6854125040532786e+00 - 11 3.8659815227919547e+00 -7.4539979597211152e+00 2.6942416612670450e+00 - 12 -5.6142785099940076e+00 -6.2018561025018917e+00 -6.7409137682125495e+00 - 13 3.3341288429707544e-02 7.0519544225452178e+00 -2.0938812825267012e+00 - 14 -2.3615309773794069e+00 5.8104716217346990e+00 9.3010131683171504e-01 - 15 -2.6654393381699402e+00 7.5481721396936594e+00 -4.8904771244982825e+00 - 16 2.6741244163087328e+00 -5.1059307299887957e-01 7.8828856576674111e+00 - 17 5.6945314250833210e+00 4.7236054837728565e+00 -4.4884300671396336e+00 - 18 -4.9761430158760209e+00 4.0936541714453316e+00 3.2051110415901922e+00 - 19 -1.6198356152349742e+00 -4.2596509866650072e+00 -9.7002992061957471e-01 - 20 -5.1699166766819040e+00 5.8976607613037011e+00 5.9849768421212906e+00 - 21 4.2290116365363856e-01 -1.5086464242159887e+00 -7.5078846485188153e+00 - 22 -8.4609751614699586e+00 5.8493355421305973e+00 -5.7089940793026637e+00 - 23 3.4912598028285822e+00 5.3853907974679593e+00 1.6584479527211395e+00 - 24 1.8362372044284656e-01 -4.7948186173622354e-01 -2.0243825542595988e+00 - 25 1.2730663338573691e+00 -1.9548047760834759e+00 4.6007887784914328e+00 - 26 -8.1062754396295733e-01 9.5001973866788880e-01 1.5848621098705411e+00 - 27 2.9207013772019144e+00 -2.0240243823080113e+00 2.7543470586622281e+00 - 28 -1.9402618680197214e+00 7.6549971705972641e-01 9.6946223555320525e+00 - 29 -3.0268260302352505e+00 3.3951011598221985e+00 -6.0757634768923703e+00 - 30 -1.9700043289182680e+00 2.6914206295193162e+00 -1.5061070030578796e+00 - 31 2.8594848783134941e+00 6.6367269634963255e-01 9.9964131902303999e-01 - 32 -1.2590521565572954e+00 -1.6706345370948841e+00 1.4597870772587420e+00 - 33 5.2588945057830436e+00 -6.0464310077477723e+00 6.8597153738814773e+00 - 34 2.8448145000609104e+00 5.6236407582631842e-01 -4.0638613838727838e-01 - 35 2.7571144480951317e+00 -5.8841374694732007e+00 2.6747482982066044e+00 - 36 -1.9192646875023509e-01 -2.6023930451114428e+00 -1.5640119155534091e-01 - 37 -5.4277214420897915e+00 3.1852614984002408e+00 -2.4472993211497069e+00 - 38 -4.8829690006288995e-01 -2.0914391804220553e+00 1.0262204003397455e+00 - 39 2.9502456290286450e-01 1.3059788537887589e+00 1.7852903388433070e+00 - 40 6.5687025583215677e+00 -3.2783217210449340e+00 -2.4974953961406459e+00 - 41 -7.4527219588534566e-01 -3.7773273742840128e+00 -3.6783380789496833e-01 - 42 -6.1270209507454068e+00 -1.5901032532179344e+00 -1.1669470951126529e-01 - 43 -7.0828155566329834e-02 -9.2972356408781369e+00 5.2769209282642726e-01 - 44 5.4887681221692448e+00 -3.9815332474492124e+00 1.7266076926660758e+00 - 45 -1.9921597783097496e+00 1.3642870044413555e+00 -4.6177186619298967e+00 - 46 -6.8118072835900800e-01 -2.7253513128249764e+00 7.9371605940428696e+00 - 47 3.2952236042706704e+00 2.5414480916905644e+00 6.4494852848836288e+00 - 48 2.9835802286197355e+00 1.1522845567074034e+00 -1.1774469162360268e+00 - 49 -6.0679352021219888e+00 -5.9494385654760693e+00 -6.5551986540445517e+00 - 50 -4.0299132290613233e+00 2.1291409567037674e+00 2.7727907241961174e+00 - 51 -2.3315178667160565e+00 3.2375780159414047e+00 6.0916752443950006e+00 - 52 6.6009431885726491e+00 -4.7168574935074661e+00 7.0071311712598190e+00 - 53 3.4640998460185974e+00 4.1341203040088157e+00 2.5043659364606916e+00 - 54 4.2313664783554278e-01 9.2836044096516734e-01 2.5711772833601865e-01 - 55 6.8701154820027910e-01 -4.3825288825994662e+00 -4.6893514588412790e+00 - 56 -1.6845639332386897e+00 3.5356453384345543e+00 -1.8031520110784989e+00 - 57 4.3948311874190343e-01 -2.8873991420822103e+00 -5.7260145606027968e-01 - 58 3.7547819930218109e+00 5.5227522115963879e-01 1.0948274788664087e+00 - 59 4.8388625830553575e+00 8.6992010344280346e-01 -2.9595243733787004e+00 - 60 -3.0285031145622288e+00 -5.5670095107571873e+00 -3.9776832268195546e+00 - 61 -1.4978080653463104e+00 3.0694094674274295e+00 -1.9187559852475968e+00 - 62 -3.4577019435275798e+00 5.2617491012301256e+00 -2.8027640497219033e+00 - 63 9.0406901956571506e+00 -1.4351168204017049e+00 -3.3870294281189954e+00 - 64 5.8184132257283601e+00 5.7423395615017503e+00 6.1686687899852943e+00 - 65 1.4091839800546091e+00 1.7360548678936276e+00 -1.6202615165179453e+00 - 66 -5.8365574626504042e+00 -1.1219252071695365e+00 -1.1485581230473523e+00 - 67 8.7637315082562395e-01 3.3462961780072549e+00 -8.1354040756305013e-01 - 68 1.6600848436444982e+00 1.3250424500390969e+00 -4.9591553993550184e+00 - 69 -9.4927377308727079e-01 -5.8207744490732196e+00 6.4663694433557561e-01 - 70 -4.5177611467371359e-01 4.9415963080206087e+00 1.9433161156269700e+00 - 71 -4.3027400171981860e+00 -4.5613754557341313e+00 1.5699407701143309e+00 - 72 1.5448724473390880e+00 2.4584923079749119e+00 -3.1392452600363598e+00 - 73 -4.6016718693843179e+00 -3.9418857354937904e+00 -4.6668302285853933e+00 - 74 3.7018520600611565e-01 -4.8332896704455658e-01 -3.6854125040533190e+00 - 75 3.8659815227919081e+00 -7.4539979597211170e+00 2.6942416612669851e+00 - 76 -5.6142785099940484e+00 -6.2018561025019636e+00 -6.7409137682126188e+00 - 77 3.3341288429698641e-02 7.0519544225452115e+00 -2.0938812825266471e+00 - 78 -2.3615309773793371e+00 5.8104716217347496e+00 9.3010131683171282e-01 - 79 -2.6654393381699286e+00 7.5481721396937189e+00 -4.8904771244982861e+00 - 80 2.6741244163088513e+00 -5.1059307299879653e-01 7.8828856576673925e+00 - 81 5.6945314250833485e+00 4.7236054837729018e+00 -4.4884300671396673e+00 - 82 -4.9761430158760085e+00 4.0936541714453112e+00 3.2051110415901745e+00 - 83 -1.6198356152349553e+00 -4.2596509866650010e+00 -9.7002992061954396e-01 - 84 -5.1699166766819218e+00 5.8976607613037313e+00 5.9849768421213101e+00 - 85 4.2290116365360830e-01 -1.5086464242159534e+00 -7.5078846485188153e+00 - 86 -8.4609751614699515e+00 5.8493355421306115e+00 -5.7089940793026734e+00 - 87 3.4912598028285755e+00 5.3853907974679567e+00 1.6584479527211322e+00 - 88 1.8362372044284120e-01 -4.7948186173621893e-01 -2.0243825542596210e+00 - 89 1.2730663338573700e+00 -1.9548047760834715e+00 4.6007887784914239e+00 - 90 -8.1062754396290859e-01 9.5001973866786249e-01 1.5848621098705404e+00 - 91 2.9207013772017723e+00 -2.0240243823080144e+00 2.7543470586622449e+00 - 92 -1.9402618680196801e+00 7.6549971705967934e-01 9.6946223555319726e+00 - 93 -3.0268260302352554e+00 3.3951011598221945e+00 -6.0757634768923277e+00 - 94 -1.9700043289182931e+00 2.6914206295193250e+00 -1.5061070030579018e+00 - 95 2.8594848783135531e+00 6.6367269634966275e-01 9.9964131902307751e-01 - 96 -1.2590521565573098e+00 -1.6706345370949101e+00 1.4597870772587667e+00 - 97 5.2588945057830268e+00 -6.0464310077477323e+00 6.8597153738814338e+00 - 98 2.8448145000609459e+00 5.6236407582631776e-01 -4.0638613838727583e-01 - 99 2.7571144480951344e+00 -5.8841374694732096e+00 2.6747482982066115e+00 - 100 -1.9192646875021221e-01 -2.6023930451114299e+00 -1.5640119155531357e-01 - 101 -5.4277214420898057e+00 3.1852614984002399e+00 -2.4472993211497096e+00 - 102 -4.8829690006288684e-01 -2.0914391804220518e+00 1.0262204003397439e+00 - 103 2.9502456290286061e-01 1.3059788537887580e+00 1.7852903388433101e+00 - 104 6.5687025583215517e+00 -3.2783217210449567e+00 -2.4974953961406721e+00 - 105 -7.4527219588536497e-01 -3.7773273742839950e+00 -3.6783380789499104e-01 - 106 -6.1270209507453357e+00 -1.5901032532179249e+00 -1.1669470951123816e-01 - 107 -7.0828155566327294e-02 -9.2972356408781422e+00 5.2769209282642626e-01 - 108 5.4887681221692626e+00 -3.9815332474491845e+00 1.7266076926660832e+00 - 109 -1.9921597783097735e+00 1.3642870044413722e+00 -4.6177186619298798e+00 - 110 -6.8118072835906096e-01 -2.7253513128250360e+00 7.9371605940428580e+00 - 111 3.2952236042706859e+00 2.5414480916905875e+00 6.4494852848836022e+00 - 112 2.9835802286197390e+00 1.1522845567073714e+00 -1.1774469162360239e+00 - 113 -6.0679352021219684e+00 -5.9494385654760613e+00 -6.5551986540445384e+00 - 114 -4.0299132290613144e+00 2.1291409567037727e+00 2.7727907241961218e+00 - 115 -2.3315178667161041e+00 3.2375780159414287e+00 6.0916752443949900e+00 - 116 6.6009431885726535e+00 -4.7168574935074643e+00 7.0071311712598208e+00 - 117 3.4640998460186023e+00 4.1341203040087846e+00 2.5043659364606894e+00 - 118 4.2313664783553978e-01 9.2836044096515802e-01 2.5711772833601421e-01 - 119 6.8701154820031629e-01 -4.3825288825994786e+00 -4.6893514588413003e+00 - 120 -1.6845639332386861e+00 3.5356453384345410e+00 -1.8031520110784927e+00 - 121 4.3948311874188917e-01 -2.8873991420822134e+00 -5.7260145606029789e-01 - 122 3.7547819930217514e+00 5.5227522115965222e-01 1.0948274788664214e+00 - 123 4.8388625830553638e+00 8.6992010344286652e-01 -2.9595243733787253e+00 - 124 -3.0285031145622474e+00 -5.5670095107572228e+00 -3.9776832268195599e+00 - 125 -1.4978080653462371e+00 3.0694094674273988e+00 -1.9187559852475717e+00 - 126 -3.4577019435275544e+00 5.2617491012301194e+00 -2.8027640497218846e+00 - 127 9.0406901956570831e+00 -1.4351168204016738e+00 -3.3870294281189564e+00 - 128 5.8184132257283823e+00 5.7423395615017734e+00 6.1686687899853228e+00 - 129 1.4091839800546262e+00 1.7360548678936576e+00 -1.6202615165179723e+00 - 130 -5.8365574626504797e+00 -1.1219252071695895e+00 -1.1485581230474180e+00 - 131 8.7637315082564471e-01 3.3462961780072598e+00 -8.1354040756308077e-01 - 132 1.6600848436445128e+00 1.3250424500391194e+00 -4.9591553993550068e+00 - 133 -9.4927377308727179e-01 -5.8207744490732294e+00 6.4663694433557239e-01 - 134 -4.5177611467362117e-01 4.9415963080207082e+00 1.9433161156270105e+00 - 135 -4.3027400171982793e+00 -4.5613754557341561e+00 1.5699407701143815e+00 - 136 1.5448724473390563e+00 2.4584923079749159e+00 -3.1392452600363714e+00 - 137 -4.6016718693843144e+00 -3.9418857354937753e+00 -4.6668302285853827e+00 - 138 3.7018520600622984e-01 -4.8332896704440742e-01 -3.6854125040532595e+00 - 139 3.8659815227919525e+00 -7.4539979597211019e+00 2.6942416612670450e+00 - 140 -5.6142785099939303e+00 -6.2018561025018357e+00 -6.7409137682124802e+00 - 141 3.3341288429728076e-02 7.0519544225451920e+00 -2.0938812825267035e+00 - 142 -2.3615309773794757e+00 5.8104716217346404e+00 9.3010131683171671e-01 - 143 -2.6654393381699402e+00 7.5481721396936461e+00 -4.8904771244982834e+00 - 144 2.6741244163086333e+00 -5.1059307299897860e-01 7.8828856576673560e+00 - 145 5.6945314250833707e+00 4.7236054837728840e+00 -4.4884300671396726e+00 - 146 -4.9761430158760191e+00 4.0936541714453032e+00 3.2051110415901620e+00 - 147 -1.6198356152349958e+00 -4.2596509866650010e+00 -9.7002992061956783e-01 - 148 -5.1699166766818863e+00 5.8976607613036949e+00 5.9849768421212746e+00 - 149 4.2290116365364921e-01 -1.5086464242159900e+00 -7.5078846485187789e+00 - 150 -8.4609751614698947e+00 5.8493355421305795e+00 -5.7089940793025864e+00 - 151 3.4912598028285577e+00 5.3853907974679300e+00 1.6584479527210887e+00 - 152 1.8362372044285138e-01 -4.7948186173622748e-01 -2.0243825542596010e+00 - 153 1.2730663338573589e+00 -1.9548047760834706e+00 4.6007887784914407e+00 - 154 -8.1062754396295622e-01 9.5001973866790146e-01 1.5848621098705276e+00 - 155 2.9207013772019210e+00 -2.0240243823079465e+00 2.7543470586622285e+00 - 156 -1.9402618680196846e+00 7.6549971705969444e-01 9.6946223555320881e+00 - 157 -3.0268260302352421e+00 3.3951011598221883e+00 -6.0757634768923596e+00 - 158 -1.9700043289182823e+00 2.6914206295193281e+00 -1.5061070030578914e+00 - 159 2.8594848783134799e+00 6.6367269634961612e-01 9.9964131902302389e-01 - 160 -1.2590521565572945e+00 -1.6706345370948830e+00 1.4597870772587422e+00 - 161 5.2588945057830347e+00 -6.0464310077477634e+00 6.8597153738814649e+00 - 162 2.8448145000609006e+00 5.6236407582631753e-01 -4.0638613838727305e-01 - 163 2.7571144480951171e+00 -5.8841374694731856e+00 2.6747482982065893e+00 - 164 -1.9192646875022240e-01 -2.6023930451114894e+00 -1.5640119155535331e-01 - 165 -5.4277214420897808e+00 3.1852614984002225e+00 -2.4472993211496825e+00 - 166 -4.8829690006287696e-01 -2.0914391804220371e+00 1.0262204003397262e+00 - 167 2.9502456290285922e-01 1.3059788537887549e+00 1.7852903388433095e+00 - 168 6.5687025583215606e+00 -3.2783217210448306e+00 -2.4974953961405961e+00 - 169 -7.4527219588535520e-01 -3.7773273742840203e+00 -3.6783380789497599e-01 - 170 -6.1270209507453561e+00 -1.5901032532178929e+00 -1.1669470951122371e-01 - 171 -7.0828155566336093e-02 -9.2972356408781778e+00 5.2769209282642715e-01 - 172 5.4887681221692297e+00 -3.9815332474491942e+00 1.7266076926660836e+00 - 173 -1.9921597783097551e+00 1.3642870044414022e+00 -4.6177186619299277e+00 - 174 -6.8118072835905086e-01 -2.7253513128250400e+00 7.9371605940428234e+00 - 175 3.2952236042707121e+00 2.5414480916905955e+00 6.4494852848836448e+00 - 176 2.9835802286197262e+00 1.1522845567073772e+00 -1.1774469162360333e+00 - 177 -6.0679352021219577e+00 -5.9494385654760586e+00 -6.5551986540445260e+00 - 178 -4.0299132290613331e+00 2.1291409567038042e+00 2.7727907241961618e+00 - 179 -2.3315178667160339e+00 3.2375780159413421e+00 6.0916752443949624e+00 - 180 6.6009431885726331e+00 -4.7168574935073542e+00 7.0071311712597613e+00 - 181 3.4640998460185690e+00 4.1341203040087091e+00 2.5043659364606543e+00 - 182 4.2313664783553157e-01 9.2836044096514914e-01 2.5711772833600383e-01 - 183 6.8701154820023480e-01 -4.3825288825994866e+00 -4.6893514588412284e+00 - 184 -1.6845639332386739e+00 3.5356453384345174e+00 -1.8031520110784816e+00 - 185 4.3948311874189067e-01 -2.8873991420822849e+00 -5.7260145606027324e-01 - 186 3.7547819930217967e+00 5.5227522115971683e-01 1.0948274788663654e+00 - 187 4.8388625830553762e+00 8.6992010344279525e-01 -2.9595243733786960e+00 - 188 -3.0285031145621746e+00 -5.5670095107571624e+00 -3.9776832268194866e+00 - 189 -1.4978080653462702e+00 3.0694094674274521e+00 -1.9187559852476039e+00 - 190 -3.4577019435276188e+00 5.2617491012301558e+00 -2.8027640497219370e+00 - 191 9.0406901956571559e+00 -1.4351168204017077e+00 -3.3870294281189914e+00 - 192 5.8184132257283103e+00 5.7423395615017139e+00 6.1686687899852446e+00 - 193 1.4091839800546093e+00 1.7360548678936290e+00 -1.6202615165179461e+00 - 194 -5.8365574626504371e+00 -1.1219252071695649e+00 -1.1485581230473914e+00 - 195 8.7637315082562739e-01 3.3462961780072562e+00 -8.1354040756305857e-01 - 196 1.6600848436444939e+00 1.3250424500390929e+00 -4.9591553993550193e+00 - 197 -9.4927377308727623e-01 -5.8207744490732205e+00 6.4663694433557373e-01 - 198 -4.5177611467370399e-01 4.9415963080207055e+00 1.9433161156269694e+00 - 199 -4.3027400171982224e+00 -4.5613754557341482e+00 1.5699407701143533e+00 - 200 1.5448724473391100e+00 2.4584923079749044e+00 -3.1392452600363372e+00 - 201 -4.6016718693843250e+00 -3.9418857354937971e+00 -4.6668302285854049e+00 - 202 3.7018520600617483e-01 -4.8332896704447248e-01 -3.6854125040533079e+00 - 203 3.8659815227919072e+00 -7.4539979597211037e+00 2.6942416612669855e+00 - 204 -5.6142785099939756e+00 -6.2018561025019112e+00 -6.7409137682125593e+00 - 205 3.3341288429723184e-02 7.0519544225452000e+00 -2.0938812825266298e+00 - 206 -2.3615309773793909e+00 5.8104716217346848e+00 9.3010131683171882e-01 - 207 -2.6654393381699286e+00 7.5481721396937065e+00 -4.8904771244982843e+00 - 208 2.6741244163087501e+00 -5.1059307299888446e-01 7.8828856576673472e+00 - 209 5.6945314250834000e+00 4.7236054837729293e+00 -4.4884300671397064e+00 - 210 -4.9761430158760129e+00 4.0936541714452908e+00 3.2051110415901496e+00 - 211 -1.6198356152349811e+00 -4.2596509866650010e+00 -9.7002992061953830e-01 - 212 -5.1699166766818969e+00 5.8976607613037153e+00 5.9849768421212861e+00 - 213 4.2290116365362329e-01 -1.5086464242159563e+00 -7.5078846485187913e+00 - 214 -8.4609751614698805e+00 5.8493355421305875e+00 -5.7089940793025908e+00 - 215 3.4912598028285524e+00 5.3853907974679327e+00 1.6584479527210902e+00 - 216 1.8362372044285205e-01 -4.7948186173622875e-01 -2.0243825542596166e+00 - 217 1.2730663338573596e+00 -1.9548047760834673e+00 4.6007887784914319e+00 - 218 -8.1062754396291825e-01 9.5001973866788747e-01 1.5848621098705231e+00 - 219 2.9207013772017865e+00 -2.0240243823079682e+00 2.7543470586622534e+00 - 220 -1.9402618680196495e+00 7.6549971705965802e-01 9.6946223555319992e+00 - 221 -3.0268260302352465e+00 3.3951011598221861e+00 -6.0757634768923250e+00 - 222 -1.9700043289183065e+00 2.6914206295193375e+00 -1.5061070030579118e+00 - 223 2.8594848783135434e+00 6.6367269634964043e-01 9.9964131902305564e-01 - 224 -1.2590521565573090e+00 -1.6706345370949087e+00 1.4597870772587664e+00 - 225 5.2588945057830188e+00 -6.0464310077477252e+00 6.8597153738814240e+00 - 226 2.8448145000609286e+00 5.6236407582631165e-01 -4.0638613838726467e-01 - 227 2.7571144480951206e+00 -5.8841374694731945e+00 2.6747482982065973e+00 - 228 -1.9192646875019609e-01 -2.6023930451114792e+00 -1.5640119155531521e-01 - 229 -5.4277214420897950e+00 3.1852614984002243e+00 -2.4472993211496865e+00 - 230 -4.8829690006287513e-01 -2.0914391804220358e+00 1.0262204003397262e+00 - 231 2.9502456290285423e-01 1.3059788537887522e+00 1.7852903388433130e+00 - 232 6.5687025583215490e+00 -3.2783217210448430e+00 -2.4974953961406290e+00 - 233 -7.4527219588536520e-01 -3.7773273742840128e+00 -3.6783380789498865e-01 - 234 -6.1270209507452833e+00 -1.5901032532178778e+00 -1.1669470951119659e-01 - 235 -7.0828155566330805e-02 -9.2972356408781796e+00 5.2769209282642604e-01 - 236 5.4887681221692430e+00 -3.9815332474491538e+00 1.7266076926660721e+00 - 237 -1.9921597783097837e+00 1.3642870044414115e+00 -4.6177186619299029e+00 - 238 -6.8118072835910659e-01 -2.7253513128251061e+00 7.9371605940428100e+00 - 239 3.2952236042707228e+00 2.5414480916906115e+00 6.4494852848836217e+00 - 240 2.9835802286197284e+00 1.1522845567073488e+00 -1.1774469162360306e+00 - 241 -6.0679352021219364e+00 -5.9494385654760569e+00 -6.5551986540445197e+00 - 242 -4.0299132290613189e+00 2.1291409567038055e+00 2.7727907241961627e+00 - 243 -2.3315178667160752e+00 3.2375780159413567e+00 6.0916752443949562e+00 - 244 6.6009431885726286e+00 -4.7168574935073488e+00 7.0071311712597506e+00 - 245 3.4640998460185721e+00 4.1341203040086913e+00 2.5043659364606583e+00 - 246 4.2313664783552735e-01 9.2836044096513803e-01 2.5711772833599877e-01 - 247 6.8701154820027677e-01 -4.3825288825994866e+00 -4.6893514588412462e+00 - 248 -1.6845639332386573e+00 3.5356453384344939e+00 -1.8031520110784616e+00 - 249 4.3948311874186885e-01 -2.8873991420822955e+00 -5.7260145606028601e-01 - 250 3.7547819930217283e+00 5.5227522115973815e-01 1.0948274788663759e+00 - 251 4.8388625830553877e+00 8.6992010344286119e-01 -2.9595243733787218e+00 - 252 -3.0285031145621910e+00 -5.5670095107571829e+00 -3.9776832268194813e+00 - 253 -1.4978080653461978e+00 3.0694094674274215e+00 -1.9187559852475764e+00 - 254 -3.4577019435275971e+00 5.2617491012301461e+00 -2.8027640497219215e+00 - 255 9.0406901956570884e+00 -1.4351168204016764e+00 -3.3870294281189546e+00 - 256 5.8184132257283228e+00 5.7423395615017272e+00 6.1686687899852624e+00 - 257 1.4091839800546311e+00 1.7360548678936627e+00 -1.6202615165179777e+00 - 258 -5.8365574626504619e+00 -1.1219252071695709e+00 -1.1485581230473791e+00 - 259 8.7637315082562439e-01 3.3462961780072389e+00 -8.1354040756305923e-01 - 260 1.6600848436445086e+00 1.3250424500391138e+00 -4.9591553993549988e+00 - 261 -9.4927377308725214e-01 -5.8207744490732276e+00 6.4663694433556207e-01 - 262 -4.5177611467360057e-01 4.9415963080206202e+00 1.9433161156270420e+00 - 263 -4.3027400171982570e+00 -4.5613754557341517e+00 1.5699407701143941e+00 - 264 1.5448724473390543e+00 2.4584923079749084e+00 -3.1392452600363963e+00 - 265 -4.6016718693843126e+00 -3.9418857354937775e+00 -4.6668302285853844e+00 - 266 3.7018520600613297e-01 -4.8332896704450973e-01 -3.6854125040533261e+00 - 267 3.8659815227919201e+00 -7.4539979597210992e+00 2.6942416612670250e+00 - 268 -5.6142785099940120e+00 -6.2018561025018997e+00 -6.7409137682125522e+00 - 269 3.3341288429739352e-02 7.0519544225451858e+00 -2.0938812825266968e+00 - 270 -2.3615309773793465e+00 5.8104716217346795e+00 9.3010131683181696e-01 - 271 -2.6654393381700139e+00 7.5481721396937509e+00 -4.8904771244983651e+00 - 272 2.6741244163087305e+00 -5.1059307299888756e-01 7.8828856576674111e+00 - 273 5.6945314250833396e+00 4.7236054837728716e+00 -4.4884300671396442e+00 - 274 -4.9761430158759961e+00 4.0936541714453289e+00 3.2051110415901976e+00 - 275 -1.6198356152349642e+00 -4.2596509866649948e+00 -9.7002992061955196e-01 - 276 -5.1699166766818871e+00 5.8976607613036709e+00 5.9849768421212586e+00 - 277 4.2290116365361424e-01 -1.5086464242159596e+00 -7.5078846485188082e+00 - 278 -8.4609751614700137e+00 5.8493355421306603e+00 -5.7089940793027392e+00 - 279 3.4912598028285378e+00 5.3853907974679602e+00 1.6584479527211433e+00 - 280 1.8362372044285166e-01 -4.7948186173622959e-01 -2.0243825542595824e+00 - 281 1.2730663338573827e+00 -1.9548047760834801e+00 4.6007887784913599e+00 - 282 -8.1062754396294179e-01 9.5001973866789868e-01 1.5848621098705087e+00 - 283 2.9207013772019419e+00 -2.0240243823079860e+00 2.7543470586622187e+00 - 284 -1.9402618680197097e+00 7.6549971705970477e-01 9.6946223555320827e+00 - 285 -3.0268260302352705e+00 3.3951011598222260e+00 -6.0757634768923667e+00 - 286 -1.9700043289182816e+00 2.6914206295193210e+00 -1.5061070030578938e+00 - 287 2.8594848783134781e+00 6.6367269634964388e-01 9.9964131902304842e-01 - 288 -1.2590521565572959e+00 -1.6706345370948839e+00 1.4597870772587418e+00 - 289 5.2588945057831227e+00 -6.0464310077478611e+00 6.8597153738815528e+00 - 290 2.8448145000609064e+00 5.6236407582631898e-01 -4.0638613838728016e-01 - 291 2.7571144480951801e+00 -5.8841374694731963e+00 2.6747482982066444e+00 - 292 -1.9192646875024974e-01 -2.6023930451114330e+00 -1.5640119155539528e-01 - 293 -5.4277214420898163e+00 3.1852614984002563e+00 -2.4472993211497136e+00 - 294 -4.8829690006289089e-01 -2.0914391804220638e+00 1.0262204003397486e+00 - 295 2.9502456290283852e-01 1.3059788537887378e+00 1.7852903388432688e+00 - 296 6.5687025583215730e+00 -3.2783217210449096e+00 -2.4974953961406419e+00 - 297 -7.4527219588535576e-01 -3.7773273742839897e+00 -3.6783380789497833e-01 - 298 -6.1270209507454059e+00 -1.5901032532179340e+00 -1.1669470951127092e-01 - 299 -7.0828155566327031e-02 -9.2972356408781405e+00 5.2769209282643048e-01 - 300 5.4887681221691862e+00 -3.9815332474491911e+00 1.7266076926660765e+00 - 301 -1.9921597783097464e+00 1.3642870044413813e+00 -4.6177186619299357e+00 - 302 -6.8118072835899479e-01 -2.7253513128250177e+00 7.9371605940428118e+00 - 303 3.2952236042706780e+00 2.5414480916905724e+00 6.4494852848836226e+00 - 304 2.9835802286197115e+00 1.1522845567074216e+00 -1.1774469162359920e+00 - 305 -6.0679352021219408e+00 -5.9494385654760071e+00 -6.5551986540445046e+00 - 306 -4.0299132290613322e+00 2.1291409567037616e+00 2.7727907241961169e+00 - 307 -2.3315178667160326e+00 3.2375780159413909e+00 6.0916752443949980e+00 - 308 6.6009431885727023e+00 -4.7168574935075398e+00 7.0071311712598687e+00 - 309 3.4640998460185570e+00 4.1341203040087589e+00 2.5043659364606148e+00 - 310 4.2313664783553812e-01 9.2836044096518455e-01 2.5711772833601587e-01 - 311 6.8701154820029764e-01 -4.3825288825994893e+00 -4.6893514588412897e+00 - 312 -1.6845639332386757e+00 3.5356453384345401e+00 -1.8031520110784909e+00 - 313 4.3948311874192064e-01 -2.8873991420822258e+00 -5.7260145606024282e-01 - 314 3.7547819930218127e+00 5.5227522115964545e-01 1.0948274788663677e+00 - 315 4.8388625830553504e+00 8.6992010344280335e-01 -2.9595243733787977e+00 - 316 -3.0285031145622927e+00 -5.5670095107572948e+00 -3.9776832268196527e+00 - 317 -1.4978080653463275e+00 3.0694094674273598e+00 -1.9187559852475453e+00 - 318 -3.4577019435275558e+00 5.2617491012301123e+00 -2.8027640497218824e+00 - 319 9.0406901956571719e+00 -1.4351168204016653e+00 -3.3870294281189643e+00 - 320 5.8184132257284507e+00 5.7423395615018444e+00 6.1686687899853681e+00 - 321 1.4091839800546089e+00 1.7360548678936276e+00 -1.6202615165179448e+00 - 322 -5.8365574626504406e+00 -1.1219252071695605e+00 -1.1485581230473683e+00 - 323 8.7637315082560552e-01 3.3462961780072313e+00 -8.1354040756303558e-01 - 324 1.6600848436444902e+00 1.3250424500390892e+00 -4.9591553993550113e+00 - 325 -9.4927377308725713e-01 -5.8207744490732196e+00 6.4663694433556163e-01 - 326 -4.5177611467365764e-01 4.9415963080206184e+00 1.9433161156270236e+00 - 327 -4.3027400171982002e+00 -4.5613754557341464e+00 1.5699407701143666e+00 - 328 1.5448724473390965e+00 2.4584923079749039e+00 -3.1392452600363705e+00 - 329 -4.6016718693843179e+00 -3.9418857354937908e+00 -4.6668302285853951e+00 - 330 3.7018520600608934e-01 -4.8332896704456763e-01 -3.6854125040533510e+00 - 331 3.8659815227918801e+00 -7.4539979597211019e+00 2.6942416612669708e+00 - 332 -5.6142785099940555e+00 -6.2018561025019778e+00 -6.7409137682126294e+00 - 333 3.3341288429725495e-02 7.0519544225451831e+00 -2.0938812825266422e+00 - 334 -2.3615309773792754e+00 5.8104716217347230e+00 9.3010131683181607e-01 - 335 -2.6654393381700006e+00 7.5481721396938086e+00 -4.8904771244983651e+00 - 336 2.6741244163088496e+00 -5.1059307299879952e-01 7.8828856576673969e+00 - 337 5.6945314250833610e+00 4.7236054837729107e+00 -4.4884300671396717e+00 - 338 -4.9761430158759898e+00 4.0936541714453147e+00 3.2051110415901869e+00 - 339 -1.6198356152349376e+00 -4.2596509866649903e+00 -9.7002992061951809e-01 - 340 -5.1699166766819040e+00 5.8976607613036931e+00 5.9849768421212737e+00 - 341 4.2290116365358615e-01 -1.5086464242159290e+00 -7.5078846485188215e+00 - 342 -8.4609751614699995e+00 5.8493355421306745e+00 -5.7089940793027472e+00 - 343 3.4912598028285324e+00 5.3853907974679558e+00 1.6584479527211353e+00 - 344 1.8362372044284778e-01 -4.7948186173622687e-01 -2.0243825542595992e+00 - 345 1.2730663338573833e+00 -1.9548047760834757e+00 4.6007887784913510e+00 - 346 -8.1062754396290182e-01 9.5001973866788081e-01 1.5848621098705074e+00 - 347 2.9207013772018025e+00 -2.0240243823080029e+00 2.7543470586622463e+00 - 348 -1.9402618680196775e+00 7.6549971705966835e-01 9.6946223555320099e+00 - 349 -3.0268260302352754e+00 3.3951011598222234e+00 -6.0757634768923339e+00 - 350 -1.9700043289183056e+00 2.6914206295193304e+00 -1.5061070030579151e+00 - 351 2.8594848783135420e+00 6.6367269634966752e-01 9.9964131902308240e-01 - 352 -1.2590521565573154e+00 -1.6706345370949156e+00 1.4597870772587733e+00 - 353 5.2588945057831102e+00 -6.0464310077478247e+00 6.8597153738815138e+00 - 354 2.8448145000609362e+00 5.6236407582631520e-01 -4.0638613838727428e-01 - 355 2.7571144480951890e+00 -5.8841374694732149e+00 2.6747482982066555e+00 - 356 -1.9192646875022737e-01 -2.6023930451114192e+00 -1.5640119155536478e-01 - 357 -5.4277214420898403e+00 3.1852614984002652e+00 -2.4472993211497220e+00 - 358 -4.8829690006288884e-01 -2.0914391804220620e+00 1.0262204003397475e+00 - 359 2.9502456290283241e-01 1.3059788537887345e+00 1.7852903388432784e+00 - 360 6.5687025583215570e+00 -3.2783217210449371e+00 -2.4974953961406730e+00 - 361 -7.4527219588536464e-01 -3.7773273742839790e+00 -3.6783380789498993e-01 - 362 -6.1270209507453304e+00 -1.5901032532179182e+00 -1.1669470951124647e-01 - 363 -7.0828155566322812e-02 -9.2972356408781422e+00 5.2769209282643037e-01 - 364 5.4887681221691995e+00 -3.9815332474491578e+00 1.7266076926660769e+00 - 365 -1.9921597783097700e+00 1.3642870044413935e+00 -4.6177186619299171e+00 - 366 -6.8118072835905619e-01 -2.7253513128250813e+00 7.9371605940428021e+00 - 367 3.2952236042706891e+00 2.5414480916905897e+00 6.4494852848835995e+00 - 368 2.9835802286197146e+00 1.1522845567073883e+00 -1.1774469162359926e+00 - 369 -6.0679352021219168e+00 -5.9494385654760000e+00 -6.5551986540444913e+00 - 370 -4.0299132290613215e+00 2.1291409567037642e+00 2.7727907241961178e+00 - 371 -2.3315178667160841e+00 3.2375780159414127e+00 6.0916752443949918e+00 - 372 6.6009431885727041e+00 -4.7168574935075362e+00 7.0071311712598670e+00 - 373 3.4640998460185579e+00 4.1341203040087349e+00 2.5043659364606152e+00 - 374 4.2313664783553423e-01 9.2836044096517378e-01 2.5711772833601110e-01 - 375 6.8701154820034405e-01 -4.3825288825995052e+00 -4.6893514588413119e+00 - 376 -1.6845639332386699e+00 3.5356453384345237e+00 -1.8031520110784818e+00 - 377 4.3948311874191232e-01 -2.8873991420822267e+00 -5.7260145606025925e-01 - 378 3.7547819930217545e+00 5.5227522115966277e-01 1.0948274788663754e+00 - 379 4.8388625830553673e+00 8.6992010344286952e-01 -2.9595243733788266e+00 - 380 -3.0285031145623149e+00 -5.5670095107573196e+00 -3.9776832268196500e+00 - 381 -1.4978080653462609e+00 3.0694094674273300e+00 -1.9187559852475262e+00 - 382 -3.4577019435275314e+00 5.2617491012301087e+00 -2.8027640497218647e+00 - 383 9.0406901956570973e+00 -1.4351168204016267e+00 -3.3870294281189155e+00 - 384 5.8184132257284693e+00 5.7423395615018640e+00 6.1686687899853938e+00 - 385 1.4091839800546315e+00 1.7360548678936638e+00 -1.6202615165179781e+00 - 386 -5.8365574626505046e+00 -1.1219252071696144e+00 -1.1485581230474351e+00 - 387 8.7637315082563116e-01 3.3462961780072367e+00 -8.1354040756307044e-01 - 388 1.6600848436445064e+00 1.3250424500391129e+00 -4.9591553993550042e+00 - 389 -9.4927377308726546e-01 -5.8207744490732258e+00 6.4663694433556684e-01 - 390 -4.5177611467357648e-01 4.9415963080207232e+00 1.9433161156270660e+00 - 391 -4.3027400171982926e+00 -4.5613754557341695e+00 1.5699407701144159e+00 - 392 1.5448724473390720e+00 2.4584923079749030e+00 -3.1392452600363780e+00 - 393 -4.6016718693843117e+00 -3.9418857354937766e+00 -4.6668302285853844e+00 - 394 3.7018520600619537e-01 -4.8332896704442380e-01 -3.6854125040533008e+00 - 395 3.8659815227919156e+00 -7.4539979597210850e+00 2.6942416612670224e+00 - 396 -5.6142785099939436e+00 -6.2018561025018535e+00 -6.7409137682124936e+00 - 397 3.3341288429758066e-02 7.0519544225451662e+00 -2.0938812825266919e+00 - 398 -2.3615309773794055e+00 5.8104716217346191e+00 9.3010131683181485e-01 - 399 -2.6654393381700103e+00 7.5481721396937393e+00 -4.8904771244983625e+00 - 400 2.6741244163086249e+00 -5.1059307299898360e-01 7.8828856576673783e+00 - 401 5.6945314250833921e+00 4.7236054837729009e+00 -4.4884300671396842e+00 - 402 -4.9761430158760058e+00 4.0936541714453085e+00 3.2051110415901740e+00 - 403 -1.6198356152349935e+00 -4.2596509866649948e+00 -9.7002992061955384e-01 - 404 -5.1699166766818720e+00 5.8976607613036647e+00 5.9849768421212461e+00 - 405 4.2290116365363556e-01 -1.5086464242159761e+00 -7.5078846485187878e+00 - 406 -8.4609751614699444e+00 5.8493355421306461e+00 -5.7089940793026672e+00 - 407 3.4912598028285289e+00 5.3853907974679265e+00 1.6584479527211002e+00 - 408 1.8362372044286548e-01 -4.7948186173624224e-01 -2.0243825542595810e+00 - 409 1.2730663338573718e+00 -1.9548047760834746e+00 4.6007887784913688e+00 - 410 -8.1062754396295167e-01 9.5001973866792222e-01 1.5848621098704945e+00 - 411 2.9207013772019486e+00 -2.0240243823079398e+00 2.7543470586622174e+00 - 412 -1.9402618680196764e+00 7.6549971705967745e-01 9.6946223555321112e+00 - 413 -3.0268260302352630e+00 3.3951011598222181e+00 -6.0757634768923605e+00 - 414 -1.9700043289182965e+00 2.6914206295193344e+00 -1.5061070030579065e+00 - 415 2.8594848783134728e+00 6.6367269634962867e-01 9.9964131902303588e-01 - 416 -1.2590521565572947e+00 -1.6706345370948832e+00 1.4597870772587422e+00 - 417 5.2588945057831182e+00 -6.0464310077478585e+00 6.8597153738815475e+00 - 418 2.8448145000608931e+00 5.6236407582630721e-01 -4.0638613838726412e-01 - 419 2.7571144480951659e+00 -5.8841374694731785e+00 2.6747482982066311e+00 - 420 -1.9192646875023883e-01 -2.6023930451114814e+00 -1.5640119155539567e-01 - 421 -5.4277214420898057e+00 3.1852614984002399e+00 -2.4472993211496927e+00 - 422 -4.8829690006288184e-01 -2.0914391804220513e+00 1.0262204003397351e+00 - 423 2.9502456290283263e-01 1.3059788537887316e+00 1.7852903388432710e+00 - 424 6.5687025583215677e+00 -3.2783217210447950e+00 -2.4974953961405957e+00 - 425 -7.4527219588536364e-01 -3.7773273742840070e+00 -3.6783380789498238e-01 - 426 -6.1270209507453552e+00 -1.5901032532178907e+00 -1.1669470951122697e-01 - 427 -7.0828155566333456e-02 -9.2972356408781796e+00 5.2769209282642937e-01 - 428 5.4887681221691684e+00 -3.9815332474491631e+00 1.7266076926660745e+00 - 429 -1.9921597783097484e+00 1.3642870044414233e+00 -4.6177186619299526e+00 - 430 -6.8118072835904131e-01 -2.7253513128250795e+00 7.9371605940427647e+00 - 431 3.2952236042707215e+00 2.5414480916906030e+00 6.4494852848836377e+00 - 432 2.9835802286197066e+00 1.1522845567073925e+00 -1.1774469162359951e+00 - 433 -6.0679352021219133e+00 -5.9494385654760107e+00 -6.5551986540444913e+00 - 434 -4.0299132290613429e+00 2.1291409567038064e+00 2.7727907241961693e+00 - 435 -2.3315178667160001e+00 3.2375780159413186e+00 6.0916752443949518e+00 - 436 6.6009431885726855e+00 -4.7168574935074243e+00 7.0071311712598199e+00 - 437 3.4640998460185353e+00 4.1341203040086709e+00 2.5043659364605859e+00 - 438 4.2313664783552257e-01 9.2836044096516035e-01 2.5711772833599683e-01 - 439 6.8701154820026356e-01 -4.3825288825994972e+00 -4.6893514588412382e+00 - 440 -1.6845639332386511e+00 3.5356453384344939e+00 -1.8031520110784645e+00 - 441 4.3948311874190016e-01 -2.8873991420823018e+00 -5.7260145606023594e-01 - 442 3.7547819930217847e+00 5.5227522115972771e-01 1.0948274788663190e+00 - 443 4.8388625830553798e+00 8.6992010344278914e-01 -2.9595243733787910e+00 - 444 -3.0285031145622359e+00 -5.5670095107572628e+00 -3.9776832268195768e+00 - 445 -1.4978080653462962e+00 3.0694094674273931e+00 -1.9187559852475569e+00 - 446 -3.4577019435275989e+00 5.2617491012301478e+00 -2.8027640497219197e+00 - 447 9.0406901956571772e+00 -1.4351168204016671e+00 -3.3870294281189612e+00 - 448 5.8184132257283938e+00 5.7423395615018009e+00 6.1686687899853112e+00 - 449 1.4091839800546093e+00 1.7360548678936290e+00 -1.6202615165179453e+00 - 450 -5.8365574626504761e+00 -1.1219252071695991e+00 -1.1485581230474198e+00 - 451 8.7637315082561329e-01 3.3462961780072291e+00 -8.1354040756304880e-01 - 452 1.6600848436444857e+00 1.3250424500390852e+00 -4.9591553993550166e+00 - 453 -9.4927377308726668e-01 -5.8207744490732178e+00 6.4663694433556518e-01 - 454 -4.5177611467363993e-01 4.9415963080207170e+00 1.9433161156270433e+00 - 455 -4.3027400171982411e+00 -4.5613754557341704e+00 1.5699407701144044e+00 - 456 1.5448724473391180e+00 2.4584923079748955e+00 -3.1392452600363479e+00 - 457 -4.6016718693843259e+00 -3.9418857354937975e+00 -4.6668302285854049e+00 - 458 3.7018520600614979e-01 -4.8332896704448242e-01 -3.6854125040533474e+00 - 459 3.8659815227918859e+00 -7.4539979597210957e+00 2.6942416612669775e+00 - 460 -5.6142785099939916e+00 -6.2018561025019325e+00 -6.7409137682125735e+00 - 461 3.3341288429745382e-02 7.0519544225451831e+00 -2.0938812825266329e+00 - 462 -2.3615309773793238e+00 5.8104716217346590e+00 9.3010131683182995e-01 - 463 -2.6654393381700037e+00 7.5481721396937997e+00 -4.8904771244983696e+00 - 464 2.6741244163087461e+00 -5.1059307299888701e-01 7.8828856576673685e+00 - 465 5.6945314250834205e+00 4.7236054837729471e+00 -4.4884300671397197e+00 - 466 -4.9761430158759863e+00 4.0936541714452837e+00 3.2051110415901523e+00 - 467 -1.6198356152349644e+00 -4.2596509866649894e+00 -9.7002992061952242e-01 - 468 -5.1699166766818836e+00 5.8976607613036842e+00 5.9849768421212559e+00 - 469 4.2290116365359981e-01 -1.5086464242159319e+00 -7.5078846485187869e+00 - 470 -8.4609751614699338e+00 5.8493355421306630e+00 -5.7089940793026788e+00 - 471 3.4912598028285164e+00 5.3853907974679212e+00 1.6584479527210936e+00 - 472 1.8362372044285996e-01 -4.7948186173623775e-01 -2.0243825542596032e+00 - 473 1.2730663338573720e+00 -1.9548047760834697e+00 4.6007887784913590e+00 - 474 -8.1062754396290859e-01 9.5001973866790346e-01 1.5848621098704960e+00 - 475 2.9207013772018131e+00 -2.0240243823079469e+00 2.7543470586622298e+00 - 476 -1.9402618680196426e+00 7.6549971705964004e-01 9.6946223555320401e+00 - 477 -3.0268260302352603e+00 3.3951011598222030e+00 -6.0757634768923214e+00 - 478 -1.9700043289183136e+00 2.6914206295193366e+00 -1.5061070030579211e+00 - 479 2.8594848783135354e+00 6.6367269634965109e-01 9.9964131902306697e-01 - 480 -1.2590521565573143e+00 -1.6706345370949152e+00 1.4597870772587735e+00 - 481 5.2588945057831022e+00 -6.0464310077478167e+00 6.8597153738815031e+00 - 482 2.8448145000609153e+00 5.6236407582631298e-01 -4.0638613838726606e-01 - 483 2.7571144480951641e+00 -5.8841374694731883e+00 2.6747482982066320e+00 - 484 -1.9192646875021480e-01 -2.6023930451114743e+00 -1.5640119155537663e-01 - 485 -5.4277214420898199e+00 3.1852614984002354e+00 -2.4472993211496896e+00 - 486 -4.8829690006287668e-01 -2.0914391804220442e+00 1.0262204003397306e+00 - 487 2.9502456290283036e-01 1.3059788537887318e+00 1.7852903388432808e+00 - 488 6.5687025583215561e+00 -3.2783217210448123e+00 -2.4974953961406214e+00 - 489 -7.4527219588537796e-01 -3.7773273742839950e+00 -3.6783380789500075e-01 - 490 -6.1270209507452824e+00 -1.5901032532178767e+00 -1.1669470951120132e-01 - 491 -7.0828155566328391e-02 -9.2972356408781831e+00 5.2769209282643115e-01 - 492 5.4887681221691782e+00 -3.9815332474491272e+00 1.7266076926660672e+00 - 493 -1.9921597783097722e+00 1.3642870044414399e+00 -4.6177186619299357e+00 - 494 -6.8118072835909582e-01 -2.7253513128251385e+00 7.9371605940427514e+00 - 495 3.2952236042707335e+00 2.5414480916906217e+00 6.4494852848836128e+00 - 496 2.9835802286197026e+00 1.1522845567073692e+00 -1.1774469162360017e+00 - 497 -6.0679352021218858e+00 -5.9494385654759991e+00 -6.5551986540444753e+00 - 498 -4.0299132290613304e+00 2.1291409567037998e+00 2.7727907241961627e+00 - 499 -2.3315178667160503e+00 3.2375780159413483e+00 6.0916752443949553e+00 - 500 6.6009431885726855e+00 -4.7168574935074252e+00 7.0071311712598181e+00 - 501 3.4640998460185322e+00 4.1341203040086407e+00 2.5043659364605859e+00 - 502 4.2313664783552291e-01 9.2836044096515435e-01 2.5711772833599639e-01 - 503 6.8701154820029697e-01 -4.3825288825995079e+00 -4.6893514588412568e+00 - 504 -1.6845639332386459e+00 3.5356453384344828e+00 -1.8031520110784556e+00 - 505 4.3948311874188511e-01 -2.8873991420823044e+00 -5.7260145606025570e-01 - 506 3.7547819930217337e+00 5.5227522115974215e-01 1.0948274788663341e+00 - 507 4.8388625830553869e+00 8.6992010344284987e-01 -2.9595243733788110e+00 - 508 -3.0285031145622705e+00 -5.5670095107572886e+00 -3.9776832268195808e+00 - 509 -1.4978080653462185e+00 3.0694094674273678e+00 -1.9187559852475351e+00 - 510 -3.4577019435275704e+00 5.2617491012301310e+00 -2.8027640497218980e+00 - 511 9.0406901956571009e+00 -1.4351168204016298e+00 -3.3870294281189146e+00 - 512 5.8184132257284160e+00 5.7423395615018249e+00 6.1686687899853405e+00 + 1 1.4101084499624834e+00 1.7371804088545335e+00 -1.6213174412210642e+00 + 2 -5.8399142482199666e+00 -1.1232412828534912e+00 -1.1499478454746312e+00 + 3 8.7634281400132430e-01 3.3470924205892643e+00 -8.1366156642161969e-01 + 4 1.6618348954343425e+00 1.3267230795340910e+00 -4.9613186302807133e+00 + 5 -9.5068329765370274e-01 -5.8237800850819283e+00 6.4731385586130707e-01 + 6 -4.5001292021627554e-01 4.9457441409187863e+00 1.9456461634790387e+00 + 7 -4.3052102443920397e+00 -4.5636488830761017e+00 1.5724677428331195e+00 + 8 1.5449878373122821e+00 2.4590982230198160e+00 -3.1390852730039449e+00 + 9 -4.6045449943310786e+00 -3.9440808098823186e+00 -4.6700755874078377e+00 + 10 3.7147697382426104e-01 -4.8285079070936388e-01 -3.6890671668077557e+00 + 11 3.8716570366709617e+00 -7.4579362411464825e+00 2.6984541425925990e+00 + 12 -5.6224994178130929e+00 -6.2110127059234488e+00 -6.7476211894063383e+00 + 13 3.1500132936973006e-02 7.0601764306126391e+00 -2.0944606590553625e+00 + 14 -2.3637150235790640e+00 5.8159045954962254e+00 9.2704917537069798e-01 + 15 -2.6728293943632440e+00 7.5552531622542345e+00 -4.8983926692927886e+00 + 16 2.6753525054676741e+00 -5.0623527488437536e-01 7.8939421082827286e+00 + 17 5.6999696634920580e+00 4.7279269674034090e+00 -4.4920700577050896e+00 + 18 -4.9787999902374374e+00 4.0981651408694857e+00 3.2088541364653502e+00 + 19 -1.6213391901712033e+00 -4.2635561713516781e+00 -9.7236351460329395e-01 + 20 -5.1758925760643937e+00 5.9036888087723742e+00 5.9897804863834523e+00 + 21 4.2475360018693586e-01 -1.5120403153751463e+00 -7.5118946585359554e+00 + 22 -8.4723991427858429e+00 5.8591586936795998e+00 -5.7220550448276519e+00 + 23 3.4936529015452429e+00 5.3887932178421343e+00 1.6618586990387023e+00 + 24 1.8397684085288479e-01 -4.7956123656856936e-01 -2.0248730631499297e+00 + 25 1.2740119839669743e+00 -1.9562152526426297e+00 4.6010648854407039e+00 + 26 -8.1088651153479652e-01 9.4981098330250502e-01 1.5857688839887338e+00 + 27 2.9237941762954156e+00 -2.0287483220568965e+00 2.7576412015032452e+00 + 28 -1.9423484320868827e+00 7.6700165963422506e-01 9.7032907448379735e+00 + 29 -3.0301266998673522e+00 3.3988629573493792e+00 -6.0790525480058077e+00 + 30 -1.9710732697574975e+00 2.6918587726715142e+00 -1.5068617145526664e+00 + 31 2.8596379254927973e+00 6.6388605559368985e-01 1.0001582081953555e+00 + 32 -1.2599066151315841e+00 -1.6716649508562782e+00 1.4607750060248941e+00 + 33 5.2650618358415651e+00 -6.0531728072803412e+00 6.8677797616117395e+00 + 34 2.8452772301515119e+00 5.6278916247943778e-01 -4.0654825176947501e-01 + 35 2.7601000342468174e+00 -5.8880962871766309e+00 2.6779862817975464e+00 + 36 -1.9151887508496218e-01 -2.6038253331120482e+00 -1.5631763792038542e-01 + 37 -5.4308678357699085e+00 3.1890361709539681e+00 -2.4512813444078403e+00 + 38 -4.8831911953854834e-01 -2.0911382434426233e+00 1.0263989663650521e+00 + 39 2.9583081381556897e-01 1.3064497582436145e+00 1.7854366483768509e+00 + 40 6.5759007584467497e+00 -3.2841132464413572e+00 -2.5014634020295063e+00 + 41 -7.4523257690304801e-01 -3.7773029542989391e+00 -3.6767020418412921e-01 + 42 -6.1312327154342396e+00 -1.5912197837133117e+00 -1.1855962370568189e-01 + 43 -7.1437588001434169e-02 -9.3031888107187211e+00 5.2754511162513296e-01 + 44 5.4932170480545217e+00 -3.9860368619527629e+00 1.7314892119390326e+00 + 45 -1.9946430535013895e+00 1.3671229931632587e+00 -4.6232127582616194e+00 + 46 -6.8496202690010577e-01 -2.7270551316211842e+00 7.9433814991520117e+00 + 47 3.2988872027001999e+00 2.5435438106820394e+00 6.4538031712204589e+00 + 48 2.9832582841622712e+00 1.1528571177955873e+00 -1.1771929693341157e+00 + 49 -6.0727927862320437e+00 -5.9562388562177775e+00 -6.5628478152085119e+00 + 50 -4.0304268005425916e+00 2.1299026394284661e+00 2.7736841705602946e+00 + 51 -2.3362097823934547e+00 3.2446508481241834e+00 6.0973333873913846e+00 + 52 6.6121228820666840e+00 -4.7286493145040840e+00 7.0211430066607825e+00 + 53 3.4705860716774821e+00 4.1400084168419884e+00 2.5096243926436443e+00 + 54 4.2357967515728950e-01 9.2785557547274899e-01 2.5722948535958462e-01 + 55 6.9092597174733328e-01 -4.3884673023252585e+00 -4.6957721500748519e+00 + 56 -1.6865429201680642e+00 3.5369692022565093e+00 -1.8052965931311840e+00 + 57 4.3961939657668192e-01 -2.8887423850093139e+00 -5.7296796525048743e-01 + 58 3.7570134025583659e+00 5.5027352242578065e-01 1.0958464933342578e+00 + 59 4.8450622687030140e+00 8.7301037576119778e-01 -2.9627442358410301e+00 + 60 -3.0352399103260401e+00 -5.5756624285612242e+00 -3.9845128251408610e+00 + 61 -1.4986666784757698e+00 3.0715079180009073e+00 -1.9202063976752488e+00 + 62 -3.4612601703739707e+00 5.2654166486564113e+00 -2.8054760695983396e+00 + 63 9.0463322673910671e+00 -1.4402000114087783e+00 -3.3926224071546960e+00 + 64 5.8257019271111208e+00 5.7499622015090264e+00 6.1760642521047480e+00 + 65 1.4101084499624945e+00 1.7371804088545499e+00 -1.6213174412210793e+00 + 66 -5.8399142482199569e+00 -1.1232412828534901e+00 -1.1499478454746328e+00 + 67 8.7634281400133751e-01 3.3470924205892656e+00 -8.1366156642163534e-01 + 68 1.6618348954343116e+00 1.3267230795340468e+00 -4.9613186302807328e+00 + 69 -9.5068329765370096e-01 -5.8237800850819186e+00 6.4731385586130286e-01 + 70 -4.5001292021631656e-01 4.9457441409188236e+00 1.9456461634789957e+00 + 71 -4.3052102443919482e+00 -4.5636488830760964e+00 1.5724677428330975e+00 + 72 1.5449878373123589e+00 2.4590982230198031e+00 -3.1390852730039280e+00 + 73 -4.6045449943310741e+00 -3.9440808098823101e+00 -4.6700755874078279e+00 + 74 3.7147697382419370e-01 -4.8285079070941711e-01 -3.6890671668077526e+00 + 75 3.8716570366709511e+00 -7.4579362411464762e+00 2.6984541425925879e+00 + 76 -5.6224994178131347e+00 -6.2110127059235003e+00 -6.7476211894063756e+00 + 77 3.1500132936973770e-02 7.0601764306126320e+00 -2.0944606590553616e+00 + 78 -2.3637150235790321e+00 5.8159045954962370e+00 9.2704917537072240e-01 + 79 -2.6728293943632591e+00 7.5552531622542647e+00 -4.8983926692928126e+00 + 80 2.6753525054677341e+00 -5.0623527488428222e-01 7.8939421082827224e+00 + 81 5.6999696634920971e+00 4.7279269674034552e+00 -4.4920700577051331e+00 + 82 -4.9787999902374329e+00 4.0981651408694910e+00 3.2088541364653573e+00 + 83 -1.6213391901712770e+00 -4.2635561713516665e+00 -9.7236351460331327e-01 + 84 -5.1758925760643839e+00 5.9036888087723627e+00 5.9897804863834434e+00 + 85 4.2475360018694719e-01 -1.5120403153751587e+00 -7.5118946585359421e+00 + 86 -8.4723991427859175e+00 5.8591586936796514e+00 -5.7220550448277363e+00 + 87 3.4936529015452691e+00 5.3887932178421707e+00 1.6618586990387330e+00 + 88 1.8397684085287699e-01 -4.7956123656855953e-01 -2.0248730631499217e+00 + 89 1.2740119839669910e+00 -1.9562152526426526e+00 4.6010648854406986e+00 + 90 -8.1088651153479241e-01 9.4981098330251235e-01 1.5857688839887580e+00 + 91 2.9237941762953805e+00 -2.0287483220569071e+00 2.7576412015032403e+00 + 92 -1.9423484320868498e+00 7.6700165963418865e-01 9.7032907448379326e+00 + 93 -3.0301266998673446e+00 3.3988629573493712e+00 -6.0790525480058024e+00 + 94 -1.9710732697574938e+00 2.6918587726714907e+00 -1.5068617145526619e+00 + 95 2.8596379254928421e+00 6.6388605559367853e-01 1.0001582081953513e+00 + 96 -1.2599066151315779e+00 -1.6716649508562664e+00 1.4607750060248836e+00 + 97 5.2650618358415588e+00 -6.0531728072803253e+00 6.8677797616117182e+00 + 98 2.8452772301515288e+00 5.6278916247943900e-01 -4.0654825176947940e-01 + 99 2.7601000342468502e+00 -5.8880962871766549e+00 2.6779862817975988e+00 + 100 -1.9151887508492124e-01 -2.6038253331120451e+00 -1.5631763792033387e-01 + 101 -5.4308678357699431e+00 3.1890361709539978e+00 -2.4512813444078665e+00 + 102 -4.8831911953855472e-01 -2.0911382434426278e+00 1.0263989663650606e+00 + 103 2.9583081381555676e-01 1.3064497582436023e+00 1.7854366483768360e+00 + 104 6.5759007584467266e+00 -3.2841132464413563e+00 -2.5014634020294988e+00 + 105 -7.4523257690308686e-01 -3.7773029542989343e+00 -3.6767020418418211e-01 + 106 -6.1312327154342698e+00 -1.5912197837132944e+00 -1.1855962370567052e-01 + 107 -7.1437588001479924e-02 -9.3031888107186997e+00 5.2754511162503914e-01 + 108 5.4932170480545004e+00 -3.9860368619527651e+00 1.7314892119390373e+00 + 109 -1.9946430535013113e+00 1.3671229931632198e+00 -4.6232127582615803e+00 + 110 -6.8496202690018182e-01 -2.7270551316212486e+00 7.9433814991520961e+00 + 111 3.2988872027002292e+00 2.5435438106820754e+00 6.4538031712204766e+00 + 112 2.9832582841622455e+00 1.1528571177956000e+00 -1.1771929693340835e+00 + 113 -6.0727927862320499e+00 -5.9562388562177873e+00 -6.5628478152085226e+00 + 114 -4.0304268005425925e+00 2.1299026394284701e+00 2.7736841705602981e+00 + 115 -2.3362097823934018e+00 3.2446508481241585e+00 6.0973333873913882e+00 + 116 6.6121228820667737e+00 -4.7286493145041346e+00 7.0211430066608598e+00 + 117 3.4705860716774479e+00 4.1400084168419946e+00 2.5096243926436532e+00 + 118 4.2357967515728706e-01 9.2785557547274511e-01 2.5722948535958162e-01 + 119 6.9092597174732118e-01 -4.3884673023252416e+00 -4.6957721500748546e+00 + 120 -1.6865429201680509e+00 3.5369692022564783e+00 -1.8052965931311662e+00 + 121 4.3961939657668664e-01 -2.8887423850093121e+00 -5.7296796525048810e-01 + 122 3.7570134025583277e+00 5.5027352242581618e-01 1.0958464933342473e+00 + 123 4.8450622687031748e+00 8.7301037576130136e-01 -2.9627442358410718e+00 + 124 -3.0352399103261227e+00 -5.5756624285612313e+00 -3.9845128251408641e+00 + 125 -1.4986666784757363e+00 3.0715079180009353e+00 -1.9202063976752926e+00 + 126 -3.4612601703739747e+00 5.2654166486564176e+00 -2.8054760695983476e+00 + 127 9.0463322673909925e+00 -1.4402000114088049e+00 -3.3926224071546933e+00 + 128 5.8257019271111385e+00 5.7499622015090441e+00 6.1760642521047737e+00 + 129 1.4101084499624534e+00 1.7371804088545049e+00 -1.6213174412210309e+00 + 130 -5.8399142482199737e+00 -1.1232412828535170e+00 -1.1499478454746650e+00 + 131 8.7634281400135128e-01 3.3470924205892754e+00 -8.1366156642164844e-01 + 132 1.6618348954343223e+00 1.3267230795340734e+00 -4.9613186302807142e+00 + 133 -9.5068329765370629e-01 -5.8237800850819088e+00 6.4731385586130863e-01 + 134 -4.5001292021624067e-01 4.9457441409188281e+00 1.9456461634790669e+00 + 135 -4.3052102443919820e+00 -4.5636488830760884e+00 1.5724677428330815e+00 + 136 1.5449878373122401e+00 2.4590982230198803e+00 -3.1390852730039502e+00 + 137 -4.6045449943310786e+00 -3.9440808098823172e+00 -4.6700755874078350e+00 + 138 3.7147697382417788e-01 -4.8285079070949538e-01 -3.6890671668077770e+00 + 139 3.8716570366709662e+00 -7.4579362411464789e+00 2.6984541425926039e+00 + 140 -5.6224994178131524e+00 -6.2110127059234923e+00 -6.7476211894063933e+00 + 141 3.1500132936956658e-02 7.0601764306126444e+00 -2.0944606590553514e+00 + 142 -2.3637150235790285e+00 5.8159045954963942e+00 9.2704917537068410e-01 + 143 -2.6728293943632346e+00 7.5552531622542176e+00 -4.8983926692927744e+00 + 144 2.6753525054676777e+00 -5.0623527488432618e-01 7.8939421082828236e+00 + 145 5.6999696634920909e+00 4.7279269674034268e+00 -4.4920700577051145e+00 + 146 -4.9787999902374720e+00 4.0981651408695159e+00 3.2088541364653769e+00 + 147 -1.6213391901711944e+00 -4.2635561713517127e+00 -9.7236351460331005e-01 + 148 -5.1758925760643901e+00 5.9036888087723742e+00 5.9897804863834399e+00 + 149 4.2475360018696456e-01 -1.5120403153751769e+00 -7.5118946585359945e+00 + 150 -8.4723991427858021e+00 5.8591586936796105e+00 -5.7220550448276448e+00 + 151 3.4936529015452695e+00 5.3887932178421245e+00 1.6618586990386814e+00 + 152 1.8397684085289256e-01 -4.7956123656857275e-01 -2.0248730631499354e+00 + 153 1.2740119839669732e+00 -1.9562152526426315e+00 4.6010648854407039e+00 + 154 -8.1088651153479885e-01 9.4981098330247371e-01 1.5857688839887165e+00 + 155 2.9237941762953730e+00 -2.0287483220569480e+00 2.7576412015032266e+00 + 156 -1.9423484320867530e+00 7.6700165963413269e-01 9.7032907448379966e+00 + 157 -3.0301266998673473e+00 3.3988629573493685e+00 -6.0790525480057864e+00 + 158 -1.9710732697574673e+00 2.6918587726715124e+00 -1.5068617145526344e+00 + 159 2.8596379254928128e+00 6.6388605559371483e-01 1.0001582081953824e+00 + 160 -1.2599066151316147e+00 -1.6716649508563088e+00 1.4607750060249303e+00 + 161 5.2650618358415553e+00 -6.0531728072803341e+00 6.8677797616117280e+00 + 162 2.8452772301515159e+00 5.6278916247941968e-01 -4.0654825176945431e-01 + 163 2.7601000342468334e+00 -5.8880962871766469e+00 2.6779862817975615e+00 + 164 -1.9151887508495447e-01 -2.6038253331119967e+00 -1.5631763792036044e-01 + 165 -5.4308678357699263e+00 3.1890361709539787e+00 -2.4512813444078483e+00 + 166 -4.8831911953854296e-01 -2.0911382434426180e+00 1.0263989663650475e+00 + 167 2.9583081381557141e-01 1.3064497582436205e+00 1.7854366483768458e+00 + 168 6.5759007584467666e+00 -3.2841132464414158e+00 -2.5014634020295765e+00 + 169 -7.4523257690304012e-01 -3.7773029542989214e+00 -3.6767020418412721e-01 + 170 -6.1312327154342663e+00 -1.5912197837133537e+00 -1.1855962370571882e-01 + 171 -7.1437588001445965e-02 -9.3031888107187068e+00 5.2754511162511697e-01 + 172 5.4932170480545635e+00 -3.9860368619528423e+00 1.7314892119390801e+00 + 173 -1.9946430535013948e+00 1.3671229931632465e+00 -4.6232127582616149e+00 + 174 -6.8496202690001984e-01 -2.7270551316211127e+00 7.9433814991520046e+00 + 175 3.2988872027002070e+00 2.5435438106820452e+00 6.4538031712204509e+00 + 176 2.9832582841622548e+00 1.1528571177956544e+00 -1.1771929693340815e+00 + 177 -6.0727927862320792e+00 -5.9562388562178219e+00 -6.5628478152085759e+00 + 178 -4.0304268005425792e+00 2.1299026394284679e+00 2.7736841705602893e+00 + 179 -2.3362097823934898e+00 3.2446508481242033e+00 6.0973333873914299e+00 + 180 6.6121228820666635e+00 -4.7286493145040209e+00 7.0211430066607718e+00 + 181 3.4705860716775057e+00 4.1400084168420239e+00 2.5096243926437127e+00 + 182 4.2357967515729050e-01 9.2785557547273534e-01 2.5722948535958101e-01 + 183 6.9092597174730619e-01 -4.3884673023252452e+00 -4.6957721500748217e+00 + 184 -1.6865429201680540e+00 3.5369692022564840e+00 -1.8052965931311715e+00 + 185 4.3961939657667709e-01 -2.8887423850093583e+00 -5.7296796525051796e-01 + 186 3.7570134025583464e+00 5.5027352242581329e-01 1.0958464933342382e+00 + 187 4.8450622687029874e+00 8.7301037576109541e-01 -2.9627442358409946e+00 + 188 -3.0352399103260255e+00 -5.5756624285611940e+00 -3.9845128251408686e+00 + 189 -1.4986666784757705e+00 3.0715079180009308e+00 -1.9202063976752652e+00 + 190 -3.4612601703740626e+00 5.2654166486565011e+00 -2.8054760695984231e+00 + 191 9.0463322673910387e+00 -1.4402000114087514e+00 -3.3926224071546280e+00 + 192 5.8257019271111021e+00 5.7499622015090095e+00 6.1760642521047258e+00 + 193 1.4101084499624608e+00 1.7371804088545164e+00 -1.6213174412210414e+00 + 194 -5.8399142482199755e+00 -1.1232412828535212e+00 -1.1499478454746739e+00 + 195 8.7634281400136826e-01 3.3470924205892794e+00 -8.1366156642166787e-01 + 196 1.6618348954342919e+00 1.3267230795340308e+00 -4.9613186302807337e+00 + 197 -9.5068329765370507e-01 -5.8237800850819008e+00 6.4731385586130585e-01 + 198 -4.5001292021626715e-01 4.9457441409188689e+00 1.9456461634790359e+00 + 199 -4.3052102443918923e+00 -4.5636488830760849e+00 1.5724677428330582e+00 + 200 1.5449878373123116e+00 2.4590982230198688e+00 -3.1390852730039280e+00 + 201 -4.6045449943310741e+00 -3.9440808098823092e+00 -4.6700755874078261e+00 + 202 3.7147697382411032e-01 -4.8285079070955383e-01 -3.6890671668077881e+00 + 203 3.8716570366709511e+00 -7.4579362411464674e+00 2.6984541425925892e+00 + 204 -5.6224994178132013e+00 -6.2110127059235545e+00 -6.7476211894064360e+00 + 205 3.1500132936960558e-02 7.0601764306126391e+00 -2.0944606590553407e+00 + 206 -2.3637150235789921e+00 5.8159045954964084e+00 9.2704917537071352e-01 + 207 -2.6728293943632542e+00 7.5552531622542540e+00 -4.8983926692928019e+00 + 208 2.6753525054677469e+00 -5.0623527488422482e-01 7.8939421082828281e+00 + 209 5.6999696634921291e+00 4.7279269674034738e+00 -4.4920700577051562e+00 + 210 -4.9787999902374684e+00 4.0981651408695106e+00 3.2088541364653715e+00 + 211 -1.6213391901712724e+00 -4.2635561713517145e+00 -9.7236351460333603e-01 + 212 -5.1758925760643830e+00 5.9036888087723653e+00 5.9897804863834381e+00 + 213 4.2475360018697278e-01 -1.5120403153751836e+00 -7.5118946585359749e+00 + 214 -8.4723991427858589e+00 5.8591586936796665e+00 -5.7220550448277150e+00 + 215 3.4936529015452913e+00 5.3887932178421645e+00 1.6618586990387143e+00 + 216 1.8397684085288563e-01 -4.7956123656856331e-01 -2.0248730631499283e+00 + 217 1.2740119839669883e+00 -1.9562152526426537e+00 4.6010648854406986e+00 + 218 -8.1088651153480396e-01 9.4981098330248848e-01 1.5857688839887434e+00 + 219 2.9237941762953339e+00 -2.0287483220569635e+00 2.7576412015032186e+00 + 220 -1.9423484320867117e+00 7.6700165963408562e-01 9.7032907448379540e+00 + 221 -3.0301266998673344e+00 3.3988629573493538e+00 -6.0790525480057900e+00 + 222 -1.9710732697574636e+00 2.6918587726714938e+00 -1.5068617145526289e+00 + 223 2.8596379254928648e+00 6.6388605559370273e-01 1.0001582081953790e+00 + 224 -1.2599066151316045e+00 -1.6716649508562935e+00 1.4607750060249154e+00 + 225 5.2650618358415464e+00 -6.0531728072803164e+00 6.8677797616117031e+00 + 226 2.8452772301515386e+00 5.6278916247941591e-01 -4.0654825176945270e-01 + 227 2.7601000342468498e+00 -5.8880962871766611e+00 2.6779862817975961e+00 + 228 -1.9151887508490981e-01 -2.6038253331119856e+00 -1.5631763792030609e-01 + 229 -5.4308678357699511e+00 3.1890361709539934e+00 -2.4512813444078612e+00 + 230 -4.8831911953854984e-01 -2.0911382434426251e+00 1.0263989663650557e+00 + 231 2.9583081381556320e-01 1.3064497582436116e+00 1.7854366483768354e+00 + 232 6.5759007584467382e+00 -3.2841132464414193e+00 -2.5014634020295694e+00 + 233 -7.4523257690308631e-01 -3.7773029542989258e+00 -3.6767020418418467e-01 + 234 -6.1312327154342894e+00 -1.5912197837133386e+00 -1.1855962370570818e-01 + 235 -7.1437588001492872e-02 -9.3031888107186891e+00 5.2754511162502227e-01 + 236 5.4932170480545430e+00 -3.9860368619528441e+00 1.7314892119390803e+00 + 237 -1.9946430535013142e+00 1.3671229931632154e+00 -4.6232127582615608e+00 + 238 -6.8496202690009744e-01 -2.7270551316211820e+00 7.9433814991520935e+00 + 239 3.2988872027002363e+00 2.5435438106820789e+00 6.4538031712204704e+00 + 240 2.9832582841622362e+00 1.1528571177956641e+00 -1.1771929693340462e+00 + 241 -6.0727927862320854e+00 -5.9562388562178352e+00 -6.5628478152085883e+00 + 242 -4.0304268005425721e+00 2.1299026394284692e+00 2.7736841705602875e+00 + 243 -2.3362097823934374e+00 3.2446508481241776e+00 6.0973333873914353e+00 + 244 6.6121228820667399e+00 -4.7286493145040733e+00 7.0211430066608385e+00 + 245 3.4705860716774652e+00 4.1400084168420435e+00 2.5096243926437278e+00 + 246 4.2357967515728162e-01 9.2785557547273401e-01 2.5722948535957330e-01 + 247 6.9092597174729831e-01 -4.3884673023252470e+00 -4.6957721500748297e+00 + 248 -1.6865429201680422e+00 3.5369692022564601e+00 -1.8052965931311555e+00 + 249 4.3961939657668897e-01 -2.8887423850093570e+00 -5.7296796525051763e-01 + 250 3.7570134025583206e+00 5.5027352242584893e-01 1.0958464933342245e+00 + 251 4.8450622687031517e+00 8.7301037576121032e-01 -2.9627442358410292e+00 + 252 -3.0352399103261058e+00 -5.5756624285611966e+00 -3.9845128251408668e+00 + 253 -1.4986666784757416e+00 3.0715079180009628e+00 -1.9202063976753083e+00 + 254 -3.4612601703740657e+00 5.2654166486565055e+00 -2.8054760695984311e+00 + 255 9.0463322673909605e+00 -1.4402000114087883e+00 -3.3926224071546374e+00 + 256 5.8257019271111172e+00 5.7499622015090237e+00 6.1760642521047506e+00 + 257 1.4101084499624821e+00 1.7371804088545320e+00 -1.6213174412210622e+00 + 258 -5.8399142482199720e+00 -1.1232412828535363e+00 -1.1499478454746668e+00 + 259 8.7634281400131031e-01 3.3470924205892638e+00 -8.1366156642160625e-01 + 260 1.6618348954343440e+00 1.3267230795340927e+00 -4.9613186302806929e+00 + 261 -9.5068329765371196e-01 -5.8237800850819008e+00 6.4731385586131096e-01 + 262 -4.5001292021624006e-01 4.9457441409188165e+00 1.9456461634790361e+00 + 263 -4.3052102443920655e+00 -4.5636488830761079e+00 1.5724677428331033e+00 + 264 1.5449878373123045e+00 2.4590982230197711e+00 -3.1390852730039596e+00 + 265 -4.6045449943310590e+00 -3.9440808098822986e+00 -4.6700755874078190e+00 + 266 3.7147697382421191e-01 -4.8285079070938253e-01 -3.6890671668078272e+00 + 267 3.8716570366710106e+00 -7.4579362411464922e+00 2.6984541425926230e+00 + 268 -5.6224994178131089e+00 -6.2110127059234665e+00 -6.7476211894063454e+00 + 269 3.1500132936923747e-02 7.0601764306126489e+00 -2.0944606590553865e+00 + 270 -2.3637150235789854e+00 5.8159045954962343e+00 9.2704917537076525e-01 + 271 -2.6728293943632391e+00 7.5552531622541936e+00 -4.8983926692927895e+00 + 272 2.6753525054677070e+00 -5.0623527488435160e-01 7.8939421082827304e+00 + 273 5.6999696634920456e+00 4.7279269674033984e+00 -4.4920700577050825e+00 + 274 -4.9787999902374587e+00 4.0981651408695194e+00 3.2088541364653747e+00 + 275 -1.6213391901711784e+00 -4.2635561713516665e+00 -9.7236351460323123e-01 + 276 -5.1758925760643768e+00 5.9036888087723671e+00 5.9897804863834461e+00 + 277 4.2475360018693203e-01 -1.5120403153751611e+00 -7.5118946585359998e+00 + 278 -8.4723991427858163e+00 5.8591586936795723e+00 -5.7220550448276324e+00 + 279 3.4936529015452158e+00 5.3887932178421147e+00 1.6618586990386937e+00 + 280 1.8397684085290614e-01 -4.7956123656858746e-01 -2.0248730631499305e+00 + 281 1.2740119839669295e+00 -1.9562152526425904e+00 4.6010648854406897e+00 + 282 -8.1088651153478086e-01 9.4981098330250702e-01 1.5857688839887112e+00 + 283 2.9237941762954396e+00 -2.0287483220568601e+00 2.7576412015032639e+00 + 284 -1.9423484320868234e+00 7.6700165963416189e-01 9.7032907448380499e+00 + 285 -3.0301266998673673e+00 3.3988629573493960e+00 -6.0790525480057918e+00 + 286 -1.9710732697575224e+00 2.6918587726715231e+00 -1.5068617145526926e+00 + 287 2.8596379254927800e+00 6.6388605559365599e-01 1.0001582081953235e+00 + 288 -1.2599066151315834e+00 -1.6716649508562769e+00 1.4607750060248932e+00 + 289 5.2650618358415393e+00 -6.0531728072803137e+00 6.8677797616117173e+00 + 290 2.8452772301515066e+00 5.6278916247943045e-01 -4.0654825176946702e-01 + 291 2.7601000342468001e+00 -5.8880962871766300e+00 2.6779862817975353e+00 + 292 -1.9151887508495458e-01 -2.6038253331120433e+00 -1.5631763792035228e-01 + 293 -5.4308678357698943e+00 3.1890361709539579e+00 -2.4512813444078385e+00 + 294 -4.8831911953853374e-01 -2.0911382434426065e+00 1.0263989663650335e+00 + 295 2.9583081381557258e-01 1.3064497582436179e+00 1.7854366483768653e+00 + 296 6.5759007584467710e+00 -3.2841132464413874e+00 -2.5014634020295454e+00 + 297 -7.4523257690301581e-01 -3.7773029542989440e+00 -3.6767020418409979e-01 + 298 -6.1312327154342841e+00 -1.5912197837134179e+00 -1.1855962370576735e-01 + 299 -7.1437588001370414e-02 -9.3031888107186909e+00 5.2754511162517459e-01 + 300 5.4932170480544942e+00 -3.9860368619527264e+00 1.7314892119389909e+00 + 301 -1.9946430535014457e+00 1.3671229931632713e+00 -4.6232127582616096e+00 + 302 -6.8496202690010877e-01 -2.7270551316211198e+00 7.9433814991521130e+00 + 303 3.2988872027001550e+00 2.5435438106820074e+00 6.4538031712204074e+00 + 304 2.9832582841622832e+00 1.1528571177955860e+00 -1.1771929693341221e+00 + 305 -6.0727927862320188e+00 -5.9562388562177242e+00 -6.5628478152084666e+00 + 306 -4.0304268005425739e+00 2.1299026394283915e+00 2.7736841705602342e+00 + 307 -2.3362097823934587e+00 3.2446508481241976e+00 6.0973333873914486e+00 + 308 6.6121228820666698e+00 -4.7286493145040485e+00 7.0211430066607754e+00 + 309 3.4705860716773902e+00 4.1400084168419946e+00 2.5096243926436350e+00 + 310 4.2357967515730982e-01 9.2785557547277886e-01 2.5722948535960299e-01 + 311 6.9092597174732806e-01 -4.3884673023252336e+00 -4.6957721500748990e+00 + 312 -1.6865429201680846e+00 3.5369692022565031e+00 -1.8052965931312008e+00 + 313 4.3961939657667753e-01 -2.8887423850093206e+00 -5.7296796525047766e-01 + 314 3.7570134025583668e+00 5.5027352242574279e-01 1.0958464933342584e+00 + 315 4.8450622687030931e+00 8.7301037576128449e-01 -2.9627442358410239e+00 + 316 -3.0352399103260499e+00 -5.5756624285612588e+00 -3.9845128251408717e+00 + 317 -1.4986666784757807e+00 3.0715079180009188e+00 -1.9202063976752237e+00 + 318 -3.4612601703738872e+00 5.2654166486563296e+00 -2.8054760695982797e+00 + 319 9.0463322673910156e+00 -1.4402000114088058e+00 -3.3926224071547022e+00 + 320 5.8257019271111492e+00 5.7499622015090619e+00 6.1760642521047746e+00 + 321 1.4101084499624930e+00 1.7371804088545482e+00 -1.6213174412210776e+00 + 322 -5.8399142482199764e+00 -1.1232412828535339e+00 -1.1499478454746686e+00 + 323 8.7634281400132608e-01 3.3470924205892665e+00 -8.1366156642162457e-01 + 324 1.6618348954343205e+00 1.3267230795340574e+00 -4.9613186302807080e+00 + 325 -9.5068329765370641e-01 -5.8237800850818982e+00 6.4731385586130263e-01 + 326 -4.5001292021627354e-01 4.9457441409188521e+00 1.9456461634790065e+00 + 327 -4.3052102443919802e+00 -4.5636488830761017e+00 1.5724677428330862e+00 + 328 1.5449878373123684e+00 2.4590982230197573e+00 -3.1390852730039471e+00 + 329 -4.6045449943310564e+00 -3.9440808098822910e+00 -4.6700755874078128e+00 + 330 3.7147697382415185e-01 -4.8285079070942744e-01 -3.6890671668078241e+00 + 331 3.8716570366710017e+00 -7.4579362411464851e+00 2.6984541425926141e+00 + 332 -5.6224994178131533e+00 -6.2110127059235163e+00 -6.7476211894063827e+00 + 333 3.1500132936925183e-02 7.0601764306126444e+00 -2.0944606590553865e+00 + 334 -2.3637150235789504e+00 5.8159045954962405e+00 9.2704917537079212e-01 + 335 -2.6728293943632542e+00 7.5552531622542229e+00 -4.8983926692928046e+00 + 336 2.6753525054677669e+00 -5.0623527488425835e-01 7.8939421082827224e+00 + 337 5.6999696634920856e+00 4.7279269674034463e+00 -4.4920700577051269e+00 + 338 -4.9787999902374551e+00 4.0981651408695221e+00 3.2088541364653778e+00 + 339 -1.6213391901712344e+00 -4.2635561713516585e+00 -9.7236351460324666e-01 + 340 -5.1758925760643697e+00 5.9036888087723565e+00 5.9897804863834354e+00 + 341 4.2475360018693609e-01 -1.5120403153751667e+00 -7.5118946585359909e+00 + 342 -8.4723991427858785e+00 5.8591586936796265e+00 -5.7220550448277079e+00 + 343 3.4936529015452273e+00 5.3887932178421618e+00 1.6618586990387230e+00 + 344 1.8397684085289956e-01 -4.7956123656857780e-01 -2.0248730631499239e+00 + 345 1.2740119839669390e+00 -1.9562152526426062e+00 4.6010648854406764e+00 + 346 -8.1088651153478553e-01 9.4981098330252334e-01 1.5857688839887387e+00 + 347 2.9237941762953992e+00 -2.0287483220568805e+00 2.7576412015032563e+00 + 348 -1.9423484320867914e+00 7.6700165963412470e-01 9.7032907448380126e+00 + 349 -3.0301266998673508e+00 3.3988629573493823e+00 -6.0790525480057935e+00 + 350 -1.9710732697575186e+00 2.6918587726715040e+00 -1.5068617145526872e+00 + 351 2.8596379254928315e+00 6.6388605559364489e-01 1.0001582081953193e+00 + 352 -1.2599066151315763e+00 -1.6716649508562649e+00 1.4607750060248825e+00 + 353 5.2650618358415358e+00 -6.0531728072803039e+00 6.8677797616117013e+00 + 354 2.8452772301515208e+00 5.6278916247943167e-01 -4.0654825176947129e-01 + 355 2.7601000342468276e+00 -5.8880962871766460e+00 2.6779862817975841e+00 + 356 -1.9151887508491444e-01 -2.6038253331120340e+00 -1.5631763792030451e-01 + 357 -5.4308678357699245e+00 3.1890361709539801e+00 -2.4512813444078616e+00 + 358 -4.8831911953854307e-01 -2.0911382434426167e+00 1.0263989663650450e+00 + 359 2.9583081381555965e-01 1.3064497582436063e+00 1.7854366483768507e+00 + 360 6.5759007584467506e+00 -3.2841132464413922e+00 -2.5014634020295325e+00 + 361 -7.4523257690305722e-01 -3.7773029542989423e+00 -3.6767020418415286e-01 + 362 -6.1312327154343169e+00 -1.5912197837133930e+00 -1.1855962370575777e-01 + 363 -7.1437588001404595e-02 -9.3031888107186678e+00 5.2754511162509421e-01 + 364 5.4932170480544711e+00 -3.9860368619527211e+00 1.7314892119389858e+00 + 365 -1.9946430535013675e+00 1.3671229931632347e+00 -4.6232127582615679e+00 + 366 -6.8496202690018337e-01 -2.7270551316211873e+00 7.9433814991521965e+00 + 367 3.2988872027001723e+00 2.5435438106820345e+00 6.4538031712204189e+00 + 368 2.9832582841622557e+00 1.1528571177956033e+00 -1.1771929693340897e+00 + 369 -6.0727927862320215e+00 -5.9562388562177313e+00 -6.5628478152084746e+00 + 370 -4.0304268005425694e+00 2.1299026394283858e+00 2.7736841705602271e+00 + 371 -2.3362097823934023e+00 3.2446508481241731e+00 6.0973333873914468e+00 + 372 6.6121228820667550e+00 -4.7286493145041018e+00 7.0211430066608349e+00 + 373 3.4705860716773431e+00 4.1400084168420124e+00 2.5096243926436417e+00 + 374 4.2357967515730849e-01 9.2785557547278052e-01 2.5722948535960155e-01 + 375 6.9092597174731007e-01 -4.3884673023252097e+00 -4.6957721500749070e+00 + 376 -1.6865429201680713e+00 3.5369692022564734e+00 -1.8052965931311837e+00 + 377 4.3961939657668581e-01 -2.8887423850093219e+00 -5.7296796525047600e-01 + 378 3.7570134025583304e+00 5.5027352242577721e-01 1.0958464933342462e+00 + 379 4.8450622687032530e+00 8.7301037576138063e-01 -2.9627442358410687e+00 + 380 -3.0352399103261356e+00 -5.5756624285612642e+00 -3.9845128251408739e+00 + 381 -1.4986666784757519e+00 3.0715079180009477e+00 -1.9202063976752695e+00 + 382 -3.4612601703738868e+00 5.2654166486563332e+00 -2.8054760695982841e+00 + 383 9.0463322673909374e+00 -1.4402000114088291e+00 -3.3926224071546991e+00 + 384 5.8257019271111679e+00 5.7499622015090797e+00 6.1760642521048039e+00 + 385 1.4101084499624525e+00 1.7371804088545033e+00 -1.6213174412210296e+00 + 386 -5.8399142482199862e+00 -1.1232412828535530e+00 -1.1499478454746939e+00 + 387 8.7634281400133762e-01 3.3470924205892811e+00 -8.1366156642163467e-01 + 388 1.6618348954343189e+00 1.3267230795340708e+00 -4.9613186302806893e+00 + 389 -9.5068329765370574e-01 -5.8237800850818857e+00 6.4731385586130419e-01 + 390 -4.5001292021620803e-01 4.9457441409188609e+00 1.9456461634790638e+00 + 391 -4.3052102443920148e+00 -4.5636488830760928e+00 1.5724677428330669e+00 + 392 1.5449878373122630e+00 2.4590982230198328e+00 -3.1390852730039636e+00 + 393 -4.6045449943310599e+00 -3.9440808098822973e+00 -4.6700755874078190e+00 + 394 3.7147697382413564e-01 -4.8285079070951542e-01 -3.6890671668078552e+00 + 395 3.8716570366710150e+00 -7.4579362411464905e+00 2.6984541425926283e+00 + 396 -5.6224994178131684e+00 -6.2110127059235083e+00 -6.7476211894064004e+00 + 397 3.1500132936903361e-02 7.0601764306126622e+00 -2.0944606590553727e+00 + 398 -2.3637150235789628e+00 5.8159045954964084e+00 9.2704917537075482e-01 + 399 -2.6728293943632360e+00 7.5552531622541848e+00 -4.8983926692927824e+00 + 400 2.6753525054677088e+00 -5.0623527488430753e-01 7.8939421082828236e+00 + 401 5.6999696634920838e+00 4.7279269674034206e+00 -4.4920700577051109e+00 + 402 -4.9787999902374853e+00 4.0981651408695390e+00 3.2088541364653889e+00 + 403 -1.6213391901711742e+00 -4.2635561713517065e+00 -9.7236351460324078e-01 + 404 -5.1758925760643617e+00 5.9036888087723556e+00 5.9897804863834248e+00 + 405 4.2475360018695274e-01 -1.5120403153751805e+00 -7.5118946585360309e+00 + 406 -8.4723991427857683e+00 5.8591586936795927e+00 -5.7220550448276235e+00 + 407 3.4936529015452371e+00 5.3887932178421076e+00 1.6618586990386719e+00 + 408 1.8397684085291077e-01 -4.7956123656858829e-01 -2.0248730631499336e+00 + 409 1.2740119839669277e+00 -1.9562152526425909e+00 4.6010648854406906e+00 + 410 -8.1088651153479041e-01 9.4981098330248481e-01 1.5857688839886941e+00 + 411 2.9237941762953978e+00 -2.0287483220569191e+00 2.7576412015032483e+00 + 412 -1.9423484320866864e+00 7.6700165963406364e-01 9.7032907448380747e+00 + 413 -3.0301266998673588e+00 3.3988629573493836e+00 -6.0790525480057784e+00 + 414 -1.9710732697574922e+00 2.6918587726715275e+00 -1.5068617145526606e+00 + 415 2.8596379254928053e+00 6.6388605559367742e-01 1.0001582081953477e+00 + 416 -1.2599066151316127e+00 -1.6716649508563064e+00 1.4607750060249283e+00 + 417 5.2650618358415322e+00 -6.0531728072803128e+00 6.8677797616117084e+00 + 418 2.8452772301515101e+00 5.6278916247941135e-01 -4.0654825176944531e-01 + 419 2.7601000342468089e+00 -5.8880962871766425e+00 2.6779862817975424e+00 + 420 -1.9151887508494253e-01 -2.6038253331119847e+00 -1.5631763792032466e-01 + 421 -5.4308678357699103e+00 3.1890361709539627e+00 -2.4512813444078398e+00 + 422 -4.8831911953852797e-01 -2.0911382434426020e+00 1.0263989663650284e+00 + 423 2.9583081381557613e-01 1.3064497582436265e+00 1.7854366483768651e+00 + 424 6.5759007584467728e+00 -3.2841132464414398e+00 -2.5014634020296111e+00 + 425 -7.4523257690300748e-01 -3.7773029542989298e+00 -3.6767020418409530e-01 + 426 -6.1312327154343080e+00 -1.5912197837134572e+00 -1.1855962370580690e-01 + 427 -7.1437588001371552e-02 -9.3031888107186891e+00 5.2754511162517204e-01 + 428 5.4932170480545333e+00 -3.9860368619528117e+00 1.7314892119390457e+00 + 429 -1.9946430535014565e+00 1.3671229931632738e+00 -4.6232127582616211e+00 + 430 -6.8496202690002050e-01 -2.7270551316210470e+00 7.9433814991521041e+00 + 431 3.2988872027001621e+00 2.5435438106820136e+00 6.4538031712204020e+00 + 432 2.9832582841622699e+00 1.1528571177956566e+00 -1.1771929693340877e+00 + 433 -6.0727927862320508e+00 -5.9562388562177730e+00 -6.5628478152085341e+00 + 434 -4.0304268005425508e+00 2.1299026394283942e+00 2.7736841705602284e+00 + 435 -2.3362097823934858e+00 3.2446508481242029e+00 6.0973333873914832e+00 + 436 6.6121228820666458e+00 -4.7286493145039872e+00 7.0211430066607585e+00 + 437 3.4705860716774093e+00 4.1400084168420399e+00 2.5096243926437141e+00 + 438 4.2357967515730749e-01 9.2785557547275888e-01 2.5722948535959472e-01 + 439 6.9092597174730430e-01 -4.3884673023252345e+00 -4.6957721500748741e+00 + 440 -1.6865429201680737e+00 3.5369692022564805e+00 -1.8052965931311884e+00 + 441 4.3961939657667570e-01 -2.8887423850093761e+00 -5.7296796525051241e-01 + 442 3.7570134025583579e+00 5.5027352242577710e-01 1.0958464933342291e+00 + 443 4.8450622687030620e+00 8.7301037576117979e-01 -2.9627442358409883e+00 + 444 -3.0352399103260317e+00 -5.5756624285612162e+00 -3.9845128251408619e+00 + 445 -1.4986666784757814e+00 3.0715079180009548e+00 -1.9202063976752319e+00 + 446 -3.4612601703739747e+00 5.2654166486564131e+00 -2.8054760695983596e+00 + 447 9.0463322673909907e+00 -1.4402000114087794e+00 -3.3926224071546360e+00 + 448 5.8257019271111217e+00 5.7499622015090361e+00 6.1760642521047426e+00 + 449 1.4101084499624597e+00 1.7371804088545151e+00 -1.6213174412210403e+00 + 450 -5.8399142482199826e+00 -1.1232412828535623e+00 -1.1499478454747027e+00 + 451 8.7634281400135128e-01 3.3470924205892825e+00 -8.1366156642165033e-01 + 452 1.6618348954342974e+00 1.3267230795340375e+00 -4.9613186302807062e+00 + 453 -9.5068329765371173e-01 -5.8237800850818742e+00 6.4731385586130530e-01 + 454 -4.5001292021623840e-01 4.9457441409188965e+00 1.9456461634790305e+00 + 455 -4.3052102443919233e+00 -4.5636488830760875e+00 1.5724677428330425e+00 + 456 1.5449878373123287e+00 2.4590982230198164e+00 -3.1390852730039471e+00 + 457 -4.6045449943310555e+00 -3.9440808098822906e+00 -4.6700755874078110e+00 + 458 3.7147697382405820e-01 -4.8285079070957626e-01 -3.6890671668078694e+00 + 459 3.8716570366710061e+00 -7.4579362411464825e+00 2.6984541425926185e+00 + 460 -5.6224994178132075e+00 -6.2110127059235563e+00 -6.7476211894064324e+00 + 461 3.1500132936904394e-02 7.0601764306126551e+00 -2.0944606590553683e+00 + 462 -2.3637150235788997e+00 5.8159045954964208e+00 9.2704917537079956e-01 + 463 -2.6728293943632488e+00 7.5552531622542132e+00 -4.8983926692927993e+00 + 464 2.6753525054677629e+00 -5.0623527488421971e-01 7.8939421082828227e+00 + 465 5.6999696634921175e+00 4.7279269674034632e+00 -4.4920700577051491e+00 + 466 -4.9787999902374853e+00 4.0981651408695390e+00 3.2088541364653929e+00 + 467 -1.6213391901712317e+00 -4.2635561713516923e+00 -9.7236351460325832e-01 + 468 -5.1758925760643590e+00 5.9036888087723547e+00 5.9897804863834283e+00 + 469 4.2475360018695851e-01 -1.5120403153751887e+00 -7.5118946585360202e+00 + 470 -8.4723991427858198e+00 5.8591586936796345e+00 -5.7220550448276848e+00 + 471 3.4936529015452535e+00 5.3887932178421414e+00 1.6618586990386996e+00 + 472 1.8397684085290258e-01 -4.7956123656857802e-01 -2.0248730631499252e+00 + 473 1.2740119839669375e+00 -1.9562152526426058e+00 4.6010648854406782e+00 + 474 -8.1088651153479008e-01 9.4981098330248936e-01 1.5857688839887156e+00 + 475 2.9237941762953636e+00 -2.0287483220569400e+00 2.7576412015032501e+00 + 476 -1.9423484320866595e+00 7.6700165963402811e-01 9.7032907448380463e+00 + 477 -3.0301266998673562e+00 3.3988629573493827e+00 -6.0790525480057811e+00 + 478 -1.9710732697574942e+00 2.6918587726715151e+00 -1.5068617145526599e+00 + 479 2.8596379254928510e+00 6.6388605559366176e-01 1.0001582081953388e+00 + 480 -1.2599066151316027e+00 -1.6716649508562909e+00 1.4607750060249132e+00 + 481 5.2650618358415304e+00 -6.0531728072803013e+00 6.8677797616116942e+00 + 482 2.8452772301515323e+00 5.6278916247940747e-01 -4.0654825176944437e-01 + 483 2.7601000342468427e+00 -5.8880962871766620e+00 2.6779862817975988e+00 + 484 -1.9151887508489973e-01 -2.6038253331119732e+00 -1.5631763792027364e-01 + 485 -5.4308678357699458e+00 3.1890361709539921e+00 -2.4512813444078692e+00 + 486 -4.8831911953853724e-01 -2.0911382434426127e+00 1.0263989663650404e+00 + 487 2.9583081381556153e-01 1.3064497582436110e+00 1.7854366483768467e+00 + 488 6.5759007584467559e+00 -3.2841132464414446e+00 -2.5014634020295974e+00 + 489 -7.4523257690305023e-01 -3.7773029542989289e+00 -3.6767020418414947e-01 + 490 -6.1312327154343400e+00 -1.5912197837134316e+00 -1.1855962370579468e-01 + 491 -7.1437588001410285e-02 -9.3031888107186607e+00 5.2754511162508533e-01 + 492 5.4932170480545075e+00 -3.9860368619527939e+00 1.7314892119390288e+00 + 493 -1.9946430535013788e+00 1.3671229931632261e+00 -4.6232127582615652e+00 + 494 -6.8496202690009644e-01 -2.7270551316211180e+00 7.9433814991521929e+00 + 495 3.2988872027001812e+00 2.5435438106820385e+00 6.4538031712204118e+00 + 496 2.9832582841622437e+00 1.1528571177956686e+00 -1.1771929693340504e+00 + 497 -6.0727927862320561e+00 -5.9562388562177819e+00 -6.5628478152085421e+00 + 498 -4.0304268005425445e+00 2.1299026394283875e+00 2.7736841705602195e+00 + 499 -2.3362097823934316e+00 3.2446508481241807e+00 6.0973333873914815e+00 + 500 6.6121228820667195e+00 -4.7286493145040280e+00 7.0211430066608118e+00 + 501 3.4705860716773675e+00 4.1400084168420586e+00 2.5096243926437238e+00 + 502 4.2357967515730505e-01 9.2785557547276187e-01 2.5722948535959261e-01 + 503 6.9092597174729276e-01 -4.3884673023252168e+00 -4.6957721500748875e+00 + 504 -1.6865429201680671e+00 3.5369692022564592e+00 -1.8052965931311771e+00 + 505 4.3961939657668192e-01 -2.8887423850093774e+00 -5.7296796525051119e-01 + 506 3.7570134025583219e+00 5.5027352242580696e-01 1.0958464933342265e+00 + 507 4.8450622687032290e+00 8.7301037576129070e-01 -2.9627442358410261e+00 + 508 -3.0352399103261072e+00 -5.5756624285612277e+00 -3.9845128251408530e+00 + 509 -1.4986666784757479e+00 3.0715079180009810e+00 -1.9202063976752817e+00 + 510 -3.4612601703739792e+00 5.2654166486564211e+00 -2.8054760695983689e+00 + 511 9.0463322673909019e+00 -1.4402000114088067e+00 -3.3926224071546316e+00 + 512 5.8257019271111394e+00 5.7499622015090530e+00 6.1760642521047702e+00 ... diff --git a/unittest/force-styles/tests/manybody-pair-bop_save.yaml b/unittest/force-styles/tests/manybody-pair-bop_save.yaml index 77388eb6d6..a409cc6a18 100644 --- a/unittest/force-styles/tests/manybody-pair-bop_save.yaml +++ b/unittest/force-styles/tests/manybody-pair-bop_save.yaml @@ -1,7 +1,7 @@ --- -lammps_version: 8 Apr 2021 +lammps_version: 4 May 2022 tags: slow, unstable -date_generated: Wed May 5 11:50:24 2021 +date_generated: Fri May 27 17:36:37 2022 epsilon: 2e-11 prerequisites: ! | pair bop @@ -535,521 +535,521 @@ init_forces: ! |2 510 -2.2749371215520973e+00 3.3600739184147281e+00 -2.2482793489540440e+00 511 5.5276560306465985e+00 -1.7222471161905775e+00 -2.0146673282516816e+00 512 4.5674510924053244e+00 4.8005511894034880e+00 3.9347170870249073e+00 -run_vdwl: -1148.282038612608 +run_vdwl: -1148.085978939542 run_coul: 0 run_stress: ! |2- - 4.0607716458773768e+02 4.1990275279117287e+02 4.3189008174024184e+02 -1.5062607937984635e+02 2.6526098686927287e+02 9.4584979764475761e+01 + 4.0653370543801509e+02 4.2033870846285419e+02 4.3236415621179896e+02 -1.5065757455794261e+02 2.6546325857473971e+02 9.4558303537896379e+01 run_forces: ! |2 - 1 2.2069706541796388e-01 6.8504065097219424e-01 -4.7003026743895970e-01 - 2 -4.0115936231307527e+00 -2.1218205387046813e+00 -9.9827955102434096e-01 - 3 2.9684129910662155e-01 3.7262517916028939e+00 -1.0816521062552547e+00 - 4 8.1382993930066636e-02 -3.5573677522989434e-02 -3.5151985944756716e+00 - 5 -6.2695071956387849e-01 -2.7259542642215560e+00 9.9501440284676745e-01 - 6 -2.9721298245652095e-01 3.9092099179600144e+00 1.7771226768578408e+00 - 7 -2.1393366306894119e+00 -2.8262788823503495e+00 2.4444601376032611e+00 - 8 1.2252752627543042e+00 1.8934056804257413e+00 -3.0563193598572838e+00 - 9 -3.4352637419435315e+00 -3.0718102718512688e+00 -2.8741859913748353e+00 - 10 3.2090680356600215e-01 -2.0401852703167229e+00 -2.4805669123527418e+00 - 11 2.3972135113483128e+00 -5.4019275833386891e+00 2.9765689120499652e+00 - 12 -4.3059430208316893e+00 -5.2598510825764047e+00 -5.2457319921326535e+00 - 13 -2.0232603864831392e-01 4.6375969951188543e+00 -1.5156362503136191e+00 - 14 -1.8428907820177531e+00 4.1515760568266957e+00 7.9422558196288362e-01 - 15 -3.3872595206479295e-01 4.9031092798381115e+00 -2.6117752561706911e+00 - 16 2.1162867716623701e+00 -4.0907630320480304e-01 4.5499311914742053e+00 - 17 4.4932801950135799e+00 3.4906677225423097e+00 -2.2635575912914447e+00 - 18 -3.5499768941512801e+00 1.1000156547358544e+00 2.2836994301124411e+00 - 19 -1.0451125955757885e+00 -2.9706240853885748e+00 -3.1507881990096265e-01 - 20 -3.3291212370733847e+00 3.2398148659892456e+00 4.6554951367993462e+00 - 21 -1.6602702919265779e+00 -5.0302444299485305e-01 -4.3331670906647055e+00 - 22 -5.1739012326876637e+00 3.7621044694833210e+00 -3.8694108983864686e+00 - 23 2.5800462945673135e+00 3.9113827058424171e+00 1.0058282701256815e+00 - 24 1.2186619874794036e+00 1.2903429720366235e+00 -2.1812056654218557e+00 - 25 5.1708533972776105e-01 -2.2724925528178241e-01 4.0361514608963143e+00 - 26 5.5528219623799939e-02 -6.3249115106540299e-01 1.1331478048837946e+00 - 27 2.3763801964792712e+00 -1.3568111553144141e-01 1.8305254882251978e+00 - 28 -7.4479731670624405e-01 6.2631724116235110e-01 7.0917585103702665e+00 - 29 -2.7946615351838360e+00 2.6497754369023019e+00 -4.9404756163540391e+00 - 30 -1.9276104520041739e+00 3.6726001318584696e+00 -1.8895215405747063e+00 - 31 2.7496645204151502e+00 1.1798091106750743e+00 1.0381378973286883e+00 - 32 2.8838885087720789e-01 -8.4153051128336498e-01 -4.5863881665538508e-01 - 33 2.4166757309749873e+00 -4.1769572659124101e+00 4.2709577151965359e+00 - 34 2.9163676292149239e+00 1.1371300137918047e-01 2.4075146002080905e-01 - 35 1.1198725269487722e+00 -4.1834197631714796e+00 2.7042173489858361e+00 - 36 -3.3387630324068235e-01 -2.8581757312520599e+00 -3.6169899983199721e-01 - 37 -4.0590700128584567e+00 1.4771680009302546e+00 -2.0374279165464233e+00 - 38 -1.3972038958445390e+00 -1.5892380209629904e+00 1.2229478783443002e+00 - 39 1.7222082871468380e+00 4.5985338951359445e-01 1.6228250135495894e+00 - 40 4.7456372038759813e+00 -2.0011059690936865e+00 -2.3332863863915216e+00 - 41 -3.0219214453293353e-01 -3.1648775808919472e+00 -3.4512151605719299e-01 - 42 -4.3738385374526683e+00 -1.4984390331917190e+00 3.4904474570057104e-01 - 43 -2.3595429224659230e-02 -5.2158149238260405e+00 1.0420171577659396e+00 - 44 3.5666455681950779e+00 -3.5061609850861370e+00 1.5276480532892043e+00 - 45 -2.2416592732685330e+00 1.2743323477451050e+00 -3.4535947332380030e+00 - 46 -2.5063043912906469e-01 -1.6306933990280013e+00 5.6310172031723624e+00 - 47 2.3589854948440898e+00 2.5421876741753944e+00 3.1695195211974569e+00 - 48 2.2574894820169225e+00 3.6956620104200244e-01 -3.5121218711855451e-01 - 49 -5.0351003329616812e+00 -3.5764874514977381e+00 -4.2176800204027698e+00 - 50 -3.5336727643305714e+00 1.0270508441019901e+00 8.7528194493804723e-01 - 51 -1.7753604141545498e+00 2.1870380688570177e+00 4.0746694362092146e+00 - 52 4.2449410599123940e+00 -4.3834286828818527e+00 3.7646766355562638e+00 - 53 2.7078936465321761e+00 3.1295683628914337e+00 1.7445195155460467e+00 - 54 8.7327387446491855e-01 7.6772540692815150e-01 -3.2402617779280607e-01 - 55 8.1016418773722532e-01 -3.1389885601606808e+00 -3.3633443469809321e+00 - 56 -1.4278855654148919e+00 4.0286484781122356e+00 -1.9992906821384984e+00 - 57 8.6542958084556795e-02 -1.1020400457566657e+00 -3.3822209055936425e-01 - 58 3.5813121257873739e+00 -5.6151617304233592e-01 1.4119734987696821e+00 - 59 3.0606661941207842e+00 1.7089133715354605e+00 -2.8032446787135936e+00 - 60 -1.3854267730385412e+00 -4.4188316872855324e+00 -2.5380111088582060e+00 - 61 -1.6904739442047063e+00 1.8488347785921950e+00 -1.3746204703475935e+00 - 62 -2.2661772905636317e+00 3.3572261480594037e+00 -2.2464258009076628e+00 - 63 5.5268470973310295e+00 -1.7435558018609616e+00 -2.0408474603750877e+00 - 64 4.5886957877184607e+00 4.8319627526991162e+00 3.9643528671273387e+00 - 65 2.2069706541796819e-01 6.8504065097220912e-01 -4.7003026743896925e-01 - 66 -4.0115936231307687e+00 -2.1218205387046734e+00 -9.9827955102434052e-01 - 67 2.9684129910660978e-01 3.7262517916029050e+00 -1.0816521062552384e+00 - 68 8.1382993930077974e-02 -3.5573677522972448e-02 -3.5151985944756765e+00 - 69 -6.2695071956388693e-01 -2.7259542642215631e+00 9.9501440284676412e-01 - 70 -2.9721298245652655e-01 3.9092099179600175e+00 1.7771226768578361e+00 - 71 -2.1393366306893342e+00 -2.8262788823503495e+00 2.4444601376032358e+00 - 72 1.2252752627542938e+00 1.8934056804257393e+00 -3.0563193598572895e+00 - 73 -3.4352637419435372e+00 -3.0718102718512790e+00 -2.8741859913748460e+00 - 74 3.2090680356598111e-01 -2.0401852703167536e+00 -2.4805669123527228e+00 - 75 2.3972135113482707e+00 -5.4019275833386740e+00 2.9765689120499244e+00 - 76 -4.3059430208317364e+00 -5.2598510825764526e+00 -5.2457319921326837e+00 - 77 -2.0232603864827342e-01 4.6375969951188312e+00 -1.5156362503135774e+00 - 78 -1.8428907820177838e+00 4.1515760568267348e+00 7.9422558196283433e-01 - 79 -3.3872595206480938e-01 4.9031092798381408e+00 -2.6117752561707013e+00 - 80 2.1162867716624736e+00 -4.0907630320472643e-01 4.5499311914741627e+00 - 81 4.4932801950136092e+00 3.4906677225423564e+00 -2.2635575912914865e+00 - 82 -3.5499768941512739e+00 1.1000156547358537e+00 2.2836994301124487e+00 - 83 -1.0451125955758018e+00 -2.9706240853885846e+00 -3.1507881990097875e-01 - 84 -3.3291212370733967e+00 3.2398148659892572e+00 4.6554951367993542e+00 - 85 -1.6602702919265730e+00 -5.0302444299485383e-01 -4.3331670906647073e+00 - 86 -5.1739012326876539e+00 3.7621044694833152e+00 -3.8694108983864619e+00 - 87 2.5800462945673321e+00 3.9113827058424304e+00 1.0058282701256924e+00 - 88 1.2186619874794191e+00 1.2903429720366129e+00 -2.1812056654218557e+00 - 89 5.1708533972772752e-01 -2.2724925528175152e-01 4.0361514608963196e+00 - 90 5.5528219623802180e-02 -6.3249115106539855e-01 1.1331478048837915e+00 - 91 2.3763801964791704e+00 -1.3568111553144696e-01 1.8305254882252111e+00 - 92 -7.4479731670623583e-01 6.2631724116234322e-01 7.0917585103702789e+00 - 93 -2.7946615351838333e+00 2.6497754369022855e+00 -4.9404756163540302e+00 - 94 -1.9276104520041852e+00 3.6726001318584620e+00 -1.8895215405747192e+00 - 95 2.7496645204152230e+00 1.1798091106750874e+00 1.0381378973287085e+00 - 96 2.8838885087721455e-01 -8.4153051128334944e-01 -4.5863881665539175e-01 - 97 2.4166757309749753e+00 -4.1769572659123906e+00 4.2709577151965137e+00 - 98 2.9163676292149106e+00 1.1371300137918533e-01 2.4075146002079389e-01 - 99 1.1198725269487790e+00 -4.1834197631714831e+00 2.7042173489858383e+00 - 100 -3.3387630324070899e-01 -2.8581757312520559e+00 -3.6169899983198323e-01 - 101 -4.0590700128584585e+00 1.4771680009302592e+00 -2.0374279165464273e+00 - 102 -1.3972038958445472e+00 -1.5892380209629957e+00 1.2229478783443182e+00 - 103 1.7222082871468471e+00 4.5985338951359389e-01 1.6228250135495899e+00 - 104 4.7456372038760062e+00 -2.0011059690936932e+00 -2.3332863863915208e+00 - 105 -3.0219214453292503e-01 -3.1648775808919218e+00 -3.4512151605718006e-01 - 106 -4.3738385374526878e+00 -1.4984390331917365e+00 3.4904474570056404e-01 - 107 -2.3595429224655809e-02 -5.2158149238260734e+00 1.0420171577659341e+00 - 108 3.5666455681952103e+00 -3.5061609850861259e+00 1.5276480532892367e+00 - 109 -2.2416592732686169e+00 1.2743323477450963e+00 -3.4535947332380101e+00 - 110 -2.5063043912905558e-01 -1.6306933990280170e+00 5.6310172031723704e+00 - 111 2.3589854948441089e+00 2.5421876741754099e+00 3.1695195211974729e+00 - 112 2.2574894820168732e+00 3.6956620104201315e-01 -3.5121218711858404e-01 - 113 -5.0351003329616457e+00 -3.5764874514977296e+00 -4.2176800204027822e+00 - 114 -3.5336727643305612e+00 1.0270508441019932e+00 8.7528194493802980e-01 - 115 -1.7753604141545398e+00 2.1870380688570323e+00 4.0746694362092191e+00 - 116 4.2449410599123807e+00 -4.3834286828818456e+00 3.7646766355562535e+00 - 117 2.7078936465321530e+00 3.1295683628914439e+00 1.7445195155460547e+00 - 118 8.7327387446490479e-01 7.6772540692814195e-01 -3.2402617779281701e-01 - 119 8.1016418773726873e-01 -3.1389885601607035e+00 -3.3633443469809379e+00 - 120 -1.4278855654148834e+00 4.0286484781122365e+00 -1.9992906821384921e+00 - 121 8.6542958084561361e-02 -1.1020400457566630e+00 -3.3822209055936658e-01 - 122 3.5813121257873619e+00 -5.6151617304233381e-01 1.4119734987696921e+00 - 123 3.0606661941208451e+00 1.7089133715354738e+00 -2.8032446787136314e+00 - 124 -1.3854267730385910e+00 -4.4188316872855555e+00 -2.5380111088582140e+00 - 125 -1.6904739442046883e+00 1.8488347785921939e+00 -1.3746204703476019e+00 - 126 -2.2661772905636428e+00 3.3572261480594063e+00 -2.2464258009076707e+00 - 127 5.5268470973310269e+00 -1.7435558018609683e+00 -2.0408474603750935e+00 - 128 4.5886957877184660e+00 4.8319627526991473e+00 3.9643528671273507e+00 - 129 2.2069706541797016e-01 6.8504065097220879e-01 -4.7003026743897031e-01 - 130 -4.0115936231307545e+00 -2.1218205387046774e+00 -9.9827955102434029e-01 - 131 2.9684129910662832e-01 3.7262517916029032e+00 -1.0816521062552653e+00 - 132 8.1382993930064915e-02 -3.5573677522977583e-02 -3.5151985944756676e+00 - 133 -6.2695071956387305e-01 -2.7259542642215586e+00 9.9501440284676268e-01 - 134 -2.9721298245652084e-01 3.9092099179600148e+00 1.7771226768578388e+00 - 135 -2.1393366306894110e+00 -2.8262788823503509e+00 2.4444601376032611e+00 - 136 1.2252752627543320e+00 1.8934056804256958e+00 -3.0563193598572895e+00 - 137 -3.4352637419435204e+00 -3.0718102718512599e+00 -2.8741859913748296e+00 - 138 3.2090680356600421e-01 -2.0401852703166861e+00 -2.4805669123527521e+00 - 139 2.3972135113483071e+00 -5.4019275833386908e+00 2.9765689120499732e+00 - 140 -4.3059430208317151e+00 -5.2598510825764251e+00 -5.2457319921326651e+00 - 141 -2.0232603864833151e-01 4.6375969951188551e+00 -1.5156362503136349e+00 - 142 -1.8428907820177429e+00 4.1515760568266726e+00 7.9422558196288195e-01 - 143 -3.3872595206479300e-01 4.9031092798381231e+00 -2.6117752561706946e+00 - 144 2.1162867716623657e+00 -4.0907630320476768e-01 4.5499311914742577e+00 - 145 4.4932801950135950e+00 3.4906677225423155e+00 -2.2635575912914421e+00 - 146 -3.5499768941512975e+00 1.1000156547358841e+00 2.2836994301124527e+00 - 147 -1.0451125955757994e+00 -2.9706240853885535e+00 -3.1507881990094722e-01 - 148 -3.3291212370734145e+00 3.2398148659892740e+00 4.6554951367993631e+00 - 149 -1.6602702919265679e+00 -5.0302444299487636e-01 -4.3331670906647126e+00 - 150 -5.1739012326876566e+00 3.7621044694833303e+00 -3.8694108983864757e+00 - 151 2.5800462945673113e+00 3.9113827058424002e+00 1.0058282701256753e+00 - 152 1.2186619874794138e+00 1.2903429720366129e+00 -2.1812056654218486e+00 - 153 5.1708533972770687e-01 -2.2724925528171916e-01 4.0361514608963169e+00 - 154 5.5528219623780462e-02 -6.3249115106538389e-01 1.1331478048837897e+00 - 155 2.3763801964792948e+00 -1.3568111553147827e-01 1.8305254882251900e+00 - 156 -7.4479731670623550e-01 6.2631724116235243e-01 7.0917585103702718e+00 - 157 -2.7946615351838284e+00 2.6497754369022903e+00 -4.9404756163540497e+00 - 158 -1.9276104520041843e+00 3.6726001318584816e+00 -1.8895215405747190e+00 - 159 2.7496645204151537e+00 1.1798091106750430e+00 1.0381378973286741e+00 - 160 2.8838885087720562e-01 -8.4153051128334488e-01 -4.5863881665538292e-01 - 161 2.4166757309749971e+00 -4.1769572659124279e+00 4.2709577151965528e+00 - 162 2.9163676292149221e+00 1.1371300137917556e-01 2.4075146002081926e-01 - 163 1.1198725269487704e+00 -4.1834197631714725e+00 2.7042173489858419e+00 - 164 -3.3387630324067230e-01 -2.8581757312520399e+00 -3.6169899983198373e-01 - 165 -4.0590700128584549e+00 1.4771680009302548e+00 -2.0374279165464242e+00 - 166 -1.3972038958445503e+00 -1.5892380209629917e+00 1.2229478783443049e+00 - 167 1.7222082871468414e+00 4.5985338951358495e-01 1.6228250135495910e+00 - 168 4.7456372038760000e+00 -2.0011059690937412e+00 -2.3332863863915572e+00 - 169 -3.0219214453292764e-01 -3.1648775808919631e+00 -3.4512151605719948e-01 - 170 -4.3738385374526203e+00 -1.4984390331916571e+00 3.4904474570061345e-01 - 171 -2.3595429224668379e-02 -5.2158149238260263e+00 1.0420171577659338e+00 - 172 3.5666455681950744e+00 -3.5061609850861055e+00 1.5276480532891945e+00 - 173 -2.2416592732685294e+00 1.2743323477451018e+00 -3.4535947332379942e+00 - 174 -2.5063043912912020e-01 -1.6306933990281038e+00 5.6310172031723082e+00 - 175 2.3589854948440974e+00 2.5421876741754068e+00 3.1695195211974556e+00 - 176 2.2574894820169185e+00 3.6956620104199356e-01 -3.5121218711856128e-01 - 177 -5.0351003329616919e+00 -3.5764874514977327e+00 -4.2176800204027627e+00 - 178 -3.5336727643305541e+00 1.0270508441020134e+00 8.7528194493807898e-01 - 179 -1.7753604141545791e+00 2.1870380688570679e+00 4.0746694362092475e+00 - 180 4.2449410599123940e+00 -4.3834286828818456e+00 3.7646766355562638e+00 - 181 2.7078936465321841e+00 3.1295683628914128e+00 1.7445195155460405e+00 - 182 8.7327387446490778e-01 7.6772540692813296e-01 -3.2402617779282272e-01 - 183 8.1016418773725840e-01 -3.1389885601608025e+00 -3.3633443469809117e+00 - 184 -1.4278855654148874e+00 4.0286484781122418e+00 -1.9992906821384864e+00 - 185 8.6542958084555810e-02 -1.1020400457566488e+00 -3.3822209055936331e-01 - 186 3.5813121257873899e+00 -5.6151617304226631e-01 1.4119734987696575e+00 - 187 3.0606661941208060e+00 1.7089133715354359e+00 -2.8032446787136203e+00 - 188 -1.3854267730385068e+00 -4.4188316872855200e+00 -2.5380111088581576e+00 - 189 -1.6904739442047096e+00 1.8488347785921984e+00 -1.3746204703476179e+00 - 190 -2.2661772905636401e+00 3.3572261480593943e+00 -2.2464258009076730e+00 - 191 5.5268470973310437e+00 -1.7435558018609418e+00 -2.0408474603750744e+00 - 192 4.5886957877184242e+00 4.8319627526991029e+00 3.9643528671273085e+00 - 193 2.2069706541797257e-01 6.8504065097221956e-01 -4.7003026743897658e-01 - 194 -4.0115936231307678e+00 -2.1218205387046702e+00 -9.9827955102433918e-01 - 195 2.9684129910662271e-01 3.7262517916029125e+00 -1.0816521062552538e+00 - 196 8.1382993930076294e-02 -3.5573677522958265e-02 -3.5151985944756707e+00 - 197 -6.2695071956388182e-01 -2.7259542642215626e+00 9.9501440284675990e-01 - 198 -2.9721298245652805e-01 3.9092099179600188e+00 1.7771226768578356e+00 - 199 -2.1393366306893302e+00 -2.8262788823503477e+00 2.4444601376032313e+00 - 200 1.2252752627543146e+00 1.8934056804256987e+00 -3.0563193598573068e+00 - 201 -3.4352637419435266e+00 -3.0718102718512736e+00 -2.8741859913748398e+00 - 202 3.2090680356599371e-01 -2.0401852703167211e+00 -2.4805669123527156e+00 - 203 2.3972135113482680e+00 -5.4019275833386802e+00 2.9765689120499337e+00 - 204 -4.3059430208317613e+00 -5.2598510825764695e+00 -5.2457319921326944e+00 - 205 -2.0232603864829354e-01 4.6375969951188338e+00 -1.5156362503135945e+00 - 206 -1.8428907820177813e+00 4.1515760568267162e+00 7.9422558196281756e-01 - 207 -3.3872595206481426e-01 4.9031092798381586e+00 -2.6117752561707119e+00 - 208 2.1162867716624718e+00 -4.0907630320468791e-01 4.5499311914742151e+00 - 209 4.4932801950136279e+00 3.4906677225423635e+00 -2.2635575912914878e+00 - 210 -3.5499768941512886e+00 1.1000156547358813e+00 2.2836994301124611e+00 - 211 -1.0451125955758147e+00 -2.9706240853885610e+00 -3.1507881990096293e-01 - 212 -3.3291212370734238e+00 3.2398148659892878e+00 4.6554951367993693e+00 - 213 -1.6602702919265648e+00 -5.0302444299487847e-01 -4.3331670906647108e+00 - 214 -5.1739012326876468e+00 3.7621044694833254e+00 -3.8694108983864703e+00 - 215 2.5800462945673317e+00 3.9113827058424122e+00 1.0058282701256864e+00 - 216 1.2186619874794311e+00 1.2903429720366013e+00 -2.1812056654218535e+00 - 217 5.1708533972766846e-01 -2.2724925528168946e-01 4.0361514608963196e+00 - 218 5.5528219623788490e-02 -6.3249115106538056e-01 1.1331478048837924e+00 - 219 2.3763801964791940e+00 -1.3568111553149587e-01 1.8305254882252089e+00 - 220 -7.4479731670622606e-01 6.2631724116234322e-01 7.0917585103702887e+00 - 221 -2.7946615351838302e+00 2.6497754369022801e+00 -4.9404756163540391e+00 - 222 -1.9276104520042008e+00 3.6726001318584740e+00 -1.8895215405747330e+00 - 223 2.7496645204152319e+00 1.1798091106750590e+00 1.0381378973286974e+00 - 224 2.8838885087721700e-01 -8.4153051128332768e-01 -4.5863881665539608e-01 - 225 2.4166757309749807e+00 -4.1769572659124004e+00 4.2709577151965235e+00 - 226 2.9163676292149070e+00 1.1371300137917927e-01 2.4075146002080447e-01 - 227 1.1198725269487768e+00 -4.1834197631714760e+00 2.7042173489858441e+00 - 228 -3.3387630324070566e-01 -2.8581757312520439e+00 -3.6169899983197878e-01 - 229 -4.0590700128584567e+00 1.4771680009302595e+00 -2.0374279165464277e+00 - 230 -1.3972038958445552e+00 -1.5892380209629935e+00 1.2229478783443208e+00 - 231 1.7222082871468489e+00 4.5985338951358373e-01 1.6228250135495903e+00 - 232 4.7456372038760311e+00 -2.0011059690937398e+00 -2.3332863863915465e+00 - 233 -3.0219214453292259e-01 -3.1648775808919369e+00 -3.4512151605718677e-01 - 234 -4.3738385374526416e+00 -1.4984390331916755e+00 3.4904474570060623e-01 - 235 -2.3595429224662654e-02 -5.2158149238260574e+00 1.0420171577659318e+00 - 236 3.5666455681952125e+00 -3.5061609850860989e+00 1.5276480532892287e+00 - 237 -2.2416592732686125e+00 1.2743323477450939e+00 -3.4535947332380013e+00 - 238 -2.5063043912911293e-01 -1.6306933990281149e+00 5.6310172031723180e+00 - 239 2.3589854948441142e+00 2.5421876741754192e+00 3.1695195211974720e+00 - 240 2.2574894820168705e+00 3.6956620104200660e-01 -3.5121218711858965e-01 - 241 -5.0351003329616537e+00 -3.5764874514977270e+00 -4.2176800204027769e+00 - 242 -3.5336727643305532e+00 1.0270508441020201e+00 8.7528194493806333e-01 - 243 -1.7753604141545702e+00 2.1870380688570807e+00 4.0746694362092573e+00 - 244 4.2449410599123789e+00 -4.3834286828818376e+00 3.7646766355562513e+00 - 245 2.7078936465321632e+00 3.1295683628914222e+00 1.7445195155460478e+00 - 246 8.7327387446489713e-01 7.6772540692812541e-01 -3.2402617779283199e-01 - 247 8.1016418773729493e-01 -3.1389885601608345e+00 -3.3633443469809090e+00 - 248 -1.4278855654148732e+00 4.0286484781122391e+00 -1.9992906821384748e+00 - 249 8.6542958084561653e-02 -1.1020400457566464e+00 -3.3822209055936525e-01 - 250 3.5813121257873770e+00 -5.6151617304225387e-01 1.4119734987696599e+00 - 251 3.0606661941208659e+00 1.7089133715354510e+00 -2.8032446787136567e+00 - 252 -1.3854267730385641e+00 -4.4188316872855458e+00 -2.5380111088581714e+00 - 253 -1.6904739442046899e+00 1.8488347785921966e+00 -1.3746204703476279e+00 - 254 -2.2661772905636504e+00 3.3572261480593952e+00 -2.2464258009076814e+00 - 255 5.5268470973310402e+00 -1.7435558018609474e+00 -2.0408474603750806e+00 - 256 4.5886957877184305e+00 4.8319627526991367e+00 3.9643528671273285e+00 - 257 2.2069706541795950e-01 6.8504065097218869e-01 -4.7003026743895610e-01 - 258 -4.0115936231307510e+00 -2.1218205387046849e+00 -9.9827955102435095e-01 - 259 2.9684129910662382e-01 3.7262517916029005e+00 -1.0816521062552633e+00 - 260 8.1382993930067704e-02 -3.5573677522989407e-02 -3.5151985944756468e+00 - 261 -6.2695071956386683e-01 -2.7259542642215449e+00 9.9501440284675535e-01 - 262 -2.9721298245652056e-01 3.9092099179600162e+00 1.7771226768578341e+00 - 263 -2.1393366306894177e+00 -2.8262788823503620e+00 2.4444601376032922e+00 - 264 1.2252752627542955e+00 1.8934056804257171e+00 -3.0563193598572829e+00 - 265 -3.4352637419435412e+00 -3.0718102718512759e+00 -2.8741859913748469e+00 - 266 3.2090680356599988e-01 -2.0401852703167251e+00 -2.4805669123527676e+00 - 267 2.3972135113482911e+00 -5.4019275833386953e+00 2.9765689120499421e+00 - 268 -4.3059430208316689e+00 -5.2598510825763967e+00 -5.2457319921326473e+00 - 269 -2.0232603864830292e-01 4.6375969951188649e+00 -1.5156362503135969e+00 - 270 -1.8428907820177696e+00 4.1515760568267233e+00 7.9422558196288684e-01 - 271 -3.3872595206475870e-01 4.9031092798380849e+00 -2.6117752561706160e+00 - 272 2.1162867716623714e+00 -4.0907630320482452e-01 4.5499311914741813e+00 - 273 4.4932801950135710e+00 3.4906677225423062e+00 -2.2635575912914434e+00 - 274 -3.5499768941512722e+00 1.1000156547358613e+00 2.2836994301124474e+00 - 275 -1.0451125955757994e+00 -2.9706240853885806e+00 -3.1507881990096065e-01 - 276 -3.3291212370733985e+00 3.2398148659892505e+00 4.6554951367993604e+00 - 277 -1.6602702919265782e+00 -5.0302444299485227e-01 -4.3331670906647064e+00 - 278 -5.1739012326877027e+00 3.7621044694833312e+00 -3.8694108983864908e+00 - 279 2.5800462945673277e+00 3.9113827058424118e+00 1.0058282701257071e+00 - 280 1.2186619874794087e+00 1.2903429720366195e+00 -2.1812056654218517e+00 - 281 5.1708533972776816e-01 -2.2724925528178760e-01 4.0361514608963054e+00 - 282 5.5528219623796962e-02 -6.3249115106540654e-01 1.1331478048837642e+00 - 283 2.3763801964792592e+00 -1.3568111553142109e-01 1.8305254882251945e+00 - 284 -7.4479731670625093e-01 6.2631724116234289e-01 7.0917585103703207e+00 - 285 -2.7946615351838298e+00 2.6497754369023023e+00 -4.9404756163540196e+00 - 286 -1.9276104520041655e+00 3.6726001318584709e+00 -1.8895215405746977e+00 - 287 2.7496645204151489e+00 1.1798091106750759e+00 1.0381378973286892e+00 - 288 2.8838885087721156e-01 -8.4153051128335987e-01 -4.5863881665538175e-01 - 289 2.4166757309749642e+00 -4.1769572659123702e+00 4.2709577151964977e+00 - 290 2.9163676292149106e+00 1.1371300137917861e-01 2.4075146002081471e-01 - 291 1.1198725269487630e+00 -4.1834197631714796e+00 2.7042173489858201e+00 - 292 -3.3387630324067030e-01 -2.8581757312520510e+00 -3.6169899983200149e-01 - 293 -4.0590700128584514e+00 1.4771680009302361e+00 -2.0374279165464073e+00 - 294 -1.3972038958445367e+00 -1.5892380209629922e+00 1.2229478783443035e+00 - 295 1.7222082871468409e+00 4.5985338951359545e-01 1.6228250135495998e+00 - 296 4.7456372038759742e+00 -2.0011059690936954e+00 -2.3332863863915265e+00 - 297 -3.0219214453293974e-01 -3.1648775808919387e+00 -3.4512151605719826e-01 - 298 -4.3738385374526549e+00 -1.4984390331917208e+00 3.4904474570055544e-01 - 299 -2.3595429224524022e-02 -5.2158149238260458e+00 1.0420171577660298e+00 - 300 3.5666455681951028e+00 -3.5061609850861579e+00 1.5276480532892593e+00 - 301 -2.2416592732685787e+00 1.2743323477451685e+00 -3.4535947332380652e+00 - 302 -2.5063043912908722e-01 -1.6306933990280201e+00 5.6310172031723980e+00 - 303 2.3589854948440219e+00 2.5421876741753469e+00 3.1695195211973655e+00 - 304 2.2574894820168985e+00 3.6956620104200411e-01 -3.5121218711853169e-01 - 305 -5.0351003329616608e+00 -3.5764874514977105e+00 -4.2176800204027334e+00 - 306 -3.5336727643305612e+00 1.0270508441019646e+00 8.7528194493803491e-01 - 307 -1.7753604141545543e+00 2.1870380688570088e+00 4.0746694362092146e+00 - 308 4.2449410599124109e+00 -4.3834286828818856e+00 3.7646766355563068e+00 - 309 2.7078936465321526e+00 3.1295683628914150e+00 1.7445195155460047e+00 - 310 8.7327387446492655e-01 7.6772540692816349e-01 -3.2402617779278775e-01 - 311 8.1016418773722509e-01 -3.1389885601606804e+00 -3.3633443469808970e+00 - 312 -1.4278855654148712e+00 4.0286484781122223e+00 -1.9992906821384726e+00 - 313 8.6542958084541710e-02 -1.1020400457566728e+00 -3.3822209055940211e-01 - 314 3.5813121257873544e+00 -5.6151617304232226e-01 1.4119734987696428e+00 - 315 3.0606661941207829e+00 1.7089133715354525e+00 -2.8032446787137033e+00 - 316 -1.3854267730385401e+00 -4.4188316872855236e+00 -2.5380111088582056e+00 - 317 -1.6904739442046786e+00 1.8488347785921777e+00 -1.3746204703475302e+00 - 318 -2.2661772905635900e+00 3.3572261480593659e+00 -2.2464258009076215e+00 - 319 5.5268470973310126e+00 -1.7435558018608883e+00 -2.0408474603750251e+00 - 320 4.5886957877184447e+00 4.8319627526991313e+00 3.9643528671273356e+00 - 321 2.2069706541796461e-01 6.8504065097220423e-01 -4.7003026743896670e-01 - 322 -4.0115936231307687e+00 -2.1218205387046756e+00 -9.9827955102434740e-01 - 323 2.9684129910661305e-01 3.7262517916029116e+00 -1.0816521062552500e+00 - 324 8.1382993930087022e-02 -3.5573677522965488e-02 -3.5151985944756472e+00 - 325 -6.2695071956387505e-01 -2.7259542642215546e+00 9.9501440284675335e-01 - 326 -2.9721298245652472e-01 3.9092099179600184e+00 1.7771226768578299e+00 - 327 -2.1393366306893453e+00 -2.8262788823503602e+00 2.4444601376032646e+00 - 328 1.2252752627542776e+00 1.8934056804257120e+00 -3.0563193598572980e+00 - 329 -3.4352637419435452e+00 -3.0718102718512852e+00 -2.8741859913748549e+00 - 330 3.2090680356598333e-01 -2.0401852703167540e+00 -2.4805669123527450e+00 - 331 2.3972135113482511e+00 -5.4019275833386802e+00 2.9765689120499013e+00 - 332 -4.3059430208317107e+00 -5.2598510825764366e+00 -5.2457319921326730e+00 - 333 -2.0232603864826401e-01 4.6375969951188374e+00 -1.5156362503135590e+00 - 334 -1.8428907820178062e+00 4.1515760568267597e+00 7.9422558196284432e-01 - 335 -3.3872595206477341e-01 4.9031092798381133e+00 -2.6117752561706280e+00 - 336 2.1162867716624745e+00 -4.0907630320475385e-01 4.5499311914741325e+00 - 337 4.4932801950136048e+00 3.4906677225423564e+00 -2.2635575912914869e+00 - 338 -3.5499768941512673e+00 1.1000156547358557e+00 2.2836994301124514e+00 - 339 -1.0451125955758145e+00 -2.9706240853885810e+00 -3.1507881990097597e-01 - 340 -3.3291212370734091e+00 3.2398148659892634e+00 4.6554951367993676e+00 - 341 -1.6602702919265708e+00 -5.0302444299485727e-01 -4.3331670906647055e+00 - 342 -5.1739012326876948e+00 3.7621044694833405e+00 -3.8694108983864934e+00 - 343 2.5800462945673437e+00 3.9113827058424198e+00 1.0058282701257135e+00 - 344 1.2186619874794211e+00 1.2903429720366129e+00 -2.1812056654218535e+00 - 345 5.1708533972772974e-01 -2.2724925528175427e-01 4.0361514608963116e+00 - 346 5.5528219623807308e-02 -6.3249115106540355e-01 1.1331478048837684e+00 - 347 2.3763801964791611e+00 -1.3568111553142059e-01 1.8305254882252080e+00 - 348 -7.4479731670624560e-01 6.2631724116233867e-01 7.0917585103703304e+00 - 349 -2.7946615351838258e+00 2.6497754369022872e+00 -4.9404756163540107e+00 - 350 -1.9276104520041804e+00 3.6726001318584616e+00 -1.8895215405747143e+00 - 351 2.7496645204152212e+00 1.1798091106750888e+00 1.0381378973287108e+00 - 352 2.8838885087721855e-01 -8.4153051128334244e-01 -4.5863881665538886e-01 - 353 2.4166757309749531e+00 -4.1769572659123497e+00 4.2709577151964746e+00 - 354 2.9163676292148990e+00 1.1371300137918280e-01 2.4075146002080219e-01 - 355 1.1198725269487693e+00 -4.1834197631714796e+00 2.7042173489858197e+00 - 356 -3.3387630324069922e-01 -2.8581757312520502e+00 -3.6169899983199522e-01 - 357 -4.0590700128584558e+00 1.4771680009302395e+00 -2.0374279165464109e+00 - 358 -1.3972038958445405e+00 -1.5892380209629930e+00 1.2229478783443177e+00 - 359 1.7222082871468514e+00 4.5985338951359567e-01 1.6228250135495981e+00 - 360 4.7456372038760009e+00 -2.0011059690936985e+00 -2.3332863863915203e+00 - 361 -3.0219214453292959e-01 -3.1648775808919178e+00 -3.4512151605718333e-01 - 362 -4.3738385374526789e+00 -1.4984390331917412e+00 3.4904474570054739e-01 - 363 -2.3595429224526020e-02 -5.2158149238260805e+00 1.0420171577660184e+00 - 364 3.5666455681952325e+00 -3.5061609850861495e+00 1.5276480532892898e+00 - 365 -2.2416592732686591e+00 1.2743323477451618e+00 -3.4535947332380719e+00 - 366 -2.5063043912908695e-01 -1.6306933990280372e+00 5.6310172031724122e+00 - 367 2.3589854948440454e+00 2.5421876741753655e+00 3.1695195211973877e+00 - 368 2.2574894820168550e+00 3.6956620104201510e-01 -3.5121218711855912e-01 - 369 -5.0351003329616244e+00 -3.5764874514977043e+00 -4.2176800204027485e+00 - 370 -3.5336727643305563e+00 1.0270508441019661e+00 8.7528194493800981e-01 - 371 -1.7753604141545436e+00 2.1870380688570190e+00 4.0746694362092262e+00 - 372 4.2449410599124038e+00 -4.3834286828818847e+00 3.7646766355563064e+00 - 373 2.7078936465321273e+00 3.1295683628914359e+00 1.7445195155460174e+00 - 374 8.7327387446491589e-01 7.6772540692815416e-01 -3.2402617779279774e-01 - 375 8.1016418773725907e-01 -3.1389885601607097e+00 -3.3633443469808988e+00 - 376 -1.4278855654148637e+00 4.0286484781122240e+00 -1.9992906821384671e+00 - 377 8.6542958084548427e-02 -1.1020400457566699e+00 -3.3822209055940633e-01 - 378 3.5813121257873468e+00 -5.6151617304231294e-01 1.4119734987696477e+00 - 379 3.0606661941208517e+00 1.7089133715354750e+00 -2.8032446787137393e+00 - 380 -1.3854267730385890e+00 -4.4188316872855422e+00 -2.5380111088582140e+00 - 381 -1.6904739442046597e+00 1.8488347785921742e+00 -1.3746204703475413e+00 - 382 -2.2661772905636015e+00 3.3572261480593704e+00 -2.2464258009076317e+00 - 383 5.5268470973310064e+00 -1.7435558018608961e+00 -2.0408474603750344e+00 - 384 4.5886957877184473e+00 4.8319627526991615e+00 3.9643528671273440e+00 - 385 2.2069706541796574e-01 6.8504065097220357e-01 -4.7003026743896748e-01 - 386 -4.0115936231307554e+00 -2.1218205387046800e+00 -9.9827955102434718e-01 - 387 2.9684129910663370e-01 3.7262517916029134e+00 -1.0816521062552793e+00 - 388 8.1382993930071632e-02 -3.5573677522972282e-02 -3.5151985944756428e+00 - 389 -6.2695071956386306e-01 -2.7259542642215520e+00 9.9501440284675191e-01 - 390 -2.9721298245652045e-01 3.9092099179600188e+00 1.7771226768578334e+00 - 391 -2.1393366306894133e+00 -2.8262788823503597e+00 2.4444601376032886e+00 - 392 1.2252752627543220e+00 1.8934056804256691e+00 -3.0563193598572966e+00 - 393 -3.4352637419435381e+00 -3.0718102718512745e+00 -2.8741859913748469e+00 - 394 3.2090680356599965e-01 -2.0401852703166901e+00 -2.4805669123527738e+00 - 395 2.3972135113482924e+00 -5.4019275833387059e+00 2.9765689120499550e+00 - 396 -4.3059430208317000e+00 -5.2598510825764180e+00 -5.2457319921326606e+00 - 397 -2.0232603864831816e-01 4.6375969951188791e+00 -1.5156362503136123e+00 - 398 -1.8428907820177574e+00 4.1515760568267002e+00 7.9422558196289239e-01 - 399 -3.3872595206475659e-01 4.9031092798380964e+00 -2.6117752561706191e+00 - 400 2.1162867716623746e+00 -4.0907630320478661e-01 4.5499311914742329e+00 - 401 4.4932801950135861e+00 3.4906677225423146e+00 -2.2635575912914474e+00 - 402 -3.5499768941512930e+00 1.1000156547358921e+00 2.2836994301124585e+00 - 403 -1.0451125955758152e+00 -2.9706240853885579e+00 -3.1507881990094821e-01 - 404 -3.3291212370734269e+00 3.2398148659892798e+00 4.6554951367993782e+00 - 405 -1.6602702919265688e+00 -5.0302444299487736e-01 -4.3331670906647126e+00 - 406 -5.1739012326876903e+00 3.7621044694833454e+00 -3.8694108983865001e+00 - 407 2.5800462945673281e+00 3.9113827058423949e+00 1.0058282701257060e+00 - 408 1.2186619874794165e+00 1.2903429720366129e+00 -2.1812056654218455e+00 - 409 5.1708533972771120e-01 -2.2724925528172302e-01 4.0361514608963116e+00 - 410 5.5528219623785194e-02 -6.3249115106539078e-01 1.1331478048837604e+00 - 411 2.3763801964792828e+00 -1.3568111553145581e-01 1.8305254882251898e+00 - 412 -7.4479731670624660e-01 6.2631724116234833e-01 7.0917585103703242e+00 - 413 -2.7946615351838231e+00 2.6497754369022926e+00 -4.9404756163540275e+00 - 414 -1.9276104520041766e+00 3.6726001318584816e+00 -1.8895215405747110e+00 - 415 2.7496645204151515e+00 1.1798091106750437e+00 1.0381378973286739e+00 - 416 2.8838885087720939e-01 -8.4153051128334011e-01 -4.5863881665538303e-01 - 417 2.4166757309749674e+00 -4.1769572659123835e+00 4.2709577151965066e+00 - 418 2.9163676292149079e+00 1.1371300137917027e-01 2.4075146002082637e-01 - 419 1.1198725269487606e+00 -4.1834197631714751e+00 2.7042173489858241e+00 - 420 -3.3387630324066614e-01 -2.8581757312520404e+00 -3.6169899983199694e-01 - 421 -4.0590700128584505e+00 1.4771680009302361e+00 -2.0374279165464078e+00 - 422 -1.3972038958445459e+00 -1.5892380209629926e+00 1.2229478783443071e+00 - 423 1.7222082871468458e+00 4.5985338951358662e-01 1.6228250135496034e+00 - 424 4.7456372038760000e+00 -2.0011059690937394e+00 -2.3332863863915549e+00 - 425 -3.0219214453293625e-01 -3.1648775808919538e+00 -3.4512151605720665e-01 - 426 -4.3738385374526114e+00 -1.4984390331916562e+00 3.4904474570060040e-01 - 427 -2.3595429224533726e-02 -5.2158149238260352e+00 1.0420171577660287e+00 - 428 3.5666455681950890e+00 -3.5061609850861308e+00 1.5276480532892425e+00 - 429 -2.2416592732685685e+00 1.2743323477451673e+00 -3.4535947332380612e+00 - 430 -2.5063043912915178e-01 -1.6306933990281269e+00 5.6310172031723464e+00 - 431 2.3589854948440290e+00 2.5421876741753557e+00 3.1695195211973681e+00 - 432 2.2574894820169003e+00 3.6956620104200233e-01 -3.5121218711853208e-01 - 433 -5.0351003329616697e+00 -3.5764874514977065e+00 -4.2176800204027272e+00 - 434 -3.5336727643305452e+00 1.0270508441019932e+00 8.7528194493806688e-01 - 435 -1.7753604141545827e+00 2.1870380688570616e+00 4.0746694362092484e+00 - 436 4.2449410599124047e+00 -4.3834286828818838e+00 3.7646766355563019e+00 - 437 2.7078936465321637e+00 3.1295683628913982e+00 1.7445195155460003e+00 - 438 8.7327387446491422e-01 7.6772540692814106e-01 -3.2402617779280735e-01 - 439 8.1016418773725163e-01 -3.1389885601608056e+00 -3.3633443469808784e+00 - 440 -1.4278855654148579e+00 4.0286484781122276e+00 -1.9992906821384531e+00 - 441 8.6542958084542529e-02 -1.1020400457566568e+00 -3.3822209055939995e-01 - 442 3.5813121257873655e+00 -5.6151617304224299e-01 1.4119734987696129e+00 - 443 3.0606661941208109e+00 1.7089133715354334e+00 -2.8032446787137379e+00 - 444 -1.3854267730385008e+00 -4.4188316872855031e+00 -2.5380111088581505e+00 - 445 -1.6904739442046797e+00 1.8488347785921757e+00 -1.3746204703475602e+00 - 446 -2.2661772905636011e+00 3.3572261480593544e+00 -2.2464258009076348e+00 - 447 5.5268470973310260e+00 -1.7435558018608623e+00 -2.0408474603750131e+00 - 448 4.5886957877184003e+00 4.8319627526991118e+00 3.9643528671272996e+00 - 449 2.2069706541796852e-01 6.8504065097221456e-01 -4.7003026743897436e-01 - 450 -4.0115936231307696e+00 -2.1218205387046729e+00 -9.9827955102434629e-01 - 451 2.9684129910662371e-01 3.7262517916029192e+00 -1.0816521062552638e+00 - 452 8.1382993930086509e-02 -3.5573677522951652e-02 -3.5151985944756450e+00 - 453 -6.2695071956387238e-01 -2.7259542642215568e+00 9.9501440284675036e-01 - 454 -2.9721298245652444e-01 3.9092099179600224e+00 1.7771226768578305e+00 - 455 -2.1393366306893413e+00 -2.8262788823503588e+00 2.4444601376032624e+00 - 456 1.2252752627543024e+00 1.8934056804256718e+00 -3.0563193598573175e+00 - 457 -3.4352637419435341e+00 -3.0718102718512781e+00 -2.8741859913748464e+00 - 458 3.2090680356598733e-01 -2.0401852703167274e+00 -2.4805669123527503e+00 - 459 2.3972135113482471e+00 -5.4019275833386891e+00 2.9765689120499119e+00 - 460 -4.3059430208317444e+00 -5.2598510825764615e+00 -5.2457319921326926e+00 - 461 -2.0232603864828436e-01 4.6375969951188374e+00 -1.5156362503135770e+00 - 462 -1.8428907820177900e+00 4.1515760568267490e+00 7.9422558196283399e-01 - 463 -3.3872595206477474e-01 4.9031092798381248e+00 -2.6117752561706324e+00 - 464 2.1162867716624758e+00 -4.0907630320470723e-01 4.5499311914741929e+00 - 465 4.4932801950136181e+00 3.4906677225423626e+00 -2.2635575912914887e+00 - 466 -3.5499768941512819e+00 1.1000156547358853e+00 2.2836994301124642e+00 - 467 -1.0451125955758329e+00 -2.9706240853885633e+00 -3.1507881990096492e-01 - 468 -3.3291212370734353e+00 3.2398148659892936e+00 4.6554951367993826e+00 - 469 -1.6602702919265626e+00 -5.0302444299488103e-01 -4.3331670906647117e+00 - 470 -5.1739012326876859e+00 3.7621044694833503e+00 -3.8694108983865023e+00 - 471 2.5800462945673459e+00 3.9113827058424060e+00 1.0058282701257162e+00 - 472 1.2186619874794307e+00 1.2903429720366022e+00 -2.1812056654218517e+00 - 473 5.1708533972767157e-01 -2.2724925528168982e-01 4.0361514608963143e+00 - 474 5.5528219623792355e-02 -6.3249115106538600e-01 1.1331478048837658e+00 - 475 2.3763801964791811e+00 -1.3568111553147227e-01 1.8305254882252029e+00 - 476 -7.4479731670624161e-01 6.2631724116234400e-01 7.0917585103703358e+00 - 477 -2.7946615351838213e+00 2.6497754369022792e+00 -4.9404756163540204e+00 - 478 -1.9276104520041930e+00 3.6726001318584767e+00 -1.8895215405747254e+00 - 479 2.7496645204152288e+00 1.1798091106750601e+00 1.0381378973286983e+00 - 480 2.8838885087722121e-01 -8.4153051128332101e-01 -4.5863881665539363e-01 - 481 2.4166757309749540e+00 -4.1769572659123604e+00 4.2709577151964826e+00 - 482 2.9163676292148981e+00 1.1371300137917660e-01 2.4075146002081080e-01 - 483 1.1198725269487668e+00 -4.1834197631714760e+00 2.7042173489858259e+00 - 484 -3.3387630324069478e-01 -2.8581757312520364e+00 -3.6169899983198450e-01 - 485 -4.0590700128584523e+00 1.4771680009302415e+00 -2.0374279165464131e+00 - 486 -1.3972038958445470e+00 -1.5892380209629930e+00 1.2229478783443222e+00 - 487 1.7222082871468545e+00 4.5985338951358645e-01 1.6228250135496032e+00 - 488 4.7456372038760231e+00 -2.0011059690937474e+00 -2.3332863863915501e+00 - 489 -3.0219214453292886e-01 -3.1648775808919329e+00 -3.4512151605719138e-01 - 490 -4.3738385374526327e+00 -1.4984390331916750e+00 3.4904474570059174e-01 - 491 -2.3595429224533331e-02 -5.2158149238260680e+00 1.0420171577660218e+00 - 492 3.5666455681952343e+00 -3.5061609850861215e+00 1.5276480532892851e+00 - 493 -2.2416592732686493e+00 1.2743323477451605e+00 -3.4535947332380661e+00 - 494 -2.5063043912913913e-01 -1.6306933990281340e+00 5.6310172031723518e+00 - 495 2.3589854948440525e+00 2.5421876741753771e+00 3.1695195211973832e+00 - 496 2.2574894820168483e+00 3.6956620104200572e-01 -3.5121218711856717e-01 - 497 -5.0351003329616368e+00 -3.5764874514977008e+00 -4.2176800204027414e+00 - 498 -3.5336727643305421e+00 1.0270508441019970e+00 8.7528194493804667e-01 - 499 -1.7753604141545754e+00 2.1870380688570714e+00 4.0746694362092608e+00 - 500 4.2449410599123993e+00 -4.3834286828818803e+00 3.7646766355563002e+00 - 501 2.7078936465321397e+00 3.1295683628914097e+00 1.7445195155460125e+00 - 502 8.7327387446490479e-01 7.6772540692813085e-01 -3.2402617779281712e-01 - 503 8.1016418773728660e-01 -3.1389885601608358e+00 -3.3633443469808784e+00 - 504 -1.4278855654148510e+00 4.0286484781122276e+00 -1.9992906821384473e+00 - 505 8.6542958084548566e-02 -1.1020400457566535e+00 -3.3822209055940355e-01 - 506 3.5813121257873570e+00 -5.6151617304223689e-01 1.4119734987696160e+00 - 507 3.0606661941208650e+00 1.7089133715354412e+00 -2.8032446787137681e+00 - 508 -1.3854267730385632e+00 -4.4188316872855333e+00 -2.5380111088581714e+00 - 509 -1.6904739442046626e+00 1.8488347785921746e+00 -1.3746204703475671e+00 - 510 -2.2661772905636153e+00 3.3572261480593624e+00 -2.2464258009076454e+00 - 511 5.5268470973310224e+00 -1.7435558018608679e+00 -2.0408474603750189e+00 - 512 4.5886957877184127e+00 4.8319627526991518e+00 3.9643528671273245e+00 + 1 2.2065977620733823e-01 6.8508757018167898e-01 -4.7014971045392834e-01 + 2 -4.0124462717250839e+00 -2.1228312063765733e+00 -9.9897973861188283e-01 + 3 2.9685852583506717e-01 3.7266566877035148e+00 -1.0818658724311632e+00 + 4 8.1961211837120795e-02 -3.5570651112582063e-02 -3.5157302537620492e+00 + 5 -6.2728373866267073e-01 -2.7267744726566687e+00 9.9537775326668565e-01 + 6 -2.9603014594591437e-01 3.9112521689299560e+00 1.7782799262643807e+00 + 7 -2.1400291579006030e+00 -2.8265998306349855e+00 2.4454803567748606e+00 + 8 1.2252665174715598e+00 1.8937900711273328e+00 -3.0560489361858383e+00 + 9 -3.4366253701592160e+00 -3.0728708291251841e+00 -2.8755624856904287e+00 + 10 3.2113319900004017e-01 -2.0408399212555910e+00 -2.4817036798308094e+00 + 11 2.3993994751634742e+00 -5.4038696805398185e+00 2.9783868115053305e+00 + 12 -4.3087336411254045e+00 -5.2637599316271890e+00 -5.2480326020519099e+00 + 13 -2.0320550196331832e-01 4.6412772506323901e+00 -1.5157732877070105e+00 + 14 -1.8439832209648992e+00 4.1540210600591978e+00 7.9344962175590128e-01 + 15 -3.4057213913446360e-01 4.9061723967337816e+00 -2.6145747014412271e+00 + 16 2.1164541985651750e+00 -4.0729732248048311e-01 4.5537682682394198e+00 + 17 4.4954272557720110e+00 3.4922366648719638e+00 -2.2646334656811025e+00 + 18 -3.5506395759279483e+00 1.1009362664654250e+00 2.2848749119147880e+00 + 19 -1.0456337863134406e+00 -2.9724235443270648e+00 -3.1554579860703169e-01 + 20 -3.3313433991320456e+00 3.2426197185600354e+00 4.6572151933457757e+00 + 21 -1.6604128078447267e+00 -5.0401667704388187e-01 -4.3340028890967739e+00 + 22 -5.1780999254441662e+00 3.7656370977861480e+00 -3.8736456354976978e+00 + 23 2.5810691560850296e+00 3.9129419455686310e+00 1.0071952222896108e+00 + 24 1.2189893770300371e+00 1.2902271765990232e+00 -2.1816564738551740e+00 + 25 5.1717608355200118e-01 -2.2766313967227761e-01 4.0357834558791748e+00 + 26 5.5837971079115853e-02 -6.3312910436400516e-01 1.1338376610212455e+00 + 27 2.3776569282085838e+00 -1.3713335058520987e-01 1.8320253886114752e+00 + 28 -7.4605155753871388e-01 6.2639691169773104e-01 7.0950844496935170e+00 + 29 -2.7959006485060733e+00 2.6518449844717753e+00 -4.9418005822869659e+00 + 30 -1.9284812027028364e+00 3.6728996905807461e+00 -1.8903320575690421e+00 + 31 2.7501847555635224e+00 1.1800402620831711e+00 1.0386547735831302e+00 + 32 2.8874286555417883e-01 -8.4184451809623728e-01 -4.5827458970090051e-01 + 33 2.4177527590723296e+00 -4.1799340496126538e+00 4.2734972725104496e+00 + 34 2.9163123188810798e+00 1.1372045084901194e-01 2.4063982964448699e-01 + 35 1.1211713580663796e+00 -4.1852692109665224e+00 2.7055107929805744e+00 + 36 -3.3366806196511511e-01 -2.8592865937324241e+00 -3.6174665813781992e-01 + 37 -4.0598737192925629e+00 1.4790701200934750e+00 -2.0390573716466114e+00 + 38 -1.3972933493773498e+00 -1.5890688842928011e+00 1.2229127903290464e+00 + 39 1.7226829337464571e+00 4.6041363206313723e-01 1.6231271754939940e+00 + 40 4.7487429565043131e+00 -2.0032508711704504e+00 -2.3351656873697735e+00 + 41 -3.0211988899794873e-01 -3.1647229185551078e+00 -3.4484252242803659e-01 + 42 -4.3757968924703796e+00 -1.4988492973802408e+00 3.4848185514124802e-01 + 43 -2.3376048805867390e-02 -5.2171266030795751e+00 1.0422526834227199e+00 + 44 3.5686225189826812e+00 -3.5083544149657571e+00 1.5296762770587249e+00 + 45 -2.2429190678755098e+00 1.2762137613260987e+00 -3.4561335371333506e+00 + 46 -2.5249858397832398e-01 -1.6311993993014708e+00 5.6327007942433953e+00 + 47 2.3600434001454800e+00 2.5432001280052963e+00 3.1710184050148387e+00 + 48 2.2569424883932574e+00 3.6974145225970140e-01 -3.5079037684111325e-01 + 49 -5.0373146177377670e+00 -3.5792639981389867e+00 -4.2214396499888958e+00 + 50 -3.5333518619269704e+00 1.0268969392472456e+00 8.7615872588377397e-01 + 51 -1.7772253346150806e+00 2.1897240981816273e+00 4.0771383097941207e+00 + 52 4.2488265275528541e+00 -4.3879293775874428e+00 3.7692331388491089e+00 + 53 2.7105634024928702e+00 3.1321616846328704e+00 1.7466641233894777e+00 + 54 8.7345045914397412e-01 7.6780961728566233e-01 -3.2428866998030409e-01 + 55 8.1222707163562391e-01 -3.1415725783562616e+00 -3.3658388474832908e+00 + 56 -1.4293980095456800e+00 4.0300936576663196e+00 -2.0006489138695476e+00 + 57 8.6574115148983888e-02 -1.1025347346522771e+00 -3.3832826272726713e-01 + 58 3.5829961754217270e+00 -5.6274174997305004e-01 1.4127528025967375e+00 + 59 3.0632055304618659e+00 1.7103486318850951e+00 -2.8047593712683239e+00 + 60 -1.3875136436687734e+00 -4.4223159472758020e+00 -2.5405244604650332e+00 + 61 -1.6911573920575165e+00 1.8495318348477738e+00 -1.3750758436991020e+00 + 62 -2.2677591075287817e+00 3.3580212813414767e+00 -2.2471871608771177e+00 + 63 5.5289268843361006e+00 -1.7453255640698171e+00 -2.0435451118905243e+00 + 64 4.5908794739248782e+00 4.8343851592710259e+00 3.9665064357692694e+00 + 65 2.2065977620732435e-01 6.8508757018165423e-01 -4.7014971045390386e-01 + 66 -4.0124462717250653e+00 -2.1228312063765440e+00 -9.9897973861186662e-01 + 67 2.9685852583505751e-01 3.7266566877035321e+00 -1.0818658724311438e+00 + 68 8.1961211837130621e-02 -3.5570651112557666e-02 -3.5157302537620594e+00 + 69 -6.2728373866269138e-01 -2.7267744726566736e+00 9.9537775326669231e-01 + 70 -2.9603014594596749e-01 3.9112521689299400e+00 1.7782799262643512e+00 + 71 -2.1400291579005106e+00 -2.8265998306349669e+00 2.4454803567748207e+00 + 72 1.2252665174715947e+00 1.8937900711272986e+00 -3.0560489361858294e+00 + 73 -3.4366253701592071e+00 -3.0728708291251849e+00 -2.8755624856904229e+00 + 74 3.2113319899987847e-01 -2.0408399212556789e+00 -2.4817036798308600e+00 + 75 2.3993994751634551e+00 -5.4038696805398221e+00 2.9783868115053167e+00 + 76 -4.3087336411254489e+00 -5.2637599316272494e+00 -5.2480326020519472e+00 + 77 -2.0320550196332379e-01 4.6412772506323696e+00 -1.5157732877070116e+00 + 78 -1.8439832209647342e+00 4.1540210600592307e+00 7.9344962175599554e-01 + 79 -3.4057213913449891e-01 4.9061723967338429e+00 -2.6145747014412852e+00 + 80 2.1164541985652741e+00 -4.0729732248037820e-01 4.5537682682393807e+00 + 81 4.4954272557720483e+00 3.4922366648720153e+00 -2.2646334656811526e+00 + 82 -3.5506395759279634e+00 1.1009362664654385e+00 2.2848749119147871e+00 + 83 -1.0456337863134775e+00 -2.9724235443270559e+00 -3.1554579860706039e-01 + 84 -3.3313433991320669e+00 3.2426197185600620e+00 4.6572151933457944e+00 + 85 -1.6604128078447038e+00 -5.0401667704390396e-01 -4.3340028890967668e+00 + 86 -5.1780999254441715e+00 3.7656370977861551e+00 -3.8736456354977027e+00 + 87 2.5810691560850523e+00 3.9129419455686567e+00 1.0071952222896203e+00 + 88 1.2189893770300828e+00 1.2902271765989952e+00 -2.1816564738551678e+00 + 89 5.1717608355196276e-01 -2.2766313967224597e-01 4.0357834558791783e+00 + 90 5.5837971079057566e-02 -6.3312910436398295e-01 1.1338376610212304e+00 + 91 2.3776569282084887e+00 -1.3713335058521431e-01 1.8320253886114886e+00 + 92 -7.4605155753866548e-01 6.2639691169766998e-01 7.0950844496934851e+00 + 93 -2.7959006485060511e+00 2.6518449844717504e+00 -4.9418005822869606e+00 + 94 -1.9284812027027982e+00 3.6728996905807318e+00 -1.8903320575690112e+00 + 95 2.7501847555635877e+00 1.1800402620831729e+00 1.0386547735831460e+00 + 96 2.8874286555416040e-01 -8.4184451809625471e-01 -4.5827458970087132e-01 + 97 2.4177527590722883e+00 -4.1799340496126005e+00 4.2734972725103830e+00 + 98 2.9163123188810642e+00 1.1372045084901788e-01 2.4063982964447964e-01 + 99 1.1211713580663827e+00 -4.1852692109665268e+00 2.7055107929805726e+00 + 100 -3.3366806196512105e-01 -2.8592865937324192e+00 -3.6174665813781948e-01 + 101 -4.0598737192925762e+00 1.4790701200934706e+00 -2.0390573716466149e+00 + 102 -1.3972933493773390e+00 -1.5890688842927938e+00 1.2229127903290575e+00 + 103 1.7226829337464682e+00 4.6041363206313601e-01 1.6231271754939924e+00 + 104 4.7487429565043344e+00 -2.0032508711704624e+00 -2.3351656873697602e+00 + 105 -3.0211988899794467e-01 -3.1647229185550834e+00 -3.4484252242802793e-01 + 106 -4.3757968924704223e+00 -1.4988492973802650e+00 3.4848185514121544e-01 + 107 -2.3376048805824369e-02 -5.2171266030795724e+00 1.0422526834227595e+00 + 108 3.5686225189826546e+00 -3.5083544149656913e+00 1.5296762770586798e+00 + 109 -2.2429190678755635e+00 1.2762137613261069e+00 -3.4561335371333839e+00 + 110 -2.5249858397827396e-01 -1.6311993993014295e+00 5.6327007942433740e+00 + 111 2.3600434001454698e+00 2.5432001280052896e+00 3.1710184050148222e+00 + 112 2.2569424883932276e+00 3.6974145225970800e-01 -3.5079037684111525e-01 + 113 -5.0373146177377075e+00 -3.5792639981389738e+00 -4.2214396499888753e+00 + 114 -3.5333518619269451e+00 1.0268969392472418e+00 8.7615872588378296e-01 + 115 -1.7772253346151046e+00 2.1897240981816353e+00 4.0771383097941207e+00 + 116 4.2488265275528576e+00 -4.3879293775874464e+00 3.7692331388491169e+00 + 117 2.7105634024928436e+00 3.1321616846328593e+00 1.7466641233894660e+00 + 118 8.7345045914395758e-01 7.6780961728565911e-01 -3.2428866998030798e-01 + 119 8.1222707163570795e-01 -3.1415725783562989e+00 -3.3658388474833179e+00 + 120 -1.4293980095456700e+00 4.0300936576663116e+00 -2.0006489138695445e+00 + 121 8.6574115149026409e-02 -1.1025347346522691e+00 -3.3832826272724698e-01 + 122 3.5829961754217070e+00 -5.6274174997306403e-01 1.4127528025967464e+00 + 123 3.0632055304618984e+00 1.7103486318850667e+00 -2.8047593712683141e+00 + 124 -1.3875136436688347e+00 -4.4223159472757931e+00 -2.5405244604650492e+00 + 125 -1.6911573920575489e+00 1.8495318348477723e+00 -1.3750758436991293e+00 + 126 -2.2677591075287968e+00 3.3580212813414940e+00 -2.2471871608771297e+00 + 127 5.5289268843360615e+00 -1.7453255640697956e+00 -2.0435451118904822e+00 + 128 4.5908794739248808e+00 4.8343851592710294e+00 3.9665064357692685e+00 + 129 2.2065977620733399e-01 6.8508757018167454e-01 -4.7014971045393039e-01 + 130 -4.0124462717250617e+00 -2.1228312063765644e+00 -9.9897973861187095e-01 + 131 2.9685852583505956e-01 3.7266566877035285e+00 -1.0818658724311603e+00 + 132 8.1961211837090445e-02 -3.5570651112592298e-02 -3.5157302537620549e+00 + 133 -6.2728373866266207e-01 -2.7267744726566501e+00 9.9537775326668165e-01 + 134 -2.9603014594592447e-01 3.9112521689299351e+00 1.7782799262643756e+00 + 135 -2.1400291579006119e+00 -2.8265998306350260e+00 2.4454803567748762e+00 + 136 1.2252665174715807e+00 1.8937900711273210e+00 -3.0560489361858236e+00 + 137 -3.4366253701592004e+00 -3.0728708291251836e+00 -2.8755624856904256e+00 + 138 3.2113319900006487e-01 -2.0408399212555270e+00 -2.4817036798308107e+00 + 139 2.3993994751634760e+00 -5.4038696805398221e+00 2.9783868115053194e+00 + 140 -4.3087336411253938e+00 -5.2637599316271855e+00 -5.2480326020518921e+00 + 141 -2.0320550196332093e-01 4.6412772506323847e+00 -1.5157732877070242e+00 + 142 -1.8439832209649119e+00 4.1540210600591259e+00 7.9344962175592482e-01 + 143 -3.4057213913447748e-01 4.9061723967338047e+00 -2.6145747014412515e+00 + 144 2.1164541985650991e+00 -4.0729732248055028e-01 4.5537682682394323e+00 + 145 4.4954272557720785e+00 3.4922366648720087e+00 -2.2646334656811336e+00 + 146 -3.5506395759279696e+00 1.1009362664654632e+00 2.2848749119148124e+00 + 147 -1.0456337863134513e+00 -2.9724235443270421e+00 -3.1554579860704091e-01 + 148 -3.3313433991320207e+00 3.2426197185600190e+00 4.6572151933457686e+00 + 149 -1.6604128078446929e+00 -5.0401667704393449e-01 -4.3340028890967801e+00 + 150 -5.1780999254441360e+00 3.7656370977861120e+00 -3.8736456354976614e+00 + 151 2.5810691560850336e+00 3.9129419455686074e+00 1.0071952222896006e+00 + 152 1.2189893770300262e+00 1.2902271765990314e+00 -2.1816564738551665e+00 + 153 5.1717608355199707e-01 -2.2766313967227483e-01 4.0357834558791748e+00 + 154 5.5837971079133963e-02 -6.3312910436398928e-01 1.1338376610212486e+00 + 155 2.3776569282086086e+00 -1.3713335058519083e-01 1.8320253886114819e+00 + 156 -7.4605155753865993e-01 6.2639691169766987e-01 7.0950844496935401e+00 + 157 -2.7959006485061026e+00 2.6518449844718162e+00 -4.9418005822869784e+00 + 158 -1.9284812027028533e+00 3.6728996905807429e+00 -1.8903320575690574e+00 + 159 2.7501847555635144e+00 1.1800402620831889e+00 1.0386547735831377e+00 + 160 2.8874286555417567e-01 -8.4184451809624117e-01 -4.5827458970091001e-01 + 161 2.4177527590723455e+00 -4.1799340496126893e+00 4.2734972725104754e+00 + 162 2.9163123188810771e+00 1.1372045084902060e-01 2.4063982964448416e-01 + 163 1.1211713580663814e+00 -4.1852692109665393e+00 2.7055107929805637e+00 + 164 -3.3366806196511456e-01 -2.8592865937323801e+00 -3.6174665813781581e-01 + 165 -4.0598737192925674e+00 1.4790701200934642e+00 -2.0390573716466025e+00 + 166 -1.3972933493773418e+00 -1.5890688842927947e+00 1.2229127903290475e+00 + 167 1.7226829337464684e+00 4.6041363206314684e-01 1.6231271754940000e+00 + 168 4.7487429565043175e+00 -2.0032508711704686e+00 -2.3351656873697832e+00 + 169 -3.0211988899796099e-01 -3.1647229185550936e+00 -3.4484252242803343e-01 + 170 -4.3757968924703894e+00 -1.4988492973802519e+00 3.4848185514123003e-01 + 171 -2.3376048805854945e-02 -5.2171266030795884e+00 1.0422526834227401e+00 + 172 3.5686225189826550e+00 -3.5083544149657140e+00 1.5296762770587022e+00 + 173 -2.2429190678755266e+00 1.2762137613261175e+00 -3.4561335371333590e+00 + 174 -2.5249858397830222e-01 -1.6311993993014464e+00 5.6327007942433953e+00 + 175 2.3600434001454755e+00 2.5432001280052940e+00 3.1710184050148360e+00 + 176 2.2569424883932507e+00 3.6974145225968996e-01 -3.5079037684110964e-01 + 177 -5.0373146177377981e+00 -3.5792639981390417e+00 -4.2214396499889411e+00 + 178 -3.5333518619269650e+00 1.0268969392472225e+00 8.7615872588376031e-01 + 179 -1.7772253346150948e+00 2.1897240981816073e+00 4.0771383097941376e+00 + 180 4.2488265275528398e+00 -4.3879293775873567e+00 3.7692331388490872e+00 + 181 2.7105634024928884e+00 3.1321616846329201e+00 1.7466641233895275e+00 + 182 8.7345045914397823e-01 7.6780961728569319e-01 -3.2428866998029959e-01 + 183 8.1222707163561303e-01 -3.1415725783563042e+00 -3.3658388474832615e+00 + 184 -1.4293980095456353e+00 4.0300936576662263e+00 -2.0006489138695152e+00 + 185 8.6574115148984901e-02 -1.1025347346522825e+00 -3.3832826272727029e-01 + 186 3.5829961754216990e+00 -5.6274174997292847e-01 1.4127528025966907e+00 + 187 3.0632055304618695e+00 1.7103486318851024e+00 -2.8047593712682977e+00 + 188 -1.3875136436688005e+00 -4.4223159472758375e+00 -2.5405244604650630e+00 + 189 -1.6911573920574956e+00 1.8495318348477674e+00 -1.3750758436991164e+00 + 190 -2.2677591075288310e+00 3.3580212813414985e+00 -2.2471871608771572e+00 + 191 5.5289268843360695e+00 -1.7453255640698218e+00 -2.0435451118905417e+00 + 192 4.5908794739248941e+00 4.8343851592710472e+00 3.9665064357693018e+00 + 193 2.2065977620732177e-01 6.8508757018165101e-01 -4.7014971045390719e-01 + 194 -4.0124462717250502e+00 -2.1228312063765382e+00 -9.9897973861185496e-01 + 195 2.9685852583505262e-01 3.7266566877035454e+00 -1.0818658724311427e+00 + 196 8.1961211837097786e-02 -3.5570651112571475e-02 -3.5157302537620616e+00 + 197 -6.2728373866267539e-01 -2.7267744726566523e+00 9.9537775326668376e-01 + 198 -2.9603014594597088e-01 3.9112521689299240e+00 1.7782799262643507e+00 + 199 -2.1400291579005177e+00 -2.8265998306349993e+00 2.4454803567748304e+00 + 200 1.2252665174716113e+00 1.8937900711272890e+00 -3.0560489361858205e+00 + 201 -3.4366253701591956e+00 -3.0728708291251809e+00 -2.8755624856904198e+00 + 202 3.2113319899990000e-01 -2.0408399212556190e+00 -2.4817036798308507e+00 + 203 2.3993994751634578e+00 -5.4038696805398194e+00 2.9783868115053100e+00 + 204 -4.3087336411254391e+00 -5.2637599316272476e+00 -5.2480326020519348e+00 + 205 -2.0320550196332396e-01 4.6412772506323590e+00 -1.5157732877070236e+00 + 206 -1.8439832209647438e+00 4.1540210600591623e+00 7.9344962175601397e-01 + 207 -3.4057213913451267e-01 4.9061723967338668e+00 -2.6145747014413105e+00 + 208 2.1164541985652097e+00 -4.0729732248044204e-01 4.5537682682393914e+00 + 209 4.4954272557721220e+00 3.4922366648720633e+00 -2.2646334656811820e+00 + 210 -3.5506395759279887e+00 1.1009362664654772e+00 2.2848749119148128e+00 + 211 -1.0456337863134837e+00 -2.9724235443270404e+00 -3.1554579860706405e-01 + 212 -3.3313433991320491e+00 3.2426197185600505e+00 4.6572151933457935e+00 + 213 -1.6604128078446749e+00 -5.0401667704395470e-01 -4.3340028890967774e+00 + 214 -5.1780999254441440e+00 3.7656370977861240e+00 -3.8736456354976729e+00 + 215 2.5810691560850549e+00 3.9129419455686381e+00 1.0071952222896086e+00 + 216 1.2189893770300753e+00 1.2902271765990028e+00 -2.1816564738551638e+00 + 217 5.1717608355195643e-01 -2.2766313967224022e-01 4.0357834558791765e+00 + 218 5.5837971079070015e-02 -6.3312910436396785e-01 1.1338376610212360e+00 + 219 2.3776569282085069e+00 -1.3713335058519693e-01 1.8320253886115079e+00 + 220 -7.4605155753861085e-01 6.2639691169761247e-01 7.0950844496935002e+00 + 221 -2.7959006485060791e+00 2.6518449844717868e+00 -4.9418005822869757e+00 + 222 -1.9284812027028138e+00 3.6728996905807301e+00 -1.8903320575690223e+00 + 223 2.7501847555635788e+00 1.1800402620831882e+00 1.0386547735831531e+00 + 224 2.8874286555415263e-01 -8.4184451809625616e-01 -4.5827458970088164e-01 + 225 2.4177527590723056e+00 -4.1799340496126334e+00 4.2734972725104114e+00 + 226 2.9163123188810651e+00 1.1372045084902660e-01 2.4063982964447489e-01 + 227 1.1211713580663849e+00 -4.1852692109665455e+00 2.7055107929805615e+00 + 228 -3.3366806196511983e-01 -2.8592865937323739e+00 -3.6174665813781320e-01 + 229 -4.0598737192925798e+00 1.4790701200934622e+00 -2.0390573716466074e+00 + 230 -1.3972933493773356e+00 -1.5890688842927925e+00 1.2229127903290635e+00 + 231 1.7226829337464800e+00 4.6041363206314612e-01 1.6231271754940013e+00 + 232 4.7487429565043344e+00 -2.0032508711704855e+00 -2.3351656873697806e+00 + 233 -3.0211988899795655e-01 -3.1647229185550732e+00 -3.4484252242802338e-01 + 234 -4.3757968924704258e+00 -1.4988492973802843e+00 3.4848185514119656e-01 + 235 -2.3376048805818568e-02 -5.2171266030795858e+00 1.0422526834227763e+00 + 236 3.5686225189826279e+00 -3.5083544149656456e+00 1.5296762770586625e+00 + 237 -2.2429190678755799e+00 1.2762137613261333e+00 -3.4561335371333888e+00 + 238 -2.5249858397824543e-01 -1.6311993993013938e+00 5.6327007942433767e+00 + 239 2.3600434001454706e+00 2.5432001280052909e+00 3.1710184050148222e+00 + 240 2.2569424883932210e+00 3.6974145225969474e-01 -3.5079037684111503e-01 + 241 -5.0373146177377324e+00 -3.5792639981390222e+00 -4.2214396499889162e+00 + 242 -3.5333518619269380e+00 1.0268969392472143e+00 8.7615872588376464e-01 + 243 -1.7772253346151146e+00 2.1897240981816237e+00 4.0771383097941385e+00 + 244 4.2488265275528496e+00 -4.3879293775873647e+00 3.7692331388490987e+00 + 245 2.7105634024928511e+00 3.1321616846329028e+00 1.7466641233895173e+00 + 246 8.7345045914395836e-01 7.6780961728569264e-01 -3.2428866998030559e-01 + 247 8.1222707163569863e-01 -3.1415725783563513e+00 -3.3658388474832881e+00 + 248 -1.4293980095456251e+00 4.0300936576662192e+00 -2.0006489138695107e+00 + 249 8.6574115149029129e-02 -1.1025347346522740e+00 -3.3832826272724925e-01 + 250 3.5829961754216813e+00 -5.6274174997293747e-01 1.4127528025966929e+00 + 251 3.0632055304618993e+00 1.7103486318850718e+00 -2.8047593712682799e+00 + 252 -1.3875136436688631e+00 -4.4223159472758287e+00 -2.5405244604650763e+00 + 253 -1.6911573920575287e+00 1.8495318348477638e+00 -1.3750758436991428e+00 + 254 -2.2677591075288426e+00 3.3580212813415100e+00 -2.2471871608771661e+00 + 255 5.5289268843360224e+00 -1.7453255640698009e+00 -2.0435451118904995e+00 + 256 4.5908794739248977e+00 4.8343851592710472e+00 3.9665064357692983e+00 + 257 2.2065977620732941e-01 6.8508757018167110e-01 -4.7014971045391796e-01 + 258 -4.0124462717250724e+00 -2.1228312063765689e+00 -9.9897973861188238e-01 + 259 2.9685852583505434e-01 3.7266566877035090e+00 -1.0818658724311474e+00 + 260 8.1961211837135978e-02 -3.5570651112582445e-02 -3.5157302537620394e+00 + 261 -6.2728373866268039e-01 -2.7267744726566638e+00 9.9537775326669742e-01 + 262 -2.9603014594592375e-01 3.9112521689299506e+00 1.7782799262643629e+00 + 263 -2.1400291579006092e+00 -2.8265998306349847e+00 2.4454803567748686e+00 + 264 1.2252665174715418e+00 1.8937900711273350e+00 -3.0560489361858800e+00 + 265 -3.4366253701592124e+00 -3.0728708291251818e+00 -2.8755624856904229e+00 + 266 3.2113319900003767e-01 -2.0408399212556123e+00 -2.4817036798307996e+00 + 267 2.3993994751634831e+00 -5.4038696805398132e+00 2.9783868115053385e+00 + 268 -4.3087336411253823e+00 -5.2637599316271810e+00 -5.2480326020518948e+00 + 269 -2.0320550196331744e-01 4.6412772506323856e+00 -1.5157732877070211e+00 + 270 -1.8439832209648801e+00 4.1540210600592022e+00 7.9344962175594513e-01 + 271 -3.4057213913447049e-01 4.9061723967337834e+00 -2.6145747014412617e+00 + 272 2.1164541985651875e+00 -4.0729732248049783e-01 4.5537682682393914e+00 + 273 4.4954272557719896e+00 3.4922366648719509e+00 -2.2646334656810931e+00 + 274 -3.5506395759279417e+00 1.1009362664654467e+00 2.2848749119148133e+00 + 275 -1.0456337863134686e+00 -2.9724235443270923e+00 -3.1554579860704990e-01 + 276 -3.3313433991320278e+00 3.2426197185599994e+00 4.6572151933457437e+00 + 277 -1.6604128078447160e+00 -5.0401667704387920e-01 -4.3340028890968076e+00 + 278 -5.1780999254442071e+00 3.7656370977861950e+00 -3.8736456354977591e+00 + 279 2.5810691560850652e+00 3.9129419455686545e+00 1.0071952222896858e+00 + 280 1.2189893770300313e+00 1.2902271765990312e+00 -2.1816564738551856e+00 + 281 5.1717608355203271e-01 -2.2766313967228052e-01 4.0357834558791534e+00 + 282 5.5837971079129717e-02 -6.3312910436400760e-01 1.1338376610212428e+00 + 283 2.3776569282085740e+00 -1.3713335058519521e-01 1.8320253886114690e+00 + 284 -7.4605155753871610e-01 6.2639691169773581e-01 7.0950844496935010e+00 + 285 -2.7959006485060862e+00 2.6518449844717629e+00 -4.9418005822869766e+00 + 286 -1.9284812027028417e+00 3.6728996905807465e+00 -1.8903320575690452e+00 + 287 2.7501847555635206e+00 1.1800402620831736e+00 1.0386547735831380e+00 + 288 2.8874286555417988e-01 -8.4184451809622918e-01 -4.5827458970090557e-01 + 289 2.4177527590723296e+00 -4.1799340496126653e+00 4.2734972725104541e+00 + 290 2.9163123188810616e+00 1.1372045084901131e-01 2.4063982964448682e-01 + 291 1.1211713580663807e+00 -4.1852692109665259e+00 2.7055107929805704e+00 + 292 -3.3366806196508991e-01 -2.8592865937324055e+00 -3.6174665813779472e-01 + 293 -4.0598737192925585e+00 1.4790701200934770e+00 -2.0390573716466172e+00 + 294 -1.3972933493773392e+00 -1.5890688842927909e+00 1.2229127903290435e+00 + 295 1.7226829337464613e+00 4.6041363206313329e-01 1.6231271754939749e+00 + 296 4.7487429565043104e+00 -2.0032508711704766e+00 -2.3351656873698632e+00 + 297 -3.0211988899794845e-01 -3.1647229185551105e+00 -3.4484252242803848e-01 + 298 -4.3757968924703503e+00 -1.4988492973802341e+00 3.4848185514129637e-01 + 299 -2.3376048805917350e-02 -5.2171266030795431e+00 1.0422526834226988e+00 + 300 3.5686225189826670e+00 -3.5083544149657531e+00 1.5296762770587127e+00 + 301 -2.2429190678754769e+00 1.2762137613260611e+00 -3.4561335371333071e+00 + 302 -2.5249858397829578e-01 -1.6311993993015041e+00 5.6327007942433376e+00 + 303 2.3600434001454920e+00 2.5432001280053047e+00 3.1710184050148311e+00 + 304 2.2569424883932672e+00 3.6974145225971183e-01 -3.5079037684108039e-01 + 305 -5.0373146177377928e+00 -3.5792639981390089e+00 -4.2214396499889082e+00 + 306 -3.5333518619269384e+00 1.0268969392472114e+00 8.7615872588375443e-01 + 307 -1.7772253346151266e+00 2.1897240981816526e+00 4.0771383097941225e+00 + 308 4.2488265275529011e+00 -4.3879293775874855e+00 3.7692331388491231e+00 + 309 2.7105634024928857e+00 3.1321616846328917e+00 1.7466641233895481e+00 + 310 8.7345045914396779e-01 7.6780961728566777e-01 -3.2428866998030031e-01 + 311 8.1222707163562902e-01 -3.1415725783562807e+00 -3.3658388474833245e+00 + 312 -1.4293980095456613e+00 4.0300936576663045e+00 -2.0006489138695276e+00 + 313 8.6574115148966818e-02 -1.1025347346522749e+00 -3.3832826272726396e-01 + 314 3.5829961754217194e+00 -5.6274174997303006e-01 1.4127528025966833e+00 + 315 3.0632055304618753e+00 1.7103486318850509e+00 -2.8047593712683314e+00 + 316 -1.3875136436687978e+00 -4.4223159472758278e+00 -2.5405244604650568e+00 + 317 -1.6911573920575360e+00 1.8495318348477792e+00 -1.3750758436991246e+00 + 318 -2.2677591075287729e+00 3.3580212813414976e+00 -2.2471871608771155e+00 + 319 5.5289268843361041e+00 -1.7453255640698027e+00 -2.0435451118905217e+00 + 320 4.5908794739248941e+00 4.8343851592710383e+00 3.9665064357692850e+00 + 321 2.2065977620731958e-01 6.8508757018164912e-01 -4.7014971045389981e-01 + 322 -4.0124462717250662e+00 -2.1228312063765467e+00 -9.9897973861187206e-01 + 323 2.9685852583504557e-01 3.7266566877035276e+00 -1.0818658724311265e+00 + 324 8.1961211837145054e-02 -3.5570651112557784e-02 -3.5157302537620483e+00 + 325 -6.2728373866269860e-01 -2.7267744726566718e+00 9.9537775326670286e-01 + 326 -2.9603014594596616e-01 3.9112521689299413e+00 1.7782799262643401e+00 + 327 -2.1400291579005142e+00 -2.8265998306349629e+00 2.4454803567748229e+00 + 328 1.2252665174715800e+00 1.8937900711272995e+00 -3.0560489361858694e+00 + 329 -3.4366253701592036e+00 -3.0728708291251809e+00 -2.8755624856904167e+00 + 330 3.2113319899987736e-01 -2.0408399212556958e+00 -2.4817036798308467e+00 + 331 2.3993994751634653e+00 -5.4038696805398132e+00 2.9783868115053269e+00 + 332 -4.3087336411254276e+00 -5.2637599316272450e+00 -5.2480326020519295e+00 + 333 -2.0320550196332526e-01 4.6412772506323616e+00 -1.5157732877070209e+00 + 334 -1.8439832209647171e+00 4.1540210600592227e+00 7.9344962175604017e-01 + 335 -3.4057213913450601e-01 4.9061723967338473e+00 -2.6145747014413216e+00 + 336 2.1164541985652989e+00 -4.0729732248038819e-01 4.5537682682393461e+00 + 337 4.4954272557720341e+00 3.4922366648720105e+00 -2.2646334656811460e+00 + 338 -3.5506395759279554e+00 1.1009362664654545e+00 2.2848749119148124e+00 + 339 -1.0456337863135057e+00 -2.9724235443270817e+00 -3.1554579860707777e-01 + 340 -3.3313433991320545e+00 3.2426197185600296e+00 4.6572151933457686e+00 + 341 -1.6604128078446965e+00 -5.0401667704389908e-01 -4.3340028890967988e+00 + 342 -5.1780999254442168e+00 3.7656370977862070e+00 -3.8736456354977689e+00 + 343 2.5810691560850914e+00 3.9129419455686771e+00 1.0071952222896947e+00 + 344 1.2189893770300737e+00 1.2902271765990079e+00 -2.1816564738551838e+00 + 345 5.1717608355198685e-01 -2.2766313967224525e-01 4.0357834558791614e+00 + 346 5.5837971079071361e-02 -6.3312910436398895e-01 1.1338376610212340e+00 + 347 2.3776569282084776e+00 -1.3713335058520099e-01 1.8320253886114886e+00 + 348 -7.4605155753866903e-01 6.2639691169767264e-01 7.0950844496934700e+00 + 349 -2.7959006485060667e+00 2.6518449844717411e+00 -4.9418005822869757e+00 + 350 -1.9284812027028029e+00 3.6728996905807318e+00 -1.8903320575690150e+00 + 351 2.7501847555635859e+00 1.1800402620831765e+00 1.0386547735831562e+00 + 352 2.8874286555416440e-01 -8.4184451809624505e-01 -4.5827458970087631e-01 + 353 2.4177527590722883e+00 -4.1799340496126067e+00 4.2734972725103901e+00 + 354 2.9163123188810500e+00 1.1372045084901908e-01 2.4063982964447680e-01 + 355 1.1211713580663856e+00 -4.1852692109665250e+00 2.7055107929805691e+00 + 356 -3.3366806196510224e-01 -2.8592865937324086e+00 -3.6174665813779844e-01 + 357 -4.0598737192925727e+00 1.4790701200934737e+00 -2.0390573716466203e+00 + 358 -1.3972933493773345e+00 -1.5890688842927898e+00 1.2229127903290584e+00 + 359 1.7226829337464711e+00 4.6041363206313263e-01 1.6231271754939733e+00 + 360 4.7487429565043389e+00 -2.0032508711704824e+00 -2.3351656873698436e+00 + 361 -3.0211988899794429e-01 -3.1647229185550865e+00 -3.4484252242802960e-01 + 362 -4.3757968924703956e+00 -1.4988492973802561e+00 3.4848185514126701e-01 + 363 -2.3376048805876765e-02 -5.2171266030795485e+00 1.0422526834227379e+00 + 364 3.5686225189826288e+00 -3.5083544149656833e+00 1.5296762770586578e+00 + 365 -2.2429190678755329e+00 1.2762137613260736e+00 -3.4561335371333461e+00 + 366 -2.5249858397824815e-01 -1.6311993993014644e+00 5.6327007942433225e+00 + 367 2.3600434001454915e+00 2.5432001280053038e+00 3.1710184050148182e+00 + 368 2.2569424883932401e+00 3.6974145225972127e-01 -3.5079037684107833e-01 + 369 -5.0373146177377333e+00 -3.5792639981389955e+00 -4.2214396499888878e+00 + 370 -3.5333518619269193e+00 1.0268969392472043e+00 8.7615872588375687e-01 + 371 -1.7772253346151403e+00 2.1897240981816610e+00 4.0771383097941243e+00 + 372 4.2488265275529082e+00 -4.3879293775874944e+00 3.7692331388491360e+00 + 373 2.7105634024928529e+00 3.1321616846328841e+00 1.7466641233895353e+00 + 374 8.7345045914395492e-01 7.6780961728566688e-01 -3.2428866998030270e-01 + 375 8.1222707163570185e-01 -3.1415725783563140e+00 -3.3658388474833436e+00 + 376 -1.4293980095456515e+00 4.0300936576662982e+00 -2.0006489138695236e+00 + 377 8.6574115149007508e-02 -1.1025347346522656e+00 -3.3832826272724670e-01 + 378 3.5829961754217021e+00 -5.6274174997304049e-01 1.4127528025966869e+00 + 379 3.0632055304619046e+00 1.7103486318850294e+00 -2.8047593712683248e+00 + 380 -1.3875136436688611e+00 -4.4223159472758171e+00 -2.5405244604650710e+00 + 381 -1.6911573920575631e+00 1.8495318348477765e+00 -1.3750758436991477e+00 + 382 -2.2677591075287888e+00 3.3580212813415158e+00 -2.2471871608771270e+00 + 383 5.5289268843360633e+00 -1.7453255640697798e+00 -2.0435451118904799e+00 + 384 4.5908794739248933e+00 4.8343851592710401e+00 3.9665064357692801e+00 + 385 2.2065977620732730e-01 6.8508757018166722e-01 -4.7014971045392268e-01 + 386 -4.0124462717250555e+00 -2.1228312063765657e+00 -9.9897973861187450e-01 + 387 2.9685852583504840e-01 3.7266566877035179e+00 -1.0818658724311452e+00 + 388 8.1961211837107736e-02 -3.5570651112587594e-02 -3.5157302537620403e+00 + 389 -6.2728373866267106e-01 -2.7267744726566456e+00 9.9537775326669231e-01 + 390 -2.9603014594592247e-01 3.9112521689299307e+00 1.7782799262643685e+00 + 391 -2.1400291579006185e+00 -2.8265998306350202e+00 2.4454803567748815e+00 + 392 1.2252665174715607e+00 1.8937900711273177e+00 -3.0560489361858738e+00 + 393 -3.4366253701591964e+00 -3.0728708291251805e+00 -2.8755624856904189e+00 + 394 3.2113319900006382e-01 -2.0408399212555475e+00 -2.4817036798308010e+00 + 395 2.3993994751634857e+00 -5.4038696805398176e+00 2.9783868115053309e+00 + 396 -4.3087336411253752e+00 -5.2637599316271784e+00 -5.2480326020518815e+00 + 397 -2.0320550196332074e-01 4.6412772506323767e+00 -1.5157732877070365e+00 + 398 -1.8439832209648899e+00 4.1540210600591241e+00 7.9344962175597222e-01 + 399 -3.4057213913448170e-01 4.9061723967338047e+00 -2.6145747014412812e+00 + 400 2.1164541985651271e+00 -4.0729732248056127e-01 4.5537682682393967e+00 + 401 4.4954272557720563e+00 3.4922366648719958e+00 -2.2646334656811242e+00 + 402 -3.5506395759279665e+00 1.1009362664654851e+00 2.2848749119148377e+00 + 403 -1.0456337863134848e+00 -2.9724235443270710e+00 -3.1554579860705723e-01 + 404 -3.3313433991320127e+00 3.2426197185599919e+00 4.6572151933457420e+00 + 405 -1.6604128078446829e+00 -5.0401667704393338e-01 -4.3340028890968139e+00 + 406 -5.1780999254441831e+00 3.7656370977861631e+00 -3.8736456354977280e+00 + 407 2.5810691560850709e+00 3.9129419455686327e+00 1.0071952222896738e+00 + 408 1.2189893770300229e+00 1.2902271765990374e+00 -2.1816564738551811e+00 + 409 5.1717608355202493e-01 -2.2766313967227628e-01 4.0357834558791481e+00 + 410 5.5837971079144302e-02 -6.3312910436398984e-01 1.1338376610212491e+00 + 411 2.3776569282085980e+00 -1.3713335058517742e-01 1.8320253886114846e+00 + 412 -7.4605155753866470e-01 6.2639691169767375e-01 7.0950844496935259e+00 + 413 -2.7959006485061177e+00 2.6518449844718095e+00 -4.9418005822869944e+00 + 414 -1.9284812027028573e+00 3.6728996905807429e+00 -1.8903320575690619e+00 + 415 2.7501847555635117e+00 1.1800402620831951e+00 1.0386547735831488e+00 + 416 2.8874286555417711e-01 -8.4184451809623262e-01 -4.5827458970091361e-01 + 417 2.4177527590723411e+00 -4.1799340496126929e+00 4.2734972725104763e+00 + 418 2.9163123188810673e+00 1.1372045084901856e-01 2.4063982964448422e-01 + 419 1.1211713580663871e+00 -4.1852692109665384e+00 2.7055107929805620e+00 + 420 -3.3366806196509108e-01 -2.8592865937323548e+00 -3.6174665813779155e-01 + 421 -4.0598737192925629e+00 1.4790701200934655e+00 -2.0390573716466074e+00 + 422 -1.3972933493773372e+00 -1.5890688842927885e+00 1.2229127903290467e+00 + 423 1.7226829337464706e+00 4.6041363206314223e-01 1.6231271754939771e+00 + 424 4.7487429565043096e+00 -2.0032508711704984e+00 -2.3351656873698792e+00 + 425 -3.0211988899795744e-01 -3.1647229185551016e+00 -3.4484252242803315e-01 + 426 -4.3757968924703610e+00 -1.4988492973802494e+00 3.4848185514128066e-01 + 427 -2.3376048805912597e-02 -5.2171266030795564e+00 1.0422526834227130e+00 + 428 3.5686225189826404e+00 -3.5083544149657007e+00 1.5296762770586887e+00 + 429 -2.2429190678754907e+00 1.2762137613260744e+00 -3.4561335371333111e+00 + 430 -2.5249858397827141e-01 -1.6311993993014784e+00 5.6327007942433411e+00 + 431 2.3600434001454915e+00 2.5432001280053038e+00 3.1710184050148325e+00 + 432 2.2569424883932538e+00 3.6974145225970129e-01 -3.5079037684108455e-01 + 433 -5.0373146177378230e+00 -3.5792639981390653e+00 -4.2214396499889535e+00 + 434 -3.5333518619269375e+00 1.0268969392471847e+00 8.7615872588373778e-01 + 435 -1.7772253346151319e+00 2.1897240981816313e+00 4.0771383097941420e+00 + 436 4.2488265275528887e+00 -4.3879293775874038e+00 3.7692331388491107e+00 + 437 2.7105634024928995e+00 3.1321616846329503e+00 1.7466641233895961e+00 + 438 8.7345045914396979e-01 7.6780961728570341e-01 -3.2428866998029504e-01 + 439 8.1222707163561003e-01 -3.1415725783563109e+00 -3.3658388474832925e+00 + 440 -1.4293980095456116e+00 4.0300936576662076e+00 -2.0006489138694881e+00 + 441 8.6574115148964528e-02 -1.1025347346522822e+00 -3.3832826272726874e-01 + 442 3.5829961754216826e+00 -5.6274174997290771e-01 1.4127528025966316e+00 + 443 3.0632055304618788e+00 1.7103486318850583e+00 -2.8047593712683061e+00 + 444 -1.3875136436688247e+00 -4.4223159472758651e+00 -2.5405244604650830e+00 + 445 -1.6911573920575109e+00 1.8495318348477754e+00 -1.3750758436991375e+00 + 446 -2.2677591075288208e+00 3.3580212813415189e+00 -2.2471871608771536e+00 + 447 5.5289268843360748e+00 -1.7453255640698058e+00 -2.0435451118905412e+00 + 448 4.5908794739249110e+00 4.8343851592710587e+00 3.9665064357693121e+00 + 449 2.2065977620731797e-01 6.8508757018164601e-01 -4.7014971045390314e-01 + 450 -4.0124462717250475e+00 -2.1228312063765427e+00 -9.9897973861186151e-01 + 451 2.9685852583504219e-01 3.7266566877035343e+00 -1.0818658724311292e+00 + 452 8.1961211837113107e-02 -3.5570651112571294e-02 -3.5157302537620505e+00 + 453 -6.2728373866268550e-01 -2.7267744726566483e+00 9.9537775326669620e-01 + 454 -2.9603014594597238e-01 3.9112521689299249e+00 1.7782799262643409e+00 + 455 -2.1400291579005266e+00 -2.8265998306349962e+00 2.4454803567748411e+00 + 456 1.2252665174715962e+00 1.8937900711272895e+00 -3.0560489361858609e+00 + 457 -3.4366253701591862e+00 -3.0728708291251734e+00 -2.8755624856904087e+00 + 458 3.2113319899989845e-01 -2.0408399212556350e+00 -2.4817036798308432e+00 + 459 2.3993994751634680e+00 -5.4038696805398168e+00 2.9783868115053189e+00 + 460 -4.3087336411254116e+00 -5.2637599316272343e+00 -5.2480326020519108e+00 + 461 -2.0320550196333101e-01 4.6412772506323465e+00 -1.5157732877070416e+00 + 462 -1.8439832209647335e+00 4.1540210600591578e+00 7.9344962175605360e-01 + 463 -3.4057213913451534e-01 4.9061723967338651e+00 -2.6145747014413372e+00 + 464 2.1164541985652274e+00 -4.0729732248045536e-01 4.5537682682393479e+00 + 465 4.4954272557720998e+00 3.4922366648720518e+00 -2.2646334656811744e+00 + 466 -3.5506395759279834e+00 1.1009362664654998e+00 2.2848749119148426e+00 + 467 -1.0456337863135143e+00 -2.9724235443270688e+00 -3.1554579860708670e-01 + 468 -3.3313433991320420e+00 3.2426197185600270e+00 4.6572151933457713e+00 + 469 -1.6604128078446627e+00 -5.0401667704395514e-01 -4.3340028890968130e+00 + 470 -5.1780999254441911e+00 3.7656370977861737e+00 -3.8736456354977373e+00 + 471 2.5810691560850989e+00 3.9129419455686594e+00 1.0071952222896923e+00 + 472 1.2189893770300682e+00 1.2902271765990110e+00 -2.1816564738551838e+00 + 473 5.1717608355198452e-01 -2.2766313967224341e-01 4.0357834558791552e+00 + 474 5.5837971079085232e-02 -6.3312910436397274e-01 1.1338376610212360e+00 + 475 2.3776569282084941e+00 -1.3713335058517889e-01 1.8320253886114970e+00 + 476 -7.4605155753861430e-01 6.2639691169761458e-01 7.0950844496934895e+00 + 477 -2.7959006485060907e+00 2.6518449844717762e+00 -4.9418005822869873e+00 + 478 -1.9284812027028182e+00 3.6728996905807305e+00 -1.8903320575690257e+00 + 479 2.7501847555635774e+00 1.1800402620831949e+00 1.0386547735831646e+00 + 480 2.8874286555415751e-01 -8.4184451809624661e-01 -4.5827458970088686e-01 + 481 2.4177527590723020e+00 -4.1799340496126378e+00 4.2734972725104132e+00 + 482 2.9163123188810545e+00 1.1372045084902734e-01 2.4063982964447497e-01 + 483 1.1211713580663913e+00 -4.1852692109665437e+00 2.7055107929805589e+00 + 484 -3.3366806196509163e-01 -2.8592865937323566e+00 -3.6174665813778917e-01 + 485 -4.0598737192925771e+00 1.4790701200934606e+00 -2.0390573716466096e+00 + 486 -1.3972933493773290e+00 -1.5890688842927849e+00 1.2229127903290600e+00 + 487 1.7226829337464831e+00 4.6041363206314256e-01 1.6231271754939769e+00 + 488 4.7487429565043335e+00 -2.0032508711705099e+00 -2.3351656873698663e+00 + 489 -3.0211988899795733e-01 -3.1647229185550767e+00 -3.4484252242802543e-01 + 490 -4.3757968924704000e+00 -1.4988492973802796e+00 3.4848185514124658e-01 + 491 -2.3376048805871998e-02 -5.2171266030795600e+00 1.0422526834227526e+00 + 492 3.5686225189826155e+00 -3.5083544149656434e+00 1.5296762770586498e+00 + 493 -2.2429190678755497e+00 1.2762137613260978e+00 -3.4561335371333484e+00 + 494 -2.5249858397821118e-01 -1.6311993993014249e+00 5.6327007942433198e+00 + 495 2.3600434001454902e+00 2.5432001280053025e+00 3.1710184050148209e+00 + 496 2.2569424883932276e+00 3.6974145225970889e-01 -3.5079037684108527e-01 + 497 -5.0373146177377635e+00 -3.5792639981390502e+00 -4.2214396499889375e+00 + 498 -3.5333518619269140e+00 1.0268969392471858e+00 8.7615872588374821e-01 + 499 -1.7772253346151548e+00 2.1897240981816428e+00 4.0771383097941429e+00 + 500 4.2488265275528976e+00 -4.3879293775874126e+00 3.7692331388491165e+00 + 501 2.7105634024928711e+00 3.1321616846329334e+00 1.7466641233895854e+00 + 502 8.7345045914395414e-01 7.6780961728569797e-01 -3.2428866998030276e-01 + 503 8.1222707163569130e-01 -3.1415725783563553e+00 -3.3658388474833130e+00 + 504 -1.4293980095456063e+00 4.0300936576662059e+00 -2.0006489138694903e+00 + 505 8.6574115149004913e-02 -1.1025347346522696e+00 -3.3832826272724970e-01 + 506 3.5829961754216701e+00 -5.6274174997292259e-01 1.4127528025966396e+00 + 507 3.0632055304618988e+00 1.7103486318850267e+00 -2.8047593712682906e+00 + 508 -1.3875136436688860e+00 -4.4223159472758544e+00 -2.5405244604650981e+00 + 509 -1.6911573920575413e+00 1.8495318348477698e+00 -1.3750758436991610e+00 + 510 -2.2677591075288315e+00 3.3580212813415331e+00 -2.2471871608771616e+00 + 511 5.5289268843360286e+00 -1.7453255640697798e+00 -2.0435451118904946e+00 + 512 4.5908794739249092e+00 4.8343851592710569e+00 3.9665064357693121e+00 ... diff --git a/unittest/force-styles/tests/manybody-pair-pace_product.yaml b/unittest/force-styles/tests/manybody-pair-pace_product.yaml index 9aac9ddcae..b178586ab2 100644 --- a/unittest/force-styles/tests/manybody-pair-pace_product.yaml +++ b/unittest/force-styles/tests/manybody-pair-pace_product.yaml @@ -1,7 +1,7 @@ --- lammps_version: 17 Feb 2022 date_generated: Fri Mar 18 22:17:48 2022 -epsilon: 5e-13 +epsilon: 5e-12 skip_tests: prerequisites: ! | pair pace diff --git a/unittest/force-styles/tests/manybody-pair-pace_recursive.yaml b/unittest/force-styles/tests/manybody-pair-pace_recursive.yaml index eef7509606..6105debb67 100644 --- a/unittest/force-styles/tests/manybody-pair-pace_recursive.yaml +++ b/unittest/force-styles/tests/manybody-pair-pace_recursive.yaml @@ -1,7 +1,7 @@ --- lammps_version: 10 Mar 2021 date_generated: Wed Apr 7 19:30:07 2021 -epsilon: 5e-13 +epsilon: 5e-12 prerequisites: ! | pair pace pre_commands: ! | diff --git a/unittest/force-styles/tests/manybody-pair-sw_twobody.yaml b/unittest/force-styles/tests/manybody-pair-sw_twobody.yaml new file mode 100644 index 0000000000..0c48d47137 --- /dev/null +++ b/unittest/force-styles/tests/manybody-pair-sw_twobody.yaml @@ -0,0 +1,156 @@ +--- +lammps_version: 23 Jun 2022 +date_generated: Sat Jul 2 17:42:21 2022 +epsilon: 1e-10 +skip_tests: +prerequisites: ! | + pair sw +pre_commands: ! | + variable newton_pair delete + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" +post_commands: ! "" +input_file: in.manybody +pair_style: sw threebody off +pair_coeff: ! | + * * Si.sw Si Si Si Si Si Si Si Si +extract: ! "" +natoms: 64 +init_vdwl: -258.5086400674769 +init_coul: 0 +init_stress: ! |2- + 6.4784557236140188e+00 8.9666141338671075e+00 1.6564010213468620e+01 -4.9679217055624925e+00 3.4388959220521961e+01 7.5389343797929154e-01 +init_forces: ! |2 + 1 -7.5117950925001264e-01 3.0512035938320858e+00 1.7548369060319577e+00 + 2 -2.5839943840157944e+00 -6.2407030855132184e-01 -2.0776063043681416e+00 + 3 6.4874626526429646e-01 -1.9191097130296589e-01 -2.8953907507008203e-01 + 4 -1.8780621641443120e+00 2.9563493639001268e+00 6.0045000947756955e-01 + 5 -1.3527836952861758e+00 -7.5563316408513048e-01 -4.0171785277050770e-01 + 6 3.0261027539317009e-01 3.3010495375946016e+00 1.0578432546004755e+00 + 7 -1.0220792530722718e+00 -8.9704171544868350e-01 2.2679286915120240e+00 + 8 7.3786854090375081e-02 6.8184832716858157e-01 -9.9742395408331985e-01 + 9 1.5404185888118715e-01 -2.4234656391168983e+00 -2.5547421021459220e+00 + 10 2.9152006680754144e-01 -1.3832499077045937e+00 -2.3112314100238849e+00 + 11 3.0397941651131566e+00 -3.2696818086952382e+00 2.0402858500342536e+00 + 12 -5.2427750818963892e+00 -2.9266181850189747e+00 -2.3274218711162238e+00 + 13 -3.4764983756087076e-01 5.1759636691465873e+00 -9.5777981490571462e-01 + 14 -1.3994974411693033e+00 3.6723581318644940e+00 4.9022891744156372e-01 + 15 -3.6451950102391031e+00 4.1804831124641382e+00 -2.3094319497556559e+00 + 16 1.7762576801244847e+00 -1.7769734947711013e-01 5.6118226682874788e+00 + 17 1.1626276987569719e+00 2.5434318242406255e+00 -4.1298909446437833e+00 + 18 2.6370967308167081e-01 4.8174395544262438e-01 3.2879300848711184e+00 + 19 -1.2180668170296169e+00 -2.0218982136836656e+00 -3.8444674827692227e-01 + 20 -6.1734234441618661e+00 -8.7047552939678141e-02 7.4088977580926274e-01 + 21 2.2527604735738231e+00 9.2512650808085084e-01 -2.7596546519202407e+00 + 22 -5.0794028512678571e+00 3.2609137644938517e+00 -3.9745643191135742e+00 + 23 1.8924999787954402e+00 3.3526647080652703e+00 1.2248568956854238e+00 + 24 1.5743771798508372e+00 1.3293691279058384e+00 2.6631027667815861e+00 + 25 8.3110919566309338e-01 -1.1460141214066610e-01 1.4368370341871295e+00 + 26 -4.7991049590854340e-01 -6.7362488036409351e-01 1.2327946774343894e+00 + 27 1.9900573442863836e+00 -5.0620688348406084e-01 1.5762361423313080e+00 + 28 5.7701286079414915e-01 1.3187742370100088e+00 4.1298244042734957e+00 + 29 -3.0416482921788530e+00 9.1958118398971411e-01 -1.1418981151511567e+00 + 30 -1.5986340571260498e+00 1.2172058599377520e+00 -8.9839567436920520e-01 + 31 -1.6221367664137194e+00 1.4053388522714974e+00 -4.1030835758060596e-01 + 32 -3.3999213065003993e+00 5.4646623792746152e-01 -4.9970596852221305e-01 + 33 4.3374523080961502e+00 -2.0526192390847231e+00 2.7863621822774527e+00 + 34 3.6899966300377274e-01 -9.7647298273011718e-02 3.7849094767735275e-01 + 35 1.2474956459695217e+00 -1.6786310914928160e-01 2.5255688468039841e+00 + 36 1.9423002050777016e-02 -2.5811032787101440e+00 -5.3464409483959238e-02 + 37 -1.7991755427583054e+00 1.7326288527074167e+00 -2.3172591544605829e+00 + 38 -2.6635345675769728e-01 -4.5619472453099841e-01 2.9146619578940203e-01 + 39 2.2040425723147274e+00 -1.2990665525340543e+00 -4.1031233229148558e+00 + 40 3.8636879669801210e+00 -1.9428932057790562e+00 -1.2090029697953577e+00 + 41 6.9184862237524347e-02 -5.5563025877752470e-01 -1.0104421056432380e+00 + 42 -4.1077204842477482e+00 -1.9092260092568061e+00 -2.7778884577312546e-01 + 43 6.9234276916198878e-01 -5.1959961009882676e+00 -3.8252772226000875e-01 + 44 3.1974368019332173e+00 -3.7333126721070280e+00 1.1927602690851384e+00 + 45 -1.0979421463666958e+00 1.4281871410588294e+00 -2.7844688870636198e+00 + 46 -2.3123927283410217e-01 -1.6246499267294727e+00 4.6068188624710249e+00 + 47 2.4575638270171467e+00 1.3529111936752543e+00 8.5779610605164602e-01 + 48 1.3053149069961443e+00 5.5515699432490484e-01 -3.4671208564970402e-01 + 49 -1.6274632987918105e+00 -4.7057286351454088e+00 -2.4249279782812732e+00 + 50 5.4224455439310093e-03 2.9897586979430217e+00 -1.3950914387971693e+00 + 51 -1.2459066473548792e+00 2.9456460712366876e+00 3.7288916669729959e+00 + 52 4.2616245425615205e+00 -4.4802874559504291e+00 4.4417404910061506e+00 + 53 2.7936251596841610e+00 2.8362368635929394e+00 1.5493162393308044e+00 + 54 2.4623429186012755e+00 -2.8582750315396499e+00 -1.7184511417663617e+00 + 55 8.8879734150460621e-01 -2.9956850724190431e+00 -3.5690867805221691e+00 + 56 -4.2180992335342177e-01 2.9462851508525678e-01 -2.1026878944189669e+00 + 57 1.9534125277666281e-01 -1.1222033415899244e+00 -3.0127694733977195e-01 + 58 2.7751167493305626e+00 -9.6251009716841951e-01 1.2847140239740573e+00 + 59 2.7332664305562209e+00 1.6874001147167499e+00 -1.8630365579739607e+00 + 60 -1.9920742303178285e+00 -5.1976595137487056e+00 -2.5715712256855774e+00 + 61 -3.9186643718089481e-01 1.8941052818415300e+00 -7.2852310082079819e-01 + 62 -2.6017296078018819e+00 2.4477411514482621e+00 -2.1740532348808825e+00 + 63 1.6751774499211520e+00 -2.9786131173037549e+00 -4.4746311293685642e-02 + 64 2.2350712682686380e+00 2.4856397598318205e+00 6.0442073184431777e+00 +run_vdwl: -258.499584619321 +run_coul: 0 +run_stress: ! |2- + 6.4308150527103614e+00 8.9800084577004764e+00 1.6644352826777482e+01 -5.0072836166618568e+00 3.4219822049720790e+01 1.0492755818511172e+00 +run_forces: ! |2 + 1 -7.5937225945191122e-01 3.0453338820624811e+00 1.7588997466292056e+00 + 2 -2.5842358982706677e+00 -6.4961465564128662e-01 -2.0836136472876197e+00 + 3 6.1692053064565644e-01 -1.7923404289185974e-01 -2.5776384969836241e-01 + 4 -1.8642434201915430e+00 2.9689111966333672e+00 5.7860631771456472e-01 + 5 -1.3707214670175785e+00 -7.6882987771621347e-01 -3.8201327706453814e-01 + 6 3.5155029154762341e-01 3.3059375310476078e+00 1.0816937673465203e+00 + 7 -1.0031791908316097e+00 -8.6956258363515204e-01 2.2425245701191070e+00 + 8 5.9471905500604189e-02 6.7712638453434015e-01 -9.9455163342941122e-01 + 9 1.3241459971784919e-01 -2.4451165559600572e+00 -2.5688790543810329e+00 + 10 2.7987760793693212e-01 -1.3869445644157263e+00 -2.2737317068259308e+00 + 11 3.0093494238363268e+00 -3.2460329093478379e+00 2.0365059309648439e+00 + 12 -5.2407947220384763e+00 -2.9126835314212682e+00 -2.3181888620032565e+00 + 13 -2.9313171694052698e-01 5.1682815539279954e+00 -9.3178794848643598e-01 + 14 -1.4205609885169097e+00 3.6728355747283463e+00 4.7973399101037340e-01 + 15 -3.6438539671591643e+00 4.1738585973197502e+00 -2.2995365264114347e+00 + 16 1.7665430094094714e+00 -1.6683625143013525e-01 5.5980371284228605e+00 + 17 1.1609229005729407e+00 2.5445052813433287e+00 -4.1101936902212186e+00 + 18 2.3250564926704054e-01 5.0119516573696155e-01 3.2999642189792304e+00 + 19 -1.2455755116140121e+00 -2.0483645027853807e+00 -3.9915953456529252e-01 + 20 -6.1533476323819203e+00 -1.0336110065476412e-01 7.2207408198501155e-01 + 21 2.2580812268964414e+00 8.8665782585823316e-01 -2.7867801730661323e+00 + 22 -5.0715437260287493e+00 3.2720805913066657e+00 -3.9870515109961557e+00 + 23 1.9067384153660658e+00 3.3666024181351721e+00 1.2360966484469924e+00 + 24 1.6076366668181861e+00 1.3129049141466476e+00 2.6481286770383776e+00 + 25 8.2849608759830151e-01 -1.0946573631083545e-01 1.4137379099564085e+00 + 26 -4.9245162995242880e-01 -6.5633188499443484e-01 1.2397189435323861e+00 + 27 2.0002068209516661e+00 -5.2635863568453822e-01 1.5812202387080725e+00 + 28 5.6469856769551852e-01 1.3419655823448202e+00 4.1390158656307525e+00 + 29 -3.0414702840012948e+00 9.2717141813720239e-01 -1.1446412926158587e+00 + 30 -1.5780449202280797e+00 1.1972994610432468e+00 -9.0937832538133612e-01 + 31 -1.6135468940121711e+00 1.4097747951848163e+00 -4.1013831792153099e-01 + 32 -3.3839861094060888e+00 5.3294244523688450e-01 -5.1150418397488095e-01 + 33 4.3179202422054406e+00 -2.0530236039826524e+00 2.7909047875298811e+00 + 34 3.6044665483098232e-01 -9.6636898593039144e-02 3.8719889716901629e-01 + 35 1.2574806392912055e+00 -1.5474474915601943e-01 2.5284696614854756e+00 + 36 -9.2507293281644375e-03 -2.5688826605251358e+00 -8.8917022692741904e-02 + 37 -1.7874734690581056e+00 1.7150271178647891e+00 -2.3271057624958509e+00 + 38 -2.4661620498076103e-01 -4.4857619626472056e-01 3.0090275233366270e-01 + 39 2.1876463817083560e+00 -1.2953665685718856e+00 -4.1070251548878520e+00 + 40 3.8954619284502536e+00 -1.9483835119233155e+00 -1.2227531289486768e+00 + 41 9.7565025130135041e-02 -5.2646053136013127e-01 -9.8280124384883183e-01 + 42 -4.1063684952413535e+00 -1.9251952021816745e+00 -2.9901720065849435e-01 + 43 6.7939692714052213e-01 -5.1874569217280806e+00 -3.9562141807204243e-01 + 44 3.2038887558507829e+00 -3.7312345150786044e+00 1.1791192854596575e+00 + 45 -1.1219574440264417e+00 1.4017870123386482e+00 -2.7737869798443779e+00 + 46 -2.3209294883861276e-01 -1.6182897275443398e+00 4.6296975809710883e+00 + 47 2.4602350208971560e+00 1.3452019899041738e+00 8.6358301884597988e-01 + 48 1.3093376440414450e+00 5.7371015819685922e-01 -3.5578408564713881e-01 + 49 -1.6696474765985014e+00 -4.7474039477977401e+00 -2.4607694981777248e+00 + 50 1.2989593641085595e-02 2.9812087098985032e+00 -1.4123464138675532e+00 + 51 -1.2853374902017087e+00 2.9768731587433548e+00 3.7403754374802158e+00 + 52 4.2768627438095859e+00 -4.4665207635055904e+00 4.4526942886426610e+00 + 53 2.8263576162367916e+00 2.8711821643474851e+00 1.6198032393140254e+00 + 54 2.4557393026757914e+00 -2.8576870371250496e+00 -1.7106753514157151e+00 + 55 8.7016650440839127e-01 -2.9993943594233912e+00 -3.5406400607258477e+00 + 56 -4.2720269240408387e-01 2.6284724466018883e-01 -2.0965871396618168e+00 + 57 1.8938909101993642e-01 -1.1500277319075947e+00 -3.0413618657652775e-01 + 58 2.7772395410738167e+00 -9.4351277181421578e-01 1.2588196612829914e+00 + 59 2.7573808165218825e+00 1.7074121472099479e+00 -1.8649938272758655e+00 + 60 -2.0326029067319982e+00 -5.2224816026297454e+00 -2.6126651787431214e+00 + 61 -3.8509493120844207e-01 1.9073567822120387e+00 -7.1625738088539748e-01 + 62 -2.6004175741382847e+00 2.4418292628003133e+00 -2.1615478367945307e+00 + 63 1.6782508781720011e+00 -3.0101538006831734e+00 -7.1986308169233931e-02 + 64 2.2749536899334073e+00 2.5303495677814198e+00 6.0668040667204064e+00 +... diff --git a/unittest/force-styles/tests/manybody-pair-sw_twothree.yaml b/unittest/force-styles/tests/manybody-pair-sw_twothree.yaml new file mode 100644 index 0000000000..0a7c60a892 --- /dev/null +++ b/unittest/force-styles/tests/manybody-pair-sw_twothree.yaml @@ -0,0 +1,157 @@ +--- +lammps_version: 23 Jun 2022 +date_generated: Sat Jul 2 18:29:21 2022 +epsilon: 1e-10 +skip_tests: gpu +prerequisites: ! | + pair sw +pre_commands: ! | + variable newton_pair delete + variable newton_pair index on +post_commands: ! "" +input_file: in.manybody +pair_style: hybrid sw threebody on sw threebody off +pair_coeff: ! | + * * sw 1 Si.sw Si Si Si Si NULL NULL NULL NULL + * 5*8 sw 2 Si.sw Si Si Si Si Si Si Si Si +extract: ! "" +natoms: 64 +init_vdwl: -258.5086399744112 +init_coul: 0 +init_stress: ! |2- + 6.4784606418926112e+00 8.9666260111962721e+00 1.6564019181847929e+01 -4.9679178424853108e+00 3.4388958502311766e+01 7.5390085880741020e-01 +init_forces: ! |2 + 1 -7.5117950925001176e-01 3.0512035938320858e+00 1.7548369060319566e+00 + 2 -2.5839943840157309e+00 -6.2407030855217227e-01 -2.0776063043672743e+00 + 3 6.4874626526431012e-01 -1.9191097130277632e-01 -2.8953907507029547e-01 + 4 -1.8780621642391011e+00 2.9563493639933633e+00 6.0045000947943949e-01 + 5 -1.3527836952861756e+00 -7.5563316408513048e-01 -4.0171785277050776e-01 + 6 3.0261027539317009e-01 3.3010495375946016e+00 1.0578432546004755e+00 + 7 -1.0220792530722718e+00 -8.9704171544868350e-01 2.2679286915120240e+00 + 8 7.3786854090375081e-02 6.8184832716858157e-01 -9.9742395408331985e-01 + 9 1.5404185888294175e-01 -2.4234656392100611e+00 -2.5547421022333259e+00 + 10 2.9152004537455556e-01 -1.3832499266817839e+00 -2.3112314079357352e+00 + 11 3.0397941652061906e+00 -3.2696818086953119e+00 2.0402858501197878e+00 + 12 -5.2427766862019523e+00 -2.9266230951551324e+00 -2.3274249447095405e+00 + 13 -3.4764983756087076e-01 5.1759636691465873e+00 -9.5777981490571462e-01 + 14 -1.3994974411693033e+00 3.6723581318644940e+00 4.9022891744156372e-01 + 15 -3.6451950102391031e+00 4.1804831124641391e+00 -2.3094319497556559e+00 + 16 1.7762576801244845e+00 -1.7769734947711072e-01 5.6118226682874788e+00 + 17 1.1626295956924018e+00 2.5434335885879951e+00 -4.1298909753889967e+00 + 18 2.6370967308167081e-01 4.8174395544262394e-01 3.2879300848711188e+00 + 19 -1.2180668170296169e+00 -2.0218982136836656e+00 -3.8444674827692210e-01 + 20 -6.1734234441618661e+00 -8.7047552939678141e-02 7.4088977580926274e-01 + 21 2.2527604735738231e+00 9.2512650808085084e-01 -2.7596546519202407e+00 + 22 -5.0794028512678571e+00 3.2609137644938517e+00 -3.9745643191135742e+00 + 23 1.8924999787954402e+00 3.3526647080652703e+00 1.2248568956854238e+00 + 24 1.5743771798508370e+00 1.3293691279058382e+00 2.6631027667815861e+00 + 25 8.3110919554353102e-01 -1.1460141213930673e-01 1.4368370342964809e+00 + 26 -4.7991049590854340e-01 -6.7362488036409351e-01 1.2327946774343894e+00 + 27 1.9900570741156840e+00 -5.0620387120655386e-01 1.5762394195123659e+00 + 28 5.7701286079972869e-01 1.3187742380597833e+00 4.1298244053155067e+00 + 29 -3.0416482921788530e+00 9.1958118398971411e-01 -1.1418981151511567e+00 + 30 -1.5986340571260498e+00 1.2172058599377520e+00 -8.9839567436920520e-01 + 31 -1.6221367664137194e+00 1.4053388522714974e+00 -4.1030835758060596e-01 + 32 -3.3999213065003993e+00 5.4646623792746152e-01 -4.9970596852221305e-01 + 33 4.3374523080961529e+00 -2.0526192390847209e+00 2.7863621822774500e+00 + 34 3.6899967841270293e-01 -9.7647299317203395e-02 3.7849093017581542e-01 + 35 1.2474956459695270e+00 -1.6786310914897268e-01 2.5255688468043052e+00 + 36 1.9423002050769304e-02 -2.5811032787101440e+00 -5.3464409483951571e-02 + 37 -1.7991755427583054e+00 1.7326288527074167e+00 -2.3172591544605829e+00 + 38 -2.6635345675769728e-01 -4.5619472453099841e-01 2.9146619578940203e-01 + 39 2.2040425723147274e+00 -1.2990665525340543e+00 -4.1031233229148558e+00 + 40 3.8636879669801210e+00 -1.9428932057790562e+00 -1.2090029697953577e+00 + 41 6.9184862237524403e-02 -5.5563025877752559e-01 -1.0104421056432389e+00 + 42 -4.1077204863643084e+00 -1.9092260113246491e+00 -2.7778884595397102e-01 + 43 6.9234276922332216e-01 -5.1959961010562941e+00 -3.8252772225624965e-01 + 44 3.1974368019347907e+00 -3.7333126721157721e+00 1.1927602690968555e+00 + 45 -1.0979421463666958e+00 1.4281871410588294e+00 -2.7844688870636198e+00 + 46 -2.3123927283410217e-01 -1.6246499267294727e+00 4.6068188624710249e+00 + 47 2.4575638270171472e+00 1.3529111936752540e+00 8.5779610605164602e-01 + 48 1.3053149069961458e+00 5.5515699432490606e-01 -3.4671208564970524e-01 + 49 -1.6274632987918134e+00 -4.7057286351454106e+00 -2.4249279782812714e+00 + 50 5.4224455439262353e-03 2.9897586979430182e+00 -1.3950914387971656e+00 + 51 -1.2459066473548797e+00 2.9456460712366872e+00 3.7288916669729959e+00 + 52 4.2616245425615027e+00 -4.4802874559509265e+00 4.4417404910060432e+00 + 53 2.7936251596841610e+00 2.8362368635929394e+00 1.5493162393308042e+00 + 54 2.4623429186012760e+00 -2.8582750315396499e+00 -1.7184511417663617e+00 + 55 8.8879734150460621e-01 -2.9956850724190431e+00 -3.5690867805221691e+00 + 56 -4.2180992335342188e-01 2.9462851508525667e-01 -2.1026878944189669e+00 + 57 1.9534125277666264e-01 -1.1222033415899244e+00 -3.0127694733977195e-01 + 58 2.7751167493305635e+00 -9.6251009716841907e-01 1.2847140239740573e+00 + 59 2.7332664162886871e+00 1.6874002693437411e+00 -1.8630367163899653e+00 + 60 -1.9920742303178280e+00 -5.1976595137487056e+00 -2.5715712256855774e+00 + 61 -3.9186643718089481e-01 1.8941052818415300e+00 -7.2852310082079819e-01 + 62 -2.6017296078018801e+00 2.4477411514482652e+00 -2.1740532348808843e+00 + 63 1.6751774499211569e+00 -2.9786131173037518e+00 -4.4746311293689334e-02 + 64 2.2350712682686358e+00 2.4856397598318183e+00 6.0442073184431804e+00 +run_vdwl: -258.49958453100083 +run_coul: 0 +run_stress: ! |2- + 6.4308197607512207e+00 8.9800199663285003e+00 1.6644361563236384e+01 -5.0072799407290933e+00 3.4219821356106827e+01 1.0492826840671752e+00 +run_forces: ! |2 + 1 -7.5937225945190234e-01 3.0453338820624740e+00 1.7588997466292104e+00 + 2 -2.5842358982706335e+00 -6.4961465564215615e-01 -2.0836136472867430e+00 + 3 6.1692053064567098e-01 -1.7923404289169326e-01 -2.5776384969855004e-01 + 4 -1.8642434203060627e+00 2.9689111967459501e+00 5.7860631771685955e-01 + 5 -1.3707214670175798e+00 -7.6882987771621170e-01 -3.8201327706454102e-01 + 6 3.5155029154762341e-01 3.3059375310476078e+00 1.0816937673465203e+00 + 7 -1.0031791908375163e+00 -8.6956258364196903e-01 2.2425245701241256e+00 + 8 5.9471905500534855e-02 6.7712638453480301e-01 -9.9455163342971664e-01 + 9 1.3241459971867986e-01 -2.4451165560724939e+00 -2.5688790544877764e+00 + 10 2.7987758741645180e-01 -1.3869445825984155e+00 -2.2737317048352144e+00 + 11 3.0093494239500198e+00 -3.2460329093479796e+00 2.0365059310692528e+00 + 12 -5.2407962483722299e+00 -2.9126882828373892e+00 -2.3181917992781393e+00 + 13 -2.9313171711099439e-01 5.1682815536825712e+00 -9.3178794843042834e-01 + 14 -1.4205609886004000e+00 3.6728355746142340e+00 4.7973399106847658e-01 + 15 -3.6438539671591443e+00 4.1738585973197599e+00 -2.2995365264114183e+00 + 16 1.7665430073015751e+00 -1.6683625231758512e-01 5.5980371264386779e+00 + 17 1.1609247141613361e+00 2.5445069687633297e+00 -4.1101937186844282e+00 + 18 2.3250564926703476e-01 5.0119516573698042e-01 3.2999642189792335e+00 + 19 -1.2455755116140015e+00 -2.0483645027853901e+00 -3.9915953456528291e-01 + 20 -6.1533476323819176e+00 -1.0336110065476101e-01 7.2207408198501200e-01 + 21 2.2580812272923181e+00 8.8665782626079470e-01 -2.7867801726837302e+00 + 22 -5.0715437260287493e+00 3.2720805913066657e+00 -3.9870515109961557e+00 + 23 1.9067384153660658e+00 3.3666024181351721e+00 1.2360966484469924e+00 + 24 1.6076366668181858e+00 1.3129049141466480e+00 2.6481286770383776e+00 + 25 8.2849608748715486e-01 -1.0946573630945597e-01 1.4137379100581711e+00 + 26 -4.9245162995242892e-01 -6.5633188499443507e-01 1.2397189435323859e+00 + 27 2.0002065581614117e+00 -5.2635572637485362e-01 1.5812234025897816e+00 + 28 5.6469856770107940e-01 1.3419655834852620e+00 4.1390158667617349e+00 + 29 -3.0414702840545953e+00 9.2717141811819714e-01 -1.1446412927789829e+00 + 30 -1.5780449202280824e+00 1.1972994610432426e+00 -9.0937832538133057e-01 + 31 -1.6135468935693842e+00 1.4097747955859368e+00 -4.1013831752390606e-01 + 32 -3.3839861094059622e+00 5.3294244523702139e-01 -5.1150418397474551e-01 + 33 4.3179202422054441e+00 -2.0530236039826488e+00 2.7909047875298785e+00 + 34 3.6044667063424402e-01 -9.6636899664461151e-02 3.8719887922396817e-01 + 35 1.2574806392912077e+00 -1.5474474915574327e-01 2.5284696614857665e+00 + 36 -9.2507293281699435e-03 -2.5688826605251358e+00 -8.8917022692736422e-02 + 37 -1.7874734690551621e+00 1.7150271178623466e+00 -2.3271057624984728e+00 + 38 -2.4661620491429920e-01 -4.4857619628292789e-01 3.0090275228821284e-01 + 39 2.1876463817081504e+00 -1.2953665685720137e+00 -4.1070251548877099e+00 + 40 3.8954619284501790e+00 -1.9483835119233022e+00 -1.2227531289487130e+00 + 41 9.7565025130134986e-02 -5.2646053136013171e-01 -9.8280124384883216e-01 + 42 -4.1063684977228627e+00 -1.9251952046358491e+00 -2.9901720087297745e-01 + 43 6.7939692719606781e-01 -5.1874569217896553e+00 -3.9562141806867668e-01 + 44 3.2038887558519624e+00 -3.7312345150848865e+00 1.1791192854681274e+00 + 45 -1.1219574440264011e+00 1.4017870123386453e+00 -2.7737869798443744e+00 + 46 -2.3209294883240861e-01 -1.6182897275509909e+00 4.6296975808382292e+00 + 47 2.4602350215523230e+00 1.3452019889417968e+00 8.6358301807951909e-01 + 48 1.3093376440442195e+00 5.7371015819454974e-01 -3.5578408565068542e-01 + 49 -1.6696474765984912e+00 -4.7474039477977534e+00 -2.4607694981777111e+00 + 50 1.2989593641085762e-02 2.9812087098985032e+00 -1.4123464138675532e+00 + 51 -1.2853374902017072e+00 2.9768731587433566e+00 3.7403754374802136e+00 + 52 4.2768627438095717e+00 -4.4665207635060362e+00 4.4526942886425624e+00 + 53 2.8263576162367916e+00 2.8711821643474851e+00 1.6198032393140251e+00 + 54 2.4557393026757937e+00 -2.8576870371250473e+00 -1.7106753514157176e+00 + 55 8.7016650440838128e-01 -2.9993943594233770e+00 -3.5406400607258579e+00 + 56 -4.2720269240408387e-01 2.6284724466018883e-01 -2.0965871396618163e+00 + 57 1.8938909101993043e-01 -1.1500277319075998e+00 -3.0413618657653302e-01 + 58 2.7772395410738175e+00 -9.4351277181421511e-01 1.2588196612829905e+00 + 59 2.7573808001442890e+00 1.7074123239008328e+00 -1.8649940082533623e+00 + 60 -2.0326029067319991e+00 -5.2224816026297418e+00 -2.6126651787431188e+00 + 61 -3.8509493124293104e-01 1.9073567822530930e+00 -7.1625738092917579e-01 + 62 -2.6004175741383238e+00 2.4418292628003044e+00 -2.1615478367946075e+00 + 63 1.6782508782162848e+00 -3.0101538006328594e+00 -7.1986308168993651e-02 + 64 2.2749536899334060e+00 2.5303495677814132e+00 6.0668040667204073e+00 +... diff --git a/unittest/force-styles/tests/mol-pair-coul_slater_long.yaml b/unittest/force-styles/tests/mol-pair-coul_slater_long.yaml index becaaddacb..52efdaa52d 100644 --- a/unittest/force-styles/tests/mol-pair-coul_slater_long.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_slater_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:17:29 2022 +lammps_version: 23 Jun 2022 +date_generated: Thu Jul 7 09:00:39 2022 epsilon: 2e-13 skip_tests: prerequisites: ! | @@ -21,71 +21,71 @@ extract: ! | cut_coul 0 natoms: 29 init_vdwl: 0 -init_coul: 531.6959978948178 +init_coul: 254.5592842067175 init_stress: ! |2- - 2.5972486027624825e+02 1.6017698793801901e+02 2.4137753464923463e+02 1.1278136362375312e+02 7.5965726957592040e+01 4.3719482306226765e-01 + 1.1708139667614163e-01 -2.1626456898855512e+01 -1.2229635861086752e+01 1.1761975361937868e+01 -9.4490379133316071e-01 7.0303045871968024e+00 init_forces: ! |2 - 1 -1.4505459775863072e+01 -1.3044138972612792e+01 2.1164399702389403e+01 - 2 1.7223357637414050e+01 1.1196601670721074e+01 -2.1963333681835362e+01 - 3 1.9690750992824077e-01 8.4027350365370912e-01 3.2676598741321244e-01 - 4 -4.1823205578686712e-01 -4.8034612329946474e-01 -6.2465767147804363e-01 - 5 -8.1067146840659532e-01 -7.0419963313519196e-01 1.0662874339675656e-01 - 6 -1.5369327833513578e+01 1.5524058497083976e+01 2.0805079862911210e+01 - 7 2.5724194203247794e+00 -6.5060840392199450e+00 -2.5818209750744270e+01 - 8 5.4989014023099685e+00 -1.3233615378795388e+01 -1.9749310147567481e+01 - 9 6.7810825735410649e+00 2.9735670644350400e+00 2.9299979326310858e+01 - 10 1.5690354534134865e+00 -3.8317369465722124e+00 -4.6200627486826261e-02 - 11 -3.3949224827476737e-01 6.3351363413160511e-01 4.2844876717729496e-01 - 12 3.5635170964422114e-01 -1.4508136789019890e+00 3.4423369459456787e+00 - 13 3.1047049296276570e+00 -1.3699917700047379e+00 -1.9294387191193760e-01 - 14 -1.8808718796901713e+00 4.5935276633752392e-01 -3.4319894559470154e+00 - 15 5.0373263520628020e-01 3.2293151135885791e+00 1.4501551118828643e-01 - 16 9.3153064058538995e+00 -7.2444035690649828e+00 -2.8031955215690214e+01 - 17 -1.2854116750038774e+01 1.2711581809604329e+01 2.2641980278104416e+01 - 18 -4.3096955761758995e+00 -1.9223912022853014e+01 7.9000623254438963e+01 - 19 -3.6557250488749723e+01 -2.4008797712603496e+01 -4.6906379653253587e+01 - 20 4.0430244682537058e+01 4.3367408075615103e+01 -3.0568173216213165e+01 - 21 -2.2233648415360879e+01 -2.5175462230434459e+01 7.7556799814543822e+01 - 22 -3.2896290497889161e+01 -7.4008238647922955e+00 -5.6779521143055455e+01 - 23 5.4738206511131686e+01 3.2962897136082404e+01 -2.0302232663948129e+01 - 24 1.6836507718223405e+01 -6.8988891903011790e+01 4.0189734824880482e+01 - 25 -4.9788824311046007e+01 1.0298368296372720e+01 -4.2822722831087503e+01 - 26 3.2480024672491567e+01 5.8484108401966807e+01 2.1410689331760921e+00 - 27 1.0631780570743651e+01 -7.5812252190257794e+01 2.6785237094554518e+01 - 28 -5.1807337133621779e+01 2.4969152478376095e+01 -3.5819948334944876e+01 - 29 4.1532654602026298e+01 5.0825271587590592e+01 9.0234792187328665e+00 + 1 1.0123638170253564e+00 -1.2509301778440569e+00 2.1945424754579066e+00 + 2 1.2954585046924219e+00 -1.6338868361150480e+00 -3.0887376983421388e+00 + 3 2.5466335168114949e-02 -1.3139527326988556e-02 3.5569205669245270e-02 + 4 -1.2001437337468715e-01 -5.6411226640158199e-02 -2.7885583471425601e-01 + 5 -5.1442751513887475e-01 3.3619784208637826e-01 -5.8612509036156044e-02 + 6 2.0722678070474260e-01 -2.0158659756241346e+00 1.2290591371946380e-01 + 7 1.2567425258842402e-01 1.6224546679223717e-01 1.2761543372504829e+00 + 8 -1.0885715086892622e+00 2.7631213623524755e+00 -1.1767360015218493e-01 + 9 1.4894653246735305e+00 -3.7617960133817596e+00 3.1053923325311867e+00 + 10 -7.1355785210118067e-02 3.1060808027765684e-02 -1.9612261171752393e-01 + 11 -6.7234571380736030e-01 7.7973238090172237e-01 -4.0949779264856478e-01 + 12 2.3138844234286426e+00 -4.3745924070374187e-01 1.4448078371866295e+00 + 13 1.4660368459556450e-01 -1.5128217536790745e-01 -1.4303100577311031e-01 + 14 -8.0170764963523022e-01 2.5412749138723761e-01 -3.4566627523769955e-01 + 15 3.3139749151276299e-01 7.0760705097098225e-02 -7.8854914191841807e-01 + 16 1.6259331841614227e-01 -9.7505266997933193e-01 -1.0324909305416741e+00 + 17 -2.8980837212603436e+00 5.6015117342873459e+00 -3.2180999995572175e+00 + 18 -1.9982604761757349e-02 2.3277591984645070e+00 5.7125759352746586e-01 + 19 -9.3976757841446423e-01 -2.1798221084742129e+00 4.9912918497113157e-01 + 20 5.2304880078763782e-01 -1.3238749831696685e-02 4.5568360647359851e-01 + 21 -4.8423714829029962e-01 1.3829719239752545e+00 -2.9605371449607998e-01 + 22 -5.7875171427304151e-01 -7.4682110680773817e-01 1.1868729457280150e-01 + 23 6.7125646044497977e-01 -2.4953977631185778e-01 6.5241242746355066e-01 + 24 2.4761790219940844e-01 1.3513641756258139e+00 -5.1709840925954764e-01 + 25 -1.1849995949271324e+00 -1.0312698215846192e+00 -5.7625135838985497e-01 + 26 4.6508977239668642e-01 -5.2650955871347083e-01 6.0143069461846999e-01 + 27 -7.4501807019330935e-01 1.4539167477546999e+00 -6.3344271356143678e-01 + 28 -2.3479546881246116e-01 -1.0024440823389091e+00 1.1214449785783520e-01 + 29 1.3369115781539251e+00 -4.6930078970690337e-01 5.1006619404609643e-01 run_vdwl: 0 -run_coul: 531.6316938435255 +run_coul: 254.55391272325517 run_stress: ! |2- - 2.6009236274938775e+02 1.6019149935649892e+02 2.4091972549720990e+02 1.1287278205291214e+02 7.6421249875941328e+01 1.0477154416076908e+00 + 1.0507664945308685e-01 -2.1621055562665443e+01 -1.2221091005466242e+01 1.1755690602099170e+01 -9.5887133975896877e-01 7.0291169104254232e+00 run_forces: ! |2 - 1 -1.4505263340624662e+01 -1.3069826884538898e+01 2.1092273240232334e+01 - 2 1.7216929699569594e+01 1.1222653354918181e+01 -2.1892026658892760e+01 - 3 1.9689659133582163e-01 8.4089709839905469e-01 3.2691229507601138e-01 - 4 -4.1534123724459276e-01 -4.7942040205303499e-01 -6.2372283685814967e-01 - 5 -8.0983629907930077e-01 -7.0364522896705939e-01 1.0613059784230094e-01 - 6 -1.5349604856791370e+01 1.5522546924799940e+01 2.0756281297832874e+01 - 7 2.5720205395173057e+00 -6.5136694191526150e+00 -2.5754699982146299e+01 - 8 5.4783011177980798e+00 -1.3193790377127209e+01 -1.9732158944509290e+01 - 9 6.7823956616450456e+00 2.9328643102381267e+00 2.9267293877977238e+01 - 10 1.5701490834675309e+00 -3.8293776378819531e+00 -4.4681502716367193e-02 - 11 -3.4080685500280089e-01 6.3394138301719993e-01 4.2521300521638838e-01 - 12 3.6335920149821210e-01 -1.4542882227067147e+00 3.4250588402471536e+00 - 13 3.1021896119350991e+00 -1.3629775427304498e+00 -1.9236601260012270e-01 - 14 -1.8791529231416744e+00 4.5416896729772194e-01 -3.4214086468019449e+00 - 15 4.9947705909602841e-01 3.2294681516348525e+00 1.5065456540899641e-01 - 16 9.3152895494380115e+00 -7.2584606007912740e+00 -2.8037105174417249e+01 - 17 -1.2853807315028448e+01 1.2730457404190695e+01 2.2646649542757135e+01 - 18 -3.8896274444740597e+00 -1.8742984005196448e+01 7.8575622292818892e+01 - 19 -3.6657681210304887e+01 -2.4147367233205287e+01 -4.6880920994817359e+01 - 20 4.0110836482195197e+01 4.3026017430590635e+01 -3.0166674909873894e+01 - 21 -2.2266717418800365e+01 -2.5007792207614962e+01 7.7439548112199361e+01 - 22 -3.2986424583514150e+01 -7.4943575521934962e+00 -5.6719145374965272e+01 - 23 5.4861504180702049e+01 3.2888028352139067e+01 -2.0245497429195499e+01 - 24 1.6994333620812245e+01 -6.9071608975734406e+01 4.0281992417369800e+01 - 25 -5.0022578934028282e+01 1.0236526699813956e+01 -4.3029340089682030e+01 - 26 3.2556772729625038e+01 5.8630191330865074e+01 2.2575959885742858e+00 - 27 1.0740675179027832e+01 -7.5810812405906574e+01 2.6655288241835144e+01 - 28 -5.1859214575097845e+01 2.4967730720910470e+01 -3.5779461664571272e+01 - 29 4.1474926685469335e+01 5.0824886566985427e+01 9.1126959066595141e+00 + 1 1.0112873572811580e+00 -1.2530276549384933e+00 2.1914171798830568e+00 + 2 1.2910756618724584e+00 -1.6320587244040410e+00 -3.0856670933130275e+00 + 3 2.5417581409305202e-02 -1.3319027044403169e-02 3.5458204071365587e-02 + 4 -1.1903572341057568e-01 -5.6295979790903755e-02 -2.7900490837896463e-01 + 5 -5.1384628561765300e-01 3.3652540945011555e-01 -5.8862099577371089e-02 + 6 2.0557510022365150e-01 -2.0123835505068053e+00 1.2614266602622692e-01 + 7 1.2735793319460478e-01 1.5853467760283904e-01 1.2701822406914272e+00 + 8 -1.0845932144371644e+00 2.7620784785572590e+00 -1.1812899137169540e-01 + 9 1.4885988571079642e+00 -3.7664983214134815e+00 3.1092838634072559e+00 + 10 -7.1576372143287825e-02 3.0962708284801813e-02 -1.9638669006856277e-01 + 11 -6.7233593581762241e-01 7.8020791757188945e-01 -4.0861239677017752e-01 + 12 2.3142942085570231e+00 -4.3672211901097824e-01 1.4445175637184764e+00 + 13 1.4585640919457624e-01 -1.5151491185814414e-01 -1.4301903387021225e-01 + 14 -8.0211823601348731e-01 2.5440367515238671e-01 -3.4418722798600709e-01 + 15 3.3243392757719303e-01 6.9345316666666712e-02 -7.8979319762464939e-01 + 16 1.6228153766652689e-01 -9.7649864654379481e-01 -1.0325498581820041e+00 + 17 -2.8985741606086464e+00 5.6081200657787251e+00 -3.2210360520327095e+00 + 18 -2.4779821561789064e-02 2.3252812699411116e+00 5.7548476355559375e-01 + 19 -9.3073282073812136e-01 -2.1761428427184564e+00 5.0466585562048227e-01 + 20 5.1962859124254412e-01 -1.3823144408831962e-02 4.4616022167444958e-01 + 21 -4.8279265992792930e-01 1.3791791897341579e+00 -2.9615403241565003e-01 + 22 -5.7432971719583037e-01 -7.4279690320955927e-01 1.2017370691438947e-01 + 23 6.6583750391632179e-01 -2.5085912738116967e-01 6.5043205083268785e-01 + 24 2.4365888962669718e-01 1.3544800679852296e+00 -5.2159886075913586e-01 + 25 -1.1794061912936245e+00 -1.0316188106119735e+00 -5.6975657126355306e-01 + 26 4.6484502577860515e-01 -5.2739147192840230e-01 6.0227258976224862e-01 + 27 -7.4688344945317542e-01 1.4562803511493001e+00 -6.3143583726328756e-01 + 28 -2.3319583763082030e-01 -1.0037908986220945e+00 1.1105104982326264e-01 + 29 1.3360518412010989e+00 -4.7065699348295009e-01 5.0895089489608403e-01 ... diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml index 2579a3bf6c..28961cd04e 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml @@ -1,7 +1,7 @@ --- lammps_version: 17 Feb 2022 date_generated: Fri Mar 18 22:17:32 2022 -epsilon: 5e-12 +epsilon: 2e-11 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/spce.sw b/unittest/force-styles/tests/spce.sw new file mode 100644 index 0000000000..8b0fd70f61 --- /dev/null +++ b/unittest/force-styles/tests/spce.sw @@ -0,0 +1,18 @@ +type +type +type +1 #epsilon in kcal/mol +1 #sigma in dimensionless +3.7 # a in Ang +1.0 #lambda dimensionless +0.8 #gamma in Ang +0.0 #costheta0 dimensionless +0 #two body part A=0 +0 #two body part B=0 +0 #two body part p=0 +0 #two body part q=0 +0.0 # use the standard Stillinger-Weber cutoff +table_CG_CG_CG.txt +VOTCA +linear +1001 diff --git a/unittest/force-styles/tests/spce2.3b b/unittest/force-styles/tests/spce2.3b new file mode 100644 index 0000000000..52fcd1e5e9 --- /dev/null +++ b/unittest/force-styles/tests/spce2.3b @@ -0,0 +1,71 @@ +type1 +type1 +type1 +3.7 # cut in Ang +1-1-1.table +ENTRY1 +linear +12 +type1 +type1 +type2 +3.7 # cut in Ang +1-1-2.table +ENTRY1 +linear +12 +type1 +type2 +type1 +3.7 # cut in Ang +1-1-2.table +ENTRY1 +linear +12 +type1 +type2 +type2 +3.7 # cut in Ang +1-1-1.table +ENTRY1 +linear +12 +type2 +type1 +type1 +3.7 # cut in Ang +1-1-1.table +ENTRY1 +linear +12 +type2 +type1 +type2 +3.7 # cut in Ang +1-1-2.table +ENTRY1 +linear +12 +type2 +type2 +type1 +3.7 # cut in Ang +1-1-2.table +ENTRY1 +linear +12 +type2 +type2 +type2 +3.7 # cut in Ang +1-1-1.table +ENTRY1 +linear +12 + + + + + + + diff --git a/unittest/force-styles/tests/table_CG_CG.txt b/unittest/force-styles/tests/table_CG_CG.txt new file mode 100644 index 0000000000..f4ccdd4b4e --- /dev/null +++ b/unittest/force-styles/tests/table_CG_CG.txt @@ -0,0 +1,1203 @@ +VOTCA +N 1200 R 0.010000 12.000000 + +1 1.0000000000e-02 1.5390100510e+15 2.1517330910e+16 +2 2.0000000000e-02 1.3370836560e+15 1.8774943350e+16 +3 3.0000000000e-02 1.1616510900e+15 1.6231560530e+16 +4 4.0000000000e-02 1.0092362200e+15 1.4101892510e+16 +5 5.0000000000e-02 8.7681900090e+14 1.2251648380e+16 +6 6.0000000000e-02 7.6177563290e+14 1.0644166230e+16 +7 7.0000000000e-02 6.6182657340e+14 9.2475943770e+15 +8 8.0000000000e-02 5.7499136800e+14 8.0342602660e+15 +9 9.0000000000e-02 4.9954940840e+14 6.9801221150e+15 +10 1.0000000000e-01 4.3400583970e+14 6.0642925570e+15 +11 1.1000000000e-01 3.7706193970e+14 5.2686247630e+15 +12 1.2000000000e-01 3.2758938550e+14 4.5773528620e+15 +13 1.3000000000e-01 2.8460789650e+14 3.9767795520e+15 +14 1.4000000000e-01 2.4726581000e+14 3.4550046890e+15 +15 1.5000000000e-01 2.1482320610e+14 3.0016894950e+15 +16 1.6000000000e-01 1.8663724620e+14 2.6078516910e+15 +17 1.7000000000e-01 1.6214943590e+14 2.2656875260e+15 +18 1.8000000000e-01 1.4087455790e+14 1.9684171380e+15 +19 1.9000000000e-01 1.2239105840e+14 1.7101502250e+15 +20 2.0000000000e-01 1.0633269330e+14 1.4857693190e+15 +21 2.1000000000e-01 9.2381272170e+13 1.2908283940e+15 +22 2.2000000000e-01 8.0260352480e+13 1.1214647680e+15 +23 2.3000000000e-01 6.9729762630e+13 9.7432255940e+14 +24 2.4000000000e-01 6.0580842800e+13 8.4648620020e+14 +25 2.5000000000e-01 5.2632310450e+13 7.3542265870e+14 +26 2.6000000000e-01 4.5726668290e+13 6.3893125110e+14 +27 2.7000000000e-01 3.9727083510e+13 5.5510003510e+14 +28 2.8000000000e-01 3.4514676520e+13 4.8226792540e+14 +29 2.9000000000e-01 2.9986165360e+13 4.1899178020e+14 +30 3.0000000000e-01 2.6051819210e+13 3.6401780550e+14 +31 3.1000000000e-01 2.2633680440e+13 3.1625671190e+14 +32 3.2000000000e-01 1.9664019850e+13 2.7476213060e+14 +33 3.3000000000e-01 1.7083994700e+13 2.3871186160e+14 +34 3.4000000000e-01 1.4842482730e+13 2.0739158160e+14 +35 3.5000000000e-01 1.2895069180e+13 1.8018069090e+14 +36 3.6000000000e-01 1.1203166760e+13 1.5654001530e+14 +37 3.7000000000e-01 9.7332510350e+12 1.3600112350e+14 +38 3.8000000000e-01 8.4561961580e+12 1.1815704470e+14 +39 3.9000000000e-01 7.3466977490e+12 1.0265420510e+14 +40 4.0000000000e-01 6.3827714970e+12 8.9185421350e+13 +41 4.1000000000e-01 5.5453175530e+12 7.7483814470e+13 +42 4.2000000000e-01 4.8177420700e+12 6.7317521340e+13 +43 4.3000000000e-01 4.1856284030e+12 5.8485100540e+13 +44 4.4000000000e-01 3.6364514480e+12 5.0811540850e+13 +45 4.5000000000e-01 3.1593294630e+12 4.4144793450e+13 +46 4.6000000000e-01 2.7448084480e+12 3.8352759160e+13 +47 4.7000000000e-01 2.3846748190e+12 3.3320670910e+13 +48 4.8000000000e-01 2.0717926600e+12 2.8948819710e+13 +49 4.9000000000e-01 1.7999623210e+12 2.5150578890e+13 +50 5.0000000000e-01 1.5637975860e+12 2.1850687690e+13 +51 5.1000000000e-01 1.3586189330e+12 1.8983759960e+13 +52 5.2000000000e-01 1.1803608230e+12 1.6492988570e+13 +53 5.3000000000e-01 1.0254911360e+12 1.4329019780e+13 +54 5.4000000000e-01 8.9094118400e+11 1.2448975330e+13 +55 5.5000000000e-01 7.7404490960e+11 1.0815602820e+13 +56 5.6000000000e-01 6.7248605500e+11 9.3965375690e+12 +57 5.7000000000e-01 5.8425226830e+11 8.1636613100e+12 +58 5.8000000000e-01 5.0759522880e+11 7.0925450460e+12 +59 5.9000000000e-01 4.4099600520e+11 6.1619649960e+12 +60 6.0000000000e-01 3.8313495790e+11 5.3534820520e+12 +61 6.1000000000e-01 3.3286559110e+11 4.6510764180e+12 +62 6.2000000000e-01 2.8919183550e+11 4.0408301810e+12 +63 6.3000000000e-01 2.5124831160e+11 3.5106515320e+12 +64 6.4000000000e-01 2.1828318200e+11 3.0500351720e+12 +65 6.5000000000e-01 1.8964325470e+11 2.6498541560e+12 +66 6.6000000000e-01 1.6476103990e+11 2.3021790410e+12 +67 6.7000000000e-01 1.4314350540e+11 2.0001207710e+12 +68 6.8000000000e-01 1.2436230780e+11 1.7376941700e+12 +69 6.9000000000e-01 1.0804530420e+11 1.5096993500e+12 +70 7.0000000000e-01 9.3869179290e+10 1.3116186770e+12 +71 7.1000000000e-01 8.1553038190e+10 1.1395272530e+12 +72 7.2000000000e-01 7.0852841020e+10 9.9001514990e+11 +73 7.3000000000e-01 6.1556567270e+10 8.6011983840e+11 +74 7.4000000000e-01 5.3480014620e+10 7.4726749030e+11 +75 7.5000000000e-01 4.6463149110e+10 6.4922197710e+11 +76 7.6000000000e-01 4.0366934090e+10 5.6404056250e+11 +77 7.7000000000e-01 3.5070575270e+10 4.9003540760e+11 +78 7.8000000000e-01 3.0469127200e+10 4.2574012690e+11 +79 7.9000000000e-01 2.6471413860e+10 3.6988073290e+11 +80 8.0000000000e-01 2.2998222010e+10 3.2135039170e+11 +81 8.1000000000e-01 1.9980731610e+10 2.7918749220e+11 +82 8.2000000000e-01 1.7359152180e+10 2.4255659190e+11 +83 8.3000000000e-01 1.5081538060e+10 2.1073186270e+11 +84 8.4000000000e-01 1.3102759170e+10 1.8308270910e+11 +85 8.5000000000e-01 1.1383606700e+10 1.5906127310e+11 +86 8.6000000000e-01 9.8900162880e+09 1.3819157870e+11 +87 8.7000000000e-01 8.5923929670e+09 1.2006010050e+11 +88 8.8000000000e-01 7.4650248040e+09 1.0430756970e+11 +89 8.9000000000e-01 6.4855734070e+09 9.0621855610e+10 +90 9.0000000000e-01 5.6346312990e+09 7.8731780830e+10 +91 9.1000000000e-01 4.8953373730e+09 6.8401747800e+10 +92 9.2000000000e-01 4.2530427840e+09 5.9427070660e+10 +93 9.3000000000e-01 3.6950207000e+09 5.1629919420e+10 +94 9.4000000000e-01 3.2102141140e+09 4.4855796350e+10 +95 9.5000000000e-01 2.7890167600e+09 3.8970474660e+10 +96 9.6000000000e-01 2.4230827630e+09 3.3857338820e+10 +97 9.7000000000e-01 2.1051612740e+09 2.9415073900e+10 +98 9.8000000000e-01 1.8289527940e+09 2.5555658020e+10 +99 9.9000000000e-01 1.5889843520e+09 2.2202618260e+10 +100 1.0000000000e+00 1.3805010610e+09 1.9289515350e+10 +101 1.0100000000e+00 1.1993718980e+09 1.6758627210e+10 +102 1.0200000000e+00 1.0420078550e+09 1.4559805200e+10 +103 1.0300000000e+00 9.0529082110e+08 1.2649480460e+10 +104 1.0400000000e+00 7.8651179720e+08 1.0989800600e+10 +105 1.0500000000e+00 6.8331721990e+08 9.5478796640e+09 +106 1.0600000000e+00 5.9366232610e+08 8.2951465080e+09 +107 1.0700000000e+00 5.1577063650e+08 7.2067786790e+09 +108 1.0800000000e+00 4.4809875540e+08 6.2612105610e+09 +109 1.0900000000e+00 3.8930578900e+08 5.4397060660e+09 +110 1.1000000000e+00 3.3822677600e+08 4.7259873780e+09 +111 1.1100000000e+00 2.9384960420e+08 4.1059124200e+09 +112 1.1200000000e+00 2.5529495590e+08 3.5671946310e+09 +113 1.1300000000e+00 2.2179888490e+08 3.0991595130e+09 +114 1.1400000000e+00 1.9269767840e+08 2.6925331190e+09 +115 1.1500000000e+00 1.6741470680e+08 2.3392582940e+09 +116 1.1600000000e+00 1.4544899700e+08 2.0323350270e+09 +117 1.1700000000e+00 1.2636530640e+08 1.7656817420e+09 +118 1.1800000000e+00 1.0978549870e+08 1.5340148030e+09 +119 1.1900000000e+00 9.5381050880e+07 1.3327438110e+09 +120 1.2000000000e+00 8.2866544090e+07 1.1578806560e+09 +121 1.2100000000e+00 7.1994007890e+07 1.0059604880e+09 +122 1.2200000000e+00 6.2548006910e+07 8.7397306220e+08 +123 1.2300000000e+00 5.4341372050e+07 7.5930309660e+08 +124 1.2400000000e+00 4.7211491810e+07 6.5967844720e+08 +125 1.2500000000e+00 4.1017090210e+07 5.7312508750e+08 +126 1.2600000000e+00 3.5635427400e+07 4.9792799400e+08 +127 1.2700000000e+00 3.0959867700e+07 4.3259716360e+08 +128 1.2800000000e+00 2.6897766570e+07 3.7583808940e+08 +129 1.2900000000e+00 2.3368634950e+07 3.2652611100e+08 +130 1.3000000000e+00 2.0302544380e+07 2.8368412930e+08 +131 1.3100000000e+00 1.7638741380e+07 2.4646324610e+08 +132 1.3200000000e+00 1.5324443660e+07 2.1412594280e+08 +133 1.3300000000e+00 1.3313794240e+07 1.8603146760e+08 +134 1.3400000000e+00 1.1566952840e+07 1.6162313870e+08 +135 1.3500000000e+00 1.0049306430e+07 1.4041731380e+08 +136 1.3600000000e+00 8.7307833840e+06 1.2199380710e+08 +137 1.3700000000e+00 7.5852576540e+06 1.0598756360e+08 +138 1.3800000000e+00 6.5900310600e+06 9.2081425300e+07 +139 1.3900000000e+00 5.7253835470e+06 7.9999847130e+07 +140 1.4000000000e+00 4.9741824370e+06 6.9503436980e+07 +141 1.4100000000e+00 4.3215429520e+06 6.0384212290e+07 +142 1.4200000000e+00 3.7545332780e+06 5.2461478920e+07 +143 1.4300000000e+00 3.2619183220e+06 4.5578250780e+07 +144 1.4400000000e+00 2.8339370970e+06 3.9598139180e+07 +145 1.4500000000e+00 2.4621093100e+06 3.4402650380e+07 +146 1.4600000000e+00 2.1390673290e+06 2.9888837650e+07 +147 1.4700000000e+00 1.8584101920e+06 2.5967261420e+07 +148 1.4800000000e+00 1.6145767810e+06 2.2560217080e+07 +149 1.4900000000e+00 1.4027356250e+06 1.9600195280e+07 +150 1.5000000000e+00 1.2186891680e+06 1.7028544260e+07 +151 1.5100000000e+00 1.0587905960e+06 1.4794307680e+07 +152 1.5200000000e+00 9.1987157580e+05 1.2853214960e+07 +153 1.5300000000e+00 7.9917947840e+05 1.1166804040e+07 +154 1.5400000000e+00 6.9432283320e+05 9.7016592970e+06 +155 1.5500000000e+00 6.0322394380e+05 8.4287494270e+06 +156 1.5600000000e+00 5.2407771850e+05 7.3228521760e+06 +157 1.5700000000e+00 4.5531590360e+05 6.3620545920e+06 +158 1.5800000000e+00 3.9557600860e+05 5.5273188170e+06 +159 1.5900000000e+00 3.4367430900e+05 4.8021048650e+06 +160 1.6000000000e+00 2.9858239160e+05 4.1720428830e+06 +161 1.6100000000e+00 2.5940677620e+05 3.6246484220e+06 +162 1.6200000000e+00 2.2537121220e+05 3.1490750570e+06 +163 1.6300000000e+00 1.9580129720e+05 2.7358994750e+06 +164 1.6400000000e+00 1.7011111410e+05 2.3769347520e+06 +165 1.6500000000e+00 1.4779162110e+05 2.0650681300e+06 +166 1.6600000000e+00 1.2840056570e+05 1.7941200870e+06 +167 1.6700000000e+00 1.1155372100e+05 1.5587218830e+06 +168 1.6800000000e+00 9.6917272910e+04 1.3542091900e+06 +169 1.6900000000e+00 8.4201205530e+04 1.1765296620e+06 +170 1.7000000000e+00 7.3153554570e+04 1.0221626440e+06 +171 1.7100000000e+00 6.3555414830e+04 8.8804940820e+05 +172 1.7200000000e+00 5.5216602630e+04 7.7153255030e+05 +173 1.7300000000e+00 4.7971887440e+04 6.7030333080e+05 +174 1.7400000000e+00 4.1677717830e+04 5.8235592920e+05 +175 1.7500000000e+00 3.6209377130e+04 5.0594769970e+05 +176 1.7600000000e+00 3.1458512140e+04 4.3956464070e+05 +177 1.7700000000e+00 2.7330986170e+04 3.8189139610e+05 +178 1.7800000000e+00 2.3745013820e+04 3.3178519130e+05 +179 1.7900000000e+00 2.0629540310e+04 2.8825319000e+05 +180 1.8000000000e+00 1.7922833690e+04 2.5043282140e+05 +181 1.8100000000e+00 1.5571261530e+04 2.1757468850e+05 +182 1.8200000000e+00 1.3528228280e+04 1.8902771940e+05 +183 1.8300000000e+00 1.1753251980e+04 1.6422626610e+05 +184 1.8400000000e+00 1.0211162120e+04 1.4267889680e+05 +185 1.8500000000e+00 8.8714027380e+03 1.2395865830e+05 +186 1.8600000000e+00 7.7074269920e+03 1.0769461580e+05 +187 1.8700000000e+00 6.6961711240e+03 9.3564503040e+04 +188 1.8800000000e+00 5.8175974640e+03 8.1288337100e+04 +189 1.8900000000e+00 5.0542973920e+03 7.0622870140e+04 +190 1.9000000000e+00 4.3911463950e+03 6.1356769800e+04 +191 1.9100000000e+00 3.8150043740e+03 5.3306431660e+04 +192 1.9200000000e+00 3.3144552850e+03 4.6312341170e+04 +193 1.9300000000e+00 2.8795809280e+03 4.0235912960e+04 +194 1.9400000000e+00 2.5017644250e+03 3.4956744810e+04 +195 1.9500000000e+00 2.1735194790e+03 3.0370231910e+04 +196 1.9600000000e+00 1.8883420360e+03 2.6385494170e+04 +197 1.9700000000e+00 1.6405814060e+03 2.2923575440e+04 +198 1.9800000000e+00 1.4253283030e+03 1.9915879070e+04 +199 1.9900000000e+00 1.2383175650e+03 1.7302808640e+04 +200 2.0000000000e+00 1.0758436410e+03 1.5032587100e+04 +201 2.0100000000e+00 9.3468717030e+02 1.3060230840e+04 +202 2.0200000000e+00 8.1205118730e+02 1.1346658320e+04 +203 2.0300000000e+00 7.0550570470e+02 9.8579157300e+03 +204 2.0400000000e+00 6.1293956240e+02 8.5645041750e+03 +205 2.0500000000e+00 5.3251859570e+02 7.4407951710e+03 +206 2.0600000000e+00 4.6264929230e+02 6.4645228320e+03 +207 2.0700000000e+00 4.0194721720e+02 5.6163426730e+03 +208 2.0800000000e+00 3.4920958090e+02 4.8794483120e+03 +209 2.0900000000e+00 3.0339140600e+02 4.2392384540e+03 +210 2.1000000000e+00 2.6358482200e+02 3.6830275730e+03 +211 2.1100000000e+00 2.2900107590e+02 3.1997945490e+03 +212 2.1200000000e+00 1.9895490330e+02 2.7799642980e+03 +213 2.1300000000e+00 1.7285095010e+02 2.4152180320e+03 +214 2.1400000000e+00 1.5017197590e+02 2.0983284390e+03 +215 2.1500000000e+00 1.3046860510e+02 1.8230164640e+03 +216 2.1600000000e+00 1.1335042260e+02 1.5838269000e+03 +217 2.1700000000e+00 9.8478237570e+01 1.3760202940e+03 +218 2.1800000000e+00 8.5557363230e+01 1.1954790320e+03 +219 2.1900000000e+00 7.4331777090e+01 1.0386257540e+03 +220 2.2000000000e+00 6.4579048210e+01 9.0235246990e+02 +221 2.2100000000e+00 5.6105929810e+01 7.8395897350e+02 +222 2.2200000000e+00 4.8744530110e+01 6.8109934040e+02 +223 2.2300000000e+00 4.2348985630e+01 5.9173544430e+02 +224 2.2400000000e+00 3.6792570990e+01 5.1409657190e+02 +225 2.2500000000e+00 3.1965187820e+01 4.4664433710e+02 +226 2.2600000000e+00 2.7771183280e+01 3.8804219830e+02 +227 2.2700000000e+00 2.4127454700e+01 3.3712897510e+02 +228 2.2800000000e+00 2.0961802900e+01 2.9289584070e+02 +229 2.2900000000e+00 1.8211501630e+01 2.5446633130e+02 +230 2.3000000000e+00 1.5822054690e+01 2.2107898030e+02 +231 2.3100000000e+00 1.3746116030e+01 1.9207222920e+02 +232 2.3200000000e+00 1.1942551680e+01 1.6687131990e+02 +233 2.3300000000e+00 1.0375624680e+01 1.4497690530e+02 +234 2.3400000000e+00 9.0142869290e+00 1.2595515570e+02 +235 2.3500000000e+00 7.8315640090e+00 1.0942916200e+02 +236 2.3600000000e+00 6.8040206970e+00 9.5071467470e+01 +237 2.3700000000e+00 5.9112965930e+00 8.2597579690e+01 +238 2.3800000000e+00 5.1357026910e+00 7.1760333060e+01 +239 2.3900000000e+00 4.4618708810e+00 6.2344991470e+01 +240 2.4000000000e+00 3.8764494280e+00 5.3036352210e+01 +241 2.4100000000e+00 3.3678384170e+00 4.8261295350e+01 +242 2.4200000000e+00 2.8941569300e+00 4.5857614440e+01 +243 2.4300000000e+00 2.4468631800e+00 4.3406963180e+01 +244 2.4400000000e+00 2.0256587860e+00 4.0812932280e+01 +245 2.4500000000e+00 1.6301260100e+00 3.8266641770e+01 +246 2.4600000000e+00 1.2597277660e+00 3.5780026500e+01 +247 2.4700000000e+00 9.1380761130e-01 3.3365021740e+01 +248 2.4800000000e+00 5.9158975140e-01 3.1033562180e+01 +249 2.4900000000e+00 2.9217903890e-01 2.8797954450e+01 +250 2.5000000000e+00 1.4560973470e-02 2.6671263930e+01 +251 2.5100000000e+00 -2.4238415820e-01 2.4661823870e+01 +252 2.5200000000e+00 -4.7981058030e-01 2.2768039630e+01 +253 2.5300000000e+00 -6.9883632600e-01 2.0983874620e+01 +254 2.5400000000e+00 -9.0052909770e-01 1.9303963110e+01 +255 2.5500000000e+00 -1.0859062660e+00 1.7723272100e+01 +256 2.5600000000e+00 -1.2559348720e+00 1.6236768280e+01 +257 2.5700000000e+00 -1.4115316230e+00 1.4839418560e+01 +258 2.5800000000e+00 -1.5535628980e+00 1.3526189880e+01 +259 2.5900000000e+00 -1.6828447430e+00 1.2292001960e+01 +260 2.6000000000e+00 -1.8001428730e+00 1.1131681390e+01 +261 2.6100000000e+00 -1.9061744430e+00 1.0040648660e+01 +262 2.6200000000e+00 -2.0016168960e+00 9.0155628370e+00 +263 2.6300000000e+00 -2.0871168150e+00 8.0536395060e+00 +264 2.6400000000e+00 -2.1632916940e+00 7.1520107860e+00 +265 2.6500000000e+00 -2.2307299330e+00 6.3077675390e+00 +266 2.6600000000e+00 -2.2899908440e+00 5.5180009250e+00 +267 2.6700000000e+00 -2.3416046480e+00 4.7798017190e+00 +268 2.6800000000e+00 -2.3860724750e+00 4.0902608440e+00 +269 2.6900000000e+00 -2.4238663650e+00 3.4464440960e+00 +270 2.7000000000e+00 -2.4554292680e+00 2.8453664940e+00 +271 2.7100000000e+00 -2.4811759890e+00 2.2843626470e+00 +272 2.7200000000e+00 -2.5014979300e+00 1.7614298710e+00 +273 2.7300000000e+00 -2.5167678200e+00 1.2748621430e+00 +274 2.7400000000e+00 -2.5273406710e+00 8.2290948110e-01 +275 2.7500000000e+00 -2.5335537710e+00 4.0379949770e-01 +276 2.7600000000e+00 -2.5357266870e+00 1.5760010280e-02 +277 2.7700000000e+00 -2.5341612640e+00 -3.4298090310e-01 +278 2.7800000000e+00 -2.5291416280e+00 -6.7419561340e-01 +279 2.7900000000e+00 -2.5209341800e+00 -9.7967404420e-01 +280 2.8000000000e+00 -2.5097876030e+00 -1.2612416950e+00 +281 2.8100000000e+00 -2.4959335160e+00 -1.5205003860e+00 +282 2.8200000000e+00 -2.4795897790e+00 -1.7585895080e+00 +283 2.8300000000e+00 -2.4609637910e+00 -1.9764437290e+00 +284 2.8400000000e+00 -2.4402531510e+00 -2.1750280650e+00 +285 2.8500000000e+00 -2.4176456570e+00 -2.3553224700e+00 +286 2.8600000000e+00 -2.3933193080e+00 -2.5183069580e+00 +287 2.8700000000e+00 -2.3674423020e+00 -2.6649614780e+00 +288 2.8800000000e+00 -2.3401730380e+00 -2.7962661310e+00 +289 2.8900000000e+00 -2.3116601130e+00 -2.9132049510e+00 +290 2.9000000000e+00 -2.2820423250e+00 -3.0167697150e+00 +291 2.9100000000e+00 -2.2514488140e+00 -3.1079034930e+00 +292 2.9200000000e+00 -2.2199997690e+00 -3.1874493890e+00 +293 2.9300000000e+00 -2.1878071410e+00 -3.2562082020e+00 +294 2.9400000000e+00 -2.1549747780e+00 -3.3149866360e+00 +295 2.9500000000e+00 -2.1215984330e+00 -3.3645944150e+00 +296 2.9600000000e+00 -2.0877657580e+00 -3.4058413510e+00 +297 2.9700000000e+00 -2.0535563080e+00 -3.4395371300e+00 +298 2.9800000000e+00 -2.0190415380e+00 -3.4664917760e+00 +299 2.9900000000e+00 -1.9842848030e+00 -3.4875215040e+00 +300 3.0000000000e+00 -1.9493413610e+00 -3.5034563820e+00 +301 3.0100000000e+00 -1.9142585830e+00 -3.5150471190e+00 +302 3.0200000000e+00 -1.8790770150e+00 -3.5228910160e+00 +303 3.0300000000e+00 -1.8438314390e+00 -3.5275214590e+00 +304 3.0400000000e+00 -1.8085510860e+00 -3.5289583340e+00 +305 3.0500000000e+00 -1.7732596360e+00 -3.5288908310e+00 +306 3.0600000000e+00 -1.7379752190e+00 -3.5280320940e+00 +307 3.0700000000e+00 -1.7027104110e+00 -3.5253862790e+00 +308 3.0800000000e+00 -1.6674722390e+00 -3.5223395310e+00 +309 3.0900000000e+00 -1.6322621780e+00 -3.5194378970e+00 +310 3.1000000000e+00 -1.5970761530e+00 -3.5173081740e+00 +311 3.1100000000e+00 -1.5619051030e+00 -3.5168447480e+00 +312 3.1200000000e+00 -1.5267378260e+00 -3.5168563320e+00 +313 3.1300000000e+00 -1.4915638140e+00 -3.5177518380e+00 +314 3.1400000000e+00 -1.4563738200e+00 -3.5198200760e+00 +315 3.1500000000e+00 -1.4211598630e+00 -3.5226190880e+00 +316 3.1600000000e+00 -1.3859152220e+00 -3.5260255420e+00 +317 3.1700000000e+00 -1.3506344420e+00 -3.5299136690e+00 +318 3.1800000000e+00 -1.3153133290e+00 -3.5341578930e+00 +319 3.1900000000e+00 -1.2799489510e+00 -3.5386343920e+00 +320 3.2000000000e+00 -1.2445396420e+00 -3.5432253600e+00 +321 3.2100000000e+00 -1.2090851000e+00 -3.5477800910e+00 +322 3.2200000000e+00 -1.1735869120e+00 -3.5520723480e+00 +323 3.2300000000e+00 -1.1380490760e+00 -3.5558443110e+00 +324 3.2400000000e+00 -1.1024780970e+00 -3.5588459720e+00 +325 3.2500000000e+00 -1.0668829990e+00 -3.5606965620e+00 +326 3.2600000000e+00 -1.0312753150e+00 -3.5607083610e+00 +327 3.2700000000e+00 -9.9566909100e-01 -3.5605541570e+00 +328 3.2800000000e+00 -9.6008088680e-01 -3.5579489480e+00 +329 3.2900000000e+00 -9.2452977440e-01 -3.5533045150e+00 +330 3.3000000000e+00 -8.8903733850e-01 -3.5464131370e+00 +331 3.3100000000e+00 -8.5362827280e-01 -3.5368973480e+00 +332 3.3200000000e+00 -8.1833336060e-01 -3.5239572210e+00 +333 3.3300000000e+00 -7.8319245590e-01 -3.5065687200e+00 +334 3.3400000000e+00 -7.4825507930e-01 -3.4837450990e+00 +335 3.3500000000e+00 -7.1358041810e-01 -3.4545190770e+00 +336 3.3600000000e+00 -6.7923732650e-01 -3.4179238010e+00 +337 3.3700000000e+00 -6.4530432520e-01 -3.3729926040e+00 +338 3.3800000000e+00 -6.1186960170e-01 -3.3187588290e+00 +339 3.3900000000e+00 -5.7903101040e-01 -3.2542297980e+00 +340 3.4000000000e+00 -5.4689607220e-01 -3.1783580730e+00 +341 3.4100000000e+00 -5.1558072820e-01 -3.0904661310e+00 +342 3.4200000000e+00 -4.8520310790e-01 -2.9907576290e+00 +343 3.4300000000e+00 -4.5587729660e-01 -2.8798705460e+00 +344 3.4400000000e+00 -4.2771208900e-01 -2.7583688810e+00 +345 3.4500000000e+00 -4.0081098950e-01 -2.6267815840e+00 +346 3.4600000000e+00 -3.7527221170e-01 -2.4856376550e+00 +347 3.4700000000e+00 -3.5118867890e-01 -2.3354660560e+00 +348 3.4800000000e+00 -3.2864802400e-01 -2.1767958410e+00 +349 3.4900000000e+00 -3.0773258900e-01 -2.0101012320e+00 +350 3.5000000000e+00 -2.8851942590e-01 -1.8357436110e+00 +351 3.5100000000e+00 -2.7107800890e-01 -1.6548080920e+00 +352 3.5200000000e+00 -2.5545880110e-01 -1.4699936560e+00 +353 3.5300000000e+00 -2.4168181970e-01 -1.2847553720e+00 +354 3.5400000000e+00 -2.2973434990e-01 -1.1024244830e+00 +355 3.5500000000e+00 -2.1957094400e-01 -9.2627328940e-01 +356 3.5600000000e+00 -2.1111342220e-01 -7.5957368970e-01 +357 3.5700000000e+00 -2.0425087220e-01 -6.0559684560e-01 +358 3.5800000000e+00 -1.9883964940e-01 -4.6761229440e-01 +359 3.5900000000e+00 -1.9470337660e-01 -3.4905079620e-01 +360 3.6000000000e+00 -1.9163294430e-01 -2.5373424880e-01 +361 3.6100000000e+00 -1.8939187810e-01 -1.8353921730e-01 +362 3.6200000000e+00 -1.8774317600e-01 -1.3643213030e-01 +363 3.6300000000e+00 -1.8647614590e-01 -1.0900277830e-01 +364 3.6400000000e+00 -1.8541177300e-01 -1.0217451770e-01 +365 3.6500000000e+00 -1.8440272000e-01 -1.0257729120e-01 +366 3.6600000000e+00 -1.8333332690e-01 -1.1032823210e-01 +367 3.6700000000e+00 -1.8211961100e-01 -1.2921992570e-01 +368 3.6800000000e+00 -1.8070926700e-01 -1.5163890710e-01 +369 3.6900000000e+00 -1.7908166700e-01 -1.7442524050e-01 +370 3.7000000000e+00 -1.7724786040e-01 -1.9407009560e-01 +371 3.7100000000e+00 -1.7524726610e-01 -2.0823224750e-01 +372 3.7200000000e+00 -1.7313113340e-01 -2.1707301960e-01 +373 3.7300000000e+00 -1.7094600210e-01 -2.2155931460e-01 +374 3.7400000000e+00 -1.6873039540e-01 -2.2155890460e-01 +375 3.7500000000e+00 -1.6651481940e-01 -2.2155573260e-01 +376 3.7600000000e+00 -1.6432176310e-01 -2.1804279820e-01 +377 3.7700000000e+00 -1.6216569890e-01 -2.1356882610e-01 +378 3.7800000000e+00 -1.6005308190e-01 -2.0885944940e-01 +379 3.7900000000e+00 -1.5798235030e-01 -2.0472213750e-01 +380 3.8000000000e+00 -1.5594392560e-01 -2.0241705720e-01 +381 3.8100000000e+00 -1.5392117290e-01 -2.0241827750e-01 +382 3.8200000000e+00 -1.5189520660e-01 -2.0277318370e-01 +383 3.8300000000e+00 -1.4984969490e-01 -2.0558456320e-01 +384 3.8400000000e+00 -1.4777182060e-01 -2.0947681570e-01 +385 3.8500000000e+00 -1.4565228170e-01 -2.1411724290e-01 +386 3.8600000000e+00 -1.4348529090e-01 -2.1915859900e-01 +387 3.8700000000e+00 -1.4126857580e-01 -2.2425124170e-01 +388 3.8800000000e+00 -1.3900337870e-01 -2.2904532330e-01 +389 3.8900000000e+00 -1.3669445690e-01 -2.3317711800e-01 +390 3.9000000000e+00 -1.3435008260e-01 -2.3624008380e-01 +391 3.9100000000e+00 -1.3198159090e-01 -2.3798596650e-01 +392 3.9200000000e+00 -1.2960112040e-01 -2.3812682950e-01 +393 3.9300000000e+00 -1.2721935400e-01 -2.3811467960e-01 +394 3.9400000000e+00 -1.2484506660e-01 -2.3702815340e-01 +395 3.9500000000e+00 -1.2248512560e-01 -2.3523949930e-01 +396 3.9600000000e+00 -1.2014449050e-01 -2.3305519030e-01 +397 3.9700000000e+00 -1.1782621320e-01 -2.3066255720e-01 +398 3.9800000000e+00 -1.1553143760e-01 -2.2825101140e-01 +399 3.9900000000e+00 -1.1325940020e-01 -2.2601755080e-01 +400 4.0000000000e+00 -1.1100742940e-01 -2.2417862310e-01 +401 4.0100000000e+00 -1.0877118630e-01 -2.2286349760e-01 +402 4.0200000000e+00 -1.0654586480e-01 -2.2202230410e-01 +403 4.0300000000e+00 -1.0432739300e-01 -2.2154405680e-01 +404 4.0400000000e+00 -1.0211267260e-01 -2.2132766590e-01 +405 4.0500000000e+00 -9.9899579570e-02 -2.2126903570e-01 +406 4.0600000000e+00 -9.7686963680e-02 -2.2125247670e-01 +407 4.0700000000e+00 -9.5474648740e-02 -2.2122106790e-01 +408 4.0800000000e+00 -9.3263432500e-02 -2.2107465710e-01 +409 4.0900000000e+00 -9.1055086710e-02 -2.2070112830e-01 +410 4.1000000000e+00 -8.8852357090e-02 -2.1999541830e-01 +411 4.1100000000e+00 -8.6658837090e-02 -2.1888407060e-01 +412 4.1200000000e+00 -8.4478336830e-02 -2.1738813900e-01 +413 4.1300000000e+00 -8.2314251940e-02 -2.1557604180e-01 +414 4.1400000000e+00 -8.0169437390e-02 -2.1350571680e-01 +415 4.1500000000e+00 -7.8046207450e-02 -2.1123112730e-01 +416 4.1600000000e+00 -7.5946335690e-02 -2.0880628380e-01 +417 4.1700000000e+00 -7.3871055030e-02 -2.0628522250e-01 +418 4.1800000000e+00 -7.1821057660e-02 -2.0372199140e-01 +419 4.1900000000e+00 -6.9796495110e-02 -2.0117226580e-01 +420 4.2000000000e+00 -6.7796978220e-02 -1.9869515570e-01 +421 4.2100000000e+00 -6.5821640000e-02 -1.9632881020e-01 +422 4.2200000000e+00 -6.3869449890e-02 -1.9406713000e-01 +423 4.2300000000e+00 -6.1939528000e-02 -1.9188425280e-01 +424 4.2400000000e+00 -6.0031208040e-02 -1.8975732620e-01 +425 4.2500000000e+00 -5.8144037210e-02 -1.8766499860e-01 +426 4.2600000000e+00 -5.6277776300e-02 -1.8558591260e-01 +427 4.2700000000e+00 -5.4432399640e-02 -1.8349871850e-01 +428 4.2800000000e+00 -5.2608095090e-02 -1.8138206230e-01 +429 4.2900000000e+00 -5.0805264080e-02 -1.7921412530e-01 +430 4.3000000000e+00 -4.9024521580e-02 -1.7697218360e-01 +431 4.3100000000e+00 -4.7266676850e-02 -1.7463962540e-01 +432 4.3200000000e+00 -4.5532637180e-02 -1.7221329340e-01 +433 4.3300000000e+00 -4.3823311560e-02 -1.6969643540e-01 +434 4.3400000000e+00 -4.2139591520e-02 -1.6709130180e-01 +435 4.3500000000e+00 -4.0482351020e-02 -1.6439964880e-01 +436 4.3600000000e+00 -3.8852446520e-02 -1.6162322490e-01 +437 4.3700000000e+00 -3.7250716970e-02 -1.5876378180e-01 +438 4.3800000000e+00 -3.5677983800e-02 -1.5582307140e-01 +439 4.3900000000e+00 -3.4135050920e-02 -1.5280279030e-01 +440 4.4000000000e+00 -3.2622704710e-02 -1.4970451960e-01 +441 4.4100000000e+00 -3.1141711720e-02 -1.4653058420e-01 +442 4.4200000000e+00 -2.9692807030e-02 -1.4328494170e-01 +443 4.4300000000e+00 -2.8276682610e-02 -1.3997231400e-01 +444 4.4400000000e+00 -2.6893985010e-02 -1.3659730260e-01 +445 4.4500000000e+00 -2.5545315350e-02 -1.3316445100e-01 +446 4.4600000000e+00 -2.4231229320e-02 -1.2967830180e-01 +447 4.4700000000e+00 -2.2952237190e-02 -1.2614339590e-01 +448 4.4800000000e+00 -2.1708803810e-02 -1.2256427830e-01 +449 4.4900000000e+00 -2.0501348580e-02 -1.1894531750e-01 +450 4.5000000000e+00 -1.9330245510e-02 -1.1529053780e-01 +451 4.5100000000e+00 -1.8195816190e-02 -1.1160621010e-01 +452 4.5200000000e+00 -1.7098295100e-02 -1.0790348070e-01 +453 4.5300000000e+00 -1.6037794770e-02 -1.0419576570e-01 +454 4.5400000000e+00 -1.5014298890e-02 -1.0049612610e-01 +455 4.5500000000e+00 -1.4027662260e-02 -9.6817447880e-02 +456 4.5600000000e+00 -1.3077610840e-02 -9.3172619330e-02 +457 4.5700000000e+00 -1.2163741680e-02 -8.9574526510e-02 +458 4.5800000000e+00 -1.1285523010e-02 -8.6036054070e-02 +459 4.5900000000e+00 -1.0442294160e-02 -8.2570683340e-02 +460 4.6000000000e+00 -9.6332655980e-03 -7.9193083800e-02 +461 4.6100000000e+00 -8.8575419760e-03 -7.5910311180e-02 +462 4.6200000000e+00 -8.1142373740e-03 -7.2713282330e-02 +463 4.6300000000e+00 -7.4025905500e-03 -6.9585550720e-02 +464 4.6400000000e+00 -6.7219879870e-03 -6.6511783650e-02 +465 4.6500000000e+00 -6.0719638950e-03 -6.3477208480e-02 +466 4.6600000000e+00 -5.4522002110e-03 -6.0467053010e-02 +467 4.6700000000e+00 -4.8625265960e-03 -5.7466544920e-02 +468 4.6800000000e+00 -4.3029204390e-03 -5.4460911670e-02 +469 4.6900000000e+00 -3.7735068550e-03 -5.1434523580e-02 +470 4.7000000000e+00 -3.2745586850e-03 -4.8370043780e-02 +471 4.7100000000e+00 -2.8064617420e-03 -4.5261307720e-02 +472 4.7200000000e+00 -2.3695410370e-03 -4.2126515780e-02 +473 4.7300000000e+00 -1.9638870030e-03 -3.8995268370e-02 +474 4.7400000000e+00 -1.5893207430e-03 -3.5895375370e-02 +475 4.7500000000e+00 -1.2453940290e-03 -3.2853768170e-02 +476 4.7600000000e+00 -9.3138930210e-04 -2.9897377850e-02 +477 4.7700000000e+00 -6.4631967200e-04 -2.7053134890e-02 +478 4.7800000000e+00 -3.8892891730e-04 -2.4347968780e-02 +479 4.7900000000e+00 -1.5769148580e-04 -2.1809973910e-02 +480 4.8000000000e+00 4.9187505960e-05 -1.9469671160e-02 +481 4.8100000000e+00 2.3372925440e-04 -1.7342891530e-02 +482 4.8200000000e+00 3.9796617840e-04 -1.5415189150e-02 +483 4.8300000000e+00 5.4372682880e-04 -1.3658952380e-02 +484 4.8400000000e+00 6.7259287050e-04 -1.2048522610e-02 +485 4.8500000000e+00 7.8589908240e-04 -1.0559209690e-02 +486 4.8600000000e+00 8.8473335710e-04 -9.1663247630e-03 +487 4.8700000000e+00 9.6993670140e-04 -7.8451808230e-03 +488 4.8800000000e+00 1.0421032360e-03 -6.5710929150e-03 +489 4.8900000000e+00 1.1015801950e-03 -5.3185837070e-03 +490 4.9000000000e+00 1.1484679270e-03 -4.0606536610e-03 +491 4.9100000000e+00 1.1826519980e-03 -2.7805919490e-03 +492 4.9200000000e+00 1.2039636980e-03 -1.4840911740e-03 +493 4.9300000000e+00 1.2123405590e-03 -1.8744637850e-04 +494 4.9400000000e+00 1.2078584520e-03 1.0946955090e-03 +495 4.9500000000e+00 1.1907315900e-03 2.3485018540e-03 +496 4.9600000000e+00 1.1613125250e-03 3.5601402240e-03 +497 4.9700000000e+00 1.1200921520e-03 4.7157788300e-03 +498 4.9800000000e+00 1.0676997050e-03 5.8015868510e-03 +499 4.9900000000e+00 1.0049027610e-03 6.8031822230e-03 +500 5.0000000000e+00 9.3260723520e-04 7.7050078140e-03 +501 5.0100000000e+00 8.5183745480e-04 8.4983969340e-03 +502 5.0200000000e+00 7.6363650240e-04 9.1887805930e-03 +503 5.0300000000e+00 6.6896656300e-04 9.7875612980e-03 +504 5.0400000000e+00 5.6868899310e-04 1.0305252310e-02 +505 5.0500000000e+00 4.6356432080e-04 1.0751939230e-02 +506 5.0600000000e+00 3.5425224560e-04 1.1137708580e-02 +507 5.0700000000e+00 2.4131163850e-04 1.1472647570e-02 +508 5.0800000000e+00 1.2520054220e-04 1.1766843320e-02 +509 5.0900000000e+00 6.2761706890e-06 1.2030583530e-02 +510 5.1000000000e+00 -1.1520509050e-04 1.2274519120e-02 +511 5.1100000000e+00 -2.3908004220e-04 1.2506742270e-02 +512 5.1200000000e+00 -3.6524046290e-04 1.2730078350e-02 +513 5.1300000000e+00 -4.9359489830e-04 1.2944907750e-02 +514 5.1400000000e+00 -6.2406102030e-04 1.3151960710e-02 +515 5.1500000000e+00 -7.5656562640e-04 1.3352149800e-02 +516 5.1600000000e+00 -8.9104464010e-04 1.3546387640e-02 +517 5.1700000000e+00 -1.0274431110e-03 1.3735586810e-02 +518 5.1800000000e+00 -1.1657152140e-03 1.3920659690e-02 +519 5.1900000000e+00 -1.3058242490e-03 1.4102349940e-02 +520 5.2000000000e+00 -1.4477426450e-03 1.4281081480e-02 +521 5.2100000000e+00 -1.5914586660e-03 1.4459496790e-02 +522 5.2200000000e+00 -1.7370099740e-03 1.4644838790e-02 +523 5.2300000000e+00 -1.8845171920e-03 1.4846534220e-02 +524 5.2400000000e+00 -2.0341906130e-03 1.5073718280e-02 +525 5.2500000000e+00 -2.1863302000e-03 1.5335361050e-02 +526 5.2600000000e+00 -2.3413255880e-03 1.5640434670e-02 +527 5.2700000000e+00 -2.4996560810e-03 1.5997911230e-02 +528 5.2800000000e+00 -2.6618906560e-03 1.6416762160e-02 +529 5.2900000000e+00 -2.8286879610e-03 1.6906373970e-02 +530 5.3000000000e+00 -3.0007963120e-03 1.7477007110e-02 +531 5.3100000000e+00 -3.1790339990e-03 1.8133074970e-02 +532 5.3200000000e+00 -3.3641907710e-03 1.8865012170e-02 +533 5.3300000000e+00 -3.5569293410e-03 1.9656413040e-02 +534 5.3400000000e+00 -3.7577656750e-03 2.0492060870e-02 +535 5.3500000000e+00 -3.9670690000e-03 2.1357287210e-02 +536 5.3600000000e+00 -4.1850618000e-03 2.2237421170e-02 +537 5.3700000000e+00 -4.4118198130e-03 2.3117792040e-02 +538 5.3800000000e+00 -4.6472720400e-03 2.3983729020e-02 +539 5.3900000000e+00 -4.8912007360e-03 2.4820173120e-02 +540 5.4000000000e+00 -5.1432414150e-03 2.5611246230e-02 +541 5.4100000000e+00 -5.4028974590e-03 2.6345995690e-02 +542 5.4200000000e+00 -5.6696131800e-03 2.7023783330e-02 +543 5.4300000000e+00 -5.9428468820e-03 2.7648494840e-02 +544 5.4400000000e+00 -6.2220854650e-03 2.8223326690e-02 +545 5.4500000000e+00 -6.5068444350e-03 2.8751139070e-02 +546 5.4600000000e+00 -6.7966678950e-03 2.9234792020e-02 +547 5.4700000000e+00 -7.0911285520e-03 2.9677145900e-02 +548 5.4800000000e+00 -7.3898277130e-03 3.0081060730e-02 +549 5.4900000000e+00 -7.6923952860e-03 3.0449630790e-02 +550 5.5000000000e+00 -7.9984897810e-03 3.0786428800e-02 +551 5.5100000000e+00 -8.3077897170e-03 3.1092132900e-02 +552 5.5200000000e+00 -8.6199506760e-03 3.1361354280e-02 +553 5.5300000000e+00 -8.9345623430e-03 3.1586068180e-02 +554 5.5400000000e+00 -9.2511399250e-03 3.1758727190e-02 +555 5.5500000000e+00 -9.5691241460e-03 3.1872314690e-02 +556 5.5600000000e+00 -9.8878812460e-03 3.1879060490e-02 +557 5.5700000000e+00 -1.0206702980e-02 3.1879343290e-02 +558 5.5800000000e+00 -1.0524806640e-02 3.1775291070e-02 +559 5.5900000000e+00 -1.0841335000e-02 3.1575078260e-02 +560 5.6000000000e+00 -1.1155356390e-02 3.1277094940e-02 +561 5.6100000000e+00 -1.1465874190e-02 3.0876002420e-02 +562 5.6200000000e+00 -1.1771874720e-02 3.0373359010e-02 +563 5.6300000000e+00 -1.2072375040e-02 2.9774158060e-02 +564 5.6400000000e+00 -1.2366432510e-02 2.9082718780e-02 +565 5.6500000000e+00 -1.2653144820e-02 2.8303067980e-02 +566 5.6600000000e+00 -1.2931649940e-02 2.7439235100e-02 +567 5.6700000000e+00 -1.3201126190e-02 2.6495251650e-02 +568 5.6800000000e+00 -1.3460792170e-02 2.5475145970e-02 +569 5.6900000000e+00 -1.3709906810e-02 2.4382869130e-02 +570 5.7000000000e+00 -1.3947769340e-02 2.3222203640e-02 +571 5.7100000000e+00 -1.4173722750e-02 2.1998018300e-02 +572 5.7200000000e+00 -1.4387171000e-02 2.0717601730e-02 +573 5.7300000000e+00 -1.4587596210e-02 1.9389388150e-02 +574 5.7400000000e+00 -1.4774562110e-02 1.8021631230e-02 +575 5.7500000000e+00 -1.4947714070e-02 1.6622492240e-02 +576 5.7600000000e+00 -1.5106779050e-02 1.5200129840e-02 +577 5.7700000000e+00 -1.5251565630e-02 1.3762707810e-02 +578 5.7800000000e+00 -1.5381964020e-02 1.2318387210e-02 +579 5.7900000000e+00 -1.5497946030e-02 1.0875476430e-02 +580 5.8000000000e+00 -1.5599565090e-02 9.4425870750e-03 +581 5.8100000000e+00 -1.5686950370e-02 8.0264086870e-03 +582 5.8200000000e+00 -1.5760277400e-02 6.6295090340e-03 +583 5.8300000000e+00 -1.5819738700e-02 5.2525609880e-03 +584 5.8400000000e+00 -1.5865537890e-02 3.8965319600e-03 +585 5.8500000000e+00 -1.5897889720e-02 2.5625313690e-03 +586 5.8600000000e+00 -1.5917020020e-02 1.2516718340e-03 +587 5.8700000000e+00 -1.5923165770e-02 -3.4937058100e-05 +588 5.8800000000e+00 -1.5916575010e-02 -1.2961843800e-03 +589 5.8900000000e+00 -1.5897506940e-02 -2.5310939070e-03 +590 5.9000000000e+00 -1.5866231840e-02 -3.7389705170e-03 +591 5.9100000000e+00 -1.5823036470e-02 -4.9173578470e-03 +592 5.9200000000e+00 -1.5768250830e-02 -6.0600357120e-03 +593 5.9300000000e+00 -1.5702275000e-02 -7.1590688840e-03 +594 5.9400000000e+00 -1.5625584430e-02 -8.2067883000e-03 +595 5.9500000000e+00 -1.5538730000e-02 -9.1956535530e-03 +596 5.9600000000e+00 -1.5442337980e-02 -1.0118124370e-02 +597 5.9700000000e+00 -1.5337110070e-02 -1.0966662250e-02 +598 5.9800000000e+00 -1.5223823350e-02 -1.1733731860e-02 +599 5.9900000000e+00 -1.5103330310e-02 -1.2411346770e-02 +600 6.0000000000e+00 -1.4976558850e-02 -1.2990539800e-02 +601 6.0100000000e+00 -1.4844496760e-02 -1.3467852250e-02 +602 6.0200000000e+00 -1.4708114030e-02 -1.3850882370e-02 +603 6.0300000000e+00 -1.4568285260e-02 -1.4151686870e-02 +604 6.0400000000e+00 -1.4425774100e-02 -1.4381668920e-02 +605 6.0500000000e+00 -1.4281233220e-02 -1.4551925990e-02 +606 6.0600000000e+00 -1.4135204390e-02 -1.4673570400e-02 +607 6.0700000000e+00 -1.3988118420e-02 -1.4757756220e-02 +608 6.0800000000e+00 -1.3840295150e-02 -1.4815688990e-02 +609 6.0900000000e+00 -1.3691943500e-02 -1.4859029650e-02 +610 6.1000000000e+00 -1.3543161430e-02 -1.4899772950e-02 +611 6.1100000000e+00 -1.3393954760e-02 -1.4944650430e-02 +612 6.1200000000e+00 -1.3244331080e-02 -1.4987875210e-02 +613 6.1300000000e+00 -1.3094393730e-02 -1.4999195980e-02 +614 6.1400000000e+00 -1.2944360580e-02 -1.5000406620e-02 +615 6.1500000000e+00 -1.2794564020e-02 -1.4968741120e-02 +616 6.1600000000e+00 -1.2645450970e-02 -1.4878631960e-02 +617 6.1700000000e+00 -1.2497582900e-02 -1.4726360280e-02 +618 6.1800000000e+00 -1.2351635780e-02 -1.4500650680e-02 +619 6.1900000000e+00 -1.2208400130e-02 -1.4189602640e-02 +620 6.2000000000e+00 -1.2068780980e-02 -1.3780088450e-02 +621 6.2100000000e+00 -1.1933770350e-02 -1.3266656360e-02 +622 6.2200000000e+00 -1.1804309490e-02 -1.2663757970e-02 +623 6.2300000000e+00 -1.1681151160e-02 -1.1995648740e-02 +624 6.2400000000e+00 -1.1564832050e-02 -1.1284711830e-02 +625 6.2500000000e+00 -1.1455672780e-02 -1.0552530900e-02 +626 6.2600000000e+00 -1.1353777930e-02 -9.8206944580e-03 +627 6.2700000000e+00 -1.1259036020e-02 -9.1107917220e-03 +628 6.2800000000e+00 -1.1171119520e-02 -8.4444087170e-03 +629 6.2900000000e+00 -1.1089484820e-02 -7.8440382630e-03 +630 6.3000000000e+00 -1.1013372280e-02 -7.3343059900e-03 +631 6.3100000000e+00 -1.0941837570e-02 -6.9286062890e-03 +632 6.3200000000e+00 -1.0873908590e-02 -6.6177004520e-03 +633 6.3300000000e+00 -1.0808742380e-02 -6.3836149380e-03 +634 6.3400000000e+00 -1.0745656480e-02 -6.2096675710e-03 +635 6.3500000000e+00 -1.0684128980e-02 -6.0797276050e-03 +636 6.3600000000e+00 -1.0623798440e-02 -5.9776679450e-03 +637 6.3700000000e+00 -1.0564463980e-02 -5.8875005540e-03 +638 6.3800000000e+00 -1.0506085210e-02 -5.7934100960e-03 +639 6.3900000000e+00 -1.0448782260e-02 -5.6790958870e-03 +640 6.4000000000e+00 -1.0392835790e-02 -5.5272351870e-03 +641 6.4100000000e+00 -1.0338663800e-02 -5.3265489450e-03 +642 6.4200000000e+00 -1.0286705990e-02 -5.0824779890e-03 +643 6.4300000000e+00 -1.0237307970e-02 -4.8090647670e-03 +644 6.4400000000e+00 -1.0190698140e-02 -4.5186980020e-03 +645 6.4500000000e+00 -1.0146987700e-02 -4.2230772190e-03 +646 6.4600000000e+00 -1.0106170660e-02 -3.9339072730e-03 +647 6.4700000000e+00 -1.0068123810e-02 -3.6628907880e-03 +648 6.4800000000e+00 -1.0032606730e-02 -3.4217128560e-03 +649 6.4900000000e+00 -9.9992617940e-03 -3.2226936060e-03 +650 6.5000000000e+00 -9.9676141880e-03 -3.0800614930e-03 +651 6.5100000000e+00 -9.9370921530e-03 -3.0007974900e-03 +652 6.5200000000e+00 -9.9071283790e-03 -2.9895971810e-03 +653 6.5300000000e+00 -9.8772613860e-03 -2.9909390270e-03 +654 6.5400000000e+00 -9.8471557910e-03 -3.0244442110e-03 +655 6.5500000000e+00 -9.8166023160e-03 -3.0807584720e-03 +656 6.5600000000e+00 -9.7855177830e-03 -3.1389446580e-03 +657 6.5700000000e+00 -9.7539451160e-03 -3.1876831780e-03 +658 6.5800000000e+00 -9.7220533400e-03 -3.1902459520e-03 +659 6.5900000000e+00 -9.6901375810e-03 -3.1905666810e-03 +660 6.6000000000e+00 -9.6586190680e-03 -3.1317577790e-03 +661 6.6100000000e+00 -9.6280205840e-03 -3.0113946400e-03 +662 6.6200000000e+00 -9.5988437380e-03 -2.8430708940e-03 +663 6.6300000000e+00 -9.5714462370e-03 -2.6468063050e-03 +664 6.6400000000e+00 -9.5460173390e-03 -2.4401082740e-03 +665 6.6500000000e+00 -9.5225778510e-03 -2.2397114760e-03 +666 6.6600000000e+00 -9.5009801320e-03 -2.0623027660e-03 +667 6.6700000000e+00 -9.4809080910e-03 -1.9242058160e-03 +668 6.6800000000e+00 -9.4618771900e-03 -1.8756816070e-03 +669 6.6900000000e+00 -9.4432344390e-03 -1.8737538630e-03 +670 6.7000000000e+00 -9.4241584000e-03 -1.9296967320e-03 +671 6.7100000000e+00 -9.4036962210e-03 -2.1193480020e-03 +672 6.7200000000e+00 -9.3809488110e-03 -2.3946186600e-03 +673 6.7300000000e+00 -9.3552560140e-03 -2.7229160010e-03 +674 6.7400000000e+00 -9.3262336490e-03 -3.0756765770e-03 +675 6.7500000000e+00 -9.2937735010e-03 -3.4254765850e-03 +676 6.7600000000e+00 -9.2580433320e-03 -3.7449102950e-03 +677 6.7700000000e+00 -9.2194868700e-03 -4.0068658770e-03 +678 6.7800000000e+00 -9.1788238190e-03 -4.1695216600e-03 +679 6.7900000000e+00 -9.1370498500e-03 -4.1709417970e-03 +680 6.8000000000e+00 -9.0954366100e-03 -4.1531823070e-03 +681 6.8100000000e+00 -9.0554785850e-03 -3.9087191710e-03 +682 6.8200000000e+00 -9.0186274690e-03 -3.5228649830e-03 +683 6.8300000000e+00 -8.9860265190e-03 -3.0396673600e-03 +684 6.8400000000e+00 -8.9584574300e-03 -2.4966871920e-03 +685 6.8500000000e+00 -8.9363403360e-03 -1.9298633360e-03 +686 6.8600000000e+00 -8.9197338070e-03 -1.3752156630e-03 +687 6.8700000000e+00 -8.9083348510e-03 -8.6872626790e-04 +688 6.8800000000e+00 -8.9014789130e-03 -4.4613382030e-04 +689 6.8900000000e+00 -8.8981398760e-03 -1.4464164490e-04 +690 6.9000000000e+00 -8.8969300610e-03 -9.3306974460e-05 +691 6.9100000000e+00 -8.8961599030e-03 -9.4842573110e-05 +692 6.9200000000e+00 -8.8941363350e-03 -2.6951752300e-04 +693 6.9300000000e+00 -8.8894611720e-03 -6.0677709890e-04 +694 6.9400000000e+00 -8.8810907890e-03 -1.0295850060e-03 +695 6.9500000000e+00 -8.8683361180e-03 -1.5032386040e-03 +696 6.9600000000e+00 -8.8508626520e-03 -1.9925371240e-03 +697 6.9700000000e+00 -8.8286904430e-03 -2.4622017850e-03 +698 6.9800000000e+00 -8.8021941000e-03 -2.8770558440e-03 +699 6.9900000000e+00 -8.7721027940e-03 -3.2001665000e-03 +700 7.0000000000e+00 -8.7395002530e-03 -3.3628110830e-03 +701 7.0100000000e+00 -8.7057669680e-03 -3.3616587300e-03 +702 7.0200000000e+00 -8.6722912150e-03 -3.3328724970e-03 +703 7.0300000000e+00 -8.6401800780e-03 -3.1369921780e-03 +704 7.0400000000e+00 -8.6102016490e-03 -2.8836524560e-03 +705 7.0500000000e+00 -8.5827850310e-03 -2.6048254500e-03 +706 7.0600000000e+00 -8.5580203390e-03 -2.3338108210e-03 +707 7.0700000000e+00 -8.5356586960e-03 -2.1036368350e-03 +708 7.0800000000e+00 -8.5151122380e-03 -1.9811072220e-03 +709 7.0900000000e+00 -8.4954541080e-03 -1.9777398690e-03 +710 7.1000000000e+00 -8.4754184640e-03 -2.0225113290e-03 +711 7.1100000000e+00 -8.4534593770e-03 -2.2965828040e-03 +712 7.1200000000e+00 -8.4280453800e-03 -2.7212170120e-03 +713 7.1300000000e+00 -8.3979540000e-03 -3.2510514740e-03 +714 7.1400000000e+00 -8.3623306660e-03 -3.8476514650e-03 +715 7.1500000000e+00 -8.3206887140e-03 -4.4744244140e-03 +716 7.1600000000e+00 -8.2729093820e-03 -5.0946981770e-03 +717 7.1700000000e+00 -8.2192418120e-03 -5.6718145680e-03 +718 7.1800000000e+00 -8.1603030520e-03 -6.1692539840e-03 +719 7.1900000000e+00 -8.0970780500e-03 -6.5487676050e-03 +720 7.2000000000e+00 -8.0309196620e-03 -6.7272229100e-03 +721 7.2100000000e+00 -7.9634907270e-03 -6.7259642140e-03 +722 7.2200000000e+00 -7.8964744890e-03 -6.6789598430e-03 +723 7.2300000000e+00 -7.8312850050e-03 -6.4221789350e-03 +724 7.2400000000e+00 -7.7690092330e-03 -6.0751032250e-03 +725 7.2500000000e+00 -7.7104070320e-03 -5.6689224870e-03 +726 7.2600000000e+00 -7.6559111550e-03 -5.2359769820e-03 +727 7.2700000000e+00 -7.6056272590e-03 -4.8087903910e-03 +728 7.2800000000e+00 -7.5593338980e-03 -4.4198555860e-03 +729 7.2900000000e+00 -7.5164825260e-03 -4.1030087070e-03 +730 7.3000000000e+00 -7.4761974950e-03 -3.8973776310e-03 +731 7.3100000000e+00 -7.4373205220e-03 -3.8759720650e-03 +732 7.3200000000e+00 -7.3986330090e-03 -3.8773675230e-03 +733 7.3300000000e+00 -7.3590783700e-03 -4.0015934670e-03 +734 7.3400000000e+00 -7.3178064890e-03 -4.2169764230e-03 +735 7.3500000000e+00 -7.2741737280e-03 -4.4858423140e-03 +736 7.3600000000e+00 -7.2277429200e-03 -4.7879201620e-03 +737 7.3700000000e+00 -7.1782833720e-03 -5.1026918510e-03 +738 7.3800000000e+00 -7.1257708670e-03 -5.4095927810e-03 +739 7.3900000000e+00 -7.0703876590e-03 -5.6872718710e-03 +740 7.4000000000e+00 -7.0125224790e-03 -5.9122800580e-03 +741 7.4100000000e+00 -6.9527445490e-03 -6.0705847630e-03 +742 7.4200000000e+00 -6.8916736910e-03 -6.1675051450e-03 +743 7.4300000000e+00 -6.8298504240e-03 -6.2135136040e-03 +744 7.4400000000e+00 -6.7677099870e-03 -6.2133123600e-03 +745 7.4500000000e+00 -6.7055823390e-03 -6.2119432270e-03 +746 7.4600000000e+00 -6.6436921590e-03 -6.1750902160e-03 +747 7.4700000000e+00 -6.5821588440e-03 -6.1325376130e-03 +748 7.4800000000e+00 -6.5209965140e-03 -6.0933858940e-03 +749 7.4900000000e+00 -6.4601140040e-03 -6.0833932360e-03 +750 7.5000000000e+00 -6.3993148730e-03 -6.0828678280e-03 +751 7.5100000000e+00 -6.3383152770e-03 -6.1110319720e-03 +752 7.5200000000e+00 -6.2768333710e-03 -6.1744378110e-03 +753 7.5300000000e+00 -6.2146787090e-03 -6.2517322550e-03 +754 7.5400000000e+00 -6.1517701230e-03 -6.3316236530e-03 +755 7.5500000000e+00 -6.0881357210e-03 -6.4034456450e-03 +756 7.5600000000e+00 -6.0239128920e-03 -6.4556549940e-03 +757 7.5700000000e+00 -5.9593483000e-03 -6.4558690390e-03 +758 7.5800000000e+00 -5.8947978880e-03 -6.4544047390e-03 +759 7.5900000000e+00 -5.8307268780e-03 -6.3840366970e-03 +760 7.6000000000e+00 -5.7677097690e-03 -6.2482392170e-03 +761 7.6100000000e+00 -5.7064038390e-03 -6.0415350870e-03 +762 7.6200000000e+00 -5.6474166590e-03 -5.7781975640e-03 +763 7.6300000000e+00 -5.5911735990e-03 -5.4820877910e-03 +764 7.6400000000e+00 -5.5378913320e-03 -5.1747939830e-03 +765 7.6500000000e+00 -5.4875778360e-03 -4.8770962220e-03 +766 7.6600000000e+00 -5.4400323880e-03 -4.6097357670e-03 +767 7.6700000000e+00 -5.3948455730e-03 -4.3932287400e-03 +768 7.6800000000e+00 -5.3513992750e-03 -4.2592350550e-03 +769 7.6900000000e+00 -5.3088666840e-03 -4.2582276760e-03 +770 7.7000000000e+00 -5.2662122910e-03 -4.2715994810e-03 +771 7.7100000000e+00 -5.2222317010e-03 -4.4675543320e-03 +772 7.7200000000e+00 -5.1757506940e-03 -4.7782011870e-03 +773 7.7300000000e+00 -5.1258242750e-03 -5.1707250140e-03 +774 7.7400000000e+00 -5.0717764940e-03 -5.6171552670e-03 +775 7.7500000000e+00 -5.0132004380e-03 -6.0907404020e-03 +776 7.7600000000e+00 -4.9499582360e-03 -6.5646596010e-03 +777 7.7700000000e+00 -4.8821810580e-03 -7.0120917520e-03 +778 7.7800000000e+00 -4.8102691140e-03 -7.4062816260e-03 +779 7.7900000000e+00 -4.7348916560e-03 -7.7192866600e-03 +780 7.8000000000e+00 -4.6569869740e-03 -7.9185010720e-03 +781 7.8100000000e+00 -4.5777234760e-03 -7.9357116620e-03 +782 7.8200000000e+00 -4.4983050530e-03 -7.9345538390e-03 +783 7.8300000000e+00 -4.4197764540e-03 -7.8056778610e-03 +784 7.8400000000e+00 -4.3429843580e-03 -7.5886231250e-03 +785 7.8500000000e+00 -4.2685773750e-03 -7.3171269070e-03 +786 7.8600000000e+00 -4.1970060460e-03 -7.0106527050e-03 +787 7.8700000000e+00 -4.1285228410e-03 -6.6888898820e-03 +788 7.8800000000e+00 -4.0631821630e-03 -6.3715753420e-03 +789 7.8900000000e+00 -4.0008403430e-03 -6.0790957490e-03 +790 7.9000000000e+00 -3.9411556450e-03 -5.8334960980e-03 +791 7.9100000000e+00 -3.8836100890e-03 -5.6490249270e-03 +792 7.9200000000e+00 -3.8276185730e-03 -5.5238274960e-03 +793 7.9300000000e+00 -3.7726380060e-03 -5.4503718460e-03 +794 7.9400000000e+00 -3.7181891260e-03 -5.4368290110e-03 +795 7.9500000000e+00 -3.6638565070e-03 -5.4375412710e-03 +796 7.9600000000e+00 -3.6092885500e-03 -5.4693271350e-03 +797 7.9700000000e+00 -3.5541974930e-03 -5.5364281040e-03 +798 7.9800000000e+00 -3.4983594020e-03 -5.6225227740e-03 +799 7.9900000000e+00 -3.4416141800e-03 -5.7213422600e-03 +800 8.0000000000e+00 -3.3838655570e-03 -5.8264552150e-03 +801 8.0100000000e+00 -3.3250799920e-03 -5.9317600090e-03 +802 8.0200000000e+00 -3.2652811390e-03 -6.0319529100e-03 +803 8.0300000000e+00 -3.2045443190e-03 -6.1220872130e-03 +804 8.0400000000e+00 -3.1429954090e-03 -6.1971772310e-03 +805 8.0500000000e+00 -3.0808108470e-03 -6.2523344830e-03 +806 8.0600000000e+00 -3.0182176310e-03 -6.2681669500e-03 +807 8.0700000000e+00 -2.9554933170e-03 -6.2687770620e-03 +808 8.0800000000e+00 -2.8929660200e-03 -6.2432932110e-03 +809 8.0900000000e+00 -2.8310144160e-03 -6.1668903030e-03 +810 8.1000000000e+00 -2.7700677390e-03 -6.0438459020e-03 +811 8.1100000000e+00 -2.7105918050e-03 -5.8720071740e-03 +812 8.1200000000e+00 -2.6530191240e-03 -5.6595409670e-03 +813 8.1300000000e+00 -2.5976790150e-03 -5.4196416380e-03 +814 8.1400000000e+00 -2.5447836260e-03 -5.1644165190e-03 +815 8.1500000000e+00 -2.4944279380e-03 -4.9055584030e-03 +816 8.1600000000e+00 -2.4465897580e-03 -4.6547632950e-03 +817 8.1700000000e+00 -2.4011297280e-03 -4.4237188540e-03 +818 8.1800000000e+00 -2.3577913170e-03 -4.2240813640e-03 +819 8.1900000000e+00 -2.3162008250e-03 -4.0681406080e-03 +820 8.2000000000e+00 -2.2758673830e-03 -3.9706319740e-03 +821 8.2100000000e+00 -2.2362029790e-03 -3.9611717460e-03 +822 8.2200000000e+00 -2.1966225940e-03 -3.9620151530e-03 +823 8.2300000000e+00 -2.1566443350e-03 -4.0194821090e-03 +824 8.2400000000e+00 -2.1159094640e-03 -4.1138208480e-03 +825 8.2500000000e+00 -2.0741823980e-03 -4.2252451690e-03 +826 8.2600000000e+00 -2.0313507070e-03 -4.3416947870e-03 +827 8.2700000000e+00 -1.9874251180e-03 -4.4510024540e-03 +828 8.2800000000e+00 -1.9425395100e-03 -4.5411700940e-03 +829 8.2900000000e+00 -1.8969509160e-03 -4.5850896530e-03 +830 8.3000000000e+00 -1.8510395260e-03 -4.5858122980e-03 +831 8.3100000000e+00 -1.8052902620e-03 -4.5663005390e-03 +832 8.3200000000e+00 -1.7602006790e-03 -4.4744051230e-03 +833 8.3300000000e+00 -1.7161888630e-03 -4.3453380180e-03 +834 8.3400000000e+00 -1.6735750130e-03 -4.1893095180e-03 +835 8.3500000000e+00 -1.6325814350e-03 -4.0160059210e-03 +836 8.3600000000e+00 -1.5933325480e-03 -3.8351750510e-03 +837 8.3700000000e+00 -1.5558548830e-03 -3.6565797610e-03 +838 8.3800000000e+00 -1.5200770810e-03 -3.4899795860e-03 +839 8.3900000000e+00 -1.4858298910e-03 -3.3455567640e-03 +840 8.4000000000e+00 -1.4528461780e-03 -3.2346895450e-03 +841 8.4100000000e+00 -1.4207748020e-03 -3.1637014420e-03 +842 8.4200000000e+00 -1.3892500700e-03 -3.1291533650e-03 +843 8.4300000000e+00 -1.3579611770e-03 -3.1292408310e-03 +844 8.4400000000e+00 -1.3266660940e-03 -3.1298911790e-03 +845 8.4500000000e+00 -1.2951915690e-03 -3.1576610340e-03 +846 8.4600000000e+00 -1.2634331300e-03 -3.1917512150e-03 +847 8.4700000000e+00 -1.2313550790e-03 -3.2259651180e-03 +848 8.4800000000e+00 -1.1989904980e-03 -3.2540630400e-03 +849 8.4900000000e+00 -1.1664412430e-03 -3.2555693480e-03 +850 8.5000000000e+00 -1.1338779510e-03 -3.2557025210e-03 +851 8.5100000000e+00 -1.1015326060e-03 -3.2234865450e-03 +852 8.5200000000e+00 -1.0696614040e-03 -3.1630718910e-03 +853 8.5300000000e+00 -1.0385076140e-03 -3.0791159010e-03 +854 8.5400000000e+00 -1.0082941500e-03 -2.9739076870e-03 +855 8.5500000000e+00 -9.7922357050e-04 -2.8494714080e-03 +856 8.5600000000e+00 -9.5147808060e-04 -2.7078379130e-03 +857 8.5700000000e+00 -9.2521952960e-04 -2.5510405740e-03 +858 8.5800000000e+00 -9.0058941240e-04 -2.3811136250e-03 +859 8.5900000000e+00 -8.7770886890e-04 -2.2000297810e-03 +860 8.6000000000e+00 -8.5667868430e-04 -2.0096305180e-03 +861 8.6100000000e+00 -8.3757669380e-04 -1.8125777800e-03 +862 8.6200000000e+00 -8.2044480670e-04 -1.6133743580e-03 +863 8.6300000000e+00 -8.0527603090e-04 -1.4173768830e-03 +864 8.6400000000e+00 -7.9201187730e-04 -1.2297980360e-03 +865 8.6500000000e+00 -7.8054236030e-04 -1.0557824940e-03 +866 8.6600000000e+00 -7.7070599730e-04 -9.0047077190e-04 +867 8.6700000000e+00 -7.6228980900e-04 -7.6899201130e-04 +868 8.6800000000e+00 -7.5502931930e-04 -6.6643613270e-04 +869 8.6900000000e+00 -7.4860855550e-04 -5.9822957020e-04 +870 8.7000000000e+00 -7.4266004790e-04 -5.9102166820e-04 +871 8.7100000000e+00 -7.3677624910e-04 -5.9136220610e-04 +872 8.7200000000e+00 -7.3056662870e-04 -6.3841529490e-04 +873 8.7300000000e+00 -7.2371476810e-04 -7.1895190120e-04 +874 8.7400000000e+00 -7.1598977950e-04 -8.1806870680e-04 +875 8.7500000000e+00 -7.0724630570e-04 -9.2737467390e-04 +876 8.7600000000e+00 -6.9742452050e-04 -1.0383773450e-03 +877 8.7700000000e+00 -6.8655012820e-04 -1.1425742970e-03 +878 8.7800000000e+00 -6.7473436410e-04 -1.2315130470e-03 +879 8.7900000000e+00 -6.6217399400e-04 -1.2963584120e-03 +880 8.8000000000e+00 -6.4915131470e-04 -1.3094343440e-03 +881 8.8100000000e+00 -6.3601950570e-04 -1.3089678270e-03 +882 8.8200000000e+00 -6.2312938900e-04 -1.2757712740e-03 +883 8.8300000000e+00 -6.1075618940e-04 -1.2096983960e-03 +884 8.8400000000e+00 -5.9908488620e-04 -1.1299283140e-03 +885 8.8500000000e+00 -5.8821021300e-04 -1.0452584110e-03 +886 8.8600000000e+00 -5.7813665840e-04 -9.6460283190e-04 +887 8.8700000000e+00 -5.6877846530e-04 -8.9678568750e-04 +888 8.8800000000e+00 -5.5995963120e-04 -8.5822913660e-04 +889 8.8900000000e+00 -5.5141390820e-04 -8.5747478260e-04 +890 8.9000000000e+00 -5.4278480290e-04 -8.6716956740e-04 +891 8.9100000000e+00 -5.3364421720e-04 -9.4133837340e-04 +892 8.9200000000e+00 -5.2358565110e-04 -1.0544350220e-03 +893 8.9300000000e+00 -5.1231740570e-04 -1.1904098590e-03 +894 8.9400000000e+00 -4.9968122430e-04 -1.3354564220e-03 +895 8.9500000000e+00 -4.8565229150e-04 -1.4763473930e-03 +896 8.9600000000e+00 -4.7033923410e-04 -1.5999042110e-03 +897 8.9700000000e+00 -4.5398412050e-04 -1.6934097630e-03 +898 8.9800000000e+00 -4.3696246120e-04 -1.7112894550e-03 +899 8.9900000000e+00 -4.1978320830e-04 -1.7124335300e-03 +900 9.0000000000e+00 -4.0308875560e-04 -1.6449196520e-03 +901 9.0100000000e+00 -3.8762791010e-04 -1.4817040520e-03 +902 9.0200000000e+00 -3.7412074740e-04 -1.2491702780e-03 +903 9.0300000000e+00 -3.6312346700e-04 -9.6992461550e-04 +904 9.0400000000e+00 -3.5500136390e-04 -6.6380635360e-04 +905 9.0500000000e+00 -3.4992882860e-04 -3.4982061670e-04 +906 9.0600000000e+00 -3.4788934670e-04 -4.6993457500e-05 +907 9.0700000000e+00 -3.4867549920e-04 2.2568020250e-04 +908 9.0800000000e+00 -3.5188896250e-04 4.4935964540e-04 +909 9.0900000000e+00 -3.5694050820e-04 6.0452910960e-04 +910 9.1000000000e+00 -3.6305000340e-04 6.1763862860e-04 +911 9.1100000000e+00 -3.6927825380e-04 6.1715722710e-04 +912 9.1200000000e+00 -3.7468622130e-04 4.9717594620e-04 +913 9.1300000000e+00 -3.7849424120e-04 2.9714995560e-04 +914 9.1400000000e+00 -3.8011386570e-04 4.8341320950e-05 +915 9.1500000000e+00 -3.7914786360e-04 -2.3046620100e-04 +916 9.1600000000e+00 -3.7539022070e-04 -5.2026924870e-04 +917 9.1700000000e+00 -3.6882613980e-04 -8.0202351890e-04 +918 9.1800000000e+00 -3.5963204020e-04 -1.0567133440e-03 +919 9.1900000000e+00 -3.4817555830e-04 -1.2645602590e-03 +920 9.2000000000e+00 -3.3501554730e-04 -1.4029450680e-03 +921 9.2100000000e+00 -3.2087683960e-04 -1.4283913870e-03 +922 9.2200000000e+00 -3.0652406010e-04 -1.4272958700e-03 +923 9.2300000000e+00 -2.9263543830e-04 -1.3643256150e-03 +924 9.2400000000e+00 -2.7977757160e-04 -1.2322371450e-03 +925 9.2500000000e+00 -2.6840542450e-04 -1.0605904210e-03 +926 9.2600000000e+00 -2.5886232930e-04 -8.6031093940e-04 +927 9.2700000000e+00 -2.5137998560e-04 -6.4249036470e-04 +928 9.2800000000e+00 -2.4607846060e-04 -4.1825876870e-04 +929 9.2900000000e+00 -2.4296618900e-04 -1.9902305240e-04 +930 9.3000000000e+00 -2.4193997290e-04 3.1845693800e-06 +931 9.3100000000e+00 -2.4279467890e-04 1.7966093380e-04 +932 9.3200000000e+00 -2.4527172140e-04 3.2868016980e-04 +933 9.3300000000e+00 -2.4910754640e-04 4.5137591900e-04 +934 9.3400000000e+00 -2.5404332870e-04 5.4842279990e-04 +935 9.3500000000e+00 -2.5982497130e-04 6.2029030100e-04 +936 9.3600000000e+00 -2.6620310570e-04 6.6743896290e-04 +937 9.3700000000e+00 -2.7293309200e-04 6.8128886900e-04 +938 9.3800000000e+00 -2.7977501880e-04 6.8122989380e-04 +939 9.3900000000e+00 -2.8649370290e-04 6.6561682560e-04 +940 9.4000000000e+00 -2.9285868980e-04 6.1822347770e-04 +941 9.4100000000e+00 -2.9864964660e-04 5.4912675690e-04 +942 9.4200000000e+00 -3.0368332670e-04 4.6394228000e-04 +943 9.4300000000e+00 -3.0784053560e-04 3.7019047190e-04 +944 9.4400000000e+00 -3.1107152360e-04 2.7494326710e-04 +945 9.4500000000e+00 -3.1339598590e-04 1.8510907390e-04 +946 9.4600000000e+00 -3.1490306250e-04 1.0756448490e-04 +947 9.4700000000e+00 -3.1575133810e-04 4.8999593660e-05 +948 9.4800000000e+00 -3.1616884250e-04 3.3107920740e-05 +949 9.4900000000e+00 -3.1645305020e-04 3.2380561200e-05 +950 9.5000000000e+00 -3.1697088070e-04 6.3754272530e-05 +951 9.5100000000e+00 -3.1814184860e-04 1.5167878300e-04 +952 9.5200000000e+00 -3.2035381530e-04 2.7601805580e-04 +953 9.5300000000e+00 -3.2387874080e-04 4.2128484640e-04 +954 9.5400000000e+00 -3.2885583420e-04 5.7377933880e-04 +955 9.5500000000e+00 -3.3529155330e-04 7.2032706750e-04 +956 9.5600000000e+00 -3.4305960490e-04 8.4781313400e-04 +957 9.5700000000e+00 -3.5190094460e-04 9.4358916640e-04 +958 9.5800000000e+00 -3.6142377720e-04 9.6133332950e-04 +959 9.5900000000e+00 -3.7110355600e-04 9.6244725480e-04 +960 9.6000000000e+00 -3.8028298350e-04 8.9260370630e-04 +961 9.6100000000e+00 -3.8819947730e-04 7.2570100330e-04 +962 9.6200000000e+00 -3.9412250090e-04 4.8863488130e-04 +963 9.6300000000e+00 -3.9749089540e-04 2.0465082210e-04 +964 9.6400000000e+00 -3.9794034490e-04 -1.0580965950e-04 +965 9.6500000000e+00 -3.9530337710e-04 -4.2315129320e-04 +966 9.6600000000e+00 -3.8960936300e-04 -7.2775947590e-04 +967 9.6700000000e+00 -3.8108451720e-04 -1.0000584900e-03 +968 9.6800000000e+00 -3.7015189750e-04 -1.2206640990e-03 +969 9.6900000000e+00 -3.5743140510e-04 -1.3686784530e-03 +970 9.7000000000e+00 -3.4373978450e-04 -1.3687177910e-03 +971 9.7100000000e+00 -3.3005711180e-04 -1.3677771240e-03 +972 9.7200000000e+00 -3.1735923270e-04 -1.2175506400e-03 +973 9.7300000000e+00 -3.0645020200e-04 -9.9744243200e-04 +974 9.7400000000e+00 -2.9792877150e-04 -7.2818771020e-04 +975 9.7500000000e+00 -2.9218838950e-04 -4.3000627220e-04 +976 9.7600000000e+00 -2.8941720110e-04 -1.2331077010e-04 +977 9.7700000000e+00 -2.8959804820e-04 1.7145429420e-04 +978 9.7800000000e+00 -2.9250846960e-04 4.3389135570e-04 +979 9.7900000000e+00 -2.9772070050e-04 6.4262374950e-04 +980 9.8000000000e+00 -3.0460167320e-04 7.7223408700e-04 +981 9.8100000000e+00 -3.1234484370e-04 7.7669650150e-04 +982 9.8200000000e+00 -3.2012932700e-04 7.7621752470e-04 +983 9.8300000000e+00 -3.2727903260e-04 6.8055189370e-04 +984 9.8400000000e+00 -3.3329449150e-04 5.4117460460e-04 +985 9.8500000000e+00 -3.3785285590e-04 3.7873497620e-04 +986 9.8600000000e+00 -3.4080789960e-04 2.1056974260e-04 +987 9.8700000000e+00 -3.4219001780e-04 5.4129325750e-05 +988 9.8800000000e+00 -3.4220622720e-04 -7.3421138480e-05 +989 9.8900000000e+00 -3.4124016580e-04 -1.2932529480e-04 +990 9.9000000000e+00 -3.3985209320e-04 -1.3027960630e-04 +991 9.9100000000e+00 -3.3874868130e-04 -9.4889177100e-05 +992 9.9200000000e+00 -3.3863196930e-04 4.0847818400e-05 +993 9.9300000000e+00 -3.4004831890e-04 2.2224472680e-04 +994 9.9400000000e+00 -3.4335820470e-04 4.3012047260e-04 +995 9.9500000000e+00 -3.4873621490e-04 6.4610107190e-04 +996 9.9600000000e+00 -3.5617105070e-04 8.5173520200e-04 +997 9.9700000000e+00 -3.6546552680e-04 1.0286755720e-03 +998 9.9800000000e+00 -3.7623657080e-04 1.1593557180e-03 +999 9.9900000000e+00 -3.8791522390e-04 1.1761944840e-03 +1000 1.0000000000e+01 -3.9974664040e-04 1.1767838920e-03 +1001 1.0010000000e+01 -4.1082104180e-04 1.0677225170e-03 +1002 1.0020000000e+01 -4.2022926040e-04 8.5414149960e-04 +1003 1.0030000000e+01 -4.2721876140e-04 5.7407440180e-04 +1004 1.0040000000e+01 -4.3122515020e-04 2.4718443700e-04 +1005 1.0050000000e+01 -4.3187226610e-04 -1.0782601200e-04 +1006 1.0060000000e+01 -4.2897216000e-04 -4.7219506290e-04 +1007 1.0070000000e+01 -4.2252495590e-04 -8.2716579100e-04 +1008 1.0080000000e+01 -4.1271859740e-04 -1.1540259710e-03 +1009 1.0090000000e+01 -3.9992847830e-04 -1.4333717600e-03 +1010 1.0100000000e+01 -3.8471695790e-04 -1.6437078990e-03 +1011 1.0110000000e+01 -3.6780865340e-04 -1.7721885790e-03 +1012 1.0120000000e+01 -3.4996932360e-04 -1.8019117800e-03 +1013 1.0130000000e+01 -3.3188505560e-04 -1.8006379560e-03 +1014 1.0140000000e+01 -3.1413816540e-04 -1.7566778600e-03 +1015 1.0150000000e+01 -2.9720729950e-04 -1.6504364580e-03 +1016 1.0160000000e+01 -2.8146759970e-04 -1.5122390050e-03 +1017 1.0170000000e+01 -2.6719093180e-04 -1.3521402890e-03 +1018 1.0180000000e+01 -2.5454617650e-04 -1.1803480910e-03 +1019 1.0190000000e+01 -2.4359958460e-04 -1.0073204990e-03 +1020 1.0200000000e+01 -2.3431519470e-04 -8.4406428450e-04 +1021 1.0210000000e+01 -2.2656453160e-04 -6.9838951460e-04 +1022 1.0220000000e+01 -2.2017314520e-04 -5.7144880500e-04 +1023 1.0230000000e+01 -2.1496692380e-04 -4.6164139160e-04 +1024 1.0240000000e+01 -2.1078135050e-04 -3.6780651980e-04 +1025 1.0250000000e+01 -2.0746151260e-04 -2.8898365970e-04 +1026 1.0260000000e+01 -2.0486210460e-04 -2.2421250740e-04 +1027 1.0270000000e+01 -2.0284742580e-04 -1.7253368530e-04 +1028 1.0280000000e+01 -2.0129137260e-04 -1.3299015590e-04 +1029 1.0290000000e+01 -2.0007742360e-04 -1.0462481120e-04 +1030 1.0300000000e+01 -1.9909862130e-04 -8.6482093950e-05 +1031 1.0310000000e+01 -1.9825740620e-04 -8.0176145770e-05 +1032 1.0320000000e+01 -1.9746489060e-04 -8.0270475810e-05 +1033 1.0330000000e+01 -1.9664013180e-04 -8.4149519230e-05 +1034 1.0340000000e+01 -1.9570996480e-04 -9.8408753000e-05 +1035 1.0350000000e+01 -1.9460896870e-04 -1.1878674230e-04 +1036 1.0360000000e+01 -1.9327943030e-04 -1.4453939260e-04 +1037 1.0370000000e+01 -1.9167130140e-04 -1.7490855840e-04 +1038 1.0380000000e+01 -1.8974215350e-04 -2.0913698290e-04 +1039 1.0390000000e+01 -1.8745712570e-04 -2.4647791360e-04 +1040 1.0400000000e+01 -1.8478887050e-04 -2.8620364200e-04 +1041 1.0410000000e+01 -1.8171776410e-04 -3.2750670860e-04 +1042 1.0420000000e+01 -1.7823319480e-04 -3.6939422980e-04 +1043 1.0430000000e+01 -1.7433482900e-04 -4.1079442840e-04 +1044 1.0440000000e+01 -1.7003277440e-04 -4.5066219870e-04 +1045 1.0450000000e+01 -1.6534746400e-04 -4.8797153340e-04 +1046 1.0460000000e+01 -1.6030953380e-04 -5.2170945500e-04 +1047 1.0470000000e+01 -1.5495969400e-04 -5.5087748210e-04 +1048 1.0480000000e+01 -1.4934859350e-04 -5.7449468730e-04 +1049 1.0490000000e+01 -1.4353667910e-04 -5.9151095890e-04 +1050 1.0500000000e+01 -1.3759404780e-04 -5.9895751610e-04 +1051 1.0510000000e+01 -1.3159786030e-04 -5.9884024670e-04 +1052 1.0520000000e+01 -1.2562008510e-04 -5.9671537190e-04 +1053 1.0530000000e+01 -1.1971541890e-04 -5.8645497820e-04 +1054 1.0540000000e+01 -1.1391907460e-04 -5.7377073050e-04 +1055 1.0550000000e+01 -1.0824702940e-04 -5.6047034270e-04 +1056 1.0560000000e+01 -1.0269628380e-04 -5.4839149330e-04 +1057 1.0570000000e+01 -9.7245133280e-05 -5.3923980200e-04 +1058 1.0580000000e+01 -9.1853451120e-05 -5.3911449470e-04 +1059 1.0590000000e+01 -8.6462982460e-05 -5.3910199430e-04 +1060 1.0600000000e+01 -8.0997650220e-05 -5.5041729600e-04 +1061 1.0610000000e+01 -7.5368739520e-05 -5.7173059930e-04 +1062 1.0620000000e+01 -6.9499402950e-05 -5.9987988550e-04 +1063 1.0630000000e+01 -6.3348728690e-05 -6.3019444120e-04 +1064 1.0640000000e+01 -5.6916004900e-05 -6.5859860260e-04 +1065 1.0650000000e+01 -5.0240052900e-05 -6.8133908400e-04 +1066 1.0660000000e+01 -4.3398535910e-05 -6.8721567780e-04 +1067 1.0670000000e+01 -3.6507243520e-05 -6.8762860290e-04 +1068 1.0680000000e+01 -2.9719352220e-05 -6.7391683480e-04 +1069 1.0690000000e+01 -2.3224662110e-05 -6.3517303510e-04 +1070 1.0700000000e+01 -1.7248809950e-05 -5.7135297940e-04 +1071 1.0710000000e+01 -1.2043859570e-05 -4.8077252260e-04 +1072 1.0720000000e+01 -7.8448100750e-06 -3.6813962720e-04 +1073 1.0730000000e+01 -4.8270281820e-06 -2.4116727060e-04 +1074 1.0740000000e+01 -3.0987780870e-06 -1.0674709090e-04 +1075 1.0750000000e+01 -2.7024744570e-06 2.8614036460e-05 +1076 1.0760000000e+01 -3.6159753210e-06 1.5853729430e-04 +1077 1.0770000000e+01 -5.7539145360e-06 2.7678298170e-04 +1078 1.0780000000e+01 -8.9690733710e-06 3.7726806870e-04 +1079 1.0790000000e+01 -1.3053790830e-05 4.5374751230e-04 +1080 1.0800000000e+01 -1.7741412250e-05 4.9645783070e-04 +1081 1.0810000000e+01 -2.2717402080e-05 4.9635768930e-04 +1082 1.0820000000e+01 -2.7668550310e-05 4.9373434340e-04 +1083 1.0830000000e+01 -3.2330964780e-05 4.5092721080e-04 +1084 1.0840000000e+01 -3.6498647170e-05 3.9091840760e-04 +1085 1.0850000000e+01 -4.0022298200e-05 3.1893553480e-04 +1086 1.0860000000e+01 -4.2808089230e-05 2.4038641930e-04 +1087 1.0870000000e+01 -4.4816400650e-05 1.6059919060e-04 +1088 1.0880000000e+01 -4.6060527570e-05 8.4780110980e-05 +1089 1.0890000000e+01 -4.6605352970e-05 1.8223653080e-05 +1090 1.0900000000e+01 -4.6565988960e-05 -3.3314987920e-05 +1091 1.0910000000e+01 -4.6099238430e-05 -6.6873796480e-05 +1092 1.0920000000e+01 -4.5366824730e-05 -8.4916136160e-05 +1093 1.0930000000e+01 -4.4499679130e-05 -9.0355700370e-05 +1094 1.0940000000e+01 -4.3591609800e-05 -8.9952927120e-05 +1095 1.0950000000e+01 -4.2700237280e-05 -8.7651375340e-05 +1096 1.0960000000e+01 -4.1847951690e-05 -8.3360830850e-05 +1097 1.0970000000e+01 -4.1022891310e-05 -8.2903739490e-05 +1098 1.0980000000e+01 -4.0179942230e-05 -8.5063482370e-05 +1099 1.0990000000e+01 -3.9241758770e-05 -9.8313192120e-05 +1100 1.1000000000e+01 -3.8099804360e-05 -1.2447822810e-04 +1101 1.1010000000e+01 -3.6621345410e-05 -1.6534170470e-04 +1102 1.1020000000e+01 -3.4679816320e-05 -2.1818064580e-04 +1103 1.1030000000e+01 -3.2184148770e-05 -2.7819907000e-04 +1104 1.1040000000e+01 -2.9083598200e-05 -3.4125702240e-04 +1105 1.1050000000e+01 -2.5366519500e-05 -4.0351991940e-04 +1106 1.1060000000e+01 -2.1059118990e-05 -4.6127744400e-04 +1107 1.1070000000e+01 -1.6224183250e-05 -5.1095646380e-04 +1108 1.1080000000e+01 -1.0959784980e-05 -5.4915926570e-04 +1109 1.1090000000e+01 -5.3979664600e-06 -5.6732102600e-04 +1110 1.1100000000e+01 2.9659907510e-07 -5.6742631160e-04 +1111 1.1110000000e+01 5.9341452010e-06 -5.6066382740e-04 +1112 1.1120000000e+01 1.1331617930e-05 -5.2705013840e-04 +1113 1.1130000000e+01 1.6343217970e-05 -4.8102892890e-04 +1114 1.1140000000e+01 2.0865295550e-05 -4.2682936100e-04 +1115 1.1150000000e+01 2.4834928580e-05 -3.6840379250e-04 +1116 1.1160000000e+01 2.8228476910e-05 -3.0958860270e-04 +1117 1.1170000000e+01 3.1060112970e-05 -2.5407827860e-04 +1118 1.1180000000e+01 3.3380329340e-05 -2.0541192570e-04 +1119 1.1190000000e+01 3.5274423720e-05 -1.6718237570e-04 +1120 1.1200000000e+01 3.6860961690e-05 -1.4358272690e-04 +1121 1.1210000000e+01 3.8283995600e-05 -1.4050599770e-04 +1122 1.1220000000e+01 3.9680922010e-05 -1.4091331570e-04 +1123 1.1230000000e+01 4.1151837300e-05 -1.5145488130e-04 +1124 1.1240000000e+01 4.2754890750e-05 -1.6788298170e-04 +1125 1.1250000000e+01 4.4508020530e-05 -1.8405361040e-04 +1126 1.1260000000e+01 4.6390713930e-05 -1.9455426310e-04 +1127 1.1270000000e+01 4.8345791250e-05 -1.9485241340e-04 +1128 1.1280000000e+01 5.0281212820e-05 -1.9265493800e-04 +1129 1.1290000000e+01 5.2071908600e-05 -1.7208895670e-04 +1130 1.1300000000e+01 5.3561629730e-05 -1.3367792980e-04 +1131 1.1310000000e+01 5.4572080700e-05 -7.6096086180e-05 +1132 1.1320000000e+01 5.4940349260e-05 -3.4911970810e-06 +1133 1.1330000000e+01 5.4554256440e-05 7.7596661070e-05 +1134 1.1340000000e+01 5.3357134590e-05 1.6154909480e-04 +1135 1.1350000000e+01 5.1345125320e-05 2.4323900560e-04 +1136 1.1360000000e+01 4.8564445820e-05 3.1781175050e-04 +1137 1.1370000000e+01 4.5108624410e-05 3.8070237770e-04 +1138 1.1380000000e+01 4.1115706090e-05 4.2768998170e-04 +1139 1.1390000000e+01 3.6765429140e-05 4.4569996240e-04 +1140 1.1400000000e+01 3.2276373320e-05 4.4577483730e-04 +1141 1.1410000000e+01 2.7894657000e-05 4.3230431740e-04 +1142 1.1420000000e+01 2.3849973670e-05 3.8651116970e-04 +1143 1.1430000000e+01 2.0314535340e-05 3.2680232760e-04 +1144 1.1440000000e+01 1.7397851760e-05 2.5938783110e-04 +1145 1.1450000000e+01 1.5150232920e-05 1.8994220910e-04 +1146 1.1460000000e+01 1.3566325960e-05 1.2382271180e-04 +1147 1.1470000000e+01 1.2588685570e-05 6.6028107650e-05 +1148 1.1480000000e+01 1.2111376660e-05 2.1147970850e-05 +1149 1.1490000000e+01 1.1983608170e-05 -5.5445510610e-07 +1150 1.1500000000e+01 1.2013397080e-05 -6.3433927090e-07 +1151 1.1510000000e+01 1.1979618440e-05 6.9224805850e-06 +1152 1.1520000000e+01 1.1676213710e-05 4.4864949350e-05 +1153 1.1530000000e+01 1.0952841300e-05 9.4560562700e-05 +1154 1.1540000000e+01 9.7194851630e-06 1.5011734680e-04 +1155 1.1550000000e+01 7.9423493170e-06 2.0620127250e-04 +1156 1.1560000000e+01 5.6397197640e-06 2.5785045690e-04 +1157 1.1570000000e+01 2.8777951330e-06 3.0053260610e-04 +1158 1.1580000000e+01 -2.3351266940e-07 3.3028724980e-04 +1159 1.1590000000e+01 -3.5448065280e-06 3.3191037270e-04 +1160 1.1600000000e+01 -6.8714595930e-06 3.3193028550e-04 +1161 1.1610000000e+01 -1.0004797940e-05 3.0304498820e-04 +1162 1.1620000000e+01 -1.2749539600e-05 2.5408763700e-04 +1163 1.1630000000e+01 -1.4957470800e-05 1.9293355440e-04 +1164 1.1640000000e+01 -1.6530760420e-05 1.2458386860e-04 +1165 1.1650000000e+01 -1.7418004970e-05 5.3446519620e-05 +1166 1.1660000000e+01 -1.7610248450e-05 -1.6448088780e-05 +1167 1.1670000000e+01 -1.7136978150e-05 -8.1464308840e-05 +1168 1.1680000000e+01 -1.6062097780e-05 -1.3836894190e-04 +1169 1.1690000000e+01 -1.4479879090e-05 -1.8421787100e-04 +1170 1.1700000000e+01 -1.2510893210e-05 -2.1616290120e-04 +1171 1.1710000000e+01 -1.0294430290e-05 -2.3233687030e-04 +1172 1.1720000000e+01 -7.9678780230e-06 -2.3227402260e-04 +1173 1.1730000000e+01 -5.6486954130e-06 -2.3150892740e-04 +1174 1.1740000000e+01 -3.4322545090e-06 -2.1621802220e-04 +1175 1.1750000000e+01 -1.3934204810e-06 -1.9466108350e-04 +1176 1.1760000000e+01 4.1185956270e-07 -1.6850313820e-04 +1177 1.1770000000e+01 1.9449594820e-06 -1.3936779990e-04 +1178 1.1780000000e+01 3.1829692270e-06 -1.0873702930e-04 +1179 1.1790000000e+01 4.1170826780e-06 -7.7937096740e-05 +1180 1.1800000000e+01 4.7509787070e-06 -4.8134899120e-05 +1181 1.1810000000e+01 5.0991788260e-06 -2.0329557190e-05 +1182 1.1820000000e+01 5.1853377300e-06 4.6534024350e-06 +1183 1.1830000000e+01 5.0405482780e-06 2.6153287390e-05 +1184 1.1840000000e+01 4.7017245850e-06 4.3667703640e-05 +1185 1.1850000000e+01 4.2099998780e-06 5.6852853570e-05 +1186 1.1860000000e+01 3.6091206690e-06 6.5520030940e-05 +1187 1.1870000000e+01 2.9438377600e-06 6.8044387790e-05 +1188 1.1880000000e+01 2.2582945630e-06 6.8005776470e-05 +1189 1.1890000000e+01 1.5944132410e-06 6.5247449720e-05 +1190 1.1900000000e+01 9.9027914890e-07 5.7253374050e-05 +1191 1.1910000000e+01 4.7794482020e-07 4.6374107540e-05 +1192 1.1920000000e+01 7.9430367210e-08 3.3872879470e-05 +1193 1.1930000000e+01 -1.9586145530e-07 2.1091406450e-05 +1194 1.1940000000e+01 -3.5038203430e-07 9.1537875640e-06 +1195 1.1950000000e+01 -3.9696232700e-07 -9.8173844310e-07 +1196 1.1960000000e+01 -3.5733509120e-07 -8.5097413050e-06 +1197 1.1970000000e+01 -2.6065437280e-07 -1.1346751290e-05 +1198 1.1980000000e+01 -1.4201270800e-07 -1.1393547340e-05 +1199 1.1990000000e+01 -4.0956496040e-08 -8.7451546660e-06 +1200 1.2000000000e+01 0.0000000000e+00 -1.0906638080e-06 diff --git a/unittest/force-styles/tests/table_CG_CG_CG.txt b/unittest/force-styles/tests/table_CG_CG_CG.txt new file mode 100644 index 0000000000..d6d1c3e71e --- /dev/null +++ b/unittest/force-styles/tests/table_CG_CG_CG.txt @@ -0,0 +1,1004 @@ +VOTCA +N 1001 + +1 0.00000e+00 -6.5399880e+01 -1.4141539e+00 +2 1.80000e-01 -6.5145332e+01 -1.4141539e+00 +3 3.60000e-01 -6.4890785e+01 -1.4141539e+00 +4 5.40000e-01 -6.4636237e+01 -1.4141539e+00 +5 7.20000e-01 -6.4381689e+01 -1.4141539e+00 +6 9.00000e-01 -6.4127142e+01 -1.4141539e+00 +7 1.08000e+00 -6.3872594e+01 -1.4141539e+00 +8 1.26000e+00 -6.3618046e+01 -1.4141539e+00 +9 1.44000e+00 -6.3363498e+01 -1.4141539e+00 +10 1.62000e+00 -6.3108951e+01 -1.4141539e+00 +11 1.80000e+00 -6.2854403e+01 -1.4141539e+00 +12 1.98000e+00 -6.2599855e+01 -1.4141539e+00 +13 2.16000e+00 -6.2345308e+01 -1.4141539e+00 +14 2.34000e+00 -6.2090760e+01 -1.4141539e+00 +15 2.52000e+00 -6.1836212e+01 -1.4141539e+00 +16 2.70000e+00 -6.1581664e+01 -1.4141539e+00 +17 2.88000e+00 -6.1327117e+01 -1.4141539e+00 +18 3.06000e+00 -6.1072569e+01 -1.4141539e+00 +19 3.24000e+00 -6.0818021e+01 -1.4141539e+00 +20 3.42000e+00 -6.0563474e+01 -1.4141539e+00 +21 3.60000e+00 -6.0308926e+01 -1.4141539e+00 +22 3.78000e+00 -6.0054378e+01 -1.4141539e+00 +23 3.96000e+00 -5.9799831e+01 -1.4141539e+00 +24 4.14000e+00 -5.9545283e+01 -1.4141539e+00 +25 4.32000e+00 -5.9290735e+01 -1.4141539e+00 +26 4.50000e+00 -5.9036187e+01 -1.4141539e+00 +27 4.68000e+00 -5.8781640e+01 -1.4141539e+00 +28 4.86000e+00 -5.8527092e+01 -1.4141539e+00 +29 5.04000e+00 -5.8272544e+01 -1.4141539e+00 +30 5.22000e+00 -5.8017997e+01 -1.4141539e+00 +31 5.40000e+00 -5.7763449e+01 -1.4141539e+00 +32 5.58000e+00 -5.7508901e+01 -1.4141539e+00 +33 5.76000e+00 -5.7254354e+01 -1.4141539e+00 +34 5.94000e+00 -5.6999806e+01 -1.4141539e+00 +35 6.12000e+00 -5.6745258e+01 -1.4141539e+00 +36 6.30000e+00 -5.6490710e+01 -1.4141539e+00 +37 6.48000e+00 -5.6236163e+01 -1.4141539e+00 +38 6.66000e+00 -5.5981615e+01 -1.4141539e+00 +39 6.84000e+00 -5.5727067e+01 -1.4141539e+00 +40 7.02000e+00 -5.5472520e+01 -1.4141539e+00 +41 7.20000e+00 -5.5217972e+01 -1.4141539e+00 +42 7.38000e+00 -5.4963424e+01 -1.4141539e+00 +43 7.56000e+00 -5.4708876e+01 -1.4141539e+00 +44 7.74000e+00 -5.4454329e+01 -1.4141539e+00 +45 7.92000e+00 -5.4199781e+01 -1.4141539e+00 +46 8.10000e+00 -5.3945233e+01 -1.4141539e+00 +47 8.28000e+00 -5.3690686e+01 -1.4141539e+00 +48 8.46000e+00 -5.3436138e+01 -1.4141539e+00 +49 8.64000e+00 -5.3181590e+01 -1.4141539e+00 +50 8.82000e+00 -5.2927043e+01 -1.4141539e+00 +51 9.00000e+00 -5.2672495e+01 -1.4141539e+00 +52 9.18000e+00 -5.2417947e+01 -1.4141539e+00 +53 9.36000e+00 -5.2163399e+01 -1.4141539e+00 +54 9.54000e+00 -5.1908852e+01 -1.4141539e+00 +55 9.72000e+00 -5.1654304e+01 -1.4141539e+00 +56 9.90000e+00 -5.1399756e+01 -1.4141539e+00 +57 1.00800e+01 -5.1145209e+01 -1.4141539e+00 +58 1.02600e+01 -5.0890661e+01 -1.4141539e+00 +59 1.04400e+01 -5.0636113e+01 -1.4141539e+00 +60 1.06200e+01 -5.0381565e+01 -1.4141539e+00 +61 1.08000e+01 -5.0127018e+01 -1.4141539e+00 +62 1.09800e+01 -4.9872470e+01 -1.4141539e+00 +63 1.11600e+01 -4.9617922e+01 -1.4141539e+00 +64 1.13400e+01 -4.9363375e+01 -1.4141539e+00 +65 1.15200e+01 -4.9108827e+01 -1.4141539e+00 +66 1.17000e+01 -4.8854279e+01 -1.4141539e+00 +67 1.18800e+01 -4.8599732e+01 -1.4141539e+00 +68 1.20600e+01 -4.8345184e+01 -1.4141539e+00 +69 1.22400e+01 -4.8090636e+01 -1.4141539e+00 +70 1.24200e+01 -4.7836088e+01 -1.4141539e+00 +71 1.26000e+01 -4.7581541e+01 -1.4141539e+00 +72 1.27800e+01 -4.7326993e+01 -1.4141539e+00 +73 1.29600e+01 -4.7072445e+01 -1.4141539e+00 +74 1.31400e+01 -4.6817898e+01 -1.4141539e+00 +75 1.33200e+01 -4.6563350e+01 -1.4141539e+00 +76 1.35000e+01 -4.6308802e+01 -1.4141539e+00 +77 1.36800e+01 -4.6054255e+01 -1.4141539e+00 +78 1.38600e+01 -4.5799707e+01 -1.4141539e+00 +79 1.40400e+01 -4.5545159e+01 -1.4141539e+00 +80 1.42200e+01 -4.5290611e+01 -1.4141539e+00 +81 1.44000e+01 -4.5036064e+01 -1.4141539e+00 +82 1.45800e+01 -4.4781516e+01 -1.4141539e+00 +83 1.47600e+01 -4.4526968e+01 -1.4141539e+00 +84 1.49400e+01 -4.4272421e+01 -1.4141539e+00 +85 1.51200e+01 -4.4017873e+01 -1.4141539e+00 +86 1.53000e+01 -4.3763325e+01 -1.4141539e+00 +87 1.54800e+01 -4.3508777e+01 -1.4141539e+00 +88 1.56600e+01 -4.3254230e+01 -1.4141539e+00 +89 1.58400e+01 -4.2999682e+01 -1.4141539e+00 +90 1.60200e+01 -4.2745134e+01 -1.4141539e+00 +91 1.62000e+01 -4.2490587e+01 -1.4141539e+00 +92 1.63800e+01 -4.2236039e+01 -1.4141539e+00 +93 1.65600e+01 -4.1981491e+01 -1.4141539e+00 +94 1.67400e+01 -4.1726944e+01 -1.4141539e+00 +95 1.69200e+01 -4.1472396e+01 -1.4141539e+00 +96 1.71000e+01 -4.1217848e+01 -1.4141539e+00 +97 1.72800e+01 -4.0963300e+01 -1.4141539e+00 +98 1.74600e+01 -4.0708753e+01 -1.4141539e+00 +99 1.76400e+01 -4.0454205e+01 -1.4141539e+00 +100 1.78200e+01 -4.0199657e+01 -1.4141539e+00 +101 1.80000e+01 -3.9945110e+01 -1.4141539e+00 +102 1.81800e+01 -3.9690562e+01 -1.4141539e+00 +103 1.83600e+01 -3.9436014e+01 -1.4141539e+00 +104 1.85400e+01 -3.9181467e+01 -1.4141539e+00 +105 1.87200e+01 -3.8926919e+01 -1.4141539e+00 +106 1.89000e+01 -3.8672371e+01 -1.4141539e+00 +107 1.90800e+01 -3.8417823e+01 -1.4141539e+00 +108 1.92600e+01 -3.8163276e+01 -1.4141539e+00 +109 1.94400e+01 -3.7908728e+01 -1.4141539e+00 +110 1.96200e+01 -3.7654180e+01 -1.4141539e+00 +111 1.98000e+01 -3.7399633e+01 -1.4141539e+00 +112 1.99800e+01 -3.7145085e+01 -1.4141539e+00 +113 2.01600e+01 -3.6890537e+01 -1.4141539e+00 +114 2.03400e+01 -3.6635989e+01 -1.4141539e+00 +115 2.05200e+01 -3.6381442e+01 -1.4141539e+00 +116 2.07000e+01 -3.6126894e+01 -1.4141539e+00 +117 2.08800e+01 -3.5872346e+01 -1.4141539e+00 +118 2.10600e+01 -3.5617799e+01 -1.4141539e+00 +119 2.12400e+01 -3.5363251e+01 -1.4141539e+00 +120 2.14200e+01 -3.5108703e+01 -1.4141539e+00 +121 2.16000e+01 -3.4854156e+01 -1.4141539e+00 +122 2.17800e+01 -3.4599608e+01 -1.4141539e+00 +123 2.19600e+01 -3.4345060e+01 -1.4141539e+00 +124 2.21400e+01 -3.4090512e+01 -1.4141539e+00 +125 2.23200e+01 -3.3835965e+01 -1.4141539e+00 +126 2.25000e+01 -3.3581417e+01 -1.4141539e+00 +127 2.26800e+01 -3.3326869e+01 -1.4141539e+00 +128 2.28600e+01 -3.3072322e+01 -1.4141539e+00 +129 2.30400e+01 -3.2817774e+01 -1.4141539e+00 +130 2.32200e+01 -3.2563226e+01 -1.4141539e+00 +131 2.34000e+01 -3.2308679e+01 -1.4141539e+00 +132 2.35800e+01 -3.2054131e+01 -1.4141539e+00 +133 2.37600e+01 -3.1799583e+01 -1.4141539e+00 +134 2.39400e+01 -3.1545035e+01 -1.4141539e+00 +135 2.41200e+01 -3.1290488e+01 -1.4141539e+00 +136 2.43000e+01 -3.1035940e+01 -1.4141539e+00 +137 2.44800e+01 -3.0781392e+01 -1.4141539e+00 +138 2.46600e+01 -3.0526845e+01 -1.4141539e+00 +139 2.48400e+01 -3.0272297e+01 -1.4141539e+00 +140 2.50200e+01 -3.0017749e+01 -1.4141539e+00 +141 2.52000e+01 -2.9763201e+01 -1.4141539e+00 +142 2.53800e+01 -2.9508654e+01 -1.4141539e+00 +143 2.55600e+01 -2.9254106e+01 -1.4141539e+00 +144 2.57400e+01 -2.8999558e+01 -1.4141539e+00 +145 2.59200e+01 -2.8745011e+01 -1.4141539e+00 +146 2.61000e+01 -2.8490463e+01 -1.4141539e+00 +147 2.62800e+01 -2.8235915e+01 -1.4141539e+00 +148 2.64600e+01 -2.7981368e+01 -1.4141539e+00 +149 2.66400e+01 -2.7726820e+01 -1.4141539e+00 +150 2.68200e+01 -2.7472272e+01 -1.4141539e+00 +151 2.70000e+01 -2.7217724e+01 -1.4141539e+00 +152 2.71800e+01 -2.6963177e+01 -1.4141539e+00 +153 2.73600e+01 -2.6708629e+01 -1.4141539e+00 +154 2.75400e+01 -2.6454081e+01 -1.4141539e+00 +155 2.77200e+01 -2.6199534e+01 -1.4141539e+00 +156 2.79000e+01 -2.5944986e+01 -1.4141539e+00 +157 2.80800e+01 -2.5690438e+01 -1.4141539e+00 +158 2.82600e+01 -2.5435890e+01 -1.4141539e+00 +159 2.84400e+01 -2.5181343e+01 -1.4141539e+00 +160 2.86200e+01 -2.4926795e+01 -1.4141539e+00 +161 2.88000e+01 -2.4672247e+01 -1.4141539e+00 +162 2.89800e+01 -2.4417700e+01 -1.4141539e+00 +163 2.91600e+01 -2.4163152e+01 -1.4141539e+00 +164 2.93400e+01 -2.3908604e+01 -1.4141539e+00 +165 2.95200e+01 -2.3654057e+01 -1.4141539e+00 +166 2.97000e+01 -2.3399509e+01 -1.4141539e+00 +167 2.98800e+01 -2.3144961e+01 -1.4141539e+00 +168 3.00600e+01 -2.2890413e+01 -1.4141539e+00 +169 3.02400e+01 -2.2635866e+01 -1.4141539e+00 +170 3.04200e+01 -2.2381318e+01 -1.4141539e+00 +171 3.06000e+01 -2.2126770e+01 -1.4141539e+00 +172 3.07800e+01 -2.1872223e+01 -1.4141539e+00 +173 3.09600e+01 -2.1617675e+01 -1.4141539e+00 +174 3.11400e+01 -2.1363127e+01 -1.4141539e+00 +175 3.13200e+01 -2.1108580e+01 -1.4141539e+00 +176 3.15000e+01 -2.0854032e+01 -1.4141539e+00 +177 3.16800e+01 -2.0599484e+01 -1.4141539e+00 +178 3.18600e+01 -2.0344936e+01 -1.4141539e+00 +179 3.20400e+01 -2.0090389e+01 -1.4141539e+00 +180 3.22200e+01 -1.9835841e+01 -1.4141539e+00 +181 3.24000e+01 -1.9581293e+01 -1.4141539e+00 +182 3.25800e+01 -1.9326746e+01 -1.4141539e+00 +183 3.27600e+01 -1.9072198e+01 -1.4141539e+00 +184 3.29400e+01 -1.8817650e+01 -1.4141539e+00 +185 3.31200e+01 -1.8563102e+01 -1.4141539e+00 +186 3.33000e+01 -1.8308555e+01 -1.4141539e+00 +187 3.34800e+01 -1.8054007e+01 -1.4141539e+00 +188 3.36600e+01 -1.7799459e+01 -1.4141539e+00 +189 3.38400e+01 -1.7544912e+01 -1.4141539e+00 +190 3.40200e+01 -1.7290364e+01 -1.4141539e+00 +191 3.42000e+01 -1.7035816e+01 -1.4141539e+00 +192 3.43800e+01 -1.6781269e+01 -1.4141539e+00 +193 3.45600e+01 -1.6526721e+01 -1.4141539e+00 +194 3.47400e+01 -1.6272173e+01 -1.4141539e+00 +195 3.49200e+01 -1.6017625e+01 -1.4141539e+00 +196 3.51000e+01 -1.5763078e+01 -1.4141539e+00 +197 3.52800e+01 -1.5508530e+01 -1.4141539e+00 +198 3.54600e+01 -1.5253982e+01 -1.4141539e+00 +199 3.56400e+01 -1.4999435e+01 -1.4141539e+00 +200 3.58200e+01 -1.4744887e+01 -1.4141539e+00 +201 3.60000e+01 -1.4490339e+01 -1.4141539e+00 +202 3.61800e+01 -1.4235792e+01 -1.4141539e+00 +203 3.63600e+01 -1.3981244e+01 -1.4141539e+00 +204 3.65400e+01 -1.3726696e+01 -1.4141539e+00 +205 3.67200e+01 -1.3472148e+01 -1.4141539e+00 +206 3.69000e+01 -1.3217601e+01 -1.4141539e+00 +207 3.70800e+01 -1.2963053e+01 -1.4141539e+00 +208 3.72600e+01 -1.2708505e+01 -1.4141539e+00 +209 3.74400e+01 -1.2453958e+01 -1.4141539e+00 +210 3.76200e+01 -1.2199410e+01 -1.4141539e+00 +211 3.78000e+01 -1.1944862e+01 -1.4141539e+00 +212 3.79800e+01 -1.1690314e+01 -1.4141539e+00 +213 3.81600e+01 -1.1435767e+01 -1.4141539e+00 +214 3.83400e+01 -1.1181219e+01 -1.4141539e+00 +215 3.85200e+01 -1.0926671e+01 -1.4141539e+00 +216 3.87000e+01 -1.0672124e+01 -1.4141539e+00 +217 3.88800e+01 -1.0417576e+01 -1.4141539e+00 +218 3.90600e+01 -1.0163028e+01 -1.4141539e+00 +219 3.92400e+01 -9.9084806e+00 -1.4141539e+00 +220 3.94200e+01 -9.6539329e+00 -1.4141539e+00 +221 3.96000e+01 -9.3993852e+00 -1.4141539e+00 +222 3.97800e+01 -9.1448374e+00 -1.4141539e+00 +223 3.99600e+01 -8.8902897e+00 -1.4141539e+00 +224 4.01400e+01 -8.6357420e+00 -1.4141539e+00 +225 4.03200e+01 -8.3811943e+00 -1.4141539e+00 +226 4.05000e+01 -8.1266466e+00 -1.4141539e+00 +227 4.06800e+01 -7.8720989e+00 -1.4141539e+00 +228 4.08600e+01 -7.6175512e+00 -1.4141539e+00 +229 4.10400e+01 -7.3630035e+00 -1.4141539e+00 +230 4.12200e+01 -7.1084558e+00 -1.4141539e+00 +231 4.14000e+01 -6.8539081e+00 -1.4141539e+00 +232 4.15800e+01 -6.5993604e+00 -1.4141539e+00 +233 4.17600e+01 -6.3451123e+00 -1.4116569e+00 +234 4.19400e+01 -6.0913137e+00 -1.4087437e+00 +235 4.21200e+01 -5.8381144e+00 -1.4049982e+00 +236 4.23000e+01 -5.5856642e+00 -1.4004204e+00 +237 4.24800e+01 -5.3341129e+00 -1.3950102e+00 +238 4.26600e+01 -5.0836104e+00 -1.3887676e+00 +239 4.28400e+01 -4.8343064e+00 -1.3816928e+00 +240 4.30200e+01 -4.5863508e+00 -1.3737856e+00 +241 4.32000e+01 -4.3398934e+00 -1.3650460e+00 +242 4.33800e+01 -4.0950840e+00 -1.3554741e+00 +243 4.35600e+01 -3.8520725e+00 -1.3450699e+00 +244 4.37400e+01 -3.6110087e+00 -1.3338334e+00 +245 4.39200e+01 -3.3720423e+00 -1.3217645e+00 +246 4.41000e+01 -3.1353233e+00 -1.3088632e+00 +247 4.42800e+01 -2.9010014e+00 -1.2951297e+00 +248 4.44600e+01 -2.6692264e+00 -1.2805638e+00 +249 4.46400e+01 -2.4401483e+00 -1.2651655e+00 +250 4.48200e+01 -2.2139167e+00 -1.2489349e+00 +251 4.50000e+01 -1.9906815e+00 -1.2318720e+00 +252 4.51800e+01 -1.7705926e+00 -1.2139768e+00 +253 4.53600e+01 -1.5537997e+00 -1.1952492e+00 +254 4.55400e+01 -1.3404527e+00 -1.1756892e+00 +255 4.57200e+01 -1.1307014e+00 -1.1552970e+00 +256 4.59000e+01 -9.2469562e-01 -1.1340723e+00 +257 4.60800e+01 -7.2258518e-01 -1.1120154e+00 +258 4.62600e+01 -5.2451990e-01 -1.0891261e+00 +259 4.64400e+01 -3.3064960e-01 -1.0654045e+00 +260 4.66200e+01 -1.4112410e-01 -1.0408503e+00 +261 4.68000e+01 4.3906773e-02 -1.0153760e+00 +262 4.69800e+01 2.2429340e-01 -9.8902709e-01 +263 4.71600e+01 3.9995134e-01 -9.6270864e-01 +264 4.73400e+01 5.7095483e-01 -9.3709040e-01 +265 4.75200e+01 7.3740183e-01 -9.1204860e-01 +266 4.77000e+01 8.9939028e-01 -8.8755096e-01 +267 4.78800e+01 1.0570181e+00 -8.6359746e-01 +268 4.80600e+01 1.2103833e+00 -8.4018812e-01 +269 4.82400e+01 1.3595838e+00 -8.1732293e-01 +270 4.84200e+01 1.5047175e+00 -7.9500187e-01 +271 4.86000e+01 1.6458824e+00 -7.7322498e-01 +272 4.87800e+01 1.7831764e+00 -7.5199223e-01 +273 4.89600e+01 1.9166976e+00 -7.3130363e-01 +274 4.91400e+01 2.0465437e+00 -7.1115919e-01 +275 4.93200e+01 2.1728128e+00 -6.9155888e-01 +276 4.95000e+01 2.2956028e+00 -6.7250272e-01 +277 4.96800e+01 2.4150117e+00 -6.5399073e-01 +278 4.98600e+01 2.5311375e+00 -6.3602289e-01 +279 5.00400e+01 2.6440779e+00 -6.1859916e-01 +280 5.02200e+01 2.7539311e+00 -6.0171962e-01 +281 5.04000e+01 2.8607949e+00 -5.8538422e-01 +282 5.05800e+01 2.9647674e+00 -5.6959295e-01 +283 5.07600e+01 3.0659463e+00 -5.5434585e-01 +284 5.09400e+01 3.1644298e+00 -5.3964290e-01 +285 5.11200e+01 3.2603157e+00 -5.2548408e-01 +286 5.13000e+01 3.3537020e+00 -5.1186943e-01 +287 5.14800e+01 3.4446867e+00 -4.9879893e-01 +288 5.16600e+01 3.5333676e+00 -4.8627255e-01 +289 5.18400e+01 3.6198427e+00 -4.7429035e-01 +290 5.20200e+01 3.7042101e+00 -4.6285229e-01 +291 5.22000e+01 3.7865675e+00 -4.5195837e-01 +292 5.23800e+01 3.8670130e+00 -4.4161003e-01 +293 5.25600e+01 3.9456446e+00 -4.3188395e-01 +294 5.27400e+01 4.0225591e+00 -4.2265255e-01 +295 5.29200e+01 4.0977975e+00 -4.1334526e-01 +296 5.31000e+01 4.1713149e+00 -4.0364940e-01 +297 5.32800e+01 4.2430591e+00 -3.9365327e-01 +298 5.34600e+01 4.3129779e+00 -3.8336719e-01 +299 5.36400e+01 4.3810191e+00 -3.7279118e-01 +300 5.38200e+01 4.4471306e+00 -3.6192527e-01 +301 5.40000e+01 4.5112600e+00 -3.5076941e-01 +302 5.41800e+01 4.5733554e+00 -3.3932361e-01 +303 5.43600e+01 4.6333643e+00 -3.2758791e-01 +304 5.45400e+01 4.6912348e+00 -3.1556227e-01 +305 5.47200e+01 4.7469146e+00 -3.0324669e-01 +306 5.49000e+01 4.8003514e+00 -2.9064119e-01 +307 5.50800e+01 4.8514932e+00 -2.7774577e-01 +308 5.52600e+01 4.9002877e+00 -2.6456043e-01 +309 5.54400e+01 4.9466828e+00 -2.5108513e-01 +310 5.56200e+01 4.9906262e+00 -2.3731992e-01 +311 5.58000e+01 5.0320658e+00 -2.2326479e-01 +312 5.59800e+01 5.0709493e+00 -2.0891973e-01 +313 5.61600e+01 5.1072247e+00 -1.9428474e-01 +314 5.63400e+01 5.1408396e+00 -1.7935982e-01 +315 5.65200e+01 5.1717420e+00 -1.6414496e-01 +316 5.67000e+01 5.1998796e+00 -1.4864017e-01 +317 5.68800e+01 5.2252003e+00 -1.3284549e-01 +318 5.70600e+01 5.2476518e+00 -1.1676084e-01 +319 5.72400e+01 5.2671820e+00 -1.0038629e-01 +320 5.74200e+01 5.2837387e+00 -8.3721799e-02 +321 5.76000e+01 5.2972697e+00 -6.6767354e-02 +322 5.77800e+01 5.3077228e+00 -4.9523048e-02 +323 5.79600e+01 5.3150458e+00 -3.1988751e-02 +324 5.81400e+01 5.3191865e+00 -1.4158719e-02 +325 5.83200e+01 5.3200928e+00 4.0811116e-03 +326 5.85000e+01 5.3177168e+00 2.2451136e-02 +327 5.86800e+01 5.3121051e+00 4.0169275e-02 +328 5.88600e+01 5.3033977e+00 5.6973873e-02 +329 5.90400e+01 5.2917382e+00 7.2974824e-02 +330 5.92200e+01 5.2772705e+00 8.8177269e-02 +331 5.94000e+01 5.2601381e+00 1.0258120e-01 +332 5.95800e+01 5.2404850e+00 1.1618669e-01 +333 5.97600e+01 5.2184547e+00 1.2899368e-01 +334 5.99400e+01 5.1941910e+00 1.4100213e-01 +335 6.01200e+01 5.1678376e+00 1.5221210e-01 +336 6.03000e+01 5.1395383e+00 1.6262367e-01 +337 6.04800e+01 5.1094368e+00 1.7223669e-01 +338 6.06600e+01 5.0776769e+00 1.8105113e-01 +339 6.08400e+01 5.0444021e+00 1.8906726e-01 +340 6.10200e+01 5.0097564e+00 1.9628480e-01 +341 6.12000e+01 4.9738834e+00 2.0270376e-01 +342 6.13800e+01 4.9369268e+00 2.0832442e-01 +343 6.15600e+01 4.8990303e+00 2.1314649e-01 +344 6.17400e+01 4.8603377e+00 2.1717002e-01 +345 6.19200e+01 4.8209928e+00 2.2039510e-01 +346 6.21000e+01 4.7811392e+00 2.2282179e-01 +347 6.22800e+01 4.7409207e+00 2.2444986e-01 +348 6.24600e+01 4.7004810e+00 2.2499622e-01 +349 6.26400e+01 4.6599638e+00 2.2499623e-01 +350 6.28200e+01 4.6195129e+00 2.2454334e-01 +351 6.30000e+01 4.5792720e+00 2.2297736e-01 +352 6.31800e+01 4.5393848e+00 2.2061311e-01 +353 6.33600e+01 4.4999950e+00 2.1745030e-01 +354 6.35400e+01 4.4612464e+00 2.1348890e-01 +355 6.37200e+01 4.4232827e+00 2.0872912e-01 +356 6.39000e+01 4.3862476e+00 2.0316042e-01 +357 6.40800e+01 4.3502849e+00 1.9668922e-01 +358 6.42600e+01 4.3155297e+00 1.8964640e-01 +359 6.44400e+01 4.2820197e+00 1.8270549e-01 +360 6.46200e+01 4.2497320e+00 1.7598157e-01 +361 6.48000e+01 4.2186422e+00 1.6939308e-01 +362 6.49800e+01 4.1887263e+00 1.6293898e-01 +363 6.51600e+01 4.1599600e+00 1.5661902e-01 +364 6.53400e+01 4.1323193e+00 1.5043324e-01 +365 6.55200e+01 4.1057799e+00 1.4438173e-01 +366 6.57000e+01 4.0803177e+00 1.3846450e-01 +367 6.58800e+01 4.0559085e+00 1.3268145e-01 +368 6.60600e+01 4.0325282e+00 1.2703254e-01 +369 6.62400e+01 4.0101527e+00 1.2151800e-01 +370 6.64200e+01 3.9887576e+00 1.1613761e-01 +371 6.66000e+01 3.9683190e+00 1.1089139e-01 +372 6.67800e+01 3.9488125e+00 1.0577952e-01 +373 6.69600e+01 3.9302142e+00 1.0080180e-01 +374 6.71400e+01 3.9124997e+00 9.5958273e-02 +375 6.73200e+01 3.8956450e+00 9.1249023e-02 +376 6.75000e+01 3.8796259e+00 8.6674023e-02 +377 6.76800e+01 3.8644182e+00 8.2233193e-02 +378 6.78600e+01 3.8499978e+00 7.7926573e-02 +379 6.80400e+01 3.8363405e+00 7.3754253e-02 +380 6.82200e+01 3.8234221e+00 6.9716094e-02 +381 6.84000e+01 3.8112185e+00 6.5812157e-02 +382 6.85800e+01 3.7997056e+00 6.2042498e-02 +383 6.87600e+01 3.7888591e+00 5.8407027e-02 +384 6.89400e+01 3.7786549e+00 5.4905770e-02 +385 6.91200e+01 3.7690688e+00 5.1538755e-02 +386 6.93000e+01 3.7600768e+00 4.8305968e-02 +387 6.94800e+01 3.7516545e+00 4.5207408e-02 +388 6.96600e+01 3.7437780e+00 4.2240286e-02 +389 6.98400e+01 3.7364229e+00 3.9394893e-02 +390 7.00200e+01 3.7295632e+00 3.6725615e-02 +391 7.02000e+01 3.7231608e+00 3.4299208e-02 +392 7.03800e+01 3.7171724e+00 3.2118193e-02 +393 7.05600e+01 3.7115552e+00 3.0176466e-02 +394 7.07400e+01 3.7062658e+00 2.8474044e-02 +395 7.09200e+01 3.7012614e+00 2.7010954e-02 +396 7.11000e+01 3.6964988e+00 2.5787161e-02 +397 7.12800e+01 3.6919350e+00 2.4802661e-02 +398 7.14600e+01 3.6875268e+00 2.4057474e-02 +399 7.16400e+01 3.6832312e+00 2.3551614e-02 +400 7.18200e+01 3.6790051e+00 2.3359584e-02 +401 7.20000e+01 3.6748055e+00 2.3359584e-02 +402 7.21800e+01 3.6705893e+00 2.3469823e-02 +403 7.23600e+01 3.6663133e+00 2.3921155e-02 +404 7.25400e+01 3.6619346e+00 2.4611803e-02 +405 7.27200e+01 3.6574100e+00 2.5541761e-02 +406 7.29000e+01 3.6526965e+00 2.6711050e-02 +407 7.30800e+01 3.6477509e+00 2.8119632e-02 +408 7.32600e+01 3.6425303e+00 2.9767477e-02 +409 7.34400e+01 3.6369916e+00 3.1654688e-02 +410 7.36200e+01 3.6310916e+00 3.3781187e-02 +411 7.38000e+01 3.6247873e+00 3.6146962e-02 +412 7.39800e+01 3.6180356e+00 3.8752091e-02 +413 7.41600e+01 3.6107934e+00 4.1596510e-02 +414 7.43400e+01 3.6030178e+00 4.4680221e-02 +415 7.45200e+01 3.5946655e+00 4.8003226e-02 +416 7.47000e+01 3.5856935e+00 5.1565583e-02 +417 7.48800e+01 3.5760588e+00 5.5367233e-02 +418 7.50600e+01 3.5657182e+00 5.9408132e-02 +419 7.52400e+01 3.5546288e+00 6.3688423e-02 +420 7.54200e+01 3.5427473e+00 6.8223879e-02 +421 7.56000e+01 3.5300308e+00 7.3029965e-02 +422 7.57800e+01 3.5164482e+00 7.7880892e-02 +423 7.59600e+01 3.5020142e+00 8.2553868e-02 +424 7.61400e+01 3.4867546e+00 8.7068515e-02 +425 7.63200e+01 3.4706953e+00 9.1439765e-02 +426 7.65000e+01 3.4538621e+00 9.5667672e-02 +427 7.66800e+01 3.4362808e+00 9.9752176e-02 +428 7.68600e+01 3.4179771e+00 1.0369322e-01 +429 7.70400e+01 3.3989770e+00 1.0749097e-01 +430 7.72200e+01 3.3793062e+00 1.1114530e-01 +431 7.74000e+01 3.3589905e+00 1.1465616e-01 +432 7.75800e+01 3.3380558e+00 1.1802375e-01 +433 7.77600e+01 3.3165278e+00 1.2124790e-01 +434 7.79400e+01 3.2944323e+00 1.2432860e-01 +435 7.81200e+01 3.2717953e+00 1.2726596e-01 +436 7.83000e+01 3.2486424e+00 1.3005998e-01 +437 7.84800e+01 3.2249995e+00 1.3271057e-01 +438 7.86600e+01 3.2008924e+00 1.3521770e-01 +439 7.88400e+01 3.1763469e+00 1.3758155e-01 +440 7.90200e+01 3.1513889e+00 1.3980196e-01 +441 7.92000e+01 3.1260440e+00 1.4187893e-01 +442 7.93800e+01 3.1003383e+00 1.4381262e-01 +443 7.95600e+01 3.0742973e+00 1.4560284e-01 +444 7.97400e+01 3.0479470e+00 1.4724966e-01 +445 7.99200e+01 3.0213132e+00 1.4875311e-01 +446 8.01000e+01 2.9944217e+00 1.5011321e-01 +447 8.02800e+01 2.9672983e+00 1.5132989e-01 +448 8.04600e+01 2.9399688e+00 1.5240312e-01 +449 8.06400e+01 2.9124590e+00 1.5333308e-01 +450 8.08200e+01 2.8847947e+00 1.5411956e-01 +451 8.10000e+01 2.8570018e+00 1.5476259e-01 +452 8.11800e+01 2.8291059e+00 1.5525096e-01 +453 8.13600e+01 2.8011331e+00 1.5559419e-01 +454 8.15400e+01 2.7731025e+00 1.5588274e-01 +455 8.17200e+01 2.7450184e+00 1.5617122e-01 +456 8.19000e+01 2.7168829e+00 1.5645093e-01 +457 8.20800e+01 2.6886982e+00 1.5671895e-01 +458 8.22600e+01 2.6604662e+00 1.5697527e-01 +459 8.24400e+01 2.6321891e+00 1.5722007e-01 +460 8.26200e+01 2.6038691e+00 1.5745319e-01 +461 8.28000e+01 2.5755081e+00 1.5767458e-01 +462 8.29800e+01 2.5471083e+00 1.5788447e-01 +463 8.31600e+01 2.5186718e+00 1.5808266e-01 +464 8.33400e+01 2.4902007e+00 1.5826915e-01 +465 8.35200e+01 2.4616970e+00 1.5844407e-01 +466 8.37000e+01 2.4331629e+00 1.5860740e-01 +467 8.38800e+01 2.4046004e+00 1.5875902e-01 +468 8.40600e+01 2.3760117e+00 1.5889896e-01 +469 8.42400e+01 2.3473989e+00 1.5902738e-01 +470 8.44200e+01 2.3187640e+00 1.5914408e-01 +471 8.46000e+01 2.2901091e+00 1.5924910e-01 +472 8.47800e+01 2.2614364e+00 1.5934261e-01 +473 8.49600e+01 2.2327479e+00 1.5942440e-01 +474 8.51400e+01 2.2040457e+00 1.5949452e-01 +475 8.53200e+01 2.1753319e+00 1.5955304e-01 +476 8.55000e+01 2.1466087e+00 1.5959998e-01 +477 8.56800e+01 2.1178780e+00 1.5963520e-01 +478 8.58600e+01 2.0891421e+00 1.5965876e-01 +479 8.60400e+01 2.0604030e+00 1.5966658e-01 +480 8.62200e+01 2.0316627e+00 1.5966658e-01 +481 8.64000e+01 2.0029235e+00 1.5965974e-01 +482 8.65800e+01 1.9741873e+00 1.5963685e-01 +483 8.67600e+01 1.9454563e+00 1.5960227e-01 +484 8.69400e+01 1.9167326e+00 1.5955568e-01 +485 8.71200e+01 1.8880182e+00 1.5949769e-01 +486 8.73000e+01 1.8593151e+00 1.5943103e-01 +487 8.74800e+01 1.8306245e+00 1.5935722e-01 +488 8.76600e+01 1.8019478e+00 1.5927573e-01 +489 8.78400e+01 1.7732866e+00 1.5918672e-01 +490 8.80200e+01 1.7446420e+00 1.5908999e-01 +491 8.82000e+01 1.7160156e+00 1.5898553e-01 +492 8.83800e+01 1.6874086e+00 1.5887355e-01 +493 8.85600e+01 1.6588225e+00 1.5875385e-01 +494 8.87400e+01 1.6302586e+00 1.5862645e-01 +495 8.89200e+01 1.6017183e+00 1.5849144e-01 +496 8.91000e+01 1.5732030e+00 1.5834881e-01 +497 8.92800e+01 1.5447141e+00 1.5819849e-01 +498 8.94600e+01 1.5162530e+00 1.5804046e-01 +499 8.96400e+01 1.4878209e+00 1.5787488e-01 +500 8.98200e+01 1.4594194e+00 1.5770159e-01 +501 9.00000e+01 1.4310497e+00 1.5752059e-01 +502 9.01800e+01 1.4027133e+00 1.5733204e-01 +503 9.03600e+01 1.3744116e+00 1.5713579e-01 +504 9.05400e+01 1.3461458e+00 1.5693182e-01 +505 9.07200e+01 1.3179175e+00 1.5672026e-01 +506 9.09000e+01 1.2897279e+00 1.5650109e-01 +507 9.10800e+01 1.2615785e+00 1.5627421e-01 +508 9.12600e+01 1.2334706e+00 1.5603961e-01 +509 9.14400e+01 1.2054056e+00 1.5579748e-01 +510 9.16200e+01 1.1773849e+00 1.5554764e-01 +511 9.18000e+01 1.1494098e+00 1.5529008e-01 +512 9.19800e+01 1.1214818e+00 1.5502498e-01 +513 9.21600e+01 1.0936022e+00 1.5475216e-01 +514 9.23400e+01 1.0657724e+00 1.5447165e-01 +515 9.25200e+01 1.0379938e+00 1.5418356e-01 +516 9.27000e+01 1.0102677e+00 1.5388859e-01 +517 9.28800e+01 9.8259561e-01 1.5358487e-01 +518 9.30600e+01 9.5497945e-01 1.5326767e-01 +519 9.32400e+01 9.2742181e-01 1.5293549e-01 +520 9.34200e+01 8.9992526e-01 1.5258888e-01 +521 9.36000e+01 8.7249240e-01 1.5222786e-01 +522 9.37800e+01 8.4512580e-01 1.5185262e-01 +523 9.39600e+01 8.1782804e-01 1.5146298e-01 +524 9.41400e+01 7.9060172e-01 1.5105894e-01 +525 9.43200e+01 7.6344940e-01 1.5064060e-01 +526 9.45000e+01 7.3637368e-01 1.5020796e-01 +527 9.46800e+01 7.0937712e-01 1.4976094e-01 +528 9.48600e+01 6.8246233e-01 1.4929951e-01 +529 9.50400e+01 6.5563187e-01 1.4882385e-01 +530 9.52200e+01 6.2888833e-01 1.4833379e-01 +531 9.54000e+01 6.0223430e-01 1.4782932e-01 +532 9.55800e+01 5.7567235e-01 1.4731063e-01 +533 9.57600e+01 5.4920506e-01 1.4677753e-01 +534 9.59400e+01 5.2283502e-01 1.4623004e-01 +535 9.61200e+01 4.9656482e-01 1.4566826e-01 +536 9.63000e+01 4.7039703e-01 1.4509217e-01 +537 9.64800e+01 4.4433422e-01 1.4450170e-01 +538 9.66600e+01 4.1837900e-01 1.4389682e-01 +539 9.68400e+01 3.9253394e-01 1.4327771e-01 +540 9.70200e+01 3.6680161e-01 1.4264420e-01 +541 9.72000e+01 3.4118462e-01 1.4199628e-01 +542 9.73800e+01 3.1568553e-01 1.4133414e-01 +543 9.75600e+01 2.9030691e-01 1.4065759e-01 +544 9.77400e+01 2.6505138e-01 1.3996665e-01 +545 9.79200e+01 2.3992150e-01 1.3926142e-01 +546 9.81000e+01 2.1491985e-01 1.3854188e-01 +547 9.82800e+01 1.9004901e-01 1.3780795e-01 +548 9.84600e+01 1.6531157e-01 1.3705966e-01 +549 9.86400e+01 1.4071012e-01 1.3629706e-01 +550 9.88200e+01 1.1624725e-01 1.3551985e-01 +551 9.90000e+01 9.1925599e-02 1.3472800e-01 +552 9.91800e+01 6.7747784e-02 1.3392168e-01 +553 9.93600e+01 4.3716420e-02 1.3310075e-01 +554 9.95400e+01 1.9834143e-02 1.3226519e-01 +555 9.97200e+01 -3.8964316e-03 1.3141512e-01 +556 9.99000e+01 -2.7472680e-02 1.3055051e-01 +557 1.00080e+02 -5.0891989e-02 1.2967129e-01 +558 1.00260e+02 -7.4151719e-02 1.2877745e-01 +559 1.00440e+02 -9.7249257e-02 1.2786915e-01 +560 1.00620e+02 -1.2018199e-01 1.2694622e-01 +561 1.00800e+02 -1.4294727e-01 1.2600867e-01 +562 1.00980e+02 -1.6554249e-01 1.2505666e-01 +563 1.01160e+02 -1.8796504e-01 1.2409002e-01 +564 1.01340e+02 -2.1021227e-01 1.2310877e-01 +565 1.01520e+02 -2.3228158e-01 1.2211300e-01 +566 1.01700e+02 -2.5417034e-01 1.2110269e-01 +567 1.01880e+02 -2.7587592e-01 1.2007778e-01 +568 1.02060e+02 -2.9739571e-01 1.1903825e-01 +569 1.02240e+02 -3.1872708e-01 1.1798424e-01 +570 1.02420e+02 -3.3986741e-01 1.1691561e-01 +571 1.02600e+02 -3.6081407e-01 1.1583237e-01 +572 1.02780e+02 -3.8156445e-01 1.1473465e-01 +573 1.02960e+02 -4.0211592e-01 1.1362232e-01 +574 1.03140e+02 -4.2246586e-01 1.1249538e-01 +575 1.03320e+02 -4.4261164e-01 1.1135391e-01 +576 1.03500e+02 -4.6255064e-01 1.1019790e-01 +577 1.03680e+02 -4.8228026e-01 1.0902729e-01 +578 1.03860e+02 -5.0179784e-01 1.0784206e-01 +579 1.04040e+02 -5.2110078e-01 1.0664221e-01 +580 1.04220e+02 -5.4018647e-01 1.0542714e-01 +581 1.04400e+02 -5.5905236e-01 1.0419964e-01 +582 1.04580e+02 -5.7769659e-01 1.0296342e-01 +583 1.04760e+02 -5.9611756e-01 1.0171847e-01 +584 1.04940e+02 -6.1431362e-01 1.0046448e-01 +585 1.05120e+02 -6.3228315e-01 9.9201492e-02 +586 1.05300e+02 -6.5002453e-01 9.7929512e-02 +587 1.05480e+02 -6.6753615e-01 9.6648481e-02 +588 1.05660e+02 -6.8481636e-01 9.5358391e-02 +589 1.05840e+02 -7.0186355e-01 9.4059355e-02 +590 1.06020e+02 -7.1867610e-01 9.2751257e-02 +591 1.06200e+02 -7.3525238e-01 9.1434101e-02 +592 1.06380e+02 -7.5159076e-01 9.0107998e-02 +593 1.06560e+02 -7.6768963e-01 8.8772834e-02 +594 1.06740e+02 -7.8354735e-01 8.7428622e-02 +595 1.06920e+02 -7.9916231e-01 8.6075416e-02 +596 1.07100e+02 -8.1453288e-01 8.4713213e-02 +597 1.07280e+02 -8.2965744e-01 8.3341966e-02 +598 1.07460e+02 -8.4453436e-01 8.1961658e-02 +599 1.07640e+02 -8.5916202e-01 8.0572396e-02 +600 1.07820e+02 -8.7353880e-01 7.9174081e-02 +601 1.08000e+02 -8.8766306e-01 7.7766710e-02 +602 1.08180e+02 -9.0153319e-01 7.6350381e-02 +603 1.08360e+02 -9.1514757e-01 7.4924999e-02 +604 1.08540e+02 -9.2850457e-01 7.3490572e-02 +605 1.08720e+02 -9.4160256e-01 7.2047146e-02 +606 1.08900e+02 -9.5443992e-01 7.0594719e-02 +607 1.09080e+02 -9.6701503e-01 6.9133250e-02 +608 1.09260e+02 -9.7932626e-01 6.7662732e-02 +609 1.09440e+02 -9.9137199e-01 6.6183242e-02 +610 1.09620e+02 -1.0031506e+00 6.4694710e-02 +611 1.09800e+02 -1.0146605e+00 6.3196356e-02 +612 1.09980e+02 -1.0258999e+00 6.1687720e-02 +613 1.10160e+02 -1.0368680e+00 6.0178958e-02 +614 1.10340e+02 -1.0475656e+00 5.8679814e-02 +615 1.10520e+02 -1.0579942e+00 5.7189432e-02 +616 1.10700e+02 -1.0681552e+00 5.5707154e-02 +617 1.10880e+02 -1.0780502e+00 5.4232947e-02 +618 1.11060e+02 -1.0876806e+00 5.2766814e-02 +619 1.11240e+02 -1.0970477e+00 5.1308811e-02 +620 1.11420e+02 -1.1061532e+00 4.9858868e-02 +621 1.11600e+02 -1.1149984e+00 4.8417006e-02 +622 1.11780e+02 -1.1235848e+00 4.6983272e-02 +623 1.11960e+02 -1.1319138e+00 4.5557597e-02 +624 1.12140e+02 -1.1399870e+00 4.4140014e-02 +625 1.12320e+02 -1.1478057e+00 4.2730528e-02 +626 1.12500e+02 -1.1553714e+00 4.1329140e-02 +627 1.12680e+02 -1.1626856e+00 3.9935837e-02 +628 1.12860e+02 -1.1697498e+00 3.8550600e-02 +629 1.13040e+02 -1.1765653e+00 3.7173492e-02 +630 1.13220e+02 -1.1831337e+00 3.5804457e-02 +631 1.13400e+02 -1.1894564e+00 3.4443490e-02 +632 1.13580e+02 -1.1955348e+00 3.3090646e-02 +633 1.13760e+02 -1.2013704e+00 3.1745881e-02 +634 1.13940e+02 -1.2069648e+00 3.0409192e-02 +635 1.14120e+02 -1.2123192e+00 2.9080603e-02 +636 1.14300e+02 -1.2174352e+00 2.7760113e-02 +637 1.14480e+02 -1.2223143e+00 2.6447704e-02 +638 1.14660e+02 -1.2269579e+00 2.5143376e-02 +639 1.14840e+02 -1.2313674e+00 2.3847157e-02 +640 1.15020e+02 -1.2355443e+00 2.2559018e-02 +641 1.15200e+02 -1.2394901e+00 2.1278961e-02 +642 1.15380e+02 -1.2432062e+00 2.0007004e-02 +643 1.15560e+02 -1.2466941e+00 1.8742761e-02 +644 1.15740e+02 -1.2499552e+00 1.7486524e-02 +645 1.15920e+02 -1.2529912e+00 1.6241800e-02 +646 1.16100e+02 -1.2558046e+00 1.5011056e-02 +647 1.16280e+02 -1.2583976e+00 1.3793797e-02 +648 1.16460e+02 -1.2607728e+00 1.2589897e-02 +649 1.16640e+02 -1.2629324e+00 1.1399383e-02 +650 1.16820e+02 -1.2648789e+00 1.0222240e-02 +651 1.17000e+02 -1.2666148e+00 9.0584625e-03 +652 1.17180e+02 -1.2681424e+00 7.9080625e-03 +653 1.17360e+02 -1.2694641e+00 6.7710417e-03 +654 1.17540e+02 -1.2705824e+00 5.6473791e-03 +655 1.17720e+02 -1.2714996e+00 4.5370973e-03 +656 1.17900e+02 -1.2722181e+00 3.4401860e-03 +657 1.18080e+02 -1.2727405e+00 2.3566459e-03 +658 1.18260e+02 -1.2730689e+00 1.2864861e-03 +659 1.18440e+02 -1.2732060e+00 2.2968470e-04 +660 1.18620e+02 -1.2731540e+00 -8.1373748e-04 +661 1.18800e+02 -1.2729155e+00 -1.8437819e-03 +662 1.18980e+02 -1.2724927e+00 -2.8604626e-03 +663 1.19160e+02 -1.2718881e+00 -3.8637638e-03 +664 1.19340e+02 -1.2711041e+00 -4.8536931e-03 +665 1.19520e+02 -1.2701432e+00 -5.8302555e-03 +666 1.19700e+02 -1.2690076e+00 -6.7934459e-03 +667 1.19880e+02 -1.2676999e+00 -7.7432583e-03 +668 1.20060e+02 -1.2662225e+00 -8.6796987e-03 +669 1.20240e+02 -1.2645777e+00 -9.6027750e-03 +670 1.20420e+02 -1.2627679e+00 -1.0512465e-02 +671 1.20600e+02 -1.2607956e+00 -1.1408790e-02 +672 1.20780e+02 -1.2586631e+00 -1.2291749e-02 +673 1.20960e+02 -1.2563730e+00 -1.3161329e-02 +674 1.21140e+02 -1.2539275e+00 -1.4017525e-02 +675 1.21320e+02 -1.2513290e+00 -1.4859989e-02 +676 1.21500e+02 -1.2485801e+00 -1.5689347e-02 +677 1.21680e+02 -1.2456828e+00 -1.6508237e-02 +678 1.21860e+02 -1.2426389e+00 -1.7317985e-02 +679 1.22040e+02 -1.2394501e+00 -1.8118197e-02 +680 1.22220e+02 -1.2361181e+00 -1.8908812e-02 +681 1.22400e+02 -1.2326446e+00 -1.9689850e-02 +682 1.22580e+02 -1.2290315e+00 -2.0461318e-02 +683 1.22760e+02 -1.2252803e+00 -2.1223183e-02 +684 1.22940e+02 -1.2213928e+00 -2.1975467e-02 +685 1.23120e+02 -1.2173708e+00 -2.2718178e-02 +686 1.23300e+02 -1.2132160e+00 -2.3451304e-02 +687 1.23480e+02 -1.2089301e+00 -2.4174843e-02 +688 1.23660e+02 -1.2045148e+00 -2.4888790e-02 +689 1.23840e+02 -1.1999719e+00 -2.5593175e-02 +690 1.24020e+02 -1.1953030e+00 -2.6287964e-02 +691 1.24200e+02 -1.1905099e+00 -2.6973156e-02 +692 1.24380e+02 -1.1855944e+00 -2.7648792e-02 +693 1.24560e+02 -1.1805581e+00 -2.8314829e-02 +694 1.24740e+02 -1.1754028e+00 -2.8971279e-02 +695 1.24920e+02 -1.1701301e+00 -2.9618151e-02 +696 1.25100e+02 -1.1647419e+00 -3.0255446e-02 +697 1.25280e+02 -1.1592399e+00 -3.0883151e-02 +698 1.25460e+02 -1.1536257e+00 -3.1501265e-02 +699 1.25640e+02 -1.1479012e+00 -3.2109817e-02 +700 1.25820e+02 -1.1420679e+00 -3.2708771e-02 +701 1.26000e+02 -1.1361277e+00 -3.3298135e-02 +702 1.26180e+02 -1.1300823e+00 -3.3877938e-02 +703 1.26360e+02 -1.1239334e+00 -3.4448137e-02 +704 1.26540e+02 -1.1176827e+00 -3.5008750e-02 +705 1.26720e+02 -1.1113320e+00 -3.5559787e-02 +706 1.26900e+02 -1.1048829e+00 -3.6101243e-02 +707 1.27080e+02 -1.0983373e+00 -3.6632801e-02 +708 1.27260e+02 -1.0916967e+00 -3.7155198e-02 +709 1.27440e+02 -1.0849627e+00 -3.7670333e-02 +710 1.27620e+02 -1.0781366e+00 -3.8178730e-02 +711 1.27800e+02 -1.0712197e+00 -3.8680133e-02 +712 1.27980e+02 -1.0642131e+00 -3.9174585e-02 +713 1.28160e+02 -1.0571181e+00 -3.9662035e-02 +714 1.28340e+02 -1.0499360e+00 -4.0142489e-02 +715 1.28520e+02 -1.0426680e+00 -4.0615960e-02 +716 1.28700e+02 -1.0353155e+00 -4.1082470e-02 +717 1.28880e+02 -1.0278796e+00 -4.1541976e-02 +718 1.29060e+02 -1.0203616e+00 -4.1994469e-02 +719 1.29240e+02 -1.0127628e+00 -4.2440025e-02 +720 1.29420e+02 -1.0050845e+00 -4.2878573e-02 +721 1.29600e+02 -9.9732782e-01 -4.3310116e-02 +722 1.29780e+02 -9.8949410e-01 -4.3734706e-02 +723 1.29960e+02 -9.8158458e-01 -4.4152294e-02 +724 1.30140e+02 -9.7360053e-01 -4.4562883e-02 +725 1.30320e+02 -9.6554320e-01 -4.4966498e-02 +726 1.30500e+02 -9.5741385e-01 -4.5363141e-02 +727 1.30680e+02 -9.4921373e-01 -4.5752786e-02 +728 1.30860e+02 -9.4094411e-01 -4.6135424e-02 +729 1.31040e+02 -9.3260623e-01 -4.6511114e-02 +730 1.31220e+02 -9.2420136e-01 -4.6879800e-02 +731 1.31400e+02 -9.1573076e-01 -4.7241480e-02 +732 1.31580e+02 -9.0719569e-01 -4.7596212e-02 +733 1.31760e+02 -8.9859739e-01 -4.7943937e-02 +734 1.31940e+02 -8.8993713e-01 -4.8284663e-02 +735 1.32120e+02 -8.8121616e-01 -4.8618417e-02 +736 1.32300e+02 -8.7243575e-01 -4.8945202e-02 +737 1.32480e+02 -8.6359715e-01 -4.9264982e-02 +738 1.32660e+02 -8.5470162e-01 -4.9577706e-02 +739 1.32840e+02 -8.4575041e-01 -4.9883053e-02 +740 1.33020e+02 -8.3674475e-01 -5.0182410e-02 +741 1.33200e+02 -8.2768547e-01 -5.0478215e-02 +742 1.33380e+02 -8.1857321e-01 -5.0770926e-02 +743 1.33560e+02 -8.0940856e-01 -5.1060192e-02 +744 1.33740e+02 -8.0019216e-01 -5.1346014e-02 +745 1.33920e+02 -7.9092461e-01 -5.1628425e-02 +746 1.34100e+02 -7.8160654e-01 -5.1907427e-02 +747 1.34280e+02 -7.7223855e-01 -5.2182981e-02 +748 1.34460e+02 -7.6282128e-01 -5.2455089e-02 +749 1.34640e+02 -7.5335534e-01 -5.2723810e-02 +750 1.34820e+02 -7.4384133e-01 -5.2989081e-02 +751 1.35000e+02 -7.3427989e-01 -5.3250905e-02 +752 1.35180e+02 -7.2467162e-01 -5.3509343e-02 +753 1.35360e+02 -7.1501714e-01 -5.3764332e-02 +754 1.35540e+02 -7.0531708e-01 -5.4015876e-02 +755 1.35720e+02 -6.9557204e-01 -5.4264010e-02 +756 1.35900e+02 -6.8578265e-01 -5.4508734e-02 +757 1.36080e+02 -6.7594952e-01 -5.4750010e-02 +758 1.36260e+02 -6.6607326e-01 -5.4987839e-02 +759 1.36440e+02 -6.5615451e-01 -5.5222284e-02 +760 1.36620e+02 -6.4619386e-01 -5.5453277e-02 +761 1.36800e+02 -6.3619195e-01 -5.5680823e-02 +762 1.36980e+02 -6.2614938e-01 -5.5904985e-02 +763 1.37160e+02 -6.1606677e-01 -5.6125695e-02 +764 1.37340e+02 -6.0594475e-01 -5.6342960e-02 +765 1.37520e+02 -5.9578392e-01 -5.6556816e-02 +766 1.37700e+02 -5.8558491e-01 -5.6767263e-02 +767 1.37880e+02 -5.7534832e-01 -5.6974263e-02 +768 1.38060e+02 -5.6507479e-01 -5.7177812e-02 +769 1.38240e+02 -5.5476492e-01 -5.7377979e-02 +770 1.38420e+02 -5.4441934e-01 -5.7574527e-02 +771 1.38600e+02 -5.3403865e-01 -5.7766980e-02 +772 1.38780e+02 -5.2362336e-01 -5.7958495e-02 +773 1.38960e+02 -5.1317326e-01 -5.8152824e-02 +774 1.39140e+02 -5.0268788e-01 -5.8350080e-02 +775 1.39320e+02 -4.9216677e-01 -5.8549940e-02 +776 1.39500e+02 -4.8160944e-01 -5.8752403e-02 +777 1.39680e+02 -4.7101544e-01 -5.8957432e-02 +778 1.39860e+02 -4.6038430e-01 -5.9165021e-02 +779 1.40040e+02 -4.4971556e-01 -5.9375242e-02 +780 1.40220e+02 -4.3900875e-01 -5.9588024e-02 +781 1.40400e+02 -4.2826341e-01 -5.9803368e-02 +782 1.40580e+02 -4.1747907e-01 -6.0021345e-02 +783 1.40760e+02 -4.0665526e-01 -6.0241883e-02 +784 1.40940e+02 -3.9579153e-01 -6.0464983e-02 +785 1.41120e+02 -3.8488740e-01 -6.0690690e-02 +786 1.41300e+02 -3.7394241e-01 -6.0919001e-02 +787 1.41480e+02 -3.6295610e-01 -6.1149876e-02 +788 1.41660e+02 -3.5192799e-01 -6.1383312e-02 +789 1.41840e+02 -3.4085763e-01 -6.1619382e-02 +790 1.42020e+02 -3.2974455e-01 -6.1858011e-02 +791 1.42200e+02 -3.1858829e-01 -6.2099201e-02 +792 1.42380e+02 -3.0738837e-01 -6.2343025e-02 +793 1.42560e+02 -2.9614433e-01 -6.2589409e-02 +794 1.42740e+02 -2.8485572e-01 -6.2838357e-02 +795 1.42920e+02 -2.7352206e-01 -6.3089911e-02 +796 1.43100e+02 -2.6214288e-01 -6.3344069e-02 +797 1.43280e+02 -2.5071773e-01 -6.3600791e-02 +798 1.43460e+02 -2.3924614e-01 -6.3860073e-02 +799 1.43640e+02 -2.2772763e-01 -6.4121991e-02 +800 1.43820e+02 -2.1616176e-01 -6.4386468e-02 +801 1.44000e+02 -2.0454804e-01 -6.4653504e-02 +802 1.44180e+02 -1.9288603e-01 -6.4923496e-02 +803 1.44360e+02 -1.8117524e-01 -6.5196551e-02 +804 1.44540e+02 -1.6941545e-01 -6.5468516e-02 +805 1.44720e+02 -1.5760725e-01 -6.5735587e-02 +806 1.44900e+02 -1.4575140e-01 -6.5998160e-02 +807 1.45080e+02 -1.3384868e-01 -6.6256440e-02 +808 1.45260e+02 -1.2189986e-01 -6.6510420e-02 +809 1.45440e+02 -1.0990570e-01 -6.6760180e-02 +810 1.45620e+02 -9.7866964e-02 -6.7005641e-02 +811 1.45800e+02 -8.5784437e-02 -6.7246802e-02 +812 1.45980e+02 -7.3658880e-02 -6.7483745e-02 +813 1.46160e+02 -6.1491060e-02 -6.7716387e-02 +814 1.46340e+02 -4.9281752e-02 -6.7944735e-02 +815 1.46520e+02 -3.7031722e-02 -6.8168832e-02 +816 1.46700e+02 -2.4741740e-02 -6.8388679e-02 +817 1.46880e+02 -1.2412569e-02 -6.8604230e-02 +818 1.47060e+02 -4.4987875e-05 -6.8815481e-02 +819 1.47240e+02 1.2360239e-02 -6.9022515e-02 +820 1.47420e+02 2.4802346e-02 -6.9225248e-02 +821 1.47600e+02 3.7280557e-02 -6.9423681e-02 +822 1.47780e+02 4.9794106e-02 -6.9617897e-02 +823 1.47960e+02 6.2342229e-02 -6.9807811e-02 +824 1.48140e+02 7.4924147e-02 -6.9993431e-02 +825 1.48320e+02 8.7539097e-02 -7.0174801e-02 +826 1.48500e+02 1.0018631e-01 -7.0351921e-02 +827 1.48680e+02 1.1286502e-01 -7.0524744e-02 +828 1.48860e+02 1.2557445e-01 -7.0693267e-02 +829 1.49040e+02 1.3831383e-01 -7.0857574e-02 +830 1.49220e+02 1.5108240e-01 -7.1017579e-02 +831 1.49400e+02 1.6387939e-01 -7.1173284e-02 +832 1.49580e+02 1.7670402e-01 -7.1324773e-02 +833 1.49760e+02 1.8955553e-01 -7.1471958e-02 +834 1.49940e+02 2.0243315e-01 -7.1614594e-02 +835 1.50120e+02 2.1533611e-01 -7.1752951e-02 +836 1.50300e+02 2.2826383e-01 -7.1889340e-02 +837 1.50480e+02 2.4121610e-01 -7.2025285e-02 +838 1.50660e+02 2.5419278e-01 -7.2160459e-02 +839 1.50840e+02 2.6719372e-01 -7.2294879e-02 +840 1.51020e+02 2.8021879e-01 -7.2428454e-02 +841 1.51200e+02 2.9326782e-01 -7.2561187e-02 +842 1.51380e+02 3.0634067e-01 -7.2693167e-02 +843 1.51560e+02 3.1943721e-01 -7.2824303e-02 +844 1.51740e+02 3.3255727e-01 -7.2954601e-02 +845 1.51920e+02 3.4570072e-01 -7.3084110e-02 +846 1.52100e+02 3.5886741e-01 -7.3212830e-02 +847 1.52280e+02 3.7205719e-01 -7.3340712e-02 +848 1.52460e+02 3.8526992e-01 -7.3467752e-02 +849 1.52640e+02 3.9850544e-01 -7.3594039e-02 +850 1.52820e+02 4.1176362e-01 -7.3719479e-02 +851 1.53000e+02 4.2504431e-01 -7.3844079e-02 +852 1.53180e+02 4.3834735e-01 -7.3967925e-02 +853 1.53360e+02 4.5167261e-01 -7.4090928e-02 +854 1.53540e+02 4.6501994e-01 -7.4213093e-02 +855 1.53720e+02 4.7838918e-01 -7.4334469e-02 +856 1.53900e+02 4.9178020e-01 -7.4455055e-02 +857 1.54080e+02 5.0519285e-01 -7.4574803e-02 +858 1.54260e+02 5.1862698e-01 -7.4693709e-02 +859 1.54440e+02 5.3208244e-01 -7.4811861e-02 +860 1.54620e+02 5.4555910e-01 -7.4929171e-02 +861 1.54800e+02 5.5905680e-01 -7.5045636e-02 +862 1.54980e+02 5.7257539e-01 -7.5161348e-02 +863 1.55160e+02 5.8611473e-01 -7.5276217e-02 +864 1.55340e+02 5.9967468e-01 -7.5390248e-02 +865 1.55520e+02 6.1325508e-01 -7.5503508e-02 +866 1.55700e+02 6.2685579e-01 -7.5616730e-02 +867 1.55880e+02 6.4047666e-01 -7.5728565e-02 +868 1.56060e+02 6.5411696e-01 -7.5833518e-02 +869 1.56240e+02 6.6777523e-01 -7.5929200e-02 +870 1.56420e+02 6.8144994e-01 -7.6016303e-02 +871 1.56600e+02 6.9513957e-01 -7.6094907e-02 +872 1.56780e+02 7.0884259e-01 -7.6165093e-02 +873 1.56960e+02 7.2255747e-01 -7.6226769e-02 +874 1.57140e+02 7.3628270e-01 -7.6279953e-02 +875 1.57320e+02 7.5001673e-01 -7.6324680e-02 +876 1.57500e+02 7.6375806e-01 -7.6360964e-02 +877 1.57680e+02 7.7750515e-01 -7.6388730e-02 +878 1.57860e+02 7.9125648e-01 -7.6408009e-02 +879 1.58040e+02 8.0501051e-01 -7.6417185e-02 +880 1.58220e+02 8.1876574e-01 -7.6417185e-02 +881 1.58400e+02 8.3252062e-01 -7.6415064e-02 +882 1.58580e+02 8.4627364e-01 -7.6400486e-02 +883 1.58760e+02 8.6002327e-01 -7.6377423e-02 +884 1.58940e+02 8.7376799e-01 -7.6345843e-02 +885 1.59120e+02 8.8750625e-01 -7.6305819e-02 +886 1.59300e+02 9.0123656e-01 -7.6257337e-02 +887 1.59480e+02 9.1495737e-01 -7.6200364e-02 +888 1.59660e+02 9.2866716e-01 -7.6134879e-02 +889 1.59840e+02 9.4236440e-01 -7.6060980e-02 +890 1.60020e+02 9.5604758e-01 -7.5978581e-02 +891 1.60200e+02 9.6971516e-01 -7.5887668e-02 +892 1.60380e+02 9.8336562e-01 -7.5788342e-02 +893 1.60560e+02 9.9699744e-01 -7.5680516e-02 +894 1.60740e+02 1.0106091e+00 -7.5564182e-02 +895 1.60920e+02 1.0241990e+00 -7.5439401e-02 +896 1.61100e+02 1.0377657e+00 -7.5306167e-02 +897 1.61280e+02 1.0513077e+00 -7.5164450e-02 +898 1.61460e+02 1.0648234e+00 -7.5014389e-02 +899 1.61640e+02 1.0783113e+00 -7.4855639e-02 +900 1.61820e+02 1.0917697e+00 -7.4687031e-02 +901 1.62000e+02 1.1051968e+00 -7.4508182e-02 +902 1.62180e+02 1.1185908e+00 -7.4319356e-02 +903 1.62360e+02 1.1319500e+00 -7.4120465e-02 +904 1.62540e+02 1.1452724e+00 -7.3911513e-02 +905 1.62720e+02 1.1585563e+00 -7.3692566e-02 +906 1.62900e+02 1.1717999e+00 -7.3463595e-02 +907 1.63080e+02 1.1850014e+00 -7.3224578e-02 +908 1.63260e+02 1.1981590e+00 -7.2975497e-02 +909 1.63440e+02 1.2112708e+00 -7.2716437e-02 +910 1.63620e+02 1.2243351e+00 -7.2447323e-02 +911 1.63800e+02 1.2373500e+00 -7.2168144e-02 +912 1.63980e+02 1.2503138e+00 -7.1878988e-02 +913 1.64160e+02 1.2632246e+00 -7.1579771e-02 +914 1.64340e+02 1.2760807e+00 -7.1270501e-02 +915 1.64520e+02 1.2888802e+00 -7.0951227e-02 +916 1.64700e+02 1.3016214e+00 -7.0621933e-02 +917 1.64880e+02 1.3143023e+00 -7.0282585e-02 +918 1.65060e+02 1.3269213e+00 -6.9933179e-02 +919 1.65240e+02 1.3394765e+00 -6.9573801e-02 +920 1.65420e+02 1.3519660e+00 -6.9204355e-02 +921 1.65600e+02 1.3643882e+00 -6.8824851e-02 +922 1.65780e+02 1.3767412e+00 -6.8435377e-02 +923 1.65960e+02 1.3890231e+00 -6.8035828e-02 +924 1.66140e+02 1.4012323e+00 -6.7626234e-02 +925 1.66320e+02 1.4133668e+00 -6.7206635e-02 +926 1.66500e+02 1.4254249e+00 -6.6777016e-02 +927 1.66680e+02 1.4374047e+00 -6.6337343e-02 +928 1.66860e+02 1.4493045e+00 -6.5887612e-02 +929 1.67040e+02 1.4611224e+00 -6.5428144e-02 +930 1.67220e+02 1.4728567e+00 -6.4960391e-02 +931 1.67400e+02 1.4845054e+00 -6.4478113e-02 +932 1.67580e+02 1.4960648e+00 -6.3970704e-02 +933 1.67760e+02 1.5075302e+00 -6.3436333e-02 +934 1.67940e+02 1.5188972e+00 -6.2876336e-02 +935 1.68120e+02 1.5301611e+00 -6.2290756e-02 +936 1.68300e+02 1.5413173e+00 -6.1679602e-02 +937 1.68480e+02 1.5523612e+00 -6.1042848e-02 +938 1.68660e+02 1.5632881e+00 -6.0380457e-02 +939 1.68840e+02 1.5740935e+00 -5.9692522e-02 +940 1.69020e+02 1.5847728e+00 -5.8978977e-02 +941 1.69200e+02 1.5953213e+00 -5.8239815e-02 +942 1.69380e+02 1.6057345e+00 -5.7475096e-02 +943 1.69560e+02 1.6160078e+00 -5.6684763e-02 +944 1.69740e+02 1.6261364e+00 -5.5868818e-02 +945 1.69920e+02 1.6361159e+00 -5.5027296e-02 +946 1.70100e+02 1.6459417e+00 -5.4160196e-02 +947 1.70280e+02 1.6556090e+00 -5.3267485e-02 +948 1.70460e+02 1.6651133e+00 -5.2349160e-02 +949 1.70640e+02 1.6744501e+00 -5.1405275e-02 +950 1.70820e+02 1.6836146e+00 -5.0435782e-02 +951 1.71000e+02 1.6926024e+00 -4.9440674e-02 +952 1.71180e+02 1.7014087e+00 -4.8420007e-02 +953 1.71360e+02 1.7100290e+00 -4.7373725e-02 +954 1.71540e+02 1.7184586e+00 -4.6301837e-02 +955 1.71720e+02 1.7266930e+00 -4.5204374e-02 +956 1.71900e+02 1.7347276e+00 -4.4081319e-02 +957 1.72080e+02 1.7425577e+00 -4.2932661e-02 +958 1.72260e+02 1.7501787e+00 -4.1758394e-02 +959 1.72440e+02 1.7575861e+00 -4.0558562e-02 +960 1.72620e+02 1.7647752e+00 -3.9333116e-02 +961 1.72800e+02 1.7717414e+00 -3.8080384e-02 +962 1.72980e+02 1.7784801e+00 -3.6795821e-02 +963 1.73160e+02 1.7849880e+00 -3.5510058e-02 +964 1.73340e+02 1.7912686e+00 -3.4260553e-02 +965 1.73520e+02 1.7973278e+00 -3.3047568e-02 +966 1.73700e+02 1.8031717e+00 -3.1867827e-02 +967 1.73880e+02 1.8088062e+00 -3.0721315e-02 +968 1.74060e+02 1.8142373e+00 -2.9608017e-02 +969 1.74240e+02 1.8194711e+00 -2.8527982e-02 +970 1.74420e+02 1.8245134e+00 -2.7481161e-02 +971 1.74600e+02 1.8293703e+00 -2.6467563e-02 +972 1.74780e+02 1.8340477e+00 -2.5487220e-02 +973 1.74960e+02 1.8385516e+00 -2.4540096e-02 +974 1.75140e+02 1.8428881e+00 -2.3626201e-02 +975 1.75320e+02 1.8470630e+00 -2.2745547e-02 +976 1.75500e+02 1.8510825e+00 -2.1898128e-02 +977 1.75680e+02 1.8549524e+00 -2.1083930e-02 +978 1.75860e+02 1.8586787e+00 -2.0302968e-02 +979 1.76040e+02 1.8622674e+00 -1.9555246e-02 +980 1.76220e+02 1.8657245e+00 -1.8840753e-02 +981 1.76400e+02 1.8690561e+00 -1.8159482e-02 +982 1.76580e+02 1.8722679e+00 -1.7511452e-02 +983 1.76760e+02 1.8753662e+00 -1.6896662e-02 +984 1.76940e+02 1.8783567e+00 -1.6315089e-02 +985 1.77120e+02 1.8812456e+00 -1.5766750e-02 +986 1.77300e+02 1.8840387e+00 -1.5251659e-02 +987 1.77480e+02 1.8867422e+00 -1.4769787e-02 +988 1.77660e+02 1.8893618e+00 -1.4321146e-02 +989 1.77840e+02 1.8919037e+00 -1.3905746e-02 +990 1.78020e+02 1.8943739e+00 -1.3523574e-02 +991 1.78200e+02 1.8967782e+00 -1.3174629e-02 +992 1.78380e+02 1.8991227e+00 -1.2858927e-02 +993 1.78560e+02 1.9014134e+00 -1.2576451e-02 +994 1.78740e+02 1.9036562e+00 -1.2327206e-02 +995 1.78920e+02 1.9058572e+00 -1.2111194e-02 +996 1.79100e+02 1.9080222e+00 -1.1928418e-02 +997 1.79280e+02 1.9101574e+00 -1.1778874e-02 +998 1.79460e+02 1.9122686e+00 -1.1662552e-02 +999 1.79640e+02 1.9143619e+00 -1.1579483e-02 +1000 1.79820e+02 1.9164432e+00 -1.1540710e-02 +1001 1.80000e+02 1.9185186e+00 -1.1513008e-02 diff --git a/unittest/force-styles/yaml_writer.h b/unittest/force-styles/yaml_writer.h index 31df8eb60d..ca95a578c1 100644 --- a/unittest/force-styles/yaml_writer.h +++ b/unittest/force-styles/yaml_writer.h @@ -22,6 +22,9 @@ class YamlWriter { public: YamlWriter(const char *outfile); virtual ~YamlWriter(); + YamlWriter() = delete; + YamlWriter(const YamlWriter &) = delete; + const YamlWriter & operator=(const YamlWriter &) = delete; // emitters void emit(const std::string &key, const double value); @@ -34,10 +37,6 @@ private: FILE *fp; yaml_emitter_t emitter; yaml_event_t event; - -private: - YamlWriter(){}; - YamlWriter(const YamlWriter &){}; }; #endif diff --git a/unittest/formats/CMakeLists.txt b/unittest/formats/CMakeLists.txt index 8a198d4c64..5b5dd056c9 100644 --- a/unittest/formats/CMakeLists.txt +++ b/unittest/formats/CMakeLists.txt @@ -46,9 +46,8 @@ target_link_libraries(test_dump_atom PRIVATE lammps GTest::GMock) add_test(NAME DumpAtom COMMAND test_dump_atom) set_tests_properties(DumpAtom PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}") -if(PKG_COMPRESS) - find_program(GZIP_BINARY NAMES gzip REQUIRED) - +find_program(GZIP_EXECUTABLE NAMES gzip) +if(PKG_COMPRESS AND GZIP_FOUND) add_executable(test_dump_atom_compressed test_dump_atom_compressed.cpp compressed_dump_test_main.cpp) target_link_libraries(test_dump_atom_compressed PRIVATE lammps GTest::GMock) @@ -65,39 +64,39 @@ if(PKG_COMPRESS) target_link_libraries(test_dump_xyz_compressed PRIVATE lammps GTest::GMock) add_test(NAME DumpAtomGZ COMMAND test_dump_atom_compressed gz) - set_tests_properties(DumpAtomGZ PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_BINARY=${GZIP_BINARY}") + set_tests_properties(DumpAtomGZ PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_EXECUTABLE=${GZIP_EXECUTABLE}") add_test(NAME DumpCustomGZ COMMAND test_dump_custom_compressed gz) - set_tests_properties(DumpCustomGZ PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_BINARY=${GZIP_BINARY}") + set_tests_properties(DumpCustomGZ PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_EXECUTABLE=${GZIP_EXECUTABLE}") add_test(NAME DumpCfgGZ COMMAND test_dump_cfg_compressed gz) - set_tests_properties(DumpCfgGZ PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_BINARY=${GZIP_BINARY}") + set_tests_properties(DumpCfgGZ PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_EXECUTABLE=${GZIP_EXECUTABLE}") add_test(NAME DumpLocalGZ COMMAND test_dump_local_compressed gz) - set_tests_properties(DumpLocalGZ PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_BINARY=${GZIP_BINARY}") + set_tests_properties(DumpLocalGZ PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_EXECUTABLE=${GZIP_EXECUTABLE}") add_test(NAME DumpXYZGZ COMMAND test_dump_xyz_compressed gz) - set_tests_properties(DumpXYZGZ PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_BINARY=${GZIP_BINARY}") + set_tests_properties(DumpXYZGZ PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_EXECUTABLE=${GZIP_EXECUTABLE}") - find_package(PkgConfig REQUIRED) + find_package(PkgConfig) pkg_check_modules(Zstd IMPORTED_TARGET libzstd>=1.4) - find_program(ZSTD_BINARY NAMES zstd) + find_program(ZSTD_EXECUTABLE NAMES zstd) - if(Zstd_FOUND AND ZSTD_BINARY) + if(Zstd_FOUND AND ZSTD_EXECUTABLE) add_test(NAME DumpAtomZstd COMMAND test_dump_atom_compressed zstd) - set_tests_properties(DumpAtomZstd PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_BINARY=${ZSTD_BINARY}") + set_tests_properties(DumpAtomZstd PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_EXECUTABLE=${ZSTD_EXECUTABLE}") add_test(NAME DumpCustomZstd COMMAND test_dump_custom_compressed zstd) - set_tests_properties(DumpCustomZstd PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_BINARY=${ZSTD_BINARY}") + set_tests_properties(DumpCustomZstd PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_EXECUTABLE=${ZSTD_EXECUTABLE}") add_test(NAME DumpCfgZstd COMMAND test_dump_cfg_compressed zstd) - set_tests_properties(DumpCfgZstd PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_BINARY=${ZSTD_BINARY}") + set_tests_properties(DumpCfgZstd PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_EXECUTABLE=${ZSTD_EXECUTABLE}") add_test(NAME DumpLocalZstd COMMAND test_dump_local_compressed zstd) - set_tests_properties(DumpLocalZstd PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_BINARY=${ZSTD_BINARY}") + set_tests_properties(DumpLocalZstd PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_EXECUTABLE=${ZSTD_EXECUTABLE}") add_test(NAME DumpXYZZstd COMMAND test_dump_xyz_compressed zstd) - set_tests_properties(DumpXYZZstd PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_BINARY=${ZSTD_BINARY}") + set_tests_properties(DumpXYZZstd PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};COMPRESS_EXECUTABLE=${ZSTD_EXECUTABLE}") endif() endif() @@ -122,11 +121,11 @@ if(PKG_NETCDF) target_link_libraries(test_dump_netcdf PRIVATE lammps GTest::GMock) add_test(NAME DumpNetCDF COMMAND test_dump_netcdf) if(NOT (NCDUMP STREQUAL "NCDUMP-NOTFOUND")) - set_tests_properties(DumpNetCDF PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};NCDUMP_BINARY=${NCDUMP}") + set_tests_properties(DumpNetCDF PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};NCDUMP_EXECUTABLE=${NCDUMP}") endif() endif() if(BUILD_TOOLS) - set_tests_properties(DumpAtom PROPERTIES ENVIRONMENT "BINARY2TXT_BINARY=$") - set_tests_properties(DumpCustom PROPERTIES ENVIRONMENT "BINARY2TXT_BINARY=$") + set_tests_properties(DumpAtom PROPERTIES ENVIRONMENT "BINARY2TXT_EXECUTABLE=$") + set_tests_properties(DumpCustom PROPERTIES ENVIRONMENT "BINARY2TXT_EXECUTABLE=$") endif() diff --git a/unittest/formats/compressed_dump_test.h b/unittest/formats/compressed_dump_test.h index 9b2dbc905b..b209097264 100644 --- a/unittest/formats/compressed_dump_test.h +++ b/unittest/formats/compressed_dump_test.h @@ -19,7 +19,7 @@ extern const char *COMPRESS_SUFFIX; extern const char *COMPRESS_EXTENSION; -extern char *COMPRESS_BINARY; +extern char *COMPRESS_EXECUTABLE; class CompressedDumpTest : public MeltTest { protected: @@ -102,7 +102,7 @@ public: BEGIN_HIDE_OUTPUT(); std::string converted_file = compressed_file.substr(0, compressed_file.find_last_of('.')); std::string cmdline = - fmt::format("{} -d -c {} > {}", COMPRESS_BINARY, compressed_file, converted_file); + fmt::format("\"{}\" -d -c {} > {}", COMPRESS_EXECUTABLE, compressed_file, converted_file); system(cmdline.c_str()); END_HIDE_OUTPUT(); return converted_file; diff --git a/unittest/formats/compressed_dump_test_main.cpp b/unittest/formats/compressed_dump_test_main.cpp index e85f616776..c96682d8b7 100644 --- a/unittest/formats/compressed_dump_test_main.cpp +++ b/unittest/formats/compressed_dump_test_main.cpp @@ -22,7 +22,7 @@ const char *COMPRESS_SUFFIX = nullptr; const char *COMPRESS_EXTENSION = nullptr; -char *COMPRESS_BINARY = nullptr; +char *COMPRESS_EXECUTABLE = nullptr; bool verbose = false; int main(int argc, char **argv) @@ -46,7 +46,7 @@ int main(int argc, char **argv) return 1; } - COMPRESS_BINARY = getenv("COMPRESS_BINARY"); + COMPRESS_EXECUTABLE = getenv("COMPRESS_EXECUTABLE"); // handle arguments passed via environment variable if (const char *var = getenv("TEST_ARGS")) { diff --git a/unittest/formats/test_atom_styles.cpp b/unittest/formats/test_atom_styles.cpp index c4c79238aa..c712ffd763 100644 --- a/unittest/formats/test_atom_styles.cpp +++ b/unittest/formats/test_atom_styles.cpp @@ -2123,7 +2123,7 @@ TEST_F(AtomStyleTest, body_nparticle) "12.0 0.0 12.0 0.0 0.0 0.0\n" "0.0 1.0 0.0\n" "0.0 -3.0 0.0\n"; - FILE *fp = fopen("input_atom_styles.data", "w"); + FILE *fp = fopen("input_atom_styles.data", "w"); fputs(data_file, fp); fclose(fp); BEGIN_HIDE_OUTPUT(); @@ -5159,7 +5159,7 @@ TEST_F(AtomStyleTest, oxdna) EXPECT_NEAR(bonus[9].shape[1], 0.5869922515711705, EPSILON); EXPECT_NEAR(bonus[9].shape[2], 0.5869922515711705, EPSILON); - EXPECT_NEAR(bonus[0].quat[0], 0.9890278201757743, EPSILON); + EXPECT_NEAR(bonus[0].quat[0], 0.9890278201757743, EPSILON); EXPECT_NEAR(bonus[0].quat[1], 0.01779228232037064, EPSILON); EXPECT_NEAR(bonus[0].quat[2], -0.14337734159225404, EPSILON); EXPECT_NEAR(bonus[0].quat[3], 0.030827642240801516, EPSILON); @@ -5246,7 +5246,6 @@ TEST_F(AtomStyleTest, oxdna) ASSERT_EQ(id5p[GETIDX(10)], -1); END_HIDE_OUTPUT(); - } } // namespace LAMMPS_NS diff --git a/unittest/formats/test_dump_atom.cpp b/unittest/formats/test_dump_atom.cpp index 6303d2c019..702325f2fb 100644 --- a/unittest/formats/test_dump_atom.cpp +++ b/unittest/formats/test_dump_atom.cpp @@ -25,8 +25,8 @@ using ::testing::Eq; -char *BINARY2TXT_BINARY = nullptr; -bool verbose = false; +char *BINARY2TXT_EXECUTABLE = nullptr; +bool verbose = false; class DumpAtomTest : public MeltTest { std::string dump_style = "atom"; @@ -39,22 +39,23 @@ public: END_HIDE_OUTPUT(); } - std::string dump_filename(std::string ident) + std::string dump_filename(const std::string &ident) { return fmt::format("dump_{}_{}.melt", dump_style, ident); } - std::string text_dump_filename(std::string ident) + std::string text_dump_filename(const std::string &ident) { return fmt::format("dump_{}_text_{}.melt", dump_style, ident); } - std::string binary_dump_filename(std::string ident) + std::string binary_dump_filename(const std::string &ident) { return fmt::format("dump_{}_binary_{}.melt.bin", dump_style, ident); } - void generate_dump(std::string dump_file, std::string dump_modify_options, int ntimesteps) + void generate_dump(const std::string &dump_file, const std::string &dump_modify_options, + int ntimesteps) { BEGIN_HIDE_OUTPUT(); command(fmt::format("dump id all {} 1 {}", dump_style, dump_file)); @@ -81,8 +82,8 @@ public: END_HIDE_OUTPUT(); } - void generate_text_and_binary_dump(std::string text_file, std::string binary_file, - std::string dump_modify_options, int ntimesteps) + void generate_text_and_binary_dump(const std::string &text_file, const std::string &binary_file, + const std::string &dump_modify_options, int ntimesteps) { BEGIN_HIDE_OUTPUT(); command(fmt::format("dump id0 all {} 1 {}", dump_style, text_file)); @@ -97,10 +98,10 @@ public: END_HIDE_OUTPUT(); } - std::string convert_binary_to_text(std::string binary_file) + std::string convert_binary_to_text(const std::string &binary_file) { BEGIN_HIDE_OUTPUT(); - std::string cmdline = fmt::format("{} {}", BINARY2TXT_BINARY, binary_file); + std::string cmdline = fmt::format("\"{}\" {}", BINARY2TXT_EXECUTABLE, binary_file); system(cmdline.c_str()); END_HIDE_OUTPUT(); return fmt::format("{}.txt", binary_file); @@ -328,7 +329,7 @@ TEST_F(DumpAtomTest, triclinic_with_image_run0) TEST_F(DumpAtomTest, binary_run0) { - if (!BINARY2TXT_BINARY) GTEST_SKIP(); + if (!BINARY2TXT_EXECUTABLE) GTEST_SKIP(); auto text_file = text_dump_filename("run0"); auto binary_file = binary_dump_filename("run0"); @@ -349,7 +350,7 @@ TEST_F(DumpAtomTest, binary_run0) TEST_F(DumpAtomTest, binary_with_units_run0) { - if (!BINARY2TXT_BINARY) GTEST_SKIP(); + if (!BINARY2TXT_EXECUTABLE) GTEST_SKIP(); auto text_file = text_dump_filename("with_units_run0"); auto binary_file = binary_dump_filename("with_units_run0"); @@ -370,7 +371,7 @@ TEST_F(DumpAtomTest, binary_with_units_run0) TEST_F(DumpAtomTest, binary_with_time_run0) { - if (!BINARY2TXT_BINARY) GTEST_SKIP(); + if (!BINARY2TXT_EXECUTABLE) GTEST_SKIP(); auto text_file = text_dump_filename("with_time_run0"); auto binary_file = binary_dump_filename("with_time_run0"); @@ -391,7 +392,7 @@ TEST_F(DumpAtomTest, binary_with_time_run0) TEST_F(DumpAtomTest, binary_triclinic_run0) { - if (!BINARY2TXT_BINARY) GTEST_SKIP(); + if (!BINARY2TXT_EXECUTABLE) GTEST_SKIP(); auto text_file = text_dump_filename("tri_run0"); auto binary_file = binary_dump_filename("tri_run0"); @@ -413,7 +414,7 @@ TEST_F(DumpAtomTest, binary_triclinic_run0) TEST_F(DumpAtomTest, binary_triclinic_with_units_run0) { - if (!BINARY2TXT_BINARY) GTEST_SKIP(); + if (!BINARY2TXT_EXECUTABLE) GTEST_SKIP(); auto text_file = text_dump_filename("tri_with_units_run0"); auto binary_file = binary_dump_filename("tri_with_units_run0"); @@ -435,7 +436,7 @@ TEST_F(DumpAtomTest, binary_triclinic_with_units_run0) TEST_F(DumpAtomTest, binary_triclinic_with_time_run0) { - if (!BINARY2TXT_BINARY) GTEST_SKIP(); + if (!BINARY2TXT_EXECUTABLE) GTEST_SKIP(); auto text_file = text_dump_filename("tri_with_time_run0"); auto binary_file = binary_dump_filename("tri_with_time_run0"); @@ -457,7 +458,7 @@ TEST_F(DumpAtomTest, binary_triclinic_with_time_run0) TEST_F(DumpAtomTest, binary_triclinic_with_image_run0) { - if (!BINARY2TXT_BINARY) GTEST_SKIP(); + if (!BINARY2TXT_EXECUTABLE) GTEST_SKIP(); auto text_file = text_dump_filename("tri_with_image_run0"); auto binary_file = binary_dump_filename("tri_with_image_run0"); @@ -649,7 +650,7 @@ TEST_F(DumpAtomTest, write_dump) TEST_F(DumpAtomTest, binary_write_dump) { - if (!BINARY2TXT_BINARY) GTEST_SKIP(); + if (!BINARY2TXT_EXECUTABLE) GTEST_SKIP(); auto reference = binary_dump_filename("write_run0_ref"); auto dump_file = fmt::format("write_{}", binary_dump_filename("write_dump_atom_run*_p%")); @@ -693,7 +694,7 @@ int main(int argc, char **argv) } } - BINARY2TXT_BINARY = getenv("BINARY2TXT_BINARY"); + BINARY2TXT_EXECUTABLE = getenv("BINARY2TXT_EXECUTABLE"); if ((argc > 1) && (strcmp(argv[1], "-v") == 0)) verbose = true; diff --git a/unittest/formats/test_dump_atom_compressed.cpp b/unittest/formats/test_dump_atom_compressed.cpp index dcc3d49d6e..419ad0eb81 100644 --- a/unittest/formats/test_dump_atom_compressed.cpp +++ b/unittest/formats/test_dump_atom_compressed.cpp @@ -33,7 +33,7 @@ public: TEST_F(DumpAtomCompressTest, compressed_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto text_file = text_dump_filename("run0.melt"); auto compressed_file = compressed_dump_filename("run0.melt"); @@ -62,7 +62,7 @@ TEST_F(DumpAtomCompressTest, compressed_run0) TEST_F(DumpAtomCompressTest, compressed_no_buffer_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto text_file = text_dump_filename("no_buffer_run0.melt"); auto compressed_file = compressed_dump_filename("no_buffer_run0.melt"); @@ -91,7 +91,7 @@ TEST_F(DumpAtomCompressTest, compressed_no_buffer_run0) TEST_F(DumpAtomCompressTest, compressed_multi_file_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_run1_*.melt"; auto base_name_0 = "multi_file_run1_0.melt"; @@ -131,7 +131,7 @@ TEST_F(DumpAtomCompressTest, compressed_multi_file_run1) TEST_F(DumpAtomCompressTest, compressed_multi_file_with_pad_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_pad_run1_*.melt"; auto base_name_0 = "multi_file_pad_run1_000.melt"; @@ -172,7 +172,7 @@ TEST_F(DumpAtomCompressTest, compressed_multi_file_with_pad_run1) TEST_F(DumpAtomCompressTest, compressed_multi_file_with_maxfiles_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_maxfiles_run1_*.melt"; auto base_name_0 = "multi_file_maxfiles_run1_0.melt"; @@ -218,7 +218,7 @@ TEST_F(DumpAtomCompressTest, compressed_multi_file_with_maxfiles_run1) TEST_F(DumpAtomCompressTest, compressed_with_units_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "with_units_run0.melt"; auto text_file = text_dump_filename(base_name); @@ -242,7 +242,7 @@ TEST_F(DumpAtomCompressTest, compressed_with_units_run0) TEST_F(DumpAtomCompressTest, compressed_with_time_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "with_time_run0.melt"; auto text_file = text_dump_filename(base_name); @@ -266,7 +266,7 @@ TEST_F(DumpAtomCompressTest, compressed_with_time_run0) TEST_F(DumpAtomCompressTest, compressed_triclinic_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "tri_run0.melt"; auto text_file = text_dump_filename(base_name); @@ -291,7 +291,7 @@ TEST_F(DumpAtomCompressTest, compressed_triclinic_run0) TEST_F(DumpAtomCompressTest, compressed_triclinic_with_units_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "tri_with_units_run0.melt"; auto text_file = text_dump_filename(base_name); @@ -316,7 +316,7 @@ TEST_F(DumpAtomCompressTest, compressed_triclinic_with_units_run0) TEST_F(DumpAtomCompressTest, compressed_triclinic_with_time_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "tri_with_time_run0.melt"; auto text_file = text_dump_filename(base_name); @@ -341,7 +341,7 @@ TEST_F(DumpAtomCompressTest, compressed_triclinic_with_time_run0) TEST_F(DumpAtomCompressTest, compressed_triclinic_with_image_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "tri_with_image_run0.melt"; auto text_file = text_dump_filename(base_name); @@ -394,7 +394,7 @@ TEST_F(DumpAtomCompressTest, compressed_modify_multi_bad_param) TEST_F(DumpAtomCompressTest, compressed_modify_clevel_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "modify_clevel_run0.melt"; auto text_file = text_dump_filename(base_name); diff --git a/unittest/formats/test_dump_cfg.cpp b/unittest/formats/test_dump_cfg.cpp index c2ab96c5ed..e51da8331a 100644 --- a/unittest/formats/test_dump_cfg.cpp +++ b/unittest/formats/test_dump_cfg.cpp @@ -27,8 +27,8 @@ class DumpCfgTest : public MeltTest { std::string dump_style = "cfg"; public: - void generate_dump(std::string dump_file, std::string fields, std::string dump_modify_options, - int ntimesteps) + void generate_dump(const std::string &dump_file, const std::string &fields, + const std::string &dump_modify_options, int ntimesteps) { BEGIN_HIDE_OUTPUT(); command(fmt::format("dump id all {} 1 {} {}", dump_style, dump_file, fields)); diff --git a/unittest/formats/test_dump_cfg_compressed.cpp b/unittest/formats/test_dump_cfg_compressed.cpp index 67d7084ab9..29afec06ce 100644 --- a/unittest/formats/test_dump_cfg_compressed.cpp +++ b/unittest/formats/test_dump_cfg_compressed.cpp @@ -33,7 +33,7 @@ public: TEST_F(DumpCfgCompressTest, compressed_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "run*.melt.cfg"; auto text_files = text_dump_filename(base_name); @@ -67,7 +67,7 @@ TEST_F(DumpCfgCompressTest, compressed_run0) TEST_F(DumpCfgCompressTest, compressed_no_buffer_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "no_buffer_run*.melt.cfg"; auto text_files = text_dump_filename(base_name); @@ -101,7 +101,7 @@ TEST_F(DumpCfgCompressTest, compressed_no_buffer_run0) TEST_F(DumpCfgCompressTest, compressed_unwrap_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "unwrap_run*.melt.cfg"; auto text_files = text_dump_filename(base_name); @@ -130,7 +130,7 @@ TEST_F(DumpCfgCompressTest, compressed_unwrap_run0) TEST_F(DumpCfgCompressTest, compressed_multi_file_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_run1_*.melt.cfg"; auto base_name_0 = "multi_file_run1_0.melt.cfg"; @@ -172,7 +172,7 @@ TEST_F(DumpCfgCompressTest, compressed_multi_file_run1) TEST_F(DumpCfgCompressTest, compressed_multi_file_with_pad_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_pad_run1_*.melt.cfg"; auto base_name_0 = "multi_file_pad_run1_000.melt.cfg"; @@ -214,7 +214,7 @@ TEST_F(DumpCfgCompressTest, compressed_multi_file_with_pad_run1) TEST_F(DumpCfgCompressTest, compressed_multi_file_with_maxfiles_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_maxfiles_run1_*.melt.cfg"; auto base_name_0 = "multi_file_maxfiles_run1_0.melt.cfg"; @@ -292,7 +292,7 @@ TEST_F(DumpCfgCompressTest, compressed_modify_multi_bad_param) TEST_F(DumpCfgCompressTest, compressed_modify_clevel_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "modify_clevel_run*.melt.cfg"; auto base_name_0 = "modify_clevel_run0.melt.cfg"; diff --git a/unittest/formats/test_dump_custom.cpp b/unittest/formats/test_dump_custom.cpp index 40e22f5a11..72b4adcc87 100644 --- a/unittest/formats/test_dump_custom.cpp +++ b/unittest/formats/test_dump_custom.cpp @@ -23,8 +23,8 @@ using ::testing::Eq; -char *BINARY2TXT_BINARY = nullptr; -bool verbose = false; +char *BINARY2TXT_EXECUTABLE = nullptr; +bool verbose = false; class DumpCustomTest : public MeltTest { std::string dump_style = "custom"; @@ -37,23 +37,23 @@ public: END_HIDE_OUTPUT(); } - std::string dump_filename(std::string ident) + std::string dump_filename(const std::string &ident) { return fmt::format("dump_{}_{}.melt", dump_style, ident); } - std::string text_dump_filename(std::string ident) + std::string text_dump_filename(const std::string &ident) { return fmt::format("dump_{}_text_{}.melt", dump_style, ident); } - std::string binary_dump_filename(std::string ident) + std::string binary_dump_filename(const std::string &ident) { return fmt::format("dump_{}_binary_{}.melt.bin", dump_style, ident); } - void generate_dump(std::string dump_file, std::string fields, std::string dump_modify_options, - int ntimesteps) + void generate_dump(const std::string &dump_file, const std::string &fields, + const std::string &dump_modify_options, int ntimesteps) { BEGIN_HIDE_OUTPUT(); command(fmt::format("dump id all {} 1 {} {}", dump_style, dump_file, fields)); @@ -80,9 +80,9 @@ public: END_HIDE_OUTPUT(); } - void generate_text_and_binary_dump(std::string text_file, std::string binary_file, - std::string fields, std::string dump_modify_options, - int ntimesteps) + void generate_text_and_binary_dump(const std::string &text_file, const std::string &binary_file, + const std::string &fields, + const std::string &dump_modify_options, int ntimesteps) { BEGIN_HIDE_OUTPUT(); command(fmt::format("dump id0 all {} 1 {} {}", dump_style, text_file, fields)); @@ -97,10 +97,10 @@ public: END_HIDE_OUTPUT(); } - std::string convert_binary_to_text(std::string binary_file) + std::string convert_binary_to_text(const std::string &binary_file) { BEGIN_HIDE_OUTPUT(); - std::string cmdline = fmt::format("{} {}", BINARY2TXT_BINARY, binary_file); + std::string cmdline = fmt::format("\"{}\" {}", BINARY2TXT_EXECUTABLE, binary_file); system(cmdline.c_str()); END_HIDE_OUTPUT(); return fmt::format("{}.txt", binary_file); @@ -210,7 +210,7 @@ TEST_F(DumpCustomTest, custom_run0) TEST_F(DumpCustomTest, binary_run1) { - if (!BINARY2TXT_BINARY) GTEST_SKIP(); + if (!BINARY2TXT_EXECUTABLE) GTEST_SKIP(); auto text_file = text_dump_filename("run1"); auto binary_file = binary_dump_filename("run1"); @@ -251,7 +251,7 @@ TEST_F(DumpCustomTest, triclinic_run1) TEST_F(DumpCustomTest, binary_triclinic_run1) { - if (!BINARY2TXT_BINARY) GTEST_SKIP(); + if (!BINARY2TXT_EXECUTABLE) GTEST_SKIP(); auto text_file = text_dump_filename("tri_run1"); auto binary_file = binary_dump_filename("tri_run1"); @@ -399,7 +399,7 @@ int main(int argc, char **argv) } } - BINARY2TXT_BINARY = getenv("BINARY2TXT_BINARY"); + BINARY2TXT_EXECUTABLE = getenv("BINARY2TXT_EXECUTABLE"); if ((argc > 1) && (strcmp(argv[1], "-v") == 0)) verbose = true; diff --git a/unittest/formats/test_dump_custom_compressed.cpp b/unittest/formats/test_dump_custom_compressed.cpp index a69fd98c41..fec751b358 100644 --- a/unittest/formats/test_dump_custom_compressed.cpp +++ b/unittest/formats/test_dump_custom_compressed.cpp @@ -29,7 +29,7 @@ public: TEST_F(DumpCustomCompressTest, compressed_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "custom_run1.melt"; auto text_file = text_dump_filename(base_name); @@ -59,7 +59,7 @@ TEST_F(DumpCustomCompressTest, compressed_run1) TEST_F(DumpCustomCompressTest, compressed_with_time_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "with_time_custom_run1.melt"; auto text_file = text_dump_filename(base_name); @@ -89,7 +89,7 @@ TEST_F(DumpCustomCompressTest, compressed_with_time_run1) TEST_F(DumpCustomCompressTest, compressed_no_buffer_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "no_buffer_custom_run1.melt"; auto text_file = text_dump_filename(base_name); @@ -119,7 +119,7 @@ TEST_F(DumpCustomCompressTest, compressed_no_buffer_run1) TEST_F(DumpCustomCompressTest, compressed_triclinic_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "custom_tri_run1.melt"; auto text_file = text_dump_filename(base_name); @@ -146,7 +146,7 @@ TEST_F(DumpCustomCompressTest, compressed_triclinic_run1) TEST_F(DumpCustomCompressTest, compressed_multi_file_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_run1_*.melt.custom"; auto base_name_0 = "multi_file_run1_0.melt.custom"; @@ -188,7 +188,7 @@ TEST_F(DumpCustomCompressTest, compressed_multi_file_run1) TEST_F(DumpCustomCompressTest, compressed_multi_file_with_pad_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_pad_run1_*.melt.custom"; auto base_name_0 = "multi_file_pad_run1_000.melt.custom"; @@ -230,7 +230,7 @@ TEST_F(DumpCustomCompressTest, compressed_multi_file_with_pad_run1) TEST_F(DumpCustomCompressTest, compressed_multi_file_with_maxfiles_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_maxfiles_run1_*.melt.custom"; auto base_name_0 = "multi_file_maxfiles_run1_0.melt.custom"; @@ -304,7 +304,7 @@ TEST_F(DumpCustomCompressTest, compressed_modify_multi_bad_param) TEST_F(DumpCustomCompressTest, compressed_modify_clevel_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "modify_clevel_run0.melt.custom"; auto text_file = text_dump_filename(base_name); diff --git a/unittest/formats/test_dump_local.cpp b/unittest/formats/test_dump_local.cpp index 3b8b36f06f..c548427201 100644 --- a/unittest/formats/test_dump_local.cpp +++ b/unittest/formats/test_dump_local.cpp @@ -25,8 +25,8 @@ using ::testing::Eq; -char *BINARY2TXT_BINARY = nullptr; -bool verbose = false; +char *BINARY2TXT_EXECUTABLE = nullptr; +bool verbose = false; class DumpLocalTest : public MeltTest { std::string dump_style = "local"; @@ -39,8 +39,8 @@ public: END_HIDE_OUTPUT(); } - void generate_dump(std::string dump_file, std::string dump_options, - std::string dump_modify_options, int ntimesteps) + void generate_dump(const std::string &dump_file, const std::string &dump_options, + const std::string &dump_modify_options, int ntimesteps) { BEGIN_HIDE_OUTPUT(); command(fmt::format("dump id all {} 1 {} {}", dump_style, dump_file, dump_options)); @@ -253,7 +253,7 @@ int main(int argc, char **argv) } } - BINARY2TXT_BINARY = getenv("BINARY2TXT_BINARY"); + BINARY2TXT_EXECUTABLE = getenv("BINARY2TXT_EXECUTABLE"); if ((argc > 1) && (strcmp(argv[1], "-v") == 0)) verbose = true; diff --git a/unittest/formats/test_dump_local_compressed.cpp b/unittest/formats/test_dump_local_compressed.cpp index 2f4c6086c2..b1161927c6 100644 --- a/unittest/formats/test_dump_local_compressed.cpp +++ b/unittest/formats/test_dump_local_compressed.cpp @@ -38,7 +38,7 @@ public: TEST_F(DumpLocalCompressTest, compressed_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "run*.melt.local"; auto base_name_0 = "run0.melt.local"; @@ -71,7 +71,7 @@ TEST_F(DumpLocalCompressTest, compressed_run0) TEST_F(DumpLocalCompressTest, compressed_no_buffer_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "no_buffer_run*.melt.local"; auto base_name_0 = "no_buffer_run0.melt.local"; @@ -104,7 +104,7 @@ TEST_F(DumpLocalCompressTest, compressed_no_buffer_run0) TEST_F(DumpLocalCompressTest, compressed_with_time_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "with_time_run*.melt.local"; auto base_name_0 = "with_time_run0.melt.local"; @@ -137,7 +137,7 @@ TEST_F(DumpLocalCompressTest, compressed_with_time_run0) TEST_F(DumpLocalCompressTest, compressed_with_units_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "with_units_run*.melt.local"; auto base_name_0 = "with_units_run0.melt.local"; @@ -170,7 +170,7 @@ TEST_F(DumpLocalCompressTest, compressed_with_units_run0) TEST_F(DumpLocalCompressTest, compressed_triclinic_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); enable_triclinic(); auto base_name = "triclinic_run*.melt.local"; @@ -204,7 +204,7 @@ TEST_F(DumpLocalCompressTest, compressed_triclinic_run0) TEST_F(DumpLocalCompressTest, compressed_multi_file_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_run1_*.melt.local"; auto base_name_0 = "multi_file_run1_0.melt.local"; @@ -246,7 +246,7 @@ TEST_F(DumpLocalCompressTest, compressed_multi_file_run1) TEST_F(DumpLocalCompressTest, compressed_multi_file_with_pad_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_pad_run1_*.melt.local"; auto base_name_0 = "multi_file_pad_run1_000.melt.local"; @@ -288,7 +288,7 @@ TEST_F(DumpLocalCompressTest, compressed_multi_file_with_pad_run1) TEST_F(DumpLocalCompressTest, compressed_multi_file_with_maxfiles_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_maxfiles_run1_*.melt.local"; auto base_name_0 = "multi_file_maxfiles_run1_0.melt.local"; @@ -368,7 +368,7 @@ TEST_F(DumpLocalCompressTest, compressed_modify_multi_bad_param) TEST_F(DumpLocalCompressTest, compressed_modify_clevel_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "modify_clevel_run0.melt.local"; auto text_file = text_dump_filename(base_name); diff --git a/unittest/formats/test_dump_netcdf.cpp b/unittest/formats/test_dump_netcdf.cpp index 8b4110b352..6d377369ee 100644 --- a/unittest/formats/test_dump_netcdf.cpp +++ b/unittest/formats/test_dump_netcdf.cpp @@ -28,8 +28,8 @@ using ::testing::Eq; -char *NCDUMP_BINARY = nullptr; -bool verbose = false; +char *NCDUMP_EXECUTABLE = nullptr; +bool verbose = false; class DumpNetCDFTest : public MeltTest { std::string dump_style = "netcdf"; @@ -80,7 +80,7 @@ public: std::string convert_binary_to_text(std::string binary_file) { BEGIN_HIDE_OUTPUT(); - std::string cmdline = fmt::format("{0} {1} > {1}.txt", NCDUMP_BINARY, binary_file); + std::string cmdline = fmt::format("{0} {1} > {1}.txt", NCDUMP_EXECUTABLE, binary_file); system(cmdline.c_str()); END_HIDE_OUTPUT(); return fmt::format("{}.txt", binary_file); @@ -96,7 +96,7 @@ TEST_F(DumpNetCDFTest, run0_plain) generate_dump(dump_file, fields, "", 0); ASSERT_FILE_EXISTS(dump_file); - if (NCDUMP_BINARY) { + if (NCDUMP_EXECUTABLE) { auto converted_file = convert_binary_to_text(dump_file); auto lines = read_lines(converted_file); auto header = utils::split_words(lines[0]); @@ -246,7 +246,7 @@ TEST_F(DumpNetCDFTest, run0_mpi) generate_dump(dump_file, fields, "", 0); ASSERT_FILE_EXISTS(dump_file); - if (NCDUMP_BINARY) { + if (NCDUMP_EXECUTABLE) { auto converted_file = convert_binary_to_text(dump_file); auto lines = read_lines(converted_file); auto header = utils::split_words(lines[0]); @@ -402,7 +402,7 @@ int main(int argc, char **argv) } } - NCDUMP_BINARY = getenv("NCDUMP_BINARY"); + NCDUMP_EXECUTABLE = getenv("NCDUMP_EXECUTABLE"); if ((argc > 1) && (strcmp(argv[1], "-v") == 0)) verbose = true; diff --git a/unittest/formats/test_dump_xyz_compressed.cpp b/unittest/formats/test_dump_xyz_compressed.cpp index a851129c6c..7c5b816639 100644 --- a/unittest/formats/test_dump_xyz_compressed.cpp +++ b/unittest/formats/test_dump_xyz_compressed.cpp @@ -29,7 +29,7 @@ public: TEST_F(DumpXYZCompressTest, compressed_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "run*.melt.xyz"; auto base_name_0 = "run0.melt.xyz"; @@ -61,7 +61,7 @@ TEST_F(DumpXYZCompressTest, compressed_run0) TEST_F(DumpXYZCompressTest, compressed_no_buffer_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "no_buffer_run*.melt.xyz"; auto base_name_0 = "no_buffer_run0.melt.xyz"; @@ -93,7 +93,7 @@ TEST_F(DumpXYZCompressTest, compressed_no_buffer_run0) TEST_F(DumpXYZCompressTest, compressed_multi_file_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_run1_*.melt.xyz"; auto base_name_0 = "multi_file_run1_0.melt.xyz"; @@ -133,7 +133,7 @@ TEST_F(DumpXYZCompressTest, compressed_multi_file_run1) TEST_F(DumpXYZCompressTest, compressed_multi_file_with_pad_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_pad_run1_*.melt.xyz"; auto base_name_0 = "multi_file_pad_run1_000.melt.xyz"; @@ -174,7 +174,7 @@ TEST_F(DumpXYZCompressTest, compressed_multi_file_with_pad_run1) TEST_F(DumpXYZCompressTest, compressed_multi_file_with_maxfiles_run1) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "multi_file_maxfiles_run1_*.melt.xyz"; auto base_name_0 = "multi_file_maxfiles_run1_0.melt.xyz"; @@ -248,7 +248,7 @@ TEST_F(DumpXYZCompressTest, compressed_modify_multi_bad_param) TEST_F(DumpXYZCompressTest, compressed_modify_clevel_run0) { - if (!COMPRESS_BINARY) GTEST_SKIP(); + if (!COMPRESS_EXECUTABLE) GTEST_SKIP(); auto base_name = "modify_clevel_run0.melt.xyz"; auto text_file = text_dump_filename(base_name); diff --git a/unittest/formats/test_file_operations.cpp b/unittest/formats/test_file_operations.cpp index fdb3e1a815..48d043b824 100644 --- a/unittest/formats/test_file_operations.cpp +++ b/unittest/formats/test_file_operations.cpp @@ -322,7 +322,7 @@ TEST_F(FileOperationsTest, write_restart) command("write_restart multi-%.restart"); command("write_restart multi2-%.restart fileper 2"); command("write_restart multi3-%.restart nfile 1"); - if (info->has_package("MPIIO")) command("write_restart test.restart.mpiio"); + if (Info::has_package("MPIIO")) command("write_restart test.restart.mpiio"); END_HIDE_OUTPUT(); ASSERT_FILE_EXISTS("noinit.restart"); @@ -334,11 +334,11 @@ TEST_F(FileOperationsTest, write_restart) ASSERT_FILE_EXISTS("multi2-0.restart"); ASSERT_FILE_EXISTS("multi3-base.restart"); ASSERT_FILE_EXISTS("multi3-0.restart"); - if (info->has_package("MPIIO")) { + if (Info::has_package("MPIIO")) { ASSERT_FILE_EXISTS("test.restart.mpiio"); } - if (!info->has_package("MPIIO")) { + if (!Info::has_package("MPIIO")) { TEST_FAILURE(".*ERROR: Writing to MPI-IO filename when MPIIO package is not inst.*", command("write_restart test.restart.mpiio");); } else { @@ -395,7 +395,7 @@ TEST_F(FileOperationsTest, write_restart) delete_file("multi3-base.restart"); delete_file("multi3-0.restart"); delete_file("triclinic.restart"); - if (info->has_package("MPIIO")) delete_file("test.restart.mpiio"); + if (Info::has_package("MPIIO")) delete_file("test.restart.mpiio"); } TEST_F(FileOperationsTest, write_data) @@ -492,7 +492,7 @@ int main(int argc, char **argv) MPI_Init(&argc, &argv); ::testing::InitGoogleMock(&argc, argv); - if (platform::mpi_vendor() == "Open MPI" && !LAMMPS_NS::Info::has_exceptions()) + if (platform::mpi_vendor() == "Open MPI" && !Info::has_exceptions()) std::cout << "Warning: using OpenMPI without exceptions. " "Death tests will be skipped\n"; diff --git a/unittest/formats/test_text_file_reader.cpp b/unittest/formats/test_text_file_reader.cpp index 4965daab5d..325166a2b4 100644 --- a/unittest/formats/test_text_file_reader.cpp +++ b/unittest/formats/test_text_file_reader.cpp @@ -111,7 +111,7 @@ TEST_F(TextFileReaderTest, usefp) delete reader; // check that we reached EOF and the destructor didn't close the file. - ASSERT_EQ(feof(fp), 1); + ASSERT_NE(feof(fp), 0); ASSERT_EQ(fclose(fp), 0); } diff --git a/unittest/fortran/CMakeLists.txt b/unittest/fortran/CMakeLists.txt index 94672a58d8..047dcf3207 100644 --- a/unittest/fortran/CMakeLists.txt +++ b/unittest/fortran/CMakeLists.txt @@ -10,11 +10,6 @@ if(NOT CMAKE_Fortran_COMPILER_ID) message(STATUS "Skipping Tests for the LAMMPS Fortran Module: cannot identify Fortran compiler") return() endif() -find_package(MPI QUIET) -if(BUILD_MPI AND NOT MPI_Fortran) - message(STATUS "Skipping Tests for the LAMMPS Fortran Module: no MPI support for Fortran") - return() -endif() if(CMAKE_Fortran_COMPILER) enable_language(C) @@ -22,6 +17,10 @@ if(CMAKE_Fortran_COMPILER) get_filename_component(LAMMPS_FORTRAN_MODULE ${LAMMPS_SOURCE_DIR}/../fortran/lammps.f90 ABSOLUTE) if(BUILD_MPI) find_package(MPI REQUIRED) + if((NOT MPI_Fortran) OR (NOT MPI_Fortran_HAVE_F77_HEADER) OR (NOT MPI_Fortran_HAVE_F90_MODULE)) + message(STATUS "Skipping Tests for the LAMMPS Fortran Module: no MPI support for Fortran") + return() + endif() else() add_library(fmpi_stubs STATIC mpi_stubs.f90) add_library(MPI::MPI_Fortran ALIAS fmpi_stubs) diff --git a/unittest/python/python-capabilities.py b/unittest/python/python-capabilities.py index 4c14cac37d..3ac66ebdc6 100644 --- a/unittest/python/python-capabilities.py +++ b/unittest/python/python-capabilities.py @@ -38,6 +38,7 @@ class PythonCapabilities(unittest.TestCase): system = platform.system() osinfo = self.lmp.get_os_info() + print("System: %s LAMMPS OS Info: %s" % (system, osinfo)) self.assertEqual(osinfo.find(system),0) def test_has_gzip_support(self): diff --git a/unittest/python/python-commands.py b/unittest/python/python-commands.py index 58a0772510..cd77fa21a1 100644 --- a/unittest/python/python-commands.py +++ b/unittest/python/python-commands.py @@ -1,6 +1,8 @@ import sys,os,unittest,ctypes -from lammps import lammps, LMP_VAR_ATOM, LMP_STYLE_GLOBAL, LMP_TYPE_VECTOR, LAMMPS_DOUBLE_2D, LAMMPS_AUTODETECT +from lammps import lammps, LMP_VAR_ATOM, LMP_STYLE_GLOBAL, LMP_STYLE_LOCAL +from lammps import LMP_TYPE_VECTOR, LMP_SIZE_VECTOR, LMP_SIZE_ROWS, LMP_SIZE_COLS +from lammps import LAMMPS_DOUBLE_2D, LAMMPS_AUTODETECT has_manybody=False try: @@ -311,6 +313,14 @@ create_atoms 1 single & self.assertEqual(minval,1.0) self.assertEqual(maxval,2.1) + ndist1 = self.lmp.extract_compute("dist",LMP_STYLE_LOCAL,LMP_SIZE_VECTOR) + ndist2 = self.lmp.extract_compute("dist",LMP_STYLE_LOCAL,LMP_SIZE_ROWS) + ndist3 = self.lmp.extract_compute("dist",LMP_STYLE_LOCAL,LMP_SIZE_COLS) + + self.assertEqual(ndist1,21) + self.assertEqual(ndist2,21) + self.assertEqual(ndist3,0) + self.assertNotEqual(self.lmp.find_pair_neighlist("lj/cut"),-1) self.assertNotEqual(self.lmp.find_compute_neighlist("dist"),-1) self.assertEqual(self.lmp.find_compute_neighlist("xxx"),-1) diff --git a/unittest/python/python-numpy.py b/unittest/python/python-numpy.py index 010255a81e..7cbae8e48d 100644 --- a/unittest/python/python-numpy.py +++ b/unittest/python/python-numpy.py @@ -93,17 +93,39 @@ class PythonNumpy(unittest.TestCase): # TODO pass - def testExtractComputeLocalScalar(self): - # TODO - pass - def testExtractComputeLocalVector(self): - # TODO - pass + self.lmp.command("region box block 0 2 0 2 0 2") + self.lmp.command("create_box 1 box") + self.lmp.command("create_atoms 1 single 1.0 1.0 1.0") + self.lmp.command("create_atoms 1 single 1.0 1.0 1.5") + self.lmp.command("mass 1 1.0") + self.lmp.command("pair_style lj/cut 1.9") + self.lmp.command("pair_coeff 1 1 1.0 1.0") + self.lmp.command("compute r0 all pair/local dist") + self.lmp.command("run 0 post no") + values = self.lmp.numpy.extract_compute("r0", LMP_STYLE_LOCAL, LMP_TYPE_VECTOR) + self.assertEqual(values.ndim, 1) + self.assertEqual(values.size, 2) + self.assertEqual(values[0], 0.5) + self.assertEqual(values[1], 1.5) def testExtractComputeLocalArray(self): - # TODO - pass + self.lmp.command("region box block 0 2 0 2 0 2") + self.lmp.command("create_box 1 box") + self.lmp.command("create_atoms 1 single 1.0 1.0 1.0") + self.lmp.command("create_atoms 1 single 1.0 1.0 1.5") + self.lmp.command("mass 1 1.0") + self.lmp.command("pair_style lj/cut 1.9") + self.lmp.command("pair_coeff 1 1 1.0 1.0") + self.lmp.command("compute r0 all pair/local dist dx dy dz") + self.lmp.command("run 0 post no") + values = self.lmp.numpy.extract_compute("r0", LMP_STYLE_LOCAL, LMP_TYPE_ARRAY) + self.assertEqual(values.ndim, 2) + self.assertEqual(values.size, 8) + self.assertEqual(values[0,0], 0.5) + self.assertEqual(values[0,3], -0.5) + self.assertEqual(values[1,0], 1.5) + self.assertEqual(values[1,3], 1.5) def testExtractAtomDeprecated(self): self.lmp.command("units lj") diff --git a/unittest/python/test_python_package.cpp b/unittest/python/test_python_package.cpp index db7a7a41b6..377c3a7549 100644 --- a/unittest/python/test_python_package.cpp +++ b/unittest/python/test_python_package.cpp @@ -52,7 +52,7 @@ class PythonPackageTest : public LAMMPSTest { protected: void InitSystem() override { - if (!info->has_package("PYTHON")) GTEST_SKIP(); + if (!Info::has_package("PYTHON")) GTEST_SKIP(); HIDE_OUTPUT([&] { command("units real"); @@ -73,7 +73,7 @@ class FixPythonInvokeTest : public MeltTest { protected: void InitSystem() override { - if (!info->has_package("PYTHON")) GTEST_SKIP(); + if (!Info::has_package("PYTHON")) GTEST_SKIP(); MeltTest::InitSystem(); } @@ -309,7 +309,7 @@ TEST_F(FixPythonInvokeTest, end_of_step) auto output = CAPTURE_OUTPUT([&] { command("run 50"); }); - fprintf(stderr,"lines: %s\n",output.c_str()); + fprintf(stderr, "lines: %s\n", output.c_str()); auto lines = utils::split_lines(output); int count = 0; diff --git a/unittest/utils/test_utils.cpp b/unittest/utils/test_utils.cpp index fac9767f62..decd7d6379 100644 --- a/unittest/utils/test_utils.cpp +++ b/unittest/utils/test_utils.cpp @@ -139,6 +139,24 @@ TEST(Utils, count_words_with_extra_spaces) ASSERT_EQ(utils::count_words(" some text # comment "), 4); } +TEST(Utils, join_words) +{ + std::vector words = {"one", "two", "three" }; + auto combined = utils::join_words(words, " "); + ASSERT_THAT(combined, StrEq("one two three")); + combined = utils::join_words(words, ""); + ASSERT_THAT(combined, StrEq("onetwothree")); + words[1] = "two "; + combined = utils::join_words(words, "__"); + ASSERT_THAT(combined, StrEq("one__two __three")); + words.resize(1); + combined = utils::join_words(words, "/"); + ASSERT_THAT(combined, StrEq("one")); + words.push_back(""); + combined = utils::join_words(words, "1"); + ASSERT_THAT(combined, StrEq("one1")); +} + TEST(Utils, split_words_simple) { auto list = utils::split_words("one two three");