diff --git a/.github/workflows/api_tests.yml b/.github/workflows/api_tests.yml new file mode 100644 index 00000000..8cefb008 --- /dev/null +++ b/.github/workflows/api_tests.yml @@ -0,0 +1,38 @@ +name: api_tests + +on: + push: + pull_request: + schedule: + - cron: '59 23 * * *' + +env: + REPO_NAME: 'tutorials' + DOCKER_WORKING_DIR: '/home/dafoamuser/dafoam/$REPO_NAME' + DOCKER_MOUNT_DIR: '/home/dafoamuser/mount/$REPO_NAME' + DOCKER_TAG: 'latest' + DOCKER_ENV_FILE: '/home/dafoamuser/dafoam/loadDAFoam.sh' + +jobs: + + reg_tests: + runs-on: ubuntu-20.04 + name: Tests + strategy: + fail-fast: false + matrix: + testConfig: [v2, v3] + include: + - testConfig: v2 + args: 'v2' + - testConfig: v3 + args: 'v3' + steps: + - uses: actions/checkout@v3 + - name: Create the docker container and run the tests + run: | + docker pull dafoam/opt-packages:${{env.DOCKER_TAG}} + docker run -i -d -u dafoamuser --name apitest -v $GITHUB_WORKSPACE:${{env.DOCKER_MOUNT_DIR}} dafoam/opt-packages:${{env.DOCKER_TAG}} /bin/bash + docker exec -i apitest /bin/bash -c "rm -rf ${{env.DOCKER_WORKING_DIR}} && cp -r ${{env.DOCKER_MOUNT_DIR}} ${{env.DOCKER_WORKING_DIR}}" + docker exec -i apitest /bin/bash -c ". ${{env.DOCKER_ENV_FILE}} && cd ${{env.DOCKER_WORKING_DIR}} && . .testAPI.sh ${{matrix.args}}" + diff --git a/.github/workflows/reg_tests.yml b/.github/workflows/reg_tests.yml deleted file mode 100644 index 1e52d3fc..00000000 --- a/.github/workflows/reg_tests.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: API Test - -on: - push: - pull_request: - schedule: - - cron: '0 0 * * *' - -env: - REPO_NAME: 'tutorials' - DOCKER_WORKING_DIR: '/home/dafoamuser/dafoam/$REPO_NAME' - DOCKER_MOUNT_DIR: '/home/dafoamuser/mount/$REPO_NAME' - DOCKER_TAG: 'latest' - -jobs: - - regresstion_tests: - runs-on: ubuntu-18.04 - name: API tests - strategy: - fail-fast: false - matrix: - testConfig: [incompressible, compressible, solid] - include: - - testConfig: incompressible - args: 'incompressible' - - testConfig: compressible - args: 'compressible' - - testConfig: solid - args: 'solid' - steps: - - uses: actions/checkout@v2 - - name: Create the docker container and run the tests - run: | - docker pull dafoam/opt-packages:${{env.DOCKER_TAG}} - docker run -i -d -u dafoamuser --name regtest -v $GITHUB_WORKSPACE:${{env.DOCKER_MOUNT_DIR}} dafoam/opt-packages:${{env.DOCKER_TAG}} /bin/bash - docker exec -i regtest /bin/bash -c "rm -rf ${{ env.DOCKER_WORKING_DIR}} && cp -r ${{env.DOCKER_MOUNT_DIR}} ${{env.DOCKER_WORKING_DIR}}" - docker exec -i regtest /bin/bash -c ". /home/dafoamuser/dafoam/loadDAFoam.sh && cd ${{env.DOCKER_WORKING_DIR}} && wget https://github.com/mdolab/dafoam/archive/master.tar.gz && tar -xvf master.tar.gz" - docker exec -i regtest /bin/bash -c ". /home/dafoamuser/dafoam/loadDAFoam.sh && cd ${{env.DOCKER_WORKING_DIR}}/dafoam-master && ./Allmake ${{matrix.args}}" - docker exec -i regtest /bin/bash -c ". /home/dafoamuser/dafoam/loadDAFoam.sh && . /home/dafoamuser/dafoam/OpenFOAM/OpenFOAM-v1812-ADR/etc/bashrc && cd ${{env.DOCKER_WORKING_DIR}}/dafoam-master && ./Allclean && ./Allmake ${{matrix.args}} 2> makeWarnings.txt" - docker exec -i regtest /bin/bash -c ". /home/dafoamuser/dafoam/loadDAFoam.sh && cd ${{env.DOCKER_WORKING_DIR}}/dafoam-master && pip install ." - docker exec -i regtest /bin/bash -c ". /home/dafoamuser/dafoam/loadDAFoam.sh && cd ${{env.DOCKER_WORKING_DIR}} && ./.runTests.sh ${{matrix.args}}" diff --git a/.runTests.sh b/.runTests.sh deleted file mode 100755 index 8ce36f46..00000000 --- a/.runTests.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env bash - -if [ -z "$WM_PROJECT" ]; then - echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" - exit 1 -fi - -if [ -z "$1" ]; then - echo "Argument not found. Options: incompressible, compressible, and solid" - exit 1 -else - argm="$1" -fi - -case $argm in - "incompressible") - echo "Running incompressible tests" - cd NACA0012_Airfoil/incompressible && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd NACA0012_Airfoil/incompressible && echo y | ./Allclean.sh && sed -i 's/SpalartAllmaras/kOmegaSST/g' constant/turbulenceProperties && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd NACA0012_Airfoil/incompressible && echo y | ./Allclean.sh && sed -i 's/kOmegaSST/kEpsilon/g' constant/turbulenceProperties && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd NACA0012_Airfoil/multipoint && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd JBC_Hull && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd UBend_Channel && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd pitzDaily && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI --opt=ipopt && cd - || exit 1 - ;; - "compressible") - echo "Running compressible tests" - cd NACA0012_Airfoil/subsonic && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd NACA0012_Airfoil/subsonic && echo y | ./Allclean.sh && sed -i 's/SpalartAllmaras/kOmegaSST/g' constant/turbulenceProperties && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd NACA0012_Airfoil/subsonic && echo y | ./Allclean.sh && sed -i 's/kOmegaSST/kEpsilon/g' constant/turbulenceProperties && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd 30N30P_MultiElement_Airfoil && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd Onera_M6_Wing && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd Onera_M6_Wing && echo y | ./Allclean.sh && ./preProcessing_snappyHexMesh.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd CRM_Wing && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd Rotor37_Compressor && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd NREL6_Wind_Turbine && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd Prowim_Wing_Propeller && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd DPW4_Aircraft && sed -i 's/snappyHexMesh -overwrite >> log.meshGeneration/snappyHexMesh -overwrite/g' preProcessing.sh && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - cd DPW4_Aircraft && echo y | ./Allclean.sh && ./preProcessing.sh && mpirun -np 2 python runScript2FFDs.py --task=testAPI && cd - || exit 1 - ;; - "solid") - echo "Running solid tests" - cd PlateHole_Structure && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI && cd - || exit 1 - ;; - *) - echo "Argument not valid! Options are: incompressible, compressible, or solid" - echo "Example: ./Allrun incompressible" - exit 1 - ;; -esac diff --git a/.testAPI.sh b/.testAPI.sh new file mode 100755 index 00000000..fe2f12c9 --- /dev/null +++ b/.testAPI.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit 1 +fi + +if [ -z "$1" ]; then + echo "Argument not found. Options: incompressible, compressible, and solid" + exit 1 +else + argm="$1" +fi + +case $argm in + "v2") + echo "Running incompressible tests" + find */runScript* -type f -exec sed -i '/"primalMinResTol":/c\ "primalMinResTol": 0.9,' {} \; + find */*/runScript* -type f -exec sed -i '/"primalMinResTol":/c\ "primalMinResTol": 0.9,' {} \; + find */*/*/runScript* -type f -exec sed -i '/"primalMinResTol":/c\ "primalMinResTol": 0.9,' {} \; + cd 30N30P_MultiElement_Airfoil && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd CRM_Wing && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd DPW4_Aircraft && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd JBC_Hull && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/incompressible && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/incompressible && echo y | ./Allclean.sh && sed -i 's/SpalartAllmaras/kOmegaSST/g' constant/turbulenceProperties && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/incompressible && echo y | ./Allclean.sh && sed -i 's/kOmegaSST/kEpsilon/g' constant/turbulenceProperties && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/incompressible && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/subsonic && echo y | ./Allclean.sh && sed -i 's/SpalartAllmaras/kOmegaSST/g' constant/turbulenceProperties && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/subsonic && echo y | ./Allclean.sh && sed -i 's/kOmegaSST/kEpsilon/g' constant/turbulenceProperties && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/multipoint && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd NREL6_Wind_Turbine && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd Onera_M6_Wing && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd PeriodicHill_FieldInversion && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd pitzDaily && ./preProcessing.sh && python runScript_v2.py --task=runPrimal --opt=ipopt && cd - || exit 1 + cd PlateHole_Structure && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd Prowim_Wing_Propeller && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd Rotor37_Compressor && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd UBend_Channel && ./preProcessing.sh && python runScript_v2.py --task=runPrimal && cd - || exit 1 + cd Ramp/unsteady/train && ./preProcessing.sh && python runScript.py --task=runPrimal && cd - || exit 1 + ;; + "v3") + echo "Running compressible tests" + find */runScript* -type f -exec sed -i '/"primalMinResTol":/c\ "primalMinResTol": 0.9,' {} \; + find */*/runScript* -type f -exec sed -i '/"primalMinResTol":/c\ "primalMinResTol": 0.9,' {} \; + find */*/*/runScript* -type f -exec sed -i '/"primalMinResTol":/c\ "primalMinResTol": 0.9,' {} \; + cd 30N30P_MultiElement_Airfoil && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd ADODG3_Wing && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd CRM_Wing && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd MACH_Tutorial_Wing && ./preProcessing.sh && python runScript_Aero.py -task=runPrimal && cd - || exit 1 + cd MACH_Tutorial_Wing && python runScript_AeroStruct.py -task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/incompressible && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/incompressible && echo y | ./Allclean.sh && sed -i 's/SpalartAllmaras/kOmegaSST/g' constant/turbulenceProperties && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/incompressible && echo y | ./Allclean.sh && sed -i 's/kOmegaSST/kEpsilon/g' constant/turbulenceProperties && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/incompressible && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/subsonic && echo y | ./Allclean.sh && sed -i 's/SpalartAllmaras/kOmegaSST/g' constant/turbulenceProperties && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/subsonic && echo y | ./Allclean.sh && sed -i 's/kOmegaSST/kEpsilon/g' constant/turbulenceProperties && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/multipoint && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd NACA0012_Airfoil/multicase && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd PeriodicHill_FieldInversion && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd Rotor37_Compressor && ./preProcessing.sh && python runScript.py -task=runPrimal && cd - || exit 1 + cd Ramp/steady/train && ./preProcessing.sh && python runScript_FIML.py -task=runPrimal && cd - || exit 1 + ;; + *) + echo "Argument not valid! Options are: v2, v3" + echo "Example: . .testAPI.sh v2" + exit 1 + ;; +esac diff --git a/.travis_backup.yml b/.travis_backup.yml deleted file mode 100755 index eff2f6b8..00000000 --- a/.travis_backup.yml +++ /dev/null @@ -1,64 +0,0 @@ -os: linux -dist: bionic -language: generic - -services: - - docker - -env: - global: - - REPO_NAME=tutorials - - DOCKER_WORKING_DIR=/home/dafoamuser/$REPO_NAME - - DOCKER_MOUNT_DIR=/home/dafoamuser/mount/$REPO_NAME - - DOCKER_TAG=latest - -before_install: - - docker pull dafoam/opt-packages:$DOCKER_TAG - # run Docker, key is we mount the current Travis directory into Docker to access content of repo - - docker run -it -d -u dafoamuser --name regtest - --mount "type=bind,src=$(pwd),target=$DOCKER_MOUNT_DIR" - dafoam/opt-packages:$DOCKER_TAG - /bin/bash - -install: - # We thrown away the existing repo in Docker, and copy the new one in-place - - docker exec -it regtest /bin/bash -c "cp -r $DOCKER_MOUNT_DIR $DOCKER_WORKING_DIR" - # Download the latest version of DAFoam - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR && wget https://github.com/mdolab/dafoam/archive/master.tar.gz && tar -xvf master.tar.gz" - -jobs: - include: - - stage: runTests # test incompressible tutorials - script: - # first compile DAFoam - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/dafoam-master && ./Allmake incompressible && pip install ." - # run the tutorials - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/NACA0012_Airfoil/incompressible && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/NACA0012_Airfoil/incompressible && echo y | ./Allclean.sh && sed -i 's/SpalartAllmaras/kOmegaSST/g' constant/turbulenceProperties && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/NACA0012_Airfoil/incompressible && echo y | ./Allclean.sh && sed -i 's/kOmegaSST/kEpsilon/g' constant/turbulenceProperties && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/NACA0012_Airfoil/multipoint && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/UBend_Channel && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/JBC_Hull && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - - stage: runTests # test compressible tutorials - script: - # first compile DAFoam - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/dafoam-master && ./Allmake compressible && pip install ." - # run the tutorials - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/NACA0012_Airfoil/subsonic && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/NACA0012_Airfoil/subsonic && echo y | ./Allclean.sh && sed -i 's/SpalartAllmaras/kOmegaSST/g' constant/turbulenceProperties && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/NACA0012_Airfoil/subsonic && echo y | ./Allclean.sh && sed -i 's/kOmegaSST/kEpsilon/g' constant/turbulenceProperties && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/NACA0012_Airfoil/transonic && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/Onera_M6_Wing && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/Onera_M6_Wing && echo y | ./Allclean.sh && ./preProcessing_snappyHexMesh.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/Rotor37_Compressor && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/NREL6_Wind_Turbine && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/Prowim_Wing_Propeller && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/DPW4_Aircraft && sed -i 's/snappyHexMesh -overwrite >> log.meshGeneration/snappyHexMesh -overwrite/g' preProcessing.sh && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" - - - stage: runTests # test solid tutorials - script: - # first compile DAFoam - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/dafoam-master && ./Allmake solid && pip install ." - # run the tutorials - - docker exec -it regtest /bin/bash -c ". /home/dafoamuser/setupDAFoam.sh && cd $DOCKER_WORKING_DIR/PlateHole_Structure && ./preProcessing.sh && mpirun -np 2 python runScript.py --task=testAPI || exit 1" diff --git a/30N30P_MultiElement_Airfoil/runScript.py b/30N30P_MultiElement_Airfoil/runScript.py index 3ce1da75..3b7e9efa 100755 --- a/30N30P_MultiElement_Airfoil/runScript.py +++ b/30N30P_MultiElement_Airfoil/runScript.py @@ -1,6 +1,6 @@ #!/usr/bin/env python """ -DAFoam run script for the 30P30N multi-element high-lift airfoil. +DAFoam run script for the multi-element airfoil at subsonic conditions """ # ============================================================================= @@ -8,41 +8,43 @@ # ============================================================================= import os import argparse -from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import USMesh -from pyoptsparse import Optimization, OPT import numpy as np +from mpi4py import MPI +import openmdao.api as om +from pyspline import Curve +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils -# ============================================================================= -# Input Parameters -# ============================================================================= parser = argparse.ArgumentParser() -parser.add_argument("--opt", help="optimizer to use", type=str, default="ipopt") -parser.add_argument("--task", help="type of run to do", type=str, default="opt") +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SLSQP") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") args = parser.parse_args() -gcomm = MPI.COMM_WORLD -# Define the global parameters here +# ============================================================================= +# Input Parameters +# ============================================================================= U0 = 68.0 p0 = 101325.0 -nuTilda0 = 4.5e-5 T0 = 300.0 -A0 = 0.1 -rho0 = 1.0 # density for normalizing CD and CL -CD_target = 0.1887 +nuTilda0 = 4.5e-5 CL_target = 3.416 -alpha0 = 8.0 +aoa0 = 12.92958 +A0 = 0.1 +# rho is used for normalizing CD and CL +rho0 = p0 / T0 / 287 -# Set the parameters for optimization +# Input parameters for DAFoam daOptions = { "designSurfaces": ["main", "slat", "flap"], "solverName": "DARhoSimpleFoam", - "useAD": {"mode": "reverse"}, "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1.0e3, "primalBC": { "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, @@ -50,81 +52,251 @@ "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, "useWallFunction": True, }, - # variable bounds for compressible flow conditions - "primalVarBounds": { - "UMax": 1000.0, - "UMin": -1000.0, - "pMax": 500000.0, - "pMin": 20000.0, - "eMax": 500000.0, - "eMin": 100000.0, - "rhoMax": 5.0, - "rhoMin": 0.2, - }, - "objFunc": { + "function": { "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["main", "slat", "flap"], - "directionMode": "parallelToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["main", "slat", "flap"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), }, "CL": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["main", "slat", "flap"], - "directionMode": "normalToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["main", "slat", "flap"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "skewness": { + "type": "meshQualityKS", + "source": "allCells", + "coeffKS": 20.0, + "metric": "faceSkewness", + "scale": 1.0, + }, + "nonOrtho": { + "type": "meshQualityKS", + "source": "allCells", + "coeffKS": 1.0, + "metric": "nonOrthoAngle", + "scale": 1.0, }, }, - "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, + "adjStateOrdering": "cell", + "adjEqnOption": {"gmresMaxIters": 2000, "gmresRestart": 2000, "gmresTolDiff": 1e3, "gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "natural"}, "normalizeStates": { "U": U0, "p": p0, + "T": T0, "nuTilda": nuTilda0 * 10.0, "phi": 1.0, }, - "adjPartDerivFDStep": {"State": 1e-6, "FFD": 1e-3}, - "adjPCLag": 10, - "checkMeshThreshold": {"maxAspectRatio": 2000.0, "maxNonOrth": 75.0, "maxSkewness": 6.0}, - "designVar": {}, + "checkMeshThreshold": {"maxAspectRatio": 2000.0, "maxNonOrth": 75.0, "maxSkewness": 8.0}, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, } -# mesh warping parameters, users need to manually specify the symmetry plane and their normals +# Mesh deformation setup meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", - "useRotations": False, + "fileType": "OpenFOAM", # point and normal for the symmetry plane "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], } + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/airfoilFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # Create reference axis for the twist variables + xSlat = [0.0169, 0.0169] + ySlat = [0.0034, 0.0034] + zSlat = [0.0, 0.1] + cSlat = Curve(x=xSlat, y=ySlat, z=zSlat, k=2) + # Note here we set raySize=5 to avoid the warning when having highly skewed FFDs + # "ray might not have been longenough to intersect the nearest curve." + self.geometry.nom_addRefAxis(name="slatAxis", curve=cSlat, axis="z", volumes=[0], raySize=5) + + xFlap = [0.875, 0.875] + yFlap = [0.014, 0.014] + zFlap = [0.0, 0.1] + cFlap = Curve(x=xFlap, y=yFlap, z=zFlap, k=2) + self.geometry.nom_addRefAxis(name="flapAxis", curve=cFlap, axis="z", volumes=[2], raySize=5) + + def twistslat(val, geo): + for i in range(2): + geo.rot_z["slatAxis"].coef[i] = -val[0] + + def translateslat(val, geo): + C = geo.extractCoef("slatAxis") + dx = val[0] + dy = val[1] + for i in range(len(C)): + C[i, 0] = C[i, 0] + dx + for i in range(len(C)): + C[i, 1] = C[i, 1] + dy + geo.restoreCoef(C, "slatAxis") + + def twistflap(val, geo): + for i in range(2): + geo.rot_z["flapAxis"].coef[i] = -val[0] + + def translateflap(val, geo): + C = geo.extractCoef("flapAxis") + dx = val[0] + dy = val[1] + for i in range(len(C)): + C[i, 0] = C[i, 0] + dx + for i in range(len(C)): + C[i, 1] = C[i, 1] + dy + geo.restoreCoef(C, "flapAxis") + + # add the global shape variable + self.geometry.nom_addGlobalDV(dvName="twistslat", value=[0.0], func=twistslat) + self.geometry.nom_addGlobalDV(dvName="translateslat", value=np.zeros(2), func=translateslat) + self.geometry.nom_addGlobalDV(dvName="twistflap", value=[0.0], func=twistflap) + self.geometry.nom_addGlobalDV(dvName="translateflap", value=np.zeros(2), func=translateflap) + + # use the shape function to define shape variables for 2D airfoil + pts = self.geometry.DVGeo.getLocalIndex(1) + dir_y = np.array([0.0, 1.0, 0.0]) + shapes = [] + for i in range(1, pts.shape[0] - 1): + for j in range(pts.shape[1]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts[i, j, 0]: dir_y, pts[i, j, 1]: dir_y}) + # LE/TE shape, the j=0 and j=1 move in opposite directions so that + # the LE/TE are fixed + for i in [0, pts.shape[0] - 1]: + shapes.append({pts[i, 0, 0]: dir_y, pts[i, 0, 1]: dir_y, pts[i, 1, 0]: -dir_y, pts[i, 1, 1]: -dir_y}) + self.geometry.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + + # setup the volume and thickness constraints + leListMain = [[0.048, -0.014, 1e-6], [0.048, -0.014, 0.1 - 1e-6]] + teListMain = [[0.698, -0.014, 1e-6], [0.698, -0.014, 0.1 - 1e-6]] + self.geometry.nom_addThicknessConstraints2D("thickcon_main", leListMain, teListMain, nSpan=2, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon_main", leListMain, teListMain, nSpan=2, nChord=10) + # NOTE: we need to add thickness and vol constraints for the tailing of the main airfoil + leListMainTrailing = [[0.702, 0.0328, 1e-6], [0.702, 0.0328, 0.1 - 1e-6]] + teListMainTrailing = [[0.854, 0.0328, 1e-6], [0.854, 0.0328, 0.1 - 1e-6]] + self.geometry.nom_addThicknessConstraints2D( + "thickcon_main_te", leListMainTrailing, teListMainTrailing, nSpan=2, nChord=10 + ) + self.geometry.nom_addVolumeConstraint( + "volcon_main_te", leListMainTrailing, teListMainTrailing, nSpan=2, nChord=10 + ) + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * len(shapes))) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + self.dvs.add_output("twistslat", val=np.array([0.0])) + self.dvs.add_output("translateslat", val=np.zeros(2)) + self.dvs.add_output("twistflap", val=np.array([0.0])) + self.dvs.add_output("translateflap", val=np.zeros(2)) + # manually connect the dvs output to the geometry and scenario1 + self.connect("patchV", "scenario1.patchV") + self.connect("shape", "geometry.shape") + self.connect("twistslat", "geometry.twistslat") + self.connect("translateslat", "geometry.translateslat") + self.connect("twistflap", "geometry.twistflap") + self.connect("translateflap", "geometry.translateflap") + + # define the design variables to the top level + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 20.0], scaler=0.1) + self.add_design_var("twistslat", lower=-10.0, upper=10.0, scaler=1.0) + self.add_design_var("translateslat", lower=[-0.1, 0.0], upper=[0.0, 0.1], scaler=1.0) + self.add_design_var("twistflap", lower=-10.0, upper=10.0, scaler=1.0) + self.add_design_var("translateflap", lower=[0.0, -0.1], upper=[0.1, 0.0], scaler=1.0) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", lower=CL_target, scaler=1.0) + self.add_constraint("scenario1.aero_post.skewness", upper=6.0, scaler=1.0) + self.add_constraint("scenario1.aero_post.nonOrtho", upper=70.0, scaler=1.0) + self.add_constraint("geometry.thickcon_main", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon_main", lower=1.0, scaler=1.0) + self.add_constraint("geometry.thickcon_main_te", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon_main_te", lower=1.0, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer # options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, + "Function precision": 1.0e-5, "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", "Summary file": "opt_SNOPT_summary.txt", } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", "mu_strategy": "adaptive", @@ -133,213 +305,38 @@ "alpha_for_y": "full", "recalc_y": "yes", } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } else: - print("opt arg not valid!") - exit(0) - - -# ============================================================================= -# Design variable setup -# ============================================================================= - - -def alpha(val, geo): - aoa = val[0] * np.pi / 180.0 - inletU = [float(U0 * np.cos(aoa)), float(U0 * np.sin(aoa)), 0] - DASolver.setOption("primalBC", {"U0": {"variable": "U", "patches": ["inout"], "value": inletU}}) - DASolver.updateDAOption() - - -def twistslat(val, geo): - for i in range(2): - geo.rot_z["slatAxis"].coef[i] = -val[0] - - -def translateslat(val, geo): - C = geo.extractCoef("slatAxis") - dx = val[0] - dy = val[1] - for i in range(len(C)): - C[i, 0] = C[i, 0] + dx - for i in range(len(C)): - C[i, 1] = C[i, 1] + dy - geo.restoreCoef(C, "slatAxis") - - -def twistflap(val, geo): - for i in range(2): - geo.rot_z["flapAxis"].coef[i] = -val[0] - - -def translateflap(val, geo): - C = geo.extractCoef("flapAxis") - dx = val[0] - dy = val[1] - for i in range(len(C)): - C[i, 0] = C[i, 0] + dx - for i in range(len(C)): - C[i, 1] = C[i, 1] + dy - geo.restoreCoef(C, "flapAxis") - - -DVGeo = DVGeometry("./FFD/airfoilFFD.xyz") -# Add reference axis for twist -# Slat refAxis -xSlat = [0.0169, 0.0169] -ySlat = [0.0034, 0.0034] -zSlat = [0.0, 0.1] -cSlat = pySpline.Curve(x=xSlat, y=ySlat, z=zSlat, k=2) -DVGeo.addRefAxis("slatAxis", curve=cSlat, axis="z", volumes=[0]) -# Flap refAxis -xFlap = [0.875, 0.875] -yFlap = [0.014, 0.014] -zFlap = [0.0, 0.1] -cFlap = pySpline.Curve(x=xFlap, y=yFlap, z=zFlap, k=2) -DVGeo.addRefAxis("flapAxis", curve=cFlap, axis="z", volumes=[2]) - -# twist slat -twistslat0 = 0.0 -DVGeo.addGeoDVGlobal("twistslat", [twistslat0], twistslat, lower=-10.0, upper=10.0, scale=1.0) -daOptions["designVar"]["twistslat"] = {"designVarType": "FFD"} -# translate slat -translateslat0 = np.zeros(2) -DVGeo.addGeoDVGlobal("translateslat", translateslat0, translateslat, lower=[-0.1, 0.0], upper=[0.0, 0.1], scale=1.0) -daOptions["designVar"]["translateslat"] = {"designVarType": "FFD"} -# shape main -iVol = 1 -ptsMain = DVGeo.getLocalIndex(iVol) -indexListMain = ptsMain[:, :, :].flatten() -PSMain = geo_utils.PointSelect("list", indexListMain) -DVGeo.addGeoDVLocal("shapemain", lower=-1.0, upper=1.0, axis="y", scale=1.0, pointSelect=PSMain) -daOptions["designVar"]["shapemain"] = {"designVarType": "FFD"} -# twist flap -twistflap0 = 0.0 -DVGeo.addGeoDVGlobal("twistflap", [twistflap0], twistflap, lower=-10.0, upper=10.0, scale=1.0) -daOptions["designVar"]["twistflap"] = {"designVarType": "FFD"} -# translate flap -translateflap0 = np.zeros(2) -DVGeo.addGeoDVGlobal("translateflap", translateflap0, translateflap, lower=[0.0, -0.1], upper=[0.1, 0.0], scale=1.0) -daOptions["designVar"]["translateflap"] = {"designVarType": "FFD"} -# alpha -DVGeo.addGeoDVGlobal("alpha", [alpha0], alpha, lower=-10.0, upper=10.0, scale=1.0) -daOptions["designVar"]["alpha"] = {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "y"} - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -# ******* Main *********** -leListMain = [[0.048, -0.014, 1e-6], [0.048, -0.014, 0.1 - 1e-6]] -teListMain = [[0.698, -0.014, 1e-6], [0.698, -0.014, 0.1 - 1e-6]] -# volume constraint -DVCon.addVolumeConstraint(leListMain, teListMain, nSpan=2, nChord=10, lower=1.0, upper=1.0, scaled=True) -# thickness constraint -DVCon.addThicknessConstraints2D(leListMain, teListMain, nSpan=2, nChord=10, lower=0.8, upper=3.0, scaled=True) -# NOTE: we need to add thickness and vol constraints for the tailing of the main airfoil -leListMainTrailing = [[0.702, 0.0328, 1e-6], [0.702, 0.0328, 0.1 - 1e-6]] -teListMainTrailing = [[0.854, 0.0328, 1e-6], [0.854, 0.0328, 0.1 - 1e-6]] -# volume constraint -DVCon.addVolumeConstraint(leListMainTrailing, teListMainTrailing, nSpan=2, nChord=10, lower=1.0, upper=1.0, scaled=True) -# thickness constraint -DVCon.addThicknessConstraints2D( - leListMainTrailing, teListMainTrailing, nSpan=2, nChord=10, lower=0.8, upper=3.0, scaled=True -) -# symmetry constraint -nFFDs_x = ptsMain.shape[0] -indSetA = [] -indSetB = [] -for i in range(nFFDs_x): - for j in [0, 1]: - indSetA.append(ptsMain[i, j, 1]) - indSetB.append(ptsMain[i, j, 0]) -DVCon.addLinearConstraintsShape(indSetA, indSetB, factorA=1.0, factorB=-1.0, lower=0.0, upper=0.0) -# LE and TE constraint -indSetA = [] -indSetB = [] -for i in [0, nFFDs_x - 1]: - for k in [0]: # do not constrain k=1 because it is linked in the above symmetry constraint - indSetA.append(ptsMain[i, 0, k]) - indSetB.append(ptsMain[i, 1, k]) -DVCon.addLinearConstraintsShape(indSetA, indSetB, factorA=1.0, factorB=1.0, lower=0.0, upper=0.0) - -#DVCon.writeTecplot("DVConstraints.dat") - -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - alpha4CLTarget = optFuncs.solveCL(CL_target, "alpha", "CL") - alpha([alpha4CLTarget], None) - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - # Add objective - optProb.addObj("CL", scale=-1) - # Add physical constraints - optProb.addCon("CD", lower=CD_target, upper=CD_target, scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "runForwardAD": - - optFuncs.runForwardAD("shapemain", 0) - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/30N30P_MultiElement_Airfoil/system/decomposeParDict b/30N30P_MultiElement_Airfoil/system/decomposeParDict index 742e5222..e4186a93 100755 --- a/30N30P_MultiElement_Airfoil/system/decomposeParDict +++ b/30N30P_MultiElement_Airfoil/system/decomposeParDict @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -numberOfSubdomains 4; +numberOfSubdomains 36; method scotch; diff --git a/30N30P_MultiElement_Airfoil/system/fvSchemes b/30N30P_MultiElement_Airfoil/system/fvSchemes index 627c1c0a..68080727 100755 --- a/30N30P_MultiElement_Airfoil/system/fvSchemes +++ b/30N30P_MultiElement_Airfoil/system/fvSchemes @@ -58,7 +58,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/ADODG3_Wing/0.orig/T b/ADODG3_Wing/0.orig/T new file mode 100755 index 00000000..8220a7f0 --- /dev/null +++ b/ADODG3_Wing/0.orig/T @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 300.0; + +boundaryField +{ + "wing.*" + { + type zeroGradient; + } + sym + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/ADODG3_Wing/0.orig/U b/ADODG3_Wing/0.orig/U new file mode 100755 index 00000000..5c330a20 --- /dev/null +++ b/ADODG3_Wing/0.orig/U @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (100 0 0); + +boundaryField +{ + "wing.*" + { + type fixedValue; + value uniform (0 0 0); + } + sym + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/ADODG3_Wing/0.orig/alphat b/ADODG3_Wing/0.orig/alphat new file mode 100755 index 00000000..fe541f85 --- /dev/null +++ b/ADODG3_Wing/0.orig/alphat @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 1e-4; + +boundaryField +{ + "wing.*" + { + type compressible::alphatWallFunction; + value $internalField; + } + sym + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/ADODG3_Wing/0.orig/epsilon b/ADODG3_Wing/0.orig/epsilon new file mode 100755 index 00000000..88fb471d --- /dev/null +++ b/ADODG3_Wing/0.orig/epsilon @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 168; + +boundaryField +{ + wing + { + type epsilonWallFunction; + value $internalField; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + sym + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/ADODG3_Wing/0.orig/k b/ADODG3_Wing/0.orig/k new file mode 100755 index 00000000..06e140f1 --- /dev/null +++ b/ADODG3_Wing/0.orig/k @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.375; + +boundaryField +{ + wing + { + type kqRWallFunction; + value $internalField; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + sym + { + type symmetry; + } + +} + + +// ************************************************************************* // diff --git a/ADODG3_Wing/0.orig/nuTilda b/ADODG3_Wing/0.orig/nuTilda new file mode 100755 index 00000000..12e8d441 --- /dev/null +++ b/ADODG3_Wing/0.orig/nuTilda @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5e-05; + +boundaryField +{ + "wing.*" + { + type fixedValue; + value uniform 0.0; + } + sym + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/ADODG3_Wing/0.orig/nut b/ADODG3_Wing/0.orig/nut new file mode 100755 index 00000000..b228101e --- /dev/null +++ b/ADODG3_Wing/0.orig/nut @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5E-5; + +boundaryField +{ + "wing.*" + { + type nutUSpaldingWallFunction; + value $internalField; + } + sym + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/ADODG3_Wing/0.orig/omega b/ADODG3_Wing/0.orig/omega new file mode 100755 index 00000000..f45d939d --- /dev/null +++ b/ADODG3_Wing/0.orig/omega @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 5000; + +boundaryField +{ + wing + { + type omegaWallFunction; + value $internalField; + blended true; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + sym + { + type symmetry; + } + +} + + +// ************************************************************************* // diff --git a/ADODG3_Wing/0.orig/p b/ADODG3_Wing/0.orig/p new file mode 100755 index 00000000..bd07c9d5 --- /dev/null +++ b/ADODG3_Wing/0.orig/p @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + "wing.*" + { + type zeroGradient; + } + sym + { + type symmetry; + } + inout + { + type fixedValue; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/ADODG3_Wing/Allclean.sh b/ADODG3_Wing/Allclean.sh new file mode 100755 index 00000000..8bfb3cd0 --- /dev/null +++ b/ADODG3_Wing/Allclean.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf 0 + rm -rf postProcessing + rm -rf constant/extendedFeatureEdgeMesh + rm -rf constant/triSurface + rm -rf constant/polyMesh/ + rm -rf *.bin *.info *.dat *.xyz *.stl *.txt + rm -rf processor* 0.0000* + rm -rf {1..9}* + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/ADODG3_Wing/FFD/genFFD.py b/ADODG3_Wing/FFD/genFFD.py new file mode 100755 index 00000000..4a5948ec --- /dev/null +++ b/ADODG3_Wing/FFD/genFFD.py @@ -0,0 +1,102 @@ +import numpy as np +import sys + + +def writeFFDFile(fileName, nBlocks, nx, ny, nz, points): + """ + Take in a set of points and write the plot 3dFile + """ + + f = open(fileName, "w") + + f.write("%d\n" % nBlocks) + for i in range(nBlocks): + f.write("%d %d %d " % (nx[i], ny[i], nz[i])) + # end + f.write("\n") + for block in range(nBlocks): + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write("%f " % points[block][i, j, k, 0]) + # end + # end + # end + f.write("\n") + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write("%f " % points[block][i, j, k, 1]) + # end + # end + # end + f.write("\n") + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write("%f " % points[block][i, j, k, 2]) + # end + # end + # end + # end + f.close() + return + + +def returnBlockPoints(corners, nx, ny, nz): + """ + corners needs to be 8 x 3 + """ + points = np.zeros([nx, ny, nz, 3]) + + # points 1 - 4 are the iMin face + # points 5 - 8 are the iMax face + + for idim in range(3): + edge1 = np.linspace(corners[0][idim], corners[4][idim], nx) + edge2 = np.linspace(corners[1][idim], corners[5][idim], nx) + edge3 = np.linspace(corners[2][idim], corners[6][idim], nx) + edge4 = np.linspace(corners[3][idim], corners[7][idim], nx) + + for i in range(nx): + edge5 = np.linspace(edge1[i], edge3[i], ny) + edge6 = np.linspace(edge2[i], edge4[i], ny) + for j in range(ny): + edge7 = np.linspace(edge5[j], edge6[j], nz) + points[i, j, :, idim] = edge7 + # end + # end + # end + + return points + + +################ FFD ############## +nBlocks = 1 + +nx = [10] +ny = [2] +nz = [6] + +corners = np.zeros([nBlocks, 8, 3]) + +corners[0, 0, :] = [-0.01, -0.07, 0.0] +corners[0, 1, :] = [-0.01, -0.07, 3.1] +corners[0, 2, :] = [-0.01, 0.07, 0.0] +corners[0, 3, :] = [-0.01, 0.07, 3.1] +corners[0, 4, :] = [1.01, -0.07, 0.0] +corners[0, 5, :] = [1.01, -0.07, 3.1] +corners[0, 6, :] = [1.01, 0.07, 0.0] +corners[0, 7, :] = [1.01, 0.07, 3.1] + + +points = [] +for block in range(nBlocks): + points.append(returnBlockPoints(corners[block], nx[block], ny[block], nz[block])) + +# print points +fileName = "wingFFD.xyz" +writeFFDFile(fileName, nBlocks, nx, ny, nz, points) + diff --git a/ADODG3_Wing/FFD/wingFFD.xyz b/ADODG3_Wing/FFD/wingFFD.xyz new file mode 100755 index 00000000..3d8d3965 --- /dev/null +++ b/ADODG3_Wing/FFD/wingFFD.xyz @@ -0,0 +1,5 @@ +1 +10 2 6 +-0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 -0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 -0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 -0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 -0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 -0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 -0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 -0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 -0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 -0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 -0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 -0.010000 0.103333 0.216667 0.330000 0.443333 0.556667 0.670000 0.783333 0.896667 1.010000 +-0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 0.620000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.240000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 1.860000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 2.480000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 3.100000 \ No newline at end of file diff --git a/ADODG3_Wing/constant/thermophysicalProperties b/ADODG3_Wing/constant/thermophysicalProperties new file mode 100755 index 00000000..bb852567 --- /dev/null +++ b/ADODG3_Wing/constant/thermophysicalProperties @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + mixture pureMixture; + specie specie; + equationOfState perfectGas; + energy sensibleInternalEnergy; + thermo hConst; + type hePsiThermo; + transport const; +} + +mixture +{ + specie + { + molWeight 28.970000; + } + thermodynamics + { + Cp 1005.000000; + Hf 0.000000; + } + transport + { + mu 0.000018; + Pr 0.700000; + TRef 300.000000; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/ADODG3_Wing/constant/turbulenceProperties b/ADODG3_Wing/constant/turbulenceProperties new file mode 100755 index 00000000..fe70b9b6 --- /dev/null +++ b/ADODG3_Wing/constant/turbulenceProperties @@ -0,0 +1,27 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmarasFv3; + turbulence on; + printCoeffs off; + Prt 1.0; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/ADODG3_Wing/genWingMesh.py b/ADODG3_Wing/genWingMesh.py new file mode 100755 index 00000000..90bcc2a0 --- /dev/null +++ b/ADODG3_Wing/genWingMesh.py @@ -0,0 +1,44 @@ +from pyhyp import pyHyp + +fileName = "surfaceMesh.cgns" + +options = { + # --------------------------- + # Input Parameters + # --------------------------- + "inputFile": fileName, + "fileType": "CGNS", + "unattachedEdgesAreSymmetry": True, + "outerFaceBC": "farfield", + "autoConnect": True, + "BC": {}, + "families": "wall", + # --------------------------- + # Grid Parameters + # --------------------------- + "N": 65, + "s0": 3.0e-4, + "marchDist": 30.0, + #'nConstantStart':1, + # --------------------------- + # Pseudo Grid Parameters + # --------------------------- + "ps0": -1.0, + "pGridRatio": -1.0, + "cMax": 0.1, + # --------------------------- + # Smoothing parameters + # --------------------------- + #"epsE": 0.5, + #"epsI": 1.0, + #"theta": 2.0, + #"volCoef": 0.20, + #"volBlend": 0.0005, + #"volSmoothIter": 20, + #'kspreltol':1e-4, +} + +hyp = pyHyp(options=options) +hyp.run() +hyp.writePlot3D("volumeMesh.xyz") + diff --git a/Onera_M6_Wing/constant/triSurface/empty_file b/ADODG3_Wing/paraview.foam similarity index 100% rename from Onera_M6_Wing/constant/triSurface/empty_file rename to ADODG3_Wing/paraview.foam diff --git a/ADODG3_Wing/preProcessing.sh b/ADODG3_Wing/preProcessing.sh new file mode 100755 index 00000000..0ba98098 --- /dev/null +++ b/ADODG3_Wing/preProcessing.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# generate mesh +# generate mesh +echo "Generating mesh.." + +if [ -f "adodg3_surfaceMesh_fine.cgns.tar.gz" ]; then + echo "Surface mesh adodg3_surfaceMesh_fine.cgns.tar.gz already exists." +else + echo "Downloading surface mesh adodg3_surfaceMesh_fine.cgns.tar.gz" + wget https://github.com/dafoam/files/releases/download/v1.0.0/adodg3_surfaceMesh_fine.cgns.tar.gz +fi + +tar -xvf adodg3_surfaceMesh_fine.cgns.tar.gz +# coarsen the surface mesh +cgns_utils coarsen surfaceMesh_fine.cgns surfaceMesh.cgns +python genWingMesh.py > logMeshGeneration.txt +plot3dToFoam -noBlank volumeMesh.xyz >> logMeshGeneration.txt +autoPatch 45 -overwrite >> logMeshGeneration.txt +createPatch -overwrite >> logMeshGeneration.txt +renumberMesh -overwrite >> logMeshGeneration.txt +echo "Generating mesh.. Done!" + +# copy initial and boundary condition files +cp -r 0.orig 0 diff --git a/ADODG3_Wing/preProcessing_cfMesh.sh b/ADODG3_Wing/preProcessing_cfMesh.sh new file mode 100755 index 00000000..69727fd0 --- /dev/null +++ b/ADODG3_Wing/preProcessing_cfMesh.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +### Install CFMESH at https://develop.openfoam.com/Community/integration-cfmesh + +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# pre-processing + +# generate mesh +echo "Generating mesh.." + +if [ -f "adodg3_triSurface.tar.gz" ]; then + echo "Geometry already exists." +else + echo "Downloading geometry adodg3_triSurface.tar.gz" + wget https://github.com/dafoam/files/releases/download/v1.0.0/adodg3_triSurface.tar.gz +fi +tar -xvf adodg3_triSurface.tar.gz +mv triSurface constant/triSurface +echo "Running cfMesh mesh.." +cat constant/triSurface/wing_* > constant/triSurface/geom.stl + +surfaceGenerateBoundingBox constant/triSurface/geom.stl constant/triSurface/domain.stl 20 10 10 10 0 10 &> logMeshGeneration.txt +cartesianMesh >> logMeshGeneration.txt +#createPatch -overwrite >> logMeshGeneration.txt +#renumberMesh -overwrite >> logMeshGeneration.txt +echo "Generating mesh.. Done!" + +# copy initial and boundary condition files +cp -r 0.orig 0 diff --git a/ADODG3_Wing/preProcessing_snappyHexMesh.sh b/ADODG3_Wing/preProcessing_snappyHexMesh.sh new file mode 100755 index 00000000..fac0a7f2 --- /dev/null +++ b/ADODG3_Wing/preProcessing_snappyHexMesh.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# pre-processing + +# generate mesh +echo "Generating mesh.." + +if [ -f "adodg3_triSurface.tar.gz" ]; then + echo "Geometry already exists." +else + echo "Downloading geometry adodg3_triSurface.tar.gz" + wget https://github.com/dafoam/files/releases/download/v1.0.0/adodg3_triSurface.tar.gz +fi +tar -xvf adodg3_triSurface.tar.gz +mv triSurface constant/triSurface +echo "Running snappyHexMesh mesh.." +blockMesh &> logMeshGeneration.txt +surfaceFeatureExtract >> logMeshGeneration.txt +snappyHexMesh -overwrite >> logMeshGeneration.txt +createPatch -overwrite >> logMeshGeneration.txt +renumberMesh -overwrite >> logMeshGeneration.txt +echo "Generating mesh.. Done!" + +# copy initial and boundary condition files +cp -r 0.orig 0 diff --git a/ADODG3_Wing/runScript.py b/ADODG3_Wing/runScript.py new file mode 100755 index 00000000..771f39c5 --- /dev/null +++ b/ADODG3_Wing/runScript.py @@ -0,0 +1,270 @@ +#!/usr/bin/env python +import os +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= + +U0 = 100.0 +p0 = 101325.0 +T0 = 300.0 +rho0 = p0 / T0 / 287.0 +nuTilda0 = 4.5e-5 +# Tu 0.5%, nu_r = 5 +k0 = 0.375 +epsilon0 = 168.75 +omega0 = 5000.0 +CL_target = 0.375 +aoa0 = 4.9202844 +A0 = 3.0 + +daOptions = { + "designSurfaces": ["wing"], + "solverName": "DARhoSimpleFoam", + "primalMinResTol": 1.0e-8, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "T0": {"variable": "T", "patches": ["inout"], "value": [T0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "k0": {"variable": "k", "patches": ["inout"], "value": [k0]}, + "epsilon0": {"variable": "epsilon", "patches": ["inout"], "value": [epsilon0]}, + "omega0": {"variable": "omega", "patches": ["inout"], "value": [omega0]}, + "useWallFunction": True, + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + }, + "adjEqnOption": { + "gmresRelTol": 1.0e-6, + "pcFillLevel": 1, + "jacMatReOrdering": "rcm", + "gmresMaxIters": 1000, + "gmresRestart": 1000, + }, + "normalizeStates": { + "U": U0, + "p": p0, + "T": T0, + "nuTilda": 1e-3, + "k": 1.0, + "omega": 100.0, + "epsilon": 10.0, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, + "checkMeshThreshold": {"maxAspectRatio": 500000.0, "maxNonOrth": 89.9, "maxSkewness": 30.0}, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]]], +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # Create reference axis for the twist variable + nRefAxPts = self.geometry.nom_addRefAxis(name="wingAxis", xFraction=0.25, alignIndex="k") + + # Set up global design variables. We dont change the root twist + def twist(val, geo): + for i in range(1, nRefAxPts): + geo.rot_z["wingAxis"].coef[i] = -val[i - 1] + + # add twist variable + self.geometry.nom_addGlobalDV(dvName="twist", value=np.array([0] * (nRefAxPts - 1)), func=twist) + + # select the FFD points to move + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = pts[:, :, :].flatten() + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shape", pointSelect=PS) + + # setup the volume and thickness constraints + leList = [[0.02, 0.0, 1e-3], [0.02, 0.0, 2.9]] + teList = [[0.95, 0.0, 1e-3], [0.95, 0.0, 2.9]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=25, nChord=30) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=25, nChord=30) + # add the LE/TE constraints + self.geometry.nom_add_LETEConstraint("lecon", volID=0, faceID="iLow") + self.geometry.nom_add_LETEConstraint("tecon", volID=0, faceID="iHigh") + + # add the design variables to the dvs component's output + self.dvs.add_output("twist", val=np.array([0] * (nRefAxPts - 1))) + self.dvs.add_output("shape", val=np.array([0] * nShapes)) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("twist", "geometry.twist") + self.connect("shape", "geometry.shape") + self.connect("patchV", "scenario1.patchV") + + # define the design variables + self.add_design_var("twist", lower=-10.0, upper=10.0, scaler=0.1) + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.tecon", equals=0.0, scaler=1.0, linear=True) + self.add_constraint("geometry.lecon", equals=0.0, scaler=1.0, linear=True) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/ADODG3_Wing/runScript_planform.py b/ADODG3_Wing/runScript_planform.py new file mode 100755 index 00000000..f8e6beec --- /dev/null +++ b/ADODG3_Wing/runScript_planform.py @@ -0,0 +1,275 @@ +#!/usr/bin/env python +import os +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= + +U0 = 100.0 +p0 = 101325.0 +T0 = 300.0 +rho0 = p0 / T0 / 287.0 +nuTilda0 = 4.5e-5 +CL_target = 0.375 +CMX_upper = 1.0 +aoa0 = 2.0 +A0 = 3.0 +span0 = 3.0 +chord0 = 1.0 + +daOptions = { + "designSurfaces": ["wing"], + "solverName": "DARhoSimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1.0e4, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "T0": {"variable": "T", "patches": ["inout"], "value": [T0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "useWallFunction": True, + }, + "checkMeshThreshold": { + "maxAspectRatio": 3000.0, + "maxNonOrth": 75.0, + "maxSkewness": 6.0, + "maxIncorrectlyOrientedFaces": 3, + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + }, + "adjEqnOption": { + "gmresRelTol": 1.0e-6, + "pcFillLevel": 1, + "jacMatReOrdering": "rcm", + "gmresMaxIters": 1000, + "gmresRestart": 1000, + }, + "normalizeStates": { + "U": U0, + "p": p0, + "T": T0, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]]], +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # Create reference axis for the twist variable + nRefAxPts = self.geometry.nom_addRefAxis(name="wingAxis", xFraction=0.25, alignIndex="k") + + # Set up the span variable, here val[0] is the span change in % + def span(val, geo): + # coordinates for the reference axis + refAxisCoef = geo.extractCoef("wingAxis") + # the relative location of a point in the ref axis + # refAxisS[0] = 0, and refAxisS[-1] = 1 + refAxisS = geo.refAxis.curves[0].s + deltaSpan = span0 * val[0] / 100.0 + # linearly change the refAxis coef along the span + for i in range(nRefAxPts): + refAxisCoef[i, 2] += refAxisS[i] * deltaSpan + geo.restoreCoef(refAxisCoef, "wingAxis") + + # add span variable + self.geometry.nom_addGlobalDV(dvName="span", value=np.array([0]), func=span) + + # Set up the taper variable, val[0] is the chord change in % at the root and + # val[1] is the chord change at the tip, the chords at other spanwise locations + # will be linearly determined by the root and tip chords + def taper(val, geo): + refAxisS = geo.refAxis.curves[0].s + cRoot = chord0 * val[0] / 100.0 + cTip = chord0 * val[1] / 100.0 + for i in range(nRefAxPts): + geo.scale_x["wingAxis"].coef[i] = 1.0 + refAxisS[i] * (cTip - cRoot) + cRoot + + # add taper variable + self.geometry.nom_addGlobalDV(dvName="taper", value=np.array([0, 0]), func=taper) + + # setup the volume and thickness constraints + leList = [[0.02, 0.0, 1e-3], [0.02, 0.0, 2.9]] + teList = [[0.95, 0.0, 1e-3], [0.95, 0.0, 2.9]] + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=25, nChord=30) + + # add the design variables to the dvs component's output + self.dvs.add_output("span", val=np.array([0])) + self.dvs.add_output("taper", val=np.array([0, 0])) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("span", "geometry.span") + self.connect("taper", "geometry.taper") + self.connect("patchV", "scenario1.patchV") + + # define the design variables + self.add_design_var("span", lower=-30.0, upper=30.0, scaler=0.1) + self.add_design_var("taper", lower=-30.0, upper=30.0, scaler=0.1) + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/ADODG3_Wing/system/blockMeshDict b/ADODG3_Wing/system/blockMeshDict new file mode 100755 index 00000000..7c837f75 --- /dev/null +++ b/ADODG3_Wing/system/blockMeshDict @@ -0,0 +1,75 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| o | | +| o o | HELYX-OS | +| o O o | Version: v2.3.1 | +| o o | Web: http://www.engys.com | +| o | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location system; + object blockMeshDict; +} + +L1 20; +L2 -20; +N 20; +M 10; + +convertToMeters 1; + +vertices +( + ($L2 $L2 0) + ($L1 $L2 0) + ($L1 $L1 0) + ($L2 $L1 0) + ($L2 $L2 $L1) + ($L1 $L2 $L1) + ($L1 $L1 $L1) + ($L2 $L1 $L1) +); + +blocks +( + hex ( 0 1 2 3 4 5 6 7) ($N $N $M) simpleGrading (1 1 1) +); + +edges +( +); + +patches +( + patch farfield_inlet + ( + (0 4 7 3) + ) + patch farfield_outlet + ( + (1 2 6 5) + ) + patch farfield_bot + ( + (0 1 5 4) + ) + patch farfield_top + ( + (3 7 6 2) + ) + symmetry sym + ( + (0 3 2 1) + ) + patch farfield_front + ( + (4 5 6 7) + ) +); + +mergePatchPairs +( +); diff --git a/ADODG3_Wing/system/controlDict b/ADODG3_Wing/system/controlDict new file mode 100755 index 00000000..0b3e82f7 --- /dev/null +++ b/ADODG3_Wing/system/controlDict @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 4000; +deltaT 1; +writeControl timeStep; +writeInterval 4000; +purgeWrite 0; +writeFormat ascii; +writePrecision 8; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/ADODG3_Wing/system/createPatchDict b/ADODG3_Wing/system/createPatchDict new file mode 100755 index 00000000..35e5745d --- /dev/null +++ b/ADODG3_Wing/system/createPatchDict @@ -0,0 +1,68 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +pointSync false; + +// Patches to create. +patches +( + { + // Name of new patch + name wing; + + // Dictionary to construct new patch from + patchInfo + { + type wall; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches ("wing_.*" auto0 auto3); + } + { + // Name of new patch + name inout; + + // Dictionary to construct new patch from + patchInfo + { + type patch; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches ("farfield_.*" auto2); + } + + { + // Name of new patch + name sym; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto1 sym); + } + +); + +// ************************************************************************* // diff --git a/ADODG3_Wing/system/decomposeParDict b/ADODG3_Wing/system/decomposeParDict new file mode 100755 index 00000000..4af78c20 --- /dev/null +++ b/ADODG3_Wing/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 72; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/ADODG3_Wing/system/fvSchemes b/ADODG3_Wing/system/fvSchemes new file mode 100755 index 00000000..68080727 --- /dev/null +++ b/ADODG3_Wing/system/fvSchemes @@ -0,0 +1,64 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,e) bounded Gauss upwind; + div(phi,h) bounded Gauss upwind; + div(pc) bounded Gauss upwind; + div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div(phi,K) bounded Gauss upwind; + div(phi,Ekp) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/ADODG3_Wing/system/fvSolution b/ADODG3_Wing/system/fvSolution new file mode 100755 index 00000000..0768f8aa --- /dev/null +++ b/ADODG3_Wing/system/fvSolution @@ -0,0 +1,69 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +SIMPLE +{ + nNonOrthogonalCorrectors 0; +} + +solvers +{ + "(p|p_rgh|G)" + { + + solver GAMG; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + } + Phi + { + $p; + relTol 0; + tolerance 1e-6; + } + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + nSweeps 1; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh)" 0.30; + rho 0.1; + } + equations + { + "(U|T|e|h|nuTilda|k|epsilon|omega)" 0.70; + } + +} + +potentialFlow +{ + nNonOrthogonalCorrectors 20; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/ADODG3_Wing/system/meshDict b/ADODG3_Wing/system/meshDict new file mode 100644 index 00000000..10b21866 --- /dev/null +++ b/ADODG3_Wing/system/meshDict @@ -0,0 +1,77 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | cfMesh: A library for mesh generation | +| \\ / O peration | | +| \\ / A nd | Author: Franjo Juretic | +| \\/ M anipulation | E-mail: franjo.juretic@c-fields.com | +\*---------------------------------------------------------------------------*/ + +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object meshDict; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +surfaceFile "constant/triSurface/domain.stl"; + +maxCellSize 1.; + +localRefinement +{ + PART_1_FACE + { + additionalRefinementLevels 5; + } +} + +objectRefinements +{ + wake + { + additionalRefinementLevels 3; + type box; + centre (0 0 0); + lengthX 6.; + lengthY 0.36; + lengthZ 6.; + } +} + +renameBoundary +{ + defaultName inout; + defaultType patch; + newPatchNames + { + PART_1_FACE + { + newName wing; + type wall; + } + zMin + { + newName sym; + type symmetry; + } + } +} + +boundaryLayers +{ + patchBoundaryLayers + { + PART_1_FACE + { + allowDiscontinuity 1; + nLayers 8; + thicknessRatio 1.2; + } + } +} + +// ************************************************************************* // diff --git a/ADODG3_Wing/system/snappyHexMeshDict b/ADODG3_Wing/system/snappyHexMeshDict new file mode 100755 index 00000000..7a31c4aa --- /dev/null +++ b/ADODG3_Wing/system/snappyHexMeshDict @@ -0,0 +1,180 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location system; + object snappyHexMeshDict; +} + + surfaceLevel 6; + lineLevel 8; + prismLayer 5; + + castellatedMesh true; + snap true; + addLayers true; + geometry + { + wing_lower.stl + { + type triSurfaceMesh; + name wing_lower; + } + wing_upper.stl + { + type triSurfaceMesh; + name wing_upper; + } + wing_tip.stl + { + type triSurfaceMesh; + name wing_tip; + } + wing_te.stl + { + type triSurfaceMesh; + name wing_te; + } + } + + castellatedMeshControls + { + features + ( + { + file "wing_lower.eMesh"; + level $lineLevel; + } + + { + file "wing_upper.eMesh"; + level $lineLevel; + } + + { + file "wing_tip.eMesh"; + level $lineLevel; + } + + { + file "wing_te.eMesh"; + level $lineLevel; + } + ); + refinementSurfaces + { + wing_upper + { + level ( $surfaceLevel $surfaceLevel ); + } + + wing_lower + { + level ( $surfaceLevel $surfaceLevel ); + } + + wing_te + { + level ( $surfaceLevel $surfaceLevel ); + } + + wing_tip + { + level ( $surfaceLevel $surfaceLevel ); + } + + } + + refinementRegions + { + + + } + + locationInMesh ( 2 2 2 ); + maxLocalCells 10000000; + maxGlobalCells 200000000; + minRefinementCells 0; + nCellsBetweenLevels 3; + resolveFeatureAngle 10; + allowFreeStandingZoneFaces true; + planarAngle 30; + maxLoadUnbalance 0.10; + } + + snapControls + { + nSolveIter 50; + nSmoothPatch 3; + tolerance 2.0; + nRelaxIter 5; + nFeatureSnapIter 10; + implicitFeatureSnap false; + explicitFeatureSnap true; + multiRegionFeatureSnap false; + } + + addLayersControls + { + layers + { + "wing.*" + {nSurfaceLayers $prismLayer;} + } + + relativeSizes true; + expansionRatio 1.3; + finalLayerThickness 0.3; + minThickness 0.001; + nGrow 0; + featureAngle 180; + slipFeatureAngle 80; + nRelaxIter 5; + nSmoothSurfaceNormals 1; + nSmoothNormals 3; + nSmoothThickness 10; + maxFaceThicknessRatio 0.5; + maxThicknessToMedialRatio 0.3; + minMedialAxisAngle 90; + nBufferCellsNoExtrude 0; + nLayerIter 50; + nRelaxedIter 20; + writeVTK false; + noErrors false; + layerRecovery 1; + growZoneLayers false; + projectGrownUp 0.0; + } + + meshQualityControls + { + maxNonOrtho 60; + maxBoundarySkewness 4; + maxInternalSkewness 4; + maxConcave 80; + minFlatness 0.5; + minVol 1.00E-13; + minTetQuality -1e30; + minArea -1; + minTwist 0.03; + minDeterminant 0.01; + minFaceWeight 0.03; + minVolRatio 0.01; + minTriangleTwist -1; + nSmoothScale 4; + errorReduction 0.75; + relaxed {maxNonOrtho 65; maxBoundarySkewness 5; } + + } + + debug 0; + mergeTolerance 1E-6; + autoBlockMesh false; diff --git a/ADODG3_Wing/system/surfaceFeatureExtractDict b/ADODG3_Wing/system/surfaceFeatureExtractDict new file mode 100755 index 00000000..7f4c5faa --- /dev/null +++ b/ADODG3_Wing/system/surfaceFeatureExtractDict @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object surfaceFeatureExtractDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +wing_upper.stl +{ + extractionMethod extractFromSurface; + includedAngle 150; + geometricTestOnly yes; + intersectionMethod none; + // Tolerance for surface intersections + // tolerance 1e-3; + writeObj yes; +} + +wing_lower.stl +{ + extractionMethod extractFromSurface; + includedAngle 150; + geometricTestOnly yes; + intersectionMethod none; + // Tolerance for surface intersections + // tolerance 1e-3; + writeObj yes; +} + +wing_tip.stl +{ + extractionMethod extractFromSurface; + includedAngle 150; + geometricTestOnly yes; + intersectionMethod none; + // Tolerance for surface intersections + // tolerance 1e-3; + writeObj yes; +} + +wing_te.stl +{ + extractionMethod extractFromSurface; + includedAngle 150; + geometricTestOnly yes; + intersectionMethod none; + // Tolerance for surface intersections + // tolerance 1e-3; + writeObj yes; +} diff --git a/CRM_Wing/genWingMesh.py b/CRM_Wing/genWingMesh.py index 308e6cde..83e172df 100755 --- a/CRM_Wing/genWingMesh.py +++ b/CRM_Wing/genWingMesh.py @@ -1,54 +1,45 @@ - from pyhyp import pyHyp -fileName = 'surfMesh.cgns' -options= { + +fileName = "surfMesh.cgns" +options = { # --------------------------- # Input Parameters # --------------------------- - 'inputFile':fileName, - 'fileType':'cgns', - 'unattachedEdgesAreSymmetry':True, - 'outerFaceBC':'farField', - 'autoConnect':True, - 'BC':{}, - 'families':'wall', - + "inputFile": fileName, + "fileType": "CGNS", + "unattachedEdgesAreSymmetry": True, + "outerFaceBC": "farfield", + "autoConnect": True, + "BC": {}, + "families": "wall", # --------------------------- # Grid Parameters # --------------------------- - 'N': 53, - 's0':1.e-4, - 'marchDist':25*3.758151, + "N": 53, + "s0": 1.0e-4, + "marchDist": 25 * 3.758151, #'nConstantStart':0, - # --------------------------- # Pseudo Grid Parameters # --------------------------- - 'ps0':-1, - 'pGridRatio':1.1, - 'cMax':5.0, - + "ps0": -1.0, + "pGridRatio": 1.1, + "cMax": 5.0, # --------------------------- # Smoothing parameters # --------------------------- - 'epsE': 1.0, - 'epsI': 2.0, - 'theta': 3.0, - 'volCoef': .16, - 'volBlend': 0.0005, - 'volSmoothIter': 30, - - 'kspRelTol': 1e-4, - 'kspMaxIts': 50, - 'kspSubspaceSize':50, + "epsE": 1.0, + "epsI": 2.0, + "theta": 3.0, + "volCoef": 0.16, + "volBlend": 0.0005, + "volSmoothIter": 30, + "kspRelTol": 1e-4, + "kspMaxIts": 50, + "kspSubspaceSize": 50, } hyp = pyHyp(options=options) hyp.run() -#hyp.writeCGNS('volumeMesh.cgns') -hyp.writePlot3D('volumeMesh.xyz') - - - - - +# hyp.writeCGNS('volumeMesh.cgns') +hyp.writePlot3D("volumeMesh.xyz") diff --git a/CRM_Wing/runScript.py b/CRM_Wing/runScript.py index feb1a08b..28caed1f 100755 --- a/CRM_Wing/runScript.py +++ b/CRM_Wing/runScript.py @@ -1,47 +1,38 @@ #!/usr/bin/env python -""" -DAFoam run script for the CRM wing at transonic speed -""" - -# ============================================================================= -# Imports -# ============================================================================= import os import argparse -from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SLSQP") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() # ============================================================================= # Input Parameters # ============================================================================= -parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="snopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") -args = parser.parse_args() -gcomm = MPI.COMM_WORLD -# global parameters U0 = 295.0 p0 = 101325.0 nuTilda0 = 4.5e-5 T0 = 300.0 CL_target = 0.5 -alpha0 = 2.178962 +aoa0 = 2.11031707 +rho0 = p0 / T0 / 287.0 A0 = 3.407014 -rho0 = 1.1768 # density for normalizing CD and CL -# Set the parameters for optimization daOptions = { "designSurfaces": ["wing"], "solverName": "DARhoSimpleCFoam", - "useAD": {"mode": "reverse"}, "primalMinResTol": 1.0e-8, "primalBC": { "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, @@ -50,79 +41,205 @@ "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, "useWallFunction": True, }, - # variable bounds for compressible flow conditions - "primalVarBounds": { - "UMax": 1000.0, - "UMin": -1000.0, - "pMax": 500000.0, - "pMin": 20000.0, - "eMax": 500000.0, - "eMin": 100000.0, - "rhoMax": 5.0, - "rhoMin": 0.2, - }, - "objFunc": { + "function": { "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "parallelToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), }, "CL": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "normalToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), }, }, "adjStateOrdering": "cell", - "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "natural", "gmresMaxIters": 2000, "gmresRestart": 2000}, + "adjEqnOption": { + "gmresRelTol": 1.0e-6, + "pcFillLevel": 1, + "jacMatReOrdering": "natural", + "gmresMaxIters": 2000, + "gmresRestart": 2000, + }, + "normalizeStates": { + "U": U0, + "p": p0, + "T": T0, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "checkMeshThreshold": { + "maxAspectRatio": 2000.0, + "maxNonOrth": 75.0, + "maxSkewness": 5.0, + }, # transonic preconditioner to speed up the adjoint convergence "transonicPCOption": 2, - "checkMeshThreshold": {"maxAspectRatio": 2000.0, "maxNonOrth": 75.0, "maxSkewness": 5.0}, - "normalizeStates": {"U": U0, "p": p0, "nuTilda": nuTilda0 * 10.0, "phi": 1.0, "T": T0}, - "adjPartDerivFDStep": {"State": 1e-6, "FFD": 1e-3}, - "adjPCLag": 10, - "designVar": {}, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "z", + "components": ["solver", "function"], + }, + }, } -# mesh warping parameters, users need to manually specify the symmetry plane +# Mesh deformation setup meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", - "useRotations": False, + "fileType": "OpenFOAM", # point and normal for the symmetry plane "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 1.0, 0.0]]], } + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # Create reference axis for the twist variable + nRefAxPts = self.geometry.nom_addRefAxis(name="wingAxis", xFraction=0.25, alignIndex="j") + + # Set up global design variables. We dont change the root twist + def twist(val, geo): + for i in range(1, nRefAxPts): + geo.rot_y["wingAxis"].coef[i] = -val[i - 1] + + # add twist variable + self.geometry.nom_addGlobalDV(dvName="twist", value=np.array([0] * (nRefAxPts - 1)), func=twist) + + # select the FFD points to move + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = pts[:, :, :].flatten() + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shape", pointSelect=PS) + + # setup the volume and thickness constraints + # NOTE: the LE and TE lists are not parallel lines anymore, these two lists define lines that + # are close to the leading and trailing edges while being completely within the wing surface + leList = [[0.1, 0, 0.01], [7.5, 0, 13.9]] + teList = [[4.9, 0, 0.01], [8.9, 0, 13.9]] + LE_pt = np.array([0.01, 0.01, 0.0]) + break_pt = np.array([0.848, 1.119, 0.0]) + tip_pt = np.array([2.855, 3.755, 0.0]) + root_chord = 1.689 + break_chord = 1.036 + tip_chord = 0.390 + leList = [ + [LE_pt[0] + 0.01 * root_chord, LE_pt[1], LE_pt[2]], + [break_pt[0] + 0.01 * break_chord, break_pt[1], break_pt[2]], + [tip_pt[0] + 0.01 * tip_chord, tip_pt[1], tip_pt[2]], + ] + + teList = [ + [LE_pt[0] + 0.99 * root_chord, LE_pt[1], LE_pt[2]], + [break_pt[0] + 0.99 * break_chord, break_pt[1], break_pt[2]], + [tip_pt[0] + 0.99 * tip_chord, tip_pt[1], tip_pt[2]], + ] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=25, nChord=30) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=25, nChord=30) + # add the LE/TE constraints + self.geometry.nom_add_LETEConstraint("lecon", volID=0, faceID="iLow") + self.geometry.nom_add_LETEConstraint("tecon", volID=0, faceID="iHigh") + + # add the design variables to the dvs component's output + self.dvs.add_output("twist", val=np.array([0] * (nRefAxPts - 1))) + self.dvs.add_output("shape", val=np.array([0] * nShapes)) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("twist", "geometry.twist") + self.connect("shape", "geometry.shape") + self.connect("patchV", "scenario1.patchV") + + # define the design variables + self.add_design_var("twist", lower=-10.0, upper=10.0, scaler=0.1) + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.tecon", equals=0.0, scaler=1.0, linear=True) + self.add_constraint("geometry.lecon", equals=0.0, scaler=1.0, linear=True) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer # options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 200, + "Function precision": 1.0e-5, + "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", "Summary file": "opt_SNOPT_summary.txt", } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", "mu_strategy": "adaptive", @@ -131,161 +248,39 @@ "alpha_for_y": "full", "recalc_y": "yes", } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } else: - print("opt arg not valid!") - exit(0) - - -# ============================================================================= -# Design variable setup -# ============================================================================= -DVGeo = DVGeometry("./FFD/wingFFD.xyz") - -# nTwists is the number of FFD points in the spanwise direction -nTwists = DVGeo.addRefAxis("bodyAxis", xFraction=0.25, alignIndex="j") - -# twist function, we keep the root twist constant so the first -# element in the twist design variable is the twist at the 2nd -# spanwise location -def twist(val, geo): - for i in range(1, nTwists): - geo.rot_y["bodyAxis"].coef[i] = - val[i - 1] - - -# angle of attack -def alpha(val, geo): - aoa = val[0] * np.pi / 180.0 - inletU = [float(U0 * np.cos(aoa)), 0.0, float(U0 * np.sin(aoa))] - DASolver.setOption("primalBC", {"U0": {"variable": "U", "patches": ["inout"], "value": inletU}}) - DASolver.updateDAOption() - - -# select points -pts = DVGeo.getLocalIndex(0) -indexList = pts[:, :, :].flatten() -PS = geo_utils.PointSelect("list", indexList) -# shape -DVGeo.addGeoDVLocal("shapez", lower=-1.0, upper=1.0, axis="z", scale=1.0, pointSelect=PS) -daOptions["designVar"]["shapez"] = {"designVarType": "FFD"} -# twist -DVGeo.addGeoDVGlobal("twist", np.zeros(nTwists - 1), twist, lower=-10.0, upper=10.0, scale=1.0) -daOptions["designVar"]["twist"] = {"designVarType": "FFD"} -# alpha -DVGeo.addGeoDVGlobal("alpha", [alpha0], alpha, lower=0.0, upper=10.0, scale=1.0) -daOptions["designVar"]["alpha"] = {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "z"} - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -# NOTE: the LE and TE lists are not parallel lines anymore, these two lists define lines that -# are close to the leading and trailing edges while being completely within the wing surface -LE_pt = np.array([0.01, 0.01, 0.0]) -break_pt = np.array([0.848, 1.119, 0.0]) -tip_pt = np.array([2.855, 3.755, 0.0]) -root_chord = 1.689 -break_chord = 1.036 -tip_chord = 0.390 - -leList = [ - [LE_pt[0] + 0.01 * root_chord, LE_pt[1], LE_pt[2]], - [break_pt[0] + 0.01 * break_chord, break_pt[1], break_pt[2]], - [tip_pt[0] + 0.01 * tip_chord, tip_pt[1], tip_pt[2]], -] - -teList = [ - [LE_pt[0] + 0.99 * root_chord, LE_pt[1], LE_pt[2]], - [break_pt[0] + 0.99 * break_chord, break_pt[1], break_pt[2]], - [tip_pt[0] + 0.99 * tip_chord, tip_pt[1], tip_pt[2]], -] - - -# volume constraint -DVCon.addVolumeConstraint(leList, teList, nSpan=25, nChord=30, lower=1.0, upper=3, scaled=True) - -# thickness constraint -DVCon.addThicknessConstraints2D(leList, teList, nSpan=25, nChord=30, lower=0.5, upper=3.0, scaled=True) - -# Le/Te constraints -DVCon.addLeTeConstraints(0, "iLow") -DVCon.addLeTeConstraints(0, "iHigh") - -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - alpha4CLTarget = optFuncs.solveCL(CL_target, "alpha", "CL") - alpha([alpha4CLTarget], None) - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - # Add objective - optProb.addObj("CD", scale=1) - # Add physical constraints - optProb.addCon("CL", lower=CL_target, upper=CL_target, scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "runForwardAD": - - optFuncs.runForwardAD("shapez", 0) - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/CRM_Wing/system/createPatchDict b/CRM_Wing/system/createPatchDict index 59e97eda..8abeeff5 100755 --- a/CRM_Wing/system/createPatchDict +++ b/CRM_Wing/system/createPatchDict @@ -46,7 +46,7 @@ patches // How to construct: either from 'patches' or 'set' constructFrom patches; - patches (auto1); + patches (auto2); } { @@ -61,6 +61,6 @@ patches // How to construct: either from 'patches' or 'set' constructFrom patches; - patches (auto2); + patches (auto1); } ); diff --git a/CRM_Wing/system/decomposeParDict b/CRM_Wing/system/decomposeParDict index 1c89e575..4af78c20 100755 --- a/CRM_Wing/system/decomposeParDict +++ b/CRM_Wing/system/decomposeParDict @@ -15,19 +15,18 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -numberOfSubdomains 8; +numberOfSubdomains 72; -method scotch; +method scotch; simpleCoeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + delta 0.001; } -distributed false; +distributed false; roots(); - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/CRM_Wing/system/fvSchemes b/CRM_Wing/system/fvSchemes index c50f9196..38b5015e 100755 --- a/CRM_Wing/system/fvSchemes +++ b/CRM_Wing/system/fvSchemes @@ -60,7 +60,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Cone_Supersonic/0.orig/T b/Cone_Supersonic/0.orig/T new file mode 100755 index 00000000..18a82af6 --- /dev/null +++ b/Cone_Supersonic/0.orig/T @@ -0,0 +1,55 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#include "include/freestreamConditions" +dimensions [0 0 0 1 0 0 0]; + + +internalField uniform $T; + +boundaryField +{ + inlet + { + type characteristicFarfieldTemperature; + #include "include/freestreamConditions" + value $internalField; + } + outlet + { + type characteristicFarfieldTemperature; + #include "include/freestreamConditions" + value $internalField; + } + cone + { + type characteristicWallTemperature; + value $internalField; + } + top_bot + { + type characteristicFarfieldTemperature; + #include "include/freestreamConditions" + value $internalField; + } + syms + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Cone_Supersonic/0.orig/U b/Cone_Supersonic/0.orig/U new file mode 100755 index 00000000..b1daf8fe --- /dev/null +++ b/Cone_Supersonic/0.orig/U @@ -0,0 +1,54 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#include "include/freestreamConditions" +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform $U; + +boundaryField +{ + inlet + { + type characteristicFarfieldVelocity; + #include "include/freestreamConditions" + value uniform (0 0 0); + } + outlet + { + type characteristicFarfieldVelocity; + #include "include/freestreamConditions" + value uniform (0 0 0); + } + cone + { + type slip; + } + top_bot + { + type characteristicFarfieldVelocity; + #include "include/freestreamConditions" + value uniform (0 0 0); + } + syms + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Cone_Supersonic/0.orig/alphat b/Cone_Supersonic/0.orig/alphat new file mode 100755 index 00000000..c83d152e --- /dev/null +++ b/Cone_Supersonic/0.orig/alphat @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + cone + { + type boundaryCorrectedFixedValue; + value uniform 1e-16; + } + top_bot + { + type calculated; + value $internalField; + } + syms + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Cone_Supersonic/0.orig/include/freestreamConditions b/Cone_Supersonic/0.orig/include/freestreamConditions new file mode 100755 index 00000000..64d919d3 --- /dev/null +++ b/Cone_Supersonic/0.orig/include/freestreamConditions @@ -0,0 +1,14 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| | +| HiSA: High Speed Aerodynamic solver | +| Copyright (C) 2014-2017 Johan Heyns - CSIR, South Africa | +| Copyright (C) 2014-2017 Oliver Oxtoby - CSIR, South Africa | +| | +\*---------------------------------------------------------------------------*/ + +U (680.0 0 0); +p 101325.0; +T 300.0; +#inputMode merge + +// ************************************************************************* // diff --git a/Cone_Supersonic/0.orig/nuTilda b/Cone_Supersonic/0.orig/nuTilda new file mode 100755 index 00000000..d23fbe85 --- /dev/null +++ b/Cone_Supersonic/0.orig/nuTilda @@ -0,0 +1,55 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + + +internalField uniform 4.5e-05; + +boundaryField +{ + inlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + cone + { + type boundaryCorrectedFixedValue; + value uniform 0.0; + } + top_bot + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + syms + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Cone_Supersonic/0.orig/nut b/Cone_Supersonic/0.orig/nut new file mode 100755 index 00000000..29ca73d7 --- /dev/null +++ b/Cone_Supersonic/0.orig/nut @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + cone + { + type boundaryCorrectedNutLowReWallFunction; + value uniform 1e-16; + } + top_bot + { + type calculated; + value $internalField; + } + syms + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Cone_Supersonic/0.orig/p b/Cone_Supersonic/0.orig/p new file mode 100755 index 00000000..3b6af9a2 --- /dev/null +++ b/Cone_Supersonic/0.orig/p @@ -0,0 +1,53 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#include "include/freestreamConditions" +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform $p; + +boundaryField +{ + inlet + { + type characteristicFarfieldPressure; + #include "include/freestreamConditions" + value $internalField; + } + outlet + { + type characteristicFarfieldPressure; + #include "include/freestreamConditions" + value $internalField; + } + cone + { + type characteristicWallPressure; + value $internalField; + } + top_bot + { + type characteristicFarfieldPressure; + #include "include/freestreamConditions" + value $internalField; + } + syms + { + type symmetry; + } + +} + +// ************************************************************************* // diff --git a/Cone_Supersonic/Allclean.sh b/Cone_Supersonic/Allclean.sh new file mode 100755 index 00000000..6e64b065 --- /dev/null +++ b/Cone_Supersonic/Allclean.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf 0 + rm -rf postProcessing + rm -rf constant/extendedFeatureEdgeMesh + rm -rf constant/triSurface + rm -rf constant/polyMesh/ + rm -rf *.bin *.info *.dat *.xyz *.stl + rm -rf processor* 0.0000* + rm -rf {1..9}* + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/Cone_Supersonic/FFD/FFD.xyz b/Cone_Supersonic/FFD/FFD.xyz new file mode 100755 index 00000000..d6f132e2 --- /dev/null +++ b/Cone_Supersonic/FFD/FFD.xyz @@ -0,0 +1,5 @@ +1 +7 3 2 +0.990000 1.160000 1.330000 1.500000 1.670000 1.840000 2.010000 0.990000 1.160000 1.330000 1.500000 1.670000 1.840000 2.010000 0.990000 1.160000 1.330000 1.500000 1.670000 1.840000 2.010000 0.990000 1.160000 1.330000 1.500000 1.670000 1.840000 2.010000 0.990000 1.160000 1.330000 1.500000 1.670000 1.840000 2.010000 0.990000 1.160000 1.330000 1.500000 1.670000 1.840000 2.010000 +-0.050000 -0.083333 -0.116667 -0.150000 -0.183333 -0.216667 -0.250000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.050000 0.083333 0.116667 0.150000 0.183333 0.216667 0.250000 -0.050000 -0.083333 -0.116667 -0.150000 -0.183333 -0.216667 -0.250000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.050000 0.083333 0.116667 0.150000 0.183333 0.216667 0.250000 +-0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 0.110000 \ No newline at end of file diff --git a/Cone_Supersonic/FFD/genFFD.py b/Cone_Supersonic/FFD/genFFD.py new file mode 100755 index 00000000..0d768919 --- /dev/null +++ b/Cone_Supersonic/FFD/genFFD.py @@ -0,0 +1,98 @@ +import numpy as np +import sys + +def writeFFDFile(fileName,nBlocks,nx,ny,nz,points): + ''' + Take in a set of points and write the plot 3dFile + ''' + + f = open(fileName,'w') + + f.write('%d\n'%nBlocks) + for i in range(nBlocks): + f.write('%d %d %d '%(nx[i],ny[i],nz[i])) + # end + f.write('\n') + for block in range(nBlocks): + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,0]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,1]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,2]) + # end + # end + # end + # end + f.close() + return + +def returnBlockPoints(corners,nx,ny,nz): + ''' + corners needs to be 8 x 3 + ''' + points = np.zeros([nx,ny,nz,3]) + + # points 1 - 4 are the iMin face + # points 5 - 8 are the iMax face + + for idim in range(3): + edge1 = np.linspace(corners[0][idim],corners[4][idim],nx) + edge2 = np.linspace(corners[1][idim],corners[5][idim],nx) + edge3 = np.linspace(corners[2][idim],corners[6][idim],nx) + edge4 = np.linspace(corners[3][idim],corners[7][idim],nx) + + for i in range(nx): + edge5 = np.linspace(edge1[i],edge3[i],ny) + edge6 = np.linspace(edge2[i],edge4[i],ny) + for j in range(ny): + edge7 = np.linspace(edge5[j],edge6[j],nz) + points[i,j,:,idim] = edge7 + # end + # end + # end + + return points + +################ bodyFitted FFD ############## +nBlocks = 1 + +nx = [7] +ny = [3] +nz = [2] + +corners = np.zeros([nBlocks,8,3]) + +corners[0,0,:] = [0.99,-0.05,-0.01] +corners[0,1,:] = [0.99,-0.05,0.11] +corners[0,2,:] = [0.99,0.05,-0.01] +corners[0,3,:] = [0.99,0.05,0.11] +corners[0,4,:] = [2.01,-0.25,-0.01] +corners[0,5,:] = [2.01,-0.25,0.11] +corners[0,6,:] = [2.01,0.25,-0.01] +corners[0,7,:] = [2.01,0.25,0.11] + +points = [] +for block in range(nBlocks): + points.append(returnBlockPoints(corners[block],nx[block],ny[block],nz[block])) + +#print points +fileName = 'FFD.xyz' +writeFFDFile(fileName,nBlocks,nx,ny,nz,points) + diff --git a/Cone_Supersonic/constant/thermophysicalProperties b/Cone_Supersonic/constant/thermophysicalProperties new file mode 100755 index 00000000..17e34a0e --- /dev/null +++ b/Cone_Supersonic/constant/thermophysicalProperties @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| | +| HiSA: High Speed Aerodynamic solver | +| Copyright (C) 2014-2017 Johan Heyns - CSIR, South Africa | +| Copyright (C) 2014-2017 Oliver Oxtoby - CSIR, South Africa | +| | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type hePsiThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState perfectGas; + specie specie; + energy sensibleInternalEnergy; +} + + +mixture +{ + specie + { + nMoles 1; + molWeight 28.966; + } + thermodynamics + { + Cp 1005; + Hf 0; + } + transport + { + mu 0; + Pr 0.700000; + TRef 300.000000; + } +} + +// ************************************************************************* // diff --git a/Cone_Supersonic/constant/turbulenceProperties b/Cone_Supersonic/constant/turbulenceProperties new file mode 100755 index 00000000..7a26ee54 --- /dev/null +++ b/Cone_Supersonic/constant/turbulenceProperties @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| | +| HiSA: High Speed Aerodynamic solver | +| Copyright (C) 2014-2017 Johan Heyns - CSIR, South Africa | +| Copyright (C) 2014-2017 Oliver Oxtoby - CSIR, South Africa | +| | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + RASModel dummy; + + turbulence on; + + printCoeffs on; +Prt 0.85; +} + + +// ************************************************************************* // diff --git a/Cone_Supersonic/paraview.foam b/Cone_Supersonic/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Cone_Supersonic/preProcessing.sh b/Cone_Supersonic/preProcessing.sh new file mode 100755 index 00000000..d39813d3 --- /dev/null +++ b/Cone_Supersonic/preProcessing.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Check if the OpenFOAM enviroments are loaded +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# generate mesh +echo "Generating mesh.." +blockMesh +mirrorMesh -overwrite +renumberMesh -overwrite +echo "Generating mesh.. Done!" + +# copy initial and boundary condition files +cp -r 0.orig 0 diff --git a/Cone_Supersonic/runScript.py b/Cone_Supersonic/runScript.py new file mode 100755 index 00000000..88e77f0e --- /dev/null +++ b/Cone_Supersonic/runScript.py @@ -0,0 +1,220 @@ +#!/usr/bin/env python +""" +DAFoam run script for a cone at supersonic speed +""" + +import os +import argparse +import numpy as np +import json +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SLSQP") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= + +# aero setup +U0 = 680.0 +p0 = 101325.0 +T0 = 300.0 +rho0 = p0 / 287.0 / T0 +A0 = 0.1 + +daOptions = { + "designSurfaces": ["cone"], + "solverName": "DAHisaFoam", + # "primalInitCondition": {"U": [U0, 0.0, 0.0], "p": p0, "T": T0}, + # "primalBC": { + # "U0": {"variable": "U", "patches": ["inlet", "outlet", "top_bot"], "value": [U0, 0.0, 0.0]}, + # "p0": {"variable": "p", "patches": ["inlet", "outlet", "top_bot"], "value": [p0]}, + # "T0": {"variable": "T", "patches": ["inlet", "outlet", "top_bot"], "value": [T0]}, + # }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["cone"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["cone"], + "directionMode": "fixedDirection", + "direction": [0.0, 1.0, 0.0], + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + }, + "adjEqnOption": { + "hisaUsePCFlux": 1, + "gmresRelTol": 1.0e-5, + "pcFillLevel": 1, + "jacMatReOrdering": "natural", + }, + "adjStateOrdering": "cell", + "normalizeStates": {"U": U0, "p": p0, "T": T0}, + "checkMeshThreshold": {"maxNonOrth": 70.0, "maxSkewness": 6.0, "maxAspectRatio": 5000.0}, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + }, +} + +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [ + [[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], + [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]], + [[2.0, 0.0, 0.0], [1.0, 0.0, 0.0]], + ], +} + + +class Top(Multipoint): + def setup(self): + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + ################################################################################ + # MPHY setup + ################################################################################ + + # ivc to keep the top level DVs + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # create the mesh and cruise scenario because we only have one analysis point + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component, we dont need a builder because we do it here. + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/FFD.xyz", type="ffd")) + + self.mphys_add_scenario("cruise", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + self.connect("mesh.x_aero0", "geometry.x_aero_in") + self.connect("geometry.x_aero0", "cruise.x_aero") + + def configure(self): + + # create geometric DV setup + points = self.mesh.mphys_get_surface_mesh() + + # add pointset + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # use the shape function to define shape variables for 2D airfoil + pts = self.geometry.DVGeo.getLocalIndex(0) + dir_y = np.array([0.0, 1.0, 0.0]) + shapes = [] + for i in range(1, pts.shape[0]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts[i, 0, 0]: dir_y, pts[i, 0, 1]: dir_y, pts[i, 2, 0]: -dir_y, pts[i, 2, 1]: -dir_y}) + self.geometry.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + + leList = [[1.0 + 1e-3, 0.0, 1e-3], [1.0 + 1e-3, 0.0, 0.1 - 1e-3]] + teList = [[2.0 - 1e-3, 0.0, 1e-3], [2.0 - 1e-3, 0.0, 0.1 - 1e-3]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.zeros(len(shapes))) + self.connect("shape", "geometry.shape") + + # define the design variables to the top level + self.add_design_var("shape", lower=-0.1, upper=0.1, scaler=10.0) + + # add constraints and the objective + self.add_objective("cruise.aero_post.CD", scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.2, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-2, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/Cone_Supersonic/system/blockMeshDict b/Cone_Supersonic/system/blockMeshDict new file mode 100755 index 00000000..9d45d925 --- /dev/null +++ b/Cone_Supersonic/system/blockMeshDict @@ -0,0 +1,104 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1.0; + +vertices +( + (0 0 0) + (1 0 0) + (1 1 0) + (0 1 0) + (0 0 0.1) + (1 0 0.1) + (1 1 0.1) + (0 1 0.1) + + (2 0.2 0.) + (2 1. 0.) + (2 1. 0.1) + (2 0.2 0.1) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (100 100 1) + simpleGrading (1 1 1) + + hex (1 8 9 2 5 11 10 6) (100 100 1) + simpleGrading (1 1 1) + +); + +edges +( +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (8 9 10 11) + ); + } + cone + { + type wall; + faces + ( + (1 8 11 5) + ); + } + top_bot + { + type patch; + faces + ( + (3 2 6 7) + (2 9 10 6) + ); + } + syms + { + type symmetry; + faces + ( + (0 1 2 3) + (1 8 9 2) + (4 5 6 7) + (5 11 10 6) + (0 1 5 4) + ); + } +); + +mergePatchPairs +( + +); + +// ************************************************************************* // diff --git a/Cone_Supersonic/system/controlDict b/Cone_Supersonic/system/controlDict new file mode 100755 index 00000000..db30303b --- /dev/null +++ b/Cone_Supersonic/system/controlDict @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +application hisa; +startFrom latestTime; +startTime 0; +stopAt endTime; +endTime 500; +deltaT 1; +writeControl timeStep; +writeInterval 500; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable false; +HiSAPrint 0; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/Cone_Supersonic/system/decomposeParDict b/Cone_Supersonic/system/decomposeParDict new file mode 100755 index 00000000..a378d83d --- /dev/null +++ b/Cone_Supersonic/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 8; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Cone_Supersonic/system/fvSchemes b/Cone_Supersonic/system/fvSchemes new file mode 100755 index 00000000..f39c0a30 --- /dev/null +++ b/Cone_Supersonic/system/fvSchemes @@ -0,0 +1,69 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| | +| HiSA: High Speed Aerodynamic solver | +| Copyright (C) 2014-2017 Johan Heyns - CSIR, South Africa | +| Copyright (C) 2014-2017 Oliver Oxtoby - CSIR, South Africa | +| | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +fluxScheme JST; // AUSMPlusUp; +jst_k2 0.5; +jst_k4 0.02; +sensorName pressure; +lowMachAusm false; + +ddtSchemes +{ + default bounded dualTime rPseudoDeltaT steadyState; +} + +gradSchemes +{ + default faceLeastSquares linear; + grad(nuTilda) Gauss linear; +} + +divSchemes +{ + default none; + div(tauMC) Gauss linear; + div(phi,nuTilda) bounded Gauss upwind; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; + laplacian(muEff,U) Gauss linear compact; + laplacian(alphaEff,e) Gauss linear compact; +} + +interpolate wVanLeer; +interpolationSchemes +{ + default linear; + reconstruct(rho) $interpolate; + reconstruct(U) $interpolate; + reconstruct(T) $interpolate; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/Cone_Supersonic/system/fvSolution b/Cone_Supersonic/system/fvSolution new file mode 100755 index 00000000..0b719912 --- /dev/null +++ b/Cone_Supersonic/system/fvSolution @@ -0,0 +1,74 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| | +| HiSA: High Speed Aerodynamic solver | +| Copyright (C) 2014-2017 Johan Heyns - CSIR, South Africa | +| Copyright (C) 2014-2017 Oliver Oxtoby - CSIR, South Africa | +| | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + nuTilda + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 0; + relTol 1e-1; + minIter 1; + } + + yPsi + { + solver GAMG; + smoother GaussSeidel; + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + tolerance 0; + relTol 0; + } +} + +relaxationFactors +{ + equations + { + nuTilda 0.5; + yWall 0.7; + } +} + +flowSolver +{ + solver GMRES; + GMRES + { + inviscidJacobian LaxFriedrich; + viscousJacobian laplacian; + preconditioner LUSGS; + + maxIter 20; + nKrylov 8; + solverTolRel 1e-1 (1e-1 1e-1 1e-1) 1e-1; + } +} + +pseudoTime +{ + pseudoTol 1e-10 (1e-10 1e-10 1e-10) 1e-10; + pseudoCoNum 1.0; + pseudoCoNumMax 5.0; + localTimestepping true; +} + +// ************************************************************************* // diff --git a/Cone_Supersonic/system/mirrorMeshDict b/Cone_Supersonic/system/mirrorMeshDict new file mode 100755 index 00000000..bd88ac8e --- /dev/null +++ b/Cone_Supersonic/system/mirrorMeshDict @@ -0,0 +1,27 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object mirrorMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +planeType pointAndNormal; + +pointAndNormalDict +{ + point (0 0 0); + normal (0 1 0); +} + +planeTolerance 1e-6; + +// ************************************************************************* // diff --git a/Cylinder/0_orig/U b/Cylinder/0_orig/U new file mode 100755 index 00000000..54e4c161 --- /dev/null +++ b/Cylinder/0_orig/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (10 0 0); + +boundaryField +{ + cylinder + { + type fixedValue; + value uniform (0 0 0); + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/Cylinder/0_orig/epsilon b/Cylinder/0_orig/epsilon new file mode 100755 index 00000000..e073f506 --- /dev/null +++ b/Cylinder/0_orig/epsilon @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.14; + +boundaryField +{ + cylinder + { + type epsilonWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/Cylinder/0_orig/k b/Cylinder/0_orig/k new file mode 100755 index 00000000..1bcc4781 --- /dev/null +++ b/Cylinder/0_orig/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + cylinder + { + type kqRWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + + +// ************************************************************************* // diff --git a/Cylinder/0_orig/nuTilda b/Cylinder/0_orig/nuTilda new file mode 100755 index 00000000..6c1c6a58 --- /dev/null +++ b/Cylinder/0_orig/nuTilda @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5e-05; + +boundaryField +{ + cylinder + { + type fixedValue; + value uniform 0.0; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/Cylinder/0_orig/nut b/Cylinder/0_orig/nut new file mode 100755 index 00000000..112f5a58 --- /dev/null +++ b/Cylinder/0_orig/nut @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5E-5; + +boundaryField +{ + cylinder + { + type nutUSpaldingWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/Cylinder/0_orig/omega b/Cylinder/0_orig/omega new file mode 100755 index 00000000..f8439ff9 --- /dev/null +++ b/Cylinder/0_orig/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 100; + +boundaryField +{ + cylinder + { + type omegaWallFunction; + value $internalField; + blended true; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + + +// ************************************************************************* // diff --git a/Cylinder/0_orig/p b/Cylinder/0_orig/p new file mode 100755 index 00000000..850b811d --- /dev/null +++ b/Cylinder/0_orig/p @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + cylinder + { + type zeroGradient; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type outletInlet; + outletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/Cylinder/Allclean.sh b/Cylinder/Allclean.sh new file mode 100755 index 00000000..6e64b065 --- /dev/null +++ b/Cylinder/Allclean.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf 0 + rm -rf postProcessing + rm -rf constant/extendedFeatureEdgeMesh + rm -rf constant/triSurface + rm -rf constant/polyMesh/ + rm -rf *.bin *.info *.dat *.xyz *.stl + rm -rf processor* 0.0000* + rm -rf {1..9}* + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/Cylinder/FFD/FFD.xyz b/Cylinder/FFD/FFD.xyz new file mode 100644 index 00000000..6f82ff88 --- /dev/null +++ b/Cylinder/FFD/FFD.xyz @@ -0,0 +1,5 @@ +1 +2 4 2 +-0.510000 0.510000 -0.510000 0.510000 -0.510000 0.510000 -0.510000 0.510000 -0.510000 0.510000 -0.510000 0.510000 -0.510000 0.510000 -0.510000 0.510000 +-0.510000 -0.510000 -0.170000 -0.170000 0.170000 0.170000 0.510000 0.510000 -0.510000 -0.510000 -0.170000 -0.170000 0.170000 0.170000 0.510000 0.510000 +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 \ No newline at end of file diff --git a/Cylinder/FFD/genFFD.py b/Cylinder/FFD/genFFD.py new file mode 100755 index 00000000..06386668 --- /dev/null +++ b/Cylinder/FFD/genFFD.py @@ -0,0 +1,99 @@ +import numpy as np +import sys + +def writeFFDFile(fileName,nBlocks,nx,ny,nz,points): + ''' + Take in a set of points and write the plot 3dFile + ''' + + f = open(fileName,'w') + + f.write('%d\n'%nBlocks) + for i in range(nBlocks): + f.write('%d %d %d '%(nx[i],ny[i],nz[i])) + # end + f.write('\n') + for block in range(nBlocks): + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,0]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,1]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,2]) + # end + # end + # end + # end + f.close() + return + +def returnBlockPoints(corners,nx,ny,nz): + ''' + corners needs to be 8 x 3 + ''' + points = np.zeros([nx,ny,nz,3]) + + # points 1 - 4 are the iMin face + # points 5 - 8 are the iMax face + + for idim in range(3): + edge1 = np.linspace(corners[0][idim],corners[4][idim],nx) + edge2 = np.linspace(corners[1][idim],corners[5][idim],nx) + edge3 = np.linspace(corners[2][idim],corners[6][idim],nx) + edge4 = np.linspace(corners[3][idim],corners[7][idim],nx) + + for i in range(nx): + edge5 = np.linspace(edge1[i],edge3[i],ny) + edge6 = np.linspace(edge2[i],edge4[i],ny) + for j in range(ny): + edge7 = np.linspace(edge5[j],edge6[j],nz) + points[i,j,:,idim] = edge7 + # end + # end + # end + + return points + +################ FFD ############## +nBlocks = 1 + +nx = [2] +ny = [4] +nz = [2] + +corners = np.zeros([nBlocks,8,3]) + +corners[0,0,:] = [-0.510,-.5100,0.0] +corners[0,1,:] = [-0.510,-0.5100,0.1] +corners[0,2,:] = [-0.510,0.5100,0.0] +corners[0,3,:] = [-0.510,0.5100,0.1] +corners[0,4,:] = [ 0.51,-.51,0.0] +corners[0,5,:] = [ 0.51,-.51,0.10] +corners[0,6,:] = [ 0.51,0.51,0.0] +corners[0,7,:] = [ 0.51,0.51,0.1] + + +points = [] +for block in range(nBlocks): + points.append(returnBlockPoints(corners[block],nx[block],ny[block],nz[block])) + +#print points +fileName = 'FFD.xyz' +writeFFDFile(fileName,nBlocks,nx,ny,nz,points) + diff --git a/Cylinder/constant/transportProperties b/Cylinder/constant/transportProperties new file mode 100755 index 00000000..ea61c868 --- /dev/null +++ b/Cylinder/constant/transportProperties @@ -0,0 +1,23 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1.0e-5; +Pr 0.7; +Prt 1.0; +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Cylinder/constant/turbulenceProperties b/Cylinder/constant/turbulenceProperties new file mode 100755 index 00000000..e6152958 --- /dev/null +++ b/Cylinder/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmaras; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Cylinder/genMesh.py b/Cylinder/genMesh.py new file mode 100755 index 00000000..203955af --- /dev/null +++ b/Cylinder/genMesh.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python +""" +This script reads a coarse airfoil profile, refine the profile using spline function, +and outputs it as surfaceMesh.xyz. Then it generate a 3D volume mesh with nSpan layers +in the z direction using pyHyp, available at https://github.com/mdolab/pyhyp +Note: the airfoil data should be seperated into PS and SS surfaces, they should start from the +LE and ends at TE. We use blunt TE so truncate the PS and SS data at about 99.8% of the chord. +""" + +from pyhyp import pyHyp +import numpy as np +from pyspline import * + +R = 0.5 +zSpan = 0.1 +nPoints = 50 +NpExtrude = 50 +yWall = 1e-3 +marchDist = 30.0 + +x = [] +y = [] +for i in range(nPoints): + theta = 2 * np.pi / nPoints * i + x.append(R * np.cos(theta)) + y.append(R * np.sin(theta)) + +x.append(R * np.cos(0)) +y.append(R * np.sin(0)) + +# Write the plot3d input file: +f = open("surfaceMesh.xyz", "w") +f.write("1\n") +f.write("%d %d %d\n" % (nPoints + 1, 2, 1)) +for iDim in range(3): + for z in [0, zSpan]: + for i in range(nPoints + 1): + if iDim == 0: + f.write("%20.16f\n" % x[i]) + elif iDim == 1: + f.write("%20.16f\n" % y[i]) + else: + f.write("%20.16f\n" % z) +f.close() + +options = { + # --------------------------- + # Input Parameters + # --------------------------- + "inputFile": "surfaceMesh.xyz", + "unattachedEdgesAreSymmetry": False, + "outerFaceBC": "farfield", + "autoConnect": True, + "BC": {1: {"jLow": "zSymm", "jHigh": "zSymm"}}, + "families": "wall", + # --------------------------- + # Grid Parameters + # --------------------------- + "N": NpExtrude, + "s0": yWall, + "marchDist": marchDist, + # --------------------------- + # Pseudo Grid Parameters + # --------------------------- + "ps0": -1.0, + "pGridRatio": -1.0, + "cMax": 1.0, + # --------------------------- + # Smoothing parameters + # --------------------------- + "epsE": 2.0, + "epsI": 4.0, + "theta": 2.0, + "volCoef": 0.20, + "volBlend": 0.0005, + "volSmoothIter": 20, +} + + +hyp = pyHyp(options=options) +hyp.run() +hyp.writePlot3D("volumeMesh.xyz") diff --git a/Cylinder/paraview.foam b/Cylinder/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Cylinder/plotTimeSeris.py b/Cylinder/plotTimeSeris.py new file mode 100644 index 00000000..73da97c1 --- /dev/null +++ b/Cylinder/plotTimeSeris.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python + +import numpy as np +import matplotlib.mlab as mlab +import matplotlib.pyplot as plt +import sys + +fileName=sys.argv[1] + +f=open(fileName, "r") +lines=f.readlines() +f.close() + +CD=[] +CL=[] +for line in lines: + if "CD-part1-force:" in line: + cols=line.split() + CD.append(float(cols[1])) + + if "CL-part1-force:" in line: + cols=line.split() + CL.append(float(cols[1])) + +fig, ax = plt.subplots(figsize=(20, 4), nrows=1) +plt.plot(CL[:]) +#plt.xlim([0, 3]) +#plt.ylim([-0.5, 0.5]) +plt.xlabel("Iters") +plt.ylabel("$C_L$") +plt.savefig("TimeSeriesCL.pdf", bbox_inches="tight") # save the figure to file +plt.close() # close the figure + +fig, ax = plt.subplots(figsize=(20, 4), nrows=1) +plt.plot(CD[:]) +#plt.xlim([0, 3]) +#plt.ylim([0.15, 0.3]) +plt.xlabel("Iters") +plt.ylabel("$C_D$") +plt.savefig("TimeSeriesCD.pdf", bbox_inches="tight") # save the figure to file +plt.close() # close the figure diff --git a/Cylinder/preProcessing.sh b/Cylinder/preProcessing.sh new file mode 100755 index 00000000..0caf1439 --- /dev/null +++ b/Cylinder/preProcessing.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# Check if the OpenFOAM enviroments are loaded +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# generate mesh +echo "Generating mesh.." +python genMesh.py &> logMeshGeneration.txt +plot3dToFoam -noBlank volumeMesh.xyz >> logMeshGeneration.txt +autoPatch 30 -overwrite >> logMeshGeneration.txt +createPatch -overwrite >> logMeshGeneration.txt +renumberMesh -overwrite >> logMeshGeneration.txt +echo "Generating mesh.. Done!" + +# copy initial and boundary condition files +cp -r 0_orig 0 + +# run simpleFoam +cp -r system/controlDict_simple system/controlDict +cp -r system/fvSchemes_simple system/fvSchemes +cp -r system/fvSolution_simple system/fvSolution +potentialFoam +mpirun -np 4 python runPrimalSimple.py + +# reconstruct the simpleFoam fields +reconstructPar +rm -rf processor* +rm -rf 0 +mv 500 0 +rm -rf 0/uniform 0/polyMesh + +# run the pimpleFoam primal to get equilibrium initial fields +cp -r system/controlDict_pimple_long system/controlDict +cp -r system/fvSchemes_pimple system/fvSchemes +cp -r system/fvSolution_pimple system/fvSolution +mpirun -np 4 python runScript.py -task=run_model +reconstructPar -latestTime +rm -rf processor* +rm -rf 0 +mv 10 0 +rm -rf 0/uniform 0/polyMesh +cp -r system/controlDict_pimple system/controlDict diff --git a/Cylinder/runPrimalSimple.py b/Cylinder/runPrimalSimple.py new file mode 100755 index 00000000..aab58862 --- /dev/null +++ b/Cylinder/runPrimalSimple.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +""" +DAFoam run script for the NACA0012 airfoil at low-speed (unsteady) +""" + +# ============================================================================= +# Imports +# ============================================================================= +from mpi4py import MPI +from dafoam import PYDAFOAM + +# ============================================================================= +# Input Parameters +# ============================================================================= +gcomm = MPI.COMM_WORLD + +U0 = 10.0 + +# Set the parameters for optimization +daOptions = { + "designSurfaces": ["cylinder"], + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-16, + "primalMinResTolDiff": 1.0e16, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, + "useWallFunction": False, + }, + "checkMeshThreshold": {"maxAspectRatio": 5000.0}, +} + +DASolver = PYDAFOAM(options=daOptions, comm=gcomm) +DASolver() diff --git a/Cylinder/runScript.py b/Cylinder/runScript.py new file mode 100755 index 00000000..4e60c86b --- /dev/null +++ b/Cylinder/runScript.py @@ -0,0 +1,235 @@ +#!/usr/bin/env python +""" +DAFoam run script for the NACA0012 airfoil at low-speed (unsteady) +""" + +# ============================================================================= +# Imports +# ============================================================================= +import argparse +import os +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys.mphys_dafoam import DAFoamBuilderUnsteady +from pygeo.mphys import OM_DVGEOCOMP + +# ============================================================================= +# Input Parameters +# ============================================================================= +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# Define the global parameters here +U0 = 10.0 +p0 = 0.0 +nuTilda0 = 4.5e-5 +A0 = 0.1 + +# Set the parameters for optimization +daOptions = { + "designSurfaces": ["cylinder"], + "solverName": "DAPimpleFoam", + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, + "useWallFunction": True, + }, + "unsteadyAdjoint": { + "mode": "timeAccurate", + "PCMatPrecomputeInterval": 100, + "PCMatUpdateInterval": 1, + "reduceIO": True, + "zeroInitFields": False, + }, + "printIntervalUnsteady": 1, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["cylinder"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0 / (0.5 * U0 * U0 * A0), + "timeOp": "average", + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["cylinder"], + "directionMode": "fixedDirection", + "direction": [0.0, 1.0, 0.0], + "scale": 1.0 / (0.5 * U0 * U0 * A0), + "timeOp": "average", + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": { + "gmresRelTol": 1.0e-100, + "gmresAbsTol": 1.0e-6, + "gmresMaxIters": 100, + "pcFillLevel": 1, + "jacMatReOrdering": "natural", + "useNonZeroInitGuess": False, + "useMGSO": True, + }, + "normalizeStates": { + "U": U0, + "p": U0 * U0 / 2.0, + "nuTilda": nuTilda0 * 10.0, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + }, + "checkMeshThreshold": {"maxAspectRatio": 5000.0}, + "unsteadyCompOutput": { + "obj": ["CD"], + }, +} + +# mesh warping parameters, users need to manually specify the symmetry plane and their normals +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/FFD.xyz", type="ffd"), promotes=["*"]) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.add_subsystem( + "scenario1", + DAFoamBuilderUnsteady(solver_options=daOptions, mesh_options=meshOptions), + promotes=["*"], + ) + + self.connect("x_aero0", "x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.scenario1.get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.scenario1.DASolver.getTriangulatedMeshSurface() + self.geometry.nom_setConstraintSurface(tri_points) + + # use the shape function to define shape variables for 2D + pts = self.geometry.DVGeo.getLocalIndex(0) + dir_x = np.array([1.0, 0.0, 0.0]) + shapes = [] + for j in [0, 1]: + for i in [0, 1]: + # k=0 and k=1 move together to ensure symmetry in z direction + # j and 3 - j move together direction to ensure symmetry wrt y=0 + shapes.append({pts[i, j, 0]: dir_x, pts[i, j, 1]: dir_x, pts[i, 3 - j, 0]: dir_x, pts[i, 3 - j, 1]: dir_x}) + self.geometry.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + + # setup the volume and thickness constraints + leList = [[-0.5 + 1e-4, 0.0, 1e-4], [-0.5 + 1e-4, 0.0, 0.1 - 1e-4]] + teList = [[0.5 - 1e-4 - 1e-4, 0.0, 1e-4], [0.5 - 1e-4, 0.0, 0.1 - 1e-4]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * len(shapes))) + self.dvs.add_output("x_aero_in", val=points, distributed=True) + + # define the design variables + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + + # add objective and constraints to the top level + self.add_objective("obj", scaler=1.0) + self.add_constraint("thickcon", lower=0.3, upper=3.0, scaler=1.0) + self.add_constraint("volcon", upper=1.0, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-6, + "Major optimality tolerance": 1.0e-6, + "Minor feasibility tolerance": 1.0e-6, + "Verify level": -1, + "Function precision": 1.0e-6, + "Major iterations limit": 50, + "Linesearch tolerance": 0.999, + "Hessian updates": 50, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 50, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/Cylinder/system/blockMeshDict b/Cylinder/system/blockMeshDict new file mode 100755 index 00000000..1e001064 --- /dev/null +++ b/Cylinder/system/blockMeshDict @@ -0,0 +1,165 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| o | | +| o o | HELYX-OS | +| o O o | Version: v2.3.1 | +| o o | Web: http://www.engys.com | +| o | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} + +convertToMeters 1; + +MeshCross 10; +MeshInout 14; +MeshBend 8; + +ratio1 0.1; +ratio2 10.0; + +vertices +( + ( 0 0.0195 0) + ( 0 0.0945 0) + ( 0 0.0195 0.075) + ( 0 0.0945 0.075) + + ( 0.75 0.0195 0) + ( 0.75 0.0945 0) + ( 0.75 0.0195 0.075) + ( 0.75 0.0945 0.075) + + ( 0 -0.0195 0) + ( 0 -0.0945 0) + ( 0 -0.0195 0.075) + ( 0 -0.0945 0.075) + + ( 0.75 -0.0195 0) + ( 0.75 -0.0945 0) + ( 0.75 -0.0195 0.075) + ( 0.75 -0.0945 0.075) + + ( 0.7695 0 0) + ( 0.7695 0 0.075) + ( 0.8445 0 0) + ( 0.8445 0 0.075) + +); + +edges +( + arc 4 16 ( 0.76378858223313767673 0.01378858223313767673 0) + arc 6 17 ( 0.76378858223313767673 0.01378858223313767673 0.075) + + arc 12 16 ( 0.76378858223313767673 -0.01378858223313767673 0) + arc 14 17 ( 0.76378858223313767673 -0.01378858223313767673 0.075) + + arc 5 18 ( 0.81682159082212874106 0.06682159082212874106 0) + arc 7 19 ( 0.81682159082212874106 0.06682159082212874106 0.075) + + arc 13 18 ( 0.81682159082212874106 -0.06682159082212874106 0) + arc 15 19 ( 0.81682159082212874106 -0.06682159082212874106 0.075) +); + +blocks +( + + hex (0 4 5 1 2 6 7 3) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (4 16 18 5 6 17 19 7) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (13 18 16 12 15 19 17 14) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + hex (9 13 12 8 11 15 14 10) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + +); + + +patches +( + + patch inlet + ( + (0 1 3 2) + ) + patch outlet + ( + (9 8 10 11) + ) + wall ubend + ( + (0 4 5 1) + (0 4 6 2) + (1 5 7 3) + (2 3 7 6) + (4 16 18 5) + (4 16 17 6) + (6 17 19 7) + (5 18 19 7) + (13 18 16 12) + (13 15 19 18) + (12 16 17 14) + (14 17 19 15) + (9 13 12 8) + (9 11 15 13) + (8 12 14 10) + (11 15 14 10) + + ) +); + +mergePatchPairs +( +); diff --git a/Cylinder/system/controlDict b/Cylinder/system/controlDict new file mode 100755 index 00000000..537ec9d5 --- /dev/null +++ b/Cylinder/system/controlDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 3.0; +deltaT 1e-2; +writeControl timeStep; +writeInterval 1; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/Cylinder/system/controlDict_pimple b/Cylinder/system/controlDict_pimple new file mode 100755 index 00000000..537ec9d5 --- /dev/null +++ b/Cylinder/system/controlDict_pimple @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 3.0; +deltaT 1e-2; +writeControl timeStep; +writeInterval 1; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/Cylinder/system/controlDict_pimple_long b/Cylinder/system/controlDict_pimple_long new file mode 100755 index 00000000..d0a3ab22 --- /dev/null +++ b/Cylinder/system/controlDict_pimple_long @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 10; +deltaT 5e-2; +writeControl timeStep; +writeInterval 100; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/Cylinder/system/controlDict_simple b/Cylinder/system/controlDict_simple new file mode 100755 index 00000000..ddc90c68 --- /dev/null +++ b/Cylinder/system/controlDict_simple @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 500; +deltaT 1; +writeControl adjustableRunTime; +writeInterval 500; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} \ No newline at end of file diff --git a/Cylinder/system/createPatchDict b/Cylinder/system/createPatchDict new file mode 100755 index 00000000..b7a6ed9c --- /dev/null +++ b/Cylinder/system/createPatchDict @@ -0,0 +1,82 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +pointSync false; + +// Patches to create. +patches +( + { + // Name of new patch + name symmetry1; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto0); + } + { + // Name of new patch + name symmetry2; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto1); + } + + { + // Name of new patch + name cylinder; + + // Dictionary to construct new patch from + patchInfo + { + type wall; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto2); + } + + { + // Name of new patch + name inout; + + // Dictionary to construct new patch from + patchInfo + { + type patch; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto3); + } +); + +// ************************************************************************* // diff --git a/Cylinder/system/decomposeParDict b/Cylinder/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/Cylinder/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Cylinder/system/fvSchemes b/Cylinder/system/fvSchemes new file mode 100755 index 00000000..c614f1c8 --- /dev/null +++ b/Cylinder/system/fvSchemes @@ -0,0 +1,58 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default backward; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) Gauss linearUpwindV grad(U); + div(phi,nuTilda) Gauss upwind; + div(phi,k) Gauss upwind; + div(phi,omega) Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Cylinder/system/fvSchemes_pimple b/Cylinder/system/fvSchemes_pimple new file mode 100755 index 00000000..c614f1c8 --- /dev/null +++ b/Cylinder/system/fvSchemes_pimple @@ -0,0 +1,58 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default backward; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) Gauss linearUpwindV grad(U); + div(phi,nuTilda) Gauss upwind; + div(phi,k) Gauss upwind; + div(phi,omega) Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Cylinder/system/fvSchemes_simple b/Cylinder/system/fvSchemes_simple new file mode 100755 index 00000000..65c9021a --- /dev/null +++ b/Cylinder/system/fvSchemes_simple @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Cylinder/system/fvSolution b/Cylinder/system/fvSolution new file mode 100755 index 00000000..31b99029 --- /dev/null +++ b/Cylinder/system/fvSolution @@ -0,0 +1,84 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.001; + smoother GaussSeidel; + maxIter 500; + minIter 1; + } + + "(p|p_rgh|G)Final" + { + $p; + relTol 0; + tolerance 1e-8; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 1e-8; + relTol 0; + maxIter 50; + minIter 1; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)Final" + { + $U; + //relTol 0; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + +PIMPLE +{ + nNonOrthogonalCorrectors 0; + nCorrectors 2; + nOuterCorrectors 10; + + residualControl + { + "(U|T|e|h|nuTilda|k|omega|epsilon|p|p_rgh|G)" + { + tolerance 1e-8; + relTol 1e-8; + } + } +} + + + +// ************************************************************************* // diff --git a/Cylinder/system/fvSolution_pimple b/Cylinder/system/fvSolution_pimple new file mode 100755 index 00000000..31b99029 --- /dev/null +++ b/Cylinder/system/fvSolution_pimple @@ -0,0 +1,84 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.001; + smoother GaussSeidel; + maxIter 500; + minIter 1; + } + + "(p|p_rgh|G)Final" + { + $p; + relTol 0; + tolerance 1e-8; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 1e-8; + relTol 0; + maxIter 50; + minIter 1; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)Final" + { + $U; + //relTol 0; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + +PIMPLE +{ + nNonOrthogonalCorrectors 0; + nCorrectors 2; + nOuterCorrectors 10; + + residualControl + { + "(U|T|e|h|nuTilda|k|omega|epsilon|p|p_rgh|G)" + { + tolerance 1e-8; + relTol 1e-8; + } + } +} + + + +// ************************************************************************* // diff --git a/Cylinder/system/fvSolution_simple b/Cylinder/system/fvSolution_simple new file mode 100755 index 00000000..d41296d7 --- /dev/null +++ b/Cylinder/system/fvSolution_simple @@ -0,0 +1,70 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +SIMPLE +{ + consistent false; + nNonOrthogonalCorrectors 0; +} + +solvers +{ + "(p|p_rgh|G)" + { + + solver GAMG; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + maxIter 20; + } + Phi + { + $p; + relTol 0; + tolerance 1e-6; + maxIter 20; + } + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + nSweeps 1; + maxIter 20; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh)" 0.30; + } + equations + { + "(U|T|e|h|nuTilda|k|epsilon|omega)" 0.70; + } +} + +potentialFlow +{ + nNonOrthogonalCorrectors 20; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/DPW4_Aircraft/runScript.py b/DPW4_Aircraft/runScript.py index 8352c32a..4e5d426a 100755 --- a/DPW4_Aircraft/runScript.py +++ b/DPW4_Aircraft/runScript.py @@ -1,32 +1,26 @@ #!/usr/bin/env python -""" -DAFoam run script for the DPW4 wing-body-tail case (trimmed) -""" - -# ============================================================================= -# Imports -# ============================================================================= import os import argparse +import numpy as np from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT -import numpy as np +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SLSQP") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() # ============================================================================= # Input Parameters # ============================================================================= -parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="snopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") -args = parser.parse_args() -gcomm = MPI.COMM_WORLD LScale = 1.0 # scale such that the L0=1 @@ -41,14 +35,13 @@ CL_target = 0.5 CMY_target = 0.0 -alpha0 = 2.5027 +aoa0 = 2.5027 # Set the parameters for optimization daOptions = { "designSurfaces": ["wing", "tail", "body"], "solverName": "DARhoSimpleCFoam", - "primalMinResTol": 1.0e-9, - "useAD": {"mode": "reverse"}, + "primalMinResTol": 1.0e-8, "primalBC": { "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, @@ -56,90 +49,229 @@ "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, "useWallFunction": True, }, - # variable bounds for compressible flow conditions - "primalVarBounds": { - "UMax": 1000.0, - "UMin": -1000.0, - "pMax": 500000.0, - "pMin": 20000.0, - "eMax": 500000.0, - "eMin": 100000.0, - "rhoMax": 5.0, - "rhoMin": 0.2, - }, - "objFunc": { + "function": { "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing", "body", "tail"], - "directionMode": "parallelToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["wing", "body", "tail"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), }, "CL": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing", "body", "tail"], - "directionMode": "normalToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["wing", "body", "tail"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), }, "CMY": { - "part1": { - "type": "moment", - "source": "patchToFace", - "patches": ["wing", "body", "tail"], - "axis": [0.0, 1.0, 0.0], - "center": CofR, - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0 * L0), - "addToAdjoint": True, - } + "type": "moment", + "source": "patchToFace", + "patches": ["wing", "body", "tail"], + "axis": [0.0, 1.0, 0.0], + "center": CofR, + "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0 * L0), }, }, - "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, + "adjStateOrdering": "cell", + "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "natural", "gmresMaxIters": 2000, "gmresRestart": 2000}, # transonic preconditioner to speed up the adjoint convergence "transonicPCOption": 1, "normalizeStates": {"U": U0, "p": p0, "nuTilda": nuTilda0 * 10.0, "phi": 1.0, "T": T0}, - "adjPartDerivFDStep": {"State": 1e-6, "FFD": 1e-3}, "adjPCLag": 1, "checkMeshThreshold": {"maxAspectRatio": 2000.0, "maxNonOrth": 75.0, "maxSkewness": 8.0}, - "designVar": {}, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "z", + "components": ["solver", "function"], + }, + }, } -# mesh warping parameters, users need to manually specify the symmetry plane +# Mesh deformation setup meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", + "fileType": "OpenFOAM", "useRotations": False, # point and normal for the symmetry plane "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 1.0, 0.0]]], } +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/dpw4FFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # Create reference axis for the twist variable + coef = self.geometry.DVGeo.FFD.vols[0].coef.copy() + # First determine the reference chord lengths: + nTwist = coef.shape[1] + sweep_ref = np.zeros((nTwist + 1, 3)) + for j in range(nTwist): + max_x = np.max(coef[:, j, :, 0]) + min_x = np.min(coef[:, j, :, 0]) + sweep_ref[j + 1, 0] = min_x + 0.25 * (max_x - min_x) + sweep_ref[j + 1, 1] = np.average(coef[:, j, :, 1]) + sweep_ref[j + 1, 2] = np.average(coef[:, j, :, 2]) + + # Now add on the first point which is just the second one, projected + # onto the sym plane + sweep_ref[0, :] = sweep_ref[1, :].copy() + sweep_ref[0, 1] = 0.0 + + # Create the actual reference axis + c1 = Curve(X=sweep_ref, k=2) + self.geometry.nom_addRefAxis(name="wing", curve=c1, volumes=[0, 5]) + + # Now the tail reference axis + x = np.array([2365.0, 2365.0]) * 0.0254 + y = np.array([0, 840 / 2.0]) * 0.0254 + z = np.array([255.0, 255.0]) * 0.0254 + c2 = Curve(x=x, y=y, z=z, k=2) + self.geometry.nom_addRefAxis(name="tail", curve=c2, volumes=[25]) + + # Set up global design variables. We dont change the root twist + def wingTwist(val, geo): + for i in range(nTwist): + geo.rot_y["wing"].coef[i + 1] = -val[i] + + # Also set the twist of the root to the SOB twist + geo.rot_y["wing"].coef[0] = -val[0] + + def tailTwist(val, geo): + # Set one twist angle for the tail + geo.rot_y["tail"].coef[:] = val[0] + + # add twist variable + self.geometry.nom_addGlobalDV(dvName="wingTwist", value=np.array([0] * nTwist), func=wingTwist) + # add twist variable + self.geometry.nom_addGlobalDV(dvName="tailTwist", value=np.array([0]), func=tailTwist) + + # select the FFD points to move + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = pts[:, :, :].flatten() + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shape", pointSelect=PS, axis="z") + + # setup the volume and thickness constraints + # (flattened)LE Root, break and tip. These are adifferent from above + leRoot = np.array([25.22 * LScale, 3.20 * LScale, 0]) + leBreak = np.array([31.1358 * LScale, 10.8712 * LScale, 0.0]) + leTip = np.array([45.2307 * LScale, 29.38 * LScale, 0.0]) + rootChord = 11.83165 * LScale + breakChord = 7.25 * LScale + tipChord = 2.727 * LScale + + coe1 = 0.2 # in production run where the mesh is refined, set coe1=0.01 + coe2 = 1.0 - coe1 + xaxis = np.array([1.0, 0, 0]) + leList = [leRoot + coe1 * rootChord * xaxis, leBreak + coe1 * breakChord * xaxis, leTip + coe1 * tipChord * xaxis] + teList = [leRoot + coe2 * rootChord * xaxis, leBreak + coe2 * breakChord * xaxis, leTip + coe2 * tipChord * xaxis] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=25, nChord=30) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=25, nChord=30) + # add the LE/TE constraints + self.geometry.nom_add_LETEConstraint("lecon", volID=0, faceID="iLow") + self.geometry.nom_add_LETEConstraint("tecon", volID=0, faceID="iHigh") + + # add the design variables to the dvs component's output + self.dvs.add_output("wingTwist", val=np.array([0] * nTwist)) + self.dvs.add_output("tailTwist", val=np.array([0])) + self.dvs.add_output("shape", val=np.array([0] * nShapes)) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("wingTwist", "geometry.wingTwist") + self.connect("tailTwist", "geometry.tailTwist") + self.connect("shape", "geometry.shape") + self.connect("patchV", "scenario1.patchV") + + # define the design variables + self.add_design_var("wingTwist", lower=-10.0, upper=10.0, scaler=0.1) + self.add_design_var("tailTwist", lower=-10.0, upper=10.0, scaler=0.1) + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("scenario1.aero_post.CMY", equals=CMY_target, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.tecon", equals=0.0, scaler=1.0, linear=True) + self.add_constraint("geometry.lecon", equals=0.0, scaler=1.0, linear=True) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer # options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, + "Function precision": 1.0e-5, "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", "Summary file": "opt_SNOPT_summary.txt", } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", "mu_strategy": "adaptive", @@ -148,199 +280,39 @@ "alpha_for_y": "full", "recalc_y": "yes", } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } else: - print("opt arg not valid!") - exit(0) - - -# ================================================================================================= -# DVGeo -# ================================================================================================= -# setup FFD -DVGeo = DVGeometry("./FFD/dpw4FFD.xyz") -# We will use the FFD coordinates to create the reference axis -# automatically, this will ensure everything lines up exactly as we -# want. - -# First extract the coefficients of the FFD that corresponds to the -# wing. This happens to be vol zero: the 'i' direction is 'x' -# (streamwise), the 'j' direction is out the wing and the 'k' -# direction is 'up' -coef = DVGeo.FFD.vols[0].coef.copy() - -# First determine the reference chord lengths: -nTwist = coef.shape[1] -sweep_ref = np.zeros((nTwist + 1, 3)) -for j in range(nTwist): - max_x = np.max(coef[:, j, :, 0]) - min_x = np.min(coef[:, j, :, 0]) - sweep_ref[j + 1, 0] = min_x + 0.25 * (max_x - min_x) - sweep_ref[j + 1, 1] = np.average(coef[:, j, :, 1]) - sweep_ref[j + 1, 2] = np.average(coef[:, j, :, 2]) - -# Now add on the first point which is just the second one, projected -# onto the sym plane -sweep_ref[0, :] = sweep_ref[1, :].copy() -sweep_ref[0, 1] = 0.0 - -# Create the actual reference axis -c1 = Curve(X=sweep_ref, k=2) -DVGeo.addRefAxis("wing", c1, volumes=[0, 5]) - -# Now the tail reference axis -x = np.array([2365.0, 2365.0]) * 0.0254 -y = np.array([0, 840 / 2.0]) * 0.0254 -z = np.array([255.0, 255.0]) * 0.0254 -c2 = Curve(x=x, y=y, z=z, k=2) -DVGeo.addRefAxis("tail", c2, volumes=[25]) - - -def twist(val, geo): - # Set all the twist values - for i in range(nTwist): - geo.rot_y["wing"].coef[i + 1] = val[i] - - # Also set the twist of the root to the SOB twist - geo.rot_y["wing"].coef[0] = val[0] - - -def tailTwist(val, geo): - # Set one twist angle for the tail - geo.rot_y["tail"].coef[:] = val[0] - - -def alpha(val, geo): - aoa = val[0] * np.pi / 180.0 - inletU = [float(U0 * np.cos(aoa)), 0.0, float(U0 * np.sin(aoa))] - DASolver.setOption("primalBC", {"U0": {"variable": "U", "patches": ["inout"], "value": inletU}}) - DASolver.updateDAOption() - - -# FFD shape -pts = DVGeo.getLocalIndex(0) -indexList = pts[:, :, :].flatten() # select the top layer FFD starts with i=1 -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal("shapez", lower=-1.0, upper=1.0, axis="z", scale=10.0, pointSelect=PS) -daOptions["designVar"]["shapez"] = {"designVarType": "FFD"} -# twist -lower = -10.0 * np.ones(nTwist) -upper = 10.0 * np.ones(nTwist) -lower[0] = 0.0 # root twist does not change -upper[0] = 0.0 -DVGeo.addGeoDVGlobal("twist", 0 * np.zeros(nTwist), twist, lower=lower, upper=upper, scale=0.1) -daOptions["designVar"]["twist"] = {"designVarType": "FFD"} -DVGeo.addGeoDVGlobal("tail", 0 * np.zeros(1), tailTwist, lower=-10, upper=10, scale=0.1) -daOptions["designVar"]["tail"] = {"designVarType": "FFD"} -# AOA -DVGeo.addGeoDVGlobal("alpha", alpha0, alpha, lower=0, upper=10.0, scale=1.0) -daOptions["designVar"]["alpha"] = {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "z"} - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -# Le/Te constraints -DVCon.addLeTeConstraints(0, "iHigh") -DVCon.addLeTeConstraints(0, "iLow") - -# (flattened)LE Root, break and tip. These are adifferent from above -leRoot = np.array([25.22 * LScale, 3.20 * LScale, 0]) -leBreak = np.array([31.1358 * LScale, 10.8712 * LScale, 0.0]) -leTip = np.array([45.2307 * LScale, 29.38 * LScale, 0.0]) -rootChord = 11.83165 * LScale -breakChord = 7.25 * LScale -tipChord = 2.727 * LScale - -coe1 = 0.2 # in production run where the mesh is refined, set coe1=0.01 -coe2 = 1.0 - coe1 -xaxis = np.array([1.0, 0, 0]) -leList = [leRoot + coe1 * rootChord * xaxis, leBreak + coe1 * breakChord * xaxis, leTip + coe1 * tipChord * xaxis] - -teList = [leRoot + coe2 * rootChord * xaxis, leBreak + coe2 * breakChord * xaxis, leTip + coe2 * tipChord * xaxis] - -DVCon.addVolumeConstraint(leList, teList, nSpan=25, nChord=30, lower=1.0, upper=3, scaled=True) - -# Add the same grid of thickness constraints with minimum bound of 0.25 -DVCon.addThicknessConstraints2D(leList, teList, 25, 30, lower=0.2, upper=3.0, scaled=True) - -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - alpha4CLTarget = optFuncs.solveCL(CL_target, "alpha", "CL") - alpha([alpha4CLTarget], None) - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - # Add objective - optProb.addObj("CD", scale=1) - # Add physical constraints - optProb.addCon("CL", lower=CL_target, upper=CL_target, scale=1) - optProb.addCon("CMY", lower=CMY_target, upper=CMY_target, scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "runForwardAD": - - optFuncs.runForwardAD("shapez", 0) - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL", "scenario1.aero_post.CMY"], ["patchV", "tailTwist"], targets=[CL_target, CMY_target], designVarsComp=[1, 0]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/DPW4_Aircraft/runScript2FFDs.py b/DPW4_Aircraft/runScript2FFDs.py deleted file mode 100755 index cfaffa7c..00000000 --- a/DPW4_Aircraft/runScript2FFDs.py +++ /dev/null @@ -1,353 +0,0 @@ -#!/usr/bin/env python -""" -DAFoam run script for the DPW4 wing-body-tail case (trimmed) -This setup uses a FFD file that contains two blocks (0: wing, 1: tail) -""" - -# ============================================================================= -# Imports -# ============================================================================= -import os -import argparse -from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT -import numpy as np - - -# ============================================================================= -# Input Parameters -# ============================================================================= -parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="snopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") -args = parser.parse_args() -gcomm = MPI.COMM_WORLD - -LScale = 1.0 # scale such that the L0=1 - -T0 = 300.0 -p0 = 101325.0 -rho0 = p0 / T0 / 287.0 -U0 = 295.0 -L0 = 275.80 * 0.0254 * LScale -A0 = 594720.0 * 0.0254 * 0.0254 / 2.0 * LScale * LScale -CofR = [1325.90 * 0.0254 * LScale, 468.75 * 0.0254 * LScale, 177.95 * 0.0254 * LScale] -nuTilda0 = 4.5e-5 - -CL_target = 0.5 -CMY_target = 0.0 -alpha0 = 2.5027 - -# Set the parameters for optimization -daOptions = { - "designSurfaces": ["wing", "tail"], - "solverName": "DARhoSimpleCFoam", - "primalMinResTol": 1.0e-9, - "useAD": {"mode": "reverse"}, - "primalBC": { - "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, - "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, - "T0": {"variable": "T", "patches": ["inout"], "value": [T0]}, - "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, - "useWallFunction": True, - }, - # variable bounds for compressible flow conditions - "primalVarBounds": { - "UMax": 1000.0, - "UMin": -1000.0, - "pMax": 500000.0, - "pMin": 20000.0, - "eMax": 500000.0, - "eMin": 100000.0, - "rhoMax": 5.0, - "rhoMin": 0.2, - }, - "objFunc": { - "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing", "body", "tail"], - "directionMode": "parallelToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } - }, - "CL": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing", "body", "tail"], - "directionMode": "normalToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } - }, - "CMY": { - "part1": { - "type": "moment", - "source": "patchToFace", - "patches": ["wing", "body", "tail"], - "axis": [0.0, 1.0, 0.0], - "center": CofR, - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0 * L0), - "addToAdjoint": True, - } - }, - }, - "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, - # transonic preconditioner to speed up the adjoint convergence - "transonicPCOption": 1, - "normalizeStates": {"U": U0, "p": p0, "nuTilda": nuTilda0 * 10.0, "phi": 1.0, "T": T0}, - "adjPartDerivFDStep": {"State": 1e-6, "FFD": 1e-3}, - "adjPCLag": 1, - "checkMeshThreshold": { - "maxAspectRatio": 1000.0, - "maxNonOrth": 75.0, - "maxSkewness": 8.0}, - "designVar": {}, -} - -# mesh warping parameters, users need to manually specify the symmetry plane -meshOptions = { - "gridFile": os.getcwd(), - "fileType": "openfoam", - "useRotations": False, - # point and normal for the symmetry plane - "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 1.0, 0.0]]], -} - - -# options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, - "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 50, - "Nonderivative linesearch": None, - "Print file": "opt_SNOPT_print.txt", - "Summary file": "opt_SNOPT_summary.txt", - } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, - "print_level": 5, - "output_file": "opt_IPOPT.txt", - "mu_strategy": "adaptive", - "limited_memory_max_history": 10, - "nlp_scaling_method": "none", - "alpha_for_y": "full", - "recalc_y": "yes", - } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, - "IFILE": "opt_SLSQP.txt", - } -else: - print("opt arg not valid!") - exit(0) - - -# ================================================================================================= -# DVGeo -# ================================================================================================= -# setup FFDs -# Global FFD should contain the entire aicraft -DVGeo = DVGeometry("./FFD/wingTailFFD.xyz") - - -def setQuaterChordRefAxis(DVGeoObj, refAxisName, ffdVolI=0): - """ - Set the reference axis for a DVGeo object. We will use its quater chord as the reference axis - The quater chord is located at 25% of the FFD box in the x direction. - NOTE: this function assumes x (i index) is streamwise, y (j index) is spanwise, and z (k index) is vertical - - Input: - DVGeoObj: an DVGeo object created by calling DVGeometry(...) - - refAxisName: a name for the reference axis, this will be used later in defining twist variables - - ffdVolI: the index of the FFD block. For a single block plot3D file, ffdVolI = 0 - - Output: - nTwistObj: the number of twist variables. This is essentially the number of grid in the y direction - """ - coefObj = DVGeoObj.FFD.vols[ffdVolI].coef.copy() - # shape in the y direction (1 <-> spanwise) is the number of twists - nTwistObj = coefObj.shape[1] - objRefAxis = np.zeros((nTwistObj, 3)) - for j in range(nTwistObj): - # 0 means the x coordinate - max_x = np.max(coefObj[:, j, :, 0]) - min_x = np.min(coefObj[:, j, :, 0]) - objRefAxis[j, 0] = min_x + 0.25 * (max_x - min_x) - objRefAxis[j, 1] = np.average(coefObj[:, j, :, 1]) - objRefAxis[j, 2] = np.average(coefObj[:, j, :, 2]) - # Create the actual reference axis - c1 = Curve(X=objRefAxis, k=2) - DVGeoObj.addRefAxis(refAxisName, c1, volumes=[ffdVolI]) - - return nTwistObj - - -# call the setQuaterChordRefAxis function to set the reference axis -nTwistWing = setQuaterChordRefAxis(DVGeo, "wing", ffdVolI=0) -nTwistTail = setQuaterChordRefAxis(DVGeo, "tail", ffdVolI=1) - - -def twist(val, geo): - # Set all the twist values - for i in range(len(val)): - # i+2 because we don't change the root twist and the 2nd to the root - # Otherwise, we will get negative mesh - geo.rot_y["wing"].coef[i + 2] = val[i] - geo.rot_y["wing"].coef[:2] = 0.0 - - -def tailTwist(val, geo): - # Fix the root twist and the 2nd to the root. Otherwise, we will get negative mesh - geo.rot_y["tail"].coef[2:] = val[0] - geo.rot_y["tail"].coef[:2] = 0.0 - - -def alpha(val, geo): - aoa = val[0] * np.pi / 180.0 - inletU = [float(U0 * np.cos(aoa)), 0.0, float(U0 * np.sin(aoa))] - DASolver.setOption("primalBC", {"U0": {"variable": "U", "patches": ["inout"], "value": inletU}}) - DASolver.updateDAOption() - - -# FFD shape -pts = DVGeo.getLocalIndex(0) # index 0 means the 1st element in FFD: wing -indexList = pts[:, 2:, :].flatten() # we don't change the 1st and 2nd layers points in y -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal("shapez", lower=-1.0, upper=1.0, axis="z", scale=10.0, pointSelect=PS) -daOptions["designVar"]["shapez"] = {"designVarType": "FFD"} -# twist -DVGeo.addGeoDVGlobal("twist", np.zeros(nTwistWing - 2), twist, lower=-10.0, upper=10.0, scale=0.1) -daOptions["designVar"]["twist"] = {"designVarType": "FFD"} -# AOA -DVGeo.addGeoDVGlobal("alpha", alpha0, alpha, lower=0, upper=10.0, scale=1.0) -daOptions["designVar"]["alpha"] = {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "z"} -# Tail twist -DVGeo.addGeoDVGlobal("tail", np.zeros(1), tailTwist, lower=-10, upper=10, scale=0.1) -daOptions["designVar"]["tail"] = {"designVarType": "FFD"} - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -# Le/Te constraints -DVCon.addLeTeConstraints(0, "iHigh") -DVCon.addLeTeConstraints(0, "iLow") - -# (flattened)LE Root, break and tip. These are different from above -leRoot = np.array([25.22 * LScale, 3.20 * LScale, 0]) -leBreak = np.array([31.1358 * LScale, 10.8712 * LScale, 0.0]) -leTip = np.array([45.2307 * LScale, 29.38 * LScale, 0.0]) -rootChord = 11.83165 * LScale -breakChord = 7.25 * LScale -tipChord = 2.727 * LScale - -coe1 = 0.2 # in production run where the mesh is refined, set coe1=0.01 -coe2 = 1.0 - coe1 -xaxis = np.array([1.0, 0, 0]) -leList = [leRoot + coe1 * rootChord * xaxis, leBreak + coe1 * breakChord * xaxis, leTip + coe1 * tipChord * xaxis] - -teList = [leRoot + coe2 * rootChord * xaxis, leBreak + coe2 * breakChord * xaxis, leTip + coe2 * tipChord * xaxis] - -DVCon.addVolumeConstraint(leList, teList, nSpan=25, nChord=30, lower=1.0, upper=3, scaled=True) - -# Add the same grid of thickness constraints with minimum bound of 0.25 -DVCon.addThicknessConstraints2D(leList, teList, 25, 30, lower=0.2, upper=3.0, scaled=True) - -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - alpha4CLTarget = optFuncs.solveCL(CL_target, "alpha", "CL") - alpha([alpha4CLTarget], None) - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - # Add objective - optProb.addObj("CD", scale=1) - # Add physical constraints - optProb.addCon("CL", lower=CL_target, upper=CL_target, scale=1) - optProb.addCon("CMY", lower=CMY_target, upper=CMY_target, scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "runForwardAD": - - optFuncs.runForwardAD("shapez", 0) - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - -else: - print("task arg not found!") - exit(0) diff --git a/DPW4_Aircraft/system/fvSchemes b/DPW4_Aircraft/system/fvSchemes index c50f9196..38b5015e 100755 --- a/DPW4_Aircraft/system/fvSchemes +++ b/DPW4_Aircraft/system/fvSchemes @@ -60,7 +60,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/JBC_Hull/runScript.py b/JBC_Hull/runScript.py index 87b5d395..c26fcc5a 100755 --- a/JBC_Hull/runScript.py +++ b/JBC_Hull/runScript.py @@ -1,30 +1,25 @@ #!/usr/bin/env python -""" -DAFoam run script for the JBC case -""" - -# ============================================================================= -# Imports -# ============================================================================= import os import argparse +import numpy as np from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SLSQP") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() # ============================================================================= # Input Parameters # ============================================================================= -parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="ipopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") -args = parser.parse_args() -gcomm = MPI.COMM_WORLD U0 = 1.179 A0 = 12.2206 @@ -36,60 +31,210 @@ "solverName": "DASimpleFoam", "designSurfaces": ["hull"], "primalMinResTol": 1e-8, - "useAD": {"mode": "reverse"}, + "primalMinResTolDiff": 1e3, "primalBC": { "U0": {"variable": "U", "patches": ["inlet"], "value": [U0, 0.0, 0.0]}, "p0": {"variable": "p", "patches": ["outlet"], "value": [p0]}, "nuTilda0": {"variable": "nuTilda", "patches": ["inlet"], "value": [nuTilda0]}, "useWallFunction": True, }, - "objFunc": { + "function": { "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["hull"], - "directionMode": "fixedDirection", - "direction": [1.0, 0.0, 0.0], - "scale": 1.0 / 0.5 / U0 / U0 / A0, - "addToAdjoint": True, - }, + "type": "force", + "source": "patchToFace", + "patches": ["hull"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0 / 0.5 / U0 / U0 / A0, }, }, "normalizeStates": {"U": 1.0, "p": 1.0, "nuTilda": 1e-4, "phi": 1.0}, - "adjPartDerivFDStep": {"State": 1e-6, "FFD": 1e-3}, "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, "adjPCLag": 1, # Design variable setup - "designVar": {"shapey": {"designVarType": "FFD"}}, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + }, } # mesh warping parameters, users need to manually specify the symmetry plane meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", + "fileType": "OpenFOAM", # point and normal for the symmetry plane "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]]], } + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/JBCFFD_32.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # select the FFD points to move + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = [] + indexList.extend(pts[8:12, 0, 0:4].flatten()) + indexList.extend(pts[8:12, -1, 0:4].flatten()) + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shape", axis="y", pointSelect=PS) + + # Create reflection constraint + indSetA = [] + indSetB = [] + for i in range(8, 12, 1): + for k in range(0, 4, 1): + indSetA.append(pts[i, 0, k]) + indSetB.append(pts[i, -1, k]) + self.geometry.nom_addLinearConstraintsShape("reflect", indSetA, indSetB, factorA=1.0, factorB=1.0) + + # setup the volume and thickness constraints + leList = [ + [4.90000000, 0.00000000, -0.41149880], + [4.90000000, 0.00000000, -0.40347270], + [4.90000000, 0.00000000, -0.38803330], + [4.90000000, 0.00000000, -0.36534750], + [4.90000000, 0.00000000, -0.33601030], + [4.90000000, 0.00000000, -0.31016020], + [4.90000000, 0.00000000, -0.28327050], + [4.90000000, 0.00000000, -0.26248810], + [4.90000000, 0.00000000, -0.24076410], + [4.90000000, 0.00000000, -0.20933480], + [4.90000000, 0.00000000, -0.17458840], + [4.90000000, 0.00000000, -0.14233480], + [4.90000000, 0.00000000, -0.11692880], + [4.90000000, 0.00000000, -0.09984235], + [4.90000000, 0.00000000, -0.08874606], + [4.90000000, 0.00000000, -0.07969946], + [4.90000000, 0.00000000, -0.06954966], + [4.90000000, 0.00000000, -0.05864429], + [4.90000000, 0.00000000, -0.04829308], + [4.90000000, 0.00000000, -0.03831457], + [4.90000000, 0.00000000, -0.02430242], + [4.90000000, 0.00000000, -0.00100000], + ] + teList = [ + [6.70332700, 0.00000000, -0.41149880], + [6.73692400, 0.00000000, -0.40347270], + [6.76842800, 0.00000000, -0.38803330], + [6.79426000, 0.00000000, -0.36534750], + [6.81342600, 0.00000000, -0.33601030], + [6.83648300, 0.00000000, -0.31016020], + [6.85897100, 0.00000000, -0.28327050], + [6.83593600, 0.00000000, -0.26248810], + [6.80929800, 0.00000000, -0.24076410], + [6.79395800, 0.00000000, -0.20933480], + [6.79438900, 0.00000000, -0.17458840], + [6.80874100, 0.00000000, -0.14233480], + [6.83265000, 0.00000000, -0.11692880], + [6.86250800, 0.00000000, -0.09984235], + [6.89566400, 0.00000000, -0.08874606], + [6.92987100, 0.00000000, -0.07969946], + [6.96333200, 0.00000000, -0.06954966], + [6.99621200, 0.00000000, -0.05864429], + [7.02921500, 0.00000000, -0.04829308], + [7.06253200, 0.00000000, -0.03831457], + [7.09456600, 0.00000000, -0.02430242], + [7.12000000, 0.00000000, -0.00100000], + ] + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=25, nChord=50) + + # Thickness constraint for lateral thickness + leList = [[5.01, 0.0000, -0.001], [5.01, 0.0000, -0.410]] + teList = [[6.2, 0.0000, -0.001], [6.2, 0.0000, -0.410]] + self.geometry.nom_addThicknessConstraints2D("thickcon1", leList, teList, nSpan=8, nChord=5) + + # Thickness constraint for propeller shaft + leList = [[6.8, 0.0000, -0.302], [6.8, 0.0000, -0.265]] + teList = [[6.865, 0.0000, -0.302], [6.865, 0.0000, -0.265]] + self.geometry.nom_addThicknessConstraints2D("thickcon2", leList, teList, nSpan=5, nChord=5) + + # TODO: this 2D curvature constraint is not in mphys_pygeo yet, need to use 1D curv constraint instead + # self.geometry.nom_addCurvatureConstraint( + # "./FFD/hullCurv.xyz", curvatureType="KSmean", lower=0.0, upper=1.21, addToPyOpt=True, scaled=True + # ) + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * nShapes)) + # manually connect the dvs output to the geometry and scenario1 + self.connect("shape", "geometry.shape") + + # define the design variables + self.add_design_var("shape", lower=-0.5, upper=0.5, scaler=10.0) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("geometry.thickcon1", lower=1e-3, upper=1.125, scaler=1.0) + self.add_constraint("geometry.thickcon2", lower=1.0, upper=10.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.reflect", equals=0.0, scaler=1.0, linear=True) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer # options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 50, + "Function precision": 1.0e-5, + "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", "Summary file": "opt_SNOPT_summary.txt", } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 40, +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", "mu_strategy": "adaptive", @@ -98,187 +243,37 @@ "alpha_for_y": "full", "recalc_y": "yes", } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-6, + "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } else: - print("opt arg not valid!") - exit(0) - - - -# ============================================================================= -# Design variable setup -# ============================================================================= -FFDFile = "./FFD/JBCFFD_32.xyz" -DVGeo = DVGeometry(FFDFile) -# Select points -iVol = 0 -pts = DVGeo.getLocalIndex(iVol) -# shapez -indexList = [] -indexList.extend(pts[8:12, 0, 0:4].flatten()) -indexList.extend(pts[8:12, -1, 0:4].flatten()) -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal("shapey", lower=-0.5, upper=0.5, axis="y", scale=1.0, pointSelect=PS) - - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -# Create reflection constraint -pts = DVGeo.getLocalIndex(0) -indSetA = [] -indSetB = [] -for i in range(8, 12, 1): - for k in range(0, 4, 1): - indSetA.append(pts[i, 0, k]) - indSetB.append(pts[i, -1, k]) -DVCon.addLinearConstraintsShape(indSetA, indSetB, factorA=1.0, factorB=1.0, lower=0.0, upper=0.0) - - -# Create a volume constraint -# Volume constraints -leList = [ - [4.90000000, 0.00000000, -0.41149880], - [4.90000000, 0.00000000, -0.40347270], - [4.90000000, 0.00000000, -0.38803330], - [4.90000000, 0.00000000, -0.36534750], - [4.90000000, 0.00000000, -0.33601030], - [4.90000000, 0.00000000, -0.31016020], - [4.90000000, 0.00000000, -0.28327050], - [4.90000000, 0.00000000, -0.26248810], - [4.90000000, 0.00000000, -0.24076410], - [4.90000000, 0.00000000, -0.20933480], - [4.90000000, 0.00000000, -0.17458840], - [4.90000000, 0.00000000, -0.14233480], - [4.90000000, 0.00000000, -0.11692880], - [4.90000000, 0.00000000, -0.09984235], - [4.90000000, 0.00000000, -0.08874606], - [4.90000000, 0.00000000, -0.07969946], - [4.90000000, 0.00000000, -0.06954966], - [4.90000000, 0.00000000, -0.05864429], - [4.90000000, 0.00000000, -0.04829308], - [4.90000000, 0.00000000, -0.03831457], - [4.90000000, 0.00000000, -0.02430242], - [4.90000000, 0.00000000, -0.00100000], -] -teList = [ - [6.70332700, 0.00000000, -0.41149880], - [6.73692400, 0.00000000, -0.40347270], - [6.76842800, 0.00000000, -0.38803330], - [6.79426000, 0.00000000, -0.36534750], - [6.81342600, 0.00000000, -0.33601030], - [6.83648300, 0.00000000, -0.31016020], - [6.85897100, 0.00000000, -0.28327050], - [6.83593600, 0.00000000, -0.26248810], - [6.80929800, 0.00000000, -0.24076410], - [6.79395800, 0.00000000, -0.20933480], - [6.79438900, 0.00000000, -0.17458840], - [6.80874100, 0.00000000, -0.14233480], - [6.83265000, 0.00000000, -0.11692880], - [6.86250800, 0.00000000, -0.09984235], - [6.89566400, 0.00000000, -0.08874606], - [6.92987100, 0.00000000, -0.07969946], - [6.96333200, 0.00000000, -0.06954966], - [6.99621200, 0.00000000, -0.05864429], - [7.02921500, 0.00000000, -0.04829308], - [7.06253200, 0.00000000, -0.03831457], - [7.09456600, 0.00000000, -0.02430242], - [7.12000000, 0.00000000, -0.00100000], -] -DVCon.addVolumeConstraint(leList, teList, nSpan=25, nChord=50, lower=1.0, upper=1.0) - - -# Thickness constraint for lateral thickness -leList = [[5.01, 0.0000, -0.001], [5.01, 0.0000, -0.410]] -teList = [[6.2, 0.0000, -0.001], [6.2, 0.0000, -0.410]] -DVCon.addThicknessConstraints2D(leList, teList, nSpan=8, nChord=5, lower=1e-3, upper=1.1251, scaled=False) - - -# Thickness constraint for propeller shaft -leList = [[6.8, 0.0000, -0.302], [6.8, 0.0000, -0.265]] -teList = [[6.865, 0.0000, -0.302], [6.865, 0.0000, -0.265]] -DVCon.addThicknessConstraints2D(leList, teList, nSpan=5, nChord=5, lower=1.0, upper=10.0) - -# Curvature constraints -DVCon.addCurvatureConstraint( - "./FFD/hullCurv.xyz", curvatureType="KSmean", lower=0.0, upper=1.21, addToPyOpt=True, scaled=True -) - -DVCon.writeTecplot("DVConstraints.dat") - -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - # Add objective - optProb.addObj("CD", scale=1) - # Add physical constraints - # optProb.addCon("CL", lower=CL_target, upper=CL_target, scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "runForwardAD": - - optFuncs.runForwardAD("shapey", 0) - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/JBC_Hull/system/fvSchemes b/JBC_Hull/system/fvSchemes index ebfd3f31..a6bfda4f 100755 --- a/JBC_Hull/system/fvSchemes +++ b/JBC_Hull/system/fvSchemes @@ -54,7 +54,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/MACH_Tutorial_Wing/0.orig/T b/MACH_Tutorial_Wing/0.orig/T new file mode 100755 index 00000000..8f0333f9 --- /dev/null +++ b/MACH_Tutorial_Wing/0.orig/T @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 300.0; + +boundaryField +{ + "wing.*" + { + type zeroGradient; + value $internalField; + } + sym + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/MACH_Tutorial_Wing/0.orig/U b/MACH_Tutorial_Wing/0.orig/U new file mode 100755 index 00000000..5c330a20 --- /dev/null +++ b/MACH_Tutorial_Wing/0.orig/U @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (100 0 0); + +boundaryField +{ + "wing.*" + { + type fixedValue; + value uniform (0 0 0); + } + sym + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/MACH_Tutorial_Wing/0.orig/alphat b/MACH_Tutorial_Wing/0.orig/alphat new file mode 100755 index 00000000..fe541f85 --- /dev/null +++ b/MACH_Tutorial_Wing/0.orig/alphat @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 1e-4; + +boundaryField +{ + "wing.*" + { + type compressible::alphatWallFunction; + value $internalField; + } + sym + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/MACH_Tutorial_Wing/0.orig/nuTilda b/MACH_Tutorial_Wing/0.orig/nuTilda new file mode 100755 index 00000000..12e8d441 --- /dev/null +++ b/MACH_Tutorial_Wing/0.orig/nuTilda @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5e-05; + +boundaryField +{ + "wing.*" + { + type fixedValue; + value uniform 0.0; + } + sym + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/MACH_Tutorial_Wing/0.orig/nut b/MACH_Tutorial_Wing/0.orig/nut new file mode 100755 index 00000000..b228101e --- /dev/null +++ b/MACH_Tutorial_Wing/0.orig/nut @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5E-5; + +boundaryField +{ + "wing.*" + { + type nutUSpaldingWallFunction; + value $internalField; + } + sym + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/MACH_Tutorial_Wing/0.orig/p b/MACH_Tutorial_Wing/0.orig/p new file mode 100755 index 00000000..bd07c9d5 --- /dev/null +++ b/MACH_Tutorial_Wing/0.orig/p @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + "wing.*" + { + type zeroGradient; + } + sym + { + type symmetry; + } + inout + { + type fixedValue; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/MACH_Tutorial_Wing/Allclean.sh b/MACH_Tutorial_Wing/Allclean.sh new file mode 100755 index 00000000..d7cdb05f --- /dev/null +++ b/MACH_Tutorial_Wing/Allclean.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf 0 + rm -rf postProcessing + rm -rf constant/extendedFeatureEdgeMesh + rm -rf constant/triSurface + rm -rf constant/polyMesh + rm -rf *.bin *.info *.dat *.xyz *.stl *.txt *.html + rm -rf processor* 0.0000* + rm -rf {1..9}* + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/MACH_Tutorial_Wing/FFD/wingFFD.xyz b/MACH_Tutorial_Wing/FFD/wingFFD.xyz new file mode 100644 index 00000000..97f427fe --- /dev/null +++ b/MACH_Tutorial_Wing/FFD/wingFFD.xyz @@ -0,0 +1,50 @@ + 1 + 6 2 8 + -0.10000000 0.94000000 1.98000000 3.02000000 4.06000000 5.10000000 + -0.10000000 0.94000000 1.98000000 3.02000000 4.06000000 5.10000000 + 1.48118553 2.37782471 3.27446389 4.17110307 5.06774224 5.96438142 + 1.48118553 2.37782471 3.27446389 4.17110307 5.06774224 5.96438142 + 2.65300391 3.44339822 4.23379253 5.02418685 5.81458116 6.60497547 + 2.65300391 3.44339822 4.23379253 5.02418685 5.81458116 6.60497547 + 3.70785003 4.40260496 5.09735989 5.79211482 6.48686975 7.18162468 + 3.70785003 4.40260496 5.09735989 5.79211482 6.48686975 7.18162468 + 4.69325821 5.29866946 5.90408072 6.50949197 7.11490323 7.72031449 + 4.69325821 5.29866946 5.90408072 6.50949197 7.11490323 7.72031449 + 5.63005558 6.15053054 6.67100550 7.19148047 7.71195543 8.23243039 + 5.63005558 6.15053054 6.67100550 7.19148047 7.71195543 8.23243039 + 6.52985197 6.96874539 7.40763881 7.84653223 8.28542566 8.72431908 + 6.52985197 6.96874539 7.40763881 7.84653223 8.28542566 8.72431908 + 7.40000000 7.76000000 8.12000000 8.48000000 8.84000000 9.20000000 + 7.40000000 7.76000000 8.12000000 8.48000000 8.84000000 9.20000000 + -0.50000000 -0.50000000 -0.50000000 -0.50000000 -0.50000000 -0.50000000 + 0.50000000 0.50000000 0.50000000 0.50000000 0.50000000 0.50000000 + -0.44729382 -0.44729382 -0.44729382 -0.44729382 -0.44729382 -0.44729382 + 0.44729382 0.44729382 0.44729382 0.44729382 0.44729382 0.44729382 + -0.40823320 -0.40823320 -0.40823320 -0.40823320 -0.40823320 -0.40823320 + 0.40823320 0.40823320 0.40823320 0.40823320 0.40823320 0.40823320 + -0.37307167 -0.37307167 -0.37307167 -0.37307167 -0.37307167 -0.37307167 + 0.37307167 0.37307167 0.37307167 0.37307167 0.37307167 0.37307167 + -0.34022473 -0.34022473 -0.34022473 -0.34022473 -0.34022473 -0.34022473 + 0.34022473 0.34022473 0.34022473 0.34022473 0.34022473 0.34022473 + -0.30899815 -0.30899815 -0.30899815 -0.30899815 -0.30899815 -0.30899815 + 0.30899815 0.30899815 0.30899815 0.30899815 0.30899815 0.30899815 + -0.27900493 -0.27900493 -0.27900493 -0.27900493 -0.27900493 -0.27900493 + 0.27900493 0.27900493 0.27900493 0.27900493 0.27900493 0.27900493 + -0.25000000 -0.25000000 -0.25000000 -0.25000000 -0.25000000 -0.25000000 + 0.25000000 0.25000000 0.25000000 0.25000000 0.25000000 0.25000000 + -0.01000000 -0.01000000 -0.01000000 -0.01000000 -0.01000000 -0.01000000 + -0.01000000 -0.01000000 -0.01000000 -0.01000000 -0.01000000 -0.01000000 + 2.99636075 2.99636075 2.99636075 2.99636075 2.99636075 2.99636075 + 2.99636075 2.99636075 2.99636075 2.99636075 2.99636075 2.99636075 + 5.22437810 5.22437810 5.22437810 5.22437810 5.22437810 5.22437810 + 5.22437810 5.22437810 5.22437810 5.22437810 5.22437810 5.22437810 + 7.22999218 7.22999218 7.22999218 7.22999218 7.22999218 7.22999218 + 7.22999218 7.22999218 7.22999218 7.22999218 7.22999218 7.22999218 + 9.10358160 9.10358160 9.10358160 9.10358160 9.10358160 9.10358160 + 9.10358160 9.10358160 9.10358160 9.10358160 9.10358160 9.10358160 + 10.88474568 10.88474568 10.88474568 10.88474568 10.88474568 10.88474568 + 10.88474568 10.88474568 10.88474568 10.88474568 10.88474568 10.88474568 + 12.59555855 12.59555855 12.59555855 12.59555855 12.59555855 12.59555855 + 12.59555855 12.59555855 12.59555855 12.59555855 12.59555855 12.59555855 + 14.25000000 14.25000000 14.25000000 14.25000000 14.25000000 14.25000000 + 14.25000000 14.25000000 14.25000000 14.25000000 14.25000000 14.25000000 diff --git a/MACH_Tutorial_Wing/constant/thermophysicalProperties b/MACH_Tutorial_Wing/constant/thermophysicalProperties new file mode 100755 index 00000000..bb852567 --- /dev/null +++ b/MACH_Tutorial_Wing/constant/thermophysicalProperties @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + mixture pureMixture; + specie specie; + equationOfState perfectGas; + energy sensibleInternalEnergy; + thermo hConst; + type hePsiThermo; + transport const; +} + +mixture +{ + specie + { + molWeight 28.970000; + } + thermodynamics + { + Cp 1005.000000; + Hf 0.000000; + } + transport + { + mu 0.000018; + Pr 0.700000; + TRef 300.000000; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/MACH_Tutorial_Wing/constant/turbulenceProperties b/MACH_Tutorial_Wing/constant/turbulenceProperties new file mode 100755 index 00000000..09d6f0a4 --- /dev/null +++ b/MACH_Tutorial_Wing/constant/turbulenceProperties @@ -0,0 +1,27 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmaras; + turbulence on; + printCoeffs off; + Prt 1.0; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Prowim_Wing_Propeller/genWingMesh.py b/MACH_Tutorial_Wing/genWingMesh.py similarity index 72% rename from Prowim_Wing_Propeller/genWingMesh.py rename to MACH_Tutorial_Wing/genWingMesh.py index 338f0572..84d17ff8 100755 --- a/Prowim_Wing_Propeller/genWingMesh.py +++ b/MACH_Tutorial_Wing/genWingMesh.py @@ -14,32 +14,32 @@ "inputFile": fileName, "fileType": "CGNS", "unattachedEdgesAreSymmetry": True, - "outerFaceBC": "farField", + "outerFaceBC": "farfield", "autoConnect": True, "BC": {}, "families": "wall", # --------------------------- # Grid Parameters # --------------------------- - "N": 49, # number of layers to march + "N": 39, # number of layers to march "s0": 1.0e-3, # first layer thickness - "marchDist": 10, # distance to march + "marchDist": 300.0, # distance to march # --------------------------- # Pseudo Grid Parameters # --------------------------- - "ps0": -1, - "pGridRatio": -1, - "cMax": 0.5, + #"ps0": -1, + #"pGridRatio": -1, + "cMax": 0.1, # --------------------------- # Smoothing parameters # --------------------------- - "epsE": 1.0, - "epsI": 2.0, - "theta": 3.0, - "volCoef": 0.25, - "volBlend": 0.0005, - "volSmoothIter": 100, - "kspreltol": 1e-4, + #"epsE": 1.0, + ##"epsI": 2.0, + #"theta": 3.0, + #"volCoef": 0.25, + #"volBlend": 0.01, + #"volSmoothIter": 200, + #"kspreltol": 1e-4, } hyp = pyHyp(options=options) diff --git a/MACH_Tutorial_Wing/paraview.foam b/MACH_Tutorial_Wing/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/MACH_Tutorial_Wing/preProcessing.sh b/MACH_Tutorial_Wing/preProcessing.sh new file mode 100755 index 00000000..8050c44e --- /dev/null +++ b/MACH_Tutorial_Wing/preProcessing.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# pre-processing + +# get the geometry +if [ -f "mdolab_wing_surface_mesh.cgns.tar.gz" ]; then + echo "Surface geometry mdolab_wing_surface_mesh.cgns.tar.gz already exists." +else + echo "Downloading surface geometry mdolab_wing_surface_mesh.cgns.tar.gz" + wget https://github.com/dafoam/files/releases/download/v1.0.0/mdolab_wing_surface_mesh.cgns.tar.gz +fi +tar -xvf mdolab_wing_surface_mesh.cgns.tar.gz + +# generate mesh +echo "Generating mesh.." + +# coarsen the surface mesh three times +cgns_utils coarsen mdolab_wing_surface_mesh.cgns surfaceMesh.cgns +#cgns_utils coarsen surfaceMesh.cgns +python genWingMesh.py &> logMeshGeneration.txt +plot3dToFoam -noBlank volumeMesh.xyz >> logMeshGeneration.txt +autoPatch 60 -overwrite >> logMeshGeneration.txt +createPatch -overwrite >> logMeshGeneration.txt +renumberMesh -overwrite >> logMeshGeneration.txt +echo "Generating mesh.. Done!" + +# copy initial and boundary condition files +cp -r 0.orig 0 diff --git a/MACH_Tutorial_Wing/runScript.py b/MACH_Tutorial_Wing/runScript.py new file mode 100755 index 00000000..ae47861b --- /dev/null +++ b/MACH_Tutorial_Wing/runScript.py @@ -0,0 +1,316 @@ +#!/usr/bin/env python +import os +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from tacs.mphys import TacsBuilder +from funtofem.mphys import MeldBuilder +from mphys.scenario_aerostructural import ScenarioAeroStructural +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + +import tacsSetup + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SLSQP") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= + +U0 = 100.0 +p0 = 101325.0 +nuTilda0 = 4.5e-5 +T0 = 300.0 +CL_target = 0.5 +aoa0 = 4.65 +rho0 = p0 / T0 / 287.0 +A0 = 45.5 + +daOptions = { + "designSurfaces": ["wing"], + "solverName": "DARhoSimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1e3, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "T0": {"variable": "T", "patches": ["inout"], "value": [T0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "useWallFunction": True, + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + }, + "adjEqnOption": { + "gmresRelTol": 1.0e-2, # set relative tolerance for block Gauss-Seidel adjoint + "pcFillLevel": 1, + "jacMatReOrdering": "rcm", + "useNonZeroInitGuess": True, + "dynAdjustTol": True, + }, + "normalizeStates": { + "U": U0, + "p": p0, + "T": T0, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "checkMeshThreshold": { + "maxAspectRatio": 1000.0, + "maxNonOrth": 70.0, + "maxSkewness": 5.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, + "outputInfo": { + "f_aero": { + "type": "forceCouplingOutput", + "patches": ["wing"], + "components": ["forceCoupling"], + "pRef": p0, + }, + }, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]]], +} + +# TACS Setup +tacsOptions = { + "element_callback": tacsSetup.element_callback, + "problem_setup": tacsSetup.problem_setup, + "mesh_file": "./wingbox.bdf", +} + + +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + aero_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerostructural") + aero_builder.initialize(self.comm) + + # add the aerodynamic mesh component + self.add_subsystem("mesh_aero", aero_builder.get_mesh_coordinate_subsystem()) + + # create the builder to initialize TACS + struct_builder = TacsBuilder(tacsOptions) + struct_builder.initialize(self.comm) + + # add the structure mesh component + self.add_subsystem("mesh_struct", struct_builder.get_mesh_coordinate_subsystem()) + + # load and displacement transfer builder (meld), isym sets the symmetry plan axis (k) + xfer_builder = MeldBuilder(aero_builder, struct_builder, isym=2, check_partials=True) + xfer_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + dvs = self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # primal and adjoint solution options, i.e., nonlinear block Gauss-Seidel for aerostructural analysis + # and linear block Gauss-Seidel for the coupled adjoint + nonlinear_solver = om.NonlinearBlockGS(maxiter=25, iprint=2, use_aitken=True, rtol=1e-8, atol=1e-8) + linear_solver = om.LinearBlockGS(maxiter=25, iprint=2, use_aitken=True, rtol=1e-6, atol=1e-6) + # add the coupling aerostructural scenario + self.mphys_add_scenario( + "scenario1", + ScenarioAeroStructural( + aero_builder=aero_builder, struct_builder=struct_builder, ldxfer_builder=xfer_builder + ), + nonlinear_solver, + linear_solver, + ) + + # need to manually connect the vars in the geo component to scenario1 + for discipline in ["aero", "struct"]: + self.connect("geometry.x_%s0" % discipline, "scenario1.x_%s0" % discipline) + + # add the structural thickness DVs + ndv_struct = struct_builder.get_ndv() + dvs.add_output("dv_struct", np.array(ndv_struct * [0.01])) + self.connect("dv_struct", "scenario1.dv_struct") + + # more manual connection + self.connect("mesh_aero.x_aero0", "geometry.x_aero_in") + self.connect("mesh_struct.x_struct0", "geometry.x_struct_in") + + def configure(self): + + # call this to configure the coupling solver + super().configure() + + # get the surface coordinates from the mesh component + points = self.mesh_aero.mphys_get_surface_mesh() + + # add pointset for both aero and struct + self.geometry.nom_add_discipline_coords("aero", points) + self.geometry.nom_add_discipline_coords("struct") + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh_aero.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # Create reference axis for the twist variable + nRefAxPts = self.geometry.nom_addRefAxis(name="wingAxis", xFraction=0.25, alignIndex="k") + + # Set up global design variables. We dont change the root twist + def twist(val, geo): + for i in range(1, nRefAxPts): + geo.rot_z["wingAxis"].coef[i] = -val[i - 1] + + # add twist variable + self.geometry.nom_addGlobalDV(dvName="twist", value=np.array([0] * (nRefAxPts - 1)), func=twist) + + # add shape variable + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = pts[:, :, :].flatten() + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shape", pointSelect=PS) + + # setup the volume and thickness constraints + leList = [[0.1, 0, 0.01], [7.5, 0, 13.9]] + teList = [[4.9, 0, 0.01], [8.9, 0, 13.9]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=10, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=10, nChord=10) + # add the LE/TE constraints + self.geometry.nom_add_LETEConstraint("lecon", volID=0, faceID="iLow") + self.geometry.nom_add_LETEConstraint("tecon", volID=0, faceID="iHigh") + + # add the design variables to the dvs component's output + self.dvs.add_output("twist", val=np.array([0] * (nRefAxPts - 1))) + self.dvs.add_output("shape", val=np.array([0] * nShapes)) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("twist", "geometry.twist") + self.connect("shape", "geometry.shape") + self.connect("patchV", "scenario1.patchV") + + # define the design variables + self.add_design_var("twist", lower=-10.0, upper=10.0, scaler=0.1) + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + + # add constraints and the objective + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) + # stress constraint + self.add_constraint("scenario1.ks_vmfailure", lower=0.0, upper=1.0, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.tecon", equals=0.0, scaler=1.0, linear=True) + self.add_constraint("geometry.lecon", equals=0.0, scaler=1.0, linear=True) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/MACH_Tutorial_Wing/runScript_AeroOnly.py b/MACH_Tutorial_Wing/runScript_AeroOnly.py new file mode 100755 index 00000000..0d9adaa2 --- /dev/null +++ b/MACH_Tutorial_Wing/runScript_AeroOnly.py @@ -0,0 +1,259 @@ +#!/usr/bin/env python +import os +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= + +U0 = 100.0 +p0 = 101325.0 +nuTilda0 = 4.5e-5 +T0 = 300.0 +CL_target = 0.5 +aoa0 = 4.0 +rho0 = p0 / T0 / 287.0 +A0 = 45.5 + +daOptions = { + "designSurfaces": ["wing"], + "solverName": "DARhoSimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1e3, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "T0": {"variable": "T", "patches": ["inout"], "value": [T0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "useWallFunction": True, + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + }, + "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, + "normalizeStates": { + "U": U0, + "p": U0 * U0 / 2.0, + "T": T0, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "checkMeshThreshold": { + "maxAspectRatio": 1000.0, + "maxNonOrth": 70.0, + "maxSkewness": 5.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]]], +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # Create reference axis for the twist variable + nRefAxPts = self.geometry.nom_addRefAxis(name="wingAxis", xFraction=0.25, alignIndex="k") + + # Set up global design variables. We dont change the root twist + def twist(val, geo): + for i in range(1, nRefAxPts): + geo.rot_z["wingAxis"].coef[i] = -val[i - 1] + + # add twist variable + self.geometry.nom_addGlobalDV(dvName="twist", value=np.array([0] * (nRefAxPts - 1)), func=twist) + + # select the FFD points to move + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = pts[:, :, :].flatten() + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shape", pointSelect=PS) + + # setup the volume and thickness constraints + leList = [[0.1, 0, 0.01], [7.5, 0, 13.9]] + teList = [[4.9, 0, 0.01], [8.9, 0, 13.9]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=10, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=10, nChord=10) + # add the LE/TE constraints + self.geometry.nom_add_LETEConstraint("lecon", volID=0, faceID="iLow") + self.geometry.nom_add_LETEConstraint("tecon", volID=0, faceID="iHigh") + + # add the design variables to the dvs component's output + self.dvs.add_output("twist", val=np.array([0] * (nRefAxPts - 1))) + self.dvs.add_output("shape", val=np.array([0] * nShapes)) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("twist", "geometry.twist") + self.connect("shape", "geometry.shape") + self.connect("patchV", "scenario1.patchV") + + # define the design variables + self.add_design_var("twist", lower=-10.0, upper=10.0, scaler=0.1) + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.tecon", equals=0.0, scaler=1.0, linear=True) + self.add_constraint("geometry.lecon", equals=0.0, scaler=1.0, linear=True) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/MACH_Tutorial_Wing/system/blockMeshDict b/MACH_Tutorial_Wing/system/blockMeshDict new file mode 100755 index 00000000..1e001064 --- /dev/null +++ b/MACH_Tutorial_Wing/system/blockMeshDict @@ -0,0 +1,165 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| o | | +| o o | HELYX-OS | +| o O o | Version: v2.3.1 | +| o o | Web: http://www.engys.com | +| o | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} + +convertToMeters 1; + +MeshCross 10; +MeshInout 14; +MeshBend 8; + +ratio1 0.1; +ratio2 10.0; + +vertices +( + ( 0 0.0195 0) + ( 0 0.0945 0) + ( 0 0.0195 0.075) + ( 0 0.0945 0.075) + + ( 0.75 0.0195 0) + ( 0.75 0.0945 0) + ( 0.75 0.0195 0.075) + ( 0.75 0.0945 0.075) + + ( 0 -0.0195 0) + ( 0 -0.0945 0) + ( 0 -0.0195 0.075) + ( 0 -0.0945 0.075) + + ( 0.75 -0.0195 0) + ( 0.75 -0.0945 0) + ( 0.75 -0.0195 0.075) + ( 0.75 -0.0945 0.075) + + ( 0.7695 0 0) + ( 0.7695 0 0.075) + ( 0.8445 0 0) + ( 0.8445 0 0.075) + +); + +edges +( + arc 4 16 ( 0.76378858223313767673 0.01378858223313767673 0) + arc 6 17 ( 0.76378858223313767673 0.01378858223313767673 0.075) + + arc 12 16 ( 0.76378858223313767673 -0.01378858223313767673 0) + arc 14 17 ( 0.76378858223313767673 -0.01378858223313767673 0.075) + + arc 5 18 ( 0.81682159082212874106 0.06682159082212874106 0) + arc 7 19 ( 0.81682159082212874106 0.06682159082212874106 0.075) + + arc 13 18 ( 0.81682159082212874106 -0.06682159082212874106 0) + arc 15 19 ( 0.81682159082212874106 -0.06682159082212874106 0.075) +); + +blocks +( + + hex (0 4 5 1 2 6 7 3) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (4 16 18 5 6 17 19 7) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (13 18 16 12 15 19 17 14) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + hex (9 13 12 8 11 15 14 10) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + +); + + +patches +( + + patch inlet + ( + (0 1 3 2) + ) + patch outlet + ( + (9 8 10 11) + ) + wall ubend + ( + (0 4 5 1) + (0 4 6 2) + (1 5 7 3) + (2 3 7 6) + (4 16 18 5) + (4 16 17 6) + (6 17 19 7) + (5 18 19 7) + (13 18 16 12) + (13 15 19 18) + (12 16 17 14) + (14 17 19 15) + (9 13 12 8) + (9 11 15 13) + (8 12 14 10) + (11 15 14 10) + + ) +); + +mergePatchPairs +( +); diff --git a/MACH_Tutorial_Wing/system/controlDict b/MACH_Tutorial_Wing/system/controlDict new file mode 100755 index 00000000..761c9ff6 --- /dev/null +++ b/MACH_Tutorial_Wing/system/controlDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 1000; +deltaT 1; +writeControl timeStep; +writeInterval 1000; +purgeWrite 0; +writeFormat ascii; +writePrecision 10; +writeCompression on; +timeFormat general; +timePrecision 10; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/MACH_Tutorial_Wing/system/createPatchDict b/MACH_Tutorial_Wing/system/createPatchDict new file mode 100755 index 00000000..2534771b --- /dev/null +++ b/MACH_Tutorial_Wing/system/createPatchDict @@ -0,0 +1,66 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +pointSync false; + +// Patches to create. +patches +( + { + // Name of new patch + name wing; + + // Dictionary to construct new patch from + patchInfo + { + type wall; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches ( auto1 auto3 ); + } + + { + // Name of new patch + name inout; + + // Dictionary to construct new patch from + patchInfo + { + type patch; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches ( auto2); + } + + { + // Name of new patch + name sym; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto0); + } +); diff --git a/MACH_Tutorial_Wing/system/decomposeParDict b/MACH_Tutorial_Wing/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/MACH_Tutorial_Wing/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/MACH_Tutorial_Wing/system/fvSchemes b/MACH_Tutorial_Wing/system/fvSchemes new file mode 100755 index 00000000..68080727 --- /dev/null +++ b/MACH_Tutorial_Wing/system/fvSchemes @@ -0,0 +1,64 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,e) bounded Gauss upwind; + div(phi,h) bounded Gauss upwind; + div(pc) bounded Gauss upwind; + div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div(phi,K) bounded Gauss upwind; + div(phi,Ekp) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/MACH_Tutorial_Wing/system/fvSolution b/MACH_Tutorial_Wing/system/fvSolution new file mode 100755 index 00000000..0d1e0d7d --- /dev/null +++ b/MACH_Tutorial_Wing/system/fvSolution @@ -0,0 +1,68 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +SIMPLE +{ + nNonOrthogonalCorrectors 0; +} + +solvers +{ + "(p|p_rgh|G)" + { + + solver GAMG; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + } + Phi + { + $p; + relTol 0; + tolerance 1e-6; + } + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + nSweeps 1; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh)" 0.30; + rho 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|epsilon|omega)" 0.70; + } +} + +potentialFlow +{ + nNonOrthogonalCorrectors 20; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/MACH_Tutorial_Wing/tacsSetup.py b/MACH_Tutorial_Wing/tacsSetup.py new file mode 100644 index 00000000..e39965a6 --- /dev/null +++ b/MACH_Tutorial_Wing/tacsSetup.py @@ -0,0 +1,43 @@ +import numpy as np +from tacs import elements, constitutive, functions + +# Material properties +rho = 2780.0 # density, kg/m^3 +E = 73.1e9 # elastic modulus, Pa +nu = 0.33 # poisson's ratio +kcorr = 5.0 / 6.0 # shear correction factor +ys = 324.0e6 # yield stress, Pa + +# Shell thickness +t = 0.003 # m +tMin = 0.002 # m +tMax = 0.05 # m + + +def element_callback(dvNum, compID, compDescript, elemDescripts, specialDVs, **kwargs): + # Setup (isotropic) property and constitutive objects + prop = constitutive.MaterialProperties(rho=rho, E=E, nu=nu, ys=ys) + # Set one thickness dv for every component + con = constitutive.IsoShellConstitutive(prop, t=t, tNum=dvNum, tlb=tMin, tub=tMax) + + # For each element type in this component, + # pass back the appropriate tacs element object + transform = None + elem = elements.Quad4Shell(transform, con) + + return elem + + +def problem_setup(scenario_name, fea_assembler, problem): + """ + Helper function to add fixed forces and eval functions + to structural problems used in tacs builder + """ + # Add TACS Functions + # Only include mass from elements that belong to pytacs components (i.e. skip concentrated masses) + problem.addFunction("mass", functions.StructuralMass) + problem.addFunction("ks_vmfailure", functions.KSFailure, safetyFactor=1.0, ksWeight=50.0) + + # Add gravity load + g = np.array([0.0, 0.0, -9.81]) # m/s^2 + problem.addInertialLoad(g) diff --git a/MACH_Tutorial_Wing/wingbox.bdf b/MACH_Tutorial_Wing/wingbox.bdf new file mode 100644 index 00000000..ef388e6b --- /dev/null +++ b/MACH_Tutorial_Wing/wingbox.bdf @@ -0,0 +1,24011 @@ +$ Input file generated by pyLayout +SOL 103 +CEND +BEGIN BULK +$CDSCRPT 1 RIBS/RIB.01/SEG.00 +$CDSCRPT 2 RIBS/RIB.01/SEG.01 +$CDSCRPT 3 RIBS/RIB.01/SEG.02 +$CDSCRPT 4 RIBS/RIB.01/SEG.03 +$CDSCRPT 5 RIBS/RIB.01/SEG.04 +$CDSCRPT 6 RIBS/RIB.01/SEG.05 +$CDSCRPT 7 RIBS/RIB.01/SEG.06 +$CDSCRPT 8 RIBS/RIB.01/SEG.07 +$CDSCRPT 9 RIBS/RIB.01/SEG.08 +$CDSCRPT 10 RIBS/RIB.02/SEG.00 +$CDSCRPT 11 RIBS/RIB.02/SEG.01 +$CDSCRPT 12 RIBS/RIB.02/SEG.02 +$CDSCRPT 13 RIBS/RIB.02/SEG.03 +$CDSCRPT 14 RIBS/RIB.02/SEG.04 +$CDSCRPT 15 RIBS/RIB.02/SEG.05 +$CDSCRPT 16 RIBS/RIB.02/SEG.06 +$CDSCRPT 17 RIBS/RIB.02/SEG.07 +$CDSCRPT 18 RIBS/RIB.02/SEG.08 +$CDSCRPT 19 RIBS/RIB.03/SEG.00 +$CDSCRPT 20 RIBS/RIB.03/SEG.01 +$CDSCRPT 21 RIBS/RIB.03/SEG.02 +$CDSCRPT 22 RIBS/RIB.03/SEG.03 +$CDSCRPT 23 RIBS/RIB.03/SEG.04 +$CDSCRPT 24 RIBS/RIB.03/SEG.05 +$CDSCRPT 25 RIBS/RIB.03/SEG.06 +$CDSCRPT 26 RIBS/RIB.03/SEG.07 +$CDSCRPT 27 RIBS/RIB.03/SEG.08 +$CDSCRPT 28 RIBS/RIB.04/SEG.00 +$CDSCRPT 29 RIBS/RIB.04/SEG.01 +$CDSCRPT 30 RIBS/RIB.04/SEG.02 +$CDSCRPT 31 RIBS/RIB.04/SEG.03 +$CDSCRPT 32 RIBS/RIB.04/SEG.04 +$CDSCRPT 33 RIBS/RIB.04/SEG.05 +$CDSCRPT 34 RIBS/RIB.04/SEG.06 +$CDSCRPT 35 RIBS/RIB.04/SEG.07 +$CDSCRPT 36 RIBS/RIB.04/SEG.08 +$CDSCRPT 37 RIBS/RIB.05/SEG.00 +$CDSCRPT 38 RIBS/RIB.05/SEG.01 +$CDSCRPT 39 RIBS/RIB.05/SEG.02 +$CDSCRPT 40 RIBS/RIB.05/SEG.03 +$CDSCRPT 41 RIBS/RIB.05/SEG.04 +$CDSCRPT 42 RIBS/RIB.05/SEG.05 +$CDSCRPT 43 RIBS/RIB.05/SEG.06 +$CDSCRPT 44 RIBS/RIB.05/SEG.07 +$CDSCRPT 45 RIBS/RIB.05/SEG.08 +$CDSCRPT 46 RIBS/RIB.06/SEG.00 +$CDSCRPT 47 RIBS/RIB.06/SEG.01 +$CDSCRPT 48 RIBS/RIB.06/SEG.02 +$CDSCRPT 49 RIBS/RIB.06/SEG.03 +$CDSCRPT 50 RIBS/RIB.06/SEG.04 +$CDSCRPT 51 RIBS/RIB.06/SEG.05 +$CDSCRPT 52 RIBS/RIB.06/SEG.06 +$CDSCRPT 53 RIBS/RIB.06/SEG.07 +$CDSCRPT 54 RIBS/RIB.06/SEG.08 +$CDSCRPT 55 RIBS/RIB.07/SEG.00 +$CDSCRPT 56 RIBS/RIB.07/SEG.01 +$CDSCRPT 57 RIBS/RIB.07/SEG.02 +$CDSCRPT 58 RIBS/RIB.07/SEG.03 +$CDSCRPT 59 RIBS/RIB.07/SEG.04 +$CDSCRPT 60 RIBS/RIB.07/SEG.05 +$CDSCRPT 61 RIBS/RIB.07/SEG.06 +$CDSCRPT 62 RIBS/RIB.07/SEG.07 +$CDSCRPT 63 RIBS/RIB.07/SEG.08 +$CDSCRPT 64 RIBS/RIB.08/SEG.00 +$CDSCRPT 65 RIBS/RIB.08/SEG.01 +$CDSCRPT 66 RIBS/RIB.08/SEG.02 +$CDSCRPT 67 RIBS/RIB.08/SEG.03 +$CDSCRPT 68 RIBS/RIB.08/SEG.04 +$CDSCRPT 69 RIBS/RIB.08/SEG.05 +$CDSCRPT 70 RIBS/RIB.08/SEG.06 +$CDSCRPT 71 RIBS/RIB.08/SEG.07 +$CDSCRPT 72 RIBS/RIB.08/SEG.08 +$CDSCRPT 73 RIBS/RIB.09/SEG.00 +$CDSCRPT 74 RIBS/RIB.09/SEG.01 +$CDSCRPT 75 RIBS/RIB.09/SEG.02 +$CDSCRPT 76 RIBS/RIB.09/SEG.03 +$CDSCRPT 77 RIBS/RIB.09/SEG.04 +$CDSCRPT 78 RIBS/RIB.09/SEG.05 +$CDSCRPT 79 RIBS/RIB.09/SEG.06 +$CDSCRPT 80 RIBS/RIB.09/SEG.07 +$CDSCRPT 81 RIBS/RIB.09/SEG.08 +$CDSCRPT 82 RIBS/RIB.10/SEG.00 +$CDSCRPT 83 RIBS/RIB.10/SEG.01 +$CDSCRPT 84 RIBS/RIB.10/SEG.02 +$CDSCRPT 85 RIBS/RIB.10/SEG.03 +$CDSCRPT 86 RIBS/RIB.10/SEG.04 +$CDSCRPT 87 RIBS/RIB.10/SEG.05 +$CDSCRPT 88 RIBS/RIB.10/SEG.06 +$CDSCRPT 89 RIBS/RIB.10/SEG.07 +$CDSCRPT 90 RIBS/RIB.10/SEG.08 +$CDSCRPT 91 RIBS/RIB.11/SEG.00 +$CDSCRPT 92 RIBS/RIB.11/SEG.01 +$CDSCRPT 93 RIBS/RIB.11/SEG.02 +$CDSCRPT 94 RIBS/RIB.11/SEG.03 +$CDSCRPT 95 RIBS/RIB.11/SEG.04 +$CDSCRPT 96 RIBS/RIB.11/SEG.05 +$CDSCRPT 97 RIBS/RIB.11/SEG.06 +$CDSCRPT 98 RIBS/RIB.11/SEG.07 +$CDSCRPT 99 RIBS/RIB.11/SEG.08 +$CDSCRPT 100 RIBS/RIB.12/SEG.00 +$CDSCRPT 101 RIBS/RIB.12/SEG.01 +$CDSCRPT 102 RIBS/RIB.12/SEG.02 +$CDSCRPT 103 RIBS/RIB.12/SEG.03 +$CDSCRPT 104 RIBS/RIB.12/SEG.04 +$CDSCRPT 105 RIBS/RIB.12/SEG.05 +$CDSCRPT 106 RIBS/RIB.12/SEG.06 +$CDSCRPT 107 RIBS/RIB.12/SEG.07 +$CDSCRPT 108 RIBS/RIB.12/SEG.08 +$CDSCRPT 109 RIBS/RIB.13/SEG.00 +$CDSCRPT 110 RIBS/RIB.13/SEG.01 +$CDSCRPT 111 RIBS/RIB.13/SEG.02 +$CDSCRPT 112 RIBS/RIB.13/SEG.03 +$CDSCRPT 113 RIBS/RIB.13/SEG.04 +$CDSCRPT 114 RIBS/RIB.13/SEG.05 +$CDSCRPT 115 RIBS/RIB.13/SEG.06 +$CDSCRPT 116 RIBS/RIB.13/SEG.07 +$CDSCRPT 117 RIBS/RIB.13/SEG.08 +$CDSCRPT 118 RIBS/RIB.14/SEG.00 +$CDSCRPT 119 RIBS/RIB.14/SEG.01 +$CDSCRPT 120 RIBS/RIB.14/SEG.02 +$CDSCRPT 121 RIBS/RIB.14/SEG.03 +$CDSCRPT 122 RIBS/RIB.14/SEG.04 +$CDSCRPT 123 RIBS/RIB.14/SEG.05 +$CDSCRPT 124 RIBS/RIB.14/SEG.06 +$CDSCRPT 125 RIBS/RIB.14/SEG.07 +$CDSCRPT 126 RIBS/RIB.14/SEG.08 +$CDSCRPT 127 RIBS/RIB.15/SEG.00 +$CDSCRPT 128 RIBS/RIB.15/SEG.01 +$CDSCRPT 129 RIBS/RIB.15/SEG.02 +$CDSCRPT 130 RIBS/RIB.15/SEG.03 +$CDSCRPT 131 RIBS/RIB.15/SEG.04 +$CDSCRPT 132 RIBS/RIB.15/SEG.05 +$CDSCRPT 133 RIBS/RIB.15/SEG.06 +$CDSCRPT 134 RIBS/RIB.15/SEG.07 +$CDSCRPT 135 RIBS/RIB.15/SEG.08 +$CDSCRPT 136 RIBS/RIB.16/SEG.00 +$CDSCRPT 137 RIBS/RIB.16/SEG.01 +$CDSCRPT 138 RIBS/RIB.16/SEG.02 +$CDSCRPT 139 RIBS/RIB.16/SEG.03 +$CDSCRPT 140 RIBS/RIB.16/SEG.04 +$CDSCRPT 141 RIBS/RIB.16/SEG.05 +$CDSCRPT 142 RIBS/RIB.16/SEG.06 +$CDSCRPT 143 RIBS/RIB.16/SEG.07 +$CDSCRPT 144 RIBS/RIB.16/SEG.08 +$CDSCRPT 145 RIBS/RIB.17/SEG.00 +$CDSCRPT 146 RIBS/RIB.17/SEG.01 +$CDSCRPT 147 RIBS/RIB.17/SEG.02 +$CDSCRPT 148 RIBS/RIB.17/SEG.03 +$CDSCRPT 149 RIBS/RIB.17/SEG.04 +$CDSCRPT 150 RIBS/RIB.17/SEG.05 +$CDSCRPT 151 RIBS/RIB.17/SEG.06 +$CDSCRPT 152 RIBS/RIB.17/SEG.07 +$CDSCRPT 153 RIBS/RIB.17/SEG.08 +$CDSCRPT 154 RIBS/RIB.18/SEG.00 +$CDSCRPT 155 RIBS/RIB.18/SEG.01 +$CDSCRPT 156 RIBS/RIB.18/SEG.02 +$CDSCRPT 157 RIBS/RIB.18/SEG.03 +$CDSCRPT 158 RIBS/RIB.18/SEG.04 +$CDSCRPT 159 RIBS/RIB.18/SEG.05 +$CDSCRPT 160 RIBS/RIB.18/SEG.06 +$CDSCRPT 161 RIBS/RIB.18/SEG.07 +$CDSCRPT 162 RIBS/RIB.18/SEG.08 +$CDSCRPT 163 SPARS/SPAR.00/SEG.00 +$CDSCRPT 164 SPARS/SPAR.00/SEG.01 +$CDSCRPT 165 SPARS/SPAR.00/SEG.02 +$CDSCRPT 166 SPARS/SPAR.00/SEG.03 +$CDSCRPT 167 SPARS/SPAR.00/SEG.04 +$CDSCRPT 168 SPARS/SPAR.00/SEG.05 +$CDSCRPT 169 SPARS/SPAR.00/SEG.06 +$CDSCRPT 170 SPARS/SPAR.00/SEG.07 +$CDSCRPT 171 SPARS/SPAR.00/SEG.08 +$CDSCRPT 172 SPARS/SPAR.00/SEG.09 +$CDSCRPT 173 SPARS/SPAR.00/SEG.10 +$CDSCRPT 174 SPARS/SPAR.00/SEG.11 +$CDSCRPT 175 SPARS/SPAR.00/SEG.12 +$CDSCRPT 176 SPARS/SPAR.00/SEG.13 +$CDSCRPT 177 SPARS/SPAR.00/SEG.14 +$CDSCRPT 178 SPARS/SPAR.00/SEG.15 +$CDSCRPT 179 SPARS/SPAR.00/SEG.16 +$CDSCRPT 180 SPARS/SPAR.00/SEG.17 +$CDSCRPT 181 SPARS/SPAR.09/SEG.00 +$CDSCRPT 182 SPARS/SPAR.09/SEG.01 +$CDSCRPT 183 SPARS/SPAR.09/SEG.02 +$CDSCRPT 184 SPARS/SPAR.09/SEG.03 +$CDSCRPT 185 SPARS/SPAR.09/SEG.04 +$CDSCRPT 186 SPARS/SPAR.09/SEG.05 +$CDSCRPT 187 SPARS/SPAR.09/SEG.06 +$CDSCRPT 188 SPARS/SPAR.09/SEG.07 +$CDSCRPT 189 SPARS/SPAR.09/SEG.08 +$CDSCRPT 190 SPARS/SPAR.09/SEG.09 +$CDSCRPT 191 SPARS/SPAR.09/SEG.10 +$CDSCRPT 192 SPARS/SPAR.09/SEG.11 +$CDSCRPT 193 SPARS/SPAR.09/SEG.12 +$CDSCRPT 194 SPARS/SPAR.09/SEG.13 +$CDSCRPT 195 SPARS/SPAR.09/SEG.14 +$CDSCRPT 196 SPARS/SPAR.09/SEG.15 +$CDSCRPT 197 SPARS/SPAR.09/SEG.16 +$CDSCRPT 198 SPARS/SPAR.09/SEG.17 +$CDSCRPT 199 U_SKIN/U_SKIN.001/SEG.00 +$CDSCRPT 200 L_SKIN/L_SKIN.001/SEG.00 +$CDSCRPT 201 U_SKIN/U_SKIN.002/SEG.00 +$CDSCRPT 202 L_SKIN/L_SKIN.002/SEG.00 +$CDSCRPT 203 U_SKIN/U_SKIN.003/SEG.00 +$CDSCRPT 204 L_SKIN/L_SKIN.003/SEG.00 +$CDSCRPT 205 U_SKIN/U_SKIN.004/SEG.00 +$CDSCRPT 206 L_SKIN/L_SKIN.004/SEG.00 +$CDSCRPT 207 U_SKIN/U_SKIN.005/SEG.00 +$CDSCRPT 208 L_SKIN/L_SKIN.005/SEG.00 +$CDSCRPT 209 U_SKIN/U_SKIN.006/SEG.00 +$CDSCRPT 210 L_SKIN/L_SKIN.006/SEG.00 +$CDSCRPT 211 U_SKIN/U_SKIN.007/SEG.00 +$CDSCRPT 212 L_SKIN/L_SKIN.007/SEG.00 +$CDSCRPT 213 U_SKIN/U_SKIN.008/SEG.00 +$CDSCRPT 214 L_SKIN/L_SKIN.008/SEG.00 +$CDSCRPT 215 U_SKIN/U_SKIN.009/SEG.00 +$CDSCRPT 216 L_SKIN/L_SKIN.009/SEG.00 +$CDSCRPT 217 U_STRING/U_STRING.01/SEG.00 +$CDSCRPT 218 L_STRING/L_STRING.01/SEG.00 +$CDSCRPT 219 U_STRING/U_STRING.02/SEG.00 +$CDSCRPT 220 L_STRING/L_STRING.02/SEG.00 +$CDSCRPT 221 U_STRING/U_STRING.03/SEG.00 +$CDSCRPT 222 L_STRING/L_STRING.03/SEG.00 +$CDSCRPT 223 U_STRING/U_STRING.04/SEG.00 +$CDSCRPT 224 L_STRING/L_STRING.04/SEG.00 +$CDSCRPT 225 U_STRING/U_STRING.05/SEG.00 +$CDSCRPT 226 L_STRING/L_STRING.05/SEG.00 +$CDSCRPT 227 U_STRING/U_STRING.06/SEG.00 +$CDSCRPT 228 L_STRING/L_STRING.06/SEG.00 +$CDSCRPT 229 U_STRING/U_STRING.07/SEG.00 +$CDSCRPT 230 L_STRING/L_STRING.07/SEG.00 +$CDSCRPT 231 U_STRING/U_STRING.08/SEG.00 +$CDSCRPT 232 L_STRING/L_STRING.08/SEG.00 +$CDSCRPT 233 U_SKIN/U_SKIN.010/SEG.00 +$CDSCRPT 234 L_SKIN/L_SKIN.010/SEG.00 +$CDSCRPT 235 U_SKIN/U_SKIN.011/SEG.00 +$CDSCRPT 236 L_SKIN/L_SKIN.011/SEG.00 +$CDSCRPT 237 U_SKIN/U_SKIN.012/SEG.00 +$CDSCRPT 238 L_SKIN/L_SKIN.012/SEG.00 +$CDSCRPT 239 U_SKIN/U_SKIN.013/SEG.00 +$CDSCRPT 240 L_SKIN/L_SKIN.013/SEG.00 +$CDSCRPT 241 U_SKIN/U_SKIN.014/SEG.00 +$CDSCRPT 242 L_SKIN/L_SKIN.014/SEG.00 +$CDSCRPT 243 U_SKIN/U_SKIN.015/SEG.00 +$CDSCRPT 244 L_SKIN/L_SKIN.015/SEG.00 +$CDSCRPT 245 U_SKIN/U_SKIN.016/SEG.00 +$CDSCRPT 246 L_SKIN/L_SKIN.016/SEG.00 +$CDSCRPT 247 U_SKIN/U_SKIN.017/SEG.00 +$CDSCRPT 248 L_SKIN/L_SKIN.017/SEG.00 +$CDSCRPT 249 U_SKIN/U_SKIN.018/SEG.00 +$CDSCRPT 250 L_SKIN/L_SKIN.018/SEG.00 +$CDSCRPT 251 U_STRING/U_STRING.01/SEG.01 +$CDSCRPT 252 L_STRING/L_STRING.01/SEG.01 +$CDSCRPT 253 U_STRING/U_STRING.02/SEG.01 +$CDSCRPT 254 L_STRING/L_STRING.02/SEG.01 +$CDSCRPT 255 U_STRING/U_STRING.03/SEG.01 +$CDSCRPT 256 L_STRING/L_STRING.03/SEG.01 +$CDSCRPT 257 U_STRING/U_STRING.04/SEG.01 +$CDSCRPT 258 L_STRING/L_STRING.04/SEG.01 +$CDSCRPT 259 U_STRING/U_STRING.05/SEG.01 +$CDSCRPT 260 L_STRING/L_STRING.05/SEG.01 +$CDSCRPT 261 U_STRING/U_STRING.06/SEG.01 +$CDSCRPT 262 L_STRING/L_STRING.06/SEG.01 +$CDSCRPT 263 U_STRING/U_STRING.07/SEG.01 +$CDSCRPT 264 L_STRING/L_STRING.07/SEG.01 +$CDSCRPT 265 U_STRING/U_STRING.08/SEG.01 +$CDSCRPT 266 L_STRING/L_STRING.08/SEG.01 +$CDSCRPT 267 U_SKIN/U_SKIN.019/SEG.00 +$CDSCRPT 268 L_SKIN/L_SKIN.019/SEG.00 +$CDSCRPT 269 U_SKIN/U_SKIN.020/SEG.00 +$CDSCRPT 270 L_SKIN/L_SKIN.020/SEG.00 +$CDSCRPT 271 U_SKIN/U_SKIN.021/SEG.00 +$CDSCRPT 272 L_SKIN/L_SKIN.021/SEG.00 +$CDSCRPT 273 U_SKIN/U_SKIN.022/SEG.00 +$CDSCRPT 274 L_SKIN/L_SKIN.022/SEG.00 +$CDSCRPT 275 U_SKIN/U_SKIN.023/SEG.00 +$CDSCRPT 276 L_SKIN/L_SKIN.023/SEG.00 +$CDSCRPT 277 U_SKIN/U_SKIN.024/SEG.00 +$CDSCRPT 278 L_SKIN/L_SKIN.024/SEG.00 +$CDSCRPT 279 U_SKIN/U_SKIN.025/SEG.00 +$CDSCRPT 280 L_SKIN/L_SKIN.025/SEG.00 +$CDSCRPT 281 U_SKIN/U_SKIN.026/SEG.00 +$CDSCRPT 282 L_SKIN/L_SKIN.026/SEG.00 +$CDSCRPT 283 U_SKIN/U_SKIN.027/SEG.00 +$CDSCRPT 284 L_SKIN/L_SKIN.027/SEG.00 +$CDSCRPT 285 U_STRING/U_STRING.01/SEG.02 +$CDSCRPT 286 L_STRING/L_STRING.01/SEG.02 +$CDSCRPT 287 U_STRING/U_STRING.02/SEG.02 +$CDSCRPT 288 L_STRING/L_STRING.02/SEG.02 +$CDSCRPT 289 U_STRING/U_STRING.03/SEG.02 +$CDSCRPT 290 L_STRING/L_STRING.03/SEG.02 +$CDSCRPT 291 U_STRING/U_STRING.04/SEG.02 +$CDSCRPT 292 L_STRING/L_STRING.04/SEG.02 +$CDSCRPT 293 U_STRING/U_STRING.05/SEG.02 +$CDSCRPT 294 L_STRING/L_STRING.05/SEG.02 +$CDSCRPT 295 U_STRING/U_STRING.06/SEG.02 +$CDSCRPT 296 L_STRING/L_STRING.06/SEG.02 +$CDSCRPT 297 U_STRING/U_STRING.07/SEG.02 +$CDSCRPT 298 L_STRING/L_STRING.07/SEG.02 +$CDSCRPT 299 U_STRING/U_STRING.08/SEG.02 +$CDSCRPT 300 L_STRING/L_STRING.08/SEG.02 +$CDSCRPT 301 U_SKIN/U_SKIN.028/SEG.00 +$CDSCRPT 302 L_SKIN/L_SKIN.028/SEG.00 +$CDSCRPT 303 U_SKIN/U_SKIN.029/SEG.00 +$CDSCRPT 304 L_SKIN/L_SKIN.029/SEG.00 +$CDSCRPT 305 U_SKIN/U_SKIN.030/SEG.00 +$CDSCRPT 306 L_SKIN/L_SKIN.030/SEG.00 +$CDSCRPT 307 U_SKIN/U_SKIN.031/SEG.00 +$CDSCRPT 308 L_SKIN/L_SKIN.031/SEG.00 +$CDSCRPT 309 U_SKIN/U_SKIN.032/SEG.00 +$CDSCRPT 310 L_SKIN/L_SKIN.032/SEG.00 +$CDSCRPT 311 U_SKIN/U_SKIN.033/SEG.00 +$CDSCRPT 312 L_SKIN/L_SKIN.033/SEG.00 +$CDSCRPT 313 U_SKIN/U_SKIN.034/SEG.00 +$CDSCRPT 314 L_SKIN/L_SKIN.034/SEG.00 +$CDSCRPT 315 U_SKIN/U_SKIN.035/SEG.00 +$CDSCRPT 316 L_SKIN/L_SKIN.035/SEG.00 +$CDSCRPT 317 U_SKIN/U_SKIN.036/SEG.00 +$CDSCRPT 318 L_SKIN/L_SKIN.036/SEG.00 +$CDSCRPT 319 U_STRING/U_STRING.01/SEG.03 +$CDSCRPT 320 L_STRING/L_STRING.01/SEG.03 +$CDSCRPT 321 U_STRING/U_STRING.02/SEG.03 +$CDSCRPT 322 L_STRING/L_STRING.02/SEG.03 +$CDSCRPT 323 U_STRING/U_STRING.03/SEG.03 +$CDSCRPT 324 L_STRING/L_STRING.03/SEG.03 +$CDSCRPT 325 U_STRING/U_STRING.04/SEG.03 +$CDSCRPT 326 L_STRING/L_STRING.04/SEG.03 +$CDSCRPT 327 U_STRING/U_STRING.05/SEG.03 +$CDSCRPT 328 L_STRING/L_STRING.05/SEG.03 +$CDSCRPT 329 U_STRING/U_STRING.06/SEG.03 +$CDSCRPT 330 L_STRING/L_STRING.06/SEG.03 +$CDSCRPT 331 U_STRING/U_STRING.07/SEG.03 +$CDSCRPT 332 L_STRING/L_STRING.07/SEG.03 +$CDSCRPT 333 U_STRING/U_STRING.08/SEG.03 +$CDSCRPT 334 L_STRING/L_STRING.08/SEG.03 +$CDSCRPT 335 U_SKIN/U_SKIN.037/SEG.00 +$CDSCRPT 336 L_SKIN/L_SKIN.037/SEG.00 +$CDSCRPT 337 U_SKIN/U_SKIN.038/SEG.00 +$CDSCRPT 338 L_SKIN/L_SKIN.038/SEG.00 +$CDSCRPT 339 U_SKIN/U_SKIN.039/SEG.00 +$CDSCRPT 340 L_SKIN/L_SKIN.039/SEG.00 +$CDSCRPT 341 U_SKIN/U_SKIN.040/SEG.00 +$CDSCRPT 342 L_SKIN/L_SKIN.040/SEG.00 +$CDSCRPT 343 U_SKIN/U_SKIN.041/SEG.00 +$CDSCRPT 344 L_SKIN/L_SKIN.041/SEG.00 +$CDSCRPT 345 U_SKIN/U_SKIN.042/SEG.00 +$CDSCRPT 346 L_SKIN/L_SKIN.042/SEG.00 +$CDSCRPT 347 U_SKIN/U_SKIN.043/SEG.00 +$CDSCRPT 348 L_SKIN/L_SKIN.043/SEG.00 +$CDSCRPT 349 U_SKIN/U_SKIN.044/SEG.00 +$CDSCRPT 350 L_SKIN/L_SKIN.044/SEG.00 +$CDSCRPT 351 U_SKIN/U_SKIN.045/SEG.00 +$CDSCRPT 352 L_SKIN/L_SKIN.045/SEG.00 +$CDSCRPT 353 U_STRING/U_STRING.01/SEG.04 +$CDSCRPT 354 L_STRING/L_STRING.01/SEG.04 +$CDSCRPT 355 U_STRING/U_STRING.02/SEG.04 +$CDSCRPT 356 L_STRING/L_STRING.02/SEG.04 +$CDSCRPT 357 U_STRING/U_STRING.03/SEG.04 +$CDSCRPT 358 L_STRING/L_STRING.03/SEG.04 +$CDSCRPT 359 U_STRING/U_STRING.04/SEG.04 +$CDSCRPT 360 L_STRING/L_STRING.04/SEG.04 +$CDSCRPT 361 U_STRING/U_STRING.05/SEG.04 +$CDSCRPT 362 L_STRING/L_STRING.05/SEG.04 +$CDSCRPT 363 U_STRING/U_STRING.06/SEG.04 +$CDSCRPT 364 L_STRING/L_STRING.06/SEG.04 +$CDSCRPT 365 U_STRING/U_STRING.07/SEG.04 +$CDSCRPT 366 L_STRING/L_STRING.07/SEG.04 +$CDSCRPT 367 U_STRING/U_STRING.08/SEG.04 +$CDSCRPT 368 L_STRING/L_STRING.08/SEG.04 +$CDSCRPT 369 U_SKIN/U_SKIN.046/SEG.00 +$CDSCRPT 370 L_SKIN/L_SKIN.046/SEG.00 +$CDSCRPT 371 U_SKIN/U_SKIN.047/SEG.00 +$CDSCRPT 372 L_SKIN/L_SKIN.047/SEG.00 +$CDSCRPT 373 U_SKIN/U_SKIN.048/SEG.00 +$CDSCRPT 374 L_SKIN/L_SKIN.048/SEG.00 +$CDSCRPT 375 U_SKIN/U_SKIN.049/SEG.00 +$CDSCRPT 376 L_SKIN/L_SKIN.049/SEG.00 +$CDSCRPT 377 U_SKIN/U_SKIN.050/SEG.00 +$CDSCRPT 378 L_SKIN/L_SKIN.050/SEG.00 +$CDSCRPT 379 U_SKIN/U_SKIN.051/SEG.00 +$CDSCRPT 380 L_SKIN/L_SKIN.051/SEG.00 +$CDSCRPT 381 U_SKIN/U_SKIN.052/SEG.00 +$CDSCRPT 382 L_SKIN/L_SKIN.052/SEG.00 +$CDSCRPT 383 U_SKIN/U_SKIN.053/SEG.00 +$CDSCRPT 384 L_SKIN/L_SKIN.053/SEG.00 +$CDSCRPT 385 U_SKIN/U_SKIN.054/SEG.00 +$CDSCRPT 386 L_SKIN/L_SKIN.054/SEG.00 +$CDSCRPT 387 U_STRING/U_STRING.01/SEG.05 +$CDSCRPT 388 L_STRING/L_STRING.01/SEG.05 +$CDSCRPT 389 U_STRING/U_STRING.02/SEG.05 +$CDSCRPT 390 L_STRING/L_STRING.02/SEG.05 +$CDSCRPT 391 U_STRING/U_STRING.03/SEG.05 +$CDSCRPT 392 L_STRING/L_STRING.03/SEG.05 +$CDSCRPT 393 U_STRING/U_STRING.04/SEG.05 +$CDSCRPT 394 L_STRING/L_STRING.04/SEG.05 +$CDSCRPT 395 U_STRING/U_STRING.05/SEG.05 +$CDSCRPT 396 L_STRING/L_STRING.05/SEG.05 +$CDSCRPT 397 U_STRING/U_STRING.06/SEG.05 +$CDSCRPT 398 L_STRING/L_STRING.06/SEG.05 +$CDSCRPT 399 U_STRING/U_STRING.07/SEG.05 +$CDSCRPT 400 L_STRING/L_STRING.07/SEG.05 +$CDSCRPT 401 U_STRING/U_STRING.08/SEG.05 +$CDSCRPT 402 L_STRING/L_STRING.08/SEG.05 +$CDSCRPT 403 U_SKIN/U_SKIN.055/SEG.00 +$CDSCRPT 404 L_SKIN/L_SKIN.055/SEG.00 +$CDSCRPT 405 U_SKIN/U_SKIN.056/SEG.00 +$CDSCRPT 406 L_SKIN/L_SKIN.056/SEG.00 +$CDSCRPT 407 U_SKIN/U_SKIN.057/SEG.00 +$CDSCRPT 408 L_SKIN/L_SKIN.057/SEG.00 +$CDSCRPT 409 U_SKIN/U_SKIN.058/SEG.00 +$CDSCRPT 410 L_SKIN/L_SKIN.058/SEG.00 +$CDSCRPT 411 U_SKIN/U_SKIN.059/SEG.00 +$CDSCRPT 412 L_SKIN/L_SKIN.059/SEG.00 +$CDSCRPT 413 U_SKIN/U_SKIN.060/SEG.00 +$CDSCRPT 414 L_SKIN/L_SKIN.060/SEG.00 +$CDSCRPT 415 U_SKIN/U_SKIN.061/SEG.00 +$CDSCRPT 416 L_SKIN/L_SKIN.061/SEG.00 +$CDSCRPT 417 U_SKIN/U_SKIN.062/SEG.00 +$CDSCRPT 418 L_SKIN/L_SKIN.062/SEG.00 +$CDSCRPT 419 U_SKIN/U_SKIN.063/SEG.00 +$CDSCRPT 420 L_SKIN/L_SKIN.063/SEG.00 +$CDSCRPT 421 U_STRING/U_STRING.01/SEG.06 +$CDSCRPT 422 L_STRING/L_STRING.01/SEG.06 +$CDSCRPT 423 U_STRING/U_STRING.02/SEG.06 +$CDSCRPT 424 L_STRING/L_STRING.02/SEG.06 +$CDSCRPT 425 U_STRING/U_STRING.03/SEG.06 +$CDSCRPT 426 L_STRING/L_STRING.03/SEG.06 +$CDSCRPT 427 U_STRING/U_STRING.04/SEG.06 +$CDSCRPT 428 L_STRING/L_STRING.04/SEG.06 +$CDSCRPT 429 U_STRING/U_STRING.05/SEG.06 +$CDSCRPT 430 L_STRING/L_STRING.05/SEG.06 +$CDSCRPT 431 U_STRING/U_STRING.06/SEG.06 +$CDSCRPT 432 L_STRING/L_STRING.06/SEG.06 +$CDSCRPT 433 U_STRING/U_STRING.07/SEG.06 +$CDSCRPT 434 L_STRING/L_STRING.07/SEG.06 +$CDSCRPT 435 U_STRING/U_STRING.08/SEG.06 +$CDSCRPT 436 L_STRING/L_STRING.08/SEG.06 +$CDSCRPT 437 U_SKIN/U_SKIN.064/SEG.00 +$CDSCRPT 438 L_SKIN/L_SKIN.064/SEG.00 +$CDSCRPT 439 U_SKIN/U_SKIN.065/SEG.00 +$CDSCRPT 440 L_SKIN/L_SKIN.065/SEG.00 +$CDSCRPT 441 U_SKIN/U_SKIN.066/SEG.00 +$CDSCRPT 442 L_SKIN/L_SKIN.066/SEG.00 +$CDSCRPT 443 U_SKIN/U_SKIN.067/SEG.00 +$CDSCRPT 444 L_SKIN/L_SKIN.067/SEG.00 +$CDSCRPT 445 U_SKIN/U_SKIN.068/SEG.00 +$CDSCRPT 446 L_SKIN/L_SKIN.068/SEG.00 +$CDSCRPT 447 U_SKIN/U_SKIN.069/SEG.00 +$CDSCRPT 448 L_SKIN/L_SKIN.069/SEG.00 +$CDSCRPT 449 U_SKIN/U_SKIN.070/SEG.00 +$CDSCRPT 450 L_SKIN/L_SKIN.070/SEG.00 +$CDSCRPT 451 U_SKIN/U_SKIN.071/SEG.00 +$CDSCRPT 452 L_SKIN/L_SKIN.071/SEG.00 +$CDSCRPT 453 U_SKIN/U_SKIN.072/SEG.00 +$CDSCRPT 454 L_SKIN/L_SKIN.072/SEG.00 +$CDSCRPT 455 U_STRING/U_STRING.01/SEG.07 +$CDSCRPT 456 L_STRING/L_STRING.01/SEG.07 +$CDSCRPT 457 U_STRING/U_STRING.02/SEG.07 +$CDSCRPT 458 L_STRING/L_STRING.02/SEG.07 +$CDSCRPT 459 U_STRING/U_STRING.03/SEG.07 +$CDSCRPT 460 L_STRING/L_STRING.03/SEG.07 +$CDSCRPT 461 U_STRING/U_STRING.04/SEG.07 +$CDSCRPT 462 L_STRING/L_STRING.04/SEG.07 +$CDSCRPT 463 U_STRING/U_STRING.05/SEG.07 +$CDSCRPT 464 L_STRING/L_STRING.05/SEG.07 +$CDSCRPT 465 U_STRING/U_STRING.06/SEG.07 +$CDSCRPT 466 L_STRING/L_STRING.06/SEG.07 +$CDSCRPT 467 U_STRING/U_STRING.07/SEG.07 +$CDSCRPT 468 L_STRING/L_STRING.07/SEG.07 +$CDSCRPT 469 U_STRING/U_STRING.08/SEG.07 +$CDSCRPT 470 L_STRING/L_STRING.08/SEG.07 +$CDSCRPT 471 U_SKIN/U_SKIN.073/SEG.00 +$CDSCRPT 472 L_SKIN/L_SKIN.073/SEG.00 +$CDSCRPT 473 U_SKIN/U_SKIN.074/SEG.00 +$CDSCRPT 474 L_SKIN/L_SKIN.074/SEG.00 +$CDSCRPT 475 U_SKIN/U_SKIN.075/SEG.00 +$CDSCRPT 476 L_SKIN/L_SKIN.075/SEG.00 +$CDSCRPT 477 U_SKIN/U_SKIN.076/SEG.00 +$CDSCRPT 478 L_SKIN/L_SKIN.076/SEG.00 +$CDSCRPT 479 U_SKIN/U_SKIN.077/SEG.00 +$CDSCRPT 480 L_SKIN/L_SKIN.077/SEG.00 +$CDSCRPT 481 U_SKIN/U_SKIN.078/SEG.00 +$CDSCRPT 482 L_SKIN/L_SKIN.078/SEG.00 +$CDSCRPT 483 U_SKIN/U_SKIN.079/SEG.00 +$CDSCRPT 484 L_SKIN/L_SKIN.079/SEG.00 +$CDSCRPT 485 U_SKIN/U_SKIN.080/SEG.00 +$CDSCRPT 486 L_SKIN/L_SKIN.080/SEG.00 +$CDSCRPT 487 U_SKIN/U_SKIN.081/SEG.00 +$CDSCRPT 488 L_SKIN/L_SKIN.081/SEG.00 +$CDSCRPT 489 U_STRING/U_STRING.01/SEG.08 +$CDSCRPT 490 L_STRING/L_STRING.01/SEG.08 +$CDSCRPT 491 U_STRING/U_STRING.02/SEG.08 +$CDSCRPT 492 L_STRING/L_STRING.02/SEG.08 +$CDSCRPT 493 U_STRING/U_STRING.03/SEG.08 +$CDSCRPT 494 L_STRING/L_STRING.03/SEG.08 +$CDSCRPT 495 U_STRING/U_STRING.04/SEG.08 +$CDSCRPT 496 L_STRING/L_STRING.04/SEG.08 +$CDSCRPT 497 U_STRING/U_STRING.05/SEG.08 +$CDSCRPT 498 L_STRING/L_STRING.05/SEG.08 +$CDSCRPT 499 U_STRING/U_STRING.06/SEG.08 +$CDSCRPT 500 L_STRING/L_STRING.06/SEG.08 +$CDSCRPT 501 U_STRING/U_STRING.07/SEG.08 +$CDSCRPT 502 L_STRING/L_STRING.07/SEG.08 +$CDSCRPT 503 U_STRING/U_STRING.08/SEG.08 +$CDSCRPT 504 L_STRING/L_STRING.08/SEG.08 +$CDSCRPT 505 U_SKIN/U_SKIN.082/SEG.00 +$CDSCRPT 506 L_SKIN/L_SKIN.082/SEG.00 +$CDSCRPT 507 U_SKIN/U_SKIN.083/SEG.00 +$CDSCRPT 508 L_SKIN/L_SKIN.083/SEG.00 +$CDSCRPT 509 U_SKIN/U_SKIN.084/SEG.00 +$CDSCRPT 510 L_SKIN/L_SKIN.084/SEG.00 +$CDSCRPT 511 U_SKIN/U_SKIN.085/SEG.00 +$CDSCRPT 512 L_SKIN/L_SKIN.085/SEG.00 +$CDSCRPT 513 U_SKIN/U_SKIN.086/SEG.00 +$CDSCRPT 514 L_SKIN/L_SKIN.086/SEG.00 +$CDSCRPT 515 U_SKIN/U_SKIN.087/SEG.00 +$CDSCRPT 516 L_SKIN/L_SKIN.087/SEG.00 +$CDSCRPT 517 U_SKIN/U_SKIN.088/SEG.00 +$CDSCRPT 518 L_SKIN/L_SKIN.088/SEG.00 +$CDSCRPT 519 U_SKIN/U_SKIN.089/SEG.00 +$CDSCRPT 520 L_SKIN/L_SKIN.089/SEG.00 +$CDSCRPT 521 U_SKIN/U_SKIN.090/SEG.00 +$CDSCRPT 522 L_SKIN/L_SKIN.090/SEG.00 +$CDSCRPT 523 U_STRING/U_STRING.01/SEG.09 +$CDSCRPT 524 L_STRING/L_STRING.01/SEG.09 +$CDSCRPT 525 U_STRING/U_STRING.02/SEG.09 +$CDSCRPT 526 L_STRING/L_STRING.02/SEG.09 +$CDSCRPT 527 U_STRING/U_STRING.03/SEG.09 +$CDSCRPT 528 L_STRING/L_STRING.03/SEG.09 +$CDSCRPT 529 U_STRING/U_STRING.04/SEG.09 +$CDSCRPT 530 L_STRING/L_STRING.04/SEG.09 +$CDSCRPT 531 U_STRING/U_STRING.05/SEG.09 +$CDSCRPT 532 L_STRING/L_STRING.05/SEG.09 +$CDSCRPT 533 U_STRING/U_STRING.06/SEG.09 +$CDSCRPT 534 L_STRING/L_STRING.06/SEG.09 +$CDSCRPT 535 U_STRING/U_STRING.07/SEG.09 +$CDSCRPT 536 L_STRING/L_STRING.07/SEG.09 +$CDSCRPT 537 U_STRING/U_STRING.08/SEG.09 +$CDSCRPT 538 L_STRING/L_STRING.08/SEG.09 +$CDSCRPT 539 U_SKIN/U_SKIN.091/SEG.00 +$CDSCRPT 540 L_SKIN/L_SKIN.091/SEG.00 +$CDSCRPT 541 U_SKIN/U_SKIN.092/SEG.00 +$CDSCRPT 542 L_SKIN/L_SKIN.092/SEG.00 +$CDSCRPT 543 U_SKIN/U_SKIN.093/SEG.00 +$CDSCRPT 544 L_SKIN/L_SKIN.093/SEG.00 +$CDSCRPT 545 U_SKIN/U_SKIN.094/SEG.00 +$CDSCRPT 546 L_SKIN/L_SKIN.094/SEG.00 +$CDSCRPT 547 U_SKIN/U_SKIN.095/SEG.00 +$CDSCRPT 548 L_SKIN/L_SKIN.095/SEG.00 +$CDSCRPT 549 U_SKIN/U_SKIN.096/SEG.00 +$CDSCRPT 550 L_SKIN/L_SKIN.096/SEG.00 +$CDSCRPT 551 U_SKIN/U_SKIN.097/SEG.00 +$CDSCRPT 552 L_SKIN/L_SKIN.097/SEG.00 +$CDSCRPT 553 U_SKIN/U_SKIN.098/SEG.00 +$CDSCRPT 554 L_SKIN/L_SKIN.098/SEG.00 +$CDSCRPT 555 U_SKIN/U_SKIN.099/SEG.00 +$CDSCRPT 556 L_SKIN/L_SKIN.099/SEG.00 +$CDSCRPT 557 U_STRING/U_STRING.01/SEG.10 +$CDSCRPT 558 L_STRING/L_STRING.01/SEG.10 +$CDSCRPT 559 U_STRING/U_STRING.02/SEG.10 +$CDSCRPT 560 L_STRING/L_STRING.02/SEG.10 +$CDSCRPT 561 U_STRING/U_STRING.03/SEG.10 +$CDSCRPT 562 L_STRING/L_STRING.03/SEG.10 +$CDSCRPT 563 U_STRING/U_STRING.04/SEG.10 +$CDSCRPT 564 L_STRING/L_STRING.04/SEG.10 +$CDSCRPT 565 U_STRING/U_STRING.05/SEG.10 +$CDSCRPT 566 L_STRING/L_STRING.05/SEG.10 +$CDSCRPT 567 U_STRING/U_STRING.06/SEG.10 +$CDSCRPT 568 L_STRING/L_STRING.06/SEG.10 +$CDSCRPT 569 U_STRING/U_STRING.07/SEG.10 +$CDSCRPT 570 L_STRING/L_STRING.07/SEG.10 +$CDSCRPT 571 U_STRING/U_STRING.08/SEG.10 +$CDSCRPT 572 L_STRING/L_STRING.08/SEG.10 +$CDSCRPT 573 U_SKIN/U_SKIN.100/SEG.00 +$CDSCRPT 574 L_SKIN/L_SKIN.100/SEG.00 +$CDSCRPT 575 U_SKIN/U_SKIN.101/SEG.00 +$CDSCRPT 576 L_SKIN/L_SKIN.101/SEG.00 +$CDSCRPT 577 U_SKIN/U_SKIN.102/SEG.00 +$CDSCRPT 578 L_SKIN/L_SKIN.102/SEG.00 +$CDSCRPT 579 U_SKIN/U_SKIN.103/SEG.00 +$CDSCRPT 580 L_SKIN/L_SKIN.103/SEG.00 +$CDSCRPT 581 U_SKIN/U_SKIN.104/SEG.00 +$CDSCRPT 582 L_SKIN/L_SKIN.104/SEG.00 +$CDSCRPT 583 U_SKIN/U_SKIN.105/SEG.00 +$CDSCRPT 584 L_SKIN/L_SKIN.105/SEG.00 +$CDSCRPT 585 U_SKIN/U_SKIN.106/SEG.00 +$CDSCRPT 586 L_SKIN/L_SKIN.106/SEG.00 +$CDSCRPT 587 U_SKIN/U_SKIN.107/SEG.00 +$CDSCRPT 588 L_SKIN/L_SKIN.107/SEG.00 +$CDSCRPT 589 U_SKIN/U_SKIN.108/SEG.00 +$CDSCRPT 590 L_SKIN/L_SKIN.108/SEG.00 +$CDSCRPT 591 U_STRING/U_STRING.01/SEG.11 +$CDSCRPT 592 L_STRING/L_STRING.01/SEG.11 +$CDSCRPT 593 U_STRING/U_STRING.02/SEG.11 +$CDSCRPT 594 L_STRING/L_STRING.02/SEG.11 +$CDSCRPT 595 U_STRING/U_STRING.03/SEG.11 +$CDSCRPT 596 L_STRING/L_STRING.03/SEG.11 +$CDSCRPT 597 U_STRING/U_STRING.04/SEG.11 +$CDSCRPT 598 L_STRING/L_STRING.04/SEG.11 +$CDSCRPT 599 U_STRING/U_STRING.05/SEG.11 +$CDSCRPT 600 L_STRING/L_STRING.05/SEG.11 +$CDSCRPT 601 U_STRING/U_STRING.06/SEG.11 +$CDSCRPT 602 L_STRING/L_STRING.06/SEG.11 +$CDSCRPT 603 U_STRING/U_STRING.07/SEG.11 +$CDSCRPT 604 L_STRING/L_STRING.07/SEG.11 +$CDSCRPT 605 U_STRING/U_STRING.08/SEG.11 +$CDSCRPT 606 L_STRING/L_STRING.08/SEG.11 +$CDSCRPT 607 U_SKIN/U_SKIN.109/SEG.00 +$CDSCRPT 608 L_SKIN/L_SKIN.109/SEG.00 +$CDSCRPT 609 U_SKIN/U_SKIN.110/SEG.00 +$CDSCRPT 610 L_SKIN/L_SKIN.110/SEG.00 +$CDSCRPT 611 U_SKIN/U_SKIN.111/SEG.00 +$CDSCRPT 612 L_SKIN/L_SKIN.111/SEG.00 +$CDSCRPT 613 U_SKIN/U_SKIN.112/SEG.00 +$CDSCRPT 614 L_SKIN/L_SKIN.112/SEG.00 +$CDSCRPT 615 U_SKIN/U_SKIN.113/SEG.00 +$CDSCRPT 616 L_SKIN/L_SKIN.113/SEG.00 +$CDSCRPT 617 U_SKIN/U_SKIN.114/SEG.00 +$CDSCRPT 618 L_SKIN/L_SKIN.114/SEG.00 +$CDSCRPT 619 U_SKIN/U_SKIN.115/SEG.00 +$CDSCRPT 620 L_SKIN/L_SKIN.115/SEG.00 +$CDSCRPT 621 U_SKIN/U_SKIN.116/SEG.00 +$CDSCRPT 622 L_SKIN/L_SKIN.116/SEG.00 +$CDSCRPT 623 U_SKIN/U_SKIN.117/SEG.00 +$CDSCRPT 624 L_SKIN/L_SKIN.117/SEG.00 +$CDSCRPT 625 U_STRING/U_STRING.01/SEG.12 +$CDSCRPT 626 L_STRING/L_STRING.01/SEG.12 +$CDSCRPT 627 U_STRING/U_STRING.02/SEG.12 +$CDSCRPT 628 L_STRING/L_STRING.02/SEG.12 +$CDSCRPT 629 U_STRING/U_STRING.03/SEG.12 +$CDSCRPT 630 L_STRING/L_STRING.03/SEG.12 +$CDSCRPT 631 U_STRING/U_STRING.04/SEG.12 +$CDSCRPT 632 L_STRING/L_STRING.04/SEG.12 +$CDSCRPT 633 U_STRING/U_STRING.05/SEG.12 +$CDSCRPT 634 L_STRING/L_STRING.05/SEG.12 +$CDSCRPT 635 U_STRING/U_STRING.06/SEG.12 +$CDSCRPT 636 L_STRING/L_STRING.06/SEG.12 +$CDSCRPT 637 U_STRING/U_STRING.07/SEG.12 +$CDSCRPT 638 L_STRING/L_STRING.07/SEG.12 +$CDSCRPT 639 U_STRING/U_STRING.08/SEG.12 +$CDSCRPT 640 L_STRING/L_STRING.08/SEG.12 +$CDSCRPT 641 U_SKIN/U_SKIN.118/SEG.00 +$CDSCRPT 642 L_SKIN/L_SKIN.118/SEG.00 +$CDSCRPT 643 U_SKIN/U_SKIN.119/SEG.00 +$CDSCRPT 644 L_SKIN/L_SKIN.119/SEG.00 +$CDSCRPT 645 U_SKIN/U_SKIN.120/SEG.00 +$CDSCRPT 646 L_SKIN/L_SKIN.120/SEG.00 +$CDSCRPT 647 U_SKIN/U_SKIN.121/SEG.00 +$CDSCRPT 648 L_SKIN/L_SKIN.121/SEG.00 +$CDSCRPT 649 U_SKIN/U_SKIN.122/SEG.00 +$CDSCRPT 650 L_SKIN/L_SKIN.122/SEG.00 +$CDSCRPT 651 U_SKIN/U_SKIN.123/SEG.00 +$CDSCRPT 652 L_SKIN/L_SKIN.123/SEG.00 +$CDSCRPT 653 U_SKIN/U_SKIN.124/SEG.00 +$CDSCRPT 654 L_SKIN/L_SKIN.124/SEG.00 +$CDSCRPT 655 U_SKIN/U_SKIN.125/SEG.00 +$CDSCRPT 656 L_SKIN/L_SKIN.125/SEG.00 +$CDSCRPT 657 U_SKIN/U_SKIN.126/SEG.00 +$CDSCRPT 658 L_SKIN/L_SKIN.126/SEG.00 +$CDSCRPT 659 U_STRING/U_STRING.01/SEG.13 +$CDSCRPT 660 L_STRING/L_STRING.01/SEG.13 +$CDSCRPT 661 U_STRING/U_STRING.02/SEG.13 +$CDSCRPT 662 L_STRING/L_STRING.02/SEG.13 +$CDSCRPT 663 U_STRING/U_STRING.03/SEG.13 +$CDSCRPT 664 L_STRING/L_STRING.03/SEG.13 +$CDSCRPT 665 U_STRING/U_STRING.04/SEG.13 +$CDSCRPT 666 L_STRING/L_STRING.04/SEG.13 +$CDSCRPT 667 U_STRING/U_STRING.05/SEG.13 +$CDSCRPT 668 L_STRING/L_STRING.05/SEG.13 +$CDSCRPT 669 U_STRING/U_STRING.06/SEG.13 +$CDSCRPT 670 L_STRING/L_STRING.06/SEG.13 +$CDSCRPT 671 U_STRING/U_STRING.07/SEG.13 +$CDSCRPT 672 L_STRING/L_STRING.07/SEG.13 +$CDSCRPT 673 U_STRING/U_STRING.08/SEG.13 +$CDSCRPT 674 L_STRING/L_STRING.08/SEG.13 +$CDSCRPT 675 U_SKIN/U_SKIN.127/SEG.00 +$CDSCRPT 676 L_SKIN/L_SKIN.127/SEG.00 +$CDSCRPT 677 U_SKIN/U_SKIN.128/SEG.00 +$CDSCRPT 678 L_SKIN/L_SKIN.128/SEG.00 +$CDSCRPT 679 U_SKIN/U_SKIN.129/SEG.00 +$CDSCRPT 680 L_SKIN/L_SKIN.129/SEG.00 +$CDSCRPT 681 U_SKIN/U_SKIN.130/SEG.00 +$CDSCRPT 682 L_SKIN/L_SKIN.130/SEG.00 +$CDSCRPT 683 U_SKIN/U_SKIN.131/SEG.00 +$CDSCRPT 684 L_SKIN/L_SKIN.131/SEG.00 +$CDSCRPT 685 U_SKIN/U_SKIN.132/SEG.00 +$CDSCRPT 686 L_SKIN/L_SKIN.132/SEG.00 +$CDSCRPT 687 U_SKIN/U_SKIN.133/SEG.00 +$CDSCRPT 688 L_SKIN/L_SKIN.133/SEG.00 +$CDSCRPT 689 U_SKIN/U_SKIN.134/SEG.00 +$CDSCRPT 690 L_SKIN/L_SKIN.134/SEG.00 +$CDSCRPT 691 U_SKIN/U_SKIN.135/SEG.00 +$CDSCRPT 692 L_SKIN/L_SKIN.135/SEG.00 +$CDSCRPT 693 U_STRING/U_STRING.01/SEG.14 +$CDSCRPT 694 L_STRING/L_STRING.01/SEG.14 +$CDSCRPT 695 U_STRING/U_STRING.02/SEG.14 +$CDSCRPT 696 L_STRING/L_STRING.02/SEG.14 +$CDSCRPT 697 U_STRING/U_STRING.03/SEG.14 +$CDSCRPT 698 L_STRING/L_STRING.03/SEG.14 +$CDSCRPT 699 U_STRING/U_STRING.04/SEG.14 +$CDSCRPT 700 L_STRING/L_STRING.04/SEG.14 +$CDSCRPT 701 U_STRING/U_STRING.05/SEG.14 +$CDSCRPT 702 L_STRING/L_STRING.05/SEG.14 +$CDSCRPT 703 U_STRING/U_STRING.06/SEG.14 +$CDSCRPT 704 L_STRING/L_STRING.06/SEG.14 +$CDSCRPT 705 U_STRING/U_STRING.07/SEG.14 +$CDSCRPT 706 L_STRING/L_STRING.07/SEG.14 +$CDSCRPT 707 U_STRING/U_STRING.08/SEG.14 +$CDSCRPT 708 L_STRING/L_STRING.08/SEG.14 +$CDSCRPT 709 U_SKIN/U_SKIN.136/SEG.00 +$CDSCRPT 710 L_SKIN/L_SKIN.136/SEG.00 +$CDSCRPT 711 U_SKIN/U_SKIN.137/SEG.00 +$CDSCRPT 712 L_SKIN/L_SKIN.137/SEG.00 +$CDSCRPT 713 U_SKIN/U_SKIN.138/SEG.00 +$CDSCRPT 714 L_SKIN/L_SKIN.138/SEG.00 +$CDSCRPT 715 U_SKIN/U_SKIN.139/SEG.00 +$CDSCRPT 716 L_SKIN/L_SKIN.139/SEG.00 +$CDSCRPT 717 U_SKIN/U_SKIN.140/SEG.00 +$CDSCRPT 718 L_SKIN/L_SKIN.140/SEG.00 +$CDSCRPT 719 U_SKIN/U_SKIN.141/SEG.00 +$CDSCRPT 720 L_SKIN/L_SKIN.141/SEG.00 +$CDSCRPT 721 U_SKIN/U_SKIN.142/SEG.00 +$CDSCRPT 722 L_SKIN/L_SKIN.142/SEG.00 +$CDSCRPT 723 U_SKIN/U_SKIN.143/SEG.00 +$CDSCRPT 724 L_SKIN/L_SKIN.143/SEG.00 +$CDSCRPT 725 U_SKIN/U_SKIN.144/SEG.00 +$CDSCRPT 726 L_SKIN/L_SKIN.144/SEG.00 +$CDSCRPT 727 U_STRING/U_STRING.01/SEG.15 +$CDSCRPT 728 L_STRING/L_STRING.01/SEG.15 +$CDSCRPT 729 U_STRING/U_STRING.02/SEG.15 +$CDSCRPT 730 L_STRING/L_STRING.02/SEG.15 +$CDSCRPT 731 U_STRING/U_STRING.03/SEG.15 +$CDSCRPT 732 L_STRING/L_STRING.03/SEG.15 +$CDSCRPT 733 U_STRING/U_STRING.04/SEG.15 +$CDSCRPT 734 L_STRING/L_STRING.04/SEG.15 +$CDSCRPT 735 U_STRING/U_STRING.05/SEG.15 +$CDSCRPT 736 L_STRING/L_STRING.05/SEG.15 +$CDSCRPT 737 U_STRING/U_STRING.06/SEG.15 +$CDSCRPT 738 L_STRING/L_STRING.06/SEG.15 +$CDSCRPT 739 U_STRING/U_STRING.07/SEG.15 +$CDSCRPT 740 L_STRING/L_STRING.07/SEG.15 +$CDSCRPT 741 U_STRING/U_STRING.08/SEG.15 +$CDSCRPT 742 L_STRING/L_STRING.08/SEG.15 +$CDSCRPT 743 U_SKIN/U_SKIN.145/SEG.00 +$CDSCRPT 744 L_SKIN/L_SKIN.145/SEG.00 +$CDSCRPT 745 U_SKIN/U_SKIN.146/SEG.00 +$CDSCRPT 746 L_SKIN/L_SKIN.146/SEG.00 +$CDSCRPT 747 U_SKIN/U_SKIN.147/SEG.00 +$CDSCRPT 748 L_SKIN/L_SKIN.147/SEG.00 +$CDSCRPT 749 U_SKIN/U_SKIN.148/SEG.00 +$CDSCRPT 750 L_SKIN/L_SKIN.148/SEG.00 +$CDSCRPT 751 U_SKIN/U_SKIN.149/SEG.00 +$CDSCRPT 752 L_SKIN/L_SKIN.149/SEG.00 +$CDSCRPT 753 U_SKIN/U_SKIN.150/SEG.00 +$CDSCRPT 754 L_SKIN/L_SKIN.150/SEG.00 +$CDSCRPT 755 U_SKIN/U_SKIN.151/SEG.00 +$CDSCRPT 756 L_SKIN/L_SKIN.151/SEG.00 +$CDSCRPT 757 U_SKIN/U_SKIN.152/SEG.00 +$CDSCRPT 758 L_SKIN/L_SKIN.152/SEG.00 +$CDSCRPT 759 U_SKIN/U_SKIN.153/SEG.00 +$CDSCRPT 760 L_SKIN/L_SKIN.153/SEG.00 +$CDSCRPT 761 U_STRING/U_STRING.01/SEG.16 +$CDSCRPT 762 L_STRING/L_STRING.01/SEG.16 +$CDSCRPT 763 U_STRING/U_STRING.02/SEG.16 +$CDSCRPT 764 L_STRING/L_STRING.02/SEG.16 +$CDSCRPT 765 U_STRING/U_STRING.03/SEG.16 +$CDSCRPT 766 L_STRING/L_STRING.03/SEG.16 +$CDSCRPT 767 U_STRING/U_STRING.04/SEG.16 +$CDSCRPT 768 L_STRING/L_STRING.04/SEG.16 +$CDSCRPT 769 U_STRING/U_STRING.05/SEG.16 +$CDSCRPT 770 L_STRING/L_STRING.05/SEG.16 +$CDSCRPT 771 U_STRING/U_STRING.06/SEG.16 +$CDSCRPT 772 L_STRING/L_STRING.06/SEG.16 +$CDSCRPT 773 U_STRING/U_STRING.07/SEG.16 +$CDSCRPT 774 L_STRING/L_STRING.07/SEG.16 +$CDSCRPT 775 U_STRING/U_STRING.08/SEG.16 +$CDSCRPT 776 L_STRING/L_STRING.08/SEG.16 +$CDSCRPT 777 U_SKIN/U_SKIN.154/SEG.00 +$CDSCRPT 778 L_SKIN/L_SKIN.154/SEG.00 +$CDSCRPT 779 U_SKIN/U_SKIN.155/SEG.00 +$CDSCRPT 780 L_SKIN/L_SKIN.155/SEG.00 +$CDSCRPT 781 U_SKIN/U_SKIN.156/SEG.00 +$CDSCRPT 782 L_SKIN/L_SKIN.156/SEG.00 +$CDSCRPT 783 U_SKIN/U_SKIN.157/SEG.00 +$CDSCRPT 784 L_SKIN/L_SKIN.157/SEG.00 +$CDSCRPT 785 U_SKIN/U_SKIN.158/SEG.00 +$CDSCRPT 786 L_SKIN/L_SKIN.158/SEG.00 +$CDSCRPT 787 U_SKIN/U_SKIN.159/SEG.00 +$CDSCRPT 788 L_SKIN/L_SKIN.159/SEG.00 +$CDSCRPT 789 U_SKIN/U_SKIN.160/SEG.00 +$CDSCRPT 790 L_SKIN/L_SKIN.160/SEG.00 +$CDSCRPT 791 U_SKIN/U_SKIN.161/SEG.00 +$CDSCRPT 792 L_SKIN/L_SKIN.161/SEG.00 +$CDSCRPT 793 U_SKIN/U_SKIN.162/SEG.00 +$CDSCRPT 794 L_SKIN/L_SKIN.162/SEG.00 +$CDSCRPT 795 U_STRING/U_STRING.01/SEG.17 +$CDSCRPT 796 L_STRING/L_STRING.01/SEG.17 +$CDSCRPT 797 U_STRING/U_STRING.02/SEG.17 +$CDSCRPT 798 L_STRING/L_STRING.02/SEG.17 +$CDSCRPT 799 U_STRING/U_STRING.03/SEG.17 +$CDSCRPT 800 L_STRING/L_STRING.03/SEG.17 +$CDSCRPT 801 U_STRING/U_STRING.04/SEG.17 +$CDSCRPT 802 L_STRING/L_STRING.04/SEG.17 +$CDSCRPT 803 U_STRING/U_STRING.05/SEG.17 +$CDSCRPT 804 L_STRING/L_STRING.05/SEG.17 +$CDSCRPT 805 U_STRING/U_STRING.06/SEG.17 +$CDSCRPT 806 L_STRING/L_STRING.06/SEG.17 +$CDSCRPT 807 U_STRING/U_STRING.07/SEG.17 +$CDSCRPT 808 L_STRING/L_STRING.07/SEG.17 +$CDSCRPT 809 U_STRING/U_STRING.08/SEG.17 +$CDSCRPT 810 L_STRING/L_STRING.08/SEG.17 +GRID* 1 0 1.250000000e+00 2.372638263e-01* +* 7.550000000e-01 0 0 +GRID* 2 0 1.250000000e+00 7.923697094e-02* +* 7.550000000e-01 0 0 +GRID* 3 0 1.250000000e+00-7.878988443e-02* +* 7.550000000e-01 0 0 +GRID* 4 0 1.250000000e+00-2.368167398e-01* +* 7.550000000e-01 0 0 +GRID* 5 0 1.402777778e+00 2.528787858e-01* +* 7.550000000e-01 0 0 +GRID* 6 0 1.402777778e+00 8.479292407e-02* +* 7.550000000e-01 0 0 +GRID* 7 0 1.402777778e+00-8.329293770e-02* +* 7.550000000e-01 0 0 +GRID* 8 0 1.402777778e+00-2.513787995e-01* +* 7.550000000e-01 0 0 +GRID* 9 0 1.555555556e+00 2.657110924e-01* +* 7.550000000e-01 0 0 +GRID* 10 0 1.555555556e+00 8.946416830e-02* +* 7.550000000e-01 0 0 +GRID* 11 0 1.555555556e+00-8.678275581e-02* +* 7.550000000e-01 0 0 +GRID* 12 0 1.555555556e+00-2.630296799e-01* +* 7.550000000e-01 0 0 +GRID* 13 0 1.708333333e+00 2.762529643e-01* +* 7.550000000e-01 0 0 +GRID* 14 0 1.708333333e+00 9.337351288e-02* +* 7.550000000e-01 0 0 +GRID* 15 0 1.708333333e+00-8.950593855e-02* +* 7.550000000e-01 0 0 +GRID* 16 0 1.708333333e+00-2.723853900e-01* +* 7.550000000e-01 0 0 +GRID* 17 0 1.861111111e+00 2.851949764e-01* +* 7.550000000e-01 0 0 +GRID* 18 0 1.861111111e+00 9.690886693e-02* +* 7.550000000e-01 0 0 +GRID* 19 0 1.861111111e+00-9.137724250e-02* +* 7.550000000e-01 0 0 +GRID* 20 0 1.861111111e+00-2.796633519e-01* +* 7.550000000e-01 0 0 +GRID* 21 0 2.013888889e+00 2.923453489e-01* +* 7.550000000e-01 0 0 +GRID* 22 0 2.013888889e+00 1.002315341e-01* +* 7.550000000e-01 0 0 +GRID* 23 0 2.013888889e+00-9.188228081e-02* +* 7.550000000e-01 0 0 +GRID* 24 0 2.013888889e+00-2.839960957e-01* +* 7.550000000e-01 0 0 +GRID* 25 0 2.166666667e+00 2.977288015e-01* +* 7.550000000e-01 0 0 +GRID* 26 0 2.166666667e+00 1.036268512e-01* +* 7.550000000e-01 0 0 +GRID* 27 0 2.166666667e+00-9.047509910e-02* +* 7.550000000e-01 0 0 +GRID* 28 0 2.166666667e+00-2.845770494e-01* +* 7.550000000e-01 0 0 +GRID* 29 0 2.319444444e+00 3.012027776e-01* +* 7.550000000e-01 0 0 +GRID* 30 0 2.319444444e+00 1.072128745e-01* +* 7.550000000e-01 0 0 +GRID* 31 0 2.319444444e+00-8.677702856e-02* +* 7.550000000e-01 0 0 +GRID* 32 0 2.319444444e+00-2.807669317e-01* +* 7.550000000e-01 0 0 +GRID* 33 0 2.472222222e+00 3.027047688e-01* +* 7.550000000e-01 0 0 +GRID* 34 0 2.472222222e+00 1.109368635e-01* +* 7.550000000e-01 0 0 +GRID* 35 0 2.472222222e+00-8.083104175e-02* +* 7.550000000e-01 0 0 +GRID* 36 0 2.472222222e+00-2.725989470e-01* +* 7.550000000e-01 0 0 +GRID* 37 0 2.625000000e+00 3.022078844e-01* +* 7.550000000e-01 0 0 +GRID* 38 0 2.625000000e+00 1.145172114e-01* +* 7.550000000e-01 0 0 +GRID* 39 0 2.625000000e+00-7.317346168e-02* +* 7.550000000e-01 0 0 +GRID* 40 0 2.625000000e+00-2.608641347e-01* +* 7.550000000e-01 0 0 +GRID* 41 0 2.777777778e+00 2.995513395e-01* +* 7.550000000e-01 0 0 +GRID* 42 0 2.777777778e+00 1.177299991e-01* +* 7.550000000e-01 0 0 +GRID* 43 0 2.777777778e+00-6.409134131e-02* +* 7.550000000e-01 0 0 +GRID* 44 0 2.777777778e+00-2.459126817e-01* +* 7.550000000e-01 0 0 +GRID* 45 0 2.930555556e+00 2.948303639e-01* +* 7.550000000e-01 0 0 +GRID* 46 0 2.930555556e+00 1.203347214e-01* +* 7.550000000e-01 0 0 +GRID* 47 0 2.930555556e+00-5.416092101e-02* +* 7.550000000e-01 0 0 +GRID* 48 0 2.930555556e+00-2.286565635e-01* +* 7.550000000e-01 0 0 +GRID* 49 0 3.083333333e+00 2.877918596e-01* +* 7.550000000e-01 0 0 +GRID* 50 0 3.083333333e+00 1.220831799e-01* +* 7.550000000e-01 0 0 +GRID* 51 0 3.083333333e+00-4.362549974e-02* +* 7.550000000e-01 0 0 +GRID* 52 0 3.083333333e+00-2.093341794e-01* +* 7.550000000e-01 0 0 +GRID* 53 0 3.236111111e+00 2.787134870e-01* +* 7.550000000e-01 0 0 +GRID* 54 0 3.236111111e+00 1.229107086e-01* +* 7.550000000e-01 0 0 +GRID* 55 0 3.236111111e+00-3.289206992e-02* +* 7.550000000e-01 0 0 +GRID* 56 0 3.236111111e+00-1.886948484e-01* +* 7.550000000e-01 0 0 +GRID* 57 0 3.388888889e+00 2.672502475e-01* +* 7.550000000e-01 0 0 +GRID* 58 0 3.388888889e+00 1.225033809e-01* +* 7.550000000e-01 0 0 +GRID* 59 0 3.388888889e+00-2.224348567e-02* +* 7.550000000e-01 0 0 +GRID* 60 0 3.388888889e+00-1.669903522e-01* +* 7.550000000e-01 0 0 +GRID* 61 0 3.541666667e+00 2.537998778e-01* +* 7.550000000e-01 0 0 +GRID* 62 0 3.541666667e+00 1.209262504e-01* +* 7.550000000e-01 0 0 +GRID* 63 0 3.541666667e+00-1.194737699e-02* +* 7.550000000e-01 0 0 +GRID* 64 0 3.541666667e+00-1.448210044e-01* +* 7.550000000e-01 0 0 +GRID* 65 0 3.694444444e+00 2.381194635e-01* +* 7.550000000e-01 0 0 +GRID* 66 0 3.694444444e+00 1.178885712e-01* +* 7.550000000e-01 0 0 +GRID* 67 0 3.694444444e+00-2.342321206e-03* +* 7.550000000e-01 0 0 +GRID* 68 0 3.694444444e+00-1.225732136e-01* +* 7.550000000e-01 0 0 +GRID* 69 0 3.847222222e+00 2.207821916e-01* +* 7.550000000e-01 0 0 +GRID* 70 0 3.847222222e+00 1.136232576e-01* +* 7.550000000e-01 0 0 +GRID* 71 0 3.847222222e+00 6.464323524e-03* +* 7.550000000e-01 0 0 +GRID* 72 0 3.847222222e+00-1.006946105e-01* +* 7.550000000e-01 0 0 +GRID* 73 0 4.000000000e+00 2.017718160e-01* +* 7.550000000e-01 0 0 +GRID* 74 0 4.000000000e+00 1.079762327e-01* +* 7.550000000e-01 0 0 +GRID* 75 0 4.000000000e+00 1.418064948e-02* +* 7.550000000e-01 0 0 +GRID* 76 0 4.000000000e+00-7.961493376e-02* +* 7.550000000e-01 0 0 +GRID* 77 0 1.250000000e+00 1.732894229e-01* +* 1.500000000e+00 0 0 +GRID* 78 0 1.250000000e+00 5.734554819e-02* +* 1.500000000e+00 0 0 +GRID* 79 0 1.250000000e+00-5.859832651e-02* +* 1.500000000e+00 0 0 +GRID* 80 0 1.250000000e+00-1.745422012e-01* +* 1.500000000e+00 0 0 +GRID* 81 0 1.402777778e+00 1.989368136e-01* +* 1.500000000e+00 0 0 +GRID* 82 0 1.402777778e+00 6.603631834e-02* +* 1.500000000e+00 0 0 +GRID* 83 0 1.402777778e+00-6.686417696e-02* +* 1.500000000e+00 0 0 +GRID* 84 0 1.402777778e+00-1.997646723e-01* +* 1.500000000e+00 0 0 +GRID* 85 0 1.555555556e+00 2.205266504e-01* +* 1.500000000e+00 0 0 +GRID* 86 0 1.555555556e+00 7.351464499e-02* +* 1.500000000e+00 0 0 +GRID* 87 0 1.555555556e+00-7.349736041e-02* +* 1.500000000e+00 0 0 +GRID* 88 0 1.555555556e+00-2.205093658e-01* +* 1.500000000e+00 0 0 +GRID* 89 0 1.708333333e+00 2.379508898e-01* +* 1.500000000e+00 0 0 +GRID* 90 0 1.708333333e+00 7.966079882e-02* +* 1.500000000e+00 0 0 +GRID* 91 0 1.708333333e+00-7.862929214e-02* +* 1.500000000e+00 0 0 +GRID* 92 0 1.708333333e+00-2.369193831e-01* +* 1.500000000e+00 0 0 +GRID* 93 0 1.861111111e+00 2.515323577e-01* +* 1.500000000e+00 0 0 +GRID* 94 0 1.861111111e+00 8.457191018e-02* +* 1.500000000e+00 0 0 +GRID* 95 0 1.861111111e+00-8.238853739e-02* +* 1.500000000e+00 0 0 +GRID* 96 0 1.861111111e+00-2.493489850e-01* +* 1.500000000e+00 0 0 +GRID* 97 0 2.013888889e+00 2.627696794e-01* +* 1.500000000e+00 0 0 +GRID* 98 0 2.013888889e+00 8.871624473e-02* +* 1.500000000e+00 0 0 +GRID* 99 0 2.013888889e+00-8.533718997e-02* +* 1.500000000e+00 0 0 +GRID* 100 0 2.013888889e+00-2.593906247e-01* +* 1.500000000e+00 0 0 +GRID* 101 0 2.166666667e+00 2.721301068e-01* +* 1.500000000e+00 0 0 +GRID* 102 0 2.166666667e+00 9.231285459e-02* +* 1.500000000e+00 0 0 +GRID* 103 0 2.166666667e+00-8.750439759e-02* +* 1.500000000e+00 0 0 +GRID* 104 0 2.166666667e+00-2.673216498e-01* +* 1.500000000e+00 0 0 +GRID* 105 0 2.319444444e+00 2.796949002e-01* +* 1.500000000e+00 0 0 +GRID* 106 0 2.319444444e+00 9.568086217e-02* +* 1.500000000e+00 0 0 +GRID* 107 0 2.319444444e+00-8.833317582e-02* +* 1.500000000e+00 0 0 +GRID* 108 0 2.319444444e+00-2.723472138e-01* +* 1.500000000e+00 0 0 +GRID* 109 0 2.472222222e+00 2.854937485e-01* +* 1.500000000e+00 0 0 +GRID* 110 0 2.472222222e+00 9.901787806e-02* +* 1.500000000e+00 0 0 +GRID* 111 0 2.472222222e+00-8.745799235e-02* +* 1.500000000e+00 0 0 +GRID* 112 0 2.472222222e+00-2.739338628e-01* +* 1.500000000e+00 0 0 +GRID* 113 0 2.625000000e+00 2.891825729e-01* +* 1.500000000e+00 0 0 +GRID* 114 0 2.625000000e+00 1.026003813e-01* +* 1.500000000e+00 0 0 +GRID* 115 0 2.625000000e+00-8.398181039e-02* +* 1.500000000e+00 0 0 +GRID* 116 0 2.625000000e+00-2.705640020e-01* +* 1.500000000e+00 0 0 +GRID* 117 0 2.777777778e+00 2.909669636e-01* +* 1.500000000e+00 0 0 +GRID* 118 0 2.777777778e+00 1.063205637e-01* +* 1.500000000e+00 0 0 +GRID* 119 0 2.777777778e+00-7.832583620e-02* +* 1.500000000e+00 0 0 +GRID* 120 0 2.777777778e+00-2.629722361e-01* +* 1.500000000e+00 0 0 +GRID* 121 0 2.930555556e+00 2.905648700e-01* +* 1.500000000e+00 0 0 +GRID* 122 0 2.930555556e+00 1.099109598e-01* +* 1.500000000e+00 0 0 +GRID* 123 0 2.930555556e+00-7.074295038e-02* +* 1.500000000e+00 0 0 +GRID* 124 0 2.930555556e+00-2.513968606e-01* +* 1.500000000e+00 0 0 +GRID* 125 0 3.083333333e+00 2.879981108e-01* +* 1.500000000e+00 0 0 +GRID* 126 0 3.083333333e+00 1.131411488e-01* +* 1.500000000e+00 0 0 +GRID* 127 0 3.083333333e+00-6.171581321e-02* +* 1.500000000e+00 0 0 +GRID* 128 0 3.083333333e+00-2.365727752e-01* +* 1.500000000e+00 0 0 +GRID* 129 0 3.236111111e+00 2.832694212e-01* +* 1.500000000e+00 0 0 +GRID* 130 0 3.236111111e+00 1.157425930e-01* +* 1.500000000e+00 0 0 +GRID* 131 0 3.236111111e+00-5.178423519e-02* +* 1.500000000e+00 0 0 +GRID* 132 0 3.236111111e+00-2.193110634e-01* +* 1.500000000e+00 0 0 +GRID* 133 0 3.388888889e+00 2.761068014e-01* +* 1.500000000e+00 0 0 +GRID* 134 0 3.388888889e+00 1.174386923e-01* +* 1.500000000e+00 0 0 +GRID* 135 0 3.388888889e+00-4.122941676e-02* +* 1.500000000e+00 0 0 +GRID* 136 0 3.388888889e+00-1.998975258e-01* +* 1.500000000e+00 0 0 +GRID* 137 0 3.541666667e+00 2.668065543e-01* +* 1.500000000e+00 0 0 +GRID* 138 0 3.541666667e+00 1.181625363e-01* +* 1.500000000e+00 0 0 +GRID* 139 0 3.541666667e+00-3.048148165e-02* +* 1.500000000e+00 0 0 +GRID* 140 0 3.541666667e+00-1.791254996e-01* +* 1.500000000e+00 0 0 +GRID* 141 0 3.694444444e+00 2.551074058e-01* +* 1.500000000e+00 0 0 +GRID* 142 0 3.694444444e+00 1.176170396e-01* +* 1.500000000e+00 0 0 +GRID* 143 0 3.694444444e+00-1.987332656e-02* +* 1.500000000e+00 0 0 +GRID* 144 0 3.694444444e+00-1.573636928e-01* +* 1.500000000e+00 0 0 +GRID* 145 0 3.847222222e+00 2.411937406e-01* +* 1.500000000e+00 0 0 +GRID* 146 0 3.847222222e+00 1.157479428e-01* +* 1.500000000e+00 0 0 +GRID* 147 0 3.847222222e+00-9.697855024e-03* +* 1.500000000e+00 0 0 +GRID* 148 0 3.847222222e+00-1.351436529e-01* +* 1.500000000e+00 0 0 +GRID* 149 0 4.000000000e+00 2.252587846e-01* +* 1.500000000e+00 0 0 +GRID* 150 0 4.000000000e+00 1.125306101e-01* +* 1.500000000e+00 0 0 +GRID* 151 0 4.000000000e+00-1.975644771e-04* +* 1.500000000e+00 0 0 +GRID* 152 0 4.000000000e+00-1.129257390e-01* +* 1.500000000e+00 0 0 +GRID* 153 0 1.652343750e+00 1.664320552e-01* +* 2.281312500e+00 0 0 +GRID* 154 0 1.652343750e+00 5.507884978e-02* +* 2.281312500e+00 0 0 +GRID* 155 0 1.652343750e+00-5.627435567e-02* +* 2.281312500e+00 0 0 +GRID* 156 0 1.652343750e+00-1.676275611e-01* +* 2.281312500e+00 0 0 +GRID* 157 0 1.798177083e+00 1.908794256e-01* +* 2.281312500e+00 0 0 +GRID* 158 0 1.798177083e+00 6.336432892e-02* +* 2.281312500e+00 0 0 +GRID* 159 0 1.798177083e+00-6.415076779e-02* +* 2.281312500e+00 0 0 +GRID* 160 0 1.798177083e+00-1.916658645e-01* +* 2.281312500e+00 0 0 +GRID* 161 0 1.944010417e+00 2.114187517e-01* +* 2.281312500e+00 0 0 +GRID* 162 0 1.944010417e+00 7.048138069e-02* +* 2.281312500e+00 0 0 +GRID* 163 0 1.944010417e+00-7.045599026e-02* +* 2.281312500e+00 0 0 +GRID* 164 0 1.944010417e+00-2.113933612e-01* +* 2.281312500e+00 0 0 +GRID* 165 0 2.089843750e+00 2.280261257e-01* +* 2.281312500e+00 0 0 +GRID* 166 0 2.089843750e+00 7.634624185e-02* +* 2.281312500e+00 0 0 +GRID* 167 0 2.089843750e+00-7.533364198e-02* +* 2.281312500e+00 0 0 +GRID* 168 0 2.089843750e+00-2.270135258e-01* +* 2.281312500e+00 0 0 +GRID* 169 0 2.235677083e+00 2.409636000e-01* +* 2.281312500e+00 0 0 +GRID* 170 0 2.235677083e+00 8.101984691e-02* +* 2.281312500e+00 0 0 +GRID* 171 0 2.235677083e+00-7.892390618e-02* +* 2.281312500e+00 0 0 +GRID* 172 0 2.235677083e+00-2.388676593e-01* +* 2.281312500e+00 0 0 +GRID* 173 0 2.381510417e+00 2.516835420e-01* +* 2.281312500e+00 0 0 +GRID* 174 0 2.381510417e+00 8.497375957e-02* +* 2.281312500e+00 0 0 +GRID* 175 0 2.381510417e+00-8.173602283e-02* +* 2.281312500e+00 0 0 +GRID* 176 0 2.381510417e+00-2.484458052e-01* +* 2.281312500e+00 0 0 +GRID* 177 0 2.527343750e+00 2.606190376e-01* +* 2.281312500e+00 0 0 +GRID* 178 0 2.527343750e+00 8.840705038e-02* +* 2.281312500e+00 0 0 +GRID* 179 0 2.527343750e+00-8.380493688e-02* +* 2.281312500e+00 0 0 +GRID* 180 0 2.527343750e+00-2.560169241e-01* +* 2.281312500e+00 0 0 +GRID* 181 0 2.673177083e+00 2.678480552e-01* +* 2.281312500e+00 0 0 +GRID* 182 0 2.673177083e+00 9.162263142e-02* +* 2.281312500e+00 0 0 +GRID* 183 0 2.673177083e+00-8.460279239e-02* +* 2.281312500e+00 0 0 +GRID* 184 0 2.673177083e+00-2.608282162e-01* +* 2.281312500e+00 0 0 +GRID* 185 0 2.819010417e+00 2.733911437e-01* +* 2.281312500e+00 0 0 +GRID* 186 0 2.819010417e+00 9.480523674e-02* +* 2.281312500e+00 0 0 +GRID* 187 0 2.819010417e+00-8.378067025e-02* +* 2.281312500e+00 0 0 +GRID* 188 0 2.819010417e+00-2.623665773e-01* +* 2.281312500e+00 0 0 +GRID* 189 0 2.964843750e+00 2.769362543e-01* +* 2.281312500e+00 0 0 +GRID* 190 0 2.964843750e+00 9.822460602e-02* +* 2.281312500e+00 0 0 +GRID* 191 0 2.964843750e+00-8.048704229e-02* +* 2.281312500e+00 0 0 +GRID* 192 0 2.964843750e+00-2.591986906e-01* +* 2.281312500e+00 0 0 +GRID* 193 0 3.110677083e+00 2.786751938e-01* +* 2.281312500e+00 0 0 +GRID* 194 0 3.110677083e+00 1.017758963e-01* +* 2.281312500e+00 0 0 +GRID* 195 0 3.110677083e+00-7.512340115e-02* +* 2.281312500e+00 0 0 +GRID* 196 0 3.110677083e+00-2.520226986e-01* +* 2.281312500e+00 0 0 +GRID* 197 0 3.256510417e+00 2.783138410e-01* +* 2.281312500e+00 0 0 +GRID* 198 0 3.256510417e+00 1.052057630e-01* +* 2.281312500e+00 0 0 +GRID* 199 0 3.256510417e+00-6.790231512e-02* +* 2.281312500e+00 0 0 +GRID* 200 0 3.256510417e+00-2.410103932e-01* +* 2.281312500e+00 0 0 +GRID* 201 0 3.402343750e+00 2.759184688e-01* +* 2.281312500e+00 0 0 +GRID* 202 0 3.402343750e+00 1.083017365e-01* +* 2.281312500e+00 0 0 +GRID* 203 0 3.402343750e+00-5.931499576e-02* +* 2.281312500e+00 0 0 +GRID* 204 0 3.402343750e+00-2.269317280e-01* +* 2.281312500e+00 0 0 +GRID* 205 0 3.548177083e+00 2.714371356e-01* +* 2.281312500e+00 0 0 +GRID* 206 0 3.548177083e+00 1.107956723e-01* +* 2.281312500e+00 0 0 +GRID* 207 0 3.548177083e+00-4.984579095e-02* +* 2.281312500e+00 0 0 +GRID* 208 0 3.548177083e+00-2.104872542e-01* +* 2.281312500e+00 0 0 +GRID* 209 0 3.694010417e+00 2.646739627e-01* +* 2.281312500e+00 0 0 +GRID* 210 0 3.694010417e+00 1.124447399e-01* +* 2.281312500e+00 0 0 +GRID* 211 0 3.694010417e+00-3.978448299e-02* +* 2.281312500e+00 0 0 +GRID* 212 0 3.694010417e+00-1.920137058e-01* +* 2.281312500e+00 0 0 +GRID* 213 0 3.839843750e+00 2.558818998e-01* +* 2.281312500e+00 0 0 +GRID* 214 0 3.839843750e+00 1.131781463e-01* +* 2.281312500e+00 0 0 +GRID* 215 0 3.839843750e+00-2.952560722e-02* +* 2.281312500e+00 0 0 +GRID* 216 0 3.839843750e+00-1.722293607e-01* +* 2.281312500e+00 0 0 +GRID* 217 0 3.985677083e+00 2.447616526e-01* +* 2.281312500e+00 0 0 +GRID* 218 0 3.985677083e+00 1.126840340e-01* +* 2.281312500e+00 0 0 +GRID* 219 0 3.985677083e+00-1.939358454e-02* +* 2.281312500e+00 0 0 +GRID* 220 0 3.985677083e+00-1.514712031e-01* +* 2.281312500e+00 0 0 +GRID* 221 0 4.131510417e+00 2.315786241e-01* +* 2.281312500e+00 0 0 +GRID* 222 0 4.131510417e+00 1.109616470e-01* +* 2.281312500e+00 0 0 +GRID* 223 0 4.131510417e+00-9.655330075e-03* +* 2.281312500e+00 0 0 +GRID* 224 0 4.131510417e+00-1.302723071e-01* +* 2.281312500e+00 0 0 +GRID* 225 0 4.277343750e+00 2.164157514e-01* +* 2.281312500e+00 0 0 +GRID* 226 0 4.277343750e+00 1.079259251e-01* +* 2.281312500e+00 0 0 +GRID* 227 0 4.277343750e+00-5.639011488e-04* +* 2.281312500e+00 0 0 +GRID* 228 0 4.277343750e+00-1.090537274e-01* +* 2.281312500e+00 0 0 +GRID* 229 0 2.054687500e+00 1.595746876e-01* +* 3.062625000e+00 0 0 +GRID* 230 0 2.054687500e+00 5.281215138e-02* +* 3.062625000e+00 0 0 +GRID* 231 0 2.054687500e+00-5.395038482e-02* +* 3.062625000e+00 0 0 +GRID* 232 0 2.054687500e+00-1.607129210e-01* +* 3.062625000e+00 0 0 +GRID* 233 0 2.193576389e+00 1.828220376e-01* +* 3.062625000e+00 0 0 +GRID* 234 0 2.193576389e+00 6.069233950e-02* +* 3.062625000e+00 0 0 +GRID* 235 0 2.193576389e+00-6.143735863e-02* +* 3.062625000e+00 0 0 +GRID* 236 0 2.193576389e+00-1.835670568e-01* +* 3.062625000e+00 0 0 +GRID* 237 0 2.332465278e+00 2.023108529e-01* +* 3.062625000e+00 0 0 +GRID* 238 0 2.332465278e+00 6.744811640e-02* +* 3.062625000e+00 0 0 +GRID* 239 0 2.332465278e+00-6.741462011e-02* +* 3.062625000e+00 0 0 +GRID* 240 0 2.332465278e+00-2.022773566e-01* +* 3.062625000e+00 0 0 +GRID* 241 0 2.471354167e+00 2.181013616e-01* +* 3.062625000e+00 0 0 +GRID* 242 0 2.471354167e+00 7.303168489e-02* +* 3.062625000e+00 0 0 +GRID* 243 0 2.471354167e+00-7.203799183e-02* +* 3.062625000e+00 0 0 +GRID* 244 0 2.471354167e+00-2.171076685e-01* +* 3.062625000e+00 0 0 +GRID* 245 0 2.610243056e+00 2.303948422e-01* +* 3.062625000e+00 0 0 +GRID* 246 0 2.610243056e+00 7.746778363e-02* +* 3.062625000e+00 0 0 +GRID* 247 0 2.610243056e+00-7.545927496e-02* +* 3.062625000e+00 0 0 +GRID* 248 0 2.610243056e+00-2.283863335e-01* +* 3.062625000e+00 0 0 +GRID* 249 0 2.749131944e+00 2.405974045e-01* +* 3.062625000e+00 0 0 +GRID* 250 0 2.749131944e+00 8.123127440e-02* +* 3.062625000e+00 0 0 +GRID* 251 0 2.749131944e+00-7.813485569e-02* +* 3.062625000e+00 0 0 +GRID* 252 0 2.749131944e+00-2.375009858e-01* +* 3.062625000e+00 0 0 +GRID* 253 0 2.888020833e+00 2.491079685e-01* +* 3.062625000e+00 0 0 +GRID* 254 0 2.888020833e+00 8.450124617e-02* +* 3.062625000e+00 0 0 +GRID* 255 0 2.888020833e+00-8.010547618e-02* +* 3.062625000e+00 0 0 +GRID* 256 0 2.888020833e+00-2.447121985e-01* +* 3.062625000e+00 0 0 +GRID* 257 0 3.026909722e+00 2.560012103e-01* +* 3.062625000e+00 0 0 +GRID* 258 0 3.026909722e+00 8.756440068e-02* +* 3.062625000e+00 0 0 +GRID* 259 0 3.026909722e+00-8.087240896e-02* +* 3.062625000e+00 0 0 +GRID* 260 0 3.026909722e+00-2.493092186e-01* +* 3.062625000e+00 0 0 +GRID* 261 0 3.165798611e+00 2.612885390e-01* +* 3.062625000e+00 0 0 +GRID* 262 0 3.165798611e+00 9.059515782e-02* +* 3.062625000e+00 0 0 +GRID* 263 0 3.165798611e+00-8.009822337e-02* +* 3.062625000e+00 0 0 +GRID* 264 0 3.165798611e+00-2.507916046e-01* +* 3.062625000e+00 0 0 +GRID* 265 0 3.304687500e+00 2.646899357e-01* +* 3.062625000e+00 0 0 +GRID* 266 0 3.304687500e+00 9.384883075e-02* +* 3.062625000e+00 0 0 +GRID* 267 0 3.304687500e+00-7.699227420e-02* +* 3.062625000e+00 0 0 +GRID* 268 0 3.304687500e+00-2.478333792e-01* +* 3.062625000e+00 0 0 +GRID* 269 0 3.443576389e+00 2.663834240e-01* +* 3.062625000e+00 0 0 +GRID* 270 0 3.443576389e+00 9.723122893e-02* +* 3.062625000e+00 0 0 +GRID* 271 0 3.443576389e+00-7.192096611e-02* +* 3.062625000e+00 0 0 +GRID* 272 0 3.443576389e+00-2.410731611e-01* +* 3.062625000e+00 0 0 +GRID* 273 0 3.582465278e+00 2.660628121e-01* +* 3.062625000e+00 0 0 +GRID* 274 0 3.582465278e+00 1.005005661e-01* +* 3.062625000e+00 0 0 +GRID* 275 0 3.582465278e+00-6.506167985e-02* +* 3.062625000e+00 0 0 +GRID* 276 0 3.582465278e+00-2.306239258e-01* +* 3.062625000e+00 0 0 +GRID* 277 0 3.721354167e+00 2.638388268e-01* +* 3.062625000e+00 0 0 +GRID* 278 0 3.721354167e+00 1.034623242e-01* +* 3.062625000e+00 0 0 +GRID* 279 0 3.721354167e+00-5.691417831e-02* +* 3.062625000e+00 0 0 +GRID* 280 0 3.721354167e+00-2.172906808e-01* +* 3.062625000e+00 0 0 +GRID* 281 0 3.860243056e+00 2.596048500e-01* +* 3.062625000e+00 0 0 +GRID* 282 0 3.860243056e+00 1.058487516e-01* +* 3.062625000e+00 0 0 +GRID* 283 0 3.860243056e+00-4.790734671e-02* +* 3.062625000e+00 0 0 +GRID* 284 0 3.860243056e+00-2.016634450e-01* +* 3.062625000e+00 0 0 +GRID* 285 0 3.999131944e+00 2.532411240e-01* +* 3.062625000e+00 0 0 +GRID* 286 0 3.999131944e+00 1.074507874e-01* +* 3.062625000e+00 0 0 +GRID* 287 0 3.999131944e+00-3.833954923e-02* +* 3.062625000e+00 0 0 +GRID* 288 0 3.999131944e+00-1.841298859e-01* +* 3.062625000e+00 0 0 +GRID* 289 0 4.138020833e+00 2.449572453e-01* +* 3.062625000e+00 0 0 +GRID* 290 0 4.138020833e+00 1.081937563e-01* +* 3.062625000e+00 0 0 +GRID* 291 0 4.138020833e+00-2.856973279e-02* +* 3.062625000e+00 0 0 +GRID* 292 0 4.138020833e+00-1.653332218e-01* +* 3.062625000e+00 0 0 +GRID* 293 0 4.276909722e+00 2.344158994e-01* +* 3.062625000e+00 0 0 +GRID* 294 0 4.276909722e+00 1.077510284e-01* +* 3.062625000e+00 0 0 +GRID* 295 0 4.276909722e+00-1.891384252e-02* +* 3.062625000e+00 0 0 +GRID* 296 0 4.276909722e+00-1.455787135e-01* +* 3.062625000e+00 0 0 +GRID* 297 0 4.415798611e+00 2.219635075e-01* +* 3.062625000e+00 0 0 +GRID* 298 0 4.415798611e+00 1.061753512e-01* +* 3.062625000e+00 0 0 +GRID* 299 0 4.415798611e+00-9.612805126e-03* +* 3.062625000e+00 0 0 +GRID* 300 0 4.415798611e+00-1.254009614e-01* +* 3.062625000e+00 0 0 +GRID* 301 0 4.554687500e+00 2.075727181e-01* +* 3.062625000e+00 0 0 +GRID* 302 0 4.554687500e+00 1.033190978e-01* +* 3.062625000e+00 0 0 +GRID* 303 0 4.554687500e+00-9.345224793e-04* +* 3.062625000e+00 0 0 +GRID* 304 0 4.554687500e+00-1.051881428e-01* +* 3.062625000e+00 0 0 +GRID* 305 0 2.457031250e+00 1.527173199e-01* +* 3.843937500e+00 0 0 +GRID* 306 0 2.457031250e+00 5.054545297e-02* +* 3.843937500e+00 0 0 +GRID* 307 0 2.457031250e+00-5.162641397e-02* +* 3.843937500e+00 0 0 +GRID* 308 0 2.457031250e+00-1.537982809e-01* +* 3.843937500e+00 0 0 +GRID* 309 0 2.588975694e+00 1.747646496e-01* +* 3.843937500e+00 0 0 +GRID* 310 0 2.588975694e+00 5.802035008e-02* +* 3.843937500e+00 0 0 +GRID* 311 0 2.588975694e+00-5.872394946e-02* +* 3.843937500e+00 0 0 +GRID* 312 0 2.588975694e+00-1.754682490e-01* +* 3.843937500e+00 0 0 +GRID* 313 0 2.720920139e+00 1.932029542e-01* +* 3.843937500e+00 0 0 +GRID* 314 0 2.720920139e+00 6.441485210e-02* +* 3.843937500e+00 0 0 +GRID* 315 0 2.720920139e+00-6.437324997e-02* +* 3.843937500e+00 0 0 +GRID* 316 0 2.720920139e+00-1.931613520e-01* +* 3.843937500e+00 0 0 +GRID* 317 0 2.852864583e+00 2.081595514e-01* +* 3.843937500e+00 0 0 +GRID* 318 0 2.852864583e+00 6.970576387e-02* +* 3.843937500e+00 0 0 +GRID* 319 0 2.852864583e+00-6.874802370e-02* +* 3.843937500e+00 0 0 +GRID* 320 0 2.852864583e+00-2.072018113e-01* +* 3.843937500e+00 0 0 +GRID* 321 0 2.984809028e+00 2.198260845e-01* +* 3.843937500e+00 0 0 +GRID* 322 0 2.984809028e+00 7.391572036e-02* +* 3.843937500e+00 0 0 +GRID* 323 0 2.984809028e+00-7.199464374e-02* +* 3.843937500e+00 0 0 +GRID* 324 0 2.984809028e+00-2.179050078e-01* +* 3.843937500e+00 0 0 +GRID* 325 0 3.116753472e+00 2.295112670e-01* +* 3.843937500e+00 0 0 +GRID* 326 0 3.116753472e+00 7.748878924e-02* +* 3.843937500e+00 0 0 +GRID* 327 0 3.116753472e+00-7.453368855e-02* +* 3.843937500e+00 0 0 +GRID* 328 0 3.116753472e+00-2.265561663e-01* +* 3.843937500e+00 0 0 +GRID* 329 0 3.248697917e+00 2.375968994e-01* +* 3.843937500e+00 0 0 +GRID* 330 0 3.248697917e+00 8.059544196e-02* +* 3.843937500e+00 0 0 +GRID* 331 0 3.248697917e+00-7.640601547e-02* +* 3.843937500e+00 0 0 +GRID* 332 0 3.248697917e+00-2.334074729e-01* +* 3.843937500e+00 0 0 +GRID* 333 0 3.380642361e+00 2.441543654e-01* +* 3.843937500e+00 0 0 +GRID* 334 0 3.380642361e+00 8.350616993e-02* +* 3.843937500e+00 0 0 +GRID* 335 0 3.380642361e+00-7.714202553e-02* +* 3.843937500e+00 0 0 +GRID* 336 0 3.380642361e+00-2.377902210e-01* +* 3.843937500e+00 0 0 +GRID* 337 0 3.512586806e+00 2.491859343e-01* +* 3.843937500e+00 0 0 +GRID* 338 0 3.512586806e+00 8.638507889e-02* +* 3.843937500e+00 0 0 +GRID* 339 0 3.512586806e+00-7.641577649e-02* +* 3.843937500e+00 0 0 +GRID* 340 0 3.512586806e+00-2.392166319e-01* +* 3.843937500e+00 0 0 +GRID* 341 0 3.644531250e+00 2.524436171e-01* +* 3.843937500e+00 0 0 +GRID* 342 0 3.644531250e+00 8.947305549e-02* +* 3.843937500e+00 0 0 +GRID* 343 0 3.644531250e+00-7.349750611e-02* +* 3.843937500e+00 0 0 +GRID* 344 0 3.644531250e+00-2.364680677e-01* +* 3.843937500e+00 0 0 +GRID* 345 0 3.776475694e+00 2.540916542e-01* +* 3.843937500e+00 0 0 +GRID* 346 0 3.776475694e+00 9.268656154e-02* +* 3.843937500e+00 0 0 +GRID* 347 0 3.776475694e+00-6.871853107e-02* +* 3.843937500e+00 0 0 +GRID* 348 0 3.776475694e+00-2.301236237e-01* +* 3.843937500e+00 0 0 +GRID* 349 0 3.908420139e+00 2.538117831e-01* +* 3.843937500e+00 0 0 +GRID* 350 0 3.908420139e+00 9.579536926e-02* +* 3.843937500e+00 0 0 +GRID* 351 0 3.908420139e+00-6.222104459e-02* +* 3.843937500e+00 0 0 +GRID* 352 0 3.908420139e+00-2.202374584e-01* +* 3.843937500e+00 0 0 +GRID* 353 0 4.040364583e+00 2.517591847e-01* +* 3.843937500e+00 0 0 +GRID* 354 0 4.040364583e+00 9.862291194e-02* +* 3.843937500e+00 0 0 +GRID* 355 0 4.040364583e+00-5.451336086e-02* +* 3.843937500e+00 0 0 +GRID* 356 0 4.040364583e+00-2.076496337e-01* +* 3.843937500e+00 0 0 +GRID* 357 0 4.172309028e+00 2.477725643e-01* +* 3.843937500e+00 0 0 +GRID* 358 0 4.172309028e+00 1.009018309e-01* +* 3.843937500e+00 0 0 +GRID* 359 0 4.172309028e+00-4.596890247e-02* +* 3.843937500e+00 0 0 +GRID* 360 0 4.172309028e+00-1.928396359e-01* +* 3.843937500e+00 0 0 +GRID* 361 0 4.304253472e+00 2.418082854e-01* +* 3.843937500e+00 0 0 +GRID* 362 0 4.304253472e+00 1.024568350e-01* +* 3.843937500e+00 0 0 +GRID* 363 0 4.304253472e+00-3.689461546e-02* +* 3.843937500e+00 0 0 +GRID* 364 0 4.304253472e+00-1.762460659e-01* +* 3.843937500e+00 0 0 +GRID* 365 0 4.436197917e+00 2.339912144e-01* +* 3.843937500e+00 0 0 +GRID* 366 0 4.436197917e+00 1.031817819e-01* +* 3.843937500e+00 0 0 +GRID* 367 0 4.436197917e+00-2.762765051e-02* +* 3.843937500e+00 0 0 +GRID* 368 0 4.436197917e+00-1.584370830e-01* +* 3.843937500e+00 0 0 +GRID* 369 0 4.568142361e+00 2.240701462e-01* +* 3.843937500e+00 0 0 +GRID* 370 0 4.568142361e+00 1.028180228e-01* +* 3.843937500e+00 0 0 +GRID* 371 0 4.568142361e+00-1.843410050e-02* +* 3.843937500e+00 0 0 +GRID* 372 0 4.568142361e+00-1.396862238e-01* +* 3.843937500e+00 0 0 +GRID* 373 0 4.700086806e+00 2.123483909e-01* +* 3.843937500e+00 0 0 +GRID* 374 0 4.700086806e+00 1.013890554e-01* +* 3.843937500e+00 0 0 +GRID* 375 0 4.700086806e+00-9.570280177e-03* +* 3.843937500e+00 0 0 +GRID* 376 0 4.700086806e+00-1.205296157e-01* +* 3.843937500e+00 0 0 +GRID* 377 0 4.832031250e+00 1.987296849e-01* +* 3.843937500e+00 0 0 +GRID* 378 0 4.832031250e+00 9.871227054e-02* +* 3.843937500e+00 0 0 +GRID* 379 0 4.832031250e+00-1.305143810e-03* +* 3.843937500e+00 0 0 +GRID* 380 0 4.832031250e+00-1.013225582e-01* +* 3.843937500e+00 0 0 +GRID* 381 0 2.859375000e+00 1.458599522e-01* +* 4.625250000e+00 0 0 +GRID* 382 0 2.859375000e+00 4.827875456e-02* +* 4.625250000e+00 0 0 +GRID* 383 0 2.859375000e+00-4.930244313e-02* +* 4.625250000e+00 0 0 +GRID* 384 0 2.859375000e+00-1.468836408e-01* +* 4.625250000e+00 0 0 +GRID* 385 0 2.984375000e+00 1.667072616e-01* +* 4.625250000e+00 0 0 +GRID* 386 0 2.984375000e+00 5.534836066e-02* +* 4.625250000e+00 0 0 +GRID* 387 0 2.984375000e+00-5.601054030e-02* +* 4.625250000e+00 0 0 +GRID* 388 0 2.984375000e+00-1.673694413e-01* +* 4.625250000e+00 0 0 +GRID* 389 0 3.109375000e+00 1.840950554e-01* +* 4.625250000e+00 0 0 +GRID* 390 0 3.109375000e+00 6.138158781e-02* +* 4.625250000e+00 0 0 +GRID* 391 0 3.109375000e+00-6.133187982e-02* +* 4.625250000e+00 0 0 +GRID* 392 0 3.109375000e+00-1.840453474e-01* +* 4.625250000e+00 0 0 +GRID* 393 0 3.234375000e+00 1.982163919e-01* +* 4.625250000e+00 0 0 +GRID* 394 0 3.234375000e+00 6.637894327e-02* +* 4.625250000e+00 0 0 +GRID* 395 0 3.234375000e+00-6.545850536e-02* +* 4.625250000e+00 0 0 +GRID* 396 0 3.234375000e+00-1.972959540e-01* +* 4.625250000e+00 0 0 +GRID* 397 0 3.359375000e+00 2.092573267e-01* +* 4.625250000e+00 0 0 +GRID* 398 0 3.359375000e+00 7.036365709e-02* +* 4.625250000e+00 0 0 +GRID* 399 0 3.359375000e+00-6.853001252e-02* +* 4.625250000e+00 0 0 +GRID* 400 0 3.359375000e+00-2.074236821e-01* +* 4.625250000e+00 0 0 +GRID* 401 0 3.484375000e+00 2.184251296e-01* +* 4.625250000e+00 0 0 +GRID* 402 0 3.484375000e+00 7.374630408e-02* +* 4.625250000e+00 0 0 +GRID* 403 0 3.484375000e+00-7.093252141e-02* +* 4.625250000e+00 0 0 +GRID* 404 0 3.484375000e+00-2.156113469e-01* +* 4.625250000e+00 0 0 +GRID* 405 0 3.609375000e+00 2.260858303e-01* +* 4.625250000e+00 0 0 +GRID* 406 0 3.609375000e+00 7.668963775e-02* +* 4.625250000e+00 0 0 +GRID* 407 0 3.609375000e+00-7.270655477e-02* +* 4.625250000e+00 0 0 +GRID* 408 0 3.609375000e+00-2.221027473e-01* +* 4.625250000e+00 0 0 +GRID* 409 0 3.734375000e+00 2.323075205e-01* +* 4.625250000e+00 0 0 +GRID* 410 0 3.734375000e+00 7.944793918e-02* +* 4.625250000e+00 0 0 +GRID* 411 0 3.734375000e+00-7.341164210e-02* +* 4.625250000e+00 0 0 +GRID* 412 0 3.734375000e+00-2.262712234e-01* +* 4.625250000e+00 0 0 +GRID* 413 0 3.859375000e+00 2.370833295e-01* +* 4.625250000e+00 0 0 +GRID* 414 0 3.859375000e+00 8.217499997e-02* +* 4.625250000e+00 0 0 +GRID* 415 0 3.859375000e+00-7.273332961e-02* +* 4.625250000e+00 0 0 +GRID* 416 0 3.859375000e+00-2.276416592e-01* +* 4.625250000e+00 0 0 +GRID* 417 0 3.984375000e+00 2.401972985e-01* +* 4.625250000e+00 0 0 +GRID* 418 0 3.984375000e+00 8.509728023e-02* +* 4.625250000e+00 0 0 +GRID* 419 0 3.984375000e+00-7.000273802e-02* +* 4.625250000e+00 0 0 +GRID* 420 0 3.984375000e+00-2.251027563e-01* +* 4.625250000e+00 0 0 +GRID* 421 0 4.109375000e+00 2.417998843e-01* +* 4.625250000e+00 0 0 +GRID* 422 0 4.109375000e+00 8.814189416e-02* +* 4.625250000e+00 0 0 +GRID* 423 0 4.109375000e+00-6.551609602e-02* +* 4.625250000e+00 0 0 +GRID* 424 0 4.109375000e+00-2.191740862e-01* +* 4.625250000e+00 0 0 +GRID* 425 0 4.234375000e+00 2.415607542e-01* +* 4.625250000e+00 0 0 +GRID* 426 0 4.234375000e+00 9.109017242e-02* +* 4.625250000e+00 0 0 +GRID* 427 0 4.234375000e+00-5.938040933e-02* +* 4.625250000e+00 0 0 +GRID* 428 0 4.234375000e+00-2.098509911e-01* +* 4.625250000e+00 0 0 +GRID* 429 0 4.359375000e+00 2.396795427e-01* +* 4.625250000e+00 0 0 +GRID* 430 0 4.359375000e+00 9.378349965e-02* +* 4.625250000e+00 0 0 +GRID* 431 0 4.359375000e+00-5.211254341e-02* +* 4.625250000e+00 0 0 +GRID* 432 0 4.359375000e+00-1.980085865e-01* +* 4.625250000e+00 0 0 +GRID* 433 0 4.484375000e+00 2.359402787e-01* +* 4.625250000e+00 0 0 +GRID* 434 0 4.484375000e+00 9.595491026e-02* +* 4.625250000e+00 0 0 +GRID* 435 0 4.484375000e+00-4.403045822e-02* +* 4.625250000e+00 0 0 +GRID* 436 0 4.484375000e+00-1.840158267e-01* +* 4.625250000e+00 0 0 +GRID* 437 0 4.609375000e+00 2.303754467e-01* +* 4.625250000e+00 0 0 +GRID* 438 0 4.609375000e+00 9.746288251e-02* +* 4.625250000e+00 0 0 +GRID* 439 0 4.609375000e+00-3.544968170e-02* +* 4.625250000e+00 0 0 +GRID* 440 0 4.609375000e+00-1.683622459e-01* +* 4.625250000e+00 0 0 +GRID* 441 0 4.734375000e+00 2.230175816e-01* +* 4.625250000e+00 0 0 +GRID* 442 0 4.734375000e+00 9.816840985e-02* +* 4.625250000e+00 0 0 +GRID* 443 0 4.734375000e+00-2.668076192e-02* +* 4.625250000e+00 0 0 +GRID* 444 0 4.734375000e+00-1.515299337e-01* +* 4.625250000e+00 0 0 +GRID* 445 0 4.859375000e+00 2.137243929e-01* +* 4.625250000e+00 0 0 +GRID* 446 0 4.859375000e+00 9.788501723e-02* +* 4.625250000e+00 0 0 +GRID* 447 0 4.859375000e+00-1.795435848e-02* +* 4.625250000e+00 0 0 +GRID* 448 0 4.859375000e+00-1.337937342e-01* +* 4.625250000e+00 0 0 +GRID* 449 0 4.984375000e+00 2.027332743e-01* +* 4.625250000e+00 0 0 +GRID* 450 0 4.984375000e+00 9.660275954e-02* +* 4.625250000e+00 0 0 +GRID* 451 0 4.984375000e+00-9.527755228e-03* +* 4.625250000e+00 0 0 +GRID* 452 0 4.984375000e+00-1.156582700e-01* +* 4.625250000e+00 0 0 +GRID* 453 0 5.109375000e+00 1.898866516e-01* +* 4.625250000e+00 0 0 +GRID* 454 0 5.109375000e+00 9.410544325e-02* +* 4.625250000e+00 0 0 +GRID* 455 0 5.109375000e+00-1.675765140e-03* +* 4.625250000e+00 0 0 +GRID* 456 0 5.109375000e+00-9.745697353e-02* +* 4.625250000e+00 0 0 +GRID* 457 0 3.261718750e+00 1.390025846e-01* +* 5.406562500e+00 0 0 +GRID* 458 0 3.261718750e+00 4.601205615e-02* +* 5.406562500e+00 0 0 +GRID* 459 0 3.261718750e+00-4.697847228e-02* +* 5.406562500e+00 0 0 +GRID* 460 0 3.261718750e+00-1.399690007e-01* +* 5.406562500e+00 0 0 +GRID* 461 0 3.379774306e+00 1.586498736e-01* +* 5.406562500e+00 0 0 +GRID* 462 0 3.379774306e+00 5.267637124e-02* +* 5.406562500e+00 0 0 +GRID* 463 0 3.379774306e+00-5.329713113e-02* +* 5.406562500e+00 0 0 +GRID* 464 0 3.379774306e+00-1.592706335e-01* +* 5.406562500e+00 0 0 +GRID* 465 0 3.497829861e+00 1.749871567e-01* +* 5.406562500e+00 0 0 +GRID* 466 0 3.497829861e+00 5.834832351e-02* +* 5.406562500e+00 0 0 +GRID* 467 0 3.497829861e+00-5.829050967e-02* +* 5.406562500e+00 0 0 +GRID* 468 0 3.497829861e+00-1.749293429e-01* +* 5.406562500e+00 0 0 +GRID* 469 0 3.615885417e+00 1.882732323e-01* +* 5.406562500e+00 0 0 +GRID* 470 0 3.615885417e+00 6.305212266e-02* +* 5.406562500e+00 0 0 +GRID* 471 0 3.615885417e+00-6.216898703e-02* +* 5.406562500e+00 0 0 +GRID* 472 0 3.615885417e+00-1.873900967e-01* +* 5.406562500e+00 0 0 +GRID* 473 0 3.733940972e+00 1.986885689e-01* +* 5.406562500e+00 0 0 +GRID* 474 0 3.733940972e+00 6.681159382e-02* +* 5.406562500e+00 0 0 +GRID* 475 0 3.733940972e+00-6.506538130e-02* +* 5.406562500e+00 0 0 +GRID* 476 0 3.733940972e+00-1.969423564e-01* +* 5.406562500e+00 0 0 +GRID* 477 0 3.851996528e+00 2.073389921e-01* +* 5.406562500e+00 0 0 +GRID* 478 0 3.851996528e+00 7.000381892e-02* +* 5.406562500e+00 0 0 +GRID* 479 0 3.851996528e+00-6.733135426e-02* +* 5.406562500e+00 0 0 +GRID* 480 0 3.851996528e+00-2.046665274e-01* +* 5.406562500e+00 0 0 +GRID* 481 0 3.970052083e+00 2.145747611e-01* +* 5.406562500e+00 0 0 +GRID* 482 0 3.970052083e+00 7.278383354e-02* +* 5.406562500e+00 0 0 +GRID* 483 0 3.970052083e+00-6.900709406e-02* +* 5.406562500e+00 0 0 +GRID* 484 0 3.970052083e+00-2.107980217e-01* +* 5.406562500e+00 0 0 +GRID* 485 0 4.088107639e+00 2.204606755e-01* +* 5.406562500e+00 0 0 +GRID* 486 0 4.088107639e+00 7.538970843e-02* +* 5.406562500e+00 0 0 +GRID* 487 0 4.088107639e+00-6.968125867e-02* +* 5.406562500e+00 0 0 +GRID* 488 0 4.088107639e+00-2.147522258e-01* +* 5.406562500e+00 0 0 +GRID* 489 0 4.206163194e+00 2.249807248e-01* +* 5.406562500e+00 0 0 +GRID* 490 0 4.206163194e+00 7.796492105e-02* +* 5.406562500e+00 0 0 +GRID* 491 0 4.206163194e+00-6.905088272e-02* +* 5.406562500e+00 0 0 +GRID* 492 0 4.206163194e+00-2.160666865e-01* +* 5.406562500e+00 0 0 +GRID* 493 0 4.324218750e+00 2.279509799e-01* +* 5.406562500e+00 0 0 +GRID* 494 0 4.324218750e+00 8.072150497e-02* +* 5.406562500e+00 0 0 +GRID* 495 0 4.324218750e+00-6.650796993e-02* +* 5.406562500e+00 0 0 +GRID* 496 0 4.324218750e+00-2.137374448e-01* +* 5.406562500e+00 0 0 +GRID* 497 0 4.442274306e+00 2.295046483e-01* +* 5.406562500e+00 0 0 +GRID* 498 0 4.442274306e+00 8.359491595e-02* +* 5.406562500e+00 0 0 +GRID* 499 0 4.442274306e+00-6.231481639e-02* +* 5.406562500e+00 0 0 +GRID* 500 0 4.442274306e+00-2.082245487e-01* +* 5.406562500e+00 0 0 +GRID* 501 0 4.560329861e+00 2.293097252e-01* +* 5.406562500e+00 0 0 +GRID* 502 0 4.560329861e+00 8.638497557e-02* +* 5.406562500e+00 0 0 +GRID* 503 0 4.560329861e+00-5.653977407e-02* +* 5.406562500e+00 0 0 +GRID* 504 0 4.560329861e+00-1.994645237e-01* +* 5.406562500e+00 0 0 +GRID* 505 0 4.678385417e+00 2.275999007e-01* +* 5.406562500e+00 0 0 +GRID* 506 0 4.678385417e+00 8.894408736e-02* +* 5.406562500e+00 0 0 +GRID* 507 0 4.678385417e+00-4.971172596e-02* +* 5.406562500e+00 0 0 +GRID* 508 0 4.678385417e+00-1.883675393e-01* +* 5.406562500e+00 0 0 +GRID* 509 0 4.796440972e+00 2.241079931e-01* +* 5.406562500e+00 0 0 +GRID* 510 0 4.796440972e+00 9.100798957e-02* +* 5.406562500e+00 0 0 +GRID* 511 0 4.796440972e+00-4.209201398e-02* +* 5.406562500e+00 0 0 +GRID* 512 0 4.796440972e+00-1.751920175e-01* +* 5.406562500e+00 0 0 +GRID* 513 0 4.914496528e+00 2.189426081e-01* +* 5.406562500e+00 0 0 +GRID* 514 0 4.914496528e+00 9.246893006e-02* +* 5.406562500e+00 0 0 +GRID* 515 0 4.914496528e+00-3.400474793e-02* +* 5.406562500e+00 0 0 +GRID* 516 0 4.914496528e+00-1.604784259e-01* +* 5.406562500e+00 0 0 +GRID* 517 0 5.032552083e+00 2.120439488e-01* +* 5.406562500e+00 0 0 +GRID* 518 0 5.032552083e+00 9.315914556e-02* +* 5.406562500e+00 0 0 +GRID* 519 0 5.032552083e+00-2.572565772e-02* +* 5.406562500e+00 0 0 +GRID* 520 0 5.032552083e+00-1.446104610e-01* +* 5.406562500e+00 0 0 +GRID* 521 0 5.150607639e+00 2.033786397e-01* +* 5.406562500e+00 0 0 +GRID* 522 0 5.150607639e+00 9.295201162e-02* +* 5.406562500e+00 0 0 +GRID* 523 0 5.150607639e+00-1.747461646e-02* +* 5.406562500e+00 0 0 +GRID* 524 0 5.150607639e+00-1.279012446e-01* +* 5.406562500e+00 0 0 +GRID* 525 0 5.268663194e+00 1.930745927e-01* +* 5.406562500e+00 0 0 +GRID* 526 0 5.268663194e+00 9.178742038e-02* +* 5.406562500e+00 0 0 +GRID* 527 0 5.268663194e+00-9.499751949e-03* +* 5.406562500e+00 0 0 +GRID* 528 0 5.268663194e+00-1.107869243e-01* +* 5.406562500e+00 0 0 +GRID* 529 0 5.386718750e+00 1.810436184e-01* +* 5.406562500e+00 0 0 +GRID* 530 0 5.386718750e+00 8.949861595e-02* +* 5.406562500e+00 0 0 +GRID* 531 0 5.386718750e+00-2.046386471e-03* +* 5.406562500e+00 0 0 +GRID* 532 0 5.386718750e+00-9.359138890e-02* +* 5.406562500e+00 0 0 +GRID* 533 0 3.664062500e+00 1.321452169e-01* +* 6.187875000e+00 0 0 +GRID* 534 0 3.664062500e+00 4.374535775e-02* +* 6.187875000e+00 0 0 +GRID* 535 0 3.664062500e+00-4.465450144e-02* +* 6.187875000e+00 0 0 +GRID* 536 0 3.664062500e+00-1.330543606e-01* +* 6.187875000e+00 0 0 +GRID* 537 0 3.775173611e+00 1.505924856e-01* +* 6.187875000e+00 0 0 +GRID* 538 0 3.775173611e+00 5.000680717e-02* +* 6.187875000e+00 0 0 +GRID* 539 0 3.775173611e+00-5.057887127e-02* +* 6.187875000e+00 0 0 +GRID* 540 0 3.775173611e+00-1.511645497e-01* +* 6.187875000e+00 0 0 +GRID* 541 0 3.886284722e+00 1.658792580e-01* +* 6.187875000e+00 0 0 +GRID* 542 0 3.886284722e+00 5.531505922e-02* +* 6.187875000e+00 0 0 +GRID* 543 0 3.886284722e+00-5.524913952e-02* +* 6.187875000e+00 0 0 +GRID* 544 0 3.886284722e+00-1.658133383e-01* +* 6.187875000e+00 0 0 +GRID* 545 0 3.997395833e+00 1.783300728e-01* +* 6.187875000e+00 0 0 +GRID* 546 0 3.997395833e+00 5.972530205e-02* +* 6.187875000e+00 0 0 +GRID* 547 0 3.997395833e+00-5.887946869e-02* +* 6.187875000e+00 0 0 +GRID* 548 0 3.997395833e+00-1.774842394e-01* +* 6.187875000e+00 0 0 +GRID* 549 0 4.108506944e+00 1.881198112e-01* +* 6.187875000e+00 0 0 +GRID* 550 0 4.108506944e+00 6.325953055e-02* +* 6.187875000e+00 0 0 +GRID* 551 0 4.108506944e+00-6.160075008e-02* +* 6.187875000e+00 0 0 +GRID* 552 0 4.108506944e+00-1.864610307e-01* +* 6.187875000e+00 0 0 +GRID* 553 0 4.219618056e+00 1.962528546e-01* +* 6.187875000e+00 0 0 +GRID* 554 0 4.219618056e+00 6.626133375e-02* +* 6.187875000e+00 0 0 +GRID* 555 0 4.219618056e+00-6.373018712e-02* +* 6.187875000e+00 0 0 +GRID* 556 0 4.219618056e+00-1.937217080e-01* +* 6.187875000e+00 0 0 +GRID* 557 0 4.330729167e+00 2.030636920e-01* +* 6.187875000e+00 0 0 +GRID* 558 0 4.330729167e+00 6.887802933e-02* +* 6.187875000e+00 0 0 +GRID* 559 0 4.330729167e+00-6.530763336e-02* +* 6.187875000e+00 0 0 +GRID* 560 0 4.330729167e+00-1.994932960e-01* +* 6.187875000e+00 0 0 +GRID* 561 0 4.441840278e+00 2.086138306e-01* +* 6.187875000e+00 0 0 +GRID* 562 0 4.441840278e+00 7.133147768e-02* +* 6.187875000e+00 0 0 +GRID* 563 0 4.441840278e+00-6.595087524e-02* +* 6.187875000e+00 0 0 +GRID* 564 0 4.441840278e+00-2.032332282e-01* +* 6.187875000e+00 0 0 +GRID* 565 0 4.552951389e+00 2.128781201e-01* +* 6.187875000e+00 0 0 +GRID* 566 0 4.552951389e+00 7.375484212e-02* +* 6.187875000e+00 0 0 +GRID* 567 0 4.552951389e+00-6.536843584e-02* +* 6.187875000e+00 0 0 +GRID* 568 0 4.552951389e+00-2.044917138e-01* +* 6.187875000e+00 0 0 +GRID* 569 0 4.664062500e+00 2.157046613e-01* +* 6.187875000e+00 0 0 +GRID* 570 0 4.664062500e+00 7.634572971e-02* +* 6.187875000e+00 0 0 +GRID* 571 0 4.664062500e+00-6.301320184e-02* +* 6.187875000e+00 0 0 +GRID* 572 0 4.664062500e+00-2.023721334e-01* +* 6.187875000e+00 0 0 +GRID* 573 0 4.775173611e+00 2.171880561e-01* +* 6.187875000e+00 0 0 +GRID* 574 0 4.775173611e+00 7.903370028e-02* +* 6.187875000e+00 0 0 +GRID* 575 0 4.775173611e+00-5.912065549e-02* +* 6.187875000e+00 0 0 +GRID* 576 0 4.775173611e+00-1.972750113e-01* +* 6.187875000e+00 0 0 +GRID* 577 0 4.886284722e+00 2.170586963e-01* +* 6.187875000e+00 0 0 +GRID* 578 0 4.886284722e+00 8.167977873e-02* +* 6.187875000e+00 0 0 +GRID* 579 0 4.886284722e+00-5.369913881e-02* +* 6.187875000e+00 0 0 +GRID* 580 0 4.886284722e+00-1.890780563e-01* +* 6.187875000e+00 0 0 +GRID* 581 0 4.997395833e+00 2.155202587e-01* +* 6.187875000e+00 0 0 +GRID* 582 0 4.997395833e+00 8.410467507e-02* +* 6.187875000e+00 0 0 +GRID* 583 0 4.997395833e+00-4.731090851e-02* +* 6.187875000e+00 0 0 +GRID* 584 0 4.997395833e+00-1.787264921e-01* +* 6.187875000e+00 0 0 +GRID* 585 0 5.108506944e+00 2.122757075e-01* +* 6.187875000e+00 0 0 +GRID* 586 0 5.108506944e+00 8.606106889e-02* +* 6.187875000e+00 0 0 +GRID* 587 0 5.108506944e+00-4.015356974e-02* +* 6.187875000e+00 0 0 +GRID* 588 0 5.108506944e+00-1.663682084e-01* +* 6.187875000e+00 0 0 +GRID* 589 0 5.219618056e+00 2.075097694e-01* +* 6.187875000e+00 0 0 +GRID* 590 0 5.219618056e+00 8.747497761e-02* +* 6.187875000e+00 0 0 +GRID* 591 0 5.219618056e+00-3.255981417e-02* +* 6.187875000e+00 0 0 +GRID* 592 0 5.219618056e+00-1.525946059e-01* +* 6.187875000e+00 0 0 +GRID* 593 0 5.330729167e+00 2.010703161e-01* +* 6.187875000e+00 0 0 +GRID* 594 0 5.330729167e+00 8.814988126e-02* +* 6.187875000e+00 0 0 +GRID* 595 0 5.330729167e+00-2.477055353e-02* +* 6.187875000e+00 0 0 +GRID* 596 0 5.330729167e+00-1.376909883e-01* +* 6.187875000e+00 0 0 +GRID* 597 0 5.441840278e+00 1.930328865e-01* +* 6.187875000e+00 0 0 +GRID* 598 0 5.441840278e+00 8.801900602e-02* +* 6.187875000e+00 0 0 +GRID* 599 0 5.441840278e+00-1.699487445e-02* +* 6.187875000e+00 0 0 +GRID* 600 0 5.441840278e+00-1.220087549e-01* +* 6.187875000e+00 0 0 +GRID* 601 0 5.552951389e+00 1.833987249e-01* +* 6.187875000e+00 0 0 +GRID* 602 0 5.552951389e+00 8.696124553e-02* +* 6.187875000e+00 0 0 +GRID* 603 0 5.552951389e+00-9.476233878e-03* +* 6.187875000e+00 0 0 +GRID* 604 0 5.552951389e+00-1.059137133e-01* +* 6.187875000e+00 0 0 +GRID* 605 0 5.664062500e+00 1.722005851e-01* +* 6.187875000e+00 0 0 +GRID* 606 0 5.664062500e+00 8.489178866e-02* +* 6.187875000e+00 0 0 +GRID* 607 0 5.664062500e+00-2.417007801e-03* +* 6.187875000e+00 0 0 +GRID* 608 0 5.664062500e+00-8.972580427e-02* +* 6.187875000e+00 0 0 +GRID* 609 0 4.066406250e+00 1.252878493e-01* +* 6.969187500e+00 0 0 +GRID* 610 0 4.066406250e+00 4.147865934e-02* +* 6.969187500e+00 0 0 +GRID* 611 0 4.066406250e+00-4.233053059e-02* +* 6.969187500e+00 0 0 +GRID* 612 0 4.066406250e+00-1.261397205e-01* +* 6.969187500e+00 0 0 +GRID* 613 0 4.170572917e+00 1.425350976e-01* +* 6.969187500e+00 0 0 +GRID* 614 0 4.170572917e+00 4.735234838e-02* +* 6.969187500e+00 0 0 +GRID* 615 0 4.170572917e+00-4.783040084e-02* +* 6.969187500e+00 0 0 +GRID* 616 0 4.170572917e+00-1.430131501e-01* +* 6.969187500e+00 0 0 +GRID* 617 0 4.274739583e+00 1.567713592e-01* +* 6.969187500e+00 0 0 +GRID* 618 0 4.274739583e+00 5.228179492e-02* +* 6.969187500e+00 0 0 +GRID* 619 0 4.274739583e+00-5.220776938e-02* +* 6.969187500e+00 0 0 +GRID* 620 0 4.274739583e+00-1.566973337e-01* +* 6.969187500e+00 0 0 +GRID* 621 0 4.378906250e+00 1.683869133e-01* +* 6.969187500e+00 0 0 +GRID* 622 0 4.378906250e+00 5.639848145e-02* +* 6.969187500e+00 0 0 +GRID* 623 0 4.378906250e+00-5.558995036e-02* +* 6.969187500e+00 0 0 +GRID* 624 0 4.378906250e+00-1.675783822e-01* +* 6.969187500e+00 0 0 +GRID* 625 0 4.483072917e+00 1.775510534e-01* +* 6.969187500e+00 0 0 +GRID* 626 0 4.483072917e+00 5.970746728e-02* +* 6.969187500e+00 0 0 +GRID* 627 0 4.483072917e+00-5.813611886e-02* +* 6.969187500e+00 0 0 +GRID* 628 0 4.483072917e+00-1.759797050e-01* +* 6.969187500e+00 0 0 +GRID* 629 0 4.587239583e+00 1.851667172e-01* +* 6.969187500e+00 0 0 +GRID* 630 0 4.587239583e+00 6.251884859e-02* +* 6.969187500e+00 0 0 +GRID* 631 0 4.587239583e+00-6.012901998e-02* +* 6.969187500e+00 0 0 +GRID* 632 0 4.587239583e+00-1.827768886e-01* +* 6.969187500e+00 0 0 +GRID* 633 0 4.691406250e+00 1.915526229e-01* +* 6.969187500e+00 0 0 +GRID* 634 0 4.691406250e+00 6.497222512e-02* +* 6.969187500e+00 0 0 +GRID* 635 0 4.691406250e+00-6.160817265e-02* +* 6.969187500e+00 0 0 +GRID* 636 0 4.691406250e+00-1.881885704e-01* +* 6.969187500e+00 0 0 +GRID* 637 0 4.795572917e+00 1.967669857e-01* +* 6.969187500e+00 0 0 +GRID* 638 0 4.795572917e+00 6.727324693e-02* +* 6.969187500e+00 0 0 +GRID* 639 0 4.795572917e+00-6.222049181e-02* +* 6.969187500e+00 0 0 +GRID* 640 0 4.795572917e+00-1.917142305e-01* +* 6.969187500e+00 0 0 +GRID* 641 0 4.899739583e+00 2.007755154e-01* +* 6.969187500e+00 0 0 +GRID* 642 0 4.899739583e+00 6.954476320e-02* +* 6.969187500e+00 0 0 +GRID* 643 0 4.899739583e+00-6.168598896e-02* +* 6.969187500e+00 0 0 +GRID* 644 0 4.899739583e+00-1.929167411e-01* +* 6.969187500e+00 0 0 +GRID* 645 0 5.003906250e+00 2.034583427e-01* +* 6.969187500e+00 0 0 +GRID* 646 0 5.003906250e+00 7.196995445e-02* +* 6.969187500e+00 0 0 +GRID* 647 0 5.003906250e+00-5.951843375e-02* +* 6.969187500e+00 0 0 +GRID* 648 0 5.003906250e+00-1.910068220e-01* +* 6.969187500e+00 0 0 +GRID* 649 0 5.108072917e+00 2.048714638e-01* +* 6.969187500e+00 0 0 +GRID* 650 0 5.108072917e+00 7.448889723e-02* +* 6.969187500e+00 0 0 +GRID* 651 0 5.108072917e+00-5.589366936e-02* +* 6.969187500e+00 0 0 +GRID* 652 0 5.108072917e+00-1.862762359e-01* +* 6.969187500e+00 0 0 +GRID* 653 0 5.212239583e+00 2.048076673e-01* +* 6.969187500e+00 0 0 +GRID* 654 0 5.212239583e+00 7.697458188e-02* +* 6.969187500e+00 0 0 +GRID* 655 0 5.212239583e+00-5.085850354e-02* +* 6.969187500e+00 0 0 +GRID* 656 0 5.212239583e+00-1.786915890e-01* +* 6.969187500e+00 0 0 +GRID* 657 0 5.316406250e+00 2.034373069e-01* +* 6.969187500e+00 0 0 +GRID* 658 0 5.316406250e+00 7.926305628e-02* +* 6.969187500e+00 0 0 +GRID* 659 0 5.316406250e+00-4.491119431e-02* +* 6.969187500e+00 0 0 +GRID* 660 0 5.316406250e+00-1.690854449e-01* +* 6.969187500e+00 0 0 +GRID* 661 0 5.420572917e+00 2.004434219e-01* +* 6.969187500e+00 0 0 +GRID* 662 0 5.420572917e+00 8.111414820e-02* +* 6.969187500e+00 0 0 +GRID* 663 0 5.420572917e+00-3.821512550e-02* +* 6.969187500e+00 0 0 +GRID* 664 0 5.420572917e+00-1.575443992e-01* +* 6.969187500e+00 0 0 +GRID* 665 0 5.524739583e+00 1.960769307e-01* +* 6.969187500e+00 0 0 +GRID* 666 0 5.524739583e+00 8.248102516e-02* +* 6.969187500e+00 0 0 +GRID* 667 0 5.524739583e+00-3.111488040e-02* +* 6.969187500e+00 0 0 +GRID* 668 0 5.524739583e+00-1.447107860e-01* +* 6.969187500e+00 0 0 +GRID* 669 0 5.628906250e+00 1.900966833e-01* +* 6.969187500e+00 0 0 +GRID* 670 0 5.628906250e+00 8.314061697e-02* +* 6.969187500e+00 0 0 +GRID* 671 0 5.628906250e+00-2.381544934e-02* +* 6.969187500e+00 0 0 +GRID* 672 0 5.628906250e+00-1.307715157e-01* +* 6.969187500e+00 0 0 +GRID* 673 0 5.733072917e+00 1.826871333e-01* +* 6.969187500e+00 0 0 +GRID* 674 0 5.733072917e+00 8.308600042e-02* +* 6.969187500e+00 0 0 +GRID* 675 0 5.733072917e+00-1.651513243e-02* +* 6.969187500e+00 0 0 +GRID* 676 0 5.733072917e+00-1.161162653e-01* +* 6.969187500e+00 0 0 +GRID* 677 0 5.837239583e+00 1.737228572e-01* +* 6.969187500e+00 0 0 +GRID* 678 0 5.837239583e+00 8.213553759e-02* +* 6.969187500e+00 0 0 +GRID* 679 0 5.837239583e+00-9.451782004e-03* +* 6.969187500e+00 0 0 +GRID* 680 0 5.837239583e+00-1.010391016e-01* +* 6.969187500e+00 0 0 +GRID* 681 0 5.941406250e+00 1.633575519e-01* +* 6.969187500e+00 0 0 +GRID* 682 0 5.941406250e+00 8.028496137e-02* +* 6.969187500e+00 0 0 +GRID* 683 0 5.941406250e+00-2.787629132e-03* +* 6.969187500e+00 0 0 +GRID* 684 0 5.941406250e+00-8.586021964e-02* +* 6.969187500e+00 0 0 +GRID* 685 0 4.468750000e+00 1.184304816e-01* +* 7.750500000e+00 0 0 +GRID* 686 0 4.468750000e+00 3.921196093e-02* +* 7.750500000e+00 0 0 +GRID* 687 0 4.468750000e+00-4.000655974e-02* +* 7.750500000e+00 0 0 +GRID* 688 0 4.468750000e+00-1.192250804e-01* +* 7.750500000e+00 0 0 +GRID* 689 0 4.565972222e+00 1.344261510e-01* +* 7.750500000e+00 0 0 +GRID* 690 0 4.565972222e+00 4.466351721e-02* +* 7.750500000e+00 0 0 +GRID* 691 0 4.565972222e+00-4.509911659e-02* +* 7.750500000e+00 0 0 +GRID* 692 0 4.565972222e+00-1.348617504e-01* +* 7.750500000e+00 0 0 +GRID* 693 0 4.663194444e+00 1.476634605e-01* +* 7.750500000e+00 0 0 +GRID* 694 0 4.663194444e+00 4.924853063e-02* +* 7.750500000e+00 0 0 +GRID* 695 0 4.663194444e+00-4.916639923e-02* +* 7.750500000e+00 0 0 +GRID* 696 0 4.663194444e+00-1.475813291e-01* +* 7.750500000e+00 0 0 +GRID* 697 0 4.760416667e+00 1.584437537e-01* +* 7.750500000e+00 0 0 +GRID* 698 0 4.760416667e+00 5.307166084e-02* +* 7.750500000e+00 0 0 +GRID* 699 0 4.760416667e+00-5.230043202e-02* +* 7.750500000e+00 0 0 +GRID* 700 0 4.760416667e+00-1.576725249e-01* +* 7.750500000e+00 0 0 +GRID* 701 0 4.857638889e+00 1.669822957e-01* +* 7.750500000e+00 0 0 +GRID* 702 0 4.857638889e+00 5.615540401e-02* +* 7.750500000e+00 0 0 +GRID* 703 0 4.857638889e+00-5.467148765e-02* +* 7.750500000e+00 0 0 +GRID* 704 0 4.857638889e+00-1.654983793e-01* +* 7.750500000e+00 0 0 +GRID* 705 0 4.954861111e+00 1.740805797e-01* +* 7.750500000e+00 0 0 +GRID* 706 0 4.954861111e+00 5.877636343e-02* +* 7.750500000e+00 0 0 +GRID* 707 0 4.954861111e+00-5.652785284e-02* +* 7.750500000e+00 0 0 +GRID* 708 0 4.954861111e+00-1.718320691e-01* +* 7.750500000e+00 0 0 +GRID* 709 0 5.052083333e+00 1.800415538e-01* +* 7.750500000e+00 0 0 +GRID* 710 0 5.052083333e+00 6.106642090e-02* +* 7.750500000e+00 0 0 +GRID* 711 0 5.052083333e+00-5.790871195e-02* +* 7.750500000e+00 0 0 +GRID* 712 0 5.052083333e+00-1.768838448e-01* +* 7.750500000e+00 0 0 +GRID* 713 0 5.149305556e+00 1.849201407e-01* +* 7.750500000e+00 0 0 +GRID* 714 0 5.149305556e+00 6.321501619e-02* +* 7.750500000e+00 0 0 +GRID* 715 0 5.149305556e+00-5.849010838e-02* +* 7.750500000e+00 0 0 +GRID* 716 0 5.149305556e+00-1.801952329e-01* +* 7.750500000e+00 0 0 +GRID* 717 0 5.246527778e+00 1.886729106e-01* +* 7.750500000e+00 0 0 +GRID* 718 0 5.246527778e+00 6.533468427e-02* +* 7.750500000e+00 0 0 +GRID* 719 0 5.246527778e+00-5.800354207e-02* +* 7.750500000e+00 0 0 +GRID* 720 0 5.246527778e+00-1.813417684e-01* +* 7.750500000e+00 0 0 +GRID* 721 0 5.343750000e+00 1.912120240e-01* +* 7.750500000e+00 0 0 +GRID* 722 0 5.343750000e+00 6.759417919e-02* +* 7.750500000e+00 0 0 +GRID* 723 0 5.343750000e+00-5.602366566e-02* +* 7.750500000e+00 0 0 +GRID* 724 0 5.343750000e+00-1.796415105e-01* +* 7.750500000e+00 0 0 +GRID* 725 0 5.440972222e+00 1.925548716e-01* +* 7.750500000e+00 0 0 +GRID* 726 0 5.440972222e+00 6.994429848e-02* +* 7.750500000e+00 0 0 +GRID* 727 0 5.440972222e+00-5.266627462e-02* +* 7.750500000e+00 0 0 +GRID* 728 0 5.440972222e+00-1.752768477e-01* +* 7.750500000e+00 0 0 +GRID* 729 0 5.538194444e+00 1.925566384e-01* +* 7.750500000e+00 0 0 +GRID* 730 0 5.538194444e+00 7.226938503e-02* +* 7.750500000e+00 0 0 +GRID* 731 0 5.538194444e+00-4.801786828e-02* +* 7.750500000e+00 0 0 +GRID* 732 0 5.538194444e+00-1.683051216e-01* +* 7.750500000e+00 0 0 +GRID* 733 0 5.635416667e+00 1.913153181e-01* +* 7.750500000e+00 0 0 +GRID* 734 0 5.635416667e+00 7.440076567e-02* +* 7.750500000e+00 0 0 +GRID* 735 0 5.635416667e+00-4.251378681e-02* +* 7.750500000e+00 0 0 +GRID* 736 0 5.635416667e+00-1.594283393e-01* +* 7.750500000e+00 0 0 +GRID* 737 0 5.732638889e+00 1.886111363e-01* +* 7.750500000e+00 0 0 +GRID* 738 0 5.732638889e+00 7.616722752e-02* +* 7.750500000e+00 0 0 +GRID* 739 0 5.732638889e+00-3.627668126e-02* +* 7.750500000e+00 0 0 +GRID* 740 0 5.732638889e+00-1.487205900e-01* +* 7.750500000e+00 0 0 +GRID* 741 0 5.829861111e+00 1.846357265e-01* +* 7.750500000e+00 0 0 +GRID* 742 0 5.829861111e+00 7.748149567e-02* +* 7.750500000e+00 0 0 +GRID* 743 0 5.829861111e+00-2.967273516e-02* +* 7.750500000e+00 0 0 +GRID* 744 0 5.829861111e+00-1.368269660e-01* +* 7.750500000e+00 0 0 +GRID* 745 0 5.927083333e+00 1.791230505e-01* +* 7.750500000e+00 0 0 +GRID* 746 0 5.927083333e+00 7.813135267e-02* +* 7.750500000e+00 0 0 +GRID* 747 0 5.927083333e+00-2.286034515e-02* +* 7.750500000e+00 0 0 +GRID* 748 0 5.927083333e+00-1.238520430e-01* +* 7.750500000e+00 0 0 +GRID* 749 0 6.024305556e+00 1.723413800e-01* +* 7.750500000e+00 0 0 +GRID* 750 0 6.024305556e+00 7.815299482e-02* +* 7.750500000e+00 0 0 +GRID* 751 0 6.024305556e+00-1.603539041e-02* +* 7.750500000e+00 0 0 +GRID* 752 0 6.024305556e+00-1.102237756e-01* +* 7.750500000e+00 0 0 +GRID* 753 0 6.121527778e+00 1.640469894e-01* +* 7.750500000e+00 0 0 +GRID* 754 0 6.121527778e+00 7.730982965e-02* +* 7.750500000e+00 0 0 +GRID* 755 0 6.121527778e+00-9.427330131e-03* +* 7.750500000e+00 0 0 +GRID* 756 0 6.121527778e+00-9.616448992e-02* +* 7.750500000e+00 0 0 +GRID* 757 0 6.218750000e+00 1.545145186e-01* +* 7.750500000e+00 0 0 +GRID* 758 0 6.218750000e+00 7.567813408e-02* +* 7.750500000e+00 0 0 +GRID* 759 0 6.218750000e+00-3.158250463e-03* +* 7.750500000e+00 0 0 +GRID* 760 0 6.218750000e+00-8.199463501e-02* +* 7.750500000e+00 0 0 +GRID* 761 0 4.871093750e+00 1.115731139e-01* +* 8.531812500e+00 0 0 +GRID* 762 0 4.871093750e+00 3.694526252e-02* +* 8.531812500e+00 0 0 +GRID* 763 0 4.871093750e+00-3.768258890e-02* +* 8.531812500e+00 0 0 +GRID* 764 0 4.871093750e+00-1.123104403e-01* +* 8.531812500e+00 0 0 +GRID* 765 0 4.961371528e+00 1.263163380e-01* +* 8.531812500e+00 0 0 +GRID* 766 0 4.961371528e+00 4.197410841e-02* +* 8.531812500e+00 0 0 +GRID* 767 0 4.961371528e+00-4.236812117e-02* +* 8.531812500e+00 0 0 +GRID* 768 0 4.961371528e+00-1.267103507e-01* +* 8.531812500e+00 0 0 +GRID* 769 0 5.051649306e+00 1.385555617e-01* +* 8.531812500e+00 0 0 +GRID* 770 0 5.051649306e+00 4.621526633e-02* +* 8.531812500e+00 0 0 +GRID* 771 0 5.051649306e+00-4.612502908e-02* +* 8.531812500e+00 0 0 +GRID* 772 0 5.051649306e+00-1.384653245e-01* +* 8.531812500e+00 0 0 +GRID* 773 0 5.141927083e+00 1.485005942e-01* +* 8.531812500e+00 0 0 +GRID* 774 0 5.141927083e+00 4.974484023e-02* +* 8.531812500e+00 0 0 +GRID* 775 0 5.141927083e+00-4.901091369e-02* +* 8.531812500e+00 0 0 +GRID* 776 0 5.141927083e+00-1.477666676e-01* +* 8.531812500e+00 0 0 +GRID* 777 0 5.232204861e+00 1.564135379e-01* +* 8.531812500e+00 0 0 +GRID* 778 0 5.232204861e+00 5.260334074e-02* +* 8.531812500e+00 0 0 +GRID* 779 0 5.232204861e+00-5.120685643e-02* +* 8.531812500e+00 0 0 +GRID* 780 0 5.232204861e+00-1.550170536e-01* +* 8.531812500e+00 0 0 +GRID* 781 0 5.322482639e+00 1.629944422e-01* +* 8.531812500e+00 0 0 +GRID* 782 0 5.322482639e+00 5.503387827e-02* +* 8.531812500e+00 0 0 +GRID* 783 0 5.322482639e+00-5.292668570e-02* +* 8.531812500e+00 0 0 +GRID* 784 0 5.322482639e+00-1.608872497e-01* +* 8.531812500e+00 0 0 +GRID* 785 0 5.412760417e+00 1.685304846e-01* +* 8.531812500e+00 0 0 +GRID* 786 0 5.412760417e+00 5.716061669e-02* +* 8.531812500e+00 0 0 +GRID* 787 0 5.412760417e+00-5.420925124e-02* +* 8.531812500e+00 0 0 +GRID* 788 0 5.412760417e+00-1.655791192e-01* +* 8.531812500e+00 0 0 +GRID* 789 0 5.503038194e+00 1.730732958e-01* +* 8.531812500e+00 0 0 +GRID* 790 0 5.503038194e+00 5.915678544e-02* +* 8.531812500e+00 0 0 +GRID* 791 0 5.503038194e+00-5.475972494e-02* +* 8.531812500e+00 0 0 +GRID* 792 0 5.503038194e+00-1.686762353e-01* +* 8.531812500e+00 0 0 +GRID* 793 0 5.593315972e+00 1.765703059e-01* +* 8.531812500e+00 0 0 +GRID* 794 0 5.593315972e+00 6.112460535e-02* +* 8.531812500e+00 0 0 +GRID* 795 0 5.593315972e+00-5.432109519e-02* +* 8.531812500e+00 0 0 +GRID* 796 0 5.593315972e+00-1.697667957e-01* +* 8.531812500e+00 0 0 +GRID* 797 0 5.683593750e+00 1.789657054e-01* +* 8.531812500e+00 0 0 +GRID* 798 0 5.683593750e+00 6.321840393e-02* +* 8.531812500e+00 0 0 +GRID* 799 0 5.683593750e+00-5.252889757e-02* +* 8.531812500e+00 0 0 +GRID* 800 0 5.683593750e+00-1.682761991e-01* +* 8.531812500e+00 0 0 +GRID* 801 0 5.773871528e+00 1.802382793e-01* +* 8.531812500e+00 0 0 +GRID* 802 0 5.773871528e+00 6.539969974e-02* +* 8.531812500e+00 0 0 +GRID* 803 0 5.773871528e+00-4.943887987e-02* +* 8.531812500e+00 0 0 +GRID* 804 0 5.773871528e+00-1.642774595e-01* +* 8.531812500e+00 0 0 +GRID* 805 0 5.864149306e+00 1.803056094e-01* +* 8.531812500e+00 0 0 +GRID* 806 0 5.864149306e+00 6.756418819e-02* +* 8.531812500e+00 0 0 +GRID* 807 0 5.864149306e+00-4.517723302e-02* +* 8.531812500e+00 0 0 +GRID* 808 0 5.864149306e+00-1.579186542e-01* +* 8.531812500e+00 0 0 +GRID* 809 0 5.954427083e+00 1.791933294e-01* +* 8.531812500e+00 0 0 +GRID* 810 0 5.954427083e+00 6.955110836e-02* +* 8.531812500e+00 0 0 +GRID* 811 0 5.954427083e+00-4.009111271e-02* +* 8.531812500e+00 0 0 +GRID* 812 0 5.954427083e+00-1.497333338e-01* +* 8.531812500e+00 0 0 +GRID* 813 0 6.044704861e+00 1.767788507e-01* +* 8.531812500e+00 0 0 +GRID* 814 0 6.044704861e+00 7.122030684e-02* +* 8.531812500e+00 0 0 +GRID* 815 0 6.044704861e+00-3.433823701e-02* +* 8.531812500e+00 0 0 +GRID* 816 0 6.044704861e+00-1.398967809e-01* +* 8.531812500e+00 0 0 +GRID* 817 0 6.134982639e+00 1.731431829e-01* +* 8.531812500e+00 0 0 +GRID* 818 0 6.134982639e+00 7.245426847e-02* +* 8.531812500e+00 0 0 +GRID* 819 0 6.134982639e+00-2.823464600e-02* +* 8.531812500e+00 0 0 +GRID* 820 0 6.134982639e+00-1.289235605e-01* +* 8.531812500e+00 0 0 +GRID* 821 0 6.225260417e+00 1.681494177e-01* +* 8.531812500e+00 0 0 +GRID* 822 0 6.225260417e+00 7.312208838e-02* +* 8.531812500e+00 0 0 +GRID* 823 0 6.225260417e+00-2.190524096e-02* +* 8.531812500e+00 0 0 +GRID* 824 0 6.225260417e+00-1.169325703e-01* +* 8.531812500e+00 0 0 +GRID* 825 0 6.315538194e+00 1.619507616e-01* +* 8.531812500e+00 0 0 +GRID* 826 0 6.315538194e+00 7.319007905e-02* +* 8.531812500e+00 0 0 +GRID* 827 0 6.315538194e+00-1.557060347e-02* +* 8.531812500e+00 0 0 +GRID* 828 0 6.315538194e+00-1.043312860e-01* +* 8.531812500e+00 0 0 +GRID* 829 0 6.405815972e+00 1.543711217e-01* +* 8.531812500e+00 0 0 +GRID* 830 0 6.405815972e+00 7.248412171e-02* +* 8.531812500e+00 0 0 +GRID* 831 0 6.405815972e+00-9.402878257e-03* +* 8.531812500e+00 0 0 +GRID* 832 0 6.405815972e+00-9.128987823e-02* +* 8.531812500e+00 0 0 +GRID* 833 0 6.496093750e+00 1.456563750e-01* +* 8.531812500e+00 0 0 +GRID* 834 0 6.496093750e+00 7.106123320e-02* +* 8.531812500e+00 0 0 +GRID* 835 0 6.496093750e+00-3.533908586e-03* +* 8.531812500e+00 0 0 +GRID* 836 0 6.496093750e+00-7.812905038e-02* +* 8.531812500e+00 0 0 +GRID* 837 0 5.273437500e+00 1.047157463e-01* +* 9.313125000e+00 0 0 +GRID* 838 0 5.273437500e+00 3.467856412e-02* +* 9.313125000e+00 0 0 +GRID* 839 0 5.273437500e+00-3.535861805e-02* +* 9.313125000e+00 0 0 +GRID* 840 0 5.273437500e+00-1.053958002e-01* +* 9.313125000e+00 0 0 +GRID* 841 0 5.356770833e+00 1.182065249e-01* +* 9.313125000e+00 0 0 +GRID* 842 0 5.356770833e+00 3.928469960e-02* +* 9.313125000e+00 0 0 +GRID* 843 0 5.356770833e+00-3.963712575e-02* +* 9.313125000e+00 0 0 +GRID* 844 0 5.356770833e+00-1.185589511e-01* +* 9.313125000e+00 0 0 +GRID* 845 0 5.440104167e+00 1.294476630e-01* +* 9.313125000e+00 0 0 +GRID* 846 0 5.440104167e+00 4.318200204e-02* +* 9.313125000e+00 0 0 +GRID* 847 0 5.440104167e+00-4.308365893e-02* +* 9.313125000e+00 0 0 +GRID* 848 0 5.440104167e+00-1.293493199e-01* +* 9.313125000e+00 0 0 +GRID* 849 0 5.523437500e+00 1.385574346e-01* +* 9.313125000e+00 0 0 +GRID* 850 0 5.523437500e+00 4.641801963e-02* +* 9.313125000e+00 0 0 +GRID* 851 0 5.523437500e+00-4.572139535e-02* +* 9.313125000e+00 0 0 +GRID* 852 0 5.523437500e+00-1.378608103e-01* +* 9.313125000e+00 0 0 +GRID* 853 0 5.606770833e+00 1.458447802e-01* +* 9.313125000e+00 0 0 +GRID* 854 0 5.606770833e+00 4.905127747e-02* +* 9.313125000e+00 0 0 +GRID* 855 0 5.606770833e+00-4.774222521e-02* +* 9.313125000e+00 0 0 +GRID* 856 0 5.606770833e+00-1.445357279e-01* +* 9.313125000e+00 0 0 +GRID* 857 0 5.690104167e+00 1.519083048e-01* +* 9.313125000e+00 0 0 +GRID* 858 0 5.690104167e+00 5.129139311e-02* +* 9.313125000e+00 0 0 +GRID* 859 0 5.690104167e+00-4.932551855e-02* +* 9.313125000e+00 0 0 +GRID* 860 0 5.690104167e+00-1.499424302e-01* +* 9.313125000e+00 0 0 +GRID* 861 0 5.773437500e+00 1.570194155e-01* +* 9.313125000e+00 0 0 +GRID* 862 0 5.773437500e+00 5.325481248e-02* +* 9.313125000e+00 0 0 +GRID* 863 0 5.773437500e+00-5.050979054e-02* +* 9.313125000e+00 0 0 +GRID* 864 0 5.773437500e+00-1.542743936e-01* +* 9.313125000e+00 0 0 +GRID* 865 0 5.856770833e+00 1.612264509e-01* +* 9.313125000e+00 0 0 +GRID* 866 0 5.856770833e+00 5.509855469e-02* +* 9.313125000e+00 0 0 +GRID* 867 0 5.856770833e+00-5.102934151e-02* +* 9.313125000e+00 0 0 +GRID* 868 0 5.856770833e+00-1.571572377e-01* +* 9.313125000e+00 0 0 +GRID* 869 0 5.940104167e+00 1.644677012e-01* +* 9.313125000e+00 0 0 +GRID* 870 0 5.940104167e+00 5.691452642e-02* +* 9.313125000e+00 0 0 +GRID* 871 0 5.940104167e+00-5.063864831e-02* +* 9.313125000e+00 0 0 +GRID* 872 0 5.940104167e+00-1.581918230e-01* +* 9.313125000e+00 0 0 +GRID* 873 0 6.023437500e+00 1.667193868e-01* +* 9.313125000e+00 0 0 +GRID* 874 0 6.023437500e+00 5.884262867e-02* +* 9.313125000e+00 0 0 +GRID* 875 0 6.023437500e+00-4.903412948e-02* +* 9.313125000e+00 0 0 +GRID* 876 0 6.023437500e+00-1.569108876e-01* +* 9.313125000e+00 0 0 +GRID* 877 0 6.106770833e+00 1.679216871e-01* +* 9.313125000e+00 0 0 +GRID* 878 0 6.106770833e+00 6.085510099e-02* +* 9.313125000e+00 0 0 +GRID* 879 0 6.106770833e+00-4.621148513e-02* +* 9.313125000e+00 0 0 +GRID* 880 0 6.106770833e+00-1.532780713e-01* +* 9.313125000e+00 0 0 +GRID* 881 0 6.190104167e+00 1.680545804e-01* +* 9.313125000e+00 0 0 +GRID* 882 0 6.190104167e+00 6.285899134e-02* +* 9.313125000e+00 0 0 +GRID* 883 0 6.190104167e+00-4.233659776e-02* +* 9.313125000e+00 0 0 +GRID* 884 0 6.190104167e+00-1.475321869e-01* +* 9.313125000e+00 0 0 +GRID* 885 0 6.273437500e+00 1.670713407e-01* +* 9.313125000e+00 0 0 +GRID* 886 0 6.273437500e+00 6.470145104e-02* +* 9.313125000e+00 0 0 +GRID* 887 0 6.273437500e+00-3.766843862e-02* +* 9.313125000e+00 0 0 +GRID* 888 0 6.273437500e+00-1.400383283e-01* +* 9.313125000e+00 0 0 +GRID* 889 0 6.356770833e+00 1.649465651e-01* +* 9.313125000e+00 0 0 +GRID* 890 0 6.356770833e+00 6.627338615e-02* +* 9.313125000e+00 0 0 +GRID* 891 0 6.356770833e+00-3.239979277e-02* +* 9.313125000e+00 0 0 +GRID* 892 0 6.356770833e+00-1.310729717e-01* +* 9.313125000e+00 0 0 +GRID* 893 0 6.440104167e+00 1.616506394e-01* +* 9.313125000e+00 0 0 +GRID* 894 0 6.440104167e+00 6.743547759e-02* +* 9.313125000e+00 0 0 +GRID* 895 0 6.440104167e+00-2.677968421e-02* +* 9.313125000e+00 0 0 +GRID* 896 0 6.440104167e+00-1.209948460e-01* +* 9.313125000e+00 0 0 +GRID* 897 0 6.523437500e+00 1.571757849e-01* +* 9.313125000e+00 0 0 +GRID* 898 0 6.523437500e+00 6.811282409e-02* +* 9.313125000e+00 0 0 +GRID* 899 0 6.523437500e+00-2.095013677e-02* +* 9.313125000e+00 0 0 +GRID* 900 0 6.523437500e+00-1.100130976e-01* +* 9.313125000e+00 0 0 +GRID* 901 0 6.606770833e+00 1.515287150e-01* +* 9.313125000e+00 0 0 +GRID* 902 0 6.606770833e+00 6.821359123e-02* +* 9.313125000e+00 0 0 +GRID* 903 0 6.606770833e+00-1.510153249e-02* +* 9.313125000e+00 0 0 +GRID* 904 0 6.606770833e+00-9.841665621e-02* +* 9.313125000e+00 0 0 +GRID* 905 0 6.690104167e+00 1.446952539e-01* +* 9.313125000e+00 0 0 +GRID* 906 0 6.690104167e+00 6.765841377e-02* +* 9.313125000e+00 0 0 +GRID* 907 0 6.690104167e+00-9.378426384e-03* +* 9.313125000e+00 0 0 +GRID* 908 0 6.690104167e+00-8.641526654e-02* +* 9.313125000e+00 0 0 +GRID* 909 0 6.773437500e+00 1.367336674e-01* +* 9.313125000e+00 0 0 +GRID* 910 0 6.773437500e+00 6.639991918e-02* +* 9.313125000e+00 0 0 +GRID* 911 0 6.773437500e+00-3.933828998e-03* +* 9.313125000e+00 0 0 +GRID* 912 0 6.773437500e+00-7.426757718e-02* +* 9.313125000e+00 0 0 +GRID* 913 0 5.675781250e+00 9.785837862e-02* +* 1.009443750e+01 0 0 +GRID* 914 0 5.675781250e+00 3.241186571e-02* +* 1.009443750e+01 0 0 +GRID* 915 0 5.675781250e+00-3.303464721e-02* +* 1.009443750e+01 0 0 +GRID* 916 0 5.675781250e+00-9.848116012e-02* +* 1.009443750e+01 0 0 +GRID* 917 0 5.752170139e+00 1.100967119e-01* +* 1.009443750e+01 0 0 +GRID* 918 0 5.752170139e+00 3.659529080e-02* +* 1.009443750e+01 0 0 +GRID* 919 0 5.752170139e+00-3.690613032e-02* +* 1.009443750e+01 0 0 +GRID* 920 0 5.752170139e+00-1.104075514e-01* +* 1.009443750e+01 0 0 +GRID* 921 0 5.828559028e+00 1.203397643e-01* +* 1.009443750e+01 0 0 +GRID* 922 0 5.828559028e+00 4.014873774e-02* +* 1.009443750e+01 0 0 +GRID* 923 0 5.828559028e+00-4.004228879e-02* +* 1.009443750e+01 0 0 +GRID* 924 0 5.828559028e+00-1.202333153e-01* +* 1.009443750e+01 0 0 +GRID* 925 0 5.904947917e+00 1.286142751e-01* +* 1.009443750e+01 0 0 +GRID* 926 0 5.904947917e+00 4.309119902e-02* +* 1.009443750e+01 0 0 +GRID* 927 0 5.904947917e+00-4.243187702e-02* +* 1.009443750e+01 0 0 +GRID* 928 0 5.904947917e+00-1.279549531e-01* +* 1.009443750e+01 0 0 +GRID* 929 0 5.981336806e+00 1.352760224e-01* +* 1.009443750e+01 0 0 +GRID* 930 0 5.981336806e+00 4.549921420e-02* +* 1.009443750e+01 0 0 +GRID* 931 0 5.981336806e+00-4.427759399e-02* +* 1.009443750e+01 0 0 +GRID* 932 0 5.981336806e+00-1.340544022e-01* +* 1.009443750e+01 0 0 +GRID* 933 0 6.057725694e+00 1.408221673e-01* +* 1.009443750e+01 0 0 +GRID* 934 0 6.057725694e+00 4.754890794e-02* +* 1.009443750e+01 0 0 +GRID* 935 0 6.057725694e+00-4.572435141e-02* +* 1.009443750e+01 0 0 +GRID* 936 0 6.057725694e+00-1.389976108e-01* +* 1.009443750e+01 0 0 +GRID* 937 0 6.134114583e+00 1.455083464e-01* +* 1.009443750e+01 0 0 +GRID* 938 0 6.134114583e+00 4.934900827e-02* +* 1.009443750e+01 0 0 +GRID* 939 0 6.134114583e+00-4.681032983e-02* +* 1.009443750e+01 0 0 +GRID* 940 0 6.134114583e+00-1.429696679e-01* +* 1.009443750e+01 0 0 +GRID* 941 0 6.210503472e+00 1.493796060e-01* +* 1.009443750e+01 0 0 +GRID* 942 0 6.210503472e+00 5.104032394e-02* +* 1.009443750e+01 0 0 +GRID* 943 0 6.210503472e+00-4.729895808e-02* +* 1.009443750e+01 0 0 +GRID* 944 0 6.210503472e+00-1.456382401e-01* +* 1.009443750e+01 0 0 +GRID* 945 0 6.286892361e+00 1.523650964e-01* +* 1.009443750e+01 0 0 +GRID* 946 0 6.286892361e+00 5.270444750e-02* +* 1.009443750e+01 0 0 +GRID* 947 0 6.286892361e+00-4.695620142e-02* +* 1.009443750e+01 0 0 +GRID* 948 0 6.286892361e+00-1.466168503e-01* +* 1.009443750e+01 0 0 +GRID* 949 0 6.363281250e+00 1.544730682e-01* +* 1.009443750e+01 0 0 +GRID* 950 0 6.363281250e+00 5.446685341e-02* +* 1.009443750e+01 0 0 +GRID* 951 0 6.363281250e+00-4.553936139e-02* +* 1.009443750e+01 0 0 +GRID* 952 0 6.363281250e+00-1.455455762e-01* +* 1.009443750e+01 0 0 +GRID* 953 0 6.439670139e+00 1.556050949e-01* +* 1.009443750e+01 0 0 +GRID* 954 0 6.439670139e+00 5.631050225e-02* +* 1.009443750e+01 0 0 +GRID* 955 0 6.439670139e+00-4.298409039e-02* +* 1.009443750e+01 0 0 +GRID* 956 0 6.439670139e+00-1.422786830e-01* +* 1.009443750e+01 0 0 +GRID* 957 0 6.516059028e+00 1.558035515e-01* +* 1.009443750e+01 0 0 +GRID* 958 0 6.516059028e+00 5.815379450e-02* +* 1.009443750e+01 0 0 +GRID* 959 0 6.516059028e+00-3.949596250e-02* +* 1.009443750e+01 0 0 +GRID* 960 0 6.516059028e+00-1.371457195e-01* +* 1.009443750e+01 0 0 +GRID* 961 0 6.592447917e+00 1.549493520e-01* +* 1.009443750e+01 0 0 +GRID* 962 0 6.592447917e+00 5.985179373e-02* +* 1.009443750e+01 0 0 +GRID* 963 0 6.592447917e+00-3.524576453e-02* +* 1.009443750e+01 0 0 +GRID* 964 0 6.592447917e+00-1.303433228e-01* +* 1.009443750e+01 0 0 +GRID* 965 0 6.668836806e+00 1.531142795e-01* +* 1.009443750e+01 0 0 +GRID* 966 0 6.668836806e+00 6.132646547e-02* +* 1.009443750e+01 0 0 +GRID* 967 0 6.668836806e+00-3.046134853e-02* +* 1.009443750e+01 0 0 +GRID* 968 0 6.668836806e+00-1.222491625e-01* +* 1.009443750e+01 0 0 +GRID* 969 0 6.745225694e+00 1.501580958e-01* +* 1.009443750e+01 0 0 +GRID* 970 0 6.745225694e+00 6.241668671e-02* +* 1.009443750e+01 0 0 +GRID* 971 0 6.745225694e+00-2.532472242e-02* +* 1.009443750e+01 0 0 +GRID* 972 0 6.745225694e+00-1.130661315e-01* +* 1.009443750e+01 0 0 +GRID* 973 0 6.821614583e+00 1.462021522e-01* +* 1.009443750e+01 0 0 +GRID* 974 0 6.821614583e+00 6.310355979e-02* +* 1.009443750e+01 0 0 +GRID* 975 0 6.821614583e+00-1.999503258e-02* +* 1.009443750e+01 0 0 +GRID* 976 0 6.821614583e+00-1.030936249e-01* +* 1.009443750e+01 0 0 +GRID* 977 0 6.898003472e+00 1.411066683e-01* +* 1.009443750e+01 0 0 +GRID* 978 0 6.898003472e+00 6.323795493e-02* +* 1.009443750e+01 0 0 +GRID* 979 0 6.898003472e+00-1.463075847e-02* +* 1.009443750e+01 0 0 +GRID* 980 0 6.898003472e+00-9.249947186e-02* +* 1.009443750e+01 0 0 +GRID* 981 0 6.974392361e+00 1.350193862e-01* +* 1.009443750e+01 0 0 +GRID* 982 0 6.974392361e+00 6.283270583e-02* +* 1.009443750e+01 0 0 +GRID* 983 0 6.974392361e+00-9.353974511e-03* +* 1.009443750e+01 0 0 +GRID* 984 0 6.974392361e+00-8.154065485e-02* +* 1.009443750e+01 0 0 +GRID* 985 0 7.050781250e+00 1.278109597e-01* +* 1.009443750e+01 0 0 +GRID* 986 0 7.050781250e+00 6.173737882e-02* +* 1.009443750e+01 0 0 +GRID* 987 0 7.050781250e+00-4.336202093e-03* +* 1.009443750e+01 0 0 +GRID* 988 0 7.050781250e+00-7.040978300e-02* +* 1.009443750e+01 0 0 +GRID* 989 0 6.078125000e+00 9.100101096e-02* +* 1.087575000e+01 0 0 +GRID* 990 0 6.078125000e+00 3.014516730e-02* +* 1.087575000e+01 0 0 +GRID* 991 0 6.078125000e+00-3.071067636e-02* +* 1.087575000e+01 0 0 +GRID* 992 0 6.078125000e+00-9.156652002e-02* +* 1.087575000e+01 0 0 +GRID* 993 0 6.147569444e+00 1.019868989e-01* +* 1.087575000e+01 0 0 +GRID* 994 0 6.147569444e+00 3.390588199e-02* +* 1.087575000e+01 0 0 +GRID* 995 0 6.147569444e+00-3.417513490e-02* +* 1.087575000e+01 0 0 +GRID* 996 0 6.147569444e+00-1.022561518e-01* +* 1.087575000e+01 0 0 +GRID* 997 0 6.217013889e+00 1.112318655e-01* +* 1.087575000e+01 0 0 +GRID* 998 0 6.217013889e+00 3.711547345e-02* +* 1.087575000e+01 0 0 +GRID* 999 0 6.217013889e+00-3.700091864e-02* +* 1.087575000e+01 0 0 +GRID* 1000 0 6.217013889e+00-1.111173107e-01* +* 1.087575000e+01 0 0 +GRID* 1001 0 6.286458333e+00 1.186711155e-01* +* 1.087575000e+01 0 0 +GRID* 1002 0 6.286458333e+00 3.976437841e-02* +* 1.087575000e+01 0 0 +GRID* 1003 0 6.286458333e+00-3.914235868e-02* +* 1.087575000e+01 0 0 +GRID* 1004 0 6.286458333e+00-1.180490958e-01* +* 1.087575000e+01 0 0 +GRID* 1005 0 6.355902778e+00 1.247072646e-01* +* 1.087575000e+01 0 0 +GRID* 1006 0 6.355902778e+00 4.194715093e-02* +* 1.087575000e+01 0 0 +GRID* 1007 0 6.355902778e+00-4.081296277e-02* +* 1.087575000e+01 0 0 +GRID* 1008 0 6.355902778e+00-1.235730765e-01* +* 1.087575000e+01 0 0 +GRID* 1009 0 6.425347222e+00 1.297360298e-01* +* 1.087575000e+01 0 0 +GRID* 1010 0 6.425347222e+00 4.380642278e-02* +* 1.087575000e+01 0 0 +GRID* 1011 0 6.425347222e+00-4.212318427e-02* +* 1.087575000e+01 0 0 +GRID* 1012 0 6.425347222e+00-1.280527913e-01* +* 1.087575000e+01 0 0 +GRID* 1013 0 6.494791667e+00 1.339972772e-01* +* 1.087575000e+01 0 0 +GRID* 1014 0 6.494791667e+00 4.544320406e-02* +* 1.087575000e+01 0 0 +GRID* 1015 0 6.494791667e+00-4.311086912e-02* +* 1.087575000e+01 0 0 +GRID* 1016 0 6.494791667e+00-1.316649423e-01* +* 1.087575000e+01 0 0 +GRID* 1017 0 6.564236111e+00 1.375327610e-01* +* 1.087575000e+01 0 0 +GRID* 1018 0 6.564236111e+00 4.698209319e-02* +* 1.087575000e+01 0 0 +GRID* 1019 0 6.564236111e+00-4.356857465e-02* +* 1.087575000e+01 0 0 +GRID* 1020 0 6.564236111e+00-1.341192425e-01* +* 1.087575000e+01 0 0 +GRID* 1021 0 6.633680556e+00 1.402624917e-01* +* 1.087575000e+01 0 0 +GRID* 1022 0 6.633680556e+00 4.849436858e-02* +* 1.087575000e+01 0 0 +GRID* 1023 0 6.633680556e+00-4.327375454e-02* +* 1.087575000e+01 0 0 +GRID* 1024 0 6.633680556e+00-1.350418777e-01* +* 1.087575000e+01 0 0 +GRID* 1025 0 6.703125000e+00 1.422267496e-01* +* 1.087575000e+01 0 0 +GRID* 1026 0 6.703125000e+00 5.009107815e-02* +* 1.087575000e+01 0 0 +GRID* 1027 0 6.703125000e+00-4.204459330e-02* +* 1.087575000e+01 0 0 +GRID* 1028 0 6.703125000e+00-1.341802647e-01* +* 1.087575000e+01 0 0 +GRID* 1029 0 6.772569444e+00 1.432885026e-01* +* 1.087575000e+01 0 0 +GRID* 1030 0 6.772569444e+00 5.176590350e-02* +* 1.087575000e+01 0 0 +GRID* 1031 0 6.772569444e+00-3.975669564e-02* +* 1.087575000e+01 0 0 +GRID* 1032 0 6.772569444e+00-1.312792948e-01* +* 1.087575000e+01 0 0 +GRID* 1033 0 6.842013889e+00 1.435525225e-01* +* 1.087575000e+01 0 0 +GRID* 1034 0 6.842013889e+00 5.344859765e-02* +* 1.087575000e+01 0 0 +GRID* 1035 0 6.842013889e+00-3.665532723e-02* +* 1.087575000e+01 0 0 +GRID* 1036 0 6.842013889e+00-1.267592521e-01* +* 1.087575000e+01 0 0 +GRID* 1037 0 6.911458333e+00 1.428273633e-01* +* 1.087575000e+01 0 0 +GRID* 1038 0 6.911458333e+00 5.500213642e-02* +* 1.087575000e+01 0 0 +GRID* 1039 0 6.911458333e+00-3.282309043e-02* +* 1.087575000e+01 0 0 +GRID* 1040 0 6.911458333e+00-1.206483173e-01* +* 1.087575000e+01 0 0 +GRID* 1041 0 6.980902778e+00 1.412701155e-01* +* 1.087575000e+01 0 0 +GRID* 1042 0 6.980902778e+00 5.637162585e-02* +* 1.087575000e+01 0 0 +GRID* 1043 0 6.980902778e+00-2.852686376e-02* +* 1.087575000e+01 0 0 +GRID* 1044 0 6.980902778e+00-1.134253534e-01* +* 1.087575000e+01 0 0 +GRID* 1045 0 7.050347222e+00 1.386655523e-01* +* 1.087575000e+01 0 0 +GRID* 1046 0 7.050347222e+00 5.739789582e-02* +* 1.087575000e+01 0 0 +GRID* 1047 0 7.050347222e+00-2.386976063e-02* +* 1.087575000e+01 0 0 +GRID* 1048 0 7.050347222e+00-1.051374171e-01* +* 1.087575000e+01 0 0 +GRID* 1049 0 7.119791667e+00 1.351894959e-01* +* 1.087575000e+01 0 0 +GRID* 1050 0 7.119791667e+00 5.806893271e-02* +* 1.087575000e+01 0 0 +GRID* 1051 0 7.119791667e+00-1.905163050e-02* +* 1.087575000e+01 0 0 +GRID* 1052 0 7.119791667e+00-9.617219371e-02* +* 1.087575000e+01 0 0 +GRID* 1053 0 7.189236111e+00 1.306846217e-01* +* 1.087575000e+01 0 0 +GRID* 1054 0 7.189236111e+00 5.826231863e-02* +* 1.087575000e+01 0 0 +GRID* 1055 0 7.189236111e+00-1.415998444e-02* +* 1.087575000e+01 0 0 +GRID* 1056 0 7.189236111e+00-8.658228752e-02* +* 1.087575000e+01 0 0 +GRID* 1057 0 7.258680556e+00 1.252800316e-01* +* 1.087575000e+01 0 0 +GRID* 1058 0 7.258680556e+00 5.796578380e-02* +* 1.087575000e+01 0 0 +GRID* 1059 0 7.258680556e+00-9.348464012e-03* +* 1.087575000e+01 0 0 +GRID* 1060 0 7.258680556e+00-7.666271182e-02* +* 1.087575000e+01 0 0 +GRID* 1061 0 7.328125000e+00 1.188882521e-01* +* 1.087575000e+01 0 0 +GRID* 1062 0 7.328125000e+00 5.707483845e-02* +* 1.087575000e+01 0 0 +GRID* 1063 0 7.328125000e+00-4.738575189e-03* +* 1.087575000e+01 0 0 +GRID* 1064 0 7.328125000e+00-6.655198883e-02* +* 1.087575000e+01 0 0 +GRID* 1065 0 6.480468750e+00 8.414364330e-02* +* 1.165706250e+01 0 0 +GRID* 1066 0 6.480468750e+00 2.788340062e-02* +* 1.165706250e+01 0 0 +GRID* 1067 0 6.480468750e+00-2.837684206e-02* +* 1.165706250e+01 0 0 +GRID* 1068 0 6.480468750e+00-8.463708475e-02* +* 1.165706250e+01 0 0 +GRID* 1069 0 6.542968750e+00 9.387708585e-02* +* 1.165706250e+01 0 0 +GRID* 1070 0 6.542968750e+00 3.121647319e-02* +* 1.165706250e+01 0 0 +GRID* 1071 0 6.542968750e+00-3.144413948e-02* +* 1.165706250e+01 0 0 +GRID* 1072 0 6.542968750e+00-9.410475214e-02* +* 1.165706250e+01 0 0 +GRID* 1073 0 6.605468750e+00 1.021239668e-01* +* 1.165706250e+01 0 0 +GRID* 1074 0 6.605468750e+00 3.408220915e-02* +* 1.165706250e+01 0 0 +GRID* 1075 0 6.605468750e+00-3.395954849e-02* +* 1.165706250e+01 0 0 +GRID* 1076 0 6.605468750e+00-1.020013061e-01* +* 1.165706250e+01 0 0 +GRID* 1077 0 6.667968750e+00 1.087279560e-01* +* 1.165706250e+01 0 0 +GRID* 1078 0 6.667968750e+00 3.643755781e-02* +* 1.165706250e+01 0 0 +GRID* 1079 0 6.667968750e+00-3.585284035e-02* +* 1.165706250e+01 0 0 +GRID* 1080 0 6.667968750e+00-1.081432385e-01* +* 1.165706250e+01 0 0 +GRID* 1081 0 6.730468750e+00 1.141385069e-01* +* 1.165706250e+01 0 0 +GRID* 1082 0 6.730468750e+00 3.839508766e-02* +* 1.165706250e+01 0 0 +GRID* 1083 0 6.730468750e+00-3.734833155e-02* +* 1.165706250e+01 0 0 +GRID* 1084 0 6.730468750e+00-1.130917508e-01* +* 1.165706250e+01 0 0 +GRID* 1085 0 6.792968750e+00 1.186498924e-01* +* 1.165706250e+01 0 0 +GRID* 1086 0 6.792968750e+00 4.006393762e-02* +* 1.165706250e+01 0 0 +GRID* 1087 0 6.792968750e+00-3.852201713e-02* +* 1.165706250e+01 0 0 +GRID* 1088 0 6.792968750e+00-1.171079719e-01* +* 1.165706250e+01 0 0 +GRID* 1089 0 6.855468750e+00 1.224862081e-01* +* 1.165706250e+01 0 0 +GRID* 1090 0 6.855468750e+00 4.153739985e-02* +* 1.165706250e+01 0 0 +GRID* 1091 0 6.855468750e+00-3.941140842e-02* +* 1.165706250e+01 0 0 +GRID* 1092 0 6.855468750e+00-1.203602167e-01* +* 1.165706250e+01 0 0 +GRID* 1093 0 6.917968750e+00 1.256859161e-01* +* 1.165706250e+01 0 0 +GRID* 1094 0 6.917968750e+00 4.292386244e-02* +* 1.165706250e+01 0 0 +GRID* 1095 0 6.917968750e+00-3.983819122e-02* +* 1.165706250e+01 0 0 +GRID* 1096 0 6.917968750e+00-1.226002449e-01* +* 1.165706250e+01 0 0 +GRID* 1097 0 6.980468750e+00 1.281598870e-01* +* 1.165706250e+01 0 0 +GRID* 1098 0 6.980468750e+00 4.428428965e-02* +* 1.165706250e+01 0 0 +GRID* 1099 0 6.980468750e+00-3.959130766e-02* +* 1.165706250e+01 0 0 +GRID* 1100 0 6.980468750e+00-1.234669050e-01* +* 1.165706250e+01 0 0 +GRID* 1101 0 7.042968750e+00 1.299804310e-01* +* 1.165706250e+01 0 0 +GRID* 1102 0 7.042968750e+00 4.571530289e-02* +* 1.165706250e+01 0 0 +GRID* 1103 0 7.042968750e+00-3.854982521e-02* +* 1.165706250e+01 0 0 +GRID* 1104 0 7.042968750e+00-1.228149533e-01* +* 1.165706250e+01 0 0 +GRID* 1105 0 7.105468750e+00 1.309719104e-01* +* 1.165706250e+01 0 0 +GRID* 1106 0 7.105468750e+00 4.722130476e-02* +* 1.165706250e+01 0 0 +GRID* 1107 0 7.105468750e+00-3.652930090e-02* +* 1.165706250e+01 0 0 +GRID* 1108 0 7.105468750e+00-1.202799066e-01* +* 1.165706250e+01 0 0 +GRID* 1109 0 7.167968750e+00 1.312650914e-01* +* 1.165706250e+01 0 0 +GRID* 1110 0 7.167968750e+00 4.872897838e-02* +* 1.165706250e+01 0 0 +GRID* 1111 0 7.167968750e+00-3.380713464e-02* +* 1.165706250e+01 0 0 +GRID* 1112 0 7.167968750e+00-1.163432477e-01* +* 1.165706250e+01 0 0 +GRID* 1113 0 7.230468750e+00 1.307053745e-01* +* 1.165706250e+01 0 0 +GRID* 1114 0 7.230468750e+00 5.015247911e-02* +* 1.165706250e+01 0 0 +GRID* 1115 0 7.230468750e+00-3.040041634e-02* +* 1.165706250e+01 0 0 +GRID* 1116 0 7.230468750e+00-1.109533118e-01* +* 1.165706250e+01 0 0 +GRID* 1117 0 7.292968750e+00 1.293677025e-01* +* 1.165706250e+01 0 0 +GRID* 1118 0 7.292968750e+00 5.139735666e-02* +* 1.165706250e+01 0 0 +GRID* 1119 0 7.292968750e+00-2.657298922e-02* +* 1.165706250e+01 0 0 +GRID* 1120 0 7.292968750e+00-1.045433351e-01* +* 1.165706250e+01 0 0 +GRID* 1121 0 7.355468750e+00 1.271730087e-01* +* 1.165706250e+01 0 0 +GRID* 1122 0 7.355468750e+00 5.237910494e-02* +* 1.165706250e+01 0 0 +GRID* 1123 0 7.355468750e+00-2.241479885e-02* +* 1.165706250e+01 0 0 +GRID* 1124 0 7.355468750e+00-9.720870263e-02* +* 1.165706250e+01 0 0 +GRID* 1125 0 7.417968750e+00 1.241289814e-01* +* 1.165706250e+01 0 0 +GRID* 1126 0 7.417968750e+00 5.301921328e-02* +* 1.165706250e+01 0 0 +GRID* 1127 0 7.417968750e+00-1.809055484e-02* +* 1.165706250e+01 0 0 +GRID* 1128 0 7.417968750e+00-8.920032296e-02* +* 1.165706250e+01 0 0 +GRID* 1129 0 7.480468750e+00 1.202625751e-01* +* 1.165706250e+01 0 0 +GRID* 1130 0 7.480468750e+00 5.328668233e-02* +* 1.165706250e+01 0 0 +GRID* 1131 0 7.480468750e+00-1.368921042e-02* +* 1.165706250e+01 0 0 +GRID* 1132 0 7.480468750e+00-8.066510317e-02* +* 1.165706250e+01 0 0 +GRID* 1133 0 7.542968750e+00 1.155021119e-01* +* 1.165706250e+01 0 0 +GRID* 1134 0 7.542968750e+00 5.307829706e-02* +* 1.165706250e+01 0 0 +GRID* 1135 0 7.542968750e+00-9.345517825e-03* +* 1.165706250e+01 0 0 +GRID* 1136 0 7.542968750e+00-7.176933271e-02* +* 1.165706250e+01 0 0 +GRID* 1137 0 7.605468750e+00 1.099655445e-01* +* 1.165706250e+01 0 0 +GRID* 1138 0 7.605468750e+00 5.241229808e-02* +* 1.165706250e+01 0 0 +GRID* 1139 0 7.605468750e+00-5.140948285e-03* +* 1.165706250e+01 0 0 +GRID* 1140 0 7.605468750e+00-6.269419465e-02* +* 1.165706250e+01 0 0 +GRID* 1141 0 6.882812500e+00 7.721677230e-02* +* 1.243837500e+01 0 0 +GRID* 1142 0 6.882812500e+00 2.560053044e-02* +* 1.243837500e+01 0 0 +GRID* 1143 0 6.882812500e+00-2.601571143e-02* +* 1.243837500e+01 0 0 +GRID* 1144 0 6.882812500e+00-7.763195330e-02* +* 1.243837500e+01 0 0 +GRID* 1145 0 6.938368056e+00 8.576727281e-02* +* 1.243837500e+01 0 0 +GRID* 1146 0 6.938368056e+00 2.852706438e-02* +* 1.243837500e+01 0 0 +GRID* 1147 0 6.938368056e+00-2.871314405e-02* +* 1.243837500e+01 0 0 +GRID* 1148 0 6.938368056e+00-8.595335249e-02* +* 1.243837500e+01 0 0 +GRID* 1149 0 6.993923611e+00 9.301606805e-02* +* 1.243837500e+01 0 0 +GRID* 1150 0 6.993923611e+00 3.105233428e-02* +* 1.243837500e+01 0 0 +GRID* 1151 0 6.993923611e+00-3.091139949e-02* +* 1.243837500e+01 0 0 +GRID* 1152 0 6.993923611e+00-9.287513326e-02* +* 1.243837500e+01 0 0 +GRID* 1153 0 7.049479167e+00 9.878479642e-02* +* 1.243837500e+01 0 0 +GRID* 1154 0 7.049479167e+00 3.311073720e-02* +* 1.243837500e+01 0 0 +GRID* 1155 0 7.049479167e+00-3.256332201e-02* +* 1.243837500e+01 0 0 +GRID* 1156 0 7.049479167e+00-9.823738123e-02* +* 1.243837500e+01 0 0 +GRID* 1157 0 7.105034722e+00 1.035697491e-01* +* 1.243837500e+01 0 0 +GRID* 1158 0 7.105034722e+00 3.484302439e-02* +* 1.243837500e+01 0 0 +GRID* 1159 0 7.105034722e+00-3.388370034e-02* +* 1.243837500e+01 0 0 +GRID* 1160 0 7.105034722e+00-1.026104251e-01* +* 1.243837500e+01 0 0 +GRID* 1161 0 7.160590278e+00 1.075637549e-01* +* 1.243837500e+01 0 0 +GRID* 1162 0 7.160590278e+00 3.632145246e-02* +* 1.243837500e+01 0 0 +GRID* 1163 0 7.160590278e+00-3.492084999e-02* +* 1.243837500e+01 0 0 +GRID* 1164 0 7.160590278e+00-1.061631524e-01* +* 1.243837500e+01 0 0 +GRID* 1165 0 7.216145833e+00 1.109751390e-01* +* 1.243837500e+01 0 0 +GRID* 1166 0 7.216145833e+00 3.763159564e-02* +* 1.243837500e+01 0 0 +GRID* 1167 0 7.216145833e+00-3.571194771e-02* +* 1.243837500e+01 0 0 +GRID* 1168 0 7.216145833e+00-1.090554911e-01* +* 1.243837500e+01 0 0 +GRID* 1169 0 7.271701389e+00 1.138390712e-01* +* 1.243837500e+01 0 0 +GRID* 1170 0 7.271701389e+00 3.886563170e-02* +* 1.243837500e+01 0 0 +GRID* 1171 0 7.271701389e+00-3.610780779e-02* +* 1.243837500e+01 0 0 +GRID* 1172 0 7.271701389e+00-1.110812473e-01* +* 1.243837500e+01 0 0 +GRID* 1173 0 7.327256944e+00 1.160572822e-01* +* 1.243837500e+01 0 0 +GRID* 1174 0 7.327256944e+00 4.007421073e-02* +* 1.243837500e+01 0 0 +GRID* 1175 0 7.327256944e+00-3.590886077e-02* +* 1.243837500e+01 0 0 +GRID* 1176 0 7.327256944e+00-1.118919323e-01* +* 1.243837500e+01 0 0 +GRID* 1177 0 7.382812500e+00 1.177059333e-01* +* 1.243837500e+01 0 0 +GRID* 1178 0 7.382812500e+00 4.133179990e-02* +* 1.243837500e+01 0 0 +GRID* 1179 0 7.382812500e+00-3.504233345e-02* +* 1.243837500e+01 0 0 +GRID* 1180 0 7.382812500e+00-1.114164668e-01* +* 1.243837500e+01 0 0 +GRID* 1181 0 7.438368056e+00 1.186553182e-01* +* 1.243837500e+01 0 0 +GRID* 1182 0 7.438368056e+00 4.267670601e-02* +* 1.243837500e+01 0 0 +GRID* 1183 0 7.438368056e+00-3.330190615e-02* +* 1.243837500e+01 0 0 +GRID* 1184 0 7.438368056e+00-1.092805183e-01* +* 1.243837500e+01 0 0 +GRID* 1185 0 7.493923611e+00 1.189631954e-01* +* 1.243837500e+01 0 0 +GRID* 1186 0 7.493923611e+00 4.401885647e-02* +* 1.243837500e+01 0 0 +GRID* 1187 0 7.493923611e+00-3.092548249e-02* +* 1.243837500e+01 0 0 +GRID* 1188 0 7.493923611e+00-1.058698214e-01* +* 1.243837500e+01 0 0 +GRID* 1189 0 7.549479167e+00 1.185833858e-01* +* 1.243837500e+01 0 0 +GRID* 1190 0 7.549479167e+00 4.530282179e-02* +* 1.243837500e+01 0 0 +GRID* 1191 0 7.549479167e+00-2.797774224e-02* +* 1.243837500e+01 0 0 +GRID* 1192 0 7.549479167e+00-1.012583063e-01* +* 1.243837500e+01 0 0 +GRID* 1193 0 7.605034722e+00 1.174652896e-01* +* 1.243837500e+01 0 0 +GRID* 1194 0 7.605034722e+00 4.642810352e-02* +* 1.243837500e+01 0 0 +GRID* 1195 0 7.605034722e+00-2.460908257e-02* +* 1.243837500e+01 0 0 +GRID* 1196 0 7.605034722e+00-9.564626865e-02* +* 1.243837500e+01 0 0 +GRID* 1197 0 7.660590278e+00 1.156804652e-01* +* 1.243837500e+01 0 0 +GRID* 1198 0 7.660590278e+00 4.736031406e-02* +* 1.243837500e+01 0 0 +GRID* 1199 0 7.660590278e+00-2.095983706e-02* +* 1.243837500e+01 0 0 +GRID* 1200 0 7.660590278e+00-8.927998817e-02* +* 1.243837500e+01 0 0 +GRID* 1201 0 7.716145833e+00 1.130684669e-01* +* 1.243837500e+01 0 0 +GRID* 1202 0 7.716145833e+00 4.796949385e-02* +* 1.243837500e+01 0 0 +GRID* 1203 0 7.716145833e+00-1.712947919e-02* +* 1.243837500e+01 0 0 +GRID* 1204 0 7.716145833e+00-8.222845222e-02* +* 1.243837500e+01 0 0 +GRID* 1205 0 7.771701389e+00 1.097816536e-01* +* 1.243837500e+01 0 0 +GRID* 1206 0 7.771701389e+00 4.827574750e-02* +* 1.243837500e+01 0 0 +GRID* 1207 0 7.771701389e+00-1.323015860e-02* +* 1.243837500e+01 0 0 +GRID* 1208 0 7.771701389e+00-7.473606469e-02* +* 1.243837500e+01 0 0 +GRID* 1209 0 7.827256944e+00 1.057241923e-01* +* 1.243837500e+01 0 0 +GRID* 1210 0 7.827256944e+00 4.819081032e-02* +* 1.243837500e+01 0 0 +GRID* 1211 0 7.827256944e+00-9.342571638e-03* +* 1.243837500e+01 0 0 +GRID* 1212 0 7.827256944e+00-6.687595359e-02* +* 1.243837500e+01 0 0 +GRID* 1213 0 7.882812500e+00 1.009350505e-01* +* 1.243837500e+01 0 0 +GRID* 1214 0 7.882812500e+00 4.767909506e-02* +* 1.243837500e+01 0 0 +GRID* 1215 0 7.882812500e+00-5.576860419e-03* +* 1.243837500e+01 0 0 +GRID* 1216 0 7.882812500e+00-5.883281590e-02* +* 1.243837500e+01 0 0 +GRID* 1217 0 7.285156250e+00 7.027396045e-02* +* 1.321968750e+01 0 0 +GRID* 1218 0 7.285156250e+00 2.330703302e-02* +* 1.321968750e+01 0 0 +GRID* 1219 0 7.285156250e+00-2.365989442e-02* +* 1.321968750e+01 0 0 +GRID* 1220 0 7.285156250e+00-7.062682185e-02* +* 1.321968750e+01 0 0 +GRID* 1221 0 7.333767361e+00 7.765745978e-02* +* 1.321968750e+01 0 0 +GRID* 1222 0 7.333767361e+00 2.583765557e-02* +* 1.321968750e+01 0 0 +GRID* 1223 0 7.333767361e+00-2.598214863e-02* +* 1.321968750e+01 0 0 +GRID* 1224 0 7.333767361e+00-7.780195284e-02* +* 1.321968750e+01 0 0 +GRID* 1225 0 7.382378472e+00 8.386093397e-02* +* 1.321968750e+01 0 0 +GRID* 1226 0 7.382378472e+00 2.801131916e-02* +* 1.321968750e+01 0 0 +GRID* 1227 0 7.382378472e+00-2.783829564e-02* +* 1.321968750e+01 0 0 +GRID* 1228 0 7.382378472e+00-8.368791045e-02* +* 1.321968750e+01 0 0 +GRID* 1229 0 7.430989583e+00 8.884163687e-02* +* 1.321968750e+01 0 0 +GRID* 1230 0 7.430989583e+00 2.978391659e-02* +* 1.321968750e+01 0 0 +GRID* 1231 0 7.430989583e+00-2.927380368e-02* +* 1.321968750e+01 0 0 +GRID* 1232 0 7.430989583e+00-8.833152395e-02* +* 1.321968750e+01 0 0 +GRID* 1233 0 7.479600694e+00 9.300099136e-02* +* 1.321968750e+01 0 0 +GRID* 1234 0 7.479600694e+00 3.129096112e-02* +* 1.321968750e+01 0 0 +GRID* 1235 0 7.479600694e+00-3.041906912e-02* +* 1.321968750e+01 0 0 +GRID* 1236 0 7.479600694e+00-9.212909936e-02* +* 1.321968750e+01 0 0 +GRID* 1237 0 7.528211806e+00 9.647761743e-02* +* 1.321968750e+01 0 0 +GRID* 1238 0 7.528211806e+00 3.257896729e-02* +* 1.321968750e+01 0 0 +GRID* 1239 0 7.528211806e+00-3.131968285e-02* +* 1.321968750e+01 0 0 +GRID* 1240 0 7.528211806e+00-9.521833299e-02* +* 1.321968750e+01 0 0 +GRID* 1241 0 7.576822917e+00 9.946406987e-02* +* 1.321968750e+01 0 0 +GRID* 1242 0 7.576822917e+00 3.372579143e-02* +* 1.321968750e+01 0 0 +GRID* 1243 0 7.576822917e+00-3.201248701e-02* +* 1.321968750e+01 0 0 +GRID* 1244 0 7.576822917e+00-9.775076545e-02* +* 1.321968750e+01 0 0 +GRID* 1245 0 7.625434028e+00 1.019922263e-01* +* 1.321968750e+01 0 0 +GRID* 1246 0 7.625434028e+00 3.480740095e-02* +* 1.321968750e+01 0 0 +GRID* 1247 0 7.625434028e+00-3.237742436e-02* +* 1.321968750e+01 0 0 +GRID* 1248 0 7.625434028e+00-9.956224967e-02* +* 1.321968750e+01 0 0 +GRID* 1249 0 7.674045139e+00 1.039546775e-01* +* 1.321968750e+01 0 0 +GRID* 1250 0 7.674045139e+00 3.586413180e-02* +* 1.321968750e+01 0 0 +GRID* 1251 0 7.674045139e+00-3.222641389e-02* +* 1.321968750e+01 0 0 +GRID* 1252 0 7.674045139e+00-1.003169596e-01* +* 1.321968750e+01 0 0 +GRID* 1253 0 7.722656250e+00 1.054262763e-01* +* 1.321968750e+01 0 0 +GRID* 1254 0 7.722656250e+00 3.696124221e-02* +* 1.321968750e+01 0 0 +GRID* 1255 0 7.722656250e+00-3.150379187e-02* +* 1.321968750e+01 0 0 +GRID* 1256 0 7.722656250e+00-9.996882596e-02* +* 1.321968750e+01 0 0 +GRID* 1257 0 7.771267361e+00 1.063387259e-01* +* 1.321968750e+01 0 0 +GRID* 1258 0 7.771267361e+00 3.813210727e-02* +* 1.321968750e+01 0 0 +GRID* 1259 0 7.771267361e+00-3.007451141e-02* +* 1.321968750e+01 0 0 +GRID* 1260 0 7.771267361e+00-9.828113009e-02* +* 1.321968750e+01 0 0 +GRID* 1261 0 7.819878472e+00 1.066612995e-01* +* 1.321968750e+01 0 0 +GRID* 1262 0 7.819878472e+00 3.930873456e-02* +* 1.321968750e+01 0 0 +GRID* 1263 0 7.819878472e+00-2.804383033e-02* +* 1.321968750e+01 0 0 +GRID* 1264 0 7.819878472e+00-9.539639523e-02* +* 1.321968750e+01 0 0 +GRID* 1265 0 7.868489583e+00 1.064417390e-01* +* 1.321968750e+01 0 0 +GRID* 1266 0 7.868489583e+00 4.044163386e-02* +* 1.321968750e+01 0 0 +GRID* 1267 0 7.868489583e+00-2.555847128e-02* +* 1.321968750e+01 0 0 +GRID* 1268 0 7.868489583e+00-9.155857643e-02* +* 1.321968750e+01 0 0 +GRID* 1269 0 7.917100694e+00 1.055628767e-01* +* 1.321968750e+01 0 0 +GRID* 1270 0 7.917100694e+00 4.145885039e-02* +* 1.321968750e+01 0 0 +GRID* 1271 0 7.917100694e+00-2.264517591e-02* +* 1.321968750e+01 0 0 +GRID* 1272 0 7.917100694e+00-8.674920221e-02* +* 1.321968750e+01 0 0 +GRID* 1273 0 7.965711806e+00 1.040909607e-01* +* 1.321968750e+01 0 0 +GRID* 1274 0 7.965711806e+00 4.229822939e-02* +* 1.321968750e+01 0 0 +GRID* 1275 0 7.965711806e+00-1.949450195e-02* +* 1.321968750e+01 0 0 +GRID* 1276 0 7.965711806e+00-8.128723329e-02* +* 1.321968750e+01 0 0 +GRID* 1277 0 8.014322917e+00 1.020079524e-01* +* 1.321968750e+01 0 0 +GRID* 1278 0 8.014322917e+00 4.291977442e-02* +* 1.321968750e+01 0 0 +GRID* 1279 0 8.014322917e+00-1.616840353e-02* +* 1.321968750e+01 0 0 +GRID* 1280 0 8.014322917e+00-7.525658148e-02* +* 1.321968750e+01 0 0 +GRID* 1281 0 8.062934028e+00 9.924547084e-02* +* 1.321968750e+01 0 0 +GRID* 1282 0 8.062934028e+00 4.324148563e-02* +* 1.321968750e+01 0 0 +GRID* 1283 0 8.062934028e+00-1.276249958e-02* +* 1.321968750e+01 0 0 +GRID* 1284 0 8.062934028e+00-6.876648479e-02* +* 1.321968750e+01 0 0 +GRID* 1285 0 8.111545139e+00 9.590022675e-02* +* 1.321968750e+01 0 0 +GRID* 1286 0 8.111545139e+00 4.327413361e-02* +* 1.321968750e+01 0 0 +GRID* 1287 0 8.111545139e+00-9.351959532e-03* +* 1.321968750e+01 0 0 +GRID* 1288 0 8.111545139e+00-6.197805267e-02* +* 1.321968750e+01 0 0 +GRID* 1289 0 8.160156250e+00 9.189127434e-02* +* 1.321968750e+01 0 0 +GRID* 1290 0 8.160156250e+00 4.293794799e-02* +* 1.321968750e+01 0 0 +GRID* 1291 0 8.160156250e+00-6.015378354e-03* +* 1.321968750e+01 0 0 +GRID* 1292 0 8.160156250e+00-5.496870470e-02* +* 1.321968750e+01 0 0 +GRID* 1293 0 7.687500000e+00 6.294987309e-02* +* 1.400100000e+01 0 0 +GRID* 1294 0 7.687500000e+00 2.088595017e-02* +* 1.400100000e+01 0 0 +GRID* 1295 0 7.687500000e+00-2.117797276e-02* +* 1.400100000e+01 0 0 +GRID* 1296 0 7.687500000e+00-6.324189568e-02* +* 1.400100000e+01 0 0 +GRID* 1297 0 7.729166667e+00 6.878630800e-02* +* 1.400100000e+01 0 0 +GRID* 1298 0 7.729166667e+00 2.291759205e-02* +* 1.400100000e+01 0 0 +GRID* 1299 0 7.729166667e+00-2.295112390e-02* +* 1.400100000e+01 0 0 +GRID* 1300 0 7.729166667e+00-6.881983986e-02* +* 1.400100000e+01 0 0 +GRID* 1301 0 7.770833333e+00 7.382540288e-02* +* 1.400100000e+01 0 0 +GRID* 1302 0 7.770833333e+00 2.467331569e-02* +* 1.400100000e+01 0 0 +GRID* 1303 0 7.770833333e+00-2.447877150e-02* +* 1.400100000e+01 0 0 +GRID* 1304 0 7.770833333e+00-7.363085869e-02* +* 1.400100000e+01 0 0 +GRID* 1305 0 7.812500000e+00 7.876023341e-02* +* 1.400100000e+01 0 0 +GRID* 1306 0 7.812500000e+00 2.642028428e-02* +* 1.400100000e+01 0 0 +GRID* 1307 0 7.812500000e+00-2.591966485e-02* +* 1.400100000e+01 0 0 +GRID* 1308 0 7.812500000e+00-7.825961398e-02* +* 1.400100000e+01 0 0 +GRID* 1309 0 7.854166667e+00 8.188688491e-02* +* 1.400100000e+01 0 0 +GRID* 1310 0 7.854166667e+00 2.756486022e-02* +* 1.400100000e+01 0 0 +GRID* 1311 0 7.854166667e+00-2.675716446e-02* +* 1.400100000e+01 0 0 +GRID* 1312 0 7.854166667e+00-8.107918914e-02* +* 1.400100000e+01 0 0 +GRID* 1313 0 7.895833333e+00 8.501245836e-02* +* 1.400100000e+01 0 0 +GRID* 1314 0 7.895833333e+00 2.870890528e-02* +* 1.400100000e+01 0 0 +GRID* 1315 0 7.895833333e+00-2.759464781e-02* +* 1.400100000e+01 0 0 +GRID* 1316 0 7.895833333e+00-8.389820090e-02* +* 1.400100000e+01 0 0 +GRID* 1317 0 7.937500000e+00 8.762942269e-02* +* 1.400100000e+01 0 0 +GRID* 1318 0 7.937500000e+00 2.976507272e-02* +* 1.400100000e+01 0 0 +GRID* 1319 0 7.937500000e+00-2.809927724e-02* +* 1.400100000e+01 0 0 +GRID* 1320 0 7.937500000e+00-8.596362721e-02* +* 1.400100000e+01 0 0 +GRID* 1321 0 7.979166667e+00 8.964026591e-02* +* 1.400100000e+01 0 0 +GRID* 1322 0 7.979166667e+00 3.067778039e-02* +* 1.400100000e+01 0 0 +GRID* 1323 0 7.979166667e+00-2.828470513e-02* +* 1.400100000e+01 0 0 +GRID* 1324 0 7.979166667e+00-8.724719065e-02* +* 1.400100000e+01 0 0 +GRID* 1325 0 8.020833333e+00 9.165110913e-02* +* 1.400100000e+01 0 0 +GRID* 1326 0 8.020833333e+00 3.159048806e-02* +* 1.400100000e+01 0 0 +GRID* 1327 0 8.020833333e+00-2.847013301e-02* +* 1.400100000e+01 0 0 +GRID* 1328 0 8.020833333e+00-8.853075409e-02* +* 1.400100000e+01 0 0 +GRID* 1329 0 8.062500000e+00 9.268699842e-02* +* 1.400100000e+01 0 0 +GRID* 1330 0 8.062500000e+00 3.258120435e-02* +* 1.400100000e+01 0 0 +GRID* 1331 0 8.062500000e+00-2.752458972e-02* +* 1.400100000e+01 0 0 +GRID* 1332 0 8.062500000e+00-8.763038380e-02* +* 1.400100000e+01 0 0 +GRID* 1333 0 8.104166667e+00 9.354315559e-02* +* 1.400100000e+01 0 0 +GRID* 1334 0 8.104166667e+00 3.355405584e-02* +* 1.400100000e+01 0 0 +GRID* 1335 0 8.104166667e+00-2.643504390e-02* +* 1.400100000e+01 0 0 +GRID* 1336 0 8.104166667e+00-8.642414365e-02* +* 1.400100000e+01 0 0 +GRID* 1337 0 8.145833333e+00 9.410856145e-02* +* 1.400100000e+01 0 0 +GRID* 1338 0 8.145833333e+00 3.454248396e-02* +* 1.400100000e+01 0 0 +GRID* 1339 0 8.145833333e+00-2.502359354e-02* +* 1.400100000e+01 0 0 +GRID* 1340 0 8.145833333e+00-8.458967103e-02* +* 1.400100000e+01 0 0 +GRID* 1341 0 8.187500000e+00 9.370557331e-02* +* 1.400100000e+01 0 0 +GRID* 1342 0 8.187500000e+00 3.546401297e-02* +* 1.400100000e+01 0 0 +GRID* 1343 0 8.187500000e+00-2.277754737e-02* +* 1.400100000e+01 0 0 +GRID* 1344 0 8.187500000e+00-8.101910771e-02* +* 1.400100000e+01 0 0 +GRID* 1345 0 8.229166667e+00 9.330258516e-02* +* 1.400100000e+01 0 0 +GRID* 1346 0 8.229166667e+00 3.638554198e-02* +* 1.400100000e+01 0 0 +GRID* 1347 0 8.229166667e+00-2.053150121e-02* +* 1.400100000e+01 0 0 +GRID* 1348 0 8.229166667e+00-7.744854439e-02* +* 1.400100000e+01 0 0 +GRID* 1349 0 8.270833333e+00 9.206701122e-02* +* 1.400100000e+01 0 0 +GRID* 1350 0 8.270833333e+00 3.708735473e-02* +* 1.400100000e+01 0 0 +GRID* 1351 0 8.270833333e+00-1.789230177e-02* +* 1.400100000e+01 0 0 +GRID* 1352 0 8.270833333e+00-7.287195827e-02* +* 1.400100000e+01 0 0 +GRID* 1353 0 8.312500000e+00 9.032158409e-02* +* 1.400100000e+01 0 0 +GRID* 1354 0 8.312500000e+00 3.761938923e-02* +* 1.400100000e+01 0 0 +GRID* 1355 0 8.312500000e+00-1.508280563e-02* +* 1.400100000e+01 0 0 +GRID* 1356 0 8.312500000e+00-6.778500050e-02* +* 1.400100000e+01 0 0 +GRID* 1357 0 8.354166667e+00 8.856150969e-02* +* 1.400100000e+01 0 0 +GRID* 1358 0 8.354166667e+00 3.816021506e-02* +* 1.400100000e+01 0 0 +GRID* 1359 0 8.354166667e+00-1.224107957e-02* +* 1.400100000e+01 0 0 +GRID* 1360 0 8.354166667e+00-6.264237420e-02* +* 1.400100000e+01 0 0 +GRID* 1361 0 8.395833333e+00 8.544953351e-02* +* 1.400100000e+01 0 0 +GRID* 1362 0 8.395833333e+00 3.804657916e-02* +* 1.400100000e+01 0 0 +GRID* 1363 0 8.395833333e+00-9.356375190e-03* +* 1.400100000e+01 0 0 +GRID* 1364 0 8.395833333e+00-5.675932954e-02* +* 1.400100000e+01 0 0 +GRID* 1365 0 8.437500000e+00 8.233647011e-02* +* 1.400100000e+01 0 0 +GRID* 1366 0 8.437500000e+00 3.793250339e-02* +* 1.400100000e+01 0 0 +GRID* 1367 0 8.437500000e+00-6.471463342e-03* +* 1.400100000e+01 0 0 +GRID* 1368 0 8.437500000e+00-5.087543007e-02* +* 1.400100000e+01 0 0 +GRID* 1369 0 1.250000000e+00 2.795225161e-01* +* 1.000000000e-02 0 0 +GRID* 1370 0 1.250000000e+00 2.722481608e-01* +* 1.590000000e-01 0 0 +GRID* 1371 0 1.250000000e+00 2.644407976e-01* +* 3.080000000e-01 0 0 +GRID* 1372 0 1.250000000e+00 2.559962146e-01* +* 4.570000000e-01 0 0 +GRID* 1373 0 1.250000000e+00 2.469670034e-01* +* 6.060000000e-01 0 0 +GRID* 1374 0 1.250000000e+00 9.422159025e-02* +* 1.000000000e-02 0 0 +GRID* 1375 0 1.250000000e+00 9.160285982e-02* +* 1.590000000e-01 0 0 +GRID* 1376 0 1.250000000e+00 8.882474522e-02* +* 3.080000000e-01 0 0 +GRID* 1377 0 1.250000000e+00 8.582038753e-02* +* 4.570000000e-01 0 0 +GRID* 1378 0 1.250000000e+00 8.262356769e-02* +* 6.060000000e-01 0 0 +GRID* 1379 0 1.250000000e+00-9.107933563e-02* +* 1.000000000e-02 0 0 +GRID* 1380 0 1.250000000e+00-8.904244116e-02* +* 1.590000000e-01 0 0 +GRID* 1381 0 1.250000000e+00-8.679130713e-02* +* 3.080000000e-01 0 0 +GRID* 1382 0 1.250000000e+00-8.435543955e-02* +* 4.570000000e-01 0 0 +GRID* 1383 0 1.250000000e+00-8.171986797e-02* +* 6.060000000e-01 0 0 +GRID* 1384 0 1.250000000e+00-2.763802615e-01* +* 1.000000000e-02 0 0 +GRID* 1385 0 1.250000000e+00-2.696877421e-01* +* 1.590000000e-01 0 0 +GRID* 1386 0 1.250000000e+00-2.624073595e-01* +* 3.080000000e-01 0 0 +GRID* 1387 0 1.250000000e+00-2.545312666e-01* +* 4.570000000e-01 0 0 +GRID* 1388 0 1.250000000e+00-2.460633036e-01* +* 6.060000000e-01 0 0 +GRID* 1389 0 1.250000000e+00 2.263257041e-01* +* 9.040000000e-01 0 0 +GRID* 1390 0 1.250000000e+00 2.144680333e-01* +* 1.053000000e+00 0 0 +GRID* 1391 0 1.250000000e+00 2.016939985e-01* +* 1.202000000e+00 0 0 +GRID* 1392 0 1.250000000e+00 1.880134284e-01* +* 1.351000000e+00 0 0 +GRID* 1393 0 1.250000000e+00 7.542914959e-02* +* 9.040000000e-01 0 0 +GRID* 1394 0 1.250000000e+00 7.132959400e-02* +* 1.053000000e+00 0 0 +GRID* 1395 0 1.250000000e+00 6.694813899e-02* +* 1.202000000e+00 0 0 +GRID* 1396 0 1.250000000e+00 6.230105663e-02* +* 1.351000000e+00 0 0 +GRID* 1397 0 1.250000000e+00-7.546740490e-02* +* 9.040000000e-01 0 0 +GRID* 1398 0 1.250000000e+00-7.180884529e-02* +* 1.053000000e+00 0 0 +GRID* 1399 0 1.250000000e+00-6.779772054e-02* +* 1.202000000e+00 0 0 +GRID* 1400 0 1.250000000e+00-6.341131509e-02* +* 1.351000000e+00 0 0 +GRID* 1401 0 1.250000000e+00-2.263639594e-01* +* 9.040000000e-01 0 0 +GRID* 1402 0 1.250000000e+00-2.149472846e-01* +* 1.053000000e+00 0 0 +GRID* 1403 0 1.250000000e+00-2.025435801e-01* +* 1.202000000e+00 0 0 +GRID* 1404 0 1.250000000e+00-1.891236868e-01* +* 1.351000000e+00 0 0 +GRID* 1405 0 1.330468750e+00 1.719179494e-01* +* 1.656262500e+00 0 0 +GRID* 1406 0 1.410937500e+00 1.705464758e-01* +* 1.812525000e+00 0 0 +GRID* 1407 0 1.491406250e+00 1.691750023e-01* +* 1.968787500e+00 0 0 +GRID* 1408 0 1.571875000e+00 1.678035288e-01* +* 2.125050000e+00 0 0 +GRID* 1409 0 1.330468750e+00 5.689220851e-02* +* 1.656262500e+00 0 0 +GRID* 1410 0 1.410937500e+00 5.643886883e-02* +* 1.812525000e+00 0 0 +GRID* 1411 0 1.491406250e+00 5.598552915e-02* +* 1.968787500e+00 0 0 +GRID* 1412 0 1.571875000e+00 5.553218946e-02* +* 2.125050000e+00 0 0 +GRID* 1413 0 1.330468750e+00-5.813353234e-02* +* 1.656262500e+00 0 0 +GRID* 1414 0 1.410937500e+00-5.766873817e-02* +* 1.812525000e+00 0 0 +GRID* 1415 0 1.491406250e+00-5.720394400e-02* +* 1.968787500e+00 0 0 +GRID* 1416 0 1.571875000e+00-5.673914983e-02* +* 2.125050000e+00 0 0 +GRID* 1417 0 1.330468750e+00-1.731592732e-01* +* 1.656262500e+00 0 0 +GRID* 1418 0 1.410937500e+00-1.717763452e-01* +* 1.812525000e+00 0 0 +GRID* 1419 0 1.491406250e+00-1.703934172e-01* +* 1.968787500e+00 0 0 +GRID* 1420 0 1.571875000e+00-1.690104891e-01* +* 2.125050000e+00 0 0 +GRID* 1421 0 1.732812500e+00 1.650605817e-01* +* 2.437575000e+00 0 0 +GRID* 1422 0 1.813281250e+00 1.636891082e-01* +* 2.593837500e+00 0 0 +GRID* 1423 0 1.893750000e+00 1.623176346e-01* +* 2.750100000e+00 0 0 +GRID* 1424 0 1.974218750e+00 1.609461611e-01* +* 2.906362500e+00 0 0 +GRID* 1425 0 1.732812500e+00 5.462551010e-02* +* 2.437575000e+00 0 0 +GRID* 1426 0 1.813281250e+00 5.417217042e-02* +* 2.593837500e+00 0 0 +GRID* 1427 0 1.893750000e+00 5.371883074e-02* +* 2.750100000e+00 0 0 +GRID* 1428 0 1.974218750e+00 5.326549106e-02* +* 2.906362500e+00 0 0 +GRID* 1429 0 1.732812500e+00-5.580956150e-02* +* 2.437575000e+00 0 0 +GRID* 1430 0 1.813281250e+00-5.534476733e-02* +* 2.593837500e+00 0 0 +GRID* 1431 0 1.893750000e+00-5.487997316e-02* +* 2.750100000e+00 0 0 +GRID* 1432 0 1.974218750e+00-5.441517899e-02* +* 2.906362500e+00 0 0 +GRID* 1433 0 1.732812500e+00-1.662446331e-01* +* 2.437575000e+00 0 0 +GRID* 1434 0 1.813281250e+00-1.648617051e-01* +* 2.593837500e+00 0 0 +GRID* 1435 0 1.893750000e+00-1.634787771e-01* +* 2.750100000e+00 0 0 +GRID* 1436 0 1.974218750e+00-1.620958490e-01* +* 2.906362500e+00 0 0 +GRID* 1437 0 2.135156250e+00 1.582032140e-01* +* 3.218887500e+00 0 0 +GRID* 1438 0 2.215625000e+00 1.568317405e-01* +* 3.375150000e+00 0 0 +GRID* 1439 0 2.296093750e+00 1.554602670e-01* +* 3.531412500e+00 0 0 +GRID* 1440 0 2.376562500e+00 1.540887934e-01* +* 3.687675000e+00 0 0 +GRID* 1441 0 2.135156250e+00 5.235881169e-02* +* 3.218887500e+00 0 0 +GRID* 1442 0 2.215625000e+00 5.190547201e-02* +* 3.375150000e+00 0 0 +GRID* 1443 0 2.296093750e+00 5.145213233e-02* +* 3.531412500e+00 0 0 +GRID* 1444 0 2.376562500e+00 5.099879265e-02* +* 3.687675000e+00 0 0 +GRID* 1445 0 2.135156250e+00-5.348559065e-02* +* 3.218887500e+00 0 0 +GRID* 1446 0 2.215625000e+00-5.302079648e-02* +* 3.375150000e+00 0 0 +GRID* 1447 0 2.296093750e+00-5.255600231e-02* +* 3.531412500e+00 0 0 +GRID* 1448 0 2.376562500e+00-5.209120814e-02* +* 3.687675000e+00 0 0 +GRID* 1449 0 2.135156250e+00-1.593299930e-01* +* 3.218887500e+00 0 0 +GRID* 1450 0 2.215625000e+00-1.579470650e-01* +* 3.375150000e+00 0 0 +GRID* 1451 0 2.296093750e+00-1.565641370e-01* +* 3.531412500e+00 0 0 +GRID* 1452 0 2.376562500e+00-1.551812089e-01* +* 3.687675000e+00 0 0 +GRID* 1453 0 2.537500000e+00 1.513458464e-01* +* 4.000200000e+00 0 0 +GRID* 1454 0 2.617968750e+00 1.499743728e-01* +* 4.156462500e+00 0 0 +GRID* 1455 0 2.698437500e+00 1.486028993e-01* +* 4.312725000e+00 0 0 +GRID* 1456 0 2.778906250e+00 1.472314258e-01* +* 4.468987500e+00 0 0 +GRID* 1457 0 2.537500000e+00 5.009211329e-02* +* 4.000200000e+00 0 0 +GRID* 1458 0 2.617968750e+00 4.963877360e-02* +* 4.156462500e+00 0 0 +GRID* 1459 0 2.698437500e+00 4.918543392e-02* +* 4.312725000e+00 0 0 +GRID* 1460 0 2.778906250e+00 4.873209424e-02* +* 4.468987500e+00 0 0 +GRID* 1461 0 2.537500000e+00-5.116161980e-02* +* 4.000200000e+00 0 0 +GRID* 1462 0 2.617968750e+00-5.069682563e-02* +* 4.156462500e+00 0 0 +GRID* 1463 0 2.698437500e+00-5.023203147e-02* +* 4.312725000e+00 0 0 +GRID* 1464 0 2.778906250e+00-4.976723730e-02* +* 4.468987500e+00 0 0 +GRID* 1465 0 2.537500000e+00-1.524153529e-01* +* 4.000200000e+00 0 0 +GRID* 1466 0 2.617968750e+00-1.510324249e-01* +* 4.156462500e+00 0 0 +GRID* 1467 0 2.698437500e+00-1.496494969e-01* +* 4.312725000e+00 0 0 +GRID* 1468 0 2.778906250e+00-1.482665688e-01* +* 4.468987500e+00 0 0 +GRID* 1469 0 2.939843750e+00 1.444884787e-01* +* 4.781512500e+00 0 0 +GRID* 1470 0 3.020312500e+00 1.431170052e-01* +* 4.937775000e+00 0 0 +GRID* 1471 0 3.100781250e+00 1.417455317e-01* +* 5.094037500e+00 0 0 +GRID* 1472 0 3.181250000e+00 1.403740581e-01* +* 5.250300000e+00 0 0 +GRID* 1473 0 2.939843750e+00 4.782541488e-02* +* 4.781512500e+00 0 0 +GRID* 1474 0 3.020312500e+00 4.737207520e-02* +* 4.937775000e+00 0 0 +GRID* 1475 0 3.100781250e+00 4.691873552e-02* +* 5.094037500e+00 0 0 +GRID* 1476 0 3.181250000e+00 4.646539583e-02* +* 5.250300000e+00 0 0 +GRID* 1477 0 2.939843750e+00-4.883764896e-02* +* 4.781512500e+00 0 0 +GRID* 1478 0 3.020312500e+00-4.837285479e-02* +* 4.937775000e+00 0 0 +GRID* 1479 0 3.100781250e+00-4.790806062e-02* +* 5.094037500e+00 0 0 +GRID* 1480 0 3.181250000e+00-4.744326645e-02* +* 5.250300000e+00 0 0 +GRID* 1481 0 2.939843750e+00-1.455007128e-01* +* 4.781512500e+00 0 0 +GRID* 1482 0 3.020312500e+00-1.441177848e-01* +* 4.937775000e+00 0 0 +GRID* 1483 0 3.100781250e+00-1.427348568e-01* +* 5.094037500e+00 0 0 +GRID* 1484 0 3.181250000e+00-1.413519287e-01* +* 5.250300000e+00 0 0 +GRID* 1485 0 3.342187500e+00 1.376311111e-01* +* 5.562825000e+00 0 0 +GRID* 1486 0 3.422656250e+00 1.362596375e-01* +* 5.719087500e+00 0 0 +GRID* 1487 0 3.503125000e+00 1.348881640e-01* +* 5.875350000e+00 0 0 +GRID* 1488 0 3.583593750e+00 1.335166905e-01* +* 6.031612500e+00 0 0 +GRID* 1489 0 3.342187500e+00 4.555871647e-02* +* 5.562825000e+00 0 0 +GRID* 1490 0 3.422656250e+00 4.510537679e-02* +* 5.719087500e+00 0 0 +GRID* 1491 0 3.503125000e+00 4.465203711e-02* +* 5.875350000e+00 0 0 +GRID* 1492 0 3.583593750e+00 4.419869743e-02* +* 6.031612500e+00 0 0 +GRID* 1493 0 3.342187500e+00-4.651367811e-02* +* 5.562825000e+00 0 0 +GRID* 1494 0 3.422656250e+00-4.604888394e-02* +* 5.719087500e+00 0 0 +GRID* 1495 0 3.503125000e+00-4.558408977e-02* +* 5.875350000e+00 0 0 +GRID* 1496 0 3.583593750e+00-4.511929560e-02* +* 6.031612500e+00 0 0 +GRID* 1497 0 3.342187500e+00-1.385860727e-01* +* 5.562825000e+00 0 0 +GRID* 1498 0 3.422656250e+00-1.372031447e-01* +* 5.719087500e+00 0 0 +GRID* 1499 0 3.503125000e+00-1.358202167e-01* +* 5.875350000e+00 0 0 +GRID* 1500 0 3.583593750e+00-1.344372886e-01* +* 6.031612500e+00 0 0 +GRID* 1501 0 3.744531250e+00 1.307737434e-01* +* 6.344137500e+00 0 0 +GRID* 1502 0 3.825000000e+00 1.294022699e-01* +* 6.500400000e+00 0 0 +GRID* 1503 0 3.905468750e+00 1.280307963e-01* +* 6.656662500e+00 0 0 +GRID* 1504 0 3.985937500e+00 1.266593228e-01* +* 6.812925000e+00 0 0 +GRID* 1505 0 3.744531250e+00 4.329201806e-02* +* 6.344137500e+00 0 0 +GRID* 1506 0 3.825000000e+00 4.283867838e-02* +* 6.500400000e+00 0 0 +GRID* 1507 0 3.905468750e+00 4.238533870e-02* +* 6.656662500e+00 0 0 +GRID* 1508 0 3.985937500e+00 4.193199902e-02* +* 6.812925000e+00 0 0 +GRID* 1509 0 3.744531250e+00-4.418970727e-02* +* 6.344137500e+00 0 0 +GRID* 1510 0 3.825000000e+00-4.372491310e-02* +* 6.500400000e+00 0 0 +GRID* 1511 0 3.905468750e+00-4.326011893e-02* +* 6.656662500e+00 0 0 +GRID* 1512 0 3.985937500e+00-4.279532476e-02* +* 6.812925000e+00 0 0 +GRID* 1513 0 3.744531250e+00-1.316714326e-01* +* 6.344137500e+00 0 0 +GRID* 1514 0 3.825000000e+00-1.302885046e-01* +* 6.500400000e+00 0 0 +GRID* 1515 0 3.905468750e+00-1.289055766e-01* +* 6.656662500e+00 0 0 +GRID* 1516 0 3.985937500e+00-1.275226485e-01* +* 6.812925000e+00 0 0 +GRID* 1517 0 4.146875000e+00 1.239163757e-01* +* 7.125450000e+00 0 0 +GRID* 1518 0 4.227343750e+00 1.225449022e-01* +* 7.281712500e+00 0 0 +GRID* 1519 0 4.307812500e+00 1.211734287e-01* +* 7.437975000e+00 0 0 +GRID* 1520 0 4.388281250e+00 1.198019551e-01* +* 7.594237500e+00 0 0 +GRID* 1521 0 4.146875000e+00 4.102531966e-02* +* 7.125450000e+00 0 0 +GRID* 1522 0 4.227343750e+00 4.057197997e-02* +* 7.281712500e+00 0 0 +GRID* 1523 0 4.307812500e+00 4.011864029e-02* +* 7.437975000e+00 0 0 +GRID* 1524 0 4.388281250e+00 3.966530061e-02* +* 7.594237500e+00 0 0 +GRID* 1525 0 4.146875000e+00-4.186573642e-02* +* 7.125450000e+00 0 0 +GRID* 1526 0 4.227343750e+00-4.140094225e-02* +* 7.281712500e+00 0 0 +GRID* 1527 0 4.307812500e+00-4.093614808e-02* +* 7.437975000e+00 0 0 +GRID* 1528 0 4.388281250e+00-4.047135391e-02* +* 7.594237500e+00 0 0 +GRID* 1529 0 4.146875000e+00-1.247567925e-01* +* 7.125450000e+00 0 0 +GRID* 1530 0 4.227343750e+00-1.233738645e-01* +* 7.281712500e+00 0 0 +GRID* 1531 0 4.307812500e+00-1.219909365e-01* +* 7.437975000e+00 0 0 +GRID* 1532 0 4.388281250e+00-1.206080084e-01* +* 7.594237500e+00 0 0 +GRID* 1533 0 4.549218750e+00 1.170590081e-01* +* 7.906762500e+00 0 0 +GRID* 1534 0 4.629687500e+00 1.156875345e-01* +* 8.063025000e+00 0 0 +GRID* 1535 0 4.710156250e+00 1.143160610e-01* +* 8.219287500e+00 0 0 +GRID* 1536 0 4.790625000e+00 1.129445875e-01* +* 8.375550000e+00 0 0 +GRID* 1537 0 4.549218750e+00 3.875862125e-02* +* 7.906762500e+00 0 0 +GRID* 1538 0 4.629687500e+00 3.830528157e-02* +* 8.063025000e+00 0 0 +GRID* 1539 0 4.710156250e+00 3.785194189e-02* +* 8.219287500e+00 0 0 +GRID* 1540 0 4.790625000e+00 3.739860220e-02* +* 8.375550000e+00 0 0 +GRID* 1541 0 4.549218750e+00-3.954176557e-02* +* 7.906762500e+00 0 0 +GRID* 1542 0 4.629687500e+00-3.907697141e-02* +* 8.063025000e+00 0 0 +GRID* 1543 0 4.710156250e+00-3.861217724e-02* +* 8.219287500e+00 0 0 +GRID* 1544 0 4.790625000e+00-3.814738307e-02* +* 8.375550000e+00 0 0 +GRID* 1545 0 4.549218750e+00-1.178421524e-01* +* 7.906762500e+00 0 0 +GRID* 1546 0 4.629687500e+00-1.164592244e-01* +* 8.063025000e+00 0 0 +GRID* 1547 0 4.710156250e+00-1.150762964e-01* +* 8.219287500e+00 0 0 +GRID* 1548 0 4.790625000e+00-1.136933683e-01* +* 8.375550000e+00 0 0 +GRID* 1549 0 4.951562500e+00 1.102016404e-01* +* 8.688075000e+00 0 0 +GRID* 1550 0 5.032031250e+00 1.088301669e-01* +* 8.844337500e+00 0 0 +GRID* 1551 0 5.112500000e+00 1.074586933e-01* +* 9.000600000e+00 0 0 +GRID* 1552 0 5.192968750e+00 1.060872198e-01* +* 9.156862500e+00 0 0 +GRID* 1553 0 4.951562500e+00 3.649192284e-02* +* 8.688075000e+00 0 0 +GRID* 1554 0 5.032031250e+00 3.603858316e-02* +* 8.844337500e+00 0 0 +GRID* 1555 0 5.112500000e+00 3.558524348e-02* +* 9.000600000e+00 0 0 +GRID* 1556 0 5.192968750e+00 3.513190380e-02* +* 9.156862500e+00 0 0 +GRID* 1557 0 4.951562500e+00-3.721779473e-02* +* 8.688075000e+00 0 0 +GRID* 1558 0 5.032031250e+00-3.675300056e-02* +* 8.844337500e+00 0 0 +GRID* 1559 0 5.112500000e+00-3.628820639e-02* +* 9.000600000e+00 0 0 +GRID* 1560 0 5.192968750e+00-3.582341222e-02* +* 9.156862500e+00 0 0 +GRID* 1561 0 4.951562500e+00-1.109275123e-01* +* 8.688075000e+00 0 0 +GRID* 1562 0 5.032031250e+00-1.095445843e-01* +* 8.844337500e+00 0 0 +GRID* 1563 0 5.112500000e+00-1.081616563e-01* +* 9.000600000e+00 0 0 +GRID* 1564 0 5.192968750e+00-1.067787282e-01* +* 9.156862500e+00 0 0 +GRID* 1565 0 5.353906250e+00 1.033442728e-01* +* 9.469387500e+00 0 0 +GRID* 1566 0 5.434375000e+00 1.019727992e-01* +* 9.625650000e+00 0 0 +GRID* 1567 0 5.514843750e+00 1.006013257e-01* +* 9.781912500e+00 0 0 +GRID* 1568 0 5.595312500e+00 9.922985215e-02* +* 9.938175000e+00 0 0 +GRID* 1569 0 5.353906250e+00 3.422522443e-02* +* 9.469387500e+00 0 0 +GRID* 1570 0 5.434375000e+00 3.377188475e-02* +* 9.625650000e+00 0 0 +GRID* 1571 0 5.514843750e+00 3.331854507e-02* +* 9.781912500e+00 0 0 +GRID* 1572 0 5.595312500e+00 3.286520539e-02* +* 9.938175000e+00 0 0 +GRID* 1573 0 5.353906250e+00-3.489382388e-02* +* 9.469387500e+00 0 0 +GRID* 1574 0 5.434375000e+00-3.442902971e-02* +* 9.625650000e+00 0 0 +GRID* 1575 0 5.514843750e+00-3.396423554e-02* +* 9.781912500e+00 0 0 +GRID* 1576 0 5.595312500e+00-3.349944138e-02* +* 9.938175000e+00 0 0 +GRID* 1577 0 5.353906250e+00-1.040128722e-01* +* 9.469387500e+00 0 0 +GRID* 1578 0 5.434375000e+00-1.026299442e-01* +* 9.625650000e+00 0 0 +GRID* 1579 0 5.514843750e+00-1.012470162e-01* +* 9.781912500e+00 0 0 +GRID* 1580 0 5.595312500e+00-9.986408814e-02* +* 9.938175000e+00 0 0 +GRID* 1581 0 5.756250000e+00 9.648690509e-02* +* 1.025070000e+01 0 0 +GRID* 1582 0 5.836718750e+00 9.511543156e-02* +* 1.040696250e+01 0 0 +GRID* 1583 0 5.917187500e+00 9.374395802e-02* +* 1.056322500e+01 0 0 +GRID* 1584 0 5.997656250e+00 9.237248449e-02* +* 1.071948750e+01 0 0 +GRID* 1585 0 5.756250000e+00 3.195852603e-02* +* 1.025070000e+01 0 0 +GRID* 1586 0 5.836718750e+00 3.150518634e-02* +* 1.040696250e+01 0 0 +GRID* 1587 0 5.917187500e+00 3.105184666e-02* +* 1.056322500e+01 0 0 +GRID* 1588 0 5.997656250e+00 3.059850698e-02* +* 1.071948750e+01 0 0 +GRID* 1589 0 5.756250000e+00-3.256985304e-02* +* 1.025070000e+01 0 0 +GRID* 1590 0 5.836718750e+00-3.210505887e-02* +* 1.040696250e+01 0 0 +GRID* 1591 0 5.917187500e+00-3.164026470e-02* +* 1.056322500e+01 0 0 +GRID* 1592 0 5.997656250e+00-3.117547053e-02* +* 1.071948750e+01 0 0 +GRID* 1593 0 5.756250000e+00-9.709823210e-02* +* 1.025070000e+01 0 0 +GRID* 1594 0 5.836718750e+00-9.571530408e-02* +* 1.040696250e+01 0 0 +GRID* 1595 0 5.917187500e+00-9.433237606e-02* +* 1.056322500e+01 0 0 +GRID* 1596 0 5.997656250e+00-9.294944804e-02* +* 1.071948750e+01 0 0 +GRID* 1597 0 6.158593750e+00 8.962953743e-02* +* 1.103201250e+01 0 0 +GRID* 1598 0 6.239062500e+00 8.825806390e-02* +* 1.118827500e+01 0 0 +GRID* 1599 0 6.319531250e+00 8.688659036e-02* +* 1.134453750e+01 0 0 +GRID* 1600 0 6.400000000e+00 8.551511683e-02* +* 1.150080000e+01 0 0 +GRID* 1601 0 6.158593750e+00 2.969182762e-02* +* 1.103201250e+01 0 0 +GRID* 1602 0 6.239062500e+00 2.923848794e-02* +* 1.118827500e+01 0 0 +GRID* 1603 0 6.319531250e+00 2.878514826e-02* +* 1.134453750e+01 0 0 +GRID* 1604 0 6.400000000e+00 2.833180857e-02* +* 1.150080000e+01 0 0 +GRID* 1605 0 6.158593750e+00-3.024588219e-02* +* 1.103201250e+01 0 0 +GRID* 1606 0 6.239062500e+00-2.978108802e-02* +* 1.118827500e+01 0 0 +GRID* 1607 0 6.319531250e+00-2.931629385e-02* +* 1.134453750e+01 0 0 +GRID* 1608 0 6.400000000e+00-2.885149968e-02* +* 1.150080000e+01 0 0 +GRID* 1609 0 6.158593750e+00-9.018359200e-02* +* 1.103201250e+01 0 0 +GRID* 1610 0 6.239062500e+00-8.880066398e-02* +* 1.118827500e+01 0 0 +GRID* 1611 0 6.319531250e+00-8.741773596e-02* +* 1.134453750e+01 0 0 +GRID* 1612 0 6.400000000e+00-8.603480794e-02* +* 1.150080000e+01 0 0 +GRID* 1613 0 6.560937500e+00 8.277102178e-02* +* 1.181332500e+01 0 0 +GRID* 1614 0 6.641406250e+00 8.138245941e-02* +* 1.196958750e+01 0 0 +GRID* 1615 0 6.721875000e+00 7.999389704e-02* +* 1.212585000e+01 0 0 +GRID* 1616 0 6.802343750e+00 7.860533467e-02* +* 1.228211250e+01 0 0 +GRID* 1617 0 6.560937500e+00 2.743532837e-02* +* 1.181332500e+01 0 0 +GRID* 1618 0 6.641406250e+00 2.697662889e-02* +* 1.196958750e+01 0 0 +GRID* 1619 0 6.721875000e+00 2.651792940e-02* +* 1.212585000e+01 0 0 +GRID* 1620 0 6.802343750e+00 2.605922992e-02* +* 1.228211250e+01 0 0 +GRID* 1621 0 6.560937500e+00-2.790036504e-02* +* 1.181332500e+01 0 0 +GRID* 1622 0 6.641406250e+00-2.742920164e-02* +* 1.196958750e+01 0 0 +GRID* 1623 0 6.721875000e+00-2.695803824e-02* +* 1.212585000e+01 0 0 +GRID* 1624 0 6.802343750e+00-2.648687483e-02* +* 1.228211250e+01 0 0 +GRID* 1625 0 6.560937500e+00-8.323605846e-02* +* 1.181332500e+01 0 0 +GRID* 1626 0 6.641406250e+00-8.183503217e-02* +* 1.196958750e+01 0 0 +GRID* 1627 0 6.721875000e+00-8.043400588e-02* +* 1.212585000e+01 0 0 +GRID* 1628 0 6.802343750e+00-7.903297959e-02* +* 1.228211250e+01 0 0 +GRID* 1629 0 6.963281250e+00 7.582820993e-02* +* 1.259463750e+01 0 0 +GRID* 1630 0 7.043750000e+00 7.443964756e-02* +* 1.275090000e+01 0 0 +GRID* 1631 0 7.124218750e+00 7.305108519e-02* +* 1.290716250e+01 0 0 +GRID* 1632 0 7.204687500e+00 7.166252282e-02* +* 1.306342500e+01 0 0 +GRID* 1633 0 6.963281250e+00 2.514183095e-02* +* 1.259463750e+01 0 0 +GRID* 1634 0 7.043750000e+00 2.468313147e-02* +* 1.275090000e+01 0 0 +GRID* 1635 0 7.124218750e+00 2.422443198e-02* +* 1.290716250e+01 0 0 +GRID* 1636 0 7.204687500e+00 2.376573250e-02* +* 1.306342500e+01 0 0 +GRID* 1637 0 6.963281250e+00-2.554454803e-02* +* 1.259463750e+01 0 0 +GRID* 1638 0 7.043750000e+00-2.507338463e-02* +* 1.275090000e+01 0 0 +GRID* 1639 0 7.124218750e+00-2.460222122e-02* +* 1.290716250e+01 0 0 +GRID* 1640 0 7.204687500e+00-2.413105782e-02* +* 1.306342500e+01 0 0 +GRID* 1641 0 6.963281250e+00-7.623092701e-02* +* 1.259463750e+01 0 0 +GRID* 1642 0 7.043750000e+00-7.482990072e-02* +* 1.275090000e+01 0 0 +GRID* 1643 0 7.124218750e+00-7.342887443e-02* +* 1.290716250e+01 0 0 +GRID* 1644 0 7.204687500e+00-7.202784814e-02* +* 1.306342500e+01 0 0 +GRID* 1645 0 7.365625000e+00 6.888539808e-02* +* 1.337595000e+01 0 0 +GRID* 1646 0 7.446093750e+00 6.749683571e-02* +* 1.353221250e+01 0 0 +GRID* 1647 0 7.526562500e+00 6.610827334e-02* +* 1.368847500e+01 0 0 +GRID* 1648 0 7.607031250e+00 6.471971097e-02* +* 1.384473750e+01 0 0 +GRID* 1649 0 7.365625000e+00 2.284833353e-02* +* 1.337595000e+01 0 0 +GRID* 1650 0 7.446093750e+00 2.238963405e-02* +* 1.353221250e+01 0 0 +GRID* 1651 0 7.526562500e+00 2.193093457e-02* +* 1.368847500e+01 0 0 +GRID* 1652 0 7.607031250e+00 2.147223508e-02* +* 1.384473750e+01 0 0 +GRID* 1653 0 7.365625000e+00-2.318873101e-02* +* 1.337595000e+01 0 0 +GRID* 1654 0 7.446093750e+00-2.271756761e-02* +* 1.353221250e+01 0 0 +GRID* 1655 0 7.526562500e+00-2.224640421e-02* +* 1.368847500e+01 0 0 +GRID* 1656 0 7.607031250e+00-2.177524081e-02* +* 1.384473750e+01 0 0 +GRID* 1657 0 7.365625000e+00-6.922579556e-02* +* 1.337595000e+01 0 0 +GRID* 1658 0 7.446093750e+00-6.782476927e-02* +* 1.353221250e+01 0 0 +GRID* 1659 0 7.526562500e+00-6.642374298e-02* +* 1.368847500e+01 0 0 +GRID* 1660 0 7.607031250e+00-6.502271669e-02* +* 1.384473750e+01 0 0 +GRID* 1661 0 4.000000000e+00 1.743207538e-01* +* 1.000000000e-02 0 0 +GRID* 1662 0 4.000000000e+00 1.800789717e-01* +* 1.590000000e-01 0 0 +GRID* 1663 0 4.000000000e+00 1.857345518e-01* +* 3.080000000e-01 0 0 +GRID* 1664 0 4.000000000e+00 1.912137752e-01* +* 4.570000000e-01 0 0 +GRID* 1665 0 4.000000000e+00 1.965896924e-01* +* 6.060000000e-01 0 0 +GRID* 1666 0 4.000000000e+00 9.960751669e-02* +* 1.000000000e-02 0 0 +GRID* 1667 0 4.000000000e+00 1.015856269e-01* +* 1.590000000e-01 0 0 +GRID* 1668 0 4.000000000e+00 1.034156828e-01* +* 3.080000000e-01 0 0 +GRID* 1669 0 4.000000000e+00 1.050851653e-01* +* 4.570000000e-01 0 0 +GRID* 1670 0 4.000000000e+00 1.066159726e-01* +* 6.060000000e-01 0 0 +GRID* 1671 0 4.000000000e+00 2.489427954e-02* +* 1.000000000e-02 0 0 +GRID* 1672 0 4.000000000e+00 2.309228205e-02* +* 1.590000000e-01 0 0 +GRID* 1673 0 4.000000000e+00 2.109681374e-02* +* 3.080000000e-01 0 0 +GRID* 1674 0 4.000000000e+00 1.895655544e-02* +* 4.570000000e-01 0 0 +GRID* 1675 0 4.000000000e+00 1.664225277e-02* +* 6.060000000e-01 0 0 +GRID* 1676 0 4.000000000e+00-4.981895761e-02* +* 1.000000000e-02 0 0 +GRID* 1677 0 4.000000000e+00-5.540106278e-02* +* 1.590000000e-01 0 0 +GRID* 1678 0 4.000000000e+00-6.122205530e-02* +* 3.080000000e-01 0 0 +GRID* 1679 0 4.000000000e+00-6.717205446e-02* +* 4.570000000e-01 0 0 +GRID* 1680 0 4.000000000e+00-7.333146703e-02* +* 6.060000000e-01 0 0 +GRID* 1681 0 4.000000000e+00 2.068623842e-01* +* 9.040000000e-01 0 0 +GRID* 1682 0 4.000000000e+00 2.117025498e-01* +* 1.053000000e+00 0 0 +GRID* 1683 0 4.000000000e+00 2.164734695e-01* +* 1.202000000e+00 0 0 +GRID* 1684 0 4.000000000e+00 2.209065548e-01* +* 1.351000000e+00 0 0 +GRID* 1685 0 4.000000000e+00 1.092220066e-01* +* 9.040000000e-01 0 0 +GRID* 1686 0 4.000000000e+00 1.102593135e-01* +* 1.053000000e+00 0 0 +GRID* 1687 0 4.000000000e+00 1.112163873e-01* +* 1.202000000e+00 0 0 +GRID* 1688 0 4.000000000e+00 1.119083009e-01* +* 1.351000000e+00 0 0 +GRID* 1689 0 4.000000000e+00 1.158162913e-02* +* 9.040000000e-01 0 0 +GRID* 1690 0 4.000000000e+00 8.816077257e-03* +* 1.053000000e+00 0 0 +GRID* 1691 0 4.000000000e+00 5.959305109e-03* +* 1.202000000e+00 0 0 +GRID* 1692 0 4.000000000e+00 2.910046992e-03* +* 1.351000000e+00 0 0 +GRID* 1693 0 4.000000000e+00-8.605874839e-02* +* 9.040000000e-01 0 0 +GRID* 1694 0 4.000000000e+00-9.262715902e-02* +* 1.053000000e+00 0 0 +GRID* 1695 0 4.000000000e+00-9.929777710e-02* +* 1.202000000e+00 0 0 +GRID* 1696 0 4.000000000e+00-1.060882069e-01* +* 1.351000000e+00 0 0 +GRID* 1697 0 4.055468750e+00 2.234901780e-01* +* 1.656262500e+00 0 0 +GRID* 1698 0 4.110937500e+00 2.217215713e-01* +* 1.812525000e+00 0 0 +GRID* 1699 0 4.166406250e+00 2.199529647e-01* +* 1.968787500e+00 0 0 +GRID* 1700 0 4.221875000e+00 2.181843580e-01* +* 2.125050000e+00 0 0 +GRID* 1701 0 4.055468750e+00 1.116100679e-01* +* 1.656262500e+00 0 0 +GRID* 1702 0 4.110937500e+00 1.106895257e-01* +* 1.812525000e+00 0 0 +GRID* 1703 0 4.166406250e+00 1.097686560e-01* +* 1.968787500e+00 0 0 +GRID* 1704 0 4.221875000e+00 1.088472906e-01* +* 2.125050000e+00 0 0 +GRID* 1705 0 4.055468750e+00-2.700422274e-04* +* 1.656262500e+00 0 0 +GRID* 1706 0 4.110937500e+00-3.425199778e-04* +* 1.812525000e+00 0 0 +GRID* 1707 0 4.166406250e+00-4.156526166e-04* +* 1.968787500e+00 0 0 +GRID* 1708 0 4.221875000e+00-4.897768827e-04* +* 2.125050000e+00 0 0 +GRID* 1709 0 4.055468750e+00-1.121501523e-01* +* 1.656262500e+00 0 0 +GRID* 1710 0 4.110937500e+00-1.113745656e-01* +* 1.812525000e+00 0 0 +GRID* 1711 0 4.166406250e+00-1.105999613e-01* +* 1.968787500e+00 0 0 +GRID* 1712 0 4.221875000e+00-1.098268443e-01* +* 2.125050000e+00 0 0 +GRID* 1713 0 4.332812500e+00 2.146471447e-01* +* 2.437575000e+00 0 0 +GRID* 1714 0 4.388281250e+00 2.128785381e-01* +* 2.593837500e+00 0 0 +GRID* 1715 0 4.443750000e+00 2.111099314e-01* +* 2.750100000e+00 0 0 +GRID* 1716 0 4.499218750e+00 2.093413248e-01* +* 2.906362500e+00 0 0 +GRID* 1717 0 4.332812500e+00 1.070045597e-01* +* 2.437575000e+00 0 0 +GRID* 1718 0 4.388281250e+00 1.060831942e-01* +* 2.593837500e+00 0 0 +GRID* 1719 0 4.443750000e+00 1.051618287e-01* +* 2.750100000e+00 0 0 +GRID* 1720 0 4.499218750e+00 1.042404633e-01* +* 2.906362500e+00 0 0 +GRID* 1721 0 4.332812500e+00-6.380254149e-04* +* 2.437575000e+00 0 0 +GRID* 1722 0 4.388281250e+00-7.121496810e-04* +* 2.593837500e+00 0 0 +GRID* 1723 0 4.443750000e+00-7.862739471e-04* +* 2.750100000e+00 0 0 +GRID* 1724 0 4.499218750e+00-8.603982132e-04* +* 2.906362500e+00 0 0 +GRID* 1725 0 4.332812500e+00-1.082806105e-01* +* 2.437575000e+00 0 0 +GRID* 1726 0 4.388281250e+00-1.075074936e-01* +* 2.593837500e+00 0 0 +GRID* 1727 0 4.443750000e+00-1.067343766e-01* +* 2.750100000e+00 0 0 +GRID* 1728 0 4.499218750e+00-1.059612597e-01* +* 2.906362500e+00 0 0 +GRID* 1729 0 4.610156250e+00 2.058041115e-01* +* 3.218887500e+00 0 0 +GRID* 1730 0 4.665625000e+00 2.040355048e-01* +* 3.375150000e+00 0 0 +GRID* 1731 0 4.721093750e+00 2.022668982e-01* +* 3.531412500e+00 0 0 +GRID* 1732 0 4.776562500e+00 2.004982915e-01* +* 3.687675000e+00 0 0 +GRID* 1733 0 4.610156250e+00 1.023977324e-01* +* 3.218887500e+00 0 0 +GRID* 1734 0 4.665625000e+00 1.014763669e-01* +* 3.375150000e+00 0 0 +GRID* 1735 0 4.721093750e+00 1.005550015e-01* +* 3.531412500e+00 0 0 +GRID* 1736 0 4.776562500e+00 9.963363599e-02* +* 3.687675000e+00 0 0 +GRID* 1737 0 4.610156250e+00-1.008646745e-03* +* 3.218887500e+00 0 0 +GRID* 1738 0 4.665625000e+00-1.082771012e-03* +* 3.375150000e+00 0 0 +GRID* 1739 0 4.721093750e+00-1.156895278e-03* +* 3.531412500e+00 0 0 +GRID* 1740 0 4.776562500e+00-1.231019544e-03* +* 3.687675000e+00 0 0 +GRID* 1741 0 4.610156250e+00-1.044150259e-01* +* 3.218887500e+00 0 0 +GRID* 1742 0 4.665625000e+00-1.036419089e-01* +* 3.375150000e+00 0 0 +GRID* 1743 0 4.721093750e+00-1.028687920e-01* +* 3.531412500e+00 0 0 +GRID* 1744 0 4.776562500e+00-1.020956751e-01* +* 3.687675000e+00 0 0 +GRID* 1745 0 4.887500000e+00 1.969610782e-01* +* 4.000200000e+00 0 0 +GRID* 1746 0 4.942968750e+00 1.951924716e-01* +* 4.156462500e+00 0 0 +GRID* 1747 0 4.998437500e+00 1.934238649e-01* +* 4.312725000e+00 0 0 +GRID* 1748 0 5.053906250e+00 1.916552583e-01* +* 4.468987500e+00 0 0 +GRID* 1749 0 4.887500000e+00 9.779090508e-02* +* 4.000200000e+00 0 0 +GRID* 1750 0 4.942968750e+00 9.686953962e-02* +* 4.156462500e+00 0 0 +GRID* 1751 0 4.998437500e+00 9.594817416e-02* +* 4.312725000e+00 0 0 +GRID* 1752 0 5.053906250e+00 9.502680870e-02* +* 4.468987500e+00 0 0 +GRID* 1753 0 4.887500000e+00-1.379268076e-03* +* 4.000200000e+00 0 0 +GRID* 1754 0 4.942968750e+00-1.453392342e-03* +* 4.156462500e+00 0 0 +GRID* 1755 0 4.998437500e+00-1.527516608e-03* +* 4.312725000e+00 0 0 +GRID* 1756 0 5.053906250e+00-1.601640874e-03* +* 4.468987500e+00 0 0 +GRID* 1757 0 4.887500000e+00-1.005494412e-01* +* 4.000200000e+00 0 0 +GRID* 1758 0 4.942968750e+00-9.977632430e-02* +* 4.156462500e+00 0 0 +GRID* 1759 0 4.998437500e+00-9.900320738e-02* +* 4.312725000e+00 0 0 +GRID* 1760 0 5.053906250e+00-9.823009045e-02* +* 4.468987500e+00 0 0 +GRID* 1761 0 5.164843750e+00 1.881180450e-01* +* 4.781512500e+00 0 0 +GRID* 1762 0 5.220312500e+00 1.863494383e-01* +* 4.937775000e+00 0 0 +GRID* 1763 0 5.275781250e+00 1.845808317e-01* +* 5.094037500e+00 0 0 +GRID* 1764 0 5.331250000e+00 1.828122250e-01* +* 5.250300000e+00 0 0 +GRID* 1765 0 5.164843750e+00 9.318407779e-02* +* 4.781512500e+00 0 0 +GRID* 1766 0 5.220312500e+00 9.226271233e-02* +* 4.937775000e+00 0 0 +GRID* 1767 0 5.275781250e+00 9.134134687e-02* +* 5.094037500e+00 0 0 +GRID* 1768 0 5.331250000e+00 9.041998141e-02* +* 5.250300000e+00 0 0 +GRID* 1769 0 5.164843750e+00-1.749889407e-03* +* 4.781512500e+00 0 0 +GRID* 1770 0 5.220312500e+00-1.824013673e-03* +* 4.937775000e+00 0 0 +GRID* 1771 0 5.275781250e+00-1.898137939e-03* +* 5.094037500e+00 0 0 +GRID* 1772 0 5.331250000e+00-1.972262205e-03* +* 5.250300000e+00 0 0 +GRID* 1773 0 5.164843750e+00-9.668385660e-02* +* 4.781512500e+00 0 0 +GRID* 1774 0 5.220312500e+00-9.591073967e-02* +* 4.937775000e+00 0 0 +GRID* 1775 0 5.275781250e+00-9.513762275e-02* +* 5.094037500e+00 0 0 +GRID* 1776 0 5.331250000e+00-9.436450582e-02* +* 5.250300000e+00 0 0 +GRID* 1777 0 5.442187500e+00 1.792750117e-01* +* 5.562825000e+00 0 0 +GRID* 1778 0 5.497656250e+00 1.775064051e-01* +* 5.719087500e+00 0 0 +GRID* 1779 0 5.553125000e+00 1.757377984e-01* +* 5.875350000e+00 0 0 +GRID* 1780 0 5.608593750e+00 1.739691918e-01* +* 6.031612500e+00 0 0 +GRID* 1781 0 5.442187500e+00 8.857725050e-02* +* 5.562825000e+00 0 0 +GRID* 1782 0 5.497656250e+00 8.765588504e-02* +* 5.719087500e+00 0 0 +GRID* 1783 0 5.553125000e+00 8.673451958e-02* +* 5.875350000e+00 0 0 +GRID* 1784 0 5.608593750e+00 8.581315412e-02* +* 6.031612500e+00 0 0 +GRID* 1785 0 5.442187500e+00-2.120510737e-03* +* 5.562825000e+00 0 0 +GRID* 1786 0 5.497656250e+00-2.194635003e-03* +* 5.719087500e+00 0 0 +GRID* 1787 0 5.553125000e+00-2.268759269e-03* +* 5.875350000e+00 0 0 +GRID* 1788 0 5.608593750e+00-2.342883535e-03* +* 6.031612500e+00 0 0 +GRID* 1789 0 5.442187500e+00-9.281827197e-02* +* 5.562825000e+00 0 0 +GRID* 1790 0 5.497656250e+00-9.204515504e-02* +* 5.719087500e+00 0 0 +GRID* 1791 0 5.553125000e+00-9.127203812e-02* +* 5.875350000e+00 0 0 +GRID* 1792 0 5.608593750e+00-9.049892119e-02* +* 6.031612500e+00 0 0 +GRID* 1793 0 5.719531250e+00 1.704319785e-01* +* 6.344137500e+00 0 0 +GRID* 1794 0 5.775000000e+00 1.686633718e-01* +* 6.500400000e+00 0 0 +GRID* 1795 0 5.830468750e+00 1.668947652e-01* +* 6.656662500e+00 0 0 +GRID* 1796 0 5.885937500e+00 1.651261585e-01* +* 6.812925000e+00 0 0 +GRID* 1797 0 5.719531250e+00 8.397042321e-02* +* 6.344137500e+00 0 0 +GRID* 1798 0 5.775000000e+00 8.304905775e-02* +* 6.500400000e+00 0 0 +GRID* 1799 0 5.830468750e+00 8.212769229e-02* +* 6.656662500e+00 0 0 +GRID* 1800 0 5.885937500e+00 8.120632683e-02* +* 6.812925000e+00 0 0 +GRID* 1801 0 5.719531250e+00-2.491132068e-03* +* 6.344137500e+00 0 0 +GRID* 1802 0 5.775000000e+00-2.565256334e-03* +* 6.500400000e+00 0 0 +GRID* 1803 0 5.830468750e+00-2.639380600e-03* +* 6.656662500e+00 0 0 +GRID* 1804 0 5.885937500e+00-2.713504866e-03* +* 6.812925000e+00 0 0 +GRID* 1805 0 5.719531250e+00-8.895268734e-02* +* 6.344137500e+00 0 0 +GRID* 1806 0 5.775000000e+00-8.817957041e-02* +* 6.500400000e+00 0 0 +GRID* 1807 0 5.830468750e+00-8.740645349e-02* +* 6.656662500e+00 0 0 +GRID* 1808 0 5.885937500e+00-8.663333656e-02* +* 6.812925000e+00 0 0 +GRID* 1809 0 5.996875000e+00 1.615889452e-01* +* 7.125450000e+00 0 0 +GRID* 1810 0 6.052343750e+00 1.598203386e-01* +* 7.281712500e+00 0 0 +GRID* 1811 0 6.107812500e+00 1.580517319e-01* +* 7.437975000e+00 0 0 +GRID* 1812 0 6.163281250e+00 1.562831253e-01* +* 7.594237500e+00 0 0 +GRID* 1813 0 5.996875000e+00 7.936359591e-02* +* 7.125450000e+00 0 0 +GRID* 1814 0 6.052343750e+00 7.844223046e-02* +* 7.281712500e+00 0 0 +GRID* 1815 0 6.107812500e+00 7.752086500e-02* +* 7.437975000e+00 0 0 +GRID* 1816 0 6.163281250e+00 7.659949954e-02* +* 7.594237500e+00 0 0 +GRID* 1817 0 5.996875000e+00-2.861753398e-03* +* 7.125450000e+00 0 0 +GRID* 1818 0 6.052343750e+00-2.935877664e-03* +* 7.281712500e+00 0 0 +GRID* 1819 0 6.107812500e+00-3.010001930e-03* +* 7.437975000e+00 0 0 +GRID* 1820 0 6.163281250e+00-3.084126196e-03* +* 7.594237500e+00 0 0 +GRID* 1821 0 5.996875000e+00-8.508710271e-02* +* 7.125450000e+00 0 0 +GRID* 1822 0 6.052343750e+00-8.431398578e-02* +* 7.281712500e+00 0 0 +GRID* 1823 0 6.107812500e+00-8.354086886e-02* +* 7.437975000e+00 0 0 +GRID* 1824 0 6.163281250e+00-8.276775193e-02* +* 7.594237500e+00 0 0 +GRID* 1825 0 6.274218750e+00 1.527459120e-01* +* 7.906762500e+00 0 0 +GRID* 1826 0 6.329687500e+00 1.509773053e-01* +* 8.063025000e+00 0 0 +GRID* 1827 0 6.385156250e+00 1.492086987e-01* +* 8.219287500e+00 0 0 +GRID* 1828 0 6.440625000e+00 1.474400920e-01* +* 8.375550000e+00 0 0 +GRID* 1829 0 6.274218750e+00 7.475676862e-02* +* 7.906762500e+00 0 0 +GRID* 1830 0 6.329687500e+00 7.383540317e-02* +* 8.063025000e+00 0 0 +GRID* 1831 0 6.385156250e+00 7.291403771e-02* +* 8.219287500e+00 0 0 +GRID* 1832 0 6.440625000e+00 7.199267225e-02* +* 8.375550000e+00 0 0 +GRID* 1833 0 6.274218750e+00-3.232374729e-03* +* 7.906762500e+00 0 0 +GRID* 1834 0 6.329687500e+00-3.306498995e-03* +* 8.063025000e+00 0 0 +GRID* 1835 0 6.385156250e+00-3.380623261e-03* +* 8.219287500e+00 0 0 +GRID* 1836 0 6.440625000e+00-3.454747527e-03* +* 8.375550000e+00 0 0 +GRID* 1837 0 6.274218750e+00-8.122151808e-02* +* 7.906762500e+00 0 0 +GRID* 1838 0 6.329687500e+00-8.044840115e-02* +* 8.063025000e+00 0 0 +GRID* 1839 0 6.385156250e+00-7.967528423e-02* +* 8.219287500e+00 0 0 +GRID* 1840 0 6.440625000e+00-7.890216730e-02* +* 8.375550000e+00 0 0 +GRID* 1841 0 6.551562500e+00 1.438718335e-01* +* 8.688075000e+00 0 0 +GRID* 1842 0 6.607031250e+00 1.420872919e-01* +* 8.844337500e+00 0 0 +GRID* 1843 0 6.662500000e+00 1.403027504e-01* +* 9.000600000e+00 0 0 +GRID* 1844 0 6.717968750e+00 1.385182089e-01* +* 9.156862500e+00 0 0 +GRID* 1845 0 6.551562500e+00 7.012924449e-02* +* 8.688075000e+00 0 0 +GRID* 1846 0 6.607031250e+00 6.919725579e-02* +* 8.844337500e+00 0 0 +GRID* 1847 0 6.662500000e+00 6.826493533e-02* +* 9.000600000e+00 0 0 +GRID* 1848 0 6.717968750e+00 6.733242725e-02* +* 9.156862500e+00 0 0 +GRID* 1849 0 6.551562500e+00-3.613344478e-03* +* 8.688075000e+00 0 0 +GRID* 1850 0 6.607031250e+00-3.692780370e-03* +* 8.844337500e+00 0 0 +GRID* 1851 0 6.662500000e+00-3.772879759e-03* +* 9.000600000e+00 0 0 +GRID* 1852 0 6.717968750e+00-3.853354378e-03* +* 9.156862500e+00 0 0 +GRID* 1853 0 6.551562500e+00-7.735593345e-02* +* 8.688075000e+00 0 0 +GRID* 1854 0 6.607031250e+00-7.658281652e-02* +* 8.844337500e+00 0 0 +GRID* 1855 0 6.662500000e+00-7.581069485e-02* +* 9.000600000e+00 0 0 +GRID* 1856 0 6.717968750e+00-7.503913601e-02* +* 9.156862500e+00 0 0 +GRID* 1857 0 6.828906250e+00 1.349491258e-01* +* 9.469387500e+00 0 0 +GRID* 1858 0 6.884375000e+00 1.331645843e-01* +* 9.625650000e+00 0 0 +GRID* 1859 0 6.939843750e+00 1.313800428e-01* +* 9.781912500e+00 0 0 +GRID* 1860 0 6.995312500e+00 1.295955013e-01* +* 9.938175000e+00 0 0 +GRID* 1861 0 6.828906250e+00 6.546741111e-02* +* 9.469387500e+00 0 0 +GRID* 1862 0 6.884375000e+00 6.453490303e-02* +* 9.625650000e+00 0 0 +GRID* 1863 0 6.939843750e+00 6.360239496e-02* +* 9.781912500e+00 0 0 +GRID* 1864 0 6.995312500e+00 6.266988689e-02* +* 9.938175000e+00 0 0 +GRID* 1865 0 6.828906250e+00-4.014303617e-03* +* 9.469387500e+00 0 0 +GRID* 1866 0 6.884375000e+00-4.094778236e-03* +* 9.625650000e+00 0 0 +GRID* 1867 0 6.939843750e+00-4.175252855e-03* +* 9.781912500e+00 0 0 +GRID* 1868 0 6.995312500e+00-4.255727474e-03* +* 9.938175000e+00 0 0 +GRID* 1869 0 6.828906250e+00-7.349601834e-02* +* 9.469387500e+00 0 0 +GRID* 1870 0 6.884375000e+00-7.272445951e-02* +* 9.625650000e+00 0 0 +GRID* 1871 0 6.939843750e+00-7.195290067e-02* +* 9.781912500e+00 0 0 +GRID* 1872 0 6.995312500e+00-7.118134184e-02* +* 9.938175000e+00 0 0 +GRID* 1873 0 7.106250000e+00 1.260264182e-01* +* 1.025070000e+01 0 0 +GRID* 1874 0 7.161718750e+00 1.242418767e-01* +* 1.040696250e+01 0 0 +GRID* 1875 0 7.217187500e+00 1.224573351e-01* +* 1.056322500e+01 0 0 +GRID* 1876 0 7.272656250e+00 1.206727936e-01* +* 1.071948750e+01 0 0 +GRID* 1877 0 7.106250000e+00 6.080487074e-02* +* 1.025070000e+01 0 0 +GRID* 1878 0 7.161718750e+00 5.987236267e-02* +* 1.040696250e+01 0 0 +GRID* 1879 0 7.217187500e+00 5.893985460e-02* +* 1.056322500e+01 0 0 +GRID* 1880 0 7.272656250e+00 5.800734652e-02* +* 1.071948750e+01 0 0 +GRID* 1881 0 7.106250000e+00-4.416676713e-03* +* 1.025070000e+01 0 0 +GRID* 1882 0 7.161718750e+00-4.497151332e-03* +* 1.040696250e+01 0 0 +GRID* 1883 0 7.217187500e+00-4.577625951e-03* +* 1.056322500e+01 0 0 +GRID* 1884 0 7.272656250e+00-4.658100570e-03* +* 1.071948750e+01 0 0 +GRID* 1885 0 7.106250000e+00-6.963822417e-02* +* 1.025070000e+01 0 0 +GRID* 1886 0 7.161718750e+00-6.886666533e-02* +* 1.040696250e+01 0 0 +GRID* 1887 0 7.217187500e+00-6.809510650e-02* +* 1.056322500e+01 0 0 +GRID* 1888 0 7.272656250e+00-6.732354766e-02* +* 1.071948750e+01 0 0 +GRID* 1889 0 7.383593750e+00 1.171037106e-01* +* 1.103201250e+01 0 0 +GRID* 1890 0 7.439062500e+00 1.153191690e-01* +* 1.118827500e+01 0 0 +GRID* 1891 0 7.494531250e+00 1.135346275e-01* +* 1.134453750e+01 0 0 +GRID* 1892 0 7.550000000e+00 1.117500860e-01* +* 1.150080000e+01 0 0 +GRID* 1893 0 7.383593750e+00 5.614233038e-02* +* 1.103201250e+01 0 0 +GRID* 1894 0 7.439062500e+00 5.520982230e-02* +* 1.118827500e+01 0 0 +GRID* 1895 0 7.494531250e+00 5.427731423e-02* +* 1.134453750e+01 0 0 +GRID* 1896 0 7.550000000e+00 5.334480616e-02* +* 1.150080000e+01 0 0 +GRID* 1897 0 7.383593750e+00-4.819049808e-03* +* 1.103201250e+01 0 0 +GRID* 1898 0 7.439062500e+00-4.899524428e-03* +* 1.118827500e+01 0 0 +GRID* 1899 0 7.494531250e+00-4.979999047e-03* +* 1.134453750e+01 0 0 +GRID* 1900 0 7.550000000e+00-5.060473666e-03* +* 1.150080000e+01 0 0 +GRID* 1901 0 7.383593750e+00-6.578042999e-02* +* 1.103201250e+01 0 0 +GRID* 1902 0 7.439062500e+00-6.500887116e-02* +* 1.118827500e+01 0 0 +GRID* 1903 0 7.494531250e+00-6.423731232e-02* +* 1.134453750e+01 0 0 +GRID* 1904 0 7.550000000e+00-6.346575349e-02* +* 1.150080000e+01 0 0 +GRID* 1905 0 7.660937500e+00 1.081700715e-01* +* 1.181332500e+01 0 0 +GRID* 1906 0 7.716406250e+00 1.063613163e-01* +* 1.196958750e+01 0 0 +GRID* 1907 0 7.771875000e+00 1.045525610e-01* +* 1.212585000e+01 0 0 +GRID* 1908 0 7.827343750e+00 1.027438058e-01* +* 1.228211250e+01 0 0 +GRID* 1909 0 7.660937500e+00 5.147250240e-02* +* 1.181332500e+01 0 0 +GRID* 1910 0 7.716406250e+00 5.052385185e-02* +* 1.196958750e+01 0 0 +GRID* 1911 0 7.771875000e+00 4.957555389e-02* +* 1.212585000e+01 0 0 +GRID* 1912 0 7.827343750e+00 4.862732448e-02* +* 1.228211250e+01 0 0 +GRID* 1913 0 7.660937500e+00-5.225066709e-03* +* 1.181332500e+01 0 0 +GRID* 1914 0 7.716406250e+00-5.313612566e-03* +* 1.196958750e+01 0 0 +GRID* 1915 0 7.771875000e+00-5.401453245e-03* +* 1.212585000e+01 0 0 +GRID* 1916 0 7.827343750e+00-5.489156832e-03* +* 1.228211250e+01 0 0 +GRID* 1917 0 7.660937500e+00-6.192263582e-02* +* 1.181332500e+01 0 0 +GRID* 1918 0 7.716406250e+00-6.115107698e-02* +* 1.196958750e+01 0 0 +GRID* 1919 0 7.771875000e+00-6.037846038e-02* +* 1.212585000e+01 0 0 +GRID* 1920 0 7.827343750e+00-5.960563814e-02* +* 1.228211250e+01 0 0 +GRID* 1921 0 7.938281250e+00 9.912629530e-02* +* 1.259463750e+01 0 0 +GRID* 1922 0 7.993750000e+00 9.731754006e-02* +* 1.275090000e+01 0 0 +GRID* 1923 0 8.049218750e+00 9.550878482e-02* +* 1.290716250e+01 0 0 +GRID* 1924 0 8.104687500e+00 9.370002958e-02* +* 1.306342500e+01 0 0 +GRID* 1925 0 7.938281250e+00 4.673086565e-02* +* 1.259463750e+01 0 0 +GRID* 1926 0 7.993750000e+00 4.578263623e-02* +* 1.275090000e+01 0 0 +GRID* 1927 0 8.049218750e+00 4.483440682e-02* +* 1.290716250e+01 0 0 +GRID* 1928 0 8.104687500e+00 4.388617741e-02* +* 1.306342500e+01 0 0 +GRID* 1929 0 7.938281250e+00-5.664564006e-03* +* 1.259463750e+01 0 0 +GRID* 1930 0 7.993750000e+00-5.752267593e-03* +* 1.275090000e+01 0 0 +GRID* 1931 0 8.049218750e+00-5.839971180e-03* +* 1.290716250e+01 0 0 +GRID* 1932 0 8.104687500e+00-5.927674767e-03* +* 1.306342500e+01 0 0 +GRID* 1933 0 7.938281250e+00-5.805999366e-02* +* 1.259463750e+01 0 0 +GRID* 1934 0 7.993750000e+00-5.728717142e-02* +* 1.275090000e+01 0 0 +GRID* 1935 0 8.049218750e+00-5.651434918e-02* +* 1.290716250e+01 0 0 +GRID* 1936 0 8.104687500e+00-5.574152694e-02* +* 1.306342500e+01 0 0 +GRID* 1937 0 8.215625000e+00 9.008251910e-02* +* 1.337595000e+01 0 0 +GRID* 1938 0 8.271093750e+00 8.827376385e-02* +* 1.353221250e+01 0 0 +GRID* 1939 0 8.326562500e+00 8.644538605e-02* +* 1.368847500e+01 0 0 +GRID* 1940 0 8.382031250e+00 8.460336883e-02* +* 1.384473750e+01 0 0 +GRID* 1941 0 8.215625000e+00 4.198971858e-02* +* 1.337595000e+01 0 0 +GRID* 1942 0 8.271093750e+00 4.104148916e-02* +* 1.353221250e+01 0 0 +GRID* 1943 0 8.326562500e+00 4.008017804e-02* +* 1.368847500e+01 0 0 +GRID* 1944 0 8.382031250e+00 3.911111724e-02* +* 1.384473750e+01 0 0 +GRID* 1945 0 8.215625000e+00-6.103081941e-03* +* 1.337595000e+01 0 0 +GRID* 1946 0 8.271093750e+00-6.190785529e-03* +* 1.353221250e+01 0 0 +GRID* 1947 0 8.326562500e+00-6.285029968e-03* +* 1.368847500e+01 0 0 +GRID* 1948 0 8.382031250e+00-6.381134343e-03* +* 1.384473750e+01 0 0 +GRID* 1949 0 8.215625000e+00-5.419588246e-02* +* 1.337595000e+01 0 0 +GRID* 1950 0 8.271093750e+00-5.342306022e-02* +* 1.353221250e+01 0 0 +GRID* 1951 0 8.326562500e+00-5.265023798e-02* +* 1.368847500e+01 0 0 +GRID* 1952 0 8.382031250e+00-5.187338593e-02* +* 1.384473750e+01 0 0 +GRID* 1953 0 1.402777778e+00 2.897012212e-01* +* 1.000000000e-02 0 0 +GRID* 1954 0 1.402777778e+00 2.830827618e-01* +* 1.590000000e-01 0 0 +GRID* 1955 0 1.402777778e+00 2.761967086e-01* +* 3.080000000e-01 0 0 +GRID* 1956 0 1.402777778e+00 2.690210508e-01* +* 4.570000000e-01 0 0 +GRID* 1957 0 1.402777778e+00 2.612136876e-01* +* 6.060000000e-01 0 0 +GRID* 1958 0 1.555555556e+00 2.981024557e-01* +* 1.000000000e-02 0 0 +GRID* 1959 0 1.555555556e+00 2.923440605e-01* +* 1.590000000e-01 0 0 +GRID* 1960 0 1.555555556e+00 2.861869983e-01* +* 3.080000000e-01 0 0 +GRID* 1961 0 1.555555556e+00 2.796678631e-01* +* 4.570000000e-01 0 0 +GRID* 1962 0 1.555555556e+00 2.728709012e-01* +* 6.060000000e-01 0 0 +GRID* 1963 0 1.402777778e+00-2.852871255e-01* +* 1.000000000e-02 0 0 +GRID* 1964 0 1.555555556e+00-2.918003020e-01* +* 1.000000000e-02 0 0 +GRID* 1965 0 1.402777778e+00-2.793050100e-01* +* 1.590000000e-01 0 0 +GRID* 1966 0 1.555555556e+00-2.870992597e-01* +* 1.590000000e-01 0 0 +GRID* 1967 0 1.402777778e+00-2.730161066e-01* +* 3.080000000e-01 0 0 +GRID* 1968 0 1.555555556e+00-2.816940304e-01* +* 3.080000000e-01 0 0 +GRID* 1969 0 1.402777778e+00-2.663938348e-01* +* 4.570000000e-01 0 0 +GRID* 1970 0 1.555555556e+00-2.758452000e-01* +* 4.570000000e-01 0 0 +GRID* 1971 0 1.402777778e+00-2.591427659e-01* +* 6.060000000e-01 0 0 +GRID* 1972 0 1.555555556e+00-2.696519518e-01* +* 6.060000000e-01 0 0 +GRID* 1973 0 1.708333333e+00 3.049957977e-01* +* 1.000000000e-02 0 0 +GRID* 1974 0 1.708333333e+00 2.998581211e-01* +* 1.590000000e-01 0 0 +GRID* 1975 0 1.708333333e+00 2.944746867e-01* +* 3.080000000e-01 0 0 +GRID* 1976 0 1.708333333e+00 2.888227453e-01* +* 4.570000000e-01 0 0 +GRID* 1977 0 1.708333333e+00 2.826727755e-01* +* 6.060000000e-01 0 0 +GRID* 1978 0 1.861111111e+00 3.099337101e-01* +* 1.000000000e-02 0 0 +GRID* 1979 0 1.861111111e+00 3.057114808e-01* +* 1.590000000e-01 0 0 +GRID* 1980 0 1.861111111e+00 3.010976836e-01* +* 3.080000000e-01 0 0 +GRID* 1981 0 1.861111111e+00 2.961017350e-01* +* 4.570000000e-01 0 0 +GRID* 1982 0 1.861111111e+00 2.908469178e-01* +* 6.060000000e-01 0 0 +GRID* 1983 0 1.708333333e+00-2.955761481e-01* +* 1.000000000e-02 0 0 +GRID* 1984 0 1.861111111e+00-2.952202360e-01* +* 1.000000000e-02 0 0 +GRID* 1985 0 1.708333333e+00-2.920342374e-01* +* 1.590000000e-01 0 0 +GRID* 1986 0 1.861111111e+00-2.937400209e-01* +* 1.590000000e-01 0 0 +GRID* 1987 0 1.708333333e+00-2.880232744e-01* +* 3.080000000e-01 0 0 +GRID* 1988 0 1.861111111e+00-2.912492284e-01* +* 3.080000000e-01 0 0 +GRID* 1989 0 1.708333333e+00-2.834403795e-01* +* 4.570000000e-01 0 0 +GRID* 1990 0 1.861111111e+00-2.880151665e-01* +* 4.570000000e-01 0 0 +GRID* 1991 0 1.708333333e+00-2.781009352e-01* +* 6.060000000e-01 0 0 +GRID* 1992 0 1.861111111e+00-2.842462469e-01* +* 6.060000000e-01 0 0 +GRID* 1993 0 2.013888889e+00 3.132229823e-01* +* 1.000000000e-02 0 0 +GRID* 1994 0 2.013888889e+00 3.096853480e-01* +* 1.590000000e-01 0 0 +GRID* 1995 0 2.013888889e+00 3.058711942e-01* +* 3.080000000e-01 0 0 +GRID* 1996 0 2.013888889e+00 3.017913174e-01* +* 4.570000000e-01 0 0 +GRID* 1997 0 2.013888889e+00 2.971966998e-01* +* 6.060000000e-01 0 0 +GRID* 1998 0 2.166666667e+00 3.144425739e-01* +* 1.000000000e-02 0 0 +GRID* 1999 0 2.166666667e+00 3.118259116e-01* +* 1.590000000e-01 0 0 +GRID* 2000 0 2.166666667e+00 3.088361974e-01* +* 3.080000000e-01 0 0 +GRID* 2001 0 2.166666667e+00 3.054440628e-01* +* 4.570000000e-01 0 0 +GRID* 2002 0 2.166666667e+00 3.018086783e-01* +* 6.060000000e-01 0 0 +GRID* 2003 0 2.013888889e+00-2.909698613e-01* +* 1.000000000e-02 0 0 +GRID* 2004 0 2.166666667e+00-2.822256579e-01* +* 1.000000000e-02 0 0 +GRID* 2005 0 2.013888889e+00-2.910248467e-01* +* 1.590000000e-01 0 0 +GRID* 2006 0 2.166666667e+00-2.842282417e-01* +* 1.590000000e-01 0 0 +GRID* 2007 0 2.013888889e+00-2.905128766e-01* +* 3.080000000e-01 0 0 +GRID* 2008 0 2.166666667e+00-2.854494132e-01* +* 3.080000000e-01 0 0 +GRID* 2009 0 2.013888889e+00-2.892844088e-01* +* 4.570000000e-01 0 0 +GRID* 2010 0 2.166666667e+00-2.858958892e-01* +* 4.570000000e-01 0 0 +GRID* 2011 0 2.013888889e+00-2.869223088e-01* +* 6.060000000e-01 0 0 +GRID* 2012 0 2.166666667e+00-2.858055171e-01* +* 6.060000000e-01 0 0 +GRID* 2013 0 2.319444444e+00 3.138508989e-01* +* 1.000000000e-02 0 0 +GRID* 2014 0 2.319444444e+00 3.119719718e-01* +* 1.590000000e-01 0 0 +GRID* 2015 0 2.319444444e+00 3.097920070e-01* +* 3.080000000e-01 0 0 +GRID* 2016 0 2.319444444e+00 3.073553357e-01* +* 4.570000000e-01 0 0 +GRID* 2017 0 2.319444444e+00 3.043990504e-01* +* 6.060000000e-01 0 0 +GRID* 2018 0 2.472222222e+00 3.111045682e-01* +* 1.000000000e-02 0 0 +GRID* 2019 0 2.472222222e+00 3.101363864e-01* +* 1.590000000e-01 0 0 +GRID* 2020 0 2.472222222e+00 3.088194814e-01* +* 3.080000000e-01 0 0 +GRID* 2021 0 2.472222222e+00 3.070899281e-01* +* 4.570000000e-01 0 0 +GRID* 2022 0 2.472222222e+00 3.051414400e-01* +* 6.060000000e-01 0 0 +GRID* 2023 0 2.319444444e+00-2.703314089e-01* +* 1.000000000e-02 0 0 +GRID* 2024 0 2.472222222e+00-2.552525882e-01* +* 1.000000000e-02 0 0 +GRID* 2025 0 2.319444444e+00-2.735184123e-01* +* 1.590000000e-01 0 0 +GRID* 2026 0 2.472222222e+00-2.597316600e-01* +* 1.590000000e-01 0 0 +GRID* 2027 0 2.319444444e+00-2.762800841e-01* +* 3.080000000e-01 0 0 +GRID* 2028 0 2.472222222e+00-2.637227774e-01* +* 3.080000000e-01 0 0 +GRID* 2029 0 2.319444444e+00-2.785445209e-01* +* 4.570000000e-01 0 0 +GRID* 2030 0 2.472222222e+00-2.671912735e-01* +* 4.570000000e-01 0 0 +GRID* 2031 0 2.319444444e+00-2.799050483e-01* +* 6.060000000e-01 0 0 +GRID* 2032 0 2.472222222e+00-2.703345102e-01* +* 6.060000000e-01 0 0 +GRID* 2033 0 2.625000000e+00 3.063913066e-01* +* 1.000000000e-02 0 0 +GRID* 2034 0 2.625000000e+00 3.062089397e-01* +* 1.590000000e-01 0 0 +GRID* 2035 0 2.625000000e+00 3.057034686e-01* +* 3.080000000e-01 0 0 +GRID* 2036 0 2.625000000e+00 3.049524390e-01* +* 4.570000000e-01 0 0 +GRID* 2037 0 2.625000000e+00 3.036874180e-01* +* 6.060000000e-01 0 0 +GRID* 2038 0 2.777777778e+00 2.994769178e-01* +* 1.000000000e-02 0 0 +GRID* 2039 0 2.777777778e+00 3.001682235e-01* +* 1.590000000e-01 0 0 +GRID* 2040 0 2.777777778e+00 3.005505390e-01* +* 3.080000000e-01 0 0 +GRID* 2041 0 2.777777778e+00 3.005196518e-01* +* 4.570000000e-01 0 0 +GRID* 2042 0 2.777777778e+00 3.003023691e-01* +* 6.060000000e-01 0 0 +GRID* 2043 0 2.625000000e+00-2.380020635e-01* +* 1.000000000e-02 0 0 +GRID* 2044 0 2.777777778e+00-2.187708330e-01* +* 1.000000000e-02 0 0 +GRID* 2045 0 2.625000000e+00-2.432568056e-01* +* 1.590000000e-01 0 0 +GRID* 2046 0 2.777777778e+00-2.247811045e-01* +* 1.590000000e-01 0 0 +GRID* 2047 0 2.625000000e+00-2.482431103e-01* +* 3.080000000e-01 0 0 +GRID* 2048 0 2.777777778e+00-2.305182621e-01* +* 3.080000000e-01 0 0 +GRID* 2049 0 2.625000000e+00-2.529221596e-01* +* 4.570000000e-01 0 0 +GRID* 2050 0 2.777777778e+00-2.359566845e-01* +* 4.570000000e-01 0 0 +GRID* 2051 0 2.625000000e+00-2.570391789e-01* +* 6.060000000e-01 0 0 +GRID* 2052 0 2.777777778e+00-2.412114266e-01* +* 6.060000000e-01 0 0 +GRID* 2053 0 2.930555556e+00 2.905148613e-01* +* 1.000000000e-02 0 0 +GRID* 2054 0 2.930555556e+00 2.920041467e-01* +* 1.590000000e-01 0 0 +GRID* 2055 0 2.930555556e+00 2.931646683e-01* +* 3.080000000e-01 0 0 +GRID* 2056 0 2.930555556e+00 2.941041091e-01* +* 4.570000000e-01 0 0 +GRID* 2057 0 2.930555556e+00 2.945569230e-01* +* 6.060000000e-01 0 0 +GRID* 2058 0 3.083333333e+00 2.793930891e-01* +* 1.000000000e-02 0 0 +GRID* 2059 0 3.083333333e+00 2.816892043e-01* +* 1.590000000e-01 0 0 +GRID* 2060 0 3.083333333e+00 2.837213675e-01* +* 3.080000000e-01 0 0 +GRID* 2061 0 3.083333333e+00 2.853588169e-01* +* 4.570000000e-01 0 0 +GRID* 2062 0 3.083333333e+00 2.868481023e-01* +* 6.060000000e-01 0 0 +GRID* 2063 0 2.930555556e+00-1.982132744e-01* +* 1.000000000e-02 0 0 +GRID* 2064 0 3.083333333e+00-1.766170117e-01* +* 1.000000000e-02 0 0 +GRID* 2065 0 2.930555556e+00-2.046717858e-01* +* 1.590000000e-01 0 0 +GRID* 2066 0 3.083333333e+00-1.834281274e-01* +* 1.590000000e-01 0 0 +GRID* 2067 0 2.930555556e+00-2.109835949e-01* +* 3.080000000e-01 0 0 +GRID* 2068 0 3.083333333e+00-1.901290577e-01* +* 3.080000000e-01 0 0 +GRID* 2069 0 2.930555556e+00-2.171214175e-01* +* 4.570000000e-01 0 0 +GRID* 2070 0 3.083333333e+00-1.966911676e-01* +* 4.570000000e-01 0 0 +GRID* 2071 0 2.930555556e+00-2.229591942e-01* +* 6.060000000e-01 0 0 +GRID* 2072 0 3.083333333e+00-2.031496791e-01* +* 6.060000000e-01 0 0 +GRID* 2073 0 3.236111111e+00 2.661830945e-01* +* 1.000000000e-02 0 0 +GRID* 2074 0 3.236111111e+00 2.692725838e-01* +* 1.590000000e-01 0 0 +GRID* 2075 0 3.236111111e+00 2.720374848e-01* +* 3.080000000e-01 0 0 +GRID* 2076 0 3.236111111e+00 2.746058518e-01* +* 4.570000000e-01 0 0 +GRID* 2077 0 3.236111111e+00 2.767283210e-01* +* 6.060000000e-01 0 0 +GRID* 2078 0 3.388888889e+00 2.509801424e-01* +* 1.000000000e-02 0 0 +GRID* 2079 0 3.388888889e+00 2.547449894e-01* +* 1.590000000e-01 0 0 +GRID* 2080 0 3.388888889e+00 2.583169608e-01* +* 3.080000000e-01 0 0 +GRID* 2081 0 3.388888889e+00 2.615455484e-01* +* 4.570000000e-01 0 0 +GRID* 2082 0 3.388888889e+00 2.646350377e-01* +* 6.060000000e-01 0 0 +GRID* 2083 0 3.236111111e+00-1.544920171e-01* +* 1.000000000e-02 0 0 +GRID* 2084 0 3.388888889e+00-1.322271151e-01* +* 1.000000000e-02 0 0 +GRID* 2085 0 3.236111111e+00-1.614513580e-01* +* 1.590000000e-01 0 0 +GRID* 2086 0 3.388888889e+00-1.391840053e-01* +* 1.590000000e-01 0 0 +GRID* 2087 0 3.236111111e+00-1.683702616e-01* +* 3.080000000e-01 0 0 +GRID* 2088 0 3.388888889e+00-1.461677885e-01* +* 3.080000000e-01 0 0 +GRID* 2089 0 3.236111111e+00-1.752371023e-01* +* 4.570000000e-01 0 0 +GRID* 2090 0 3.388888889e+00-1.531390291e-01* +* 4.570000000e-01 0 0 +GRID* 2091 0 3.236111111e+00-1.819939182e-01* +* 6.060000000e-01 0 0 +GRID* 2092 0 3.388888889e+00-1.600983701e-01* +* 6.060000000e-01 0 0 +GRID* 2093 0 3.541666667e+00 2.339734708e-01* +* 1.000000000e-02 0 0 +GRID* 2094 0 3.541666667e+00 2.383853157e-01* +* 1.590000000e-01 0 0 +GRID* 2095 0 3.541666667e+00 2.425435636e-01* +* 3.080000000e-01 0 0 +GRID* 2096 0 3.541666667e+00 2.465560423e-01* +* 4.570000000e-01 0 0 +GRID* 2097 0 3.541666667e+00 2.502279065e-01* +* 6.060000000e-01 0 0 +GRID* 2098 0 3.694444444e+00 2.154231005e-01* +* 1.000000000e-02 0 0 +GRID* 2099 0 3.694444444e+00 2.203199939e-01* +* 1.590000000e-01 0 0 +GRID* 2100 0 3.694444444e+00 2.250909137e-01* +* 3.080000000e-01 0 0 +GRID* 2101 0 3.694444444e+00 2.296178321e-01* +* 4.570000000e-01 0 0 +GRID* 2102 0 3.694444444e+00 2.340296770e-01* +* 6.060000000e-01 0 0 +GRID* 2103 0 3.541666667e+00-1.102107391e-01* +* 1.000000000e-02 0 0 +GRID* 2104 0 3.694444444e+00-8.889508119e-02* +* 1.000000000e-02 0 0 +GRID* 2105 0 3.541666667e+00-1.170482712e-01* +* 1.590000000e-01 0 0 +GRID* 2106 0 3.694444444e+00-9.542082584e-02* +* 1.590000000e-01 0 0 +GRID* 2107 0 3.541666667e+00-1.239288831e-01* +* 3.080000000e-01 0 0 +GRID* 2108 0 3.694444444e+00-1.020914439e-01* +* 3.080000000e-01 0 0 +GRID* 2109 0 3.541666667e+00-1.308714456e-01* +* 4.570000000e-01 0 0 +GRID* 2110 0 3.694444444e+00-1.088365617e-01* +* 4.570000000e-01 0 0 +GRID* 2111 0 3.541666667e+00-1.378372211e-01* +* 6.060000000e-01 0 0 +GRID* 2112 0 3.694444444e+00-1.156740938e-01* +* 6.060000000e-01 0 0 +GRID* 2113 0 3.847222222e+00 1.954811221e-01* +* 1.000000000e-02 0 0 +GRID* 2114 0 3.847222222e+00 2.008570393e-01* +* 1.590000000e-01 0 0 +GRID* 2115 0 3.847222222e+00 2.060521741e-01* +* 3.080000000e-01 0 0 +GRID* 2116 0 3.847222222e+00 2.111427424e-01* +* 4.570000000e-01 0 0 +GRID* 2117 0 3.847222222e+00 2.160112719e-01* +* 6.060000000e-01 0 0 +GRID* 2118 0 3.847222222e+00-6.860476121e-02* +* 1.000000000e-02 0 0 +GRID* 2119 0 3.847222222e+00-7.476417377e-02* +* 1.590000000e-01 0 0 +GRID* 2120 0 3.847222222e+00-8.103310016e-02* +* 3.080000000e-01 0 0 +GRID* 2121 0 3.847222222e+00-8.747691479e-02* +* 4.570000000e-01 0 0 +GRID* 2122 0 3.847222222e+00-9.402399243e-02* +* 6.060000000e-01 0 0 +GRID* 2123 0 1.555555556e+00 2.856024557e-01* +* 1.000000000e-02 0 0 +GRID* 2124 0 1.555555556e+00 2.731024557e-01* +* 1.000000000e-02 0 0 +GRID* 2125 0 1.555555556e+00 2.798440605e-01* +* 1.590000000e-01 0 0 +GRID* 2126 0 1.555555556e+00 2.673440605e-01* +* 1.590000000e-01 0 0 +GRID* 2127 0 1.555555556e+00 2.736869983e-01* +* 3.080000000e-01 0 0 +GRID* 2128 0 1.555555556e+00 2.611869983e-01* +* 3.080000000e-01 0 0 +GRID* 2129 0 1.555555556e+00 2.671678631e-01* +* 4.570000000e-01 0 0 +GRID* 2130 0 1.555555556e+00 2.546678631e-01* +* 4.570000000e-01 0 0 +GRID* 2131 0 1.555555556e+00 2.603709012e-01* +* 6.060000000e-01 0 0 +GRID* 2132 0 1.555555556e+00 2.478709012e-01* +* 6.060000000e-01 0 0 +GRID* 2133 0 1.555555556e+00 2.532110924e-01* +* 7.550000000e-01 0 0 +GRID* 2134 0 1.555555556e+00 2.407110924e-01* +* 7.550000000e-01 0 0 +GRID* 2135 0 1.555555556e+00-2.793003020e-01* +* 1.000000000e-02 0 0 +GRID* 2136 0 1.555555556e+00-2.668003020e-01* +* 1.000000000e-02 0 0 +GRID* 2137 0 1.555555556e+00-2.745992597e-01* +* 1.590000000e-01 0 0 +GRID* 2138 0 1.555555556e+00-2.620992597e-01* +* 1.590000000e-01 0 0 +GRID* 2139 0 1.555555556e+00-2.691940304e-01* +* 3.080000000e-01 0 0 +GRID* 2140 0 1.555555556e+00-2.566940304e-01* +* 3.080000000e-01 0 0 +GRID* 2141 0 1.555555556e+00-2.633452000e-01* +* 4.570000000e-01 0 0 +GRID* 2142 0 1.555555556e+00-2.508452000e-01* +* 4.570000000e-01 0 0 +GRID* 2143 0 1.555555556e+00-2.571519518e-01* +* 6.060000000e-01 0 0 +GRID* 2144 0 1.555555556e+00-2.446519518e-01* +* 6.060000000e-01 0 0 +GRID* 2145 0 1.555555556e+00-2.505296799e-01* +* 7.550000000e-01 0 0 +GRID* 2146 0 1.555555556e+00-2.380296799e-01* +* 7.550000000e-01 0 0 +GRID* 2147 0 1.861111111e+00 2.974337101e-01* +* 1.000000000e-02 0 0 +GRID* 2148 0 1.861111111e+00 2.849337101e-01* +* 1.000000000e-02 0 0 +GRID* 2149 0 1.861111111e+00 2.932114808e-01* +* 1.590000000e-01 0 0 +GRID* 2150 0 1.861111111e+00 2.807114808e-01* +* 1.590000000e-01 0 0 +GRID* 2151 0 1.861111111e+00 2.885976836e-01* +* 3.080000000e-01 0 0 +GRID* 2152 0 1.861111111e+00 2.760976836e-01* +* 3.080000000e-01 0 0 +GRID* 2153 0 1.861111111e+00 2.836017350e-01* +* 4.570000000e-01 0 0 +GRID* 2154 0 1.861111111e+00 2.711017350e-01* +* 4.570000000e-01 0 0 +GRID* 2155 0 1.861111111e+00 2.783469178e-01* +* 6.060000000e-01 0 0 +GRID* 2156 0 1.861111111e+00 2.658469178e-01* +* 6.060000000e-01 0 0 +GRID* 2157 0 1.861111111e+00 2.726949764e-01* +* 7.550000000e-01 0 0 +GRID* 2158 0 1.861111111e+00 2.601949764e-01* +* 7.550000000e-01 0 0 +GRID* 2159 0 1.861111111e+00-2.827202360e-01* +* 1.000000000e-02 0 0 +GRID* 2160 0 1.861111111e+00-2.702202360e-01* +* 1.000000000e-02 0 0 +GRID* 2161 0 1.861111111e+00-2.812400209e-01* +* 1.590000000e-01 0 0 +GRID* 2162 0 1.861111111e+00-2.687400209e-01* +* 1.590000000e-01 0 0 +GRID* 2163 0 1.861111111e+00-2.787492284e-01* +* 3.080000000e-01 0 0 +GRID* 2164 0 1.861111111e+00-2.662492284e-01* +* 3.080000000e-01 0 0 +GRID* 2165 0 1.861111111e+00-2.755151665e-01* +* 4.570000000e-01 0 0 +GRID* 2166 0 1.861111111e+00-2.630151665e-01* +* 4.570000000e-01 0 0 +GRID* 2167 0 1.861111111e+00-2.717462469e-01* +* 6.060000000e-01 0 0 +GRID* 2168 0 1.861111111e+00-2.592462469e-01* +* 6.060000000e-01 0 0 +GRID* 2169 0 1.861111111e+00-2.671633519e-01* +* 7.550000000e-01 0 0 +GRID* 2170 0 1.861111111e+00-2.546633519e-01* +* 7.550000000e-01 0 0 +GRID* 2171 0 2.166666667e+00 3.019425739e-01* +* 1.000000000e-02 0 0 +GRID* 2172 0 2.166666667e+00 2.894425739e-01* +* 1.000000000e-02 0 0 +GRID* 2173 0 2.166666667e+00 2.993259116e-01* +* 1.590000000e-01 0 0 +GRID* 2174 0 2.166666667e+00 2.868259116e-01* +* 1.590000000e-01 0 0 +GRID* 2175 0 2.166666667e+00 2.963361974e-01* +* 3.080000000e-01 0 0 +GRID* 2176 0 2.166666667e+00 2.838361974e-01* +* 3.080000000e-01 0 0 +GRID* 2177 0 2.166666667e+00 2.929440628e-01* +* 4.570000000e-01 0 0 +GRID* 2178 0 2.166666667e+00 2.804440628e-01* +* 4.570000000e-01 0 0 +GRID* 2179 0 2.166666667e+00 2.893086783e-01* +* 6.060000000e-01 0 0 +GRID* 2180 0 2.166666667e+00 2.768086783e-01* +* 6.060000000e-01 0 0 +GRID* 2181 0 2.166666667e+00 2.852288015e-01* +* 7.550000000e-01 0 0 +GRID* 2182 0 2.166666667e+00 2.727288015e-01* +* 7.550000000e-01 0 0 +GRID* 2183 0 2.166666667e+00-2.697256579e-01* +* 1.000000000e-02 0 0 +GRID* 2184 0 2.166666667e+00-2.572256579e-01* +* 1.000000000e-02 0 0 +GRID* 2185 0 2.166666667e+00-2.717282417e-01* +* 1.590000000e-01 0 0 +GRID* 2186 0 2.166666667e+00-2.592282417e-01* +* 1.590000000e-01 0 0 +GRID* 2187 0 2.166666667e+00-2.729494132e-01* +* 3.080000000e-01 0 0 +GRID* 2188 0 2.166666667e+00-2.604494132e-01* +* 3.080000000e-01 0 0 +GRID* 2189 0 2.166666667e+00-2.733958892e-01* +* 4.570000000e-01 0 0 +GRID* 2190 0 2.166666667e+00-2.608958892e-01* +* 4.570000000e-01 0 0 +GRID* 2191 0 2.166666667e+00-2.733055171e-01* +* 6.060000000e-01 0 0 +GRID* 2192 0 2.166666667e+00-2.608055171e-01* +* 6.060000000e-01 0 0 +GRID* 2193 0 2.166666667e+00-2.720770494e-01* +* 7.550000000e-01 0 0 +GRID* 2194 0 2.166666667e+00-2.595770494e-01* +* 7.550000000e-01 0 0 +GRID* 2195 0 2.472222222e+00 2.986045682e-01* +* 1.000000000e-02 0 0 +GRID* 2196 0 2.472222222e+00 2.861045682e-01* +* 1.000000000e-02 0 0 +GRID* 2197 0 2.472222222e+00 2.976363864e-01* +* 1.590000000e-01 0 0 +GRID* 2198 0 2.472222222e+00 2.851363864e-01* +* 1.590000000e-01 0 0 +GRID* 2199 0 2.472222222e+00 2.963194814e-01* +* 3.080000000e-01 0 0 +GRID* 2200 0 2.472222222e+00 2.838194814e-01* +* 3.080000000e-01 0 0 +GRID* 2201 0 2.472222222e+00 2.945899281e-01* +* 4.570000000e-01 0 0 +GRID* 2202 0 2.472222222e+00 2.820899281e-01* +* 4.570000000e-01 0 0 +GRID* 2203 0 2.472222222e+00 2.926414400e-01* +* 6.060000000e-01 0 0 +GRID* 2204 0 2.472222222e+00 2.801414400e-01* +* 6.060000000e-01 0 0 +GRID* 2205 0 2.472222222e+00 2.902047688e-01* +* 7.550000000e-01 0 0 +GRID* 2206 0 2.472222222e+00 2.777047688e-01* +* 7.550000000e-01 0 0 +GRID* 2207 0 2.472222222e+00-2.427525882e-01* +* 1.000000000e-02 0 0 +GRID* 2208 0 2.472222222e+00-2.302525882e-01* +* 1.000000000e-02 0 0 +GRID* 2209 0 2.472222222e+00-2.472316600e-01* +* 1.590000000e-01 0 0 +GRID* 2210 0 2.472222222e+00-2.347316600e-01* +* 1.590000000e-01 0 0 +GRID* 2211 0 2.472222222e+00-2.512227774e-01* +* 3.080000000e-01 0 0 +GRID* 2212 0 2.472222222e+00-2.387227774e-01* +* 3.080000000e-01 0 0 +GRID* 2213 0 2.472222222e+00-2.546912735e-01* +* 4.570000000e-01 0 0 +GRID* 2214 0 2.472222222e+00-2.421912735e-01* +* 4.570000000e-01 0 0 +GRID* 2215 0 2.472222222e+00-2.578345102e-01* +* 6.060000000e-01 0 0 +GRID* 2216 0 2.472222222e+00-2.453345102e-01* +* 6.060000000e-01 0 0 +GRID* 2217 0 2.472222222e+00-2.600989470e-01* +* 7.550000000e-01 0 0 +GRID* 2218 0 2.472222222e+00-2.475989470e-01* +* 7.550000000e-01 0 0 +GRID* 2219 0 2.777777778e+00 2.869769178e-01* +* 1.000000000e-02 0 0 +GRID* 2220 0 2.777777778e+00 2.744769178e-01* +* 1.000000000e-02 0 0 +GRID* 2221 0 2.777777778e+00 2.876682235e-01* +* 1.590000000e-01 0 0 +GRID* 2222 0 2.777777778e+00 2.751682235e-01* +* 1.590000000e-01 0 0 +GRID* 2223 0 2.777777778e+00 2.880505390e-01* +* 3.080000000e-01 0 0 +GRID* 2224 0 2.777777778e+00 2.755505390e-01* +* 3.080000000e-01 0 0 +GRID* 2225 0 2.777777778e+00 2.880196518e-01* +* 4.570000000e-01 0 0 +GRID* 2226 0 2.777777778e+00 2.755196518e-01* +* 4.570000000e-01 0 0 +GRID* 2227 0 2.777777778e+00 2.878023691e-01* +* 6.060000000e-01 0 0 +GRID* 2228 0 2.777777778e+00 2.753023691e-01* +* 6.060000000e-01 0 0 +GRID* 2229 0 2.777777778e+00 2.870513395e-01* +* 7.550000000e-01 0 0 +GRID* 2230 0 2.777777778e+00 2.745513395e-01* +* 7.550000000e-01 0 0 +GRID* 2231 0 2.777777778e+00-2.062708330e-01* +* 1.000000000e-02 0 0 +GRID* 2232 0 2.777777778e+00-1.937708330e-01* +* 1.000000000e-02 0 0 +GRID* 2233 0 2.777777778e+00-2.122811045e-01* +* 1.590000000e-01 0 0 +GRID* 2234 0 2.777777778e+00-1.997811045e-01* +* 1.590000000e-01 0 0 +GRID* 2235 0 2.777777778e+00-2.180182621e-01* +* 3.080000000e-01 0 0 +GRID* 2236 0 2.777777778e+00-2.055182621e-01* +* 3.080000000e-01 0 0 +GRID* 2237 0 2.777777778e+00-2.234566845e-01* +* 4.570000000e-01 0 0 +GRID* 2238 0 2.777777778e+00-2.109566845e-01* +* 4.570000000e-01 0 0 +GRID* 2239 0 2.777777778e+00-2.287114266e-01* +* 6.060000000e-01 0 0 +GRID* 2240 0 2.777777778e+00-2.162114266e-01* +* 6.060000000e-01 0 0 +GRID* 2241 0 2.777777778e+00-2.334126817e-01* +* 7.550000000e-01 0 0 +GRID* 2242 0 2.777777778e+00-2.209126817e-01* +* 7.550000000e-01 0 0 +GRID* 2243 0 3.083333333e+00 2.668930891e-01* +* 1.000000000e-02 0 0 +GRID* 2244 0 3.083333333e+00 2.543930891e-01* +* 1.000000000e-02 0 0 +GRID* 2245 0 3.083333333e+00 2.691892043e-01* +* 1.590000000e-01 0 0 +GRID* 2246 0 3.083333333e+00 2.566892043e-01* +* 1.590000000e-01 0 0 +GRID* 2247 0 3.083333333e+00 2.712213675e-01* +* 3.080000000e-01 0 0 +GRID* 2248 0 3.083333333e+00 2.587213675e-01* +* 3.080000000e-01 0 0 +GRID* 2249 0 3.083333333e+00 2.728588169e-01* +* 4.570000000e-01 0 0 +GRID* 2250 0 3.083333333e+00 2.603588169e-01* +* 4.570000000e-01 0 0 +GRID* 2251 0 3.083333333e+00 2.743481023e-01* +* 6.060000000e-01 0 0 +GRID* 2252 0 3.083333333e+00 2.618481023e-01* +* 6.060000000e-01 0 0 +GRID* 2253 0 3.083333333e+00 2.752918596e-01* +* 7.550000000e-01 0 0 +GRID* 2254 0 3.083333333e+00 2.627918596e-01* +* 7.550000000e-01 0 0 +GRID* 2255 0 3.083333333e+00-1.641170117e-01* +* 1.000000000e-02 0 0 +GRID* 2256 0 3.083333333e+00-1.516170117e-01* +* 1.000000000e-02 0 0 +GRID* 2257 0 3.083333333e+00-1.709281274e-01* +* 1.590000000e-01 0 0 +GRID* 2258 0 3.083333333e+00-1.584281274e-01* +* 1.590000000e-01 0 0 +GRID* 2259 0 3.083333333e+00-1.776290577e-01* +* 3.080000000e-01 0 0 +GRID* 2260 0 3.083333333e+00-1.651290577e-01* +* 3.080000000e-01 0 0 +GRID* 2261 0 3.083333333e+00-1.841911676e-01* +* 4.570000000e-01 0 0 +GRID* 2262 0 3.083333333e+00-1.716911676e-01* +* 4.570000000e-01 0 0 +GRID* 2263 0 3.083333333e+00-1.906496791e-01* +* 6.060000000e-01 0 0 +GRID* 2264 0 3.083333333e+00-1.781496791e-01* +* 6.060000000e-01 0 0 +GRID* 2265 0 3.083333333e+00-1.968341794e-01* +* 7.550000000e-01 0 0 +GRID* 2266 0 3.083333333e+00-1.843341794e-01* +* 7.550000000e-01 0 0 +GRID* 2267 0 3.388888889e+00 2.384801424e-01* +* 1.000000000e-02 0 0 +GRID* 2268 0 3.388888889e+00 2.259801424e-01* +* 1.000000000e-02 0 0 +GRID* 2269 0 3.388888889e+00 2.422449894e-01* +* 1.590000000e-01 0 0 +GRID* 2270 0 3.388888889e+00 2.297449894e-01* +* 1.590000000e-01 0 0 +GRID* 2271 0 3.388888889e+00 2.458169608e-01* +* 3.080000000e-01 0 0 +GRID* 2272 0 3.388888889e+00 2.333169608e-01* +* 3.080000000e-01 0 0 +GRID* 2273 0 3.388888889e+00 2.490455484e-01* +* 4.570000000e-01 0 0 +GRID* 2274 0 3.388888889e+00 2.365455484e-01* +* 4.570000000e-01 0 0 +GRID* 2275 0 3.388888889e+00 2.521350377e-01* +* 6.060000000e-01 0 0 +GRID* 2276 0 3.388888889e+00 2.396350377e-01* +* 6.060000000e-01 0 0 +GRID* 2277 0 3.388888889e+00 2.547502475e-01* +* 7.550000000e-01 0 0 +GRID* 2278 0 3.388888889e+00 2.422502475e-01* +* 7.550000000e-01 0 0 +GRID* 2279 0 3.388888889e+00-1.197271151e-01* +* 1.000000000e-02 0 0 +GRID* 2280 0 3.388888889e+00-1.072271151e-01* +* 1.000000000e-02 0 0 +GRID* 2281 0 3.388888889e+00-1.266840053e-01* +* 1.590000000e-01 0 0 +GRID* 2282 0 3.388888889e+00-1.141840053e-01* +* 1.590000000e-01 0 0 +GRID* 2283 0 3.388888889e+00-1.336677885e-01* +* 3.080000000e-01 0 0 +GRID* 2284 0 3.388888889e+00-1.211677885e-01* +* 3.080000000e-01 0 0 +GRID* 2285 0 3.388888889e+00-1.406390291e-01* +* 4.570000000e-01 0 0 +GRID* 2286 0 3.388888889e+00-1.281390291e-01* +* 4.570000000e-01 0 0 +GRID* 2287 0 3.388888889e+00-1.475983701e-01* +* 6.060000000e-01 0 0 +GRID* 2288 0 3.388888889e+00-1.350983701e-01* +* 6.060000000e-01 0 0 +GRID* 2289 0 3.388888889e+00-1.544903522e-01* +* 7.550000000e-01 0 0 +GRID* 2290 0 3.388888889e+00-1.419903522e-01* +* 7.550000000e-01 0 0 +GRID* 2291 0 3.694444444e+00 2.029231005e-01* +* 1.000000000e-02 0 0 +GRID* 2292 0 3.694444444e+00 1.904231005e-01* +* 1.000000000e-02 0 0 +GRID* 2293 0 3.694444444e+00 2.078199939e-01* +* 1.590000000e-01 0 0 +GRID* 2294 0 3.694444444e+00 1.953199939e-01* +* 1.590000000e-01 0 0 +GRID* 2295 0 3.694444444e+00 2.125909137e-01* +* 3.080000000e-01 0 0 +GRID* 2296 0 3.694444444e+00 2.000909137e-01* +* 3.080000000e-01 0 0 +GRID* 2297 0 3.694444444e+00 2.171178321e-01* +* 4.570000000e-01 0 0 +GRID* 2298 0 3.694444444e+00 2.046178321e-01* +* 4.570000000e-01 0 0 +GRID* 2299 0 3.694444444e+00 2.215296770e-01* +* 6.060000000e-01 0 0 +GRID* 2300 0 3.694444444e+00 2.090296770e-01* +* 6.060000000e-01 0 0 +GRID* 2301 0 3.694444444e+00 2.256194635e-01* +* 7.550000000e-01 0 0 +GRID* 2302 0 3.694444444e+00 2.131194635e-01* +* 7.550000000e-01 0 0 +GRID* 2303 0 3.694444444e+00-7.639508119e-02* +* 1.000000000e-02 0 0 +GRID* 2304 0 3.694444444e+00-6.389508119e-02* +* 1.000000000e-02 0 0 +GRID* 2305 0 3.694444444e+00-8.292082584e-02* +* 1.590000000e-01 0 0 +GRID* 2306 0 3.694444444e+00-7.042082584e-02* +* 1.590000000e-01 0 0 +GRID* 2307 0 3.694444444e+00-8.959144393e-02* +* 3.080000000e-01 0 0 +GRID* 2308 0 3.694444444e+00-7.709144393e-02* +* 3.080000000e-01 0 0 +GRID* 2309 0 3.694444444e+00-9.633656170e-02* +* 4.570000000e-01 0 0 +GRID* 2310 0 3.694444444e+00-8.383656170e-02* +* 4.570000000e-01 0 0 +GRID* 2311 0 3.694444444e+00-1.031740938e-01* +* 6.060000000e-01 0 0 +GRID* 2312 0 3.694444444e+00-9.067409380e-02* +* 6.060000000e-01 0 0 +GRID* 2313 0 3.694444444e+00-1.100732136e-01* +* 7.550000000e-01 0 0 +GRID* 2314 0 3.694444444e+00-9.757321357e-02* +* 7.550000000e-01 0 0 +GRID* 2315 0 1.402777778e+00 2.439616322e-01* +* 9.040000000e-01 0 0 +GRID* 2316 0 1.402777778e+00 2.342584551e-01* +* 1.053000000e+00 0 0 +GRID* 2317 0 1.402777778e+00 2.234261772e-01* +* 1.202000000e+00 0 0 +GRID* 2318 0 1.402777778e+00 2.116570006e-01* +* 1.351000000e+00 0 0 +GRID* 2319 0 1.555555556e+00 2.579865777e-01* +* 9.040000000e-01 0 0 +GRID* 2320 0 1.555555556e+00 2.497613571e-01* +* 1.053000000e+00 0 0 +GRID* 2321 0 1.555555556e+00 2.409562610e-01* +* 1.202000000e+00 0 0 +GRID* 2322 0 1.555555556e+00 2.312530839e-01* +* 1.351000000e+00 0 0 +GRID* 2323 0 1.402777778e+00-2.430263420e-01* +* 9.040000000e-01 0 0 +GRID* 2324 0 1.555555556e+00-2.558781722e-01* +* 9.040000000e-01 0 0 +GRID* 2325 0 1.402777778e+00-2.337797781e-01* +* 1.053000000e+00 0 0 +GRID* 2326 0 1.555555556e+00-2.482263323e-01* +* 1.053000000e+00 0 0 +GRID* 2327 0 1.402777778e+00-2.234366626e-01* +* 1.202000000e+00 0 0 +GRID* 2328 0 1.555555556e+00-2.399893803e-01* +* 1.202000000e+00 0 0 +GRID* 2329 0 1.402777778e+00-2.121120037e-01* +* 1.351000000e+00 0 0 +GRID* 2330 0 1.555555556e+00-2.307428165e-01* +* 1.351000000e+00 0 0 +GRID* 2331 0 1.708333333e+00 2.695450937e-01* +* 9.040000000e-01 0 0 +GRID* 2332 0 1.708333333e+00 2.623852849e-01* +* 1.053000000e+00 0 0 +GRID* 2333 0 1.708333333e+00 2.547594677e-01* +* 1.202000000e+00 0 0 +GRID* 2334 0 1.708333333e+00 2.466439283e-01* +* 1.351000000e+00 0 0 +GRID* 2335 0 1.861111111e+00 2.791585526e-01* +* 9.040000000e-01 0 0 +GRID* 2336 0 1.861111111e+00 2.728380656e-01* +* 1.053000000e+00 0 0 +GRID* 2337 0 1.861111111e+00 2.661845782e-01* +* 1.202000000e+00 0 0 +GRID* 2338 0 1.861111111e+00 2.590594774e-01* +* 1.351000000e+00 0 0 +GRID* 2339 0 1.708333333e+00-2.662877969e-01* +* 9.040000000e-01 0 0 +GRID* 2340 0 1.861111111e+00-2.745078401e-01* +* 9.040000000e-01 0 0 +GRID* 2341 0 1.708333333e+00-2.596655251e-01* +* 1.053000000e+00 0 0 +GRID* 2342 0 1.861111111e+00-2.689255800e-01* +* 1.053000000e+00 0 0 +GRID* 2343 0 1.708333333e+00-2.526135786e-01* +* 1.202000000e+00 0 0 +GRID* 2344 0 1.861111111e+00-2.628504347e-01* +* 1.202000000e+00 0 0 +GRID* 2345 0 1.708333333e+00-2.450738651e-01* +* 1.351000000e+00 0 0 +GRID* 2346 0 1.861111111e+00-2.563013702e-01* +* 1.351000000e+00 0 0 +GRID* 2347 0 2.013888889e+00 2.872076724e-01* +* 9.040000000e-01 0 0 +GRID* 2348 0 2.013888889e+00 2.815672074e-01* +* 1.053000000e+00 0 0 +GRID* 2349 0 2.013888889e+00 2.756443297e-01* +* 1.202000000e+00 0 0 +GRID* 2350 0 2.013888889e+00 2.694231668e-01* +* 1.351000000e+00 0 0 +GRID* 2351 0 2.166666667e+00 2.932957160e-01* +* 9.040000000e-01 0 0 +GRID* 2352 0 2.166666667e+00 2.885889628e-01* +* 1.053000000e+00 0 0 +GRID* 2353 0 2.166666667e+00 2.834512863e-01* +* 1.202000000e+00 0 0 +GRID* 2354 0 2.166666667e+00 2.779394385e-01* +* 1.351000000e+00 0 0 +GRID* 2355 0 2.013888889e+00-2.803853555e-01* +* 9.040000000e-01 0 0 +GRID* 2356 0 2.166666667e+00-2.825953892e-01* +* 9.040000000e-01 0 0 +GRID* 2357 0 2.013888889e+00-2.758863244e-01* +* 1.053000000e+00 0 0 +GRID* 2358 0 2.166666667e+00-2.799770248e-01* +* 1.053000000e+00 0 0 +GRID* 2359 0 2.013888889e+00-2.709147449e-01* +* 1.202000000e+00 0 0 +GRID* 2360 0 2.166666667e+00-2.763662847e-01* +* 1.202000000e+00 0 0 +GRID* 2361 0 2.013888889e+00-2.654657699e-01* +* 1.351000000e+00 0 0 +GRID* 2362 0 2.166666667e+00-2.721092969e-01* +* 1.351000000e+00 0 0 +GRID* 2363 0 2.319444444e+00 2.976651433e-01* +* 9.040000000e-01 0 0 +GRID* 2364 0 2.319444444e+00 2.936662856e-01* +* 1.053000000e+00 0 0 +GRID* 2365 0 2.319444444e+00 2.893947322e-01* +* 1.202000000e+00 0 0 +GRID* 2366 0 2.319444444e+00 2.847809350e-01* +* 1.351000000e+00 0 0 +GRID* 2367 0 2.472222222e+00 2.999619034e-01* +* 9.040000000e-01 0 0 +GRID* 2368 0 2.472222222e+00 2.969614924e-01* +* 1.053000000e+00 0 0 +GRID* 2369 0 2.472222222e+00 2.934238581e-01* +* 1.202000000e+00 0 0 +GRID* 2370 0 2.472222222e+00 2.896037697e-01* +* 1.351000000e+00 0 0 +GRID* 2371 0 2.319444444e+00-2.808219171e-01* +* 9.040000000e-01 0 0 +GRID* 2372 0 2.472222222e+00-2.743606834e-01* +* 9.040000000e-01 0 0 +GRID* 2373 0 2.319444444e+00-2.798696899e-01* +* 1.053000000e+00 0 0 +GRID* 2374 0 2.472222222e+00-2.755818548e-01* +* 1.053000000e+00 0 0 +GRID* 2375 0 2.319444444e+00-2.782684696e-01* +* 1.202000000e+00 0 0 +GRID* 2376 0 2.472222222e+00-2.756929596e-01* +* 1.202000000e+00 0 0 +GRID* 2377 0 2.319444444e+00-2.757776771e-01* +* 1.351000000e+00 0 0 +GRID* 2378 0 2.472222222e+00-2.751623305e-01* +* 1.351000000e+00 0 0 +GRID* 2379 0 2.625000000e+00 3.003289573e-01* +* 9.040000000e-01 0 0 +GRID* 2380 0 2.625000000e+00 2.980542018e-01* +* 1.053000000e+00 0 0 +GRID* 2381 0 2.625000000e+00 2.955247564e-01* +* 1.202000000e+00 0 0 +GRID* 2382 0 2.625000000e+00 2.925350423e-01* +* 1.351000000e+00 0 0 +GRID* 2383 0 2.777777778e+00 2.985553547e-01* +* 9.040000000e-01 0 0 +GRID* 2384 0 2.777777778e+00 2.972384497e-01* +* 1.053000000e+00 0 0 +GRID* 2385 0 2.777777778e+00 2.954469137e-01* +* 1.202000000e+00 0 0 +GRID* 2386 0 2.777777778e+00 2.934036348e-01* +* 1.351000000e+00 0 0 +GRID* 2387 0 2.625000000e+00-2.640511381e-01* +* 9.040000000e-01 0 0 +GRID* 2388 0 2.777777778e+00-2.503555803e-01* +* 9.040000000e-01 0 0 +GRID* 2389 0 2.625000000e+00-2.666533731e-01* +* 1.053000000e+00 0 0 +GRID* 2390 0 2.777777778e+00-2.543466977e-01* +* 1.053000000e+00 0 0 +GRID* 2391 0 2.625000000e+00-2.688163185e-01* +* 1.202000000e+00 0 0 +GRID* 2392 0 2.777777778e+00-2.577239993e-01* +* 1.202000000e+00 0 0 +GRID* 2393 0 2.625000000e+00-2.700374899e-01* +* 1.351000000e+00 0 0 +GRID* 2394 0 2.777777778e+00-2.607077993e-01* +* 1.351000000e+00 0 0 +GRID* 2395 0 2.930555556e+00 2.946479970e-01* +* 9.040000000e-01 0 0 +GRID* 2396 0 2.930555556e+00 2.941502400e-01* +* 1.053000000e+00 0 0 +GRID* 2397 0 2.930555556e+00 2.933992103e-01* +* 1.202000000e+00 0 0 +GRID* 2398 0 2.930555556e+00 2.921063863e-01* +* 1.351000000e+00 0 0 +GRID* 2399 0 3.083333333e+00 2.885633070e-01* +* 9.040000000e-01 0 0 +GRID* 2400 0 3.083333333e+00 2.889456225e-01* +* 1.053000000e+00 0 0 +GRID* 2401 0 3.083333333e+00 2.889587091e-01* +* 1.202000000e+00 0 0 +GRID* 2402 0 3.083333333e+00 2.887491404e-01* +* 1.351000000e+00 0 0 +GRID* 2403 0 2.930555556e+00-2.339113055e-01* +* 9.040000000e-01 0 0 +GRID* 2404 0 3.083333333e+00-2.154001264e-01* +* 9.040000000e-01 0 0 +GRID* 2405 0 2.930555556e+00-2.389032039e-01* +* 1.053000000e+00 0 0 +GRID* 2406 0 3.083333333e+00-2.211372840e-01* +* 1.053000000e+00 0 0 +GRID* 2407 0 2.930555556e+00-2.435822531e-01* +* 1.202000000e+00 0 0 +GRID* 2408 0 3.083333333e+00-2.266111844e-01* +* 1.202000000e+00 0 0 +GRID* 2409 0 2.930555556e+00-2.476630992e-01* +* 1.351000000e+00 0 0 +GRID* 2410 0 3.083333333e+00-2.318659265e-01* +* 1.351000000e+00 0 0 +GRID* 2411 0 3.236111111e+00 2.802027724e-01* +* 9.040000000e-01 0 0 +GRID* 2412 0 3.236111111e+00 2.814796101e-01* +* 1.053000000e+00 0 0 +GRID* 2413 0 3.236111111e+00 2.824190509e-01* +* 1.202000000e+00 0 0 +GRID* 2414 0 3.236111111e+00 2.829520065e-01* +* 1.351000000e+00 0 0 +GRID* 2415 0 3.388888889e+00 2.697352744e-01* +* 9.040000000e-01 0 0 +GRID* 2416 0 3.388888889e+00 2.717674376e-01* +* 1.053000000e+00 0 0 +GRID* 2417 0 3.388888889e+00 2.735574426e-01* +* 1.202000000e+00 0 0 +GRID* 2418 0 3.388888889e+00 2.750467280e-01* +* 1.351000000e+00 0 0 +GRID* 2419 0 3.236111111e+00-1.951690608e-01* +* 9.040000000e-01 0 0 +GRID* 2420 0 3.388888889e+00-1.738571930e-01* +* 9.040000000e-01 0 0 +GRID* 2421 0 3.236111111e+00-2.015469413e-01* +* 1.053000000e+00 0 0 +GRID* 2422 0 3.388888889e+00-1.805597089e-01* +* 1.053000000e+00 0 0 +GRID* 2423 0 3.236111111e+00-2.076847639e-01* +* 1.202000000e+00 0 0 +GRID* 2424 0 3.388888889e+00-1.871884426e-01* +* 1.202000000e+00 0 0 +GRID* 2425 0 3.236111111e+00-2.135782161e-01* +* 1.351000000e+00 0 0 +GRID* 2426 0 3.388888889e+00-1.936469541e-01* +* 1.351000000e+00 0 0 +GRID* 2427 0 3.541666667e+00 2.569080023e-01* +* 9.040000000e-01 0 0 +GRID* 2428 0 3.541666667e+00 2.598946432e-01* +* 1.053000000e+00 0 0 +GRID* 2429 0 3.541666667e+00 2.624630101e-01* +* 1.202000000e+00 0 0 +GRID* 2430 0 3.541666667e+00 2.647743910e-01* +* 1.351000000e+00 0 0 +GRID* 2431 0 3.694444444e+00 2.421319422e-01* +* 9.040000000e-01 0 0 +GRID* 2432 0 3.694444444e+00 2.457108236e-01* +* 1.053000000e+00 0 0 +GRID* 2433 0 3.694444444e+00 2.491809669e-01* +* 1.202000000e+00 0 0 +GRID* 2434 0 3.694444444e+00 2.522704562e-01* +* 1.351000000e+00 0 0 +GRID* 2435 0 3.541666667e+00-1.517860412e-01* +* 9.040000000e-01 0 0 +GRID* 2436 0 3.694444444e+00-1.295157760e-01* +* 9.040000000e-01 0 0 +GRID* 2437 0 3.541666667e+00-1.587436021e-01* +* 1.053000000e+00 0 0 +GRID* 2438 0 3.694444444e+00-1.364904370e-01* +* 1.053000000e+00 0 0 +GRID* 2439 0 3.541666667e+00-1.656104429e-01* +* 1.202000000e+00 0 0 +GRID* 2440 0 3.694444444e+00-1.434737123e-01* +* 1.202000000e+00 0 0 +GRID* 2441 0 3.541666667e+00-1.724245694e-01* +* 1.351000000e+00 0 0 +GRID* 2442 0 3.694444444e+00-1.504330532e-01* +* 1.351000000e+00 0 0 +GRID* 2443 0 3.847222222e+00 2.252621935e-01* +* 9.040000000e-01 0 0 +GRID* 2444 0 3.847222222e+00 2.296740384e-01* +* 1.053000000e+00 0 0 +GRID* 2445 0 3.847222222e+00 2.336953634e-01* +* 1.202000000e+00 0 0 +GRID* 2446 0 3.847222222e+00 2.376217693e-01* +* 1.351000000e+00 0 0 +GRID* 2447 0 3.847222222e+00-1.074623843e-01* +* 9.040000000e-01 0 0 +GRID* 2448 0 3.847222222e+00-1.142999164e-01* +* 1.053000000e+00 0 0 +GRID* 2449 0 3.847222222e+00-1.212175440e-01* +* 1.202000000e+00 0 0 +GRID* 2450 0 3.847222222e+00-1.281601065e-01* +* 1.351000000e+00 0 0 +GRID* 2451 0 1.555555556e+00 2.454865777e-01* +* 9.040000000e-01 0 0 +GRID* 2452 0 1.555555556e+00 2.329865777e-01* +* 9.040000000e-01 0 0 +GRID* 2453 0 1.555555556e+00 2.372613571e-01* +* 1.053000000e+00 0 0 +GRID* 2454 0 1.555555556e+00 2.247613571e-01* +* 1.053000000e+00 0 0 +GRID* 2455 0 1.555555556e+00 2.284562610e-01* +* 1.202000000e+00 0 0 +GRID* 2456 0 1.555555556e+00 2.159562610e-01* +* 1.202000000e+00 0 0 +GRID* 2457 0 1.555555556e+00 2.187530839e-01* +* 1.351000000e+00 0 0 +GRID* 2458 0 1.555555556e+00 2.062530839e-01* +* 1.351000000e+00 0 0 +GRID* 2459 0 1.555555556e+00 2.080266504e-01* +* 1.500000000e+00 0 0 +GRID* 2460 0 1.555555556e+00 1.955266504e-01* +* 1.500000000e+00 0 0 +GRID* 2461 0 1.555555556e+00-2.433781722e-01* +* 9.040000000e-01 0 0 +GRID* 2462 0 1.555555556e+00-2.308781722e-01* +* 9.040000000e-01 0 0 +GRID* 2463 0 1.555555556e+00-2.357263323e-01* +* 1.053000000e+00 0 0 +GRID* 2464 0 1.555555556e+00-2.232263323e-01* +* 1.053000000e+00 0 0 +GRID* 2465 0 1.555555556e+00-2.274893803e-01* +* 1.202000000e+00 0 0 +GRID* 2466 0 1.555555556e+00-2.149893803e-01* +* 1.202000000e+00 0 0 +GRID* 2467 0 1.555555556e+00-2.182428165e-01* +* 1.351000000e+00 0 0 +GRID* 2468 0 1.555555556e+00-2.057428165e-01* +* 1.351000000e+00 0 0 +GRID* 2469 0 1.555555556e+00-2.080093658e-01* +* 1.500000000e+00 0 0 +GRID* 2470 0 1.555555556e+00-1.955093658e-01* +* 1.500000000e+00 0 0 +GRID* 2471 0 1.861111111e+00 2.666585526e-01* +* 9.040000000e-01 0 0 +GRID* 2472 0 1.861111111e+00 2.541585526e-01* +* 9.040000000e-01 0 0 +GRID* 2473 0 1.861111111e+00 2.603380656e-01* +* 1.053000000e+00 0 0 +GRID* 2474 0 1.861111111e+00 2.478380656e-01* +* 1.053000000e+00 0 0 +GRID* 2475 0 1.861111111e+00 2.536845782e-01* +* 1.202000000e+00 0 0 +GRID* 2476 0 1.861111111e+00 2.411845782e-01* +* 1.202000000e+00 0 0 +GRID* 2477 0 1.861111111e+00 2.465594774e-01* +* 1.351000000e+00 0 0 +GRID* 2478 0 1.861111111e+00 2.340594774e-01* +* 1.351000000e+00 0 0 +GRID* 2479 0 1.861111111e+00 2.390323577e-01* +* 1.500000000e+00 0 0 +GRID* 2480 0 1.861111111e+00 2.265323577e-01* +* 1.500000000e+00 0 0 +GRID* 2481 0 1.861111111e+00-2.620078401e-01* +* 9.040000000e-01 0 0 +GRID* 2482 0 1.861111111e+00-2.495078401e-01* +* 9.040000000e-01 0 0 +GRID* 2483 0 1.861111111e+00-2.564255800e-01* +* 1.053000000e+00 0 0 +GRID* 2484 0 1.861111111e+00-2.439255800e-01* +* 1.053000000e+00 0 0 +GRID* 2485 0 1.861111111e+00-2.503504347e-01* +* 1.202000000e+00 0 0 +GRID* 2486 0 1.861111111e+00-2.378504347e-01* +* 1.202000000e+00 0 0 +GRID* 2487 0 1.861111111e+00-2.438013702e-01* +* 1.351000000e+00 0 0 +GRID* 2488 0 1.861111111e+00-2.313013702e-01* +* 1.351000000e+00 0 0 +GRID* 2489 0 1.861111111e+00-2.368489850e-01* +* 1.500000000e+00 0 0 +GRID* 2490 0 1.861111111e+00-2.243489850e-01* +* 1.500000000e+00 0 0 +GRID* 2491 0 2.166666667e+00 2.807957160e-01* +* 9.040000000e-01 0 0 +GRID* 2492 0 2.166666667e+00 2.682957160e-01* +* 9.040000000e-01 0 0 +GRID* 2493 0 2.166666667e+00 2.760889628e-01* +* 1.053000000e+00 0 0 +GRID* 2494 0 2.166666667e+00 2.635889628e-01* +* 1.053000000e+00 0 0 +GRID* 2495 0 2.166666667e+00 2.709512863e-01* +* 1.202000000e+00 0 0 +GRID* 2496 0 2.166666667e+00 2.584512863e-01* +* 1.202000000e+00 0 0 +GRID* 2497 0 2.166666667e+00 2.654394385e-01* +* 1.351000000e+00 0 0 +GRID* 2498 0 2.166666667e+00 2.529394385e-01* +* 1.351000000e+00 0 0 +GRID* 2499 0 2.166666667e+00 2.596301068e-01* +* 1.500000000e+00 0 0 +GRID* 2500 0 2.166666667e+00 2.471301068e-01* +* 1.500000000e+00 0 0 +GRID* 2501 0 2.166666667e+00-2.700953892e-01* +* 9.040000000e-01 0 0 +GRID* 2502 0 2.166666667e+00-2.575953892e-01* +* 9.040000000e-01 0 0 +GRID* 2503 0 2.166666667e+00-2.674770248e-01* +* 1.053000000e+00 0 0 +GRID* 2504 0 2.166666667e+00-2.549770248e-01* +* 1.053000000e+00 0 0 +GRID* 2505 0 2.166666667e+00-2.638662847e-01* +* 1.202000000e+00 0 0 +GRID* 2506 0 2.166666667e+00-2.513662847e-01* +* 1.202000000e+00 0 0 +GRID* 2507 0 2.166666667e+00-2.596092969e-01* +* 1.351000000e+00 0 0 +GRID* 2508 0 2.166666667e+00-2.471092969e-01* +* 1.351000000e+00 0 0 +GRID* 2509 0 2.166666667e+00-2.548216498e-01* +* 1.500000000e+00 0 0 +GRID* 2510 0 2.166666667e+00-2.423216498e-01* +* 1.500000000e+00 0 0 +GRID* 2511 0 2.472222222e+00 2.874619034e-01* +* 9.040000000e-01 0 0 +GRID* 2512 0 2.472222222e+00 2.749619034e-01* +* 9.040000000e-01 0 0 +GRID* 2513 0 2.472222222e+00 2.844614924e-01* +* 1.053000000e+00 0 0 +GRID* 2514 0 2.472222222e+00 2.719614924e-01* +* 1.053000000e+00 0 0 +GRID* 2515 0 2.472222222e+00 2.809238581e-01* +* 1.202000000e+00 0 0 +GRID* 2516 0 2.472222222e+00 2.684238581e-01* +* 1.202000000e+00 0 0 +GRID* 2517 0 2.472222222e+00 2.771037697e-01* +* 1.351000000e+00 0 0 +GRID* 2518 0 2.472222222e+00 2.646037697e-01* +* 1.351000000e+00 0 0 +GRID* 2519 0 2.472222222e+00 2.729937485e-01* +* 1.500000000e+00 0 0 +GRID* 2520 0 2.472222222e+00 2.604937485e-01* +* 1.500000000e+00 0 0 +GRID* 2521 0 2.472222222e+00-2.618606834e-01* +* 9.040000000e-01 0 0 +GRID* 2522 0 2.472222222e+00-2.493606834e-01* +* 9.040000000e-01 0 0 +GRID* 2523 0 2.472222222e+00-2.630818548e-01* +* 1.053000000e+00 0 0 +GRID* 2524 0 2.472222222e+00-2.505818548e-01* +* 1.053000000e+00 0 0 +GRID* 2525 0 2.472222222e+00-2.631929596e-01* +* 1.202000000e+00 0 0 +GRID* 2526 0 2.472222222e+00-2.506929596e-01* +* 1.202000000e+00 0 0 +GRID* 2527 0 2.472222222e+00-2.626623305e-01* +* 1.351000000e+00 0 0 +GRID* 2528 0 2.472222222e+00-2.501623305e-01* +* 1.351000000e+00 0 0 +GRID* 2529 0 2.472222222e+00-2.614338628e-01* +* 1.500000000e+00 0 0 +GRID* 2530 0 2.472222222e+00-2.489338628e-01* +* 1.500000000e+00 0 0 +GRID* 2531 0 2.777777778e+00 2.860553547e-01* +* 9.040000000e-01 0 0 +GRID* 2532 0 2.777777778e+00 2.735553547e-01* +* 9.040000000e-01 0 0 +GRID* 2533 0 2.777777778e+00 2.847384497e-01* +* 1.053000000e+00 0 0 +GRID* 2534 0 2.777777778e+00 2.722384497e-01* +* 1.053000000e+00 0 0 +GRID* 2535 0 2.777777778e+00 2.829469137e-01* +* 1.202000000e+00 0 0 +GRID* 2536 0 2.777777778e+00 2.704469137e-01* +* 1.202000000e+00 0 0 +GRID* 2537 0 2.777777778e+00 2.809036348e-01* +* 1.351000000e+00 0 0 +GRID* 2538 0 2.777777778e+00 2.684036348e-01* +* 1.351000000e+00 0 0 +GRID* 2539 0 2.777777778e+00 2.784669636e-01* +* 1.500000000e+00 0 0 +GRID* 2540 0 2.777777778e+00 2.659669636e-01* +* 1.500000000e+00 0 0 +GRID* 2541 0 2.777777778e+00-2.378555803e-01* +* 9.040000000e-01 0 0 +GRID* 2542 0 2.777777778e+00-2.253555803e-01* +* 9.040000000e-01 0 0 +GRID* 2543 0 2.777777778e+00-2.418466977e-01* +* 1.053000000e+00 0 0 +GRID* 2544 0 2.777777778e+00-2.293466977e-01* +* 1.053000000e+00 0 0 +GRID* 2545 0 2.777777778e+00-2.452239993e-01* +* 1.202000000e+00 0 0 +GRID* 2546 0 2.777777778e+00-2.327239993e-01* +* 1.202000000e+00 0 0 +GRID* 2547 0 2.777777778e+00-2.482077993e-01* +* 1.351000000e+00 0 0 +GRID* 2548 0 2.777777778e+00-2.357077993e-01* +* 1.351000000e+00 0 0 +GRID* 2549 0 2.777777778e+00-2.504722361e-01* +* 1.500000000e+00 0 0 +GRID* 2550 0 2.777777778e+00-2.379722361e-01* +* 1.500000000e+00 0 0 +GRID* 2551 0 3.083333333e+00 2.760633070e-01* +* 9.040000000e-01 0 0 +GRID* 2552 0 3.083333333e+00 2.635633070e-01* +* 9.040000000e-01 0 0 +GRID* 2553 0 3.083333333e+00 2.764456225e-01* +* 1.053000000e+00 0 0 +GRID* 2554 0 3.083333333e+00 2.639456225e-01* +* 1.053000000e+00 0 0 +GRID* 2555 0 3.083333333e+00 2.764587091e-01* +* 1.202000000e+00 0 0 +GRID* 2556 0 3.083333333e+00 2.639587091e-01* +* 1.202000000e+00 0 0 +GRID* 2557 0 3.083333333e+00 2.762491404e-01* +* 1.351000000e+00 0 0 +GRID* 2558 0 3.083333333e+00 2.637491404e-01* +* 1.351000000e+00 0 0 +GRID* 2559 0 3.083333333e+00 2.754981108e-01* +* 1.500000000e+00 0 0 +GRID* 2560 0 3.083333333e+00 2.629981108e-01* +* 1.500000000e+00 0 0 +GRID* 2561 0 3.083333333e+00-2.029001264e-01* +* 9.040000000e-01 0 0 +GRID* 2562 0 3.083333333e+00-1.904001264e-01* +* 9.040000000e-01 0 0 +GRID* 2563 0 3.083333333e+00-2.086372840e-01* +* 1.053000000e+00 0 0 +GRID* 2564 0 3.083333333e+00-1.961372840e-01* +* 1.053000000e+00 0 0 +GRID* 2565 0 3.083333333e+00-2.141111844e-01* +* 1.202000000e+00 0 0 +GRID* 2566 0 3.083333333e+00-2.016111844e-01* +* 1.202000000e+00 0 0 +GRID* 2567 0 3.083333333e+00-2.193659265e-01* +* 1.351000000e+00 0 0 +GRID* 2568 0 3.083333333e+00-2.068659265e-01* +* 1.351000000e+00 0 0 +GRID* 2569 0 3.083333333e+00-2.240727752e-01* +* 1.500000000e+00 0 0 +GRID* 2570 0 3.083333333e+00-2.115727752e-01* +* 1.500000000e+00 0 0 +GRID* 2571 0 3.388888889e+00 2.572352744e-01* +* 9.040000000e-01 0 0 +GRID* 2572 0 3.388888889e+00 2.447352744e-01* +* 9.040000000e-01 0 0 +GRID* 2573 0 3.388888889e+00 2.592674376e-01* +* 1.053000000e+00 0 0 +GRID* 2574 0 3.388888889e+00 2.467674376e-01* +* 1.053000000e+00 0 0 +GRID* 2575 0 3.388888889e+00 2.610574426e-01* +* 1.202000000e+00 0 0 +GRID* 2576 0 3.388888889e+00 2.485574426e-01* +* 1.202000000e+00 0 0 +GRID* 2577 0 3.388888889e+00 2.625467280e-01* +* 1.351000000e+00 0 0 +GRID* 2578 0 3.388888889e+00 2.500467280e-01* +* 1.351000000e+00 0 0 +GRID* 2579 0 3.388888889e+00 2.636068014e-01* +* 1.500000000e+00 0 0 +GRID* 2580 0 3.388888889e+00 2.511068014e-01* +* 1.500000000e+00 0 0 +GRID* 2581 0 3.388888889e+00-1.613571930e-01* +* 9.040000000e-01 0 0 +GRID* 2582 0 3.388888889e+00-1.488571930e-01* +* 9.040000000e-01 0 0 +GRID* 2583 0 3.388888889e+00-1.680597089e-01* +* 1.053000000e+00 0 0 +GRID* 2584 0 3.388888889e+00-1.555597089e-01* +* 1.053000000e+00 0 0 +GRID* 2585 0 3.388888889e+00-1.746884426e-01* +* 1.202000000e+00 0 0 +GRID* 2586 0 3.388888889e+00-1.621884426e-01* +* 1.202000000e+00 0 0 +GRID* 2587 0 3.388888889e+00-1.811469541e-01* +* 1.351000000e+00 0 0 +GRID* 2588 0 3.388888889e+00-1.686469541e-01* +* 1.351000000e+00 0 0 +GRID* 2589 0 3.388888889e+00-1.873975258e-01* +* 1.500000000e+00 0 0 +GRID* 2590 0 3.388888889e+00-1.748975258e-01* +* 1.500000000e+00 0 0 +GRID* 2591 0 3.694444444e+00 2.296319422e-01* +* 9.040000000e-01 0 0 +GRID* 2592 0 3.694444444e+00 2.171319422e-01* +* 9.040000000e-01 0 0 +GRID* 2593 0 3.694444444e+00 2.332108236e-01* +* 1.053000000e+00 0 0 +GRID* 2594 0 3.694444444e+00 2.207108236e-01* +* 1.053000000e+00 0 0 +GRID* 2595 0 3.694444444e+00 2.366809669e-01* +* 1.202000000e+00 0 0 +GRID* 2596 0 3.694444444e+00 2.241809669e-01* +* 1.202000000e+00 0 0 +GRID* 2597 0 3.694444444e+00 2.397704562e-01* +* 1.351000000e+00 0 0 +GRID* 2598 0 3.694444444e+00 2.272704562e-01* +* 1.351000000e+00 0 0 +GRID* 2599 0 3.694444444e+00 2.426074058e-01* +* 1.500000000e+00 0 0 +GRID* 2600 0 3.694444444e+00 2.301074058e-01* +* 1.500000000e+00 0 0 +GRID* 2601 0 3.694444444e+00-1.170157760e-01* +* 9.040000000e-01 0 0 +GRID* 2602 0 3.694444444e+00-1.045157760e-01* +* 9.040000000e-01 0 0 +GRID* 2603 0 3.694444444e+00-1.239904370e-01* +* 1.053000000e+00 0 0 +GRID* 2604 0 3.694444444e+00-1.114904370e-01* +* 1.053000000e+00 0 0 +GRID* 2605 0 3.694444444e+00-1.309737123e-01* +* 1.202000000e+00 0 0 +GRID* 2606 0 3.694444444e+00-1.184737123e-01* +* 1.202000000e+00 0 0 +GRID* 2607 0 3.694444444e+00-1.379330532e-01* +* 1.351000000e+00 0 0 +GRID* 2608 0 3.694444444e+00-1.254330532e-01* +* 1.351000000e+00 0 0 +GRID* 2609 0 3.694444444e+00-1.448636928e-01* +* 1.500000000e+00 0 0 +GRID* 2610 0 3.694444444e+00-1.323636928e-01* +* 1.500000000e+00 0 0 +GRID* 2611 0 1.481857639e+00 1.973253360e-01* +* 1.656262500e+00 0 0 +GRID* 2612 0 1.560937500e+00 1.957138584e-01* +* 1.812525000e+00 0 0 +GRID* 2613 0 1.640017361e+00 1.941023808e-01* +* 1.968787500e+00 0 0 +GRID* 2614 0 1.719097222e+00 1.924909032e-01* +* 2.125050000e+00 0 0 +GRID* 2615 0 1.633246528e+00 2.187050706e-01* +* 1.656262500e+00 0 0 +GRID* 2616 0 1.710937500e+00 2.168834909e-01* +* 1.812525000e+00 0 0 +GRID* 2617 0 1.788628472e+00 2.150619111e-01* +* 1.968787500e+00 0 0 +GRID* 2618 0 1.866319444e+00 2.132403314e-01* +* 2.125050000e+00 0 0 +GRID* 2619 0 1.481857639e+00-1.981449107e-01* +* 1.656262500e+00 0 0 +GRID* 2620 0 1.633246528e+00-2.186861649e-01* +* 1.656262500e+00 0 0 +GRID* 2621 0 1.560937500e+00-1.965251492e-01* +* 1.812525000e+00 0 0 +GRID* 2622 0 1.710937500e+00-2.168629640e-01* +* 1.812525000e+00 0 0 +GRID* 2623 0 1.640017361e+00-1.949053876e-01* +* 1.968787500e+00 0 0 +GRID* 2624 0 1.788628472e+00-2.150397631e-01* +* 1.968787500e+00 0 0 +GRID* 2625 0 1.719097222e+00-1.932856261e-01* +* 2.125050000e+00 0 0 +GRID* 2626 0 1.866319444e+00-2.132165621e-01* +* 2.125050000e+00 0 0 +GRID* 2627 0 1.784635417e+00 2.359659370e-01* +* 1.656262500e+00 0 0 +GRID* 2628 0 1.860937500e+00 2.339809841e-01* +* 1.812525000e+00 0 0 +GRID* 2629 0 1.937239583e+00 2.319960313e-01* +* 1.968787500e+00 0 0 +GRID* 2630 0 2.013541667e+00 2.300110785e-01* +* 2.125050000e+00 0 0 +GRID* 2631 0 1.936024306e+00 2.494186062e-01* +* 1.656262500e+00 0 0 +GRID* 2632 0 2.010937500e+00 2.473048546e-01* +* 1.812525000e+00 0 0 +GRID* 2633 0 2.085850694e+00 2.451911031e-01* +* 1.968787500e+00 0 0 +GRID* 2634 0 2.160763889e+00 2.430773515e-01* +* 2.125050000e+00 0 0 +GRID* 2635 0 1.784635417e+00-2.349382116e-01* +* 1.656262500e+00 0 0 +GRID* 2636 0 1.936024306e+00-2.472527198e-01* +* 1.656262500e+00 0 0 +GRID* 2637 0 1.860937500e+00-2.329570402e-01* +* 1.812525000e+00 0 0 +GRID* 2638 0 2.010937500e+00-2.451564547e-01* +* 1.812525000e+00 0 0 +GRID* 2639 0 1.937239583e+00-2.309758687e-01* +* 1.968787500e+00 0 0 +GRID* 2640 0 2.085850694e+00-2.430601895e-01* +* 1.968787500e+00 0 0 +GRID* 2641 0 2.013541667e+00-2.289946973e-01* +* 2.125050000e+00 0 0 +GRID* 2642 0 2.160763889e+00-2.409639244e-01* +* 2.125050000e+00 0 0 +GRID* 2643 0 2.087413194e+00 2.605524519e-01* +* 1.656262500e+00 0 0 +GRID* 2644 0 2.160937500e+00 2.583352244e-01* +* 1.812525000e+00 0 0 +GRID* 2645 0 2.234461806e+00 2.561179969e-01* +* 1.968787500e+00 0 0 +GRID* 2646 0 2.307986111e+00 2.539007695e-01* +* 2.125050000e+00 0 0 +GRID* 2647 0 2.238802083e+00 2.698278929e-01* +* 1.656262500e+00 0 0 +GRID* 2648 0 2.310937500e+00 2.675256791e-01* +* 1.812525000e+00 0 0 +GRID* 2649 0 2.383072917e+00 2.652234653e-01* +* 1.968787500e+00 0 0 +GRID* 2650 0 2.455208333e+00 2.629212515e-01* +* 2.125050000e+00 0 0 +GRID* 2651 0 2.087413194e+00-2.572016608e-01* +* 1.656262500e+00 0 0 +GRID* 2652 0 2.238802083e+00-2.650607046e-01* +* 1.656262500e+00 0 0 +GRID* 2653 0 2.160937500e+00-2.550126969e-01* +* 1.812525000e+00 0 0 +GRID* 2654 0 2.310937500e+00-2.627997595e-01* +* 1.812525000e+00 0 0 +GRID* 2655 0 2.234461806e+00-2.528237330e-01* +* 1.968787500e+00 0 0 +GRID* 2656 0 2.383072917e+00-2.605388144e-01* +* 1.968787500e+00 0 0 +GRID* 2657 0 2.307986111e+00-2.506347691e-01* +* 2.125050000e+00 0 0 +GRID* 2658 0 2.455208333e+00-2.582778693e-01* +* 2.125050000e+00 0 0 +GRID* 2659 0 2.390190972e+00 2.773255312e-01* +* 1.656262500e+00 0 0 +GRID* 2660 0 2.460937500e+00 2.749561622e-01* +* 1.812525000e+00 0 0 +GRID* 2661 0 2.531684028e+00 2.725867932e-01* +* 1.968787500e+00 0 0 +GRID* 2662 0 2.602430556e+00 2.702174242e-01* +* 2.125050000e+00 0 0 +GRID* 2663 0 2.541579861e+00 2.830732275e-01* +* 1.656262500e+00 0 0 +GRID* 2664 0 2.610937500e+00 2.806527066e-01* +* 1.812525000e+00 0 0 +GRID* 2665 0 2.680295139e+00 2.782321856e-01* +* 1.968787500e+00 0 0 +GRID* 2666 0 2.749652778e+00 2.758116647e-01* +* 2.125050000e+00 0 0 +GRID* 2667 0 2.390190972e+00-2.700434143e-01* +* 1.656262500e+00 0 0 +GRID* 2668 0 2.541579861e+00-2.716238762e-01* +* 1.656262500e+00 0 0 +GRID* 2669 0 2.460937500e+00-2.677396148e-01* +* 1.812525000e+00 0 0 +GRID* 2670 0 2.610937500e+00-2.693115609e-01* +* 1.812525000e+00 0 0 +GRID* 2671 0 2.531684028e+00-2.654358153e-01* +* 1.968787500e+00 0 0 +GRID* 2672 0 2.680295139e+00-2.669965663e-01* +* 1.968787500e+00 0 0 +GRID* 2673 0 2.602430556e+00-2.631320157e-01* +* 2.125050000e+00 0 0 +GRID* 2674 0 2.749652778e+00-2.646815718e-01* +* 2.125050000e+00 0 0 +GRID* 2675 0 2.692968750e+00 2.867333092e-01* +* 1.656262500e+00 0 0 +GRID* 2676 0 2.760937500e+00 2.842840455e-01* +* 1.812525000e+00 0 0 +GRID* 2677 0 2.828906250e+00 2.818347818e-01* +* 1.968787500e+00 0 0 +GRID* 2678 0 2.896875000e+00 2.793855180e-01* +* 2.125050000e+00 0 0 +GRID* 2679 0 2.844357639e+00 2.885086096e-01* +* 1.656262500e+00 0 0 +GRID* 2680 0 2.910937500e+00 2.860502557e-01* +* 1.812525000e+00 0 0 +GRID* 2681 0 2.977517361e+00 2.835919017e-01* +* 1.968787500e+00 0 0 +GRID* 2682 0 3.044097222e+00 2.811335477e-01* +* 2.125050000e+00 0 0 +GRID* 2683 0 2.692968750e+00-2.682909398e-01* +* 1.656262500e+00 0 0 +GRID* 2684 0 2.844357639e+00-2.607823286e-01* +* 1.656262500e+00 0 0 +GRID* 2685 0 2.760937500e+00-2.660178775e-01* +* 1.812525000e+00 0 0 +GRID* 2686 0 2.910937500e+00-2.585924211e-01* +* 1.812525000e+00 0 0 +GRID* 2687 0 2.828906250e+00-2.637448152e-01* +* 1.968787500e+00 0 0 +GRID* 2688 0 2.977517361e+00-2.564025136e-01* +* 1.968787500e+00 0 0 +GRID* 2689 0 2.896875000e+00-2.614717529e-01* +* 2.125050000e+00 0 0 +GRID* 2690 0 3.044097222e+00-2.542126061e-01* +* 2.125050000e+00 0 0 +GRID* 2691 0 2.995746528e+00 2.881146642e-01* +* 1.656262500e+00 0 0 +GRID* 2692 0 3.060937500e+00 2.856644584e-01* +* 1.812525000e+00 0 0 +GRID* 2693 0 3.126128472e+00 2.832142526e-01* +* 1.968787500e+00 0 0 +GRID* 2694 0 3.191319444e+00 2.807640468e-01* +* 2.125050000e+00 0 0 +GRID* 2695 0 3.147135417e+00 2.855821824e-01* +* 1.656262500e+00 0 0 +GRID* 2696 0 3.210937500e+00 2.831662540e-01* +* 1.812525000e+00 0 0 +GRID* 2697 0 3.274739583e+00 2.807503256e-01* +* 1.968787500e+00 0 0 +GRID* 2698 0 3.338541667e+00 2.783343972e-01* +* 2.125050000e+00 0 0 +GRID* 2699 0 2.995746528e+00-2.493195671e-01* +* 1.656262500e+00 0 0 +GRID* 2700 0 3.147135417e+00-2.346445658e-01* +* 1.656262500e+00 0 0 +GRID* 2701 0 3.060937500e+00-2.472422736e-01* +* 1.812525000e+00 0 0 +GRID* 2702 0 3.210937500e+00-2.327163563e-01* +* 1.812525000e+00 0 0 +GRID* 2703 0 3.126128472e+00-2.451649801e-01* +* 1.968787500e+00 0 0 +GRID* 2704 0 3.274739583e+00-2.307881469e-01* +* 1.968787500e+00 0 0 +GRID* 2705 0 3.191319444e+00-2.430876867e-01* +* 2.125050000e+00 0 0 +GRID* 2706 0 3.338541667e+00-2.288599375e-01* +* 2.125050000e+00 0 0 +GRID* 2707 0 3.298524306e+00 2.809029640e-01* +* 1.656262500e+00 0 0 +GRID* 2708 0 3.360937500e+00 2.785365069e-01* +* 1.812525000e+00 0 0 +GRID* 2709 0 3.423350694e+00 2.761700498e-01* +* 1.968787500e+00 0 0 +GRID* 2710 0 3.485763889e+00 2.738035927e-01* +* 2.125050000e+00 0 0 +GRID* 2711 0 3.449913194e+00 2.738202336e-01* +* 1.656262500e+00 0 0 +GRID* 2712 0 3.510937500e+00 2.715336659e-01* +* 1.812525000e+00 0 0 +GRID* 2713 0 3.571961806e+00 2.692470982e-01* +* 1.968787500e+00 0 0 +GRID* 2714 0 3.632986111e+00 2.669605304e-01* +* 2.125050000e+00 0 0 +GRID* 2715 0 3.298524306e+00-2.175463015e-01* +* 1.656262500e+00 0 0 +GRID* 2716 0 3.449913194e+00-1.983207618e-01* +* 1.656262500e+00 0 0 +GRID* 2717 0 3.360937500e+00-2.157815397e-01* +* 1.812525000e+00 0 0 +GRID* 2718 0 3.510937500e+00-1.967439978e-01* +* 1.812525000e+00 0 0 +GRID* 2719 0 3.423350694e+00-2.140167779e-01* +* 1.968787500e+00 0 0 +GRID* 2720 0 3.571961806e+00-1.951672338e-01* +* 1.968787500e+00 0 0 +GRID* 2721 0 3.485763889e+00-2.122520160e-01* +* 2.125050000e+00 0 0 +GRID* 2722 0 3.632986111e+00-1.935904698e-01* +* 2.125050000e+00 0 0 +GRID* 2723 0 3.601302083e+00 2.646216234e-01* +* 1.656262500e+00 0 0 +GRID* 2724 0 3.660937500e+00 2.624366925e-01* +* 1.812525000e+00 0 0 +GRID* 2725 0 3.720572917e+00 2.602517616e-01* +* 1.968787500e+00 0 0 +GRID* 2726 0 3.780208333e+00 2.580668307e-01* +* 2.125050000e+00 0 0 +GRID* 2727 0 3.752690972e+00 2.530382552e-01* +* 1.656262500e+00 0 0 +GRID* 2728 0 3.810937500e+00 2.509691045e-01* +* 1.812525000e+00 0 0 +GRID* 2729 0 3.869184028e+00 2.488999539e-01* +* 1.968787500e+00 0 0 +GRID* 2730 0 3.927430556e+00 2.468308032e-01* +* 2.125050000e+00 0 0 +GRID* 2731 0 3.601302083e+00-1.777462719e-01* +* 1.656262500e+00 0 0 +GRID* 2732 0 3.752690972e+00-1.561851948e-01* +* 1.656262500e+00 0 0 +GRID* 2733 0 3.660937500e+00-1.763670441e-01* +* 1.812525000e+00 0 0 +GRID* 2734 0 3.810937500e+00-1.550066969e-01* +* 1.812525000e+00 0 0 +GRID* 2735 0 3.720572917e+00-1.749878163e-01* +* 1.968787500e+00 0 0 +GRID* 2736 0 3.869184028e+00-1.538281990e-01* +* 1.968787500e+00 0 0 +GRID* 2737 0 3.780208333e+00-1.736085885e-01* +* 2.125050000e+00 0 0 +GRID* 2738 0 3.927430556e+00-1.526497010e-01* +* 2.125050000e+00 0 0 +GRID* 2739 0 3.904079861e+00 2.392707173e-01* +* 1.656262500e+00 0 0 +GRID* 2740 0 3.960937500e+00 2.373476940e-01* +* 1.812525000e+00 0 0 +GRID* 2741 0 4.017795139e+00 2.354246707e-01* +* 1.968787500e+00 0 0 +GRID* 2742 0 4.074652778e+00 2.335016474e-01* +* 2.125050000e+00 0 0 +GRID* 2743 0 3.904079861e+00-1.341693837e-01* +* 1.656262500e+00 0 0 +GRID* 2744 0 3.960937500e+00-1.331951146e-01* +* 1.812525000e+00 0 0 +GRID* 2745 0 4.017795139e+00-1.322208454e-01* +* 1.968787500e+00 0 0 +GRID* 2746 0 4.074652778e+00-1.312465763e-01* +* 2.125050000e+00 0 0 +GRID* 2747 0 1.633246528e+00 2.062050706e-01* +* 1.656262500e+00 0 0 +GRID* 2748 0 1.633246528e+00 1.937050706e-01* +* 1.656262500e+00 0 0 +GRID* 2749 0 1.710937500e+00 2.043834909e-01* +* 1.812525000e+00 0 0 +GRID* 2750 0 1.710937500e+00 1.918834909e-01* +* 1.812525000e+00 0 0 +GRID* 2751 0 1.788628472e+00 2.025619111e-01* +* 1.968787500e+00 0 0 +GRID* 2752 0 1.788628472e+00 1.900619111e-01* +* 1.968787500e+00 0 0 +GRID* 2753 0 1.866319444e+00 2.007403314e-01* +* 2.125050000e+00 0 0 +GRID* 2754 0 1.866319444e+00 1.882403314e-01* +* 2.125050000e+00 0 0 +GRID* 2755 0 1.944010417e+00 1.989187517e-01* +* 2.281312500e+00 0 0 +GRID* 2756 0 1.944010417e+00 1.864187517e-01* +* 2.281312500e+00 0 0 +GRID* 2757 0 1.633246528e+00-2.061861649e-01* +* 1.656262500e+00 0 0 +GRID* 2758 0 1.633246528e+00-1.936861649e-01* +* 1.656262500e+00 0 0 +GRID* 2759 0 1.710937500e+00-2.043629640e-01* +* 1.812525000e+00 0 0 +GRID* 2760 0 1.710937500e+00-1.918629640e-01* +* 1.812525000e+00 0 0 +GRID* 2761 0 1.788628472e+00-2.025397631e-01* +* 1.968787500e+00 0 0 +GRID* 2762 0 1.788628472e+00-1.900397631e-01* +* 1.968787500e+00 0 0 +GRID* 2763 0 1.866319444e+00-2.007165621e-01* +* 2.125050000e+00 0 0 +GRID* 2764 0 1.866319444e+00-1.882165621e-01* +* 2.125050000e+00 0 0 +GRID* 2765 0 1.944010417e+00-1.988933612e-01* +* 2.281312500e+00 0 0 +GRID* 2766 0 1.944010417e+00-1.863933612e-01* +* 2.281312500e+00 0 0 +GRID* 2767 0 1.936024306e+00 2.369186062e-01* +* 1.656262500e+00 0 0 +GRID* 2768 0 1.936024306e+00 2.244186062e-01* +* 1.656262500e+00 0 0 +GRID* 2769 0 2.010937500e+00 2.348048546e-01* +* 1.812525000e+00 0 0 +GRID* 2770 0 2.010937500e+00 2.223048546e-01* +* 1.812525000e+00 0 0 +GRID* 2771 0 2.085850694e+00 2.326911031e-01* +* 1.968787500e+00 0 0 +GRID* 2772 0 2.085850694e+00 2.201911031e-01* +* 1.968787500e+00 0 0 +GRID* 2773 0 2.160763889e+00 2.305773515e-01* +* 2.125050000e+00 0 0 +GRID* 2774 0 2.160763889e+00 2.180773515e-01* +* 2.125050000e+00 0 0 +GRID* 2775 0 2.235677083e+00 2.284636000e-01* +* 2.281312500e+00 0 0 +GRID* 2776 0 2.235677083e+00 2.159636000e-01* +* 2.281312500e+00 0 0 +GRID* 2777 0 1.936024306e+00-2.347527198e-01* +* 1.656262500e+00 0 0 +GRID* 2778 0 1.936024306e+00-2.222527198e-01* +* 1.656262500e+00 0 0 +GRID* 2779 0 2.010937500e+00-2.326564547e-01* +* 1.812525000e+00 0 0 +GRID* 2780 0 2.010937500e+00-2.201564547e-01* +* 1.812525000e+00 0 0 +GRID* 2781 0 2.085850694e+00-2.305601895e-01* +* 1.968787500e+00 0 0 +GRID* 2782 0 2.085850694e+00-2.180601895e-01* +* 1.968787500e+00 0 0 +GRID* 2783 0 2.160763889e+00-2.284639244e-01* +* 2.125050000e+00 0 0 +GRID* 2784 0 2.160763889e+00-2.159639244e-01* +* 2.125050000e+00 0 0 +GRID* 2785 0 2.235677083e+00-2.263676593e-01* +* 2.281312500e+00 0 0 +GRID* 2786 0 2.235677083e+00-2.138676593e-01* +* 2.281312500e+00 0 0 +GRID* 2787 0 2.238802083e+00 2.573278929e-01* +* 1.656262500e+00 0 0 +GRID* 2788 0 2.238802083e+00 2.448278929e-01* +* 1.656262500e+00 0 0 +GRID* 2789 0 2.310937500e+00 2.550256791e-01* +* 1.812525000e+00 0 0 +GRID* 2790 0 2.310937500e+00 2.425256791e-01* +* 1.812525000e+00 0 0 +GRID* 2791 0 2.383072917e+00 2.527234653e-01* +* 1.968787500e+00 0 0 +GRID* 2792 0 2.383072917e+00 2.402234653e-01* +* 1.968787500e+00 0 0 +GRID* 2793 0 2.455208333e+00 2.504212515e-01* +* 2.125050000e+00 0 0 +GRID* 2794 0 2.455208333e+00 2.379212515e-01* +* 2.125050000e+00 0 0 +GRID* 2795 0 2.527343750e+00 2.481190376e-01* +* 2.281312500e+00 0 0 +GRID* 2796 0 2.527343750e+00 2.356190376e-01* +* 2.281312500e+00 0 0 +GRID* 2797 0 2.238802083e+00-2.525607046e-01* +* 1.656262500e+00 0 0 +GRID* 2798 0 2.238802083e+00-2.400607046e-01* +* 1.656262500e+00 0 0 +GRID* 2799 0 2.310937500e+00-2.502997595e-01* +* 1.812525000e+00 0 0 +GRID* 2800 0 2.310937500e+00-2.377997595e-01* +* 1.812525000e+00 0 0 +GRID* 2801 0 2.383072917e+00-2.480388144e-01* +* 1.968787500e+00 0 0 +GRID* 2802 0 2.383072917e+00-2.355388144e-01* +* 1.968787500e+00 0 0 +GRID* 2803 0 2.455208333e+00-2.457778693e-01* +* 2.125050000e+00 0 0 +GRID* 2804 0 2.455208333e+00-2.332778693e-01* +* 2.125050000e+00 0 0 +GRID* 2805 0 2.527343750e+00-2.435169241e-01* +* 2.281312500e+00 0 0 +GRID* 2806 0 2.527343750e+00-2.310169241e-01* +* 2.281312500e+00 0 0 +GRID* 2807 0 2.541579861e+00 2.705732275e-01* +* 1.656262500e+00 0 0 +GRID* 2808 0 2.541579861e+00 2.580732275e-01* +* 1.656262500e+00 0 0 +GRID* 2809 0 2.610937500e+00 2.681527066e-01* +* 1.812525000e+00 0 0 +GRID* 2810 0 2.610937500e+00 2.556527066e-01* +* 1.812525000e+00 0 0 +GRID* 2811 0 2.680295139e+00 2.657321856e-01* +* 1.968787500e+00 0 0 +GRID* 2812 0 2.680295139e+00 2.532321856e-01* +* 1.968787500e+00 0 0 +GRID* 2813 0 2.749652778e+00 2.633116647e-01* +* 2.125050000e+00 0 0 +GRID* 2814 0 2.749652778e+00 2.508116647e-01* +* 2.125050000e+00 0 0 +GRID* 2815 0 2.819010417e+00 2.608911437e-01* +* 2.281312500e+00 0 0 +GRID* 2816 0 2.819010417e+00 2.483911437e-01* +* 2.281312500e+00 0 0 +GRID* 2817 0 2.541579861e+00-2.591238762e-01* +* 1.656262500e+00 0 0 +GRID* 2818 0 2.541579861e+00-2.466238762e-01* +* 1.656262500e+00 0 0 +GRID* 2819 0 2.610937500e+00-2.568115609e-01* +* 1.812525000e+00 0 0 +GRID* 2820 0 2.610937500e+00-2.443115609e-01* +* 1.812525000e+00 0 0 +GRID* 2821 0 2.680295139e+00-2.544965663e-01* +* 1.968787500e+00 0 0 +GRID* 2822 0 2.680295139e+00-2.419965663e-01* +* 1.968787500e+00 0 0 +GRID* 2823 0 2.749652778e+00-2.521815718e-01* +* 2.125050000e+00 0 0 +GRID* 2824 0 2.749652778e+00-2.396815718e-01* +* 2.125050000e+00 0 0 +GRID* 2825 0 2.819010417e+00-2.498665773e-01* +* 2.281312500e+00 0 0 +GRID* 2826 0 2.819010417e+00-2.373665773e-01* +* 2.281312500e+00 0 0 +GRID* 2827 0 2.844357639e+00 2.760086096e-01* +* 1.656262500e+00 0 0 +GRID* 2828 0 2.844357639e+00 2.635086096e-01* +* 1.656262500e+00 0 0 +GRID* 2829 0 2.910937500e+00 2.735502557e-01* +* 1.812525000e+00 0 0 +GRID* 2830 0 2.910937500e+00 2.610502557e-01* +* 1.812525000e+00 0 0 +GRID* 2831 0 2.977517361e+00 2.710919017e-01* +* 1.968787500e+00 0 0 +GRID* 2832 0 2.977517361e+00 2.585919017e-01* +* 1.968787500e+00 0 0 +GRID* 2833 0 3.044097222e+00 2.686335477e-01* +* 2.125050000e+00 0 0 +GRID* 2834 0 3.044097222e+00 2.561335477e-01* +* 2.125050000e+00 0 0 +GRID* 2835 0 3.110677083e+00 2.661751938e-01* +* 2.281312500e+00 0 0 +GRID* 2836 0 3.110677083e+00 2.536751938e-01* +* 2.281312500e+00 0 0 +GRID* 2837 0 2.844357639e+00-2.482823286e-01* +* 1.656262500e+00 0 0 +GRID* 2838 0 2.844357639e+00-2.357823286e-01* +* 1.656262500e+00 0 0 +GRID* 2839 0 2.910937500e+00-2.460924211e-01* +* 1.812525000e+00 0 0 +GRID* 2840 0 2.910937500e+00-2.335924211e-01* +* 1.812525000e+00 0 0 +GRID* 2841 0 2.977517361e+00-2.439025136e-01* +* 1.968787500e+00 0 0 +GRID* 2842 0 2.977517361e+00-2.314025136e-01* +* 1.968787500e+00 0 0 +GRID* 2843 0 3.044097222e+00-2.417126061e-01* +* 2.125050000e+00 0 0 +GRID* 2844 0 3.044097222e+00-2.292126061e-01* +* 2.125050000e+00 0 0 +GRID* 2845 0 3.110677083e+00-2.395226986e-01* +* 2.281312500e+00 0 0 +GRID* 2846 0 3.110677083e+00-2.270226986e-01* +* 2.281312500e+00 0 0 +GRID* 2847 0 3.147135417e+00 2.730821824e-01* +* 1.656262500e+00 0 0 +GRID* 2848 0 3.147135417e+00 2.605821824e-01* +* 1.656262500e+00 0 0 +GRID* 2849 0 3.210937500e+00 2.706662540e-01* +* 1.812525000e+00 0 0 +GRID* 2850 0 3.210937500e+00 2.581662540e-01* +* 1.812525000e+00 0 0 +GRID* 2851 0 3.274739583e+00 2.682503256e-01* +* 1.968787500e+00 0 0 +GRID* 2852 0 3.274739583e+00 2.557503256e-01* +* 1.968787500e+00 0 0 +GRID* 2853 0 3.338541667e+00 2.658343972e-01* +* 2.125050000e+00 0 0 +GRID* 2854 0 3.338541667e+00 2.533343972e-01* +* 2.125050000e+00 0 0 +GRID* 2855 0 3.402343750e+00 2.634184688e-01* +* 2.281312500e+00 0 0 +GRID* 2856 0 3.402343750e+00 2.509184688e-01* +* 2.281312500e+00 0 0 +GRID* 2857 0 3.147135417e+00-2.221445658e-01* +* 1.656262500e+00 0 0 +GRID* 2858 0 3.147135417e+00-2.096445658e-01* +* 1.656262500e+00 0 0 +GRID* 2859 0 3.210937500e+00-2.202163563e-01* +* 1.812525000e+00 0 0 +GRID* 2860 0 3.210937500e+00-2.077163563e-01* +* 1.812525000e+00 0 0 +GRID* 2861 0 3.274739583e+00-2.182881469e-01* +* 1.968787500e+00 0 0 +GRID* 2862 0 3.274739583e+00-2.057881469e-01* +* 1.968787500e+00 0 0 +GRID* 2863 0 3.338541667e+00-2.163599375e-01* +* 2.125050000e+00 0 0 +GRID* 2864 0 3.338541667e+00-2.038599375e-01* +* 2.125050000e+00 0 0 +GRID* 2865 0 3.402343750e+00-2.144317280e-01* +* 2.281312500e+00 0 0 +GRID* 2866 0 3.402343750e+00-2.019317280e-01* +* 2.281312500e+00 0 0 +GRID* 2867 0 3.449913194e+00 2.613202336e-01* +* 1.656262500e+00 0 0 +GRID* 2868 0 3.449913194e+00 2.488202336e-01* +* 1.656262500e+00 0 0 +GRID* 2869 0 3.510937500e+00 2.590336659e-01* +* 1.812525000e+00 0 0 +GRID* 2870 0 3.510937500e+00 2.465336659e-01* +* 1.812525000e+00 0 0 +GRID* 2871 0 3.571961806e+00 2.567470982e-01* +* 1.968787500e+00 0 0 +GRID* 2872 0 3.571961806e+00 2.442470982e-01* +* 1.968787500e+00 0 0 +GRID* 2873 0 3.632986111e+00 2.544605304e-01* +* 2.125050000e+00 0 0 +GRID* 2874 0 3.632986111e+00 2.419605304e-01* +* 2.125050000e+00 0 0 +GRID* 2875 0 3.694010417e+00 2.521739627e-01* +* 2.281312500e+00 0 0 +GRID* 2876 0 3.694010417e+00 2.396739627e-01* +* 2.281312500e+00 0 0 +GRID* 2877 0 3.449913194e+00-1.858207618e-01* +* 1.656262500e+00 0 0 +GRID* 2878 0 3.449913194e+00-1.733207618e-01* +* 1.656262500e+00 0 0 +GRID* 2879 0 3.510937500e+00-1.842439978e-01* +* 1.812525000e+00 0 0 +GRID* 2880 0 3.510937500e+00-1.717439978e-01* +* 1.812525000e+00 0 0 +GRID* 2881 0 3.571961806e+00-1.826672338e-01* +* 1.968787500e+00 0 0 +GRID* 2882 0 3.571961806e+00-1.701672338e-01* +* 1.968787500e+00 0 0 +GRID* 2883 0 3.632986111e+00-1.810904698e-01* +* 2.125050000e+00 0 0 +GRID* 2884 0 3.632986111e+00-1.685904698e-01* +* 2.125050000e+00 0 0 +GRID* 2885 0 3.694010417e+00-1.795137058e-01* +* 2.281312500e+00 0 0 +GRID* 2886 0 3.694010417e+00-1.670137058e-01* +* 2.281312500e+00 0 0 +GRID* 2887 0 3.752690972e+00 2.405382552e-01* +* 1.656262500e+00 0 0 +GRID* 2888 0 3.752690972e+00 2.280382552e-01* +* 1.656262500e+00 0 0 +GRID* 2889 0 3.810937500e+00 2.384691045e-01* +* 1.812525000e+00 0 0 +GRID* 2890 0 3.810937500e+00 2.259691045e-01* +* 1.812525000e+00 0 0 +GRID* 2891 0 3.869184028e+00 2.363999539e-01* +* 1.968787500e+00 0 0 +GRID* 2892 0 3.869184028e+00 2.238999539e-01* +* 1.968787500e+00 0 0 +GRID* 2893 0 3.927430556e+00 2.343308032e-01* +* 2.125050000e+00 0 0 +GRID* 2894 0 3.927430556e+00 2.218308032e-01* +* 2.125050000e+00 0 0 +GRID* 2895 0 3.985677083e+00 2.322616526e-01* +* 2.281312500e+00 0 0 +GRID* 2896 0 3.985677083e+00 2.197616526e-01* +* 2.281312500e+00 0 0 +GRID* 2897 0 3.752690972e+00-1.436851948e-01* +* 1.656262500e+00 0 0 +GRID* 2898 0 3.752690972e+00-1.311851948e-01* +* 1.656262500e+00 0 0 +GRID* 2899 0 3.810937500e+00-1.425066969e-01* +* 1.812525000e+00 0 0 +GRID* 2900 0 3.810937500e+00-1.300066969e-01* +* 1.812525000e+00 0 0 +GRID* 2901 0 3.869184028e+00-1.413281990e-01* +* 1.968787500e+00 0 0 +GRID* 2902 0 3.869184028e+00-1.288281990e-01* +* 1.968787500e+00 0 0 +GRID* 2903 0 3.927430556e+00-1.401497010e-01* +* 2.125050000e+00 0 0 +GRID* 2904 0 3.927430556e+00-1.276497010e-01* +* 2.125050000e+00 0 0 +GRID* 2905 0 3.985677083e+00-1.389712031e-01* +* 2.281312500e+00 0 0 +GRID* 2906 0 3.985677083e+00-1.264712031e-01* +* 2.281312500e+00 0 0 +GRID* 2907 0 1.877256944e+00 1.892679480e-01* +* 2.437575000e+00 0 0 +GRID* 2908 0 1.956336806e+00 1.876564704e-01* +* 2.593837500e+00 0 0 +GRID* 2909 0 2.035416667e+00 1.860449928e-01* +* 2.750100000e+00 0 0 +GRID* 2910 0 2.114496528e+00 1.844335152e-01* +* 2.906362500e+00 0 0 +GRID* 2911 0 2.021701389e+00 2.095971719e-01* +* 2.437575000e+00 0 0 +GRID* 2912 0 2.099392361e+00 2.077755922e-01* +* 2.593837500e+00 0 0 +GRID* 2913 0 2.177083333e+00 2.059540124e-01* +* 2.750100000e+00 0 0 +GRID* 2914 0 2.254774306e+00 2.041324327e-01* +* 2.906362500e+00 0 0 +GRID* 2915 0 1.877256944e+00-1.900461030e-01* +* 2.437575000e+00 0 0 +GRID* 2916 0 2.021701389e+00-2.095701603e-01* +* 2.437575000e+00 0 0 +GRID* 2917 0 1.956336806e+00-1.884263414e-01* +* 2.593837500e+00 0 0 +GRID* 2918 0 2.099392361e+00-2.077469594e-01* +* 2.593837500e+00 0 0 +GRID* 2919 0 2.035416667e+00-1.868065799e-01* +* 2.750100000e+00 0 0 +GRID* 2920 0 2.177083333e+00-2.059237585e-01* +* 2.750100000e+00 0 0 +GRID* 2921 0 2.114496528e+00-1.851868183e-01* +* 2.906362500e+00 0 0 +GRID* 2922 0 2.254774306e+00-2.041005575e-01* +* 2.906362500e+00 0 0 +GRID* 2923 0 2.166145833e+00 2.260411729e-01* +* 2.437575000e+00 0 0 +GRID* 2924 0 2.242447917e+00 2.240562201e-01* +* 2.593837500e+00 0 0 +GRID* 2925 0 2.318750000e+00 2.220712672e-01* +* 2.750100000e+00 0 0 +GRID* 2926 0 2.395052083e+00 2.200863144e-01* +* 2.906362500e+00 0 0 +GRID* 2927 0 2.310590278e+00 2.388498484e-01* +* 2.437575000e+00 0 0 +GRID* 2928 0 2.385503472e+00 2.367360969e-01* +* 2.593837500e+00 0 0 +GRID* 2929 0 2.460416667e+00 2.346223453e-01* +* 2.750100000e+00 0 0 +GRID* 2930 0 2.535329861e+00 2.325085938e-01* +* 2.906362500e+00 0 0 +GRID* 2931 0 2.166145833e+00-2.250323544e-01* +* 2.437575000e+00 0 0 +GRID* 2932 0 2.310590278e+00-2.367713941e-01* +* 2.437575000e+00 0 0 +GRID* 2933 0 2.242447917e+00-2.230511829e-01* +* 2.593837500e+00 0 0 +GRID* 2934 0 2.385503472e+00-2.346751290e-01* +* 2.593837500e+00 0 0 +GRID* 2935 0 2.318750000e+00-2.210700115e-01* +* 2.750100000e+00 0 0 +GRID* 2936 0 2.460416667e+00-2.325788638e-01* +* 2.750100000e+00 0 0 +GRID* 2937 0 2.395052083e+00-2.190888400e-01* +* 2.906362500e+00 0 0 +GRID* 2938 0 2.535329861e+00-2.304825987e-01* +* 2.906362500e+00 0 0 +GRID* 2939 0 2.455034722e+00 2.494663145e-01* +* 2.437575000e+00 0 0 +GRID* 2940 0 2.528559028e+00 2.472490870e-01* +* 2.593837500e+00 0 0 +GRID* 2941 0 2.602083333e+00 2.450318595e-01* +* 2.750100000e+00 0 0 +GRID* 2942 0 2.675607639e+00 2.428146320e-01* +* 2.906362500e+00 0 0 +GRID* 2943 0 2.599479167e+00 2.583168238e-01* +* 2.437575000e+00 0 0 +GRID* 2944 0 2.671614583e+00 2.560146100e-01* +* 2.593837500e+00 0 0 +GRID* 2945 0 2.743750000e+00 2.537123962e-01* +* 2.750100000e+00 0 0 +GRID* 2946 0 2.815885417e+00 2.514101823e-01* +* 2.906362500e+00 0 0 +GRID* 2947 0 2.455034722e+00-2.462568413e-01* +* 2.437575000e+00 0 0 +GRID* 2948 0 2.599479167e+00-2.537559790e-01* +* 2.437575000e+00 0 0 +GRID* 2949 0 2.528559028e+00-2.440678774e-01* +* 2.593837500e+00 0 0 +GRID* 2950 0 2.671614583e+00-2.514950339e-01* +* 2.593837500e+00 0 0 +GRID* 2951 0 2.602083333e+00-2.418789136e-01* +* 2.750100000e+00 0 0 +GRID* 2952 0 2.743750000e+00-2.492340888e-01* +* 2.750100000e+00 0 0 +GRID* 2953 0 2.675607639e+00-2.396899497e-01* +* 2.906362500e+00 0 0 +GRID* 2954 0 2.815885417e+00-2.469731436e-01* +* 2.906362500e+00 0 0 +GRID* 2955 0 2.743923611e+00 2.654786863e-01* +* 2.437575000e+00 0 0 +GRID* 2956 0 2.814670139e+00 2.631093173e-01* +* 2.593837500e+00 0 0 +GRID* 2957 0 2.885416667e+00 2.607399483e-01* +* 2.750100000e+00 0 0 +GRID* 2958 0 2.956163194e+00 2.583705793e-01* +* 2.906362500e+00 0 0 +GRID* 2959 0 2.888368056e+00 2.709706228e-01* +* 2.437575000e+00 0 0 +GRID* 2960 0 2.957725694e+00 2.685501018e-01* +* 2.593837500e+00 0 0 +GRID* 2961 0 3.027083333e+00 2.661295809e-01* +* 2.750100000e+00 0 0 +GRID* 2962 0 3.096440972e+00 2.637090600e-01* +* 2.906362500e+00 0 0 +GRID* 2963 0 2.743923611e+00-2.585244167e-01* +* 2.437575000e+00 0 0 +GRID* 2964 0 2.888368056e+00-2.600515827e-01* +* 2.437575000e+00 0 0 +GRID* 2965 0 2.814670139e+00-2.562206172e-01* +* 2.593837500e+00 0 0 +GRID* 2966 0 2.957725694e+00-2.577365882e-01* +* 2.593837500e+00 0 0 +GRID* 2967 0 2.885416667e+00-2.539168176e-01* +* 2.750100000e+00 0 0 +GRID* 2968 0 3.027083333e+00-2.554215936e-01* +* 2.750100000e+00 0 0 +GRID* 2969 0 2.956163194e+00-2.516130181e-01* +* 2.906362500e+00 0 0 +GRID* 2970 0 3.096440972e+00-2.531065991e-01* +* 2.906362500e+00 0 0 +GRID* 2971 0 3.032812500e+00 2.744869906e-01* +* 2.437575000e+00 0 0 +GRID* 2972 0 3.100781250e+00 2.720377269e-01* +* 2.593837500e+00 0 0 +GRID* 2973 0 3.168750000e+00 2.695884632e-01* +* 2.750100000e+00 0 0 +GRID* 2974 0 3.236718750e+00 2.671391994e-01* +* 2.906362500e+00 0 0 +GRID* 2975 0 3.177256944e+00 2.762168398e-01* +* 2.437575000e+00 0 0 +GRID* 2976 0 3.243836806e+00 2.737584859e-01* +* 2.593837500e+00 0 0 +GRID* 2977 0 3.310416667e+00 2.713001319e-01* +* 2.750100000e+00 0 0 +GRID* 2978 0 3.376996528e+00 2.688417779e-01* +* 2.906362500e+00 0 0 +GRID* 2979 0 3.032812500e+00-2.569256283e-01* +* 2.437575000e+00 0 0 +GRID* 2980 0 3.177256944e+00-2.498327911e-01* +* 2.437575000e+00 0 0 +GRID* 2981 0 3.100781250e+00-2.546525660e-01* +* 2.593837500e+00 0 0 +GRID* 2982 0 3.243836806e+00-2.476428836e-01* +* 2.593837500e+00 0 0 +GRID* 2983 0 3.168750000e+00-2.523795037e-01* +* 2.750100000e+00 0 0 +GRID* 2984 0 3.310416667e+00-2.454529761e-01* +* 2.750100000e+00 0 0 +GRID* 2985 0 3.236718750e+00-2.501064415e-01* +* 2.906362500e+00 0 0 +GRID* 2986 0 3.376996528e+00-2.432630686e-01* +* 2.906362500e+00 0 0 +GRID* 2987 0 3.321701389e+00 2.758636352e-01* +* 2.437575000e+00 0 0 +GRID* 2988 0 3.386892361e+00 2.734134294e-01* +* 2.593837500e+00 0 0 +GRID* 2989 0 3.452083333e+00 2.709632236e-01* +* 2.750100000e+00 0 0 +GRID* 2990 0 3.517274306e+00 2.685130179e-01* +* 2.906362500e+00 0 0 +GRID* 2991 0 3.466145833e+00 2.735025404e-01* +* 2.437575000e+00 0 0 +GRID* 2992 0 3.529947917e+00 2.710866120e-01* +* 2.593837500e+00 0 0 +GRID* 2993 0 3.593750000e+00 2.686706836e-01* +* 2.750100000e+00 0 0 +GRID* 2994 0 3.657552083e+00 2.662547552e-01* +* 2.906362500e+00 0 0 +GRID* 2995 0 3.321701389e+00-2.389330997e-01* +* 2.437575000e+00 0 0 +GRID* 2996 0 3.466145833e+00-2.250035186e-01* +* 2.437575000e+00 0 0 +GRID* 2997 0 3.386892361e+00-2.368558062e-01* +* 2.593837500e+00 0 0 +GRID* 2998 0 3.529947917e+00-2.230753092e-01* +* 2.593837500e+00 0 0 +GRID* 2999 0 3.452083333e+00-2.347785128e-01* +* 2.750100000e+00 0 0 +GRID* 3000 0 3.593750000e+00-2.211470997e-01* +* 2.750100000e+00 0 0 +GRID* 3001 0 3.517274306e+00-2.327012193e-01* +* 2.906362500e+00 0 0 +GRID* 3002 0 3.657552083e+00-2.192188903e-01* +* 2.906362500e+00 0 0 +GRID* 3003 0 3.610590278e+00 2.690706784e-01* +* 2.437575000e+00 0 0 +GRID* 3004 0 3.673003472e+00 2.667042213e-01* +* 2.593837500e+00 0 0 +GRID* 3005 0 3.735416667e+00 2.643377642e-01* +* 2.750100000e+00 0 0 +GRID* 3006 0 3.797829861e+00 2.619713071e-01* +* 2.906362500e+00 0 0 +GRID* 3007 0 3.755034722e+00 2.623873950e-01* +* 2.437575000e+00 0 0 +GRID* 3008 0 3.816059028e+00 2.601008272e-01* +* 2.593837500e+00 0 0 +GRID* 3009 0 3.877083333e+00 2.578142595e-01* +* 2.750100000e+00 0 0 +GRID* 3010 0 3.938107639e+00 2.555276918e-01* +* 2.906362500e+00 0 0 +GRID* 3011 0 3.610590278e+00-2.087224924e-01* +* 2.437575000e+00 0 0 +GRID* 3012 0 3.755034722e+00-1.904369418e-01* +* 2.437575000e+00 0 0 +GRID* 3013 0 3.673003472e+00-2.069577305e-01* +* 2.593837500e+00 0 0 +GRID* 3014 0 3.816059028e+00-1.888601778e-01* +* 2.593837500e+00 0 0 +GRID* 3015 0 3.735416667e+00-2.051929687e-01* +* 2.750100000e+00 0 0 +GRID* 3016 0 3.877083333e+00-1.872834139e-01* +* 2.750100000e+00 0 0 +GRID* 3017 0 3.797829861e+00-2.034282069e-01* +* 2.906362500e+00 0 0 +GRID* 3018 0 3.938107639e+00-1.857066499e-01* +* 2.906362500e+00 0 0 +GRID* 3019 0 3.899479167e+00 2.536969689e-01* +* 2.437575000e+00 0 0 +GRID* 3020 0 3.959114583e+00 2.515120380e-01* +* 2.593837500e+00 0 0 +GRID* 3021 0 4.018750000e+00 2.493271071e-01* +* 2.750100000e+00 0 0 +GRID* 3022 0 4.078385417e+00 2.471421762e-01* +* 2.906362500e+00 0 0 +GRID* 3023 0 4.043923611e+00 2.426925020e-01* +* 2.437575000e+00 0 0 +GRID* 3024 0 4.102170139e+00 2.406233513e-01* +* 2.593837500e+00 0 0 +GRID* 3025 0 4.160416667e+00 2.385542007e-01* +* 2.750100000e+00 0 0 +GRID* 3026 0 4.218663194e+00 2.364850500e-01* +* 2.906362500e+00 0 0 +GRID* 3027 0 3.899479167e+00-1.708501330e-01* +* 2.437575000e+00 0 0 +GRID* 3028 0 4.043923611e+00-1.502927052e-01* +* 2.437575000e+00 0 0 +GRID* 3029 0 3.959114583e+00-1.694709052e-01* +* 2.593837500e+00 0 0 +GRID* 3030 0 4.102170139e+00-1.491142073e-01* +* 2.593837500e+00 0 0 +GRID* 3031 0 4.018750000e+00-1.680916774e-01* +* 2.750100000e+00 0 0 +GRID* 3032 0 4.160416667e+00-1.479357093e-01* +* 2.750100000e+00 0 0 +GRID* 3033 0 4.078385417e+00-1.667124496e-01* +* 2.906362500e+00 0 0 +GRID* 3034 0 4.218663194e+00-1.467572114e-01* +* 2.906362500e+00 0 0 +GRID* 3035 0 4.188368056e+00 2.296556007e-01* +* 2.437575000e+00 0 0 +GRID* 3036 0 4.245225694e+00 2.277325774e-01* +* 2.593837500e+00 0 0 +GRID* 3037 0 4.302083333e+00 2.258095541e-01* +* 2.750100000e+00 0 0 +GRID* 3038 0 4.358940972e+00 2.238865308e-01* +* 2.906362500e+00 0 0 +GRID* 3039 0 4.188368056e+00-1.292980380e-01* +* 2.437575000e+00 0 0 +GRID* 3040 0 4.245225694e+00-1.283237689e-01* +* 2.593837500e+00 0 0 +GRID* 3041 0 4.302083333e+00-1.273494997e-01* +* 2.750100000e+00 0 0 +GRID* 3042 0 4.358940972e+00-1.263752306e-01* +* 2.906362500e+00 0 0 +GRID* 3043 0 2.021701389e+00 1.970971719e-01* +* 2.437575000e+00 0 0 +GRID* 3044 0 2.021701389e+00 1.845971719e-01* +* 2.437575000e+00 0 0 +GRID* 3045 0 2.099392361e+00 1.952755922e-01* +* 2.593837500e+00 0 0 +GRID* 3046 0 2.099392361e+00 1.827755922e-01* +* 2.593837500e+00 0 0 +GRID* 3047 0 2.177083333e+00 1.934540124e-01* +* 2.750100000e+00 0 0 +GRID* 3048 0 2.177083333e+00 1.809540124e-01* +* 2.750100000e+00 0 0 +GRID* 3049 0 2.254774306e+00 1.916324327e-01* +* 2.906362500e+00 0 0 +GRID* 3050 0 2.254774306e+00 1.791324327e-01* +* 2.906362500e+00 0 0 +GRID* 3051 0 2.332465278e+00 1.898108529e-01* +* 3.062625000e+00 0 0 +GRID* 3052 0 2.332465278e+00 1.773108529e-01* +* 3.062625000e+00 0 0 +GRID* 3053 0 2.021701389e+00-1.970701603e-01* +* 2.437575000e+00 0 0 +GRID* 3054 0 2.021701389e+00-1.845701603e-01* +* 2.437575000e+00 0 0 +GRID* 3055 0 2.099392361e+00-1.952469594e-01* +* 2.593837500e+00 0 0 +GRID* 3056 0 2.099392361e+00-1.827469594e-01* +* 2.593837500e+00 0 0 +GRID* 3057 0 2.177083333e+00-1.934237585e-01* +* 2.750100000e+00 0 0 +GRID* 3058 0 2.177083333e+00-1.809237585e-01* +* 2.750100000e+00 0 0 +GRID* 3059 0 2.254774306e+00-1.916005575e-01* +* 2.906362500e+00 0 0 +GRID* 3060 0 2.254774306e+00-1.791005575e-01* +* 2.906362500e+00 0 0 +GRID* 3061 0 2.332465278e+00-1.897773566e-01* +* 3.062625000e+00 0 0 +GRID* 3062 0 2.332465278e+00-1.772773566e-01* +* 3.062625000e+00 0 0 +GRID* 3063 0 2.310590278e+00 2.263498484e-01* +* 2.437575000e+00 0 0 +GRID* 3064 0 2.310590278e+00 2.138498484e-01* +* 2.437575000e+00 0 0 +GRID* 3065 0 2.385503472e+00 2.242360969e-01* +* 2.593837500e+00 0 0 +GRID* 3066 0 2.385503472e+00 2.117360969e-01* +* 2.593837500e+00 0 0 +GRID* 3067 0 2.460416667e+00 2.221223453e-01* +* 2.750100000e+00 0 0 +GRID* 3068 0 2.460416667e+00 2.096223453e-01* +* 2.750100000e+00 0 0 +GRID* 3069 0 2.535329861e+00 2.200085938e-01* +* 2.906362500e+00 0 0 +GRID* 3070 0 2.535329861e+00 2.075085938e-01* +* 2.906362500e+00 0 0 +GRID* 3071 0 2.610243056e+00 2.178948422e-01* +* 3.062625000e+00 0 0 +GRID* 3072 0 2.610243056e+00 2.053948422e-01* +* 3.062625000e+00 0 0 +GRID* 3073 0 2.310590278e+00-2.242713941e-01* +* 2.437575000e+00 0 0 +GRID* 3074 0 2.310590278e+00-2.117713941e-01* +* 2.437575000e+00 0 0 +GRID* 3075 0 2.385503472e+00-2.221751290e-01* +* 2.593837500e+00 0 0 +GRID* 3076 0 2.385503472e+00-2.096751290e-01* +* 2.593837500e+00 0 0 +GRID* 3077 0 2.460416667e+00-2.200788638e-01* +* 2.750100000e+00 0 0 +GRID* 3078 0 2.460416667e+00-2.075788638e-01* +* 2.750100000e+00 0 0 +GRID* 3079 0 2.535329861e+00-2.179825987e-01* +* 2.906362500e+00 0 0 +GRID* 3080 0 2.535329861e+00-2.054825987e-01* +* 2.906362500e+00 0 0 +GRID* 3081 0 2.610243056e+00-2.158863335e-01* +* 3.062625000e+00 0 0 +GRID* 3082 0 2.610243056e+00-2.033863335e-01* +* 3.062625000e+00 0 0 +GRID* 3083 0 2.599479167e+00 2.458168238e-01* +* 2.437575000e+00 0 0 +GRID* 3084 0 2.599479167e+00 2.333168238e-01* +* 2.437575000e+00 0 0 +GRID* 3085 0 2.671614583e+00 2.435146100e-01* +* 2.593837500e+00 0 0 +GRID* 3086 0 2.671614583e+00 2.310146100e-01* +* 2.593837500e+00 0 0 +GRID* 3087 0 2.743750000e+00 2.412123962e-01* +* 2.750100000e+00 0 0 +GRID* 3088 0 2.743750000e+00 2.287123962e-01* +* 2.750100000e+00 0 0 +GRID* 3089 0 2.815885417e+00 2.389101823e-01* +* 2.906362500e+00 0 0 +GRID* 3090 0 2.815885417e+00 2.264101823e-01* +* 2.906362500e+00 0 0 +GRID* 3091 0 2.888020833e+00 2.366079685e-01* +* 3.062625000e+00 0 0 +GRID* 3092 0 2.888020833e+00 2.241079685e-01* +* 3.062625000e+00 0 0 +GRID* 3093 0 2.599479167e+00-2.412559790e-01* +* 2.437575000e+00 0 0 +GRID* 3094 0 2.599479167e+00-2.287559790e-01* +* 2.437575000e+00 0 0 +GRID* 3095 0 2.671614583e+00-2.389950339e-01* +* 2.593837500e+00 0 0 +GRID* 3096 0 2.671614583e+00-2.264950339e-01* +* 2.593837500e+00 0 0 +GRID* 3097 0 2.743750000e+00-2.367340888e-01* +* 2.750100000e+00 0 0 +GRID* 3098 0 2.743750000e+00-2.242340888e-01* +* 2.750100000e+00 0 0 +GRID* 3099 0 2.815885417e+00-2.344731436e-01* +* 2.906362500e+00 0 0 +GRID* 3100 0 2.815885417e+00-2.219731436e-01* +* 2.906362500e+00 0 0 +GRID* 3101 0 2.888020833e+00-2.322121985e-01* +* 3.062625000e+00 0 0 +GRID* 3102 0 2.888020833e+00-2.197121985e-01* +* 3.062625000e+00 0 0 +GRID* 3103 0 2.888368056e+00 2.584706228e-01* +* 2.437575000e+00 0 0 +GRID* 3104 0 2.888368056e+00 2.459706228e-01* +* 2.437575000e+00 0 0 +GRID* 3105 0 2.957725694e+00 2.560501018e-01* +* 2.593837500e+00 0 0 +GRID* 3106 0 2.957725694e+00 2.435501018e-01* +* 2.593837500e+00 0 0 +GRID* 3107 0 3.027083333e+00 2.536295809e-01* +* 2.750100000e+00 0 0 +GRID* 3108 0 3.027083333e+00 2.411295809e-01* +* 2.750100000e+00 0 0 +GRID* 3109 0 3.096440972e+00 2.512090600e-01* +* 2.906362500e+00 0 0 +GRID* 3110 0 3.096440972e+00 2.387090600e-01* +* 2.906362500e+00 0 0 +GRID* 3111 0 3.165798611e+00 2.487885390e-01* +* 3.062625000e+00 0 0 +GRID* 3112 0 3.165798611e+00 2.362885390e-01* +* 3.062625000e+00 0 0 +GRID* 3113 0 2.888368056e+00-2.475515827e-01* +* 2.437575000e+00 0 0 +GRID* 3114 0 2.888368056e+00-2.350515827e-01* +* 2.437575000e+00 0 0 +GRID* 3115 0 2.957725694e+00-2.452365882e-01* +* 2.593837500e+00 0 0 +GRID* 3116 0 2.957725694e+00-2.327365882e-01* +* 2.593837500e+00 0 0 +GRID* 3117 0 3.027083333e+00-2.429215936e-01* +* 2.750100000e+00 0 0 +GRID* 3118 0 3.027083333e+00-2.304215936e-01* +* 2.750100000e+00 0 0 +GRID* 3119 0 3.096440972e+00-2.406065991e-01* +* 2.906362500e+00 0 0 +GRID* 3120 0 3.096440972e+00-2.281065991e-01* +* 2.906362500e+00 0 0 +GRID* 3121 0 3.165798611e+00-2.382916046e-01* +* 3.062625000e+00 0 0 +GRID* 3122 0 3.165798611e+00-2.257916046e-01* +* 3.062625000e+00 0 0 +GRID* 3123 0 3.177256944e+00 2.637168398e-01* +* 2.437575000e+00 0 0 +GRID* 3124 0 3.177256944e+00 2.512168398e-01* +* 2.437575000e+00 0 0 +GRID* 3125 0 3.243836806e+00 2.612584859e-01* +* 2.593837500e+00 0 0 +GRID* 3126 0 3.243836806e+00 2.487584859e-01* +* 2.593837500e+00 0 0 +GRID* 3127 0 3.310416667e+00 2.588001319e-01* +* 2.750100000e+00 0 0 +GRID* 3128 0 3.310416667e+00 2.463001319e-01* +* 2.750100000e+00 0 0 +GRID* 3129 0 3.376996528e+00 2.563417779e-01* +* 2.906362500e+00 0 0 +GRID* 3130 0 3.376996528e+00 2.438417779e-01* +* 2.906362500e+00 0 0 +GRID* 3131 0 3.443576389e+00 2.538834240e-01* +* 3.062625000e+00 0 0 +GRID* 3132 0 3.443576389e+00 2.413834240e-01* +* 3.062625000e+00 0 0 +GRID* 3133 0 3.177256944e+00-2.373327911e-01* +* 2.437575000e+00 0 0 +GRID* 3134 0 3.177256944e+00-2.248327911e-01* +* 2.437575000e+00 0 0 +GRID* 3135 0 3.243836806e+00-2.351428836e-01* +* 2.593837500e+00 0 0 +GRID* 3136 0 3.243836806e+00-2.226428836e-01* +* 2.593837500e+00 0 0 +GRID* 3137 0 3.310416667e+00-2.329529761e-01* +* 2.750100000e+00 0 0 +GRID* 3138 0 3.310416667e+00-2.204529761e-01* +* 2.750100000e+00 0 0 +GRID* 3139 0 3.376996528e+00-2.307630686e-01* +* 2.906362500e+00 0 0 +GRID* 3140 0 3.376996528e+00-2.182630686e-01* +* 2.906362500e+00 0 0 +GRID* 3141 0 3.443576389e+00-2.285731611e-01* +* 3.062625000e+00 0 0 +GRID* 3142 0 3.443576389e+00-2.160731611e-01* +* 3.062625000e+00 0 0 +GRID* 3143 0 3.466145833e+00 2.610025404e-01* +* 2.437575000e+00 0 0 +GRID* 3144 0 3.466145833e+00 2.485025404e-01* +* 2.437575000e+00 0 0 +GRID* 3145 0 3.529947917e+00 2.585866120e-01* +* 2.593837500e+00 0 0 +GRID* 3146 0 3.529947917e+00 2.460866120e-01* +* 2.593837500e+00 0 0 +GRID* 3147 0 3.593750000e+00 2.561706836e-01* +* 2.750100000e+00 0 0 +GRID* 3148 0 3.593750000e+00 2.436706836e-01* +* 2.750100000e+00 0 0 +GRID* 3149 0 3.657552083e+00 2.537547552e-01* +* 2.906362500e+00 0 0 +GRID* 3150 0 3.657552083e+00 2.412547552e-01* +* 2.906362500e+00 0 0 +GRID* 3151 0 3.721354167e+00 2.513388268e-01* +* 3.062625000e+00 0 0 +GRID* 3152 0 3.721354167e+00 2.388388268e-01* +* 3.062625000e+00 0 0 +GRID* 3153 0 3.466145833e+00-2.125035186e-01* +* 2.437575000e+00 0 0 +GRID* 3154 0 3.466145833e+00-2.000035186e-01* +* 2.437575000e+00 0 0 +GRID* 3155 0 3.529947917e+00-2.105753092e-01* +* 2.593837500e+00 0 0 +GRID* 3156 0 3.529947917e+00-1.980753092e-01* +* 2.593837500e+00 0 0 +GRID* 3157 0 3.593750000e+00-2.086470997e-01* +* 2.750100000e+00 0 0 +GRID* 3158 0 3.593750000e+00-1.961470997e-01* +* 2.750100000e+00 0 0 +GRID* 3159 0 3.657552083e+00-2.067188903e-01* +* 2.906362500e+00 0 0 +GRID* 3160 0 3.657552083e+00-1.942188903e-01* +* 2.906362500e+00 0 0 +GRID* 3161 0 3.721354167e+00-2.047906808e-01* +* 3.062625000e+00 0 0 +GRID* 3162 0 3.721354167e+00-1.922906808e-01* +* 3.062625000e+00 0 0 +GRID* 3163 0 3.755034722e+00 2.498873950e-01* +* 2.437575000e+00 0 0 +GRID* 3164 0 3.755034722e+00 2.373873950e-01* +* 2.437575000e+00 0 0 +GRID* 3165 0 3.816059028e+00 2.476008272e-01* +* 2.593837500e+00 0 0 +GRID* 3166 0 3.816059028e+00 2.351008272e-01* +* 2.593837500e+00 0 0 +GRID* 3167 0 3.877083333e+00 2.453142595e-01* +* 2.750100000e+00 0 0 +GRID* 3168 0 3.877083333e+00 2.328142595e-01* +* 2.750100000e+00 0 0 +GRID* 3169 0 3.938107639e+00 2.430276918e-01* +* 2.906362500e+00 0 0 +GRID* 3170 0 3.938107639e+00 2.305276918e-01* +* 2.906362500e+00 0 0 +GRID* 3171 0 3.999131944e+00 2.407411240e-01* +* 3.062625000e+00 0 0 +GRID* 3172 0 3.999131944e+00 2.282411240e-01* +* 3.062625000e+00 0 0 +GRID* 3173 0 3.755034722e+00-1.779369418e-01* +* 2.437575000e+00 0 0 +GRID* 3174 0 3.755034722e+00-1.654369418e-01* +* 2.437575000e+00 0 0 +GRID* 3175 0 3.816059028e+00-1.763601778e-01* +* 2.593837500e+00 0 0 +GRID* 3176 0 3.816059028e+00-1.638601778e-01* +* 2.593837500e+00 0 0 +GRID* 3177 0 3.877083333e+00-1.747834139e-01* +* 2.750100000e+00 0 0 +GRID* 3178 0 3.877083333e+00-1.622834139e-01* +* 2.750100000e+00 0 0 +GRID* 3179 0 3.938107639e+00-1.732066499e-01* +* 2.906362500e+00 0 0 +GRID* 3180 0 3.938107639e+00-1.607066499e-01* +* 2.906362500e+00 0 0 +GRID* 3181 0 3.999131944e+00-1.716298859e-01* +* 3.062625000e+00 0 0 +GRID* 3182 0 3.999131944e+00-1.591298859e-01* +* 3.062625000e+00 0 0 +GRID* 3183 0 4.043923611e+00 2.301925020e-01* +* 2.437575000e+00 0 0 +GRID* 3184 0 4.043923611e+00 2.176925020e-01* +* 2.437575000e+00 0 0 +GRID* 3185 0 4.102170139e+00 2.281233513e-01* +* 2.593837500e+00 0 0 +GRID* 3186 0 4.102170139e+00 2.156233513e-01* +* 2.593837500e+00 0 0 +GRID* 3187 0 4.160416667e+00 2.260542007e-01* +* 2.750100000e+00 0 0 +GRID* 3188 0 4.160416667e+00 2.135542007e-01* +* 2.750100000e+00 0 0 +GRID* 3189 0 4.218663194e+00 2.239850500e-01* +* 2.906362500e+00 0 0 +GRID* 3190 0 4.218663194e+00 2.114850500e-01* +* 2.906362500e+00 0 0 +GRID* 3191 0 4.276909722e+00 2.219158994e-01* +* 3.062625000e+00 0 0 +GRID* 3192 0 4.276909722e+00 2.094158994e-01* +* 3.062625000e+00 0 0 +GRID* 3193 0 4.043923611e+00-1.377927052e-01* +* 2.437575000e+00 0 0 +GRID* 3194 0 4.043923611e+00-1.252927052e-01* +* 2.437575000e+00 0 0 +GRID* 3195 0 4.102170139e+00-1.366142073e-01* +* 2.593837500e+00 0 0 +GRID* 3196 0 4.102170139e+00-1.241142073e-01* +* 2.593837500e+00 0 0 +GRID* 3197 0 4.160416667e+00-1.354357093e-01* +* 2.750100000e+00 0 0 +GRID* 3198 0 4.160416667e+00-1.229357093e-01* +* 2.750100000e+00 0 0 +GRID* 3199 0 4.218663194e+00-1.342572114e-01* +* 2.906362500e+00 0 0 +GRID* 3200 0 4.218663194e+00-1.217572114e-01* +* 2.906362500e+00 0 0 +GRID* 3201 0 4.276909722e+00-1.330787135e-01* +* 3.062625000e+00 0 0 +GRID* 3202 0 4.276909722e+00-1.205787135e-01* +* 3.062625000e+00 0 0 +GRID* 3203 0 2.272656250e+00 1.812105600e-01* +* 3.218887500e+00 0 0 +GRID* 3204 0 2.351736111e+00 1.795990824e-01* +* 3.375150000e+00 0 0 +GRID* 3205 0 2.430815972e+00 1.779876048e-01* +* 3.531412500e+00 0 0 +GRID* 3206 0 2.509895833e+00 1.763761272e-01* +* 3.687675000e+00 0 0 +GRID* 3207 0 2.410156250e+00 2.004892732e-01* +* 3.218887500e+00 0 0 +GRID* 3208 0 2.487847222e+00 1.986676934e-01* +* 3.375150000e+00 0 0 +GRID* 3209 0 2.565538194e+00 1.968461137e-01* +* 3.531412500e+00 0 0 +GRID* 3210 0 2.643229167e+00 1.950245339e-01* +* 3.687675000e+00 0 0 +GRID* 3211 0 2.272656250e+00-1.819472952e-01* +* 3.218887500e+00 0 0 +GRID* 3212 0 2.410156250e+00-2.004541557e-01* +* 3.218887500e+00 0 0 +GRID* 3213 0 2.351736111e+00-1.803275337e-01* +* 3.375150000e+00 0 0 +GRID* 3214 0 2.487847222e+00-1.986309548e-01* +* 3.375150000e+00 0 0 +GRID* 3215 0 2.430815972e+00-1.787077721e-01* +* 3.531412500e+00 0 0 +GRID* 3216 0 2.565538194e+00-1.968077539e-01* +* 3.531412500e+00 0 0 +GRID* 3217 0 2.509895833e+00-1.770880106e-01* +* 3.687675000e+00 0 0 +GRID* 3218 0 2.643229167e+00-1.949845530e-01* +* 3.687675000e+00 0 0 +GRID* 3219 0 2.547656250e+00 2.161140791e-01* +* 3.218887500e+00 0 0 +GRID* 3220 0 2.623958333e+00 2.141254472e-01* +* 3.375150000e+00 0 0 +GRID* 3221 0 2.700260417e+00 2.121368153e-01* +* 3.531412500e+00 0 0 +GRID* 3222 0 2.776562500e+00 2.101481834e-01* +* 3.687675000e+00 0 0 +GRID* 3223 0 2.685156250e+00 2.282810907e-01* +* 3.218887500e+00 0 0 +GRID* 3224 0 2.760069444e+00 2.261673391e-01* +* 3.375150000e+00 0 0 +GRID* 3225 0 2.834982639e+00 2.240535876e-01* +* 3.531412500e+00 0 0 +GRID* 3226 0 2.909895833e+00 2.219398360e-01* +* 3.687675000e+00 0 0 +GRID* 3227 0 2.547656250e+00-2.151264971e-01* +* 3.218887500e+00 0 0 +GRID* 3228 0 2.685156250e+00-2.262900684e-01* +* 3.218887500e+00 0 0 +GRID* 3229 0 2.623958333e+00-2.131453256e-01* +* 3.375150000e+00 0 0 +GRID* 3230 0 2.760069444e+00-2.241938033e-01* +* 3.375150000e+00 0 0 +GRID* 3231 0 2.700260417e+00-2.111641542e-01* +* 3.531412500e+00 0 0 +GRID* 3232 0 2.834982639e+00-2.220975381e-01* +* 3.531412500e+00 0 0 +GRID* 3233 0 2.776562500e+00-2.091829827e-01* +* 3.687675000e+00 0 0 +GRID* 3234 0 2.909895833e+00-2.200012730e-01* +* 3.687675000e+00 0 0 +GRID* 3235 0 2.822656250e+00 2.383801770e-01* +* 3.218887500e+00 0 0 +GRID* 3236 0 2.896180556e+00 2.361629495e-01* +* 3.375150000e+00 0 0 +GRID* 3237 0 2.969704861e+00 2.339457220e-01* +* 3.531412500e+00 0 0 +GRID* 3238 0 3.043229167e+00 2.317284945e-01* +* 3.687675000e+00 0 0 +GRID* 3239 0 2.960156250e+00 2.468057547e-01* +* 3.218887500e+00 0 0 +GRID* 3240 0 3.032291667e+00 2.445035409e-01* +* 3.375150000e+00 0 0 +GRID* 3241 0 3.104427083e+00 2.422013270e-01* +* 3.531412500e+00 0 0 +GRID* 3242 0 3.176562500e+00 2.398991132e-01* +* 3.687675000e+00 0 0 +GRID* 3243 0 2.822656250e+00-2.353120219e-01* +* 3.218887500e+00 0 0 +GRID* 3244 0 2.960156250e+00-2.424512534e-01* +* 3.218887500e+00 0 0 +GRID* 3245 0 2.896180556e+00-2.331230580e-01* +* 3.375150000e+00 0 0 +GRID* 3246 0 3.032291667e+00-2.401903083e-01* +* 3.375150000e+00 0 0 +GRID* 3247 0 2.969704861e+00-2.309340941e-01* +* 3.531412500e+00 0 0 +GRID* 3248 0 3.104427083e+00-2.379293632e-01* +* 3.531412500e+00 0 0 +GRID* 3249 0 3.043229167e+00-2.287451302e-01* +* 3.687675000e+00 0 0 +GRID* 3250 0 3.176562500e+00-2.356684180e-01* +* 3.687675000e+00 0 0 +GRID* 3251 0 3.097656250e+00 2.536318413e-01* +* 3.218887500e+00 0 0 +GRID* 3252 0 3.168402778e+00 2.512624723e-01* +* 3.375150000e+00 0 0 +GRID* 3253 0 3.239149306e+00 2.488931034e-01* +* 3.531412500e+00 0 0 +GRID* 3254 0 3.309895833e+00 2.465237344e-01* +* 3.687675000e+00 0 0 +GRID* 3255 0 3.235156250e+00 2.588680181e-01* +* 3.218887500e+00 0 0 +GRID* 3256 0 3.304513889e+00 2.564474971e-01* +* 3.375150000e+00 0 0 +GRID* 3257 0 3.373871528e+00 2.540269762e-01* +* 3.531412500e+00 0 0 +GRID* 3258 0 3.443229167e+00 2.516064552e-01* +* 3.687675000e+00 0 0 +GRID* 3259 0 3.097656250e+00-2.470054191e-01* +* 3.218887500e+00 0 0 +GRID* 3260 0 3.235156250e+00-2.484766100e-01* +* 3.218887500e+00 0 0 +GRID* 3261 0 3.168402778e+00-2.447016196e-01* +* 3.375150000e+00 0 0 +GRID* 3262 0 3.304513889e+00-2.461616155e-01* +* 3.375150000e+00 0 0 +GRID* 3263 0 3.239149306e+00-2.423978200e-01* +* 3.531412500e+00 0 0 +GRID* 3264 0 3.373871528e+00-2.438466209e-01* +* 3.531412500e+00 0 0 +GRID* 3265 0 3.309895833e+00-2.400940205e-01* +* 3.687675000e+00 0 0 +GRID* 3266 0 3.443229167e+00-2.415316264e-01* +* 3.687675000e+00 0 0 +GRID* 3267 0 3.372656250e+00 2.622406720e-01* +* 3.218887500e+00 0 0 +GRID* 3268 0 3.440625000e+00 2.597914083e-01* +* 3.375150000e+00 0 0 +GRID* 3269 0 3.508593750e+00 2.573421445e-01* +* 3.531412500e+00 0 0 +GRID* 3270 0 3.576562500e+00 2.548928808e-01* +* 3.687675000e+00 0 0 +GRID* 3271 0 3.510156250e+00 2.639250700e-01* +* 3.218887500e+00 0 0 +GRID* 3272 0 3.576736111e+00 2.614667160e-01* +* 3.375150000e+00 0 0 +GRID* 3273 0 3.643315972e+00 2.590083621e-01* +* 3.531412500e+00 0 0 +GRID* 3274 0 3.709895833e+00 2.565500081e-01* +* 3.687675000e+00 0 0 +GRID* 3275 0 3.372656250e+00-2.455603169e-01* +* 3.218887500e+00 0 0 +GRID* 3276 0 3.510156250e+00-2.388832537e-01* +* 3.218887500e+00 0 0 +GRID* 3277 0 3.440625000e+00-2.432872546e-01* +* 3.375150000e+00 0 0 +GRID* 3278 0 3.576736111e+00-2.366933462e-01* +* 3.375150000e+00 0 0 +GRID* 3279 0 3.508593750e+00-2.410141923e-01* +* 3.531412500e+00 0 0 +GRID* 3280 0 3.643315972e+00-2.345034387e-01* +* 3.531412500e+00 0 0 +GRID* 3281 0 3.576562500e+00-2.387411300e-01* +* 3.687675000e+00 0 0 +GRID* 3282 0 3.709895833e+00-2.323135312e-01* +* 3.687675000e+00 0 0 +GRID* 3283 0 3.647656250e+00 2.636126063e-01* +* 3.218887500e+00 0 0 +GRID* 3284 0 3.712847222e+00 2.611624005e-01* +* 3.375150000e+00 0 0 +GRID* 3285 0 3.778038194e+00 2.587121947e-01* +* 3.531412500e+00 0 0 +GRID* 3286 0 3.843229167e+00 2.562619889e-01* +* 3.687675000e+00 0 0 +GRID* 3287 0 3.785156250e+00 2.614228984e-01* +* 3.218887500e+00 0 0 +GRID* 3288 0 3.848958333e+00 2.590069699e-01* +* 3.375150000e+00 0 0 +GRID* 3289 0 3.912760417e+00 2.565910415e-01* +* 3.531412500e+00 0 0 +GRID* 3290 0 3.976562500e+00 2.541751131e-01* +* 3.687675000e+00 0 0 +GRID* 3291 0 3.647656250e+00-2.285466323e-01* +* 3.218887500e+00 0 0 +GRID* 3292 0 3.785156250e+00-2.153624714e-01* +* 3.218887500e+00 0 0 +GRID* 3293 0 3.712847222e+00-2.264693389e-01* +* 3.375150000e+00 0 0 +GRID* 3294 0 3.848958333e+00-2.134342620e-01* +* 3.375150000e+00 0 0 +GRID* 3295 0 3.778038194e+00-2.243920454e-01* +* 3.531412500e+00 0 0 +GRID* 3296 0 3.912760417e+00-2.115060525e-01* +* 3.531412500e+00 0 0 +GRID* 3297 0 3.843229167e+00-2.223147519e-01* +* 3.687675000e+00 0 0 +GRID* 3298 0 3.976562500e+00-2.095778431e-01* +* 3.687675000e+00 0 0 +GRID* 3299 0 3.922656250e+00 2.572383928e-01* +* 3.218887500e+00 0 0 +GRID* 3300 0 3.985069444e+00 2.548719357e-01* +* 3.375150000e+00 0 0 +GRID* 3301 0 4.047482639e+00 2.525054786e-01* +* 3.531412500e+00 0 0 +GRID* 3302 0 4.109895833e+00 2.501390215e-01* +* 3.687675000e+00 0 0 +GRID* 3303 0 4.060156250e+00 2.509545563e-01* +* 3.218887500e+00 0 0 +GRID* 3304 0 4.121180556e+00 2.486679886e-01* +* 3.375150000e+00 0 0 +GRID* 3305 0 4.182204861e+00 2.463814208e-01* +* 3.531412500e+00 0 0 +GRID* 3306 0 4.243229167e+00 2.440948531e-01* +* 3.687675000e+00 0 0 +GRID* 3307 0 3.922656250e+00-1.998986832e-01* +* 3.218887500e+00 0 0 +GRID* 3308 0 4.060156250e+00-1.825531219e-01* +* 3.218887500e+00 0 0 +GRID* 3309 0 3.985069444e+00-1.981339214e-01* +* 3.375150000e+00 0 0 +GRID* 3310 0 4.121180556e+00-1.809763579e-01* +* 3.375150000e+00 0 0 +GRID* 3311 0 4.047482639e+00-1.963691595e-01* +* 3.531412500e+00 0 0 +GRID* 3312 0 4.182204861e+00-1.793995939e-01* +* 3.531412500e+00 0 0 +GRID* 3313 0 4.109895833e+00-1.946043977e-01* +* 3.687675000e+00 0 0 +GRID* 3314 0 4.243229167e+00-1.778228299e-01* +* 3.687675000e+00 0 0 +GRID* 3315 0 4.197656250e+00 2.427701206e-01* +* 3.218887500e+00 0 0 +GRID* 3316 0 4.257291667e+00 2.405753941e-01* +* 3.375150000e+00 0 0 +GRID* 3317 0 4.316927083e+00 2.383806675e-01* +* 3.531412500e+00 0 0 +GRID* 3318 0 4.376562500e+00 2.361859410e-01* +* 3.687675000e+00 0 0 +GRID* 3319 0 4.335156250e+00 2.323467487e-01* +* 3.218887500e+00 0 0 +GRID* 3320 0 4.393402778e+00 2.302775981e-01* +* 3.375150000e+00 0 0 +GRID* 3321 0 4.451649306e+00 2.282084474e-01* +* 3.531412500e+00 0 0 +GRID* 3322 0 4.509895833e+00 2.261392968e-01* +* 3.687675000e+00 0 0 +GRID* 3323 0 4.197656250e+00-1.639539941e-01* +* 3.218887500e+00 0 0 +GRID* 3324 0 4.335156250e+00-1.444002155e-01* +* 3.218887500e+00 0 0 +GRID* 3325 0 4.257291667e+00-1.625747663e-01* +* 3.375150000e+00 0 0 +GRID* 3326 0 4.393402778e+00-1.432217176e-01* +* 3.375150000e+00 0 0 +GRID* 3327 0 4.316927083e+00-1.611955385e-01* +* 3.531412500e+00 0 0 +GRID* 3328 0 4.451649306e+00-1.420432197e-01* +* 3.531412500e+00 0 0 +GRID* 3329 0 4.376562500e+00-1.598163107e-01* +* 3.687675000e+00 0 0 +GRID* 3330 0 4.509895833e+00-1.408647218e-01* +* 3.687675000e+00 0 0 +GRID* 3331 0 4.472656250e+00 2.200404842e-01* +* 3.218887500e+00 0 0 +GRID* 3332 0 4.529513889e+00 2.181174608e-01* +* 3.375150000e+00 0 0 +GRID* 3333 0 4.586371528e+00 2.161944375e-01* +* 3.531412500e+00 0 0 +GRID* 3334 0 4.643229167e+00 2.142714142e-01* +* 3.687675000e+00 0 0 +GRID* 3335 0 4.472656250e+00-1.244266923e-01* +* 3.218887500e+00 0 0 +GRID* 3336 0 4.529513889e+00-1.234524231e-01* +* 3.375150000e+00 0 0 +GRID* 3337 0 4.586371528e+00-1.224781540e-01* +* 3.531412500e+00 0 0 +GRID* 3338 0 4.643229167e+00-1.215038849e-01* +* 3.687675000e+00 0 0 +GRID* 3339 0 2.410156250e+00 1.879892732e-01* +* 3.218887500e+00 0 0 +GRID* 3340 0 2.410156250e+00 1.754892732e-01* +* 3.218887500e+00 0 0 +GRID* 3341 0 2.487847222e+00 1.861676934e-01* +* 3.375150000e+00 0 0 +GRID* 3342 0 2.487847222e+00 1.736676934e-01* +* 3.375150000e+00 0 0 +GRID* 3343 0 2.565538194e+00 1.843461137e-01* +* 3.531412500e+00 0 0 +GRID* 3344 0 2.565538194e+00 1.718461137e-01* +* 3.531412500e+00 0 0 +GRID* 3345 0 2.643229167e+00 1.825245339e-01* +* 3.687675000e+00 0 0 +GRID* 3346 0 2.643229167e+00 1.700245339e-01* +* 3.687675000e+00 0 0 +GRID* 3347 0 2.720920139e+00 1.807029542e-01* +* 3.843937500e+00 0 0 +GRID* 3348 0 2.720920139e+00 1.682029542e-01* +* 3.843937500e+00 0 0 +GRID* 3349 0 2.410156250e+00-1.879541557e-01* +* 3.218887500e+00 0 0 +GRID* 3350 0 2.410156250e+00-1.754541557e-01* +* 3.218887500e+00 0 0 +GRID* 3351 0 2.487847222e+00-1.861309548e-01* +* 3.375150000e+00 0 0 +GRID* 3352 0 2.487847222e+00-1.736309548e-01* +* 3.375150000e+00 0 0 +GRID* 3353 0 2.565538194e+00-1.843077539e-01* +* 3.531412500e+00 0 0 +GRID* 3354 0 2.565538194e+00-1.718077539e-01* +* 3.531412500e+00 0 0 +GRID* 3355 0 2.643229167e+00-1.824845530e-01* +* 3.687675000e+00 0 0 +GRID* 3356 0 2.643229167e+00-1.699845530e-01* +* 3.687675000e+00 0 0 +GRID* 3357 0 2.720920139e+00-1.806613520e-01* +* 3.843937500e+00 0 0 +GRID* 3358 0 2.720920139e+00-1.681613520e-01* +* 3.843937500e+00 0 0 +GRID* 3359 0 2.685156250e+00 2.157810907e-01* +* 3.218887500e+00 0 0 +GRID* 3360 0 2.685156250e+00 2.032810907e-01* +* 3.218887500e+00 0 0 +GRID* 3361 0 2.760069444e+00 2.136673391e-01* +* 3.375150000e+00 0 0 +GRID* 3362 0 2.760069444e+00 2.011673391e-01* +* 3.375150000e+00 0 0 +GRID* 3363 0 2.834982639e+00 2.115535876e-01* +* 3.531412500e+00 0 0 +GRID* 3364 0 2.834982639e+00 1.990535876e-01* +* 3.531412500e+00 0 0 +GRID* 3365 0 2.909895833e+00 2.094398360e-01* +* 3.687675000e+00 0 0 +GRID* 3366 0 2.909895833e+00 1.969398360e-01* +* 3.687675000e+00 0 0 +GRID* 3367 0 2.984809028e+00 2.073260845e-01* +* 3.843937500e+00 0 0 +GRID* 3368 0 2.984809028e+00 1.948260845e-01* +* 3.843937500e+00 0 0 +GRID* 3369 0 2.685156250e+00-2.137900684e-01* +* 3.218887500e+00 0 0 +GRID* 3370 0 2.685156250e+00-2.012900684e-01* +* 3.218887500e+00 0 0 +GRID* 3371 0 2.760069444e+00-2.116938033e-01* +* 3.375150000e+00 0 0 +GRID* 3372 0 2.760069444e+00-1.991938033e-01* +* 3.375150000e+00 0 0 +GRID* 3373 0 2.834982639e+00-2.095975381e-01* +* 3.531412500e+00 0 0 +GRID* 3374 0 2.834982639e+00-1.970975381e-01* +* 3.531412500e+00 0 0 +GRID* 3375 0 2.909895833e+00-2.075012730e-01* +* 3.687675000e+00 0 0 +GRID* 3376 0 2.909895833e+00-1.950012730e-01* +* 3.687675000e+00 0 0 +GRID* 3377 0 2.984809028e+00-2.054050078e-01* +* 3.843937500e+00 0 0 +GRID* 3378 0 2.984809028e+00-1.929050078e-01* +* 3.843937500e+00 0 0 +GRID* 3379 0 2.960156250e+00 2.343057547e-01* +* 3.218887500e+00 0 0 +GRID* 3380 0 2.960156250e+00 2.218057547e-01* +* 3.218887500e+00 0 0 +GRID* 3381 0 3.032291667e+00 2.320035409e-01* +* 3.375150000e+00 0 0 +GRID* 3382 0 3.032291667e+00 2.195035409e-01* +* 3.375150000e+00 0 0 +GRID* 3383 0 3.104427083e+00 2.297013270e-01* +* 3.531412500e+00 0 0 +GRID* 3384 0 3.104427083e+00 2.172013270e-01* +* 3.531412500e+00 0 0 +GRID* 3385 0 3.176562500e+00 2.273991132e-01* +* 3.687675000e+00 0 0 +GRID* 3386 0 3.176562500e+00 2.148991132e-01* +* 3.687675000e+00 0 0 +GRID* 3387 0 3.248697917e+00 2.250968994e-01* +* 3.843937500e+00 0 0 +GRID* 3388 0 3.248697917e+00 2.125968994e-01* +* 3.843937500e+00 0 0 +GRID* 3389 0 2.960156250e+00-2.299512534e-01* +* 3.218887500e+00 0 0 +GRID* 3390 0 2.960156250e+00-2.174512534e-01* +* 3.218887500e+00 0 0 +GRID* 3391 0 3.032291667e+00-2.276903083e-01* +* 3.375150000e+00 0 0 +GRID* 3392 0 3.032291667e+00-2.151903083e-01* +* 3.375150000e+00 0 0 +GRID* 3393 0 3.104427083e+00-2.254293632e-01* +* 3.531412500e+00 0 0 +GRID* 3394 0 3.104427083e+00-2.129293632e-01* +* 3.531412500e+00 0 0 +GRID* 3395 0 3.176562500e+00-2.231684180e-01* +* 3.687675000e+00 0 0 +GRID* 3396 0 3.176562500e+00-2.106684180e-01* +* 3.687675000e+00 0 0 +GRID* 3397 0 3.248697917e+00-2.209074729e-01* +* 3.843937500e+00 0 0 +GRID* 3398 0 3.248697917e+00-2.084074729e-01* +* 3.843937500e+00 0 0 +GRID* 3399 0 3.235156250e+00 2.463680181e-01* +* 3.218887500e+00 0 0 +GRID* 3400 0 3.235156250e+00 2.338680181e-01* +* 3.218887500e+00 0 0 +GRID* 3401 0 3.304513889e+00 2.439474971e-01* +* 3.375150000e+00 0 0 +GRID* 3402 0 3.304513889e+00 2.314474971e-01* +* 3.375150000e+00 0 0 +GRID* 3403 0 3.373871528e+00 2.415269762e-01* +* 3.531412500e+00 0 0 +GRID* 3404 0 3.373871528e+00 2.290269762e-01* +* 3.531412500e+00 0 0 +GRID* 3405 0 3.443229167e+00 2.391064552e-01* +* 3.687675000e+00 0 0 +GRID* 3406 0 3.443229167e+00 2.266064552e-01* +* 3.687675000e+00 0 0 +GRID* 3407 0 3.512586806e+00 2.366859343e-01* +* 3.843937500e+00 0 0 +GRID* 3408 0 3.512586806e+00 2.241859343e-01* +* 3.843937500e+00 0 0 +GRID* 3409 0 3.235156250e+00-2.359766100e-01* +* 3.218887500e+00 0 0 +GRID* 3410 0 3.235156250e+00-2.234766100e-01* +* 3.218887500e+00 0 0 +GRID* 3411 0 3.304513889e+00-2.336616155e-01* +* 3.375150000e+00 0 0 +GRID* 3412 0 3.304513889e+00-2.211616155e-01* +* 3.375150000e+00 0 0 +GRID* 3413 0 3.373871528e+00-2.313466209e-01* +* 3.531412500e+00 0 0 +GRID* 3414 0 3.373871528e+00-2.188466209e-01* +* 3.531412500e+00 0 0 +GRID* 3415 0 3.443229167e+00-2.290316264e-01* +* 3.687675000e+00 0 0 +GRID* 3416 0 3.443229167e+00-2.165316264e-01* +* 3.687675000e+00 0 0 +GRID* 3417 0 3.512586806e+00-2.267166319e-01* +* 3.843937500e+00 0 0 +GRID* 3418 0 3.512586806e+00-2.142166319e-01* +* 3.843937500e+00 0 0 +GRID* 3419 0 3.510156250e+00 2.514250700e-01* +* 3.218887500e+00 0 0 +GRID* 3420 0 3.510156250e+00 2.389250700e-01* +* 3.218887500e+00 0 0 +GRID* 3421 0 3.576736111e+00 2.489667160e-01* +* 3.375150000e+00 0 0 +GRID* 3422 0 3.576736111e+00 2.364667160e-01* +* 3.375150000e+00 0 0 +GRID* 3423 0 3.643315972e+00 2.465083621e-01* +* 3.531412500e+00 0 0 +GRID* 3424 0 3.643315972e+00 2.340083621e-01* +* 3.531412500e+00 0 0 +GRID* 3425 0 3.709895833e+00 2.440500081e-01* +* 3.687675000e+00 0 0 +GRID* 3426 0 3.709895833e+00 2.315500081e-01* +* 3.687675000e+00 0 0 +GRID* 3427 0 3.776475694e+00 2.415916542e-01* +* 3.843937500e+00 0 0 +GRID* 3428 0 3.776475694e+00 2.290916542e-01* +* 3.843937500e+00 0 0 +GRID* 3429 0 3.510156250e+00-2.263832537e-01* +* 3.218887500e+00 0 0 +GRID* 3430 0 3.510156250e+00-2.138832537e-01* +* 3.218887500e+00 0 0 +GRID* 3431 0 3.576736111e+00-2.241933462e-01* +* 3.375150000e+00 0 0 +GRID* 3432 0 3.576736111e+00-2.116933462e-01* +* 3.375150000e+00 0 0 +GRID* 3433 0 3.643315972e+00-2.220034387e-01* +* 3.531412500e+00 0 0 +GRID* 3434 0 3.643315972e+00-2.095034387e-01* +* 3.531412500e+00 0 0 +GRID* 3435 0 3.709895833e+00-2.198135312e-01* +* 3.687675000e+00 0 0 +GRID* 3436 0 3.709895833e+00-2.073135312e-01* +* 3.687675000e+00 0 0 +GRID* 3437 0 3.776475694e+00-2.176236237e-01* +* 3.843937500e+00 0 0 +GRID* 3438 0 3.776475694e+00-2.051236237e-01* +* 3.843937500e+00 0 0 +GRID* 3439 0 3.785156250e+00 2.489228984e-01* +* 3.218887500e+00 0 0 +GRID* 3440 0 3.785156250e+00 2.364228984e-01* +* 3.218887500e+00 0 0 +GRID* 3441 0 3.848958333e+00 2.465069699e-01* +* 3.375150000e+00 0 0 +GRID* 3442 0 3.848958333e+00 2.340069699e-01* +* 3.375150000e+00 0 0 +GRID* 3443 0 3.912760417e+00 2.440910415e-01* +* 3.531412500e+00 0 0 +GRID* 3444 0 3.912760417e+00 2.315910415e-01* +* 3.531412500e+00 0 0 +GRID* 3445 0 3.976562500e+00 2.416751131e-01* +* 3.687675000e+00 0 0 +GRID* 3446 0 3.976562500e+00 2.291751131e-01* +* 3.687675000e+00 0 0 +GRID* 3447 0 4.040364583e+00 2.392591847e-01* +* 3.843937500e+00 0 0 +GRID* 3448 0 4.040364583e+00 2.267591847e-01* +* 3.843937500e+00 0 0 +GRID* 3449 0 3.785156250e+00-2.028624714e-01* +* 3.218887500e+00 0 0 +GRID* 3450 0 3.785156250e+00-1.903624714e-01* +* 3.218887500e+00 0 0 +GRID* 3451 0 3.848958333e+00-2.009342620e-01* +* 3.375150000e+00 0 0 +GRID* 3452 0 3.848958333e+00-1.884342620e-01* +* 3.375150000e+00 0 0 +GRID* 3453 0 3.912760417e+00-1.990060525e-01* +* 3.531412500e+00 0 0 +GRID* 3454 0 3.912760417e+00-1.865060525e-01* +* 3.531412500e+00 0 0 +GRID* 3455 0 3.976562500e+00-1.970778431e-01* +* 3.687675000e+00 0 0 +GRID* 3456 0 3.976562500e+00-1.845778431e-01* +* 3.687675000e+00 0 0 +GRID* 3457 0 4.040364583e+00-1.951496337e-01* +* 3.843937500e+00 0 0 +GRID* 3458 0 4.040364583e+00-1.826496337e-01* +* 3.843937500e+00 0 0 +GRID* 3459 0 4.060156250e+00 2.384545563e-01* +* 3.218887500e+00 0 0 +GRID* 3460 0 4.060156250e+00 2.259545563e-01* +* 3.218887500e+00 0 0 +GRID* 3461 0 4.121180556e+00 2.361679886e-01* +* 3.375150000e+00 0 0 +GRID* 3462 0 4.121180556e+00 2.236679886e-01* +* 3.375150000e+00 0 0 +GRID* 3463 0 4.182204861e+00 2.338814208e-01* +* 3.531412500e+00 0 0 +GRID* 3464 0 4.182204861e+00 2.213814208e-01* +* 3.531412500e+00 0 0 +GRID* 3465 0 4.243229167e+00 2.315948531e-01* +* 3.687675000e+00 0 0 +GRID* 3466 0 4.243229167e+00 2.190948531e-01* +* 3.687675000e+00 0 0 +GRID* 3467 0 4.304253472e+00 2.293082854e-01* +* 3.843937500e+00 0 0 +GRID* 3468 0 4.304253472e+00 2.168082854e-01* +* 3.843937500e+00 0 0 +GRID* 3469 0 4.060156250e+00-1.700531219e-01* +* 3.218887500e+00 0 0 +GRID* 3470 0 4.060156250e+00-1.575531219e-01* +* 3.218887500e+00 0 0 +GRID* 3471 0 4.121180556e+00-1.684763579e-01* +* 3.375150000e+00 0 0 +GRID* 3472 0 4.121180556e+00-1.559763579e-01* +* 3.375150000e+00 0 0 +GRID* 3473 0 4.182204861e+00-1.668995939e-01* +* 3.531412500e+00 0 0 +GRID* 3474 0 4.182204861e+00-1.543995939e-01* +* 3.531412500e+00 0 0 +GRID* 3475 0 4.243229167e+00-1.653228299e-01* +* 3.687675000e+00 0 0 +GRID* 3476 0 4.243229167e+00-1.528228299e-01* +* 3.687675000e+00 0 0 +GRID* 3477 0 4.304253472e+00-1.637460659e-01* +* 3.843937500e+00 0 0 +GRID* 3478 0 4.304253472e+00-1.512460659e-01* +* 3.843937500e+00 0 0 +GRID* 3479 0 4.335156250e+00 2.198467487e-01* +* 3.218887500e+00 0 0 +GRID* 3480 0 4.335156250e+00 2.073467487e-01* +* 3.218887500e+00 0 0 +GRID* 3481 0 4.393402778e+00 2.177775981e-01* +* 3.375150000e+00 0 0 +GRID* 3482 0 4.393402778e+00 2.052775981e-01* +* 3.375150000e+00 0 0 +GRID* 3483 0 4.451649306e+00 2.157084474e-01* +* 3.531412500e+00 0 0 +GRID* 3484 0 4.451649306e+00 2.032084474e-01* +* 3.531412500e+00 0 0 +GRID* 3485 0 4.509895833e+00 2.136392968e-01* +* 3.687675000e+00 0 0 +GRID* 3486 0 4.509895833e+00 2.011392968e-01* +* 3.687675000e+00 0 0 +GRID* 3487 0 4.568142361e+00 2.115701462e-01* +* 3.843937500e+00 0 0 +GRID* 3488 0 4.568142361e+00 1.990701462e-01* +* 3.843937500e+00 0 0 +GRID* 3489 0 4.335156250e+00-1.319002155e-01* +* 3.218887500e+00 0 0 +GRID* 3490 0 4.335156250e+00-1.194002155e-01* +* 3.218887500e+00 0 0 +GRID* 3491 0 4.393402778e+00-1.307217176e-01* +* 3.375150000e+00 0 0 +GRID* 3492 0 4.393402778e+00-1.182217176e-01* +* 3.375150000e+00 0 0 +GRID* 3493 0 4.451649306e+00-1.295432197e-01* +* 3.531412500e+00 0 0 +GRID* 3494 0 4.451649306e+00-1.170432197e-01* +* 3.531412500e+00 0 0 +GRID* 3495 0 4.509895833e+00-1.283647218e-01* +* 3.687675000e+00 0 0 +GRID* 3496 0 4.509895833e+00-1.158647218e-01* +* 3.687675000e+00 0 0 +GRID* 3497 0 4.568142361e+00-1.271862238e-01* +* 3.843937500e+00 0 0 +GRID* 3498 0 4.568142361e+00-1.146862238e-01* +* 3.843937500e+00 0 0 +GRID* 3499 0 2.668055556e+00 1.731531720e-01* +* 4.000200000e+00 0 0 +GRID* 3500 0 2.747135417e+00 1.715416944e-01* +* 4.156462500e+00 0 0 +GRID* 3501 0 2.826215278e+00 1.699302168e-01* +* 4.312725000e+00 0 0 +GRID* 3502 0 2.905295139e+00 1.683187392e-01* +* 4.468987500e+00 0 0 +GRID* 3503 0 2.798611111e+00 1.913813744e-01* +* 4.000200000e+00 0 0 +GRID* 3504 0 2.876302083e+00 1.895597947e-01* +* 4.156462500e+00 0 0 +GRID* 3505 0 2.953993056e+00 1.877382149e-01* +* 4.312725000e+00 0 0 +GRID* 3506 0 3.031684028e+00 1.859166352e-01* +* 4.468987500e+00 0 0 +GRID* 3507 0 2.668055556e+00-1.738484875e-01* +* 4.000200000e+00 0 0 +GRID* 3508 0 2.798611111e+00-1.913381511e-01* +* 4.000200000e+00 0 0 +GRID* 3509 0 2.747135417e+00-1.722287259e-01* +* 4.156462500e+00 0 0 +GRID* 3510 0 2.876302083e+00-1.895149502e-01* +* 4.156462500e+00 0 0 +GRID* 3511 0 2.826215278e+00-1.706089644e-01* +* 4.312725000e+00 0 0 +GRID* 3512 0 2.953993056e+00-1.876917493e-01* +* 4.312725000e+00 0 0 +GRID* 3513 0 2.905295139e+00-1.689892028e-01* +* 4.468987500e+00 0 0 +GRID* 3514 0 3.031684028e+00-1.858685484e-01* +* 4.468987500e+00 0 0 +GRID* 3515 0 2.929166667e+00 2.061709195e-01* +* 4.000200000e+00 0 0 +GRID* 3516 0 3.005468750e+00 2.041822876e-01* +* 4.156462500e+00 0 0 +GRID* 3517 0 3.081770833e+00 2.021936557e-01* +* 4.312725000e+00 0 0 +GRID* 3518 0 3.158072917e+00 2.002050238e-01* +* 4.468987500e+00 0 0 +GRID* 3519 0 3.059722222e+00 2.177123329e-01* +* 4.000200000e+00 0 0 +GRID* 3520 0 3.134635417e+00 2.155985814e-01* +* 4.156462500e+00 0 0 +GRID* 3521 0 3.209548611e+00 2.134848298e-01* +* 4.312725000e+00 0 0 +GRID* 3522 0 3.284461806e+00 2.113710783e-01* +* 4.468987500e+00 0 0 +GRID* 3523 0 2.929166667e+00-2.052206398e-01* +* 4.000200000e+00 0 0 +GRID* 3524 0 3.059722222e+00-2.158087427e-01* +* 4.000200000e+00 0 0 +GRID* 3525 0 3.005468750e+00-2.032394684e-01* +* 4.156462500e+00 0 0 +GRID* 3526 0 3.134635417e+00-2.137124776e-01* +* 4.156462500e+00 0 0 +GRID* 3527 0 3.081770833e+00-2.012582969e-01* +* 4.312725000e+00 0 0 +GRID* 3528 0 3.209548611e+00-2.116162124e-01* +* 4.312725000e+00 0 0 +GRID* 3529 0 3.158072917e+00-1.992771254e-01* +* 4.468987500e+00 0 0 +GRID* 3530 0 3.284461806e+00-2.095199473e-01* +* 4.468987500e+00 0 0 +GRID* 3531 0 3.190277778e+00 2.272940395e-01* +* 4.000200000e+00 0 0 +GRID* 3532 0 3.263802083e+00 2.250768120e-01* +* 4.156462500e+00 0 0 +GRID* 3533 0 3.337326389e+00 2.228595846e-01* +* 4.312725000e+00 0 0 +GRID* 3534 0 3.410850694e+00 2.206423571e-01* +* 4.468987500e+00 0 0 +GRID* 3535 0 3.320833333e+00 2.352946856e-01* +* 4.000200000e+00 0 0 +GRID* 3536 0 3.392968750e+00 2.329924717e-01* +* 4.156462500e+00 0 0 +GRID* 3537 0 3.465104167e+00 2.306902579e-01* +* 4.312725000e+00 0 0 +GRID* 3538 0 3.537239583e+00 2.283880441e-01* +* 4.468987500e+00 0 0 +GRID* 3539 0 3.190277778e+00-2.243672024e-01* +* 4.000200000e+00 0 0 +GRID* 3540 0 3.320833333e+00-2.311465278e-01* +* 4.000200000e+00 0 0 +GRID* 3541 0 3.263802083e+00-2.221782386e-01* +* 4.156462500e+00 0 0 +GRID* 3542 0 3.392968750e+00-2.288855827e-01* +* 4.156462500e+00 0 0 +GRID* 3543 0 3.337326389e+00-2.199892747e-01* +* 4.312725000e+00 0 0 +GRID* 3544 0 3.465104167e+00-2.266246375e-01* +* 4.312725000e+00 0 0 +GRID* 3545 0 3.410850694e+00-2.178003108e-01* +* 4.468987500e+00 0 0 +GRID* 3546 0 3.537239583e+00-2.243636924e-01* +* 4.468987500e+00 0 0 +GRID* 3547 0 3.451388889e+00 2.417849964e-01* +* 4.000200000e+00 0 0 +GRID* 3548 0 3.522135417e+00 2.394156274e-01* +* 4.156462500e+00 0 0 +GRID* 3549 0 3.592881944e+00 2.370462584e-01* +* 4.312725000e+00 0 0 +GRID* 3550 0 3.663628472e+00 2.346768894e-01* +* 4.468987500e+00 0 0 +GRID* 3551 0 3.581944444e+00 2.467654133e-01* +* 4.000200000e+00 0 0 +GRID* 3552 0 3.651302083e+00 2.443448924e-01* +* 4.156462500e+00 0 0 +GRID* 3553 0 3.720659722e+00 2.419243714e-01* +* 4.312725000e+00 0 0 +GRID* 3554 0 3.790017361e+00 2.395038505e-01* +* 4.468987500e+00 0 0 +GRID* 3555 0 3.451388889e+00-2.354864215e-01* +* 4.000200000e+00 0 0 +GRID* 3556 0 3.581944444e+00-2.369016373e-01* +* 4.000200000e+00 0 0 +GRID* 3557 0 3.522135417e+00-2.331826219e-01* +* 4.156462500e+00 0 0 +GRID* 3558 0 3.651302083e+00-2.345866428e-01* +* 4.156462500e+00 0 0 +GRID* 3559 0 3.592881944e+00-2.308788224e-01* +* 4.312725000e+00 0 0 +GRID* 3560 0 3.720659722e+00-2.322716483e-01* +* 4.312725000e+00 0 0 +GRID* 3561 0 3.663628472e+00-2.285750229e-01* +* 4.468987500e+00 0 0 +GRID* 3562 0 3.790017361e+00-2.299566537e-01* +* 4.468987500e+00 0 0 +GRID* 3563 0 3.712500000e+00 2.499943534e-01* +* 4.000200000e+00 0 0 +GRID* 3564 0 3.780468750e+00 2.475450897e-01* +* 4.156462500e+00 0 0 +GRID* 3565 0 3.848437500e+00 2.450958259e-01* +* 4.312725000e+00 0 0 +GRID* 3566 0 3.916406250e+00 2.426465622e-01* +* 4.468987500e+00 0 0 +GRID* 3567 0 3.843055556e+00 2.516333002e-01* +* 4.000200000e+00 0 0 +GRID* 3568 0 3.909635417e+00 2.491749462e-01* +* 4.156462500e+00 0 0 +GRID* 3569 0 3.976215278e+00 2.467165923e-01* +* 4.312725000e+00 0 0 +GRID* 3570 0 4.042795139e+00 2.442582383e-01* +* 4.468987500e+00 0 0 +GRID* 3571 0 3.712500000e+00-2.341950054e-01* +* 4.000200000e+00 0 0 +GRID* 3572 0 3.843055556e+00-2.279337162e-01* +* 4.000200000e+00 0 0 +GRID* 3573 0 3.780468750e+00-2.319219431e-01* +* 4.156462500e+00 0 0 +GRID* 3574 0 3.909635417e+00-2.257438087e-01* +* 4.156462500e+00 0 0 +GRID* 3575 0 3.848437500e+00-2.296488809e-01* +* 4.312725000e+00 0 0 +GRID* 3576 0 3.976215278e+00-2.235539012e-01* +* 4.312725000e+00 0 0 +GRID* 3577 0 3.916406250e+00-2.273758186e-01* +* 4.468987500e+00 0 0 +GRID* 3578 0 4.042795139e+00-2.213639937e-01* +* 4.468987500e+00 0 0 +GRID* 3579 0 3.973611111e+00 2.513615773e-01* +* 4.000200000e+00 0 0 +GRID* 3580 0 4.038802083e+00 2.489113715e-01* +* 4.156462500e+00 0 0 +GRID* 3581 0 4.103993056e+00 2.464611657e-01* +* 4.312725000e+00 0 0 +GRID* 3582 0 4.169184028e+00 2.440109600e-01* +* 4.468987500e+00 0 0 +GRID* 3583 0 4.104166667e+00 2.493432563e-01* +* 4.000200000e+00 0 0 +GRID* 3584 0 4.167968750e+00 2.469273279e-01* +* 4.156462500e+00 0 0 +GRID* 3585 0 4.231770833e+00 2.445113995e-01* +* 4.312725000e+00 0 0 +GRID* 3586 0 4.295572917e+00 2.420954711e-01* +* 4.468987500e+00 0 0 +GRID* 3587 0 3.973611111e+00-2.181601650e-01* +* 4.000200000e+00 0 0 +GRID* 3588 0 4.104166667e+00-2.057214242e-01* +* 4.000200000e+00 0 0 +GRID* 3589 0 4.038802083e+00-2.160828715e-01* +* 4.156462500e+00 0 0 +GRID* 3590 0 4.167968750e+00-2.037932148e-01* +* 4.156462500e+00 0 0 +GRID* 3591 0 4.103993056e+00-2.140055780e-01* +* 4.312725000e+00 0 0 +GRID* 3592 0 4.231770833e+00-2.018650053e-01* +* 4.312725000e+00 0 0 +GRID* 3593 0 4.169184028e+00-2.119282845e-01* +* 4.468987500e+00 0 0 +GRID* 3594 0 4.295572917e+00-1.999367959e-01* +* 4.468987500e+00 0 0 +GRID* 3595 0 4.234722222e+00 2.454061072e-01* +* 4.000200000e+00 0 0 +GRID* 3596 0 4.297135417e+00 2.430396501e-01* +* 4.156462500e+00 0 0 +GRID* 3597 0 4.359548611e+00 2.406731930e-01* +* 4.312725000e+00 0 0 +GRID* 3598 0 4.421961806e+00 2.383067359e-01* +* 4.468987500e+00 0 0 +GRID* 3599 0 4.365277778e+00 2.395217176e-01* +* 4.000200000e+00 0 0 +GRID* 3600 0 4.426302083e+00 2.372351499e-01* +* 4.156462500e+00 0 0 +GRID* 3601 0 4.487326389e+00 2.349485822e-01* +* 4.312725000e+00 0 0 +GRID* 3602 0 4.548350694e+00 2.326620144e-01* +* 4.468987500e+00 0 0 +GRID* 3603 0 4.234722222e+00-1.910748740e-01* +* 4.000200000e+00 0 0 +GRID* 3604 0 4.365277778e+00-1.746693019e-01* +* 4.000200000e+00 0 0 +GRID* 3605 0 4.297135417e+00-1.893101122e-01* +* 4.156462500e+00 0 0 +GRID* 3606 0 4.426302083e+00-1.730925379e-01* +* 4.156462500e+00 0 0 +GRID* 3607 0 4.359548611e+00-1.875453504e-01* +* 4.312725000e+00 0 0 +GRID* 3608 0 4.487326389e+00-1.715157739e-01* +* 4.312725000e+00 0 0 +GRID* 3609 0 4.421961806e+00-1.857805885e-01* +* 4.468987500e+00 0 0 +GRID* 3610 0 4.548350694e+00-1.699390099e-01* +* 4.468987500e+00 0 0 +GRID* 3611 0 4.495833333e+00 2.317964878e-01* +* 4.000200000e+00 0 0 +GRID* 3612 0 4.555468750e+00 2.296017613e-01* +* 4.156462500e+00 0 0 +GRID* 3613 0 4.615104167e+00 2.274070347e-01* +* 4.312725000e+00 0 0 +GRID* 3614 0 4.674739583e+00 2.252123082e-01* +* 4.468987500e+00 0 0 +GRID* 3615 0 4.626388889e+00 2.220009955e-01* +* 4.000200000e+00 0 0 +GRID* 3616 0 4.684635417e+00 2.199318449e-01* +* 4.156462500e+00 0 0 +GRID* 3617 0 4.742881944e+00 2.178626942e-01* +* 4.312725000e+00 0 0 +GRID* 3618 0 4.801128472e+00 2.157935436e-01* +* 4.468987500e+00 0 0 +GRID* 3619 0 4.495833333e+00-1.570578552e-01* +* 4.000200000e+00 0 0 +GRID* 3620 0 4.626388889e+00-1.385077259e-01* +* 4.000200000e+00 0 0 +GRID* 3621 0 4.555468750e+00-1.556786274e-01* +* 4.156462500e+00 0 0 +GRID* 3622 0 4.684635417e+00-1.373292280e-01* +* 4.156462500e+00 0 0 +GRID* 3623 0 4.615104167e+00-1.542977228e-01* +* 4.312725000e+00 0 0 +GRID* 3624 0 4.742881944e+00-1.361507300e-01* +* 4.312725000e+00 0 0 +GRID* 3625 0 4.674739583e+00-1.529138282e-01* +* 4.468987500e+00 0 0 +GRID* 3626 0 4.801128472e+00-1.349722321e-01* +* 4.468987500e+00 0 0 +GRID* 3627 0 4.756944444e+00 2.104253676e-01* +* 4.000200000e+00 0 0 +GRID* 3628 0 4.813802083e+00 2.085023443e-01* +* 4.156462500e+00 0 0 +GRID* 3629 0 4.870659722e+00 2.065793209e-01* +* 4.312725000e+00 0 0 +GRID* 3630 0 4.927517361e+00 2.046562976e-01* +* 4.468987500e+00 0 0 +GRID* 3631 0 4.756944444e+00-1.195553466e-01* +* 4.000200000e+00 0 0 +GRID* 3632 0 4.813802083e+00-1.185810774e-01* +* 4.156462500e+00 0 0 +GRID* 3633 0 4.870659722e+00-1.176068083e-01* +* 4.312725000e+00 0 0 +GRID* 3634 0 4.927517361e+00-1.166325391e-01* +* 4.468987500e+00 0 0 +GRID* 3635 0 2.798611111e+00 1.788813744e-01* +* 4.000200000e+00 0 0 +GRID* 3636 0 2.798611111e+00 1.663813744e-01* +* 4.000200000e+00 0 0 +GRID* 3637 0 2.876302083e+00 1.770597947e-01* +* 4.156462500e+00 0 0 +GRID* 3638 0 2.876302083e+00 1.645597947e-01* +* 4.156462500e+00 0 0 +GRID* 3639 0 2.953993056e+00 1.752382149e-01* +* 4.312725000e+00 0 0 +GRID* 3640 0 2.953993056e+00 1.627382149e-01* +* 4.312725000e+00 0 0 +GRID* 3641 0 3.031684028e+00 1.734166352e-01* +* 4.468987500e+00 0 0 +GRID* 3642 0 3.031684028e+00 1.609166352e-01* +* 4.468987500e+00 0 0 +GRID* 3643 0 3.109375000e+00 1.715950554e-01* +* 4.625250000e+00 0 0 +GRID* 3644 0 3.109375000e+00 1.590950554e-01* +* 4.625250000e+00 0 0 +GRID* 3645 0 2.798611111e+00-1.788381511e-01* +* 4.000200000e+00 0 0 +GRID* 3646 0 2.798611111e+00-1.663381511e-01* +* 4.000200000e+00 0 0 +GRID* 3647 0 2.876302083e+00-1.770149502e-01* +* 4.156462500e+00 0 0 +GRID* 3648 0 2.876302083e+00-1.645149502e-01* +* 4.156462500e+00 0 0 +GRID* 3649 0 2.953993056e+00-1.751917493e-01* +* 4.312725000e+00 0 0 +GRID* 3650 0 2.953993056e+00-1.626917493e-01* +* 4.312725000e+00 0 0 +GRID* 3651 0 3.031684028e+00-1.733685484e-01* +* 4.468987500e+00 0 0 +GRID* 3652 0 3.031684028e+00-1.608685484e-01* +* 4.468987500e+00 0 0 +GRID* 3653 0 3.109375000e+00-1.715453474e-01* +* 4.625250000e+00 0 0 +GRID* 3654 0 3.109375000e+00-1.590453474e-01* +* 4.625250000e+00 0 0 +GRID* 3655 0 3.059722222e+00 2.052123329e-01* +* 4.000200000e+00 0 0 +GRID* 3656 0 3.059722222e+00 1.927123329e-01* +* 4.000200000e+00 0 0 +GRID* 3657 0 3.134635417e+00 2.030985814e-01* +* 4.156462500e+00 0 0 +GRID* 3658 0 3.134635417e+00 1.905985814e-01* +* 4.156462500e+00 0 0 +GRID* 3659 0 3.209548611e+00 2.009848298e-01* +* 4.312725000e+00 0 0 +GRID* 3660 0 3.209548611e+00 1.884848298e-01* +* 4.312725000e+00 0 0 +GRID* 3661 0 3.284461806e+00 1.988710783e-01* +* 4.468987500e+00 0 0 +GRID* 3662 0 3.284461806e+00 1.863710783e-01* +* 4.468987500e+00 0 0 +GRID* 3663 0 3.359375000e+00 1.967573267e-01* +* 4.625250000e+00 0 0 +GRID* 3664 0 3.359375000e+00 1.842573267e-01* +* 4.625250000e+00 0 0 +GRID* 3665 0 3.059722222e+00-2.033087427e-01* +* 4.000200000e+00 0 0 +GRID* 3666 0 3.059722222e+00-1.908087427e-01* +* 4.000200000e+00 0 0 +GRID* 3667 0 3.134635417e+00-2.012124776e-01* +* 4.156462500e+00 0 0 +GRID* 3668 0 3.134635417e+00-1.887124776e-01* +* 4.156462500e+00 0 0 +GRID* 3669 0 3.209548611e+00-1.991162124e-01* +* 4.312725000e+00 0 0 +GRID* 3670 0 3.209548611e+00-1.866162124e-01* +* 4.312725000e+00 0 0 +GRID* 3671 0 3.284461806e+00-1.970199473e-01* +* 4.468987500e+00 0 0 +GRID* 3672 0 3.284461806e+00-1.845199473e-01* +* 4.468987500e+00 0 0 +GRID* 3673 0 3.359375000e+00-1.949236821e-01* +* 4.625250000e+00 0 0 +GRID* 3674 0 3.359375000e+00-1.824236821e-01* +* 4.625250000e+00 0 0 +GRID* 3675 0 3.320833333e+00 2.227946856e-01* +* 4.000200000e+00 0 0 +GRID* 3676 0 3.320833333e+00 2.102946856e-01* +* 4.000200000e+00 0 0 +GRID* 3677 0 3.392968750e+00 2.204924717e-01* +* 4.156462500e+00 0 0 +GRID* 3678 0 3.392968750e+00 2.079924717e-01* +* 4.156462500e+00 0 0 +GRID* 3679 0 3.465104167e+00 2.181902579e-01* +* 4.312725000e+00 0 0 +GRID* 3680 0 3.465104167e+00 2.056902579e-01* +* 4.312725000e+00 0 0 +GRID* 3681 0 3.537239583e+00 2.158880441e-01* +* 4.468987500e+00 0 0 +GRID* 3682 0 3.537239583e+00 2.033880441e-01* +* 4.468987500e+00 0 0 +GRID* 3683 0 3.609375000e+00 2.135858303e-01* +* 4.625250000e+00 0 0 +GRID* 3684 0 3.609375000e+00 2.010858303e-01* +* 4.625250000e+00 0 0 +GRID* 3685 0 3.320833333e+00-2.186465278e-01* +* 4.000200000e+00 0 0 +GRID* 3686 0 3.320833333e+00-2.061465278e-01* +* 4.000200000e+00 0 0 +GRID* 3687 0 3.392968750e+00-2.163855827e-01* +* 4.156462500e+00 0 0 +GRID* 3688 0 3.392968750e+00-2.038855827e-01* +* 4.156462500e+00 0 0 +GRID* 3689 0 3.465104167e+00-2.141246375e-01* +* 4.312725000e+00 0 0 +GRID* 3690 0 3.465104167e+00-2.016246375e-01* +* 4.312725000e+00 0 0 +GRID* 3691 0 3.537239583e+00-2.118636924e-01* +* 4.468987500e+00 0 0 +GRID* 3692 0 3.537239583e+00-1.993636924e-01* +* 4.468987500e+00 0 0 +GRID* 3693 0 3.609375000e+00-2.096027473e-01* +* 4.625250000e+00 0 0 +GRID* 3694 0 3.609375000e+00-1.971027473e-01* +* 4.625250000e+00 0 0 +GRID* 3695 0 3.581944444e+00 2.342654133e-01* +* 4.000200000e+00 0 0 +GRID* 3696 0 3.581944444e+00 2.217654133e-01* +* 4.000200000e+00 0 0 +GRID* 3697 0 3.651302083e+00 2.318448924e-01* +* 4.156462500e+00 0 0 +GRID* 3698 0 3.651302083e+00 2.193448924e-01* +* 4.156462500e+00 0 0 +GRID* 3699 0 3.720659722e+00 2.294243714e-01* +* 4.312725000e+00 0 0 +GRID* 3700 0 3.720659722e+00 2.169243714e-01* +* 4.312725000e+00 0 0 +GRID* 3701 0 3.790017361e+00 2.270038505e-01* +* 4.468987500e+00 0 0 +GRID* 3702 0 3.790017361e+00 2.145038505e-01* +* 4.468987500e+00 0 0 +GRID* 3703 0 3.859375000e+00 2.245833295e-01* +* 4.625250000e+00 0 0 +GRID* 3704 0 3.859375000e+00 2.120833295e-01* +* 4.625250000e+00 0 0 +GRID* 3705 0 3.581944444e+00-2.244016373e-01* +* 4.000200000e+00 0 0 +GRID* 3706 0 3.581944444e+00-2.119016373e-01* +* 4.000200000e+00 0 0 +GRID* 3707 0 3.651302083e+00-2.220866428e-01* +* 4.156462500e+00 0 0 +GRID* 3708 0 3.651302083e+00-2.095866428e-01* +* 4.156462500e+00 0 0 +GRID* 3709 0 3.720659722e+00-2.197716483e-01* +* 4.312725000e+00 0 0 +GRID* 3710 0 3.720659722e+00-2.072716483e-01* +* 4.312725000e+00 0 0 +GRID* 3711 0 3.790017361e+00-2.174566537e-01* +* 4.468987500e+00 0 0 +GRID* 3712 0 3.790017361e+00-2.049566537e-01* +* 4.468987500e+00 0 0 +GRID* 3713 0 3.859375000e+00-2.151416592e-01* +* 4.625250000e+00 0 0 +GRID* 3714 0 3.859375000e+00-2.026416592e-01* +* 4.625250000e+00 0 0 +GRID* 3715 0 3.843055556e+00 2.391333002e-01* +* 4.000200000e+00 0 0 +GRID* 3716 0 3.843055556e+00 2.266333002e-01* +* 4.000200000e+00 0 0 +GRID* 3717 0 3.909635417e+00 2.366749462e-01* +* 4.156462500e+00 0 0 +GRID* 3718 0 3.909635417e+00 2.241749462e-01* +* 4.156462500e+00 0 0 +GRID* 3719 0 3.976215278e+00 2.342165923e-01* +* 4.312725000e+00 0 0 +GRID* 3720 0 3.976215278e+00 2.217165923e-01* +* 4.312725000e+00 0 0 +GRID* 3721 0 4.042795139e+00 2.317582383e-01* +* 4.468987500e+00 0 0 +GRID* 3722 0 4.042795139e+00 2.192582383e-01* +* 4.468987500e+00 0 0 +GRID* 3723 0 4.109375000e+00 2.292998843e-01* +* 4.625250000e+00 0 0 +GRID* 3724 0 4.109375000e+00 2.167998843e-01* +* 4.625250000e+00 0 0 +GRID* 3725 0 3.843055556e+00-2.154337162e-01* +* 4.000200000e+00 0 0 +GRID* 3726 0 3.843055556e+00-2.029337162e-01* +* 4.000200000e+00 0 0 +GRID* 3727 0 3.909635417e+00-2.132438087e-01* +* 4.156462500e+00 0 0 +GRID* 3728 0 3.909635417e+00-2.007438087e-01* +* 4.156462500e+00 0 0 +GRID* 3729 0 3.976215278e+00-2.110539012e-01* +* 4.312725000e+00 0 0 +GRID* 3730 0 3.976215278e+00-1.985539012e-01* +* 4.312725000e+00 0 0 +GRID* 3731 0 4.042795139e+00-2.088639937e-01* +* 4.468987500e+00 0 0 +GRID* 3732 0 4.042795139e+00-1.963639937e-01* +* 4.468987500e+00 0 0 +GRID* 3733 0 4.109375000e+00-2.066740862e-01* +* 4.625250000e+00 0 0 +GRID* 3734 0 4.109375000e+00-1.941740862e-01* +* 4.625250000e+00 0 0 +GRID* 3735 0 4.104166667e+00 2.368432563e-01* +* 4.000200000e+00 0 0 +GRID* 3736 0 4.104166667e+00 2.243432563e-01* +* 4.000200000e+00 0 0 +GRID* 3737 0 4.167968750e+00 2.344273279e-01* +* 4.156462500e+00 0 0 +GRID* 3738 0 4.167968750e+00 2.219273279e-01* +* 4.156462500e+00 0 0 +GRID* 3739 0 4.231770833e+00 2.320113995e-01* +* 4.312725000e+00 0 0 +GRID* 3740 0 4.231770833e+00 2.195113995e-01* +* 4.312725000e+00 0 0 +GRID* 3741 0 4.295572917e+00 2.295954711e-01* +* 4.468987500e+00 0 0 +GRID* 3742 0 4.295572917e+00 2.170954711e-01* +* 4.468987500e+00 0 0 +GRID* 3743 0 4.359375000e+00 2.271795427e-01* +* 4.625250000e+00 0 0 +GRID* 3744 0 4.359375000e+00 2.146795427e-01* +* 4.625250000e+00 0 0 +GRID* 3745 0 4.104166667e+00-1.932214242e-01* +* 4.000200000e+00 0 0 +GRID* 3746 0 4.104166667e+00-1.807214242e-01* +* 4.000200000e+00 0 0 +GRID* 3747 0 4.167968750e+00-1.912932148e-01* +* 4.156462500e+00 0 0 +GRID* 3748 0 4.167968750e+00-1.787932148e-01* +* 4.156462500e+00 0 0 +GRID* 3749 0 4.231770833e+00-1.893650053e-01* +* 4.312725000e+00 0 0 +GRID* 3750 0 4.231770833e+00-1.768650053e-01* +* 4.312725000e+00 0 0 +GRID* 3751 0 4.295572917e+00-1.874367959e-01* +* 4.468987500e+00 0 0 +GRID* 3752 0 4.295572917e+00-1.749367959e-01* +* 4.468987500e+00 0 0 +GRID* 3753 0 4.359375000e+00-1.855085865e-01* +* 4.625250000e+00 0 0 +GRID* 3754 0 4.359375000e+00-1.730085865e-01* +* 4.625250000e+00 0 0 +GRID* 3755 0 4.365277778e+00 2.270217176e-01* +* 4.000200000e+00 0 0 +GRID* 3756 0 4.365277778e+00 2.145217176e-01* +* 4.000200000e+00 0 0 +GRID* 3757 0 4.426302083e+00 2.247351499e-01* +* 4.156462500e+00 0 0 +GRID* 3758 0 4.426302083e+00 2.122351499e-01* +* 4.156462500e+00 0 0 +GRID* 3759 0 4.487326389e+00 2.224485822e-01* +* 4.312725000e+00 0 0 +GRID* 3760 0 4.487326389e+00 2.099485822e-01* +* 4.312725000e+00 0 0 +GRID* 3761 0 4.548350694e+00 2.201620144e-01* +* 4.468987500e+00 0 0 +GRID* 3762 0 4.548350694e+00 2.076620144e-01* +* 4.468987500e+00 0 0 +GRID* 3763 0 4.609375000e+00 2.178754467e-01* +* 4.625250000e+00 0 0 +GRID* 3764 0 4.609375000e+00 2.053754467e-01* +* 4.625250000e+00 0 0 +GRID* 3765 0 4.365277778e+00-1.621693019e-01* +* 4.000200000e+00 0 0 +GRID* 3766 0 4.365277778e+00-1.496693019e-01* +* 4.000200000e+00 0 0 +GRID* 3767 0 4.426302083e+00-1.605925379e-01* +* 4.156462500e+00 0 0 +GRID* 3768 0 4.426302083e+00-1.480925379e-01* +* 4.156462500e+00 0 0 +GRID* 3769 0 4.487326389e+00-1.590157739e-01* +* 4.312725000e+00 0 0 +GRID* 3770 0 4.487326389e+00-1.465157739e-01* +* 4.312725000e+00 0 0 +GRID* 3771 0 4.548350694e+00-1.574390099e-01* +* 4.468987500e+00 0 0 +GRID* 3772 0 4.548350694e+00-1.449390099e-01* +* 4.468987500e+00 0 0 +GRID* 3773 0 4.609375000e+00-1.558622459e-01* +* 4.625250000e+00 0 0 +GRID* 3774 0 4.609375000e+00-1.433622459e-01* +* 4.625250000e+00 0 0 +GRID* 3775 0 4.626388889e+00 2.095009955e-01* +* 4.000200000e+00 0 0 +GRID* 3776 0 4.626388889e+00 1.970009955e-01* +* 4.000200000e+00 0 0 +GRID* 3777 0 4.684635417e+00 2.074318449e-01* +* 4.156462500e+00 0 0 +GRID* 3778 0 4.684635417e+00 1.949318449e-01* +* 4.156462500e+00 0 0 +GRID* 3779 0 4.742881944e+00 2.053626942e-01* +* 4.312725000e+00 0 0 +GRID* 3780 0 4.742881944e+00 1.928626942e-01* +* 4.312725000e+00 0 0 +GRID* 3781 0 4.801128472e+00 2.032935436e-01* +* 4.468987500e+00 0 0 +GRID* 3782 0 4.801128472e+00 1.907935436e-01* +* 4.468987500e+00 0 0 +GRID* 3783 0 4.859375000e+00 2.012243929e-01* +* 4.625250000e+00 0 0 +GRID* 3784 0 4.859375000e+00 1.887243929e-01* +* 4.625250000e+00 0 0 +GRID* 3785 0 4.626388889e+00-1.260077259e-01* +* 4.000200000e+00 0 0 +GRID* 3786 0 4.626388889e+00-1.135077259e-01* +* 4.000200000e+00 0 0 +GRID* 3787 0 4.684635417e+00-1.248292280e-01* +* 4.156462500e+00 0 0 +GRID* 3788 0 4.684635417e+00-1.123292280e-01* +* 4.156462500e+00 0 0 +GRID* 3789 0 4.742881944e+00-1.236507300e-01* +* 4.312725000e+00 0 0 +GRID* 3790 0 4.742881944e+00-1.111507300e-01* +* 4.312725000e+00 0 0 +GRID* 3791 0 4.801128472e+00-1.224722321e-01* +* 4.468987500e+00 0 0 +GRID* 3792 0 4.801128472e+00-1.099722321e-01* +* 4.468987500e+00 0 0 +GRID* 3793 0 4.859375000e+00-1.212937342e-01* +* 4.625250000e+00 0 0 +GRID* 3794 0 4.859375000e+00-1.087937342e-01* +* 4.625250000e+00 0 0 +GRID* 3795 0 3.063454861e+00 1.650957840e-01* +* 4.781512500e+00 0 0 +GRID* 3796 0 3.142534722e+00 1.634843064e-01* +* 4.937775000e+00 0 0 +GRID* 3797 0 3.221614583e+00 1.618728288e-01* +* 5.094037500e+00 0 0 +GRID* 3798 0 3.300694444e+00 1.602613512e-01* +* 5.250300000e+00 0 0 +GRID* 3799 0 3.187065972e+00 1.822734757e-01* +* 4.781512500e+00 0 0 +GRID* 3800 0 3.264756944e+00 1.804518959e-01* +* 4.937775000e+00 0 0 +GRID* 3801 0 3.342447917e+00 1.786303162e-01* +* 5.094037500e+00 0 0 +GRID* 3802 0 3.420138889e+00 1.768087364e-01* +* 5.250300000e+00 0 0 +GRID* 3803 0 3.063454861e+00-1.657496797e-01* +* 4.781512500e+00 0 0 +GRID* 3804 0 3.187065972e+00-1.822221465e-01* +* 4.781512500e+00 0 0 +GRID* 3805 0 3.142534722e+00-1.641299182e-01* +* 4.937775000e+00 0 0 +GRID* 3806 0 3.264756944e+00-1.803989456e-01* +* 4.937775000e+00 0 0 +GRID* 3807 0 3.221614583e+00-1.625101566e-01* +* 5.094037500e+00 0 0 +GRID* 3808 0 3.342447917e+00-1.785757447e-01* +* 5.094037500e+00 0 0 +GRID* 3809 0 3.300694444e+00-1.608903951e-01* +* 5.250300000e+00 0 0 +GRID* 3810 0 3.420138889e+00-1.767525438e-01* +* 5.250300000e+00 0 0 +GRID* 3811 0 3.310677083e+00 1.962277600e-01* +* 4.781512500e+00 0 0 +GRID* 3812 0 3.386979167e+00 1.942391281e-01* +* 4.937775000e+00 0 0 +GRID* 3813 0 3.463281250e+00 1.922504962e-01* +* 5.094037500e+00 0 0 +GRID* 3814 0 3.539583333e+00 1.902618643e-01* +* 5.250300000e+00 0 0 +GRID* 3815 0 3.434288194e+00 2.071435752e-01* +* 4.781512500e+00 0 0 +GRID* 3816 0 3.509201389e+00 2.050298236e-01* +* 4.937775000e+00 0 0 +GRID* 3817 0 3.584114583e+00 2.029160721e-01* +* 5.094037500e+00 0 0 +GRID* 3818 0 3.659027778e+00 2.008023205e-01* +* 5.250300000e+00 0 0 +GRID* 3819 0 3.310677083e+00-1.953147825e-01* +* 4.781512500e+00 0 0 +GRID* 3820 0 3.434288194e+00-2.053274170e-01* +* 4.781512500e+00 0 0 +GRID* 3821 0 3.386979167e+00-1.933336111e-01* +* 4.937775000e+00 0 0 +GRID* 3822 0 3.509201389e+00-2.032311519e-01* +* 4.937775000e+00 0 0 +GRID* 3823 0 3.463281250e+00-1.913524396e-01* +* 5.094037500e+00 0 0 +GRID* 3824 0 3.584114583e+00-2.011348867e-01* +* 5.094037500e+00 0 0 +GRID* 3825 0 3.539583333e+00-1.893712682e-01* +* 5.250300000e+00 0 0 +GRID* 3826 0 3.659027778e+00-1.990386216e-01* +* 5.250300000e+00 0 0 +GRID* 3827 0 3.557899306e+00 2.162079021e-01* +* 4.781512500e+00 0 0 +GRID* 3828 0 3.631423611e+00 2.139906746e-01* +* 4.937775000e+00 0 0 +GRID* 3829 0 3.704947917e+00 2.117734471e-01* +* 5.094037500e+00 0 0 +GRID* 3830 0 3.778472222e+00 2.095562196e-01* +* 5.250300000e+00 0 0 +GRID* 3831 0 3.681510417e+00 2.237836164e-01* +* 4.781512500e+00 0 0 +GRID* 3832 0 3.753645833e+00 2.214814026e-01* +* 4.937775000e+00 0 0 +GRID* 3833 0 3.825781250e+00 2.191791888e-01* +* 5.094037500e+00 0 0 +GRID* 3834 0 3.897916667e+00 2.168769750e-01* +* 5.250300000e+00 0 0 +GRID* 3835 0 3.557899306e+00-2.134223830e-01* +* 4.781512500e+00 0 0 +GRID* 3836 0 3.681510417e+00-2.198418022e-01* +* 4.781512500e+00 0 0 +GRID* 3837 0 3.631423611e+00-2.112334191e-01* +* 4.937775000e+00 0 0 +GRID* 3838 0 3.753645833e+00-2.175808570e-01* +* 4.937775000e+00 0 0 +GRID* 3839 0 3.704947917e+00-2.090444552e-01* +* 5.094037500e+00 0 0 +GRID* 3840 0 3.825781250e+00-2.153199119e-01* +* 5.094037500e+00 0 0 +GRID* 3841 0 3.778472222e+00-2.068554913e-01* +* 5.250300000e+00 0 0 +GRID* 3842 0 3.897916667e+00-2.130589668e-01* +* 5.250300000e+00 0 0 +GRID* 3843 0 3.805121528e+00 2.299381515e-01* +* 4.781512500e+00 0 0 +GRID* 3844 0 3.875868056e+00 2.275687825e-01* +* 4.937775000e+00 0 0 +GRID* 3845 0 3.946614583e+00 2.251994135e-01* +* 5.094037500e+00 0 0 +GRID* 3846 0 4.017361111e+00 2.228300445e-01* +* 5.250300000e+00 0 0 +GRID* 3847 0 3.928732639e+00 2.346628086e-01* +* 4.781512500e+00 0 0 +GRID* 3848 0 3.998090278e+00 2.322422877e-01* +* 4.937775000e+00 0 0 +GRID* 3849 0 4.067447917e+00 2.298217667e-01* +* 5.094037500e+00 0 0 +GRID* 3850 0 4.136805556e+00 2.274012458e-01* +* 5.250300000e+00 0 0 +GRID* 3851 0 3.805121528e+00-2.239674239e-01* +* 4.781512500e+00 0 0 +GRID* 3852 0 3.928732639e+00-2.253266646e-01* +* 4.781512500e+00 0 0 +GRID* 3853 0 3.875868056e+00-2.216636243e-01* +* 4.937775000e+00 0 0 +GRID* 3854 0 3.998090278e+00-2.230116701e-01* +* 4.937775000e+00 0 0 +GRID* 3855 0 3.946614583e+00-2.193598248e-01* +* 5.094037500e+00 0 0 +GRID* 3856 0 4.067447917e+00-2.206966756e-01* +* 5.094037500e+00 0 0 +GRID* 3857 0 4.017361111e+00-2.170560253e-01* +* 5.250300000e+00 0 0 +GRID* 3858 0 4.136805556e+00-2.183816810e-01* +* 5.250300000e+00 0 0 +GRID* 3859 0 4.052343750e+00 2.377480348e-01* +* 4.781512500e+00 0 0 +GRID* 3860 0 4.120312500e+00 2.352987710e-01* +* 4.937775000e+00 0 0 +GRID* 3861 0 4.188281250e+00 2.328495073e-01* +* 5.094037500e+00 0 0 +GRID* 3862 0 4.256250000e+00 2.304002436e-01* +* 5.250300000e+00 0 0 +GRID* 3863 0 4.175954861e+00 2.393415304e-01* +* 4.781512500e+00 0 0 +GRID* 3864 0 4.242534722e+00 2.368831764e-01* +* 4.937775000e+00 0 0 +GRID* 3865 0 4.309114583e+00 2.344248224e-01* +* 5.094037500e+00 0 0 +GRID* 3866 0 4.375694444e+00 2.319664685e-01* +* 5.250300000e+00 0 0 +GRID* 3867 0 4.052343750e+00-2.228296940e-01* +* 4.781512500e+00 0 0 +GRID* 3868 0 4.175954861e+00-2.169841787e-01* +* 4.781512500e+00 0 0 +GRID* 3869 0 4.120312500e+00-2.205566317e-01* +* 4.937775000e+00 0 0 +GRID* 3870 0 4.242534722e+00-2.147942712e-01* +* 4.937775000e+00 0 0 +GRID* 3871 0 4.188281250e+00-2.182835694e-01* +* 5.094037500e+00 0 0 +GRID* 3872 0 4.309114583e+00-2.126043637e-01* +* 5.094037500e+00 0 0 +GRID* 3873 0 4.256250000e+00-2.160105071e-01* +* 5.250300000e+00 0 0 +GRID* 3874 0 4.375694444e+00-2.104144562e-01* +* 5.250300000e+00 0 0 +GRID* 3875 0 4.299565972e+00 2.391105484e-01* +* 4.781512500e+00 0 0 +GRID* 3876 0 4.364756944e+00 2.366603426e-01* +* 4.937775000e+00 0 0 +GRID* 3877 0 4.429947917e+00 2.342101368e-01* +* 5.094037500e+00 0 0 +GRID* 3878 0 4.495138889e+00 2.317599310e-01* +* 5.250300000e+00 0 0 +GRID* 3879 0 4.423177083e+00 2.372636143e-01* +* 4.781512500e+00 0 0 +GRID* 3880 0 4.486979167e+00 2.348476859e-01* +* 4.937775000e+00 0 0 +GRID* 3881 0 4.550781250e+00 2.324317575e-01* +* 5.094037500e+00 0 0 +GRID* 3882 0 4.614583333e+00 2.300158291e-01* +* 5.250300000e+00 0 0 +GRID* 3883 0 4.299565972e+00-2.077736976e-01* +* 4.781512500e+00 0 0 +GRID* 3884 0 4.423177083e+00-1.960803770e-01* +* 4.781512500e+00 0 0 +GRID* 3885 0 4.364756944e+00-2.056964041e-01* +* 4.937775000e+00 0 0 +GRID* 3886 0 4.486979167e+00-1.941521676e-01* +* 4.937775000e+00 0 0 +GRID* 3887 0 4.429947917e+00-2.036191107e-01* +* 5.094037500e+00 0 0 +GRID* 3888 0 4.550781250e+00-1.922239582e-01* +* 5.094037500e+00 0 0 +GRID* 3889 0 4.495138889e+00-2.015418172e-01* +* 5.250300000e+00 0 0 +GRID* 3890 0 4.614583333e+00-1.902957487e-01* +* 5.250300000e+00 0 0 +GRID* 3891 0 4.546788194e+00 2.335738216e-01* +* 4.781512500e+00 0 0 +GRID* 3892 0 4.609201389e+00 2.312073645e-01* +* 4.937775000e+00 0 0 +GRID* 3893 0 4.671614583e+00 2.288409074e-01* +* 5.094037500e+00 0 0 +GRID* 3894 0 4.734027778e+00 2.264744502e-01* +* 5.250300000e+00 0 0 +GRID* 3895 0 4.670399306e+00 2.280888790e-01* +* 4.781512500e+00 0 0 +GRID* 3896 0 4.731423611e+00 2.258023113e-01* +* 4.937775000e+00 0 0 +GRID* 3897 0 4.792447917e+00 2.235157435e-01* +* 5.094037500e+00 0 0 +GRID* 3898 0 4.853472222e+00 2.212291758e-01* +* 5.250300000e+00 0 0 +GRID* 3899 0 4.546788194e+00-1.822510649e-01* +* 4.781512500e+00 0 0 +GRID* 3900 0 4.670399306e+00-1.667854819e-01* +* 4.781512500e+00 0 0 +GRID* 3901 0 4.609201389e+00-1.804863030e-01* +* 4.937775000e+00 0 0 +GRID* 3902 0 4.731423611e+00-1.652087179e-01* +* 4.937775000e+00 0 0 +GRID* 3903 0 4.671614583e+00-1.787215412e-01* +* 5.094037500e+00 0 0 +GRID* 3904 0 4.792447917e+00-1.636319539e-01* +* 5.094037500e+00 0 0 +GRID* 3905 0 4.734027778e+00-1.769567794e-01* +* 5.250300000e+00 0 0 +GRID* 3906 0 4.853472222e+00-1.620551899e-01* +* 5.250300000e+00 0 0 +GRID* 3907 0 4.794010417e+00 2.208228551e-01* +* 4.781512500e+00 0 0 +GRID* 3908 0 4.853645833e+00 2.186281285e-01* +* 4.937775000e+00 0 0 +GRID* 3909 0 4.913281250e+00 2.164334020e-01* +* 5.094037500e+00 0 0 +GRID* 3910 0 4.972916667e+00 2.142386754e-01* +* 5.250300000e+00 0 0 +GRID* 3911 0 4.917621528e+00 2.116552423e-01* +* 4.781512500e+00 0 0 +GRID* 3912 0 4.975868056e+00 2.095860916e-01* +* 4.937775000e+00 0 0 +GRID* 3913 0 5.034114583e+00 2.075169410e-01* +* 5.094037500e+00 0 0 +GRID* 3914 0 5.092361111e+00 2.054477904e-01* +* 5.250300000e+00 0 0 +GRID* 3915 0 4.794010417e+00-1.501460391e-01* +* 4.781512500e+00 0 0 +GRID* 3916 0 4.917621528e+00-1.326152363e-01* +* 4.781512500e+00 0 0 +GRID* 3917 0 4.853645833e+00-1.487621446e-01* +* 4.937775000e+00 0 0 +GRID* 3918 0 4.975868056e+00-1.314367383e-01* +* 4.937775000e+00 0 0 +GRID* 3919 0 4.913281250e+00-1.473782501e-01* +* 5.094037500e+00 0 0 +GRID* 3920 0 5.034114583e+00-1.302582404e-01* +* 5.094037500e+00 0 0 +GRID* 3921 0 4.972916667e+00-1.459943555e-01* +* 5.250300000e+00 0 0 +GRID* 3922 0 5.092361111e+00-1.290797425e-01* +* 5.250300000e+00 0 0 +GRID* 3923 0 5.041232639e+00 2.008102510e-01* +* 4.781512500e+00 0 0 +GRID* 3924 0 5.098090278e+00 1.988801134e-01* +* 4.937775000e+00 0 0 +GRID* 3925 0 5.154947917e+00 1.969449398e-01* +* 5.094037500e+00 0 0 +GRID* 3926 0 5.211805556e+00 1.950097663e-01* +* 5.250300000e+00 0 0 +GRID* 3927 0 5.041232639e+00-1.146840008e-01* +* 4.781512500e+00 0 0 +GRID* 3928 0 5.098090278e+00-1.137097317e-01* +* 4.937775000e+00 0 0 +GRID* 3929 0 5.154947917e+00-1.127354626e-01* +* 5.094037500e+00 0 0 +GRID* 3930 0 5.211805556e+00-1.117611934e-01* +* 5.250300000e+00 0 0 +GRID* 3931 0 3.187065972e+00 1.697734757e-01* +* 4.781512500e+00 0 0 +GRID* 3932 0 3.187065972e+00 1.572734757e-01* +* 4.781512500e+00 0 0 +GRID* 3933 0 3.264756944e+00 1.679518959e-01* +* 4.937775000e+00 0 0 +GRID* 3934 0 3.264756944e+00 1.554518959e-01* +* 4.937775000e+00 0 0 +GRID* 3935 0 3.342447917e+00 1.661303162e-01* +* 5.094037500e+00 0 0 +GRID* 3936 0 3.342447917e+00 1.536303162e-01* +* 5.094037500e+00 0 0 +GRID* 3937 0 3.420138889e+00 1.643087364e-01* +* 5.250300000e+00 0 0 +GRID* 3938 0 3.420138889e+00 1.518087364e-01* +* 5.250300000e+00 0 0 +GRID* 3939 0 3.497829861e+00 1.624871567e-01* +* 5.406562500e+00 0 0 +GRID* 3940 0 3.497829861e+00 1.499871567e-01* +* 5.406562500e+00 0 0 +GRID* 3941 0 3.187065972e+00-1.697221465e-01* +* 4.781512500e+00 0 0 +GRID* 3942 0 3.187065972e+00-1.572221465e-01* +* 4.781512500e+00 0 0 +GRID* 3943 0 3.264756944e+00-1.678989456e-01* +* 4.937775000e+00 0 0 +GRID* 3944 0 3.264756944e+00-1.553989456e-01* +* 4.937775000e+00 0 0 +GRID* 3945 0 3.342447917e+00-1.660757447e-01* +* 5.094037500e+00 0 0 +GRID* 3946 0 3.342447917e+00-1.535757447e-01* +* 5.094037500e+00 0 0 +GRID* 3947 0 3.420138889e+00-1.642525438e-01* +* 5.250300000e+00 0 0 +GRID* 3948 0 3.420138889e+00-1.517525438e-01* +* 5.250300000e+00 0 0 +GRID* 3949 0 3.497829861e+00-1.624293429e-01* +* 5.406562500e+00 0 0 +GRID* 3950 0 3.497829861e+00-1.499293429e-01* +* 5.406562500e+00 0 0 +GRID* 3951 0 3.434288194e+00 1.946435752e-01* +* 4.781512500e+00 0 0 +GRID* 3952 0 3.434288194e+00 1.821435752e-01* +* 4.781512500e+00 0 0 +GRID* 3953 0 3.509201389e+00 1.925298236e-01* +* 4.937775000e+00 0 0 +GRID* 3954 0 3.509201389e+00 1.800298236e-01* +* 4.937775000e+00 0 0 +GRID* 3955 0 3.584114583e+00 1.904160721e-01* +* 5.094037500e+00 0 0 +GRID* 3956 0 3.584114583e+00 1.779160721e-01* +* 5.094037500e+00 0 0 +GRID* 3957 0 3.659027778e+00 1.883023205e-01* +* 5.250300000e+00 0 0 +GRID* 3958 0 3.659027778e+00 1.758023205e-01* +* 5.250300000e+00 0 0 +GRID* 3959 0 3.733940972e+00 1.861885689e-01* +* 5.406562500e+00 0 0 +GRID* 3960 0 3.733940972e+00 1.736885689e-01* +* 5.406562500e+00 0 0 +GRID* 3961 0 3.434288194e+00-1.928274170e-01* +* 4.781512500e+00 0 0 +GRID* 3962 0 3.434288194e+00-1.803274170e-01* +* 4.781512500e+00 0 0 +GRID* 3963 0 3.509201389e+00-1.907311519e-01* +* 4.937775000e+00 0 0 +GRID* 3964 0 3.509201389e+00-1.782311519e-01* +* 4.937775000e+00 0 0 +GRID* 3965 0 3.584114583e+00-1.886348867e-01* +* 5.094037500e+00 0 0 +GRID* 3966 0 3.584114583e+00-1.761348867e-01* +* 5.094037500e+00 0 0 +GRID* 3967 0 3.659027778e+00-1.865386216e-01* +* 5.250300000e+00 0 0 +GRID* 3968 0 3.659027778e+00-1.740386216e-01* +* 5.250300000e+00 0 0 +GRID* 3969 0 3.733940972e+00-1.844423564e-01* +* 5.406562500e+00 0 0 +GRID* 3970 0 3.733940972e+00-1.719423564e-01* +* 5.406562500e+00 0 0 +GRID* 3971 0 3.681510417e+00 2.112836164e-01* +* 4.781512500e+00 0 0 +GRID* 3972 0 3.681510417e+00 1.987836164e-01* +* 4.781512500e+00 0 0 +GRID* 3973 0 3.753645833e+00 2.089814026e-01* +* 4.937775000e+00 0 0 +GRID* 3974 0 3.753645833e+00 1.964814026e-01* +* 4.937775000e+00 0 0 +GRID* 3975 0 3.825781250e+00 2.066791888e-01* +* 5.094037500e+00 0 0 +GRID* 3976 0 3.825781250e+00 1.941791888e-01* +* 5.094037500e+00 0 0 +GRID* 3977 0 3.897916667e+00 2.043769750e-01* +* 5.250300000e+00 0 0 +GRID* 3978 0 3.897916667e+00 1.918769750e-01* +* 5.250300000e+00 0 0 +GRID* 3979 0 3.970052083e+00 2.020747611e-01* +* 5.406562500e+00 0 0 +GRID* 3980 0 3.970052083e+00 1.895747611e-01* +* 5.406562500e+00 0 0 +GRID* 3981 0 3.681510417e+00-2.073418022e-01* +* 4.781512500e+00 0 0 +GRID* 3982 0 3.681510417e+00-1.948418022e-01* +* 4.781512500e+00 0 0 +GRID* 3983 0 3.753645833e+00-2.050808570e-01* +* 4.937775000e+00 0 0 +GRID* 3984 0 3.753645833e+00-1.925808570e-01* +* 4.937775000e+00 0 0 +GRID* 3985 0 3.825781250e+00-2.028199119e-01* +* 5.094037500e+00 0 0 +GRID* 3986 0 3.825781250e+00-1.903199119e-01* +* 5.094037500e+00 0 0 +GRID* 3987 0 3.897916667e+00-2.005589668e-01* +* 5.250300000e+00 0 0 +GRID* 3988 0 3.897916667e+00-1.880589668e-01* +* 5.250300000e+00 0 0 +GRID* 3989 0 3.970052083e+00-1.982980217e-01* +* 5.406562500e+00 0 0 +GRID* 3990 0 3.970052083e+00-1.857980217e-01* +* 5.406562500e+00 0 0 +GRID* 3991 0 3.928732639e+00 2.221628086e-01* +* 4.781512500e+00 0 0 +GRID* 3992 0 3.928732639e+00 2.096628086e-01* +* 4.781512500e+00 0 0 +GRID* 3993 0 3.998090278e+00 2.197422877e-01* +* 4.937775000e+00 0 0 +GRID* 3994 0 3.998090278e+00 2.072422877e-01* +* 4.937775000e+00 0 0 +GRID* 3995 0 4.067447917e+00 2.173217667e-01* +* 5.094037500e+00 0 0 +GRID* 3996 0 4.067447917e+00 2.048217667e-01* +* 5.094037500e+00 0 0 +GRID* 3997 0 4.136805556e+00 2.149012458e-01* +* 5.250300000e+00 0 0 +GRID* 3998 0 4.136805556e+00 2.024012458e-01* +* 5.250300000e+00 0 0 +GRID* 3999 0 4.206163194e+00 2.124807248e-01* +* 5.406562500e+00 0 0 +GRID* 4000 0 4.206163194e+00 1.999807248e-01* +* 5.406562500e+00 0 0 +GRID* 4001 0 3.928732639e+00-2.128266646e-01* +* 4.781512500e+00 0 0 +GRID* 4002 0 3.928732639e+00-2.003266646e-01* +* 4.781512500e+00 0 0 +GRID* 4003 0 3.998090278e+00-2.105116701e-01* +* 4.937775000e+00 0 0 +GRID* 4004 0 3.998090278e+00-1.980116701e-01* +* 4.937775000e+00 0 0 +GRID* 4005 0 4.067447917e+00-2.081966756e-01* +* 5.094037500e+00 0 0 +GRID* 4006 0 4.067447917e+00-1.956966756e-01* +* 5.094037500e+00 0 0 +GRID* 4007 0 4.136805556e+00-2.058816810e-01* +* 5.250300000e+00 0 0 +GRID* 4008 0 4.136805556e+00-1.933816810e-01* +* 5.250300000e+00 0 0 +GRID* 4009 0 4.206163194e+00-2.035666865e-01* +* 5.406562500e+00 0 0 +GRID* 4010 0 4.206163194e+00-1.910666865e-01* +* 5.406562500e+00 0 0 +GRID* 4011 0 4.175954861e+00 2.268415304e-01* +* 4.781512500e+00 0 0 +GRID* 4012 0 4.175954861e+00 2.143415304e-01* +* 4.781512500e+00 0 0 +GRID* 4013 0 4.242534722e+00 2.243831764e-01* +* 4.937775000e+00 0 0 +GRID* 4014 0 4.242534722e+00 2.118831764e-01* +* 4.937775000e+00 0 0 +GRID* 4015 0 4.309114583e+00 2.219248224e-01* +* 5.094037500e+00 0 0 +GRID* 4016 0 4.309114583e+00 2.094248224e-01* +* 5.094037500e+00 0 0 +GRID* 4017 0 4.375694444e+00 2.194664685e-01* +* 5.250300000e+00 0 0 +GRID* 4018 0 4.375694444e+00 2.069664685e-01* +* 5.250300000e+00 0 0 +GRID* 4019 0 4.442274306e+00 2.170046483e-01* +* 5.406562500e+00 0 0 +GRID* 4020 0 4.442274306e+00 2.045046483e-01* +* 5.406562500e+00 0 0 +GRID* 4021 0 4.175954861e+00-2.044841787e-01* +* 4.781512500e+00 0 0 +GRID* 4022 0 4.175954861e+00-1.919841787e-01* +* 4.781512500e+00 0 0 +GRID* 4023 0 4.242534722e+00-2.022942712e-01* +* 4.937775000e+00 0 0 +GRID* 4024 0 4.242534722e+00-1.897942712e-01* +* 4.937775000e+00 0 0 +GRID* 4025 0 4.309114583e+00-2.001043637e-01* +* 5.094037500e+00 0 0 +GRID* 4026 0 4.309114583e+00-1.876043637e-01* +* 5.094037500e+00 0 0 +GRID* 4027 0 4.375694444e+00-1.979144562e-01* +* 5.250300000e+00 0 0 +GRID* 4028 0 4.375694444e+00-1.854144562e-01* +* 5.250300000e+00 0 0 +GRID* 4029 0 4.442274306e+00-1.957245487e-01* +* 5.406562500e+00 0 0 +GRID* 4030 0 4.442274306e+00-1.832245487e-01* +* 5.406562500e+00 0 0 +GRID* 4031 0 4.423177083e+00 2.247636143e-01* +* 4.781512500e+00 0 0 +GRID* 4032 0 4.423177083e+00 2.122636143e-01* +* 4.781512500e+00 0 0 +GRID* 4033 0 4.486979167e+00 2.223476859e-01* +* 4.937775000e+00 0 0 +GRID* 4034 0 4.486979167e+00 2.098476859e-01* +* 4.937775000e+00 0 0 +GRID* 4035 0 4.550781250e+00 2.199317575e-01* +* 5.094037500e+00 0 0 +GRID* 4036 0 4.550781250e+00 2.074317575e-01* +* 5.094037500e+00 0 0 +GRID* 4037 0 4.614583333e+00 2.175158291e-01* +* 5.250300000e+00 0 0 +GRID* 4038 0 4.614583333e+00 2.050158291e-01* +* 5.250300000e+00 0 0 +GRID* 4039 0 4.678385417e+00 2.150999007e-01* +* 5.406562500e+00 0 0 +GRID* 4040 0 4.678385417e+00 2.025999007e-01* +* 5.406562500e+00 0 0 +GRID* 4041 0 4.423177083e+00-1.835803770e-01* +* 4.781512500e+00 0 0 +GRID* 4042 0 4.423177083e+00-1.710803770e-01* +* 4.781512500e+00 0 0 +GRID* 4043 0 4.486979167e+00-1.816521676e-01* +* 4.937775000e+00 0 0 +GRID* 4044 0 4.486979167e+00-1.691521676e-01* +* 4.937775000e+00 0 0 +GRID* 4045 0 4.550781250e+00-1.797239582e-01* +* 5.094037500e+00 0 0 +GRID* 4046 0 4.550781250e+00-1.672239582e-01* +* 5.094037500e+00 0 0 +GRID* 4047 0 4.614583333e+00-1.777957487e-01* +* 5.250300000e+00 0 0 +GRID* 4048 0 4.614583333e+00-1.652957487e-01* +* 5.250300000e+00 0 0 +GRID* 4049 0 4.678385417e+00-1.758675393e-01* +* 5.406562500e+00 0 0 +GRID* 4050 0 4.678385417e+00-1.633675393e-01* +* 5.406562500e+00 0 0 +GRID* 4051 0 4.670399306e+00 2.155888790e-01* +* 4.781512500e+00 0 0 +GRID* 4052 0 4.670399306e+00 2.030888790e-01* +* 4.781512500e+00 0 0 +GRID* 4053 0 4.731423611e+00 2.133023113e-01* +* 4.937775000e+00 0 0 +GRID* 4054 0 4.731423611e+00 2.008023113e-01* +* 4.937775000e+00 0 0 +GRID* 4055 0 4.792447917e+00 2.110157435e-01* +* 5.094037500e+00 0 0 +GRID* 4056 0 4.792447917e+00 1.985157435e-01* +* 5.094037500e+00 0 0 +GRID* 4057 0 4.853472222e+00 2.087291758e-01* +* 5.250300000e+00 0 0 +GRID* 4058 0 4.853472222e+00 1.962291758e-01* +* 5.250300000e+00 0 0 +GRID* 4059 0 4.914496528e+00 2.064426081e-01* +* 5.406562500e+00 0 0 +GRID* 4060 0 4.914496528e+00 1.939426081e-01* +* 5.406562500e+00 0 0 +GRID* 4061 0 4.670399306e+00-1.542854819e-01* +* 4.781512500e+00 0 0 +GRID* 4062 0 4.670399306e+00-1.417854819e-01* +* 4.781512500e+00 0 0 +GRID* 4063 0 4.731423611e+00-1.527087179e-01* +* 4.937775000e+00 0 0 +GRID* 4064 0 4.731423611e+00-1.402087179e-01* +* 4.937775000e+00 0 0 +GRID* 4065 0 4.792447917e+00-1.511319539e-01* +* 5.094037500e+00 0 0 +GRID* 4066 0 4.792447917e+00-1.386319539e-01* +* 5.094037500e+00 0 0 +GRID* 4067 0 4.853472222e+00-1.495551899e-01* +* 5.250300000e+00 0 0 +GRID* 4068 0 4.853472222e+00-1.370551899e-01* +* 5.250300000e+00 0 0 +GRID* 4069 0 4.914496528e+00-1.479784259e-01* +* 5.406562500e+00 0 0 +GRID* 4070 0 4.914496528e+00-1.354784259e-01* +* 5.406562500e+00 0 0 +GRID* 4071 0 4.917621528e+00 1.991552423e-01* +* 4.781512500e+00 0 0 +GRID* 4072 0 4.917621528e+00 1.866552423e-01* +* 4.781512500e+00 0 0 +GRID* 4073 0 4.975868056e+00 1.970860916e-01* +* 4.937775000e+00 0 0 +GRID* 4074 0 4.975868056e+00 1.845860916e-01* +* 4.937775000e+00 0 0 +GRID* 4075 0 5.034114583e+00 1.950169410e-01* +* 5.094037500e+00 0 0 +GRID* 4076 0 5.034114583e+00 1.825169410e-01* +* 5.094037500e+00 0 0 +GRID* 4077 0 5.092361111e+00 1.929477904e-01* +* 5.250300000e+00 0 0 +GRID* 4078 0 5.092361111e+00 1.804477904e-01* +* 5.250300000e+00 0 0 +GRID* 4079 0 5.150607639e+00 1.908786397e-01* +* 5.406562500e+00 0 0 +GRID* 4080 0 5.150607639e+00 1.783786397e-01* +* 5.406562500e+00 0 0 +GRID* 4081 0 4.917621528e+00-1.201152363e-01* +* 4.781512500e+00 0 0 +GRID* 4082 0 4.917621528e+00-1.076152363e-01* +* 4.781512500e+00 0 0 +GRID* 4083 0 4.975868056e+00-1.189367383e-01* +* 4.937775000e+00 0 0 +GRID* 4084 0 4.975868056e+00-1.064367383e-01* +* 4.937775000e+00 0 0 +GRID* 4085 0 5.034114583e+00-1.177582404e-01* +* 5.094037500e+00 0 0 +GRID* 4086 0 5.034114583e+00-1.052582404e-01* +* 5.094037500e+00 0 0 +GRID* 4087 0 5.092361111e+00-1.165797425e-01* +* 5.250300000e+00 0 0 +GRID* 4088 0 5.092361111e+00-1.040797425e-01* +* 5.250300000e+00 0 0 +GRID* 4089 0 5.150607639e+00-1.154012446e-01* +* 5.406562500e+00 0 0 +GRID* 4090 0 5.150607639e+00-1.029012446e-01* +* 5.406562500e+00 0 0 +GRID* 4091 0 3.458854167e+00 1.570383960e-01* +* 5.562825000e+00 0 0 +GRID* 4092 0 3.537934028e+00 1.554269184e-01* +* 5.719087500e+00 0 0 +GRID* 4093 0 3.617013889e+00 1.538154408e-01* +* 5.875350000e+00 0 0 +GRID* 4094 0 3.696093750e+00 1.522039632e-01* +* 6.031612500e+00 0 0 +GRID* 4095 0 3.575520833e+00 1.731655770e-01* +* 5.562825000e+00 0 0 +GRID* 4096 0 3.653211806e+00 1.713439972e-01* +* 5.719087500e+00 0 0 +GRID* 4097 0 3.730902778e+00 1.695224175e-01* +* 5.875350000e+00 0 0 +GRID* 4098 0 3.808593750e+00 1.677008377e-01* +* 6.031612500e+00 0 0 +GRID* 4099 0 3.458854167e+00-1.576508720e-01* +* 5.562825000e+00 0 0 +GRID* 4100 0 3.575520833e+00-1.731061419e-01* +* 5.562825000e+00 0 0 +GRID* 4101 0 3.537934028e+00-1.560311104e-01* +* 5.719087500e+00 0 0 +GRID* 4102 0 3.653211806e+00-1.712829410e-01* +* 5.719087500e+00 0 0 +GRID* 4103 0 3.617013889e+00-1.544113489e-01* +* 5.875350000e+00 0 0 +GRID* 4104 0 3.730902778e+00-1.694597401e-01* +* 5.875350000e+00 0 0 +GRID* 4105 0 3.696093750e+00-1.527915873e-01* +* 6.031612500e+00 0 0 +GRID* 4106 0 3.808593750e+00-1.676365392e-01* +* 6.031612500e+00 0 0 +GRID* 4107 0 3.692187500e+00 1.862846004e-01* +* 5.562825000e+00 0 0 +GRID* 4108 0 3.768489583e+00 1.842959685e-01* +* 5.719087500e+00 0 0 +GRID* 4109 0 3.844791667e+00 1.823073366e-01* +* 5.875350000e+00 0 0 +GRID* 4110 0 3.921093750e+00 1.803187047e-01* +* 6.031612500e+00 0 0 +GRID* 4111 0 3.808854167e+00 1.965748174e-01* +* 5.562825000e+00 0 0 +GRID* 4112 0 3.883767361e+00 1.944610658e-01* +* 5.719087500e+00 0 0 +GRID* 4113 0 3.958680556e+00 1.923473143e-01* +* 5.875350000e+00 0 0 +GRID* 4114 0 4.033593750e+00 1.902335627e-01* +* 6.031612500e+00 0 0 +GRID* 4115 0 3.692187500e+00-1.854089253e-01* +* 5.562825000e+00 0 0 +GRID* 4116 0 3.808854167e+00-1.948460913e-01* +* 5.562825000e+00 0 0 +GRID* 4117 0 3.768489583e+00-1.834277538e-01* +* 5.719087500e+00 0 0 +GRID* 4118 0 3.883767361e+00-1.927498261e-01* +* 5.719087500e+00 0 0 +GRID* 4119 0 3.844791667e+00-1.814465823e-01* +* 5.875350000e+00 0 0 +GRID* 4120 0 3.958680556e+00-1.906535610e-01* +* 5.875350000e+00 0 0 +GRID* 4121 0 3.921093750e+00-1.794654109e-01* +* 6.031612500e+00 0 0 +GRID* 4122 0 4.033593750e+00-1.885572959e-01* +* 6.031612500e+00 0 0 +GRID* 4123 0 3.925520833e+00 2.051217646e-01* +* 5.562825000e+00 0 0 +GRID* 4124 0 3.999045139e+00 2.029045371e-01* +* 5.719087500e+00 0 0 +GRID* 4125 0 4.072569444e+00 2.006873096e-01* +* 5.875350000e+00 0 0 +GRID* 4126 0 4.146093750e+00 1.984700821e-01* +* 6.031612500e+00 0 0 +GRID* 4127 0 4.042187500e+00 2.122725473e-01* +* 5.562825000e+00 0 0 +GRID* 4128 0 4.114322917e+00 2.099703335e-01* +* 5.719087500e+00 0 0 +GRID* 4129 0 4.186458333e+00 2.076681197e-01* +* 5.875350000e+00 0 0 +GRID* 4130 0 4.258593750e+00 2.053659058e-01* +* 6.031612500e+00 0 0 +GRID* 4131 0 3.925520833e+00-2.024775636e-01* +* 5.562825000e+00 0 0 +GRID* 4132 0 4.042187500e+00-2.085370765e-01* +* 5.562825000e+00 0 0 +GRID* 4133 0 3.999045139e+00-2.002885997e-01* +* 5.719087500e+00 0 0 +GRID* 4134 0 4.114322917e+00-2.062761314e-01* +* 5.719087500e+00 0 0 +GRID* 4135 0 4.072569444e+00-1.980996358e-01* +* 5.875350000e+00 0 0 +GRID* 4136 0 4.186458333e+00-2.040151863e-01* +* 5.875350000e+00 0 0 +GRID* 4137 0 4.146093750e+00-1.959106719e-01* +* 6.031612500e+00 0 0 +GRID* 4138 0 4.258593750e+00-2.017542412e-01* +* 6.031612500e+00 0 0 +GRID* 4139 0 4.158854167e+00 2.180913065e-01* +* 5.562825000e+00 0 0 +GRID* 4140 0 4.229600694e+00 2.157219376e-01* +* 5.719087500e+00 0 0 +GRID* 4141 0 4.300347222e+00 2.133525686e-01* +* 5.875350000e+00 0 0 +GRID* 4142 0 4.371093750e+00 2.109831996e-01* +* 6.031612500e+00 0 0 +GRID* 4143 0 4.275520833e+00 2.225602039e-01* +* 5.562825000e+00 0 0 +GRID* 4144 0 4.344878472e+00 2.201396829e-01* +* 5.719087500e+00 0 0 +GRID* 4145 0 4.414236111e+00 2.177191620e-01* +* 5.875350000e+00 0 0 +GRID* 4146 0 4.483593750e+00 2.152986410e-01* +* 6.031612500e+00 0 0 +GRID* 4147 0 4.158854167e+00-2.124484262e-01* +* 5.562825000e+00 0 0 +GRID* 4148 0 4.275520833e+00-2.137516920e-01* +* 5.562825000e+00 0 0 +GRID* 4149 0 4.229600694e+00-2.101446267e-01* +* 5.719087500e+00 0 0 +GRID* 4150 0 4.344878472e+00-2.114366974e-01* +* 5.719087500e+00 0 0 +GRID* 4151 0 4.300347222e+00-2.078408272e-01* +* 5.875350000e+00 0 0 +GRID* 4152 0 4.414236111e+00-2.091217029e-01* +* 5.875350000e+00 0 0 +GRID* 4153 0 4.371093750e+00-2.055370277e-01* +* 6.031612500e+00 0 0 +GRID* 4154 0 4.483593750e+00-2.068067083e-01* +* 6.031612500e+00 0 0 +GRID* 4155 0 4.392187500e+00 2.255017162e-01* +* 5.562825000e+00 0 0 +GRID* 4156 0 4.460156250e+00 2.230524524e-01* +* 5.719087500e+00 0 0 +GRID* 4157 0 4.528125000e+00 2.206031887e-01* +* 5.875350000e+00 0 0 +GRID* 4158 0 4.596093750e+00 2.181539250e-01* +* 6.031612500e+00 0 0 +GRID* 4159 0 4.508854167e+00 2.270413298e-01* +* 5.562825000e+00 0 0 +GRID* 4160 0 4.575434028e+00 2.245780114e-01* +* 5.719087500e+00 0 0 +GRID* 4161 0 4.642013889e+00 2.221146929e-01* +* 5.875350000e+00 0 0 +GRID* 4162 0 4.708593750e+00 2.196513745e-01* +* 6.031612500e+00 0 0 +GRID* 4163 0 4.392187500e+00-2.114643826e-01* +* 5.562825000e+00 0 0 +GRID* 4164 0 4.508854167e+00-2.060346412e-01* +* 5.562825000e+00 0 0 +GRID* 4165 0 4.460156250e+00-2.091913203e-01* +* 5.719087500e+00 0 0 +GRID* 4166 0 4.575434028e+00-2.038447337e-01* +* 5.719087500e+00 0 0 +GRID* 4167 0 4.528125000e+00-2.069182580e-01* +* 5.875350000e+00 0 0 +GRID* 4168 0 4.642013889e+00-2.016548262e-01* +* 5.875350000e+00 0 0 +GRID* 4169 0 4.596093750e+00-2.046451957e-01* +* 6.031612500e+00 0 0 +GRID* 4170 0 4.708593750e+00-1.994649187e-01* +* 6.031612500e+00 0 0 +GRID* 4171 0 4.625520833e+00 2.268595194e-01* +* 5.562825000e+00 0 0 +GRID* 4172 0 4.690711806e+00 2.244093136e-01* +* 5.719087500e+00 0 0 +GRID* 4173 0 4.755902778e+00 2.219591078e-01* +* 5.875350000e+00 0 0 +GRID* 4174 0 4.821093750e+00 2.195089020e-01* +* 6.031612500e+00 0 0 +GRID* 4175 0 4.742187500e+00 2.251839723e-01* +* 5.562825000e+00 0 0 +GRID* 4176 0 4.805989583e+00 2.227680439e-01* +* 5.719087500e+00 0 0 +GRID* 4177 0 4.869791667e+00 2.203521155e-01* +* 5.875350000e+00 0 0 +GRID* 4178 0 4.933593750e+00 2.179361871e-01* +* 6.031612500e+00 0 0 +GRID* 4179 0 4.625520833e+00-1.973872302e-01* +* 5.562825000e+00 0 0 +GRID* 4180 0 4.742187500e+00-1.864393298e-01* +* 5.562825000e+00 0 0 +GRID* 4181 0 4.690711806e+00-1.953099368e-01* +* 5.719087500e+00 0 0 +GRID* 4182 0 4.805989583e+00-1.845111204e-01* +* 5.719087500e+00 0 0 +GRID* 4183 0 4.755902778e+00-1.932326433e-01* +* 5.875350000e+00 0 0 +GRID* 4184 0 4.869791667e+00-1.825829110e-01* +* 5.875350000e+00 0 0 +GRID* 4185 0 4.821093750e+00-1.911553498e-01* +* 6.031612500e+00 0 0 +GRID* 4186 0 4.933593750e+00-1.806547015e-01* +* 6.031612500e+00 0 0 +GRID* 4187 0 4.858854167e+00 2.217415360e-01* +* 5.562825000e+00 0 0 +GRID* 4188 0 4.921267361e+00 2.193750789e-01* +* 5.719087500e+00 0 0 +GRID* 4189 0 4.983680556e+00 2.170086218e-01* +* 5.875350000e+00 0 0 +GRID* 4190 0 5.046093750e+00 2.146421646e-01* +* 6.031612500e+00 0 0 +GRID* 4191 0 4.975520833e+00 2.166560403e-01* +* 5.562825000e+00 0 0 +GRID* 4192 0 5.036545139e+00 2.143694726e-01* +* 5.719087500e+00 0 0 +GRID* 4193 0 5.097569444e+00 2.120829049e-01* +* 5.875350000e+00 0 0 +GRID* 4194 0 5.158593750e+00 2.097963371e-01* +* 6.031612500e+00 0 0 +GRID* 4195 0 4.858854167e+00-1.734272557e-01* +* 5.562825000e+00 0 0 +GRID* 4196 0 4.975520833e+00-1.589016619e-01* +* 5.562825000e+00 0 0 +GRID* 4197 0 4.921267361e+00-1.716624939e-01* +* 5.719087500e+00 0 0 +GRID* 4198 0 5.036545139e+00-1.573248979e-01* +* 5.719087500e+00 0 0 +GRID* 4199 0 4.983680556e+00-1.698977320e-01* +* 5.875350000e+00 0 0 +GRID* 4200 0 5.097569444e+00-1.557481339e-01* +* 5.875350000e+00 0 0 +GRID* 4201 0 5.046093750e+00-1.681329702e-01* +* 6.031612500e+00 0 0 +GRID* 4202 0 5.158593750e+00-1.541713699e-01* +* 6.031612500e+00 0 0 +GRID* 4203 0 5.092187500e+00 2.098492223e-01* +* 5.562825000e+00 0 0 +GRID* 4204 0 5.151822917e+00 2.076544957e-01* +* 5.719087500e+00 0 0 +GRID* 4205 0 5.211458333e+00 2.054597692e-01* +* 5.875350000e+00 0 0 +GRID* 4206 0 5.271093750e+00 2.032650426e-01* +* 6.031612500e+00 0 0 +GRID* 4207 0 5.208854167e+00 2.013094891e-01* +* 5.562825000e+00 0 0 +GRID* 4208 0 5.267100694e+00 1.992403384e-01* +* 5.719087500e+00 0 0 +GRID* 4209 0 5.325347222e+00 1.971711878e-01* +* 5.875350000e+00 0 0 +GRID* 4210 0 5.383593750e+00 1.951020371e-01* +* 6.031612500e+00 0 0 +GRID* 4211 0 5.092187500e+00-1.432265665e-01* +* 5.562825000e+00 0 0 +GRID* 4212 0 5.208854167e+00-1.267227466e-01* +* 5.562825000e+00 0 0 +GRID* 4213 0 5.151822917e+00-1.418426719e-01* +* 5.719087500e+00 0 0 +GRID* 4214 0 5.267100694e+00-1.255442487e-01* +* 5.719087500e+00 0 0 +GRID* 4215 0 5.211458333e+00-1.404587774e-01* +* 5.875350000e+00 0 0 +GRID* 4216 0 5.325347222e+00-1.243657508e-01* +* 5.875350000e+00 0 0 +GRID* 4217 0 5.271093750e+00-1.390748829e-01* +* 6.031612500e+00 0 0 +GRID* 4218 0 5.383593750e+00-1.231872528e-01* +* 6.031612500e+00 0 0 +GRID* 4219 0 5.325520833e+00 1.911394192e-01* +* 5.562825000e+00 0 0 +GRID* 4220 0 5.382378472e+00 1.892042456e-01* +* 5.719087500e+00 0 0 +GRID* 4221 0 5.439236111e+00 1.872690720e-01* +* 5.875350000e+00 0 0 +GRID* 4222 0 5.496093750e+00 1.853338985e-01* +* 6.031612500e+00 0 0 +GRID* 4223 0 5.325520833e+00-1.098126551e-01* +* 5.562825000e+00 0 0 +GRID* 4224 0 5.382378472e+00-1.088383860e-01* +* 5.719087500e+00 0 0 +GRID* 4225 0 5.439236111e+00-1.078635580e-01* +* 5.875350000e+00 0 0 +GRID* 4226 0 5.496093750e+00-1.068886356e-01* +* 6.031612500e+00 0 0 +GRID* 4227 0 3.575520833e+00 1.606655770e-01* +* 5.562825000e+00 0 0 +GRID* 4228 0 3.575520833e+00 1.481655770e-01* +* 5.562825000e+00 0 0 +GRID* 4229 0 3.653211806e+00 1.588439972e-01* +* 5.719087500e+00 0 0 +GRID* 4230 0 3.653211806e+00 1.463439972e-01* +* 5.719087500e+00 0 0 +GRID* 4231 0 3.730902778e+00 1.570224175e-01* +* 5.875350000e+00 0 0 +GRID* 4232 0 3.730902778e+00 1.445224175e-01* +* 5.875350000e+00 0 0 +GRID* 4233 0 3.808593750e+00 1.552008377e-01* +* 6.031612500e+00 0 0 +GRID* 4234 0 3.808593750e+00 1.427008377e-01* +* 6.031612500e+00 0 0 +GRID* 4235 0 3.886284722e+00 1.533792580e-01* +* 6.187875000e+00 0 0 +GRID* 4236 0 3.886284722e+00 1.408792580e-01* +* 6.187875000e+00 0 0 +GRID* 4237 0 3.575520833e+00-1.606061419e-01* +* 5.562825000e+00 0 0 +GRID* 4238 0 3.575520833e+00-1.481061419e-01* +* 5.562825000e+00 0 0 +GRID* 4239 0 3.653211806e+00-1.587829410e-01* +* 5.719087500e+00 0 0 +GRID* 4240 0 3.653211806e+00-1.462829410e-01* +* 5.719087500e+00 0 0 +GRID* 4241 0 3.730902778e+00-1.569597401e-01* +* 5.875350000e+00 0 0 +GRID* 4242 0 3.730902778e+00-1.444597401e-01* +* 5.875350000e+00 0 0 +GRID* 4243 0 3.808593750e+00-1.551365392e-01* +* 6.031612500e+00 0 0 +GRID* 4244 0 3.808593750e+00-1.426365392e-01* +* 6.031612500e+00 0 0 +GRID* 4245 0 3.886284722e+00-1.533133383e-01* +* 6.187875000e+00 0 0 +GRID* 4246 0 3.886284722e+00-1.408133383e-01* +* 6.187875000e+00 0 0 +GRID* 4247 0 3.808854167e+00 1.840748174e-01* +* 5.562825000e+00 0 0 +GRID* 4248 0 3.808854167e+00 1.715748174e-01* +* 5.562825000e+00 0 0 +GRID* 4249 0 3.883767361e+00 1.819610658e-01* +* 5.719087500e+00 0 0 +GRID* 4250 0 3.883767361e+00 1.694610658e-01* +* 5.719087500e+00 0 0 +GRID* 4251 0 3.958680556e+00 1.798473143e-01* +* 5.875350000e+00 0 0 +GRID* 4252 0 3.958680556e+00 1.673473143e-01* +* 5.875350000e+00 0 0 +GRID* 4253 0 4.033593750e+00 1.777335627e-01* +* 6.031612500e+00 0 0 +GRID* 4254 0 4.033593750e+00 1.652335627e-01* +* 6.031612500e+00 0 0 +GRID* 4255 0 4.108506944e+00 1.756198112e-01* +* 6.187875000e+00 0 0 +GRID* 4256 0 4.108506944e+00 1.631198112e-01* +* 6.187875000e+00 0 0 +GRID* 4257 0 3.808854167e+00-1.823460913e-01* +* 5.562825000e+00 0 0 +GRID* 4258 0 3.808854167e+00-1.698460913e-01* +* 5.562825000e+00 0 0 +GRID* 4259 0 3.883767361e+00-1.802498261e-01* +* 5.719087500e+00 0 0 +GRID* 4260 0 3.883767361e+00-1.677498261e-01* +* 5.719087500e+00 0 0 +GRID* 4261 0 3.958680556e+00-1.781535610e-01* +* 5.875350000e+00 0 0 +GRID* 4262 0 3.958680556e+00-1.656535610e-01* +* 5.875350000e+00 0 0 +GRID* 4263 0 4.033593750e+00-1.760572959e-01* +* 6.031612500e+00 0 0 +GRID* 4264 0 4.033593750e+00-1.635572959e-01* +* 6.031612500e+00 0 0 +GRID* 4265 0 4.108506944e+00-1.739610307e-01* +* 6.187875000e+00 0 0 +GRID* 4266 0 4.108506944e+00-1.614610307e-01* +* 6.187875000e+00 0 0 +GRID* 4267 0 4.042187500e+00 1.997725473e-01* +* 5.562825000e+00 0 0 +GRID* 4268 0 4.042187500e+00 1.872725473e-01* +* 5.562825000e+00 0 0 +GRID* 4269 0 4.114322917e+00 1.974703335e-01* +* 5.719087500e+00 0 0 +GRID* 4270 0 4.114322917e+00 1.849703335e-01* +* 5.719087500e+00 0 0 +GRID* 4271 0 4.186458333e+00 1.951681197e-01* +* 5.875350000e+00 0 0 +GRID* 4272 0 4.186458333e+00 1.826681197e-01* +* 5.875350000e+00 0 0 +GRID* 4273 0 4.258593750e+00 1.928659058e-01* +* 6.031612500e+00 0 0 +GRID* 4274 0 4.258593750e+00 1.803659058e-01* +* 6.031612500e+00 0 0 +GRID* 4275 0 4.330729167e+00 1.905636920e-01* +* 6.187875000e+00 0 0 +GRID* 4276 0 4.330729167e+00 1.780636920e-01* +* 6.187875000e+00 0 0 +GRID* 4277 0 4.042187500e+00-1.960370765e-01* +* 5.562825000e+00 0 0 +GRID* 4278 0 4.042187500e+00-1.835370765e-01* +* 5.562825000e+00 0 0 +GRID* 4279 0 4.114322917e+00-1.937761314e-01* +* 5.719087500e+00 0 0 +GRID* 4280 0 4.114322917e+00-1.812761314e-01* +* 5.719087500e+00 0 0 +GRID* 4281 0 4.186458333e+00-1.915151863e-01* +* 5.875350000e+00 0 0 +GRID* 4282 0 4.186458333e+00-1.790151863e-01* +* 5.875350000e+00 0 0 +GRID* 4283 0 4.258593750e+00-1.892542412e-01* +* 6.031612500e+00 0 0 +GRID* 4284 0 4.258593750e+00-1.767542412e-01* +* 6.031612500e+00 0 0 +GRID* 4285 0 4.330729167e+00-1.869932960e-01* +* 6.187875000e+00 0 0 +GRID* 4286 0 4.330729167e+00-1.744932960e-01* +* 6.187875000e+00 0 0 +GRID* 4287 0 4.275520833e+00 2.100602039e-01* +* 5.562825000e+00 0 0 +GRID* 4288 0 4.275520833e+00 1.975602039e-01* +* 5.562825000e+00 0 0 +GRID* 4289 0 4.344878472e+00 2.076396829e-01* +* 5.719087500e+00 0 0 +GRID* 4290 0 4.344878472e+00 1.951396829e-01* +* 5.719087500e+00 0 0 +GRID* 4291 0 4.414236111e+00 2.052191620e-01* +* 5.875350000e+00 0 0 +GRID* 4292 0 4.414236111e+00 1.927191620e-01* +* 5.875350000e+00 0 0 +GRID* 4293 0 4.483593750e+00 2.027986410e-01* +* 6.031612500e+00 0 0 +GRID* 4294 0 4.483593750e+00 1.902986410e-01* +* 6.031612500e+00 0 0 +GRID* 4295 0 4.552951389e+00 2.003781201e-01* +* 6.187875000e+00 0 0 +GRID* 4296 0 4.552951389e+00 1.878781201e-01* +* 6.187875000e+00 0 0 +GRID* 4297 0 4.275520833e+00-2.012516920e-01* +* 5.562825000e+00 0 0 +GRID* 4298 0 4.275520833e+00-1.887516920e-01* +* 5.562825000e+00 0 0 +GRID* 4299 0 4.344878472e+00-1.989366974e-01* +* 5.719087500e+00 0 0 +GRID* 4300 0 4.344878472e+00-1.864366974e-01* +* 5.719087500e+00 0 0 +GRID* 4301 0 4.414236111e+00-1.966217029e-01* +* 5.875350000e+00 0 0 +GRID* 4302 0 4.414236111e+00-1.841217029e-01* +* 5.875350000e+00 0 0 +GRID* 4303 0 4.483593750e+00-1.943067083e-01* +* 6.031612500e+00 0 0 +GRID* 4304 0 4.483593750e+00-1.818067083e-01* +* 6.031612500e+00 0 0 +GRID* 4305 0 4.552951389e+00-1.919917138e-01* +* 6.187875000e+00 0 0 +GRID* 4306 0 4.552951389e+00-1.794917138e-01* +* 6.187875000e+00 0 0 +GRID* 4307 0 4.508854167e+00 2.145413298e-01* +* 5.562825000e+00 0 0 +GRID* 4308 0 4.508854167e+00 2.020413298e-01* +* 5.562825000e+00 0 0 +GRID* 4309 0 4.575434028e+00 2.120780114e-01* +* 5.719087500e+00 0 0 +GRID* 4310 0 4.575434028e+00 1.995780114e-01* +* 5.719087500e+00 0 0 +GRID* 4311 0 4.642013889e+00 2.096146929e-01* +* 5.875350000e+00 0 0 +GRID* 4312 0 4.642013889e+00 1.971146929e-01* +* 5.875350000e+00 0 0 +GRID* 4313 0 4.708593750e+00 2.071513745e-01* +* 6.031612500e+00 0 0 +GRID* 4314 0 4.708593750e+00 1.946513745e-01* +* 6.031612500e+00 0 0 +GRID* 4315 0 4.775173611e+00 2.046880561e-01* +* 6.187875000e+00 0 0 +GRID* 4316 0 4.775173611e+00 1.921880561e-01* +* 6.187875000e+00 0 0 +GRID* 4317 0 4.508854167e+00-1.935346412e-01* +* 5.562825000e+00 0 0 +GRID* 4318 0 4.508854167e+00-1.810346412e-01* +* 5.562825000e+00 0 0 +GRID* 4319 0 4.575434028e+00-1.913447337e-01* +* 5.719087500e+00 0 0 +GRID* 4320 0 4.575434028e+00-1.788447337e-01* +* 5.719087500e+00 0 0 +GRID* 4321 0 4.642013889e+00-1.891548262e-01* +* 5.875350000e+00 0 0 +GRID* 4322 0 4.642013889e+00-1.766548262e-01* +* 5.875350000e+00 0 0 +GRID* 4323 0 4.708593750e+00-1.869649187e-01* +* 6.031612500e+00 0 0 +GRID* 4324 0 4.708593750e+00-1.744649187e-01* +* 6.031612500e+00 0 0 +GRID* 4325 0 4.775173611e+00-1.847750113e-01* +* 6.187875000e+00 0 0 +GRID* 4326 0 4.775173611e+00-1.722750113e-01* +* 6.187875000e+00 0 0 +GRID* 4327 0 4.742187500e+00 2.126839723e-01* +* 5.562825000e+00 0 0 +GRID* 4328 0 4.742187500e+00 2.001839723e-01* +* 5.562825000e+00 0 0 +GRID* 4329 0 4.805989583e+00 2.102680439e-01* +* 5.719087500e+00 0 0 +GRID* 4330 0 4.805989583e+00 1.977680439e-01* +* 5.719087500e+00 0 0 +GRID* 4331 0 4.869791667e+00 2.078521155e-01* +* 5.875350000e+00 0 0 +GRID* 4332 0 4.869791667e+00 1.953521155e-01* +* 5.875350000e+00 0 0 +GRID* 4333 0 4.933593750e+00 2.054361871e-01* +* 6.031612500e+00 0 0 +GRID* 4334 0 4.933593750e+00 1.929361871e-01* +* 6.031612500e+00 0 0 +GRID* 4335 0 4.997395833e+00 2.030202587e-01* +* 6.187875000e+00 0 0 +GRID* 4336 0 4.997395833e+00 1.905202587e-01* +* 6.187875000e+00 0 0 +GRID* 4337 0 4.742187500e+00-1.739393298e-01* +* 5.562825000e+00 0 0 +GRID* 4338 0 4.742187500e+00-1.614393298e-01* +* 5.562825000e+00 0 0 +GRID* 4339 0 4.805989583e+00-1.720111204e-01* +* 5.719087500e+00 0 0 +GRID* 4340 0 4.805989583e+00-1.595111204e-01* +* 5.719087500e+00 0 0 +GRID* 4341 0 4.869791667e+00-1.700829110e-01* +* 5.875350000e+00 0 0 +GRID* 4342 0 4.869791667e+00-1.575829110e-01* +* 5.875350000e+00 0 0 +GRID* 4343 0 4.933593750e+00-1.681547015e-01* +* 6.031612500e+00 0 0 +GRID* 4344 0 4.933593750e+00-1.556547015e-01* +* 6.031612500e+00 0 0 +GRID* 4345 0 4.997395833e+00-1.662264921e-01* +* 6.187875000e+00 0 0 +GRID* 4346 0 4.997395833e+00-1.537264921e-01* +* 6.187875000e+00 0 0 +GRID* 4347 0 4.975520833e+00 2.041560403e-01* +* 5.562825000e+00 0 0 +GRID* 4348 0 4.975520833e+00 1.916560403e-01* +* 5.562825000e+00 0 0 +GRID* 4349 0 5.036545139e+00 2.018694726e-01* +* 5.719087500e+00 0 0 +GRID* 4350 0 5.036545139e+00 1.893694726e-01* +* 5.719087500e+00 0 0 +GRID* 4351 0 5.097569444e+00 1.995829049e-01* +* 5.875350000e+00 0 0 +GRID* 4352 0 5.097569444e+00 1.870829049e-01* +* 5.875350000e+00 0 0 +GRID* 4353 0 5.158593750e+00 1.972963371e-01* +* 6.031612500e+00 0 0 +GRID* 4354 0 5.158593750e+00 1.847963371e-01* +* 6.031612500e+00 0 0 +GRID* 4355 0 5.219618056e+00 1.950097694e-01* +* 6.187875000e+00 0 0 +GRID* 4356 0 5.219618056e+00 1.825097694e-01* +* 6.187875000e+00 0 0 +GRID* 4357 0 4.975520833e+00-1.464016619e-01* +* 5.562825000e+00 0 0 +GRID* 4358 0 4.975520833e+00-1.339016619e-01* +* 5.562825000e+00 0 0 +GRID* 4359 0 5.036545139e+00-1.448248979e-01* +* 5.719087500e+00 0 0 +GRID* 4360 0 5.036545139e+00-1.323248979e-01* +* 5.719087500e+00 0 0 +GRID* 4361 0 5.097569444e+00-1.432481339e-01* +* 5.875350000e+00 0 0 +GRID* 4362 0 5.097569444e+00-1.307481339e-01* +* 5.875350000e+00 0 0 +GRID* 4363 0 5.158593750e+00-1.416713699e-01* +* 6.031612500e+00 0 0 +GRID* 4364 0 5.158593750e+00-1.291713699e-01* +* 6.031612500e+00 0 0 +GRID* 4365 0 5.219618056e+00-1.400946059e-01* +* 6.187875000e+00 0 0 +GRID* 4366 0 5.219618056e+00-1.275946059e-01* +* 6.187875000e+00 0 0 +GRID* 4367 0 5.208854167e+00 1.888094891e-01* +* 5.562825000e+00 0 0 +GRID* 4368 0 5.208854167e+00 1.763094891e-01* +* 5.562825000e+00 0 0 +GRID* 4369 0 5.267100694e+00 1.867403384e-01* +* 5.719087500e+00 0 0 +GRID* 4370 0 5.267100694e+00 1.742403384e-01* +* 5.719087500e+00 0 0 +GRID* 4371 0 5.325347222e+00 1.846711878e-01* +* 5.875350000e+00 0 0 +GRID* 4372 0 5.325347222e+00 1.721711878e-01* +* 5.875350000e+00 0 0 +GRID* 4373 0 5.383593750e+00 1.826020371e-01* +* 6.031612500e+00 0 0 +GRID* 4374 0 5.383593750e+00 1.701020371e-01* +* 6.031612500e+00 0 0 +GRID* 4375 0 5.441840278e+00 1.805328865e-01* +* 6.187875000e+00 0 0 +GRID* 4376 0 5.441840278e+00 1.680328865e-01* +* 6.187875000e+00 0 0 +GRID* 4377 0 5.208854167e+00-1.142227466e-01* +* 5.562825000e+00 0 0 +GRID* 4378 0 5.208854167e+00-1.017227466e-01* +* 5.562825000e+00 0 0 +GRID* 4379 0 5.267100694e+00-1.130442487e-01* +* 5.719087500e+00 0 0 +GRID* 4380 0 5.267100694e+00-1.005442487e-01* +* 5.719087500e+00 0 0 +GRID* 4381 0 5.325347222e+00-1.118657508e-01* +* 5.875350000e+00 0 0 +GRID* 4382 0 5.325347222e+00-9.936575077e-02* +* 5.875350000e+00 0 0 +GRID* 4383 0 5.383593750e+00-1.106872528e-01* +* 6.031612500e+00 0 0 +GRID* 4384 0 5.383593750e+00-9.818725284e-02* +* 6.031612500e+00 0 0 +GRID* 4385 0 5.441840278e+00-1.095087549e-01* +* 6.187875000e+00 0 0 +GRID* 4386 0 5.441840278e+00-9.700875491e-02* +* 6.187875000e+00 0 0 +GRID* 4387 0 3.854253472e+00 1.489810080e-01* +* 6.344137500e+00 0 0 +GRID* 4388 0 3.933333333e+00 1.473695304e-01* +* 6.500400000e+00 0 0 +GRID* 4389 0 4.012413194e+00 1.457580528e-01* +* 6.656662500e+00 0 0 +GRID* 4390 0 4.091493056e+00 1.441465752e-01* +* 6.812925000e+00 0 0 +GRID* 4391 0 3.963975694e+00 1.640576782e-01* +* 6.344137500e+00 0 0 +GRID* 4392 0 4.041666667e+00 1.622360985e-01* +* 6.500400000e+00 0 0 +GRID* 4393 0 4.119357639e+00 1.604145187e-01* +* 6.656662500e+00 0 0 +GRID* 4394 0 4.197048611e+00 1.585929390e-01* +* 6.812925000e+00 0 0 +GRID* 4395 0 3.854253472e+00-1.495342698e-01* +* 6.344137500e+00 0 0 +GRID* 4396 0 3.963975694e+00-1.639901373e-01* +* 6.344137500e+00 0 0 +GRID* 4397 0 3.933333333e+00-1.479039898e-01* +* 6.500400000e+00 0 0 +GRID* 4398 0 4.041666667e+00-1.621669364e-01* +* 6.500400000e+00 0 0 +GRID* 4399 0 4.012413194e+00-1.462737099e-01* +* 6.656662500e+00 0 0 +GRID* 4400 0 4.119357639e+00-1.603437355e-01* +* 6.656662500e+00 0 0 +GRID* 4401 0 4.091493056e+00-1.446434300e-01* +* 6.812925000e+00 0 0 +GRID* 4402 0 4.197048611e+00-1.585205346e-01* +* 6.812925000e+00 0 0 +GRID* 4403 0 4.073697917e+00 1.763414409e-01* +* 6.344137500e+00 0 0 +GRID* 4404 0 4.150000000e+00 1.743528090e-01* +* 6.500400000e+00 0 0 +GRID* 4405 0 4.226302083e+00 1.723641771e-01* +* 6.656662500e+00 0 0 +GRID* 4406 0 4.302604167e+00 1.703755452e-01* +* 6.812925000e+00 0 0 +GRID* 4407 0 4.183420139e+00 1.860060596e-01* +* 6.344137500e+00 0 0 +GRID* 4408 0 4.258333333e+00 1.838923081e-01* +* 6.500400000e+00 0 0 +GRID* 4409 0 4.333246528e+00 1.817785565e-01* +* 6.656662500e+00 0 0 +GRID* 4410 0 4.408159722e+00 1.796648050e-01* +* 6.812925000e+00 0 0 +GRID* 4411 0 4.073697917e+00-1.755030680e-01* +* 6.344137500e+00 0 0 +GRID* 4412 0 4.183420139e+00-1.843647656e-01* +* 6.344137500e+00 0 0 +GRID* 4413 0 4.150000000e+00-1.735218965e-01* +* 6.500400000e+00 0 0 +GRID* 4414 0 4.258333333e+00-1.822685004e-01* +* 6.500400000e+00 0 0 +GRID* 4415 0 4.226302083e+00-1.715407251e-01* +* 6.656662500e+00 0 0 +GRID* 4416 0 4.333246528e+00-1.801722353e-01* +* 6.656662500e+00 0 0 +GRID* 4417 0 4.302604167e+00-1.695595536e-01* +* 6.812925000e+00 0 0 +GRID* 4418 0 4.408159722e+00-1.780759702e-01* +* 6.812925000e+00 0 0 +GRID* 4419 0 4.293142361e+00 1.940356271e-01* +* 6.344137500e+00 0 0 +GRID* 4420 0 4.366666667e+00 1.918183996e-01* +* 6.500400000e+00 0 0 +GRID* 4421 0 4.440190972e+00 1.896011722e-01* +* 6.656662500e+00 0 0 +GRID* 4422 0 4.513715278e+00 1.873839447e-01* +* 6.812925000e+00 0 0 +GRID* 4423 0 4.402864583e+00 2.007614782e-01* +* 6.344137500e+00 0 0 +GRID* 4424 0 4.475000000e+00 1.984592644e-01* +* 6.500400000e+00 0 0 +GRID* 4425 0 4.547135417e+00 1.961570505e-01* +* 6.656662500e+00 0 0 +GRID* 4426 0 4.619270833e+00 1.938548367e-01* +* 6.812925000e+00 0 0 +GRID* 4427 0 4.293142361e+00-1.915327441e-01* +* 6.344137500e+00 0 0 +GRID* 4428 0 4.402864583e+00-1.972323509e-01* +* 6.344137500e+00 0 0 +GRID* 4429 0 4.366666667e+00-1.893437802e-01* +* 6.500400000e+00 0 0 +GRID* 4430 0 4.475000000e+00-1.949714058e-01* +* 6.500400000e+00 0 0 +GRID* 4431 0 4.440190972e+00-1.871548163e-01* +* 6.656662500e+00 0 0 +GRID* 4432 0 4.547135417e+00-1.927104607e-01* +* 6.656662500e+00 0 0 +GRID* 4433 0 4.513715278e+00-1.849658524e-01* +* 6.812925000e+00 0 0 +GRID* 4434 0 4.619270833e+00-1.904495155e-01* +* 6.812925000e+00 0 0 +GRID* 4435 0 4.512586806e+00 2.062444616e-01* +* 6.344137500e+00 0 0 +GRID* 4436 0 4.583333333e+00 2.038750926e-01* +* 6.500400000e+00 0 0 +GRID* 4437 0 4.654079861e+00 2.015057236e-01* +* 6.656662500e+00 0 0 +GRID* 4438 0 4.724826389e+00 1.991363547e-01* +* 6.812925000e+00 0 0 +GRID* 4439 0 4.622309028e+00 2.104575991e-01* +* 6.344137500e+00 0 0 +GRID* 4440 0 4.691666667e+00 2.080370782e-01* +* 6.500400000e+00 0 0 +GRID* 4441 0 4.761024306e+00 2.056165572e-01* +* 6.656662500e+00 0 0 +GRID* 4442 0 4.830381944e+00 2.031960363e-01* +* 6.812925000e+00 0 0 +GRID* 4443 0 4.512586806e+00-2.009294286e-01* +* 6.344137500e+00 0 0 +GRID* 4444 0 4.622309028e+00-2.021767193e-01* +* 6.344137500e+00 0 0 +GRID* 4445 0 4.583333333e+00-1.986256291e-01* +* 6.500400000e+00 0 0 +GRID* 4446 0 4.691666667e+00-1.998617247e-01* +* 6.500400000e+00 0 0 +GRID* 4447 0 4.654079861e+00-1.963218296e-01* +* 6.656662500e+00 0 0 +GRID* 4448 0 4.761024306e+00-1.975467302e-01* +* 6.656662500e+00 0 0 +GRID* 4449 0 4.724826389e+00-1.940180301e-01* +* 6.812925000e+00 0 0 +GRID* 4450 0 4.830381944e+00-1.952317356e-01* +* 6.812925000e+00 0 0 +GRID* 4451 0 4.732031250e+00 2.132553975e-01* +* 6.344137500e+00 0 0 +GRID* 4452 0 4.800000000e+00 2.108061338e-01* +* 6.500400000e+00 0 0 +GRID* 4453 0 4.867968750e+00 2.083568701e-01* +* 6.656662500e+00 0 0 +GRID* 4454 0 4.935937500e+00 2.059076064e-01* +* 6.812925000e+00 0 0 +GRID* 4455 0 4.841753472e+00 2.147247376e-01* +* 6.344137500e+00 0 0 +GRID* 4456 0 4.908333333e+00 2.122614192e-01* +* 6.500400000e+00 0 0 +GRID* 4457 0 4.974913194e+00 2.097981007e-01* +* 6.656662500e+00 0 0 +GRID* 4458 0 5.041493056e+00 2.073347823e-01* +* 6.812925000e+00 0 0 +GRID* 4459 0 4.732031250e+00-2.000990711e-01* +* 6.344137500e+00 0 0 +GRID* 4460 0 4.841753472e+00-1.950757465e-01* +* 6.344137500e+00 0 0 +GRID* 4461 0 4.800000000e+00-1.978260088e-01* +* 6.500400000e+00 0 0 +GRID* 4462 0 4.908333333e+00-1.928758689e-01* +* 6.500400000e+00 0 0 +GRID* 4463 0 4.867968750e+00-1.955529465e-01* +* 6.656662500e+00 0 0 +GRID* 4464 0 4.974913194e+00-1.906759912e-01* +* 6.656662500e+00 0 0 +GRID* 4465 0 4.935937500e+00-1.932798842e-01* +* 6.812925000e+00 0 0 +GRID* 4466 0 5.041493056e+00-1.884761136e-01* +* 6.812925000e+00 0 0 +GRID* 4467 0 4.951475694e+00 2.146084905e-01* +* 6.344137500e+00 0 0 +GRID* 4468 0 5.016666667e+00 2.121582847e-01* +* 6.500400000e+00 0 0 +GRID* 4469 0 5.081857639e+00 2.097080789e-01* +* 6.656662500e+00 0 0 +GRID* 4470 0 5.147048611e+00 2.072578731e-01* +* 6.812925000e+00 0 0 +GRID* 4471 0 5.061197917e+00 2.131043302e-01* +* 6.344137500e+00 0 0 +GRID* 4472 0 5.125000000e+00 2.106884018e-01* +* 6.500400000e+00 0 0 +GRID* 4473 0 5.188802083e+00 2.082724734e-01* +* 6.656662500e+00 0 0 +GRID* 4474 0 5.252604167e+00 2.058565450e-01* +* 6.812925000e+00 0 0 +GRID* 4475 0 4.951475694e+00-1.870007629e-01* +* 6.344137500e+00 0 0 +GRID* 4476 0 5.061197917e+00-1.767982827e-01* +* 6.344137500e+00 0 0 +GRID* 4477 0 5.016666667e+00-1.849234694e-01* +* 6.500400000e+00 0 0 +GRID* 4478 0 5.125000000e+00-1.748700732e-01* +* 6.500400000e+00 0 0 +GRID* 4479 0 5.081857639e+00-1.828461759e-01* +* 6.656662500e+00 0 0 +GRID* 4480 0 5.188802083e+00-1.729418638e-01* +* 6.656662500e+00 0 0 +GRID* 4481 0 5.147048611e+00-1.807688824e-01* +* 6.812925000e+00 0 0 +GRID* 4482 0 5.252604167e+00-1.710136543e-01* +* 6.812925000e+00 0 0 +GRID* 4483 0 5.170920139e+00 2.099092504e-01* +* 6.344137500e+00 0 0 +GRID* 4484 0 5.233333333e+00 2.075427933e-01* +* 6.500400000e+00 0 0 +GRID* 4485 0 5.295746528e+00 2.051763362e-01* +* 6.656662500e+00 0 0 +GRID* 4486 0 5.358159722e+00 2.028098790e-01* +* 6.812925000e+00 0 0 +GRID* 4487 0 5.280642361e+00 2.052232017e-01* +* 6.344137500e+00 0 0 +GRID* 4488 0 5.341666667e+00 2.029366339e-01* +* 6.500400000e+00 0 0 +GRID* 4489 0 5.402690972e+00 2.006500662e-01* +* 6.656662500e+00 0 0 +GRID* 4490 0 5.463715278e+00 1.983634985e-01* +* 6.812925000e+00 0 0 +GRID* 4491 0 5.170920139e+00-1.646034465e-01* +* 6.344137500e+00 0 0 +GRID* 4492 0 5.280642361e+00-1.510178419e-01* +* 6.344137500e+00 0 0 +GRID* 4493 0 5.233333333e+00-1.628386847e-01* +* 6.500400000e+00 0 0 +GRID* 4494 0 5.341666667e+00-1.494410780e-01* +* 6.500400000e+00 0 0 +GRID* 4495 0 5.295746528e+00-1.610739229e-01* +* 6.656662500e+00 0 0 +GRID* 4496 0 5.402690972e+00-1.478643140e-01* +* 6.656662500e+00 0 0 +GRID* 4497 0 5.358159722e+00-1.593091610e-01* +* 6.812925000e+00 0 0 +GRID* 4498 0 5.463715278e+00-1.462875500e-01* +* 6.812925000e+00 0 0 +GRID* 4499 0 5.390364583e+00 1.988755895e-01* +* 6.344137500e+00 0 0 +GRID* 4500 0 5.450000000e+00 1.966808629e-01* +* 6.500400000e+00 0 0 +GRID* 4501 0 5.509635417e+00 1.944861364e-01* +* 6.656662500e+00 0 0 +GRID* 4502 0 5.569270833e+00 1.922914098e-01* +* 6.812925000e+00 0 0 +GRID* 4503 0 5.500086806e+00 1.909637358e-01* +* 6.344137500e+00 0 0 +GRID* 4504 0 5.558333333e+00 1.888945852e-01* +* 6.500400000e+00 0 0 +GRID* 4505 0 5.616579861e+00 1.868254346e-01* +* 6.656662500e+00 0 0 +GRID* 4506 0 5.674826389e+00 1.847562839e-01* +* 6.812925000e+00 0 0 +GRID* 4507 0 5.390364583e+00-1.363070938e-01* +* 6.344137500e+00 0 0 +GRID* 4508 0 5.500086806e+00-1.208302570e-01* +* 6.344137500e+00 0 0 +GRID* 4509 0 5.450000000e+00-1.349231993e-01* +* 6.500400000e+00 0 0 +GRID* 4510 0 5.558333333e+00-1.196517591e-01* +* 6.500400000e+00 0 0 +GRID* 4511 0 5.509635417e+00-1.335393047e-01* +* 6.656662500e+00 0 0 +GRID* 4512 0 5.616579861e+00-1.184732611e-01* +* 6.656662500e+00 0 0 +GRID* 4513 0 5.569270833e+00-1.321554102e-01* +* 6.812925000e+00 0 0 +GRID* 4514 0 5.674826389e+00-1.172947632e-01* +* 6.812925000e+00 0 0 +GRID* 4515 0 5.609809028e+00 1.814635514e-01* +* 6.344137500e+00 0 0 +GRID* 4516 0 5.666666667e+00 1.795283778e-01* +* 6.500400000e+00 0 0 +GRID* 4517 0 5.723524306e+00 1.775932043e-01* +* 6.656662500e+00 0 0 +GRID* 4518 0 5.780381944e+00 1.756580307e-01* +* 6.812925000e+00 0 0 +GRID* 4519 0 5.609809028e+00-1.049387910e-01* +* 6.344137500e+00 0 0 +GRID* 4520 0 5.666666667e+00-1.039638686e-01* +* 6.500400000e+00 0 0 +GRID* 4521 0 5.723524306e+00-1.029889463e-01* +* 6.656662500e+00 0 0 +GRID* 4522 0 5.780381944e+00-1.020140239e-01* +* 6.812925000e+00 0 0 +GRID* 4523 0 3.963975694e+00 1.515576782e-01* +* 6.344137500e+00 0 0 +GRID* 4524 0 3.963975694e+00 1.390576782e-01* +* 6.344137500e+00 0 0 +GRID* 4525 0 4.041666667e+00 1.497360985e-01* +* 6.500400000e+00 0 0 +GRID* 4526 0 4.041666667e+00 1.372360985e-01* +* 6.500400000e+00 0 0 +GRID* 4527 0 4.119357639e+00 1.479145187e-01* +* 6.656662500e+00 0 0 +GRID* 4528 0 4.119357639e+00 1.354145187e-01* +* 6.656662500e+00 0 0 +GRID* 4529 0 4.197048611e+00 1.460929390e-01* +* 6.812925000e+00 0 0 +GRID* 4530 0 4.197048611e+00 1.335929390e-01* +* 6.812925000e+00 0 0 +GRID* 4531 0 4.274739583e+00 1.442713592e-01* +* 6.969187500e+00 0 0 +GRID* 4532 0 4.274739583e+00 1.317713592e-01* +* 6.969187500e+00 0 0 +GRID* 4533 0 3.963975694e+00-1.514901373e-01* +* 6.344137500e+00 0 0 +GRID* 4534 0 3.963975694e+00-1.389901373e-01* +* 6.344137500e+00 0 0 +GRID* 4535 0 4.041666667e+00-1.496669364e-01* +* 6.500400000e+00 0 0 +GRID* 4536 0 4.041666667e+00-1.371669364e-01* +* 6.500400000e+00 0 0 +GRID* 4537 0 4.119357639e+00-1.478437355e-01* +* 6.656662500e+00 0 0 +GRID* 4538 0 4.119357639e+00-1.353437355e-01* +* 6.656662500e+00 0 0 +GRID* 4539 0 4.197048611e+00-1.460205346e-01* +* 6.812925000e+00 0 0 +GRID* 4540 0 4.197048611e+00-1.335205346e-01* +* 6.812925000e+00 0 0 +GRID* 4541 0 4.274739583e+00-1.441973337e-01* +* 6.969187500e+00 0 0 +GRID* 4542 0 4.274739583e+00-1.316973337e-01* +* 6.969187500e+00 0 0 +GRID* 4543 0 4.183420139e+00 1.735060596e-01* +* 6.344137500e+00 0 0 +GRID* 4544 0 4.183420139e+00 1.610060596e-01* +* 6.344137500e+00 0 0 +GRID* 4545 0 4.258333333e+00 1.713923081e-01* +* 6.500400000e+00 0 0 +GRID* 4546 0 4.258333333e+00 1.588923081e-01* +* 6.500400000e+00 0 0 +GRID* 4547 0 4.333246528e+00 1.692785565e-01* +* 6.656662500e+00 0 0 +GRID* 4548 0 4.333246528e+00 1.567785565e-01* +* 6.656662500e+00 0 0 +GRID* 4549 0 4.408159722e+00 1.671648050e-01* +* 6.812925000e+00 0 0 +GRID* 4550 0 4.408159722e+00 1.546648050e-01* +* 6.812925000e+00 0 0 +GRID* 4551 0 4.483072917e+00 1.650510534e-01* +* 6.969187500e+00 0 0 +GRID* 4552 0 4.483072917e+00 1.525510534e-01* +* 6.969187500e+00 0 0 +GRID* 4553 0 4.183420139e+00-1.718647656e-01* +* 6.344137500e+00 0 0 +GRID* 4554 0 4.183420139e+00-1.593647656e-01* +* 6.344137500e+00 0 0 +GRID* 4555 0 4.258333333e+00-1.697685004e-01* +* 6.500400000e+00 0 0 +GRID* 4556 0 4.258333333e+00-1.572685004e-01* +* 6.500400000e+00 0 0 +GRID* 4557 0 4.333246528e+00-1.676722353e-01* +* 6.656662500e+00 0 0 +GRID* 4558 0 4.333246528e+00-1.551722353e-01* +* 6.656662500e+00 0 0 +GRID* 4559 0 4.408159722e+00-1.655759702e-01* +* 6.812925000e+00 0 0 +GRID* 4560 0 4.408159722e+00-1.530759702e-01* +* 6.812925000e+00 0 0 +GRID* 4561 0 4.483072917e+00-1.634797050e-01* +* 6.969187500e+00 0 0 +GRID* 4562 0 4.483072917e+00-1.509797050e-01* +* 6.969187500e+00 0 0 +GRID* 4563 0 4.402864583e+00 1.882614782e-01* +* 6.344137500e+00 0 0 +GRID* 4564 0 4.402864583e+00 1.757614782e-01* +* 6.344137500e+00 0 0 +GRID* 4565 0 4.475000000e+00 1.859592644e-01* +* 6.500400000e+00 0 0 +GRID* 4566 0 4.475000000e+00 1.734592644e-01* +* 6.500400000e+00 0 0 +GRID* 4567 0 4.547135417e+00 1.836570505e-01* +* 6.656662500e+00 0 0 +GRID* 4568 0 4.547135417e+00 1.711570505e-01* +* 6.656662500e+00 0 0 +GRID* 4569 0 4.619270833e+00 1.813548367e-01* +* 6.812925000e+00 0 0 +GRID* 4570 0 4.619270833e+00 1.688548367e-01* +* 6.812925000e+00 0 0 +GRID* 4571 0 4.691406250e+00 1.790526229e-01* +* 6.969187500e+00 0 0 +GRID* 4572 0 4.691406250e+00 1.665526229e-01* +* 6.969187500e+00 0 0 +GRID* 4573 0 4.402864583e+00-1.847323509e-01* +* 6.344137500e+00 0 0 +GRID* 4574 0 4.402864583e+00-1.722323509e-01* +* 6.344137500e+00 0 0 +GRID* 4575 0 4.475000000e+00-1.824714058e-01* +* 6.500400000e+00 0 0 +GRID* 4576 0 4.475000000e+00-1.699714058e-01* +* 6.500400000e+00 0 0 +GRID* 4577 0 4.547135417e+00-1.802104607e-01* +* 6.656662500e+00 0 0 +GRID* 4578 0 4.547135417e+00-1.677104607e-01* +* 6.656662500e+00 0 0 +GRID* 4579 0 4.619270833e+00-1.779495155e-01* +* 6.812925000e+00 0 0 +GRID* 4580 0 4.619270833e+00-1.654495155e-01* +* 6.812925000e+00 0 0 +GRID* 4581 0 4.691406250e+00-1.756885704e-01* +* 6.969187500e+00 0 0 +GRID* 4582 0 4.691406250e+00-1.631885704e-01* +* 6.969187500e+00 0 0 +GRID* 4583 0 4.622309028e+00 1.979575991e-01* +* 6.344137500e+00 0 0 +GRID* 4584 0 4.622309028e+00 1.854575991e-01* +* 6.344137500e+00 0 0 +GRID* 4585 0 4.691666667e+00 1.955370782e-01* +* 6.500400000e+00 0 0 +GRID* 4586 0 4.691666667e+00 1.830370782e-01* +* 6.500400000e+00 0 0 +GRID* 4587 0 4.761024306e+00 1.931165572e-01* +* 6.656662500e+00 0 0 +GRID* 4588 0 4.761024306e+00 1.806165572e-01* +* 6.656662500e+00 0 0 +GRID* 4589 0 4.830381944e+00 1.906960363e-01* +* 6.812925000e+00 0 0 +GRID* 4590 0 4.830381944e+00 1.781960363e-01* +* 6.812925000e+00 0 0 +GRID* 4591 0 4.899739583e+00 1.882755154e-01* +* 6.969187500e+00 0 0 +GRID* 4592 0 4.899739583e+00 1.757755154e-01* +* 6.969187500e+00 0 0 +GRID* 4593 0 4.622309028e+00-1.896767193e-01* +* 6.344137500e+00 0 0 +GRID* 4594 0 4.622309028e+00-1.771767193e-01* +* 6.344137500e+00 0 0 +GRID* 4595 0 4.691666667e+00-1.873617247e-01* +* 6.500400000e+00 0 0 +GRID* 4596 0 4.691666667e+00-1.748617247e-01* +* 6.500400000e+00 0 0 +GRID* 4597 0 4.761024306e+00-1.850467302e-01* +* 6.656662500e+00 0 0 +GRID* 4598 0 4.761024306e+00-1.725467302e-01* +* 6.656662500e+00 0 0 +GRID* 4599 0 4.830381944e+00-1.827317356e-01* +* 6.812925000e+00 0 0 +GRID* 4600 0 4.830381944e+00-1.702317356e-01* +* 6.812925000e+00 0 0 +GRID* 4601 0 4.899739583e+00-1.804167411e-01* +* 6.969187500e+00 0 0 +GRID* 4602 0 4.899739583e+00-1.679167411e-01* +* 6.969187500e+00 0 0 +GRID* 4603 0 4.841753472e+00 2.022247376e-01* +* 6.344137500e+00 0 0 +GRID* 4604 0 4.841753472e+00 1.897247376e-01* +* 6.344137500e+00 0 0 +GRID* 4605 0 4.908333333e+00 1.997614192e-01* +* 6.500400000e+00 0 0 +GRID* 4606 0 4.908333333e+00 1.872614192e-01* +* 6.500400000e+00 0 0 +GRID* 4607 0 4.974913194e+00 1.972981007e-01* +* 6.656662500e+00 0 0 +GRID* 4608 0 4.974913194e+00 1.847981007e-01* +* 6.656662500e+00 0 0 +GRID* 4609 0 5.041493056e+00 1.948347823e-01* +* 6.812925000e+00 0 0 +GRID* 4610 0 5.041493056e+00 1.823347823e-01* +* 6.812925000e+00 0 0 +GRID* 4611 0 5.108072917e+00 1.923714638e-01* +* 6.969187500e+00 0 0 +GRID* 4612 0 5.108072917e+00 1.798714638e-01* +* 6.969187500e+00 0 0 +GRID* 4613 0 4.841753472e+00-1.825757465e-01* +* 6.344137500e+00 0 0 +GRID* 4614 0 4.841753472e+00-1.700757465e-01* +* 6.344137500e+00 0 0 +GRID* 4615 0 4.908333333e+00-1.803758689e-01* +* 6.500400000e+00 0 0 +GRID* 4616 0 4.908333333e+00-1.678758689e-01* +* 6.500400000e+00 0 0 +GRID* 4617 0 4.974913194e+00-1.781759912e-01* +* 6.656662500e+00 0 0 +GRID* 4618 0 4.974913194e+00-1.656759912e-01* +* 6.656662500e+00 0 0 +GRID* 4619 0 5.041493056e+00-1.759761136e-01* +* 6.812925000e+00 0 0 +GRID* 4620 0 5.041493056e+00-1.634761136e-01* +* 6.812925000e+00 0 0 +GRID* 4621 0 5.108072917e+00-1.737762359e-01* +* 6.969187500e+00 0 0 +GRID* 4622 0 5.108072917e+00-1.612762359e-01* +* 6.969187500e+00 0 0 +GRID* 4623 0 5.061197917e+00 2.006043302e-01* +* 6.344137500e+00 0 0 +GRID* 4624 0 5.061197917e+00 1.881043302e-01* +* 6.344137500e+00 0 0 +GRID* 4625 0 5.125000000e+00 1.981884018e-01* +* 6.500400000e+00 0 0 +GRID* 4626 0 5.125000000e+00 1.856884018e-01* +* 6.500400000e+00 0 0 +GRID* 4627 0 5.188802083e+00 1.957724734e-01* +* 6.656662500e+00 0 0 +GRID* 4628 0 5.188802083e+00 1.832724734e-01* +* 6.656662500e+00 0 0 +GRID* 4629 0 5.252604167e+00 1.933565450e-01* +* 6.812925000e+00 0 0 +GRID* 4630 0 5.252604167e+00 1.808565450e-01* +* 6.812925000e+00 0 0 +GRID* 4631 0 5.316406250e+00 1.909373069e-01* +* 6.969187500e+00 0 0 +GRID* 4632 0 5.316406250e+00 1.784373069e-01* +* 6.969187500e+00 0 0 +GRID* 4633 0 5.061197917e+00-1.642982827e-01* +* 6.344137500e+00 0 0 +GRID* 4634 0 5.061197917e+00-1.517982827e-01* +* 6.344137500e+00 0 0 +GRID* 4635 0 5.125000000e+00-1.623700732e-01* +* 6.500400000e+00 0 0 +GRID* 4636 0 5.125000000e+00-1.498700732e-01* +* 6.500400000e+00 0 0 +GRID* 4637 0 5.188802083e+00-1.604418638e-01* +* 6.656662500e+00 0 0 +GRID* 4638 0 5.188802083e+00-1.479418638e-01* +* 6.656662500e+00 0 0 +GRID* 4639 0 5.252604167e+00-1.585136543e-01* +* 6.812925000e+00 0 0 +GRID* 4640 0 5.252604167e+00-1.460136543e-01* +* 6.812925000e+00 0 0 +GRID* 4641 0 5.316406250e+00-1.565854449e-01* +* 6.969187500e+00 0 0 +GRID* 4642 0 5.316406250e+00-1.440854449e-01* +* 6.969187500e+00 0 0 +GRID* 4643 0 5.280642361e+00 1.927232017e-01* +* 6.344137500e+00 0 0 +GRID* 4644 0 5.280642361e+00 1.802232017e-01* +* 6.344137500e+00 0 0 +GRID* 4645 0 5.341666667e+00 1.904366339e-01* +* 6.500400000e+00 0 0 +GRID* 4646 0 5.341666667e+00 1.779366339e-01* +* 6.500400000e+00 0 0 +GRID* 4647 0 5.402690972e+00 1.881500662e-01* +* 6.656662500e+00 0 0 +GRID* 4648 0 5.402690972e+00 1.756500662e-01* +* 6.656662500e+00 0 0 +GRID* 4649 0 5.463715278e+00 1.858634985e-01* +* 6.812925000e+00 0 0 +GRID* 4650 0 5.463715278e+00 1.733634985e-01* +* 6.812925000e+00 0 0 +GRID* 4651 0 5.524739583e+00 1.835769307e-01* +* 6.969187500e+00 0 0 +GRID* 4652 0 5.524739583e+00 1.710769307e-01* +* 6.969187500e+00 0 0 +GRID* 4653 0 5.280642361e+00-1.385178419e-01* +* 6.344137500e+00 0 0 +GRID* 4654 0 5.280642361e+00-1.260178419e-01* +* 6.344137500e+00 0 0 +GRID* 4655 0 5.341666667e+00-1.369410780e-01* +* 6.500400000e+00 0 0 +GRID* 4656 0 5.341666667e+00-1.244410780e-01* +* 6.500400000e+00 0 0 +GRID* 4657 0 5.402690972e+00-1.353643140e-01* +* 6.656662500e+00 0 0 +GRID* 4658 0 5.402690972e+00-1.228643140e-01* +* 6.656662500e+00 0 0 +GRID* 4659 0 5.463715278e+00-1.337875500e-01* +* 6.812925000e+00 0 0 +GRID* 4660 0 5.463715278e+00-1.212875500e-01* +* 6.812925000e+00 0 0 +GRID* 4661 0 5.524739583e+00-1.322107860e-01* +* 6.969187500e+00 0 0 +GRID* 4662 0 5.524739583e+00-1.197107860e-01* +* 6.969187500e+00 0 0 +GRID* 4663 0 5.500086806e+00 1.784637358e-01* +* 6.344137500e+00 0 0 +GRID* 4664 0 5.500086806e+00 1.659637358e-01* +* 6.344137500e+00 0 0 +GRID* 4665 0 5.558333333e+00 1.763945852e-01* +* 6.500400000e+00 0 0 +GRID* 4666 0 5.558333333e+00 1.638945852e-01* +* 6.500400000e+00 0 0 +GRID* 4667 0 5.616579861e+00 1.743254346e-01* +* 6.656662500e+00 0 0 +GRID* 4668 0 5.616579861e+00 1.618254346e-01* +* 6.656662500e+00 0 0 +GRID* 4669 0 5.674826389e+00 1.722562839e-01* +* 6.812925000e+00 0 0 +GRID* 4670 0 5.674826389e+00 1.597562839e-01* +* 6.812925000e+00 0 0 +GRID* 4671 0 5.733072917e+00 1.701871333e-01* +* 6.969187500e+00 0 0 +GRID* 4672 0 5.733072917e+00 1.576871333e-01* +* 6.969187500e+00 0 0 +GRID* 4673 0 5.500086806e+00-1.083302570e-01* +* 6.344137500e+00 0 0 +GRID* 4674 0 5.500086806e+00-9.583025699e-02* +* 6.344137500e+00 0 0 +GRID* 4675 0 5.558333333e+00-1.071517591e-01* +* 6.500400000e+00 0 0 +GRID* 4676 0 5.558333333e+00-9.465175906e-02* +* 6.500400000e+00 0 0 +GRID* 4677 0 5.616579861e+00-1.059732611e-01* +* 6.656662500e+00 0 0 +GRID* 4678 0 5.616579861e+00-9.347326113e-02* +* 6.656662500e+00 0 0 +GRID* 4679 0 5.674826389e+00-1.047947632e-01* +* 6.812925000e+00 0 0 +GRID* 4680 0 5.674826389e+00-9.229476320e-02* +* 6.812925000e+00 0 0 +GRID* 4681 0 5.733072917e+00-1.036162653e-01* +* 6.969187500e+00 0 0 +GRID* 4682 0 5.733072917e+00-9.111626527e-02* +* 6.969187500e+00 0 0 +GRID* 4683 0 4.249652778e+00 1.409140014e-01* +* 7.125450000e+00 0 0 +GRID* 4684 0 4.328732639e+00 1.392920388e-01* +* 7.281712500e+00 0 0 +GRID* 4685 0 4.407812500e+00 1.376700762e-01* +* 7.437975000e+00 0 0 +GRID* 4686 0 4.486892361e+00 1.360481136e-01* +* 7.594237500e+00 0 0 +GRID* 4687 0 4.352430556e+00 1.549497795e-01* +* 7.125450000e+00 0 0 +GRID* 4688 0 4.430121528e+00 1.531281997e-01* +* 7.281712500e+00 0 0 +GRID* 4689 0 4.507812500e+00 1.513066200e-01* +* 7.437975000e+00 0 0 +GRID* 4690 0 4.585503472e+00 1.494850402e-01* +* 7.594237500e+00 0 0 +GRID* 4691 0 4.249652778e+00-1.413828701e-01* +* 7.125450000e+00 0 0 +GRID* 4692 0 4.352430556e+00-1.548741328e-01* +* 7.125450000e+00 0 0 +GRID* 4693 0 4.328732639e+00-1.397525902e-01* +* 7.281712500e+00 0 0 +GRID* 4694 0 4.430121528e+00-1.530509318e-01* +* 7.281712500e+00 0 0 +GRID* 4695 0 4.407812500e+00-1.381223103e-01* +* 7.437975000e+00 0 0 +GRID* 4696 0 4.507812500e+00-1.512277309e-01* +* 7.437975000e+00 0 0 +GRID* 4697 0 4.486892361e+00-1.364920303e-01* +* 7.594237500e+00 0 0 +GRID* 4698 0 4.585503472e+00-1.494045300e-01* +* 7.594237500e+00 0 0 +GRID* 4699 0 4.455208333e+00 1.663982813e-01* +* 7.125450000e+00 0 0 +GRID* 4700 0 4.531510417e+00 1.644096494e-01* +* 7.281712500e+00 0 0 +GRID* 4701 0 4.607812500e+00 1.624210175e-01* +* 7.437975000e+00 0 0 +GRID* 4702 0 4.684114583e+00 1.604323856e-01* +* 7.594237500e+00 0 0 +GRID* 4703 0 4.557986111e+00 1.754373019e-01* +* 7.125450000e+00 0 0 +GRID* 4704 0 4.632899306e+00 1.733235503e-01* +* 7.281712500e+00 0 0 +GRID* 4705 0 4.707812500e+00 1.712097988e-01* +* 7.437975000e+00 0 0 +GRID* 4706 0 4.782725694e+00 1.690960472e-01* +* 7.594237500e+00 0 0 +GRID* 4707 0 4.455208333e+00-1.655972107e-01* +* 7.125450000e+00 0 0 +GRID* 4708 0 4.557986111e+00-1.738834399e-01* +* 7.125450000e+00 0 0 +GRID* 4709 0 4.531510417e+00-1.636160393e-01* +* 7.281712500e+00 0 0 +GRID* 4710 0 4.632899306e+00-1.717871747e-01* +* 7.281712500e+00 0 0 +GRID* 4711 0 4.607812500e+00-1.616348678e-01* +* 7.437975000e+00 0 0 +GRID* 4712 0 4.707812500e+00-1.696909096e-01* +* 7.437975000e+00 0 0 +GRID* 4713 0 4.684114583e+00-1.596536963e-01* +* 7.594237500e+00 0 0 +GRID* 4714 0 4.782725694e+00-1.675946444e-01* +* 7.594237500e+00 0 0 +GRID* 4715 0 4.660763889e+00 1.829494897e-01* +* 7.125450000e+00 0 0 +GRID* 4716 0 4.734288194e+00 1.807322622e-01* +* 7.281712500e+00 0 0 +GRID* 4717 0 4.807812500e+00 1.785150347e-01* +* 7.437975000e+00 0 0 +GRID* 4718 0 4.881336806e+00 1.762978072e-01* +* 7.594237500e+00 0 0 +GRID* 4719 0 4.763541667e+00 1.892504091e-01* +* 7.125450000e+00 0 0 +GRID* 4720 0 4.835677083e+00 1.869481952e-01* +* 7.281712500e+00 0 0 +GRID* 4721 0 4.907812500e+00 1.846459814e-01* +* 7.437975000e+00 0 0 +GRID* 4722 0 4.979947917e+00 1.823437676e-01* +* 7.594237500e+00 0 0 +GRID* 4723 0 4.660763889e+00-1.805879247e-01* +* 7.125450000e+00 0 0 +GRID* 4724 0 4.763541667e+00-1.859276253e-01* +* 7.125450000e+00 0 0 +GRID* 4725 0 4.734288194e+00-1.783989608e-01* +* 7.281712500e+00 0 0 +GRID* 4726 0 4.835677083e+00-1.836666802e-01* +* 7.281712500e+00 0 0 +GRID* 4727 0 4.807812500e+00-1.762099969e-01* +* 7.437975000e+00 0 0 +GRID* 4728 0 4.907812500e+00-1.814057350e-01* +* 7.437975000e+00 0 0 +GRID* 4729 0 4.881336806e+00-1.740210330e-01* +* 7.594237500e+00 0 0 +GRID* 4730 0 4.979947917e+00-1.791447899e-01* +* 7.594237500e+00 0 0 +GRID* 4731 0 4.866319444e+00 1.943976167e-01* +* 7.125450000e+00 0 0 +GRID* 4732 0 4.937065972e+00 1.920282477e-01* +* 7.281712500e+00 0 0 +GRID* 4733 0 5.007812500e+00 1.896588787e-01* +* 7.437975000e+00 0 0 +GRID* 4734 0 5.078559028e+00 1.872895097e-01* +* 7.594237500e+00 0 0 +GRID* 4735 0 4.969097222e+00 1.983549944e-01* +* 7.125450000e+00 0 0 +GRID* 4736 0 5.038454861e+00 1.959344735e-01* +* 7.281712500e+00 0 0 +GRID* 4737 0 5.107812500e+00 1.935139525e-01* +* 7.437975000e+00 0 0 +GRID* 4738 0 5.177170139e+00 1.910934316e-01* +* 7.594237500e+00 0 0 +GRID* 4739 0 4.866319444e+00-1.894104310e-01* +* 7.125450000e+00 0 0 +GRID* 4740 0 4.969097222e+00-1.906017466e-01* +* 7.125450000e+00 0 0 +GRID* 4741 0 4.937065972e+00-1.871066315e-01* +* 7.281712500e+00 0 0 +GRID* 4742 0 5.038454861e+00-1.882867520e-01* +* 7.281712500e+00 0 0 +GRID* 4743 0 5.007812500e+00-1.848028320e-01* +* 7.437975000e+00 0 0 +GRID* 4744 0 5.107812500e+00-1.859717575e-01* +* 7.437975000e+00 0 0 +GRID* 4745 0 5.078559028e+00-1.824990325e-01* +* 7.594237500e+00 0 0 +GRID* 4746 0 5.177170139e+00-1.836567630e-01* +* 7.594237500e+00 0 0 +GRID* 4747 0 5.071875000e+00 2.010090789e-01* +* 7.125450000e+00 0 0 +GRID* 4748 0 5.139843750e+00 1.985598152e-01* +* 7.281712500e+00 0 0 +GRID* 4749 0 5.207812500e+00 1.961105515e-01* +* 7.437975000e+00 0 0 +GRID* 4750 0 5.275781250e+00 1.936612878e-01* +* 7.594237500e+00 0 0 +GRID* 4751 0 5.174652778e+00 2.024081454e-01* +* 7.125450000e+00 0 0 +GRID* 4752 0 5.241232639e+00 1.999448269e-01* +* 7.281712500e+00 0 0 +GRID* 4753 0 5.307812500e+00 1.974815085e-01* +* 7.437975000e+00 0 0 +GRID* 4754 0 5.374392361e+00 1.950181900e-01* +* 7.594237500e+00 0 0 +GRID* 4755 0 5.071875000e+00-1.887337597e-01* +* 7.125450000e+00 0 0 +GRID* 4756 0 5.174652778e+00-1.840763583e-01* +* 7.125450000e+00 0 0 +GRID* 4757 0 5.139843750e+00-1.864606974e-01* +* 7.281712500e+00 0 0 +GRID* 4758 0 5.241232639e+00-1.818764807e-01* +* 7.281712500e+00 0 0 +GRID* 4759 0 5.207812500e+00-1.841876351e-01* +* 7.437975000e+00 0 0 +GRID* 4760 0 5.307812500e+00-1.796766030e-01* +* 7.437975000e+00 0 0 +GRID* 4761 0 5.275781250e+00-1.819145728e-01* +* 7.594237500e+00 0 0 +GRID* 4762 0 5.374392361e+00-1.774767254e-01* +* 7.594237500e+00 0 0 +GRID* 4763 0 5.277430556e+00 2.023574615e-01* +* 7.125450000e+00 0 0 +GRID* 4764 0 5.342621528e+00 1.999072557e-01* +* 7.281712500e+00 0 0 +GRID* 4765 0 5.407812500e+00 1.974570499e-01* +* 7.437975000e+00 0 0 +GRID* 4766 0 5.473003472e+00 1.950068441e-01* +* 7.594237500e+00 0 0 +GRID* 4767 0 5.380208333e+00 2.010129091e-01* +* 7.125450000e+00 0 0 +GRID* 4768 0 5.444010417e+00 1.985885114e-01* +* 7.281712500e+00 0 0 +GRID* 4769 0 5.507812500e+00 1.961641136e-01* +* 7.437975000e+00 0 0 +GRID* 4770 0 5.571614583e+00 1.937397159e-01* +* 7.594237500e+00 0 0 +GRID* 4771 0 5.277430556e+00-1.766142955e-01* +* 7.125450000e+00 0 0 +GRID* 4772 0 5.380208333e+00-1.671572355e-01* +* 7.125450000e+00 0 0 +GRID* 4773 0 5.342621528e+00-1.745370020e-01* +* 7.281712500e+00 0 0 +GRID* 4774 0 5.444010417e+00-1.652290260e-01* +* 7.281712500e+00 0 0 +GRID* 4775 0 5.407812500e+00-1.724597085e-01* +* 7.437975000e+00 0 0 +GRID* 4776 0 5.507812500e+00-1.633008166e-01* +* 7.437975000e+00 0 0 +GRID* 4777 0 5.473003472e+00-1.703824151e-01* +* 7.594237500e+00 0 0 +GRID* 4778 0 5.571614583e+00-1.613673404e-01* +* 7.594237500e+00 0 0 +GRID* 4779 0 5.482986111e+00 1.980769648e-01* +* 7.125450000e+00 0 0 +GRID* 4780 0 5.545399306e+00 1.957105077e-01* +* 7.281712500e+00 0 0 +GRID* 4781 0 5.607812500e+00 1.933440505e-01* +* 7.437975000e+00 0 0 +GRID* 4782 0 5.670225694e+00 1.909775934e-01* +* 7.594237500e+00 0 0 +GRID* 4783 0 5.585763889e+00 1.937903630e-01* +* 7.125450000e+00 0 0 +GRID* 4784 0 5.646788194e+00 1.915037953e-01* +* 7.281712500e+00 0 0 +GRID* 4785 0 5.707812500e+00 1.892172275e-01* +* 7.437975000e+00 0 0 +GRID* 4786 0 5.768836806e+00 1.869306598e-01* +* 7.594237500e+00 0 0 +GRID* 4787 0 5.482986111e+00-1.557796374e-01* +* 7.125450000e+00 0 0 +GRID* 4788 0 5.585763889e+00-1.431340220e-01* +* 7.125450000e+00 0 0 +GRID* 4789 0 5.545399306e+00-1.540148755e-01* +* 7.281712500e+00 0 0 +GRID* 4790 0 5.646788194e+00-1.415572580e-01* +* 7.281712500e+00 0 0 +GRID* 4791 0 5.607812500e+00-1.522501137e-01* +* 7.437975000e+00 0 0 +GRID* 4792 0 5.707812500e+00-1.399804940e-01* +* 7.437975000e+00 0 0 +GRID* 4793 0 5.670225694e+00-1.504853519e-01* +* 7.594237500e+00 0 0 +GRID* 4794 0 5.768836806e+00-1.384037300e-01* +* 7.594237500e+00 0 0 +GRID* 4795 0 5.688541667e+00 1.879019567e-01* +* 7.125450000e+00 0 0 +GRID* 4796 0 5.748177083e+00 1.857072302e-01* +* 7.281712500e+00 0 0 +GRID* 4797 0 5.807812500e+00 1.835125036e-01* +* 7.437975000e+00 0 0 +GRID* 4798 0 5.867447917e+00 1.813177771e-01* +* 7.594237500e+00 0 0 +GRID* 4799 0 5.791319444e+00 1.806179826e-01* +* 7.125450000e+00 0 0 +GRID* 4800 0 5.849565972e+00 1.785488320e-01* +* 7.281712500e+00 0 0 +GRID* 4801 0 5.907812500e+00 1.764796813e-01* +* 7.437975000e+00 0 0 +GRID* 4802 0 5.966059028e+00 1.744105307e-01* +* 7.594237500e+00 0 0 +GRID* 4803 0 5.688541667e+00-1.293876211e-01* +* 7.125450000e+00 0 0 +GRID* 4804 0 5.791319444e+00-1.149377673e-01* +* 7.125450000e+00 0 0 +GRID* 4805 0 5.748177083e+00-1.280037266e-01* +* 7.281712500e+00 0 0 +GRID* 4806 0 5.849565972e+00-1.137592694e-01* +* 7.281712500e+00 0 0 +GRID* 4807 0 5.807812500e+00-1.266198320e-01* +* 7.437975000e+00 0 0 +GRID* 4808 0 5.907812500e+00-1.125807715e-01* +* 7.437975000e+00 0 0 +GRID* 4809 0 5.867447917e+00-1.252359375e-01* +* 7.594237500e+00 0 0 +GRID* 4810 0 5.966059028e+00-1.114022736e-01* +* 7.594237500e+00 0 0 +GRID* 4811 0 5.894097222e+00 1.717876836e-01* +* 7.125450000e+00 0 0 +GRID* 4812 0 5.950954861e+00 1.698525101e-01* +* 7.281712500e+00 0 0 +GRID* 4813 0 6.007812500e+00 1.679173365e-01* +* 7.437975000e+00 0 0 +GRID* 4814 0 6.064670139e+00 1.659821630e-01* +* 7.594237500e+00 0 0 +GRID* 4815 0 5.894097222e+00-1.000641793e-01* +* 7.125450000e+00 0 0 +GRID* 4816 0 5.950954861e+00-9.908925693e-02* +* 7.281712500e+00 0 0 +GRID* 4817 0 6.007812500e+00-9.811433459e-02* +* 7.437975000e+00 0 0 +GRID* 4818 0 6.064670139e+00-9.713941225e-02* +* 7.594237500e+00 0 0 +GRID* 4819 0 4.352430556e+00 1.424497795e-01* +* 7.125450000e+00 0 0 +GRID* 4820 0 4.352430556e+00 1.299497795e-01* +* 7.125450000e+00 0 0 +GRID* 4821 0 4.430121528e+00 1.406281997e-01* +* 7.281712500e+00 0 0 +GRID* 4822 0 4.430121528e+00 1.281281997e-01* +* 7.281712500e+00 0 0 +GRID* 4823 0 4.507812500e+00 1.388066200e-01* +* 7.437975000e+00 0 0 +GRID* 4824 0 4.507812500e+00 1.263066200e-01* +* 7.437975000e+00 0 0 +GRID* 4825 0 4.585503472e+00 1.369850402e-01* +* 7.594237500e+00 0 0 +GRID* 4826 0 4.585503472e+00 1.244850402e-01* +* 7.594237500e+00 0 0 +GRID* 4827 0 4.663194444e+00 1.351634605e-01* +* 7.750500000e+00 0 0 +GRID* 4828 0 4.663194444e+00 1.226634605e-01* +* 7.750500000e+00 0 0 +GRID* 4829 0 4.352430556e+00-1.423741328e-01* +* 7.125450000e+00 0 0 +GRID* 4830 0 4.352430556e+00-1.298741328e-01* +* 7.125450000e+00 0 0 +GRID* 4831 0 4.430121528e+00-1.405509318e-01* +* 7.281712500e+00 0 0 +GRID* 4832 0 4.430121528e+00-1.280509318e-01* +* 7.281712500e+00 0 0 +GRID* 4833 0 4.507812500e+00-1.387277309e-01* +* 7.437975000e+00 0 0 +GRID* 4834 0 4.507812500e+00-1.262277309e-01* +* 7.437975000e+00 0 0 +GRID* 4835 0 4.585503472e+00-1.369045300e-01* +* 7.594237500e+00 0 0 +GRID* 4836 0 4.585503472e+00-1.244045300e-01* +* 7.594237500e+00 0 0 +GRID* 4837 0 4.663194444e+00-1.350813291e-01* +* 7.750500000e+00 0 0 +GRID* 4838 0 4.663194444e+00-1.225813291e-01* +* 7.750500000e+00 0 0 +GRID* 4839 0 4.557986111e+00 1.629373019e-01* +* 7.125450000e+00 0 0 +GRID* 4840 0 4.557986111e+00 1.504373019e-01* +* 7.125450000e+00 0 0 +GRID* 4841 0 4.632899306e+00 1.608235503e-01* +* 7.281712500e+00 0 0 +GRID* 4842 0 4.632899306e+00 1.483235503e-01* +* 7.281712500e+00 0 0 +GRID* 4843 0 4.707812500e+00 1.587097988e-01* +* 7.437975000e+00 0 0 +GRID* 4844 0 4.707812500e+00 1.462097988e-01* +* 7.437975000e+00 0 0 +GRID* 4845 0 4.782725694e+00 1.565960472e-01* +* 7.594237500e+00 0 0 +GRID* 4846 0 4.782725694e+00 1.440960472e-01* +* 7.594237500e+00 0 0 +GRID* 4847 0 4.857638889e+00 1.544822957e-01* +* 7.750500000e+00 0 0 +GRID* 4848 0 4.857638889e+00 1.419822957e-01* +* 7.750500000e+00 0 0 +GRID* 4849 0 4.557986111e+00-1.613834399e-01* +* 7.125450000e+00 0 0 +GRID* 4850 0 4.557986111e+00-1.488834399e-01* +* 7.125450000e+00 0 0 +GRID* 4851 0 4.632899306e+00-1.592871747e-01* +* 7.281712500e+00 0 0 +GRID* 4852 0 4.632899306e+00-1.467871747e-01* +* 7.281712500e+00 0 0 +GRID* 4853 0 4.707812500e+00-1.571909096e-01* +* 7.437975000e+00 0 0 +GRID* 4854 0 4.707812500e+00-1.446909096e-01* +* 7.437975000e+00 0 0 +GRID* 4855 0 4.782725694e+00-1.550946444e-01* +* 7.594237500e+00 0 0 +GRID* 4856 0 4.782725694e+00-1.425946444e-01* +* 7.594237500e+00 0 0 +GRID* 4857 0 4.857638889e+00-1.529983793e-01* +* 7.750500000e+00 0 0 +GRID* 4858 0 4.857638889e+00-1.404983793e-01* +* 7.750500000e+00 0 0 +GRID* 4859 0 4.763541667e+00 1.767504091e-01* +* 7.125450000e+00 0 0 +GRID* 4860 0 4.763541667e+00 1.642504091e-01* +* 7.125450000e+00 0 0 +GRID* 4861 0 4.835677083e+00 1.744481952e-01* +* 7.281712500e+00 0 0 +GRID* 4862 0 4.835677083e+00 1.619481952e-01* +* 7.281712500e+00 0 0 +GRID* 4863 0 4.907812500e+00 1.721459814e-01* +* 7.437975000e+00 0 0 +GRID* 4864 0 4.907812500e+00 1.596459814e-01* +* 7.437975000e+00 0 0 +GRID* 4865 0 4.979947917e+00 1.698437676e-01* +* 7.594237500e+00 0 0 +GRID* 4866 0 4.979947917e+00 1.573437676e-01* +* 7.594237500e+00 0 0 +GRID* 4867 0 5.052083333e+00 1.675415538e-01* +* 7.750500000e+00 0 0 +GRID* 4868 0 5.052083333e+00 1.550415538e-01* +* 7.750500000e+00 0 0 +GRID* 4869 0 4.763541667e+00-1.734276253e-01* +* 7.125450000e+00 0 0 +GRID* 4870 0 4.763541667e+00-1.609276253e-01* +* 7.125450000e+00 0 0 +GRID* 4871 0 4.835677083e+00-1.711666802e-01* +* 7.281712500e+00 0 0 +GRID* 4872 0 4.835677083e+00-1.586666802e-01* +* 7.281712500e+00 0 0 +GRID* 4873 0 4.907812500e+00-1.689057350e-01* +* 7.437975000e+00 0 0 +GRID* 4874 0 4.907812500e+00-1.564057350e-01* +* 7.437975000e+00 0 0 +GRID* 4875 0 4.979947917e+00-1.666447899e-01* +* 7.594237500e+00 0 0 +GRID* 4876 0 4.979947917e+00-1.541447899e-01* +* 7.594237500e+00 0 0 +GRID* 4877 0 5.052083333e+00-1.643838448e-01* +* 7.750500000e+00 0 0 +GRID* 4878 0 5.052083333e+00-1.518838448e-01* +* 7.750500000e+00 0 0 +GRID* 4879 0 4.969097222e+00 1.858549944e-01* +* 7.125450000e+00 0 0 +GRID* 4880 0 4.969097222e+00 1.733549944e-01* +* 7.125450000e+00 0 0 +GRID* 4881 0 5.038454861e+00 1.834344735e-01* +* 7.281712500e+00 0 0 +GRID* 4882 0 5.038454861e+00 1.709344735e-01* +* 7.281712500e+00 0 0 +GRID* 4883 0 5.107812500e+00 1.810139525e-01* +* 7.437975000e+00 0 0 +GRID* 4884 0 5.107812500e+00 1.685139525e-01* +* 7.437975000e+00 0 0 +GRID* 4885 0 5.177170139e+00 1.785934316e-01* +* 7.594237500e+00 0 0 +GRID* 4886 0 5.177170139e+00 1.660934316e-01* +* 7.594237500e+00 0 0 +GRID* 4887 0 5.246527778e+00 1.761729106e-01* +* 7.750500000e+00 0 0 +GRID* 4888 0 5.246527778e+00 1.636729106e-01* +* 7.750500000e+00 0 0 +GRID* 4889 0 4.969097222e+00-1.781017466e-01* +* 7.125450000e+00 0 0 +GRID* 4890 0 4.969097222e+00-1.656017466e-01* +* 7.125450000e+00 0 0 +GRID* 4891 0 5.038454861e+00-1.757867520e-01* +* 7.281712500e+00 0 0 +GRID* 4892 0 5.038454861e+00-1.632867520e-01* +* 7.281712500e+00 0 0 +GRID* 4893 0 5.107812500e+00-1.734717575e-01* +* 7.437975000e+00 0 0 +GRID* 4894 0 5.107812500e+00-1.609717575e-01* +* 7.437975000e+00 0 0 +GRID* 4895 0 5.177170139e+00-1.711567630e-01* +* 7.594237500e+00 0 0 +GRID* 4896 0 5.177170139e+00-1.586567630e-01* +* 7.594237500e+00 0 0 +GRID* 4897 0 5.246527778e+00-1.688417684e-01* +* 7.750500000e+00 0 0 +GRID* 4898 0 5.246527778e+00-1.563417684e-01* +* 7.750500000e+00 0 0 +GRID* 4899 0 5.174652778e+00 1.899081454e-01* +* 7.125450000e+00 0 0 +GRID* 4900 0 5.174652778e+00 1.774081454e-01* +* 7.125450000e+00 0 0 +GRID* 4901 0 5.241232639e+00 1.874448269e-01* +* 7.281712500e+00 0 0 +GRID* 4902 0 5.241232639e+00 1.749448269e-01* +* 7.281712500e+00 0 0 +GRID* 4903 0 5.307812500e+00 1.849815085e-01* +* 7.437975000e+00 0 0 +GRID* 4904 0 5.307812500e+00 1.724815085e-01* +* 7.437975000e+00 0 0 +GRID* 4905 0 5.374392361e+00 1.825181900e-01* +* 7.594237500e+00 0 0 +GRID* 4906 0 5.374392361e+00 1.700181900e-01* +* 7.594237500e+00 0 0 +GRID* 4907 0 5.440972222e+00 1.800548716e-01* +* 7.750500000e+00 0 0 +GRID* 4908 0 5.440972222e+00 1.675548716e-01* +* 7.750500000e+00 0 0 +GRID* 4909 0 5.174652778e+00-1.715763583e-01* +* 7.125450000e+00 0 0 +GRID* 4910 0 5.174652778e+00-1.590763583e-01* +* 7.125450000e+00 0 0 +GRID* 4911 0 5.241232639e+00-1.693764807e-01* +* 7.281712500e+00 0 0 +GRID* 4912 0 5.241232639e+00-1.568764807e-01* +* 7.281712500e+00 0 0 +GRID* 4913 0 5.307812500e+00-1.671766030e-01* +* 7.437975000e+00 0 0 +GRID* 4914 0 5.307812500e+00-1.546766030e-01* +* 7.437975000e+00 0 0 +GRID* 4915 0 5.374392361e+00-1.649767254e-01* +* 7.594237500e+00 0 0 +GRID* 4916 0 5.374392361e+00-1.524767254e-01* +* 7.594237500e+00 0 0 +GRID* 4917 0 5.440972222e+00-1.627768477e-01* +* 7.750500000e+00 0 0 +GRID* 4918 0 5.440972222e+00-1.502768477e-01* +* 7.750500000e+00 0 0 +GRID* 4919 0 5.380208333e+00 1.885129091e-01* +* 7.125450000e+00 0 0 +GRID* 4920 0 5.380208333e+00 1.760129091e-01* +* 7.125450000e+00 0 0 +GRID* 4921 0 5.444010417e+00 1.860885114e-01* +* 7.281712500e+00 0 0 +GRID* 4922 0 5.444010417e+00 1.735885114e-01* +* 7.281712500e+00 0 0 +GRID* 4923 0 5.507812500e+00 1.836641136e-01* +* 7.437975000e+00 0 0 +GRID* 4924 0 5.507812500e+00 1.711641136e-01* +* 7.437975000e+00 0 0 +GRID* 4925 0 5.571614583e+00 1.812397159e-01* +* 7.594237500e+00 0 0 +GRID* 4926 0 5.571614583e+00 1.687397159e-01* +* 7.594237500e+00 0 0 +GRID* 4927 0 5.635416667e+00 1.788153181e-01* +* 7.750500000e+00 0 0 +GRID* 4928 0 5.635416667e+00 1.663153181e-01* +* 7.750500000e+00 0 0 +GRID* 4929 0 5.380208333e+00-1.546572355e-01* +* 7.125450000e+00 0 0 +GRID* 4930 0 5.380208333e+00-1.421572355e-01* +* 7.125450000e+00 0 0 +GRID* 4931 0 5.444010417e+00-1.527290260e-01* +* 7.281712500e+00 0 0 +GRID* 4932 0 5.444010417e+00-1.402290260e-01* +* 7.281712500e+00 0 0 +GRID* 4933 0 5.507812500e+00-1.508008166e-01* +* 7.437975000e+00 0 0 +GRID* 4934 0 5.507812500e+00-1.383008166e-01* +* 7.437975000e+00 0 0 +GRID* 4935 0 5.571614583e+00-1.488673404e-01* +* 7.594237500e+00 0 0 +GRID* 4936 0 5.571614583e+00-1.363673404e-01* +* 7.594237500e+00 0 0 +GRID* 4937 0 5.635416667e+00-1.469283393e-01* +* 7.750500000e+00 0 0 +GRID* 4938 0 5.635416667e+00-1.344283393e-01* +* 7.750500000e+00 0 0 +GRID* 4939 0 5.585763889e+00 1.812903630e-01* +* 7.125450000e+00 0 0 +GRID* 4940 0 5.585763889e+00 1.687903630e-01* +* 7.125450000e+00 0 0 +GRID* 4941 0 5.646788194e+00 1.790037953e-01* +* 7.281712500e+00 0 0 +GRID* 4942 0 5.646788194e+00 1.665037953e-01* +* 7.281712500e+00 0 0 +GRID* 4943 0 5.707812500e+00 1.767172275e-01* +* 7.437975000e+00 0 0 +GRID* 4944 0 5.707812500e+00 1.642172275e-01* +* 7.437975000e+00 0 0 +GRID* 4945 0 5.768836806e+00 1.744306598e-01* +* 7.594237500e+00 0 0 +GRID* 4946 0 5.768836806e+00 1.619306598e-01* +* 7.594237500e+00 0 0 +GRID* 4947 0 5.829861111e+00 1.721357265e-01* +* 7.750500000e+00 0 0 +GRID* 4948 0 5.829861111e+00 1.596357265e-01* +* 7.750500000e+00 0 0 +GRID* 4949 0 5.585763889e+00-1.306340220e-01* +* 7.125450000e+00 0 0 +GRID* 4950 0 5.585763889e+00-1.181340220e-01* +* 7.125450000e+00 0 0 +GRID* 4951 0 5.646788194e+00-1.290572580e-01* +* 7.281712500e+00 0 0 +GRID* 4952 0 5.646788194e+00-1.165572580e-01* +* 7.281712500e+00 0 0 +GRID* 4953 0 5.707812500e+00-1.274804940e-01* +* 7.437975000e+00 0 0 +GRID* 4954 0 5.707812500e+00-1.149804940e-01* +* 7.437975000e+00 0 0 +GRID* 4955 0 5.768836806e+00-1.259037300e-01* +* 7.594237500e+00 0 0 +GRID* 4956 0 5.768836806e+00-1.134037300e-01* +* 7.594237500e+00 0 0 +GRID* 4957 0 5.829861111e+00-1.243269660e-01* +* 7.750500000e+00 0 0 +GRID* 4958 0 5.829861111e+00-1.118269660e-01* +* 7.750500000e+00 0 0 +GRID* 4959 0 5.791319444e+00 1.681179826e-01* +* 7.125450000e+00 0 0 +GRID* 4960 0 5.791319444e+00 1.556179826e-01* +* 7.125450000e+00 0 0 +GRID* 4961 0 5.849565972e+00 1.660488320e-01* +* 7.281712500e+00 0 0 +GRID* 4962 0 5.849565972e+00 1.535488320e-01* +* 7.281712500e+00 0 0 +GRID* 4963 0 5.907812500e+00 1.639796813e-01* +* 7.437975000e+00 0 0 +GRID* 4964 0 5.907812500e+00 1.514796813e-01* +* 7.437975000e+00 0 0 +GRID* 4965 0 5.966059028e+00 1.619105307e-01* +* 7.594237500e+00 0 0 +GRID* 4966 0 5.966059028e+00 1.494105307e-01* +* 7.594237500e+00 0 0 +GRID* 4967 0 6.024305556e+00 1.598413800e-01* +* 7.750500000e+00 0 0 +GRID* 4968 0 6.024305556e+00 1.473413800e-01* +* 7.750500000e+00 0 0 +GRID* 4969 0 5.791319444e+00-1.024377673e-01* +* 7.125450000e+00 0 0 +GRID* 4970 0 5.791319444e+00-8.993776735e-02* +* 7.125450000e+00 0 0 +GRID* 4971 0 5.849565972e+00-1.012592694e-01* +* 7.281712500e+00 0 0 +GRID* 4972 0 5.849565972e+00-8.875926942e-02* +* 7.281712500e+00 0 0 +GRID* 4973 0 5.907812500e+00-1.000807715e-01* +* 7.437975000e+00 0 0 +GRID* 4974 0 5.907812500e+00-8.758077149e-02* +* 7.437975000e+00 0 0 +GRID* 4975 0 5.966059028e+00-9.890227356e-02* +* 7.594237500e+00 0 0 +GRID* 4976 0 5.966059028e+00-8.640227356e-02* +* 7.594237500e+00 0 0 +GRID* 4977 0 6.024305556e+00-9.772377564e-02* +* 7.750500000e+00 0 0 +GRID* 4978 0 6.024305556e+00-8.522377564e-02* +* 7.750500000e+00 0 0 +GRID* 4979 0 4.645052083e+00 1.328041884e-01* +* 7.906762500e+00 0 0 +GRID* 4980 0 4.724131944e+00 1.311822258e-01* +* 8.063025000e+00 0 0 +GRID* 4981 0 4.803211806e+00 1.295602632e-01* +* 8.219287500e+00 0 0 +GRID* 4982 0 4.882291667e+00 1.279383006e-01* +* 8.375550000e+00 0 0 +GRID* 4983 0 4.740885417e+00 1.458418807e-01* +* 7.906762500e+00 0 0 +GRID* 4984 0 4.818576389e+00 1.440203010e-01* +* 8.063025000e+00 0 0 +GRID* 4985 0 4.896267361e+00 1.421987212e-01* +* 8.219287500e+00 0 0 +GRID* 4986 0 4.973958333e+00 1.403771415e-01* +* 8.375550000e+00 0 0 +GRID* 4987 0 4.645052083e+00-1.332314705e-01* +* 7.906762500e+00 0 0 +GRID* 4988 0 4.740885417e+00-1.457581282e-01* +* 7.906762500e+00 0 0 +GRID* 4989 0 4.724131944e+00-1.316011905e-01* +* 8.063025000e+00 0 0 +GRID* 4990 0 4.818576389e+00-1.439349272e-01* +* 8.063025000e+00 0 0 +GRID* 4991 0 4.803211806e+00-1.299709106e-01* +* 8.219287500e+00 0 0 +GRID* 4992 0 4.896267361e+00-1.421117263e-01* +* 8.219287500e+00 0 0 +GRID* 4993 0 4.882291667e+00-1.283406307e-01* +* 8.375550000e+00 0 0 +GRID* 4994 0 4.973958333e+00-1.402885254e-01* +* 8.375550000e+00 0 0 +GRID* 4995 0 4.836718750e+00 1.564551218e-01* +* 7.906762500e+00 0 0 +GRID* 4996 0 4.913020833e+00 1.544664899e-01* +* 8.063025000e+00 0 0 +GRID* 4997 0 4.989322917e+00 1.524778580e-01* +* 8.219287500e+00 0 0 +GRID* 4998 0 5.065625000e+00 1.504892261e-01* +* 8.375550000e+00 0 0 +GRID* 4999 0 4.932552083e+00 1.648685441e-01* +* 7.906762500e+00 0 0 +GRID* 5000 0 5.007465278e+00 1.627547926e-01* +* 8.063025000e+00 0 0 +GRID* 5001 0 5.082378472e+00 1.606410410e-01* +* 8.219287500e+00 0 0 +GRID* 5002 0 5.157291667e+00 1.585272895e-01* +* 8.375550000e+00 0 0 +GRID* 5003 0 4.836718750e+00-1.556913534e-01* +* 7.906762500e+00 0 0 +GRID* 5004 0 4.932552083e+00-1.634021142e-01* +* 7.906762500e+00 0 0 +GRID* 5005 0 4.913020833e+00-1.537101820e-01* +* 8.063025000e+00 0 0 +GRID* 5006 0 5.007465278e+00-1.613058490e-01* +* 8.063025000e+00 0 0 +GRID* 5007 0 4.989322917e+00-1.517290105e-01* +* 8.219287500e+00 0 0 +GRID* 5008 0 5.082378472e+00-1.592095839e-01* +* 8.219287500e+00 0 0 +GRID* 5009 0 5.065625000e+00-1.497478391e-01* +* 8.375550000e+00 0 0 +GRID* 5010 0 5.157291667e+00-1.571133187e-01* +* 8.375550000e+00 0 0 +GRID* 5011 0 5.028385417e+00 1.718633522e-01* +* 7.906762500e+00 0 0 +GRID* 5012 0 5.101909722e+00 1.696461247e-01* +* 8.063025000e+00 0 0 +GRID* 5013 0 5.175434028e+00 1.674288972e-01* +* 8.219287500e+00 0 0 +GRID* 5014 0 5.248958333e+00 1.652116697e-01* +* 8.375550000e+00 0 0 +GRID* 5015 0 5.124218750e+00 1.777393399e-01* +* 7.906762500e+00 0 0 +GRID* 5016 0 5.196354167e+00 1.754371261e-01* +* 8.063025000e+00 0 0 +GRID* 5017 0 5.268489583e+00 1.731349123e-01* +* 8.219287500e+00 0 0 +GRID* 5018 0 5.340625000e+00 1.708326985e-01* +* 8.375550000e+00 0 0 +GRID* 5019 0 5.028385417e+00-1.696431052e-01* +* 7.906762500e+00 0 0 +GRID* 5020 0 5.124218750e+00-1.746228997e-01* +* 7.906762500e+00 0 0 +GRID* 5021 0 5.101909722e+00-1.674541413e-01* +* 8.063025000e+00 0 0 +GRID* 5022 0 5.196354167e+00-1.723619545e-01* +* 8.063025000e+00 0 0 +GRID* 5023 0 5.175434028e+00-1.652651774e-01* +* 8.219287500e+00 0 0 +GRID* 5024 0 5.268489583e+00-1.701010094e-01* +* 8.219287500e+00 0 0 +GRID* 5025 0 5.248958333e+00-1.630762136e-01* +* 8.375550000e+00 0 0 +GRID* 5026 0 5.340625000e+00-1.678400643e-01* +* 8.375550000e+00 0 0 +GRID* 5027 0 5.220052083e+00 1.825507718e-01* +* 7.906762500e+00 0 0 +GRID* 5028 0 5.290798611e+00 1.801814028e-01* +* 8.063025000e+00 0 0 +GRID* 5029 0 5.361545139e+00 1.778120338e-01* +* 8.219287500e+00 0 0 +GRID* 5030 0 5.432291667e+00 1.754426648e-01* +* 8.375550000e+00 0 0 +GRID* 5031 0 5.315885417e+00 1.862523897e-01* +* 7.906762500e+00 0 0 +GRID* 5032 0 5.385243056e+00 1.838318687e-01* +* 8.063025000e+00 0 0 +GRID* 5033 0 5.454600694e+00 1.814113478e-01* +* 8.219287500e+00 0 0 +GRID* 5034 0 5.523958333e+00 1.789908268e-01* +* 8.375550000e+00 0 0 +GRID* 5035 0 5.220052083e+00-1.778914334e-01* +* 7.906762500e+00 0 0 +GRID* 5036 0 5.315885417e+00-1.790267739e-01* +* 7.906762500e+00 0 0 +GRID* 5037 0 5.290798611e+00-1.755876339e-01* +* 8.063025000e+00 0 0 +GRID* 5038 0 5.385243056e+00-1.767117793e-01* +* 8.063025000e+00 0 0 +GRID* 5039 0 5.361545139e+00-1.732838344e-01* +* 8.219287500e+00 0 0 +GRID* 5040 0 5.454600694e+00-1.743967848e-01* +* 8.219287500e+00 0 0 +GRID* 5041 0 5.432291667e+00-1.709800348e-01* +* 8.375550000e+00 0 0 +GRID* 5042 0 5.523958333e+00-1.720817903e-01* +* 8.375550000e+00 0 0 +GRID* 5043 0 5.411718750e+00 1.887627603e-01* +* 7.906762500e+00 0 0 +GRID* 5044 0 5.479687500e+00 1.863134966e-01* +* 8.063025000e+00 0 0 +GRID* 5045 0 5.547656250e+00 1.838642329e-01* +* 8.219287500e+00 0 0 +GRID* 5046 0 5.615625000e+00 1.814149692e-01* +* 8.375550000e+00 0 0 +GRID* 5047 0 5.507552083e+00 1.900915531e-01* +* 7.906762500e+00 0 0 +GRID* 5048 0 5.574131944e+00 1.876282347e-01* +* 8.063025000e+00 0 0 +GRID* 5049 0 5.640711806e+00 1.851649162e-01* +* 8.219287500e+00 0 0 +GRID* 5050 0 5.707291667e+00 1.827015978e-01* +* 8.375550000e+00 0 0 +GRID* 5051 0 5.411718750e+00-1.773684482e-01* +* 7.906762500e+00 0 0 +GRID* 5052 0 5.507552083e+00-1.730769701e-01* +* 7.906762500e+00 0 0 +GRID* 5053 0 5.479687500e+00-1.750953859e-01* +* 8.063025000e+00 0 0 +GRID* 5054 0 5.574131944e+00-1.708770924e-01* +* 8.063025000e+00 0 0 +GRID* 5055 0 5.547656250e+00-1.728223236e-01* +* 8.219287500e+00 0 0 +GRID* 5056 0 5.640711806e+00-1.686772148e-01* +* 8.219287500e+00 0 0 +GRID* 5057 0 5.615625000e+00-1.705492614e-01* +* 8.375550000e+00 0 0 +GRID* 5058 0 5.707291667e+00-1.664773371e-01* +* 8.375550000e+00 0 0 +GRID* 5059 0 5.603385417e+00 1.901064326e-01* +* 7.906762500e+00 0 0 +GRID* 5060 0 5.668576389e+00 1.876562268e-01* +* 8.063025000e+00 0 0 +GRID* 5061 0 5.733767361e+00 1.852060210e-01* +* 8.219287500e+00 0 0 +GRID* 5062 0 5.798958333e+00 1.827558152e-01* +* 8.375550000e+00 0 0 +GRID* 5063 0 5.699218750e+00 1.888909204e-01* +* 7.906762500e+00 0 0 +GRID* 5064 0 5.763020833e+00 1.864665227e-01* +* 8.063025000e+00 0 0 +GRID* 5065 0 5.826822917e+00 1.840421249e-01* +* 8.219287500e+00 0 0 +GRID* 5066 0 5.890625000e+00 1.816177272e-01* +* 8.375550000e+00 0 0 +GRID* 5067 0 5.603385417e+00-1.662278281e-01* +* 7.906762500e+00 0 0 +GRID* 5068 0 5.699218750e+00-1.574893382e-01* +* 7.906762500e+00 0 0 +GRID* 5069 0 5.668576389e+00-1.641505347e-01* +* 8.063025000e+00 0 0 +GRID* 5070 0 5.763020833e+00-1.555503371e-01* +* 8.063025000e+00 0 0 +GRID* 5071 0 5.733767361e+00-1.620732412e-01* +* 8.219287500e+00 0 0 +GRID* 5072 0 5.826822917e+00-1.536113360e-01* +* 8.219287500e+00 0 0 +GRID* 5073 0 5.798958333e+00-1.599959477e-01* +* 8.375550000e+00 0 0 +GRID* 5074 0 5.890625000e+00-1.516723349e-01* +* 8.375550000e+00 0 0 +GRID* 5075 0 5.795052083e+00 1.862446792e-01* +* 7.906762500e+00 0 0 +GRID* 5076 0 5.857465278e+00 1.838782221e-01* +* 8.063025000e+00 0 0 +GRID* 5077 0 5.919878472e+00 1.815117649e-01* +* 8.219287500e+00 0 0 +GRID* 5078 0 5.982291667e+00 1.791453078e-01* +* 8.375550000e+00 0 0 +GRID* 5079 0 5.890885417e+00 1.823372178e-01* +* 7.906762500e+00 0 0 +GRID* 5080 0 5.951909722e+00 1.800387091e-01* +* 8.063025000e+00 0 0 +GRID* 5081 0 6.012934028e+00 1.777402004e-01* +* 8.219287500e+00 0 0 +GRID* 5082 0 6.073958333e+00 1.754416917e-01* +* 8.375550000e+00 0 0 +GRID* 5083 0 5.795052083e+00-1.469558282e-01* +* 7.906762500e+00 0 0 +GRID* 5084 0 5.890885417e+00-1.352502020e-01* +* 7.906762500e+00 0 0 +GRID* 5085 0 5.857465278e+00-1.451910664e-01* +* 8.063025000e+00 0 0 +GRID* 5086 0 5.951909722e+00-1.336734380e-01* +* 8.063025000e+00 0 0 +GRID* 5087 0 5.919878472e+00-1.434263045e-01* +* 8.219287500e+00 0 0 +GRID* 5088 0 6.012934028e+00-1.320950463e-01* +* 8.219287500e+00 0 0 +GRID* 5089 0 5.982291667e+00-1.416615427e-01* +* 8.375550000e+00 0 0 +GRID* 5090 0 6.073958333e+00-1.305093034e-01* +* 8.375550000e+00 0 0 +GRID* 5091 0 5.986718750e+00 1.769283239e-01* +* 7.906762500e+00 0 0 +GRID* 5092 0 6.046354167e+00 1.747335974e-01* +* 8.063025000e+00 0 0 +GRID* 5093 0 6.105989583e+00 1.725388708e-01* +* 8.219287500e+00 0 0 +GRID* 5094 0 6.165625000e+00 1.703441443e-01* +* 8.375550000e+00 0 0 +GRID* 5095 0 6.082552083e+00 1.702722294e-01* +* 7.906762500e+00 0 0 +GRID* 5096 0 6.140798611e+00 1.682030788e-01* +* 8.063025000e+00 0 0 +GRID* 5097 0 6.199045139e+00 1.661195802e-01* +* 8.219287500e+00 0 0 +GRID* 5098 0 6.257291667e+00 1.640351709e-01* +* 8.375550000e+00 0 0 +GRID* 5099 0 5.986718750e+00-1.224681484e-01* +* 7.906762500e+00 0 0 +GRID* 5100 0 6.082552083e+00-1.090452777e-01* +* 7.906762500e+00 0 0 +GRID* 5101 0 6.046354167e+00-1.210842539e-01* +* 8.063025000e+00 0 0 +GRID* 5102 0 6.140798611e+00-1.078667798e-01* +* 8.063025000e+00 0 0 +GRID* 5103 0 6.105989583e+00-1.197003594e-01* +* 8.219287500e+00 0 0 +GRID* 5104 0 6.199045139e+00-1.066882819e-01* +* 8.219287500e+00 0 0 +GRID* 5105 0 6.165625000e+00-1.183164648e-01* +* 8.375550000e+00 0 0 +GRID* 5106 0 6.257291667e+00-1.055097839e-01* +* 8.375550000e+00 0 0 +GRID* 5107 0 6.178385417e+00 1.621118159e-01* +* 7.906762500e+00 0 0 +GRID* 5108 0 6.235243056e+00 1.601766423e-01* +* 8.063025000e+00 0 0 +GRID* 5109 0 6.292100694e+00 1.582414688e-01* +* 8.219287500e+00 0 0 +GRID* 5110 0 6.348958333e+00 1.563062952e-01* +* 8.375550000e+00 0 0 +GRID* 5111 0 6.178385417e+00-9.518956758e-02* +* 7.906762500e+00 0 0 +GRID* 5112 0 6.235243056e+00-9.421464524e-02* +* 8.063025000e+00 0 0 +GRID* 5113 0 6.292100694e+00-9.323972290e-02* +* 8.219287500e+00 0 0 +GRID* 5114 0 6.348958333e+00-9.226480057e-02* +* 8.375550000e+00 0 0 +GRID* 5115 0 4.740885417e+00 1.333418807e-01* +* 7.906762500e+00 0 0 +GRID* 5116 0 4.740885417e+00 1.208418807e-01* +* 7.906762500e+00 0 0 +GRID* 5117 0 4.818576389e+00 1.315203010e-01* +* 8.063025000e+00 0 0 +GRID* 5118 0 4.818576389e+00 1.190203010e-01* +* 8.063025000e+00 0 0 +GRID* 5119 0 4.896267361e+00 1.296987212e-01* +* 8.219287500e+00 0 0 +GRID* 5120 0 4.896267361e+00 1.171987212e-01* +* 8.219287500e+00 0 0 +GRID* 5121 0 4.973958333e+00 1.278771415e-01* +* 8.375550000e+00 0 0 +GRID* 5122 0 4.973958333e+00 1.153771415e-01* +* 8.375550000e+00 0 0 +GRID* 5123 0 5.051649306e+00 1.260555617e-01* +* 8.531812500e+00 0 0 +GRID* 5124 0 5.051649306e+00 1.135555617e-01* +* 8.531812500e+00 0 0 +GRID* 5125 0 4.740885417e+00-1.332581282e-01* +* 7.906762500e+00 0 0 +GRID* 5126 0 4.740885417e+00-1.207581282e-01* +* 7.906762500e+00 0 0 +GRID* 5127 0 4.818576389e+00-1.314349272e-01* +* 8.063025000e+00 0 0 +GRID* 5128 0 4.818576389e+00-1.189349272e-01* +* 8.063025000e+00 0 0 +GRID* 5129 0 4.896267361e+00-1.296117263e-01* +* 8.219287500e+00 0 0 +GRID* 5130 0 4.896267361e+00-1.171117263e-01* +* 8.219287500e+00 0 0 +GRID* 5131 0 4.973958333e+00-1.277885254e-01* +* 8.375550000e+00 0 0 +GRID* 5132 0 4.973958333e+00-1.152885254e-01* +* 8.375550000e+00 0 0 +GRID* 5133 0 5.051649306e+00-1.259653245e-01* +* 8.531812500e+00 0 0 +GRID* 5134 0 5.051649306e+00-1.134653245e-01* +* 8.531812500e+00 0 0 +GRID* 5135 0 4.932552083e+00 1.523685441e-01* +* 7.906762500e+00 0 0 +GRID* 5136 0 4.932552083e+00 1.398685441e-01* +* 7.906762500e+00 0 0 +GRID* 5137 0 5.007465278e+00 1.502547926e-01* +* 8.063025000e+00 0 0 +GRID* 5138 0 5.007465278e+00 1.377547926e-01* +* 8.063025000e+00 0 0 +GRID* 5139 0 5.082378472e+00 1.481410410e-01* +* 8.219287500e+00 0 0 +GRID* 5140 0 5.082378472e+00 1.356410410e-01* +* 8.219287500e+00 0 0 +GRID* 5141 0 5.157291667e+00 1.460272895e-01* +* 8.375550000e+00 0 0 +GRID* 5142 0 5.157291667e+00 1.335272895e-01* +* 8.375550000e+00 0 0 +GRID* 5143 0 5.232204861e+00 1.439135379e-01* +* 8.531812500e+00 0 0 +GRID* 5144 0 5.232204861e+00 1.314135379e-01* +* 8.531812500e+00 0 0 +GRID* 5145 0 4.932552083e+00-1.509021142e-01* +* 7.906762500e+00 0 0 +GRID* 5146 0 4.932552083e+00-1.384021142e-01* +* 7.906762500e+00 0 0 +GRID* 5147 0 5.007465278e+00-1.488058490e-01* +* 8.063025000e+00 0 0 +GRID* 5148 0 5.007465278e+00-1.363058490e-01* +* 8.063025000e+00 0 0 +GRID* 5149 0 5.082378472e+00-1.467095839e-01* +* 8.219287500e+00 0 0 +GRID* 5150 0 5.082378472e+00-1.342095839e-01* +* 8.219287500e+00 0 0 +GRID* 5151 0 5.157291667e+00-1.446133187e-01* +* 8.375550000e+00 0 0 +GRID* 5152 0 5.157291667e+00-1.321133187e-01* +* 8.375550000e+00 0 0 +GRID* 5153 0 5.232204861e+00-1.425170536e-01* +* 8.531812500e+00 0 0 +GRID* 5154 0 5.232204861e+00-1.300170536e-01* +* 8.531812500e+00 0 0 +GRID* 5155 0 5.124218750e+00 1.652393399e-01* +* 7.906762500e+00 0 0 +GRID* 5156 0 5.124218750e+00 1.527393399e-01* +* 7.906762500e+00 0 0 +GRID* 5157 0 5.196354167e+00 1.629371261e-01* +* 8.063025000e+00 0 0 +GRID* 5158 0 5.196354167e+00 1.504371261e-01* +* 8.063025000e+00 0 0 +GRID* 5159 0 5.268489583e+00 1.606349123e-01* +* 8.219287500e+00 0 0 +GRID* 5160 0 5.268489583e+00 1.481349123e-01* +* 8.219287500e+00 0 0 +GRID* 5161 0 5.340625000e+00 1.583326985e-01* +* 8.375550000e+00 0 0 +GRID* 5162 0 5.340625000e+00 1.458326985e-01* +* 8.375550000e+00 0 0 +GRID* 5163 0 5.412760417e+00 1.560304846e-01* +* 8.531812500e+00 0 0 +GRID* 5164 0 5.412760417e+00 1.435304846e-01* +* 8.531812500e+00 0 0 +GRID* 5165 0 5.124218750e+00-1.621228997e-01* +* 7.906762500e+00 0 0 +GRID* 5166 0 5.124218750e+00-1.496228997e-01* +* 7.906762500e+00 0 0 +GRID* 5167 0 5.196354167e+00-1.598619545e-01* +* 8.063025000e+00 0 0 +GRID* 5168 0 5.196354167e+00-1.473619545e-01* +* 8.063025000e+00 0 0 +GRID* 5169 0 5.268489583e+00-1.576010094e-01* +* 8.219287500e+00 0 0 +GRID* 5170 0 5.268489583e+00-1.451010094e-01* +* 8.219287500e+00 0 0 +GRID* 5171 0 5.340625000e+00-1.553400643e-01* +* 8.375550000e+00 0 0 +GRID* 5172 0 5.340625000e+00-1.428400643e-01* +* 8.375550000e+00 0 0 +GRID* 5173 0 5.412760417e+00-1.530791192e-01* +* 8.531812500e+00 0 0 +GRID* 5174 0 5.412760417e+00-1.405791192e-01* +* 8.531812500e+00 0 0 +GRID* 5175 0 5.315885417e+00 1.737523897e-01* +* 7.906762500e+00 0 0 +GRID* 5176 0 5.315885417e+00 1.612523897e-01* +* 7.906762500e+00 0 0 +GRID* 5177 0 5.385243056e+00 1.713318687e-01* +* 8.063025000e+00 0 0 +GRID* 5178 0 5.385243056e+00 1.588318687e-01* +* 8.063025000e+00 0 0 +GRID* 5179 0 5.454600694e+00 1.689113478e-01* +* 8.219287500e+00 0 0 +GRID* 5180 0 5.454600694e+00 1.564113478e-01* +* 8.219287500e+00 0 0 +GRID* 5181 0 5.523958333e+00 1.664908268e-01* +* 8.375550000e+00 0 0 +GRID* 5182 0 5.523958333e+00 1.539908268e-01* +* 8.375550000e+00 0 0 +GRID* 5183 0 5.593315972e+00 1.640703059e-01* +* 8.531812500e+00 0 0 +GRID* 5184 0 5.593315972e+00 1.515703059e-01* +* 8.531812500e+00 0 0 +GRID* 5185 0 5.315885417e+00-1.665267739e-01* +* 7.906762500e+00 0 0 +GRID* 5186 0 5.315885417e+00-1.540267739e-01* +* 7.906762500e+00 0 0 +GRID* 5187 0 5.385243056e+00-1.642117793e-01* +* 8.063025000e+00 0 0 +GRID* 5188 0 5.385243056e+00-1.517117793e-01* +* 8.063025000e+00 0 0 +GRID* 5189 0 5.454600694e+00-1.618967848e-01* +* 8.219287500e+00 0 0 +GRID* 5190 0 5.454600694e+00-1.493967848e-01* +* 8.219287500e+00 0 0 +GRID* 5191 0 5.523958333e+00-1.595817903e-01* +* 8.375550000e+00 0 0 +GRID* 5192 0 5.523958333e+00-1.470817903e-01* +* 8.375550000e+00 0 0 +GRID* 5193 0 5.593315972e+00-1.572667957e-01* +* 8.531812500e+00 0 0 +GRID* 5194 0 5.593315972e+00-1.447667957e-01* +* 8.531812500e+00 0 0 +GRID* 5195 0 5.507552083e+00 1.775915531e-01* +* 7.906762500e+00 0 0 +GRID* 5196 0 5.507552083e+00 1.650915531e-01* +* 7.906762500e+00 0 0 +GRID* 5197 0 5.574131944e+00 1.751282347e-01* +* 8.063025000e+00 0 0 +GRID* 5198 0 5.574131944e+00 1.626282347e-01* +* 8.063025000e+00 0 0 +GRID* 5199 0 5.640711806e+00 1.726649162e-01* +* 8.219287500e+00 0 0 +GRID* 5200 0 5.640711806e+00 1.601649162e-01* +* 8.219287500e+00 0 0 +GRID* 5201 0 5.707291667e+00 1.702015978e-01* +* 8.375550000e+00 0 0 +GRID* 5202 0 5.707291667e+00 1.577015978e-01* +* 8.375550000e+00 0 0 +GRID* 5203 0 5.773871528e+00 1.677382793e-01* +* 8.531812500e+00 0 0 +GRID* 5204 0 5.773871528e+00 1.552382793e-01* +* 8.531812500e+00 0 0 +GRID* 5205 0 5.507552083e+00-1.605769701e-01* +* 7.906762500e+00 0 0 +GRID* 5206 0 5.507552083e+00-1.480769701e-01* +* 7.906762500e+00 0 0 +GRID* 5207 0 5.574131944e+00-1.583770924e-01* +* 8.063025000e+00 0 0 +GRID* 5208 0 5.574131944e+00-1.458770924e-01* +* 8.063025000e+00 0 0 +GRID* 5209 0 5.640711806e+00-1.561772148e-01* +* 8.219287500e+00 0 0 +GRID* 5210 0 5.640711806e+00-1.436772148e-01* +* 8.219287500e+00 0 0 +GRID* 5211 0 5.707291667e+00-1.539773371e-01* +* 8.375550000e+00 0 0 +GRID* 5212 0 5.707291667e+00-1.414773371e-01* +* 8.375550000e+00 0 0 +GRID* 5213 0 5.773871528e+00-1.517774595e-01* +* 8.531812500e+00 0 0 +GRID* 5214 0 5.773871528e+00-1.392774595e-01* +* 8.531812500e+00 0 0 +GRID* 5215 0 5.699218750e+00 1.763909204e-01* +* 7.906762500e+00 0 0 +GRID* 5216 0 5.699218750e+00 1.638909204e-01* +* 7.906762500e+00 0 0 +GRID* 5217 0 5.763020833e+00 1.739665227e-01* +* 8.063025000e+00 0 0 +GRID* 5218 0 5.763020833e+00 1.614665227e-01* +* 8.063025000e+00 0 0 +GRID* 5219 0 5.826822917e+00 1.715421249e-01* +* 8.219287500e+00 0 0 +GRID* 5220 0 5.826822917e+00 1.590421249e-01* +* 8.219287500e+00 0 0 +GRID* 5221 0 5.890625000e+00 1.691177272e-01* +* 8.375550000e+00 0 0 +GRID* 5222 0 5.890625000e+00 1.566177272e-01* +* 8.375550000e+00 0 0 +GRID* 5223 0 5.954427083e+00 1.666933294e-01* +* 8.531812500e+00 0 0 +GRID* 5224 0 5.954427083e+00 1.541933294e-01* +* 8.531812500e+00 0 0 +GRID* 5225 0 5.699218750e+00-1.449893382e-01* +* 7.906762500e+00 0 0 +GRID* 5226 0 5.699218750e+00-1.324893382e-01* +* 7.906762500e+00 0 0 +GRID* 5227 0 5.763020833e+00-1.430503371e-01* +* 8.063025000e+00 0 0 +GRID* 5228 0 5.763020833e+00-1.305503371e-01* +* 8.063025000e+00 0 0 +GRID* 5229 0 5.826822917e+00-1.411113360e-01* +* 8.219287500e+00 0 0 +GRID* 5230 0 5.826822917e+00-1.286113360e-01* +* 8.219287500e+00 0 0 +GRID* 5231 0 5.890625000e+00-1.391723349e-01* +* 8.375550000e+00 0 0 +GRID* 5232 0 5.890625000e+00-1.266723349e-01* +* 8.375550000e+00 0 0 +GRID* 5233 0 5.954427083e+00-1.372333338e-01* +* 8.531812500e+00 0 0 +GRID* 5234 0 5.954427083e+00-1.247333338e-01* +* 8.531812500e+00 0 0 +GRID* 5235 0 5.890885417e+00 1.698372178e-01* +* 7.906762500e+00 0 0 +GRID* 5236 0 5.890885417e+00 1.573372178e-01* +* 7.906762500e+00 0 0 +GRID* 5237 0 5.951909722e+00 1.675387091e-01* +* 8.063025000e+00 0 0 +GRID* 5238 0 5.951909722e+00 1.550387091e-01* +* 8.063025000e+00 0 0 +GRID* 5239 0 6.012934028e+00 1.652402004e-01* +* 8.219287500e+00 0 0 +GRID* 5240 0 6.012934028e+00 1.527402004e-01* +* 8.219287500e+00 0 0 +GRID* 5241 0 6.073958333e+00 1.629416917e-01* +* 8.375550000e+00 0 0 +GRID* 5242 0 6.073958333e+00 1.504416917e-01* +* 8.375550000e+00 0 0 +GRID* 5243 0 6.134982639e+00 1.606431829e-01* +* 8.531812500e+00 0 0 +GRID* 5244 0 6.134982639e+00 1.481431829e-01* +* 8.531812500e+00 0 0 +GRID* 5245 0 5.890885417e+00-1.227502020e-01* +* 7.906762500e+00 0 0 +GRID* 5246 0 5.890885417e+00-1.102502020e-01* +* 7.906762500e+00 0 0 +GRID* 5247 0 5.951909722e+00-1.211734380e-01* +* 8.063025000e+00 0 0 +GRID* 5248 0 5.951909722e+00-1.086734380e-01* +* 8.063025000e+00 0 0 +GRID* 5249 0 6.012934028e+00-1.195950463e-01* +* 8.219287500e+00 0 0 +GRID* 5250 0 6.012934028e+00-1.070950463e-01* +* 8.219287500e+00 0 0 +GRID* 5251 0 6.073958333e+00-1.180093034e-01* +* 8.375550000e+00 0 0 +GRID* 5252 0 6.073958333e+00-1.055093034e-01* +* 8.375550000e+00 0 0 +GRID* 5253 0 6.134982639e+00-1.164235605e-01* +* 8.531812500e+00 0 0 +GRID* 5254 0 6.134982639e+00-1.039235605e-01* +* 8.531812500e+00 0 0 +GRID* 5255 0 6.082552083e+00 1.577722294e-01* +* 7.906762500e+00 0 0 +GRID* 5256 0 6.082552083e+00 1.452722294e-01* +* 7.906762500e+00 0 0 +GRID* 5257 0 6.140798611e+00 1.557030788e-01* +* 8.063025000e+00 0 0 +GRID* 5258 0 6.140798611e+00 1.432030788e-01* +* 8.063025000e+00 0 0 +GRID* 5259 0 6.199045139e+00 1.536195802e-01* +* 8.219287500e+00 0 0 +GRID* 5260 0 6.199045139e+00 1.411195802e-01* +* 8.219287500e+00 0 0 +GRID* 5261 0 6.257291667e+00 1.515351709e-01* +* 8.375550000e+00 0 0 +GRID* 5262 0 6.257291667e+00 1.390351709e-01* +* 8.375550000e+00 0 0 +GRID* 5263 0 6.315538194e+00 1.494507616e-01* +* 8.531812500e+00 0 0 +GRID* 5264 0 6.315538194e+00 1.369507616e-01* +* 8.531812500e+00 0 0 +GRID* 5265 0 6.082552083e+00-9.654527771e-02* +* 7.906762500e+00 0 0 +GRID* 5266 0 6.082552083e+00-8.404527771e-02* +* 7.906762500e+00 0 0 +GRID* 5267 0 6.140798611e+00-9.536677978e-02* +* 8.063025000e+00 0 0 +GRID* 5268 0 6.140798611e+00-8.286677978e-02* +* 8.063025000e+00 0 0 +GRID* 5269 0 6.199045139e+00-9.418828185e-02* +* 8.219287500e+00 0 0 +GRID* 5270 0 6.199045139e+00-8.168828185e-02* +* 8.219287500e+00 0 0 +GRID* 5271 0 6.257291667e+00-9.300978392e-02* +* 8.375550000e+00 0 0 +GRID* 5272 0 6.257291667e+00-8.050978392e-02* +* 8.375550000e+00 0 0 +GRID* 5273 0 6.315538194e+00-9.183128600e-02* +* 8.531812500e+00 0 0 +GRID* 5274 0 6.315538194e+00-7.933128600e-02* +* 8.531812500e+00 0 0 +GRID* 5275 0 5.040451389e+00 1.246943754e-01* +* 8.688075000e+00 0 0 +GRID* 5276 0 5.119531250e+00 1.230724128e-01* +* 8.844337500e+00 0 0 +GRID* 5277 0 5.198611111e+00 1.214504502e-01* +* 9.000600000e+00 0 0 +GRID* 5278 0 5.277690972e+00 1.198284876e-01* +* 9.156862500e+00 0 0 +GRID* 5279 0 5.129340278e+00 1.367339820e-01* +* 8.688075000e+00 0 0 +GRID* 5280 0 5.207031250e+00 1.349124022e-01* +* 8.844337500e+00 0 0 +GRID* 5281 0 5.284722222e+00 1.330908225e-01* +* 9.000600000e+00 0 0 +GRID* 5282 0 5.362413194e+00 1.312692428e-01* +* 9.156862500e+00 0 0 +GRID* 5283 0 5.040451389e+00-1.250800708e-01* +* 8.688075000e+00 0 0 +GRID* 5284 0 5.129340278e+00-1.366421236e-01* +* 8.688075000e+00 0 0 +GRID* 5285 0 5.119531250e+00-1.234497909e-01* +* 8.844337500e+00 0 0 +GRID* 5286 0 5.207031250e+00-1.348189227e-01* +* 8.844337500e+00 0 0 +GRID* 5287 0 5.198611111e+00-1.218195110e-01* +* 9.000600000e+00 0 0 +GRID* 5288 0 5.284722222e+00-1.329957217e-01* +* 9.000600000e+00 0 0 +GRID* 5289 0 5.277690972e+00-1.201892310e-01* +* 9.156862500e+00 0 0 +GRID* 5290 0 5.362413194e+00-1.311725208e-01* +* 9.156862500e+00 0 0 +GRID* 5291 0 5.218229167e+00 1.465119622e-01* +* 8.688075000e+00 0 0 +GRID* 5292 0 5.294531250e+00 1.445233303e-01* +* 8.844337500e+00 0 0 +GRID* 5293 0 5.370833333e+00 1.425346984e-01* +* 9.000600000e+00 0 0 +GRID* 5294 0 5.447135417e+00 1.405460665e-01* +* 9.156862500e+00 0 0 +GRID* 5295 0 5.307118056e+00 1.542997864e-01* +* 8.688075000e+00 0 0 +GRID* 5296 0 5.382031250e+00 1.521860348e-01* +* 8.844337500e+00 0 0 +GRID* 5297 0 5.456944444e+00 1.500722833e-01* +* 9.000600000e+00 0 0 +GRID* 5298 0 5.531857639e+00 1.479585317e-01* +* 9.156862500e+00 0 0 +GRID* 5299 0 5.218229167e+00-1.457854962e-01* +* 8.688075000e+00 0 0 +GRID* 5300 0 5.307118056e+00-1.529207885e-01* +* 8.688075000e+00 0 0 +GRID* 5301 0 5.294531250e+00-1.438043247e-01* +* 8.844337500e+00 0 0 +GRID* 5302 0 5.382031250e+00-1.508245233e-01* +* 8.844337500e+00 0 0 +GRID* 5303 0 5.370833333e+00-1.418231532e-01* +* 9.000600000e+00 0 0 +GRID* 5304 0 5.456944444e+00-1.487282582e-01* +* 9.000600000e+00 0 0 +GRID* 5305 0 5.447135417e+00-1.398419818e-01* +* 9.156862500e+00 0 0 +GRID* 5306 0 5.531857639e+00-1.466319930e-01* +* 9.156862500e+00 0 0 +GRID* 5307 0 5.396006944e+00 1.607772147e-01* +* 8.688075000e+00 0 0 +GRID* 5308 0 5.469531250e+00 1.585599872e-01* +* 8.844337500e+00 0 0 +GRID* 5309 0 5.543055556e+00 1.563427598e-01* +* 9.000600000e+00 0 0 +GRID* 5310 0 5.616579861e+00 1.541255323e-01* +* 9.156862500e+00 0 0 +GRID* 5311 0 5.484895833e+00 1.662282708e-01* +* 8.688075000e+00 0 0 +GRID* 5312 0 5.557031250e+00 1.639260570e-01* +* 8.844337500e+00 0 0 +GRID* 5313 0 5.629166667e+00 1.616238432e-01* +* 9.000600000e+00 0 0 +GRID* 5314 0 5.701302083e+00 1.593216293e-01* +* 9.156862500e+00 0 0 +GRID* 5315 0 5.396006944e+00-1.586982858e-01* +* 8.688075000e+00 0 0 +GRID* 5316 0 5.484895833e+00-1.633181741e-01* +* 8.688075000e+00 0 0 +GRID* 5317 0 5.469531250e+00-1.565093219e-01* +* 8.844337500e+00 0 0 +GRID* 5318 0 5.557031250e+00-1.610572289e-01* +* 8.844337500e+00 0 0 +GRID* 5319 0 5.543055556e+00-1.543203580e-01* +* 9.000600000e+00 0 0 +GRID* 5320 0 5.629166667e+00-1.587962838e-01* +* 9.000600000e+00 0 0 +GRID* 5321 0 5.616579861e+00-1.521313941e-01* +* 9.156862500e+00 0 0 +GRID* 5322 0 5.701302083e+00-1.565353387e-01* +* 9.156862500e+00 0 0 +GRID* 5323 0 5.573784722e+00 1.707039268e-01* +* 8.688075000e+00 0 0 +GRID* 5324 0 5.644531250e+00 1.683345578e-01* +* 8.844337500e+00 0 0 +GRID* 5325 0 5.715277778e+00 1.659651889e-01* +* 9.000600000e+00 0 0 +GRID* 5326 0 5.786024306e+00 1.635958199e-01* +* 9.156862500e+00 0 0 +GRID* 5327 0 5.662673611e+00 1.741497849e-01* +* 8.688075000e+00 0 0 +GRID* 5328 0 5.732031250e+00 1.717292640e-01* +* 8.844337500e+00 0 0 +GRID* 5329 0 5.801388889e+00 1.693087430e-01* +* 9.000600000e+00 0 0 +GRID* 5330 0 5.870746528e+00 1.668882221e-01* +* 9.156862500e+00 0 0 +GRID* 5331 0 5.573784722e+00-1.663724358e-01* +* 8.688075000e+00 0 0 +GRID* 5332 0 5.662673611e+00-1.674518012e-01* +* 8.688075000e+00 0 0 +GRID* 5333 0 5.644531250e+00-1.640686363e-01* +* 8.844337500e+00 0 0 +GRID* 5334 0 5.732031250e+00-1.651368067e-01* +* 8.844337500e+00 0 0 +GRID* 5335 0 5.715277778e+00-1.617648368e-01* +* 9.000600000e+00 0 0 +GRID* 5336 0 5.801388889e+00-1.628218121e-01* +* 9.000600000e+00 0 0 +GRID* 5337 0 5.786024306e+00-1.594610372e-01* +* 9.156862500e+00 0 0 +GRID* 5338 0 5.870746528e+00-1.605068176e-01* +* 9.156862500e+00 0 0 +GRID* 5339 0 5.751562500e+00 1.765164417e-01* +* 8.688075000e+00 0 0 +GRID* 5340 0 5.819531250e+00 1.740671780e-01* +* 8.844337500e+00 0 0 +GRID* 5341 0 5.887500000e+00 1.716179143e-01* +* 9.000600000e+00 0 0 +GRID* 5342 0 5.955468750e+00 1.691686505e-01* +* 9.156862500e+00 0 0 +GRID* 5343 0 5.840451389e+00 1.777749609e-01* +* 8.688075000e+00 0 0 +GRID* 5344 0 5.907031250e+00 1.753116425e-01* +* 8.844337500e+00 0 0 +GRID* 5345 0 5.973611111e+00 1.728483240e-01* +* 9.000600000e+00 0 0 +GRID* 5346 0 6.040190972e+00 1.703850056e-01* +* 9.156862500e+00 0 0 +GRID* 5347 0 5.751562500e+00-1.660031368e-01* +* 8.688075000e+00 0 0 +GRID* 5348 0 5.840451389e+00-1.620775818e-01* +* 8.688075000e+00 0 0 +GRID* 5349 0 5.819531250e+00-1.637300745e-01* +* 8.844337500e+00 0 0 +GRID* 5350 0 5.907031250e+00-1.598777042e-01* +* 8.844337500e+00 0 0 +GRID* 5351 0 5.887500000e+00-1.614570122e-01* +* 9.000600000e+00 0 0 +GRID* 5352 0 5.973611111e+00-1.576778265e-01* +* 9.000600000e+00 0 0 +GRID* 5353 0 5.955468750e+00-1.591839499e-01* +* 9.156862500e+00 0 0 +GRID* 5354 0 6.040190972e+00-1.554779489e-01* +* 9.156862500e+00 0 0 +GRID* 5355 0 5.929340278e+00 1.778554036e-01* +* 8.688075000e+00 0 0 +GRID* 5356 0 5.994531250e+00 1.754051978e-01* +* 8.844337500e+00 0 0 +GRID* 5357 0 6.059722222e+00 1.729549920e-01* +* 9.000600000e+00 0 0 +GRID* 5358 0 6.124913194e+00 1.705047862e-01* +* 9.156862500e+00 0 0 +GRID* 5359 0 6.018229167e+00 1.767689317e-01* +* 8.688075000e+00 0 0 +GRID* 5360 0 6.082031250e+00 1.743445339e-01* +* 8.844337500e+00 0 0 +GRID* 5361 0 6.145833333e+00 1.719201362e-01* +* 9.000600000e+00 0 0 +GRID* 5362 0 6.209635417e+00 1.694957385e-01* +* 9.156862500e+00 0 0 +GRID* 5363 0 5.929340278e+00-1.558413608e-01* +* 8.688075000e+00 0 0 +GRID* 5364 0 6.018229167e+00-1.477943327e-01* +* 8.688075000e+00 0 0 +GRID* 5365 0 5.994531250e+00-1.537640673e-01* +* 8.844337500e+00 0 0 +GRID* 5366 0 6.082031250e+00-1.458553316e-01* +* 8.844337500e+00 0 0 +GRID* 5367 0 6.059722222e+00-1.516867738e-01* +* 9.000600000e+00 0 0 +GRID* 5368 0 6.145833333e+00-1.439163305e-01* +* 9.000600000e+00 0 0 +GRID* 5369 0 6.124913194e+00-1.496094803e-01* +* 9.156862500e+00 0 0 +GRID* 5370 0 6.209635417e+00-1.419773294e-01* +* 9.156862500e+00 0 0 +GRID* 5371 0 6.107118056e+00 1.744123936e-01* +* 8.688075000e+00 0 0 +GRID* 5372 0 6.169531250e+00 1.720459364e-01* +* 8.844337500e+00 0 0 +GRID* 5373 0 6.231944444e+00 1.696794793e-01* +* 9.000600000e+00 0 0 +GRID* 5374 0 6.294357639e+00 1.673130222e-01* +* 9.156862500e+00 0 0 +GRID* 5375 0 6.196006944e+00 1.708446742e-01* +* 8.688075000e+00 0 0 +GRID* 5376 0 6.257031250e+00 1.685461655e-01* +* 8.844337500e+00 0 0 +GRID* 5377 0 6.318055556e+00 1.662476568e-01* +* 9.000600000e+00 0 0 +GRID* 5378 0 6.379079861e+00 1.639491481e-01* +* 9.156862500e+00 0 0 +GRID* 5379 0 6.107118056e+00-1.381320190e-01* +* 8.688075000e+00 0 0 +GRID* 5380 0 6.196006944e+00-1.273378176e-01* +* 8.688075000e+00 0 0 +GRID* 5381 0 6.169531250e+00-1.363672572e-01* +* 8.844337500e+00 0 0 +GRID* 5382 0 6.257031250e+00-1.257520747e-01* +* 8.844337500e+00 0 0 +GRID* 5383 0 6.231944444e+00-1.346024954e-01* +* 9.000600000e+00 0 0 +GRID* 5384 0 6.318055556e+00-1.241663318e-01* +* 9.000600000e+00 0 0 +GRID* 5385 0 6.294357639e+00-1.328377335e-01* +* 9.156862500e+00 0 0 +GRID* 5386 0 6.379079861e+00-1.225805889e-01* +* 9.156862500e+00 0 0 +GRID* 5387 0 6.284895833e+00 1.659546912e-01* +* 8.688075000e+00 0 0 +GRID* 5388 0 6.344531250e+00 1.637599646e-01* +* 8.844337500e+00 0 0 +GRID* 5389 0 6.404166667e+00 1.615652381e-01* +* 9.000600000e+00 0 0 +GRID* 5390 0 6.463802083e+00 1.593705115e-01* +* 9.156862500e+00 0 0 +GRID* 5391 0 6.373784722e+00 1.598663523e-01* +* 8.688075000e+00 0 0 +GRID* 5392 0 6.432031250e+00 1.577819429e-01* +* 8.844337500e+00 0 0 +GRID* 5393 0 6.490277778e+00 1.556975336e-01* +* 9.000600000e+00 0 0 +GRID* 5394 0 6.548524306e+00 1.536131243e-01* +* 9.156862500e+00 0 0 +GRID* 5395 0 6.284895833e+00-1.155486758e-01* +* 8.688075000e+00 0 0 +GRID* 5396 0 6.373784722e+00-1.031504037e-01* +* 8.688075000e+00 0 0 +GRID* 5397 0 6.344531250e+00-1.141647812e-01* +* 8.844337500e+00 0 0 +GRID* 5398 0 6.432031250e+00-1.019669668e-01* +* 8.844337500e+00 0 0 +GRID* 5399 0 6.404166667e+00-1.127808867e-01* +* 9.000600000e+00 0 0 +GRID* 5400 0 6.490277778e+00-1.007835300e-01* +* 9.000600000e+00 0 0 +GRID* 5401 0 6.463802083e+00-1.113969922e-01* +* 9.156862500e+00 0 0 +GRID* 5402 0 6.548524306e+00-9.960009308e-02* +* 9.156862500e+00 0 0 +GRID* 5403 0 6.462673611e+00 1.524359481e-01* +* 8.688075000e+00 0 0 +GRID* 5404 0 6.519531250e+00 1.505007746e-01* +* 8.844337500e+00 0 0 +GRID* 5405 0 6.576388889e+00 1.485656010e-01* +* 9.000600000e+00 0 0 +GRID* 5406 0 6.633246528e+00 1.466304275e-01* +* 9.156862500e+00 0 0 +GRID* 5407 0 6.462673611e+00-9.031495589e-02* +* 8.688075000e+00 0 0 +GRID* 5408 0 6.519531250e+00-8.934003355e-02* +* 8.844337500e+00 0 0 +GRID* 5409 0 6.576388889e+00-8.836511122e-02* +* 9.000600000e+00 0 0 +GRID* 5410 0 6.633246528e+00-8.739018888e-02* +* 9.156862500e+00 0 0 +GRID* 5411 0 5.129340278e+00 1.242339820e-01* +* 8.688075000e+00 0 0 +GRID* 5412 0 5.129340278e+00 1.117339820e-01* +* 8.688075000e+00 0 0 +GRID* 5413 0 5.207031250e+00 1.224124022e-01* +* 8.844337500e+00 0 0 +GRID* 5414 0 5.207031250e+00 1.099124022e-01* +* 8.844337500e+00 0 0 +GRID* 5415 0 5.284722222e+00 1.205908225e-01* +* 9.000600000e+00 0 0 +GRID* 5416 0 5.284722222e+00 1.080908225e-01* +* 9.000600000e+00 0 0 +GRID* 5417 0 5.362413194e+00 1.187692428e-01* +* 9.156862500e+00 0 0 +GRID* 5418 0 5.362413194e+00 1.062692428e-01* +* 9.156862500e+00 0 0 +GRID* 5419 0 5.440104167e+00 1.169476630e-01* +* 9.313125000e+00 0 0 +GRID* 5420 0 5.440104167e+00 1.044476630e-01* +* 9.313125000e+00 0 0 +GRID* 5421 0 5.129340278e+00-1.241421236e-01* +* 8.688075000e+00 0 0 +GRID* 5422 0 5.129340278e+00-1.116421236e-01* +* 8.688075000e+00 0 0 +GRID* 5423 0 5.207031250e+00-1.223189227e-01* +* 8.844337500e+00 0 0 +GRID* 5424 0 5.207031250e+00-1.098189227e-01* +* 8.844337500e+00 0 0 +GRID* 5425 0 5.284722222e+00-1.204957217e-01* +* 9.000600000e+00 0 0 +GRID* 5426 0 5.284722222e+00-1.079957217e-01* +* 9.000600000e+00 0 0 +GRID* 5427 0 5.362413194e+00-1.186725208e-01* +* 9.156862500e+00 0 0 +GRID* 5428 0 5.362413194e+00-1.061725208e-01* +* 9.156862500e+00 0 0 +GRID* 5429 0 5.440104167e+00-1.168493199e-01* +* 9.313125000e+00 0 0 +GRID* 5430 0 5.440104167e+00-1.043493199e-01* +* 9.313125000e+00 0 0 +GRID* 5431 0 5.307118056e+00 1.417997864e-01* +* 8.688075000e+00 0 0 +GRID* 5432 0 5.307118056e+00 1.292997864e-01* +* 8.688075000e+00 0 0 +GRID* 5433 0 5.382031250e+00 1.396860348e-01* +* 8.844337500e+00 0 0 +GRID* 5434 0 5.382031250e+00 1.271860348e-01* +* 8.844337500e+00 0 0 +GRID* 5435 0 5.456944444e+00 1.375722833e-01* +* 9.000600000e+00 0 0 +GRID* 5436 0 5.456944444e+00 1.250722833e-01* +* 9.000600000e+00 0 0 +GRID* 5437 0 5.531857639e+00 1.354585317e-01* +* 9.156862500e+00 0 0 +GRID* 5438 0 5.531857639e+00 1.229585317e-01* +* 9.156862500e+00 0 0 +GRID* 5439 0 5.606770833e+00 1.333447802e-01* +* 9.313125000e+00 0 0 +GRID* 5440 0 5.606770833e+00 1.208447802e-01* +* 9.313125000e+00 0 0 +GRID* 5441 0 5.307118056e+00-1.404207885e-01* +* 8.688075000e+00 0 0 +GRID* 5442 0 5.307118056e+00-1.279207885e-01* +* 8.688075000e+00 0 0 +GRID* 5443 0 5.382031250e+00-1.383245233e-01* +* 8.844337500e+00 0 0 +GRID* 5444 0 5.382031250e+00-1.258245233e-01* +* 8.844337500e+00 0 0 +GRID* 5445 0 5.456944444e+00-1.362282582e-01* +* 9.000600000e+00 0 0 +GRID* 5446 0 5.456944444e+00-1.237282582e-01* +* 9.000600000e+00 0 0 +GRID* 5447 0 5.531857639e+00-1.341319930e-01* +* 9.156862500e+00 0 0 +GRID* 5448 0 5.531857639e+00-1.216319930e-01* +* 9.156862500e+00 0 0 +GRID* 5449 0 5.606770833e+00-1.320357279e-01* +* 9.313125000e+00 0 0 +GRID* 5450 0 5.606770833e+00-1.195357279e-01* +* 9.313125000e+00 0 0 +GRID* 5451 0 5.484895833e+00 1.537282708e-01* +* 8.688075000e+00 0 0 +GRID* 5452 0 5.484895833e+00 1.412282708e-01* +* 8.688075000e+00 0 0 +GRID* 5453 0 5.557031250e+00 1.514260570e-01* +* 8.844337500e+00 0 0 +GRID* 5454 0 5.557031250e+00 1.389260570e-01* +* 8.844337500e+00 0 0 +GRID* 5455 0 5.629166667e+00 1.491238432e-01* +* 9.000600000e+00 0 0 +GRID* 5456 0 5.629166667e+00 1.366238432e-01* +* 9.000600000e+00 0 0 +GRID* 5457 0 5.701302083e+00 1.468216293e-01* +* 9.156862500e+00 0 0 +GRID* 5458 0 5.701302083e+00 1.343216293e-01* +* 9.156862500e+00 0 0 +GRID* 5459 0 5.773437500e+00 1.445194155e-01* +* 9.313125000e+00 0 0 +GRID* 5460 0 5.773437500e+00 1.320194155e-01* +* 9.313125000e+00 0 0 +GRID* 5461 0 5.484895833e+00-1.508181741e-01* +* 8.688075000e+00 0 0 +GRID* 5462 0 5.484895833e+00-1.383181741e-01* +* 8.688075000e+00 0 0 +GRID* 5463 0 5.557031250e+00-1.485572289e-01* +* 8.844337500e+00 0 0 +GRID* 5464 0 5.557031250e+00-1.360572289e-01* +* 8.844337500e+00 0 0 +GRID* 5465 0 5.629166667e+00-1.462962838e-01* +* 9.000600000e+00 0 0 +GRID* 5466 0 5.629166667e+00-1.337962838e-01* +* 9.000600000e+00 0 0 +GRID* 5467 0 5.701302083e+00-1.440353387e-01* +* 9.156862500e+00 0 0 +GRID* 5468 0 5.701302083e+00-1.315353387e-01* +* 9.156862500e+00 0 0 +GRID* 5469 0 5.773437500e+00-1.417743936e-01* +* 9.313125000e+00 0 0 +GRID* 5470 0 5.773437500e+00-1.292743936e-01* +* 9.313125000e+00 0 0 +GRID* 5471 0 5.662673611e+00 1.616497849e-01* +* 8.688075000e+00 0 0 +GRID* 5472 0 5.662673611e+00 1.491497849e-01* +* 8.688075000e+00 0 0 +GRID* 5473 0 5.732031250e+00 1.592292640e-01* +* 8.844337500e+00 0 0 +GRID* 5474 0 5.732031250e+00 1.467292640e-01* +* 8.844337500e+00 0 0 +GRID* 5475 0 5.801388889e+00 1.568087430e-01* +* 9.000600000e+00 0 0 +GRID* 5476 0 5.801388889e+00 1.443087430e-01* +* 9.000600000e+00 0 0 +GRID* 5477 0 5.870746528e+00 1.543882221e-01* +* 9.156862500e+00 0 0 +GRID* 5478 0 5.870746528e+00 1.418882221e-01* +* 9.156862500e+00 0 0 +GRID* 5479 0 5.940104167e+00 1.519677012e-01* +* 9.313125000e+00 0 0 +GRID* 5480 0 5.940104167e+00 1.394677012e-01* +* 9.313125000e+00 0 0 +GRID* 5481 0 5.662673611e+00-1.549518012e-01* +* 8.688075000e+00 0 0 +GRID* 5482 0 5.662673611e+00-1.424518012e-01* +* 8.688075000e+00 0 0 +GRID* 5483 0 5.732031250e+00-1.526368067e-01* +* 8.844337500e+00 0 0 +GRID* 5484 0 5.732031250e+00-1.401368067e-01* +* 8.844337500e+00 0 0 +GRID* 5485 0 5.801388889e+00-1.503218121e-01* +* 9.000600000e+00 0 0 +GRID* 5486 0 5.801388889e+00-1.378218121e-01* +* 9.000600000e+00 0 0 +GRID* 5487 0 5.870746528e+00-1.480068176e-01* +* 9.156862500e+00 0 0 +GRID* 5488 0 5.870746528e+00-1.355068176e-01* +* 9.156862500e+00 0 0 +GRID* 5489 0 5.940104167e+00-1.456918230e-01* +* 9.313125000e+00 0 0 +GRID* 5490 0 5.940104167e+00-1.331918230e-01* +* 9.313125000e+00 0 0 +GRID* 5491 0 5.840451389e+00 1.652749609e-01* +* 8.688075000e+00 0 0 +GRID* 5492 0 5.840451389e+00 1.527749609e-01* +* 8.688075000e+00 0 0 +GRID* 5493 0 5.907031250e+00 1.628116425e-01* +* 8.844337500e+00 0 0 +GRID* 5494 0 5.907031250e+00 1.503116425e-01* +* 8.844337500e+00 0 0 +GRID* 5495 0 5.973611111e+00 1.603483240e-01* +* 9.000600000e+00 0 0 +GRID* 5496 0 5.973611111e+00 1.478483240e-01* +* 9.000600000e+00 0 0 +GRID* 5497 0 6.040190972e+00 1.578850056e-01* +* 9.156862500e+00 0 0 +GRID* 5498 0 6.040190972e+00 1.453850056e-01* +* 9.156862500e+00 0 0 +GRID* 5499 0 6.106770833e+00 1.554216871e-01* +* 9.313125000e+00 0 0 +GRID* 5500 0 6.106770833e+00 1.429216871e-01* +* 9.313125000e+00 0 0 +GRID* 5501 0 5.840451389e+00-1.495775818e-01* +* 8.688075000e+00 0 0 +GRID* 5502 0 5.840451389e+00-1.370775818e-01* +* 8.688075000e+00 0 0 +GRID* 5503 0 5.907031250e+00-1.473777042e-01* +* 8.844337500e+00 0 0 +GRID* 5504 0 5.907031250e+00-1.348777042e-01* +* 8.844337500e+00 0 0 +GRID* 5505 0 5.973611111e+00-1.451778265e-01* +* 9.000600000e+00 0 0 +GRID* 5506 0 5.973611111e+00-1.326778265e-01* +* 9.000600000e+00 0 0 +GRID* 5507 0 6.040190972e+00-1.429779489e-01* +* 9.156862500e+00 0 0 +GRID* 5508 0 6.040190972e+00-1.304779489e-01* +* 9.156862500e+00 0 0 +GRID* 5509 0 6.106770833e+00-1.407780713e-01* +* 9.313125000e+00 0 0 +GRID* 5510 0 6.106770833e+00-1.282780713e-01* +* 9.313125000e+00 0 0 +GRID* 5511 0 6.018229167e+00 1.642689317e-01* +* 8.688075000e+00 0 0 +GRID* 5512 0 6.018229167e+00 1.517689317e-01* +* 8.688075000e+00 0 0 +GRID* 5513 0 6.082031250e+00 1.618445339e-01* +* 8.844337500e+00 0 0 +GRID* 5514 0 6.082031250e+00 1.493445339e-01* +* 8.844337500e+00 0 0 +GRID* 5515 0 6.145833333e+00 1.594201362e-01* +* 9.000600000e+00 0 0 +GRID* 5516 0 6.145833333e+00 1.469201362e-01* +* 9.000600000e+00 0 0 +GRID* 5517 0 6.209635417e+00 1.569957385e-01* +* 9.156862500e+00 0 0 +GRID* 5518 0 6.209635417e+00 1.444957385e-01* +* 9.156862500e+00 0 0 +GRID* 5519 0 6.273437500e+00 1.545713407e-01* +* 9.313125000e+00 0 0 +GRID* 5520 0 6.273437500e+00 1.420713407e-01* +* 9.313125000e+00 0 0 +GRID* 5521 0 6.018229167e+00-1.352943327e-01* +* 8.688075000e+00 0 0 +GRID* 5522 0 6.018229167e+00-1.227943327e-01* +* 8.688075000e+00 0 0 +GRID* 5523 0 6.082031250e+00-1.333553316e-01* +* 8.844337500e+00 0 0 +GRID* 5524 0 6.082031250e+00-1.208553316e-01* +* 8.844337500e+00 0 0 +GRID* 5525 0 6.145833333e+00-1.314163305e-01* +* 9.000600000e+00 0 0 +GRID* 5526 0 6.145833333e+00-1.189163305e-01* +* 9.000600000e+00 0 0 +GRID* 5527 0 6.209635417e+00-1.294773294e-01* +* 9.156862500e+00 0 0 +GRID* 5528 0 6.209635417e+00-1.169773294e-01* +* 9.156862500e+00 0 0 +GRID* 5529 0 6.273437500e+00-1.275383283e-01* +* 9.313125000e+00 0 0 +GRID* 5530 0 6.273437500e+00-1.150383283e-01* +* 9.313125000e+00 0 0 +GRID* 5531 0 6.196006944e+00 1.583446742e-01* +* 8.688075000e+00 0 0 +GRID* 5532 0 6.196006944e+00 1.458446742e-01* +* 8.688075000e+00 0 0 +GRID* 5533 0 6.257031250e+00 1.560461655e-01* +* 8.844337500e+00 0 0 +GRID* 5534 0 6.257031250e+00 1.435461655e-01* +* 8.844337500e+00 0 0 +GRID* 5535 0 6.318055556e+00 1.537476568e-01* +* 9.000600000e+00 0 0 +GRID* 5536 0 6.318055556e+00 1.412476568e-01* +* 9.000600000e+00 0 0 +GRID* 5537 0 6.379079861e+00 1.514491481e-01* +* 9.156862500e+00 0 0 +GRID* 5538 0 6.379079861e+00 1.389491481e-01* +* 9.156862500e+00 0 0 +GRID* 5539 0 6.440104167e+00 1.491506394e-01* +* 9.313125000e+00 0 0 +GRID* 5540 0 6.440104167e+00 1.366506394e-01* +* 9.313125000e+00 0 0 +GRID* 5541 0 6.196006944e+00-1.148378176e-01* +* 8.688075000e+00 0 0 +GRID* 5542 0 6.196006944e+00-1.023378176e-01* +* 8.688075000e+00 0 0 +GRID* 5543 0 6.257031250e+00-1.132520747e-01* +* 8.844337500e+00 0 0 +GRID* 5544 0 6.257031250e+00-1.007520747e-01* +* 8.844337500e+00 0 0 +GRID* 5545 0 6.318055556e+00-1.116663318e-01* +* 9.000600000e+00 0 0 +GRID* 5546 0 6.318055556e+00-9.916633179e-02* +* 9.000600000e+00 0 0 +GRID* 5547 0 6.379079861e+00-1.100805889e-01* +* 9.156862500e+00 0 0 +GRID* 5548 0 6.379079861e+00-9.758058890e-02* +* 9.156862500e+00 0 0 +GRID* 5549 0 6.440104167e+00-1.084948460e-01* +* 9.313125000e+00 0 0 +GRID* 5550 0 6.440104167e+00-9.599484601e-02* +* 9.313125000e+00 0 0 +GRID* 5551 0 6.373784722e+00 1.473663523e-01* +* 8.688075000e+00 0 0 +GRID* 5552 0 6.373784722e+00 1.348663523e-01* +* 8.688075000e+00 0 0 +GRID* 5553 0 6.432031250e+00 1.452819429e-01* +* 8.844337500e+00 0 0 +GRID* 5554 0 6.432031250e+00 1.327819429e-01* +* 8.844337500e+00 0 0 +GRID* 5555 0 6.490277778e+00 1.431975336e-01* +* 9.000600000e+00 0 0 +GRID* 5556 0 6.490277778e+00 1.306975336e-01* +* 9.000600000e+00 0 0 +GRID* 5557 0 6.548524306e+00 1.411131243e-01* +* 9.156862500e+00 0 0 +GRID* 5558 0 6.548524306e+00 1.286131243e-01* +* 9.156862500e+00 0 0 +GRID* 5559 0 6.606770833e+00 1.390287150e-01* +* 9.313125000e+00 0 0 +GRID* 5560 0 6.606770833e+00 1.265287150e-01* +* 9.313125000e+00 0 0 +GRID* 5561 0 6.373784722e+00-9.065040369e-02* +* 8.688075000e+00 0 0 +GRID* 5562 0 6.373784722e+00-7.815040369e-02* +* 8.688075000e+00 0 0 +GRID* 5563 0 6.432031250e+00-8.946696682e-02* +* 8.844337500e+00 0 0 +GRID* 5564 0 6.432031250e+00-7.696696682e-02* +* 8.844337500e+00 0 0 +GRID* 5565 0 6.490277778e+00-8.828352995e-02* +* 9.000600000e+00 0 0 +GRID* 5566 0 6.490277778e+00-7.578352995e-02* +* 9.000600000e+00 0 0 +GRID* 5567 0 6.548524306e+00-8.710009308e-02* +* 9.156862500e+00 0 0 +GRID* 5568 0 6.548524306e+00-7.460009308e-02* +* 9.156862500e+00 0 0 +GRID* 5569 0 6.606770833e+00-8.591665621e-02* +* 9.313125000e+00 0 0 +GRID* 5570 0 6.606770833e+00-7.341665621e-02* +* 9.313125000e+00 0 0 +GRID* 5571 0 5.435850694e+00 1.165845623e-01* +* 9.469387500e+00 0 0 +GRID* 5572 0 5.514930556e+00 1.149625997e-01* +* 9.625650000e+00 0 0 +GRID* 5573 0 5.594010417e+00 1.133406371e-01* +* 9.781912500e+00 0 0 +GRID* 5574 0 5.673090278e+00 1.117186745e-01* +* 9.938175000e+00 0 0 +GRID* 5575 0 5.517795139e+00 1.276260833e-01* +* 9.469387500e+00 0 0 +GRID* 5576 0 5.595486111e+00 1.258045035e-01* +* 9.625650000e+00 0 0 +GRID* 5577 0 5.673177083e+00 1.239829238e-01* +* 9.781912500e+00 0 0 +GRID* 5578 0 5.750868056e+00 1.221613440e-01* +* 9.938175000e+00 0 0 +GRID* 5579 0 5.435850694e+00-1.169286712e-01* +* 9.469387500e+00 0 0 +GRID* 5580 0 5.517795139e+00-1.275261190e-01* +* 9.469387500e+00 0 0 +GRID* 5581 0 5.514930556e+00-1.152983912e-01* +* 9.625650000e+00 0 0 +GRID* 5582 0 5.595486111e+00-1.257029181e-01* +* 9.625650000e+00 0 0 +GRID* 5583 0 5.594010417e+00-1.136681113e-01* +* 9.781912500e+00 0 0 +GRID* 5584 0 5.673177083e+00-1.238797171e-01* +* 9.781912500e+00 0 0 +GRID* 5585 0 5.673090278e+00-1.120378314e-01* +* 9.938175000e+00 0 0 +GRID* 5586 0 5.750868056e+00-1.220565162e-01* +* 9.938175000e+00 0 0 +GRID* 5587 0 5.599739583e+00 1.365688027e-01* +* 9.469387500e+00 0 0 +GRID* 5588 0 5.676041667e+00 1.345801708e-01* +* 9.625650000e+00 0 0 +GRID* 5589 0 5.752343750e+00 1.325915389e-01* +* 9.781912500e+00 0 0 +GRID* 5590 0 5.828645833e+00 1.306029070e-01* +* 9.938175000e+00 0 0 +GRID* 5591 0 5.681684028e+00 1.437310286e-01* +* 9.469387500e+00 0 0 +GRID* 5592 0 5.756597222e+00 1.416172770e-01* +* 9.625650000e+00 0 0 +GRID* 5593 0 5.831510417e+00 1.395035255e-01* +* 9.781912500e+00 0 0 +GRID* 5594 0 5.906423611e+00 1.373897739e-01* +* 9.938175000e+00 0 0 +GRID* 5595 0 5.599739583e+00-1.358796389e-01* +* 9.469387500e+00 0 0 +GRID* 5596 0 5.681684028e+00-1.424394627e-01* +* 9.469387500e+00 0 0 +GRID* 5597 0 5.676041667e+00-1.338984674e-01* +* 9.625650000e+00 0 0 +GRID* 5598 0 5.756597222e+00-1.403431976e-01* +* 9.625650000e+00 0 0 +GRID* 5599 0 5.752343750e+00-1.319172960e-01* +* 9.781912500e+00 0 0 +GRID* 5600 0 5.831510417e+00-1.382469325e-01* +* 9.781912500e+00 0 0 +GRID* 5601 0 5.828645833e+00-1.299361245e-01* +* 9.938175000e+00 0 0 +GRID* 5602 0 5.906423611e+00-1.361506673e-01* +* 9.938175000e+00 0 0 +GRID* 5603 0 5.763628472e+00 1.496910773e-01* +* 9.469387500e+00 0 0 +GRID* 5604 0 5.837152778e+00 1.474738498e-01* +* 9.625650000e+00 0 0 +GRID* 5605 0 5.910677083e+00 1.452566223e-01* +* 9.781912500e+00 0 0 +GRID* 5606 0 5.984201389e+00 1.430393948e-01* +* 9.938175000e+00 0 0 +GRID* 5607 0 5.845572917e+00 1.547172017e-01* +* 9.469387500e+00 0 0 +GRID* 5608 0 5.917708333e+00 1.524149879e-01* +* 9.625650000e+00 0 0 +GRID* 5609 0 5.989843750e+00 1.501127740e-01* +* 9.781912500e+00 0 0 +GRID* 5610 0 6.061979167e+00 1.478105602e-01* +* 9.938175000e+00 0 0 +GRID* 5611 0 5.763628472e+00-1.477534663e-01* +* 9.469387500e+00 0 0 +GRID* 5612 0 5.845572917e+00-1.520134484e-01* +* 9.469387500e+00 0 0 +GRID* 5613 0 5.837152778e+00-1.455645024e-01* +* 9.625650000e+00 0 0 +GRID* 5614 0 5.917708333e+00-1.497525033e-01* +* 9.625650000e+00 0 0 +GRID* 5615 0 5.910677083e+00-1.433755385e-01* +* 9.781912500e+00 0 0 +GRID* 5616 0 5.989843750e+00-1.474915582e-01* +* 9.781912500e+00 0 0 +GRID* 5617 0 5.984201389e+00-1.411865747e-01* +* 9.938175000e+00 0 0 +GRID* 5618 0 6.061979167e+00-1.452306131e-01* +* 9.938175000e+00 0 0 +GRID* 5619 0 5.927517361e+00 1.588570819e-01* +* 9.469387500e+00 0 0 +GRID* 5620 0 5.998263889e+00 1.564877129e-01* +* 9.625650000e+00 0 0 +GRID* 5621 0 6.069010417e+00 1.541183439e-01* +* 9.781912500e+00 0 0 +GRID* 5622 0 6.139756944e+00 1.517489750e-01* +* 9.938175000e+00 0 0 +GRID* 5623 0 6.009461806e+00 1.620471802e-01* +* 9.469387500e+00 0 0 +GRID* 5624 0 6.078819444e+00 1.596266593e-01* +* 9.625650000e+00 0 0 +GRID* 5625 0 6.148177083e+00 1.572061383e-01* +* 9.781912500e+00 0 0 +GRID* 5626 0 6.217534722e+00 1.547856174e-01* +* 9.938175000e+00 0 0 +GRID* 5627 0 5.927517361e+00-1.548534382e-01* +* 9.469387500e+00 0 0 +GRID* 5628 0 6.009461806e+00-1.558768285e-01* +* 9.469387500e+00 0 0 +GRID* 5629 0 5.998263889e+00-1.525496387e-01* +* 9.625650000e+00 0 0 +GRID* 5630 0 6.078819444e+00-1.535618340e-01* +* 9.625650000e+00 0 0 +GRID* 5631 0 6.069010417e+00-1.502458391e-01* +* 9.781912500e+00 0 0 +GRID* 5632 0 6.148177083e+00-1.512468394e-01* +* 9.781912500e+00 0 0 +GRID* 5633 0 6.139756944e+00-1.479420396e-01* +* 9.938175000e+00 0 0 +GRID* 5634 0 6.217534722e+00-1.489318449e-01* +* 9.938175000e+00 0 0 +GRID* 5635 0 6.091406250e+00 1.642701231e-01* +* 9.469387500e+00 0 0 +GRID* 5636 0 6.159375000e+00 1.618208594e-01* +* 9.625650000e+00 0 0 +GRID* 5637 0 6.227343750e+00 1.593715957e-01* +* 9.781912500e+00 0 0 +GRID* 5638 0 6.295312500e+00 1.569223319e-01* +* 9.938175000e+00 0 0 +GRID* 5639 0 6.173350694e+00 1.654583687e-01* +* 9.469387500e+00 0 0 +GRID* 5640 0 6.239930556e+00 1.629950502e-01* +* 9.625650000e+00 0 0 +GRID* 5641 0 6.306510417e+00 1.605317318e-01* +* 9.781912500e+00 0 0 +GRID* 5642 0 6.373090278e+00 1.580684133e-01* +* 9.938175000e+00 0 0 +GRID* 5643 0 6.091406250e+00-1.546378253e-01* +* 9.469387500e+00 0 0 +GRID* 5644 0 6.173350694e+00-1.510781936e-01* +* 9.469387500e+00 0 0 +GRID* 5645 0 6.159375000e+00-1.523647631e-01* +* 9.625650000e+00 0 0 +GRID* 5646 0 6.239930556e+00-1.488783160e-01* +* 9.625650000e+00 0 0 +GRID* 5647 0 6.227343750e+00-1.500917008e-01* +* 9.781912500e+00 0 0 +GRID* 5648 0 6.306510417e+00-1.466784383e-01* +* 9.781912500e+00 0 0 +GRID* 5649 0 6.295312500e+00-1.478186385e-01* +* 9.938175000e+00 0 0 +GRID* 5650 0 6.373090278e+00-1.444785607e-01* +* 9.938175000e+00 0 0 +GRID* 5651 0 6.255295139e+00 1.656043747e-01* +* 9.469387500e+00 0 0 +GRID* 5652 0 6.320486111e+00 1.631541689e-01* +* 9.625650000e+00 0 0 +GRID* 5653 0 6.385677083e+00 1.607039631e-01* +* 9.781912500e+00 0 0 +GRID* 5654 0 6.450868056e+00 1.582537573e-01* +* 9.938175000e+00 0 0 +GRID* 5655 0 6.337239583e+00 1.646469430e-01* +* 9.469387500e+00 0 0 +GRID* 5656 0 6.401041667e+00 1.622225452e-01* +* 9.625650000e+00 0 0 +GRID* 5657 0 6.464843750e+00 1.597981475e-01* +* 9.781912500e+00 0 0 +GRID* 5658 0 6.528645833e+00 1.573737497e-01* +* 9.938175000e+00 0 0 +GRID* 5659 0 6.255295139e+00-1.454548934e-01* +* 9.469387500e+00 0 0 +GRID* 5660 0 6.337239583e+00-1.380993272e-01* +* 9.469387500e+00 0 0 +GRID* 5661 0 6.320486111e+00-1.433775999e-01* +* 9.625650000e+00 0 0 +GRID* 5662 0 6.401041667e+00-1.361603261e-01* +* 9.625650000e+00 0 0 +GRID* 5663 0 6.385677083e+00-1.413003064e-01* +* 9.781912500e+00 0 0 +GRID* 5664 0 6.464843750e+00-1.342213250e-01* +* 9.781912500e+00 0 0 +GRID* 5665 0 6.450868056e+00-1.392230130e-01* +* 9.938175000e+00 0 0 +GRID* 5666 0 6.528645833e+00-1.322823239e-01* +* 9.938175000e+00 0 0 +GRID* 5667 0 6.419184028e+00 1.625801080e-01* +* 9.469387500e+00 0 0 +GRID* 5668 0 6.481597222e+00 1.602136508e-01* +* 9.625650000e+00 0 0 +GRID* 5669 0 6.544010417e+00 1.578471937e-01* +* 9.781912500e+00 0 0 +GRID* 5670 0 6.606423611e+00 1.554807366e-01* +* 9.938175000e+00 0 0 +GRID* 5671 0 6.501128472e+00 1.593521307e-01* +* 9.469387500e+00 0 0 +GRID* 5672 0 6.562152778e+00 1.570536220e-01* +* 9.625650000e+00 0 0 +GRID* 5673 0 6.623177083e+00 1.547551133e-01* +* 9.781912500e+00 0 0 +GRID* 5674 0 6.684201389e+00 1.524566045e-01* +* 9.938175000e+00 0 0 +GRID* 5675 0 6.419184028e+00-1.293082099e-01* +* 9.469387500e+00 0 0 +GRID* 5676 0 6.501128472e+00-1.194091031e-01* +* 9.469387500e+00 0 0 +GRID* 5677 0 6.481597222e+00-1.275434480e-01* +* 9.625650000e+00 0 0 +GRID* 5678 0 6.562152778e+00-1.178233602e-01* +* 9.625650000e+00 0 0 +GRID* 5679 0 6.544010417e+00-1.257786862e-01* +* 9.781912500e+00 0 0 +GRID* 5680 0 6.623177083e+00-1.162376173e-01* +* 9.781912500e+00 0 0 +GRID* 5681 0 6.606423611e+00-1.240139244e-01* +* 9.938175000e+00 0 0 +GRID* 5682 0 6.684201389e+00-1.146518744e-01* +* 9.938175000e+00 0 0 +GRID* 5683 0 6.583072917e+00 1.549810584e-01* +* 9.469387500e+00 0 0 +GRID* 5684 0 6.642708333e+00 1.527863318e-01* +* 9.625650000e+00 0 0 +GRID* 5685 0 6.702343750e+00 1.505916053e-01* +* 9.781912500e+00 0 0 +GRID* 5686 0 6.761979167e+00 1.483968787e-01* +* 9.938175000e+00 0 0 +GRID* 5687 0 6.665017361e+00 1.494443056e-01* +* 9.469387500e+00 0 0 +GRID* 5688 0 6.723263889e+00 1.473598963e-01* +* 9.625650000e+00 0 0 +GRID* 5689 0 6.781510417e+00 1.452754870e-01* +* 9.781912500e+00 0 0 +GRID* 5690 0 6.839756944e+00 1.431910777e-01* +* 9.938175000e+00 0 0 +GRID* 5691 0 6.583072917e+00-1.086292031e-01* +* 9.469387500e+00 0 0 +GRID* 5692 0 6.665017361e+00-9.723321934e-02* +* 9.469387500e+00 0 0 +GRID* 5693 0 6.642708333e+00-1.072453086e-01* +* 9.625650000e+00 0 0 +GRID* 5694 0 6.723263889e+00-9.604978247e-02* +* 9.625650000e+00 0 0 +GRID* 5695 0 6.702343750e+00-1.058614140e-01* +* 9.781912500e+00 0 0 +GRID* 5696 0 6.781510417e+00-9.486634560e-02* +* 9.781912500e+00 0 0 +GRID* 5697 0 6.761979167e+00-1.044775195e-01* +* 9.938175000e+00 0 0 +GRID* 5698 0 6.839756944e+00-9.368290873e-02* +* 9.938175000e+00 0 0 +GRID* 5699 0 6.746961806e+00 1.427600804e-01* +* 9.469387500e+00 0 0 +GRID* 5700 0 6.803819444e+00 1.408249068e-01* +* 9.625650000e+00 0 0 +GRID* 5701 0 6.860677083e+00 1.388897333e-01* +* 9.781912500e+00 0 0 +GRID* 5702 0 6.917534722e+00 1.369545597e-01* +* 9.938175000e+00 0 0 +GRID* 5703 0 6.746961806e+00-8.544034420e-02* +* 9.469387500e+00 0 0 +GRID* 5704 0 6.803819444e+00-8.446542187e-02* +* 9.625650000e+00 0 0 +GRID* 5705 0 6.860677083e+00-8.349049953e-02* +* 9.781912500e+00 0 0 +GRID* 5706 0 6.917534722e+00-8.251557719e-02* +* 9.938175000e+00 0 0 +GRID* 5707 0 5.517795139e+00 1.151260833e-01* +* 9.469387500e+00 0 0 +GRID* 5708 0 5.517795139e+00 1.026260833e-01* +* 9.469387500e+00 0 0 +GRID* 5709 0 5.595486111e+00 1.133045035e-01* +* 9.625650000e+00 0 0 +GRID* 5710 0 5.595486111e+00 1.008045035e-01* +* 9.625650000e+00 0 0 +GRID* 5711 0 5.673177083e+00 1.114829238e-01* +* 9.781912500e+00 0 0 +GRID* 5712 0 5.673177083e+00 9.898292376e-02* +* 9.781912500e+00 0 0 +GRID* 5713 0 5.750868056e+00 1.096613440e-01* +* 9.938175000e+00 0 0 +GRID* 5714 0 5.750868056e+00 9.716134402e-02* +* 9.938175000e+00 0 0 +GRID* 5715 0 5.828559028e+00 1.078397643e-01* +* 1.009443750e+01 0 0 +GRID* 5716 0 5.828559028e+00 9.533976427e-02* +* 1.009443750e+01 0 0 +GRID* 5717 0 5.517795139e+00-1.150261190e-01* +* 9.469387500e+00 0 0 +GRID* 5718 0 5.517795139e+00-1.025261190e-01* +* 9.469387500e+00 0 0 +GRID* 5719 0 5.595486111e+00-1.132029181e-01* +* 9.625650000e+00 0 0 +GRID* 5720 0 5.595486111e+00-1.007029181e-01* +* 9.625650000e+00 0 0 +GRID* 5721 0 5.673177083e+00-1.113797171e-01* +* 9.781912500e+00 0 0 +GRID* 5722 0 5.673177083e+00-9.887971715e-02* +* 9.781912500e+00 0 0 +GRID* 5723 0 5.750868056e+00-1.095565162e-01* +* 9.938175000e+00 0 0 +GRID* 5724 0 5.750868056e+00-9.705651623e-02* +* 9.938175000e+00 0 0 +GRID* 5725 0 5.828559028e+00-1.077333153e-01* +* 1.009443750e+01 0 0 +GRID* 5726 0 5.828559028e+00-9.523331531e-02* +* 1.009443750e+01 0 0 +GRID* 5727 0 5.681684028e+00 1.312310286e-01* +* 9.469387500e+00 0 0 +GRID* 5728 0 5.681684028e+00 1.187310286e-01* +* 9.469387500e+00 0 0 +GRID* 5729 0 5.756597222e+00 1.291172770e-01* +* 9.625650000e+00 0 0 +GRID* 5730 0 5.756597222e+00 1.166172770e-01* +* 9.625650000e+00 0 0 +GRID* 5731 0 5.831510417e+00 1.270035255e-01* +* 9.781912500e+00 0 0 +GRID* 5732 0 5.831510417e+00 1.145035255e-01* +* 9.781912500e+00 0 0 +GRID* 5733 0 5.906423611e+00 1.248897739e-01* +* 9.938175000e+00 0 0 +GRID* 5734 0 5.906423611e+00 1.123897739e-01* +* 9.938175000e+00 0 0 +GRID* 5735 0 5.981336806e+00 1.227760224e-01* +* 1.009443750e+01 0 0 +GRID* 5736 0 5.981336806e+00 1.102760224e-01* +* 1.009443750e+01 0 0 +GRID* 5737 0 5.681684028e+00-1.299394627e-01* +* 9.469387500e+00 0 0 +GRID* 5738 0 5.681684028e+00-1.174394627e-01* +* 9.469387500e+00 0 0 +GRID* 5739 0 5.756597222e+00-1.278431976e-01* +* 9.625650000e+00 0 0 +GRID* 5740 0 5.756597222e+00-1.153431976e-01* +* 9.625650000e+00 0 0 +GRID* 5741 0 5.831510417e+00-1.257469325e-01* +* 9.781912500e+00 0 0 +GRID* 5742 0 5.831510417e+00-1.132469325e-01* +* 9.781912500e+00 0 0 +GRID* 5743 0 5.906423611e+00-1.236506673e-01* +* 9.938175000e+00 0 0 +GRID* 5744 0 5.906423611e+00-1.111506673e-01* +* 9.938175000e+00 0 0 +GRID* 5745 0 5.981336806e+00-1.215544022e-01* +* 1.009443750e+01 0 0 +GRID* 5746 0 5.981336806e+00-1.090544022e-01* +* 1.009443750e+01 0 0 +GRID* 5747 0 5.845572917e+00 1.422172017e-01* +* 9.469387500e+00 0 0 +GRID* 5748 0 5.845572917e+00 1.297172017e-01* +* 9.469387500e+00 0 0 +GRID* 5749 0 5.917708333e+00 1.399149879e-01* +* 9.625650000e+00 0 0 +GRID* 5750 0 5.917708333e+00 1.274149879e-01* +* 9.625650000e+00 0 0 +GRID* 5751 0 5.989843750e+00 1.376127740e-01* +* 9.781912500e+00 0 0 +GRID* 5752 0 5.989843750e+00 1.251127740e-01* +* 9.781912500e+00 0 0 +GRID* 5753 0 6.061979167e+00 1.353105602e-01* +* 9.938175000e+00 0 0 +GRID* 5754 0 6.061979167e+00 1.228105602e-01* +* 9.938175000e+00 0 0 +GRID* 5755 0 6.134114583e+00 1.330083464e-01* +* 1.009443750e+01 0 0 +GRID* 5756 0 6.134114583e+00 1.205083464e-01* +* 1.009443750e+01 0 0 +GRID* 5757 0 5.845572917e+00-1.395134484e-01* +* 9.469387500e+00 0 0 +GRID* 5758 0 5.845572917e+00-1.270134484e-01* +* 9.469387500e+00 0 0 +GRID* 5759 0 5.917708333e+00-1.372525033e-01* +* 9.625650000e+00 0 0 +GRID* 5760 0 5.917708333e+00-1.247525033e-01* +* 9.625650000e+00 0 0 +GRID* 5761 0 5.989843750e+00-1.349915582e-01* +* 9.781912500e+00 0 0 +GRID* 5762 0 5.989843750e+00-1.224915582e-01* +* 9.781912500e+00 0 0 +GRID* 5763 0 6.061979167e+00-1.327306131e-01* +* 9.938175000e+00 0 0 +GRID* 5764 0 6.061979167e+00-1.202306131e-01* +* 9.938175000e+00 0 0 +GRID* 5765 0 6.134114583e+00-1.304696679e-01* +* 1.009443750e+01 0 0 +GRID* 5766 0 6.134114583e+00-1.179696679e-01* +* 1.009443750e+01 0 0 +GRID* 5767 0 6.009461806e+00 1.495471802e-01* +* 9.469387500e+00 0 0 +GRID* 5768 0 6.009461806e+00 1.370471802e-01* +* 9.469387500e+00 0 0 +GRID* 5769 0 6.078819444e+00 1.471266593e-01* +* 9.625650000e+00 0 0 +GRID* 5770 0 6.078819444e+00 1.346266593e-01* +* 9.625650000e+00 0 0 +GRID* 5771 0 6.148177083e+00 1.447061383e-01* +* 9.781912500e+00 0 0 +GRID* 5772 0 6.148177083e+00 1.322061383e-01* +* 9.781912500e+00 0 0 +GRID* 5773 0 6.217534722e+00 1.422856174e-01* +* 9.938175000e+00 0 0 +GRID* 5774 0 6.217534722e+00 1.297856174e-01* +* 9.938175000e+00 0 0 +GRID* 5775 0 6.286892361e+00 1.398650964e-01* +* 1.009443750e+01 0 0 +GRID* 5776 0 6.286892361e+00 1.273650964e-01* +* 1.009443750e+01 0 0 +GRID* 5777 0 6.009461806e+00-1.433768285e-01* +* 9.469387500e+00 0 0 +GRID* 5778 0 6.009461806e+00-1.308768285e-01* +* 9.469387500e+00 0 0 +GRID* 5779 0 6.078819444e+00-1.410618340e-01* +* 9.625650000e+00 0 0 +GRID* 5780 0 6.078819444e+00-1.285618340e-01* +* 9.625650000e+00 0 0 +GRID* 5781 0 6.148177083e+00-1.387468394e-01* +* 9.781912500e+00 0 0 +GRID* 5782 0 6.148177083e+00-1.262468394e-01* +* 9.781912500e+00 0 0 +GRID* 5783 0 6.217534722e+00-1.364318449e-01* +* 9.938175000e+00 0 0 +GRID* 5784 0 6.217534722e+00-1.239318449e-01* +* 9.938175000e+00 0 0 +GRID* 5785 0 6.286892361e+00-1.341168503e-01* +* 1.009443750e+01 0 0 +GRID* 5786 0 6.286892361e+00-1.216168503e-01* +* 1.009443750e+01 0 0 +GRID* 5787 0 6.173350694e+00 1.529583687e-01* +* 9.469387500e+00 0 0 +GRID* 5788 0 6.173350694e+00 1.404583687e-01* +* 9.469387500e+00 0 0 +GRID* 5789 0 6.239930556e+00 1.504950502e-01* +* 9.625650000e+00 0 0 +GRID* 5790 0 6.239930556e+00 1.379950502e-01* +* 9.625650000e+00 0 0 +GRID* 5791 0 6.306510417e+00 1.480317318e-01* +* 9.781912500e+00 0 0 +GRID* 5792 0 6.306510417e+00 1.355317318e-01* +* 9.781912500e+00 0 0 +GRID* 5793 0 6.373090278e+00 1.455684133e-01* +* 9.938175000e+00 0 0 +GRID* 5794 0 6.373090278e+00 1.330684133e-01* +* 9.938175000e+00 0 0 +GRID* 5795 0 6.439670139e+00 1.431050949e-01* +* 1.009443750e+01 0 0 +GRID* 5796 0 6.439670139e+00 1.306050949e-01* +* 1.009443750e+01 0 0 +GRID* 5797 0 6.173350694e+00-1.385781936e-01* +* 9.469387500e+00 0 0 +GRID* 5798 0 6.173350694e+00-1.260781936e-01* +* 9.469387500e+00 0 0 +GRID* 5799 0 6.239930556e+00-1.363783160e-01* +* 9.625650000e+00 0 0 +GRID* 5800 0 6.239930556e+00-1.238783160e-01* +* 9.625650000e+00 0 0 +GRID* 5801 0 6.306510417e+00-1.341784383e-01* +* 9.781912500e+00 0 0 +GRID* 5802 0 6.306510417e+00-1.216784383e-01* +* 9.781912500e+00 0 0 +GRID* 5803 0 6.373090278e+00-1.319785607e-01* +* 9.938175000e+00 0 0 +GRID* 5804 0 6.373090278e+00-1.194785607e-01* +* 9.938175000e+00 0 0 +GRID* 5805 0 6.439670139e+00-1.297786830e-01* +* 1.009443750e+01 0 0 +GRID* 5806 0 6.439670139e+00-1.172786830e-01* +* 1.009443750e+01 0 0 +GRID* 5807 0 6.337239583e+00 1.521469430e-01* +* 9.469387500e+00 0 0 +GRID* 5808 0 6.337239583e+00 1.396469430e-01* +* 9.469387500e+00 0 0 +GRID* 5809 0 6.401041667e+00 1.497225452e-01* +* 9.625650000e+00 0 0 +GRID* 5810 0 6.401041667e+00 1.372225452e-01* +* 9.625650000e+00 0 0 +GRID* 5811 0 6.464843750e+00 1.472981475e-01* +* 9.781912500e+00 0 0 +GRID* 5812 0 6.464843750e+00 1.347981475e-01* +* 9.781912500e+00 0 0 +GRID* 5813 0 6.528645833e+00 1.448737497e-01* +* 9.938175000e+00 0 0 +GRID* 5814 0 6.528645833e+00 1.323737497e-01* +* 9.938175000e+00 0 0 +GRID* 5815 0 6.592447917e+00 1.424493520e-01* +* 1.009443750e+01 0 0 +GRID* 5816 0 6.592447917e+00 1.299493520e-01* +* 1.009443750e+01 0 0 +GRID* 5817 0 6.337239583e+00-1.255993272e-01* +* 9.469387500e+00 0 0 +GRID* 5818 0 6.337239583e+00-1.130993272e-01* +* 9.469387500e+00 0 0 +GRID* 5819 0 6.401041667e+00-1.236603261e-01* +* 9.625650000e+00 0 0 +GRID* 5820 0 6.401041667e+00-1.111603261e-01* +* 9.625650000e+00 0 0 +GRID* 5821 0 6.464843750e+00-1.217213250e-01* +* 9.781912500e+00 0 0 +GRID* 5822 0 6.464843750e+00-1.092213250e-01* +* 9.781912500e+00 0 0 +GRID* 5823 0 6.528645833e+00-1.197823239e-01* +* 9.938175000e+00 0 0 +GRID* 5824 0 6.528645833e+00-1.072823239e-01* +* 9.938175000e+00 0 0 +GRID* 5825 0 6.592447917e+00-1.178433228e-01* +* 1.009443750e+01 0 0 +GRID* 5826 0 6.592447917e+00-1.053433228e-01* +* 1.009443750e+01 0 0 +GRID* 5827 0 6.501128472e+00 1.468521307e-01* +* 9.469387500e+00 0 0 +GRID* 5828 0 6.501128472e+00 1.343521307e-01* +* 9.469387500e+00 0 0 +GRID* 5829 0 6.562152778e+00 1.445536220e-01* +* 9.625650000e+00 0 0 +GRID* 5830 0 6.562152778e+00 1.320536220e-01* +* 9.625650000e+00 0 0 +GRID* 5831 0 6.623177083e+00 1.422551133e-01* +* 9.781912500e+00 0 0 +GRID* 5832 0 6.623177083e+00 1.297551133e-01* +* 9.781912500e+00 0 0 +GRID* 5833 0 6.684201389e+00 1.399566045e-01* +* 9.938175000e+00 0 0 +GRID* 5834 0 6.684201389e+00 1.274566045e-01* +* 9.938175000e+00 0 0 +GRID* 5835 0 6.745225694e+00 1.376580958e-01* +* 1.009443750e+01 0 0 +GRID* 5836 0 6.745225694e+00 1.251580958e-01* +* 1.009443750e+01 0 0 +GRID* 5837 0 6.501128472e+00-1.069091031e-01* +* 9.469387500e+00 0 0 +GRID* 5838 0 6.501128472e+00-9.440910312e-02* +* 9.469387500e+00 0 0 +GRID* 5839 0 6.562152778e+00-1.053233602e-01* +* 9.625650000e+00 0 0 +GRID* 5840 0 6.562152778e+00-9.282336022e-02* +* 9.625650000e+00 0 0 +GRID* 5841 0 6.623177083e+00-1.037376173e-01* +* 9.781912500e+00 0 0 +GRID* 5842 0 6.623177083e+00-9.123761733e-02* +* 9.781912500e+00 0 0 +GRID* 5843 0 6.684201389e+00-1.021518744e-01* +* 9.938175000e+00 0 0 +GRID* 5844 0 6.684201389e+00-8.965187444e-02* +* 9.938175000e+00 0 0 +GRID* 5845 0 6.745225694e+00-1.005661315e-01* +* 1.009443750e+01 0 0 +GRID* 5846 0 6.745225694e+00-8.806613155e-02* +* 1.009443750e+01 0 0 +GRID* 5847 0 6.665017361e+00 1.369443056e-01* +* 9.469387500e+00 0 0 +GRID* 5848 0 6.665017361e+00 1.244443056e-01* +* 9.469387500e+00 0 0 +GRID* 5849 0 6.723263889e+00 1.348598963e-01* +* 9.625650000e+00 0 0 +GRID* 5850 0 6.723263889e+00 1.223598963e-01* +* 9.625650000e+00 0 0 +GRID* 5851 0 6.781510417e+00 1.327754870e-01* +* 9.781912500e+00 0 0 +GRID* 5852 0 6.781510417e+00 1.202754870e-01* +* 9.781912500e+00 0 0 +GRID* 5853 0 6.839756944e+00 1.306910777e-01* +* 9.938175000e+00 0 0 +GRID* 5854 0 6.839756944e+00 1.181910777e-01* +* 9.938175000e+00 0 0 +GRID* 5855 0 6.898003472e+00 1.286066683e-01* +* 1.009443750e+01 0 0 +GRID* 5856 0 6.898003472e+00 1.161066683e-01* +* 1.009443750e+01 0 0 +GRID* 5857 0 6.665017361e+00-8.473321934e-02* +* 9.469387500e+00 0 0 +GRID* 5858 0 6.665017361e+00-7.223321934e-02* +* 9.469387500e+00 0 0 +GRID* 5859 0 6.723263889e+00-8.354978247e-02* +* 9.625650000e+00 0 0 +GRID* 5860 0 6.723263889e+00-7.104978247e-02* +* 9.625650000e+00 0 0 +GRID* 5861 0 6.781510417e+00-8.236634560e-02* +* 9.781912500e+00 0 0 +GRID* 5862 0 6.781510417e+00-6.986634560e-02* +* 9.781912500e+00 0 0 +GRID* 5863 0 6.839756944e+00-8.118290873e-02* +* 9.938175000e+00 0 0 +GRID* 5864 0 6.839756944e+00-6.868290873e-02* +* 9.938175000e+00 0 0 +GRID* 5865 0 6.898003472e+00-7.999947186e-02* +* 1.009443750e+01 0 0 +GRID* 5866 0 6.898003472e+00-6.749947186e-02* +* 1.009443750e+01 0 0 +GRID* 5867 0 5.831250000e+00 1.084747493e-01* +* 1.025070000e+01 0 0 +GRID* 5868 0 5.910329861e+00 1.068527867e-01* +* 1.040696250e+01 0 0 +GRID* 5869 0 5.989409722e+00 1.052308241e-01* +* 1.056322500e+01 0 0 +GRID* 5870 0 6.068489583e+00 1.036088615e-01* +* 1.071948750e+01 0 0 +GRID* 5871 0 5.906250000e+00 1.185181845e-01* +* 1.025070000e+01 0 0 +GRID* 5872 0 5.983940972e+00 1.166966048e-01* +* 1.040696250e+01 0 0 +GRID* 5873 0 6.061631944e+00 1.148750250e-01* +* 1.056322500e+01 0 0 +GRID* 5874 0 6.139322917e+00 1.130534453e-01* +* 1.071948750e+01 0 0 +GRID* 5875 0 5.831250000e+00-1.087772715e-01* +* 1.025070000e+01 0 0 +GRID* 5876 0 5.906250000e+00-1.184101144e-01* +* 1.025070000e+01 0 0 +GRID* 5877 0 5.910329861e+00-1.071469916e-01* +* 1.040696250e+01 0 0 +GRID* 5878 0 5.983940972e+00-1.165869135e-01* +* 1.040696250e+01 0 0 +GRID* 5879 0 5.989409722e+00-1.055167117e-01* +* 1.056322500e+01 0 0 +GRID* 5880 0 6.061631944e+00-1.147637126e-01* +* 1.056322500e+01 0 0 +GRID* 5881 0 6.068489583e+00-1.038864317e-01* +* 1.071948750e+01 0 0 +GRID* 5882 0 6.139322917e+00-1.129405116e-01* +* 1.071948750e+01 0 0 +GRID* 5883 0 5.981250000e+00 1.266256432e-01* +* 1.025070000e+01 0 0 +GRID* 5884 0 6.057552083e+00 1.246370112e-01* +* 1.040696250e+01 0 0 +GRID* 5885 0 6.133854167e+00 1.226483793e-01* +* 1.056322500e+01 0 0 +GRID* 5886 0 6.210156250e+00 1.206597474e-01* +* 1.071948750e+01 0 0 +GRID* 5887 0 6.056250000e+00 1.331622708e-01* +* 1.025070000e+01 0 0 +GRID* 5888 0 6.131163194e+00 1.310485193e-01* +* 1.040696250e+01 0 0 +GRID* 5889 0 6.206076389e+00 1.289347677e-01* +* 1.056322500e+01 0 0 +GRID* 5890 0 6.280989583e+00 1.268210162e-01* +* 1.071948750e+01 0 0 +GRID* 5891 0 5.981250000e+00-1.259737816e-01* +* 1.025070000e+01 0 0 +GRID* 5892 0 6.056250000e+00-1.319581370e-01* +* 1.025070000e+01 0 0 +GRID* 5893 0 6.057552083e+00-1.239926101e-01* +* 1.040696250e+01 0 0 +GRID* 5894 0 6.131163194e+00-1.298618719e-01* +* 1.040696250e+01 0 0 +GRID* 5895 0 6.133854167e+00-1.220114387e-01* +* 1.056322500e+01 0 0 +GRID* 5896 0 6.206076389e+00-1.277656068e-01* +* 1.056322500e+01 0 0 +GRID* 5897 0 6.210156250e+00-1.200302672e-01* +* 1.071948750e+01 0 0 +GRID* 5898 0 6.280989583e+00-1.256693416e-01* +* 1.071948750e+01 0 0 +GRID* 5899 0 6.131250000e+00 1.386049398e-01* +* 1.025070000e+01 0 0 +GRID* 5900 0 6.204774306e+00 1.363877123e-01* +* 1.040696250e+01 0 0 +GRID* 5901 0 6.278298611e+00 1.341704848e-01* +* 1.056322500e+01 0 0 +GRID* 5902 0 6.351822917e+00 1.319532573e-01* +* 1.071948750e+01 0 0 +GRID* 5903 0 6.206250000e+00 1.432061325e-01* +* 1.025070000e+01 0 0 +GRID* 5904 0 6.278385417e+00 1.409039187e-01* +* 1.040696250e+01 0 0 +GRID* 5905 0 6.350520833e+00 1.386017049e-01* +* 1.056322500e+01 0 0 +GRID* 5906 0 6.422656250e+00 1.362994911e-01* +* 1.071948750e+01 0 0 +GRID* 5907 0 6.131250000e+00-1.368086469e-01* +* 1.025070000e+01 0 0 +GRID* 5908 0 6.206250000e+00-1.407087228e-01* +* 1.025070000e+01 0 0 +GRID* 5909 0 6.204774306e+00-1.346196830e-01* +* 1.040696250e+01 0 0 +GRID* 5910 0 6.278385417e+00-1.384477777e-01* +* 1.040696250e+01 0 0 +GRID* 5911 0 6.278298611e+00-1.324307191e-01* +* 1.056322500e+01 0 0 +GRID* 5912 0 6.350520833e+00-1.361868326e-01* +* 1.056322500e+01 0 0 +GRID* 5913 0 6.351822917e+00-1.302417552e-01* +* 1.071948750e+01 0 0 +GRID* 5914 0 6.422656250e+00-1.339258874e-01* +* 1.071948750e+01 0 0 +GRID* 5915 0 6.281250000e+00 1.470102370e-01* +* 1.025070000e+01 0 0 +GRID* 5916 0 6.351996528e+00 1.446408680e-01* +* 1.040696250e+01 0 0 +GRID* 5917 0 6.422743056e+00 1.422714990e-01* +* 1.056322500e+01 0 0 +GRID* 5918 0 6.493489583e+00 1.399021300e-01* +* 1.071948750e+01 0 0 +GRID* 5919 0 6.356250000e+00 1.499445755e-01* +* 1.025070000e+01 0 0 +GRID* 5920 0 6.425607639e+00 1.475240545e-01* +* 1.040696250e+01 0 0 +GRID* 5921 0 6.494965278e+00 1.451035336e-01* +* 1.056322500e+01 0 0 +GRID* 5922 0 6.564322917e+00 1.426830126e-01* +* 1.071948750e+01 0 0 +GRID* 5923 0 6.281250000e+00-1.433344406e-01* +* 1.025070000e+01 0 0 +GRID* 5924 0 6.356250000e+00-1.443018558e-01* +* 1.025070000e+01 0 0 +GRID* 5925 0 6.351996528e+00-1.410306411e-01* +* 1.040696250e+01 0 0 +GRID* 5926 0 6.425607639e+00-1.419868613e-01* +* 1.040696250e+01 0 0 +GRID* 5927 0 6.422743056e+00-1.387268415e-01* +* 1.056322500e+01 0 0 +GRID* 5928 0 6.494965278e+00-1.396718667e-01* +* 1.056322500e+01 0 0 +GRID* 5929 0 6.493489583e+00-1.364230420e-01* +* 1.071948750e+01 0 0 +GRID* 5930 0 6.564322917e+00-1.373568722e-01* +* 1.071948750e+01 0 0 +GRID* 5931 0 6.431250000e+00 1.520238045e-01* +* 1.025070000e+01 0 0 +GRID* 5932 0 6.499218750e+00 1.495745408e-01* +* 1.040696250e+01 0 0 +GRID* 5933 0 6.567187500e+00 1.471252770e-01* +* 1.056322500e+01 0 0 +GRID* 5934 0 6.635156250e+00 1.446760133e-01* +* 1.071948750e+01 0 0 +GRID* 5935 0 6.506250000e+00 1.531417764e-01* +* 1.025070000e+01 0 0 +GRID* 5936 0 6.572829861e+00 1.506784580e-01* +* 1.040696250e+01 0 0 +GRID* 5937 0 6.639409722e+00 1.482151395e-01* +* 1.056322500e+01 0 0 +GRID* 5938 0 6.705989583e+00 1.457518211e-01* +* 1.071948750e+01 0 0 +GRID* 5939 0 6.431250000e+00-1.432725139e-01* +* 1.025070000e+01 0 0 +GRID* 5940 0 6.506250000e+00-1.400788054e-01* +* 1.025070000e+01 0 0 +GRID* 5941 0 6.499218750e+00-1.409994516e-01* +* 1.040696250e+01 0 0 +GRID* 5942 0 6.572829861e+00-1.378789277e-01* +* 1.040696250e+01 0 0 +GRID* 5943 0 6.567187500e+00-1.387263893e-01* +* 1.056322500e+01 0 0 +GRID* 5944 0 6.639409722e+00-1.356790501e-01* +* 1.056322500e+01 0 0 +GRID* 5945 0 6.635156250e+00-1.364533270e-01* +* 1.071948750e+01 0 0 +GRID* 5946 0 6.705989583e+00-1.334791724e-01* +* 1.071948750e+01 0 0 +GRID* 5947 0 6.581250000e+00 1.533533457e-01* +* 1.025070000e+01 0 0 +GRID* 5948 0 6.646440972e+00 1.509031399e-01* +* 1.040696250e+01 0 0 +GRID* 5949 0 6.711631944e+00 1.484529341e-01* +* 1.056322500e+01 0 0 +GRID* 5950 0 6.776822917e+00 1.460027283e-01* +* 1.071948750e+01 0 0 +GRID* 5951 0 6.656250000e+00 1.525249542e-01* +* 1.025070000e+01 0 0 +GRID* 5952 0 6.720052083e+00 1.501005565e-01* +* 1.040696250e+01 0 0 +GRID* 5953 0 6.783854167e+00 1.476761588e-01* +* 1.056322500e+01 0 0 +GRID* 5954 0 6.847656250e+00 1.452517610e-01* +* 1.071948750e+01 0 0 +GRID* 5955 0 6.581250000e+00-1.350684260e-01* +* 1.025070000e+01 0 0 +GRID* 5956 0 6.656250000e+00-1.284043217e-01* +* 1.025070000e+01 0 0 +GRID* 5957 0 6.646440972e+00-1.329911325e-01* +* 1.040696250e+01 0 0 +GRID* 5958 0 6.720052083e+00-1.264653206e-01* +* 1.040696250e+01 0 0 +GRID* 5959 0 6.711631944e+00-1.309138391e-01* +* 1.056322500e+01 0 0 +GRID* 5960 0 6.783854167e+00-1.245263195e-01* +* 1.056322500e+01 0 0 +GRID* 5961 0 6.776822917e+00-1.288365456e-01* +* 1.071948750e+01 0 0 +GRID* 5962 0 6.847656250e+00-1.225873184e-01* +* 1.071948750e+01 0 0 +GRID* 5963 0 6.731250000e+00 1.507478223e-01* +* 1.025070000e+01 0 0 +GRID* 5964 0 6.793663194e+00 1.483813652e-01* +* 1.040696250e+01 0 0 +GRID* 5965 0 6.856076389e+00 1.460149081e-01* +* 1.056322500e+01 0 0 +GRID* 5966 0 6.918489583e+00 1.436484510e-01* +* 1.071948750e+01 0 0 +GRID* 5967 0 6.806250000e+00 1.478595871e-01* +* 1.025070000e+01 0 0 +GRID* 5968 0 6.867274306e+00 1.455610784e-01* +* 1.040696250e+01 0 0 +GRID* 5969 0 6.928298611e+00 1.432625697e-01* +* 1.056322500e+01 0 0 +GRID* 5970 0 6.989322917e+00 1.409640610e-01* +* 1.071948750e+01 0 0 +GRID* 5971 0 6.731250000e+00-1.204844007e-01* +* 1.025070000e+01 0 0 +GRID* 5972 0 6.806250000e+00-1.114803887e-01* +* 1.025070000e+01 0 0 +GRID* 5973 0 6.793663194e+00-1.187196389e-01* +* 1.040696250e+01 0 0 +GRID* 5974 0 6.867274306e+00-1.098946458e-01* +* 1.040696250e+01 0 0 +GRID* 5975 0 6.856076389e+00-1.169548770e-01* +* 1.056322500e+01 0 0 +GRID* 5976 0 6.928298611e+00-1.083089029e-01* +* 1.056322500e+01 0 0 +GRID* 5977 0 6.918489583e+00-1.151901152e-01* +* 1.071948750e+01 0 0 +GRID* 5978 0 6.989322917e+00-1.067231600e-01* +* 1.071948750e+01 0 0 +GRID* 5979 0 6.881250000e+00 1.440074256e-01* +* 1.025070000e+01 0 0 +GRID* 5980 0 6.940885417e+00 1.418126990e-01* +* 1.040696250e+01 0 0 +GRID* 5981 0 7.000520833e+00 1.396137017e-01* +* 1.056322500e+01 0 0 +GRID* 5982 0 7.060156250e+00 1.374015988e-01* +* 1.071948750e+01 0 0 +GRID* 5983 0 6.956250000e+00 1.390222590e-01* +* 1.025070000e+01 0 0 +GRID* 5984 0 7.014496528e+00 1.369378497e-01* +* 1.040696250e+01 0 0 +GRID* 5985 0 7.072743056e+00 1.348534404e-01* +* 1.056322500e+01 0 0 +GRID* 5986 0 7.130989583e+00 1.327690310e-01* +* 1.071948750e+01 0 0 +GRID* 5987 0 6.881250000e+00-1.017097304e-01* +* 1.025070000e+01 0 0 +GRID* 5988 0 6.956250000e+00-9.131603499e-02* +* 1.025070000e+01 0 0 +GRID* 5989 0 6.940885417e+00-1.003258359e-01* +* 1.040696250e+01 0 0 +GRID* 5990 0 7.014496528e+00-9.013259812e-02* +* 1.040696250e+01 0 0 +GRID* 5991 0 7.000520833e+00-9.894194134e-02* +* 1.056322500e+01 0 0 +GRID* 5992 0 7.072743056e+00-8.894916125e-02* +* 1.056322500e+01 0 0 +GRID* 5993 0 7.060156250e+00-9.755804680e-02* +* 1.071948750e+01 0 0 +GRID* 5994 0 7.130989583e+00-8.776572439e-02* +* 1.071948750e+01 0 0 +GRID* 5995 0 7.031250000e+00 1.330842126e-01* +* 1.025070000e+01 0 0 +GRID* 5996 0 7.088107639e+00 1.311467834e-01* +* 1.040696250e+01 0 0 +GRID* 5997 0 7.144965278e+00 1.291911995e-01* +* 1.056322500e+01 0 0 +GRID* 5998 0 7.201822917e+00 1.272356155e-01* +* 1.071948750e+01 0 0 +GRID* 5999 0 7.031250000e+00-8.056573252e-02* +* 1.025070000e+01 0 0 +GRID* 6000 0 7.088107639e+00-7.959081018e-02* +* 1.040696250e+01 0 0 +GRID* 6001 0 7.144965278e+00-7.861588784e-02* +* 1.056322500e+01 0 0 +GRID* 6002 0 7.201822917e+00-7.764096550e-02* +* 1.071948750e+01 0 0 +GRID* 6003 0 5.906250000e+00 1.060181845e-01* +* 1.025070000e+01 0 0 +GRID* 6004 0 5.906250000e+00 9.351818452e-02* +* 1.025070000e+01 0 0 +GRID* 6005 0 5.983940972e+00 1.041966048e-01* +* 1.040696250e+01 0 0 +GRID* 6006 0 5.983940972e+00 9.169660477e-02* +* 1.040696250e+01 0 0 +GRID* 6007 0 6.061631944e+00 1.023750250e-01* +* 1.056322500e+01 0 0 +GRID* 6008 0 6.061631944e+00 8.987502503e-02* +* 1.056322500e+01 0 0 +GRID* 6009 0 6.139322917e+00 1.005534453e-01* +* 1.071948750e+01 0 0 +GRID* 6010 0 6.139322917e+00 8.805344528e-02* +* 1.071948750e+01 0 0 +GRID* 6011 0 6.217013889e+00 9.873186553e-02* +* 1.087575000e+01 0 0 +GRID* 6012 0 6.217013889e+00 8.623186553e-02* +* 1.087575000e+01 0 0 +GRID* 6013 0 5.906250000e+00-1.059101144e-01* +* 1.025070000e+01 0 0 +GRID* 6014 0 5.906250000e+00-9.341011440e-02* +* 1.025070000e+01 0 0 +GRID* 6015 0 5.983940972e+00-1.040869135e-01* +* 1.040696250e+01 0 0 +GRID* 6016 0 5.983940972e+00-9.158691348e-02* +* 1.040696250e+01 0 0 +GRID* 6017 0 6.061631944e+00-1.022637126e-01* +* 1.056322500e+01 0 0 +GRID* 6018 0 6.061631944e+00-8.976371256e-02* +* 1.056322500e+01 0 0 +GRID* 6019 0 6.139322917e+00-1.004405116e-01* +* 1.071948750e+01 0 0 +GRID* 6020 0 6.139322917e+00-8.794051164e-02* +* 1.071948750e+01 0 0 +GRID* 6021 0 6.217013889e+00-9.861731072e-02* +* 1.087575000e+01 0 0 +GRID* 6022 0 6.217013889e+00-8.611731072e-02* +* 1.087575000e+01 0 0 +GRID* 6023 0 6.056250000e+00 1.206622708e-01* +* 1.025070000e+01 0 0 +GRID* 6024 0 6.056250000e+00 1.081622708e-01* +* 1.025070000e+01 0 0 +GRID* 6025 0 6.131163194e+00 1.185485193e-01* +* 1.040696250e+01 0 0 +GRID* 6026 0 6.131163194e+00 1.060485193e-01* +* 1.040696250e+01 0 0 +GRID* 6027 0 6.206076389e+00 1.164347677e-01* +* 1.056322500e+01 0 0 +GRID* 6028 0 6.206076389e+00 1.039347677e-01* +* 1.056322500e+01 0 0 +GRID* 6029 0 6.280989583e+00 1.143210162e-01* +* 1.071948750e+01 0 0 +GRID* 6030 0 6.280989583e+00 1.018210162e-01* +* 1.071948750e+01 0 0 +GRID* 6031 0 6.355902778e+00 1.122072646e-01* +* 1.087575000e+01 0 0 +GRID* 6032 0 6.355902778e+00 9.970726463e-02* +* 1.087575000e+01 0 0 +GRID* 6033 0 6.056250000e+00-1.194581370e-01* +* 1.025070000e+01 0 0 +GRID* 6034 0 6.056250000e+00-1.069581370e-01* +* 1.025070000e+01 0 0 +GRID* 6035 0 6.131163194e+00-1.173618719e-01* +* 1.040696250e+01 0 0 +GRID* 6036 0 6.131163194e+00-1.048618719e-01* +* 1.040696250e+01 0 0 +GRID* 6037 0 6.206076389e+00-1.152656068e-01* +* 1.056322500e+01 0 0 +GRID* 6038 0 6.206076389e+00-1.027656068e-01* +* 1.056322500e+01 0 0 +GRID* 6039 0 6.280989583e+00-1.131693416e-01* +* 1.071948750e+01 0 0 +GRID* 6040 0 6.280989583e+00-1.006693416e-01* +* 1.071948750e+01 0 0 +GRID* 6041 0 6.355902778e+00-1.110730765e-01* +* 1.087575000e+01 0 0 +GRID* 6042 0 6.355902778e+00-9.857307648e-02* +* 1.087575000e+01 0 0 +GRID* 6043 0 6.206250000e+00 1.307061325e-01* +* 1.025070000e+01 0 0 +GRID* 6044 0 6.206250000e+00 1.182061325e-01* +* 1.025070000e+01 0 0 +GRID* 6045 0 6.278385417e+00 1.284039187e-01* +* 1.040696250e+01 0 0 +GRID* 6046 0 6.278385417e+00 1.159039187e-01* +* 1.040696250e+01 0 0 +GRID* 6047 0 6.350520833e+00 1.261017049e-01* +* 1.056322500e+01 0 0 +GRID* 6048 0 6.350520833e+00 1.136017049e-01* +* 1.056322500e+01 0 0 +GRID* 6049 0 6.422656250e+00 1.237994911e-01* +* 1.071948750e+01 0 0 +GRID* 6050 0 6.422656250e+00 1.112994911e-01* +* 1.071948750e+01 0 0 +GRID* 6051 0 6.494791667e+00 1.214972772e-01* +* 1.087575000e+01 0 0 +GRID* 6052 0 6.494791667e+00 1.089972772e-01* +* 1.087575000e+01 0 0 +GRID* 6053 0 6.206250000e+00-1.282087228e-01* +* 1.025070000e+01 0 0 +GRID* 6054 0 6.206250000e+00-1.157087228e-01* +* 1.025070000e+01 0 0 +GRID* 6055 0 6.278385417e+00-1.259477777e-01* +* 1.040696250e+01 0 0 +GRID* 6056 0 6.278385417e+00-1.134477777e-01* +* 1.040696250e+01 0 0 +GRID* 6057 0 6.350520833e+00-1.236868326e-01* +* 1.056322500e+01 0 0 +GRID* 6058 0 6.350520833e+00-1.111868326e-01* +* 1.056322500e+01 0 0 +GRID* 6059 0 6.422656250e+00-1.214258874e-01* +* 1.071948750e+01 0 0 +GRID* 6060 0 6.422656250e+00-1.089258874e-01* +* 1.071948750e+01 0 0 +GRID* 6061 0 6.494791667e+00-1.191649423e-01* +* 1.087575000e+01 0 0 +GRID* 6062 0 6.494791667e+00-1.066649423e-01* +* 1.087575000e+01 0 0 +GRID* 6063 0 6.356250000e+00 1.374445755e-01* +* 1.025070000e+01 0 0 +GRID* 6064 0 6.356250000e+00 1.249445755e-01* +* 1.025070000e+01 0 0 +GRID* 6065 0 6.425607639e+00 1.350240545e-01* +* 1.040696250e+01 0 0 +GRID* 6066 0 6.425607639e+00 1.225240545e-01* +* 1.040696250e+01 0 0 +GRID* 6067 0 6.494965278e+00 1.326035336e-01* +* 1.056322500e+01 0 0 +GRID* 6068 0 6.494965278e+00 1.201035336e-01* +* 1.056322500e+01 0 0 +GRID* 6069 0 6.564322917e+00 1.301830126e-01* +* 1.071948750e+01 0 0 +GRID* 6070 0 6.564322917e+00 1.176830126e-01* +* 1.071948750e+01 0 0 +GRID* 6071 0 6.633680556e+00 1.277624917e-01* +* 1.087575000e+01 0 0 +GRID* 6072 0 6.633680556e+00 1.152624917e-01* +* 1.087575000e+01 0 0 +GRID* 6073 0 6.356250000e+00-1.318018558e-01* +* 1.025070000e+01 0 0 +GRID* 6074 0 6.356250000e+00-1.193018558e-01* +* 1.025070000e+01 0 0 +GRID* 6075 0 6.425607639e+00-1.294868613e-01* +* 1.040696250e+01 0 0 +GRID* 6076 0 6.425607639e+00-1.169868613e-01* +* 1.040696250e+01 0 0 +GRID* 6077 0 6.494965278e+00-1.271718667e-01* +* 1.056322500e+01 0 0 +GRID* 6078 0 6.494965278e+00-1.146718667e-01* +* 1.056322500e+01 0 0 +GRID* 6079 0 6.564322917e+00-1.248568722e-01* +* 1.071948750e+01 0 0 +GRID* 6080 0 6.564322917e+00-1.123568722e-01* +* 1.071948750e+01 0 0 +GRID* 6081 0 6.633680556e+00-1.225418777e-01* +* 1.087575000e+01 0 0 +GRID* 6082 0 6.633680556e+00-1.100418777e-01* +* 1.087575000e+01 0 0 +GRID* 6083 0 6.506250000e+00 1.406417764e-01* +* 1.025070000e+01 0 0 +GRID* 6084 0 6.506250000e+00 1.281417764e-01* +* 1.025070000e+01 0 0 +GRID* 6085 0 6.572829861e+00 1.381784580e-01* +* 1.040696250e+01 0 0 +GRID* 6086 0 6.572829861e+00 1.256784580e-01* +* 1.040696250e+01 0 0 +GRID* 6087 0 6.639409722e+00 1.357151395e-01* +* 1.056322500e+01 0 0 +GRID* 6088 0 6.639409722e+00 1.232151395e-01* +* 1.056322500e+01 0 0 +GRID* 6089 0 6.705989583e+00 1.332518211e-01* +* 1.071948750e+01 0 0 +GRID* 6090 0 6.705989583e+00 1.207518211e-01* +* 1.071948750e+01 0 0 +GRID* 6091 0 6.772569444e+00 1.307885026e-01* +* 1.087575000e+01 0 0 +GRID* 6092 0 6.772569444e+00 1.182885026e-01* +* 1.087575000e+01 0 0 +GRID* 6093 0 6.506250000e+00-1.275788054e-01* +* 1.025070000e+01 0 0 +GRID* 6094 0 6.506250000e+00-1.150788054e-01* +* 1.025070000e+01 0 0 +GRID* 6095 0 6.572829861e+00-1.253789277e-01* +* 1.040696250e+01 0 0 +GRID* 6096 0 6.572829861e+00-1.128789277e-01* +* 1.040696250e+01 0 0 +GRID* 6097 0 6.639409722e+00-1.231790501e-01* +* 1.056322500e+01 0 0 +GRID* 6098 0 6.639409722e+00-1.106790501e-01* +* 1.056322500e+01 0 0 +GRID* 6099 0 6.705989583e+00-1.209791724e-01* +* 1.071948750e+01 0 0 +GRID* 6100 0 6.705989583e+00-1.084791724e-01* +* 1.071948750e+01 0 0 +GRID* 6101 0 6.772569444e+00-1.187792948e-01* +* 1.087575000e+01 0 0 +GRID* 6102 0 6.772569444e+00-1.062792948e-01* +* 1.087575000e+01 0 0 +GRID* 6103 0 6.656250000e+00 1.400249542e-01* +* 1.025070000e+01 0 0 +GRID* 6104 0 6.656250000e+00 1.275249542e-01* +* 1.025070000e+01 0 0 +GRID* 6105 0 6.720052083e+00 1.376005565e-01* +* 1.040696250e+01 0 0 +GRID* 6106 0 6.720052083e+00 1.251005565e-01* +* 1.040696250e+01 0 0 +GRID* 6107 0 6.783854167e+00 1.351761588e-01* +* 1.056322500e+01 0 0 +GRID* 6108 0 6.783854167e+00 1.226761588e-01* +* 1.056322500e+01 0 0 +GRID* 6109 0 6.847656250e+00 1.327517610e-01* +* 1.071948750e+01 0 0 +GRID* 6110 0 6.847656250e+00 1.202517610e-01* +* 1.071948750e+01 0 0 +GRID* 6111 0 6.911458333e+00 1.303273633e-01* +* 1.087575000e+01 0 0 +GRID* 6112 0 6.911458333e+00 1.178273633e-01* +* 1.087575000e+01 0 0 +GRID* 6113 0 6.656250000e+00-1.159043217e-01* +* 1.025070000e+01 0 0 +GRID* 6114 0 6.656250000e+00-1.034043217e-01* +* 1.025070000e+01 0 0 +GRID* 6115 0 6.720052083e+00-1.139653206e-01* +* 1.040696250e+01 0 0 +GRID* 6116 0 6.720052083e+00-1.014653206e-01* +* 1.040696250e+01 0 0 +GRID* 6117 0 6.783854167e+00-1.120263195e-01* +* 1.056322500e+01 0 0 +GRID* 6118 0 6.783854167e+00-9.952631948e-02* +* 1.056322500e+01 0 0 +GRID* 6119 0 6.847656250e+00-1.100873184e-01* +* 1.071948750e+01 0 0 +GRID* 6120 0 6.847656250e+00-9.758731838e-02* +* 1.071948750e+01 0 0 +GRID* 6121 0 6.911458333e+00-1.081483173e-01* +* 1.087575000e+01 0 0 +GRID* 6122 0 6.911458333e+00-9.564831728e-02* +* 1.087575000e+01 0 0 +GRID* 6123 0 6.806250000e+00 1.353595871e-01* +* 1.025070000e+01 0 0 +GRID* 6124 0 6.806250000e+00 1.228595871e-01* +* 1.025070000e+01 0 0 +GRID* 6125 0 6.867274306e+00 1.330610784e-01* +* 1.040696250e+01 0 0 +GRID* 6126 0 6.867274306e+00 1.205610784e-01* +* 1.040696250e+01 0 0 +GRID* 6127 0 6.928298611e+00 1.307625697e-01* +* 1.056322500e+01 0 0 +GRID* 6128 0 6.928298611e+00 1.182625697e-01* +* 1.056322500e+01 0 0 +GRID* 6129 0 6.989322917e+00 1.284640610e-01* +* 1.071948750e+01 0 0 +GRID* 6130 0 6.989322917e+00 1.159640610e-01* +* 1.071948750e+01 0 0 +GRID* 6131 0 7.050347222e+00 1.261655523e-01* +* 1.087575000e+01 0 0 +GRID* 6132 0 7.050347222e+00 1.136655523e-01* +* 1.087575000e+01 0 0 +GRID* 6133 0 6.806250000e+00-9.898038866e-02* +* 1.025070000e+01 0 0 +GRID* 6134 0 6.806250000e+00-8.648038866e-02* +* 1.025070000e+01 0 0 +GRID* 6135 0 6.867274306e+00-9.739464577e-02* +* 1.040696250e+01 0 0 +GRID* 6136 0 6.867274306e+00-8.489464577e-02* +* 1.040696250e+01 0 0 +GRID* 6137 0 6.928298611e+00-9.580890287e-02* +* 1.056322500e+01 0 0 +GRID* 6138 0 6.928298611e+00-8.330890287e-02* +* 1.056322500e+01 0 0 +GRID* 6139 0 6.989322917e+00-9.422315998e-02* +* 1.071948750e+01 0 0 +GRID* 6140 0 6.989322917e+00-8.172315998e-02* +* 1.071948750e+01 0 0 +GRID* 6141 0 7.050347222e+00-9.263741709e-02* +* 1.087575000e+01 0 0 +GRID* 6142 0 7.050347222e+00-8.013741709e-02* +* 1.087575000e+01 0 0 +GRID* 6143 0 6.956250000e+00 1.265222590e-01* +* 1.025070000e+01 0 0 +GRID* 6144 0 6.956250000e+00 1.140222590e-01* +* 1.025070000e+01 0 0 +GRID* 6145 0 7.014496528e+00 1.244378497e-01* +* 1.040696250e+01 0 0 +GRID* 6146 0 7.014496528e+00 1.119378497e-01* +* 1.040696250e+01 0 0 +GRID* 6147 0 7.072743056e+00 1.223534404e-01* +* 1.056322500e+01 0 0 +GRID* 6148 0 7.072743056e+00 1.098534404e-01* +* 1.056322500e+01 0 0 +GRID* 6149 0 7.130989583e+00 1.202690310e-01* +* 1.071948750e+01 0 0 +GRID* 6150 0 7.130989583e+00 1.077690310e-01* +* 1.071948750e+01 0 0 +GRID* 6151 0 7.189236111e+00 1.181846217e-01* +* 1.087575000e+01 0 0 +GRID* 6152 0 7.189236111e+00 1.056846217e-01* +* 1.087575000e+01 0 0 +GRID* 6153 0 6.956250000e+00-7.881603499e-02* +* 1.025070000e+01 0 0 +GRID* 6154 0 6.956250000e+00-6.631603499e-02* +* 1.025070000e+01 0 0 +GRID* 6155 0 7.014496528e+00-7.763259812e-02* +* 1.040696250e+01 0 0 +GRID* 6156 0 7.014496528e+00-6.513259812e-02* +* 1.040696250e+01 0 0 +GRID* 6157 0 7.072743056e+00-7.644916125e-02* +* 1.056322500e+01 0 0 +GRID* 6158 0 7.072743056e+00-6.394916125e-02* +* 1.056322500e+01 0 0 +GRID* 6159 0 7.130989583e+00-7.526572439e-02* +* 1.071948750e+01 0 0 +GRID* 6160 0 7.130989583e+00-6.276572439e-02* +* 1.071948750e+01 0 0 +GRID* 6161 0 7.189236111e+00-7.408228752e-02* +* 1.087575000e+01 0 0 +GRID* 6162 0 7.189236111e+00-6.158228752e-02* +* 1.087575000e+01 0 0 +GRID* 6163 0 6.226649306e+00 1.003649363e-01* +* 1.103201250e+01 0 0 +GRID* 6164 0 6.305729167e+00 9.874297367e-02* +* 1.118827500e+01 0 0 +GRID* 6165 0 6.384809028e+00 9.712101106e-02* +* 1.134453750e+01 0 0 +GRID* 6166 0 6.463888889e+00 9.549904845e-02* +* 1.150080000e+01 0 0 +GRID* 6167 0 6.294704861e+00 1.094102858e-01* +* 1.103201250e+01 0 0 +GRID* 6168 0 6.372395833e+00 1.075887060e-01* +* 1.118827500e+01 0 0 +GRID* 6169 0 6.450086806e+00 1.057671263e-01* +* 1.134453750e+01 0 0 +GRID* 6170 0 6.527777778e+00 1.039455465e-01* +* 1.150080000e+01 0 0 +GRID* 6171 0 6.226649306e+00-1.006258719e-01* +* 1.103201250e+01 0 0 +GRID* 6172 0 6.294704861e+00-1.092941098e-01* +* 1.103201250e+01 0 0 +GRID* 6173 0 6.305729167e+00-9.899559193e-02* +* 1.118827500e+01 0 0 +GRID* 6174 0 6.372395833e+00-1.074709089e-01* +* 1.118827500e+01 0 0 +GRID* 6175 0 6.384809028e+00-9.736531200e-02* +* 1.134453750e+01 0 0 +GRID* 6176 0 6.450086806e+00-1.056477080e-01* +* 1.134453750e+01 0 0 +GRID* 6177 0 6.463888889e+00-9.573503207e-02* +* 1.150080000e+01 0 0 +GRID* 6178 0 6.527777778e+00-1.038245071e-01* +* 1.150080000e+01 0 0 +GRID* 6179 0 6.362760417e+00 1.166824836e-01* +* 1.103201250e+01 0 0 +GRID* 6180 0 6.439062500e+00 1.146938517e-01* +* 1.118827500e+01 0 0 +GRID* 6181 0 6.515364583e+00 1.127052198e-01* +* 1.134453750e+01 0 0 +GRID* 6182 0 6.591666667e+00 1.107165879e-01* +* 1.150080000e+01 0 0 +GRID* 6183 0 6.430815972e+00 1.225935131e-01* +* 1.103201250e+01 0 0 +GRID* 6184 0 6.505729167e+00 1.204797615e-01* +* 1.118827500e+01 0 0 +GRID* 6185 0 6.580642361e+00 1.183660100e-01* +* 1.134453750e+01 0 0 +GRID* 6186 0 6.655555556e+00 1.162522584e-01* +* 1.150080000e+01 0 0 +GRID* 6187 0 6.362760417e+00-1.160679243e-01* +* 1.103201250e+01 0 0 +GRID* 6188 0 6.430815972e+00-1.214768113e-01* +* 1.103201250e+01 0 0 +GRID* 6189 0 6.439062500e+00-1.140867529e-01* +* 1.118827500e+01 0 0 +GRID* 6190 0 6.505729167e+00-1.193805462e-01* +* 1.118827500e+01 0 0 +GRID* 6191 0 6.515364583e+00-1.121055814e-01* +* 1.134453750e+01 0 0 +GRID* 6192 0 6.580642361e+00-1.172842811e-01* +* 1.134453750e+01 0 0 +GRID* 6193 0 6.591666667e+00-1.101244100e-01* +* 1.150080000e+01 0 0 +GRID* 6194 0 6.655555556e+00-1.151880159e-01* +* 1.150080000e+01 0 0 +GRID* 6195 0 6.498871528e+00 1.275188023e-01* +* 1.103201250e+01 0 0 +GRID* 6196 0 6.572395833e+00 1.253015748e-01* +* 1.118827500e+01 0 0 +GRID* 6197 0 6.645920139e+00 1.230843474e-01* +* 1.134453750e+01 0 0 +GRID* 6198 0 6.719444444e+00 1.208671199e-01* +* 1.150080000e+01 0 0 +GRID* 6199 0 6.566927083e+00 1.316950634e-01* +* 1.103201250e+01 0 0 +GRID* 6200 0 6.639062500e+00 1.293928496e-01* +* 1.118827500e+01 0 0 +GRID* 6201 0 6.711197917e+00 1.270906358e-01* +* 1.134453750e+01 0 0 +GRID* 6202 0 6.783333333e+00 1.247884219e-01* +* 1.150080000e+01 0 0 +GRID* 6203 0 6.498871528e+00-1.258638274e-01* +* 1.103201250e+01 0 0 +GRID* 6204 0 6.566927083e+00-1.294039972e-01* +* 1.103201250e+01 0 0 +GRID* 6205 0 6.572395833e+00-1.236748635e-01* +* 1.118827500e+01 0 0 +GRID* 6206 0 6.639062500e+00-1.271430521e-01* +* 1.118827500e+01 0 0 +GRID* 6207 0 6.645920139e+00-1.214858997e-01* +* 1.134453750e+01 0 0 +GRID* 6208 0 6.711197917e+00-1.248821069e-01* +* 1.134453750e+01 0 0 +GRID* 6209 0 6.719444444e+00-1.192969358e-01* +* 1.150080000e+01 0 0 +GRID* 6210 0 6.783333333e+00-1.226211618e-01* +* 1.150080000e+01 0 0 +GRID* 6211 0 6.634982639e+00 1.351633921e-01* +* 1.103201250e+01 0 0 +GRID* 6212 0 6.705729167e+00 1.327940231e-01* +* 1.118827500e+01 0 0 +GRID* 6213 0 6.776475694e+00 1.304246541e-01* +* 1.134453750e+01 0 0 +GRID* 6214 0 6.847222222e+00 1.280552851e-01* +* 1.150080000e+01 0 0 +GRID* 6215 0 6.703038194e+00 1.378419707e-01* +* 1.103201250e+01 0 0 +GRID* 6216 0 6.772395833e+00 1.354214498e-01* +* 1.118827500e+01 0 0 +GRID* 6217 0 6.841753472e+00 1.330009289e-01* +* 1.134453750e+01 0 0 +GRID* 6218 0 6.911111111e+00 1.305804079e-01* +* 1.150080000e+01 0 0 +GRID* 6219 0 6.634982639e+00-1.318154430e-01* +* 1.103201250e+01 0 0 +GRID* 6220 0 6.703038194e+00-1.327268831e-01* +* 1.103201250e+01 0 0 +GRID* 6221 0 6.705729167e+00-1.295116435e-01* +* 1.118827500e+01 0 0 +GRID* 6222 0 6.772395833e+00-1.304118886e-01* +* 1.118827500e+01 0 0 +GRID* 6223 0 6.776475694e+00-1.272078439e-01* +* 1.134453750e+01 0 0 +GRID* 6224 0 6.841753472e+00-1.280968940e-01* +* 1.134453750e+01 0 0 +GRID* 6225 0 6.847222222e+00-1.249040444e-01* +* 1.150080000e+01 0 0 +GRID* 6226 0 6.911111111e+00-1.257818995e-01* +* 1.150080000e+01 0 0 +GRID* 6227 0 6.771093750e+00 1.397774859e-01* +* 1.103201250e+01 0 0 +GRID* 6228 0 6.839062500e+00 1.373282222e-01* +* 1.118827500e+01 0 0 +GRID* 6229 0 6.907031250e+00 1.348789584e-01* +* 1.134453750e+01 0 0 +GRID* 6230 0 6.975000000e+00 1.324296947e-01* +* 1.150080000e+01 0 0 +GRID* 6231 0 6.839149306e+00 1.408251842e-01* +* 1.103201250e+01 0 0 +GRID* 6232 0 6.905729167e+00 1.383618658e-01* +* 1.118827500e+01 0 0 +GRID* 6233 0 6.972309028e+00 1.358985473e-01* +* 1.134453750e+01 0 0 +GRID* 6234 0 7.038888889e+00 1.334352289e-01* +* 1.150080000e+01 0 0 +GRID* 6235 0 6.771093750e+00-1.319072025e-01* +* 1.103201250e+01 0 0 +GRID* 6236 0 6.839149306e+00-1.290794171e-01* +* 1.103201250e+01 0 0 +GRID* 6237 0 6.839062500e+00-1.296341402e-01* +* 1.118827500e+01 0 0 +GRID* 6238 0 6.905729167e+00-1.268795395e-01* +* 1.118827500e+01 0 0 +GRID* 6239 0 6.907031250e+00-1.273610779e-01* +* 1.134453750e+01 0 0 +GRID* 6240 0 6.972309028e+00-1.246796618e-01* +* 1.134453750e+01 0 0 +GRID* 6241 0 6.975000000e+00-1.250880156e-01* +* 1.150080000e+01 0 0 +GRID* 6242 0 7.038888889e+00-1.224797842e-01* +* 1.150080000e+01 0 0 +GRID* 6243 0 6.907204861e+00 1.411023167e-01* +* 1.103201250e+01 0 0 +GRID* 6244 0 6.972395833e+00 1.386462290e-01* +* 1.118827500e+01 0 0 +GRID* 6245 0 7.037586806e+00 1.361858498e-01* +* 1.134453750e+01 0 0 +GRID* 6246 0 7.102777778e+00 1.337254706e-01* +* 1.150080000e+01 0 0 +GRID* 6247 0 6.975260417e+00 1.404029655e-01* +* 1.103201250e+01 0 0 +GRID* 6248 0 7.039062500e+00 1.379785678e-01* +* 1.118827500e+01 0 0 +GRID* 6249 0 7.102864583e+00 1.355541700e-01* +* 1.134453750e+01 0 0 +GRID* 6250 0 7.166666667e+00 1.331297723e-01* +* 1.150080000e+01 0 0 +GRID* 6251 0 6.907204861e+00-1.246819586e-01* +* 1.103201250e+01 0 0 +GRID* 6252 0 6.975260417e+00-1.187093162e-01* +* 1.103201250e+01 0 0 +GRID* 6253 0 6.972395833e+00-1.226046652e-01* +* 1.118827500e+01 0 0 +GRID* 6254 0 7.039062500e+00-1.167703151e-01* +* 1.118827500e+01 0 0 +GRID* 6255 0 7.037586806e+00-1.205273717e-01* +* 1.134453750e+01 0 0 +GRID* 6256 0 7.102864583e+00-1.148313140e-01* +* 1.134453750e+01 0 0 +GRID* 6257 0 7.102777778e+00-1.184379329e-01* +* 1.150080000e+01 0 0 +GRID* 6258 0 7.166666667e+00-1.128923129e-01* +* 1.150080000e+01 0 0 +GRID* 6259 0 7.043315972e+00 1.388896329e-01* +* 1.103201250e+01 0 0 +GRID* 6260 0 7.105729167e+00 1.365091503e-01* +* 1.118827500e+01 0 0 +GRID* 6261 0 7.168142361e+00 1.341286677e-01* +* 1.134453750e+01 0 0 +GRID* 6262 0 7.230555556e+00 1.317481851e-01* +* 1.150080000e+01 0 0 +GRID* 6263 0 7.111371528e+00 1.363670436e-01* +* 1.103201250e+01 0 0 +GRID* 6264 0 7.172395833e+00 1.340685349e-01* +* 1.118827500e+01 0 0 +GRID* 6265 0 7.233420139e+00 1.317700261e-01* +* 1.134453750e+01 0 0 +GRID* 6266 0 7.294444444e+00 1.294715174e-01* +* 1.150080000e+01 0 0 +GRID* 6267 0 7.043315972e+00-1.116605915e-01* +* 1.103201250e+01 0 0 +GRID* 6268 0 7.111371528e+00-1.035516742e-01* +* 1.103201250e+01 0 0 +GRID* 6269 0 7.105729167e+00-1.098815750e-01* +* 1.118827500e+01 0 0 +GRID* 6270 0 7.172395833e+00-1.019659313e-01* +* 1.118827500e+01 0 0 +GRID* 6271 0 7.168142361e+00-1.081021617e-01* +* 1.134453750e+01 0 0 +GRID* 6272 0 7.233420139e+00-1.003801884e-01* +* 1.134453750e+01 0 0 +GRID* 6273 0 7.230555556e+00-1.063227484e-01* +* 1.150080000e+01 0 0 +GRID* 6274 0 7.294444444e+00-9.879444552e-02* +* 1.150080000e+01 0 0 +GRID* 6275 0 7.179427083e+00 1.329773930e-01* +* 1.103201250e+01 0 0 +GRID* 6276 0 7.239062500e+00 1.307652901e-01* +* 1.118827500e+01 0 0 +GRID* 6277 0 7.298697917e+00 1.285531872e-01* +* 1.134453750e+01 0 0 +GRID* 6278 0 7.358333333e+00 1.263410843e-01* +* 1.150080000e+01 0 0 +GRID* 6279 0 7.247482639e+00 1.286002124e-01* +* 1.103201250e+01 0 0 +GRID* 6280 0 7.305729167e+00 1.265158031e-01* +* 1.118827500e+01 0 0 +GRID* 6281 0 7.363975694e+00 1.244313937e-01* +* 1.134453750e+01 0 0 +GRID* 6282 0 7.422222222e+00 1.223469844e-01* +* 1.150080000e+01 0 0 +GRID* 6283 0 7.179427083e+00-9.477781956e-02* +* 1.103201250e+01 0 0 +GRID* 6284 0 7.247482639e+00-8.539885065e-02* +* 1.103201250e+01 0 0 +GRID* 6285 0 7.239062500e+00-9.338344541e-02* +* 1.118827500e+01 0 0 +GRID* 6286 0 7.305729167e+00-8.421541378e-02* +* 1.118827500e+01 0 0 +GRID* 6287 0 7.298697917e+00-9.198907126e-02* +* 1.134453750e+01 0 0 +GRID* 6288 0 7.363975694e+00-8.303197691e-02* +* 1.134453750e+01 0 0 +GRID* 6289 0 7.358333333e+00-9.059469711e-02* +* 1.150080000e+01 0 0 +GRID* 6290 0 7.422222222e+00-8.184854004e-02* +* 1.150080000e+01 0 0 +GRID* 6291 0 7.315538194e+00 1.233244477e-01* +* 1.103201250e+01 0 0 +GRID* 6292 0 7.372395833e+00 1.213688637e-01* +* 1.118827500e+01 0 0 +GRID* 6293 0 7.429253472e+00 1.194132798e-01* +* 1.134453750e+01 0 0 +GRID* 6294 0 7.486111111e+00 1.174576959e-01* +* 1.150080000e+01 0 0 +GRID* 6295 0 7.315538194e+00-7.568403600e-02* +* 1.103201250e+01 0 0 +GRID* 6296 0 7.372395833e+00-7.470536018e-02* +* 1.118827500e+01 0 0 +GRID* 6297 0 7.429253472e+00-7.372668435e-02* +* 1.134453750e+01 0 0 +GRID* 6298 0 7.486111111e+00-7.274800853e-02* +* 1.150080000e+01 0 0 +GRID* 6299 0 6.294704861e+00 9.691028578e-02* +* 1.103201250e+01 0 0 +GRID* 6300 0 6.294704861e+00 8.441028578e-02* +* 1.103201250e+01 0 0 +GRID* 6301 0 6.372395833e+00 9.508870603e-02* +* 1.118827500e+01 0 0 +GRID* 6302 0 6.372395833e+00 8.258870603e-02* +* 1.118827500e+01 0 0 +GRID* 6303 0 6.450086806e+00 9.326712629e-02* +* 1.134453750e+01 0 0 +GRID* 6304 0 6.450086806e+00 8.076712629e-02* +* 1.134453750e+01 0 0 +GRID* 6305 0 6.527777778e+00 9.144554654e-02* +* 1.150080000e+01 0 0 +GRID* 6306 0 6.527777778e+00 7.894554654e-02* +* 1.150080000e+01 0 0 +GRID* 6307 0 6.605468750e+00 8.962396679e-02* +* 1.165706250e+01 0 0 +GRID* 6308 0 6.605468750e+00 7.712396679e-02* +* 1.165706250e+01 0 0 +GRID* 6309 0 6.294704861e+00-9.679410980e-02* +* 1.103201250e+01 0 0 +GRID* 6310 0 6.294704861e+00-8.429410980e-02* +* 1.103201250e+01 0 0 +GRID* 6311 0 6.372395833e+00-9.497090889e-02* +* 1.118827500e+01 0 0 +GRID* 6312 0 6.372395833e+00-8.247090889e-02* +* 1.118827500e+01 0 0 +GRID* 6313 0 6.450086806e+00-9.314770797e-02* +* 1.134453750e+01 0 0 +GRID* 6314 0 6.450086806e+00-8.064770797e-02* +* 1.134453750e+01 0 0 +GRID* 6315 0 6.527777778e+00-9.132450705e-02* +* 1.150080000e+01 0 0 +GRID* 6316 0 6.527777778e+00-7.882450705e-02* +* 1.150080000e+01 0 0 +GRID* 6317 0 6.605468750e+00-8.950130613e-02* +* 1.165706250e+01 0 0 +GRID* 6318 0 6.605468750e+00-7.700130613e-02* +* 1.165706250e+01 0 0 +GRID* 6319 0 6.430815972e+00 1.100935131e-01* +* 1.103201250e+01 0 0 +GRID* 6320 0 6.430815972e+00 9.759351308e-02* +* 1.103201250e+01 0 0 +GRID* 6321 0 6.505729167e+00 1.079797615e-01* +* 1.118827500e+01 0 0 +GRID* 6322 0 6.505729167e+00 9.547976153e-02* +* 1.118827500e+01 0 0 +GRID* 6323 0 6.580642361e+00 1.058660100e-01* +* 1.134453750e+01 0 0 +GRID* 6324 0 6.580642361e+00 9.336600998e-02* +* 1.134453750e+01 0 0 +GRID* 6325 0 6.655555556e+00 1.037522584e-01* +* 1.150080000e+01 0 0 +GRID* 6326 0 6.655555556e+00 9.125225843e-02* +* 1.150080000e+01 0 0 +GRID* 6327 0 6.730468750e+00 1.016385069e-01* +* 1.165706250e+01 0 0 +GRID* 6328 0 6.730468750e+00 8.913850688e-02* +* 1.165706250e+01 0 0 +GRID* 6329 0 6.430815972e+00-1.089768113e-01* +* 1.103201250e+01 0 0 +GRID* 6330 0 6.430815972e+00-9.647681134e-02* +* 1.103201250e+01 0 0 +GRID* 6331 0 6.505729167e+00-1.068805462e-01* +* 1.118827500e+01 0 0 +GRID* 6332 0 6.505729167e+00-9.438054619e-02* +* 1.118827500e+01 0 0 +GRID* 6333 0 6.580642361e+00-1.047842811e-01* +* 1.134453750e+01 0 0 +GRID* 6334 0 6.580642361e+00-9.228428105e-02* +* 1.134453750e+01 0 0 +GRID* 6335 0 6.655555556e+00-1.026880159e-01* +* 1.150080000e+01 0 0 +GRID* 6336 0 6.655555556e+00-9.018801591e-02* +* 1.150080000e+01 0 0 +GRID* 6337 0 6.730468750e+00-1.005917508e-01* +* 1.165706250e+01 0 0 +GRID* 6338 0 6.730468750e+00-8.809175077e-02* +* 1.165706250e+01 0 0 +GRID* 6339 0 6.566927083e+00 1.191950634e-01* +* 1.103201250e+01 0 0 +GRID* 6340 0 6.566927083e+00 1.066950634e-01* +* 1.103201250e+01 0 0 +GRID* 6341 0 6.639062500e+00 1.168928496e-01* +* 1.118827500e+01 0 0 +GRID* 6342 0 6.639062500e+00 1.043928496e-01* +* 1.118827500e+01 0 0 +GRID* 6343 0 6.711197917e+00 1.145906358e-01* +* 1.134453750e+01 0 0 +GRID* 6344 0 6.711197917e+00 1.020906358e-01* +* 1.134453750e+01 0 0 +GRID* 6345 0 6.783333333e+00 1.122884219e-01* +* 1.150080000e+01 0 0 +GRID* 6346 0 6.783333333e+00 9.978842195e-02* +* 1.150080000e+01 0 0 +GRID* 6347 0 6.855468750e+00 1.099862081e-01* +* 1.165706250e+01 0 0 +GRID* 6348 0 6.855468750e+00 9.748620812e-02* +* 1.165706250e+01 0 0 +GRID* 6349 0 6.566927083e+00-1.169039972e-01* +* 1.103201250e+01 0 0 +GRID* 6350 0 6.566927083e+00-1.044039972e-01* +* 1.103201250e+01 0 0 +GRID* 6351 0 6.639062500e+00-1.146430521e-01* +* 1.118827500e+01 0 0 +GRID* 6352 0 6.639062500e+00-1.021430521e-01* +* 1.118827500e+01 0 0 +GRID* 6353 0 6.711197917e+00-1.123821069e-01* +* 1.134453750e+01 0 0 +GRID* 6354 0 6.711197917e+00-9.988210694e-02* +* 1.134453750e+01 0 0 +GRID* 6355 0 6.783333333e+00-1.101211618e-01* +* 1.150080000e+01 0 0 +GRID* 6356 0 6.783333333e+00-9.762116181e-02* +* 1.150080000e+01 0 0 +GRID* 6357 0 6.855468750e+00-1.078602167e-01* +* 1.165706250e+01 0 0 +GRID* 6358 0 6.855468750e+00-9.536021669e-02* +* 1.165706250e+01 0 0 +GRID* 6359 0 6.703038194e+00 1.253419707e-01* +* 1.103201250e+01 0 0 +GRID* 6360 0 6.703038194e+00 1.128419707e-01* +* 1.103201250e+01 0 0 +GRID* 6361 0 6.772395833e+00 1.229214498e-01* +* 1.118827500e+01 0 0 +GRID* 6362 0 6.772395833e+00 1.104214498e-01* +* 1.118827500e+01 0 0 +GRID* 6363 0 6.841753472e+00 1.205009289e-01* +* 1.134453750e+01 0 0 +GRID* 6364 0 6.841753472e+00 1.080009289e-01* +* 1.134453750e+01 0 0 +GRID* 6365 0 6.911111111e+00 1.180804079e-01* +* 1.150080000e+01 0 0 +GRID* 6366 0 6.911111111e+00 1.055804079e-01* +* 1.150080000e+01 0 0 +GRID* 6367 0 6.980468750e+00 1.156598870e-01* +* 1.165706250e+01 0 0 +GRID* 6368 0 6.980468750e+00 1.031598870e-01* +* 1.165706250e+01 0 0 +GRID* 6369 0 6.703038194e+00-1.202268831e-01* +* 1.103201250e+01 0 0 +GRID* 6370 0 6.703038194e+00-1.077268831e-01* +* 1.103201250e+01 0 0 +GRID* 6371 0 6.772395833e+00-1.179118886e-01* +* 1.118827500e+01 0 0 +GRID* 6372 0 6.772395833e+00-1.054118886e-01* +* 1.118827500e+01 0 0 +GRID* 6373 0 6.841753472e+00-1.155968940e-01* +* 1.134453750e+01 0 0 +GRID* 6374 0 6.841753472e+00-1.030968940e-01* +* 1.134453750e+01 0 0 +GRID* 6375 0 6.911111111e+00-1.132818995e-01* +* 1.150080000e+01 0 0 +GRID* 6376 0 6.911111111e+00-1.007818995e-01* +* 1.150080000e+01 0 0 +GRID* 6377 0 6.980468750e+00-1.109669050e-01* +* 1.165706250e+01 0 0 +GRID* 6378 0 6.980468750e+00-9.846690497e-02* +* 1.165706250e+01 0 0 +GRID* 6379 0 6.839149306e+00 1.283251842e-01* +* 1.103201250e+01 0 0 +GRID* 6380 0 6.839149306e+00 1.158251842e-01* +* 1.103201250e+01 0 0 +GRID* 6381 0 6.905729167e+00 1.258618658e-01* +* 1.118827500e+01 0 0 +GRID* 6382 0 6.905729167e+00 1.133618658e-01* +* 1.118827500e+01 0 0 +GRID* 6383 0 6.972309028e+00 1.233985473e-01* +* 1.134453750e+01 0 0 +GRID* 6384 0 6.972309028e+00 1.108985473e-01* +* 1.134453750e+01 0 0 +GRID* 6385 0 7.038888889e+00 1.209352289e-01* +* 1.150080000e+01 0 0 +GRID* 6386 0 7.038888889e+00 1.084352289e-01* +* 1.150080000e+01 0 0 +GRID* 6387 0 7.105468750e+00 1.184719104e-01* +* 1.165706250e+01 0 0 +GRID* 6388 0 7.105468750e+00 1.059719104e-01* +* 1.165706250e+01 0 0 +GRID* 6389 0 6.839149306e+00-1.165794171e-01* +* 1.103201250e+01 0 0 +GRID* 6390 0 6.839149306e+00-1.040794171e-01* +* 1.103201250e+01 0 0 +GRID* 6391 0 6.905729167e+00-1.143795395e-01* +* 1.118827500e+01 0 0 +GRID* 6392 0 6.905729167e+00-1.018795395e-01* +* 1.118827500e+01 0 0 +GRID* 6393 0 6.972309028e+00-1.121796618e-01* +* 1.134453750e+01 0 0 +GRID* 6394 0 6.972309028e+00-9.967966185e-02* +* 1.134453750e+01 0 0 +GRID* 6395 0 7.038888889e+00-1.099797842e-01* +* 1.150080000e+01 0 0 +GRID* 6396 0 7.038888889e+00-9.747978420e-02* +* 1.150080000e+01 0 0 +GRID* 6397 0 7.105468750e+00-1.077799066e-01* +* 1.165706250e+01 0 0 +GRID* 6398 0 7.105468750e+00-9.527990655e-02* +* 1.165706250e+01 0 0 +GRID* 6399 0 6.975260417e+00 1.279029655e-01* +* 1.103201250e+01 0 0 +GRID* 6400 0 6.975260417e+00 1.154029655e-01* +* 1.103201250e+01 0 0 +GRID* 6401 0 7.039062500e+00 1.254785678e-01* +* 1.118827500e+01 0 0 +GRID* 6402 0 7.039062500e+00 1.129785678e-01* +* 1.118827500e+01 0 0 +GRID* 6403 0 7.102864583e+00 1.230541700e-01* +* 1.134453750e+01 0 0 +GRID* 6404 0 7.102864583e+00 1.105541700e-01* +* 1.134453750e+01 0 0 +GRID* 6405 0 7.166666667e+00 1.206297723e-01* +* 1.150080000e+01 0 0 +GRID* 6406 0 7.166666667e+00 1.081297723e-01* +* 1.150080000e+01 0 0 +GRID* 6407 0 7.230468750e+00 1.182053745e-01* +* 1.165706250e+01 0 0 +GRID* 6408 0 7.230468750e+00 1.057053745e-01* +* 1.165706250e+01 0 0 +GRID* 6409 0 6.975260417e+00-1.062093162e-01* +* 1.103201250e+01 0 0 +GRID* 6410 0 6.975260417e+00-9.370931618e-02* +* 1.103201250e+01 0 0 +GRID* 6411 0 7.039062500e+00-1.042703151e-01* +* 1.118827500e+01 0 0 +GRID* 6412 0 7.039062500e+00-9.177031508e-02* +* 1.118827500e+01 0 0 +GRID* 6413 0 7.102864583e+00-1.023313140e-01* +* 1.134453750e+01 0 0 +GRID* 6414 0 7.102864583e+00-8.983131398e-02* +* 1.134453750e+01 0 0 +GRID* 6415 0 7.166666667e+00-1.003923129e-01* +* 1.150080000e+01 0 0 +GRID* 6416 0 7.166666667e+00-8.789231288e-02* +* 1.150080000e+01 0 0 +GRID* 6417 0 7.230468750e+00-9.845331178e-02* +* 1.165706250e+01 0 0 +GRID* 6418 0 7.230468750e+00-8.595331178e-02* +* 1.165706250e+01 0 0 +GRID* 6419 0 7.111371528e+00 1.238670436e-01* +* 1.103201250e+01 0 0 +GRID* 6420 0 7.111371528e+00 1.113670436e-01* +* 1.103201250e+01 0 0 +GRID* 6421 0 7.172395833e+00 1.215685349e-01* +* 1.118827500e+01 0 0 +GRID* 6422 0 7.172395833e+00 1.090685349e-01* +* 1.118827500e+01 0 0 +GRID* 6423 0 7.233420139e+00 1.192700261e-01* +* 1.134453750e+01 0 0 +GRID* 6424 0 7.233420139e+00 1.067700261e-01* +* 1.134453750e+01 0 0 +GRID* 6425 0 7.294444444e+00 1.169715174e-01* +* 1.150080000e+01 0 0 +GRID* 6426 0 7.294444444e+00 1.044715174e-01* +* 1.150080000e+01 0 0 +GRID* 6427 0 7.355468750e+00 1.146730087e-01* +* 1.165706250e+01 0 0 +GRID* 6428 0 7.355468750e+00 1.021730087e-01* +* 1.165706250e+01 0 0 +GRID* 6429 0 7.111371528e+00-9.105167420e-02* +* 1.103201250e+01 0 0 +GRID* 6430 0 7.111371528e+00-7.855167420e-02* +* 1.103201250e+01 0 0 +GRID* 6431 0 7.172395833e+00-8.946593131e-02* +* 1.118827500e+01 0 0 +GRID* 6432 0 7.172395833e+00-7.696593131e-02* +* 1.118827500e+01 0 0 +GRID* 6433 0 7.233420139e+00-8.788018842e-02* +* 1.134453750e+01 0 0 +GRID* 6434 0 7.233420139e+00-7.538018842e-02* +* 1.134453750e+01 0 0 +GRID* 6435 0 7.294444444e+00-8.629444552e-02* +* 1.150080000e+01 0 0 +GRID* 6436 0 7.294444444e+00-7.379444552e-02* +* 1.150080000e+01 0 0 +GRID* 6437 0 7.355468750e+00-8.470870263e-02* +* 1.165706250e+01 0 0 +GRID* 6438 0 7.355468750e+00-7.220870263e-02* +* 1.165706250e+01 0 0 +GRID* 6439 0 7.247482639e+00 1.161002124e-01* +* 1.103201250e+01 0 0 +GRID* 6440 0 7.247482639e+00 1.036002124e-01* +* 1.103201250e+01 0 0 +GRID* 6441 0 7.305729167e+00 1.140158031e-01* +* 1.118827500e+01 0 0 +GRID* 6442 0 7.305729167e+00 1.015158031e-01* +* 1.118827500e+01 0 0 +GRID* 6443 0 7.363975694e+00 1.119313937e-01* +* 1.134453750e+01 0 0 +GRID* 6444 0 7.363975694e+00 9.943139373e-02* +* 1.134453750e+01 0 0 +GRID* 6445 0 7.422222222e+00 1.098469844e-01* +* 1.150080000e+01 0 0 +GRID* 6446 0 7.422222222e+00 9.734698440e-02* +* 1.150080000e+01 0 0 +GRID* 6447 0 7.480468750e+00 1.077625751e-01* +* 1.165706250e+01 0 0 +GRID* 6448 0 7.480468750e+00 9.526257508e-02* +* 1.165706250e+01 0 0 +GRID* 6449 0 7.247482639e+00-7.289885065e-02* +* 1.103201250e+01 0 0 +GRID* 6450 0 7.247482639e+00-6.039885065e-02* +* 1.103201250e+01 0 0 +GRID* 6451 0 7.305729167e+00-7.171541378e-02* +* 1.118827500e+01 0 0 +GRID* 6452 0 7.305729167e+00-5.921541378e-02* +* 1.118827500e+01 0 0 +GRID* 6453 0 7.363975694e+00-7.053197691e-02* +* 1.134453750e+01 0 0 +GRID* 6454 0 7.363975694e+00-5.803197691e-02* +* 1.134453750e+01 0 0 +GRID* 6455 0 7.422222222e+00-6.934854004e-02* +* 1.150080000e+01 0 0 +GRID* 6456 0 7.422222222e+00-5.684854004e-02* +* 1.150080000e+01 0 0 +GRID* 6457 0 7.480468750e+00-6.816510317e-02* +* 1.165706250e+01 0 0 +GRID* 6458 0 7.480468750e+00-5.566510317e-02* +* 1.165706250e+01 0 0 +GRID* 6459 0 6.622048611e+00 9.225512324e-02* +* 1.181332500e+01 0 0 +GRID* 6460 0 6.701128472e+00 9.063316063e-02* +* 1.196958750e+01 0 0 +GRID* 6461 0 6.780208333e+00 8.901119803e-02* +* 1.212585000e+01 0 0 +GRID* 6462 0 6.859288194e+00 8.738923542e-02* +* 1.228211250e+01 0 0 +GRID* 6463 0 6.683159722e+00 1.003023870e-01* +* 1.181332500e+01 0 0 +GRID* 6464 0 6.760850694e+00 9.848080730e-02* +* 1.196958750e+01 0 0 +GRID* 6465 0 6.838541667e+00 9.665922755e-02* +* 1.212585000e+01 0 0 +GRID* 6466 0 6.916232639e+00 9.483764780e-02* +* 1.228211250e+01 0 0 +GRID* 6467 0 6.622048611e+00-9.247447221e-02* +* 1.181332500e+01 0 0 +GRID* 6468 0 6.683159722e+00-1.001781052e-01* +* 1.181332500e+01 0 0 +GRID* 6469 0 6.701128472e+00-9.084419228e-02* +* 1.196958750e+01 0 0 +GRID* 6470 0 6.760850694e+00-9.835490430e-02* +* 1.196958750e+01 0 0 +GRID* 6471 0 6.780208333e+00-8.921391235e-02* +* 1.212585000e+01 0 0 +GRID* 6472 0 6.838541667e+00-9.653170338e-02* +* 1.212585000e+01 0 0 +GRID* 6473 0 6.859288194e+00-8.758363242e-02* +* 1.228211250e+01 0 0 +GRID* 6474 0 6.916232639e+00-9.470850246e-02* +* 1.228211250e+01 0 0 +GRID* 6475 0 6.744270833e+00 1.067393241e-01* +* 1.181332500e+01 0 0 +GRID* 6476 0 6.820572917e+00 1.047506921e-01* +* 1.196958750e+01 0 0 +GRID* 6477 0 6.896875000e+00 1.027620602e-01* +* 1.212585000e+01 0 0 +GRID* 6478 0 6.973177083e+00 1.007734283e-01* +* 1.228211250e+01 0 0 +GRID* 6479 0 6.805381944e+00 1.120247553e-01* +* 1.181332500e+01 0 0 +GRID* 6480 0 6.880295139e+00 1.099110038e-01* +* 1.196958750e+01 0 0 +GRID* 6481 0 6.955208333e+00 1.077972522e-01* +* 1.212585000e+01 0 0 +GRID* 6482 0 7.030121528e+00 1.056835007e-01* +* 1.228211250e+01 0 0 +GRID* 6483 0 6.744270833e+00-1.061620671e-01* +* 1.181332500e+01 0 0 +GRID* 6484 0 6.805381944e+00-1.109954856e-01* +* 1.181332500e+01 0 0 +GRID* 6485 0 6.820572917e+00-1.041808956e-01* +* 1.196958750e+01 0 0 +GRID* 6486 0 6.880295139e+00-1.088992205e-01* +* 1.196958750e+01 0 0 +GRID* 6487 0 6.896875000e+00-1.021997241e-01* +* 1.212585000e+01 0 0 +GRID* 6488 0 6.955208333e+00-1.068029553e-01* +* 1.212585000e+01 0 0 +GRID* 6489 0 6.973177083e+00-1.002185527e-01* +* 1.228211250e+01 0 0 +GRID* 6490 0 7.030121528e+00-1.047066902e-01* +* 1.228211250e+01 0 0 +GRID* 6491 0 6.866493056e+00 1.164326649e-01* +* 1.181332500e+01 0 0 +GRID* 6492 0 6.940017361e+00 1.142154374e-01* +* 1.196958750e+01 0 0 +GRID* 6493 0 7.013541667e+00 1.119982099e-01* +* 1.212585000e+01 0 0 +GRID* 6494 0 7.087065972e+00 1.097809824e-01* +* 1.228211250e+01 0 0 +GRID* 6495 0 6.927604167e+00 1.201839943e-01* +* 1.181332500e+01 0 0 +GRID* 6496 0 6.999739583e+00 1.178817805e-01* +* 1.196958750e+01 0 0 +GRID* 6497 0 7.071875000e+00 1.155795666e-01* +* 1.212585000e+01 0 0 +GRID* 6498 0 7.144010417e+00 1.132773528e-01* +* 1.228211250e+01 0 0 +GRID* 6499 0 6.866493056e+00-1.149190080e-01* +* 1.181332500e+01 0 0 +GRID* 6500 0 6.927604167e+00-1.180992716e-01* +* 1.181332500e+01 0 0 +GRID* 6501 0 6.940017361e+00-1.127300441e-01* +* 1.196958750e+01 0 0 +GRID* 6502 0 6.999739583e+00-1.158383264e-01* +* 1.196958750e+01 0 0 +GRID* 6503 0 7.013541667e+00-1.105410802e-01* +* 1.212585000e+01 0 0 +GRID* 6504 0 7.071875000e+00-1.135773813e-01* +* 1.212585000e+01 0 0 +GRID* 6505 0 7.087065972e+00-1.083521163e-01* +* 1.228211250e+01 0 0 +GRID* 6506 0 7.144010417e+00-1.113164362e-01* +* 1.228211250e+01 0 0 +GRID* 6507 0 6.988715278e+00 1.233165471e-01* +* 1.181332500e+01 0 0 +GRID* 6508 0 7.059461806e+00 1.209471781e-01* +* 1.196958750e+01 0 0 +GRID* 6509 0 7.130208333e+00 1.185778092e-01* +* 1.212585000e+01 0 0 +GRID* 6510 0 7.200954861e+00 1.162084402e-01* +* 1.228211250e+01 0 0 +GRID* 6511 0 7.049826389e+00 1.257393660e-01* +* 1.181332500e+01 0 0 +GRID* 6512 0 7.119184028e+00 1.233188451e-01* +* 1.196958750e+01 0 0 +GRID* 6513 0 7.188541667e+00 1.208983241e-01* +* 1.212585000e+01 0 0 +GRID* 6514 0 7.257899306e+00 1.184778032e-01* +* 1.228211250e+01 0 0 +GRID* 6515 0 6.988715278e+00-1.202964454e-01* +* 1.181332500e+01 0 0 +GRID* 6516 0 7.049826389e+00-1.211519104e-01* +* 1.181332500e+01 0 0 +GRID* 6517 0 7.059461806e+00-1.179926458e-01* +* 1.196958750e+01 0 0 +GRID* 6518 0 7.119184028e+00-1.188369159e-01* +* 1.196958750e+01 0 0 +GRID* 6519 0 7.130208333e+00-1.156888463e-01* +* 1.212585000e+01 0 0 +GRID* 6520 0 7.188541667e+00-1.165219214e-01* +* 1.212585000e+01 0 0 +GRID* 6521 0 7.200954861e+00-1.133850468e-01* +* 1.228211250e+01 0 0 +GRID* 6522 0 7.257899306e+00-1.142069268e-01* +* 1.228211250e+01 0 0 +GRID* 6523 0 7.110937500e+00 1.275296588e-01* +* 1.181332500e+01 0 0 +GRID* 6524 0 7.178906250e+00 1.250737274e-01* +* 1.196958750e+01 0 0 +GRID* 6525 0 7.246875000e+00 1.226177960e-01* +* 1.212585000e+01 0 0 +GRID* 6526 0 7.314843750e+00 1.201618646e-01* +* 1.228211250e+01 0 0 +GRID* 6527 0 7.172048611e+00 1.285085920e-01* +* 1.181332500e+01 0 0 +GRID* 6528 0 7.238628472e+00 1.260452735e-01* +* 1.196958750e+01 0 0 +GRID* 6529 0 7.305208333e+00 1.235819551e-01* +* 1.212585000e+01 0 0 +GRID* 6530 0 7.371788194e+00 1.211186366e-01* +* 1.228211250e+01 0 0 +GRID* 6531 0 7.110937500e+00-1.205418910e-01* +* 1.181332500e+01 0 0 +GRID* 6532 0 7.172048611e+00-1.180800289e-01* +* 1.181332500e+01 0 0 +GRID* 6533 0 7.178906250e+00-1.182688287e-01* +* 1.196958750e+01 0 0 +GRID* 6534 0 7.238628472e+00-1.158801513e-01* +* 1.196958750e+01 0 0 +GRID* 6535 0 7.246875000e+00-1.159955231e-01* +* 1.212585000e+01 0 0 +GRID* 6536 0 7.305208333e+00-1.136802736e-01* +* 1.212585000e+01 0 0 +GRID* 6537 0 7.314843750e+00-1.137059950e-01* +* 1.228211250e+01 0 0 +GRID* 6538 0 7.371788194e+00-1.114803960e-01* +* 1.228211250e+01 0 0 +GRID* 6539 0 7.233159722e+00 1.288047122e-01* +* 1.181332500e+01 0 0 +GRID* 6540 0 7.298350694e+00 1.263443330e-01* +* 1.196958750e+01 0 0 +GRID* 6541 0 7.363541667e+00 1.238839538e-01* +* 1.212585000e+01 0 0 +GRID* 6542 0 7.428732639e+00 1.214235746e-01* +* 1.228211250e+01 0 0 +GRID* 6543 0 7.294270833e+00 1.282809768e-01* +* 1.181332500e+01 0 0 +GRID* 6544 0 7.358072917e+00 1.258565791e-01* +* 1.196958750e+01 0 0 +GRID* 6545 0 7.421875000e+00 1.234321813e-01* +* 1.212585000e+01 0 0 +GRID* 6546 0 7.485677083e+00 1.210077836e-01* +* 1.228211250e+01 0 0 +GRID* 6547 0 7.233159722e+00-1.142485624e-01* +* 1.181332500e+01 0 0 +GRID* 6548 0 7.294270833e+00-1.090143107e-01* +* 1.181332500e+01 0 0 +GRID* 6549 0 7.298350694e+00-1.121538772e-01* +* 1.196958750e+01 0 0 +GRID* 6550 0 7.358072917e+00-1.070753096e-01* +* 1.196958750e+01 0 0 +GRID* 6551 0 7.363541667e+00-1.100591919e-01* +* 1.212585000e+01 0 0 +GRID* 6552 0 7.421875000e+00-1.051363085e-01* +* 1.212585000e+01 0 0 +GRID* 6553 0 7.428732639e+00-1.079645067e-01* +* 1.228211250e+01 0 0 +GRID* 6554 0 7.485677083e+00-1.031973074e-01* +* 1.228211250e+01 0 0 +GRID* 6555 0 7.355381944e+00 1.269872200e-01* +* 1.181332500e+01 0 0 +GRID* 6556 0 7.417795139e+00 1.246067374e-01* +* 1.196958750e+01 0 0 +GRID* 6557 0 7.480208333e+00 1.222262548e-01* +* 1.212585000e+01 0 0 +GRID* 6558 0 7.542621528e+00 1.198457722e-01* +* 1.228211250e+01 0 0 +GRID* 6559 0 7.416493056e+00 1.248745000e-01* +* 1.181332500e+01 0 0 +GRID* 6560 0 7.477517361e+00 1.225759913e-01* +* 1.196958750e+01 0 0 +GRID* 6561 0 7.538541667e+00 1.202774826e-01* +* 1.212585000e+01 0 0 +GRID* 6562 0 7.599565972e+00 1.179789739e-01* +* 1.228211250e+01 0 0 +GRID* 6563 0 7.355381944e+00-1.027639218e-01* +* 1.181332500e+01 0 0 +GRID* 6564 0 7.416493056e+00-9.562295974e-02* +* 1.181332500e+01 0 0 +GRID* 6565 0 7.417795139e+00-1.009845085e-01* +* 1.196958750e+01 0 0 +GRID* 6566 0 7.477517361e+00-9.403721685e-02* +* 1.196958750e+01 0 0 +GRID* 6567 0 7.480208333e+00-9.920509523e-02* +* 1.212585000e+01 0 0 +GRID* 6568 0 7.538541667e+00-9.245147396e-02* +* 1.212585000e+01 0 0 +GRID* 6569 0 7.542621528e+00-9.742568194e-02* +* 1.228211250e+01 0 0 +GRID* 6570 0 7.599565972e+00-9.086573107e-02* +* 1.228211250e+01 0 0 +GRID* 6571 0 7.477604167e+00 1.219168785e-01* +* 1.181332500e+01 0 0 +GRID* 6572 0 7.537239583e+00 1.197047756e-01* +* 1.196958750e+01 0 0 +GRID* 6573 0 7.596875000e+00 1.174926727e-01* +* 1.212585000e+01 0 0 +GRID* 6574 0 7.656510417e+00 1.152805698e-01* +* 1.228211250e+01 0 0 +GRID* 6575 0 7.538715278e+00 1.181781658e-01* +* 1.181332500e+01 0 0 +GRID* 6576 0 7.596961806e+00 1.160937564e-01* +* 1.196958750e+01 0 0 +GRID* 6577 0 7.655208333e+00 1.139961267e-01* +* 1.212585000e+01 0 0 +GRID* 6578 0 7.713454861e+00 1.118888901e-01* +* 1.228211250e+01 0 0 +GRID* 6579 0 7.477604167e+00-8.780594881e-02* +* 1.181332500e+01 0 0 +GRID* 6580 0 7.538715278e+00-7.948166630e-02* +* 1.181332500e+01 0 0 +GRID* 6581 0 7.537239583e+00-8.641157467e-02* +* 1.196958750e+01 0 0 +GRID* 6582 0 7.596961806e+00-7.829822943e-02* +* 1.196958750e+01 0 0 +GRID* 6583 0 7.596875000e+00-8.501720052e-02* +* 1.212585000e+01 0 0 +GRID* 6584 0 7.655208333e+00-7.711479256e-02* +* 1.212585000e+01 0 0 +GRID* 6585 0 7.656510417e+00-8.362282637e-02* +* 1.228211250e+01 0 0 +GRID* 6586 0 7.713454861e+00-7.592998067e-02* +* 1.228211250e+01 0 0 +GRID* 6587 0 7.599826389e+00 1.135465280e-01* +* 1.181332500e+01 0 0 +GRID* 6588 0 7.656684028e+00 1.115909441e-01* +* 1.196958750e+01 0 0 +GRID* 6589 0 7.713541667e+00 1.096353601e-01* +* 1.212585000e+01 0 0 +GRID* 6590 0 7.770399306e+00 1.076797762e-01* +* 1.228211250e+01 0 0 +GRID* 6591 0 7.599826389e+00-7.079065689e-02* +* 1.181332500e+01 0 0 +GRID* 6592 0 7.656684028e+00-6.981198106e-02* +* 1.196958750e+01 0 0 +GRID* 6593 0 7.713541667e+00-6.883330524e-02* +* 1.212585000e+01 0 0 +GRID* 6594 0 7.770399306e+00-6.785462942e-02* +* 1.228211250e+01 0 0 +GRID* 6595 0 6.683159722e+00 8.780238704e-02* +* 1.181332500e+01 0 0 +GRID* 6596 0 6.683159722e+00 7.530238704e-02* +* 1.181332500e+01 0 0 +GRID* 6597 0 6.760850694e+00 8.598080730e-02* +* 1.196958750e+01 0 0 +GRID* 6598 0 6.760850694e+00 7.348080730e-02* +* 1.196958750e+01 0 0 +GRID* 6599 0 6.838541667e+00 8.415922755e-02* +* 1.212585000e+01 0 0 +GRID* 6600 0 6.838541667e+00 7.165922755e-02* +* 1.212585000e+01 0 0 +GRID* 6601 0 6.916232639e+00 8.233764780e-02* +* 1.228211250e+01 0 0 +GRID* 6602 0 6.916232639e+00 6.983764780e-02* +* 1.228211250e+01 0 0 +GRID* 6603 0 6.993923611e+00 8.051606805e-02* +* 1.243837500e+01 0 0 +GRID* 6604 0 6.993923611e+00 6.801606805e-02* +* 1.243837500e+01 0 0 +GRID* 6605 0 6.683159722e+00-8.767810521e-02* +* 1.181332500e+01 0 0 +GRID* 6606 0 6.683159722e+00-7.517810521e-02* +* 1.181332500e+01 0 0 +GRID* 6607 0 6.760850694e+00-8.585490430e-02* +* 1.196958750e+01 0 0 +GRID* 6608 0 6.760850694e+00-7.335490430e-02* +* 1.196958750e+01 0 0 +GRID* 6609 0 6.838541667e+00-8.403170338e-02* +* 1.212585000e+01 0 0 +GRID* 6610 0 6.838541667e+00-7.153170338e-02* +* 1.212585000e+01 0 0 +GRID* 6611 0 6.916232639e+00-8.220850246e-02* +* 1.228211250e+01 0 0 +GRID* 6612 0 6.916232639e+00-6.970850246e-02* +* 1.228211250e+01 0 0 +GRID* 6613 0 6.993923611e+00-8.037513326e-02* +* 1.243837500e+01 0 0 +GRID* 6614 0 6.993923611e+00-6.787513326e-02* +* 1.243837500e+01 0 0 +GRID* 6615 0 6.805381944e+00 9.952475532e-02* +* 1.181332500e+01 0 0 +GRID* 6616 0 6.805381944e+00 8.702475532e-02* +* 1.181332500e+01 0 0 +GRID* 6617 0 6.880295139e+00 9.741100377e-02* +* 1.196958750e+01 0 0 +GRID* 6618 0 6.880295139e+00 8.491100377e-02* +* 1.196958750e+01 0 0 +GRID* 6619 0 6.955208333e+00 9.529725222e-02* +* 1.212585000e+01 0 0 +GRID* 6620 0 6.955208333e+00 8.279725222e-02* +* 1.212585000e+01 0 0 +GRID* 6621 0 7.030121528e+00 9.318350067e-02* +* 1.228211250e+01 0 0 +GRID* 6622 0 7.030121528e+00 8.068350067e-02* +* 1.228211250e+01 0 0 +GRID* 6623 0 7.105034722e+00 9.106974912e-02* +* 1.243837500e+01 0 0 +GRID* 6624 0 7.105034722e+00 7.856974912e-02* +* 1.243837500e+01 0 0 +GRID* 6625 0 6.805381944e+00-9.849548563e-02* +* 1.181332500e+01 0 0 +GRID* 6626 0 6.805381944e+00-8.599548563e-02* +* 1.181332500e+01 0 0 +GRID* 6627 0 6.880295139e+00-9.639922049e-02* +* 1.196958750e+01 0 0 +GRID* 6628 0 6.880295139e+00-8.389922049e-02* +* 1.196958750e+01 0 0 +GRID* 6629 0 6.955208333e+00-9.430295535e-02* +* 1.212585000e+01 0 0 +GRID* 6630 0 6.955208333e+00-8.180295535e-02* +* 1.212585000e+01 0 0 +GRID* 6631 0 7.030121528e+00-9.220669020e-02* +* 1.228211250e+01 0 0 +GRID* 6632 0 7.030121528e+00-7.970669020e-02* +* 1.228211250e+01 0 0 +GRID* 6633 0 7.105034722e+00-9.011042506e-02* +* 1.243837500e+01 0 0 +GRID* 6634 0 7.105034722e+00-7.761042506e-02* +* 1.243837500e+01 0 0 +GRID* 6635 0 6.927604167e+00 1.076839943e-01* +* 1.181332500e+01 0 0 +GRID* 6636 0 6.927604167e+00 9.518399429e-02* +* 1.181332500e+01 0 0 +GRID* 6637 0 6.999739583e+00 1.053817805e-01* +* 1.196958750e+01 0 0 +GRID* 6638 0 6.999739583e+00 9.288178047e-02* +* 1.196958750e+01 0 0 +GRID* 6639 0 7.071875000e+00 1.030795666e-01* +* 1.212585000e+01 0 0 +GRID* 6640 0 7.071875000e+00 9.057956664e-02* +* 1.212585000e+01 0 0 +GRID* 6641 0 7.144010417e+00 1.007773528e-01* +* 1.228211250e+01 0 0 +GRID* 6642 0 7.144010417e+00 8.827735282e-02* +* 1.228211250e+01 0 0 +GRID* 6643 0 7.216145833e+00 9.847513899e-02* +* 1.243837500e+01 0 0 +GRID* 6644 0 7.216145833e+00 8.597513899e-02* +* 1.243837500e+01 0 0 +GRID* 6645 0 6.927604167e+00-1.055992716e-01* +* 1.181332500e+01 0 0 +GRID* 6646 0 6.927604167e+00-9.309927156e-02* +* 1.181332500e+01 0 0 +GRID* 6647 0 6.999739583e+00-1.033383264e-01* +* 1.196958750e+01 0 0 +GRID* 6648 0 6.999739583e+00-9.083832644e-02* +* 1.196958750e+01 0 0 +GRID* 6649 0 7.071875000e+00-1.010773813e-01* +* 1.212585000e+01 0 0 +GRID* 6650 0 7.071875000e+00-8.857738132e-02* +* 1.212585000e+01 0 0 +GRID* 6651 0 7.144010417e+00-9.881643619e-02* +* 1.228211250e+01 0 0 +GRID* 6652 0 7.144010417e+00-8.631643619e-02* +* 1.228211250e+01 0 0 +GRID* 6653 0 7.216145833e+00-9.655549107e-02* +* 1.243837500e+01 0 0 +GRID* 6654 0 7.216145833e+00-8.405549107e-02* +* 1.243837500e+01 0 0 +GRID* 6655 0 7.049826389e+00 1.132393660e-01* +* 1.181332500e+01 0 0 +GRID* 6656 0 7.049826389e+00 1.007393660e-01* +* 1.181332500e+01 0 0 +GRID* 6657 0 7.119184028e+00 1.108188451e-01* +* 1.196958750e+01 0 0 +GRID* 6658 0 7.119184028e+00 9.831884507e-02* +* 1.196958750e+01 0 0 +GRID* 6659 0 7.188541667e+00 1.083983241e-01* +* 1.212585000e+01 0 0 +GRID* 6660 0 7.188541667e+00 9.589832412e-02* +* 1.212585000e+01 0 0 +GRID* 6661 0 7.257899306e+00 1.059778032e-01* +* 1.228211250e+01 0 0 +GRID* 6662 0 7.257899306e+00 9.347780318e-02* +* 1.228211250e+01 0 0 +GRID* 6663 0 7.327256944e+00 1.035572822e-01* +* 1.243837500e+01 0 0 +GRID* 6664 0 7.327256944e+00 9.105728223e-02* +* 1.243837500e+01 0 0 +GRID* 6665 0 7.049826389e+00-1.086519104e-01* +* 1.181332500e+01 0 0 +GRID* 6666 0 7.049826389e+00-9.615191043e-02* +* 1.181332500e+01 0 0 +GRID* 6667 0 7.119184028e+00-1.063369159e-01* +* 1.196958750e+01 0 0 +GRID* 6668 0 7.119184028e+00-9.383691589e-02* +* 1.196958750e+01 0 0 +GRID* 6669 0 7.188541667e+00-1.040219214e-01* +* 1.212585000e+01 0 0 +GRID* 6670 0 7.188541667e+00-9.152192135e-02* +* 1.212585000e+01 0 0 +GRID* 6671 0 7.257899306e+00-1.017069268e-01* +* 1.228211250e+01 0 0 +GRID* 6672 0 7.257899306e+00-8.920692681e-02* +* 1.228211250e+01 0 0 +GRID* 6673 0 7.327256944e+00-9.939193228e-02* +* 1.243837500e+01 0 0 +GRID* 6674 0 7.327256944e+00-8.689193228e-02* +* 1.243837500e+01 0 0 +GRID* 6675 0 7.172048611e+00 1.160085920e-01* +* 1.181332500e+01 0 0 +GRID* 6676 0 7.172048611e+00 1.035085920e-01* +* 1.181332500e+01 0 0 +GRID* 6677 0 7.238628472e+00 1.135452735e-01* +* 1.196958750e+01 0 0 +GRID* 6678 0 7.238628472e+00 1.010452735e-01* +* 1.196958750e+01 0 0 +GRID* 6679 0 7.305208333e+00 1.110819551e-01* +* 1.212585000e+01 0 0 +GRID* 6680 0 7.305208333e+00 9.858195507e-02* +* 1.212585000e+01 0 0 +GRID* 6681 0 7.371788194e+00 1.086186366e-01* +* 1.228211250e+01 0 0 +GRID* 6682 0 7.371788194e+00 9.611863662e-02* +* 1.228211250e+01 0 0 +GRID* 6683 0 7.438368056e+00 1.061553182e-01* +* 1.243837500e+01 0 0 +GRID* 6684 0 7.438368056e+00 9.365531818e-02* +* 1.243837500e+01 0 0 +GRID* 6685 0 7.172048611e+00-1.055800289e-01* +* 1.181332500e+01 0 0 +GRID* 6686 0 7.172048611e+00-9.308002891e-02* +* 1.181332500e+01 0 0 +GRID* 6687 0 7.238628472e+00-1.033801513e-01* +* 1.196958750e+01 0 0 +GRID* 6688 0 7.238628472e+00-9.088015126e-02* +* 1.196958750e+01 0 0 +GRID* 6689 0 7.305208333e+00-1.011802736e-01* +* 1.212585000e+01 0 0 +GRID* 6690 0 7.305208333e+00-8.868027361e-02* +* 1.212585000e+01 0 0 +GRID* 6691 0 7.371788194e+00-9.898039597e-02* +* 1.228211250e+01 0 0 +GRID* 6692 0 7.371788194e+00-8.648039597e-02* +* 1.228211250e+01 0 0 +GRID* 6693 0 7.438368056e+00-9.678051832e-02* +* 1.243837500e+01 0 0 +GRID* 6694 0 7.438368056e+00-8.428051832e-02* +* 1.243837500e+01 0 0 +GRID* 6695 0 7.294270833e+00 1.157809768e-01* +* 1.181332500e+01 0 0 +GRID* 6696 0 7.294270833e+00 1.032809768e-01* +* 1.181332500e+01 0 0 +GRID* 6697 0 7.358072917e+00 1.133565791e-01* +* 1.196958750e+01 0 0 +GRID* 6698 0 7.358072917e+00 1.008565791e-01* +* 1.196958750e+01 0 0 +GRID* 6699 0 7.421875000e+00 1.109321813e-01* +* 1.212585000e+01 0 0 +GRID* 6700 0 7.421875000e+00 9.843218132e-02* +* 1.212585000e+01 0 0 +GRID* 6701 0 7.485677083e+00 1.085077836e-01* +* 1.228211250e+01 0 0 +GRID* 6702 0 7.485677083e+00 9.600778357e-02* +* 1.228211250e+01 0 0 +GRID* 6703 0 7.549479167e+00 1.060833858e-01* +* 1.243837500e+01 0 0 +GRID* 6704 0 7.549479167e+00 9.358338583e-02* +* 1.243837500e+01 0 0 +GRID* 6705 0 7.294270833e+00-9.651431068e-02* +* 1.181332500e+01 0 0 +GRID* 6706 0 7.294270833e+00-8.401431068e-02* +* 1.181332500e+01 0 0 +GRID* 6707 0 7.358072917e+00-9.457530958e-02* +* 1.196958750e+01 0 0 +GRID* 6708 0 7.358072917e+00-8.207530958e-02* +* 1.196958750e+01 0 0 +GRID* 6709 0 7.421875000e+00-9.263630848e-02* +* 1.212585000e+01 0 0 +GRID* 6710 0 7.421875000e+00-8.013630848e-02* +* 1.212585000e+01 0 0 +GRID* 6711 0 7.485677083e+00-9.069730738e-02* +* 1.228211250e+01 0 0 +GRID* 6712 0 7.485677083e+00-7.819730738e-02* +* 1.228211250e+01 0 0 +GRID* 6713 0 7.549479167e+00-8.875830628e-02* +* 1.243837500e+01 0 0 +GRID* 6714 0 7.549479167e+00-7.625830628e-02* +* 1.243837500e+01 0 0 +GRID* 6715 0 7.416493056e+00 1.123745000e-01* +* 1.181332500e+01 0 0 +GRID* 6716 0 7.416493056e+00 9.987450002e-02* +* 1.181332500e+01 0 0 +GRID* 6717 0 7.477517361e+00 1.100759913e-01* +* 1.196958750e+01 0 0 +GRID* 6718 0 7.477517361e+00 9.757599131e-02* +* 1.196958750e+01 0 0 +GRID* 6719 0 7.538541667e+00 1.077774826e-01* +* 1.212585000e+01 0 0 +GRID* 6720 0 7.538541667e+00 9.527748260e-02* +* 1.212585000e+01 0 0 +GRID* 6721 0 7.599565972e+00 1.054789739e-01* +* 1.228211250e+01 0 0 +GRID* 6722 0 7.599565972e+00 9.297897388e-02* +* 1.228211250e+01 0 0 +GRID* 6723 0 7.660590278e+00 1.031804652e-01* +* 1.243837500e+01 0 0 +GRID* 6724 0 7.660590278e+00 9.068046517e-02* +* 1.243837500e+01 0 0 +GRID* 6725 0 7.416493056e+00-8.312295974e-02* +* 1.181332500e+01 0 0 +GRID* 6726 0 7.416493056e+00-7.062295974e-02* +* 1.181332500e+01 0 0 +GRID* 6727 0 7.477517361e+00-8.153721685e-02* +* 1.196958750e+01 0 0 +GRID* 6728 0 7.477517361e+00-6.903721685e-02* +* 1.196958750e+01 0 0 +GRID* 6729 0 7.538541667e+00-7.995147396e-02* +* 1.212585000e+01 0 0 +GRID* 6730 0 7.538541667e+00-6.745147396e-02* +* 1.212585000e+01 0 0 +GRID* 6731 0 7.599565972e+00-7.836573107e-02* +* 1.228211250e+01 0 0 +GRID* 6732 0 7.599565972e+00-6.586573107e-02* +* 1.228211250e+01 0 0 +GRID* 6733 0 7.660590278e+00-7.677998817e-02* +* 1.243837500e+01 0 0 +GRID* 6734 0 7.660590278e+00-6.427998817e-02* +* 1.243837500e+01 0 0 +GRID* 6735 0 7.538715278e+00 1.056781658e-01* +* 1.181332500e+01 0 0 +GRID* 6736 0 7.538715278e+00 9.317816575e-02* +* 1.181332500e+01 0 0 +GRID* 6737 0 7.596961806e+00 1.035937564e-01* +* 1.196958750e+01 0 0 +GRID* 6738 0 7.596961806e+00 9.109375643e-02* +* 1.196958750e+01 0 0 +GRID* 6739 0 7.655208333e+00 1.014961267e-01* +* 1.212585000e+01 0 0 +GRID* 6740 0 7.655208333e+00 8.899612669e-02* +* 1.212585000e+01 0 0 +GRID* 6741 0 7.713454861e+00 9.938889014e-02* +* 1.228211250e+01 0 0 +GRID* 6742 0 7.713454861e+00 8.688889014e-02* +* 1.228211250e+01 0 0 +GRID* 6743 0 7.771701389e+00 9.728165359e-02* +* 1.243837500e+01 0 0 +GRID* 6744 0 7.771701389e+00 8.478165359e-02* +* 1.243837500e+01 0 0 +GRID* 6745 0 7.538715278e+00-6.698166630e-02* +* 1.181332500e+01 0 0 +GRID* 6746 0 7.538715278e+00-5.448166630e-02* +* 1.181332500e+01 0 0 +GRID* 6747 0 7.596961806e+00-6.579822943e-02* +* 1.196958750e+01 0 0 +GRID* 6748 0 7.596961806e+00-5.329822943e-02* +* 1.196958750e+01 0 0 +GRID* 6749 0 7.655208333e+00-6.461479256e-02* +* 1.212585000e+01 0 0 +GRID* 6750 0 7.655208333e+00-5.211479256e-02* +* 1.212585000e+01 0 0 +GRID* 6751 0 7.713454861e+00-6.342998067e-02* +* 1.228211250e+01 0 0 +GRID* 6752 0 7.713454861e+00-5.092998067e-02* +* 1.228211250e+01 0 0 +GRID* 6753 0 7.771701389e+00-6.223606469e-02* +* 1.243837500e+01 0 0 +GRID* 6754 0 7.771701389e+00-4.973606469e-02* +* 1.243837500e+01 0 0 +GRID* 6755 0 7.017447917e+00 8.414531021e-02* +* 1.259463750e+01 0 0 +GRID* 6756 0 7.096527778e+00 8.252334760e-02* +* 1.275090000e+01 0 0 +GRID* 6757 0 7.175607639e+00 8.090138499e-02* +* 1.290716250e+01 0 0 +GRID* 6758 0 7.254687500e+00 7.927942239e-02* +* 1.306342500e+01 0 0 +GRID* 6759 0 7.071614583e+00 9.119448831e-02* +* 1.259463750e+01 0 0 +GRID* 6760 0 7.149305556e+00 8.936849288e-02* +* 1.275090000e+01 0 0 +GRID* 6761 0 7.226996528e+00 8.753263991e-02* +* 1.290716250e+01 0 0 +GRID* 6762 0 7.304687500e+00 8.569678694e-02* +* 1.306342500e+01 0 0 +GRID* 6763 0 7.017447917e+00-8.432307256e-02* +* 1.259463750e+01 0 0 +GRID* 6764 0 7.071614583e+00-9.103768870e-02* +* 1.259463750e+01 0 0 +GRID* 6765 0 7.096527778e+00-8.269279263e-02* +* 1.275090000e+01 0 0 +GRID* 6766 0 7.149305556e+00-8.920024414e-02* +* 1.275090000e+01 0 0 +GRID* 6767 0 7.175607639e+00-8.106251270e-02* +* 1.290716250e+01 0 0 +GRID* 6768 0 7.226996528e+00-8.736279957e-02* +* 1.290716250e+01 0 0 +GRID* 6769 0 7.254687500e+00-7.943223277e-02* +* 1.306342500e+01 0 0 +GRID* 6770 0 7.304687500e+00-8.552535501e-02* +* 1.306342500e+01 0 0 +GRID* 6771 0 7.125781250e+00 9.679616451e-02* +* 1.259463750e+01 0 0 +GRID* 6772 0 7.202083333e+00 9.480753260e-02* +* 1.275090000e+01 0 0 +GRID* 6773 0 7.278385417e+00 9.281890069e-02* +* 1.290716250e+01 0 0 +GRID* 6774 0 7.354687500e+00 9.083026878e-02* +* 1.306342500e+01 0 0 +GRID* 6775 0 7.179947917e+00 1.014559976e-01* +* 1.259463750e+01 0 0 +GRID* 6776 0 7.254861111e+00 9.934224601e-02* +* 1.275090000e+01 0 0 +GRID* 6777 0 7.329774306e+00 9.722849446e-02* +* 1.290716250e+01 0 0 +GRID* 6778 0 7.404687500e+00 9.511474291e-02* +* 1.306342500e+01 0 0 +GRID* 6779 0 7.125781250e+00-9.625620977e-02* +* 1.259463750e+01 0 0 +GRID* 6780 0 7.179947917e+00-1.005141599e-01* +* 1.259463750e+01 0 0 +GRID* 6781 0 7.202083333e+00-9.427503832e-02* +* 1.275090000e+01 0 0 +GRID* 6782 0 7.254861111e+00-9.841789478e-02* +* 1.275090000e+01 0 0 +GRID* 6783 0 7.278385417e+00-9.229386686e-02* +* 1.290716250e+01 0 0 +GRID* 6784 0 7.329774306e+00-9.632162964e-02* +* 1.290716250e+01 0 0 +GRID* 6785 0 7.354687500e+00-9.031269541e-02* +* 1.306342500e+01 0 0 +GRID* 6786 0 7.404687500e+00-9.422536450e-02* +* 1.306342500e+01 0 0 +GRID* 6787 0 7.234114583e+00 1.053465274e-01* +* 1.259463750e+01 0 0 +GRID* 6788 0 7.307638889e+00 1.031292999e-01* +* 1.275090000e+01 0 0 +GRID* 6789 0 7.381163194e+00 1.009120724e-01* +* 1.290716250e+01 0 0 +GRID* 6790 0 7.454687500e+00 9.869484493e-02* +* 1.306342500e+01 0 0 +GRID* 6791 0 7.288281250e+00 1.086729252e-01* +* 1.259463750e+01 0 0 +GRID* 6792 0 7.360416667e+00 1.063707113e-01* +* 1.275090000e+01 0 0 +GRID* 6793 0 7.432552083e+00 1.040684975e-01* +* 1.290716250e+01 0 0 +GRID* 6794 0 7.504687500e+00 1.017662837e-01* +* 1.306342500e+01 0 0 +GRID* 6795 0 7.234114583e+00-1.039741885e-01* +* 1.259463750e+01 0 0 +GRID* 6796 0 7.288281250e+00-1.067945459e-01* +* 1.259463750e+01 0 0 +GRID* 6797 0 7.307638889e+00-1.017852247e-01* +* 1.275090000e+01 0 0 +GRID* 6798 0 7.360416667e+00-1.045336008e-01* +* 1.275090000e+01 0 0 +GRID* 6799 0 7.381163194e+00-9.959626076e-02* +* 1.290716250e+01 0 0 +GRID* 6800 0 7.432552083e+00-1.022726557e-01* +* 1.290716250e+01 0 0 +GRID* 6801 0 7.454687500e+00-9.740729688e-02* +* 1.306342500e+01 0 0 +GRID* 6802 0 7.504687500e+00-1.000117106e-01* +* 1.306342500e+01 0 0 +GRID* 6803 0 7.342447917e+00 1.114697022e-01* +* 1.259463750e+01 0 0 +GRID* 6804 0 7.413194444e+00 1.091003332e-01* +* 1.275090000e+01 0 0 +GRID* 6805 0 7.483940972e+00 1.067309642e-01* +* 1.290716250e+01 0 0 +GRID* 6806 0 7.554687500e+00 1.043615952e-01* +* 1.306342500e+01 0 0 +GRID* 6807 0 7.396614583e+00 1.136367613e-01* +* 1.259463750e+01 0 0 +GRID* 6808 0 7.465972222e+00 1.112162403e-01* +* 1.275090000e+01 0 0 +GRID* 6809 0 7.535329861e+00 1.087957194e-01* +* 1.290716250e+01 0 0 +GRID* 6810 0 7.604687500e+00 1.063751984e-01* +* 1.306342500e+01 0 0 +GRID* 6811 0 7.342447917e+00-1.087774478e-01* +* 1.259463750e+01 0 0 +GRID* 6812 0 7.396614583e+00-1.095769377e-01* +* 1.259463750e+01 0 0 +GRID* 6813 0 7.413194444e+00-1.064736482e-01* +* 1.275090000e+01 0 0 +GRID* 6814 0 7.465972222e+00-1.072619432e-01* +* 1.275090000e+01 0 0 +GRID* 6815 0 7.483940972e+00-1.041698487e-01* +* 1.290716250e+01 0 0 +GRID* 6816 0 7.535329861e+00-1.049469487e-01* +* 1.290716250e+01 0 0 +GRID* 6817 0 7.554687500e+00-1.018660492e-01* +* 1.306342500e+01 0 0 +GRID* 6818 0 7.604687500e+00-1.026319541e-01* +* 1.306342500e+01 0 0 +GRID* 6819 0 7.450781250e+00 1.152500019e-01* +* 1.259463750e+01 0 0 +GRID* 6820 0 7.518750000e+00 1.127940705e-01* +* 1.275090000e+01 0 0 +GRID* 6821 0 7.586718750e+00 1.103381391e-01* +* 1.290716250e+01 0 0 +GRID* 6822 0 7.654687500e+00 1.078822077e-01* +* 1.306342500e+01 0 0 +GRID* 6823 0 7.504947917e+00 1.161919997e-01* +* 1.259463750e+01 0 0 +GRID* 6824 0 7.571527778e+00 1.137286813e-01* +* 1.275090000e+01 0 0 +GRID* 6825 0 7.638107639e+00 1.112653628e-01* +* 1.290716250e+01 0 0 +GRID* 6826 0 7.704687500e+00 1.088020444e-01* +* 1.306342500e+01 0 0 +GRID* 6827 0 7.450781250e+00-1.091269386e-01* +* 1.259463750e+01 0 0 +GRID* 6828 0 7.504947917e+00-1.070806407e-01* +* 1.259463750e+01 0 0 +GRID* 6829 0 7.518750000e+00-1.068374105e-01* +* 1.275090000e+01 0 0 +GRID* 6830 0 7.571527778e+00-1.048807630e-01* +* 1.275090000e+01 0 0 +GRID* 6831 0 7.586718750e+00-1.045478823e-01* +* 1.290716250e+01 0 0 +GRID* 6832 0 7.638107639e+00-1.026808854e-01* +* 1.290716250e+01 0 0 +GRID* 6833 0 7.654687500e+00-1.022583541e-01* +* 1.306342500e+01 0 0 +GRID* 6834 0 7.704687500e+00-1.004810077e-01* +* 1.306342500e+01 0 0 +GRID* 6835 0 7.559114583e+00 1.165028162e-01* +* 1.259463750e+01 0 0 +GRID* 6836 0 7.624305556e+00 1.140424370e-01* +* 1.275090000e+01 0 0 +GRID* 6837 0 7.689496528e+00 1.115820578e-01* +* 1.290716250e+01 0 0 +GRID* 6838 0 7.754687500e+00 1.091216787e-01* +* 1.306342500e+01 0 0 +GRID* 6839 0 7.613281250e+00 1.161589881e-01* +* 1.259463750e+01 0 0 +GRID* 6840 0 7.677083333e+00 1.137345903e-01* +* 1.275090000e+01 0 0 +GRID* 6841 0 7.740885417e+00 1.113101926e-01* +* 1.290716250e+01 0 0 +GRID* 6842 0 7.804687500e+00 1.088817249e-01* +* 1.306342500e+01 0 0 +GRID* 6843 0 7.559114583e+00-1.037751362e-01* +* 1.259463750e+01 0 0 +GRID* 6844 0 7.613281250e+00-9.931930517e-02* +* 1.259463750e+01 0 0 +GRID* 6845 0 7.624305556e+00-1.016804510e-01* +* 1.275090000e+01 0 0 +GRID* 6846 0 7.677083333e+00-9.738030407e-02* +* 1.275090000e+01 0 0 +GRID* 6847 0 7.689496528e+00-9.958576571e-02* +* 1.290716250e+01 0 0 +GRID* 6848 0 7.740885417e+00-9.544130297e-02* +* 1.290716250e+01 0 0 +GRID* 6849 0 7.754687500e+00-9.749108047e-02* +* 1.306342500e+01 0 0 +GRID* 6850 0 7.804687500e+00-9.350230187e-02* +* 1.306342500e+01 0 0 +GRID* 6851 0 7.667447917e+00 1.150848070e-01* +* 1.259463750e+01 0 0 +GRID* 6852 0 7.729861111e+00 1.127043244e-01* +* 1.275090000e+01 0 0 +GRID* 6853 0 7.792274306e+00 1.103238419e-01* +* 1.290716250e+01 0 0 +GRID* 6854 0 7.854687500e+00 1.079433593e-01* +* 1.306342500e+01 0 0 +GRID* 6855 0 7.721614583e+00 1.133631691e-01* +* 1.259463750e+01 0 0 +GRID* 6856 0 7.782638889e+00 1.110451170e-01* +* 1.275090000e+01 0 0 +GRID* 6857 0 7.843663194e+00 1.087270649e-01* +* 1.290716250e+01 0 0 +GRID* 6858 0 7.904687500e+00 1.064090128e-01* +* 1.306342500e+01 0 0 +GRID* 6859 0 7.667447917e+00-9.386685537e-02* +* 1.259463750e+01 0 0 +GRID* 6860 0 7.721614583e+00-8.769424528e-02* +* 1.259463750e+01 0 0 +GRID* 6861 0 7.729861111e+00-9.208744208e-02* +* 1.275090000e+01 0 0 +GRID* 6862 0 7.782638889e+00-8.609580229e-02* +* 1.275090000e+01 0 0 +GRID* 6863 0 7.792274306e+00-9.030802879e-02* +* 1.290716250e+01 0 0 +GRID* 6864 0 7.843663194e+00-8.449294596e-02* +* 1.290716250e+01 0 0 +GRID* 6865 0 7.854687500e+00-8.852861550e-02* +* 1.306342500e+01 0 0 +GRID* 6866 0 7.904687500e+00-8.289008963e-02* +* 1.306342500e+01 0 0 +GRID* 6867 0 7.775781250e+00 1.108563640e-01* +* 1.259463750e+01 0 0 +GRID* 6868 0 7.835416667e+00 1.086442611e-01* +* 1.275090000e+01 0 0 +GRID* 6869 0 7.895052083e+00 1.064321582e-01* +* 1.290716250e+01 0 0 +GRID* 6870 0 7.954687500e+00 1.042200553e-01* +* 1.306342500e+01 0 0 +GRID* 6871 0 7.829947917e+00 1.076744170e-01* +* 1.259463750e+01 0 0 +GRID* 6872 0 7.888194444e+00 1.055671805e-01* +* 1.275090000e+01 0 0 +GRID* 6873 0 7.946440972e+00 1.034599439e-01* +* 1.290716250e+01 0 0 +GRID* 6874 0 8.004687500e+00 1.013527074e-01* +* 1.306342500e+01 0 0 +GRID* 6875 0 7.775781250e+00-8.083407807e-02* +* 1.259463750e+01 0 0 +GRID* 6876 0 7.829947917e+00-7.354214871e-02* +* 1.259463750e+01 0 0 +GRID* 6877 0 7.835416667e+00-7.943970392e-02* +* 1.275090000e+01 0 0 +GRID* 6878 0 7.888194444e+00-7.234823273e-02* +* 1.275090000e+01 0 0 +GRID* 6879 0 7.895052083e+00-7.804532977e-02* +* 1.290716250e+01 0 0 +GRID* 6880 0 7.946440972e+00-7.115431675e-02* +* 1.290716250e+01 0 0 +GRID* 6881 0 7.954687500e+00-7.665095562e-02* +* 1.306342500e+01 0 0 +GRID* 6882 0 8.004687500e+00-6.996040077e-02* +* 1.306342500e+01 0 0 +GRID* 6883 0 7.884114583e+00 1.037686083e-01* +* 1.259463750e+01 0 0 +GRID* 6884 0 7.940972222e+00 1.018130244e-01* +* 1.275090000e+01 0 0 +GRID* 6885 0 7.997829861e+00 9.985744047e-02* +* 1.290716250e+01 0 0 +GRID* 6886 0 8.054687500e+00 9.788411450e-02* +* 1.306342500e+01 0 0 +GRID* 6887 0 7.884114583e+00-6.589727777e-02* +* 1.259463750e+01 0 0 +GRID* 6888 0 7.940972222e+00-6.491860195e-02* +* 1.275090000e+01 0 0 +GRID* 6889 0 7.997829861e+00-6.393992613e-02* +* 1.290716250e+01 0 0 +GRID* 6890 0 8.054687500e+00-6.296125030e-02* +* 1.306342500e+01 0 0 +GRID* 6891 0 7.071614583e+00 7.869448831e-02* +* 1.259463750e+01 0 0 +GRID* 6892 0 7.071614583e+00 6.619448831e-02* +* 1.259463750e+01 0 0 +GRID* 6893 0 7.149305556e+00 7.686849288e-02* +* 1.275090000e+01 0 0 +GRID* 6894 0 7.149305556e+00 6.436849288e-02* +* 1.275090000e+01 0 0 +GRID* 6895 0 7.226996528e+00 7.503263991e-02* +* 1.290716250e+01 0 0 +GRID* 6896 0 7.226996528e+00 6.253263991e-02* +* 1.290716250e+01 0 0 +GRID* 6897 0 7.304687500e+00 7.319678694e-02* +* 1.306342500e+01 0 0 +GRID* 6898 0 7.304687500e+00 6.069678694e-02* +* 1.306342500e+01 0 0 +GRID* 6899 0 7.382378472e+00 7.136093397e-02* +* 1.321968750e+01 0 0 +GRID* 6900 0 7.382378472e+00 5.886093397e-02* +* 1.321968750e+01 0 0 +GRID* 6901 0 7.071614583e+00-7.853768870e-02* +* 1.259463750e+01 0 0 +GRID* 6902 0 7.071614583e+00-6.603768870e-02* +* 1.259463750e+01 0 0 +GRID* 6903 0 7.149305556e+00-7.670024414e-02* +* 1.275090000e+01 0 0 +GRID* 6904 0 7.149305556e+00-6.420024414e-02* +* 1.275090000e+01 0 0 +GRID* 6905 0 7.226996528e+00-7.486279957e-02* +* 1.290716250e+01 0 0 +GRID* 6906 0 7.226996528e+00-6.236279957e-02* +* 1.290716250e+01 0 0 +GRID* 6907 0 7.304687500e+00-7.302535501e-02* +* 1.306342500e+01 0 0 +GRID* 6908 0 7.304687500e+00-6.052535501e-02* +* 1.306342500e+01 0 0 +GRID* 6909 0 7.382378472e+00-7.118791045e-02* +* 1.321968750e+01 0 0 +GRID* 6910 0 7.382378472e+00-5.868791045e-02* +* 1.321968750e+01 0 0 +GRID* 6911 0 7.179947917e+00 8.895599756e-02* +* 1.259463750e+01 0 0 +GRID* 6912 0 7.179947917e+00 7.645599756e-02* +* 1.259463750e+01 0 0 +GRID* 6913 0 7.254861111e+00 8.684224601e-02* +* 1.275090000e+01 0 0 +GRID* 6914 0 7.254861111e+00 7.434224601e-02* +* 1.275090000e+01 0 0 +GRID* 6915 0 7.329774306e+00 8.472849446e-02* +* 1.290716250e+01 0 0 +GRID* 6916 0 7.329774306e+00 7.222849446e-02* +* 1.290716250e+01 0 0 +GRID* 6917 0 7.404687500e+00 8.261474291e-02* +* 1.306342500e+01 0 0 +GRID* 6918 0 7.404687500e+00 7.011474291e-02* +* 1.306342500e+01 0 0 +GRID* 6919 0 7.479600694e+00 8.050099136e-02* +* 1.321968750e+01 0 0 +GRID* 6920 0 7.479600694e+00 6.800099136e-02* +* 1.321968750e+01 0 0 +GRID* 6921 0 7.179947917e+00-8.801415992e-02* +* 1.259463750e+01 0 0 +GRID* 6922 0 7.179947917e+00-7.551415992e-02* +* 1.259463750e+01 0 0 +GRID* 6923 0 7.254861111e+00-8.591789478e-02* +* 1.275090000e+01 0 0 +GRID* 6924 0 7.254861111e+00-7.341789478e-02* +* 1.275090000e+01 0 0 +GRID* 6925 0 7.329774306e+00-8.382162964e-02* +* 1.290716250e+01 0 0 +GRID* 6926 0 7.329774306e+00-7.132162964e-02* +* 1.290716250e+01 0 0 +GRID* 6927 0 7.404687500e+00-8.172536450e-02* +* 1.306342500e+01 0 0 +GRID* 6928 0 7.404687500e+00-6.922536450e-02* +* 1.306342500e+01 0 0 +GRID* 6929 0 7.479600694e+00-7.962909936e-02* +* 1.321968750e+01 0 0 +GRID* 6930 0 7.479600694e+00-6.712909936e-02* +* 1.321968750e+01 0 0 +GRID* 6931 0 7.288281250e+00 9.617292517e-02* +* 1.259463750e+01 0 0 +GRID* 6932 0 7.288281250e+00 8.367292517e-02* +* 1.259463750e+01 0 0 +GRID* 6933 0 7.360416667e+00 9.387071134e-02* +* 1.275090000e+01 0 0 +GRID* 6934 0 7.360416667e+00 8.137071134e-02* +* 1.275090000e+01 0 0 +GRID* 6935 0 7.432552083e+00 9.156849752e-02* +* 1.290716250e+01 0 0 +GRID* 6936 0 7.432552083e+00 7.906849752e-02* +* 1.290716250e+01 0 0 +GRID* 6937 0 7.504687500e+00 8.926628369e-02* +* 1.306342500e+01 0 0 +GRID* 6938 0 7.504687500e+00 7.676628369e-02* +* 1.306342500e+01 0 0 +GRID* 6939 0 7.576822917e+00 8.696406987e-02* +* 1.321968750e+01 0 0 +GRID* 6940 0 7.576822917e+00 7.446406987e-02* +* 1.321968750e+01 0 0 +GRID* 6941 0 7.288281250e+00-9.429454594e-02* +* 1.259463750e+01 0 0 +GRID* 6942 0 7.288281250e+00-8.179454594e-02* +* 1.259463750e+01 0 0 +GRID* 6943 0 7.360416667e+00-9.203360082e-02* +* 1.275090000e+01 0 0 +GRID* 6944 0 7.360416667e+00-7.953360082e-02* +* 1.275090000e+01 0 0 +GRID* 6945 0 7.432552083e+00-8.977265569e-02* +* 1.290716250e+01 0 0 +GRID* 6946 0 7.432552083e+00-7.727265569e-02* +* 1.290716250e+01 0 0 +GRID* 6947 0 7.504687500e+00-8.751171057e-02* +* 1.306342500e+01 0 0 +GRID* 6948 0 7.504687500e+00-7.501171057e-02* +* 1.306342500e+01 0 0 +GRID* 6949 0 7.576822917e+00-8.525076545e-02* +* 1.321968750e+01 0 0 +GRID* 6950 0 7.576822917e+00-7.275076545e-02* +* 1.321968750e+01 0 0 +GRID* 6951 0 7.396614583e+00 1.011367613e-01* +* 1.259463750e+01 0 0 +GRID* 6952 0 7.396614583e+00 8.863676128e-02* +* 1.259463750e+01 0 0 +GRID* 6953 0 7.465972222e+00 9.871624034e-02* +* 1.275090000e+01 0 0 +GRID* 6954 0 7.465972222e+00 8.621624034e-02* +* 1.275090000e+01 0 0 +GRID* 6955 0 7.535329861e+00 9.629571939e-02* +* 1.290716250e+01 0 0 +GRID* 6956 0 7.535329861e+00 8.379571939e-02* +* 1.290716250e+01 0 0 +GRID* 6957 0 7.604687500e+00 9.387519844e-02* +* 1.306342500e+01 0 0 +GRID* 6958 0 7.604687500e+00 8.137519844e-02* +* 1.306342500e+01 0 0 +GRID* 6959 0 7.674045139e+00 9.145467750e-02* +* 1.321968750e+01 0 0 +GRID* 6960 0 7.674045139e+00 7.895467750e-02* +* 1.321968750e+01 0 0 +GRID* 6961 0 7.396614583e+00-9.707693774e-02* +* 1.259463750e+01 0 0 +GRID* 6962 0 7.396614583e+00-8.457693774e-02* +* 1.259463750e+01 0 0 +GRID* 6963 0 7.465972222e+00-9.476194320e-02* +* 1.275090000e+01 0 0 +GRID* 6964 0 7.465972222e+00-8.226194320e-02* +* 1.275090000e+01 0 0 +GRID* 6965 0 7.535329861e+00-9.244694866e-02* +* 1.290716250e+01 0 0 +GRID* 6966 0 7.535329861e+00-7.994694866e-02* +* 1.290716250e+01 0 0 +GRID* 6967 0 7.604687500e+00-9.013195412e-02* +* 1.306342500e+01 0 0 +GRID* 6968 0 7.604687500e+00-7.763195412e-02* +* 1.306342500e+01 0 0 +GRID* 6969 0 7.674045139e+00-8.781695959e-02* +* 1.321968750e+01 0 0 +GRID* 6970 0 7.674045139e+00-7.531695959e-02* +* 1.321968750e+01 0 0 +GRID* 6971 0 7.504947917e+00 1.036919997e-01* +* 1.259463750e+01 0 0 +GRID* 6972 0 7.504947917e+00 9.119199973e-02* +* 1.259463750e+01 0 0 +GRID* 6973 0 7.571527778e+00 1.012286813e-01* +* 1.275090000e+01 0 0 +GRID* 6974 0 7.571527778e+00 8.872868128e-02* +* 1.275090000e+01 0 0 +GRID* 6975 0 7.638107639e+00 9.876536284e-02* +* 1.290716250e+01 0 0 +GRID* 6976 0 7.638107639e+00 8.626536284e-02* +* 1.290716250e+01 0 0 +GRID* 6977 0 7.704687500e+00 9.630204439e-02* +* 1.306342500e+01 0 0 +GRID* 6978 0 7.704687500e+00 8.380204439e-02* +* 1.306342500e+01 0 0 +GRID* 6979 0 7.771267361e+00 9.383872594e-02* +* 1.321968750e+01 0 0 +GRID* 6980 0 7.771267361e+00 8.133872594e-02* +* 1.321968750e+01 0 0 +GRID* 6981 0 7.504947917e+00-9.458064067e-02* +* 1.259463750e+01 0 0 +GRID* 6982 0 7.504947917e+00-8.208064067e-02* +* 1.259463750e+01 0 0 +GRID* 6983 0 7.571527778e+00-9.238076303e-02* +* 1.275090000e+01 0 0 +GRID* 6984 0 7.571527778e+00-7.988076303e-02* +* 1.275090000e+01 0 0 +GRID* 6985 0 7.638107639e+00-9.018088538e-02* +* 1.290716250e+01 0 0 +GRID* 6986 0 7.638107639e+00-7.768088538e-02* +* 1.290716250e+01 0 0 +GRID* 6987 0 7.704687500e+00-8.798100773e-02* +* 1.306342500e+01 0 0 +GRID* 6988 0 7.704687500e+00-7.548100773e-02* +* 1.306342500e+01 0 0 +GRID* 6989 0 7.771267361e+00-8.578113009e-02* +* 1.321968750e+01 0 0 +GRID* 6990 0 7.771267361e+00-7.328113009e-02* +* 1.321968750e+01 0 0 +GRID* 6991 0 7.613281250e+00 1.036589881e-01* +* 1.259463750e+01 0 0 +GRID* 6992 0 7.613281250e+00 9.115898808e-02* +* 1.259463750e+01 0 0 +GRID* 6993 0 7.677083333e+00 1.012345903e-01* +* 1.275090000e+01 0 0 +GRID* 6994 0 7.677083333e+00 8.873459034e-02* +* 1.275090000e+01 0 0 +GRID* 6995 0 7.740885417e+00 9.881019260e-02* +* 1.290716250e+01 0 0 +GRID* 6996 0 7.740885417e+00 8.631019260e-02* +* 1.290716250e+01 0 0 +GRID* 6997 0 7.804687500e+00 9.638172490e-02* +* 1.306342500e+01 0 0 +GRID* 6998 0 7.804687500e+00 8.388172490e-02* +* 1.306342500e+01 0 0 +GRID* 6999 0 7.868489583e+00 9.394173901e-02* +* 1.321968750e+01 0 0 +GRID* 7000 0 7.868489583e+00 8.144173901e-02* +* 1.321968750e+01 0 0 +GRID* 7001 0 7.613281250e+00-8.681930517e-02* +* 1.259463750e+01 0 0 +GRID* 7002 0 7.613281250e+00-7.431930517e-02* +* 1.259463750e+01 0 0 +GRID* 7003 0 7.677083333e+00-8.488030407e-02* +* 1.275090000e+01 0 0 +GRID* 7004 0 7.677083333e+00-7.238030407e-02* +* 1.275090000e+01 0 0 +GRID* 7005 0 7.740885417e+00-8.294130297e-02* +* 1.290716250e+01 0 0 +GRID* 7006 0 7.740885417e+00-7.044130297e-02* +* 1.290716250e+01 0 0 +GRID* 7007 0 7.804687500e+00-8.100230187e-02* +* 1.306342500e+01 0 0 +GRID* 7008 0 7.804687500e+00-6.850230187e-02* +* 1.306342500e+01 0 0 +GRID* 7009 0 7.868489583e+00-7.905857643e-02* +* 1.321968750e+01 0 0 +GRID* 7010 0 7.868489583e+00-6.655857643e-02* +* 1.321968750e+01 0 0 +GRID* 7011 0 7.721614583e+00 1.008631691e-01* +* 1.259463750e+01 0 0 +GRID* 7012 0 7.721614583e+00 8.836316907e-02* +* 1.259463750e+01 0 0 +GRID* 7013 0 7.782638889e+00 9.854511698e-02* +* 1.275090000e+01 0 0 +GRID* 7014 0 7.782638889e+00 8.604511698e-02* +* 1.275090000e+01 0 0 +GRID* 7015 0 7.843663194e+00 9.622706490e-02* +* 1.290716250e+01 0 0 +GRID* 7016 0 7.843663194e+00 8.372706490e-02* +* 1.290716250e+01 0 0 +GRID* 7017 0 7.904687500e+00 9.390901281e-02* +* 1.306342500e+01 0 0 +GRID* 7018 0 7.904687500e+00 8.140901281e-02* +* 1.306342500e+01 0 0 +GRID* 7019 0 7.965711806e+00 9.159096073e-02* +* 1.321968750e+01 0 0 +GRID* 7020 0 7.965711806e+00 7.909096073e-02* +* 1.321968750e+01 0 0 +GRID* 7021 0 7.721614583e+00-7.519424528e-02* +* 1.259463750e+01 0 0 +GRID* 7022 0 7.721614583e+00-6.269424528e-02* +* 1.259463750e+01 0 0 +GRID* 7023 0 7.782638889e+00-7.359580229e-02* +* 1.275090000e+01 0 0 +GRID* 7024 0 7.782638889e+00-6.109580229e-02* +* 1.275090000e+01 0 0 +GRID* 7025 0 7.843663194e+00-7.199294596e-02* +* 1.290716250e+01 0 0 +GRID* 7026 0 7.843663194e+00-5.949294596e-02* +* 1.290716250e+01 0 0 +GRID* 7027 0 7.904687500e+00-7.039008963e-02* +* 1.306342500e+01 0 0 +GRID* 7028 0 7.904687500e+00-5.789008963e-02* +* 1.306342500e+01 0 0 +GRID* 7029 0 7.965711806e+00-6.878723329e-02* +* 1.321968750e+01 0 0 +GRID* 7030 0 7.965711806e+00-5.628723329e-02* +* 1.321968750e+01 0 0 +GRID* 7031 0 7.829947917e+00 9.517441704e-02* +* 1.259463750e+01 0 0 +GRID* 7032 0 7.829947917e+00 8.267441704e-02* +* 1.259463750e+01 0 0 +GRID* 7033 0 7.888194444e+00 9.306718049e-02* +* 1.275090000e+01 0 0 +GRID* 7034 0 7.888194444e+00 8.056718049e-02* +* 1.275090000e+01 0 0 +GRID* 7035 0 7.946440972e+00 9.095994394e-02* +* 1.290716250e+01 0 0 +GRID* 7036 0 7.946440972e+00 7.845994394e-02* +* 1.290716250e+01 0 0 +GRID* 7037 0 8.004687500e+00 8.885270739e-02* +* 1.306342500e+01 0 0 +GRID* 7038 0 8.004687500e+00 7.635270739e-02* +* 1.306342500e+01 0 0 +GRID* 7039 0 8.062934028e+00 8.674547084e-02* +* 1.321968750e+01 0 0 +GRID* 7040 0 8.062934028e+00 7.424547084e-02* +* 1.321968750e+01 0 0 +GRID* 7041 0 7.829947917e+00-6.104214871e-02* +* 1.259463750e+01 0 0 +GRID* 7042 0 7.829947917e+00-4.854214871e-02* +* 1.259463750e+01 0 0 +GRID* 7043 0 7.888194444e+00-5.984823273e-02* +* 1.275090000e+01 0 0 +GRID* 7044 0 7.888194444e+00-4.734823273e-02* +* 1.275090000e+01 0 0 +GRID* 7045 0 7.946440972e+00-5.865431675e-02* +* 1.290716250e+01 0 0 +GRID* 7046 0 7.946440972e+00-4.615431675e-02* +* 1.290716250e+01 0 0 +GRID* 7047 0 8.004687500e+00-5.746040077e-02* +* 1.306342500e+01 0 0 +GRID* 7048 0 8.004687500e+00-4.496040077e-02* +* 1.306342500e+01 0 0 +GRID* 7049 0 8.062934028e+00-5.626648479e-02* +* 1.321968750e+01 0 0 +GRID* 7050 0 8.062934028e+00-4.376648479e-02* +* 1.321968750e+01 0 0 +GRID* 7051 0 7.412847222e+00 7.603549717e-02* +* 1.337595000e+01 0 0 +GRID* 7052 0 7.491927083e+00 7.441353457e-02* +* 1.353221250e+01 0 0 +GRID* 7053 0 7.571006944e+00 7.279157196e-02* +* 1.368847500e+01 0 0 +GRID* 7054 0 7.650086806e+00 7.116960935e-02* +* 1.384473750e+01 0 0 +GRID* 7055 0 7.460069444e+00 8.202508100e-02* +* 1.337595000e+01 0 0 +GRID* 7056 0 7.537760417e+00 8.018922802e-02* +* 1.353221250e+01 0 0 +GRID* 7057 0 7.615451389e+00 7.835337505e-02* +* 1.368847500e+01 0 0 +GRID* 7058 0 7.693142361e+00 7.651752208e-02* +* 1.384473750e+01 0 0 +GRID* 7059 0 7.412847222e+00-7.617167291e-02* +* 1.337595000e+01 0 0 +GRID* 7060 0 7.460069444e+00-8.185046589e-02* +* 1.337595000e+01 0 0 +GRID* 7061 0 7.491927083e+00-7.454139298e-02* +* 1.353221250e+01 0 0 +GRID* 7062 0 7.537760417e+00-8.001302133e-02* +* 1.353221250e+01 0 0 +GRID* 7063 0 7.571006944e+00-7.291111305e-02* +* 1.368847500e+01 0 0 +GRID* 7064 0 7.615451389e+00-7.817557676e-02* +* 1.368847500e+01 0 0 +GRID* 7065 0 7.650086806e+00-7.128083311e-02* +* 1.384473750e+01 0 0 +GRID* 7066 0 7.693142361e+00-7.633813220e-02* +* 1.384473750e+01 0 0 +GRID* 7067 0 7.507291667e+00 8.685300496e-02* +* 1.337595000e+01 0 0 +GRID* 7068 0 7.583593750e+00 8.486437305e-02* +* 1.353221250e+01 0 0 +GRID* 7069 0 7.659895833e+00 8.287574114e-02* +* 1.368847500e+01 0 0 +GRID* 7070 0 7.736197917e+00 8.088710923e-02* +* 1.384473750e+01 0 0 +GRID* 7071 0 7.554513889e+00 9.088723981e-02* +* 1.337595000e+01 0 0 +GRID* 7072 0 7.629427083e+00 8.877348825e-02* +* 1.353221250e+01 0 0 +GRID* 7073 0 7.704340278e+00 8.665973670e-02* +* 1.368847500e+01 0 0 +GRID* 7074 0 7.779253472e+00 8.454598515e-02* +* 1.384473750e+01 0 0 +GRID* 7075 0 7.507291667e+00-8.635035250e-02* +* 1.337595000e+01 0 0 +GRID* 7076 0 7.554513889e+00-9.003283421e-02* +* 1.337595000e+01 0 0 +GRID* 7077 0 7.583593750e+00-8.436918104e-02* +* 1.353221250e+01 0 0 +GRID* 7078 0 7.629427083e+00-8.793656907e-02* +* 1.353221250e+01 0 0 +GRID* 7079 0 7.659895833e+00-8.238800959e-02* +* 1.368847500e+01 0 0 +GRID* 7080 0 7.704340278e+00-8.584030393e-02* +* 1.368847500e+01 0 0 +GRID* 7081 0 7.736197917e+00-8.040683813e-02* +* 1.384473750e+01 0 0 +GRID* 7082 0 7.779253472e+00-8.374403879e-02* +* 1.384473750e+01 0 0 +GRID* 7083 0 7.601736111e+00 9.426038994e-02* +* 1.337595000e+01 0 0 +GRID* 7084 0 7.675260417e+00 9.204316245e-02* +* 1.353221250e+01 0 0 +GRID* 7085 0 7.748784722e+00 8.982593496e-02* +* 1.368847500e+01 0 0 +GRID* 7086 0 7.822309028e+00 8.760870746e-02* +* 1.384473750e+01 0 0 +GRID* 7087 0 7.648958333e+00 9.716185604e-02* +* 1.337595000e+01 0 0 +GRID* 7088 0 7.721093750e+00 9.485964222e-02* +* 1.353221250e+01 0 0 +GRID* 7089 0 7.793229167e+00 9.255742839e-02* +* 1.368847500e+01 0 0 +GRID* 7090 0 7.865364583e+00 9.025521456e-02* +* 1.384473750e+01 0 0 +GRID* 7091 0 7.601736111e+00-9.302936910e-02* +* 1.337595000e+01 0 0 +GRID* 7092 0 7.648958333e+00-9.548982032e-02* +* 1.337595000e+01 0 0 +GRID* 7093 0 7.675260417e+00-9.084040521e-02* +* 1.353221250e+01 0 0 +GRID* 7094 0 7.721093750e+00-9.322887520e-02* +* 1.353221250e+01 0 0 +GRID* 7095 0 7.748784722e+00-8.865144132e-02* +* 1.368847500e+01 0 0 +GRID* 7096 0 7.793229167e+00-9.096793007e-02* +* 1.368847500e+01 0 0 +GRID* 7097 0 7.822309028e+00-8.646247743e-02* +* 1.384473750e+01 0 0 +GRID* 7098 0 7.865364583e+00-8.870698495e-02* +* 1.384473750e+01 0 0 +GRID* 7099 0 7.696180556e+00 9.962285727e-02* +* 1.337595000e+01 0 0 +GRID* 7100 0 7.766927083e+00 9.725323350e-02* +* 1.353221250e+01 0 0 +GRID* 7101 0 7.837673611e+00 9.488037145e-02* +* 1.368847500e+01 0 0 +GRID* 7102 0 7.908420139e+00 9.250750941e-02* +* 1.384473750e+01 0 0 +GRID* 7103 0 7.743402778e+00 1.015341566e-01* +* 1.337595000e+01 0 0 +GRID* 7104 0 7.812760417e+00 9.911363560e-02* +* 1.353221250e+01 0 0 +GRID* 7105 0 7.882118056e+00 9.669311466e-02* +* 1.368847500e+01 0 0 +GRID* 7106 0 7.951475694e+00 9.427259371e-02* +* 1.384473750e+01 0 0 +GRID* 7107 0 7.696180556e+00-9.725845014e-02* +* 1.337595000e+01 0 0 +GRID* 7108 0 7.743402778e+00-9.800196505e-02* +* 1.337595000e+01 0 0 +GRID* 7109 0 7.766927083e+00-9.495465062e-02* +* 1.353221250e+01 0 0 +GRID* 7110 0 7.812760417e+00-9.568697051e-02* +* 1.353221250e+01 0 0 +GRID* 7111 0 7.837673611e+00-9.265085110e-02* +* 1.368847500e+01 0 0 +GRID* 7112 0 7.882118056e+00-9.337197597e-02* +* 1.368847500e+01 0 0 +GRID* 7113 0 7.908420139e+00-9.034705158e-02* +* 1.384473750e+01 0 0 +GRID* 7114 0 7.951475694e+00-9.105698143e-02* +* 1.384473750e+01 0 0 +GRID* 7115 0 7.790625000e+00 1.029703449e-01* +* 1.337595000e+01 0 0 +GRID* 7116 0 7.858593750e+00 1.005144135e-01* +* 1.353221250e+01 0 0 +GRID* 7117 0 7.926562500e+00 9.805848212e-02* +* 1.368847500e+01 0 0 +GRID* 7118 0 7.994531250e+00 9.560255073e-02* +* 1.384473750e+01 0 0 +GRID* 7119 0 7.837847222e+00 1.038754075e-01* +* 1.337595000e+01 0 0 +GRID* 7120 0 7.904427083e+00 1.014120890e-01* +* 1.353221250e+01 0 0 +GRID* 7121 0 7.971006944e+00 9.894877060e-02* +* 1.368847500e+01 0 0 +GRID* 7122 0 8.037586806e+00 9.648545215e-02* +* 1.384473750e+01 0 0 +GRID* 7123 0 7.790625000e+00-9.767929778e-02* +* 1.337595000e+01 0 0 +GRID* 7124 0 7.837847222e+00-9.608125244e-02* +* 1.337595000e+01 0 0 +GRID* 7125 0 7.858593750e+00-9.538976961e-02* +* 1.353221250e+01 0 0 +GRID* 7126 0 7.904427083e+00-9.388137479e-02* +* 1.353221250e+01 0 0 +GRID* 7127 0 7.926562500e+00-9.310024144e-02* +* 1.368847500e+01 0 0 +GRID* 7128 0 7.971006944e+00-9.168149715e-02* +* 1.368847500e+01 0 0 +GRID* 7129 0 7.994531250e+00-9.081071327e-02* +* 1.384473750e+01 0 0 +GRID* 7130 0 8.037586806e+00-8.948161950e-02* +* 1.384473750e+01 0 0 +GRID* 7131 0 7.885069444e+00 1.042009203e-01* +* 1.337595000e+01 0 0 +GRID* 7132 0 7.950260417e+00 1.017405411e-01* +* 1.353221250e+01 0 0 +GRID* 7133 0 8.015451389e+00 9.928016187e-02* +* 1.368847500e+01 0 0 +GRID* 7134 0 8.080642361e+00 9.681978268e-02* +* 1.384473750e+01 0 0 +GRID* 7135 0 7.932291667e+00 1.040017531e-01* +* 1.337595000e+01 0 0 +GRID* 7136 0 7.996093750e+00 1.015617672e-01* +* 1.353221250e+01 0 0 +GRID* 7137 0 8.059895833e+00 9.912178135e-02* +* 1.368847500e+01 0 0 +GRID* 7138 0 8.123697917e+00 9.668179547e-02* +* 1.384473750e+01 0 0 +GRID* 7139 0 7.885069444e+00-9.330170998e-02* +* 1.337595000e+01 0 0 +GRID* 7140 0 7.932291667e+00-8.959674791e-02* +* 1.337595000e+01 0 0 +GRID* 7141 0 7.950260417e+00-9.120702474e-02* +* 1.353221250e+01 0 0 +GRID* 7142 0 7.996093750e+00-8.763491940e-02* +* 1.353221250e+01 0 0 +GRID* 7143 0 8.015451389e+00-8.911233949e-02* +* 1.368847500e+01 0 0 +GRID* 7144 0 8.059895833e+00-8.567309088e-02* +* 1.368847500e+01 0 0 +GRID* 7145 0 8.080642361e+00-8.701765425e-02* +* 1.384473750e+01 0 0 +GRID* 7146 0 8.123697917e+00-8.371126237e-02* +* 1.384473750e+01 0 0 +GRID* 7147 0 7.979513889e+00 1.031823941e-01* +* 1.337595000e+01 0 0 +GRID* 7148 0 8.041927083e+00 1.008019115e-01* +* 1.353221250e+01 0 0 +GRID* 7149 0 8.104340278e+00 9.842142894e-02* +* 1.368847500e+01 0 0 +GRID* 7150 0 8.166753472e+00 9.604094635e-02* +* 1.384473750e+01 0 0 +GRID* 7151 0 8.026736111e+00 1.017729086e-01* +* 1.337595000e+01 0 0 +GRID* 7152 0 8.087760417e+00 9.945485656e-02* +* 1.353221250e+01 0 0 +GRID* 7153 0 8.148784722e+00 9.713680447e-02* +* 1.368847500e+01 0 0 +GRID* 7154 0 8.209809028e+00 9.481875239e-02* +* 1.384473750e+01 0 0 +GRID* 7155 0 7.979513889e+00-8.496978892e-02* +* 1.337595000e+01 0 0 +GRID* 7156 0 8.026736111e+00-7.968437696e-02* +* 1.337595000e+01 0 0 +GRID* 7157 0 8.041927083e+00-8.319037563e-02* +* 1.353221250e+01 0 0 +GRID* 7158 0 8.087760417e+00-7.808152063e-02* +* 1.353221250e+01 0 0 +GRID* 7159 0 8.104340278e+00-8.141096234e-02* +* 1.368847500e+01 0 0 +GRID* 7160 0 8.148784722e+00-7.647866430e-02* +* 1.368847500e+01 0 0 +GRID* 7161 0 8.166753472e+00-7.963154905e-02* +* 1.384473750e+01 0 0 +GRID* 7162 0 8.209809028e+00-7.487580797e-02* +* 1.384473750e+01 0 0 +GRID* 7163 0 8.073958333e+00 9.979584946e-02* +* 1.337595000e+01 0 0 +GRID* 7164 0 8.133593750e+00 9.756343007e-02* +* 1.353221250e+01 0 0 +GRID* 7165 0 8.193229167e+00 9.532635997e-02* +* 1.368847500e+01 0 0 +GRID* 7166 0 8.252864583e+00 9.308928987e-02* +* 1.384473750e+01 0 0 +GRID* 7167 0 8.121180556e+00 9.713823429e-02* +* 1.337595000e+01 0 0 +GRID* 7168 0 8.179427083e+00 9.503099774e-02* +* 1.353221250e+01 0 0 +GRID* 7169 0 8.237673611e+00 9.292376119e-02* +* 1.368847500e+01 0 0 +GRID* 7170 0 8.295920139e+00 9.081652464e-02* +* 1.384473750e+01 0 0 +GRID* 7171 0 8.073958333e+00-7.386220733e-02* +* 1.337595000e+01 0 0 +GRID* 7172 0 8.121180556e+00-6.757256881e-02* +* 1.337595000e+01 0 0 +GRID* 7173 0 8.133593750e+00-7.246783318e-02* +* 1.353221250e+01 0 0 +GRID* 7174 0 8.179427083e+00-6.637865283e-02* +* 1.353221250e+01 0 0 +GRID* 7175 0 8.193229167e+00-7.105706083e-02* +* 1.368847500e+01 0 0 +GRID* 7176 0 8.237673611e+00-6.518473685e-02* +* 1.368847500e+01 0 0 +GRID* 7177 0 8.252864583e+00-6.964434869e-02* +* 1.384473750e+01 0 0 +GRID* 7178 0 8.295920139e+00-6.399082087e-02* +* 1.384473750e+01 0 0 +GRID* 7179 0 8.168402778e+00 9.391633900e-02* +* 1.337595000e+01 0 0 +GRID* 7180 0 8.225260417e+00 9.193245125e-02* +* 1.353221250e+01 0 0 +GRID* 7181 0 8.282118056e+00 8.994856349e-02* +* 1.368847500e+01 0 0 +GRID* 7182 0 8.338975694e+00 8.796467574e-02* +* 1.384473750e+01 0 0 +GRID* 7183 0 8.168402778e+00-6.099040671e-02* +* 1.337595000e+01 0 0 +GRID* 7184 0 8.225260417e+00-6.000276075e-02* +* 1.353221250e+01 0 0 +GRID* 7185 0 8.282118056e+00-5.901511479e-02* +* 1.368847500e+01 0 0 +GRID* 7186 0 8.338975694e+00-5.802746883e-02* +* 1.384473750e+01 0 0 +GRID* 7187 0 7.460069444e+00 6.952508100e-02* +* 1.337595000e+01 0 0 +GRID* 7188 0 7.460069444e+00 5.702508100e-02* +* 1.337595000e+01 0 0 +GRID* 7189 0 7.537760417e+00 6.768922802e-02* +* 1.353221250e+01 0 0 +GRID* 7190 0 7.537760417e+00 5.518922802e-02* +* 1.353221250e+01 0 0 +GRID* 7191 0 7.615451389e+00 6.585337505e-02* +* 1.368847500e+01 0 0 +GRID* 7192 0 7.615451389e+00 5.335337505e-02* +* 1.368847500e+01 0 0 +GRID* 7193 0 7.693142361e+00 6.401752208e-02* +* 1.384473750e+01 0 0 +GRID* 7194 0 7.693142361e+00 5.151752208e-02* +* 1.384473750e+01 0 0 +GRID* 7195 0 7.770833333e+00 6.132540288e-02* +* 1.400100000e+01 0 0 +GRID* 7196 0 7.770833333e+00 4.882540288e-02* +* 1.400100000e+01 0 0 +GRID* 7197 0 7.460069444e+00-6.935046589e-02* +* 1.337595000e+01 0 0 +GRID* 7198 0 7.460069444e+00-5.685046589e-02* +* 1.337595000e+01 0 0 +GRID* 7199 0 7.537760417e+00-6.751302133e-02* +* 1.353221250e+01 0 0 +GRID* 7200 0 7.537760417e+00-5.501302133e-02* +* 1.353221250e+01 0 0 +GRID* 7201 0 7.615451389e+00-6.567557676e-02* +* 1.368847500e+01 0 0 +GRID* 7202 0 7.615451389e+00-5.317557676e-02* +* 1.368847500e+01 0 0 +GRID* 7203 0 7.693142361e+00-6.383813220e-02* +* 1.384473750e+01 0 0 +GRID* 7204 0 7.693142361e+00-5.133813220e-02* +* 1.384473750e+01 0 0 +GRID* 7205 0 7.770833333e+00-6.113085869e-02* +* 1.400100000e+01 0 0 +GRID* 7206 0 7.770833333e+00-4.863085869e-02* +* 1.400100000e+01 0 0 +GRID* 7207 0 7.554513889e+00 7.838723981e-02* +* 1.337595000e+01 0 0 +GRID* 7208 0 7.554513889e+00 6.588723981e-02* +* 1.337595000e+01 0 0 +GRID* 7209 0 7.629427083e+00 7.627348825e-02* +* 1.353221250e+01 0 0 +GRID* 7210 0 7.629427083e+00 6.377348825e-02* +* 1.353221250e+01 0 0 +GRID* 7211 0 7.704340278e+00 7.415973670e-02* +* 1.368847500e+01 0 0 +GRID* 7212 0 7.704340278e+00 6.165973670e-02* +* 1.368847500e+01 0 0 +GRID* 7213 0 7.779253472e+00 7.204598515e-02* +* 1.384473750e+01 0 0 +GRID* 7214 0 7.779253472e+00 5.954598515e-02* +* 1.384473750e+01 0 0 +GRID* 7215 0 7.854166667e+00 6.938688491e-02* +* 1.400100000e+01 0 0 +GRID* 7216 0 7.854166667e+00 5.688688491e-02* +* 1.400100000e+01 0 0 +GRID* 7217 0 7.554513889e+00-7.753283421e-02* +* 1.337595000e+01 0 0 +GRID* 7218 0 7.554513889e+00-6.503283421e-02* +* 1.337595000e+01 0 0 +GRID* 7219 0 7.629427083e+00-7.543656907e-02* +* 1.353221250e+01 0 0 +GRID* 7220 0 7.629427083e+00-6.293656907e-02* +* 1.353221250e+01 0 0 +GRID* 7221 0 7.704340278e+00-7.334030393e-02* +* 1.368847500e+01 0 0 +GRID* 7222 0 7.704340278e+00-6.084030393e-02* +* 1.368847500e+01 0 0 +GRID* 7223 0 7.779253472e+00-7.124403879e-02* +* 1.384473750e+01 0 0 +GRID* 7224 0 7.779253472e+00-5.874403879e-02* +* 1.384473750e+01 0 0 +GRID* 7225 0 7.854166667e+00-6.857918914e-02* +* 1.400100000e+01 0 0 +GRID* 7226 0 7.854166667e+00-5.607918914e-02* +* 1.400100000e+01 0 0 +GRID* 7227 0 7.648958333e+00 8.466185604e-02* +* 1.337595000e+01 0 0 +GRID* 7228 0 7.648958333e+00 7.216185604e-02* +* 1.337595000e+01 0 0 +GRID* 7229 0 7.721093750e+00 8.235964222e-02* +* 1.353221250e+01 0 0 +GRID* 7230 0 7.721093750e+00 6.985964222e-02* +* 1.353221250e+01 0 0 +GRID* 7231 0 7.793229167e+00 8.005742839e-02* +* 1.368847500e+01 0 0 +GRID* 7232 0 7.793229167e+00 6.755742839e-02* +* 1.368847500e+01 0 0 +GRID* 7233 0 7.865364583e+00 7.775521456e-02* +* 1.384473750e+01 0 0 +GRID* 7234 0 7.865364583e+00 6.525521456e-02* +* 1.384473750e+01 0 0 +GRID* 7235 0 7.937500000e+00 7.512942269e-02* +* 1.400100000e+01 0 0 +GRID* 7236 0 7.937500000e+00 6.262942269e-02* +* 1.400100000e+01 0 0 +GRID* 7237 0 7.648958333e+00-8.298982032e-02* +* 1.337595000e+01 0 0 +GRID* 7238 0 7.648958333e+00-7.048982032e-02* +* 1.337595000e+01 0 0 +GRID* 7239 0 7.721093750e+00-8.072887520e-02* +* 1.353221250e+01 0 0 +GRID* 7240 0 7.721093750e+00-6.822887520e-02* +* 1.353221250e+01 0 0 +GRID* 7241 0 7.793229167e+00-7.846793007e-02* +* 1.368847500e+01 0 0 +GRID* 7242 0 7.793229167e+00-6.596793007e-02* +* 1.368847500e+01 0 0 +GRID* 7243 0 7.865364583e+00-7.620698495e-02* +* 1.384473750e+01 0 0 +GRID* 7244 0 7.865364583e+00-6.370698495e-02* +* 1.384473750e+01 0 0 +GRID* 7245 0 7.937500000e+00-7.346362721e-02* +* 1.400100000e+01 0 0 +GRID* 7246 0 7.937500000e+00-6.096362721e-02* +* 1.400100000e+01 0 0 +GRID* 7247 0 7.743402778e+00 8.903415655e-02* +* 1.337595000e+01 0 0 +GRID* 7248 0 7.743402778e+00 7.653415655e-02* +* 1.337595000e+01 0 0 +GRID* 7249 0 7.812760417e+00 8.661363560e-02* +* 1.353221250e+01 0 0 +GRID* 7250 0 7.812760417e+00 7.411363560e-02* +* 1.353221250e+01 0 0 +GRID* 7251 0 7.882118056e+00 8.419311466e-02* +* 1.368847500e+01 0 0 +GRID* 7252 0 7.882118056e+00 7.169311466e-02* +* 1.368847500e+01 0 0 +GRID* 7253 0 7.951475694e+00 8.177259371e-02* +* 1.384473750e+01 0 0 +GRID* 7254 0 7.951475694e+00 6.927259371e-02* +* 1.384473750e+01 0 0 +GRID* 7255 0 8.020833333e+00 7.915110913e-02* +* 1.400100000e+01 0 0 +GRID* 7256 0 8.020833333e+00 6.665110913e-02* +* 1.400100000e+01 0 0 +GRID* 7257 0 7.743402778e+00-8.550196505e-02* +* 1.337595000e+01 0 0 +GRID* 7258 0 7.743402778e+00-7.300196505e-02* +* 1.337595000e+01 0 0 +GRID* 7259 0 7.812760417e+00-8.318697051e-02* +* 1.353221250e+01 0 0 +GRID* 7260 0 7.812760417e+00-7.068697051e-02* +* 1.353221250e+01 0 0 +GRID* 7261 0 7.882118056e+00-8.087197597e-02* +* 1.368847500e+01 0 0 +GRID* 7262 0 7.882118056e+00-6.837197597e-02* +* 1.368847500e+01 0 0 +GRID* 7263 0 7.951475694e+00-7.855698143e-02* +* 1.384473750e+01 0 0 +GRID* 7264 0 7.951475694e+00-6.605698143e-02* +* 1.384473750e+01 0 0 +GRID* 7265 0 8.020833333e+00-7.603075409e-02* +* 1.400100000e+01 0 0 +GRID* 7266 0 8.020833333e+00-6.353075409e-02* +* 1.400100000e+01 0 0 +GRID* 7267 0 7.837847222e+00 9.137540750e-02* +* 1.337595000e+01 0 0 +GRID* 7268 0 7.837847222e+00 7.887540750e-02* +* 1.337595000e+01 0 0 +GRID* 7269 0 7.904427083e+00 8.891208905e-02* +* 1.353221250e+01 0 0 +GRID* 7270 0 7.904427083e+00 7.641208905e-02* +* 1.353221250e+01 0 0 +GRID* 7271 0 7.971006944e+00 8.644877060e-02* +* 1.368847500e+01 0 0 +GRID* 7272 0 7.971006944e+00 7.394877060e-02* +* 1.368847500e+01 0 0 +GRID* 7273 0 8.037586806e+00 8.398545215e-02* +* 1.384473750e+01 0 0 +GRID* 7274 0 8.037586806e+00 7.148545215e-02* +* 1.384473750e+01 0 0 +GRID* 7275 0 8.104166667e+00 8.104315559e-02* +* 1.400100000e+01 0 0 +GRID* 7276 0 8.104166667e+00 6.854315559e-02* +* 1.400100000e+01 0 0 +GRID* 7277 0 7.837847222e+00-8.358125244e-02* +* 1.337595000e+01 0 0 +GRID* 7278 0 7.837847222e+00-7.108125244e-02* +* 1.337595000e+01 0 0 +GRID* 7279 0 7.904427083e+00-8.138137479e-02* +* 1.353221250e+01 0 0 +GRID* 7280 0 7.904427083e+00-6.888137479e-02* +* 1.353221250e+01 0 0 +GRID* 7281 0 7.971006944e+00-7.918149715e-02* +* 1.368847500e+01 0 0 +GRID* 7282 0 7.971006944e+00-6.668149715e-02* +* 1.368847500e+01 0 0 +GRID* 7283 0 8.037586806e+00-7.698161950e-02* +* 1.384473750e+01 0 0 +GRID* 7284 0 8.037586806e+00-6.448161950e-02* +* 1.384473750e+01 0 0 +GRID* 7285 0 8.104166667e+00-7.392414365e-02* +* 1.400100000e+01 0 0 +GRID* 7286 0 8.104166667e+00-6.142414365e-02* +* 1.400100000e+01 0 0 +GRID* 7287 0 7.932291667e+00 9.150175312e-02* +* 1.337595000e+01 0 0 +GRID* 7288 0 7.932291667e+00 7.900175312e-02* +* 1.337595000e+01 0 0 +GRID* 7289 0 7.996093750e+00 8.906176724e-02* +* 1.353221250e+01 0 0 +GRID* 7290 0 7.996093750e+00 7.656176724e-02* +* 1.353221250e+01 0 0 +GRID* 7291 0 8.059895833e+00 8.662178135e-02* +* 1.368847500e+01 0 0 +GRID* 7292 0 8.059895833e+00 7.412178135e-02* +* 1.368847500e+01 0 0 +GRID* 7293 0 8.123697917e+00 8.418179547e-02* +* 1.384473750e+01 0 0 +GRID* 7294 0 8.123697917e+00 7.168179547e-02* +* 1.384473750e+01 0 0 +GRID* 7295 0 8.187500000e+00 8.120557331e-02* +* 1.400100000e+01 0 0 +GRID* 7296 0 8.187500000e+00 6.870557331e-02* +* 1.400100000e+01 0 0 +GRID* 7297 0 7.932291667e+00-7.709674791e-02* +* 1.337595000e+01 0 0 +GRID* 7298 0 7.932291667e+00-6.459674791e-02* +* 1.337595000e+01 0 0 +GRID* 7299 0 7.996093750e+00-7.513491940e-02* +* 1.353221250e+01 0 0 +GRID* 7300 0 7.996093750e+00-6.263491940e-02* +* 1.353221250e+01 0 0 +GRID* 7301 0 8.059895833e+00-7.317309088e-02* +* 1.368847500e+01 0 0 +GRID* 7302 0 8.059895833e+00-6.067309088e-02* +* 1.368847500e+01 0 0 +GRID* 7303 0 8.123697917e+00-7.121126237e-02* +* 1.384473750e+01 0 0 +GRID* 7304 0 8.123697917e+00-5.871126237e-02* +* 1.384473750e+01 0 0 +GRID* 7305 0 8.187500000e+00-6.851910771e-02* +* 1.400100000e+01 0 0 +GRID* 7306 0 8.187500000e+00-5.601910771e-02* +* 1.400100000e+01 0 0 +GRID* 7307 0 8.026736111e+00 8.927290864e-02* +* 1.337595000e+01 0 0 +GRID* 7308 0 8.026736111e+00 7.677290864e-02* +* 1.337595000e+01 0 0 +GRID* 7309 0 8.087760417e+00 8.695485656e-02* +* 1.353221250e+01 0 0 +GRID* 7310 0 8.087760417e+00 7.445485656e-02* +* 1.353221250e+01 0 0 +GRID* 7311 0 8.148784722e+00 8.463680447e-02* +* 1.368847500e+01 0 0 +GRID* 7312 0 8.148784722e+00 7.213680447e-02* +* 1.368847500e+01 0 0 +GRID* 7313 0 8.209809028e+00 8.231875239e-02* +* 1.384473750e+01 0 0 +GRID* 7314 0 8.209809028e+00 6.981875239e-02* +* 1.384473750e+01 0 0 +GRID* 7315 0 8.270833333e+00 7.956701122e-02* +* 1.400100000e+01 0 0 +GRID* 7316 0 8.270833333e+00 6.706701122e-02* +* 1.400100000e+01 0 0 +GRID* 7317 0 8.026736111e+00-6.718437696e-02* +* 1.337595000e+01 0 0 +GRID* 7318 0 8.026736111e+00-5.468437696e-02* +* 1.337595000e+01 0 0 +GRID* 7319 0 8.087760417e+00-6.558152063e-02* +* 1.353221250e+01 0 0 +GRID* 7320 0 8.087760417e+00-5.308152063e-02* +* 1.353221250e+01 0 0 +GRID* 7321 0 8.148784722e+00-6.397866430e-02* +* 1.368847500e+01 0 0 +GRID* 7322 0 8.148784722e+00-5.147866430e-02* +* 1.368847500e+01 0 0 +GRID* 7323 0 8.209809028e+00-6.237580797e-02* +* 1.384473750e+01 0 0 +GRID* 7324 0 8.209809028e+00-4.987580797e-02* +* 1.384473750e+01 0 0 +GRID* 7325 0 8.270833333e+00-6.037195827e-02* +* 1.400100000e+01 0 0 +GRID* 7326 0 8.270833333e+00-4.787195827e-02* +* 1.400100000e+01 0 0 +GRID* 7327 0 8.121180556e+00 8.463823429e-02* +* 1.337595000e+01 0 0 +GRID* 7328 0 8.121180556e+00 7.213823429e-02* +* 1.337595000e+01 0 0 +GRID* 7329 0 8.179427083e+00 8.253099774e-02* +* 1.353221250e+01 0 0 +GRID* 7330 0 8.179427083e+00 7.003099774e-02* +* 1.353221250e+01 0 0 +GRID* 7331 0 8.237673611e+00 8.042376119e-02* +* 1.368847500e+01 0 0 +GRID* 7332 0 8.237673611e+00 6.792376119e-02* +* 1.368847500e+01 0 0 +GRID* 7333 0 8.295920139e+00 7.831652464e-02* +* 1.384473750e+01 0 0 +GRID* 7334 0 8.295920139e+00 6.581652464e-02* +* 1.384473750e+01 0 0 +GRID* 7335 0 8.354166667e+00 7.606150969e-02* +* 1.400100000e+01 0 0 +GRID* 7336 0 8.354166667e+00 6.356150969e-02* +* 1.400100000e+01 0 0 +GRID* 7337 0 8.121180556e+00-5.507256881e-02* +* 1.337595000e+01 0 0 +GRID* 7338 0 8.121180556e+00-4.257256881e-02* +* 1.337595000e+01 0 0 +GRID* 7339 0 8.179427083e+00-5.387865283e-02* +* 1.353221250e+01 0 0 +GRID* 7340 0 8.179427083e+00-4.137865283e-02* +* 1.353221250e+01 0 0 +GRID* 7341 0 8.237673611e+00-5.268473685e-02* +* 1.368847500e+01 0 0 +GRID* 7342 0 8.237673611e+00-4.018473685e-02* +* 1.368847500e+01 0 0 +GRID* 7343 0 8.295920139e+00-5.149082087e-02* +* 1.384473750e+01 0 0 +GRID* 7344 0 8.295920139e+00-3.899082087e-02* +* 1.384473750e+01 0 0 +GRID* 7345 0 8.354166667e+00-5.014237420e-02* +* 1.400100000e+01 0 0 +GRID* 7346 0 8.354166667e+00-3.764237420e-02* +* 1.400100000e+01 0 0 +CQUAD4 1 1 1 2 6 5 +CQUAD4 2 1 2 3 7 6 +CQUAD4 3 1 3 4 8 7 +CQUAD4 4 1 5 6 10 9 +CQUAD4 5 1 6 7 11 10 +CQUAD4 6 1 7 8 12 11 +CQUAD4 7 2 9 10 14 13 +CQUAD4 8 2 10 11 15 14 +CQUAD4 9 2 11 12 16 15 +CQUAD4 10 2 13 14 18 17 +CQUAD4 11 2 14 15 19 18 +CQUAD4 12 2 15 16 20 19 +CQUAD4 13 3 17 18 22 21 +CQUAD4 14 3 18 19 23 22 +CQUAD4 15 3 19 20 24 23 +CQUAD4 16 3 21 22 26 25 +CQUAD4 17 3 22 23 27 26 +CQUAD4 18 3 23 24 28 27 +CQUAD4 19 4 25 26 30 29 +CQUAD4 20 4 26 27 31 30 +CQUAD4 21 4 27 28 32 31 +CQUAD4 22 4 29 30 34 33 +CQUAD4 23 4 30 31 35 34 +CQUAD4 24 4 31 32 36 35 +CQUAD4 25 5 33 34 38 37 +CQUAD4 26 5 34 35 39 38 +CQUAD4 27 5 35 36 40 39 +CQUAD4 28 5 37 38 42 41 +CQUAD4 29 5 38 39 43 42 +CQUAD4 30 5 39 40 44 43 +CQUAD4 31 6 41 42 46 45 +CQUAD4 32 6 42 43 47 46 +CQUAD4 33 6 43 44 48 47 +CQUAD4 34 6 45 46 50 49 +CQUAD4 35 6 46 47 51 50 +CQUAD4 36 6 47 48 52 51 +CQUAD4 37 7 49 50 54 53 +CQUAD4 38 7 50 51 55 54 +CQUAD4 39 7 51 52 56 55 +CQUAD4 40 7 53 54 58 57 +CQUAD4 41 7 54 55 59 58 +CQUAD4 42 7 55 56 60 59 +CQUAD4 43 8 57 58 62 61 +CQUAD4 44 8 58 59 63 62 +CQUAD4 45 8 59 60 64 63 +CQUAD4 46 8 61 62 66 65 +CQUAD4 47 8 62 63 67 66 +CQUAD4 48 8 63 64 68 67 +CQUAD4 49 9 65 66 70 69 +CQUAD4 50 9 66 67 71 70 +CQUAD4 51 9 67 68 72 71 +CQUAD4 52 9 69 70 74 73 +CQUAD4 53 9 70 71 75 74 +CQUAD4 54 9 71 72 76 75 +CQUAD4 55 10 77 78 82 81 +CQUAD4 56 10 78 79 83 82 +CQUAD4 57 10 79 80 84 83 +CQUAD4 58 10 81 82 86 85 +CQUAD4 59 10 82 83 87 86 +CQUAD4 60 10 83 84 88 87 +CQUAD4 61 11 85 86 90 89 +CQUAD4 62 11 86 87 91 90 +CQUAD4 63 11 87 88 92 91 +CQUAD4 64 11 89 90 94 93 +CQUAD4 65 11 90 91 95 94 +CQUAD4 66 11 91 92 96 95 +CQUAD4 67 12 93 94 98 97 +CQUAD4 68 12 94 95 99 98 +CQUAD4 69 12 95 96 100 99 +CQUAD4 70 12 97 98 102 101 +CQUAD4 71 12 98 99 103 102 +CQUAD4 72 12 99 100 104 103 +CQUAD4 73 13 101 102 106 105 +CQUAD4 74 13 102 103 107 106 +CQUAD4 75 13 103 104 108 107 +CQUAD4 76 13 105 106 110 109 +CQUAD4 77 13 106 107 111 110 +CQUAD4 78 13 107 108 112 111 +CQUAD4 79 14 109 110 114 113 +CQUAD4 80 14 110 111 115 114 +CQUAD4 81 14 111 112 116 115 +CQUAD4 82 14 113 114 118 117 +CQUAD4 83 14 114 115 119 118 +CQUAD4 84 14 115 116 120 119 +CQUAD4 85 15 117 118 122 121 +CQUAD4 86 15 118 119 123 122 +CQUAD4 87 15 119 120 124 123 +CQUAD4 88 15 121 122 126 125 +CQUAD4 89 15 122 123 127 126 +CQUAD4 90 15 123 124 128 127 +CQUAD4 91 16 125 126 130 129 +CQUAD4 92 16 126 127 131 130 +CQUAD4 93 16 127 128 132 131 +CQUAD4 94 16 129 130 134 133 +CQUAD4 95 16 130 131 135 134 +CQUAD4 96 16 131 132 136 135 +CQUAD4 97 17 133 134 138 137 +CQUAD4 98 17 134 135 139 138 +CQUAD4 99 17 135 136 140 139 +CQUAD4 100 17 137 138 142 141 +CQUAD4 101 17 138 139 143 142 +CQUAD4 102 17 139 140 144 143 +CQUAD4 103 18 141 142 146 145 +CQUAD4 104 18 142 143 147 146 +CQUAD4 105 18 143 144 148 147 +CQUAD4 106 18 145 146 150 149 +CQUAD4 107 18 146 147 151 150 +CQUAD4 108 18 147 148 152 151 +CQUAD4 109 19 153 154 158 157 +CQUAD4 110 19 154 155 159 158 +CQUAD4 111 19 155 156 160 159 +CQUAD4 112 19 157 158 162 161 +CQUAD4 113 19 158 159 163 162 +CQUAD4 114 19 159 160 164 163 +CQUAD4 115 20 161 162 166 165 +CQUAD4 116 20 162 163 167 166 +CQUAD4 117 20 163 164 168 167 +CQUAD4 118 20 165 166 170 169 +CQUAD4 119 20 166 167 171 170 +CQUAD4 120 20 167 168 172 171 +CQUAD4 121 21 169 170 174 173 +CQUAD4 122 21 170 171 175 174 +CQUAD4 123 21 171 172 176 175 +CQUAD4 124 21 173 174 178 177 +CQUAD4 125 21 174 175 179 178 +CQUAD4 126 21 175 176 180 179 +CQUAD4 127 22 177 178 182 181 +CQUAD4 128 22 178 179 183 182 +CQUAD4 129 22 179 180 184 183 +CQUAD4 130 22 181 182 186 185 +CQUAD4 131 22 182 183 187 186 +CQUAD4 132 22 183 184 188 187 +CQUAD4 133 23 185 186 190 189 +CQUAD4 134 23 186 187 191 190 +CQUAD4 135 23 187 188 192 191 +CQUAD4 136 23 189 190 194 193 +CQUAD4 137 23 190 191 195 194 +CQUAD4 138 23 191 192 196 195 +CQUAD4 139 24 193 194 198 197 +CQUAD4 140 24 194 195 199 198 +CQUAD4 141 24 195 196 200 199 +CQUAD4 142 24 197 198 202 201 +CQUAD4 143 24 198 199 203 202 +CQUAD4 144 24 199 200 204 203 +CQUAD4 145 25 201 202 206 205 +CQUAD4 146 25 202 203 207 206 +CQUAD4 147 25 203 204 208 207 +CQUAD4 148 25 205 206 210 209 +CQUAD4 149 25 206 207 211 210 +CQUAD4 150 25 207 208 212 211 +CQUAD4 151 26 209 210 214 213 +CQUAD4 152 26 210 211 215 214 +CQUAD4 153 26 211 212 216 215 +CQUAD4 154 26 213 214 218 217 +CQUAD4 155 26 214 215 219 218 +CQUAD4 156 26 215 216 220 219 +CQUAD4 157 27 217 218 222 221 +CQUAD4 158 27 218 219 223 222 +CQUAD4 159 27 219 220 224 223 +CQUAD4 160 27 221 222 226 225 +CQUAD4 161 27 222 223 227 226 +CQUAD4 162 27 223 224 228 227 +CQUAD4 163 28 229 230 234 233 +CQUAD4 164 28 230 231 235 234 +CQUAD4 165 28 231 232 236 235 +CQUAD4 166 28 233 234 238 237 +CQUAD4 167 28 234 235 239 238 +CQUAD4 168 28 235 236 240 239 +CQUAD4 169 29 237 238 242 241 +CQUAD4 170 29 238 239 243 242 +CQUAD4 171 29 239 240 244 243 +CQUAD4 172 29 241 242 246 245 +CQUAD4 173 29 242 243 247 246 +CQUAD4 174 29 243 244 248 247 +CQUAD4 175 30 245 246 250 249 +CQUAD4 176 30 246 247 251 250 +CQUAD4 177 30 247 248 252 251 +CQUAD4 178 30 249 250 254 253 +CQUAD4 179 30 250 251 255 254 +CQUAD4 180 30 251 252 256 255 +CQUAD4 181 31 253 254 258 257 +CQUAD4 182 31 254 255 259 258 +CQUAD4 183 31 255 256 260 259 +CQUAD4 184 31 257 258 262 261 +CQUAD4 185 31 258 259 263 262 +CQUAD4 186 31 259 260 264 263 +CQUAD4 187 32 261 262 266 265 +CQUAD4 188 32 262 263 267 266 +CQUAD4 189 32 263 264 268 267 +CQUAD4 190 32 265 266 270 269 +CQUAD4 191 32 266 267 271 270 +CQUAD4 192 32 267 268 272 271 +CQUAD4 193 33 269 270 274 273 +CQUAD4 194 33 270 271 275 274 +CQUAD4 195 33 271 272 276 275 +CQUAD4 196 33 273 274 278 277 +CQUAD4 197 33 274 275 279 278 +CQUAD4 198 33 275 276 280 279 +CQUAD4 199 34 277 278 282 281 +CQUAD4 200 34 278 279 283 282 +CQUAD4 201 34 279 280 284 283 +CQUAD4 202 34 281 282 286 285 +CQUAD4 203 34 282 283 287 286 +CQUAD4 204 34 283 284 288 287 +CQUAD4 205 35 285 286 290 289 +CQUAD4 206 35 286 287 291 290 +CQUAD4 207 35 287 288 292 291 +CQUAD4 208 35 289 290 294 293 +CQUAD4 209 35 290 291 295 294 +CQUAD4 210 35 291 292 296 295 +CQUAD4 211 36 293 294 298 297 +CQUAD4 212 36 294 295 299 298 +CQUAD4 213 36 295 296 300 299 +CQUAD4 214 36 297 298 302 301 +CQUAD4 215 36 298 299 303 302 +CQUAD4 216 36 299 300 304 303 +CQUAD4 217 37 305 306 310 309 +CQUAD4 218 37 306 307 311 310 +CQUAD4 219 37 307 308 312 311 +CQUAD4 220 37 309 310 314 313 +CQUAD4 221 37 310 311 315 314 +CQUAD4 222 37 311 312 316 315 +CQUAD4 223 38 313 314 318 317 +CQUAD4 224 38 314 315 319 318 +CQUAD4 225 38 315 316 320 319 +CQUAD4 226 38 317 318 322 321 +CQUAD4 227 38 318 319 323 322 +CQUAD4 228 38 319 320 324 323 +CQUAD4 229 39 321 322 326 325 +CQUAD4 230 39 322 323 327 326 +CQUAD4 231 39 323 324 328 327 +CQUAD4 232 39 325 326 330 329 +CQUAD4 233 39 326 327 331 330 +CQUAD4 234 39 327 328 332 331 +CQUAD4 235 40 329 330 334 333 +CQUAD4 236 40 330 331 335 334 +CQUAD4 237 40 331 332 336 335 +CQUAD4 238 40 333 334 338 337 +CQUAD4 239 40 334 335 339 338 +CQUAD4 240 40 335 336 340 339 +CQUAD4 241 41 337 338 342 341 +CQUAD4 242 41 338 339 343 342 +CQUAD4 243 41 339 340 344 343 +CQUAD4 244 41 341 342 346 345 +CQUAD4 245 41 342 343 347 346 +CQUAD4 246 41 343 344 348 347 +CQUAD4 247 42 345 346 350 349 +CQUAD4 248 42 346 347 351 350 +CQUAD4 249 42 347 348 352 351 +CQUAD4 250 42 349 350 354 353 +CQUAD4 251 42 350 351 355 354 +CQUAD4 252 42 351 352 356 355 +CQUAD4 253 43 353 354 358 357 +CQUAD4 254 43 354 355 359 358 +CQUAD4 255 43 355 356 360 359 +CQUAD4 256 43 357 358 362 361 +CQUAD4 257 43 358 359 363 362 +CQUAD4 258 43 359 360 364 363 +CQUAD4 259 44 361 362 366 365 +CQUAD4 260 44 362 363 367 366 +CQUAD4 261 44 363 364 368 367 +CQUAD4 262 44 365 366 370 369 +CQUAD4 263 44 366 367 371 370 +CQUAD4 264 44 367 368 372 371 +CQUAD4 265 45 369 370 374 373 +CQUAD4 266 45 370 371 375 374 +CQUAD4 267 45 371 372 376 375 +CQUAD4 268 45 373 374 378 377 +CQUAD4 269 45 374 375 379 378 +CQUAD4 270 45 375 376 380 379 +CQUAD4 271 46 381 382 386 385 +CQUAD4 272 46 382 383 387 386 +CQUAD4 273 46 383 384 388 387 +CQUAD4 274 46 385 386 390 389 +CQUAD4 275 46 386 387 391 390 +CQUAD4 276 46 387 388 392 391 +CQUAD4 277 47 389 390 394 393 +CQUAD4 278 47 390 391 395 394 +CQUAD4 279 47 391 392 396 395 +CQUAD4 280 47 393 394 398 397 +CQUAD4 281 47 394 395 399 398 +CQUAD4 282 47 395 396 400 399 +CQUAD4 283 48 397 398 402 401 +CQUAD4 284 48 398 399 403 402 +CQUAD4 285 48 399 400 404 403 +CQUAD4 286 48 401 402 406 405 +CQUAD4 287 48 402 403 407 406 +CQUAD4 288 48 403 404 408 407 +CQUAD4 289 49 405 406 410 409 +CQUAD4 290 49 406 407 411 410 +CQUAD4 291 49 407 408 412 411 +CQUAD4 292 49 409 410 414 413 +CQUAD4 293 49 410 411 415 414 +CQUAD4 294 49 411 412 416 415 +CQUAD4 295 50 413 414 418 417 +CQUAD4 296 50 414 415 419 418 +CQUAD4 297 50 415 416 420 419 +CQUAD4 298 50 417 418 422 421 +CQUAD4 299 50 418 419 423 422 +CQUAD4 300 50 419 420 424 423 +CQUAD4 301 51 421 422 426 425 +CQUAD4 302 51 422 423 427 426 +CQUAD4 303 51 423 424 428 427 +CQUAD4 304 51 425 426 430 429 +CQUAD4 305 51 426 427 431 430 +CQUAD4 306 51 427 428 432 431 +CQUAD4 307 52 429 430 434 433 +CQUAD4 308 52 430 431 435 434 +CQUAD4 309 52 431 432 436 435 +CQUAD4 310 52 433 434 438 437 +CQUAD4 311 52 434 435 439 438 +CQUAD4 312 52 435 436 440 439 +CQUAD4 313 53 437 438 442 441 +CQUAD4 314 53 438 439 443 442 +CQUAD4 315 53 439 440 444 443 +CQUAD4 316 53 441 442 446 445 +CQUAD4 317 53 442 443 447 446 +CQUAD4 318 53 443 444 448 447 +CQUAD4 319 54 445 446 450 449 +CQUAD4 320 54 446 447 451 450 +CQUAD4 321 54 447 448 452 451 +CQUAD4 322 54 449 450 454 453 +CQUAD4 323 54 450 451 455 454 +CQUAD4 324 54 451 452 456 455 +CQUAD4 325 55 457 458 462 461 +CQUAD4 326 55 458 459 463 462 +CQUAD4 327 55 459 460 464 463 +CQUAD4 328 55 461 462 466 465 +CQUAD4 329 55 462 463 467 466 +CQUAD4 330 55 463 464 468 467 +CQUAD4 331 56 465 466 470 469 +CQUAD4 332 56 466 467 471 470 +CQUAD4 333 56 467 468 472 471 +CQUAD4 334 56 469 470 474 473 +CQUAD4 335 56 470 471 475 474 +CQUAD4 336 56 471 472 476 475 +CQUAD4 337 57 473 474 478 477 +CQUAD4 338 57 474 475 479 478 +CQUAD4 339 57 475 476 480 479 +CQUAD4 340 57 477 478 482 481 +CQUAD4 341 57 478 479 483 482 +CQUAD4 342 57 479 480 484 483 +CQUAD4 343 58 481 482 486 485 +CQUAD4 344 58 482 483 487 486 +CQUAD4 345 58 483 484 488 487 +CQUAD4 346 58 485 486 490 489 +CQUAD4 347 58 486 487 491 490 +CQUAD4 348 58 487 488 492 491 +CQUAD4 349 59 489 490 494 493 +CQUAD4 350 59 490 491 495 494 +CQUAD4 351 59 491 492 496 495 +CQUAD4 352 59 493 494 498 497 +CQUAD4 353 59 494 495 499 498 +CQUAD4 354 59 495 496 500 499 +CQUAD4 355 60 497 498 502 501 +CQUAD4 356 60 498 499 503 502 +CQUAD4 357 60 499 500 504 503 +CQUAD4 358 60 501 502 506 505 +CQUAD4 359 60 502 503 507 506 +CQUAD4 360 60 503 504 508 507 +CQUAD4 361 61 505 506 510 509 +CQUAD4 362 61 506 507 511 510 +CQUAD4 363 61 507 508 512 511 +CQUAD4 364 61 509 510 514 513 +CQUAD4 365 61 510 511 515 514 +CQUAD4 366 61 511 512 516 515 +CQUAD4 367 62 513 514 518 517 +CQUAD4 368 62 514 515 519 518 +CQUAD4 369 62 515 516 520 519 +CQUAD4 370 62 517 518 522 521 +CQUAD4 371 62 518 519 523 522 +CQUAD4 372 62 519 520 524 523 +CQUAD4 373 63 521 522 526 525 +CQUAD4 374 63 522 523 527 526 +CQUAD4 375 63 523 524 528 527 +CQUAD4 376 63 525 526 530 529 +CQUAD4 377 63 526 527 531 530 +CQUAD4 378 63 527 528 532 531 +CQUAD4 379 64 533 534 538 537 +CQUAD4 380 64 534 535 539 538 +CQUAD4 381 64 535 536 540 539 +CQUAD4 382 64 537 538 542 541 +CQUAD4 383 64 538 539 543 542 +CQUAD4 384 64 539 540 544 543 +CQUAD4 385 65 541 542 546 545 +CQUAD4 386 65 542 543 547 546 +CQUAD4 387 65 543 544 548 547 +CQUAD4 388 65 545 546 550 549 +CQUAD4 389 65 546 547 551 550 +CQUAD4 390 65 547 548 552 551 +CQUAD4 391 66 549 550 554 553 +CQUAD4 392 66 550 551 555 554 +CQUAD4 393 66 551 552 556 555 +CQUAD4 394 66 553 554 558 557 +CQUAD4 395 66 554 555 559 558 +CQUAD4 396 66 555 556 560 559 +CQUAD4 397 67 557 558 562 561 +CQUAD4 398 67 558 559 563 562 +CQUAD4 399 67 559 560 564 563 +CQUAD4 400 67 561 562 566 565 +CQUAD4 401 67 562 563 567 566 +CQUAD4 402 67 563 564 568 567 +CQUAD4 403 68 565 566 570 569 +CQUAD4 404 68 566 567 571 570 +CQUAD4 405 68 567 568 572 571 +CQUAD4 406 68 569 570 574 573 +CQUAD4 407 68 570 571 575 574 +CQUAD4 408 68 571 572 576 575 +CQUAD4 409 69 573 574 578 577 +CQUAD4 410 69 574 575 579 578 +CQUAD4 411 69 575 576 580 579 +CQUAD4 412 69 577 578 582 581 +CQUAD4 413 69 578 579 583 582 +CQUAD4 414 69 579 580 584 583 +CQUAD4 415 70 581 582 586 585 +CQUAD4 416 70 582 583 587 586 +CQUAD4 417 70 583 584 588 587 +CQUAD4 418 70 585 586 590 589 +CQUAD4 419 70 586 587 591 590 +CQUAD4 420 70 587 588 592 591 +CQUAD4 421 71 589 590 594 593 +CQUAD4 422 71 590 591 595 594 +CQUAD4 423 71 591 592 596 595 +CQUAD4 424 71 593 594 598 597 +CQUAD4 425 71 594 595 599 598 +CQUAD4 426 71 595 596 600 599 +CQUAD4 427 72 597 598 602 601 +CQUAD4 428 72 598 599 603 602 +CQUAD4 429 72 599 600 604 603 +CQUAD4 430 72 601 602 606 605 +CQUAD4 431 72 602 603 607 606 +CQUAD4 432 72 603 604 608 607 +CQUAD4 433 73 609 610 614 613 +CQUAD4 434 73 610 611 615 614 +CQUAD4 435 73 611 612 616 615 +CQUAD4 436 73 613 614 618 617 +CQUAD4 437 73 614 615 619 618 +CQUAD4 438 73 615 616 620 619 +CQUAD4 439 74 617 618 622 621 +CQUAD4 440 74 618 619 623 622 +CQUAD4 441 74 619 620 624 623 +CQUAD4 442 74 621 622 626 625 +CQUAD4 443 74 622 623 627 626 +CQUAD4 444 74 623 624 628 627 +CQUAD4 445 75 625 626 630 629 +CQUAD4 446 75 626 627 631 630 +CQUAD4 447 75 627 628 632 631 +CQUAD4 448 75 629 630 634 633 +CQUAD4 449 75 630 631 635 634 +CQUAD4 450 75 631 632 636 635 +CQUAD4 451 76 633 634 638 637 +CQUAD4 452 76 634 635 639 638 +CQUAD4 453 76 635 636 640 639 +CQUAD4 454 76 637 638 642 641 +CQUAD4 455 76 638 639 643 642 +CQUAD4 456 76 639 640 644 643 +CQUAD4 457 77 641 642 646 645 +CQUAD4 458 77 642 643 647 646 +CQUAD4 459 77 643 644 648 647 +CQUAD4 460 77 645 646 650 649 +CQUAD4 461 77 646 647 651 650 +CQUAD4 462 77 647 648 652 651 +CQUAD4 463 78 649 650 654 653 +CQUAD4 464 78 650 651 655 654 +CQUAD4 465 78 651 652 656 655 +CQUAD4 466 78 653 654 658 657 +CQUAD4 467 78 654 655 659 658 +CQUAD4 468 78 655 656 660 659 +CQUAD4 469 79 657 658 662 661 +CQUAD4 470 79 658 659 663 662 +CQUAD4 471 79 659 660 664 663 +CQUAD4 472 79 661 662 666 665 +CQUAD4 473 79 662 663 667 666 +CQUAD4 474 79 663 664 668 667 +CQUAD4 475 80 665 666 670 669 +CQUAD4 476 80 666 667 671 670 +CQUAD4 477 80 667 668 672 671 +CQUAD4 478 80 669 670 674 673 +CQUAD4 479 80 670 671 675 674 +CQUAD4 480 80 671 672 676 675 +CQUAD4 481 81 673 674 678 677 +CQUAD4 482 81 674 675 679 678 +CQUAD4 483 81 675 676 680 679 +CQUAD4 484 81 677 678 682 681 +CQUAD4 485 81 678 679 683 682 +CQUAD4 486 81 679 680 684 683 +CQUAD4 487 82 685 686 690 689 +CQUAD4 488 82 686 687 691 690 +CQUAD4 489 82 687 688 692 691 +CQUAD4 490 82 689 690 694 693 +CQUAD4 491 82 690 691 695 694 +CQUAD4 492 82 691 692 696 695 +CQUAD4 493 83 693 694 698 697 +CQUAD4 494 83 694 695 699 698 +CQUAD4 495 83 695 696 700 699 +CQUAD4 496 83 697 698 702 701 +CQUAD4 497 83 698 699 703 702 +CQUAD4 498 83 699 700 704 703 +CQUAD4 499 84 701 702 706 705 +CQUAD4 500 84 702 703 707 706 +CQUAD4 501 84 703 704 708 707 +CQUAD4 502 84 705 706 710 709 +CQUAD4 503 84 706 707 711 710 +CQUAD4 504 84 707 708 712 711 +CQUAD4 505 85 709 710 714 713 +CQUAD4 506 85 710 711 715 714 +CQUAD4 507 85 711 712 716 715 +CQUAD4 508 85 713 714 718 717 +CQUAD4 509 85 714 715 719 718 +CQUAD4 510 85 715 716 720 719 +CQUAD4 511 86 717 718 722 721 +CQUAD4 512 86 718 719 723 722 +CQUAD4 513 86 719 720 724 723 +CQUAD4 514 86 721 722 726 725 +CQUAD4 515 86 722 723 727 726 +CQUAD4 516 86 723 724 728 727 +CQUAD4 517 87 725 726 730 729 +CQUAD4 518 87 726 727 731 730 +CQUAD4 519 87 727 728 732 731 +CQUAD4 520 87 729 730 734 733 +CQUAD4 521 87 730 731 735 734 +CQUAD4 522 87 731 732 736 735 +CQUAD4 523 88 733 734 738 737 +CQUAD4 524 88 734 735 739 738 +CQUAD4 525 88 735 736 740 739 +CQUAD4 526 88 737 738 742 741 +CQUAD4 527 88 738 739 743 742 +CQUAD4 528 88 739 740 744 743 +CQUAD4 529 89 741 742 746 745 +CQUAD4 530 89 742 743 747 746 +CQUAD4 531 89 743 744 748 747 +CQUAD4 532 89 745 746 750 749 +CQUAD4 533 89 746 747 751 750 +CQUAD4 534 89 747 748 752 751 +CQUAD4 535 90 749 750 754 753 +CQUAD4 536 90 750 751 755 754 +CQUAD4 537 90 751 752 756 755 +CQUAD4 538 90 753 754 758 757 +CQUAD4 539 90 754 755 759 758 +CQUAD4 540 90 755 756 760 759 +CQUAD4 541 91 761 762 766 765 +CQUAD4 542 91 762 763 767 766 +CQUAD4 543 91 763 764 768 767 +CQUAD4 544 91 765 766 770 769 +CQUAD4 545 91 766 767 771 770 +CQUAD4 546 91 767 768 772 771 +CQUAD4 547 92 769 770 774 773 +CQUAD4 548 92 770 771 775 774 +CQUAD4 549 92 771 772 776 775 +CQUAD4 550 92 773 774 778 777 +CQUAD4 551 92 774 775 779 778 +CQUAD4 552 92 775 776 780 779 +CQUAD4 553 93 777 778 782 781 +CQUAD4 554 93 778 779 783 782 +CQUAD4 555 93 779 780 784 783 +CQUAD4 556 93 781 782 786 785 +CQUAD4 557 93 782 783 787 786 +CQUAD4 558 93 783 784 788 787 +CQUAD4 559 94 785 786 790 789 +CQUAD4 560 94 786 787 791 790 +CQUAD4 561 94 787 788 792 791 +CQUAD4 562 94 789 790 794 793 +CQUAD4 563 94 790 791 795 794 +CQUAD4 564 94 791 792 796 795 +CQUAD4 565 95 793 794 798 797 +CQUAD4 566 95 794 795 799 798 +CQUAD4 567 95 795 796 800 799 +CQUAD4 568 95 797 798 802 801 +CQUAD4 569 95 798 799 803 802 +CQUAD4 570 95 799 800 804 803 +CQUAD4 571 96 801 802 806 805 +CQUAD4 572 96 802 803 807 806 +CQUAD4 573 96 803 804 808 807 +CQUAD4 574 96 805 806 810 809 +CQUAD4 575 96 806 807 811 810 +CQUAD4 576 96 807 808 812 811 +CQUAD4 577 97 809 810 814 813 +CQUAD4 578 97 810 811 815 814 +CQUAD4 579 97 811 812 816 815 +CQUAD4 580 97 813 814 818 817 +CQUAD4 581 97 814 815 819 818 +CQUAD4 582 97 815 816 820 819 +CQUAD4 583 98 817 818 822 821 +CQUAD4 584 98 818 819 823 822 +CQUAD4 585 98 819 820 824 823 +CQUAD4 586 98 821 822 826 825 +CQUAD4 587 98 822 823 827 826 +CQUAD4 588 98 823 824 828 827 +CQUAD4 589 99 825 826 830 829 +CQUAD4 590 99 826 827 831 830 +CQUAD4 591 99 827 828 832 831 +CQUAD4 592 99 829 830 834 833 +CQUAD4 593 99 830 831 835 834 +CQUAD4 594 99 831 832 836 835 +CQUAD4 595 100 837 838 842 841 +CQUAD4 596 100 838 839 843 842 +CQUAD4 597 100 839 840 844 843 +CQUAD4 598 100 841 842 846 845 +CQUAD4 599 100 842 843 847 846 +CQUAD4 600 100 843 844 848 847 +CQUAD4 601 101 845 846 850 849 +CQUAD4 602 101 846 847 851 850 +CQUAD4 603 101 847 848 852 851 +CQUAD4 604 101 849 850 854 853 +CQUAD4 605 101 850 851 855 854 +CQUAD4 606 101 851 852 856 855 +CQUAD4 607 102 853 854 858 857 +CQUAD4 608 102 854 855 859 858 +CQUAD4 609 102 855 856 860 859 +CQUAD4 610 102 857 858 862 861 +CQUAD4 611 102 858 859 863 862 +CQUAD4 612 102 859 860 864 863 +CQUAD4 613 103 861 862 866 865 +CQUAD4 614 103 862 863 867 866 +CQUAD4 615 103 863 864 868 867 +CQUAD4 616 103 865 866 870 869 +CQUAD4 617 103 866 867 871 870 +CQUAD4 618 103 867 868 872 871 +CQUAD4 619 104 869 870 874 873 +CQUAD4 620 104 870 871 875 874 +CQUAD4 621 104 871 872 876 875 +CQUAD4 622 104 873 874 878 877 +CQUAD4 623 104 874 875 879 878 +CQUAD4 624 104 875 876 880 879 +CQUAD4 625 105 877 878 882 881 +CQUAD4 626 105 878 879 883 882 +CQUAD4 627 105 879 880 884 883 +CQUAD4 628 105 881 882 886 885 +CQUAD4 629 105 882 883 887 886 +CQUAD4 630 105 883 884 888 887 +CQUAD4 631 106 885 886 890 889 +CQUAD4 632 106 886 887 891 890 +CQUAD4 633 106 887 888 892 891 +CQUAD4 634 106 889 890 894 893 +CQUAD4 635 106 890 891 895 894 +CQUAD4 636 106 891 892 896 895 +CQUAD4 637 107 893 894 898 897 +CQUAD4 638 107 894 895 899 898 +CQUAD4 639 107 895 896 900 899 +CQUAD4 640 107 897 898 902 901 +CQUAD4 641 107 898 899 903 902 +CQUAD4 642 107 899 900 904 903 +CQUAD4 643 108 901 902 906 905 +CQUAD4 644 108 902 903 907 906 +CQUAD4 645 108 903 904 908 907 +CQUAD4 646 108 905 906 910 909 +CQUAD4 647 108 906 907 911 910 +CQUAD4 648 108 907 908 912 911 +CQUAD4 649 109 913 914 918 917 +CQUAD4 650 109 914 915 919 918 +CQUAD4 651 109 915 916 920 919 +CQUAD4 652 109 917 918 922 921 +CQUAD4 653 109 918 919 923 922 +CQUAD4 654 109 919 920 924 923 +CQUAD4 655 110 921 922 926 925 +CQUAD4 656 110 922 923 927 926 +CQUAD4 657 110 923 924 928 927 +CQUAD4 658 110 925 926 930 929 +CQUAD4 659 110 926 927 931 930 +CQUAD4 660 110 927 928 932 931 +CQUAD4 661 111 929 930 934 933 +CQUAD4 662 111 930 931 935 934 +CQUAD4 663 111 931 932 936 935 +CQUAD4 664 111 933 934 938 937 +CQUAD4 665 111 934 935 939 938 +CQUAD4 666 111 935 936 940 939 +CQUAD4 667 112 937 938 942 941 +CQUAD4 668 112 938 939 943 942 +CQUAD4 669 112 939 940 944 943 +CQUAD4 670 112 941 942 946 945 +CQUAD4 671 112 942 943 947 946 +CQUAD4 672 112 943 944 948 947 +CQUAD4 673 113 945 946 950 949 +CQUAD4 674 113 946 947 951 950 +CQUAD4 675 113 947 948 952 951 +CQUAD4 676 113 949 950 954 953 +CQUAD4 677 113 950 951 955 954 +CQUAD4 678 113 951 952 956 955 +CQUAD4 679 114 953 954 958 957 +CQUAD4 680 114 954 955 959 958 +CQUAD4 681 114 955 956 960 959 +CQUAD4 682 114 957 958 962 961 +CQUAD4 683 114 958 959 963 962 +CQUAD4 684 114 959 960 964 963 +CQUAD4 685 115 961 962 966 965 +CQUAD4 686 115 962 963 967 966 +CQUAD4 687 115 963 964 968 967 +CQUAD4 688 115 965 966 970 969 +CQUAD4 689 115 966 967 971 970 +CQUAD4 690 115 967 968 972 971 +CQUAD4 691 116 969 970 974 973 +CQUAD4 692 116 970 971 975 974 +CQUAD4 693 116 971 972 976 975 +CQUAD4 694 116 973 974 978 977 +CQUAD4 695 116 974 975 979 978 +CQUAD4 696 116 975 976 980 979 +CQUAD4 697 117 977 978 982 981 +CQUAD4 698 117 978 979 983 982 +CQUAD4 699 117 979 980 984 983 +CQUAD4 700 117 981 982 986 985 +CQUAD4 701 117 982 983 987 986 +CQUAD4 702 117 983 984 988 987 +CQUAD4 703 118 989 990 994 993 +CQUAD4 704 118 990 991 995 994 +CQUAD4 705 118 991 992 996 995 +CQUAD4 706 118 993 994 998 997 +CQUAD4 707 118 994 995 999 998 +CQUAD4 708 118 995 996 1000 999 +CQUAD4 709 119 997 998 1002 1001 +CQUAD4 710 119 998 999 1003 1002 +CQUAD4 711 119 999 1000 1004 1003 +CQUAD4 712 119 1001 1002 1006 1005 +CQUAD4 713 119 1002 1003 1007 1006 +CQUAD4 714 119 1003 1004 1008 1007 +CQUAD4 715 120 1005 1006 1010 1009 +CQUAD4 716 120 1006 1007 1011 1010 +CQUAD4 717 120 1007 1008 1012 1011 +CQUAD4 718 120 1009 1010 1014 1013 +CQUAD4 719 120 1010 1011 1015 1014 +CQUAD4 720 120 1011 1012 1016 1015 +CQUAD4 721 121 1013 1014 1018 1017 +CQUAD4 722 121 1014 1015 1019 1018 +CQUAD4 723 121 1015 1016 1020 1019 +CQUAD4 724 121 1017 1018 1022 1021 +CQUAD4 725 121 1018 1019 1023 1022 +CQUAD4 726 121 1019 1020 1024 1023 +CQUAD4 727 122 1021 1022 1026 1025 +CQUAD4 728 122 1022 1023 1027 1026 +CQUAD4 729 122 1023 1024 1028 1027 +CQUAD4 730 122 1025 1026 1030 1029 +CQUAD4 731 122 1026 1027 1031 1030 +CQUAD4 732 122 1027 1028 1032 1031 +CQUAD4 733 123 1029 1030 1034 1033 +CQUAD4 734 123 1030 1031 1035 1034 +CQUAD4 735 123 1031 1032 1036 1035 +CQUAD4 736 123 1033 1034 1038 1037 +CQUAD4 737 123 1034 1035 1039 1038 +CQUAD4 738 123 1035 1036 1040 1039 +CQUAD4 739 124 1037 1038 1042 1041 +CQUAD4 740 124 1038 1039 1043 1042 +CQUAD4 741 124 1039 1040 1044 1043 +CQUAD4 742 124 1041 1042 1046 1045 +CQUAD4 743 124 1042 1043 1047 1046 +CQUAD4 744 124 1043 1044 1048 1047 +CQUAD4 745 125 1045 1046 1050 1049 +CQUAD4 746 125 1046 1047 1051 1050 +CQUAD4 747 125 1047 1048 1052 1051 +CQUAD4 748 125 1049 1050 1054 1053 +CQUAD4 749 125 1050 1051 1055 1054 +CQUAD4 750 125 1051 1052 1056 1055 +CQUAD4 751 126 1053 1054 1058 1057 +CQUAD4 752 126 1054 1055 1059 1058 +CQUAD4 753 126 1055 1056 1060 1059 +CQUAD4 754 126 1057 1058 1062 1061 +CQUAD4 755 126 1058 1059 1063 1062 +CQUAD4 756 126 1059 1060 1064 1063 +CQUAD4 757 127 1065 1066 1070 1069 +CQUAD4 758 127 1066 1067 1071 1070 +CQUAD4 759 127 1067 1068 1072 1071 +CQUAD4 760 127 1069 1070 1074 1073 +CQUAD4 761 127 1070 1071 1075 1074 +CQUAD4 762 127 1071 1072 1076 1075 +CQUAD4 763 128 1073 1074 1078 1077 +CQUAD4 764 128 1074 1075 1079 1078 +CQUAD4 765 128 1075 1076 1080 1079 +CQUAD4 766 128 1077 1078 1082 1081 +CQUAD4 767 128 1078 1079 1083 1082 +CQUAD4 768 128 1079 1080 1084 1083 +CQUAD4 769 129 1081 1082 1086 1085 +CQUAD4 770 129 1082 1083 1087 1086 +CQUAD4 771 129 1083 1084 1088 1087 +CQUAD4 772 129 1085 1086 1090 1089 +CQUAD4 773 129 1086 1087 1091 1090 +CQUAD4 774 129 1087 1088 1092 1091 +CQUAD4 775 130 1089 1090 1094 1093 +CQUAD4 776 130 1090 1091 1095 1094 +CQUAD4 777 130 1091 1092 1096 1095 +CQUAD4 778 130 1093 1094 1098 1097 +CQUAD4 779 130 1094 1095 1099 1098 +CQUAD4 780 130 1095 1096 1100 1099 +CQUAD4 781 131 1097 1098 1102 1101 +CQUAD4 782 131 1098 1099 1103 1102 +CQUAD4 783 131 1099 1100 1104 1103 +CQUAD4 784 131 1101 1102 1106 1105 +CQUAD4 785 131 1102 1103 1107 1106 +CQUAD4 786 131 1103 1104 1108 1107 +CQUAD4 787 132 1105 1106 1110 1109 +CQUAD4 788 132 1106 1107 1111 1110 +CQUAD4 789 132 1107 1108 1112 1111 +CQUAD4 790 132 1109 1110 1114 1113 +CQUAD4 791 132 1110 1111 1115 1114 +CQUAD4 792 132 1111 1112 1116 1115 +CQUAD4 793 133 1113 1114 1118 1117 +CQUAD4 794 133 1114 1115 1119 1118 +CQUAD4 795 133 1115 1116 1120 1119 +CQUAD4 796 133 1117 1118 1122 1121 +CQUAD4 797 133 1118 1119 1123 1122 +CQUAD4 798 133 1119 1120 1124 1123 +CQUAD4 799 134 1121 1122 1126 1125 +CQUAD4 800 134 1122 1123 1127 1126 +CQUAD4 801 134 1123 1124 1128 1127 +CQUAD4 802 134 1125 1126 1130 1129 +CQUAD4 803 134 1126 1127 1131 1130 +CQUAD4 804 134 1127 1128 1132 1131 +CQUAD4 805 135 1129 1130 1134 1133 +CQUAD4 806 135 1130 1131 1135 1134 +CQUAD4 807 135 1131 1132 1136 1135 +CQUAD4 808 135 1133 1134 1138 1137 +CQUAD4 809 135 1134 1135 1139 1138 +CQUAD4 810 135 1135 1136 1140 1139 +CQUAD4 811 136 1141 1142 1146 1145 +CQUAD4 812 136 1142 1143 1147 1146 +CQUAD4 813 136 1143 1144 1148 1147 +CQUAD4 814 136 1145 1146 1150 1149 +CQUAD4 815 136 1146 1147 1151 1150 +CQUAD4 816 136 1147 1148 1152 1151 +CQUAD4 817 137 1149 1150 1154 1153 +CQUAD4 818 137 1150 1151 1155 1154 +CQUAD4 819 137 1151 1152 1156 1155 +CQUAD4 820 137 1153 1154 1158 1157 +CQUAD4 821 137 1154 1155 1159 1158 +CQUAD4 822 137 1155 1156 1160 1159 +CQUAD4 823 138 1157 1158 1162 1161 +CQUAD4 824 138 1158 1159 1163 1162 +CQUAD4 825 138 1159 1160 1164 1163 +CQUAD4 826 138 1161 1162 1166 1165 +CQUAD4 827 138 1162 1163 1167 1166 +CQUAD4 828 138 1163 1164 1168 1167 +CQUAD4 829 139 1165 1166 1170 1169 +CQUAD4 830 139 1166 1167 1171 1170 +CQUAD4 831 139 1167 1168 1172 1171 +CQUAD4 832 139 1169 1170 1174 1173 +CQUAD4 833 139 1170 1171 1175 1174 +CQUAD4 834 139 1171 1172 1176 1175 +CQUAD4 835 140 1173 1174 1178 1177 +CQUAD4 836 140 1174 1175 1179 1178 +CQUAD4 837 140 1175 1176 1180 1179 +CQUAD4 838 140 1177 1178 1182 1181 +CQUAD4 839 140 1178 1179 1183 1182 +CQUAD4 840 140 1179 1180 1184 1183 +CQUAD4 841 141 1181 1182 1186 1185 +CQUAD4 842 141 1182 1183 1187 1186 +CQUAD4 843 141 1183 1184 1188 1187 +CQUAD4 844 141 1185 1186 1190 1189 +CQUAD4 845 141 1186 1187 1191 1190 +CQUAD4 846 141 1187 1188 1192 1191 +CQUAD4 847 142 1189 1190 1194 1193 +CQUAD4 848 142 1190 1191 1195 1194 +CQUAD4 849 142 1191 1192 1196 1195 +CQUAD4 850 142 1193 1194 1198 1197 +CQUAD4 851 142 1194 1195 1199 1198 +CQUAD4 852 142 1195 1196 1200 1199 +CQUAD4 853 143 1197 1198 1202 1201 +CQUAD4 854 143 1198 1199 1203 1202 +CQUAD4 855 143 1199 1200 1204 1203 +CQUAD4 856 143 1201 1202 1206 1205 +CQUAD4 857 143 1202 1203 1207 1206 +CQUAD4 858 143 1203 1204 1208 1207 +CQUAD4 859 144 1205 1206 1210 1209 +CQUAD4 860 144 1206 1207 1211 1210 +CQUAD4 861 144 1207 1208 1212 1211 +CQUAD4 862 144 1209 1210 1214 1213 +CQUAD4 863 144 1210 1211 1215 1214 +CQUAD4 864 144 1211 1212 1216 1215 +CQUAD4 865 145 1217 1218 1222 1221 +CQUAD4 866 145 1218 1219 1223 1222 +CQUAD4 867 145 1219 1220 1224 1223 +CQUAD4 868 145 1221 1222 1226 1225 +CQUAD4 869 145 1222 1223 1227 1226 +CQUAD4 870 145 1223 1224 1228 1227 +CQUAD4 871 146 1225 1226 1230 1229 +CQUAD4 872 146 1226 1227 1231 1230 +CQUAD4 873 146 1227 1228 1232 1231 +CQUAD4 874 146 1229 1230 1234 1233 +CQUAD4 875 146 1230 1231 1235 1234 +CQUAD4 876 146 1231 1232 1236 1235 +CQUAD4 877 147 1233 1234 1238 1237 +CQUAD4 878 147 1234 1235 1239 1238 +CQUAD4 879 147 1235 1236 1240 1239 +CQUAD4 880 147 1237 1238 1242 1241 +CQUAD4 881 147 1238 1239 1243 1242 +CQUAD4 882 147 1239 1240 1244 1243 +CQUAD4 883 148 1241 1242 1246 1245 +CQUAD4 884 148 1242 1243 1247 1246 +CQUAD4 885 148 1243 1244 1248 1247 +CQUAD4 886 148 1245 1246 1250 1249 +CQUAD4 887 148 1246 1247 1251 1250 +CQUAD4 888 148 1247 1248 1252 1251 +CQUAD4 889 149 1249 1250 1254 1253 +CQUAD4 890 149 1250 1251 1255 1254 +CQUAD4 891 149 1251 1252 1256 1255 +CQUAD4 892 149 1253 1254 1258 1257 +CQUAD4 893 149 1254 1255 1259 1258 +CQUAD4 894 149 1255 1256 1260 1259 +CQUAD4 895 150 1257 1258 1262 1261 +CQUAD4 896 150 1258 1259 1263 1262 +CQUAD4 897 150 1259 1260 1264 1263 +CQUAD4 898 150 1261 1262 1266 1265 +CQUAD4 899 150 1262 1263 1267 1266 +CQUAD4 900 150 1263 1264 1268 1267 +CQUAD4 901 151 1265 1266 1270 1269 +CQUAD4 902 151 1266 1267 1271 1270 +CQUAD4 903 151 1267 1268 1272 1271 +CQUAD4 904 151 1269 1270 1274 1273 +CQUAD4 905 151 1270 1271 1275 1274 +CQUAD4 906 151 1271 1272 1276 1275 +CQUAD4 907 152 1273 1274 1278 1277 +CQUAD4 908 152 1274 1275 1279 1278 +CQUAD4 909 152 1275 1276 1280 1279 +CQUAD4 910 152 1277 1278 1282 1281 +CQUAD4 911 152 1278 1279 1283 1282 +CQUAD4 912 152 1279 1280 1284 1283 +CQUAD4 913 153 1281 1282 1286 1285 +CQUAD4 914 153 1282 1283 1287 1286 +CQUAD4 915 153 1283 1284 1288 1287 +CQUAD4 916 153 1285 1286 1290 1289 +CQUAD4 917 153 1286 1287 1291 1290 +CQUAD4 918 153 1287 1288 1292 1291 +CQUAD4 919 154 1293 1294 1298 1297 +CQUAD4 920 154 1294 1295 1299 1298 +CQUAD4 921 154 1295 1296 1300 1299 +CQUAD4 922 154 1297 1298 1302 1301 +CQUAD4 923 154 1298 1299 1303 1302 +CQUAD4 924 154 1299 1300 1304 1303 +CQUAD4 925 155 1301 1302 1306 1305 +CQUAD4 926 155 1302 1303 1307 1306 +CQUAD4 927 155 1303 1304 1308 1307 +CQUAD4 928 155 1305 1306 1310 1309 +CQUAD4 929 155 1306 1307 1311 1310 +CQUAD4 930 155 1307 1308 1312 1311 +CQUAD4 931 156 1309 1310 1314 1313 +CQUAD4 932 156 1310 1311 1315 1314 +CQUAD4 933 156 1311 1312 1316 1315 +CQUAD4 934 156 1313 1314 1318 1317 +CQUAD4 935 156 1314 1315 1319 1318 +CQUAD4 936 156 1315 1316 1320 1319 +CQUAD4 937 157 1317 1318 1322 1321 +CQUAD4 938 157 1318 1319 1323 1322 +CQUAD4 939 157 1319 1320 1324 1323 +CQUAD4 940 157 1321 1322 1326 1325 +CQUAD4 941 157 1322 1323 1327 1326 +CQUAD4 942 157 1323 1324 1328 1327 +CQUAD4 943 158 1325 1326 1330 1329 +CQUAD4 944 158 1326 1327 1331 1330 +CQUAD4 945 158 1327 1328 1332 1331 +CQUAD4 946 158 1329 1330 1334 1333 +CQUAD4 947 158 1330 1331 1335 1334 +CQUAD4 948 158 1331 1332 1336 1335 +CQUAD4 949 159 1333 1334 1338 1337 +CQUAD4 950 159 1334 1335 1339 1338 +CQUAD4 951 159 1335 1336 1340 1339 +CQUAD4 952 159 1337 1338 1342 1341 +CQUAD4 953 159 1338 1339 1343 1342 +CQUAD4 954 159 1339 1340 1344 1343 +CQUAD4 955 160 1341 1342 1346 1345 +CQUAD4 956 160 1342 1343 1347 1346 +CQUAD4 957 160 1343 1344 1348 1347 +CQUAD4 958 160 1345 1346 1350 1349 +CQUAD4 959 160 1346 1347 1351 1350 +CQUAD4 960 160 1347 1348 1352 1351 +CQUAD4 961 161 1349 1350 1354 1353 +CQUAD4 962 161 1350 1351 1355 1354 +CQUAD4 963 161 1351 1352 1356 1355 +CQUAD4 964 161 1353 1354 1358 1357 +CQUAD4 965 161 1354 1355 1359 1358 +CQUAD4 966 161 1355 1356 1360 1359 +CQUAD4 967 162 1357 1358 1362 1361 +CQUAD4 968 162 1358 1359 1363 1362 +CQUAD4 969 162 1359 1360 1364 1363 +CQUAD4 970 162 1361 1362 1366 1365 +CQUAD4 971 162 1362 1363 1367 1366 +CQUAD4 972 162 1363 1364 1368 1367 +CQUAD4 973 163 1369 1370 1375 1374 +CQUAD4 974 163 1370 1371 1376 1375 +CQUAD4 975 163 1371 1372 1377 1376 +CQUAD4 976 163 1372 1373 1378 1377 +CQUAD4 977 163 1373 1 2 1378 +CQUAD4 978 163 1374 1375 1380 1379 +CQUAD4 979 163 1375 1376 1381 1380 +CQUAD4 980 163 1376 1377 1382 1381 +CQUAD4 981 163 1377 1378 1383 1382 +CQUAD4 982 163 1378 2 3 1383 +CQUAD4 983 163 1379 1380 1385 1384 +CQUAD4 984 163 1380 1381 1386 1385 +CQUAD4 985 163 1381 1382 1387 1386 +CQUAD4 986 163 1382 1383 1388 1387 +CQUAD4 987 163 1383 3 4 1388 +CQUAD4 988 164 1 1389 1393 2 +CQUAD4 989 164 1389 1390 1394 1393 +CQUAD4 990 164 1390 1391 1395 1394 +CQUAD4 991 164 1391 1392 1396 1395 +CQUAD4 992 164 1392 77 78 1396 +CQUAD4 993 164 2 1393 1397 3 +CQUAD4 994 164 1393 1394 1398 1397 +CQUAD4 995 164 1394 1395 1399 1398 +CQUAD4 996 164 1395 1396 1400 1399 +CQUAD4 997 164 1396 78 79 1400 +CQUAD4 998 164 3 1397 1401 4 +CQUAD4 999 164 1397 1398 1402 1401 +CQUAD4 1000 164 1398 1399 1403 1402 +CQUAD4 1001 164 1399 1400 1404 1403 +CQUAD4 1002 164 1400 79 80 1404 +CQUAD4 1003 165 77 1405 1409 78 +CQUAD4 1004 165 1405 1406 1410 1409 +CQUAD4 1005 165 1406 1407 1411 1410 +CQUAD4 1006 165 1407 1408 1412 1411 +CQUAD4 1007 165 1408 153 154 1412 +CQUAD4 1008 165 78 1409 1413 79 +CQUAD4 1009 165 1409 1410 1414 1413 +CQUAD4 1010 165 1410 1411 1415 1414 +CQUAD4 1011 165 1411 1412 1416 1415 +CQUAD4 1012 165 1412 154 155 1416 +CQUAD4 1013 165 79 1413 1417 80 +CQUAD4 1014 165 1413 1414 1418 1417 +CQUAD4 1015 165 1414 1415 1419 1418 +CQUAD4 1016 165 1415 1416 1420 1419 +CQUAD4 1017 165 1416 155 156 1420 +CQUAD4 1018 166 153 1421 1425 154 +CQUAD4 1019 166 1421 1422 1426 1425 +CQUAD4 1020 166 1422 1423 1427 1426 +CQUAD4 1021 166 1423 1424 1428 1427 +CQUAD4 1022 166 1424 229 230 1428 +CQUAD4 1023 166 154 1425 1429 155 +CQUAD4 1024 166 1425 1426 1430 1429 +CQUAD4 1025 166 1426 1427 1431 1430 +CQUAD4 1026 166 1427 1428 1432 1431 +CQUAD4 1027 166 1428 230 231 1432 +CQUAD4 1028 166 155 1429 1433 156 +CQUAD4 1029 166 1429 1430 1434 1433 +CQUAD4 1030 166 1430 1431 1435 1434 +CQUAD4 1031 166 1431 1432 1436 1435 +CQUAD4 1032 166 1432 231 232 1436 +CQUAD4 1033 167 229 1437 1441 230 +CQUAD4 1034 167 1437 1438 1442 1441 +CQUAD4 1035 167 1438 1439 1443 1442 +CQUAD4 1036 167 1439 1440 1444 1443 +CQUAD4 1037 167 1440 305 306 1444 +CQUAD4 1038 167 230 1441 1445 231 +CQUAD4 1039 167 1441 1442 1446 1445 +CQUAD4 1040 167 1442 1443 1447 1446 +CQUAD4 1041 167 1443 1444 1448 1447 +CQUAD4 1042 167 1444 306 307 1448 +CQUAD4 1043 167 231 1445 1449 232 +CQUAD4 1044 167 1445 1446 1450 1449 +CQUAD4 1045 167 1446 1447 1451 1450 +CQUAD4 1046 167 1447 1448 1452 1451 +CQUAD4 1047 167 1448 307 308 1452 +CQUAD4 1048 168 305 1453 1457 306 +CQUAD4 1049 168 1453 1454 1458 1457 +CQUAD4 1050 168 1454 1455 1459 1458 +CQUAD4 1051 168 1455 1456 1460 1459 +CQUAD4 1052 168 1456 381 382 1460 +CQUAD4 1053 168 306 1457 1461 307 +CQUAD4 1054 168 1457 1458 1462 1461 +CQUAD4 1055 168 1458 1459 1463 1462 +CQUAD4 1056 168 1459 1460 1464 1463 +CQUAD4 1057 168 1460 382 383 1464 +CQUAD4 1058 168 307 1461 1465 308 +CQUAD4 1059 168 1461 1462 1466 1465 +CQUAD4 1060 168 1462 1463 1467 1466 +CQUAD4 1061 168 1463 1464 1468 1467 +CQUAD4 1062 168 1464 383 384 1468 +CQUAD4 1063 169 381 1469 1473 382 +CQUAD4 1064 169 1469 1470 1474 1473 +CQUAD4 1065 169 1470 1471 1475 1474 +CQUAD4 1066 169 1471 1472 1476 1475 +CQUAD4 1067 169 1472 457 458 1476 +CQUAD4 1068 169 382 1473 1477 383 +CQUAD4 1069 169 1473 1474 1478 1477 +CQUAD4 1070 169 1474 1475 1479 1478 +CQUAD4 1071 169 1475 1476 1480 1479 +CQUAD4 1072 169 1476 458 459 1480 +CQUAD4 1073 169 383 1477 1481 384 +CQUAD4 1074 169 1477 1478 1482 1481 +CQUAD4 1075 169 1478 1479 1483 1482 +CQUAD4 1076 169 1479 1480 1484 1483 +CQUAD4 1077 169 1480 459 460 1484 +CQUAD4 1078 170 457 1485 1489 458 +CQUAD4 1079 170 1485 1486 1490 1489 +CQUAD4 1080 170 1486 1487 1491 1490 +CQUAD4 1081 170 1487 1488 1492 1491 +CQUAD4 1082 170 1488 533 534 1492 +CQUAD4 1083 170 458 1489 1493 459 +CQUAD4 1084 170 1489 1490 1494 1493 +CQUAD4 1085 170 1490 1491 1495 1494 +CQUAD4 1086 170 1491 1492 1496 1495 +CQUAD4 1087 170 1492 534 535 1496 +CQUAD4 1088 170 459 1493 1497 460 +CQUAD4 1089 170 1493 1494 1498 1497 +CQUAD4 1090 170 1494 1495 1499 1498 +CQUAD4 1091 170 1495 1496 1500 1499 +CQUAD4 1092 170 1496 535 536 1500 +CQUAD4 1093 171 533 1501 1505 534 +CQUAD4 1094 171 1501 1502 1506 1505 +CQUAD4 1095 171 1502 1503 1507 1506 +CQUAD4 1096 171 1503 1504 1508 1507 +CQUAD4 1097 171 1504 609 610 1508 +CQUAD4 1098 171 534 1505 1509 535 +CQUAD4 1099 171 1505 1506 1510 1509 +CQUAD4 1100 171 1506 1507 1511 1510 +CQUAD4 1101 171 1507 1508 1512 1511 +CQUAD4 1102 171 1508 610 611 1512 +CQUAD4 1103 171 535 1509 1513 536 +CQUAD4 1104 171 1509 1510 1514 1513 +CQUAD4 1105 171 1510 1511 1515 1514 +CQUAD4 1106 171 1511 1512 1516 1515 +CQUAD4 1107 171 1512 611 612 1516 +CQUAD4 1108 172 609 1517 1521 610 +CQUAD4 1109 172 1517 1518 1522 1521 +CQUAD4 1110 172 1518 1519 1523 1522 +CQUAD4 1111 172 1519 1520 1524 1523 +CQUAD4 1112 172 1520 685 686 1524 +CQUAD4 1113 172 610 1521 1525 611 +CQUAD4 1114 172 1521 1522 1526 1525 +CQUAD4 1115 172 1522 1523 1527 1526 +CQUAD4 1116 172 1523 1524 1528 1527 +CQUAD4 1117 172 1524 686 687 1528 +CQUAD4 1118 172 611 1525 1529 612 +CQUAD4 1119 172 1525 1526 1530 1529 +CQUAD4 1120 172 1526 1527 1531 1530 +CQUAD4 1121 172 1527 1528 1532 1531 +CQUAD4 1122 172 1528 687 688 1532 +CQUAD4 1123 173 685 1533 1537 686 +CQUAD4 1124 173 1533 1534 1538 1537 +CQUAD4 1125 173 1534 1535 1539 1538 +CQUAD4 1126 173 1535 1536 1540 1539 +CQUAD4 1127 173 1536 761 762 1540 +CQUAD4 1128 173 686 1537 1541 687 +CQUAD4 1129 173 1537 1538 1542 1541 +CQUAD4 1130 173 1538 1539 1543 1542 +CQUAD4 1131 173 1539 1540 1544 1543 +CQUAD4 1132 173 1540 762 763 1544 +CQUAD4 1133 173 687 1541 1545 688 +CQUAD4 1134 173 1541 1542 1546 1545 +CQUAD4 1135 173 1542 1543 1547 1546 +CQUAD4 1136 173 1543 1544 1548 1547 +CQUAD4 1137 173 1544 763 764 1548 +CQUAD4 1138 174 761 1549 1553 762 +CQUAD4 1139 174 1549 1550 1554 1553 +CQUAD4 1140 174 1550 1551 1555 1554 +CQUAD4 1141 174 1551 1552 1556 1555 +CQUAD4 1142 174 1552 837 838 1556 +CQUAD4 1143 174 762 1553 1557 763 +CQUAD4 1144 174 1553 1554 1558 1557 +CQUAD4 1145 174 1554 1555 1559 1558 +CQUAD4 1146 174 1555 1556 1560 1559 +CQUAD4 1147 174 1556 838 839 1560 +CQUAD4 1148 174 763 1557 1561 764 +CQUAD4 1149 174 1557 1558 1562 1561 +CQUAD4 1150 174 1558 1559 1563 1562 +CQUAD4 1151 174 1559 1560 1564 1563 +CQUAD4 1152 174 1560 839 840 1564 +CQUAD4 1153 175 837 1565 1569 838 +CQUAD4 1154 175 1565 1566 1570 1569 +CQUAD4 1155 175 1566 1567 1571 1570 +CQUAD4 1156 175 1567 1568 1572 1571 +CQUAD4 1157 175 1568 913 914 1572 +CQUAD4 1158 175 838 1569 1573 839 +CQUAD4 1159 175 1569 1570 1574 1573 +CQUAD4 1160 175 1570 1571 1575 1574 +CQUAD4 1161 175 1571 1572 1576 1575 +CQUAD4 1162 175 1572 914 915 1576 +CQUAD4 1163 175 839 1573 1577 840 +CQUAD4 1164 175 1573 1574 1578 1577 +CQUAD4 1165 175 1574 1575 1579 1578 +CQUAD4 1166 175 1575 1576 1580 1579 +CQUAD4 1167 175 1576 915 916 1580 +CQUAD4 1168 176 913 1581 1585 914 +CQUAD4 1169 176 1581 1582 1586 1585 +CQUAD4 1170 176 1582 1583 1587 1586 +CQUAD4 1171 176 1583 1584 1588 1587 +CQUAD4 1172 176 1584 989 990 1588 +CQUAD4 1173 176 914 1585 1589 915 +CQUAD4 1174 176 1585 1586 1590 1589 +CQUAD4 1175 176 1586 1587 1591 1590 +CQUAD4 1176 176 1587 1588 1592 1591 +CQUAD4 1177 176 1588 990 991 1592 +CQUAD4 1178 176 915 1589 1593 916 +CQUAD4 1179 176 1589 1590 1594 1593 +CQUAD4 1180 176 1590 1591 1595 1594 +CQUAD4 1181 176 1591 1592 1596 1595 +CQUAD4 1182 176 1592 991 992 1596 +CQUAD4 1183 177 989 1597 1601 990 +CQUAD4 1184 177 1597 1598 1602 1601 +CQUAD4 1185 177 1598 1599 1603 1602 +CQUAD4 1186 177 1599 1600 1604 1603 +CQUAD4 1187 177 1600 1065 1066 1604 +CQUAD4 1188 177 990 1601 1605 991 +CQUAD4 1189 177 1601 1602 1606 1605 +CQUAD4 1190 177 1602 1603 1607 1606 +CQUAD4 1191 177 1603 1604 1608 1607 +CQUAD4 1192 177 1604 1066 1067 1608 +CQUAD4 1193 177 991 1605 1609 992 +CQUAD4 1194 177 1605 1606 1610 1609 +CQUAD4 1195 177 1606 1607 1611 1610 +CQUAD4 1196 177 1607 1608 1612 1611 +CQUAD4 1197 177 1608 1067 1068 1612 +CQUAD4 1198 178 1065 1613 1617 1066 +CQUAD4 1199 178 1613 1614 1618 1617 +CQUAD4 1200 178 1614 1615 1619 1618 +CQUAD4 1201 178 1615 1616 1620 1619 +CQUAD4 1202 178 1616 1141 1142 1620 +CQUAD4 1203 178 1066 1617 1621 1067 +CQUAD4 1204 178 1617 1618 1622 1621 +CQUAD4 1205 178 1618 1619 1623 1622 +CQUAD4 1206 178 1619 1620 1624 1623 +CQUAD4 1207 178 1620 1142 1143 1624 +CQUAD4 1208 178 1067 1621 1625 1068 +CQUAD4 1209 178 1621 1622 1626 1625 +CQUAD4 1210 178 1622 1623 1627 1626 +CQUAD4 1211 178 1623 1624 1628 1627 +CQUAD4 1212 178 1624 1143 1144 1628 +CQUAD4 1213 179 1141 1629 1633 1142 +CQUAD4 1214 179 1629 1630 1634 1633 +CQUAD4 1215 179 1630 1631 1635 1634 +CQUAD4 1216 179 1631 1632 1636 1635 +CQUAD4 1217 179 1632 1217 1218 1636 +CQUAD4 1218 179 1142 1633 1637 1143 +CQUAD4 1219 179 1633 1634 1638 1637 +CQUAD4 1220 179 1634 1635 1639 1638 +CQUAD4 1221 179 1635 1636 1640 1639 +CQUAD4 1222 179 1636 1218 1219 1640 +CQUAD4 1223 179 1143 1637 1641 1144 +CQUAD4 1224 179 1637 1638 1642 1641 +CQUAD4 1225 179 1638 1639 1643 1642 +CQUAD4 1226 179 1639 1640 1644 1643 +CQUAD4 1227 179 1640 1219 1220 1644 +CQUAD4 1228 180 1217 1645 1649 1218 +CQUAD4 1229 180 1645 1646 1650 1649 +CQUAD4 1230 180 1646 1647 1651 1650 +CQUAD4 1231 180 1647 1648 1652 1651 +CQUAD4 1232 180 1648 1293 1294 1652 +CQUAD4 1233 180 1218 1649 1653 1219 +CQUAD4 1234 180 1649 1650 1654 1653 +CQUAD4 1235 180 1650 1651 1655 1654 +CQUAD4 1236 180 1651 1652 1656 1655 +CQUAD4 1237 180 1652 1294 1295 1656 +CQUAD4 1238 180 1219 1653 1657 1220 +CQUAD4 1239 180 1653 1654 1658 1657 +CQUAD4 1240 180 1654 1655 1659 1658 +CQUAD4 1241 180 1655 1656 1660 1659 +CQUAD4 1242 180 1656 1295 1296 1660 +CQUAD4 1243 181 1661 1662 1667 1666 +CQUAD4 1244 181 1662 1663 1668 1667 +CQUAD4 1245 181 1663 1664 1669 1668 +CQUAD4 1246 181 1664 1665 1670 1669 +CQUAD4 1247 181 1665 73 74 1670 +CQUAD4 1248 181 1666 1667 1672 1671 +CQUAD4 1249 181 1667 1668 1673 1672 +CQUAD4 1250 181 1668 1669 1674 1673 +CQUAD4 1251 181 1669 1670 1675 1674 +CQUAD4 1252 181 1670 74 75 1675 +CQUAD4 1253 181 1671 1672 1677 1676 +CQUAD4 1254 181 1672 1673 1678 1677 +CQUAD4 1255 181 1673 1674 1679 1678 +CQUAD4 1256 181 1674 1675 1680 1679 +CQUAD4 1257 181 1675 75 76 1680 +CQUAD4 1258 182 73 1681 1685 74 +CQUAD4 1259 182 1681 1682 1686 1685 +CQUAD4 1260 182 1682 1683 1687 1686 +CQUAD4 1261 182 1683 1684 1688 1687 +CQUAD4 1262 182 1684 149 150 1688 +CQUAD4 1263 182 74 1685 1689 75 +CQUAD4 1264 182 1685 1686 1690 1689 +CQUAD4 1265 182 1686 1687 1691 1690 +CQUAD4 1266 182 1687 1688 1692 1691 +CQUAD4 1267 182 1688 150 151 1692 +CQUAD4 1268 182 75 1689 1693 76 +CQUAD4 1269 182 1689 1690 1694 1693 +CQUAD4 1270 182 1690 1691 1695 1694 +CQUAD4 1271 182 1691 1692 1696 1695 +CQUAD4 1272 182 1692 151 152 1696 +CQUAD4 1273 183 149 1697 1701 150 +CQUAD4 1274 183 1697 1698 1702 1701 +CQUAD4 1275 183 1698 1699 1703 1702 +CQUAD4 1276 183 1699 1700 1704 1703 +CQUAD4 1277 183 1700 225 226 1704 +CQUAD4 1278 183 150 1701 1705 151 +CQUAD4 1279 183 1701 1702 1706 1705 +CQUAD4 1280 183 1702 1703 1707 1706 +CQUAD4 1281 183 1703 1704 1708 1707 +CQUAD4 1282 183 1704 226 227 1708 +CQUAD4 1283 183 151 1705 1709 152 +CQUAD4 1284 183 1705 1706 1710 1709 +CQUAD4 1285 183 1706 1707 1711 1710 +CQUAD4 1286 183 1707 1708 1712 1711 +CQUAD4 1287 183 1708 227 228 1712 +CQUAD4 1288 184 225 1713 1717 226 +CQUAD4 1289 184 1713 1714 1718 1717 +CQUAD4 1290 184 1714 1715 1719 1718 +CQUAD4 1291 184 1715 1716 1720 1719 +CQUAD4 1292 184 1716 301 302 1720 +CQUAD4 1293 184 226 1717 1721 227 +CQUAD4 1294 184 1717 1718 1722 1721 +CQUAD4 1295 184 1718 1719 1723 1722 +CQUAD4 1296 184 1719 1720 1724 1723 +CQUAD4 1297 184 1720 302 303 1724 +CQUAD4 1298 184 227 1721 1725 228 +CQUAD4 1299 184 1721 1722 1726 1725 +CQUAD4 1300 184 1722 1723 1727 1726 +CQUAD4 1301 184 1723 1724 1728 1727 +CQUAD4 1302 184 1724 303 304 1728 +CQUAD4 1303 185 301 1729 1733 302 +CQUAD4 1304 185 1729 1730 1734 1733 +CQUAD4 1305 185 1730 1731 1735 1734 +CQUAD4 1306 185 1731 1732 1736 1735 +CQUAD4 1307 185 1732 377 378 1736 +CQUAD4 1308 185 302 1733 1737 303 +CQUAD4 1309 185 1733 1734 1738 1737 +CQUAD4 1310 185 1734 1735 1739 1738 +CQUAD4 1311 185 1735 1736 1740 1739 +CQUAD4 1312 185 1736 378 379 1740 +CQUAD4 1313 185 303 1737 1741 304 +CQUAD4 1314 185 1737 1738 1742 1741 +CQUAD4 1315 185 1738 1739 1743 1742 +CQUAD4 1316 185 1739 1740 1744 1743 +CQUAD4 1317 185 1740 379 380 1744 +CQUAD4 1318 186 377 1745 1749 378 +CQUAD4 1319 186 1745 1746 1750 1749 +CQUAD4 1320 186 1746 1747 1751 1750 +CQUAD4 1321 186 1747 1748 1752 1751 +CQUAD4 1322 186 1748 453 454 1752 +CQUAD4 1323 186 378 1749 1753 379 +CQUAD4 1324 186 1749 1750 1754 1753 +CQUAD4 1325 186 1750 1751 1755 1754 +CQUAD4 1326 186 1751 1752 1756 1755 +CQUAD4 1327 186 1752 454 455 1756 +CQUAD4 1328 186 379 1753 1757 380 +CQUAD4 1329 186 1753 1754 1758 1757 +CQUAD4 1330 186 1754 1755 1759 1758 +CQUAD4 1331 186 1755 1756 1760 1759 +CQUAD4 1332 186 1756 455 456 1760 +CQUAD4 1333 187 453 1761 1765 454 +CQUAD4 1334 187 1761 1762 1766 1765 +CQUAD4 1335 187 1762 1763 1767 1766 +CQUAD4 1336 187 1763 1764 1768 1767 +CQUAD4 1337 187 1764 529 530 1768 +CQUAD4 1338 187 454 1765 1769 455 +CQUAD4 1339 187 1765 1766 1770 1769 +CQUAD4 1340 187 1766 1767 1771 1770 +CQUAD4 1341 187 1767 1768 1772 1771 +CQUAD4 1342 187 1768 530 531 1772 +CQUAD4 1343 187 455 1769 1773 456 +CQUAD4 1344 187 1769 1770 1774 1773 +CQUAD4 1345 187 1770 1771 1775 1774 +CQUAD4 1346 187 1771 1772 1776 1775 +CQUAD4 1347 187 1772 531 532 1776 +CQUAD4 1348 188 529 1777 1781 530 +CQUAD4 1349 188 1777 1778 1782 1781 +CQUAD4 1350 188 1778 1779 1783 1782 +CQUAD4 1351 188 1779 1780 1784 1783 +CQUAD4 1352 188 1780 605 606 1784 +CQUAD4 1353 188 530 1781 1785 531 +CQUAD4 1354 188 1781 1782 1786 1785 +CQUAD4 1355 188 1782 1783 1787 1786 +CQUAD4 1356 188 1783 1784 1788 1787 +CQUAD4 1357 188 1784 606 607 1788 +CQUAD4 1358 188 531 1785 1789 532 +CQUAD4 1359 188 1785 1786 1790 1789 +CQUAD4 1360 188 1786 1787 1791 1790 +CQUAD4 1361 188 1787 1788 1792 1791 +CQUAD4 1362 188 1788 607 608 1792 +CQUAD4 1363 189 605 1793 1797 606 +CQUAD4 1364 189 1793 1794 1798 1797 +CQUAD4 1365 189 1794 1795 1799 1798 +CQUAD4 1366 189 1795 1796 1800 1799 +CQUAD4 1367 189 1796 681 682 1800 +CQUAD4 1368 189 606 1797 1801 607 +CQUAD4 1369 189 1797 1798 1802 1801 +CQUAD4 1370 189 1798 1799 1803 1802 +CQUAD4 1371 189 1799 1800 1804 1803 +CQUAD4 1372 189 1800 682 683 1804 +CQUAD4 1373 189 607 1801 1805 608 +CQUAD4 1374 189 1801 1802 1806 1805 +CQUAD4 1375 189 1802 1803 1807 1806 +CQUAD4 1376 189 1803 1804 1808 1807 +CQUAD4 1377 189 1804 683 684 1808 +CQUAD4 1378 190 681 1809 1813 682 +CQUAD4 1379 190 1809 1810 1814 1813 +CQUAD4 1380 190 1810 1811 1815 1814 +CQUAD4 1381 190 1811 1812 1816 1815 +CQUAD4 1382 190 1812 757 758 1816 +CQUAD4 1383 190 682 1813 1817 683 +CQUAD4 1384 190 1813 1814 1818 1817 +CQUAD4 1385 190 1814 1815 1819 1818 +CQUAD4 1386 190 1815 1816 1820 1819 +CQUAD4 1387 190 1816 758 759 1820 +CQUAD4 1388 190 683 1817 1821 684 +CQUAD4 1389 190 1817 1818 1822 1821 +CQUAD4 1390 190 1818 1819 1823 1822 +CQUAD4 1391 190 1819 1820 1824 1823 +CQUAD4 1392 190 1820 759 760 1824 +CQUAD4 1393 191 757 1825 1829 758 +CQUAD4 1394 191 1825 1826 1830 1829 +CQUAD4 1395 191 1826 1827 1831 1830 +CQUAD4 1396 191 1827 1828 1832 1831 +CQUAD4 1397 191 1828 833 834 1832 +CQUAD4 1398 191 758 1829 1833 759 +CQUAD4 1399 191 1829 1830 1834 1833 +CQUAD4 1400 191 1830 1831 1835 1834 +CQUAD4 1401 191 1831 1832 1836 1835 +CQUAD4 1402 191 1832 834 835 1836 +CQUAD4 1403 191 759 1833 1837 760 +CQUAD4 1404 191 1833 1834 1838 1837 +CQUAD4 1405 191 1834 1835 1839 1838 +CQUAD4 1406 191 1835 1836 1840 1839 +CQUAD4 1407 191 1836 835 836 1840 +CQUAD4 1408 192 833 1841 1845 834 +CQUAD4 1409 192 1841 1842 1846 1845 +CQUAD4 1410 192 1842 1843 1847 1846 +CQUAD4 1411 192 1843 1844 1848 1847 +CQUAD4 1412 192 1844 909 910 1848 +CQUAD4 1413 192 834 1845 1849 835 +CQUAD4 1414 192 1845 1846 1850 1849 +CQUAD4 1415 192 1846 1847 1851 1850 +CQUAD4 1416 192 1847 1848 1852 1851 +CQUAD4 1417 192 1848 910 911 1852 +CQUAD4 1418 192 835 1849 1853 836 +CQUAD4 1419 192 1849 1850 1854 1853 +CQUAD4 1420 192 1850 1851 1855 1854 +CQUAD4 1421 192 1851 1852 1856 1855 +CQUAD4 1422 192 1852 911 912 1856 +CQUAD4 1423 193 909 1857 1861 910 +CQUAD4 1424 193 1857 1858 1862 1861 +CQUAD4 1425 193 1858 1859 1863 1862 +CQUAD4 1426 193 1859 1860 1864 1863 +CQUAD4 1427 193 1860 985 986 1864 +CQUAD4 1428 193 910 1861 1865 911 +CQUAD4 1429 193 1861 1862 1866 1865 +CQUAD4 1430 193 1862 1863 1867 1866 +CQUAD4 1431 193 1863 1864 1868 1867 +CQUAD4 1432 193 1864 986 987 1868 +CQUAD4 1433 193 911 1865 1869 912 +CQUAD4 1434 193 1865 1866 1870 1869 +CQUAD4 1435 193 1866 1867 1871 1870 +CQUAD4 1436 193 1867 1868 1872 1871 +CQUAD4 1437 193 1868 987 988 1872 +CQUAD4 1438 194 985 1873 1877 986 +CQUAD4 1439 194 1873 1874 1878 1877 +CQUAD4 1440 194 1874 1875 1879 1878 +CQUAD4 1441 194 1875 1876 1880 1879 +CQUAD4 1442 194 1876 1061 1062 1880 +CQUAD4 1443 194 986 1877 1881 987 +CQUAD4 1444 194 1877 1878 1882 1881 +CQUAD4 1445 194 1878 1879 1883 1882 +CQUAD4 1446 194 1879 1880 1884 1883 +CQUAD4 1447 194 1880 1062 1063 1884 +CQUAD4 1448 194 987 1881 1885 988 +CQUAD4 1449 194 1881 1882 1886 1885 +CQUAD4 1450 194 1882 1883 1887 1886 +CQUAD4 1451 194 1883 1884 1888 1887 +CQUAD4 1452 194 1884 1063 1064 1888 +CQUAD4 1453 195 1061 1889 1893 1062 +CQUAD4 1454 195 1889 1890 1894 1893 +CQUAD4 1455 195 1890 1891 1895 1894 +CQUAD4 1456 195 1891 1892 1896 1895 +CQUAD4 1457 195 1892 1137 1138 1896 +CQUAD4 1458 195 1062 1893 1897 1063 +CQUAD4 1459 195 1893 1894 1898 1897 +CQUAD4 1460 195 1894 1895 1899 1898 +CQUAD4 1461 195 1895 1896 1900 1899 +CQUAD4 1462 195 1896 1138 1139 1900 +CQUAD4 1463 195 1063 1897 1901 1064 +CQUAD4 1464 195 1897 1898 1902 1901 +CQUAD4 1465 195 1898 1899 1903 1902 +CQUAD4 1466 195 1899 1900 1904 1903 +CQUAD4 1467 195 1900 1139 1140 1904 +CQUAD4 1468 196 1137 1905 1909 1138 +CQUAD4 1469 196 1905 1906 1910 1909 +CQUAD4 1470 196 1906 1907 1911 1910 +CQUAD4 1471 196 1907 1908 1912 1911 +CQUAD4 1472 196 1908 1213 1214 1912 +CQUAD4 1473 196 1138 1909 1913 1139 +CQUAD4 1474 196 1909 1910 1914 1913 +CQUAD4 1475 196 1910 1911 1915 1914 +CQUAD4 1476 196 1911 1912 1916 1915 +CQUAD4 1477 196 1912 1214 1215 1916 +CQUAD4 1478 196 1139 1913 1917 1140 +CQUAD4 1479 196 1913 1914 1918 1917 +CQUAD4 1480 196 1914 1915 1919 1918 +CQUAD4 1481 196 1915 1916 1920 1919 +CQUAD4 1482 196 1916 1215 1216 1920 +CQUAD4 1483 197 1213 1921 1925 1214 +CQUAD4 1484 197 1921 1922 1926 1925 +CQUAD4 1485 197 1922 1923 1927 1926 +CQUAD4 1486 197 1923 1924 1928 1927 +CQUAD4 1487 197 1924 1289 1290 1928 +CQUAD4 1488 197 1214 1925 1929 1215 +CQUAD4 1489 197 1925 1926 1930 1929 +CQUAD4 1490 197 1926 1927 1931 1930 +CQUAD4 1491 197 1927 1928 1932 1931 +CQUAD4 1492 197 1928 1290 1291 1932 +CQUAD4 1493 197 1215 1929 1933 1216 +CQUAD4 1494 197 1929 1930 1934 1933 +CQUAD4 1495 197 1930 1931 1935 1934 +CQUAD4 1496 197 1931 1932 1936 1935 +CQUAD4 1497 197 1932 1291 1292 1936 +CQUAD4 1498 198 1289 1937 1941 1290 +CQUAD4 1499 198 1937 1938 1942 1941 +CQUAD4 1500 198 1938 1939 1943 1942 +CQUAD4 1501 198 1939 1940 1944 1943 +CQUAD4 1502 198 1940 1365 1366 1944 +CQUAD4 1503 198 1290 1941 1945 1291 +CQUAD4 1504 198 1941 1942 1946 1945 +CQUAD4 1505 198 1942 1943 1947 1946 +CQUAD4 1506 198 1943 1944 1948 1947 +CQUAD4 1507 198 1944 1366 1367 1948 +CQUAD4 1508 198 1291 1945 1949 1292 +CQUAD4 1509 198 1945 1946 1950 1949 +CQUAD4 1510 198 1946 1947 1951 1950 +CQUAD4 1511 198 1947 1948 1952 1951 +CQUAD4 1512 198 1948 1367 1368 1952 +CQUAD4 1513 199 1369 1370 1954 1953 +CQUAD4 1514 199 1370 1371 1955 1954 +CQUAD4 1515 199 1371 1372 1956 1955 +CQUAD4 1516 199 1372 1373 1957 1956 +CQUAD4 1517 199 1373 1 5 1957 +CQUAD4 1518 199 1953 1954 1959 1958 +CQUAD4 1519 199 1954 1955 1960 1959 +CQUAD4 1520 199 1955 1956 1961 1960 +CQUAD4 1521 199 1956 1957 1962 1961 +CQUAD4 1522 199 1957 5 9 1962 +CQUAD4 1523 200 1384 1963 1965 1385 +CQUAD4 1524 200 1963 1964 1966 1965 +CQUAD4 1525 200 1385 1965 1967 1386 +CQUAD4 1526 200 1965 1966 1968 1967 +CQUAD4 1527 200 1386 1967 1969 1387 +CQUAD4 1528 200 1967 1968 1970 1969 +CQUAD4 1529 200 1387 1969 1971 1388 +CQUAD4 1530 200 1969 1970 1972 1971 +CQUAD4 1531 200 1388 1971 8 4 +CQUAD4 1532 200 1971 1972 12 8 +CQUAD4 1533 201 1958 1959 1974 1973 +CQUAD4 1534 201 1959 1960 1975 1974 +CQUAD4 1535 201 1960 1961 1976 1975 +CQUAD4 1536 201 1961 1962 1977 1976 +CQUAD4 1537 201 1962 9 13 1977 +CQUAD4 1538 201 1973 1974 1979 1978 +CQUAD4 1539 201 1974 1975 1980 1979 +CQUAD4 1540 201 1975 1976 1981 1980 +CQUAD4 1541 201 1976 1977 1982 1981 +CQUAD4 1542 201 1977 13 17 1982 +CQUAD4 1543 202 1964 1983 1985 1966 +CQUAD4 1544 202 1983 1984 1986 1985 +CQUAD4 1545 202 1966 1985 1987 1968 +CQUAD4 1546 202 1985 1986 1988 1987 +CQUAD4 1547 202 1968 1987 1989 1970 +CQUAD4 1548 202 1987 1988 1990 1989 +CQUAD4 1549 202 1970 1989 1991 1972 +CQUAD4 1550 202 1989 1990 1992 1991 +CQUAD4 1551 202 1972 1991 16 12 +CQUAD4 1552 202 1991 1992 20 16 +CQUAD4 1553 203 1978 1979 1994 1993 +CQUAD4 1554 203 1979 1980 1995 1994 +CQUAD4 1555 203 1980 1981 1996 1995 +CQUAD4 1556 203 1981 1982 1997 1996 +CQUAD4 1557 203 1982 17 21 1997 +CQUAD4 1558 203 1993 1994 1999 1998 +CQUAD4 1559 203 1994 1995 2000 1999 +CQUAD4 1560 203 1995 1996 2001 2000 +CQUAD4 1561 203 1996 1997 2002 2001 +CQUAD4 1562 203 1997 21 25 2002 +CQUAD4 1563 204 1984 2003 2005 1986 +CQUAD4 1564 204 2003 2004 2006 2005 +CQUAD4 1565 204 1986 2005 2007 1988 +CQUAD4 1566 204 2005 2006 2008 2007 +CQUAD4 1567 204 1988 2007 2009 1990 +CQUAD4 1568 204 2007 2008 2010 2009 +CQUAD4 1569 204 1990 2009 2011 1992 +CQUAD4 1570 204 2009 2010 2012 2011 +CQUAD4 1571 204 1992 2011 24 20 +CQUAD4 1572 204 2011 2012 28 24 +CQUAD4 1573 205 1998 1999 2014 2013 +CQUAD4 1574 205 1999 2000 2015 2014 +CQUAD4 1575 205 2000 2001 2016 2015 +CQUAD4 1576 205 2001 2002 2017 2016 +CQUAD4 1577 205 2002 25 29 2017 +CQUAD4 1578 205 2013 2014 2019 2018 +CQUAD4 1579 205 2014 2015 2020 2019 +CQUAD4 1580 205 2015 2016 2021 2020 +CQUAD4 1581 205 2016 2017 2022 2021 +CQUAD4 1582 205 2017 29 33 2022 +CQUAD4 1583 206 2004 2023 2025 2006 +CQUAD4 1584 206 2023 2024 2026 2025 +CQUAD4 1585 206 2006 2025 2027 2008 +CQUAD4 1586 206 2025 2026 2028 2027 +CQUAD4 1587 206 2008 2027 2029 2010 +CQUAD4 1588 206 2027 2028 2030 2029 +CQUAD4 1589 206 2010 2029 2031 2012 +CQUAD4 1590 206 2029 2030 2032 2031 +CQUAD4 1591 206 2012 2031 32 28 +CQUAD4 1592 206 2031 2032 36 32 +CQUAD4 1593 207 2018 2019 2034 2033 +CQUAD4 1594 207 2019 2020 2035 2034 +CQUAD4 1595 207 2020 2021 2036 2035 +CQUAD4 1596 207 2021 2022 2037 2036 +CQUAD4 1597 207 2022 33 37 2037 +CQUAD4 1598 207 2033 2034 2039 2038 +CQUAD4 1599 207 2034 2035 2040 2039 +CQUAD4 1600 207 2035 2036 2041 2040 +CQUAD4 1601 207 2036 2037 2042 2041 +CQUAD4 1602 207 2037 37 41 2042 +CQUAD4 1603 208 2024 2043 2045 2026 +CQUAD4 1604 208 2043 2044 2046 2045 +CQUAD4 1605 208 2026 2045 2047 2028 +CQUAD4 1606 208 2045 2046 2048 2047 +CQUAD4 1607 208 2028 2047 2049 2030 +CQUAD4 1608 208 2047 2048 2050 2049 +CQUAD4 1609 208 2030 2049 2051 2032 +CQUAD4 1610 208 2049 2050 2052 2051 +CQUAD4 1611 208 2032 2051 40 36 +CQUAD4 1612 208 2051 2052 44 40 +CQUAD4 1613 209 2038 2039 2054 2053 +CQUAD4 1614 209 2039 2040 2055 2054 +CQUAD4 1615 209 2040 2041 2056 2055 +CQUAD4 1616 209 2041 2042 2057 2056 +CQUAD4 1617 209 2042 41 45 2057 +CQUAD4 1618 209 2053 2054 2059 2058 +CQUAD4 1619 209 2054 2055 2060 2059 +CQUAD4 1620 209 2055 2056 2061 2060 +CQUAD4 1621 209 2056 2057 2062 2061 +CQUAD4 1622 209 2057 45 49 2062 +CQUAD4 1623 210 2044 2063 2065 2046 +CQUAD4 1624 210 2063 2064 2066 2065 +CQUAD4 1625 210 2046 2065 2067 2048 +CQUAD4 1626 210 2065 2066 2068 2067 +CQUAD4 1627 210 2048 2067 2069 2050 +CQUAD4 1628 210 2067 2068 2070 2069 +CQUAD4 1629 210 2050 2069 2071 2052 +CQUAD4 1630 210 2069 2070 2072 2071 +CQUAD4 1631 210 2052 2071 48 44 +CQUAD4 1632 210 2071 2072 52 48 +CQUAD4 1633 211 2058 2059 2074 2073 +CQUAD4 1634 211 2059 2060 2075 2074 +CQUAD4 1635 211 2060 2061 2076 2075 +CQUAD4 1636 211 2061 2062 2077 2076 +CQUAD4 1637 211 2062 49 53 2077 +CQUAD4 1638 211 2073 2074 2079 2078 +CQUAD4 1639 211 2074 2075 2080 2079 +CQUAD4 1640 211 2075 2076 2081 2080 +CQUAD4 1641 211 2076 2077 2082 2081 +CQUAD4 1642 211 2077 53 57 2082 +CQUAD4 1643 212 2064 2083 2085 2066 +CQUAD4 1644 212 2083 2084 2086 2085 +CQUAD4 1645 212 2066 2085 2087 2068 +CQUAD4 1646 212 2085 2086 2088 2087 +CQUAD4 1647 212 2068 2087 2089 2070 +CQUAD4 1648 212 2087 2088 2090 2089 +CQUAD4 1649 212 2070 2089 2091 2072 +CQUAD4 1650 212 2089 2090 2092 2091 +CQUAD4 1651 212 2072 2091 56 52 +CQUAD4 1652 212 2091 2092 60 56 +CQUAD4 1653 213 2078 2079 2094 2093 +CQUAD4 1654 213 2079 2080 2095 2094 +CQUAD4 1655 213 2080 2081 2096 2095 +CQUAD4 1656 213 2081 2082 2097 2096 +CQUAD4 1657 213 2082 57 61 2097 +CQUAD4 1658 213 2093 2094 2099 2098 +CQUAD4 1659 213 2094 2095 2100 2099 +CQUAD4 1660 213 2095 2096 2101 2100 +CQUAD4 1661 213 2096 2097 2102 2101 +CQUAD4 1662 213 2097 61 65 2102 +CQUAD4 1663 214 2084 2103 2105 2086 +CQUAD4 1664 214 2103 2104 2106 2105 +CQUAD4 1665 214 2086 2105 2107 2088 +CQUAD4 1666 214 2105 2106 2108 2107 +CQUAD4 1667 214 2088 2107 2109 2090 +CQUAD4 1668 214 2107 2108 2110 2109 +CQUAD4 1669 214 2090 2109 2111 2092 +CQUAD4 1670 214 2109 2110 2112 2111 +CQUAD4 1671 214 2092 2111 64 60 +CQUAD4 1672 214 2111 2112 68 64 +CQUAD4 1673 215 2098 2099 2114 2113 +CQUAD4 1674 215 2099 2100 2115 2114 +CQUAD4 1675 215 2100 2101 2116 2115 +CQUAD4 1676 215 2101 2102 2117 2116 +CQUAD4 1677 215 2102 65 69 2117 +CQUAD4 1678 215 2113 2114 1662 1661 +CQUAD4 1679 215 2114 2115 1663 1662 +CQUAD4 1680 215 2115 2116 1664 1663 +CQUAD4 1681 215 2116 2117 1665 1664 +CQUAD4 1682 215 2117 69 73 1665 +CQUAD4 1683 216 2104 2118 2119 2106 +CQUAD4 1684 216 2118 1676 1677 2119 +CQUAD4 1685 216 2106 2119 2120 2108 +CQUAD4 1686 216 2119 1677 1678 2120 +CQUAD4 1687 216 2108 2120 2121 2110 +CQUAD4 1688 216 2120 1678 1679 2121 +CQUAD4 1689 216 2110 2121 2122 2112 +CQUAD4 1690 216 2121 1679 1680 2122 +CQUAD4 1691 216 2112 2122 72 68 +CQUAD4 1692 216 2122 1680 76 72 +CQUAD4 1693 217 1958 2123 2125 1959 +CQUAD4 1694 217 2123 2124 2126 2125 +CQUAD4 1695 217 1959 2125 2127 1960 +CQUAD4 1696 217 2125 2126 2128 2127 +CQUAD4 1697 217 1960 2127 2129 1961 +CQUAD4 1698 217 2127 2128 2130 2129 +CQUAD4 1699 217 1961 2129 2131 1962 +CQUAD4 1700 217 2129 2130 2132 2131 +CQUAD4 1701 217 1962 2131 2133 9 +CQUAD4 1702 217 2131 2132 2134 2133 +CQUAD4 1703 218 1964 2135 2137 1966 +CQUAD4 1704 218 2135 2136 2138 2137 +CQUAD4 1705 218 1966 2137 2139 1968 +CQUAD4 1706 218 2137 2138 2140 2139 +CQUAD4 1707 218 1968 2139 2141 1970 +CQUAD4 1708 218 2139 2140 2142 2141 +CQUAD4 1709 218 1970 2141 2143 1972 +CQUAD4 1710 218 2141 2142 2144 2143 +CQUAD4 1711 218 1972 2143 2145 12 +CQUAD4 1712 218 2143 2144 2146 2145 +CQUAD4 1713 219 1978 2147 2149 1979 +CQUAD4 1714 219 2147 2148 2150 2149 +CQUAD4 1715 219 1979 2149 2151 1980 +CQUAD4 1716 219 2149 2150 2152 2151 +CQUAD4 1717 219 1980 2151 2153 1981 +CQUAD4 1718 219 2151 2152 2154 2153 +CQUAD4 1719 219 1981 2153 2155 1982 +CQUAD4 1720 219 2153 2154 2156 2155 +CQUAD4 1721 219 1982 2155 2157 17 +CQUAD4 1722 219 2155 2156 2158 2157 +CQUAD4 1723 220 1984 2159 2161 1986 +CQUAD4 1724 220 2159 2160 2162 2161 +CQUAD4 1725 220 1986 2161 2163 1988 +CQUAD4 1726 220 2161 2162 2164 2163 +CQUAD4 1727 220 1988 2163 2165 1990 +CQUAD4 1728 220 2163 2164 2166 2165 +CQUAD4 1729 220 1990 2165 2167 1992 +CQUAD4 1730 220 2165 2166 2168 2167 +CQUAD4 1731 220 1992 2167 2169 20 +CQUAD4 1732 220 2167 2168 2170 2169 +CQUAD4 1733 221 1998 2171 2173 1999 +CQUAD4 1734 221 2171 2172 2174 2173 +CQUAD4 1735 221 1999 2173 2175 2000 +CQUAD4 1736 221 2173 2174 2176 2175 +CQUAD4 1737 221 2000 2175 2177 2001 +CQUAD4 1738 221 2175 2176 2178 2177 +CQUAD4 1739 221 2001 2177 2179 2002 +CQUAD4 1740 221 2177 2178 2180 2179 +CQUAD4 1741 221 2002 2179 2181 25 +CQUAD4 1742 221 2179 2180 2182 2181 +CQUAD4 1743 222 2004 2183 2185 2006 +CQUAD4 1744 222 2183 2184 2186 2185 +CQUAD4 1745 222 2006 2185 2187 2008 +CQUAD4 1746 222 2185 2186 2188 2187 +CQUAD4 1747 222 2008 2187 2189 2010 +CQUAD4 1748 222 2187 2188 2190 2189 +CQUAD4 1749 222 2010 2189 2191 2012 +CQUAD4 1750 222 2189 2190 2192 2191 +CQUAD4 1751 222 2012 2191 2193 28 +CQUAD4 1752 222 2191 2192 2194 2193 +CQUAD4 1753 223 2018 2195 2197 2019 +CQUAD4 1754 223 2195 2196 2198 2197 +CQUAD4 1755 223 2019 2197 2199 2020 +CQUAD4 1756 223 2197 2198 2200 2199 +CQUAD4 1757 223 2020 2199 2201 2021 +CQUAD4 1758 223 2199 2200 2202 2201 +CQUAD4 1759 223 2021 2201 2203 2022 +CQUAD4 1760 223 2201 2202 2204 2203 +CQUAD4 1761 223 2022 2203 2205 33 +CQUAD4 1762 223 2203 2204 2206 2205 +CQUAD4 1763 224 2024 2207 2209 2026 +CQUAD4 1764 224 2207 2208 2210 2209 +CQUAD4 1765 224 2026 2209 2211 2028 +CQUAD4 1766 224 2209 2210 2212 2211 +CQUAD4 1767 224 2028 2211 2213 2030 +CQUAD4 1768 224 2211 2212 2214 2213 +CQUAD4 1769 224 2030 2213 2215 2032 +CQUAD4 1770 224 2213 2214 2216 2215 +CQUAD4 1771 224 2032 2215 2217 36 +CQUAD4 1772 224 2215 2216 2218 2217 +CQUAD4 1773 225 2038 2219 2221 2039 +CQUAD4 1774 225 2219 2220 2222 2221 +CQUAD4 1775 225 2039 2221 2223 2040 +CQUAD4 1776 225 2221 2222 2224 2223 +CQUAD4 1777 225 2040 2223 2225 2041 +CQUAD4 1778 225 2223 2224 2226 2225 +CQUAD4 1779 225 2041 2225 2227 2042 +CQUAD4 1780 225 2225 2226 2228 2227 +CQUAD4 1781 225 2042 2227 2229 41 +CQUAD4 1782 225 2227 2228 2230 2229 +CQUAD4 1783 226 2044 2231 2233 2046 +CQUAD4 1784 226 2231 2232 2234 2233 +CQUAD4 1785 226 2046 2233 2235 2048 +CQUAD4 1786 226 2233 2234 2236 2235 +CQUAD4 1787 226 2048 2235 2237 2050 +CQUAD4 1788 226 2235 2236 2238 2237 +CQUAD4 1789 226 2050 2237 2239 2052 +CQUAD4 1790 226 2237 2238 2240 2239 +CQUAD4 1791 226 2052 2239 2241 44 +CQUAD4 1792 226 2239 2240 2242 2241 +CQUAD4 1793 227 2058 2243 2245 2059 +CQUAD4 1794 227 2243 2244 2246 2245 +CQUAD4 1795 227 2059 2245 2247 2060 +CQUAD4 1796 227 2245 2246 2248 2247 +CQUAD4 1797 227 2060 2247 2249 2061 +CQUAD4 1798 227 2247 2248 2250 2249 +CQUAD4 1799 227 2061 2249 2251 2062 +CQUAD4 1800 227 2249 2250 2252 2251 +CQUAD4 1801 227 2062 2251 2253 49 +CQUAD4 1802 227 2251 2252 2254 2253 +CQUAD4 1803 228 2064 2255 2257 2066 +CQUAD4 1804 228 2255 2256 2258 2257 +CQUAD4 1805 228 2066 2257 2259 2068 +CQUAD4 1806 228 2257 2258 2260 2259 +CQUAD4 1807 228 2068 2259 2261 2070 +CQUAD4 1808 228 2259 2260 2262 2261 +CQUAD4 1809 228 2070 2261 2263 2072 +CQUAD4 1810 228 2261 2262 2264 2263 +CQUAD4 1811 228 2072 2263 2265 52 +CQUAD4 1812 228 2263 2264 2266 2265 +CQUAD4 1813 229 2078 2267 2269 2079 +CQUAD4 1814 229 2267 2268 2270 2269 +CQUAD4 1815 229 2079 2269 2271 2080 +CQUAD4 1816 229 2269 2270 2272 2271 +CQUAD4 1817 229 2080 2271 2273 2081 +CQUAD4 1818 229 2271 2272 2274 2273 +CQUAD4 1819 229 2081 2273 2275 2082 +CQUAD4 1820 229 2273 2274 2276 2275 +CQUAD4 1821 229 2082 2275 2277 57 +CQUAD4 1822 229 2275 2276 2278 2277 +CQUAD4 1823 230 2084 2279 2281 2086 +CQUAD4 1824 230 2279 2280 2282 2281 +CQUAD4 1825 230 2086 2281 2283 2088 +CQUAD4 1826 230 2281 2282 2284 2283 +CQUAD4 1827 230 2088 2283 2285 2090 +CQUAD4 1828 230 2283 2284 2286 2285 +CQUAD4 1829 230 2090 2285 2287 2092 +CQUAD4 1830 230 2285 2286 2288 2287 +CQUAD4 1831 230 2092 2287 2289 60 +CQUAD4 1832 230 2287 2288 2290 2289 +CQUAD4 1833 231 2098 2291 2293 2099 +CQUAD4 1834 231 2291 2292 2294 2293 +CQUAD4 1835 231 2099 2293 2295 2100 +CQUAD4 1836 231 2293 2294 2296 2295 +CQUAD4 1837 231 2100 2295 2297 2101 +CQUAD4 1838 231 2295 2296 2298 2297 +CQUAD4 1839 231 2101 2297 2299 2102 +CQUAD4 1840 231 2297 2298 2300 2299 +CQUAD4 1841 231 2102 2299 2301 65 +CQUAD4 1842 231 2299 2300 2302 2301 +CQUAD4 1843 232 2104 2303 2305 2106 +CQUAD4 1844 232 2303 2304 2306 2305 +CQUAD4 1845 232 2106 2305 2307 2108 +CQUAD4 1846 232 2305 2306 2308 2307 +CQUAD4 1847 232 2108 2307 2309 2110 +CQUAD4 1848 232 2307 2308 2310 2309 +CQUAD4 1849 232 2110 2309 2311 2112 +CQUAD4 1850 232 2309 2310 2312 2311 +CQUAD4 1851 232 2112 2311 2313 68 +CQUAD4 1852 232 2311 2312 2314 2313 +CQUAD4 1853 233 1 1389 2315 5 +CQUAD4 1854 233 1389 1390 2316 2315 +CQUAD4 1855 233 1390 1391 2317 2316 +CQUAD4 1856 233 1391 1392 2318 2317 +CQUAD4 1857 233 1392 77 81 2318 +CQUAD4 1858 233 5 2315 2319 9 +CQUAD4 1859 233 2315 2316 2320 2319 +CQUAD4 1860 233 2316 2317 2321 2320 +CQUAD4 1861 233 2317 2318 2322 2321 +CQUAD4 1862 233 2318 81 85 2322 +CQUAD4 1863 234 4 8 2323 1401 +CQUAD4 1864 234 8 12 2324 2323 +CQUAD4 1865 234 1401 2323 2325 1402 +CQUAD4 1866 234 2323 2324 2326 2325 +CQUAD4 1867 234 1402 2325 2327 1403 +CQUAD4 1868 234 2325 2326 2328 2327 +CQUAD4 1869 234 1403 2327 2329 1404 +CQUAD4 1870 234 2327 2328 2330 2329 +CQUAD4 1871 234 1404 2329 84 80 +CQUAD4 1872 234 2329 2330 88 84 +CQUAD4 1873 235 9 2319 2331 13 +CQUAD4 1874 235 2319 2320 2332 2331 +CQUAD4 1875 235 2320 2321 2333 2332 +CQUAD4 1876 235 2321 2322 2334 2333 +CQUAD4 1877 235 2322 85 89 2334 +CQUAD4 1878 235 13 2331 2335 17 +CQUAD4 1879 235 2331 2332 2336 2335 +CQUAD4 1880 235 2332 2333 2337 2336 +CQUAD4 1881 235 2333 2334 2338 2337 +CQUAD4 1882 235 2334 89 93 2338 +CQUAD4 1883 236 12 16 2339 2324 +CQUAD4 1884 236 16 20 2340 2339 +CQUAD4 1885 236 2324 2339 2341 2326 +CQUAD4 1886 236 2339 2340 2342 2341 +CQUAD4 1887 236 2326 2341 2343 2328 +CQUAD4 1888 236 2341 2342 2344 2343 +CQUAD4 1889 236 2328 2343 2345 2330 +CQUAD4 1890 236 2343 2344 2346 2345 +CQUAD4 1891 236 2330 2345 92 88 +CQUAD4 1892 236 2345 2346 96 92 +CQUAD4 1893 237 17 2335 2347 21 +CQUAD4 1894 237 2335 2336 2348 2347 +CQUAD4 1895 237 2336 2337 2349 2348 +CQUAD4 1896 237 2337 2338 2350 2349 +CQUAD4 1897 237 2338 93 97 2350 +CQUAD4 1898 237 21 2347 2351 25 +CQUAD4 1899 237 2347 2348 2352 2351 +CQUAD4 1900 237 2348 2349 2353 2352 +CQUAD4 1901 237 2349 2350 2354 2353 +CQUAD4 1902 237 2350 97 101 2354 +CQUAD4 1903 238 20 24 2355 2340 +CQUAD4 1904 238 24 28 2356 2355 +CQUAD4 1905 238 2340 2355 2357 2342 +CQUAD4 1906 238 2355 2356 2358 2357 +CQUAD4 1907 238 2342 2357 2359 2344 +CQUAD4 1908 238 2357 2358 2360 2359 +CQUAD4 1909 238 2344 2359 2361 2346 +CQUAD4 1910 238 2359 2360 2362 2361 +CQUAD4 1911 238 2346 2361 100 96 +CQUAD4 1912 238 2361 2362 104 100 +CQUAD4 1913 239 25 2351 2363 29 +CQUAD4 1914 239 2351 2352 2364 2363 +CQUAD4 1915 239 2352 2353 2365 2364 +CQUAD4 1916 239 2353 2354 2366 2365 +CQUAD4 1917 239 2354 101 105 2366 +CQUAD4 1918 239 29 2363 2367 33 +CQUAD4 1919 239 2363 2364 2368 2367 +CQUAD4 1920 239 2364 2365 2369 2368 +CQUAD4 1921 239 2365 2366 2370 2369 +CQUAD4 1922 239 2366 105 109 2370 +CQUAD4 1923 240 28 32 2371 2356 +CQUAD4 1924 240 32 36 2372 2371 +CQUAD4 1925 240 2356 2371 2373 2358 +CQUAD4 1926 240 2371 2372 2374 2373 +CQUAD4 1927 240 2358 2373 2375 2360 +CQUAD4 1928 240 2373 2374 2376 2375 +CQUAD4 1929 240 2360 2375 2377 2362 +CQUAD4 1930 240 2375 2376 2378 2377 +CQUAD4 1931 240 2362 2377 108 104 +CQUAD4 1932 240 2377 2378 112 108 +CQUAD4 1933 241 33 2367 2379 37 +CQUAD4 1934 241 2367 2368 2380 2379 +CQUAD4 1935 241 2368 2369 2381 2380 +CQUAD4 1936 241 2369 2370 2382 2381 +CQUAD4 1937 241 2370 109 113 2382 +CQUAD4 1938 241 37 2379 2383 41 +CQUAD4 1939 241 2379 2380 2384 2383 +CQUAD4 1940 241 2380 2381 2385 2384 +CQUAD4 1941 241 2381 2382 2386 2385 +CQUAD4 1942 241 2382 113 117 2386 +CQUAD4 1943 242 36 40 2387 2372 +CQUAD4 1944 242 40 44 2388 2387 +CQUAD4 1945 242 2372 2387 2389 2374 +CQUAD4 1946 242 2387 2388 2390 2389 +CQUAD4 1947 242 2374 2389 2391 2376 +CQUAD4 1948 242 2389 2390 2392 2391 +CQUAD4 1949 242 2376 2391 2393 2378 +CQUAD4 1950 242 2391 2392 2394 2393 +CQUAD4 1951 242 2378 2393 116 112 +CQUAD4 1952 242 2393 2394 120 116 +CQUAD4 1953 243 41 2383 2395 45 +CQUAD4 1954 243 2383 2384 2396 2395 +CQUAD4 1955 243 2384 2385 2397 2396 +CQUAD4 1956 243 2385 2386 2398 2397 +CQUAD4 1957 243 2386 117 121 2398 +CQUAD4 1958 243 45 2395 2399 49 +CQUAD4 1959 243 2395 2396 2400 2399 +CQUAD4 1960 243 2396 2397 2401 2400 +CQUAD4 1961 243 2397 2398 2402 2401 +CQUAD4 1962 243 2398 121 125 2402 +CQUAD4 1963 244 44 48 2403 2388 +CQUAD4 1964 244 48 52 2404 2403 +CQUAD4 1965 244 2388 2403 2405 2390 +CQUAD4 1966 244 2403 2404 2406 2405 +CQUAD4 1967 244 2390 2405 2407 2392 +CQUAD4 1968 244 2405 2406 2408 2407 +CQUAD4 1969 244 2392 2407 2409 2394 +CQUAD4 1970 244 2407 2408 2410 2409 +CQUAD4 1971 244 2394 2409 124 120 +CQUAD4 1972 244 2409 2410 128 124 +CQUAD4 1973 245 49 2399 2411 53 +CQUAD4 1974 245 2399 2400 2412 2411 +CQUAD4 1975 245 2400 2401 2413 2412 +CQUAD4 1976 245 2401 2402 2414 2413 +CQUAD4 1977 245 2402 125 129 2414 +CQUAD4 1978 245 53 2411 2415 57 +CQUAD4 1979 245 2411 2412 2416 2415 +CQUAD4 1980 245 2412 2413 2417 2416 +CQUAD4 1981 245 2413 2414 2418 2417 +CQUAD4 1982 245 2414 129 133 2418 +CQUAD4 1983 246 52 56 2419 2404 +CQUAD4 1984 246 56 60 2420 2419 +CQUAD4 1985 246 2404 2419 2421 2406 +CQUAD4 1986 246 2419 2420 2422 2421 +CQUAD4 1987 246 2406 2421 2423 2408 +CQUAD4 1988 246 2421 2422 2424 2423 +CQUAD4 1989 246 2408 2423 2425 2410 +CQUAD4 1990 246 2423 2424 2426 2425 +CQUAD4 1991 246 2410 2425 132 128 +CQUAD4 1992 246 2425 2426 136 132 +CQUAD4 1993 247 57 2415 2427 61 +CQUAD4 1994 247 2415 2416 2428 2427 +CQUAD4 1995 247 2416 2417 2429 2428 +CQUAD4 1996 247 2417 2418 2430 2429 +CQUAD4 1997 247 2418 133 137 2430 +CQUAD4 1998 247 61 2427 2431 65 +CQUAD4 1999 247 2427 2428 2432 2431 +CQUAD4 2000 247 2428 2429 2433 2432 +CQUAD4 2001 247 2429 2430 2434 2433 +CQUAD4 2002 247 2430 137 141 2434 +CQUAD4 2003 248 60 64 2435 2420 +CQUAD4 2004 248 64 68 2436 2435 +CQUAD4 2005 248 2420 2435 2437 2422 +CQUAD4 2006 248 2435 2436 2438 2437 +CQUAD4 2007 248 2422 2437 2439 2424 +CQUAD4 2008 248 2437 2438 2440 2439 +CQUAD4 2009 248 2424 2439 2441 2426 +CQUAD4 2010 248 2439 2440 2442 2441 +CQUAD4 2011 248 2426 2441 140 136 +CQUAD4 2012 248 2441 2442 144 140 +CQUAD4 2013 249 65 2431 2443 69 +CQUAD4 2014 249 2431 2432 2444 2443 +CQUAD4 2015 249 2432 2433 2445 2444 +CQUAD4 2016 249 2433 2434 2446 2445 +CQUAD4 2017 249 2434 141 145 2446 +CQUAD4 2018 249 69 2443 1681 73 +CQUAD4 2019 249 2443 2444 1682 1681 +CQUAD4 2020 249 2444 2445 1683 1682 +CQUAD4 2021 249 2445 2446 1684 1683 +CQUAD4 2022 249 2446 145 149 1684 +CQUAD4 2023 250 68 72 2447 2436 +CQUAD4 2024 250 72 76 1693 2447 +CQUAD4 2025 250 2436 2447 2448 2438 +CQUAD4 2026 250 2447 1693 1694 2448 +CQUAD4 2027 250 2438 2448 2449 2440 +CQUAD4 2028 250 2448 1694 1695 2449 +CQUAD4 2029 250 2440 2449 2450 2442 +CQUAD4 2030 250 2449 1695 1696 2450 +CQUAD4 2031 250 2442 2450 148 144 +CQUAD4 2032 250 2450 1696 152 148 +CQUAD4 2033 251 9 2133 2451 2319 +CQUAD4 2034 251 2133 2134 2452 2451 +CQUAD4 2035 251 2319 2451 2453 2320 +CQUAD4 2036 251 2451 2452 2454 2453 +CQUAD4 2037 251 2320 2453 2455 2321 +CQUAD4 2038 251 2453 2454 2456 2455 +CQUAD4 2039 251 2321 2455 2457 2322 +CQUAD4 2040 251 2455 2456 2458 2457 +CQUAD4 2041 251 2322 2457 2459 85 +CQUAD4 2042 251 2457 2458 2460 2459 +CQUAD4 2043 252 12 2145 2461 2324 +CQUAD4 2044 252 2145 2146 2462 2461 +CQUAD4 2045 252 2324 2461 2463 2326 +CQUAD4 2046 252 2461 2462 2464 2463 +CQUAD4 2047 252 2326 2463 2465 2328 +CQUAD4 2048 252 2463 2464 2466 2465 +CQUAD4 2049 252 2328 2465 2467 2330 +CQUAD4 2050 252 2465 2466 2468 2467 +CQUAD4 2051 252 2330 2467 2469 88 +CQUAD4 2052 252 2467 2468 2470 2469 +CQUAD4 2053 253 17 2157 2471 2335 +CQUAD4 2054 253 2157 2158 2472 2471 +CQUAD4 2055 253 2335 2471 2473 2336 +CQUAD4 2056 253 2471 2472 2474 2473 +CQUAD4 2057 253 2336 2473 2475 2337 +CQUAD4 2058 253 2473 2474 2476 2475 +CQUAD4 2059 253 2337 2475 2477 2338 +CQUAD4 2060 253 2475 2476 2478 2477 +CQUAD4 2061 253 2338 2477 2479 93 +CQUAD4 2062 253 2477 2478 2480 2479 +CQUAD4 2063 254 20 2169 2481 2340 +CQUAD4 2064 254 2169 2170 2482 2481 +CQUAD4 2065 254 2340 2481 2483 2342 +CQUAD4 2066 254 2481 2482 2484 2483 +CQUAD4 2067 254 2342 2483 2485 2344 +CQUAD4 2068 254 2483 2484 2486 2485 +CQUAD4 2069 254 2344 2485 2487 2346 +CQUAD4 2070 254 2485 2486 2488 2487 +CQUAD4 2071 254 2346 2487 2489 96 +CQUAD4 2072 254 2487 2488 2490 2489 +CQUAD4 2073 255 25 2181 2491 2351 +CQUAD4 2074 255 2181 2182 2492 2491 +CQUAD4 2075 255 2351 2491 2493 2352 +CQUAD4 2076 255 2491 2492 2494 2493 +CQUAD4 2077 255 2352 2493 2495 2353 +CQUAD4 2078 255 2493 2494 2496 2495 +CQUAD4 2079 255 2353 2495 2497 2354 +CQUAD4 2080 255 2495 2496 2498 2497 +CQUAD4 2081 255 2354 2497 2499 101 +CQUAD4 2082 255 2497 2498 2500 2499 +CQUAD4 2083 256 28 2193 2501 2356 +CQUAD4 2084 256 2193 2194 2502 2501 +CQUAD4 2085 256 2356 2501 2503 2358 +CQUAD4 2086 256 2501 2502 2504 2503 +CQUAD4 2087 256 2358 2503 2505 2360 +CQUAD4 2088 256 2503 2504 2506 2505 +CQUAD4 2089 256 2360 2505 2507 2362 +CQUAD4 2090 256 2505 2506 2508 2507 +CQUAD4 2091 256 2362 2507 2509 104 +CQUAD4 2092 256 2507 2508 2510 2509 +CQUAD4 2093 257 33 2205 2511 2367 +CQUAD4 2094 257 2205 2206 2512 2511 +CQUAD4 2095 257 2367 2511 2513 2368 +CQUAD4 2096 257 2511 2512 2514 2513 +CQUAD4 2097 257 2368 2513 2515 2369 +CQUAD4 2098 257 2513 2514 2516 2515 +CQUAD4 2099 257 2369 2515 2517 2370 +CQUAD4 2100 257 2515 2516 2518 2517 +CQUAD4 2101 257 2370 2517 2519 109 +CQUAD4 2102 257 2517 2518 2520 2519 +CQUAD4 2103 258 36 2217 2521 2372 +CQUAD4 2104 258 2217 2218 2522 2521 +CQUAD4 2105 258 2372 2521 2523 2374 +CQUAD4 2106 258 2521 2522 2524 2523 +CQUAD4 2107 258 2374 2523 2525 2376 +CQUAD4 2108 258 2523 2524 2526 2525 +CQUAD4 2109 258 2376 2525 2527 2378 +CQUAD4 2110 258 2525 2526 2528 2527 +CQUAD4 2111 258 2378 2527 2529 112 +CQUAD4 2112 258 2527 2528 2530 2529 +CQUAD4 2113 259 41 2229 2531 2383 +CQUAD4 2114 259 2229 2230 2532 2531 +CQUAD4 2115 259 2383 2531 2533 2384 +CQUAD4 2116 259 2531 2532 2534 2533 +CQUAD4 2117 259 2384 2533 2535 2385 +CQUAD4 2118 259 2533 2534 2536 2535 +CQUAD4 2119 259 2385 2535 2537 2386 +CQUAD4 2120 259 2535 2536 2538 2537 +CQUAD4 2121 259 2386 2537 2539 117 +CQUAD4 2122 259 2537 2538 2540 2539 +CQUAD4 2123 260 44 2241 2541 2388 +CQUAD4 2124 260 2241 2242 2542 2541 +CQUAD4 2125 260 2388 2541 2543 2390 +CQUAD4 2126 260 2541 2542 2544 2543 +CQUAD4 2127 260 2390 2543 2545 2392 +CQUAD4 2128 260 2543 2544 2546 2545 +CQUAD4 2129 260 2392 2545 2547 2394 +CQUAD4 2130 260 2545 2546 2548 2547 +CQUAD4 2131 260 2394 2547 2549 120 +CQUAD4 2132 260 2547 2548 2550 2549 +CQUAD4 2133 261 49 2253 2551 2399 +CQUAD4 2134 261 2253 2254 2552 2551 +CQUAD4 2135 261 2399 2551 2553 2400 +CQUAD4 2136 261 2551 2552 2554 2553 +CQUAD4 2137 261 2400 2553 2555 2401 +CQUAD4 2138 261 2553 2554 2556 2555 +CQUAD4 2139 261 2401 2555 2557 2402 +CQUAD4 2140 261 2555 2556 2558 2557 +CQUAD4 2141 261 2402 2557 2559 125 +CQUAD4 2142 261 2557 2558 2560 2559 +CQUAD4 2143 262 52 2265 2561 2404 +CQUAD4 2144 262 2265 2266 2562 2561 +CQUAD4 2145 262 2404 2561 2563 2406 +CQUAD4 2146 262 2561 2562 2564 2563 +CQUAD4 2147 262 2406 2563 2565 2408 +CQUAD4 2148 262 2563 2564 2566 2565 +CQUAD4 2149 262 2408 2565 2567 2410 +CQUAD4 2150 262 2565 2566 2568 2567 +CQUAD4 2151 262 2410 2567 2569 128 +CQUAD4 2152 262 2567 2568 2570 2569 +CQUAD4 2153 263 57 2277 2571 2415 +CQUAD4 2154 263 2277 2278 2572 2571 +CQUAD4 2155 263 2415 2571 2573 2416 +CQUAD4 2156 263 2571 2572 2574 2573 +CQUAD4 2157 263 2416 2573 2575 2417 +CQUAD4 2158 263 2573 2574 2576 2575 +CQUAD4 2159 263 2417 2575 2577 2418 +CQUAD4 2160 263 2575 2576 2578 2577 +CQUAD4 2161 263 2418 2577 2579 133 +CQUAD4 2162 263 2577 2578 2580 2579 +CQUAD4 2163 264 60 2289 2581 2420 +CQUAD4 2164 264 2289 2290 2582 2581 +CQUAD4 2165 264 2420 2581 2583 2422 +CQUAD4 2166 264 2581 2582 2584 2583 +CQUAD4 2167 264 2422 2583 2585 2424 +CQUAD4 2168 264 2583 2584 2586 2585 +CQUAD4 2169 264 2424 2585 2587 2426 +CQUAD4 2170 264 2585 2586 2588 2587 +CQUAD4 2171 264 2426 2587 2589 136 +CQUAD4 2172 264 2587 2588 2590 2589 +CQUAD4 2173 265 65 2301 2591 2431 +CQUAD4 2174 265 2301 2302 2592 2591 +CQUAD4 2175 265 2431 2591 2593 2432 +CQUAD4 2176 265 2591 2592 2594 2593 +CQUAD4 2177 265 2432 2593 2595 2433 +CQUAD4 2178 265 2593 2594 2596 2595 +CQUAD4 2179 265 2433 2595 2597 2434 +CQUAD4 2180 265 2595 2596 2598 2597 +CQUAD4 2181 265 2434 2597 2599 141 +CQUAD4 2182 265 2597 2598 2600 2599 +CQUAD4 2183 266 68 2313 2601 2436 +CQUAD4 2184 266 2313 2314 2602 2601 +CQUAD4 2185 266 2436 2601 2603 2438 +CQUAD4 2186 266 2601 2602 2604 2603 +CQUAD4 2187 266 2438 2603 2605 2440 +CQUAD4 2188 266 2603 2604 2606 2605 +CQUAD4 2189 266 2440 2605 2607 2442 +CQUAD4 2190 266 2605 2606 2608 2607 +CQUAD4 2191 266 2442 2607 2609 144 +CQUAD4 2192 266 2607 2608 2610 2609 +CQUAD4 2193 267 77 1405 2611 81 +CQUAD4 2194 267 1405 1406 2612 2611 +CQUAD4 2195 267 1406 1407 2613 2612 +CQUAD4 2196 267 1407 1408 2614 2613 +CQUAD4 2197 267 1408 153 157 2614 +CQUAD4 2198 267 81 2611 2615 85 +CQUAD4 2199 267 2611 2612 2616 2615 +CQUAD4 2200 267 2612 2613 2617 2616 +CQUAD4 2201 267 2613 2614 2618 2617 +CQUAD4 2202 267 2614 157 161 2618 +CQUAD4 2203 268 80 84 2619 1417 +CQUAD4 2204 268 84 88 2620 2619 +CQUAD4 2205 268 1417 2619 2621 1418 +CQUAD4 2206 268 2619 2620 2622 2621 +CQUAD4 2207 268 1418 2621 2623 1419 +CQUAD4 2208 268 2621 2622 2624 2623 +CQUAD4 2209 268 1419 2623 2625 1420 +CQUAD4 2210 268 2623 2624 2626 2625 +CQUAD4 2211 268 1420 2625 160 156 +CQUAD4 2212 268 2625 2626 164 160 +CQUAD4 2213 269 85 2615 2627 89 +CQUAD4 2214 269 2615 2616 2628 2627 +CQUAD4 2215 269 2616 2617 2629 2628 +CQUAD4 2216 269 2617 2618 2630 2629 +CQUAD4 2217 269 2618 161 165 2630 +CQUAD4 2218 269 89 2627 2631 93 +CQUAD4 2219 269 2627 2628 2632 2631 +CQUAD4 2220 269 2628 2629 2633 2632 +CQUAD4 2221 269 2629 2630 2634 2633 +CQUAD4 2222 269 2630 165 169 2634 +CQUAD4 2223 270 88 92 2635 2620 +CQUAD4 2224 270 92 96 2636 2635 +CQUAD4 2225 270 2620 2635 2637 2622 +CQUAD4 2226 270 2635 2636 2638 2637 +CQUAD4 2227 270 2622 2637 2639 2624 +CQUAD4 2228 270 2637 2638 2640 2639 +CQUAD4 2229 270 2624 2639 2641 2626 +CQUAD4 2230 270 2639 2640 2642 2641 +CQUAD4 2231 270 2626 2641 168 164 +CQUAD4 2232 270 2641 2642 172 168 +CQUAD4 2233 271 93 2631 2643 97 +CQUAD4 2234 271 2631 2632 2644 2643 +CQUAD4 2235 271 2632 2633 2645 2644 +CQUAD4 2236 271 2633 2634 2646 2645 +CQUAD4 2237 271 2634 169 173 2646 +CQUAD4 2238 271 97 2643 2647 101 +CQUAD4 2239 271 2643 2644 2648 2647 +CQUAD4 2240 271 2644 2645 2649 2648 +CQUAD4 2241 271 2645 2646 2650 2649 +CQUAD4 2242 271 2646 173 177 2650 +CQUAD4 2243 272 96 100 2651 2636 +CQUAD4 2244 272 100 104 2652 2651 +CQUAD4 2245 272 2636 2651 2653 2638 +CQUAD4 2246 272 2651 2652 2654 2653 +CQUAD4 2247 272 2638 2653 2655 2640 +CQUAD4 2248 272 2653 2654 2656 2655 +CQUAD4 2249 272 2640 2655 2657 2642 +CQUAD4 2250 272 2655 2656 2658 2657 +CQUAD4 2251 272 2642 2657 176 172 +CQUAD4 2252 272 2657 2658 180 176 +CQUAD4 2253 273 101 2647 2659 105 +CQUAD4 2254 273 2647 2648 2660 2659 +CQUAD4 2255 273 2648 2649 2661 2660 +CQUAD4 2256 273 2649 2650 2662 2661 +CQUAD4 2257 273 2650 177 181 2662 +CQUAD4 2258 273 105 2659 2663 109 +CQUAD4 2259 273 2659 2660 2664 2663 +CQUAD4 2260 273 2660 2661 2665 2664 +CQUAD4 2261 273 2661 2662 2666 2665 +CQUAD4 2262 273 2662 181 185 2666 +CQUAD4 2263 274 104 108 2667 2652 +CQUAD4 2264 274 108 112 2668 2667 +CQUAD4 2265 274 2652 2667 2669 2654 +CQUAD4 2266 274 2667 2668 2670 2669 +CQUAD4 2267 274 2654 2669 2671 2656 +CQUAD4 2268 274 2669 2670 2672 2671 +CQUAD4 2269 274 2656 2671 2673 2658 +CQUAD4 2270 274 2671 2672 2674 2673 +CQUAD4 2271 274 2658 2673 184 180 +CQUAD4 2272 274 2673 2674 188 184 +CQUAD4 2273 275 109 2663 2675 113 +CQUAD4 2274 275 2663 2664 2676 2675 +CQUAD4 2275 275 2664 2665 2677 2676 +CQUAD4 2276 275 2665 2666 2678 2677 +CQUAD4 2277 275 2666 185 189 2678 +CQUAD4 2278 275 113 2675 2679 117 +CQUAD4 2279 275 2675 2676 2680 2679 +CQUAD4 2280 275 2676 2677 2681 2680 +CQUAD4 2281 275 2677 2678 2682 2681 +CQUAD4 2282 275 2678 189 193 2682 +CQUAD4 2283 276 112 116 2683 2668 +CQUAD4 2284 276 116 120 2684 2683 +CQUAD4 2285 276 2668 2683 2685 2670 +CQUAD4 2286 276 2683 2684 2686 2685 +CQUAD4 2287 276 2670 2685 2687 2672 +CQUAD4 2288 276 2685 2686 2688 2687 +CQUAD4 2289 276 2672 2687 2689 2674 +CQUAD4 2290 276 2687 2688 2690 2689 +CQUAD4 2291 276 2674 2689 192 188 +CQUAD4 2292 276 2689 2690 196 192 +CQUAD4 2293 277 117 2679 2691 121 +CQUAD4 2294 277 2679 2680 2692 2691 +CQUAD4 2295 277 2680 2681 2693 2692 +CQUAD4 2296 277 2681 2682 2694 2693 +CQUAD4 2297 277 2682 193 197 2694 +CQUAD4 2298 277 121 2691 2695 125 +CQUAD4 2299 277 2691 2692 2696 2695 +CQUAD4 2300 277 2692 2693 2697 2696 +CQUAD4 2301 277 2693 2694 2698 2697 +CQUAD4 2302 277 2694 197 201 2698 +CQUAD4 2303 278 120 124 2699 2684 +CQUAD4 2304 278 124 128 2700 2699 +CQUAD4 2305 278 2684 2699 2701 2686 +CQUAD4 2306 278 2699 2700 2702 2701 +CQUAD4 2307 278 2686 2701 2703 2688 +CQUAD4 2308 278 2701 2702 2704 2703 +CQUAD4 2309 278 2688 2703 2705 2690 +CQUAD4 2310 278 2703 2704 2706 2705 +CQUAD4 2311 278 2690 2705 200 196 +CQUAD4 2312 278 2705 2706 204 200 +CQUAD4 2313 279 125 2695 2707 129 +CQUAD4 2314 279 2695 2696 2708 2707 +CQUAD4 2315 279 2696 2697 2709 2708 +CQUAD4 2316 279 2697 2698 2710 2709 +CQUAD4 2317 279 2698 201 205 2710 +CQUAD4 2318 279 129 2707 2711 133 +CQUAD4 2319 279 2707 2708 2712 2711 +CQUAD4 2320 279 2708 2709 2713 2712 +CQUAD4 2321 279 2709 2710 2714 2713 +CQUAD4 2322 279 2710 205 209 2714 +CQUAD4 2323 280 128 132 2715 2700 +CQUAD4 2324 280 132 136 2716 2715 +CQUAD4 2325 280 2700 2715 2717 2702 +CQUAD4 2326 280 2715 2716 2718 2717 +CQUAD4 2327 280 2702 2717 2719 2704 +CQUAD4 2328 280 2717 2718 2720 2719 +CQUAD4 2329 280 2704 2719 2721 2706 +CQUAD4 2330 280 2719 2720 2722 2721 +CQUAD4 2331 280 2706 2721 208 204 +CQUAD4 2332 280 2721 2722 212 208 +CQUAD4 2333 281 133 2711 2723 137 +CQUAD4 2334 281 2711 2712 2724 2723 +CQUAD4 2335 281 2712 2713 2725 2724 +CQUAD4 2336 281 2713 2714 2726 2725 +CQUAD4 2337 281 2714 209 213 2726 +CQUAD4 2338 281 137 2723 2727 141 +CQUAD4 2339 281 2723 2724 2728 2727 +CQUAD4 2340 281 2724 2725 2729 2728 +CQUAD4 2341 281 2725 2726 2730 2729 +CQUAD4 2342 281 2726 213 217 2730 +CQUAD4 2343 282 136 140 2731 2716 +CQUAD4 2344 282 140 144 2732 2731 +CQUAD4 2345 282 2716 2731 2733 2718 +CQUAD4 2346 282 2731 2732 2734 2733 +CQUAD4 2347 282 2718 2733 2735 2720 +CQUAD4 2348 282 2733 2734 2736 2735 +CQUAD4 2349 282 2720 2735 2737 2722 +CQUAD4 2350 282 2735 2736 2738 2737 +CQUAD4 2351 282 2722 2737 216 212 +CQUAD4 2352 282 2737 2738 220 216 +CQUAD4 2353 283 141 2727 2739 145 +CQUAD4 2354 283 2727 2728 2740 2739 +CQUAD4 2355 283 2728 2729 2741 2740 +CQUAD4 2356 283 2729 2730 2742 2741 +CQUAD4 2357 283 2730 217 221 2742 +CQUAD4 2358 283 145 2739 1697 149 +CQUAD4 2359 283 2739 2740 1698 1697 +CQUAD4 2360 283 2740 2741 1699 1698 +CQUAD4 2361 283 2741 2742 1700 1699 +CQUAD4 2362 283 2742 221 225 1700 +CQUAD4 2363 284 144 148 2743 2732 +CQUAD4 2364 284 148 152 1709 2743 +CQUAD4 2365 284 2732 2743 2744 2734 +CQUAD4 2366 284 2743 1709 1710 2744 +CQUAD4 2367 284 2734 2744 2745 2736 +CQUAD4 2368 284 2744 1710 1711 2745 +CQUAD4 2369 284 2736 2745 2746 2738 +CQUAD4 2370 284 2745 1711 1712 2746 +CQUAD4 2371 284 2738 2746 224 220 +CQUAD4 2372 284 2746 1712 228 224 +CQUAD4 2373 285 85 2459 2747 2615 +CQUAD4 2374 285 2459 2460 2748 2747 +CQUAD4 2375 285 2615 2747 2749 2616 +CQUAD4 2376 285 2747 2748 2750 2749 +CQUAD4 2377 285 2616 2749 2751 2617 +CQUAD4 2378 285 2749 2750 2752 2751 +CQUAD4 2379 285 2617 2751 2753 2618 +CQUAD4 2380 285 2751 2752 2754 2753 +CQUAD4 2381 285 2618 2753 2755 161 +CQUAD4 2382 285 2753 2754 2756 2755 +CQUAD4 2383 286 88 2469 2757 2620 +CQUAD4 2384 286 2469 2470 2758 2757 +CQUAD4 2385 286 2620 2757 2759 2622 +CQUAD4 2386 286 2757 2758 2760 2759 +CQUAD4 2387 286 2622 2759 2761 2624 +CQUAD4 2388 286 2759 2760 2762 2761 +CQUAD4 2389 286 2624 2761 2763 2626 +CQUAD4 2390 286 2761 2762 2764 2763 +CQUAD4 2391 286 2626 2763 2765 164 +CQUAD4 2392 286 2763 2764 2766 2765 +CQUAD4 2393 287 93 2479 2767 2631 +CQUAD4 2394 287 2479 2480 2768 2767 +CQUAD4 2395 287 2631 2767 2769 2632 +CQUAD4 2396 287 2767 2768 2770 2769 +CQUAD4 2397 287 2632 2769 2771 2633 +CQUAD4 2398 287 2769 2770 2772 2771 +CQUAD4 2399 287 2633 2771 2773 2634 +CQUAD4 2400 287 2771 2772 2774 2773 +CQUAD4 2401 287 2634 2773 2775 169 +CQUAD4 2402 287 2773 2774 2776 2775 +CQUAD4 2403 288 96 2489 2777 2636 +CQUAD4 2404 288 2489 2490 2778 2777 +CQUAD4 2405 288 2636 2777 2779 2638 +CQUAD4 2406 288 2777 2778 2780 2779 +CQUAD4 2407 288 2638 2779 2781 2640 +CQUAD4 2408 288 2779 2780 2782 2781 +CQUAD4 2409 288 2640 2781 2783 2642 +CQUAD4 2410 288 2781 2782 2784 2783 +CQUAD4 2411 288 2642 2783 2785 172 +CQUAD4 2412 288 2783 2784 2786 2785 +CQUAD4 2413 289 101 2499 2787 2647 +CQUAD4 2414 289 2499 2500 2788 2787 +CQUAD4 2415 289 2647 2787 2789 2648 +CQUAD4 2416 289 2787 2788 2790 2789 +CQUAD4 2417 289 2648 2789 2791 2649 +CQUAD4 2418 289 2789 2790 2792 2791 +CQUAD4 2419 289 2649 2791 2793 2650 +CQUAD4 2420 289 2791 2792 2794 2793 +CQUAD4 2421 289 2650 2793 2795 177 +CQUAD4 2422 289 2793 2794 2796 2795 +CQUAD4 2423 290 104 2509 2797 2652 +CQUAD4 2424 290 2509 2510 2798 2797 +CQUAD4 2425 290 2652 2797 2799 2654 +CQUAD4 2426 290 2797 2798 2800 2799 +CQUAD4 2427 290 2654 2799 2801 2656 +CQUAD4 2428 290 2799 2800 2802 2801 +CQUAD4 2429 290 2656 2801 2803 2658 +CQUAD4 2430 290 2801 2802 2804 2803 +CQUAD4 2431 290 2658 2803 2805 180 +CQUAD4 2432 290 2803 2804 2806 2805 +CQUAD4 2433 291 109 2519 2807 2663 +CQUAD4 2434 291 2519 2520 2808 2807 +CQUAD4 2435 291 2663 2807 2809 2664 +CQUAD4 2436 291 2807 2808 2810 2809 +CQUAD4 2437 291 2664 2809 2811 2665 +CQUAD4 2438 291 2809 2810 2812 2811 +CQUAD4 2439 291 2665 2811 2813 2666 +CQUAD4 2440 291 2811 2812 2814 2813 +CQUAD4 2441 291 2666 2813 2815 185 +CQUAD4 2442 291 2813 2814 2816 2815 +CQUAD4 2443 292 112 2529 2817 2668 +CQUAD4 2444 292 2529 2530 2818 2817 +CQUAD4 2445 292 2668 2817 2819 2670 +CQUAD4 2446 292 2817 2818 2820 2819 +CQUAD4 2447 292 2670 2819 2821 2672 +CQUAD4 2448 292 2819 2820 2822 2821 +CQUAD4 2449 292 2672 2821 2823 2674 +CQUAD4 2450 292 2821 2822 2824 2823 +CQUAD4 2451 292 2674 2823 2825 188 +CQUAD4 2452 292 2823 2824 2826 2825 +CQUAD4 2453 293 117 2539 2827 2679 +CQUAD4 2454 293 2539 2540 2828 2827 +CQUAD4 2455 293 2679 2827 2829 2680 +CQUAD4 2456 293 2827 2828 2830 2829 +CQUAD4 2457 293 2680 2829 2831 2681 +CQUAD4 2458 293 2829 2830 2832 2831 +CQUAD4 2459 293 2681 2831 2833 2682 +CQUAD4 2460 293 2831 2832 2834 2833 +CQUAD4 2461 293 2682 2833 2835 193 +CQUAD4 2462 293 2833 2834 2836 2835 +CQUAD4 2463 294 120 2549 2837 2684 +CQUAD4 2464 294 2549 2550 2838 2837 +CQUAD4 2465 294 2684 2837 2839 2686 +CQUAD4 2466 294 2837 2838 2840 2839 +CQUAD4 2467 294 2686 2839 2841 2688 +CQUAD4 2468 294 2839 2840 2842 2841 +CQUAD4 2469 294 2688 2841 2843 2690 +CQUAD4 2470 294 2841 2842 2844 2843 +CQUAD4 2471 294 2690 2843 2845 196 +CQUAD4 2472 294 2843 2844 2846 2845 +CQUAD4 2473 295 125 2559 2847 2695 +CQUAD4 2474 295 2559 2560 2848 2847 +CQUAD4 2475 295 2695 2847 2849 2696 +CQUAD4 2476 295 2847 2848 2850 2849 +CQUAD4 2477 295 2696 2849 2851 2697 +CQUAD4 2478 295 2849 2850 2852 2851 +CQUAD4 2479 295 2697 2851 2853 2698 +CQUAD4 2480 295 2851 2852 2854 2853 +CQUAD4 2481 295 2698 2853 2855 201 +CQUAD4 2482 295 2853 2854 2856 2855 +CQUAD4 2483 296 128 2569 2857 2700 +CQUAD4 2484 296 2569 2570 2858 2857 +CQUAD4 2485 296 2700 2857 2859 2702 +CQUAD4 2486 296 2857 2858 2860 2859 +CQUAD4 2487 296 2702 2859 2861 2704 +CQUAD4 2488 296 2859 2860 2862 2861 +CQUAD4 2489 296 2704 2861 2863 2706 +CQUAD4 2490 296 2861 2862 2864 2863 +CQUAD4 2491 296 2706 2863 2865 204 +CQUAD4 2492 296 2863 2864 2866 2865 +CQUAD4 2493 297 133 2579 2867 2711 +CQUAD4 2494 297 2579 2580 2868 2867 +CQUAD4 2495 297 2711 2867 2869 2712 +CQUAD4 2496 297 2867 2868 2870 2869 +CQUAD4 2497 297 2712 2869 2871 2713 +CQUAD4 2498 297 2869 2870 2872 2871 +CQUAD4 2499 297 2713 2871 2873 2714 +CQUAD4 2500 297 2871 2872 2874 2873 +CQUAD4 2501 297 2714 2873 2875 209 +CQUAD4 2502 297 2873 2874 2876 2875 +CQUAD4 2503 298 136 2589 2877 2716 +CQUAD4 2504 298 2589 2590 2878 2877 +CQUAD4 2505 298 2716 2877 2879 2718 +CQUAD4 2506 298 2877 2878 2880 2879 +CQUAD4 2507 298 2718 2879 2881 2720 +CQUAD4 2508 298 2879 2880 2882 2881 +CQUAD4 2509 298 2720 2881 2883 2722 +CQUAD4 2510 298 2881 2882 2884 2883 +CQUAD4 2511 298 2722 2883 2885 212 +CQUAD4 2512 298 2883 2884 2886 2885 +CQUAD4 2513 299 141 2599 2887 2727 +CQUAD4 2514 299 2599 2600 2888 2887 +CQUAD4 2515 299 2727 2887 2889 2728 +CQUAD4 2516 299 2887 2888 2890 2889 +CQUAD4 2517 299 2728 2889 2891 2729 +CQUAD4 2518 299 2889 2890 2892 2891 +CQUAD4 2519 299 2729 2891 2893 2730 +CQUAD4 2520 299 2891 2892 2894 2893 +CQUAD4 2521 299 2730 2893 2895 217 +CQUAD4 2522 299 2893 2894 2896 2895 +CQUAD4 2523 300 144 2609 2897 2732 +CQUAD4 2524 300 2609 2610 2898 2897 +CQUAD4 2525 300 2732 2897 2899 2734 +CQUAD4 2526 300 2897 2898 2900 2899 +CQUAD4 2527 300 2734 2899 2901 2736 +CQUAD4 2528 300 2899 2900 2902 2901 +CQUAD4 2529 300 2736 2901 2903 2738 +CQUAD4 2530 300 2901 2902 2904 2903 +CQUAD4 2531 300 2738 2903 2905 220 +CQUAD4 2532 300 2903 2904 2906 2905 +CQUAD4 2533 301 153 1421 2907 157 +CQUAD4 2534 301 1421 1422 2908 2907 +CQUAD4 2535 301 1422 1423 2909 2908 +CQUAD4 2536 301 1423 1424 2910 2909 +CQUAD4 2537 301 1424 229 233 2910 +CQUAD4 2538 301 157 2907 2911 161 +CQUAD4 2539 301 2907 2908 2912 2911 +CQUAD4 2540 301 2908 2909 2913 2912 +CQUAD4 2541 301 2909 2910 2914 2913 +CQUAD4 2542 301 2910 233 237 2914 +CQUAD4 2543 302 156 160 2915 1433 +CQUAD4 2544 302 160 164 2916 2915 +CQUAD4 2545 302 1433 2915 2917 1434 +CQUAD4 2546 302 2915 2916 2918 2917 +CQUAD4 2547 302 1434 2917 2919 1435 +CQUAD4 2548 302 2917 2918 2920 2919 +CQUAD4 2549 302 1435 2919 2921 1436 +CQUAD4 2550 302 2919 2920 2922 2921 +CQUAD4 2551 302 1436 2921 236 232 +CQUAD4 2552 302 2921 2922 240 236 +CQUAD4 2553 303 161 2911 2923 165 +CQUAD4 2554 303 2911 2912 2924 2923 +CQUAD4 2555 303 2912 2913 2925 2924 +CQUAD4 2556 303 2913 2914 2926 2925 +CQUAD4 2557 303 2914 237 241 2926 +CQUAD4 2558 303 165 2923 2927 169 +CQUAD4 2559 303 2923 2924 2928 2927 +CQUAD4 2560 303 2924 2925 2929 2928 +CQUAD4 2561 303 2925 2926 2930 2929 +CQUAD4 2562 303 2926 241 245 2930 +CQUAD4 2563 304 164 168 2931 2916 +CQUAD4 2564 304 168 172 2932 2931 +CQUAD4 2565 304 2916 2931 2933 2918 +CQUAD4 2566 304 2931 2932 2934 2933 +CQUAD4 2567 304 2918 2933 2935 2920 +CQUAD4 2568 304 2933 2934 2936 2935 +CQUAD4 2569 304 2920 2935 2937 2922 +CQUAD4 2570 304 2935 2936 2938 2937 +CQUAD4 2571 304 2922 2937 244 240 +CQUAD4 2572 304 2937 2938 248 244 +CQUAD4 2573 305 169 2927 2939 173 +CQUAD4 2574 305 2927 2928 2940 2939 +CQUAD4 2575 305 2928 2929 2941 2940 +CQUAD4 2576 305 2929 2930 2942 2941 +CQUAD4 2577 305 2930 245 249 2942 +CQUAD4 2578 305 173 2939 2943 177 +CQUAD4 2579 305 2939 2940 2944 2943 +CQUAD4 2580 305 2940 2941 2945 2944 +CQUAD4 2581 305 2941 2942 2946 2945 +CQUAD4 2582 305 2942 249 253 2946 +CQUAD4 2583 306 172 176 2947 2932 +CQUAD4 2584 306 176 180 2948 2947 +CQUAD4 2585 306 2932 2947 2949 2934 +CQUAD4 2586 306 2947 2948 2950 2949 +CQUAD4 2587 306 2934 2949 2951 2936 +CQUAD4 2588 306 2949 2950 2952 2951 +CQUAD4 2589 306 2936 2951 2953 2938 +CQUAD4 2590 306 2951 2952 2954 2953 +CQUAD4 2591 306 2938 2953 252 248 +CQUAD4 2592 306 2953 2954 256 252 +CQUAD4 2593 307 177 2943 2955 181 +CQUAD4 2594 307 2943 2944 2956 2955 +CQUAD4 2595 307 2944 2945 2957 2956 +CQUAD4 2596 307 2945 2946 2958 2957 +CQUAD4 2597 307 2946 253 257 2958 +CQUAD4 2598 307 181 2955 2959 185 +CQUAD4 2599 307 2955 2956 2960 2959 +CQUAD4 2600 307 2956 2957 2961 2960 +CQUAD4 2601 307 2957 2958 2962 2961 +CQUAD4 2602 307 2958 257 261 2962 +CQUAD4 2603 308 180 184 2963 2948 +CQUAD4 2604 308 184 188 2964 2963 +CQUAD4 2605 308 2948 2963 2965 2950 +CQUAD4 2606 308 2963 2964 2966 2965 +CQUAD4 2607 308 2950 2965 2967 2952 +CQUAD4 2608 308 2965 2966 2968 2967 +CQUAD4 2609 308 2952 2967 2969 2954 +CQUAD4 2610 308 2967 2968 2970 2969 +CQUAD4 2611 308 2954 2969 260 256 +CQUAD4 2612 308 2969 2970 264 260 +CQUAD4 2613 309 185 2959 2971 189 +CQUAD4 2614 309 2959 2960 2972 2971 +CQUAD4 2615 309 2960 2961 2973 2972 +CQUAD4 2616 309 2961 2962 2974 2973 +CQUAD4 2617 309 2962 261 265 2974 +CQUAD4 2618 309 189 2971 2975 193 +CQUAD4 2619 309 2971 2972 2976 2975 +CQUAD4 2620 309 2972 2973 2977 2976 +CQUAD4 2621 309 2973 2974 2978 2977 +CQUAD4 2622 309 2974 265 269 2978 +CQUAD4 2623 310 188 192 2979 2964 +CQUAD4 2624 310 192 196 2980 2979 +CQUAD4 2625 310 2964 2979 2981 2966 +CQUAD4 2626 310 2979 2980 2982 2981 +CQUAD4 2627 310 2966 2981 2983 2968 +CQUAD4 2628 310 2981 2982 2984 2983 +CQUAD4 2629 310 2968 2983 2985 2970 +CQUAD4 2630 310 2983 2984 2986 2985 +CQUAD4 2631 310 2970 2985 268 264 +CQUAD4 2632 310 2985 2986 272 268 +CQUAD4 2633 311 193 2975 2987 197 +CQUAD4 2634 311 2975 2976 2988 2987 +CQUAD4 2635 311 2976 2977 2989 2988 +CQUAD4 2636 311 2977 2978 2990 2989 +CQUAD4 2637 311 2978 269 273 2990 +CQUAD4 2638 311 197 2987 2991 201 +CQUAD4 2639 311 2987 2988 2992 2991 +CQUAD4 2640 311 2988 2989 2993 2992 +CQUAD4 2641 311 2989 2990 2994 2993 +CQUAD4 2642 311 2990 273 277 2994 +CQUAD4 2643 312 196 200 2995 2980 +CQUAD4 2644 312 200 204 2996 2995 +CQUAD4 2645 312 2980 2995 2997 2982 +CQUAD4 2646 312 2995 2996 2998 2997 +CQUAD4 2647 312 2982 2997 2999 2984 +CQUAD4 2648 312 2997 2998 3000 2999 +CQUAD4 2649 312 2984 2999 3001 2986 +CQUAD4 2650 312 2999 3000 3002 3001 +CQUAD4 2651 312 2986 3001 276 272 +CQUAD4 2652 312 3001 3002 280 276 +CQUAD4 2653 313 201 2991 3003 205 +CQUAD4 2654 313 2991 2992 3004 3003 +CQUAD4 2655 313 2992 2993 3005 3004 +CQUAD4 2656 313 2993 2994 3006 3005 +CQUAD4 2657 313 2994 277 281 3006 +CQUAD4 2658 313 205 3003 3007 209 +CQUAD4 2659 313 3003 3004 3008 3007 +CQUAD4 2660 313 3004 3005 3009 3008 +CQUAD4 2661 313 3005 3006 3010 3009 +CQUAD4 2662 313 3006 281 285 3010 +CQUAD4 2663 314 204 208 3011 2996 +CQUAD4 2664 314 208 212 3012 3011 +CQUAD4 2665 314 2996 3011 3013 2998 +CQUAD4 2666 314 3011 3012 3014 3013 +CQUAD4 2667 314 2998 3013 3015 3000 +CQUAD4 2668 314 3013 3014 3016 3015 +CQUAD4 2669 314 3000 3015 3017 3002 +CQUAD4 2670 314 3015 3016 3018 3017 +CQUAD4 2671 314 3002 3017 284 280 +CQUAD4 2672 314 3017 3018 288 284 +CQUAD4 2673 315 209 3007 3019 213 +CQUAD4 2674 315 3007 3008 3020 3019 +CQUAD4 2675 315 3008 3009 3021 3020 +CQUAD4 2676 315 3009 3010 3022 3021 +CQUAD4 2677 315 3010 285 289 3022 +CQUAD4 2678 315 213 3019 3023 217 +CQUAD4 2679 315 3019 3020 3024 3023 +CQUAD4 2680 315 3020 3021 3025 3024 +CQUAD4 2681 315 3021 3022 3026 3025 +CQUAD4 2682 315 3022 289 293 3026 +CQUAD4 2683 316 212 216 3027 3012 +CQUAD4 2684 316 216 220 3028 3027 +CQUAD4 2685 316 3012 3027 3029 3014 +CQUAD4 2686 316 3027 3028 3030 3029 +CQUAD4 2687 316 3014 3029 3031 3016 +CQUAD4 2688 316 3029 3030 3032 3031 +CQUAD4 2689 316 3016 3031 3033 3018 +CQUAD4 2690 316 3031 3032 3034 3033 +CQUAD4 2691 316 3018 3033 292 288 +CQUAD4 2692 316 3033 3034 296 292 +CQUAD4 2693 317 217 3023 3035 221 +CQUAD4 2694 317 3023 3024 3036 3035 +CQUAD4 2695 317 3024 3025 3037 3036 +CQUAD4 2696 317 3025 3026 3038 3037 +CQUAD4 2697 317 3026 293 297 3038 +CQUAD4 2698 317 221 3035 1713 225 +CQUAD4 2699 317 3035 3036 1714 1713 +CQUAD4 2700 317 3036 3037 1715 1714 +CQUAD4 2701 317 3037 3038 1716 1715 +CQUAD4 2702 317 3038 297 301 1716 +CQUAD4 2703 318 220 224 3039 3028 +CQUAD4 2704 318 224 228 1725 3039 +CQUAD4 2705 318 3028 3039 3040 3030 +CQUAD4 2706 318 3039 1725 1726 3040 +CQUAD4 2707 318 3030 3040 3041 3032 +CQUAD4 2708 318 3040 1726 1727 3041 +CQUAD4 2709 318 3032 3041 3042 3034 +CQUAD4 2710 318 3041 1727 1728 3042 +CQUAD4 2711 318 3034 3042 300 296 +CQUAD4 2712 318 3042 1728 304 300 +CQUAD4 2713 319 161 2755 3043 2911 +CQUAD4 2714 319 2755 2756 3044 3043 +CQUAD4 2715 319 2911 3043 3045 2912 +CQUAD4 2716 319 3043 3044 3046 3045 +CQUAD4 2717 319 2912 3045 3047 2913 +CQUAD4 2718 319 3045 3046 3048 3047 +CQUAD4 2719 319 2913 3047 3049 2914 +CQUAD4 2720 319 3047 3048 3050 3049 +CQUAD4 2721 319 2914 3049 3051 237 +CQUAD4 2722 319 3049 3050 3052 3051 +CQUAD4 2723 320 164 2765 3053 2916 +CQUAD4 2724 320 2765 2766 3054 3053 +CQUAD4 2725 320 2916 3053 3055 2918 +CQUAD4 2726 320 3053 3054 3056 3055 +CQUAD4 2727 320 2918 3055 3057 2920 +CQUAD4 2728 320 3055 3056 3058 3057 +CQUAD4 2729 320 2920 3057 3059 2922 +CQUAD4 2730 320 3057 3058 3060 3059 +CQUAD4 2731 320 2922 3059 3061 240 +CQUAD4 2732 320 3059 3060 3062 3061 +CQUAD4 2733 321 169 2775 3063 2927 +CQUAD4 2734 321 2775 2776 3064 3063 +CQUAD4 2735 321 2927 3063 3065 2928 +CQUAD4 2736 321 3063 3064 3066 3065 +CQUAD4 2737 321 2928 3065 3067 2929 +CQUAD4 2738 321 3065 3066 3068 3067 +CQUAD4 2739 321 2929 3067 3069 2930 +CQUAD4 2740 321 3067 3068 3070 3069 +CQUAD4 2741 321 2930 3069 3071 245 +CQUAD4 2742 321 3069 3070 3072 3071 +CQUAD4 2743 322 172 2785 3073 2932 +CQUAD4 2744 322 2785 2786 3074 3073 +CQUAD4 2745 322 2932 3073 3075 2934 +CQUAD4 2746 322 3073 3074 3076 3075 +CQUAD4 2747 322 2934 3075 3077 2936 +CQUAD4 2748 322 3075 3076 3078 3077 +CQUAD4 2749 322 2936 3077 3079 2938 +CQUAD4 2750 322 3077 3078 3080 3079 +CQUAD4 2751 322 2938 3079 3081 248 +CQUAD4 2752 322 3079 3080 3082 3081 +CQUAD4 2753 323 177 2795 3083 2943 +CQUAD4 2754 323 2795 2796 3084 3083 +CQUAD4 2755 323 2943 3083 3085 2944 +CQUAD4 2756 323 3083 3084 3086 3085 +CQUAD4 2757 323 2944 3085 3087 2945 +CQUAD4 2758 323 3085 3086 3088 3087 +CQUAD4 2759 323 2945 3087 3089 2946 +CQUAD4 2760 323 3087 3088 3090 3089 +CQUAD4 2761 323 2946 3089 3091 253 +CQUAD4 2762 323 3089 3090 3092 3091 +CQUAD4 2763 324 180 2805 3093 2948 +CQUAD4 2764 324 2805 2806 3094 3093 +CQUAD4 2765 324 2948 3093 3095 2950 +CQUAD4 2766 324 3093 3094 3096 3095 +CQUAD4 2767 324 2950 3095 3097 2952 +CQUAD4 2768 324 3095 3096 3098 3097 +CQUAD4 2769 324 2952 3097 3099 2954 +CQUAD4 2770 324 3097 3098 3100 3099 +CQUAD4 2771 324 2954 3099 3101 256 +CQUAD4 2772 324 3099 3100 3102 3101 +CQUAD4 2773 325 185 2815 3103 2959 +CQUAD4 2774 325 2815 2816 3104 3103 +CQUAD4 2775 325 2959 3103 3105 2960 +CQUAD4 2776 325 3103 3104 3106 3105 +CQUAD4 2777 325 2960 3105 3107 2961 +CQUAD4 2778 325 3105 3106 3108 3107 +CQUAD4 2779 325 2961 3107 3109 2962 +CQUAD4 2780 325 3107 3108 3110 3109 +CQUAD4 2781 325 2962 3109 3111 261 +CQUAD4 2782 325 3109 3110 3112 3111 +CQUAD4 2783 326 188 2825 3113 2964 +CQUAD4 2784 326 2825 2826 3114 3113 +CQUAD4 2785 326 2964 3113 3115 2966 +CQUAD4 2786 326 3113 3114 3116 3115 +CQUAD4 2787 326 2966 3115 3117 2968 +CQUAD4 2788 326 3115 3116 3118 3117 +CQUAD4 2789 326 2968 3117 3119 2970 +CQUAD4 2790 326 3117 3118 3120 3119 +CQUAD4 2791 326 2970 3119 3121 264 +CQUAD4 2792 326 3119 3120 3122 3121 +CQUAD4 2793 327 193 2835 3123 2975 +CQUAD4 2794 327 2835 2836 3124 3123 +CQUAD4 2795 327 2975 3123 3125 2976 +CQUAD4 2796 327 3123 3124 3126 3125 +CQUAD4 2797 327 2976 3125 3127 2977 +CQUAD4 2798 327 3125 3126 3128 3127 +CQUAD4 2799 327 2977 3127 3129 2978 +CQUAD4 2800 327 3127 3128 3130 3129 +CQUAD4 2801 327 2978 3129 3131 269 +CQUAD4 2802 327 3129 3130 3132 3131 +CQUAD4 2803 328 196 2845 3133 2980 +CQUAD4 2804 328 2845 2846 3134 3133 +CQUAD4 2805 328 2980 3133 3135 2982 +CQUAD4 2806 328 3133 3134 3136 3135 +CQUAD4 2807 328 2982 3135 3137 2984 +CQUAD4 2808 328 3135 3136 3138 3137 +CQUAD4 2809 328 2984 3137 3139 2986 +CQUAD4 2810 328 3137 3138 3140 3139 +CQUAD4 2811 328 2986 3139 3141 272 +CQUAD4 2812 328 3139 3140 3142 3141 +CQUAD4 2813 329 201 2855 3143 2991 +CQUAD4 2814 329 2855 2856 3144 3143 +CQUAD4 2815 329 2991 3143 3145 2992 +CQUAD4 2816 329 3143 3144 3146 3145 +CQUAD4 2817 329 2992 3145 3147 2993 +CQUAD4 2818 329 3145 3146 3148 3147 +CQUAD4 2819 329 2993 3147 3149 2994 +CQUAD4 2820 329 3147 3148 3150 3149 +CQUAD4 2821 329 2994 3149 3151 277 +CQUAD4 2822 329 3149 3150 3152 3151 +CQUAD4 2823 330 204 2865 3153 2996 +CQUAD4 2824 330 2865 2866 3154 3153 +CQUAD4 2825 330 2996 3153 3155 2998 +CQUAD4 2826 330 3153 3154 3156 3155 +CQUAD4 2827 330 2998 3155 3157 3000 +CQUAD4 2828 330 3155 3156 3158 3157 +CQUAD4 2829 330 3000 3157 3159 3002 +CQUAD4 2830 330 3157 3158 3160 3159 +CQUAD4 2831 330 3002 3159 3161 280 +CQUAD4 2832 330 3159 3160 3162 3161 +CQUAD4 2833 331 209 2875 3163 3007 +CQUAD4 2834 331 2875 2876 3164 3163 +CQUAD4 2835 331 3007 3163 3165 3008 +CQUAD4 2836 331 3163 3164 3166 3165 +CQUAD4 2837 331 3008 3165 3167 3009 +CQUAD4 2838 331 3165 3166 3168 3167 +CQUAD4 2839 331 3009 3167 3169 3010 +CQUAD4 2840 331 3167 3168 3170 3169 +CQUAD4 2841 331 3010 3169 3171 285 +CQUAD4 2842 331 3169 3170 3172 3171 +CQUAD4 2843 332 212 2885 3173 3012 +CQUAD4 2844 332 2885 2886 3174 3173 +CQUAD4 2845 332 3012 3173 3175 3014 +CQUAD4 2846 332 3173 3174 3176 3175 +CQUAD4 2847 332 3014 3175 3177 3016 +CQUAD4 2848 332 3175 3176 3178 3177 +CQUAD4 2849 332 3016 3177 3179 3018 +CQUAD4 2850 332 3177 3178 3180 3179 +CQUAD4 2851 332 3018 3179 3181 288 +CQUAD4 2852 332 3179 3180 3182 3181 +CQUAD4 2853 333 217 2895 3183 3023 +CQUAD4 2854 333 2895 2896 3184 3183 +CQUAD4 2855 333 3023 3183 3185 3024 +CQUAD4 2856 333 3183 3184 3186 3185 +CQUAD4 2857 333 3024 3185 3187 3025 +CQUAD4 2858 333 3185 3186 3188 3187 +CQUAD4 2859 333 3025 3187 3189 3026 +CQUAD4 2860 333 3187 3188 3190 3189 +CQUAD4 2861 333 3026 3189 3191 293 +CQUAD4 2862 333 3189 3190 3192 3191 +CQUAD4 2863 334 220 2905 3193 3028 +CQUAD4 2864 334 2905 2906 3194 3193 +CQUAD4 2865 334 3028 3193 3195 3030 +CQUAD4 2866 334 3193 3194 3196 3195 +CQUAD4 2867 334 3030 3195 3197 3032 +CQUAD4 2868 334 3195 3196 3198 3197 +CQUAD4 2869 334 3032 3197 3199 3034 +CQUAD4 2870 334 3197 3198 3200 3199 +CQUAD4 2871 334 3034 3199 3201 296 +CQUAD4 2872 334 3199 3200 3202 3201 +CQUAD4 2873 335 229 1437 3203 233 +CQUAD4 2874 335 1437 1438 3204 3203 +CQUAD4 2875 335 1438 1439 3205 3204 +CQUAD4 2876 335 1439 1440 3206 3205 +CQUAD4 2877 335 1440 305 309 3206 +CQUAD4 2878 335 233 3203 3207 237 +CQUAD4 2879 335 3203 3204 3208 3207 +CQUAD4 2880 335 3204 3205 3209 3208 +CQUAD4 2881 335 3205 3206 3210 3209 +CQUAD4 2882 335 3206 309 313 3210 +CQUAD4 2883 336 232 236 3211 1449 +CQUAD4 2884 336 236 240 3212 3211 +CQUAD4 2885 336 1449 3211 3213 1450 +CQUAD4 2886 336 3211 3212 3214 3213 +CQUAD4 2887 336 1450 3213 3215 1451 +CQUAD4 2888 336 3213 3214 3216 3215 +CQUAD4 2889 336 1451 3215 3217 1452 +CQUAD4 2890 336 3215 3216 3218 3217 +CQUAD4 2891 336 1452 3217 312 308 +CQUAD4 2892 336 3217 3218 316 312 +CQUAD4 2893 337 237 3207 3219 241 +CQUAD4 2894 337 3207 3208 3220 3219 +CQUAD4 2895 337 3208 3209 3221 3220 +CQUAD4 2896 337 3209 3210 3222 3221 +CQUAD4 2897 337 3210 313 317 3222 +CQUAD4 2898 337 241 3219 3223 245 +CQUAD4 2899 337 3219 3220 3224 3223 +CQUAD4 2900 337 3220 3221 3225 3224 +CQUAD4 2901 337 3221 3222 3226 3225 +CQUAD4 2902 337 3222 317 321 3226 +CQUAD4 2903 338 240 244 3227 3212 +CQUAD4 2904 338 244 248 3228 3227 +CQUAD4 2905 338 3212 3227 3229 3214 +CQUAD4 2906 338 3227 3228 3230 3229 +CQUAD4 2907 338 3214 3229 3231 3216 +CQUAD4 2908 338 3229 3230 3232 3231 +CQUAD4 2909 338 3216 3231 3233 3218 +CQUAD4 2910 338 3231 3232 3234 3233 +CQUAD4 2911 338 3218 3233 320 316 +CQUAD4 2912 338 3233 3234 324 320 +CQUAD4 2913 339 245 3223 3235 249 +CQUAD4 2914 339 3223 3224 3236 3235 +CQUAD4 2915 339 3224 3225 3237 3236 +CQUAD4 2916 339 3225 3226 3238 3237 +CQUAD4 2917 339 3226 321 325 3238 +CQUAD4 2918 339 249 3235 3239 253 +CQUAD4 2919 339 3235 3236 3240 3239 +CQUAD4 2920 339 3236 3237 3241 3240 +CQUAD4 2921 339 3237 3238 3242 3241 +CQUAD4 2922 339 3238 325 329 3242 +CQUAD4 2923 340 248 252 3243 3228 +CQUAD4 2924 340 252 256 3244 3243 +CQUAD4 2925 340 3228 3243 3245 3230 +CQUAD4 2926 340 3243 3244 3246 3245 +CQUAD4 2927 340 3230 3245 3247 3232 +CQUAD4 2928 340 3245 3246 3248 3247 +CQUAD4 2929 340 3232 3247 3249 3234 +CQUAD4 2930 340 3247 3248 3250 3249 +CQUAD4 2931 340 3234 3249 328 324 +CQUAD4 2932 340 3249 3250 332 328 +CQUAD4 2933 341 253 3239 3251 257 +CQUAD4 2934 341 3239 3240 3252 3251 +CQUAD4 2935 341 3240 3241 3253 3252 +CQUAD4 2936 341 3241 3242 3254 3253 +CQUAD4 2937 341 3242 329 333 3254 +CQUAD4 2938 341 257 3251 3255 261 +CQUAD4 2939 341 3251 3252 3256 3255 +CQUAD4 2940 341 3252 3253 3257 3256 +CQUAD4 2941 341 3253 3254 3258 3257 +CQUAD4 2942 341 3254 333 337 3258 +CQUAD4 2943 342 256 260 3259 3244 +CQUAD4 2944 342 260 264 3260 3259 +CQUAD4 2945 342 3244 3259 3261 3246 +CQUAD4 2946 342 3259 3260 3262 3261 +CQUAD4 2947 342 3246 3261 3263 3248 +CQUAD4 2948 342 3261 3262 3264 3263 +CQUAD4 2949 342 3248 3263 3265 3250 +CQUAD4 2950 342 3263 3264 3266 3265 +CQUAD4 2951 342 3250 3265 336 332 +CQUAD4 2952 342 3265 3266 340 336 +CQUAD4 2953 343 261 3255 3267 265 +CQUAD4 2954 343 3255 3256 3268 3267 +CQUAD4 2955 343 3256 3257 3269 3268 +CQUAD4 2956 343 3257 3258 3270 3269 +CQUAD4 2957 343 3258 337 341 3270 +CQUAD4 2958 343 265 3267 3271 269 +CQUAD4 2959 343 3267 3268 3272 3271 +CQUAD4 2960 343 3268 3269 3273 3272 +CQUAD4 2961 343 3269 3270 3274 3273 +CQUAD4 2962 343 3270 341 345 3274 +CQUAD4 2963 344 264 268 3275 3260 +CQUAD4 2964 344 268 272 3276 3275 +CQUAD4 2965 344 3260 3275 3277 3262 +CQUAD4 2966 344 3275 3276 3278 3277 +CQUAD4 2967 344 3262 3277 3279 3264 +CQUAD4 2968 344 3277 3278 3280 3279 +CQUAD4 2969 344 3264 3279 3281 3266 +CQUAD4 2970 344 3279 3280 3282 3281 +CQUAD4 2971 344 3266 3281 344 340 +CQUAD4 2972 344 3281 3282 348 344 +CQUAD4 2973 345 269 3271 3283 273 +CQUAD4 2974 345 3271 3272 3284 3283 +CQUAD4 2975 345 3272 3273 3285 3284 +CQUAD4 2976 345 3273 3274 3286 3285 +CQUAD4 2977 345 3274 345 349 3286 +CQUAD4 2978 345 273 3283 3287 277 +CQUAD4 2979 345 3283 3284 3288 3287 +CQUAD4 2980 345 3284 3285 3289 3288 +CQUAD4 2981 345 3285 3286 3290 3289 +CQUAD4 2982 345 3286 349 353 3290 +CQUAD4 2983 346 272 276 3291 3276 +CQUAD4 2984 346 276 280 3292 3291 +CQUAD4 2985 346 3276 3291 3293 3278 +CQUAD4 2986 346 3291 3292 3294 3293 +CQUAD4 2987 346 3278 3293 3295 3280 +CQUAD4 2988 346 3293 3294 3296 3295 +CQUAD4 2989 346 3280 3295 3297 3282 +CQUAD4 2990 346 3295 3296 3298 3297 +CQUAD4 2991 346 3282 3297 352 348 +CQUAD4 2992 346 3297 3298 356 352 +CQUAD4 2993 347 277 3287 3299 281 +CQUAD4 2994 347 3287 3288 3300 3299 +CQUAD4 2995 347 3288 3289 3301 3300 +CQUAD4 2996 347 3289 3290 3302 3301 +CQUAD4 2997 347 3290 353 357 3302 +CQUAD4 2998 347 281 3299 3303 285 +CQUAD4 2999 347 3299 3300 3304 3303 +CQUAD4 3000 347 3300 3301 3305 3304 +CQUAD4 3001 347 3301 3302 3306 3305 +CQUAD4 3002 347 3302 357 361 3306 +CQUAD4 3003 348 280 284 3307 3292 +CQUAD4 3004 348 284 288 3308 3307 +CQUAD4 3005 348 3292 3307 3309 3294 +CQUAD4 3006 348 3307 3308 3310 3309 +CQUAD4 3007 348 3294 3309 3311 3296 +CQUAD4 3008 348 3309 3310 3312 3311 +CQUAD4 3009 348 3296 3311 3313 3298 +CQUAD4 3010 348 3311 3312 3314 3313 +CQUAD4 3011 348 3298 3313 360 356 +CQUAD4 3012 348 3313 3314 364 360 +CQUAD4 3013 349 285 3303 3315 289 +CQUAD4 3014 349 3303 3304 3316 3315 +CQUAD4 3015 349 3304 3305 3317 3316 +CQUAD4 3016 349 3305 3306 3318 3317 +CQUAD4 3017 349 3306 361 365 3318 +CQUAD4 3018 349 289 3315 3319 293 +CQUAD4 3019 349 3315 3316 3320 3319 +CQUAD4 3020 349 3316 3317 3321 3320 +CQUAD4 3021 349 3317 3318 3322 3321 +CQUAD4 3022 349 3318 365 369 3322 +CQUAD4 3023 350 288 292 3323 3308 +CQUAD4 3024 350 292 296 3324 3323 +CQUAD4 3025 350 3308 3323 3325 3310 +CQUAD4 3026 350 3323 3324 3326 3325 +CQUAD4 3027 350 3310 3325 3327 3312 +CQUAD4 3028 350 3325 3326 3328 3327 +CQUAD4 3029 350 3312 3327 3329 3314 +CQUAD4 3030 350 3327 3328 3330 3329 +CQUAD4 3031 350 3314 3329 368 364 +CQUAD4 3032 350 3329 3330 372 368 +CQUAD4 3033 351 293 3319 3331 297 +CQUAD4 3034 351 3319 3320 3332 3331 +CQUAD4 3035 351 3320 3321 3333 3332 +CQUAD4 3036 351 3321 3322 3334 3333 +CQUAD4 3037 351 3322 369 373 3334 +CQUAD4 3038 351 297 3331 1729 301 +CQUAD4 3039 351 3331 3332 1730 1729 +CQUAD4 3040 351 3332 3333 1731 1730 +CQUAD4 3041 351 3333 3334 1732 1731 +CQUAD4 3042 351 3334 373 377 1732 +CQUAD4 3043 352 296 300 3335 3324 +CQUAD4 3044 352 300 304 1741 3335 +CQUAD4 3045 352 3324 3335 3336 3326 +CQUAD4 3046 352 3335 1741 1742 3336 +CQUAD4 3047 352 3326 3336 3337 3328 +CQUAD4 3048 352 3336 1742 1743 3337 +CQUAD4 3049 352 3328 3337 3338 3330 +CQUAD4 3050 352 3337 1743 1744 3338 +CQUAD4 3051 352 3330 3338 376 372 +CQUAD4 3052 352 3338 1744 380 376 +CQUAD4 3053 353 237 3051 3339 3207 +CQUAD4 3054 353 3051 3052 3340 3339 +CQUAD4 3055 353 3207 3339 3341 3208 +CQUAD4 3056 353 3339 3340 3342 3341 +CQUAD4 3057 353 3208 3341 3343 3209 +CQUAD4 3058 353 3341 3342 3344 3343 +CQUAD4 3059 353 3209 3343 3345 3210 +CQUAD4 3060 353 3343 3344 3346 3345 +CQUAD4 3061 353 3210 3345 3347 313 +CQUAD4 3062 353 3345 3346 3348 3347 +CQUAD4 3063 354 240 3061 3349 3212 +CQUAD4 3064 354 3061 3062 3350 3349 +CQUAD4 3065 354 3212 3349 3351 3214 +CQUAD4 3066 354 3349 3350 3352 3351 +CQUAD4 3067 354 3214 3351 3353 3216 +CQUAD4 3068 354 3351 3352 3354 3353 +CQUAD4 3069 354 3216 3353 3355 3218 +CQUAD4 3070 354 3353 3354 3356 3355 +CQUAD4 3071 354 3218 3355 3357 316 +CQUAD4 3072 354 3355 3356 3358 3357 +CQUAD4 3073 355 245 3071 3359 3223 +CQUAD4 3074 355 3071 3072 3360 3359 +CQUAD4 3075 355 3223 3359 3361 3224 +CQUAD4 3076 355 3359 3360 3362 3361 +CQUAD4 3077 355 3224 3361 3363 3225 +CQUAD4 3078 355 3361 3362 3364 3363 +CQUAD4 3079 355 3225 3363 3365 3226 +CQUAD4 3080 355 3363 3364 3366 3365 +CQUAD4 3081 355 3226 3365 3367 321 +CQUAD4 3082 355 3365 3366 3368 3367 +CQUAD4 3083 356 248 3081 3369 3228 +CQUAD4 3084 356 3081 3082 3370 3369 +CQUAD4 3085 356 3228 3369 3371 3230 +CQUAD4 3086 356 3369 3370 3372 3371 +CQUAD4 3087 356 3230 3371 3373 3232 +CQUAD4 3088 356 3371 3372 3374 3373 +CQUAD4 3089 356 3232 3373 3375 3234 +CQUAD4 3090 356 3373 3374 3376 3375 +CQUAD4 3091 356 3234 3375 3377 324 +CQUAD4 3092 356 3375 3376 3378 3377 +CQUAD4 3093 357 253 3091 3379 3239 +CQUAD4 3094 357 3091 3092 3380 3379 +CQUAD4 3095 357 3239 3379 3381 3240 +CQUAD4 3096 357 3379 3380 3382 3381 +CQUAD4 3097 357 3240 3381 3383 3241 +CQUAD4 3098 357 3381 3382 3384 3383 +CQUAD4 3099 357 3241 3383 3385 3242 +CQUAD4 3100 357 3383 3384 3386 3385 +CQUAD4 3101 357 3242 3385 3387 329 +CQUAD4 3102 357 3385 3386 3388 3387 +CQUAD4 3103 358 256 3101 3389 3244 +CQUAD4 3104 358 3101 3102 3390 3389 +CQUAD4 3105 358 3244 3389 3391 3246 +CQUAD4 3106 358 3389 3390 3392 3391 +CQUAD4 3107 358 3246 3391 3393 3248 +CQUAD4 3108 358 3391 3392 3394 3393 +CQUAD4 3109 358 3248 3393 3395 3250 +CQUAD4 3110 358 3393 3394 3396 3395 +CQUAD4 3111 358 3250 3395 3397 332 +CQUAD4 3112 358 3395 3396 3398 3397 +CQUAD4 3113 359 261 3111 3399 3255 +CQUAD4 3114 359 3111 3112 3400 3399 +CQUAD4 3115 359 3255 3399 3401 3256 +CQUAD4 3116 359 3399 3400 3402 3401 +CQUAD4 3117 359 3256 3401 3403 3257 +CQUAD4 3118 359 3401 3402 3404 3403 +CQUAD4 3119 359 3257 3403 3405 3258 +CQUAD4 3120 359 3403 3404 3406 3405 +CQUAD4 3121 359 3258 3405 3407 337 +CQUAD4 3122 359 3405 3406 3408 3407 +CQUAD4 3123 360 264 3121 3409 3260 +CQUAD4 3124 360 3121 3122 3410 3409 +CQUAD4 3125 360 3260 3409 3411 3262 +CQUAD4 3126 360 3409 3410 3412 3411 +CQUAD4 3127 360 3262 3411 3413 3264 +CQUAD4 3128 360 3411 3412 3414 3413 +CQUAD4 3129 360 3264 3413 3415 3266 +CQUAD4 3130 360 3413 3414 3416 3415 +CQUAD4 3131 360 3266 3415 3417 340 +CQUAD4 3132 360 3415 3416 3418 3417 +CQUAD4 3133 361 269 3131 3419 3271 +CQUAD4 3134 361 3131 3132 3420 3419 +CQUAD4 3135 361 3271 3419 3421 3272 +CQUAD4 3136 361 3419 3420 3422 3421 +CQUAD4 3137 361 3272 3421 3423 3273 +CQUAD4 3138 361 3421 3422 3424 3423 +CQUAD4 3139 361 3273 3423 3425 3274 +CQUAD4 3140 361 3423 3424 3426 3425 +CQUAD4 3141 361 3274 3425 3427 345 +CQUAD4 3142 361 3425 3426 3428 3427 +CQUAD4 3143 362 272 3141 3429 3276 +CQUAD4 3144 362 3141 3142 3430 3429 +CQUAD4 3145 362 3276 3429 3431 3278 +CQUAD4 3146 362 3429 3430 3432 3431 +CQUAD4 3147 362 3278 3431 3433 3280 +CQUAD4 3148 362 3431 3432 3434 3433 +CQUAD4 3149 362 3280 3433 3435 3282 +CQUAD4 3150 362 3433 3434 3436 3435 +CQUAD4 3151 362 3282 3435 3437 348 +CQUAD4 3152 362 3435 3436 3438 3437 +CQUAD4 3153 363 277 3151 3439 3287 +CQUAD4 3154 363 3151 3152 3440 3439 +CQUAD4 3155 363 3287 3439 3441 3288 +CQUAD4 3156 363 3439 3440 3442 3441 +CQUAD4 3157 363 3288 3441 3443 3289 +CQUAD4 3158 363 3441 3442 3444 3443 +CQUAD4 3159 363 3289 3443 3445 3290 +CQUAD4 3160 363 3443 3444 3446 3445 +CQUAD4 3161 363 3290 3445 3447 353 +CQUAD4 3162 363 3445 3446 3448 3447 +CQUAD4 3163 364 280 3161 3449 3292 +CQUAD4 3164 364 3161 3162 3450 3449 +CQUAD4 3165 364 3292 3449 3451 3294 +CQUAD4 3166 364 3449 3450 3452 3451 +CQUAD4 3167 364 3294 3451 3453 3296 +CQUAD4 3168 364 3451 3452 3454 3453 +CQUAD4 3169 364 3296 3453 3455 3298 +CQUAD4 3170 364 3453 3454 3456 3455 +CQUAD4 3171 364 3298 3455 3457 356 +CQUAD4 3172 364 3455 3456 3458 3457 +CQUAD4 3173 365 285 3171 3459 3303 +CQUAD4 3174 365 3171 3172 3460 3459 +CQUAD4 3175 365 3303 3459 3461 3304 +CQUAD4 3176 365 3459 3460 3462 3461 +CQUAD4 3177 365 3304 3461 3463 3305 +CQUAD4 3178 365 3461 3462 3464 3463 +CQUAD4 3179 365 3305 3463 3465 3306 +CQUAD4 3180 365 3463 3464 3466 3465 +CQUAD4 3181 365 3306 3465 3467 361 +CQUAD4 3182 365 3465 3466 3468 3467 +CQUAD4 3183 366 288 3181 3469 3308 +CQUAD4 3184 366 3181 3182 3470 3469 +CQUAD4 3185 366 3308 3469 3471 3310 +CQUAD4 3186 366 3469 3470 3472 3471 +CQUAD4 3187 366 3310 3471 3473 3312 +CQUAD4 3188 366 3471 3472 3474 3473 +CQUAD4 3189 366 3312 3473 3475 3314 +CQUAD4 3190 366 3473 3474 3476 3475 +CQUAD4 3191 366 3314 3475 3477 364 +CQUAD4 3192 366 3475 3476 3478 3477 +CQUAD4 3193 367 293 3191 3479 3319 +CQUAD4 3194 367 3191 3192 3480 3479 +CQUAD4 3195 367 3319 3479 3481 3320 +CQUAD4 3196 367 3479 3480 3482 3481 +CQUAD4 3197 367 3320 3481 3483 3321 +CQUAD4 3198 367 3481 3482 3484 3483 +CQUAD4 3199 367 3321 3483 3485 3322 +CQUAD4 3200 367 3483 3484 3486 3485 +CQUAD4 3201 367 3322 3485 3487 369 +CQUAD4 3202 367 3485 3486 3488 3487 +CQUAD4 3203 368 296 3201 3489 3324 +CQUAD4 3204 368 3201 3202 3490 3489 +CQUAD4 3205 368 3324 3489 3491 3326 +CQUAD4 3206 368 3489 3490 3492 3491 +CQUAD4 3207 368 3326 3491 3493 3328 +CQUAD4 3208 368 3491 3492 3494 3493 +CQUAD4 3209 368 3328 3493 3495 3330 +CQUAD4 3210 368 3493 3494 3496 3495 +CQUAD4 3211 368 3330 3495 3497 372 +CQUAD4 3212 368 3495 3496 3498 3497 +CQUAD4 3213 369 305 1453 3499 309 +CQUAD4 3214 369 1453 1454 3500 3499 +CQUAD4 3215 369 1454 1455 3501 3500 +CQUAD4 3216 369 1455 1456 3502 3501 +CQUAD4 3217 369 1456 381 385 3502 +CQUAD4 3218 369 309 3499 3503 313 +CQUAD4 3219 369 3499 3500 3504 3503 +CQUAD4 3220 369 3500 3501 3505 3504 +CQUAD4 3221 369 3501 3502 3506 3505 +CQUAD4 3222 369 3502 385 389 3506 +CQUAD4 3223 370 308 312 3507 1465 +CQUAD4 3224 370 312 316 3508 3507 +CQUAD4 3225 370 1465 3507 3509 1466 +CQUAD4 3226 370 3507 3508 3510 3509 +CQUAD4 3227 370 1466 3509 3511 1467 +CQUAD4 3228 370 3509 3510 3512 3511 +CQUAD4 3229 370 1467 3511 3513 1468 +CQUAD4 3230 370 3511 3512 3514 3513 +CQUAD4 3231 370 1468 3513 388 384 +CQUAD4 3232 370 3513 3514 392 388 +CQUAD4 3233 371 313 3503 3515 317 +CQUAD4 3234 371 3503 3504 3516 3515 +CQUAD4 3235 371 3504 3505 3517 3516 +CQUAD4 3236 371 3505 3506 3518 3517 +CQUAD4 3237 371 3506 389 393 3518 +CQUAD4 3238 371 317 3515 3519 321 +CQUAD4 3239 371 3515 3516 3520 3519 +CQUAD4 3240 371 3516 3517 3521 3520 +CQUAD4 3241 371 3517 3518 3522 3521 +CQUAD4 3242 371 3518 393 397 3522 +CQUAD4 3243 372 316 320 3523 3508 +CQUAD4 3244 372 320 324 3524 3523 +CQUAD4 3245 372 3508 3523 3525 3510 +CQUAD4 3246 372 3523 3524 3526 3525 +CQUAD4 3247 372 3510 3525 3527 3512 +CQUAD4 3248 372 3525 3526 3528 3527 +CQUAD4 3249 372 3512 3527 3529 3514 +CQUAD4 3250 372 3527 3528 3530 3529 +CQUAD4 3251 372 3514 3529 396 392 +CQUAD4 3252 372 3529 3530 400 396 +CQUAD4 3253 373 321 3519 3531 325 +CQUAD4 3254 373 3519 3520 3532 3531 +CQUAD4 3255 373 3520 3521 3533 3532 +CQUAD4 3256 373 3521 3522 3534 3533 +CQUAD4 3257 373 3522 397 401 3534 +CQUAD4 3258 373 325 3531 3535 329 +CQUAD4 3259 373 3531 3532 3536 3535 +CQUAD4 3260 373 3532 3533 3537 3536 +CQUAD4 3261 373 3533 3534 3538 3537 +CQUAD4 3262 373 3534 401 405 3538 +CQUAD4 3263 374 324 328 3539 3524 +CQUAD4 3264 374 328 332 3540 3539 +CQUAD4 3265 374 3524 3539 3541 3526 +CQUAD4 3266 374 3539 3540 3542 3541 +CQUAD4 3267 374 3526 3541 3543 3528 +CQUAD4 3268 374 3541 3542 3544 3543 +CQUAD4 3269 374 3528 3543 3545 3530 +CQUAD4 3270 374 3543 3544 3546 3545 +CQUAD4 3271 374 3530 3545 404 400 +CQUAD4 3272 374 3545 3546 408 404 +CQUAD4 3273 375 329 3535 3547 333 +CQUAD4 3274 375 3535 3536 3548 3547 +CQUAD4 3275 375 3536 3537 3549 3548 +CQUAD4 3276 375 3537 3538 3550 3549 +CQUAD4 3277 375 3538 405 409 3550 +CQUAD4 3278 375 333 3547 3551 337 +CQUAD4 3279 375 3547 3548 3552 3551 +CQUAD4 3280 375 3548 3549 3553 3552 +CQUAD4 3281 375 3549 3550 3554 3553 +CQUAD4 3282 375 3550 409 413 3554 +CQUAD4 3283 376 332 336 3555 3540 +CQUAD4 3284 376 336 340 3556 3555 +CQUAD4 3285 376 3540 3555 3557 3542 +CQUAD4 3286 376 3555 3556 3558 3557 +CQUAD4 3287 376 3542 3557 3559 3544 +CQUAD4 3288 376 3557 3558 3560 3559 +CQUAD4 3289 376 3544 3559 3561 3546 +CQUAD4 3290 376 3559 3560 3562 3561 +CQUAD4 3291 376 3546 3561 412 408 +CQUAD4 3292 376 3561 3562 416 412 +CQUAD4 3293 377 337 3551 3563 341 +CQUAD4 3294 377 3551 3552 3564 3563 +CQUAD4 3295 377 3552 3553 3565 3564 +CQUAD4 3296 377 3553 3554 3566 3565 +CQUAD4 3297 377 3554 413 417 3566 +CQUAD4 3298 377 341 3563 3567 345 +CQUAD4 3299 377 3563 3564 3568 3567 +CQUAD4 3300 377 3564 3565 3569 3568 +CQUAD4 3301 377 3565 3566 3570 3569 +CQUAD4 3302 377 3566 417 421 3570 +CQUAD4 3303 378 340 344 3571 3556 +CQUAD4 3304 378 344 348 3572 3571 +CQUAD4 3305 378 3556 3571 3573 3558 +CQUAD4 3306 378 3571 3572 3574 3573 +CQUAD4 3307 378 3558 3573 3575 3560 +CQUAD4 3308 378 3573 3574 3576 3575 +CQUAD4 3309 378 3560 3575 3577 3562 +CQUAD4 3310 378 3575 3576 3578 3577 +CQUAD4 3311 378 3562 3577 420 416 +CQUAD4 3312 378 3577 3578 424 420 +CQUAD4 3313 379 345 3567 3579 349 +CQUAD4 3314 379 3567 3568 3580 3579 +CQUAD4 3315 379 3568 3569 3581 3580 +CQUAD4 3316 379 3569 3570 3582 3581 +CQUAD4 3317 379 3570 421 425 3582 +CQUAD4 3318 379 349 3579 3583 353 +CQUAD4 3319 379 3579 3580 3584 3583 +CQUAD4 3320 379 3580 3581 3585 3584 +CQUAD4 3321 379 3581 3582 3586 3585 +CQUAD4 3322 379 3582 425 429 3586 +CQUAD4 3323 380 348 352 3587 3572 +CQUAD4 3324 380 352 356 3588 3587 +CQUAD4 3325 380 3572 3587 3589 3574 +CQUAD4 3326 380 3587 3588 3590 3589 +CQUAD4 3327 380 3574 3589 3591 3576 +CQUAD4 3328 380 3589 3590 3592 3591 +CQUAD4 3329 380 3576 3591 3593 3578 +CQUAD4 3330 380 3591 3592 3594 3593 +CQUAD4 3331 380 3578 3593 428 424 +CQUAD4 3332 380 3593 3594 432 428 +CQUAD4 3333 381 353 3583 3595 357 +CQUAD4 3334 381 3583 3584 3596 3595 +CQUAD4 3335 381 3584 3585 3597 3596 +CQUAD4 3336 381 3585 3586 3598 3597 +CQUAD4 3337 381 3586 429 433 3598 +CQUAD4 3338 381 357 3595 3599 361 +CQUAD4 3339 381 3595 3596 3600 3599 +CQUAD4 3340 381 3596 3597 3601 3600 +CQUAD4 3341 381 3597 3598 3602 3601 +CQUAD4 3342 381 3598 433 437 3602 +CQUAD4 3343 382 356 360 3603 3588 +CQUAD4 3344 382 360 364 3604 3603 +CQUAD4 3345 382 3588 3603 3605 3590 +CQUAD4 3346 382 3603 3604 3606 3605 +CQUAD4 3347 382 3590 3605 3607 3592 +CQUAD4 3348 382 3605 3606 3608 3607 +CQUAD4 3349 382 3592 3607 3609 3594 +CQUAD4 3350 382 3607 3608 3610 3609 +CQUAD4 3351 382 3594 3609 436 432 +CQUAD4 3352 382 3609 3610 440 436 +CQUAD4 3353 383 361 3599 3611 365 +CQUAD4 3354 383 3599 3600 3612 3611 +CQUAD4 3355 383 3600 3601 3613 3612 +CQUAD4 3356 383 3601 3602 3614 3613 +CQUAD4 3357 383 3602 437 441 3614 +CQUAD4 3358 383 365 3611 3615 369 +CQUAD4 3359 383 3611 3612 3616 3615 +CQUAD4 3360 383 3612 3613 3617 3616 +CQUAD4 3361 383 3613 3614 3618 3617 +CQUAD4 3362 383 3614 441 445 3618 +CQUAD4 3363 384 364 368 3619 3604 +CQUAD4 3364 384 368 372 3620 3619 +CQUAD4 3365 384 3604 3619 3621 3606 +CQUAD4 3366 384 3619 3620 3622 3621 +CQUAD4 3367 384 3606 3621 3623 3608 +CQUAD4 3368 384 3621 3622 3624 3623 +CQUAD4 3369 384 3608 3623 3625 3610 +CQUAD4 3370 384 3623 3624 3626 3625 +CQUAD4 3371 384 3610 3625 444 440 +CQUAD4 3372 384 3625 3626 448 444 +CQUAD4 3373 385 369 3615 3627 373 +CQUAD4 3374 385 3615 3616 3628 3627 +CQUAD4 3375 385 3616 3617 3629 3628 +CQUAD4 3376 385 3617 3618 3630 3629 +CQUAD4 3377 385 3618 445 449 3630 +CQUAD4 3378 385 373 3627 1745 377 +CQUAD4 3379 385 3627 3628 1746 1745 +CQUAD4 3380 385 3628 3629 1747 1746 +CQUAD4 3381 385 3629 3630 1748 1747 +CQUAD4 3382 385 3630 449 453 1748 +CQUAD4 3383 386 372 376 3631 3620 +CQUAD4 3384 386 376 380 1757 3631 +CQUAD4 3385 386 3620 3631 3632 3622 +CQUAD4 3386 386 3631 1757 1758 3632 +CQUAD4 3387 386 3622 3632 3633 3624 +CQUAD4 3388 386 3632 1758 1759 3633 +CQUAD4 3389 386 3624 3633 3634 3626 +CQUAD4 3390 386 3633 1759 1760 3634 +CQUAD4 3391 386 3626 3634 452 448 +CQUAD4 3392 386 3634 1760 456 452 +CQUAD4 3393 387 313 3347 3635 3503 +CQUAD4 3394 387 3347 3348 3636 3635 +CQUAD4 3395 387 3503 3635 3637 3504 +CQUAD4 3396 387 3635 3636 3638 3637 +CQUAD4 3397 387 3504 3637 3639 3505 +CQUAD4 3398 387 3637 3638 3640 3639 +CQUAD4 3399 387 3505 3639 3641 3506 +CQUAD4 3400 387 3639 3640 3642 3641 +CQUAD4 3401 387 3506 3641 3643 389 +CQUAD4 3402 387 3641 3642 3644 3643 +CQUAD4 3403 388 316 3357 3645 3508 +CQUAD4 3404 388 3357 3358 3646 3645 +CQUAD4 3405 388 3508 3645 3647 3510 +CQUAD4 3406 388 3645 3646 3648 3647 +CQUAD4 3407 388 3510 3647 3649 3512 +CQUAD4 3408 388 3647 3648 3650 3649 +CQUAD4 3409 388 3512 3649 3651 3514 +CQUAD4 3410 388 3649 3650 3652 3651 +CQUAD4 3411 388 3514 3651 3653 392 +CQUAD4 3412 388 3651 3652 3654 3653 +CQUAD4 3413 389 321 3367 3655 3519 +CQUAD4 3414 389 3367 3368 3656 3655 +CQUAD4 3415 389 3519 3655 3657 3520 +CQUAD4 3416 389 3655 3656 3658 3657 +CQUAD4 3417 389 3520 3657 3659 3521 +CQUAD4 3418 389 3657 3658 3660 3659 +CQUAD4 3419 389 3521 3659 3661 3522 +CQUAD4 3420 389 3659 3660 3662 3661 +CQUAD4 3421 389 3522 3661 3663 397 +CQUAD4 3422 389 3661 3662 3664 3663 +CQUAD4 3423 390 324 3377 3665 3524 +CQUAD4 3424 390 3377 3378 3666 3665 +CQUAD4 3425 390 3524 3665 3667 3526 +CQUAD4 3426 390 3665 3666 3668 3667 +CQUAD4 3427 390 3526 3667 3669 3528 +CQUAD4 3428 390 3667 3668 3670 3669 +CQUAD4 3429 390 3528 3669 3671 3530 +CQUAD4 3430 390 3669 3670 3672 3671 +CQUAD4 3431 390 3530 3671 3673 400 +CQUAD4 3432 390 3671 3672 3674 3673 +CQUAD4 3433 391 329 3387 3675 3535 +CQUAD4 3434 391 3387 3388 3676 3675 +CQUAD4 3435 391 3535 3675 3677 3536 +CQUAD4 3436 391 3675 3676 3678 3677 +CQUAD4 3437 391 3536 3677 3679 3537 +CQUAD4 3438 391 3677 3678 3680 3679 +CQUAD4 3439 391 3537 3679 3681 3538 +CQUAD4 3440 391 3679 3680 3682 3681 +CQUAD4 3441 391 3538 3681 3683 405 +CQUAD4 3442 391 3681 3682 3684 3683 +CQUAD4 3443 392 332 3397 3685 3540 +CQUAD4 3444 392 3397 3398 3686 3685 +CQUAD4 3445 392 3540 3685 3687 3542 +CQUAD4 3446 392 3685 3686 3688 3687 +CQUAD4 3447 392 3542 3687 3689 3544 +CQUAD4 3448 392 3687 3688 3690 3689 +CQUAD4 3449 392 3544 3689 3691 3546 +CQUAD4 3450 392 3689 3690 3692 3691 +CQUAD4 3451 392 3546 3691 3693 408 +CQUAD4 3452 392 3691 3692 3694 3693 +CQUAD4 3453 393 337 3407 3695 3551 +CQUAD4 3454 393 3407 3408 3696 3695 +CQUAD4 3455 393 3551 3695 3697 3552 +CQUAD4 3456 393 3695 3696 3698 3697 +CQUAD4 3457 393 3552 3697 3699 3553 +CQUAD4 3458 393 3697 3698 3700 3699 +CQUAD4 3459 393 3553 3699 3701 3554 +CQUAD4 3460 393 3699 3700 3702 3701 +CQUAD4 3461 393 3554 3701 3703 413 +CQUAD4 3462 393 3701 3702 3704 3703 +CQUAD4 3463 394 340 3417 3705 3556 +CQUAD4 3464 394 3417 3418 3706 3705 +CQUAD4 3465 394 3556 3705 3707 3558 +CQUAD4 3466 394 3705 3706 3708 3707 +CQUAD4 3467 394 3558 3707 3709 3560 +CQUAD4 3468 394 3707 3708 3710 3709 +CQUAD4 3469 394 3560 3709 3711 3562 +CQUAD4 3470 394 3709 3710 3712 3711 +CQUAD4 3471 394 3562 3711 3713 416 +CQUAD4 3472 394 3711 3712 3714 3713 +CQUAD4 3473 395 345 3427 3715 3567 +CQUAD4 3474 395 3427 3428 3716 3715 +CQUAD4 3475 395 3567 3715 3717 3568 +CQUAD4 3476 395 3715 3716 3718 3717 +CQUAD4 3477 395 3568 3717 3719 3569 +CQUAD4 3478 395 3717 3718 3720 3719 +CQUAD4 3479 395 3569 3719 3721 3570 +CQUAD4 3480 395 3719 3720 3722 3721 +CQUAD4 3481 395 3570 3721 3723 421 +CQUAD4 3482 395 3721 3722 3724 3723 +CQUAD4 3483 396 348 3437 3725 3572 +CQUAD4 3484 396 3437 3438 3726 3725 +CQUAD4 3485 396 3572 3725 3727 3574 +CQUAD4 3486 396 3725 3726 3728 3727 +CQUAD4 3487 396 3574 3727 3729 3576 +CQUAD4 3488 396 3727 3728 3730 3729 +CQUAD4 3489 396 3576 3729 3731 3578 +CQUAD4 3490 396 3729 3730 3732 3731 +CQUAD4 3491 396 3578 3731 3733 424 +CQUAD4 3492 396 3731 3732 3734 3733 +CQUAD4 3493 397 353 3447 3735 3583 +CQUAD4 3494 397 3447 3448 3736 3735 +CQUAD4 3495 397 3583 3735 3737 3584 +CQUAD4 3496 397 3735 3736 3738 3737 +CQUAD4 3497 397 3584 3737 3739 3585 +CQUAD4 3498 397 3737 3738 3740 3739 +CQUAD4 3499 397 3585 3739 3741 3586 +CQUAD4 3500 397 3739 3740 3742 3741 +CQUAD4 3501 397 3586 3741 3743 429 +CQUAD4 3502 397 3741 3742 3744 3743 +CQUAD4 3503 398 356 3457 3745 3588 +CQUAD4 3504 398 3457 3458 3746 3745 +CQUAD4 3505 398 3588 3745 3747 3590 +CQUAD4 3506 398 3745 3746 3748 3747 +CQUAD4 3507 398 3590 3747 3749 3592 +CQUAD4 3508 398 3747 3748 3750 3749 +CQUAD4 3509 398 3592 3749 3751 3594 +CQUAD4 3510 398 3749 3750 3752 3751 +CQUAD4 3511 398 3594 3751 3753 432 +CQUAD4 3512 398 3751 3752 3754 3753 +CQUAD4 3513 399 361 3467 3755 3599 +CQUAD4 3514 399 3467 3468 3756 3755 +CQUAD4 3515 399 3599 3755 3757 3600 +CQUAD4 3516 399 3755 3756 3758 3757 +CQUAD4 3517 399 3600 3757 3759 3601 +CQUAD4 3518 399 3757 3758 3760 3759 +CQUAD4 3519 399 3601 3759 3761 3602 +CQUAD4 3520 399 3759 3760 3762 3761 +CQUAD4 3521 399 3602 3761 3763 437 +CQUAD4 3522 399 3761 3762 3764 3763 +CQUAD4 3523 400 364 3477 3765 3604 +CQUAD4 3524 400 3477 3478 3766 3765 +CQUAD4 3525 400 3604 3765 3767 3606 +CQUAD4 3526 400 3765 3766 3768 3767 +CQUAD4 3527 400 3606 3767 3769 3608 +CQUAD4 3528 400 3767 3768 3770 3769 +CQUAD4 3529 400 3608 3769 3771 3610 +CQUAD4 3530 400 3769 3770 3772 3771 +CQUAD4 3531 400 3610 3771 3773 440 +CQUAD4 3532 400 3771 3772 3774 3773 +CQUAD4 3533 401 369 3487 3775 3615 +CQUAD4 3534 401 3487 3488 3776 3775 +CQUAD4 3535 401 3615 3775 3777 3616 +CQUAD4 3536 401 3775 3776 3778 3777 +CQUAD4 3537 401 3616 3777 3779 3617 +CQUAD4 3538 401 3777 3778 3780 3779 +CQUAD4 3539 401 3617 3779 3781 3618 +CQUAD4 3540 401 3779 3780 3782 3781 +CQUAD4 3541 401 3618 3781 3783 445 +CQUAD4 3542 401 3781 3782 3784 3783 +CQUAD4 3543 402 372 3497 3785 3620 +CQUAD4 3544 402 3497 3498 3786 3785 +CQUAD4 3545 402 3620 3785 3787 3622 +CQUAD4 3546 402 3785 3786 3788 3787 +CQUAD4 3547 402 3622 3787 3789 3624 +CQUAD4 3548 402 3787 3788 3790 3789 +CQUAD4 3549 402 3624 3789 3791 3626 +CQUAD4 3550 402 3789 3790 3792 3791 +CQUAD4 3551 402 3626 3791 3793 448 +CQUAD4 3552 402 3791 3792 3794 3793 +CQUAD4 3553 403 381 1469 3795 385 +CQUAD4 3554 403 1469 1470 3796 3795 +CQUAD4 3555 403 1470 1471 3797 3796 +CQUAD4 3556 403 1471 1472 3798 3797 +CQUAD4 3557 403 1472 457 461 3798 +CQUAD4 3558 403 385 3795 3799 389 +CQUAD4 3559 403 3795 3796 3800 3799 +CQUAD4 3560 403 3796 3797 3801 3800 +CQUAD4 3561 403 3797 3798 3802 3801 +CQUAD4 3562 403 3798 461 465 3802 +CQUAD4 3563 404 384 388 3803 1481 +CQUAD4 3564 404 388 392 3804 3803 +CQUAD4 3565 404 1481 3803 3805 1482 +CQUAD4 3566 404 3803 3804 3806 3805 +CQUAD4 3567 404 1482 3805 3807 1483 +CQUAD4 3568 404 3805 3806 3808 3807 +CQUAD4 3569 404 1483 3807 3809 1484 +CQUAD4 3570 404 3807 3808 3810 3809 +CQUAD4 3571 404 1484 3809 464 460 +CQUAD4 3572 404 3809 3810 468 464 +CQUAD4 3573 405 389 3799 3811 393 +CQUAD4 3574 405 3799 3800 3812 3811 +CQUAD4 3575 405 3800 3801 3813 3812 +CQUAD4 3576 405 3801 3802 3814 3813 +CQUAD4 3577 405 3802 465 469 3814 +CQUAD4 3578 405 393 3811 3815 397 +CQUAD4 3579 405 3811 3812 3816 3815 +CQUAD4 3580 405 3812 3813 3817 3816 +CQUAD4 3581 405 3813 3814 3818 3817 +CQUAD4 3582 405 3814 469 473 3818 +CQUAD4 3583 406 392 396 3819 3804 +CQUAD4 3584 406 396 400 3820 3819 +CQUAD4 3585 406 3804 3819 3821 3806 +CQUAD4 3586 406 3819 3820 3822 3821 +CQUAD4 3587 406 3806 3821 3823 3808 +CQUAD4 3588 406 3821 3822 3824 3823 +CQUAD4 3589 406 3808 3823 3825 3810 +CQUAD4 3590 406 3823 3824 3826 3825 +CQUAD4 3591 406 3810 3825 472 468 +CQUAD4 3592 406 3825 3826 476 472 +CQUAD4 3593 407 397 3815 3827 401 +CQUAD4 3594 407 3815 3816 3828 3827 +CQUAD4 3595 407 3816 3817 3829 3828 +CQUAD4 3596 407 3817 3818 3830 3829 +CQUAD4 3597 407 3818 473 477 3830 +CQUAD4 3598 407 401 3827 3831 405 +CQUAD4 3599 407 3827 3828 3832 3831 +CQUAD4 3600 407 3828 3829 3833 3832 +CQUAD4 3601 407 3829 3830 3834 3833 +CQUAD4 3602 407 3830 477 481 3834 +CQUAD4 3603 408 400 404 3835 3820 +CQUAD4 3604 408 404 408 3836 3835 +CQUAD4 3605 408 3820 3835 3837 3822 +CQUAD4 3606 408 3835 3836 3838 3837 +CQUAD4 3607 408 3822 3837 3839 3824 +CQUAD4 3608 408 3837 3838 3840 3839 +CQUAD4 3609 408 3824 3839 3841 3826 +CQUAD4 3610 408 3839 3840 3842 3841 +CQUAD4 3611 408 3826 3841 480 476 +CQUAD4 3612 408 3841 3842 484 480 +CQUAD4 3613 409 405 3831 3843 409 +CQUAD4 3614 409 3831 3832 3844 3843 +CQUAD4 3615 409 3832 3833 3845 3844 +CQUAD4 3616 409 3833 3834 3846 3845 +CQUAD4 3617 409 3834 481 485 3846 +CQUAD4 3618 409 409 3843 3847 413 +CQUAD4 3619 409 3843 3844 3848 3847 +CQUAD4 3620 409 3844 3845 3849 3848 +CQUAD4 3621 409 3845 3846 3850 3849 +CQUAD4 3622 409 3846 485 489 3850 +CQUAD4 3623 410 408 412 3851 3836 +CQUAD4 3624 410 412 416 3852 3851 +CQUAD4 3625 410 3836 3851 3853 3838 +CQUAD4 3626 410 3851 3852 3854 3853 +CQUAD4 3627 410 3838 3853 3855 3840 +CQUAD4 3628 410 3853 3854 3856 3855 +CQUAD4 3629 410 3840 3855 3857 3842 +CQUAD4 3630 410 3855 3856 3858 3857 +CQUAD4 3631 410 3842 3857 488 484 +CQUAD4 3632 410 3857 3858 492 488 +CQUAD4 3633 411 413 3847 3859 417 +CQUAD4 3634 411 3847 3848 3860 3859 +CQUAD4 3635 411 3848 3849 3861 3860 +CQUAD4 3636 411 3849 3850 3862 3861 +CQUAD4 3637 411 3850 489 493 3862 +CQUAD4 3638 411 417 3859 3863 421 +CQUAD4 3639 411 3859 3860 3864 3863 +CQUAD4 3640 411 3860 3861 3865 3864 +CQUAD4 3641 411 3861 3862 3866 3865 +CQUAD4 3642 411 3862 493 497 3866 +CQUAD4 3643 412 416 420 3867 3852 +CQUAD4 3644 412 420 424 3868 3867 +CQUAD4 3645 412 3852 3867 3869 3854 +CQUAD4 3646 412 3867 3868 3870 3869 +CQUAD4 3647 412 3854 3869 3871 3856 +CQUAD4 3648 412 3869 3870 3872 3871 +CQUAD4 3649 412 3856 3871 3873 3858 +CQUAD4 3650 412 3871 3872 3874 3873 +CQUAD4 3651 412 3858 3873 496 492 +CQUAD4 3652 412 3873 3874 500 496 +CQUAD4 3653 413 421 3863 3875 425 +CQUAD4 3654 413 3863 3864 3876 3875 +CQUAD4 3655 413 3864 3865 3877 3876 +CQUAD4 3656 413 3865 3866 3878 3877 +CQUAD4 3657 413 3866 497 501 3878 +CQUAD4 3658 413 425 3875 3879 429 +CQUAD4 3659 413 3875 3876 3880 3879 +CQUAD4 3660 413 3876 3877 3881 3880 +CQUAD4 3661 413 3877 3878 3882 3881 +CQUAD4 3662 413 3878 501 505 3882 +CQUAD4 3663 414 424 428 3883 3868 +CQUAD4 3664 414 428 432 3884 3883 +CQUAD4 3665 414 3868 3883 3885 3870 +CQUAD4 3666 414 3883 3884 3886 3885 +CQUAD4 3667 414 3870 3885 3887 3872 +CQUAD4 3668 414 3885 3886 3888 3887 +CQUAD4 3669 414 3872 3887 3889 3874 +CQUAD4 3670 414 3887 3888 3890 3889 +CQUAD4 3671 414 3874 3889 504 500 +CQUAD4 3672 414 3889 3890 508 504 +CQUAD4 3673 415 429 3879 3891 433 +CQUAD4 3674 415 3879 3880 3892 3891 +CQUAD4 3675 415 3880 3881 3893 3892 +CQUAD4 3676 415 3881 3882 3894 3893 +CQUAD4 3677 415 3882 505 509 3894 +CQUAD4 3678 415 433 3891 3895 437 +CQUAD4 3679 415 3891 3892 3896 3895 +CQUAD4 3680 415 3892 3893 3897 3896 +CQUAD4 3681 415 3893 3894 3898 3897 +CQUAD4 3682 415 3894 509 513 3898 +CQUAD4 3683 416 432 436 3899 3884 +CQUAD4 3684 416 436 440 3900 3899 +CQUAD4 3685 416 3884 3899 3901 3886 +CQUAD4 3686 416 3899 3900 3902 3901 +CQUAD4 3687 416 3886 3901 3903 3888 +CQUAD4 3688 416 3901 3902 3904 3903 +CQUAD4 3689 416 3888 3903 3905 3890 +CQUAD4 3690 416 3903 3904 3906 3905 +CQUAD4 3691 416 3890 3905 512 508 +CQUAD4 3692 416 3905 3906 516 512 +CQUAD4 3693 417 437 3895 3907 441 +CQUAD4 3694 417 3895 3896 3908 3907 +CQUAD4 3695 417 3896 3897 3909 3908 +CQUAD4 3696 417 3897 3898 3910 3909 +CQUAD4 3697 417 3898 513 517 3910 +CQUAD4 3698 417 441 3907 3911 445 +CQUAD4 3699 417 3907 3908 3912 3911 +CQUAD4 3700 417 3908 3909 3913 3912 +CQUAD4 3701 417 3909 3910 3914 3913 +CQUAD4 3702 417 3910 517 521 3914 +CQUAD4 3703 418 440 444 3915 3900 +CQUAD4 3704 418 444 448 3916 3915 +CQUAD4 3705 418 3900 3915 3917 3902 +CQUAD4 3706 418 3915 3916 3918 3917 +CQUAD4 3707 418 3902 3917 3919 3904 +CQUAD4 3708 418 3917 3918 3920 3919 +CQUAD4 3709 418 3904 3919 3921 3906 +CQUAD4 3710 418 3919 3920 3922 3921 +CQUAD4 3711 418 3906 3921 520 516 +CQUAD4 3712 418 3921 3922 524 520 +CQUAD4 3713 419 445 3911 3923 449 +CQUAD4 3714 419 3911 3912 3924 3923 +CQUAD4 3715 419 3912 3913 3925 3924 +CQUAD4 3716 419 3913 3914 3926 3925 +CQUAD4 3717 419 3914 521 525 3926 +CQUAD4 3718 419 449 3923 1761 453 +CQUAD4 3719 419 3923 3924 1762 1761 +CQUAD4 3720 419 3924 3925 1763 1762 +CQUAD4 3721 419 3925 3926 1764 1763 +CQUAD4 3722 419 3926 525 529 1764 +CQUAD4 3723 420 448 452 3927 3916 +CQUAD4 3724 420 452 456 1773 3927 +CQUAD4 3725 420 3916 3927 3928 3918 +CQUAD4 3726 420 3927 1773 1774 3928 +CQUAD4 3727 420 3918 3928 3929 3920 +CQUAD4 3728 420 3928 1774 1775 3929 +CQUAD4 3729 420 3920 3929 3930 3922 +CQUAD4 3730 420 3929 1775 1776 3930 +CQUAD4 3731 420 3922 3930 528 524 +CQUAD4 3732 420 3930 1776 532 528 +CQUAD4 3733 421 389 3643 3931 3799 +CQUAD4 3734 421 3643 3644 3932 3931 +CQUAD4 3735 421 3799 3931 3933 3800 +CQUAD4 3736 421 3931 3932 3934 3933 +CQUAD4 3737 421 3800 3933 3935 3801 +CQUAD4 3738 421 3933 3934 3936 3935 +CQUAD4 3739 421 3801 3935 3937 3802 +CQUAD4 3740 421 3935 3936 3938 3937 +CQUAD4 3741 421 3802 3937 3939 465 +CQUAD4 3742 421 3937 3938 3940 3939 +CQUAD4 3743 422 392 3653 3941 3804 +CQUAD4 3744 422 3653 3654 3942 3941 +CQUAD4 3745 422 3804 3941 3943 3806 +CQUAD4 3746 422 3941 3942 3944 3943 +CQUAD4 3747 422 3806 3943 3945 3808 +CQUAD4 3748 422 3943 3944 3946 3945 +CQUAD4 3749 422 3808 3945 3947 3810 +CQUAD4 3750 422 3945 3946 3948 3947 +CQUAD4 3751 422 3810 3947 3949 468 +CQUAD4 3752 422 3947 3948 3950 3949 +CQUAD4 3753 423 397 3663 3951 3815 +CQUAD4 3754 423 3663 3664 3952 3951 +CQUAD4 3755 423 3815 3951 3953 3816 +CQUAD4 3756 423 3951 3952 3954 3953 +CQUAD4 3757 423 3816 3953 3955 3817 +CQUAD4 3758 423 3953 3954 3956 3955 +CQUAD4 3759 423 3817 3955 3957 3818 +CQUAD4 3760 423 3955 3956 3958 3957 +CQUAD4 3761 423 3818 3957 3959 473 +CQUAD4 3762 423 3957 3958 3960 3959 +CQUAD4 3763 424 400 3673 3961 3820 +CQUAD4 3764 424 3673 3674 3962 3961 +CQUAD4 3765 424 3820 3961 3963 3822 +CQUAD4 3766 424 3961 3962 3964 3963 +CQUAD4 3767 424 3822 3963 3965 3824 +CQUAD4 3768 424 3963 3964 3966 3965 +CQUAD4 3769 424 3824 3965 3967 3826 +CQUAD4 3770 424 3965 3966 3968 3967 +CQUAD4 3771 424 3826 3967 3969 476 +CQUAD4 3772 424 3967 3968 3970 3969 +CQUAD4 3773 425 405 3683 3971 3831 +CQUAD4 3774 425 3683 3684 3972 3971 +CQUAD4 3775 425 3831 3971 3973 3832 +CQUAD4 3776 425 3971 3972 3974 3973 +CQUAD4 3777 425 3832 3973 3975 3833 +CQUAD4 3778 425 3973 3974 3976 3975 +CQUAD4 3779 425 3833 3975 3977 3834 +CQUAD4 3780 425 3975 3976 3978 3977 +CQUAD4 3781 425 3834 3977 3979 481 +CQUAD4 3782 425 3977 3978 3980 3979 +CQUAD4 3783 426 408 3693 3981 3836 +CQUAD4 3784 426 3693 3694 3982 3981 +CQUAD4 3785 426 3836 3981 3983 3838 +CQUAD4 3786 426 3981 3982 3984 3983 +CQUAD4 3787 426 3838 3983 3985 3840 +CQUAD4 3788 426 3983 3984 3986 3985 +CQUAD4 3789 426 3840 3985 3987 3842 +CQUAD4 3790 426 3985 3986 3988 3987 +CQUAD4 3791 426 3842 3987 3989 484 +CQUAD4 3792 426 3987 3988 3990 3989 +CQUAD4 3793 427 413 3703 3991 3847 +CQUAD4 3794 427 3703 3704 3992 3991 +CQUAD4 3795 427 3847 3991 3993 3848 +CQUAD4 3796 427 3991 3992 3994 3993 +CQUAD4 3797 427 3848 3993 3995 3849 +CQUAD4 3798 427 3993 3994 3996 3995 +CQUAD4 3799 427 3849 3995 3997 3850 +CQUAD4 3800 427 3995 3996 3998 3997 +CQUAD4 3801 427 3850 3997 3999 489 +CQUAD4 3802 427 3997 3998 4000 3999 +CQUAD4 3803 428 416 3713 4001 3852 +CQUAD4 3804 428 3713 3714 4002 4001 +CQUAD4 3805 428 3852 4001 4003 3854 +CQUAD4 3806 428 4001 4002 4004 4003 +CQUAD4 3807 428 3854 4003 4005 3856 +CQUAD4 3808 428 4003 4004 4006 4005 +CQUAD4 3809 428 3856 4005 4007 3858 +CQUAD4 3810 428 4005 4006 4008 4007 +CQUAD4 3811 428 3858 4007 4009 492 +CQUAD4 3812 428 4007 4008 4010 4009 +CQUAD4 3813 429 421 3723 4011 3863 +CQUAD4 3814 429 3723 3724 4012 4011 +CQUAD4 3815 429 3863 4011 4013 3864 +CQUAD4 3816 429 4011 4012 4014 4013 +CQUAD4 3817 429 3864 4013 4015 3865 +CQUAD4 3818 429 4013 4014 4016 4015 +CQUAD4 3819 429 3865 4015 4017 3866 +CQUAD4 3820 429 4015 4016 4018 4017 +CQUAD4 3821 429 3866 4017 4019 497 +CQUAD4 3822 429 4017 4018 4020 4019 +CQUAD4 3823 430 424 3733 4021 3868 +CQUAD4 3824 430 3733 3734 4022 4021 +CQUAD4 3825 430 3868 4021 4023 3870 +CQUAD4 3826 430 4021 4022 4024 4023 +CQUAD4 3827 430 3870 4023 4025 3872 +CQUAD4 3828 430 4023 4024 4026 4025 +CQUAD4 3829 430 3872 4025 4027 3874 +CQUAD4 3830 430 4025 4026 4028 4027 +CQUAD4 3831 430 3874 4027 4029 500 +CQUAD4 3832 430 4027 4028 4030 4029 +CQUAD4 3833 431 429 3743 4031 3879 +CQUAD4 3834 431 3743 3744 4032 4031 +CQUAD4 3835 431 3879 4031 4033 3880 +CQUAD4 3836 431 4031 4032 4034 4033 +CQUAD4 3837 431 3880 4033 4035 3881 +CQUAD4 3838 431 4033 4034 4036 4035 +CQUAD4 3839 431 3881 4035 4037 3882 +CQUAD4 3840 431 4035 4036 4038 4037 +CQUAD4 3841 431 3882 4037 4039 505 +CQUAD4 3842 431 4037 4038 4040 4039 +CQUAD4 3843 432 432 3753 4041 3884 +CQUAD4 3844 432 3753 3754 4042 4041 +CQUAD4 3845 432 3884 4041 4043 3886 +CQUAD4 3846 432 4041 4042 4044 4043 +CQUAD4 3847 432 3886 4043 4045 3888 +CQUAD4 3848 432 4043 4044 4046 4045 +CQUAD4 3849 432 3888 4045 4047 3890 +CQUAD4 3850 432 4045 4046 4048 4047 +CQUAD4 3851 432 3890 4047 4049 508 +CQUAD4 3852 432 4047 4048 4050 4049 +CQUAD4 3853 433 437 3763 4051 3895 +CQUAD4 3854 433 3763 3764 4052 4051 +CQUAD4 3855 433 3895 4051 4053 3896 +CQUAD4 3856 433 4051 4052 4054 4053 +CQUAD4 3857 433 3896 4053 4055 3897 +CQUAD4 3858 433 4053 4054 4056 4055 +CQUAD4 3859 433 3897 4055 4057 3898 +CQUAD4 3860 433 4055 4056 4058 4057 +CQUAD4 3861 433 3898 4057 4059 513 +CQUAD4 3862 433 4057 4058 4060 4059 +CQUAD4 3863 434 440 3773 4061 3900 +CQUAD4 3864 434 3773 3774 4062 4061 +CQUAD4 3865 434 3900 4061 4063 3902 +CQUAD4 3866 434 4061 4062 4064 4063 +CQUAD4 3867 434 3902 4063 4065 3904 +CQUAD4 3868 434 4063 4064 4066 4065 +CQUAD4 3869 434 3904 4065 4067 3906 +CQUAD4 3870 434 4065 4066 4068 4067 +CQUAD4 3871 434 3906 4067 4069 516 +CQUAD4 3872 434 4067 4068 4070 4069 +CQUAD4 3873 435 445 3783 4071 3911 +CQUAD4 3874 435 3783 3784 4072 4071 +CQUAD4 3875 435 3911 4071 4073 3912 +CQUAD4 3876 435 4071 4072 4074 4073 +CQUAD4 3877 435 3912 4073 4075 3913 +CQUAD4 3878 435 4073 4074 4076 4075 +CQUAD4 3879 435 3913 4075 4077 3914 +CQUAD4 3880 435 4075 4076 4078 4077 +CQUAD4 3881 435 3914 4077 4079 521 +CQUAD4 3882 435 4077 4078 4080 4079 +CQUAD4 3883 436 448 3793 4081 3916 +CQUAD4 3884 436 3793 3794 4082 4081 +CQUAD4 3885 436 3916 4081 4083 3918 +CQUAD4 3886 436 4081 4082 4084 4083 +CQUAD4 3887 436 3918 4083 4085 3920 +CQUAD4 3888 436 4083 4084 4086 4085 +CQUAD4 3889 436 3920 4085 4087 3922 +CQUAD4 3890 436 4085 4086 4088 4087 +CQUAD4 3891 436 3922 4087 4089 524 +CQUAD4 3892 436 4087 4088 4090 4089 +CQUAD4 3893 437 457 1485 4091 461 +CQUAD4 3894 437 1485 1486 4092 4091 +CQUAD4 3895 437 1486 1487 4093 4092 +CQUAD4 3896 437 1487 1488 4094 4093 +CQUAD4 3897 437 1488 533 537 4094 +CQUAD4 3898 437 461 4091 4095 465 +CQUAD4 3899 437 4091 4092 4096 4095 +CQUAD4 3900 437 4092 4093 4097 4096 +CQUAD4 3901 437 4093 4094 4098 4097 +CQUAD4 3902 437 4094 537 541 4098 +CQUAD4 3903 438 460 464 4099 1497 +CQUAD4 3904 438 464 468 4100 4099 +CQUAD4 3905 438 1497 4099 4101 1498 +CQUAD4 3906 438 4099 4100 4102 4101 +CQUAD4 3907 438 1498 4101 4103 1499 +CQUAD4 3908 438 4101 4102 4104 4103 +CQUAD4 3909 438 1499 4103 4105 1500 +CQUAD4 3910 438 4103 4104 4106 4105 +CQUAD4 3911 438 1500 4105 540 536 +CQUAD4 3912 438 4105 4106 544 540 +CQUAD4 3913 439 465 4095 4107 469 +CQUAD4 3914 439 4095 4096 4108 4107 +CQUAD4 3915 439 4096 4097 4109 4108 +CQUAD4 3916 439 4097 4098 4110 4109 +CQUAD4 3917 439 4098 541 545 4110 +CQUAD4 3918 439 469 4107 4111 473 +CQUAD4 3919 439 4107 4108 4112 4111 +CQUAD4 3920 439 4108 4109 4113 4112 +CQUAD4 3921 439 4109 4110 4114 4113 +CQUAD4 3922 439 4110 545 549 4114 +CQUAD4 3923 440 468 472 4115 4100 +CQUAD4 3924 440 472 476 4116 4115 +CQUAD4 3925 440 4100 4115 4117 4102 +CQUAD4 3926 440 4115 4116 4118 4117 +CQUAD4 3927 440 4102 4117 4119 4104 +CQUAD4 3928 440 4117 4118 4120 4119 +CQUAD4 3929 440 4104 4119 4121 4106 +CQUAD4 3930 440 4119 4120 4122 4121 +CQUAD4 3931 440 4106 4121 548 544 +CQUAD4 3932 440 4121 4122 552 548 +CQUAD4 3933 441 473 4111 4123 477 +CQUAD4 3934 441 4111 4112 4124 4123 +CQUAD4 3935 441 4112 4113 4125 4124 +CQUAD4 3936 441 4113 4114 4126 4125 +CQUAD4 3937 441 4114 549 553 4126 +CQUAD4 3938 441 477 4123 4127 481 +CQUAD4 3939 441 4123 4124 4128 4127 +CQUAD4 3940 441 4124 4125 4129 4128 +CQUAD4 3941 441 4125 4126 4130 4129 +CQUAD4 3942 441 4126 553 557 4130 +CQUAD4 3943 442 476 480 4131 4116 +CQUAD4 3944 442 480 484 4132 4131 +CQUAD4 3945 442 4116 4131 4133 4118 +CQUAD4 3946 442 4131 4132 4134 4133 +CQUAD4 3947 442 4118 4133 4135 4120 +CQUAD4 3948 442 4133 4134 4136 4135 +CQUAD4 3949 442 4120 4135 4137 4122 +CQUAD4 3950 442 4135 4136 4138 4137 +CQUAD4 3951 442 4122 4137 556 552 +CQUAD4 3952 442 4137 4138 560 556 +CQUAD4 3953 443 481 4127 4139 485 +CQUAD4 3954 443 4127 4128 4140 4139 +CQUAD4 3955 443 4128 4129 4141 4140 +CQUAD4 3956 443 4129 4130 4142 4141 +CQUAD4 3957 443 4130 557 561 4142 +CQUAD4 3958 443 485 4139 4143 489 +CQUAD4 3959 443 4139 4140 4144 4143 +CQUAD4 3960 443 4140 4141 4145 4144 +CQUAD4 3961 443 4141 4142 4146 4145 +CQUAD4 3962 443 4142 561 565 4146 +CQUAD4 3963 444 484 488 4147 4132 +CQUAD4 3964 444 488 492 4148 4147 +CQUAD4 3965 444 4132 4147 4149 4134 +CQUAD4 3966 444 4147 4148 4150 4149 +CQUAD4 3967 444 4134 4149 4151 4136 +CQUAD4 3968 444 4149 4150 4152 4151 +CQUAD4 3969 444 4136 4151 4153 4138 +CQUAD4 3970 444 4151 4152 4154 4153 +CQUAD4 3971 444 4138 4153 564 560 +CQUAD4 3972 444 4153 4154 568 564 +CQUAD4 3973 445 489 4143 4155 493 +CQUAD4 3974 445 4143 4144 4156 4155 +CQUAD4 3975 445 4144 4145 4157 4156 +CQUAD4 3976 445 4145 4146 4158 4157 +CQUAD4 3977 445 4146 565 569 4158 +CQUAD4 3978 445 493 4155 4159 497 +CQUAD4 3979 445 4155 4156 4160 4159 +CQUAD4 3980 445 4156 4157 4161 4160 +CQUAD4 3981 445 4157 4158 4162 4161 +CQUAD4 3982 445 4158 569 573 4162 +CQUAD4 3983 446 492 496 4163 4148 +CQUAD4 3984 446 496 500 4164 4163 +CQUAD4 3985 446 4148 4163 4165 4150 +CQUAD4 3986 446 4163 4164 4166 4165 +CQUAD4 3987 446 4150 4165 4167 4152 +CQUAD4 3988 446 4165 4166 4168 4167 +CQUAD4 3989 446 4152 4167 4169 4154 +CQUAD4 3990 446 4167 4168 4170 4169 +CQUAD4 3991 446 4154 4169 572 568 +CQUAD4 3992 446 4169 4170 576 572 +CQUAD4 3993 447 497 4159 4171 501 +CQUAD4 3994 447 4159 4160 4172 4171 +CQUAD4 3995 447 4160 4161 4173 4172 +CQUAD4 3996 447 4161 4162 4174 4173 +CQUAD4 3997 447 4162 573 577 4174 +CQUAD4 3998 447 501 4171 4175 505 +CQUAD4 3999 447 4171 4172 4176 4175 +CQUAD4 4000 447 4172 4173 4177 4176 +CQUAD4 4001 447 4173 4174 4178 4177 +CQUAD4 4002 447 4174 577 581 4178 +CQUAD4 4003 448 500 504 4179 4164 +CQUAD4 4004 448 504 508 4180 4179 +CQUAD4 4005 448 4164 4179 4181 4166 +CQUAD4 4006 448 4179 4180 4182 4181 +CQUAD4 4007 448 4166 4181 4183 4168 +CQUAD4 4008 448 4181 4182 4184 4183 +CQUAD4 4009 448 4168 4183 4185 4170 +CQUAD4 4010 448 4183 4184 4186 4185 +CQUAD4 4011 448 4170 4185 580 576 +CQUAD4 4012 448 4185 4186 584 580 +CQUAD4 4013 449 505 4175 4187 509 +CQUAD4 4014 449 4175 4176 4188 4187 +CQUAD4 4015 449 4176 4177 4189 4188 +CQUAD4 4016 449 4177 4178 4190 4189 +CQUAD4 4017 449 4178 581 585 4190 +CQUAD4 4018 449 509 4187 4191 513 +CQUAD4 4019 449 4187 4188 4192 4191 +CQUAD4 4020 449 4188 4189 4193 4192 +CQUAD4 4021 449 4189 4190 4194 4193 +CQUAD4 4022 449 4190 585 589 4194 +CQUAD4 4023 450 508 512 4195 4180 +CQUAD4 4024 450 512 516 4196 4195 +CQUAD4 4025 450 4180 4195 4197 4182 +CQUAD4 4026 450 4195 4196 4198 4197 +CQUAD4 4027 450 4182 4197 4199 4184 +CQUAD4 4028 450 4197 4198 4200 4199 +CQUAD4 4029 450 4184 4199 4201 4186 +CQUAD4 4030 450 4199 4200 4202 4201 +CQUAD4 4031 450 4186 4201 588 584 +CQUAD4 4032 450 4201 4202 592 588 +CQUAD4 4033 451 513 4191 4203 517 +CQUAD4 4034 451 4191 4192 4204 4203 +CQUAD4 4035 451 4192 4193 4205 4204 +CQUAD4 4036 451 4193 4194 4206 4205 +CQUAD4 4037 451 4194 589 593 4206 +CQUAD4 4038 451 517 4203 4207 521 +CQUAD4 4039 451 4203 4204 4208 4207 +CQUAD4 4040 451 4204 4205 4209 4208 +CQUAD4 4041 451 4205 4206 4210 4209 +CQUAD4 4042 451 4206 593 597 4210 +CQUAD4 4043 452 516 520 4211 4196 +CQUAD4 4044 452 520 524 4212 4211 +CQUAD4 4045 452 4196 4211 4213 4198 +CQUAD4 4046 452 4211 4212 4214 4213 +CQUAD4 4047 452 4198 4213 4215 4200 +CQUAD4 4048 452 4213 4214 4216 4215 +CQUAD4 4049 452 4200 4215 4217 4202 +CQUAD4 4050 452 4215 4216 4218 4217 +CQUAD4 4051 452 4202 4217 596 592 +CQUAD4 4052 452 4217 4218 600 596 +CQUAD4 4053 453 521 4207 4219 525 +CQUAD4 4054 453 4207 4208 4220 4219 +CQUAD4 4055 453 4208 4209 4221 4220 +CQUAD4 4056 453 4209 4210 4222 4221 +CQUAD4 4057 453 4210 597 601 4222 +CQUAD4 4058 453 525 4219 1777 529 +CQUAD4 4059 453 4219 4220 1778 1777 +CQUAD4 4060 453 4220 4221 1779 1778 +CQUAD4 4061 453 4221 4222 1780 1779 +CQUAD4 4062 453 4222 601 605 1780 +CQUAD4 4063 454 524 528 4223 4212 +CQUAD4 4064 454 528 532 1789 4223 +CQUAD4 4065 454 4212 4223 4224 4214 +CQUAD4 4066 454 4223 1789 1790 4224 +CQUAD4 4067 454 4214 4224 4225 4216 +CQUAD4 4068 454 4224 1790 1791 4225 +CQUAD4 4069 454 4216 4225 4226 4218 +CQUAD4 4070 454 4225 1791 1792 4226 +CQUAD4 4071 454 4218 4226 604 600 +CQUAD4 4072 454 4226 1792 608 604 +CQUAD4 4073 455 465 3939 4227 4095 +CQUAD4 4074 455 3939 3940 4228 4227 +CQUAD4 4075 455 4095 4227 4229 4096 +CQUAD4 4076 455 4227 4228 4230 4229 +CQUAD4 4077 455 4096 4229 4231 4097 +CQUAD4 4078 455 4229 4230 4232 4231 +CQUAD4 4079 455 4097 4231 4233 4098 +CQUAD4 4080 455 4231 4232 4234 4233 +CQUAD4 4081 455 4098 4233 4235 541 +CQUAD4 4082 455 4233 4234 4236 4235 +CQUAD4 4083 456 468 3949 4237 4100 +CQUAD4 4084 456 3949 3950 4238 4237 +CQUAD4 4085 456 4100 4237 4239 4102 +CQUAD4 4086 456 4237 4238 4240 4239 +CQUAD4 4087 456 4102 4239 4241 4104 +CQUAD4 4088 456 4239 4240 4242 4241 +CQUAD4 4089 456 4104 4241 4243 4106 +CQUAD4 4090 456 4241 4242 4244 4243 +CQUAD4 4091 456 4106 4243 4245 544 +CQUAD4 4092 456 4243 4244 4246 4245 +CQUAD4 4093 457 473 3959 4247 4111 +CQUAD4 4094 457 3959 3960 4248 4247 +CQUAD4 4095 457 4111 4247 4249 4112 +CQUAD4 4096 457 4247 4248 4250 4249 +CQUAD4 4097 457 4112 4249 4251 4113 +CQUAD4 4098 457 4249 4250 4252 4251 +CQUAD4 4099 457 4113 4251 4253 4114 +CQUAD4 4100 457 4251 4252 4254 4253 +CQUAD4 4101 457 4114 4253 4255 549 +CQUAD4 4102 457 4253 4254 4256 4255 +CQUAD4 4103 458 476 3969 4257 4116 +CQUAD4 4104 458 3969 3970 4258 4257 +CQUAD4 4105 458 4116 4257 4259 4118 +CQUAD4 4106 458 4257 4258 4260 4259 +CQUAD4 4107 458 4118 4259 4261 4120 +CQUAD4 4108 458 4259 4260 4262 4261 +CQUAD4 4109 458 4120 4261 4263 4122 +CQUAD4 4110 458 4261 4262 4264 4263 +CQUAD4 4111 458 4122 4263 4265 552 +CQUAD4 4112 458 4263 4264 4266 4265 +CQUAD4 4113 459 481 3979 4267 4127 +CQUAD4 4114 459 3979 3980 4268 4267 +CQUAD4 4115 459 4127 4267 4269 4128 +CQUAD4 4116 459 4267 4268 4270 4269 +CQUAD4 4117 459 4128 4269 4271 4129 +CQUAD4 4118 459 4269 4270 4272 4271 +CQUAD4 4119 459 4129 4271 4273 4130 +CQUAD4 4120 459 4271 4272 4274 4273 +CQUAD4 4121 459 4130 4273 4275 557 +CQUAD4 4122 459 4273 4274 4276 4275 +CQUAD4 4123 460 484 3989 4277 4132 +CQUAD4 4124 460 3989 3990 4278 4277 +CQUAD4 4125 460 4132 4277 4279 4134 +CQUAD4 4126 460 4277 4278 4280 4279 +CQUAD4 4127 460 4134 4279 4281 4136 +CQUAD4 4128 460 4279 4280 4282 4281 +CQUAD4 4129 460 4136 4281 4283 4138 +CQUAD4 4130 460 4281 4282 4284 4283 +CQUAD4 4131 460 4138 4283 4285 560 +CQUAD4 4132 460 4283 4284 4286 4285 +CQUAD4 4133 461 489 3999 4287 4143 +CQUAD4 4134 461 3999 4000 4288 4287 +CQUAD4 4135 461 4143 4287 4289 4144 +CQUAD4 4136 461 4287 4288 4290 4289 +CQUAD4 4137 461 4144 4289 4291 4145 +CQUAD4 4138 461 4289 4290 4292 4291 +CQUAD4 4139 461 4145 4291 4293 4146 +CQUAD4 4140 461 4291 4292 4294 4293 +CQUAD4 4141 461 4146 4293 4295 565 +CQUAD4 4142 461 4293 4294 4296 4295 +CQUAD4 4143 462 492 4009 4297 4148 +CQUAD4 4144 462 4009 4010 4298 4297 +CQUAD4 4145 462 4148 4297 4299 4150 +CQUAD4 4146 462 4297 4298 4300 4299 +CQUAD4 4147 462 4150 4299 4301 4152 +CQUAD4 4148 462 4299 4300 4302 4301 +CQUAD4 4149 462 4152 4301 4303 4154 +CQUAD4 4150 462 4301 4302 4304 4303 +CQUAD4 4151 462 4154 4303 4305 568 +CQUAD4 4152 462 4303 4304 4306 4305 +CQUAD4 4153 463 497 4019 4307 4159 +CQUAD4 4154 463 4019 4020 4308 4307 +CQUAD4 4155 463 4159 4307 4309 4160 +CQUAD4 4156 463 4307 4308 4310 4309 +CQUAD4 4157 463 4160 4309 4311 4161 +CQUAD4 4158 463 4309 4310 4312 4311 +CQUAD4 4159 463 4161 4311 4313 4162 +CQUAD4 4160 463 4311 4312 4314 4313 +CQUAD4 4161 463 4162 4313 4315 573 +CQUAD4 4162 463 4313 4314 4316 4315 +CQUAD4 4163 464 500 4029 4317 4164 +CQUAD4 4164 464 4029 4030 4318 4317 +CQUAD4 4165 464 4164 4317 4319 4166 +CQUAD4 4166 464 4317 4318 4320 4319 +CQUAD4 4167 464 4166 4319 4321 4168 +CQUAD4 4168 464 4319 4320 4322 4321 +CQUAD4 4169 464 4168 4321 4323 4170 +CQUAD4 4170 464 4321 4322 4324 4323 +CQUAD4 4171 464 4170 4323 4325 576 +CQUAD4 4172 464 4323 4324 4326 4325 +CQUAD4 4173 465 505 4039 4327 4175 +CQUAD4 4174 465 4039 4040 4328 4327 +CQUAD4 4175 465 4175 4327 4329 4176 +CQUAD4 4176 465 4327 4328 4330 4329 +CQUAD4 4177 465 4176 4329 4331 4177 +CQUAD4 4178 465 4329 4330 4332 4331 +CQUAD4 4179 465 4177 4331 4333 4178 +CQUAD4 4180 465 4331 4332 4334 4333 +CQUAD4 4181 465 4178 4333 4335 581 +CQUAD4 4182 465 4333 4334 4336 4335 +CQUAD4 4183 466 508 4049 4337 4180 +CQUAD4 4184 466 4049 4050 4338 4337 +CQUAD4 4185 466 4180 4337 4339 4182 +CQUAD4 4186 466 4337 4338 4340 4339 +CQUAD4 4187 466 4182 4339 4341 4184 +CQUAD4 4188 466 4339 4340 4342 4341 +CQUAD4 4189 466 4184 4341 4343 4186 +CQUAD4 4190 466 4341 4342 4344 4343 +CQUAD4 4191 466 4186 4343 4345 584 +CQUAD4 4192 466 4343 4344 4346 4345 +CQUAD4 4193 467 513 4059 4347 4191 +CQUAD4 4194 467 4059 4060 4348 4347 +CQUAD4 4195 467 4191 4347 4349 4192 +CQUAD4 4196 467 4347 4348 4350 4349 +CQUAD4 4197 467 4192 4349 4351 4193 +CQUAD4 4198 467 4349 4350 4352 4351 +CQUAD4 4199 467 4193 4351 4353 4194 +CQUAD4 4200 467 4351 4352 4354 4353 +CQUAD4 4201 467 4194 4353 4355 589 +CQUAD4 4202 467 4353 4354 4356 4355 +CQUAD4 4203 468 516 4069 4357 4196 +CQUAD4 4204 468 4069 4070 4358 4357 +CQUAD4 4205 468 4196 4357 4359 4198 +CQUAD4 4206 468 4357 4358 4360 4359 +CQUAD4 4207 468 4198 4359 4361 4200 +CQUAD4 4208 468 4359 4360 4362 4361 +CQUAD4 4209 468 4200 4361 4363 4202 +CQUAD4 4210 468 4361 4362 4364 4363 +CQUAD4 4211 468 4202 4363 4365 592 +CQUAD4 4212 468 4363 4364 4366 4365 +CQUAD4 4213 469 521 4079 4367 4207 +CQUAD4 4214 469 4079 4080 4368 4367 +CQUAD4 4215 469 4207 4367 4369 4208 +CQUAD4 4216 469 4367 4368 4370 4369 +CQUAD4 4217 469 4208 4369 4371 4209 +CQUAD4 4218 469 4369 4370 4372 4371 +CQUAD4 4219 469 4209 4371 4373 4210 +CQUAD4 4220 469 4371 4372 4374 4373 +CQUAD4 4221 469 4210 4373 4375 597 +CQUAD4 4222 469 4373 4374 4376 4375 +CQUAD4 4223 470 524 4089 4377 4212 +CQUAD4 4224 470 4089 4090 4378 4377 +CQUAD4 4225 470 4212 4377 4379 4214 +CQUAD4 4226 470 4377 4378 4380 4379 +CQUAD4 4227 470 4214 4379 4381 4216 +CQUAD4 4228 470 4379 4380 4382 4381 +CQUAD4 4229 470 4216 4381 4383 4218 +CQUAD4 4230 470 4381 4382 4384 4383 +CQUAD4 4231 470 4218 4383 4385 600 +CQUAD4 4232 470 4383 4384 4386 4385 +CQUAD4 4233 471 533 1501 4387 537 +CQUAD4 4234 471 1501 1502 4388 4387 +CQUAD4 4235 471 1502 1503 4389 4388 +CQUAD4 4236 471 1503 1504 4390 4389 +CQUAD4 4237 471 1504 609 613 4390 +CQUAD4 4238 471 537 4387 4391 541 +CQUAD4 4239 471 4387 4388 4392 4391 +CQUAD4 4240 471 4388 4389 4393 4392 +CQUAD4 4241 471 4389 4390 4394 4393 +CQUAD4 4242 471 4390 613 617 4394 +CQUAD4 4243 472 536 540 4395 1513 +CQUAD4 4244 472 540 544 4396 4395 +CQUAD4 4245 472 1513 4395 4397 1514 +CQUAD4 4246 472 4395 4396 4398 4397 +CQUAD4 4247 472 1514 4397 4399 1515 +CQUAD4 4248 472 4397 4398 4400 4399 +CQUAD4 4249 472 1515 4399 4401 1516 +CQUAD4 4250 472 4399 4400 4402 4401 +CQUAD4 4251 472 1516 4401 616 612 +CQUAD4 4252 472 4401 4402 620 616 +CQUAD4 4253 473 541 4391 4403 545 +CQUAD4 4254 473 4391 4392 4404 4403 +CQUAD4 4255 473 4392 4393 4405 4404 +CQUAD4 4256 473 4393 4394 4406 4405 +CQUAD4 4257 473 4394 617 621 4406 +CQUAD4 4258 473 545 4403 4407 549 +CQUAD4 4259 473 4403 4404 4408 4407 +CQUAD4 4260 473 4404 4405 4409 4408 +CQUAD4 4261 473 4405 4406 4410 4409 +CQUAD4 4262 473 4406 621 625 4410 +CQUAD4 4263 474 544 548 4411 4396 +CQUAD4 4264 474 548 552 4412 4411 +CQUAD4 4265 474 4396 4411 4413 4398 +CQUAD4 4266 474 4411 4412 4414 4413 +CQUAD4 4267 474 4398 4413 4415 4400 +CQUAD4 4268 474 4413 4414 4416 4415 +CQUAD4 4269 474 4400 4415 4417 4402 +CQUAD4 4270 474 4415 4416 4418 4417 +CQUAD4 4271 474 4402 4417 624 620 +CQUAD4 4272 474 4417 4418 628 624 +CQUAD4 4273 475 549 4407 4419 553 +CQUAD4 4274 475 4407 4408 4420 4419 +CQUAD4 4275 475 4408 4409 4421 4420 +CQUAD4 4276 475 4409 4410 4422 4421 +CQUAD4 4277 475 4410 625 629 4422 +CQUAD4 4278 475 553 4419 4423 557 +CQUAD4 4279 475 4419 4420 4424 4423 +CQUAD4 4280 475 4420 4421 4425 4424 +CQUAD4 4281 475 4421 4422 4426 4425 +CQUAD4 4282 475 4422 629 633 4426 +CQUAD4 4283 476 552 556 4427 4412 +CQUAD4 4284 476 556 560 4428 4427 +CQUAD4 4285 476 4412 4427 4429 4414 +CQUAD4 4286 476 4427 4428 4430 4429 +CQUAD4 4287 476 4414 4429 4431 4416 +CQUAD4 4288 476 4429 4430 4432 4431 +CQUAD4 4289 476 4416 4431 4433 4418 +CQUAD4 4290 476 4431 4432 4434 4433 +CQUAD4 4291 476 4418 4433 632 628 +CQUAD4 4292 476 4433 4434 636 632 +CQUAD4 4293 477 557 4423 4435 561 +CQUAD4 4294 477 4423 4424 4436 4435 +CQUAD4 4295 477 4424 4425 4437 4436 +CQUAD4 4296 477 4425 4426 4438 4437 +CQUAD4 4297 477 4426 633 637 4438 +CQUAD4 4298 477 561 4435 4439 565 +CQUAD4 4299 477 4435 4436 4440 4439 +CQUAD4 4300 477 4436 4437 4441 4440 +CQUAD4 4301 477 4437 4438 4442 4441 +CQUAD4 4302 477 4438 637 641 4442 +CQUAD4 4303 478 560 564 4443 4428 +CQUAD4 4304 478 564 568 4444 4443 +CQUAD4 4305 478 4428 4443 4445 4430 +CQUAD4 4306 478 4443 4444 4446 4445 +CQUAD4 4307 478 4430 4445 4447 4432 +CQUAD4 4308 478 4445 4446 4448 4447 +CQUAD4 4309 478 4432 4447 4449 4434 +CQUAD4 4310 478 4447 4448 4450 4449 +CQUAD4 4311 478 4434 4449 640 636 +CQUAD4 4312 478 4449 4450 644 640 +CQUAD4 4313 479 565 4439 4451 569 +CQUAD4 4314 479 4439 4440 4452 4451 +CQUAD4 4315 479 4440 4441 4453 4452 +CQUAD4 4316 479 4441 4442 4454 4453 +CQUAD4 4317 479 4442 641 645 4454 +CQUAD4 4318 479 569 4451 4455 573 +CQUAD4 4319 479 4451 4452 4456 4455 +CQUAD4 4320 479 4452 4453 4457 4456 +CQUAD4 4321 479 4453 4454 4458 4457 +CQUAD4 4322 479 4454 645 649 4458 +CQUAD4 4323 480 568 572 4459 4444 +CQUAD4 4324 480 572 576 4460 4459 +CQUAD4 4325 480 4444 4459 4461 4446 +CQUAD4 4326 480 4459 4460 4462 4461 +CQUAD4 4327 480 4446 4461 4463 4448 +CQUAD4 4328 480 4461 4462 4464 4463 +CQUAD4 4329 480 4448 4463 4465 4450 +CQUAD4 4330 480 4463 4464 4466 4465 +CQUAD4 4331 480 4450 4465 648 644 +CQUAD4 4332 480 4465 4466 652 648 +CQUAD4 4333 481 573 4455 4467 577 +CQUAD4 4334 481 4455 4456 4468 4467 +CQUAD4 4335 481 4456 4457 4469 4468 +CQUAD4 4336 481 4457 4458 4470 4469 +CQUAD4 4337 481 4458 649 653 4470 +CQUAD4 4338 481 577 4467 4471 581 +CQUAD4 4339 481 4467 4468 4472 4471 +CQUAD4 4340 481 4468 4469 4473 4472 +CQUAD4 4341 481 4469 4470 4474 4473 +CQUAD4 4342 481 4470 653 657 4474 +CQUAD4 4343 482 576 580 4475 4460 +CQUAD4 4344 482 580 584 4476 4475 +CQUAD4 4345 482 4460 4475 4477 4462 +CQUAD4 4346 482 4475 4476 4478 4477 +CQUAD4 4347 482 4462 4477 4479 4464 +CQUAD4 4348 482 4477 4478 4480 4479 +CQUAD4 4349 482 4464 4479 4481 4466 +CQUAD4 4350 482 4479 4480 4482 4481 +CQUAD4 4351 482 4466 4481 656 652 +CQUAD4 4352 482 4481 4482 660 656 +CQUAD4 4353 483 581 4471 4483 585 +CQUAD4 4354 483 4471 4472 4484 4483 +CQUAD4 4355 483 4472 4473 4485 4484 +CQUAD4 4356 483 4473 4474 4486 4485 +CQUAD4 4357 483 4474 657 661 4486 +CQUAD4 4358 483 585 4483 4487 589 +CQUAD4 4359 483 4483 4484 4488 4487 +CQUAD4 4360 483 4484 4485 4489 4488 +CQUAD4 4361 483 4485 4486 4490 4489 +CQUAD4 4362 483 4486 661 665 4490 +CQUAD4 4363 484 584 588 4491 4476 +CQUAD4 4364 484 588 592 4492 4491 +CQUAD4 4365 484 4476 4491 4493 4478 +CQUAD4 4366 484 4491 4492 4494 4493 +CQUAD4 4367 484 4478 4493 4495 4480 +CQUAD4 4368 484 4493 4494 4496 4495 +CQUAD4 4369 484 4480 4495 4497 4482 +CQUAD4 4370 484 4495 4496 4498 4497 +CQUAD4 4371 484 4482 4497 664 660 +CQUAD4 4372 484 4497 4498 668 664 +CQUAD4 4373 485 589 4487 4499 593 +CQUAD4 4374 485 4487 4488 4500 4499 +CQUAD4 4375 485 4488 4489 4501 4500 +CQUAD4 4376 485 4489 4490 4502 4501 +CQUAD4 4377 485 4490 665 669 4502 +CQUAD4 4378 485 593 4499 4503 597 +CQUAD4 4379 485 4499 4500 4504 4503 +CQUAD4 4380 485 4500 4501 4505 4504 +CQUAD4 4381 485 4501 4502 4506 4505 +CQUAD4 4382 485 4502 669 673 4506 +CQUAD4 4383 486 592 596 4507 4492 +CQUAD4 4384 486 596 600 4508 4507 +CQUAD4 4385 486 4492 4507 4509 4494 +CQUAD4 4386 486 4507 4508 4510 4509 +CQUAD4 4387 486 4494 4509 4511 4496 +CQUAD4 4388 486 4509 4510 4512 4511 +CQUAD4 4389 486 4496 4511 4513 4498 +CQUAD4 4390 486 4511 4512 4514 4513 +CQUAD4 4391 486 4498 4513 672 668 +CQUAD4 4392 486 4513 4514 676 672 +CQUAD4 4393 487 597 4503 4515 601 +CQUAD4 4394 487 4503 4504 4516 4515 +CQUAD4 4395 487 4504 4505 4517 4516 +CQUAD4 4396 487 4505 4506 4518 4517 +CQUAD4 4397 487 4506 673 677 4518 +CQUAD4 4398 487 601 4515 1793 605 +CQUAD4 4399 487 4515 4516 1794 1793 +CQUAD4 4400 487 4516 4517 1795 1794 +CQUAD4 4401 487 4517 4518 1796 1795 +CQUAD4 4402 487 4518 677 681 1796 +CQUAD4 4403 488 600 604 4519 4508 +CQUAD4 4404 488 604 608 1805 4519 +CQUAD4 4405 488 4508 4519 4520 4510 +CQUAD4 4406 488 4519 1805 1806 4520 +CQUAD4 4407 488 4510 4520 4521 4512 +CQUAD4 4408 488 4520 1806 1807 4521 +CQUAD4 4409 488 4512 4521 4522 4514 +CQUAD4 4410 488 4521 1807 1808 4522 +CQUAD4 4411 488 4514 4522 680 676 +CQUAD4 4412 488 4522 1808 684 680 +CQUAD4 4413 489 541 4235 4523 4391 +CQUAD4 4414 489 4235 4236 4524 4523 +CQUAD4 4415 489 4391 4523 4525 4392 +CQUAD4 4416 489 4523 4524 4526 4525 +CQUAD4 4417 489 4392 4525 4527 4393 +CQUAD4 4418 489 4525 4526 4528 4527 +CQUAD4 4419 489 4393 4527 4529 4394 +CQUAD4 4420 489 4527 4528 4530 4529 +CQUAD4 4421 489 4394 4529 4531 617 +CQUAD4 4422 489 4529 4530 4532 4531 +CQUAD4 4423 490 544 4245 4533 4396 +CQUAD4 4424 490 4245 4246 4534 4533 +CQUAD4 4425 490 4396 4533 4535 4398 +CQUAD4 4426 490 4533 4534 4536 4535 +CQUAD4 4427 490 4398 4535 4537 4400 +CQUAD4 4428 490 4535 4536 4538 4537 +CQUAD4 4429 490 4400 4537 4539 4402 +CQUAD4 4430 490 4537 4538 4540 4539 +CQUAD4 4431 490 4402 4539 4541 620 +CQUAD4 4432 490 4539 4540 4542 4541 +CQUAD4 4433 491 549 4255 4543 4407 +CQUAD4 4434 491 4255 4256 4544 4543 +CQUAD4 4435 491 4407 4543 4545 4408 +CQUAD4 4436 491 4543 4544 4546 4545 +CQUAD4 4437 491 4408 4545 4547 4409 +CQUAD4 4438 491 4545 4546 4548 4547 +CQUAD4 4439 491 4409 4547 4549 4410 +CQUAD4 4440 491 4547 4548 4550 4549 +CQUAD4 4441 491 4410 4549 4551 625 +CQUAD4 4442 491 4549 4550 4552 4551 +CQUAD4 4443 492 552 4265 4553 4412 +CQUAD4 4444 492 4265 4266 4554 4553 +CQUAD4 4445 492 4412 4553 4555 4414 +CQUAD4 4446 492 4553 4554 4556 4555 +CQUAD4 4447 492 4414 4555 4557 4416 +CQUAD4 4448 492 4555 4556 4558 4557 +CQUAD4 4449 492 4416 4557 4559 4418 +CQUAD4 4450 492 4557 4558 4560 4559 +CQUAD4 4451 492 4418 4559 4561 628 +CQUAD4 4452 492 4559 4560 4562 4561 +CQUAD4 4453 493 557 4275 4563 4423 +CQUAD4 4454 493 4275 4276 4564 4563 +CQUAD4 4455 493 4423 4563 4565 4424 +CQUAD4 4456 493 4563 4564 4566 4565 +CQUAD4 4457 493 4424 4565 4567 4425 +CQUAD4 4458 493 4565 4566 4568 4567 +CQUAD4 4459 493 4425 4567 4569 4426 +CQUAD4 4460 493 4567 4568 4570 4569 +CQUAD4 4461 493 4426 4569 4571 633 +CQUAD4 4462 493 4569 4570 4572 4571 +CQUAD4 4463 494 560 4285 4573 4428 +CQUAD4 4464 494 4285 4286 4574 4573 +CQUAD4 4465 494 4428 4573 4575 4430 +CQUAD4 4466 494 4573 4574 4576 4575 +CQUAD4 4467 494 4430 4575 4577 4432 +CQUAD4 4468 494 4575 4576 4578 4577 +CQUAD4 4469 494 4432 4577 4579 4434 +CQUAD4 4470 494 4577 4578 4580 4579 +CQUAD4 4471 494 4434 4579 4581 636 +CQUAD4 4472 494 4579 4580 4582 4581 +CQUAD4 4473 495 565 4295 4583 4439 +CQUAD4 4474 495 4295 4296 4584 4583 +CQUAD4 4475 495 4439 4583 4585 4440 +CQUAD4 4476 495 4583 4584 4586 4585 +CQUAD4 4477 495 4440 4585 4587 4441 +CQUAD4 4478 495 4585 4586 4588 4587 +CQUAD4 4479 495 4441 4587 4589 4442 +CQUAD4 4480 495 4587 4588 4590 4589 +CQUAD4 4481 495 4442 4589 4591 641 +CQUAD4 4482 495 4589 4590 4592 4591 +CQUAD4 4483 496 568 4305 4593 4444 +CQUAD4 4484 496 4305 4306 4594 4593 +CQUAD4 4485 496 4444 4593 4595 4446 +CQUAD4 4486 496 4593 4594 4596 4595 +CQUAD4 4487 496 4446 4595 4597 4448 +CQUAD4 4488 496 4595 4596 4598 4597 +CQUAD4 4489 496 4448 4597 4599 4450 +CQUAD4 4490 496 4597 4598 4600 4599 +CQUAD4 4491 496 4450 4599 4601 644 +CQUAD4 4492 496 4599 4600 4602 4601 +CQUAD4 4493 497 573 4315 4603 4455 +CQUAD4 4494 497 4315 4316 4604 4603 +CQUAD4 4495 497 4455 4603 4605 4456 +CQUAD4 4496 497 4603 4604 4606 4605 +CQUAD4 4497 497 4456 4605 4607 4457 +CQUAD4 4498 497 4605 4606 4608 4607 +CQUAD4 4499 497 4457 4607 4609 4458 +CQUAD4 4500 497 4607 4608 4610 4609 +CQUAD4 4501 497 4458 4609 4611 649 +CQUAD4 4502 497 4609 4610 4612 4611 +CQUAD4 4503 498 576 4325 4613 4460 +CQUAD4 4504 498 4325 4326 4614 4613 +CQUAD4 4505 498 4460 4613 4615 4462 +CQUAD4 4506 498 4613 4614 4616 4615 +CQUAD4 4507 498 4462 4615 4617 4464 +CQUAD4 4508 498 4615 4616 4618 4617 +CQUAD4 4509 498 4464 4617 4619 4466 +CQUAD4 4510 498 4617 4618 4620 4619 +CQUAD4 4511 498 4466 4619 4621 652 +CQUAD4 4512 498 4619 4620 4622 4621 +CQUAD4 4513 499 581 4335 4623 4471 +CQUAD4 4514 499 4335 4336 4624 4623 +CQUAD4 4515 499 4471 4623 4625 4472 +CQUAD4 4516 499 4623 4624 4626 4625 +CQUAD4 4517 499 4472 4625 4627 4473 +CQUAD4 4518 499 4625 4626 4628 4627 +CQUAD4 4519 499 4473 4627 4629 4474 +CQUAD4 4520 499 4627 4628 4630 4629 +CQUAD4 4521 499 4474 4629 4631 657 +CQUAD4 4522 499 4629 4630 4632 4631 +CQUAD4 4523 500 584 4345 4633 4476 +CQUAD4 4524 500 4345 4346 4634 4633 +CQUAD4 4525 500 4476 4633 4635 4478 +CQUAD4 4526 500 4633 4634 4636 4635 +CQUAD4 4527 500 4478 4635 4637 4480 +CQUAD4 4528 500 4635 4636 4638 4637 +CQUAD4 4529 500 4480 4637 4639 4482 +CQUAD4 4530 500 4637 4638 4640 4639 +CQUAD4 4531 500 4482 4639 4641 660 +CQUAD4 4532 500 4639 4640 4642 4641 +CQUAD4 4533 501 589 4355 4643 4487 +CQUAD4 4534 501 4355 4356 4644 4643 +CQUAD4 4535 501 4487 4643 4645 4488 +CQUAD4 4536 501 4643 4644 4646 4645 +CQUAD4 4537 501 4488 4645 4647 4489 +CQUAD4 4538 501 4645 4646 4648 4647 +CQUAD4 4539 501 4489 4647 4649 4490 +CQUAD4 4540 501 4647 4648 4650 4649 +CQUAD4 4541 501 4490 4649 4651 665 +CQUAD4 4542 501 4649 4650 4652 4651 +CQUAD4 4543 502 592 4365 4653 4492 +CQUAD4 4544 502 4365 4366 4654 4653 +CQUAD4 4545 502 4492 4653 4655 4494 +CQUAD4 4546 502 4653 4654 4656 4655 +CQUAD4 4547 502 4494 4655 4657 4496 +CQUAD4 4548 502 4655 4656 4658 4657 +CQUAD4 4549 502 4496 4657 4659 4498 +CQUAD4 4550 502 4657 4658 4660 4659 +CQUAD4 4551 502 4498 4659 4661 668 +CQUAD4 4552 502 4659 4660 4662 4661 +CQUAD4 4553 503 597 4375 4663 4503 +CQUAD4 4554 503 4375 4376 4664 4663 +CQUAD4 4555 503 4503 4663 4665 4504 +CQUAD4 4556 503 4663 4664 4666 4665 +CQUAD4 4557 503 4504 4665 4667 4505 +CQUAD4 4558 503 4665 4666 4668 4667 +CQUAD4 4559 503 4505 4667 4669 4506 +CQUAD4 4560 503 4667 4668 4670 4669 +CQUAD4 4561 503 4506 4669 4671 673 +CQUAD4 4562 503 4669 4670 4672 4671 +CQUAD4 4563 504 600 4385 4673 4508 +CQUAD4 4564 504 4385 4386 4674 4673 +CQUAD4 4565 504 4508 4673 4675 4510 +CQUAD4 4566 504 4673 4674 4676 4675 +CQUAD4 4567 504 4510 4675 4677 4512 +CQUAD4 4568 504 4675 4676 4678 4677 +CQUAD4 4569 504 4512 4677 4679 4514 +CQUAD4 4570 504 4677 4678 4680 4679 +CQUAD4 4571 504 4514 4679 4681 676 +CQUAD4 4572 504 4679 4680 4682 4681 +CQUAD4 4573 505 609 1517 4683 613 +CQUAD4 4574 505 1517 1518 4684 4683 +CQUAD4 4575 505 1518 1519 4685 4684 +CQUAD4 4576 505 1519 1520 4686 4685 +CQUAD4 4577 505 1520 685 689 4686 +CQUAD4 4578 505 613 4683 4687 617 +CQUAD4 4579 505 4683 4684 4688 4687 +CQUAD4 4580 505 4684 4685 4689 4688 +CQUAD4 4581 505 4685 4686 4690 4689 +CQUAD4 4582 505 4686 689 693 4690 +CQUAD4 4583 506 612 616 4691 1529 +CQUAD4 4584 506 616 620 4692 4691 +CQUAD4 4585 506 1529 4691 4693 1530 +CQUAD4 4586 506 4691 4692 4694 4693 +CQUAD4 4587 506 1530 4693 4695 1531 +CQUAD4 4588 506 4693 4694 4696 4695 +CQUAD4 4589 506 1531 4695 4697 1532 +CQUAD4 4590 506 4695 4696 4698 4697 +CQUAD4 4591 506 1532 4697 692 688 +CQUAD4 4592 506 4697 4698 696 692 +CQUAD4 4593 507 617 4687 4699 621 +CQUAD4 4594 507 4687 4688 4700 4699 +CQUAD4 4595 507 4688 4689 4701 4700 +CQUAD4 4596 507 4689 4690 4702 4701 +CQUAD4 4597 507 4690 693 697 4702 +CQUAD4 4598 507 621 4699 4703 625 +CQUAD4 4599 507 4699 4700 4704 4703 +CQUAD4 4600 507 4700 4701 4705 4704 +CQUAD4 4601 507 4701 4702 4706 4705 +CQUAD4 4602 507 4702 697 701 4706 +CQUAD4 4603 508 620 624 4707 4692 +CQUAD4 4604 508 624 628 4708 4707 +CQUAD4 4605 508 4692 4707 4709 4694 +CQUAD4 4606 508 4707 4708 4710 4709 +CQUAD4 4607 508 4694 4709 4711 4696 +CQUAD4 4608 508 4709 4710 4712 4711 +CQUAD4 4609 508 4696 4711 4713 4698 +CQUAD4 4610 508 4711 4712 4714 4713 +CQUAD4 4611 508 4698 4713 700 696 +CQUAD4 4612 508 4713 4714 704 700 +CQUAD4 4613 509 625 4703 4715 629 +CQUAD4 4614 509 4703 4704 4716 4715 +CQUAD4 4615 509 4704 4705 4717 4716 +CQUAD4 4616 509 4705 4706 4718 4717 +CQUAD4 4617 509 4706 701 705 4718 +CQUAD4 4618 509 629 4715 4719 633 +CQUAD4 4619 509 4715 4716 4720 4719 +CQUAD4 4620 509 4716 4717 4721 4720 +CQUAD4 4621 509 4717 4718 4722 4721 +CQUAD4 4622 509 4718 705 709 4722 +CQUAD4 4623 510 628 632 4723 4708 +CQUAD4 4624 510 632 636 4724 4723 +CQUAD4 4625 510 4708 4723 4725 4710 +CQUAD4 4626 510 4723 4724 4726 4725 +CQUAD4 4627 510 4710 4725 4727 4712 +CQUAD4 4628 510 4725 4726 4728 4727 +CQUAD4 4629 510 4712 4727 4729 4714 +CQUAD4 4630 510 4727 4728 4730 4729 +CQUAD4 4631 510 4714 4729 708 704 +CQUAD4 4632 510 4729 4730 712 708 +CQUAD4 4633 511 633 4719 4731 637 +CQUAD4 4634 511 4719 4720 4732 4731 +CQUAD4 4635 511 4720 4721 4733 4732 +CQUAD4 4636 511 4721 4722 4734 4733 +CQUAD4 4637 511 4722 709 713 4734 +CQUAD4 4638 511 637 4731 4735 641 +CQUAD4 4639 511 4731 4732 4736 4735 +CQUAD4 4640 511 4732 4733 4737 4736 +CQUAD4 4641 511 4733 4734 4738 4737 +CQUAD4 4642 511 4734 713 717 4738 +CQUAD4 4643 512 636 640 4739 4724 +CQUAD4 4644 512 640 644 4740 4739 +CQUAD4 4645 512 4724 4739 4741 4726 +CQUAD4 4646 512 4739 4740 4742 4741 +CQUAD4 4647 512 4726 4741 4743 4728 +CQUAD4 4648 512 4741 4742 4744 4743 +CQUAD4 4649 512 4728 4743 4745 4730 +CQUAD4 4650 512 4743 4744 4746 4745 +CQUAD4 4651 512 4730 4745 716 712 +CQUAD4 4652 512 4745 4746 720 716 +CQUAD4 4653 513 641 4735 4747 645 +CQUAD4 4654 513 4735 4736 4748 4747 +CQUAD4 4655 513 4736 4737 4749 4748 +CQUAD4 4656 513 4737 4738 4750 4749 +CQUAD4 4657 513 4738 717 721 4750 +CQUAD4 4658 513 645 4747 4751 649 +CQUAD4 4659 513 4747 4748 4752 4751 +CQUAD4 4660 513 4748 4749 4753 4752 +CQUAD4 4661 513 4749 4750 4754 4753 +CQUAD4 4662 513 4750 721 725 4754 +CQUAD4 4663 514 644 648 4755 4740 +CQUAD4 4664 514 648 652 4756 4755 +CQUAD4 4665 514 4740 4755 4757 4742 +CQUAD4 4666 514 4755 4756 4758 4757 +CQUAD4 4667 514 4742 4757 4759 4744 +CQUAD4 4668 514 4757 4758 4760 4759 +CQUAD4 4669 514 4744 4759 4761 4746 +CQUAD4 4670 514 4759 4760 4762 4761 +CQUAD4 4671 514 4746 4761 724 720 +CQUAD4 4672 514 4761 4762 728 724 +CQUAD4 4673 515 649 4751 4763 653 +CQUAD4 4674 515 4751 4752 4764 4763 +CQUAD4 4675 515 4752 4753 4765 4764 +CQUAD4 4676 515 4753 4754 4766 4765 +CQUAD4 4677 515 4754 725 729 4766 +CQUAD4 4678 515 653 4763 4767 657 +CQUAD4 4679 515 4763 4764 4768 4767 +CQUAD4 4680 515 4764 4765 4769 4768 +CQUAD4 4681 515 4765 4766 4770 4769 +CQUAD4 4682 515 4766 729 733 4770 +CQUAD4 4683 516 652 656 4771 4756 +CQUAD4 4684 516 656 660 4772 4771 +CQUAD4 4685 516 4756 4771 4773 4758 +CQUAD4 4686 516 4771 4772 4774 4773 +CQUAD4 4687 516 4758 4773 4775 4760 +CQUAD4 4688 516 4773 4774 4776 4775 +CQUAD4 4689 516 4760 4775 4777 4762 +CQUAD4 4690 516 4775 4776 4778 4777 +CQUAD4 4691 516 4762 4777 732 728 +CQUAD4 4692 516 4777 4778 736 732 +CQUAD4 4693 517 657 4767 4779 661 +CQUAD4 4694 517 4767 4768 4780 4779 +CQUAD4 4695 517 4768 4769 4781 4780 +CQUAD4 4696 517 4769 4770 4782 4781 +CQUAD4 4697 517 4770 733 737 4782 +CQUAD4 4698 517 661 4779 4783 665 +CQUAD4 4699 517 4779 4780 4784 4783 +CQUAD4 4700 517 4780 4781 4785 4784 +CQUAD4 4701 517 4781 4782 4786 4785 +CQUAD4 4702 517 4782 737 741 4786 +CQUAD4 4703 518 660 664 4787 4772 +CQUAD4 4704 518 664 668 4788 4787 +CQUAD4 4705 518 4772 4787 4789 4774 +CQUAD4 4706 518 4787 4788 4790 4789 +CQUAD4 4707 518 4774 4789 4791 4776 +CQUAD4 4708 518 4789 4790 4792 4791 +CQUAD4 4709 518 4776 4791 4793 4778 +CQUAD4 4710 518 4791 4792 4794 4793 +CQUAD4 4711 518 4778 4793 740 736 +CQUAD4 4712 518 4793 4794 744 740 +CQUAD4 4713 519 665 4783 4795 669 +CQUAD4 4714 519 4783 4784 4796 4795 +CQUAD4 4715 519 4784 4785 4797 4796 +CQUAD4 4716 519 4785 4786 4798 4797 +CQUAD4 4717 519 4786 741 745 4798 +CQUAD4 4718 519 669 4795 4799 673 +CQUAD4 4719 519 4795 4796 4800 4799 +CQUAD4 4720 519 4796 4797 4801 4800 +CQUAD4 4721 519 4797 4798 4802 4801 +CQUAD4 4722 519 4798 745 749 4802 +CQUAD4 4723 520 668 672 4803 4788 +CQUAD4 4724 520 672 676 4804 4803 +CQUAD4 4725 520 4788 4803 4805 4790 +CQUAD4 4726 520 4803 4804 4806 4805 +CQUAD4 4727 520 4790 4805 4807 4792 +CQUAD4 4728 520 4805 4806 4808 4807 +CQUAD4 4729 520 4792 4807 4809 4794 +CQUAD4 4730 520 4807 4808 4810 4809 +CQUAD4 4731 520 4794 4809 748 744 +CQUAD4 4732 520 4809 4810 752 748 +CQUAD4 4733 521 673 4799 4811 677 +CQUAD4 4734 521 4799 4800 4812 4811 +CQUAD4 4735 521 4800 4801 4813 4812 +CQUAD4 4736 521 4801 4802 4814 4813 +CQUAD4 4737 521 4802 749 753 4814 +CQUAD4 4738 521 677 4811 1809 681 +CQUAD4 4739 521 4811 4812 1810 1809 +CQUAD4 4740 521 4812 4813 1811 1810 +CQUAD4 4741 521 4813 4814 1812 1811 +CQUAD4 4742 521 4814 753 757 1812 +CQUAD4 4743 522 676 680 4815 4804 +CQUAD4 4744 522 680 684 1821 4815 +CQUAD4 4745 522 4804 4815 4816 4806 +CQUAD4 4746 522 4815 1821 1822 4816 +CQUAD4 4747 522 4806 4816 4817 4808 +CQUAD4 4748 522 4816 1822 1823 4817 +CQUAD4 4749 522 4808 4817 4818 4810 +CQUAD4 4750 522 4817 1823 1824 4818 +CQUAD4 4751 522 4810 4818 756 752 +CQUAD4 4752 522 4818 1824 760 756 +CQUAD4 4753 523 617 4531 4819 4687 +CQUAD4 4754 523 4531 4532 4820 4819 +CQUAD4 4755 523 4687 4819 4821 4688 +CQUAD4 4756 523 4819 4820 4822 4821 +CQUAD4 4757 523 4688 4821 4823 4689 +CQUAD4 4758 523 4821 4822 4824 4823 +CQUAD4 4759 523 4689 4823 4825 4690 +CQUAD4 4760 523 4823 4824 4826 4825 +CQUAD4 4761 523 4690 4825 4827 693 +CQUAD4 4762 523 4825 4826 4828 4827 +CQUAD4 4763 524 620 4541 4829 4692 +CQUAD4 4764 524 4541 4542 4830 4829 +CQUAD4 4765 524 4692 4829 4831 4694 +CQUAD4 4766 524 4829 4830 4832 4831 +CQUAD4 4767 524 4694 4831 4833 4696 +CQUAD4 4768 524 4831 4832 4834 4833 +CQUAD4 4769 524 4696 4833 4835 4698 +CQUAD4 4770 524 4833 4834 4836 4835 +CQUAD4 4771 524 4698 4835 4837 696 +CQUAD4 4772 524 4835 4836 4838 4837 +CQUAD4 4773 525 625 4551 4839 4703 +CQUAD4 4774 525 4551 4552 4840 4839 +CQUAD4 4775 525 4703 4839 4841 4704 +CQUAD4 4776 525 4839 4840 4842 4841 +CQUAD4 4777 525 4704 4841 4843 4705 +CQUAD4 4778 525 4841 4842 4844 4843 +CQUAD4 4779 525 4705 4843 4845 4706 +CQUAD4 4780 525 4843 4844 4846 4845 +CQUAD4 4781 525 4706 4845 4847 701 +CQUAD4 4782 525 4845 4846 4848 4847 +CQUAD4 4783 526 628 4561 4849 4708 +CQUAD4 4784 526 4561 4562 4850 4849 +CQUAD4 4785 526 4708 4849 4851 4710 +CQUAD4 4786 526 4849 4850 4852 4851 +CQUAD4 4787 526 4710 4851 4853 4712 +CQUAD4 4788 526 4851 4852 4854 4853 +CQUAD4 4789 526 4712 4853 4855 4714 +CQUAD4 4790 526 4853 4854 4856 4855 +CQUAD4 4791 526 4714 4855 4857 704 +CQUAD4 4792 526 4855 4856 4858 4857 +CQUAD4 4793 527 633 4571 4859 4719 +CQUAD4 4794 527 4571 4572 4860 4859 +CQUAD4 4795 527 4719 4859 4861 4720 +CQUAD4 4796 527 4859 4860 4862 4861 +CQUAD4 4797 527 4720 4861 4863 4721 +CQUAD4 4798 527 4861 4862 4864 4863 +CQUAD4 4799 527 4721 4863 4865 4722 +CQUAD4 4800 527 4863 4864 4866 4865 +CQUAD4 4801 527 4722 4865 4867 709 +CQUAD4 4802 527 4865 4866 4868 4867 +CQUAD4 4803 528 636 4581 4869 4724 +CQUAD4 4804 528 4581 4582 4870 4869 +CQUAD4 4805 528 4724 4869 4871 4726 +CQUAD4 4806 528 4869 4870 4872 4871 +CQUAD4 4807 528 4726 4871 4873 4728 +CQUAD4 4808 528 4871 4872 4874 4873 +CQUAD4 4809 528 4728 4873 4875 4730 +CQUAD4 4810 528 4873 4874 4876 4875 +CQUAD4 4811 528 4730 4875 4877 712 +CQUAD4 4812 528 4875 4876 4878 4877 +CQUAD4 4813 529 641 4591 4879 4735 +CQUAD4 4814 529 4591 4592 4880 4879 +CQUAD4 4815 529 4735 4879 4881 4736 +CQUAD4 4816 529 4879 4880 4882 4881 +CQUAD4 4817 529 4736 4881 4883 4737 +CQUAD4 4818 529 4881 4882 4884 4883 +CQUAD4 4819 529 4737 4883 4885 4738 +CQUAD4 4820 529 4883 4884 4886 4885 +CQUAD4 4821 529 4738 4885 4887 717 +CQUAD4 4822 529 4885 4886 4888 4887 +CQUAD4 4823 530 644 4601 4889 4740 +CQUAD4 4824 530 4601 4602 4890 4889 +CQUAD4 4825 530 4740 4889 4891 4742 +CQUAD4 4826 530 4889 4890 4892 4891 +CQUAD4 4827 530 4742 4891 4893 4744 +CQUAD4 4828 530 4891 4892 4894 4893 +CQUAD4 4829 530 4744 4893 4895 4746 +CQUAD4 4830 530 4893 4894 4896 4895 +CQUAD4 4831 530 4746 4895 4897 720 +CQUAD4 4832 530 4895 4896 4898 4897 +CQUAD4 4833 531 649 4611 4899 4751 +CQUAD4 4834 531 4611 4612 4900 4899 +CQUAD4 4835 531 4751 4899 4901 4752 +CQUAD4 4836 531 4899 4900 4902 4901 +CQUAD4 4837 531 4752 4901 4903 4753 +CQUAD4 4838 531 4901 4902 4904 4903 +CQUAD4 4839 531 4753 4903 4905 4754 +CQUAD4 4840 531 4903 4904 4906 4905 +CQUAD4 4841 531 4754 4905 4907 725 +CQUAD4 4842 531 4905 4906 4908 4907 +CQUAD4 4843 532 652 4621 4909 4756 +CQUAD4 4844 532 4621 4622 4910 4909 +CQUAD4 4845 532 4756 4909 4911 4758 +CQUAD4 4846 532 4909 4910 4912 4911 +CQUAD4 4847 532 4758 4911 4913 4760 +CQUAD4 4848 532 4911 4912 4914 4913 +CQUAD4 4849 532 4760 4913 4915 4762 +CQUAD4 4850 532 4913 4914 4916 4915 +CQUAD4 4851 532 4762 4915 4917 728 +CQUAD4 4852 532 4915 4916 4918 4917 +CQUAD4 4853 533 657 4631 4919 4767 +CQUAD4 4854 533 4631 4632 4920 4919 +CQUAD4 4855 533 4767 4919 4921 4768 +CQUAD4 4856 533 4919 4920 4922 4921 +CQUAD4 4857 533 4768 4921 4923 4769 +CQUAD4 4858 533 4921 4922 4924 4923 +CQUAD4 4859 533 4769 4923 4925 4770 +CQUAD4 4860 533 4923 4924 4926 4925 +CQUAD4 4861 533 4770 4925 4927 733 +CQUAD4 4862 533 4925 4926 4928 4927 +CQUAD4 4863 534 660 4641 4929 4772 +CQUAD4 4864 534 4641 4642 4930 4929 +CQUAD4 4865 534 4772 4929 4931 4774 +CQUAD4 4866 534 4929 4930 4932 4931 +CQUAD4 4867 534 4774 4931 4933 4776 +CQUAD4 4868 534 4931 4932 4934 4933 +CQUAD4 4869 534 4776 4933 4935 4778 +CQUAD4 4870 534 4933 4934 4936 4935 +CQUAD4 4871 534 4778 4935 4937 736 +CQUAD4 4872 534 4935 4936 4938 4937 +CQUAD4 4873 535 665 4651 4939 4783 +CQUAD4 4874 535 4651 4652 4940 4939 +CQUAD4 4875 535 4783 4939 4941 4784 +CQUAD4 4876 535 4939 4940 4942 4941 +CQUAD4 4877 535 4784 4941 4943 4785 +CQUAD4 4878 535 4941 4942 4944 4943 +CQUAD4 4879 535 4785 4943 4945 4786 +CQUAD4 4880 535 4943 4944 4946 4945 +CQUAD4 4881 535 4786 4945 4947 741 +CQUAD4 4882 535 4945 4946 4948 4947 +CQUAD4 4883 536 668 4661 4949 4788 +CQUAD4 4884 536 4661 4662 4950 4949 +CQUAD4 4885 536 4788 4949 4951 4790 +CQUAD4 4886 536 4949 4950 4952 4951 +CQUAD4 4887 536 4790 4951 4953 4792 +CQUAD4 4888 536 4951 4952 4954 4953 +CQUAD4 4889 536 4792 4953 4955 4794 +CQUAD4 4890 536 4953 4954 4956 4955 +CQUAD4 4891 536 4794 4955 4957 744 +CQUAD4 4892 536 4955 4956 4958 4957 +CQUAD4 4893 537 673 4671 4959 4799 +CQUAD4 4894 537 4671 4672 4960 4959 +CQUAD4 4895 537 4799 4959 4961 4800 +CQUAD4 4896 537 4959 4960 4962 4961 +CQUAD4 4897 537 4800 4961 4963 4801 +CQUAD4 4898 537 4961 4962 4964 4963 +CQUAD4 4899 537 4801 4963 4965 4802 +CQUAD4 4900 537 4963 4964 4966 4965 +CQUAD4 4901 537 4802 4965 4967 749 +CQUAD4 4902 537 4965 4966 4968 4967 +CQUAD4 4903 538 676 4681 4969 4804 +CQUAD4 4904 538 4681 4682 4970 4969 +CQUAD4 4905 538 4804 4969 4971 4806 +CQUAD4 4906 538 4969 4970 4972 4971 +CQUAD4 4907 538 4806 4971 4973 4808 +CQUAD4 4908 538 4971 4972 4974 4973 +CQUAD4 4909 538 4808 4973 4975 4810 +CQUAD4 4910 538 4973 4974 4976 4975 +CQUAD4 4911 538 4810 4975 4977 752 +CQUAD4 4912 538 4975 4976 4978 4977 +CQUAD4 4913 539 685 1533 4979 689 +CQUAD4 4914 539 1533 1534 4980 4979 +CQUAD4 4915 539 1534 1535 4981 4980 +CQUAD4 4916 539 1535 1536 4982 4981 +CQUAD4 4917 539 1536 761 765 4982 +CQUAD4 4918 539 689 4979 4983 693 +CQUAD4 4919 539 4979 4980 4984 4983 +CQUAD4 4920 539 4980 4981 4985 4984 +CQUAD4 4921 539 4981 4982 4986 4985 +CQUAD4 4922 539 4982 765 769 4986 +CQUAD4 4923 540 688 692 4987 1545 +CQUAD4 4924 540 692 696 4988 4987 +CQUAD4 4925 540 1545 4987 4989 1546 +CQUAD4 4926 540 4987 4988 4990 4989 +CQUAD4 4927 540 1546 4989 4991 1547 +CQUAD4 4928 540 4989 4990 4992 4991 +CQUAD4 4929 540 1547 4991 4993 1548 +CQUAD4 4930 540 4991 4992 4994 4993 +CQUAD4 4931 540 1548 4993 768 764 +CQUAD4 4932 540 4993 4994 772 768 +CQUAD4 4933 541 693 4983 4995 697 +CQUAD4 4934 541 4983 4984 4996 4995 +CQUAD4 4935 541 4984 4985 4997 4996 +CQUAD4 4936 541 4985 4986 4998 4997 +CQUAD4 4937 541 4986 769 773 4998 +CQUAD4 4938 541 697 4995 4999 701 +CQUAD4 4939 541 4995 4996 5000 4999 +CQUAD4 4940 541 4996 4997 5001 5000 +CQUAD4 4941 541 4997 4998 5002 5001 +CQUAD4 4942 541 4998 773 777 5002 +CQUAD4 4943 542 696 700 5003 4988 +CQUAD4 4944 542 700 704 5004 5003 +CQUAD4 4945 542 4988 5003 5005 4990 +CQUAD4 4946 542 5003 5004 5006 5005 +CQUAD4 4947 542 4990 5005 5007 4992 +CQUAD4 4948 542 5005 5006 5008 5007 +CQUAD4 4949 542 4992 5007 5009 4994 +CQUAD4 4950 542 5007 5008 5010 5009 +CQUAD4 4951 542 4994 5009 776 772 +CQUAD4 4952 542 5009 5010 780 776 +CQUAD4 4953 543 701 4999 5011 705 +CQUAD4 4954 543 4999 5000 5012 5011 +CQUAD4 4955 543 5000 5001 5013 5012 +CQUAD4 4956 543 5001 5002 5014 5013 +CQUAD4 4957 543 5002 777 781 5014 +CQUAD4 4958 543 705 5011 5015 709 +CQUAD4 4959 543 5011 5012 5016 5015 +CQUAD4 4960 543 5012 5013 5017 5016 +CQUAD4 4961 543 5013 5014 5018 5017 +CQUAD4 4962 543 5014 781 785 5018 +CQUAD4 4963 544 704 708 5019 5004 +CQUAD4 4964 544 708 712 5020 5019 +CQUAD4 4965 544 5004 5019 5021 5006 +CQUAD4 4966 544 5019 5020 5022 5021 +CQUAD4 4967 544 5006 5021 5023 5008 +CQUAD4 4968 544 5021 5022 5024 5023 +CQUAD4 4969 544 5008 5023 5025 5010 +CQUAD4 4970 544 5023 5024 5026 5025 +CQUAD4 4971 544 5010 5025 784 780 +CQUAD4 4972 544 5025 5026 788 784 +CQUAD4 4973 545 709 5015 5027 713 +CQUAD4 4974 545 5015 5016 5028 5027 +CQUAD4 4975 545 5016 5017 5029 5028 +CQUAD4 4976 545 5017 5018 5030 5029 +CQUAD4 4977 545 5018 785 789 5030 +CQUAD4 4978 545 713 5027 5031 717 +CQUAD4 4979 545 5027 5028 5032 5031 +CQUAD4 4980 545 5028 5029 5033 5032 +CQUAD4 4981 545 5029 5030 5034 5033 +CQUAD4 4982 545 5030 789 793 5034 +CQUAD4 4983 546 712 716 5035 5020 +CQUAD4 4984 546 716 720 5036 5035 +CQUAD4 4985 546 5020 5035 5037 5022 +CQUAD4 4986 546 5035 5036 5038 5037 +CQUAD4 4987 546 5022 5037 5039 5024 +CQUAD4 4988 546 5037 5038 5040 5039 +CQUAD4 4989 546 5024 5039 5041 5026 +CQUAD4 4990 546 5039 5040 5042 5041 +CQUAD4 4991 546 5026 5041 792 788 +CQUAD4 4992 546 5041 5042 796 792 +CQUAD4 4993 547 717 5031 5043 721 +CQUAD4 4994 547 5031 5032 5044 5043 +CQUAD4 4995 547 5032 5033 5045 5044 +CQUAD4 4996 547 5033 5034 5046 5045 +CQUAD4 4997 547 5034 793 797 5046 +CQUAD4 4998 547 721 5043 5047 725 +CQUAD4 4999 547 5043 5044 5048 5047 +CQUAD4 5000 547 5044 5045 5049 5048 +CQUAD4 5001 547 5045 5046 5050 5049 +CQUAD4 5002 547 5046 797 801 5050 +CQUAD4 5003 548 720 724 5051 5036 +CQUAD4 5004 548 724 728 5052 5051 +CQUAD4 5005 548 5036 5051 5053 5038 +CQUAD4 5006 548 5051 5052 5054 5053 +CQUAD4 5007 548 5038 5053 5055 5040 +CQUAD4 5008 548 5053 5054 5056 5055 +CQUAD4 5009 548 5040 5055 5057 5042 +CQUAD4 5010 548 5055 5056 5058 5057 +CQUAD4 5011 548 5042 5057 800 796 +CQUAD4 5012 548 5057 5058 804 800 +CQUAD4 5013 549 725 5047 5059 729 +CQUAD4 5014 549 5047 5048 5060 5059 +CQUAD4 5015 549 5048 5049 5061 5060 +CQUAD4 5016 549 5049 5050 5062 5061 +CQUAD4 5017 549 5050 801 805 5062 +CQUAD4 5018 549 729 5059 5063 733 +CQUAD4 5019 549 5059 5060 5064 5063 +CQUAD4 5020 549 5060 5061 5065 5064 +CQUAD4 5021 549 5061 5062 5066 5065 +CQUAD4 5022 549 5062 805 809 5066 +CQUAD4 5023 550 728 732 5067 5052 +CQUAD4 5024 550 732 736 5068 5067 +CQUAD4 5025 550 5052 5067 5069 5054 +CQUAD4 5026 550 5067 5068 5070 5069 +CQUAD4 5027 550 5054 5069 5071 5056 +CQUAD4 5028 550 5069 5070 5072 5071 +CQUAD4 5029 550 5056 5071 5073 5058 +CQUAD4 5030 550 5071 5072 5074 5073 +CQUAD4 5031 550 5058 5073 808 804 +CQUAD4 5032 550 5073 5074 812 808 +CQUAD4 5033 551 733 5063 5075 737 +CQUAD4 5034 551 5063 5064 5076 5075 +CQUAD4 5035 551 5064 5065 5077 5076 +CQUAD4 5036 551 5065 5066 5078 5077 +CQUAD4 5037 551 5066 809 813 5078 +CQUAD4 5038 551 737 5075 5079 741 +CQUAD4 5039 551 5075 5076 5080 5079 +CQUAD4 5040 551 5076 5077 5081 5080 +CQUAD4 5041 551 5077 5078 5082 5081 +CQUAD4 5042 551 5078 813 817 5082 +CQUAD4 5043 552 736 740 5083 5068 +CQUAD4 5044 552 740 744 5084 5083 +CQUAD4 5045 552 5068 5083 5085 5070 +CQUAD4 5046 552 5083 5084 5086 5085 +CQUAD4 5047 552 5070 5085 5087 5072 +CQUAD4 5048 552 5085 5086 5088 5087 +CQUAD4 5049 552 5072 5087 5089 5074 +CQUAD4 5050 552 5087 5088 5090 5089 +CQUAD4 5051 552 5074 5089 816 812 +CQUAD4 5052 552 5089 5090 820 816 +CQUAD4 5053 553 741 5079 5091 745 +CQUAD4 5054 553 5079 5080 5092 5091 +CQUAD4 5055 553 5080 5081 5093 5092 +CQUAD4 5056 553 5081 5082 5094 5093 +CQUAD4 5057 553 5082 817 821 5094 +CQUAD4 5058 553 745 5091 5095 749 +CQUAD4 5059 553 5091 5092 5096 5095 +CQUAD4 5060 553 5092 5093 5097 5096 +CQUAD4 5061 553 5093 5094 5098 5097 +CQUAD4 5062 553 5094 821 825 5098 +CQUAD4 5063 554 744 748 5099 5084 +CQUAD4 5064 554 748 752 5100 5099 +CQUAD4 5065 554 5084 5099 5101 5086 +CQUAD4 5066 554 5099 5100 5102 5101 +CQUAD4 5067 554 5086 5101 5103 5088 +CQUAD4 5068 554 5101 5102 5104 5103 +CQUAD4 5069 554 5088 5103 5105 5090 +CQUAD4 5070 554 5103 5104 5106 5105 +CQUAD4 5071 554 5090 5105 824 820 +CQUAD4 5072 554 5105 5106 828 824 +CQUAD4 5073 555 749 5095 5107 753 +CQUAD4 5074 555 5095 5096 5108 5107 +CQUAD4 5075 555 5096 5097 5109 5108 +CQUAD4 5076 555 5097 5098 5110 5109 +CQUAD4 5077 555 5098 825 829 5110 +CQUAD4 5078 555 753 5107 1825 757 +CQUAD4 5079 555 5107 5108 1826 1825 +CQUAD4 5080 555 5108 5109 1827 1826 +CQUAD4 5081 555 5109 5110 1828 1827 +CQUAD4 5082 555 5110 829 833 1828 +CQUAD4 5083 556 752 756 5111 5100 +CQUAD4 5084 556 756 760 1837 5111 +CQUAD4 5085 556 5100 5111 5112 5102 +CQUAD4 5086 556 5111 1837 1838 5112 +CQUAD4 5087 556 5102 5112 5113 5104 +CQUAD4 5088 556 5112 1838 1839 5113 +CQUAD4 5089 556 5104 5113 5114 5106 +CQUAD4 5090 556 5113 1839 1840 5114 +CQUAD4 5091 556 5106 5114 832 828 +CQUAD4 5092 556 5114 1840 836 832 +CQUAD4 5093 557 693 4827 5115 4983 +CQUAD4 5094 557 4827 4828 5116 5115 +CQUAD4 5095 557 4983 5115 5117 4984 +CQUAD4 5096 557 5115 5116 5118 5117 +CQUAD4 5097 557 4984 5117 5119 4985 +CQUAD4 5098 557 5117 5118 5120 5119 +CQUAD4 5099 557 4985 5119 5121 4986 +CQUAD4 5100 557 5119 5120 5122 5121 +CQUAD4 5101 557 4986 5121 5123 769 +CQUAD4 5102 557 5121 5122 5124 5123 +CQUAD4 5103 558 696 4837 5125 4988 +CQUAD4 5104 558 4837 4838 5126 5125 +CQUAD4 5105 558 4988 5125 5127 4990 +CQUAD4 5106 558 5125 5126 5128 5127 +CQUAD4 5107 558 4990 5127 5129 4992 +CQUAD4 5108 558 5127 5128 5130 5129 +CQUAD4 5109 558 4992 5129 5131 4994 +CQUAD4 5110 558 5129 5130 5132 5131 +CQUAD4 5111 558 4994 5131 5133 772 +CQUAD4 5112 558 5131 5132 5134 5133 +CQUAD4 5113 559 701 4847 5135 4999 +CQUAD4 5114 559 4847 4848 5136 5135 +CQUAD4 5115 559 4999 5135 5137 5000 +CQUAD4 5116 559 5135 5136 5138 5137 +CQUAD4 5117 559 5000 5137 5139 5001 +CQUAD4 5118 559 5137 5138 5140 5139 +CQUAD4 5119 559 5001 5139 5141 5002 +CQUAD4 5120 559 5139 5140 5142 5141 +CQUAD4 5121 559 5002 5141 5143 777 +CQUAD4 5122 559 5141 5142 5144 5143 +CQUAD4 5123 560 704 4857 5145 5004 +CQUAD4 5124 560 4857 4858 5146 5145 +CQUAD4 5125 560 5004 5145 5147 5006 +CQUAD4 5126 560 5145 5146 5148 5147 +CQUAD4 5127 560 5006 5147 5149 5008 +CQUAD4 5128 560 5147 5148 5150 5149 +CQUAD4 5129 560 5008 5149 5151 5010 +CQUAD4 5130 560 5149 5150 5152 5151 +CQUAD4 5131 560 5010 5151 5153 780 +CQUAD4 5132 560 5151 5152 5154 5153 +CQUAD4 5133 561 709 4867 5155 5015 +CQUAD4 5134 561 4867 4868 5156 5155 +CQUAD4 5135 561 5015 5155 5157 5016 +CQUAD4 5136 561 5155 5156 5158 5157 +CQUAD4 5137 561 5016 5157 5159 5017 +CQUAD4 5138 561 5157 5158 5160 5159 +CQUAD4 5139 561 5017 5159 5161 5018 +CQUAD4 5140 561 5159 5160 5162 5161 +CQUAD4 5141 561 5018 5161 5163 785 +CQUAD4 5142 561 5161 5162 5164 5163 +CQUAD4 5143 562 712 4877 5165 5020 +CQUAD4 5144 562 4877 4878 5166 5165 +CQUAD4 5145 562 5020 5165 5167 5022 +CQUAD4 5146 562 5165 5166 5168 5167 +CQUAD4 5147 562 5022 5167 5169 5024 +CQUAD4 5148 562 5167 5168 5170 5169 +CQUAD4 5149 562 5024 5169 5171 5026 +CQUAD4 5150 562 5169 5170 5172 5171 +CQUAD4 5151 562 5026 5171 5173 788 +CQUAD4 5152 562 5171 5172 5174 5173 +CQUAD4 5153 563 717 4887 5175 5031 +CQUAD4 5154 563 4887 4888 5176 5175 +CQUAD4 5155 563 5031 5175 5177 5032 +CQUAD4 5156 563 5175 5176 5178 5177 +CQUAD4 5157 563 5032 5177 5179 5033 +CQUAD4 5158 563 5177 5178 5180 5179 +CQUAD4 5159 563 5033 5179 5181 5034 +CQUAD4 5160 563 5179 5180 5182 5181 +CQUAD4 5161 563 5034 5181 5183 793 +CQUAD4 5162 563 5181 5182 5184 5183 +CQUAD4 5163 564 720 4897 5185 5036 +CQUAD4 5164 564 4897 4898 5186 5185 +CQUAD4 5165 564 5036 5185 5187 5038 +CQUAD4 5166 564 5185 5186 5188 5187 +CQUAD4 5167 564 5038 5187 5189 5040 +CQUAD4 5168 564 5187 5188 5190 5189 +CQUAD4 5169 564 5040 5189 5191 5042 +CQUAD4 5170 564 5189 5190 5192 5191 +CQUAD4 5171 564 5042 5191 5193 796 +CQUAD4 5172 564 5191 5192 5194 5193 +CQUAD4 5173 565 725 4907 5195 5047 +CQUAD4 5174 565 4907 4908 5196 5195 +CQUAD4 5175 565 5047 5195 5197 5048 +CQUAD4 5176 565 5195 5196 5198 5197 +CQUAD4 5177 565 5048 5197 5199 5049 +CQUAD4 5178 565 5197 5198 5200 5199 +CQUAD4 5179 565 5049 5199 5201 5050 +CQUAD4 5180 565 5199 5200 5202 5201 +CQUAD4 5181 565 5050 5201 5203 801 +CQUAD4 5182 565 5201 5202 5204 5203 +CQUAD4 5183 566 728 4917 5205 5052 +CQUAD4 5184 566 4917 4918 5206 5205 +CQUAD4 5185 566 5052 5205 5207 5054 +CQUAD4 5186 566 5205 5206 5208 5207 +CQUAD4 5187 566 5054 5207 5209 5056 +CQUAD4 5188 566 5207 5208 5210 5209 +CQUAD4 5189 566 5056 5209 5211 5058 +CQUAD4 5190 566 5209 5210 5212 5211 +CQUAD4 5191 566 5058 5211 5213 804 +CQUAD4 5192 566 5211 5212 5214 5213 +CQUAD4 5193 567 733 4927 5215 5063 +CQUAD4 5194 567 4927 4928 5216 5215 +CQUAD4 5195 567 5063 5215 5217 5064 +CQUAD4 5196 567 5215 5216 5218 5217 +CQUAD4 5197 567 5064 5217 5219 5065 +CQUAD4 5198 567 5217 5218 5220 5219 +CQUAD4 5199 567 5065 5219 5221 5066 +CQUAD4 5200 567 5219 5220 5222 5221 +CQUAD4 5201 567 5066 5221 5223 809 +CQUAD4 5202 567 5221 5222 5224 5223 +CQUAD4 5203 568 736 4937 5225 5068 +CQUAD4 5204 568 4937 4938 5226 5225 +CQUAD4 5205 568 5068 5225 5227 5070 +CQUAD4 5206 568 5225 5226 5228 5227 +CQUAD4 5207 568 5070 5227 5229 5072 +CQUAD4 5208 568 5227 5228 5230 5229 +CQUAD4 5209 568 5072 5229 5231 5074 +CQUAD4 5210 568 5229 5230 5232 5231 +CQUAD4 5211 568 5074 5231 5233 812 +CQUAD4 5212 568 5231 5232 5234 5233 +CQUAD4 5213 569 741 4947 5235 5079 +CQUAD4 5214 569 4947 4948 5236 5235 +CQUAD4 5215 569 5079 5235 5237 5080 +CQUAD4 5216 569 5235 5236 5238 5237 +CQUAD4 5217 569 5080 5237 5239 5081 +CQUAD4 5218 569 5237 5238 5240 5239 +CQUAD4 5219 569 5081 5239 5241 5082 +CQUAD4 5220 569 5239 5240 5242 5241 +CQUAD4 5221 569 5082 5241 5243 817 +CQUAD4 5222 569 5241 5242 5244 5243 +CQUAD4 5223 570 744 4957 5245 5084 +CQUAD4 5224 570 4957 4958 5246 5245 +CQUAD4 5225 570 5084 5245 5247 5086 +CQUAD4 5226 570 5245 5246 5248 5247 +CQUAD4 5227 570 5086 5247 5249 5088 +CQUAD4 5228 570 5247 5248 5250 5249 +CQUAD4 5229 570 5088 5249 5251 5090 +CQUAD4 5230 570 5249 5250 5252 5251 +CQUAD4 5231 570 5090 5251 5253 820 +CQUAD4 5232 570 5251 5252 5254 5253 +CQUAD4 5233 571 749 4967 5255 5095 +CQUAD4 5234 571 4967 4968 5256 5255 +CQUAD4 5235 571 5095 5255 5257 5096 +CQUAD4 5236 571 5255 5256 5258 5257 +CQUAD4 5237 571 5096 5257 5259 5097 +CQUAD4 5238 571 5257 5258 5260 5259 +CQUAD4 5239 571 5097 5259 5261 5098 +CQUAD4 5240 571 5259 5260 5262 5261 +CQUAD4 5241 571 5098 5261 5263 825 +CQUAD4 5242 571 5261 5262 5264 5263 +CQUAD4 5243 572 752 4977 5265 5100 +CQUAD4 5244 572 4977 4978 5266 5265 +CQUAD4 5245 572 5100 5265 5267 5102 +CQUAD4 5246 572 5265 5266 5268 5267 +CQUAD4 5247 572 5102 5267 5269 5104 +CQUAD4 5248 572 5267 5268 5270 5269 +CQUAD4 5249 572 5104 5269 5271 5106 +CQUAD4 5250 572 5269 5270 5272 5271 +CQUAD4 5251 572 5106 5271 5273 828 +CQUAD4 5252 572 5271 5272 5274 5273 +CQUAD4 5253 573 761 1549 5275 765 +CQUAD4 5254 573 1549 1550 5276 5275 +CQUAD4 5255 573 1550 1551 5277 5276 +CQUAD4 5256 573 1551 1552 5278 5277 +CQUAD4 5257 573 1552 837 841 5278 +CQUAD4 5258 573 765 5275 5279 769 +CQUAD4 5259 573 5275 5276 5280 5279 +CQUAD4 5260 573 5276 5277 5281 5280 +CQUAD4 5261 573 5277 5278 5282 5281 +CQUAD4 5262 573 5278 841 845 5282 +CQUAD4 5263 574 764 768 5283 1561 +CQUAD4 5264 574 768 772 5284 5283 +CQUAD4 5265 574 1561 5283 5285 1562 +CQUAD4 5266 574 5283 5284 5286 5285 +CQUAD4 5267 574 1562 5285 5287 1563 +CQUAD4 5268 574 5285 5286 5288 5287 +CQUAD4 5269 574 1563 5287 5289 1564 +CQUAD4 5270 574 5287 5288 5290 5289 +CQUAD4 5271 574 1564 5289 844 840 +CQUAD4 5272 574 5289 5290 848 844 +CQUAD4 5273 575 769 5279 5291 773 +CQUAD4 5274 575 5279 5280 5292 5291 +CQUAD4 5275 575 5280 5281 5293 5292 +CQUAD4 5276 575 5281 5282 5294 5293 +CQUAD4 5277 575 5282 845 849 5294 +CQUAD4 5278 575 773 5291 5295 777 +CQUAD4 5279 575 5291 5292 5296 5295 +CQUAD4 5280 575 5292 5293 5297 5296 +CQUAD4 5281 575 5293 5294 5298 5297 +CQUAD4 5282 575 5294 849 853 5298 +CQUAD4 5283 576 772 776 5299 5284 +CQUAD4 5284 576 776 780 5300 5299 +CQUAD4 5285 576 5284 5299 5301 5286 +CQUAD4 5286 576 5299 5300 5302 5301 +CQUAD4 5287 576 5286 5301 5303 5288 +CQUAD4 5288 576 5301 5302 5304 5303 +CQUAD4 5289 576 5288 5303 5305 5290 +CQUAD4 5290 576 5303 5304 5306 5305 +CQUAD4 5291 576 5290 5305 852 848 +CQUAD4 5292 576 5305 5306 856 852 +CQUAD4 5293 577 777 5295 5307 781 +CQUAD4 5294 577 5295 5296 5308 5307 +CQUAD4 5295 577 5296 5297 5309 5308 +CQUAD4 5296 577 5297 5298 5310 5309 +CQUAD4 5297 577 5298 853 857 5310 +CQUAD4 5298 577 781 5307 5311 785 +CQUAD4 5299 577 5307 5308 5312 5311 +CQUAD4 5300 577 5308 5309 5313 5312 +CQUAD4 5301 577 5309 5310 5314 5313 +CQUAD4 5302 577 5310 857 861 5314 +CQUAD4 5303 578 780 784 5315 5300 +CQUAD4 5304 578 784 788 5316 5315 +CQUAD4 5305 578 5300 5315 5317 5302 +CQUAD4 5306 578 5315 5316 5318 5317 +CQUAD4 5307 578 5302 5317 5319 5304 +CQUAD4 5308 578 5317 5318 5320 5319 +CQUAD4 5309 578 5304 5319 5321 5306 +CQUAD4 5310 578 5319 5320 5322 5321 +CQUAD4 5311 578 5306 5321 860 856 +CQUAD4 5312 578 5321 5322 864 860 +CQUAD4 5313 579 785 5311 5323 789 +CQUAD4 5314 579 5311 5312 5324 5323 +CQUAD4 5315 579 5312 5313 5325 5324 +CQUAD4 5316 579 5313 5314 5326 5325 +CQUAD4 5317 579 5314 861 865 5326 +CQUAD4 5318 579 789 5323 5327 793 +CQUAD4 5319 579 5323 5324 5328 5327 +CQUAD4 5320 579 5324 5325 5329 5328 +CQUAD4 5321 579 5325 5326 5330 5329 +CQUAD4 5322 579 5326 865 869 5330 +CQUAD4 5323 580 788 792 5331 5316 +CQUAD4 5324 580 792 796 5332 5331 +CQUAD4 5325 580 5316 5331 5333 5318 +CQUAD4 5326 580 5331 5332 5334 5333 +CQUAD4 5327 580 5318 5333 5335 5320 +CQUAD4 5328 580 5333 5334 5336 5335 +CQUAD4 5329 580 5320 5335 5337 5322 +CQUAD4 5330 580 5335 5336 5338 5337 +CQUAD4 5331 580 5322 5337 868 864 +CQUAD4 5332 580 5337 5338 872 868 +CQUAD4 5333 581 793 5327 5339 797 +CQUAD4 5334 581 5327 5328 5340 5339 +CQUAD4 5335 581 5328 5329 5341 5340 +CQUAD4 5336 581 5329 5330 5342 5341 +CQUAD4 5337 581 5330 869 873 5342 +CQUAD4 5338 581 797 5339 5343 801 +CQUAD4 5339 581 5339 5340 5344 5343 +CQUAD4 5340 581 5340 5341 5345 5344 +CQUAD4 5341 581 5341 5342 5346 5345 +CQUAD4 5342 581 5342 873 877 5346 +CQUAD4 5343 582 796 800 5347 5332 +CQUAD4 5344 582 800 804 5348 5347 +CQUAD4 5345 582 5332 5347 5349 5334 +CQUAD4 5346 582 5347 5348 5350 5349 +CQUAD4 5347 582 5334 5349 5351 5336 +CQUAD4 5348 582 5349 5350 5352 5351 +CQUAD4 5349 582 5336 5351 5353 5338 +CQUAD4 5350 582 5351 5352 5354 5353 +CQUAD4 5351 582 5338 5353 876 872 +CQUAD4 5352 582 5353 5354 880 876 +CQUAD4 5353 583 801 5343 5355 805 +CQUAD4 5354 583 5343 5344 5356 5355 +CQUAD4 5355 583 5344 5345 5357 5356 +CQUAD4 5356 583 5345 5346 5358 5357 +CQUAD4 5357 583 5346 877 881 5358 +CQUAD4 5358 583 805 5355 5359 809 +CQUAD4 5359 583 5355 5356 5360 5359 +CQUAD4 5360 583 5356 5357 5361 5360 +CQUAD4 5361 583 5357 5358 5362 5361 +CQUAD4 5362 583 5358 881 885 5362 +CQUAD4 5363 584 804 808 5363 5348 +CQUAD4 5364 584 808 812 5364 5363 +CQUAD4 5365 584 5348 5363 5365 5350 +CQUAD4 5366 584 5363 5364 5366 5365 +CQUAD4 5367 584 5350 5365 5367 5352 +CQUAD4 5368 584 5365 5366 5368 5367 +CQUAD4 5369 584 5352 5367 5369 5354 +CQUAD4 5370 584 5367 5368 5370 5369 +CQUAD4 5371 584 5354 5369 884 880 +CQUAD4 5372 584 5369 5370 888 884 +CQUAD4 5373 585 809 5359 5371 813 +CQUAD4 5374 585 5359 5360 5372 5371 +CQUAD4 5375 585 5360 5361 5373 5372 +CQUAD4 5376 585 5361 5362 5374 5373 +CQUAD4 5377 585 5362 885 889 5374 +CQUAD4 5378 585 813 5371 5375 817 +CQUAD4 5379 585 5371 5372 5376 5375 +CQUAD4 5380 585 5372 5373 5377 5376 +CQUAD4 5381 585 5373 5374 5378 5377 +CQUAD4 5382 585 5374 889 893 5378 +CQUAD4 5383 586 812 816 5379 5364 +CQUAD4 5384 586 816 820 5380 5379 +CQUAD4 5385 586 5364 5379 5381 5366 +CQUAD4 5386 586 5379 5380 5382 5381 +CQUAD4 5387 586 5366 5381 5383 5368 +CQUAD4 5388 586 5381 5382 5384 5383 +CQUAD4 5389 586 5368 5383 5385 5370 +CQUAD4 5390 586 5383 5384 5386 5385 +CQUAD4 5391 586 5370 5385 892 888 +CQUAD4 5392 586 5385 5386 896 892 +CQUAD4 5393 587 817 5375 5387 821 +CQUAD4 5394 587 5375 5376 5388 5387 +CQUAD4 5395 587 5376 5377 5389 5388 +CQUAD4 5396 587 5377 5378 5390 5389 +CQUAD4 5397 587 5378 893 897 5390 +CQUAD4 5398 587 821 5387 5391 825 +CQUAD4 5399 587 5387 5388 5392 5391 +CQUAD4 5400 587 5388 5389 5393 5392 +CQUAD4 5401 587 5389 5390 5394 5393 +CQUAD4 5402 587 5390 897 901 5394 +CQUAD4 5403 588 820 824 5395 5380 +CQUAD4 5404 588 824 828 5396 5395 +CQUAD4 5405 588 5380 5395 5397 5382 +CQUAD4 5406 588 5395 5396 5398 5397 +CQUAD4 5407 588 5382 5397 5399 5384 +CQUAD4 5408 588 5397 5398 5400 5399 +CQUAD4 5409 588 5384 5399 5401 5386 +CQUAD4 5410 588 5399 5400 5402 5401 +CQUAD4 5411 588 5386 5401 900 896 +CQUAD4 5412 588 5401 5402 904 900 +CQUAD4 5413 589 825 5391 5403 829 +CQUAD4 5414 589 5391 5392 5404 5403 +CQUAD4 5415 589 5392 5393 5405 5404 +CQUAD4 5416 589 5393 5394 5406 5405 +CQUAD4 5417 589 5394 901 905 5406 +CQUAD4 5418 589 829 5403 1841 833 +CQUAD4 5419 589 5403 5404 1842 1841 +CQUAD4 5420 589 5404 5405 1843 1842 +CQUAD4 5421 589 5405 5406 1844 1843 +CQUAD4 5422 589 5406 905 909 1844 +CQUAD4 5423 590 828 832 5407 5396 +CQUAD4 5424 590 832 836 1853 5407 +CQUAD4 5425 590 5396 5407 5408 5398 +CQUAD4 5426 590 5407 1853 1854 5408 +CQUAD4 5427 590 5398 5408 5409 5400 +CQUAD4 5428 590 5408 1854 1855 5409 +CQUAD4 5429 590 5400 5409 5410 5402 +CQUAD4 5430 590 5409 1855 1856 5410 +CQUAD4 5431 590 5402 5410 908 904 +CQUAD4 5432 590 5410 1856 912 908 +CQUAD4 5433 591 769 5123 5411 5279 +CQUAD4 5434 591 5123 5124 5412 5411 +CQUAD4 5435 591 5279 5411 5413 5280 +CQUAD4 5436 591 5411 5412 5414 5413 +CQUAD4 5437 591 5280 5413 5415 5281 +CQUAD4 5438 591 5413 5414 5416 5415 +CQUAD4 5439 591 5281 5415 5417 5282 +CQUAD4 5440 591 5415 5416 5418 5417 +CQUAD4 5441 591 5282 5417 5419 845 +CQUAD4 5442 591 5417 5418 5420 5419 +CQUAD4 5443 592 772 5133 5421 5284 +CQUAD4 5444 592 5133 5134 5422 5421 +CQUAD4 5445 592 5284 5421 5423 5286 +CQUAD4 5446 592 5421 5422 5424 5423 +CQUAD4 5447 592 5286 5423 5425 5288 +CQUAD4 5448 592 5423 5424 5426 5425 +CQUAD4 5449 592 5288 5425 5427 5290 +CQUAD4 5450 592 5425 5426 5428 5427 +CQUAD4 5451 592 5290 5427 5429 848 +CQUAD4 5452 592 5427 5428 5430 5429 +CQUAD4 5453 593 777 5143 5431 5295 +CQUAD4 5454 593 5143 5144 5432 5431 +CQUAD4 5455 593 5295 5431 5433 5296 +CQUAD4 5456 593 5431 5432 5434 5433 +CQUAD4 5457 593 5296 5433 5435 5297 +CQUAD4 5458 593 5433 5434 5436 5435 +CQUAD4 5459 593 5297 5435 5437 5298 +CQUAD4 5460 593 5435 5436 5438 5437 +CQUAD4 5461 593 5298 5437 5439 853 +CQUAD4 5462 593 5437 5438 5440 5439 +CQUAD4 5463 594 780 5153 5441 5300 +CQUAD4 5464 594 5153 5154 5442 5441 +CQUAD4 5465 594 5300 5441 5443 5302 +CQUAD4 5466 594 5441 5442 5444 5443 +CQUAD4 5467 594 5302 5443 5445 5304 +CQUAD4 5468 594 5443 5444 5446 5445 +CQUAD4 5469 594 5304 5445 5447 5306 +CQUAD4 5470 594 5445 5446 5448 5447 +CQUAD4 5471 594 5306 5447 5449 856 +CQUAD4 5472 594 5447 5448 5450 5449 +CQUAD4 5473 595 785 5163 5451 5311 +CQUAD4 5474 595 5163 5164 5452 5451 +CQUAD4 5475 595 5311 5451 5453 5312 +CQUAD4 5476 595 5451 5452 5454 5453 +CQUAD4 5477 595 5312 5453 5455 5313 +CQUAD4 5478 595 5453 5454 5456 5455 +CQUAD4 5479 595 5313 5455 5457 5314 +CQUAD4 5480 595 5455 5456 5458 5457 +CQUAD4 5481 595 5314 5457 5459 861 +CQUAD4 5482 595 5457 5458 5460 5459 +CQUAD4 5483 596 788 5173 5461 5316 +CQUAD4 5484 596 5173 5174 5462 5461 +CQUAD4 5485 596 5316 5461 5463 5318 +CQUAD4 5486 596 5461 5462 5464 5463 +CQUAD4 5487 596 5318 5463 5465 5320 +CQUAD4 5488 596 5463 5464 5466 5465 +CQUAD4 5489 596 5320 5465 5467 5322 +CQUAD4 5490 596 5465 5466 5468 5467 +CQUAD4 5491 596 5322 5467 5469 864 +CQUAD4 5492 596 5467 5468 5470 5469 +CQUAD4 5493 597 793 5183 5471 5327 +CQUAD4 5494 597 5183 5184 5472 5471 +CQUAD4 5495 597 5327 5471 5473 5328 +CQUAD4 5496 597 5471 5472 5474 5473 +CQUAD4 5497 597 5328 5473 5475 5329 +CQUAD4 5498 597 5473 5474 5476 5475 +CQUAD4 5499 597 5329 5475 5477 5330 +CQUAD4 5500 597 5475 5476 5478 5477 +CQUAD4 5501 597 5330 5477 5479 869 +CQUAD4 5502 597 5477 5478 5480 5479 +CQUAD4 5503 598 796 5193 5481 5332 +CQUAD4 5504 598 5193 5194 5482 5481 +CQUAD4 5505 598 5332 5481 5483 5334 +CQUAD4 5506 598 5481 5482 5484 5483 +CQUAD4 5507 598 5334 5483 5485 5336 +CQUAD4 5508 598 5483 5484 5486 5485 +CQUAD4 5509 598 5336 5485 5487 5338 +CQUAD4 5510 598 5485 5486 5488 5487 +CQUAD4 5511 598 5338 5487 5489 872 +CQUAD4 5512 598 5487 5488 5490 5489 +CQUAD4 5513 599 801 5203 5491 5343 +CQUAD4 5514 599 5203 5204 5492 5491 +CQUAD4 5515 599 5343 5491 5493 5344 +CQUAD4 5516 599 5491 5492 5494 5493 +CQUAD4 5517 599 5344 5493 5495 5345 +CQUAD4 5518 599 5493 5494 5496 5495 +CQUAD4 5519 599 5345 5495 5497 5346 +CQUAD4 5520 599 5495 5496 5498 5497 +CQUAD4 5521 599 5346 5497 5499 877 +CQUAD4 5522 599 5497 5498 5500 5499 +CQUAD4 5523 600 804 5213 5501 5348 +CQUAD4 5524 600 5213 5214 5502 5501 +CQUAD4 5525 600 5348 5501 5503 5350 +CQUAD4 5526 600 5501 5502 5504 5503 +CQUAD4 5527 600 5350 5503 5505 5352 +CQUAD4 5528 600 5503 5504 5506 5505 +CQUAD4 5529 600 5352 5505 5507 5354 +CQUAD4 5530 600 5505 5506 5508 5507 +CQUAD4 5531 600 5354 5507 5509 880 +CQUAD4 5532 600 5507 5508 5510 5509 +CQUAD4 5533 601 809 5223 5511 5359 +CQUAD4 5534 601 5223 5224 5512 5511 +CQUAD4 5535 601 5359 5511 5513 5360 +CQUAD4 5536 601 5511 5512 5514 5513 +CQUAD4 5537 601 5360 5513 5515 5361 +CQUAD4 5538 601 5513 5514 5516 5515 +CQUAD4 5539 601 5361 5515 5517 5362 +CQUAD4 5540 601 5515 5516 5518 5517 +CQUAD4 5541 601 5362 5517 5519 885 +CQUAD4 5542 601 5517 5518 5520 5519 +CQUAD4 5543 602 812 5233 5521 5364 +CQUAD4 5544 602 5233 5234 5522 5521 +CQUAD4 5545 602 5364 5521 5523 5366 +CQUAD4 5546 602 5521 5522 5524 5523 +CQUAD4 5547 602 5366 5523 5525 5368 +CQUAD4 5548 602 5523 5524 5526 5525 +CQUAD4 5549 602 5368 5525 5527 5370 +CQUAD4 5550 602 5525 5526 5528 5527 +CQUAD4 5551 602 5370 5527 5529 888 +CQUAD4 5552 602 5527 5528 5530 5529 +CQUAD4 5553 603 817 5243 5531 5375 +CQUAD4 5554 603 5243 5244 5532 5531 +CQUAD4 5555 603 5375 5531 5533 5376 +CQUAD4 5556 603 5531 5532 5534 5533 +CQUAD4 5557 603 5376 5533 5535 5377 +CQUAD4 5558 603 5533 5534 5536 5535 +CQUAD4 5559 603 5377 5535 5537 5378 +CQUAD4 5560 603 5535 5536 5538 5537 +CQUAD4 5561 603 5378 5537 5539 893 +CQUAD4 5562 603 5537 5538 5540 5539 +CQUAD4 5563 604 820 5253 5541 5380 +CQUAD4 5564 604 5253 5254 5542 5541 +CQUAD4 5565 604 5380 5541 5543 5382 +CQUAD4 5566 604 5541 5542 5544 5543 +CQUAD4 5567 604 5382 5543 5545 5384 +CQUAD4 5568 604 5543 5544 5546 5545 +CQUAD4 5569 604 5384 5545 5547 5386 +CQUAD4 5570 604 5545 5546 5548 5547 +CQUAD4 5571 604 5386 5547 5549 896 +CQUAD4 5572 604 5547 5548 5550 5549 +CQUAD4 5573 605 825 5263 5551 5391 +CQUAD4 5574 605 5263 5264 5552 5551 +CQUAD4 5575 605 5391 5551 5553 5392 +CQUAD4 5576 605 5551 5552 5554 5553 +CQUAD4 5577 605 5392 5553 5555 5393 +CQUAD4 5578 605 5553 5554 5556 5555 +CQUAD4 5579 605 5393 5555 5557 5394 +CQUAD4 5580 605 5555 5556 5558 5557 +CQUAD4 5581 605 5394 5557 5559 901 +CQUAD4 5582 605 5557 5558 5560 5559 +CQUAD4 5583 606 828 5273 5561 5396 +CQUAD4 5584 606 5273 5274 5562 5561 +CQUAD4 5585 606 5396 5561 5563 5398 +CQUAD4 5586 606 5561 5562 5564 5563 +CQUAD4 5587 606 5398 5563 5565 5400 +CQUAD4 5588 606 5563 5564 5566 5565 +CQUAD4 5589 606 5400 5565 5567 5402 +CQUAD4 5590 606 5565 5566 5568 5567 +CQUAD4 5591 606 5402 5567 5569 904 +CQUAD4 5592 606 5567 5568 5570 5569 +CQUAD4 5593 607 837 1565 5571 841 +CQUAD4 5594 607 1565 1566 5572 5571 +CQUAD4 5595 607 1566 1567 5573 5572 +CQUAD4 5596 607 1567 1568 5574 5573 +CQUAD4 5597 607 1568 913 917 5574 +CQUAD4 5598 607 841 5571 5575 845 +CQUAD4 5599 607 5571 5572 5576 5575 +CQUAD4 5600 607 5572 5573 5577 5576 +CQUAD4 5601 607 5573 5574 5578 5577 +CQUAD4 5602 607 5574 917 921 5578 +CQUAD4 5603 608 840 844 5579 1577 +CQUAD4 5604 608 844 848 5580 5579 +CQUAD4 5605 608 1577 5579 5581 1578 +CQUAD4 5606 608 5579 5580 5582 5581 +CQUAD4 5607 608 1578 5581 5583 1579 +CQUAD4 5608 608 5581 5582 5584 5583 +CQUAD4 5609 608 1579 5583 5585 1580 +CQUAD4 5610 608 5583 5584 5586 5585 +CQUAD4 5611 608 1580 5585 920 916 +CQUAD4 5612 608 5585 5586 924 920 +CQUAD4 5613 609 845 5575 5587 849 +CQUAD4 5614 609 5575 5576 5588 5587 +CQUAD4 5615 609 5576 5577 5589 5588 +CQUAD4 5616 609 5577 5578 5590 5589 +CQUAD4 5617 609 5578 921 925 5590 +CQUAD4 5618 609 849 5587 5591 853 +CQUAD4 5619 609 5587 5588 5592 5591 +CQUAD4 5620 609 5588 5589 5593 5592 +CQUAD4 5621 609 5589 5590 5594 5593 +CQUAD4 5622 609 5590 925 929 5594 +CQUAD4 5623 610 848 852 5595 5580 +CQUAD4 5624 610 852 856 5596 5595 +CQUAD4 5625 610 5580 5595 5597 5582 +CQUAD4 5626 610 5595 5596 5598 5597 +CQUAD4 5627 610 5582 5597 5599 5584 +CQUAD4 5628 610 5597 5598 5600 5599 +CQUAD4 5629 610 5584 5599 5601 5586 +CQUAD4 5630 610 5599 5600 5602 5601 +CQUAD4 5631 610 5586 5601 928 924 +CQUAD4 5632 610 5601 5602 932 928 +CQUAD4 5633 611 853 5591 5603 857 +CQUAD4 5634 611 5591 5592 5604 5603 +CQUAD4 5635 611 5592 5593 5605 5604 +CQUAD4 5636 611 5593 5594 5606 5605 +CQUAD4 5637 611 5594 929 933 5606 +CQUAD4 5638 611 857 5603 5607 861 +CQUAD4 5639 611 5603 5604 5608 5607 +CQUAD4 5640 611 5604 5605 5609 5608 +CQUAD4 5641 611 5605 5606 5610 5609 +CQUAD4 5642 611 5606 933 937 5610 +CQUAD4 5643 612 856 860 5611 5596 +CQUAD4 5644 612 860 864 5612 5611 +CQUAD4 5645 612 5596 5611 5613 5598 +CQUAD4 5646 612 5611 5612 5614 5613 +CQUAD4 5647 612 5598 5613 5615 5600 +CQUAD4 5648 612 5613 5614 5616 5615 +CQUAD4 5649 612 5600 5615 5617 5602 +CQUAD4 5650 612 5615 5616 5618 5617 +CQUAD4 5651 612 5602 5617 936 932 +CQUAD4 5652 612 5617 5618 940 936 +CQUAD4 5653 613 861 5607 5619 865 +CQUAD4 5654 613 5607 5608 5620 5619 +CQUAD4 5655 613 5608 5609 5621 5620 +CQUAD4 5656 613 5609 5610 5622 5621 +CQUAD4 5657 613 5610 937 941 5622 +CQUAD4 5658 613 865 5619 5623 869 +CQUAD4 5659 613 5619 5620 5624 5623 +CQUAD4 5660 613 5620 5621 5625 5624 +CQUAD4 5661 613 5621 5622 5626 5625 +CQUAD4 5662 613 5622 941 945 5626 +CQUAD4 5663 614 864 868 5627 5612 +CQUAD4 5664 614 868 872 5628 5627 +CQUAD4 5665 614 5612 5627 5629 5614 +CQUAD4 5666 614 5627 5628 5630 5629 +CQUAD4 5667 614 5614 5629 5631 5616 +CQUAD4 5668 614 5629 5630 5632 5631 +CQUAD4 5669 614 5616 5631 5633 5618 +CQUAD4 5670 614 5631 5632 5634 5633 +CQUAD4 5671 614 5618 5633 944 940 +CQUAD4 5672 614 5633 5634 948 944 +CQUAD4 5673 615 869 5623 5635 873 +CQUAD4 5674 615 5623 5624 5636 5635 +CQUAD4 5675 615 5624 5625 5637 5636 +CQUAD4 5676 615 5625 5626 5638 5637 +CQUAD4 5677 615 5626 945 949 5638 +CQUAD4 5678 615 873 5635 5639 877 +CQUAD4 5679 615 5635 5636 5640 5639 +CQUAD4 5680 615 5636 5637 5641 5640 +CQUAD4 5681 615 5637 5638 5642 5641 +CQUAD4 5682 615 5638 949 953 5642 +CQUAD4 5683 616 872 876 5643 5628 +CQUAD4 5684 616 876 880 5644 5643 +CQUAD4 5685 616 5628 5643 5645 5630 +CQUAD4 5686 616 5643 5644 5646 5645 +CQUAD4 5687 616 5630 5645 5647 5632 +CQUAD4 5688 616 5645 5646 5648 5647 +CQUAD4 5689 616 5632 5647 5649 5634 +CQUAD4 5690 616 5647 5648 5650 5649 +CQUAD4 5691 616 5634 5649 952 948 +CQUAD4 5692 616 5649 5650 956 952 +CQUAD4 5693 617 877 5639 5651 881 +CQUAD4 5694 617 5639 5640 5652 5651 +CQUAD4 5695 617 5640 5641 5653 5652 +CQUAD4 5696 617 5641 5642 5654 5653 +CQUAD4 5697 617 5642 953 957 5654 +CQUAD4 5698 617 881 5651 5655 885 +CQUAD4 5699 617 5651 5652 5656 5655 +CQUAD4 5700 617 5652 5653 5657 5656 +CQUAD4 5701 617 5653 5654 5658 5657 +CQUAD4 5702 617 5654 957 961 5658 +CQUAD4 5703 618 880 884 5659 5644 +CQUAD4 5704 618 884 888 5660 5659 +CQUAD4 5705 618 5644 5659 5661 5646 +CQUAD4 5706 618 5659 5660 5662 5661 +CQUAD4 5707 618 5646 5661 5663 5648 +CQUAD4 5708 618 5661 5662 5664 5663 +CQUAD4 5709 618 5648 5663 5665 5650 +CQUAD4 5710 618 5663 5664 5666 5665 +CQUAD4 5711 618 5650 5665 960 956 +CQUAD4 5712 618 5665 5666 964 960 +CQUAD4 5713 619 885 5655 5667 889 +CQUAD4 5714 619 5655 5656 5668 5667 +CQUAD4 5715 619 5656 5657 5669 5668 +CQUAD4 5716 619 5657 5658 5670 5669 +CQUAD4 5717 619 5658 961 965 5670 +CQUAD4 5718 619 889 5667 5671 893 +CQUAD4 5719 619 5667 5668 5672 5671 +CQUAD4 5720 619 5668 5669 5673 5672 +CQUAD4 5721 619 5669 5670 5674 5673 +CQUAD4 5722 619 5670 965 969 5674 +CQUAD4 5723 620 888 892 5675 5660 +CQUAD4 5724 620 892 896 5676 5675 +CQUAD4 5725 620 5660 5675 5677 5662 +CQUAD4 5726 620 5675 5676 5678 5677 +CQUAD4 5727 620 5662 5677 5679 5664 +CQUAD4 5728 620 5677 5678 5680 5679 +CQUAD4 5729 620 5664 5679 5681 5666 +CQUAD4 5730 620 5679 5680 5682 5681 +CQUAD4 5731 620 5666 5681 968 964 +CQUAD4 5732 620 5681 5682 972 968 +CQUAD4 5733 621 893 5671 5683 897 +CQUAD4 5734 621 5671 5672 5684 5683 +CQUAD4 5735 621 5672 5673 5685 5684 +CQUAD4 5736 621 5673 5674 5686 5685 +CQUAD4 5737 621 5674 969 973 5686 +CQUAD4 5738 621 897 5683 5687 901 +CQUAD4 5739 621 5683 5684 5688 5687 +CQUAD4 5740 621 5684 5685 5689 5688 +CQUAD4 5741 621 5685 5686 5690 5689 +CQUAD4 5742 621 5686 973 977 5690 +CQUAD4 5743 622 896 900 5691 5676 +CQUAD4 5744 622 900 904 5692 5691 +CQUAD4 5745 622 5676 5691 5693 5678 +CQUAD4 5746 622 5691 5692 5694 5693 +CQUAD4 5747 622 5678 5693 5695 5680 +CQUAD4 5748 622 5693 5694 5696 5695 +CQUAD4 5749 622 5680 5695 5697 5682 +CQUAD4 5750 622 5695 5696 5698 5697 +CQUAD4 5751 622 5682 5697 976 972 +CQUAD4 5752 622 5697 5698 980 976 +CQUAD4 5753 623 901 5687 5699 905 +CQUAD4 5754 623 5687 5688 5700 5699 +CQUAD4 5755 623 5688 5689 5701 5700 +CQUAD4 5756 623 5689 5690 5702 5701 +CQUAD4 5757 623 5690 977 981 5702 +CQUAD4 5758 623 905 5699 1857 909 +CQUAD4 5759 623 5699 5700 1858 1857 +CQUAD4 5760 623 5700 5701 1859 1858 +CQUAD4 5761 623 5701 5702 1860 1859 +CQUAD4 5762 623 5702 981 985 1860 +CQUAD4 5763 624 904 908 5703 5692 +CQUAD4 5764 624 908 912 1869 5703 +CQUAD4 5765 624 5692 5703 5704 5694 +CQUAD4 5766 624 5703 1869 1870 5704 +CQUAD4 5767 624 5694 5704 5705 5696 +CQUAD4 5768 624 5704 1870 1871 5705 +CQUAD4 5769 624 5696 5705 5706 5698 +CQUAD4 5770 624 5705 1871 1872 5706 +CQUAD4 5771 624 5698 5706 984 980 +CQUAD4 5772 624 5706 1872 988 984 +CQUAD4 5773 625 845 5419 5707 5575 +CQUAD4 5774 625 5419 5420 5708 5707 +CQUAD4 5775 625 5575 5707 5709 5576 +CQUAD4 5776 625 5707 5708 5710 5709 +CQUAD4 5777 625 5576 5709 5711 5577 +CQUAD4 5778 625 5709 5710 5712 5711 +CQUAD4 5779 625 5577 5711 5713 5578 +CQUAD4 5780 625 5711 5712 5714 5713 +CQUAD4 5781 625 5578 5713 5715 921 +CQUAD4 5782 625 5713 5714 5716 5715 +CQUAD4 5783 626 848 5429 5717 5580 +CQUAD4 5784 626 5429 5430 5718 5717 +CQUAD4 5785 626 5580 5717 5719 5582 +CQUAD4 5786 626 5717 5718 5720 5719 +CQUAD4 5787 626 5582 5719 5721 5584 +CQUAD4 5788 626 5719 5720 5722 5721 +CQUAD4 5789 626 5584 5721 5723 5586 +CQUAD4 5790 626 5721 5722 5724 5723 +CQUAD4 5791 626 5586 5723 5725 924 +CQUAD4 5792 626 5723 5724 5726 5725 +CQUAD4 5793 627 853 5439 5727 5591 +CQUAD4 5794 627 5439 5440 5728 5727 +CQUAD4 5795 627 5591 5727 5729 5592 +CQUAD4 5796 627 5727 5728 5730 5729 +CQUAD4 5797 627 5592 5729 5731 5593 +CQUAD4 5798 627 5729 5730 5732 5731 +CQUAD4 5799 627 5593 5731 5733 5594 +CQUAD4 5800 627 5731 5732 5734 5733 +CQUAD4 5801 627 5594 5733 5735 929 +CQUAD4 5802 627 5733 5734 5736 5735 +CQUAD4 5803 628 856 5449 5737 5596 +CQUAD4 5804 628 5449 5450 5738 5737 +CQUAD4 5805 628 5596 5737 5739 5598 +CQUAD4 5806 628 5737 5738 5740 5739 +CQUAD4 5807 628 5598 5739 5741 5600 +CQUAD4 5808 628 5739 5740 5742 5741 +CQUAD4 5809 628 5600 5741 5743 5602 +CQUAD4 5810 628 5741 5742 5744 5743 +CQUAD4 5811 628 5602 5743 5745 932 +CQUAD4 5812 628 5743 5744 5746 5745 +CQUAD4 5813 629 861 5459 5747 5607 +CQUAD4 5814 629 5459 5460 5748 5747 +CQUAD4 5815 629 5607 5747 5749 5608 +CQUAD4 5816 629 5747 5748 5750 5749 +CQUAD4 5817 629 5608 5749 5751 5609 +CQUAD4 5818 629 5749 5750 5752 5751 +CQUAD4 5819 629 5609 5751 5753 5610 +CQUAD4 5820 629 5751 5752 5754 5753 +CQUAD4 5821 629 5610 5753 5755 937 +CQUAD4 5822 629 5753 5754 5756 5755 +CQUAD4 5823 630 864 5469 5757 5612 +CQUAD4 5824 630 5469 5470 5758 5757 +CQUAD4 5825 630 5612 5757 5759 5614 +CQUAD4 5826 630 5757 5758 5760 5759 +CQUAD4 5827 630 5614 5759 5761 5616 +CQUAD4 5828 630 5759 5760 5762 5761 +CQUAD4 5829 630 5616 5761 5763 5618 +CQUAD4 5830 630 5761 5762 5764 5763 +CQUAD4 5831 630 5618 5763 5765 940 +CQUAD4 5832 630 5763 5764 5766 5765 +CQUAD4 5833 631 869 5479 5767 5623 +CQUAD4 5834 631 5479 5480 5768 5767 +CQUAD4 5835 631 5623 5767 5769 5624 +CQUAD4 5836 631 5767 5768 5770 5769 +CQUAD4 5837 631 5624 5769 5771 5625 +CQUAD4 5838 631 5769 5770 5772 5771 +CQUAD4 5839 631 5625 5771 5773 5626 +CQUAD4 5840 631 5771 5772 5774 5773 +CQUAD4 5841 631 5626 5773 5775 945 +CQUAD4 5842 631 5773 5774 5776 5775 +CQUAD4 5843 632 872 5489 5777 5628 +CQUAD4 5844 632 5489 5490 5778 5777 +CQUAD4 5845 632 5628 5777 5779 5630 +CQUAD4 5846 632 5777 5778 5780 5779 +CQUAD4 5847 632 5630 5779 5781 5632 +CQUAD4 5848 632 5779 5780 5782 5781 +CQUAD4 5849 632 5632 5781 5783 5634 +CQUAD4 5850 632 5781 5782 5784 5783 +CQUAD4 5851 632 5634 5783 5785 948 +CQUAD4 5852 632 5783 5784 5786 5785 +CQUAD4 5853 633 877 5499 5787 5639 +CQUAD4 5854 633 5499 5500 5788 5787 +CQUAD4 5855 633 5639 5787 5789 5640 +CQUAD4 5856 633 5787 5788 5790 5789 +CQUAD4 5857 633 5640 5789 5791 5641 +CQUAD4 5858 633 5789 5790 5792 5791 +CQUAD4 5859 633 5641 5791 5793 5642 +CQUAD4 5860 633 5791 5792 5794 5793 +CQUAD4 5861 633 5642 5793 5795 953 +CQUAD4 5862 633 5793 5794 5796 5795 +CQUAD4 5863 634 880 5509 5797 5644 +CQUAD4 5864 634 5509 5510 5798 5797 +CQUAD4 5865 634 5644 5797 5799 5646 +CQUAD4 5866 634 5797 5798 5800 5799 +CQUAD4 5867 634 5646 5799 5801 5648 +CQUAD4 5868 634 5799 5800 5802 5801 +CQUAD4 5869 634 5648 5801 5803 5650 +CQUAD4 5870 634 5801 5802 5804 5803 +CQUAD4 5871 634 5650 5803 5805 956 +CQUAD4 5872 634 5803 5804 5806 5805 +CQUAD4 5873 635 885 5519 5807 5655 +CQUAD4 5874 635 5519 5520 5808 5807 +CQUAD4 5875 635 5655 5807 5809 5656 +CQUAD4 5876 635 5807 5808 5810 5809 +CQUAD4 5877 635 5656 5809 5811 5657 +CQUAD4 5878 635 5809 5810 5812 5811 +CQUAD4 5879 635 5657 5811 5813 5658 +CQUAD4 5880 635 5811 5812 5814 5813 +CQUAD4 5881 635 5658 5813 5815 961 +CQUAD4 5882 635 5813 5814 5816 5815 +CQUAD4 5883 636 888 5529 5817 5660 +CQUAD4 5884 636 5529 5530 5818 5817 +CQUAD4 5885 636 5660 5817 5819 5662 +CQUAD4 5886 636 5817 5818 5820 5819 +CQUAD4 5887 636 5662 5819 5821 5664 +CQUAD4 5888 636 5819 5820 5822 5821 +CQUAD4 5889 636 5664 5821 5823 5666 +CQUAD4 5890 636 5821 5822 5824 5823 +CQUAD4 5891 636 5666 5823 5825 964 +CQUAD4 5892 636 5823 5824 5826 5825 +CQUAD4 5893 637 893 5539 5827 5671 +CQUAD4 5894 637 5539 5540 5828 5827 +CQUAD4 5895 637 5671 5827 5829 5672 +CQUAD4 5896 637 5827 5828 5830 5829 +CQUAD4 5897 637 5672 5829 5831 5673 +CQUAD4 5898 637 5829 5830 5832 5831 +CQUAD4 5899 637 5673 5831 5833 5674 +CQUAD4 5900 637 5831 5832 5834 5833 +CQUAD4 5901 637 5674 5833 5835 969 +CQUAD4 5902 637 5833 5834 5836 5835 +CQUAD4 5903 638 896 5549 5837 5676 +CQUAD4 5904 638 5549 5550 5838 5837 +CQUAD4 5905 638 5676 5837 5839 5678 +CQUAD4 5906 638 5837 5838 5840 5839 +CQUAD4 5907 638 5678 5839 5841 5680 +CQUAD4 5908 638 5839 5840 5842 5841 +CQUAD4 5909 638 5680 5841 5843 5682 +CQUAD4 5910 638 5841 5842 5844 5843 +CQUAD4 5911 638 5682 5843 5845 972 +CQUAD4 5912 638 5843 5844 5846 5845 +CQUAD4 5913 639 901 5559 5847 5687 +CQUAD4 5914 639 5559 5560 5848 5847 +CQUAD4 5915 639 5687 5847 5849 5688 +CQUAD4 5916 639 5847 5848 5850 5849 +CQUAD4 5917 639 5688 5849 5851 5689 +CQUAD4 5918 639 5849 5850 5852 5851 +CQUAD4 5919 639 5689 5851 5853 5690 +CQUAD4 5920 639 5851 5852 5854 5853 +CQUAD4 5921 639 5690 5853 5855 977 +CQUAD4 5922 639 5853 5854 5856 5855 +CQUAD4 5923 640 904 5569 5857 5692 +CQUAD4 5924 640 5569 5570 5858 5857 +CQUAD4 5925 640 5692 5857 5859 5694 +CQUAD4 5926 640 5857 5858 5860 5859 +CQUAD4 5927 640 5694 5859 5861 5696 +CQUAD4 5928 640 5859 5860 5862 5861 +CQUAD4 5929 640 5696 5861 5863 5698 +CQUAD4 5930 640 5861 5862 5864 5863 +CQUAD4 5931 640 5698 5863 5865 980 +CQUAD4 5932 640 5863 5864 5866 5865 +CQUAD4 5933 641 913 1581 5867 917 +CQUAD4 5934 641 1581 1582 5868 5867 +CQUAD4 5935 641 1582 1583 5869 5868 +CQUAD4 5936 641 1583 1584 5870 5869 +CQUAD4 5937 641 1584 989 993 5870 +CQUAD4 5938 641 917 5867 5871 921 +CQUAD4 5939 641 5867 5868 5872 5871 +CQUAD4 5940 641 5868 5869 5873 5872 +CQUAD4 5941 641 5869 5870 5874 5873 +CQUAD4 5942 641 5870 993 997 5874 +CQUAD4 5943 642 916 920 5875 1593 +CQUAD4 5944 642 920 924 5876 5875 +CQUAD4 5945 642 1593 5875 5877 1594 +CQUAD4 5946 642 5875 5876 5878 5877 +CQUAD4 5947 642 1594 5877 5879 1595 +CQUAD4 5948 642 5877 5878 5880 5879 +CQUAD4 5949 642 1595 5879 5881 1596 +CQUAD4 5950 642 5879 5880 5882 5881 +CQUAD4 5951 642 1596 5881 996 992 +CQUAD4 5952 642 5881 5882 1000 996 +CQUAD4 5953 643 921 5871 5883 925 +CQUAD4 5954 643 5871 5872 5884 5883 +CQUAD4 5955 643 5872 5873 5885 5884 +CQUAD4 5956 643 5873 5874 5886 5885 +CQUAD4 5957 643 5874 997 1001 5886 +CQUAD4 5958 643 925 5883 5887 929 +CQUAD4 5959 643 5883 5884 5888 5887 +CQUAD4 5960 643 5884 5885 5889 5888 +CQUAD4 5961 643 5885 5886 5890 5889 +CQUAD4 5962 643 5886 1001 1005 5890 +CQUAD4 5963 644 924 928 5891 5876 +CQUAD4 5964 644 928 932 5892 5891 +CQUAD4 5965 644 5876 5891 5893 5878 +CQUAD4 5966 644 5891 5892 5894 5893 +CQUAD4 5967 644 5878 5893 5895 5880 +CQUAD4 5968 644 5893 5894 5896 5895 +CQUAD4 5969 644 5880 5895 5897 5882 +CQUAD4 5970 644 5895 5896 5898 5897 +CQUAD4 5971 644 5882 5897 1004 1000 +CQUAD4 5972 644 5897 5898 1008 1004 +CQUAD4 5973 645 929 5887 5899 933 +CQUAD4 5974 645 5887 5888 5900 5899 +CQUAD4 5975 645 5888 5889 5901 5900 +CQUAD4 5976 645 5889 5890 5902 5901 +CQUAD4 5977 645 5890 1005 1009 5902 +CQUAD4 5978 645 933 5899 5903 937 +CQUAD4 5979 645 5899 5900 5904 5903 +CQUAD4 5980 645 5900 5901 5905 5904 +CQUAD4 5981 645 5901 5902 5906 5905 +CQUAD4 5982 645 5902 1009 1013 5906 +CQUAD4 5983 646 932 936 5907 5892 +CQUAD4 5984 646 936 940 5908 5907 +CQUAD4 5985 646 5892 5907 5909 5894 +CQUAD4 5986 646 5907 5908 5910 5909 +CQUAD4 5987 646 5894 5909 5911 5896 +CQUAD4 5988 646 5909 5910 5912 5911 +CQUAD4 5989 646 5896 5911 5913 5898 +CQUAD4 5990 646 5911 5912 5914 5913 +CQUAD4 5991 646 5898 5913 1012 1008 +CQUAD4 5992 646 5913 5914 1016 1012 +CQUAD4 5993 647 937 5903 5915 941 +CQUAD4 5994 647 5903 5904 5916 5915 +CQUAD4 5995 647 5904 5905 5917 5916 +CQUAD4 5996 647 5905 5906 5918 5917 +CQUAD4 5997 647 5906 1013 1017 5918 +CQUAD4 5998 647 941 5915 5919 945 +CQUAD4 5999 647 5915 5916 5920 5919 +CQUAD4 6000 647 5916 5917 5921 5920 +CQUAD4 6001 647 5917 5918 5922 5921 +CQUAD4 6002 647 5918 1017 1021 5922 +CQUAD4 6003 648 940 944 5923 5908 +CQUAD4 6004 648 944 948 5924 5923 +CQUAD4 6005 648 5908 5923 5925 5910 +CQUAD4 6006 648 5923 5924 5926 5925 +CQUAD4 6007 648 5910 5925 5927 5912 +CQUAD4 6008 648 5925 5926 5928 5927 +CQUAD4 6009 648 5912 5927 5929 5914 +CQUAD4 6010 648 5927 5928 5930 5929 +CQUAD4 6011 648 5914 5929 1020 1016 +CQUAD4 6012 648 5929 5930 1024 1020 +CQUAD4 6013 649 945 5919 5931 949 +CQUAD4 6014 649 5919 5920 5932 5931 +CQUAD4 6015 649 5920 5921 5933 5932 +CQUAD4 6016 649 5921 5922 5934 5933 +CQUAD4 6017 649 5922 1021 1025 5934 +CQUAD4 6018 649 949 5931 5935 953 +CQUAD4 6019 649 5931 5932 5936 5935 +CQUAD4 6020 649 5932 5933 5937 5936 +CQUAD4 6021 649 5933 5934 5938 5937 +CQUAD4 6022 649 5934 1025 1029 5938 +CQUAD4 6023 650 948 952 5939 5924 +CQUAD4 6024 650 952 956 5940 5939 +CQUAD4 6025 650 5924 5939 5941 5926 +CQUAD4 6026 650 5939 5940 5942 5941 +CQUAD4 6027 650 5926 5941 5943 5928 +CQUAD4 6028 650 5941 5942 5944 5943 +CQUAD4 6029 650 5928 5943 5945 5930 +CQUAD4 6030 650 5943 5944 5946 5945 +CQUAD4 6031 650 5930 5945 1028 1024 +CQUAD4 6032 650 5945 5946 1032 1028 +CQUAD4 6033 651 953 5935 5947 957 +CQUAD4 6034 651 5935 5936 5948 5947 +CQUAD4 6035 651 5936 5937 5949 5948 +CQUAD4 6036 651 5937 5938 5950 5949 +CQUAD4 6037 651 5938 1029 1033 5950 +CQUAD4 6038 651 957 5947 5951 961 +CQUAD4 6039 651 5947 5948 5952 5951 +CQUAD4 6040 651 5948 5949 5953 5952 +CQUAD4 6041 651 5949 5950 5954 5953 +CQUAD4 6042 651 5950 1033 1037 5954 +CQUAD4 6043 652 956 960 5955 5940 +CQUAD4 6044 652 960 964 5956 5955 +CQUAD4 6045 652 5940 5955 5957 5942 +CQUAD4 6046 652 5955 5956 5958 5957 +CQUAD4 6047 652 5942 5957 5959 5944 +CQUAD4 6048 652 5957 5958 5960 5959 +CQUAD4 6049 652 5944 5959 5961 5946 +CQUAD4 6050 652 5959 5960 5962 5961 +CQUAD4 6051 652 5946 5961 1036 1032 +CQUAD4 6052 652 5961 5962 1040 1036 +CQUAD4 6053 653 961 5951 5963 965 +CQUAD4 6054 653 5951 5952 5964 5963 +CQUAD4 6055 653 5952 5953 5965 5964 +CQUAD4 6056 653 5953 5954 5966 5965 +CQUAD4 6057 653 5954 1037 1041 5966 +CQUAD4 6058 653 965 5963 5967 969 +CQUAD4 6059 653 5963 5964 5968 5967 +CQUAD4 6060 653 5964 5965 5969 5968 +CQUAD4 6061 653 5965 5966 5970 5969 +CQUAD4 6062 653 5966 1041 1045 5970 +CQUAD4 6063 654 964 968 5971 5956 +CQUAD4 6064 654 968 972 5972 5971 +CQUAD4 6065 654 5956 5971 5973 5958 +CQUAD4 6066 654 5971 5972 5974 5973 +CQUAD4 6067 654 5958 5973 5975 5960 +CQUAD4 6068 654 5973 5974 5976 5975 +CQUAD4 6069 654 5960 5975 5977 5962 +CQUAD4 6070 654 5975 5976 5978 5977 +CQUAD4 6071 654 5962 5977 1044 1040 +CQUAD4 6072 654 5977 5978 1048 1044 +CQUAD4 6073 655 969 5967 5979 973 +CQUAD4 6074 655 5967 5968 5980 5979 +CQUAD4 6075 655 5968 5969 5981 5980 +CQUAD4 6076 655 5969 5970 5982 5981 +CQUAD4 6077 655 5970 1045 1049 5982 +CQUAD4 6078 655 973 5979 5983 977 +CQUAD4 6079 655 5979 5980 5984 5983 +CQUAD4 6080 655 5980 5981 5985 5984 +CQUAD4 6081 655 5981 5982 5986 5985 +CQUAD4 6082 655 5982 1049 1053 5986 +CQUAD4 6083 656 972 976 5987 5972 +CQUAD4 6084 656 976 980 5988 5987 +CQUAD4 6085 656 5972 5987 5989 5974 +CQUAD4 6086 656 5987 5988 5990 5989 +CQUAD4 6087 656 5974 5989 5991 5976 +CQUAD4 6088 656 5989 5990 5992 5991 +CQUAD4 6089 656 5976 5991 5993 5978 +CQUAD4 6090 656 5991 5992 5994 5993 +CQUAD4 6091 656 5978 5993 1052 1048 +CQUAD4 6092 656 5993 5994 1056 1052 +CQUAD4 6093 657 977 5983 5995 981 +CQUAD4 6094 657 5983 5984 5996 5995 +CQUAD4 6095 657 5984 5985 5997 5996 +CQUAD4 6096 657 5985 5986 5998 5997 +CQUAD4 6097 657 5986 1053 1057 5998 +CQUAD4 6098 657 981 5995 1873 985 +CQUAD4 6099 657 5995 5996 1874 1873 +CQUAD4 6100 657 5996 5997 1875 1874 +CQUAD4 6101 657 5997 5998 1876 1875 +CQUAD4 6102 657 5998 1057 1061 1876 +CQUAD4 6103 658 980 984 5999 5988 +CQUAD4 6104 658 984 988 1885 5999 +CQUAD4 6105 658 5988 5999 6000 5990 +CQUAD4 6106 658 5999 1885 1886 6000 +CQUAD4 6107 658 5990 6000 6001 5992 +CQUAD4 6108 658 6000 1886 1887 6001 +CQUAD4 6109 658 5992 6001 6002 5994 +CQUAD4 6110 658 6001 1887 1888 6002 +CQUAD4 6111 658 5994 6002 1060 1056 +CQUAD4 6112 658 6002 1888 1064 1060 +CQUAD4 6113 659 921 5715 6003 5871 +CQUAD4 6114 659 5715 5716 6004 6003 +CQUAD4 6115 659 5871 6003 6005 5872 +CQUAD4 6116 659 6003 6004 6006 6005 +CQUAD4 6117 659 5872 6005 6007 5873 +CQUAD4 6118 659 6005 6006 6008 6007 +CQUAD4 6119 659 5873 6007 6009 5874 +CQUAD4 6120 659 6007 6008 6010 6009 +CQUAD4 6121 659 5874 6009 6011 997 +CQUAD4 6122 659 6009 6010 6012 6011 +CQUAD4 6123 660 924 5725 6013 5876 +CQUAD4 6124 660 5725 5726 6014 6013 +CQUAD4 6125 660 5876 6013 6015 5878 +CQUAD4 6126 660 6013 6014 6016 6015 +CQUAD4 6127 660 5878 6015 6017 5880 +CQUAD4 6128 660 6015 6016 6018 6017 +CQUAD4 6129 660 5880 6017 6019 5882 +CQUAD4 6130 660 6017 6018 6020 6019 +CQUAD4 6131 660 5882 6019 6021 1000 +CQUAD4 6132 660 6019 6020 6022 6021 +CQUAD4 6133 661 929 5735 6023 5887 +CQUAD4 6134 661 5735 5736 6024 6023 +CQUAD4 6135 661 5887 6023 6025 5888 +CQUAD4 6136 661 6023 6024 6026 6025 +CQUAD4 6137 661 5888 6025 6027 5889 +CQUAD4 6138 661 6025 6026 6028 6027 +CQUAD4 6139 661 5889 6027 6029 5890 +CQUAD4 6140 661 6027 6028 6030 6029 +CQUAD4 6141 661 5890 6029 6031 1005 +CQUAD4 6142 661 6029 6030 6032 6031 +CQUAD4 6143 662 932 5745 6033 5892 +CQUAD4 6144 662 5745 5746 6034 6033 +CQUAD4 6145 662 5892 6033 6035 5894 +CQUAD4 6146 662 6033 6034 6036 6035 +CQUAD4 6147 662 5894 6035 6037 5896 +CQUAD4 6148 662 6035 6036 6038 6037 +CQUAD4 6149 662 5896 6037 6039 5898 +CQUAD4 6150 662 6037 6038 6040 6039 +CQUAD4 6151 662 5898 6039 6041 1008 +CQUAD4 6152 662 6039 6040 6042 6041 +CQUAD4 6153 663 937 5755 6043 5903 +CQUAD4 6154 663 5755 5756 6044 6043 +CQUAD4 6155 663 5903 6043 6045 5904 +CQUAD4 6156 663 6043 6044 6046 6045 +CQUAD4 6157 663 5904 6045 6047 5905 +CQUAD4 6158 663 6045 6046 6048 6047 +CQUAD4 6159 663 5905 6047 6049 5906 +CQUAD4 6160 663 6047 6048 6050 6049 +CQUAD4 6161 663 5906 6049 6051 1013 +CQUAD4 6162 663 6049 6050 6052 6051 +CQUAD4 6163 664 940 5765 6053 5908 +CQUAD4 6164 664 5765 5766 6054 6053 +CQUAD4 6165 664 5908 6053 6055 5910 +CQUAD4 6166 664 6053 6054 6056 6055 +CQUAD4 6167 664 5910 6055 6057 5912 +CQUAD4 6168 664 6055 6056 6058 6057 +CQUAD4 6169 664 5912 6057 6059 5914 +CQUAD4 6170 664 6057 6058 6060 6059 +CQUAD4 6171 664 5914 6059 6061 1016 +CQUAD4 6172 664 6059 6060 6062 6061 +CQUAD4 6173 665 945 5775 6063 5919 +CQUAD4 6174 665 5775 5776 6064 6063 +CQUAD4 6175 665 5919 6063 6065 5920 +CQUAD4 6176 665 6063 6064 6066 6065 +CQUAD4 6177 665 5920 6065 6067 5921 +CQUAD4 6178 665 6065 6066 6068 6067 +CQUAD4 6179 665 5921 6067 6069 5922 +CQUAD4 6180 665 6067 6068 6070 6069 +CQUAD4 6181 665 5922 6069 6071 1021 +CQUAD4 6182 665 6069 6070 6072 6071 +CQUAD4 6183 666 948 5785 6073 5924 +CQUAD4 6184 666 5785 5786 6074 6073 +CQUAD4 6185 666 5924 6073 6075 5926 +CQUAD4 6186 666 6073 6074 6076 6075 +CQUAD4 6187 666 5926 6075 6077 5928 +CQUAD4 6188 666 6075 6076 6078 6077 +CQUAD4 6189 666 5928 6077 6079 5930 +CQUAD4 6190 666 6077 6078 6080 6079 +CQUAD4 6191 666 5930 6079 6081 1024 +CQUAD4 6192 666 6079 6080 6082 6081 +CQUAD4 6193 667 953 5795 6083 5935 +CQUAD4 6194 667 5795 5796 6084 6083 +CQUAD4 6195 667 5935 6083 6085 5936 +CQUAD4 6196 667 6083 6084 6086 6085 +CQUAD4 6197 667 5936 6085 6087 5937 +CQUAD4 6198 667 6085 6086 6088 6087 +CQUAD4 6199 667 5937 6087 6089 5938 +CQUAD4 6200 667 6087 6088 6090 6089 +CQUAD4 6201 667 5938 6089 6091 1029 +CQUAD4 6202 667 6089 6090 6092 6091 +CQUAD4 6203 668 956 5805 6093 5940 +CQUAD4 6204 668 5805 5806 6094 6093 +CQUAD4 6205 668 5940 6093 6095 5942 +CQUAD4 6206 668 6093 6094 6096 6095 +CQUAD4 6207 668 5942 6095 6097 5944 +CQUAD4 6208 668 6095 6096 6098 6097 +CQUAD4 6209 668 5944 6097 6099 5946 +CQUAD4 6210 668 6097 6098 6100 6099 +CQUAD4 6211 668 5946 6099 6101 1032 +CQUAD4 6212 668 6099 6100 6102 6101 +CQUAD4 6213 669 961 5815 6103 5951 +CQUAD4 6214 669 5815 5816 6104 6103 +CQUAD4 6215 669 5951 6103 6105 5952 +CQUAD4 6216 669 6103 6104 6106 6105 +CQUAD4 6217 669 5952 6105 6107 5953 +CQUAD4 6218 669 6105 6106 6108 6107 +CQUAD4 6219 669 5953 6107 6109 5954 +CQUAD4 6220 669 6107 6108 6110 6109 +CQUAD4 6221 669 5954 6109 6111 1037 +CQUAD4 6222 669 6109 6110 6112 6111 +CQUAD4 6223 670 964 5825 6113 5956 +CQUAD4 6224 670 5825 5826 6114 6113 +CQUAD4 6225 670 5956 6113 6115 5958 +CQUAD4 6226 670 6113 6114 6116 6115 +CQUAD4 6227 670 5958 6115 6117 5960 +CQUAD4 6228 670 6115 6116 6118 6117 +CQUAD4 6229 670 5960 6117 6119 5962 +CQUAD4 6230 670 6117 6118 6120 6119 +CQUAD4 6231 670 5962 6119 6121 1040 +CQUAD4 6232 670 6119 6120 6122 6121 +CQUAD4 6233 671 969 5835 6123 5967 +CQUAD4 6234 671 5835 5836 6124 6123 +CQUAD4 6235 671 5967 6123 6125 5968 +CQUAD4 6236 671 6123 6124 6126 6125 +CQUAD4 6237 671 5968 6125 6127 5969 +CQUAD4 6238 671 6125 6126 6128 6127 +CQUAD4 6239 671 5969 6127 6129 5970 +CQUAD4 6240 671 6127 6128 6130 6129 +CQUAD4 6241 671 5970 6129 6131 1045 +CQUAD4 6242 671 6129 6130 6132 6131 +CQUAD4 6243 672 972 5845 6133 5972 +CQUAD4 6244 672 5845 5846 6134 6133 +CQUAD4 6245 672 5972 6133 6135 5974 +CQUAD4 6246 672 6133 6134 6136 6135 +CQUAD4 6247 672 5974 6135 6137 5976 +CQUAD4 6248 672 6135 6136 6138 6137 +CQUAD4 6249 672 5976 6137 6139 5978 +CQUAD4 6250 672 6137 6138 6140 6139 +CQUAD4 6251 672 5978 6139 6141 1048 +CQUAD4 6252 672 6139 6140 6142 6141 +CQUAD4 6253 673 977 5855 6143 5983 +CQUAD4 6254 673 5855 5856 6144 6143 +CQUAD4 6255 673 5983 6143 6145 5984 +CQUAD4 6256 673 6143 6144 6146 6145 +CQUAD4 6257 673 5984 6145 6147 5985 +CQUAD4 6258 673 6145 6146 6148 6147 +CQUAD4 6259 673 5985 6147 6149 5986 +CQUAD4 6260 673 6147 6148 6150 6149 +CQUAD4 6261 673 5986 6149 6151 1053 +CQUAD4 6262 673 6149 6150 6152 6151 +CQUAD4 6263 674 980 5865 6153 5988 +CQUAD4 6264 674 5865 5866 6154 6153 +CQUAD4 6265 674 5988 6153 6155 5990 +CQUAD4 6266 674 6153 6154 6156 6155 +CQUAD4 6267 674 5990 6155 6157 5992 +CQUAD4 6268 674 6155 6156 6158 6157 +CQUAD4 6269 674 5992 6157 6159 5994 +CQUAD4 6270 674 6157 6158 6160 6159 +CQUAD4 6271 674 5994 6159 6161 1056 +CQUAD4 6272 674 6159 6160 6162 6161 +CQUAD4 6273 675 989 1597 6163 993 +CQUAD4 6274 675 1597 1598 6164 6163 +CQUAD4 6275 675 1598 1599 6165 6164 +CQUAD4 6276 675 1599 1600 6166 6165 +CQUAD4 6277 675 1600 1065 1069 6166 +CQUAD4 6278 675 993 6163 6167 997 +CQUAD4 6279 675 6163 6164 6168 6167 +CQUAD4 6280 675 6164 6165 6169 6168 +CQUAD4 6281 675 6165 6166 6170 6169 +CQUAD4 6282 675 6166 1069 1073 6170 +CQUAD4 6283 676 992 996 6171 1609 +CQUAD4 6284 676 996 1000 6172 6171 +CQUAD4 6285 676 1609 6171 6173 1610 +CQUAD4 6286 676 6171 6172 6174 6173 +CQUAD4 6287 676 1610 6173 6175 1611 +CQUAD4 6288 676 6173 6174 6176 6175 +CQUAD4 6289 676 1611 6175 6177 1612 +CQUAD4 6290 676 6175 6176 6178 6177 +CQUAD4 6291 676 1612 6177 1072 1068 +CQUAD4 6292 676 6177 6178 1076 1072 +CQUAD4 6293 677 997 6167 6179 1001 +CQUAD4 6294 677 6167 6168 6180 6179 +CQUAD4 6295 677 6168 6169 6181 6180 +CQUAD4 6296 677 6169 6170 6182 6181 +CQUAD4 6297 677 6170 1073 1077 6182 +CQUAD4 6298 677 1001 6179 6183 1005 +CQUAD4 6299 677 6179 6180 6184 6183 +CQUAD4 6300 677 6180 6181 6185 6184 +CQUAD4 6301 677 6181 6182 6186 6185 +CQUAD4 6302 677 6182 1077 1081 6186 +CQUAD4 6303 678 1000 1004 6187 6172 +CQUAD4 6304 678 1004 1008 6188 6187 +CQUAD4 6305 678 6172 6187 6189 6174 +CQUAD4 6306 678 6187 6188 6190 6189 +CQUAD4 6307 678 6174 6189 6191 6176 +CQUAD4 6308 678 6189 6190 6192 6191 +CQUAD4 6309 678 6176 6191 6193 6178 +CQUAD4 6310 678 6191 6192 6194 6193 +CQUAD4 6311 678 6178 6193 1080 1076 +CQUAD4 6312 678 6193 6194 1084 1080 +CQUAD4 6313 679 1005 6183 6195 1009 +CQUAD4 6314 679 6183 6184 6196 6195 +CQUAD4 6315 679 6184 6185 6197 6196 +CQUAD4 6316 679 6185 6186 6198 6197 +CQUAD4 6317 679 6186 1081 1085 6198 +CQUAD4 6318 679 1009 6195 6199 1013 +CQUAD4 6319 679 6195 6196 6200 6199 +CQUAD4 6320 679 6196 6197 6201 6200 +CQUAD4 6321 679 6197 6198 6202 6201 +CQUAD4 6322 679 6198 1085 1089 6202 +CQUAD4 6323 680 1008 1012 6203 6188 +CQUAD4 6324 680 1012 1016 6204 6203 +CQUAD4 6325 680 6188 6203 6205 6190 +CQUAD4 6326 680 6203 6204 6206 6205 +CQUAD4 6327 680 6190 6205 6207 6192 +CQUAD4 6328 680 6205 6206 6208 6207 +CQUAD4 6329 680 6192 6207 6209 6194 +CQUAD4 6330 680 6207 6208 6210 6209 +CQUAD4 6331 680 6194 6209 1088 1084 +CQUAD4 6332 680 6209 6210 1092 1088 +CQUAD4 6333 681 1013 6199 6211 1017 +CQUAD4 6334 681 6199 6200 6212 6211 +CQUAD4 6335 681 6200 6201 6213 6212 +CQUAD4 6336 681 6201 6202 6214 6213 +CQUAD4 6337 681 6202 1089 1093 6214 +CQUAD4 6338 681 1017 6211 6215 1021 +CQUAD4 6339 681 6211 6212 6216 6215 +CQUAD4 6340 681 6212 6213 6217 6216 +CQUAD4 6341 681 6213 6214 6218 6217 +CQUAD4 6342 681 6214 1093 1097 6218 +CQUAD4 6343 682 1016 1020 6219 6204 +CQUAD4 6344 682 1020 1024 6220 6219 +CQUAD4 6345 682 6204 6219 6221 6206 +CQUAD4 6346 682 6219 6220 6222 6221 +CQUAD4 6347 682 6206 6221 6223 6208 +CQUAD4 6348 682 6221 6222 6224 6223 +CQUAD4 6349 682 6208 6223 6225 6210 +CQUAD4 6350 682 6223 6224 6226 6225 +CQUAD4 6351 682 6210 6225 1096 1092 +CQUAD4 6352 682 6225 6226 1100 1096 +CQUAD4 6353 683 1021 6215 6227 1025 +CQUAD4 6354 683 6215 6216 6228 6227 +CQUAD4 6355 683 6216 6217 6229 6228 +CQUAD4 6356 683 6217 6218 6230 6229 +CQUAD4 6357 683 6218 1097 1101 6230 +CQUAD4 6358 683 1025 6227 6231 1029 +CQUAD4 6359 683 6227 6228 6232 6231 +CQUAD4 6360 683 6228 6229 6233 6232 +CQUAD4 6361 683 6229 6230 6234 6233 +CQUAD4 6362 683 6230 1101 1105 6234 +CQUAD4 6363 684 1024 1028 6235 6220 +CQUAD4 6364 684 1028 1032 6236 6235 +CQUAD4 6365 684 6220 6235 6237 6222 +CQUAD4 6366 684 6235 6236 6238 6237 +CQUAD4 6367 684 6222 6237 6239 6224 +CQUAD4 6368 684 6237 6238 6240 6239 +CQUAD4 6369 684 6224 6239 6241 6226 +CQUAD4 6370 684 6239 6240 6242 6241 +CQUAD4 6371 684 6226 6241 1104 1100 +CQUAD4 6372 684 6241 6242 1108 1104 +CQUAD4 6373 685 1029 6231 6243 1033 +CQUAD4 6374 685 6231 6232 6244 6243 +CQUAD4 6375 685 6232 6233 6245 6244 +CQUAD4 6376 685 6233 6234 6246 6245 +CQUAD4 6377 685 6234 1105 1109 6246 +CQUAD4 6378 685 1033 6243 6247 1037 +CQUAD4 6379 685 6243 6244 6248 6247 +CQUAD4 6380 685 6244 6245 6249 6248 +CQUAD4 6381 685 6245 6246 6250 6249 +CQUAD4 6382 685 6246 1109 1113 6250 +CQUAD4 6383 686 1032 1036 6251 6236 +CQUAD4 6384 686 1036 1040 6252 6251 +CQUAD4 6385 686 6236 6251 6253 6238 +CQUAD4 6386 686 6251 6252 6254 6253 +CQUAD4 6387 686 6238 6253 6255 6240 +CQUAD4 6388 686 6253 6254 6256 6255 +CQUAD4 6389 686 6240 6255 6257 6242 +CQUAD4 6390 686 6255 6256 6258 6257 +CQUAD4 6391 686 6242 6257 1112 1108 +CQUAD4 6392 686 6257 6258 1116 1112 +CQUAD4 6393 687 1037 6247 6259 1041 +CQUAD4 6394 687 6247 6248 6260 6259 +CQUAD4 6395 687 6248 6249 6261 6260 +CQUAD4 6396 687 6249 6250 6262 6261 +CQUAD4 6397 687 6250 1113 1117 6262 +CQUAD4 6398 687 1041 6259 6263 1045 +CQUAD4 6399 687 6259 6260 6264 6263 +CQUAD4 6400 687 6260 6261 6265 6264 +CQUAD4 6401 687 6261 6262 6266 6265 +CQUAD4 6402 687 6262 1117 1121 6266 +CQUAD4 6403 688 1040 1044 6267 6252 +CQUAD4 6404 688 1044 1048 6268 6267 +CQUAD4 6405 688 6252 6267 6269 6254 +CQUAD4 6406 688 6267 6268 6270 6269 +CQUAD4 6407 688 6254 6269 6271 6256 +CQUAD4 6408 688 6269 6270 6272 6271 +CQUAD4 6409 688 6256 6271 6273 6258 +CQUAD4 6410 688 6271 6272 6274 6273 +CQUAD4 6411 688 6258 6273 1120 1116 +CQUAD4 6412 688 6273 6274 1124 1120 +CQUAD4 6413 689 1045 6263 6275 1049 +CQUAD4 6414 689 6263 6264 6276 6275 +CQUAD4 6415 689 6264 6265 6277 6276 +CQUAD4 6416 689 6265 6266 6278 6277 +CQUAD4 6417 689 6266 1121 1125 6278 +CQUAD4 6418 689 1049 6275 6279 1053 +CQUAD4 6419 689 6275 6276 6280 6279 +CQUAD4 6420 689 6276 6277 6281 6280 +CQUAD4 6421 689 6277 6278 6282 6281 +CQUAD4 6422 689 6278 1125 1129 6282 +CQUAD4 6423 690 1048 1052 6283 6268 +CQUAD4 6424 690 1052 1056 6284 6283 +CQUAD4 6425 690 6268 6283 6285 6270 +CQUAD4 6426 690 6283 6284 6286 6285 +CQUAD4 6427 690 6270 6285 6287 6272 +CQUAD4 6428 690 6285 6286 6288 6287 +CQUAD4 6429 690 6272 6287 6289 6274 +CQUAD4 6430 690 6287 6288 6290 6289 +CQUAD4 6431 690 6274 6289 1128 1124 +CQUAD4 6432 690 6289 6290 1132 1128 +CQUAD4 6433 691 1053 6279 6291 1057 +CQUAD4 6434 691 6279 6280 6292 6291 +CQUAD4 6435 691 6280 6281 6293 6292 +CQUAD4 6436 691 6281 6282 6294 6293 +CQUAD4 6437 691 6282 1129 1133 6294 +CQUAD4 6438 691 1057 6291 1889 1061 +CQUAD4 6439 691 6291 6292 1890 1889 +CQUAD4 6440 691 6292 6293 1891 1890 +CQUAD4 6441 691 6293 6294 1892 1891 +CQUAD4 6442 691 6294 1133 1137 1892 +CQUAD4 6443 692 1056 1060 6295 6284 +CQUAD4 6444 692 1060 1064 1901 6295 +CQUAD4 6445 692 6284 6295 6296 6286 +CQUAD4 6446 692 6295 1901 1902 6296 +CQUAD4 6447 692 6286 6296 6297 6288 +CQUAD4 6448 692 6296 1902 1903 6297 +CQUAD4 6449 692 6288 6297 6298 6290 +CQUAD4 6450 692 6297 1903 1904 6298 +CQUAD4 6451 692 6290 6298 1136 1132 +CQUAD4 6452 692 6298 1904 1140 1136 +CQUAD4 6453 693 997 6011 6299 6167 +CQUAD4 6454 693 6011 6012 6300 6299 +CQUAD4 6455 693 6167 6299 6301 6168 +CQUAD4 6456 693 6299 6300 6302 6301 +CQUAD4 6457 693 6168 6301 6303 6169 +CQUAD4 6458 693 6301 6302 6304 6303 +CQUAD4 6459 693 6169 6303 6305 6170 +CQUAD4 6460 693 6303 6304 6306 6305 +CQUAD4 6461 693 6170 6305 6307 1073 +CQUAD4 6462 693 6305 6306 6308 6307 +CQUAD4 6463 694 1000 6021 6309 6172 +CQUAD4 6464 694 6021 6022 6310 6309 +CQUAD4 6465 694 6172 6309 6311 6174 +CQUAD4 6466 694 6309 6310 6312 6311 +CQUAD4 6467 694 6174 6311 6313 6176 +CQUAD4 6468 694 6311 6312 6314 6313 +CQUAD4 6469 694 6176 6313 6315 6178 +CQUAD4 6470 694 6313 6314 6316 6315 +CQUAD4 6471 694 6178 6315 6317 1076 +CQUAD4 6472 694 6315 6316 6318 6317 +CQUAD4 6473 695 1005 6031 6319 6183 +CQUAD4 6474 695 6031 6032 6320 6319 +CQUAD4 6475 695 6183 6319 6321 6184 +CQUAD4 6476 695 6319 6320 6322 6321 +CQUAD4 6477 695 6184 6321 6323 6185 +CQUAD4 6478 695 6321 6322 6324 6323 +CQUAD4 6479 695 6185 6323 6325 6186 +CQUAD4 6480 695 6323 6324 6326 6325 +CQUAD4 6481 695 6186 6325 6327 1081 +CQUAD4 6482 695 6325 6326 6328 6327 +CQUAD4 6483 696 1008 6041 6329 6188 +CQUAD4 6484 696 6041 6042 6330 6329 +CQUAD4 6485 696 6188 6329 6331 6190 +CQUAD4 6486 696 6329 6330 6332 6331 +CQUAD4 6487 696 6190 6331 6333 6192 +CQUAD4 6488 696 6331 6332 6334 6333 +CQUAD4 6489 696 6192 6333 6335 6194 +CQUAD4 6490 696 6333 6334 6336 6335 +CQUAD4 6491 696 6194 6335 6337 1084 +CQUAD4 6492 696 6335 6336 6338 6337 +CQUAD4 6493 697 1013 6051 6339 6199 +CQUAD4 6494 697 6051 6052 6340 6339 +CQUAD4 6495 697 6199 6339 6341 6200 +CQUAD4 6496 697 6339 6340 6342 6341 +CQUAD4 6497 697 6200 6341 6343 6201 +CQUAD4 6498 697 6341 6342 6344 6343 +CQUAD4 6499 697 6201 6343 6345 6202 +CQUAD4 6500 697 6343 6344 6346 6345 +CQUAD4 6501 697 6202 6345 6347 1089 +CQUAD4 6502 697 6345 6346 6348 6347 +CQUAD4 6503 698 1016 6061 6349 6204 +CQUAD4 6504 698 6061 6062 6350 6349 +CQUAD4 6505 698 6204 6349 6351 6206 +CQUAD4 6506 698 6349 6350 6352 6351 +CQUAD4 6507 698 6206 6351 6353 6208 +CQUAD4 6508 698 6351 6352 6354 6353 +CQUAD4 6509 698 6208 6353 6355 6210 +CQUAD4 6510 698 6353 6354 6356 6355 +CQUAD4 6511 698 6210 6355 6357 1092 +CQUAD4 6512 698 6355 6356 6358 6357 +CQUAD4 6513 699 1021 6071 6359 6215 +CQUAD4 6514 699 6071 6072 6360 6359 +CQUAD4 6515 699 6215 6359 6361 6216 +CQUAD4 6516 699 6359 6360 6362 6361 +CQUAD4 6517 699 6216 6361 6363 6217 +CQUAD4 6518 699 6361 6362 6364 6363 +CQUAD4 6519 699 6217 6363 6365 6218 +CQUAD4 6520 699 6363 6364 6366 6365 +CQUAD4 6521 699 6218 6365 6367 1097 +CQUAD4 6522 699 6365 6366 6368 6367 +CQUAD4 6523 700 1024 6081 6369 6220 +CQUAD4 6524 700 6081 6082 6370 6369 +CQUAD4 6525 700 6220 6369 6371 6222 +CQUAD4 6526 700 6369 6370 6372 6371 +CQUAD4 6527 700 6222 6371 6373 6224 +CQUAD4 6528 700 6371 6372 6374 6373 +CQUAD4 6529 700 6224 6373 6375 6226 +CQUAD4 6530 700 6373 6374 6376 6375 +CQUAD4 6531 700 6226 6375 6377 1100 +CQUAD4 6532 700 6375 6376 6378 6377 +CQUAD4 6533 701 1029 6091 6379 6231 +CQUAD4 6534 701 6091 6092 6380 6379 +CQUAD4 6535 701 6231 6379 6381 6232 +CQUAD4 6536 701 6379 6380 6382 6381 +CQUAD4 6537 701 6232 6381 6383 6233 +CQUAD4 6538 701 6381 6382 6384 6383 +CQUAD4 6539 701 6233 6383 6385 6234 +CQUAD4 6540 701 6383 6384 6386 6385 +CQUAD4 6541 701 6234 6385 6387 1105 +CQUAD4 6542 701 6385 6386 6388 6387 +CQUAD4 6543 702 1032 6101 6389 6236 +CQUAD4 6544 702 6101 6102 6390 6389 +CQUAD4 6545 702 6236 6389 6391 6238 +CQUAD4 6546 702 6389 6390 6392 6391 +CQUAD4 6547 702 6238 6391 6393 6240 +CQUAD4 6548 702 6391 6392 6394 6393 +CQUAD4 6549 702 6240 6393 6395 6242 +CQUAD4 6550 702 6393 6394 6396 6395 +CQUAD4 6551 702 6242 6395 6397 1108 +CQUAD4 6552 702 6395 6396 6398 6397 +CQUAD4 6553 703 1037 6111 6399 6247 +CQUAD4 6554 703 6111 6112 6400 6399 +CQUAD4 6555 703 6247 6399 6401 6248 +CQUAD4 6556 703 6399 6400 6402 6401 +CQUAD4 6557 703 6248 6401 6403 6249 +CQUAD4 6558 703 6401 6402 6404 6403 +CQUAD4 6559 703 6249 6403 6405 6250 +CQUAD4 6560 703 6403 6404 6406 6405 +CQUAD4 6561 703 6250 6405 6407 1113 +CQUAD4 6562 703 6405 6406 6408 6407 +CQUAD4 6563 704 1040 6121 6409 6252 +CQUAD4 6564 704 6121 6122 6410 6409 +CQUAD4 6565 704 6252 6409 6411 6254 +CQUAD4 6566 704 6409 6410 6412 6411 +CQUAD4 6567 704 6254 6411 6413 6256 +CQUAD4 6568 704 6411 6412 6414 6413 +CQUAD4 6569 704 6256 6413 6415 6258 +CQUAD4 6570 704 6413 6414 6416 6415 +CQUAD4 6571 704 6258 6415 6417 1116 +CQUAD4 6572 704 6415 6416 6418 6417 +CQUAD4 6573 705 1045 6131 6419 6263 +CQUAD4 6574 705 6131 6132 6420 6419 +CQUAD4 6575 705 6263 6419 6421 6264 +CQUAD4 6576 705 6419 6420 6422 6421 +CQUAD4 6577 705 6264 6421 6423 6265 +CQUAD4 6578 705 6421 6422 6424 6423 +CQUAD4 6579 705 6265 6423 6425 6266 +CQUAD4 6580 705 6423 6424 6426 6425 +CQUAD4 6581 705 6266 6425 6427 1121 +CQUAD4 6582 705 6425 6426 6428 6427 +CQUAD4 6583 706 1048 6141 6429 6268 +CQUAD4 6584 706 6141 6142 6430 6429 +CQUAD4 6585 706 6268 6429 6431 6270 +CQUAD4 6586 706 6429 6430 6432 6431 +CQUAD4 6587 706 6270 6431 6433 6272 +CQUAD4 6588 706 6431 6432 6434 6433 +CQUAD4 6589 706 6272 6433 6435 6274 +CQUAD4 6590 706 6433 6434 6436 6435 +CQUAD4 6591 706 6274 6435 6437 1124 +CQUAD4 6592 706 6435 6436 6438 6437 +CQUAD4 6593 707 1053 6151 6439 6279 +CQUAD4 6594 707 6151 6152 6440 6439 +CQUAD4 6595 707 6279 6439 6441 6280 +CQUAD4 6596 707 6439 6440 6442 6441 +CQUAD4 6597 707 6280 6441 6443 6281 +CQUAD4 6598 707 6441 6442 6444 6443 +CQUAD4 6599 707 6281 6443 6445 6282 +CQUAD4 6600 707 6443 6444 6446 6445 +CQUAD4 6601 707 6282 6445 6447 1129 +CQUAD4 6602 707 6445 6446 6448 6447 +CQUAD4 6603 708 1056 6161 6449 6284 +CQUAD4 6604 708 6161 6162 6450 6449 +CQUAD4 6605 708 6284 6449 6451 6286 +CQUAD4 6606 708 6449 6450 6452 6451 +CQUAD4 6607 708 6286 6451 6453 6288 +CQUAD4 6608 708 6451 6452 6454 6453 +CQUAD4 6609 708 6288 6453 6455 6290 +CQUAD4 6610 708 6453 6454 6456 6455 +CQUAD4 6611 708 6290 6455 6457 1132 +CQUAD4 6612 708 6455 6456 6458 6457 +CQUAD4 6613 709 1065 1613 6459 1069 +CQUAD4 6614 709 1613 1614 6460 6459 +CQUAD4 6615 709 1614 1615 6461 6460 +CQUAD4 6616 709 1615 1616 6462 6461 +CQUAD4 6617 709 1616 1141 1145 6462 +CQUAD4 6618 709 1069 6459 6463 1073 +CQUAD4 6619 709 6459 6460 6464 6463 +CQUAD4 6620 709 6460 6461 6465 6464 +CQUAD4 6621 709 6461 6462 6466 6465 +CQUAD4 6622 709 6462 1145 1149 6466 +CQUAD4 6623 710 1068 1072 6467 1625 +CQUAD4 6624 710 1072 1076 6468 6467 +CQUAD4 6625 710 1625 6467 6469 1626 +CQUAD4 6626 710 6467 6468 6470 6469 +CQUAD4 6627 710 1626 6469 6471 1627 +CQUAD4 6628 710 6469 6470 6472 6471 +CQUAD4 6629 710 1627 6471 6473 1628 +CQUAD4 6630 710 6471 6472 6474 6473 +CQUAD4 6631 710 1628 6473 1148 1144 +CQUAD4 6632 710 6473 6474 1152 1148 +CQUAD4 6633 711 1073 6463 6475 1077 +CQUAD4 6634 711 6463 6464 6476 6475 +CQUAD4 6635 711 6464 6465 6477 6476 +CQUAD4 6636 711 6465 6466 6478 6477 +CQUAD4 6637 711 6466 1149 1153 6478 +CQUAD4 6638 711 1077 6475 6479 1081 +CQUAD4 6639 711 6475 6476 6480 6479 +CQUAD4 6640 711 6476 6477 6481 6480 +CQUAD4 6641 711 6477 6478 6482 6481 +CQUAD4 6642 711 6478 1153 1157 6482 +CQUAD4 6643 712 1076 1080 6483 6468 +CQUAD4 6644 712 1080 1084 6484 6483 +CQUAD4 6645 712 6468 6483 6485 6470 +CQUAD4 6646 712 6483 6484 6486 6485 +CQUAD4 6647 712 6470 6485 6487 6472 +CQUAD4 6648 712 6485 6486 6488 6487 +CQUAD4 6649 712 6472 6487 6489 6474 +CQUAD4 6650 712 6487 6488 6490 6489 +CQUAD4 6651 712 6474 6489 1156 1152 +CQUAD4 6652 712 6489 6490 1160 1156 +CQUAD4 6653 713 1081 6479 6491 1085 +CQUAD4 6654 713 6479 6480 6492 6491 +CQUAD4 6655 713 6480 6481 6493 6492 +CQUAD4 6656 713 6481 6482 6494 6493 +CQUAD4 6657 713 6482 1157 1161 6494 +CQUAD4 6658 713 1085 6491 6495 1089 +CQUAD4 6659 713 6491 6492 6496 6495 +CQUAD4 6660 713 6492 6493 6497 6496 +CQUAD4 6661 713 6493 6494 6498 6497 +CQUAD4 6662 713 6494 1161 1165 6498 +CQUAD4 6663 714 1084 1088 6499 6484 +CQUAD4 6664 714 1088 1092 6500 6499 +CQUAD4 6665 714 6484 6499 6501 6486 +CQUAD4 6666 714 6499 6500 6502 6501 +CQUAD4 6667 714 6486 6501 6503 6488 +CQUAD4 6668 714 6501 6502 6504 6503 +CQUAD4 6669 714 6488 6503 6505 6490 +CQUAD4 6670 714 6503 6504 6506 6505 +CQUAD4 6671 714 6490 6505 1164 1160 +CQUAD4 6672 714 6505 6506 1168 1164 +CQUAD4 6673 715 1089 6495 6507 1093 +CQUAD4 6674 715 6495 6496 6508 6507 +CQUAD4 6675 715 6496 6497 6509 6508 +CQUAD4 6676 715 6497 6498 6510 6509 +CQUAD4 6677 715 6498 1165 1169 6510 +CQUAD4 6678 715 1093 6507 6511 1097 +CQUAD4 6679 715 6507 6508 6512 6511 +CQUAD4 6680 715 6508 6509 6513 6512 +CQUAD4 6681 715 6509 6510 6514 6513 +CQUAD4 6682 715 6510 1169 1173 6514 +CQUAD4 6683 716 1092 1096 6515 6500 +CQUAD4 6684 716 1096 1100 6516 6515 +CQUAD4 6685 716 6500 6515 6517 6502 +CQUAD4 6686 716 6515 6516 6518 6517 +CQUAD4 6687 716 6502 6517 6519 6504 +CQUAD4 6688 716 6517 6518 6520 6519 +CQUAD4 6689 716 6504 6519 6521 6506 +CQUAD4 6690 716 6519 6520 6522 6521 +CQUAD4 6691 716 6506 6521 1172 1168 +CQUAD4 6692 716 6521 6522 1176 1172 +CQUAD4 6693 717 1097 6511 6523 1101 +CQUAD4 6694 717 6511 6512 6524 6523 +CQUAD4 6695 717 6512 6513 6525 6524 +CQUAD4 6696 717 6513 6514 6526 6525 +CQUAD4 6697 717 6514 1173 1177 6526 +CQUAD4 6698 717 1101 6523 6527 1105 +CQUAD4 6699 717 6523 6524 6528 6527 +CQUAD4 6700 717 6524 6525 6529 6528 +CQUAD4 6701 717 6525 6526 6530 6529 +CQUAD4 6702 717 6526 1177 1181 6530 +CQUAD4 6703 718 1100 1104 6531 6516 +CQUAD4 6704 718 1104 1108 6532 6531 +CQUAD4 6705 718 6516 6531 6533 6518 +CQUAD4 6706 718 6531 6532 6534 6533 +CQUAD4 6707 718 6518 6533 6535 6520 +CQUAD4 6708 718 6533 6534 6536 6535 +CQUAD4 6709 718 6520 6535 6537 6522 +CQUAD4 6710 718 6535 6536 6538 6537 +CQUAD4 6711 718 6522 6537 1180 1176 +CQUAD4 6712 718 6537 6538 1184 1180 +CQUAD4 6713 719 1105 6527 6539 1109 +CQUAD4 6714 719 6527 6528 6540 6539 +CQUAD4 6715 719 6528 6529 6541 6540 +CQUAD4 6716 719 6529 6530 6542 6541 +CQUAD4 6717 719 6530 1181 1185 6542 +CQUAD4 6718 719 1109 6539 6543 1113 +CQUAD4 6719 719 6539 6540 6544 6543 +CQUAD4 6720 719 6540 6541 6545 6544 +CQUAD4 6721 719 6541 6542 6546 6545 +CQUAD4 6722 719 6542 1185 1189 6546 +CQUAD4 6723 720 1108 1112 6547 6532 +CQUAD4 6724 720 1112 1116 6548 6547 +CQUAD4 6725 720 6532 6547 6549 6534 +CQUAD4 6726 720 6547 6548 6550 6549 +CQUAD4 6727 720 6534 6549 6551 6536 +CQUAD4 6728 720 6549 6550 6552 6551 +CQUAD4 6729 720 6536 6551 6553 6538 +CQUAD4 6730 720 6551 6552 6554 6553 +CQUAD4 6731 720 6538 6553 1188 1184 +CQUAD4 6732 720 6553 6554 1192 1188 +CQUAD4 6733 721 1113 6543 6555 1117 +CQUAD4 6734 721 6543 6544 6556 6555 +CQUAD4 6735 721 6544 6545 6557 6556 +CQUAD4 6736 721 6545 6546 6558 6557 +CQUAD4 6737 721 6546 1189 1193 6558 +CQUAD4 6738 721 1117 6555 6559 1121 +CQUAD4 6739 721 6555 6556 6560 6559 +CQUAD4 6740 721 6556 6557 6561 6560 +CQUAD4 6741 721 6557 6558 6562 6561 +CQUAD4 6742 721 6558 1193 1197 6562 +CQUAD4 6743 722 1116 1120 6563 6548 +CQUAD4 6744 722 1120 1124 6564 6563 +CQUAD4 6745 722 6548 6563 6565 6550 +CQUAD4 6746 722 6563 6564 6566 6565 +CQUAD4 6747 722 6550 6565 6567 6552 +CQUAD4 6748 722 6565 6566 6568 6567 +CQUAD4 6749 722 6552 6567 6569 6554 +CQUAD4 6750 722 6567 6568 6570 6569 +CQUAD4 6751 722 6554 6569 1196 1192 +CQUAD4 6752 722 6569 6570 1200 1196 +CQUAD4 6753 723 1121 6559 6571 1125 +CQUAD4 6754 723 6559 6560 6572 6571 +CQUAD4 6755 723 6560 6561 6573 6572 +CQUAD4 6756 723 6561 6562 6574 6573 +CQUAD4 6757 723 6562 1197 1201 6574 +CQUAD4 6758 723 1125 6571 6575 1129 +CQUAD4 6759 723 6571 6572 6576 6575 +CQUAD4 6760 723 6572 6573 6577 6576 +CQUAD4 6761 723 6573 6574 6578 6577 +CQUAD4 6762 723 6574 1201 1205 6578 +CQUAD4 6763 724 1124 1128 6579 6564 +CQUAD4 6764 724 1128 1132 6580 6579 +CQUAD4 6765 724 6564 6579 6581 6566 +CQUAD4 6766 724 6579 6580 6582 6581 +CQUAD4 6767 724 6566 6581 6583 6568 +CQUAD4 6768 724 6581 6582 6584 6583 +CQUAD4 6769 724 6568 6583 6585 6570 +CQUAD4 6770 724 6583 6584 6586 6585 +CQUAD4 6771 724 6570 6585 1204 1200 +CQUAD4 6772 724 6585 6586 1208 1204 +CQUAD4 6773 725 1129 6575 6587 1133 +CQUAD4 6774 725 6575 6576 6588 6587 +CQUAD4 6775 725 6576 6577 6589 6588 +CQUAD4 6776 725 6577 6578 6590 6589 +CQUAD4 6777 725 6578 1205 1209 6590 +CQUAD4 6778 725 1133 6587 1905 1137 +CQUAD4 6779 725 6587 6588 1906 1905 +CQUAD4 6780 725 6588 6589 1907 1906 +CQUAD4 6781 725 6589 6590 1908 1907 +CQUAD4 6782 725 6590 1209 1213 1908 +CQUAD4 6783 726 1132 1136 6591 6580 +CQUAD4 6784 726 1136 1140 1917 6591 +CQUAD4 6785 726 6580 6591 6592 6582 +CQUAD4 6786 726 6591 1917 1918 6592 +CQUAD4 6787 726 6582 6592 6593 6584 +CQUAD4 6788 726 6592 1918 1919 6593 +CQUAD4 6789 726 6584 6593 6594 6586 +CQUAD4 6790 726 6593 1919 1920 6594 +CQUAD4 6791 726 6586 6594 1212 1208 +CQUAD4 6792 726 6594 1920 1216 1212 +CQUAD4 6793 727 1073 6307 6595 6463 +CQUAD4 6794 727 6307 6308 6596 6595 +CQUAD4 6795 727 6463 6595 6597 6464 +CQUAD4 6796 727 6595 6596 6598 6597 +CQUAD4 6797 727 6464 6597 6599 6465 +CQUAD4 6798 727 6597 6598 6600 6599 +CQUAD4 6799 727 6465 6599 6601 6466 +CQUAD4 6800 727 6599 6600 6602 6601 +CQUAD4 6801 727 6466 6601 6603 1149 +CQUAD4 6802 727 6601 6602 6604 6603 +CQUAD4 6803 728 1076 6317 6605 6468 +CQUAD4 6804 728 6317 6318 6606 6605 +CQUAD4 6805 728 6468 6605 6607 6470 +CQUAD4 6806 728 6605 6606 6608 6607 +CQUAD4 6807 728 6470 6607 6609 6472 +CQUAD4 6808 728 6607 6608 6610 6609 +CQUAD4 6809 728 6472 6609 6611 6474 +CQUAD4 6810 728 6609 6610 6612 6611 +CQUAD4 6811 728 6474 6611 6613 1152 +CQUAD4 6812 728 6611 6612 6614 6613 +CQUAD4 6813 729 1081 6327 6615 6479 +CQUAD4 6814 729 6327 6328 6616 6615 +CQUAD4 6815 729 6479 6615 6617 6480 +CQUAD4 6816 729 6615 6616 6618 6617 +CQUAD4 6817 729 6480 6617 6619 6481 +CQUAD4 6818 729 6617 6618 6620 6619 +CQUAD4 6819 729 6481 6619 6621 6482 +CQUAD4 6820 729 6619 6620 6622 6621 +CQUAD4 6821 729 6482 6621 6623 1157 +CQUAD4 6822 729 6621 6622 6624 6623 +CQUAD4 6823 730 1084 6337 6625 6484 +CQUAD4 6824 730 6337 6338 6626 6625 +CQUAD4 6825 730 6484 6625 6627 6486 +CQUAD4 6826 730 6625 6626 6628 6627 +CQUAD4 6827 730 6486 6627 6629 6488 +CQUAD4 6828 730 6627 6628 6630 6629 +CQUAD4 6829 730 6488 6629 6631 6490 +CQUAD4 6830 730 6629 6630 6632 6631 +CQUAD4 6831 730 6490 6631 6633 1160 +CQUAD4 6832 730 6631 6632 6634 6633 +CQUAD4 6833 731 1089 6347 6635 6495 +CQUAD4 6834 731 6347 6348 6636 6635 +CQUAD4 6835 731 6495 6635 6637 6496 +CQUAD4 6836 731 6635 6636 6638 6637 +CQUAD4 6837 731 6496 6637 6639 6497 +CQUAD4 6838 731 6637 6638 6640 6639 +CQUAD4 6839 731 6497 6639 6641 6498 +CQUAD4 6840 731 6639 6640 6642 6641 +CQUAD4 6841 731 6498 6641 6643 1165 +CQUAD4 6842 731 6641 6642 6644 6643 +CQUAD4 6843 732 1092 6357 6645 6500 +CQUAD4 6844 732 6357 6358 6646 6645 +CQUAD4 6845 732 6500 6645 6647 6502 +CQUAD4 6846 732 6645 6646 6648 6647 +CQUAD4 6847 732 6502 6647 6649 6504 +CQUAD4 6848 732 6647 6648 6650 6649 +CQUAD4 6849 732 6504 6649 6651 6506 +CQUAD4 6850 732 6649 6650 6652 6651 +CQUAD4 6851 732 6506 6651 6653 1168 +CQUAD4 6852 732 6651 6652 6654 6653 +CQUAD4 6853 733 1097 6367 6655 6511 +CQUAD4 6854 733 6367 6368 6656 6655 +CQUAD4 6855 733 6511 6655 6657 6512 +CQUAD4 6856 733 6655 6656 6658 6657 +CQUAD4 6857 733 6512 6657 6659 6513 +CQUAD4 6858 733 6657 6658 6660 6659 +CQUAD4 6859 733 6513 6659 6661 6514 +CQUAD4 6860 733 6659 6660 6662 6661 +CQUAD4 6861 733 6514 6661 6663 1173 +CQUAD4 6862 733 6661 6662 6664 6663 +CQUAD4 6863 734 1100 6377 6665 6516 +CQUAD4 6864 734 6377 6378 6666 6665 +CQUAD4 6865 734 6516 6665 6667 6518 +CQUAD4 6866 734 6665 6666 6668 6667 +CQUAD4 6867 734 6518 6667 6669 6520 +CQUAD4 6868 734 6667 6668 6670 6669 +CQUAD4 6869 734 6520 6669 6671 6522 +CQUAD4 6870 734 6669 6670 6672 6671 +CQUAD4 6871 734 6522 6671 6673 1176 +CQUAD4 6872 734 6671 6672 6674 6673 +CQUAD4 6873 735 1105 6387 6675 6527 +CQUAD4 6874 735 6387 6388 6676 6675 +CQUAD4 6875 735 6527 6675 6677 6528 +CQUAD4 6876 735 6675 6676 6678 6677 +CQUAD4 6877 735 6528 6677 6679 6529 +CQUAD4 6878 735 6677 6678 6680 6679 +CQUAD4 6879 735 6529 6679 6681 6530 +CQUAD4 6880 735 6679 6680 6682 6681 +CQUAD4 6881 735 6530 6681 6683 1181 +CQUAD4 6882 735 6681 6682 6684 6683 +CQUAD4 6883 736 1108 6397 6685 6532 +CQUAD4 6884 736 6397 6398 6686 6685 +CQUAD4 6885 736 6532 6685 6687 6534 +CQUAD4 6886 736 6685 6686 6688 6687 +CQUAD4 6887 736 6534 6687 6689 6536 +CQUAD4 6888 736 6687 6688 6690 6689 +CQUAD4 6889 736 6536 6689 6691 6538 +CQUAD4 6890 736 6689 6690 6692 6691 +CQUAD4 6891 736 6538 6691 6693 1184 +CQUAD4 6892 736 6691 6692 6694 6693 +CQUAD4 6893 737 1113 6407 6695 6543 +CQUAD4 6894 737 6407 6408 6696 6695 +CQUAD4 6895 737 6543 6695 6697 6544 +CQUAD4 6896 737 6695 6696 6698 6697 +CQUAD4 6897 737 6544 6697 6699 6545 +CQUAD4 6898 737 6697 6698 6700 6699 +CQUAD4 6899 737 6545 6699 6701 6546 +CQUAD4 6900 737 6699 6700 6702 6701 +CQUAD4 6901 737 6546 6701 6703 1189 +CQUAD4 6902 737 6701 6702 6704 6703 +CQUAD4 6903 738 1116 6417 6705 6548 +CQUAD4 6904 738 6417 6418 6706 6705 +CQUAD4 6905 738 6548 6705 6707 6550 +CQUAD4 6906 738 6705 6706 6708 6707 +CQUAD4 6907 738 6550 6707 6709 6552 +CQUAD4 6908 738 6707 6708 6710 6709 +CQUAD4 6909 738 6552 6709 6711 6554 +CQUAD4 6910 738 6709 6710 6712 6711 +CQUAD4 6911 738 6554 6711 6713 1192 +CQUAD4 6912 738 6711 6712 6714 6713 +CQUAD4 6913 739 1121 6427 6715 6559 +CQUAD4 6914 739 6427 6428 6716 6715 +CQUAD4 6915 739 6559 6715 6717 6560 +CQUAD4 6916 739 6715 6716 6718 6717 +CQUAD4 6917 739 6560 6717 6719 6561 +CQUAD4 6918 739 6717 6718 6720 6719 +CQUAD4 6919 739 6561 6719 6721 6562 +CQUAD4 6920 739 6719 6720 6722 6721 +CQUAD4 6921 739 6562 6721 6723 1197 +CQUAD4 6922 739 6721 6722 6724 6723 +CQUAD4 6923 740 1124 6437 6725 6564 +CQUAD4 6924 740 6437 6438 6726 6725 +CQUAD4 6925 740 6564 6725 6727 6566 +CQUAD4 6926 740 6725 6726 6728 6727 +CQUAD4 6927 740 6566 6727 6729 6568 +CQUAD4 6928 740 6727 6728 6730 6729 +CQUAD4 6929 740 6568 6729 6731 6570 +CQUAD4 6930 740 6729 6730 6732 6731 +CQUAD4 6931 740 6570 6731 6733 1200 +CQUAD4 6932 740 6731 6732 6734 6733 +CQUAD4 6933 741 1129 6447 6735 6575 +CQUAD4 6934 741 6447 6448 6736 6735 +CQUAD4 6935 741 6575 6735 6737 6576 +CQUAD4 6936 741 6735 6736 6738 6737 +CQUAD4 6937 741 6576 6737 6739 6577 +CQUAD4 6938 741 6737 6738 6740 6739 +CQUAD4 6939 741 6577 6739 6741 6578 +CQUAD4 6940 741 6739 6740 6742 6741 +CQUAD4 6941 741 6578 6741 6743 1205 +CQUAD4 6942 741 6741 6742 6744 6743 +CQUAD4 6943 742 1132 6457 6745 6580 +CQUAD4 6944 742 6457 6458 6746 6745 +CQUAD4 6945 742 6580 6745 6747 6582 +CQUAD4 6946 742 6745 6746 6748 6747 +CQUAD4 6947 742 6582 6747 6749 6584 +CQUAD4 6948 742 6747 6748 6750 6749 +CQUAD4 6949 742 6584 6749 6751 6586 +CQUAD4 6950 742 6749 6750 6752 6751 +CQUAD4 6951 742 6586 6751 6753 1208 +CQUAD4 6952 742 6751 6752 6754 6753 +CQUAD4 6953 743 1141 1629 6755 1145 +CQUAD4 6954 743 1629 1630 6756 6755 +CQUAD4 6955 743 1630 1631 6757 6756 +CQUAD4 6956 743 1631 1632 6758 6757 +CQUAD4 6957 743 1632 1217 1221 6758 +CQUAD4 6958 743 1145 6755 6759 1149 +CQUAD4 6959 743 6755 6756 6760 6759 +CQUAD4 6960 743 6756 6757 6761 6760 +CQUAD4 6961 743 6757 6758 6762 6761 +CQUAD4 6962 743 6758 1221 1225 6762 +CQUAD4 6963 744 1144 1148 6763 1641 +CQUAD4 6964 744 1148 1152 6764 6763 +CQUAD4 6965 744 1641 6763 6765 1642 +CQUAD4 6966 744 6763 6764 6766 6765 +CQUAD4 6967 744 1642 6765 6767 1643 +CQUAD4 6968 744 6765 6766 6768 6767 +CQUAD4 6969 744 1643 6767 6769 1644 +CQUAD4 6970 744 6767 6768 6770 6769 +CQUAD4 6971 744 1644 6769 1224 1220 +CQUAD4 6972 744 6769 6770 1228 1224 +CQUAD4 6973 745 1149 6759 6771 1153 +CQUAD4 6974 745 6759 6760 6772 6771 +CQUAD4 6975 745 6760 6761 6773 6772 +CQUAD4 6976 745 6761 6762 6774 6773 +CQUAD4 6977 745 6762 1225 1229 6774 +CQUAD4 6978 745 1153 6771 6775 1157 +CQUAD4 6979 745 6771 6772 6776 6775 +CQUAD4 6980 745 6772 6773 6777 6776 +CQUAD4 6981 745 6773 6774 6778 6777 +CQUAD4 6982 745 6774 1229 1233 6778 +CQUAD4 6983 746 1152 1156 6779 6764 +CQUAD4 6984 746 1156 1160 6780 6779 +CQUAD4 6985 746 6764 6779 6781 6766 +CQUAD4 6986 746 6779 6780 6782 6781 +CQUAD4 6987 746 6766 6781 6783 6768 +CQUAD4 6988 746 6781 6782 6784 6783 +CQUAD4 6989 746 6768 6783 6785 6770 +CQUAD4 6990 746 6783 6784 6786 6785 +CQUAD4 6991 746 6770 6785 1232 1228 +CQUAD4 6992 746 6785 6786 1236 1232 +CQUAD4 6993 747 1157 6775 6787 1161 +CQUAD4 6994 747 6775 6776 6788 6787 +CQUAD4 6995 747 6776 6777 6789 6788 +CQUAD4 6996 747 6777 6778 6790 6789 +CQUAD4 6997 747 6778 1233 1237 6790 +CQUAD4 6998 747 1161 6787 6791 1165 +CQUAD4 6999 747 6787 6788 6792 6791 +CQUAD4 7000 747 6788 6789 6793 6792 +CQUAD4 7001 747 6789 6790 6794 6793 +CQUAD4 7002 747 6790 1237 1241 6794 +CQUAD4 7003 748 1160 1164 6795 6780 +CQUAD4 7004 748 1164 1168 6796 6795 +CQUAD4 7005 748 6780 6795 6797 6782 +CQUAD4 7006 748 6795 6796 6798 6797 +CQUAD4 7007 748 6782 6797 6799 6784 +CQUAD4 7008 748 6797 6798 6800 6799 +CQUAD4 7009 748 6784 6799 6801 6786 +CQUAD4 7010 748 6799 6800 6802 6801 +CQUAD4 7011 748 6786 6801 1240 1236 +CQUAD4 7012 748 6801 6802 1244 1240 +CQUAD4 7013 749 1165 6791 6803 1169 +CQUAD4 7014 749 6791 6792 6804 6803 +CQUAD4 7015 749 6792 6793 6805 6804 +CQUAD4 7016 749 6793 6794 6806 6805 +CQUAD4 7017 749 6794 1241 1245 6806 +CQUAD4 7018 749 1169 6803 6807 1173 +CQUAD4 7019 749 6803 6804 6808 6807 +CQUAD4 7020 749 6804 6805 6809 6808 +CQUAD4 7021 749 6805 6806 6810 6809 +CQUAD4 7022 749 6806 1245 1249 6810 +CQUAD4 7023 750 1168 1172 6811 6796 +CQUAD4 7024 750 1172 1176 6812 6811 +CQUAD4 7025 750 6796 6811 6813 6798 +CQUAD4 7026 750 6811 6812 6814 6813 +CQUAD4 7027 750 6798 6813 6815 6800 +CQUAD4 7028 750 6813 6814 6816 6815 +CQUAD4 7029 750 6800 6815 6817 6802 +CQUAD4 7030 750 6815 6816 6818 6817 +CQUAD4 7031 750 6802 6817 1248 1244 +CQUAD4 7032 750 6817 6818 1252 1248 +CQUAD4 7033 751 1173 6807 6819 1177 +CQUAD4 7034 751 6807 6808 6820 6819 +CQUAD4 7035 751 6808 6809 6821 6820 +CQUAD4 7036 751 6809 6810 6822 6821 +CQUAD4 7037 751 6810 1249 1253 6822 +CQUAD4 7038 751 1177 6819 6823 1181 +CQUAD4 7039 751 6819 6820 6824 6823 +CQUAD4 7040 751 6820 6821 6825 6824 +CQUAD4 7041 751 6821 6822 6826 6825 +CQUAD4 7042 751 6822 1253 1257 6826 +CQUAD4 7043 752 1176 1180 6827 6812 +CQUAD4 7044 752 1180 1184 6828 6827 +CQUAD4 7045 752 6812 6827 6829 6814 +CQUAD4 7046 752 6827 6828 6830 6829 +CQUAD4 7047 752 6814 6829 6831 6816 +CQUAD4 7048 752 6829 6830 6832 6831 +CQUAD4 7049 752 6816 6831 6833 6818 +CQUAD4 7050 752 6831 6832 6834 6833 +CQUAD4 7051 752 6818 6833 1256 1252 +CQUAD4 7052 752 6833 6834 1260 1256 +CQUAD4 7053 753 1181 6823 6835 1185 +CQUAD4 7054 753 6823 6824 6836 6835 +CQUAD4 7055 753 6824 6825 6837 6836 +CQUAD4 7056 753 6825 6826 6838 6837 +CQUAD4 7057 753 6826 1257 1261 6838 +CQUAD4 7058 753 1185 6835 6839 1189 +CQUAD4 7059 753 6835 6836 6840 6839 +CQUAD4 7060 753 6836 6837 6841 6840 +CQUAD4 7061 753 6837 6838 6842 6841 +CQUAD4 7062 753 6838 1261 1265 6842 +CQUAD4 7063 754 1184 1188 6843 6828 +CQUAD4 7064 754 1188 1192 6844 6843 +CQUAD4 7065 754 6828 6843 6845 6830 +CQUAD4 7066 754 6843 6844 6846 6845 +CQUAD4 7067 754 6830 6845 6847 6832 +CQUAD4 7068 754 6845 6846 6848 6847 +CQUAD4 7069 754 6832 6847 6849 6834 +CQUAD4 7070 754 6847 6848 6850 6849 +CQUAD4 7071 754 6834 6849 1264 1260 +CQUAD4 7072 754 6849 6850 1268 1264 +CQUAD4 7073 755 1189 6839 6851 1193 +CQUAD4 7074 755 6839 6840 6852 6851 +CQUAD4 7075 755 6840 6841 6853 6852 +CQUAD4 7076 755 6841 6842 6854 6853 +CQUAD4 7077 755 6842 1265 1269 6854 +CQUAD4 7078 755 1193 6851 6855 1197 +CQUAD4 7079 755 6851 6852 6856 6855 +CQUAD4 7080 755 6852 6853 6857 6856 +CQUAD4 7081 755 6853 6854 6858 6857 +CQUAD4 7082 755 6854 1269 1273 6858 +CQUAD4 7083 756 1192 1196 6859 6844 +CQUAD4 7084 756 1196 1200 6860 6859 +CQUAD4 7085 756 6844 6859 6861 6846 +CQUAD4 7086 756 6859 6860 6862 6861 +CQUAD4 7087 756 6846 6861 6863 6848 +CQUAD4 7088 756 6861 6862 6864 6863 +CQUAD4 7089 756 6848 6863 6865 6850 +CQUAD4 7090 756 6863 6864 6866 6865 +CQUAD4 7091 756 6850 6865 1272 1268 +CQUAD4 7092 756 6865 6866 1276 1272 +CQUAD4 7093 757 1197 6855 6867 1201 +CQUAD4 7094 757 6855 6856 6868 6867 +CQUAD4 7095 757 6856 6857 6869 6868 +CQUAD4 7096 757 6857 6858 6870 6869 +CQUAD4 7097 757 6858 1273 1277 6870 +CQUAD4 7098 757 1201 6867 6871 1205 +CQUAD4 7099 757 6867 6868 6872 6871 +CQUAD4 7100 757 6868 6869 6873 6872 +CQUAD4 7101 757 6869 6870 6874 6873 +CQUAD4 7102 757 6870 1277 1281 6874 +CQUAD4 7103 758 1200 1204 6875 6860 +CQUAD4 7104 758 1204 1208 6876 6875 +CQUAD4 7105 758 6860 6875 6877 6862 +CQUAD4 7106 758 6875 6876 6878 6877 +CQUAD4 7107 758 6862 6877 6879 6864 +CQUAD4 7108 758 6877 6878 6880 6879 +CQUAD4 7109 758 6864 6879 6881 6866 +CQUAD4 7110 758 6879 6880 6882 6881 +CQUAD4 7111 758 6866 6881 1280 1276 +CQUAD4 7112 758 6881 6882 1284 1280 +CQUAD4 7113 759 1205 6871 6883 1209 +CQUAD4 7114 759 6871 6872 6884 6883 +CQUAD4 7115 759 6872 6873 6885 6884 +CQUAD4 7116 759 6873 6874 6886 6885 +CQUAD4 7117 759 6874 1281 1285 6886 +CQUAD4 7118 759 1209 6883 1921 1213 +CQUAD4 7119 759 6883 6884 1922 1921 +CQUAD4 7120 759 6884 6885 1923 1922 +CQUAD4 7121 759 6885 6886 1924 1923 +CQUAD4 7122 759 6886 1285 1289 1924 +CQUAD4 7123 760 1208 1212 6887 6876 +CQUAD4 7124 760 1212 1216 1933 6887 +CQUAD4 7125 760 6876 6887 6888 6878 +CQUAD4 7126 760 6887 1933 1934 6888 +CQUAD4 7127 760 6878 6888 6889 6880 +CQUAD4 7128 760 6888 1934 1935 6889 +CQUAD4 7129 760 6880 6889 6890 6882 +CQUAD4 7130 760 6889 1935 1936 6890 +CQUAD4 7131 760 6882 6890 1288 1284 +CQUAD4 7132 760 6890 1936 1292 1288 +CQUAD4 7133 761 1149 6603 6891 6759 +CQUAD4 7134 761 6603 6604 6892 6891 +CQUAD4 7135 761 6759 6891 6893 6760 +CQUAD4 7136 761 6891 6892 6894 6893 +CQUAD4 7137 761 6760 6893 6895 6761 +CQUAD4 7138 761 6893 6894 6896 6895 +CQUAD4 7139 761 6761 6895 6897 6762 +CQUAD4 7140 761 6895 6896 6898 6897 +CQUAD4 7141 761 6762 6897 6899 1225 +CQUAD4 7142 761 6897 6898 6900 6899 +CQUAD4 7143 762 1152 6613 6901 6764 +CQUAD4 7144 762 6613 6614 6902 6901 +CQUAD4 7145 762 6764 6901 6903 6766 +CQUAD4 7146 762 6901 6902 6904 6903 +CQUAD4 7147 762 6766 6903 6905 6768 +CQUAD4 7148 762 6903 6904 6906 6905 +CQUAD4 7149 762 6768 6905 6907 6770 +CQUAD4 7150 762 6905 6906 6908 6907 +CQUAD4 7151 762 6770 6907 6909 1228 +CQUAD4 7152 762 6907 6908 6910 6909 +CQUAD4 7153 763 1157 6623 6911 6775 +CQUAD4 7154 763 6623 6624 6912 6911 +CQUAD4 7155 763 6775 6911 6913 6776 +CQUAD4 7156 763 6911 6912 6914 6913 +CQUAD4 7157 763 6776 6913 6915 6777 +CQUAD4 7158 763 6913 6914 6916 6915 +CQUAD4 7159 763 6777 6915 6917 6778 +CQUAD4 7160 763 6915 6916 6918 6917 +CQUAD4 7161 763 6778 6917 6919 1233 +CQUAD4 7162 763 6917 6918 6920 6919 +CQUAD4 7163 764 1160 6633 6921 6780 +CQUAD4 7164 764 6633 6634 6922 6921 +CQUAD4 7165 764 6780 6921 6923 6782 +CQUAD4 7166 764 6921 6922 6924 6923 +CQUAD4 7167 764 6782 6923 6925 6784 +CQUAD4 7168 764 6923 6924 6926 6925 +CQUAD4 7169 764 6784 6925 6927 6786 +CQUAD4 7170 764 6925 6926 6928 6927 +CQUAD4 7171 764 6786 6927 6929 1236 +CQUAD4 7172 764 6927 6928 6930 6929 +CQUAD4 7173 765 1165 6643 6931 6791 +CQUAD4 7174 765 6643 6644 6932 6931 +CQUAD4 7175 765 6791 6931 6933 6792 +CQUAD4 7176 765 6931 6932 6934 6933 +CQUAD4 7177 765 6792 6933 6935 6793 +CQUAD4 7178 765 6933 6934 6936 6935 +CQUAD4 7179 765 6793 6935 6937 6794 +CQUAD4 7180 765 6935 6936 6938 6937 +CQUAD4 7181 765 6794 6937 6939 1241 +CQUAD4 7182 765 6937 6938 6940 6939 +CQUAD4 7183 766 1168 6653 6941 6796 +CQUAD4 7184 766 6653 6654 6942 6941 +CQUAD4 7185 766 6796 6941 6943 6798 +CQUAD4 7186 766 6941 6942 6944 6943 +CQUAD4 7187 766 6798 6943 6945 6800 +CQUAD4 7188 766 6943 6944 6946 6945 +CQUAD4 7189 766 6800 6945 6947 6802 +CQUAD4 7190 766 6945 6946 6948 6947 +CQUAD4 7191 766 6802 6947 6949 1244 +CQUAD4 7192 766 6947 6948 6950 6949 +CQUAD4 7193 767 1173 6663 6951 6807 +CQUAD4 7194 767 6663 6664 6952 6951 +CQUAD4 7195 767 6807 6951 6953 6808 +CQUAD4 7196 767 6951 6952 6954 6953 +CQUAD4 7197 767 6808 6953 6955 6809 +CQUAD4 7198 767 6953 6954 6956 6955 +CQUAD4 7199 767 6809 6955 6957 6810 +CQUAD4 7200 767 6955 6956 6958 6957 +CQUAD4 7201 767 6810 6957 6959 1249 +CQUAD4 7202 767 6957 6958 6960 6959 +CQUAD4 7203 768 1176 6673 6961 6812 +CQUAD4 7204 768 6673 6674 6962 6961 +CQUAD4 7205 768 6812 6961 6963 6814 +CQUAD4 7206 768 6961 6962 6964 6963 +CQUAD4 7207 768 6814 6963 6965 6816 +CQUAD4 7208 768 6963 6964 6966 6965 +CQUAD4 7209 768 6816 6965 6967 6818 +CQUAD4 7210 768 6965 6966 6968 6967 +CQUAD4 7211 768 6818 6967 6969 1252 +CQUAD4 7212 768 6967 6968 6970 6969 +CQUAD4 7213 769 1181 6683 6971 6823 +CQUAD4 7214 769 6683 6684 6972 6971 +CQUAD4 7215 769 6823 6971 6973 6824 +CQUAD4 7216 769 6971 6972 6974 6973 +CQUAD4 7217 769 6824 6973 6975 6825 +CQUAD4 7218 769 6973 6974 6976 6975 +CQUAD4 7219 769 6825 6975 6977 6826 +CQUAD4 7220 769 6975 6976 6978 6977 +CQUAD4 7221 769 6826 6977 6979 1257 +CQUAD4 7222 769 6977 6978 6980 6979 +CQUAD4 7223 770 1184 6693 6981 6828 +CQUAD4 7224 770 6693 6694 6982 6981 +CQUAD4 7225 770 6828 6981 6983 6830 +CQUAD4 7226 770 6981 6982 6984 6983 +CQUAD4 7227 770 6830 6983 6985 6832 +CQUAD4 7228 770 6983 6984 6986 6985 +CQUAD4 7229 770 6832 6985 6987 6834 +CQUAD4 7230 770 6985 6986 6988 6987 +CQUAD4 7231 770 6834 6987 6989 1260 +CQUAD4 7232 770 6987 6988 6990 6989 +CQUAD4 7233 771 1189 6703 6991 6839 +CQUAD4 7234 771 6703 6704 6992 6991 +CQUAD4 7235 771 6839 6991 6993 6840 +CQUAD4 7236 771 6991 6992 6994 6993 +CQUAD4 7237 771 6840 6993 6995 6841 +CQUAD4 7238 771 6993 6994 6996 6995 +CQUAD4 7239 771 6841 6995 6997 6842 +CQUAD4 7240 771 6995 6996 6998 6997 +CQUAD4 7241 771 6842 6997 6999 1265 +CQUAD4 7242 771 6997 6998 7000 6999 +CQUAD4 7243 772 1192 6713 7001 6844 +CQUAD4 7244 772 6713 6714 7002 7001 +CQUAD4 7245 772 6844 7001 7003 6846 +CQUAD4 7246 772 7001 7002 7004 7003 +CQUAD4 7247 772 6846 7003 7005 6848 +CQUAD4 7248 772 7003 7004 7006 7005 +CQUAD4 7249 772 6848 7005 7007 6850 +CQUAD4 7250 772 7005 7006 7008 7007 +CQUAD4 7251 772 6850 7007 7009 1268 +CQUAD4 7252 772 7007 7008 7010 7009 +CQUAD4 7253 773 1197 6723 7011 6855 +CQUAD4 7254 773 6723 6724 7012 7011 +CQUAD4 7255 773 6855 7011 7013 6856 +CQUAD4 7256 773 7011 7012 7014 7013 +CQUAD4 7257 773 6856 7013 7015 6857 +CQUAD4 7258 773 7013 7014 7016 7015 +CQUAD4 7259 773 6857 7015 7017 6858 +CQUAD4 7260 773 7015 7016 7018 7017 +CQUAD4 7261 773 6858 7017 7019 1273 +CQUAD4 7262 773 7017 7018 7020 7019 +CQUAD4 7263 774 1200 6733 7021 6860 +CQUAD4 7264 774 6733 6734 7022 7021 +CQUAD4 7265 774 6860 7021 7023 6862 +CQUAD4 7266 774 7021 7022 7024 7023 +CQUAD4 7267 774 6862 7023 7025 6864 +CQUAD4 7268 774 7023 7024 7026 7025 +CQUAD4 7269 774 6864 7025 7027 6866 +CQUAD4 7270 774 7025 7026 7028 7027 +CQUAD4 7271 774 6866 7027 7029 1276 +CQUAD4 7272 774 7027 7028 7030 7029 +CQUAD4 7273 775 1205 6743 7031 6871 +CQUAD4 7274 775 6743 6744 7032 7031 +CQUAD4 7275 775 6871 7031 7033 6872 +CQUAD4 7276 775 7031 7032 7034 7033 +CQUAD4 7277 775 6872 7033 7035 6873 +CQUAD4 7278 775 7033 7034 7036 7035 +CQUAD4 7279 775 6873 7035 7037 6874 +CQUAD4 7280 775 7035 7036 7038 7037 +CQUAD4 7281 775 6874 7037 7039 1281 +CQUAD4 7282 775 7037 7038 7040 7039 +CQUAD4 7283 776 1208 6753 7041 6876 +CQUAD4 7284 776 6753 6754 7042 7041 +CQUAD4 7285 776 6876 7041 7043 6878 +CQUAD4 7286 776 7041 7042 7044 7043 +CQUAD4 7287 776 6878 7043 7045 6880 +CQUAD4 7288 776 7043 7044 7046 7045 +CQUAD4 7289 776 6880 7045 7047 6882 +CQUAD4 7290 776 7045 7046 7048 7047 +CQUAD4 7291 776 6882 7047 7049 1284 +CQUAD4 7292 776 7047 7048 7050 7049 +CQUAD4 7293 777 1217 1645 7051 1221 +CQUAD4 7294 777 1645 1646 7052 7051 +CQUAD4 7295 777 1646 1647 7053 7052 +CQUAD4 7296 777 1647 1648 7054 7053 +CQUAD4 7297 777 1648 1293 1297 7054 +CQUAD4 7298 777 1221 7051 7055 1225 +CQUAD4 7299 777 7051 7052 7056 7055 +CQUAD4 7300 777 7052 7053 7057 7056 +CQUAD4 7301 777 7053 7054 7058 7057 +CQUAD4 7302 777 7054 1297 1301 7058 +CQUAD4 7303 778 1220 1224 7059 1657 +CQUAD4 7304 778 1224 1228 7060 7059 +CQUAD4 7305 778 1657 7059 7061 1658 +CQUAD4 7306 778 7059 7060 7062 7061 +CQUAD4 7307 778 1658 7061 7063 1659 +CQUAD4 7308 778 7061 7062 7064 7063 +CQUAD4 7309 778 1659 7063 7065 1660 +CQUAD4 7310 778 7063 7064 7066 7065 +CQUAD4 7311 778 1660 7065 1300 1296 +CQUAD4 7312 778 7065 7066 1304 1300 +CQUAD4 7313 779 1225 7055 7067 1229 +CQUAD4 7314 779 7055 7056 7068 7067 +CQUAD4 7315 779 7056 7057 7069 7068 +CQUAD4 7316 779 7057 7058 7070 7069 +CQUAD4 7317 779 7058 1301 1305 7070 +CQUAD4 7318 779 1229 7067 7071 1233 +CQUAD4 7319 779 7067 7068 7072 7071 +CQUAD4 7320 779 7068 7069 7073 7072 +CQUAD4 7321 779 7069 7070 7074 7073 +CQUAD4 7322 779 7070 1305 1309 7074 +CQUAD4 7323 780 1228 1232 7075 7060 +CQUAD4 7324 780 1232 1236 7076 7075 +CQUAD4 7325 780 7060 7075 7077 7062 +CQUAD4 7326 780 7075 7076 7078 7077 +CQUAD4 7327 780 7062 7077 7079 7064 +CQUAD4 7328 780 7077 7078 7080 7079 +CQUAD4 7329 780 7064 7079 7081 7066 +CQUAD4 7330 780 7079 7080 7082 7081 +CQUAD4 7331 780 7066 7081 1308 1304 +CQUAD4 7332 780 7081 7082 1312 1308 +CQUAD4 7333 781 1233 7071 7083 1237 +CQUAD4 7334 781 7071 7072 7084 7083 +CQUAD4 7335 781 7072 7073 7085 7084 +CQUAD4 7336 781 7073 7074 7086 7085 +CQUAD4 7337 781 7074 1309 1313 7086 +CQUAD4 7338 781 1237 7083 7087 1241 +CQUAD4 7339 781 7083 7084 7088 7087 +CQUAD4 7340 781 7084 7085 7089 7088 +CQUAD4 7341 781 7085 7086 7090 7089 +CQUAD4 7342 781 7086 1313 1317 7090 +CQUAD4 7343 782 1236 1240 7091 7076 +CQUAD4 7344 782 1240 1244 7092 7091 +CQUAD4 7345 782 7076 7091 7093 7078 +CQUAD4 7346 782 7091 7092 7094 7093 +CQUAD4 7347 782 7078 7093 7095 7080 +CQUAD4 7348 782 7093 7094 7096 7095 +CQUAD4 7349 782 7080 7095 7097 7082 +CQUAD4 7350 782 7095 7096 7098 7097 +CQUAD4 7351 782 7082 7097 1316 1312 +CQUAD4 7352 782 7097 7098 1320 1316 +CQUAD4 7353 783 1241 7087 7099 1245 +CQUAD4 7354 783 7087 7088 7100 7099 +CQUAD4 7355 783 7088 7089 7101 7100 +CQUAD4 7356 783 7089 7090 7102 7101 +CQUAD4 7357 783 7090 1317 1321 7102 +CQUAD4 7358 783 1245 7099 7103 1249 +CQUAD4 7359 783 7099 7100 7104 7103 +CQUAD4 7360 783 7100 7101 7105 7104 +CQUAD4 7361 783 7101 7102 7106 7105 +CQUAD4 7362 783 7102 1321 1325 7106 +CQUAD4 7363 784 1244 1248 7107 7092 +CQUAD4 7364 784 1248 1252 7108 7107 +CQUAD4 7365 784 7092 7107 7109 7094 +CQUAD4 7366 784 7107 7108 7110 7109 +CQUAD4 7367 784 7094 7109 7111 7096 +CQUAD4 7368 784 7109 7110 7112 7111 +CQUAD4 7369 784 7096 7111 7113 7098 +CQUAD4 7370 784 7111 7112 7114 7113 +CQUAD4 7371 784 7098 7113 1324 1320 +CQUAD4 7372 784 7113 7114 1328 1324 +CQUAD4 7373 785 1249 7103 7115 1253 +CQUAD4 7374 785 7103 7104 7116 7115 +CQUAD4 7375 785 7104 7105 7117 7116 +CQUAD4 7376 785 7105 7106 7118 7117 +CQUAD4 7377 785 7106 1325 1329 7118 +CQUAD4 7378 785 1253 7115 7119 1257 +CQUAD4 7379 785 7115 7116 7120 7119 +CQUAD4 7380 785 7116 7117 7121 7120 +CQUAD4 7381 785 7117 7118 7122 7121 +CQUAD4 7382 785 7118 1329 1333 7122 +CQUAD4 7383 786 1252 1256 7123 7108 +CQUAD4 7384 786 1256 1260 7124 7123 +CQUAD4 7385 786 7108 7123 7125 7110 +CQUAD4 7386 786 7123 7124 7126 7125 +CQUAD4 7387 786 7110 7125 7127 7112 +CQUAD4 7388 786 7125 7126 7128 7127 +CQUAD4 7389 786 7112 7127 7129 7114 +CQUAD4 7390 786 7127 7128 7130 7129 +CQUAD4 7391 786 7114 7129 1332 1328 +CQUAD4 7392 786 7129 7130 1336 1332 +CQUAD4 7393 787 1257 7119 7131 1261 +CQUAD4 7394 787 7119 7120 7132 7131 +CQUAD4 7395 787 7120 7121 7133 7132 +CQUAD4 7396 787 7121 7122 7134 7133 +CQUAD4 7397 787 7122 1333 1337 7134 +CQUAD4 7398 787 1261 7131 7135 1265 +CQUAD4 7399 787 7131 7132 7136 7135 +CQUAD4 7400 787 7132 7133 7137 7136 +CQUAD4 7401 787 7133 7134 7138 7137 +CQUAD4 7402 787 7134 1337 1341 7138 +CQUAD4 7403 788 1260 1264 7139 7124 +CQUAD4 7404 788 1264 1268 7140 7139 +CQUAD4 7405 788 7124 7139 7141 7126 +CQUAD4 7406 788 7139 7140 7142 7141 +CQUAD4 7407 788 7126 7141 7143 7128 +CQUAD4 7408 788 7141 7142 7144 7143 +CQUAD4 7409 788 7128 7143 7145 7130 +CQUAD4 7410 788 7143 7144 7146 7145 +CQUAD4 7411 788 7130 7145 1340 1336 +CQUAD4 7412 788 7145 7146 1344 1340 +CQUAD4 7413 789 1265 7135 7147 1269 +CQUAD4 7414 789 7135 7136 7148 7147 +CQUAD4 7415 789 7136 7137 7149 7148 +CQUAD4 7416 789 7137 7138 7150 7149 +CQUAD4 7417 789 7138 1341 1345 7150 +CQUAD4 7418 789 1269 7147 7151 1273 +CQUAD4 7419 789 7147 7148 7152 7151 +CQUAD4 7420 789 7148 7149 7153 7152 +CQUAD4 7421 789 7149 7150 7154 7153 +CQUAD4 7422 789 7150 1345 1349 7154 +CQUAD4 7423 790 1268 1272 7155 7140 +CQUAD4 7424 790 1272 1276 7156 7155 +CQUAD4 7425 790 7140 7155 7157 7142 +CQUAD4 7426 790 7155 7156 7158 7157 +CQUAD4 7427 790 7142 7157 7159 7144 +CQUAD4 7428 790 7157 7158 7160 7159 +CQUAD4 7429 790 7144 7159 7161 7146 +CQUAD4 7430 790 7159 7160 7162 7161 +CQUAD4 7431 790 7146 7161 1348 1344 +CQUAD4 7432 790 7161 7162 1352 1348 +CQUAD4 7433 791 1273 7151 7163 1277 +CQUAD4 7434 791 7151 7152 7164 7163 +CQUAD4 7435 791 7152 7153 7165 7164 +CQUAD4 7436 791 7153 7154 7166 7165 +CQUAD4 7437 791 7154 1349 1353 7166 +CQUAD4 7438 791 1277 7163 7167 1281 +CQUAD4 7439 791 7163 7164 7168 7167 +CQUAD4 7440 791 7164 7165 7169 7168 +CQUAD4 7441 791 7165 7166 7170 7169 +CQUAD4 7442 791 7166 1353 1357 7170 +CQUAD4 7443 792 1276 1280 7171 7156 +CQUAD4 7444 792 1280 1284 7172 7171 +CQUAD4 7445 792 7156 7171 7173 7158 +CQUAD4 7446 792 7171 7172 7174 7173 +CQUAD4 7447 792 7158 7173 7175 7160 +CQUAD4 7448 792 7173 7174 7176 7175 +CQUAD4 7449 792 7160 7175 7177 7162 +CQUAD4 7450 792 7175 7176 7178 7177 +CQUAD4 7451 792 7162 7177 1356 1352 +CQUAD4 7452 792 7177 7178 1360 1356 +CQUAD4 7453 793 1281 7167 7179 1285 +CQUAD4 7454 793 7167 7168 7180 7179 +CQUAD4 7455 793 7168 7169 7181 7180 +CQUAD4 7456 793 7169 7170 7182 7181 +CQUAD4 7457 793 7170 1357 1361 7182 +CQUAD4 7458 793 1285 7179 1937 1289 +CQUAD4 7459 793 7179 7180 1938 1937 +CQUAD4 7460 793 7180 7181 1939 1938 +CQUAD4 7461 793 7181 7182 1940 1939 +CQUAD4 7462 793 7182 1361 1365 1940 +CQUAD4 7463 794 1284 1288 7183 7172 +CQUAD4 7464 794 1288 1292 1949 7183 +CQUAD4 7465 794 7172 7183 7184 7174 +CQUAD4 7466 794 7183 1949 1950 7184 +CQUAD4 7467 794 7174 7184 7185 7176 +CQUAD4 7468 794 7184 1950 1951 7185 +CQUAD4 7469 794 7176 7185 7186 7178 +CQUAD4 7470 794 7185 1951 1952 7186 +CQUAD4 7471 794 7178 7186 1364 1360 +CQUAD4 7472 794 7186 1952 1368 1364 +CQUAD4 7473 795 1225 6899 7187 7055 +CQUAD4 7474 795 6899 6900 7188 7187 +CQUAD4 7475 795 7055 7187 7189 7056 +CQUAD4 7476 795 7187 7188 7190 7189 +CQUAD4 7477 795 7056 7189 7191 7057 +CQUAD4 7478 795 7189 7190 7192 7191 +CQUAD4 7479 795 7057 7191 7193 7058 +CQUAD4 7480 795 7191 7192 7194 7193 +CQUAD4 7481 795 7058 7193 7195 1301 +CQUAD4 7482 795 7193 7194 7196 7195 +CQUAD4 7483 796 1228 6909 7197 7060 +CQUAD4 7484 796 6909 6910 7198 7197 +CQUAD4 7485 796 7060 7197 7199 7062 +CQUAD4 7486 796 7197 7198 7200 7199 +CQUAD4 7487 796 7062 7199 7201 7064 +CQUAD4 7488 796 7199 7200 7202 7201 +CQUAD4 7489 796 7064 7201 7203 7066 +CQUAD4 7490 796 7201 7202 7204 7203 +CQUAD4 7491 796 7066 7203 7205 1304 +CQUAD4 7492 796 7203 7204 7206 7205 +CQUAD4 7493 797 1233 6919 7207 7071 +CQUAD4 7494 797 6919 6920 7208 7207 +CQUAD4 7495 797 7071 7207 7209 7072 +CQUAD4 7496 797 7207 7208 7210 7209 +CQUAD4 7497 797 7072 7209 7211 7073 +CQUAD4 7498 797 7209 7210 7212 7211 +CQUAD4 7499 797 7073 7211 7213 7074 +CQUAD4 7500 797 7211 7212 7214 7213 +CQUAD4 7501 797 7074 7213 7215 1309 +CQUAD4 7502 797 7213 7214 7216 7215 +CQUAD4 7503 798 1236 6929 7217 7076 +CQUAD4 7504 798 6929 6930 7218 7217 +CQUAD4 7505 798 7076 7217 7219 7078 +CQUAD4 7506 798 7217 7218 7220 7219 +CQUAD4 7507 798 7078 7219 7221 7080 +CQUAD4 7508 798 7219 7220 7222 7221 +CQUAD4 7509 798 7080 7221 7223 7082 +CQUAD4 7510 798 7221 7222 7224 7223 +CQUAD4 7511 798 7082 7223 7225 1312 +CQUAD4 7512 798 7223 7224 7226 7225 +CQUAD4 7513 799 1241 6939 7227 7087 +CQUAD4 7514 799 6939 6940 7228 7227 +CQUAD4 7515 799 7087 7227 7229 7088 +CQUAD4 7516 799 7227 7228 7230 7229 +CQUAD4 7517 799 7088 7229 7231 7089 +CQUAD4 7518 799 7229 7230 7232 7231 +CQUAD4 7519 799 7089 7231 7233 7090 +CQUAD4 7520 799 7231 7232 7234 7233 +CQUAD4 7521 799 7090 7233 7235 1317 +CQUAD4 7522 799 7233 7234 7236 7235 +CQUAD4 7523 800 1244 6949 7237 7092 +CQUAD4 7524 800 6949 6950 7238 7237 +CQUAD4 7525 800 7092 7237 7239 7094 +CQUAD4 7526 800 7237 7238 7240 7239 +CQUAD4 7527 800 7094 7239 7241 7096 +CQUAD4 7528 800 7239 7240 7242 7241 +CQUAD4 7529 800 7096 7241 7243 7098 +CQUAD4 7530 800 7241 7242 7244 7243 +CQUAD4 7531 800 7098 7243 7245 1320 +CQUAD4 7532 800 7243 7244 7246 7245 +CQUAD4 7533 801 1249 6959 7247 7103 +CQUAD4 7534 801 6959 6960 7248 7247 +CQUAD4 7535 801 7103 7247 7249 7104 +CQUAD4 7536 801 7247 7248 7250 7249 +CQUAD4 7537 801 7104 7249 7251 7105 +CQUAD4 7538 801 7249 7250 7252 7251 +CQUAD4 7539 801 7105 7251 7253 7106 +CQUAD4 7540 801 7251 7252 7254 7253 +CQUAD4 7541 801 7106 7253 7255 1325 +CQUAD4 7542 801 7253 7254 7256 7255 +CQUAD4 7543 802 1252 6969 7257 7108 +CQUAD4 7544 802 6969 6970 7258 7257 +CQUAD4 7545 802 7108 7257 7259 7110 +CQUAD4 7546 802 7257 7258 7260 7259 +CQUAD4 7547 802 7110 7259 7261 7112 +CQUAD4 7548 802 7259 7260 7262 7261 +CQUAD4 7549 802 7112 7261 7263 7114 +CQUAD4 7550 802 7261 7262 7264 7263 +CQUAD4 7551 802 7114 7263 7265 1328 +CQUAD4 7552 802 7263 7264 7266 7265 +CQUAD4 7553 803 1257 6979 7267 7119 +CQUAD4 7554 803 6979 6980 7268 7267 +CQUAD4 7555 803 7119 7267 7269 7120 +CQUAD4 7556 803 7267 7268 7270 7269 +CQUAD4 7557 803 7120 7269 7271 7121 +CQUAD4 7558 803 7269 7270 7272 7271 +CQUAD4 7559 803 7121 7271 7273 7122 +CQUAD4 7560 803 7271 7272 7274 7273 +CQUAD4 7561 803 7122 7273 7275 1333 +CQUAD4 7562 803 7273 7274 7276 7275 +CQUAD4 7563 804 1260 6989 7277 7124 +CQUAD4 7564 804 6989 6990 7278 7277 +CQUAD4 7565 804 7124 7277 7279 7126 +CQUAD4 7566 804 7277 7278 7280 7279 +CQUAD4 7567 804 7126 7279 7281 7128 +CQUAD4 7568 804 7279 7280 7282 7281 +CQUAD4 7569 804 7128 7281 7283 7130 +CQUAD4 7570 804 7281 7282 7284 7283 +CQUAD4 7571 804 7130 7283 7285 1336 +CQUAD4 7572 804 7283 7284 7286 7285 +CQUAD4 7573 805 1265 6999 7287 7135 +CQUAD4 7574 805 6999 7000 7288 7287 +CQUAD4 7575 805 7135 7287 7289 7136 +CQUAD4 7576 805 7287 7288 7290 7289 +CQUAD4 7577 805 7136 7289 7291 7137 +CQUAD4 7578 805 7289 7290 7292 7291 +CQUAD4 7579 805 7137 7291 7293 7138 +CQUAD4 7580 805 7291 7292 7294 7293 +CQUAD4 7581 805 7138 7293 7295 1341 +CQUAD4 7582 805 7293 7294 7296 7295 +CQUAD4 7583 806 1268 7009 7297 7140 +CQUAD4 7584 806 7009 7010 7298 7297 +CQUAD4 7585 806 7140 7297 7299 7142 +CQUAD4 7586 806 7297 7298 7300 7299 +CQUAD4 7587 806 7142 7299 7301 7144 +CQUAD4 7588 806 7299 7300 7302 7301 +CQUAD4 7589 806 7144 7301 7303 7146 +CQUAD4 7590 806 7301 7302 7304 7303 +CQUAD4 7591 806 7146 7303 7305 1344 +CQUAD4 7592 806 7303 7304 7306 7305 +CQUAD4 7593 807 1273 7019 7307 7151 +CQUAD4 7594 807 7019 7020 7308 7307 +CQUAD4 7595 807 7151 7307 7309 7152 +CQUAD4 7596 807 7307 7308 7310 7309 +CQUAD4 7597 807 7152 7309 7311 7153 +CQUAD4 7598 807 7309 7310 7312 7311 +CQUAD4 7599 807 7153 7311 7313 7154 +CQUAD4 7600 807 7311 7312 7314 7313 +CQUAD4 7601 807 7154 7313 7315 1349 +CQUAD4 7602 807 7313 7314 7316 7315 +CQUAD4 7603 808 1276 7029 7317 7156 +CQUAD4 7604 808 7029 7030 7318 7317 +CQUAD4 7605 808 7156 7317 7319 7158 +CQUAD4 7606 808 7317 7318 7320 7319 +CQUAD4 7607 808 7158 7319 7321 7160 +CQUAD4 7608 808 7319 7320 7322 7321 +CQUAD4 7609 808 7160 7321 7323 7162 +CQUAD4 7610 808 7321 7322 7324 7323 +CQUAD4 7611 808 7162 7323 7325 1352 +CQUAD4 7612 808 7323 7324 7326 7325 +CQUAD4 7613 809 1281 7039 7327 7167 +CQUAD4 7614 809 7039 7040 7328 7327 +CQUAD4 7615 809 7167 7327 7329 7168 +CQUAD4 7616 809 7327 7328 7330 7329 +CQUAD4 7617 809 7168 7329 7331 7169 +CQUAD4 7618 809 7329 7330 7332 7331 +CQUAD4 7619 809 7169 7331 7333 7170 +CQUAD4 7620 809 7331 7332 7334 7333 +CQUAD4 7621 809 7170 7333 7335 1357 +CQUAD4 7622 809 7333 7334 7336 7335 +CQUAD4 7623 810 1284 7049 7337 7172 +CQUAD4 7624 810 7049 7050 7338 7337 +CQUAD4 7625 810 7172 7337 7339 7174 +CQUAD4 7626 810 7337 7338 7340 7339 +CQUAD4 7627 810 7174 7339 7341 7176 +CQUAD4 7628 810 7339 7340 7342 7341 +CQUAD4 7629 810 7176 7341 7343 7178 +CQUAD4 7630 810 7341 7342 7344 7343 +CQUAD4 7631 810 7178 7343 7345 1360 +CQUAD4 7632 810 7343 7344 7346 7345 +SPC 1 1369 1234560.000000 +SPC 1 1374 1234560.000000 +SPC 1 1379 1234560.000000 +SPC 1 1384 1234560.000000 +SPC 1 1661 1234560.000000 +SPC 1 1666 1234560.000000 +SPC 1 1671 1234560.000000 +SPC 1 1676 1234560.000000 +SPC 1 1369 1234560.000000 +SPC 1 1953 1234560.000000 +SPC 1 1958 1234560.000000 +SPC 1 1384 1234560.000000 +SPC 1 1963 1234560.000000 +SPC 1 1964 1234560.000000 +SPC 1 1958 1234560.000000 +SPC 1 1973 1234560.000000 +SPC 1 1978 1234560.000000 +SPC 1 1964 1234560.000000 +SPC 1 1983 1234560.000000 +SPC 1 1984 1234560.000000 +SPC 1 1978 1234560.000000 +SPC 1 1993 1234560.000000 +SPC 1 1998 1234560.000000 +SPC 1 1984 1234560.000000 +SPC 1 2003 1234560.000000 +SPC 1 2004 1234560.000000 +SPC 1 1998 1234560.000000 +SPC 1 2013 1234560.000000 +SPC 1 2018 1234560.000000 +SPC 1 2004 1234560.000000 +SPC 1 2023 1234560.000000 +SPC 1 2024 1234560.000000 +SPC 1 2018 1234560.000000 +SPC 1 2033 1234560.000000 +SPC 1 2038 1234560.000000 +SPC 1 2024 1234560.000000 +SPC 1 2043 1234560.000000 +SPC 1 2044 1234560.000000 +SPC 1 2038 1234560.000000 +SPC 1 2053 1234560.000000 +SPC 1 2058 1234560.000000 +SPC 1 2044 1234560.000000 +SPC 1 2063 1234560.000000 +SPC 1 2064 1234560.000000 +SPC 1 2058 1234560.000000 +SPC 1 2073 1234560.000000 +SPC 1 2078 1234560.000000 +SPC 1 2064 1234560.000000 +SPC 1 2083 1234560.000000 +SPC 1 2084 1234560.000000 +SPC 1 2078 1234560.000000 +SPC 1 2093 1234560.000000 +SPC 1 2098 1234560.000000 +SPC 1 2084 1234560.000000 +SPC 1 2103 1234560.000000 +SPC 1 2104 1234560.000000 +SPC 1 2098 1234560.000000 +SPC 1 2113 1234560.000000 +SPC 1 1661 1234560.000000 +SPC 1 2104 1234560.000000 +SPC 1 2118 1234560.000000 +SPC 1 1676 1234560.000000 +SPC 1 1958 1234560.000000 +SPC 1 2123 1234560.000000 +SPC 1 2124 1234560.000000 +SPC 1 1964 1234560.000000 +SPC 1 2135 1234560.000000 +SPC 1 2136 1234560.000000 +SPC 1 1978 1234560.000000 +SPC 1 2147 1234560.000000 +SPC 1 2148 1234560.000000 +SPC 1 1984 1234560.000000 +SPC 1 2159 1234560.000000 +SPC 1 2160 1234560.000000 +SPC 1 1998 1234560.000000 +SPC 1 2171 1234560.000000 +SPC 1 2172 1234560.000000 +SPC 1 2004 1234560.000000 +SPC 1 2183 1234560.000000 +SPC 1 2184 1234560.000000 +SPC 1 2018 1234560.000000 +SPC 1 2195 1234560.000000 +SPC 1 2196 1234560.000000 +SPC 1 2024 1234560.000000 +SPC 1 2207 1234560.000000 +SPC 1 2208 1234560.000000 +SPC 1 2038 1234560.000000 +SPC 1 2219 1234560.000000 +SPC 1 2220 1234560.000000 +SPC 1 2044 1234560.000000 +SPC 1 2231 1234560.000000 +SPC 1 2232 1234560.000000 +SPC 1 2058 1234560.000000 +SPC 1 2243 1234560.000000 +SPC 1 2244 1234560.000000 +SPC 1 2064 1234560.000000 +SPC 1 2255 1234560.000000 +SPC 1 2256 1234560.000000 +SPC 1 2078 1234560.000000 +SPC 1 2267 1234560.000000 +SPC 1 2268 1234560.000000 +SPC 1 2084 1234560.000000 +SPC 1 2279 1234560.000000 +SPC 1 2280 1234560.000000 +SPC 1 2098 1234560.000000 +SPC 1 2291 1234560.000000 +SPC 1 2292 1234560.000000 +SPC 1 2104 1234560.000000 +SPC 1 2303 1234560.000000 +SPC 1 2304 1234560.000000 +$NRIBS 19 +$NSPARS 10 +$XSUPER 1 1 1 1.250000000e+00* +$* 2.795225161e-01 1.000000000e-02 +$XSUPER 1 1 2 1.250000000e+00* +$* -2.763802615e-01 1.000000000e-02 +$XSUPER 1 2 1 1.555555556e+00* +$* 2.981024557e-01 1.000000000e-02 +$XSUPER 1 2 2 1.555555556e+00* +$* -2.918003020e-01 1.000000000e-02 +$XSUPER 1 3 1 1.861111111e+00* +$* 3.099337101e-01 1.000000000e-02 +$XSUPER 1 3 2 1.861111111e+00* +$* -2.952202360e-01 1.000000000e-02 +$XSUPER 1 4 1 2.166666667e+00* +$* 3.144425739e-01 1.000000000e-02 +$XSUPER 1 4 2 2.166666667e+00* +$* -2.822256579e-01 1.000000000e-02 +$XSUPER 1 5 1 2.472222222e+00* +$* 3.111045682e-01 1.000000000e-02 +$XSUPER 1 5 2 2.472222222e+00* +$* -2.552525882e-01 1.000000000e-02 +$XSUPER 1 6 1 2.777777778e+00* +$* 2.994769178e-01 1.000000000e-02 +$XSUPER 1 6 2 2.777777778e+00* +$* -2.187708330e-01 1.000000000e-02 +$XSUPER 1 7 1 3.083333333e+00* +$* 2.793930891e-01 1.000000000e-02 +$XSUPER 1 7 2 3.083333333e+00* +$* -1.766170117e-01 1.000000000e-02 +$XSUPER 1 8 1 3.388888889e+00* +$* 2.509801424e-01 1.000000000e-02 +$XSUPER 1 8 2 3.388888889e+00* +$* -1.322271151e-01 1.000000000e-02 +$XSUPER 1 9 1 3.694444444e+00* +$* 2.154231005e-01 1.000000000e-02 +$XSUPER 1 9 2 3.694444444e+00* +$* -8.889508119e-02 1.000000000e-02 +$XSUPER 1 10 1 4.000000000e+00* +$* 1.743207538e-01 1.000000000e-02 +$XSUPER 1 10 2 4.000000000e+00* +$* -4.981895761e-02 1.000000000e-02 +$XSUPER 2 1 1 1.250000000e+00* +$* 2.372638263e-01 7.550000000e-01 +$XSUPER 2 1 2 1.250000000e+00* +$* -2.368167398e-01 7.550000000e-01 +$XSUPER 2 2 1 1.555555556e+00* +$* 2.657110924e-01 7.550000000e-01 +$XSUPER 2 2 2 1.555555556e+00* +$* -2.630296799e-01 7.550000000e-01 +$XSUPER 2 3 1 1.861111111e+00* +$* 2.851949764e-01 7.550000000e-01 +$XSUPER 2 3 2 1.861111111e+00* +$* -2.796633519e-01 7.550000000e-01 +$XSUPER 2 4 1 2.166666667e+00* +$* 2.977288015e-01 7.550000000e-01 +$XSUPER 2 4 2 2.166666667e+00* +$* -2.845770494e-01 7.550000000e-01 +$XSUPER 2 5 1 2.472222222e+00* +$* 3.027047688e-01 7.550000000e-01 +$XSUPER 2 5 2 2.472222222e+00* +$* -2.725989470e-01 7.550000000e-01 +$XSUPER 2 6 1 2.777777778e+00* +$* 2.995513395e-01 7.550000000e-01 +$XSUPER 2 6 2 2.777777778e+00* +$* -2.459126817e-01 7.550000000e-01 +$XSUPER 2 7 1 3.083333333e+00* +$* 2.877918596e-01 7.550000000e-01 +$XSUPER 2 7 2 3.083333333e+00* +$* -2.093341794e-01 7.550000000e-01 +$XSUPER 2 8 1 3.388888889e+00* +$* 2.672502475e-01 7.550000000e-01 +$XSUPER 2 8 2 3.388888889e+00* +$* -1.669903522e-01 7.550000000e-01 +$XSUPER 2 9 1 3.694444444e+00* +$* 2.381194635e-01 7.550000000e-01 +$XSUPER 2 9 2 3.694444444e+00* +$* -1.225732136e-01 7.550000000e-01 +$XSUPER 2 10 1 4.000000000e+00* +$* 2.017718160e-01 7.550000000e-01 +$XSUPER 2 10 2 4.000000000e+00* +$* -7.961493376e-02 7.550000000e-01 +$XSUPER 3 1 1 1.250000000e+00* +$* 1.732894229e-01 1.500000000e+00 +$XSUPER 3 1 2 1.250000000e+00* +$* -1.745422012e-01 1.500000000e+00 +$XSUPER 3 2 1 1.555555556e+00* +$* 2.205266504e-01 1.500000000e+00 +$XSUPER 3 2 2 1.555555556e+00* +$* -2.205093658e-01 1.500000000e+00 +$XSUPER 3 3 1 1.861111111e+00* +$* 2.515323577e-01 1.500000000e+00 +$XSUPER 3 3 2 1.861111111e+00* +$* -2.493489850e-01 1.500000000e+00 +$XSUPER 3 4 1 2.166666667e+00* +$* 2.721301068e-01 1.500000000e+00 +$XSUPER 3 4 2 2.166666667e+00* +$* -2.673216498e-01 1.500000000e+00 +$XSUPER 3 5 1 2.472222222e+00* +$* 2.854937485e-01 1.500000000e+00 +$XSUPER 3 5 2 2.472222222e+00* +$* -2.739338628e-01 1.500000000e+00 +$XSUPER 3 6 1 2.777777778e+00* +$* 2.909669636e-01 1.500000000e+00 +$XSUPER 3 6 2 2.777777778e+00* +$* -2.629722361e-01 1.500000000e+00 +$XSUPER 3 7 1 3.083333333e+00* +$* 2.879981108e-01 1.500000000e+00 +$XSUPER 3 7 2 3.083333333e+00* +$* -2.365727752e-01 1.500000000e+00 +$XSUPER 3 8 1 3.388888889e+00* +$* 2.761068014e-01 1.500000000e+00 +$XSUPER 3 8 2 3.388888889e+00* +$* -1.998975258e-01 1.500000000e+00 +$XSUPER 3 9 1 3.694444444e+00* +$* 2.551074058e-01 1.500000000e+00 +$XSUPER 3 9 2 3.694444444e+00* +$* -1.573636928e-01 1.500000000e+00 +$XSUPER 3 10 1 4.000000000e+00* +$* 2.252587846e-01 1.500000000e+00 +$XSUPER 3 10 2 4.000000000e+00* +$* -1.129257390e-01 1.500000000e+00 +$XSUPER 4 1 1 1.652343750e+00* +$* 1.664320552e-01 2.281312500e+00 +$XSUPER 4 1 2 1.652343750e+00* +$* -1.676275611e-01 2.281312500e+00 +$XSUPER 4 2 1 1.944010417e+00* +$* 2.114187517e-01 2.281312500e+00 +$XSUPER 4 2 2 1.944010417e+00* +$* -2.113933612e-01 2.281312500e+00 +$XSUPER 4 3 1 2.235677083e+00* +$* 2.409636000e-01 2.281312500e+00 +$XSUPER 4 3 2 2.235677083e+00* +$* -2.388676593e-01 2.281312500e+00 +$XSUPER 4 4 1 2.527343750e+00* +$* 2.606190376e-01 2.281312500e+00 +$XSUPER 4 4 2 2.527343750e+00* +$* -2.560169241e-01 2.281312500e+00 +$XSUPER 4 5 1 2.819010417e+00* +$* 2.733911437e-01 2.281312500e+00 +$XSUPER 4 5 2 2.819010417e+00* +$* -2.623665773e-01 2.281312500e+00 +$XSUPER 4 6 1 3.110677083e+00* +$* 2.786751938e-01 2.281312500e+00 +$XSUPER 4 6 2 3.110677083e+00* +$* -2.520226986e-01 2.281312500e+00 +$XSUPER 4 7 1 3.402343750e+00* +$* 2.759184688e-01 2.281312500e+00 +$XSUPER 4 7 2 3.402343750e+00* +$* -2.269317280e-01 2.281312500e+00 +$XSUPER 4 8 1 3.694010417e+00* +$* 2.646739627e-01 2.281312500e+00 +$XSUPER 4 8 2 3.694010417e+00* +$* -1.920137058e-01 2.281312500e+00 +$XSUPER 4 9 1 3.985677083e+00* +$* 2.447616526e-01 2.281312500e+00 +$XSUPER 4 9 2 3.985677083e+00* +$* -1.514712031e-01 2.281312500e+00 +$XSUPER 4 10 1 4.277343750e+00* +$* 2.164157514e-01 2.281312500e+00 +$XSUPER 4 10 2 4.277343750e+00* +$* -1.090537274e-01 2.281312500e+00 +$XSUPER 5 1 1 2.054687500e+00* +$* 1.595746876e-01 3.062625000e+00 +$XSUPER 5 1 2 2.054687500e+00* +$* -1.607129210e-01 3.062625000e+00 +$XSUPER 5 2 1 2.332465278e+00* +$* 2.023108529e-01 3.062625000e+00 +$XSUPER 5 2 2 2.332465278e+00* +$* -2.022773566e-01 3.062625000e+00 +$XSUPER 5 3 1 2.610243056e+00* +$* 2.303948422e-01 3.062625000e+00 +$XSUPER 5 3 2 2.610243056e+00* +$* -2.283863335e-01 3.062625000e+00 +$XSUPER 5 4 1 2.888020833e+00* +$* 2.491079685e-01 3.062625000e+00 +$XSUPER 5 4 2 2.888020833e+00* +$* -2.447121985e-01 3.062625000e+00 +$XSUPER 5 5 1 3.165798611e+00* +$* 2.612885390e-01 3.062625000e+00 +$XSUPER 5 5 2 3.165798611e+00* +$* -2.507916046e-01 3.062625000e+00 +$XSUPER 5 6 1 3.443576389e+00* +$* 2.663834240e-01 3.062625000e+00 +$XSUPER 5 6 2 3.443576389e+00* +$* -2.410731611e-01 3.062625000e+00 +$XSUPER 5 7 1 3.721354167e+00* +$* 2.638388268e-01 3.062625000e+00 +$XSUPER 5 7 2 3.721354167e+00* +$* -2.172906808e-01 3.062625000e+00 +$XSUPER 5 8 1 3.999131944e+00* +$* 2.532411240e-01 3.062625000e+00 +$XSUPER 5 8 2 3.999131944e+00* +$* -1.841298859e-01 3.062625000e+00 +$XSUPER 5 9 1 4.276909722e+00* +$* 2.344158994e-01 3.062625000e+00 +$XSUPER 5 9 2 4.276909722e+00* +$* -1.455787135e-01 3.062625000e+00 +$XSUPER 5 10 1 4.554687500e+00* +$* 2.075727181e-01 3.062625000e+00 +$XSUPER 5 10 2 4.554687500e+00* +$* -1.051881428e-01 3.062625000e+00 +$XSUPER 6 1 1 2.457031250e+00* +$* 1.527173199e-01 3.843937500e+00 +$XSUPER 6 1 2 2.457031250e+00* +$* -1.537982809e-01 3.843937500e+00 +$XSUPER 6 2 1 2.720920139e+00* +$* 1.932029542e-01 3.843937500e+00 +$XSUPER 6 2 2 2.720920139e+00* +$* -1.931613520e-01 3.843937500e+00 +$XSUPER 6 3 1 2.984809028e+00* +$* 2.198260845e-01 3.843937500e+00 +$XSUPER 6 3 2 2.984809028e+00* +$* -2.179050078e-01 3.843937500e+00 +$XSUPER 6 4 1 3.248697917e+00* +$* 2.375968994e-01 3.843937500e+00 +$XSUPER 6 4 2 3.248697917e+00* +$* -2.334074729e-01 3.843937500e+00 +$XSUPER 6 5 1 3.512586806e+00* +$* 2.491859343e-01 3.843937500e+00 +$XSUPER 6 5 2 3.512586806e+00* +$* -2.392166319e-01 3.843937500e+00 +$XSUPER 6 6 1 3.776475694e+00* +$* 2.540916542e-01 3.843937500e+00 +$XSUPER 6 6 2 3.776475694e+00* +$* -2.301236237e-01 3.843937500e+00 +$XSUPER 6 7 1 4.040364583e+00* +$* 2.517591847e-01 3.843937500e+00 +$XSUPER 6 7 2 4.040364583e+00* +$* -2.076496337e-01 3.843937500e+00 +$XSUPER 6 8 1 4.304253472e+00* +$* 2.418082854e-01 3.843937500e+00 +$XSUPER 6 8 2 4.304253472e+00* +$* -1.762460659e-01 3.843937500e+00 +$XSUPER 6 9 1 4.568142361e+00* +$* 2.240701462e-01 3.843937500e+00 +$XSUPER 6 9 2 4.568142361e+00* +$* -1.396862238e-01 3.843937500e+00 +$XSUPER 6 10 1 4.832031250e+00* +$* 1.987296849e-01 3.843937500e+00 +$XSUPER 6 10 2 4.832031250e+00* +$* -1.013225582e-01 3.843937500e+00 +$XSUPER 7 1 1 2.859375000e+00* +$* 1.458599522e-01 4.625250000e+00 +$XSUPER 7 1 2 2.859375000e+00* +$* -1.468836408e-01 4.625250000e+00 +$XSUPER 7 2 1 3.109375000e+00* +$* 1.840950554e-01 4.625250000e+00 +$XSUPER 7 2 2 3.109375000e+00* +$* -1.840453474e-01 4.625250000e+00 +$XSUPER 7 3 1 3.359375000e+00* +$* 2.092573267e-01 4.625250000e+00 +$XSUPER 7 3 2 3.359375000e+00* +$* -2.074236821e-01 4.625250000e+00 +$XSUPER 7 4 1 3.609375000e+00* +$* 2.260858303e-01 4.625250000e+00 +$XSUPER 7 4 2 3.609375000e+00* +$* -2.221027473e-01 4.625250000e+00 +$XSUPER 7 5 1 3.859375000e+00* +$* 2.370833295e-01 4.625250000e+00 +$XSUPER 7 5 2 3.859375000e+00* +$* -2.276416592e-01 4.625250000e+00 +$XSUPER 7 6 1 4.109375000e+00* +$* 2.417998843e-01 4.625250000e+00 +$XSUPER 7 6 2 4.109375000e+00* +$* -2.191740862e-01 4.625250000e+00 +$XSUPER 7 7 1 4.359375000e+00* +$* 2.396795427e-01 4.625250000e+00 +$XSUPER 7 7 2 4.359375000e+00* +$* -1.980085865e-01 4.625250000e+00 +$XSUPER 7 8 1 4.609375000e+00* +$* 2.303754467e-01 4.625250000e+00 +$XSUPER 7 8 2 4.609375000e+00* +$* -1.683622459e-01 4.625250000e+00 +$XSUPER 7 9 1 4.859375000e+00* +$* 2.137243929e-01 4.625250000e+00 +$XSUPER 7 9 2 4.859375000e+00* +$* -1.337937342e-01 4.625250000e+00 +$XSUPER 7 10 1 5.109375000e+00* +$* 1.898866516e-01 4.625250000e+00 +$XSUPER 7 10 2 5.109375000e+00* +$* -9.745697353e-02 4.625250000e+00 +$XSUPER 8 1 1 3.261718750e+00* +$* 1.390025846e-01 5.406562500e+00 +$XSUPER 8 1 2 3.261718750e+00* +$* -1.399690007e-01 5.406562500e+00 +$XSUPER 8 2 1 3.497829861e+00* +$* 1.749871567e-01 5.406562500e+00 +$XSUPER 8 2 2 3.497829861e+00* +$* -1.749293429e-01 5.406562500e+00 +$XSUPER 8 3 1 3.733940972e+00* +$* 1.986885689e-01 5.406562500e+00 +$XSUPER 8 3 2 3.733940972e+00* +$* -1.969423564e-01 5.406562500e+00 +$XSUPER 8 4 1 3.970052083e+00* +$* 2.145747611e-01 5.406562500e+00 +$XSUPER 8 4 2 3.970052083e+00* +$* -2.107980217e-01 5.406562500e+00 +$XSUPER 8 5 1 4.206163194e+00* +$* 2.249807248e-01 5.406562500e+00 +$XSUPER 8 5 2 4.206163194e+00* +$* -2.160666865e-01 5.406562500e+00 +$XSUPER 8 6 1 4.442274306e+00* +$* 2.295046483e-01 5.406562500e+00 +$XSUPER 8 6 2 4.442274306e+00* +$* -2.082245487e-01 5.406562500e+00 +$XSUPER 8 7 1 4.678385417e+00* +$* 2.275999007e-01 5.406562500e+00 +$XSUPER 8 7 2 4.678385417e+00* +$* -1.883675393e-01 5.406562500e+00 +$XSUPER 8 8 1 4.914496528e+00* +$* 2.189426081e-01 5.406562500e+00 +$XSUPER 8 8 2 4.914496528e+00* +$* -1.604784259e-01 5.406562500e+00 +$XSUPER 8 9 1 5.150607639e+00* +$* 2.033786397e-01 5.406562500e+00 +$XSUPER 8 9 2 5.150607639e+00* +$* -1.279012446e-01 5.406562500e+00 +$XSUPER 8 10 1 5.386718750e+00* +$* 1.810436184e-01 5.406562500e+00 +$XSUPER 8 10 2 5.386718750e+00* +$* -9.359138890e-02 5.406562500e+00 +$XSUPER 9 1 1 3.664062500e+00* +$* 1.321452169e-01 6.187875000e+00 +$XSUPER 9 1 2 3.664062500e+00* +$* -1.330543606e-01 6.187875000e+00 +$XSUPER 9 2 1 3.886284722e+00* +$* 1.658792580e-01 6.187875000e+00 +$XSUPER 9 2 2 3.886284722e+00* +$* -1.658133383e-01 6.187875000e+00 +$XSUPER 9 3 1 4.108506944e+00* +$* 1.881198112e-01 6.187875000e+00 +$XSUPER 9 3 2 4.108506944e+00* +$* -1.864610307e-01 6.187875000e+00 +$XSUPER 9 4 1 4.330729167e+00* +$* 2.030636920e-01 6.187875000e+00 +$XSUPER 9 4 2 4.330729167e+00* +$* -1.994932960e-01 6.187875000e+00 +$XSUPER 9 5 1 4.552951389e+00* +$* 2.128781201e-01 6.187875000e+00 +$XSUPER 9 5 2 4.552951389e+00* +$* -2.044917138e-01 6.187875000e+00 +$XSUPER 9 6 1 4.775173611e+00* +$* 2.171880561e-01 6.187875000e+00 +$XSUPER 9 6 2 4.775173611e+00* +$* -1.972750113e-01 6.187875000e+00 +$XSUPER 9 7 1 4.997395833e+00* +$* 2.155202587e-01 6.187875000e+00 +$XSUPER 9 7 2 4.997395833e+00* +$* -1.787264921e-01 6.187875000e+00 +$XSUPER 9 8 1 5.219618056e+00* +$* 2.075097694e-01 6.187875000e+00 +$XSUPER 9 8 2 5.219618056e+00* +$* -1.525946059e-01 6.187875000e+00 +$XSUPER 9 9 1 5.441840278e+00* +$* 1.930328865e-01 6.187875000e+00 +$XSUPER 9 9 2 5.441840278e+00* +$* -1.220087549e-01 6.187875000e+00 +$XSUPER 9 10 1 5.664062500e+00* +$* 1.722005851e-01 6.187875000e+00 +$XSUPER 9 10 2 5.664062500e+00* +$* -8.972580427e-02 6.187875000e+00 +$XSUPER 10 1 1 4.066406250e+00* +$* 1.252878493e-01 6.969187500e+00 +$XSUPER 10 1 2 4.066406250e+00* +$* -1.261397205e-01 6.969187500e+00 +$XSUPER 10 2 1 4.274739583e+00* +$* 1.567713592e-01 6.969187500e+00 +$XSUPER 10 2 2 4.274739583e+00* +$* -1.566973337e-01 6.969187500e+00 +$XSUPER 10 3 1 4.483072917e+00* +$* 1.775510534e-01 6.969187500e+00 +$XSUPER 10 3 2 4.483072917e+00* +$* -1.759797050e-01 6.969187500e+00 +$XSUPER 10 4 1 4.691406250e+00* +$* 1.915526229e-01 6.969187500e+00 +$XSUPER 10 4 2 4.691406250e+00* +$* -1.881885704e-01 6.969187500e+00 +$XSUPER 10 5 1 4.899739583e+00* +$* 2.007755154e-01 6.969187500e+00 +$XSUPER 10 5 2 4.899739583e+00* +$* -1.929167411e-01 6.969187500e+00 +$XSUPER 10 6 1 5.108072917e+00* +$* 2.048714638e-01 6.969187500e+00 +$XSUPER 10 6 2 5.108072917e+00* +$* -1.862762359e-01 6.969187500e+00 +$XSUPER 10 7 1 5.316406250e+00* +$* 2.034373069e-01 6.969187500e+00 +$XSUPER 10 7 2 5.316406250e+00* +$* -1.690854449e-01 6.969187500e+00 +$XSUPER 10 8 1 5.524739583e+00* +$* 1.960769307e-01 6.969187500e+00 +$XSUPER 10 8 2 5.524739583e+00* +$* -1.447107860e-01 6.969187500e+00 +$XSUPER 10 9 1 5.733072917e+00* +$* 1.826871333e-01 6.969187500e+00 +$XSUPER 10 9 2 5.733072917e+00* +$* -1.161162653e-01 6.969187500e+00 +$XSUPER 10 10 1 5.941406250e+00* +$* 1.633575519e-01 6.969187500e+00 +$XSUPER 10 10 2 5.941406250e+00* +$* -8.586021964e-02 6.969187500e+00 +$XSUPER 11 1 1 4.468750000e+00* +$* 1.184304816e-01 7.750500000e+00 +$XSUPER 11 1 2 4.468750000e+00* +$* -1.192250804e-01 7.750500000e+00 +$XSUPER 11 2 1 4.663194444e+00* +$* 1.476634605e-01 7.750500000e+00 +$XSUPER 11 2 2 4.663194444e+00* +$* -1.475813291e-01 7.750500000e+00 +$XSUPER 11 3 1 4.857638889e+00* +$* 1.669822957e-01 7.750500000e+00 +$XSUPER 11 3 2 4.857638889e+00* +$* -1.654983793e-01 7.750500000e+00 +$XSUPER 11 4 1 5.052083333e+00* +$* 1.800415538e-01 7.750500000e+00 +$XSUPER 11 4 2 5.052083333e+00* +$* -1.768838448e-01 7.750500000e+00 +$XSUPER 11 5 1 5.246527778e+00* +$* 1.886729106e-01 7.750500000e+00 +$XSUPER 11 5 2 5.246527778e+00* +$* -1.813417684e-01 7.750500000e+00 +$XSUPER 11 6 1 5.440972222e+00* +$* 1.925548716e-01 7.750500000e+00 +$XSUPER 11 6 2 5.440972222e+00* +$* -1.752768477e-01 7.750500000e+00 +$XSUPER 11 7 1 5.635416667e+00* +$* 1.913153181e-01 7.750500000e+00 +$XSUPER 11 7 2 5.635416667e+00* +$* -1.594283393e-01 7.750500000e+00 +$XSUPER 11 8 1 5.829861111e+00* +$* 1.846357265e-01 7.750500000e+00 +$XSUPER 11 8 2 5.829861111e+00* +$* -1.368269660e-01 7.750500000e+00 +$XSUPER 11 9 1 6.024305556e+00* +$* 1.723413800e-01 7.750500000e+00 +$XSUPER 11 9 2 6.024305556e+00* +$* -1.102237756e-01 7.750500000e+00 +$XSUPER 11 10 1 6.218750000e+00* +$* 1.545145186e-01 7.750500000e+00 +$XSUPER 11 10 2 6.218750000e+00* +$* -8.199463501e-02 7.750500000e+00 +$XSUPER 12 1 1 4.871093750e+00* +$* 1.115731139e-01 8.531812500e+00 +$XSUPER 12 1 2 4.871093750e+00* +$* -1.123104403e-01 8.531812500e+00 +$XSUPER 12 2 1 5.051649306e+00* +$* 1.385555617e-01 8.531812500e+00 +$XSUPER 12 2 2 5.051649306e+00* +$* -1.384653245e-01 8.531812500e+00 +$XSUPER 12 3 1 5.232204861e+00* +$* 1.564135379e-01 8.531812500e+00 +$XSUPER 12 3 2 5.232204861e+00* +$* -1.550170536e-01 8.531812500e+00 +$XSUPER 12 4 1 5.412760417e+00* +$* 1.685304846e-01 8.531812500e+00 +$XSUPER 12 4 2 5.412760417e+00* +$* -1.655791192e-01 8.531812500e+00 +$XSUPER 12 5 1 5.593315972e+00* +$* 1.765703059e-01 8.531812500e+00 +$XSUPER 12 5 2 5.593315972e+00* +$* -1.697667957e-01 8.531812500e+00 +$XSUPER 12 6 1 5.773871528e+00* +$* 1.802382793e-01 8.531812500e+00 +$XSUPER 12 6 2 5.773871528e+00* +$* -1.642774595e-01 8.531812500e+00 +$XSUPER 12 7 1 5.954427083e+00* +$* 1.791933294e-01 8.531812500e+00 +$XSUPER 12 7 2 5.954427083e+00* +$* -1.497333338e-01 8.531812500e+00 +$XSUPER 12 8 1 6.134982639e+00* +$* 1.731431829e-01 8.531812500e+00 +$XSUPER 12 8 2 6.134982639e+00* +$* -1.289235605e-01 8.531812500e+00 +$XSUPER 12 9 1 6.315538194e+00* +$* 1.619507616e-01 8.531812500e+00 +$XSUPER 12 9 2 6.315538194e+00* +$* -1.043312860e-01 8.531812500e+00 +$XSUPER 12 10 1 6.496093750e+00* +$* 1.456563750e-01 8.531812500e+00 +$XSUPER 12 10 2 6.496093750e+00* +$* -7.812905038e-02 8.531812500e+00 +$XSUPER 13 1 1 5.273437500e+00* +$* 1.047157463e-01 9.313125000e+00 +$XSUPER 13 1 2 5.273437500e+00* +$* -1.053958002e-01 9.313125000e+00 +$XSUPER 13 2 1 5.440104167e+00* +$* 1.294476630e-01 9.313125000e+00 +$XSUPER 13 2 2 5.440104167e+00* +$* -1.293493199e-01 9.313125000e+00 +$XSUPER 13 3 1 5.606770833e+00* +$* 1.458447802e-01 9.313125000e+00 +$XSUPER 13 3 2 5.606770833e+00* +$* -1.445357279e-01 9.313125000e+00 +$XSUPER 13 4 1 5.773437500e+00* +$* 1.570194155e-01 9.313125000e+00 +$XSUPER 13 4 2 5.773437500e+00* +$* -1.542743936e-01 9.313125000e+00 +$XSUPER 13 5 1 5.940104167e+00* +$* 1.644677012e-01 9.313125000e+00 +$XSUPER 13 5 2 5.940104167e+00* +$* -1.581918230e-01 9.313125000e+00 +$XSUPER 13 6 1 6.106770833e+00* +$* 1.679216871e-01 9.313125000e+00 +$XSUPER 13 6 2 6.106770833e+00* +$* -1.532780713e-01 9.313125000e+00 +$XSUPER 13 7 1 6.273437500e+00* +$* 1.670713407e-01 9.313125000e+00 +$XSUPER 13 7 2 6.273437500e+00* +$* -1.400383283e-01 9.313125000e+00 +$XSUPER 13 8 1 6.440104167e+00* +$* 1.616506394e-01 9.313125000e+00 +$XSUPER 13 8 2 6.440104167e+00* +$* -1.209948460e-01 9.313125000e+00 +$XSUPER 13 9 1 6.606770833e+00* +$* 1.515287150e-01 9.313125000e+00 +$XSUPER 13 9 2 6.606770833e+00* +$* -9.841665621e-02 9.313125000e+00 +$XSUPER 13 10 1 6.773437500e+00* +$* 1.367336674e-01 9.313125000e+00 +$XSUPER 13 10 2 6.773437500e+00* +$* -7.426757718e-02 9.313125000e+00 +$XSUPER 14 1 1 5.675781250e+00* +$* 9.785837862e-02 1.009443750e+01 +$XSUPER 14 1 2 5.675781250e+00* +$* -9.848116012e-02 1.009443750e+01 +$XSUPER 14 2 1 5.828559028e+00* +$* 1.203397643e-01 1.009443750e+01 +$XSUPER 14 2 2 5.828559028e+00* +$* -1.202333153e-01 1.009443750e+01 +$XSUPER 14 3 1 5.981336806e+00* +$* 1.352760224e-01 1.009443750e+01 +$XSUPER 14 3 2 5.981336806e+00* +$* -1.340544022e-01 1.009443750e+01 +$XSUPER 14 4 1 6.134114583e+00* +$* 1.455083464e-01 1.009443750e+01 +$XSUPER 14 4 2 6.134114583e+00* +$* -1.429696679e-01 1.009443750e+01 +$XSUPER 14 5 1 6.286892361e+00* +$* 1.523650964e-01 1.009443750e+01 +$XSUPER 14 5 2 6.286892361e+00* +$* -1.466168503e-01 1.009443750e+01 +$XSUPER 14 6 1 6.439670139e+00* +$* 1.556050949e-01 1.009443750e+01 +$XSUPER 14 6 2 6.439670139e+00* +$* -1.422786830e-01 1.009443750e+01 +$XSUPER 14 7 1 6.592447917e+00* +$* 1.549493520e-01 1.009443750e+01 +$XSUPER 14 7 2 6.592447917e+00* +$* -1.303433228e-01 1.009443750e+01 +$XSUPER 14 8 1 6.745225694e+00* +$* 1.501580958e-01 1.009443750e+01 +$XSUPER 14 8 2 6.745225694e+00* +$* -1.130661315e-01 1.009443750e+01 +$XSUPER 14 9 1 6.898003472e+00* +$* 1.411066683e-01 1.009443750e+01 +$XSUPER 14 9 2 6.898003472e+00* +$* -9.249947186e-02 1.009443750e+01 +$XSUPER 14 10 1 7.050781250e+00* +$* 1.278109597e-01 1.009443750e+01 +$XSUPER 14 10 2 7.050781250e+00* +$* -7.040978300e-02 1.009443750e+01 +$XSUPER 15 1 1 6.078125000e+00* +$* 9.100101096e-02 1.087575000e+01 +$XSUPER 15 1 2 6.078125000e+00* +$* -9.156652002e-02 1.087575000e+01 +$XSUPER 15 2 1 6.217013889e+00* +$* 1.112318655e-01 1.087575000e+01 +$XSUPER 15 2 2 6.217013889e+00* +$* -1.111173107e-01 1.087575000e+01 +$XSUPER 15 3 1 6.355902778e+00* +$* 1.247072646e-01 1.087575000e+01 +$XSUPER 15 3 2 6.355902778e+00* +$* -1.235730765e-01 1.087575000e+01 +$XSUPER 15 4 1 6.494791667e+00* +$* 1.339972772e-01 1.087575000e+01 +$XSUPER 15 4 2 6.494791667e+00* +$* -1.316649423e-01 1.087575000e+01 +$XSUPER 15 5 1 6.633680556e+00* +$* 1.402624917e-01 1.087575000e+01 +$XSUPER 15 5 2 6.633680556e+00* +$* -1.350418777e-01 1.087575000e+01 +$XSUPER 15 6 1 6.772569444e+00* +$* 1.432885026e-01 1.087575000e+01 +$XSUPER 15 6 2 6.772569444e+00* +$* -1.312792948e-01 1.087575000e+01 +$XSUPER 15 7 1 6.911458333e+00* +$* 1.428273633e-01 1.087575000e+01 +$XSUPER 15 7 2 6.911458333e+00* +$* -1.206483173e-01 1.087575000e+01 +$XSUPER 15 8 1 7.050347222e+00* +$* 1.386655523e-01 1.087575000e+01 +$XSUPER 15 8 2 7.050347222e+00* +$* -1.051374171e-01 1.087575000e+01 +$XSUPER 15 9 1 7.189236111e+00* +$* 1.306846217e-01 1.087575000e+01 +$XSUPER 15 9 2 7.189236111e+00* +$* -8.658228752e-02 1.087575000e+01 +$XSUPER 15 10 1 7.328125000e+00* +$* 1.188882521e-01 1.087575000e+01 +$XSUPER 15 10 2 7.328125000e+00* +$* -6.655198883e-02 1.087575000e+01 +$XSUPER 16 1 1 6.480468750e+00* +$* 8.414364330e-02 1.165706250e+01 +$XSUPER 16 1 2 6.480468750e+00* +$* -8.463708475e-02 1.165706250e+01 +$XSUPER 16 2 1 6.605468750e+00* +$* 1.021239668e-01 1.165706250e+01 +$XSUPER 16 2 2 6.605468750e+00* +$* -1.020013061e-01 1.165706250e+01 +$XSUPER 16 3 1 6.730468750e+00* +$* 1.141385069e-01 1.165706250e+01 +$XSUPER 16 3 2 6.730468750e+00* +$* -1.130917508e-01 1.165706250e+01 +$XSUPER 16 4 1 6.855468750e+00* +$* 1.224862081e-01 1.165706250e+01 +$XSUPER 16 4 2 6.855468750e+00* +$* -1.203602167e-01 1.165706250e+01 +$XSUPER 16 5 1 6.980468750e+00* +$* 1.281598870e-01 1.165706250e+01 +$XSUPER 16 5 2 6.980468750e+00* +$* -1.234669050e-01 1.165706250e+01 +$XSUPER 16 6 1 7.105468750e+00* +$* 1.309719104e-01 1.165706250e+01 +$XSUPER 16 6 2 7.105468750e+00* +$* -1.202799066e-01 1.165706250e+01 +$XSUPER 16 7 1 7.230468750e+00* +$* 1.307053745e-01 1.165706250e+01 +$XSUPER 16 7 2 7.230468750e+00* +$* -1.109533118e-01 1.165706250e+01 +$XSUPER 16 8 1 7.355468750e+00* +$* 1.271730087e-01 1.165706250e+01 +$XSUPER 16 8 2 7.355468750e+00* +$* -9.720870263e-02 1.165706250e+01 +$XSUPER 16 9 1 7.480468750e+00* +$* 1.202625751e-01 1.165706250e+01 +$XSUPER 16 9 2 7.480468750e+00* +$* -8.066510317e-02 1.165706250e+01 +$XSUPER 16 10 1 7.605468750e+00* +$* 1.099655445e-01 1.165706250e+01 +$XSUPER 16 10 2 7.605468750e+00* +$* -6.269419465e-02 1.165706250e+01 +$XSUPER 17 1 1 6.882812500e+00* +$* 7.721677230e-02 1.243837500e+01 +$XSUPER 17 1 2 6.882812500e+00* +$* -7.763195330e-02 1.243837500e+01 +$XSUPER 17 2 1 6.993923611e+00* +$* 9.301606805e-02 1.243837500e+01 +$XSUPER 17 2 2 6.993923611e+00* +$* -9.287513326e-02 1.243837500e+01 +$XSUPER 17 3 1 7.105034722e+00* +$* 1.035697491e-01 1.243837500e+01 +$XSUPER 17 3 2 7.105034722e+00* +$* -1.026104251e-01 1.243837500e+01 +$XSUPER 17 4 1 7.216145833e+00* +$* 1.109751390e-01 1.243837500e+01 +$XSUPER 17 4 2 7.216145833e+00* +$* -1.090554911e-01 1.243837500e+01 +$XSUPER 17 5 1 7.327256944e+00* +$* 1.160572822e-01 1.243837500e+01 +$XSUPER 17 5 2 7.327256944e+00* +$* -1.118919323e-01 1.243837500e+01 +$XSUPER 17 6 1 7.438368056e+00* +$* 1.186553182e-01 1.243837500e+01 +$XSUPER 17 6 2 7.438368056e+00* +$* -1.092805183e-01 1.243837500e+01 +$XSUPER 17 7 1 7.549479167e+00* +$* 1.185833858e-01 1.243837500e+01 +$XSUPER 17 7 2 7.549479167e+00* +$* -1.012583063e-01 1.243837500e+01 +$XSUPER 17 8 1 7.660590278e+00* +$* 1.156804652e-01 1.243837500e+01 +$XSUPER 17 8 2 7.660590278e+00* +$* -8.927998817e-02 1.243837500e+01 +$XSUPER 17 9 1 7.771701389e+00* +$* 1.097816536e-01 1.243837500e+01 +$XSUPER 17 9 2 7.771701389e+00* +$* -7.473606469e-02 1.243837500e+01 +$XSUPER 17 10 1 7.882812500e+00* +$* 1.009350505e-01 1.243837500e+01 +$XSUPER 17 10 2 7.882812500e+00* +$* -5.883281590e-02 1.243837500e+01 +$XSUPER 18 1 1 7.285156250e+00* +$* 7.027396045e-02 1.321968750e+01 +$XSUPER 18 1 2 7.285156250e+00* +$* -7.062682185e-02 1.321968750e+01 +$XSUPER 18 2 1 7.382378472e+00* +$* 8.386093397e-02 1.321968750e+01 +$XSUPER 18 2 2 7.382378472e+00* +$* -8.368791045e-02 1.321968750e+01 +$XSUPER 18 3 1 7.479600694e+00* +$* 9.300099136e-02 1.321968750e+01 +$XSUPER 18 3 2 7.479600694e+00* +$* -9.212909936e-02 1.321968750e+01 +$XSUPER 18 4 1 7.576822917e+00* +$* 9.946406987e-02 1.321968750e+01 +$XSUPER 18 4 2 7.576822917e+00* +$* -9.775076545e-02 1.321968750e+01 +$XSUPER 18 5 1 7.674045139e+00* +$* 1.039546775e-01 1.321968750e+01 +$XSUPER 18 5 2 7.674045139e+00* +$* -1.003169596e-01 1.321968750e+01 +$XSUPER 18 6 1 7.771267361e+00* +$* 1.063387259e-01 1.321968750e+01 +$XSUPER 18 6 2 7.771267361e+00* +$* -9.828113009e-02 1.321968750e+01 +$XSUPER 18 7 1 7.868489583e+00* +$* 1.064417390e-01 1.321968750e+01 +$XSUPER 18 7 2 7.868489583e+00* +$* -9.155857643e-02 1.321968750e+01 +$XSUPER 18 8 1 7.965711806e+00* +$* 1.040909607e-01 1.321968750e+01 +$XSUPER 18 8 2 7.965711806e+00* +$* -8.128723329e-02 1.321968750e+01 +$XSUPER 18 9 1 8.062934028e+00* +$* 9.924547084e-02 1.321968750e+01 +$XSUPER 18 9 2 8.062934028e+00* +$* -6.876648479e-02 1.321968750e+01 +$XSUPER 18 10 1 8.160156250e+00* +$* 9.189127434e-02 1.321968750e+01 +$XSUPER 18 10 2 8.160156250e+00* +$* -5.496870470e-02 1.321968750e+01 +$XSUPER 19 1 1 7.687500000e+00* +$* 6.294987309e-02 1.400100000e+01 +$XSUPER 19 1 2 7.687500000e+00* +$* -6.324189568e-02 1.400100000e+01 +$XSUPER 19 2 1 7.770833333e+00* +$* 7.382540288e-02 1.400100000e+01 +$XSUPER 19 2 2 7.770833333e+00* +$* -7.363085869e-02 1.400100000e+01 +$XSUPER 19 3 1 7.854166667e+00* +$* 8.188688491e-02 1.400100000e+01 +$XSUPER 19 3 2 7.854166667e+00* +$* -8.107918914e-02 1.400100000e+01 +$XSUPER 19 4 1 7.937500000e+00* +$* 8.762942269e-02 1.400100000e+01 +$XSUPER 19 4 2 7.937500000e+00* +$* -8.596362721e-02 1.400100000e+01 +$XSUPER 19 5 1 8.020833333e+00* +$* 9.165110913e-02 1.400100000e+01 +$XSUPER 19 5 2 8.020833333e+00* +$* -8.853075409e-02 1.400100000e+01 +$XSUPER 19 6 1 8.104166667e+00* +$* 9.354315559e-02 1.400100000e+01 +$XSUPER 19 6 2 8.104166667e+00* +$* -8.642414365e-02 1.400100000e+01 +$XSUPER 19 7 1 8.187500000e+00* +$* 9.370557331e-02 1.400100000e+01 +$XSUPER 19 7 2 8.187500000e+00* +$* -8.101910771e-02 1.400100000e+01 +$XSUPER 19 8 1 8.270833333e+00* +$* 9.206701122e-02 1.400100000e+01 +$XSUPER 19 8 2 8.270833333e+00* +$* -7.287195827e-02 1.400100000e+01 +$XSUPER 19 9 1 8.354166667e+00* +$* 8.856150969e-02 1.400100000e+01 +$XSUPER 19 9 2 8.354166667e+00* +$* -6.264237420e-02 1.400100000e+01 +$XSUPER 19 10 1 8.437500000e+00* +$* 8.233647011e-02 1.400100000e+01 +$XSUPER 19 10 2 8.437500000e+00* +$* -5.087543007e-02 1.400100000e+01 +ENDBULK diff --git a/NACA0012_Airfoil/incompressible/genAirFoilMesh.py b/NACA0012_Airfoil/incompressible/genAirFoilMesh.py index 0ebc4ecb..c2a74288 100755 --- a/NACA0012_Airfoil/incompressible/genAirFoilMesh.py +++ b/NACA0012_Airfoil/incompressible/genAirFoilMesh.py @@ -179,10 +179,9 @@ # Since the TE is open we need to close it. Close it multiple linear segments. delta_y = numpy.linspace(y1PS[-1], y1SS[-1], NpTE, "d") +delta_x = numpy.linspace(x1PS[-1], x1SS[-1], NpTE, "d") delta_y = delta_y[1:] -delta_x = numpy.ones_like(delta_y, "d") -for i in range(len(delta_x)): - delta_x[i] = x1SS[-1] +delta_x = delta_x[1:] x1SS_Flip = x1SS[::-1] # reverse the array #numpy.flip(x1SS,axis=0) xAll = numpy.append(x1SS_Flip, x1PS[1:]) diff --git a/NACA0012_Airfoil/incompressible/runScript.py b/NACA0012_Airfoil/incompressible/runScript.py index 706ac4a5..61a0b26f 100755 --- a/NACA0012_Airfoil/incompressible/runScript.py +++ b/NACA0012_Airfoil/incompressible/runScript.py @@ -9,20 +9,20 @@ import os import argparse import numpy as np - +import json +from mpi4py import MPI import openmdao.api as om from mphys.multipoint import Multipoint -from dafoam.mphys_dafoam import DAFoamBuilder +from dafoam.mphys import DAFoamBuilder, OptFuncs from mphys.scenario_aerodynamic import ScenarioAerodynamic -from mphys.solver_builders.mphys_dvgeo import OM_DVGEOCOMP -from pygeo import * +from pygeo.mphys import OM_DVGEOCOMP parser = argparse.ArgumentParser() # which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") -# which task to run. Options are: opt (default), runPrimal -parser.add_argument("-task", help="type of run to do", type=str, default="opt") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") args = parser.parse_args() # ============================================================================= @@ -32,70 +32,71 @@ p0 = 0.0 nuTilda0 = 4.5e-5 CL_target = 0.5 -alpha0 = 5.139186 +aoa0 = 5.13918623195176 A0 = 0.1 +# rho is used for normalizing CD and CL rho0 = 1.0 +# Input parameters for DAFoam +daOptions = { + "designSurfaces": ["wing"], + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "useWallFunction": True, + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + }, + "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, + "normalizeStates": { + "U": U0, + "p": U0 * U0 / 2.0, + "nuTilda": nuTilda0 * 10.0, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], +} + + # Top class to setup the optimization problem class Top(Multipoint): def setup(self): - # Input parameters for DAFoam - daOptions = { - "designSurfaces": ["wing"], - "solverName": "DASimpleFoam", - "primalMinResTol": 1.0e-8, - "primalBC": { - "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, - "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, - "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, - "useWallFunction": True, - }, - "objFunc": { - "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "parallelToFlow", - "alphaName": "aoa", - "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), - "addToAdjoint": True, - } - }, - "CL": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "normalToFlow", - "alphaName": "aoa", - "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), - "addToAdjoint": True, - } - }, - }, - "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, - "normalizeStates": { - "U": U0, - "p": U0 * U0 / 2.0, - "nuTilda": nuTilda0 * 10.0, - "phi": 1.0, - }, - "adjPartDerivFDStep": {"State": 1e-6}, - "adjPCLag": 100, - "designVar": { - "aoa": {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "y"}, - "shape": {"designVarType": "FFD"}, - }, - } - - # Mesh deformation setup - meshOptions = { - "gridFile": os.getcwd(), - "fileType": "OpenFOAM", - # point and normal for the symmetry plane - "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], - } # create the builder to initialize the DASolvers dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") @@ -108,25 +109,20 @@ def setup(self): self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) # add the geometry component (FFD) - self.add_subsystem("geometry", OM_DVGEOCOMP(ffd_file="FFD/wingFFD.xyz")) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) # add a scenario (flow condition) for optimization, we pass the builder # to the scenario to actually run the flow and adjoint - self.mphys_add_scenario("cruise", ScenarioAerodynamic(aero_builder=dafoam_builder)) + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) # need to manually connect the x_aero0 between the mesh and geometry components # here x_aero0 means the surface coordinates of structurally undeformed mesh self.connect("mesh.x_aero0", "geometry.x_aero_in") - # need to manually connect the x_aero0 between the geometry component and the cruise + # need to manually connect the x_aero0 between the geometry component and the scenario1 # scenario group - self.connect("geometry.x_aero0", "cruise.x_aero") + self.connect("geometry.x_aero0", "scenario1.x_aero") def configure(self): - # configure and setup perform a similar function, i.e., initialize the optimization. - # But configure will be run after setup - - # add the objective function to the cruise scenario - self.cruise.aero_post.mphys_add_funcs(["CD", "CL"]) # get the surface coordinates from the mesh component points = self.mesh.mphys_get_surface_mesh() @@ -138,69 +134,57 @@ def configure(self): tri_points = self.mesh.mphys_get_triangulated_surface() self.geometry.nom_setConstraintSurface(tri_points) - # define an angle of attack function to change the U direction at the far field - def aoa(val, DASolver): - aoa = val[0] * np.pi / 180.0 - U = [float(U0 * np.cos(aoa)), float(U0 * np.sin(aoa)), 0] - # we need to update the U value only - DASolver.setOption("primalBC", {"U0": {"value": U}}) - DASolver.updateDAOption() - - # pass this aoa function to the cruise group - self.cruise.coupling.solver.add_dv_func("aoa", aoa) - self.cruise.aero_post.add_dv_func("aoa", aoa) - - # select the FFD points to move + # use the shape function to define shape variables for 2D airfoil pts = self.geometry.DVGeo.getLocalIndex(0) - indexList = pts[:, :, :].flatten() - PS = geo_utils.PointSelect("list", indexList) - nShapes = self.geometry.nom_addGeoDVLocal(dvName="shape", pointSelect=PS) - - # setup the symmetry constraint to link the y displacement between k=0 and k=1 - nFFDs_x = pts.shape[0] - nFFDs_y = pts.shape[1] - indSetA = [] - indSetB = [] - for i in range(nFFDs_x): - for j in range(nFFDs_y): - indSetA.append(pts[i, j, 0]) - indSetB.append(pts[i, j, 1]) - self.geometry.nom_addLinearConstraintsShape("linearcon", indSetA, indSetB, factorA=1.0, factorB=-1.0) + dir_y = np.array([0.0, 1.0, 0.0]) + shapes = [] + for i in range(1, pts.shape[0] - 1): + for j in range(pts.shape[1]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts[i, j, 0]: dir_y, pts[i, j, 1]: dir_y}) + # LE/TE shape, the j=0 and j=1 move in opposite directions so that + # the LE/TE are fixed + for i in [0, pts.shape[0] - 1]: + shapes.append({pts[i, 0, 0]: dir_y, pts[i, 0, 1]: dir_y, pts[i, 1, 0]: -dir_y, pts[i, 1, 1]: -dir_y}) + self.geometry.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) # setup the volume and thickness constraints leList = [[1e-4, 0.0, 1e-4], [1e-4, 0.0, 0.1 - 1e-4]] teList = [[0.998 - 1e-4, 0.0, 1e-4], [0.998 - 1e-4, 0.0, 0.1 - 1e-4]] self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) - self.geometry.nom_add_LETEConstraint("lecon", 0, "iLow", topID="k") - self.geometry.nom_add_LETEConstraint("tecon", 0, "iHigh", topID="k") + self.geometry.nom_addLERadiusConstraints("rcon", leList, 2, [0.0, 1.0, 0.0], [-1.0, 0.0, 0.0]) + # NOTE: we no longer need to define the sym and LE/TE constraints + # because these constraints are defined in the above shape function # add the design variables to the dvs component's output - self.dvs.add_output("shape", val=np.array([0] * nShapes)) - self.dvs.add_output("aoa", val=np.array([alpha0])) - # manually connect the dvs output to the geometry and cruise - self.connect("aoa", "cruise.aoa") + self.dvs.add_output("shape", val=np.array([0] * len(shapes))) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("patchV", "scenario1.patchV") self.connect("shape", "geometry.shape") # define the design variables to the top level - self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=1.0) - self.add_design_var("aoa", lower=0.0, upper=10.0, scaler=1.0) + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + # here we fix the U0 magnitude and allows the aoa to change + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) # add objective and constraints to the top level - self.add_objective("cruise.aero_post.CD", scaler=1.0) - self.add_constraint("cruise.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) - self.add_constraint("geometry.tecon", equals=0.0, scaler=1.0, linear=True) - self.add_constraint("geometry.lecon", equals=0.0, scaler=1.0, linear=True) - self.add_constraint("geometry.linearcon", equals=0.0) + self.add_constraint("geometry.rcon", lower=0.8, scaler=1.0) # OpenMDAO setup prob = om.Problem() prob.model = Top() prob.setup(mode="rev") -om.n2(prob, show_browser=False, outfile="mphys_aero.html") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) # use pyoptsparse to setup optimization prob.driver = om.pyOptSparseDriver() @@ -208,11 +192,11 @@ def aoa(val, DASolver): # options for optimizers if args.optimizer == "SNOPT": prob.driver.opt_settings = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, + "Function precision": 1.0e-5, "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", @@ -220,8 +204,8 @@ def aoa(val, DASolver): } elif args.optimizer == "IPOPT": prob.driver.opt_settings = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", @@ -233,7 +217,7 @@ def aoa(val, DASolver): } elif args.optimizer == "SLSQP": prob.driver.opt_settings = { - "ACC": 1.0e-7, + "ACC": 1.0e-5, "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } @@ -242,12 +226,27 @@ def aoa(val, DASolver): exit(1) prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] -prob.driver.hist_file = "opt.hst" +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" -if args.task == "opt": +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization prob.run_driver() -elif args.task == "runPrimal": +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") exit(1) diff --git a/NACA0012_Airfoil/incompressible/runScript_LOD.py b/NACA0012_Airfoil/incompressible/runScript_LOD.py deleted file mode 100755 index a81d3f4c..00000000 --- a/NACA0012_Airfoil/incompressible/runScript_LOD.py +++ /dev/null @@ -1,256 +0,0 @@ -#!/usr/bin/env python -""" -DAFoam run script for the NACA0012 airfoil at low-speed -""" - -# ============================================================================= -# Imports -# ============================================================================= -import os -import argparse -import numpy as np - -import openmdao.api as om -from mphys.multipoint import Multipoint -from dafoam.mphys_dafoam import DAFoamBuilder -from mphys.scenario_aerodynamic import ScenarioAerodynamic -from mphys.solver_builders.mphys_dvgeo import OM_DVGEOCOMP -from pygeo import * - - -parser = argparse.ArgumentParser() -# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT -parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") -# which task to run. Options are: opt (default), runPrimal -parser.add_argument("-task", help="type of run to do", type=str, default="opt") -args = parser.parse_args() - -# ============================================================================= -# Input Parameters -# ============================================================================= -U0 = 10.0 -p0 = 0.0 -nuTilda0 = 4.5e-5 -alpha0 = 5.139186 -A0 = 0.1 -rho0 = 1.0 - -# Top class to setup the optimization problem -class Top(Multipoint): - def setup(self): - # Input parameters for DAFoam - daOptions = { - "designSurfaces": ["wing"], - "solverName": "DASimpleFoam", - "primalMinResTol": 1.0e-8, - "primalBC": { - "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, - "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, - "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, - "useWallFunction": True, - }, - "objFunc": { - "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "parallelToFlow", - "alphaName": "aoa", - "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), - "addToAdjoint": True, - } - }, - "CL": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "normalToFlow", - "alphaName": "aoa", - "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), - "addToAdjoint": True, - } - }, - }, - "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, - "normalizeStates": { - "U": U0, - "p": U0 * U0 / 2.0, - "nuTilda": nuTilda0 * 10.0, - "phi": 1.0, - }, - "adjPartDerivFDStep": {"State": 1e-6}, - "adjPCLag": 100, - "designVar": { - "aoa": {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "y"}, - "shape": {"designVarType": "FFD"}, - }, - } - - # Mesh deformation setup - meshOptions = { - "gridFile": os.getcwd(), - "fileType": "OpenFOAM", - # point and normal for the symmetry plane - "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], - } - - # create the builder to initialize the DASolvers - dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") - dafoam_builder.initialize(self.comm) - - # add the design variable component to keep the top level design variables - self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) - - # add the mesh component - self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) - - # add the geometry component (FFD) - self.add_subsystem("geometry", OM_DVGEOCOMP(ffd_file="FFD/wingFFD.xyz")) - - # add a scenario (flow condition) for optimization, we pass the builder - # to the scenario to actually run the flow and adjoint - self.mphys_add_scenario("cruise", ScenarioAerodynamic(aero_builder=dafoam_builder)) - - # need to manually connect the x_aero0 between the mesh and geometry components - # here x_aero0 means the surface coordinates of structurally undeformed mesh - self.connect("mesh.x_aero0", "geometry.x_aero_in") - # need to manually connect the x_aero0 between the geometry component and the cruise - # scenario group - self.connect("geometry.x_aero0", "cruise.x_aero") - - # add an exec comp to compute L/D - self.add_subsystem("obj", om.ExecComp("LOD=CL/CD")) - - def configure(self): - # configure and setup perform a similar function, i.e., initialize the optimization. - # But configure will be run after setup - - # add the objective function to the cruise scenario - self.cruise.aero_post.mphys_add_funcs(["CD", "CL"]) - - # get the surface coordinates from the mesh component - points = self.mesh.mphys_get_surface_mesh() - - # add pointset to the geometry component - self.geometry.nom_add_discipline_coords("aero", points) - - # set the triangular points to the geometry component for geometric constraints - tri_points = self.mesh.mphys_get_triangulated_surface() - self.geometry.nom_setConstraintSurface(tri_points) - - # define an angle of attack function to change the U direction at the far field - def aoa(val, DASolver): - aoa = val[0] * np.pi / 180.0 - U = [float(U0 * np.cos(aoa)), float(U0 * np.sin(aoa)), 0] - # we need to update the U value only - DASolver.setOption("primalBC", {"U0": {"value": U}}) - DASolver.updateDAOption() - - # pass this aoa function to the cruise group - self.cruise.coupling.solver.add_dv_func("aoa", aoa) - self.cruise.aero_post.add_dv_func("aoa", aoa) - - # select the FFD points to move - pts = self.geometry.DVGeo.getLocalIndex(0) - indexList = pts[:, :, :].flatten() - PS = geo_utils.PointSelect("list", indexList) - nShapes = self.geometry.nom_addGeoDVLocal(dvName="shape", pointSelect=PS) - - # setup the symmetry constraint to link the y displacement between k=0 and k=1 - nFFDs_x = pts.shape[0] - nFFDs_y = pts.shape[1] - indSetA = [] - indSetB = [] - for i in range(nFFDs_x): - for j in range(nFFDs_y): - indSetA.append(pts[i, j, 0]) - indSetB.append(pts[i, j, 1]) - self.geometry.nom_addLinearConstraintsShape("linearcon", indSetA, indSetB, factorA=1.0, factorB=-1.0) - - # setup the volume and thickness constraints - leList = [[1e-4, 0.0, 1e-4], [1e-4, 0.0, 0.1 - 1e-4]] - teList = [[0.998 - 1e-4, 0.0, 1e-4], [0.998 - 1e-4, 0.0, 0.1 - 1e-4]] - self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) - self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) - self.geometry.nom_add_LETEConstraint("lecon", 0, "iLow", topID="k") - self.geometry.nom_add_LETEConstraint("tecon", 0, "iHigh", topID="k") - - # add the design variables to the dvs component's output - self.dvs.add_output("shape", val=np.array([0] * nShapes)) - self.dvs.add_output("aoa", val=np.array([alpha0])) - # manually connect the dvs output to the geometry and cruise - self.connect("aoa", "cruise.aoa") - self.connect("shape", "geometry.shape") - - # define the design variables to the top level - self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=1.0) - self.add_design_var("aoa", lower=0.0, upper=10.0, scaler=1.0) - - # add objective and constraints to the top level - self.add_objective("obj.LOD", scaler=-1.0) - self.connect("cruise.aero_post.CD", "obj.CD") - self.connect("cruise.aero_post.CL", "obj.CL") - self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) - self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) - self.add_constraint("geometry.tecon", equals=0.0, scaler=1.0, linear=True) - self.add_constraint("geometry.lecon", equals=0.0, scaler=1.0, linear=True) - self.add_constraint("geometry.linearcon", equals=0.0) - - -# OpenMDAO setup -prob = om.Problem() -prob.model = Top() -prob.setup(mode="rev") -om.n2(prob, show_browser=False, outfile="mphys_aero.html") - -# use pyoptsparse to setup optimization -prob.driver = om.pyOptSparseDriver() -prob.driver.options["optimizer"] = args.optimizer -# options for optimizers -if args.optimizer == "SNOPT": - prob.driver.opt_settings = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, - "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 100, - "Nonderivative linesearch": None, - "Print file": "opt_SNOPT_print.txt", - "Summary file": "opt_SNOPT_summary.txt", - } -elif args.optimizer == "IPOPT": - prob.driver.opt_settings = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 100, - "print_level": 5, - "output_file": "opt_IPOPT.txt", - "mu_strategy": "adaptive", - "limited_memory_max_history": 10, - "nlp_scaling_method": "none", - "alpha_for_y": "full", - "recalc_y": "yes", - } -elif args.optimizer == "SLSQP": - prob.driver.opt_settings = { - "ACC": 1.0e-7, - "MAXIT": 100, - "IFILE": "opt_SLSQP.txt", - } -else: - print("optimizer arg not valid!") - exit(1) - -prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] -prob.driver.hist_file = "opt.hst" - -if args.task == "opt": - prob.run_driver() -elif args.task == "runPrimal": - prob.run_model() -else: - print("task arg not found!") - exit(1) diff --git a/NACA0012_Airfoil/incompressible/runScript_LoD.py b/NACA0012_Airfoil/incompressible/runScript_LoD.py new file mode 100755 index 00000000..aa165268 --- /dev/null +++ b/NACA0012_Airfoil/incompressible/runScript_LoD.py @@ -0,0 +1,252 @@ +#!/usr/bin/env python +""" +DAFoam run script for the NACA0012 airfoil at low-speed +""" + +# ============================================================================= +# Imports +# ============================================================================= +import os +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= +U0 = 10.0 +p0 = 0.0 +nuTilda0 = 4.5e-5 +CL_target = 0.5 +aoa0 = 5.0 +A0 = 0.1 +# rho is used for normalizing CD and CL +rho0 = 1.0 + +# Input parameters for DAFoam +daOptions = { + "designSurfaces": ["wing"], + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "useWallFunction": True, + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + }, + "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, + "normalizeStates": { + "U": U0, + "p": U0 * U0 / 2.0, + "nuTilda": nuTilda0 * 10.0, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + # add an exec comp to compute L/D + self.add_subsystem("obj", om.ExecComp("val=CL/CD")) + + def configure(self): + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # use the shape function to define shape variables for 2D airfoil + pts = self.geometry.DVGeo.getLocalIndex(0) + dir_y = np.array([0.0, 1.0, 0.0]) + shapes = [] + for i in range(1, pts.shape[0] - 1): + for j in range(pts.shape[1]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts[i, j, 0]: dir_y, pts[i, j, 1]: dir_y}) + # LE/TE shape, the j=0 and j=1 move in opposite directions so that + # the LE/TE are fixed + for i in [0, pts.shape[0] - 1]: + shapes.append({pts[i, 0, 0]: dir_y, pts[i, 0, 1]: dir_y, pts[i, 1, 0]: -dir_y, pts[i, 1, 1]: -dir_y}) + self.geometry.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + + # setup the volume and thickness constraints + leList = [[1e-4, 0.0, 1e-4], [1e-4, 0.0, 0.1 - 1e-4]] + teList = [[0.998 - 1e-4, 0.0, 1e-4], [0.998 - 1e-4, 0.0, 0.1 - 1e-4]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) + self.geometry.nom_addLERadiusConstraints("rcon", leList, 2, [0.0, 1.0, 0.0], [-1.0, 0.0, 0.0]) + # NOTE: we no longer need to define the sym and LE/TE constraints + # because these constraints are defined in the above shape function + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * len(shapes))) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("patchV", "scenario1.patchV") + self.connect("shape", "geometry.shape") + + # define the design variables to the top level + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + # here we fix the U0 magnitude and aoa + self.add_design_var("patchV", lower=[U0, aoa0], upper=[U0, aoa0], scaler=0.1) + + # add objective and constraints to the top level + self.add_objective("obj.val", scaler=-1.0) + self.connect("scenario1.aero_post.CD", "obj.CD") + self.connect("scenario1.aero_post.CL", "obj.CL") + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.rcon", lower=0.8, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/NACA0012_Airfoil/incompressible/runScript_Stability_Not_Working.py b/NACA0012_Airfoil/incompressible/runScript_Stability_Not_Working.py new file mode 100755 index 00000000..6b1cd636 --- /dev/null +++ b/NACA0012_Airfoil/incompressible/runScript_Stability_Not_Working.py @@ -0,0 +1,295 @@ +#!/usr/bin/env python +""" +DAFoam run script for the NACA0012 airfoil at low-speed with a static stability constraint +Here we use the forward finite-difference method to compute dCMZ/dAOA and its derivs + +Reference: +Lyu and Martins. Aerodynamic Design Optimization Studies of a Blended-Wing-Body Aircraft. +Journal of Aircraft. 2014 + +""" + +# ============================================================================= +# Imports +# ============================================================================= +import os +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= +U0 = 10.0 +p0 = 0.0 +nuTilda0 = 4.5e-5 +CL_target = 0.5 +CMZ_upper = -0.002 +aoa0 = 5.1385655 +A0 = 0.1 +L0 = 1.0 +# rho is used for normalizing CD and CL +rho0 = 1.0 + +# Input parameters for DAFoam +daOptions = { + "designSurfaces": ["wing"], + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-9, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "useWallFunction": True, + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CMZ": { + "type": "moment", + "source": "patchToFace", + "patches": ["wing"], + "axis": [0.0, 0.0, 1.0], + "center": [0.25, 0.0, 0.05], + # NOTE. We scale it with -1 because DAFoam's CMZ calculation is positive for nose down + "scale": -1.0 / (0.5 * U0 * U0 * A0 * L0), + }, + }, + "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, + "normalizeStates": { + "U": U0, + "p": U0 * U0 / 2.0, + "nuTilda": nuTilda0 * 10.0, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("cruise", ScenarioAerodynamic(aero_builder=dafoam_builder)) + # cruise_delta is the flow condition with aoa + 0.01. We will then use the + # FD method to compute stability obj and derivs + self.mphys_add_scenario("cruise_delta", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the cruise + # scenario group + self.connect("geometry.x_aero0", "cruise.x_aero") + self.connect("geometry.x_aero0", "cruise_delta.x_aero") + + # define the stability function. Here we use the forward FD with a step size of 0.01 + self.add_subsystem("dCMZdAOA", om.ExecComp("val=(CMZ_delta - CMZ)/0.01")) + self.add_subsystem( + "patchVDelta", + om.ExecComp( + "val=patchV_delta-patchV", + val=np.zeros(2), + patchV=np.zeros(2), + patchV_delta=np.zeros(2), + ), + ) + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # use the shape function to define shape variables for 2D airfoil + pts = self.geometry.DVGeo.getLocalIndex(0) + dir_y = np.array([0.0, 1.0, 0.0]) + shapes = [] + for i in range(1, pts.shape[0] - 1): + for j in range(pts.shape[1]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts[i, j, 0]: dir_y, pts[i, j, 1]: dir_y}) + # LE/TE shape, the j=0 and j=1 move in opposite directions so that + # the LE/TE are fixed + for i in [0, pts.shape[0] - 1]: + shapes.append({pts[i, 0, 0]: dir_y, pts[i, 0, 1]: dir_y, pts[i, 1, 0]: -dir_y, pts[i, 1, 1]: -dir_y}) + self.geometry.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + + # setup the volume and thickness constraints + leList = [[1e-4, 0.0, 1e-4], [1e-4, 0.0, 0.1 - 1e-4]] + teList = [[0.998 - 1e-4, 0.0, 1e-4], [0.998 - 1e-4, 0.0, 0.1 - 1e-4]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) + # NOTE: we no longer need to define the sym and LE/TE constraints + # because these constraints are defined in the above shape function + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * len(shapes))) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + self.dvs.add_output("patchV_delta", val=np.array([U0, aoa0 + 0.01])) + # manually connect the dvs output to the geometry and cruise + self.connect("patchV", "cruise.patchV") + self.connect("patchV_delta", "cruise_delta.patchV") + self.connect("shape", "geometry.shape") + + # define the design variables to the top level + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + # here we fix the U0 magnitude and allows the aoa to change + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + self.add_design_var("patchV_delta", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + + # here we use the CD_AVG defined above as the obj func. + self.add_objective("cruise.aero_post.CD", scaler=1.0) + self.add_constraint("cruise.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + + self.add_constraint("dCMZdAOA.val", upper=CMZ_upper, scaler=1.0) + self.connect("cruise_delta.aero_post.CMZ", "dCMZdAOA.CMZ_delta") + self.connect("cruise.aero_post.CMZ", "dCMZdAOA.CMZ") + + self.add_constraint("patchVDelta.val", equals=[0.0, 0.01], scaler=1.0, linear=True) + self.connect("patchV", "patchVDelta.patchV") + self.connect("patchV_delta", "patchVDelta.patchV_delta") + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # solve CL + # optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/NACA0012_Airfoil/incompressible/system/fvSchemes b/NACA0012_Airfoil/incompressible/system/fvSchemes index 9fda8118..65c9021a 100755 --- a/NACA0012_Airfoil/incompressible/system/fvSchemes +++ b/NACA0012_Airfoil/incompressible/system/fvSchemes @@ -54,7 +54,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/Allclean.sh b/NACA0012_Airfoil/incompressible_unsteady/Allclean.sh new file mode 100755 index 00000000..7b50671a --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/Allclean.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + cd cruise + rm -rf 0 + rm -rf postProcessing + rm -rf constant/extendedFeatureEdgeMesh + rm -rf constant/triSurface + rm -rf constant/polyMesh/ + rm -rf *.bin *.info *.dat *.xyz *.stl + rm -rf processor* 0.0000* + rm -rf {1..9}* + cd ../maxLift + rm -rf 0 + rm -rf postProcessing + rm -rf constant/extendedFeatureEdgeMesh + rm -rf constant/triSurface + rm -rf constant/polyMesh/ + rm -rf *.bin *.info *.dat *.xyz *.stl + rm -rf processor* 0.0000* + rm -rf {1..9}* + cd ../ + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/U b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/U new file mode 100755 index 00000000..e9c2ba26 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (10 0 0); + +boundaryField +{ + "(wing.*)" + { + type fixedValue; + value uniform (0 0 0); + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/epsilon b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/epsilon new file mode 100755 index 00000000..98985d59 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/epsilon @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.14; + +boundaryField +{ + "(wing.*)" + { + type epsilonWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/k b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/k new file mode 100755 index 00000000..8d7bd3a7 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + "(wing.*)" + { + type kqRWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/nuTilda b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/nuTilda new file mode 100755 index 00000000..ba5af0c7 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/nuTilda @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5e-05; + +boundaryField +{ + "(wing.*)" + { + type fixedValue; + value uniform 0.0; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/nut b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/nut new file mode 100755 index 00000000..b0a13bad --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/nut @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5E-5; + +boundaryField +{ + "(wing.*)" + { + type nutUSpaldingWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/omega b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/omega new file mode 100755 index 00000000..98393ba9 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 100; + +boundaryField +{ + "(wing.*)" + { + type omegaWallFunction; + value $internalField; + blended true; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/p b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/p new file mode 100755 index 00000000..b65c22b9 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/0.orig/p @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + "(wing.*)" + { + type zeroGradient; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type fixedValue; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/FFD/genFFD.py b/NACA0012_Airfoil/incompressible_unsteady/cruise/FFD/genFFD.py new file mode 100755 index 00000000..493ecc28 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/FFD/genFFD.py @@ -0,0 +1,99 @@ +import numpy as np +import sys + +def writeFFDFile(fileName,nBlocks,nx,ny,nz,points): + ''' + Take in a set of points and write the plot 3dFile + ''' + + f = open(fileName,'w') + + f.write('%d\n'%nBlocks) + for i in range(nBlocks): + f.write('%d %d %d '%(nx[i],ny[i],nz[i])) + # end + f.write('\n') + for block in range(nBlocks): + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,0]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,1]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,2]) + # end + # end + # end + # end + f.close() + return + +def returnBlockPoints(corners,nx,ny,nz): + ''' + corners needs to be 8 x 3 + ''' + points = np.zeros([nx,ny,nz,3]) + + # points 1 - 4 are the iMin face + # points 5 - 8 are the iMax face + + for idim in range(3): + edge1 = np.linspace(corners[0][idim],corners[4][idim],nx) + edge2 = np.linspace(corners[1][idim],corners[5][idim],nx) + edge3 = np.linspace(corners[2][idim],corners[6][idim],nx) + edge4 = np.linspace(corners[3][idim],corners[7][idim],nx) + + for i in range(nx): + edge5 = np.linspace(edge1[i],edge3[i],ny) + edge6 = np.linspace(edge2[i],edge4[i],ny) + for j in range(ny): + edge7 = np.linspace(edge5[j],edge6[j],nz) + points[i,j,:,idim] = edge7 + # end + # end + # end + + return points + +################ FFD ############## +nBlocks = 1 + +nx = [5] +ny = [2] +nz = [2] + +corners = np.zeros([nBlocks,8,3]) + +corners[0,0,:] = [-0.010,-.0700,0.0] +corners[0,1,:] = [-0.010,-0.0700,0.1] +corners[0,2,:] = [-0.010,0.0700,0.0] +corners[0,3,:] = [-0.010,0.0700,0.1] +corners[0,4,:] = [ 1.01,-.07,0.0] +corners[0,5,:] = [ 1.01,-.07,0.10] +corners[0,6,:] = [ 1.01,0.07,0.0] +corners[0,7,:] = [ 1.01,0.07,0.1] + + +points = [] +for block in range(nBlocks): + points.append(returnBlockPoints(corners[block],nx[block],ny[block],nz[block])) + +#print points +fileName = 'wingFFD.xyz' +writeFFDFile(fileName,nBlocks,nx,ny,nz,points) + diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/FFD/wingFFD.xyz b/NACA0012_Airfoil/incompressible_unsteady/cruise/FFD/wingFFD.xyz new file mode 100755 index 00000000..38b3d492 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/FFD/wingFFD.xyz @@ -0,0 +1,5 @@ +1 +5 2 2 +-0.010000 0.245000 0.500000 0.755000 1.010000 -0.010000 0.245000 0.500000 0.755000 1.010000 -0.010000 0.245000 0.500000 0.755000 1.010000 -0.010000 0.245000 0.500000 0.755000 1.010000 +-0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 \ No newline at end of file diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/constant/transportProperties b/NACA0012_Airfoil/incompressible_unsteady/cruise/constant/transportProperties new file mode 100755 index 00000000..e237ba13 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/constant/transportProperties @@ -0,0 +1,23 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1.5e-5; +Pr 0.7; +Prt 1.0; +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/constant/turbulenceProperties b/NACA0012_Airfoil/incompressible_unsteady/cruise/constant/turbulenceProperties new file mode 100755 index 00000000..e6152958 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmaras; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/genAirFoilMesh.py b/NACA0012_Airfoil/incompressible_unsteady/cruise/genAirFoilMesh.py new file mode 100755 index 00000000..c2a74288 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/genAirFoilMesh.py @@ -0,0 +1,267 @@ +#!/usr/bin/env python +""" +This script reads a coarse airfoil profile, refine the profile using spline function, +and outputs it as surfaceMesh.xyz. Then it generate a 3D volume mesh with nSpan layers +in the z direction using pyHyp, available at https://github.com/mdolab/pyhyp +Note: the airfoil data should be seperated into PS and SS surfaces, they should start from the +LE and ends at TE. We use blunt TE so truncate the PS and SS data at about 99.8% of the chord. +""" + +from pyhyp import pyHyp +import numpy +from pyspline import * + +########## user input ################ +# 2D +prefix = "./profiles/" +airfoilProfilePS = prefix + "NACA0012PS.profile" +airfoilProfileSS = prefix + "NACA0012SS.profile" +ZSpan = 0.1 # width in the z direction +nSpan = 2 # how many points in z +# PS parameters +dX1PS = 0.005 # first dx from the LE +Alpha1PS = 1.2 # clustering from the LE +dX2PS = 2e-3 # first dx from the TE +Alpha2PS = 1.2 # clustering from the TE +dXMaxPS = 0.02 # max dx for PS +# SS parameters +dX1SS = 0.005 # first dx from the LE +Alpha1SS = 1.2 # clustering from the LE +dX2SS = 2e-3 # first dx from the TE +Alpha2SS = 1.2 # clustering from the TE +dXMaxSS = 0.02 # max dx for SS +# TE parameters +NpTE = 5 # number of points for blunt TE +# 3D +NpExtrude = 33 # how many points to extrude for the 3D volume mesh in y +yWall = 4e-3 # first layer mesh length +marchDist = 20.0 # march distance for extruding +########## user input ################ + +# read profiles +fPS = open(airfoilProfilePS, "r") +linesPS = fPS.readlines() +fPS.close() +xPS = [] +yPS = [] +zPS = [] +for line in linesPS: + cols = line.split() + xPS.append(float(cols[0])) + yPS.append(float(cols[1])) + +for i in range(len(xPS)): + zPS.append(0.0) + +fSS = open(airfoilProfileSS, "r") +linesSS = fSS.readlines() +fSS.close() +xSS = [] +ySS = [] +zSS = [] +for line in linesSS: + cols = line.split() + xSS.append(float(cols[0])) + ySS.append(float(cols[1])) +for i in range(len(xSS)): + zSS.append(0.0) + +# ------------PS +# first compute how many stretching points do we need for both ends +tmp = dX1PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch1PS = i + break + else: + tmp = tmp * Alpha1PS +# print (nStretch1PS) +tmp = dX2PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch2PS = i + break + else: + tmp = tmp * Alpha2PS +# print (nStretch2PS) + +# now compute how much length does these two stretching end and the constant portion have +xLPSConst = xPS[-1] +xLPS1 = 0 +xLPS2 = 0 +for i in range(nStretch1PS): + xLPS1 += dX1PS * (Alpha1PS ** i) + xLPSConst -= dX1PS * (Alpha1PS ** i) +for i in range(nStretch2PS): + xLPS2 += dX2PS * (Alpha2PS ** i) + xLPSConst -= dX2PS * (Alpha2PS ** i) +# print xLPS1,xLPS2,xLPSConst +# update dXMax, we just want to make sure these three portion add up +nXConstPS = int(xLPSConst / dXMaxPS) +dXMaxPS = xLPSConst / nXConstPS +# print(dXMaxPS) + +# now we can add these three portions together +xInterpPS = [0] +tmp = dX1PS +for i in range(nStretch1PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp = tmp * Alpha1PS +for i in range(nXConstPS): + xInterpPS.append(xInterpPS[-1] + dXMaxPS) +tmp = dX2PS * (Alpha2PS ** (nStretch2PS - 1)) +for i in range(nStretch2PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp /= Alpha2PS +# print xInterpPS +# Finally, we interpolate the refined stretch stuff +c1PS = Curve(x=xPS, y=yPS, z=zPS, k=3) +XPS = c1PS(xInterpPS) +c2PS = Curve(X=XPS, k=3) +x1PS = c2PS.X[:, 0] +y1PS = c2PS.X[:, 1] + + +# ------------SS +# first compute how many stretching points do we need for both ends +tmp = dX1SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch1SS = i + break + else: + tmp = tmp * Alpha1SS +# print (nStretch1SS) +tmp = dX2SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch2SS = i + break + else: + tmp = tmp * Alpha2SS +# print (nStretch2SS) + +# now compute how much length does these two stretching end and the constant portion have +xLSSConst = xSS[-1] +xLSS1 = 0 +xLSS2 = 0 +for i in range(nStretch1SS): + xLSS1 += dX1SS * (Alpha1SS ** i) + xLSSConst -= dX1SS * (Alpha1SS ** i) +for i in range(nStretch2SS): + xLSS2 += dX2SS * (Alpha2SS ** i) + xLSSConst -= dX2SS * (Alpha2SS ** i) +# print xLSS1,xLSS2,xLSSConst +# update dXMax, we just want to make sure these three portion add up +nXConstSS = int(xLSSConst / dXMaxSS) +dXMaxSS = xLSSConst / nXConstSS +# print(dXMaxSS) + +# now we can add these three portions together +xInterpSS = [0] +tmp = dX1SS +for i in range(nStretch1SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp = tmp * Alpha1SS +for i in range(nXConstSS): + xInterpSS.append(xInterpSS[-1] + dXMaxSS) +tmp = dX2SS * (Alpha2SS ** (nStretch2SS - 1)) +for i in range(nStretch2SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp /= Alpha2SS +# print xInterpSS +# Finally, we interpolate the refined stretch stuff +c1SS = Curve(x=xSS, y=ySS, z=zSS, k=3) +XSS = c1SS(xInterpSS) +c2SS = Curve(X=XSS, k=3) +x1SS = c2SS.X[:, 0] +y1SS = c2SS.X[:, 1] + +# Since the TE is open we need to close it. Close it multiple linear segments. +delta_y = numpy.linspace(y1PS[-1], y1SS[-1], NpTE, "d") +delta_x = numpy.linspace(x1PS[-1], x1SS[-1], NpTE, "d") +delta_y = delta_y[1:] +delta_x = delta_x[1:] + +x1SS_Flip = x1SS[::-1] # reverse the array #numpy.flip(x1SS,axis=0) +xAll = numpy.append(x1SS_Flip, x1PS[1:]) +xAll = numpy.append(xAll, delta_x) + +y1SS_Flip = y1SS[::-1] # reverse the array # numpy.flip(y1SS,axis=0) +yAll = numpy.append(y1SS_Flip, y1PS[1:]) +yAll = numpy.append(yAll, delta_y) + + +# print mesh statistics +print("nPoints for PS: ", nStretch1PS + nStretch2PS + nXConstPS) +print("nPoints for SS: ", nStretch1SS + nStretch2SS + nXConstSS) +print("nPoints for TE: ", NpTE) +print("nPoints Total: ", nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE) +print( + "Mesh cells: ", + (nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE - 1) + * (NpExtrude - 1) + * (nSpan - 1), +) + +# plt.plot(xPS,yPS,'-k',linewidth=1) +# plt.plot(xAll,yAll,'ro',markersize=2) +# plt.plot(xSS,ySS,'-k',linewidth=1) +# plt.gca().set_aspect('equal', adjustable='box') +# plt.show() +# plt.savefig('figure.png',bbox_inches='tight') # save the figure to file +# plt.close() # close the figure + + +# Write the plot3d input file: +f = open("surfaceMesh.xyz", "w") +f.write("1\n") +f.write("%d %d %d\n" % (len(xAll), nSpan, 1)) +for iDim in range(3): + for z in numpy.linspace(0.0, ZSpan, nSpan): + for i in range(len(xAll)): + if iDim == 0: + f.write("%20.16f\n" % xAll[i]) + elif iDim == 1: + f.write("%20.16f\n" % yAll[i]) + else: + f.write("%20.16f\n" % z) +f.close() + +options = { + # --------------------------- + # Input Parameters + # --------------------------- + "inputFile": "surfaceMesh.xyz", + "unattachedEdgesAreSymmetry": False, + "outerFaceBC": "farfield", + "autoConnect": True, + "BC": {1: {"jLow": "zSymm", "jHigh": "zSymm"}}, + "families": "wall", + # --------------------------- + # Grid Parameters + # --------------------------- + "N": NpExtrude, + "s0": yWall, + "marchDist": marchDist, + # --------------------------- + # Pseudo Grid Parameters + # --------------------------- + "ps0": -1.0, + "pGridRatio": -1.0, + "cMax": 1.0, + # --------------------------- + # Smoothing parameters + # --------------------------- + "epsE": 2.0, + "epsI": 4.0, + "theta": 2.0, + "volCoef": 0.20, + "volBlend": 0.0005, + "volSmoothIter": 20, +} + + +hyp = pyHyp(options=options) +hyp.run() +hyp.writePlot3D("volumeMesh.xyz") diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/paraview.foam b/NACA0012_Airfoil/incompressible_unsteady/cruise/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/profiles/NACA0012PS.profile b/NACA0012_Airfoil/incompressible_unsteady/cruise/profiles/NACA0012PS.profile new file mode 100755 index 00000000..ce997a7d --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/profiles/NACA0012PS.profile @@ -0,0 +1,65 @@ + 0.0000000 0.0000000 + 0.0005839 -.0042603 + 0.0023342 -.0084289 + 0.0052468 -.0125011 + 0.0093149 -.0164706 + 0.0145291 -.0203300 + 0.0208771 -.0240706 + 0.0283441 -.0276827 + 0.0369127 -.0311559 + 0.0465628 -.0344792 + 0.0572720 -.0376414 + 0.0690152 -.0406310 + 0.0817649 -.0434371 + 0.0954915 -.0460489 + 0.1101628 -.0484567 + 0.1257446 -.0506513 + 0.1422005 -.0526251 + 0.1594921 -.0543715 + 0.1775789 -.0558856 + 0.1964187 -.0571640 + 0.2159676 -.0582048 + 0.2361799 -.0590081 + 0.2570083 -.0595755 + 0.2784042 -.0599102 + 0.3003177 -.0600172 + 0.3226976 -.0599028 + 0.3454915 -.0595747 + 0.3686463 -.0590419 + 0.3921079 -.0583145 + 0.4158215 -.0574033 + 0.4397317 -.0563200 + 0.4637826 -.0550769 + 0.4879181 -.0536866 + 0.5120819 -.0521620 + 0.5362174 -.0505161 + 0.5602683 -.0487619 + 0.5841786 -.0469124 + 0.6078921 -.0449802 + 0.6313537 -.0429778 + 0.6545085 -.0409174 + 0.6773025 -.0388109 + 0.6996823 -.0366700 + 0.7215958 -.0345058 + 0.7429917 -.0323294 + 0.7638202 -.0301515 + 0.7840324 -.0279828 + 0.8035813 -.0258337 + 0.8224211 -.0237142 + 0.8405079 -.0216347 + 0.8577995 -.0196051 + 0.8742554 -.0176353 + 0.8898372 -.0157351 + 0.9045085 -.0139143 + 0.9182351 -.0121823 + 0.9309849 -.0105485 + 0.9427280 -.0090217 + 0.9534372 -.0076108 + 0.9630873 -.0063238 + 0.9716559 -.0051685 + 0.9791229 -.0041519 + 0.9854709 -.0032804 + 0.9906850 -.0025595 + 0.9947532 -.0019938 + 0.9976658 -.0015870 + 0.9994161 -.0013419 \ No newline at end of file diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/profiles/NACA0012SS.profile b/NACA0012_Airfoil/incompressible_unsteady/cruise/profiles/NACA0012SS.profile new file mode 100755 index 00000000..ff7a6b8a --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/profiles/NACA0012SS.profile @@ -0,0 +1,65 @@ + 0.0000000 0.0000000 + 0.0005839 0.0042603 + 0.0023342 0.0084289 + 0.0052468 0.0125011 + 0.0093149 0.0164706 + 0.0145291 0.0203300 + 0.0208771 0.0240706 + 0.0283441 0.0276827 + 0.0369127 0.0311559 + 0.0465628 0.0344792 + 0.0572720 0.0376414 + 0.0690152 0.0406310 + 0.0817649 0.0434371 + 0.0954915 0.0460489 + 0.1101628 0.0484567 + 0.1257446 0.0506513 + 0.1422005 0.0526251 + 0.1594921 0.0543715 + 0.1775789 0.0558856 + 0.1964187 0.0571640 + 0.2159676 0.0582048 + 0.2361799 0.0590081 + 0.2570083 0.0595755 + 0.2784042 0.0599102 + 0.3003177 0.0600172 + 0.3226976 0.0599028 + 0.3454915 0.0595747 + 0.3686463 0.0590419 + 0.3921079 0.0583145 + 0.4158215 0.0574033 + 0.4397317 0.0563200 + 0.4637826 0.0550769 + 0.4879181 0.0536866 + 0.5120819 0.0521620 + 0.5362174 0.0505161 + 0.5602683 0.0487619 + 0.5841786 0.0469124 + 0.6078921 0.0449802 + 0.6313537 0.0429778 + 0.6545085 0.0409174 + 0.6773025 0.0388109 + 0.6996823 0.0366700 + 0.7215958 0.0345058 + 0.7429917 0.0323294 + 0.7638202 0.0301515 + 0.7840324 0.0279828 + 0.8035813 0.0258337 + 0.8224211 0.0237142 + 0.8405079 0.0216347 + 0.8577995 0.0196051 + 0.8742554 0.0176353 + 0.8898372 0.0157351 + 0.9045085 0.0139143 + 0.9182351 0.0121823 + 0.9309849 0.0105485 + 0.9427280 0.0090217 + 0.9534372 0.0076108 + 0.9630873 0.0063238 + 0.9716559 0.0051685 + 0.9791229 0.0041519 + 0.9854709 0.0032804 + 0.9906850 0.0025595 + 0.9947532 0.0019938 + 0.9976658 0.0015870 + 0.9994161 0.0013419 \ No newline at end of file diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/system/blockMeshDict b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/blockMeshDict new file mode 100755 index 00000000..1e001064 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/blockMeshDict @@ -0,0 +1,165 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| o | | +| o o | HELYX-OS | +| o O o | Version: v2.3.1 | +| o o | Web: http://www.engys.com | +| o | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} + +convertToMeters 1; + +MeshCross 10; +MeshInout 14; +MeshBend 8; + +ratio1 0.1; +ratio2 10.0; + +vertices +( + ( 0 0.0195 0) + ( 0 0.0945 0) + ( 0 0.0195 0.075) + ( 0 0.0945 0.075) + + ( 0.75 0.0195 0) + ( 0.75 0.0945 0) + ( 0.75 0.0195 0.075) + ( 0.75 0.0945 0.075) + + ( 0 -0.0195 0) + ( 0 -0.0945 0) + ( 0 -0.0195 0.075) + ( 0 -0.0945 0.075) + + ( 0.75 -0.0195 0) + ( 0.75 -0.0945 0) + ( 0.75 -0.0195 0.075) + ( 0.75 -0.0945 0.075) + + ( 0.7695 0 0) + ( 0.7695 0 0.075) + ( 0.8445 0 0) + ( 0.8445 0 0.075) + +); + +edges +( + arc 4 16 ( 0.76378858223313767673 0.01378858223313767673 0) + arc 6 17 ( 0.76378858223313767673 0.01378858223313767673 0.075) + + arc 12 16 ( 0.76378858223313767673 -0.01378858223313767673 0) + arc 14 17 ( 0.76378858223313767673 -0.01378858223313767673 0.075) + + arc 5 18 ( 0.81682159082212874106 0.06682159082212874106 0) + arc 7 19 ( 0.81682159082212874106 0.06682159082212874106 0.075) + + arc 13 18 ( 0.81682159082212874106 -0.06682159082212874106 0) + arc 15 19 ( 0.81682159082212874106 -0.06682159082212874106 0.075) +); + +blocks +( + + hex (0 4 5 1 2 6 7 3) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (4 16 18 5 6 17 19 7) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (13 18 16 12 15 19 17 14) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + hex (9 13 12 8 11 15 14 10) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + +); + + +patches +( + + patch inlet + ( + (0 1 3 2) + ) + patch outlet + ( + (9 8 10 11) + ) + wall ubend + ( + (0 4 5 1) + (0 4 6 2) + (1 5 7 3) + (2 3 7 6) + (4 16 18 5) + (4 16 17 6) + (6 17 19 7) + (5 18 19 7) + (13 18 16 12) + (13 15 19 18) + (12 16 17 14) + (14 17 19 15) + (9 13 12 8) + (9 11 15 13) + (8 12 14 10) + (11 15 14 10) + + ) +); + +mergePatchPairs +( +); diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/system/controlDict b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/controlDict new file mode 100755 index 00000000..05325f44 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/controlDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 1000; +deltaT 1; +writeControl timeStep; +writeInterval 1000; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 16; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/system/createPatchDict b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/createPatchDict new file mode 100755 index 00000000..5e2c4077 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/createPatchDict @@ -0,0 +1,82 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +pointSync false; + +// Patches to create. +patches +( + { + // Name of new patch + name symmetry1; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto0); + } + { + // Name of new patch + name symmetry2; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto1); + } + + { + // Name of new patch + name wing; + + // Dictionary to construct new patch from + patchInfo + { + type wall; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto2 auto3); + } + + { + // Name of new patch + name inout; + + // Dictionary to construct new patch from + patchInfo + { + type patch; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto4); + } +); + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/system/decomposeParDict b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/system/fvSchemes b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/fvSchemes new file mode 100755 index 00000000..65c9021a --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/fvSchemes @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/cruise/system/fvSolution b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/fvSolution new file mode 100755 index 00000000..26c0cf6a --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/cruise/system/fvSolution @@ -0,0 +1,67 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +SIMPLE +{ + consistent false; + nNonOrthogonalCorrectors 0; +} + +solvers +{ + "(p|p_rgh|G)" + { + + solver GAMG; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + } + Phi + { + $p; + relTol 0; + tolerance 1e-6; + } + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + nSweeps 1; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh)" 0.30; + } + equations + { + "(U|T|e|h|nuTilda|k|epsilon|omega)" 0.70; + } +} + +potentialFlow +{ + nNonOrthogonalCorrectors 20; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/U b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/U new file mode 100755 index 00000000..0c11b69e --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (20 0 0); + +boundaryField +{ + "(wing.*)" + { + type fixedValue; + value uniform (0 0 0); + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/epsilon b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/epsilon new file mode 100755 index 00000000..98985d59 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/epsilon @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.14; + +boundaryField +{ + "(wing.*)" + { + type epsilonWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/k b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/k new file mode 100755 index 00000000..8d7bd3a7 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + "(wing.*)" + { + type kqRWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/nuTilda b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/nuTilda new file mode 100755 index 00000000..ba5af0c7 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/nuTilda @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5e-05; + +boundaryField +{ + "(wing.*)" + { + type fixedValue; + value uniform 0.0; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/nut b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/nut new file mode 100755 index 00000000..b0a13bad --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/nut @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5E-5; + +boundaryField +{ + "(wing.*)" + { + type nutUSpaldingWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/omega b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/omega new file mode 100755 index 00000000..98393ba9 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 100; + +boundaryField +{ + "(wing.*)" + { + type omegaWallFunction; + value $internalField; + blended true; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/p b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/p new file mode 100755 index 00000000..84a89122 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/0_orig/p @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + "(wing.*)" + { + type zeroGradient; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type outletInlet; + outletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/constant/transportProperties b/NACA0012_Airfoil/incompressible_unsteady/maxLift/constant/transportProperties new file mode 100755 index 00000000..0ed12403 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/constant/transportProperties @@ -0,0 +1,23 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1.5e-5; +Pr 0.7; +Prt 0.85; +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/constant/turbulenceProperties b/NACA0012_Airfoil/incompressible_unsteady/maxLift/constant/turbulenceProperties new file mode 100755 index 00000000..e6152958 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmaras; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/genAirFoilMesh.py b/NACA0012_Airfoil/incompressible_unsteady/maxLift/genAirFoilMesh.py new file mode 100755 index 00000000..c2a74288 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/genAirFoilMesh.py @@ -0,0 +1,267 @@ +#!/usr/bin/env python +""" +This script reads a coarse airfoil profile, refine the profile using spline function, +and outputs it as surfaceMesh.xyz. Then it generate a 3D volume mesh with nSpan layers +in the z direction using pyHyp, available at https://github.com/mdolab/pyhyp +Note: the airfoil data should be seperated into PS and SS surfaces, they should start from the +LE and ends at TE. We use blunt TE so truncate the PS and SS data at about 99.8% of the chord. +""" + +from pyhyp import pyHyp +import numpy +from pyspline import * + +########## user input ################ +# 2D +prefix = "./profiles/" +airfoilProfilePS = prefix + "NACA0012PS.profile" +airfoilProfileSS = prefix + "NACA0012SS.profile" +ZSpan = 0.1 # width in the z direction +nSpan = 2 # how many points in z +# PS parameters +dX1PS = 0.005 # first dx from the LE +Alpha1PS = 1.2 # clustering from the LE +dX2PS = 2e-3 # first dx from the TE +Alpha2PS = 1.2 # clustering from the TE +dXMaxPS = 0.02 # max dx for PS +# SS parameters +dX1SS = 0.005 # first dx from the LE +Alpha1SS = 1.2 # clustering from the LE +dX2SS = 2e-3 # first dx from the TE +Alpha2SS = 1.2 # clustering from the TE +dXMaxSS = 0.02 # max dx for SS +# TE parameters +NpTE = 5 # number of points for blunt TE +# 3D +NpExtrude = 33 # how many points to extrude for the 3D volume mesh in y +yWall = 4e-3 # first layer mesh length +marchDist = 20.0 # march distance for extruding +########## user input ################ + +# read profiles +fPS = open(airfoilProfilePS, "r") +linesPS = fPS.readlines() +fPS.close() +xPS = [] +yPS = [] +zPS = [] +for line in linesPS: + cols = line.split() + xPS.append(float(cols[0])) + yPS.append(float(cols[1])) + +for i in range(len(xPS)): + zPS.append(0.0) + +fSS = open(airfoilProfileSS, "r") +linesSS = fSS.readlines() +fSS.close() +xSS = [] +ySS = [] +zSS = [] +for line in linesSS: + cols = line.split() + xSS.append(float(cols[0])) + ySS.append(float(cols[1])) +for i in range(len(xSS)): + zSS.append(0.0) + +# ------------PS +# first compute how many stretching points do we need for both ends +tmp = dX1PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch1PS = i + break + else: + tmp = tmp * Alpha1PS +# print (nStretch1PS) +tmp = dX2PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch2PS = i + break + else: + tmp = tmp * Alpha2PS +# print (nStretch2PS) + +# now compute how much length does these two stretching end and the constant portion have +xLPSConst = xPS[-1] +xLPS1 = 0 +xLPS2 = 0 +for i in range(nStretch1PS): + xLPS1 += dX1PS * (Alpha1PS ** i) + xLPSConst -= dX1PS * (Alpha1PS ** i) +for i in range(nStretch2PS): + xLPS2 += dX2PS * (Alpha2PS ** i) + xLPSConst -= dX2PS * (Alpha2PS ** i) +# print xLPS1,xLPS2,xLPSConst +# update dXMax, we just want to make sure these three portion add up +nXConstPS = int(xLPSConst / dXMaxPS) +dXMaxPS = xLPSConst / nXConstPS +# print(dXMaxPS) + +# now we can add these three portions together +xInterpPS = [0] +tmp = dX1PS +for i in range(nStretch1PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp = tmp * Alpha1PS +for i in range(nXConstPS): + xInterpPS.append(xInterpPS[-1] + dXMaxPS) +tmp = dX2PS * (Alpha2PS ** (nStretch2PS - 1)) +for i in range(nStretch2PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp /= Alpha2PS +# print xInterpPS +# Finally, we interpolate the refined stretch stuff +c1PS = Curve(x=xPS, y=yPS, z=zPS, k=3) +XPS = c1PS(xInterpPS) +c2PS = Curve(X=XPS, k=3) +x1PS = c2PS.X[:, 0] +y1PS = c2PS.X[:, 1] + + +# ------------SS +# first compute how many stretching points do we need for both ends +tmp = dX1SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch1SS = i + break + else: + tmp = tmp * Alpha1SS +# print (nStretch1SS) +tmp = dX2SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch2SS = i + break + else: + tmp = tmp * Alpha2SS +# print (nStretch2SS) + +# now compute how much length does these two stretching end and the constant portion have +xLSSConst = xSS[-1] +xLSS1 = 0 +xLSS2 = 0 +for i in range(nStretch1SS): + xLSS1 += dX1SS * (Alpha1SS ** i) + xLSSConst -= dX1SS * (Alpha1SS ** i) +for i in range(nStretch2SS): + xLSS2 += dX2SS * (Alpha2SS ** i) + xLSSConst -= dX2SS * (Alpha2SS ** i) +# print xLSS1,xLSS2,xLSSConst +# update dXMax, we just want to make sure these three portion add up +nXConstSS = int(xLSSConst / dXMaxSS) +dXMaxSS = xLSSConst / nXConstSS +# print(dXMaxSS) + +# now we can add these three portions together +xInterpSS = [0] +tmp = dX1SS +for i in range(nStretch1SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp = tmp * Alpha1SS +for i in range(nXConstSS): + xInterpSS.append(xInterpSS[-1] + dXMaxSS) +tmp = dX2SS * (Alpha2SS ** (nStretch2SS - 1)) +for i in range(nStretch2SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp /= Alpha2SS +# print xInterpSS +# Finally, we interpolate the refined stretch stuff +c1SS = Curve(x=xSS, y=ySS, z=zSS, k=3) +XSS = c1SS(xInterpSS) +c2SS = Curve(X=XSS, k=3) +x1SS = c2SS.X[:, 0] +y1SS = c2SS.X[:, 1] + +# Since the TE is open we need to close it. Close it multiple linear segments. +delta_y = numpy.linspace(y1PS[-1], y1SS[-1], NpTE, "d") +delta_x = numpy.linspace(x1PS[-1], x1SS[-1], NpTE, "d") +delta_y = delta_y[1:] +delta_x = delta_x[1:] + +x1SS_Flip = x1SS[::-1] # reverse the array #numpy.flip(x1SS,axis=0) +xAll = numpy.append(x1SS_Flip, x1PS[1:]) +xAll = numpy.append(xAll, delta_x) + +y1SS_Flip = y1SS[::-1] # reverse the array # numpy.flip(y1SS,axis=0) +yAll = numpy.append(y1SS_Flip, y1PS[1:]) +yAll = numpy.append(yAll, delta_y) + + +# print mesh statistics +print("nPoints for PS: ", nStretch1PS + nStretch2PS + nXConstPS) +print("nPoints for SS: ", nStretch1SS + nStretch2SS + nXConstSS) +print("nPoints for TE: ", NpTE) +print("nPoints Total: ", nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE) +print( + "Mesh cells: ", + (nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE - 1) + * (NpExtrude - 1) + * (nSpan - 1), +) + +# plt.plot(xPS,yPS,'-k',linewidth=1) +# plt.plot(xAll,yAll,'ro',markersize=2) +# plt.plot(xSS,ySS,'-k',linewidth=1) +# plt.gca().set_aspect('equal', adjustable='box') +# plt.show() +# plt.savefig('figure.png',bbox_inches='tight') # save the figure to file +# plt.close() # close the figure + + +# Write the plot3d input file: +f = open("surfaceMesh.xyz", "w") +f.write("1\n") +f.write("%d %d %d\n" % (len(xAll), nSpan, 1)) +for iDim in range(3): + for z in numpy.linspace(0.0, ZSpan, nSpan): + for i in range(len(xAll)): + if iDim == 0: + f.write("%20.16f\n" % xAll[i]) + elif iDim == 1: + f.write("%20.16f\n" % yAll[i]) + else: + f.write("%20.16f\n" % z) +f.close() + +options = { + # --------------------------- + # Input Parameters + # --------------------------- + "inputFile": "surfaceMesh.xyz", + "unattachedEdgesAreSymmetry": False, + "outerFaceBC": "farfield", + "autoConnect": True, + "BC": {1: {"jLow": "zSymm", "jHigh": "zSymm"}}, + "families": "wall", + # --------------------------- + # Grid Parameters + # --------------------------- + "N": NpExtrude, + "s0": yWall, + "marchDist": marchDist, + # --------------------------- + # Pseudo Grid Parameters + # --------------------------- + "ps0": -1.0, + "pGridRatio": -1.0, + "cMax": 1.0, + # --------------------------- + # Smoothing parameters + # --------------------------- + "epsE": 2.0, + "epsI": 4.0, + "theta": 2.0, + "volCoef": 0.20, + "volBlend": 0.0005, + "volSmoothIter": 20, +} + + +hyp = pyHyp(options=options) +hyp.run() +hyp.writePlot3D("volumeMesh.xyz") diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/paraview.foam b/NACA0012_Airfoil/incompressible_unsteady/maxLift/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/profiles/NACA0012PS.profile b/NACA0012_Airfoil/incompressible_unsteady/maxLift/profiles/NACA0012PS.profile new file mode 100755 index 00000000..ce997a7d --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/profiles/NACA0012PS.profile @@ -0,0 +1,65 @@ + 0.0000000 0.0000000 + 0.0005839 -.0042603 + 0.0023342 -.0084289 + 0.0052468 -.0125011 + 0.0093149 -.0164706 + 0.0145291 -.0203300 + 0.0208771 -.0240706 + 0.0283441 -.0276827 + 0.0369127 -.0311559 + 0.0465628 -.0344792 + 0.0572720 -.0376414 + 0.0690152 -.0406310 + 0.0817649 -.0434371 + 0.0954915 -.0460489 + 0.1101628 -.0484567 + 0.1257446 -.0506513 + 0.1422005 -.0526251 + 0.1594921 -.0543715 + 0.1775789 -.0558856 + 0.1964187 -.0571640 + 0.2159676 -.0582048 + 0.2361799 -.0590081 + 0.2570083 -.0595755 + 0.2784042 -.0599102 + 0.3003177 -.0600172 + 0.3226976 -.0599028 + 0.3454915 -.0595747 + 0.3686463 -.0590419 + 0.3921079 -.0583145 + 0.4158215 -.0574033 + 0.4397317 -.0563200 + 0.4637826 -.0550769 + 0.4879181 -.0536866 + 0.5120819 -.0521620 + 0.5362174 -.0505161 + 0.5602683 -.0487619 + 0.5841786 -.0469124 + 0.6078921 -.0449802 + 0.6313537 -.0429778 + 0.6545085 -.0409174 + 0.6773025 -.0388109 + 0.6996823 -.0366700 + 0.7215958 -.0345058 + 0.7429917 -.0323294 + 0.7638202 -.0301515 + 0.7840324 -.0279828 + 0.8035813 -.0258337 + 0.8224211 -.0237142 + 0.8405079 -.0216347 + 0.8577995 -.0196051 + 0.8742554 -.0176353 + 0.8898372 -.0157351 + 0.9045085 -.0139143 + 0.9182351 -.0121823 + 0.9309849 -.0105485 + 0.9427280 -.0090217 + 0.9534372 -.0076108 + 0.9630873 -.0063238 + 0.9716559 -.0051685 + 0.9791229 -.0041519 + 0.9854709 -.0032804 + 0.9906850 -.0025595 + 0.9947532 -.0019938 + 0.9976658 -.0015870 + 0.9994161 -.0013419 \ No newline at end of file diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/profiles/NACA0012SS.profile b/NACA0012_Airfoil/incompressible_unsteady/maxLift/profiles/NACA0012SS.profile new file mode 100755 index 00000000..ff7a6b8a --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/profiles/NACA0012SS.profile @@ -0,0 +1,65 @@ + 0.0000000 0.0000000 + 0.0005839 0.0042603 + 0.0023342 0.0084289 + 0.0052468 0.0125011 + 0.0093149 0.0164706 + 0.0145291 0.0203300 + 0.0208771 0.0240706 + 0.0283441 0.0276827 + 0.0369127 0.0311559 + 0.0465628 0.0344792 + 0.0572720 0.0376414 + 0.0690152 0.0406310 + 0.0817649 0.0434371 + 0.0954915 0.0460489 + 0.1101628 0.0484567 + 0.1257446 0.0506513 + 0.1422005 0.0526251 + 0.1594921 0.0543715 + 0.1775789 0.0558856 + 0.1964187 0.0571640 + 0.2159676 0.0582048 + 0.2361799 0.0590081 + 0.2570083 0.0595755 + 0.2784042 0.0599102 + 0.3003177 0.0600172 + 0.3226976 0.0599028 + 0.3454915 0.0595747 + 0.3686463 0.0590419 + 0.3921079 0.0583145 + 0.4158215 0.0574033 + 0.4397317 0.0563200 + 0.4637826 0.0550769 + 0.4879181 0.0536866 + 0.5120819 0.0521620 + 0.5362174 0.0505161 + 0.5602683 0.0487619 + 0.5841786 0.0469124 + 0.6078921 0.0449802 + 0.6313537 0.0429778 + 0.6545085 0.0409174 + 0.6773025 0.0388109 + 0.6996823 0.0366700 + 0.7215958 0.0345058 + 0.7429917 0.0323294 + 0.7638202 0.0301515 + 0.7840324 0.0279828 + 0.8035813 0.0258337 + 0.8224211 0.0237142 + 0.8405079 0.0216347 + 0.8577995 0.0196051 + 0.8742554 0.0176353 + 0.8898372 0.0157351 + 0.9045085 0.0139143 + 0.9182351 0.0121823 + 0.9309849 0.0105485 + 0.9427280 0.0090217 + 0.9534372 0.0076108 + 0.9630873 0.0063238 + 0.9716559 0.0051685 + 0.9791229 0.0041519 + 0.9854709 0.0032804 + 0.9906850 0.0025595 + 0.9947532 0.0019938 + 0.9976658 0.0015870 + 0.9994161 0.0013419 \ No newline at end of file diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/runPrimalSimple.py b/NACA0012_Airfoil/incompressible_unsteady/maxLift/runPrimalSimple.py new file mode 100755 index 00000000..52e0b8c5 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/runPrimalSimple.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +""" +DAFoam run script for the NACA0012 airfoil at low-speed (unsteady) +""" + +# ============================================================================= +# Imports +# ============================================================================= +from mpi4py import MPI +from dafoam import PYDAFOAM +import numpy as np + +# ============================================================================= +# Input Parameters +# ============================================================================= +gcomm = MPI.COMM_WORLD + +U0 = 20.0 +A0 = 0.1 +aoa0 = 20.0 +Ux = float(U0 * np.cos(aoa0 * np.pi / 180.0)) +Uy = float(U0 * np.sin(aoa0 * np.pi / 180.0)) + +# Set the parameters for optimization +daOptions = { + "designSurfaces": ["wing"], + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-16, + "primalMinResTolDiff": 1.0e16, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [Ux, Uy, 0.0]}, + "useWallFunction": False, + }, + "checkMeshThreshold": {"maxAspectRatio": 5000.0}, +} + +DASolver = PYDAFOAM(options=daOptions, comm=gcomm) +DASolver() diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/blockMeshDict b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/blockMeshDict new file mode 100755 index 00000000..1e001064 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/blockMeshDict @@ -0,0 +1,165 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| o | | +| o o | HELYX-OS | +| o O o | Version: v2.3.1 | +| o o | Web: http://www.engys.com | +| o | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} + +convertToMeters 1; + +MeshCross 10; +MeshInout 14; +MeshBend 8; + +ratio1 0.1; +ratio2 10.0; + +vertices +( + ( 0 0.0195 0) + ( 0 0.0945 0) + ( 0 0.0195 0.075) + ( 0 0.0945 0.075) + + ( 0.75 0.0195 0) + ( 0.75 0.0945 0) + ( 0.75 0.0195 0.075) + ( 0.75 0.0945 0.075) + + ( 0 -0.0195 0) + ( 0 -0.0945 0) + ( 0 -0.0195 0.075) + ( 0 -0.0945 0.075) + + ( 0.75 -0.0195 0) + ( 0.75 -0.0945 0) + ( 0.75 -0.0195 0.075) + ( 0.75 -0.0945 0.075) + + ( 0.7695 0 0) + ( 0.7695 0 0.075) + ( 0.8445 0 0) + ( 0.8445 0 0.075) + +); + +edges +( + arc 4 16 ( 0.76378858223313767673 0.01378858223313767673 0) + arc 6 17 ( 0.76378858223313767673 0.01378858223313767673 0.075) + + arc 12 16 ( 0.76378858223313767673 -0.01378858223313767673 0) + arc 14 17 ( 0.76378858223313767673 -0.01378858223313767673 0.075) + + arc 5 18 ( 0.81682159082212874106 0.06682159082212874106 0) + arc 7 19 ( 0.81682159082212874106 0.06682159082212874106 0.075) + + arc 13 18 ( 0.81682159082212874106 -0.06682159082212874106 0) + arc 15 19 ( 0.81682159082212874106 -0.06682159082212874106 0.075) +); + +blocks +( + + hex (0 4 5 1 2 6 7 3) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (4 16 18 5 6 17 19 7) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (13 18 16 12 15 19 17 14) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + hex (9 13 12 8 11 15 14 10) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + +); + + +patches +( + + patch inlet + ( + (0 1 3 2) + ) + patch outlet + ( + (9 8 10 11) + ) + wall ubend + ( + (0 4 5 1) + (0 4 6 2) + (1 5 7 3) + (2 3 7 6) + (4 16 18 5) + (4 16 17 6) + (6 17 19 7) + (5 18 19 7) + (13 18 16 12) + (13 15 19 18) + (12 16 17 14) + (14 17 19 15) + (9 13 12 8) + (9 11 15 13) + (8 12 14 10) + (11 15 14 10) + + ) +); + +mergePatchPairs +( +); diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict new file mode 100755 index 00000000..edc2c061 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 0.5; +deltaT 2e-3; +writeControl timeStep; +writeInterval 1; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} \ No newline at end of file diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict_pimple b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict_pimple new file mode 100755 index 00000000..edc2c061 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict_pimple @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 0.5; +deltaT 2e-3; +writeControl timeStep; +writeInterval 1; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} \ No newline at end of file diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict_pimple_long b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict_pimple_long new file mode 100755 index 00000000..48d775a5 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict_pimple_long @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 1; +deltaT 1e-3; +writeControl timeStep; +writeInterval 100; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} \ No newline at end of file diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict_simple b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict_simple new file mode 100755 index 00000000..ddc90c68 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/controlDict_simple @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 500; +deltaT 1; +writeControl adjustableRunTime; +writeInterval 500; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} \ No newline at end of file diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/createPatchDict b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/createPatchDict new file mode 100755 index 00000000..5e2c4077 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/createPatchDict @@ -0,0 +1,82 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +pointSync false; + +// Patches to create. +patches +( + { + // Name of new patch + name symmetry1; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto0); + } + { + // Name of new patch + name symmetry2; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto1); + } + + { + // Name of new patch + name wing; + + // Dictionary to construct new patch from + patchInfo + { + type wall; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto2 auto3); + } + + { + // Name of new patch + name inout; + + // Dictionary to construct new patch from + patchInfo + { + type patch; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto4); + } +); + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/decomposeParDict b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSchemes b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSchemes new file mode 100755 index 00000000..65171ec7 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSchemes @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default backward; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSchemes_pimple b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSchemes_pimple new file mode 100755 index 00000000..0c90f0c4 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSchemes_pimple @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default backward; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWaveFrozen; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSchemes_simple b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSchemes_simple new file mode 100755 index 00000000..65c9021a --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSchemes_simple @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSolution b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSolution new file mode 100755 index 00000000..05a0514b --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSolution @@ -0,0 +1,84 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.001; + smoother GaussSeidel; + maxIter 500; + minIter 1; + } + + "(p|p_rgh|G)Final" + { + $p; + relTol 0; + tolerance 1e-8; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 1e-8; + relTol 0; + maxIter 50; + minIter 1; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)Final" + { + $U; + //relTol 0; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + +PIMPLE +{ + nNonOrthogonalCorrectors 0; + nCorrectors 2; + nOuterCorrectors 5; + + residualControl + { + "(U|T|e|h|nuTilda|k|omega|epsilon|p|p_rgh|G)" + { + tolerance 1e-8; + relTol 1e-8; + } + } +} + + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSolution_pimple b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSolution_pimple new file mode 100755 index 00000000..05a0514b --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSolution_pimple @@ -0,0 +1,84 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.001; + smoother GaussSeidel; + maxIter 500; + minIter 1; + } + + "(p|p_rgh|G)Final" + { + $p; + relTol 0; + tolerance 1e-8; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 1e-8; + relTol 0; + maxIter 50; + minIter 1; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)Final" + { + $U; + //relTol 0; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + +PIMPLE +{ + nNonOrthogonalCorrectors 0; + nCorrectors 2; + nOuterCorrectors 5; + + residualControl + { + "(U|T|e|h|nuTilda|k|omega|epsilon|p|p_rgh|G)" + { + tolerance 1e-8; + relTol 1e-8; + } + } +} + + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSolution_simple b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSolution_simple new file mode 100755 index 00000000..d41296d7 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/maxLift/system/fvSolution_simple @@ -0,0 +1,70 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +SIMPLE +{ + consistent false; + nNonOrthogonalCorrectors 0; +} + +solvers +{ + "(p|p_rgh|G)" + { + + solver GAMG; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + maxIter 20; + } + Phi + { + $p; + relTol 0; + tolerance 1e-6; + maxIter 20; + } + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + nSweeps 1; + maxIter 20; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh)" 0.30; + } + equations + { + "(U|T|e|h|nuTilda|k|epsilon|omega)" 0.70; + } +} + +potentialFlow +{ + nNonOrthogonalCorrectors 20; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/incompressible_unsteady/preProcessing.sh b/NACA0012_Airfoil/incompressible_unsteady/preProcessing.sh new file mode 100755 index 00000000..46e76372 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/preProcessing.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +# Check if the OpenFOAM enviroments are loaded +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# ************* cruise **************** +# generate mesh +cd cruise +echo "Generating mesh.." +python genAirFoilMesh.py &> logMeshGeneration.txt +plot3dToFoam -noBlank volumeMesh.xyz >> logMeshGeneration.txt +autoPatch 30 -overwrite >> logMeshGeneration.txt +createPatch -overwrite >> logMeshGeneration.txt +renumberMesh -overwrite >> logMeshGeneration.txt +echo "Generating mesh.. Done!" + +# copy initial and boundary condition files +cp -r 0.orig 0 + + +# ************* maxLift **************** +cd ../maxLift +# generate mesh +echo "Generating mesh.." +python genAirFoilMesh.py &> logMeshGeneration.txt +plot3dToFoam -noBlank volumeMesh.xyz >> logMeshGeneration.txt +autoPatch 30 -overwrite >> logMeshGeneration.txt +createPatch -overwrite >> logMeshGeneration.txt +renumberMesh -overwrite >> logMeshGeneration.txt +echo "Generating mesh.. Done!" + +# copy initial and boundary condition files +cp -r 0_orig 0 + +# run simpleFoam +cp -r system/controlDict_simple system/controlDict +cp -r system/fvSchemes_simple system/fvSchemes +cp -r system/fvSolution_simple system/fvSolution +mpirun -np 4 python runPrimalSimple.py + +# reconstruct the simpleFoam fields +reconstructPar +rm -rf processor* +rm -rf 0 +mv 500 0 +rm -rf 0/uniform 0/polyMesh + +# run the pimpleFoam primal to get equilibrium initial fields +cp -r system/controlDict_pimple_long system/controlDict +cp -r system/fvSchemes_pimple system/fvSchemes +cp -r system/fvSolution_pimple system/fvSolution +decomposePar +mpirun -np 4 pimpleFoam -parallel +reconstructPar -latestTime +rm -rf processor* +rm -rf 0 +mv 1 0 +rm -rf 0/uniform 0/polyMesh +cp -r system/controlDict_pimple system/controlDict + +cd ../ diff --git a/NACA0012_Airfoil/incompressible_unsteady/runScript.py b/NACA0012_Airfoil/incompressible_unsteady/runScript.py new file mode 100755 index 00000000..120bff06 --- /dev/null +++ b/NACA0012_Airfoil/incompressible_unsteady/runScript.py @@ -0,0 +1,322 @@ +#!/usr/bin/env python +""" +DAFoam run script for the NACA0012 airfoil at low-speed (unsteady) +""" + +# ============================================================================= +# Imports +# ============================================================================= +import argparse, os +import numpy as np +from mpi4py import MPI +import json +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys.mphys_dafoam import DAFoamBuilderUnsteady, DAFoamBuilder +from pygeo.mphys import OM_DVGEOCOMP +from mphys.scenario_aerodynamic import ScenarioAerodynamic + +np.set_printoptions(precision=8, threshold=10000) + +# ============================================================================= +# Input Parameters +# ============================================================================= +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# Define the global parameters here +U0Cruise = 20.0 +U0MaxLift = 10.0 +p0 = 0.0 +nuTilda0 = 4.5e-5 +aoa0MaxLift = 20.0 +aoa0Cruise = 3.0 +CLCruise = 0.5 +CLMaxLift = 1.0 +A0 = 0.1 +rho0 = 1.0 + + +# Set the parameters for optimization +daOptionsCruise = { + "designSurfaces": ["wing"], + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0Cruise, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "useWallFunction": True, + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0Cruise * U0Cruise * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0Cruise * U0Cruise * A0 * rho0), + }, + }, + "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, + "normalizeStates": { + "U": U0Cruise, + "p": U0Cruise * U0Cruise / 2.0, + "nuTilda": nuTilda0 * 10.0, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, +} + +daOptionsMaxLift = { + "designSurfaces": ["wing"], + "solverName": "DAPimpleFoam", + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0MaxLift, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "useWallFunction": True, + }, + "unsteadyAdjoint": { + "mode": "timeAccurate", + "PCMatPrecomputeInterval": 50, + "PCMatUpdateInterval": 100000, + "reduceIO": True, + "readZeroFields": False, + }, + "printIntervalUnsteady": 1, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0MaxLift * U0MaxLift * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0MaxLift * U0MaxLift * A0 * rho0), + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": { + "gmresRelTol": 1e-5, + "pcFillLevel": 1, + "jacMatReOrdering": "natural", + "useNonZeroInitGuess": True, + "useMGSO": True, + "dynAdjustTol": True, + }, + "normalizeStates": { + "U": U0MaxLift, + "p": U0MaxLift * U0MaxLift / 2.0, + "nuTilda": nuTilda0 * 10.0, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, + "checkMeshThreshold": {"maxAspectRatio": 5000.0}, + "unsteadyCompOutput": { + "CD": ["CD"], + "CL": ["CL"], + }, +} + +# mesh warping parameters, users need to manually specify the symmetry plane and their normals +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], +} + + +class Top(Multipoint): + def setup(self): + + # ivc to keep the top level DVs + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the max_lift scenario (unsteady) + self.add_subsystem("geometry_max_lift", OM_DVGEOCOMP(file="cruise/FFD/wingFFD.xyz", type="ffd")) + + self.add_subsystem( + "scenario_max_lift", + DAFoamBuilderUnsteady(solver_options=daOptionsMaxLift, mesh_options=meshOptions, run_directory="maxLift"), + ) + self.connect("geometry_max_lift.x_aero0", "scenario_max_lift.x_aero") + + # add the cruise scenario (steady) + cruise_builder = DAFoamBuilder(daOptionsCruise, meshOptions, scenario="aerodynamic", run_directory="cruise") + cruise_builder.initialize(self.comm) + + self.add_subsystem("mesh_cruise", cruise_builder.get_mesh_coordinate_subsystem()) + self.add_subsystem("geometry_cruise", OM_DVGEOCOMP(file="cruise/FFD/wingFFD.xyz", type="ffd")) + self.mphys_add_scenario("scenario_cruise", ScenarioAerodynamic(aero_builder=cruise_builder)) + self.connect("mesh_cruise.x_aero0", "geometry_cruise.x_aero_in") + self.connect("geometry_cruise.x_aero0", "scenario_cruise.x_aero") + + def configure(self): + + # create geometric DV setup + points_max_lift = self.scenario_max_lift.get_surface_mesh() + points_cruise = self.mesh_cruise.mphys_get_surface_mesh() + + # add pointset + self.geometry_max_lift.nom_add_discipline_coords("aero", points_max_lift) + self.geometry_cruise.nom_add_discipline_coords("aero", points_cruise) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.scenario_max_lift.DASolver.getTriangulatedMeshSurface() + self.geometry_max_lift.nom_setConstraintSurface(tri_points) + # no need to set the cruise constraint because the max_lift and cruise have the same airfoil geo + + # use the shape function to define shape variables for 2D airfoil + pts = self.geometry_max_lift.DVGeo.getLocalIndex(0) + dir_y = np.array([0.0, 1.0, 0.0]) + shapes = [] + for i in range(1, pts.shape[0] - 1): + for j in range(pts.shape[1]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts[i, j, 0]: dir_y, pts[i, j, 1]: dir_y}) + # LE/TE shape, the j=0 and j=1 move in opposite directions so that + # the LE/TE are fixed + for i in [0, pts.shape[0] - 1]: + shapes.append({pts[i, 0, 0]: dir_y, pts[i, 0, 1]: dir_y, pts[i, 1, 0]: -dir_y, pts[i, 1, 1]: -dir_y}) + self.geometry_max_lift.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + self.geometry_cruise.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + + # setup the volume and thickness constraints + leList = [[1e-4, 0.0, 1e-4], [1e-4, 0.0, 0.1 - 1e-4]] + teList = [[0.998 - 1e-4, 0.0, 1e-4], [0.998 - 1e-4, 0.0, 0.1 - 1e-4]] + self.geometry_max_lift.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) + self.geometry_max_lift.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) + self.geometry_max_lift.nom_addLERadiusConstraints("rcon", leList, 2, [0.0, 1.0, 0.0], [-1.0, 0.0, 0.0]) + # NOTE: we no longer need to define the sym and LE/TE constraints + # because these constraints are defined in the above shape function + + self.dvs.add_output("shape", val=np.zeros(len(shapes))) + self.dvs.add_output("x_aero_in", val=points_max_lift, distributed=True) + self.dvs.add_output("patchV_cruise", val=np.array([U0Cruise, aoa0Cruise])) + self.dvs.add_output("patchV_maxLift", val=np.array([U0MaxLift, aoa0MaxLift])) + self.connect("x_aero_in", "geometry_max_lift.x_aero_in") + self.connect("shape", "geometry_max_lift.shape") + self.connect("shape", "geometry_cruise.shape") + self.connect("patchV_maxLift", "scenario_max_lift.patchV") + self.connect("patchV_cruise", "scenario_cruise.patchV") + # define the design variables to the top level + self.add_design_var("shape", lower=-0.1, upper=0.1, scaler=10.0) + self.add_design_var("patchV_cruise", lower=[U0Cruise, 0.0], upper=[U0Cruise, 10.0], scaler=0.1) + self.add_design_var("patchV_maxLift", lower=[U0MaxLift, 0.0], upper=[U0MaxLift, 50.0], scaler=0.1) + self.add_objective("scenario_cruise.aero_post.CD", scaler=-1.0) + self.add_constraint("scenario_cruise.aero_post.CL", lower=CLCruise) + self.add_constraint("scenario_max_lift.CL", lower=CLMaxLift) + self.add_constraint("geometry_max_lift.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry_max_lift.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry_max_lift.rcon", lower=0.8, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-6, + "Major optimality tolerance": 1.0e-6, + "Minor feasibility tolerance": 1.0e-6, + "Verify level": -1, + "Function precision": 1.0e-6, + "Major iterations limit": 50, + "Linesearch tolerance": 0.999, + "Hessian updates": 50, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 50, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/NACA0012_Airfoil/multicase/Allclean.sh b/NACA0012_Airfoil/multicase/Allclean.sh new file mode 100755 index 00000000..1bb90eb7 --- /dev/null +++ b/NACA0012_Airfoil/multicase/Allclean.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + cd SA + rm -rf 0 + rm -rf postProcessing + rm -rf constant/extendedFeatureEdgeMesh + rm -rf constant/triSurface + rm -rf constant/polyMesh/ + rm -rf *.bin *.info *.dat *.xyz *.stl + rm -rf processor* 0.0000* + rm -rf {1..9}* + cd ../SST + rm -rf 0 + rm -rf postProcessing + rm -rf constant/extendedFeatureEdgeMesh + rm -rf constant/triSurface + rm -rf constant/polyMesh/ + rm -rf *.bin *.info *.dat *.xyz *.stl + rm -rf processor* 0.0000* + rm -rf {1..9}* + cd ../ + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/NACA0012_Airfoil/multicase/SA/0.orig/U b/NACA0012_Airfoil/multicase/SA/0.orig/U new file mode 100755 index 00000000..e9c2ba26 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/0.orig/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (10 0 0); + +boundaryField +{ + "(wing.*)" + { + type fixedValue; + value uniform (0 0 0); + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SA/0.orig/epsilon b/NACA0012_Airfoil/multicase/SA/0.orig/epsilon new file mode 100755 index 00000000..98985d59 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/0.orig/epsilon @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.14; + +boundaryField +{ + "(wing.*)" + { + type epsilonWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SA/0.orig/k b/NACA0012_Airfoil/multicase/SA/0.orig/k new file mode 100755 index 00000000..8d7bd3a7 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/0.orig/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + "(wing.*)" + { + type kqRWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SA/0.orig/nuTilda b/NACA0012_Airfoil/multicase/SA/0.orig/nuTilda new file mode 100755 index 00000000..ba5af0c7 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/0.orig/nuTilda @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5e-05; + +boundaryField +{ + "(wing.*)" + { + type fixedValue; + value uniform 0.0; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SA/0.orig/nut b/NACA0012_Airfoil/multicase/SA/0.orig/nut new file mode 100755 index 00000000..b0a13bad --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/0.orig/nut @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5E-5; + +boundaryField +{ + "(wing.*)" + { + type nutUSpaldingWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SA/0.orig/omega b/NACA0012_Airfoil/multicase/SA/0.orig/omega new file mode 100755 index 00000000..98393ba9 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/0.orig/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 100; + +boundaryField +{ + "(wing.*)" + { + type omegaWallFunction; + value $internalField; + blended true; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SA/0.orig/p b/NACA0012_Airfoil/multicase/SA/0.orig/p new file mode 100755 index 00000000..b65c22b9 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/0.orig/p @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + "(wing.*)" + { + type zeroGradient; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type fixedValue; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SA/FFD/genFFD.py b/NACA0012_Airfoil/multicase/SA/FFD/genFFD.py new file mode 100755 index 00000000..493ecc28 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/FFD/genFFD.py @@ -0,0 +1,99 @@ +import numpy as np +import sys + +def writeFFDFile(fileName,nBlocks,nx,ny,nz,points): + ''' + Take in a set of points and write the plot 3dFile + ''' + + f = open(fileName,'w') + + f.write('%d\n'%nBlocks) + for i in range(nBlocks): + f.write('%d %d %d '%(nx[i],ny[i],nz[i])) + # end + f.write('\n') + for block in range(nBlocks): + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,0]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,1]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,2]) + # end + # end + # end + # end + f.close() + return + +def returnBlockPoints(corners,nx,ny,nz): + ''' + corners needs to be 8 x 3 + ''' + points = np.zeros([nx,ny,nz,3]) + + # points 1 - 4 are the iMin face + # points 5 - 8 are the iMax face + + for idim in range(3): + edge1 = np.linspace(corners[0][idim],corners[4][idim],nx) + edge2 = np.linspace(corners[1][idim],corners[5][idim],nx) + edge3 = np.linspace(corners[2][idim],corners[6][idim],nx) + edge4 = np.linspace(corners[3][idim],corners[7][idim],nx) + + for i in range(nx): + edge5 = np.linspace(edge1[i],edge3[i],ny) + edge6 = np.linspace(edge2[i],edge4[i],ny) + for j in range(ny): + edge7 = np.linspace(edge5[j],edge6[j],nz) + points[i,j,:,idim] = edge7 + # end + # end + # end + + return points + +################ FFD ############## +nBlocks = 1 + +nx = [5] +ny = [2] +nz = [2] + +corners = np.zeros([nBlocks,8,3]) + +corners[0,0,:] = [-0.010,-.0700,0.0] +corners[0,1,:] = [-0.010,-0.0700,0.1] +corners[0,2,:] = [-0.010,0.0700,0.0] +corners[0,3,:] = [-0.010,0.0700,0.1] +corners[0,4,:] = [ 1.01,-.07,0.0] +corners[0,5,:] = [ 1.01,-.07,0.10] +corners[0,6,:] = [ 1.01,0.07,0.0] +corners[0,7,:] = [ 1.01,0.07,0.1] + + +points = [] +for block in range(nBlocks): + points.append(returnBlockPoints(corners[block],nx[block],ny[block],nz[block])) + +#print points +fileName = 'wingFFD.xyz' +writeFFDFile(fileName,nBlocks,nx,ny,nz,points) + diff --git a/NACA0012_Airfoil/multicase/SA/FFD/wingFFD.xyz b/NACA0012_Airfoil/multicase/SA/FFD/wingFFD.xyz new file mode 100755 index 00000000..38b3d492 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/FFD/wingFFD.xyz @@ -0,0 +1,5 @@ +1 +5 2 2 +-0.010000 0.245000 0.500000 0.755000 1.010000 -0.010000 0.245000 0.500000 0.755000 1.010000 -0.010000 0.245000 0.500000 0.755000 1.010000 -0.010000 0.245000 0.500000 0.755000 1.010000 +-0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 \ No newline at end of file diff --git a/NACA0012_Airfoil/multicase/SA/constant/transportProperties b/NACA0012_Airfoil/multicase/SA/constant/transportProperties new file mode 100755 index 00000000..e237ba13 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/constant/transportProperties @@ -0,0 +1,23 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1.5e-5; +Pr 0.7; +Prt 1.0; +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/multicase/SA/constant/turbulenceProperties b/NACA0012_Airfoil/multicase/SA/constant/turbulenceProperties new file mode 100755 index 00000000..e6152958 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmaras; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/multicase/SA/genAirFoilMesh.py b/NACA0012_Airfoil/multicase/SA/genAirFoilMesh.py new file mode 100755 index 00000000..c2a74288 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/genAirFoilMesh.py @@ -0,0 +1,267 @@ +#!/usr/bin/env python +""" +This script reads a coarse airfoil profile, refine the profile using spline function, +and outputs it as surfaceMesh.xyz. Then it generate a 3D volume mesh with nSpan layers +in the z direction using pyHyp, available at https://github.com/mdolab/pyhyp +Note: the airfoil data should be seperated into PS and SS surfaces, they should start from the +LE and ends at TE. We use blunt TE so truncate the PS and SS data at about 99.8% of the chord. +""" + +from pyhyp import pyHyp +import numpy +from pyspline import * + +########## user input ################ +# 2D +prefix = "./profiles/" +airfoilProfilePS = prefix + "NACA0012PS.profile" +airfoilProfileSS = prefix + "NACA0012SS.profile" +ZSpan = 0.1 # width in the z direction +nSpan = 2 # how many points in z +# PS parameters +dX1PS = 0.005 # first dx from the LE +Alpha1PS = 1.2 # clustering from the LE +dX2PS = 2e-3 # first dx from the TE +Alpha2PS = 1.2 # clustering from the TE +dXMaxPS = 0.02 # max dx for PS +# SS parameters +dX1SS = 0.005 # first dx from the LE +Alpha1SS = 1.2 # clustering from the LE +dX2SS = 2e-3 # first dx from the TE +Alpha2SS = 1.2 # clustering from the TE +dXMaxSS = 0.02 # max dx for SS +# TE parameters +NpTE = 5 # number of points for blunt TE +# 3D +NpExtrude = 33 # how many points to extrude for the 3D volume mesh in y +yWall = 4e-3 # first layer mesh length +marchDist = 20.0 # march distance for extruding +########## user input ################ + +# read profiles +fPS = open(airfoilProfilePS, "r") +linesPS = fPS.readlines() +fPS.close() +xPS = [] +yPS = [] +zPS = [] +for line in linesPS: + cols = line.split() + xPS.append(float(cols[0])) + yPS.append(float(cols[1])) + +for i in range(len(xPS)): + zPS.append(0.0) + +fSS = open(airfoilProfileSS, "r") +linesSS = fSS.readlines() +fSS.close() +xSS = [] +ySS = [] +zSS = [] +for line in linesSS: + cols = line.split() + xSS.append(float(cols[0])) + ySS.append(float(cols[1])) +for i in range(len(xSS)): + zSS.append(0.0) + +# ------------PS +# first compute how many stretching points do we need for both ends +tmp = dX1PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch1PS = i + break + else: + tmp = tmp * Alpha1PS +# print (nStretch1PS) +tmp = dX2PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch2PS = i + break + else: + tmp = tmp * Alpha2PS +# print (nStretch2PS) + +# now compute how much length does these two stretching end and the constant portion have +xLPSConst = xPS[-1] +xLPS1 = 0 +xLPS2 = 0 +for i in range(nStretch1PS): + xLPS1 += dX1PS * (Alpha1PS ** i) + xLPSConst -= dX1PS * (Alpha1PS ** i) +for i in range(nStretch2PS): + xLPS2 += dX2PS * (Alpha2PS ** i) + xLPSConst -= dX2PS * (Alpha2PS ** i) +# print xLPS1,xLPS2,xLPSConst +# update dXMax, we just want to make sure these three portion add up +nXConstPS = int(xLPSConst / dXMaxPS) +dXMaxPS = xLPSConst / nXConstPS +# print(dXMaxPS) + +# now we can add these three portions together +xInterpPS = [0] +tmp = dX1PS +for i in range(nStretch1PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp = tmp * Alpha1PS +for i in range(nXConstPS): + xInterpPS.append(xInterpPS[-1] + dXMaxPS) +tmp = dX2PS * (Alpha2PS ** (nStretch2PS - 1)) +for i in range(nStretch2PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp /= Alpha2PS +# print xInterpPS +# Finally, we interpolate the refined stretch stuff +c1PS = Curve(x=xPS, y=yPS, z=zPS, k=3) +XPS = c1PS(xInterpPS) +c2PS = Curve(X=XPS, k=3) +x1PS = c2PS.X[:, 0] +y1PS = c2PS.X[:, 1] + + +# ------------SS +# first compute how many stretching points do we need for both ends +tmp = dX1SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch1SS = i + break + else: + tmp = tmp * Alpha1SS +# print (nStretch1SS) +tmp = dX2SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch2SS = i + break + else: + tmp = tmp * Alpha2SS +# print (nStretch2SS) + +# now compute how much length does these two stretching end and the constant portion have +xLSSConst = xSS[-1] +xLSS1 = 0 +xLSS2 = 0 +for i in range(nStretch1SS): + xLSS1 += dX1SS * (Alpha1SS ** i) + xLSSConst -= dX1SS * (Alpha1SS ** i) +for i in range(nStretch2SS): + xLSS2 += dX2SS * (Alpha2SS ** i) + xLSSConst -= dX2SS * (Alpha2SS ** i) +# print xLSS1,xLSS2,xLSSConst +# update dXMax, we just want to make sure these three portion add up +nXConstSS = int(xLSSConst / dXMaxSS) +dXMaxSS = xLSSConst / nXConstSS +# print(dXMaxSS) + +# now we can add these three portions together +xInterpSS = [0] +tmp = dX1SS +for i in range(nStretch1SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp = tmp * Alpha1SS +for i in range(nXConstSS): + xInterpSS.append(xInterpSS[-1] + dXMaxSS) +tmp = dX2SS * (Alpha2SS ** (nStretch2SS - 1)) +for i in range(nStretch2SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp /= Alpha2SS +# print xInterpSS +# Finally, we interpolate the refined stretch stuff +c1SS = Curve(x=xSS, y=ySS, z=zSS, k=3) +XSS = c1SS(xInterpSS) +c2SS = Curve(X=XSS, k=3) +x1SS = c2SS.X[:, 0] +y1SS = c2SS.X[:, 1] + +# Since the TE is open we need to close it. Close it multiple linear segments. +delta_y = numpy.linspace(y1PS[-1], y1SS[-1], NpTE, "d") +delta_x = numpy.linspace(x1PS[-1], x1SS[-1], NpTE, "d") +delta_y = delta_y[1:] +delta_x = delta_x[1:] + +x1SS_Flip = x1SS[::-1] # reverse the array #numpy.flip(x1SS,axis=0) +xAll = numpy.append(x1SS_Flip, x1PS[1:]) +xAll = numpy.append(xAll, delta_x) + +y1SS_Flip = y1SS[::-1] # reverse the array # numpy.flip(y1SS,axis=0) +yAll = numpy.append(y1SS_Flip, y1PS[1:]) +yAll = numpy.append(yAll, delta_y) + + +# print mesh statistics +print("nPoints for PS: ", nStretch1PS + nStretch2PS + nXConstPS) +print("nPoints for SS: ", nStretch1SS + nStretch2SS + nXConstSS) +print("nPoints for TE: ", NpTE) +print("nPoints Total: ", nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE) +print( + "Mesh cells: ", + (nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE - 1) + * (NpExtrude - 1) + * (nSpan - 1), +) + +# plt.plot(xPS,yPS,'-k',linewidth=1) +# plt.plot(xAll,yAll,'ro',markersize=2) +# plt.plot(xSS,ySS,'-k',linewidth=1) +# plt.gca().set_aspect('equal', adjustable='box') +# plt.show() +# plt.savefig('figure.png',bbox_inches='tight') # save the figure to file +# plt.close() # close the figure + + +# Write the plot3d input file: +f = open("surfaceMesh.xyz", "w") +f.write("1\n") +f.write("%d %d %d\n" % (len(xAll), nSpan, 1)) +for iDim in range(3): + for z in numpy.linspace(0.0, ZSpan, nSpan): + for i in range(len(xAll)): + if iDim == 0: + f.write("%20.16f\n" % xAll[i]) + elif iDim == 1: + f.write("%20.16f\n" % yAll[i]) + else: + f.write("%20.16f\n" % z) +f.close() + +options = { + # --------------------------- + # Input Parameters + # --------------------------- + "inputFile": "surfaceMesh.xyz", + "unattachedEdgesAreSymmetry": False, + "outerFaceBC": "farfield", + "autoConnect": True, + "BC": {1: {"jLow": "zSymm", "jHigh": "zSymm"}}, + "families": "wall", + # --------------------------- + # Grid Parameters + # --------------------------- + "N": NpExtrude, + "s0": yWall, + "marchDist": marchDist, + # --------------------------- + # Pseudo Grid Parameters + # --------------------------- + "ps0": -1.0, + "pGridRatio": -1.0, + "cMax": 1.0, + # --------------------------- + # Smoothing parameters + # --------------------------- + "epsE": 2.0, + "epsI": 4.0, + "theta": 2.0, + "volCoef": 0.20, + "volBlend": 0.0005, + "volSmoothIter": 20, +} + + +hyp = pyHyp(options=options) +hyp.run() +hyp.writePlot3D("volumeMesh.xyz") diff --git a/NACA0012_Airfoil/multicase/SA/paraview.foam b/NACA0012_Airfoil/multicase/SA/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/NACA0012_Airfoil/multicase/SA/profiles/NACA0012PS.profile b/NACA0012_Airfoil/multicase/SA/profiles/NACA0012PS.profile new file mode 100755 index 00000000..ce997a7d --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/profiles/NACA0012PS.profile @@ -0,0 +1,65 @@ + 0.0000000 0.0000000 + 0.0005839 -.0042603 + 0.0023342 -.0084289 + 0.0052468 -.0125011 + 0.0093149 -.0164706 + 0.0145291 -.0203300 + 0.0208771 -.0240706 + 0.0283441 -.0276827 + 0.0369127 -.0311559 + 0.0465628 -.0344792 + 0.0572720 -.0376414 + 0.0690152 -.0406310 + 0.0817649 -.0434371 + 0.0954915 -.0460489 + 0.1101628 -.0484567 + 0.1257446 -.0506513 + 0.1422005 -.0526251 + 0.1594921 -.0543715 + 0.1775789 -.0558856 + 0.1964187 -.0571640 + 0.2159676 -.0582048 + 0.2361799 -.0590081 + 0.2570083 -.0595755 + 0.2784042 -.0599102 + 0.3003177 -.0600172 + 0.3226976 -.0599028 + 0.3454915 -.0595747 + 0.3686463 -.0590419 + 0.3921079 -.0583145 + 0.4158215 -.0574033 + 0.4397317 -.0563200 + 0.4637826 -.0550769 + 0.4879181 -.0536866 + 0.5120819 -.0521620 + 0.5362174 -.0505161 + 0.5602683 -.0487619 + 0.5841786 -.0469124 + 0.6078921 -.0449802 + 0.6313537 -.0429778 + 0.6545085 -.0409174 + 0.6773025 -.0388109 + 0.6996823 -.0366700 + 0.7215958 -.0345058 + 0.7429917 -.0323294 + 0.7638202 -.0301515 + 0.7840324 -.0279828 + 0.8035813 -.0258337 + 0.8224211 -.0237142 + 0.8405079 -.0216347 + 0.8577995 -.0196051 + 0.8742554 -.0176353 + 0.8898372 -.0157351 + 0.9045085 -.0139143 + 0.9182351 -.0121823 + 0.9309849 -.0105485 + 0.9427280 -.0090217 + 0.9534372 -.0076108 + 0.9630873 -.0063238 + 0.9716559 -.0051685 + 0.9791229 -.0041519 + 0.9854709 -.0032804 + 0.9906850 -.0025595 + 0.9947532 -.0019938 + 0.9976658 -.0015870 + 0.9994161 -.0013419 \ No newline at end of file diff --git a/NACA0012_Airfoil/multicase/SA/profiles/NACA0012SS.profile b/NACA0012_Airfoil/multicase/SA/profiles/NACA0012SS.profile new file mode 100755 index 00000000..ff7a6b8a --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/profiles/NACA0012SS.profile @@ -0,0 +1,65 @@ + 0.0000000 0.0000000 + 0.0005839 0.0042603 + 0.0023342 0.0084289 + 0.0052468 0.0125011 + 0.0093149 0.0164706 + 0.0145291 0.0203300 + 0.0208771 0.0240706 + 0.0283441 0.0276827 + 0.0369127 0.0311559 + 0.0465628 0.0344792 + 0.0572720 0.0376414 + 0.0690152 0.0406310 + 0.0817649 0.0434371 + 0.0954915 0.0460489 + 0.1101628 0.0484567 + 0.1257446 0.0506513 + 0.1422005 0.0526251 + 0.1594921 0.0543715 + 0.1775789 0.0558856 + 0.1964187 0.0571640 + 0.2159676 0.0582048 + 0.2361799 0.0590081 + 0.2570083 0.0595755 + 0.2784042 0.0599102 + 0.3003177 0.0600172 + 0.3226976 0.0599028 + 0.3454915 0.0595747 + 0.3686463 0.0590419 + 0.3921079 0.0583145 + 0.4158215 0.0574033 + 0.4397317 0.0563200 + 0.4637826 0.0550769 + 0.4879181 0.0536866 + 0.5120819 0.0521620 + 0.5362174 0.0505161 + 0.5602683 0.0487619 + 0.5841786 0.0469124 + 0.6078921 0.0449802 + 0.6313537 0.0429778 + 0.6545085 0.0409174 + 0.6773025 0.0388109 + 0.6996823 0.0366700 + 0.7215958 0.0345058 + 0.7429917 0.0323294 + 0.7638202 0.0301515 + 0.7840324 0.0279828 + 0.8035813 0.0258337 + 0.8224211 0.0237142 + 0.8405079 0.0216347 + 0.8577995 0.0196051 + 0.8742554 0.0176353 + 0.8898372 0.0157351 + 0.9045085 0.0139143 + 0.9182351 0.0121823 + 0.9309849 0.0105485 + 0.9427280 0.0090217 + 0.9534372 0.0076108 + 0.9630873 0.0063238 + 0.9716559 0.0051685 + 0.9791229 0.0041519 + 0.9854709 0.0032804 + 0.9906850 0.0025595 + 0.9947532 0.0019938 + 0.9976658 0.0015870 + 0.9994161 0.0013419 \ No newline at end of file diff --git a/NACA0012_Airfoil/multicase/SA/system/blockMeshDict b/NACA0012_Airfoil/multicase/SA/system/blockMeshDict new file mode 100755 index 00000000..1e001064 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/system/blockMeshDict @@ -0,0 +1,165 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| o | | +| o o | HELYX-OS | +| o O o | Version: v2.3.1 | +| o o | Web: http://www.engys.com | +| o | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} + +convertToMeters 1; + +MeshCross 10; +MeshInout 14; +MeshBend 8; + +ratio1 0.1; +ratio2 10.0; + +vertices +( + ( 0 0.0195 0) + ( 0 0.0945 0) + ( 0 0.0195 0.075) + ( 0 0.0945 0.075) + + ( 0.75 0.0195 0) + ( 0.75 0.0945 0) + ( 0.75 0.0195 0.075) + ( 0.75 0.0945 0.075) + + ( 0 -0.0195 0) + ( 0 -0.0945 0) + ( 0 -0.0195 0.075) + ( 0 -0.0945 0.075) + + ( 0.75 -0.0195 0) + ( 0.75 -0.0945 0) + ( 0.75 -0.0195 0.075) + ( 0.75 -0.0945 0.075) + + ( 0.7695 0 0) + ( 0.7695 0 0.075) + ( 0.8445 0 0) + ( 0.8445 0 0.075) + +); + +edges +( + arc 4 16 ( 0.76378858223313767673 0.01378858223313767673 0) + arc 6 17 ( 0.76378858223313767673 0.01378858223313767673 0.075) + + arc 12 16 ( 0.76378858223313767673 -0.01378858223313767673 0) + arc 14 17 ( 0.76378858223313767673 -0.01378858223313767673 0.075) + + arc 5 18 ( 0.81682159082212874106 0.06682159082212874106 0) + arc 7 19 ( 0.81682159082212874106 0.06682159082212874106 0.075) + + arc 13 18 ( 0.81682159082212874106 -0.06682159082212874106 0) + arc 15 19 ( 0.81682159082212874106 -0.06682159082212874106 0.075) +); + +blocks +( + + hex (0 4 5 1 2 6 7 3) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (4 16 18 5 6 17 19 7) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (13 18 16 12 15 19 17 14) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + hex (9 13 12 8 11 15 14 10) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + +); + + +patches +( + + patch inlet + ( + (0 1 3 2) + ) + patch outlet + ( + (9 8 10 11) + ) + wall ubend + ( + (0 4 5 1) + (0 4 6 2) + (1 5 7 3) + (2 3 7 6) + (4 16 18 5) + (4 16 17 6) + (6 17 19 7) + (5 18 19 7) + (13 18 16 12) + (13 15 19 18) + (12 16 17 14) + (14 17 19 15) + (9 13 12 8) + (9 11 15 13) + (8 12 14 10) + (11 15 14 10) + + ) +); + +mergePatchPairs +( +); diff --git a/NACA0012_Airfoil/multicase/SA/system/controlDict b/NACA0012_Airfoil/multicase/SA/system/controlDict new file mode 100755 index 00000000..05325f44 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/system/controlDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 1000; +deltaT 1; +writeControl timeStep; +writeInterval 1000; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 16; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/NACA0012_Airfoil/multicase/SA/system/createPatchDict b/NACA0012_Airfoil/multicase/SA/system/createPatchDict new file mode 100755 index 00000000..5e2c4077 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/system/createPatchDict @@ -0,0 +1,82 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +pointSync false; + +// Patches to create. +patches +( + { + // Name of new patch + name symmetry1; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto0); + } + { + // Name of new patch + name symmetry2; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto1); + } + + { + // Name of new patch + name wing; + + // Dictionary to construct new patch from + patchInfo + { + type wall; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto2 auto3); + } + + { + // Name of new patch + name inout; + + // Dictionary to construct new patch from + patchInfo + { + type patch; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto4); + } +); + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SA/system/decomposeParDict b/NACA0012_Airfoil/multicase/SA/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/multicase/SA/system/fvSchemes b/NACA0012_Airfoil/multicase/SA/system/fvSchemes new file mode 100755 index 00000000..65c9021a --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/system/fvSchemes @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/multicase/SA/system/fvSolution b/NACA0012_Airfoil/multicase/SA/system/fvSolution new file mode 100755 index 00000000..26c0cf6a --- /dev/null +++ b/NACA0012_Airfoil/multicase/SA/system/fvSolution @@ -0,0 +1,67 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +SIMPLE +{ + consistent false; + nNonOrthogonalCorrectors 0; +} + +solvers +{ + "(p|p_rgh|G)" + { + + solver GAMG; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + } + Phi + { + $p; + relTol 0; + tolerance 1e-6; + } + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + nSweeps 1; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh)" 0.30; + } + equations + { + "(U|T|e|h|nuTilda|k|epsilon|omega)" 0.70; + } +} + +potentialFlow +{ + nNonOrthogonalCorrectors 20; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/multicase/SST/0.orig/U b/NACA0012_Airfoil/multicase/SST/0.orig/U new file mode 100755 index 00000000..e9c2ba26 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/0.orig/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (10 0 0); + +boundaryField +{ + "(wing.*)" + { + type fixedValue; + value uniform (0 0 0); + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SST/0.orig/epsilon b/NACA0012_Airfoil/multicase/SST/0.orig/epsilon new file mode 100755 index 00000000..98985d59 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/0.orig/epsilon @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.14; + +boundaryField +{ + "(wing.*)" + { + type epsilonWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SST/0.orig/k b/NACA0012_Airfoil/multicase/SST/0.orig/k new file mode 100755 index 00000000..8d7bd3a7 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/0.orig/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + "(wing.*)" + { + type kqRWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SST/0.orig/nuTilda b/NACA0012_Airfoil/multicase/SST/0.orig/nuTilda new file mode 100755 index 00000000..ba5af0c7 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/0.orig/nuTilda @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5e-05; + +boundaryField +{ + "(wing.*)" + { + type fixedValue; + value uniform 0.0; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SST/0.orig/nut b/NACA0012_Airfoil/multicase/SST/0.orig/nut new file mode 100755 index 00000000..b0a13bad --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/0.orig/nut @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5E-5; + +boundaryField +{ + "(wing.*)" + { + type nutUSpaldingWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SST/0.orig/omega b/NACA0012_Airfoil/multicase/SST/0.orig/omega new file mode 100755 index 00000000..98393ba9 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/0.orig/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 100; + +boundaryField +{ + "(wing.*)" + { + type omegaWallFunction; + value $internalField; + blended true; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SST/0.orig/p b/NACA0012_Airfoil/multicase/SST/0.orig/p new file mode 100755 index 00000000..b65c22b9 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/0.orig/p @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + "(wing.*)" + { + type zeroGradient; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type fixedValue; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SST/FFD/genFFD.py b/NACA0012_Airfoil/multicase/SST/FFD/genFFD.py new file mode 100755 index 00000000..493ecc28 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/FFD/genFFD.py @@ -0,0 +1,99 @@ +import numpy as np +import sys + +def writeFFDFile(fileName,nBlocks,nx,ny,nz,points): + ''' + Take in a set of points and write the plot 3dFile + ''' + + f = open(fileName,'w') + + f.write('%d\n'%nBlocks) + for i in range(nBlocks): + f.write('%d %d %d '%(nx[i],ny[i],nz[i])) + # end + f.write('\n') + for block in range(nBlocks): + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,0]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,1]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,2]) + # end + # end + # end + # end + f.close() + return + +def returnBlockPoints(corners,nx,ny,nz): + ''' + corners needs to be 8 x 3 + ''' + points = np.zeros([nx,ny,nz,3]) + + # points 1 - 4 are the iMin face + # points 5 - 8 are the iMax face + + for idim in range(3): + edge1 = np.linspace(corners[0][idim],corners[4][idim],nx) + edge2 = np.linspace(corners[1][idim],corners[5][idim],nx) + edge3 = np.linspace(corners[2][idim],corners[6][idim],nx) + edge4 = np.linspace(corners[3][idim],corners[7][idim],nx) + + for i in range(nx): + edge5 = np.linspace(edge1[i],edge3[i],ny) + edge6 = np.linspace(edge2[i],edge4[i],ny) + for j in range(ny): + edge7 = np.linspace(edge5[j],edge6[j],nz) + points[i,j,:,idim] = edge7 + # end + # end + # end + + return points + +################ FFD ############## +nBlocks = 1 + +nx = [5] +ny = [2] +nz = [2] + +corners = np.zeros([nBlocks,8,3]) + +corners[0,0,:] = [-0.010,-.0700,0.0] +corners[0,1,:] = [-0.010,-0.0700,0.1] +corners[0,2,:] = [-0.010,0.0700,0.0] +corners[0,3,:] = [-0.010,0.0700,0.1] +corners[0,4,:] = [ 1.01,-.07,0.0] +corners[0,5,:] = [ 1.01,-.07,0.10] +corners[0,6,:] = [ 1.01,0.07,0.0] +corners[0,7,:] = [ 1.01,0.07,0.1] + + +points = [] +for block in range(nBlocks): + points.append(returnBlockPoints(corners[block],nx[block],ny[block],nz[block])) + +#print points +fileName = 'wingFFD.xyz' +writeFFDFile(fileName,nBlocks,nx,ny,nz,points) + diff --git a/NACA0012_Airfoil/multicase/SST/FFD/wingFFD.xyz b/NACA0012_Airfoil/multicase/SST/FFD/wingFFD.xyz new file mode 100755 index 00000000..38b3d492 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/FFD/wingFFD.xyz @@ -0,0 +1,5 @@ +1 +5 2 2 +-0.010000 0.245000 0.500000 0.755000 1.010000 -0.010000 0.245000 0.500000 0.755000 1.010000 -0.010000 0.245000 0.500000 0.755000 1.010000 -0.010000 0.245000 0.500000 0.755000 1.010000 +-0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 \ No newline at end of file diff --git a/NACA0012_Airfoil/multicase/SST/constant/transportProperties b/NACA0012_Airfoil/multicase/SST/constant/transportProperties new file mode 100755 index 00000000..e237ba13 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/constant/transportProperties @@ -0,0 +1,23 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1.5e-5; +Pr 0.7; +Prt 1.0; +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/multicase/SST/constant/turbulenceProperties b/NACA0012_Airfoil/multicase/SST/constant/turbulenceProperties new file mode 100755 index 00000000..421431b1 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmegaSST; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/multicase/SST/genAirFoilMesh.py b/NACA0012_Airfoil/multicase/SST/genAirFoilMesh.py new file mode 100755 index 00000000..c2a74288 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/genAirFoilMesh.py @@ -0,0 +1,267 @@ +#!/usr/bin/env python +""" +This script reads a coarse airfoil profile, refine the profile using spline function, +and outputs it as surfaceMesh.xyz. Then it generate a 3D volume mesh with nSpan layers +in the z direction using pyHyp, available at https://github.com/mdolab/pyhyp +Note: the airfoil data should be seperated into PS and SS surfaces, they should start from the +LE and ends at TE. We use blunt TE so truncate the PS and SS data at about 99.8% of the chord. +""" + +from pyhyp import pyHyp +import numpy +from pyspline import * + +########## user input ################ +# 2D +prefix = "./profiles/" +airfoilProfilePS = prefix + "NACA0012PS.profile" +airfoilProfileSS = prefix + "NACA0012SS.profile" +ZSpan = 0.1 # width in the z direction +nSpan = 2 # how many points in z +# PS parameters +dX1PS = 0.005 # first dx from the LE +Alpha1PS = 1.2 # clustering from the LE +dX2PS = 2e-3 # first dx from the TE +Alpha2PS = 1.2 # clustering from the TE +dXMaxPS = 0.02 # max dx for PS +# SS parameters +dX1SS = 0.005 # first dx from the LE +Alpha1SS = 1.2 # clustering from the LE +dX2SS = 2e-3 # first dx from the TE +Alpha2SS = 1.2 # clustering from the TE +dXMaxSS = 0.02 # max dx for SS +# TE parameters +NpTE = 5 # number of points for blunt TE +# 3D +NpExtrude = 33 # how many points to extrude for the 3D volume mesh in y +yWall = 4e-3 # first layer mesh length +marchDist = 20.0 # march distance for extruding +########## user input ################ + +# read profiles +fPS = open(airfoilProfilePS, "r") +linesPS = fPS.readlines() +fPS.close() +xPS = [] +yPS = [] +zPS = [] +for line in linesPS: + cols = line.split() + xPS.append(float(cols[0])) + yPS.append(float(cols[1])) + +for i in range(len(xPS)): + zPS.append(0.0) + +fSS = open(airfoilProfileSS, "r") +linesSS = fSS.readlines() +fSS.close() +xSS = [] +ySS = [] +zSS = [] +for line in linesSS: + cols = line.split() + xSS.append(float(cols[0])) + ySS.append(float(cols[1])) +for i in range(len(xSS)): + zSS.append(0.0) + +# ------------PS +# first compute how many stretching points do we need for both ends +tmp = dX1PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch1PS = i + break + else: + tmp = tmp * Alpha1PS +# print (nStretch1PS) +tmp = dX2PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch2PS = i + break + else: + tmp = tmp * Alpha2PS +# print (nStretch2PS) + +# now compute how much length does these two stretching end and the constant portion have +xLPSConst = xPS[-1] +xLPS1 = 0 +xLPS2 = 0 +for i in range(nStretch1PS): + xLPS1 += dX1PS * (Alpha1PS ** i) + xLPSConst -= dX1PS * (Alpha1PS ** i) +for i in range(nStretch2PS): + xLPS2 += dX2PS * (Alpha2PS ** i) + xLPSConst -= dX2PS * (Alpha2PS ** i) +# print xLPS1,xLPS2,xLPSConst +# update dXMax, we just want to make sure these three portion add up +nXConstPS = int(xLPSConst / dXMaxPS) +dXMaxPS = xLPSConst / nXConstPS +# print(dXMaxPS) + +# now we can add these three portions together +xInterpPS = [0] +tmp = dX1PS +for i in range(nStretch1PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp = tmp * Alpha1PS +for i in range(nXConstPS): + xInterpPS.append(xInterpPS[-1] + dXMaxPS) +tmp = dX2PS * (Alpha2PS ** (nStretch2PS - 1)) +for i in range(nStretch2PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp /= Alpha2PS +# print xInterpPS +# Finally, we interpolate the refined stretch stuff +c1PS = Curve(x=xPS, y=yPS, z=zPS, k=3) +XPS = c1PS(xInterpPS) +c2PS = Curve(X=XPS, k=3) +x1PS = c2PS.X[:, 0] +y1PS = c2PS.X[:, 1] + + +# ------------SS +# first compute how many stretching points do we need for both ends +tmp = dX1SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch1SS = i + break + else: + tmp = tmp * Alpha1SS +# print (nStretch1SS) +tmp = dX2SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch2SS = i + break + else: + tmp = tmp * Alpha2SS +# print (nStretch2SS) + +# now compute how much length does these two stretching end and the constant portion have +xLSSConst = xSS[-1] +xLSS1 = 0 +xLSS2 = 0 +for i in range(nStretch1SS): + xLSS1 += dX1SS * (Alpha1SS ** i) + xLSSConst -= dX1SS * (Alpha1SS ** i) +for i in range(nStretch2SS): + xLSS2 += dX2SS * (Alpha2SS ** i) + xLSSConst -= dX2SS * (Alpha2SS ** i) +# print xLSS1,xLSS2,xLSSConst +# update dXMax, we just want to make sure these three portion add up +nXConstSS = int(xLSSConst / dXMaxSS) +dXMaxSS = xLSSConst / nXConstSS +# print(dXMaxSS) + +# now we can add these three portions together +xInterpSS = [0] +tmp = dX1SS +for i in range(nStretch1SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp = tmp * Alpha1SS +for i in range(nXConstSS): + xInterpSS.append(xInterpSS[-1] + dXMaxSS) +tmp = dX2SS * (Alpha2SS ** (nStretch2SS - 1)) +for i in range(nStretch2SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp /= Alpha2SS +# print xInterpSS +# Finally, we interpolate the refined stretch stuff +c1SS = Curve(x=xSS, y=ySS, z=zSS, k=3) +XSS = c1SS(xInterpSS) +c2SS = Curve(X=XSS, k=3) +x1SS = c2SS.X[:, 0] +y1SS = c2SS.X[:, 1] + +# Since the TE is open we need to close it. Close it multiple linear segments. +delta_y = numpy.linspace(y1PS[-1], y1SS[-1], NpTE, "d") +delta_x = numpy.linspace(x1PS[-1], x1SS[-1], NpTE, "d") +delta_y = delta_y[1:] +delta_x = delta_x[1:] + +x1SS_Flip = x1SS[::-1] # reverse the array #numpy.flip(x1SS,axis=0) +xAll = numpy.append(x1SS_Flip, x1PS[1:]) +xAll = numpy.append(xAll, delta_x) + +y1SS_Flip = y1SS[::-1] # reverse the array # numpy.flip(y1SS,axis=0) +yAll = numpy.append(y1SS_Flip, y1PS[1:]) +yAll = numpy.append(yAll, delta_y) + + +# print mesh statistics +print("nPoints for PS: ", nStretch1PS + nStretch2PS + nXConstPS) +print("nPoints for SS: ", nStretch1SS + nStretch2SS + nXConstSS) +print("nPoints for TE: ", NpTE) +print("nPoints Total: ", nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE) +print( + "Mesh cells: ", + (nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE - 1) + * (NpExtrude - 1) + * (nSpan - 1), +) + +# plt.plot(xPS,yPS,'-k',linewidth=1) +# plt.plot(xAll,yAll,'ro',markersize=2) +# plt.plot(xSS,ySS,'-k',linewidth=1) +# plt.gca().set_aspect('equal', adjustable='box') +# plt.show() +# plt.savefig('figure.png',bbox_inches='tight') # save the figure to file +# plt.close() # close the figure + + +# Write the plot3d input file: +f = open("surfaceMesh.xyz", "w") +f.write("1\n") +f.write("%d %d %d\n" % (len(xAll), nSpan, 1)) +for iDim in range(3): + for z in numpy.linspace(0.0, ZSpan, nSpan): + for i in range(len(xAll)): + if iDim == 0: + f.write("%20.16f\n" % xAll[i]) + elif iDim == 1: + f.write("%20.16f\n" % yAll[i]) + else: + f.write("%20.16f\n" % z) +f.close() + +options = { + # --------------------------- + # Input Parameters + # --------------------------- + "inputFile": "surfaceMesh.xyz", + "unattachedEdgesAreSymmetry": False, + "outerFaceBC": "farfield", + "autoConnect": True, + "BC": {1: {"jLow": "zSymm", "jHigh": "zSymm"}}, + "families": "wall", + # --------------------------- + # Grid Parameters + # --------------------------- + "N": NpExtrude, + "s0": yWall, + "marchDist": marchDist, + # --------------------------- + # Pseudo Grid Parameters + # --------------------------- + "ps0": -1.0, + "pGridRatio": -1.0, + "cMax": 1.0, + # --------------------------- + # Smoothing parameters + # --------------------------- + "epsE": 2.0, + "epsI": 4.0, + "theta": 2.0, + "volCoef": 0.20, + "volBlend": 0.0005, + "volSmoothIter": 20, +} + + +hyp = pyHyp(options=options) +hyp.run() +hyp.writePlot3D("volumeMesh.xyz") diff --git a/NACA0012_Airfoil/multicase/SST/paraview.foam b/NACA0012_Airfoil/multicase/SST/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/NACA0012_Airfoil/multicase/SST/profiles/NACA0012PS.profile b/NACA0012_Airfoil/multicase/SST/profiles/NACA0012PS.profile new file mode 100755 index 00000000..ce997a7d --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/profiles/NACA0012PS.profile @@ -0,0 +1,65 @@ + 0.0000000 0.0000000 + 0.0005839 -.0042603 + 0.0023342 -.0084289 + 0.0052468 -.0125011 + 0.0093149 -.0164706 + 0.0145291 -.0203300 + 0.0208771 -.0240706 + 0.0283441 -.0276827 + 0.0369127 -.0311559 + 0.0465628 -.0344792 + 0.0572720 -.0376414 + 0.0690152 -.0406310 + 0.0817649 -.0434371 + 0.0954915 -.0460489 + 0.1101628 -.0484567 + 0.1257446 -.0506513 + 0.1422005 -.0526251 + 0.1594921 -.0543715 + 0.1775789 -.0558856 + 0.1964187 -.0571640 + 0.2159676 -.0582048 + 0.2361799 -.0590081 + 0.2570083 -.0595755 + 0.2784042 -.0599102 + 0.3003177 -.0600172 + 0.3226976 -.0599028 + 0.3454915 -.0595747 + 0.3686463 -.0590419 + 0.3921079 -.0583145 + 0.4158215 -.0574033 + 0.4397317 -.0563200 + 0.4637826 -.0550769 + 0.4879181 -.0536866 + 0.5120819 -.0521620 + 0.5362174 -.0505161 + 0.5602683 -.0487619 + 0.5841786 -.0469124 + 0.6078921 -.0449802 + 0.6313537 -.0429778 + 0.6545085 -.0409174 + 0.6773025 -.0388109 + 0.6996823 -.0366700 + 0.7215958 -.0345058 + 0.7429917 -.0323294 + 0.7638202 -.0301515 + 0.7840324 -.0279828 + 0.8035813 -.0258337 + 0.8224211 -.0237142 + 0.8405079 -.0216347 + 0.8577995 -.0196051 + 0.8742554 -.0176353 + 0.8898372 -.0157351 + 0.9045085 -.0139143 + 0.9182351 -.0121823 + 0.9309849 -.0105485 + 0.9427280 -.0090217 + 0.9534372 -.0076108 + 0.9630873 -.0063238 + 0.9716559 -.0051685 + 0.9791229 -.0041519 + 0.9854709 -.0032804 + 0.9906850 -.0025595 + 0.9947532 -.0019938 + 0.9976658 -.0015870 + 0.9994161 -.0013419 \ No newline at end of file diff --git a/NACA0012_Airfoil/multicase/SST/profiles/NACA0012SS.profile b/NACA0012_Airfoil/multicase/SST/profiles/NACA0012SS.profile new file mode 100755 index 00000000..ff7a6b8a --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/profiles/NACA0012SS.profile @@ -0,0 +1,65 @@ + 0.0000000 0.0000000 + 0.0005839 0.0042603 + 0.0023342 0.0084289 + 0.0052468 0.0125011 + 0.0093149 0.0164706 + 0.0145291 0.0203300 + 0.0208771 0.0240706 + 0.0283441 0.0276827 + 0.0369127 0.0311559 + 0.0465628 0.0344792 + 0.0572720 0.0376414 + 0.0690152 0.0406310 + 0.0817649 0.0434371 + 0.0954915 0.0460489 + 0.1101628 0.0484567 + 0.1257446 0.0506513 + 0.1422005 0.0526251 + 0.1594921 0.0543715 + 0.1775789 0.0558856 + 0.1964187 0.0571640 + 0.2159676 0.0582048 + 0.2361799 0.0590081 + 0.2570083 0.0595755 + 0.2784042 0.0599102 + 0.3003177 0.0600172 + 0.3226976 0.0599028 + 0.3454915 0.0595747 + 0.3686463 0.0590419 + 0.3921079 0.0583145 + 0.4158215 0.0574033 + 0.4397317 0.0563200 + 0.4637826 0.0550769 + 0.4879181 0.0536866 + 0.5120819 0.0521620 + 0.5362174 0.0505161 + 0.5602683 0.0487619 + 0.5841786 0.0469124 + 0.6078921 0.0449802 + 0.6313537 0.0429778 + 0.6545085 0.0409174 + 0.6773025 0.0388109 + 0.6996823 0.0366700 + 0.7215958 0.0345058 + 0.7429917 0.0323294 + 0.7638202 0.0301515 + 0.7840324 0.0279828 + 0.8035813 0.0258337 + 0.8224211 0.0237142 + 0.8405079 0.0216347 + 0.8577995 0.0196051 + 0.8742554 0.0176353 + 0.8898372 0.0157351 + 0.9045085 0.0139143 + 0.9182351 0.0121823 + 0.9309849 0.0105485 + 0.9427280 0.0090217 + 0.9534372 0.0076108 + 0.9630873 0.0063238 + 0.9716559 0.0051685 + 0.9791229 0.0041519 + 0.9854709 0.0032804 + 0.9906850 0.0025595 + 0.9947532 0.0019938 + 0.9976658 0.0015870 + 0.9994161 0.0013419 \ No newline at end of file diff --git a/NACA0012_Airfoil/multicase/SST/system/blockMeshDict b/NACA0012_Airfoil/multicase/SST/system/blockMeshDict new file mode 100755 index 00000000..1e001064 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/system/blockMeshDict @@ -0,0 +1,165 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| o | | +| o o | HELYX-OS | +| o O o | Version: v2.3.1 | +| o o | Web: http://www.engys.com | +| o | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} + +convertToMeters 1; + +MeshCross 10; +MeshInout 14; +MeshBend 8; + +ratio1 0.1; +ratio2 10.0; + +vertices +( + ( 0 0.0195 0) + ( 0 0.0945 0) + ( 0 0.0195 0.075) + ( 0 0.0945 0.075) + + ( 0.75 0.0195 0) + ( 0.75 0.0945 0) + ( 0.75 0.0195 0.075) + ( 0.75 0.0945 0.075) + + ( 0 -0.0195 0) + ( 0 -0.0945 0) + ( 0 -0.0195 0.075) + ( 0 -0.0945 0.075) + + ( 0.75 -0.0195 0) + ( 0.75 -0.0945 0) + ( 0.75 -0.0195 0.075) + ( 0.75 -0.0945 0.075) + + ( 0.7695 0 0) + ( 0.7695 0 0.075) + ( 0.8445 0 0) + ( 0.8445 0 0.075) + +); + +edges +( + arc 4 16 ( 0.76378858223313767673 0.01378858223313767673 0) + arc 6 17 ( 0.76378858223313767673 0.01378858223313767673 0.075) + + arc 12 16 ( 0.76378858223313767673 -0.01378858223313767673 0) + arc 14 17 ( 0.76378858223313767673 -0.01378858223313767673 0.075) + + arc 5 18 ( 0.81682159082212874106 0.06682159082212874106 0) + arc 7 19 ( 0.81682159082212874106 0.06682159082212874106 0.075) + + arc 13 18 ( 0.81682159082212874106 -0.06682159082212874106 0) + arc 15 19 ( 0.81682159082212874106 -0.06682159082212874106 0.075) +); + +blocks +( + + hex (0 4 5 1 2 6 7 3) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (4 16 18 5 6 17 19 7) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (13 18 16 12 15 19 17 14) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + hex (9 13 12 8 11 15 14 10) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + +); + + +patches +( + + patch inlet + ( + (0 1 3 2) + ) + patch outlet + ( + (9 8 10 11) + ) + wall ubend + ( + (0 4 5 1) + (0 4 6 2) + (1 5 7 3) + (2 3 7 6) + (4 16 18 5) + (4 16 17 6) + (6 17 19 7) + (5 18 19 7) + (13 18 16 12) + (13 15 19 18) + (12 16 17 14) + (14 17 19 15) + (9 13 12 8) + (9 11 15 13) + (8 12 14 10) + (11 15 14 10) + + ) +); + +mergePatchPairs +( +); diff --git a/NACA0012_Airfoil/multicase/SST/system/controlDict b/NACA0012_Airfoil/multicase/SST/system/controlDict new file mode 100755 index 00000000..05325f44 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/system/controlDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 1000; +deltaT 1; +writeControl timeStep; +writeInterval 1000; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 16; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/NACA0012_Airfoil/multicase/SST/system/createPatchDict b/NACA0012_Airfoil/multicase/SST/system/createPatchDict new file mode 100755 index 00000000..5e2c4077 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/system/createPatchDict @@ -0,0 +1,82 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +pointSync false; + +// Patches to create. +patches +( + { + // Name of new patch + name symmetry1; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto0); + } + { + // Name of new patch + name symmetry2; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto1); + } + + { + // Name of new patch + name wing; + + // Dictionary to construct new patch from + patchInfo + { + type wall; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto2 auto3); + } + + { + // Name of new patch + name inout; + + // Dictionary to construct new patch from + patchInfo + { + type patch; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto4); + } +); + +// ************************************************************************* // diff --git a/NACA0012_Airfoil/multicase/SST/system/decomposeParDict b/NACA0012_Airfoil/multicase/SST/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/multicase/SST/system/fvSchemes b/NACA0012_Airfoil/multicase/SST/system/fvSchemes new file mode 100755 index 00000000..65c9021a --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/system/fvSchemes @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/multicase/SST/system/fvSolution b/NACA0012_Airfoil/multicase/SST/system/fvSolution new file mode 100755 index 00000000..26c0cf6a --- /dev/null +++ b/NACA0012_Airfoil/multicase/SST/system/fvSolution @@ -0,0 +1,67 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +SIMPLE +{ + consistent false; + nNonOrthogonalCorrectors 0; +} + +solvers +{ + "(p|p_rgh|G)" + { + + solver GAMG; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + } + Phi + { + $p; + relTol 0; + tolerance 1e-6; + } + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + nSweeps 1; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh)" 0.30; + } + equations + { + "(U|T|e|h|nuTilda|k|epsilon|omega)" 0.70; + } +} + +potentialFlow +{ + nNonOrthogonalCorrectors 20; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/multicase/preProcessing.sh b/NACA0012_Airfoil/multicase/preProcessing.sh new file mode 100755 index 00000000..14baa85f --- /dev/null +++ b/NACA0012_Airfoil/multicase/preProcessing.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Check if the OpenFOAM enviroments are loaded +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# generate mesh +cd SA +echo "Generating mesh.." +python genAirFoilMesh.py &> logMeshGeneration.txt +plot3dToFoam -noBlank volumeMesh.xyz >> logMeshGeneration.txt +autoPatch 30 -overwrite >> logMeshGeneration.txt +createPatch -overwrite >> logMeshGeneration.txt +renumberMesh -overwrite >> logMeshGeneration.txt +echo "Generating mesh.. Done!" +cp -r 0.orig 0 + +cd ../SST +echo "Generating mesh.." +python genAirFoilMesh.py &> logMeshGeneration.txt +plot3dToFoam -noBlank volumeMesh.xyz >> logMeshGeneration.txt +autoPatch 30 -overwrite >> logMeshGeneration.txt +createPatch -overwrite >> logMeshGeneration.txt +renumberMesh -overwrite >> logMeshGeneration.txt +echo "Generating mesh.. Done!" +cp -r 0.orig 0 + +cd ../ diff --git a/NACA0012_Airfoil/multicase/runScript.py b/NACA0012_Airfoil/multicase/runScript.py new file mode 100755 index 00000000..e4f9a8ad --- /dev/null +++ b/NACA0012_Airfoil/multicase/runScript.py @@ -0,0 +1,328 @@ +#!/usr/bin/env python +""" +DAFoam run script for the NACA0012 airfoil at low-speed (multicase) +Here we optimize the case using both SA and SST models and the objective func +is the averaged drag between SA and SST +""" + +# ============================================================================= +# Imports +# ============================================================================= +import os +import argparse +import numpy as np +import json +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP + + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= +U0 = 10.0 +p0 = 0.0 +nuTilda0 = 4.5e-5 +k0 = 0.015 +omega0 = 100.0 +CL_target = 0.5 +aoa0 = 5.0 +A0 = 0.1 +rho0 = 1.0 + +# Input parameters for DAFoam +daOptionsSA = { + "designSurfaces": ["wing"], + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "useWallFunction": True, + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + }, + "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, + "normalizeStates": { + "U": U0, + "p": U0 * U0 / 2.0, + "nuTilda": nuTilda0 * 10.0, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, +} + +daOptionsSST = { + "designSurfaces": ["wing"], + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "k0": {"variable": "k", "patches": ["inout"], "value": [k0]}, + "omega0": {"variable": "omega", "patches": ["inout"], "value": [omega0]}, + "useWallFunction": True, + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + }, + "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, + "normalizeStates": { + "U": U0, + "p": U0 * U0 / 2.0, + "k": k0, + "omega": omega0, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers for both cases (they share the same mesh option) + dafoam_builder_sa = DAFoamBuilder(daOptionsSA, meshOptions, scenario="aerodynamic", run_directory="SA") + dafoam_builder_sa.initialize(self.comm) + + dafoam_builder_sst = DAFoamBuilder(daOptionsSST, meshOptions, scenario="aerodynamic", run_directory="SST") + dafoam_builder_sst.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh_sa", dafoam_builder_sa.get_mesh_coordinate_subsystem()) + self.add_subsystem("mesh_sst", dafoam_builder_sst.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry_sa", OM_DVGEOCOMP(file="SA/FFD/wingFFD.xyz", type="ffd")) + self.add_subsystem("geometry_sst", OM_DVGEOCOMP(file="SST/FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario_sa", ScenarioAerodynamic(aero_builder=dafoam_builder_sa)) + self.mphys_add_scenario("scenario_sst", ScenarioAerodynamic(aero_builder=dafoam_builder_sst)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh_sa.x_aero0", "geometry_sa.x_aero_in") + self.connect("geometry_sa.x_aero0", "scenario_sa.x_aero") + + self.connect("mesh_sst.x_aero0", "geometry_sst.x_aero_in") + self.connect("geometry_sst.x_aero0", "scenario_sst.x_aero") + + self.add_subsystem("obj", om.ExecComp("value=(cd_sa+cd_sst)/2")) + + def configure(self): + + # get the surface coordinates from the mesh component + points_sa = self.mesh_sa.mphys_get_surface_mesh() + points_sst = self.mesh_sst.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry_sa.nom_add_discipline_coords("aero", points_sa) + self.geometry_sst.nom_add_discipline_coords("aero", points_sst) + + # set the triangular points to the geometry component for geometric constraints + tri_points_sa = self.mesh_sa.mphys_get_triangulated_surface() + self.geometry_sa.nom_setConstraintSurface(tri_points_sa) + + tri_points_sst = self.mesh_sst.mphys_get_triangulated_surface() + self.geometry_sst.nom_setConstraintSurface(tri_points_sst) + + # use the shape function to define shape variables for 2D airfoil + pts = self.geometry_sa.DVGeo.getLocalIndex(0) + dir_y = np.array([0.0, 1.0, 0.0]) + shapes = [] + for i in range(1, pts.shape[0] - 1): + for j in range(pts.shape[1]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts[i, j, 0]: dir_y, pts[i, j, 1]: dir_y}) + # LE/TE shape, the j=0 and j=1 move in opposite directions so that + # the LE/TE are fixed + for i in [0, pts.shape[0] - 1]: + shapes.append({pts[i, 0, 0]: dir_y, pts[i, 0, 1]: dir_y, pts[i, 1, 0]: -dir_y, pts[i, 1, 1]: -dir_y}) + self.geometry_sa.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + self.geometry_sst.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + + # setup the volume and thickness constraints + leList = [[1e-4, 0.0, 1e-4], [1e-4, 0.0, 0.1 - 1e-4]] + teList = [[0.998 - 1e-4, 0.0, 1e-4], [0.998 - 1e-4, 0.0, 0.1 - 1e-4]] + self.geometry_sa.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) + self.geometry_sa.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * len(shapes))) + self.dvs.add_output("patchV_sa", val=np.array([U0, aoa0])) + self.dvs.add_output("patchV_sst", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and cruise + # sa and sst cases share the same shape + self.connect("patchV_sa", "scenario_sa.patchV") + self.connect("shape", "geometry_sa.shape") + self.connect("patchV_sst", "scenario_sst.patchV") + self.connect("shape", "geometry_sst.shape") + + # define the design variables to the top level + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("patchV_sa", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + self.add_design_var("patchV_sst", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + + # add objective and constraints to the top level + self.connect("scenario_sa.aero_post.CD", "obj.cd_sa") + self.connect("scenario_sst.aero_post.CD", "obj.cd_sst") + self.add_objective("obj.value", scaler=1.0) + + self.add_constraint("scenario_sa.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("scenario_sst.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("geometry_sa.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry_sa.volcon", lower=1.0, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs([daOptionsSA, daOptionsSST], prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign( + ["scenario_sa.aero_post.CL", "scenario_sst.aero_post.CL"], + ["patchV_sa", "patchV_sst"], + designVarsComp=[1, 1], + targets=[CL_target, CL_target], + ) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/NACA0012_Airfoil/multipoint/genAirFoilMesh.py b/NACA0012_Airfoil/multipoint/genAirFoilMesh.py index 0ebc4ecb..c2a74288 100755 --- a/NACA0012_Airfoil/multipoint/genAirFoilMesh.py +++ b/NACA0012_Airfoil/multipoint/genAirFoilMesh.py @@ -179,10 +179,9 @@ # Since the TE is open we need to close it. Close it multiple linear segments. delta_y = numpy.linspace(y1PS[-1], y1SS[-1], NpTE, "d") +delta_x = numpy.linspace(x1PS[-1], x1SS[-1], NpTE, "d") delta_y = delta_y[1:] -delta_x = numpy.ones_like(delta_y, "d") -for i in range(len(delta_x)): - delta_x[i] = x1SS[-1] +delta_x = delta_x[1:] x1SS_Flip = x1SS[::-1] # reverse the array #numpy.flip(x1SS,axis=0) xAll = numpy.append(x1SS_Flip, x1PS[1:]) diff --git a/NACA0012_Airfoil/multipoint/runScript.py b/NACA0012_Airfoil/multipoint/runScript.py index e43f9081..d573fc51 100755 --- a/NACA0012_Airfoil/multipoint/runScript.py +++ b/NACA0012_Airfoil/multipoint/runScript.py @@ -9,100 +9,96 @@ import os import argparse import numpy as np - +from mpi4py import MPI import openmdao.api as om from mphys.multipoint import Multipoint -from dafoam.mphys_dafoam import DAFoamBuilder +from dafoam.mphys import DAFoamBuilder, OptFuncs from mphys.scenario_aerodynamic import ScenarioAerodynamic -from mphys.solver_builders.mphys_dvgeo import OM_DVGEOCOMP -from pygeo import * +from pygeo.mphys import OM_DVGEOCOMP parser = argparse.ArgumentParser() # which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") -# which task to run. Options are: opt (default), runPrimal -parser.add_argument("-task", help="type of run to do", type=str, default="opt") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") args = parser.parse_args() # ============================================================================= # Input Parameters # ============================================================================= -U0 = [10.0, 8.0] +# we have two flight conditions +weights = [0.5, 0.5] +U0 = [10.0, 5.0] p0 = 0.0 nuTilda0 = 4.5e-5 -CL_target = [0.5, 0.6] -alpha0 = [5.139186, 6.0] +aoa0 = [5.0, 4.0] A0 = 0.1 +# rho is used for normalizing CD and CL rho0 = 1.0 +scalings = [1.0 / (0.5 * A0 * rho0 * U0[0] * U0[0]), 1.0 / (0.5 * A0 * rho0 * U0[1] * U0[1])] +lift_target = [0.5 / scalings[0], 0.4 / scalings[1]] + +# Input parameters for DAFoam +daOptions = { + "designSurfaces": ["wing"], + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [10.0, 0.0, 0.0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "useWallFunction": True, + }, + "function": { + "drag": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0, + }, + "lift": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0, + }, + }, + "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, + "normalizeStates": { + "U": 10.0, + "p": 50.0, + "nuTilda": nuTilda0 * 10.0, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], +} -fc0 = {"primalBC": {"U0": {"value": [U0[0], 0.0, 0.0]}}, - "objFunc": {"CD": {"part1": {"scale": 1.0 / (0.5 * U0[0] * U0[0] * A0 * rho0)}}, - "CL": {"part1": {"scale": 1.0 / (0.5 * U0[0] * U0[0] * A0 * rho0)}}}} -fc1 = {"primalBC": {"U0": {"value": [U0[1], 0.0, 0.0]}}, - "objFunc": {"CD": {"part1": {"scale": 1.0 / (0.5 * U0[1] * U0[1] * A0 * rho0)}}, - "CL": {"part1": {"scale": 1.0 / (0.5 * U0[1] * U0[1] * A0 * rho0)}}}} # Top class to setup the optimization problem class Top(Multipoint): def setup(self): - # Input parameters for DAFoam - daOptions = { - "designSurfaces": ["wing"], - "solverName": "DASimpleFoam", - "primalMinResTol": 1.0e-8, - "primalBC": { - "U0": {"variable": "U", "patches": ["inout"], "value": [U0[0], 0.0, 0.0]}, - "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, - "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, - "useWallFunction": True, - }, - "objFunc": { - "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "parallelToFlow", - "alphaName": "aoa", - "scale": 1.0 / (0.5 * U0[0] * U0[0] * A0 * rho0), - "addToAdjoint": True, - } - }, - "CL": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "normalToFlow", - "alphaName": "aoa", - "scale": 1.0 / (0.5 * U0[0] * U0[0] * A0 * rho0), - "addToAdjoint": True, - } - }, - }, - "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, - "normalizeStates": { - "U": U0[0], - "p": U0[0] * U0[0] / 2.0, - "nuTilda": nuTilda0 * 10.0, - "phi": 1.0, - }, - "adjPartDerivFDStep": {"State": 1e-6}, - "adjPCLag": 100, - "designVar": { - "aoa": {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "y"}, - "shape": {"designVarType": "FFD"}, - }, - } - - # Mesh deformation setup - meshOptions = { - "gridFile": os.getcwd(), - "fileType": "OpenFOAM", - # point and normal for the symmetry plane - "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], - } # create the builder to initialize the DASolvers dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") @@ -115,38 +111,32 @@ def setup(self): self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) # add the geometry component (FFD) - self.add_subsystem("geometry", OM_DVGEOCOMP(ffd_file="FFD/wingFFD.xyz")) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) # add a scenario (flow condition) for optimization, we pass the builder # to the scenario to actually run the flow and adjoint - self.mphys_add_scenario("cruise0", ScenarioAerodynamic(aero_builder=dafoam_builder)) - self.mphys_add_scenario("cruise1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + self.mphys_add_scenario("scenario2", ScenarioAerodynamic(aero_builder=dafoam_builder)) # need to manually connect the x_aero0 between the mesh and geometry components # here x_aero0 means the surface coordinates of structurally undeformed mesh self.connect("mesh.x_aero0", "geometry.x_aero_in") # need to manually connect the x_aero0 between the geometry component and the cruise # scenario group - self.connect("geometry.x_aero0", "cruise0.x_aero") - self.connect("geometry.x_aero0", "cruise1.x_aero") - - # add an exec comp to average two drags - self.add_subsystem("obj", om.ExecComp("CD_AVG=(CD0+CD1)/2")) + self.connect("geometry.x_aero0", "scenario1.x_aero") + self.connect("geometry.x_aero0", "scenario2.x_aero") + + # add an exec comp to average two drags, the weights are 0.5 and 0.5 + self.add_subsystem( + "obj", + om.ExecComp( + "val=w1*drag1+w2*drag2", + w1={"val": weights[0] * scalings[0], "constant": True}, + w2={"val": weights[1] * scalings[1], "constant": True}, + ), + ) def configure(self): - # configure and setup perform a similar function, i.e., initialize the optimization. - # But configure will be run after setup - - self.cruise0.coupling.mphys_set_options(fc0) - self.cruise0.aero_post.mphys_set_options(fc0) - - self.cruise1.coupling.mphys_set_options(fc1) - self.cruise1.aero_post.mphys_set_options(fc1) - - # add the objective function to the cruise scenario - self.cruise0.aero_post.mphys_add_funcs(["CD", "CL"]) - self.cruise1.aero_post.mphys_add_funcs(["CD", "CL"]) - # get the surface coordinates from the mesh component points = self.mesh.mphys_get_surface_mesh() @@ -157,79 +147,66 @@ def configure(self): tri_points = self.mesh.mphys_get_triangulated_surface() self.geometry.nom_setConstraintSurface(tri_points) - # define an angle of attack function to change the U direction at the far field - def aoa(val, DASolver): - aoa = float(val[0] * np.pi / 180.0) - U = DASolver.getOption("primalBC")["U0"]["value"] - UAll = np.sqrt(U[0] ** 2 + U[1] ** 2 + U[2] ** 2) - U = [float(UAll * np.cos(aoa)), float(UAll * np.sin(aoa)), 0] - DASolver.setOption("primalBC", {"U0": {"value": U}}) - DASolver.updateDAOption() - - # pass this aoa function to the cruise group - self.cruise0.coupling.solver.add_dv_func("aoa", aoa) - self.cruise0.aero_post.add_dv_func("aoa", aoa) - self.cruise1.coupling.solver.add_dv_func("aoa", aoa) - self.cruise1.aero_post.add_dv_func("aoa", aoa) - - # select the FFD points to move + # use the shape function to define shape variables for 2D airfoil pts = self.geometry.DVGeo.getLocalIndex(0) - indexList = pts[:, :, :].flatten() - PS = geo_utils.PointSelect("list", indexList) - nShapes = self.geometry.nom_addGeoDVLocal(dvName="shape", pointSelect=PS) - - # setup the symmetry constraint to link the y displacement between k=0 and k=1 - nFFDs_x = pts.shape[0] - nFFDs_y = pts.shape[1] - indSetA = [] - indSetB = [] - for i in range(nFFDs_x): - for j in range(nFFDs_y): - indSetA.append(pts[i, j, 0]) - indSetB.append(pts[i, j, 1]) - self.geometry.nom_addLinearConstraintsShape("linearcon", indSetA, indSetB, factorA=1.0, factorB=-1.0) + dir_y = np.array([0.0, 1.0, 0.0]) + shapes = [] + for i in range(1, pts.shape[0] - 1): + for j in range(pts.shape[1]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts[i, j, 0]: dir_y, pts[i, j, 1]: dir_y}) + # LE/TE shape, the j=0 and j=1 move in opposite directions so that + # the LE/TE are fixed + for i in [0, pts.shape[0] - 1]: + shapes.append({pts[i, 0, 0]: dir_y, pts[i, 0, 1]: dir_y, pts[i, 1, 0]: -dir_y, pts[i, 1, 1]: -dir_y}) + self.geometry.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) # setup the volume and thickness constraints leList = [[1e-4, 0.0, 1e-4], [1e-4, 0.0, 0.1 - 1e-4]] teList = [[0.998 - 1e-4, 0.0, 1e-4], [0.998 - 1e-4, 0.0, 0.1 - 1e-4]] self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) - self.geometry.nom_add_LETEConstraint("lecon", 0, "iLow", topID="k") - self.geometry.nom_add_LETEConstraint("tecon", 0, "iHigh", topID="k") + self.geometry.nom_addLERadiusConstraints("rcon", leList, 2, [0.0, 1.0, 0.0], [-1.0, 0.0, 0.0]) + # NOTE: we no longer need to define the sym and LE/TE constraints + # because these constraints are defined in the above shape function # add the design variables to the dvs component's output - self.dvs.add_output("shape", val=np.array([0] * nShapes)) - self.dvs.add_output("aoa0", val=np.array([alpha0[0]])) - self.dvs.add_output("aoa1", val=np.array([alpha0[1]])) + self.dvs.add_output("shape", val=np.array([0] * len(shapes))) + # NOTE: we have two separated aoa variables for the two flight conditions + self.dvs.add_output("patchV1", val=np.array([U0[0], aoa0[0]])) + self.dvs.add_output("patchV2", val=np.array([U0[1], aoa0[1]])) # manually connect the dvs output to the geometry and cruise - self.connect("aoa0", "cruise0.aoa") - self.connect("aoa1", "cruise1.aoa") + self.connect("patchV1", "scenario1.patchV") + self.connect("patchV2", "scenario2.patchV") self.connect("shape", "geometry.shape") # define the design variables to the top level - self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=1.0) - self.add_design_var("aoa0", lower=0.0, upper=10.0, scaler=1.0) - self.add_design_var("aoa1", lower=0.0, upper=10.0, scaler=1.0) + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("patchV1", lower=[U0[0], 0.0], upper=[U0[0], 10.0], scaler=0.1) + self.add_design_var("patchV2", lower=[U0[1], 0.0], upper=[U0[1], 10.0], scaler=0.1) # add objective and constraints to the top level - self.add_constraint("cruise0.aero_post.CL", equals=CL_target[0], scaler=1.0) - self.add_constraint("cruise1.aero_post.CL", equals=CL_target[1], scaler=1.0) + # we have two separated lift constraints for for the two flight conditions + self.add_constraint("scenario1.aero_post.lift", equals=lift_target[0], scaler=1.0) + self.add_constraint("scenario2.aero_post.lift", equals=lift_target[1], scaler=1.0) self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) - self.add_constraint("geometry.tecon", equals=0.0, scaler=1.0, linear=True) - self.add_constraint("geometry.lecon", equals=0.0, scaler=1.0, linear=True) - self.add_constraint("geometry.linearcon", equals=0.0) + self.add_constraint("geometry.rcon", lower=0.8, scaler=1.0) - self.add_objective("obj.CD_AVG", scaler=1.0) - self.connect("cruise0.aero_post.CD", "obj.CD0") - self.connect("cruise1.aero_post.CD", "obj.CD1") + # here we use the obj.val defined above as the obj func. + self.add_objective("obj.val", scaler=1.0) + self.connect("scenario1.aero_post.drag", "obj.drag1") + self.connect("scenario2.aero_post.drag", "obj.drag2") # OpenMDAO setup prob = om.Problem() prob.model = Top() prob.setup(mode="rev") -om.n2(prob, show_browser=False, outfile="mphys_aero.html") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) # use pyoptsparse to setup optimization prob.driver = om.pyOptSparseDriver() @@ -237,11 +214,11 @@ def aoa(val, DASolver): # options for optimizers if args.optimizer == "SNOPT": prob.driver.opt_settings = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, + "Function precision": 1.0e-5, "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", @@ -249,8 +226,8 @@ def aoa(val, DASolver): } elif args.optimizer == "IPOPT": prob.driver.opt_settings = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", @@ -262,7 +239,7 @@ def aoa(val, DASolver): } elif args.optimizer == "SLSQP": prob.driver.opt_settings = { - "ACC": 1.0e-7, + "ACC": 1.0e-5, "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } @@ -271,12 +248,33 @@ def aoa(val, DASolver): exit(1) prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] -prob.driver.hist_file = "opt.hst" - -if args.task == "opt": +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign( + ["scenario1.aero_post.lift", "scenario2.aero_post.lift"], + ["patchV1", "patchV2"], + designVarsComp=[1, 1], + targets=lift_target, + ) + # run the optimization prob.run_driver() -elif args.task == "runPrimal": +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") exit(1) diff --git a/NACA0012_Airfoil/multipoint/system/fvSchemes b/NACA0012_Airfoil/multipoint/system/fvSchemes index 9fda8118..65c9021a 100755 --- a/NACA0012_Airfoil/multipoint/system/fvSchemes +++ b/NACA0012_Airfoil/multipoint/system/fvSchemes @@ -54,7 +54,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/subsonic/0.orig/T b/NACA0012_Airfoil/subsonic/0.orig/T index d103a0d0..5b770950 100755 --- a/NACA0012_Airfoil/subsonic/0.orig/T +++ b/NACA0012_Airfoil/subsonic/0.orig/T @@ -23,8 +23,7 @@ boundaryField { "wing.*" { - type fixedValue; - value $internalField; + type zeroGradient; } symmetry1 { diff --git a/NACA0012_Airfoil/subsonic/genAirFoilMesh.py b/NACA0012_Airfoil/subsonic/genAirFoilMesh.py index c79a094b..c2a74288 100755 --- a/NACA0012_Airfoil/subsonic/genAirFoilMesh.py +++ b/NACA0012_Airfoil/subsonic/genAirFoilMesh.py @@ -33,8 +33,8 @@ # TE parameters NpTE = 5 # number of points for blunt TE # 3D -NpExtrude = 37 # how many points to extrude for the 3D volume mesh in y -yWall = 1e-3 # first layer mesh length +NpExtrude = 33 # how many points to extrude for the 3D volume mesh in y +yWall = 4e-3 # first layer mesh length marchDist = 20.0 # march distance for extruding ########## user input ################ @@ -115,9 +115,9 @@ tmp /= Alpha2PS # print xInterpPS # Finally, we interpolate the refined stretch stuff -c1PS = pySpline.Curve(x=xPS, y=yPS, z=zPS, k=3) +c1PS = Curve(x=xPS, y=yPS, z=zPS, k=3) XPS = c1PS(xInterpPS) -c2PS = pySpline.Curve(X=XPS, k=3) +c2PS = Curve(X=XPS, k=3) x1PS = c2PS.X[:, 0] y1PS = c2PS.X[:, 1] @@ -171,18 +171,17 @@ tmp /= Alpha2SS # print xInterpSS # Finally, we interpolate the refined stretch stuff -c1SS = pySpline.Curve(x=xSS, y=ySS, z=zSS, k=3) +c1SS = Curve(x=xSS, y=ySS, z=zSS, k=3) XSS = c1SS(xInterpSS) -c2SS = pySpline.Curve(X=XSS, k=3) +c2SS = Curve(X=XSS, k=3) x1SS = c2SS.X[:, 0] y1SS = c2SS.X[:, 1] # Since the TE is open we need to close it. Close it multiple linear segments. delta_y = numpy.linspace(y1PS[-1], y1SS[-1], NpTE, "d") +delta_x = numpy.linspace(x1PS[-1], x1SS[-1], NpTE, "d") delta_y = delta_y[1:] -delta_x = numpy.ones_like(delta_y, "d") -for i in range(len(delta_x)): - delta_x[i] = x1SS[-1] +delta_x = delta_x[1:] x1SS_Flip = x1SS[::-1] # reverse the array #numpy.flip(x1SS,axis=0) xAll = numpy.append(x1SS_Flip, x1PS[1:]) @@ -235,7 +234,7 @@ # --------------------------- "inputFile": "surfaceMesh.xyz", "unattachedEdgesAreSymmetry": False, - "outerFaceBC": "farField", + "outerFaceBC": "farfield", "autoConnect": True, "BC": {1: {"jLow": "zSymm", "jHigh": "zSymm"}}, "families": "wall", @@ -248,8 +247,8 @@ # --------------------------- # Pseudo Grid Parameters # --------------------------- - "ps0": -1, - "pGridRatio": -1, + "ps0": -1.0, + "pGridRatio": -1.0, "cMax": 1.0, # --------------------------- # Smoothing parameters @@ -265,5 +264,4 @@ hyp = pyHyp(options=options) hyp.run() -# hyp.writeCGNS('volumeMesh.cgns') hyp.writePlot3D("volumeMesh.xyz") diff --git a/NACA0012_Airfoil/subsonic/runScript.py b/NACA0012_Airfoil/subsonic/runScript.py index 2d79bf49..aa89718c 100755 --- a/NACA0012_Airfoil/subsonic/runScript.py +++ b/NACA0012_Airfoil/subsonic/runScript.py @@ -1,6 +1,6 @@ #!/usr/bin/env python """ -DAFoam run script for the NACA0012 airfoil at subsonic speed +DAFoam run script for the NACA0012 airfoil at subsonic conditions """ # ============================================================================= @@ -8,131 +8,210 @@ # ============================================================================= import os import argparse -from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + -# ============================================================================= -# Input Parameters -# ============================================================================= parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="ipopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") args = parser.parse_args() -gcomm = MPI.COMM_WORLD -# global parameters +# ============================================================================= +# Input Parameters +# ============================================================================= U0 = 100.0 p0 = 101325.0 -nuTilda0 = 4.5e-5 -k0 = 1.5 -epsilon0 = 1350.0 -omega0 = 1e4 T0 = 300.0 -A0 = 0.1 -#rho0 = 1.0 # density for normalizing CD and CL -rho0 = 1.177 #updated rho0 +nuTilda0 = 4.5e-5 CL_target = 0.5 -alpha0 = 3.850127 +aoa0 = 4.0 +A0 = 0.1 +# rho is used for normalizing CD and CL +rho0 = p0 / T0 / 287 -# Set the parameters for optimization +# Input parameters for DAFoam daOptions = { "designSurfaces": ["wing"], "solverName": "DARhoSimpleFoam", - "useAD": {"mode": "reverse"}, "primalMinResTol": 1.0e-8, "primalBC": { "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, "T0": {"variable": "T", "patches": ["inout"], "value": [T0]}, "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, - "k0": {"variable": "k", "patches": ["inout"], "value": [k0]}, - "omega0": {"variable": "omega", "patches": ["inout"], "value": [omega0]}, - "epsilon0": {"variable": "epsilon", "patches": ["inout"], "value": [epsilon0]}, "useWallFunction": True, }, - # variable bounds for compressible flow conditions - "primalVarBounds": { - "UMax": 1000.0, - "UMin": -1000.0, - "pMax": 500000.0, - "pMin": 20000.0, - "eMax": 500000.0, - "eMin": 100000.0, - "rhoMax": 5.0, - "rhoMin": 0.2, - }, - "objFunc": { + "function": { "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "parallelToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), }, "CL": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "normalToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), }, }, "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, "normalizeStates": { "U": U0, "p": p0, + "T": T0, "nuTilda": nuTilda0 * 10.0, - "k": k0, - "epsilon": epsilon0 * 0.1, - "omega": omega0 * 0.01, "phi": 1.0, }, - "adjPartDerivFDStep": {"State": 1e-7, "FFD": 1e-3}, - "adjPCLag": 10, - "designVar": {}, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, } -# mesh warping parameters, users need to manually specify the symmetry plane +# Mesh deformation setup meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", + "fileType": "OpenFOAM", # point and normal for the symmetry plane "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], } + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + # configure and setup perform a similar function, i.e., initialize the optimization. + # But configure will be run after setup + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # use the shape function to define shape variables for 2D airfoil + pts = self.geometry.DVGeo.getLocalIndex(0) + dir_y = np.array([0.0, 1.0, 0.0]) + shapes = [] + for i in range(1, pts.shape[0] - 1): + for j in range(pts.shape[1]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts[i, j, 0]: dir_y, pts[i, j, 1]: dir_y}) + # LE/TE shape, the j=0 and j=1 move in opposite directions so that + # the LE/TE are fixed + for i in [0, pts.shape[0] - 1]: + shapes.append({pts[i, 0, 0]: dir_y, pts[i, 0, 1]: dir_y, pts[i, 1, 0]: -dir_y, pts[i, 1, 1]: -dir_y}) + self.geometry.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + + # setup the volume and thickness constraints + leList = [[1e-4, 0.0, 1e-4], [1e-4, 0.0, 0.1 - 1e-4]] + teList = [[0.998 - 1e-4, 0.0, 1e-4], [0.998 - 1e-4, 0.0, 0.1 - 1e-4]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) + self.geometry.nom_addLERadiusConstraints("rcon", leList, 2, [0.0, 1.0, 0.0], [-1.0, 0.0, 0.0]) + # NOTE: we no longer need to define the sym and LE/TE constraints + # because these constraints are defined in the above shape function + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * len(shapes))) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("patchV", "scenario1.patchV") + self.connect("shape", "geometry.shape") + + # define the design variables to the top level + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + # here we fix the U0 magnitude and allows the aoa to change + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.rcon", lower=0.8, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer # options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 50, + "Function precision": 1.0e-5, + "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", "Summary file": "opt_SNOPT_summary.txt", } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", "mu_strategy": "adaptive", @@ -141,145 +220,38 @@ "alpha_for_y": "full", "recalc_y": "yes", } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } else: - print("opt arg not valid!") - exit(0) - - -# ============================================================================= -# Design variable setup -# ============================================================================= -def alpha(val, geo): - aoa = val[0] * np.pi / 180.0 - inletU = [float(U0 * np.cos(aoa)), float(U0 * np.sin(aoa)), 0] - DASolver.setOption("primalBC", {"U0": {"variable": "U", "patches": ["inout"], "value": inletU}}) - DASolver.updateDAOption() - - -DVGeo = DVGeometry("./FFD/wingFFD.xyz") - -DVGeo.addRefAxis("bodyAxis", xFraction=0.25, alignIndex="k") - -# select points -pts = DVGeo.getLocalIndex(0) -indexList = pts[:, :, :].flatten() -PS = geo_utils.PointSelect("list", indexList) -# shape -DVGeo.addGeoDVLocal("shapey", lower=-1.0, upper=1.0, axis="y", scale=1.0, pointSelect=PS) -daOptions["designVar"]["shapey"] = {"designVarType": "FFD"} -# alpha -DVGeo.addGeoDVGlobal("alpha", [alpha0], alpha, lower=-10.0, upper=10.0, scale=1.0) -daOptions["designVar"]["alpha"] = {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "y"} - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -leList = [[1e-4, 0.0, 1e-4], [1e-4, 0.0, 0.1 - 1e-4]] -teList = [[0.998 - 1e-4, 0.0, 1e-4], [0.998 - 1e-4, 0.0, 0.1 - 1e-4]] - -# volume constraint -DVCon.addVolumeConstraint(leList, teList, nSpan=2, nChord=10, lower=1.0, upper=3, scaled=True) - -# thickness constraint -DVCon.addThicknessConstraints2D(leList, teList, nSpan=2, nChord=10, lower=0.8, upper=3.0, scaled=True) - -# symmetry constraint -nFFDs_x = pts.shape[0] -indSetA = [] -indSetB = [] -for i in range(nFFDs_x): - for j in [0, 1]: - indSetA.append(pts[i, j, 1]) - indSetB.append(pts[i, j, 0]) -DVCon.addLinearConstraintsShape(indSetA, indSetB, factorA=1.0, factorB=-1.0, lower=0.0, upper=0.0) - -# LE and TE constraint -indSetA = [] -indSetB = [] -for i in [0, nFFDs_x - 1]: - for k in [0]: # do not constrain k=1 because it is linked in the above symmetry constraint - indSetA.append(pts[i, 0, k]) - indSetB.append(pts[i, 1, k]) -DVCon.addLinearConstraintsShape(indSetA, indSetB, factorA=1.0, factorB=1.0, lower=0.0, upper=0.0) - - -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - alpha4CLTarget = optFuncs.solveCL(CL_target, "alpha", "CL") - alpha([alpha4CLTarget], None) - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - # Add objective - optProb.addObj("CD", scale=1) - # Add physical constraints - optProb.addCon("CL", lower=CL_target, upper=CL_target, scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "runForwardAD": - - optFuncs.runForwardAD("shapey", 0) - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/NACA0012_Airfoil/subsonic/system/fvSchemes b/NACA0012_Airfoil/subsonic/system/fvSchemes index 627c1c0a..68080727 100755 --- a/NACA0012_Airfoil/subsonic/system/fvSchemes +++ b/NACA0012_Airfoil/subsonic/system/fvSchemes @@ -58,7 +58,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/transonic/0.orig/T b/NACA0012_Airfoil/transonic/0.orig/T index d103a0d0..5b770950 100755 --- a/NACA0012_Airfoil/transonic/0.orig/T +++ b/NACA0012_Airfoil/transonic/0.orig/T @@ -23,8 +23,7 @@ boundaryField { "wing.*" { - type fixedValue; - value $internalField; + type zeroGradient; } symmetry1 { diff --git a/NACA0012_Airfoil/transonic/genAirFoilMesh.py b/NACA0012_Airfoil/transonic/genAirFoilMesh.py index c79a094b..c2a74288 100755 --- a/NACA0012_Airfoil/transonic/genAirFoilMesh.py +++ b/NACA0012_Airfoil/transonic/genAirFoilMesh.py @@ -33,8 +33,8 @@ # TE parameters NpTE = 5 # number of points for blunt TE # 3D -NpExtrude = 37 # how many points to extrude for the 3D volume mesh in y -yWall = 1e-3 # first layer mesh length +NpExtrude = 33 # how many points to extrude for the 3D volume mesh in y +yWall = 4e-3 # first layer mesh length marchDist = 20.0 # march distance for extruding ########## user input ################ @@ -115,9 +115,9 @@ tmp /= Alpha2PS # print xInterpPS # Finally, we interpolate the refined stretch stuff -c1PS = pySpline.Curve(x=xPS, y=yPS, z=zPS, k=3) +c1PS = Curve(x=xPS, y=yPS, z=zPS, k=3) XPS = c1PS(xInterpPS) -c2PS = pySpline.Curve(X=XPS, k=3) +c2PS = Curve(X=XPS, k=3) x1PS = c2PS.X[:, 0] y1PS = c2PS.X[:, 1] @@ -171,18 +171,17 @@ tmp /= Alpha2SS # print xInterpSS # Finally, we interpolate the refined stretch stuff -c1SS = pySpline.Curve(x=xSS, y=ySS, z=zSS, k=3) +c1SS = Curve(x=xSS, y=ySS, z=zSS, k=3) XSS = c1SS(xInterpSS) -c2SS = pySpline.Curve(X=XSS, k=3) +c2SS = Curve(X=XSS, k=3) x1SS = c2SS.X[:, 0] y1SS = c2SS.X[:, 1] # Since the TE is open we need to close it. Close it multiple linear segments. delta_y = numpy.linspace(y1PS[-1], y1SS[-1], NpTE, "d") +delta_x = numpy.linspace(x1PS[-1], x1SS[-1], NpTE, "d") delta_y = delta_y[1:] -delta_x = numpy.ones_like(delta_y, "d") -for i in range(len(delta_x)): - delta_x[i] = x1SS[-1] +delta_x = delta_x[1:] x1SS_Flip = x1SS[::-1] # reverse the array #numpy.flip(x1SS,axis=0) xAll = numpy.append(x1SS_Flip, x1PS[1:]) @@ -235,7 +234,7 @@ # --------------------------- "inputFile": "surfaceMesh.xyz", "unattachedEdgesAreSymmetry": False, - "outerFaceBC": "farField", + "outerFaceBC": "farfield", "autoConnect": True, "BC": {1: {"jLow": "zSymm", "jHigh": "zSymm"}}, "families": "wall", @@ -248,8 +247,8 @@ # --------------------------- # Pseudo Grid Parameters # --------------------------- - "ps0": -1, - "pGridRatio": -1, + "ps0": -1.0, + "pGridRatio": -1.0, "cMax": 1.0, # --------------------------- # Smoothing parameters @@ -265,5 +264,4 @@ hyp = pyHyp(options=options) hyp.run() -# hyp.writeCGNS('volumeMesh.cgns') hyp.writePlot3D("volumeMesh.xyz") diff --git a/NACA0012_Airfoil/transonic/runScript.py b/NACA0012_Airfoil/transonic/runScript.py index c2208ae6..7e9ef8c0 100755 --- a/NACA0012_Airfoil/transonic/runScript.py +++ b/NACA0012_Airfoil/transonic/runScript.py @@ -1,6 +1,6 @@ #!/usr/bin/env python """ -DAFoam run script for the NACA0012 airfoil at subsonic speed +DAFoam run script for the NACA0012 airfoil at transonic conditions """ # ============================================================================= @@ -8,86 +8,64 @@ # ============================================================================= import os import argparse -from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + -# ============================================================================= -# Input Parameters -# ============================================================================= parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="ipopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") args = parser.parse_args() -gcomm = MPI.COMM_WORLD -# global parameters +# ============================================================================= +# Input Parameters +# ============================================================================= U0 = 238.0 p0 = 101325.0 -nuTilda0 = 4.5e-5 -k0 = 8.5 -epsilon0 = 4.3e4 -omega0 = 5.6e4 T0 = 300.0 -A0 = 0.1 -rho0 = 1.0 # density for normalizing CD and CL +nuTilda0 = 4.5e-5 CL_target = 0.5 -alpha0 = 2.760864 +aoa0 = 3.0 +A0 = 0.1 +# rho is used for normalizing CD and CL +rho0 = p0 / T0 / 287 -# Set the parameters for optimization +# Input parameters for DAFoam daOptions = { "designSurfaces": ["wing"], "solverName": "DARhoSimpleCFoam", - "useAD": {"mode": "reverse"}, "primalMinResTol": 1.0e-8, "primalBC": { "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, "T0": {"variable": "T", "patches": ["inout"], "value": [T0]}, "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, - "k0": {"variable": "k", "patches": ["inout"], "value": [k0]}, - "omega0": {"variable": "omega", "patches": ["inout"], "value": [omega0]}, - "epsilon0": {"variable": "epsilon", "patches": ["inout"], "value": [epsilon0]}, "useWallFunction": True, }, - # variable bounds for compressible flow conditions - "primalVarBounds": { - "UMax": 1000.0, - "UMin": -1000.0, - "pMax": 500000.0, - "pMin": 20000.0, - "eMax": 500000.0, - "eMin": 100000.0, - "rhoMax": 5.0, - "rhoMin": 0.2}, - "objFunc": { + "function": { "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "parallelToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), }, "CL": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "normalToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), }, }, "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, @@ -96,43 +74,143 @@ "normalizeStates": { "U": U0, "p": p0, + "T": T0, "nuTilda": nuTilda0 * 10.0, - "k": k0, - "epsilon": epsilon0 * 0.01, - "omega": omega0 * 0.01, "phi": 1.0, }, - "adjPartDerivFDStep": {"State": 1e-7, "FFD": 1e-3}, - "adjPCLag": 10, - "designVar": {}, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, } -# mesh warping parameters, users need to manually specify the symmetry plane +# Mesh deformation setup meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", + "fileType": "OpenFOAM", # point and normal for the symmetry plane "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], } +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # use the shape function to define shape variables for 2D airfoil + pts = self.geometry.DVGeo.getLocalIndex(0) + dir_y = np.array([0.0, 1.0, 0.0]) + shapes = [] + for i in range(1, pts.shape[0] - 1): + for j in range(pts.shape[1]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts[i, j, 0]: dir_y, pts[i, j, 1]: dir_y}) + # LE/TE shape, the j=0 and j=1 move in opposite directions so that + # the LE/TE are fixed + for i in [0, pts.shape[0] - 1]: + shapes.append({pts[i, 0, 0]: dir_y, pts[i, 0, 1]: dir_y, pts[i, 1, 0]: -dir_y, pts[i, 1, 1]: -dir_y}) + self.geometry.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + + # setup the volume and thickness constraints + leList = [[1e-4, 0.0, 1e-4], [1e-4, 0.0, 0.1 - 1e-4]] + teList = [[0.998 - 1e-4, 0.0, 1e-4], [0.998 - 1e-4, 0.0, 0.1 - 1e-4]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) + self.geometry.nom_addLERadiusConstraints("rcon", leList, 2, [0.0, 1.0, 0.0], [-1.0, 0.0, 0.0]) + # NOTE: we no longer need to define the sym and LE/TE constraints + # because these constraints are defined in the above shape function + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * len(shapes))) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("patchV", "scenario1.patchV") + self.connect("shape", "geometry.shape") + + # define the design variables to the top level + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + # here we fix the U0 magnitude and allows the aoa to change + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.rcon", lower=0.8, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer # options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 50, + "Function precision": 1.0e-5, + "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", "Summary file": "opt_SNOPT_summary.txt", } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", "mu_strategy": "adaptive", @@ -141,145 +219,38 @@ "alpha_for_y": "full", "recalc_y": "yes", } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } else: - print("opt arg not valid!") - exit(0) - - -# ============================================================================= -# Design variable setup -# ============================================================================= -def alpha(val, geo): - aoa = val[0] * np.pi / 180.0 - inletU = [float(U0 * np.cos(aoa)), float(U0 * np.sin(aoa)), 0] - DASolver.setOption("primalBC", {"U0": {"variable": "U", "patches": ["inout"], "value": inletU}}) - DASolver.updateDAOption() - - -DVGeo = DVGeometry("./FFD/wingFFD.xyz") - -DVGeo.addRefAxis("bodyAxis", xFraction=0.25, alignIndex="k") - -# select points -pts = DVGeo.getLocalIndex(0) -indexList = pts[:, :, :].flatten() -PS = geo_utils.PointSelect("list", indexList) -# shape -DVGeo.addGeoDVLocal("shapey", lower=-1.0, upper=1.0, axis="y", scale=1.0, pointSelect=PS) -daOptions["designVar"]["shapey"] = {"designVarType": "FFD"} -# alpha -DVGeo.addGeoDVGlobal("alpha", [alpha0], alpha, lower=-10.0, upper=10.0, scale=1.0) -daOptions["designVar"]["alpha"] = {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "y"} - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -leList = [[1e-4, 0.0, 1e-4], [1e-4, 0.0, 0.1 - 1e-4]] -teList = [[0.998 - 1e-4, 0.0, 1e-4], [0.998 - 1e-4, 0.0, 0.1 - 1e-4]] - -# volume constraint -DVCon.addVolumeConstraint(leList, teList, nSpan=2, nChord=10, lower=1.0, upper=3, scaled=True) - -# thickness constraint -DVCon.addThicknessConstraints2D(leList, teList, nSpan=2, nChord=10, lower=0.8, upper=3.0, scaled=True) - -# symmetry constraint -nFFDs_x = pts.shape[0] -indSetA = [] -indSetB = [] -for i in range(nFFDs_x): - for j in [0, 1]: - indSetA.append(pts[i, j, 1]) - indSetB.append(pts[i, j, 0]) -DVCon.addLinearConstraintsShape(indSetA, indSetB, factorA=1.0, factorB=-1.0, lower=0.0, upper=0.0) - -# LE and TE constraint -indSetA = [] -indSetB = [] -for i in [0, nFFDs_x - 1]: - for k in [0]: # do not constrain k=1 because it is linked in the above symmetry constraint - indSetA.append(pts[i, 0, k]) - indSetB.append(pts[i, 1, k]) -DVCon.addLinearConstraintsShape(indSetA, indSetB, factorA=1.0, factorB=1.0, lower=0.0, upper=0.0) - - -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - alpha4CLTarget = optFuncs.solveCL(CL_target, "alpha", "CL") - alpha([alpha4CLTarget], None) - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - # Add objective - optProb.addObj("CD", scale=1) - # Add physical constraints - optProb.addCon("CL", lower=CL_target, upper=CL_target, scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "runForwardAD": - - optFuncs.runForwardAD("shapey", 0) - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/NACA0012_Airfoil/transonic/system/decomposeParDict b/NACA0012_Airfoil/transonic/system/decomposeParDict index 4f8fd847..742e5222 100755 --- a/NACA0012_Airfoil/transonic/system/decomposeParDict +++ b/NACA0012_Airfoil/transonic/system/decomposeParDict @@ -17,17 +17,16 @@ FoamFile numberOfSubdomains 4; -method scotch; +method scotch; simpleCoeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + delta 0.001; } -distributed false; +distributed false; roots(); - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NACA0012_Airfoil/transonic/system/fvSchemes b/NACA0012_Airfoil/transonic/system/fvSchemes index c50f9196..38b5015e 100755 --- a/NACA0012_Airfoil/transonic/system/fvSchemes +++ b/NACA0012_Airfoil/transonic/system/fvSchemes @@ -60,7 +60,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/NREL6_Wind_Turbine/runScript.py b/NREL6_Wind_Turbine/runScript.py index 866f7dd7..c87608a1 100755 --- a/NREL6_Wind_Turbine/runScript.py +++ b/NREL6_Wind_Turbine/runScript.py @@ -1,206 +1,191 @@ #!/usr/bin/env python -""" -DAFoam run script for the NREL6 case -""" - -# ============================================================================= -# Imports -# ============================================================================= import os import argparse -from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils -# ============================================================================= -# Input Parameters -# ============================================================================= parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="ipopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") args = parser.parse_args() -gcomm = MPI.COMM_WORLD +# ============================================================================= +# Input Parameters +# ============================================================================= -# Set the parameters for optimization daOptions = { "solverName": "DATurboFoam", - "useAD": {"mode": "reverse"}, "designSurfaces": ["blade"], "primalMinResTolDiff": 1e4, "primalMinResTol": 1e-9, - "primalVarBounds": { - "UMax": 800.0, - "UMin": -800.0, - "pMax": 1000000.0, - "pMin": 20000.0, - "hMax": 500000.0, - "hMin": 50000.0, - "rhoMax": 10.0, - "rhoMin": 0.2, - }, - "objFunc": { + "function": { "CMX": { - "part1": { - "type": "moment", - "source": "patchToFace", - "patches": ["blade"], - "axis": [1.0, 0.0, 0.0], - "center": [0.0, 0.0, 0.0], - "scale": 1.0, - "addToAdjoint": True, - } + "type": "moment", + "source": "patchToFace", + "patches": ["blade"], + "axis": [1.0, 0.0, 0.0], + "center": [0.0, 0.0, 0.0], + "scale": 1.0, }, }, "adjStateOrdering": "cell", "normalizeStates": {"U": 10.0, "p": 100000.0, "nuTilda": 1e-3, "phi": 1.0, "T": 300.0}, - "adjPartDerivFDStep": {"State": 1e-6, "FFD": 1e-3}, "adjEqnOption": {"gmresRelTol": 1.0e-5, "pcFillLevel": 1, "jacMatReOrdering": "natural"}, "adjPCLag": 5, "transonicPCOption": 1, "checkMeshThreshold": {"maxNonOrth": 70.0, "maxSkewness": 6.0, "maxAspectRatio": 1000.0}, - # Design variable setup - "designVar": {"shapex0": {"designVarType": "FFD"}, "shapex1": {"designVarType": "FFD"}}, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + }, } -# mesh warping parameters, users need to manually specify the symmetry plane meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", + "fileType": "OpenFOAM", # point and normal for the symmetry plane "symmetryPlanes": [], } -# options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, - "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 50, - "Nonderivative linesearch": None, - "Print file": "opt_SNOPT_print.txt", - "Summary file": "opt_SNOPT_summary.txt", - } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, - "print_level": 5, - "output_file": "opt_IPOPT.txt", - "mu_strategy": "adaptive", - "limited_memory_max_history": 10, - "nlp_scaling_method": "none", - "alpha_for_y": "full", - "recalc_y": "yes", - } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, - "IFILE": "opt_SLSQP.txt", - } -else: - print("opt arg not valid!") - exit(0) - -# ============================================================================= -# Design variable setup -# ============================================================================= -FFDFile = "./FFD/bodyFittedFFD.xyz" -DVGeo = DVGeometry(FFDFile) -# select points -# FFD shape -pts0 = DVGeo.getLocalIndex(0) # volume 0 -indexList0 = pts0[:, :, :].flatten() -PS0 = geo_utils.PointSelect("list", indexList0) -DVGeo.addGeoDVLocal("shapex0", lower=-0.5, upper=0.5, axis="x", scale=1.0, pointSelect=PS0) +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): -pts1 = DVGeo.getLocalIndex(1) # volume 1 -indexList1 = pts1[:, :, :].flatten() -PS1 = geo_utils.PointSelect("list", indexList1) -DVGeo.addGeoDVLocal("shapex1", lower=-0.5, upper=0.5, axis="x", scale=1.0, pointSelect=PS1) + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/bodyFittedFFD.xyz", type="ffd")) -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") - # Add objective - optProb.addObj("CMX", scale=-1) + def configure(self): - if gcomm.rank == 0: - print(optProb) + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() - DASolver.runColoring() + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) + # use the shape function to define symmetry shapes for two blades + pts0 = self.geometry.DVGeo.getLocalIndex(0) + pts1 = self.geometry.DVGeo.getLocalIndex(1) + dir_x = np.array([1.0, 0.0, 0.0]) + shapes = [] + for i in range(pts0.shape[0]): + for j in range(pts0.shape[1]): + for k in range(pts0.shape[2]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts0[i, j, k]: dir_x, pts1[i, j, k]: dir_x}) + self.geometry.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) -elif args.task == "runPrimal": + # setup the volume and thickness constraints + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * len(shapes))) + # manually connect the dvs output to the geometry and scenario1 + self.connect("shape", "geometry.shape") - optFuncs.runPrimal() + # define the design variables + self.add_design_var("shape", lower=-0.5, upper=0.5, scaler=10.0) -elif args.task == "runAdjoint": + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CMX", scaler=-1.0) - optFuncs.runAdjoint() -elif args.task == "runForwardAD": +# OpenMDAO setup +prob = om.Problem() - optFuncs.runForwardAD("shapex0", 0) +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/NREL6_Wind_Turbine/system/fvSchemes b/NREL6_Wind_Turbine/system/fvSchemes index d73a4c69..7dff6a0c 100755 --- a/NREL6_Wind_Turbine/system/fvSchemes +++ b/NREL6_Wind_Turbine/system/fvSchemes @@ -60,7 +60,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Onera_M6_Wing/genWingMesh.py b/Onera_M6_Wing/genWingMesh.py index 1be2663c..7ffd1846 100755 --- a/Onera_M6_Wing/genWingMesh.py +++ b/Onera_M6_Wing/genWingMesh.py @@ -14,21 +14,21 @@ "inputFile": fileName, "fileType": "CGNS", "unattachedEdgesAreSymmetry": True, - "outerFaceBC": "farField", + "outerFaceBC": "farfield", "autoConnect": True, "BC": {}, "families": "wall", # --------------------------- # Grid Parameters # --------------------------- - "N": 25, # number of layers to march - "s0": 1.0e-3, # first layer thickness - "marchDist": 12, # distance to march + "N": 65, # number of layers to march + "s0": 1.0e-4, # first layer thickness + "marchDist": 12.0, # distance to march # --------------------------- # Pseudo Grid Parameters # --------------------------- - "ps0": -1, - "pGridRatio": -1, + "ps0": -1.0, + "pGridRatio": -1.0, "cMax": 0.1, # --------------------------- # Smoothing parameters diff --git a/Onera_M6_Wing/preProcessing.sh b/Onera_M6_Wing/preProcessing.sh index 87c818df..f6711627 100755 --- a/Onera_M6_Wing/preProcessing.sh +++ b/Onera_M6_Wing/preProcessing.sh @@ -17,10 +17,10 @@ else wget https://github.com/dafoam/files/releases/download/v1.0.0/m6_surfaceMesh_fine.cgns.tar.gz fi tar -xvf m6_surfaceMesh_fine.cgns.tar.gz -# coarsen the surface mesh three times +# coarsen the surface mesh two times cgns_utils coarsen m6_surfaceMesh_fine.cgns surfaceMesh.cgns cgns_utils coarsen surfaceMesh.cgns -cgns_utils coarsen surfaceMesh.cgns +#cgns_utils coarsen surfaceMesh.cgns python genWingMesh.py &> logMeshGeneration.txt plot3dToFoam -noBlank volumeMesh.xyz >> logMeshGeneration.txt autoPatch 60 -overwrite >> logMeshGeneration.txt diff --git a/Onera_M6_Wing/runScript.py b/Onera_M6_Wing/runScript.py index 8a57cbd0..17d6f255 100755 --- a/Onera_M6_Wing/runScript.py +++ b/Onera_M6_Wing/runScript.py @@ -1,31 +1,26 @@ #!/usr/bin/env python -""" -DAFoam run script for the Onera M4 wing at transonic speed -""" - -# ============================================================================= -# Imports -# ============================================================================= import os import argparse -from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SLSQP") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() # ============================================================================= # Input Parameters # ============================================================================= -parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="ipopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") -args = parser.parse_args() -gcomm = MPI.COMM_WORLD + # global parameters U0 = 285.0 @@ -33,14 +28,13 @@ nuTilda0 = 4.5e-5 T0 = 300.0 CL_target = 0.270 -alpha0 = 3.0 +aoa0 = 2.75 A0 = 0.7575 rho0 = 1.0 # density for normalizing CD and CL # Set the parameters for optimization daOptions = { "designSurfaces": ["wing"], - "useAD": {"mode": "reverse"}, "solverName": "DARhoSimpleCFoam", "primalMinResTol": 1.0e-8, "primalBC": { @@ -50,77 +44,171 @@ "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, "useWallFunction": True, }, - # variable bounds for compressible flow conditions - "primalVarBounds": { - "UMax": 1000.0, - "UMin": -1000.0, - "pMax": 500000.0, - "pMin": 20000.0, - "eMax": 500000.0, - "eMin": 100000.0, - "rhoMax": 5.0, - "rhoMin": 0.2, - }, - "objFunc": { + "function": { "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "parallelToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), }, "CL": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "normalToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), }, }, - "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, + "adjStateOrdering": "cell", + "adjEqnOption": {"gmresRelTol": 1.0e-4, "pcFillLevel": 1, "jacMatReOrdering": "natural"}, # transonic preconditioner to speed up the adjoint convergence - "transonicPCOption": 1, + "transonicPCOption": 2, "normalizeStates": {"U": U0, "p": p0, "nuTilda": nuTilda0 * 10.0, "phi": 1.0, "T": T0}, - "adjPartDerivFDStep": {"State": 1e-6, "FFD": 1e-3}, - "adjPCLag": 1, - "designVar": {}, + "adjPCLag": 5, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], + }, + }, } -# mesh warping parameters, users need to manually specify the symmetry plane +# Mesh deformation setup meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", - "useRotations": False, + "fileType": "OpenFOAM", # point and normal for the symmetry plane "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]]], } + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # Create reference axis for the twist variable + nRefAxPts = self.geometry.nom_addRefAxis(name="wingAxis", xFraction=0.25, alignIndex="k") + + # Set up global design variables. We dont change the root twist + def twist(val, geo): + for i in range(1, nRefAxPts): + geo.rot_z["wingAxis"].coef[i] = -val[i - 1] + + # add twist variable + self.geometry.nom_addGlobalDV(dvName="twist", value=np.array([0] * (nRefAxPts - 1)), func=twist) + + # select the FFD points to move + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = pts[:, :, :].flatten() + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shape", pointSelect=PS) + + # NOTE: the LE and TE lists are not parallel lines anymore, these two lists define lines that + # are close to the leading and trailing edges while being completely within the wing surface + leList = [[0.01, 0.0, 1e-3], [0.7, 0.0, 1.19]] + teList = [[0.79, 0.0, 1e-3], [1.135, 0.0, 1.19]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=10, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=10, nChord=10) + # add the LE/TE constraints + self.geometry.nom_add_LETEConstraint("lecon", volID=0, faceID="iLow") + self.geometry.nom_add_LETEConstraint("tecon", volID=0, faceID="iHigh") + + # add the design variables to the dvs component's output + self.dvs.add_output("twist", val=np.array([0] * (nRefAxPts - 1))) + self.dvs.add_output("shape", val=np.array([0] * nShapes)) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("twist", "geometry.twist") + self.connect("shape", "geometry.shape") + self.connect("patchV", "scenario1.patchV") + + # define the design variables + self.add_design_var("twist", lower=-10.0, upper=10.0, scaler=0.1) + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.tecon", equals=0.0, scaler=1.0, linear=True) + self.add_constraint("geometry.lecon", equals=0.0, scaler=1.0, linear=True) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer # options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 50, + "Function precision": 1.0e-5, + "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", "Summary file": "opt_SNOPT_summary.txt", } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", "mu_strategy": "adaptive", @@ -129,144 +217,39 @@ "alpha_for_y": "full", "recalc_y": "yes", } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } else: - print("opt arg not valid!") - exit(0) - - -# ============================================================================= -# Design variable setup -# ============================================================================= -DVGeo = DVGeometry("./FFD/wingFFD.xyz") - -# nTwists is the number of FFD points in the spanwise direction -nTwists = DVGeo.addRefAxis("bodyAxis", xFraction=0.25, alignIndex="k") - -# twist function, we keep the root twist constant so the first -# element in the twist design variable is the twist at the 2nd -# spanwise location -def twist(val, geo): - for i in range(1, nTwists): - geo.rot_z["bodyAxis"].coef[i] = val[i - 1] - - -# angle of attack -def alpha(val, geo): - aoa = val[0] * np.pi / 180.0 - inletU = [float(U0 * np.cos(aoa)), float(U0 * np.sin(aoa)), 0] - DASolver.setOption("primalBC", {"U0": {"variable": "U", "patches": ["inout"], "value": inletU}}) - DASolver.updateDAOption() - - -# select points -pts = DVGeo.getLocalIndex(0) -indexList = pts[:, :, :].flatten() -PS = geo_utils.PointSelect("list", indexList) -# shape -DVGeo.addGeoDVLocal("shapey", lower=-1.0, upper=1.0, axis="y", scale=1.0, pointSelect=PS) -daOptions["designVar"]["shapey"] = {"designVarType": "FFD"} -# twist -DVGeo.addGeoDVGlobal("twist", np.zeros(nTwists - 1), twist, lower=-10.0, upper=10.0, scale=1.0) -daOptions["designVar"]["twist"] = {"designVarType": "FFD"} -# alpha -DVGeo.addGeoDVGlobal("alpha", [alpha0], alpha, lower=0.0, upper=10.0, scale=1.0) -daOptions["designVar"]["alpha"] = {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "y"} - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -# NOTE: the LE and TE lists are not parallel lines anymore, these two lists define lines that -# are close to the leading and trailing edges while being completely within the wing surface -leList = [[0.01, 0.0, 1e-3], [0.7, 0.0, 1.19]] -teList = [[0.79, 0.0, 1e-3], [1.135, 0.0, 1.19]] - -# volume constraint -DVCon.addVolumeConstraint(leList, teList, nSpan=10, nChord=10, lower=1.0, upper=3, scaled=True) - -# thickness constraint -DVCon.addThicknessConstraints2D(leList, teList, nSpan=10, nChord=10, lower=0.8, upper=3.0, scaled=True) - -# Le/Te constraints -DVCon.addLeTeConstraints(0, "iLow") -DVCon.addLeTeConstraints(0, "iHigh") - -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - alpha4CLTarget = optFuncs.solveCL(CL_target, "alpha", "CL") - alpha([alpha4CLTarget], None) - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - # Add objective - optProb.addObj("CD", scale=1) - # Add physical constraints - optProb.addCon("CL", lower=CL_target, upper=CL_target, scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "runForwardAD": - - optFuncs.runForwardAD("shapey", 0) - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # solve CL + #optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/Onera_M6_Wing/system/fvSchemes b/Onera_M6_Wing/system/fvSchemes index c50f9196..38b5015e 100755 --- a/Onera_M6_Wing/system/fvSchemes +++ b/Onera_M6_Wing/system/fvSchemes @@ -60,7 +60,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/PeriodicHill/0.orig/U b/PeriodicHill/0.orig/U new file mode 100755 index 00000000..1654b9f7 --- /dev/null +++ b/PeriodicHill/0.orig/U @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0.028 0 0); + +boundaryField +{ + bottomWall + { + type fixedValue; + value uniform (0 0 0); + } + front + { + type symmetry; + } + back + { + type symmetry; + } + inlet + { + type cyclic; + } + outlet + { + type cyclic; + } + topWall + { + type fixedValue; + value uniform (0 0 0); + } +} +// ************************************************************************* // \ No newline at end of file diff --git a/PeriodicHill/0.orig/UData b/PeriodicHill/0.orig/UData new file mode 100755 index 00000000..d71f305d --- /dev/null +++ b/PeriodicHill/0.orig/UData @@ -0,0 +1,3555 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object UData; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField nonuniform List +3500 +( +(0.001938900362454894 -1.09291138890157e-05 9.975407269440042e-20) +(0.001950374088929808 -0.000272567421734815 6.074807821033633e-19) +(0.0007845923825563899 -0.0003528113527903084 -1.147803735024461e-19) +(-8.166239834977196e-05 3.10534719275024e-05 -5.137378844827662e-19) +(-0.0001901264166758443 0.0001431474977192166 6.679788316479386e-20) +(-0.0001664635339621496 0.0001362858851051716 -9.775703605540931e-20) +(-0.0001796221825539274 0.0001442248586783319 6.100188378677342e-20) +(-0.0001836898000519062 0.0001434362899148566 3.236231605378908e-20) +(-0.0001988050247153025 0.0001521298941400556 6.027126815208976e-20) +(-0.0002096926343890466 0.0001587138505675985 -1.071146459885423e-20) +(-0.0002289842249584276 0.0001664690469783599 1.085284480237133e-20) +(-0.0002537552542057888 0.0001674446365948369 -8.15004743329913e-20) +(-0.0002871643732528578 0.0001583679454551373 -3.388990515873587e-20) +(-0.0003245933398662274 0.000135439758876155 -5.067618217216548e-20) +(-0.0003584674834123869 9.797651402747797e-05 -3.710076488271409e-21) +(-0.0003887314423775874 4.723139783066691e-05 9.375437180648245e-20) +(-0.0004392714193428079 3.029606207512711e-06 -7.409742756061099e-21) +(-0.0004748538744680438 5.920604375967606e-07 -5.922891510299411e-21) +(-0.0004637524006854912 5.906457869129678e-07 -1.591428174878101e-20) +(-0.0004330387548078539 5.662301536102493e-07 2.090012564097147e-20) +(-0.0003888167262201819 5.314720415293471e-07 1.304275693578974e-19) +(-0.0003360734716927316 4.908916535210096e-07 1.599597514590912e-19) +(-0.0002780677246070684 4.481208698622355e-07 1.084203463789108e-19) +(-0.0002172159510100388 4.056130762557608e-07 4.283578545643472e-20) +(-0.0001553719344664057 3.645700661219895e-07 1.098923178427262e-20) +(-9.386097121823871e-05 3.258364134412203e-07 -7.895387343580497e-20) +(-3.367795093326741e-05 2.896777517828901e-07 -5.45114437719051e-20) +(2.449577455277648e-05 2.560818869489723e-07 1.409834289553154e-19) +(8.018524653318256e-05 2.25033500071384e-07 -1.104899975397954e-19) +(0.000133084435079729 1.965559624087602e-07 -3.340653475809427e-20) +(0.0001830008845650063 1.704745498244548e-07 -9.693774399098662e-21) +(0.0002298357217094195 1.466019851250361e-07 2.05911647403163e-19) +(0.000273554257888897 1.247116862994012e-07 4.119691451505241e-20) +(0.0003141679711489359 1.046052588673103e-07 6.705209449575539e-20) +(0.0003517205612538356 8.606380825894333e-08 2.46517417876186e-19) +(0.000386272838476938 6.888395386047336e-08 -7.523882338828522e-20) +(0.0004178969826187364 5.286701514015557e-08 -1.383866908136747e-19) +(0.0004466634028193242 3.784037776041013e-08 -6.48374146554611e-20) +(0.0004726447670919284 2.358916771212909e-08 -1.449425510120065e-20) +(0.0004958901158277057 9.966679040975589e-09 2.859426381841144e-19) +(0.0005164545809019965 -3.289082819602636e-09 3.234699666724007e-19) +(0.0005343303675636354 -1.624430530525714e-08 -8.646612997753526e-20) +(0.0005495561298713279 -2.935441240628605e-08 -2.633067391769906e-20) +(0.0005619952163041332 -4.243803363183148e-08 1.544687012741403e-19) +(0.0005717225054838857 -5.6540988409119e-08 -1.371465153229142e-19) +(0.0005782727661089946 -7.065742403570384e-08 1.344096503145515e-19) +(0.000581995340451793 -8.768198948515827e-08 2.401331423844056e-19) +(0.0005814559246287232 -1.039768050258487e-07 -1.03079973503494e-19) +(0.0005782068722883238 -1.285225343593991e-07 1.09243899417104e-19) +(0.0005677780420171232 -1.486281051101681e-07 -9.008196836267909e-20) +(0.0005560915553773412 -1.912496586898484e-07 4.295992461008406e-20) +(0.000527343512541336 -2.155463358571352e-07 -1.454523926182483e-19) +(0.0005014598375990861 -3.037745569374079e-07 -1.110553422636841e-19) +(0.0004128709092983433 2.049203844158111e-06 8.929293244523787e-20) +(0.0003400203923639149 4.162375338109542e-05 6.532716057707456e-19) +(0.0003644861835685029 0.0001011764578084646 -2.365256979101928e-18) +(0.0003972866182273373 0.0001683927098130271 4.88244543242457e-19) +(0.0004482376099618861 0.0002504426152358598 6.204247622160806e-19) +(0.0005254240415046525 0.0003498100473922894 7.922710830780609e-19) +(0.0006264127982572186 0.000458272676660924 1.734512358589395e-18) +(0.000745437620201128 0.0005670624640310954 -9.408720381813648e-19) +(0.0008562459557419592 0.0006604815502175587 -1.655950530652571e-18) +(0.0009593425724260654 0.0007577029628695792 1.951744963091256e-18) +(0.001074036438621923 0.000878728103058599 -1.420142521838941e-18) +(0.001285728295556536 0.001081146684811087 2.136508095310091e-18) +(0.001720299251296345 0.001374012147647198 1.555488239986052e-19) +(0.002524971736133325 0.001685370028547494 -3.445451682384561e-20) +(0.003504195469749956 0.001468379592073777 -3.460559874480376e-19) +(0.00308049355689965 0.0004257260813451492 -4.176008724001537e-19) +(0.001920138787695745 9.918624233025153e-06 -3.720868542592575e-20) +(0.005813356251406555 -3.275834466813403e-05 2.985544214945966e-19) +(0.005814602089640803 -0.0007959818431390814 9.756047350239041e-19) +(0.002668643637776794 -0.00111807334248295 -2.36169348620539e-18) +(-4.599805884290209e-06 1.639609927163262e-05 -2.488524009809993e-18) +(-0.0005030516560050542 0.000412135197276842 -3.136642385709409e-19) +(-0.0004814586269673201 0.000411431812166503 -3.12028260447119e-19) +(-0.0005339703845711833 0.000441739537265292 1.91074012344702e-19) +(-0.0005553576330563517 0.0004430404104609501 1.029924873813476e-19) +(-0.0006059688223954395 0.0004717983546845163 1.18277477981075e-19) +(-0.0006432584817283614 0.0004938839993648209 -1.976626407429746e-20) +(-0.0007038180218309342 0.000518484385786316 -5.650527761403209e-20) +(-0.0007801363578967179 0.0005211687716415004 -1.447841450042377e-19) +(-0.0008808702661863643 0.0004914048824070152 -2.848398924401567e-19) +(-0.0009912124381253737 0.0004179088619749368 -3.381550710951782e-20) +(-0.001088625998712498 0.0003001485021158543 1.541710708029683e-19) +(-0.001173647575090755 0.000143914865762643 2.663147158039254e-20) +(-0.001301779765547315 9.437021839726653e-06 -2.217812943471623e-20) +(-0.001378266453892224 5.926759471995209e-07 -8.337247486866768e-20) +(-0.001330678586827431 -7.726944274032712e-07 1.992742952859232e-19) +(-0.001230620091132707 -1.492447832162412e-06 5.185976405472053e-20) +(-0.001094935720087417 -1.974447428006905e-06 2.662976774065069e-19) +(-0.0009372970035903655 -2.280343916216222e-06 3.481436272140801e-19) +(-0.0007664852584711663 -2.463987912535065e-06 4.310091203966155e-19) +(-0.0005888967532266089 -2.554081996414785e-06 1.23296576738981e-19) +(-0.0004093776684193753 -2.574704631160895e-06 -3.09078046106141e-20) +(-0.0002313601105094924 -2.543829704714443e-06 -2.358429871013666e-19) +(-5.740616222175338e-05 -2.475882396688706e-06 -3.636068193252592e-19) +(0.0001107342929266953 -2.382175891359039e-06 5.914498562278498e-19) +(0.0002718336629254998 -2.271010862346271e-06 1.762641435364197e-19) +(0.0004250958668765221 -2.148505232170239e-06 3.275903227264722e-19) +(0.0005700150888925469 -2.019346033897143e-06 -2.608850047691922e-20) +(0.0007063264460905723 -1.887041292400232e-06 3.58172739987985e-19) +(0.0008339305569517248 -1.754116915905513e-06 1.209117541242773e-19) +(0.0009528474910437564 -1.622348737644623e-06 1.988862142451051e-19) +(0.001063181730093564 -1.492897611608384e-06 4.722615631573917e-19) +(0.00116508237444368 -1.36644452501157e-06 -2.259564269816424e-19) +(0.001258728579579881 -1.243281520816664e-06 -1.585748846958371e-19) +(0.001344295013048944 -1.123381015070676e-06 6.095103968964181e-20) +(0.00142196198191717 -1.006428446477325e-06 3.428120787699655e-19) +(0.001491846581062657 -8.918746911990228e-07 6.99865872337657e-19) +(0.001554079288123164 -7.789125121291966e-07 9.377372171252436e-19) +(0.001608622907285938 -6.665223096987228e-07 -2.643517271505584e-19) +(0.001655554593221512 -5.533119444003463e-07 -7.984002554365566e-20) +(0.001694487837197433 -4.376387243697758e-07 4.541548881661411e-19) +(0.001725572472521167 -3.171721855834601e-07 -8.938049364682352e-19) +(0.001747540166476048 -1.892831719174164e-07 -7.377983279240705e-20) +(0.00176121080937496 -4.956718389033146e-08 3.563882917595462e-19) +(0.001762737876348844 1.061913633482903e-07 1.265875487431368e-19) +(0.00175595558356841 2.848782776368813e-07 4.22953945679385e-19) +(0.001728998155240308 4.995421117612599e-07 -2.644920594300428e-19) +(0.001696861502858256 7.899851952103312e-07 1.354103105450357e-19) +(0.001617712030327649 1.228936739775585e-06 -4.352334577641526e-19) +(0.001542478177183075 2.147662558868246e-06 -3.592273451448587e-19) +(0.001300042564457263 1.104078944038551e-05 2.14638276678175e-19) +(0.001092227684491611 0.0001330203292228086 8.794135591386977e-19) +(0.001147032602574961 0.0003135344902468605 -4.53023714445268e-18) +(0.001238781498207034 0.0005184280961831263 1.476630942679641e-18) +(0.0013838929864912 0.0007666531129089531 -2.269413549237214e-18) +(0.00160473940786634 0.001064925403723079 5.480426035826451e-18) +(0.001896004644425719 0.001389007512814448 2.489444803281457e-18) +(0.002241556937323655 0.001713505580884707 -2.956742378693306e-18) +(0.002570733965848894 0.001995300639625948 -4.151615258117256e-19) +(0.002878984263951537 0.002290291055066615 3.887898900323754e-18) +(0.003217366120811471 0.002654825424897566 -1.054383242135766e-18) +(0.003811427446175061 0.003245896242380988 2.335614474718989e-18) +(0.004998183836919678 0.004065772639479393 -3.865480791448828e-19) +(0.007140643775380208 0.00487834393416648 -1.149393542257236e-19) +(0.009777702720360349 0.004196634784002563 -9.206305986746957e-20) +(0.0089819014971401 0.001277921480167006 -1.222339113761695e-18) +(0.006014277974478024 4.657162402863425e-05 -4.306671996344415e-19) +(0.009043576295352539 -4.854817860435447e-05 3.341311382382458e-19) +(0.009061968902839484 -0.00120998609884037 4.237000235731682e-19) +(0.004600330034224747 -0.001867661998780556 -2.922332355298082e-18) +(0.0003128994950592084 -0.0001522414855268638 -1.563464659759498e-18) +(-0.0007187367911270468 0.0005991389340364437 -2.197739504076466e-19) +(-0.0007571140557585727 0.0006490485473942251 -5.758270059968634e-19) +(-0.0008614333515520485 0.0007142514249406075 5.736815920355038e-20) +(-0.0009086945954940648 0.0007263012166585252 1.751734907203352e-19) +(-0.0009987148996521765 0.0007789992133029833 2.415359787828868e-20) +(-0.0010657065809557 0.0008196957513178136 -2.081894771684351e-20) +(-0.00116479866950157 0.0008598971931698488 -1.714693528536522e-19) +(-0.001282391816161438 0.0008588277055083615 -2.066732989196284e-19) +(-0.001429338297544754 0.0007996243995924965 -1.596653338575305e-20) +(-0.001581388298313777 0.0006686575617038269 -2.327730403993866e-20) +(-0.00170699828540109 0.0004720201665890378 1.335982529222296e-19) +(-0.001811285558400663 0.000223819575272316 -1.408198163853635e-19) +(-0.001962505177325461 1.615019087692788e-05 -3.209085951684354e-20) +(-0.002028213612160652 3.99221601500385e-07 -2.365026821044102e-19) +(-0.001929577623483779 -3.88625962743043e-06 1.303874084162129e-19) +(-0.001763893749159312 -6.059539152070759e-06 4.635408670072919e-20) +(-0.001553545476899461 -7.476368528662499e-06 1.749547212567794e-19) +(-0.001316744678123527 -8.337635259625246e-06 3.944300300376736e-19) +(-0.001064844997335224 -8.824410095085847e-06 2.454852595712452e-19) +(-0.0008059154906845192 -9.032037039834159e-06 1.761975706088285e-19) +(-0.0005459699371942632 -9.035410516112876e-06 1.234540779485025e-19) +(-0.0002891878992868949 -8.890076759413173e-06 -1.709374662129997e-19) +(-3.865669043946613e-05 -8.638312822419333e-06 -2.672502447364274e-19) +(0.0002035417884445001 -8.312618836447415e-06 5.21915916893643e-19) +(0.0004359438762923041 -7.936775263410594e-06 3.532468127989174e-19) +(0.0006576043286583429 -7.528796221709119e-06 2.023590710948656e-19) +(0.0008679202313177271 -7.101955231214891e-06 1.426542721496634e-19) +(0.001066574359874096 -6.666170462611559e-06 4.702852444948544e-19) +(0.001253442110900644 -6.228565275460067e-06 -3.396783983788003e-21) +(0.001428536462902312 -5.794139616331806e-06 2.951247978110781e-19) +(0.00159196735685716 -5.366106641026073e-06 6.249735667399652e-19) +(0.001743892110644269 -4.946350784407268e-06 -1.638394188556289e-19) +(0.001884499710951854 -4.535555428730759e-06 -1.724435440592134e-19) +(0.002013966936414538 -4.133566715700814e-06 1.541900046899503e-19) +(0.002132473964994396 -3.739163467572765e-06 -1.543104634765902e-19) +(0.002240111319600805 -3.350737055534951e-06 5.306758831035597e-19) +(0.002336984368232025 -2.965158834348409e-06 5.451626452233239e-19) +(0.002422966328636603 -2.579736057600159e-06 -4.050785392464e-19) +(0.002498080085882431 -2.188327910678774e-06 -1.097914828157675e-19) +(0.002561708573008701 -1.787917739381642e-06 6.835750213246884e-19) +(0.002613953667024562 -1.365490147258447e-06 -5.99871291168187e-19) +(0.002652962033039459 -9.207020666500694e-07 -5.334692375862734e-19) +(0.002679707121690893 -4.212538239208811e-07 4.896335734755987e-19) +(0.002688740025108115 1.183784407310028e-07 -1.136821641899542e-19) +(0.002685004707213389 7.852146795418579e-07 2.019674659491556e-19) +(0.002651728103391624 1.516211292731074e-06 -3.986214386091616e-19) +(0.002608961831390885 2.653243362374118e-06 2.315934065584691e-19) +(0.002498359972093726 4.059903621349916e-06 -2.566867673403212e-19) +(0.002388967760179562 7.489460741259646e-06 -6.318133184653698e-19) +(0.00204660441258607 2.35638627732619e-05 -3.704199809344833e-19) +(0.001738715656354212 0.0002132742182654584 5.255619250986628e-19) +(0.001800650598138542 0.0004892754745382053 -1.889781181096282e-18) +(0.001935473636005845 0.0008049873008317348 2.604328993949772e-18) +(0.002155560660385776 0.001186657473354104 -2.81957090468078e-18) +(0.002492090254700239 0.001643735618435148 6.568822178785383e-18) +(0.00293742155763146 0.002140076107681453 -1.212161737124795e-18) +(0.003467926967407764 0.002638814778068011 -4.505746035445344e-18) +(0.003983613901037907 0.003080650462308539 8.21537508471856e-19) +(0.004475040153244752 0.003548626688286687 2.023992249355919e-18) +(0.00501306611542239 0.004121897837368107 7.537614878144197e-19) +(0.005916891221416379 0.005015035944437655 3.615746306440865e-18) +(0.007660058523164904 0.006193694471769414 -1.32475069884847e-19) +(0.01072954541138644 0.007284537602253251 -1.389760502602401e-19) +(0.0145512646878182 0.006234082908114834 -7.289028880461873e-19) +(0.01378209332984518 0.002000300917594199 -1.922485590349797e-18) +(0.009642365486451497 0.0001027873671296867 -6.666035310217815e-19) +(0.01155508709400218 -5.518719574489398e-05 5.221776645197482e-20) +(0.01155414324334284 -0.001501427628408491 4.897025865864876e-19) +(0.006306913800880855 -0.0024810849293635 -1.96821762459127e-18) +(0.000794459567380005 -0.0004026012007484116 -1.640076955378624e-18) +(-0.0007857163551459844 0.0006738655625491534 -1.479919173186638e-19) +(-0.0009277334255603564 0.0007981676965343874 -4.529897142841223e-19) +(-0.001085129258448952 0.0009016797339338377 3.511533700946585e-19) +(-0.0011612486812918 0.0009299651342778402 1.268698345118793e-19) +(-0.001286347333446148 0.001005330067999642 -6.868823848290943e-20) +(-0.001380393173032144 0.001063827562723782 -1.376128596379617e-20) +(-0.001507810599155858 0.001115740968124069 -1.873777086011974e-19) +(-0.001649378522742244 0.001107677411002445 -1.768381013841634e-19) +(-0.001817016873193373 0.001019810279335065 1.185418960451209e-19) +(-0.001982674803449778 0.0008411937899184908 2.574856187764708e-20) +(-0.002112959794797034 0.0005864408149707998 1.225144099917491e-19) +(-0.00221713241342344 0.0002764796874865182 -2.467290432553206e-19) +(-0.002362426325361316 2.159820668322603e-05 -3.517515878509213e-20) +(-0.002401137013932092 -7.555379436018422e-07 -1.270765890882093e-19) +(-0.002262536383877654 -8.849330624680821e-06 1.62670411237227e-19) +(-0.00205239945618122 -1.286184106280872e-05 -1.49505973137596e-20) +(-0.00179499270904049 -1.543373398029216e-05 1.215241416080349e-19) +(-0.001510281843329101 -1.695545898975969e-05 3.161343674614643e-19) +(-0.001210543492079263 -1.778223858505587e-05 2.71775531570068e-19) +(-0.0009043899941288231 -1.809920083487354e-05 1.044970325102904e-19) +(-0.0005981856612460189 -1.804698334563707e-05 9.105901459444226e-20) +(-0.0002963028942255133 -1.77291280277645e-05 -1.363563414165462e-19) +(-1.947297356002947e-06 -1.722238138977247e-05 -3.173464890342648e-19) +(0.0002827391675628764 -1.65852936168835e-05 7.473052206125116e-19) +(0.0005562528456001276 -1.585986829170232e-05 2.576384967494397e-19) +(0.0008176305289074624 -1.507784832085786e-05 2.269551879054488e-19) +(0.001066259935870266 -1.426248520868199e-05 4.614442270595141e-19) +(0.001301821383942907 -1.343110726948579e-05 7.580441766678285e-19) +(0.001524188578446946 -1.259601650923043e-05 -8.302655234717511e-20) +(0.001733370867434471 -1.176575994854945e-05 3.598440447601202e-19) +(0.001929471783659654 -1.094573300536904e-05 5.018354364201877e-19) +(0.002112635789749313 -1.013900477867793e-05 -1.436987631873546e-19) +(0.002283033032974398 -9.346438118749276e-06 -1.818674265341263e-19) +(0.002440812122804113 -8.567477636496467e-06 4.314798915514737e-19) +(0.002586118559056324 -7.799423527749668e-06 -2.330832063419757e-19) +(0.002718990713517107 -7.039145118905526e-06 7.239631783856291e-19) +(0.002839476682494626 -6.280044753843537e-06 5.850265932620507e-19) +(0.002947357130890224 -5.517272896223792e-06 -5.08556934132996e-19) +(0.003042570594908739 -4.737417735321615e-06 -1.101870883993662e-19) +(0.0031243265595789 -3.936259514889048e-06 4.200050980317257e-19) +(0.003192624723686317 -3.083722367043703e-06 -7.288312792701594e-19) +(0.003245247062606163 -2.185630734110903e-06 -9.886213801608261e-19) +(0.003283121706733555 -1.163264357562878e-06 -8.918482918776771e-20) +(0.003299907117119766 -6.828908872947352e-08 1.805339552591022e-20) +(0.003300879683703346 1.326722925442637e-06 1.461430475476696e-19) +(0.003266589841058095 2.809185431654112e-06 -4.752461755886858e-19) +(0.003219099078867452 5.233629537395968e-06 3.477921601816138e-19) +(0.003091711347022181 8.006433115713727e-06 -1.438535857343644e-19) +(0.002961431339627128 1.512985929583455e-05 1.722806018733414e-20) +(0.002566113360886569 3.812251701299468e-05 -8.655320535747225e-19) +(0.002197464794293464 0.0002725468800780439 7.22119816736305e-19) +(0.002253127240675947 0.0006091385183138859 -9.157295583536785e-19) +(0.002411947442717391 0.0009970717361046789 2.6714582648313e-18) +(0.002679537215998449 0.001465280373144245 -2.074956847533457e-18) +(0.003091388924393331 0.002024871760013839 5.830333773265864e-18) +(0.00363962753297343 0.00263387155744012 -8.07262140697136e-19) +(0.00429710259532221 0.003250460223821341 -3.818139221947272e-18) +(0.004949297582929549 0.003808787946508208 7.743599874804483e-20) +(0.005582218919855799 0.004407465934118338 1.759471989644129e-18) +(0.006277490987591871 0.005136758142329451 9.368835786434959e-19) +(0.007407987155039613 0.006237638603631907 2.656780985326563e-18) +(0.009531854138470026 0.007640164912172827 -1.436217581140441e-19) +(0.01320719914097356 0.008877924918443922 -7.289188196664669e-20) +(0.01787090944738529 0.007611868414163685 -5.088148203114804e-19) +(0.0174212433474684 0.002567435881180719 -2.520225941956176e-18) +(0.01261590511289594 0.0001743338668750055 -9.611450672982594e-19) +(0.01369927690579235 -5.188316841001402e-05 -3.140080887835117e-20) +(0.01361612043553057 -0.001712090618435885 1.213802447826433e-19) +(0.007882505351820177 -0.002988837180187502 -1.64767291885598e-18) +(0.001393679430659902 -0.0006917768279903972 -1.199916152684645e-18) +(-0.0007357351377337531 0.0006687702565657297 -3.658819920317755e-19) +(-0.001007617041902442 0.0008738577243931098 -5.947230185568361e-19) +(-0.001214298045290927 0.001013252234514136 4.224961279327494e-19) +(-0.001318147948356186 0.001059239488388132 1.950980847356738e-19) +(-0.001471507199516953 0.001153787135030829 -4.515008205139287e-20) +(-0.001588107305333556 0.001227657578054542 -9.257097551358988e-21) +(-0.001736430988360747 0.001289252587993082 -1.954956708697546e-19) +(-0.001894207701890833 0.001276848821575743 -1.643108814591942e-19) +(-0.002074086182824119 0.00116891078331755 1.260164587060942e-19) +(-0.002246751434050735 0.0009571959810185824 -5.98740107674274e-23) +(-0.002378620957120057 0.0006629836367832446 1.032283698810925e-19) +(-0.002480443232991605 0.000312252981969056 -2.245918607319837e-19) +(-0.002612728361094285 2.597228429979719e-05 -3.532030060987787e-20) +(-0.00262514924453674 -3.296735515522193e-06 -1.1997718357616e-19) +(-0.002458067814830903 -1.609829078925413e-05 1.841874676296792e-19) +(-0.002217775335677829 -2.23838408479207e-05 -1.719024395220165e-20) +(-0.001929270274349005 -2.637365265848393e-05 8.58870390244557e-20) +(-0.001613279327062609 -2.869070667073553e-05 1.913152973838582e-19) +(-0.001282509451855985 -2.991150149575801e-05 2.192078307190715e-19) +(-0.0009458151468311001 -3.033535488604083e-05 -6.811797923732318e-21) +(-0.0006097121812658733 -3.018558979636645e-05 2.26377979680681e-20) +(-0.0002786508856913813 -2.962619249720203e-05 -1.166074408748085e-19) +(4.412224496352288e-05 -2.877694853126219e-05 -3.449760138436655e-19) +(0.0003564469308226488 -2.772875037899821e-05 6.689500688786386e-19) +(0.0006568099931417799 -2.654592187924174e-05 2.064256528837501e-19) +(0.0009442482631720785 -2.527700633471064e-05 2.239844798318233e-19) +(0.001218152018270951 -2.395743661795952e-05 5.448988073261791e-19) +(0.00147820515639311 -2.261348018044981e-05 8.196295774984653e-19) +(0.001724282902529877 -2.126358044763403e-05 1.246608449809332e-21) +(0.001956392433729577 -1.992044274014432e-05 4.144053072796302e-19) +(0.002174631097456285 -1.8591871328562e-05 4.223566258622289e-19) +(0.002379131021079396 -1.728212327699706e-05 -1.570157267528671e-19) +(0.002570043911800705 -1.599198766953074e-05 -1.917558668692701e-19) +(0.002747492357832204 -1.472012634697117e-05 1.306277755528775e-19) +(0.002911588930622999 -1.346165210660586e-05 -3.127418917036826e-19) +(0.003062327196615215 -1.221123174457702e-05 3.734750700505085e-19) +(0.003199702487576204 -1.09574117574745e-05 4.297696825142715e-19) +(0.003323422543311924 -9.692367587105426e-06 -4.502010241889888e-19) +(0.00343334704889417 -8.392595451988127e-06 -2.513749475554398e-19) +(0.003528562737482728 -7.052363205578115e-06 2.378337676747188e-19) +(0.003608959201618087 -5.617837780212514e-06 -6.544787864831393e-19) +(0.003672091147097788 -4.103783626724188e-06 -5.760191753863659e-19) +(0.003718756115438368 -2.366547691412528e-06 -9.705617270646256e-20) +(0.003742118847575168 -5.106754072853812e-07 1.254619522921649e-19) +(0.003747397646329927 1.891371545485202e-06 1.485203636977662e-19) +(0.003713764185991745 4.413430024525528e-06 -5.17043772192088e-19) +(0.003663677100809957 8.624224145893229e-06 1.659537524351031e-19) +(0.003526585518969224 1.325566160010174e-05 1.228697406778838e-19) +(0.003381934737733684 2.531763537501416e-05 3.927679792738959e-19) +(0.002958134835796993 5.569329858165376e-05 -4.554561223342815e-19) +(0.002552059664697007 0.0003209537538180368 1.094188332033345e-18) +(0.002596347384662617 0.0006979477234222633 2.355295860983992e-19) +(0.002767969622990271 0.001135849483948359 1.704032427750392e-18) +(0.003066086844922745 0.001662982042705574 -2.485636131643929e-18) +(0.003527822082294601 0.002291037277051963 3.454685692571583e-18) +(0.004146060936900685 0.002975514308129686 -6.84482731184198e-21) +(0.00489189171166263 0.003673290543341798 -2.420193333579142e-18) +(0.005644894083459247 0.00431761906755614 -2.979697314558912e-19) +(0.006387386648475449 0.005015936197842919 1.1455183298373e-18) +(0.007208317117846766 0.00586332222786465 1.061372692849463e-18) +(0.008510906875608085 0.007108673783350199 1.969775398165831e-18) +(0.01090616566854803 0.008648700351151388 6.146229278922518e-19) +(0.01497600035117365 0.009942482138072722 2.387945459072952e-20) +(0.02020526948170476 0.008537587845227354 -6.406120933686087e-19) +(0.02026248963740603 0.003034188686181454 -2.262980766022053e-18) +(0.01520964739875599 0.0002672914567698683 -6.772946399968885e-19) +(0.01564009269787061 -3.619153079920439e-05 -6.281230497573026e-20) +(0.01542629078815172 -0.001862509400286338 3.364649428050764e-19) +(0.009422780602730732 -0.003420801451736604 -9.134108633569143e-19) +(0.002126169443888742 -0.001016841246457146 -7.756634793765967e-19) +(-0.0005888382178440499 0.0006075734742425457 -9.610889054048718e-19) +(-0.001024196273836913 0.0009017360388860065 -7.236731004677275e-19) +(-0.001281051154853134 0.001076306712047869 2.816045514977507e-19) +(-0.001412425733877369 0.001141007159058252 1.751861279849567e-19) +(-0.001589590602935928 0.001252388182205228 6.611562208161768e-22) +(-0.001725579432288111 0.001339794789683523 -5.778581488472999e-21) +(-0.001890465895130809 0.001410098030153709 -1.660028840222091e-19) +(-0.0020612218403608 0.001396225171665389 -1.667827110050291e-19) +(-0.002250749636212372 0.001275102733332258 1.156899827165355e-19) +(-0.002429228545660188 0.001040199146973195 -4.772809375517788e-20) +(-0.002563030924088356 0.0007179275821996947 8.583708566808569e-20) +(-0.00266244977285687 0.0003385281058772232 -1.806900731328593e-19) +(-0.002778996577701623 2.952538973855635e-05 -7.071140037666238e-20) +(-0.002766872283686642 -7.551227632142912e-06 -8.72378230119749e-20) +(-0.002578177426743645 -2.610273756865684e-05 1.357997302015194e-19) +(-0.002315652943031229 -3.519961884658254e-05 -7.523326023089463e-20) +(-0.002004585993499263 -4.093789428599201e-05 1.196346527380352e-19) +(-0.001666000371913926 -4.422550305231934e-05 1.547527205131825e-19) +(-0.001312836293778182 -4.591534373697061e-05 1.218109403870463e-19) +(-0.0009540792485873711 -4.645045330130662e-05 -9.878996762095937e-20) +(-0.0005963298356447485 -4.615761731489084e-05 -3.824329577124288e-20) +(-0.0002440862293099255 -4.527655519303871e-05 -1.041827631204225e-19) +(9.938069544790039e-05 -4.39806753855569e-05 -3.725808041739981e-19) +(0.0004318948185561918 -4.240094589202532e-05 5.186121554668765e-19) +(0.0007519347170020276 -4.062942589431872e-05 1.781474491199568e-19) +(0.001058535246988652 -3.873562168499399e-05 3.090292251445092e-19) +(0.001351087024743842 -3.67700061968888e-05 5.134327990089723e-19) +(0.001629274833582127 -3.476981580164718e-05 8.854712817900865e-19) +(0.001892973551504334 -3.276097093861329e-05 5.694233001595516e-20) +(0.002142187390663085 -3.076114026615934e-05 4.693832069081014e-19) +(0.002377007853546698 -2.878091569697549e-05 3.66418294091423e-19) +(0.002597556788250202 -2.682580322006993e-05 1.195664066880176e-20) +(0.002803970808635653 -2.489624846608766e-05 -2.051166182611072e-19) +(0.002996351995171295 -2.298966655225799e-05 1.244409792599552e-19) +(0.003174786296530839 -2.10981191588013e-05 -2.732455697101993e-19) +(0.00333923282322047 -1.921318801129421e-05 8.86952189732012e-20) +(0.003489643613989009 -1.731693318362546e-05 3.022680751907209e-19) +(0.00362567227096543 -1.539737089101734e-05 -1.661452064860599e-19) +(0.00374711080626253 -1.341770135153867e-05 9.95543214338459e-20) +(0.003852961060799123 -1.13696984170392e-05 2.219861713513685e-19) +(0.003943006657069646 -9.168492668691262e-06 -5.581192974934141e-19) +(0.004014664502746491 -6.839313604599073e-06 -3.819883111091737e-19) +(0.004068560839077989 -4.154145230963118e-06 4.340093570186834e-19) +(0.004097612412505361 -1.283368229163566e-06 -5.615303410728401e-20) +(0.004106751377191607 2.461636927108531e-06 -1.342617463360652e-19) +(0.00407456494209091 6.385721278619029e-06 -5.726774857022762e-19) +(0.004022962788828125 1.297416064063581e-05 5.99375507553916e-19) +(0.003880212160630839 2.009357630678221e-05 3.374522207437259e-19) +(0.003724935182226134 3.849466271220036e-05 5.92265880062502e-19) +(0.003286784204415651 7.734068386375468e-05 -4.507636830051449e-19) +(0.002857636301794406 0.0003654793291183856 1.638600229115253e-18) +(0.002888482476875445 0.0007714481120620117 4.577391473780128e-19) +(0.003066758898339795 0.00124717266147208 1.434335268880785e-18) +(0.003386150796476514 0.001818044441222311 -1.628083065519609e-18) +(0.003883460428528232 0.002495287720299078 2.486349285215447e-18) +(0.004552226803331356 0.003233273509281639 3.690934484265899e-19) +(0.005362048562476657 0.003989321341768928 -2.475914292202685e-18) +(0.006191625414573181 0.004699215959693754 -1.248130580634774e-18) +(0.007021041502571256 0.005475565580721719 3.245792977526385e-19) +(0.007945570740016082 0.006414341510643352 1.194866322137117e-18) +(0.009383551653604875 0.00775901447096033 2.078828690622707e-18) +(0.01197326806786027 0.009370347611314877 4.905946846860098e-19) +(0.01627758274836928 0.01064061043351165 1.157516063869876e-19) +(0.02180992563161559 0.009116236451336412 -1.838548235661964e-19) +(0.02243120020802842 0.003413713032849323 -1.410080546222714e-18) +(0.01751177157435102 0.0003833645062244737 -7.87889316380394e-19) +(0.01742644231189733 -5.941021085555376e-06 -4.614793811749947e-19) +(0.0170636826650016 -0.001960142021230053 2.613665438083724e-19) +(0.01097290383972017 -0.003786493371469402 -1.169318666142861e-19) +(0.003021031188620669 -0.001381742953123738 -7.601691339457819e-19) +(-0.0003375710716772407 0.0004950939250259477 -8.74592642946681e-19) +(-0.0009869584544064821 0.0008935655675196771 -6.964347471860206e-19) +(-0.001301940996002639 0.001105740144379281 4.914118837180737e-20) +(-0.001462979506027484 0.001191090643757264 2.183680949028465e-19) +(-0.001662081844605352 0.001318456239683243 4.57114141264241e-21) +(-0.001815882763982486 0.001418475639350654 2.495313991169199e-21) +(-0.001994698027135556 0.001497006565772659 -1.43240813975438e-19) +(-0.002176545217059349 0.001483696063746369 -1.411775888100286e-19) +(-0.002374314701914358 0.001353996696632299 1.336913699600259e-19) +(-0.002558103349301904 0.001102293257072891 1.803767491069668e-20) +(-0.002694154221350522 0.0007591314893572543 9.628236709898529e-20) +(-0.002790912210873864 0.0003586230948355332 -1.800863647138238e-19) +(-0.002889785374570162 3.213621467901431e-05 -9.938678317284472e-20) +(-0.00285417539034827 -1.394586964387844e-05 -6.907862302926408e-20) +(-0.002648047199859494 -3.935750957949309e-05 1.669273172198186e-19) +(-0.002368037702880006 -5.187916641535292e-05 -1.410141362859261e-19) +(-0.002039511155250018 -5.974412912621774e-05 2.011292679276077e-19) +(-0.001683495475954783 -6.420545219425689e-05 1.273120368417984e-19) +(-0.00131305493391232 -6.645245905124711e-05 4.37444052385919e-20) +(-0.0009372447653775675 -6.710558824462841e-05 -2.232089781655548e-19) +(-0.0005627156911369291 -6.661881872395474e-05 -8.839002597408702e-20) +(-0.0001940004548390043 -6.532507259281447e-05 -9.607368744823831e-20) +(0.0001656112855438561 -6.346351400048208e-05 -4.174600693807772e-19) +(0.0005139250602971361 -6.121406707288681e-05 4.823573991913289e-19) +(0.0008494087269454311 -5.870290285875771e-05 1.647505966204141e-19) +(0.001171091032293976 -5.602528130819114e-05 1.922405713692696e-19) +(0.001478359155565663 -5.32500592087552e-05 5.05781328985553e-19) +(0.001770895158008866 -5.0427804241031e-05 9.696830265402404e-19) +(0.002048570924861394 -4.759345982855483e-05 -1.731772924557962e-21) +(0.002311386198247803 -4.477061399113125e-05 5.333960057458841e-19) +(0.002559426265290781 -4.197309489248114e-05 3.253473630183437e-19) +(0.00279280385974798 -3.920772890221579e-05 -7.028219844586386e-20) +(0.003011642894106077 -3.6474311615461e-05 -2.169951435612717e-19) +(0.003216029186080481 -3.376845350495529e-05 -1.244359619658961e-19) +(0.003406027186021618 -3.107818943599042e-05 -2.526705223648816e-19) +(0.003581569765314669 -2.839094689673766e-05 2.870680884308287e-19) +(0.00374257365107066 -2.568045021288908e-05 1.938213877059774e-19) +(0.003888652894587623 -2.292900258727267e-05 -2.21832652894946e-19) +(0.004019541661735262 -2.008302723023646e-05 1.048144851603558e-19) +(0.004134184983272003 -1.713009775576649e-05 2.174851337312559e-19) +(0.004232266271383608 -1.394680162465412e-05 1.5009135240555e-19) +(0.004311128110141043 -1.056863092326808e-05 -1.987431781857089e-19) +(0.004371201625438688 -6.66399035696478e-06 6.96292092441461e-19) +(0.00440532580972163 -2.477472809045065e-06 -1.875529497648943e-19) +(0.004417994450335338 2.999095327188037e-06 -3.512332138655426e-19) +(0.004387755052634512 8.760685491516981e-06 -3.759799983763042e-19) +(0.004335337670545079 1.839832677139257e-05 5.49791152029895e-19) +(0.00418964514989621 2.876629322804486e-05 5.268250104736165e-19) +(0.004026304527178494 5.499496250004242e-05 5.770720788908183e-19) +(0.00358334648878904 0.000103756839176118 -4.402115630779551e-19) +(0.003141448511397393 0.0004097680952943475 1.393392720942465e-18) +(0.003158082119888253 0.000837448716001466 1.027047878291985e-19) +(0.003339304339463295 0.00134355082780726 6.136687382221361e-19) +(0.003674578682874947 0.001948877957936636 -1.01848188583763e-18) +(0.004198906571280442 0.002663230174772269 1.745259410056854e-18) +(0.00490595479655992 0.003440486109254404 4.222082545177319e-19) +(0.005763525787077338 0.004239344229726605 -2.369107955309335e-18) +(0.006652545878400124 0.005000338382691941 -1.21359101920221e-18) +(0.007552447555647604 0.005838937726679811 -3.135666354494587e-19) +(0.008564920249072567 0.006849148181595884 7.460215089515766e-19) +(0.01011325284335148 0.008258974017490206 1.28654224879901e-18) +(0.01284264968911551 0.009889788969239028 9.475218561557046e-19) +(0.01726599160801231 0.01107448288567043 2.103872933416092e-19) +(0.02288599747898561 0.009429602259062118 2.553787736039834e-20) +(0.02399700041648078 0.003708069287397227 -7.999396094623576e-19) +(0.01950982229879779 0.0005198226380413746 -4.705330863947561e-19) +(0.01905101488160114 3.957019372278338e-05 -2.180009872914164e-19) +(0.01855712758977272 -0.002006060934392013 -8.074659918149811e-20) +(0.01254734911957491 -0.004081695829320999 -3.313980342315864e-19) +(0.004106900493801025 -0.001786374893697596 -3.587474692039765e-19) +(4.417673095470398e-05 0.0003260284629515165 -9.134084155035213e-19) +(-0.0008912672629892432 0.0008516548386331807 -5.760098371979793e-19) +(-0.00128120974877527 0.001107114204968447 -4.463532072617682e-20) +(-0.00147698133781369 0.001216381007217779 2.403204016849112e-19) +(-0.001698387799410089 0.001360187784540083 2.181934107570395e-20) +(-0.001869820424588595 0.001472723228411135 7.018714961783229e-21) +(-0.002061080555906877 0.001559426011380772 -1.043566433195647e-19) +(-0.002252744630834154 0.001548255369455216 -1.223479564254707e-19) +(-0.002457667252287614 0.001413304490003373 9.42360422301471e-20) +(-0.002646262151129937 0.001149308889795676 9.929293149330787e-21) +(-0.002784550246446834 0.0007902529610265777 1.831428667033283e-19) +(-0.00287805350847226 0.000373906270634855 -1.285359079131833e-19) +(-0.002957425642042155 3.345369822052297e-05 -1.297047422861391e-19) +(-0.002898772382320078 -2.305717344609425e-05 -6.366949045810254e-20) +(-0.002677925951039523 -5.651898016073279e-05 1.034540947577599e-19) +(-0.002383548145435996 -7.317353143966137e-05 -8.194741336672419e-20) +(-0.002040966504655026 -8.360412119154051e-05 1.962792286831063e-19) +(-0.001670981943074628 -8.947886580376485e-05 1.080965023119249e-19) +(-0.001286705591071847 -9.238857118824869e-05 -2.134509546269435e-20) +(-0.0008972163790398823 -9.316987368879782e-05 -9.303509629158694e-20) +(-0.0005091892330057307 -9.243135851827604e-05 -1.30234624007048e-19) +(-0.0001271810264262817 -9.061941060587127e-05 -9.154803769910972e-20) +(0.0002455038493124256 -8.805317401246632e-05 -5.131829523631872e-19) +(0.0006066512433790525 -8.49719732869669e-05 4.594012885493274e-19) +(0.0009547162075649325 -8.154370165812074e-05 -5.433605624055058e-21) +(0.001288718126368853 -7.789503923203022e-05 1.746868671397724e-19) +(0.001608037565702265 -7.411723290152937e-05 3.599060624289586e-19) +(0.001912350739354973 -7.027700965313236e-05 9.214566289122669e-19) +(0.002201524087067903 -6.642021149753122e-05 -6.995690190035283e-20) +(0.002475551248992073 -6.257751551259262e-05 6.194983976472372e-19) +(0.002734510531992239 -5.876654926865762e-05 2.957598405613452e-19) +(0.002978505971626468 -5.499556633621817e-05 1.512254440682491e-20) +(0.003207650183533232 -5.126337871774206e-05 -3.8662296932787e-19) +(0.00342201558506255 -4.756314289771163e-05 -2.939032773964233e-19) +(0.003621648775333768 -4.387775017030961e-05 -2.454456926397042e-19) +(0.003806462450306003 -4.018914373908217e-05 3.035766172664537e-19) +(0.003976344055812802 -3.646063308679462e-05 9.947539350136191e-20) +(0.004130879217871859 -3.266680269171891e-05 -6.023655759444226e-20) +(0.004269751981249969 -2.873349580682116e-05 1.239368097907566e-19) +(0.004391872087681076 -2.464145501535958e-05 2.13251619913057e-19) +(0.004496827841158194 -2.022094516141928e-05 -2.70754959094392e-20) +(0.004581935687530783 -1.551537753368813e-05 -1.053362080251129e-20) +(0.004647415432894667 -1.007076961035972e-05 4.159340285769685e-19) +(0.004686156480510728 -4.208415129849662e-06 -2.783432618185204e-19) +(0.004702103533579179 3.454314279443898e-06 -5.335514302376582e-19) +(0.004674172620366478 1.158002513802039e-05 -2.400784991295233e-19) +(0.004621458810094931 2.503615626449669e-05 4.338011084292097e-19) +(0.004474866637722931 3.95729245839455e-05 2.820646302591742e-19) +(0.004305475687116794 7.521438346564631e-05 6.047939396817257e-19) +(0.003864945658184956 0.0001356204430545806 -4.655517280104626e-19) +(0.003418728347544405 0.0004560329521617686 1.233672194768574e-18) +(0.003421221435206844 0.0009002874879155721 -4.57368389629189e-19) +(0.0036030483429988 0.001431625088398812 3.570313921332578e-19) +(0.003950901285382358 0.00206507296333292 -5.566222713409732e-19) +(0.004496853796614942 0.002808151779099753 1.763865671692839e-18) +(0.005234038263977054 0.003614594489941386 -6.066702733554227e-20) +(0.00612800361587703 0.00444510373900728 -1.94303258694973e-18) +(0.007063993241267466 0.005246498887753396 -8.38249120443388e-19) +(0.008022393565192883 0.006135369419468669 1.550153468608583e-19) +(0.009111945136980073 0.007201424486075677 4.36562313330738e-19) +(0.0107542180333155 0.008649595696885466 3.921349682668833e-19) +(0.01358571293886181 0.01025960649238057 6.656133089036029e-19) +(0.01805045445350097 0.01131516022907882 2.203906845693721e-19) +(0.02360771767696473 0.009550126786332816 -1.179756967843711e-19) +(0.02506107201253127 0.003925183080745338 -5.871540607878025e-19) +(0.02117212506028815 0.0006715178809586179 -3.570469454599836e-19) +(0.02048619707222078 9.904019286925372e-05 -4.471988806132091e-19) +(0.01990762224627284 -0.001999103460717427 -4.742565933832233e-19) +(0.01413998397995384 -0.004293967172157255 -5.502059759073812e-19) +(0.00540714102380309 -0.002222899592887738 -8.631150173230969e-19) +(0.0005972837500264915 9.004490418371532e-05 -7.461604489514473e-19) +(-0.0007205949997537945 0.0007724213001844848 -3.760190701999858e-19) +(-0.001214764679249131 0.001080544035727663 -1.46951653937087e-19) +(-0.001454395630743455 0.001218689177371319 2.398698294192742e-19) +(-0.001700812170683559 0.001380676877323731 7.746570071979247e-20) +(-0.00189111768715252 0.001506438989286942 -2.846132104280996e-21) +(-0.002094339433801462 0.001601712717964451 -8.524843798564638e-20) +(-0.002294992963263582 0.001594146551047535 -5.708656493624666e-20) +(-0.002506117043413605 0.001456660861848471 1.300556727123761e-19) +(-0.002698903990703185 0.001183936593761692 -3.226966207451789e-21) +(-0.00283911139733909 0.0008128605274863775 1.813962447013795e-19) +(-0.002928470103935064 0.0003847299973744059 -9.512252152758551e-20) +(-0.002986422707689488 3.290740966252075e-05 -1.64954090232867e-19) +(-0.002904688798735067 -3.565393079266453e-05 -2.370430149931149e-20) +(-0.002670967667568619 -7.84458147161665e-05 5.204950314740934e-20) +(-0.002364423192270496 -0.0001000575719823003 -8.568492247886166e-20) +(-0.002010278048762098 -0.0001135668714166825 3.008769131597537e-19) +(-0.001628890918232915 -0.0001211400867756007 9.86584476820981e-20) +(-0.001233353373902464 -0.0001248394626686641 -8.09178635264799e-20) +(-0.000832724502830965 -0.000125762979227191 -3.217455963428101e-22) +(-0.0004336785685693531 -0.0001247057328140431 -1.023437205874946e-19) +(-4.078491914543546e-05 -0.0001222512577504073 -9.138438051462997e-20) +(0.0003426428813987262 -0.0001188154953579444 -3.07525987851156e-19) +(0.0007143715240358768 -0.000114709613239915 4.737290023208126e-19) +(0.001072842842387143 -0.0001101523703328918 7.920340066231241e-22) +(0.001417064881609778 -0.0001053086958862627 1.608284954034285e-19) +(0.001746409388195887 -0.0001002970879014813 2.516455277498596e-19) +(0.002060544309233263 -9.520387147884921e-05 7.901954497345099e-19) +(0.002359328568843274 -9.008810261572395e-05 -1.571927852414101e-19) +(0.002642748148093711 -8.498899023889841e-05 5.934360703684052e-19) +(0.002910873403844747 -7.992869059868498e-05 2.752282864467332e-19) +(0.003163799591947989 -7.49170537309529e-05 7.161472967328693e-20) +(0.003401628705183721 -6.995155753416488e-05 -4.424628722815257e-19) +(0.00362442160218445 -6.5022132604753e-05 -2.809439958295642e-19) +(0.003832209503560637 -6.010524102770576e-05 -8.443054990013803e-20) +(0.004024889390175302 -5.517572570742289e-05 1.909837859677376e-19) +(0.004202323900653521 -5.018411101247297e-05 1.123610897714054e-20) +(0.00436407883583003 -4.509467134132719e-05 7.83297322481205e-20) +(0.004509794136264857 -3.980850601363281e-05 -1.475933077799571e-20) +(0.004638361289122215 -3.429570765468705e-05 2.224179244543657e-19) +(0.004749277827663501 -2.833223017940172e-05 -4.249916525758275e-19) +(0.004839872379375788 -2.196418648251147e-05 4.416398030523934e-19) +(0.004910141870032485 -1.45973245864308e-05 -8.879473550776782e-20) +(0.004953127962683141 -6.624071385243494e-06 -2.418276537085416e-19) +(0.004972143087491387 3.761522523630059e-06 -7.041278007012965e-19) +(0.004946796279985367 1.489237092540133e-05 -2.681646233980924e-19) +(0.004894209830736591 3.305369079107308e-05 4.262996857024337e-19) +(0.004748385009114725 5.287533405871815e-05 5.275367908717236e-19) +(0.004574724974989716 9.961401344865683e-05 4.732921154984531e-19) +(0.004142553495929462 0.0001736450736154304 -5.478134584861298e-19) +(0.003699504233427327 0.0005058634543931137 6.643008644209675e-19) +(0.003688699182476413 0.000962772224948224 -3.293441332585248e-19) +(0.003869755328056639 0.001515393951820661 4.324666930851342e-19) +(0.004228184334316525 0.002172185817130282 -2.348384833108456e-19) +(0.004792305476256406 0.002937632232632728 1.357042485585855e-18) +(0.005554014482631987 0.003765572216104603 -8.146439344106569e-19) +(0.006476190369440541 0.004619231044043048 -1.879363958697868e-18) +(0.00744994977134829 0.005452840234941174 -4.729869992637205e-19) +(0.008458292946025486 0.006382580936443961 1.588226263142181e-19) +(0.009617913015928098 0.007491765073724729 1.411207272167105e-19) +(0.01134430992272579 0.008956333080502102 -3.20199145887597e-19) +(0.01425306744107243 0.01051361890037066 2.6841815071067e-19) +(0.01870827992319627 0.01141031968113157 1.716245743122769e-19) +(0.02410585102876791 0.009532207809128404 -1.141642103250582e-19) +(0.02575134435736424 0.004079153122969499 -7.01976029158685e-20) +(0.0224944914783579 0.0008326711212782113 -2.122342628865764e-19) +(0.02171172739792326 0.0001695837586211696 -7.169645430481921e-20) +(0.02110389046262453 -0.001939047258528067 -6.261571202931581e-19) +(0.0157288156672887 -0.00440709716125386 -5.361843446535514e-19) +(0.006934804597020439 -0.002673588126315408 -1.001487014068495e-18) +(0.001375354642687815 -0.0002243430290484082 -6.240089097250654e-19) +(-0.000444850266391515 0.0006474173920639182 -4.904796098995139e-19) +(-0.001090548213629911 0.001022177747753704 -2.81688322655852e-19) +(-0.001389446612610354 0.001196389952764462 2.321697971769737e-19) +(-0.001666626220523535 0.00137978688216445 8.968993190488365e-20) +(-0.001878821466011003 0.001520412862978527 -6.570453235083304e-21) +(-0.002094657902857294 0.001625209038947279 -6.260612508483207e-20) +(-0.002303952120240925 0.001622845783837567 -5.021238205743299e-20) +(-0.00252043033486096 0.001485346605280583 5.244963272462299e-20) +(-0.00271664989850437 0.001207054117878001 1.399200012572309e-21) +(-0.002858162622143818 0.0008272853667368432 1.700411103551874e-19) +(-0.002942203581476852 0.0003907624183970765 -6.113011157283262e-20) +(-0.002976629144664547 2.96489397529356e-05 -1.275771035106605e-19) +(-0.002871364274287953 -5.274690436143987e-05 -4.401703533153631e-21) +(-0.002626025780105509 -0.0001062230979819845 1.172768863596784e-20) +(-0.002308955078939101 -0.0001337451223100009 -3.029601209215232e-20) +(-0.001945220490756608 -0.000150927782600712 3.552184394414725e-19) +(-0.001554512734359198 -0.000160535560046268 1.013611105467146e-19) +(-0.00114983632789562 -0.0001651751656890432 -7.08761750132166e-20) +(-0.0007401821972478639 -0.0001662582915246046 -7.38333295204257e-20) +(-0.0003321958850697889 -0.0001648034697656555 -8.17822198278783e-20) +(6.955586681341416e-05 -0.0001615589430945347 -9.781148241943567e-20) +(0.0004617590390172845 -0.0001570572898648871 -3.339888146547149e-19) +(0.0008421639171333952 -0.0001516962062583749 5.459482270282366e-19) +(0.001209200839526798 -0.0001457563235839537 3.301491466247824e-20) +(0.001561865984452297 -0.0001394490034358441 1.565608542653178e-19) +(0.001899521139297551 -0.0001329258753607391 1.718057631519221e-19) +(0.002221824320181122 -0.0001262970254552173 6.073472230833127e-19) +(0.002528625283872109 -0.000119637550099637 -2.751547366109337e-19) +(0.002819900923306729 -0.0001129969794618379 4.936743651806063e-19) +(0.003095712562079706 -0.0001064029312982887 4.140372472452245e-19) +(0.003356146233603087 -9.98670882305358e-05 -2.564136473725749e-20) +(0.003601293434444926 -9.338522387838964e-05 -5.204924354570975e-19) +(0.003831204520079454 -8.694313765467067e-05 -2.807635265158126e-19) +(0.004045896917009422 -8.05093949617598e-05 5.87191479069623e-20) +(0.00424525510649764 -7.404976035603217e-05 1.092105266384555e-19) +(0.004429120236565057 -6.749928681846931e-05 -6.612472519394823e-20) +(0.004597044998641869 -6.080861595830014e-05 2.182928323665479e-19) +(0.004748630020792425 -5.384958973318453e-05 1.368265475344664e-19) +(0.004882762309316569 -4.65762617149057e-05 2.610794607863719e-19) +(0.004998852568326735 -3.870232504953165e-05 -2.159086731356197e-19) +(0.005094272961121902 -3.026746179201396e-05 2.862130549917791e-19) +(0.005168789967698599 -2.052134199944903e-05 1.812774992412794e-19) +(0.005215680966668683 -9.910679775261185e-06 -1.939504783271032e-19) +(0.005237565408482675 3.831886178285615e-06 -8.850374091791482e-19) +(0.005215012108869564 1.874761327723868e-05 -3.247133966644772e-19) +(0.005162928082203813 4.263217876426586e-05 3.800752188574127e-19) +(0.005019319173158335 6.908449936456244e-05 6.722991966190081e-19) +(0.004843129022880708 0.0001286775085047508 4.033060907518785e-19) +(0.004424418087965174 0.0002185252209701159 -7.258755578218388e-19) +(0.003991501503368391 0.0005605281851977531 5.643333305018539e-19) +(0.003969063799420799 0.001026996136567881 -3.968982376549437e-19) +(0.004148829196580071 0.001597576387755875 2.188354327099374e-19) +(0.004516771493125825 0.002273763470506966 -2.096067484633242e-19) +(0.00509692154170974 0.003056357516909834 1.092435955606206e-18) +(0.005879238698646805 0.00389955281850176 -7.077022072983887e-19) +(0.006823662253875287 0.004769588529763468 -2.123356553724712e-18) +(0.007828465684942734 0.005628948551712482 -1.456909841212551e-19) +(0.008881014814814655 0.006591875747730801 9.601537919509745e-20) +(0.0101069095770592 0.00773321992475157 -2.024981618212334e-19) +(0.011912548981227 0.009195065481967522 -4.612900431367955e-19) +(0.01488221181974011 0.01067289995814291 -1.359793037435168e-19) +(0.01929253954391543 0.01138951045966267 1.372038375507619e-19) +(0.02446624779287692 0.009410807055518725 -2.756914507114396e-19) +(0.02618642828456714 0.004184582901067759 3.641870884373967e-19) +(0.02351224444299551 0.0009984043716338498 -1.105689974101774e-19) +(0.02272962655008055 0.0002478812700093261 -4.824118971958432e-20) +(0.022136372595532 -0.001828741602604469 -1.118368391714643e-19) +(0.01728052750162567 -0.004405661743746261 -5.454807333554922e-19) +(0.008686632545515766 -0.003109515527365766 -5.777545921169109e-19) +(0.002438288558541076 -0.0006235764350459398 -6.879597626792919e-19) +(-1.418518014770776e-05 0.0004623814028866843 -4.217161532159254e-19) +(-0.0008859761022303948 0.0009243322783860846 -2.390421198989498e-19) +(-0.001269885995972345 0.001144754449390442 1.99542101113805e-19) +(-0.001588165695533834 0.001354703139481911 1.110476847174341e-19) +(-0.001827841099619762 0.001513039058137936 -5.633712632237678e-21) +(-0.002058528984596744 0.001629049771207172 -4.825164458991458e-20) +(-0.002276805585536614 0.001633852310050076 -5.063376445937411e-20) +(-0.002497951923226769 0.001498968047636945 6.834793403693114e-20) +(-0.002696684271464124 0.001218232119351516 1.733637917455949e-20) +(-0.002838572829836453 0.0008329198829592297 1.3219989385772e-19) +(-0.002915814131604582 0.0003910577997124077 -2.616990173016492e-20) +(-0.002924334182416246 2.245320334066609e-05 -1.802127634414668e-20) +(-0.002794677675928429 -7.56594692823987e-05 -2.010878358795572e-20) +(-0.002538521608419566 -0.0001412071235464689 -1.827652649312053e-20) +(-0.002212188697824908 -0.0001757231205870166 1.235251459354646e-22) +(-0.001840543351335955 -0.0001972562580414716 3.167558093951877e-19) +(-0.001442352423180114 -0.0002092882217863773 1.217307875204457e-19) +(-0.00103045486085294 -0.0002150423878829906 -7.145808062951201e-20) +(-0.0006137139084997652 -0.000216304180085227 -2.578334736538937e-20) +(-0.0001987112824138615 -0.000214357613242373 -7.010409888056124e-20) +(0.0002100096197517804 -0.0002101473261832528 -1.172708448401762e-19) +(0.0006091479255566064 -0.0002043459079127318 -2.444847041780635e-19) +(0.0009964429048995129 -0.0001974544722160887 4.333016919227697e-19) +(0.001370317813925104 -0.0001898287512808175 -1.762109462345031e-19) +(0.001729758177624821 -0.000181736247357886 -1.00439800793738e-19) +(0.002074115907744359 -0.000173368767482494 1.107720599169599e-19) +(0.002403038233849149 -0.0001648651463061841 5.190384998971717e-19) +(0.002716364540801369 -0.0001563199548956352 -1.771187153689704e-19) +(0.003014061355605395 -0.0001477952190631603 4.911696539274281e-19) +(0.003296179802508171 -0.0001393251806557414 5.810778248001408e-19) +(0.003562795937500361 -0.0001309236833058256 1.36479497805707e-19) +(0.003813990419008933 -0.0001225844177905185 -3.748126766667056e-19) +(0.004049803488270534 -0.0001142879836479474 -2.873178049207284e-19) +(0.004270239613409391 -0.0001059933797382464 -8.521785871270076e-20) +(0.00447517299307958 -9.765486800678926e-05 3.611984775127679e-20) +(0.004664425668187963 -8.918900920685063e-05 -1.323115130643405e-19) +(0.004837542445131281 -8.052859793984324e-05 4.127549847332302e-19) +(0.004994088587753246 -7.151139488527423e-05 2.812826928307837e-20) +(0.00513295786426864 -6.206802050669147e-05 3.174047573106289e-19) +(0.005253478189047357 -5.184235056731039e-05 -2.499525968671147e-19) +(0.005353091211535157 -4.085332804660682e-05 2.467195561453192e-19) +(0.00543132979875567 -2.818244322478863e-05 1.209236081599601e-19) +(0.005481776269974058 -1.429860514803077e-05 -1.859795005647741e-19) +(0.005506318203806995 3.547716761440403e-06 -6.903384534742946e-19) +(0.005486706659375592 2.319190080784681e-05 -3.701669819498486e-19) +(0.005435480742258417 5.395773152844358e-05 6.88484962081721e-19) +(0.00529540859522319 8.864426866621051e-05 -1.480592654099578e-19) +(0.005118513896020426 0.0001628703211616848 3.835070285158375e-19) +(0.004717762271902753 0.0002708701531627748 -7.167392904667474e-19) +(0.004301569220325359 0.0006210730433326589 1.042659330551595e-18) +(0.004270080029769589 0.001094676391735367 1.444428318061434e-19) +(0.004448928241597348 0.001680206649728177 1.012454252527935e-20) +(0.004826107552937837 0.002372241058770124 -2.743164670880171e-19) +(0.005421129160798429 0.003167384763515144 1.822543310830406e-19) +(0.006221357515640371 0.00402049148963667 -6.173414681601354e-19) +(0.00718375024206324 0.004901297164443624 -1.210062538254227e-18) +(0.008214892945034984 0.005781118634785415 -3.840997622550524e-19) +(0.009308371257746461 0.006770568642327621 2.45593088418759e-19) +(0.01059947126135554 0.00793385277047442 -1.84271289579013e-19) +(0.01248290952336406 0.009374933240286053 -5.519411153704499e-19) +(0.01550173608053465 0.01074914596212552 -2.106914130783788e-19) +(0.01983877583661239 0.01126927464953081 9.584830703576679e-20) +(0.02474147933189927 0.009206519841330951 -9.252952122462202e-20) +(0.02645557220142767 0.004252888343162 2.300574130966615e-19) +(0.02428546928374367 0.001165333582081118 -1.181672508197487e-19) +(0.02356347032389249 0.0003313174610306538 -8.717623088427906e-20) +(0.02300698287704482 -0.001674715588429909 -4.283431247700457e-19) +(0.01875684625695352 -0.00428001025591896 -6.387317185265582e-19) +(0.01063710152306069 -0.003491121819259737 -3.610167788905975e-19) +(0.003844402199628221 -0.001102772298289918 -7.821364916611609e-19) +(0.0006446387337857891 0.0001987889712080443 -2.808123334543158e-19) +(-0.0005624439380820008 0.0007749935897616601 -1.353670762116014e-19) +(-0.001074211227515719 0.001055542857008359 1.174051844611379e-19) +(-0.001451380466717324 0.001299719956313396 6.132502156722162e-20) +(-0.00172819156284651 0.001480301754537162 -6.307285174824114e-21) +(-0.001978449933406265 0.001610276314360282 -3.415870580865919e-20) +(-0.002207223800040581 0.001624850447559474 -4.341514153654319e-20) +(-0.002432702741659147 0.001495602234947778 3.375511438959696e-20) +(-0.002632889023656381 0.001215824192539142 3.042699572118647e-20) +(-0.002773871444127684 0.0008282326995413768 7.692717115705928e-20) +(-0.002842462475667521 0.0003839813150733752 -4.718708047759637e-22) +(-0.002822336344183021 9.572103866919098e-06 -3.251820073223224e-21) +(-0.002666967027083726 -0.0001061280989551165 -2.230746380852108e-20) +(-0.002400375429198357 -0.0001850944819668677 -5.5757835963661e-20) +(-0.002065766587045157 -0.0002278027604179351 9.878357230897783e-21) +(-0.001687734100031572 -0.0002544361662254476 2.043442733645527e-19) +(-0.001283818187091646 -0.0002693321215108979 1.677400156910095e-19) +(-0.0008665913304686252 -0.0002763955766913952 -7.650013439907924e-20) +(-0.0004447111390006022 -0.0002778528044228638 -4.800115055298822e-21) +(-2.46486264659128e-05 -0.0002752998778879064 -7.094602066281985e-20) +(0.0003891060190377783 -0.000269914275178702 -1.652070386811771e-19) +(0.0007932848510996857 -0.000262534731456078 -1.018378063507957e-19) +(0.001185625359805887 -0.0002537854165346966 4.33301366972005e-19) +(0.001564551661697342 -0.0002441127803546376 1.053608252680185e-19) +(0.001929042097770721 -0.0002338517963288707 -1.032685109957106e-19) +(0.002278440279004254 -0.0002232427872868333 8.45678763618964e-20) +(0.002612382748150157 -0.0002124592407643969 2.783907944633094e-19) +(0.002930697814423634 -0.0002016192983112898 -1.5629606702159e-19) +(0.003233340541497089 -0.0001908000923330142 3.441405570732561e-19) +(0.003520350586183244 -0.0001800439274549168 5.707727286840921e-19) +(0.003791792956623993 -0.0001693672345691927 5.932691477742843e-21) +(0.004047736652074418 -0.0001587612242185533 -3.298690512094335e-19) +(0.004288211547201592 -0.0001482000431204191 -5.627236484476671e-19) +(0.004513209287788396 -0.0001376312275867686 -2.269241330715449e-19) +(0.004722595080294394 -0.0001269946072886845 -3.028699879911838e-20) +(0.004916173478874276 -0.0001161848750608653 5.707815891952754e-20) +(0.005093485331798903 -0.0001051116637573097 4.980351220113471e-19) +(0.005254063914393927 -9.357358674447165e-05 -1.573405457487105e-19) +(0.005396818909051732 -8.146798150685978e-05 3.92999196477799e-19) +(0.005521000100385805 -6.836214485848586e-05 -9.574102384559129e-20) +(0.005624140106837298 -5.423348531579069e-05 1.03699279451873e-19) +(0.005705540298414004 -3.798872889641234e-05 1.043488514349908e-19) +(0.005759145368734003 -2.00676270584567e-05 -2.487822309641371e-19) +(0.005786095484964961 2.757519729470939e-06 -5.283271508891149e-19) +(0.005769509692659638 2.826167042558969e-05 -4.087084419579958e-19) +(0.005719498882418995 6.720987670708735e-05 1.562069888226696e-19) +(0.005584213063279222 0.000112006443651623 -8.946441992487228e-19) +(0.005408617346483353 0.0002025960260072125 4.797731670783123e-19) +(0.005029812321258264 0.0003311250308245165 -1.869037951833388e-19) +(0.004636547980937819 0.000688322610925572 5.820887597316334e-19) +(0.004599590089369819 0.001167264689521924 2.394039015261243e-19) +(0.004778904626410682 0.001764879940926071 -4.996385552876098e-19) +(0.005165794360058464 0.00246933984002588 -3.078210114647103e-19) +(0.005775329764321085 0.003272726612303099 1.540063158513387e-19) +(0.00659171584506625 0.004130956477164318 2.964964061225822e-20) +(0.007569192945522091 0.005017719497966624 -5.904220241973588e-19) +(0.00862376710355056 0.005913444502119104 -1.569543040259973e-19) +(0.009757157967498627 0.006923113298046773 -2.123593479857807e-19) +(0.01111466605174463 0.008097872549145034 -2.788832456793655e-19) +(0.01307641892345264 0.009499678403009691 -7.179451611706281e-19) +(0.01613383681563497 0.01074678751830126 -2.772872381113433e-19) +(0.02037019809500024 0.01105739444785398 -9.38209846452334e-21) +(0.02496310558012221 0.008931199600894578 -5.309146376431827e-20) +(0.02661905666344312 0.004291583700521602 4.260649644258832e-19) +(0.02487798680793738 0.001331184462642927 6.421303904397344e-20) +(0.02424847372079916 0.0004185512967023225 -1.972258765862053e-19) +(0.02373168641579048 -0.001486235617077572 -8.020002703130906e-19) +(0.02012231914421999 -0.004030859088917803 -3.388044785296285e-19) +(0.01273438631358495 -0.003772104442167062 -2.953937881024022e-19) +(0.005636375396697118 -0.001638444141016476 -7.158983294375455e-19) +(0.001629098361624149 -0.0001614631409865659 -2.383380400379093e-19) +(-5.685316771050304e-05 0.0005572416681537307 -2.008991357764598e-19) +(-0.0007661572636272342 0.0009161720191453215 1.036847425576961e-19) +(-0.001232516738430984 0.001205472097155719 6.696462784981528e-20) +(-0.001562849651980098 0.001415229945037543 7.575755218110216e-22) +(-0.001841518276461556 0.001563470328046893 -1.204918192767067e-20) +(-0.002084430638222557 0.001591449032322166 -4.037471713787696e-20) +(-0.002314695835780355 0.001471586464896071 -3.790257657587664e-22) +(-0.002515253862877837 0.001196774878574547 4.959411873334149e-20) +(-0.002653665860247434 0.0008105810796346645 -1.870560861545173e-20) +(-0.002711298684625967 0.0003670112274369161 7.702140675717219e-20) +(-0.002659305286222548 -1.148289319394096e-05 2.328988671595185e-21) +(-0.002476360100307739 -0.0001464433648464992 -5.707662118310539e-20) +(-0.002199284448951355 -0.0002400184280082478 1.054223498317257e-20) +(-0.00185716409662503 -0.0002921824047538325 1.046909098889155e-20) +(-0.001474217242232876 -0.0003247089704206239 1.545443471166626e-19) +(-0.00106639492133317 -0.0003429436182441189 1.228150289442925e-19) +(-0.0006458646606153443 -0.0003515207770783964 8.143976843768286e-20) +(-0.0002209733034389729 -0.0003531792101789654 1.45575875712984e-19) +(0.0002019835128360577 -0.0003498770631547677 -8.961752758435759e-20) +(0.0006186158630785752 -0.0003430656873657062 -2.627473768931566e-19) +(0.001025710042521901 -0.0003337773143770831 4.146955106847643e-20) +(0.001421021260504011 -0.000322781940298624 3.056618386801229e-19) +(0.001802986202860675 -0.0003106347938337933 1.910198198238215e-19) +(0.002170582560640271 -0.0002977512578520461 1.622922427711409e-19) +(0.002523149151813813 -0.0002844298456680046 9.122462045018629e-20) +(0.002860313130297938 -0.0002708855493776145 1.35301906117388e-19) +(0.003181891640899146 -0.0002572648808857527 -2.072709096538049e-19) +(0.003487827367482934 -0.0002436631607951152 3.218075516844144e-19) +(0.003778147097579506 -0.0002301324765074771 4.48785296057548e-19) +(0.004052903327329366 -0.0002166923702433589 -1.70736711920251e-19) +(0.004312152043465566 -0.0002033311663907248 -1.179862065608671e-19) +(0.004555911782705235 -0.0001900150894593079 -1.799658113683667e-19) +(0.004784160776199657 -0.000176678069237688 -1.209635146109556e-19) +(0.004996755579199113 -0.000163241981362887 -6.625956486327865e-20) +(0.005193484147519303 -0.0001495758905369611 3.857982515031396e-21) +(0.005373886102072082 -0.0001355597190793807 4.124069718561718e-19) +(0.005537465759565388 -0.0001209476371444587 -2.285692682474924e-19) +(0.005683156041860136 -0.0001055910075159661 3.943076124606584e-19) +(0.00581013438187692 -8.897490556009027e-05 2.295544605290307e-20) +(0.005916042108679955 -7.100695486519449e-05 4.653997311127968e-20) +(0.005999957650622248 -5.041949906058364e-05 1.222128816339072e-19) +(0.006056235508655626 -2.75497910283145e-05 1.057229399417029e-20) +(0.006085278808510734 1.272844688559871e-06 -3.000762879245753e-19) +(0.006071729063563469 3.397473201922622e-05 -5.428682540428521e-19) +(0.00602330603414508 8.254603272525251e-05 -4.892144835763933e-21) +(0.005894019588942906 0.000139588118554553 -6.669105744015362e-19) +(0.005721961655224099 0.0002481418506604658 1.917498541192465e-19) +(0.005368592965176537 0.0003994699323728027 2.096662052742961e-19) +(0.005003963953014772 0.0007628227609516546 8.909286783060463e-19) +(0.004966162133400167 0.001245920692213196 3.011425685827705e-19) +(0.00514847633909849 0.001852806866324532 -1.001228382444101e-19) +(0.005546330944057086 0.002566208914658413 1.721041443945641e-19) +(0.006170725008963312 0.003373598328670808 -3.805224687621596e-19) +(0.007002309650184958 0.004232489466820736 -5.121526067972793e-19) +(0.007993254287524941 0.005120911803951235 -6.249392010130334e-19) +(0.009070082106732725 0.006028279390967231 9.208842387619816e-20) +(0.01024450427257056 0.007051505871798327 -1.053179903888907e-19) +(0.01167135939057961 0.008225963290747432 -3.068753115081581e-19) +(0.0137122560972123 0.009568177700566926 -8.757409589347741e-19) +(0.01679567924843137 0.01066440205696222 -2.596061408320012e-19) +(0.02090112538602629 0.01075612708889061 -8.32751392841532e-20) +(0.02515027839648704 0.008592110104290266 -1.843408562084323e-19) +(0.02671630472383914 0.004304760362624964 5.583998839771315e-19) +(0.0253442809202629 0.001494015171549814 1.347112203192754e-19) +(0.02482140006713288 0.0005094774570961024 -4.967358725927695e-19) +(0.02433700911267851 -0.001273472468845445 -4.171884001333863e-19) +(0.02135165496572956 -0.003671999705740149 -4.755959972204585e-19) +(0.01490086335022543 -0.003907583924088739 -2.025231306516573e-19) +(0.007822003858547253 -0.002182861291289119 -5.309010896124823e-19) +(0.003048861796182406 -0.0006250371042976448 -3.154223127335296e-19) +(0.0007311933410289635 0.0002494174374308135 -2.60288557320642e-19) +(-0.0002851835056800513 0.0007089338587312142 -9.205817431660554e-22) +(-0.000891906233478804 0.001057764539031526 5.909363847852509e-20) +(-0.001303546566320362 0.001306863885855186 -1.979536111340619e-20) +(-0.001626488747208189 0.001479937333897074 -2.312507325002905e-20) +(-0.001891104558852624 0.001526528623207387 -2.380886322521655e-20) +(-0.002128326478413421 0.001420975303443154 4.039635742196359e-20) +(-0.002328489564689709 0.001156153935346331 2.508308110126623e-20) +(-0.002462318384868967 0.0007758147692741109 3.75900136403385e-20) +(-0.00250613338557061 0.0003363977767687784 1.499457636297859e-20) +(-0.002418424747800707 -4.425447932414341e-05 2.782377673897751e-20) +(-0.002205418954531708 -0.0001996487162549013 -2.500926451595483e-20) +(-0.001917346200326694 -0.0003086802039256446 -4.136697476426758e-20) +(-0.001568305317792726 -0.0003715201403352916 2.145555367739583e-21) +(-0.001181966777407334 -0.0004107108843307857 2.348363427490754e-19) +(-0.0007722660870821826 -0.0004327557702490156 3.374967254359525e-21) +(-0.0003507681829083841 -0.0004430356870130975 2.040781550149453e-19) +(7.463338920500034e-05 -0.0004448722799727589 -9.788999443787949e-20) +(0.0004979128428847734 -0.0004406401215203147 -1.374956421535471e-19) +(0.0009148432211219813 -0.0004321008037735025 -2.142509662148109e-19) +(0.001322295318009408 -0.000420511514092701 2.207093482138593e-19) +(0.001718073742146032 -0.0004068130239049476 4.983095369924874e-20) +(0.002100645192329505 -0.0003916892077529994 7.861287740770442e-20) +(0.002468997445868361 -0.0003756502051882175 1.625600487448993e-19) +(0.002822470632091281 -0.0003590635883466455 1.276566912861453e-19) +(0.003160685339617699 -0.0003421935793929165 4.643855665148316e-20) +(0.003483448229626095 -0.0003252205230449935 -9.178771051549658e-20) +(0.003790688874217812 -0.0003082614340198688 2.163392434494913e-19) +(0.004082419574882939 -0.0002913801725664048 2.171408515551574e-19) +(0.004358678340562339 -0.0002746000037238245 -2.089398316971913e-19) +(0.004619506102373314 -0.0002579059221600983 6.26840242136449e-20) +(0.004864908215926961 -0.0002412545187698594 -1.097118360514217e-19) +(0.005094848026874122 -0.0002245636984823029 -5.987752639923499e-20) +(0.005309172757824612 -0.0002077332255491318 -1.265360497557624e-19) +(0.005507653864508633 -0.0001906023335567982 -3.002638268628713e-20) +(0.005689831288060964 -0.0001730133737160379 3.463467781399619e-19) +(0.005855183201005538 -0.0001546704778174594 -2.028231630482353e-19) +(0.00600267149972022 -0.0001353634460394571 -1.665898348945967e-20) +(0.00613140874790901 -0.0001144905260665685 9.493936618373914e-20) +(0.00623915953686998 -9.185387596609051e-05 4.846041573039468e-20) +(0.006324795941464513 -6.601903039010076e-05 -5.092974058920736e-19) +(0.006383121208006684 -3.712602418592211e-05 -2.390214675052992e-19) +(0.00641384020624418 -1.130351221013665e-06 -1.865585550276254e-19) +(0.006403246726049002 4.031777133733026e-05 -2.741402247749432e-19) +(0.006356806007472177 0.0001000806835489305 -9.418635318103837e-20) +(0.006234710533465834 0.0001717047325913543 -1.614762505239266e-19) +(0.006068679103849177 0.0002996105073194502 1.142654146943855e-19) +(0.005743705468936144 0.000475697638463896 3.372967679493156e-19) +(0.005412750213076535 0.0008447397408739234 8.209559274417698e-19) +(0.005379729214681436 0.001331377534802692 3.932294868804271e-19) +(0.005568828903580508 0.001944728416868251 -3.105879135816299e-19) +(0.005979745904514525 0.002663397986060763 -2.457464166553921e-19) +(0.006620000514570063 0.003470460222055802 -1.088313879944463e-18) +(0.00746656422505625 0.00432570490591752 -3.783540751664037e-19) +(0.008470620917468327 0.005211738179611891 -2.867966685795617e-19) +(0.009570284778888615 0.00612626624786463 1.248751764613803e-19) +(0.01078882632113525 0.007155174971499438 -3.193613428775511e-19) +(0.01228890935710343 0.008315067119458898 -4.960245411496909e-19) +(0.01440806316334779 0.009574519548238642 -7.878265217686434e-19) +(0.01749982980249553 0.01049580782070192 -1.627560019075043e-19) +(0.0214390662433947 0.01036477797269183 -4.920491677961711e-20) +(0.02531511417449977 0.008194692842378464 -1.529282088618268e-19) +(0.02677371743453894 0.004293619391438913 4.759575493127154e-20) +(0.02572566099989128 0.001651488788688112 4.727622952342104e-19) +(0.02531460778490282 0.0006047792046615665 -4.290608619518959e-19) +(0.02485422760523014 -0.00104567646709426 -3.685706957357822e-19) +(0.0224347986624394 -0.003229801805091567 -2.60420041090722e-19) +(0.01704058173238964 -0.003865895399138073 -2.739263360123509e-20) +(0.01035369444111826 -0.00266466818906248 -5.579857951571189e-19) +(0.005001493707878783 -0.001173071250013986 -3.542019283018542e-19) +(0.001941843829663685 -0.0001672124572569333 -3.270866039831592e-19) +(0.0004680867011311276 0.0004114361444163928 -4.771029647063817e-20) +(-0.0003631542354544321 0.000836477145263449 6.408019777769643e-20) +(-0.000903090703769951 0.001138831802346597 2.27022256160876e-21) +(-0.001298232783456789 0.0013464201106259 -1.474838077032401e-20) +(-0.001599346693818247 0.00141914923841319 -5.046129021597562e-21) +(-0.001849294864091904 0.001334609702705265 7.497967177771075e-20) +(-0.0020494511996444 0.001086357144257242 5.698643394433586e-21) +(-0.002176571149005584 0.0007176151036130987 5.883231114116027e-20) +(-0.002203135136178061 0.0002866290037803787 1.651644932119508e-20) +(-0.002075119480497929 -9.377841483406592e-05 9.448672288282412e-20) +(-0.001828909656357095 -0.000269814788383123 -1.03477239581347e-20) +(-0.001528858080052768 -0.0003945206603681839 -1.270961328735635e-20) +(-0.001173406208485864 -0.0004690092818790834 -3.241140593037597e-20) +(-0.0007853850877573325 -0.0005154871051844266 7.943334589574269e-20) +(-0.0003762410394218393 -0.0005417312909392573 8.738943659781653e-21) +(4.335141086033841e-05 -0.0005538365335285203 1.966001722458819e-19) +(0.0004661441863582445 -0.00055577342238064 -2.784477788559873e-19) +(0.0008865206270851249 -0.0005503712022352921 -2.431982586017586e-19) +(0.001300479812668277 -0.0005397360836449054 -1.67474885471779e-19) +(0.00170504041726716 -0.0005253825116346276 -1.378661638055802e-20) +(0.002098098645161649 -0.0005084479575836365 -1.937836195913107e-19) +(0.002478177032901376 -0.0004897651730960491 4.205381209806057e-20) +(0.002844289771084666 -0.0004699540874702672 2.851149286721392e-19) +(0.00319578784834761 -0.0004494629084720572 2.201167725501285e-19) +(0.003532290059388147 -0.0004286133682119408 -1.867094594567085e-20) +(0.003853594168508526 -0.0004076255486507332 -5.88541693373926e-20) +(0.00415961606520646 -0.0003866419660247796 2.606476153266788e-19) +(0.004450351575138855 -0.0003657404234219284 1.188833719872222e-19) +(0.00472582151627355 -0.0003449485429498168 -3.986542268613495e-19) +(0.004986048774551183 -0.0003242474657217958 -2.384768953709314e-19) +(0.005231022559431736 -0.0003035821765273642 -1.796258000621359e-19) +(0.005460688741026788 -0.0002828518025199722 -5.324481850949604e-20) +(0.005674883274579587 -0.0002619292155237618 2.490627279464281e-19) +(0.005873360326608891 -0.0002406190938487755 -3.817280727271855e-20) +(0.006055660454803881 -0.0002187171352056602 6.128870379536928e-19) +(0.006221238410383136 -0.000195871321228425 -5.521110466165034e-20) +(0.006369089419948673 -0.0001717918446888961 -3.033232421832319e-19) +(0.006498270988487378 -0.0001457859214892603 2.18955749345761e-19) +(0.006606683083427354 -0.0001175089325116481 2.876208904905981e-20) +(0.006693017946758763 -8.53723879805762e-05 -1.736660862171478e-19) +(0.006752559443764241 -4.921016444974993e-05 -9.885153684835444e-20) +(0.006784388703818029 -4.701149114262186e-06 -1.900830432490962e-19) +(0.006776549162347284 4.723248963782083e-05 -1.769644631775879e-19) +(0.006732498298527674 0.0001198584245840354 -2.105032295649967e-19) +(0.006618753051528224 0.0002084769153576748 1.021472246383627e-19) +(0.006461441926425169 0.0003568361153960439 2.040527803977138e-19) +(0.006167229154136976 0.0005590794337606549 4.229768562957968e-19) +(0.005874132471429523 0.0009337200646189899 1.298757728915023e-18) +(0.005852358515953774 0.001423711201180477 3.807792829527821e-21) +(0.00605327521898779 0.002040703950885153 -5.302442606949078e-19) +(0.006480243606341195 0.002760686236454519 -2.83424459416516e-19) +(0.007137999665299936 0.003562895988427811 -6.952592949148275e-19) +(0.008000086232112421 0.004410176604664528 -4.416429167704157e-19) +(0.009018231386875004 0.005289690779107711 -5.600080325080329e-19) +(0.01014310841350458 0.006205973466710104 4.413270345725322e-21) +(0.01141043798152027 0.007230415490767782 5.242169931003817e-21) +(0.01298727353895271 0.008357758090740249 -2.789520896384218e-19) +(0.01517946920220964 0.009507912840062818 -1.994945586215048e-19) +(0.01825394846265304 0.0102312354452959 8.422975752478455e-21) +(0.02198603869399381 0.009882017708408916 9.137082179429816e-20) +(0.02546612635138249 0.007744359212911159 -6.677262614326404e-20) +(0.02681024459254947 0.004256815149393326 4.107261355835079e-19) +(0.0260514358265743 0.001800295016351619 1.866527796617732e-20) +(0.02575398340515658 0.0007052014332290949 -2.288255552725003e-19) +(0.02531424027283517 -0.0008100406973051923 -1.105427905088242e-19) +(0.02337869241622894 -0.002739028836859619 -1.096458235537089e-19) +(0.01905472432060315 -0.003640837233792125 1.77305475641195e-20) +(0.01311479990352177 -0.003000945159581785 -5.033004637011373e-19) +(0.007528630435714985 -0.001747344451175263 -2.708806274746476e-19) +(0.003736191439622194 -0.000691269431680654 -3.813478136016562e-19) +(0.001648240103350681 1.689741036812113e-06 -8.444237136587379e-20) +(0.0004637980045643013 0.0005161238091507037 5.008593554556771e-20) +(-0.0002819699872366245 0.0008881210210819824 1.039045193409813e-20) +(-0.0007976078384113582 0.0011434943602564 1.22606552263607e-20) +(-0.001163145833832797 0.001253014835709402 -3.793597322321462e-21) +(-0.001438893256769239 0.001198735439618809 1.159300388937415e-20) +(-0.001642507105486264 0.0009758917684122275 -5.072230521167874e-20) +(-0.001761445300560077 0.0006264942274389227 2.472980919773361e-20) +(-0.001767011439840384 0.0002096462180329478 6.115765182597213e-21) +(-0.001593394797225101 -0.0001671704720266258 3.653661940917423e-20) +(-0.001310333501137182 -0.0003623964344683496 1.148002675848959e-20) +(-0.0009969770249762104 -0.0005019174228588712 6.204156471957743e-21) +(-0.0006357765971759515 -0.0005884281967359439 2.453417766644036e-20) +(-0.0002482071167364978 -0.0006424408726733892 8.266513736485885e-20) +(0.0001572316262284545 -0.0006730401310562243 1.300933511355449e-19) +(0.0005711899881760519 -0.0006869519005057442 8.632751598008457e-20) +(0.0009873074164038701 -0.0006887997567129387 -1.138733303456899e-19) +(0.001400532685751717 -0.0006818929427197689 -2.919562675956566e-20) +(0.001807203480268374 -0.0006687088644444058 -9.914161131582164e-20) +(0.002204576895777429 -0.0006510472718561424 -1.753587363561653e-19) +(0.002590697799463193 -0.0006302647887319808 -4.803065159679642e-20) +(0.00296418143213653 -0.000607361294837774 1.279944432883199e-19) +(0.003324091849216914 -0.0005830805961458346 1.177885205193924e-19) +(0.00366980468751391 -0.0005579626712385157 -1.170472375859436e-19) +(0.004000944059443597 -0.0005323948677336521 -1.610574798523947e-19) +(0.004317301314058717 -0.0005066428373788737 -5.95183963921862e-20) +(0.004618778097034233 -0.0004808783836497683 -1.441907752871374e-20) +(0.004905351069811574 -0.0004551953603416524 3.332713967655782e-20) +(0.005177020050185155 -0.0004296262853287006 -4.418511999565432e-19) +(0.00543378553893286 -0.0004041477459702925 -3.047990839455665e-20) +(0.005675616096603495 -0.0003786908635701215 -1.846413920467355e-19) +(0.005902436035751802 -0.0003531328561216777 -6.213073776461412e-20) +(0.006114066554373201 -0.0003273143853595166 3.391142967114546e-19) +(0.006310242611742073 -0.0003010002117706414 -1.006995291930363e-19) +(0.006490504304124324 -0.0002739294422156124 2.511731211693363e-19) +(0.006654285739754106 -0.0002456869218020616 6.409115109991919e-20) +(0.006800618650761599 -0.0002158839272445808 -3.034613881026172e-19) +(0.006928518448730737 -0.0001837315885471118 6.758000781704815e-20) +(0.007036030933153896 -0.0001486957339662361 -8.486656283413817e-20) +(0.007121707411333738 -0.0001090475061387251 -9.720826362895567e-20) +(0.007181338340900907 -6.420640948098584e-05 -2.240058539125079e-20) +(0.007213498791604261 -9.685275299514725e-06 -4.914665560193088e-19) +(0.007208034954907504 5.460620108045818e-05 -2.12539940329091e-19) +(0.007166758371023017 0.0001418210641470876 1.070947003875559e-20) +(0.00706244015139189 0.0002497188387649074 -3.472763625353958e-19) +(0.006916622627640471 0.0004192812780311358 -4.473585421280065e-20) +(0.006654865775449465 0.0006482362833641117 6.847625653709571e-19) +(0.006402794382353554 0.001028709178430592 3.465222439420336e-19) +(0.006399270914662776 0.001522030034053132 -2.898293337286241e-19) +(0.006618089451075677 0.002139776969879058 3.165169983215035e-19) +(0.007064962194686742 0.002856768733766676 -4.878022378821492e-19) +(0.007742481930844323 0.003649321489059984 -2.876505314483402e-19) +(0.008621473009095557 0.004484090181499733 -5.818553959395247e-20) +(0.009656085139766901 0.005352369920984152 -2.549569611570802e-19) +(0.01081021356202726 0.006263093520407839 5.716197666037181e-19) +(0.01213168295063822 0.007269382829669205 2.006188578114127e-19) +(0.01378633510899535 0.008341389005288313 -1.277019853537749e-19) +(0.01603876227373037 0.009352818163400597 -2.766528365410588e-19) +(0.01906002268585043 0.00985902486459656 -2.240063051832245e-19) +(0.02253976141310814 0.009308194503200086 9.92820499865917e-21) +(0.02561068783687924 0.007247538284043936 1.722612398258381e-20) +(0.02684100996082638 0.004190735958367209 1.133178777824995e-19) +(0.02634169076319682 0.001935700256530363 1.405185121318867e-20) +(0.02615912645852789 0.0008105747110087609 -2.880609847354167e-19) +(0.02574417051781003 -0.0005716080757886676 -1.124279041483773e-19) +(0.02420532746481922 -0.0022357671482358 1.847774007704268e-19) +(0.02086317816949648 -0.003258699671909602 5.067441843395807e-19) +(0.01592556339343117 -0.003122571945007245 -3.153823835840398e-19) +(0.01056293234636915 -0.002248677370603736 -2.030505912325572e-19) +(0.006243829006860989 -0.001278901415024374 -1.16389660855897e-19) +(0.003456118194038752 -0.0005235539721959767 -8.177594594050307e-20) +(0.001763671327989112 7.305899977416595e-05 3.649080071229005e-20) +(0.0006926380511835841 0.0005262142398446901 3.599509184742934e-21) +(-2.366942371056836e-05 0.0008445921623985989 9.253477728677645e-21) +(-0.0005044718122845838 0.001004910344036927 5.815818237849065e-21) +(-0.0008333794345209297 0.0009933282843332578 -4.865774661805185e-21) +(-0.00105116076360628 0.0008077861796592186 -5.496488337148138e-20) +(-0.001163141832383288 0.0004884578743461806 6.222899094167078e-21) +(-0.001144662631788608 9.381072569565445e-05 -8.068778661277172e-21) +(-0.0009200334073853882 -0.0002743234080567201 5.302855352430657e-20) +(-0.0005966766789042361 -0.0004846074039709201 4.749190930300979e-20) +(-0.0002687721434449691 -0.0006363249132484847 4.241437839000331e-20) +(9.678157289386629e-05 -0.0007340591305115345 7.497357658279458e-21) +(0.0004808807927955071 -0.0007951336655326107 2.467687393898352e-19) +(0.0008782662214559559 -0.0008297905822238094 1.182493767169111e-19) +(0.001281521293982688 -0.0008451839697970034 1.090593547028808e-19) +(0.001685413430698172 -0.0008465454322910762 -1.40431740095025e-19) +(0.002085691613614759 -0.0008376522547638024 -8.14009761427179e-21) +(0.002479200791627907 -0.0008213566769659788 -1.325142036638243e-20) +(0.002863550957529989 -0.0007997580268182043 6.793950603502689e-20) +(0.003237011090115236 -0.0007744439782158988 4.432212247965429e-20) +(0.003598338629402693 -0.000746593227595485 3.999072908367747e-19) +(0.003946678895816013 -0.0007170834552273014 8.420109717501844e-20) +(0.004281450552029158 -0.0006865548865871924 -1.301504296897978e-21) +(0.004602292270607673 -0.0006554669385034294 -4.443729099593762e-19) +(0.004908992041767304 -0.0006241355966741835 -1.151512729343657e-19) +(0.005201436090810376 -0.0005927650236005128 -2.578828015406337e-19) +(0.005479577918101676 -0.0005614667593996913 9.295918693126446e-21) +(0.005743390731669292 -0.0005302783988815643 -5.285873650221934e-19) +(0.005992846296286267 -0.0004991709364831805 2.139077010138211e-19) +(0.006227885835674849 -0.0004680590790834978 -1.264862808206083e-20) +(0.006448405976576715 -0.0004367945941051826 7.985516953299807e-20) +(0.006654207630005316 -0.000405180284589299 1.899325079598437e-19) +(0.006845003185858319 -0.0003729349773211752 5.028386364253569e-20) +(0.007020329681822372 -0.0003397310366533023 5.269096694779628e-19) +(0.007179603450139797 -0.00030508203186746 1.005436271834705e-19) +(0.007321895105373174 -0.0002684817611638614 3.392615594169457e-19) +(0.007446194936706855 -0.0002290380130483316 2.179743111795939e-19) +(0.007550704432346042 -0.0001859892657925977 -3.288555380284089e-19) +(0.007633887491084587 -0.0001374756110815399 -1.395313965739937e-19) +(0.00769206223568315 -8.24168468268213e-05 -1.453468052181037e-20) +(0.007723458918533548 -1.626211153646324e-05 -8.402139996444083e-20) +(0.007719733840669789 6.228446633678531e-05 -3.0117663600191e-19) +(0.007681510192897452 0.000165774915923353 -2.66981647654567e-19) +(0.007587505561284752 0.0002948320851307625 6.177676929298696e-19) +(0.007455808733782677 0.0004859178381152972 2.979999765982871e-19) +(0.007227444373093029 0.0007410385336205236 3.460994791648377e-19) +(0.007018426022847142 0.001127728245598279 -1.420106032271918e-19) +(0.007040221188462097 0.001624115765741539 -1.67011184358582e-19) +(0.007283638200094096 0.002239534364574412 -3.000196870688805e-19) +(0.007754945556608686 0.002948797881301467 -1.504886683484588e-19) +(0.008455044102623226 0.003726488367748771 -9.875449420101668e-20) +(0.009353205163597099 0.004543590663727702 1.988785365324114e-19) +(0.01040796464428357 0.005394529624058234 -9.870374413950909e-21) +(0.01159642592359821 0.006289161902553872 5.546299251747296e-20) +(0.0129762668960355 0.007258760339275535 2.511986547227789e-19) +(0.01470416066477361 0.008247406438951785 -1.646616710815316e-19) +(0.01699276724110104 0.009089906484516123 2.132956695477439e-19) +(0.01991366003037848 0.009368292040974897 -1.105938338148227e-19) +(0.02309534325408687 0.008647630725161363 -6.929285774981268e-20) +(0.02575706351628525 0.006712045582770413 -7.353193121456836e-20) +(0.02687966858928285 0.004089960895915338 -3.701420681191578e-20) +(0.02661027340139912 0.002051238813782591 -6.105216453159293e-20) +(0.02654463643436163 0.0009186416443052966 -7.825637383209703e-20) +(0.02616563811760421 -0.0003342747712092092 2.791257779041689e-19) +(0.02494624154776484 -0.001749818484774119 3.314440225156542e-19) +(0.02242573049686748 -0.002773920593156187 1.807807385883851e-19) +(0.0185799214519462 -0.003005503916250347 4.110013516295841e-20) +(0.01389321949767695 -0.002562644835302997 -6.371342948211134e-20) +(0.009467416778583072 -0.001827953357684777 -3.7805499856965e-20) +(0.006083343004050258 -0.001119646330551816 -3.805393965595684e-20) +(0.00377202795131182 -0.0004918211312885221 -9.91632917785097e-21) +(0.002230354932191383 2.977654796745862e-05 2.995255548021362e-20) +(0.001192972086459287 0.0004192510580972488 -4.556791205781464e-21) +(0.0005107964209084282 0.0006448668893488581 -1.863018308599917e-20) +(7.549853199832746e-05 0.0006912880774470262 -6.540822710015293e-21) +(-0.0001828522379402015 0.0005583805503033004 -1.592522356778517e-20) +(-0.0002967360305665314 0.0002838136685743167 -5.450774615742369e-21) +(-0.0002544587588824826 -7.702754096979933e-05 -5.32416293272217e-20) +(2.44471982317685e-05 -0.0004283026769696754 2.435458198202068e-19) +(0.0003892644321065773 -0.0006455828607261384 1.181890660483552e-19) +(0.0007319158375998411 -0.0008041572481006168 1.130090575139396e-19) +(0.001098461314674371 -0.0009103823750076868 5.682514139933762e-20) +(0.001474259856643376 -0.0009767747033184312 4.714319788245819e-20) +(0.001857201105611944 -0.001014322153931208 -2.333669456677063e-21) +(0.002242438855029893 -0.001030335796840762 1.675925574959544e-19) +(0.002626252640359671 -0.001030464369127566 1.703733226641744e-19) +(0.003005478645234007 -0.001018886161500746 1.81380305003394e-19) +(0.003377673673966548 -0.0009987867713748498 2.240193451514756e-20) +(0.003740938029100729 -0.0009725473841306122 3.791600404256457e-19) +(0.004093857188022703 -0.0009419776221537272 3.681385473415774e-19) +(0.004435391180785721 -0.0009084323790552439 1.365934837318871e-19) +(0.004764804338531005 -0.0008729236865278495 2.639692163032474e-20) +(0.005081579771010047 -0.0008361940319482849 3.634177154241663e-20) +(0.005385380655663233 -0.0007987771261686949 -3.058821134733927e-19) +(0.00567599367650669 -0.0007610411949375072 -2.39765889644249e-19) +(0.005953286496354291 -0.0007232240049316527 2.521849348489371e-19) +(0.00621718277697374 -0.000685455176539837 1.851909951238707e-19) +(0.006467620478035007 -0.0006477767821769348 -3.432017268031421e-19) +(0.006704533121914659 -0.0006101526410187141 -6.608875972700592e-20) +(0.006927824785744155 -0.0005724782119606691 2.885560269304989e-20) +(0.007137355338744365 -0.0005345759167255528 3.574364195108107e-19) +(0.00733289721065628 -0.0004962051143986902 3.798434596100972e-19) +(0.007514134927171314 -0.0004570322442007744 3.493600713815034e-19) +(0.007680598110713342 -0.0004166535751777167 8.791396120037208e-19) +(0.007831688375234373 -0.000374502379065403 8.429798181589129e-20) +(0.007966517213817269 -0.0003299397714975789 4.477717259854784e-19) +(0.008084071494539788 -0.0002819605813892221 1.694844447495238e-19) +(0.00818271901368867 -0.0002295508270274917 3.275577735981078e-20) +(0.008260905378004425 -0.0001707219345355938 -7.600035655658672e-20) +(0.008315493426430384 -0.0001038552021439527 1.911698835032559e-20) +(0.00834456753321468 -2.441380570504595e-05 -1.627096415926344e-19) +(0.008341552240364177 7.0138587966578e-05 4.582811719721905e-19) +(0.008306398840499425 0.000191382540271538 -2.859866275638146e-20) +(0.0082232194319293 0.0003427505980485392 -4.093780985939987e-20) +(0.008107790800699306 0.0005551147632264216 2.012465717057937e-19) +(0.007912896995738605 0.0008345583951639018 7.321910975594466e-19) +(0.007747736826983258 0.001227628643633015 3.59206944620185e-20) +(0.007801329143405328 0.001726067418304858 -1.468556489019076e-19) +(0.008075928484196472 0.002335601989622854 5.497551156364765e-19) +(0.008576431439294385 0.003031787490493655 1.796439007690714e-20) +(0.009302247597525381 0.003788731430261789 3.130458265310118e-19) +(0.0102225451557961 0.004581734529700341 -5.804773438345672e-19) +(0.01130182154011831 0.005406624596661509 1.475814923563918e-19) +(0.01252914413326335 0.006269909287049677 1.015350707748942e-19) +(0.01396733512417368 0.007178529315025885 -9.445006832667087e-21) +(0.01575402164013228 0.008051643043973832 -6.504377504517567e-20) +(0.01804040375785625 0.008698679473180315 1.863058757067653e-19) +(0.02080433487103529 0.008752810222102317 -5.536406236551439e-20) +(0.02364801390833169 0.007910564536376756 -1.190617637913646e-19) +(0.02591622139568796 0.006146810576406943 -7.598493404814476e-20) +(0.02694002866080699 0.003948123867670129 -3.609990911475131e-19) +(0.02686777649284323 0.002138648473211106 3.637057276511536e-20) +(0.02692211596493239 0.00102389630915316 1.105590981178761e-19) +(0.02659453954789799 -0.0001025892694065405 5.594917813513534e-20) +(0.02563476080543704 -0.001299991833556341 2.785075700610571e-19) +(0.02375211435167267 -0.00225162242745424 2.914600292272468e-19) +(0.02091009056716632 -0.002688603478248176 1.585453724882788e-19) +(0.01719285671696985 -0.002614291581636591 -5.173900221590765e-20) +(0.01318461097095379 -0.002199374959426784 -4.105323648782582e-20) +(0.009575184121506106 -0.001669767593871223 -8.035908568277736e-21) +(0.006717646802522515 -0.001115157055801415 -1.784261117566186e-20) +(0.004608398884279614 -0.0005878489945312253 1.77927541522372e-20) +(0.003112660032621138 -0.0001486257176085704 -4.330023607628511e-20) +(0.002105064872825161 0.0001447844543775027 -1.915393090921281e-20) +(0.001471406094288916 0.0002619348702169835 -8.516195608515383e-21) +(0.001116747723276656 0.0001987228173172744 -4.768768209917335e-21) +(0.0009739686085020609 -1.264439400000825e-05 -1.452029639104514e-21) +(0.00103122444461917 -0.0003233377709465733 -6.296168829316564e-21) +(0.001358868135677458 -0.0006436370785189859 3.597397893701888e-20) +(0.001760368162632547 -0.0008557170288978515 -2.00145097196346e-21) +(0.002113873256482119 -0.001011986063643955 1.31058416655723e-20) +(0.002473991478113176 -0.001120768062566683 1.846701202623995e-19) +(0.002832823912767235 -0.00118879870073006 2.164964362950782e-19) +(0.003191186715811742 -0.001226707817828419 -1.323385258743312e-19) +(0.003547458068712948 -0.00124162822870769 1.985855956309631e-20) +(0.003899820017566652 -0.001239271325321144 2.985050767393673e-20) +(0.004246486142948654 -0.001224034632634089 1.059318518001852e-20) +(0.004585939574527188 -0.001199320400033281 3.864406623508299e-20) +(0.004916914457653921 -0.001167718829838939 3.937234140640144e-19) +(0.005238409455555633 -0.001131215499892776 -1.920985843716066e-19) +(0.005549648829619114 -0.001091312994328352 2.120976723039215e-19) +(0.005850052807325598 -0.001049140497666644 -1.17286139102103e-20) +(0.006139187896072459 -0.001005532520961394 2.359193452012949e-20) +(0.006416747852338852 -0.0009610911043266277 -2.734840896948557e-21) +(0.006682515592687587 -0.0009162331460240402 -4.888609416822541e-19) +(0.006936331991954954 -0.0008712276615693816 1.24714323054441e-19) +(0.007178078973239263 -0.000826220458815206 3.953469500815297e-19) +(0.007407645455872001 -0.0007812561588704498 7.825246132958862e-20) +(0.007624912289998204 -0.0007362890592394159 -4.471360298405034e-20) +(0.007829731945436538 -0.0006911923609095168 1.942322213043961e-19) +(0.008021914385089715 -0.0006457552447311439 4.13601395208748e-19) +(0.008201191797371931 -0.0005996887582330907 1.805108898715356e-19) +(0.00836721296437816 -0.0005526008805394635 4.2489128717544e-20) +(0.00851949382839806 -0.0005040046797368312 6.008980978586109e-19) +(0.008657424351917508 -0.0004532446581274639 -9.580133625149756e-20) +(0.008780159191804065 -0.0003995405757017237 2.370949541189634e-19) +(0.008886708338112151 -0.000341764915045398 1.236309932771778e-19) +(0.008975618771774363 -0.0002786463020239341 2.994537651722609e-19) +(0.00904540043105044 -0.0002080670961919936 -4.318310149929803e-19) +(0.009093474404682549 -0.0001278957317649173 4.715673629712858e-19) +(0.009117999883491141 -3.366248888581634e-05 -6.802892618693098e-19) +(0.009114075604890278 7.825194937469558e-05 -1.30253596600904e-19) +(0.009081498004375091 0.0002182423091337291 -4.466633207104613e-19) +(0.009009009499261507 0.0003920085499708135 -6.235083080665419e-19) +(0.008911093340278958 0.0006245997235095235 -1.053221487876285e-19) +(0.008748766468262018 0.000925102983315247 -6.808783459666916e-20) +(0.008626956878739787 0.001323890638868729 3.624193563628253e-20) +(0.008717397434617427 0.001822025173719146 -4.37117491079782e-19) +(0.009028636795828385 0.00242116024949879 -5.211406872259856e-21) +(0.009562501826415727 0.00309791604693074 -4.892665313859886e-19) +(0.01031687881949326 0.003826941345700605 -9.125137124102458e-20) +(0.01126216209603601 0.004587043884818704 2.948935998062312e-20) +(0.01236932170097431 0.005373044402882225 3.191822142580653e-21) +(0.01363632449527378 0.006183825116357034 1.667566505197278e-19) +(0.01512397258091861 0.007001916503285058 -2.95091212582515e-19) +(0.01694060129514326 0.007726930310828502 -2.133310304826262e-19) +(0.01917120042884906 0.008162579917495322 2.372758708633337e-20) +(0.02171783470765739 0.008015789571755834 -4.11979987422684e-20) +(0.02419713730691809 0.007114116597278983 -1.41688272085812e-19) +(0.02610338603721095 0.005561145391761895 1.085660224557683e-20) +(0.02703731453892093 0.003759287929799412 -1.113917361753375e-19) +(0.02712465697285509 0.002188256358316046 2.245826788403727e-19) +(0.02730290706230559 0.001116907085056354 1.430437798989738e-19) +(0.02704237269444079 0.0001163601414805658 8.948418537774867e-20) +(0.02629903048909493 -0.0008949480452058156 3.565141538458459e-20) +(0.02489208785183282 -0.001745039149416497 3.991407619154605e-20) +(0.02284843841281105 -0.002257632240267294 1.920661430656699e-20) +(0.02013738110201699 -0.002418677278047901 -5.226395001788512e-21) +(0.01695055494341278 -0.002294444488861058 -2.578389818882609e-20) +(0.01365958681364791 -0.00201441085522552 9.584694971487598e-20) +(0.01062698375732306 -0.001645311642394914 -1.370881515818143e-19) +(0.00806358076788892 -0.001225408468534561 -6.379146164457241e-20) +(0.006053707286050584 -0.0008146820525253122 6.079231569947055e-20) +(0.004599666691674005 -0.0004899312043501712 3.33629197202172e-21) +(0.003643904492987966 -0.0003087894977228836 -2.95448261489651e-20) +(0.00309731393802474 -0.0002931145725377625 -1.282287761200234e-20) +(0.002865198087659948 -0.0004237002956593765 -2.493576542594319e-21) +(0.002905472884609247 -0.0006636645553533162 -6.201758272675668e-21) +(0.003259327304869177 -0.0009330306162216863 1.302305524499611e-19) +(0.003679417639710718 -0.001122218518181159 -5.420685402461268e-20) +(0.004028577967530255 -0.001262863263660645 9.887413084213222e-20) +(0.004366275177766008 -0.001364260354154281 3.004512536264876e-20) +(0.004692249237008567 -0.001427602252166849 2.997136282336853e-20) +(0.005009630068141518 -0.00146157294420937 -3.449083445872641e-20) +(0.005320329862038139 -0.001472608678243447 1.216739549807306e-19) +(0.005624700562393642 -0.00146594163421222 6.504882568560151e-20) +(0.005922511989113502 -0.001445843905767803 3.396244980437515e-20) +(0.006213327329482239 -0.001415709581050455 2.519016519855791e-19) +(0.006496617261188211 -0.001378183509691883 1.766695885365026e-19) +(0.006771861345023737 -0.001335324692925123 1.960652341224976e-19) +(0.007038587663196892 -0.001288714907837286 -2.156671682244707e-19) +(0.007296391760643712 -0.001239555470678439 -7.91092032838827e-20) +(0.007544927979162724 -0.001188743326893486 -4.142243304558261e-20) +(0.007783914273043061 -0.001136929835170852 -1.51477723771445e-19) +(0.00801311610292788 -0.001084568258382449 6.006824284269916e-20) +(0.008232329390001566 -0.001031950941858182 2.391000052450763e-19) +(0.008441373348986795 -0.000979234590916039 3.334865919174556e-19) +(0.008640065999740801 -0.0009264626513576597 1.564458688575091e-19) +(0.00882821387646324 -0.00087357685472125 -1.765901385553714e-20) +(0.009005597127886931 -0.0008204254518682596 -7.661550924340876e-20) +(0.009171957273823387 -0.0007667613635475132 2.779530192182877e-19) +(0.009326970223410226 -0.0007122444128151322 1.612841960264789e-19) +(0.009470238011426536 -0.0006564201968969643 2.689965706646413e-20) +(0.009601254699510323 -0.0005987159175686522 -7.53784671524639e-20) +(0.009719401550144719 -0.0005383827172827606 -5.205854846463411e-20) +(0.009823879734723736 -0.0004745006517222363 7.819219393711965e-20) +(0.009913752697252353 -0.0004058171875691764 4.307678438804307e-19) +(0.00998776278145797 -0.0003308252167024209 1.811610971967942e-19) +(0.01004457362600562 -0.0002472876132907269 -4.361589802440317e-20) +(0.0100821739257927 -0.0001526563892521908 -7.139767386486931e-20) +(0.01009901202051184 -4.257728141576981e-05 -9.497897134926776e-20) +(0.01009171700007206 8.731990364696374e-05 -7.037034918412794e-20) +(0.01006037373284672 0.0002461650226169941 -1.710670006535225e-20) +(0.009997460482628078 0.0004410233286174214 -2.463681391914761e-20) +(0.009916941738156009 0.0006916076897373264 -6.287941065804115e-19) +(0.009785144001666347 0.001008372588705073 -1.211213507649076e-19) +(0.00970470307147831 0.001410591355313024 -1.107740210352232e-21) +(0.009834607724778644 0.001904086782223496 -3.903430318788382e-20) +(0.01018550760761688 0.002486622423878294 -8.752046984698108e-21) +(0.0107549365369807 0.003135860306260191 -4.705317509363042e-20) +(0.0115389949509224 0.003827439778291651 -1.075311011481322e-19) +(0.0125098967694075 0.004542057868122387 1.899151982547421e-19) +(0.01364385774349307 0.005270924747576655 1.168928794034884e-19) +(0.01494266260098553 0.006002449146495877 2.52175230622221e-19) +(0.01645662297623321 0.006698487356573306 -1.538193522697676e-19) +(0.01825711949034771 0.00724961314915409 -1.611294125612188e-19) +(0.02036701380317017 0.007476698511308838 1.025405583188531e-19) +(0.02264203197257621 0.007174281209775941 2.529484947232243e-20) +(0.02475106549072871 0.006281643018405798 -1.764994624244766e-19) +(0.02633912820397775 0.004963987823784658 -1.523187414540828e-19) +(0.02718932838942781 0.003519710277781945 -3.988970926089103e-19) +(0.02739449352656294 0.002190078878616122 3.285999184600506e-20) +(0.02770145066334515 0.001184824443159523 4.139794807708585e-20) +(0.02751900481451399 0.000311947103835716 1.464670442541605e-19) +(0.02695957998552725 -0.0005389076227493041 -2.990866229775401e-20) +(0.02590949635541466 -0.001283188406157853 -2.122502203798818e-20) +(0.02443999195784065 -0.001799724531263354 1.756880097392779e-19) +(0.02255539352538237 -0.002072477753883971 1.667444697067289e-19) +(0.02028964929554184 -0.002133814560854506 2.371317184501967e-20) +(0.01774250867705533 -0.002063979918537063 -1.750073884300805e-19) +(0.01508265363445246 -0.001909430899183966 -1.388704693455981e-19) +(0.01249799817008678 -0.001684866679214875 7.235998497686495e-20) +(0.0101877849543102 -0.001414055167072772 9.380988438263422e-20) +(0.008313801627835665 -0.00115248233739553 3.878373025591925e-20) +(0.006956487444888617 -0.000964802585306605 -1.163700695202493e-20) +(0.006106833385873582 -0.0008937563338385486 -7.993524145625287e-20) +(0.00568751013050412 -0.0009431856434280404 5.525818394504321e-20) +(0.005640444803627385 -0.001096255751537224 6.662477683389826e-20) +(0.005965075182551269 -0.00129174299013662 1.497610628803284e-19) +(0.006358791466819364 -0.001437665337191673 8.64747439913736e-20) +(0.006668495089531875 -0.001546614975446486 2.563457350011786e-21) +(0.006952903634997941 -0.001627620638813085 3.249080416455411e-20) +(0.007218635222379297 -0.00167768099974794 1.639930332109151e-20) +(0.007469558946681542 -0.001701976818694299 3.162102040497042e-20) +(0.007710495845954161 -0.001705546657105274 1.47515709386264e-20) +(0.007943833718122245 -0.001692505109885114 -6.585470844954611e-20) +(0.00817075720875333 -0.001666489137080358 3.205748912381166e-19) +(0.00839186347892266 -0.00163054392782548 2.31676965375008e-19) +(0.008607335886449574 -0.00158712368066981 4.786189142511694e-19) +(0.008817116444665063 -0.001538189879240895 5.26901157431504e-19) +(0.009021017643627992 -0.001485285255285829 1.502252540749901e-19) +(0.009218788386916104 -0.001429602608618936 6.305945871567709e-21) +(0.009410145693877091 -0.001372046508976371 4.73873085098328e-20) +(0.009594803096886885 -0.001313281360625252 9.132484806379367e-21) +(0.009772478137223652 -0.001253773152295882 1.726096923597522e-21) +(0.009942890171352017 -0.001193822628317609 1.080789968298685e-20) +(0.01010576406560909 -0.0011335883054522 -5.338321210657389e-20) +(0.01026081629525803 -0.001073107283448476 4.093533785732071e-19) +(0.01040775041927594 -0.001012306004728949 -1.697761430949943e-19) +(0.01054624781475135 -0.0009510068695071935 -2.23454118058442e-19) +(0.01067595866605849 -0.0008889265089820557 2.769241557581505e-19) +(0.01079648346633545 -0.0008256750105390597 1.022753189151441e-19) +(0.0109073646294593 -0.0007607372194852314 3.869650986997814e-20) +(0.01100806576445053 -0.0006934598646345961 -3.835192777352607e-19) +(0.01109796297836276 -0.0006230056756048569 -1.776573924627158e-19) +(0.01117630966076968 -0.0005483320718657124 -4.827105238873814e-20) +(0.01124225492674274 -0.0004680757907219153 1.464851951353371e-20) +(0.01129475573554906 -0.000380547496237973 7.172065096699233e-20) +(0.01133271407110226 -0.0002834285511479257 -2.720879914152773e-19) +(0.01135468839269434 -0.0001739154184286487 -5.412907244436152e-19) +(0.01135958876266535 -4.784378250741608e-05 -1.407500880687194e-19) +(0.01134539216020508 9.946490336475406e-05 -3.62168462717828e-19) +(0.01131276996745521 0.0002758670238274816 -1.893583513797379e-19) +(0.0112570305754197 0.0004887696923943313 -6.755381433749007e-20) +(0.01119206662514524 0.000753425008711926 -4.804826878770188e-20) +(0.01108748386257992 0.00107990430658094 -8.018414056428054e-21) +(0.01104468958693789 0.00148078682449436 1.497502625535193e-20) +(0.01121309342814648 0.00196264912762093 4.11499851651725e-21) +(0.01160256905375499 0.002519768433038652 -5.242217436332463e-22) +(0.01220562843208938 0.003130579512733903 -6.219152042565694e-21) +(0.01301595571878033 0.003771515018062976 -8.032541126104112e-21) +(0.01400686101182311 0.004423256409262116 2.882402340185491e-21) +(0.01515667164847351 0.005071719319552242 -1.799209641688375e-19) +(0.01646475450820825 0.00569509350997936 1.617770248269955e-19) +(0.01796377928163442 0.006242737357662769 1.72702973701911e-19) +(0.01968677860228995 0.006610502634038077 -8.646950025414541e-21) +(0.02160934603678807 0.006656288326570789 -3.216601806235275e-20) +(0.0235757354860602 0.006260973638271211 5.672663208636831e-20) +(0.0253313005402218 0.005440308973545534 2.80024359295472e-20) +(0.02664963813774063 0.004363723380485426 1.374889454571263e-19) +(0.02741752046216157 0.003229678786034316 7.115523347031016e-20) +(0.02769694711950427 0.002135793740005696 -1.364697453532666e-19) +(0.02813835050076149 0.001213753528290118 3.627517476383126e-20) +(0.02803615633219328 0.0004707993110097511 -3.122665533128965e-21) +(0.02763258985775176 -0.0002376208090772551 -9.043091771375055e-20) +(0.02685875309756908 -0.0008770612140545433 9.474807306930511e-20) +(0.02579186474730942 -0.001366589740223382 1.507419391840916e-19) +(0.02448470594926356 -0.001681858275829949 3.047384131164277e-20) +(0.02296546557552859 -0.001835969982698677 -8.968401981416197e-20) +(0.02123520875352974 -0.001884799282540584 -1.701509636910508e-19) +(0.01930564300078836 -0.001873752469771941 3.844548325258304e-20) +(0.01722289178707861 -0.001820312078543029 2.762794326787066e-19) +(0.01511546383083831 -0.001726385520503384 1.95748074723376e-19) +(0.01317069082585562 -0.00160914495514383 -1.033840470153036e-19) +(0.01157057326082605 -0.001505271387070788 -1.598206048759606e-19) +(0.01042728601272934 -0.001452743502864832 -4.502691956861474e-20) +(0.00975067886457816 -0.001468772329704661 -6.921031957274777e-20) +(0.009519949126601193 -0.001551652308098781 -1.146978867925021e-20) +(0.009716952152065469 -0.001666154219796988 7.59027175120208e-21) +(0.0100030202456998 -0.001756206274484116 7.91074701554126e-20) +(0.01021321489942704 -0.0018216265362859 -3.41929391956209e-21) +(0.01039636565407028 -0.001870863650240819 2.102824621507864e-19) +(0.01056257880492504 -0.001899724112025444 9.44183416287139e-20) +(0.01071359887133996 -0.001909352176860296 1.759149910679814e-19) +(0.01085490493172847 -0.00190270349983179 9.586466478790492e-20) +(0.01098996899879745 -0.001882287232892265 1.191499611810581e-20) +(0.01112069326935548 -0.001850562223505065 -8.136005106857609e-21) +(0.01124828761779936 -0.001809820468553323 -1.128428756470558e-19) +(0.0113734049320697 -0.001762029227940066 1.727805736999449e-19) +(0.0114962960676041 -0.001708836046942422 1.569465276865949e-19) +(0.01161695726104432 -0.001651590970846394 5.462104855222978e-20) +(0.01173522247861597 -0.001591371638133028 -4.550771110626613e-20) +(0.01185082131544496 -0.001529016565669995 2.780328678345282e-19) +(0.0119634227283468 -0.00146515375215964 1.298220510856598e-19) +(0.01207266224972919 -0.001400229572188042 1.975895139878262e-20) +(0.0121781524197274 -0.001334533118152298 8.321259919273862e-22) +(0.01227949613100615 -0.001268213370298708 1.910530657095917e-21) +(0.01237628345816918 -0.001201295957965272 -6.111268621279247e-21) +(0.01246809273716938 -0.00113369134643759 1.042583201456209e-19) +(0.01255448732512688 -0.001065199065173841 -1.355929185932999e-19) +(0.01263501034607961 -0.0009955051073986068 -3.572554445378866e-19) +(0.0127091754126714 -0.0009241789381117423 -5.087255296765991e-19) +(0.01277645976430571 -0.0008506562689913386 -3.914451489495106e-19) +(0.01283629595435379 -0.0007742216369639426 -4.050345874826403e-19) +(0.01288806503965206 -0.0006939711230709747 -1.56803297428347e-19) +(0.01293108574655963 -0.0006087784065666292 -5.520543666814134e-19) +(0.01296462698787128 -0.0005172124491037446 -8.446573121053445e-20) +(0.01298788236149293 -0.0004174915880327918 -2.64180388745501e-19) +(0.01300006035036484 -0.0003072993028495351 -2.573557216702564e-20) +(0.01300027925453897 -0.0001837867004464915 -4.466979745397546e-19) +(0.01298801043481953 -4.310391463037625e-05 3.555045425066876e-19) +(0.01296238097238427 0.0001192733938362052 -1.262625218702241e-19) +(0.01292475745762867 0.0003099220591288349 -1.760079361983256e-19) +(0.0128724820913941 0.0005356778991866272 -4.392332733500328e-20) +(0.01281946188175593 0.000808213860481739 -1.121660282751798e-19) +(0.01273755383068016 0.001135727153682642 2.634894855860682e-19) +(0.01272669448654588 0.001527267086523272 1.992822164665211e-19) +(0.0129278645397302 0.001987216664513469 3.919099875767513e-20) +(0.01334860598685082 0.002506645064100655 2.922812980975075e-21) +(0.01397598563765261 0.003064429809527158 -2.393833464872847e-22) +(0.014800074703604 0.003637393713589775 -5.512996427088199e-21) +(0.01579326252671294 0.004205132155926255 1.869533508810176e-19) +(0.01693197717485792 0.00474885547821692 5.020897635618206e-20) +(0.01820806835504327 0.005240667666887598 -1.96631436893895e-20) +(0.01963406485120922 0.005628574972540189 -1.065684980681952e-19) +(0.02121169122966652 0.005827390497327047 -2.098862372811903e-19) +(0.02289181494222422 0.00574169517885934 -2.382274098839602e-19) +(0.02453707807009815 0.005321200276876897 -6.229957645791716e-20) +(0.02597312307062704 0.004617645296634197 2.013450224400306e-19) +(0.02706538459817008 0.003769029374086679 -1.373332720789067e-20) +(0.0277472340213913 0.002895041501763926 2.423602225829276e-20) +(0.02805921539596667 0.002021430781516661 9.84448816066197e-20) +(0.02864040742300223 0.001192900980133136 -4.007008220566146e-20) +(0.02860951213734415 0.0005796675299834573 -2.073907550380047e-19) +(0.02833483227914975 2.117019189671113e-07 -1.692857686702021e-19) +(0.02777892167180867 -0.000534427014346406 3.858908457019112e-20) +(0.02700701381180194 -0.000977973642179923 1.280165653628306e-19) +(0.02608314444468166 -0.001303992180624 2.292223929182869e-19) +(0.02505735243753573 -0.001507539785012865 9.711035564100428e-20) +(0.02393844288712014 -0.001618479331608767 6.08134175988713e-20) +(0.02270479308477974 -0.001674677083887491 -7.858393255301014e-20) +(0.02132591696008714 -0.001704493149899256 6.103694562475788e-21) +(0.01982134381600337 -0.001717426604884811 1.459555028044894e-20) +(0.01828478375328669 -0.001717964037317055 2.003512914703767e-20) +(0.01686527294678589 -0.001716433516221927 -1.475450442345244e-20) +(0.01571090428106816 -0.001729296470047372 8.308204478482402e-20) +(0.01490636241053937 -0.0017680159680796 -7.633421608192677e-20) +(0.01449433301605843 -0.001831998574040672 -1.217424307551011e-20) +(0.01448731485756777 -0.00190055550485521 2.214054497648672e-20) +(0.01458723553769964 -0.001955549870122684 -2.102576248364122e-19) +(0.01463966320158204 -0.001990227738617622 -2.654429681097061e-19) +(0.01467716407867909 -0.002012553170521228 7.09717156482733e-20) +(0.01470968603384399 -0.002021964638630892 2.224348242086374e-19) +(0.01473479718775613 -0.002018201810010038 -1.0015143949594e-19) +(0.01475542767370422 -0.002002784398622073 -1.311365772287666e-19) +(0.01477433030588648 -0.001977091900458379 -2.934385658472857e-20) +(0.01479291924403918 -0.001942467615682289 9.707202751587184e-20) +(0.01481218303187559 -0.001900316272160942 -7.799211905135125e-20) +(0.01483275985368106 -0.001851951812016814 -1.373446353439599e-19) +(0.01485493891203966 -0.001798542521581647 1.074834894343508e-19) +(0.0148787583015814 -0.001741100664410469 8.597256344505026e-21) +(0.01490407804720621 -0.001680474182225736 1.911730627144028e-19) +(0.01493063019484339 -0.001617349712509681 -1.900267045176739e-19) +(0.01495805520863689 -0.001552258337207321 -1.455865751077839e-19) +(0.01498593690636099 -0.0014855868698282 -2.784153336402269e-20) +(0.01501381688022672 -0.001417588933692907 1.519263345163857e-21) +(0.01504121364938587 -0.001348392558557343 9.729915162388742e-20) +(0.01506762779054512 -0.001278009764747038 -3.286539215068093e-19) +(0.01509254801790664 -0.001206339998506677 -3.548734391197696e-20) +(0.0151154535652763 -0.001133170807325889 4.328931107881753e-19) +(0.01513581350131761 -0.001058173525380095 6.509945895027777e-20) +(0.01515308727518247 -0.0009808986503895085 -4.454998206959453e-19) +(0.01516672075562866 -0.0009007600683397825 3.084953654490387e-19) +(0.01517615005272929 -0.0008170170832059579 -1.09315100446424e-19) +(0.01518080015808415 -0.000728744764163159 -2.368485331957286e-19) +(0.01518009274978861 -0.0006347992931684677 1.060903555203736e-19) +(0.01517346311688895 -0.000533760890226188 4.135873225475685e-19) +(0.01516037205375937 -0.0004238811021182903 1.91111037001314e-19) +(0.01514038390179739 -0.0003029789997749017 1.32827092914523e-19) +(0.01511315564948609 -0.0001683923245337442 -4.502098772657524e-19) +(0.01507874892707141 -1.677754949119094e-05 -3.302166930628348e-19) +(0.01503724364066522 0.0001558254353827528 4.426890944260999e-19) +(0.01499061067876445 0.0003546931339418778 -1.388152112294792e-19) +(0.01493761853006041 0.0005854246851208347 -1.915173620169721e-19) +(0.0148919198074324 0.0008567561295873357 2.924808503796715e-19) +(0.0148275781755683 0.0011739925992967 5.721216509863439e-19) +(0.01484101821447558 0.001544516472564053 2.565945420156039e-19) +(0.01506339584417869 0.001968758460890475 5.122781299234218e-20) +(0.01549932635198135 0.00243475257253655 1.033499674347504e-20) +(0.01613015619160117 0.002921889964905624 1.155632463202396e-20) +(0.01694081983592418 0.003407699715073046 -1.047795903411452e-19) +(0.01790078474691323 0.003871524949839683 1.806049913830155e-19) +(0.01898210934113541 0.004293086865948635 2.372095844749924e-19) +(0.02016795811083365 0.004644932391860594 -1.901074070293136e-20) +(0.021454575233977 0.004883866587823932 1.707533390883566e-19) +(0.0228257314681019 0.004951049107270023 -2.870936945464082e-19) +(0.02422966890837676 0.004794035209970066 -2.370161884706692e-19) +(0.02556329155353077 0.004404641708085579 1.682170154269784e-19) +(0.02671854995930914 0.003838316807739708 3.010706922438082e-19) +(0.02761586946387518 0.003190296556709789 3.303717781143988e-19) +(0.02820450762195659 0.00252790345581705 1.659322921420038e-19) +(0.02851328674971539 0.001849994275928652 -1.645470899094717e-19) +(0.02923157305255012 0.001119527951229494 1.381715722578878e-19) +(0.02925408272229598 0.0006305899448429183 -2.118612767676181e-19) +(0.02908245844934645 0.0001676296507360123 -5.654234320631483e-20) +(0.02869881371955708 -0.0002649791424737492 1.544785024901778e-19) +(0.02815496054623518 -0.0006458874549243078 6.693319722714194e-20) +(0.0275019964736877 -0.0009570286632348217 1.644957812247317e-20) +(0.02678922309583125 -0.001186093895948355 3.179983580134591e-19) +(0.02604258481157404 -0.001341023527596651 6.219769225030285e-20) +(0.02526126169406113 -0.001441032909964555 1.794931041545321e-20) +(0.02442138651851975 -0.0015087856549212 -1.723390645126987e-19) +(0.02350786256981895 -0.001560120019415535 9.639032580428711e-20) +(0.02254061228684718 -0.001604698210082978 1.037625552508312e-22) +(0.02158553320182961 -0.001648402393178601 -2.017381303083445e-19) +(0.02073656406717354 -0.001696419547355063 -2.29107893115718e-19) +(0.02007193871392423 -0.001751207516204511 -6.050941911277594e-20) +(0.01965475264012245 -0.001808597498385839 2.492704068545932e-19) +(0.01951649844573386 -0.001858527345414042 2.075169367318245e-19) +(0.01946447858849256 -0.001904177221166723 7.160964041857823e-20) +(0.01938636176643665 -0.001934352057213178 -3.006786476897405e-20) +(0.01930172170793904 -0.001951661590557791 -1.43082159402364e-19) +(0.0192204823643289 -0.001957873875642063 -1.635773274760794e-19) +(0.0191393265961914 -0.001953143377364762 -1.295955924469478e-20) +(0.0190587925373398 -0.001938500693478183 2.771158313707426e-20) +(0.01898048703619951 -0.001915130571364854 1.067604854991129e-20) +(0.01890506484799212 -0.0018840849292754 -2.585991550756571e-20) +(0.01883292469966678 -0.001846395268269549 4.160856143348431e-21) +(0.01876438340129919 -0.001803031345244283 -7.271987669788039e-21) +(0.01869958272667318 -0.001754855646621504 1.04253049340784e-19) +(0.01863851224534043 -0.001702617647288779 -2.596261142013451e-19) +(0.0185810496017995 -0.001646951239962016 -7.321733150427678e-20) +(0.01852698548621487 -0.001588374713598864 2.54196818957483e-19) +(0.01847603465105327 -0.001527291330650057 1.869388833456136e-19) +(0.01842786173298835 -0.001463993782388847 4.962263075929656e-20) +(0.01838208757645037 -0.001398668647656087 -5.291942368781602e-21) +(0.01833830469579871 -0.001331398071222565 2.433118088604242e-20) +(0.01829608388143087 -0.001262163754880248 -2.077404828329152e-19) +(0.01825498073675041 -0.00119084644464628 2.72046891961885e-20) +(0.01821454135850448 -0.001117223599129636 -1.537050689965351e-19) +(0.01817430456094833 -0.001040963725090461 -2.745999560468612e-19) +(0.01813381138140422 -0.0009616209290336398 2.1723662986583e-19) +(0.01809260406121896 -0.0008786214790697597 -2.337708524895629e-19) +(0.01805024118657278 -0.000791248589911609 -9.705773214955132e-20) +(0.01800630245386062 -0.000698621196707047 -4.808248855894877e-20) +(0.01796041069565928 -0.000599667425281201 1.434215387547067e-19) +(0.01791225620272476 -0.0004930898881131197 1.580033642726212e-19) +(0.01786162764063383 -0.0003773303457481255 -2.459050671578361e-19) +(0.01780850060318181 -0.0002505188963632443 8.066128178117574e-20) +(0.01775302022462502 -0.0001104559612310795 4.975239439319964e-20) +(0.01769587367117442 4.55283745071592e-05 -8.849656375113723e-20) +(0.01763773305544583 0.0002205777897150166 -2.531313325313483e-20) +(0.0175810500948015 0.0004185954450685694 -2.501065586306767e-19) +(0.01752562548998472 0.000643529343688027 -6.685031376397029e-20) +(0.01748427251301079 0.0009015018492727249 -4.889960613000391e-21) +(0.01743419202487621 0.001194420065334801 -1.325383069377661e-19) +(0.01746386596864843 0.001528628499828878 2.769437357497962e-19) +(0.0176898952441036 0.001900315338857971 5.407911551660604e-19) +(0.01811374523284555 0.002295407307449869 7.987644608949668e-20) +(0.01871158837639626 0.002694850835629088 2.758671791098553e-20) +(0.01946295032176201 0.003078402260731196 2.098464877760184e-19) +(0.02033494685305168 0.003427566973410359 -1.500403623467246e-19) +(0.02129677213003008 0.003724715682453004 6.334654567841712e-20) +(0.02232656438523115 0.003948346248490639 -2.201433594208179e-19) +(0.02341232613424133 0.004069129471442777 -5.437385644736164e-19) +(0.02453336479035531 0.004053222489969028 -1.09089417186277e-19) +(0.02564892506161509 0.003878182531128553 3.407572648627109e-19) +(0.02669090908384765 0.003553224100618527 1.499423028925363e-19) +(0.02759639920202045 0.003120936306792008 5.28531847295031e-20) +(0.02831531372055796 0.002639357083973139 2.655050877155163e-19) +(0.02880355289507118 0.002145252107979191 1.119046852623617e-19) +(0.0290834594768549 0.001632715056607631 2.525560578142041e-19) +(0.02990607192143709 0.0009983361436908663 -1.458967661037655e-19) +(0.02996215076040883 0.0006225534854891517 -8.814704180224546e-20) +(0.02987227460876033 0.0002630261446352098 1.924341956507137e-19) +(0.02962817699185833 -7.583539851995087e-05 3.311157444825795e-19) +(0.02926807347724078 -0.0003854995642053925 -3.245047318477802e-20) +(0.02882609197809528 -0.0006579777654268142 -1.107724087194808e-19) +(0.02833680722937132 -0.0008835536074538707 -7.354092125022077e-20) +(0.02782460785065508 -0.001060886466564483 -1.986545621759747e-19) +(0.02730114440994479 -0.001195196796937527 -2.501756921560963e-19) +(0.02676383389120477 -0.001296352783986867 -1.083337109910661e-19) +(0.02620825675144412 -0.001373945770700346 2.270203648667358e-19) +(0.02563887564361152 -0.00143666568585906 1.009997833042988e-19) +(0.02507786798743332 -0.001491157073054246 -9.085367791089565e-20) +(0.02456472252567633 -0.001541922979381997 -8.707573120116045e-20) +(0.02413849466351204 -0.001590562720944782 1.054897441038399e-19) +(0.02384042325027617 -0.001632712639030376 -4.142088643982873e-20) +(0.02369627587846441 -0.001664802390708024 -1.714600811978374e-19) +(0.02360097316486283 -0.001697277418980392 -5.997224617816949e-20) +(0.02348853282972179 -0.001721269225286711 -2.254891401244034e-21) +(0.02336979340653458 -0.001735395296223313 1.927387773775567e-20) +(0.02325285471031045 -0.001740992869235737 -3.880013425826919e-19) +(0.02313618748538344 -0.001738199723627068 2.244187897528719e-19) +(0.02301999640973665 -0.001727333282315069 7.089639561117168e-19) +(0.02290553452261952 -0.001709061951207257 2.997923579218987e-19) +(0.02279340004911885 -0.001684080114540962 -7.646893625757064e-19) +(0.02268389827062072 -0.001653082578073333 -6.591160596918357e-20) +(0.02257728251308336 -0.001616757664503462 -1.328981645266742e-19) +(0.02247369832831511 -0.001575746763225435 -2.493847649404062e-19) +(0.02237318325609347 -0.001530622048862928 1.129361835608768e-19) +(0.02227569982181141 -0.00148187604213077 -3.436584679593107e-19) +(0.02218115784685432 -0.001429915007554453 -4.823938071502161e-19) +(0.02208941603023925 -0.001375054338515608 3.992772292341227e-19) +(0.02200030334063966 -0.001317517684559355 -4.976688996324746e-20) +(0.02191361952090351 -0.001257437961106544 -2.120370681166869e-19) +(0.02182914759679683 -0.001194856788688599 5.366098715231373e-20) +(0.0217466586509416 -0.001129726396198331 -3.484231963215317e-19) +(0.02166591719904366 -0.001061908655234302 -2.877157681619345e-19) +(0.02158668698143997 -0.0009911731212237456 -9.012082426937064e-20) +(0.0215087337985785 -0.0009171932430585175 -2.829575260652906e-21) +(0.02143183904330042 -0.0008395429260436641 6.332557071620571e-21) +(0.02135579934915962 -0.0007576885218158512 5.25005474747661e-21) +(0.02128044795385581 -0.0006709799844286964 -1.022978007833768e-20) +(0.02120566094159879 -0.0005786403423321283 -1.783730589899058e-20) +(0.02113138580997901 -0.0004797525277182801 6.881816908751947e-21) +(0.02105766349637495 -0.0003732466447544508 6.203311845730732e-21) +(0.02098467057388378 -0.0002578907281711427 -5.21424597413952e-21) +(0.02091276231555155 -0.0001322824892279748 9.19288629110734e-21) +(0.02084255326716138 5.19294218715416e-06 2.287092417992975e-19) +(0.02077499641197771 0.0001564259825934318 -1.207767411766745e-19) +(0.02071123064367856 0.0003235090707952662 -3.583679160137526e-19) +(0.02065388853835472 0.0005088717589597859 -9.014646303635276e-19) +(0.02060350103363442 0.0007146533105854868 -4.470720933702567e-19) +(0.02057102175046163 0.0009445456933612455 -3.310962195255582e-19) +(0.02053833936147328 0.001197326014130067 4.324189078332535e-19) +(0.02057871764261021 0.001478185225616399 3.963353859852157e-19) +(0.02078464133266161 0.001780697125116029 -4.282041888064958e-19) +(0.02115641112401378 0.002090710333110426 -5.247643905288124e-19) +(0.02166902179924528 0.002392502149643008 -5.731475085037727e-20) +(0.02230008874079176 0.002670004669931845 -2.149087860657722e-19) +(0.02301899079799895 0.002908998029552066 5.380897841058626e-20) +(0.02379716524714448 0.003096914498101136 5.19029219116043e-20) +(0.02461356141219287 0.003220022401385689 2.265093780006129e-19) +(0.02545526335407848 0.003261899239314844 -2.666843968552274e-19) +(0.02630507100321817 0.003206394983955153 -2.454151543753688e-19) +(0.02713623954116338 0.003046878748890747 6.24119770580671e-20) +(0.02790770713666468 0.00279488161325287 7.095582927045419e-20) +(0.02858378739731472 0.00247736958372283 -2.238513469763138e-19) +(0.02913213973584943 0.002126875578411809 -5.630279985531746e-20) +(0.0295181513438222 0.001763624999552467 3.928528383806382e-19) +(0.02975729377762148 0.001384626228187143 2.035525772997653e-19) +(0.03050761495108911 0.0008551967235739821 -2.310534308140232e-19) +(0.03058251334856174 0.0005695283268825884 2.645534008427352e-19) +(0.03055707985448879 0.0002925086747812963 3.388471685587198e-19) +(0.03042645041452375 2.911515062867617e-05 -5.733098649510347e-20) +(0.03021293529805125 -0.0002167570532966277 -4.472465669169935e-19) +(0.02993659262833608 -0.0004426037095643945 -4.007166213076448e-19) +(0.02961870901064868 -0.000642750121056419 2.075271365933725e-19) +(0.0292754975557613 -0.0008144051963615565 2.770947228611004e-19) +(0.02891783507241683 -0.0009577435680116022 8.254601852648056e-20) +(0.02855036506430446 -0.00107578727508876 2.316002409324919e-20) +(0.02817744856098047 -0.001171873694422468 2.769169521584148e-19) +(0.02780637543219172 -0.001249657870931777 3.612814131243852e-19) +(0.02744973987741006 -0.001312653475123616 -5.058135934315976e-19) +(0.02712534302126701 -0.001364028409494851 -4.510940495231688e-19) +(0.02684998680309878 -0.001406198203223538 1.117510167088757e-19) +(0.02664182304950812 -0.001438318608271123 -1.514394557307865e-19) +(0.02651722292618795 -0.001460092730152975 -2.31937547267604e-19) +(0.02641831698908036 -0.00148148141014832 3.399407457607343e-19) +(0.02630939853956613 -0.001497609907561624 3.856246088044705e-19) +(0.02619603041748247 -0.001506545518042097 2.877669418491189e-19) +(0.02608306157581461 -0.001508951774127472 -9.458779541185755e-20) +(0.02596989265269285 -0.001504940300354896 -1.644600399083741e-19) +(0.02585671419937418 -0.001494547299115513 3.067393161225314e-19) +(0.02574442732702215 -0.001478095416336889 5.37758541497163e-20) +(0.02563358390061388 -0.001456002648458332 -8.2986695713458e-19) +(0.02552451970071272 -0.001428703073405426 -4.997143606048791e-19) +(0.02541752036449288 -0.001396643359255675 3.239418378598244e-19) +(0.02531279345401895 -0.001360259331059036 -1.405609498201914e-20) +(0.0252104598716761 -0.00131995285075743 -2.201024128527623e-19) +(0.02511057533885116 -0.00127607866433326 -1.042850302979151e-19) +(0.02501314936552658 -0.001228935412769849 -4.412166229661901e-20) +(0.02491814845193236 -0.001178758280030194 -2.3480641420205e-20) +(0.02482551391696103 -0.001125714328316595 -7.484768440728107e-21) +(0.02473516595426153 -0.001069900033857853 2.503279115327697e-19) +(0.02464701532794737 -0.001011338398119432 -9.326721867052206e-21) +(0.02456097057319819 -0.0009499784904449015 -6.167935088121799e-19) +(0.02447694483841229 -0.0008856936392292506 -7.374521603691052e-19) +(0.02439486313640704 -0.0008182796582239252 -1.196019892607987e-19) +(0.02431466746696219 -0.0007474527212793971 8.230123754914943e-19) +(0.02423633009638371 -0.0006728480457794887 1.820414273846746e-19) +(0.02415985625421341 -0.0005940166392555324 -9.03439633227404e-20) +(0.02408530314072172 -0.0005104224618603816 -3.550780703782721e-19) +(0.02401278737485336 -0.0004214401030617907 -5.879643426854955e-19) +(0.02394250866146847 -0.0003263520618131594 1.287242000459292e-19) +(0.02387476679979309 -0.000224349645320573 3.090351849613211e-19) +(0.02380999339951862 -0.0001145384322456634 -1.594425060149332e-19) +(0.02374878386321549 4.061936193993944e-06 2.761633388033736e-19) +(0.02369190075489994 0.0001325086792149415 2.383626689023228e-19) +(0.02364046523148352 0.000271934367374597 4.158986508701835e-19) +(0.02359576708430066 0.0004234562925222208 3.36009606411118e-19) +(0.02356012031334751 0.0005882836253336151 9.404446071957001e-20) +(0.02353436388749923 0.00076713468375977 1.518842584773512e-19) +(0.02352654888904771 0.0009618677598912547 -7.764761434709362e-19) +(0.02352438255906669 0.001169519140806044 -1.339332309355527e-19) +(0.02357942997685588 0.001394014409025684 2.964622115472304e-19) +(0.0237545685740589 0.001628119784535472 6.01850891105218e-19) +(0.02405100078579928 0.001858847430760152 3.969672888693629e-19) +(0.02444846592762736 0.002074372574534948 3.117778537786428e-19) +(0.02492812411113617 0.002263524692768456 -8.260635315906834e-20) +(0.0254666977354917 0.002416838075499363 -6.646316406939847e-20) +(0.02604251283626027 0.002526675313627706 -1.959828644894939e-19) +(0.02663932228506345 0.002585455645510598 -1.96521100589184e-19) +(0.0272466370863628 0.002585001614722466 6.9943940768109e-20) +(0.02785210096368718 0.002518285457366836 7.550759348113118e-20) +(0.02843892235527183 0.002384379453508246 -1.491223491326656e-19) +(0.02898308128055291 0.00219183194285442 1.693246238312909e-20) +(0.02946447270794941 0.001956594461223961 -1.184585573641521e-19) +(0.02986439068681503 0.001697343946315631 -1.126194220203157e-20) +(0.03016226559105839 0.001426582819652629 3.535856801862134e-19) +(0.03036594150283927 0.001144304075069771 -2.45563974038619e-20) +(0.03082417401479249 0.0007198073306666089 -2.670583491688363e-20) +(0.03091231144916555 0.0004973291568975994 2.400202070129245e-19) +(0.03093731997812208 0.0002790547097777148 1.32254558176086e-19) +(0.03089543263383571 6.988171840589692e-05 -1.804641302957528e-19) +(0.03079321549697371 -0.000127760097948184 -1.441816453010611e-19) +(0.0306396862873423 -0.0003134347832336464 1.790604386290918e-19) +(0.03044780663999219 -0.0004836734064617623 1.184766765858519e-19) +(0.03022822566154604 -0.0006359498239477224 -1.67959519838411e-19) +(0.02998904431166088 -0.0007691727429622532 -7.316328600835981e-20) +(0.02973531830619413 -0.0008840982047926379 -2.36004511154656e-20) +(0.02947255572265724 -0.0009816478175353194 1.652540462135685e-19) +(0.02920821503049323 -0.001062889504079929 -1.34528386014138e-19) +(0.02895234667354175 -0.001128856563067337 -6.092667648890776e-19) +(0.02871656357931728 -0.001180864539776706 1.675458375679216e-19) +(0.02851056690870768 -0.001220648309971928 1.881884934843826e-19) +(0.02834360523524624 -0.001249000210820671 -1.300051165043055e-19) +(0.02822427540874579 -0.001267354883051653 2.09782415776345e-19) +(0.02811943515919453 -0.001283847646148474 3.589864691501955e-19) +(0.02800909900844797 -0.001295970201287755 -1.09085515254792e-19) +(0.0278961279109205 -0.001302335043634054 -4.622574666705703e-20) +(0.0277832951417104 -0.001303334058263018 -1.091090665810024e-19) +(0.02767040050933233 -0.001299081581907618 -1.943416774493318e-19) +(0.02755766334448153 -0.001289574492382863 -8.028328765574529e-20) +(0.02744575080912375 -0.001274993359983972 -2.372809070609057e-20) +(0.02733515699876366 -0.001255606944434983 -2.709006037492036e-21) +(0.02722624378207398 -0.001231702035230119 -8.110933509672221e-20) +(0.02711933567976818 -0.001203578649531988 1.67945703757728e-19) +(0.02701470375566602 -0.001171537339550791 8.204293846064521e-20) +(0.02691255581739065 -0.001135861368104207 6.058215654620728e-20) +(0.02681304753476981 -0.001096804841066339 2.812614910811153e-19) +(0.02671629482854572 -0.001054584451555035 -3.515489924130295e-19) +(0.02662237714094459 -0.001009372289915631 -4.35382383518028e-19) +(0.02653134929463524 -0.0009612906231026055 -1.735897539885226e-19) +(0.02644324758628677 -0.0009104084238399594 -4.136398959496598e-20) +(0.02635809877328088 -0.0008567380023883081 1.758478858249076e-21) +(0.02627592852017794 -0.0008002337473873055 -1.172300790236906e-19) +(0.02619676870405309 -0.0007407902843058514 1.783770772811424e-19) +(0.02612066548552696 -0.0006782411226423495 9.151526869963285e-20) +(0.02604768634478966 -0.0006123576100774127 4.893288403941504e-19) +(0.02597793201121019 -0.0005428491037213391 -1.265429882900062e-19) +(0.02591154295081828 -0.0004693623408809678 -3.281214572826844e-19) +(0.0258487143013333 -0.0003914820602011529 6.056107907490533e-22) +(0.02578970599910231 -0.0003087328968849381 -3.036648702227561e-19) +(0.02573486095393307 -0.0002205814592961867 -2.358298702523362e-19) +(0.02568462005465098 -0.0001264439849265172 -3.626318575606525e-19) +(0.02563955004351517 -2.569090913355656e-05 -4.95241754198458e-20) +(0.02560034012742994 8.233706194969736e-05 -4.456211398599837e-19) +(0.02556789222126475 0.0001982985248384046 -2.215154333499937e-19) +(0.02554329367691772 0.000322821675477198 -4.663850433547822e-20) +(0.02552775745491228 0.0004564460130167395 -1.481763011512094e-19) +(0.02552315069383907 0.000599710306362583 -6.691897714410006e-20) +(0.02553041787816344 0.000752630237915821 6.776741379961313e-20) +(0.02555477879110197 0.0009160771238907071 1.629376272785699e-19) +(0.02558948153453078 0.001086916229418234 6.438723412659907e-19) +(0.025664933709305 0.001267326061724882 5.665825607949208e-19) +(0.02581969945397777 0.001450352010041628 2.02054933614298e-19) +(0.02605500556575634 0.00162463095556694 -1.446042089786908e-19) +(0.0263572229054477 0.001781341468837068 1.429462855365894e-19) +(0.0267131202487896 0.001913010529126622 2.868744898702928e-19) +(0.02710737922764446 0.002013623533725521 -2.501972173188461e-19) +(0.02752568673310185 0.002078769150445497 -3.181938393484382e-19) +(0.02795695969871169 0.002104378944294486 4.121087517973591e-19) +(0.02839318901309537 0.002086285730254034 6.094375416486742e-19) +(0.02882515783292972 0.002021164841441667 1.418063703649954e-19) +(0.02924117860439445 0.001909441626038202 -3.927329459406414e-19) +(0.02962665738161773 0.001756876288651615 -1.562459603827592e-19) +(0.0299703806994622 0.00157362776289452 1.760016756006589e-19) +(0.03026424864675679 0.001372027602580732 8.72635060348086e-20) +(0.03050186846272604 0.001161243464271027 5.335874375305217e-20) +(0.03068582128660531 0.0009428716321205772 1.263310982757783e-20) +(0.03084332329803906 0.000602502833361067 -3.556455730559652e-19) +(0.03094249416278242 0.0004237932490140216 9.747670865220272e-20) +(0.03100548971899565 0.0002470133410101092 8.637717719006701e-21) +(0.0310298486342371 7.680678044164937e-05 -2.697881010131848e-19) +(0.03100932108461924 -8.501050653151454e-05 -1.370106299475533e-19) +(0.03094429015382274 -0.0002388863542582098 1.113050921061877e-20) +(0.0308423853537406 -0.000382529056422772 -2.533447284652565e-19) +(0.03071127037418677 -0.0005138288962333616 -1.089536625621564e-19) +(0.03055749871911917 -0.0006314351691554736 1.392368781391745e-19) +(0.03038588069548882 -0.0007353242937560932 -7.284920655582589e-20) +(0.03020121218186638 -0.0008255962554428314 1.21002162272049e-20) +(0.03000923420521269 -0.0009024533507524706 -5.132313286270049e-20) +(0.02981728840475937 -0.0009659922340064245 3.444824413672515e-20) +(0.02963367243486812 -0.001016556877858955 2.392698150865405e-19) +(0.02946532714345412 -0.001055076687762011 1.103370286490282e-19) +(0.02931850292491149 -0.001082167224890076 4.150483540589669e-20) +(0.02919776055011667 -0.00109913095688548 -1.671041287177289e-19) +(0.02908473136008187 -0.001113150733331671 6.685466807968516e-20) +(0.02896850827992747 -0.001122988736813964 5.50308923494812e-20) +(0.02885064464071692 -0.001127747961780266 1.391018984522068e-19) +(0.02873280040453339 -0.001127813533782221 2.222770716321601e-19) +(0.02861502784902359 -0.001123375215714945 2.463038196053189e-19) +(0.02849761245559829 -0.001114476273472498 -4.84888014788258e-20) +(0.02838110974433519 -0.001101263419973864 -4.146523214610549e-19) +(0.02826598596683072 -0.001083944160676394 2.628436905907628e-19) +(0.02815262636407577 -0.001062734220213044 -1.465111301684967e-20) +(0.02804138693919547 -0.001037854531841924 -3.884737076604527e-20) +(0.02793258444409328 -0.00100952580126212 -2.79382553606587e-19) +(0.02782648879265026 -0.0009779565425143439 -3.728065510979366e-20) +(0.02772332911884871 -0.000943334021133509 -2.867125314919786e-19) +(0.02762330214956613 -0.000905817931834529 -4.408747921904803e-19) +(0.02752657524379324 -0.00086553457987133 2.606730842684497e-19) +(0.02743329486612963 -0.0008225723964147341 2.208165453248543e-19) +(0.02734359299022569 -0.000776978731386169 6.407364963296594e-20) +(0.02725759419219445 -0.0007287568322848507 -5.134286760060896e-20) +(0.02717542394239362 -0.0006778645998114277 1.890872650147015e-19) +(0.02709721558222055 -0.0006242131179747611 4.227363075168854e-19) +(0.02702311799190376 -0.0005676658559727191 3.424809849088955e-19) +(0.02695330297905711 -0.0005080383964411756 6.88079019780103e-20) +(0.02688797552093071 -0.0004450996253007767 -3.005774150398566e-19) +(0.0268273812701649 -0.0003785726672676369 -6.033759869226865e-19) +(0.02677181802988682 -0.0003081375096233133 -2.412102096787265e-19) +(0.02672164644030472 -0.000233435060768769 -4.950275231601836e-19) +(0.02667730102209781 -0.0001540727659222442 -1.5233482497184e-20) +(0.02663931223186571 -6.963468158941775e-05 1.19902870039072e-19) +(0.0266082919441484 2.030859759238236e-05 2.114393909168427e-19) +(0.02658502842328313 0.0001161835878330538 -3.81425252497905e-19) +(0.02657038837710432 0.0002183870837182951 7.755685538982351e-20) +(0.02656542562488527 0.0003272850866336413 3.997677716124838e-19) +(0.02657129170491637 0.0004431307226706568 3.819889195847534e-19) +(0.0265895245422467 0.0005661300212300649 -2.071188678489624e-19) +(0.02662118213381825 0.0006960199184016518 5.149923124410367e-19) +(0.02666956008900504 0.0008331831503279943 3.973290001878066e-19) +(0.02673192601868653 0.000974991333505032 3.86380302554101e-20) +(0.02682398375849639 0.001122201434556077 2.858471566932169e-20) +(0.02696662729189203 0.001268372724065272 -4.586063739991828e-20) +(0.02716076840422032 0.001404062537241757 -1.995103881351224e-19) +(0.02739811879885621 0.001522630758331856 -6.33141886167727e-19) +(0.02767015091344003 0.001618933579404054 -2.846903030360159e-19) +(0.02796753596345583 0.001688988405885213 -6.237025758069769e-19) +(0.02828150784457017 0.001730092317925513 -2.830687583729705e-19) +(0.02860486044244015 0.001739893625262763 -1.209893504456731e-19) +(0.0289312594054071 0.001716025522709762 1.537149868047615e-19) +(0.02925311180231098 0.001656651449747559 3.35747394750341e-19) +(0.02956103395161409 0.001562402175103876 1.213712064239532e-19) +(0.02984552925667255 0.001437362029706589 5.71533928303499e-21) +(0.03010064051614296 0.001288740477290793 1.632014733146954e-20) +(0.03032601993902683 0.001125783302612015 2.373626809273949e-19) +(0.03052732212712997 0.0009557458973748845 2.464099989100059e-19) +(0.03070345177897204 0.0007806741186277362 -1.648776168615155e-19) +(0.0306236681565742 0.0005002636149916956 -1.816680522366187e-20) +(0.03073368498296074 0.0003540578906435112 -1.123372391425644e-19) +(0.0308275063333204 0.0002086598949985471 -1.842170752132717e-19) +(0.03090364721398626 6.828313572546432e-05 3.244972553174979e-20) +(0.03094562464626225 -6.560821560176375e-05 2.225921844960569e-19) +(0.03094710488395789 -0.0001938226340017883 4.211910924052908e-22) +(0.03091206916618769 -0.0003147583951840107 -1.403134716907274e-19) +(0.03084648888434454 -0.0004266885110054848 -2.082855308460037e-19) +(0.0307561814411263 -0.0005283237880899707 -3.121944547949488e-20) +(0.03064598552561758 -0.0006193595854996375 2.447000153132904e-19) +(0.03052009094505671 -0.0006995653080155476 1.484668878864014e-19) +(0.03038259559678904 -0.0007688028806427568 2.62325898222373e-19) +(0.0302382794362699 -0.0008268261422820632 7.010334522221593e-20) +(0.03009257117596974 -0.000873545793649089 -4.100824941026992e-19) +(0.02995034693007179 -0.0009093997418937132 8.002269374120655e-20) +(0.02981593236772656 -0.0009345614166818285 1.321774911968181e-19) +(0.02969215367297226 -0.0009499550480417569 -1.289287113982147e-19) +(0.02957104546127134 -0.000962147753424168 1.139045568922913e-19) +(0.02944797703047854 -0.0009705036854765453 1.070576805340191e-19) +(0.02932384457550717 -0.0009743362972995983 -3.521532775554384e-20) +(0.0291996376096733 -0.0009740294462165744 -2.272026819410259e-19) +(0.02907560234667873 -0.000969820987283881 -4.652710085878919e-19) +(0.02895209756213437 -0.000961777841348121 -3.940409105975546e-19) +(0.02882961356869916 -0.0009500244855851082 -3.74650500707276e-19) +(0.02870859199942213 -0.0009347299251760105 6.466650712761589e-21) +(0.02858942526142329 -0.0009160643378946684 2.593889164750692e-19) +(0.02847248045912426 -0.0008941976767847453 1.31484698144275e-19) +(0.02835809363646059 -0.0008692989601708041 2.597093297918024e-19) +(0.02824656591154429 -0.0008415281247766078 1.801146611808587e-19) +(0.02813816737689282 -0.0008110290121296544 -7.250847785688101e-19) +(0.02803314330231817 -0.000777924537796091 -7.664806359451851e-19) +(0.02793171721628098 -0.0007423120706526591 3.35643343627167e-19) +(0.02783409757643517 -0.0007042596785937891 4.300759162716919e-19) +(0.02774048408013092 -0.0006638033474481569 2.076052799814551e-19) +(0.02765107356742245 -0.0006209444114731228 2.719886513669174e-19) +(0.02756606782965921 -0.0005756484552505859 -2.404018197052826e-19) +(0.02748568006452692 -0.00052784418326459 -3.595327474116125e-19) +(0.02741014189077053 -0.0004774230064034011 -1.638895107440976e-19) +(0.02733971037661153 -0.0004242392283206138 -5.458612251217855e-20) +(0.02727467680278881 -0.0003681116506212437 -2.601781190959335e-20) +(0.02721537386267753 -0.0003088252733023008 -2.942654819215867e-20) +(0.02716218473895598 -0.0002461347339517969 -3.269760533855815e-20) +(0.02711555209705784 -0.0001797690471637423 -1.60593833001268e-20) +(0.02707598769734497 -0.0001094384686423387 1.702888812103597e-20) +(0.02704408108232008 -3.484444787438654e-05 -2.075272007857755e-19) +(0.02702051491947239 4.430201533938247e-05 2.873938508090817e-19) +(0.02700607819706817 0.0001282785124306532 3.730760817239139e-19) +(0.02700164831268826 0.0002173337316270017 1.639730410504149e-19) +(0.02700823235028472 0.0003116626769260571 6.709342760865183e-20) +(0.0270269264843365 0.00041134027908558 2.553147821641122e-19) +(0.02705903695339452 0.0005163861312444786 -2.583680819466911e-19) +(0.02710572093749789 0.0006264141288278821 -2.268287033996973e-19) +(0.02716900423458283 0.0007415365248590852 -5.717181528458945e-19) +(0.02724892081543772 0.0008596144144570467 -8.672261070562023e-19) +(0.02735142729324856 0.0009807256209506984 -4.027314289582479e-20) +(0.02748527791138523 0.001099130226669059 6.981517022110712e-20) +(0.02765101746611083 0.001207045680579168 -5.369005091838042e-19) +(0.02784418818383839 0.001299346346799511 -2.332466722516929e-19) +(0.02805969699308422 0.001372332254580269 -2.554569007703045e-19) +(0.02829232336022468 0.00142320695275513 -4.442464053033949e-19) +(0.0285371069855902 0.001450181792276294 -2.249353336533901e-19) +(0.02878949928363072 0.001451784376445181 -2.500659493484811e-19) +(0.02904417563463786 0.001426540588989601 1.996389988452771e-19) +(0.02929431881809902 0.001373312341650619 1.312775900451868e-19) +(0.02953151947510406 0.001292707500998834 -2.067166698882972e-19) +(0.02974925742387358 0.00118782390720207 -2.959607177597671e-20) +(0.02994504606598449 0.001064180159415426 1.965232735469328e-19) +(0.03012457098356094 0.0009292542832109562 1.526931903732687e-19) +(0.03030374655084226 0.0007890816488142397 -2.49371643424943e-19) +(0.03047887989126618 0.0006456387189661957 -2.194256929924374e-19) +(0.03020482497717419 0.0004099912178438651 -3.23030006392236e-22) +(0.03032652366829993 0.0002889331699942509 -2.038141377932305e-19) +(0.03044769273078265 0.0001682748109396046 -8.008585598978432e-20) +(0.03056733098414489 5.167906020977909e-05 2.642851870330882e-21) +(0.03066038471122847 -5.976237353442208e-05 1.545762905269159e-19) +(0.03071504431836382 -0.000166955366612261 1.76084839105953e-19) +(0.03073259834501284 -0.000268662515649392 1.608688507058567e-20) +(0.030717985903174 -0.000363470340591447 -6.532906344647885e-20) +(0.03067669527566321 -0.0004502640608573195 -1.764414732293921e-20) +(0.03061376713142212 -0.000528673576530716 1.883985991654246e-19) +(0.03053305121818631 -0.0005983472391059108 4.90552753754253e-20) +(0.03043747286619729 -0.0006589993205595587 -9.550339850229859e-20) +(0.03032986494826063 -0.0007102453759044826 -3.570531532314961e-20) +(0.03021339507591746 -0.0007518042216450783 -5.180125310642443e-20) +(0.03009127676199032 -0.0007838535192490853 -1.53915689084825e-20) +(0.02996630219392563 -0.000806363147083536 6.593338089448004e-21) +(0.02984028655088892 -0.0008199594846337522 -2.229715533566484e-20) +(0.02971296237056121 -0.0008305668051151594 -9.844758111790908e-21) +(0.02958429446916298 -0.0008377732157750628 7.6511819835334e-21) +(0.02945479162927216 -0.0008409254593547897 2.66757460367322e-19) +(0.0293249580155652 -0.0008403899250558925 -2.987278999223564e-19) +(0.02919519126840751 -0.0008364352331573814 -2.478026941903816e-19) +(0.02906592541922445 -0.0008291375485728657 2.22966510242215e-19) +(0.02893761036395961 -0.0008186068086994577 7.633865159409621e-20) +(0.0288106705663467 -0.0008049901313873534 1.659617225383274e-20) +(0.02868550534192506 -0.0007884302763090887 -1.712852772129598e-19) +(0.02856249088182548 -0.0007690658306788449 1.11913742501532e-19) +(0.02844197773728029 -0.0007470339977915168 2.36462043735361e-19) +(0.02832429123765586 -0.0007224647771538808 1.450894819395981e-19) +(0.02820973448167161 -0.0006954754342305816 3.410071559549192e-20) +(0.02809859324407024 -0.0006661668745432864 -9.633447163757161e-21) +(0.02799113927489316 -0.0006346200185900259 -1.481677422104805e-19) +(0.02788763596816668 -0.0006008927005159128 9.661751653771924e-20) +(0.02778834445548291 -0.000565017293139318 4.443740690809185e-19) +(0.02769352866030252 -0.0005269985768827223 -2.615217697011115e-19) +(0.02760346253275642 -0.0004868127809637101 -1.792585407118471e-20) +(0.02751843587614057 -0.000444406725324301 -5.387997730093326e-19) +(0.0274387606030297 -0.0003996976232145451 -3.726366327420617e-19) +(0.02736477706647273 -0.0003525735022254439 -2.050623072803217e-19) +(0.02729686136795639 -0.0003028949117785926 -7.092411800954284e-20) +(0.02723543170555287 -0.0002504969627219106 -2.230305314713186e-20) +(0.02718095524501863 -0.0001951929923247293 -2.622028577141658e-19) +(0.02713395554211576 -0.0001367795732152684 3.378307843175204e-19) +(0.02709501830260484 -7.504269929950337e-05 4.382473302582319e-19) +(0.02706479795516396 -9.772479902221905e-06 -6.768055396276155e-20) +(0.02704403822479103 5.922847011491257e-05 4.154541249868846e-19) +(0.02703354603943061 0.0001321445141808628 4.805778753547067e-19) +(0.02703421193007139 0.0002091230960543662 2.306106023177019e-19) +(0.02704701434868916 0.0002902558426078795 8.818521637521209e-20) +(0.02707301713288081 0.0003755193952100368 3.863232381634165e-20) +(0.02711335646061511 0.0004648392523855208 -4.272586101397797e-20) +(0.02716927291461608 0.0005577754563351812 -5.363408217523108e-20) +(0.02724188541632814 0.0006542977653930459 -4.831482221606464e-20) +(0.0273332187987313 0.000752620894723308 -9.143813402186292e-20) +(0.02744231340342362 0.0008526006225548269 -4.602207006796624e-20) +(0.02756935137013483 0.0009492010556697179 -7.703285489252861e-21) +(0.02771462622452866 0.001035961890003654 1.116571414175475e-19) +(0.02787647919682949 0.001108880685162492 -2.029251001913755e-19) +(0.02805230761960812 0.00116520865875186 -1.079965120900296e-19) +(0.02823974503813494 0.001202869513798635 -3.40361323318736e-19) +(0.02843649155418403 0.00122059428489741 -1.239130459620141e-19) +(0.02863987582225166 0.001217396716045611 -3.637246350987908e-19) +(0.02884517923192146 0.001192295506552902 -2.41164710138598e-19) +(0.02904593818820362 0.001144526110282919 1.031075382740441e-19) +(0.02923412607957411 0.001074633813261929 7.434395210658862e-21) +(0.02940523941996413 0.0009850941064851232 -8.234658681337055e-20) +(0.02955943326799448 0.0008803429294071661 -2.875979097538209e-19) +(0.02970736610833257 0.0007667327983446786 -4.220948918442136e-19) +(0.02987363025149487 0.0006494802345308305 -1.629070838432367e-19) +(0.03005240986189528 0.0005302928976944865 3.870625788390853e-20) +(0.02961665476328143 0.0003295531644209921 -5.207451682245086e-19) +(0.02975066487035263 0.0002284321513296654 -3.237675733361243e-19) +(0.02989663546721 0.0001277528734707911 1.76753171238712e-19) +(0.03005402448354192 3.06331525777349e-05 2.834599854105825e-19) +(0.0301907003640791 -6.234203310772233e-05 8.816836708913911e-20) +(0.03029028409945115 -0.0001520583927206088 7.088558987151398e-20) +(0.03035179753273335 -0.0002374178310137051 1.587907779732219e-19) +(0.03037935865676412 -0.0003172807731208699 -4.966384294800777e-20) +(0.03037825935394203 -0.0003907428641106328 1.317694057565929e-19) +(0.03035377027208388 -0.0004574637913572178 1.968855641394595e-19) +(0.030309524985348 -0.0005170740679255472 -2.074108298377557e-19) +(0.03024760010953999 -0.0005692408920935021 4.176335332163345e-20) +(0.03016939449021623 -0.0006135365029339652 2.535178780491248e-19) +(0.03007638953041296 -0.0006496015405978312 -2.708635291065986e-19) +(0.02997052712383668 -0.0006774622405919447 -1.613227605618916e-19) +(0.02985340769471207 -0.0006970158345880365 -1.258666444679848e-20) +(0.02972595290421197 -0.0007086255806274624 -2.796453504267224e-19) +(0.02959379652525932 -0.0007176380614982091 1.619719861463086e-21) +(0.02946040262552507 -0.000723690144340296 -3.863899352094501e-20) +(0.0293260288417411 -0.0007260965858535858 -1.396503585323438e-20) +(0.02919078438942264 -0.0007252137961104694 2.713643922575554e-19) +(0.0290551965770037 -0.000721324098567351 -5.91919728167095e-20) +(0.02891978087682547 -0.0007144981458380664 -3.825255553235842e-20) +(0.02878496619574684 -0.0007048328887843703 -3.207532065142528e-19) +(0.02865117433927908 -0.0006924595396913078 -8.67590131193038e-20) +(0.0285188245189517 -0.0006775012913366747 -3.460658297350143e-19) +(0.02838831573083419 -0.0006600760399604702 -1.841240924206836e-20) +(0.02826002728058243 -0.0006403011613753344 -4.11952407390713e-19) +(0.02813432348452039 -0.000618288745955512 4.558361161965243e-20) +(0.02801155597699529 -0.0005941410513194754 1.400307513152996e-19) +(0.02789206753600103 -0.0005679476777070544 1.895370662629487e-19) +(0.02777619539099985 -0.0005397825447553871 3.308477208860687e-19) +(0.02766427601437804 -0.0005097012032117979 -3.730773690461178e-20) +(0.02755665062736714 -0.0004777387284725248 -2.714906421447777e-19) +(0.02745366930988268 -0.0004439078757577668 -9.680609639311102e-20) +(0.02735569732639602 -0.0004081981808863534 -1.056534553032965e-20) +(0.02726312003480705 -0.0003705752325627474 -2.659693356586513e-21) +(0.02717634808788072 -0.0003309805552941383 1.647749232034565e-19) +(0.02709582267948621 -0.0002893320301381214 3.329647818482261e-20) +(0.02702202125794225 -0.0002455254903465726 1.091341329086721e-19) +(0.02695546255369966 -0.0001994367659694907 -1.472026297836958e-19) +(0.02689671138840882 -0.0001509254220158599 -2.743406162270449e-19) +(0.02684638417303198 -9.98386346218279e-05 -1.761653574537301e-19) +(0.02680515044753403 -4.601893927121763e-05 -7.73162222450883e-20) +(0.02677375402515461 1.068043151297629e-05 -8.429914081207066e-20) +(0.02675297480511557 7.039961450980104e-05 -4.777419882368041e-20) +(0.02674366263692704 0.0001332646121132801 -4.11920375739869e-21) +(0.02674673146242158 0.0001993587372663326 3.833766375379079e-20) +(0.02676314591497517 0.0002687147234307427 1.62024744348283e-19) +(0.02679395369242624 0.0003412552541283474 -6.524758798623972e-20) +(0.02684015176029077 0.0004168663462963964 -4.260962984554221e-19) +(0.02690305629474022 0.0004950872492403014 -3.290424169256081e-19) +(0.02698303659120705 0.0005758263610974626 -1.568350416042651e-19) +(0.02708371561139325 0.0006575319579571339 -6.572357008049846e-20) +(0.02719848802650146 0.0007400599370875994 2.148824604228434e-20) +(0.02732097558438207 0.0008190012607138516 2.255005459599705e-20) +(0.02745135869952008 0.0008889581223796308 7.064309327174116e-21) +(0.02759023510619991 0.0009467940677560264 -3.634796738371373e-20) +(0.02773703999870283 0.0009904016731386656 2.000547953638406e-20) +(0.02789167151677486 0.001018172190822924 2.60892226205291e-20) +(0.02805392286876446 0.001029177210439385 6.155624450959533e-20) +(0.02822259439568576 0.00102273533406215 -5.241698464064082e-20) +(0.02839336168646059 0.0009981681122574314 1.272181526490833e-19) +(0.02855991887658409 0.0009549298258615595 1.575650265402157e-19) +(0.02871438131903932 0.0008935034892344712 -1.078329715148254e-19) +(0.02885373991237324 0.000815949817060265 2.601056116281567e-19) +(0.02898017154825428 0.0007259617432855859 3.792363555159207e-19) +(0.02910808220471025 0.0006291404856148233 -3.347665820560042e-19) +(0.02926874676395295 0.0005300736439152696 -1.928379055688299e-19) +(0.02945463526870118 0.0004301024991270416 -1.987276373900503e-19) +(0.02889306720552778 0.0002578627618254738 -1.686955439070541e-19) +(0.02903825729996103 0.0001728796215213329 -2.020478908260419e-19) +(0.02920473566756778 8.854324131615365e-05 1.895293416437685e-20) +(0.02939291774915954 7.55534248935276e-06 2.207083520161905e-19) +(0.02956539830569109 -7.011035020650014e-05 7.64649216384372e-20) +(0.02970226365051873 -0.0001452394814566686 -1.264799924926398e-19) +(0.02980054832358883 -0.0002166988685444457 1.313785052099295e-19) +(0.02986351917880124 -0.0002836128398926745 1.01228450647298e-19) +(0.02989622204478695 -0.0003452912249312401 1.195209000173917e-19) +(0.02990405861614379 -0.0004014687335118698 -3.749293214198417e-20) +(0.0298904133383106 -0.0004518145540282262 -1.737331087726706e-19) +(0.02985661057107966 -0.0004960117576831172 -9.044410056704536e-20) +(0.02980284325420616 -0.0005336402438638107 1.193392088275474e-19) +(0.02972919869485692 -0.0005643164873634633 2.363311497454733e-20) +(0.02963654249041715 -0.0005879692514188515 -1.789676743599522e-19) +(0.02952545747725681 -0.0006044617407883928 -1.86948250847425e-19) +(0.02939590617366412 -0.0006138783662966648 -1.781988862742705e-19) +(0.0292583970206687 -0.0006211445326891107 -2.968308316009584e-20) +(0.02911924931533465 -0.0006258183382792629 -1.585665302847912e-19) +(0.02897854834494358 -0.0006271941620516787 -3.90567649083068e-20) +(0.02883607552326755 -0.0006256419050643084 -5.634257190448515e-20) +(0.02869249129162697 -0.0006214327753855413 -2.985140022839345e-19) +(0.02854840588072244 -0.0006146264423194985 -3.700946706201219e-19) +(0.02840425671057801 -0.0006053157517497406 -1.870271212077735e-19) +(0.02826049714007729 -0.0005936226176846202 4.469666072101655e-19) +(0.02811760191220223 -0.0005796587856676197 3.174000366128809e-19) +(0.02797603159791156 -0.0005635322577989738 1.256419301028548e-19) +(0.02783623601121621 -0.0005453516368123422 1.979018444795851e-19) +(0.02769866185750609 -0.0005252216060864612 6.886656541605843e-20) +(0.02756375361680059 -0.0005032392537944523 2.726296363449738e-21) +(0.02743195572566112 -0.0004794916697339013 -9.258442850144444e-20) +(0.02730371510130045 -0.0004540532168986599 8.197870377209365e-19) +(0.02717948436240851 -0.0004269830926562069 4.488319786032137e-19) +(0.02705972596879279 -0.0003983233789106895 6.260272564438884e-19) +(0.0269449147183241 -0.0003680973583146065 2.322247737131994e-19) +(0.02683554254229506 -0.0003363086324632964 5.668318933905354e-19) +(0.0267321218713931 -0.0003029404432301504 1.057871033070897e-19) +(0.02663518937060028 -0.0002679555616923114 7.376768703834533e-19) +(0.02654530969056688 -0.0002312965794135563 6.262999142244984e-20) +(0.02646307941762882 -0.0001928872746703629 -1.747688181298473e-19) +(0.02638913050457118 -0.0001526346896769817 -2.735269877495067e-21) +(0.02632413394667232 -0.000110432369888268 -3.604551460172885e-19) +(0.02626879984307496 -6.616564057488067e-05 -9.145893090566401e-19) +(0.02622389455013338 -1.971590289362234e-05 -5.646639890630394e-19) +(0.02619021400949262 2.903095832552544e-05 -7.16579274788502e-19) +(0.02616858994159216 8.017764987964165e-05 -5.370139281610235e-19) +(0.02615990635334813 0.0001338111424781456 -3.304877369810399e-19) +(0.02616509447876957 0.0001899770198939313 3.395545569283501e-19) +(0.02618510106088675 0.0002486815555265098 2.195245062143492e-19) +(0.02622095627023493 0.0003098240431101249 4.745483495457067e-19) +(0.02627352112885994 0.000373292992560115 7.544832300571021e-19) +(0.02634417477812213 0.0004386328616189237 3.706047917327784e-19) +(0.02643259580214957 0.0005057568822524938 -8.70325890268311e-20) +(0.02654376269286622 0.0005733050706267373 1.578350322980068e-19) +(0.02666597995766171 0.0006411342975997205 7.194371213671928e-19) +(0.02678767547857078 0.0007053585934234021 4.110762116835039e-20) +(0.0269091228210116 0.0007615177139796555 -1.910409268666108e-19) +(0.02703293389220679 0.0008071541867418757 -3.007835657026239e-19) +(0.0271604231464374 0.0008405733216322972 2.756889298693459e-19) +(0.02729348295605359 0.0008605010920863991 1.800838746227493e-19) +(0.02743363889309507 0.0008662781910111347 5.862929163206304e-19) +(0.0275808267047758 0.000857437378417905 3.293557468170281e-19) +(0.0277309257968908 0.000833501333020017 8.112650658097119e-20) +(0.02787762866494208 0.0007940582693140022 -2.950004886465309e-19) +(0.02801301721155823 0.0007395487524492275 -3.37777117295124e-19) +(0.02813501038893586 0.000671748569437596 2.909666789032992e-21) +(0.02824700541587377 0.0005938192986846618 1.006574157899684e-19) +(0.02836556206196906 0.0005108211631092464 -1.095978271477841e-19) +(0.02852643283525494 0.000426693110303402 -2.379928624251576e-19) +(0.02872114144115527 0.0003424016183570443 -1.858400680616612e-19) +(0.02807089713752257 0.0001948860548425927 -6.1583456637875e-20) +(0.02822376281186557 0.0001232998579535829 -7.001540114982268e-20) +(0.02840419995721118 5.252077206769688e-05 -5.579455319065582e-20) +(0.02861412542725482 -1.501406508533391e-05 6.922848814507797e-21) +(0.02881260907553598 -7.997592035153243e-05 6.486682788879849e-20) +(0.02897733751136325 -0.0001429625106688085 2.862173467295115e-20) +(0.02910374122877059 -0.0002026654728897848 -1.057849638181213e-20) +(0.0291942403162967 -0.0002584704750279597 2.888152903033453e-20) +(0.0292535957258586 -0.0003098739218281256 -1.277306196393309e-19) +(0.02928723811108588 -0.0003567020810198838 6.51904955872831e-20) +(0.02929822630120747 -0.0003986886412078332 9.478712851456999e-20) +(0.0292871033199101 -0.0004355701649411523 -1.043819908888324e-19) +(0.02925286727535497 -0.00046696061946086 -3.516664452334816e-20) +(0.02919422737231297 -0.0004924790496858474 -1.878219411011179e-20) +(0.02911093012838071 -0.0005119934591580975 8.085042487949639e-20) +(0.02900248885754785 -0.0005253455142487885 -2.456451528397836e-19) +(0.02886772251540784 -0.0005323150177066611 -2.731852573467637e-19) +(0.02872156036611491 -0.0005375626617579994 -2.33379122609516e-20) +(0.02857284266694955 -0.0005404615866876199 -2.857824615996164e-19) +(0.02842154413762962 -0.0005403837956587135 -2.359204080685034e-19) +(0.02826722910292706 -0.0005377334243309346 -1.088567266016386e-19) +(0.02811074104986154 -0.0005327343485658033 2.436013736732101e-19) +(0.02795282661909117 -0.0005254420704338847 2.278132593913574e-19) +(0.02779399958215856 -0.0005159593973505972 -5.270336898127378e-19) +(0.02763482074319961 -0.0005044047964150082 -2.687036455610985e-19) +(0.02747589506005437 -0.0004908865191714956 -1.321447402577918e-19) +(0.02731782116971971 -0.0004755125514152103 -4.017223984975656e-20) +(0.02716119655211587 -0.0004583916274857488 4.143147620229987e-20) +(0.02700662495718381 -0.0004396288121523386 1.891302636413137e-20) +(0.02685471401426372 -0.0004193227000872188 -1.331432754529802e-20) +(0.0267060744835623 -0.0003975631023747442 -5.436219982438896e-20) +(0.02656132037159056 -0.0003744283687054178 2.658992630887593e-20) +(0.02642106944508037 -0.0003499831013234552 1.426989443772094e-19) +(0.02628594501669991 -0.0003242763275658301 2.033335889685204e-19) +(0.02615657619552488 -0.0002973399545790453 1.4586259188344e-19) +(0.02603360074880788 -0.000269187937597967 1.157670445944394e-19) +(0.02591766696752015 -0.0002398157211825467 1.660509208478461e-19) +(0.02580943610019336 -0.0002092002129077661 7.043474833699859e-20) +(0.02570958530318078 -0.0001772999501724612 7.189302066932539e-19) +(0.02561881050092609 -0.0001440563503113645 1.757240794529373e-19) +(0.02553782964470977 -0.0001093959355135528 -5.012151388565034e-19) +(0.02546738452227971 -7.323338575078901e-05 -9.498620005163627e-19) +(0.02540824906309763 -3.547617583544979e-05 -1.286078551159173e-18) +(0.02536123574740559 3.971634463575586e-06 -9.321757118244794e-19) +(0.02532714009026846 4.520733979401194e-05 -5.335505143552274e-19) +(0.0253068197081477 8.831473713456414e-05 -4.127357234162082e-19) +(0.02530115240754582 0.0001333584055224459 3.508435540117771e-19) +(0.02531104948695979 0.0001803652859843884 4.092583202332925e-19) +(0.02533740511681936 0.0002293371290547895 2.908852405681381e-19) +(0.02538120537263579 0.0002801667725791434 3.713722631657917e-19) +(0.02544315711625892 0.0003327738037404989 -6.922703436917743e-20) +(0.02552467894341558 0.0003867198711669439 -5.284759998581007e-19) +(0.02562482277941676 0.000441974548803308 -9.71520770816734e-19) +(0.02574964828889488 0.0004974011478181747 -6.431482209871856e-19) +(0.02588314049402059 0.0005527315910975768 1.7113593160319e-20) +(0.02600990583241145 0.0006044700096851664 -4.507602051629166e-19) +(0.02613055995880173 0.0006490758519103797 -4.274248512245883e-19) +(0.026249435726582 0.0006846417510558779 -2.23469615213086e-19) +(0.02636943996058173 0.0007097201759929988 -8.534963609703348e-20) +(0.02649404793103166 0.0007233056923248502 -5.299877777274664e-20) +(0.02662600591257119 0.0007249736666142639 3.866049533543851e-20) +(0.02676592040045626 0.0007144072020800704 -3.233850516881144e-19) +(0.02690963439506571 0.0006912684413211411 -4.130367977857851e-19) +(0.02705065973437134 0.0006552279744972554 3.613285582278145e-20) +(0.02718084457028369 0.0006067182470026295 1.901424025787129e-19) +(0.02729839802031181 0.0005473039614738675 -1.975492788774466e-19) +(0.02740711029612902 0.0004797512328934246 2.059324824970907e-20) +(0.02752424809352142 0.0004086657926333213 1.253903200126481e-19) +(0.02768838534519227 0.0003372083829502019 3.079387509900142e-20) +(0.02789112521110745 0.0002660563389952663 -1.177634205409552e-19) +(0.02717816339702887 0.0001410256049348306 -2.300432025886113e-19) +(0.02733318538686731 8.08625061063978e-05 -2.369131250984153e-19) +(0.02751985471622765 2.157555937450254e-05 -2.622615813050289e-19) +(0.02774180762522371 -3.459309846596899e-05 -7.454492836675717e-20) +(0.0279556943401746 -8.894146710354836e-05 -2.755577940463166e-20) +(0.02813766165973839 -0.0001417840930772192 -3.155727593609808e-21) +(0.02828193353648485 -0.0001915495392186369 5.758336797370404e-20) +(0.02839021216130382 -0.000237878267425528 4.590711196672903e-20) +(0.02846706001456005 -0.0002804000447147509 -7.467333366315113e-20) +(0.02851794280645797 -0.000319031070391645 3.055715515796722e-20) +(0.02854559769340632 -0.0003535714576079625 1.113556763358373e-19) +(0.02854977866130505 -0.0003838253884836428 1.5787680597678e-19) +(0.02852824902489295 -0.0004094464786155309 1.005783850768053e-19) +(0.02847823875882346 -0.0004300654589204854 -1.62543136213712e-19) +(0.02839821215789503 -0.0004455138670470452 -6.948334805610007e-20) +(0.02828640595648777 -0.0004556281818154525 -2.106071478759547e-19) +(0.02814029024432867 -0.0004598948581164265 -1.401287363893302e-19) +(0.02797914465025803 -0.0004627968678997203 -2.263826520930712e-19) +(0.02781420542190999 -0.0004634660904655557 -1.933048158095931e-19) +(0.0276454342344379 -0.000461520334765792 -4.160447890899262e-20) +(0.0274723783442023 -0.0004573888566694599 -2.431491313855835e-19) +(0.02729617600795627 -0.0004512094993673571 2.376455146166357e-19) +(0.02711780028598955 -0.0004430525602704727 6.108740185055787e-20) +(0.0269379611481665 -0.0004330440583390595 4.076178536810431e-20) +(0.02675744483104728 -0.0004213029982601586 -2.947163858802375e-20) +(0.02657709062130249 -0.0004079405956935136 -1.243359967301557e-19) +(0.02639772921208911 -0.0003930707795344003 3.936983164488638e-19) +(0.02622018686764314 -0.0003768058347776424 1.433855721088541e-19) +(0.02604528873638904 -0.0003592526015642118 2.307140915471652e-19) +(0.02587385181317816 -0.0003405106318949795 -1.31970173228391e-19) +(0.02570668064409861 -0.0003206698482676852 -1.830348724155584e-19) +(0.02554456490925509 -0.0002998080206629058 1.536877270620958e-19) +(0.02538827779420208 -0.0002779888501487194 5.16778376951773e-19) +(0.02523857648748714 -0.0002552604725811376 4.600822123483536e-19) +(0.02509620197921609 -0.0002316542799173722 1.371766056883385e-19) +(0.02496188201124286 -0.0002071844506228007 2.578148722091418e-19) +(0.0248363336606219 -0.0001818477518962129 6.128854856454018e-19) +(0.02472026722072656 -0.0001556238944316497 4.264025767874169e-19) +(0.02461439066039131 -0.0001284756679661315 3.917435472069822e-19) +(0.02451941415957322 -0.0001003504347221895 3.429249642638038e-19) +(0.02443605551703407 -7.118226733747888e-05 -2.555676538883865e-19) +(0.02436504525363671 -4.089916913244544e-05 -4.198405602376469e-19) +(0.02430715473741756 -9.415252900478202e-06 -3.177571024682281e-19) +(0.02426310807125363 2.336174201468598e-05 -7.348923745273483e-19) +(0.02423369268788136 5.751419295480217e-05 -2.370267344193284e-19) +(0.02421971366235979 9.311330525202917e-05 -1.390946496776775e-19) +(0.02422198496839127 0.0001302155717635642 4.313890545057267e-19) +(0.02424135286081552 0.0001688406940858392 4.034552128324652e-19) +(0.024278622889143 0.0002089974375650058 5.927089016018649e-19) +(0.02433471509573883 0.0002505768012066102 3.429457073590431e-19) +(0.02441017319904111 0.0002935452845829619 6.573700718620276e-19) +(0.02450644324286393 0.0003374742735849149 2.628595247468334e-19) +(0.02462206727933855 0.0003824252608583133 -1.074958914989844e-19) +(0.02476384906096375 0.0004275086169740727 1.08386824114471e-19) +(0.02491288503758458 0.0004722229496882758 5.554564704926995e-19) +(0.02505132030720515 0.0005133388982580216 -1.917773671392773e-20) +(0.02518020237440818 0.0005482446148551935 -1.759077571190386e-19) +(0.025305033045106 0.0005754973188643695 6.551398292957745e-21) +(0.02542971377032415 0.0005937971392268227 -4.547409718085204e-19) +(0.02555864217978798 0.0006023677574676159 -1.569944852822034e-19) +(0.025695138871477 0.0006009771362112434 -5.413405773441025e-19) +(0.02583999370114285 0.000589396084821439 -3.64877596774929e-20) +(0.02598881296209405 0.0005673859957423713 -2.972815546067014e-19) +(0.02613479876670003 0.0005346654968492276 -1.653112850950312e-19) +(0.02626940042608476 0.0004916932382284221 4.664557742082047e-20) +(0.02639060695029797 0.0004398514445239151 8.774761474863776e-20) +(0.02650202755620059 0.0003815987871102614 5.202681897129837e-20) +(0.02662078728339934 0.0003211021953639716 1.292306380923996e-19) +(0.02678755212132313 0.0002606434898823197 3.861811420262454e-20) +(0.02699493313845723 0.0002007476214460798 -1.911892748989306e-19) +(0.02622662830448642 9.658924194216818e-05 -3.802568566201625e-19) +(0.0263769067588558 4.637370975043225e-05 -1.500266478816549e-19) +(0.02656183936677642 -2.926876291525784e-06 -1.676110943923483e-19) +(0.0267867070617485 -4.93111350615085e-05 -9.935045493943097e-20) +(0.0270060742077107 -9.464327913064904e-05 -7.948987072828371e-20) +(0.02719492057382388 -0.000138865403519742 -5.382524367723206e-20) +(0.02734649804989452 -0.0001801262000702765 -2.215577540319289e-20) +(0.02746195755963785 -0.0002183088126292849 3.029631968029329e-21) +(0.0275458280404229 -0.0002531192236844633 -1.929195057030079e-20) +(0.02760370987716653 -0.0002845566993151388 -3.438269568517365e-20) +(0.02763811210043047 -0.0003124782845045624 2.263145408937821e-20) +(0.0276480686564317 -0.0003367537235399915 5.135106933656586e-20) +(0.02763013322056981 -0.0003570676775097824 4.88687412027693e-20) +(0.02758001352569834 -0.0003730615287179554 -8.479284898768008e-21) +(0.02749480201297954 -0.0003845371089420996 -1.801116738135014e-20) +(0.02737130693065599 -0.0003913583427936152 -4.573354543848056e-20) +(0.02720569880010094 -0.000392799842993426 -4.486252915190591e-20) +(0.02702175084881389 -0.0003931442872443693 -1.613271056293335e-19) +(0.0268331015503637 -0.0003913093539693622 7.746539652744217e-20) +(0.02663984953816909 -0.0003873422675307098 1.231938370334445e-19) +(0.02644178693294021 -0.000381642379642664 2.28777324514172e-20) +(0.02624047941317345 -0.0003742353993445976 -5.256626991333556e-20) +(0.02603722262564237 -0.0003652268880454639 -5.534789841770523e-20) +(0.02583302852886414 -0.0003547666949344032 -4.590672881148786e-20) +(0.02562898416140061 -0.0003429700261766084 -5.205987965762915e-20) +(0.02542620131934463 -0.000329948100100319 -9.955837239473282e-20) +(0.02522575065812159 -0.0003158146944139484 4.360934290186797e-19) +(0.02502866531383858 -0.0003006769025522788 3.86150682200117e-19) +(0.02483594141324155 -0.0002846331543610349 1.236531254319667e-19) +(0.02464853020379578 -0.0002677725880391288 4.627906408374111e-19) +(0.0244673346685536 -0.0002501730827619208 3.282181626486135e-19) +(0.02429320897598443 -0.0002318993808910894 1.776225432182771e-19) +(0.024126959445658 -0.0002130019123290941 1.583137600435156e-19) +(0.02396934830888691 -0.0001935159824132785 2.818429828109741e-19) +(0.02382109727029067 -0.0001734612301398658 -2.236874493679331e-19) +(0.02368289421087482 -0.0001528416889194384 -2.910718283147001e-19) +(0.0235553998512964 -0.0001316461042545974 3.948656992256939e-19) +(0.02343925542436117 -0.0001098487268056614 2.905976361571594e-19) +(0.0233350908300863 -8.740937262117007e-05 7.102938779550365e-19) +(0.02324353238307785 -6.427494978328753e-05 1.200164212895451e-19) +(0.02316521110075379 -4.038481699446751e-05 -1.085734270874683e-19) +(0.02310078983736403 -1.566844624395536e-05 -1.813360311847533e-19) +(0.02305090890816171 9.955252461943392e-06 -1.69052886949506e-19) +(0.02301622632695374 3.65705708639248e-05 -2.326834635983066e-19) +(0.02299744016647617 6.425585095864476e-05 -2.323145193895302e-19) +(0.02299527428480633 9.307057117560703e-05 1.464142113798732e-19) +(0.02301046376948545 0.0001230662768494488 6.198776289654672e-19) +(0.02304378305520582 0.0001542566070002112 4.76375673644724e-19) +(0.02309594924171287 0.0001866598508169474 2.965933786438718e-19) +(0.02316782823362676 0.0002201626627448652 1.834022289447762e-19) +(0.0232598206562183 0.0002547843664077557 5.591515785145795e-20) +(0.02337341634813324 0.0002900869634812308 -9.019166514844885e-20) +(0.02350678444261645 0.0003262476351813849 -1.172837122512353e-19) +(0.02366716170051014 0.0003625744094189006 -1.302412761675418e-19) +(0.02383440623709325 0.0003983456033327387 -8.36205946710951e-20) +(0.02398927971142542 0.0004305332312323855 3.294050485049494e-19) +(0.02413309122482215 0.0004574164457421269 2.06851127221296e-19) +(0.0242718456056225 0.0004779350568768984 3.224480362105229e-19) +(0.02440975981394529 0.0004908833707907021 -8.268175515949407e-19) +(0.02455149947017299 0.0004956767142608224 -3.754668644185195e-19) +(0.02470041245643856 0.0004922213762035003 9.499499311632319e-21) +(0.02485712577066384 0.0004803241274109562 1.632354488397942e-19) +(0.02501690001683631 0.0004598246835619745 -5.399309611325506e-20) +(0.02517255786480238 0.0004304708777381878 -1.059767144478301e-19) +(0.02531503132015592 0.000392772457176167 2.794050973765944e-19) +(0.02544177824774279 0.0003479368954842131 2.303025310142048e-19) +(0.02555595639169114 0.000298174282950941 6.772669327745871e-20) +(0.02567431189940527 0.0002472062588536633 8.423117466149813e-20) +(0.0258396315689744 0.0001964386162585937 -3.250912649751663e-19) +(0.02604614816355152 0.0001463507254937507 -1.607476158824991e-19) +(0.02521372310542163 6.152093315925922e-05 -1.944863487183698e-19) +(0.0253516616997675 2.008055645409161e-05 -2.385948811023077e-19) +(0.02552704038406368 -2.035785831707075e-05 -2.434702905992535e-19) +(0.02574660094577966 -5.817080421179263e-05 -1.779012101504731e-19) +(0.02596267250096682 -9.568419221504035e-05 -1.543757629510472e-19) +(0.0261490639737385 -0.0001323985858282819 -1.927742607409068e-19) +(0.02629811845160356 -0.0001662338237742887 -1.322824596932569e-19) +(0.0264105695344867 -0.0001972935614480954 -4.477695103318753e-20) +(0.02649107617371916 -0.0002253175810875387 -3.63400753378327e-20) +(0.02654549778097903 -0.0002503826407141309 -5.865308489639321e-20) +(0.02657624508815276 -0.0002723941507232176 2.043844851034265e-20) +(0.02658176257696306 -0.0002912809417817731 -6.051099920850121e-20) +(0.02655753164379835 -0.0003067505793813191 -3.83156035381157e-20) +(0.02649787941886339 -0.0003184581373767686 -5.35743672707087e-21) +(0.02639867918930958 -0.0003261739068242728 1.143103437923602e-20) +(0.02625550363100544 -0.000329851499508197 -2.623870231919924e-20) +(0.02606375469553775 -0.0003286872040115498 -6.726526936448825e-20) +(0.02585171451143244 -0.0003266266904280294 -1.274977913937936e-19) +(0.02563537819282968 -0.0003224807081562611 1.079798766696317e-20) +(0.02541506873901709 -0.0003168442490701705 -2.071896254102033e-19) +(0.02519099066553223 -0.0003099899579349594 1.272410281959604e-19) +(0.02496514443253894 -0.0003018239031306804 -1.633017752117927e-19) +(0.02473910755256721 -0.0002924904315028535 -2.301870842073706e-19) +(0.02451413480566772 -0.0002821424664601098 -1.47435357633058e-19) +(0.02429150783168297 -0.0002708748616895151 -1.643273196628634e-19) +(0.02407246774202709 -0.000258783692159959 6.491870143811717e-19) +(0.02385815979352053 -0.0002459656204720849 3.212158433013963e-19) +(0.02364964436518143 -0.0002325064878316849 2.634444100617452e-19) +(0.02344790244397884 -0.0002184819981897788 1.629951030541032e-19) +(0.02325383439321246 -0.0002039582442913638 1.666704582965018e-19) +(0.02306826333669809 -0.0001889903205167461 1.643291275737276e-19) +(0.02289194093939475 -0.0001736212042394264 1.359866927102541e-19) +(0.02272555433302782 -0.0001578812810617008 1.140556594026136e-19) +(0.02256973512719502 -0.0001417880764053277 1.412419130900895e-19) +(0.02242506790539468 -0.0001253461325040405 4.423923743056527e-20) +(0.02229210097938132 -0.0001085474168280828 -3.289887809175608e-20) +(0.02217135642545289 -9.137187112454717e-05 1.134456067581333e-19) +(0.02206334084003884 -7.378842314896025e-05 1.621800399538422e-19) +(0.0219685556359131 -5.57546583732612e-05 2.726231329675212e-19) +(0.02188750689332371 -3.721931916104244e-05 2.918657032895487e-20) +(0.02182072560792069 -1.812662925109404e-05 -1.527574350833515e-19) +(0.02176875961141437 1.589794214481827e-06 -1.264334551688149e-19) +(0.02173212253253481 2.201029922170931e-05 -2.016803679920465e-19) +(0.02171140973233364 4.321033274445859e-05 -2.172928047802211e-19) +(0.02170724474618961 6.525339520848972e-05 -1.610685798641271e-19) +(0.0217202877293803 8.818960706650592e-05 -1.5943056725225e-19) +(0.02175121442445813 0.0001120655244317135 5.302946408549603e-21) +(0.0218007514309407 0.0001368880121714494 1.333194739192255e-19) +(0.02186955371089771 0.0001626840520599484 -8.129056038580882e-21) +(0.02195846543229298 0.0001893333684072348 1.476198404342475e-20) +(0.02206777718193158 0.0002169069166920795 -5.07581498969658e-19) +(0.02219905327678848 0.0002449415050885258 -5.084110022690308e-19) +(0.02235019418953731 0.0002737409867214564 -2.89331630887175e-19) +(0.02252865966393955 0.0003027131384763008 -7.509614981235066e-19) +(0.02271429810270954 0.0003310266722932338 -4.291906779394115e-19) +(0.02288718000445041 0.0003558464074813129 -4.380968903812773e-20) +(0.02304860377414331 0.0003762406308738742 2.019042049489584e-19) +(0.02320452878692285 0.0003914359246433555 2.981973530399073e-19) +(0.02335897155083971 0.0004002956558543121 2.548982306499826e-19) +(0.02351641175167869 0.0004023902881738116 1.597436569207501e-19) +(0.02367988555218011 0.0003977146721470416 1.257198651251785e-19) +(0.02384967161807306 0.0003860833054742313 -4.157104019575993e-20) +(0.0240206281724762 0.0003674066270694589 3.88920199385918e-19) +(0.0241851416092592 0.0003414565895178908 1.429550720000547e-19) +(0.02433352629397865 0.0003088044488640853 6.892013523039094e-20) +(0.02446255735447819 0.0002704895331771746 -8.376949915356984e-21) +(0.02457489914261336 0.0002285077696899684 -1.139639631052786e-19) +(0.02468710140818624 0.0001861309427952087 -1.138382819280471e-19) +(0.02484451093165204 0.00014399443122935 -1.318530986135262e-19) +(0.02504328280706501 0.0001025582394598616 -7.746539471307057e-20) +(0.02412966388716169 3.531471334928866e-05 -1.634156434242774e-19) +(0.02424791725379909 1.650355172826438e-06 -3.085010149352814e-19) +(0.0244065358926175 -3.083934012417915e-05 -2.774611934293308e-19) +(0.02461355726818694 -6.108285708713988e-05 -3.378836919613304e-19) +(0.02481880895129569 -9.172015101829918e-05 -2.415415138339002e-19) +(0.02499479182597081 -0.0001217759030858113 -2.049800315596166e-19) +(0.0251329606038138 -0.0001490395416907752 -1.273219106254703e-19) +(0.0252337442172097 -0.000173800615713488 -2.280223694710417e-20) +(0.02530207013570812 -0.0001958134414407186 2.780337265474176e-21) +(0.02534416929548204 -0.0002152277412238881 -1.693909083502424e-19) +(0.02536249687484622 -0.0002319951404647199 -9.52050993823241e-21) +(0.02535509851063701 -0.0002460998370858264 -5.660739072732885e-20) +(0.02531666198703143 -0.0002572755943872385 1.52772732027678e-19) +(0.02524051486028788 -0.0002652065489117758 6.543046492170452e-20) +(0.02512175004764065 -0.000269638773824251 6.906473788864755e-20) +(0.02495534405569803 -0.0002706947471473673 -1.418870711517591e-19) +(0.02473669532732753 -0.0002676001156302496 -1.944370398173869e-19) +(0.02449799039275901 -0.0002637601826409643 -2.094904056158723e-19) +(0.02425722638532514 -0.0002580257878251438 1.245279447576376e-19) +(0.02401480274134778 -0.0002515360368734328 3.923779096956799e-19) +(0.02377125043588419 -0.0002443325831576736 3.161421580967842e-19) +(0.02352878133139381 -0.0002362138194079967 2.320135402005794e-19) +(0.02328901180444375 -0.0002273453254668077 -2.504575065464865e-19) +(0.02305319359509687 -0.0002178529936803553 -1.981123755254598e-19) +(0.02282254789278109 -0.0002077955436222194 -2.285874017782225e-19) +(0.02259820083805241 -0.0001972409859923247 6.545537595471606e-19) +(0.02238114995057637 -0.0001862576487103941 4.193133913191927e-19) +(0.02217228609325761 -0.000174902870442262 2.412840855949507e-19) +(0.02197240604515299 -0.0001632255781071354 1.241464971338877e-19) +(0.02178221840122025 -0.0001512671338991605 4.187752628155114e-20) +(0.02160235254628509 -0.0001390601590412729 1.297851678401996e-19) +(0.02143336899179838 -0.0001266277867136539 1.733646639438521e-19) +(0.02127576978996912 -0.0001139834587348425 1.552184760917117e-19) +(0.02113001015692671 -0.0001011308220089678 1.370664099997745e-19) +(0.02099650911176232 -8.806371175476122e-05 8.679453904003643e-20) +(0.02087566138448217 -7.476658699310386e-05 1.203676681595188e-19) +(0.02076784850415189 -6.12150905247586e-05 2.725898148375215e-19) +(0.02067344974444937 -4.737710678188429e-05 2.713837344849669e-19) +(0.02059285272635749 -3.321220622413992e-05 1.827839599202575e-19) +(0.02052646873340503 -1.867616950226093e-05 -5.769683195561767e-19) +(0.02047475299597136 -3.716380839200014e-06 -4.925502033819361e-19) +(0.0204381133382686 1.17329936382096e-05 -6.578992801086376e-20) +(0.02041702597597589 2.774052416474e-05 -5.570209723140596e-19) +(0.0204120366762521 4.436651521595858e-05 -3.60526929079402e-19) +(0.02042373087385745 6.166287518783485e-05 -1.015353266534701e-19) +(0.02045273737767888 7.967062034135908e-05 -5.572261333712922e-19) +(0.02049970149462762 9.843019244756113e-05 -2.752568174572317e-19) +(0.02056533049901085 0.0001179416894496914 1.591707631735516e-20) +(0.02065024467227512 0.0001382387112866921 -6.155570503568302e-19) +(0.02075529612654088 0.0001591944988913514 -3.906906795829956e-19) +(0.02088069200688332 0.0001809244511866103 -3.701992290296961e-19) +(0.02102809838279183 0.0002029370473226959 -1.12521836278655e-18) +(0.02119520175588878 0.0002256557490068438 -6.398548830783626e-19) +(0.02138958208117353 0.0002485015371723997 -4.393038916883733e-19) +(0.02159171240520336 0.0002706550721005787 -4.148304134394245e-19) +(0.02178130864092824 0.0002894962415830393 2.371497931786245e-19) +(0.02195943676180255 0.000304743765512265 8.307381496874413e-19) +(0.02213166455234124 0.0003158166019424135 5.146597249538444e-19) +(0.02230151067828997 0.0003216417332205839 5.568598081633163e-19) +(0.02247302906993844 0.0003219119965383036 2.019564618865974e-19) +(0.0226487848878723 0.0003166736111364973 3.747984175241208e-19) +(0.02282863068278081 0.0003057414701971239 -1.845270116276115e-19) +(0.02300698188783433 0.0002890927935309197 -5.688374550570216e-19) +(0.02317572851744145 0.0002665277829500357 -1.284793158902861e-19) +(0.0233244891400891 0.0002386741799539388 -4.983634853030431e-20) +(0.02344933103220301 0.0002064155014414423 -3.064835904197994e-19) +(0.0235525530249064 0.000171545056163773 -4.007673332546062e-19) +(0.02365091935282676 0.0001368906064086123 -2.880133365237123e-19) +(0.02379287917022644 0.0001024862127852829 -2.010268768621027e-19) +(0.02397660917762526 6.872053431164511e-05 -1.109695762413142e-19) +(0.02296512639887421 1.701181061756376e-05 -1.221152566580126e-19) +(0.02305784532850326 -9.791118454369987e-06 -3.02628722005424e-19) +(0.02319399524528457 -3.518406662810163e-05 -2.809544116429806e-19) +(0.02338283833442479 -5.879617042074309e-05 -2.274419341390003e-19) +(0.02357154709590713 -8.339631912746725e-05 -2.562994725219211e-19) +(0.02373121883365673 -0.0001075427502108579 -1.050449801488319e-19) +(0.02385252256302015 -0.0001290151139672561 -8.346699099706891e-20) +(0.02393571851258324 -0.0001482473092019358 -1.553292189996661e-20) +(0.02398612858435694 -0.0001650117680722971 -3.431891571629009e-20) +(0.02401044352812247 -0.0001795252506771764 -1.051349682073243e-19) +(0.02401130857454837 -0.0001917877117257884 1.334878202559616e-19) +(0.02398660748287006 -0.0002018361271613898 1.033820239378499e-19) +(0.02393062030526991 -0.0002094418131126404 1.323955154497206e-19) +(0.02383620090490186 -0.0002143364501554505 1.184591824976119e-19) +(0.0236982170093493 -0.0002162587931897153 -1.63472150012811e-20) +(0.02351179965327882 -0.0002155435578017693 -2.527425069524378e-19) +(0.02327277220215875 -0.0002114674351749971 -1.814305522880367e-19) +(0.02301587526840361 -0.0002067274784471394 -7.593202794875336e-20) +(0.02276044680631225 -0.000200359794973323 -5.678799042762419e-20) +(0.02250662258562433 -0.0001939296768090659 5.486278493874787e-20) +(0.02225499257105417 -0.0001871860777795062 2.875609256498993e-19) +(0.02200765209306467 -0.0001798508640163291 2.271429555177388e-19) +(0.02176597225124343 -0.0001720881069178702 1.776897387200158e-20) +(0.02153096105407703 -0.0001639804259491837 -3.641032554300528e-20) +(0.02130358050171558 -0.0001555506025651526 -3.560159261200577e-19) +(0.02108469055594604 -0.0001468397106675402 1.474848054675782e-19) +(0.02087503124345418 -0.0001378904228977856 -2.44714094470781e-19) +(0.02067524808857154 -0.0001287366716476487 -8.418704354987703e-20) +(0.02048590599020024 -0.0001194067762639905 -1.433211206434218e-20) +(0.02030749694335248 -0.000109923971674633 -1.823434992775335e-19) +(0.02014045003673013 -0.0001003052432542964 3.096834970628775e-19) +(0.01998514226832116 -9.056070654747153e-05 3.825648970081295e-19) +(0.0198419091068959 -8.069343169929775e-05 2.648111078526193e-19) +(0.01971105584407263 -7.069934524243151e-05 1.437648105994932e-19) +(0.0195928679626262 -6.056720156781466e-05 9.260198162579982e-20) +(0.01948762223875608 -5.027897971442919e-05 3.832402530228972e-19) +(0.01939559719030871 -3.981033686398366e-05 7.153617945316802e-19) +(0.01931708253560617 -2.913171719901286e-05 5.929558549768558e-19) +(0.01925239084520355 -1.820889059587436e-05 -1.910507975526959e-19) +(0.01920188271083903 -7.003535569195635e-06 -4.048577255791632e-19) +(0.01916591907362999 4.533679698112102e-06 -4.30637711368315e-19) +(0.01914485909839634 1.646337696391825e-05 2.106302225650241e-19) +(0.01913917279851561 2.883957161067369e-05 3.829728404258653e-20) +(0.01914938550920346 4.170601302490488e-05 -6.000275783260002e-20) +(0.01917606655046652 5.510527131692514e-05 -5.40572584480071e-20) +(0.01921983485918934 6.906994761561227e-05 1.354157611737352e-19) +(0.01928132615243363 8.363440190391398e-05 1.600616499736258e-20) +(0.0193612483534161 9.879315076336088e-05 -9.744383862165733e-20) +(0.01946020514932815 0.0001145837652182294 -4.503911244938693e-19) +(0.01957907500133841 0.0001308764029348968 -3.703884155699152e-19) +(0.01971799639416028 0.000147819023112134 -7.422552663186857e-19) +(0.0198787547510467 0.0001649018950929537 -4.614400251530191e-19) +(0.02005883806374938 0.0001826426943559134 -6.017513969617739e-19) +(0.02026591992627504 0.0002004312095607739 -4.013629344870983e-19) +(0.0204812990131672 0.000217536164185412 -3.36036866562352e-19) +(0.02068440288838744 0.0002315922246545134 -8.855777481299925e-20) +(0.02087591809254928 0.0002428216381275949 2.117609694903091e-19) +(0.02106085447265417 0.0002507570821325597 8.192088355082614e-19) +(0.02124211326411573 0.0002543937063790119 3.242808227725075e-19) +(0.02142324008749992 0.0002535181057892696 3.031946429945847e-19) +(0.02160628787763478 0.0002482033966694541 2.37778991598321e-19) +(0.02179066718513335 0.0002382701264545254 2.768101653917902e-20) +(0.02197032450846241 0.0002237563719081217 -1.258651719017399e-19) +(0.02213661357760227 0.0002044984513816457 -2.971592038497597e-19) +(0.02227843923345076 0.0001811622739791404 -1.593978020039563e-19) +(0.02239126293288614 0.0001544916057719082 -1.478595707697121e-19) +(0.02247729054994984 0.0001260719498135127 -2.433222609587697e-19) +(0.02255398906891802 9.830443265215836e-05 -2.776594146611898e-19) +(0.02267333653411236 7.080565935687277e-05 -2.299270699495575e-19) +(0.02283554311329266 4.380068930335147e-05 -1.505124305465589e-19) +(0.02171667178482047 5.277965002337686e-06 -1.827089709350489e-19) +(0.02178063634937755 -1.554774987890843e-05 -2.356639281260405e-19) +(0.0218911407127587 -3.47390073987638e-05 -1.933791692338265e-19) +(0.02205870752214933 -5.269199788405352e-05 -2.509115707637933e-19) +(0.02222781664974205 -7.209216656829526e-05 -1.170083700435291e-19) +(0.0223681566346062 -9.108698789379907e-05 -1.135462227416843e-19) +(0.02246985896869613 -0.0001075692840779101 -8.463781926573321e-20) +(0.02253320681235481 -0.0001220784246548137 -5.177961243606799e-20) +(0.02256402955903438 -0.0001344226068486713 -1.076292866638234e-19) +(0.02256951337510369 -0.0001448741293628365 -7.396796481375977e-20) +(0.02255259287858418 -0.0001534799863592974 1.189562499059173e-19) +(0.02251119344658709 -0.0001603211594537742 1.655362601364294e-19) +(0.0224395444318768 -0.0001652129149359455 3.052415136231861e-19) +(0.02233047922920344 -0.0001679404780068692 1.465678350043284e-19) +(0.02217904539486114 -0.0001682470378345869 3.318301593734992e-20) +(0.02198097300678405 -0.0001666537899413155 -1.381393567040325e-19) +(0.0217324005629961 -0.0001624531749499473 2.738504705256508e-19) +(0.02146902577218837 -0.0001575914421932695 2.026990987711608e-19) +(0.02121088363280303 -0.0001514024687209112 -1.812211335701296e-19) +(0.02095752634822584 -0.0001456953312301603 3.644917536983172e-20) +(0.02070934063953483 -0.0001399302072113408 1.063327843653378e-19) +(0.02046806345050185 -0.000133792775282139 6.733714901260353e-20) +(0.02023466850026352 -0.0001274317934061513 1.397189298348134e-19) +(0.02000982943517651 -0.0001208907974808686 2.247722857834427e-19) +(0.01979420572458062 -0.0001141694120522336 6.922801053692058e-20) +(0.01958838348037481 -0.0001072912055024459 1.83439376268515e-19) +(0.01939285940440478 -0.000100282007923904 2.348048071739796e-19) +(0.01920806172597713 -9.316103108267587e-05 1.767783855118537e-20) +(0.01903436087338815 -8.594394455932123e-05 -5.979848761222345e-19) +(0.01887207547592137 -7.864310661518756e-05 -4.218892651137436e-19) +(0.01872148091056592 -7.126648192568518e-05 1.017403792388076e-19) +(0.01858281860791848 -6.381710962677894e-05 7.392154951749001e-19) +(0.01845630546623942 -5.629295169640684e-05 4.136853960117027e-19) +(0.01834214374470831 -4.868680212802753e-05 2.922399476910401e-20) +(0.01824053038078225 -4.09862169248138e-05 1.242650706525381e-19) +(0.01815166682641863 -3.317390501837342e-05 7.187075622582823e-19) +(0.01807576836457768 -2.522799692240413e-05 4.379590627066631e-19) +(0.01801307114491028 -1.712362842682536e-05 3.899149269615081e-19) +(0.01796385032082168 -8.834161610378377e-06 -1.272018616998395e-19) +(0.01792842959577392 -3.253643129241854e-07 -2.853977014870576e-19) +(0.0179070897543045 8.45066941668961e-06 -3.647459140656075e-19) +(0.01790022566988667 1.754128980423058e-05 1.989843147215251e-19) +(0.017908299997682 2.698423797224725e-05 2.412028914623749e-19) +(0.01793183216740194 3.681357856592945e-05 1.424812298184363e-19) +(0.01797138855653837 4.706352694167486e-05 5.315197716569482e-20) +(0.01802758947213777 5.775890612714935e-05 8.80023470438242e-20) +(0.01810107093563743 6.892819842671686e-05 1.190459487849837e-19) +(0.01819255024058629 8.056195239331476e-05 -4.092672584339109e-19) +(0.01830262192040806 9.269893397740457e-05 -7.633108273901111e-19) +(0.0184321977114389 0.0001052112944506234 -4.644149349313972e-19) +(0.01858135150627166 0.00011826532090836 -9.223895195367596e-19) +(0.01875199644643117 0.0001313518010209177 -4.576554235721067e-19) +(0.0189414121173775 0.0001450450411555243 -3.026038346536916e-19) +(0.01915738358931811 0.000158699088058434 -3.7963344619229e-19) +(0.01938200164884779 0.0001716952231863236 -3.058266466364236e-19) +(0.01959429600204555 0.000181971615430831 -1.091855003312557e-19) +(0.01979448306415002 0.0001901120266931213 1.493891916835615e-19) +(0.01998698969239476 0.0001957028630927627 3.727016965821218e-19) +(0.02017410571184238 0.0001978145999154901 -3.419181278627045e-20) +(0.02035888393362498 0.0001963047403363293 9.573517669981056e-20) +(0.02054289180072713 0.0001912594812223404 1.794768170444025e-19) +(0.02072512308377339 0.0001825151243312204 1.299640874009568e-19) +(0.02089906358298888 0.0001701606765722998 -1.914928293029557e-19) +(0.02105555128242975 0.0001540747783355924 -2.024985275911812e-19) +(0.02118286401812616 0.0001349339206988864 -1.943468788328994e-19) +(0.02127609587827064 0.0001133574880630225 -9.31048599195673e-20) +(0.02133774936853341 9.071133429033159e-05 -2.504542759072242e-19) +(0.02138643270293989 6.899633274421192e-05 -2.626732853503685e-19) +(0.02147783064721456 4.757126990661417e-05 -2.113024238447497e-19) +(0.02161414941557626 2.641580983948051e-05 -1.680747744801339e-19) +(0.0203883153017749 -1.420150579657685e-06 -1.732596474064943e-19) +(0.02042340969116353 -1.714252065902106e-05 -1.738753855926999e-19) +(0.02050822077285534 -3.110683351609525e-05 -2.409390037632481e-19) +(0.02065453411617741 -4.442164094702602e-05 -2.150554505417447e-19) +(0.02080404959394248 -5.94716065353167e-05 -1.465220674611542e-19) +(0.02092514792795621 -7.409680446549624e-05 -1.564905927171414e-19) +(0.02100784514051705 -8.641637897418596e-05 -8.439635858077422e-20) +(0.0210526906236967 -9.704306145417282e-05 -7.145693680477002e-20) +(0.02106608534982213 -0.000105837583389929 -8.18621056804008e-20) +(0.02105565094813755 -0.0001131070579266072 -2.679594018017015e-20) +(0.02102460287765376 -0.0001189349934994836 9.469793327966498e-20) +(0.02097099197820226 -0.0001234282400900251 1.083927584356297e-19) +(0.02088920318975769 -0.0001264409617762369 1.991281904236575e-19) +(0.0207722934248055 -0.0001278031614243665 1.640930809916686e-19) +(0.02061564691794741 -0.0001272655961793772 1.190655706439867e-19) +(0.02041569323230515 -0.0001254640049573205 2.361291271516193e-20) +(0.02016849799345635 -0.0001216786975252157 4.992800300187198e-20) +(0.01990946859994156 -0.0001171914750449744 1.354283074320063e-19) +(0.01965895347937505 -0.0001116884836667151 -2.952760201146469e-20) +(0.01941569822549426 -0.0001070256715791566 -1.179504628954927e-19) +(0.01917969919458229 -0.0001024298310865687 -1.055084253489355e-19) +(0.01895224341061736 -9.758791066680724e-05 -1.264769267403279e-19) +(0.01873391329529854 -9.263148618064963e-05 1.059451856893988e-19) +(0.0185250918674384 -8.757971861327335e-05 4.367085982057753e-19) +(0.01832619712259124 -8.242277178067953e-05 2.141405313207231e-19) +(0.01813760814687493 -7.717540126457809e-05 1.483990130612708e-19) +(0.01795964378597155 -7.185402603428564e-05 1.011848602016835e-19) +(0.01779257759050732 -6.646972425418958e-05 -4.559012391242555e-19) +(0.01763664491716266 -6.103118177525145e-05 -6.006153938044543e-19) +(0.01749204693939551 -5.554484454978217e-05 -4.07022536171387e-19) +(0.01735895734941903 -5.00140042595936e-05 5.04930192234327e-20) +(0.01723753020462796 -4.443837514721052e-05 4.793300088203237e-19) +(0.01712790796814354 -3.88139829525779e-05 3.27810045140741e-19) +(0.01703023015478844 -3.313309714401365e-05 6.637142775734953e-19) +(0.01694464151344773 -2.738416048412283e-05 3.115300329664446e-19) +(0.01687130072619538 -2.155216384303245e-05 8.375036526958957e-20) +(0.01681038870703215 -1.561866675499216e-05 3.138577137539399e-19) +(0.01676211316220691 -9.564582365121904e-06 1.806865128790079e-19) +(0.01672673735054058 -3.369212808911621e-06 5.335012730648606e-19) +(0.01670453107069927 3.000062639664935e-06 -2.185983482255109e-19) +(0.01669577952977427 9.583614520760446e-06 -2.812641761107873e-19) +(0.01670089608950239 1.641445856013146e-05 -2.585218087683601e-19) +(0.01672034719987476 2.351988231561436e-05 3.46849527631561e-19) +(0.01675465284265035 3.092630655950826e-05 2.775834704420963e-19) +(0.01680438014306011 3.866033056088247e-05 1.366575717298643e-19) +(0.01687015293218865 4.674025028120261e-05 1.117708789342221e-19) +(0.01695260845714452 5.518912413799622e-05 1.433438574168731e-19) +(0.01705247311176316 6.39952346549041e-05 -3.969286406709398e-19) +(0.01717033107960839 7.319602389731006e-05 -4.347194010087233e-19) +(0.01730712542772662 8.267094729328171e-05 -4.563789562930936e-19) +(0.01746286145046733 9.259054456764396e-05 -6.894162462397271e-19) +(0.01763958111401868 0.0001024675883395688 -4.960145395686825e-19) +(0.01783433045075579 0.0001128916893955566 -1.002502830838526e-19) +(0.01805504805061075 0.0001232005020574453 -5.332208030710731e-19) +(0.01828447891808529 0.0001328804479774339 -2.53852943421589e-19) +(0.01850104731300843 0.0001402183945867637 5.203732344524635e-20) +(0.01870447094157827 0.0001460267314152025 6.205883731482298e-19) +(0.01889868784673123 0.0001499024252362186 3.81817894159375e-19) +(0.01908546289817102 0.0001509989268308285 1.30934095679914e-19) +(0.01926742208071526 0.0001492289987927525 1.529768793590357e-19) +(0.01944571277043174 0.0001446851738994944 7.273862885891961e-20) +(0.01961897669169055 0.0001372284419359069 2.116422534189109e-19) +(0.01978030612695102 0.0001269849438702392 1.102948689657132e-19) +(0.01992013559478224 0.0001138767958108803 -4.836513827272485e-19) +(0.02002632835510545 9.855939952573727e-05 -1.980805423815207e-19) +(0.02009396850155346 8.153981564921864e-05 -7.129747844124691e-20) +(0.02012629532476683 6.395632569853056e-05 -1.748247410632979e-19) +(0.02014333676486688 4.744099571774084e-05 -2.330882833881081e-19) +(0.02020435316751836 3.121194854206252e-05 -9.041723251377613e-20) +(0.02031339350157494 1.497639650743098e-05 -1.913834472582047e-19) +(0.01898921767906044 -4.584425133054841e-06 -1.428467107214448e-19) +(0.01899809400378762 -1.606156156486896e-05 -2.437983012647322e-19) +(0.01906010731795232 -2.582036369339145e-05 -2.105415780285776e-19) +(0.01918800553141274 -3.550289273364021e-05 -1.150676574353607e-19) +(0.01932045877168605 -4.70110572708267e-05 -2.306173522689696e-19) +(0.01942484228543854 -5.80272149145411e-05 -1.946884177041759e-19) +(0.01949164748453624 -6.69883924293358e-05 -1.129945971994507e-19) +(0.01952192248703258 -7.454970248007343e-05 -7.58243053707902e-20) +(0.019522602107113 -8.062789632681388e-05 -1.742905591575163e-20) +(0.01950157311217821 -8.553701355527658e-05 8.21035806961916e-20) +(0.01946220805367761 -8.937933623850271e-05 3.884380377633704e-20) +(0.01940264171308943 -9.226553427607451e-05 4.571880659557259e-20) +(0.0193174679237633 -9.407740172501437e-05 1.667347978241727e-19) +(0.01920003435953676 -9.467616281604285e-05 2.162803575740139e-19) +(0.0190460633501001 -9.382303189526982e-05 1.861114149782603e-19) +(0.01885263109268914 -9.218882691111932e-05 1.096564730923401e-19) +(0.01861534808206908 -8.904693165974745e-05 -2.905597166917612e-20) +(0.01836866131340358 -8.517085154640282e-05 1.372097443434233e-19) +(0.018133082758903 -8.058741256747505e-05 -5.060338701593733e-20) +(0.01790635288328318 -7.702529641032006e-05 -3.15444881176091e-19) +(0.01768796258642637 -7.356029695201329e-05 -2.951873483895478e-19) +(0.01747879350138297 -6.99113049644607e-05 -2.2877921819589e-19) +(0.0172791440194886 -6.619828477775154e-05 1.458177077554936e-19) +(0.01708920649661425 -6.242985988997869e-05 8.948933370375197e-19) +(0.01690924482884179 -5.85951227239674e-05 1.631286566881094e-19) +(0.01673950649808859 -5.470493500394533e-05 -3.908492610593994e-19) +(0.0165801972355414 -5.077062916751914e-05 -4.740996898970185e-20) +(0.0164314926458661 -4.679893115528153e-05 -2.653069370246805e-19) +(0.01629354343680983 -4.279480868813896e-05 -6.998097195372005e-19) +(0.01616647821477709 -3.876163633440096e-05 -1.713506723867673e-19) +(0.01605040898074942 -3.470046533274586e-05 2.296178959260174e-19) +(0.0159454379428184 -3.060972716646677e-05 3.725505872934826e-19) +(0.01585166452621932 -2.648516598150799e-05 3.737648775182555e-19) +(0.01576919306143889 -2.231978352480048e-05 8.426638988060437e-19) +(0.01569814014214803 -1.81037965639466e-05 1.52144294275231e-19) +(0.01563864237532018 -1.382499908386332e-05 -1.33928060032233e-19) +(0.01559086358961231 -9.468493329366055e-06 3.23011064876487e-19) +(0.0155549986636873 -5.021036102583382e-06 2.279701174715491e-20) +(0.01553130450373395 -4.651421573370483e-07 4.847755176461611e-19) +(0.01552000274371354 4.22943692539023e-06 2.909347706586411e-19) +(0.01552142755220205 9.09193316587531e-06 -1.322986903121573e-19) +(0.01553599262163655 1.414410887408474e-05 -6.385780170792505e-19) +(0.0155641652676811 1.940679866558612e-05 -7.638286103845713e-20) +(0.01560646562933185 2.489996035593435e-05 2.874636491693276e-19) +(0.01566345961793919 3.064369568327247e-05 1.749760461399566e-19) +(0.0157357707045633 3.665106926573494e-05 1.666321309246619e-19) +(0.01582403217770172 4.294025271844752e-05 1.154605822307897e-19) +(0.01592897292917914 4.949879101444601e-05 1.419445175106651e-19) +(0.01605115971749648 5.636082040509752e-05 -9.278240076976661e-20) +(0.01619155855762269 6.341762684003044e-05 -5.611587774086257e-19) +(0.01635009708036049 7.083194132488151e-05 -6.838527167862567e-19) +(0.01652894135688706 7.815810699838774e-05 -4.43767450153071e-19) +(0.01672487162388526 8.596291756488775e-05 2.126481844572889e-19) +(0.01694603466788 9.359548999182209e-05 -1.544814295251262e-19) +(0.01717565062796831 0.0001006304951824617 4.422574799761988e-20) +(0.01739129764486881 0.0001057312927029013 4.583845842405304e-19) +(0.01759226486663508 0.0001098169960888235 5.623764007626923e-19) +(0.01778219736497035 0.0001124678026217769 3.281467977898943e-19) +(0.01796245606258505 0.0001129294102307038 1.101158628779136e-20) +(0.01813532286586188 0.0001111605207468832 2.30618769794165e-19) +(0.01830161755976829 0.000107256091205408 3.840715559262321e-19) +(0.0184597382247324 0.0001011062407778711 1.441425758907583e-19) +(0.01860251981175819 9.285805964279369e-05 6.554061029948592e-20) +(0.01872019909768587 8.247260530646816e-05 -6.023022186711527e-20) +(0.01880054100380941 7.055418515208776e-05 -1.57525932518136e-19) +(0.01883903346279866 5.750690805982227e-05 5.637885851173523e-20) +(0.01884003832966879 4.424493695191239e-05 7.750906987858328e-20) +(0.01882505173986653 3.206470443182155e-05 -6.322983304367778e-20) +(0.01885646635152209 2.012102741302825e-05 1.625966208585023e-20) +(0.01893978401682565 7.896240296904997e-06 -1.61957299048823e-19) +(0.01752925070803125 -5.496747844378788e-06 -1.135185713701823e-19) +(0.0175164573470554 -1.354941485565993e-05 -1.307792918683384e-19) +(0.01756066976446105 -2.009686419579139e-05 -1.624400877067635e-19) +(0.01767475578238114 -2.704766063359341e-05 -1.530903684400275e-19) +(0.01779406076532586 -3.571946893155746e-05 -1.345142183429882e-19) +(0.01788559085908046 -4.38179115721637e-05 -1.845606544910031e-19) +(0.01794097817505467 -5.015187724918922e-05 -7.517329969906654e-20) +(0.01796188553737841 -5.538120064096746e-05 -1.504748470402382e-19) +(0.01795561822549925 -5.946729409934721e-05 4.896935026401046e-20) +(0.01793008278759815 -6.270370049735141e-05 7.898999009853757e-20) +(0.01788862167851131 -6.519331211973306e-05 9.120378669295335e-20) +(0.01782934769512324 -6.70326407408619e-05 3.654119337543978e-20) +(0.01774703730521904 -6.812128058916885e-05 3.165509184773872e-19) +(0.01763531669200897 -6.834184774447832e-05 3.06903311499047e-19) +(0.01749020702287907 -6.747313605067592e-05 2.385878196890771e-19) +(0.01730935718152339 -6.615498965501822e-05 1.161063985811563e-19) +(0.01708766798743106 -6.368253600619763e-05 1.289509062321116e-19) +(0.01685845008563296 -6.048770974085273e-05 1.921817644780993e-19) +(0.01664230414384486 -5.687267770166198e-05 -1.127166972985753e-20) +(0.01643573112940493 -5.431127677107152e-05 -3.765491426284179e-19) +(0.01623769306607806 -5.18194964566788e-05 -4.207866074583287e-19) +(0.01604881307136765 -4.917147075984378e-05 -2.718533089075977e-19) +(0.01586924379634096 -4.648128870087381e-05 1.184749383358928e-19) +(0.01569908042726059 -4.375470924068527e-05 3.071827468514429e-19) +(0.01553850334898296 -4.098289281957303e-05 1.948671690306317e-19) +(0.01538768522401316 -3.817480048931077e-05 -3.20767824460375e-19) +(0.0152467654958148 -3.533876749836917e-05 -1.589546447492722e-19) +(0.01511586180735197 -3.247909057907533e-05 -3.003843516411285e-19) +(0.01499507502394661 -2.959872951201609e-05 -4.976195616945521e-19) +(0.01488449151015219 -2.669948208972121e-05 1.770535028882256e-19) +(0.01478418803362148 -2.378143136885819e-05 2.805746034126315e-19) +(0.01469423782193132 -2.08427345794989e-05 3.665232532353126e-19) +(0.01461471703703805 -1.787959782891961e-05 4.805900601313163e-19) +(0.01454571161234916 -1.48862613409197e-05 8.069243668002947e-19) +(0.01448732398075922 -1.185493212951878e-05 1.556345024356345e-19) +(0.01443968022192519 -8.776149144071705e-06 -4.949518461596991e-21) +(0.01440293590168286 -5.638321948942411e-06 5.562129198467718e-19) +(0.01437728135371787 -2.432955551918104e-06 2.11729302067266e-19) +(0.01436295429751323 8.556689470982639e-07 2.913480033003411e-19) +(0.01436017564686792 4.252985023281224e-06 1.319164410521241e-19) +(0.01436930349720365 7.777776838950121e-06 -1.966816337477441e-19) +(0.01439074991297506 1.144482278333296e-05 -7.552407163394615e-19) +(0.01442497722106039 1.526976572394906e-05 -6.166040103841079e-19) +(0.0144724997250549 1.926725945274116e-05 -4.62641501365367e-20) +(0.01453387549029415 2.345213787157285e-05 1.364096345182015e-19) +(0.01460971961701416 2.78334313018623e-05 2.470428034735862e-19) +(0.01470065222788918 3.242504294284637e-05 8.484766949866566e-20) +(0.01480739418320086 3.721501970055917e-05 2.500764429252931e-19) +(0.01493048422021616 4.22328577896026e-05 6.845311494990946e-20) +(0.01507089861119113 4.738489965688677e-05 -4.689869198542415e-19) +(0.01522847667669983 5.281698030094578e-05 -7.19589253001922e-19) +(0.01540549799954782 5.814007740047725e-05 -2.432902516450166e-19) +(0.0155984473493626 6.386725482611471e-05 3.072931008069166e-19) +(0.01581573631787232 6.938598173347192e-05 4.981765582831712e-20) +(0.01604086188710784 7.434683256095335e-05 5.474347308057329e-19) +(0.01625035172555266 7.7789878023552e-05 6.771546351153686e-19) +(0.01644327904382764 8.063309601544017e-05 3.294950950763619e-19) +(0.01662325456531237 8.242946557825896e-05 3.351769851403079e-19) +(0.01679134245279276 8.252844354221404e-05 6.224019816161675e-19) +(0.01694956242058758 8.092839626107749e-05 3.352958819309661e-19) +(0.01709852332790827 7.772247487789214e-05 2.346249620168933e-19) +(0.01723652621876525 7.282927389653547e-05 1.565097774132957e-19) +(0.01735633890298824 6.640081821782115e-05 1.994212138533572e-20) +(0.0174482670273287 5.842878383206276e-05 -1.684153758424784e-20) +(0.01750033717003847 4.94428151404371e-05 -9.730340679415929e-20) +(0.01750882291719609 3.975318625858946e-05 3.570185138706761e-20) +(0.01747944101086847 3.006672585328283e-05 -3.223598794282477e-20) +(0.01743497729611595 2.137780892093053e-05 -1.776941005584601e-20) +(0.01744023768808544 1.283020237671265e-05 -6.80719049527483e-20) +(0.01750147963312556 3.786687562150695e-06 -3.086128006471398e-19) +(0.01601426813166803 -5.131734773898108e-06 -5.98151890985095e-20) +(0.01598535616647528 -1.052031568854316e-05 -1.164329283036472e-19) +(0.0160178049848718 -1.474383732618307e-05 -1.104515494748607e-19) +(0.01612320939290442 -1.9694001305237e-05 -1.096676983353541e-19) +(0.01623357314632107 -2.610617351301843e-05 -9.363856681862844e-20) +(0.01631652578299435 -3.188855178929744e-05 -1.794393281417463e-19) +(0.01636539134735664 -3.622583649223303e-05 -6.149453177196314e-20) +(0.01638236850301572 -3.97383400123865e-05 1.592988392754381e-20) +(0.0163748762623192 -4.241384251861035e-05 -5.77091716101981e-20) +(0.01635058218496569 -4.450557623738228e-05 1.440646322456023e-20) +(0.01631261073770342 -4.610373303774739e-05 2.115376520867446e-21) +(0.0162589471893802 -4.728088176382098e-05 2.278848461362864e-20) +(0.01618451172891979 -4.794927321159745e-05 2.551856613186289e-19) +(0.01608318549796069 -4.80086428766062e-05 2.842228733286201e-19) +(0.01595126165583068 -4.726447797978451e-05 2.458650069395888e-19) +(0.01578689723414699 -4.62787224585005e-05 7.814445949149875e-20) +(0.01558418147327572 -4.4404312659419e-05 3.101044774347632e-19) +(0.01537541314672272 -4.187356340111773e-05 5.414039014010461e-19) +(0.01518113553568683 -3.916740092206381e-05 1.185801509471e-19) +(0.01499636360641678 -3.743414422996729e-05 -3.617085939998003e-19) +(0.0148196344209729 -3.571770241301364e-05 -2.981154515764923e-19) +(0.01465151180746266 -3.386118656659945e-05 -2.487397148949497e-19) +(0.01449211575272906 -3.197379335207498e-05 1.900142875417819e-20) +(0.01434150378909621 -3.006039776110735e-05 7.851321343629819e-20) +(0.01419981690116895 -2.811453074960042e-05 -4.884763257085919e-19) +(0.01406718846475314 -2.614382162181312e-05 -5.21039471442061e-19) +(0.01394372081694968 -2.415453829164656e-05 -2.289843462813886e-19) +(0.01382949868103597 -2.214949860186277e-05 -5.64141179005546e-19) +(0.01372459481958811 -2.013052719793786e-05 7.965971826262231e-20) +(0.01362907216475092 -1.809861767991636e-05 1.8989163579421e-19) +(0.01354298831043488 -1.605349611601878e-05 3.428820604605021e-19) +(0.01346640123399257 -1.399350156228184e-05 4.170824987508153e-19) +(0.01339937518973944 -1.1915580297948e-05 6.189769005026412e-19) +(0.01334198701237579 -9.815270457129013e-06 7.204071648894147e-19) +(0.0132943322936344 -7.68668167818462e-06 4.135239047628878e-20) +(0.01325653185267746 -5.522783853246382e-06 1.334116334306027e-19) +(0.01322873652516316 -3.314894491182666e-06 5.668658563792216e-19) +(0.01321113458515544 -1.057803242718231e-06 2.685183963338807e-19) +(0.01320393498446999 1.262460998021797e-06 1.491264344144625e-19) +(0.01320739072050993 3.665365392097608e-06 4.036107764542113e-19) +(0.01322185497745104 6.161648645199346e-06 4.081217505680446e-20) +(0.01324773200573677 8.761861710869165e-06 -6.378051109663276e-19) +(0.01328547236892036 1.147733422011026e-05 -6.344070345049088e-19) +(0.01333557635216359 1.431850812475452e-05 -1.980676096241034e-19) +(0.01339858488765241 1.729602094869437e-05 1.303879173123023e-19) +(0.01347509427396126 2.041590652743307e-05 3.475629336762684e-19) +(0.01356570031693609 2.368845477332287e-05 4.642322953251648e-19) +(0.01367110301556585 2.710310362150335e-05 4.469301566001084e-19) +(0.01379180155378049 3.0684013172071e-05 1.284750836435966e-19) +(0.0139287668526588 3.43543675536816e-05 -5.941929217061538e-19) +(0.0140817418545592 3.823719978279363e-05 -8.140072296656103e-19) +(0.01425310146103515 4.200961234014843e-05 -2.852278434245542e-19) +(0.01443902110441486 4.610883813393257e-05 1.338073820916402e-19) +(0.01464821835449897 4.998285765172503e-05 6.567733923007873e-19) +(0.01486425626867861 5.335407643008383e-05 6.485819055711173e-19) +(0.01506252545361546 5.560844222329745e-05 3.937452669421239e-19) +(0.01524225376960842 5.757436417162301e-05 3.590185038309303e-19) +(0.01540726692679022 5.878499478603529e-05 3.984092876865893e-19) +(0.01555838767258993 5.870528854067194e-05 3.833391859589309e-19) +(0.01569745363188844 5.736614763735765e-05 1.822933211856082e-19) +(0.01582499861074449 5.485337708344112e-05 6.271429925387994e-19) +(0.01593938992629499 5.111008319544166e-05 3.551302396699059e-19) +(0.01603353886123945 4.627979770980241e-05 -4.445659689960428e-20) +(0.01609809644922252 4.037512610483379e-05 4.807362534150561e-20) +(0.01612168759208072 3.38368221378893e-05 -4.257111811875906e-20) +(0.01610164799853354 2.689215115969602e-05 5.117191555130074e-20) +(0.0160450855274235 2.006768368880473e-05 8.191975674067863e-20) +(0.01597574554241683 1.409019187375811e-05 2.800142472971515e-20) +(0.01595990448214895 8.133997794093026e-06 -4.317478266334673e-20) +(0.01600362182257207 1.567727300073104e-06 -1.067017209628707e-19) +(0.01444193299959242 -4.163685125814292e-06 -2.520265868540546e-21) +(0.01440283403642547 -7.564440989259404e-06 -1.031809005152375e-19) +(0.01442966567551438 -1.019194480984535e-05 -1.096903424761733e-19) +(0.0145310977981865 -1.368755057938633e-05 -8.099833572507431e-20) +(0.01463638019378114 -1.829953552217809e-05 -5.580994989294187e-20) +(0.01471494867073098 -2.227900416247464e-05 -1.136027167047392e-19) +(0.01476206462843643 -2.514167589388289e-05 5.459773943959676e-20) +(0.01478019534977131 -2.742618560019634e-05 5.514306654318667e-20) +(0.0147765915020207 -2.913065454014233e-05 -3.237150128418649e-20) +(0.01475845929300201 -3.045828162116158e-05 -3.353759717864383e-20) +(0.01472855618320339 -3.147966620670613e-05 3.390921685410117e-20) +(0.01468467090639659 -3.224147589988561e-05 5.766516037758201e-20) +(0.01462184701096084 -3.266753316655919e-05 2.387215151312439e-19) +(0.01453421108952648 -3.267404841190687e-05 2.50562483466743e-19) +(0.01441832021764145 -3.210057991717638e-05 2.422848345586887e-19) +(0.01427277303473365 -3.140310491824142e-05 1.041792050912948e-19) +(0.01409089690420378 -3.002490016804571e-05 2.558159294394461e-19) +(0.01390420914963127 -2.810092334039106e-05 6.525646794806595e-19) +(0.01373290040241231 -2.618677766021537e-05 3.132310921200223e-19) +(0.01357032857973433 -2.509000005461582e-05 -2.177882213901872e-19) +(0.01341484611319567 -2.395700911418022e-05 -3.631098093564534e-19) +(0.01326714606165152 -2.270155714000615e-05 -2.388420904582895e-19) +(0.01312737411787189 -2.142379040237761e-05 -4.026623951163803e-21) +(0.01299557601109419 -2.012695685157501e-05 -1.919373089779357e-19) +(0.01287187695748896 -1.880644207907232e-05 -3.144087639452383e-19) +(0.01275639078925959 -1.746862477731283e-05 -5.558455259938503e-19) +(0.01264919928572356 -1.611814383313276e-05 -2.388370056574425e-19) +(0.01255036891581925 -1.475683656243124e-05 -1.957994909115326e-19) +(0.01245995717695405 -1.338585296375144e-05 1.188224653520956e-20) +(0.01237801455460337 -1.200576037064339e-05 5.495760664156539e-19) +(0.01230458877416632 -1.061622633273307e-05 6.345038059811292e-19) +(0.01223973012739892 -9.215923765212728e-06 7.183309174754374e-19) +(0.01218349709319382 -7.802563903310769e-06 1.050815845007461e-18) +(0.0121359619051345 -6.372891859754633e-06 6.706020228525847e-19) +(0.01209721633173026 -4.922652867196414e-06 1.900525044110219e-19) +(0.01206737754858001 -3.446846420935047e-06 3.98940077791208e-19) +(0.01204659184733922 -1.939247471790655e-06 2.554341203198226e-19) +(0.01203504408347068 -3.964596197947997e-07 2.316678050911904e-19) +(0.01203291845397766 1.192727740173932e-06 2.364967312325315e-20) +(0.01204049371551556 2.842184727424633e-06 3.0964458170125e-19) +(0.01205811016148277 4.557726608575823e-06 1.317164940751222e-19) +(0.01208615427188936 6.346652146997085e-06 -6.978273388113031e-19) +(0.01212505608495223 8.216892952200735e-06 -6.265823177341741e-19) +(0.01217529231417344 1.017566036914137e-05 -2.440803248424489e-19) +(0.01223737658925068 1.223032844667907e-05 1.986464472201809e-19) +(0.01231187494727075 1.438478178215794e-05 5.119605130777824e-19) +(0.01239934733082677 1.664634739212977e-05 8.986983854390779e-19) +(0.01250045942887011 1.900639757597808e-05 6.479258587484609e-19) +(0.01261566031922597 2.148359270543173e-05 6.654613842885356e-20) +(0.01274589823637069 2.401837584802778e-05 -4.803499703814528e-19) +(0.01289081861459496 2.670805956113683e-05 -4.592620472027316e-19) +(0.01305286241475188 2.929972950598708e-05 -1.543948117117287e-19) +(0.01322791385415639 3.214170635654348e-05 7.545352477545645e-20) +(0.01342499454106966 3.47594082623706e-05 9.969446770352186e-19) +(0.01362752294693122 3.694770511649215e-05 7.142010617901479e-19) +(0.01380986739077226 3.838041524016926e-05 4.214525911258219e-19) +(0.01397189664069922 3.973395435774658e-05 4.129421347431476e-19) +(0.01411780134163868 4.054493534097361e-05 4.955198487499738e-19) +(0.01424815787723325 4.040137028677307e-05 4.150875311713376e-19) +(0.01436471085325698 3.935648692886399e-05 -3.405524718226748e-20) +(0.01446806048183638 3.748306221825796e-05 4.758063724049452e-19) +(0.01455679168162418 3.474365196801196e-05 5.091704492182838e-19) +(0.01462415619577487 3.126376425631474e-05 -2.265590903047894e-19) +(0.01466139377362571 2.706802740935311e-05 -8.394958931012009e-20) +(0.01465799782621468 2.250357111454653e-05 -1.333700161461034e-20) +(0.0146125081627079 1.772767229020331e-05 1.001717118296969e-19) +(0.014533288052593 1.311838235360663e-05 2.404409870307489e-19) +(0.0144446661838677 9.171772904772292e-06 2.897120476435368e-20) +(0.01441326817317807 5.131593779181542e-06 1.526067187381194e-21) +(0.01444390062155886 4.757639013882606e-07 -3.425127519667846e-20) +(0.01279740531216076 -3.022309898949275e-06 -5.823393518832431e-21) +(0.01275402448031716 -5.011194716287704e-06 -1.04444449008944e-19) +(0.01278083300656684 -6.591465340521055e-06 -1.025167698326761e-19) +(0.01288209317412143 -9.016092345037124e-06 -5.285018129026933e-20) +(0.01298563621524188 -1.219840880476104e-05 -1.410500247972238e-20) +(0.01306378824965695 -1.480805770932951e-05 -4.463312258889069e-20) +(0.01311358809680625 -1.661366234634564e-05 1.105091511355814e-20) +(0.01313739910246175 -1.80423810733697e-05 1.024852158053961e-19) +(0.01314205554256543 -1.909349794191978e-05 -3.953438494056586e-20) +(0.01313413667154978 -1.991899789015583e-05 -5.79811711877884e-20) +(0.01311593512349241 -2.056849201968958e-05 -3.668074269057935e-20) +(0.01308501988473914 -2.106621575692672e-05 1.027546221964687e-19) +(0.01303656058071984 -2.134860966157759e-05 7.576448883592952e-20) +(0.01296493549497403 -2.134893125740454e-05 2.060439027112613e-19) +(0.01286696415405193 -2.094423162427973e-05 2.212668606166441e-19) +(0.01274160432856775 -2.04734558287239e-05 2.235983967142567e-19) +(0.01258162102389728 -1.949317742822569e-05 3.159911997188178e-19) +(0.01241792458283739 -1.81015515894551e-05 5.778968485743738e-19) +(0.012269902826022 -1.683720944141144e-05 2.738533477120534e-19) +(0.01212926623460376 -1.619702165690865e-05 -1.834184007666744e-19) +(0.01199452190736497 -1.548359744331317e-05 -4.305151640162859e-19) +(0.01186661229618706 -1.46709945189745e-05 -4.359393406930775e-19) +(0.01174571129536988 -1.384383177523398e-05 -2.557968087735851e-19) +(0.01163185854948193 -1.300284490041843e-05 -5.179550850161784e-20) +(0.01152517511639666 -1.214485124464447e-05 -4.111764687534492e-19) +(0.0114257648973947 -1.127495867342198e-05 -7.034309870903971e-19) +(0.01133369779335814 -1.039644664425769e-05 -2.165690004544369e-19) +(0.01124903022687049 -9.510467401262322e-06 -2.490879102965173e-20) +(0.01117181170777366 -8.617754474192159e-06 2.098617550487723e-19) +(0.01110208637185491 -7.7186456332627e-06 3.026353571585729e-19) +(0.01103989708846315 -6.812845169292079e-06 2.82229110971458e-19) +(0.01098529045444012 -5.899401207312573e-06 3.501086344345492e-19) +(0.01093832189014964 -4.976710953315164e-06 8.278853271752741e-19) +(0.0108990607871437 -4.042530109653929e-06 5.586023992135178e-19) +(0.0108675955797311 -3.093950533986696e-06 3.251043681080011e-19) +(0.01084403919512466 -2.127578958679949e-06 2.979327106282509e-19) +(0.01082853178343943 -1.13918501786268e-06 -8.926286271296307e-20) +(0.01082125126508205 -1.26325309061836e-07 1.950818908763887e-19) +(0.01082236381143778 9.191070898061161e-07 -1.35273207382081e-19) +(0.01083215780816314 2.006233523171459e-06 2.779256431148942e-19) +(0.01085095381935487 3.138166530994083e-06 1.307413164905109e-19) +(0.01087911192986612 4.319682363929736e-06 -4.638385310396976e-19) +(0.01091703257113523 5.556104369205778e-06 -5.676852515372938e-19) +(0.01096515929980906 6.852213175336924e-06 -2.150929391851099e-19) +(0.01102396806208731 8.212900428542669e-06 3.601964969456956e-19) +(0.01109398346471979 9.640579766965636e-06 7.715684120098953e-19) +(0.01117571869006183 1.114020993479053e-05 9.577545691291735e-19) +(0.01126979205448912 1.270532901739857e-05 7.819291289167164e-19) +(0.01137659472355427 1.434935682911722e-05 -1.251486697506653e-19) +(0.01149703347261925 1.602922224120376e-05 -4.624328104176275e-19) +(0.01163066594762805 1.781617917084299e-05 -5.949788573925691e-20) +(0.01177995430222483 1.95259569508799e-05 5.253388247265985e-20) +(0.01194055841404256 2.141361121001792e-05 1.070700831226041e-19) +(0.01212172238902374 2.309417727122434e-05 7.916484507520857e-19) +(0.01230653995156581 2.443345903058133e-05 6.961738842608508e-19) +(0.01246873687336902 2.531807918015742e-05 4.342682542556259e-19) +(0.01260931829048942 2.624117229609188e-05 6.300838327905095e-19) +(0.0127328188150435 2.677593980919797e-05 3.736550146980983e-19) +(0.01283953420949473 2.663228971655711e-05 3.731306937591086e-19) +(0.01293122485143107 2.587297780942052e-05 2.091744128997557e-19) +(0.01300868659402071 2.455371689464639e-05 4.650506064980719e-19) +(0.01307083909363495 2.265182660792187e-05 3.582895216078867e-19) +(0.01311144082259383 2.026929520697783e-05 -2.300124052248891e-19) +(0.01312251052726215 1.743536121999529e-05 -1.509929162549167e-19) +(0.01309460618818213 1.440696733371827e-05 3.014126284497737e-20) +(0.01302749006401199 1.128573795050387e-05 3.988006683328983e-20) +(0.01293053722258412 8.332594345662108e-06 3.158295048895932e-19) +(0.01282832385593959 5.853938646805136e-06 5.930829425168539e-20) +(0.01278655205964137 3.199266594742194e-06 1.100577009043648e-19) +(0.01280782683477093 1.162842190615934e-08 -2.318339031503993e-20) +(0.01104619366947107 -1.961699933103173e-06 -9.500492650419999e-21) +(0.01100418772354841 -3.006004788109108e-06 -1.436645575356014e-19) +(0.01103563708118677 -3.917348845275271e-06 -8.709968502763221e-20) +(0.01113950803205344 -5.532281377094752e-06 9.460011372721844e-21) +(0.01124425560411029 -7.594405883240567e-06 7.07576652537321e-20) +(0.01132579233147772 -9.19585988732496e-06 -3.686162895931147e-20) +(0.01138238404866839 -1.026840104140388e-05 8.535758713279855e-20) +(0.01141591587817648 -1.111596997291036e-05 1.249247510060581e-19) +(0.01143261548579735 -1.173625357760135e-05 6.128933980416781e-21) +(0.01143832062585481 -1.223435530915426e-05 -1.320261265650844e-19) +(0.01143480750635588 -1.264143489012925e-05 -3.292197921967964e-20) +(0.01141944228731287 -1.296565669009538e-05 1.076003048542188e-19) +(0.01138753754933405 -1.315757463831101e-05 1.055137518530711e-19) +(0.01133373824757918 -1.316770022441431e-05 2.464856574182806e-19) +(0.01125511679148038 -1.290958561888218e-05 1.988660657633694e-19) +(0.01115088347539679 -1.260887365148629e-05 2.708655758427912e-19) +(0.01101359297578463 -1.194521985652239e-05 3.375774249004458e-19) +(0.01087354006448367 -1.100364210050045e-05 5.550287199071198e-19) +(0.01074875271444849 -1.024102443373234e-05 4.372236365133644e-19) +(0.01062957449690098 -9.904840155843606e-06 -2.419891364187086e-19) +(0.01051502983756956 -9.481417002754099e-06 -5.274912558719333e-19) +(0.01040632711010484 -8.986109588500848e-06 -6.305572463469786e-19) +(0.01030363409407474 -8.482729012791477e-06 -1.82157764565609e-19) +(0.01020698413325233 -7.969652176924784e-06 -4.924571711787915e-19) +(0.01011649917053457 -7.444901681495643e-06 -4.460326407341954e-19) +(0.01003227657445433 -6.912307194172714e-06 -5.938619000714948e-19) +(0.009954378526541886 -6.374017528024705e-06 9.493972958334003e-20) +(0.009882855823007897 -5.83071661395237e-06 1.759219622665585e-19) +(0.009817753810523805 -5.282859016206064e-06 4.556054259157835e-19) +(0.0097591134716694 -4.730651177602402e-06 2.765877697016007e-19) +(0.00970697527674569 -4.173892057133396e-06 3.264808540708717e-19) +(0.009661383798486948 -3.611945501001341e-06 2.165619962867844e-19) +(0.009622392346297009 -3.043771212101479e-06 1.099529600543841e-18) +(0.009590067413642791 -2.46792515642232e-06 5.808774071231133e-19) +(0.009564493285293435 -1.882547980476193e-06 4.32711099383292e-19) +(0.009545776736991009 -1.285492632194283e-06 1.583636294916707e-21) +(0.00953404916101994 -6.740668479975244e-07 -4.923042411630714e-19) +(0.009529477092669648 -4.641517388874257e-08 1.967666931243557e-19) +(0.009532214302123514 6.027396899900395e-07 -1.076663111845589e-19) +(0.0095425408530145 1.278819539512217e-06 3.27704214852093e-19) +(0.009560750146257251 1.983506907605143e-06 6.015544708306265e-20) +(0.009587168185826004 2.719740936224537e-06 -3.174653636776894e-19) +(0.009622157252486684 3.490881053290987e-06 -5.021610664937721e-19) +(0.009666118243338769 4.2999190435157e-06 -1.106191251244542e-19) +(0.009719479711234469 5.149914337378367e-06 3.791863822123666e-19) +(0.009782714102843022 6.042305868883358e-06 8.653395977881068e-19) +(0.009856278341008948 6.98022303525423e-06 7.94235377192143e-19) +(0.009940730981750093 7.959319136793006e-06 8.753549468067717e-19) +(0.01003640113405167 8.988352078146688e-06 -2.238610833810301e-19) +(0.01014413353824384 1.00389606360252e-05 -4.571146779377904e-19) +(0.01026342158961797 1.11582201004797e-05 1.859818706934041e-19) +(0.01039668230444506 1.222446984698936e-05 2.778214944356872e-19) +(0.01053948293184754 1.340368358207447e-05 1.981975795350386e-19) +(0.01070108652223526 1.440773130874441e-05 7.639631841931309e-19) +(0.01086416582514936 1.516292922072355e-05 5.702688861428217e-19) +(0.01100247107701129 1.569020062736456e-05 2.127184636824935e-19) +(0.0111184983938117 1.630094365104269e-05 3.817358855748448e-19) +(0.01121691744105121 1.663864250629126e-05 6.410753145989174e-19) +(0.01129774114369717 1.652287512569497e-05 5.370001032936019e-19) +(0.01136287571702479 1.601321831745409e-05 -9.392751179945172e-20) +(0.01141341583698466 1.514710244508381e-05 4.02729140401598e-19) +(0.01144869476757288 1.391261139542145e-05 4.26009092456291e-20) +(0.01146311806661184 1.238583853414825e-05 -3.688820707918598e-19) +(0.0114496238919851 1.059495459696937e-05 -1.811389926623567e-19) +(0.01139997511234749 8.716001049858414e-06 9.502046181853402e-20) +(0.01131508365519399 6.809695560225294e-06 1.195220196421805e-19) +(0.01120505099144574 5.047622897232395e-06 2.630023278410722e-19) +(0.01109444430366909 3.592818364123791e-06 3.714860446056665e-20) +(0.01104661536062531 1.930927025622716e-06 4.671077098478135e-20) +(0.01106130611944714 -1.322099379416691e-07 -2.973181381764972e-20) +(0.00911912800733577 -1.116569549424099e-06 -1.320018554871793e-20) +(0.009083768150080026 -1.5762056072459e-06 -9.160908406944497e-20) +(0.009123270283197494 -2.055132574386487e-06 -5.924144066210376e-20) +(0.009231398173052829 -3.041512422383152e-06 -1.531983663909601e-20) +(0.009339932097472388 -4.251075633558478e-06 5.516211955585096e-20) +(0.009428490550596823 -5.141272516906108e-06 1.995629419721999e-21) +(0.009495712858435505 -5.725557523985057e-06 5.499102648874148e-20) +(0.0095426965762911 -6.190684059856072e-06 1.610885032565896e-19) +(0.009574908241782139 -6.533291134565091e-06 1.659458306105661e-20) +(0.009597355869221681 -6.818811867198244e-06 -7.881633595925009e-20) +(0.009611278205040499 -7.064953533433258e-06 -1.076457832760459e-20) +(0.009613882413822349 -7.271111794261836e-06 6.079914894020464e-20) +(0.009600640179308072 -7.402835176005768e-06 6.998934008579005e-20) +(0.009566475126933422 -7.426915413684076e-06 8.910707611268175e-20) +(0.009508678559244641 -7.288475099609966e-06 1.128386158086324e-19) +(0.009426575154847254 -7.116373667179664e-06 1.657770137540895e-19) +(0.009313023125186002 -6.707188165762381e-06 3.161519757106226e-19) +(0.009197399457160612 -6.127855459733678e-06 5.699790216475332e-19) +(0.00909578608094822 -5.72431205536161e-06 3.150114330652664e-19) +(0.008997782112271025 -5.572410091379459e-06 -2.642764598965767e-19) +(0.008903219863441527 -5.341094034026409e-06 -5.203005053168376e-19) +(0.008813478504580018 -5.064915096691991e-06 -7.068529626803868e-19) +(0.008728675367920113 -4.785216116820411e-06 -3.173200674352495e-19) +(0.008648839932597928 -4.499111316747524e-06 -6.09136882354713e-19) +(0.00857409537902787 -4.205641095744935e-06 -4.860148016229258e-19) +(0.008504532064245899 -3.907410733089223e-06 -5.292245294429407e-19) +(0.008440206069671949 -3.605680144915669e-06 -7.141892094744019e-20) +(0.008381164628121902 -3.300818031533495e-06 1.607909349099243e-19) +(0.008327450604240536 -2.993101042262074e-06 4.710057701266357e-19) +(0.008279103075761558 -2.682657167152007e-06 1.871127449780381e-19) +(0.008236160970601428 -2.369357057003944e-06 7.735086055487928e-20) +(0.008198667173402193 -2.052829435425606e-06 9.720682277982118e-20) +(0.008166672490273974 -1.732470911121335e-06 9.247081562730167e-19) +(0.008140239503050106 -1.407438643463265e-06 7.699626125766713e-19) +(0.008119446471399904 -1.076657780839582e-06 5.302130719005329e-19) +(0.008104391354618497 -7.388795601272904e-07 2.062382401473396e-19) +(0.008095193433877631 -3.925584603803476e-07 -7.306682907434074e-19) +(0.008092002807470288 -3.63238413682177e-08 1.434214232958679e-20) +(0.008094963629727305 3.328468951519644e-07 -1.301100434795905e-19) +(0.008104330067989595 7.177461571535689e-07 4.574823876834317e-19) +(0.008120360823680346 1.119306611978462e-06 1.869696931891031e-19) +(0.00814334029956954 1.539180323198588e-06 -2.086790527039065e-19) +(0.008173584016537897 1.979305260082326e-06 -4.389111919697084e-19) +(0.008211440870281906 2.441397647338605e-06 7.150720068238373e-20) +(0.008257282391261925 2.927202906195e-06 4.746485655038181e-19) +(0.008311518506238062 3.437535842616324e-06 7.442165474419148e-19) +(0.008374541337038768 3.974164263799035e-06 6.022214996074817e-19) +(0.008446837457287961 4.534570005238699e-06 9.735855746806454e-19) +(0.008528673485372736 5.123695329082049e-06 -1.984666233855017e-19) +(0.008620807974532834 5.725258262058861e-06 -4.329185165744389e-19) +(0.008722709899104607 6.365963850953255e-06 2.641737844456469e-19) +(0.008836655670172285 6.9764514528778e-06 2.259811098683233e-19) +(0.008958332830727644 7.646478228326037e-06 3.097108433360049e-19) +(0.009096649581206168 8.185592829167384e-06 8.271558835608237e-19) +(0.009233928164179282 8.556694754479183e-06 7.290247808007948e-19) +(0.009344879847666522 8.847271996616645e-06 2.428217305735009e-19) +(0.009433542940622859 9.218581469888483e-06 3.985335924757766e-19) +(0.009504376789362652 9.408368775375371e-06 1.445681318159439e-19) +(0.009557212869370307 9.324121952922977e-06 5.233365650065445e-19) +(0.009594245928736405 9.012651141046349e-06 2.075742978519321e-19) +(0.009616948282182741 8.494899781014525e-06 4.076486187825614e-19) +(0.009625123566337454 7.76585933301034e-06 1.31769558630498e-19) +(0.009613963876966173 6.875596452380323e-06 -1.382621670003557e-19) +(0.009577442390046202 5.847363657775237e-06 -1.847110064827198e-19) +(0.009508651254676507 4.78929727427998e-06 5.296595107513806e-20) +(0.009409522246404454 3.735486944537748e-06 1.938998631690531e-19) +(0.009290592186617111 2.790129145028993e-06 2.208156106057683e-19) +(0.009176183872794823 2.023313748178165e-06 5.443016941490259e-20) +(0.009125598391356522 1.076247134336098e-06 4.072718362156725e-20) +(0.009135473880794867 -1.355617664364025e-07 -4.690007565446779e-20) +(0.006884941158110847 -5.268753146128526e-07 -1.414752028457277e-20) +(0.006860555136142339 -6.70993334763327e-07 -6.790892710108911e-20) +(0.006908511030429498 -8.7401993329286e-07 -1.965165846840177e-20) +(0.007019089044261543 -1.378356239125817e-06 -8.343855663892927e-21) +(0.007131434318351968 -1.967542840317011e-06 4.111750427257545e-20) +(0.007228593190366313 -2.377818686233513e-06 -8.026875051709102e-20) +(0.007308589341914454 -2.646864838021849e-06 1.973072307263732e-20) +(0.007371473480015494 -2.864939358331289e-06 2.12946126798502e-19) +(0.007421715853068505 -3.029077441254831e-06 6.833254216005002e-21) +(0.007463350351895544 -3.173042349187041e-06 -8.068996116095307e-20) +(0.007497046584999753 -3.306494216446125e-06 2.698807853941137e-20) +(0.007519899620779404 -3.426467474389805e-06 9.208525385950905e-20) +(0.0075275360894782 -3.513682342378569e-06 5.236411548218192e-20) +(0.007515148842803398 -3.549048864503569e-06 1.305962189324055e-20) +(0.007480157487799989 -3.501870062580271e-06 3.365597917316097e-20) +(0.007421812084855241 -3.429988070099993e-06 1.642235053352297e-19) +(0.007333967312441157 -3.225839736193092e-06 3.263062416538709e-19) +(0.007244258646765374 -2.918318792293898e-06 4.417342632594789e-19) +(0.007166280738816502 -2.746574905731721e-06 1.415036481483697e-19) +(0.007089938250228422 -2.692953593413507e-06 -3.520568861705617e-19) +(0.007015979438177946 -2.582572789168439e-06 -3.72867802865359e-19) +(0.00694575763985246 -2.45007103889163e-06 -6.428832851440199e-19) +(0.006879310253524861 -2.316724816790349e-06 -4.235058678865819e-19) +(0.00681666915158117 -2.179724626275995e-06 -6.778093692962778e-19) +(0.006757953450019181 -2.038849926892976e-06 -4.008830543657175e-19) +(0.006703242848440644 -1.89560685114002e-06 -6.699819032675121e-19) +(0.006652586945913888 -1.750606810523687e-06 -1.247010874232086e-19) +(0.006606029271704014 -1.60402614269264e-06 1.705084857483914e-19) +(0.006563609780736172 -1.456017488196383e-06 4.793749827417768e-19) +(0.006525365108003127 -1.30664503998707e-06 -6.378074648982797e-21) +(0.00649133187734342 -1.155850970359594e-06 4.915865393977679e-20) +(0.006461550002771391 -1.003452181693554e-06 -3.260902408802889e-20) +(0.006436066057355422 -8.4914652941718e-07 7.069044493290226e-19) +(0.006414936223149494 -6.925235478482344e-07 2.368911564824835e-19) +(0.006398229539018151 -5.330506317184402e-07 6.603703483160297e-19) +(0.006386031092260529 -3.701170606529612e-07 1.703977612535598e-19) +(0.006378443152936952 -2.029610776526439e-07 -7.629288089730393e-19) +(0.006375593097326572 -3.068388660470637e-08 -1.183177536519559e-19) +(0.00637761370573203 1.481221311557702e-07 -1.800825998610725e-19) +(0.006384715659639953 3.34578093006082e-07 3.29154149475685e-19) +(0.006397113912960784 5.291821004657658e-07 4.341650500772392e-19) +(0.006415041900806039 7.327492554141835e-07 -1.306366764672808e-19) +(0.006438758157886445 9.462317839582159e-07 -3.676728599035394e-19) +(0.006468548280473402 1.17047712869964e-06 1.609207328310871e-20) +(0.006504715650646982 1.406342611780192e-06 6.318523837048764e-19) +(0.006547595348947903 1.65424951697967e-06 6.253977071424802e-19) +(0.006597505337402278 1.915029185546223e-06 3.691151579549975e-19) +(0.006654845469206923 2.187557581927293e-06 7.708537834129539e-19) +(0.006719821939997362 2.47400348683288e-06 -3.143106173307236e-19) +(0.006793075137723076 2.767008611665348e-06 -3.845106478289528e-19) +(0.006874109070942622 3.078158345216267e-06 8.890707756517273e-20) +(0.006964920308696249 3.37694551598305e-06 1.428548621087533e-19) +(0.007061639443605654 3.697228691726777e-06 4.751769599242537e-19) +(0.007172204760957156 3.940148562178893e-06 9.940104893965459e-19) +(0.007279032800196376 4.072349572705065e-06 4.358641798279649e-19) +(0.007359038080630952 4.198863921011733e-06 2.857367357585714e-19) +(0.007417382159824808 4.381001591576644e-06 2.610971736326394e-19) +(0.007457935862025002 4.458202176302569e-06 1.933701799705406e-19) +(0.007480626209752414 4.399155368068766e-06 5.906232694131917e-19) +(0.007488077922293265 4.233655035872891e-06 2.441528097949369e-19) +(0.00748221407802244 3.969737541801495e-06 3.197589828968884e-19) +(0.00746338092519347 3.606155867438603e-06 9.755949291302783e-20) +(0.007427768409628476 3.169140144408085e-06 -2.207138704681846e-19) +(0.007370559644660982 2.674779310849025e-06 -1.856945826316149e-19) +(0.007286388841593826 2.177814705943537e-06 2.787797762016853e-20) +(0.007178031520976538 1.695557712932903e-06 2.02058447405981e-19) +(0.007056032517079466 1.278441989648007e-06 1.910680520487138e-19) +(0.006943712321283732 9.463237621867356e-07 5.150111476104103e-20) +(0.006893501888088159 5.013686688608062e-07 2.884188017720819e-20) +(0.006899368162479756 -9.129786104126737e-08 -3.363784494535571e-20) +(0.004203724509955611 -1.564934864434606e-07 -1.35623433155746e-20) +(0.004190594887947729 -1.60893642198796e-07 -3.743982713371022e-20) +(0.004234471730181276 -2.010714078653098e-07 -1.335617980579763e-20) +(0.004326584488606532 -3.623712883469933e-07 -3.275387591471062e-21) +(0.004422710516587352 -5.410442586904481e-07 2.523548070727944e-20) +(0.004510881211549797 -6.56830352697499e-07 -3.452719671305001e-20) +(0.004588552201148365 -7.342460239911781e-07 4.887596004278719e-20) +(0.004654769907088082 -7.980911672291045e-07 1.434284041355066e-19) +(0.00471244240651219 -8.471355629191116e-07 -2.306516330061174e-20) +(0.004764185176848166 -8.929663092075525e-07 -8.568312975534195e-20) +(0.004810041492976111 -9.40101710209061e-07 3.749789354213082e-20) +(0.004847225204615827 -9.867088893667739e-07 8.182485363986479e-20) +(0.004871743948889789 -1.026368861726127e-06 -1.545741899824578e-21) +(0.004879243436936184 -1.051776988748787e-06 -7.874790991760287e-21) +(0.004867200246757926 -1.05103223063654e-06 2.087493244491306e-20) +(0.004834610593011236 -1.038069191177192e-06 1.545807049917774e-19) +(0.004777124541232025 -9.768608025933917e-07 3.527306800178975e-19) +(0.004717580232815759 -8.649836919333363e-07 2.852296871541103e-19) +(0.004666196798724981 -8.291824570268923e-07 9.877448357274996e-20) +(0.004614879004486701 -8.218979488475618e-07 -2.899030525703975e-19) +(0.004565020431699165 -7.876893522088974e-07 -1.78531329041237e-19) +(0.004517651438011293 -7.477905459259141e-07 -3.673570152299717e-19) +(0.004472732833868538 -7.082015179475005e-07 -3.142055414789518e-19) +(0.0044302997144876 -6.672510899564892e-07 -5.991288733115506e-19) +(0.004390448639930415 -6.250771806782779e-07 -2.891185958402276e-19) +(0.004353237885018023 -5.822406574336964e-07 -1.719025367614098e-19) +(0.004318704323764031 -5.388977613757246e-07 5.558328023706937e-20) +(0.004286881586981208 -4.950772044970409e-07 2.659941548915754e-19) +(0.004257800587536816 -4.508200181492673e-07 3.36007284070288e-19) +(0.004231489675808787 -4.061320915676121e-07 1.775602674475591e-19) +(0.004207977192403561 -3.609778920375603e-07 1.953957925429632e-20) +(0.004187293826405774 -3.152820285723867e-07 -2.071322979317654e-19) +(0.004169474905575329 -2.689326398120549e-07 4.43610811649646e-19) +(0.004154562441575096 -2.217805577342468e-07 2.452242563078067e-19) +(0.004142607387031063 -1.736400282221636e-07 4.169230994746046e-19) +(0.004133671802979107 -1.243074390038087e-07 1.103827756202955e-19) +(0.004127829600420123 -7.35281738706138e-08 -4.214992006319403e-19) +(0.004125171951847764 -2.085963431697951e-08 -2.265007530195766e-19) +(0.004125808675249323 3.409878010492471e-08 -2.60180228784791e-19) +(0.004129882379752187 9.156673339740634e-08 2.336878326784112e-19) +(0.004137543071866243 1.517828686545275e-07 5.135138872372493e-20) +(0.00414895392408321 2.150334145879593e-07 -7.589008797523015e-20) +(0.004164295623366497 2.816538901603426e-07 -2.825771595568916e-19) +(0.004183768115856849 3.5195493133257e-07 -3.703695498015362e-21) +(0.004207583647670154 4.262398332317866e-07 4.424342055123657e-19) +(0.004235977568724224 5.0471178658314e-07 4.570859193696056e-19) +(0.004269172459737268 5.876383009874603e-07 5.4134655813066e-20) +(0.004307451898159662 6.748402977891931e-07 5.307089511009732e-19) +(0.004350957336901386 7.667757538277168e-07 -1.269003334554832e-19) +(0.004400153469865505 8.618749960425385e-07 -2.962740477696505e-19) +(0.004454664703905504 9.621910009263451e-07 -9.683463719161472e-20) +(0.004515976916212533 1.062031707670536e-06 3.864136186691884e-20) +(0.004581182937980027 1.162068919044384e-06 2.908889259155982e-19) +(0.004656230723672665 1.236539839058772e-06 7.478320647535391e-19) +(0.004725848464803706 1.253626535087306e-06 4.417757985775682e-19) +(0.004771795582201423 1.287599502650741e-06 3.322922567911629e-19) +(0.00479918308950443 1.345342110174438e-06 3.404797982433227e-20) +(0.004810875802268374 1.359151381161276e-06 1.05340802904971e-19) +(0.004807264586330597 1.329115799325018e-06 4.974370176725502e-19) +(0.004791255941978884 1.267875590693528e-06 2.919926474984389e-19) +(0.004765066603588997 1.176360479140361e-06 2.422704973601663e-19) +(0.004729552092122721 1.054936803874498e-06 -1.190674703920866e-22) +(0.004682319791852201 9.118224501732032e-07 -1.236020513351492e-19) +(0.004620242361541826 7.545195492695354e-07 -1.772433556585037e-19) +(0.00453999544299814 6.010263011390464e-07 1.235856811988665e-20) +(0.004444536637698004 4.589835478626062e-07 1.218652504951277e-19) +(0.004342588064846704 3.459515182153084e-07 1.2366029202443e-19) +(0.004252329363658842 2.630439601198223e-07 3.445363390562224e-20) +(0.004211657107637164 1.409734124792645e-07 1.214642807031343e-20) +(0.004214003286929719 -3.91133519966296e-08 -2.037140562828111e-20) +(0.001363800125766278 8.734308837691642e-09 -1.225491498710104e-20) +(0.001358616318311212 2.934728730125162e-08 -4.440875741723339e-21) +(0.001375013871416034 2.754616239885463e-08 -4.53895916988414e-21) +(0.001409368906225562 2.049592804037239e-08 6.823496761108542e-21) +(0.001445542207770582 2.32506698318628e-08 8.203806094801497e-21) +(0.00147979254453006 3.565709469523641e-08 -1.24346780988304e-20) +(0.001511131970541517 5.675490654620547e-08 2.536580845163578e-20) +(0.0015389238964961 8.536582431461598e-08 4.420840782055577e-20) +(0.001564179442684053 1.196487545379506e-07 -7.489874011113489e-21) +(0.001587770466241762 1.568680251363199e-07 -8.117860316625288e-21) +(0.00160958896982718 1.941622759795841e-07 -7.975395985891362e-21) +(0.001628358595955238 2.277698893030532e-07 6.210664022860953e-21) +(0.001642273692997135 2.520260331528977e-07 1.870678758491186e-20) +(0.001649305834646338 2.627422442581773e-07 -4.674694341989042e-21) +(0.001648181058750949 2.576424879151272e-07 2.825280685250705e-20) +(0.001638289096986768 2.447995609587956e-07 2.940580407490302e-20) +(0.001617784845335324 2.400883127512856e-07 1.277604451299483e-19) +(0.001596417338158327 2.326389815302019e-07 9.65969653808968e-20) +(0.001578253508802159 2.051270863812037e-07 3.329235407605763e-20) +(0.001559691175309387 1.920144381943094e-07 -9.796456297896354e-20) +(0.001541692786782375 1.804933699898007e-07 -6.08419554870288e-20) +(0.001524637680260215 1.668955539438594e-07 -1.699094430663584e-19) +(0.00150847239641739 1.526641145277533e-07 -1.556659733380337e-19) +(0.001493213755118656 1.381601596689807e-07 -1.857595981784001e-19) +(0.001478899148972611 1.234072808009723e-07 -1.420057974868549e-19) +(0.001465547114572834 1.085608336949853e-07 -6.186553457535726e-20) +(0.001453168713056467 9.380241313418788e-08 -6.647261253241144e-20) +(0.001441774402918805 7.928185595880322e-08 6.986062102818171e-20) +(0.001431373678625073 6.514239123210744e-08 1.156457717210946e-19) +(0.001421975189146794 5.15014622827871e-08 6.382833621683209e-20) +(0.001413587676027376 3.848357531143343e-08 1.698057932313884e-21) +(0.001406221062768833 2.620401786814081e-08 -1.595241947389759e-19) +(0.001399887072124897 1.476443811779119e-08 1.481856454620759e-19) +(0.001394600180392638 4.268461826173345e-09 1.800597429273893e-19) +(0.001390378274865147 -5.185222650999812e-09 1.384663049997345e-19) +(0.001387243590431959 -1.34861226262258e-08 3.522234128052694e-20) +(0.001385222872436 -2.053342328614215e-08 -4.69132083757275e-20) +(0.001384349458773492 -2.614787158277453e-08 -7.550522179581554e-20) +(0.001384668367495103 -3.022442569894109e-08 -8.74249171245311e-20) +(0.001386230115404416 -3.269274888955807e-08 1.656405410060343e-19) +(0.001389089021988264 -3.338317918959807e-08 2.602719499175894e-20) +(0.00139330550729984 -3.211862678639201e-08 -2.445009828471458e-20) +(0.001398946898402926 -2.87057368793445e-08 -1.854984577974695e-19) +(0.001406087864681801 -2.293029706100928e-08 -2.860285110509491e-21) +(0.001414807977598707 -1.456174257078542e-08 2.382592156005871e-19) +(0.001425196059711985 -3.324603140122305e-09 2.452081886251925e-19) +(0.001437335861261465 1.100779755129515e-08 -7.176063902827148e-20) +(0.001451336439720329 2.886511609481984e-08 2.671598292242198e-19) +(0.001467249458569536 5.021525889553891e-08 5.084714044587103e-20) +(0.001485260284100254 7.620634679493589e-08 -1.896238660037908e-19) +(0.001505210854548683 1.050353527969048e-07 -3.267312113127166e-20) +(0.001527712746770127 1.420150981987615e-07 -7.796994670553121e-20) +(0.001551562537277693 1.742632561512176e-07 9.522587121055117e-20) +(0.001579243441490516 2.119443911796001e-07 2.482570035657033e-19) +(0.00160420928216066 2.455920952062611e-07 1.499238034640443e-19) +(0.001618905037399443 2.712087999531601e-07 1.118808730599363e-19) +(0.001625889659336271 2.939138990517222e-07 1.190315664034537e-20) +(0.001626255338138536 3.04401817288188e-07 3.311046446801061e-20) +(0.001620296175473309 2.989285277405187e-07 1.634406916648761e-19) +(0.001609486868246981 2.798064000796421e-07 9.558438894434123e-20) +(0.001594922761415076 2.487696493891408e-07 1.594679315179427e-19) +(0.001577107821037989 2.087429584135478e-07 -4.645325509671285e-20) +(0.001555253686484455 1.6137816345076e-07 -3.704788039723976e-20) +(0.001528321931024057 1.086647915333859e-07 -5.778923271520281e-20) +(0.001495238310886422 5.483012156777647e-08 3.833218425584569e-21) +(0.001457322265468025 7.535075726985338e-09 3.921331299262971e-20) +(0.00141791392549007 -1.815504364455327e-08 4.111065931132935e-20) +(0.001383565949478976 -2.523625472563735e-08 1.147381059963669e-20) +(0.001367990213727046 -2.858205546659102e-08 -1.082310005967352e-20) +(0.001368299119237671 -1.993959416557688e-08 -6.694344957135705e-21) +) +; + +boundaryField +{ + inlet + { + type cyclic; + } + outlet + { + type cyclic; + } + topWall + { + type fixedValue; + value uniform (0 0 0); + } + bottomWall + { + type fixedValue; + value uniform (0 0 0); + } + front + { + type symmetry; + } + back + { + type symmetry; + } +} +// ************************************************************************* // \ No newline at end of file diff --git a/PeriodicHill/0.orig/betaFINuTildaData b/PeriodicHill/0.orig/betaFINuTildaData new file mode 100644 index 00000000..40256e81 --- /dev/null +++ b/PeriodicHill/0.orig/betaFINuTildaData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFINuTildaData; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + bottomWall + { + type zeroGradient; + } + front + { + type symmetry; + } + back + { + type symmetry; + } + inlet + { + type cyclic; + } + outlet + { + type cyclic; + } + topWall + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/PeriodicHill/0.orig/nuTilda b/PeriodicHill/0.orig/nuTilda new file mode 100755 index 00000000..711d2687 --- /dev/null +++ b/PeriodicHill/0.orig/nuTilda @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 1e-8; + +boundaryField +{ + bottomWall + { + type fixedValue; + value uniform 0; + } + front + { + type symmetry; + } + back + { + type symmetry; + } + inlet + { + type cyclic; + } + outlet + { + type cyclic; + } + topWall + { + type fixedValue; + value uniform 0; + } +} +// ************************************************************************* // \ No newline at end of file diff --git a/PeriodicHill/0.orig/nut b/PeriodicHill/0.orig/nut new file mode 100755 index 00000000..859e268f --- /dev/null +++ b/PeriodicHill/0.orig/nut @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + bottomWall + { + type nutLowReWallFunction; + value uniform 0; + } + front + { + type symmetry; + } + back + { + type symmetry; + } + inlet + { + type cyclic; + } + outlet + { + type cyclic; + } + topWall + { + type nutLowReWallFunction; + value uniform 0; + } +} +// ************************************************************************* // \ No newline at end of file diff --git a/PeriodicHill/0.orig/p b/PeriodicHill/0.orig/p new file mode 100755 index 00000000..903b8493 --- /dev/null +++ b/PeriodicHill/0.orig/p @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 2 -2 0 0 0 0 ]; + +internalField uniform 0; + +boundaryField +{ + bottomWall + { + type zeroGradient; + } + topWall + { + type zeroGradient; + } + inlet + { + type cyclic; + } + outlet + { + type cyclic; + } + front + { + type symmetry; + } + back + { + type symmetry; + } +} +// ************************************************************************* // \ No newline at end of file diff --git a/PeriodicHill/Allclean.sh b/PeriodicHill/Allclean.sh new file mode 100755 index 00000000..ab1676bf --- /dev/null +++ b/PeriodicHill/Allclean.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf 0 + rm -rf postProcessing + rm -rf *.bin *.info *.dat *.xyz *.stl + rm -rf processor* 0.0000* + rm -rf {1..9}* + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done diff --git a/PeriodicHill/FFD/genFFD.py b/PeriodicHill/FFD/genFFD.py new file mode 100644 index 00000000..155ae1ba --- /dev/null +++ b/PeriodicHill/FFD/genFFD.py @@ -0,0 +1,99 @@ +import numpy as np +import sys + +def writeFFDFile(fileName,nBlocks,nx,ny,nz,points): + ''' + Take in a set of points and write the plot 3dFile + ''' + + f = open(fileName,'w') + + f.write('%d\n'%nBlocks) + for i in range(nBlocks): + f.write('%d %d %d '%(nx[i],ny[i],nz[i])) + # end + f.write('\n') + for block in range(nBlocks): + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,0]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,1]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,2]) + # end + # end + # end + # end + f.close() + return + +def returnBlockPoints(corners,nx,ny,nz): + ''' + corners needs to be 8 x 3 + ''' + points = np.zeros([nx,ny,nz,3]) + + # points 1 - 4 are the iMin face + # points 5 - 8 are the iMax face + + for idim in range(3): + edge1 = np.linspace(corners[0][idim],corners[4][idim],nx) + edge2 = np.linspace(corners[1][idim],corners[5][idim],nx) + edge3 = np.linspace(corners[2][idim],corners[6][idim],nx) + edge4 = np.linspace(corners[3][idim],corners[7][idim],nx) + + for i in range(nx): + edge5 = np.linspace(edge1[i],edge3[i],ny) + edge6 = np.linspace(edge2[i],edge4[i],ny) + for j in range(ny): + edge7 = np.linspace(edge5[j],edge6[j],nz) + points[i,j,:,idim] = edge7 + # end + # end + # end + + return points + +################ FFD ############## +nBlocks = 1 + +nx = [5] +ny = [2] +nz = [2] + +corners = np.zeros([nBlocks,8,3]) + +corners[0,0,:] = [-0.01,-0.010,0.0] # lower left front +corners[0,1,:] = [-0.01,-0.010,0.1] # lower left back +corners[0,2,:] = [-0.01,3.1000,0.0] # upper left front +corners[0,3,:] = [-0.01,3.1000,0.1] # upper left back +corners[0,4,:] = [ 9.01,-0.010,0.0] # lower right front +corners[0,5,:] = [ 9.01,-0.010,0.1] # lower right back +corners[0,6,:] = [ 9.01,3.1000,0.0] # upper right front +corners[0,7,:] = [ 9.01,3.1000,0.1] # upper right back + + +points = [] +for block in range(nBlocks): + points.append(returnBlockPoints(corners[block],nx[block],ny[block],nz[block])) + +#print points +fileName = 'periodicHillFFD.xyz' +writeFFDFile(fileName,nBlocks,nx,ny,nz,points) + diff --git a/PeriodicHill/FFD/periodicHillFFD.xyz b/PeriodicHill/FFD/periodicHillFFD.xyz new file mode 100644 index 00000000..9af2570f --- /dev/null +++ b/PeriodicHill/FFD/periodicHillFFD.xyz @@ -0,0 +1,5 @@ +1 +5 2 2 +-0.010000 2.245000 4.500000 6.755000 9.010000 -0.010000 2.245000 4.500000 6.755000 9.010000 -0.010000 2.245000 4.500000 6.755000 9.010000 -0.010000 2.245000 4.500000 6.755000 9.010000 +-0.010000 -0.010000 -0.010000 -0.010000 -0.010000 3.100000 3.100000 3.100000 3.100000 3.100000 -0.010000 -0.010000 -0.010000 -0.010000 -0.010000 3.100000 3.100000 3.100000 3.100000 3.100000 +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000 \ No newline at end of file diff --git a/PeriodicHill/constant/polyMesh/boundary b/PeriodicHill/constant/polyMesh/boundary new file mode 100644 index 00000000..4d9c964b --- /dev/null +++ b/PeriodicHill/constant/polyMesh/boundary @@ -0,0 +1,70 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + inlet + { + type cyclic; + inGroups 1(cyclic); + nFaces 50; + startFace 6880; + matchTolerance 0.0001; + transform unknown; + neighbourPatch outlet; + } + outlet + { + type cyclic; + inGroups 1(cyclic); + nFaces 50; + startFace 6930; + matchTolerance 0.0001; + transform unknown; + neighbourPatch inlet; + } + topWall + { + type wall; + inGroups 1(wall); + nFaces 70; + startFace 6980; + } + bottomWall + { + type wall; + inGroups 1(wall); + nFaces 70; + startFace 7050; + } + front + { + type symmetry; + inGroups 1(symmetry); + nFaces 3500; + startFace 7120; + } + back + { + type symmetry; + inGroups 1(symmetry); + nFaces 3500; + startFace 10620; + } +) + +// ************************************************************************* // diff --git a/PeriodicHill/constant/polyMesh/cellZones b/PeriodicHill/constant/polyMesh/cellZones new file mode 100644 index 00000000..8a455ac7 --- /dev/null +++ b/PeriodicHill/constant/polyMesh/cellZones @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class regIOobject; + location "constant/polyMesh"; + object cellZones; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +0() + +// ************************************************************************* // diff --git a/PeriodicHill/constant/polyMesh/faceZones b/PeriodicHill/constant/polyMesh/faceZones new file mode 100644 index 00000000..49e3922c --- /dev/null +++ b/PeriodicHill/constant/polyMesh/faceZones @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class regIOobject; + location "constant/polyMesh"; + object faceZones; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +0() + +// ************************************************************************* // diff --git a/PeriodicHill/constant/polyMesh/faces b/PeriodicHill/constant/polyMesh/faces new file mode 100644 index 00000000..13dd0865 --- /dev/null +++ b/PeriodicHill/constant/polyMesh/faces @@ -0,0 +1,14144 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class faceList; + location "constant/polyMesh"; + object faces; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +14120 +( +4(1 72 3693 3622) +4(71 3692 3693 72) +4(2 73 3694 3623) +4(72 3693 3694 73) +4(3 74 3695 3624) +4(73 3694 3695 74) +4(4 75 3696 3625) +4(74 3695 3696 75) +4(5 76 3697 3626) +4(75 3696 3697 76) +4(6 77 3698 3627) +4(76 3697 3698 77) +4(7 78 3699 3628) +4(77 3698 3699 78) +4(8 79 3700 3629) +4(78 3699 3700 79) +4(9 80 3701 3630) +4(79 3700 3701 80) +4(10 81 3702 3631) +4(80 3701 3702 81) +4(11 82 3703 3632) +4(81 3702 3703 82) +4(12 83 3704 3633) +4(82 3703 3704 83) +4(13 84 3705 3634) +4(83 3704 3705 84) +4(14 85 3706 3635) +4(84 3705 3706 85) +4(15 86 3707 3636) +4(85 3706 3707 86) +4(16 87 3708 3637) +4(86 3707 3708 87) +4(17 88 3709 3638) +4(87 3708 3709 88) +4(18 89 3710 3639) +4(88 3709 3710 89) +4(19 90 3711 3640) +4(89 3710 3711 90) +4(20 91 3712 3641) +4(90 3711 3712 91) +4(21 92 3713 3642) +4(91 3712 3713 92) +4(22 93 3714 3643) +4(92 3713 3714 93) +4(23 94 3715 3644) +4(93 3714 3715 94) +4(24 95 3716 3645) +4(94 3715 3716 95) +4(25 96 3717 3646) +4(95 3716 3717 96) +4(26 97 3718 3647) +4(96 3717 3718 97) +4(27 98 3719 3648) +4(97 3718 3719 98) +4(28 99 3720 3649) +4(98 3719 3720 99) +4(29 100 3721 3650) +4(99 3720 3721 100) +4(30 101 3722 3651) +4(100 3721 3722 101) +4(31 102 3723 3652) +4(101 3722 3723 102) +4(32 103 3724 3653) +4(102 3723 3724 103) +4(33 104 3725 3654) +4(103 3724 3725 104) +4(34 105 3726 3655) +4(104 3725 3726 105) +4(35 106 3727 3656) +4(105 3726 3727 106) +4(36 107 3728 3657) +4(106 3727 3728 107) +4(37 108 3729 3658) +4(107 3728 3729 108) +4(38 109 3730 3659) +4(108 3729 3730 109) +4(39 110 3731 3660) +4(109 3730 3731 110) +4(40 111 3732 3661) +4(110 3731 3732 111) +4(41 112 3733 3662) +4(111 3732 3733 112) +4(42 113 3734 3663) +4(112 3733 3734 113) +4(43 114 3735 3664) +4(113 3734 3735 114) +4(44 115 3736 3665) +4(114 3735 3736 115) +4(45 116 3737 3666) +4(115 3736 3737 116) +4(46 117 3738 3667) +4(116 3737 3738 117) +4(47 118 3739 3668) +4(117 3738 3739 118) +4(48 119 3740 3669) +4(118 3739 3740 119) +4(49 120 3741 3670) +4(119 3740 3741 120) +4(50 121 3742 3671) +4(120 3741 3742 121) +4(51 122 3743 3672) +4(121 3742 3743 122) +4(52 123 3744 3673) +4(122 3743 3744 123) +4(53 124 3745 3674) +4(123 3744 3745 124) +4(54 125 3746 3675) +4(124 3745 3746 125) +4(55 126 3747 3676) +4(125 3746 3747 126) +4(56 127 3748 3677) +4(126 3747 3748 127) +4(57 128 3749 3678) +4(127 3748 3749 128) +4(58 129 3750 3679) +4(128 3749 3750 129) +4(59 130 3751 3680) +4(129 3750 3751 130) +4(60 131 3752 3681) +4(130 3751 3752 131) +4(61 132 3753 3682) +4(131 3752 3753 132) +4(62 133 3754 3683) +4(132 3753 3754 133) +4(63 134 3755 3684) +4(133 3754 3755 134) +4(64 135 3756 3685) +4(134 3755 3756 135) +4(65 136 3757 3686) +4(135 3756 3757 136) +4(66 137 3758 3687) +4(136 3757 3758 137) +4(67 138 3759 3688) +4(137 3758 3759 138) +4(68 139 3760 3689) +4(138 3759 3760 139) +4(69 140 3761 3690) +4(139 3760 3761 140) +4(140 3761 3762 141) +4(72 143 3764 3693) +4(142 3763 3764 143) +4(73 144 3765 3694) +4(143 3764 3765 144) +4(74 145 3766 3695) +4(144 3765 3766 145) +4(75 146 3767 3696) +4(145 3766 3767 146) +4(76 147 3768 3697) +4(146 3767 3768 147) +4(77 148 3769 3698) +4(147 3768 3769 148) +4(78 149 3770 3699) +4(148 3769 3770 149) +4(79 150 3771 3700) +4(149 3770 3771 150) +4(80 151 3772 3701) +4(150 3771 3772 151) +4(81 152 3773 3702) +4(151 3772 3773 152) +4(82 153 3774 3703) +4(152 3773 3774 153) +4(83 154 3775 3704) +4(153 3774 3775 154) +4(84 155 3776 3705) +4(154 3775 3776 155) +4(85 156 3777 3706) +4(155 3776 3777 156) +4(86 157 3778 3707) +4(156 3777 3778 157) +4(87 158 3779 3708) +4(157 3778 3779 158) +4(88 159 3780 3709) +4(158 3779 3780 159) +4(89 160 3781 3710) +4(159 3780 3781 160) +4(90 161 3782 3711) +4(160 3781 3782 161) +4(91 162 3783 3712) +4(161 3782 3783 162) +4(92 163 3784 3713) +4(162 3783 3784 163) +4(93 164 3785 3714) +4(163 3784 3785 164) +4(94 165 3786 3715) +4(164 3785 3786 165) +4(95 166 3787 3716) +4(165 3786 3787 166) +4(96 167 3788 3717) +4(166 3787 3788 167) +4(97 168 3789 3718) +4(167 3788 3789 168) +4(98 169 3790 3719) +4(168 3789 3790 169) +4(99 170 3791 3720) +4(169 3790 3791 170) +4(100 171 3792 3721) +4(170 3791 3792 171) +4(101 172 3793 3722) +4(171 3792 3793 172) +4(102 173 3794 3723) +4(172 3793 3794 173) +4(103 174 3795 3724) +4(173 3794 3795 174) +4(104 175 3796 3725) +4(174 3795 3796 175) +4(105 176 3797 3726) +4(175 3796 3797 176) +4(106 177 3798 3727) +4(176 3797 3798 177) +4(107 178 3799 3728) +4(177 3798 3799 178) +4(108 179 3800 3729) +4(178 3799 3800 179) +4(109 180 3801 3730) +4(179 3800 3801 180) +4(110 181 3802 3731) +4(180 3801 3802 181) +4(111 182 3803 3732) +4(181 3802 3803 182) +4(112 183 3804 3733) +4(182 3803 3804 183) +4(113 184 3805 3734) +4(183 3804 3805 184) +4(114 185 3806 3735) +4(184 3805 3806 185) +4(115 186 3807 3736) +4(185 3806 3807 186) +4(116 187 3808 3737) +4(186 3807 3808 187) +4(117 188 3809 3738) +4(187 3808 3809 188) +4(118 189 3810 3739) +4(188 3809 3810 189) +4(119 190 3811 3740) +4(189 3810 3811 190) +4(120 191 3812 3741) +4(190 3811 3812 191) +4(121 192 3813 3742) +4(191 3812 3813 192) +4(122 193 3814 3743) +4(192 3813 3814 193) +4(123 194 3815 3744) +4(193 3814 3815 194) +4(124 195 3816 3745) +4(194 3815 3816 195) +4(125 196 3817 3746) +4(195 3816 3817 196) +4(126 197 3818 3747) +4(196 3817 3818 197) +4(127 198 3819 3748) +4(197 3818 3819 198) +4(128 199 3820 3749) +4(198 3819 3820 199) +4(129 200 3821 3750) +4(199 3820 3821 200) +4(130 201 3822 3751) +4(200 3821 3822 201) +4(131 202 3823 3752) +4(201 3822 3823 202) +4(132 203 3824 3753) +4(202 3823 3824 203) +4(133 204 3825 3754) +4(203 3824 3825 204) +4(134 205 3826 3755) +4(204 3825 3826 205) +4(135 206 3827 3756) +4(205 3826 3827 206) +4(136 207 3828 3757) +4(206 3827 3828 207) +4(137 208 3829 3758) +4(207 3828 3829 208) +4(138 209 3830 3759) +4(208 3829 3830 209) +4(139 210 3831 3760) +4(209 3830 3831 210) +4(140 211 3832 3761) +4(210 3831 3832 211) +4(211 3832 3833 212) +4(143 214 3835 3764) +4(213 3834 3835 214) +4(144 215 3836 3765) +4(214 3835 3836 215) +4(145 216 3837 3766) +4(215 3836 3837 216) +4(146 217 3838 3767) +4(216 3837 3838 217) +4(147 218 3839 3768) +4(217 3838 3839 218) +4(148 219 3840 3769) +4(218 3839 3840 219) +4(149 220 3841 3770) +4(219 3840 3841 220) +4(150 221 3842 3771) +4(220 3841 3842 221) +4(151 222 3843 3772) +4(221 3842 3843 222) +4(152 223 3844 3773) +4(222 3843 3844 223) +4(153 224 3845 3774) +4(223 3844 3845 224) +4(154 225 3846 3775) +4(224 3845 3846 225) +4(155 226 3847 3776) +4(225 3846 3847 226) +4(156 227 3848 3777) +4(226 3847 3848 227) +4(157 228 3849 3778) +4(227 3848 3849 228) +4(158 229 3850 3779) +4(228 3849 3850 229) +4(159 230 3851 3780) +4(229 3850 3851 230) +4(160 231 3852 3781) +4(230 3851 3852 231) +4(161 232 3853 3782) +4(231 3852 3853 232) +4(162 233 3854 3783) +4(232 3853 3854 233) +4(163 234 3855 3784) +4(233 3854 3855 234) +4(164 235 3856 3785) +4(234 3855 3856 235) +4(165 236 3857 3786) +4(235 3856 3857 236) +4(166 237 3858 3787) +4(236 3857 3858 237) +4(167 238 3859 3788) +4(237 3858 3859 238) +4(168 239 3860 3789) +4(238 3859 3860 239) +4(169 240 3861 3790) +4(239 3860 3861 240) +4(170 241 3862 3791) +4(240 3861 3862 241) +4(171 242 3863 3792) +4(241 3862 3863 242) +4(172 243 3864 3793) +4(242 3863 3864 243) +4(173 244 3865 3794) +4(243 3864 3865 244) +4(174 245 3866 3795) +4(244 3865 3866 245) +4(175 246 3867 3796) +4(245 3866 3867 246) +4(176 247 3868 3797) +4(246 3867 3868 247) +4(177 248 3869 3798) +4(247 3868 3869 248) +4(178 249 3870 3799) +4(248 3869 3870 249) +4(179 250 3871 3800) +4(249 3870 3871 250) +4(180 251 3872 3801) +4(250 3871 3872 251) +4(181 252 3873 3802) +4(251 3872 3873 252) +4(182 253 3874 3803) +4(252 3873 3874 253) +4(183 254 3875 3804) +4(253 3874 3875 254) +4(184 255 3876 3805) +4(254 3875 3876 255) +4(185 256 3877 3806) +4(255 3876 3877 256) +4(186 257 3878 3807) +4(256 3877 3878 257) +4(187 258 3879 3808) +4(257 3878 3879 258) +4(188 259 3880 3809) +4(258 3879 3880 259) +4(189 260 3881 3810) +4(259 3880 3881 260) +4(190 261 3882 3811) +4(260 3881 3882 261) +4(191 262 3883 3812) +4(261 3882 3883 262) +4(192 263 3884 3813) +4(262 3883 3884 263) +4(193 264 3885 3814) +4(263 3884 3885 264) +4(194 265 3886 3815) +4(264 3885 3886 265) +4(195 266 3887 3816) +4(265 3886 3887 266) +4(196 267 3888 3817) +4(266 3887 3888 267) +4(197 268 3889 3818) +4(267 3888 3889 268) +4(198 269 3890 3819) +4(268 3889 3890 269) +4(199 270 3891 3820) +4(269 3890 3891 270) +4(200 271 3892 3821) +4(270 3891 3892 271) +4(201 272 3893 3822) +4(271 3892 3893 272) +4(202 273 3894 3823) +4(272 3893 3894 273) +4(203 274 3895 3824) +4(273 3894 3895 274) +4(204 275 3896 3825) +4(274 3895 3896 275) +4(205 276 3897 3826) +4(275 3896 3897 276) +4(206 277 3898 3827) +4(276 3897 3898 277) +4(207 278 3899 3828) +4(277 3898 3899 278) +4(208 279 3900 3829) +4(278 3899 3900 279) +4(209 280 3901 3830) +4(279 3900 3901 280) +4(210 281 3902 3831) +4(280 3901 3902 281) +4(211 282 3903 3832) +4(281 3902 3903 282) +4(282 3903 3904 283) +4(214 285 3906 3835) +4(284 3905 3906 285) +4(215 286 3907 3836) +4(285 3906 3907 286) +4(216 287 3908 3837) +4(286 3907 3908 287) +4(217 288 3909 3838) +4(287 3908 3909 288) +4(218 289 3910 3839) +4(288 3909 3910 289) +4(219 290 3911 3840) +4(289 3910 3911 290) +4(220 291 3912 3841) +4(290 3911 3912 291) +4(221 292 3913 3842) +4(291 3912 3913 292) +4(222 293 3914 3843) +4(292 3913 3914 293) +4(223 294 3915 3844) +4(293 3914 3915 294) +4(224 295 3916 3845) +4(294 3915 3916 295) +4(225 296 3917 3846) +4(295 3916 3917 296) +4(226 297 3918 3847) +4(296 3917 3918 297) +4(227 298 3919 3848) +4(297 3918 3919 298) +4(228 299 3920 3849) +4(298 3919 3920 299) +4(229 300 3921 3850) +4(299 3920 3921 300) +4(230 301 3922 3851) +4(300 3921 3922 301) +4(231 302 3923 3852) +4(301 3922 3923 302) +4(232 303 3924 3853) +4(302 3923 3924 303) +4(233 304 3925 3854) +4(303 3924 3925 304) +4(234 305 3926 3855) +4(304 3925 3926 305) +4(235 306 3927 3856) +4(305 3926 3927 306) +4(236 307 3928 3857) +4(306 3927 3928 307) +4(237 308 3929 3858) +4(307 3928 3929 308) +4(238 309 3930 3859) +4(308 3929 3930 309) +4(239 310 3931 3860) +4(309 3930 3931 310) +4(240 311 3932 3861) +4(310 3931 3932 311) +4(241 312 3933 3862) +4(311 3932 3933 312) +4(242 313 3934 3863) +4(312 3933 3934 313) +4(243 314 3935 3864) +4(313 3934 3935 314) +4(244 315 3936 3865) +4(314 3935 3936 315) +4(245 316 3937 3866) +4(315 3936 3937 316) +4(246 317 3938 3867) +4(316 3937 3938 317) +4(247 318 3939 3868) +4(317 3938 3939 318) +4(248 319 3940 3869) +4(318 3939 3940 319) +4(249 320 3941 3870) +4(319 3940 3941 320) +4(250 321 3942 3871) +4(320 3941 3942 321) +4(251 322 3943 3872) +4(321 3942 3943 322) +4(252 323 3944 3873) +4(322 3943 3944 323) +4(253 324 3945 3874) +4(323 3944 3945 324) +4(254 325 3946 3875) +4(324 3945 3946 325) +4(255 326 3947 3876) +4(325 3946 3947 326) +4(256 327 3948 3877) +4(326 3947 3948 327) +4(257 328 3949 3878) +4(327 3948 3949 328) +4(258 329 3950 3879) +4(328 3949 3950 329) +4(259 330 3951 3880) +4(329 3950 3951 330) +4(260 331 3952 3881) +4(330 3951 3952 331) +4(261 332 3953 3882) +4(331 3952 3953 332) +4(262 333 3954 3883) +4(332 3953 3954 333) +4(263 334 3955 3884) +4(333 3954 3955 334) +4(264 335 3956 3885) +4(334 3955 3956 335) +4(265 336 3957 3886) +4(335 3956 3957 336) +4(266 337 3958 3887) +4(336 3957 3958 337) +4(267 338 3959 3888) +4(337 3958 3959 338) +4(268 339 3960 3889) +4(338 3959 3960 339) +4(269 340 3961 3890) +4(339 3960 3961 340) +4(270 341 3962 3891) +4(340 3961 3962 341) +4(271 342 3963 3892) +4(341 3962 3963 342) +4(272 343 3964 3893) +4(342 3963 3964 343) +4(273 344 3965 3894) +4(343 3964 3965 344) +4(274 345 3966 3895) +4(344 3965 3966 345) +4(275 346 3967 3896) +4(345 3966 3967 346) +4(276 347 3968 3897) +4(346 3967 3968 347) +4(277 348 3969 3898) +4(347 3968 3969 348) +4(278 349 3970 3899) +4(348 3969 3970 349) +4(279 350 3971 3900) +4(349 3970 3971 350) +4(280 351 3972 3901) +4(350 3971 3972 351) +4(281 352 3973 3902) +4(351 3972 3973 352) +4(282 353 3974 3903) +4(352 3973 3974 353) +4(353 3974 3975 354) +4(285 356 3977 3906) +4(355 3976 3977 356) +4(286 357 3978 3907) +4(356 3977 3978 357) +4(287 358 3979 3908) +4(357 3978 3979 358) +4(288 359 3980 3909) +4(358 3979 3980 359) +4(289 360 3981 3910) +4(359 3980 3981 360) +4(290 361 3982 3911) +4(360 3981 3982 361) +4(291 362 3983 3912) +4(361 3982 3983 362) +4(292 363 3984 3913) +4(362 3983 3984 363) +4(293 364 3985 3914) +4(363 3984 3985 364) +4(294 365 3986 3915) +4(364 3985 3986 365) +4(295 366 3987 3916) +4(365 3986 3987 366) +4(296 367 3988 3917) +4(366 3987 3988 367) +4(297 368 3989 3918) +4(367 3988 3989 368) +4(298 369 3990 3919) +4(368 3989 3990 369) +4(299 370 3991 3920) +4(369 3990 3991 370) +4(300 371 3992 3921) +4(370 3991 3992 371) +4(301 372 3993 3922) +4(371 3992 3993 372) +4(302 373 3994 3923) +4(372 3993 3994 373) +4(303 374 3995 3924) +4(373 3994 3995 374) +4(304 375 3996 3925) +4(374 3995 3996 375) +4(305 376 3997 3926) +4(375 3996 3997 376) +4(306 377 3998 3927) +4(376 3997 3998 377) +4(307 378 3999 3928) +4(377 3998 3999 378) +4(308 379 4000 3929) +4(378 3999 4000 379) +4(309 380 4001 3930) +4(379 4000 4001 380) +4(310 381 4002 3931) +4(380 4001 4002 381) +4(311 382 4003 3932) +4(381 4002 4003 382) +4(312 383 4004 3933) +4(382 4003 4004 383) +4(313 384 4005 3934) +4(383 4004 4005 384) +4(314 385 4006 3935) +4(384 4005 4006 385) +4(315 386 4007 3936) +4(385 4006 4007 386) +4(316 387 4008 3937) +4(386 4007 4008 387) +4(317 388 4009 3938) +4(387 4008 4009 388) +4(318 389 4010 3939) +4(388 4009 4010 389) +4(319 390 4011 3940) +4(389 4010 4011 390) +4(320 391 4012 3941) +4(390 4011 4012 391) +4(321 392 4013 3942) +4(391 4012 4013 392) +4(322 393 4014 3943) +4(392 4013 4014 393) +4(323 394 4015 3944) +4(393 4014 4015 394) +4(324 395 4016 3945) +4(394 4015 4016 395) +4(325 396 4017 3946) +4(395 4016 4017 396) +4(326 397 4018 3947) +4(396 4017 4018 397) +4(327 398 4019 3948) +4(397 4018 4019 398) +4(328 399 4020 3949) +4(398 4019 4020 399) +4(329 400 4021 3950) +4(399 4020 4021 400) +4(330 401 4022 3951) +4(400 4021 4022 401) +4(331 402 4023 3952) +4(401 4022 4023 402) +4(332 403 4024 3953) +4(402 4023 4024 403) +4(333 404 4025 3954) +4(403 4024 4025 404) +4(334 405 4026 3955) +4(404 4025 4026 405) +4(335 406 4027 3956) +4(405 4026 4027 406) +4(336 407 4028 3957) +4(406 4027 4028 407) +4(337 408 4029 3958) +4(407 4028 4029 408) +4(338 409 4030 3959) +4(408 4029 4030 409) +4(339 410 4031 3960) +4(409 4030 4031 410) +4(340 411 4032 3961) +4(410 4031 4032 411) +4(341 412 4033 3962) +4(411 4032 4033 412) +4(342 413 4034 3963) +4(412 4033 4034 413) +4(343 414 4035 3964) +4(413 4034 4035 414) +4(344 415 4036 3965) +4(414 4035 4036 415) +4(345 416 4037 3966) +4(415 4036 4037 416) +4(346 417 4038 3967) +4(416 4037 4038 417) +4(347 418 4039 3968) +4(417 4038 4039 418) +4(348 419 4040 3969) +4(418 4039 4040 419) +4(349 420 4041 3970) +4(419 4040 4041 420) +4(350 421 4042 3971) +4(420 4041 4042 421) +4(351 422 4043 3972) +4(421 4042 4043 422) +4(352 423 4044 3973) +4(422 4043 4044 423) +4(353 424 4045 3974) +4(423 4044 4045 424) +4(424 4045 4046 425) +4(356 427 4048 3977) +4(426 4047 4048 427) +4(357 428 4049 3978) +4(427 4048 4049 428) +4(358 429 4050 3979) +4(428 4049 4050 429) +4(359 430 4051 3980) +4(429 4050 4051 430) +4(360 431 4052 3981) +4(430 4051 4052 431) +4(361 432 4053 3982) +4(431 4052 4053 432) +4(362 433 4054 3983) +4(432 4053 4054 433) +4(363 434 4055 3984) +4(433 4054 4055 434) +4(364 435 4056 3985) +4(434 4055 4056 435) +4(365 436 4057 3986) +4(435 4056 4057 436) +4(366 437 4058 3987) +4(436 4057 4058 437) +4(367 438 4059 3988) +4(437 4058 4059 438) +4(368 439 4060 3989) +4(438 4059 4060 439) +4(369 440 4061 3990) +4(439 4060 4061 440) +4(370 441 4062 3991) +4(440 4061 4062 441) +4(371 442 4063 3992) +4(441 4062 4063 442) +4(372 443 4064 3993) +4(442 4063 4064 443) +4(373 444 4065 3994) +4(443 4064 4065 444) +4(374 445 4066 3995) +4(444 4065 4066 445) +4(375 446 4067 3996) +4(445 4066 4067 446) +4(376 447 4068 3997) +4(446 4067 4068 447) +4(377 448 4069 3998) +4(447 4068 4069 448) +4(378 449 4070 3999) +4(448 4069 4070 449) +4(379 450 4071 4000) +4(449 4070 4071 450) +4(380 451 4072 4001) +4(450 4071 4072 451) +4(381 452 4073 4002) +4(451 4072 4073 452) +4(382 453 4074 4003) +4(452 4073 4074 453) +4(383 454 4075 4004) +4(453 4074 4075 454) +4(384 455 4076 4005) +4(454 4075 4076 455) +4(385 456 4077 4006) +4(455 4076 4077 456) +4(386 457 4078 4007) +4(456 4077 4078 457) +4(387 458 4079 4008) +4(457 4078 4079 458) +4(388 459 4080 4009) +4(458 4079 4080 459) +4(389 460 4081 4010) +4(459 4080 4081 460) +4(390 461 4082 4011) +4(460 4081 4082 461) +4(391 462 4083 4012) +4(461 4082 4083 462) +4(392 463 4084 4013) +4(462 4083 4084 463) +4(393 464 4085 4014) +4(463 4084 4085 464) +4(394 465 4086 4015) +4(464 4085 4086 465) +4(395 466 4087 4016) +4(465 4086 4087 466) +4(396 467 4088 4017) +4(466 4087 4088 467) +4(397 468 4089 4018) +4(467 4088 4089 468) +4(398 469 4090 4019) +4(468 4089 4090 469) +4(399 470 4091 4020) +4(469 4090 4091 470) +4(400 471 4092 4021) +4(470 4091 4092 471) +4(401 472 4093 4022) +4(471 4092 4093 472) +4(402 473 4094 4023) +4(472 4093 4094 473) +4(403 474 4095 4024) +4(473 4094 4095 474) +4(404 475 4096 4025) +4(474 4095 4096 475) +4(405 476 4097 4026) +4(475 4096 4097 476) +4(406 477 4098 4027) +4(476 4097 4098 477) +4(407 478 4099 4028) +4(477 4098 4099 478) +4(408 479 4100 4029) +4(478 4099 4100 479) +4(409 480 4101 4030) +4(479 4100 4101 480) +4(410 481 4102 4031) +4(480 4101 4102 481) +4(411 482 4103 4032) +4(481 4102 4103 482) +4(412 483 4104 4033) +4(482 4103 4104 483) +4(413 484 4105 4034) +4(483 4104 4105 484) +4(414 485 4106 4035) +4(484 4105 4106 485) +4(415 486 4107 4036) +4(485 4106 4107 486) +4(416 487 4108 4037) +4(486 4107 4108 487) +4(417 488 4109 4038) +4(487 4108 4109 488) +4(418 489 4110 4039) +4(488 4109 4110 489) +4(419 490 4111 4040) +4(489 4110 4111 490) +4(420 491 4112 4041) +4(490 4111 4112 491) +4(421 492 4113 4042) +4(491 4112 4113 492) +4(422 493 4114 4043) +4(492 4113 4114 493) +4(423 494 4115 4044) +4(493 4114 4115 494) +4(424 495 4116 4045) +4(494 4115 4116 495) +4(495 4116 4117 496) +4(427 498 4119 4048) +4(497 4118 4119 498) +4(428 499 4120 4049) +4(498 4119 4120 499) +4(429 500 4121 4050) +4(499 4120 4121 500) +4(430 501 4122 4051) +4(500 4121 4122 501) +4(431 502 4123 4052) +4(501 4122 4123 502) +4(432 503 4124 4053) +4(502 4123 4124 503) +4(433 504 4125 4054) +4(503 4124 4125 504) +4(434 505 4126 4055) +4(504 4125 4126 505) +4(435 506 4127 4056) +4(505 4126 4127 506) +4(436 507 4128 4057) +4(506 4127 4128 507) +4(437 508 4129 4058) +4(507 4128 4129 508) +4(438 509 4130 4059) +4(508 4129 4130 509) +4(439 510 4131 4060) +4(509 4130 4131 510) +4(440 511 4132 4061) +4(510 4131 4132 511) +4(441 512 4133 4062) +4(511 4132 4133 512) +4(442 513 4134 4063) +4(512 4133 4134 513) +4(443 514 4135 4064) +4(513 4134 4135 514) +4(444 515 4136 4065) +4(514 4135 4136 515) +4(445 516 4137 4066) +4(515 4136 4137 516) +4(446 517 4138 4067) +4(516 4137 4138 517) +4(447 518 4139 4068) +4(517 4138 4139 518) +4(448 519 4140 4069) +4(518 4139 4140 519) +4(449 520 4141 4070) +4(519 4140 4141 520) +4(450 521 4142 4071) +4(520 4141 4142 521) +4(451 522 4143 4072) +4(521 4142 4143 522) +4(452 523 4144 4073) +4(522 4143 4144 523) +4(453 524 4145 4074) +4(523 4144 4145 524) +4(454 525 4146 4075) +4(524 4145 4146 525) +4(455 526 4147 4076) +4(525 4146 4147 526) +4(456 527 4148 4077) +4(526 4147 4148 527) +4(457 528 4149 4078) +4(527 4148 4149 528) +4(458 529 4150 4079) +4(528 4149 4150 529) +4(459 530 4151 4080) +4(529 4150 4151 530) +4(460 531 4152 4081) +4(530 4151 4152 531) +4(461 532 4153 4082) +4(531 4152 4153 532) +4(462 533 4154 4083) +4(532 4153 4154 533) +4(463 534 4155 4084) +4(533 4154 4155 534) +4(464 535 4156 4085) +4(534 4155 4156 535) +4(465 536 4157 4086) +4(535 4156 4157 536) +4(466 537 4158 4087) +4(536 4157 4158 537) +4(467 538 4159 4088) +4(537 4158 4159 538) +4(468 539 4160 4089) +4(538 4159 4160 539) +4(469 540 4161 4090) +4(539 4160 4161 540) +4(470 541 4162 4091) +4(540 4161 4162 541) +4(471 542 4163 4092) +4(541 4162 4163 542) +4(472 543 4164 4093) +4(542 4163 4164 543) +4(473 544 4165 4094) +4(543 4164 4165 544) +4(474 545 4166 4095) +4(544 4165 4166 545) +4(475 546 4167 4096) +4(545 4166 4167 546) +4(476 547 4168 4097) +4(546 4167 4168 547) +4(477 548 4169 4098) +4(547 4168 4169 548) +4(478 549 4170 4099) +4(548 4169 4170 549) +4(479 550 4171 4100) +4(549 4170 4171 550) +4(480 551 4172 4101) +4(550 4171 4172 551) +4(481 552 4173 4102) +4(551 4172 4173 552) +4(482 553 4174 4103) +4(552 4173 4174 553) +4(483 554 4175 4104) +4(553 4174 4175 554) +4(484 555 4176 4105) +4(554 4175 4176 555) +4(485 556 4177 4106) +4(555 4176 4177 556) +4(486 557 4178 4107) +4(556 4177 4178 557) +4(487 558 4179 4108) +4(557 4178 4179 558) +4(488 559 4180 4109) +4(558 4179 4180 559) +4(489 560 4181 4110) +4(559 4180 4181 560) +4(490 561 4182 4111) +4(560 4181 4182 561) +4(491 562 4183 4112) +4(561 4182 4183 562) +4(492 563 4184 4113) +4(562 4183 4184 563) +4(493 564 4185 4114) +4(563 4184 4185 564) +4(494 565 4186 4115) +4(564 4185 4186 565) +4(495 566 4187 4116) +4(565 4186 4187 566) +4(566 4187 4188 567) +4(498 569 4190 4119) +4(568 4189 4190 569) +4(499 570 4191 4120) +4(569 4190 4191 570) +4(500 571 4192 4121) +4(570 4191 4192 571) +4(501 572 4193 4122) +4(571 4192 4193 572) +4(502 573 4194 4123) +4(572 4193 4194 573) +4(503 574 4195 4124) +4(573 4194 4195 574) +4(504 575 4196 4125) +4(574 4195 4196 575) +4(505 576 4197 4126) +4(575 4196 4197 576) +4(506 577 4198 4127) +4(576 4197 4198 577) +4(507 578 4199 4128) +4(577 4198 4199 578) +4(508 579 4200 4129) +4(578 4199 4200 579) +4(509 580 4201 4130) +4(579 4200 4201 580) +4(510 581 4202 4131) +4(580 4201 4202 581) +4(511 582 4203 4132) +4(581 4202 4203 582) +4(512 583 4204 4133) +4(582 4203 4204 583) +4(513 584 4205 4134) +4(583 4204 4205 584) +4(514 585 4206 4135) +4(584 4205 4206 585) +4(515 586 4207 4136) +4(585 4206 4207 586) +4(516 587 4208 4137) +4(586 4207 4208 587) +4(517 588 4209 4138) +4(587 4208 4209 588) +4(518 589 4210 4139) +4(588 4209 4210 589) +4(519 590 4211 4140) +4(589 4210 4211 590) +4(520 591 4212 4141) +4(590 4211 4212 591) +4(521 592 4213 4142) +4(591 4212 4213 592) +4(522 593 4214 4143) +4(592 4213 4214 593) +4(523 594 4215 4144) +4(593 4214 4215 594) +4(524 595 4216 4145) +4(594 4215 4216 595) +4(525 596 4217 4146) +4(595 4216 4217 596) +4(526 597 4218 4147) +4(596 4217 4218 597) +4(527 598 4219 4148) +4(597 4218 4219 598) +4(528 599 4220 4149) +4(598 4219 4220 599) +4(529 600 4221 4150) +4(599 4220 4221 600) +4(530 601 4222 4151) +4(600 4221 4222 601) +4(531 602 4223 4152) +4(601 4222 4223 602) +4(532 603 4224 4153) +4(602 4223 4224 603) +4(533 604 4225 4154) +4(603 4224 4225 604) +4(534 605 4226 4155) +4(604 4225 4226 605) +4(535 606 4227 4156) +4(605 4226 4227 606) +4(536 607 4228 4157) +4(606 4227 4228 607) +4(537 608 4229 4158) +4(607 4228 4229 608) +4(538 609 4230 4159) +4(608 4229 4230 609) +4(539 610 4231 4160) +4(609 4230 4231 610) +4(540 611 4232 4161) +4(610 4231 4232 611) +4(541 612 4233 4162) +4(611 4232 4233 612) +4(542 613 4234 4163) +4(612 4233 4234 613) +4(543 614 4235 4164) +4(613 4234 4235 614) +4(544 615 4236 4165) +4(614 4235 4236 615) +4(545 616 4237 4166) +4(615 4236 4237 616) +4(546 617 4238 4167) +4(616 4237 4238 617) +4(547 618 4239 4168) +4(617 4238 4239 618) +4(548 619 4240 4169) +4(618 4239 4240 619) +4(549 620 4241 4170) +4(619 4240 4241 620) +4(550 621 4242 4171) +4(620 4241 4242 621) +4(551 622 4243 4172) +4(621 4242 4243 622) +4(552 623 4244 4173) +4(622 4243 4244 623) +4(553 624 4245 4174) +4(623 4244 4245 624) +4(554 625 4246 4175) +4(624 4245 4246 625) +4(555 626 4247 4176) +4(625 4246 4247 626) +4(556 627 4248 4177) +4(626 4247 4248 627) +4(557 628 4249 4178) +4(627 4248 4249 628) +4(558 629 4250 4179) +4(628 4249 4250 629) +4(559 630 4251 4180) +4(629 4250 4251 630) +4(560 631 4252 4181) +4(630 4251 4252 631) +4(561 632 4253 4182) +4(631 4252 4253 632) +4(562 633 4254 4183) +4(632 4253 4254 633) +4(563 634 4255 4184) +4(633 4254 4255 634) +4(564 635 4256 4185) +4(634 4255 4256 635) +4(565 636 4257 4186) +4(635 4256 4257 636) +4(566 637 4258 4187) +4(636 4257 4258 637) +4(637 4258 4259 638) +4(569 640 4261 4190) +4(639 4260 4261 640) +4(570 641 4262 4191) +4(640 4261 4262 641) +4(571 642 4263 4192) +4(641 4262 4263 642) +4(572 643 4264 4193) +4(642 4263 4264 643) +4(573 644 4265 4194) +4(643 4264 4265 644) +4(574 645 4266 4195) +4(644 4265 4266 645) +4(575 646 4267 4196) +4(645 4266 4267 646) +4(576 647 4268 4197) +4(646 4267 4268 647) +4(577 648 4269 4198) +4(647 4268 4269 648) +4(578 649 4270 4199) +4(648 4269 4270 649) +4(579 650 4271 4200) +4(649 4270 4271 650) +4(580 651 4272 4201) +4(650 4271 4272 651) +4(581 652 4273 4202) +4(651 4272 4273 652) +4(582 653 4274 4203) +4(652 4273 4274 653) +4(583 654 4275 4204) +4(653 4274 4275 654) +4(584 655 4276 4205) +4(654 4275 4276 655) +4(585 656 4277 4206) +4(655 4276 4277 656) +4(586 657 4278 4207) +4(656 4277 4278 657) +4(587 658 4279 4208) +4(657 4278 4279 658) +4(588 659 4280 4209) +4(658 4279 4280 659) +4(589 660 4281 4210) +4(659 4280 4281 660) +4(590 661 4282 4211) +4(660 4281 4282 661) +4(591 662 4283 4212) +4(661 4282 4283 662) +4(592 663 4284 4213) +4(662 4283 4284 663) +4(593 664 4285 4214) +4(663 4284 4285 664) +4(594 665 4286 4215) +4(664 4285 4286 665) +4(595 666 4287 4216) +4(665 4286 4287 666) +4(596 667 4288 4217) +4(666 4287 4288 667) +4(597 668 4289 4218) +4(667 4288 4289 668) +4(598 669 4290 4219) +4(668 4289 4290 669) +4(599 670 4291 4220) +4(669 4290 4291 670) +4(600 671 4292 4221) +4(670 4291 4292 671) +4(601 672 4293 4222) +4(671 4292 4293 672) +4(602 673 4294 4223) +4(672 4293 4294 673) +4(603 674 4295 4224) +4(673 4294 4295 674) +4(604 675 4296 4225) +4(674 4295 4296 675) +4(605 676 4297 4226) +4(675 4296 4297 676) +4(606 677 4298 4227) +4(676 4297 4298 677) +4(607 678 4299 4228) +4(677 4298 4299 678) +4(608 679 4300 4229) +4(678 4299 4300 679) +4(609 680 4301 4230) +4(679 4300 4301 680) +4(610 681 4302 4231) +4(680 4301 4302 681) +4(611 682 4303 4232) +4(681 4302 4303 682) +4(612 683 4304 4233) +4(682 4303 4304 683) +4(613 684 4305 4234) +4(683 4304 4305 684) +4(614 685 4306 4235) +4(684 4305 4306 685) +4(615 686 4307 4236) +4(685 4306 4307 686) +4(616 687 4308 4237) +4(686 4307 4308 687) +4(617 688 4309 4238) +4(687 4308 4309 688) +4(618 689 4310 4239) +4(688 4309 4310 689) +4(619 690 4311 4240) +4(689 4310 4311 690) +4(620 691 4312 4241) +4(690 4311 4312 691) +4(621 692 4313 4242) +4(691 4312 4313 692) +4(622 693 4314 4243) +4(692 4313 4314 693) +4(623 694 4315 4244) +4(693 4314 4315 694) +4(624 695 4316 4245) +4(694 4315 4316 695) +4(625 696 4317 4246) +4(695 4316 4317 696) +4(626 697 4318 4247) +4(696 4317 4318 697) +4(627 698 4319 4248) +4(697 4318 4319 698) +4(628 699 4320 4249) +4(698 4319 4320 699) +4(629 700 4321 4250) +4(699 4320 4321 700) +4(630 701 4322 4251) +4(700 4321 4322 701) +4(631 702 4323 4252) +4(701 4322 4323 702) +4(632 703 4324 4253) +4(702 4323 4324 703) +4(633 704 4325 4254) +4(703 4324 4325 704) +4(634 705 4326 4255) +4(704 4325 4326 705) +4(635 706 4327 4256) +4(705 4326 4327 706) +4(636 707 4328 4257) +4(706 4327 4328 707) +4(637 708 4329 4258) +4(707 4328 4329 708) +4(708 4329 4330 709) +4(640 711 4332 4261) +4(710 4331 4332 711) +4(641 712 4333 4262) +4(711 4332 4333 712) +4(642 713 4334 4263) +4(712 4333 4334 713) +4(643 714 4335 4264) +4(713 4334 4335 714) +4(644 715 4336 4265) +4(714 4335 4336 715) +4(645 716 4337 4266) +4(715 4336 4337 716) +4(646 717 4338 4267) +4(716 4337 4338 717) +4(647 718 4339 4268) +4(717 4338 4339 718) +4(648 719 4340 4269) +4(718 4339 4340 719) +4(649 720 4341 4270) +4(719 4340 4341 720) +4(650 721 4342 4271) +4(720 4341 4342 721) +4(651 722 4343 4272) +4(721 4342 4343 722) +4(652 723 4344 4273) +4(722 4343 4344 723) +4(653 724 4345 4274) +4(723 4344 4345 724) +4(654 725 4346 4275) +4(724 4345 4346 725) +4(655 726 4347 4276) +4(725 4346 4347 726) +4(656 727 4348 4277) +4(726 4347 4348 727) +4(657 728 4349 4278) +4(727 4348 4349 728) +4(658 729 4350 4279) +4(728 4349 4350 729) +4(659 730 4351 4280) +4(729 4350 4351 730) +4(660 731 4352 4281) +4(730 4351 4352 731) +4(661 732 4353 4282) +4(731 4352 4353 732) +4(662 733 4354 4283) +4(732 4353 4354 733) +4(663 734 4355 4284) +4(733 4354 4355 734) +4(664 735 4356 4285) +4(734 4355 4356 735) +4(665 736 4357 4286) +4(735 4356 4357 736) +4(666 737 4358 4287) +4(736 4357 4358 737) +4(667 738 4359 4288) +4(737 4358 4359 738) +4(668 739 4360 4289) +4(738 4359 4360 739) +4(669 740 4361 4290) +4(739 4360 4361 740) +4(670 741 4362 4291) +4(740 4361 4362 741) +4(671 742 4363 4292) +4(741 4362 4363 742) +4(672 743 4364 4293) +4(742 4363 4364 743) +4(673 744 4365 4294) +4(743 4364 4365 744) +4(674 745 4366 4295) +4(744 4365 4366 745) +4(675 746 4367 4296) +4(745 4366 4367 746) +4(676 747 4368 4297) +4(746 4367 4368 747) +4(677 748 4369 4298) +4(747 4368 4369 748) +4(678 749 4370 4299) +4(748 4369 4370 749) +4(679 750 4371 4300) +4(749 4370 4371 750) +4(680 751 4372 4301) +4(750 4371 4372 751) +4(681 752 4373 4302) +4(751 4372 4373 752) +4(682 753 4374 4303) +4(752 4373 4374 753) +4(683 754 4375 4304) +4(753 4374 4375 754) +4(684 755 4376 4305) +4(754 4375 4376 755) +4(685 756 4377 4306) +4(755 4376 4377 756) +4(686 757 4378 4307) +4(756 4377 4378 757) +4(687 758 4379 4308) +4(757 4378 4379 758) +4(688 759 4380 4309) +4(758 4379 4380 759) +4(689 760 4381 4310) +4(759 4380 4381 760) +4(690 761 4382 4311) +4(760 4381 4382 761) +4(691 762 4383 4312) +4(761 4382 4383 762) +4(692 763 4384 4313) +4(762 4383 4384 763) +4(693 764 4385 4314) +4(763 4384 4385 764) +4(694 765 4386 4315) +4(764 4385 4386 765) +4(695 766 4387 4316) +4(765 4386 4387 766) +4(696 767 4388 4317) +4(766 4387 4388 767) +4(697 768 4389 4318) +4(767 4388 4389 768) +4(698 769 4390 4319) +4(768 4389 4390 769) +4(699 770 4391 4320) +4(769 4390 4391 770) +4(700 771 4392 4321) +4(770 4391 4392 771) +4(701 772 4393 4322) +4(771 4392 4393 772) +4(702 773 4394 4323) +4(772 4393 4394 773) +4(703 774 4395 4324) +4(773 4394 4395 774) +4(704 775 4396 4325) +4(774 4395 4396 775) +4(705 776 4397 4326) +4(775 4396 4397 776) +4(706 777 4398 4327) +4(776 4397 4398 777) +4(707 778 4399 4328) +4(777 4398 4399 778) +4(708 779 4400 4329) +4(778 4399 4400 779) +4(779 4400 4401 780) +4(711 782 4403 4332) +4(781 4402 4403 782) +4(712 783 4404 4333) +4(782 4403 4404 783) +4(713 784 4405 4334) +4(783 4404 4405 784) +4(714 785 4406 4335) +4(784 4405 4406 785) +4(715 786 4407 4336) +4(785 4406 4407 786) +4(716 787 4408 4337) +4(786 4407 4408 787) +4(717 788 4409 4338) +4(787 4408 4409 788) +4(718 789 4410 4339) +4(788 4409 4410 789) +4(719 790 4411 4340) +4(789 4410 4411 790) +4(720 791 4412 4341) +4(790 4411 4412 791) +4(721 792 4413 4342) +4(791 4412 4413 792) +4(722 793 4414 4343) +4(792 4413 4414 793) +4(723 794 4415 4344) +4(793 4414 4415 794) +4(724 795 4416 4345) +4(794 4415 4416 795) +4(725 796 4417 4346) +4(795 4416 4417 796) +4(726 797 4418 4347) +4(796 4417 4418 797) +4(727 798 4419 4348) +4(797 4418 4419 798) +4(728 799 4420 4349) +4(798 4419 4420 799) +4(729 800 4421 4350) +4(799 4420 4421 800) +4(730 801 4422 4351) +4(800 4421 4422 801) +4(731 802 4423 4352) +4(801 4422 4423 802) +4(732 803 4424 4353) +4(802 4423 4424 803) +4(733 804 4425 4354) +4(803 4424 4425 804) +4(734 805 4426 4355) +4(804 4425 4426 805) +4(735 806 4427 4356) +4(805 4426 4427 806) +4(736 807 4428 4357) +4(806 4427 4428 807) +4(737 808 4429 4358) +4(807 4428 4429 808) +4(738 809 4430 4359) +4(808 4429 4430 809) +4(739 810 4431 4360) +4(809 4430 4431 810) +4(740 811 4432 4361) +4(810 4431 4432 811) +4(741 812 4433 4362) +4(811 4432 4433 812) +4(742 813 4434 4363) +4(812 4433 4434 813) +4(743 814 4435 4364) +4(813 4434 4435 814) +4(744 815 4436 4365) +4(814 4435 4436 815) +4(745 816 4437 4366) +4(815 4436 4437 816) +4(746 817 4438 4367) +4(816 4437 4438 817) +4(747 818 4439 4368) +4(817 4438 4439 818) +4(748 819 4440 4369) +4(818 4439 4440 819) +4(749 820 4441 4370) +4(819 4440 4441 820) +4(750 821 4442 4371) +4(820 4441 4442 821) +4(751 822 4443 4372) +4(821 4442 4443 822) +4(752 823 4444 4373) +4(822 4443 4444 823) +4(753 824 4445 4374) +4(823 4444 4445 824) +4(754 825 4446 4375) +4(824 4445 4446 825) +4(755 826 4447 4376) +4(825 4446 4447 826) +4(756 827 4448 4377) +4(826 4447 4448 827) +4(757 828 4449 4378) +4(827 4448 4449 828) +4(758 829 4450 4379) +4(828 4449 4450 829) +4(759 830 4451 4380) +4(829 4450 4451 830) +4(760 831 4452 4381) +4(830 4451 4452 831) +4(761 832 4453 4382) +4(831 4452 4453 832) +4(762 833 4454 4383) +4(832 4453 4454 833) +4(763 834 4455 4384) +4(833 4454 4455 834) +4(764 835 4456 4385) +4(834 4455 4456 835) +4(765 836 4457 4386) +4(835 4456 4457 836) +4(766 837 4458 4387) +4(836 4457 4458 837) +4(767 838 4459 4388) +4(837 4458 4459 838) +4(768 839 4460 4389) +4(838 4459 4460 839) +4(769 840 4461 4390) +4(839 4460 4461 840) +4(770 841 4462 4391) +4(840 4461 4462 841) +4(771 842 4463 4392) +4(841 4462 4463 842) +4(772 843 4464 4393) +4(842 4463 4464 843) +4(773 844 4465 4394) +4(843 4464 4465 844) +4(774 845 4466 4395) +4(844 4465 4466 845) +4(775 846 4467 4396) +4(845 4466 4467 846) +4(776 847 4468 4397) +4(846 4467 4468 847) +4(777 848 4469 4398) +4(847 4468 4469 848) +4(778 849 4470 4399) +4(848 4469 4470 849) +4(779 850 4471 4400) +4(849 4470 4471 850) +4(850 4471 4472 851) +4(782 853 4474 4403) +4(852 4473 4474 853) +4(783 854 4475 4404) +4(853 4474 4475 854) +4(784 855 4476 4405) +4(854 4475 4476 855) +4(785 856 4477 4406) +4(855 4476 4477 856) +4(786 857 4478 4407) +4(856 4477 4478 857) +4(787 858 4479 4408) +4(857 4478 4479 858) +4(788 859 4480 4409) +4(858 4479 4480 859) +4(789 860 4481 4410) +4(859 4480 4481 860) +4(790 861 4482 4411) +4(860 4481 4482 861) +4(791 862 4483 4412) +4(861 4482 4483 862) +4(792 863 4484 4413) +4(862 4483 4484 863) +4(793 864 4485 4414) +4(863 4484 4485 864) +4(794 865 4486 4415) +4(864 4485 4486 865) +4(795 866 4487 4416) +4(865 4486 4487 866) +4(796 867 4488 4417) +4(866 4487 4488 867) +4(797 868 4489 4418) +4(867 4488 4489 868) +4(798 869 4490 4419) +4(868 4489 4490 869) +4(799 870 4491 4420) +4(869 4490 4491 870) +4(800 871 4492 4421) +4(870 4491 4492 871) +4(801 872 4493 4422) +4(871 4492 4493 872) +4(802 873 4494 4423) +4(872 4493 4494 873) +4(803 874 4495 4424) +4(873 4494 4495 874) +4(804 875 4496 4425) +4(874 4495 4496 875) +4(805 876 4497 4426) +4(875 4496 4497 876) +4(806 877 4498 4427) +4(876 4497 4498 877) +4(807 878 4499 4428) +4(877 4498 4499 878) +4(808 879 4500 4429) +4(878 4499 4500 879) +4(809 880 4501 4430) +4(879 4500 4501 880) +4(810 881 4502 4431) +4(880 4501 4502 881) +4(811 882 4503 4432) +4(881 4502 4503 882) +4(812 883 4504 4433) +4(882 4503 4504 883) +4(813 884 4505 4434) +4(883 4504 4505 884) +4(814 885 4506 4435) +4(884 4505 4506 885) +4(815 886 4507 4436) +4(885 4506 4507 886) +4(816 887 4508 4437) +4(886 4507 4508 887) +4(817 888 4509 4438) +4(887 4508 4509 888) +4(818 889 4510 4439) +4(888 4509 4510 889) +4(819 890 4511 4440) +4(889 4510 4511 890) +4(820 891 4512 4441) +4(890 4511 4512 891) +4(821 892 4513 4442) +4(891 4512 4513 892) +4(822 893 4514 4443) +4(892 4513 4514 893) +4(823 894 4515 4444) +4(893 4514 4515 894) +4(824 895 4516 4445) +4(894 4515 4516 895) +4(825 896 4517 4446) +4(895 4516 4517 896) +4(826 897 4518 4447) +4(896 4517 4518 897) +4(827 898 4519 4448) +4(897 4518 4519 898) +4(828 899 4520 4449) +4(898 4519 4520 899) +4(829 900 4521 4450) +4(899 4520 4521 900) +4(830 901 4522 4451) +4(900 4521 4522 901) +4(831 902 4523 4452) +4(901 4522 4523 902) +4(832 903 4524 4453) +4(902 4523 4524 903) +4(833 904 4525 4454) +4(903 4524 4525 904) +4(834 905 4526 4455) +4(904 4525 4526 905) +4(835 906 4527 4456) +4(905 4526 4527 906) +4(836 907 4528 4457) +4(906 4527 4528 907) +4(837 908 4529 4458) +4(907 4528 4529 908) +4(838 909 4530 4459) +4(908 4529 4530 909) +4(839 910 4531 4460) +4(909 4530 4531 910) +4(840 911 4532 4461) +4(910 4531 4532 911) +4(841 912 4533 4462) +4(911 4532 4533 912) +4(842 913 4534 4463) +4(912 4533 4534 913) +4(843 914 4535 4464) +4(913 4534 4535 914) +4(844 915 4536 4465) +4(914 4535 4536 915) +4(845 916 4537 4466) +4(915 4536 4537 916) +4(846 917 4538 4467) +4(916 4537 4538 917) +4(847 918 4539 4468) +4(917 4538 4539 918) +4(848 919 4540 4469) +4(918 4539 4540 919) +4(849 920 4541 4470) +4(919 4540 4541 920) +4(850 921 4542 4471) +4(920 4541 4542 921) +4(921 4542 4543 922) +4(853 924 4545 4474) +4(923 4544 4545 924) +4(854 925 4546 4475) +4(924 4545 4546 925) +4(855 926 4547 4476) +4(925 4546 4547 926) +4(856 927 4548 4477) +4(926 4547 4548 927) +4(857 928 4549 4478) +4(927 4548 4549 928) +4(858 929 4550 4479) +4(928 4549 4550 929) +4(859 930 4551 4480) +4(929 4550 4551 930) +4(860 931 4552 4481) +4(930 4551 4552 931) +4(861 932 4553 4482) +4(931 4552 4553 932) +4(862 933 4554 4483) +4(932 4553 4554 933) +4(863 934 4555 4484) +4(933 4554 4555 934) +4(864 935 4556 4485) +4(934 4555 4556 935) +4(865 936 4557 4486) +4(935 4556 4557 936) +4(866 937 4558 4487) +4(936 4557 4558 937) +4(867 938 4559 4488) +4(937 4558 4559 938) +4(868 939 4560 4489) +4(938 4559 4560 939) +4(869 940 4561 4490) +4(939 4560 4561 940) +4(870 941 4562 4491) +4(940 4561 4562 941) +4(871 942 4563 4492) +4(941 4562 4563 942) +4(872 943 4564 4493) +4(942 4563 4564 943) +4(873 944 4565 4494) +4(943 4564 4565 944) +4(874 945 4566 4495) +4(944 4565 4566 945) +4(875 946 4567 4496) +4(945 4566 4567 946) +4(876 947 4568 4497) +4(946 4567 4568 947) +4(877 948 4569 4498) +4(947 4568 4569 948) +4(878 949 4570 4499) +4(948 4569 4570 949) +4(879 950 4571 4500) +4(949 4570 4571 950) +4(880 951 4572 4501) +4(950 4571 4572 951) +4(881 952 4573 4502) +4(951 4572 4573 952) +4(882 953 4574 4503) +4(952 4573 4574 953) +4(883 954 4575 4504) +4(953 4574 4575 954) +4(884 955 4576 4505) +4(954 4575 4576 955) +4(885 956 4577 4506) +4(955 4576 4577 956) +4(886 957 4578 4507) +4(956 4577 4578 957) +4(887 958 4579 4508) +4(957 4578 4579 958) +4(888 959 4580 4509) +4(958 4579 4580 959) +4(889 960 4581 4510) +4(959 4580 4581 960) +4(890 961 4582 4511) +4(960 4581 4582 961) +4(891 962 4583 4512) +4(961 4582 4583 962) +4(892 963 4584 4513) +4(962 4583 4584 963) +4(893 964 4585 4514) +4(963 4584 4585 964) +4(894 965 4586 4515) +4(964 4585 4586 965) +4(895 966 4587 4516) +4(965 4586 4587 966) +4(896 967 4588 4517) +4(966 4587 4588 967) +4(897 968 4589 4518) +4(967 4588 4589 968) +4(898 969 4590 4519) +4(968 4589 4590 969) +4(899 970 4591 4520) +4(969 4590 4591 970) +4(900 971 4592 4521) +4(970 4591 4592 971) +4(901 972 4593 4522) +4(971 4592 4593 972) +4(902 973 4594 4523) +4(972 4593 4594 973) +4(903 974 4595 4524) +4(973 4594 4595 974) +4(904 975 4596 4525) +4(974 4595 4596 975) +4(905 976 4597 4526) +4(975 4596 4597 976) +4(906 977 4598 4527) +4(976 4597 4598 977) +4(907 978 4599 4528) +4(977 4598 4599 978) +4(908 979 4600 4529) +4(978 4599 4600 979) +4(909 980 4601 4530) +4(979 4600 4601 980) +4(910 981 4602 4531) +4(980 4601 4602 981) +4(911 982 4603 4532) +4(981 4602 4603 982) +4(912 983 4604 4533) +4(982 4603 4604 983) +4(913 984 4605 4534) +4(983 4604 4605 984) +4(914 985 4606 4535) +4(984 4605 4606 985) +4(915 986 4607 4536) +4(985 4606 4607 986) +4(916 987 4608 4537) +4(986 4607 4608 987) +4(917 988 4609 4538) +4(987 4608 4609 988) +4(918 989 4610 4539) +4(988 4609 4610 989) +4(919 990 4611 4540) +4(989 4610 4611 990) +4(920 991 4612 4541) +4(990 4611 4612 991) +4(921 992 4613 4542) +4(991 4612 4613 992) +4(992 4613 4614 993) +4(924 995 4616 4545) +4(994 4615 4616 995) +4(925 996 4617 4546) +4(995 4616 4617 996) +4(926 997 4618 4547) +4(996 4617 4618 997) +4(927 998 4619 4548) +4(997 4618 4619 998) +4(928 999 4620 4549) +4(998 4619 4620 999) +4(929 1000 4621 4550) +4(999 4620 4621 1000) +4(930 1001 4622 4551) +4(1000 4621 4622 1001) +4(931 1002 4623 4552) +4(1001 4622 4623 1002) +4(932 1003 4624 4553) +4(1002 4623 4624 1003) +4(933 1004 4625 4554) +4(1003 4624 4625 1004) +4(934 1005 4626 4555) +4(1004 4625 4626 1005) +4(935 1006 4627 4556) +4(1005 4626 4627 1006) +4(936 1007 4628 4557) +4(1006 4627 4628 1007) +4(937 1008 4629 4558) +4(1007 4628 4629 1008) +4(938 1009 4630 4559) +4(1008 4629 4630 1009) +4(939 1010 4631 4560) +4(1009 4630 4631 1010) +4(940 1011 4632 4561) +4(1010 4631 4632 1011) +4(941 1012 4633 4562) +4(1011 4632 4633 1012) +4(942 1013 4634 4563) +4(1012 4633 4634 1013) +4(943 1014 4635 4564) +4(1013 4634 4635 1014) +4(944 1015 4636 4565) +4(1014 4635 4636 1015) +4(945 1016 4637 4566) +4(1015 4636 4637 1016) +4(946 1017 4638 4567) +4(1016 4637 4638 1017) +4(947 1018 4639 4568) +4(1017 4638 4639 1018) +4(948 1019 4640 4569) +4(1018 4639 4640 1019) +4(949 1020 4641 4570) +4(1019 4640 4641 1020) +4(950 1021 4642 4571) +4(1020 4641 4642 1021) +4(951 1022 4643 4572) +4(1021 4642 4643 1022) +4(952 1023 4644 4573) +4(1022 4643 4644 1023) +4(953 1024 4645 4574) +4(1023 4644 4645 1024) +4(954 1025 4646 4575) +4(1024 4645 4646 1025) +4(955 1026 4647 4576) +4(1025 4646 4647 1026) +4(956 1027 4648 4577) +4(1026 4647 4648 1027) +4(957 1028 4649 4578) +4(1027 4648 4649 1028) +4(958 1029 4650 4579) +4(1028 4649 4650 1029) +4(959 1030 4651 4580) +4(1029 4650 4651 1030) +4(960 1031 4652 4581) +4(1030 4651 4652 1031) +4(961 1032 4653 4582) +4(1031 4652 4653 1032) +4(962 1033 4654 4583) +4(1032 4653 4654 1033) +4(963 1034 4655 4584) +4(1033 4654 4655 1034) +4(964 1035 4656 4585) +4(1034 4655 4656 1035) +4(965 1036 4657 4586) +4(1035 4656 4657 1036) +4(966 1037 4658 4587) +4(1036 4657 4658 1037) +4(967 1038 4659 4588) +4(1037 4658 4659 1038) +4(968 1039 4660 4589) +4(1038 4659 4660 1039) +4(969 1040 4661 4590) +4(1039 4660 4661 1040) +4(970 1041 4662 4591) +4(1040 4661 4662 1041) +4(971 1042 4663 4592) +4(1041 4662 4663 1042) +4(972 1043 4664 4593) +4(1042 4663 4664 1043) +4(973 1044 4665 4594) +4(1043 4664 4665 1044) +4(974 1045 4666 4595) +4(1044 4665 4666 1045) +4(975 1046 4667 4596) +4(1045 4666 4667 1046) +4(976 1047 4668 4597) +4(1046 4667 4668 1047) +4(977 1048 4669 4598) +4(1047 4668 4669 1048) +4(978 1049 4670 4599) +4(1048 4669 4670 1049) +4(979 1050 4671 4600) +4(1049 4670 4671 1050) +4(980 1051 4672 4601) +4(1050 4671 4672 1051) +4(981 1052 4673 4602) +4(1051 4672 4673 1052) +4(982 1053 4674 4603) +4(1052 4673 4674 1053) +4(983 1054 4675 4604) +4(1053 4674 4675 1054) +4(984 1055 4676 4605) +4(1054 4675 4676 1055) +4(985 1056 4677 4606) +4(1055 4676 4677 1056) +4(986 1057 4678 4607) +4(1056 4677 4678 1057) +4(987 1058 4679 4608) +4(1057 4678 4679 1058) +4(988 1059 4680 4609) +4(1058 4679 4680 1059) +4(989 1060 4681 4610) +4(1059 4680 4681 1060) +4(990 1061 4682 4611) +4(1060 4681 4682 1061) +4(991 1062 4683 4612) +4(1061 4682 4683 1062) +4(992 1063 4684 4613) +4(1062 4683 4684 1063) +4(1063 4684 4685 1064) +4(995 1066 4687 4616) +4(1065 4686 4687 1066) +4(996 1067 4688 4617) +4(1066 4687 4688 1067) +4(997 1068 4689 4618) +4(1067 4688 4689 1068) +4(998 1069 4690 4619) +4(1068 4689 4690 1069) +4(999 1070 4691 4620) +4(1069 4690 4691 1070) +4(1000 1071 4692 4621) +4(1070 4691 4692 1071) +4(1001 1072 4693 4622) +4(1071 4692 4693 1072) +4(1002 1073 4694 4623) +4(1072 4693 4694 1073) +4(1003 1074 4695 4624) +4(1073 4694 4695 1074) +4(1004 1075 4696 4625) +4(1074 4695 4696 1075) +4(1005 1076 4697 4626) +4(1075 4696 4697 1076) +4(1006 1077 4698 4627) +4(1076 4697 4698 1077) +4(1007 1078 4699 4628) +4(1077 4698 4699 1078) +4(1008 1079 4700 4629) +4(1078 4699 4700 1079) +4(1009 1080 4701 4630) +4(1079 4700 4701 1080) +4(1010 1081 4702 4631) +4(1080 4701 4702 1081) +4(1011 1082 4703 4632) +4(1081 4702 4703 1082) +4(1012 1083 4704 4633) +4(1082 4703 4704 1083) +4(1013 1084 4705 4634) +4(1083 4704 4705 1084) +4(1014 1085 4706 4635) +4(1084 4705 4706 1085) +4(1015 1086 4707 4636) +4(1085 4706 4707 1086) +4(1016 1087 4708 4637) +4(1086 4707 4708 1087) +4(1017 1088 4709 4638) +4(1087 4708 4709 1088) +4(1018 1089 4710 4639) +4(1088 4709 4710 1089) +4(1019 1090 4711 4640) +4(1089 4710 4711 1090) +4(1020 1091 4712 4641) +4(1090 4711 4712 1091) +4(1021 1092 4713 4642) +4(1091 4712 4713 1092) +4(1022 1093 4714 4643) +4(1092 4713 4714 1093) +4(1023 1094 4715 4644) +4(1093 4714 4715 1094) +4(1024 1095 4716 4645) +4(1094 4715 4716 1095) +4(1025 1096 4717 4646) +4(1095 4716 4717 1096) +4(1026 1097 4718 4647) +4(1096 4717 4718 1097) +4(1027 1098 4719 4648) +4(1097 4718 4719 1098) +4(1028 1099 4720 4649) +4(1098 4719 4720 1099) +4(1029 1100 4721 4650) +4(1099 4720 4721 1100) +4(1030 1101 4722 4651) +4(1100 4721 4722 1101) +4(1031 1102 4723 4652) +4(1101 4722 4723 1102) +4(1032 1103 4724 4653) +4(1102 4723 4724 1103) +4(1033 1104 4725 4654) +4(1103 4724 4725 1104) +4(1034 1105 4726 4655) +4(1104 4725 4726 1105) +4(1035 1106 4727 4656) +4(1105 4726 4727 1106) +4(1036 1107 4728 4657) +4(1106 4727 4728 1107) +4(1037 1108 4729 4658) +4(1107 4728 4729 1108) +4(1038 1109 4730 4659) +4(1108 4729 4730 1109) +4(1039 1110 4731 4660) +4(1109 4730 4731 1110) +4(1040 1111 4732 4661) +4(1110 4731 4732 1111) +4(1041 1112 4733 4662) +4(1111 4732 4733 1112) +4(1042 1113 4734 4663) +4(1112 4733 4734 1113) +4(1043 1114 4735 4664) +4(1113 4734 4735 1114) +4(1044 1115 4736 4665) +4(1114 4735 4736 1115) +4(1045 1116 4737 4666) +4(1115 4736 4737 1116) +4(1046 1117 4738 4667) +4(1116 4737 4738 1117) +4(1047 1118 4739 4668) +4(1117 4738 4739 1118) +4(1048 1119 4740 4669) +4(1118 4739 4740 1119) +4(1049 1120 4741 4670) +4(1119 4740 4741 1120) +4(1050 1121 4742 4671) +4(1120 4741 4742 1121) +4(1051 1122 4743 4672) +4(1121 4742 4743 1122) +4(1052 1123 4744 4673) +4(1122 4743 4744 1123) +4(1053 1124 4745 4674) +4(1123 4744 4745 1124) +4(1054 1125 4746 4675) +4(1124 4745 4746 1125) +4(1055 1126 4747 4676) +4(1125 4746 4747 1126) +4(1056 1127 4748 4677) +4(1126 4747 4748 1127) +4(1057 1128 4749 4678) +4(1127 4748 4749 1128) +4(1058 1129 4750 4679) +4(1128 4749 4750 1129) +4(1059 1130 4751 4680) +4(1129 4750 4751 1130) +4(1060 1131 4752 4681) +4(1130 4751 4752 1131) +4(1061 1132 4753 4682) +4(1131 4752 4753 1132) +4(1062 1133 4754 4683) +4(1132 4753 4754 1133) +4(1063 1134 4755 4684) +4(1133 4754 4755 1134) +4(1134 4755 4756 1135) +4(1066 1137 4758 4687) +4(1136 4757 4758 1137) +4(1067 1138 4759 4688) +4(1137 4758 4759 1138) +4(1068 1139 4760 4689) +4(1138 4759 4760 1139) +4(1069 1140 4761 4690) +4(1139 4760 4761 1140) +4(1070 1141 4762 4691) +4(1140 4761 4762 1141) +4(1071 1142 4763 4692) +4(1141 4762 4763 1142) +4(1072 1143 4764 4693) +4(1142 4763 4764 1143) +4(1073 1144 4765 4694) +4(1143 4764 4765 1144) +4(1074 1145 4766 4695) +4(1144 4765 4766 1145) +4(1075 1146 4767 4696) +4(1145 4766 4767 1146) +4(1076 1147 4768 4697) +4(1146 4767 4768 1147) +4(1077 1148 4769 4698) +4(1147 4768 4769 1148) +4(1078 1149 4770 4699) +4(1148 4769 4770 1149) +4(1079 1150 4771 4700) +4(1149 4770 4771 1150) +4(1080 1151 4772 4701) +4(1150 4771 4772 1151) +4(1081 1152 4773 4702) +4(1151 4772 4773 1152) +4(1082 1153 4774 4703) +4(1152 4773 4774 1153) +4(1083 1154 4775 4704) +4(1153 4774 4775 1154) +4(1084 1155 4776 4705) +4(1154 4775 4776 1155) +4(1085 1156 4777 4706) +4(1155 4776 4777 1156) +4(1086 1157 4778 4707) +4(1156 4777 4778 1157) +4(1087 1158 4779 4708) +4(1157 4778 4779 1158) +4(1088 1159 4780 4709) +4(1158 4779 4780 1159) +4(1089 1160 4781 4710) +4(1159 4780 4781 1160) +4(1090 1161 4782 4711) +4(1160 4781 4782 1161) +4(1091 1162 4783 4712) +4(1161 4782 4783 1162) +4(1092 1163 4784 4713) +4(1162 4783 4784 1163) +4(1093 1164 4785 4714) +4(1163 4784 4785 1164) +4(1094 1165 4786 4715) +4(1164 4785 4786 1165) +4(1095 1166 4787 4716) +4(1165 4786 4787 1166) +4(1096 1167 4788 4717) +4(1166 4787 4788 1167) +4(1097 1168 4789 4718) +4(1167 4788 4789 1168) +4(1098 1169 4790 4719) +4(1168 4789 4790 1169) +4(1099 1170 4791 4720) +4(1169 4790 4791 1170) +4(1100 1171 4792 4721) +4(1170 4791 4792 1171) +4(1101 1172 4793 4722) +4(1171 4792 4793 1172) +4(1102 1173 4794 4723) +4(1172 4793 4794 1173) +4(1103 1174 4795 4724) +4(1173 4794 4795 1174) +4(1104 1175 4796 4725) +4(1174 4795 4796 1175) +4(1105 1176 4797 4726) +4(1175 4796 4797 1176) +4(1106 1177 4798 4727) +4(1176 4797 4798 1177) +4(1107 1178 4799 4728) +4(1177 4798 4799 1178) +4(1108 1179 4800 4729) +4(1178 4799 4800 1179) +4(1109 1180 4801 4730) +4(1179 4800 4801 1180) +4(1110 1181 4802 4731) +4(1180 4801 4802 1181) +4(1111 1182 4803 4732) +4(1181 4802 4803 1182) +4(1112 1183 4804 4733) +4(1182 4803 4804 1183) +4(1113 1184 4805 4734) +4(1183 4804 4805 1184) +4(1114 1185 4806 4735) +4(1184 4805 4806 1185) +4(1115 1186 4807 4736) +4(1185 4806 4807 1186) +4(1116 1187 4808 4737) +4(1186 4807 4808 1187) +4(1117 1188 4809 4738) +4(1187 4808 4809 1188) +4(1118 1189 4810 4739) +4(1188 4809 4810 1189) +4(1119 1190 4811 4740) +4(1189 4810 4811 1190) +4(1120 1191 4812 4741) +4(1190 4811 4812 1191) +4(1121 1192 4813 4742) +4(1191 4812 4813 1192) +4(1122 1193 4814 4743) +4(1192 4813 4814 1193) +4(1123 1194 4815 4744) +4(1193 4814 4815 1194) +4(1124 1195 4816 4745) +4(1194 4815 4816 1195) +4(1125 1196 4817 4746) +4(1195 4816 4817 1196) +4(1126 1197 4818 4747) +4(1196 4817 4818 1197) +4(1127 1198 4819 4748) +4(1197 4818 4819 1198) +4(1128 1199 4820 4749) +4(1198 4819 4820 1199) +4(1129 1200 4821 4750) +4(1199 4820 4821 1200) +4(1130 1201 4822 4751) +4(1200 4821 4822 1201) +4(1131 1202 4823 4752) +4(1201 4822 4823 1202) +4(1132 1203 4824 4753) +4(1202 4823 4824 1203) +4(1133 1204 4825 4754) +4(1203 4824 4825 1204) +4(1134 1205 4826 4755) +4(1204 4825 4826 1205) +4(1205 4826 4827 1206) +4(1137 1208 4829 4758) +4(1207 4828 4829 1208) +4(1138 1209 4830 4759) +4(1208 4829 4830 1209) +4(1139 1210 4831 4760) +4(1209 4830 4831 1210) +4(1140 1211 4832 4761) +4(1210 4831 4832 1211) +4(1141 1212 4833 4762) +4(1211 4832 4833 1212) +4(1142 1213 4834 4763) +4(1212 4833 4834 1213) +4(1143 1214 4835 4764) +4(1213 4834 4835 1214) +4(1144 1215 4836 4765) +4(1214 4835 4836 1215) +4(1145 1216 4837 4766) +4(1215 4836 4837 1216) +4(1146 1217 4838 4767) +4(1216 4837 4838 1217) +4(1147 1218 4839 4768) +4(1217 4838 4839 1218) +4(1148 1219 4840 4769) +4(1218 4839 4840 1219) +4(1149 1220 4841 4770) +4(1219 4840 4841 1220) +4(1150 1221 4842 4771) +4(1220 4841 4842 1221) +4(1151 1222 4843 4772) +4(1221 4842 4843 1222) +4(1152 1223 4844 4773) +4(1222 4843 4844 1223) +4(1153 1224 4845 4774) +4(1223 4844 4845 1224) +4(1154 1225 4846 4775) +4(1224 4845 4846 1225) +4(1155 1226 4847 4776) +4(1225 4846 4847 1226) +4(1156 1227 4848 4777) +4(1226 4847 4848 1227) +4(1157 1228 4849 4778) +4(1227 4848 4849 1228) +4(1158 1229 4850 4779) +4(1228 4849 4850 1229) +4(1159 1230 4851 4780) +4(1229 4850 4851 1230) +4(1160 1231 4852 4781) +4(1230 4851 4852 1231) +4(1161 1232 4853 4782) +4(1231 4852 4853 1232) +4(1162 1233 4854 4783) +4(1232 4853 4854 1233) +4(1163 1234 4855 4784) +4(1233 4854 4855 1234) +4(1164 1235 4856 4785) +4(1234 4855 4856 1235) +4(1165 1236 4857 4786) +4(1235 4856 4857 1236) +4(1166 1237 4858 4787) +4(1236 4857 4858 1237) +4(1167 1238 4859 4788) +4(1237 4858 4859 1238) +4(1168 1239 4860 4789) +4(1238 4859 4860 1239) +4(1169 1240 4861 4790) +4(1239 4860 4861 1240) +4(1170 1241 4862 4791) +4(1240 4861 4862 1241) +4(1171 1242 4863 4792) +4(1241 4862 4863 1242) +4(1172 1243 4864 4793) +4(1242 4863 4864 1243) +4(1173 1244 4865 4794) +4(1243 4864 4865 1244) +4(1174 1245 4866 4795) +4(1244 4865 4866 1245) +4(1175 1246 4867 4796) +4(1245 4866 4867 1246) +4(1176 1247 4868 4797) +4(1246 4867 4868 1247) +4(1177 1248 4869 4798) +4(1247 4868 4869 1248) +4(1178 1249 4870 4799) +4(1248 4869 4870 1249) +4(1179 1250 4871 4800) +4(1249 4870 4871 1250) +4(1180 1251 4872 4801) +4(1250 4871 4872 1251) +4(1181 1252 4873 4802) +4(1251 4872 4873 1252) +4(1182 1253 4874 4803) +4(1252 4873 4874 1253) +4(1183 1254 4875 4804) +4(1253 4874 4875 1254) +4(1184 1255 4876 4805) +4(1254 4875 4876 1255) +4(1185 1256 4877 4806) +4(1255 4876 4877 1256) +4(1186 1257 4878 4807) +4(1256 4877 4878 1257) +4(1187 1258 4879 4808) +4(1257 4878 4879 1258) +4(1188 1259 4880 4809) +4(1258 4879 4880 1259) +4(1189 1260 4881 4810) +4(1259 4880 4881 1260) +4(1190 1261 4882 4811) +4(1260 4881 4882 1261) +4(1191 1262 4883 4812) +4(1261 4882 4883 1262) +4(1192 1263 4884 4813) +4(1262 4883 4884 1263) +4(1193 1264 4885 4814) +4(1263 4884 4885 1264) +4(1194 1265 4886 4815) +4(1264 4885 4886 1265) +4(1195 1266 4887 4816) +4(1265 4886 4887 1266) +4(1196 1267 4888 4817) +4(1266 4887 4888 1267) +4(1197 1268 4889 4818) +4(1267 4888 4889 1268) +4(1198 1269 4890 4819) +4(1268 4889 4890 1269) +4(1199 1270 4891 4820) +4(1269 4890 4891 1270) +4(1200 1271 4892 4821) +4(1270 4891 4892 1271) +4(1201 1272 4893 4822) +4(1271 4892 4893 1272) +4(1202 1273 4894 4823) +4(1272 4893 4894 1273) +4(1203 1274 4895 4824) +4(1273 4894 4895 1274) +4(1204 1275 4896 4825) +4(1274 4895 4896 1275) +4(1205 1276 4897 4826) +4(1275 4896 4897 1276) +4(1276 4897 4898 1277) +4(1208 1279 4900 4829) +4(1278 4899 4900 1279) +4(1209 1280 4901 4830) +4(1279 4900 4901 1280) +4(1210 1281 4902 4831) +4(1280 4901 4902 1281) +4(1211 1282 4903 4832) +4(1281 4902 4903 1282) +4(1212 1283 4904 4833) +4(1282 4903 4904 1283) +4(1213 1284 4905 4834) +4(1283 4904 4905 1284) +4(1214 1285 4906 4835) +4(1284 4905 4906 1285) +4(1215 1286 4907 4836) +4(1285 4906 4907 1286) +4(1216 1287 4908 4837) +4(1286 4907 4908 1287) +4(1217 1288 4909 4838) +4(1287 4908 4909 1288) +4(1218 1289 4910 4839) +4(1288 4909 4910 1289) +4(1219 1290 4911 4840) +4(1289 4910 4911 1290) +4(1220 1291 4912 4841) +4(1290 4911 4912 1291) +4(1221 1292 4913 4842) +4(1291 4912 4913 1292) +4(1222 1293 4914 4843) +4(1292 4913 4914 1293) +4(1223 1294 4915 4844) +4(1293 4914 4915 1294) +4(1224 1295 4916 4845) +4(1294 4915 4916 1295) +4(1225 1296 4917 4846) +4(1295 4916 4917 1296) +4(1226 1297 4918 4847) +4(1296 4917 4918 1297) +4(1227 1298 4919 4848) +4(1297 4918 4919 1298) +4(1228 1299 4920 4849) +4(1298 4919 4920 1299) +4(1229 1300 4921 4850) +4(1299 4920 4921 1300) +4(1230 1301 4922 4851) +4(1300 4921 4922 1301) +4(1231 1302 4923 4852) +4(1301 4922 4923 1302) +4(1232 1303 4924 4853) +4(1302 4923 4924 1303) +4(1233 1304 4925 4854) +4(1303 4924 4925 1304) +4(1234 1305 4926 4855) +4(1304 4925 4926 1305) +4(1235 1306 4927 4856) +4(1305 4926 4927 1306) +4(1236 1307 4928 4857) +4(1306 4927 4928 1307) +4(1237 1308 4929 4858) +4(1307 4928 4929 1308) +4(1238 1309 4930 4859) +4(1308 4929 4930 1309) +4(1239 1310 4931 4860) +4(1309 4930 4931 1310) +4(1240 1311 4932 4861) +4(1310 4931 4932 1311) +4(1241 1312 4933 4862) +4(1311 4932 4933 1312) +4(1242 1313 4934 4863) +4(1312 4933 4934 1313) +4(1243 1314 4935 4864) +4(1313 4934 4935 1314) +4(1244 1315 4936 4865) +4(1314 4935 4936 1315) +4(1245 1316 4937 4866) +4(1315 4936 4937 1316) +4(1246 1317 4938 4867) +4(1316 4937 4938 1317) +4(1247 1318 4939 4868) +4(1317 4938 4939 1318) +4(1248 1319 4940 4869) +4(1318 4939 4940 1319) +4(1249 1320 4941 4870) +4(1319 4940 4941 1320) +4(1250 1321 4942 4871) +4(1320 4941 4942 1321) +4(1251 1322 4943 4872) +4(1321 4942 4943 1322) +4(1252 1323 4944 4873) +4(1322 4943 4944 1323) +4(1253 1324 4945 4874) +4(1323 4944 4945 1324) +4(1254 1325 4946 4875) +4(1324 4945 4946 1325) +4(1255 1326 4947 4876) +4(1325 4946 4947 1326) +4(1256 1327 4948 4877) +4(1326 4947 4948 1327) +4(1257 1328 4949 4878) +4(1327 4948 4949 1328) +4(1258 1329 4950 4879) +4(1328 4949 4950 1329) +4(1259 1330 4951 4880) +4(1329 4950 4951 1330) +4(1260 1331 4952 4881) +4(1330 4951 4952 1331) +4(1261 1332 4953 4882) +4(1331 4952 4953 1332) +4(1262 1333 4954 4883) +4(1332 4953 4954 1333) +4(1263 1334 4955 4884) +4(1333 4954 4955 1334) +4(1264 1335 4956 4885) +4(1334 4955 4956 1335) +4(1265 1336 4957 4886) +4(1335 4956 4957 1336) +4(1266 1337 4958 4887) +4(1336 4957 4958 1337) +4(1267 1338 4959 4888) +4(1337 4958 4959 1338) +4(1268 1339 4960 4889) +4(1338 4959 4960 1339) +4(1269 1340 4961 4890) +4(1339 4960 4961 1340) +4(1270 1341 4962 4891) +4(1340 4961 4962 1341) +4(1271 1342 4963 4892) +4(1341 4962 4963 1342) +4(1272 1343 4964 4893) +4(1342 4963 4964 1343) +4(1273 1344 4965 4894) +4(1343 4964 4965 1344) +4(1274 1345 4966 4895) +4(1344 4965 4966 1345) +4(1275 1346 4967 4896) +4(1345 4966 4967 1346) +4(1276 1347 4968 4897) +4(1346 4967 4968 1347) +4(1347 4968 4969 1348) +4(1279 1350 4971 4900) +4(1349 4970 4971 1350) +4(1280 1351 4972 4901) +4(1350 4971 4972 1351) +4(1281 1352 4973 4902) +4(1351 4972 4973 1352) +4(1282 1353 4974 4903) +4(1352 4973 4974 1353) +4(1283 1354 4975 4904) +4(1353 4974 4975 1354) +4(1284 1355 4976 4905) +4(1354 4975 4976 1355) +4(1285 1356 4977 4906) +4(1355 4976 4977 1356) +4(1286 1357 4978 4907) +4(1356 4977 4978 1357) +4(1287 1358 4979 4908) +4(1357 4978 4979 1358) +4(1288 1359 4980 4909) +4(1358 4979 4980 1359) +4(1289 1360 4981 4910) +4(1359 4980 4981 1360) +4(1290 1361 4982 4911) +4(1360 4981 4982 1361) +4(1291 1362 4983 4912) +4(1361 4982 4983 1362) +4(1292 1363 4984 4913) +4(1362 4983 4984 1363) +4(1293 1364 4985 4914) +4(1363 4984 4985 1364) +4(1294 1365 4986 4915) +4(1364 4985 4986 1365) +4(1295 1366 4987 4916) +4(1365 4986 4987 1366) +4(1296 1367 4988 4917) +4(1366 4987 4988 1367) +4(1297 1368 4989 4918) +4(1367 4988 4989 1368) +4(1298 1369 4990 4919) +4(1368 4989 4990 1369) +4(1299 1370 4991 4920) +4(1369 4990 4991 1370) +4(1300 1371 4992 4921) +4(1370 4991 4992 1371) +4(1301 1372 4993 4922) +4(1371 4992 4993 1372) +4(1302 1373 4994 4923) +4(1372 4993 4994 1373) +4(1303 1374 4995 4924) +4(1373 4994 4995 1374) +4(1304 1375 4996 4925) +4(1374 4995 4996 1375) +4(1305 1376 4997 4926) +4(1375 4996 4997 1376) +4(1306 1377 4998 4927) +4(1376 4997 4998 1377) +4(1307 1378 4999 4928) +4(1377 4998 4999 1378) +4(1308 1379 5000 4929) +4(1378 4999 5000 1379) +4(1309 1380 5001 4930) +4(1379 5000 5001 1380) +4(1310 1381 5002 4931) +4(1380 5001 5002 1381) +4(1311 1382 5003 4932) +4(1381 5002 5003 1382) +4(1312 1383 5004 4933) +4(1382 5003 5004 1383) +4(1313 1384 5005 4934) +4(1383 5004 5005 1384) +4(1314 1385 5006 4935) +4(1384 5005 5006 1385) +4(1315 1386 5007 4936) +4(1385 5006 5007 1386) +4(1316 1387 5008 4937) +4(1386 5007 5008 1387) +4(1317 1388 5009 4938) +4(1387 5008 5009 1388) +4(1318 1389 5010 4939) +4(1388 5009 5010 1389) +4(1319 1390 5011 4940) +4(1389 5010 5011 1390) +4(1320 1391 5012 4941) +4(1390 5011 5012 1391) +4(1321 1392 5013 4942) +4(1391 5012 5013 1392) +4(1322 1393 5014 4943) +4(1392 5013 5014 1393) +4(1323 1394 5015 4944) +4(1393 5014 5015 1394) +4(1324 1395 5016 4945) +4(1394 5015 5016 1395) +4(1325 1396 5017 4946) +4(1395 5016 5017 1396) +4(1326 1397 5018 4947) +4(1396 5017 5018 1397) +4(1327 1398 5019 4948) +4(1397 5018 5019 1398) +4(1328 1399 5020 4949) +4(1398 5019 5020 1399) +4(1329 1400 5021 4950) +4(1399 5020 5021 1400) +4(1330 1401 5022 4951) +4(1400 5021 5022 1401) +4(1331 1402 5023 4952) +4(1401 5022 5023 1402) +4(1332 1403 5024 4953) +4(1402 5023 5024 1403) +4(1333 1404 5025 4954) +4(1403 5024 5025 1404) +4(1334 1405 5026 4955) +4(1404 5025 5026 1405) +4(1335 1406 5027 4956) +4(1405 5026 5027 1406) +4(1336 1407 5028 4957) +4(1406 5027 5028 1407) +4(1337 1408 5029 4958) +4(1407 5028 5029 1408) +4(1338 1409 5030 4959) +4(1408 5029 5030 1409) +4(1339 1410 5031 4960) +4(1409 5030 5031 1410) +4(1340 1411 5032 4961) +4(1410 5031 5032 1411) +4(1341 1412 5033 4962) +4(1411 5032 5033 1412) +4(1342 1413 5034 4963) +4(1412 5033 5034 1413) +4(1343 1414 5035 4964) +4(1413 5034 5035 1414) +4(1344 1415 5036 4965) +4(1414 5035 5036 1415) +4(1345 1416 5037 4966) +4(1415 5036 5037 1416) +4(1346 1417 5038 4967) +4(1416 5037 5038 1417) +4(1347 1418 5039 4968) +4(1417 5038 5039 1418) +4(1418 5039 5040 1419) +4(1350 1421 5042 4971) +4(1420 5041 5042 1421) +4(1351 1422 5043 4972) +4(1421 5042 5043 1422) +4(1352 1423 5044 4973) +4(1422 5043 5044 1423) +4(1353 1424 5045 4974) +4(1423 5044 5045 1424) +4(1354 1425 5046 4975) +4(1424 5045 5046 1425) +4(1355 1426 5047 4976) +4(1425 5046 5047 1426) +4(1356 1427 5048 4977) +4(1426 5047 5048 1427) +4(1357 1428 5049 4978) +4(1427 5048 5049 1428) +4(1358 1429 5050 4979) +4(1428 5049 5050 1429) +4(1359 1430 5051 4980) +4(1429 5050 5051 1430) +4(1360 1431 5052 4981) +4(1430 5051 5052 1431) +4(1361 1432 5053 4982) +4(1431 5052 5053 1432) +4(1362 1433 5054 4983) +4(1432 5053 5054 1433) +4(1363 1434 5055 4984) +4(1433 5054 5055 1434) +4(1364 1435 5056 4985) +4(1434 5055 5056 1435) +4(1365 1436 5057 4986) +4(1435 5056 5057 1436) +4(1366 1437 5058 4987) +4(1436 5057 5058 1437) +4(1367 1438 5059 4988) +4(1437 5058 5059 1438) +4(1368 1439 5060 4989) +4(1438 5059 5060 1439) +4(1369 1440 5061 4990) +4(1439 5060 5061 1440) +4(1370 1441 5062 4991) +4(1440 5061 5062 1441) +4(1371 1442 5063 4992) +4(1441 5062 5063 1442) +4(1372 1443 5064 4993) +4(1442 5063 5064 1443) +4(1373 1444 5065 4994) +4(1443 5064 5065 1444) +4(1374 1445 5066 4995) +4(1444 5065 5066 1445) +4(1375 1446 5067 4996) +4(1445 5066 5067 1446) +4(1376 1447 5068 4997) +4(1446 5067 5068 1447) +4(1377 1448 5069 4998) +4(1447 5068 5069 1448) +4(1378 1449 5070 4999) +4(1448 5069 5070 1449) +4(1379 1450 5071 5000) +4(1449 5070 5071 1450) +4(1380 1451 5072 5001) +4(1450 5071 5072 1451) +4(1381 1452 5073 5002) +4(1451 5072 5073 1452) +4(1382 1453 5074 5003) +4(1452 5073 5074 1453) +4(1383 1454 5075 5004) +4(1453 5074 5075 1454) +4(1384 1455 5076 5005) +4(1454 5075 5076 1455) +4(1385 1456 5077 5006) +4(1455 5076 5077 1456) +4(1386 1457 5078 5007) +4(1456 5077 5078 1457) +4(1387 1458 5079 5008) +4(1457 5078 5079 1458) +4(1388 1459 5080 5009) +4(1458 5079 5080 1459) +4(1389 1460 5081 5010) +4(1459 5080 5081 1460) +4(1390 1461 5082 5011) +4(1460 5081 5082 1461) +4(1391 1462 5083 5012) +4(1461 5082 5083 1462) +4(1392 1463 5084 5013) +4(1462 5083 5084 1463) +4(1393 1464 5085 5014) +4(1463 5084 5085 1464) +4(1394 1465 5086 5015) +4(1464 5085 5086 1465) +4(1395 1466 5087 5016) +4(1465 5086 5087 1466) +4(1396 1467 5088 5017) +4(1466 5087 5088 1467) +4(1397 1468 5089 5018) +4(1467 5088 5089 1468) +4(1398 1469 5090 5019) +4(1468 5089 5090 1469) +4(1399 1470 5091 5020) +4(1469 5090 5091 1470) +4(1400 1471 5092 5021) +4(1470 5091 5092 1471) +4(1401 1472 5093 5022) +4(1471 5092 5093 1472) +4(1402 1473 5094 5023) +4(1472 5093 5094 1473) +4(1403 1474 5095 5024) +4(1473 5094 5095 1474) +4(1404 1475 5096 5025) +4(1474 5095 5096 1475) +4(1405 1476 5097 5026) +4(1475 5096 5097 1476) +4(1406 1477 5098 5027) +4(1476 5097 5098 1477) +4(1407 1478 5099 5028) +4(1477 5098 5099 1478) +4(1408 1479 5100 5029) +4(1478 5099 5100 1479) +4(1409 1480 5101 5030) +4(1479 5100 5101 1480) +4(1410 1481 5102 5031) +4(1480 5101 5102 1481) +4(1411 1482 5103 5032) +4(1481 5102 5103 1482) +4(1412 1483 5104 5033) +4(1482 5103 5104 1483) +4(1413 1484 5105 5034) +4(1483 5104 5105 1484) +4(1414 1485 5106 5035) +4(1484 5105 5106 1485) +4(1415 1486 5107 5036) +4(1485 5106 5107 1486) +4(1416 1487 5108 5037) +4(1486 5107 5108 1487) +4(1417 1488 5109 5038) +4(1487 5108 5109 1488) +4(1418 1489 5110 5039) +4(1488 5109 5110 1489) +4(1489 5110 5111 1490) +4(1421 1492 5113 5042) +4(1491 5112 5113 1492) +4(1422 1493 5114 5043) +4(1492 5113 5114 1493) +4(1423 1494 5115 5044) +4(1493 5114 5115 1494) +4(1424 1495 5116 5045) +4(1494 5115 5116 1495) +4(1425 1496 5117 5046) +4(1495 5116 5117 1496) +4(1426 1497 5118 5047) +4(1496 5117 5118 1497) +4(1427 1498 5119 5048) +4(1497 5118 5119 1498) +4(1428 1499 5120 5049) +4(1498 5119 5120 1499) +4(1429 1500 5121 5050) +4(1499 5120 5121 1500) +4(1430 1501 5122 5051) +4(1500 5121 5122 1501) +4(1431 1502 5123 5052) +4(1501 5122 5123 1502) +4(1432 1503 5124 5053) +4(1502 5123 5124 1503) +4(1433 1504 5125 5054) +4(1503 5124 5125 1504) +4(1434 1505 5126 5055) +4(1504 5125 5126 1505) +4(1435 1506 5127 5056) +4(1505 5126 5127 1506) +4(1436 1507 5128 5057) +4(1506 5127 5128 1507) +4(1437 1508 5129 5058) +4(1507 5128 5129 1508) +4(1438 1509 5130 5059) +4(1508 5129 5130 1509) +4(1439 1510 5131 5060) +4(1509 5130 5131 1510) +4(1440 1511 5132 5061) +4(1510 5131 5132 1511) +4(1441 1512 5133 5062) +4(1511 5132 5133 1512) +4(1442 1513 5134 5063) +4(1512 5133 5134 1513) +4(1443 1514 5135 5064) +4(1513 5134 5135 1514) +4(1444 1515 5136 5065) +4(1514 5135 5136 1515) +4(1445 1516 5137 5066) +4(1515 5136 5137 1516) +4(1446 1517 5138 5067) +4(1516 5137 5138 1517) +4(1447 1518 5139 5068) +4(1517 5138 5139 1518) +4(1448 1519 5140 5069) +4(1518 5139 5140 1519) +4(1449 1520 5141 5070) +4(1519 5140 5141 1520) +4(1450 1521 5142 5071) +4(1520 5141 5142 1521) +4(1451 1522 5143 5072) +4(1521 5142 5143 1522) +4(1452 1523 5144 5073) +4(1522 5143 5144 1523) +4(1453 1524 5145 5074) +4(1523 5144 5145 1524) +4(1454 1525 5146 5075) +4(1524 5145 5146 1525) +4(1455 1526 5147 5076) +4(1525 5146 5147 1526) +4(1456 1527 5148 5077) +4(1526 5147 5148 1527) +4(1457 1528 5149 5078) +4(1527 5148 5149 1528) +4(1458 1529 5150 5079) +4(1528 5149 5150 1529) +4(1459 1530 5151 5080) +4(1529 5150 5151 1530) +4(1460 1531 5152 5081) +4(1530 5151 5152 1531) +4(1461 1532 5153 5082) +4(1531 5152 5153 1532) +4(1462 1533 5154 5083) +4(1532 5153 5154 1533) +4(1463 1534 5155 5084) +4(1533 5154 5155 1534) +4(1464 1535 5156 5085) +4(1534 5155 5156 1535) +4(1465 1536 5157 5086) +4(1535 5156 5157 1536) +4(1466 1537 5158 5087) +4(1536 5157 5158 1537) +4(1467 1538 5159 5088) +4(1537 5158 5159 1538) +4(1468 1539 5160 5089) +4(1538 5159 5160 1539) +4(1469 1540 5161 5090) +4(1539 5160 5161 1540) +4(1470 1541 5162 5091) +4(1540 5161 5162 1541) +4(1471 1542 5163 5092) +4(1541 5162 5163 1542) +4(1472 1543 5164 5093) +4(1542 5163 5164 1543) +4(1473 1544 5165 5094) +4(1543 5164 5165 1544) +4(1474 1545 5166 5095) +4(1544 5165 5166 1545) +4(1475 1546 5167 5096) +4(1545 5166 5167 1546) +4(1476 1547 5168 5097) +4(1546 5167 5168 1547) +4(1477 1548 5169 5098) +4(1547 5168 5169 1548) +4(1478 1549 5170 5099) +4(1548 5169 5170 1549) +4(1479 1550 5171 5100) +4(1549 5170 5171 1550) +4(1480 1551 5172 5101) +4(1550 5171 5172 1551) +4(1481 1552 5173 5102) +4(1551 5172 5173 1552) +4(1482 1553 5174 5103) +4(1552 5173 5174 1553) +4(1483 1554 5175 5104) +4(1553 5174 5175 1554) +4(1484 1555 5176 5105) +4(1554 5175 5176 1555) +4(1485 1556 5177 5106) +4(1555 5176 5177 1556) +4(1486 1557 5178 5107) +4(1556 5177 5178 1557) +4(1487 1558 5179 5108) +4(1557 5178 5179 1558) +4(1488 1559 5180 5109) +4(1558 5179 5180 1559) +4(1489 1560 5181 5110) +4(1559 5180 5181 1560) +4(1560 5181 5182 1561) +4(1492 1563 5184 5113) +4(1562 5183 5184 1563) +4(1493 1564 5185 5114) +4(1563 5184 5185 1564) +4(1494 1565 5186 5115) +4(1564 5185 5186 1565) +4(1495 1566 5187 5116) +4(1565 5186 5187 1566) +4(1496 1567 5188 5117) +4(1566 5187 5188 1567) +4(1497 1568 5189 5118) +4(1567 5188 5189 1568) +4(1498 1569 5190 5119) +4(1568 5189 5190 1569) +4(1499 1570 5191 5120) +4(1569 5190 5191 1570) +4(1500 1571 5192 5121) +4(1570 5191 5192 1571) +4(1501 1572 5193 5122) +4(1571 5192 5193 1572) +4(1502 1573 5194 5123) +4(1572 5193 5194 1573) +4(1503 1574 5195 5124) +4(1573 5194 5195 1574) +4(1504 1575 5196 5125) +4(1574 5195 5196 1575) +4(1505 1576 5197 5126) +4(1575 5196 5197 1576) +4(1506 1577 5198 5127) +4(1576 5197 5198 1577) +4(1507 1578 5199 5128) +4(1577 5198 5199 1578) +4(1508 1579 5200 5129) +4(1578 5199 5200 1579) +4(1509 1580 5201 5130) +4(1579 5200 5201 1580) +4(1510 1581 5202 5131) +4(1580 5201 5202 1581) +4(1511 1582 5203 5132) +4(1581 5202 5203 1582) +4(1512 1583 5204 5133) +4(1582 5203 5204 1583) +4(1513 1584 5205 5134) +4(1583 5204 5205 1584) +4(1514 1585 5206 5135) +4(1584 5205 5206 1585) +4(1515 1586 5207 5136) +4(1585 5206 5207 1586) +4(1516 1587 5208 5137) +4(1586 5207 5208 1587) +4(1517 1588 5209 5138) +4(1587 5208 5209 1588) +4(1518 1589 5210 5139) +4(1588 5209 5210 1589) +4(1519 1590 5211 5140) +4(1589 5210 5211 1590) +4(1520 1591 5212 5141) +4(1590 5211 5212 1591) +4(1521 1592 5213 5142) +4(1591 5212 5213 1592) +4(1522 1593 5214 5143) +4(1592 5213 5214 1593) +4(1523 1594 5215 5144) +4(1593 5214 5215 1594) +4(1524 1595 5216 5145) +4(1594 5215 5216 1595) +4(1525 1596 5217 5146) +4(1595 5216 5217 1596) +4(1526 1597 5218 5147) +4(1596 5217 5218 1597) +4(1527 1598 5219 5148) +4(1597 5218 5219 1598) +4(1528 1599 5220 5149) +4(1598 5219 5220 1599) +4(1529 1600 5221 5150) +4(1599 5220 5221 1600) +4(1530 1601 5222 5151) +4(1600 5221 5222 1601) +4(1531 1602 5223 5152) +4(1601 5222 5223 1602) +4(1532 1603 5224 5153) +4(1602 5223 5224 1603) +4(1533 1604 5225 5154) +4(1603 5224 5225 1604) +4(1534 1605 5226 5155) +4(1604 5225 5226 1605) +4(1535 1606 5227 5156) +4(1605 5226 5227 1606) +4(1536 1607 5228 5157) +4(1606 5227 5228 1607) +4(1537 1608 5229 5158) +4(1607 5228 5229 1608) +4(1538 1609 5230 5159) +4(1608 5229 5230 1609) +4(1539 1610 5231 5160) +4(1609 5230 5231 1610) +4(1540 1611 5232 5161) +4(1610 5231 5232 1611) +4(1541 1612 5233 5162) +4(1611 5232 5233 1612) +4(1542 1613 5234 5163) +4(1612 5233 5234 1613) +4(1543 1614 5235 5164) +4(1613 5234 5235 1614) +4(1544 1615 5236 5165) +4(1614 5235 5236 1615) +4(1545 1616 5237 5166) +4(1615 5236 5237 1616) +4(1546 1617 5238 5167) +4(1616 5237 5238 1617) +4(1547 1618 5239 5168) +4(1617 5238 5239 1618) +4(1548 1619 5240 5169) +4(1618 5239 5240 1619) +4(1549 1620 5241 5170) +4(1619 5240 5241 1620) +4(1550 1621 5242 5171) +4(1620 5241 5242 1621) +4(1551 1622 5243 5172) +4(1621 5242 5243 1622) +4(1552 1623 5244 5173) +4(1622 5243 5244 1623) +4(1553 1624 5245 5174) +4(1623 5244 5245 1624) +4(1554 1625 5246 5175) +4(1624 5245 5246 1625) +4(1555 1626 5247 5176) +4(1625 5246 5247 1626) +4(1556 1627 5248 5177) +4(1626 5247 5248 1627) +4(1557 1628 5249 5178) +4(1627 5248 5249 1628) +4(1558 1629 5250 5179) +4(1628 5249 5250 1629) +4(1559 1630 5251 5180) +4(1629 5250 5251 1630) +4(1560 1631 5252 5181) +4(1630 5251 5252 1631) +4(1631 5252 5253 1632) +4(1563 1634 5255 5184) +4(1633 5254 5255 1634) +4(1564 1635 5256 5185) +4(1634 5255 5256 1635) +4(1565 1636 5257 5186) +4(1635 5256 5257 1636) +4(1566 1637 5258 5187) +4(1636 5257 5258 1637) +4(1567 1638 5259 5188) +4(1637 5258 5259 1638) +4(1568 1639 5260 5189) +4(1638 5259 5260 1639) +4(1569 1640 5261 5190) +4(1639 5260 5261 1640) +4(1570 1641 5262 5191) +4(1640 5261 5262 1641) +4(1571 1642 5263 5192) +4(1641 5262 5263 1642) +4(1572 1643 5264 5193) +4(1642 5263 5264 1643) +4(1573 1644 5265 5194) +4(1643 5264 5265 1644) +4(1574 1645 5266 5195) +4(1644 5265 5266 1645) +4(1575 1646 5267 5196) +4(1645 5266 5267 1646) +4(1576 1647 5268 5197) +4(1646 5267 5268 1647) +4(1577 1648 5269 5198) +4(1647 5268 5269 1648) +4(1578 1649 5270 5199) +4(1648 5269 5270 1649) +4(1579 1650 5271 5200) +4(1649 5270 5271 1650) +4(1580 1651 5272 5201) +4(1650 5271 5272 1651) +4(1581 1652 5273 5202) +4(1651 5272 5273 1652) +4(1582 1653 5274 5203) +4(1652 5273 5274 1653) +4(1583 1654 5275 5204) +4(1653 5274 5275 1654) +4(1584 1655 5276 5205) +4(1654 5275 5276 1655) +4(1585 1656 5277 5206) +4(1655 5276 5277 1656) +4(1586 1657 5278 5207) +4(1656 5277 5278 1657) +4(1587 1658 5279 5208) +4(1657 5278 5279 1658) +4(1588 1659 5280 5209) +4(1658 5279 5280 1659) +4(1589 1660 5281 5210) +4(1659 5280 5281 1660) +4(1590 1661 5282 5211) +4(1660 5281 5282 1661) +4(1591 1662 5283 5212) +4(1661 5282 5283 1662) +4(1592 1663 5284 5213) +4(1662 5283 5284 1663) +4(1593 1664 5285 5214) +4(1663 5284 5285 1664) +4(1594 1665 5286 5215) +4(1664 5285 5286 1665) +4(1595 1666 5287 5216) +4(1665 5286 5287 1666) +4(1596 1667 5288 5217) +4(1666 5287 5288 1667) +4(1597 1668 5289 5218) +4(1667 5288 5289 1668) +4(1598 1669 5290 5219) +4(1668 5289 5290 1669) +4(1599 1670 5291 5220) +4(1669 5290 5291 1670) +4(1600 1671 5292 5221) +4(1670 5291 5292 1671) +4(1601 1672 5293 5222) +4(1671 5292 5293 1672) +4(1602 1673 5294 5223) +4(1672 5293 5294 1673) +4(1603 1674 5295 5224) +4(1673 5294 5295 1674) +4(1604 1675 5296 5225) +4(1674 5295 5296 1675) +4(1605 1676 5297 5226) +4(1675 5296 5297 1676) +4(1606 1677 5298 5227) +4(1676 5297 5298 1677) +4(1607 1678 5299 5228) +4(1677 5298 5299 1678) +4(1608 1679 5300 5229) +4(1678 5299 5300 1679) +4(1609 1680 5301 5230) +4(1679 5300 5301 1680) +4(1610 1681 5302 5231) +4(1680 5301 5302 1681) +4(1611 1682 5303 5232) +4(1681 5302 5303 1682) +4(1612 1683 5304 5233) +4(1682 5303 5304 1683) +4(1613 1684 5305 5234) +4(1683 5304 5305 1684) +4(1614 1685 5306 5235) +4(1684 5305 5306 1685) +4(1615 1686 5307 5236) +4(1685 5306 5307 1686) +4(1616 1687 5308 5237) +4(1686 5307 5308 1687) +4(1617 1688 5309 5238) +4(1687 5308 5309 1688) +4(1618 1689 5310 5239) +4(1688 5309 5310 1689) +4(1619 1690 5311 5240) +4(1689 5310 5311 1690) +4(1620 1691 5312 5241) +4(1690 5311 5312 1691) +4(1621 1692 5313 5242) +4(1691 5312 5313 1692) +4(1622 1693 5314 5243) +4(1692 5313 5314 1693) +4(1623 1694 5315 5244) +4(1693 5314 5315 1694) +4(1624 1695 5316 5245) +4(1694 5315 5316 1695) +4(1625 1696 5317 5246) +4(1695 5316 5317 1696) +4(1626 1697 5318 5247) +4(1696 5317 5318 1697) +4(1627 1698 5319 5248) +4(1697 5318 5319 1698) +4(1628 1699 5320 5249) +4(1698 5319 5320 1699) +4(1629 1700 5321 5250) +4(1699 5320 5321 1700) +4(1630 1701 5322 5251) +4(1700 5321 5322 1701) +4(1631 1702 5323 5252) +4(1701 5322 5323 1702) +4(1702 5323 5324 1703) +4(1634 1705 5326 5255) +4(1704 5325 5326 1705) +4(1635 1706 5327 5256) +4(1705 5326 5327 1706) +4(1636 1707 5328 5257) +4(1706 5327 5328 1707) +4(1637 1708 5329 5258) +4(1707 5328 5329 1708) +4(1638 1709 5330 5259) +4(1708 5329 5330 1709) +4(1639 1710 5331 5260) +4(1709 5330 5331 1710) +4(1640 1711 5332 5261) +4(1710 5331 5332 1711) +4(1641 1712 5333 5262) +4(1711 5332 5333 1712) +4(1642 1713 5334 5263) +4(1712 5333 5334 1713) +4(1643 1714 5335 5264) +4(1713 5334 5335 1714) +4(1644 1715 5336 5265) +4(1714 5335 5336 1715) +4(1645 1716 5337 5266) +4(1715 5336 5337 1716) +4(1646 1717 5338 5267) +4(1716 5337 5338 1717) +4(1647 1718 5339 5268) +4(1717 5338 5339 1718) +4(1648 1719 5340 5269) +4(1718 5339 5340 1719) +4(1649 1720 5341 5270) +4(1719 5340 5341 1720) +4(1650 1721 5342 5271) +4(1720 5341 5342 1721) +4(1651 1722 5343 5272) +4(1721 5342 5343 1722) +4(1652 1723 5344 5273) +4(1722 5343 5344 1723) +4(1653 1724 5345 5274) +4(1723 5344 5345 1724) +4(1654 1725 5346 5275) +4(1724 5345 5346 1725) +4(1655 1726 5347 5276) +4(1725 5346 5347 1726) +4(1656 1727 5348 5277) +4(1726 5347 5348 1727) +4(1657 1728 5349 5278) +4(1727 5348 5349 1728) +4(1658 1729 5350 5279) +4(1728 5349 5350 1729) +4(1659 1730 5351 5280) +4(1729 5350 5351 1730) +4(1660 1731 5352 5281) +4(1730 5351 5352 1731) +4(1661 1732 5353 5282) +4(1731 5352 5353 1732) +4(1662 1733 5354 5283) +4(1732 5353 5354 1733) +4(1663 1734 5355 5284) +4(1733 5354 5355 1734) +4(1664 1735 5356 5285) +4(1734 5355 5356 1735) +4(1665 1736 5357 5286) +4(1735 5356 5357 1736) +4(1666 1737 5358 5287) +4(1736 5357 5358 1737) +4(1667 1738 5359 5288) +4(1737 5358 5359 1738) +4(1668 1739 5360 5289) +4(1738 5359 5360 1739) +4(1669 1740 5361 5290) +4(1739 5360 5361 1740) +4(1670 1741 5362 5291) +4(1740 5361 5362 1741) +4(1671 1742 5363 5292) +4(1741 5362 5363 1742) +4(1672 1743 5364 5293) +4(1742 5363 5364 1743) +4(1673 1744 5365 5294) +4(1743 5364 5365 1744) +4(1674 1745 5366 5295) +4(1744 5365 5366 1745) +4(1675 1746 5367 5296) +4(1745 5366 5367 1746) +4(1676 1747 5368 5297) +4(1746 5367 5368 1747) +4(1677 1748 5369 5298) +4(1747 5368 5369 1748) +4(1678 1749 5370 5299) +4(1748 5369 5370 1749) +4(1679 1750 5371 5300) +4(1749 5370 5371 1750) +4(1680 1751 5372 5301) +4(1750 5371 5372 1751) +4(1681 1752 5373 5302) +4(1751 5372 5373 1752) +4(1682 1753 5374 5303) +4(1752 5373 5374 1753) +4(1683 1754 5375 5304) +4(1753 5374 5375 1754) +4(1684 1755 5376 5305) +4(1754 5375 5376 1755) +4(1685 1756 5377 5306) +4(1755 5376 5377 1756) +4(1686 1757 5378 5307) +4(1756 5377 5378 1757) +4(1687 1758 5379 5308) +4(1757 5378 5379 1758) +4(1688 1759 5380 5309) +4(1758 5379 5380 1759) +4(1689 1760 5381 5310) +4(1759 5380 5381 1760) +4(1690 1761 5382 5311) +4(1760 5381 5382 1761) +4(1691 1762 5383 5312) +4(1761 5382 5383 1762) +4(1692 1763 5384 5313) +4(1762 5383 5384 1763) +4(1693 1764 5385 5314) +4(1763 5384 5385 1764) +4(1694 1765 5386 5315) +4(1764 5385 5386 1765) +4(1695 1766 5387 5316) +4(1765 5386 5387 1766) +4(1696 1767 5388 5317) +4(1766 5387 5388 1767) +4(1697 1768 5389 5318) +4(1767 5388 5389 1768) +4(1698 1769 5390 5319) +4(1768 5389 5390 1769) +4(1699 1770 5391 5320) +4(1769 5390 5391 1770) +4(1700 1771 5392 5321) +4(1770 5391 5392 1771) +4(1701 1772 5393 5322) +4(1771 5392 5393 1772) +4(1702 1773 5394 5323) +4(1772 5393 5394 1773) +4(1773 5394 5395 1774) +4(1705 1776 5397 5326) +4(1775 5396 5397 1776) +4(1706 1777 5398 5327) +4(1776 5397 5398 1777) +4(1707 1778 5399 5328) +4(1777 5398 5399 1778) +4(1708 1779 5400 5329) +4(1778 5399 5400 1779) +4(1709 1780 5401 5330) +4(1779 5400 5401 1780) +4(1710 1781 5402 5331) +4(1780 5401 5402 1781) +4(1711 1782 5403 5332) +4(1781 5402 5403 1782) +4(1712 1783 5404 5333) +4(1782 5403 5404 1783) +4(1713 1784 5405 5334) +4(1783 5404 5405 1784) +4(1714 1785 5406 5335) +4(1784 5405 5406 1785) +4(1715 1786 5407 5336) +4(1785 5406 5407 1786) +4(1716 1787 5408 5337) +4(1786 5407 5408 1787) +4(1717 1788 5409 5338) +4(1787 5408 5409 1788) +4(1718 1789 5410 5339) +4(1788 5409 5410 1789) +4(1719 1790 5411 5340) +4(1789 5410 5411 1790) +4(1720 1791 5412 5341) +4(1790 5411 5412 1791) +4(1721 1792 5413 5342) +4(1791 5412 5413 1792) +4(1722 1793 5414 5343) +4(1792 5413 5414 1793) +4(1723 1794 5415 5344) +4(1793 5414 5415 1794) +4(1724 1795 5416 5345) +4(1794 5415 5416 1795) +4(1725 1796 5417 5346) +4(1795 5416 5417 1796) +4(1726 1797 5418 5347) +4(1796 5417 5418 1797) +4(1727 1798 5419 5348) +4(1797 5418 5419 1798) +4(1728 1799 5420 5349) +4(1798 5419 5420 1799) +4(1729 1800 5421 5350) +4(1799 5420 5421 1800) +4(1730 1801 5422 5351) +4(1800 5421 5422 1801) +4(1731 1802 5423 5352) +4(1801 5422 5423 1802) +4(1732 1803 5424 5353) +4(1802 5423 5424 1803) +4(1733 1804 5425 5354) +4(1803 5424 5425 1804) +4(1734 1805 5426 5355) +4(1804 5425 5426 1805) +4(1735 1806 5427 5356) +4(1805 5426 5427 1806) +4(1736 1807 5428 5357) +4(1806 5427 5428 1807) +4(1737 1808 5429 5358) +4(1807 5428 5429 1808) +4(1738 1809 5430 5359) +4(1808 5429 5430 1809) +4(1739 1810 5431 5360) +4(1809 5430 5431 1810) +4(1740 1811 5432 5361) +4(1810 5431 5432 1811) +4(1741 1812 5433 5362) +4(1811 5432 5433 1812) +4(1742 1813 5434 5363) +4(1812 5433 5434 1813) +4(1743 1814 5435 5364) +4(1813 5434 5435 1814) +4(1744 1815 5436 5365) +4(1814 5435 5436 1815) +4(1745 1816 5437 5366) +4(1815 5436 5437 1816) +4(1746 1817 5438 5367) +4(1816 5437 5438 1817) +4(1747 1818 5439 5368) +4(1817 5438 5439 1818) +4(1748 1819 5440 5369) +4(1818 5439 5440 1819) +4(1749 1820 5441 5370) +4(1819 5440 5441 1820) +4(1750 1821 5442 5371) +4(1820 5441 5442 1821) +4(1751 1822 5443 5372) +4(1821 5442 5443 1822) +4(1752 1823 5444 5373) +4(1822 5443 5444 1823) +4(1753 1824 5445 5374) +4(1823 5444 5445 1824) +4(1754 1825 5446 5375) +4(1824 5445 5446 1825) +4(1755 1826 5447 5376) +4(1825 5446 5447 1826) +4(1756 1827 5448 5377) +4(1826 5447 5448 1827) +4(1757 1828 5449 5378) +4(1827 5448 5449 1828) +4(1758 1829 5450 5379) +4(1828 5449 5450 1829) +4(1759 1830 5451 5380) +4(1829 5450 5451 1830) +4(1760 1831 5452 5381) +4(1830 5451 5452 1831) +4(1761 1832 5453 5382) +4(1831 5452 5453 1832) +4(1762 1833 5454 5383) +4(1832 5453 5454 1833) +4(1763 1834 5455 5384) +4(1833 5454 5455 1834) +4(1764 1835 5456 5385) +4(1834 5455 5456 1835) +4(1765 1836 5457 5386) +4(1835 5456 5457 1836) +4(1766 1837 5458 5387) +4(1836 5457 5458 1837) +4(1767 1838 5459 5388) +4(1837 5458 5459 1838) +4(1768 1839 5460 5389) +4(1838 5459 5460 1839) +4(1769 1840 5461 5390) +4(1839 5460 5461 1840) +4(1770 1841 5462 5391) +4(1840 5461 5462 1841) +4(1771 1842 5463 5392) +4(1841 5462 5463 1842) +4(1772 1843 5464 5393) +4(1842 5463 5464 1843) +4(1773 1844 5465 5394) +4(1843 5464 5465 1844) +4(1844 5465 5466 1845) +4(1776 1847 5468 5397) +4(1846 5467 5468 1847) +4(1777 1848 5469 5398) +4(1847 5468 5469 1848) +4(1778 1849 5470 5399) +4(1848 5469 5470 1849) +4(1779 1850 5471 5400) +4(1849 5470 5471 1850) +4(1780 1851 5472 5401) +4(1850 5471 5472 1851) +4(1781 1852 5473 5402) +4(1851 5472 5473 1852) +4(1782 1853 5474 5403) +4(1852 5473 5474 1853) +4(1783 1854 5475 5404) +4(1853 5474 5475 1854) +4(1784 1855 5476 5405) +4(1854 5475 5476 1855) +4(1785 1856 5477 5406) +4(1855 5476 5477 1856) +4(1786 1857 5478 5407) +4(1856 5477 5478 1857) +4(1787 1858 5479 5408) +4(1857 5478 5479 1858) +4(1788 1859 5480 5409) +4(1858 5479 5480 1859) +4(1789 1860 5481 5410) +4(1859 5480 5481 1860) +4(1790 1861 5482 5411) +4(1860 5481 5482 1861) +4(1791 1862 5483 5412) +4(1861 5482 5483 1862) +4(1792 1863 5484 5413) +4(1862 5483 5484 1863) +4(1793 1864 5485 5414) +4(1863 5484 5485 1864) +4(1794 1865 5486 5415) +4(1864 5485 5486 1865) +4(1795 1866 5487 5416) +4(1865 5486 5487 1866) +4(1796 1867 5488 5417) +4(1866 5487 5488 1867) +4(1797 1868 5489 5418) +4(1867 5488 5489 1868) +4(1798 1869 5490 5419) +4(1868 5489 5490 1869) +4(1799 1870 5491 5420) +4(1869 5490 5491 1870) +4(1800 1871 5492 5421) +4(1870 5491 5492 1871) +4(1801 1872 5493 5422) +4(1871 5492 5493 1872) +4(1802 1873 5494 5423) +4(1872 5493 5494 1873) +4(1803 1874 5495 5424) +4(1873 5494 5495 1874) +4(1804 1875 5496 5425) +4(1874 5495 5496 1875) +4(1805 1876 5497 5426) +4(1875 5496 5497 1876) +4(1806 1877 5498 5427) +4(1876 5497 5498 1877) +4(1807 1878 5499 5428) +4(1877 5498 5499 1878) +4(1808 1879 5500 5429) +4(1878 5499 5500 1879) +4(1809 1880 5501 5430) +4(1879 5500 5501 1880) +4(1810 1881 5502 5431) +4(1880 5501 5502 1881) +4(1811 1882 5503 5432) +4(1881 5502 5503 1882) +4(1812 1883 5504 5433) +4(1882 5503 5504 1883) +4(1813 1884 5505 5434) +4(1883 5504 5505 1884) +4(1814 1885 5506 5435) +4(1884 5505 5506 1885) +4(1815 1886 5507 5436) +4(1885 5506 5507 1886) +4(1816 1887 5508 5437) +4(1886 5507 5508 1887) +4(1817 1888 5509 5438) +4(1887 5508 5509 1888) +4(1818 1889 5510 5439) +4(1888 5509 5510 1889) +4(1819 1890 5511 5440) +4(1889 5510 5511 1890) +4(1820 1891 5512 5441) +4(1890 5511 5512 1891) +4(1821 1892 5513 5442) +4(1891 5512 5513 1892) +4(1822 1893 5514 5443) +4(1892 5513 5514 1893) +4(1823 1894 5515 5444) +4(1893 5514 5515 1894) +4(1824 1895 5516 5445) +4(1894 5515 5516 1895) +4(1825 1896 5517 5446) +4(1895 5516 5517 1896) +4(1826 1897 5518 5447) +4(1896 5517 5518 1897) +4(1827 1898 5519 5448) +4(1897 5518 5519 1898) +4(1828 1899 5520 5449) +4(1898 5519 5520 1899) +4(1829 1900 5521 5450) +4(1899 5520 5521 1900) +4(1830 1901 5522 5451) +4(1900 5521 5522 1901) +4(1831 1902 5523 5452) +4(1901 5522 5523 1902) +4(1832 1903 5524 5453) +4(1902 5523 5524 1903) +4(1833 1904 5525 5454) +4(1903 5524 5525 1904) +4(1834 1905 5526 5455) +4(1904 5525 5526 1905) +4(1835 1906 5527 5456) +4(1905 5526 5527 1906) +4(1836 1907 5528 5457) +4(1906 5527 5528 1907) +4(1837 1908 5529 5458) +4(1907 5528 5529 1908) +4(1838 1909 5530 5459) +4(1908 5529 5530 1909) +4(1839 1910 5531 5460) +4(1909 5530 5531 1910) +4(1840 1911 5532 5461) +4(1910 5531 5532 1911) +4(1841 1912 5533 5462) +4(1911 5532 5533 1912) +4(1842 1913 5534 5463) +4(1912 5533 5534 1913) +4(1843 1914 5535 5464) +4(1913 5534 5535 1914) +4(1844 1915 5536 5465) +4(1914 5535 5536 1915) +4(1915 5536 5537 1916) +4(1847 1918 5539 5468) +4(1917 5538 5539 1918) +4(1848 1919 5540 5469) +4(1918 5539 5540 1919) +4(1849 1920 5541 5470) +4(1919 5540 5541 1920) +4(1850 1921 5542 5471) +4(1920 5541 5542 1921) +4(1851 1922 5543 5472) +4(1921 5542 5543 1922) +4(1852 1923 5544 5473) +4(1922 5543 5544 1923) +4(1853 1924 5545 5474) +4(1923 5544 5545 1924) +4(1854 1925 5546 5475) +4(1924 5545 5546 1925) +4(1855 1926 5547 5476) +4(1925 5546 5547 1926) +4(1856 1927 5548 5477) +4(1926 5547 5548 1927) +4(1857 1928 5549 5478) +4(1927 5548 5549 1928) +4(1858 1929 5550 5479) +4(1928 5549 5550 1929) +4(1859 1930 5551 5480) +4(1929 5550 5551 1930) +4(1860 1931 5552 5481) +4(1930 5551 5552 1931) +4(1861 1932 5553 5482) +4(1931 5552 5553 1932) +4(1862 1933 5554 5483) +4(1932 5553 5554 1933) +4(1863 1934 5555 5484) +4(1933 5554 5555 1934) +4(1864 1935 5556 5485) +4(1934 5555 5556 1935) +4(1865 1936 5557 5486) +4(1935 5556 5557 1936) +4(1866 1937 5558 5487) +4(1936 5557 5558 1937) +4(1867 1938 5559 5488) +4(1937 5558 5559 1938) +4(1868 1939 5560 5489) +4(1938 5559 5560 1939) +4(1869 1940 5561 5490) +4(1939 5560 5561 1940) +4(1870 1941 5562 5491) +4(1940 5561 5562 1941) +4(1871 1942 5563 5492) +4(1941 5562 5563 1942) +4(1872 1943 5564 5493) +4(1942 5563 5564 1943) +4(1873 1944 5565 5494) +4(1943 5564 5565 1944) +4(1874 1945 5566 5495) +4(1944 5565 5566 1945) +4(1875 1946 5567 5496) +4(1945 5566 5567 1946) +4(1876 1947 5568 5497) +4(1946 5567 5568 1947) +4(1877 1948 5569 5498) +4(1947 5568 5569 1948) +4(1878 1949 5570 5499) +4(1948 5569 5570 1949) +4(1879 1950 5571 5500) +4(1949 5570 5571 1950) +4(1880 1951 5572 5501) +4(1950 5571 5572 1951) +4(1881 1952 5573 5502) +4(1951 5572 5573 1952) +4(1882 1953 5574 5503) +4(1952 5573 5574 1953) +4(1883 1954 5575 5504) +4(1953 5574 5575 1954) +4(1884 1955 5576 5505) +4(1954 5575 5576 1955) +4(1885 1956 5577 5506) +4(1955 5576 5577 1956) +4(1886 1957 5578 5507) +4(1956 5577 5578 1957) +4(1887 1958 5579 5508) +4(1957 5578 5579 1958) +4(1888 1959 5580 5509) +4(1958 5579 5580 1959) +4(1889 1960 5581 5510) +4(1959 5580 5581 1960) +4(1890 1961 5582 5511) +4(1960 5581 5582 1961) +4(1891 1962 5583 5512) +4(1961 5582 5583 1962) +4(1892 1963 5584 5513) +4(1962 5583 5584 1963) +4(1893 1964 5585 5514) +4(1963 5584 5585 1964) +4(1894 1965 5586 5515) +4(1964 5585 5586 1965) +4(1895 1966 5587 5516) +4(1965 5586 5587 1966) +4(1896 1967 5588 5517) +4(1966 5587 5588 1967) +4(1897 1968 5589 5518) +4(1967 5588 5589 1968) +4(1898 1969 5590 5519) +4(1968 5589 5590 1969) +4(1899 1970 5591 5520) +4(1969 5590 5591 1970) +4(1900 1971 5592 5521) +4(1970 5591 5592 1971) +4(1901 1972 5593 5522) +4(1971 5592 5593 1972) +4(1902 1973 5594 5523) +4(1972 5593 5594 1973) +4(1903 1974 5595 5524) +4(1973 5594 5595 1974) +4(1904 1975 5596 5525) +4(1974 5595 5596 1975) +4(1905 1976 5597 5526) +4(1975 5596 5597 1976) +4(1906 1977 5598 5527) +4(1976 5597 5598 1977) +4(1907 1978 5599 5528) +4(1977 5598 5599 1978) +4(1908 1979 5600 5529) +4(1978 5599 5600 1979) +4(1909 1980 5601 5530) +4(1979 5600 5601 1980) +4(1910 1981 5602 5531) +4(1980 5601 5602 1981) +4(1911 1982 5603 5532) +4(1981 5602 5603 1982) +4(1912 1983 5604 5533) +4(1982 5603 5604 1983) +4(1913 1984 5605 5534) +4(1983 5604 5605 1984) +4(1914 1985 5606 5535) +4(1984 5605 5606 1985) +4(1915 1986 5607 5536) +4(1985 5606 5607 1986) +4(1986 5607 5608 1987) +4(1918 1989 5610 5539) +4(1988 5609 5610 1989) +4(1919 1990 5611 5540) +4(1989 5610 5611 1990) +4(1920 1991 5612 5541) +4(1990 5611 5612 1991) +4(1921 1992 5613 5542) +4(1991 5612 5613 1992) +4(1922 1993 5614 5543) +4(1992 5613 5614 1993) +4(1923 1994 5615 5544) +4(1993 5614 5615 1994) +4(1924 1995 5616 5545) +4(1994 5615 5616 1995) +4(1925 1996 5617 5546) +4(1995 5616 5617 1996) +4(1926 1997 5618 5547) +4(1996 5617 5618 1997) +4(1927 1998 5619 5548) +4(1997 5618 5619 1998) +4(1928 1999 5620 5549) +4(1998 5619 5620 1999) +4(1929 2000 5621 5550) +4(1999 5620 5621 2000) +4(1930 2001 5622 5551) +4(2000 5621 5622 2001) +4(1931 2002 5623 5552) +4(2001 5622 5623 2002) +4(1932 2003 5624 5553) +4(2002 5623 5624 2003) +4(1933 2004 5625 5554) +4(2003 5624 5625 2004) +4(1934 2005 5626 5555) +4(2004 5625 5626 2005) +4(1935 2006 5627 5556) +4(2005 5626 5627 2006) +4(1936 2007 5628 5557) +4(2006 5627 5628 2007) +4(1937 2008 5629 5558) +4(2007 5628 5629 2008) +4(1938 2009 5630 5559) +4(2008 5629 5630 2009) +4(1939 2010 5631 5560) +4(2009 5630 5631 2010) +4(1940 2011 5632 5561) +4(2010 5631 5632 2011) +4(1941 2012 5633 5562) +4(2011 5632 5633 2012) +4(1942 2013 5634 5563) +4(2012 5633 5634 2013) +4(1943 2014 5635 5564) +4(2013 5634 5635 2014) +4(1944 2015 5636 5565) +4(2014 5635 5636 2015) +4(1945 2016 5637 5566) +4(2015 5636 5637 2016) +4(1946 2017 5638 5567) +4(2016 5637 5638 2017) +4(1947 2018 5639 5568) +4(2017 5638 5639 2018) +4(1948 2019 5640 5569) +4(2018 5639 5640 2019) +4(1949 2020 5641 5570) +4(2019 5640 5641 2020) +4(1950 2021 5642 5571) +4(2020 5641 5642 2021) +4(1951 2022 5643 5572) +4(2021 5642 5643 2022) +4(1952 2023 5644 5573) +4(2022 5643 5644 2023) +4(1953 2024 5645 5574) +4(2023 5644 5645 2024) +4(1954 2025 5646 5575) +4(2024 5645 5646 2025) +4(1955 2026 5647 5576) +4(2025 5646 5647 2026) +4(1956 2027 5648 5577) +4(2026 5647 5648 2027) +4(1957 2028 5649 5578) +4(2027 5648 5649 2028) +4(1958 2029 5650 5579) +4(2028 5649 5650 2029) +4(1959 2030 5651 5580) +4(2029 5650 5651 2030) +4(1960 2031 5652 5581) +4(2030 5651 5652 2031) +4(1961 2032 5653 5582) +4(2031 5652 5653 2032) +4(1962 2033 5654 5583) +4(2032 5653 5654 2033) +4(1963 2034 5655 5584) +4(2033 5654 5655 2034) +4(1964 2035 5656 5585) +4(2034 5655 5656 2035) +4(1965 2036 5657 5586) +4(2035 5656 5657 2036) +4(1966 2037 5658 5587) +4(2036 5657 5658 2037) +4(1967 2038 5659 5588) +4(2037 5658 5659 2038) +4(1968 2039 5660 5589) +4(2038 5659 5660 2039) +4(1969 2040 5661 5590) +4(2039 5660 5661 2040) +4(1970 2041 5662 5591) +4(2040 5661 5662 2041) +4(1971 2042 5663 5592) +4(2041 5662 5663 2042) +4(1972 2043 5664 5593) +4(2042 5663 5664 2043) +4(1973 2044 5665 5594) +4(2043 5664 5665 2044) +4(1974 2045 5666 5595) +4(2044 5665 5666 2045) +4(1975 2046 5667 5596) +4(2045 5666 5667 2046) +4(1976 2047 5668 5597) +4(2046 5667 5668 2047) +4(1977 2048 5669 5598) +4(2047 5668 5669 2048) +4(1978 2049 5670 5599) +4(2048 5669 5670 2049) +4(1979 2050 5671 5600) +4(2049 5670 5671 2050) +4(1980 2051 5672 5601) +4(2050 5671 5672 2051) +4(1981 2052 5673 5602) +4(2051 5672 5673 2052) +4(1982 2053 5674 5603) +4(2052 5673 5674 2053) +4(1983 2054 5675 5604) +4(2053 5674 5675 2054) +4(1984 2055 5676 5605) +4(2054 5675 5676 2055) +4(1985 2056 5677 5606) +4(2055 5676 5677 2056) +4(1986 2057 5678 5607) +4(2056 5677 5678 2057) +4(2057 5678 5679 2058) +4(1989 2060 5681 5610) +4(2059 5680 5681 2060) +4(1990 2061 5682 5611) +4(2060 5681 5682 2061) +4(1991 2062 5683 5612) +4(2061 5682 5683 2062) +4(1992 2063 5684 5613) +4(2062 5683 5684 2063) +4(1993 2064 5685 5614) +4(2063 5684 5685 2064) +4(1994 2065 5686 5615) +4(2064 5685 5686 2065) +4(1995 2066 5687 5616) +4(2065 5686 5687 2066) +4(1996 2067 5688 5617) +4(2066 5687 5688 2067) +4(1997 2068 5689 5618) +4(2067 5688 5689 2068) +4(1998 2069 5690 5619) +4(2068 5689 5690 2069) +4(1999 2070 5691 5620) +4(2069 5690 5691 2070) +4(2000 2071 5692 5621) +4(2070 5691 5692 2071) +4(2001 2072 5693 5622) +4(2071 5692 5693 2072) +4(2002 2073 5694 5623) +4(2072 5693 5694 2073) +4(2003 2074 5695 5624) +4(2073 5694 5695 2074) +4(2004 2075 5696 5625) +4(2074 5695 5696 2075) +4(2005 2076 5697 5626) +4(2075 5696 5697 2076) +4(2006 2077 5698 5627) +4(2076 5697 5698 2077) +4(2007 2078 5699 5628) +4(2077 5698 5699 2078) +4(2008 2079 5700 5629) +4(2078 5699 5700 2079) +4(2009 2080 5701 5630) +4(2079 5700 5701 2080) +4(2010 2081 5702 5631) +4(2080 5701 5702 2081) +4(2011 2082 5703 5632) +4(2081 5702 5703 2082) +4(2012 2083 5704 5633) +4(2082 5703 5704 2083) +4(2013 2084 5705 5634) +4(2083 5704 5705 2084) +4(2014 2085 5706 5635) +4(2084 5705 5706 2085) +4(2015 2086 5707 5636) +4(2085 5706 5707 2086) +4(2016 2087 5708 5637) +4(2086 5707 5708 2087) +4(2017 2088 5709 5638) +4(2087 5708 5709 2088) +4(2018 2089 5710 5639) +4(2088 5709 5710 2089) +4(2019 2090 5711 5640) +4(2089 5710 5711 2090) +4(2020 2091 5712 5641) +4(2090 5711 5712 2091) +4(2021 2092 5713 5642) +4(2091 5712 5713 2092) +4(2022 2093 5714 5643) +4(2092 5713 5714 2093) +4(2023 2094 5715 5644) +4(2093 5714 5715 2094) +4(2024 2095 5716 5645) +4(2094 5715 5716 2095) +4(2025 2096 5717 5646) +4(2095 5716 5717 2096) +4(2026 2097 5718 5647) +4(2096 5717 5718 2097) +4(2027 2098 5719 5648) +4(2097 5718 5719 2098) +4(2028 2099 5720 5649) +4(2098 5719 5720 2099) +4(2029 2100 5721 5650) +4(2099 5720 5721 2100) +4(2030 2101 5722 5651) +4(2100 5721 5722 2101) +4(2031 2102 5723 5652) +4(2101 5722 5723 2102) +4(2032 2103 5724 5653) +4(2102 5723 5724 2103) +4(2033 2104 5725 5654) +4(2103 5724 5725 2104) +4(2034 2105 5726 5655) +4(2104 5725 5726 2105) +4(2035 2106 5727 5656) +4(2105 5726 5727 2106) +4(2036 2107 5728 5657) +4(2106 5727 5728 2107) +4(2037 2108 5729 5658) +4(2107 5728 5729 2108) +4(2038 2109 5730 5659) +4(2108 5729 5730 2109) +4(2039 2110 5731 5660) +4(2109 5730 5731 2110) +4(2040 2111 5732 5661) +4(2110 5731 5732 2111) +4(2041 2112 5733 5662) +4(2111 5732 5733 2112) +4(2042 2113 5734 5663) +4(2112 5733 5734 2113) +4(2043 2114 5735 5664) +4(2113 5734 5735 2114) +4(2044 2115 5736 5665) +4(2114 5735 5736 2115) +4(2045 2116 5737 5666) +4(2115 5736 5737 2116) +4(2046 2117 5738 5667) +4(2116 5737 5738 2117) +4(2047 2118 5739 5668) +4(2117 5738 5739 2118) +4(2048 2119 5740 5669) +4(2118 5739 5740 2119) +4(2049 2120 5741 5670) +4(2119 5740 5741 2120) +4(2050 2121 5742 5671) +4(2120 5741 5742 2121) +4(2051 2122 5743 5672) +4(2121 5742 5743 2122) +4(2052 2123 5744 5673) +4(2122 5743 5744 2123) +4(2053 2124 5745 5674) +4(2123 5744 5745 2124) +4(2054 2125 5746 5675) +4(2124 5745 5746 2125) +4(2055 2126 5747 5676) +4(2125 5746 5747 2126) +4(2056 2127 5748 5677) +4(2126 5747 5748 2127) +4(2057 2128 5749 5678) +4(2127 5748 5749 2128) +4(2128 5749 5750 2129) +4(2060 2131 5752 5681) +4(2130 5751 5752 2131) +4(2061 2132 5753 5682) +4(2131 5752 5753 2132) +4(2062 2133 5754 5683) +4(2132 5753 5754 2133) +4(2063 2134 5755 5684) +4(2133 5754 5755 2134) +4(2064 2135 5756 5685) +4(2134 5755 5756 2135) +4(2065 2136 5757 5686) +4(2135 5756 5757 2136) +4(2066 2137 5758 5687) +4(2136 5757 5758 2137) +4(2067 2138 5759 5688) +4(2137 5758 5759 2138) +4(2068 2139 5760 5689) +4(2138 5759 5760 2139) +4(2069 2140 5761 5690) +4(2139 5760 5761 2140) +4(2070 2141 5762 5691) +4(2140 5761 5762 2141) +4(2071 2142 5763 5692) +4(2141 5762 5763 2142) +4(2072 2143 5764 5693) +4(2142 5763 5764 2143) +4(2073 2144 5765 5694) +4(2143 5764 5765 2144) +4(2074 2145 5766 5695) +4(2144 5765 5766 2145) +4(2075 2146 5767 5696) +4(2145 5766 5767 2146) +4(2076 2147 5768 5697) +4(2146 5767 5768 2147) +4(2077 2148 5769 5698) +4(2147 5768 5769 2148) +4(2078 2149 5770 5699) +4(2148 5769 5770 2149) +4(2079 2150 5771 5700) +4(2149 5770 5771 2150) +4(2080 2151 5772 5701) +4(2150 5771 5772 2151) +4(2081 2152 5773 5702) +4(2151 5772 5773 2152) +4(2082 2153 5774 5703) +4(2152 5773 5774 2153) +4(2083 2154 5775 5704) +4(2153 5774 5775 2154) +4(2084 2155 5776 5705) +4(2154 5775 5776 2155) +4(2085 2156 5777 5706) +4(2155 5776 5777 2156) +4(2086 2157 5778 5707) +4(2156 5777 5778 2157) +4(2087 2158 5779 5708) +4(2157 5778 5779 2158) +4(2088 2159 5780 5709) +4(2158 5779 5780 2159) +4(2089 2160 5781 5710) +4(2159 5780 5781 2160) +4(2090 2161 5782 5711) +4(2160 5781 5782 2161) +4(2091 2162 5783 5712) +4(2161 5782 5783 2162) +4(2092 2163 5784 5713) +4(2162 5783 5784 2163) +4(2093 2164 5785 5714) +4(2163 5784 5785 2164) +4(2094 2165 5786 5715) +4(2164 5785 5786 2165) +4(2095 2166 5787 5716) +4(2165 5786 5787 2166) +4(2096 2167 5788 5717) +4(2166 5787 5788 2167) +4(2097 2168 5789 5718) +4(2167 5788 5789 2168) +4(2098 2169 5790 5719) +4(2168 5789 5790 2169) +4(2099 2170 5791 5720) +4(2169 5790 5791 2170) +4(2100 2171 5792 5721) +4(2170 5791 5792 2171) +4(2101 2172 5793 5722) +4(2171 5792 5793 2172) +4(2102 2173 5794 5723) +4(2172 5793 5794 2173) +4(2103 2174 5795 5724) +4(2173 5794 5795 2174) +4(2104 2175 5796 5725) +4(2174 5795 5796 2175) +4(2105 2176 5797 5726) +4(2175 5796 5797 2176) +4(2106 2177 5798 5727) +4(2176 5797 5798 2177) +4(2107 2178 5799 5728) +4(2177 5798 5799 2178) +4(2108 2179 5800 5729) +4(2178 5799 5800 2179) +4(2109 2180 5801 5730) +4(2179 5800 5801 2180) +4(2110 2181 5802 5731) +4(2180 5801 5802 2181) +4(2111 2182 5803 5732) +4(2181 5802 5803 2182) +4(2112 2183 5804 5733) +4(2182 5803 5804 2183) +4(2113 2184 5805 5734) +4(2183 5804 5805 2184) +4(2114 2185 5806 5735) +4(2184 5805 5806 2185) +4(2115 2186 5807 5736) +4(2185 5806 5807 2186) +4(2116 2187 5808 5737) +4(2186 5807 5808 2187) +4(2117 2188 5809 5738) +4(2187 5808 5809 2188) +4(2118 2189 5810 5739) +4(2188 5809 5810 2189) +4(2119 2190 5811 5740) +4(2189 5810 5811 2190) +4(2120 2191 5812 5741) +4(2190 5811 5812 2191) +4(2121 2192 5813 5742) +4(2191 5812 5813 2192) +4(2122 2193 5814 5743) +4(2192 5813 5814 2193) +4(2123 2194 5815 5744) +4(2193 5814 5815 2194) +4(2124 2195 5816 5745) +4(2194 5815 5816 2195) +4(2125 2196 5817 5746) +4(2195 5816 5817 2196) +4(2126 2197 5818 5747) +4(2196 5817 5818 2197) +4(2127 2198 5819 5748) +4(2197 5818 5819 2198) +4(2128 2199 5820 5749) +4(2198 5819 5820 2199) +4(2199 5820 5821 2200) +4(2131 2202 5823 5752) +4(2201 5822 5823 2202) +4(2132 2203 5824 5753) +4(2202 5823 5824 2203) +4(2133 2204 5825 5754) +4(2203 5824 5825 2204) +4(2134 2205 5826 5755) +4(2204 5825 5826 2205) +4(2135 2206 5827 5756) +4(2205 5826 5827 2206) +4(2136 2207 5828 5757) +4(2206 5827 5828 2207) +4(2137 2208 5829 5758) +4(2207 5828 5829 2208) +4(2138 2209 5830 5759) +4(2208 5829 5830 2209) +4(2139 2210 5831 5760) +4(2209 5830 5831 2210) +4(2140 2211 5832 5761) +4(2210 5831 5832 2211) +4(2141 2212 5833 5762) +4(2211 5832 5833 2212) +4(2142 2213 5834 5763) +4(2212 5833 5834 2213) +4(2143 2214 5835 5764) +4(2213 5834 5835 2214) +4(2144 2215 5836 5765) +4(2214 5835 5836 2215) +4(2145 2216 5837 5766) +4(2215 5836 5837 2216) +4(2146 2217 5838 5767) +4(2216 5837 5838 2217) +4(2147 2218 5839 5768) +4(2217 5838 5839 2218) +4(2148 2219 5840 5769) +4(2218 5839 5840 2219) +4(2149 2220 5841 5770) +4(2219 5840 5841 2220) +4(2150 2221 5842 5771) +4(2220 5841 5842 2221) +4(2151 2222 5843 5772) +4(2221 5842 5843 2222) +4(2152 2223 5844 5773) +4(2222 5843 5844 2223) +4(2153 2224 5845 5774) +4(2223 5844 5845 2224) +4(2154 2225 5846 5775) +4(2224 5845 5846 2225) +4(2155 2226 5847 5776) +4(2225 5846 5847 2226) +4(2156 2227 5848 5777) +4(2226 5847 5848 2227) +4(2157 2228 5849 5778) +4(2227 5848 5849 2228) +4(2158 2229 5850 5779) +4(2228 5849 5850 2229) +4(2159 2230 5851 5780) +4(2229 5850 5851 2230) +4(2160 2231 5852 5781) +4(2230 5851 5852 2231) +4(2161 2232 5853 5782) +4(2231 5852 5853 2232) +4(2162 2233 5854 5783) +4(2232 5853 5854 2233) +4(2163 2234 5855 5784) +4(2233 5854 5855 2234) +4(2164 2235 5856 5785) +4(2234 5855 5856 2235) +4(2165 2236 5857 5786) +4(2235 5856 5857 2236) +4(2166 2237 5858 5787) +4(2236 5857 5858 2237) +4(2167 2238 5859 5788) +4(2237 5858 5859 2238) +4(2168 2239 5860 5789) +4(2238 5859 5860 2239) +4(2169 2240 5861 5790) +4(2239 5860 5861 2240) +4(2170 2241 5862 5791) +4(2240 5861 5862 2241) +4(2171 2242 5863 5792) +4(2241 5862 5863 2242) +4(2172 2243 5864 5793) +4(2242 5863 5864 2243) +4(2173 2244 5865 5794) +4(2243 5864 5865 2244) +4(2174 2245 5866 5795) +4(2244 5865 5866 2245) +4(2175 2246 5867 5796) +4(2245 5866 5867 2246) +4(2176 2247 5868 5797) +4(2246 5867 5868 2247) +4(2177 2248 5869 5798) +4(2247 5868 5869 2248) +4(2178 2249 5870 5799) +4(2248 5869 5870 2249) +4(2179 2250 5871 5800) +4(2249 5870 5871 2250) +4(2180 2251 5872 5801) +4(2250 5871 5872 2251) +4(2181 2252 5873 5802) +4(2251 5872 5873 2252) +4(2182 2253 5874 5803) +4(2252 5873 5874 2253) +4(2183 2254 5875 5804) +4(2253 5874 5875 2254) +4(2184 2255 5876 5805) +4(2254 5875 5876 2255) +4(2185 2256 5877 5806) +4(2255 5876 5877 2256) +4(2186 2257 5878 5807) +4(2256 5877 5878 2257) +4(2187 2258 5879 5808) +4(2257 5878 5879 2258) +4(2188 2259 5880 5809) +4(2258 5879 5880 2259) +4(2189 2260 5881 5810) +4(2259 5880 5881 2260) +4(2190 2261 5882 5811) +4(2260 5881 5882 2261) +4(2191 2262 5883 5812) +4(2261 5882 5883 2262) +4(2192 2263 5884 5813) +4(2262 5883 5884 2263) +4(2193 2264 5885 5814) +4(2263 5884 5885 2264) +4(2194 2265 5886 5815) +4(2264 5885 5886 2265) +4(2195 2266 5887 5816) +4(2265 5886 5887 2266) +4(2196 2267 5888 5817) +4(2266 5887 5888 2267) +4(2197 2268 5889 5818) +4(2267 5888 5889 2268) +4(2198 2269 5890 5819) +4(2268 5889 5890 2269) +4(2199 2270 5891 5820) +4(2269 5890 5891 2270) +4(2270 5891 5892 2271) +4(2202 2273 5894 5823) +4(2272 5893 5894 2273) +4(2203 2274 5895 5824) +4(2273 5894 5895 2274) +4(2204 2275 5896 5825) +4(2274 5895 5896 2275) +4(2205 2276 5897 5826) +4(2275 5896 5897 2276) +4(2206 2277 5898 5827) +4(2276 5897 5898 2277) +4(2207 2278 5899 5828) +4(2277 5898 5899 2278) +4(2208 2279 5900 5829) +4(2278 5899 5900 2279) +4(2209 2280 5901 5830) +4(2279 5900 5901 2280) +4(2210 2281 5902 5831) +4(2280 5901 5902 2281) +4(2211 2282 5903 5832) +4(2281 5902 5903 2282) +4(2212 2283 5904 5833) +4(2282 5903 5904 2283) +4(2213 2284 5905 5834) +4(2283 5904 5905 2284) +4(2214 2285 5906 5835) +4(2284 5905 5906 2285) +4(2215 2286 5907 5836) +4(2285 5906 5907 2286) +4(2216 2287 5908 5837) +4(2286 5907 5908 2287) +4(2217 2288 5909 5838) +4(2287 5908 5909 2288) +4(2218 2289 5910 5839) +4(2288 5909 5910 2289) +4(2219 2290 5911 5840) +4(2289 5910 5911 2290) +4(2220 2291 5912 5841) +4(2290 5911 5912 2291) +4(2221 2292 5913 5842) +4(2291 5912 5913 2292) +4(2222 2293 5914 5843) +4(2292 5913 5914 2293) +4(2223 2294 5915 5844) +4(2293 5914 5915 2294) +4(2224 2295 5916 5845) +4(2294 5915 5916 2295) +4(2225 2296 5917 5846) +4(2295 5916 5917 2296) +4(2226 2297 5918 5847) +4(2296 5917 5918 2297) +4(2227 2298 5919 5848) +4(2297 5918 5919 2298) +4(2228 2299 5920 5849) +4(2298 5919 5920 2299) +4(2229 2300 5921 5850) +4(2299 5920 5921 2300) +4(2230 2301 5922 5851) +4(2300 5921 5922 2301) +4(2231 2302 5923 5852) +4(2301 5922 5923 2302) +4(2232 2303 5924 5853) +4(2302 5923 5924 2303) +4(2233 2304 5925 5854) +4(2303 5924 5925 2304) +4(2234 2305 5926 5855) +4(2304 5925 5926 2305) +4(2235 2306 5927 5856) +4(2305 5926 5927 2306) +4(2236 2307 5928 5857) +4(2306 5927 5928 2307) +4(2237 2308 5929 5858) +4(2307 5928 5929 2308) +4(2238 2309 5930 5859) +4(2308 5929 5930 2309) +4(2239 2310 5931 5860) +4(2309 5930 5931 2310) +4(2240 2311 5932 5861) +4(2310 5931 5932 2311) +4(2241 2312 5933 5862) +4(2311 5932 5933 2312) +4(2242 2313 5934 5863) +4(2312 5933 5934 2313) +4(2243 2314 5935 5864) +4(2313 5934 5935 2314) +4(2244 2315 5936 5865) +4(2314 5935 5936 2315) +4(2245 2316 5937 5866) +4(2315 5936 5937 2316) +4(2246 2317 5938 5867) +4(2316 5937 5938 2317) +4(2247 2318 5939 5868) +4(2317 5938 5939 2318) +4(2248 2319 5940 5869) +4(2318 5939 5940 2319) +4(2249 2320 5941 5870) +4(2319 5940 5941 2320) +4(2250 2321 5942 5871) +4(2320 5941 5942 2321) +4(2251 2322 5943 5872) +4(2321 5942 5943 2322) +4(2252 2323 5944 5873) +4(2322 5943 5944 2323) +4(2253 2324 5945 5874) +4(2323 5944 5945 2324) +4(2254 2325 5946 5875) +4(2324 5945 5946 2325) +4(2255 2326 5947 5876) +4(2325 5946 5947 2326) +4(2256 2327 5948 5877) +4(2326 5947 5948 2327) +4(2257 2328 5949 5878) +4(2327 5948 5949 2328) +4(2258 2329 5950 5879) +4(2328 5949 5950 2329) +4(2259 2330 5951 5880) +4(2329 5950 5951 2330) +4(2260 2331 5952 5881) +4(2330 5951 5952 2331) +4(2261 2332 5953 5882) +4(2331 5952 5953 2332) +4(2262 2333 5954 5883) +4(2332 5953 5954 2333) +4(2263 2334 5955 5884) +4(2333 5954 5955 2334) +4(2264 2335 5956 5885) +4(2334 5955 5956 2335) +4(2265 2336 5957 5886) +4(2335 5956 5957 2336) +4(2266 2337 5958 5887) +4(2336 5957 5958 2337) +4(2267 2338 5959 5888) +4(2337 5958 5959 2338) +4(2268 2339 5960 5889) +4(2338 5959 5960 2339) +4(2269 2340 5961 5890) +4(2339 5960 5961 2340) +4(2270 2341 5962 5891) +4(2340 5961 5962 2341) +4(2341 5962 5963 2342) +4(2273 2344 5965 5894) +4(2343 5964 5965 2344) +4(2274 2345 5966 5895) +4(2344 5965 5966 2345) +4(2275 2346 5967 5896) +4(2345 5966 5967 2346) +4(2276 2347 5968 5897) +4(2346 5967 5968 2347) +4(2277 2348 5969 5898) +4(2347 5968 5969 2348) +4(2278 2349 5970 5899) +4(2348 5969 5970 2349) +4(2279 2350 5971 5900) +4(2349 5970 5971 2350) +4(2280 2351 5972 5901) +4(2350 5971 5972 2351) +4(2281 2352 5973 5902) +4(2351 5972 5973 2352) +4(2282 2353 5974 5903) +4(2352 5973 5974 2353) +4(2283 2354 5975 5904) +4(2353 5974 5975 2354) +4(2284 2355 5976 5905) +4(2354 5975 5976 2355) +4(2285 2356 5977 5906) +4(2355 5976 5977 2356) +4(2286 2357 5978 5907) +4(2356 5977 5978 2357) +4(2287 2358 5979 5908) +4(2357 5978 5979 2358) +4(2288 2359 5980 5909) +4(2358 5979 5980 2359) +4(2289 2360 5981 5910) +4(2359 5980 5981 2360) +4(2290 2361 5982 5911) +4(2360 5981 5982 2361) +4(2291 2362 5983 5912) +4(2361 5982 5983 2362) +4(2292 2363 5984 5913) +4(2362 5983 5984 2363) +4(2293 2364 5985 5914) +4(2363 5984 5985 2364) +4(2294 2365 5986 5915) +4(2364 5985 5986 2365) +4(2295 2366 5987 5916) +4(2365 5986 5987 2366) +4(2296 2367 5988 5917) +4(2366 5987 5988 2367) +4(2297 2368 5989 5918) +4(2367 5988 5989 2368) +4(2298 2369 5990 5919) +4(2368 5989 5990 2369) +4(2299 2370 5991 5920) +4(2369 5990 5991 2370) +4(2300 2371 5992 5921) +4(2370 5991 5992 2371) +4(2301 2372 5993 5922) +4(2371 5992 5993 2372) +4(2302 2373 5994 5923) +4(2372 5993 5994 2373) +4(2303 2374 5995 5924) +4(2373 5994 5995 2374) +4(2304 2375 5996 5925) +4(2374 5995 5996 2375) +4(2305 2376 5997 5926) +4(2375 5996 5997 2376) +4(2306 2377 5998 5927) +4(2376 5997 5998 2377) +4(2307 2378 5999 5928) +4(2377 5998 5999 2378) +4(2308 2379 6000 5929) +4(2378 5999 6000 2379) +4(2309 2380 6001 5930) +4(2379 6000 6001 2380) +4(2310 2381 6002 5931) +4(2380 6001 6002 2381) +4(2311 2382 6003 5932) +4(2381 6002 6003 2382) +4(2312 2383 6004 5933) +4(2382 6003 6004 2383) +4(2313 2384 6005 5934) +4(2383 6004 6005 2384) +4(2314 2385 6006 5935) +4(2384 6005 6006 2385) +4(2315 2386 6007 5936) +4(2385 6006 6007 2386) +4(2316 2387 6008 5937) +4(2386 6007 6008 2387) +4(2317 2388 6009 5938) +4(2387 6008 6009 2388) +4(2318 2389 6010 5939) +4(2388 6009 6010 2389) +4(2319 2390 6011 5940) +4(2389 6010 6011 2390) +4(2320 2391 6012 5941) +4(2390 6011 6012 2391) +4(2321 2392 6013 5942) +4(2391 6012 6013 2392) +4(2322 2393 6014 5943) +4(2392 6013 6014 2393) +4(2323 2394 6015 5944) +4(2393 6014 6015 2394) +4(2324 2395 6016 5945) +4(2394 6015 6016 2395) +4(2325 2396 6017 5946) +4(2395 6016 6017 2396) +4(2326 2397 6018 5947) +4(2396 6017 6018 2397) +4(2327 2398 6019 5948) +4(2397 6018 6019 2398) +4(2328 2399 6020 5949) +4(2398 6019 6020 2399) +4(2329 2400 6021 5950) +4(2399 6020 6021 2400) +4(2330 2401 6022 5951) +4(2400 6021 6022 2401) +4(2331 2402 6023 5952) +4(2401 6022 6023 2402) +4(2332 2403 6024 5953) +4(2402 6023 6024 2403) +4(2333 2404 6025 5954) +4(2403 6024 6025 2404) +4(2334 2405 6026 5955) +4(2404 6025 6026 2405) +4(2335 2406 6027 5956) +4(2405 6026 6027 2406) +4(2336 2407 6028 5957) +4(2406 6027 6028 2407) +4(2337 2408 6029 5958) +4(2407 6028 6029 2408) +4(2338 2409 6030 5959) +4(2408 6029 6030 2409) +4(2339 2410 6031 5960) +4(2409 6030 6031 2410) +4(2340 2411 6032 5961) +4(2410 6031 6032 2411) +4(2341 2412 6033 5962) +4(2411 6032 6033 2412) +4(2412 6033 6034 2413) +4(2344 2415 6036 5965) +4(2414 6035 6036 2415) +4(2345 2416 6037 5966) +4(2415 6036 6037 2416) +4(2346 2417 6038 5967) +4(2416 6037 6038 2417) +4(2347 2418 6039 5968) +4(2417 6038 6039 2418) +4(2348 2419 6040 5969) +4(2418 6039 6040 2419) +4(2349 2420 6041 5970) +4(2419 6040 6041 2420) +4(2350 2421 6042 5971) +4(2420 6041 6042 2421) +4(2351 2422 6043 5972) +4(2421 6042 6043 2422) +4(2352 2423 6044 5973) +4(2422 6043 6044 2423) +4(2353 2424 6045 5974) +4(2423 6044 6045 2424) +4(2354 2425 6046 5975) +4(2424 6045 6046 2425) +4(2355 2426 6047 5976) +4(2425 6046 6047 2426) +4(2356 2427 6048 5977) +4(2426 6047 6048 2427) +4(2357 2428 6049 5978) +4(2427 6048 6049 2428) +4(2358 2429 6050 5979) +4(2428 6049 6050 2429) +4(2359 2430 6051 5980) +4(2429 6050 6051 2430) +4(2360 2431 6052 5981) +4(2430 6051 6052 2431) +4(2361 2432 6053 5982) +4(2431 6052 6053 2432) +4(2362 2433 6054 5983) +4(2432 6053 6054 2433) +4(2363 2434 6055 5984) +4(2433 6054 6055 2434) +4(2364 2435 6056 5985) +4(2434 6055 6056 2435) +4(2365 2436 6057 5986) +4(2435 6056 6057 2436) +4(2366 2437 6058 5987) +4(2436 6057 6058 2437) +4(2367 2438 6059 5988) +4(2437 6058 6059 2438) +4(2368 2439 6060 5989) +4(2438 6059 6060 2439) +4(2369 2440 6061 5990) +4(2439 6060 6061 2440) +4(2370 2441 6062 5991) +4(2440 6061 6062 2441) +4(2371 2442 6063 5992) +4(2441 6062 6063 2442) +4(2372 2443 6064 5993) +4(2442 6063 6064 2443) +4(2373 2444 6065 5994) +4(2443 6064 6065 2444) +4(2374 2445 6066 5995) +4(2444 6065 6066 2445) +4(2375 2446 6067 5996) +4(2445 6066 6067 2446) +4(2376 2447 6068 5997) +4(2446 6067 6068 2447) +4(2377 2448 6069 5998) +4(2447 6068 6069 2448) +4(2378 2449 6070 5999) +4(2448 6069 6070 2449) +4(2379 2450 6071 6000) +4(2449 6070 6071 2450) +4(2380 2451 6072 6001) +4(2450 6071 6072 2451) +4(2381 2452 6073 6002) +4(2451 6072 6073 2452) +4(2382 2453 6074 6003) +4(2452 6073 6074 2453) +4(2383 2454 6075 6004) +4(2453 6074 6075 2454) +4(2384 2455 6076 6005) +4(2454 6075 6076 2455) +4(2385 2456 6077 6006) +4(2455 6076 6077 2456) +4(2386 2457 6078 6007) +4(2456 6077 6078 2457) +4(2387 2458 6079 6008) +4(2457 6078 6079 2458) +4(2388 2459 6080 6009) +4(2458 6079 6080 2459) +4(2389 2460 6081 6010) +4(2459 6080 6081 2460) +4(2390 2461 6082 6011) +4(2460 6081 6082 2461) +4(2391 2462 6083 6012) +4(2461 6082 6083 2462) +4(2392 2463 6084 6013) +4(2462 6083 6084 2463) +4(2393 2464 6085 6014) +4(2463 6084 6085 2464) +4(2394 2465 6086 6015) +4(2464 6085 6086 2465) +4(2395 2466 6087 6016) +4(2465 6086 6087 2466) +4(2396 2467 6088 6017) +4(2466 6087 6088 2467) +4(2397 2468 6089 6018) +4(2467 6088 6089 2468) +4(2398 2469 6090 6019) +4(2468 6089 6090 2469) +4(2399 2470 6091 6020) +4(2469 6090 6091 2470) +4(2400 2471 6092 6021) +4(2470 6091 6092 2471) +4(2401 2472 6093 6022) +4(2471 6092 6093 2472) +4(2402 2473 6094 6023) +4(2472 6093 6094 2473) +4(2403 2474 6095 6024) +4(2473 6094 6095 2474) +4(2404 2475 6096 6025) +4(2474 6095 6096 2475) +4(2405 2476 6097 6026) +4(2475 6096 6097 2476) +4(2406 2477 6098 6027) +4(2476 6097 6098 2477) +4(2407 2478 6099 6028) +4(2477 6098 6099 2478) +4(2408 2479 6100 6029) +4(2478 6099 6100 2479) +4(2409 2480 6101 6030) +4(2479 6100 6101 2480) +4(2410 2481 6102 6031) +4(2480 6101 6102 2481) +4(2411 2482 6103 6032) +4(2481 6102 6103 2482) +4(2412 2483 6104 6033) +4(2482 6103 6104 2483) +4(2483 6104 6105 2484) +4(2415 2486 6107 6036) +4(2485 6106 6107 2486) +4(2416 2487 6108 6037) +4(2486 6107 6108 2487) +4(2417 2488 6109 6038) +4(2487 6108 6109 2488) +4(2418 2489 6110 6039) +4(2488 6109 6110 2489) +4(2419 2490 6111 6040) +4(2489 6110 6111 2490) +4(2420 2491 6112 6041) +4(2490 6111 6112 2491) +4(2421 2492 6113 6042) +4(2491 6112 6113 2492) +4(2422 2493 6114 6043) +4(2492 6113 6114 2493) +4(2423 2494 6115 6044) +4(2493 6114 6115 2494) +4(2424 2495 6116 6045) +4(2494 6115 6116 2495) +4(2425 2496 6117 6046) +4(2495 6116 6117 2496) +4(2426 2497 6118 6047) +4(2496 6117 6118 2497) +4(2427 2498 6119 6048) +4(2497 6118 6119 2498) +4(2428 2499 6120 6049) +4(2498 6119 6120 2499) +4(2429 2500 6121 6050) +4(2499 6120 6121 2500) +4(2430 2501 6122 6051) +4(2500 6121 6122 2501) +4(2431 2502 6123 6052) +4(2501 6122 6123 2502) +4(2432 2503 6124 6053) +4(2502 6123 6124 2503) +4(2433 2504 6125 6054) +4(2503 6124 6125 2504) +4(2434 2505 6126 6055) +4(2504 6125 6126 2505) +4(2435 2506 6127 6056) +4(2505 6126 6127 2506) +4(2436 2507 6128 6057) +4(2506 6127 6128 2507) +4(2437 2508 6129 6058) +4(2507 6128 6129 2508) +4(2438 2509 6130 6059) +4(2508 6129 6130 2509) +4(2439 2510 6131 6060) +4(2509 6130 6131 2510) +4(2440 2511 6132 6061) +4(2510 6131 6132 2511) +4(2441 2512 6133 6062) +4(2511 6132 6133 2512) +4(2442 2513 6134 6063) +4(2512 6133 6134 2513) +4(2443 2514 6135 6064) +4(2513 6134 6135 2514) +4(2444 2515 6136 6065) +4(2514 6135 6136 2515) +4(2445 2516 6137 6066) +4(2515 6136 6137 2516) +4(2446 2517 6138 6067) +4(2516 6137 6138 2517) +4(2447 2518 6139 6068) +4(2517 6138 6139 2518) +4(2448 2519 6140 6069) +4(2518 6139 6140 2519) +4(2449 2520 6141 6070) +4(2519 6140 6141 2520) +4(2450 2521 6142 6071) +4(2520 6141 6142 2521) +4(2451 2522 6143 6072) +4(2521 6142 6143 2522) +4(2452 2523 6144 6073) +4(2522 6143 6144 2523) +4(2453 2524 6145 6074) +4(2523 6144 6145 2524) +4(2454 2525 6146 6075) +4(2524 6145 6146 2525) +4(2455 2526 6147 6076) +4(2525 6146 6147 2526) +4(2456 2527 6148 6077) +4(2526 6147 6148 2527) +4(2457 2528 6149 6078) +4(2527 6148 6149 2528) +4(2458 2529 6150 6079) +4(2528 6149 6150 2529) +4(2459 2530 6151 6080) +4(2529 6150 6151 2530) +4(2460 2531 6152 6081) +4(2530 6151 6152 2531) +4(2461 2532 6153 6082) +4(2531 6152 6153 2532) +4(2462 2533 6154 6083) +4(2532 6153 6154 2533) +4(2463 2534 6155 6084) +4(2533 6154 6155 2534) +4(2464 2535 6156 6085) +4(2534 6155 6156 2535) +4(2465 2536 6157 6086) +4(2535 6156 6157 2536) +4(2466 2537 6158 6087) +4(2536 6157 6158 2537) +4(2467 2538 6159 6088) +4(2537 6158 6159 2538) +4(2468 2539 6160 6089) +4(2538 6159 6160 2539) +4(2469 2540 6161 6090) +4(2539 6160 6161 2540) +4(2470 2541 6162 6091) +4(2540 6161 6162 2541) +4(2471 2542 6163 6092) +4(2541 6162 6163 2542) +4(2472 2543 6164 6093) +4(2542 6163 6164 2543) +4(2473 2544 6165 6094) +4(2543 6164 6165 2544) +4(2474 2545 6166 6095) +4(2544 6165 6166 2545) +4(2475 2546 6167 6096) +4(2545 6166 6167 2546) +4(2476 2547 6168 6097) +4(2546 6167 6168 2547) +4(2477 2548 6169 6098) +4(2547 6168 6169 2548) +4(2478 2549 6170 6099) +4(2548 6169 6170 2549) +4(2479 2550 6171 6100) +4(2549 6170 6171 2550) +4(2480 2551 6172 6101) +4(2550 6171 6172 2551) +4(2481 2552 6173 6102) +4(2551 6172 6173 2552) +4(2482 2553 6174 6103) +4(2552 6173 6174 2553) +4(2483 2554 6175 6104) +4(2553 6174 6175 2554) +4(2554 6175 6176 2555) +4(2486 2557 6178 6107) +4(2556 6177 6178 2557) +4(2487 2558 6179 6108) +4(2557 6178 6179 2558) +4(2488 2559 6180 6109) +4(2558 6179 6180 2559) +4(2489 2560 6181 6110) +4(2559 6180 6181 2560) +4(2490 2561 6182 6111) +4(2560 6181 6182 2561) +4(2491 2562 6183 6112) +4(2561 6182 6183 2562) +4(2492 2563 6184 6113) +4(2562 6183 6184 2563) +4(2493 2564 6185 6114) +4(2563 6184 6185 2564) +4(2494 2565 6186 6115) +4(2564 6185 6186 2565) +4(2495 2566 6187 6116) +4(2565 6186 6187 2566) +4(2496 2567 6188 6117) +4(2566 6187 6188 2567) +4(2497 2568 6189 6118) +4(2567 6188 6189 2568) +4(2498 2569 6190 6119) +4(2568 6189 6190 2569) +4(2499 2570 6191 6120) +4(2569 6190 6191 2570) +4(2500 2571 6192 6121) +4(2570 6191 6192 2571) +4(2501 2572 6193 6122) +4(2571 6192 6193 2572) +4(2502 2573 6194 6123) +4(2572 6193 6194 2573) +4(2503 2574 6195 6124) +4(2573 6194 6195 2574) +4(2504 2575 6196 6125) +4(2574 6195 6196 2575) +4(2505 2576 6197 6126) +4(2575 6196 6197 2576) +4(2506 2577 6198 6127) +4(2576 6197 6198 2577) +4(2507 2578 6199 6128) +4(2577 6198 6199 2578) +4(2508 2579 6200 6129) +4(2578 6199 6200 2579) +4(2509 2580 6201 6130) +4(2579 6200 6201 2580) +4(2510 2581 6202 6131) +4(2580 6201 6202 2581) +4(2511 2582 6203 6132) +4(2581 6202 6203 2582) +4(2512 2583 6204 6133) +4(2582 6203 6204 2583) +4(2513 2584 6205 6134) +4(2583 6204 6205 2584) +4(2514 2585 6206 6135) +4(2584 6205 6206 2585) +4(2515 2586 6207 6136) +4(2585 6206 6207 2586) +4(2516 2587 6208 6137) +4(2586 6207 6208 2587) +4(2517 2588 6209 6138) +4(2587 6208 6209 2588) +4(2518 2589 6210 6139) +4(2588 6209 6210 2589) +4(2519 2590 6211 6140) +4(2589 6210 6211 2590) +4(2520 2591 6212 6141) +4(2590 6211 6212 2591) +4(2521 2592 6213 6142) +4(2591 6212 6213 2592) +4(2522 2593 6214 6143) +4(2592 6213 6214 2593) +4(2523 2594 6215 6144) +4(2593 6214 6215 2594) +4(2524 2595 6216 6145) +4(2594 6215 6216 2595) +4(2525 2596 6217 6146) +4(2595 6216 6217 2596) +4(2526 2597 6218 6147) +4(2596 6217 6218 2597) +4(2527 2598 6219 6148) +4(2597 6218 6219 2598) +4(2528 2599 6220 6149) +4(2598 6219 6220 2599) +4(2529 2600 6221 6150) +4(2599 6220 6221 2600) +4(2530 2601 6222 6151) +4(2600 6221 6222 2601) +4(2531 2602 6223 6152) +4(2601 6222 6223 2602) +4(2532 2603 6224 6153) +4(2602 6223 6224 2603) +4(2533 2604 6225 6154) +4(2603 6224 6225 2604) +4(2534 2605 6226 6155) +4(2604 6225 6226 2605) +4(2535 2606 6227 6156) +4(2605 6226 6227 2606) +4(2536 2607 6228 6157) +4(2606 6227 6228 2607) +4(2537 2608 6229 6158) +4(2607 6228 6229 2608) +4(2538 2609 6230 6159) +4(2608 6229 6230 2609) +4(2539 2610 6231 6160) +4(2609 6230 6231 2610) +4(2540 2611 6232 6161) +4(2610 6231 6232 2611) +4(2541 2612 6233 6162) +4(2611 6232 6233 2612) +4(2542 2613 6234 6163) +4(2612 6233 6234 2613) +4(2543 2614 6235 6164) +4(2613 6234 6235 2614) +4(2544 2615 6236 6165) +4(2614 6235 6236 2615) +4(2545 2616 6237 6166) +4(2615 6236 6237 2616) +4(2546 2617 6238 6167) +4(2616 6237 6238 2617) +4(2547 2618 6239 6168) +4(2617 6238 6239 2618) +4(2548 2619 6240 6169) +4(2618 6239 6240 2619) +4(2549 2620 6241 6170) +4(2619 6240 6241 2620) +4(2550 2621 6242 6171) +4(2620 6241 6242 2621) +4(2551 2622 6243 6172) +4(2621 6242 6243 2622) +4(2552 2623 6244 6173) +4(2622 6243 6244 2623) +4(2553 2624 6245 6174) +4(2623 6244 6245 2624) +4(2554 2625 6246 6175) +4(2624 6245 6246 2625) +4(2625 6246 6247 2626) +4(2557 2628 6249 6178) +4(2627 6248 6249 2628) +4(2558 2629 6250 6179) +4(2628 6249 6250 2629) +4(2559 2630 6251 6180) +4(2629 6250 6251 2630) +4(2560 2631 6252 6181) +4(2630 6251 6252 2631) +4(2561 2632 6253 6182) +4(2631 6252 6253 2632) +4(2562 2633 6254 6183) +4(2632 6253 6254 2633) +4(2563 2634 6255 6184) +4(2633 6254 6255 2634) +4(2564 2635 6256 6185) +4(2634 6255 6256 2635) +4(2565 2636 6257 6186) +4(2635 6256 6257 2636) +4(2566 2637 6258 6187) +4(2636 6257 6258 2637) +4(2567 2638 6259 6188) +4(2637 6258 6259 2638) +4(2568 2639 6260 6189) +4(2638 6259 6260 2639) +4(2569 2640 6261 6190) +4(2639 6260 6261 2640) +4(2570 2641 6262 6191) +4(2640 6261 6262 2641) +4(2571 2642 6263 6192) +4(2641 6262 6263 2642) +4(2572 2643 6264 6193) +4(2642 6263 6264 2643) +4(2573 2644 6265 6194) +4(2643 6264 6265 2644) +4(2574 2645 6266 6195) +4(2644 6265 6266 2645) +4(2575 2646 6267 6196) +4(2645 6266 6267 2646) +4(2576 2647 6268 6197) +4(2646 6267 6268 2647) +4(2577 2648 6269 6198) +4(2647 6268 6269 2648) +4(2578 2649 6270 6199) +4(2648 6269 6270 2649) +4(2579 2650 6271 6200) +4(2649 6270 6271 2650) +4(2580 2651 6272 6201) +4(2650 6271 6272 2651) +4(2581 2652 6273 6202) +4(2651 6272 6273 2652) +4(2582 2653 6274 6203) +4(2652 6273 6274 2653) +4(2583 2654 6275 6204) +4(2653 6274 6275 2654) +4(2584 2655 6276 6205) +4(2654 6275 6276 2655) +4(2585 2656 6277 6206) +4(2655 6276 6277 2656) +4(2586 2657 6278 6207) +4(2656 6277 6278 2657) +4(2587 2658 6279 6208) +4(2657 6278 6279 2658) +4(2588 2659 6280 6209) +4(2658 6279 6280 2659) +4(2589 2660 6281 6210) +4(2659 6280 6281 2660) +4(2590 2661 6282 6211) +4(2660 6281 6282 2661) +4(2591 2662 6283 6212) +4(2661 6282 6283 2662) +4(2592 2663 6284 6213) +4(2662 6283 6284 2663) +4(2593 2664 6285 6214) +4(2663 6284 6285 2664) +4(2594 2665 6286 6215) +4(2664 6285 6286 2665) +4(2595 2666 6287 6216) +4(2665 6286 6287 2666) +4(2596 2667 6288 6217) +4(2666 6287 6288 2667) +4(2597 2668 6289 6218) +4(2667 6288 6289 2668) +4(2598 2669 6290 6219) +4(2668 6289 6290 2669) +4(2599 2670 6291 6220) +4(2669 6290 6291 2670) +4(2600 2671 6292 6221) +4(2670 6291 6292 2671) +4(2601 2672 6293 6222) +4(2671 6292 6293 2672) +4(2602 2673 6294 6223) +4(2672 6293 6294 2673) +4(2603 2674 6295 6224) +4(2673 6294 6295 2674) +4(2604 2675 6296 6225) +4(2674 6295 6296 2675) +4(2605 2676 6297 6226) +4(2675 6296 6297 2676) +4(2606 2677 6298 6227) +4(2676 6297 6298 2677) +4(2607 2678 6299 6228) +4(2677 6298 6299 2678) +4(2608 2679 6300 6229) +4(2678 6299 6300 2679) +4(2609 2680 6301 6230) +4(2679 6300 6301 2680) +4(2610 2681 6302 6231) +4(2680 6301 6302 2681) +4(2611 2682 6303 6232) +4(2681 6302 6303 2682) +4(2612 2683 6304 6233) +4(2682 6303 6304 2683) +4(2613 2684 6305 6234) +4(2683 6304 6305 2684) +4(2614 2685 6306 6235) +4(2684 6305 6306 2685) +4(2615 2686 6307 6236) +4(2685 6306 6307 2686) +4(2616 2687 6308 6237) +4(2686 6307 6308 2687) +4(2617 2688 6309 6238) +4(2687 6308 6309 2688) +4(2618 2689 6310 6239) +4(2688 6309 6310 2689) +4(2619 2690 6311 6240) +4(2689 6310 6311 2690) +4(2620 2691 6312 6241) +4(2690 6311 6312 2691) +4(2621 2692 6313 6242) +4(2691 6312 6313 2692) +4(2622 2693 6314 6243) +4(2692 6313 6314 2693) +4(2623 2694 6315 6244) +4(2693 6314 6315 2694) +4(2624 2695 6316 6245) +4(2694 6315 6316 2695) +4(2625 2696 6317 6246) +4(2695 6316 6317 2696) +4(2696 6317 6318 2697) +4(2628 2699 6320 6249) +4(2698 6319 6320 2699) +4(2629 2700 6321 6250) +4(2699 6320 6321 2700) +4(2630 2701 6322 6251) +4(2700 6321 6322 2701) +4(2631 2702 6323 6252) +4(2701 6322 6323 2702) +4(2632 2703 6324 6253) +4(2702 6323 6324 2703) +4(2633 2704 6325 6254) +4(2703 6324 6325 2704) +4(2634 2705 6326 6255) +4(2704 6325 6326 2705) +4(2635 2706 6327 6256) +4(2705 6326 6327 2706) +4(2636 2707 6328 6257) +4(2706 6327 6328 2707) +4(2637 2708 6329 6258) +4(2707 6328 6329 2708) +4(2638 2709 6330 6259) +4(2708 6329 6330 2709) +4(2639 2710 6331 6260) +4(2709 6330 6331 2710) +4(2640 2711 6332 6261) +4(2710 6331 6332 2711) +4(2641 2712 6333 6262) +4(2711 6332 6333 2712) +4(2642 2713 6334 6263) +4(2712 6333 6334 2713) +4(2643 2714 6335 6264) +4(2713 6334 6335 2714) +4(2644 2715 6336 6265) +4(2714 6335 6336 2715) +4(2645 2716 6337 6266) +4(2715 6336 6337 2716) +4(2646 2717 6338 6267) +4(2716 6337 6338 2717) +4(2647 2718 6339 6268) +4(2717 6338 6339 2718) +4(2648 2719 6340 6269) +4(2718 6339 6340 2719) +4(2649 2720 6341 6270) +4(2719 6340 6341 2720) +4(2650 2721 6342 6271) +4(2720 6341 6342 2721) +4(2651 2722 6343 6272) +4(2721 6342 6343 2722) +4(2652 2723 6344 6273) +4(2722 6343 6344 2723) +4(2653 2724 6345 6274) +4(2723 6344 6345 2724) +4(2654 2725 6346 6275) +4(2724 6345 6346 2725) +4(2655 2726 6347 6276) +4(2725 6346 6347 2726) +4(2656 2727 6348 6277) +4(2726 6347 6348 2727) +4(2657 2728 6349 6278) +4(2727 6348 6349 2728) +4(2658 2729 6350 6279) +4(2728 6349 6350 2729) +4(2659 2730 6351 6280) +4(2729 6350 6351 2730) +4(2660 2731 6352 6281) +4(2730 6351 6352 2731) +4(2661 2732 6353 6282) +4(2731 6352 6353 2732) +4(2662 2733 6354 6283) +4(2732 6353 6354 2733) +4(2663 2734 6355 6284) +4(2733 6354 6355 2734) +4(2664 2735 6356 6285) +4(2734 6355 6356 2735) +4(2665 2736 6357 6286) +4(2735 6356 6357 2736) +4(2666 2737 6358 6287) +4(2736 6357 6358 2737) +4(2667 2738 6359 6288) +4(2737 6358 6359 2738) +4(2668 2739 6360 6289) +4(2738 6359 6360 2739) +4(2669 2740 6361 6290) +4(2739 6360 6361 2740) +4(2670 2741 6362 6291) +4(2740 6361 6362 2741) +4(2671 2742 6363 6292) +4(2741 6362 6363 2742) +4(2672 2743 6364 6293) +4(2742 6363 6364 2743) +4(2673 2744 6365 6294) +4(2743 6364 6365 2744) +4(2674 2745 6366 6295) +4(2744 6365 6366 2745) +4(2675 2746 6367 6296) +4(2745 6366 6367 2746) +4(2676 2747 6368 6297) +4(2746 6367 6368 2747) +4(2677 2748 6369 6298) +4(2747 6368 6369 2748) +4(2678 2749 6370 6299) +4(2748 6369 6370 2749) +4(2679 2750 6371 6300) +4(2749 6370 6371 2750) +4(2680 2751 6372 6301) +4(2750 6371 6372 2751) +4(2681 2752 6373 6302) +4(2751 6372 6373 2752) +4(2682 2753 6374 6303) +4(2752 6373 6374 2753) +4(2683 2754 6375 6304) +4(2753 6374 6375 2754) +4(2684 2755 6376 6305) +4(2754 6375 6376 2755) +4(2685 2756 6377 6306) +4(2755 6376 6377 2756) +4(2686 2757 6378 6307) +4(2756 6377 6378 2757) +4(2687 2758 6379 6308) +4(2757 6378 6379 2758) +4(2688 2759 6380 6309) +4(2758 6379 6380 2759) +4(2689 2760 6381 6310) +4(2759 6380 6381 2760) +4(2690 2761 6382 6311) +4(2760 6381 6382 2761) +4(2691 2762 6383 6312) +4(2761 6382 6383 2762) +4(2692 2763 6384 6313) +4(2762 6383 6384 2763) +4(2693 2764 6385 6314) +4(2763 6384 6385 2764) +4(2694 2765 6386 6315) +4(2764 6385 6386 2765) +4(2695 2766 6387 6316) +4(2765 6386 6387 2766) +4(2696 2767 6388 6317) +4(2766 6387 6388 2767) +4(2767 6388 6389 2768) +4(2699 2770 6391 6320) +4(2769 6390 6391 2770) +4(2700 2771 6392 6321) +4(2770 6391 6392 2771) +4(2701 2772 6393 6322) +4(2771 6392 6393 2772) +4(2702 2773 6394 6323) +4(2772 6393 6394 2773) +4(2703 2774 6395 6324) +4(2773 6394 6395 2774) +4(2704 2775 6396 6325) +4(2774 6395 6396 2775) +4(2705 2776 6397 6326) +4(2775 6396 6397 2776) +4(2706 2777 6398 6327) +4(2776 6397 6398 2777) +4(2707 2778 6399 6328) +4(2777 6398 6399 2778) +4(2708 2779 6400 6329) +4(2778 6399 6400 2779) +4(2709 2780 6401 6330) +4(2779 6400 6401 2780) +4(2710 2781 6402 6331) +4(2780 6401 6402 2781) +4(2711 2782 6403 6332) +4(2781 6402 6403 2782) +4(2712 2783 6404 6333) +4(2782 6403 6404 2783) +4(2713 2784 6405 6334) +4(2783 6404 6405 2784) +4(2714 2785 6406 6335) +4(2784 6405 6406 2785) +4(2715 2786 6407 6336) +4(2785 6406 6407 2786) +4(2716 2787 6408 6337) +4(2786 6407 6408 2787) +4(2717 2788 6409 6338) +4(2787 6408 6409 2788) +4(2718 2789 6410 6339) +4(2788 6409 6410 2789) +4(2719 2790 6411 6340) +4(2789 6410 6411 2790) +4(2720 2791 6412 6341) +4(2790 6411 6412 2791) +4(2721 2792 6413 6342) +4(2791 6412 6413 2792) +4(2722 2793 6414 6343) +4(2792 6413 6414 2793) +4(2723 2794 6415 6344) +4(2793 6414 6415 2794) +4(2724 2795 6416 6345) +4(2794 6415 6416 2795) +4(2725 2796 6417 6346) +4(2795 6416 6417 2796) +4(2726 2797 6418 6347) +4(2796 6417 6418 2797) +4(2727 2798 6419 6348) +4(2797 6418 6419 2798) +4(2728 2799 6420 6349) +4(2798 6419 6420 2799) +4(2729 2800 6421 6350) +4(2799 6420 6421 2800) +4(2730 2801 6422 6351) +4(2800 6421 6422 2801) +4(2731 2802 6423 6352) +4(2801 6422 6423 2802) +4(2732 2803 6424 6353) +4(2802 6423 6424 2803) +4(2733 2804 6425 6354) +4(2803 6424 6425 2804) +4(2734 2805 6426 6355) +4(2804 6425 6426 2805) +4(2735 2806 6427 6356) +4(2805 6426 6427 2806) +4(2736 2807 6428 6357) +4(2806 6427 6428 2807) +4(2737 2808 6429 6358) +4(2807 6428 6429 2808) +4(2738 2809 6430 6359) +4(2808 6429 6430 2809) +4(2739 2810 6431 6360) +4(2809 6430 6431 2810) +4(2740 2811 6432 6361) +4(2810 6431 6432 2811) +4(2741 2812 6433 6362) +4(2811 6432 6433 2812) +4(2742 2813 6434 6363) +4(2812 6433 6434 2813) +4(2743 2814 6435 6364) +4(2813 6434 6435 2814) +4(2744 2815 6436 6365) +4(2814 6435 6436 2815) +4(2745 2816 6437 6366) +4(2815 6436 6437 2816) +4(2746 2817 6438 6367) +4(2816 6437 6438 2817) +4(2747 2818 6439 6368) +4(2817 6438 6439 2818) +4(2748 2819 6440 6369) +4(2818 6439 6440 2819) +4(2749 2820 6441 6370) +4(2819 6440 6441 2820) +4(2750 2821 6442 6371) +4(2820 6441 6442 2821) +4(2751 2822 6443 6372) +4(2821 6442 6443 2822) +4(2752 2823 6444 6373) +4(2822 6443 6444 2823) +4(2753 2824 6445 6374) +4(2823 6444 6445 2824) +4(2754 2825 6446 6375) +4(2824 6445 6446 2825) +4(2755 2826 6447 6376) +4(2825 6446 6447 2826) +4(2756 2827 6448 6377) +4(2826 6447 6448 2827) +4(2757 2828 6449 6378) +4(2827 6448 6449 2828) +4(2758 2829 6450 6379) +4(2828 6449 6450 2829) +4(2759 2830 6451 6380) +4(2829 6450 6451 2830) +4(2760 2831 6452 6381) +4(2830 6451 6452 2831) +4(2761 2832 6453 6382) +4(2831 6452 6453 2832) +4(2762 2833 6454 6383) +4(2832 6453 6454 2833) +4(2763 2834 6455 6384) +4(2833 6454 6455 2834) +4(2764 2835 6456 6385) +4(2834 6455 6456 2835) +4(2765 2836 6457 6386) +4(2835 6456 6457 2836) +4(2766 2837 6458 6387) +4(2836 6457 6458 2837) +4(2767 2838 6459 6388) +4(2837 6458 6459 2838) +4(2838 6459 6460 2839) +4(2770 2841 6462 6391) +4(2840 6461 6462 2841) +4(2771 2842 6463 6392) +4(2841 6462 6463 2842) +4(2772 2843 6464 6393) +4(2842 6463 6464 2843) +4(2773 2844 6465 6394) +4(2843 6464 6465 2844) +4(2774 2845 6466 6395) +4(2844 6465 6466 2845) +4(2775 2846 6467 6396) +4(2845 6466 6467 2846) +4(2776 2847 6468 6397) +4(2846 6467 6468 2847) +4(2777 2848 6469 6398) +4(2847 6468 6469 2848) +4(2778 2849 6470 6399) +4(2848 6469 6470 2849) +4(2779 2850 6471 6400) +4(2849 6470 6471 2850) +4(2780 2851 6472 6401) +4(2850 6471 6472 2851) +4(2781 2852 6473 6402) +4(2851 6472 6473 2852) +4(2782 2853 6474 6403) +4(2852 6473 6474 2853) +4(2783 2854 6475 6404) +4(2853 6474 6475 2854) +4(2784 2855 6476 6405) +4(2854 6475 6476 2855) +4(2785 2856 6477 6406) +4(2855 6476 6477 2856) +4(2786 2857 6478 6407) +4(2856 6477 6478 2857) +4(2787 2858 6479 6408) +4(2857 6478 6479 2858) +4(2788 2859 6480 6409) +4(2858 6479 6480 2859) +4(2789 2860 6481 6410) +4(2859 6480 6481 2860) +4(2790 2861 6482 6411) +4(2860 6481 6482 2861) +4(2791 2862 6483 6412) +4(2861 6482 6483 2862) +4(2792 2863 6484 6413) +4(2862 6483 6484 2863) +4(2793 2864 6485 6414) +4(2863 6484 6485 2864) +4(2794 2865 6486 6415) +4(2864 6485 6486 2865) +4(2795 2866 6487 6416) +4(2865 6486 6487 2866) +4(2796 2867 6488 6417) +4(2866 6487 6488 2867) +4(2797 2868 6489 6418) +4(2867 6488 6489 2868) +4(2798 2869 6490 6419) +4(2868 6489 6490 2869) +4(2799 2870 6491 6420) +4(2869 6490 6491 2870) +4(2800 2871 6492 6421) +4(2870 6491 6492 2871) +4(2801 2872 6493 6422) +4(2871 6492 6493 2872) +4(2802 2873 6494 6423) +4(2872 6493 6494 2873) +4(2803 2874 6495 6424) +4(2873 6494 6495 2874) +4(2804 2875 6496 6425) +4(2874 6495 6496 2875) +4(2805 2876 6497 6426) +4(2875 6496 6497 2876) +4(2806 2877 6498 6427) +4(2876 6497 6498 2877) +4(2807 2878 6499 6428) +4(2877 6498 6499 2878) +4(2808 2879 6500 6429) +4(2878 6499 6500 2879) +4(2809 2880 6501 6430) +4(2879 6500 6501 2880) +4(2810 2881 6502 6431) +4(2880 6501 6502 2881) +4(2811 2882 6503 6432) +4(2881 6502 6503 2882) +4(2812 2883 6504 6433) +4(2882 6503 6504 2883) +4(2813 2884 6505 6434) +4(2883 6504 6505 2884) +4(2814 2885 6506 6435) +4(2884 6505 6506 2885) +4(2815 2886 6507 6436) +4(2885 6506 6507 2886) +4(2816 2887 6508 6437) +4(2886 6507 6508 2887) +4(2817 2888 6509 6438) +4(2887 6508 6509 2888) +4(2818 2889 6510 6439) +4(2888 6509 6510 2889) +4(2819 2890 6511 6440) +4(2889 6510 6511 2890) +4(2820 2891 6512 6441) +4(2890 6511 6512 2891) +4(2821 2892 6513 6442) +4(2891 6512 6513 2892) +4(2822 2893 6514 6443) +4(2892 6513 6514 2893) +4(2823 2894 6515 6444) +4(2893 6514 6515 2894) +4(2824 2895 6516 6445) +4(2894 6515 6516 2895) +4(2825 2896 6517 6446) +4(2895 6516 6517 2896) +4(2826 2897 6518 6447) +4(2896 6517 6518 2897) +4(2827 2898 6519 6448) +4(2897 6518 6519 2898) +4(2828 2899 6520 6449) +4(2898 6519 6520 2899) +4(2829 2900 6521 6450) +4(2899 6520 6521 2900) +4(2830 2901 6522 6451) +4(2900 6521 6522 2901) +4(2831 2902 6523 6452) +4(2901 6522 6523 2902) +4(2832 2903 6524 6453) +4(2902 6523 6524 2903) +4(2833 2904 6525 6454) +4(2903 6524 6525 2904) +4(2834 2905 6526 6455) +4(2904 6525 6526 2905) +4(2835 2906 6527 6456) +4(2905 6526 6527 2906) +4(2836 2907 6528 6457) +4(2906 6527 6528 2907) +4(2837 2908 6529 6458) +4(2907 6528 6529 2908) +4(2838 2909 6530 6459) +4(2908 6529 6530 2909) +4(2909 6530 6531 2910) +4(2841 2912 6533 6462) +4(2911 6532 6533 2912) +4(2842 2913 6534 6463) +4(2912 6533 6534 2913) +4(2843 2914 6535 6464) +4(2913 6534 6535 2914) +4(2844 2915 6536 6465) +4(2914 6535 6536 2915) +4(2845 2916 6537 6466) +4(2915 6536 6537 2916) +4(2846 2917 6538 6467) +4(2916 6537 6538 2917) +4(2847 2918 6539 6468) +4(2917 6538 6539 2918) +4(2848 2919 6540 6469) +4(2918 6539 6540 2919) +4(2849 2920 6541 6470) +4(2919 6540 6541 2920) +4(2850 2921 6542 6471) +4(2920 6541 6542 2921) +4(2851 2922 6543 6472) +4(2921 6542 6543 2922) +4(2852 2923 6544 6473) +4(2922 6543 6544 2923) +4(2853 2924 6545 6474) +4(2923 6544 6545 2924) +4(2854 2925 6546 6475) +4(2924 6545 6546 2925) +4(2855 2926 6547 6476) +4(2925 6546 6547 2926) +4(2856 2927 6548 6477) +4(2926 6547 6548 2927) +4(2857 2928 6549 6478) +4(2927 6548 6549 2928) +4(2858 2929 6550 6479) +4(2928 6549 6550 2929) +4(2859 2930 6551 6480) +4(2929 6550 6551 2930) +4(2860 2931 6552 6481) +4(2930 6551 6552 2931) +4(2861 2932 6553 6482) +4(2931 6552 6553 2932) +4(2862 2933 6554 6483) +4(2932 6553 6554 2933) +4(2863 2934 6555 6484) +4(2933 6554 6555 2934) +4(2864 2935 6556 6485) +4(2934 6555 6556 2935) +4(2865 2936 6557 6486) +4(2935 6556 6557 2936) +4(2866 2937 6558 6487) +4(2936 6557 6558 2937) +4(2867 2938 6559 6488) +4(2937 6558 6559 2938) +4(2868 2939 6560 6489) +4(2938 6559 6560 2939) +4(2869 2940 6561 6490) +4(2939 6560 6561 2940) +4(2870 2941 6562 6491) +4(2940 6561 6562 2941) +4(2871 2942 6563 6492) +4(2941 6562 6563 2942) +4(2872 2943 6564 6493) +4(2942 6563 6564 2943) +4(2873 2944 6565 6494) +4(2943 6564 6565 2944) +4(2874 2945 6566 6495) +4(2944 6565 6566 2945) +4(2875 2946 6567 6496) +4(2945 6566 6567 2946) +4(2876 2947 6568 6497) +4(2946 6567 6568 2947) +4(2877 2948 6569 6498) +4(2947 6568 6569 2948) +4(2878 2949 6570 6499) +4(2948 6569 6570 2949) +4(2879 2950 6571 6500) +4(2949 6570 6571 2950) +4(2880 2951 6572 6501) +4(2950 6571 6572 2951) +4(2881 2952 6573 6502) +4(2951 6572 6573 2952) +4(2882 2953 6574 6503) +4(2952 6573 6574 2953) +4(2883 2954 6575 6504) +4(2953 6574 6575 2954) +4(2884 2955 6576 6505) +4(2954 6575 6576 2955) +4(2885 2956 6577 6506) +4(2955 6576 6577 2956) +4(2886 2957 6578 6507) +4(2956 6577 6578 2957) +4(2887 2958 6579 6508) +4(2957 6578 6579 2958) +4(2888 2959 6580 6509) +4(2958 6579 6580 2959) +4(2889 2960 6581 6510) +4(2959 6580 6581 2960) +4(2890 2961 6582 6511) +4(2960 6581 6582 2961) +4(2891 2962 6583 6512) +4(2961 6582 6583 2962) +4(2892 2963 6584 6513) +4(2962 6583 6584 2963) +4(2893 2964 6585 6514) +4(2963 6584 6585 2964) +4(2894 2965 6586 6515) +4(2964 6585 6586 2965) +4(2895 2966 6587 6516) +4(2965 6586 6587 2966) +4(2896 2967 6588 6517) +4(2966 6587 6588 2967) +4(2897 2968 6589 6518) +4(2967 6588 6589 2968) +4(2898 2969 6590 6519) +4(2968 6589 6590 2969) +4(2899 2970 6591 6520) +4(2969 6590 6591 2970) +4(2900 2971 6592 6521) +4(2970 6591 6592 2971) +4(2901 2972 6593 6522) +4(2971 6592 6593 2972) +4(2902 2973 6594 6523) +4(2972 6593 6594 2973) +4(2903 2974 6595 6524) +4(2973 6594 6595 2974) +4(2904 2975 6596 6525) +4(2974 6595 6596 2975) +4(2905 2976 6597 6526) +4(2975 6596 6597 2976) +4(2906 2977 6598 6527) +4(2976 6597 6598 2977) +4(2907 2978 6599 6528) +4(2977 6598 6599 2978) +4(2908 2979 6600 6529) +4(2978 6599 6600 2979) +4(2909 2980 6601 6530) +4(2979 6600 6601 2980) +4(2980 6601 6602 2981) +4(2912 2983 6604 6533) +4(2982 6603 6604 2983) +4(2913 2984 6605 6534) +4(2983 6604 6605 2984) +4(2914 2985 6606 6535) +4(2984 6605 6606 2985) +4(2915 2986 6607 6536) +4(2985 6606 6607 2986) +4(2916 2987 6608 6537) +4(2986 6607 6608 2987) +4(2917 2988 6609 6538) +4(2987 6608 6609 2988) +4(2918 2989 6610 6539) +4(2988 6609 6610 2989) +4(2919 2990 6611 6540) +4(2989 6610 6611 2990) +4(2920 2991 6612 6541) +4(2990 6611 6612 2991) +4(2921 2992 6613 6542) +4(2991 6612 6613 2992) +4(2922 2993 6614 6543) +4(2992 6613 6614 2993) +4(2923 2994 6615 6544) +4(2993 6614 6615 2994) +4(2924 2995 6616 6545) +4(2994 6615 6616 2995) +4(2925 2996 6617 6546) +4(2995 6616 6617 2996) +4(2926 2997 6618 6547) +4(2996 6617 6618 2997) +4(2927 2998 6619 6548) +4(2997 6618 6619 2998) +4(2928 2999 6620 6549) +4(2998 6619 6620 2999) +4(2929 3000 6621 6550) +4(2999 6620 6621 3000) +4(2930 3001 6622 6551) +4(3000 6621 6622 3001) +4(2931 3002 6623 6552) +4(3001 6622 6623 3002) +4(2932 3003 6624 6553) +4(3002 6623 6624 3003) +4(2933 3004 6625 6554) +4(3003 6624 6625 3004) +4(2934 3005 6626 6555) +4(3004 6625 6626 3005) +4(2935 3006 6627 6556) +4(3005 6626 6627 3006) +4(2936 3007 6628 6557) +4(3006 6627 6628 3007) +4(2937 3008 6629 6558) +4(3007 6628 6629 3008) +4(2938 3009 6630 6559) +4(3008 6629 6630 3009) +4(2939 3010 6631 6560) +4(3009 6630 6631 3010) +4(2940 3011 6632 6561) +4(3010 6631 6632 3011) +4(2941 3012 6633 6562) +4(3011 6632 6633 3012) +4(2942 3013 6634 6563) +4(3012 6633 6634 3013) +4(2943 3014 6635 6564) +4(3013 6634 6635 3014) +4(2944 3015 6636 6565) +4(3014 6635 6636 3015) +4(2945 3016 6637 6566) +4(3015 6636 6637 3016) +4(2946 3017 6638 6567) +4(3016 6637 6638 3017) +4(2947 3018 6639 6568) +4(3017 6638 6639 3018) +4(2948 3019 6640 6569) +4(3018 6639 6640 3019) +4(2949 3020 6641 6570) +4(3019 6640 6641 3020) +4(2950 3021 6642 6571) +4(3020 6641 6642 3021) +4(2951 3022 6643 6572) +4(3021 6642 6643 3022) +4(2952 3023 6644 6573) +4(3022 6643 6644 3023) +4(2953 3024 6645 6574) +4(3023 6644 6645 3024) +4(2954 3025 6646 6575) +4(3024 6645 6646 3025) +4(2955 3026 6647 6576) +4(3025 6646 6647 3026) +4(2956 3027 6648 6577) +4(3026 6647 6648 3027) +4(2957 3028 6649 6578) +4(3027 6648 6649 3028) +4(2958 3029 6650 6579) +4(3028 6649 6650 3029) +4(2959 3030 6651 6580) +4(3029 6650 6651 3030) +4(2960 3031 6652 6581) +4(3030 6651 6652 3031) +4(2961 3032 6653 6582) +4(3031 6652 6653 3032) +4(2962 3033 6654 6583) +4(3032 6653 6654 3033) +4(2963 3034 6655 6584) +4(3033 6654 6655 3034) +4(2964 3035 6656 6585) +4(3034 6655 6656 3035) +4(2965 3036 6657 6586) +4(3035 6656 6657 3036) +4(2966 3037 6658 6587) +4(3036 6657 6658 3037) +4(2967 3038 6659 6588) +4(3037 6658 6659 3038) +4(2968 3039 6660 6589) +4(3038 6659 6660 3039) +4(2969 3040 6661 6590) +4(3039 6660 6661 3040) +4(2970 3041 6662 6591) +4(3040 6661 6662 3041) +4(2971 3042 6663 6592) +4(3041 6662 6663 3042) +4(2972 3043 6664 6593) +4(3042 6663 6664 3043) +4(2973 3044 6665 6594) +4(3043 6664 6665 3044) +4(2974 3045 6666 6595) +4(3044 6665 6666 3045) +4(2975 3046 6667 6596) +4(3045 6666 6667 3046) +4(2976 3047 6668 6597) +4(3046 6667 6668 3047) +4(2977 3048 6669 6598) +4(3047 6668 6669 3048) +4(2978 3049 6670 6599) +4(3048 6669 6670 3049) +4(2979 3050 6671 6600) +4(3049 6670 6671 3050) +4(2980 3051 6672 6601) +4(3050 6671 6672 3051) +4(3051 6672 6673 3052) +4(2983 3054 6675 6604) +4(3053 6674 6675 3054) +4(2984 3055 6676 6605) +4(3054 6675 6676 3055) +4(2985 3056 6677 6606) +4(3055 6676 6677 3056) +4(2986 3057 6678 6607) +4(3056 6677 6678 3057) +4(2987 3058 6679 6608) +4(3057 6678 6679 3058) +4(2988 3059 6680 6609) +4(3058 6679 6680 3059) +4(2989 3060 6681 6610) +4(3059 6680 6681 3060) +4(2990 3061 6682 6611) +4(3060 6681 6682 3061) +4(2991 3062 6683 6612) +4(3061 6682 6683 3062) +4(2992 3063 6684 6613) +4(3062 6683 6684 3063) +4(2993 3064 6685 6614) +4(3063 6684 6685 3064) +4(2994 3065 6686 6615) +4(3064 6685 6686 3065) +4(2995 3066 6687 6616) +4(3065 6686 6687 3066) +4(2996 3067 6688 6617) +4(3066 6687 6688 3067) +4(2997 3068 6689 6618) +4(3067 6688 6689 3068) +4(2998 3069 6690 6619) +4(3068 6689 6690 3069) +4(2999 3070 6691 6620) +4(3069 6690 6691 3070) +4(3000 3071 6692 6621) +4(3070 6691 6692 3071) +4(3001 3072 6693 6622) +4(3071 6692 6693 3072) +4(3002 3073 6694 6623) +4(3072 6693 6694 3073) +4(3003 3074 6695 6624) +4(3073 6694 6695 3074) +4(3004 3075 6696 6625) +4(3074 6695 6696 3075) +4(3005 3076 6697 6626) +4(3075 6696 6697 3076) +4(3006 3077 6698 6627) +4(3076 6697 6698 3077) +4(3007 3078 6699 6628) +4(3077 6698 6699 3078) +4(3008 3079 6700 6629) +4(3078 6699 6700 3079) +4(3009 3080 6701 6630) +4(3079 6700 6701 3080) +4(3010 3081 6702 6631) +4(3080 6701 6702 3081) +4(3011 3082 6703 6632) +4(3081 6702 6703 3082) +4(3012 3083 6704 6633) +4(3082 6703 6704 3083) +4(3013 3084 6705 6634) +4(3083 6704 6705 3084) +4(3014 3085 6706 6635) +4(3084 6705 6706 3085) +4(3015 3086 6707 6636) +4(3085 6706 6707 3086) +4(3016 3087 6708 6637) +4(3086 6707 6708 3087) +4(3017 3088 6709 6638) +4(3087 6708 6709 3088) +4(3018 3089 6710 6639) +4(3088 6709 6710 3089) +4(3019 3090 6711 6640) +4(3089 6710 6711 3090) +4(3020 3091 6712 6641) +4(3090 6711 6712 3091) +4(3021 3092 6713 6642) +4(3091 6712 6713 3092) +4(3022 3093 6714 6643) +4(3092 6713 6714 3093) +4(3023 3094 6715 6644) +4(3093 6714 6715 3094) +4(3024 3095 6716 6645) +4(3094 6715 6716 3095) +4(3025 3096 6717 6646) +4(3095 6716 6717 3096) +4(3026 3097 6718 6647) +4(3096 6717 6718 3097) +4(3027 3098 6719 6648) +4(3097 6718 6719 3098) +4(3028 3099 6720 6649) +4(3098 6719 6720 3099) +4(3029 3100 6721 6650) +4(3099 6720 6721 3100) +4(3030 3101 6722 6651) +4(3100 6721 6722 3101) +4(3031 3102 6723 6652) +4(3101 6722 6723 3102) +4(3032 3103 6724 6653) +4(3102 6723 6724 3103) +4(3033 3104 6725 6654) +4(3103 6724 6725 3104) +4(3034 3105 6726 6655) +4(3104 6725 6726 3105) +4(3035 3106 6727 6656) +4(3105 6726 6727 3106) +4(3036 3107 6728 6657) +4(3106 6727 6728 3107) +4(3037 3108 6729 6658) +4(3107 6728 6729 3108) +4(3038 3109 6730 6659) +4(3108 6729 6730 3109) +4(3039 3110 6731 6660) +4(3109 6730 6731 3110) +4(3040 3111 6732 6661) +4(3110 6731 6732 3111) +4(3041 3112 6733 6662) +4(3111 6732 6733 3112) +4(3042 3113 6734 6663) +4(3112 6733 6734 3113) +4(3043 3114 6735 6664) +4(3113 6734 6735 3114) +4(3044 3115 6736 6665) +4(3114 6735 6736 3115) +4(3045 3116 6737 6666) +4(3115 6736 6737 3116) +4(3046 3117 6738 6667) +4(3116 6737 6738 3117) +4(3047 3118 6739 6668) +4(3117 6738 6739 3118) +4(3048 3119 6740 6669) +4(3118 6739 6740 3119) +4(3049 3120 6741 6670) +4(3119 6740 6741 3120) +4(3050 3121 6742 6671) +4(3120 6741 6742 3121) +4(3051 3122 6743 6672) +4(3121 6742 6743 3122) +4(3122 6743 6744 3123) +4(3054 3125 6746 6675) +4(3124 6745 6746 3125) +4(3055 3126 6747 6676) +4(3125 6746 6747 3126) +4(3056 3127 6748 6677) +4(3126 6747 6748 3127) +4(3057 3128 6749 6678) +4(3127 6748 6749 3128) +4(3058 3129 6750 6679) +4(3128 6749 6750 3129) +4(3059 3130 6751 6680) +4(3129 6750 6751 3130) +4(3060 3131 6752 6681) +4(3130 6751 6752 3131) +4(3061 3132 6753 6682) +4(3131 6752 6753 3132) +4(3062 3133 6754 6683) +4(3132 6753 6754 3133) +4(3063 3134 6755 6684) +4(3133 6754 6755 3134) +4(3064 3135 6756 6685) +4(3134 6755 6756 3135) +4(3065 3136 6757 6686) +4(3135 6756 6757 3136) +4(3066 3137 6758 6687) +4(3136 6757 6758 3137) +4(3067 3138 6759 6688) +4(3137 6758 6759 3138) +4(3068 3139 6760 6689) +4(3138 6759 6760 3139) +4(3069 3140 6761 6690) +4(3139 6760 6761 3140) +4(3070 3141 6762 6691) +4(3140 6761 6762 3141) +4(3071 3142 6763 6692) +4(3141 6762 6763 3142) +4(3072 3143 6764 6693) +4(3142 6763 6764 3143) +4(3073 3144 6765 6694) +4(3143 6764 6765 3144) +4(3074 3145 6766 6695) +4(3144 6765 6766 3145) +4(3075 3146 6767 6696) +4(3145 6766 6767 3146) +4(3076 3147 6768 6697) +4(3146 6767 6768 3147) +4(3077 3148 6769 6698) +4(3147 6768 6769 3148) +4(3078 3149 6770 6699) +4(3148 6769 6770 3149) +4(3079 3150 6771 6700) +4(3149 6770 6771 3150) +4(3080 3151 6772 6701) +4(3150 6771 6772 3151) +4(3081 3152 6773 6702) +4(3151 6772 6773 3152) +4(3082 3153 6774 6703) +4(3152 6773 6774 3153) +4(3083 3154 6775 6704) +4(3153 6774 6775 3154) +4(3084 3155 6776 6705) +4(3154 6775 6776 3155) +4(3085 3156 6777 6706) +4(3155 6776 6777 3156) +4(3086 3157 6778 6707) +4(3156 6777 6778 3157) +4(3087 3158 6779 6708) +4(3157 6778 6779 3158) +4(3088 3159 6780 6709) +4(3158 6779 6780 3159) +4(3089 3160 6781 6710) +4(3159 6780 6781 3160) +4(3090 3161 6782 6711) +4(3160 6781 6782 3161) +4(3091 3162 6783 6712) +4(3161 6782 6783 3162) +4(3092 3163 6784 6713) +4(3162 6783 6784 3163) +4(3093 3164 6785 6714) +4(3163 6784 6785 3164) +4(3094 3165 6786 6715) +4(3164 6785 6786 3165) +4(3095 3166 6787 6716) +4(3165 6786 6787 3166) +4(3096 3167 6788 6717) +4(3166 6787 6788 3167) +4(3097 3168 6789 6718) +4(3167 6788 6789 3168) +4(3098 3169 6790 6719) +4(3168 6789 6790 3169) +4(3099 3170 6791 6720) +4(3169 6790 6791 3170) +4(3100 3171 6792 6721) +4(3170 6791 6792 3171) +4(3101 3172 6793 6722) +4(3171 6792 6793 3172) +4(3102 3173 6794 6723) +4(3172 6793 6794 3173) +4(3103 3174 6795 6724) +4(3173 6794 6795 3174) +4(3104 3175 6796 6725) +4(3174 6795 6796 3175) +4(3105 3176 6797 6726) +4(3175 6796 6797 3176) +4(3106 3177 6798 6727) +4(3176 6797 6798 3177) +4(3107 3178 6799 6728) +4(3177 6798 6799 3178) +4(3108 3179 6800 6729) +4(3178 6799 6800 3179) +4(3109 3180 6801 6730) +4(3179 6800 6801 3180) +4(3110 3181 6802 6731) +4(3180 6801 6802 3181) +4(3111 3182 6803 6732) +4(3181 6802 6803 3182) +4(3112 3183 6804 6733) +4(3182 6803 6804 3183) +4(3113 3184 6805 6734) +4(3183 6804 6805 3184) +4(3114 3185 6806 6735) +4(3184 6805 6806 3185) +4(3115 3186 6807 6736) +4(3185 6806 6807 3186) +4(3116 3187 6808 6737) +4(3186 6807 6808 3187) +4(3117 3188 6809 6738) +4(3187 6808 6809 3188) +4(3118 3189 6810 6739) +4(3188 6809 6810 3189) +4(3119 3190 6811 6740) +4(3189 6810 6811 3190) +4(3120 3191 6812 6741) +4(3190 6811 6812 3191) +4(3121 3192 6813 6742) +4(3191 6812 6813 3192) +4(3122 3193 6814 6743) +4(3192 6813 6814 3193) +4(3193 6814 6815 3194) +4(3125 3196 6817 6746) +4(3195 6816 6817 3196) +4(3126 3197 6818 6747) +4(3196 6817 6818 3197) +4(3127 3198 6819 6748) +4(3197 6818 6819 3198) +4(3128 3199 6820 6749) +4(3198 6819 6820 3199) +4(3129 3200 6821 6750) +4(3199 6820 6821 3200) +4(3130 3201 6822 6751) +4(3200 6821 6822 3201) +4(3131 3202 6823 6752) +4(3201 6822 6823 3202) +4(3132 3203 6824 6753) +4(3202 6823 6824 3203) +4(3133 3204 6825 6754) +4(3203 6824 6825 3204) +4(3134 3205 6826 6755) +4(3204 6825 6826 3205) +4(3135 3206 6827 6756) +4(3205 6826 6827 3206) +4(3136 3207 6828 6757) +4(3206 6827 6828 3207) +4(3137 3208 6829 6758) +4(3207 6828 6829 3208) +4(3138 3209 6830 6759) +4(3208 6829 6830 3209) +4(3139 3210 6831 6760) +4(3209 6830 6831 3210) +4(3140 3211 6832 6761) +4(3210 6831 6832 3211) +4(3141 3212 6833 6762) +4(3211 6832 6833 3212) +4(3142 3213 6834 6763) +4(3212 6833 6834 3213) +4(3143 3214 6835 6764) +4(3213 6834 6835 3214) +4(3144 3215 6836 6765) +4(3214 6835 6836 3215) +4(3145 3216 6837 6766) +4(3215 6836 6837 3216) +4(3146 3217 6838 6767) +4(3216 6837 6838 3217) +4(3147 3218 6839 6768) +4(3217 6838 6839 3218) +4(3148 3219 6840 6769) +4(3218 6839 6840 3219) +4(3149 3220 6841 6770) +4(3219 6840 6841 3220) +4(3150 3221 6842 6771) +4(3220 6841 6842 3221) +4(3151 3222 6843 6772) +4(3221 6842 6843 3222) +4(3152 3223 6844 6773) +4(3222 6843 6844 3223) +4(3153 3224 6845 6774) +4(3223 6844 6845 3224) +4(3154 3225 6846 6775) +4(3224 6845 6846 3225) +4(3155 3226 6847 6776) +4(3225 6846 6847 3226) +4(3156 3227 6848 6777) +4(3226 6847 6848 3227) +4(3157 3228 6849 6778) +4(3227 6848 6849 3228) +4(3158 3229 6850 6779) +4(3228 6849 6850 3229) +4(3159 3230 6851 6780) +4(3229 6850 6851 3230) +4(3160 3231 6852 6781) +4(3230 6851 6852 3231) +4(3161 3232 6853 6782) +4(3231 6852 6853 3232) +4(3162 3233 6854 6783) +4(3232 6853 6854 3233) +4(3163 3234 6855 6784) +4(3233 6854 6855 3234) +4(3164 3235 6856 6785) +4(3234 6855 6856 3235) +4(3165 3236 6857 6786) +4(3235 6856 6857 3236) +4(3166 3237 6858 6787) +4(3236 6857 6858 3237) +4(3167 3238 6859 6788) +4(3237 6858 6859 3238) +4(3168 3239 6860 6789) +4(3238 6859 6860 3239) +4(3169 3240 6861 6790) +4(3239 6860 6861 3240) +4(3170 3241 6862 6791) +4(3240 6861 6862 3241) +4(3171 3242 6863 6792) +4(3241 6862 6863 3242) +4(3172 3243 6864 6793) +4(3242 6863 6864 3243) +4(3173 3244 6865 6794) +4(3243 6864 6865 3244) +4(3174 3245 6866 6795) +4(3244 6865 6866 3245) +4(3175 3246 6867 6796) +4(3245 6866 6867 3246) +4(3176 3247 6868 6797) +4(3246 6867 6868 3247) +4(3177 3248 6869 6798) +4(3247 6868 6869 3248) +4(3178 3249 6870 6799) +4(3248 6869 6870 3249) +4(3179 3250 6871 6800) +4(3249 6870 6871 3250) +4(3180 3251 6872 6801) +4(3250 6871 6872 3251) +4(3181 3252 6873 6802) +4(3251 6872 6873 3252) +4(3182 3253 6874 6803) +4(3252 6873 6874 3253) +4(3183 3254 6875 6804) +4(3253 6874 6875 3254) +4(3184 3255 6876 6805) +4(3254 6875 6876 3255) +4(3185 3256 6877 6806) +4(3255 6876 6877 3256) +4(3186 3257 6878 6807) +4(3256 6877 6878 3257) +4(3187 3258 6879 6808) +4(3257 6878 6879 3258) +4(3188 3259 6880 6809) +4(3258 6879 6880 3259) +4(3189 3260 6881 6810) +4(3259 6880 6881 3260) +4(3190 3261 6882 6811) +4(3260 6881 6882 3261) +4(3191 3262 6883 6812) +4(3261 6882 6883 3262) +4(3192 3263 6884 6813) +4(3262 6883 6884 3263) +4(3193 3264 6885 6814) +4(3263 6884 6885 3264) +4(3264 6885 6886 3265) +4(3196 3267 6888 6817) +4(3266 6887 6888 3267) +4(3197 3268 6889 6818) +4(3267 6888 6889 3268) +4(3198 3269 6890 6819) +4(3268 6889 6890 3269) +4(3199 3270 6891 6820) +4(3269 6890 6891 3270) +4(3200 3271 6892 6821) +4(3270 6891 6892 3271) +4(3201 3272 6893 6822) +4(3271 6892 6893 3272) +4(3202 3273 6894 6823) +4(3272 6893 6894 3273) +4(3203 3274 6895 6824) +4(3273 6894 6895 3274) +4(3204 3275 6896 6825) +4(3274 6895 6896 3275) +4(3205 3276 6897 6826) +4(3275 6896 6897 3276) +4(3206 3277 6898 6827) +4(3276 6897 6898 3277) +4(3207 3278 6899 6828) +4(3277 6898 6899 3278) +4(3208 3279 6900 6829) +4(3278 6899 6900 3279) +4(3209 3280 6901 6830) +4(3279 6900 6901 3280) +4(3210 3281 6902 6831) +4(3280 6901 6902 3281) +4(3211 3282 6903 6832) +4(3281 6902 6903 3282) +4(3212 3283 6904 6833) +4(3282 6903 6904 3283) +4(3213 3284 6905 6834) +4(3283 6904 6905 3284) +4(3214 3285 6906 6835) +4(3284 6905 6906 3285) +4(3215 3286 6907 6836) +4(3285 6906 6907 3286) +4(3216 3287 6908 6837) +4(3286 6907 6908 3287) +4(3217 3288 6909 6838) +4(3287 6908 6909 3288) +4(3218 3289 6910 6839) +4(3288 6909 6910 3289) +4(3219 3290 6911 6840) +4(3289 6910 6911 3290) +4(3220 3291 6912 6841) +4(3290 6911 6912 3291) +4(3221 3292 6913 6842) +4(3291 6912 6913 3292) +4(3222 3293 6914 6843) +4(3292 6913 6914 3293) +4(3223 3294 6915 6844) +4(3293 6914 6915 3294) +4(3224 3295 6916 6845) +4(3294 6915 6916 3295) +4(3225 3296 6917 6846) +4(3295 6916 6917 3296) +4(3226 3297 6918 6847) +4(3296 6917 6918 3297) +4(3227 3298 6919 6848) +4(3297 6918 6919 3298) +4(3228 3299 6920 6849) +4(3298 6919 6920 3299) +4(3229 3300 6921 6850) +4(3299 6920 6921 3300) +4(3230 3301 6922 6851) +4(3300 6921 6922 3301) +4(3231 3302 6923 6852) +4(3301 6922 6923 3302) +4(3232 3303 6924 6853) +4(3302 6923 6924 3303) +4(3233 3304 6925 6854) +4(3303 6924 6925 3304) +4(3234 3305 6926 6855) +4(3304 6925 6926 3305) +4(3235 3306 6927 6856) +4(3305 6926 6927 3306) +4(3236 3307 6928 6857) +4(3306 6927 6928 3307) +4(3237 3308 6929 6858) +4(3307 6928 6929 3308) +4(3238 3309 6930 6859) +4(3308 6929 6930 3309) +4(3239 3310 6931 6860) +4(3309 6930 6931 3310) +4(3240 3311 6932 6861) +4(3310 6931 6932 3311) +4(3241 3312 6933 6862) +4(3311 6932 6933 3312) +4(3242 3313 6934 6863) +4(3312 6933 6934 3313) +4(3243 3314 6935 6864) +4(3313 6934 6935 3314) +4(3244 3315 6936 6865) +4(3314 6935 6936 3315) +4(3245 3316 6937 6866) +4(3315 6936 6937 3316) +4(3246 3317 6938 6867) +4(3316 6937 6938 3317) +4(3247 3318 6939 6868) +4(3317 6938 6939 3318) +4(3248 3319 6940 6869) +4(3318 6939 6940 3319) +4(3249 3320 6941 6870) +4(3319 6940 6941 3320) +4(3250 3321 6942 6871) +4(3320 6941 6942 3321) +4(3251 3322 6943 6872) +4(3321 6942 6943 3322) +4(3252 3323 6944 6873) +4(3322 6943 6944 3323) +4(3253 3324 6945 6874) +4(3323 6944 6945 3324) +4(3254 3325 6946 6875) +4(3324 6945 6946 3325) +4(3255 3326 6947 6876) +4(3325 6946 6947 3326) +4(3256 3327 6948 6877) +4(3326 6947 6948 3327) +4(3257 3328 6949 6878) +4(3327 6948 6949 3328) +4(3258 3329 6950 6879) +4(3328 6949 6950 3329) +4(3259 3330 6951 6880) +4(3329 6950 6951 3330) +4(3260 3331 6952 6881) +4(3330 6951 6952 3331) +4(3261 3332 6953 6882) +4(3331 6952 6953 3332) +4(3262 3333 6954 6883) +4(3332 6953 6954 3333) +4(3263 3334 6955 6884) +4(3333 6954 6955 3334) +4(3264 3335 6956 6885) +4(3334 6955 6956 3335) +4(3335 6956 6957 3336) +4(3267 3338 6959 6888) +4(3337 6958 6959 3338) +4(3268 3339 6960 6889) +4(3338 6959 6960 3339) +4(3269 3340 6961 6890) +4(3339 6960 6961 3340) +4(3270 3341 6962 6891) +4(3340 6961 6962 3341) +4(3271 3342 6963 6892) +4(3341 6962 6963 3342) +4(3272 3343 6964 6893) +4(3342 6963 6964 3343) +4(3273 3344 6965 6894) +4(3343 6964 6965 3344) +4(3274 3345 6966 6895) +4(3344 6965 6966 3345) +4(3275 3346 6967 6896) +4(3345 6966 6967 3346) +4(3276 3347 6968 6897) +4(3346 6967 6968 3347) +4(3277 3348 6969 6898) +4(3347 6968 6969 3348) +4(3278 3349 6970 6899) +4(3348 6969 6970 3349) +4(3279 3350 6971 6900) +4(3349 6970 6971 3350) +4(3280 3351 6972 6901) +4(3350 6971 6972 3351) +4(3281 3352 6973 6902) +4(3351 6972 6973 3352) +4(3282 3353 6974 6903) +4(3352 6973 6974 3353) +4(3283 3354 6975 6904) +4(3353 6974 6975 3354) +4(3284 3355 6976 6905) +4(3354 6975 6976 3355) +4(3285 3356 6977 6906) +4(3355 6976 6977 3356) +4(3286 3357 6978 6907) +4(3356 6977 6978 3357) +4(3287 3358 6979 6908) +4(3357 6978 6979 3358) +4(3288 3359 6980 6909) +4(3358 6979 6980 3359) +4(3289 3360 6981 6910) +4(3359 6980 6981 3360) +4(3290 3361 6982 6911) +4(3360 6981 6982 3361) +4(3291 3362 6983 6912) +4(3361 6982 6983 3362) +4(3292 3363 6984 6913) +4(3362 6983 6984 3363) +4(3293 3364 6985 6914) +4(3363 6984 6985 3364) +4(3294 3365 6986 6915) +4(3364 6985 6986 3365) +4(3295 3366 6987 6916) +4(3365 6986 6987 3366) +4(3296 3367 6988 6917) +4(3366 6987 6988 3367) +4(3297 3368 6989 6918) +4(3367 6988 6989 3368) +4(3298 3369 6990 6919) +4(3368 6989 6990 3369) +4(3299 3370 6991 6920) +4(3369 6990 6991 3370) +4(3300 3371 6992 6921) +4(3370 6991 6992 3371) +4(3301 3372 6993 6922) +4(3371 6992 6993 3372) +4(3302 3373 6994 6923) +4(3372 6993 6994 3373) +4(3303 3374 6995 6924) +4(3373 6994 6995 3374) +4(3304 3375 6996 6925) +4(3374 6995 6996 3375) +4(3305 3376 6997 6926) +4(3375 6996 6997 3376) +4(3306 3377 6998 6927) +4(3376 6997 6998 3377) +4(3307 3378 6999 6928) +4(3377 6998 6999 3378) +4(3308 3379 7000 6929) +4(3378 6999 7000 3379) +4(3309 3380 7001 6930) +4(3379 7000 7001 3380) +4(3310 3381 7002 6931) +4(3380 7001 7002 3381) +4(3311 3382 7003 6932) +4(3381 7002 7003 3382) +4(3312 3383 7004 6933) +4(3382 7003 7004 3383) +4(3313 3384 7005 6934) +4(3383 7004 7005 3384) +4(3314 3385 7006 6935) +4(3384 7005 7006 3385) +4(3315 3386 7007 6936) +4(3385 7006 7007 3386) +4(3316 3387 7008 6937) +4(3386 7007 7008 3387) +4(3317 3388 7009 6938) +4(3387 7008 7009 3388) +4(3318 3389 7010 6939) +4(3388 7009 7010 3389) +4(3319 3390 7011 6940) +4(3389 7010 7011 3390) +4(3320 3391 7012 6941) +4(3390 7011 7012 3391) +4(3321 3392 7013 6942) +4(3391 7012 7013 3392) +4(3322 3393 7014 6943) +4(3392 7013 7014 3393) +4(3323 3394 7015 6944) +4(3393 7014 7015 3394) +4(3324 3395 7016 6945) +4(3394 7015 7016 3395) +4(3325 3396 7017 6946) +4(3395 7016 7017 3396) +4(3326 3397 7018 6947) +4(3396 7017 7018 3397) +4(3327 3398 7019 6948) +4(3397 7018 7019 3398) +4(3328 3399 7020 6949) +4(3398 7019 7020 3399) +4(3329 3400 7021 6950) +4(3399 7020 7021 3400) +4(3330 3401 7022 6951) +4(3400 7021 7022 3401) +4(3331 3402 7023 6952) +4(3401 7022 7023 3402) +4(3332 3403 7024 6953) +4(3402 7023 7024 3403) +4(3333 3404 7025 6954) +4(3403 7024 7025 3404) +4(3334 3405 7026 6955) +4(3404 7025 7026 3405) +4(3335 3406 7027 6956) +4(3405 7026 7027 3406) +4(3406 7027 7028 3407) +4(3338 3409 7030 6959) +4(3408 7029 7030 3409) +4(3339 3410 7031 6960) +4(3409 7030 7031 3410) +4(3340 3411 7032 6961) +4(3410 7031 7032 3411) +4(3341 3412 7033 6962) +4(3411 7032 7033 3412) +4(3342 3413 7034 6963) +4(3412 7033 7034 3413) +4(3343 3414 7035 6964) +4(3413 7034 7035 3414) +4(3344 3415 7036 6965) +4(3414 7035 7036 3415) +4(3345 3416 7037 6966) +4(3415 7036 7037 3416) +4(3346 3417 7038 6967) +4(3416 7037 7038 3417) +4(3347 3418 7039 6968) +4(3417 7038 7039 3418) +4(3348 3419 7040 6969) +4(3418 7039 7040 3419) +4(3349 3420 7041 6970) +4(3419 7040 7041 3420) +4(3350 3421 7042 6971) +4(3420 7041 7042 3421) +4(3351 3422 7043 6972) +4(3421 7042 7043 3422) +4(3352 3423 7044 6973) +4(3422 7043 7044 3423) +4(3353 3424 7045 6974) +4(3423 7044 7045 3424) +4(3354 3425 7046 6975) +4(3424 7045 7046 3425) +4(3355 3426 7047 6976) +4(3425 7046 7047 3426) +4(3356 3427 7048 6977) +4(3426 7047 7048 3427) +4(3357 3428 7049 6978) +4(3427 7048 7049 3428) +4(3358 3429 7050 6979) +4(3428 7049 7050 3429) +4(3359 3430 7051 6980) +4(3429 7050 7051 3430) +4(3360 3431 7052 6981) +4(3430 7051 7052 3431) +4(3361 3432 7053 6982) +4(3431 7052 7053 3432) +4(3362 3433 7054 6983) +4(3432 7053 7054 3433) +4(3363 3434 7055 6984) +4(3433 7054 7055 3434) +4(3364 3435 7056 6985) +4(3434 7055 7056 3435) +4(3365 3436 7057 6986) +4(3435 7056 7057 3436) +4(3366 3437 7058 6987) +4(3436 7057 7058 3437) +4(3367 3438 7059 6988) +4(3437 7058 7059 3438) +4(3368 3439 7060 6989) +4(3438 7059 7060 3439) +4(3369 3440 7061 6990) +4(3439 7060 7061 3440) +4(3370 3441 7062 6991) +4(3440 7061 7062 3441) +4(3371 3442 7063 6992) +4(3441 7062 7063 3442) +4(3372 3443 7064 6993) +4(3442 7063 7064 3443) +4(3373 3444 7065 6994) +4(3443 7064 7065 3444) +4(3374 3445 7066 6995) +4(3444 7065 7066 3445) +4(3375 3446 7067 6996) +4(3445 7066 7067 3446) +4(3376 3447 7068 6997) +4(3446 7067 7068 3447) +4(3377 3448 7069 6998) +4(3447 7068 7069 3448) +4(3378 3449 7070 6999) +4(3448 7069 7070 3449) +4(3379 3450 7071 7000) +4(3449 7070 7071 3450) +4(3380 3451 7072 7001) +4(3450 7071 7072 3451) +4(3381 3452 7073 7002) +4(3451 7072 7073 3452) +4(3382 3453 7074 7003) +4(3452 7073 7074 3453) +4(3383 3454 7075 7004) +4(3453 7074 7075 3454) +4(3384 3455 7076 7005) +4(3454 7075 7076 3455) +4(3385 3456 7077 7006) +4(3455 7076 7077 3456) +4(3386 3457 7078 7007) +4(3456 7077 7078 3457) +4(3387 3458 7079 7008) +4(3457 7078 7079 3458) +4(3388 3459 7080 7009) +4(3458 7079 7080 3459) +4(3389 3460 7081 7010) +4(3459 7080 7081 3460) +4(3390 3461 7082 7011) +4(3460 7081 7082 3461) +4(3391 3462 7083 7012) +4(3461 7082 7083 3462) +4(3392 3463 7084 7013) +4(3462 7083 7084 3463) +4(3393 3464 7085 7014) +4(3463 7084 7085 3464) +4(3394 3465 7086 7015) +4(3464 7085 7086 3465) +4(3395 3466 7087 7016) +4(3465 7086 7087 3466) +4(3396 3467 7088 7017) +4(3466 7087 7088 3467) +4(3397 3468 7089 7018) +4(3467 7088 7089 3468) +4(3398 3469 7090 7019) +4(3468 7089 7090 3469) +4(3399 3470 7091 7020) +4(3469 7090 7091 3470) +4(3400 3471 7092 7021) +4(3470 7091 7092 3471) +4(3401 3472 7093 7022) +4(3471 7092 7093 3472) +4(3402 3473 7094 7023) +4(3472 7093 7094 3473) +4(3403 3474 7095 7024) +4(3473 7094 7095 3474) +4(3404 3475 7096 7025) +4(3474 7095 7096 3475) +4(3405 3476 7097 7026) +4(3475 7096 7097 3476) +4(3406 3477 7098 7027) +4(3476 7097 7098 3477) +4(3477 7098 7099 3478) +4(3409 3480 7101 7030) +4(3479 7100 7101 3480) +4(3410 3481 7102 7031) +4(3480 7101 7102 3481) +4(3411 3482 7103 7032) +4(3481 7102 7103 3482) +4(3412 3483 7104 7033) +4(3482 7103 7104 3483) +4(3413 3484 7105 7034) +4(3483 7104 7105 3484) +4(3414 3485 7106 7035) +4(3484 7105 7106 3485) +4(3415 3486 7107 7036) +4(3485 7106 7107 3486) +4(3416 3487 7108 7037) +4(3486 7107 7108 3487) +4(3417 3488 7109 7038) +4(3487 7108 7109 3488) +4(3418 3489 7110 7039) +4(3488 7109 7110 3489) +4(3419 3490 7111 7040) +4(3489 7110 7111 3490) +4(3420 3491 7112 7041) +4(3490 7111 7112 3491) +4(3421 3492 7113 7042) +4(3491 7112 7113 3492) +4(3422 3493 7114 7043) +4(3492 7113 7114 3493) +4(3423 3494 7115 7044) +4(3493 7114 7115 3494) +4(3424 3495 7116 7045) +4(3494 7115 7116 3495) +4(3425 3496 7117 7046) +4(3495 7116 7117 3496) +4(3426 3497 7118 7047) +4(3496 7117 7118 3497) +4(3427 3498 7119 7048) +4(3497 7118 7119 3498) +4(3428 3499 7120 7049) +4(3498 7119 7120 3499) +4(3429 3500 7121 7050) +4(3499 7120 7121 3500) +4(3430 3501 7122 7051) +4(3500 7121 7122 3501) +4(3431 3502 7123 7052) +4(3501 7122 7123 3502) +4(3432 3503 7124 7053) +4(3502 7123 7124 3503) +4(3433 3504 7125 7054) +4(3503 7124 7125 3504) +4(3434 3505 7126 7055) +4(3504 7125 7126 3505) +4(3435 3506 7127 7056) +4(3505 7126 7127 3506) +4(3436 3507 7128 7057) +4(3506 7127 7128 3507) +4(3437 3508 7129 7058) +4(3507 7128 7129 3508) +4(3438 3509 7130 7059) +4(3508 7129 7130 3509) +4(3439 3510 7131 7060) +4(3509 7130 7131 3510) +4(3440 3511 7132 7061) +4(3510 7131 7132 3511) +4(3441 3512 7133 7062) +4(3511 7132 7133 3512) +4(3442 3513 7134 7063) +4(3512 7133 7134 3513) +4(3443 3514 7135 7064) +4(3513 7134 7135 3514) +4(3444 3515 7136 7065) +4(3514 7135 7136 3515) +4(3445 3516 7137 7066) +4(3515 7136 7137 3516) +4(3446 3517 7138 7067) +4(3516 7137 7138 3517) +4(3447 3518 7139 7068) +4(3517 7138 7139 3518) +4(3448 3519 7140 7069) +4(3518 7139 7140 3519) +4(3449 3520 7141 7070) +4(3519 7140 7141 3520) +4(3450 3521 7142 7071) +4(3520 7141 7142 3521) +4(3451 3522 7143 7072) +4(3521 7142 7143 3522) +4(3452 3523 7144 7073) +4(3522 7143 7144 3523) +4(3453 3524 7145 7074) +4(3523 7144 7145 3524) +4(3454 3525 7146 7075) +4(3524 7145 7146 3525) +4(3455 3526 7147 7076) +4(3525 7146 7147 3526) +4(3456 3527 7148 7077) +4(3526 7147 7148 3527) +4(3457 3528 7149 7078) +4(3527 7148 7149 3528) +4(3458 3529 7150 7079) +4(3528 7149 7150 3529) +4(3459 3530 7151 7080) +4(3529 7150 7151 3530) +4(3460 3531 7152 7081) +4(3530 7151 7152 3531) +4(3461 3532 7153 7082) +4(3531 7152 7153 3532) +4(3462 3533 7154 7083) +4(3532 7153 7154 3533) +4(3463 3534 7155 7084) +4(3533 7154 7155 3534) +4(3464 3535 7156 7085) +4(3534 7155 7156 3535) +4(3465 3536 7157 7086) +4(3535 7156 7157 3536) +4(3466 3537 7158 7087) +4(3536 7157 7158 3537) +4(3467 3538 7159 7088) +4(3537 7158 7159 3538) +4(3468 3539 7160 7089) +4(3538 7159 7160 3539) +4(3469 3540 7161 7090) +4(3539 7160 7161 3540) +4(3470 3541 7162 7091) +4(3540 7161 7162 3541) +4(3471 3542 7163 7092) +4(3541 7162 7163 3542) +4(3472 3543 7164 7093) +4(3542 7163 7164 3543) +4(3473 3544 7165 7094) +4(3543 7164 7165 3544) +4(3474 3545 7166 7095) +4(3544 7165 7166 3545) +4(3475 3546 7167 7096) +4(3545 7166 7167 3546) +4(3476 3547 7168 7097) +4(3546 7167 7168 3547) +4(3477 3548 7169 7098) +4(3547 7168 7169 3548) +4(3548 7169 7170 3549) +4(3480 3551 7172 7101) +4(3481 3552 7173 7102) +4(3482 3553 7174 7103) +4(3483 3554 7175 7104) +4(3484 3555 7176 7105) +4(3485 3556 7177 7106) +4(3486 3557 7178 7107) +4(3487 3558 7179 7108) +4(3488 3559 7180 7109) +4(3489 3560 7181 7110) +4(3490 3561 7182 7111) +4(3491 3562 7183 7112) +4(3492 3563 7184 7113) +4(3493 3564 7185 7114) +4(3494 3565 7186 7115) +4(3495 3566 7187 7116) +4(3496 3567 7188 7117) +4(3497 3568 7189 7118) +4(3498 3569 7190 7119) +4(3499 3570 7191 7120) +4(3500 3571 7192 7121) +4(3501 3572 7193 7122) +4(3502 3573 7194 7123) +4(3503 3574 7195 7124) +4(3504 3575 7196 7125) +4(3505 3576 7197 7126) +4(3506 3577 7198 7127) +4(3507 3578 7199 7128) +4(3508 3579 7200 7129) +4(3509 3580 7201 7130) +4(3510 3581 7202 7131) +4(3511 3582 7203 7132) +4(3512 3583 7204 7133) +4(3513 3584 7205 7134) +4(3514 3585 7206 7135) +4(3515 3586 7207 7136) +4(3516 3587 7208 7137) +4(3517 3588 7209 7138) +4(3518 3589 7210 7139) +4(3519 3590 7211 7140) +4(3520 3591 7212 7141) +4(3521 3592 7213 7142) +4(3522 3593 7214 7143) +4(3523 3594 7215 7144) +4(3524 3595 7216 7145) +4(3525 3596 7217 7146) +4(3526 3597 7218 7147) +4(3527 3598 7219 7148) +4(3528 3599 7220 7149) +4(3529 3600 7221 7150) +4(3530 3601 7222 7151) +4(3531 3602 7223 7152) +4(3532 3603 7224 7153) +4(3533 3604 7225 7154) +4(3534 3605 7226 7155) +4(3535 3606 7227 7156) +4(3536 3607 7228 7157) +4(3537 3608 7229 7158) +4(3538 3609 7230 7159) +4(3539 3610 7231 7160) +4(3540 3611 7232 7161) +4(3541 3612 7233 7162) +4(3542 3613 7234 7163) +4(3543 3614 7235 7164) +4(3544 3615 7236 7165) +4(3545 3616 7237 7166) +4(3546 3617 7238 7167) +4(3547 3618 7239 7168) +4(3548 3619 7240 7169) +4(0 3621 3692 71) +4(71 3692 3763 142) +4(142 3763 3834 213) +4(213 3834 3905 284) +4(284 3905 3976 355) +4(355 3976 4047 426) +4(426 4047 4118 497) +4(497 4118 4189 568) +4(568 4189 4260 639) +4(639 4260 4331 710) +4(710 4331 4402 781) +4(781 4402 4473 852) +4(852 4473 4544 923) +4(923 4544 4615 994) +4(994 4615 4686 1065) +4(1065 4686 4757 1136) +4(1136 4757 4828 1207) +4(1207 4828 4899 1278) +4(1278 4899 4970 1349) +4(1349 4970 5041 1420) +4(1420 5041 5112 1491) +4(1491 5112 5183 1562) +4(1562 5183 5254 1633) +4(1633 5254 5325 1704) +4(1704 5325 5396 1775) +4(1775 5396 5467 1846) +4(1846 5467 5538 1917) +4(1917 5538 5609 1988) +4(1988 5609 5680 2059) +4(2059 5680 5751 2130) +4(2130 5751 5822 2201) +4(2201 5822 5893 2272) +4(2272 5893 5964 2343) +4(2343 5964 6035 2414) +4(2414 6035 6106 2485) +4(2485 6106 6177 2556) +4(2556 6177 6248 2627) +4(2627 6248 6319 2698) +4(2698 6319 6390 2769) +4(2769 6390 6461 2840) +4(2840 6461 6532 2911) +4(2911 6532 6603 2982) +4(2982 6603 6674 3053) +4(3053 6674 6745 3124) +4(3124 6745 6816 3195) +4(3195 6816 6887 3266) +4(3266 6887 6958 3337) +4(3337 6958 7029 3408) +4(3408 7029 7100 3479) +4(3479 7100 7171 3550) +4(70 141 3762 3691) +4(141 212 3833 3762) +4(212 283 3904 3833) +4(283 354 3975 3904) +4(354 425 4046 3975) +4(425 496 4117 4046) +4(496 567 4188 4117) +4(567 638 4259 4188) +4(638 709 4330 4259) +4(709 780 4401 4330) +4(780 851 4472 4401) +4(851 922 4543 4472) +4(922 993 4614 4543) +4(993 1064 4685 4614) +4(1064 1135 4756 4685) +4(1135 1206 4827 4756) +4(1206 1277 4898 4827) +4(1277 1348 4969 4898) +4(1348 1419 5040 4969) +4(1419 1490 5111 5040) +4(1490 1561 5182 5111) +4(1561 1632 5253 5182) +4(1632 1703 5324 5253) +4(1703 1774 5395 5324) +4(1774 1845 5466 5395) +4(1845 1916 5537 5466) +4(1916 1987 5608 5537) +4(1987 2058 5679 5608) +4(2058 2129 5750 5679) +4(2129 2200 5821 5750) +4(2200 2271 5892 5821) +4(2271 2342 5963 5892) +4(2342 2413 6034 5963) +4(2413 2484 6105 6034) +4(2484 2555 6176 6105) +4(2555 2626 6247 6176) +4(2626 2697 6318 6247) +4(2697 2768 6389 6318) +4(2768 2839 6460 6389) +4(2839 2910 6531 6460) +4(2910 2981 6602 6531) +4(2981 3052 6673 6602) +4(3052 3123 6744 6673) +4(3123 3194 6815 6744) +4(3194 3265 6886 6815) +4(3265 3336 6957 6886) +4(3336 3407 7028 6957) +4(3407 3478 7099 7028) +4(3478 3549 7170 7099) +4(3549 3620 7241 7170) +4(3550 7171 7172 3551) +4(3551 7172 7173 3552) +4(3552 7173 7174 3553) +4(3553 7174 7175 3554) +4(3554 7175 7176 3555) +4(3555 7176 7177 3556) +4(3556 7177 7178 3557) +4(3557 7178 7179 3558) +4(3558 7179 7180 3559) +4(3559 7180 7181 3560) +4(3560 7181 7182 3561) +4(3561 7182 7183 3562) +4(3562 7183 7184 3563) +4(3563 7184 7185 3564) +4(3564 7185 7186 3565) +4(3565 7186 7187 3566) +4(3566 7187 7188 3567) +4(3567 7188 7189 3568) +4(3568 7189 7190 3569) +4(3569 7190 7191 3570) +4(3570 7191 7192 3571) +4(3571 7192 7193 3572) +4(3572 7193 7194 3573) +4(3573 7194 7195 3574) +4(3574 7195 7196 3575) +4(3575 7196 7197 3576) +4(3576 7197 7198 3577) +4(3577 7198 7199 3578) +4(3578 7199 7200 3579) +4(3579 7200 7201 3580) +4(3580 7201 7202 3581) +4(3581 7202 7203 3582) +4(3582 7203 7204 3583) +4(3583 7204 7205 3584) +4(3584 7205 7206 3585) +4(3585 7206 7207 3586) +4(3586 7207 7208 3587) +4(3587 7208 7209 3588) +4(3588 7209 7210 3589) +4(3589 7210 7211 3590) +4(3590 7211 7212 3591) +4(3591 7212 7213 3592) +4(3592 7213 7214 3593) +4(3593 7214 7215 3594) +4(3594 7215 7216 3595) +4(3595 7216 7217 3596) +4(3596 7217 7218 3597) +4(3597 7218 7219 3598) +4(3598 7219 7220 3599) +4(3599 7220 7221 3600) +4(3600 7221 7222 3601) +4(3601 7222 7223 3602) +4(3602 7223 7224 3603) +4(3603 7224 7225 3604) +4(3604 7225 7226 3605) +4(3605 7226 7227 3606) +4(3606 7227 7228 3607) +4(3607 7228 7229 3608) +4(3608 7229 7230 3609) +4(3609 7230 7231 3610) +4(3610 7231 7232 3611) +4(3611 7232 7233 3612) +4(3612 7233 7234 3613) +4(3613 7234 7235 3614) +4(3614 7235 7236 3615) +4(3615 7236 7237 3616) +4(3616 7237 7238 3617) +4(3617 7238 7239 3618) +4(3618 7239 7240 3619) +4(3619 7240 7241 3620) +4(0 1 3622 3621) +4(1 2 3623 3622) +4(2 3 3624 3623) +4(3 4 3625 3624) +4(4 5 3626 3625) +4(5 6 3627 3626) +4(6 7 3628 3627) +4(7 8 3629 3628) +4(8 9 3630 3629) +4(9 10 3631 3630) +4(10 11 3632 3631) +4(11 12 3633 3632) +4(12 13 3634 3633) +4(13 14 3635 3634) +4(14 15 3636 3635) +4(15 16 3637 3636) +4(16 17 3638 3637) +4(17 18 3639 3638) +4(18 19 3640 3639) +4(19 20 3641 3640) +4(20 21 3642 3641) +4(21 22 3643 3642) +4(22 23 3644 3643) +4(23 24 3645 3644) +4(24 25 3646 3645) +4(25 26 3647 3646) +4(26 27 3648 3647) +4(27 28 3649 3648) +4(28 29 3650 3649) +4(29 30 3651 3650) +4(30 31 3652 3651) +4(31 32 3653 3652) +4(32 33 3654 3653) +4(33 34 3655 3654) +4(34 35 3656 3655) +4(35 36 3657 3656) +4(36 37 3658 3657) +4(37 38 3659 3658) +4(38 39 3660 3659) +4(39 40 3661 3660) +4(40 41 3662 3661) +4(41 42 3663 3662) +4(42 43 3664 3663) +4(43 44 3665 3664) +4(44 45 3666 3665) +4(45 46 3667 3666) +4(46 47 3668 3667) +4(47 48 3669 3668) +4(48 49 3670 3669) +4(49 50 3671 3670) +4(50 51 3672 3671) +4(51 52 3673 3672) +4(52 53 3674 3673) +4(53 54 3675 3674) +4(54 55 3676 3675) +4(55 56 3677 3676) +4(56 57 3678 3677) +4(57 58 3679 3678) +4(58 59 3680 3679) +4(59 60 3681 3680) +4(60 61 3682 3681) +4(61 62 3683 3682) +4(62 63 3684 3683) +4(63 64 3685 3684) +4(64 65 3686 3685) +4(65 66 3687 3686) +4(66 67 3688 3687) +4(67 68 3689 3688) +4(68 69 3690 3689) +4(69 70 3691 3690) +4(0 71 72 1) +4(71 142 143 72) +4(142 213 214 143) +4(213 284 285 214) +4(284 355 356 285) +4(355 426 427 356) +4(426 497 498 427) +4(497 568 569 498) +4(568 639 640 569) +4(639 710 711 640) +4(710 781 782 711) +4(781 852 853 782) +4(852 923 924 853) +4(923 994 995 924) +4(994 1065 1066 995) +4(1065 1136 1137 1066) +4(1136 1207 1208 1137) +4(1207 1278 1279 1208) +4(1278 1349 1350 1279) +4(1349 1420 1421 1350) +4(1420 1491 1492 1421) +4(1491 1562 1563 1492) +4(1562 1633 1634 1563) +4(1633 1704 1705 1634) +4(1704 1775 1776 1705) +4(1775 1846 1847 1776) +4(1846 1917 1918 1847) +4(1917 1988 1989 1918) +4(1988 2059 2060 1989) +4(2059 2130 2131 2060) +4(2130 2201 2202 2131) +4(2201 2272 2273 2202) +4(2272 2343 2344 2273) +4(2343 2414 2415 2344) +4(2414 2485 2486 2415) +4(2485 2556 2557 2486) +4(2556 2627 2628 2557) +4(2627 2698 2699 2628) +4(2698 2769 2770 2699) +4(2769 2840 2841 2770) +4(2840 2911 2912 2841) +4(2911 2982 2983 2912) +4(2982 3053 3054 2983) +4(3053 3124 3125 3054) +4(3124 3195 3196 3125) +4(3195 3266 3267 3196) +4(3266 3337 3338 3267) +4(3337 3408 3409 3338) +4(3408 3479 3480 3409) +4(3479 3550 3551 3480) +4(1 72 73 2) +4(72 143 144 73) +4(143 214 215 144) +4(214 285 286 215) +4(285 356 357 286) +4(356 427 428 357) +4(427 498 499 428) +4(498 569 570 499) +4(569 640 641 570) +4(640 711 712 641) +4(711 782 783 712) +4(782 853 854 783) +4(853 924 925 854) +4(924 995 996 925) +4(995 1066 1067 996) +4(1066 1137 1138 1067) +4(1137 1208 1209 1138) +4(1208 1279 1280 1209) +4(1279 1350 1351 1280) +4(1350 1421 1422 1351) +4(1421 1492 1493 1422) +4(1492 1563 1564 1493) +4(1563 1634 1635 1564) +4(1634 1705 1706 1635) +4(1705 1776 1777 1706) +4(1776 1847 1848 1777) +4(1847 1918 1919 1848) +4(1918 1989 1990 1919) +4(1989 2060 2061 1990) +4(2060 2131 2132 2061) +4(2131 2202 2203 2132) +4(2202 2273 2274 2203) +4(2273 2344 2345 2274) +4(2344 2415 2416 2345) +4(2415 2486 2487 2416) +4(2486 2557 2558 2487) +4(2557 2628 2629 2558) +4(2628 2699 2700 2629) +4(2699 2770 2771 2700) +4(2770 2841 2842 2771) +4(2841 2912 2913 2842) +4(2912 2983 2984 2913) +4(2983 3054 3055 2984) +4(3054 3125 3126 3055) +4(3125 3196 3197 3126) +4(3196 3267 3268 3197) +4(3267 3338 3339 3268) +4(3338 3409 3410 3339) +4(3409 3480 3481 3410) +4(3480 3551 3552 3481) +4(2 73 74 3) +4(73 144 145 74) +4(144 215 216 145) +4(215 286 287 216) +4(286 357 358 287) +4(357 428 429 358) +4(428 499 500 429) +4(499 570 571 500) +4(570 641 642 571) +4(641 712 713 642) +4(712 783 784 713) +4(783 854 855 784) +4(854 925 926 855) +4(925 996 997 926) +4(996 1067 1068 997) +4(1067 1138 1139 1068) +4(1138 1209 1210 1139) +4(1209 1280 1281 1210) +4(1280 1351 1352 1281) +4(1351 1422 1423 1352) +4(1422 1493 1494 1423) +4(1493 1564 1565 1494) +4(1564 1635 1636 1565) +4(1635 1706 1707 1636) +4(1706 1777 1778 1707) +4(1777 1848 1849 1778) +4(1848 1919 1920 1849) +4(1919 1990 1991 1920) +4(1990 2061 2062 1991) +4(2061 2132 2133 2062) +4(2132 2203 2204 2133) +4(2203 2274 2275 2204) +4(2274 2345 2346 2275) +4(2345 2416 2417 2346) +4(2416 2487 2488 2417) +4(2487 2558 2559 2488) +4(2558 2629 2630 2559) +4(2629 2700 2701 2630) +4(2700 2771 2772 2701) +4(2771 2842 2843 2772) +4(2842 2913 2914 2843) +4(2913 2984 2985 2914) +4(2984 3055 3056 2985) +4(3055 3126 3127 3056) +4(3126 3197 3198 3127) +4(3197 3268 3269 3198) +4(3268 3339 3340 3269) +4(3339 3410 3411 3340) +4(3410 3481 3482 3411) +4(3481 3552 3553 3482) +4(3 74 75 4) +4(74 145 146 75) +4(145 216 217 146) +4(216 287 288 217) +4(287 358 359 288) +4(358 429 430 359) +4(429 500 501 430) +4(500 571 572 501) +4(571 642 643 572) +4(642 713 714 643) +4(713 784 785 714) +4(784 855 856 785) +4(855 926 927 856) +4(926 997 998 927) +4(997 1068 1069 998) +4(1068 1139 1140 1069) +4(1139 1210 1211 1140) +4(1210 1281 1282 1211) +4(1281 1352 1353 1282) +4(1352 1423 1424 1353) +4(1423 1494 1495 1424) +4(1494 1565 1566 1495) +4(1565 1636 1637 1566) +4(1636 1707 1708 1637) +4(1707 1778 1779 1708) +4(1778 1849 1850 1779) +4(1849 1920 1921 1850) +4(1920 1991 1992 1921) +4(1991 2062 2063 1992) +4(2062 2133 2134 2063) +4(2133 2204 2205 2134) +4(2204 2275 2276 2205) +4(2275 2346 2347 2276) +4(2346 2417 2418 2347) +4(2417 2488 2489 2418) +4(2488 2559 2560 2489) +4(2559 2630 2631 2560) +4(2630 2701 2702 2631) +4(2701 2772 2773 2702) +4(2772 2843 2844 2773) +4(2843 2914 2915 2844) +4(2914 2985 2986 2915) +4(2985 3056 3057 2986) +4(3056 3127 3128 3057) +4(3127 3198 3199 3128) +4(3198 3269 3270 3199) +4(3269 3340 3341 3270) +4(3340 3411 3412 3341) +4(3411 3482 3483 3412) +4(3482 3553 3554 3483) +4(4 75 76 5) +4(75 146 147 76) +4(146 217 218 147) +4(217 288 289 218) +4(288 359 360 289) +4(359 430 431 360) +4(430 501 502 431) +4(501 572 573 502) +4(572 643 644 573) +4(643 714 715 644) +4(714 785 786 715) +4(785 856 857 786) +4(856 927 928 857) +4(927 998 999 928) +4(998 1069 1070 999) +4(1069 1140 1141 1070) +4(1140 1211 1212 1141) +4(1211 1282 1283 1212) +4(1282 1353 1354 1283) +4(1353 1424 1425 1354) +4(1424 1495 1496 1425) +4(1495 1566 1567 1496) +4(1566 1637 1638 1567) +4(1637 1708 1709 1638) +4(1708 1779 1780 1709) +4(1779 1850 1851 1780) +4(1850 1921 1922 1851) +4(1921 1992 1993 1922) +4(1992 2063 2064 1993) +4(2063 2134 2135 2064) +4(2134 2205 2206 2135) +4(2205 2276 2277 2206) +4(2276 2347 2348 2277) +4(2347 2418 2419 2348) +4(2418 2489 2490 2419) +4(2489 2560 2561 2490) +4(2560 2631 2632 2561) +4(2631 2702 2703 2632) +4(2702 2773 2774 2703) +4(2773 2844 2845 2774) +4(2844 2915 2916 2845) +4(2915 2986 2987 2916) +4(2986 3057 3058 2987) +4(3057 3128 3129 3058) +4(3128 3199 3200 3129) +4(3199 3270 3271 3200) +4(3270 3341 3342 3271) +4(3341 3412 3413 3342) +4(3412 3483 3484 3413) +4(3483 3554 3555 3484) +4(5 76 77 6) +4(76 147 148 77) +4(147 218 219 148) +4(218 289 290 219) +4(289 360 361 290) +4(360 431 432 361) +4(431 502 503 432) +4(502 573 574 503) +4(573 644 645 574) +4(644 715 716 645) +4(715 786 787 716) +4(786 857 858 787) +4(857 928 929 858) +4(928 999 1000 929) +4(999 1070 1071 1000) +4(1070 1141 1142 1071) +4(1141 1212 1213 1142) +4(1212 1283 1284 1213) +4(1283 1354 1355 1284) +4(1354 1425 1426 1355) +4(1425 1496 1497 1426) +4(1496 1567 1568 1497) +4(1567 1638 1639 1568) +4(1638 1709 1710 1639) +4(1709 1780 1781 1710) +4(1780 1851 1852 1781) +4(1851 1922 1923 1852) +4(1922 1993 1994 1923) +4(1993 2064 2065 1994) +4(2064 2135 2136 2065) +4(2135 2206 2207 2136) +4(2206 2277 2278 2207) +4(2277 2348 2349 2278) +4(2348 2419 2420 2349) +4(2419 2490 2491 2420) +4(2490 2561 2562 2491) +4(2561 2632 2633 2562) +4(2632 2703 2704 2633) +4(2703 2774 2775 2704) +4(2774 2845 2846 2775) +4(2845 2916 2917 2846) +4(2916 2987 2988 2917) +4(2987 3058 3059 2988) +4(3058 3129 3130 3059) +4(3129 3200 3201 3130) +4(3200 3271 3272 3201) +4(3271 3342 3343 3272) +4(3342 3413 3414 3343) +4(3413 3484 3485 3414) +4(3484 3555 3556 3485) +4(6 77 78 7) +4(77 148 149 78) +4(148 219 220 149) +4(219 290 291 220) +4(290 361 362 291) +4(361 432 433 362) +4(432 503 504 433) +4(503 574 575 504) +4(574 645 646 575) +4(645 716 717 646) +4(716 787 788 717) +4(787 858 859 788) +4(858 929 930 859) +4(929 1000 1001 930) +4(1000 1071 1072 1001) +4(1071 1142 1143 1072) +4(1142 1213 1214 1143) +4(1213 1284 1285 1214) +4(1284 1355 1356 1285) +4(1355 1426 1427 1356) +4(1426 1497 1498 1427) +4(1497 1568 1569 1498) +4(1568 1639 1640 1569) +4(1639 1710 1711 1640) +4(1710 1781 1782 1711) +4(1781 1852 1853 1782) +4(1852 1923 1924 1853) +4(1923 1994 1995 1924) +4(1994 2065 2066 1995) +4(2065 2136 2137 2066) +4(2136 2207 2208 2137) +4(2207 2278 2279 2208) +4(2278 2349 2350 2279) +4(2349 2420 2421 2350) +4(2420 2491 2492 2421) +4(2491 2562 2563 2492) +4(2562 2633 2634 2563) +4(2633 2704 2705 2634) +4(2704 2775 2776 2705) +4(2775 2846 2847 2776) +4(2846 2917 2918 2847) +4(2917 2988 2989 2918) +4(2988 3059 3060 2989) +4(3059 3130 3131 3060) +4(3130 3201 3202 3131) +4(3201 3272 3273 3202) +4(3272 3343 3344 3273) +4(3343 3414 3415 3344) +4(3414 3485 3486 3415) +4(3485 3556 3557 3486) +4(7 78 79 8) +4(78 149 150 79) +4(149 220 221 150) +4(220 291 292 221) +4(291 362 363 292) +4(362 433 434 363) +4(433 504 505 434) +4(504 575 576 505) +4(575 646 647 576) +4(646 717 718 647) +4(717 788 789 718) +4(788 859 860 789) +4(859 930 931 860) +4(930 1001 1002 931) +4(1001 1072 1073 1002) +4(1072 1143 1144 1073) +4(1143 1214 1215 1144) +4(1214 1285 1286 1215) +4(1285 1356 1357 1286) +4(1356 1427 1428 1357) +4(1427 1498 1499 1428) +4(1498 1569 1570 1499) +4(1569 1640 1641 1570) +4(1640 1711 1712 1641) +4(1711 1782 1783 1712) +4(1782 1853 1854 1783) +4(1853 1924 1925 1854) +4(1924 1995 1996 1925) +4(1995 2066 2067 1996) +4(2066 2137 2138 2067) +4(2137 2208 2209 2138) +4(2208 2279 2280 2209) +4(2279 2350 2351 2280) +4(2350 2421 2422 2351) +4(2421 2492 2493 2422) +4(2492 2563 2564 2493) +4(2563 2634 2635 2564) +4(2634 2705 2706 2635) +4(2705 2776 2777 2706) +4(2776 2847 2848 2777) +4(2847 2918 2919 2848) +4(2918 2989 2990 2919) +4(2989 3060 3061 2990) +4(3060 3131 3132 3061) +4(3131 3202 3203 3132) +4(3202 3273 3274 3203) +4(3273 3344 3345 3274) +4(3344 3415 3416 3345) +4(3415 3486 3487 3416) +4(3486 3557 3558 3487) +4(8 79 80 9) +4(79 150 151 80) +4(150 221 222 151) +4(221 292 293 222) +4(292 363 364 293) +4(363 434 435 364) +4(434 505 506 435) +4(505 576 577 506) +4(576 647 648 577) +4(647 718 719 648) +4(718 789 790 719) +4(789 860 861 790) +4(860 931 932 861) +4(931 1002 1003 932) +4(1002 1073 1074 1003) +4(1073 1144 1145 1074) +4(1144 1215 1216 1145) +4(1215 1286 1287 1216) +4(1286 1357 1358 1287) +4(1357 1428 1429 1358) +4(1428 1499 1500 1429) +4(1499 1570 1571 1500) +4(1570 1641 1642 1571) +4(1641 1712 1713 1642) +4(1712 1783 1784 1713) +4(1783 1854 1855 1784) +4(1854 1925 1926 1855) +4(1925 1996 1997 1926) +4(1996 2067 2068 1997) +4(2067 2138 2139 2068) +4(2138 2209 2210 2139) +4(2209 2280 2281 2210) +4(2280 2351 2352 2281) +4(2351 2422 2423 2352) +4(2422 2493 2494 2423) +4(2493 2564 2565 2494) +4(2564 2635 2636 2565) +4(2635 2706 2707 2636) +4(2706 2777 2778 2707) +4(2777 2848 2849 2778) +4(2848 2919 2920 2849) +4(2919 2990 2991 2920) +4(2990 3061 3062 2991) +4(3061 3132 3133 3062) +4(3132 3203 3204 3133) +4(3203 3274 3275 3204) +4(3274 3345 3346 3275) +4(3345 3416 3417 3346) +4(3416 3487 3488 3417) +4(3487 3558 3559 3488) +4(9 80 81 10) +4(80 151 152 81) +4(151 222 223 152) +4(222 293 294 223) +4(293 364 365 294) +4(364 435 436 365) +4(435 506 507 436) +4(506 577 578 507) +4(577 648 649 578) +4(648 719 720 649) +4(719 790 791 720) +4(790 861 862 791) +4(861 932 933 862) +4(932 1003 1004 933) +4(1003 1074 1075 1004) +4(1074 1145 1146 1075) +4(1145 1216 1217 1146) +4(1216 1287 1288 1217) +4(1287 1358 1359 1288) +4(1358 1429 1430 1359) +4(1429 1500 1501 1430) +4(1500 1571 1572 1501) +4(1571 1642 1643 1572) +4(1642 1713 1714 1643) +4(1713 1784 1785 1714) +4(1784 1855 1856 1785) +4(1855 1926 1927 1856) +4(1926 1997 1998 1927) +4(1997 2068 2069 1998) +4(2068 2139 2140 2069) +4(2139 2210 2211 2140) +4(2210 2281 2282 2211) +4(2281 2352 2353 2282) +4(2352 2423 2424 2353) +4(2423 2494 2495 2424) +4(2494 2565 2566 2495) +4(2565 2636 2637 2566) +4(2636 2707 2708 2637) +4(2707 2778 2779 2708) +4(2778 2849 2850 2779) +4(2849 2920 2921 2850) +4(2920 2991 2992 2921) +4(2991 3062 3063 2992) +4(3062 3133 3134 3063) +4(3133 3204 3205 3134) +4(3204 3275 3276 3205) +4(3275 3346 3347 3276) +4(3346 3417 3418 3347) +4(3417 3488 3489 3418) +4(3488 3559 3560 3489) +4(10 81 82 11) +4(81 152 153 82) +4(152 223 224 153) +4(223 294 295 224) +4(294 365 366 295) +4(365 436 437 366) +4(436 507 508 437) +4(507 578 579 508) +4(578 649 650 579) +4(649 720 721 650) +4(720 791 792 721) +4(791 862 863 792) +4(862 933 934 863) +4(933 1004 1005 934) +4(1004 1075 1076 1005) +4(1075 1146 1147 1076) +4(1146 1217 1218 1147) +4(1217 1288 1289 1218) +4(1288 1359 1360 1289) +4(1359 1430 1431 1360) +4(1430 1501 1502 1431) +4(1501 1572 1573 1502) +4(1572 1643 1644 1573) +4(1643 1714 1715 1644) +4(1714 1785 1786 1715) +4(1785 1856 1857 1786) +4(1856 1927 1928 1857) +4(1927 1998 1999 1928) +4(1998 2069 2070 1999) +4(2069 2140 2141 2070) +4(2140 2211 2212 2141) +4(2211 2282 2283 2212) +4(2282 2353 2354 2283) +4(2353 2424 2425 2354) +4(2424 2495 2496 2425) +4(2495 2566 2567 2496) +4(2566 2637 2638 2567) +4(2637 2708 2709 2638) +4(2708 2779 2780 2709) +4(2779 2850 2851 2780) +4(2850 2921 2922 2851) +4(2921 2992 2993 2922) +4(2992 3063 3064 2993) +4(3063 3134 3135 3064) +4(3134 3205 3206 3135) +4(3205 3276 3277 3206) +4(3276 3347 3348 3277) +4(3347 3418 3419 3348) +4(3418 3489 3490 3419) +4(3489 3560 3561 3490) +4(11 82 83 12) +4(82 153 154 83) +4(153 224 225 154) +4(224 295 296 225) +4(295 366 367 296) +4(366 437 438 367) +4(437 508 509 438) +4(508 579 580 509) +4(579 650 651 580) +4(650 721 722 651) +4(721 792 793 722) +4(792 863 864 793) +4(863 934 935 864) +4(934 1005 1006 935) +4(1005 1076 1077 1006) +4(1076 1147 1148 1077) +4(1147 1218 1219 1148) +4(1218 1289 1290 1219) +4(1289 1360 1361 1290) +4(1360 1431 1432 1361) +4(1431 1502 1503 1432) +4(1502 1573 1574 1503) +4(1573 1644 1645 1574) +4(1644 1715 1716 1645) +4(1715 1786 1787 1716) +4(1786 1857 1858 1787) +4(1857 1928 1929 1858) +4(1928 1999 2000 1929) +4(1999 2070 2071 2000) +4(2070 2141 2142 2071) +4(2141 2212 2213 2142) +4(2212 2283 2284 2213) +4(2283 2354 2355 2284) +4(2354 2425 2426 2355) +4(2425 2496 2497 2426) +4(2496 2567 2568 2497) +4(2567 2638 2639 2568) +4(2638 2709 2710 2639) +4(2709 2780 2781 2710) +4(2780 2851 2852 2781) +4(2851 2922 2923 2852) +4(2922 2993 2994 2923) +4(2993 3064 3065 2994) +4(3064 3135 3136 3065) +4(3135 3206 3207 3136) +4(3206 3277 3278 3207) +4(3277 3348 3349 3278) +4(3348 3419 3420 3349) +4(3419 3490 3491 3420) +4(3490 3561 3562 3491) +4(12 83 84 13) +4(83 154 155 84) +4(154 225 226 155) +4(225 296 297 226) +4(296 367 368 297) +4(367 438 439 368) +4(438 509 510 439) +4(509 580 581 510) +4(580 651 652 581) +4(651 722 723 652) +4(722 793 794 723) +4(793 864 865 794) +4(864 935 936 865) +4(935 1006 1007 936) +4(1006 1077 1078 1007) +4(1077 1148 1149 1078) +4(1148 1219 1220 1149) +4(1219 1290 1291 1220) +4(1290 1361 1362 1291) +4(1361 1432 1433 1362) +4(1432 1503 1504 1433) +4(1503 1574 1575 1504) +4(1574 1645 1646 1575) +4(1645 1716 1717 1646) +4(1716 1787 1788 1717) +4(1787 1858 1859 1788) +4(1858 1929 1930 1859) +4(1929 2000 2001 1930) +4(2000 2071 2072 2001) +4(2071 2142 2143 2072) +4(2142 2213 2214 2143) +4(2213 2284 2285 2214) +4(2284 2355 2356 2285) +4(2355 2426 2427 2356) +4(2426 2497 2498 2427) +4(2497 2568 2569 2498) +4(2568 2639 2640 2569) +4(2639 2710 2711 2640) +4(2710 2781 2782 2711) +4(2781 2852 2853 2782) +4(2852 2923 2924 2853) +4(2923 2994 2995 2924) +4(2994 3065 3066 2995) +4(3065 3136 3137 3066) +4(3136 3207 3208 3137) +4(3207 3278 3279 3208) +4(3278 3349 3350 3279) +4(3349 3420 3421 3350) +4(3420 3491 3492 3421) +4(3491 3562 3563 3492) +4(13 84 85 14) +4(84 155 156 85) +4(155 226 227 156) +4(226 297 298 227) +4(297 368 369 298) +4(368 439 440 369) +4(439 510 511 440) +4(510 581 582 511) +4(581 652 653 582) +4(652 723 724 653) +4(723 794 795 724) +4(794 865 866 795) +4(865 936 937 866) +4(936 1007 1008 937) +4(1007 1078 1079 1008) +4(1078 1149 1150 1079) +4(1149 1220 1221 1150) +4(1220 1291 1292 1221) +4(1291 1362 1363 1292) +4(1362 1433 1434 1363) +4(1433 1504 1505 1434) +4(1504 1575 1576 1505) +4(1575 1646 1647 1576) +4(1646 1717 1718 1647) +4(1717 1788 1789 1718) +4(1788 1859 1860 1789) +4(1859 1930 1931 1860) +4(1930 2001 2002 1931) +4(2001 2072 2073 2002) +4(2072 2143 2144 2073) +4(2143 2214 2215 2144) +4(2214 2285 2286 2215) +4(2285 2356 2357 2286) +4(2356 2427 2428 2357) +4(2427 2498 2499 2428) +4(2498 2569 2570 2499) +4(2569 2640 2641 2570) +4(2640 2711 2712 2641) +4(2711 2782 2783 2712) +4(2782 2853 2854 2783) +4(2853 2924 2925 2854) +4(2924 2995 2996 2925) +4(2995 3066 3067 2996) +4(3066 3137 3138 3067) +4(3137 3208 3209 3138) +4(3208 3279 3280 3209) +4(3279 3350 3351 3280) +4(3350 3421 3422 3351) +4(3421 3492 3493 3422) +4(3492 3563 3564 3493) +4(14 85 86 15) +4(85 156 157 86) +4(156 227 228 157) +4(227 298 299 228) +4(298 369 370 299) +4(369 440 441 370) +4(440 511 512 441) +4(511 582 583 512) +4(582 653 654 583) +4(653 724 725 654) +4(724 795 796 725) +4(795 866 867 796) +4(866 937 938 867) +4(937 1008 1009 938) +4(1008 1079 1080 1009) +4(1079 1150 1151 1080) +4(1150 1221 1222 1151) +4(1221 1292 1293 1222) +4(1292 1363 1364 1293) +4(1363 1434 1435 1364) +4(1434 1505 1506 1435) +4(1505 1576 1577 1506) +4(1576 1647 1648 1577) +4(1647 1718 1719 1648) +4(1718 1789 1790 1719) +4(1789 1860 1861 1790) +4(1860 1931 1932 1861) +4(1931 2002 2003 1932) +4(2002 2073 2074 2003) +4(2073 2144 2145 2074) +4(2144 2215 2216 2145) +4(2215 2286 2287 2216) +4(2286 2357 2358 2287) +4(2357 2428 2429 2358) +4(2428 2499 2500 2429) +4(2499 2570 2571 2500) +4(2570 2641 2642 2571) +4(2641 2712 2713 2642) +4(2712 2783 2784 2713) +4(2783 2854 2855 2784) +4(2854 2925 2926 2855) +4(2925 2996 2997 2926) +4(2996 3067 3068 2997) +4(3067 3138 3139 3068) +4(3138 3209 3210 3139) +4(3209 3280 3281 3210) +4(3280 3351 3352 3281) +4(3351 3422 3423 3352) +4(3422 3493 3494 3423) +4(3493 3564 3565 3494) +4(15 86 87 16) +4(86 157 158 87) +4(157 228 229 158) +4(228 299 300 229) +4(299 370 371 300) +4(370 441 442 371) +4(441 512 513 442) +4(512 583 584 513) +4(583 654 655 584) +4(654 725 726 655) +4(725 796 797 726) +4(796 867 868 797) +4(867 938 939 868) +4(938 1009 1010 939) +4(1009 1080 1081 1010) +4(1080 1151 1152 1081) +4(1151 1222 1223 1152) +4(1222 1293 1294 1223) +4(1293 1364 1365 1294) +4(1364 1435 1436 1365) +4(1435 1506 1507 1436) +4(1506 1577 1578 1507) +4(1577 1648 1649 1578) +4(1648 1719 1720 1649) +4(1719 1790 1791 1720) +4(1790 1861 1862 1791) +4(1861 1932 1933 1862) +4(1932 2003 2004 1933) +4(2003 2074 2075 2004) +4(2074 2145 2146 2075) +4(2145 2216 2217 2146) +4(2216 2287 2288 2217) +4(2287 2358 2359 2288) +4(2358 2429 2430 2359) +4(2429 2500 2501 2430) +4(2500 2571 2572 2501) +4(2571 2642 2643 2572) +4(2642 2713 2714 2643) +4(2713 2784 2785 2714) +4(2784 2855 2856 2785) +4(2855 2926 2927 2856) +4(2926 2997 2998 2927) +4(2997 3068 3069 2998) +4(3068 3139 3140 3069) +4(3139 3210 3211 3140) +4(3210 3281 3282 3211) +4(3281 3352 3353 3282) +4(3352 3423 3424 3353) +4(3423 3494 3495 3424) +4(3494 3565 3566 3495) +4(16 87 88 17) +4(87 158 159 88) +4(158 229 230 159) +4(229 300 301 230) +4(300 371 372 301) +4(371 442 443 372) +4(442 513 514 443) +4(513 584 585 514) +4(584 655 656 585) +4(655 726 727 656) +4(726 797 798 727) +4(797 868 869 798) +4(868 939 940 869) +4(939 1010 1011 940) +4(1010 1081 1082 1011) +4(1081 1152 1153 1082) +4(1152 1223 1224 1153) +4(1223 1294 1295 1224) +4(1294 1365 1366 1295) +4(1365 1436 1437 1366) +4(1436 1507 1508 1437) +4(1507 1578 1579 1508) +4(1578 1649 1650 1579) +4(1649 1720 1721 1650) +4(1720 1791 1792 1721) +4(1791 1862 1863 1792) +4(1862 1933 1934 1863) +4(1933 2004 2005 1934) +4(2004 2075 2076 2005) +4(2075 2146 2147 2076) +4(2146 2217 2218 2147) +4(2217 2288 2289 2218) +4(2288 2359 2360 2289) +4(2359 2430 2431 2360) +4(2430 2501 2502 2431) +4(2501 2572 2573 2502) +4(2572 2643 2644 2573) +4(2643 2714 2715 2644) +4(2714 2785 2786 2715) +4(2785 2856 2857 2786) +4(2856 2927 2928 2857) +4(2927 2998 2999 2928) +4(2998 3069 3070 2999) +4(3069 3140 3141 3070) +4(3140 3211 3212 3141) +4(3211 3282 3283 3212) +4(3282 3353 3354 3283) +4(3353 3424 3425 3354) +4(3424 3495 3496 3425) +4(3495 3566 3567 3496) +4(17 88 89 18) +4(88 159 160 89) +4(159 230 231 160) +4(230 301 302 231) +4(301 372 373 302) +4(372 443 444 373) +4(443 514 515 444) +4(514 585 586 515) +4(585 656 657 586) +4(656 727 728 657) +4(727 798 799 728) +4(798 869 870 799) +4(869 940 941 870) +4(940 1011 1012 941) +4(1011 1082 1083 1012) +4(1082 1153 1154 1083) +4(1153 1224 1225 1154) +4(1224 1295 1296 1225) +4(1295 1366 1367 1296) +4(1366 1437 1438 1367) +4(1437 1508 1509 1438) +4(1508 1579 1580 1509) +4(1579 1650 1651 1580) +4(1650 1721 1722 1651) +4(1721 1792 1793 1722) +4(1792 1863 1864 1793) +4(1863 1934 1935 1864) +4(1934 2005 2006 1935) +4(2005 2076 2077 2006) +4(2076 2147 2148 2077) +4(2147 2218 2219 2148) +4(2218 2289 2290 2219) +4(2289 2360 2361 2290) +4(2360 2431 2432 2361) +4(2431 2502 2503 2432) +4(2502 2573 2574 2503) +4(2573 2644 2645 2574) +4(2644 2715 2716 2645) +4(2715 2786 2787 2716) +4(2786 2857 2858 2787) +4(2857 2928 2929 2858) +4(2928 2999 3000 2929) +4(2999 3070 3071 3000) +4(3070 3141 3142 3071) +4(3141 3212 3213 3142) +4(3212 3283 3284 3213) +4(3283 3354 3355 3284) +4(3354 3425 3426 3355) +4(3425 3496 3497 3426) +4(3496 3567 3568 3497) +4(18 89 90 19) +4(89 160 161 90) +4(160 231 232 161) +4(231 302 303 232) +4(302 373 374 303) +4(373 444 445 374) +4(444 515 516 445) +4(515 586 587 516) +4(586 657 658 587) +4(657 728 729 658) +4(728 799 800 729) +4(799 870 871 800) +4(870 941 942 871) +4(941 1012 1013 942) +4(1012 1083 1084 1013) +4(1083 1154 1155 1084) +4(1154 1225 1226 1155) +4(1225 1296 1297 1226) +4(1296 1367 1368 1297) +4(1367 1438 1439 1368) +4(1438 1509 1510 1439) +4(1509 1580 1581 1510) +4(1580 1651 1652 1581) +4(1651 1722 1723 1652) +4(1722 1793 1794 1723) +4(1793 1864 1865 1794) +4(1864 1935 1936 1865) +4(1935 2006 2007 1936) +4(2006 2077 2078 2007) +4(2077 2148 2149 2078) +4(2148 2219 2220 2149) +4(2219 2290 2291 2220) +4(2290 2361 2362 2291) +4(2361 2432 2433 2362) +4(2432 2503 2504 2433) +4(2503 2574 2575 2504) +4(2574 2645 2646 2575) +4(2645 2716 2717 2646) +4(2716 2787 2788 2717) +4(2787 2858 2859 2788) +4(2858 2929 2930 2859) +4(2929 3000 3001 2930) +4(3000 3071 3072 3001) +4(3071 3142 3143 3072) +4(3142 3213 3214 3143) +4(3213 3284 3285 3214) +4(3284 3355 3356 3285) +4(3355 3426 3427 3356) +4(3426 3497 3498 3427) +4(3497 3568 3569 3498) +4(19 90 91 20) +4(90 161 162 91) +4(161 232 233 162) +4(232 303 304 233) +4(303 374 375 304) +4(374 445 446 375) +4(445 516 517 446) +4(516 587 588 517) +4(587 658 659 588) +4(658 729 730 659) +4(729 800 801 730) +4(800 871 872 801) +4(871 942 943 872) +4(942 1013 1014 943) +4(1013 1084 1085 1014) +4(1084 1155 1156 1085) +4(1155 1226 1227 1156) +4(1226 1297 1298 1227) +4(1297 1368 1369 1298) +4(1368 1439 1440 1369) +4(1439 1510 1511 1440) +4(1510 1581 1582 1511) +4(1581 1652 1653 1582) +4(1652 1723 1724 1653) +4(1723 1794 1795 1724) +4(1794 1865 1866 1795) +4(1865 1936 1937 1866) +4(1936 2007 2008 1937) +4(2007 2078 2079 2008) +4(2078 2149 2150 2079) +4(2149 2220 2221 2150) +4(2220 2291 2292 2221) +4(2291 2362 2363 2292) +4(2362 2433 2434 2363) +4(2433 2504 2505 2434) +4(2504 2575 2576 2505) +4(2575 2646 2647 2576) +4(2646 2717 2718 2647) +4(2717 2788 2789 2718) +4(2788 2859 2860 2789) +4(2859 2930 2931 2860) +4(2930 3001 3002 2931) +4(3001 3072 3073 3002) +4(3072 3143 3144 3073) +4(3143 3214 3215 3144) +4(3214 3285 3286 3215) +4(3285 3356 3357 3286) +4(3356 3427 3428 3357) +4(3427 3498 3499 3428) +4(3498 3569 3570 3499) +4(20 91 92 21) +4(91 162 163 92) +4(162 233 234 163) +4(233 304 305 234) +4(304 375 376 305) +4(375 446 447 376) +4(446 517 518 447) +4(517 588 589 518) +4(588 659 660 589) +4(659 730 731 660) +4(730 801 802 731) +4(801 872 873 802) +4(872 943 944 873) +4(943 1014 1015 944) +4(1014 1085 1086 1015) +4(1085 1156 1157 1086) +4(1156 1227 1228 1157) +4(1227 1298 1299 1228) +4(1298 1369 1370 1299) +4(1369 1440 1441 1370) +4(1440 1511 1512 1441) +4(1511 1582 1583 1512) +4(1582 1653 1654 1583) +4(1653 1724 1725 1654) +4(1724 1795 1796 1725) +4(1795 1866 1867 1796) +4(1866 1937 1938 1867) +4(1937 2008 2009 1938) +4(2008 2079 2080 2009) +4(2079 2150 2151 2080) +4(2150 2221 2222 2151) +4(2221 2292 2293 2222) +4(2292 2363 2364 2293) +4(2363 2434 2435 2364) +4(2434 2505 2506 2435) +4(2505 2576 2577 2506) +4(2576 2647 2648 2577) +4(2647 2718 2719 2648) +4(2718 2789 2790 2719) +4(2789 2860 2861 2790) +4(2860 2931 2932 2861) +4(2931 3002 3003 2932) +4(3002 3073 3074 3003) +4(3073 3144 3145 3074) +4(3144 3215 3216 3145) +4(3215 3286 3287 3216) +4(3286 3357 3358 3287) +4(3357 3428 3429 3358) +4(3428 3499 3500 3429) +4(3499 3570 3571 3500) +4(21 92 93 22) +4(92 163 164 93) +4(163 234 235 164) +4(234 305 306 235) +4(305 376 377 306) +4(376 447 448 377) +4(447 518 519 448) +4(518 589 590 519) +4(589 660 661 590) +4(660 731 732 661) +4(731 802 803 732) +4(802 873 874 803) +4(873 944 945 874) +4(944 1015 1016 945) +4(1015 1086 1087 1016) +4(1086 1157 1158 1087) +4(1157 1228 1229 1158) +4(1228 1299 1300 1229) +4(1299 1370 1371 1300) +4(1370 1441 1442 1371) +4(1441 1512 1513 1442) +4(1512 1583 1584 1513) +4(1583 1654 1655 1584) +4(1654 1725 1726 1655) +4(1725 1796 1797 1726) +4(1796 1867 1868 1797) +4(1867 1938 1939 1868) +4(1938 2009 2010 1939) +4(2009 2080 2081 2010) +4(2080 2151 2152 2081) +4(2151 2222 2223 2152) +4(2222 2293 2294 2223) +4(2293 2364 2365 2294) +4(2364 2435 2436 2365) +4(2435 2506 2507 2436) +4(2506 2577 2578 2507) +4(2577 2648 2649 2578) +4(2648 2719 2720 2649) +4(2719 2790 2791 2720) +4(2790 2861 2862 2791) +4(2861 2932 2933 2862) +4(2932 3003 3004 2933) +4(3003 3074 3075 3004) +4(3074 3145 3146 3075) +4(3145 3216 3217 3146) +4(3216 3287 3288 3217) +4(3287 3358 3359 3288) +4(3358 3429 3430 3359) +4(3429 3500 3501 3430) +4(3500 3571 3572 3501) +4(22 93 94 23) +4(93 164 165 94) +4(164 235 236 165) +4(235 306 307 236) +4(306 377 378 307) +4(377 448 449 378) +4(448 519 520 449) +4(519 590 591 520) +4(590 661 662 591) +4(661 732 733 662) +4(732 803 804 733) +4(803 874 875 804) +4(874 945 946 875) +4(945 1016 1017 946) +4(1016 1087 1088 1017) +4(1087 1158 1159 1088) +4(1158 1229 1230 1159) +4(1229 1300 1301 1230) +4(1300 1371 1372 1301) +4(1371 1442 1443 1372) +4(1442 1513 1514 1443) +4(1513 1584 1585 1514) +4(1584 1655 1656 1585) +4(1655 1726 1727 1656) +4(1726 1797 1798 1727) +4(1797 1868 1869 1798) +4(1868 1939 1940 1869) +4(1939 2010 2011 1940) +4(2010 2081 2082 2011) +4(2081 2152 2153 2082) +4(2152 2223 2224 2153) +4(2223 2294 2295 2224) +4(2294 2365 2366 2295) +4(2365 2436 2437 2366) +4(2436 2507 2508 2437) +4(2507 2578 2579 2508) +4(2578 2649 2650 2579) +4(2649 2720 2721 2650) +4(2720 2791 2792 2721) +4(2791 2862 2863 2792) +4(2862 2933 2934 2863) +4(2933 3004 3005 2934) +4(3004 3075 3076 3005) +4(3075 3146 3147 3076) +4(3146 3217 3218 3147) +4(3217 3288 3289 3218) +4(3288 3359 3360 3289) +4(3359 3430 3431 3360) +4(3430 3501 3502 3431) +4(3501 3572 3573 3502) +4(23 94 95 24) +4(94 165 166 95) +4(165 236 237 166) +4(236 307 308 237) +4(307 378 379 308) +4(378 449 450 379) +4(449 520 521 450) +4(520 591 592 521) +4(591 662 663 592) +4(662 733 734 663) +4(733 804 805 734) +4(804 875 876 805) +4(875 946 947 876) +4(946 1017 1018 947) +4(1017 1088 1089 1018) +4(1088 1159 1160 1089) +4(1159 1230 1231 1160) +4(1230 1301 1302 1231) +4(1301 1372 1373 1302) +4(1372 1443 1444 1373) +4(1443 1514 1515 1444) +4(1514 1585 1586 1515) +4(1585 1656 1657 1586) +4(1656 1727 1728 1657) +4(1727 1798 1799 1728) +4(1798 1869 1870 1799) +4(1869 1940 1941 1870) +4(1940 2011 2012 1941) +4(2011 2082 2083 2012) +4(2082 2153 2154 2083) +4(2153 2224 2225 2154) +4(2224 2295 2296 2225) +4(2295 2366 2367 2296) +4(2366 2437 2438 2367) +4(2437 2508 2509 2438) +4(2508 2579 2580 2509) +4(2579 2650 2651 2580) +4(2650 2721 2722 2651) +4(2721 2792 2793 2722) +4(2792 2863 2864 2793) +4(2863 2934 2935 2864) +4(2934 3005 3006 2935) +4(3005 3076 3077 3006) +4(3076 3147 3148 3077) +4(3147 3218 3219 3148) +4(3218 3289 3290 3219) +4(3289 3360 3361 3290) +4(3360 3431 3432 3361) +4(3431 3502 3503 3432) +4(3502 3573 3574 3503) +4(24 95 96 25) +4(95 166 167 96) +4(166 237 238 167) +4(237 308 309 238) +4(308 379 380 309) +4(379 450 451 380) +4(450 521 522 451) +4(521 592 593 522) +4(592 663 664 593) +4(663 734 735 664) +4(734 805 806 735) +4(805 876 877 806) +4(876 947 948 877) +4(947 1018 1019 948) +4(1018 1089 1090 1019) +4(1089 1160 1161 1090) +4(1160 1231 1232 1161) +4(1231 1302 1303 1232) +4(1302 1373 1374 1303) +4(1373 1444 1445 1374) +4(1444 1515 1516 1445) +4(1515 1586 1587 1516) +4(1586 1657 1658 1587) +4(1657 1728 1729 1658) +4(1728 1799 1800 1729) +4(1799 1870 1871 1800) +4(1870 1941 1942 1871) +4(1941 2012 2013 1942) +4(2012 2083 2084 2013) +4(2083 2154 2155 2084) +4(2154 2225 2226 2155) +4(2225 2296 2297 2226) +4(2296 2367 2368 2297) +4(2367 2438 2439 2368) +4(2438 2509 2510 2439) +4(2509 2580 2581 2510) +4(2580 2651 2652 2581) +4(2651 2722 2723 2652) +4(2722 2793 2794 2723) +4(2793 2864 2865 2794) +4(2864 2935 2936 2865) +4(2935 3006 3007 2936) +4(3006 3077 3078 3007) +4(3077 3148 3149 3078) +4(3148 3219 3220 3149) +4(3219 3290 3291 3220) +4(3290 3361 3362 3291) +4(3361 3432 3433 3362) +4(3432 3503 3504 3433) +4(3503 3574 3575 3504) +4(25 96 97 26) +4(96 167 168 97) +4(167 238 239 168) +4(238 309 310 239) +4(309 380 381 310) +4(380 451 452 381) +4(451 522 523 452) +4(522 593 594 523) +4(593 664 665 594) +4(664 735 736 665) +4(735 806 807 736) +4(806 877 878 807) +4(877 948 949 878) +4(948 1019 1020 949) +4(1019 1090 1091 1020) +4(1090 1161 1162 1091) +4(1161 1232 1233 1162) +4(1232 1303 1304 1233) +4(1303 1374 1375 1304) +4(1374 1445 1446 1375) +4(1445 1516 1517 1446) +4(1516 1587 1588 1517) +4(1587 1658 1659 1588) +4(1658 1729 1730 1659) +4(1729 1800 1801 1730) +4(1800 1871 1872 1801) +4(1871 1942 1943 1872) +4(1942 2013 2014 1943) +4(2013 2084 2085 2014) +4(2084 2155 2156 2085) +4(2155 2226 2227 2156) +4(2226 2297 2298 2227) +4(2297 2368 2369 2298) +4(2368 2439 2440 2369) +4(2439 2510 2511 2440) +4(2510 2581 2582 2511) +4(2581 2652 2653 2582) +4(2652 2723 2724 2653) +4(2723 2794 2795 2724) +4(2794 2865 2866 2795) +4(2865 2936 2937 2866) +4(2936 3007 3008 2937) +4(3007 3078 3079 3008) +4(3078 3149 3150 3079) +4(3149 3220 3221 3150) +4(3220 3291 3292 3221) +4(3291 3362 3363 3292) +4(3362 3433 3434 3363) +4(3433 3504 3505 3434) +4(3504 3575 3576 3505) +4(26 97 98 27) +4(97 168 169 98) +4(168 239 240 169) +4(239 310 311 240) +4(310 381 382 311) +4(381 452 453 382) +4(452 523 524 453) +4(523 594 595 524) +4(594 665 666 595) +4(665 736 737 666) +4(736 807 808 737) +4(807 878 879 808) +4(878 949 950 879) +4(949 1020 1021 950) +4(1020 1091 1092 1021) +4(1091 1162 1163 1092) +4(1162 1233 1234 1163) +4(1233 1304 1305 1234) +4(1304 1375 1376 1305) +4(1375 1446 1447 1376) +4(1446 1517 1518 1447) +4(1517 1588 1589 1518) +4(1588 1659 1660 1589) +4(1659 1730 1731 1660) +4(1730 1801 1802 1731) +4(1801 1872 1873 1802) +4(1872 1943 1944 1873) +4(1943 2014 2015 1944) +4(2014 2085 2086 2015) +4(2085 2156 2157 2086) +4(2156 2227 2228 2157) +4(2227 2298 2299 2228) +4(2298 2369 2370 2299) +4(2369 2440 2441 2370) +4(2440 2511 2512 2441) +4(2511 2582 2583 2512) +4(2582 2653 2654 2583) +4(2653 2724 2725 2654) +4(2724 2795 2796 2725) +4(2795 2866 2867 2796) +4(2866 2937 2938 2867) +4(2937 3008 3009 2938) +4(3008 3079 3080 3009) +4(3079 3150 3151 3080) +4(3150 3221 3222 3151) +4(3221 3292 3293 3222) +4(3292 3363 3364 3293) +4(3363 3434 3435 3364) +4(3434 3505 3506 3435) +4(3505 3576 3577 3506) +4(27 98 99 28) +4(98 169 170 99) +4(169 240 241 170) +4(240 311 312 241) +4(311 382 383 312) +4(382 453 454 383) +4(453 524 525 454) +4(524 595 596 525) +4(595 666 667 596) +4(666 737 738 667) +4(737 808 809 738) +4(808 879 880 809) +4(879 950 951 880) +4(950 1021 1022 951) +4(1021 1092 1093 1022) +4(1092 1163 1164 1093) +4(1163 1234 1235 1164) +4(1234 1305 1306 1235) +4(1305 1376 1377 1306) +4(1376 1447 1448 1377) +4(1447 1518 1519 1448) +4(1518 1589 1590 1519) +4(1589 1660 1661 1590) +4(1660 1731 1732 1661) +4(1731 1802 1803 1732) +4(1802 1873 1874 1803) +4(1873 1944 1945 1874) +4(1944 2015 2016 1945) +4(2015 2086 2087 2016) +4(2086 2157 2158 2087) +4(2157 2228 2229 2158) +4(2228 2299 2300 2229) +4(2299 2370 2371 2300) +4(2370 2441 2442 2371) +4(2441 2512 2513 2442) +4(2512 2583 2584 2513) +4(2583 2654 2655 2584) +4(2654 2725 2726 2655) +4(2725 2796 2797 2726) +4(2796 2867 2868 2797) +4(2867 2938 2939 2868) +4(2938 3009 3010 2939) +4(3009 3080 3081 3010) +4(3080 3151 3152 3081) +4(3151 3222 3223 3152) +4(3222 3293 3294 3223) +4(3293 3364 3365 3294) +4(3364 3435 3436 3365) +4(3435 3506 3507 3436) +4(3506 3577 3578 3507) +4(28 99 100 29) +4(99 170 171 100) +4(170 241 242 171) +4(241 312 313 242) +4(312 383 384 313) +4(383 454 455 384) +4(454 525 526 455) +4(525 596 597 526) +4(596 667 668 597) +4(667 738 739 668) +4(738 809 810 739) +4(809 880 881 810) +4(880 951 952 881) +4(951 1022 1023 952) +4(1022 1093 1094 1023) +4(1093 1164 1165 1094) +4(1164 1235 1236 1165) +4(1235 1306 1307 1236) +4(1306 1377 1378 1307) +4(1377 1448 1449 1378) +4(1448 1519 1520 1449) +4(1519 1590 1591 1520) +4(1590 1661 1662 1591) +4(1661 1732 1733 1662) +4(1732 1803 1804 1733) +4(1803 1874 1875 1804) +4(1874 1945 1946 1875) +4(1945 2016 2017 1946) +4(2016 2087 2088 2017) +4(2087 2158 2159 2088) +4(2158 2229 2230 2159) +4(2229 2300 2301 2230) +4(2300 2371 2372 2301) +4(2371 2442 2443 2372) +4(2442 2513 2514 2443) +4(2513 2584 2585 2514) +4(2584 2655 2656 2585) +4(2655 2726 2727 2656) +4(2726 2797 2798 2727) +4(2797 2868 2869 2798) +4(2868 2939 2940 2869) +4(2939 3010 3011 2940) +4(3010 3081 3082 3011) +4(3081 3152 3153 3082) +4(3152 3223 3224 3153) +4(3223 3294 3295 3224) +4(3294 3365 3366 3295) +4(3365 3436 3437 3366) +4(3436 3507 3508 3437) +4(3507 3578 3579 3508) +4(29 100 101 30) +4(100 171 172 101) +4(171 242 243 172) +4(242 313 314 243) +4(313 384 385 314) +4(384 455 456 385) +4(455 526 527 456) +4(526 597 598 527) +4(597 668 669 598) +4(668 739 740 669) +4(739 810 811 740) +4(810 881 882 811) +4(881 952 953 882) +4(952 1023 1024 953) +4(1023 1094 1095 1024) +4(1094 1165 1166 1095) +4(1165 1236 1237 1166) +4(1236 1307 1308 1237) +4(1307 1378 1379 1308) +4(1378 1449 1450 1379) +4(1449 1520 1521 1450) +4(1520 1591 1592 1521) +4(1591 1662 1663 1592) +4(1662 1733 1734 1663) +4(1733 1804 1805 1734) +4(1804 1875 1876 1805) +4(1875 1946 1947 1876) +4(1946 2017 2018 1947) +4(2017 2088 2089 2018) +4(2088 2159 2160 2089) +4(2159 2230 2231 2160) +4(2230 2301 2302 2231) +4(2301 2372 2373 2302) +4(2372 2443 2444 2373) +4(2443 2514 2515 2444) +4(2514 2585 2586 2515) +4(2585 2656 2657 2586) +4(2656 2727 2728 2657) +4(2727 2798 2799 2728) +4(2798 2869 2870 2799) +4(2869 2940 2941 2870) +4(2940 3011 3012 2941) +4(3011 3082 3083 3012) +4(3082 3153 3154 3083) +4(3153 3224 3225 3154) +4(3224 3295 3296 3225) +4(3295 3366 3367 3296) +4(3366 3437 3438 3367) +4(3437 3508 3509 3438) +4(3508 3579 3580 3509) +4(30 101 102 31) +4(101 172 173 102) +4(172 243 244 173) +4(243 314 315 244) +4(314 385 386 315) +4(385 456 457 386) +4(456 527 528 457) +4(527 598 599 528) +4(598 669 670 599) +4(669 740 741 670) +4(740 811 812 741) +4(811 882 883 812) +4(882 953 954 883) +4(953 1024 1025 954) +4(1024 1095 1096 1025) +4(1095 1166 1167 1096) +4(1166 1237 1238 1167) +4(1237 1308 1309 1238) +4(1308 1379 1380 1309) +4(1379 1450 1451 1380) +4(1450 1521 1522 1451) +4(1521 1592 1593 1522) +4(1592 1663 1664 1593) +4(1663 1734 1735 1664) +4(1734 1805 1806 1735) +4(1805 1876 1877 1806) +4(1876 1947 1948 1877) +4(1947 2018 2019 1948) +4(2018 2089 2090 2019) +4(2089 2160 2161 2090) +4(2160 2231 2232 2161) +4(2231 2302 2303 2232) +4(2302 2373 2374 2303) +4(2373 2444 2445 2374) +4(2444 2515 2516 2445) +4(2515 2586 2587 2516) +4(2586 2657 2658 2587) +4(2657 2728 2729 2658) +4(2728 2799 2800 2729) +4(2799 2870 2871 2800) +4(2870 2941 2942 2871) +4(2941 3012 3013 2942) +4(3012 3083 3084 3013) +4(3083 3154 3155 3084) +4(3154 3225 3226 3155) +4(3225 3296 3297 3226) +4(3296 3367 3368 3297) +4(3367 3438 3439 3368) +4(3438 3509 3510 3439) +4(3509 3580 3581 3510) +4(31 102 103 32) +4(102 173 174 103) +4(173 244 245 174) +4(244 315 316 245) +4(315 386 387 316) +4(386 457 458 387) +4(457 528 529 458) +4(528 599 600 529) +4(599 670 671 600) +4(670 741 742 671) +4(741 812 813 742) +4(812 883 884 813) +4(883 954 955 884) +4(954 1025 1026 955) +4(1025 1096 1097 1026) +4(1096 1167 1168 1097) +4(1167 1238 1239 1168) +4(1238 1309 1310 1239) +4(1309 1380 1381 1310) +4(1380 1451 1452 1381) +4(1451 1522 1523 1452) +4(1522 1593 1594 1523) +4(1593 1664 1665 1594) +4(1664 1735 1736 1665) +4(1735 1806 1807 1736) +4(1806 1877 1878 1807) +4(1877 1948 1949 1878) +4(1948 2019 2020 1949) +4(2019 2090 2091 2020) +4(2090 2161 2162 2091) +4(2161 2232 2233 2162) +4(2232 2303 2304 2233) +4(2303 2374 2375 2304) +4(2374 2445 2446 2375) +4(2445 2516 2517 2446) +4(2516 2587 2588 2517) +4(2587 2658 2659 2588) +4(2658 2729 2730 2659) +4(2729 2800 2801 2730) +4(2800 2871 2872 2801) +4(2871 2942 2943 2872) +4(2942 3013 3014 2943) +4(3013 3084 3085 3014) +4(3084 3155 3156 3085) +4(3155 3226 3227 3156) +4(3226 3297 3298 3227) +4(3297 3368 3369 3298) +4(3368 3439 3440 3369) +4(3439 3510 3511 3440) +4(3510 3581 3582 3511) +4(32 103 104 33) +4(103 174 175 104) +4(174 245 246 175) +4(245 316 317 246) +4(316 387 388 317) +4(387 458 459 388) +4(458 529 530 459) +4(529 600 601 530) +4(600 671 672 601) +4(671 742 743 672) +4(742 813 814 743) +4(813 884 885 814) +4(884 955 956 885) +4(955 1026 1027 956) +4(1026 1097 1098 1027) +4(1097 1168 1169 1098) +4(1168 1239 1240 1169) +4(1239 1310 1311 1240) +4(1310 1381 1382 1311) +4(1381 1452 1453 1382) +4(1452 1523 1524 1453) +4(1523 1594 1595 1524) +4(1594 1665 1666 1595) +4(1665 1736 1737 1666) +4(1736 1807 1808 1737) +4(1807 1878 1879 1808) +4(1878 1949 1950 1879) +4(1949 2020 2021 1950) +4(2020 2091 2092 2021) +4(2091 2162 2163 2092) +4(2162 2233 2234 2163) +4(2233 2304 2305 2234) +4(2304 2375 2376 2305) +4(2375 2446 2447 2376) +4(2446 2517 2518 2447) +4(2517 2588 2589 2518) +4(2588 2659 2660 2589) +4(2659 2730 2731 2660) +4(2730 2801 2802 2731) +4(2801 2872 2873 2802) +4(2872 2943 2944 2873) +4(2943 3014 3015 2944) +4(3014 3085 3086 3015) +4(3085 3156 3157 3086) +4(3156 3227 3228 3157) +4(3227 3298 3299 3228) +4(3298 3369 3370 3299) +4(3369 3440 3441 3370) +4(3440 3511 3512 3441) +4(3511 3582 3583 3512) +4(33 104 105 34) +4(104 175 176 105) +4(175 246 247 176) +4(246 317 318 247) +4(317 388 389 318) +4(388 459 460 389) +4(459 530 531 460) +4(530 601 602 531) +4(601 672 673 602) +4(672 743 744 673) +4(743 814 815 744) +4(814 885 886 815) +4(885 956 957 886) +4(956 1027 1028 957) +4(1027 1098 1099 1028) +4(1098 1169 1170 1099) +4(1169 1240 1241 1170) +4(1240 1311 1312 1241) +4(1311 1382 1383 1312) +4(1382 1453 1454 1383) +4(1453 1524 1525 1454) +4(1524 1595 1596 1525) +4(1595 1666 1667 1596) +4(1666 1737 1738 1667) +4(1737 1808 1809 1738) +4(1808 1879 1880 1809) +4(1879 1950 1951 1880) +4(1950 2021 2022 1951) +4(2021 2092 2093 2022) +4(2092 2163 2164 2093) +4(2163 2234 2235 2164) +4(2234 2305 2306 2235) +4(2305 2376 2377 2306) +4(2376 2447 2448 2377) +4(2447 2518 2519 2448) +4(2518 2589 2590 2519) +4(2589 2660 2661 2590) +4(2660 2731 2732 2661) +4(2731 2802 2803 2732) +4(2802 2873 2874 2803) +4(2873 2944 2945 2874) +4(2944 3015 3016 2945) +4(3015 3086 3087 3016) +4(3086 3157 3158 3087) +4(3157 3228 3229 3158) +4(3228 3299 3300 3229) +4(3299 3370 3371 3300) +4(3370 3441 3442 3371) +4(3441 3512 3513 3442) +4(3512 3583 3584 3513) +4(34 105 106 35) +4(105 176 177 106) +4(176 247 248 177) +4(247 318 319 248) +4(318 389 390 319) +4(389 460 461 390) +4(460 531 532 461) +4(531 602 603 532) +4(602 673 674 603) +4(673 744 745 674) +4(744 815 816 745) +4(815 886 887 816) +4(886 957 958 887) +4(957 1028 1029 958) +4(1028 1099 1100 1029) +4(1099 1170 1171 1100) +4(1170 1241 1242 1171) +4(1241 1312 1313 1242) +4(1312 1383 1384 1313) +4(1383 1454 1455 1384) +4(1454 1525 1526 1455) +4(1525 1596 1597 1526) +4(1596 1667 1668 1597) +4(1667 1738 1739 1668) +4(1738 1809 1810 1739) +4(1809 1880 1881 1810) +4(1880 1951 1952 1881) +4(1951 2022 2023 1952) +4(2022 2093 2094 2023) +4(2093 2164 2165 2094) +4(2164 2235 2236 2165) +4(2235 2306 2307 2236) +4(2306 2377 2378 2307) +4(2377 2448 2449 2378) +4(2448 2519 2520 2449) +4(2519 2590 2591 2520) +4(2590 2661 2662 2591) +4(2661 2732 2733 2662) +4(2732 2803 2804 2733) +4(2803 2874 2875 2804) +4(2874 2945 2946 2875) +4(2945 3016 3017 2946) +4(3016 3087 3088 3017) +4(3087 3158 3159 3088) +4(3158 3229 3230 3159) +4(3229 3300 3301 3230) +4(3300 3371 3372 3301) +4(3371 3442 3443 3372) +4(3442 3513 3514 3443) +4(3513 3584 3585 3514) +4(35 106 107 36) +4(106 177 178 107) +4(177 248 249 178) +4(248 319 320 249) +4(319 390 391 320) +4(390 461 462 391) +4(461 532 533 462) +4(532 603 604 533) +4(603 674 675 604) +4(674 745 746 675) +4(745 816 817 746) +4(816 887 888 817) +4(887 958 959 888) +4(958 1029 1030 959) +4(1029 1100 1101 1030) +4(1100 1171 1172 1101) +4(1171 1242 1243 1172) +4(1242 1313 1314 1243) +4(1313 1384 1385 1314) +4(1384 1455 1456 1385) +4(1455 1526 1527 1456) +4(1526 1597 1598 1527) +4(1597 1668 1669 1598) +4(1668 1739 1740 1669) +4(1739 1810 1811 1740) +4(1810 1881 1882 1811) +4(1881 1952 1953 1882) +4(1952 2023 2024 1953) +4(2023 2094 2095 2024) +4(2094 2165 2166 2095) +4(2165 2236 2237 2166) +4(2236 2307 2308 2237) +4(2307 2378 2379 2308) +4(2378 2449 2450 2379) +4(2449 2520 2521 2450) +4(2520 2591 2592 2521) +4(2591 2662 2663 2592) +4(2662 2733 2734 2663) +4(2733 2804 2805 2734) +4(2804 2875 2876 2805) +4(2875 2946 2947 2876) +4(2946 3017 3018 2947) +4(3017 3088 3089 3018) +4(3088 3159 3160 3089) +4(3159 3230 3231 3160) +4(3230 3301 3302 3231) +4(3301 3372 3373 3302) +4(3372 3443 3444 3373) +4(3443 3514 3515 3444) +4(3514 3585 3586 3515) +4(36 107 108 37) +4(107 178 179 108) +4(178 249 250 179) +4(249 320 321 250) +4(320 391 392 321) +4(391 462 463 392) +4(462 533 534 463) +4(533 604 605 534) +4(604 675 676 605) +4(675 746 747 676) +4(746 817 818 747) +4(817 888 889 818) +4(888 959 960 889) +4(959 1030 1031 960) +4(1030 1101 1102 1031) +4(1101 1172 1173 1102) +4(1172 1243 1244 1173) +4(1243 1314 1315 1244) +4(1314 1385 1386 1315) +4(1385 1456 1457 1386) +4(1456 1527 1528 1457) +4(1527 1598 1599 1528) +4(1598 1669 1670 1599) +4(1669 1740 1741 1670) +4(1740 1811 1812 1741) +4(1811 1882 1883 1812) +4(1882 1953 1954 1883) +4(1953 2024 2025 1954) +4(2024 2095 2096 2025) +4(2095 2166 2167 2096) +4(2166 2237 2238 2167) +4(2237 2308 2309 2238) +4(2308 2379 2380 2309) +4(2379 2450 2451 2380) +4(2450 2521 2522 2451) +4(2521 2592 2593 2522) +4(2592 2663 2664 2593) +4(2663 2734 2735 2664) +4(2734 2805 2806 2735) +4(2805 2876 2877 2806) +4(2876 2947 2948 2877) +4(2947 3018 3019 2948) +4(3018 3089 3090 3019) +4(3089 3160 3161 3090) +4(3160 3231 3232 3161) +4(3231 3302 3303 3232) +4(3302 3373 3374 3303) +4(3373 3444 3445 3374) +4(3444 3515 3516 3445) +4(3515 3586 3587 3516) +4(37 108 109 38) +4(108 179 180 109) +4(179 250 251 180) +4(250 321 322 251) +4(321 392 393 322) +4(392 463 464 393) +4(463 534 535 464) +4(534 605 606 535) +4(605 676 677 606) +4(676 747 748 677) +4(747 818 819 748) +4(818 889 890 819) +4(889 960 961 890) +4(960 1031 1032 961) +4(1031 1102 1103 1032) +4(1102 1173 1174 1103) +4(1173 1244 1245 1174) +4(1244 1315 1316 1245) +4(1315 1386 1387 1316) +4(1386 1457 1458 1387) +4(1457 1528 1529 1458) +4(1528 1599 1600 1529) +4(1599 1670 1671 1600) +4(1670 1741 1742 1671) +4(1741 1812 1813 1742) +4(1812 1883 1884 1813) +4(1883 1954 1955 1884) +4(1954 2025 2026 1955) +4(2025 2096 2097 2026) +4(2096 2167 2168 2097) +4(2167 2238 2239 2168) +4(2238 2309 2310 2239) +4(2309 2380 2381 2310) +4(2380 2451 2452 2381) +4(2451 2522 2523 2452) +4(2522 2593 2594 2523) +4(2593 2664 2665 2594) +4(2664 2735 2736 2665) +4(2735 2806 2807 2736) +4(2806 2877 2878 2807) +4(2877 2948 2949 2878) +4(2948 3019 3020 2949) +4(3019 3090 3091 3020) +4(3090 3161 3162 3091) +4(3161 3232 3233 3162) +4(3232 3303 3304 3233) +4(3303 3374 3375 3304) +4(3374 3445 3446 3375) +4(3445 3516 3517 3446) +4(3516 3587 3588 3517) +4(38 109 110 39) +4(109 180 181 110) +4(180 251 252 181) +4(251 322 323 252) +4(322 393 394 323) +4(393 464 465 394) +4(464 535 536 465) +4(535 606 607 536) +4(606 677 678 607) +4(677 748 749 678) +4(748 819 820 749) +4(819 890 891 820) +4(890 961 962 891) +4(961 1032 1033 962) +4(1032 1103 1104 1033) +4(1103 1174 1175 1104) +4(1174 1245 1246 1175) +4(1245 1316 1317 1246) +4(1316 1387 1388 1317) +4(1387 1458 1459 1388) +4(1458 1529 1530 1459) +4(1529 1600 1601 1530) +4(1600 1671 1672 1601) +4(1671 1742 1743 1672) +4(1742 1813 1814 1743) +4(1813 1884 1885 1814) +4(1884 1955 1956 1885) +4(1955 2026 2027 1956) +4(2026 2097 2098 2027) +4(2097 2168 2169 2098) +4(2168 2239 2240 2169) +4(2239 2310 2311 2240) +4(2310 2381 2382 2311) +4(2381 2452 2453 2382) +4(2452 2523 2524 2453) +4(2523 2594 2595 2524) +4(2594 2665 2666 2595) +4(2665 2736 2737 2666) +4(2736 2807 2808 2737) +4(2807 2878 2879 2808) +4(2878 2949 2950 2879) +4(2949 3020 3021 2950) +4(3020 3091 3092 3021) +4(3091 3162 3163 3092) +4(3162 3233 3234 3163) +4(3233 3304 3305 3234) +4(3304 3375 3376 3305) +4(3375 3446 3447 3376) +4(3446 3517 3518 3447) +4(3517 3588 3589 3518) +4(39 110 111 40) +4(110 181 182 111) +4(181 252 253 182) +4(252 323 324 253) +4(323 394 395 324) +4(394 465 466 395) +4(465 536 537 466) +4(536 607 608 537) +4(607 678 679 608) +4(678 749 750 679) +4(749 820 821 750) +4(820 891 892 821) +4(891 962 963 892) +4(962 1033 1034 963) +4(1033 1104 1105 1034) +4(1104 1175 1176 1105) +4(1175 1246 1247 1176) +4(1246 1317 1318 1247) +4(1317 1388 1389 1318) +4(1388 1459 1460 1389) +4(1459 1530 1531 1460) +4(1530 1601 1602 1531) +4(1601 1672 1673 1602) +4(1672 1743 1744 1673) +4(1743 1814 1815 1744) +4(1814 1885 1886 1815) +4(1885 1956 1957 1886) +4(1956 2027 2028 1957) +4(2027 2098 2099 2028) +4(2098 2169 2170 2099) +4(2169 2240 2241 2170) +4(2240 2311 2312 2241) +4(2311 2382 2383 2312) +4(2382 2453 2454 2383) +4(2453 2524 2525 2454) +4(2524 2595 2596 2525) +4(2595 2666 2667 2596) +4(2666 2737 2738 2667) +4(2737 2808 2809 2738) +4(2808 2879 2880 2809) +4(2879 2950 2951 2880) +4(2950 3021 3022 2951) +4(3021 3092 3093 3022) +4(3092 3163 3164 3093) +4(3163 3234 3235 3164) +4(3234 3305 3306 3235) +4(3305 3376 3377 3306) +4(3376 3447 3448 3377) +4(3447 3518 3519 3448) +4(3518 3589 3590 3519) +4(40 111 112 41) +4(111 182 183 112) +4(182 253 254 183) +4(253 324 325 254) +4(324 395 396 325) +4(395 466 467 396) +4(466 537 538 467) +4(537 608 609 538) +4(608 679 680 609) +4(679 750 751 680) +4(750 821 822 751) +4(821 892 893 822) +4(892 963 964 893) +4(963 1034 1035 964) +4(1034 1105 1106 1035) +4(1105 1176 1177 1106) +4(1176 1247 1248 1177) +4(1247 1318 1319 1248) +4(1318 1389 1390 1319) +4(1389 1460 1461 1390) +4(1460 1531 1532 1461) +4(1531 1602 1603 1532) +4(1602 1673 1674 1603) +4(1673 1744 1745 1674) +4(1744 1815 1816 1745) +4(1815 1886 1887 1816) +4(1886 1957 1958 1887) +4(1957 2028 2029 1958) +4(2028 2099 2100 2029) +4(2099 2170 2171 2100) +4(2170 2241 2242 2171) +4(2241 2312 2313 2242) +4(2312 2383 2384 2313) +4(2383 2454 2455 2384) +4(2454 2525 2526 2455) +4(2525 2596 2597 2526) +4(2596 2667 2668 2597) +4(2667 2738 2739 2668) +4(2738 2809 2810 2739) +4(2809 2880 2881 2810) +4(2880 2951 2952 2881) +4(2951 3022 3023 2952) +4(3022 3093 3094 3023) +4(3093 3164 3165 3094) +4(3164 3235 3236 3165) +4(3235 3306 3307 3236) +4(3306 3377 3378 3307) +4(3377 3448 3449 3378) +4(3448 3519 3520 3449) +4(3519 3590 3591 3520) +4(41 112 113 42) +4(112 183 184 113) +4(183 254 255 184) +4(254 325 326 255) +4(325 396 397 326) +4(396 467 468 397) +4(467 538 539 468) +4(538 609 610 539) +4(609 680 681 610) +4(680 751 752 681) +4(751 822 823 752) +4(822 893 894 823) +4(893 964 965 894) +4(964 1035 1036 965) +4(1035 1106 1107 1036) +4(1106 1177 1178 1107) +4(1177 1248 1249 1178) +4(1248 1319 1320 1249) +4(1319 1390 1391 1320) +4(1390 1461 1462 1391) +4(1461 1532 1533 1462) +4(1532 1603 1604 1533) +4(1603 1674 1675 1604) +4(1674 1745 1746 1675) +4(1745 1816 1817 1746) +4(1816 1887 1888 1817) +4(1887 1958 1959 1888) +4(1958 2029 2030 1959) +4(2029 2100 2101 2030) +4(2100 2171 2172 2101) +4(2171 2242 2243 2172) +4(2242 2313 2314 2243) +4(2313 2384 2385 2314) +4(2384 2455 2456 2385) +4(2455 2526 2527 2456) +4(2526 2597 2598 2527) +4(2597 2668 2669 2598) +4(2668 2739 2740 2669) +4(2739 2810 2811 2740) +4(2810 2881 2882 2811) +4(2881 2952 2953 2882) +4(2952 3023 3024 2953) +4(3023 3094 3095 3024) +4(3094 3165 3166 3095) +4(3165 3236 3237 3166) +4(3236 3307 3308 3237) +4(3307 3378 3379 3308) +4(3378 3449 3450 3379) +4(3449 3520 3521 3450) +4(3520 3591 3592 3521) +4(42 113 114 43) +4(113 184 185 114) +4(184 255 256 185) +4(255 326 327 256) +4(326 397 398 327) +4(397 468 469 398) +4(468 539 540 469) +4(539 610 611 540) +4(610 681 682 611) +4(681 752 753 682) +4(752 823 824 753) +4(823 894 895 824) +4(894 965 966 895) +4(965 1036 1037 966) +4(1036 1107 1108 1037) +4(1107 1178 1179 1108) +4(1178 1249 1250 1179) +4(1249 1320 1321 1250) +4(1320 1391 1392 1321) +4(1391 1462 1463 1392) +4(1462 1533 1534 1463) +4(1533 1604 1605 1534) +4(1604 1675 1676 1605) +4(1675 1746 1747 1676) +4(1746 1817 1818 1747) +4(1817 1888 1889 1818) +4(1888 1959 1960 1889) +4(1959 2030 2031 1960) +4(2030 2101 2102 2031) +4(2101 2172 2173 2102) +4(2172 2243 2244 2173) +4(2243 2314 2315 2244) +4(2314 2385 2386 2315) +4(2385 2456 2457 2386) +4(2456 2527 2528 2457) +4(2527 2598 2599 2528) +4(2598 2669 2670 2599) +4(2669 2740 2741 2670) +4(2740 2811 2812 2741) +4(2811 2882 2883 2812) +4(2882 2953 2954 2883) +4(2953 3024 3025 2954) +4(3024 3095 3096 3025) +4(3095 3166 3167 3096) +4(3166 3237 3238 3167) +4(3237 3308 3309 3238) +4(3308 3379 3380 3309) +4(3379 3450 3451 3380) +4(3450 3521 3522 3451) +4(3521 3592 3593 3522) +4(43 114 115 44) +4(114 185 186 115) +4(185 256 257 186) +4(256 327 328 257) +4(327 398 399 328) +4(398 469 470 399) +4(469 540 541 470) +4(540 611 612 541) +4(611 682 683 612) +4(682 753 754 683) +4(753 824 825 754) +4(824 895 896 825) +4(895 966 967 896) +4(966 1037 1038 967) +4(1037 1108 1109 1038) +4(1108 1179 1180 1109) +4(1179 1250 1251 1180) +4(1250 1321 1322 1251) +4(1321 1392 1393 1322) +4(1392 1463 1464 1393) +4(1463 1534 1535 1464) +4(1534 1605 1606 1535) +4(1605 1676 1677 1606) +4(1676 1747 1748 1677) +4(1747 1818 1819 1748) +4(1818 1889 1890 1819) +4(1889 1960 1961 1890) +4(1960 2031 2032 1961) +4(2031 2102 2103 2032) +4(2102 2173 2174 2103) +4(2173 2244 2245 2174) +4(2244 2315 2316 2245) +4(2315 2386 2387 2316) +4(2386 2457 2458 2387) +4(2457 2528 2529 2458) +4(2528 2599 2600 2529) +4(2599 2670 2671 2600) +4(2670 2741 2742 2671) +4(2741 2812 2813 2742) +4(2812 2883 2884 2813) +4(2883 2954 2955 2884) +4(2954 3025 3026 2955) +4(3025 3096 3097 3026) +4(3096 3167 3168 3097) +4(3167 3238 3239 3168) +4(3238 3309 3310 3239) +4(3309 3380 3381 3310) +4(3380 3451 3452 3381) +4(3451 3522 3523 3452) +4(3522 3593 3594 3523) +4(44 115 116 45) +4(115 186 187 116) +4(186 257 258 187) +4(257 328 329 258) +4(328 399 400 329) +4(399 470 471 400) +4(470 541 542 471) +4(541 612 613 542) +4(612 683 684 613) +4(683 754 755 684) +4(754 825 826 755) +4(825 896 897 826) +4(896 967 968 897) +4(967 1038 1039 968) +4(1038 1109 1110 1039) +4(1109 1180 1181 1110) +4(1180 1251 1252 1181) +4(1251 1322 1323 1252) +4(1322 1393 1394 1323) +4(1393 1464 1465 1394) +4(1464 1535 1536 1465) +4(1535 1606 1607 1536) +4(1606 1677 1678 1607) +4(1677 1748 1749 1678) +4(1748 1819 1820 1749) +4(1819 1890 1891 1820) +4(1890 1961 1962 1891) +4(1961 2032 2033 1962) +4(2032 2103 2104 2033) +4(2103 2174 2175 2104) +4(2174 2245 2246 2175) +4(2245 2316 2317 2246) +4(2316 2387 2388 2317) +4(2387 2458 2459 2388) +4(2458 2529 2530 2459) +4(2529 2600 2601 2530) +4(2600 2671 2672 2601) +4(2671 2742 2743 2672) +4(2742 2813 2814 2743) +4(2813 2884 2885 2814) +4(2884 2955 2956 2885) +4(2955 3026 3027 2956) +4(3026 3097 3098 3027) +4(3097 3168 3169 3098) +4(3168 3239 3240 3169) +4(3239 3310 3311 3240) +4(3310 3381 3382 3311) +4(3381 3452 3453 3382) +4(3452 3523 3524 3453) +4(3523 3594 3595 3524) +4(45 116 117 46) +4(116 187 188 117) +4(187 258 259 188) +4(258 329 330 259) +4(329 400 401 330) +4(400 471 472 401) +4(471 542 543 472) +4(542 613 614 543) +4(613 684 685 614) +4(684 755 756 685) +4(755 826 827 756) +4(826 897 898 827) +4(897 968 969 898) +4(968 1039 1040 969) +4(1039 1110 1111 1040) +4(1110 1181 1182 1111) +4(1181 1252 1253 1182) +4(1252 1323 1324 1253) +4(1323 1394 1395 1324) +4(1394 1465 1466 1395) +4(1465 1536 1537 1466) +4(1536 1607 1608 1537) +4(1607 1678 1679 1608) +4(1678 1749 1750 1679) +4(1749 1820 1821 1750) +4(1820 1891 1892 1821) +4(1891 1962 1963 1892) +4(1962 2033 2034 1963) +4(2033 2104 2105 2034) +4(2104 2175 2176 2105) +4(2175 2246 2247 2176) +4(2246 2317 2318 2247) +4(2317 2388 2389 2318) +4(2388 2459 2460 2389) +4(2459 2530 2531 2460) +4(2530 2601 2602 2531) +4(2601 2672 2673 2602) +4(2672 2743 2744 2673) +4(2743 2814 2815 2744) +4(2814 2885 2886 2815) +4(2885 2956 2957 2886) +4(2956 3027 3028 2957) +4(3027 3098 3099 3028) +4(3098 3169 3170 3099) +4(3169 3240 3241 3170) +4(3240 3311 3312 3241) +4(3311 3382 3383 3312) +4(3382 3453 3454 3383) +4(3453 3524 3525 3454) +4(3524 3595 3596 3525) +4(46 117 118 47) +4(117 188 189 118) +4(188 259 260 189) +4(259 330 331 260) +4(330 401 402 331) +4(401 472 473 402) +4(472 543 544 473) +4(543 614 615 544) +4(614 685 686 615) +4(685 756 757 686) +4(756 827 828 757) +4(827 898 899 828) +4(898 969 970 899) +4(969 1040 1041 970) +4(1040 1111 1112 1041) +4(1111 1182 1183 1112) +4(1182 1253 1254 1183) +4(1253 1324 1325 1254) +4(1324 1395 1396 1325) +4(1395 1466 1467 1396) +4(1466 1537 1538 1467) +4(1537 1608 1609 1538) +4(1608 1679 1680 1609) +4(1679 1750 1751 1680) +4(1750 1821 1822 1751) +4(1821 1892 1893 1822) +4(1892 1963 1964 1893) +4(1963 2034 2035 1964) +4(2034 2105 2106 2035) +4(2105 2176 2177 2106) +4(2176 2247 2248 2177) +4(2247 2318 2319 2248) +4(2318 2389 2390 2319) +4(2389 2460 2461 2390) +4(2460 2531 2532 2461) +4(2531 2602 2603 2532) +4(2602 2673 2674 2603) +4(2673 2744 2745 2674) +4(2744 2815 2816 2745) +4(2815 2886 2887 2816) +4(2886 2957 2958 2887) +4(2957 3028 3029 2958) +4(3028 3099 3100 3029) +4(3099 3170 3171 3100) +4(3170 3241 3242 3171) +4(3241 3312 3313 3242) +4(3312 3383 3384 3313) +4(3383 3454 3455 3384) +4(3454 3525 3526 3455) +4(3525 3596 3597 3526) +4(47 118 119 48) +4(118 189 190 119) +4(189 260 261 190) +4(260 331 332 261) +4(331 402 403 332) +4(402 473 474 403) +4(473 544 545 474) +4(544 615 616 545) +4(615 686 687 616) +4(686 757 758 687) +4(757 828 829 758) +4(828 899 900 829) +4(899 970 971 900) +4(970 1041 1042 971) +4(1041 1112 1113 1042) +4(1112 1183 1184 1113) +4(1183 1254 1255 1184) +4(1254 1325 1326 1255) +4(1325 1396 1397 1326) +4(1396 1467 1468 1397) +4(1467 1538 1539 1468) +4(1538 1609 1610 1539) +4(1609 1680 1681 1610) +4(1680 1751 1752 1681) +4(1751 1822 1823 1752) +4(1822 1893 1894 1823) +4(1893 1964 1965 1894) +4(1964 2035 2036 1965) +4(2035 2106 2107 2036) +4(2106 2177 2178 2107) +4(2177 2248 2249 2178) +4(2248 2319 2320 2249) +4(2319 2390 2391 2320) +4(2390 2461 2462 2391) +4(2461 2532 2533 2462) +4(2532 2603 2604 2533) +4(2603 2674 2675 2604) +4(2674 2745 2746 2675) +4(2745 2816 2817 2746) +4(2816 2887 2888 2817) +4(2887 2958 2959 2888) +4(2958 3029 3030 2959) +4(3029 3100 3101 3030) +4(3100 3171 3172 3101) +4(3171 3242 3243 3172) +4(3242 3313 3314 3243) +4(3313 3384 3385 3314) +4(3384 3455 3456 3385) +4(3455 3526 3527 3456) +4(3526 3597 3598 3527) +4(48 119 120 49) +4(119 190 191 120) +4(190 261 262 191) +4(261 332 333 262) +4(332 403 404 333) +4(403 474 475 404) +4(474 545 546 475) +4(545 616 617 546) +4(616 687 688 617) +4(687 758 759 688) +4(758 829 830 759) +4(829 900 901 830) +4(900 971 972 901) +4(971 1042 1043 972) +4(1042 1113 1114 1043) +4(1113 1184 1185 1114) +4(1184 1255 1256 1185) +4(1255 1326 1327 1256) +4(1326 1397 1398 1327) +4(1397 1468 1469 1398) +4(1468 1539 1540 1469) +4(1539 1610 1611 1540) +4(1610 1681 1682 1611) +4(1681 1752 1753 1682) +4(1752 1823 1824 1753) +4(1823 1894 1895 1824) +4(1894 1965 1966 1895) +4(1965 2036 2037 1966) +4(2036 2107 2108 2037) +4(2107 2178 2179 2108) +4(2178 2249 2250 2179) +4(2249 2320 2321 2250) +4(2320 2391 2392 2321) +4(2391 2462 2463 2392) +4(2462 2533 2534 2463) +4(2533 2604 2605 2534) +4(2604 2675 2676 2605) +4(2675 2746 2747 2676) +4(2746 2817 2818 2747) +4(2817 2888 2889 2818) +4(2888 2959 2960 2889) +4(2959 3030 3031 2960) +4(3030 3101 3102 3031) +4(3101 3172 3173 3102) +4(3172 3243 3244 3173) +4(3243 3314 3315 3244) +4(3314 3385 3386 3315) +4(3385 3456 3457 3386) +4(3456 3527 3528 3457) +4(3527 3598 3599 3528) +4(49 120 121 50) +4(120 191 192 121) +4(191 262 263 192) +4(262 333 334 263) +4(333 404 405 334) +4(404 475 476 405) +4(475 546 547 476) +4(546 617 618 547) +4(617 688 689 618) +4(688 759 760 689) +4(759 830 831 760) +4(830 901 902 831) +4(901 972 973 902) +4(972 1043 1044 973) +4(1043 1114 1115 1044) +4(1114 1185 1186 1115) +4(1185 1256 1257 1186) +4(1256 1327 1328 1257) +4(1327 1398 1399 1328) +4(1398 1469 1470 1399) +4(1469 1540 1541 1470) +4(1540 1611 1612 1541) +4(1611 1682 1683 1612) +4(1682 1753 1754 1683) +4(1753 1824 1825 1754) +4(1824 1895 1896 1825) +4(1895 1966 1967 1896) +4(1966 2037 2038 1967) +4(2037 2108 2109 2038) +4(2108 2179 2180 2109) +4(2179 2250 2251 2180) +4(2250 2321 2322 2251) +4(2321 2392 2393 2322) +4(2392 2463 2464 2393) +4(2463 2534 2535 2464) +4(2534 2605 2606 2535) +4(2605 2676 2677 2606) +4(2676 2747 2748 2677) +4(2747 2818 2819 2748) +4(2818 2889 2890 2819) +4(2889 2960 2961 2890) +4(2960 3031 3032 2961) +4(3031 3102 3103 3032) +4(3102 3173 3174 3103) +4(3173 3244 3245 3174) +4(3244 3315 3316 3245) +4(3315 3386 3387 3316) +4(3386 3457 3458 3387) +4(3457 3528 3529 3458) +4(3528 3599 3600 3529) +4(50 121 122 51) +4(121 192 193 122) +4(192 263 264 193) +4(263 334 335 264) +4(334 405 406 335) +4(405 476 477 406) +4(476 547 548 477) +4(547 618 619 548) +4(618 689 690 619) +4(689 760 761 690) +4(760 831 832 761) +4(831 902 903 832) +4(902 973 974 903) +4(973 1044 1045 974) +4(1044 1115 1116 1045) +4(1115 1186 1187 1116) +4(1186 1257 1258 1187) +4(1257 1328 1329 1258) +4(1328 1399 1400 1329) +4(1399 1470 1471 1400) +4(1470 1541 1542 1471) +4(1541 1612 1613 1542) +4(1612 1683 1684 1613) +4(1683 1754 1755 1684) +4(1754 1825 1826 1755) +4(1825 1896 1897 1826) +4(1896 1967 1968 1897) +4(1967 2038 2039 1968) +4(2038 2109 2110 2039) +4(2109 2180 2181 2110) +4(2180 2251 2252 2181) +4(2251 2322 2323 2252) +4(2322 2393 2394 2323) +4(2393 2464 2465 2394) +4(2464 2535 2536 2465) +4(2535 2606 2607 2536) +4(2606 2677 2678 2607) +4(2677 2748 2749 2678) +4(2748 2819 2820 2749) +4(2819 2890 2891 2820) +4(2890 2961 2962 2891) +4(2961 3032 3033 2962) +4(3032 3103 3104 3033) +4(3103 3174 3175 3104) +4(3174 3245 3246 3175) +4(3245 3316 3317 3246) +4(3316 3387 3388 3317) +4(3387 3458 3459 3388) +4(3458 3529 3530 3459) +4(3529 3600 3601 3530) +4(51 122 123 52) +4(122 193 194 123) +4(193 264 265 194) +4(264 335 336 265) +4(335 406 407 336) +4(406 477 478 407) +4(477 548 549 478) +4(548 619 620 549) +4(619 690 691 620) +4(690 761 762 691) +4(761 832 833 762) +4(832 903 904 833) +4(903 974 975 904) +4(974 1045 1046 975) +4(1045 1116 1117 1046) +4(1116 1187 1188 1117) +4(1187 1258 1259 1188) +4(1258 1329 1330 1259) +4(1329 1400 1401 1330) +4(1400 1471 1472 1401) +4(1471 1542 1543 1472) +4(1542 1613 1614 1543) +4(1613 1684 1685 1614) +4(1684 1755 1756 1685) +4(1755 1826 1827 1756) +4(1826 1897 1898 1827) +4(1897 1968 1969 1898) +4(1968 2039 2040 1969) +4(2039 2110 2111 2040) +4(2110 2181 2182 2111) +4(2181 2252 2253 2182) +4(2252 2323 2324 2253) +4(2323 2394 2395 2324) +4(2394 2465 2466 2395) +4(2465 2536 2537 2466) +4(2536 2607 2608 2537) +4(2607 2678 2679 2608) +4(2678 2749 2750 2679) +4(2749 2820 2821 2750) +4(2820 2891 2892 2821) +4(2891 2962 2963 2892) +4(2962 3033 3034 2963) +4(3033 3104 3105 3034) +4(3104 3175 3176 3105) +4(3175 3246 3247 3176) +4(3246 3317 3318 3247) +4(3317 3388 3389 3318) +4(3388 3459 3460 3389) +4(3459 3530 3531 3460) +4(3530 3601 3602 3531) +4(52 123 124 53) +4(123 194 195 124) +4(194 265 266 195) +4(265 336 337 266) +4(336 407 408 337) +4(407 478 479 408) +4(478 549 550 479) +4(549 620 621 550) +4(620 691 692 621) +4(691 762 763 692) +4(762 833 834 763) +4(833 904 905 834) +4(904 975 976 905) +4(975 1046 1047 976) +4(1046 1117 1118 1047) +4(1117 1188 1189 1118) +4(1188 1259 1260 1189) +4(1259 1330 1331 1260) +4(1330 1401 1402 1331) +4(1401 1472 1473 1402) +4(1472 1543 1544 1473) +4(1543 1614 1615 1544) +4(1614 1685 1686 1615) +4(1685 1756 1757 1686) +4(1756 1827 1828 1757) +4(1827 1898 1899 1828) +4(1898 1969 1970 1899) +4(1969 2040 2041 1970) +4(2040 2111 2112 2041) +4(2111 2182 2183 2112) +4(2182 2253 2254 2183) +4(2253 2324 2325 2254) +4(2324 2395 2396 2325) +4(2395 2466 2467 2396) +4(2466 2537 2538 2467) +4(2537 2608 2609 2538) +4(2608 2679 2680 2609) +4(2679 2750 2751 2680) +4(2750 2821 2822 2751) +4(2821 2892 2893 2822) +4(2892 2963 2964 2893) +4(2963 3034 3035 2964) +4(3034 3105 3106 3035) +4(3105 3176 3177 3106) +4(3176 3247 3248 3177) +4(3247 3318 3319 3248) +4(3318 3389 3390 3319) +4(3389 3460 3461 3390) +4(3460 3531 3532 3461) +4(3531 3602 3603 3532) +4(53 124 125 54) +4(124 195 196 125) +4(195 266 267 196) +4(266 337 338 267) +4(337 408 409 338) +4(408 479 480 409) +4(479 550 551 480) +4(550 621 622 551) +4(621 692 693 622) +4(692 763 764 693) +4(763 834 835 764) +4(834 905 906 835) +4(905 976 977 906) +4(976 1047 1048 977) +4(1047 1118 1119 1048) +4(1118 1189 1190 1119) +4(1189 1260 1261 1190) +4(1260 1331 1332 1261) +4(1331 1402 1403 1332) +4(1402 1473 1474 1403) +4(1473 1544 1545 1474) +4(1544 1615 1616 1545) +4(1615 1686 1687 1616) +4(1686 1757 1758 1687) +4(1757 1828 1829 1758) +4(1828 1899 1900 1829) +4(1899 1970 1971 1900) +4(1970 2041 2042 1971) +4(2041 2112 2113 2042) +4(2112 2183 2184 2113) +4(2183 2254 2255 2184) +4(2254 2325 2326 2255) +4(2325 2396 2397 2326) +4(2396 2467 2468 2397) +4(2467 2538 2539 2468) +4(2538 2609 2610 2539) +4(2609 2680 2681 2610) +4(2680 2751 2752 2681) +4(2751 2822 2823 2752) +4(2822 2893 2894 2823) +4(2893 2964 2965 2894) +4(2964 3035 3036 2965) +4(3035 3106 3107 3036) +4(3106 3177 3178 3107) +4(3177 3248 3249 3178) +4(3248 3319 3320 3249) +4(3319 3390 3391 3320) +4(3390 3461 3462 3391) +4(3461 3532 3533 3462) +4(3532 3603 3604 3533) +4(54 125 126 55) +4(125 196 197 126) +4(196 267 268 197) +4(267 338 339 268) +4(338 409 410 339) +4(409 480 481 410) +4(480 551 552 481) +4(551 622 623 552) +4(622 693 694 623) +4(693 764 765 694) +4(764 835 836 765) +4(835 906 907 836) +4(906 977 978 907) +4(977 1048 1049 978) +4(1048 1119 1120 1049) +4(1119 1190 1191 1120) +4(1190 1261 1262 1191) +4(1261 1332 1333 1262) +4(1332 1403 1404 1333) +4(1403 1474 1475 1404) +4(1474 1545 1546 1475) +4(1545 1616 1617 1546) +4(1616 1687 1688 1617) +4(1687 1758 1759 1688) +4(1758 1829 1830 1759) +4(1829 1900 1901 1830) +4(1900 1971 1972 1901) +4(1971 2042 2043 1972) +4(2042 2113 2114 2043) +4(2113 2184 2185 2114) +4(2184 2255 2256 2185) +4(2255 2326 2327 2256) +4(2326 2397 2398 2327) +4(2397 2468 2469 2398) +4(2468 2539 2540 2469) +4(2539 2610 2611 2540) +4(2610 2681 2682 2611) +4(2681 2752 2753 2682) +4(2752 2823 2824 2753) +4(2823 2894 2895 2824) +4(2894 2965 2966 2895) +4(2965 3036 3037 2966) +4(3036 3107 3108 3037) +4(3107 3178 3179 3108) +4(3178 3249 3250 3179) +4(3249 3320 3321 3250) +4(3320 3391 3392 3321) +4(3391 3462 3463 3392) +4(3462 3533 3534 3463) +4(3533 3604 3605 3534) +4(55 126 127 56) +4(126 197 198 127) +4(197 268 269 198) +4(268 339 340 269) +4(339 410 411 340) +4(410 481 482 411) +4(481 552 553 482) +4(552 623 624 553) +4(623 694 695 624) +4(694 765 766 695) +4(765 836 837 766) +4(836 907 908 837) +4(907 978 979 908) +4(978 1049 1050 979) +4(1049 1120 1121 1050) +4(1120 1191 1192 1121) +4(1191 1262 1263 1192) +4(1262 1333 1334 1263) +4(1333 1404 1405 1334) +4(1404 1475 1476 1405) +4(1475 1546 1547 1476) +4(1546 1617 1618 1547) +4(1617 1688 1689 1618) +4(1688 1759 1760 1689) +4(1759 1830 1831 1760) +4(1830 1901 1902 1831) +4(1901 1972 1973 1902) +4(1972 2043 2044 1973) +4(2043 2114 2115 2044) +4(2114 2185 2186 2115) +4(2185 2256 2257 2186) +4(2256 2327 2328 2257) +4(2327 2398 2399 2328) +4(2398 2469 2470 2399) +4(2469 2540 2541 2470) +4(2540 2611 2612 2541) +4(2611 2682 2683 2612) +4(2682 2753 2754 2683) +4(2753 2824 2825 2754) +4(2824 2895 2896 2825) +4(2895 2966 2967 2896) +4(2966 3037 3038 2967) +4(3037 3108 3109 3038) +4(3108 3179 3180 3109) +4(3179 3250 3251 3180) +4(3250 3321 3322 3251) +4(3321 3392 3393 3322) +4(3392 3463 3464 3393) +4(3463 3534 3535 3464) +4(3534 3605 3606 3535) +4(56 127 128 57) +4(127 198 199 128) +4(198 269 270 199) +4(269 340 341 270) +4(340 411 412 341) +4(411 482 483 412) +4(482 553 554 483) +4(553 624 625 554) +4(624 695 696 625) +4(695 766 767 696) +4(766 837 838 767) +4(837 908 909 838) +4(908 979 980 909) +4(979 1050 1051 980) +4(1050 1121 1122 1051) +4(1121 1192 1193 1122) +4(1192 1263 1264 1193) +4(1263 1334 1335 1264) +4(1334 1405 1406 1335) +4(1405 1476 1477 1406) +4(1476 1547 1548 1477) +4(1547 1618 1619 1548) +4(1618 1689 1690 1619) +4(1689 1760 1761 1690) +4(1760 1831 1832 1761) +4(1831 1902 1903 1832) +4(1902 1973 1974 1903) +4(1973 2044 2045 1974) +4(2044 2115 2116 2045) +4(2115 2186 2187 2116) +4(2186 2257 2258 2187) +4(2257 2328 2329 2258) +4(2328 2399 2400 2329) +4(2399 2470 2471 2400) +4(2470 2541 2542 2471) +4(2541 2612 2613 2542) +4(2612 2683 2684 2613) +4(2683 2754 2755 2684) +4(2754 2825 2826 2755) +4(2825 2896 2897 2826) +4(2896 2967 2968 2897) +4(2967 3038 3039 2968) +4(3038 3109 3110 3039) +4(3109 3180 3181 3110) +4(3180 3251 3252 3181) +4(3251 3322 3323 3252) +4(3322 3393 3394 3323) +4(3393 3464 3465 3394) +4(3464 3535 3536 3465) +4(3535 3606 3607 3536) +4(57 128 129 58) +4(128 199 200 129) +4(199 270 271 200) +4(270 341 342 271) +4(341 412 413 342) +4(412 483 484 413) +4(483 554 555 484) +4(554 625 626 555) +4(625 696 697 626) +4(696 767 768 697) +4(767 838 839 768) +4(838 909 910 839) +4(909 980 981 910) +4(980 1051 1052 981) +4(1051 1122 1123 1052) +4(1122 1193 1194 1123) +4(1193 1264 1265 1194) +4(1264 1335 1336 1265) +4(1335 1406 1407 1336) +4(1406 1477 1478 1407) +4(1477 1548 1549 1478) +4(1548 1619 1620 1549) +4(1619 1690 1691 1620) +4(1690 1761 1762 1691) +4(1761 1832 1833 1762) +4(1832 1903 1904 1833) +4(1903 1974 1975 1904) +4(1974 2045 2046 1975) +4(2045 2116 2117 2046) +4(2116 2187 2188 2117) +4(2187 2258 2259 2188) +4(2258 2329 2330 2259) +4(2329 2400 2401 2330) +4(2400 2471 2472 2401) +4(2471 2542 2543 2472) +4(2542 2613 2614 2543) +4(2613 2684 2685 2614) +4(2684 2755 2756 2685) +4(2755 2826 2827 2756) +4(2826 2897 2898 2827) +4(2897 2968 2969 2898) +4(2968 3039 3040 2969) +4(3039 3110 3111 3040) +4(3110 3181 3182 3111) +4(3181 3252 3253 3182) +4(3252 3323 3324 3253) +4(3323 3394 3395 3324) +4(3394 3465 3466 3395) +4(3465 3536 3537 3466) +4(3536 3607 3608 3537) +4(58 129 130 59) +4(129 200 201 130) +4(200 271 272 201) +4(271 342 343 272) +4(342 413 414 343) +4(413 484 485 414) +4(484 555 556 485) +4(555 626 627 556) +4(626 697 698 627) +4(697 768 769 698) +4(768 839 840 769) +4(839 910 911 840) +4(910 981 982 911) +4(981 1052 1053 982) +4(1052 1123 1124 1053) +4(1123 1194 1195 1124) +4(1194 1265 1266 1195) +4(1265 1336 1337 1266) +4(1336 1407 1408 1337) +4(1407 1478 1479 1408) +4(1478 1549 1550 1479) +4(1549 1620 1621 1550) +4(1620 1691 1692 1621) +4(1691 1762 1763 1692) +4(1762 1833 1834 1763) +4(1833 1904 1905 1834) +4(1904 1975 1976 1905) +4(1975 2046 2047 1976) +4(2046 2117 2118 2047) +4(2117 2188 2189 2118) +4(2188 2259 2260 2189) +4(2259 2330 2331 2260) +4(2330 2401 2402 2331) +4(2401 2472 2473 2402) +4(2472 2543 2544 2473) +4(2543 2614 2615 2544) +4(2614 2685 2686 2615) +4(2685 2756 2757 2686) +4(2756 2827 2828 2757) +4(2827 2898 2899 2828) +4(2898 2969 2970 2899) +4(2969 3040 3041 2970) +4(3040 3111 3112 3041) +4(3111 3182 3183 3112) +4(3182 3253 3254 3183) +4(3253 3324 3325 3254) +4(3324 3395 3396 3325) +4(3395 3466 3467 3396) +4(3466 3537 3538 3467) +4(3537 3608 3609 3538) +4(59 130 131 60) +4(130 201 202 131) +4(201 272 273 202) +4(272 343 344 273) +4(343 414 415 344) +4(414 485 486 415) +4(485 556 557 486) +4(556 627 628 557) +4(627 698 699 628) +4(698 769 770 699) +4(769 840 841 770) +4(840 911 912 841) +4(911 982 983 912) +4(982 1053 1054 983) +4(1053 1124 1125 1054) +4(1124 1195 1196 1125) +4(1195 1266 1267 1196) +4(1266 1337 1338 1267) +4(1337 1408 1409 1338) +4(1408 1479 1480 1409) +4(1479 1550 1551 1480) +4(1550 1621 1622 1551) +4(1621 1692 1693 1622) +4(1692 1763 1764 1693) +4(1763 1834 1835 1764) +4(1834 1905 1906 1835) +4(1905 1976 1977 1906) +4(1976 2047 2048 1977) +4(2047 2118 2119 2048) +4(2118 2189 2190 2119) +4(2189 2260 2261 2190) +4(2260 2331 2332 2261) +4(2331 2402 2403 2332) +4(2402 2473 2474 2403) +4(2473 2544 2545 2474) +4(2544 2615 2616 2545) +4(2615 2686 2687 2616) +4(2686 2757 2758 2687) +4(2757 2828 2829 2758) +4(2828 2899 2900 2829) +4(2899 2970 2971 2900) +4(2970 3041 3042 2971) +4(3041 3112 3113 3042) +4(3112 3183 3184 3113) +4(3183 3254 3255 3184) +4(3254 3325 3326 3255) +4(3325 3396 3397 3326) +4(3396 3467 3468 3397) +4(3467 3538 3539 3468) +4(3538 3609 3610 3539) +4(60 131 132 61) +4(131 202 203 132) +4(202 273 274 203) +4(273 344 345 274) +4(344 415 416 345) +4(415 486 487 416) +4(486 557 558 487) +4(557 628 629 558) +4(628 699 700 629) +4(699 770 771 700) +4(770 841 842 771) +4(841 912 913 842) +4(912 983 984 913) +4(983 1054 1055 984) +4(1054 1125 1126 1055) +4(1125 1196 1197 1126) +4(1196 1267 1268 1197) +4(1267 1338 1339 1268) +4(1338 1409 1410 1339) +4(1409 1480 1481 1410) +4(1480 1551 1552 1481) +4(1551 1622 1623 1552) +4(1622 1693 1694 1623) +4(1693 1764 1765 1694) +4(1764 1835 1836 1765) +4(1835 1906 1907 1836) +4(1906 1977 1978 1907) +4(1977 2048 2049 1978) +4(2048 2119 2120 2049) +4(2119 2190 2191 2120) +4(2190 2261 2262 2191) +4(2261 2332 2333 2262) +4(2332 2403 2404 2333) +4(2403 2474 2475 2404) +4(2474 2545 2546 2475) +4(2545 2616 2617 2546) +4(2616 2687 2688 2617) +4(2687 2758 2759 2688) +4(2758 2829 2830 2759) +4(2829 2900 2901 2830) +4(2900 2971 2972 2901) +4(2971 3042 3043 2972) +4(3042 3113 3114 3043) +4(3113 3184 3185 3114) +4(3184 3255 3256 3185) +4(3255 3326 3327 3256) +4(3326 3397 3398 3327) +4(3397 3468 3469 3398) +4(3468 3539 3540 3469) +4(3539 3610 3611 3540) +4(61 132 133 62) +4(132 203 204 133) +4(203 274 275 204) +4(274 345 346 275) +4(345 416 417 346) +4(416 487 488 417) +4(487 558 559 488) +4(558 629 630 559) +4(629 700 701 630) +4(700 771 772 701) +4(771 842 843 772) +4(842 913 914 843) +4(913 984 985 914) +4(984 1055 1056 985) +4(1055 1126 1127 1056) +4(1126 1197 1198 1127) +4(1197 1268 1269 1198) +4(1268 1339 1340 1269) +4(1339 1410 1411 1340) +4(1410 1481 1482 1411) +4(1481 1552 1553 1482) +4(1552 1623 1624 1553) +4(1623 1694 1695 1624) +4(1694 1765 1766 1695) +4(1765 1836 1837 1766) +4(1836 1907 1908 1837) +4(1907 1978 1979 1908) +4(1978 2049 2050 1979) +4(2049 2120 2121 2050) +4(2120 2191 2192 2121) +4(2191 2262 2263 2192) +4(2262 2333 2334 2263) +4(2333 2404 2405 2334) +4(2404 2475 2476 2405) +4(2475 2546 2547 2476) +4(2546 2617 2618 2547) +4(2617 2688 2689 2618) +4(2688 2759 2760 2689) +4(2759 2830 2831 2760) +4(2830 2901 2902 2831) +4(2901 2972 2973 2902) +4(2972 3043 3044 2973) +4(3043 3114 3115 3044) +4(3114 3185 3186 3115) +4(3185 3256 3257 3186) +4(3256 3327 3328 3257) +4(3327 3398 3399 3328) +4(3398 3469 3470 3399) +4(3469 3540 3541 3470) +4(3540 3611 3612 3541) +4(62 133 134 63) +4(133 204 205 134) +4(204 275 276 205) +4(275 346 347 276) +4(346 417 418 347) +4(417 488 489 418) +4(488 559 560 489) +4(559 630 631 560) +4(630 701 702 631) +4(701 772 773 702) +4(772 843 844 773) +4(843 914 915 844) +4(914 985 986 915) +4(985 1056 1057 986) +4(1056 1127 1128 1057) +4(1127 1198 1199 1128) +4(1198 1269 1270 1199) +4(1269 1340 1341 1270) +4(1340 1411 1412 1341) +4(1411 1482 1483 1412) +4(1482 1553 1554 1483) +4(1553 1624 1625 1554) +4(1624 1695 1696 1625) +4(1695 1766 1767 1696) +4(1766 1837 1838 1767) +4(1837 1908 1909 1838) +4(1908 1979 1980 1909) +4(1979 2050 2051 1980) +4(2050 2121 2122 2051) +4(2121 2192 2193 2122) +4(2192 2263 2264 2193) +4(2263 2334 2335 2264) +4(2334 2405 2406 2335) +4(2405 2476 2477 2406) +4(2476 2547 2548 2477) +4(2547 2618 2619 2548) +4(2618 2689 2690 2619) +4(2689 2760 2761 2690) +4(2760 2831 2832 2761) +4(2831 2902 2903 2832) +4(2902 2973 2974 2903) +4(2973 3044 3045 2974) +4(3044 3115 3116 3045) +4(3115 3186 3187 3116) +4(3186 3257 3258 3187) +4(3257 3328 3329 3258) +4(3328 3399 3400 3329) +4(3399 3470 3471 3400) +4(3470 3541 3542 3471) +4(3541 3612 3613 3542) +4(63 134 135 64) +4(134 205 206 135) +4(205 276 277 206) +4(276 347 348 277) +4(347 418 419 348) +4(418 489 490 419) +4(489 560 561 490) +4(560 631 632 561) +4(631 702 703 632) +4(702 773 774 703) +4(773 844 845 774) +4(844 915 916 845) +4(915 986 987 916) +4(986 1057 1058 987) +4(1057 1128 1129 1058) +4(1128 1199 1200 1129) +4(1199 1270 1271 1200) +4(1270 1341 1342 1271) +4(1341 1412 1413 1342) +4(1412 1483 1484 1413) +4(1483 1554 1555 1484) +4(1554 1625 1626 1555) +4(1625 1696 1697 1626) +4(1696 1767 1768 1697) +4(1767 1838 1839 1768) +4(1838 1909 1910 1839) +4(1909 1980 1981 1910) +4(1980 2051 2052 1981) +4(2051 2122 2123 2052) +4(2122 2193 2194 2123) +4(2193 2264 2265 2194) +4(2264 2335 2336 2265) +4(2335 2406 2407 2336) +4(2406 2477 2478 2407) +4(2477 2548 2549 2478) +4(2548 2619 2620 2549) +4(2619 2690 2691 2620) +4(2690 2761 2762 2691) +4(2761 2832 2833 2762) +4(2832 2903 2904 2833) +4(2903 2974 2975 2904) +4(2974 3045 3046 2975) +4(3045 3116 3117 3046) +4(3116 3187 3188 3117) +4(3187 3258 3259 3188) +4(3258 3329 3330 3259) +4(3329 3400 3401 3330) +4(3400 3471 3472 3401) +4(3471 3542 3543 3472) +4(3542 3613 3614 3543) +4(64 135 136 65) +4(135 206 207 136) +4(206 277 278 207) +4(277 348 349 278) +4(348 419 420 349) +4(419 490 491 420) +4(490 561 562 491) +4(561 632 633 562) +4(632 703 704 633) +4(703 774 775 704) +4(774 845 846 775) +4(845 916 917 846) +4(916 987 988 917) +4(987 1058 1059 988) +4(1058 1129 1130 1059) +4(1129 1200 1201 1130) +4(1200 1271 1272 1201) +4(1271 1342 1343 1272) +4(1342 1413 1414 1343) +4(1413 1484 1485 1414) +4(1484 1555 1556 1485) +4(1555 1626 1627 1556) +4(1626 1697 1698 1627) +4(1697 1768 1769 1698) +4(1768 1839 1840 1769) +4(1839 1910 1911 1840) +4(1910 1981 1982 1911) +4(1981 2052 2053 1982) +4(2052 2123 2124 2053) +4(2123 2194 2195 2124) +4(2194 2265 2266 2195) +4(2265 2336 2337 2266) +4(2336 2407 2408 2337) +4(2407 2478 2479 2408) +4(2478 2549 2550 2479) +4(2549 2620 2621 2550) +4(2620 2691 2692 2621) +4(2691 2762 2763 2692) +4(2762 2833 2834 2763) +4(2833 2904 2905 2834) +4(2904 2975 2976 2905) +4(2975 3046 3047 2976) +4(3046 3117 3118 3047) +4(3117 3188 3189 3118) +4(3188 3259 3260 3189) +4(3259 3330 3331 3260) +4(3330 3401 3402 3331) +4(3401 3472 3473 3402) +4(3472 3543 3544 3473) +4(3543 3614 3615 3544) +4(65 136 137 66) +4(136 207 208 137) +4(207 278 279 208) +4(278 349 350 279) +4(349 420 421 350) +4(420 491 492 421) +4(491 562 563 492) +4(562 633 634 563) +4(633 704 705 634) +4(704 775 776 705) +4(775 846 847 776) +4(846 917 918 847) +4(917 988 989 918) +4(988 1059 1060 989) +4(1059 1130 1131 1060) +4(1130 1201 1202 1131) +4(1201 1272 1273 1202) +4(1272 1343 1344 1273) +4(1343 1414 1415 1344) +4(1414 1485 1486 1415) +4(1485 1556 1557 1486) +4(1556 1627 1628 1557) +4(1627 1698 1699 1628) +4(1698 1769 1770 1699) +4(1769 1840 1841 1770) +4(1840 1911 1912 1841) +4(1911 1982 1983 1912) +4(1982 2053 2054 1983) +4(2053 2124 2125 2054) +4(2124 2195 2196 2125) +4(2195 2266 2267 2196) +4(2266 2337 2338 2267) +4(2337 2408 2409 2338) +4(2408 2479 2480 2409) +4(2479 2550 2551 2480) +4(2550 2621 2622 2551) +4(2621 2692 2693 2622) +4(2692 2763 2764 2693) +4(2763 2834 2835 2764) +4(2834 2905 2906 2835) +4(2905 2976 2977 2906) +4(2976 3047 3048 2977) +4(3047 3118 3119 3048) +4(3118 3189 3190 3119) +4(3189 3260 3261 3190) +4(3260 3331 3332 3261) +4(3331 3402 3403 3332) +4(3402 3473 3474 3403) +4(3473 3544 3545 3474) +4(3544 3615 3616 3545) +4(66 137 138 67) +4(137 208 209 138) +4(208 279 280 209) +4(279 350 351 280) +4(350 421 422 351) +4(421 492 493 422) +4(492 563 564 493) +4(563 634 635 564) +4(634 705 706 635) +4(705 776 777 706) +4(776 847 848 777) +4(847 918 919 848) +4(918 989 990 919) +4(989 1060 1061 990) +4(1060 1131 1132 1061) +4(1131 1202 1203 1132) +4(1202 1273 1274 1203) +4(1273 1344 1345 1274) +4(1344 1415 1416 1345) +4(1415 1486 1487 1416) +4(1486 1557 1558 1487) +4(1557 1628 1629 1558) +4(1628 1699 1700 1629) +4(1699 1770 1771 1700) +4(1770 1841 1842 1771) +4(1841 1912 1913 1842) +4(1912 1983 1984 1913) +4(1983 2054 2055 1984) +4(2054 2125 2126 2055) +4(2125 2196 2197 2126) +4(2196 2267 2268 2197) +4(2267 2338 2339 2268) +4(2338 2409 2410 2339) +4(2409 2480 2481 2410) +4(2480 2551 2552 2481) +4(2551 2622 2623 2552) +4(2622 2693 2694 2623) +4(2693 2764 2765 2694) +4(2764 2835 2836 2765) +4(2835 2906 2907 2836) +4(2906 2977 2978 2907) +4(2977 3048 3049 2978) +4(3048 3119 3120 3049) +4(3119 3190 3191 3120) +4(3190 3261 3262 3191) +4(3261 3332 3333 3262) +4(3332 3403 3404 3333) +4(3403 3474 3475 3404) +4(3474 3545 3546 3475) +4(3545 3616 3617 3546) +4(67 138 139 68) +4(138 209 210 139) +4(209 280 281 210) +4(280 351 352 281) +4(351 422 423 352) +4(422 493 494 423) +4(493 564 565 494) +4(564 635 636 565) +4(635 706 707 636) +4(706 777 778 707) +4(777 848 849 778) +4(848 919 920 849) +4(919 990 991 920) +4(990 1061 1062 991) +4(1061 1132 1133 1062) +4(1132 1203 1204 1133) +4(1203 1274 1275 1204) +4(1274 1345 1346 1275) +4(1345 1416 1417 1346) +4(1416 1487 1488 1417) +4(1487 1558 1559 1488) +4(1558 1629 1630 1559) +4(1629 1700 1701 1630) +4(1700 1771 1772 1701) +4(1771 1842 1843 1772) +4(1842 1913 1914 1843) +4(1913 1984 1985 1914) +4(1984 2055 2056 1985) +4(2055 2126 2127 2056) +4(2126 2197 2198 2127) +4(2197 2268 2269 2198) +4(2268 2339 2340 2269) +4(2339 2410 2411 2340) +4(2410 2481 2482 2411) +4(2481 2552 2553 2482) +4(2552 2623 2624 2553) +4(2623 2694 2695 2624) +4(2694 2765 2766 2695) +4(2765 2836 2837 2766) +4(2836 2907 2908 2837) +4(2907 2978 2979 2908) +4(2978 3049 3050 2979) +4(3049 3120 3121 3050) +4(3120 3191 3192 3121) +4(3191 3262 3263 3192) +4(3262 3333 3334 3263) +4(3333 3404 3405 3334) +4(3404 3475 3476 3405) +4(3475 3546 3547 3476) +4(3546 3617 3618 3547) +4(68 139 140 69) +4(139 210 211 140) +4(210 281 282 211) +4(281 352 353 282) +4(352 423 424 353) +4(423 494 495 424) +4(494 565 566 495) +4(565 636 637 566) +4(636 707 708 637) +4(707 778 779 708) +4(778 849 850 779) +4(849 920 921 850) +4(920 991 992 921) +4(991 1062 1063 992) +4(1062 1133 1134 1063) +4(1133 1204 1205 1134) +4(1204 1275 1276 1205) +4(1275 1346 1347 1276) +4(1346 1417 1418 1347) +4(1417 1488 1489 1418) +4(1488 1559 1560 1489) +4(1559 1630 1631 1560) +4(1630 1701 1702 1631) +4(1701 1772 1773 1702) +4(1772 1843 1844 1773) +4(1843 1914 1915 1844) +4(1914 1985 1986 1915) +4(1985 2056 2057 1986) +4(2056 2127 2128 2057) +4(2127 2198 2199 2128) +4(2198 2269 2270 2199) +4(2269 2340 2341 2270) +4(2340 2411 2412 2341) +4(2411 2482 2483 2412) +4(2482 2553 2554 2483) +4(2553 2624 2625 2554) +4(2624 2695 2696 2625) +4(2695 2766 2767 2696) +4(2766 2837 2838 2767) +4(2837 2908 2909 2838) +4(2908 2979 2980 2909) +4(2979 3050 3051 2980) +4(3050 3121 3122 3051) +4(3121 3192 3193 3122) +4(3192 3263 3264 3193) +4(3263 3334 3335 3264) +4(3334 3405 3406 3335) +4(3405 3476 3477 3406) +4(3476 3547 3548 3477) +4(3547 3618 3619 3548) +4(69 140 141 70) +4(140 211 212 141) +4(211 282 283 212) +4(282 353 354 283) +4(353 424 425 354) +4(424 495 496 425) +4(495 566 567 496) +4(566 637 638 567) +4(637 708 709 638) +4(708 779 780 709) +4(779 850 851 780) +4(850 921 922 851) +4(921 992 993 922) +4(992 1063 1064 993) +4(1063 1134 1135 1064) +4(1134 1205 1206 1135) +4(1205 1276 1277 1206) +4(1276 1347 1348 1277) +4(1347 1418 1419 1348) +4(1418 1489 1490 1419) +4(1489 1560 1561 1490) +4(1560 1631 1632 1561) +4(1631 1702 1703 1632) +4(1702 1773 1774 1703) +4(1773 1844 1845 1774) +4(1844 1915 1916 1845) +4(1915 1986 1987 1916) +4(1986 2057 2058 1987) +4(2057 2128 2129 2058) +4(2128 2199 2200 2129) +4(2199 2270 2271 2200) +4(2270 2341 2342 2271) +4(2341 2412 2413 2342) +4(2412 2483 2484 2413) +4(2483 2554 2555 2484) +4(2554 2625 2626 2555) +4(2625 2696 2697 2626) +4(2696 2767 2768 2697) +4(2767 2838 2839 2768) +4(2838 2909 2910 2839) +4(2909 2980 2981 2910) +4(2980 3051 3052 2981) +4(3051 3122 3123 3052) +4(3122 3193 3194 3123) +4(3193 3264 3265 3194) +4(3264 3335 3336 3265) +4(3335 3406 3407 3336) +4(3406 3477 3478 3407) +4(3477 3548 3549 3478) +4(3548 3619 3620 3549) +4(3621 3622 3693 3692) +4(3692 3693 3764 3763) +4(3763 3764 3835 3834) +4(3834 3835 3906 3905) +4(3905 3906 3977 3976) +4(3976 3977 4048 4047) +4(4047 4048 4119 4118) +4(4118 4119 4190 4189) +4(4189 4190 4261 4260) +4(4260 4261 4332 4331) +4(4331 4332 4403 4402) +4(4402 4403 4474 4473) +4(4473 4474 4545 4544) +4(4544 4545 4616 4615) +4(4615 4616 4687 4686) +4(4686 4687 4758 4757) +4(4757 4758 4829 4828) +4(4828 4829 4900 4899) +4(4899 4900 4971 4970) +4(4970 4971 5042 5041) +4(5041 5042 5113 5112) +4(5112 5113 5184 5183) +4(5183 5184 5255 5254) +4(5254 5255 5326 5325) +4(5325 5326 5397 5396) +4(5396 5397 5468 5467) +4(5467 5468 5539 5538) +4(5538 5539 5610 5609) +4(5609 5610 5681 5680) +4(5680 5681 5752 5751) +4(5751 5752 5823 5822) +4(5822 5823 5894 5893) +4(5893 5894 5965 5964) +4(5964 5965 6036 6035) +4(6035 6036 6107 6106) +4(6106 6107 6178 6177) +4(6177 6178 6249 6248) +4(6248 6249 6320 6319) +4(6319 6320 6391 6390) +4(6390 6391 6462 6461) +4(6461 6462 6533 6532) +4(6532 6533 6604 6603) +4(6603 6604 6675 6674) +4(6674 6675 6746 6745) +4(6745 6746 6817 6816) +4(6816 6817 6888 6887) +4(6887 6888 6959 6958) +4(6958 6959 7030 7029) +4(7029 7030 7101 7100) +4(7100 7101 7172 7171) +4(3622 3623 3694 3693) +4(3693 3694 3765 3764) +4(3764 3765 3836 3835) +4(3835 3836 3907 3906) +4(3906 3907 3978 3977) +4(3977 3978 4049 4048) +4(4048 4049 4120 4119) +4(4119 4120 4191 4190) +4(4190 4191 4262 4261) +4(4261 4262 4333 4332) +4(4332 4333 4404 4403) +4(4403 4404 4475 4474) +4(4474 4475 4546 4545) +4(4545 4546 4617 4616) +4(4616 4617 4688 4687) +4(4687 4688 4759 4758) +4(4758 4759 4830 4829) +4(4829 4830 4901 4900) +4(4900 4901 4972 4971) +4(4971 4972 5043 5042) +4(5042 5043 5114 5113) +4(5113 5114 5185 5184) +4(5184 5185 5256 5255) +4(5255 5256 5327 5326) +4(5326 5327 5398 5397) +4(5397 5398 5469 5468) +4(5468 5469 5540 5539) +4(5539 5540 5611 5610) +4(5610 5611 5682 5681) +4(5681 5682 5753 5752) +4(5752 5753 5824 5823) +4(5823 5824 5895 5894) +4(5894 5895 5966 5965) +4(5965 5966 6037 6036) +4(6036 6037 6108 6107) +4(6107 6108 6179 6178) +4(6178 6179 6250 6249) +4(6249 6250 6321 6320) +4(6320 6321 6392 6391) +4(6391 6392 6463 6462) +4(6462 6463 6534 6533) +4(6533 6534 6605 6604) +4(6604 6605 6676 6675) +4(6675 6676 6747 6746) +4(6746 6747 6818 6817) +4(6817 6818 6889 6888) +4(6888 6889 6960 6959) +4(6959 6960 7031 7030) +4(7030 7031 7102 7101) +4(7101 7102 7173 7172) +4(3623 3624 3695 3694) +4(3694 3695 3766 3765) +4(3765 3766 3837 3836) +4(3836 3837 3908 3907) +4(3907 3908 3979 3978) +4(3978 3979 4050 4049) +4(4049 4050 4121 4120) +4(4120 4121 4192 4191) +4(4191 4192 4263 4262) +4(4262 4263 4334 4333) +4(4333 4334 4405 4404) +4(4404 4405 4476 4475) +4(4475 4476 4547 4546) +4(4546 4547 4618 4617) +4(4617 4618 4689 4688) +4(4688 4689 4760 4759) +4(4759 4760 4831 4830) +4(4830 4831 4902 4901) +4(4901 4902 4973 4972) +4(4972 4973 5044 5043) +4(5043 5044 5115 5114) +4(5114 5115 5186 5185) +4(5185 5186 5257 5256) +4(5256 5257 5328 5327) +4(5327 5328 5399 5398) +4(5398 5399 5470 5469) +4(5469 5470 5541 5540) +4(5540 5541 5612 5611) +4(5611 5612 5683 5682) +4(5682 5683 5754 5753) +4(5753 5754 5825 5824) +4(5824 5825 5896 5895) +4(5895 5896 5967 5966) +4(5966 5967 6038 6037) +4(6037 6038 6109 6108) +4(6108 6109 6180 6179) +4(6179 6180 6251 6250) +4(6250 6251 6322 6321) +4(6321 6322 6393 6392) +4(6392 6393 6464 6463) +4(6463 6464 6535 6534) +4(6534 6535 6606 6605) +4(6605 6606 6677 6676) +4(6676 6677 6748 6747) +4(6747 6748 6819 6818) +4(6818 6819 6890 6889) +4(6889 6890 6961 6960) +4(6960 6961 7032 7031) +4(7031 7032 7103 7102) +4(7102 7103 7174 7173) +4(3624 3625 3696 3695) +4(3695 3696 3767 3766) +4(3766 3767 3838 3837) +4(3837 3838 3909 3908) +4(3908 3909 3980 3979) +4(3979 3980 4051 4050) +4(4050 4051 4122 4121) +4(4121 4122 4193 4192) +4(4192 4193 4264 4263) +4(4263 4264 4335 4334) +4(4334 4335 4406 4405) +4(4405 4406 4477 4476) +4(4476 4477 4548 4547) +4(4547 4548 4619 4618) +4(4618 4619 4690 4689) +4(4689 4690 4761 4760) +4(4760 4761 4832 4831) +4(4831 4832 4903 4902) +4(4902 4903 4974 4973) +4(4973 4974 5045 5044) +4(5044 5045 5116 5115) +4(5115 5116 5187 5186) +4(5186 5187 5258 5257) +4(5257 5258 5329 5328) +4(5328 5329 5400 5399) +4(5399 5400 5471 5470) +4(5470 5471 5542 5541) +4(5541 5542 5613 5612) +4(5612 5613 5684 5683) +4(5683 5684 5755 5754) +4(5754 5755 5826 5825) +4(5825 5826 5897 5896) +4(5896 5897 5968 5967) +4(5967 5968 6039 6038) +4(6038 6039 6110 6109) +4(6109 6110 6181 6180) +4(6180 6181 6252 6251) +4(6251 6252 6323 6322) +4(6322 6323 6394 6393) +4(6393 6394 6465 6464) +4(6464 6465 6536 6535) +4(6535 6536 6607 6606) +4(6606 6607 6678 6677) +4(6677 6678 6749 6748) +4(6748 6749 6820 6819) +4(6819 6820 6891 6890) +4(6890 6891 6962 6961) +4(6961 6962 7033 7032) +4(7032 7033 7104 7103) +4(7103 7104 7175 7174) +4(3625 3626 3697 3696) +4(3696 3697 3768 3767) +4(3767 3768 3839 3838) +4(3838 3839 3910 3909) +4(3909 3910 3981 3980) +4(3980 3981 4052 4051) +4(4051 4052 4123 4122) +4(4122 4123 4194 4193) +4(4193 4194 4265 4264) +4(4264 4265 4336 4335) +4(4335 4336 4407 4406) +4(4406 4407 4478 4477) +4(4477 4478 4549 4548) +4(4548 4549 4620 4619) +4(4619 4620 4691 4690) +4(4690 4691 4762 4761) +4(4761 4762 4833 4832) +4(4832 4833 4904 4903) +4(4903 4904 4975 4974) +4(4974 4975 5046 5045) +4(5045 5046 5117 5116) +4(5116 5117 5188 5187) +4(5187 5188 5259 5258) +4(5258 5259 5330 5329) +4(5329 5330 5401 5400) +4(5400 5401 5472 5471) +4(5471 5472 5543 5542) +4(5542 5543 5614 5613) +4(5613 5614 5685 5684) +4(5684 5685 5756 5755) +4(5755 5756 5827 5826) +4(5826 5827 5898 5897) +4(5897 5898 5969 5968) +4(5968 5969 6040 6039) +4(6039 6040 6111 6110) +4(6110 6111 6182 6181) +4(6181 6182 6253 6252) +4(6252 6253 6324 6323) +4(6323 6324 6395 6394) +4(6394 6395 6466 6465) +4(6465 6466 6537 6536) +4(6536 6537 6608 6607) +4(6607 6608 6679 6678) +4(6678 6679 6750 6749) +4(6749 6750 6821 6820) +4(6820 6821 6892 6891) +4(6891 6892 6963 6962) +4(6962 6963 7034 7033) +4(7033 7034 7105 7104) +4(7104 7105 7176 7175) +4(3626 3627 3698 3697) +4(3697 3698 3769 3768) +4(3768 3769 3840 3839) +4(3839 3840 3911 3910) +4(3910 3911 3982 3981) +4(3981 3982 4053 4052) +4(4052 4053 4124 4123) +4(4123 4124 4195 4194) +4(4194 4195 4266 4265) +4(4265 4266 4337 4336) +4(4336 4337 4408 4407) +4(4407 4408 4479 4478) +4(4478 4479 4550 4549) +4(4549 4550 4621 4620) +4(4620 4621 4692 4691) +4(4691 4692 4763 4762) +4(4762 4763 4834 4833) +4(4833 4834 4905 4904) +4(4904 4905 4976 4975) +4(4975 4976 5047 5046) +4(5046 5047 5118 5117) +4(5117 5118 5189 5188) +4(5188 5189 5260 5259) +4(5259 5260 5331 5330) +4(5330 5331 5402 5401) +4(5401 5402 5473 5472) +4(5472 5473 5544 5543) +4(5543 5544 5615 5614) +4(5614 5615 5686 5685) +4(5685 5686 5757 5756) +4(5756 5757 5828 5827) +4(5827 5828 5899 5898) +4(5898 5899 5970 5969) +4(5969 5970 6041 6040) +4(6040 6041 6112 6111) +4(6111 6112 6183 6182) +4(6182 6183 6254 6253) +4(6253 6254 6325 6324) +4(6324 6325 6396 6395) +4(6395 6396 6467 6466) +4(6466 6467 6538 6537) +4(6537 6538 6609 6608) +4(6608 6609 6680 6679) +4(6679 6680 6751 6750) +4(6750 6751 6822 6821) +4(6821 6822 6893 6892) +4(6892 6893 6964 6963) +4(6963 6964 7035 7034) +4(7034 7035 7106 7105) +4(7105 7106 7177 7176) +4(3627 3628 3699 3698) +4(3698 3699 3770 3769) +4(3769 3770 3841 3840) +4(3840 3841 3912 3911) +4(3911 3912 3983 3982) +4(3982 3983 4054 4053) +4(4053 4054 4125 4124) +4(4124 4125 4196 4195) +4(4195 4196 4267 4266) +4(4266 4267 4338 4337) +4(4337 4338 4409 4408) +4(4408 4409 4480 4479) +4(4479 4480 4551 4550) +4(4550 4551 4622 4621) +4(4621 4622 4693 4692) +4(4692 4693 4764 4763) +4(4763 4764 4835 4834) +4(4834 4835 4906 4905) +4(4905 4906 4977 4976) +4(4976 4977 5048 5047) +4(5047 5048 5119 5118) +4(5118 5119 5190 5189) +4(5189 5190 5261 5260) +4(5260 5261 5332 5331) +4(5331 5332 5403 5402) +4(5402 5403 5474 5473) +4(5473 5474 5545 5544) +4(5544 5545 5616 5615) +4(5615 5616 5687 5686) +4(5686 5687 5758 5757) +4(5757 5758 5829 5828) +4(5828 5829 5900 5899) +4(5899 5900 5971 5970) +4(5970 5971 6042 6041) +4(6041 6042 6113 6112) +4(6112 6113 6184 6183) +4(6183 6184 6255 6254) +4(6254 6255 6326 6325) +4(6325 6326 6397 6396) +4(6396 6397 6468 6467) +4(6467 6468 6539 6538) +4(6538 6539 6610 6609) +4(6609 6610 6681 6680) +4(6680 6681 6752 6751) +4(6751 6752 6823 6822) +4(6822 6823 6894 6893) +4(6893 6894 6965 6964) +4(6964 6965 7036 7035) +4(7035 7036 7107 7106) +4(7106 7107 7178 7177) +4(3628 3629 3700 3699) +4(3699 3700 3771 3770) +4(3770 3771 3842 3841) +4(3841 3842 3913 3912) +4(3912 3913 3984 3983) +4(3983 3984 4055 4054) +4(4054 4055 4126 4125) +4(4125 4126 4197 4196) +4(4196 4197 4268 4267) +4(4267 4268 4339 4338) +4(4338 4339 4410 4409) +4(4409 4410 4481 4480) +4(4480 4481 4552 4551) +4(4551 4552 4623 4622) +4(4622 4623 4694 4693) +4(4693 4694 4765 4764) +4(4764 4765 4836 4835) +4(4835 4836 4907 4906) +4(4906 4907 4978 4977) +4(4977 4978 5049 5048) +4(5048 5049 5120 5119) +4(5119 5120 5191 5190) +4(5190 5191 5262 5261) +4(5261 5262 5333 5332) +4(5332 5333 5404 5403) +4(5403 5404 5475 5474) +4(5474 5475 5546 5545) +4(5545 5546 5617 5616) +4(5616 5617 5688 5687) +4(5687 5688 5759 5758) +4(5758 5759 5830 5829) +4(5829 5830 5901 5900) +4(5900 5901 5972 5971) +4(5971 5972 6043 6042) +4(6042 6043 6114 6113) +4(6113 6114 6185 6184) +4(6184 6185 6256 6255) +4(6255 6256 6327 6326) +4(6326 6327 6398 6397) +4(6397 6398 6469 6468) +4(6468 6469 6540 6539) +4(6539 6540 6611 6610) +4(6610 6611 6682 6681) +4(6681 6682 6753 6752) +4(6752 6753 6824 6823) +4(6823 6824 6895 6894) +4(6894 6895 6966 6965) +4(6965 6966 7037 7036) +4(7036 7037 7108 7107) +4(7107 7108 7179 7178) +4(3629 3630 3701 3700) +4(3700 3701 3772 3771) +4(3771 3772 3843 3842) +4(3842 3843 3914 3913) +4(3913 3914 3985 3984) +4(3984 3985 4056 4055) +4(4055 4056 4127 4126) +4(4126 4127 4198 4197) +4(4197 4198 4269 4268) +4(4268 4269 4340 4339) +4(4339 4340 4411 4410) +4(4410 4411 4482 4481) +4(4481 4482 4553 4552) +4(4552 4553 4624 4623) +4(4623 4624 4695 4694) +4(4694 4695 4766 4765) +4(4765 4766 4837 4836) +4(4836 4837 4908 4907) +4(4907 4908 4979 4978) +4(4978 4979 5050 5049) +4(5049 5050 5121 5120) +4(5120 5121 5192 5191) +4(5191 5192 5263 5262) +4(5262 5263 5334 5333) +4(5333 5334 5405 5404) +4(5404 5405 5476 5475) +4(5475 5476 5547 5546) +4(5546 5547 5618 5617) +4(5617 5618 5689 5688) +4(5688 5689 5760 5759) +4(5759 5760 5831 5830) +4(5830 5831 5902 5901) +4(5901 5902 5973 5972) +4(5972 5973 6044 6043) +4(6043 6044 6115 6114) +4(6114 6115 6186 6185) +4(6185 6186 6257 6256) +4(6256 6257 6328 6327) +4(6327 6328 6399 6398) +4(6398 6399 6470 6469) +4(6469 6470 6541 6540) +4(6540 6541 6612 6611) +4(6611 6612 6683 6682) +4(6682 6683 6754 6753) +4(6753 6754 6825 6824) +4(6824 6825 6896 6895) +4(6895 6896 6967 6966) +4(6966 6967 7038 7037) +4(7037 7038 7109 7108) +4(7108 7109 7180 7179) +4(3630 3631 3702 3701) +4(3701 3702 3773 3772) +4(3772 3773 3844 3843) +4(3843 3844 3915 3914) +4(3914 3915 3986 3985) +4(3985 3986 4057 4056) +4(4056 4057 4128 4127) +4(4127 4128 4199 4198) +4(4198 4199 4270 4269) +4(4269 4270 4341 4340) +4(4340 4341 4412 4411) +4(4411 4412 4483 4482) +4(4482 4483 4554 4553) +4(4553 4554 4625 4624) +4(4624 4625 4696 4695) +4(4695 4696 4767 4766) +4(4766 4767 4838 4837) +4(4837 4838 4909 4908) +4(4908 4909 4980 4979) +4(4979 4980 5051 5050) +4(5050 5051 5122 5121) +4(5121 5122 5193 5192) +4(5192 5193 5264 5263) +4(5263 5264 5335 5334) +4(5334 5335 5406 5405) +4(5405 5406 5477 5476) +4(5476 5477 5548 5547) +4(5547 5548 5619 5618) +4(5618 5619 5690 5689) +4(5689 5690 5761 5760) +4(5760 5761 5832 5831) +4(5831 5832 5903 5902) +4(5902 5903 5974 5973) +4(5973 5974 6045 6044) +4(6044 6045 6116 6115) +4(6115 6116 6187 6186) +4(6186 6187 6258 6257) +4(6257 6258 6329 6328) +4(6328 6329 6400 6399) +4(6399 6400 6471 6470) +4(6470 6471 6542 6541) +4(6541 6542 6613 6612) +4(6612 6613 6684 6683) +4(6683 6684 6755 6754) +4(6754 6755 6826 6825) +4(6825 6826 6897 6896) +4(6896 6897 6968 6967) +4(6967 6968 7039 7038) +4(7038 7039 7110 7109) +4(7109 7110 7181 7180) +4(3631 3632 3703 3702) +4(3702 3703 3774 3773) +4(3773 3774 3845 3844) +4(3844 3845 3916 3915) +4(3915 3916 3987 3986) +4(3986 3987 4058 4057) +4(4057 4058 4129 4128) +4(4128 4129 4200 4199) +4(4199 4200 4271 4270) +4(4270 4271 4342 4341) +4(4341 4342 4413 4412) +4(4412 4413 4484 4483) +4(4483 4484 4555 4554) +4(4554 4555 4626 4625) +4(4625 4626 4697 4696) +4(4696 4697 4768 4767) +4(4767 4768 4839 4838) +4(4838 4839 4910 4909) +4(4909 4910 4981 4980) +4(4980 4981 5052 5051) +4(5051 5052 5123 5122) +4(5122 5123 5194 5193) +4(5193 5194 5265 5264) +4(5264 5265 5336 5335) +4(5335 5336 5407 5406) +4(5406 5407 5478 5477) +4(5477 5478 5549 5548) +4(5548 5549 5620 5619) +4(5619 5620 5691 5690) +4(5690 5691 5762 5761) +4(5761 5762 5833 5832) +4(5832 5833 5904 5903) +4(5903 5904 5975 5974) +4(5974 5975 6046 6045) +4(6045 6046 6117 6116) +4(6116 6117 6188 6187) +4(6187 6188 6259 6258) +4(6258 6259 6330 6329) +4(6329 6330 6401 6400) +4(6400 6401 6472 6471) +4(6471 6472 6543 6542) +4(6542 6543 6614 6613) +4(6613 6614 6685 6684) +4(6684 6685 6756 6755) +4(6755 6756 6827 6826) +4(6826 6827 6898 6897) +4(6897 6898 6969 6968) +4(6968 6969 7040 7039) +4(7039 7040 7111 7110) +4(7110 7111 7182 7181) +4(3632 3633 3704 3703) +4(3703 3704 3775 3774) +4(3774 3775 3846 3845) +4(3845 3846 3917 3916) +4(3916 3917 3988 3987) +4(3987 3988 4059 4058) +4(4058 4059 4130 4129) +4(4129 4130 4201 4200) +4(4200 4201 4272 4271) +4(4271 4272 4343 4342) +4(4342 4343 4414 4413) +4(4413 4414 4485 4484) +4(4484 4485 4556 4555) +4(4555 4556 4627 4626) +4(4626 4627 4698 4697) +4(4697 4698 4769 4768) +4(4768 4769 4840 4839) +4(4839 4840 4911 4910) +4(4910 4911 4982 4981) +4(4981 4982 5053 5052) +4(5052 5053 5124 5123) +4(5123 5124 5195 5194) +4(5194 5195 5266 5265) +4(5265 5266 5337 5336) +4(5336 5337 5408 5407) +4(5407 5408 5479 5478) +4(5478 5479 5550 5549) +4(5549 5550 5621 5620) +4(5620 5621 5692 5691) +4(5691 5692 5763 5762) +4(5762 5763 5834 5833) +4(5833 5834 5905 5904) +4(5904 5905 5976 5975) +4(5975 5976 6047 6046) +4(6046 6047 6118 6117) +4(6117 6118 6189 6188) +4(6188 6189 6260 6259) +4(6259 6260 6331 6330) +4(6330 6331 6402 6401) +4(6401 6402 6473 6472) +4(6472 6473 6544 6543) +4(6543 6544 6615 6614) +4(6614 6615 6686 6685) +4(6685 6686 6757 6756) +4(6756 6757 6828 6827) +4(6827 6828 6899 6898) +4(6898 6899 6970 6969) +4(6969 6970 7041 7040) +4(7040 7041 7112 7111) +4(7111 7112 7183 7182) +4(3633 3634 3705 3704) +4(3704 3705 3776 3775) +4(3775 3776 3847 3846) +4(3846 3847 3918 3917) +4(3917 3918 3989 3988) +4(3988 3989 4060 4059) +4(4059 4060 4131 4130) +4(4130 4131 4202 4201) +4(4201 4202 4273 4272) +4(4272 4273 4344 4343) +4(4343 4344 4415 4414) +4(4414 4415 4486 4485) +4(4485 4486 4557 4556) +4(4556 4557 4628 4627) +4(4627 4628 4699 4698) +4(4698 4699 4770 4769) +4(4769 4770 4841 4840) +4(4840 4841 4912 4911) +4(4911 4912 4983 4982) +4(4982 4983 5054 5053) +4(5053 5054 5125 5124) +4(5124 5125 5196 5195) +4(5195 5196 5267 5266) +4(5266 5267 5338 5337) +4(5337 5338 5409 5408) +4(5408 5409 5480 5479) +4(5479 5480 5551 5550) +4(5550 5551 5622 5621) +4(5621 5622 5693 5692) +4(5692 5693 5764 5763) +4(5763 5764 5835 5834) +4(5834 5835 5906 5905) +4(5905 5906 5977 5976) +4(5976 5977 6048 6047) +4(6047 6048 6119 6118) +4(6118 6119 6190 6189) +4(6189 6190 6261 6260) +4(6260 6261 6332 6331) +4(6331 6332 6403 6402) +4(6402 6403 6474 6473) +4(6473 6474 6545 6544) +4(6544 6545 6616 6615) +4(6615 6616 6687 6686) +4(6686 6687 6758 6757) +4(6757 6758 6829 6828) +4(6828 6829 6900 6899) +4(6899 6900 6971 6970) +4(6970 6971 7042 7041) +4(7041 7042 7113 7112) +4(7112 7113 7184 7183) +4(3634 3635 3706 3705) +4(3705 3706 3777 3776) +4(3776 3777 3848 3847) +4(3847 3848 3919 3918) +4(3918 3919 3990 3989) +4(3989 3990 4061 4060) +4(4060 4061 4132 4131) +4(4131 4132 4203 4202) +4(4202 4203 4274 4273) +4(4273 4274 4345 4344) +4(4344 4345 4416 4415) +4(4415 4416 4487 4486) +4(4486 4487 4558 4557) +4(4557 4558 4629 4628) +4(4628 4629 4700 4699) +4(4699 4700 4771 4770) +4(4770 4771 4842 4841) +4(4841 4842 4913 4912) +4(4912 4913 4984 4983) +4(4983 4984 5055 5054) +4(5054 5055 5126 5125) +4(5125 5126 5197 5196) +4(5196 5197 5268 5267) +4(5267 5268 5339 5338) +4(5338 5339 5410 5409) +4(5409 5410 5481 5480) +4(5480 5481 5552 5551) +4(5551 5552 5623 5622) +4(5622 5623 5694 5693) +4(5693 5694 5765 5764) +4(5764 5765 5836 5835) +4(5835 5836 5907 5906) +4(5906 5907 5978 5977) +4(5977 5978 6049 6048) +4(6048 6049 6120 6119) +4(6119 6120 6191 6190) +4(6190 6191 6262 6261) +4(6261 6262 6333 6332) +4(6332 6333 6404 6403) +4(6403 6404 6475 6474) +4(6474 6475 6546 6545) +4(6545 6546 6617 6616) +4(6616 6617 6688 6687) +4(6687 6688 6759 6758) +4(6758 6759 6830 6829) +4(6829 6830 6901 6900) +4(6900 6901 6972 6971) +4(6971 6972 7043 7042) +4(7042 7043 7114 7113) +4(7113 7114 7185 7184) +4(3635 3636 3707 3706) +4(3706 3707 3778 3777) +4(3777 3778 3849 3848) +4(3848 3849 3920 3919) +4(3919 3920 3991 3990) +4(3990 3991 4062 4061) +4(4061 4062 4133 4132) +4(4132 4133 4204 4203) +4(4203 4204 4275 4274) +4(4274 4275 4346 4345) +4(4345 4346 4417 4416) +4(4416 4417 4488 4487) +4(4487 4488 4559 4558) +4(4558 4559 4630 4629) +4(4629 4630 4701 4700) +4(4700 4701 4772 4771) +4(4771 4772 4843 4842) +4(4842 4843 4914 4913) +4(4913 4914 4985 4984) +4(4984 4985 5056 5055) +4(5055 5056 5127 5126) +4(5126 5127 5198 5197) +4(5197 5198 5269 5268) +4(5268 5269 5340 5339) +4(5339 5340 5411 5410) +4(5410 5411 5482 5481) +4(5481 5482 5553 5552) +4(5552 5553 5624 5623) +4(5623 5624 5695 5694) +4(5694 5695 5766 5765) +4(5765 5766 5837 5836) +4(5836 5837 5908 5907) +4(5907 5908 5979 5978) +4(5978 5979 6050 6049) +4(6049 6050 6121 6120) +4(6120 6121 6192 6191) +4(6191 6192 6263 6262) +4(6262 6263 6334 6333) +4(6333 6334 6405 6404) +4(6404 6405 6476 6475) +4(6475 6476 6547 6546) +4(6546 6547 6618 6617) +4(6617 6618 6689 6688) +4(6688 6689 6760 6759) +4(6759 6760 6831 6830) +4(6830 6831 6902 6901) +4(6901 6902 6973 6972) +4(6972 6973 7044 7043) +4(7043 7044 7115 7114) +4(7114 7115 7186 7185) +4(3636 3637 3708 3707) +4(3707 3708 3779 3778) +4(3778 3779 3850 3849) +4(3849 3850 3921 3920) +4(3920 3921 3992 3991) +4(3991 3992 4063 4062) +4(4062 4063 4134 4133) +4(4133 4134 4205 4204) +4(4204 4205 4276 4275) +4(4275 4276 4347 4346) +4(4346 4347 4418 4417) +4(4417 4418 4489 4488) +4(4488 4489 4560 4559) +4(4559 4560 4631 4630) +4(4630 4631 4702 4701) +4(4701 4702 4773 4772) +4(4772 4773 4844 4843) +4(4843 4844 4915 4914) +4(4914 4915 4986 4985) +4(4985 4986 5057 5056) +4(5056 5057 5128 5127) +4(5127 5128 5199 5198) +4(5198 5199 5270 5269) +4(5269 5270 5341 5340) +4(5340 5341 5412 5411) +4(5411 5412 5483 5482) +4(5482 5483 5554 5553) +4(5553 5554 5625 5624) +4(5624 5625 5696 5695) +4(5695 5696 5767 5766) +4(5766 5767 5838 5837) +4(5837 5838 5909 5908) +4(5908 5909 5980 5979) +4(5979 5980 6051 6050) +4(6050 6051 6122 6121) +4(6121 6122 6193 6192) +4(6192 6193 6264 6263) +4(6263 6264 6335 6334) +4(6334 6335 6406 6405) +4(6405 6406 6477 6476) +4(6476 6477 6548 6547) +4(6547 6548 6619 6618) +4(6618 6619 6690 6689) +4(6689 6690 6761 6760) +4(6760 6761 6832 6831) +4(6831 6832 6903 6902) +4(6902 6903 6974 6973) +4(6973 6974 7045 7044) +4(7044 7045 7116 7115) +4(7115 7116 7187 7186) +4(3637 3638 3709 3708) +4(3708 3709 3780 3779) +4(3779 3780 3851 3850) +4(3850 3851 3922 3921) +4(3921 3922 3993 3992) +4(3992 3993 4064 4063) +4(4063 4064 4135 4134) +4(4134 4135 4206 4205) +4(4205 4206 4277 4276) +4(4276 4277 4348 4347) +4(4347 4348 4419 4418) +4(4418 4419 4490 4489) +4(4489 4490 4561 4560) +4(4560 4561 4632 4631) +4(4631 4632 4703 4702) +4(4702 4703 4774 4773) +4(4773 4774 4845 4844) +4(4844 4845 4916 4915) +4(4915 4916 4987 4986) +4(4986 4987 5058 5057) +4(5057 5058 5129 5128) +4(5128 5129 5200 5199) +4(5199 5200 5271 5270) +4(5270 5271 5342 5341) +4(5341 5342 5413 5412) +4(5412 5413 5484 5483) +4(5483 5484 5555 5554) +4(5554 5555 5626 5625) +4(5625 5626 5697 5696) +4(5696 5697 5768 5767) +4(5767 5768 5839 5838) +4(5838 5839 5910 5909) +4(5909 5910 5981 5980) +4(5980 5981 6052 6051) +4(6051 6052 6123 6122) +4(6122 6123 6194 6193) +4(6193 6194 6265 6264) +4(6264 6265 6336 6335) +4(6335 6336 6407 6406) +4(6406 6407 6478 6477) +4(6477 6478 6549 6548) +4(6548 6549 6620 6619) +4(6619 6620 6691 6690) +4(6690 6691 6762 6761) +4(6761 6762 6833 6832) +4(6832 6833 6904 6903) +4(6903 6904 6975 6974) +4(6974 6975 7046 7045) +4(7045 7046 7117 7116) +4(7116 7117 7188 7187) +4(3638 3639 3710 3709) +4(3709 3710 3781 3780) +4(3780 3781 3852 3851) +4(3851 3852 3923 3922) +4(3922 3923 3994 3993) +4(3993 3994 4065 4064) +4(4064 4065 4136 4135) +4(4135 4136 4207 4206) +4(4206 4207 4278 4277) +4(4277 4278 4349 4348) +4(4348 4349 4420 4419) +4(4419 4420 4491 4490) +4(4490 4491 4562 4561) +4(4561 4562 4633 4632) +4(4632 4633 4704 4703) +4(4703 4704 4775 4774) +4(4774 4775 4846 4845) +4(4845 4846 4917 4916) +4(4916 4917 4988 4987) +4(4987 4988 5059 5058) +4(5058 5059 5130 5129) +4(5129 5130 5201 5200) +4(5200 5201 5272 5271) +4(5271 5272 5343 5342) +4(5342 5343 5414 5413) +4(5413 5414 5485 5484) +4(5484 5485 5556 5555) +4(5555 5556 5627 5626) +4(5626 5627 5698 5697) +4(5697 5698 5769 5768) +4(5768 5769 5840 5839) +4(5839 5840 5911 5910) +4(5910 5911 5982 5981) +4(5981 5982 6053 6052) +4(6052 6053 6124 6123) +4(6123 6124 6195 6194) +4(6194 6195 6266 6265) +4(6265 6266 6337 6336) +4(6336 6337 6408 6407) +4(6407 6408 6479 6478) +4(6478 6479 6550 6549) +4(6549 6550 6621 6620) +4(6620 6621 6692 6691) +4(6691 6692 6763 6762) +4(6762 6763 6834 6833) +4(6833 6834 6905 6904) +4(6904 6905 6976 6975) +4(6975 6976 7047 7046) +4(7046 7047 7118 7117) +4(7117 7118 7189 7188) +4(3639 3640 3711 3710) +4(3710 3711 3782 3781) +4(3781 3782 3853 3852) +4(3852 3853 3924 3923) +4(3923 3924 3995 3994) +4(3994 3995 4066 4065) +4(4065 4066 4137 4136) +4(4136 4137 4208 4207) +4(4207 4208 4279 4278) +4(4278 4279 4350 4349) +4(4349 4350 4421 4420) +4(4420 4421 4492 4491) +4(4491 4492 4563 4562) +4(4562 4563 4634 4633) +4(4633 4634 4705 4704) +4(4704 4705 4776 4775) +4(4775 4776 4847 4846) +4(4846 4847 4918 4917) +4(4917 4918 4989 4988) +4(4988 4989 5060 5059) +4(5059 5060 5131 5130) +4(5130 5131 5202 5201) +4(5201 5202 5273 5272) +4(5272 5273 5344 5343) +4(5343 5344 5415 5414) +4(5414 5415 5486 5485) +4(5485 5486 5557 5556) +4(5556 5557 5628 5627) +4(5627 5628 5699 5698) +4(5698 5699 5770 5769) +4(5769 5770 5841 5840) +4(5840 5841 5912 5911) +4(5911 5912 5983 5982) +4(5982 5983 6054 6053) +4(6053 6054 6125 6124) +4(6124 6125 6196 6195) +4(6195 6196 6267 6266) +4(6266 6267 6338 6337) +4(6337 6338 6409 6408) +4(6408 6409 6480 6479) +4(6479 6480 6551 6550) +4(6550 6551 6622 6621) +4(6621 6622 6693 6692) +4(6692 6693 6764 6763) +4(6763 6764 6835 6834) +4(6834 6835 6906 6905) +4(6905 6906 6977 6976) +4(6976 6977 7048 7047) +4(7047 7048 7119 7118) +4(7118 7119 7190 7189) +4(3640 3641 3712 3711) +4(3711 3712 3783 3782) +4(3782 3783 3854 3853) +4(3853 3854 3925 3924) +4(3924 3925 3996 3995) +4(3995 3996 4067 4066) +4(4066 4067 4138 4137) +4(4137 4138 4209 4208) +4(4208 4209 4280 4279) +4(4279 4280 4351 4350) +4(4350 4351 4422 4421) +4(4421 4422 4493 4492) +4(4492 4493 4564 4563) +4(4563 4564 4635 4634) +4(4634 4635 4706 4705) +4(4705 4706 4777 4776) +4(4776 4777 4848 4847) +4(4847 4848 4919 4918) +4(4918 4919 4990 4989) +4(4989 4990 5061 5060) +4(5060 5061 5132 5131) +4(5131 5132 5203 5202) +4(5202 5203 5274 5273) +4(5273 5274 5345 5344) +4(5344 5345 5416 5415) +4(5415 5416 5487 5486) +4(5486 5487 5558 5557) +4(5557 5558 5629 5628) +4(5628 5629 5700 5699) +4(5699 5700 5771 5770) +4(5770 5771 5842 5841) +4(5841 5842 5913 5912) +4(5912 5913 5984 5983) +4(5983 5984 6055 6054) +4(6054 6055 6126 6125) +4(6125 6126 6197 6196) +4(6196 6197 6268 6267) +4(6267 6268 6339 6338) +4(6338 6339 6410 6409) +4(6409 6410 6481 6480) +4(6480 6481 6552 6551) +4(6551 6552 6623 6622) +4(6622 6623 6694 6693) +4(6693 6694 6765 6764) +4(6764 6765 6836 6835) +4(6835 6836 6907 6906) +4(6906 6907 6978 6977) +4(6977 6978 7049 7048) +4(7048 7049 7120 7119) +4(7119 7120 7191 7190) +4(3641 3642 3713 3712) +4(3712 3713 3784 3783) +4(3783 3784 3855 3854) +4(3854 3855 3926 3925) +4(3925 3926 3997 3996) +4(3996 3997 4068 4067) +4(4067 4068 4139 4138) +4(4138 4139 4210 4209) +4(4209 4210 4281 4280) +4(4280 4281 4352 4351) +4(4351 4352 4423 4422) +4(4422 4423 4494 4493) +4(4493 4494 4565 4564) +4(4564 4565 4636 4635) +4(4635 4636 4707 4706) +4(4706 4707 4778 4777) +4(4777 4778 4849 4848) +4(4848 4849 4920 4919) +4(4919 4920 4991 4990) +4(4990 4991 5062 5061) +4(5061 5062 5133 5132) +4(5132 5133 5204 5203) +4(5203 5204 5275 5274) +4(5274 5275 5346 5345) +4(5345 5346 5417 5416) +4(5416 5417 5488 5487) +4(5487 5488 5559 5558) +4(5558 5559 5630 5629) +4(5629 5630 5701 5700) +4(5700 5701 5772 5771) +4(5771 5772 5843 5842) +4(5842 5843 5914 5913) +4(5913 5914 5985 5984) +4(5984 5985 6056 6055) +4(6055 6056 6127 6126) +4(6126 6127 6198 6197) +4(6197 6198 6269 6268) +4(6268 6269 6340 6339) +4(6339 6340 6411 6410) +4(6410 6411 6482 6481) +4(6481 6482 6553 6552) +4(6552 6553 6624 6623) +4(6623 6624 6695 6694) +4(6694 6695 6766 6765) +4(6765 6766 6837 6836) +4(6836 6837 6908 6907) +4(6907 6908 6979 6978) +4(6978 6979 7050 7049) +4(7049 7050 7121 7120) +4(7120 7121 7192 7191) +4(3642 3643 3714 3713) +4(3713 3714 3785 3784) +4(3784 3785 3856 3855) +4(3855 3856 3927 3926) +4(3926 3927 3998 3997) +4(3997 3998 4069 4068) +4(4068 4069 4140 4139) +4(4139 4140 4211 4210) +4(4210 4211 4282 4281) +4(4281 4282 4353 4352) +4(4352 4353 4424 4423) +4(4423 4424 4495 4494) +4(4494 4495 4566 4565) +4(4565 4566 4637 4636) +4(4636 4637 4708 4707) +4(4707 4708 4779 4778) +4(4778 4779 4850 4849) +4(4849 4850 4921 4920) +4(4920 4921 4992 4991) +4(4991 4992 5063 5062) +4(5062 5063 5134 5133) +4(5133 5134 5205 5204) +4(5204 5205 5276 5275) +4(5275 5276 5347 5346) +4(5346 5347 5418 5417) +4(5417 5418 5489 5488) +4(5488 5489 5560 5559) +4(5559 5560 5631 5630) +4(5630 5631 5702 5701) +4(5701 5702 5773 5772) +4(5772 5773 5844 5843) +4(5843 5844 5915 5914) +4(5914 5915 5986 5985) +4(5985 5986 6057 6056) +4(6056 6057 6128 6127) +4(6127 6128 6199 6198) +4(6198 6199 6270 6269) +4(6269 6270 6341 6340) +4(6340 6341 6412 6411) +4(6411 6412 6483 6482) +4(6482 6483 6554 6553) +4(6553 6554 6625 6624) +4(6624 6625 6696 6695) +4(6695 6696 6767 6766) +4(6766 6767 6838 6837) +4(6837 6838 6909 6908) +4(6908 6909 6980 6979) +4(6979 6980 7051 7050) +4(7050 7051 7122 7121) +4(7121 7122 7193 7192) +4(3643 3644 3715 3714) +4(3714 3715 3786 3785) +4(3785 3786 3857 3856) +4(3856 3857 3928 3927) +4(3927 3928 3999 3998) +4(3998 3999 4070 4069) +4(4069 4070 4141 4140) +4(4140 4141 4212 4211) +4(4211 4212 4283 4282) +4(4282 4283 4354 4353) +4(4353 4354 4425 4424) +4(4424 4425 4496 4495) +4(4495 4496 4567 4566) +4(4566 4567 4638 4637) +4(4637 4638 4709 4708) +4(4708 4709 4780 4779) +4(4779 4780 4851 4850) +4(4850 4851 4922 4921) +4(4921 4922 4993 4992) +4(4992 4993 5064 5063) +4(5063 5064 5135 5134) +4(5134 5135 5206 5205) +4(5205 5206 5277 5276) +4(5276 5277 5348 5347) +4(5347 5348 5419 5418) +4(5418 5419 5490 5489) +4(5489 5490 5561 5560) +4(5560 5561 5632 5631) +4(5631 5632 5703 5702) +4(5702 5703 5774 5773) +4(5773 5774 5845 5844) +4(5844 5845 5916 5915) +4(5915 5916 5987 5986) +4(5986 5987 6058 6057) +4(6057 6058 6129 6128) +4(6128 6129 6200 6199) +4(6199 6200 6271 6270) +4(6270 6271 6342 6341) +4(6341 6342 6413 6412) +4(6412 6413 6484 6483) +4(6483 6484 6555 6554) +4(6554 6555 6626 6625) +4(6625 6626 6697 6696) +4(6696 6697 6768 6767) +4(6767 6768 6839 6838) +4(6838 6839 6910 6909) +4(6909 6910 6981 6980) +4(6980 6981 7052 7051) +4(7051 7052 7123 7122) +4(7122 7123 7194 7193) +4(3644 3645 3716 3715) +4(3715 3716 3787 3786) +4(3786 3787 3858 3857) +4(3857 3858 3929 3928) +4(3928 3929 4000 3999) +4(3999 4000 4071 4070) +4(4070 4071 4142 4141) +4(4141 4142 4213 4212) +4(4212 4213 4284 4283) +4(4283 4284 4355 4354) +4(4354 4355 4426 4425) +4(4425 4426 4497 4496) +4(4496 4497 4568 4567) +4(4567 4568 4639 4638) +4(4638 4639 4710 4709) +4(4709 4710 4781 4780) +4(4780 4781 4852 4851) +4(4851 4852 4923 4922) +4(4922 4923 4994 4993) +4(4993 4994 5065 5064) +4(5064 5065 5136 5135) +4(5135 5136 5207 5206) +4(5206 5207 5278 5277) +4(5277 5278 5349 5348) +4(5348 5349 5420 5419) +4(5419 5420 5491 5490) +4(5490 5491 5562 5561) +4(5561 5562 5633 5632) +4(5632 5633 5704 5703) +4(5703 5704 5775 5774) +4(5774 5775 5846 5845) +4(5845 5846 5917 5916) +4(5916 5917 5988 5987) +4(5987 5988 6059 6058) +4(6058 6059 6130 6129) +4(6129 6130 6201 6200) +4(6200 6201 6272 6271) +4(6271 6272 6343 6342) +4(6342 6343 6414 6413) +4(6413 6414 6485 6484) +4(6484 6485 6556 6555) +4(6555 6556 6627 6626) +4(6626 6627 6698 6697) +4(6697 6698 6769 6768) +4(6768 6769 6840 6839) +4(6839 6840 6911 6910) +4(6910 6911 6982 6981) +4(6981 6982 7053 7052) +4(7052 7053 7124 7123) +4(7123 7124 7195 7194) +4(3645 3646 3717 3716) +4(3716 3717 3788 3787) +4(3787 3788 3859 3858) +4(3858 3859 3930 3929) +4(3929 3930 4001 4000) +4(4000 4001 4072 4071) +4(4071 4072 4143 4142) +4(4142 4143 4214 4213) +4(4213 4214 4285 4284) +4(4284 4285 4356 4355) +4(4355 4356 4427 4426) +4(4426 4427 4498 4497) +4(4497 4498 4569 4568) +4(4568 4569 4640 4639) +4(4639 4640 4711 4710) +4(4710 4711 4782 4781) +4(4781 4782 4853 4852) +4(4852 4853 4924 4923) +4(4923 4924 4995 4994) +4(4994 4995 5066 5065) +4(5065 5066 5137 5136) +4(5136 5137 5208 5207) +4(5207 5208 5279 5278) +4(5278 5279 5350 5349) +4(5349 5350 5421 5420) +4(5420 5421 5492 5491) +4(5491 5492 5563 5562) +4(5562 5563 5634 5633) +4(5633 5634 5705 5704) +4(5704 5705 5776 5775) +4(5775 5776 5847 5846) +4(5846 5847 5918 5917) +4(5917 5918 5989 5988) +4(5988 5989 6060 6059) +4(6059 6060 6131 6130) +4(6130 6131 6202 6201) +4(6201 6202 6273 6272) +4(6272 6273 6344 6343) +4(6343 6344 6415 6414) +4(6414 6415 6486 6485) +4(6485 6486 6557 6556) +4(6556 6557 6628 6627) +4(6627 6628 6699 6698) +4(6698 6699 6770 6769) +4(6769 6770 6841 6840) +4(6840 6841 6912 6911) +4(6911 6912 6983 6982) +4(6982 6983 7054 7053) +4(7053 7054 7125 7124) +4(7124 7125 7196 7195) +4(3646 3647 3718 3717) +4(3717 3718 3789 3788) +4(3788 3789 3860 3859) +4(3859 3860 3931 3930) +4(3930 3931 4002 4001) +4(4001 4002 4073 4072) +4(4072 4073 4144 4143) +4(4143 4144 4215 4214) +4(4214 4215 4286 4285) +4(4285 4286 4357 4356) +4(4356 4357 4428 4427) +4(4427 4428 4499 4498) +4(4498 4499 4570 4569) +4(4569 4570 4641 4640) +4(4640 4641 4712 4711) +4(4711 4712 4783 4782) +4(4782 4783 4854 4853) +4(4853 4854 4925 4924) +4(4924 4925 4996 4995) +4(4995 4996 5067 5066) +4(5066 5067 5138 5137) +4(5137 5138 5209 5208) +4(5208 5209 5280 5279) +4(5279 5280 5351 5350) +4(5350 5351 5422 5421) +4(5421 5422 5493 5492) +4(5492 5493 5564 5563) +4(5563 5564 5635 5634) +4(5634 5635 5706 5705) +4(5705 5706 5777 5776) +4(5776 5777 5848 5847) +4(5847 5848 5919 5918) +4(5918 5919 5990 5989) +4(5989 5990 6061 6060) +4(6060 6061 6132 6131) +4(6131 6132 6203 6202) +4(6202 6203 6274 6273) +4(6273 6274 6345 6344) +4(6344 6345 6416 6415) +4(6415 6416 6487 6486) +4(6486 6487 6558 6557) +4(6557 6558 6629 6628) +4(6628 6629 6700 6699) +4(6699 6700 6771 6770) +4(6770 6771 6842 6841) +4(6841 6842 6913 6912) +4(6912 6913 6984 6983) +4(6983 6984 7055 7054) +4(7054 7055 7126 7125) +4(7125 7126 7197 7196) +4(3647 3648 3719 3718) +4(3718 3719 3790 3789) +4(3789 3790 3861 3860) +4(3860 3861 3932 3931) +4(3931 3932 4003 4002) +4(4002 4003 4074 4073) +4(4073 4074 4145 4144) +4(4144 4145 4216 4215) +4(4215 4216 4287 4286) +4(4286 4287 4358 4357) +4(4357 4358 4429 4428) +4(4428 4429 4500 4499) +4(4499 4500 4571 4570) +4(4570 4571 4642 4641) +4(4641 4642 4713 4712) +4(4712 4713 4784 4783) +4(4783 4784 4855 4854) +4(4854 4855 4926 4925) +4(4925 4926 4997 4996) +4(4996 4997 5068 5067) +4(5067 5068 5139 5138) +4(5138 5139 5210 5209) +4(5209 5210 5281 5280) +4(5280 5281 5352 5351) +4(5351 5352 5423 5422) +4(5422 5423 5494 5493) +4(5493 5494 5565 5564) +4(5564 5565 5636 5635) +4(5635 5636 5707 5706) +4(5706 5707 5778 5777) +4(5777 5778 5849 5848) +4(5848 5849 5920 5919) +4(5919 5920 5991 5990) +4(5990 5991 6062 6061) +4(6061 6062 6133 6132) +4(6132 6133 6204 6203) +4(6203 6204 6275 6274) +4(6274 6275 6346 6345) +4(6345 6346 6417 6416) +4(6416 6417 6488 6487) +4(6487 6488 6559 6558) +4(6558 6559 6630 6629) +4(6629 6630 6701 6700) +4(6700 6701 6772 6771) +4(6771 6772 6843 6842) +4(6842 6843 6914 6913) +4(6913 6914 6985 6984) +4(6984 6985 7056 7055) +4(7055 7056 7127 7126) +4(7126 7127 7198 7197) +4(3648 3649 3720 3719) +4(3719 3720 3791 3790) +4(3790 3791 3862 3861) +4(3861 3862 3933 3932) +4(3932 3933 4004 4003) +4(4003 4004 4075 4074) +4(4074 4075 4146 4145) +4(4145 4146 4217 4216) +4(4216 4217 4288 4287) +4(4287 4288 4359 4358) +4(4358 4359 4430 4429) +4(4429 4430 4501 4500) +4(4500 4501 4572 4571) +4(4571 4572 4643 4642) +4(4642 4643 4714 4713) +4(4713 4714 4785 4784) +4(4784 4785 4856 4855) +4(4855 4856 4927 4926) +4(4926 4927 4998 4997) +4(4997 4998 5069 5068) +4(5068 5069 5140 5139) +4(5139 5140 5211 5210) +4(5210 5211 5282 5281) +4(5281 5282 5353 5352) +4(5352 5353 5424 5423) +4(5423 5424 5495 5494) +4(5494 5495 5566 5565) +4(5565 5566 5637 5636) +4(5636 5637 5708 5707) +4(5707 5708 5779 5778) +4(5778 5779 5850 5849) +4(5849 5850 5921 5920) +4(5920 5921 5992 5991) +4(5991 5992 6063 6062) +4(6062 6063 6134 6133) +4(6133 6134 6205 6204) +4(6204 6205 6276 6275) +4(6275 6276 6347 6346) +4(6346 6347 6418 6417) +4(6417 6418 6489 6488) +4(6488 6489 6560 6559) +4(6559 6560 6631 6630) +4(6630 6631 6702 6701) +4(6701 6702 6773 6772) +4(6772 6773 6844 6843) +4(6843 6844 6915 6914) +4(6914 6915 6986 6985) +4(6985 6986 7057 7056) +4(7056 7057 7128 7127) +4(7127 7128 7199 7198) +4(3649 3650 3721 3720) +4(3720 3721 3792 3791) +4(3791 3792 3863 3862) +4(3862 3863 3934 3933) +4(3933 3934 4005 4004) +4(4004 4005 4076 4075) +4(4075 4076 4147 4146) +4(4146 4147 4218 4217) +4(4217 4218 4289 4288) +4(4288 4289 4360 4359) +4(4359 4360 4431 4430) +4(4430 4431 4502 4501) +4(4501 4502 4573 4572) +4(4572 4573 4644 4643) +4(4643 4644 4715 4714) +4(4714 4715 4786 4785) +4(4785 4786 4857 4856) +4(4856 4857 4928 4927) +4(4927 4928 4999 4998) +4(4998 4999 5070 5069) +4(5069 5070 5141 5140) +4(5140 5141 5212 5211) +4(5211 5212 5283 5282) +4(5282 5283 5354 5353) +4(5353 5354 5425 5424) +4(5424 5425 5496 5495) +4(5495 5496 5567 5566) +4(5566 5567 5638 5637) +4(5637 5638 5709 5708) +4(5708 5709 5780 5779) +4(5779 5780 5851 5850) +4(5850 5851 5922 5921) +4(5921 5922 5993 5992) +4(5992 5993 6064 6063) +4(6063 6064 6135 6134) +4(6134 6135 6206 6205) +4(6205 6206 6277 6276) +4(6276 6277 6348 6347) +4(6347 6348 6419 6418) +4(6418 6419 6490 6489) +4(6489 6490 6561 6560) +4(6560 6561 6632 6631) +4(6631 6632 6703 6702) +4(6702 6703 6774 6773) +4(6773 6774 6845 6844) +4(6844 6845 6916 6915) +4(6915 6916 6987 6986) +4(6986 6987 7058 7057) +4(7057 7058 7129 7128) +4(7128 7129 7200 7199) +4(3650 3651 3722 3721) +4(3721 3722 3793 3792) +4(3792 3793 3864 3863) +4(3863 3864 3935 3934) +4(3934 3935 4006 4005) +4(4005 4006 4077 4076) +4(4076 4077 4148 4147) +4(4147 4148 4219 4218) +4(4218 4219 4290 4289) +4(4289 4290 4361 4360) +4(4360 4361 4432 4431) +4(4431 4432 4503 4502) +4(4502 4503 4574 4573) +4(4573 4574 4645 4644) +4(4644 4645 4716 4715) +4(4715 4716 4787 4786) +4(4786 4787 4858 4857) +4(4857 4858 4929 4928) +4(4928 4929 5000 4999) +4(4999 5000 5071 5070) +4(5070 5071 5142 5141) +4(5141 5142 5213 5212) +4(5212 5213 5284 5283) +4(5283 5284 5355 5354) +4(5354 5355 5426 5425) +4(5425 5426 5497 5496) +4(5496 5497 5568 5567) +4(5567 5568 5639 5638) +4(5638 5639 5710 5709) +4(5709 5710 5781 5780) +4(5780 5781 5852 5851) +4(5851 5852 5923 5922) +4(5922 5923 5994 5993) +4(5993 5994 6065 6064) +4(6064 6065 6136 6135) +4(6135 6136 6207 6206) +4(6206 6207 6278 6277) +4(6277 6278 6349 6348) +4(6348 6349 6420 6419) +4(6419 6420 6491 6490) +4(6490 6491 6562 6561) +4(6561 6562 6633 6632) +4(6632 6633 6704 6703) +4(6703 6704 6775 6774) +4(6774 6775 6846 6845) +4(6845 6846 6917 6916) +4(6916 6917 6988 6987) +4(6987 6988 7059 7058) +4(7058 7059 7130 7129) +4(7129 7130 7201 7200) +4(3651 3652 3723 3722) +4(3722 3723 3794 3793) +4(3793 3794 3865 3864) +4(3864 3865 3936 3935) +4(3935 3936 4007 4006) +4(4006 4007 4078 4077) +4(4077 4078 4149 4148) +4(4148 4149 4220 4219) +4(4219 4220 4291 4290) +4(4290 4291 4362 4361) +4(4361 4362 4433 4432) +4(4432 4433 4504 4503) +4(4503 4504 4575 4574) +4(4574 4575 4646 4645) +4(4645 4646 4717 4716) +4(4716 4717 4788 4787) +4(4787 4788 4859 4858) +4(4858 4859 4930 4929) +4(4929 4930 5001 5000) +4(5000 5001 5072 5071) +4(5071 5072 5143 5142) +4(5142 5143 5214 5213) +4(5213 5214 5285 5284) +4(5284 5285 5356 5355) +4(5355 5356 5427 5426) +4(5426 5427 5498 5497) +4(5497 5498 5569 5568) +4(5568 5569 5640 5639) +4(5639 5640 5711 5710) +4(5710 5711 5782 5781) +4(5781 5782 5853 5852) +4(5852 5853 5924 5923) +4(5923 5924 5995 5994) +4(5994 5995 6066 6065) +4(6065 6066 6137 6136) +4(6136 6137 6208 6207) +4(6207 6208 6279 6278) +4(6278 6279 6350 6349) +4(6349 6350 6421 6420) +4(6420 6421 6492 6491) +4(6491 6492 6563 6562) +4(6562 6563 6634 6633) +4(6633 6634 6705 6704) +4(6704 6705 6776 6775) +4(6775 6776 6847 6846) +4(6846 6847 6918 6917) +4(6917 6918 6989 6988) +4(6988 6989 7060 7059) +4(7059 7060 7131 7130) +4(7130 7131 7202 7201) +4(3652 3653 3724 3723) +4(3723 3724 3795 3794) +4(3794 3795 3866 3865) +4(3865 3866 3937 3936) +4(3936 3937 4008 4007) +4(4007 4008 4079 4078) +4(4078 4079 4150 4149) +4(4149 4150 4221 4220) +4(4220 4221 4292 4291) +4(4291 4292 4363 4362) +4(4362 4363 4434 4433) +4(4433 4434 4505 4504) +4(4504 4505 4576 4575) +4(4575 4576 4647 4646) +4(4646 4647 4718 4717) +4(4717 4718 4789 4788) +4(4788 4789 4860 4859) +4(4859 4860 4931 4930) +4(4930 4931 5002 5001) +4(5001 5002 5073 5072) +4(5072 5073 5144 5143) +4(5143 5144 5215 5214) +4(5214 5215 5286 5285) +4(5285 5286 5357 5356) +4(5356 5357 5428 5427) +4(5427 5428 5499 5498) +4(5498 5499 5570 5569) +4(5569 5570 5641 5640) +4(5640 5641 5712 5711) +4(5711 5712 5783 5782) +4(5782 5783 5854 5853) +4(5853 5854 5925 5924) +4(5924 5925 5996 5995) +4(5995 5996 6067 6066) +4(6066 6067 6138 6137) +4(6137 6138 6209 6208) +4(6208 6209 6280 6279) +4(6279 6280 6351 6350) +4(6350 6351 6422 6421) +4(6421 6422 6493 6492) +4(6492 6493 6564 6563) +4(6563 6564 6635 6634) +4(6634 6635 6706 6705) +4(6705 6706 6777 6776) +4(6776 6777 6848 6847) +4(6847 6848 6919 6918) +4(6918 6919 6990 6989) +4(6989 6990 7061 7060) +4(7060 7061 7132 7131) +4(7131 7132 7203 7202) +4(3653 3654 3725 3724) +4(3724 3725 3796 3795) +4(3795 3796 3867 3866) +4(3866 3867 3938 3937) +4(3937 3938 4009 4008) +4(4008 4009 4080 4079) +4(4079 4080 4151 4150) +4(4150 4151 4222 4221) +4(4221 4222 4293 4292) +4(4292 4293 4364 4363) +4(4363 4364 4435 4434) +4(4434 4435 4506 4505) +4(4505 4506 4577 4576) +4(4576 4577 4648 4647) +4(4647 4648 4719 4718) +4(4718 4719 4790 4789) +4(4789 4790 4861 4860) +4(4860 4861 4932 4931) +4(4931 4932 5003 5002) +4(5002 5003 5074 5073) +4(5073 5074 5145 5144) +4(5144 5145 5216 5215) +4(5215 5216 5287 5286) +4(5286 5287 5358 5357) +4(5357 5358 5429 5428) +4(5428 5429 5500 5499) +4(5499 5500 5571 5570) +4(5570 5571 5642 5641) +4(5641 5642 5713 5712) +4(5712 5713 5784 5783) +4(5783 5784 5855 5854) +4(5854 5855 5926 5925) +4(5925 5926 5997 5996) +4(5996 5997 6068 6067) +4(6067 6068 6139 6138) +4(6138 6139 6210 6209) +4(6209 6210 6281 6280) +4(6280 6281 6352 6351) +4(6351 6352 6423 6422) +4(6422 6423 6494 6493) +4(6493 6494 6565 6564) +4(6564 6565 6636 6635) +4(6635 6636 6707 6706) +4(6706 6707 6778 6777) +4(6777 6778 6849 6848) +4(6848 6849 6920 6919) +4(6919 6920 6991 6990) +4(6990 6991 7062 7061) +4(7061 7062 7133 7132) +4(7132 7133 7204 7203) +4(3654 3655 3726 3725) +4(3725 3726 3797 3796) +4(3796 3797 3868 3867) +4(3867 3868 3939 3938) +4(3938 3939 4010 4009) +4(4009 4010 4081 4080) +4(4080 4081 4152 4151) +4(4151 4152 4223 4222) +4(4222 4223 4294 4293) +4(4293 4294 4365 4364) +4(4364 4365 4436 4435) +4(4435 4436 4507 4506) +4(4506 4507 4578 4577) +4(4577 4578 4649 4648) +4(4648 4649 4720 4719) +4(4719 4720 4791 4790) +4(4790 4791 4862 4861) +4(4861 4862 4933 4932) +4(4932 4933 5004 5003) +4(5003 5004 5075 5074) +4(5074 5075 5146 5145) +4(5145 5146 5217 5216) +4(5216 5217 5288 5287) +4(5287 5288 5359 5358) +4(5358 5359 5430 5429) +4(5429 5430 5501 5500) +4(5500 5501 5572 5571) +4(5571 5572 5643 5642) +4(5642 5643 5714 5713) +4(5713 5714 5785 5784) +4(5784 5785 5856 5855) +4(5855 5856 5927 5926) +4(5926 5927 5998 5997) +4(5997 5998 6069 6068) +4(6068 6069 6140 6139) +4(6139 6140 6211 6210) +4(6210 6211 6282 6281) +4(6281 6282 6353 6352) +4(6352 6353 6424 6423) +4(6423 6424 6495 6494) +4(6494 6495 6566 6565) +4(6565 6566 6637 6636) +4(6636 6637 6708 6707) +4(6707 6708 6779 6778) +4(6778 6779 6850 6849) +4(6849 6850 6921 6920) +4(6920 6921 6992 6991) +4(6991 6992 7063 7062) +4(7062 7063 7134 7133) +4(7133 7134 7205 7204) +4(3655 3656 3727 3726) +4(3726 3727 3798 3797) +4(3797 3798 3869 3868) +4(3868 3869 3940 3939) +4(3939 3940 4011 4010) +4(4010 4011 4082 4081) +4(4081 4082 4153 4152) +4(4152 4153 4224 4223) +4(4223 4224 4295 4294) +4(4294 4295 4366 4365) +4(4365 4366 4437 4436) +4(4436 4437 4508 4507) +4(4507 4508 4579 4578) +4(4578 4579 4650 4649) +4(4649 4650 4721 4720) +4(4720 4721 4792 4791) +4(4791 4792 4863 4862) +4(4862 4863 4934 4933) +4(4933 4934 5005 5004) +4(5004 5005 5076 5075) +4(5075 5076 5147 5146) +4(5146 5147 5218 5217) +4(5217 5218 5289 5288) +4(5288 5289 5360 5359) +4(5359 5360 5431 5430) +4(5430 5431 5502 5501) +4(5501 5502 5573 5572) +4(5572 5573 5644 5643) +4(5643 5644 5715 5714) +4(5714 5715 5786 5785) +4(5785 5786 5857 5856) +4(5856 5857 5928 5927) +4(5927 5928 5999 5998) +4(5998 5999 6070 6069) +4(6069 6070 6141 6140) +4(6140 6141 6212 6211) +4(6211 6212 6283 6282) +4(6282 6283 6354 6353) +4(6353 6354 6425 6424) +4(6424 6425 6496 6495) +4(6495 6496 6567 6566) +4(6566 6567 6638 6637) +4(6637 6638 6709 6708) +4(6708 6709 6780 6779) +4(6779 6780 6851 6850) +4(6850 6851 6922 6921) +4(6921 6922 6993 6992) +4(6992 6993 7064 7063) +4(7063 7064 7135 7134) +4(7134 7135 7206 7205) +4(3656 3657 3728 3727) +4(3727 3728 3799 3798) +4(3798 3799 3870 3869) +4(3869 3870 3941 3940) +4(3940 3941 4012 4011) +4(4011 4012 4083 4082) +4(4082 4083 4154 4153) +4(4153 4154 4225 4224) +4(4224 4225 4296 4295) +4(4295 4296 4367 4366) +4(4366 4367 4438 4437) +4(4437 4438 4509 4508) +4(4508 4509 4580 4579) +4(4579 4580 4651 4650) +4(4650 4651 4722 4721) +4(4721 4722 4793 4792) +4(4792 4793 4864 4863) +4(4863 4864 4935 4934) +4(4934 4935 5006 5005) +4(5005 5006 5077 5076) +4(5076 5077 5148 5147) +4(5147 5148 5219 5218) +4(5218 5219 5290 5289) +4(5289 5290 5361 5360) +4(5360 5361 5432 5431) +4(5431 5432 5503 5502) +4(5502 5503 5574 5573) +4(5573 5574 5645 5644) +4(5644 5645 5716 5715) +4(5715 5716 5787 5786) +4(5786 5787 5858 5857) +4(5857 5858 5929 5928) +4(5928 5929 6000 5999) +4(5999 6000 6071 6070) +4(6070 6071 6142 6141) +4(6141 6142 6213 6212) +4(6212 6213 6284 6283) +4(6283 6284 6355 6354) +4(6354 6355 6426 6425) +4(6425 6426 6497 6496) +4(6496 6497 6568 6567) +4(6567 6568 6639 6638) +4(6638 6639 6710 6709) +4(6709 6710 6781 6780) +4(6780 6781 6852 6851) +4(6851 6852 6923 6922) +4(6922 6923 6994 6993) +4(6993 6994 7065 7064) +4(7064 7065 7136 7135) +4(7135 7136 7207 7206) +4(3657 3658 3729 3728) +4(3728 3729 3800 3799) +4(3799 3800 3871 3870) +4(3870 3871 3942 3941) +4(3941 3942 4013 4012) +4(4012 4013 4084 4083) +4(4083 4084 4155 4154) +4(4154 4155 4226 4225) +4(4225 4226 4297 4296) +4(4296 4297 4368 4367) +4(4367 4368 4439 4438) +4(4438 4439 4510 4509) +4(4509 4510 4581 4580) +4(4580 4581 4652 4651) +4(4651 4652 4723 4722) +4(4722 4723 4794 4793) +4(4793 4794 4865 4864) +4(4864 4865 4936 4935) +4(4935 4936 5007 5006) +4(5006 5007 5078 5077) +4(5077 5078 5149 5148) +4(5148 5149 5220 5219) +4(5219 5220 5291 5290) +4(5290 5291 5362 5361) +4(5361 5362 5433 5432) +4(5432 5433 5504 5503) +4(5503 5504 5575 5574) +4(5574 5575 5646 5645) +4(5645 5646 5717 5716) +4(5716 5717 5788 5787) +4(5787 5788 5859 5858) +4(5858 5859 5930 5929) +4(5929 5930 6001 6000) +4(6000 6001 6072 6071) +4(6071 6072 6143 6142) +4(6142 6143 6214 6213) +4(6213 6214 6285 6284) +4(6284 6285 6356 6355) +4(6355 6356 6427 6426) +4(6426 6427 6498 6497) +4(6497 6498 6569 6568) +4(6568 6569 6640 6639) +4(6639 6640 6711 6710) +4(6710 6711 6782 6781) +4(6781 6782 6853 6852) +4(6852 6853 6924 6923) +4(6923 6924 6995 6994) +4(6994 6995 7066 7065) +4(7065 7066 7137 7136) +4(7136 7137 7208 7207) +4(3658 3659 3730 3729) +4(3729 3730 3801 3800) +4(3800 3801 3872 3871) +4(3871 3872 3943 3942) +4(3942 3943 4014 4013) +4(4013 4014 4085 4084) +4(4084 4085 4156 4155) +4(4155 4156 4227 4226) +4(4226 4227 4298 4297) +4(4297 4298 4369 4368) +4(4368 4369 4440 4439) +4(4439 4440 4511 4510) +4(4510 4511 4582 4581) +4(4581 4582 4653 4652) +4(4652 4653 4724 4723) +4(4723 4724 4795 4794) +4(4794 4795 4866 4865) +4(4865 4866 4937 4936) +4(4936 4937 5008 5007) +4(5007 5008 5079 5078) +4(5078 5079 5150 5149) +4(5149 5150 5221 5220) +4(5220 5221 5292 5291) +4(5291 5292 5363 5362) +4(5362 5363 5434 5433) +4(5433 5434 5505 5504) +4(5504 5505 5576 5575) +4(5575 5576 5647 5646) +4(5646 5647 5718 5717) +4(5717 5718 5789 5788) +4(5788 5789 5860 5859) +4(5859 5860 5931 5930) +4(5930 5931 6002 6001) +4(6001 6002 6073 6072) +4(6072 6073 6144 6143) +4(6143 6144 6215 6214) +4(6214 6215 6286 6285) +4(6285 6286 6357 6356) +4(6356 6357 6428 6427) +4(6427 6428 6499 6498) +4(6498 6499 6570 6569) +4(6569 6570 6641 6640) +4(6640 6641 6712 6711) +4(6711 6712 6783 6782) +4(6782 6783 6854 6853) +4(6853 6854 6925 6924) +4(6924 6925 6996 6995) +4(6995 6996 7067 7066) +4(7066 7067 7138 7137) +4(7137 7138 7209 7208) +4(3659 3660 3731 3730) +4(3730 3731 3802 3801) +4(3801 3802 3873 3872) +4(3872 3873 3944 3943) +4(3943 3944 4015 4014) +4(4014 4015 4086 4085) +4(4085 4086 4157 4156) +4(4156 4157 4228 4227) +4(4227 4228 4299 4298) +4(4298 4299 4370 4369) +4(4369 4370 4441 4440) +4(4440 4441 4512 4511) +4(4511 4512 4583 4582) +4(4582 4583 4654 4653) +4(4653 4654 4725 4724) +4(4724 4725 4796 4795) +4(4795 4796 4867 4866) +4(4866 4867 4938 4937) +4(4937 4938 5009 5008) +4(5008 5009 5080 5079) +4(5079 5080 5151 5150) +4(5150 5151 5222 5221) +4(5221 5222 5293 5292) +4(5292 5293 5364 5363) +4(5363 5364 5435 5434) +4(5434 5435 5506 5505) +4(5505 5506 5577 5576) +4(5576 5577 5648 5647) +4(5647 5648 5719 5718) +4(5718 5719 5790 5789) +4(5789 5790 5861 5860) +4(5860 5861 5932 5931) +4(5931 5932 6003 6002) +4(6002 6003 6074 6073) +4(6073 6074 6145 6144) +4(6144 6145 6216 6215) +4(6215 6216 6287 6286) +4(6286 6287 6358 6357) +4(6357 6358 6429 6428) +4(6428 6429 6500 6499) +4(6499 6500 6571 6570) +4(6570 6571 6642 6641) +4(6641 6642 6713 6712) +4(6712 6713 6784 6783) +4(6783 6784 6855 6854) +4(6854 6855 6926 6925) +4(6925 6926 6997 6996) +4(6996 6997 7068 7067) +4(7067 7068 7139 7138) +4(7138 7139 7210 7209) +4(3660 3661 3732 3731) +4(3731 3732 3803 3802) +4(3802 3803 3874 3873) +4(3873 3874 3945 3944) +4(3944 3945 4016 4015) +4(4015 4016 4087 4086) +4(4086 4087 4158 4157) +4(4157 4158 4229 4228) +4(4228 4229 4300 4299) +4(4299 4300 4371 4370) +4(4370 4371 4442 4441) +4(4441 4442 4513 4512) +4(4512 4513 4584 4583) +4(4583 4584 4655 4654) +4(4654 4655 4726 4725) +4(4725 4726 4797 4796) +4(4796 4797 4868 4867) +4(4867 4868 4939 4938) +4(4938 4939 5010 5009) +4(5009 5010 5081 5080) +4(5080 5081 5152 5151) +4(5151 5152 5223 5222) +4(5222 5223 5294 5293) +4(5293 5294 5365 5364) +4(5364 5365 5436 5435) +4(5435 5436 5507 5506) +4(5506 5507 5578 5577) +4(5577 5578 5649 5648) +4(5648 5649 5720 5719) +4(5719 5720 5791 5790) +4(5790 5791 5862 5861) +4(5861 5862 5933 5932) +4(5932 5933 6004 6003) +4(6003 6004 6075 6074) +4(6074 6075 6146 6145) +4(6145 6146 6217 6216) +4(6216 6217 6288 6287) +4(6287 6288 6359 6358) +4(6358 6359 6430 6429) +4(6429 6430 6501 6500) +4(6500 6501 6572 6571) +4(6571 6572 6643 6642) +4(6642 6643 6714 6713) +4(6713 6714 6785 6784) +4(6784 6785 6856 6855) +4(6855 6856 6927 6926) +4(6926 6927 6998 6997) +4(6997 6998 7069 7068) +4(7068 7069 7140 7139) +4(7139 7140 7211 7210) +4(3661 3662 3733 3732) +4(3732 3733 3804 3803) +4(3803 3804 3875 3874) +4(3874 3875 3946 3945) +4(3945 3946 4017 4016) +4(4016 4017 4088 4087) +4(4087 4088 4159 4158) +4(4158 4159 4230 4229) +4(4229 4230 4301 4300) +4(4300 4301 4372 4371) +4(4371 4372 4443 4442) +4(4442 4443 4514 4513) +4(4513 4514 4585 4584) +4(4584 4585 4656 4655) +4(4655 4656 4727 4726) +4(4726 4727 4798 4797) +4(4797 4798 4869 4868) +4(4868 4869 4940 4939) +4(4939 4940 5011 5010) +4(5010 5011 5082 5081) +4(5081 5082 5153 5152) +4(5152 5153 5224 5223) +4(5223 5224 5295 5294) +4(5294 5295 5366 5365) +4(5365 5366 5437 5436) +4(5436 5437 5508 5507) +4(5507 5508 5579 5578) +4(5578 5579 5650 5649) +4(5649 5650 5721 5720) +4(5720 5721 5792 5791) +4(5791 5792 5863 5862) +4(5862 5863 5934 5933) +4(5933 5934 6005 6004) +4(6004 6005 6076 6075) +4(6075 6076 6147 6146) +4(6146 6147 6218 6217) +4(6217 6218 6289 6288) +4(6288 6289 6360 6359) +4(6359 6360 6431 6430) +4(6430 6431 6502 6501) +4(6501 6502 6573 6572) +4(6572 6573 6644 6643) +4(6643 6644 6715 6714) +4(6714 6715 6786 6785) +4(6785 6786 6857 6856) +4(6856 6857 6928 6927) +4(6927 6928 6999 6998) +4(6998 6999 7070 7069) +4(7069 7070 7141 7140) +4(7140 7141 7212 7211) +4(3662 3663 3734 3733) +4(3733 3734 3805 3804) +4(3804 3805 3876 3875) +4(3875 3876 3947 3946) +4(3946 3947 4018 4017) +4(4017 4018 4089 4088) +4(4088 4089 4160 4159) +4(4159 4160 4231 4230) +4(4230 4231 4302 4301) +4(4301 4302 4373 4372) +4(4372 4373 4444 4443) +4(4443 4444 4515 4514) +4(4514 4515 4586 4585) +4(4585 4586 4657 4656) +4(4656 4657 4728 4727) +4(4727 4728 4799 4798) +4(4798 4799 4870 4869) +4(4869 4870 4941 4940) +4(4940 4941 5012 5011) +4(5011 5012 5083 5082) +4(5082 5083 5154 5153) +4(5153 5154 5225 5224) +4(5224 5225 5296 5295) +4(5295 5296 5367 5366) +4(5366 5367 5438 5437) +4(5437 5438 5509 5508) +4(5508 5509 5580 5579) +4(5579 5580 5651 5650) +4(5650 5651 5722 5721) +4(5721 5722 5793 5792) +4(5792 5793 5864 5863) +4(5863 5864 5935 5934) +4(5934 5935 6006 6005) +4(6005 6006 6077 6076) +4(6076 6077 6148 6147) +4(6147 6148 6219 6218) +4(6218 6219 6290 6289) +4(6289 6290 6361 6360) +4(6360 6361 6432 6431) +4(6431 6432 6503 6502) +4(6502 6503 6574 6573) +4(6573 6574 6645 6644) +4(6644 6645 6716 6715) +4(6715 6716 6787 6786) +4(6786 6787 6858 6857) +4(6857 6858 6929 6928) +4(6928 6929 7000 6999) +4(6999 7000 7071 7070) +4(7070 7071 7142 7141) +4(7141 7142 7213 7212) +4(3663 3664 3735 3734) +4(3734 3735 3806 3805) +4(3805 3806 3877 3876) +4(3876 3877 3948 3947) +4(3947 3948 4019 4018) +4(4018 4019 4090 4089) +4(4089 4090 4161 4160) +4(4160 4161 4232 4231) +4(4231 4232 4303 4302) +4(4302 4303 4374 4373) +4(4373 4374 4445 4444) +4(4444 4445 4516 4515) +4(4515 4516 4587 4586) +4(4586 4587 4658 4657) +4(4657 4658 4729 4728) +4(4728 4729 4800 4799) +4(4799 4800 4871 4870) +4(4870 4871 4942 4941) +4(4941 4942 5013 5012) +4(5012 5013 5084 5083) +4(5083 5084 5155 5154) +4(5154 5155 5226 5225) +4(5225 5226 5297 5296) +4(5296 5297 5368 5367) +4(5367 5368 5439 5438) +4(5438 5439 5510 5509) +4(5509 5510 5581 5580) +4(5580 5581 5652 5651) +4(5651 5652 5723 5722) +4(5722 5723 5794 5793) +4(5793 5794 5865 5864) +4(5864 5865 5936 5935) +4(5935 5936 6007 6006) +4(6006 6007 6078 6077) +4(6077 6078 6149 6148) +4(6148 6149 6220 6219) +4(6219 6220 6291 6290) +4(6290 6291 6362 6361) +4(6361 6362 6433 6432) +4(6432 6433 6504 6503) +4(6503 6504 6575 6574) +4(6574 6575 6646 6645) +4(6645 6646 6717 6716) +4(6716 6717 6788 6787) +4(6787 6788 6859 6858) +4(6858 6859 6930 6929) +4(6929 6930 7001 7000) +4(7000 7001 7072 7071) +4(7071 7072 7143 7142) +4(7142 7143 7214 7213) +4(3664 3665 3736 3735) +4(3735 3736 3807 3806) +4(3806 3807 3878 3877) +4(3877 3878 3949 3948) +4(3948 3949 4020 4019) +4(4019 4020 4091 4090) +4(4090 4091 4162 4161) +4(4161 4162 4233 4232) +4(4232 4233 4304 4303) +4(4303 4304 4375 4374) +4(4374 4375 4446 4445) +4(4445 4446 4517 4516) +4(4516 4517 4588 4587) +4(4587 4588 4659 4658) +4(4658 4659 4730 4729) +4(4729 4730 4801 4800) +4(4800 4801 4872 4871) +4(4871 4872 4943 4942) +4(4942 4943 5014 5013) +4(5013 5014 5085 5084) +4(5084 5085 5156 5155) +4(5155 5156 5227 5226) +4(5226 5227 5298 5297) +4(5297 5298 5369 5368) +4(5368 5369 5440 5439) +4(5439 5440 5511 5510) +4(5510 5511 5582 5581) +4(5581 5582 5653 5652) +4(5652 5653 5724 5723) +4(5723 5724 5795 5794) +4(5794 5795 5866 5865) +4(5865 5866 5937 5936) +4(5936 5937 6008 6007) +4(6007 6008 6079 6078) +4(6078 6079 6150 6149) +4(6149 6150 6221 6220) +4(6220 6221 6292 6291) +4(6291 6292 6363 6362) +4(6362 6363 6434 6433) +4(6433 6434 6505 6504) +4(6504 6505 6576 6575) +4(6575 6576 6647 6646) +4(6646 6647 6718 6717) +4(6717 6718 6789 6788) +4(6788 6789 6860 6859) +4(6859 6860 6931 6930) +4(6930 6931 7002 7001) +4(7001 7002 7073 7072) +4(7072 7073 7144 7143) +4(7143 7144 7215 7214) +4(3665 3666 3737 3736) +4(3736 3737 3808 3807) +4(3807 3808 3879 3878) +4(3878 3879 3950 3949) +4(3949 3950 4021 4020) +4(4020 4021 4092 4091) +4(4091 4092 4163 4162) +4(4162 4163 4234 4233) +4(4233 4234 4305 4304) +4(4304 4305 4376 4375) +4(4375 4376 4447 4446) +4(4446 4447 4518 4517) +4(4517 4518 4589 4588) +4(4588 4589 4660 4659) +4(4659 4660 4731 4730) +4(4730 4731 4802 4801) +4(4801 4802 4873 4872) +4(4872 4873 4944 4943) +4(4943 4944 5015 5014) +4(5014 5015 5086 5085) +4(5085 5086 5157 5156) +4(5156 5157 5228 5227) +4(5227 5228 5299 5298) +4(5298 5299 5370 5369) +4(5369 5370 5441 5440) +4(5440 5441 5512 5511) +4(5511 5512 5583 5582) +4(5582 5583 5654 5653) +4(5653 5654 5725 5724) +4(5724 5725 5796 5795) +4(5795 5796 5867 5866) +4(5866 5867 5938 5937) +4(5937 5938 6009 6008) +4(6008 6009 6080 6079) +4(6079 6080 6151 6150) +4(6150 6151 6222 6221) +4(6221 6222 6293 6292) +4(6292 6293 6364 6363) +4(6363 6364 6435 6434) +4(6434 6435 6506 6505) +4(6505 6506 6577 6576) +4(6576 6577 6648 6647) +4(6647 6648 6719 6718) +4(6718 6719 6790 6789) +4(6789 6790 6861 6860) +4(6860 6861 6932 6931) +4(6931 6932 7003 7002) +4(7002 7003 7074 7073) +4(7073 7074 7145 7144) +4(7144 7145 7216 7215) +4(3666 3667 3738 3737) +4(3737 3738 3809 3808) +4(3808 3809 3880 3879) +4(3879 3880 3951 3950) +4(3950 3951 4022 4021) +4(4021 4022 4093 4092) +4(4092 4093 4164 4163) +4(4163 4164 4235 4234) +4(4234 4235 4306 4305) +4(4305 4306 4377 4376) +4(4376 4377 4448 4447) +4(4447 4448 4519 4518) +4(4518 4519 4590 4589) +4(4589 4590 4661 4660) +4(4660 4661 4732 4731) +4(4731 4732 4803 4802) +4(4802 4803 4874 4873) +4(4873 4874 4945 4944) +4(4944 4945 5016 5015) +4(5015 5016 5087 5086) +4(5086 5087 5158 5157) +4(5157 5158 5229 5228) +4(5228 5229 5300 5299) +4(5299 5300 5371 5370) +4(5370 5371 5442 5441) +4(5441 5442 5513 5512) +4(5512 5513 5584 5583) +4(5583 5584 5655 5654) +4(5654 5655 5726 5725) +4(5725 5726 5797 5796) +4(5796 5797 5868 5867) +4(5867 5868 5939 5938) +4(5938 5939 6010 6009) +4(6009 6010 6081 6080) +4(6080 6081 6152 6151) +4(6151 6152 6223 6222) +4(6222 6223 6294 6293) +4(6293 6294 6365 6364) +4(6364 6365 6436 6435) +4(6435 6436 6507 6506) +4(6506 6507 6578 6577) +4(6577 6578 6649 6648) +4(6648 6649 6720 6719) +4(6719 6720 6791 6790) +4(6790 6791 6862 6861) +4(6861 6862 6933 6932) +4(6932 6933 7004 7003) +4(7003 7004 7075 7074) +4(7074 7075 7146 7145) +4(7145 7146 7217 7216) +4(3667 3668 3739 3738) +4(3738 3739 3810 3809) +4(3809 3810 3881 3880) +4(3880 3881 3952 3951) +4(3951 3952 4023 4022) +4(4022 4023 4094 4093) +4(4093 4094 4165 4164) +4(4164 4165 4236 4235) +4(4235 4236 4307 4306) +4(4306 4307 4378 4377) +4(4377 4378 4449 4448) +4(4448 4449 4520 4519) +4(4519 4520 4591 4590) +4(4590 4591 4662 4661) +4(4661 4662 4733 4732) +4(4732 4733 4804 4803) +4(4803 4804 4875 4874) +4(4874 4875 4946 4945) +4(4945 4946 5017 5016) +4(5016 5017 5088 5087) +4(5087 5088 5159 5158) +4(5158 5159 5230 5229) +4(5229 5230 5301 5300) +4(5300 5301 5372 5371) +4(5371 5372 5443 5442) +4(5442 5443 5514 5513) +4(5513 5514 5585 5584) +4(5584 5585 5656 5655) +4(5655 5656 5727 5726) +4(5726 5727 5798 5797) +4(5797 5798 5869 5868) +4(5868 5869 5940 5939) +4(5939 5940 6011 6010) +4(6010 6011 6082 6081) +4(6081 6082 6153 6152) +4(6152 6153 6224 6223) +4(6223 6224 6295 6294) +4(6294 6295 6366 6365) +4(6365 6366 6437 6436) +4(6436 6437 6508 6507) +4(6507 6508 6579 6578) +4(6578 6579 6650 6649) +4(6649 6650 6721 6720) +4(6720 6721 6792 6791) +4(6791 6792 6863 6862) +4(6862 6863 6934 6933) +4(6933 6934 7005 7004) +4(7004 7005 7076 7075) +4(7075 7076 7147 7146) +4(7146 7147 7218 7217) +4(3668 3669 3740 3739) +4(3739 3740 3811 3810) +4(3810 3811 3882 3881) +4(3881 3882 3953 3952) +4(3952 3953 4024 4023) +4(4023 4024 4095 4094) +4(4094 4095 4166 4165) +4(4165 4166 4237 4236) +4(4236 4237 4308 4307) +4(4307 4308 4379 4378) +4(4378 4379 4450 4449) +4(4449 4450 4521 4520) +4(4520 4521 4592 4591) +4(4591 4592 4663 4662) +4(4662 4663 4734 4733) +4(4733 4734 4805 4804) +4(4804 4805 4876 4875) +4(4875 4876 4947 4946) +4(4946 4947 5018 5017) +4(5017 5018 5089 5088) +4(5088 5089 5160 5159) +4(5159 5160 5231 5230) +4(5230 5231 5302 5301) +4(5301 5302 5373 5372) +4(5372 5373 5444 5443) +4(5443 5444 5515 5514) +4(5514 5515 5586 5585) +4(5585 5586 5657 5656) +4(5656 5657 5728 5727) +4(5727 5728 5799 5798) +4(5798 5799 5870 5869) +4(5869 5870 5941 5940) +4(5940 5941 6012 6011) +4(6011 6012 6083 6082) +4(6082 6083 6154 6153) +4(6153 6154 6225 6224) +4(6224 6225 6296 6295) +4(6295 6296 6367 6366) +4(6366 6367 6438 6437) +4(6437 6438 6509 6508) +4(6508 6509 6580 6579) +4(6579 6580 6651 6650) +4(6650 6651 6722 6721) +4(6721 6722 6793 6792) +4(6792 6793 6864 6863) +4(6863 6864 6935 6934) +4(6934 6935 7006 7005) +4(7005 7006 7077 7076) +4(7076 7077 7148 7147) +4(7147 7148 7219 7218) +4(3669 3670 3741 3740) +4(3740 3741 3812 3811) +4(3811 3812 3883 3882) +4(3882 3883 3954 3953) +4(3953 3954 4025 4024) +4(4024 4025 4096 4095) +4(4095 4096 4167 4166) +4(4166 4167 4238 4237) +4(4237 4238 4309 4308) +4(4308 4309 4380 4379) +4(4379 4380 4451 4450) +4(4450 4451 4522 4521) +4(4521 4522 4593 4592) +4(4592 4593 4664 4663) +4(4663 4664 4735 4734) +4(4734 4735 4806 4805) +4(4805 4806 4877 4876) +4(4876 4877 4948 4947) +4(4947 4948 5019 5018) +4(5018 5019 5090 5089) +4(5089 5090 5161 5160) +4(5160 5161 5232 5231) +4(5231 5232 5303 5302) +4(5302 5303 5374 5373) +4(5373 5374 5445 5444) +4(5444 5445 5516 5515) +4(5515 5516 5587 5586) +4(5586 5587 5658 5657) +4(5657 5658 5729 5728) +4(5728 5729 5800 5799) +4(5799 5800 5871 5870) +4(5870 5871 5942 5941) +4(5941 5942 6013 6012) +4(6012 6013 6084 6083) +4(6083 6084 6155 6154) +4(6154 6155 6226 6225) +4(6225 6226 6297 6296) +4(6296 6297 6368 6367) +4(6367 6368 6439 6438) +4(6438 6439 6510 6509) +4(6509 6510 6581 6580) +4(6580 6581 6652 6651) +4(6651 6652 6723 6722) +4(6722 6723 6794 6793) +4(6793 6794 6865 6864) +4(6864 6865 6936 6935) +4(6935 6936 7007 7006) +4(7006 7007 7078 7077) +4(7077 7078 7149 7148) +4(7148 7149 7220 7219) +4(3670 3671 3742 3741) +4(3741 3742 3813 3812) +4(3812 3813 3884 3883) +4(3883 3884 3955 3954) +4(3954 3955 4026 4025) +4(4025 4026 4097 4096) +4(4096 4097 4168 4167) +4(4167 4168 4239 4238) +4(4238 4239 4310 4309) +4(4309 4310 4381 4380) +4(4380 4381 4452 4451) +4(4451 4452 4523 4522) +4(4522 4523 4594 4593) +4(4593 4594 4665 4664) +4(4664 4665 4736 4735) +4(4735 4736 4807 4806) +4(4806 4807 4878 4877) +4(4877 4878 4949 4948) +4(4948 4949 5020 5019) +4(5019 5020 5091 5090) +4(5090 5091 5162 5161) +4(5161 5162 5233 5232) +4(5232 5233 5304 5303) +4(5303 5304 5375 5374) +4(5374 5375 5446 5445) +4(5445 5446 5517 5516) +4(5516 5517 5588 5587) +4(5587 5588 5659 5658) +4(5658 5659 5730 5729) +4(5729 5730 5801 5800) +4(5800 5801 5872 5871) +4(5871 5872 5943 5942) +4(5942 5943 6014 6013) +4(6013 6014 6085 6084) +4(6084 6085 6156 6155) +4(6155 6156 6227 6226) +4(6226 6227 6298 6297) +4(6297 6298 6369 6368) +4(6368 6369 6440 6439) +4(6439 6440 6511 6510) +4(6510 6511 6582 6581) +4(6581 6582 6653 6652) +4(6652 6653 6724 6723) +4(6723 6724 6795 6794) +4(6794 6795 6866 6865) +4(6865 6866 6937 6936) +4(6936 6937 7008 7007) +4(7007 7008 7079 7078) +4(7078 7079 7150 7149) +4(7149 7150 7221 7220) +4(3671 3672 3743 3742) +4(3742 3743 3814 3813) +4(3813 3814 3885 3884) +4(3884 3885 3956 3955) +4(3955 3956 4027 4026) +4(4026 4027 4098 4097) +4(4097 4098 4169 4168) +4(4168 4169 4240 4239) +4(4239 4240 4311 4310) +4(4310 4311 4382 4381) +4(4381 4382 4453 4452) +4(4452 4453 4524 4523) +4(4523 4524 4595 4594) +4(4594 4595 4666 4665) +4(4665 4666 4737 4736) +4(4736 4737 4808 4807) +4(4807 4808 4879 4878) +4(4878 4879 4950 4949) +4(4949 4950 5021 5020) +4(5020 5021 5092 5091) +4(5091 5092 5163 5162) +4(5162 5163 5234 5233) +4(5233 5234 5305 5304) +4(5304 5305 5376 5375) +4(5375 5376 5447 5446) +4(5446 5447 5518 5517) +4(5517 5518 5589 5588) +4(5588 5589 5660 5659) +4(5659 5660 5731 5730) +4(5730 5731 5802 5801) +4(5801 5802 5873 5872) +4(5872 5873 5944 5943) +4(5943 5944 6015 6014) +4(6014 6015 6086 6085) +4(6085 6086 6157 6156) +4(6156 6157 6228 6227) +4(6227 6228 6299 6298) +4(6298 6299 6370 6369) +4(6369 6370 6441 6440) +4(6440 6441 6512 6511) +4(6511 6512 6583 6582) +4(6582 6583 6654 6653) +4(6653 6654 6725 6724) +4(6724 6725 6796 6795) +4(6795 6796 6867 6866) +4(6866 6867 6938 6937) +4(6937 6938 7009 7008) +4(7008 7009 7080 7079) +4(7079 7080 7151 7150) +4(7150 7151 7222 7221) +4(3672 3673 3744 3743) +4(3743 3744 3815 3814) +4(3814 3815 3886 3885) +4(3885 3886 3957 3956) +4(3956 3957 4028 4027) +4(4027 4028 4099 4098) +4(4098 4099 4170 4169) +4(4169 4170 4241 4240) +4(4240 4241 4312 4311) +4(4311 4312 4383 4382) +4(4382 4383 4454 4453) +4(4453 4454 4525 4524) +4(4524 4525 4596 4595) +4(4595 4596 4667 4666) +4(4666 4667 4738 4737) +4(4737 4738 4809 4808) +4(4808 4809 4880 4879) +4(4879 4880 4951 4950) +4(4950 4951 5022 5021) +4(5021 5022 5093 5092) +4(5092 5093 5164 5163) +4(5163 5164 5235 5234) +4(5234 5235 5306 5305) +4(5305 5306 5377 5376) +4(5376 5377 5448 5447) +4(5447 5448 5519 5518) +4(5518 5519 5590 5589) +4(5589 5590 5661 5660) +4(5660 5661 5732 5731) +4(5731 5732 5803 5802) +4(5802 5803 5874 5873) +4(5873 5874 5945 5944) +4(5944 5945 6016 6015) +4(6015 6016 6087 6086) +4(6086 6087 6158 6157) +4(6157 6158 6229 6228) +4(6228 6229 6300 6299) +4(6299 6300 6371 6370) +4(6370 6371 6442 6441) +4(6441 6442 6513 6512) +4(6512 6513 6584 6583) +4(6583 6584 6655 6654) +4(6654 6655 6726 6725) +4(6725 6726 6797 6796) +4(6796 6797 6868 6867) +4(6867 6868 6939 6938) +4(6938 6939 7010 7009) +4(7009 7010 7081 7080) +4(7080 7081 7152 7151) +4(7151 7152 7223 7222) +4(3673 3674 3745 3744) +4(3744 3745 3816 3815) +4(3815 3816 3887 3886) +4(3886 3887 3958 3957) +4(3957 3958 4029 4028) +4(4028 4029 4100 4099) +4(4099 4100 4171 4170) +4(4170 4171 4242 4241) +4(4241 4242 4313 4312) +4(4312 4313 4384 4383) +4(4383 4384 4455 4454) +4(4454 4455 4526 4525) +4(4525 4526 4597 4596) +4(4596 4597 4668 4667) +4(4667 4668 4739 4738) +4(4738 4739 4810 4809) +4(4809 4810 4881 4880) +4(4880 4881 4952 4951) +4(4951 4952 5023 5022) +4(5022 5023 5094 5093) +4(5093 5094 5165 5164) +4(5164 5165 5236 5235) +4(5235 5236 5307 5306) +4(5306 5307 5378 5377) +4(5377 5378 5449 5448) +4(5448 5449 5520 5519) +4(5519 5520 5591 5590) +4(5590 5591 5662 5661) +4(5661 5662 5733 5732) +4(5732 5733 5804 5803) +4(5803 5804 5875 5874) +4(5874 5875 5946 5945) +4(5945 5946 6017 6016) +4(6016 6017 6088 6087) +4(6087 6088 6159 6158) +4(6158 6159 6230 6229) +4(6229 6230 6301 6300) +4(6300 6301 6372 6371) +4(6371 6372 6443 6442) +4(6442 6443 6514 6513) +4(6513 6514 6585 6584) +4(6584 6585 6656 6655) +4(6655 6656 6727 6726) +4(6726 6727 6798 6797) +4(6797 6798 6869 6868) +4(6868 6869 6940 6939) +4(6939 6940 7011 7010) +4(7010 7011 7082 7081) +4(7081 7082 7153 7152) +4(7152 7153 7224 7223) +4(3674 3675 3746 3745) +4(3745 3746 3817 3816) +4(3816 3817 3888 3887) +4(3887 3888 3959 3958) +4(3958 3959 4030 4029) +4(4029 4030 4101 4100) +4(4100 4101 4172 4171) +4(4171 4172 4243 4242) +4(4242 4243 4314 4313) +4(4313 4314 4385 4384) +4(4384 4385 4456 4455) +4(4455 4456 4527 4526) +4(4526 4527 4598 4597) +4(4597 4598 4669 4668) +4(4668 4669 4740 4739) +4(4739 4740 4811 4810) +4(4810 4811 4882 4881) +4(4881 4882 4953 4952) +4(4952 4953 5024 5023) +4(5023 5024 5095 5094) +4(5094 5095 5166 5165) +4(5165 5166 5237 5236) +4(5236 5237 5308 5307) +4(5307 5308 5379 5378) +4(5378 5379 5450 5449) +4(5449 5450 5521 5520) +4(5520 5521 5592 5591) +4(5591 5592 5663 5662) +4(5662 5663 5734 5733) +4(5733 5734 5805 5804) +4(5804 5805 5876 5875) +4(5875 5876 5947 5946) +4(5946 5947 6018 6017) +4(6017 6018 6089 6088) +4(6088 6089 6160 6159) +4(6159 6160 6231 6230) +4(6230 6231 6302 6301) +4(6301 6302 6373 6372) +4(6372 6373 6444 6443) +4(6443 6444 6515 6514) +4(6514 6515 6586 6585) +4(6585 6586 6657 6656) +4(6656 6657 6728 6727) +4(6727 6728 6799 6798) +4(6798 6799 6870 6869) +4(6869 6870 6941 6940) +4(6940 6941 7012 7011) +4(7011 7012 7083 7082) +4(7082 7083 7154 7153) +4(7153 7154 7225 7224) +4(3675 3676 3747 3746) +4(3746 3747 3818 3817) +4(3817 3818 3889 3888) +4(3888 3889 3960 3959) +4(3959 3960 4031 4030) +4(4030 4031 4102 4101) +4(4101 4102 4173 4172) +4(4172 4173 4244 4243) +4(4243 4244 4315 4314) +4(4314 4315 4386 4385) +4(4385 4386 4457 4456) +4(4456 4457 4528 4527) +4(4527 4528 4599 4598) +4(4598 4599 4670 4669) +4(4669 4670 4741 4740) +4(4740 4741 4812 4811) +4(4811 4812 4883 4882) +4(4882 4883 4954 4953) +4(4953 4954 5025 5024) +4(5024 5025 5096 5095) +4(5095 5096 5167 5166) +4(5166 5167 5238 5237) +4(5237 5238 5309 5308) +4(5308 5309 5380 5379) +4(5379 5380 5451 5450) +4(5450 5451 5522 5521) +4(5521 5522 5593 5592) +4(5592 5593 5664 5663) +4(5663 5664 5735 5734) +4(5734 5735 5806 5805) +4(5805 5806 5877 5876) +4(5876 5877 5948 5947) +4(5947 5948 6019 6018) +4(6018 6019 6090 6089) +4(6089 6090 6161 6160) +4(6160 6161 6232 6231) +4(6231 6232 6303 6302) +4(6302 6303 6374 6373) +4(6373 6374 6445 6444) +4(6444 6445 6516 6515) +4(6515 6516 6587 6586) +4(6586 6587 6658 6657) +4(6657 6658 6729 6728) +4(6728 6729 6800 6799) +4(6799 6800 6871 6870) +4(6870 6871 6942 6941) +4(6941 6942 7013 7012) +4(7012 7013 7084 7083) +4(7083 7084 7155 7154) +4(7154 7155 7226 7225) +4(3676 3677 3748 3747) +4(3747 3748 3819 3818) +4(3818 3819 3890 3889) +4(3889 3890 3961 3960) +4(3960 3961 4032 4031) +4(4031 4032 4103 4102) +4(4102 4103 4174 4173) +4(4173 4174 4245 4244) +4(4244 4245 4316 4315) +4(4315 4316 4387 4386) +4(4386 4387 4458 4457) +4(4457 4458 4529 4528) +4(4528 4529 4600 4599) +4(4599 4600 4671 4670) +4(4670 4671 4742 4741) +4(4741 4742 4813 4812) +4(4812 4813 4884 4883) +4(4883 4884 4955 4954) +4(4954 4955 5026 5025) +4(5025 5026 5097 5096) +4(5096 5097 5168 5167) +4(5167 5168 5239 5238) +4(5238 5239 5310 5309) +4(5309 5310 5381 5380) +4(5380 5381 5452 5451) +4(5451 5452 5523 5522) +4(5522 5523 5594 5593) +4(5593 5594 5665 5664) +4(5664 5665 5736 5735) +4(5735 5736 5807 5806) +4(5806 5807 5878 5877) +4(5877 5878 5949 5948) +4(5948 5949 6020 6019) +4(6019 6020 6091 6090) +4(6090 6091 6162 6161) +4(6161 6162 6233 6232) +4(6232 6233 6304 6303) +4(6303 6304 6375 6374) +4(6374 6375 6446 6445) +4(6445 6446 6517 6516) +4(6516 6517 6588 6587) +4(6587 6588 6659 6658) +4(6658 6659 6730 6729) +4(6729 6730 6801 6800) +4(6800 6801 6872 6871) +4(6871 6872 6943 6942) +4(6942 6943 7014 7013) +4(7013 7014 7085 7084) +4(7084 7085 7156 7155) +4(7155 7156 7227 7226) +4(3677 3678 3749 3748) +4(3748 3749 3820 3819) +4(3819 3820 3891 3890) +4(3890 3891 3962 3961) +4(3961 3962 4033 4032) +4(4032 4033 4104 4103) +4(4103 4104 4175 4174) +4(4174 4175 4246 4245) +4(4245 4246 4317 4316) +4(4316 4317 4388 4387) +4(4387 4388 4459 4458) +4(4458 4459 4530 4529) +4(4529 4530 4601 4600) +4(4600 4601 4672 4671) +4(4671 4672 4743 4742) +4(4742 4743 4814 4813) +4(4813 4814 4885 4884) +4(4884 4885 4956 4955) +4(4955 4956 5027 5026) +4(5026 5027 5098 5097) +4(5097 5098 5169 5168) +4(5168 5169 5240 5239) +4(5239 5240 5311 5310) +4(5310 5311 5382 5381) +4(5381 5382 5453 5452) +4(5452 5453 5524 5523) +4(5523 5524 5595 5594) +4(5594 5595 5666 5665) +4(5665 5666 5737 5736) +4(5736 5737 5808 5807) +4(5807 5808 5879 5878) +4(5878 5879 5950 5949) +4(5949 5950 6021 6020) +4(6020 6021 6092 6091) +4(6091 6092 6163 6162) +4(6162 6163 6234 6233) +4(6233 6234 6305 6304) +4(6304 6305 6376 6375) +4(6375 6376 6447 6446) +4(6446 6447 6518 6517) +4(6517 6518 6589 6588) +4(6588 6589 6660 6659) +4(6659 6660 6731 6730) +4(6730 6731 6802 6801) +4(6801 6802 6873 6872) +4(6872 6873 6944 6943) +4(6943 6944 7015 7014) +4(7014 7015 7086 7085) +4(7085 7086 7157 7156) +4(7156 7157 7228 7227) +4(3678 3679 3750 3749) +4(3749 3750 3821 3820) +4(3820 3821 3892 3891) +4(3891 3892 3963 3962) +4(3962 3963 4034 4033) +4(4033 4034 4105 4104) +4(4104 4105 4176 4175) +4(4175 4176 4247 4246) +4(4246 4247 4318 4317) +4(4317 4318 4389 4388) +4(4388 4389 4460 4459) +4(4459 4460 4531 4530) +4(4530 4531 4602 4601) +4(4601 4602 4673 4672) +4(4672 4673 4744 4743) +4(4743 4744 4815 4814) +4(4814 4815 4886 4885) +4(4885 4886 4957 4956) +4(4956 4957 5028 5027) +4(5027 5028 5099 5098) +4(5098 5099 5170 5169) +4(5169 5170 5241 5240) +4(5240 5241 5312 5311) +4(5311 5312 5383 5382) +4(5382 5383 5454 5453) +4(5453 5454 5525 5524) +4(5524 5525 5596 5595) +4(5595 5596 5667 5666) +4(5666 5667 5738 5737) +4(5737 5738 5809 5808) +4(5808 5809 5880 5879) +4(5879 5880 5951 5950) +4(5950 5951 6022 6021) +4(6021 6022 6093 6092) +4(6092 6093 6164 6163) +4(6163 6164 6235 6234) +4(6234 6235 6306 6305) +4(6305 6306 6377 6376) +4(6376 6377 6448 6447) +4(6447 6448 6519 6518) +4(6518 6519 6590 6589) +4(6589 6590 6661 6660) +4(6660 6661 6732 6731) +4(6731 6732 6803 6802) +4(6802 6803 6874 6873) +4(6873 6874 6945 6944) +4(6944 6945 7016 7015) +4(7015 7016 7087 7086) +4(7086 7087 7158 7157) +4(7157 7158 7229 7228) +4(3679 3680 3751 3750) +4(3750 3751 3822 3821) +4(3821 3822 3893 3892) +4(3892 3893 3964 3963) +4(3963 3964 4035 4034) +4(4034 4035 4106 4105) +4(4105 4106 4177 4176) +4(4176 4177 4248 4247) +4(4247 4248 4319 4318) +4(4318 4319 4390 4389) +4(4389 4390 4461 4460) +4(4460 4461 4532 4531) +4(4531 4532 4603 4602) +4(4602 4603 4674 4673) +4(4673 4674 4745 4744) +4(4744 4745 4816 4815) +4(4815 4816 4887 4886) +4(4886 4887 4958 4957) +4(4957 4958 5029 5028) +4(5028 5029 5100 5099) +4(5099 5100 5171 5170) +4(5170 5171 5242 5241) +4(5241 5242 5313 5312) +4(5312 5313 5384 5383) +4(5383 5384 5455 5454) +4(5454 5455 5526 5525) +4(5525 5526 5597 5596) +4(5596 5597 5668 5667) +4(5667 5668 5739 5738) +4(5738 5739 5810 5809) +4(5809 5810 5881 5880) +4(5880 5881 5952 5951) +4(5951 5952 6023 6022) +4(6022 6023 6094 6093) +4(6093 6094 6165 6164) +4(6164 6165 6236 6235) +4(6235 6236 6307 6306) +4(6306 6307 6378 6377) +4(6377 6378 6449 6448) +4(6448 6449 6520 6519) +4(6519 6520 6591 6590) +4(6590 6591 6662 6661) +4(6661 6662 6733 6732) +4(6732 6733 6804 6803) +4(6803 6804 6875 6874) +4(6874 6875 6946 6945) +4(6945 6946 7017 7016) +4(7016 7017 7088 7087) +4(7087 7088 7159 7158) +4(7158 7159 7230 7229) +4(3680 3681 3752 3751) +4(3751 3752 3823 3822) +4(3822 3823 3894 3893) +4(3893 3894 3965 3964) +4(3964 3965 4036 4035) +4(4035 4036 4107 4106) +4(4106 4107 4178 4177) +4(4177 4178 4249 4248) +4(4248 4249 4320 4319) +4(4319 4320 4391 4390) +4(4390 4391 4462 4461) +4(4461 4462 4533 4532) +4(4532 4533 4604 4603) +4(4603 4604 4675 4674) +4(4674 4675 4746 4745) +4(4745 4746 4817 4816) +4(4816 4817 4888 4887) +4(4887 4888 4959 4958) +4(4958 4959 5030 5029) +4(5029 5030 5101 5100) +4(5100 5101 5172 5171) +4(5171 5172 5243 5242) +4(5242 5243 5314 5313) +4(5313 5314 5385 5384) +4(5384 5385 5456 5455) +4(5455 5456 5527 5526) +4(5526 5527 5598 5597) +4(5597 5598 5669 5668) +4(5668 5669 5740 5739) +4(5739 5740 5811 5810) +4(5810 5811 5882 5881) +4(5881 5882 5953 5952) +4(5952 5953 6024 6023) +4(6023 6024 6095 6094) +4(6094 6095 6166 6165) +4(6165 6166 6237 6236) +4(6236 6237 6308 6307) +4(6307 6308 6379 6378) +4(6378 6379 6450 6449) +4(6449 6450 6521 6520) +4(6520 6521 6592 6591) +4(6591 6592 6663 6662) +4(6662 6663 6734 6733) +4(6733 6734 6805 6804) +4(6804 6805 6876 6875) +4(6875 6876 6947 6946) +4(6946 6947 7018 7017) +4(7017 7018 7089 7088) +4(7088 7089 7160 7159) +4(7159 7160 7231 7230) +4(3681 3682 3753 3752) +4(3752 3753 3824 3823) +4(3823 3824 3895 3894) +4(3894 3895 3966 3965) +4(3965 3966 4037 4036) +4(4036 4037 4108 4107) +4(4107 4108 4179 4178) +4(4178 4179 4250 4249) +4(4249 4250 4321 4320) +4(4320 4321 4392 4391) +4(4391 4392 4463 4462) +4(4462 4463 4534 4533) +4(4533 4534 4605 4604) +4(4604 4605 4676 4675) +4(4675 4676 4747 4746) +4(4746 4747 4818 4817) +4(4817 4818 4889 4888) +4(4888 4889 4960 4959) +4(4959 4960 5031 5030) +4(5030 5031 5102 5101) +4(5101 5102 5173 5172) +4(5172 5173 5244 5243) +4(5243 5244 5315 5314) +4(5314 5315 5386 5385) +4(5385 5386 5457 5456) +4(5456 5457 5528 5527) +4(5527 5528 5599 5598) +4(5598 5599 5670 5669) +4(5669 5670 5741 5740) +4(5740 5741 5812 5811) +4(5811 5812 5883 5882) +4(5882 5883 5954 5953) +4(5953 5954 6025 6024) +4(6024 6025 6096 6095) +4(6095 6096 6167 6166) +4(6166 6167 6238 6237) +4(6237 6238 6309 6308) +4(6308 6309 6380 6379) +4(6379 6380 6451 6450) +4(6450 6451 6522 6521) +4(6521 6522 6593 6592) +4(6592 6593 6664 6663) +4(6663 6664 6735 6734) +4(6734 6735 6806 6805) +4(6805 6806 6877 6876) +4(6876 6877 6948 6947) +4(6947 6948 7019 7018) +4(7018 7019 7090 7089) +4(7089 7090 7161 7160) +4(7160 7161 7232 7231) +4(3682 3683 3754 3753) +4(3753 3754 3825 3824) +4(3824 3825 3896 3895) +4(3895 3896 3967 3966) +4(3966 3967 4038 4037) +4(4037 4038 4109 4108) +4(4108 4109 4180 4179) +4(4179 4180 4251 4250) +4(4250 4251 4322 4321) +4(4321 4322 4393 4392) +4(4392 4393 4464 4463) +4(4463 4464 4535 4534) +4(4534 4535 4606 4605) +4(4605 4606 4677 4676) +4(4676 4677 4748 4747) +4(4747 4748 4819 4818) +4(4818 4819 4890 4889) +4(4889 4890 4961 4960) +4(4960 4961 5032 5031) +4(5031 5032 5103 5102) +4(5102 5103 5174 5173) +4(5173 5174 5245 5244) +4(5244 5245 5316 5315) +4(5315 5316 5387 5386) +4(5386 5387 5458 5457) +4(5457 5458 5529 5528) +4(5528 5529 5600 5599) +4(5599 5600 5671 5670) +4(5670 5671 5742 5741) +4(5741 5742 5813 5812) +4(5812 5813 5884 5883) +4(5883 5884 5955 5954) +4(5954 5955 6026 6025) +4(6025 6026 6097 6096) +4(6096 6097 6168 6167) +4(6167 6168 6239 6238) +4(6238 6239 6310 6309) +4(6309 6310 6381 6380) +4(6380 6381 6452 6451) +4(6451 6452 6523 6522) +4(6522 6523 6594 6593) +4(6593 6594 6665 6664) +4(6664 6665 6736 6735) +4(6735 6736 6807 6806) +4(6806 6807 6878 6877) +4(6877 6878 6949 6948) +4(6948 6949 7020 7019) +4(7019 7020 7091 7090) +4(7090 7091 7162 7161) +4(7161 7162 7233 7232) +4(3683 3684 3755 3754) +4(3754 3755 3826 3825) +4(3825 3826 3897 3896) +4(3896 3897 3968 3967) +4(3967 3968 4039 4038) +4(4038 4039 4110 4109) +4(4109 4110 4181 4180) +4(4180 4181 4252 4251) +4(4251 4252 4323 4322) +4(4322 4323 4394 4393) +4(4393 4394 4465 4464) +4(4464 4465 4536 4535) +4(4535 4536 4607 4606) +4(4606 4607 4678 4677) +4(4677 4678 4749 4748) +4(4748 4749 4820 4819) +4(4819 4820 4891 4890) +4(4890 4891 4962 4961) +4(4961 4962 5033 5032) +4(5032 5033 5104 5103) +4(5103 5104 5175 5174) +4(5174 5175 5246 5245) +4(5245 5246 5317 5316) +4(5316 5317 5388 5387) +4(5387 5388 5459 5458) +4(5458 5459 5530 5529) +4(5529 5530 5601 5600) +4(5600 5601 5672 5671) +4(5671 5672 5743 5742) +4(5742 5743 5814 5813) +4(5813 5814 5885 5884) +4(5884 5885 5956 5955) +4(5955 5956 6027 6026) +4(6026 6027 6098 6097) +4(6097 6098 6169 6168) +4(6168 6169 6240 6239) +4(6239 6240 6311 6310) +4(6310 6311 6382 6381) +4(6381 6382 6453 6452) +4(6452 6453 6524 6523) +4(6523 6524 6595 6594) +4(6594 6595 6666 6665) +4(6665 6666 6737 6736) +4(6736 6737 6808 6807) +4(6807 6808 6879 6878) +4(6878 6879 6950 6949) +4(6949 6950 7021 7020) +4(7020 7021 7092 7091) +4(7091 7092 7163 7162) +4(7162 7163 7234 7233) +4(3684 3685 3756 3755) +4(3755 3756 3827 3826) +4(3826 3827 3898 3897) +4(3897 3898 3969 3968) +4(3968 3969 4040 4039) +4(4039 4040 4111 4110) +4(4110 4111 4182 4181) +4(4181 4182 4253 4252) +4(4252 4253 4324 4323) +4(4323 4324 4395 4394) +4(4394 4395 4466 4465) +4(4465 4466 4537 4536) +4(4536 4537 4608 4607) +4(4607 4608 4679 4678) +4(4678 4679 4750 4749) +4(4749 4750 4821 4820) +4(4820 4821 4892 4891) +4(4891 4892 4963 4962) +4(4962 4963 5034 5033) +4(5033 5034 5105 5104) +4(5104 5105 5176 5175) +4(5175 5176 5247 5246) +4(5246 5247 5318 5317) +4(5317 5318 5389 5388) +4(5388 5389 5460 5459) +4(5459 5460 5531 5530) +4(5530 5531 5602 5601) +4(5601 5602 5673 5672) +4(5672 5673 5744 5743) +4(5743 5744 5815 5814) +4(5814 5815 5886 5885) +4(5885 5886 5957 5956) +4(5956 5957 6028 6027) +4(6027 6028 6099 6098) +4(6098 6099 6170 6169) +4(6169 6170 6241 6240) +4(6240 6241 6312 6311) +4(6311 6312 6383 6382) +4(6382 6383 6454 6453) +4(6453 6454 6525 6524) +4(6524 6525 6596 6595) +4(6595 6596 6667 6666) +4(6666 6667 6738 6737) +4(6737 6738 6809 6808) +4(6808 6809 6880 6879) +4(6879 6880 6951 6950) +4(6950 6951 7022 7021) +4(7021 7022 7093 7092) +4(7092 7093 7164 7163) +4(7163 7164 7235 7234) +4(3685 3686 3757 3756) +4(3756 3757 3828 3827) +4(3827 3828 3899 3898) +4(3898 3899 3970 3969) +4(3969 3970 4041 4040) +4(4040 4041 4112 4111) +4(4111 4112 4183 4182) +4(4182 4183 4254 4253) +4(4253 4254 4325 4324) +4(4324 4325 4396 4395) +4(4395 4396 4467 4466) +4(4466 4467 4538 4537) +4(4537 4538 4609 4608) +4(4608 4609 4680 4679) +4(4679 4680 4751 4750) +4(4750 4751 4822 4821) +4(4821 4822 4893 4892) +4(4892 4893 4964 4963) +4(4963 4964 5035 5034) +4(5034 5035 5106 5105) +4(5105 5106 5177 5176) +4(5176 5177 5248 5247) +4(5247 5248 5319 5318) +4(5318 5319 5390 5389) +4(5389 5390 5461 5460) +4(5460 5461 5532 5531) +4(5531 5532 5603 5602) +4(5602 5603 5674 5673) +4(5673 5674 5745 5744) +4(5744 5745 5816 5815) +4(5815 5816 5887 5886) +4(5886 5887 5958 5957) +4(5957 5958 6029 6028) +4(6028 6029 6100 6099) +4(6099 6100 6171 6170) +4(6170 6171 6242 6241) +4(6241 6242 6313 6312) +4(6312 6313 6384 6383) +4(6383 6384 6455 6454) +4(6454 6455 6526 6525) +4(6525 6526 6597 6596) +4(6596 6597 6668 6667) +4(6667 6668 6739 6738) +4(6738 6739 6810 6809) +4(6809 6810 6881 6880) +4(6880 6881 6952 6951) +4(6951 6952 7023 7022) +4(7022 7023 7094 7093) +4(7093 7094 7165 7164) +4(7164 7165 7236 7235) +4(3686 3687 3758 3757) +4(3757 3758 3829 3828) +4(3828 3829 3900 3899) +4(3899 3900 3971 3970) +4(3970 3971 4042 4041) +4(4041 4042 4113 4112) +4(4112 4113 4184 4183) +4(4183 4184 4255 4254) +4(4254 4255 4326 4325) +4(4325 4326 4397 4396) +4(4396 4397 4468 4467) +4(4467 4468 4539 4538) +4(4538 4539 4610 4609) +4(4609 4610 4681 4680) +4(4680 4681 4752 4751) +4(4751 4752 4823 4822) +4(4822 4823 4894 4893) +4(4893 4894 4965 4964) +4(4964 4965 5036 5035) +4(5035 5036 5107 5106) +4(5106 5107 5178 5177) +4(5177 5178 5249 5248) +4(5248 5249 5320 5319) +4(5319 5320 5391 5390) +4(5390 5391 5462 5461) +4(5461 5462 5533 5532) +4(5532 5533 5604 5603) +4(5603 5604 5675 5674) +4(5674 5675 5746 5745) +4(5745 5746 5817 5816) +4(5816 5817 5888 5887) +4(5887 5888 5959 5958) +4(5958 5959 6030 6029) +4(6029 6030 6101 6100) +4(6100 6101 6172 6171) +4(6171 6172 6243 6242) +4(6242 6243 6314 6313) +4(6313 6314 6385 6384) +4(6384 6385 6456 6455) +4(6455 6456 6527 6526) +4(6526 6527 6598 6597) +4(6597 6598 6669 6668) +4(6668 6669 6740 6739) +4(6739 6740 6811 6810) +4(6810 6811 6882 6881) +4(6881 6882 6953 6952) +4(6952 6953 7024 7023) +4(7023 7024 7095 7094) +4(7094 7095 7166 7165) +4(7165 7166 7237 7236) +4(3687 3688 3759 3758) +4(3758 3759 3830 3829) +4(3829 3830 3901 3900) +4(3900 3901 3972 3971) +4(3971 3972 4043 4042) +4(4042 4043 4114 4113) +4(4113 4114 4185 4184) +4(4184 4185 4256 4255) +4(4255 4256 4327 4326) +4(4326 4327 4398 4397) +4(4397 4398 4469 4468) +4(4468 4469 4540 4539) +4(4539 4540 4611 4610) +4(4610 4611 4682 4681) +4(4681 4682 4753 4752) +4(4752 4753 4824 4823) +4(4823 4824 4895 4894) +4(4894 4895 4966 4965) +4(4965 4966 5037 5036) +4(5036 5037 5108 5107) +4(5107 5108 5179 5178) +4(5178 5179 5250 5249) +4(5249 5250 5321 5320) +4(5320 5321 5392 5391) +4(5391 5392 5463 5462) +4(5462 5463 5534 5533) +4(5533 5534 5605 5604) +4(5604 5605 5676 5675) +4(5675 5676 5747 5746) +4(5746 5747 5818 5817) +4(5817 5818 5889 5888) +4(5888 5889 5960 5959) +4(5959 5960 6031 6030) +4(6030 6031 6102 6101) +4(6101 6102 6173 6172) +4(6172 6173 6244 6243) +4(6243 6244 6315 6314) +4(6314 6315 6386 6385) +4(6385 6386 6457 6456) +4(6456 6457 6528 6527) +4(6527 6528 6599 6598) +4(6598 6599 6670 6669) +4(6669 6670 6741 6740) +4(6740 6741 6812 6811) +4(6811 6812 6883 6882) +4(6882 6883 6954 6953) +4(6953 6954 7025 7024) +4(7024 7025 7096 7095) +4(7095 7096 7167 7166) +4(7166 7167 7238 7237) +4(3688 3689 3760 3759) +4(3759 3760 3831 3830) +4(3830 3831 3902 3901) +4(3901 3902 3973 3972) +4(3972 3973 4044 4043) +4(4043 4044 4115 4114) +4(4114 4115 4186 4185) +4(4185 4186 4257 4256) +4(4256 4257 4328 4327) +4(4327 4328 4399 4398) +4(4398 4399 4470 4469) +4(4469 4470 4541 4540) +4(4540 4541 4612 4611) +4(4611 4612 4683 4682) +4(4682 4683 4754 4753) +4(4753 4754 4825 4824) +4(4824 4825 4896 4895) +4(4895 4896 4967 4966) +4(4966 4967 5038 5037) +4(5037 5038 5109 5108) +4(5108 5109 5180 5179) +4(5179 5180 5251 5250) +4(5250 5251 5322 5321) +4(5321 5322 5393 5392) +4(5392 5393 5464 5463) +4(5463 5464 5535 5534) +4(5534 5535 5606 5605) +4(5605 5606 5677 5676) +4(5676 5677 5748 5747) +4(5747 5748 5819 5818) +4(5818 5819 5890 5889) +4(5889 5890 5961 5960) +4(5960 5961 6032 6031) +4(6031 6032 6103 6102) +4(6102 6103 6174 6173) +4(6173 6174 6245 6244) +4(6244 6245 6316 6315) +4(6315 6316 6387 6386) +4(6386 6387 6458 6457) +4(6457 6458 6529 6528) +4(6528 6529 6600 6599) +4(6599 6600 6671 6670) +4(6670 6671 6742 6741) +4(6741 6742 6813 6812) +4(6812 6813 6884 6883) +4(6883 6884 6955 6954) +4(6954 6955 7026 7025) +4(7025 7026 7097 7096) +4(7096 7097 7168 7167) +4(7167 7168 7239 7238) +4(3689 3690 3761 3760) +4(3760 3761 3832 3831) +4(3831 3832 3903 3902) +4(3902 3903 3974 3973) +4(3973 3974 4045 4044) +4(4044 4045 4116 4115) +4(4115 4116 4187 4186) +4(4186 4187 4258 4257) +4(4257 4258 4329 4328) +4(4328 4329 4400 4399) +4(4399 4400 4471 4470) +4(4470 4471 4542 4541) +4(4541 4542 4613 4612) +4(4612 4613 4684 4683) +4(4683 4684 4755 4754) +4(4754 4755 4826 4825) +4(4825 4826 4897 4896) +4(4896 4897 4968 4967) +4(4967 4968 5039 5038) +4(5038 5039 5110 5109) +4(5109 5110 5181 5180) +4(5180 5181 5252 5251) +4(5251 5252 5323 5322) +4(5322 5323 5394 5393) +4(5393 5394 5465 5464) +4(5464 5465 5536 5535) +4(5535 5536 5607 5606) +4(5606 5607 5678 5677) +4(5677 5678 5749 5748) +4(5748 5749 5820 5819) +4(5819 5820 5891 5890) +4(5890 5891 5962 5961) +4(5961 5962 6033 6032) +4(6032 6033 6104 6103) +4(6103 6104 6175 6174) +4(6174 6175 6246 6245) +4(6245 6246 6317 6316) +4(6316 6317 6388 6387) +4(6387 6388 6459 6458) +4(6458 6459 6530 6529) +4(6529 6530 6601 6600) +4(6600 6601 6672 6671) +4(6671 6672 6743 6742) +4(6742 6743 6814 6813) +4(6813 6814 6885 6884) +4(6884 6885 6956 6955) +4(6955 6956 7027 7026) +4(7026 7027 7098 7097) +4(7097 7098 7169 7168) +4(7168 7169 7240 7239) +4(3690 3691 3762 3761) +4(3761 3762 3833 3832) +4(3832 3833 3904 3903) +4(3903 3904 3975 3974) +4(3974 3975 4046 4045) +4(4045 4046 4117 4116) +4(4116 4117 4188 4187) +4(4187 4188 4259 4258) +4(4258 4259 4330 4329) +4(4329 4330 4401 4400) +4(4400 4401 4472 4471) +4(4471 4472 4543 4542) +4(4542 4543 4614 4613) +4(4613 4614 4685 4684) +4(4684 4685 4756 4755) +4(4755 4756 4827 4826) +4(4826 4827 4898 4897) +4(4897 4898 4969 4968) +4(4968 4969 5040 5039) +4(5039 5040 5111 5110) +4(5110 5111 5182 5181) +4(5181 5182 5253 5252) +4(5252 5253 5324 5323) +4(5323 5324 5395 5394) +4(5394 5395 5466 5465) +4(5465 5466 5537 5536) +4(5536 5537 5608 5607) +4(5607 5608 5679 5678) +4(5678 5679 5750 5749) +4(5749 5750 5821 5820) +4(5820 5821 5892 5891) +4(5891 5892 5963 5962) +4(5962 5963 6034 6033) +4(6033 6034 6105 6104) +4(6104 6105 6176 6175) +4(6175 6176 6247 6246) +4(6246 6247 6318 6317) +4(6317 6318 6389 6388) +4(6388 6389 6460 6459) +4(6459 6460 6531 6530) +4(6530 6531 6602 6601) +4(6601 6602 6673 6672) +4(6672 6673 6744 6743) +4(6743 6744 6815 6814) +4(6814 6815 6886 6885) +4(6885 6886 6957 6956) +4(6956 6957 7028 7027) +4(7027 7028 7099 7098) +4(7098 7099 7170 7169) +4(7169 7170 7241 7240) +) + + +// ************************************************************************* // diff --git a/PeriodicHill/constant/polyMesh/neighbour b/PeriodicHill/constant/polyMesh/neighbour new file mode 100644 index 00000000..4b0533dc --- /dev/null +++ b/PeriodicHill/constant/polyMesh/neighbour @@ -0,0 +1,6905 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class labelList; + note "nPoints:7242 nCells:3500 nFaces:14120 nInternalFaces:6880"; + location "constant/polyMesh"; + object neighbour; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +6880 +( +1 +70 +2 +71 +3 +72 +4 +73 +5 +74 +6 +75 +7 +76 +8 +77 +9 +78 +10 +79 +11 +80 +12 +81 +13 +82 +14 +83 +15 +84 +16 +85 +17 +86 +18 +87 +19 +88 +20 +89 +21 +90 +22 +91 +23 +92 +24 +93 +25 +94 +26 +95 +27 +96 +28 +97 +29 +98 +30 +99 +31 +100 +32 +101 +33 +102 +34 +103 +35 +104 +36 +105 +37 +106 +38 +107 +39 +108 +40 +109 +41 +110 +42 +111 +43 +112 +44 +113 +45 +114 +46 +115 +47 +116 +48 +117 +49 +118 +50 +119 +51 +120 +52 +121 +53 +122 +54 +123 +55 +124 +56 +125 +57 +126 +58 +127 +59 +128 +60 +129 +61 +130 +62 +131 +63 +132 +64 +133 +65 +134 +66 +135 +67 +136 +68 +137 +69 +138 +139 +71 +140 +72 +141 +73 +142 +74 +143 +75 +144 +76 +145 +77 +146 +78 +147 +79 +148 +80 +149 +81 +150 +82 +151 +83 +152 +84 +153 +85 +154 +86 +155 +87 +156 +88 +157 +89 +158 +90 +159 +91 +160 +92 +161 +93 +162 +94 +163 +95 +164 +96 +165 +97 +166 +98 +167 +99 +168 +100 +169 +101 +170 +102 +171 +103 +172 +104 +173 +105 +174 +106 +175 +107 +176 +108 +177 +109 +178 +110 +179 +111 +180 +112 +181 +113 +182 +114 +183 +115 +184 +116 +185 +117 +186 +118 +187 +119 +188 +120 +189 +121 +190 +122 +191 +123 +192 +124 +193 +125 +194 +126 +195 +127 +196 +128 +197 +129 +198 +130 +199 +131 +200 +132 +201 +133 +202 +134 +203 +135 +204 +136 +205 +137 +206 +138 +207 +139 +208 +209 +141 +210 +142 +211 +143 +212 +144 +213 +145 +214 +146 +215 +147 +216 +148 +217 +149 +218 +150 +219 +151 +220 +152 +221 +153 +222 +154 +223 +155 +224 +156 +225 +157 +226 +158 +227 +159 +228 +160 +229 +161 +230 +162 +231 +163 +232 +164 +233 +165 +234 +166 +235 +167 +236 +168 +237 +169 +238 +170 +239 +171 +240 +172 +241 +173 +242 +174 +243 +175 +244 +176 +245 +177 +246 +178 +247 +179 +248 +180 +249 +181 +250 +182 +251 +183 +252 +184 +253 +185 +254 +186 +255 +187 +256 +188 +257 +189 +258 +190 +259 +191 +260 +192 +261 +193 +262 +194 +263 +195 +264 +196 +265 +197 +266 +198 +267 +199 +268 +200 +269 +201 +270 +202 +271 +203 +272 +204 +273 +205 +274 +206 +275 +207 +276 +208 +277 +209 +278 +279 +211 +280 +212 +281 +213 +282 +214 +283 +215 +284 +216 +285 +217 +286 +218 +287 +219 +288 +220 +289 +221 +290 +222 +291 +223 +292 +224 +293 +225 +294 +226 +295 +227 +296 +228 +297 +229 +298 +230 +299 +231 +300 +232 +301 +233 +302 +234 +303 +235 +304 +236 +305 +237 +306 +238 +307 +239 +308 +240 +309 +241 +310 +242 +311 +243 +312 +244 +313 +245 +314 +246 +315 +247 +316 +248 +317 +249 +318 +250 +319 +251 +320 +252 +321 +253 +322 +254 +323 +255 +324 +256 +325 +257 +326 +258 +327 +259 +328 +260 +329 +261 +330 +262 +331 +263 +332 +264 +333 +265 +334 +266 +335 +267 +336 +268 +337 +269 +338 +270 +339 +271 +340 +272 +341 +273 +342 +274 +343 +275 +344 +276 +345 +277 +346 +278 +347 +279 +348 +349 +281 +350 +282 +351 +283 +352 +284 +353 +285 +354 +286 +355 +287 +356 +288 +357 +289 +358 +290 +359 +291 +360 +292 +361 +293 +362 +294 +363 +295 +364 +296 +365 +297 +366 +298 +367 +299 +368 +300 +369 +301 +370 +302 +371 +303 +372 +304 +373 +305 +374 +306 +375 +307 +376 +308 +377 +309 +378 +310 +379 +311 +380 +312 +381 +313 +382 +314 +383 +315 +384 +316 +385 +317 +386 +318 +387 +319 +388 +320 +389 +321 +390 +322 +391 +323 +392 +324 +393 +325 +394 +326 +395 +327 +396 +328 +397 +329 +398 +330 +399 +331 +400 +332 +401 +333 +402 +334 +403 +335 +404 +336 +405 +337 +406 +338 +407 +339 +408 +340 +409 +341 +410 +342 +411 +343 +412 +344 +413 +345 +414 +346 +415 +347 +416 +348 +417 +349 +418 +419 +351 +420 +352 +421 +353 +422 +354 +423 +355 +424 +356 +425 +357 +426 +358 +427 +359 +428 +360 +429 +361 +430 +362 +431 +363 +432 +364 +433 +365 +434 +366 +435 +367 +436 +368 +437 +369 +438 +370 +439 +371 +440 +372 +441 +373 +442 +374 +443 +375 +444 +376 +445 +377 +446 +378 +447 +379 +448 +380 +449 +381 +450 +382 +451 +383 +452 +384 +453 +385 +454 +386 +455 +387 +456 +388 +457 +389 +458 +390 +459 +391 +460 +392 +461 +393 +462 +394 +463 +395 +464 +396 +465 +397 +466 +398 +467 +399 +468 +400 +469 +401 +470 +402 +471 +403 +472 +404 +473 +405 +474 +406 +475 +407 +476 +408 +477 +409 +478 +410 +479 +411 +480 +412 +481 +413 +482 +414 +483 +415 +484 +416 +485 +417 +486 +418 +487 +419 +488 +489 +421 +490 +422 +491 +423 +492 +424 +493 +425 +494 +426 +495 +427 +496 +428 +497 +429 +498 +430 +499 +431 +500 +432 +501 +433 +502 +434 +503 +435 +504 +436 +505 +437 +506 +438 +507 +439 +508 +440 +509 +441 +510 +442 +511 +443 +512 +444 +513 +445 +514 +446 +515 +447 +516 +448 +517 +449 +518 +450 +519 +451 +520 +452 +521 +453 +522 +454 +523 +455 +524 +456 +525 +457 +526 +458 +527 +459 +528 +460 +529 +461 +530 +462 +531 +463 +532 +464 +533 +465 +534 +466 +535 +467 +536 +468 +537 +469 +538 +470 +539 +471 +540 +472 +541 +473 +542 +474 +543 +475 +544 +476 +545 +477 +546 +478 +547 +479 +548 +480 +549 +481 +550 +482 +551 +483 +552 +484 +553 +485 +554 +486 +555 +487 +556 +488 +557 +489 +558 +559 +491 +560 +492 +561 +493 +562 +494 +563 +495 +564 +496 +565 +497 +566 +498 +567 +499 +568 +500 +569 +501 +570 +502 +571 +503 +572 +504 +573 +505 +574 +506 +575 +507 +576 +508 +577 +509 +578 +510 +579 +511 +580 +512 +581 +513 +582 +514 +583 +515 +584 +516 +585 +517 +586 +518 +587 +519 +588 +520 +589 +521 +590 +522 +591 +523 +592 +524 +593 +525 +594 +526 +595 +527 +596 +528 +597 +529 +598 +530 +599 +531 +600 +532 +601 +533 +602 +534 +603 +535 +604 +536 +605 +537 +606 +538 +607 +539 +608 +540 +609 +541 +610 +542 +611 +543 +612 +544 +613 +545 +614 +546 +615 +547 +616 +548 +617 +549 +618 +550 +619 +551 +620 +552 +621 +553 +622 +554 +623 +555 +624 +556 +625 +557 +626 +558 +627 +559 +628 +629 +561 +630 +562 +631 +563 +632 +564 +633 +565 +634 +566 +635 +567 +636 +568 +637 +569 +638 +570 +639 +571 +640 +572 +641 +573 +642 +574 +643 +575 +644 +576 +645 +577 +646 +578 +647 +579 +648 +580 +649 +581 +650 +582 +651 +583 +652 +584 +653 +585 +654 +586 +655 +587 +656 +588 +657 +589 +658 +590 +659 +591 +660 +592 +661 +593 +662 +594 +663 +595 +664 +596 +665 +597 +666 +598 +667 +599 +668 +600 +669 +601 +670 +602 +671 +603 +672 +604 +673 +605 +674 +606 +675 +607 +676 +608 +677 +609 +678 +610 +679 +611 +680 +612 +681 +613 +682 +614 +683 +615 +684 +616 +685 +617 +686 +618 +687 +619 +688 +620 +689 +621 +690 +622 +691 +623 +692 +624 +693 +625 +694 +626 +695 +627 +696 +628 +697 +629 +698 +699 +631 +700 +632 +701 +633 +702 +634 +703 +635 +704 +636 +705 +637 +706 +638 +707 +639 +708 +640 +709 +641 +710 +642 +711 +643 +712 +644 +713 +645 +714 +646 +715 +647 +716 +648 +717 +649 +718 +650 +719 +651 +720 +652 +721 +653 +722 +654 +723 +655 +724 +656 +725 +657 +726 +658 +727 +659 +728 +660 +729 +661 +730 +662 +731 +663 +732 +664 +733 +665 +734 +666 +735 +667 +736 +668 +737 +669 +738 +670 +739 +671 +740 +672 +741 +673 +742 +674 +743 +675 +744 +676 +745 +677 +746 +678 +747 +679 +748 +680 +749 +681 +750 +682 +751 +683 +752 +684 +753 +685 +754 +686 +755 +687 +756 +688 +757 +689 +758 +690 +759 +691 +760 +692 +761 +693 +762 +694 +763 +695 +764 +696 +765 +697 +766 +698 +767 +699 +768 +769 +701 +770 +702 +771 +703 +772 +704 +773 +705 +774 +706 +775 +707 +776 +708 +777 +709 +778 +710 +779 +711 +780 +712 +781 +713 +782 +714 +783 +715 +784 +716 +785 +717 +786 +718 +787 +719 +788 +720 +789 +721 +790 +722 +791 +723 +792 +724 +793 +725 +794 +726 +795 +727 +796 +728 +797 +729 +798 +730 +799 +731 +800 +732 +801 +733 +802 +734 +803 +735 +804 +736 +805 +737 +806 +738 +807 +739 +808 +740 +809 +741 +810 +742 +811 +743 +812 +744 +813 +745 +814 +746 +815 +747 +816 +748 +817 +749 +818 +750 +819 +751 +820 +752 +821 +753 +822 +754 +823 +755 +824 +756 +825 +757 +826 +758 +827 +759 +828 +760 +829 +761 +830 +762 +831 +763 +832 +764 +833 +765 +834 +766 +835 +767 +836 +768 +837 +769 +838 +839 +771 +840 +772 +841 +773 +842 +774 +843 +775 +844 +776 +845 +777 +846 +778 +847 +779 +848 +780 +849 +781 +850 +782 +851 +783 +852 +784 +853 +785 +854 +786 +855 +787 +856 +788 +857 +789 +858 +790 +859 +791 +860 +792 +861 +793 +862 +794 +863 +795 +864 +796 +865 +797 +866 +798 +867 +799 +868 +800 +869 +801 +870 +802 +871 +803 +872 +804 +873 +805 +874 +806 +875 +807 +876 +808 +877 +809 +878 +810 +879 +811 +880 +812 +881 +813 +882 +814 +883 +815 +884 +816 +885 +817 +886 +818 +887 +819 +888 +820 +889 +821 +890 +822 +891 +823 +892 +824 +893 +825 +894 +826 +895 +827 +896 +828 +897 +829 +898 +830 +899 +831 +900 +832 +901 +833 +902 +834 +903 +835 +904 +836 +905 +837 +906 +838 +907 +839 +908 +909 +841 +910 +842 +911 +843 +912 +844 +913 +845 +914 +846 +915 +847 +916 +848 +917 +849 +918 +850 +919 +851 +920 +852 +921 +853 +922 +854 +923 +855 +924 +856 +925 +857 +926 +858 +927 +859 +928 +860 +929 +861 +930 +862 +931 +863 +932 +864 +933 +865 +934 +866 +935 +867 +936 +868 +937 +869 +938 +870 +939 +871 +940 +872 +941 +873 +942 +874 +943 +875 +944 +876 +945 +877 +946 +878 +947 +879 +948 +880 +949 +881 +950 +882 +951 +883 +952 +884 +953 +885 +954 +886 +955 +887 +956 +888 +957 +889 +958 +890 +959 +891 +960 +892 +961 +893 +962 +894 +963 +895 +964 +896 +965 +897 +966 +898 +967 +899 +968 +900 +969 +901 +970 +902 +971 +903 +972 +904 +973 +905 +974 +906 +975 +907 +976 +908 +977 +909 +978 +979 +911 +980 +912 +981 +913 +982 +914 +983 +915 +984 +916 +985 +917 +986 +918 +987 +919 +988 +920 +989 +921 +990 +922 +991 +923 +992 +924 +993 +925 +994 +926 +995 +927 +996 +928 +997 +929 +998 +930 +999 +931 +1000 +932 +1001 +933 +1002 +934 +1003 +935 +1004 +936 +1005 +937 +1006 +938 +1007 +939 +1008 +940 +1009 +941 +1010 +942 +1011 +943 +1012 +944 +1013 +945 +1014 +946 +1015 +947 +1016 +948 +1017 +949 +1018 +950 +1019 +951 +1020 +952 +1021 +953 +1022 +954 +1023 +955 +1024 +956 +1025 +957 +1026 +958 +1027 +959 +1028 +960 +1029 +961 +1030 +962 +1031 +963 +1032 +964 +1033 +965 +1034 +966 +1035 +967 +1036 +968 +1037 +969 +1038 +970 +1039 +971 +1040 +972 +1041 +973 +1042 +974 +1043 +975 +1044 +976 +1045 +977 +1046 +978 +1047 +979 +1048 +1049 +981 +1050 +982 +1051 +983 +1052 +984 +1053 +985 +1054 +986 +1055 +987 +1056 +988 +1057 +989 +1058 +990 +1059 +991 +1060 +992 +1061 +993 +1062 +994 +1063 +995 +1064 +996 +1065 +997 +1066 +998 +1067 +999 +1068 +1000 +1069 +1001 +1070 +1002 +1071 +1003 +1072 +1004 +1073 +1005 +1074 +1006 +1075 +1007 +1076 +1008 +1077 +1009 +1078 +1010 +1079 +1011 +1080 +1012 +1081 +1013 +1082 +1014 +1083 +1015 +1084 +1016 +1085 +1017 +1086 +1018 +1087 +1019 +1088 +1020 +1089 +1021 +1090 +1022 +1091 +1023 +1092 +1024 +1093 +1025 +1094 +1026 +1095 +1027 +1096 +1028 +1097 +1029 +1098 +1030 +1099 +1031 +1100 +1032 +1101 +1033 +1102 +1034 +1103 +1035 +1104 +1036 +1105 +1037 +1106 +1038 +1107 +1039 +1108 +1040 +1109 +1041 +1110 +1042 +1111 +1043 +1112 +1044 +1113 +1045 +1114 +1046 +1115 +1047 +1116 +1048 +1117 +1049 +1118 +1119 +1051 +1120 +1052 +1121 +1053 +1122 +1054 +1123 +1055 +1124 +1056 +1125 +1057 +1126 +1058 +1127 +1059 +1128 +1060 +1129 +1061 +1130 +1062 +1131 +1063 +1132 +1064 +1133 +1065 +1134 +1066 +1135 +1067 +1136 +1068 +1137 +1069 +1138 +1070 +1139 +1071 +1140 +1072 +1141 +1073 +1142 +1074 +1143 +1075 +1144 +1076 +1145 +1077 +1146 +1078 +1147 +1079 +1148 +1080 +1149 +1081 +1150 +1082 +1151 +1083 +1152 +1084 +1153 +1085 +1154 +1086 +1155 +1087 +1156 +1088 +1157 +1089 +1158 +1090 +1159 +1091 +1160 +1092 +1161 +1093 +1162 +1094 +1163 +1095 +1164 +1096 +1165 +1097 +1166 +1098 +1167 +1099 +1168 +1100 +1169 +1101 +1170 +1102 +1171 +1103 +1172 +1104 +1173 +1105 +1174 +1106 +1175 +1107 +1176 +1108 +1177 +1109 +1178 +1110 +1179 +1111 +1180 +1112 +1181 +1113 +1182 +1114 +1183 +1115 +1184 +1116 +1185 +1117 +1186 +1118 +1187 +1119 +1188 +1189 +1121 +1190 +1122 +1191 +1123 +1192 +1124 +1193 +1125 +1194 +1126 +1195 +1127 +1196 +1128 +1197 +1129 +1198 +1130 +1199 +1131 +1200 +1132 +1201 +1133 +1202 +1134 +1203 +1135 +1204 +1136 +1205 +1137 +1206 +1138 +1207 +1139 +1208 +1140 +1209 +1141 +1210 +1142 +1211 +1143 +1212 +1144 +1213 +1145 +1214 +1146 +1215 +1147 +1216 +1148 +1217 +1149 +1218 +1150 +1219 +1151 +1220 +1152 +1221 +1153 +1222 +1154 +1223 +1155 +1224 +1156 +1225 +1157 +1226 +1158 +1227 +1159 +1228 +1160 +1229 +1161 +1230 +1162 +1231 +1163 +1232 +1164 +1233 +1165 +1234 +1166 +1235 +1167 +1236 +1168 +1237 +1169 +1238 +1170 +1239 +1171 +1240 +1172 +1241 +1173 +1242 +1174 +1243 +1175 +1244 +1176 +1245 +1177 +1246 +1178 +1247 +1179 +1248 +1180 +1249 +1181 +1250 +1182 +1251 +1183 +1252 +1184 +1253 +1185 +1254 +1186 +1255 +1187 +1256 +1188 +1257 +1189 +1258 +1259 +1191 +1260 +1192 +1261 +1193 +1262 +1194 +1263 +1195 +1264 +1196 +1265 +1197 +1266 +1198 +1267 +1199 +1268 +1200 +1269 +1201 +1270 +1202 +1271 +1203 +1272 +1204 +1273 +1205 +1274 +1206 +1275 +1207 +1276 +1208 +1277 +1209 +1278 +1210 +1279 +1211 +1280 +1212 +1281 +1213 +1282 +1214 +1283 +1215 +1284 +1216 +1285 +1217 +1286 +1218 +1287 +1219 +1288 +1220 +1289 +1221 +1290 +1222 +1291 +1223 +1292 +1224 +1293 +1225 +1294 +1226 +1295 +1227 +1296 +1228 +1297 +1229 +1298 +1230 +1299 +1231 +1300 +1232 +1301 +1233 +1302 +1234 +1303 +1235 +1304 +1236 +1305 +1237 +1306 +1238 +1307 +1239 +1308 +1240 +1309 +1241 +1310 +1242 +1311 +1243 +1312 +1244 +1313 +1245 +1314 +1246 +1315 +1247 +1316 +1248 +1317 +1249 +1318 +1250 +1319 +1251 +1320 +1252 +1321 +1253 +1322 +1254 +1323 +1255 +1324 +1256 +1325 +1257 +1326 +1258 +1327 +1259 +1328 +1329 +1261 +1330 +1262 +1331 +1263 +1332 +1264 +1333 +1265 +1334 +1266 +1335 +1267 +1336 +1268 +1337 +1269 +1338 +1270 +1339 +1271 +1340 +1272 +1341 +1273 +1342 +1274 +1343 +1275 +1344 +1276 +1345 +1277 +1346 +1278 +1347 +1279 +1348 +1280 +1349 +1281 +1350 +1282 +1351 +1283 +1352 +1284 +1353 +1285 +1354 +1286 +1355 +1287 +1356 +1288 +1357 +1289 +1358 +1290 +1359 +1291 +1360 +1292 +1361 +1293 +1362 +1294 +1363 +1295 +1364 +1296 +1365 +1297 +1366 +1298 +1367 +1299 +1368 +1300 +1369 +1301 +1370 +1302 +1371 +1303 +1372 +1304 +1373 +1305 +1374 +1306 +1375 +1307 +1376 +1308 +1377 +1309 +1378 +1310 +1379 +1311 +1380 +1312 +1381 +1313 +1382 +1314 +1383 +1315 +1384 +1316 +1385 +1317 +1386 +1318 +1387 +1319 +1388 +1320 +1389 +1321 +1390 +1322 +1391 +1323 +1392 +1324 +1393 +1325 +1394 +1326 +1395 +1327 +1396 +1328 +1397 +1329 +1398 +1399 +1331 +1400 +1332 +1401 +1333 +1402 +1334 +1403 +1335 +1404 +1336 +1405 +1337 +1406 +1338 +1407 +1339 +1408 +1340 +1409 +1341 +1410 +1342 +1411 +1343 +1412 +1344 +1413 +1345 +1414 +1346 +1415 +1347 +1416 +1348 +1417 +1349 +1418 +1350 +1419 +1351 +1420 +1352 +1421 +1353 +1422 +1354 +1423 +1355 +1424 +1356 +1425 +1357 +1426 +1358 +1427 +1359 +1428 +1360 +1429 +1361 +1430 +1362 +1431 +1363 +1432 +1364 +1433 +1365 +1434 +1366 +1435 +1367 +1436 +1368 +1437 +1369 +1438 +1370 +1439 +1371 +1440 +1372 +1441 +1373 +1442 +1374 +1443 +1375 +1444 +1376 +1445 +1377 +1446 +1378 +1447 +1379 +1448 +1380 +1449 +1381 +1450 +1382 +1451 +1383 +1452 +1384 +1453 +1385 +1454 +1386 +1455 +1387 +1456 +1388 +1457 +1389 +1458 +1390 +1459 +1391 +1460 +1392 +1461 +1393 +1462 +1394 +1463 +1395 +1464 +1396 +1465 +1397 +1466 +1398 +1467 +1399 +1468 +1469 +1401 +1470 +1402 +1471 +1403 +1472 +1404 +1473 +1405 +1474 +1406 +1475 +1407 +1476 +1408 +1477 +1409 +1478 +1410 +1479 +1411 +1480 +1412 +1481 +1413 +1482 +1414 +1483 +1415 +1484 +1416 +1485 +1417 +1486 +1418 +1487 +1419 +1488 +1420 +1489 +1421 +1490 +1422 +1491 +1423 +1492 +1424 +1493 +1425 +1494 +1426 +1495 +1427 +1496 +1428 +1497 +1429 +1498 +1430 +1499 +1431 +1500 +1432 +1501 +1433 +1502 +1434 +1503 +1435 +1504 +1436 +1505 +1437 +1506 +1438 +1507 +1439 +1508 +1440 +1509 +1441 +1510 +1442 +1511 +1443 +1512 +1444 +1513 +1445 +1514 +1446 +1515 +1447 +1516 +1448 +1517 +1449 +1518 +1450 +1519 +1451 +1520 +1452 +1521 +1453 +1522 +1454 +1523 +1455 +1524 +1456 +1525 +1457 +1526 +1458 +1527 +1459 +1528 +1460 +1529 +1461 +1530 +1462 +1531 +1463 +1532 +1464 +1533 +1465 +1534 +1466 +1535 +1467 +1536 +1468 +1537 +1469 +1538 +1539 +1471 +1540 +1472 +1541 +1473 +1542 +1474 +1543 +1475 +1544 +1476 +1545 +1477 +1546 +1478 +1547 +1479 +1548 +1480 +1549 +1481 +1550 +1482 +1551 +1483 +1552 +1484 +1553 +1485 +1554 +1486 +1555 +1487 +1556 +1488 +1557 +1489 +1558 +1490 +1559 +1491 +1560 +1492 +1561 +1493 +1562 +1494 +1563 +1495 +1564 +1496 +1565 +1497 +1566 +1498 +1567 +1499 +1568 +1500 +1569 +1501 +1570 +1502 +1571 +1503 +1572 +1504 +1573 +1505 +1574 +1506 +1575 +1507 +1576 +1508 +1577 +1509 +1578 +1510 +1579 +1511 +1580 +1512 +1581 +1513 +1582 +1514 +1583 +1515 +1584 +1516 +1585 +1517 +1586 +1518 +1587 +1519 +1588 +1520 +1589 +1521 +1590 +1522 +1591 +1523 +1592 +1524 +1593 +1525 +1594 +1526 +1595 +1527 +1596 +1528 +1597 +1529 +1598 +1530 +1599 +1531 +1600 +1532 +1601 +1533 +1602 +1534 +1603 +1535 +1604 +1536 +1605 +1537 +1606 +1538 +1607 +1539 +1608 +1609 +1541 +1610 +1542 +1611 +1543 +1612 +1544 +1613 +1545 +1614 +1546 +1615 +1547 +1616 +1548 +1617 +1549 +1618 +1550 +1619 +1551 +1620 +1552 +1621 +1553 +1622 +1554 +1623 +1555 +1624 +1556 +1625 +1557 +1626 +1558 +1627 +1559 +1628 +1560 +1629 +1561 +1630 +1562 +1631 +1563 +1632 +1564 +1633 +1565 +1634 +1566 +1635 +1567 +1636 +1568 +1637 +1569 +1638 +1570 +1639 +1571 +1640 +1572 +1641 +1573 +1642 +1574 +1643 +1575 +1644 +1576 +1645 +1577 +1646 +1578 +1647 +1579 +1648 +1580 +1649 +1581 +1650 +1582 +1651 +1583 +1652 +1584 +1653 +1585 +1654 +1586 +1655 +1587 +1656 +1588 +1657 +1589 +1658 +1590 +1659 +1591 +1660 +1592 +1661 +1593 +1662 +1594 +1663 +1595 +1664 +1596 +1665 +1597 +1666 +1598 +1667 +1599 +1668 +1600 +1669 +1601 +1670 +1602 +1671 +1603 +1672 +1604 +1673 +1605 +1674 +1606 +1675 +1607 +1676 +1608 +1677 +1609 +1678 +1679 +1611 +1680 +1612 +1681 +1613 +1682 +1614 +1683 +1615 +1684 +1616 +1685 +1617 +1686 +1618 +1687 +1619 +1688 +1620 +1689 +1621 +1690 +1622 +1691 +1623 +1692 +1624 +1693 +1625 +1694 +1626 +1695 +1627 +1696 +1628 +1697 +1629 +1698 +1630 +1699 +1631 +1700 +1632 +1701 +1633 +1702 +1634 +1703 +1635 +1704 +1636 +1705 +1637 +1706 +1638 +1707 +1639 +1708 +1640 +1709 +1641 +1710 +1642 +1711 +1643 +1712 +1644 +1713 +1645 +1714 +1646 +1715 +1647 +1716 +1648 +1717 +1649 +1718 +1650 +1719 +1651 +1720 +1652 +1721 +1653 +1722 +1654 +1723 +1655 +1724 +1656 +1725 +1657 +1726 +1658 +1727 +1659 +1728 +1660 +1729 +1661 +1730 +1662 +1731 +1663 +1732 +1664 +1733 +1665 +1734 +1666 +1735 +1667 +1736 +1668 +1737 +1669 +1738 +1670 +1739 +1671 +1740 +1672 +1741 +1673 +1742 +1674 +1743 +1675 +1744 +1676 +1745 +1677 +1746 +1678 +1747 +1679 +1748 +1749 +1681 +1750 +1682 +1751 +1683 +1752 +1684 +1753 +1685 +1754 +1686 +1755 +1687 +1756 +1688 +1757 +1689 +1758 +1690 +1759 +1691 +1760 +1692 +1761 +1693 +1762 +1694 +1763 +1695 +1764 +1696 +1765 +1697 +1766 +1698 +1767 +1699 +1768 +1700 +1769 +1701 +1770 +1702 +1771 +1703 +1772 +1704 +1773 +1705 +1774 +1706 +1775 +1707 +1776 +1708 +1777 +1709 +1778 +1710 +1779 +1711 +1780 +1712 +1781 +1713 +1782 +1714 +1783 +1715 +1784 +1716 +1785 +1717 +1786 +1718 +1787 +1719 +1788 +1720 +1789 +1721 +1790 +1722 +1791 +1723 +1792 +1724 +1793 +1725 +1794 +1726 +1795 +1727 +1796 +1728 +1797 +1729 +1798 +1730 +1799 +1731 +1800 +1732 +1801 +1733 +1802 +1734 +1803 +1735 +1804 +1736 +1805 +1737 +1806 +1738 +1807 +1739 +1808 +1740 +1809 +1741 +1810 +1742 +1811 +1743 +1812 +1744 +1813 +1745 +1814 +1746 +1815 +1747 +1816 +1748 +1817 +1749 +1818 +1819 +1751 +1820 +1752 +1821 +1753 +1822 +1754 +1823 +1755 +1824 +1756 +1825 +1757 +1826 +1758 +1827 +1759 +1828 +1760 +1829 +1761 +1830 +1762 +1831 +1763 +1832 +1764 +1833 +1765 +1834 +1766 +1835 +1767 +1836 +1768 +1837 +1769 +1838 +1770 +1839 +1771 +1840 +1772 +1841 +1773 +1842 +1774 +1843 +1775 +1844 +1776 +1845 +1777 +1846 +1778 +1847 +1779 +1848 +1780 +1849 +1781 +1850 +1782 +1851 +1783 +1852 +1784 +1853 +1785 +1854 +1786 +1855 +1787 +1856 +1788 +1857 +1789 +1858 +1790 +1859 +1791 +1860 +1792 +1861 +1793 +1862 +1794 +1863 +1795 +1864 +1796 +1865 +1797 +1866 +1798 +1867 +1799 +1868 +1800 +1869 +1801 +1870 +1802 +1871 +1803 +1872 +1804 +1873 +1805 +1874 +1806 +1875 +1807 +1876 +1808 +1877 +1809 +1878 +1810 +1879 +1811 +1880 +1812 +1881 +1813 +1882 +1814 +1883 +1815 +1884 +1816 +1885 +1817 +1886 +1818 +1887 +1819 +1888 +1889 +1821 +1890 +1822 +1891 +1823 +1892 +1824 +1893 +1825 +1894 +1826 +1895 +1827 +1896 +1828 +1897 +1829 +1898 +1830 +1899 +1831 +1900 +1832 +1901 +1833 +1902 +1834 +1903 +1835 +1904 +1836 +1905 +1837 +1906 +1838 +1907 +1839 +1908 +1840 +1909 +1841 +1910 +1842 +1911 +1843 +1912 +1844 +1913 +1845 +1914 +1846 +1915 +1847 +1916 +1848 +1917 +1849 +1918 +1850 +1919 +1851 +1920 +1852 +1921 +1853 +1922 +1854 +1923 +1855 +1924 +1856 +1925 +1857 +1926 +1858 +1927 +1859 +1928 +1860 +1929 +1861 +1930 +1862 +1931 +1863 +1932 +1864 +1933 +1865 +1934 +1866 +1935 +1867 +1936 +1868 +1937 +1869 +1938 +1870 +1939 +1871 +1940 +1872 +1941 +1873 +1942 +1874 +1943 +1875 +1944 +1876 +1945 +1877 +1946 +1878 +1947 +1879 +1948 +1880 +1949 +1881 +1950 +1882 +1951 +1883 +1952 +1884 +1953 +1885 +1954 +1886 +1955 +1887 +1956 +1888 +1957 +1889 +1958 +1959 +1891 +1960 +1892 +1961 +1893 +1962 +1894 +1963 +1895 +1964 +1896 +1965 +1897 +1966 +1898 +1967 +1899 +1968 +1900 +1969 +1901 +1970 +1902 +1971 +1903 +1972 +1904 +1973 +1905 +1974 +1906 +1975 +1907 +1976 +1908 +1977 +1909 +1978 +1910 +1979 +1911 +1980 +1912 +1981 +1913 +1982 +1914 +1983 +1915 +1984 +1916 +1985 +1917 +1986 +1918 +1987 +1919 +1988 +1920 +1989 +1921 +1990 +1922 +1991 +1923 +1992 +1924 +1993 +1925 +1994 +1926 +1995 +1927 +1996 +1928 +1997 +1929 +1998 +1930 +1999 +1931 +2000 +1932 +2001 +1933 +2002 +1934 +2003 +1935 +2004 +1936 +2005 +1937 +2006 +1938 +2007 +1939 +2008 +1940 +2009 +1941 +2010 +1942 +2011 +1943 +2012 +1944 +2013 +1945 +2014 +1946 +2015 +1947 +2016 +1948 +2017 +1949 +2018 +1950 +2019 +1951 +2020 +1952 +2021 +1953 +2022 +1954 +2023 +1955 +2024 +1956 +2025 +1957 +2026 +1958 +2027 +1959 +2028 +2029 +1961 +2030 +1962 +2031 +1963 +2032 +1964 +2033 +1965 +2034 +1966 +2035 +1967 +2036 +1968 +2037 +1969 +2038 +1970 +2039 +1971 +2040 +1972 +2041 +1973 +2042 +1974 +2043 +1975 +2044 +1976 +2045 +1977 +2046 +1978 +2047 +1979 +2048 +1980 +2049 +1981 +2050 +1982 +2051 +1983 +2052 +1984 +2053 +1985 +2054 +1986 +2055 +1987 +2056 +1988 +2057 +1989 +2058 +1990 +2059 +1991 +2060 +1992 +2061 +1993 +2062 +1994 +2063 +1995 +2064 +1996 +2065 +1997 +2066 +1998 +2067 +1999 +2068 +2000 +2069 +2001 +2070 +2002 +2071 +2003 +2072 +2004 +2073 +2005 +2074 +2006 +2075 +2007 +2076 +2008 +2077 +2009 +2078 +2010 +2079 +2011 +2080 +2012 +2081 +2013 +2082 +2014 +2083 +2015 +2084 +2016 +2085 +2017 +2086 +2018 +2087 +2019 +2088 +2020 +2089 +2021 +2090 +2022 +2091 +2023 +2092 +2024 +2093 +2025 +2094 +2026 +2095 +2027 +2096 +2028 +2097 +2029 +2098 +2099 +2031 +2100 +2032 +2101 +2033 +2102 +2034 +2103 +2035 +2104 +2036 +2105 +2037 +2106 +2038 +2107 +2039 +2108 +2040 +2109 +2041 +2110 +2042 +2111 +2043 +2112 +2044 +2113 +2045 +2114 +2046 +2115 +2047 +2116 +2048 +2117 +2049 +2118 +2050 +2119 +2051 +2120 +2052 +2121 +2053 +2122 +2054 +2123 +2055 +2124 +2056 +2125 +2057 +2126 +2058 +2127 +2059 +2128 +2060 +2129 +2061 +2130 +2062 +2131 +2063 +2132 +2064 +2133 +2065 +2134 +2066 +2135 +2067 +2136 +2068 +2137 +2069 +2138 +2070 +2139 +2071 +2140 +2072 +2141 +2073 +2142 +2074 +2143 +2075 +2144 +2076 +2145 +2077 +2146 +2078 +2147 +2079 +2148 +2080 +2149 +2081 +2150 +2082 +2151 +2083 +2152 +2084 +2153 +2085 +2154 +2086 +2155 +2087 +2156 +2088 +2157 +2089 +2158 +2090 +2159 +2091 +2160 +2092 +2161 +2093 +2162 +2094 +2163 +2095 +2164 +2096 +2165 +2097 +2166 +2098 +2167 +2099 +2168 +2169 +2101 +2170 +2102 +2171 +2103 +2172 +2104 +2173 +2105 +2174 +2106 +2175 +2107 +2176 +2108 +2177 +2109 +2178 +2110 +2179 +2111 +2180 +2112 +2181 +2113 +2182 +2114 +2183 +2115 +2184 +2116 +2185 +2117 +2186 +2118 +2187 +2119 +2188 +2120 +2189 +2121 +2190 +2122 +2191 +2123 +2192 +2124 +2193 +2125 +2194 +2126 +2195 +2127 +2196 +2128 +2197 +2129 +2198 +2130 +2199 +2131 +2200 +2132 +2201 +2133 +2202 +2134 +2203 +2135 +2204 +2136 +2205 +2137 +2206 +2138 +2207 +2139 +2208 +2140 +2209 +2141 +2210 +2142 +2211 +2143 +2212 +2144 +2213 +2145 +2214 +2146 +2215 +2147 +2216 +2148 +2217 +2149 +2218 +2150 +2219 +2151 +2220 +2152 +2221 +2153 +2222 +2154 +2223 +2155 +2224 +2156 +2225 +2157 +2226 +2158 +2227 +2159 +2228 +2160 +2229 +2161 +2230 +2162 +2231 +2163 +2232 +2164 +2233 +2165 +2234 +2166 +2235 +2167 +2236 +2168 +2237 +2169 +2238 +2239 +2171 +2240 +2172 +2241 +2173 +2242 +2174 +2243 +2175 +2244 +2176 +2245 +2177 +2246 +2178 +2247 +2179 +2248 +2180 +2249 +2181 +2250 +2182 +2251 +2183 +2252 +2184 +2253 +2185 +2254 +2186 +2255 +2187 +2256 +2188 +2257 +2189 +2258 +2190 +2259 +2191 +2260 +2192 +2261 +2193 +2262 +2194 +2263 +2195 +2264 +2196 +2265 +2197 +2266 +2198 +2267 +2199 +2268 +2200 +2269 +2201 +2270 +2202 +2271 +2203 +2272 +2204 +2273 +2205 +2274 +2206 +2275 +2207 +2276 +2208 +2277 +2209 +2278 +2210 +2279 +2211 +2280 +2212 +2281 +2213 +2282 +2214 +2283 +2215 +2284 +2216 +2285 +2217 +2286 +2218 +2287 +2219 +2288 +2220 +2289 +2221 +2290 +2222 +2291 +2223 +2292 +2224 +2293 +2225 +2294 +2226 +2295 +2227 +2296 +2228 +2297 +2229 +2298 +2230 +2299 +2231 +2300 +2232 +2301 +2233 +2302 +2234 +2303 +2235 +2304 +2236 +2305 +2237 +2306 +2238 +2307 +2239 +2308 +2309 +2241 +2310 +2242 +2311 +2243 +2312 +2244 +2313 +2245 +2314 +2246 +2315 +2247 +2316 +2248 +2317 +2249 +2318 +2250 +2319 +2251 +2320 +2252 +2321 +2253 +2322 +2254 +2323 +2255 +2324 +2256 +2325 +2257 +2326 +2258 +2327 +2259 +2328 +2260 +2329 +2261 +2330 +2262 +2331 +2263 +2332 +2264 +2333 +2265 +2334 +2266 +2335 +2267 +2336 +2268 +2337 +2269 +2338 +2270 +2339 +2271 +2340 +2272 +2341 +2273 +2342 +2274 +2343 +2275 +2344 +2276 +2345 +2277 +2346 +2278 +2347 +2279 +2348 +2280 +2349 +2281 +2350 +2282 +2351 +2283 +2352 +2284 +2353 +2285 +2354 +2286 +2355 +2287 +2356 +2288 +2357 +2289 +2358 +2290 +2359 +2291 +2360 +2292 +2361 +2293 +2362 +2294 +2363 +2295 +2364 +2296 +2365 +2297 +2366 +2298 +2367 +2299 +2368 +2300 +2369 +2301 +2370 +2302 +2371 +2303 +2372 +2304 +2373 +2305 +2374 +2306 +2375 +2307 +2376 +2308 +2377 +2309 +2378 +2379 +2311 +2380 +2312 +2381 +2313 +2382 +2314 +2383 +2315 +2384 +2316 +2385 +2317 +2386 +2318 +2387 +2319 +2388 +2320 +2389 +2321 +2390 +2322 +2391 +2323 +2392 +2324 +2393 +2325 +2394 +2326 +2395 +2327 +2396 +2328 +2397 +2329 +2398 +2330 +2399 +2331 +2400 +2332 +2401 +2333 +2402 +2334 +2403 +2335 +2404 +2336 +2405 +2337 +2406 +2338 +2407 +2339 +2408 +2340 +2409 +2341 +2410 +2342 +2411 +2343 +2412 +2344 +2413 +2345 +2414 +2346 +2415 +2347 +2416 +2348 +2417 +2349 +2418 +2350 +2419 +2351 +2420 +2352 +2421 +2353 +2422 +2354 +2423 +2355 +2424 +2356 +2425 +2357 +2426 +2358 +2427 +2359 +2428 +2360 +2429 +2361 +2430 +2362 +2431 +2363 +2432 +2364 +2433 +2365 +2434 +2366 +2435 +2367 +2436 +2368 +2437 +2369 +2438 +2370 +2439 +2371 +2440 +2372 +2441 +2373 +2442 +2374 +2443 +2375 +2444 +2376 +2445 +2377 +2446 +2378 +2447 +2379 +2448 +2449 +2381 +2450 +2382 +2451 +2383 +2452 +2384 +2453 +2385 +2454 +2386 +2455 +2387 +2456 +2388 +2457 +2389 +2458 +2390 +2459 +2391 +2460 +2392 +2461 +2393 +2462 +2394 +2463 +2395 +2464 +2396 +2465 +2397 +2466 +2398 +2467 +2399 +2468 +2400 +2469 +2401 +2470 +2402 +2471 +2403 +2472 +2404 +2473 +2405 +2474 +2406 +2475 +2407 +2476 +2408 +2477 +2409 +2478 +2410 +2479 +2411 +2480 +2412 +2481 +2413 +2482 +2414 +2483 +2415 +2484 +2416 +2485 +2417 +2486 +2418 +2487 +2419 +2488 +2420 +2489 +2421 +2490 +2422 +2491 +2423 +2492 +2424 +2493 +2425 +2494 +2426 +2495 +2427 +2496 +2428 +2497 +2429 +2498 +2430 +2499 +2431 +2500 +2432 +2501 +2433 +2502 +2434 +2503 +2435 +2504 +2436 +2505 +2437 +2506 +2438 +2507 +2439 +2508 +2440 +2509 +2441 +2510 +2442 +2511 +2443 +2512 +2444 +2513 +2445 +2514 +2446 +2515 +2447 +2516 +2448 +2517 +2449 +2518 +2519 +2451 +2520 +2452 +2521 +2453 +2522 +2454 +2523 +2455 +2524 +2456 +2525 +2457 +2526 +2458 +2527 +2459 +2528 +2460 +2529 +2461 +2530 +2462 +2531 +2463 +2532 +2464 +2533 +2465 +2534 +2466 +2535 +2467 +2536 +2468 +2537 +2469 +2538 +2470 +2539 +2471 +2540 +2472 +2541 +2473 +2542 +2474 +2543 +2475 +2544 +2476 +2545 +2477 +2546 +2478 +2547 +2479 +2548 +2480 +2549 +2481 +2550 +2482 +2551 +2483 +2552 +2484 +2553 +2485 +2554 +2486 +2555 +2487 +2556 +2488 +2557 +2489 +2558 +2490 +2559 +2491 +2560 +2492 +2561 +2493 +2562 +2494 +2563 +2495 +2564 +2496 +2565 +2497 +2566 +2498 +2567 +2499 +2568 +2500 +2569 +2501 +2570 +2502 +2571 +2503 +2572 +2504 +2573 +2505 +2574 +2506 +2575 +2507 +2576 +2508 +2577 +2509 +2578 +2510 +2579 +2511 +2580 +2512 +2581 +2513 +2582 +2514 +2583 +2515 +2584 +2516 +2585 +2517 +2586 +2518 +2587 +2519 +2588 +2589 +2521 +2590 +2522 +2591 +2523 +2592 +2524 +2593 +2525 +2594 +2526 +2595 +2527 +2596 +2528 +2597 +2529 +2598 +2530 +2599 +2531 +2600 +2532 +2601 +2533 +2602 +2534 +2603 +2535 +2604 +2536 +2605 +2537 +2606 +2538 +2607 +2539 +2608 +2540 +2609 +2541 +2610 +2542 +2611 +2543 +2612 +2544 +2613 +2545 +2614 +2546 +2615 +2547 +2616 +2548 +2617 +2549 +2618 +2550 +2619 +2551 +2620 +2552 +2621 +2553 +2622 +2554 +2623 +2555 +2624 +2556 +2625 +2557 +2626 +2558 +2627 +2559 +2628 +2560 +2629 +2561 +2630 +2562 +2631 +2563 +2632 +2564 +2633 +2565 +2634 +2566 +2635 +2567 +2636 +2568 +2637 +2569 +2638 +2570 +2639 +2571 +2640 +2572 +2641 +2573 +2642 +2574 +2643 +2575 +2644 +2576 +2645 +2577 +2646 +2578 +2647 +2579 +2648 +2580 +2649 +2581 +2650 +2582 +2651 +2583 +2652 +2584 +2653 +2585 +2654 +2586 +2655 +2587 +2656 +2588 +2657 +2589 +2658 +2659 +2591 +2660 +2592 +2661 +2593 +2662 +2594 +2663 +2595 +2664 +2596 +2665 +2597 +2666 +2598 +2667 +2599 +2668 +2600 +2669 +2601 +2670 +2602 +2671 +2603 +2672 +2604 +2673 +2605 +2674 +2606 +2675 +2607 +2676 +2608 +2677 +2609 +2678 +2610 +2679 +2611 +2680 +2612 +2681 +2613 +2682 +2614 +2683 +2615 +2684 +2616 +2685 +2617 +2686 +2618 +2687 +2619 +2688 +2620 +2689 +2621 +2690 +2622 +2691 +2623 +2692 +2624 +2693 +2625 +2694 +2626 +2695 +2627 +2696 +2628 +2697 +2629 +2698 +2630 +2699 +2631 +2700 +2632 +2701 +2633 +2702 +2634 +2703 +2635 +2704 +2636 +2705 +2637 +2706 +2638 +2707 +2639 +2708 +2640 +2709 +2641 +2710 +2642 +2711 +2643 +2712 +2644 +2713 +2645 +2714 +2646 +2715 +2647 +2716 +2648 +2717 +2649 +2718 +2650 +2719 +2651 +2720 +2652 +2721 +2653 +2722 +2654 +2723 +2655 +2724 +2656 +2725 +2657 +2726 +2658 +2727 +2659 +2728 +2729 +2661 +2730 +2662 +2731 +2663 +2732 +2664 +2733 +2665 +2734 +2666 +2735 +2667 +2736 +2668 +2737 +2669 +2738 +2670 +2739 +2671 +2740 +2672 +2741 +2673 +2742 +2674 +2743 +2675 +2744 +2676 +2745 +2677 +2746 +2678 +2747 +2679 +2748 +2680 +2749 +2681 +2750 +2682 +2751 +2683 +2752 +2684 +2753 +2685 +2754 +2686 +2755 +2687 +2756 +2688 +2757 +2689 +2758 +2690 +2759 +2691 +2760 +2692 +2761 +2693 +2762 +2694 +2763 +2695 +2764 +2696 +2765 +2697 +2766 +2698 +2767 +2699 +2768 +2700 +2769 +2701 +2770 +2702 +2771 +2703 +2772 +2704 +2773 +2705 +2774 +2706 +2775 +2707 +2776 +2708 +2777 +2709 +2778 +2710 +2779 +2711 +2780 +2712 +2781 +2713 +2782 +2714 +2783 +2715 +2784 +2716 +2785 +2717 +2786 +2718 +2787 +2719 +2788 +2720 +2789 +2721 +2790 +2722 +2791 +2723 +2792 +2724 +2793 +2725 +2794 +2726 +2795 +2727 +2796 +2728 +2797 +2729 +2798 +2799 +2731 +2800 +2732 +2801 +2733 +2802 +2734 +2803 +2735 +2804 +2736 +2805 +2737 +2806 +2738 +2807 +2739 +2808 +2740 +2809 +2741 +2810 +2742 +2811 +2743 +2812 +2744 +2813 +2745 +2814 +2746 +2815 +2747 +2816 +2748 +2817 +2749 +2818 +2750 +2819 +2751 +2820 +2752 +2821 +2753 +2822 +2754 +2823 +2755 +2824 +2756 +2825 +2757 +2826 +2758 +2827 +2759 +2828 +2760 +2829 +2761 +2830 +2762 +2831 +2763 +2832 +2764 +2833 +2765 +2834 +2766 +2835 +2767 +2836 +2768 +2837 +2769 +2838 +2770 +2839 +2771 +2840 +2772 +2841 +2773 +2842 +2774 +2843 +2775 +2844 +2776 +2845 +2777 +2846 +2778 +2847 +2779 +2848 +2780 +2849 +2781 +2850 +2782 +2851 +2783 +2852 +2784 +2853 +2785 +2854 +2786 +2855 +2787 +2856 +2788 +2857 +2789 +2858 +2790 +2859 +2791 +2860 +2792 +2861 +2793 +2862 +2794 +2863 +2795 +2864 +2796 +2865 +2797 +2866 +2798 +2867 +2799 +2868 +2869 +2801 +2870 +2802 +2871 +2803 +2872 +2804 +2873 +2805 +2874 +2806 +2875 +2807 +2876 +2808 +2877 +2809 +2878 +2810 +2879 +2811 +2880 +2812 +2881 +2813 +2882 +2814 +2883 +2815 +2884 +2816 +2885 +2817 +2886 +2818 +2887 +2819 +2888 +2820 +2889 +2821 +2890 +2822 +2891 +2823 +2892 +2824 +2893 +2825 +2894 +2826 +2895 +2827 +2896 +2828 +2897 +2829 +2898 +2830 +2899 +2831 +2900 +2832 +2901 +2833 +2902 +2834 +2903 +2835 +2904 +2836 +2905 +2837 +2906 +2838 +2907 +2839 +2908 +2840 +2909 +2841 +2910 +2842 +2911 +2843 +2912 +2844 +2913 +2845 +2914 +2846 +2915 +2847 +2916 +2848 +2917 +2849 +2918 +2850 +2919 +2851 +2920 +2852 +2921 +2853 +2922 +2854 +2923 +2855 +2924 +2856 +2925 +2857 +2926 +2858 +2927 +2859 +2928 +2860 +2929 +2861 +2930 +2862 +2931 +2863 +2932 +2864 +2933 +2865 +2934 +2866 +2935 +2867 +2936 +2868 +2937 +2869 +2938 +2939 +2871 +2940 +2872 +2941 +2873 +2942 +2874 +2943 +2875 +2944 +2876 +2945 +2877 +2946 +2878 +2947 +2879 +2948 +2880 +2949 +2881 +2950 +2882 +2951 +2883 +2952 +2884 +2953 +2885 +2954 +2886 +2955 +2887 +2956 +2888 +2957 +2889 +2958 +2890 +2959 +2891 +2960 +2892 +2961 +2893 +2962 +2894 +2963 +2895 +2964 +2896 +2965 +2897 +2966 +2898 +2967 +2899 +2968 +2900 +2969 +2901 +2970 +2902 +2971 +2903 +2972 +2904 +2973 +2905 +2974 +2906 +2975 +2907 +2976 +2908 +2977 +2909 +2978 +2910 +2979 +2911 +2980 +2912 +2981 +2913 +2982 +2914 +2983 +2915 +2984 +2916 +2985 +2917 +2986 +2918 +2987 +2919 +2988 +2920 +2989 +2921 +2990 +2922 +2991 +2923 +2992 +2924 +2993 +2925 +2994 +2926 +2995 +2927 +2996 +2928 +2997 +2929 +2998 +2930 +2999 +2931 +3000 +2932 +3001 +2933 +3002 +2934 +3003 +2935 +3004 +2936 +3005 +2937 +3006 +2938 +3007 +2939 +3008 +3009 +2941 +3010 +2942 +3011 +2943 +3012 +2944 +3013 +2945 +3014 +2946 +3015 +2947 +3016 +2948 +3017 +2949 +3018 +2950 +3019 +2951 +3020 +2952 +3021 +2953 +3022 +2954 +3023 +2955 +3024 +2956 +3025 +2957 +3026 +2958 +3027 +2959 +3028 +2960 +3029 +2961 +3030 +2962 +3031 +2963 +3032 +2964 +3033 +2965 +3034 +2966 +3035 +2967 +3036 +2968 +3037 +2969 +3038 +2970 +3039 +2971 +3040 +2972 +3041 +2973 +3042 +2974 +3043 +2975 +3044 +2976 +3045 +2977 +3046 +2978 +3047 +2979 +3048 +2980 +3049 +2981 +3050 +2982 +3051 +2983 +3052 +2984 +3053 +2985 +3054 +2986 +3055 +2987 +3056 +2988 +3057 +2989 +3058 +2990 +3059 +2991 +3060 +2992 +3061 +2993 +3062 +2994 +3063 +2995 +3064 +2996 +3065 +2997 +3066 +2998 +3067 +2999 +3068 +3000 +3069 +3001 +3070 +3002 +3071 +3003 +3072 +3004 +3073 +3005 +3074 +3006 +3075 +3007 +3076 +3008 +3077 +3009 +3078 +3079 +3011 +3080 +3012 +3081 +3013 +3082 +3014 +3083 +3015 +3084 +3016 +3085 +3017 +3086 +3018 +3087 +3019 +3088 +3020 +3089 +3021 +3090 +3022 +3091 +3023 +3092 +3024 +3093 +3025 +3094 +3026 +3095 +3027 +3096 +3028 +3097 +3029 +3098 +3030 +3099 +3031 +3100 +3032 +3101 +3033 +3102 +3034 +3103 +3035 +3104 +3036 +3105 +3037 +3106 +3038 +3107 +3039 +3108 +3040 +3109 +3041 +3110 +3042 +3111 +3043 +3112 +3044 +3113 +3045 +3114 +3046 +3115 +3047 +3116 +3048 +3117 +3049 +3118 +3050 +3119 +3051 +3120 +3052 +3121 +3053 +3122 +3054 +3123 +3055 +3124 +3056 +3125 +3057 +3126 +3058 +3127 +3059 +3128 +3060 +3129 +3061 +3130 +3062 +3131 +3063 +3132 +3064 +3133 +3065 +3134 +3066 +3135 +3067 +3136 +3068 +3137 +3069 +3138 +3070 +3139 +3071 +3140 +3072 +3141 +3073 +3142 +3074 +3143 +3075 +3144 +3076 +3145 +3077 +3146 +3078 +3147 +3079 +3148 +3149 +3081 +3150 +3082 +3151 +3083 +3152 +3084 +3153 +3085 +3154 +3086 +3155 +3087 +3156 +3088 +3157 +3089 +3158 +3090 +3159 +3091 +3160 +3092 +3161 +3093 +3162 +3094 +3163 +3095 +3164 +3096 +3165 +3097 +3166 +3098 +3167 +3099 +3168 +3100 +3169 +3101 +3170 +3102 +3171 +3103 +3172 +3104 +3173 +3105 +3174 +3106 +3175 +3107 +3176 +3108 +3177 +3109 +3178 +3110 +3179 +3111 +3180 +3112 +3181 +3113 +3182 +3114 +3183 +3115 +3184 +3116 +3185 +3117 +3186 +3118 +3187 +3119 +3188 +3120 +3189 +3121 +3190 +3122 +3191 +3123 +3192 +3124 +3193 +3125 +3194 +3126 +3195 +3127 +3196 +3128 +3197 +3129 +3198 +3130 +3199 +3131 +3200 +3132 +3201 +3133 +3202 +3134 +3203 +3135 +3204 +3136 +3205 +3137 +3206 +3138 +3207 +3139 +3208 +3140 +3209 +3141 +3210 +3142 +3211 +3143 +3212 +3144 +3213 +3145 +3214 +3146 +3215 +3147 +3216 +3148 +3217 +3149 +3218 +3219 +3151 +3220 +3152 +3221 +3153 +3222 +3154 +3223 +3155 +3224 +3156 +3225 +3157 +3226 +3158 +3227 +3159 +3228 +3160 +3229 +3161 +3230 +3162 +3231 +3163 +3232 +3164 +3233 +3165 +3234 +3166 +3235 +3167 +3236 +3168 +3237 +3169 +3238 +3170 +3239 +3171 +3240 +3172 +3241 +3173 +3242 +3174 +3243 +3175 +3244 +3176 +3245 +3177 +3246 +3178 +3247 +3179 +3248 +3180 +3249 +3181 +3250 +3182 +3251 +3183 +3252 +3184 +3253 +3185 +3254 +3186 +3255 +3187 +3256 +3188 +3257 +3189 +3258 +3190 +3259 +3191 +3260 +3192 +3261 +3193 +3262 +3194 +3263 +3195 +3264 +3196 +3265 +3197 +3266 +3198 +3267 +3199 +3268 +3200 +3269 +3201 +3270 +3202 +3271 +3203 +3272 +3204 +3273 +3205 +3274 +3206 +3275 +3207 +3276 +3208 +3277 +3209 +3278 +3210 +3279 +3211 +3280 +3212 +3281 +3213 +3282 +3214 +3283 +3215 +3284 +3216 +3285 +3217 +3286 +3218 +3287 +3219 +3288 +3289 +3221 +3290 +3222 +3291 +3223 +3292 +3224 +3293 +3225 +3294 +3226 +3295 +3227 +3296 +3228 +3297 +3229 +3298 +3230 +3299 +3231 +3300 +3232 +3301 +3233 +3302 +3234 +3303 +3235 +3304 +3236 +3305 +3237 +3306 +3238 +3307 +3239 +3308 +3240 +3309 +3241 +3310 +3242 +3311 +3243 +3312 +3244 +3313 +3245 +3314 +3246 +3315 +3247 +3316 +3248 +3317 +3249 +3318 +3250 +3319 +3251 +3320 +3252 +3321 +3253 +3322 +3254 +3323 +3255 +3324 +3256 +3325 +3257 +3326 +3258 +3327 +3259 +3328 +3260 +3329 +3261 +3330 +3262 +3331 +3263 +3332 +3264 +3333 +3265 +3334 +3266 +3335 +3267 +3336 +3268 +3337 +3269 +3338 +3270 +3339 +3271 +3340 +3272 +3341 +3273 +3342 +3274 +3343 +3275 +3344 +3276 +3345 +3277 +3346 +3278 +3347 +3279 +3348 +3280 +3349 +3281 +3350 +3282 +3351 +3283 +3352 +3284 +3353 +3285 +3354 +3286 +3355 +3287 +3356 +3288 +3357 +3289 +3358 +3359 +3291 +3360 +3292 +3361 +3293 +3362 +3294 +3363 +3295 +3364 +3296 +3365 +3297 +3366 +3298 +3367 +3299 +3368 +3300 +3369 +3301 +3370 +3302 +3371 +3303 +3372 +3304 +3373 +3305 +3374 +3306 +3375 +3307 +3376 +3308 +3377 +3309 +3378 +3310 +3379 +3311 +3380 +3312 +3381 +3313 +3382 +3314 +3383 +3315 +3384 +3316 +3385 +3317 +3386 +3318 +3387 +3319 +3388 +3320 +3389 +3321 +3390 +3322 +3391 +3323 +3392 +3324 +3393 +3325 +3394 +3326 +3395 +3327 +3396 +3328 +3397 +3329 +3398 +3330 +3399 +3331 +3400 +3332 +3401 +3333 +3402 +3334 +3403 +3335 +3404 +3336 +3405 +3337 +3406 +3338 +3407 +3339 +3408 +3340 +3409 +3341 +3410 +3342 +3411 +3343 +3412 +3344 +3413 +3345 +3414 +3346 +3415 +3347 +3416 +3348 +3417 +3349 +3418 +3350 +3419 +3351 +3420 +3352 +3421 +3353 +3422 +3354 +3423 +3355 +3424 +3356 +3425 +3357 +3426 +3358 +3427 +3359 +3428 +3429 +3361 +3430 +3362 +3431 +3363 +3432 +3364 +3433 +3365 +3434 +3366 +3435 +3367 +3436 +3368 +3437 +3369 +3438 +3370 +3439 +3371 +3440 +3372 +3441 +3373 +3442 +3374 +3443 +3375 +3444 +3376 +3445 +3377 +3446 +3378 +3447 +3379 +3448 +3380 +3449 +3381 +3450 +3382 +3451 +3383 +3452 +3384 +3453 +3385 +3454 +3386 +3455 +3387 +3456 +3388 +3457 +3389 +3458 +3390 +3459 +3391 +3460 +3392 +3461 +3393 +3462 +3394 +3463 +3395 +3464 +3396 +3465 +3397 +3466 +3398 +3467 +3399 +3468 +3400 +3469 +3401 +3470 +3402 +3471 +3403 +3472 +3404 +3473 +3405 +3474 +3406 +3475 +3407 +3476 +3408 +3477 +3409 +3478 +3410 +3479 +3411 +3480 +3412 +3481 +3413 +3482 +3414 +3483 +3415 +3484 +3416 +3485 +3417 +3486 +3418 +3487 +3419 +3488 +3420 +3489 +3421 +3490 +3422 +3491 +3423 +3492 +3424 +3493 +3425 +3494 +3426 +3495 +3427 +3496 +3428 +3497 +3429 +3498 +3499 +3431 +3432 +3433 +3434 +3435 +3436 +3437 +3438 +3439 +3440 +3441 +3442 +3443 +3444 +3445 +3446 +3447 +3448 +3449 +3450 +3451 +3452 +3453 +3454 +3455 +3456 +3457 +3458 +3459 +3460 +3461 +3462 +3463 +3464 +3465 +3466 +3467 +3468 +3469 +3470 +3471 +3472 +3473 +3474 +3475 +3476 +3477 +3478 +3479 +3480 +3481 +3482 +3483 +3484 +3485 +3486 +3487 +3488 +3489 +3490 +3491 +3492 +3493 +3494 +3495 +3496 +3497 +3498 +3499 +) + + +// ************************************************************************* // diff --git a/PeriodicHill/constant/polyMesh/owner b/PeriodicHill/constant/polyMesh/owner new file mode 100644 index 00000000..212e33f8 --- /dev/null +++ b/PeriodicHill/constant/polyMesh/owner @@ -0,0 +1,14145 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class labelList; + note "nPoints:7242 nCells:3500 nFaces:14120 nInternalFaces:6880"; + location "constant/polyMesh"; + object owner; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +14120 +( +0 +0 +1 +1 +2 +2 +3 +3 +4 +4 +5 +5 +6 +6 +7 +7 +8 +8 +9 +9 +10 +10 +11 +11 +12 +12 +13 +13 +14 +14 +15 +15 +16 +16 +17 +17 +18 +18 +19 +19 +20 +20 +21 +21 +22 +22 +23 +23 +24 +24 +25 +25 +26 +26 +27 +27 +28 +28 +29 +29 +30 +30 +31 +31 +32 +32 +33 +33 +34 +34 +35 +35 +36 +36 +37 +37 +38 +38 +39 +39 +40 +40 +41 +41 +42 +42 +43 +43 +44 +44 +45 +45 +46 +46 +47 +47 +48 +48 +49 +49 +50 +50 +51 +51 +52 +52 +53 +53 +54 +54 +55 +55 +56 +56 +57 +57 +58 +58 +59 +59 +60 +60 +61 +61 +62 +62 +63 +63 +64 +64 +65 +65 +66 +66 +67 +67 +68 +68 +69 +70 +70 +71 +71 +72 +72 +73 +73 +74 +74 +75 +75 +76 +76 +77 +77 +78 +78 +79 +79 +80 +80 +81 +81 +82 +82 +83 +83 +84 +84 +85 +85 +86 +86 +87 +87 +88 +88 +89 +89 +90 +90 +91 +91 +92 +92 +93 +93 +94 +94 +95 +95 +96 +96 +97 +97 +98 +98 +99 +99 +100 +100 +101 +101 +102 +102 +103 +103 +104 +104 +105 +105 +106 +106 +107 +107 +108 +108 +109 +109 +110 +110 +111 +111 +112 +112 +113 +113 +114 +114 +115 +115 +116 +116 +117 +117 +118 +118 +119 +119 +120 +120 +121 +121 +122 +122 +123 +123 +124 +124 +125 +125 +126 +126 +127 +127 +128 +128 +129 +129 +130 +130 +131 +131 +132 +132 +133 +133 +134 +134 +135 +135 +136 +136 +137 +137 +138 +138 +139 +140 +140 +141 +141 +142 +142 +143 +143 +144 +144 +145 +145 +146 +146 +147 +147 +148 +148 +149 +149 +150 +150 +151 +151 +152 +152 +153 +153 +154 +154 +155 +155 +156 +156 +157 +157 +158 +158 +159 +159 +160 +160 +161 +161 +162 +162 +163 +163 +164 +164 +165 +165 +166 +166 +167 +167 +168 +168 +169 +169 +170 +170 +171 +171 +172 +172 +173 +173 +174 +174 +175 +175 +176 +176 +177 +177 +178 +178 +179 +179 +180 +180 +181 +181 +182 +182 +183 +183 +184 +184 +185 +185 +186 +186 +187 +187 +188 +188 +189 +189 +190 +190 +191 +191 +192 +192 +193 +193 +194 +194 +195 +195 +196 +196 +197 +197 +198 +198 +199 +199 +200 +200 +201 +201 +202 +202 +203 +203 +204 +204 +205 +205 +206 +206 +207 +207 +208 +208 +209 +210 +210 +211 +211 +212 +212 +213 +213 +214 +214 +215 +215 +216 +216 +217 +217 +218 +218 +219 +219 +220 +220 +221 +221 +222 +222 +223 +223 +224 +224 +225 +225 +226 +226 +227 +227 +228 +228 +229 +229 +230 +230 +231 +231 +232 +232 +233 +233 +234 +234 +235 +235 +236 +236 +237 +237 +238 +238 +239 +239 +240 +240 +241 +241 +242 +242 +243 +243 +244 +244 +245 +245 +246 +246 +247 +247 +248 +248 +249 +249 +250 +250 +251 +251 +252 +252 +253 +253 +254 +254 +255 +255 +256 +256 +257 +257 +258 +258 +259 +259 +260 +260 +261 +261 +262 +262 +263 +263 +264 +264 +265 +265 +266 +266 +267 +267 +268 +268 +269 +269 +270 +270 +271 +271 +272 +272 +273 +273 +274 +274 +275 +275 +276 +276 +277 +277 +278 +278 +279 +280 +280 +281 +281 +282 +282 +283 +283 +284 +284 +285 +285 +286 +286 +287 +287 +288 +288 +289 +289 +290 +290 +291 +291 +292 +292 +293 +293 +294 +294 +295 +295 +296 +296 +297 +297 +298 +298 +299 +299 +300 +300 +301 +301 +302 +302 +303 +303 +304 +304 +305 +305 +306 +306 +307 +307 +308 +308 +309 +309 +310 +310 +311 +311 +312 +312 +313 +313 +314 +314 +315 +315 +316 +316 +317 +317 +318 +318 +319 +319 +320 +320 +321 +321 +322 +322 +323 +323 +324 +324 +325 +325 +326 +326 +327 +327 +328 +328 +329 +329 +330 +330 +331 +331 +332 +332 +333 +333 +334 +334 +335 +335 +336 +336 +337 +337 +338 +338 +339 +339 +340 +340 +341 +341 +342 +342 +343 +343 +344 +344 +345 +345 +346 +346 +347 +347 +348 +348 +349 +350 +350 +351 +351 +352 +352 +353 +353 +354 +354 +355 +355 +356 +356 +357 +357 +358 +358 +359 +359 +360 +360 +361 +361 +362 +362 +363 +363 +364 +364 +365 +365 +366 +366 +367 +367 +368 +368 +369 +369 +370 +370 +371 +371 +372 +372 +373 +373 +374 +374 +375 +375 +376 +376 +377 +377 +378 +378 +379 +379 +380 +380 +381 +381 +382 +382 +383 +383 +384 +384 +385 +385 +386 +386 +387 +387 +388 +388 +389 +389 +390 +390 +391 +391 +392 +392 +393 +393 +394 +394 +395 +395 +396 +396 +397 +397 +398 +398 +399 +399 +400 +400 +401 +401 +402 +402 +403 +403 +404 +404 +405 +405 +406 +406 +407 +407 +408 +408 +409 +409 +410 +410 +411 +411 +412 +412 +413 +413 +414 +414 +415 +415 +416 +416 +417 +417 +418 +418 +419 +420 +420 +421 +421 +422 +422 +423 +423 +424 +424 +425 +425 +426 +426 +427 +427 +428 +428 +429 +429 +430 +430 +431 +431 +432 +432 +433 +433 +434 +434 +435 +435 +436 +436 +437 +437 +438 +438 +439 +439 +440 +440 +441 +441 +442 +442 +443 +443 +444 +444 +445 +445 +446 +446 +447 +447 +448 +448 +449 +449 +450 +450 +451 +451 +452 +452 +453 +453 +454 +454 +455 +455 +456 +456 +457 +457 +458 +458 +459 +459 +460 +460 +461 +461 +462 +462 +463 +463 +464 +464 +465 +465 +466 +466 +467 +467 +468 +468 +469 +469 +470 +470 +471 +471 +472 +472 +473 +473 +474 +474 +475 +475 +476 +476 +477 +477 +478 +478 +479 +479 +480 +480 +481 +481 +482 +482 +483 +483 +484 +484 +485 +485 +486 +486 +487 +487 +488 +488 +489 +490 +490 +491 +491 +492 +492 +493 +493 +494 +494 +495 +495 +496 +496 +497 +497 +498 +498 +499 +499 +500 +500 +501 +501 +502 +502 +503 +503 +504 +504 +505 +505 +506 +506 +507 +507 +508 +508 +509 +509 +510 +510 +511 +511 +512 +512 +513 +513 +514 +514 +515 +515 +516 +516 +517 +517 +518 +518 +519 +519 +520 +520 +521 +521 +522 +522 +523 +523 +524 +524 +525 +525 +526 +526 +527 +527 +528 +528 +529 +529 +530 +530 +531 +531 +532 +532 +533 +533 +534 +534 +535 +535 +536 +536 +537 +537 +538 +538 +539 +539 +540 +540 +541 +541 +542 +542 +543 +543 +544 +544 +545 +545 +546 +546 +547 +547 +548 +548 +549 +549 +550 +550 +551 +551 +552 +552 +553 +553 +554 +554 +555 +555 +556 +556 +557 +557 +558 +558 +559 +560 +560 +561 +561 +562 +562 +563 +563 +564 +564 +565 +565 +566 +566 +567 +567 +568 +568 +569 +569 +570 +570 +571 +571 +572 +572 +573 +573 +574 +574 +575 +575 +576 +576 +577 +577 +578 +578 +579 +579 +580 +580 +581 +581 +582 +582 +583 +583 +584 +584 +585 +585 +586 +586 +587 +587 +588 +588 +589 +589 +590 +590 +591 +591 +592 +592 +593 +593 +594 +594 +595 +595 +596 +596 +597 +597 +598 +598 +599 +599 +600 +600 +601 +601 +602 +602 +603 +603 +604 +604 +605 +605 +606 +606 +607 +607 +608 +608 +609 +609 +610 +610 +611 +611 +612 +612 +613 +613 +614 +614 +615 +615 +616 +616 +617 +617 +618 +618 +619 +619 +620 +620 +621 +621 +622 +622 +623 +623 +624 +624 +625 +625 +626 +626 +627 +627 +628 +628 +629 +630 +630 +631 +631 +632 +632 +633 +633 +634 +634 +635 +635 +636 +636 +637 +637 +638 +638 +639 +639 +640 +640 +641 +641 +642 +642 +643 +643 +644 +644 +645 +645 +646 +646 +647 +647 +648 +648 +649 +649 +650 +650 +651 +651 +652 +652 +653 +653 +654 +654 +655 +655 +656 +656 +657 +657 +658 +658 +659 +659 +660 +660 +661 +661 +662 +662 +663 +663 +664 +664 +665 +665 +666 +666 +667 +667 +668 +668 +669 +669 +670 +670 +671 +671 +672 +672 +673 +673 +674 +674 +675 +675 +676 +676 +677 +677 +678 +678 +679 +679 +680 +680 +681 +681 +682 +682 +683 +683 +684 +684 +685 +685 +686 +686 +687 +687 +688 +688 +689 +689 +690 +690 +691 +691 +692 +692 +693 +693 +694 +694 +695 +695 +696 +696 +697 +697 +698 +698 +699 +700 +700 +701 +701 +702 +702 +703 +703 +704 +704 +705 +705 +706 +706 +707 +707 +708 +708 +709 +709 +710 +710 +711 +711 +712 +712 +713 +713 +714 +714 +715 +715 +716 +716 +717 +717 +718 +718 +719 +719 +720 +720 +721 +721 +722 +722 +723 +723 +724 +724 +725 +725 +726 +726 +727 +727 +728 +728 +729 +729 +730 +730 +731 +731 +732 +732 +733 +733 +734 +734 +735 +735 +736 +736 +737 +737 +738 +738 +739 +739 +740 +740 +741 +741 +742 +742 +743 +743 +744 +744 +745 +745 +746 +746 +747 +747 +748 +748 +749 +749 +750 +750 +751 +751 +752 +752 +753 +753 +754 +754 +755 +755 +756 +756 +757 +757 +758 +758 +759 +759 +760 +760 +761 +761 +762 +762 +763 +763 +764 +764 +765 +765 +766 +766 +767 +767 +768 +768 +769 +770 +770 +771 +771 +772 +772 +773 +773 +774 +774 +775 +775 +776 +776 +777 +777 +778 +778 +779 +779 +780 +780 +781 +781 +782 +782 +783 +783 +784 +784 +785 +785 +786 +786 +787 +787 +788 +788 +789 +789 +790 +790 +791 +791 +792 +792 +793 +793 +794 +794 +795 +795 +796 +796 +797 +797 +798 +798 +799 +799 +800 +800 +801 +801 +802 +802 +803 +803 +804 +804 +805 +805 +806 +806 +807 +807 +808 +808 +809 +809 +810 +810 +811 +811 +812 +812 +813 +813 +814 +814 +815 +815 +816 +816 +817 +817 +818 +818 +819 +819 +820 +820 +821 +821 +822 +822 +823 +823 +824 +824 +825 +825 +826 +826 +827 +827 +828 +828 +829 +829 +830 +830 +831 +831 +832 +832 +833 +833 +834 +834 +835 +835 +836 +836 +837 +837 +838 +838 +839 +840 +840 +841 +841 +842 +842 +843 +843 +844 +844 +845 +845 +846 +846 +847 +847 +848 +848 +849 +849 +850 +850 +851 +851 +852 +852 +853 +853 +854 +854 +855 +855 +856 +856 +857 +857 +858 +858 +859 +859 +860 +860 +861 +861 +862 +862 +863 +863 +864 +864 +865 +865 +866 +866 +867 +867 +868 +868 +869 +869 +870 +870 +871 +871 +872 +872 +873 +873 +874 +874 +875 +875 +876 +876 +877 +877 +878 +878 +879 +879 +880 +880 +881 +881 +882 +882 +883 +883 +884 +884 +885 +885 +886 +886 +887 +887 +888 +888 +889 +889 +890 +890 +891 +891 +892 +892 +893 +893 +894 +894 +895 +895 +896 +896 +897 +897 +898 +898 +899 +899 +900 +900 +901 +901 +902 +902 +903 +903 +904 +904 +905 +905 +906 +906 +907 +907 +908 +908 +909 +910 +910 +911 +911 +912 +912 +913 +913 +914 +914 +915 +915 +916 +916 +917 +917 +918 +918 +919 +919 +920 +920 +921 +921 +922 +922 +923 +923 +924 +924 +925 +925 +926 +926 +927 +927 +928 +928 +929 +929 +930 +930 +931 +931 +932 +932 +933 +933 +934 +934 +935 +935 +936 +936 +937 +937 +938 +938 +939 +939 +940 +940 +941 +941 +942 +942 +943 +943 +944 +944 +945 +945 +946 +946 +947 +947 +948 +948 +949 +949 +950 +950 +951 +951 +952 +952 +953 +953 +954 +954 +955 +955 +956 +956 +957 +957 +958 +958 +959 +959 +960 +960 +961 +961 +962 +962 +963 +963 +964 +964 +965 +965 +966 +966 +967 +967 +968 +968 +969 +969 +970 +970 +971 +971 +972 +972 +973 +973 +974 +974 +975 +975 +976 +976 +977 +977 +978 +978 +979 +980 +980 +981 +981 +982 +982 +983 +983 +984 +984 +985 +985 +986 +986 +987 +987 +988 +988 +989 +989 +990 +990 +991 +991 +992 +992 +993 +993 +994 +994 +995 +995 +996 +996 +997 +997 +998 +998 +999 +999 +1000 +1000 +1001 +1001 +1002 +1002 +1003 +1003 +1004 +1004 +1005 +1005 +1006 +1006 +1007 +1007 +1008 +1008 +1009 +1009 +1010 +1010 +1011 +1011 +1012 +1012 +1013 +1013 +1014 +1014 +1015 +1015 +1016 +1016 +1017 +1017 +1018 +1018 +1019 +1019 +1020 +1020 +1021 +1021 +1022 +1022 +1023 +1023 +1024 +1024 +1025 +1025 +1026 +1026 +1027 +1027 +1028 +1028 +1029 +1029 +1030 +1030 +1031 +1031 +1032 +1032 +1033 +1033 +1034 +1034 +1035 +1035 +1036 +1036 +1037 +1037 +1038 +1038 +1039 +1039 +1040 +1040 +1041 +1041 +1042 +1042 +1043 +1043 +1044 +1044 +1045 +1045 +1046 +1046 +1047 +1047 +1048 +1048 +1049 +1050 +1050 +1051 +1051 +1052 +1052 +1053 +1053 +1054 +1054 +1055 +1055 +1056 +1056 +1057 +1057 +1058 +1058 +1059 +1059 +1060 +1060 +1061 +1061 +1062 +1062 +1063 +1063 +1064 +1064 +1065 +1065 +1066 +1066 +1067 +1067 +1068 +1068 +1069 +1069 +1070 +1070 +1071 +1071 +1072 +1072 +1073 +1073 +1074 +1074 +1075 +1075 +1076 +1076 +1077 +1077 +1078 +1078 +1079 +1079 +1080 +1080 +1081 +1081 +1082 +1082 +1083 +1083 +1084 +1084 +1085 +1085 +1086 +1086 +1087 +1087 +1088 +1088 +1089 +1089 +1090 +1090 +1091 +1091 +1092 +1092 +1093 +1093 +1094 +1094 +1095 +1095 +1096 +1096 +1097 +1097 +1098 +1098 +1099 +1099 +1100 +1100 +1101 +1101 +1102 +1102 +1103 +1103 +1104 +1104 +1105 +1105 +1106 +1106 +1107 +1107 +1108 +1108 +1109 +1109 +1110 +1110 +1111 +1111 +1112 +1112 +1113 +1113 +1114 +1114 +1115 +1115 +1116 +1116 +1117 +1117 +1118 +1118 +1119 +1120 +1120 +1121 +1121 +1122 +1122 +1123 +1123 +1124 +1124 +1125 +1125 +1126 +1126 +1127 +1127 +1128 +1128 +1129 +1129 +1130 +1130 +1131 +1131 +1132 +1132 +1133 +1133 +1134 +1134 +1135 +1135 +1136 +1136 +1137 +1137 +1138 +1138 +1139 +1139 +1140 +1140 +1141 +1141 +1142 +1142 +1143 +1143 +1144 +1144 +1145 +1145 +1146 +1146 +1147 +1147 +1148 +1148 +1149 +1149 +1150 +1150 +1151 +1151 +1152 +1152 +1153 +1153 +1154 +1154 +1155 +1155 +1156 +1156 +1157 +1157 +1158 +1158 +1159 +1159 +1160 +1160 +1161 +1161 +1162 +1162 +1163 +1163 +1164 +1164 +1165 +1165 +1166 +1166 +1167 +1167 +1168 +1168 +1169 +1169 +1170 +1170 +1171 +1171 +1172 +1172 +1173 +1173 +1174 +1174 +1175 +1175 +1176 +1176 +1177 +1177 +1178 +1178 +1179 +1179 +1180 +1180 +1181 +1181 +1182 +1182 +1183 +1183 +1184 +1184 +1185 +1185 +1186 +1186 +1187 +1187 +1188 +1188 +1189 +1190 +1190 +1191 +1191 +1192 +1192 +1193 +1193 +1194 +1194 +1195 +1195 +1196 +1196 +1197 +1197 +1198 +1198 +1199 +1199 +1200 +1200 +1201 +1201 +1202 +1202 +1203 +1203 +1204 +1204 +1205 +1205 +1206 +1206 +1207 +1207 +1208 +1208 +1209 +1209 +1210 +1210 +1211 +1211 +1212 +1212 +1213 +1213 +1214 +1214 +1215 +1215 +1216 +1216 +1217 +1217 +1218 +1218 +1219 +1219 +1220 +1220 +1221 +1221 +1222 +1222 +1223 +1223 +1224 +1224 +1225 +1225 +1226 +1226 +1227 +1227 +1228 +1228 +1229 +1229 +1230 +1230 +1231 +1231 +1232 +1232 +1233 +1233 +1234 +1234 +1235 +1235 +1236 +1236 +1237 +1237 +1238 +1238 +1239 +1239 +1240 +1240 +1241 +1241 +1242 +1242 +1243 +1243 +1244 +1244 +1245 +1245 +1246 +1246 +1247 +1247 +1248 +1248 +1249 +1249 +1250 +1250 +1251 +1251 +1252 +1252 +1253 +1253 +1254 +1254 +1255 +1255 +1256 +1256 +1257 +1257 +1258 +1258 +1259 +1260 +1260 +1261 +1261 +1262 +1262 +1263 +1263 +1264 +1264 +1265 +1265 +1266 +1266 +1267 +1267 +1268 +1268 +1269 +1269 +1270 +1270 +1271 +1271 +1272 +1272 +1273 +1273 +1274 +1274 +1275 +1275 +1276 +1276 +1277 +1277 +1278 +1278 +1279 +1279 +1280 +1280 +1281 +1281 +1282 +1282 +1283 +1283 +1284 +1284 +1285 +1285 +1286 +1286 +1287 +1287 +1288 +1288 +1289 +1289 +1290 +1290 +1291 +1291 +1292 +1292 +1293 +1293 +1294 +1294 +1295 +1295 +1296 +1296 +1297 +1297 +1298 +1298 +1299 +1299 +1300 +1300 +1301 +1301 +1302 +1302 +1303 +1303 +1304 +1304 +1305 +1305 +1306 +1306 +1307 +1307 +1308 +1308 +1309 +1309 +1310 +1310 +1311 +1311 +1312 +1312 +1313 +1313 +1314 +1314 +1315 +1315 +1316 +1316 +1317 +1317 +1318 +1318 +1319 +1319 +1320 +1320 +1321 +1321 +1322 +1322 +1323 +1323 +1324 +1324 +1325 +1325 +1326 +1326 +1327 +1327 +1328 +1328 +1329 +1330 +1330 +1331 +1331 +1332 +1332 +1333 +1333 +1334 +1334 +1335 +1335 +1336 +1336 +1337 +1337 +1338 +1338 +1339 +1339 +1340 +1340 +1341 +1341 +1342 +1342 +1343 +1343 +1344 +1344 +1345 +1345 +1346 +1346 +1347 +1347 +1348 +1348 +1349 +1349 +1350 +1350 +1351 +1351 +1352 +1352 +1353 +1353 +1354 +1354 +1355 +1355 +1356 +1356 +1357 +1357 +1358 +1358 +1359 +1359 +1360 +1360 +1361 +1361 +1362 +1362 +1363 +1363 +1364 +1364 +1365 +1365 +1366 +1366 +1367 +1367 +1368 +1368 +1369 +1369 +1370 +1370 +1371 +1371 +1372 +1372 +1373 +1373 +1374 +1374 +1375 +1375 +1376 +1376 +1377 +1377 +1378 +1378 +1379 +1379 +1380 +1380 +1381 +1381 +1382 +1382 +1383 +1383 +1384 +1384 +1385 +1385 +1386 +1386 +1387 +1387 +1388 +1388 +1389 +1389 +1390 +1390 +1391 +1391 +1392 +1392 +1393 +1393 +1394 +1394 +1395 +1395 +1396 +1396 +1397 +1397 +1398 +1398 +1399 +1400 +1400 +1401 +1401 +1402 +1402 +1403 +1403 +1404 +1404 +1405 +1405 +1406 +1406 +1407 +1407 +1408 +1408 +1409 +1409 +1410 +1410 +1411 +1411 +1412 +1412 +1413 +1413 +1414 +1414 +1415 +1415 +1416 +1416 +1417 +1417 +1418 +1418 +1419 +1419 +1420 +1420 +1421 +1421 +1422 +1422 +1423 +1423 +1424 +1424 +1425 +1425 +1426 +1426 +1427 +1427 +1428 +1428 +1429 +1429 +1430 +1430 +1431 +1431 +1432 +1432 +1433 +1433 +1434 +1434 +1435 +1435 +1436 +1436 +1437 +1437 +1438 +1438 +1439 +1439 +1440 +1440 +1441 +1441 +1442 +1442 +1443 +1443 +1444 +1444 +1445 +1445 +1446 +1446 +1447 +1447 +1448 +1448 +1449 +1449 +1450 +1450 +1451 +1451 +1452 +1452 +1453 +1453 +1454 +1454 +1455 +1455 +1456 +1456 +1457 +1457 +1458 +1458 +1459 +1459 +1460 +1460 +1461 +1461 +1462 +1462 +1463 +1463 +1464 +1464 +1465 +1465 +1466 +1466 +1467 +1467 +1468 +1468 +1469 +1470 +1470 +1471 +1471 +1472 +1472 +1473 +1473 +1474 +1474 +1475 +1475 +1476 +1476 +1477 +1477 +1478 +1478 +1479 +1479 +1480 +1480 +1481 +1481 +1482 +1482 +1483 +1483 +1484 +1484 +1485 +1485 +1486 +1486 +1487 +1487 +1488 +1488 +1489 +1489 +1490 +1490 +1491 +1491 +1492 +1492 +1493 +1493 +1494 +1494 +1495 +1495 +1496 +1496 +1497 +1497 +1498 +1498 +1499 +1499 +1500 +1500 +1501 +1501 +1502 +1502 +1503 +1503 +1504 +1504 +1505 +1505 +1506 +1506 +1507 +1507 +1508 +1508 +1509 +1509 +1510 +1510 +1511 +1511 +1512 +1512 +1513 +1513 +1514 +1514 +1515 +1515 +1516 +1516 +1517 +1517 +1518 +1518 +1519 +1519 +1520 +1520 +1521 +1521 +1522 +1522 +1523 +1523 +1524 +1524 +1525 +1525 +1526 +1526 +1527 +1527 +1528 +1528 +1529 +1529 +1530 +1530 +1531 +1531 +1532 +1532 +1533 +1533 +1534 +1534 +1535 +1535 +1536 +1536 +1537 +1537 +1538 +1538 +1539 +1540 +1540 +1541 +1541 +1542 +1542 +1543 +1543 +1544 +1544 +1545 +1545 +1546 +1546 +1547 +1547 +1548 +1548 +1549 +1549 +1550 +1550 +1551 +1551 +1552 +1552 +1553 +1553 +1554 +1554 +1555 +1555 +1556 +1556 +1557 +1557 +1558 +1558 +1559 +1559 +1560 +1560 +1561 +1561 +1562 +1562 +1563 +1563 +1564 +1564 +1565 +1565 +1566 +1566 +1567 +1567 +1568 +1568 +1569 +1569 +1570 +1570 +1571 +1571 +1572 +1572 +1573 +1573 +1574 +1574 +1575 +1575 +1576 +1576 +1577 +1577 +1578 +1578 +1579 +1579 +1580 +1580 +1581 +1581 +1582 +1582 +1583 +1583 +1584 +1584 +1585 +1585 +1586 +1586 +1587 +1587 +1588 +1588 +1589 +1589 +1590 +1590 +1591 +1591 +1592 +1592 +1593 +1593 +1594 +1594 +1595 +1595 +1596 +1596 +1597 +1597 +1598 +1598 +1599 +1599 +1600 +1600 +1601 +1601 +1602 +1602 +1603 +1603 +1604 +1604 +1605 +1605 +1606 +1606 +1607 +1607 +1608 +1608 +1609 +1610 +1610 +1611 +1611 +1612 +1612 +1613 +1613 +1614 +1614 +1615 +1615 +1616 +1616 +1617 +1617 +1618 +1618 +1619 +1619 +1620 +1620 +1621 +1621 +1622 +1622 +1623 +1623 +1624 +1624 +1625 +1625 +1626 +1626 +1627 +1627 +1628 +1628 +1629 +1629 +1630 +1630 +1631 +1631 +1632 +1632 +1633 +1633 +1634 +1634 +1635 +1635 +1636 +1636 +1637 +1637 +1638 +1638 +1639 +1639 +1640 +1640 +1641 +1641 +1642 +1642 +1643 +1643 +1644 +1644 +1645 +1645 +1646 +1646 +1647 +1647 +1648 +1648 +1649 +1649 +1650 +1650 +1651 +1651 +1652 +1652 +1653 +1653 +1654 +1654 +1655 +1655 +1656 +1656 +1657 +1657 +1658 +1658 +1659 +1659 +1660 +1660 +1661 +1661 +1662 +1662 +1663 +1663 +1664 +1664 +1665 +1665 +1666 +1666 +1667 +1667 +1668 +1668 +1669 +1669 +1670 +1670 +1671 +1671 +1672 +1672 +1673 +1673 +1674 +1674 +1675 +1675 +1676 +1676 +1677 +1677 +1678 +1678 +1679 +1680 +1680 +1681 +1681 +1682 +1682 +1683 +1683 +1684 +1684 +1685 +1685 +1686 +1686 +1687 +1687 +1688 +1688 +1689 +1689 +1690 +1690 +1691 +1691 +1692 +1692 +1693 +1693 +1694 +1694 +1695 +1695 +1696 +1696 +1697 +1697 +1698 +1698 +1699 +1699 +1700 +1700 +1701 +1701 +1702 +1702 +1703 +1703 +1704 +1704 +1705 +1705 +1706 +1706 +1707 +1707 +1708 +1708 +1709 +1709 +1710 +1710 +1711 +1711 +1712 +1712 +1713 +1713 +1714 +1714 +1715 +1715 +1716 +1716 +1717 +1717 +1718 +1718 +1719 +1719 +1720 +1720 +1721 +1721 +1722 +1722 +1723 +1723 +1724 +1724 +1725 +1725 +1726 +1726 +1727 +1727 +1728 +1728 +1729 +1729 +1730 +1730 +1731 +1731 +1732 +1732 +1733 +1733 +1734 +1734 +1735 +1735 +1736 +1736 +1737 +1737 +1738 +1738 +1739 +1739 +1740 +1740 +1741 +1741 +1742 +1742 +1743 +1743 +1744 +1744 +1745 +1745 +1746 +1746 +1747 +1747 +1748 +1748 +1749 +1750 +1750 +1751 +1751 +1752 +1752 +1753 +1753 +1754 +1754 +1755 +1755 +1756 +1756 +1757 +1757 +1758 +1758 +1759 +1759 +1760 +1760 +1761 +1761 +1762 +1762 +1763 +1763 +1764 +1764 +1765 +1765 +1766 +1766 +1767 +1767 +1768 +1768 +1769 +1769 +1770 +1770 +1771 +1771 +1772 +1772 +1773 +1773 +1774 +1774 +1775 +1775 +1776 +1776 +1777 +1777 +1778 +1778 +1779 +1779 +1780 +1780 +1781 +1781 +1782 +1782 +1783 +1783 +1784 +1784 +1785 +1785 +1786 +1786 +1787 +1787 +1788 +1788 +1789 +1789 +1790 +1790 +1791 +1791 +1792 +1792 +1793 +1793 +1794 +1794 +1795 +1795 +1796 +1796 +1797 +1797 +1798 +1798 +1799 +1799 +1800 +1800 +1801 +1801 +1802 +1802 +1803 +1803 +1804 +1804 +1805 +1805 +1806 +1806 +1807 +1807 +1808 +1808 +1809 +1809 +1810 +1810 +1811 +1811 +1812 +1812 +1813 +1813 +1814 +1814 +1815 +1815 +1816 +1816 +1817 +1817 +1818 +1818 +1819 +1820 +1820 +1821 +1821 +1822 +1822 +1823 +1823 +1824 +1824 +1825 +1825 +1826 +1826 +1827 +1827 +1828 +1828 +1829 +1829 +1830 +1830 +1831 +1831 +1832 +1832 +1833 +1833 +1834 +1834 +1835 +1835 +1836 +1836 +1837 +1837 +1838 +1838 +1839 +1839 +1840 +1840 +1841 +1841 +1842 +1842 +1843 +1843 +1844 +1844 +1845 +1845 +1846 +1846 +1847 +1847 +1848 +1848 +1849 +1849 +1850 +1850 +1851 +1851 +1852 +1852 +1853 +1853 +1854 +1854 +1855 +1855 +1856 +1856 +1857 +1857 +1858 +1858 +1859 +1859 +1860 +1860 +1861 +1861 +1862 +1862 +1863 +1863 +1864 +1864 +1865 +1865 +1866 +1866 +1867 +1867 +1868 +1868 +1869 +1869 +1870 +1870 +1871 +1871 +1872 +1872 +1873 +1873 +1874 +1874 +1875 +1875 +1876 +1876 +1877 +1877 +1878 +1878 +1879 +1879 +1880 +1880 +1881 +1881 +1882 +1882 +1883 +1883 +1884 +1884 +1885 +1885 +1886 +1886 +1887 +1887 +1888 +1888 +1889 +1890 +1890 +1891 +1891 +1892 +1892 +1893 +1893 +1894 +1894 +1895 +1895 +1896 +1896 +1897 +1897 +1898 +1898 +1899 +1899 +1900 +1900 +1901 +1901 +1902 +1902 +1903 +1903 +1904 +1904 +1905 +1905 +1906 +1906 +1907 +1907 +1908 +1908 +1909 +1909 +1910 +1910 +1911 +1911 +1912 +1912 +1913 +1913 +1914 +1914 +1915 +1915 +1916 +1916 +1917 +1917 +1918 +1918 +1919 +1919 +1920 +1920 +1921 +1921 +1922 +1922 +1923 +1923 +1924 +1924 +1925 +1925 +1926 +1926 +1927 +1927 +1928 +1928 +1929 +1929 +1930 +1930 +1931 +1931 +1932 +1932 +1933 +1933 +1934 +1934 +1935 +1935 +1936 +1936 +1937 +1937 +1938 +1938 +1939 +1939 +1940 +1940 +1941 +1941 +1942 +1942 +1943 +1943 +1944 +1944 +1945 +1945 +1946 +1946 +1947 +1947 +1948 +1948 +1949 +1949 +1950 +1950 +1951 +1951 +1952 +1952 +1953 +1953 +1954 +1954 +1955 +1955 +1956 +1956 +1957 +1957 +1958 +1958 +1959 +1960 +1960 +1961 +1961 +1962 +1962 +1963 +1963 +1964 +1964 +1965 +1965 +1966 +1966 +1967 +1967 +1968 +1968 +1969 +1969 +1970 +1970 +1971 +1971 +1972 +1972 +1973 +1973 +1974 +1974 +1975 +1975 +1976 +1976 +1977 +1977 +1978 +1978 +1979 +1979 +1980 +1980 +1981 +1981 +1982 +1982 +1983 +1983 +1984 +1984 +1985 +1985 +1986 +1986 +1987 +1987 +1988 +1988 +1989 +1989 +1990 +1990 +1991 +1991 +1992 +1992 +1993 +1993 +1994 +1994 +1995 +1995 +1996 +1996 +1997 +1997 +1998 +1998 +1999 +1999 +2000 +2000 +2001 +2001 +2002 +2002 +2003 +2003 +2004 +2004 +2005 +2005 +2006 +2006 +2007 +2007 +2008 +2008 +2009 +2009 +2010 +2010 +2011 +2011 +2012 +2012 +2013 +2013 +2014 +2014 +2015 +2015 +2016 +2016 +2017 +2017 +2018 +2018 +2019 +2019 +2020 +2020 +2021 +2021 +2022 +2022 +2023 +2023 +2024 +2024 +2025 +2025 +2026 +2026 +2027 +2027 +2028 +2028 +2029 +2030 +2030 +2031 +2031 +2032 +2032 +2033 +2033 +2034 +2034 +2035 +2035 +2036 +2036 +2037 +2037 +2038 +2038 +2039 +2039 +2040 +2040 +2041 +2041 +2042 +2042 +2043 +2043 +2044 +2044 +2045 +2045 +2046 +2046 +2047 +2047 +2048 +2048 +2049 +2049 +2050 +2050 +2051 +2051 +2052 +2052 +2053 +2053 +2054 +2054 +2055 +2055 +2056 +2056 +2057 +2057 +2058 +2058 +2059 +2059 +2060 +2060 +2061 +2061 +2062 +2062 +2063 +2063 +2064 +2064 +2065 +2065 +2066 +2066 +2067 +2067 +2068 +2068 +2069 +2069 +2070 +2070 +2071 +2071 +2072 +2072 +2073 +2073 +2074 +2074 +2075 +2075 +2076 +2076 +2077 +2077 +2078 +2078 +2079 +2079 +2080 +2080 +2081 +2081 +2082 +2082 +2083 +2083 +2084 +2084 +2085 +2085 +2086 +2086 +2087 +2087 +2088 +2088 +2089 +2089 +2090 +2090 +2091 +2091 +2092 +2092 +2093 +2093 +2094 +2094 +2095 +2095 +2096 +2096 +2097 +2097 +2098 +2098 +2099 +2100 +2100 +2101 +2101 +2102 +2102 +2103 +2103 +2104 +2104 +2105 +2105 +2106 +2106 +2107 +2107 +2108 +2108 +2109 +2109 +2110 +2110 +2111 +2111 +2112 +2112 +2113 +2113 +2114 +2114 +2115 +2115 +2116 +2116 +2117 +2117 +2118 +2118 +2119 +2119 +2120 +2120 +2121 +2121 +2122 +2122 +2123 +2123 +2124 +2124 +2125 +2125 +2126 +2126 +2127 +2127 +2128 +2128 +2129 +2129 +2130 +2130 +2131 +2131 +2132 +2132 +2133 +2133 +2134 +2134 +2135 +2135 +2136 +2136 +2137 +2137 +2138 +2138 +2139 +2139 +2140 +2140 +2141 +2141 +2142 +2142 +2143 +2143 +2144 +2144 +2145 +2145 +2146 +2146 +2147 +2147 +2148 +2148 +2149 +2149 +2150 +2150 +2151 +2151 +2152 +2152 +2153 +2153 +2154 +2154 +2155 +2155 +2156 +2156 +2157 +2157 +2158 +2158 +2159 +2159 +2160 +2160 +2161 +2161 +2162 +2162 +2163 +2163 +2164 +2164 +2165 +2165 +2166 +2166 +2167 +2167 +2168 +2168 +2169 +2170 +2170 +2171 +2171 +2172 +2172 +2173 +2173 +2174 +2174 +2175 +2175 +2176 +2176 +2177 +2177 +2178 +2178 +2179 +2179 +2180 +2180 +2181 +2181 +2182 +2182 +2183 +2183 +2184 +2184 +2185 +2185 +2186 +2186 +2187 +2187 +2188 +2188 +2189 +2189 +2190 +2190 +2191 +2191 +2192 +2192 +2193 +2193 +2194 +2194 +2195 +2195 +2196 +2196 +2197 +2197 +2198 +2198 +2199 +2199 +2200 +2200 +2201 +2201 +2202 +2202 +2203 +2203 +2204 +2204 +2205 +2205 +2206 +2206 +2207 +2207 +2208 +2208 +2209 +2209 +2210 +2210 +2211 +2211 +2212 +2212 +2213 +2213 +2214 +2214 +2215 +2215 +2216 +2216 +2217 +2217 +2218 +2218 +2219 +2219 +2220 +2220 +2221 +2221 +2222 +2222 +2223 +2223 +2224 +2224 +2225 +2225 +2226 +2226 +2227 +2227 +2228 +2228 +2229 +2229 +2230 +2230 +2231 +2231 +2232 +2232 +2233 +2233 +2234 +2234 +2235 +2235 +2236 +2236 +2237 +2237 +2238 +2238 +2239 +2240 +2240 +2241 +2241 +2242 +2242 +2243 +2243 +2244 +2244 +2245 +2245 +2246 +2246 +2247 +2247 +2248 +2248 +2249 +2249 +2250 +2250 +2251 +2251 +2252 +2252 +2253 +2253 +2254 +2254 +2255 +2255 +2256 +2256 +2257 +2257 +2258 +2258 +2259 +2259 +2260 +2260 +2261 +2261 +2262 +2262 +2263 +2263 +2264 +2264 +2265 +2265 +2266 +2266 +2267 +2267 +2268 +2268 +2269 +2269 +2270 +2270 +2271 +2271 +2272 +2272 +2273 +2273 +2274 +2274 +2275 +2275 +2276 +2276 +2277 +2277 +2278 +2278 +2279 +2279 +2280 +2280 +2281 +2281 +2282 +2282 +2283 +2283 +2284 +2284 +2285 +2285 +2286 +2286 +2287 +2287 +2288 +2288 +2289 +2289 +2290 +2290 +2291 +2291 +2292 +2292 +2293 +2293 +2294 +2294 +2295 +2295 +2296 +2296 +2297 +2297 +2298 +2298 +2299 +2299 +2300 +2300 +2301 +2301 +2302 +2302 +2303 +2303 +2304 +2304 +2305 +2305 +2306 +2306 +2307 +2307 +2308 +2308 +2309 +2310 +2310 +2311 +2311 +2312 +2312 +2313 +2313 +2314 +2314 +2315 +2315 +2316 +2316 +2317 +2317 +2318 +2318 +2319 +2319 +2320 +2320 +2321 +2321 +2322 +2322 +2323 +2323 +2324 +2324 +2325 +2325 +2326 +2326 +2327 +2327 +2328 +2328 +2329 +2329 +2330 +2330 +2331 +2331 +2332 +2332 +2333 +2333 +2334 +2334 +2335 +2335 +2336 +2336 +2337 +2337 +2338 +2338 +2339 +2339 +2340 +2340 +2341 +2341 +2342 +2342 +2343 +2343 +2344 +2344 +2345 +2345 +2346 +2346 +2347 +2347 +2348 +2348 +2349 +2349 +2350 +2350 +2351 +2351 +2352 +2352 +2353 +2353 +2354 +2354 +2355 +2355 +2356 +2356 +2357 +2357 +2358 +2358 +2359 +2359 +2360 +2360 +2361 +2361 +2362 +2362 +2363 +2363 +2364 +2364 +2365 +2365 +2366 +2366 +2367 +2367 +2368 +2368 +2369 +2369 +2370 +2370 +2371 +2371 +2372 +2372 +2373 +2373 +2374 +2374 +2375 +2375 +2376 +2376 +2377 +2377 +2378 +2378 +2379 +2380 +2380 +2381 +2381 +2382 +2382 +2383 +2383 +2384 +2384 +2385 +2385 +2386 +2386 +2387 +2387 +2388 +2388 +2389 +2389 +2390 +2390 +2391 +2391 +2392 +2392 +2393 +2393 +2394 +2394 +2395 +2395 +2396 +2396 +2397 +2397 +2398 +2398 +2399 +2399 +2400 +2400 +2401 +2401 +2402 +2402 +2403 +2403 +2404 +2404 +2405 +2405 +2406 +2406 +2407 +2407 +2408 +2408 +2409 +2409 +2410 +2410 +2411 +2411 +2412 +2412 +2413 +2413 +2414 +2414 +2415 +2415 +2416 +2416 +2417 +2417 +2418 +2418 +2419 +2419 +2420 +2420 +2421 +2421 +2422 +2422 +2423 +2423 +2424 +2424 +2425 +2425 +2426 +2426 +2427 +2427 +2428 +2428 +2429 +2429 +2430 +2430 +2431 +2431 +2432 +2432 +2433 +2433 +2434 +2434 +2435 +2435 +2436 +2436 +2437 +2437 +2438 +2438 +2439 +2439 +2440 +2440 +2441 +2441 +2442 +2442 +2443 +2443 +2444 +2444 +2445 +2445 +2446 +2446 +2447 +2447 +2448 +2448 +2449 +2450 +2450 +2451 +2451 +2452 +2452 +2453 +2453 +2454 +2454 +2455 +2455 +2456 +2456 +2457 +2457 +2458 +2458 +2459 +2459 +2460 +2460 +2461 +2461 +2462 +2462 +2463 +2463 +2464 +2464 +2465 +2465 +2466 +2466 +2467 +2467 +2468 +2468 +2469 +2469 +2470 +2470 +2471 +2471 +2472 +2472 +2473 +2473 +2474 +2474 +2475 +2475 +2476 +2476 +2477 +2477 +2478 +2478 +2479 +2479 +2480 +2480 +2481 +2481 +2482 +2482 +2483 +2483 +2484 +2484 +2485 +2485 +2486 +2486 +2487 +2487 +2488 +2488 +2489 +2489 +2490 +2490 +2491 +2491 +2492 +2492 +2493 +2493 +2494 +2494 +2495 +2495 +2496 +2496 +2497 +2497 +2498 +2498 +2499 +2499 +2500 +2500 +2501 +2501 +2502 +2502 +2503 +2503 +2504 +2504 +2505 +2505 +2506 +2506 +2507 +2507 +2508 +2508 +2509 +2509 +2510 +2510 +2511 +2511 +2512 +2512 +2513 +2513 +2514 +2514 +2515 +2515 +2516 +2516 +2517 +2517 +2518 +2518 +2519 +2520 +2520 +2521 +2521 +2522 +2522 +2523 +2523 +2524 +2524 +2525 +2525 +2526 +2526 +2527 +2527 +2528 +2528 +2529 +2529 +2530 +2530 +2531 +2531 +2532 +2532 +2533 +2533 +2534 +2534 +2535 +2535 +2536 +2536 +2537 +2537 +2538 +2538 +2539 +2539 +2540 +2540 +2541 +2541 +2542 +2542 +2543 +2543 +2544 +2544 +2545 +2545 +2546 +2546 +2547 +2547 +2548 +2548 +2549 +2549 +2550 +2550 +2551 +2551 +2552 +2552 +2553 +2553 +2554 +2554 +2555 +2555 +2556 +2556 +2557 +2557 +2558 +2558 +2559 +2559 +2560 +2560 +2561 +2561 +2562 +2562 +2563 +2563 +2564 +2564 +2565 +2565 +2566 +2566 +2567 +2567 +2568 +2568 +2569 +2569 +2570 +2570 +2571 +2571 +2572 +2572 +2573 +2573 +2574 +2574 +2575 +2575 +2576 +2576 +2577 +2577 +2578 +2578 +2579 +2579 +2580 +2580 +2581 +2581 +2582 +2582 +2583 +2583 +2584 +2584 +2585 +2585 +2586 +2586 +2587 +2587 +2588 +2588 +2589 +2590 +2590 +2591 +2591 +2592 +2592 +2593 +2593 +2594 +2594 +2595 +2595 +2596 +2596 +2597 +2597 +2598 +2598 +2599 +2599 +2600 +2600 +2601 +2601 +2602 +2602 +2603 +2603 +2604 +2604 +2605 +2605 +2606 +2606 +2607 +2607 +2608 +2608 +2609 +2609 +2610 +2610 +2611 +2611 +2612 +2612 +2613 +2613 +2614 +2614 +2615 +2615 +2616 +2616 +2617 +2617 +2618 +2618 +2619 +2619 +2620 +2620 +2621 +2621 +2622 +2622 +2623 +2623 +2624 +2624 +2625 +2625 +2626 +2626 +2627 +2627 +2628 +2628 +2629 +2629 +2630 +2630 +2631 +2631 +2632 +2632 +2633 +2633 +2634 +2634 +2635 +2635 +2636 +2636 +2637 +2637 +2638 +2638 +2639 +2639 +2640 +2640 +2641 +2641 +2642 +2642 +2643 +2643 +2644 +2644 +2645 +2645 +2646 +2646 +2647 +2647 +2648 +2648 +2649 +2649 +2650 +2650 +2651 +2651 +2652 +2652 +2653 +2653 +2654 +2654 +2655 +2655 +2656 +2656 +2657 +2657 +2658 +2658 +2659 +2660 +2660 +2661 +2661 +2662 +2662 +2663 +2663 +2664 +2664 +2665 +2665 +2666 +2666 +2667 +2667 +2668 +2668 +2669 +2669 +2670 +2670 +2671 +2671 +2672 +2672 +2673 +2673 +2674 +2674 +2675 +2675 +2676 +2676 +2677 +2677 +2678 +2678 +2679 +2679 +2680 +2680 +2681 +2681 +2682 +2682 +2683 +2683 +2684 +2684 +2685 +2685 +2686 +2686 +2687 +2687 +2688 +2688 +2689 +2689 +2690 +2690 +2691 +2691 +2692 +2692 +2693 +2693 +2694 +2694 +2695 +2695 +2696 +2696 +2697 +2697 +2698 +2698 +2699 +2699 +2700 +2700 +2701 +2701 +2702 +2702 +2703 +2703 +2704 +2704 +2705 +2705 +2706 +2706 +2707 +2707 +2708 +2708 +2709 +2709 +2710 +2710 +2711 +2711 +2712 +2712 +2713 +2713 +2714 +2714 +2715 +2715 +2716 +2716 +2717 +2717 +2718 +2718 +2719 +2719 +2720 +2720 +2721 +2721 +2722 +2722 +2723 +2723 +2724 +2724 +2725 +2725 +2726 +2726 +2727 +2727 +2728 +2728 +2729 +2730 +2730 +2731 +2731 +2732 +2732 +2733 +2733 +2734 +2734 +2735 +2735 +2736 +2736 +2737 +2737 +2738 +2738 +2739 +2739 +2740 +2740 +2741 +2741 +2742 +2742 +2743 +2743 +2744 +2744 +2745 +2745 +2746 +2746 +2747 +2747 +2748 +2748 +2749 +2749 +2750 +2750 +2751 +2751 +2752 +2752 +2753 +2753 +2754 +2754 +2755 +2755 +2756 +2756 +2757 +2757 +2758 +2758 +2759 +2759 +2760 +2760 +2761 +2761 +2762 +2762 +2763 +2763 +2764 +2764 +2765 +2765 +2766 +2766 +2767 +2767 +2768 +2768 +2769 +2769 +2770 +2770 +2771 +2771 +2772 +2772 +2773 +2773 +2774 +2774 +2775 +2775 +2776 +2776 +2777 +2777 +2778 +2778 +2779 +2779 +2780 +2780 +2781 +2781 +2782 +2782 +2783 +2783 +2784 +2784 +2785 +2785 +2786 +2786 +2787 +2787 +2788 +2788 +2789 +2789 +2790 +2790 +2791 +2791 +2792 +2792 +2793 +2793 +2794 +2794 +2795 +2795 +2796 +2796 +2797 +2797 +2798 +2798 +2799 +2800 +2800 +2801 +2801 +2802 +2802 +2803 +2803 +2804 +2804 +2805 +2805 +2806 +2806 +2807 +2807 +2808 +2808 +2809 +2809 +2810 +2810 +2811 +2811 +2812 +2812 +2813 +2813 +2814 +2814 +2815 +2815 +2816 +2816 +2817 +2817 +2818 +2818 +2819 +2819 +2820 +2820 +2821 +2821 +2822 +2822 +2823 +2823 +2824 +2824 +2825 +2825 +2826 +2826 +2827 +2827 +2828 +2828 +2829 +2829 +2830 +2830 +2831 +2831 +2832 +2832 +2833 +2833 +2834 +2834 +2835 +2835 +2836 +2836 +2837 +2837 +2838 +2838 +2839 +2839 +2840 +2840 +2841 +2841 +2842 +2842 +2843 +2843 +2844 +2844 +2845 +2845 +2846 +2846 +2847 +2847 +2848 +2848 +2849 +2849 +2850 +2850 +2851 +2851 +2852 +2852 +2853 +2853 +2854 +2854 +2855 +2855 +2856 +2856 +2857 +2857 +2858 +2858 +2859 +2859 +2860 +2860 +2861 +2861 +2862 +2862 +2863 +2863 +2864 +2864 +2865 +2865 +2866 +2866 +2867 +2867 +2868 +2868 +2869 +2870 +2870 +2871 +2871 +2872 +2872 +2873 +2873 +2874 +2874 +2875 +2875 +2876 +2876 +2877 +2877 +2878 +2878 +2879 +2879 +2880 +2880 +2881 +2881 +2882 +2882 +2883 +2883 +2884 +2884 +2885 +2885 +2886 +2886 +2887 +2887 +2888 +2888 +2889 +2889 +2890 +2890 +2891 +2891 +2892 +2892 +2893 +2893 +2894 +2894 +2895 +2895 +2896 +2896 +2897 +2897 +2898 +2898 +2899 +2899 +2900 +2900 +2901 +2901 +2902 +2902 +2903 +2903 +2904 +2904 +2905 +2905 +2906 +2906 +2907 +2907 +2908 +2908 +2909 +2909 +2910 +2910 +2911 +2911 +2912 +2912 +2913 +2913 +2914 +2914 +2915 +2915 +2916 +2916 +2917 +2917 +2918 +2918 +2919 +2919 +2920 +2920 +2921 +2921 +2922 +2922 +2923 +2923 +2924 +2924 +2925 +2925 +2926 +2926 +2927 +2927 +2928 +2928 +2929 +2929 +2930 +2930 +2931 +2931 +2932 +2932 +2933 +2933 +2934 +2934 +2935 +2935 +2936 +2936 +2937 +2937 +2938 +2938 +2939 +2940 +2940 +2941 +2941 +2942 +2942 +2943 +2943 +2944 +2944 +2945 +2945 +2946 +2946 +2947 +2947 +2948 +2948 +2949 +2949 +2950 +2950 +2951 +2951 +2952 +2952 +2953 +2953 +2954 +2954 +2955 +2955 +2956 +2956 +2957 +2957 +2958 +2958 +2959 +2959 +2960 +2960 +2961 +2961 +2962 +2962 +2963 +2963 +2964 +2964 +2965 +2965 +2966 +2966 +2967 +2967 +2968 +2968 +2969 +2969 +2970 +2970 +2971 +2971 +2972 +2972 +2973 +2973 +2974 +2974 +2975 +2975 +2976 +2976 +2977 +2977 +2978 +2978 +2979 +2979 +2980 +2980 +2981 +2981 +2982 +2982 +2983 +2983 +2984 +2984 +2985 +2985 +2986 +2986 +2987 +2987 +2988 +2988 +2989 +2989 +2990 +2990 +2991 +2991 +2992 +2992 +2993 +2993 +2994 +2994 +2995 +2995 +2996 +2996 +2997 +2997 +2998 +2998 +2999 +2999 +3000 +3000 +3001 +3001 +3002 +3002 +3003 +3003 +3004 +3004 +3005 +3005 +3006 +3006 +3007 +3007 +3008 +3008 +3009 +3010 +3010 +3011 +3011 +3012 +3012 +3013 +3013 +3014 +3014 +3015 +3015 +3016 +3016 +3017 +3017 +3018 +3018 +3019 +3019 +3020 +3020 +3021 +3021 +3022 +3022 +3023 +3023 +3024 +3024 +3025 +3025 +3026 +3026 +3027 +3027 +3028 +3028 +3029 +3029 +3030 +3030 +3031 +3031 +3032 +3032 +3033 +3033 +3034 +3034 +3035 +3035 +3036 +3036 +3037 +3037 +3038 +3038 +3039 +3039 +3040 +3040 +3041 +3041 +3042 +3042 +3043 +3043 +3044 +3044 +3045 +3045 +3046 +3046 +3047 +3047 +3048 +3048 +3049 +3049 +3050 +3050 +3051 +3051 +3052 +3052 +3053 +3053 +3054 +3054 +3055 +3055 +3056 +3056 +3057 +3057 +3058 +3058 +3059 +3059 +3060 +3060 +3061 +3061 +3062 +3062 +3063 +3063 +3064 +3064 +3065 +3065 +3066 +3066 +3067 +3067 +3068 +3068 +3069 +3069 +3070 +3070 +3071 +3071 +3072 +3072 +3073 +3073 +3074 +3074 +3075 +3075 +3076 +3076 +3077 +3077 +3078 +3078 +3079 +3080 +3080 +3081 +3081 +3082 +3082 +3083 +3083 +3084 +3084 +3085 +3085 +3086 +3086 +3087 +3087 +3088 +3088 +3089 +3089 +3090 +3090 +3091 +3091 +3092 +3092 +3093 +3093 +3094 +3094 +3095 +3095 +3096 +3096 +3097 +3097 +3098 +3098 +3099 +3099 +3100 +3100 +3101 +3101 +3102 +3102 +3103 +3103 +3104 +3104 +3105 +3105 +3106 +3106 +3107 +3107 +3108 +3108 +3109 +3109 +3110 +3110 +3111 +3111 +3112 +3112 +3113 +3113 +3114 +3114 +3115 +3115 +3116 +3116 +3117 +3117 +3118 +3118 +3119 +3119 +3120 +3120 +3121 +3121 +3122 +3122 +3123 +3123 +3124 +3124 +3125 +3125 +3126 +3126 +3127 +3127 +3128 +3128 +3129 +3129 +3130 +3130 +3131 +3131 +3132 +3132 +3133 +3133 +3134 +3134 +3135 +3135 +3136 +3136 +3137 +3137 +3138 +3138 +3139 +3139 +3140 +3140 +3141 +3141 +3142 +3142 +3143 +3143 +3144 +3144 +3145 +3145 +3146 +3146 +3147 +3147 +3148 +3148 +3149 +3150 +3150 +3151 +3151 +3152 +3152 +3153 +3153 +3154 +3154 +3155 +3155 +3156 +3156 +3157 +3157 +3158 +3158 +3159 +3159 +3160 +3160 +3161 +3161 +3162 +3162 +3163 +3163 +3164 +3164 +3165 +3165 +3166 +3166 +3167 +3167 +3168 +3168 +3169 +3169 +3170 +3170 +3171 +3171 +3172 +3172 +3173 +3173 +3174 +3174 +3175 +3175 +3176 +3176 +3177 +3177 +3178 +3178 +3179 +3179 +3180 +3180 +3181 +3181 +3182 +3182 +3183 +3183 +3184 +3184 +3185 +3185 +3186 +3186 +3187 +3187 +3188 +3188 +3189 +3189 +3190 +3190 +3191 +3191 +3192 +3192 +3193 +3193 +3194 +3194 +3195 +3195 +3196 +3196 +3197 +3197 +3198 +3198 +3199 +3199 +3200 +3200 +3201 +3201 +3202 +3202 +3203 +3203 +3204 +3204 +3205 +3205 +3206 +3206 +3207 +3207 +3208 +3208 +3209 +3209 +3210 +3210 +3211 +3211 +3212 +3212 +3213 +3213 +3214 +3214 +3215 +3215 +3216 +3216 +3217 +3217 +3218 +3218 +3219 +3220 +3220 +3221 +3221 +3222 +3222 +3223 +3223 +3224 +3224 +3225 +3225 +3226 +3226 +3227 +3227 +3228 +3228 +3229 +3229 +3230 +3230 +3231 +3231 +3232 +3232 +3233 +3233 +3234 +3234 +3235 +3235 +3236 +3236 +3237 +3237 +3238 +3238 +3239 +3239 +3240 +3240 +3241 +3241 +3242 +3242 +3243 +3243 +3244 +3244 +3245 +3245 +3246 +3246 +3247 +3247 +3248 +3248 +3249 +3249 +3250 +3250 +3251 +3251 +3252 +3252 +3253 +3253 +3254 +3254 +3255 +3255 +3256 +3256 +3257 +3257 +3258 +3258 +3259 +3259 +3260 +3260 +3261 +3261 +3262 +3262 +3263 +3263 +3264 +3264 +3265 +3265 +3266 +3266 +3267 +3267 +3268 +3268 +3269 +3269 +3270 +3270 +3271 +3271 +3272 +3272 +3273 +3273 +3274 +3274 +3275 +3275 +3276 +3276 +3277 +3277 +3278 +3278 +3279 +3279 +3280 +3280 +3281 +3281 +3282 +3282 +3283 +3283 +3284 +3284 +3285 +3285 +3286 +3286 +3287 +3287 +3288 +3288 +3289 +3290 +3290 +3291 +3291 +3292 +3292 +3293 +3293 +3294 +3294 +3295 +3295 +3296 +3296 +3297 +3297 +3298 +3298 +3299 +3299 +3300 +3300 +3301 +3301 +3302 +3302 +3303 +3303 +3304 +3304 +3305 +3305 +3306 +3306 +3307 +3307 +3308 +3308 +3309 +3309 +3310 +3310 +3311 +3311 +3312 +3312 +3313 +3313 +3314 +3314 +3315 +3315 +3316 +3316 +3317 +3317 +3318 +3318 +3319 +3319 +3320 +3320 +3321 +3321 +3322 +3322 +3323 +3323 +3324 +3324 +3325 +3325 +3326 +3326 +3327 +3327 +3328 +3328 +3329 +3329 +3330 +3330 +3331 +3331 +3332 +3332 +3333 +3333 +3334 +3334 +3335 +3335 +3336 +3336 +3337 +3337 +3338 +3338 +3339 +3339 +3340 +3340 +3341 +3341 +3342 +3342 +3343 +3343 +3344 +3344 +3345 +3345 +3346 +3346 +3347 +3347 +3348 +3348 +3349 +3349 +3350 +3350 +3351 +3351 +3352 +3352 +3353 +3353 +3354 +3354 +3355 +3355 +3356 +3356 +3357 +3357 +3358 +3358 +3359 +3360 +3360 +3361 +3361 +3362 +3362 +3363 +3363 +3364 +3364 +3365 +3365 +3366 +3366 +3367 +3367 +3368 +3368 +3369 +3369 +3370 +3370 +3371 +3371 +3372 +3372 +3373 +3373 +3374 +3374 +3375 +3375 +3376 +3376 +3377 +3377 +3378 +3378 +3379 +3379 +3380 +3380 +3381 +3381 +3382 +3382 +3383 +3383 +3384 +3384 +3385 +3385 +3386 +3386 +3387 +3387 +3388 +3388 +3389 +3389 +3390 +3390 +3391 +3391 +3392 +3392 +3393 +3393 +3394 +3394 +3395 +3395 +3396 +3396 +3397 +3397 +3398 +3398 +3399 +3399 +3400 +3400 +3401 +3401 +3402 +3402 +3403 +3403 +3404 +3404 +3405 +3405 +3406 +3406 +3407 +3407 +3408 +3408 +3409 +3409 +3410 +3410 +3411 +3411 +3412 +3412 +3413 +3413 +3414 +3414 +3415 +3415 +3416 +3416 +3417 +3417 +3418 +3418 +3419 +3419 +3420 +3420 +3421 +3421 +3422 +3422 +3423 +3423 +3424 +3424 +3425 +3425 +3426 +3426 +3427 +3427 +3428 +3428 +3429 +3430 +3431 +3432 +3433 +3434 +3435 +3436 +3437 +3438 +3439 +3440 +3441 +3442 +3443 +3444 +3445 +3446 +3447 +3448 +3449 +3450 +3451 +3452 +3453 +3454 +3455 +3456 +3457 +3458 +3459 +3460 +3461 +3462 +3463 +3464 +3465 +3466 +3467 +3468 +3469 +3470 +3471 +3472 +3473 +3474 +3475 +3476 +3477 +3478 +3479 +3480 +3481 +3482 +3483 +3484 +3485 +3486 +3487 +3488 +3489 +3490 +3491 +3492 +3493 +3494 +3495 +3496 +3497 +3498 +0 +70 +140 +210 +280 +350 +420 +490 +560 +630 +700 +770 +840 +910 +980 +1050 +1120 +1190 +1260 +1330 +1400 +1470 +1540 +1610 +1680 +1750 +1820 +1890 +1960 +2030 +2100 +2170 +2240 +2310 +2380 +2450 +2520 +2590 +2660 +2730 +2800 +2870 +2940 +3010 +3080 +3150 +3220 +3290 +3360 +3430 +69 +139 +209 +279 +349 +419 +489 +559 +629 +699 +769 +839 +909 +979 +1049 +1119 +1189 +1259 +1329 +1399 +1469 +1539 +1609 +1679 +1749 +1819 +1889 +1959 +2029 +2099 +2169 +2239 +2309 +2379 +2449 +2519 +2589 +2659 +2729 +2799 +2869 +2939 +3009 +3079 +3149 +3219 +3289 +3359 +3429 +3499 +3430 +3431 +3432 +3433 +3434 +3435 +3436 +3437 +3438 +3439 +3440 +3441 +3442 +3443 +3444 +3445 +3446 +3447 +3448 +3449 +3450 +3451 +3452 +3453 +3454 +3455 +3456 +3457 +3458 +3459 +3460 +3461 +3462 +3463 +3464 +3465 +3466 +3467 +3468 +3469 +3470 +3471 +3472 +3473 +3474 +3475 +3476 +3477 +3478 +3479 +3480 +3481 +3482 +3483 +3484 +3485 +3486 +3487 +3488 +3489 +3490 +3491 +3492 +3493 +3494 +3495 +3496 +3497 +3498 +3499 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +0 +70 +140 +210 +280 +350 +420 +490 +560 +630 +700 +770 +840 +910 +980 +1050 +1120 +1190 +1260 +1330 +1400 +1470 +1540 +1610 +1680 +1750 +1820 +1890 +1960 +2030 +2100 +2170 +2240 +2310 +2380 +2450 +2520 +2590 +2660 +2730 +2800 +2870 +2940 +3010 +3080 +3150 +3220 +3290 +3360 +3430 +1 +71 +141 +211 +281 +351 +421 +491 +561 +631 +701 +771 +841 +911 +981 +1051 +1121 +1191 +1261 +1331 +1401 +1471 +1541 +1611 +1681 +1751 +1821 +1891 +1961 +2031 +2101 +2171 +2241 +2311 +2381 +2451 +2521 +2591 +2661 +2731 +2801 +2871 +2941 +3011 +3081 +3151 +3221 +3291 +3361 +3431 +2 +72 +142 +212 +282 +352 +422 +492 +562 +632 +702 +772 +842 +912 +982 +1052 +1122 +1192 +1262 +1332 +1402 +1472 +1542 +1612 +1682 +1752 +1822 +1892 +1962 +2032 +2102 +2172 +2242 +2312 +2382 +2452 +2522 +2592 +2662 +2732 +2802 +2872 +2942 +3012 +3082 +3152 +3222 +3292 +3362 +3432 +3 +73 +143 +213 +283 +353 +423 +493 +563 +633 +703 +773 +843 +913 +983 +1053 +1123 +1193 +1263 +1333 +1403 +1473 +1543 +1613 +1683 +1753 +1823 +1893 +1963 +2033 +2103 +2173 +2243 +2313 +2383 +2453 +2523 +2593 +2663 +2733 +2803 +2873 +2943 +3013 +3083 +3153 +3223 +3293 +3363 +3433 +4 +74 +144 +214 +284 +354 +424 +494 +564 +634 +704 +774 +844 +914 +984 +1054 +1124 +1194 +1264 +1334 +1404 +1474 +1544 +1614 +1684 +1754 +1824 +1894 +1964 +2034 +2104 +2174 +2244 +2314 +2384 +2454 +2524 +2594 +2664 +2734 +2804 +2874 +2944 +3014 +3084 +3154 +3224 +3294 +3364 +3434 +5 +75 +145 +215 +285 +355 +425 +495 +565 +635 +705 +775 +845 +915 +985 +1055 +1125 +1195 +1265 +1335 +1405 +1475 +1545 +1615 +1685 +1755 +1825 +1895 +1965 +2035 +2105 +2175 +2245 +2315 +2385 +2455 +2525 +2595 +2665 +2735 +2805 +2875 +2945 +3015 +3085 +3155 +3225 +3295 +3365 +3435 +6 +76 +146 +216 +286 +356 +426 +496 +566 +636 +706 +776 +846 +916 +986 +1056 +1126 +1196 +1266 +1336 +1406 +1476 +1546 +1616 +1686 +1756 +1826 +1896 +1966 +2036 +2106 +2176 +2246 +2316 +2386 +2456 +2526 +2596 +2666 +2736 +2806 +2876 +2946 +3016 +3086 +3156 +3226 +3296 +3366 +3436 +7 +77 +147 +217 +287 +357 +427 +497 +567 +637 +707 +777 +847 +917 +987 +1057 +1127 +1197 +1267 +1337 +1407 +1477 +1547 +1617 +1687 +1757 +1827 +1897 +1967 +2037 +2107 +2177 +2247 +2317 +2387 +2457 +2527 +2597 +2667 +2737 +2807 +2877 +2947 +3017 +3087 +3157 +3227 +3297 +3367 +3437 +8 +78 +148 +218 +288 +358 +428 +498 +568 +638 +708 +778 +848 +918 +988 +1058 +1128 +1198 +1268 +1338 +1408 +1478 +1548 +1618 +1688 +1758 +1828 +1898 +1968 +2038 +2108 +2178 +2248 +2318 +2388 +2458 +2528 +2598 +2668 +2738 +2808 +2878 +2948 +3018 +3088 +3158 +3228 +3298 +3368 +3438 +9 +79 +149 +219 +289 +359 +429 +499 +569 +639 +709 +779 +849 +919 +989 +1059 +1129 +1199 +1269 +1339 +1409 +1479 +1549 +1619 +1689 +1759 +1829 +1899 +1969 +2039 +2109 +2179 +2249 +2319 +2389 +2459 +2529 +2599 +2669 +2739 +2809 +2879 +2949 +3019 +3089 +3159 +3229 +3299 +3369 +3439 +10 +80 +150 +220 +290 +360 +430 +500 +570 +640 +710 +780 +850 +920 +990 +1060 +1130 +1200 +1270 +1340 +1410 +1480 +1550 +1620 +1690 +1760 +1830 +1900 +1970 +2040 +2110 +2180 +2250 +2320 +2390 +2460 +2530 +2600 +2670 +2740 +2810 +2880 +2950 +3020 +3090 +3160 +3230 +3300 +3370 +3440 +11 +81 +151 +221 +291 +361 +431 +501 +571 +641 +711 +781 +851 +921 +991 +1061 +1131 +1201 +1271 +1341 +1411 +1481 +1551 +1621 +1691 +1761 +1831 +1901 +1971 +2041 +2111 +2181 +2251 +2321 +2391 +2461 +2531 +2601 +2671 +2741 +2811 +2881 +2951 +3021 +3091 +3161 +3231 +3301 +3371 +3441 +12 +82 +152 +222 +292 +362 +432 +502 +572 +642 +712 +782 +852 +922 +992 +1062 +1132 +1202 +1272 +1342 +1412 +1482 +1552 +1622 +1692 +1762 +1832 +1902 +1972 +2042 +2112 +2182 +2252 +2322 +2392 +2462 +2532 +2602 +2672 +2742 +2812 +2882 +2952 +3022 +3092 +3162 +3232 +3302 +3372 +3442 +13 +83 +153 +223 +293 +363 +433 +503 +573 +643 +713 +783 +853 +923 +993 +1063 +1133 +1203 +1273 +1343 +1413 +1483 +1553 +1623 +1693 +1763 +1833 +1903 +1973 +2043 +2113 +2183 +2253 +2323 +2393 +2463 +2533 +2603 +2673 +2743 +2813 +2883 +2953 +3023 +3093 +3163 +3233 +3303 +3373 +3443 +14 +84 +154 +224 +294 +364 +434 +504 +574 +644 +714 +784 +854 +924 +994 +1064 +1134 +1204 +1274 +1344 +1414 +1484 +1554 +1624 +1694 +1764 +1834 +1904 +1974 +2044 +2114 +2184 +2254 +2324 +2394 +2464 +2534 +2604 +2674 +2744 +2814 +2884 +2954 +3024 +3094 +3164 +3234 +3304 +3374 +3444 +15 +85 +155 +225 +295 +365 +435 +505 +575 +645 +715 +785 +855 +925 +995 +1065 +1135 +1205 +1275 +1345 +1415 +1485 +1555 +1625 +1695 +1765 +1835 +1905 +1975 +2045 +2115 +2185 +2255 +2325 +2395 +2465 +2535 +2605 +2675 +2745 +2815 +2885 +2955 +3025 +3095 +3165 +3235 +3305 +3375 +3445 +16 +86 +156 +226 +296 +366 +436 +506 +576 +646 +716 +786 +856 +926 +996 +1066 +1136 +1206 +1276 +1346 +1416 +1486 +1556 +1626 +1696 +1766 +1836 +1906 +1976 +2046 +2116 +2186 +2256 +2326 +2396 +2466 +2536 +2606 +2676 +2746 +2816 +2886 +2956 +3026 +3096 +3166 +3236 +3306 +3376 +3446 +17 +87 +157 +227 +297 +367 +437 +507 +577 +647 +717 +787 +857 +927 +997 +1067 +1137 +1207 +1277 +1347 +1417 +1487 +1557 +1627 +1697 +1767 +1837 +1907 +1977 +2047 +2117 +2187 +2257 +2327 +2397 +2467 +2537 +2607 +2677 +2747 +2817 +2887 +2957 +3027 +3097 +3167 +3237 +3307 +3377 +3447 +18 +88 +158 +228 +298 +368 +438 +508 +578 +648 +718 +788 +858 +928 +998 +1068 +1138 +1208 +1278 +1348 +1418 +1488 +1558 +1628 +1698 +1768 +1838 +1908 +1978 +2048 +2118 +2188 +2258 +2328 +2398 +2468 +2538 +2608 +2678 +2748 +2818 +2888 +2958 +3028 +3098 +3168 +3238 +3308 +3378 +3448 +19 +89 +159 +229 +299 +369 +439 +509 +579 +649 +719 +789 +859 +929 +999 +1069 +1139 +1209 +1279 +1349 +1419 +1489 +1559 +1629 +1699 +1769 +1839 +1909 +1979 +2049 +2119 +2189 +2259 +2329 +2399 +2469 +2539 +2609 +2679 +2749 +2819 +2889 +2959 +3029 +3099 +3169 +3239 +3309 +3379 +3449 +20 +90 +160 +230 +300 +370 +440 +510 +580 +650 +720 +790 +860 +930 +1000 +1070 +1140 +1210 +1280 +1350 +1420 +1490 +1560 +1630 +1700 +1770 +1840 +1910 +1980 +2050 +2120 +2190 +2260 +2330 +2400 +2470 +2540 +2610 +2680 +2750 +2820 +2890 +2960 +3030 +3100 +3170 +3240 +3310 +3380 +3450 +21 +91 +161 +231 +301 +371 +441 +511 +581 +651 +721 +791 +861 +931 +1001 +1071 +1141 +1211 +1281 +1351 +1421 +1491 +1561 +1631 +1701 +1771 +1841 +1911 +1981 +2051 +2121 +2191 +2261 +2331 +2401 +2471 +2541 +2611 +2681 +2751 +2821 +2891 +2961 +3031 +3101 +3171 +3241 +3311 +3381 +3451 +22 +92 +162 +232 +302 +372 +442 +512 +582 +652 +722 +792 +862 +932 +1002 +1072 +1142 +1212 +1282 +1352 +1422 +1492 +1562 +1632 +1702 +1772 +1842 +1912 +1982 +2052 +2122 +2192 +2262 +2332 +2402 +2472 +2542 +2612 +2682 +2752 +2822 +2892 +2962 +3032 +3102 +3172 +3242 +3312 +3382 +3452 +23 +93 +163 +233 +303 +373 +443 +513 +583 +653 +723 +793 +863 +933 +1003 +1073 +1143 +1213 +1283 +1353 +1423 +1493 +1563 +1633 +1703 +1773 +1843 +1913 +1983 +2053 +2123 +2193 +2263 +2333 +2403 +2473 +2543 +2613 +2683 +2753 +2823 +2893 +2963 +3033 +3103 +3173 +3243 +3313 +3383 +3453 +24 +94 +164 +234 +304 +374 +444 +514 +584 +654 +724 +794 +864 +934 +1004 +1074 +1144 +1214 +1284 +1354 +1424 +1494 +1564 +1634 +1704 +1774 +1844 +1914 +1984 +2054 +2124 +2194 +2264 +2334 +2404 +2474 +2544 +2614 +2684 +2754 +2824 +2894 +2964 +3034 +3104 +3174 +3244 +3314 +3384 +3454 +25 +95 +165 +235 +305 +375 +445 +515 +585 +655 +725 +795 +865 +935 +1005 +1075 +1145 +1215 +1285 +1355 +1425 +1495 +1565 +1635 +1705 +1775 +1845 +1915 +1985 +2055 +2125 +2195 +2265 +2335 +2405 +2475 +2545 +2615 +2685 +2755 +2825 +2895 +2965 +3035 +3105 +3175 +3245 +3315 +3385 +3455 +26 +96 +166 +236 +306 +376 +446 +516 +586 +656 +726 +796 +866 +936 +1006 +1076 +1146 +1216 +1286 +1356 +1426 +1496 +1566 +1636 +1706 +1776 +1846 +1916 +1986 +2056 +2126 +2196 +2266 +2336 +2406 +2476 +2546 +2616 +2686 +2756 +2826 +2896 +2966 +3036 +3106 +3176 +3246 +3316 +3386 +3456 +27 +97 +167 +237 +307 +377 +447 +517 +587 +657 +727 +797 +867 +937 +1007 +1077 +1147 +1217 +1287 +1357 +1427 +1497 +1567 +1637 +1707 +1777 +1847 +1917 +1987 +2057 +2127 +2197 +2267 +2337 +2407 +2477 +2547 +2617 +2687 +2757 +2827 +2897 +2967 +3037 +3107 +3177 +3247 +3317 +3387 +3457 +28 +98 +168 +238 +308 +378 +448 +518 +588 +658 +728 +798 +868 +938 +1008 +1078 +1148 +1218 +1288 +1358 +1428 +1498 +1568 +1638 +1708 +1778 +1848 +1918 +1988 +2058 +2128 +2198 +2268 +2338 +2408 +2478 +2548 +2618 +2688 +2758 +2828 +2898 +2968 +3038 +3108 +3178 +3248 +3318 +3388 +3458 +29 +99 +169 +239 +309 +379 +449 +519 +589 +659 +729 +799 +869 +939 +1009 +1079 +1149 +1219 +1289 +1359 +1429 +1499 +1569 +1639 +1709 +1779 +1849 +1919 +1989 +2059 +2129 +2199 +2269 +2339 +2409 +2479 +2549 +2619 +2689 +2759 +2829 +2899 +2969 +3039 +3109 +3179 +3249 +3319 +3389 +3459 +30 +100 +170 +240 +310 +380 +450 +520 +590 +660 +730 +800 +870 +940 +1010 +1080 +1150 +1220 +1290 +1360 +1430 +1500 +1570 +1640 +1710 +1780 +1850 +1920 +1990 +2060 +2130 +2200 +2270 +2340 +2410 +2480 +2550 +2620 +2690 +2760 +2830 +2900 +2970 +3040 +3110 +3180 +3250 +3320 +3390 +3460 +31 +101 +171 +241 +311 +381 +451 +521 +591 +661 +731 +801 +871 +941 +1011 +1081 +1151 +1221 +1291 +1361 +1431 +1501 +1571 +1641 +1711 +1781 +1851 +1921 +1991 +2061 +2131 +2201 +2271 +2341 +2411 +2481 +2551 +2621 +2691 +2761 +2831 +2901 +2971 +3041 +3111 +3181 +3251 +3321 +3391 +3461 +32 +102 +172 +242 +312 +382 +452 +522 +592 +662 +732 +802 +872 +942 +1012 +1082 +1152 +1222 +1292 +1362 +1432 +1502 +1572 +1642 +1712 +1782 +1852 +1922 +1992 +2062 +2132 +2202 +2272 +2342 +2412 +2482 +2552 +2622 +2692 +2762 +2832 +2902 +2972 +3042 +3112 +3182 +3252 +3322 +3392 +3462 +33 +103 +173 +243 +313 +383 +453 +523 +593 +663 +733 +803 +873 +943 +1013 +1083 +1153 +1223 +1293 +1363 +1433 +1503 +1573 +1643 +1713 +1783 +1853 +1923 +1993 +2063 +2133 +2203 +2273 +2343 +2413 +2483 +2553 +2623 +2693 +2763 +2833 +2903 +2973 +3043 +3113 +3183 +3253 +3323 +3393 +3463 +34 +104 +174 +244 +314 +384 +454 +524 +594 +664 +734 +804 +874 +944 +1014 +1084 +1154 +1224 +1294 +1364 +1434 +1504 +1574 +1644 +1714 +1784 +1854 +1924 +1994 +2064 +2134 +2204 +2274 +2344 +2414 +2484 +2554 +2624 +2694 +2764 +2834 +2904 +2974 +3044 +3114 +3184 +3254 +3324 +3394 +3464 +35 +105 +175 +245 +315 +385 +455 +525 +595 +665 +735 +805 +875 +945 +1015 +1085 +1155 +1225 +1295 +1365 +1435 +1505 +1575 +1645 +1715 +1785 +1855 +1925 +1995 +2065 +2135 +2205 +2275 +2345 +2415 +2485 +2555 +2625 +2695 +2765 +2835 +2905 +2975 +3045 +3115 +3185 +3255 +3325 +3395 +3465 +36 +106 +176 +246 +316 +386 +456 +526 +596 +666 +736 +806 +876 +946 +1016 +1086 +1156 +1226 +1296 +1366 +1436 +1506 +1576 +1646 +1716 +1786 +1856 +1926 +1996 +2066 +2136 +2206 +2276 +2346 +2416 +2486 +2556 +2626 +2696 +2766 +2836 +2906 +2976 +3046 +3116 +3186 +3256 +3326 +3396 +3466 +37 +107 +177 +247 +317 +387 +457 +527 +597 +667 +737 +807 +877 +947 +1017 +1087 +1157 +1227 +1297 +1367 +1437 +1507 +1577 +1647 +1717 +1787 +1857 +1927 +1997 +2067 +2137 +2207 +2277 +2347 +2417 +2487 +2557 +2627 +2697 +2767 +2837 +2907 +2977 +3047 +3117 +3187 +3257 +3327 +3397 +3467 +38 +108 +178 +248 +318 +388 +458 +528 +598 +668 +738 +808 +878 +948 +1018 +1088 +1158 +1228 +1298 +1368 +1438 +1508 +1578 +1648 +1718 +1788 +1858 +1928 +1998 +2068 +2138 +2208 +2278 +2348 +2418 +2488 +2558 +2628 +2698 +2768 +2838 +2908 +2978 +3048 +3118 +3188 +3258 +3328 +3398 +3468 +39 +109 +179 +249 +319 +389 +459 +529 +599 +669 +739 +809 +879 +949 +1019 +1089 +1159 +1229 +1299 +1369 +1439 +1509 +1579 +1649 +1719 +1789 +1859 +1929 +1999 +2069 +2139 +2209 +2279 +2349 +2419 +2489 +2559 +2629 +2699 +2769 +2839 +2909 +2979 +3049 +3119 +3189 +3259 +3329 +3399 +3469 +40 +110 +180 +250 +320 +390 +460 +530 +600 +670 +740 +810 +880 +950 +1020 +1090 +1160 +1230 +1300 +1370 +1440 +1510 +1580 +1650 +1720 +1790 +1860 +1930 +2000 +2070 +2140 +2210 +2280 +2350 +2420 +2490 +2560 +2630 +2700 +2770 +2840 +2910 +2980 +3050 +3120 +3190 +3260 +3330 +3400 +3470 +41 +111 +181 +251 +321 +391 +461 +531 +601 +671 +741 +811 +881 +951 +1021 +1091 +1161 +1231 +1301 +1371 +1441 +1511 +1581 +1651 +1721 +1791 +1861 +1931 +2001 +2071 +2141 +2211 +2281 +2351 +2421 +2491 +2561 +2631 +2701 +2771 +2841 +2911 +2981 +3051 +3121 +3191 +3261 +3331 +3401 +3471 +42 +112 +182 +252 +322 +392 +462 +532 +602 +672 +742 +812 +882 +952 +1022 +1092 +1162 +1232 +1302 +1372 +1442 +1512 +1582 +1652 +1722 +1792 +1862 +1932 +2002 +2072 +2142 +2212 +2282 +2352 +2422 +2492 +2562 +2632 +2702 +2772 +2842 +2912 +2982 +3052 +3122 +3192 +3262 +3332 +3402 +3472 +43 +113 +183 +253 +323 +393 +463 +533 +603 +673 +743 +813 +883 +953 +1023 +1093 +1163 +1233 +1303 +1373 +1443 +1513 +1583 +1653 +1723 +1793 +1863 +1933 +2003 +2073 +2143 +2213 +2283 +2353 +2423 +2493 +2563 +2633 +2703 +2773 +2843 +2913 +2983 +3053 +3123 +3193 +3263 +3333 +3403 +3473 +44 +114 +184 +254 +324 +394 +464 +534 +604 +674 +744 +814 +884 +954 +1024 +1094 +1164 +1234 +1304 +1374 +1444 +1514 +1584 +1654 +1724 +1794 +1864 +1934 +2004 +2074 +2144 +2214 +2284 +2354 +2424 +2494 +2564 +2634 +2704 +2774 +2844 +2914 +2984 +3054 +3124 +3194 +3264 +3334 +3404 +3474 +45 +115 +185 +255 +325 +395 +465 +535 +605 +675 +745 +815 +885 +955 +1025 +1095 +1165 +1235 +1305 +1375 +1445 +1515 +1585 +1655 +1725 +1795 +1865 +1935 +2005 +2075 +2145 +2215 +2285 +2355 +2425 +2495 +2565 +2635 +2705 +2775 +2845 +2915 +2985 +3055 +3125 +3195 +3265 +3335 +3405 +3475 +46 +116 +186 +256 +326 +396 +466 +536 +606 +676 +746 +816 +886 +956 +1026 +1096 +1166 +1236 +1306 +1376 +1446 +1516 +1586 +1656 +1726 +1796 +1866 +1936 +2006 +2076 +2146 +2216 +2286 +2356 +2426 +2496 +2566 +2636 +2706 +2776 +2846 +2916 +2986 +3056 +3126 +3196 +3266 +3336 +3406 +3476 +47 +117 +187 +257 +327 +397 +467 +537 +607 +677 +747 +817 +887 +957 +1027 +1097 +1167 +1237 +1307 +1377 +1447 +1517 +1587 +1657 +1727 +1797 +1867 +1937 +2007 +2077 +2147 +2217 +2287 +2357 +2427 +2497 +2567 +2637 +2707 +2777 +2847 +2917 +2987 +3057 +3127 +3197 +3267 +3337 +3407 +3477 +48 +118 +188 +258 +328 +398 +468 +538 +608 +678 +748 +818 +888 +958 +1028 +1098 +1168 +1238 +1308 +1378 +1448 +1518 +1588 +1658 +1728 +1798 +1868 +1938 +2008 +2078 +2148 +2218 +2288 +2358 +2428 +2498 +2568 +2638 +2708 +2778 +2848 +2918 +2988 +3058 +3128 +3198 +3268 +3338 +3408 +3478 +49 +119 +189 +259 +329 +399 +469 +539 +609 +679 +749 +819 +889 +959 +1029 +1099 +1169 +1239 +1309 +1379 +1449 +1519 +1589 +1659 +1729 +1799 +1869 +1939 +2009 +2079 +2149 +2219 +2289 +2359 +2429 +2499 +2569 +2639 +2709 +2779 +2849 +2919 +2989 +3059 +3129 +3199 +3269 +3339 +3409 +3479 +50 +120 +190 +260 +330 +400 +470 +540 +610 +680 +750 +820 +890 +960 +1030 +1100 +1170 +1240 +1310 +1380 +1450 +1520 +1590 +1660 +1730 +1800 +1870 +1940 +2010 +2080 +2150 +2220 +2290 +2360 +2430 +2500 +2570 +2640 +2710 +2780 +2850 +2920 +2990 +3060 +3130 +3200 +3270 +3340 +3410 +3480 +51 +121 +191 +261 +331 +401 +471 +541 +611 +681 +751 +821 +891 +961 +1031 +1101 +1171 +1241 +1311 +1381 +1451 +1521 +1591 +1661 +1731 +1801 +1871 +1941 +2011 +2081 +2151 +2221 +2291 +2361 +2431 +2501 +2571 +2641 +2711 +2781 +2851 +2921 +2991 +3061 +3131 +3201 +3271 +3341 +3411 +3481 +52 +122 +192 +262 +332 +402 +472 +542 +612 +682 +752 +822 +892 +962 +1032 +1102 +1172 +1242 +1312 +1382 +1452 +1522 +1592 +1662 +1732 +1802 +1872 +1942 +2012 +2082 +2152 +2222 +2292 +2362 +2432 +2502 +2572 +2642 +2712 +2782 +2852 +2922 +2992 +3062 +3132 +3202 +3272 +3342 +3412 +3482 +53 +123 +193 +263 +333 +403 +473 +543 +613 +683 +753 +823 +893 +963 +1033 +1103 +1173 +1243 +1313 +1383 +1453 +1523 +1593 +1663 +1733 +1803 +1873 +1943 +2013 +2083 +2153 +2223 +2293 +2363 +2433 +2503 +2573 +2643 +2713 +2783 +2853 +2923 +2993 +3063 +3133 +3203 +3273 +3343 +3413 +3483 +54 +124 +194 +264 +334 +404 +474 +544 +614 +684 +754 +824 +894 +964 +1034 +1104 +1174 +1244 +1314 +1384 +1454 +1524 +1594 +1664 +1734 +1804 +1874 +1944 +2014 +2084 +2154 +2224 +2294 +2364 +2434 +2504 +2574 +2644 +2714 +2784 +2854 +2924 +2994 +3064 +3134 +3204 +3274 +3344 +3414 +3484 +55 +125 +195 +265 +335 +405 +475 +545 +615 +685 +755 +825 +895 +965 +1035 +1105 +1175 +1245 +1315 +1385 +1455 +1525 +1595 +1665 +1735 +1805 +1875 +1945 +2015 +2085 +2155 +2225 +2295 +2365 +2435 +2505 +2575 +2645 +2715 +2785 +2855 +2925 +2995 +3065 +3135 +3205 +3275 +3345 +3415 +3485 +56 +126 +196 +266 +336 +406 +476 +546 +616 +686 +756 +826 +896 +966 +1036 +1106 +1176 +1246 +1316 +1386 +1456 +1526 +1596 +1666 +1736 +1806 +1876 +1946 +2016 +2086 +2156 +2226 +2296 +2366 +2436 +2506 +2576 +2646 +2716 +2786 +2856 +2926 +2996 +3066 +3136 +3206 +3276 +3346 +3416 +3486 +57 +127 +197 +267 +337 +407 +477 +547 +617 +687 +757 +827 +897 +967 +1037 +1107 +1177 +1247 +1317 +1387 +1457 +1527 +1597 +1667 +1737 +1807 +1877 +1947 +2017 +2087 +2157 +2227 +2297 +2367 +2437 +2507 +2577 +2647 +2717 +2787 +2857 +2927 +2997 +3067 +3137 +3207 +3277 +3347 +3417 +3487 +58 +128 +198 +268 +338 +408 +478 +548 +618 +688 +758 +828 +898 +968 +1038 +1108 +1178 +1248 +1318 +1388 +1458 +1528 +1598 +1668 +1738 +1808 +1878 +1948 +2018 +2088 +2158 +2228 +2298 +2368 +2438 +2508 +2578 +2648 +2718 +2788 +2858 +2928 +2998 +3068 +3138 +3208 +3278 +3348 +3418 +3488 +59 +129 +199 +269 +339 +409 +479 +549 +619 +689 +759 +829 +899 +969 +1039 +1109 +1179 +1249 +1319 +1389 +1459 +1529 +1599 +1669 +1739 +1809 +1879 +1949 +2019 +2089 +2159 +2229 +2299 +2369 +2439 +2509 +2579 +2649 +2719 +2789 +2859 +2929 +2999 +3069 +3139 +3209 +3279 +3349 +3419 +3489 +60 +130 +200 +270 +340 +410 +480 +550 +620 +690 +760 +830 +900 +970 +1040 +1110 +1180 +1250 +1320 +1390 +1460 +1530 +1600 +1670 +1740 +1810 +1880 +1950 +2020 +2090 +2160 +2230 +2300 +2370 +2440 +2510 +2580 +2650 +2720 +2790 +2860 +2930 +3000 +3070 +3140 +3210 +3280 +3350 +3420 +3490 +61 +131 +201 +271 +341 +411 +481 +551 +621 +691 +761 +831 +901 +971 +1041 +1111 +1181 +1251 +1321 +1391 +1461 +1531 +1601 +1671 +1741 +1811 +1881 +1951 +2021 +2091 +2161 +2231 +2301 +2371 +2441 +2511 +2581 +2651 +2721 +2791 +2861 +2931 +3001 +3071 +3141 +3211 +3281 +3351 +3421 +3491 +62 +132 +202 +272 +342 +412 +482 +552 +622 +692 +762 +832 +902 +972 +1042 +1112 +1182 +1252 +1322 +1392 +1462 +1532 +1602 +1672 +1742 +1812 +1882 +1952 +2022 +2092 +2162 +2232 +2302 +2372 +2442 +2512 +2582 +2652 +2722 +2792 +2862 +2932 +3002 +3072 +3142 +3212 +3282 +3352 +3422 +3492 +63 +133 +203 +273 +343 +413 +483 +553 +623 +693 +763 +833 +903 +973 +1043 +1113 +1183 +1253 +1323 +1393 +1463 +1533 +1603 +1673 +1743 +1813 +1883 +1953 +2023 +2093 +2163 +2233 +2303 +2373 +2443 +2513 +2583 +2653 +2723 +2793 +2863 +2933 +3003 +3073 +3143 +3213 +3283 +3353 +3423 +3493 +64 +134 +204 +274 +344 +414 +484 +554 +624 +694 +764 +834 +904 +974 +1044 +1114 +1184 +1254 +1324 +1394 +1464 +1534 +1604 +1674 +1744 +1814 +1884 +1954 +2024 +2094 +2164 +2234 +2304 +2374 +2444 +2514 +2584 +2654 +2724 +2794 +2864 +2934 +3004 +3074 +3144 +3214 +3284 +3354 +3424 +3494 +65 +135 +205 +275 +345 +415 +485 +555 +625 +695 +765 +835 +905 +975 +1045 +1115 +1185 +1255 +1325 +1395 +1465 +1535 +1605 +1675 +1745 +1815 +1885 +1955 +2025 +2095 +2165 +2235 +2305 +2375 +2445 +2515 +2585 +2655 +2725 +2795 +2865 +2935 +3005 +3075 +3145 +3215 +3285 +3355 +3425 +3495 +66 +136 +206 +276 +346 +416 +486 +556 +626 +696 +766 +836 +906 +976 +1046 +1116 +1186 +1256 +1326 +1396 +1466 +1536 +1606 +1676 +1746 +1816 +1886 +1956 +2026 +2096 +2166 +2236 +2306 +2376 +2446 +2516 +2586 +2656 +2726 +2796 +2866 +2936 +3006 +3076 +3146 +3216 +3286 +3356 +3426 +3496 +67 +137 +207 +277 +347 +417 +487 +557 +627 +697 +767 +837 +907 +977 +1047 +1117 +1187 +1257 +1327 +1397 +1467 +1537 +1607 +1677 +1747 +1817 +1887 +1957 +2027 +2097 +2167 +2237 +2307 +2377 +2447 +2517 +2587 +2657 +2727 +2797 +2867 +2937 +3007 +3077 +3147 +3217 +3287 +3357 +3427 +3497 +68 +138 +208 +278 +348 +418 +488 +558 +628 +698 +768 +838 +908 +978 +1048 +1118 +1188 +1258 +1328 +1398 +1468 +1538 +1608 +1678 +1748 +1818 +1888 +1958 +2028 +2098 +2168 +2238 +2308 +2378 +2448 +2518 +2588 +2658 +2728 +2798 +2868 +2938 +3008 +3078 +3148 +3218 +3288 +3358 +3428 +3498 +69 +139 +209 +279 +349 +419 +489 +559 +629 +699 +769 +839 +909 +979 +1049 +1119 +1189 +1259 +1329 +1399 +1469 +1539 +1609 +1679 +1749 +1819 +1889 +1959 +2029 +2099 +2169 +2239 +2309 +2379 +2449 +2519 +2589 +2659 +2729 +2799 +2869 +2939 +3009 +3079 +3149 +3219 +3289 +3359 +3429 +3499 +0 +70 +140 +210 +280 +350 +420 +490 +560 +630 +700 +770 +840 +910 +980 +1050 +1120 +1190 +1260 +1330 +1400 +1470 +1540 +1610 +1680 +1750 +1820 +1890 +1960 +2030 +2100 +2170 +2240 +2310 +2380 +2450 +2520 +2590 +2660 +2730 +2800 +2870 +2940 +3010 +3080 +3150 +3220 +3290 +3360 +3430 +1 +71 +141 +211 +281 +351 +421 +491 +561 +631 +701 +771 +841 +911 +981 +1051 +1121 +1191 +1261 +1331 +1401 +1471 +1541 +1611 +1681 +1751 +1821 +1891 +1961 +2031 +2101 +2171 +2241 +2311 +2381 +2451 +2521 +2591 +2661 +2731 +2801 +2871 +2941 +3011 +3081 +3151 +3221 +3291 +3361 +3431 +2 +72 +142 +212 +282 +352 +422 +492 +562 +632 +702 +772 +842 +912 +982 +1052 +1122 +1192 +1262 +1332 +1402 +1472 +1542 +1612 +1682 +1752 +1822 +1892 +1962 +2032 +2102 +2172 +2242 +2312 +2382 +2452 +2522 +2592 +2662 +2732 +2802 +2872 +2942 +3012 +3082 +3152 +3222 +3292 +3362 +3432 +3 +73 +143 +213 +283 +353 +423 +493 +563 +633 +703 +773 +843 +913 +983 +1053 +1123 +1193 +1263 +1333 +1403 +1473 +1543 +1613 +1683 +1753 +1823 +1893 +1963 +2033 +2103 +2173 +2243 +2313 +2383 +2453 +2523 +2593 +2663 +2733 +2803 +2873 +2943 +3013 +3083 +3153 +3223 +3293 +3363 +3433 +4 +74 +144 +214 +284 +354 +424 +494 +564 +634 +704 +774 +844 +914 +984 +1054 +1124 +1194 +1264 +1334 +1404 +1474 +1544 +1614 +1684 +1754 +1824 +1894 +1964 +2034 +2104 +2174 +2244 +2314 +2384 +2454 +2524 +2594 +2664 +2734 +2804 +2874 +2944 +3014 +3084 +3154 +3224 +3294 +3364 +3434 +5 +75 +145 +215 +285 +355 +425 +495 +565 +635 +705 +775 +845 +915 +985 +1055 +1125 +1195 +1265 +1335 +1405 +1475 +1545 +1615 +1685 +1755 +1825 +1895 +1965 +2035 +2105 +2175 +2245 +2315 +2385 +2455 +2525 +2595 +2665 +2735 +2805 +2875 +2945 +3015 +3085 +3155 +3225 +3295 +3365 +3435 +6 +76 +146 +216 +286 +356 +426 +496 +566 +636 +706 +776 +846 +916 +986 +1056 +1126 +1196 +1266 +1336 +1406 +1476 +1546 +1616 +1686 +1756 +1826 +1896 +1966 +2036 +2106 +2176 +2246 +2316 +2386 +2456 +2526 +2596 +2666 +2736 +2806 +2876 +2946 +3016 +3086 +3156 +3226 +3296 +3366 +3436 +7 +77 +147 +217 +287 +357 +427 +497 +567 +637 +707 +777 +847 +917 +987 +1057 +1127 +1197 +1267 +1337 +1407 +1477 +1547 +1617 +1687 +1757 +1827 +1897 +1967 +2037 +2107 +2177 +2247 +2317 +2387 +2457 +2527 +2597 +2667 +2737 +2807 +2877 +2947 +3017 +3087 +3157 +3227 +3297 +3367 +3437 +8 +78 +148 +218 +288 +358 +428 +498 +568 +638 +708 +778 +848 +918 +988 +1058 +1128 +1198 +1268 +1338 +1408 +1478 +1548 +1618 +1688 +1758 +1828 +1898 +1968 +2038 +2108 +2178 +2248 +2318 +2388 +2458 +2528 +2598 +2668 +2738 +2808 +2878 +2948 +3018 +3088 +3158 +3228 +3298 +3368 +3438 +9 +79 +149 +219 +289 +359 +429 +499 +569 +639 +709 +779 +849 +919 +989 +1059 +1129 +1199 +1269 +1339 +1409 +1479 +1549 +1619 +1689 +1759 +1829 +1899 +1969 +2039 +2109 +2179 +2249 +2319 +2389 +2459 +2529 +2599 +2669 +2739 +2809 +2879 +2949 +3019 +3089 +3159 +3229 +3299 +3369 +3439 +10 +80 +150 +220 +290 +360 +430 +500 +570 +640 +710 +780 +850 +920 +990 +1060 +1130 +1200 +1270 +1340 +1410 +1480 +1550 +1620 +1690 +1760 +1830 +1900 +1970 +2040 +2110 +2180 +2250 +2320 +2390 +2460 +2530 +2600 +2670 +2740 +2810 +2880 +2950 +3020 +3090 +3160 +3230 +3300 +3370 +3440 +11 +81 +151 +221 +291 +361 +431 +501 +571 +641 +711 +781 +851 +921 +991 +1061 +1131 +1201 +1271 +1341 +1411 +1481 +1551 +1621 +1691 +1761 +1831 +1901 +1971 +2041 +2111 +2181 +2251 +2321 +2391 +2461 +2531 +2601 +2671 +2741 +2811 +2881 +2951 +3021 +3091 +3161 +3231 +3301 +3371 +3441 +12 +82 +152 +222 +292 +362 +432 +502 +572 +642 +712 +782 +852 +922 +992 +1062 +1132 +1202 +1272 +1342 +1412 +1482 +1552 +1622 +1692 +1762 +1832 +1902 +1972 +2042 +2112 +2182 +2252 +2322 +2392 +2462 +2532 +2602 +2672 +2742 +2812 +2882 +2952 +3022 +3092 +3162 +3232 +3302 +3372 +3442 +13 +83 +153 +223 +293 +363 +433 +503 +573 +643 +713 +783 +853 +923 +993 +1063 +1133 +1203 +1273 +1343 +1413 +1483 +1553 +1623 +1693 +1763 +1833 +1903 +1973 +2043 +2113 +2183 +2253 +2323 +2393 +2463 +2533 +2603 +2673 +2743 +2813 +2883 +2953 +3023 +3093 +3163 +3233 +3303 +3373 +3443 +14 +84 +154 +224 +294 +364 +434 +504 +574 +644 +714 +784 +854 +924 +994 +1064 +1134 +1204 +1274 +1344 +1414 +1484 +1554 +1624 +1694 +1764 +1834 +1904 +1974 +2044 +2114 +2184 +2254 +2324 +2394 +2464 +2534 +2604 +2674 +2744 +2814 +2884 +2954 +3024 +3094 +3164 +3234 +3304 +3374 +3444 +15 +85 +155 +225 +295 +365 +435 +505 +575 +645 +715 +785 +855 +925 +995 +1065 +1135 +1205 +1275 +1345 +1415 +1485 +1555 +1625 +1695 +1765 +1835 +1905 +1975 +2045 +2115 +2185 +2255 +2325 +2395 +2465 +2535 +2605 +2675 +2745 +2815 +2885 +2955 +3025 +3095 +3165 +3235 +3305 +3375 +3445 +16 +86 +156 +226 +296 +366 +436 +506 +576 +646 +716 +786 +856 +926 +996 +1066 +1136 +1206 +1276 +1346 +1416 +1486 +1556 +1626 +1696 +1766 +1836 +1906 +1976 +2046 +2116 +2186 +2256 +2326 +2396 +2466 +2536 +2606 +2676 +2746 +2816 +2886 +2956 +3026 +3096 +3166 +3236 +3306 +3376 +3446 +17 +87 +157 +227 +297 +367 +437 +507 +577 +647 +717 +787 +857 +927 +997 +1067 +1137 +1207 +1277 +1347 +1417 +1487 +1557 +1627 +1697 +1767 +1837 +1907 +1977 +2047 +2117 +2187 +2257 +2327 +2397 +2467 +2537 +2607 +2677 +2747 +2817 +2887 +2957 +3027 +3097 +3167 +3237 +3307 +3377 +3447 +18 +88 +158 +228 +298 +368 +438 +508 +578 +648 +718 +788 +858 +928 +998 +1068 +1138 +1208 +1278 +1348 +1418 +1488 +1558 +1628 +1698 +1768 +1838 +1908 +1978 +2048 +2118 +2188 +2258 +2328 +2398 +2468 +2538 +2608 +2678 +2748 +2818 +2888 +2958 +3028 +3098 +3168 +3238 +3308 +3378 +3448 +19 +89 +159 +229 +299 +369 +439 +509 +579 +649 +719 +789 +859 +929 +999 +1069 +1139 +1209 +1279 +1349 +1419 +1489 +1559 +1629 +1699 +1769 +1839 +1909 +1979 +2049 +2119 +2189 +2259 +2329 +2399 +2469 +2539 +2609 +2679 +2749 +2819 +2889 +2959 +3029 +3099 +3169 +3239 +3309 +3379 +3449 +20 +90 +160 +230 +300 +370 +440 +510 +580 +650 +720 +790 +860 +930 +1000 +1070 +1140 +1210 +1280 +1350 +1420 +1490 +1560 +1630 +1700 +1770 +1840 +1910 +1980 +2050 +2120 +2190 +2260 +2330 +2400 +2470 +2540 +2610 +2680 +2750 +2820 +2890 +2960 +3030 +3100 +3170 +3240 +3310 +3380 +3450 +21 +91 +161 +231 +301 +371 +441 +511 +581 +651 +721 +791 +861 +931 +1001 +1071 +1141 +1211 +1281 +1351 +1421 +1491 +1561 +1631 +1701 +1771 +1841 +1911 +1981 +2051 +2121 +2191 +2261 +2331 +2401 +2471 +2541 +2611 +2681 +2751 +2821 +2891 +2961 +3031 +3101 +3171 +3241 +3311 +3381 +3451 +22 +92 +162 +232 +302 +372 +442 +512 +582 +652 +722 +792 +862 +932 +1002 +1072 +1142 +1212 +1282 +1352 +1422 +1492 +1562 +1632 +1702 +1772 +1842 +1912 +1982 +2052 +2122 +2192 +2262 +2332 +2402 +2472 +2542 +2612 +2682 +2752 +2822 +2892 +2962 +3032 +3102 +3172 +3242 +3312 +3382 +3452 +23 +93 +163 +233 +303 +373 +443 +513 +583 +653 +723 +793 +863 +933 +1003 +1073 +1143 +1213 +1283 +1353 +1423 +1493 +1563 +1633 +1703 +1773 +1843 +1913 +1983 +2053 +2123 +2193 +2263 +2333 +2403 +2473 +2543 +2613 +2683 +2753 +2823 +2893 +2963 +3033 +3103 +3173 +3243 +3313 +3383 +3453 +24 +94 +164 +234 +304 +374 +444 +514 +584 +654 +724 +794 +864 +934 +1004 +1074 +1144 +1214 +1284 +1354 +1424 +1494 +1564 +1634 +1704 +1774 +1844 +1914 +1984 +2054 +2124 +2194 +2264 +2334 +2404 +2474 +2544 +2614 +2684 +2754 +2824 +2894 +2964 +3034 +3104 +3174 +3244 +3314 +3384 +3454 +25 +95 +165 +235 +305 +375 +445 +515 +585 +655 +725 +795 +865 +935 +1005 +1075 +1145 +1215 +1285 +1355 +1425 +1495 +1565 +1635 +1705 +1775 +1845 +1915 +1985 +2055 +2125 +2195 +2265 +2335 +2405 +2475 +2545 +2615 +2685 +2755 +2825 +2895 +2965 +3035 +3105 +3175 +3245 +3315 +3385 +3455 +26 +96 +166 +236 +306 +376 +446 +516 +586 +656 +726 +796 +866 +936 +1006 +1076 +1146 +1216 +1286 +1356 +1426 +1496 +1566 +1636 +1706 +1776 +1846 +1916 +1986 +2056 +2126 +2196 +2266 +2336 +2406 +2476 +2546 +2616 +2686 +2756 +2826 +2896 +2966 +3036 +3106 +3176 +3246 +3316 +3386 +3456 +27 +97 +167 +237 +307 +377 +447 +517 +587 +657 +727 +797 +867 +937 +1007 +1077 +1147 +1217 +1287 +1357 +1427 +1497 +1567 +1637 +1707 +1777 +1847 +1917 +1987 +2057 +2127 +2197 +2267 +2337 +2407 +2477 +2547 +2617 +2687 +2757 +2827 +2897 +2967 +3037 +3107 +3177 +3247 +3317 +3387 +3457 +28 +98 +168 +238 +308 +378 +448 +518 +588 +658 +728 +798 +868 +938 +1008 +1078 +1148 +1218 +1288 +1358 +1428 +1498 +1568 +1638 +1708 +1778 +1848 +1918 +1988 +2058 +2128 +2198 +2268 +2338 +2408 +2478 +2548 +2618 +2688 +2758 +2828 +2898 +2968 +3038 +3108 +3178 +3248 +3318 +3388 +3458 +29 +99 +169 +239 +309 +379 +449 +519 +589 +659 +729 +799 +869 +939 +1009 +1079 +1149 +1219 +1289 +1359 +1429 +1499 +1569 +1639 +1709 +1779 +1849 +1919 +1989 +2059 +2129 +2199 +2269 +2339 +2409 +2479 +2549 +2619 +2689 +2759 +2829 +2899 +2969 +3039 +3109 +3179 +3249 +3319 +3389 +3459 +30 +100 +170 +240 +310 +380 +450 +520 +590 +660 +730 +800 +870 +940 +1010 +1080 +1150 +1220 +1290 +1360 +1430 +1500 +1570 +1640 +1710 +1780 +1850 +1920 +1990 +2060 +2130 +2200 +2270 +2340 +2410 +2480 +2550 +2620 +2690 +2760 +2830 +2900 +2970 +3040 +3110 +3180 +3250 +3320 +3390 +3460 +31 +101 +171 +241 +311 +381 +451 +521 +591 +661 +731 +801 +871 +941 +1011 +1081 +1151 +1221 +1291 +1361 +1431 +1501 +1571 +1641 +1711 +1781 +1851 +1921 +1991 +2061 +2131 +2201 +2271 +2341 +2411 +2481 +2551 +2621 +2691 +2761 +2831 +2901 +2971 +3041 +3111 +3181 +3251 +3321 +3391 +3461 +32 +102 +172 +242 +312 +382 +452 +522 +592 +662 +732 +802 +872 +942 +1012 +1082 +1152 +1222 +1292 +1362 +1432 +1502 +1572 +1642 +1712 +1782 +1852 +1922 +1992 +2062 +2132 +2202 +2272 +2342 +2412 +2482 +2552 +2622 +2692 +2762 +2832 +2902 +2972 +3042 +3112 +3182 +3252 +3322 +3392 +3462 +33 +103 +173 +243 +313 +383 +453 +523 +593 +663 +733 +803 +873 +943 +1013 +1083 +1153 +1223 +1293 +1363 +1433 +1503 +1573 +1643 +1713 +1783 +1853 +1923 +1993 +2063 +2133 +2203 +2273 +2343 +2413 +2483 +2553 +2623 +2693 +2763 +2833 +2903 +2973 +3043 +3113 +3183 +3253 +3323 +3393 +3463 +34 +104 +174 +244 +314 +384 +454 +524 +594 +664 +734 +804 +874 +944 +1014 +1084 +1154 +1224 +1294 +1364 +1434 +1504 +1574 +1644 +1714 +1784 +1854 +1924 +1994 +2064 +2134 +2204 +2274 +2344 +2414 +2484 +2554 +2624 +2694 +2764 +2834 +2904 +2974 +3044 +3114 +3184 +3254 +3324 +3394 +3464 +35 +105 +175 +245 +315 +385 +455 +525 +595 +665 +735 +805 +875 +945 +1015 +1085 +1155 +1225 +1295 +1365 +1435 +1505 +1575 +1645 +1715 +1785 +1855 +1925 +1995 +2065 +2135 +2205 +2275 +2345 +2415 +2485 +2555 +2625 +2695 +2765 +2835 +2905 +2975 +3045 +3115 +3185 +3255 +3325 +3395 +3465 +36 +106 +176 +246 +316 +386 +456 +526 +596 +666 +736 +806 +876 +946 +1016 +1086 +1156 +1226 +1296 +1366 +1436 +1506 +1576 +1646 +1716 +1786 +1856 +1926 +1996 +2066 +2136 +2206 +2276 +2346 +2416 +2486 +2556 +2626 +2696 +2766 +2836 +2906 +2976 +3046 +3116 +3186 +3256 +3326 +3396 +3466 +37 +107 +177 +247 +317 +387 +457 +527 +597 +667 +737 +807 +877 +947 +1017 +1087 +1157 +1227 +1297 +1367 +1437 +1507 +1577 +1647 +1717 +1787 +1857 +1927 +1997 +2067 +2137 +2207 +2277 +2347 +2417 +2487 +2557 +2627 +2697 +2767 +2837 +2907 +2977 +3047 +3117 +3187 +3257 +3327 +3397 +3467 +38 +108 +178 +248 +318 +388 +458 +528 +598 +668 +738 +808 +878 +948 +1018 +1088 +1158 +1228 +1298 +1368 +1438 +1508 +1578 +1648 +1718 +1788 +1858 +1928 +1998 +2068 +2138 +2208 +2278 +2348 +2418 +2488 +2558 +2628 +2698 +2768 +2838 +2908 +2978 +3048 +3118 +3188 +3258 +3328 +3398 +3468 +39 +109 +179 +249 +319 +389 +459 +529 +599 +669 +739 +809 +879 +949 +1019 +1089 +1159 +1229 +1299 +1369 +1439 +1509 +1579 +1649 +1719 +1789 +1859 +1929 +1999 +2069 +2139 +2209 +2279 +2349 +2419 +2489 +2559 +2629 +2699 +2769 +2839 +2909 +2979 +3049 +3119 +3189 +3259 +3329 +3399 +3469 +40 +110 +180 +250 +320 +390 +460 +530 +600 +670 +740 +810 +880 +950 +1020 +1090 +1160 +1230 +1300 +1370 +1440 +1510 +1580 +1650 +1720 +1790 +1860 +1930 +2000 +2070 +2140 +2210 +2280 +2350 +2420 +2490 +2560 +2630 +2700 +2770 +2840 +2910 +2980 +3050 +3120 +3190 +3260 +3330 +3400 +3470 +41 +111 +181 +251 +321 +391 +461 +531 +601 +671 +741 +811 +881 +951 +1021 +1091 +1161 +1231 +1301 +1371 +1441 +1511 +1581 +1651 +1721 +1791 +1861 +1931 +2001 +2071 +2141 +2211 +2281 +2351 +2421 +2491 +2561 +2631 +2701 +2771 +2841 +2911 +2981 +3051 +3121 +3191 +3261 +3331 +3401 +3471 +42 +112 +182 +252 +322 +392 +462 +532 +602 +672 +742 +812 +882 +952 +1022 +1092 +1162 +1232 +1302 +1372 +1442 +1512 +1582 +1652 +1722 +1792 +1862 +1932 +2002 +2072 +2142 +2212 +2282 +2352 +2422 +2492 +2562 +2632 +2702 +2772 +2842 +2912 +2982 +3052 +3122 +3192 +3262 +3332 +3402 +3472 +43 +113 +183 +253 +323 +393 +463 +533 +603 +673 +743 +813 +883 +953 +1023 +1093 +1163 +1233 +1303 +1373 +1443 +1513 +1583 +1653 +1723 +1793 +1863 +1933 +2003 +2073 +2143 +2213 +2283 +2353 +2423 +2493 +2563 +2633 +2703 +2773 +2843 +2913 +2983 +3053 +3123 +3193 +3263 +3333 +3403 +3473 +44 +114 +184 +254 +324 +394 +464 +534 +604 +674 +744 +814 +884 +954 +1024 +1094 +1164 +1234 +1304 +1374 +1444 +1514 +1584 +1654 +1724 +1794 +1864 +1934 +2004 +2074 +2144 +2214 +2284 +2354 +2424 +2494 +2564 +2634 +2704 +2774 +2844 +2914 +2984 +3054 +3124 +3194 +3264 +3334 +3404 +3474 +45 +115 +185 +255 +325 +395 +465 +535 +605 +675 +745 +815 +885 +955 +1025 +1095 +1165 +1235 +1305 +1375 +1445 +1515 +1585 +1655 +1725 +1795 +1865 +1935 +2005 +2075 +2145 +2215 +2285 +2355 +2425 +2495 +2565 +2635 +2705 +2775 +2845 +2915 +2985 +3055 +3125 +3195 +3265 +3335 +3405 +3475 +46 +116 +186 +256 +326 +396 +466 +536 +606 +676 +746 +816 +886 +956 +1026 +1096 +1166 +1236 +1306 +1376 +1446 +1516 +1586 +1656 +1726 +1796 +1866 +1936 +2006 +2076 +2146 +2216 +2286 +2356 +2426 +2496 +2566 +2636 +2706 +2776 +2846 +2916 +2986 +3056 +3126 +3196 +3266 +3336 +3406 +3476 +47 +117 +187 +257 +327 +397 +467 +537 +607 +677 +747 +817 +887 +957 +1027 +1097 +1167 +1237 +1307 +1377 +1447 +1517 +1587 +1657 +1727 +1797 +1867 +1937 +2007 +2077 +2147 +2217 +2287 +2357 +2427 +2497 +2567 +2637 +2707 +2777 +2847 +2917 +2987 +3057 +3127 +3197 +3267 +3337 +3407 +3477 +48 +118 +188 +258 +328 +398 +468 +538 +608 +678 +748 +818 +888 +958 +1028 +1098 +1168 +1238 +1308 +1378 +1448 +1518 +1588 +1658 +1728 +1798 +1868 +1938 +2008 +2078 +2148 +2218 +2288 +2358 +2428 +2498 +2568 +2638 +2708 +2778 +2848 +2918 +2988 +3058 +3128 +3198 +3268 +3338 +3408 +3478 +49 +119 +189 +259 +329 +399 +469 +539 +609 +679 +749 +819 +889 +959 +1029 +1099 +1169 +1239 +1309 +1379 +1449 +1519 +1589 +1659 +1729 +1799 +1869 +1939 +2009 +2079 +2149 +2219 +2289 +2359 +2429 +2499 +2569 +2639 +2709 +2779 +2849 +2919 +2989 +3059 +3129 +3199 +3269 +3339 +3409 +3479 +50 +120 +190 +260 +330 +400 +470 +540 +610 +680 +750 +820 +890 +960 +1030 +1100 +1170 +1240 +1310 +1380 +1450 +1520 +1590 +1660 +1730 +1800 +1870 +1940 +2010 +2080 +2150 +2220 +2290 +2360 +2430 +2500 +2570 +2640 +2710 +2780 +2850 +2920 +2990 +3060 +3130 +3200 +3270 +3340 +3410 +3480 +51 +121 +191 +261 +331 +401 +471 +541 +611 +681 +751 +821 +891 +961 +1031 +1101 +1171 +1241 +1311 +1381 +1451 +1521 +1591 +1661 +1731 +1801 +1871 +1941 +2011 +2081 +2151 +2221 +2291 +2361 +2431 +2501 +2571 +2641 +2711 +2781 +2851 +2921 +2991 +3061 +3131 +3201 +3271 +3341 +3411 +3481 +52 +122 +192 +262 +332 +402 +472 +542 +612 +682 +752 +822 +892 +962 +1032 +1102 +1172 +1242 +1312 +1382 +1452 +1522 +1592 +1662 +1732 +1802 +1872 +1942 +2012 +2082 +2152 +2222 +2292 +2362 +2432 +2502 +2572 +2642 +2712 +2782 +2852 +2922 +2992 +3062 +3132 +3202 +3272 +3342 +3412 +3482 +53 +123 +193 +263 +333 +403 +473 +543 +613 +683 +753 +823 +893 +963 +1033 +1103 +1173 +1243 +1313 +1383 +1453 +1523 +1593 +1663 +1733 +1803 +1873 +1943 +2013 +2083 +2153 +2223 +2293 +2363 +2433 +2503 +2573 +2643 +2713 +2783 +2853 +2923 +2993 +3063 +3133 +3203 +3273 +3343 +3413 +3483 +54 +124 +194 +264 +334 +404 +474 +544 +614 +684 +754 +824 +894 +964 +1034 +1104 +1174 +1244 +1314 +1384 +1454 +1524 +1594 +1664 +1734 +1804 +1874 +1944 +2014 +2084 +2154 +2224 +2294 +2364 +2434 +2504 +2574 +2644 +2714 +2784 +2854 +2924 +2994 +3064 +3134 +3204 +3274 +3344 +3414 +3484 +55 +125 +195 +265 +335 +405 +475 +545 +615 +685 +755 +825 +895 +965 +1035 +1105 +1175 +1245 +1315 +1385 +1455 +1525 +1595 +1665 +1735 +1805 +1875 +1945 +2015 +2085 +2155 +2225 +2295 +2365 +2435 +2505 +2575 +2645 +2715 +2785 +2855 +2925 +2995 +3065 +3135 +3205 +3275 +3345 +3415 +3485 +56 +126 +196 +266 +336 +406 +476 +546 +616 +686 +756 +826 +896 +966 +1036 +1106 +1176 +1246 +1316 +1386 +1456 +1526 +1596 +1666 +1736 +1806 +1876 +1946 +2016 +2086 +2156 +2226 +2296 +2366 +2436 +2506 +2576 +2646 +2716 +2786 +2856 +2926 +2996 +3066 +3136 +3206 +3276 +3346 +3416 +3486 +57 +127 +197 +267 +337 +407 +477 +547 +617 +687 +757 +827 +897 +967 +1037 +1107 +1177 +1247 +1317 +1387 +1457 +1527 +1597 +1667 +1737 +1807 +1877 +1947 +2017 +2087 +2157 +2227 +2297 +2367 +2437 +2507 +2577 +2647 +2717 +2787 +2857 +2927 +2997 +3067 +3137 +3207 +3277 +3347 +3417 +3487 +58 +128 +198 +268 +338 +408 +478 +548 +618 +688 +758 +828 +898 +968 +1038 +1108 +1178 +1248 +1318 +1388 +1458 +1528 +1598 +1668 +1738 +1808 +1878 +1948 +2018 +2088 +2158 +2228 +2298 +2368 +2438 +2508 +2578 +2648 +2718 +2788 +2858 +2928 +2998 +3068 +3138 +3208 +3278 +3348 +3418 +3488 +59 +129 +199 +269 +339 +409 +479 +549 +619 +689 +759 +829 +899 +969 +1039 +1109 +1179 +1249 +1319 +1389 +1459 +1529 +1599 +1669 +1739 +1809 +1879 +1949 +2019 +2089 +2159 +2229 +2299 +2369 +2439 +2509 +2579 +2649 +2719 +2789 +2859 +2929 +2999 +3069 +3139 +3209 +3279 +3349 +3419 +3489 +60 +130 +200 +270 +340 +410 +480 +550 +620 +690 +760 +830 +900 +970 +1040 +1110 +1180 +1250 +1320 +1390 +1460 +1530 +1600 +1670 +1740 +1810 +1880 +1950 +2020 +2090 +2160 +2230 +2300 +2370 +2440 +2510 +2580 +2650 +2720 +2790 +2860 +2930 +3000 +3070 +3140 +3210 +3280 +3350 +3420 +3490 +61 +131 +201 +271 +341 +411 +481 +551 +621 +691 +761 +831 +901 +971 +1041 +1111 +1181 +1251 +1321 +1391 +1461 +1531 +1601 +1671 +1741 +1811 +1881 +1951 +2021 +2091 +2161 +2231 +2301 +2371 +2441 +2511 +2581 +2651 +2721 +2791 +2861 +2931 +3001 +3071 +3141 +3211 +3281 +3351 +3421 +3491 +62 +132 +202 +272 +342 +412 +482 +552 +622 +692 +762 +832 +902 +972 +1042 +1112 +1182 +1252 +1322 +1392 +1462 +1532 +1602 +1672 +1742 +1812 +1882 +1952 +2022 +2092 +2162 +2232 +2302 +2372 +2442 +2512 +2582 +2652 +2722 +2792 +2862 +2932 +3002 +3072 +3142 +3212 +3282 +3352 +3422 +3492 +63 +133 +203 +273 +343 +413 +483 +553 +623 +693 +763 +833 +903 +973 +1043 +1113 +1183 +1253 +1323 +1393 +1463 +1533 +1603 +1673 +1743 +1813 +1883 +1953 +2023 +2093 +2163 +2233 +2303 +2373 +2443 +2513 +2583 +2653 +2723 +2793 +2863 +2933 +3003 +3073 +3143 +3213 +3283 +3353 +3423 +3493 +64 +134 +204 +274 +344 +414 +484 +554 +624 +694 +764 +834 +904 +974 +1044 +1114 +1184 +1254 +1324 +1394 +1464 +1534 +1604 +1674 +1744 +1814 +1884 +1954 +2024 +2094 +2164 +2234 +2304 +2374 +2444 +2514 +2584 +2654 +2724 +2794 +2864 +2934 +3004 +3074 +3144 +3214 +3284 +3354 +3424 +3494 +65 +135 +205 +275 +345 +415 +485 +555 +625 +695 +765 +835 +905 +975 +1045 +1115 +1185 +1255 +1325 +1395 +1465 +1535 +1605 +1675 +1745 +1815 +1885 +1955 +2025 +2095 +2165 +2235 +2305 +2375 +2445 +2515 +2585 +2655 +2725 +2795 +2865 +2935 +3005 +3075 +3145 +3215 +3285 +3355 +3425 +3495 +66 +136 +206 +276 +346 +416 +486 +556 +626 +696 +766 +836 +906 +976 +1046 +1116 +1186 +1256 +1326 +1396 +1466 +1536 +1606 +1676 +1746 +1816 +1886 +1956 +2026 +2096 +2166 +2236 +2306 +2376 +2446 +2516 +2586 +2656 +2726 +2796 +2866 +2936 +3006 +3076 +3146 +3216 +3286 +3356 +3426 +3496 +67 +137 +207 +277 +347 +417 +487 +557 +627 +697 +767 +837 +907 +977 +1047 +1117 +1187 +1257 +1327 +1397 +1467 +1537 +1607 +1677 +1747 +1817 +1887 +1957 +2027 +2097 +2167 +2237 +2307 +2377 +2447 +2517 +2587 +2657 +2727 +2797 +2867 +2937 +3007 +3077 +3147 +3217 +3287 +3357 +3427 +3497 +68 +138 +208 +278 +348 +418 +488 +558 +628 +698 +768 +838 +908 +978 +1048 +1118 +1188 +1258 +1328 +1398 +1468 +1538 +1608 +1678 +1748 +1818 +1888 +1958 +2028 +2098 +2168 +2238 +2308 +2378 +2448 +2518 +2588 +2658 +2728 +2798 +2868 +2938 +3008 +3078 +3148 +3218 +3288 +3358 +3428 +3498 +69 +139 +209 +279 +349 +419 +489 +559 +629 +699 +769 +839 +909 +979 +1049 +1119 +1189 +1259 +1329 +1399 +1469 +1539 +1609 +1679 +1749 +1819 +1889 +1959 +2029 +2099 +2169 +2239 +2309 +2379 +2449 +2519 +2589 +2659 +2729 +2799 +2869 +2939 +3009 +3079 +3149 +3219 +3289 +3359 +3429 +3499 +) + + +// ************************************************************************* // diff --git a/PeriodicHill/constant/polyMesh/pointZones b/PeriodicHill/constant/polyMesh/pointZones new file mode 100644 index 00000000..a4559194 --- /dev/null +++ b/PeriodicHill/constant/polyMesh/pointZones @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class regIOobject; + location "constant/polyMesh"; + object pointZones; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +0() + +// ************************************************************************* // diff --git a/PeriodicHill/constant/polyMesh/points b/PeriodicHill/constant/polyMesh/points new file mode 100644 index 00000000..9cd8b731 --- /dev/null +++ b/PeriodicHill/constant/polyMesh/points @@ -0,0 +1,7266 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class vectorField; + location "constant/polyMesh"; + object points; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +7242 +( +(0 1 0) +(0.1372577479 0.9992665507 0) +(0.2729204722 0.9802710121 0) +(0.3985866321 0.9261103225 0) +(0.5115642636 0.8482902379 0) +(0.6177377232 0.7612948461 0) +(0.7220159629 0.6720143639 0) +(0.8277453689 0.5844679179 0) +(0.9350471886 0.4988529475 0) +(1.0433608 0.4145202496 0) +(1.152259884 0.3309444311 0) +(1.262819195 0.2495851497 0) +(1.377015043 0.1734434155 0) +(1.496926096 0.1067348369 0) +(1.623407117 0.05359487214 0) +(1.755676014 0.01728672395 0) +(1.891816441 0.0007851267468 0) +(2.029078991 0 0) +(2.166352211 0 0) +(2.303625815 0 0) +(2.440899175 0 0) +(2.57817234 0 0) +(2.715445856 0 0) +(2.852719475 0 0) +(2.989992637 0 0) +(3.127266048 0 0) +(3.264539505 0 0) +(3.401813297 0 0) +(3.539086298 0 0) +(3.676359882 0 0) +(3.813635943 0 0) +(3.950907179 0 0) +(4.088181868 0 0) +(4.225453136 0 0) +(4.362726082 0 0) +(4.500000414 0 0) +(4.63727475 0 0) +(4.774547693 0 0) +(4.911818964 0 0) +(5.049093654 0 0) +(5.186364886 0 0) +(5.323640946 0 0) +(5.460914368 0 0) +(5.598190368 0 0) +(5.735462336 0 0) +(5.872732929 0 0) +(6.010006682 0 0) +(6.147280064 0 0) +(6.2845549 0 0) +(6.421828786 0 0) +(6.559102675 0 0) +(6.696373657 0 0) +(6.833646207 0 0) +(6.970922011 0 0) +(7.108184396 0.0007851658393 0) +(7.244325104 0.01728574934 0) +(7.376596107 0.053592208 0) +(7.503074168 0.106736084 0) +(7.622981161 0.1734484452 0) +(7.737184979 0.2495825239 0) +(7.847745718 0.3309401793 0) +(7.956645329 0.4145164179 0) +(8.06495525 0.4988505571 0) +(8.172257368 0.5844651546 0) +(8.277988239 0.6720106 0) +(8.382269707 0.7612895482 0) +(8.488442993 0.8482846311 0) +(8.601416111 0.9261077889 0) +(8.727076129 0.980274225 0) +(8.862742229 0.9992667886 0) +(9 1 0) +(0 1.001791927 0) +(0.1372501019 1.001059123 0) +(0.272906584 0.982080305 0) +(0.3985753014 0.92796729 0) +(0.5115666593 0.8502157061 0) +(0.6177598343 0.7632968918 0) +(0.7220594579 0.6740949982 0) +(0.8278089707 0.5866256143 0) +(0.9351295125 0.5010860061 0) +(1.043460956 0.4168275418 0) +(1.152377357 0.3333252903 0) +(1.262952523 0.252037625 0) +(1.377161024 0.1759629142 0) +(1.497079701 0.1093130554 0) +(1.623562562 0.05621986682 0) +(1.755828204 0.01994367867 0) +(1.891961969 0.003456606901 0) +(2.029216869 0.002672171259 0) +(2.166482429 0.002672171259 0) +(2.303748373 0.002672171259 0) +(2.441014073 0.002672171259 0) +(2.578279578 0.002672171259 0) +(2.715545434 0.002672171259 0) +(2.852811393 0.002672171259 0) +(2.990076896 0.002672171259 0) +(3.127342647 0.002672171259 0) +(3.264608444 0.002672171259 0) +(3.401874576 0.002672171259 0) +(3.539139917 0.002672171259 0) +(3.676405843 0.002672171259 0) +(3.813674239 0.002672171259 0) +(3.950937818 0.002672171259 0) +(4.088204846 0.002672171259 0) +(4.225468454 0.002672171259 0) +(4.362733743 0.002672171259 0) +(4.500000414 0.002672171259 0) +(4.637267089 0.002672171259 0) +(4.774532371 0.002672171259 0) +(4.911795986 0.002672171259 0) +(5.049063014 0.002672171259 0) +(5.186326589 0.002672171259 0) +(5.323594986 0.002672171259 0) +(5.46086075 0.002672171259 0) +(5.598129086 0.002672171259 0) +(5.735393396 0.002672171259 0) +(5.872656332 0.002672171259 0) +(6.009922425 0.002672171259 0) +(6.147188146 0.002672171259 0) +(6.284455321 0.002672171259 0) +(6.421721546 0.002672171259 0) +(6.558987775 0.002672171259 0) +(6.6962511 0.002672171259 0) +(6.833515989 0.002672171259 0) +(6.970784132 0.002672171259 0) +(7.108038868 0.00345664596 0) +(7.244172911 0.0199427049 0) +(7.376440657 0.056217205 0) +(7.502920564 0.1093143014 0) +(7.622835182 0.1759679394 0) +(7.73705165 0.2520350014 0) +(7.847628243 0.3333210422 0) +(7.956545168 0.4168237132 0) +(8.064872921 0.5010836179 0) +(8.172193764 0.5866228536 0) +(8.277944739 0.6740912375 0) +(8.382247589 0.7632915986 0) +(8.488440589 0.8502101043 0) +(8.601427439 0.9279647589 0) +(8.727090021 0.982083515 0) +(8.862749875 1.001059361 0) +(9 1.001791927 0) +(0 1.003962895 0) +(0.1372408384 1.003230874 0) +(0.2728897581 0.9842723136 0) +(0.3985615739 0.9302170579 0) +(0.5115695614 0.8525484643 0) +(0.6177866229 0.7657224254 0) +(0.7221121536 0.6766157439 0) +(0.8278860261 0.5892397236 0) +(0.9352292507 0.5037914186 0) +(1.043582298 0.41962289 0) +(1.152519678 0.336209767 0) +(1.263114053 0.2550088666 0) +(1.377337885 0.1790153564 0) +(1.497265798 0.1124366384 0) +(1.623750888 0.05940012046 0) +(1.756012586 0.02316265279 0) +(1.89213828 0.006693179 0) +(2.029383911 0.005909580646 0) +(2.166640191 0.005909580646 0) +(2.303896855 0.005909580646 0) +(2.441153275 0.005909580646 0) +(2.5784095 0.005909580646 0) +(2.715666076 0.005909580646 0) +(2.852922755 0.005909580646 0) +(2.990178977 0.005909580646 0) +(3.127435448 0.005909580646 0) +(3.264691965 0.005909580646 0) +(3.401948816 0.005909580646 0) +(3.539204878 0.005909580646 0) +(3.676461521 0.005909580646 0) +(3.813720636 0.005909580646 0) +(3.950974936 0.005909580646 0) +(4.088232682 0.005909580646 0) +(4.225487014 0.005909580646 0) +(4.362743021 0.005909580646 0) +(4.500000414 0.005909580646 0) +(4.637257807 0.005909580646 0) +(4.774513811 0.005909580646 0) +(4.911768146 0.005909580646 0) +(5.049025893 0.005909580646 0) +(5.186280193 0.005909580646 0) +(5.323539307 0.005909580646 0) +(5.460795789 0.005909580646 0) +(5.598054839 0.005909580646 0) +(5.735309875 0.005909580646 0) +(5.872563529 0.005909580646 0) +(6.009820343 0.005909580646 0) +(6.147076786 0.005909580646 0) +(6.284334679 0.005909580646 0) +(6.421591625 0.005909580646 0) +(6.558848571 0.005909580646 0) +(6.696102621 0.005909580646 0) +(6.833358229 0.005909580646 0) +(6.970617089 0.005909580646 0) +(7.107862557 0.006693218014 0) +(7.243988529 0.02316168006 0) +(7.376252329 0.05939746146 0) +(7.502734468 0.1124378831 0) +(7.622658329 0.1790203763 0) +(7.736890114 0.2550062459 0) +(7.847485914 0.3362055235 0) +(7.956423821 0.4196190654 0) +(8.064773182 0.5037890325 0) +(8.172116707 0.5892369657 0) +(8.277892039 0.6766119875 0) +(8.382220793 0.7657171375 0) +(8.488437682 0.8525428686 0) +(8.601441164 0.9302145289 0) +(8.72710685 0.98427552 0) +(8.862759139 1.003231111 0) +(9 1.003962895 0) +(0 1.006593084 0) +(0.1372296155 1.00586201 0) +(0.2728693731 0.9869279921 0) +(0.3985449425 0.9329427132 0) +(0.5115730779 0.8553746654 0) +(0.6178190779 0.7686610261 0) +(0.7221759957 0.6796696975 0) +(0.8279793804 0.5924067886 0) +(0.9353500861 0.5070691004 0) +(1.043729307 0.4230095314 0) +(1.152692104 0.3397043904 0) +(1.263309751 0.258608608 0) +(1.377552156 0.1827134746 0) +(1.497491259 0.1162209456 0) +(1.62397905 0.06325308568 0) +(1.756235971 0.02706252897 0) +(1.892351885 0.01061437561 0) +(2.029586288 0.009831791664 0) +(2.166831325 0.009831791664 0) +(2.304076745 0.009831791664 0) +(2.441321922 0.009831791664 0) +(2.578566904 0.009831791664 0) +(2.715812237 0.009831791664 0) +(2.853057672 0.009831791664 0) +(2.990302651 0.009831791664 0) +(3.12754788 0.009831791664 0) +(3.264793153 0.009831791664 0) +(3.402038761 0.009831791664 0) +(3.53928358 0.009831791664 0) +(3.676528982 0.009831791664 0) +(3.81377685 0.009831791664 0) +(3.951019907 0.009831791664 0) +(4.088266411 0.009831791664 0) +(4.225509504 0.009831791664 0) +(4.362754264 0.009831791664 0) +(4.500000414 0.009831791664 0) +(4.637246561 0.009831791664 0) +(4.774491325 0.009831791664 0) +(4.911734418 0.009831791664 0) +(5.048980921 0.009831791664 0) +(5.186223979 0.009831791664 0) +(5.323471846 0.009831791664 0) +(5.460717086 0.009831791664 0) +(5.597964893 0.009831791664 0) +(5.735208682 0.009831791664 0) +(5.8724511 0.009831791664 0) +(6.009696668 0.009831791664 0) +(6.146941868 0.009831791664 0) +(6.284188518 0.009831791664 0) +(6.421434218 0.009831791664 0) +(6.558679925 0.009831791664 0) +(6.695922732 0.009831791664 0) +(6.833167096 0.009831791664 0) +(6.970414711 0.009831791664 0) +(7.10764895 0.01061441458 0) +(7.243765143 0.0270615575 0) +(7.376024164 0.06325043014 0) +(7.502509004 0.1162221887 0) +(7.622444061 0.182718488 0) +(7.736694411 0.2586059906 0) +(7.847313482 0.3397001524 0) +(7.956276804 0.4230057118 0) +(8.064652343 0.5070667175 0) +(8.17202335 0.5924040346 0) +(8.277828193 0.6796659457 0) +(8.382188329 0.7686557454 0) +(8.488434157 0.8553690768 0) +(8.601457789 0.9329401882 0) +(8.727127239 0.9869311946 0) +(8.862770361 1.005862247 0) +(9 1.006593084 0) +(0 1.00977963 0) +(0.1372160186 1.009049704 0) +(0.2728446761 0.9901454207 0) +(0.3985247932 0.9362449207 0) +(0.5115773375 0.8587986861 0) +(0.6178583975 0.7722212225 0) +(0.7222533425 0.6833696464 0) +(0.8280924821 0.5962437761 0) +(0.9354964814 0.5110401025 0) +(1.043907412 0.4271125414 0) +(1.152901003 0.3439382233 0) +(1.263546845 0.2629697943 0) +(1.377811753 0.1871938472 0) +(1.497764411 0.1208057385 0) +(1.624255475 0.06792105964 0) +(1.756506608 0.03178733683 0) +(1.892610674 0.01536501377 0) +(2.029831472 0.01458365879 0) +(2.167062888 0.01458365879 0) +(2.304294687 0.01458365879 0) +(2.441526242 0.01458365879 0) +(2.578757604 0.01458365879 0) +(2.715989315 0.01458365879 0) +(2.853221128 0.01458365879 0) +(2.990452487 0.01458365879 0) +(3.127684093 0.01458365879 0) +(3.264915745 0.01458365879 0) +(3.402147731 0.01458365879 0) +(3.539378929 0.01458365879 0) +(3.676610711 0.01458365879 0) +(3.81384495 0.01458365879 0) +(3.951074393 0.01458365879 0) +(4.088307271 0.01458365879 0) +(4.225536746 0.01458365879 0) +(4.362767889 0.01458365879 0) +(4.500000414 0.01458365879 0) +(4.637232939 0.01458365879 0) +(4.774464079 0.01458365879 0) +(4.911693554 0.01458365879 0) +(5.048926436 0.01458365879 0) +(5.186155875 0.01458365879 0) +(5.323390118 0.01458365879 0) +(5.460621736 0.01458365879 0) +(5.597855914 0.01458365879 0) +(5.735086089 0.01458365879 0) +(5.872314889 0.01458365879 0) +(6.009546836 0.01458365879 0) +(6.146778414 0.01458365879 0) +(6.284011439 0.01458365879 0) +(6.421243518 0.01458365879 0) +(6.5584756 0.01458365879 0) +(6.695704789 0.01458365879 0) +(6.832935536 0.01458365879 0) +(6.970169525 0.01458365879 0) +(7.107390161 0.01536505267 0) +(7.243494504 0.03178636689 0) +(7.375747732 0.06791840825 0) +(7.502235854 0.1208069796 0) +(7.622184471 0.1871988527 0) +(7.736457311 0.262967181 0) +(7.847104575 0.3439339919 0) +(7.956098689 0.4271087279 0) +(8.064505943 0.5110377236 0) +(8.171910243 0.5962410261 0) +(8.277750839 0.6833659004 0) +(8.382148996 0.77221595 0) +(8.488429886 0.8587931061 0) +(8.601477936 0.9362423993 0) +(8.727151939 0.9901486182 0) +(8.862783961 1.009049941 0) +(9 1.00977963 0) +(0 1.013640219 0) +(0.1371995456 1.012911684 0) +(0.272814755 0.9940434243 0) +(0.3985003818 0.9402456361 0) +(0.5115824986 0.8629469818 0) +(0.617906035 0.7765344989 0) +(0.72234705 0.6878522368 0) +(0.8282295082 0.6008923921 0) +(0.9356738436 0.5158510814 0) +(1.044123192 0.4320834514 0) +(1.15315409 0.3490676289 0) +(1.26383409 0.268253492 0) +(1.378126261 0.1926219424 0) +(1.498095343 0.1263603418 0) +(1.62459037 0.07357643921 0) +(1.756834492 0.03751157221 0) +(1.892924204 0.02112054329 0) +(2.03012852 0.02034067725 0) +(2.167343434 0.02034067725 0) +(2.304558729 0.02034067725 0) +(2.441773782 0.02034067725 0) +(2.578988641 0.02034067725 0) +(2.716203849 0.02034067725 0) +(2.85341916 0.02034067725 0) +(2.990634016 0.02034067725 0) +(3.12784912 0.02034067725 0) +(3.265064269 0.02034067725 0) +(3.402279751 0.02034067725 0) +(3.539494448 0.02034067725 0) +(3.676709725 0.02034067725 0) +(3.813927461 0.02034067725 0) +(3.9511404 0.02034067725 0) +(4.088356775 0.02034067725 0) +(4.22556975 0.02034067725 0) +(4.362784393 0.02034067725 0) +(4.500000411 0.02034067725 0) +(4.637216432 0.02034067725 0) +(4.774431071 0.02034067725 0) +(4.91164405 0.02034067725 0) +(5.048860425 0.02034067725 0) +(5.186073364 0.02034067725 0) +(5.3232911 0.02034067725 0) +(5.460506214 0.02034067725 0) +(5.597723889 0.02034067725 0) +(5.734937561 0.02034067725 0) +(5.872149864 0.02034067725 0) +(6.009365307 0.02034067725 0) +(6.146580382 0.02034067725 0) +(6.283796904 0.02034067725 0) +(6.421012479 0.02034067725 0) +(6.558228057 0.02034067725 0) +(6.69544075 0.02034067725 0) +(6.832654993 0.02034067725 0) +(6.969872475 0.02034067725 0) +(7.107076629 0.02112058212 0) +(7.243166618 0.03751060414 0) +(7.375412832 0.07357379286 0) +(7.501904921 0.1263615806 0) +(7.621869968 0.1926269384 0) +(7.736170057 0.2682508838 0) +(7.846851475 0.3490634056 0) +(7.955882896 0.432079645 0) +(8.064328579 0.5158487068 0) +(8.171773211 0.6008896475 0) +(8.277657125 0.6878484982 0) +(8.382101343 0.7765292364 0) +(8.488424711 0.8629414125 0) +(8.601502343 0.9402431196 0) +(8.727181868 0.9940466154 0) +(8.862800432 1.01291192 0) +(9 1.013640219 0) +(0 1.018317429 0) +(0.1371795881 1.017590579 0) +(0.2727785047 0.9987659632 0) +(0.3984708064 0.9450926136 0) +(0.5115887514 0.8679727568 0) +(0.6179637486 0.7817601525 0) +(0.7224605793 0.6932830193 0) +(0.8283955186 0.6065243193 0) +(0.9358887229 0.5216797154 0) +(1.044384615 0.4381058464 0) +(1.153460712 0.3552820457 0) +(1.264182096 0.274654838 0) +(1.378507296 0.1991982299 0) +(1.498496275 0.1330898974 0) +(1.624996106 0.08042808796 0) +(1.757231733 0.04444664175 0) +(1.893304054 0.02809352649 0) +(2.030488401 0.02731546434 0) +(2.167683323 0.02731546434 0) +(2.304878624 0.02731546434 0) +(2.442073684 0.02731546434 0) +(2.57926855 0.02731546434 0) +(2.716463764 0.02731546434 0) +(2.85365908 0.02731546434 0) +(2.990853944 0.02731546434 0) +(3.128049054 0.02731546434 0) +(3.26524421 0.02731546434 0) +(3.402439698 0.02731546434 0) +(3.539634402 0.02731546434 0) +(3.676829686 0.02731546434 0) +(3.814027421 0.02731546434 0) +(3.951220371 0.02731546434 0) +(4.08841675 0.02731546434 0) +(4.225609736 0.02731546434 0) +(4.362804386 0.02731546434 0) +(4.500000411 0.02731546434 0) +(4.637196436 0.02731546434 0) +(4.774391086 0.02731546434 0) +(4.911584071 0.02731546434 0) +(5.04878045 0.02731546434 0) +(5.185973404 0.02731546434 0) +(5.323171139 0.02731546434 0) +(5.460366261 0.02731546434 0) +(5.597563932 0.02731546434 0) +(5.734757614 0.02731546434 0) +(5.871949932 0.02731546434 0) +(6.009145382 0.02731546434 0) +(6.146340464 0.02731546434 0) +(6.283536986 0.02731546434 0) +(6.420732568 0.02731546434 0) +(6.55792815 0.02731546434 0) +(6.695120854 0.02731546434 0) +(6.832315111 0.02731546434 0) +(6.969512589 0.02731546434 0) +(7.106696775 0.02809356523 0) +(7.242769375 0.04444567589 0) +(7.375007089 0.08042544775 0) +(7.501503986 0.1330911333 0) +(7.621488943 0.1992032143 0) +(7.735822043 0.2746522359 0) +(7.846544843 0.3552778322 0) +(7.955621461 0.4381020486 0) +(8.064113693 0.5216773464 0) +(8.171607196 0.6065215811 0) +(8.277543586 0.6932792893 0) +(8.382043614 0.7817549025 0) +(8.488418439 0.8679672004 0) +(8.601531911 0.9450901029 0) +(8.727218125 0.9987691471 0) +(8.862820389 1.017590815 0) +(9 1.018317429 0) +(0 1.023983999 0) +(0.1371554091 1.02325919 0) +(0.2727345864 1.00448745 0) +(0.3984349754 0.9509648607 0) +(0.5115963268 0.8740616221 0) +(0.6180336704 0.7880911764 0) +(0.7225981232 0.6998625625 0) +(0.828596645 0.6133475546 0) +(0.936149055 0.5287412668 0) +(1.044701336 0.4454021443 0) +(1.153832193 0.3628109836 0) +(1.264603715 0.2824102458 0) +(1.37896893 0.2071655841 0) +(1.498982017 0.1412429402 0) +(1.625487666 0.08872904993 0) +(1.757713 0.05284867029 0) +(1.893764254 0.0365414885 0) +(2.030924408 0.03576561182 0) +(2.168095107 0.03576561182 0) +(2.305266185 0.03576561182 0) +(2.442437022 0.03576561182 0) +(2.579607666 0.03576561182 0) +(2.716778658 0.03576561182 0) +(2.853949751 0.03576561182 0) +(2.991120393 0.03576561182 0) +(3.12829128 0.03576561182 0) +(3.265462214 0.03576561182 0) +(3.402633478 0.03576561182 0) +(3.53980396 0.03576561182 0) +(3.676975021 0.03576561182 0) +(3.814148525 0.03576561182 0) +(3.951317261 0.03576561182 0) +(4.088489414 0.03576561182 0) +(4.225658182 0.03576561182 0) +(4.362828611 0.03576561182 0) +(4.500000411 0.03576561182 0) +(4.637172211 0.03576561182 0) +(4.774342636 0.03576561182 0) +(4.911511407 0.03576561182 0) +(5.048683561 0.03576561182 0) +(5.185852296 0.03576561182 0) +(5.3230258 0.03576561182 0) +(5.4601967 0.03576561182 0) +(5.597370143 0.03576561182 0) +(5.734539607 0.03576561182 0) +(5.871707707 0.03576561182 0) +(6.008878932 0.03576561182 0) +(6.146049793 0.03576561182 0) +(6.283222089 0.03576561182 0) +(6.420393446 0.03576561182 0) +(6.557564807 0.03576561182 0) +(6.694733296 0.03576561182 0) +(6.831903329 0.03576561182 0) +(6.969076582 0.03576561182 0) +(7.106236575 0.03654152714 0) +(7.242288104 0.05284770714 0) +(7.374515518 0.08872641714 0) +(7.501018243 0.1412441726 0) +(7.621027318 0.2071705545 0) +(7.735400411 0.2824076509 0) +(7.846173346 0.3628067818 0) +(7.955304721 0.4453983575 0) +(8.063853354 0.5287389046 0) +(8.171406061 0.6133448243 0) +(8.277406029 0.6998588429 0) +(8.381973671 0.7880859411 0) +(8.488410843 0.8740560814 0) +(8.601567736 0.9509623568 0) +(8.727262054 1.004490625 0) +(8.862844568 1.023259425 0) +(9 1.023983999 0) +(0 1.030849204 0) +(0.1371261155 1.030126869 0) +(0.2726813783 1.011419189 0) +(0.3983915646 0.9580792504 0) +(0.5116055046 0.8814384511 0) +(0.6181183829 0.7957613871 0) +(0.7227647611 0.7078338607 0) +(0.8288403154 0.6216140932 0) +(0.9364644543 0.5372965318 0) +(1.045085053 0.4542418111 0) +(1.154282252 0.3719325 0) +(1.265114518 0.2918061368 0) +(1.379528213 0.2168182541 0) +(1.499570506 0.1511205769 0) +(1.626083205 0.09878589493 0) +(1.75829607 0.06302796021 0) +(1.894321797 0.04677642814 0) +(2.031452642 0.04600319921 0) +(2.168593995 0.04600319921 0) +(2.305735726 0.04600319921 0) +(2.442877217 0.04600319921 0) +(2.580018516 0.04600319921 0) +(2.71716016 0.04600319921 0) +(2.854301906 0.04600319921 0) +(2.991443203 0.04600319921 0) +(3.128584744 0.04600319921 0) +(3.26572633 0.04600319921 0) +(3.402868247 0.04600319921 0) +(3.540009384 0.04600319921 0) +(3.677151096 0.04600319921 0) +(3.814295246 0.04600319921 0) +(3.951434643 0.04600319921 0) +(4.088577446 0.04600319921 0) +(4.225716875 0.04600319921 0) +(4.362857957 0.04600319921 0) +(4.500000407 0.04600319921 0) +(4.637142857 0.04600319921 0) +(4.774283939 0.04600319921 0) +(4.911423371 0.04600319921 0) +(5.048566175 0.04600319921 0) +(5.185705571 0.04600319921 0) +(5.322849721 0.04600319921 0) +(5.459991271 0.04600319921 0) +(5.597135361 0.04600319921 0) +(5.734275486 0.04600319921 0) +(5.871414246 0.04600319921 0) +(6.008556125 0.04600319921 0) +(6.145697639 0.04600319921 0) +(6.282840586 0.04600319921 0) +(6.419982593 0.04600319921 0) +(6.557124607 0.04600319921 0) +(6.694263757 0.04600319921 0) +(6.831404446 0.04600319921 0) +(6.968548343 0.04600319921 0) +(7.105679029 0.04677646664 0) +(7.241705029 0.06302700036 0) +(7.373919968 0.09878327114 0) +(7.500429754 0.1511218051 0) +(7.62046805 0.2168232075 0) +(7.734889593 0.2918035508 0) +(7.845723268 0.3719283125 0) +(7.954920986 0.4542380371 0) +(8.063537946 0.5372941775 0) +(8.171162382 0.6216113718 0) +(8.277239379 0.7078301539 0) +(8.381888932 0.7957561693 0) +(8.488401643 0.8814329293 0) +(8.601611136 0.9580767554 0) +(8.727315275 1.011422353 0) +(8.862873864 1.030127104 0) +(9 1.030849204 0) +(0 1.039166591 0) +(0.1370906255 1.038447253 0) +(0.2726169152 1.019817183 0) +(0.3983389718 0.9666985304 0) +(0.5116166236 0.8903756832 0) +(0.6182210139 0.8050540593 0) +(0.7229666479 0.7174913093 0) +(0.8291355286 0.6316292332 0) +(0.9368465693 0.5476614714 0) +(1.045549936 0.4649513121 0) +(1.154827511 0.3829834693 0) +(1.26573337 0.3031895186 0) +(1.3802058 0.2285127308 0) +(1.500283476 0.1630876071 0) +(1.626804716 0.1109700408 0) +(1.759002474 0.07536045154 0) +(1.894997277 0.05917634061 0) +(2.032092612 0.05840631946 0) +(2.169198412 0.05840631946 0) +(2.306304589 0.05840631946 0) +(2.443410525 0.05840631946 0) +(2.580516271 0.05840631946 0) +(2.717622361 0.05840631946 0) +(2.854728553 0.05840631946 0) +(2.991834296 0.05840631946 0) +(3.128940283 0.05840631946 0) +(3.266046315 0.05840631946 0) +(3.403152676 0.05840631946 0) +(3.540258261 0.05840631946 0) +(3.677364418 0.05840631946 0) +(3.814473004 0.05840631946 0) +(3.951576857 0.05840631946 0) +(4.0886841 0.05840631946 0) +(4.225787982 0.05840631946 0) +(4.362893514 0.05840631946 0) +(4.500000407 0.05840631946 0) +(4.6371073 0.05840631946 0) +(4.774212829 0.05840631946 0) +(4.911316714 0.05840631946 0) +(5.048423957 0.05840631946 0) +(5.185527811 0.05840631946 0) +(5.322636396 0.05840631946 0) +(5.459742393 0.05840631946 0) +(5.596850918 0.05840631946 0) +(5.733955493 0.05840631946 0) +(5.871058714 0.05840631946 0) +(6.008165036 0.05840631946 0) +(6.145270996 0.05840631946 0) +(6.282378379 0.05840631946 0) +(6.419484832 0.05840631946 0) +(6.556591289 0.05840631946 0) +(6.693694896 0.05840631946 0) +(6.830800036 0.05840631946 0) +(6.967908371 0.05840631946 0) +(7.105003543 0.05917637893 0) +(7.240998621 0.07535949568 0) +(7.373198446 0.1109674279 0) +(7.499716782 0.1630888302 0) +(7.619790479 0.2285176636 0) +(7.734270725 0.3031869433 0) +(7.845177986 0.3829792993 0) +(7.954456075 0.4649475539 0) +(8.063155821 0.5476591271 0) +(8.170867157 0.6316265232 0) +(8.277037471 0.7174876179 0) +(8.381786271 0.8050488632 0) +(8.488390493 0.8903701843 0) +(8.601663718 0.9666960457 0) +(8.72737975 1.019820334 0) +(8.862909354 1.038447486 0) +(9 1.039166591 0) +(0 1.049243335 0) +(0.1370476284 1.048527627 0) +(0.2725388163 1.029991585 0) +(0.3982752539 0.9771410268 0) +(0.5116300946 0.9012033871 0) +(0.6183453546 0.8163123886 0) +(0.7232112393 0.7291915754 0) +(0.8294931875 0.6437628521 0) +(0.9373095125 0.5602188829 0) +(1.046113155 0.4779261686 0) +(1.155488107 0.3963720246 0) +(1.266483126 0.3169808005 0) +(1.381026715 0.2426809127 0) +(1.50114726 0.1775859951 0) +(1.627678848 0.1257314706 0) +(1.759858303 0.09030160589 0) +(1.895815639 0.0741991775 0) +(2.032867954 0.07343304275 0) +(2.16993068 0.07343304275 0) +(2.306993781 0.07343304275 0) +(2.444056643 0.07343304275 0) +(2.581119316 0.07343304275 0) +(2.718182331 0.07343304275 0) +(2.855245446 0.07343304275 0) +(2.992308116 0.07343304275 0) +(3.129371029 0.07343304275 0) +(3.266433986 0.07343304275 0) +(3.40349727 0.07343304275 0) +(3.540559783 0.07343304275 0) +(3.677622864 0.07343304275 0) +(3.814688364 0.07343304275 0) +(3.95174915 0.07343304275 0) +(4.088813311 0.07343304275 0) +(4.225874132 0.07343304275 0) +(4.362936593 0.07343304275 0) +(4.500000404 0.07343304275 0) +(4.637064218 0.07343304275 0) +(4.774126675 0.07343304275 0) +(4.911187496 0.07343304275 0) +(5.048251661 0.07343304275 0) +(5.185312446 0.07343304275 0) +(5.322377943 0.07343304275 0) +(5.459440868 0.07343304275 0) +(5.596506304 0.07343304275 0) +(5.733567811 0.07343304275 0) +(5.870627971 0.07343304275 0) +(6.007691218 0.07343304275 0) +(6.144754104 0.07343304275 0) +(6.281818407 0.07343304275 0) +(6.418881782 0.07343304275 0) +(6.555945164 0.07343304275 0) +(6.693005707 0.07343304275 0) +(6.830067775 0.07343304275 0) +(6.967133025 0.07343304275 0) +(7.104185179 0.07419921564 0) +(7.240142786 0.09030065486 0) +(7.372324296 0.1257288709 0) +(7.498852996 0.177587212 0) +(7.618969582 0.2426858207 0) +(7.733520946 0.3169782382 0) +(7.844517361 0.3963678757 0) +(7.953892829 0.4779224293 0) +(8.062692864 0.5602165504 0) +(8.170509486 0.6437601561 0) +(8.276792861 0.7291879025 0) +(8.381661893 0.8163072189 0) +(8.488376986 0.9011979161 0) +(8.601727421 0.9771385546 0) +(8.727457868 1.02999472 0) +(8.86295235 1.048527859 0) +(9 1.049243335 0) +(0 1.061451589 0) +(0.1369955362 1.060740279 0) +(0.2724441974 1.042318154 0) +(0.3981980579 0.9897923996 0) +(0.5116464154 0.91432145 0) +(0.6184959968 0.8299521661 0) +(0.7235075686 0.7433667711 0) +(0.8299265011 0.6584630675 0) +(0.9378703807 0.5754325343 0) +(1.04679551 0.4936455661 0) +(1.156288438 0.4125926293 0) +(1.267391477 0.33368932 0) +(1.382021276 0.259846057 0) +(1.502193758 0.1951511932 0) +(1.628737882 0.143615351 0) +(1.760895164 0.1084032276 0) +(1.896807108 0.09239975993 0) +(2.033807301 0.09163833361 0) +(2.170817843 0.09163833361 0) +(2.307828756 0.09163833361 0) +(2.444839433 0.09163833361 0) +(2.581849921 0.09163833361 0) +(2.718860749 0.09163833361 0) +(2.855871677 0.09163833361 0) +(2.992882162 0.09163833361 0) +(3.129892889 0.09163833361 0) +(3.26690366 0.09163833361 0) +(3.403914756 0.09163833361 0) +(3.540925084 0.09163833361 0) +(3.677935979 0.09163833361 0) +(3.814949275 0.09163833361 0) +(3.951957889 0.09163833361 0) +(4.088969857 0.09163833361 0) +(4.225978507 0.09163833361 0) +(4.362988782 0.09163833361 0) +(4.500000404 0.09163833361 0) +(4.637012025 0.09163833361 0) +(4.7740223 0.09163833361 0) +(4.911030946 0.09163833361 0) +(5.048042914 0.09163833361 0) +(5.185051529 0.09163833361 0) +(5.322064825 0.09163833361 0) +(5.459075561 0.09163833361 0) +(5.596088796 0.09163833361 0) +(5.733098129 0.09163833361 0) +(5.870106118 0.09163833361 0) +(6.007117179 0.09163833361 0) +(6.144127875 0.09163833361 0) +(6.281139986 0.09163833361 0) +(6.418151171 0.09163833361 0) +(6.555162361 0.09163833361 0) +(6.692170736 0.09163833361 0) +(6.829180621 0.09163833361 0) +(6.966193671 0.09163833361 0) +(7.103193704 0.09239979782 0) +(7.239105918 0.1084022824 0) +(7.371265243 0.1436127673 0) +(7.4978065 0.1951524026 0) +(7.617975043 0.2598509348 0) +(7.732612571 0.3336867734 0) +(7.843716996 0.4125885061 0) +(7.953210436 0.49364185 0) +(8.062131982 0.5754302161 0) +(8.170076154 0.6584603879 0) +(8.276496507 0.7433631207 0) +(8.381511207 0.8299470282 0) +(8.488360621 0.9143160129 0) +(8.6018046 0.9897899429 0) +(8.727552507 1.04232127 0) +(8.863004443 1.06074051 0) +(9 1.061451589 0) +(0 1.076242226 0) +(0.1369324251 1.075536246 0) +(0.2723295639 1.057252134 0) +(0.3981045329 1.005119888 0) +(0.5116661882 0.9302143461 0) +(0.6186785039 0.8464771339 0) +(0.7238665796 0.7605404129 0) +(0.8304514725 0.6762727846 0) +(0.9385498882 0.5938642936 0) +(1.047622202 0.5126900511 0) +(1.157258061 0.4322443407 0) +(1.268491968 0.3539321535 0) +(1.383226214 0.280642104 0) +(1.503461619 0.2164319165 0) +(1.630020931 0.1652821668 0) +(1.762151348 0.130333843 0) +(1.8980083 0.1144502689 0) +(2.034945347 0.113694547 0) +(2.171892665 0.113694547 0) +(2.308840352 0.113694547 0) +(2.445787804 0.113694547 0) +(2.582735069 0.113694547 0) +(2.719682671 0.113694547 0) +(2.856630373 0.113694547 0) +(2.993577635 0.113694547 0) +(3.130525137 0.113694547 0) +(3.267472683 0.113694547 0) +(3.404420551 0.113694547 0) +(3.541367658 0.113694547 0) +(3.678315329 0.113694547 0) +(3.815265379 0.113694547 0) +(3.952210786 0.113694547 0) +(4.089159518 0.113694547 0) +(4.226104957 0.113694547 0) +(4.363052011 0.113694547 0) +(4.5000004 0.113694547 0) +(4.636948789 0.113694547 0) +(4.773895843 0.113694547 0) +(4.910841282 0.113694547 0) +(5.047790014 0.113694547 0) +(5.184735421 0.113694547 0) +(5.321685471 0.113694547 0) +(5.458632986 0.113694547 0) +(5.595582975 0.113694547 0) +(5.732529089 0.113694547 0) +(5.869473879 0.113694547 0) +(6.006421707 0.113694547 0) +(6.143369182 0.113694547 0) +(6.280318057 0.113694547 0) +(6.417266014 0.113694547 0) +(6.554213979 0.113694547 0) +(6.691159143 0.113694547 0) +(6.828105811 0.113694547 0) +(6.965055618 0.113694547 0) +(7.101992507 0.1144503066 0) +(7.237849725 0.1303329049 0) +(7.369982171 0.1652796024 0) +(7.496538636 0.2164331169 0) +(7.616770132 0.2806469453 0) +(7.73151205 0.353929626 0) +(7.842747332 0.4322402482 0) +(7.9523837 0.5126863625 0) +(8.061452457 0.5938619929 0) +(8.169551164 0.676270125 0) +(8.276137464 0.76053679 0) +(8.381328646 0.8464720343 0) +(8.488340796 0.9302089496 0) +(8.601898107 1.005117449 0) +(8.727667164 1.057255227 0) +(8.863067554 1.075536475 0) +(9 1.076242226 0) +(0 1.094161492 0) +(0.1368559643 1.093461968 0) +(0.2721906823 1.075345064 0) +(0.397991225 1.023689564 0) +(0.5116901439 0.9494690293 0) +(0.6188996161 0.8664975893 0) +(0.7243015314 0.781346755 0) +(0.83108749 0.6978497496 0) +(0.9393731304 0.6161948796 0) +(1.048623763 0.5357629714 0) +(1.158432787 0.4560529329 0) +(1.269825244 0.3784569061 0) +(1.38468603 0.3058370902 0) +(1.504997668 0.2422141014 0) +(1.63157538 0.1915321134 0) +(1.763673251 0.1569033901 0) +(1.899463576 0.1411650705 0) +(2.036324121 0.1404162596 0) +(2.173194841 0.1404162596 0) +(2.310065928 0.1404162596 0) +(2.446936782 0.1404162596 0) +(2.58380745 0.1404162596 0) +(2.720678453 0.1404162596 0) +(2.857549554 0.1404162596 0) +(2.99442022 0.1404162596 0) +(3.131291123 0.1404162596 0) +(3.268162069 0.1404162596 0) +(3.405033335 0.1404162596 0) +(3.541903847 0.1404162596 0) +(3.678774918 0.1404162596 0) +(3.815648346 0.1404162596 0) +(3.952517171 0.1404162596 0) +(4.089389296 0.1404162596 0) +(4.226258154 0.1404162596 0) +(4.363128614 0.1404162596 0) +(4.500000396 0.1404162596 0) +(4.636872179 0.1404162596 0) +(4.773742636 0.1404162596 0) +(4.910611496 0.1404162596 0) +(5.047483621 0.1404162596 0) +(5.184352446 0.1404162596 0) +(5.321225875 0.1404162596 0) +(5.458096789 0.1404162596 0) +(5.594970157 0.1404162596 0) +(5.731839689 0.1404162596 0) +(5.8687079 0.1404162596 0) +(6.005579129 0.1404162596 0) +(6.142450007 0.1404162596 0) +(6.279322268 0.1404162596 0) +(6.416193625 0.1404162596 0) +(6.553064982 0.1404162596 0) +(6.689933571 0.1404162596 0) +(6.82680365 0.1404162596 0) +(6.963676836 0.1404162596 0) +(7.100537221 0.1411651078 0) +(7.236327814 0.1569024606 0) +(7.368427693 0.1915295724 0) +(7.495002586 0.2422152908 0) +(7.61531035 0.3058418872 0) +(7.730178739 0.3784544018 0) +(7.841572557 0.4560488775 0) +(7.951382082 0.5357593168 0) +(8.060629193 0.6161926 0) +(8.168915121 0.6978471143 0) +(8.275702475 0.7813431654 0) +(8.381107468 0.8664925364 0) +(8.488316779 0.9494636821 0) +(8.602011389 1.023687148 0) +(8.727806075 1.075348128 0) +(8.863144014 1.093462195 0) +(9 1.094161492 0) +(0 1.115871178 0) +(0.1367633298 1.115179476 0) +(0.2720224234 1.097265148 0) +(0.3978539489 1.04618724 0) +(0.5117191664 0.9727966107 0) +(0.6191675 0.890752925 0) +(0.7248284879 0.8065542139 0) +(0.8318580429 0.7239908396 0) +(0.9403705111 0.6432490025 0) +(1.049837181 0.5637164525 0) +(1.159855999 0.4848977004 0) +(1.271440545 0.4081693221 0) +(1.386454638 0.3363615129 0) +(1.506858633 0.2734499315 0) +(1.633458639 0.2233346497 0) +(1.765517078 0.1890931314 0) +(1.901226685 0.1735307915 0) +(2.037994543 0.1727903535 0) +(2.174772464 0.1727903535 0) +(2.311550748 0.1727903535 0) +(2.448328801 0.1727903535 0) +(2.58510667 0.1727903535 0) +(2.72188487 0.1727903535 0) +(2.858663168 0.1727903535 0) +(2.995441034 0.1727903535 0) +(3.132219136 0.1727903535 0) +(3.268997281 0.1727903535 0) +(3.405775741 0.1727903535 0) +(3.542553456 0.1727903535 0) +(3.679331721 0.1727903535 0) +(3.816112321 0.1727903535 0) +(3.952888368 0.1727903535 0) +(4.089667679 0.1727903535 0) +(4.226443757 0.1727903535 0) +(4.363221421 0.1727903535 0) +(4.500000393 0.1727903535 0) +(4.636779364 0.1727903535 0) +(4.773557025 0.1727903535 0) +(4.910333107 0.1727903535 0) +(5.047112414 0.1727903535 0) +(5.183888461 0.1727903535 0) +(5.320669061 0.1727903535 0) +(5.457447171 0.1727903535 0) +(5.594227714 0.1727903535 0) +(5.731004457 0.1727903535 0) +(5.8677799 0.1727903535 0) +(6.004558321 0.1727903535 0) +(6.141336396 0.1727903535 0) +(6.278115843 0.1727903535 0) +(6.414894393 0.1727903535 0) +(6.551672946 0.1727903535 0) +(6.688448757 0.1727903535 0) +(6.825226043 0.1727903535 0) +(6.9620064 0.1727903535 0) +(7.098774104 0.1735308283 0) +(7.234483975 0.1890922122 0) +(7.3665444 0.2233321372 0) +(7.493141618 0.2734511076 0) +(7.613541782 0.3363662562 0) +(7.728563393 0.4081668461 0) +(7.840149286 0.4848936907 0) +(7.9501686 0.5637128386 0) +(8.059631786 0.6432467482 0) +(8.168144539 0.7239882336 0) +(8.275175475 0.8065506643 0) +(8.380839507 0.8907479286 0) +(8.488287679 0.9727913232 0) +(8.602148636 1.046184851 0) +(8.727974371 1.097268178 0) +(8.86323665 1.115179701 0) +(9 1.115871178 0) +(0 1.142173064 0) +(0.1366511006 1.141490838 0) +(0.271818573 1.123821936 0) +(0.3976876354 1.073443797 0) +(0.5117543282 1.00105862 0) +(0.6194920486 0.9201389346 0) +(0.7254669096 0.8370937479 0) +(0.8327915889 0.7556614929 0) +(0.9415788654 0.6760258207 0) +(1.051307271 0.5975828679 0) +(1.16158026 0.5198439343 0) +(1.273397526 0.4441667364 0) +(1.388597355 0.373342695 0) +(1.509113244 0.3112930036 0) +(1.635740258 0.2618643021 0) +(1.767750926 0.2280918931 0) +(1.903362739 0.2127427576 0) +(2.040018306 0.2120124636 0) +(2.176683799 0.2120124636 0) +(2.313349648 0.2120124636 0) +(2.45001527 0.2120124636 0) +(2.586680711 0.2120124636 0) +(2.723346478 0.2120124636 0) +(2.860012341 0.2120124636 0) +(2.99667778 0.2120124636 0) +(3.13334345 0.2120124636 0) +(3.270009162 0.2120124636 0) +(3.406675186 0.2120124636 0) +(3.543340474 0.2120124636 0) +(3.680006307 0.2120124636 0) +(3.816674439 0.2120124636 0) +(3.953338086 0.2120124636 0) +(4.090004943 0.2120124636 0) +(4.226668621 0.2120124636 0) +(4.363333857 0.2120124636 0) +(4.500000386 0.2120124636 0) +(4.636666914 0.2120124636 0) +(4.77333215 0.2120124636 0) +(4.909995829 0.2120124636 0) +(5.046662689 0.2120124636 0) +(5.183326332 0.2120124636 0) +(5.319994464 0.2120124636 0) +(5.456660146 0.2120124636 0) +(5.593328221 0.2120124636 0) +(5.72999255 0.2120124636 0) +(5.8666556 0.2120124636 0) +(6.003321586 0.2120124636 0) +(6.139987229 0.2120124636 0) +(6.276654225 0.2120124636 0) +(6.413320336 0.2120124636 0) +(6.549986454 0.2120124636 0) +(6.686649864 0.2120124636 0) +(6.823314729 0.2120124636 0) +(6.959982625 0.2120124636 0) +(7.096638039 0.212742794 0) +(7.232250114 0.2280909866 0) +(7.364262739 0.261861824 0) +(7.490887 0.3112941636 0) +(7.611399114 0.3733473736 0) +(7.726606357 0.4441642939 0) +(7.838424954 0.5198399793 0) +(7.948698432 0.5975793036 0) +(8.0584234 0.6760235971 0) +(8.167210957 0.7556589229 0) +(8.274537 0.8370902468 0) +(8.380514861 0.9201340068 0) +(8.488252421 1.001053405 0) +(8.602314914 1.07344144 0) +(8.728178264 1.123824925 0) +(8.863348879 1.141491059 0) +(9 1.142173064 0) +(0 1.174038526 0) +(0.1365151318 1.173367781 0) +(0.2715716027 1.15599622 0) +(0.3974861418 1.10646587 0) +(0.5117969275 1.035298827 0) +(0.6198852479 0.9557408982 0) +(0.7262403757 0.8740932375 0) +(0.8339226057 0.7940313657 0) +(0.9430428196 0.7157358425 0) +(1.053088325 0.6386129671 0) +(1.163669249 0.5621822632 0) +(1.275768463 0.4877785989 0) +(1.391193316 0.4181464204 0) +(1.511844768 0.3571409321 0) +(1.638504504 0.3085440416 0) +(1.770457294 0.2753399718 0) +(1.905950628 0.2602491391 0) +(2.042470151 0.2595311349 0) +(2.178999433 0.2595311349 0) +(2.315529065 0.2595311349 0) +(2.452058474 0.2595311349 0) +(2.588587705 0.2595311349 0) +(2.725117256 0.2595311349 0) +(2.861646903 0.2595311349 0) +(2.998176131 0.2595311349 0) +(3.134705587 0.2595311349 0) +(3.271235084 0.2595311349 0) +(3.407764889 0.2595311349 0) +(3.544293969 0.2595311349 0) +(3.680823586 0.2595311349 0) +(3.817355464 0.2595311349 0) +(3.953882929 0.2595311349 0) +(4.090413554 0.2595311349 0) +(4.22694105 0.2595311349 0) +(4.363470079 0.2595311349 0) +(4.500000379 0.2595311349 0) +(4.636530679 0.2595311349 0) +(4.773059707 0.2595311349 0) +(4.909587207 0.2595311349 0) +(5.046117832 0.2595311349 0) +(5.182645296 0.2595311349 0) +(5.319177175 0.2595311349 0) +(5.455706639 0.2595311349 0) +(5.592238461 0.2595311349 0) +(5.7287666 0.2595311349 0) +(5.865293479 0.2595311349 0) +(6.001823246 0.2595311349 0) +(6.138352675 0.2595311349 0) +(6.274883436 0.2595311349 0) +(6.411413325 0.2595311349 0) +(6.547943218 0.2595311349 0) +(6.684470454 0.2595311349 0) +(6.820999121 0.2595311349 0) +(6.957530764 0.2595311349 0) +(7.094050139 0.2602491749 0) +(7.229543729 0.2753390804 0) +(7.361498443 0.3085416052 0) +(7.488155475 0.3571420726 0) +(7.608803211 0.41815102 0) +(7.724235354 0.4877761975 0) +(7.836335875 0.5621783746 0) +(7.946917282 0.6386094625 0) +(8.056959411 0.7157336564 0) +(8.166079896 0.7940288386 0) +(8.273763468 0.8740897954 0) +(8.380121546 0.9557360532 0) +(8.488209707 1.0352937 0) +(8.602516364 1.106463553 0) +(8.728425289 1.155999159 0) +(8.863484846 1.173367999 0) +(9 1.174038526 0) +(0 1.212644414 0) +(0.1363504019 1.211987579 0) +(0.2712723914 1.194976255 0) +(0.3972420268 1.146473024 0) +(0.5118485379 1.076781784 0) +(0.62036162 0.9988736621 0) +(0.7271774511 0.9189191425 0) +(0.8352928639 0.8405175275 0) +(0.9448164411 0.7638456318 0) +(1.055246121 0.6883220668 0) +(1.166200118 0.6134763196 0) +(1.278640919 0.5406155768 0) +(1.394338395 0.4724273725 0) +(1.515154085 0.4126869657 0) +(1.641853463 0.3650978371 0) +(1.773736134 0.3325823258 0) +(1.909085927 0.3178044343 0) +(2.04544063 0.3171013195 0) +(2.181804888 0.3171013195 0) +(2.318169489 0.3171013195 0) +(2.454533872 0.3171013195 0) +(2.59089808 0.3171013195 0) +(2.727262603 0.3171013195 0) +(2.863627218 0.3171013195 0) +(2.999991424 0.3171013195 0) +(3.136355853 0.3171013195 0) +(3.272720323 0.3171013195 0) +(3.409085093 0.3171013195 0) +(3.545449155 0.3171013195 0) +(3.681813739 0.3171013195 0) +(3.818180539 0.3171013195 0) +(3.954543021 0.3171013195 0) +(4.090908593 0.3171013195 0) +(4.227271104 0.3171013195 0) +(4.363635118 0.3171013195 0) +(4.500000371 0.3171013195 0) +(4.636365625 0.3171013195 0) +(4.772729639 0.3171013195 0) +(4.90909215 0.3171013195 0) +(5.045457725 0.3171013195 0) +(5.181820204 0.3171013195 0) +(5.318187004 0.3171013195 0) +(5.454551443 0.3171013195 0) +(5.590918189 0.3171013195 0) +(5.727281325 0.3171013195 0) +(5.863643229 0.3171013195 0) +(6.000007964 0.3171013195 0) +(6.136372368 0.3171013195 0) +(6.272738075 0.3171013195 0) +(6.409102929 0.3171013195 0) +(6.545467786 0.3171013195 0) +(6.681830039 0.3171013195 0) +(6.818193696 0.3171013195 0) +(6.954560268 0.3171013195 0) +(7.090914821 0.3178044693 0) +(7.226264864 0.3325814529 0) +(7.358149425 0.3650954514 0) +(7.484846154 0.4126880825 0) +(7.605658207 0.4724318768 0) +(7.721362821 0.5406132254 0) +(7.8338049 0.6134725118 0) +(7.944759368 0.688318635 0) +(8.055185743 0.7638434911 0) +(8.164709589 0.8405150529 0) +(8.272826311 0.9189157718 0) +(8.379645032 0.9988689175 0) +(8.488157961 1.076776763 0) +(8.602760429 1.146470755 0) +(8.728724564 1.194979133 0) +(8.863649579 1.211987792 0) +(9 1.212644414 0) +(0 1.259416516 0) +(0.136150827 1.258776532 0) +(0.2709098885 1.242201646 0) +(0.3969462746 1.194942798 0) +(0.5119110654 1.127039535 0) +(0.6209387582 1.051130198 0) +(0.7283127436 0.9732269664 0) +(0.8369529696 0.8968367982 0) +(0.9469652325 0.8221319725 0) +(1.057860352 0.7485460161 0) +(1.169266336 0.6756204875 0) +(1.282120979 0.6046290368 0) +(1.398148745 0.5381902475 0) +(1.519163413 0.4799825214 0) +(1.645910821 0.4336143246 0) +(1.777708539 0.4019330211 0) +(1.912884429 0.3875342664 0) +(2.049039446 0.3868491904 0) +(2.185203773 0.3868491904 0) +(2.321368436 0.3868491904 0) +(2.457532885 0.3868491904 0) +(2.593697165 0.3868491904 0) +(2.72986175 0.3868491904 0) +(2.866026426 0.3868491904 0) +(3.002190703 0.3868491904 0) +(3.138355197 0.3868491904 0) +(3.274519731 0.3868491904 0) +(3.410684558 0.3868491904 0) +(3.546848694 0.3868491904 0) +(3.683013339 0.3868491904 0) +(3.819180146 0.3868491904 0) +(3.955342739 0.3868491904 0) +(4.09150835 0.3868491904 0) +(4.227670975 0.3868491904 0) +(4.363835064 0.3868491904 0) +(4.500000361 0.3868491904 0) +(4.636165661 0.3868491904 0) +(4.77232975 0.3868491904 0) +(4.908492375 0.3868491904 0) +(5.044657986 0.3868491904 0) +(5.180820579 0.3868491904 0) +(5.316987386 0.3868491904 0) +(5.453151889 0.3868491904 0) +(5.589318639 0.3868491904 0) +(5.725481875 0.3868491904 0) +(5.861643911 0.3868491904 0) +(5.997808704 0.3868491904 0) +(6.133973171 0.3868491904 0) +(6.270138911 0.3868491904 0) +(6.406303818 0.3868491904 0) +(6.542468729 0.3868491904 0) +(6.678631104 0.3868491904 0) +(6.814794846 0.3868491904 0) +(6.950961429 0.3868491904 0) +(7.087116304 0.3875343004 0) +(7.222292436 0.4019321704 0) +(7.354091993 0.433612 0) +(7.480836818 0.4799836096 0) +(7.601847943 0.5381946364 0) +(7.717882664 0.6046267457 0) +(7.830738554 0.6756167775 0) +(7.942144996 0.7485426725 0) +(8.053036893 0.8221298868 0) +(8.163049418 0.8968343875 0) +(8.271690921 0.9732236825 0) +(8.379067725 1.051125575 0) +(8.488095268 1.127034642 0) +(8.603056118 1.194940587 0) +(8.729087146 1.242204449 0) +(8.863849154 1.25877674 0) +(9 1.259416516 0) +(0 1.316082211 0) +(0.1359090365 1.315462643 0) +(0.2704707063 1.299416512 0) +(0.3965879629 1.253665269 0) +(0.5119868193 1.187928189 0) +(0.6216379768 1.114440437 0) +(0.7296881821 1.039022398 0) +(0.8389642339 0.9650691529 0) +(0.9495685525 0.8927474864 0) +(1.061027564 0.8215089964 0) +(1.172981143 0.7509098661 0) +(1.286337168 0.6821831143 0) +(1.402765089 0.6178637896 0) +(1.524020826 0.5615129489 0) +(1.650826421 0.5166239443 0) +(1.782521218 0.4859533061 0) +(1.917486419 0.4720138864 0) +(2.053399511 0.471350665 0) +(2.189321618 0.471350665 0) +(2.325244049 0.471350665 0) +(2.461166273 0.471350665 0) +(2.597088333 0.471350665 0) +(2.733010689 0.471350665 0) +(2.868933132 0.471350665 0) +(3.00485519 0.471350665 0) +(3.140777458 0.471350665 0) +(3.276699764 0.471350665 0) +(3.412622353 0.471350665 0) +(3.548544274 0.471350665 0) +(3.684466689 0.471350665 0) +(3.820391193 0.471350665 0) +(3.956311625 0.471350665 0) +(4.092234971 0.471350665 0) +(4.228155429 0.471350665 0) +(4.364077304 0.471350665 0) +(4.50000035 0.471350665 0) +(4.635923396 0.471350665 0) +(4.771845271 0.471350665 0) +(4.907765729 0.471350665 0) +(5.043689079 0.471350665 0) +(5.179609507 0.471350665 0) +(5.315534011 0.471350665 0) +(5.451456289 0.471350665 0) +(5.587380743 0.471350665 0) +(5.723301793 0.471350665 0) +(5.859221679 0.471350665 0) +(5.995144236 0.471350665 0) +(6.131066479 0.471350665 0) +(6.26698995 0.471350665 0) +(6.402912618 0.471350665 0) +(6.538835289 0.471350665 0) +(6.674755507 0.471350665 0) +(6.810677046 0.471350665 0) +(6.946601336 0.471350665 0) +(7.082514289 0.4720139196 0) +(7.217479725 0.4859524829 0) +(7.3491763 0.5166216939 0) +(7.475979396 0.5615140025 0) +(7.597231704 0.6178680382 0) +(7.713666361 0.6821808964 0) +(7.827023589 0.7509062743 0) +(7.938977614 0.8215057593 0) +(8.050433507 0.8927454671 0) +(8.161038079 0.9650668186 0) +(8.270315368 1.039019218 0) +(8.3783683 1.114435962 0) +(8.488019311 1.187923453 0) +(8.603414354 1.253663129 0) +(8.729526421 1.299419226 0) +(8.864090946 1.315462844 0) +(9 1.316082211 0) +(0 1.384734268 0) +(0.1356161007 1.384139434 0) +(0.2699386249 1.368733906 0) +(0.3961538582 1.324809168 0) +(0.5120785968 1.261696478 0) +(0.6224850993 1.191142543 0) +(0.7313545639 1.118735382 0) +(0.8414009357 1.047734538 0) +(0.9527225471 0.9783001346 0) +(1.06486473 0.909905665 0) +(1.177481735 0.8421250304 0) +(1.291445197 0.7761420243 0) +(1.408357918 0.7143904893 0) +(1.529905715 0.6602893168 0) +(1.656781808 0.6171923946 0) +(1.788351911 0.5877462057 0) +(1.923061856 0.5743632829 0) +(2.058681851 0.5737265389 0) +(2.1943105 0.5737265389 0) +(2.32993946 0.5737265389 0) +(2.465568223 0.5737265389 0) +(2.601196826 0.5737265389 0) +(2.736825715 0.5737265389 0) +(2.872454687 0.5737265389 0) +(3.008083289 0.5737265389 0) +(3.143712093 0.5737265389 0) +(3.279340934 0.5737265389 0) +(3.414970046 0.5737265389 0) +(3.550598517 0.5737265389 0) +(3.686227461 0.5737265389 0) +(3.821858414 0.5737265389 0) +(3.957485454 0.5737265389 0) +(4.093115293 0.5737265389 0) +(4.228742357 0.5737265389 0) +(4.364370786 0.5737265389 0) +(4.500000336 0.5737265389 0) +(4.635629889 0.5737265389 0) +(4.771258314 0.5737265389 0) +(4.906885382 0.5737265389 0) +(5.042515221 0.5737265389 0) +(5.178142261 0.5737265389 0) +(5.313773211 0.5737265389 0) +(5.449402025 0.5737265389 0) +(5.585032925 0.5737265389 0) +(5.720660561 0.5737265389 0) +(5.856287079 0.5737265389 0) +(5.991916157 0.5737265389 0) +(6.127544939 0.5737265389 0) +(6.2631749 0.5737265389 0) +(6.398804086 0.5737265389 0) +(6.534433279 0.5737265389 0) +(6.670060114 0.5737265389 0) +(6.805688218 0.5737265389 0) +(6.941318961 0.5737265389 0) +(7.076938821 0.5743633146 0) +(7.211648993 0.5877454154 0) +(7.343220807 0.6171902339 0) +(7.4700945 0.6602903279 0) +(7.591639004 0.7143945686 0) +(7.708558189 0.7761398946 0) +(7.822522811 0.8421215821 0) +(7.935140243 0.9099025571 0) +(8.047279429 0.9782981961 0) +(8.158601286 1.047732296 0) +(8.268648843 1.118732329 0) +(8.377520925 1.191138246 0) +(8.487927289 1.261691931 0) +(8.603848364 1.324807113 0) +(8.730058618 1.368736511 0) +(8.864383882 1.384139627 0) +(9 1.384734268 0) +(0 1.467908133 0) +(0.1352612008 1.467343266 0) +(0.2692939935 1.452713845 0) +(0.3956279286 1.411001969 0) +(0.5121897882 1.3510688 0) +(0.6235114121 1.284069265 0) +(0.7333734314 1.215309867 0) +(0.8443530675 1.147885937 0) +(0.9565436986 1.081949534 0) +(1.069513561 1.017000674 0) +(1.182934326 0.9526347246 0) +(1.297633716 0.8899758425 0) +(1.415133784 0.8313352561 0) +(1.537035422 0.7799596182 0) +(1.663996922 0.7390338536 0) +(1.795415957 0.7110711189 0) +(1.929816654 0.6983624075 0) +(2.065081553 0.6977577418 0) +(2.200354669 0.6977577418 0) +(2.335628081 0.6977577418 0) +(2.470901306 0.6977577418 0) +(2.60617438 0.6977577418 0) +(2.741447725 0.6977577418 0) +(2.876721149 0.6977577418 0) +(3.011994221 0.6977577418 0) +(3.147267485 0.6977577418 0) +(3.282540784 0.6977577418 0) +(3.417814341 0.6977577418 0) +(3.553087289 0.6977577418 0) +(3.688360686 0.6977577418 0) +(3.823635989 0.6977577418 0) +(3.958907579 0.6977577418 0) +(4.094181825 0.6977577418 0) +(4.229453439 0.6977577418 0) +(4.364726346 0.6977577418 0) +(4.500000321 0.6977577418 0) +(4.635274293 0.6977577418 0) +(4.7705472 0.6977577418 0) +(4.905818814 0.6977577418 0) +(5.041093061 0.6977577418 0) +(5.17636465 0.6977577418 0) +(5.311639954 0.6977577418 0) +(5.446913225 0.6977577418 0) +(5.582188482 0.6977577418 0) +(5.717460636 0.6977577418 0) +(5.852731729 0.6977577418 0) +(5.988005254 0.6977577418 0) +(6.123278496 0.6977577418 0) +(6.258552857 0.6977577418 0) +(6.393826486 0.6977577418 0) +(6.529100121 0.6977577418 0) +(6.664371514 0.6977577418 0) +(6.799644111 0.6977577418 0) +(6.934919218 0.6977577418 0) +(7.070183993 0.6983624375 0) +(7.204584904 0.7110703682 0) +(7.336005561 0.7390318018 0) +(7.462964782 0.7799605786 0) +(7.584863293 0.8313391296 0) +(7.7023695 0.88997382 0) +(7.817069989 0.9526314504 0) +(7.930491161 1.016997723 0) +(8.043458179 1.081947693 0) +(8.155649039 1.147883809 0) +(8.266629804 1.215306968 0) +(8.376494311 1.284065185 0) +(8.4878158 1.351064482 0) +(8.604374182 1.411000018 0) +(8.730703389 1.452716319 0) +(8.864738782 1.46734345 0) +(9 1.467908133 0) +(0 1.568675571 0) +(0.1348312298 1.56814701 0) +(0.2685130049 1.554457864 0) +(0.39499075 1.515426931 0) +(0.5123244993 1.45934584 0) +(0.6247548182 1.39665256 0) +(0.7358193457 1.332312527 0) +(0.8479296571 1.269222128 0) +(0.9611731289 1.207523649 0) +(1.07514575 1.14674924 0) +(1.189540292 1.086520276 0) +(1.305131277 1.027888661 0) +(1.423342934 0.9730170754 0) +(1.545673258 0.9249434982 0) +(1.672738234 0.8866481511 0) +(1.803974245 0.8604826625 0) +(1.938000277 0.8485907764 0) +(2.072834968 0.8480249743 0) +(2.207677347 0.8480249743 0) +(2.342520004 0.8480249743 0) +(2.477362484 0.8480249743 0) +(2.612204824 0.8480249743 0) +(2.747047417 0.8480249743 0) +(2.881890085 0.8480249743 0) +(3.016732423 0.8480249743 0) +(3.15157494 0.8480249743 0) +(3.286417491 0.8480249743 0) +(3.421260283 0.8480249743 0) +(3.556102504 0.8480249743 0) +(3.690945146 0.8480249743 0) +(3.825789575 0.8480249743 0) +(3.960630521 0.8480249743 0) +(4.095473961 0.8480249743 0) +(4.230314936 0.8480249743 0) +(4.365157118 0.8480249743 0) +(4.5000003 0.8480249743 0) +(4.634843482 0.8480249743 0) +(4.769685664 0.8480249743 0) +(4.904526636 0.8480249743 0) +(5.039370075 0.8480249743 0) +(5.174211025 0.8480249743 0) +(5.30905545 0.8480249743 0) +(5.443897975 0.8480249743 0) +(5.578742357 0.8480249743 0) +(5.713583836 0.8480249743 0) +(5.848424321 0.8480249743 0) +(5.983267086 0.8480249743 0) +(6.118109582 0.8480249743 0) +(6.252953129 0.8480249743 0) +(6.387795989 0.8480249743 0) +(6.52263885 0.8480249743 0) +(6.657479618 0.8480249743 0) +(6.792321511 0.8480249743 0) +(6.927165754 0.8480249743 0) +(7.062000325 0.8485908046 0) +(7.196026561 0.86048196 0) +(7.327264089 0.8866462311 0) +(7.454326932 0.9249443971 0) +(7.576654332 0.9730207 0) +(7.694871732 1.027886769 0) +(7.810463746 1.086517212 0) +(7.924858668 1.146746478 0) +(8.038828629 1.207521926 0) +(8.152072318 1.269220137 0) +(8.264183682 1.332309814 0) +(8.375250536 1.396648741 0) +(8.487680729 1.4593418 0) +(8.605011225 1.515425105 0) +(8.731484546 1.55446018 0) +(8.865168754 1.568147182 0) +(9 1.568675571 0) +(0 1.69075811 0) +(0.134310308 1.690273534 0) +(0.2675668154 1.677723558 0) +(0.3942187907 1.641940661 0) +(0.5124877057 1.59052647 0) +(0.6262612389 1.533050335 0) +(0.7387826379 1.474064485 0) +(0.8522627939 1.41622428 0) +(0.9667818125 1.359660161 0) +(1.081969302 1.303943216 0) +(1.197543601 1.248726325 0) +(1.31421478 1.194973856 0) +(1.433288546 1.144668518 0) +(1.556138236 1.100595479 0) +(1.683328574 1.065486955 0) +(1.814342846 1.04149888 0) +(1.947914963 1.030596601 0) +(2.082228444 1.030077883 0) +(2.216548974 1.030077883 0) +(2.350869758 1.030077883 0) +(2.48519038 1.030077883 0) +(2.619510874 1.030077883 0) +(2.7538316 1.030077883 0) +(2.888152393 1.030077883 0) +(3.022472885 1.030077883 0) +(3.156793542 1.030077883 0) +(3.291114228 1.030077883 0) +(3.425435136 1.030077883 0) +(3.559755521 1.030077883 0) +(3.694076293 1.030077883 0) +(3.8283987 1.030077883 0) +(3.962717918 1.030077883 0) +(4.097039418 1.030077883 0) +(4.231358661 1.030077883 0) +(4.365679007 1.030077883 0) +(4.500000275 1.030077883 0) +(4.634321539 1.030077883 0) +(4.768641889 1.030077883 0) +(4.902961129 1.030077883 0) +(5.037282632 1.030077883 0) +(5.17160185 1.030077883 0) +(5.305924254 1.030077883 0) +(5.440244918 1.030077883 0) +(5.574567286 1.030077883 0) +(5.708886989 1.030077883 0) +(5.843205782 1.030077883 0) +(5.977526664 1.030077883 0) +(6.111847304 1.030077883 0) +(6.2461689 1.030077883 0) +(6.380489871 1.030077883 0) +(6.514810843 1.030077883 0) +(6.649129896 1.030077883 0) +(6.783449982 1.030077883 0) +(6.917772218 1.030077883 0) +(7.052085589 1.030596626 0) +(7.185657889 1.041498236 0) +(7.316673557 1.065485195 0) +(7.443861939 1.100596303 0) +(7.566708946 1.144671841 0) +(7.685787979 1.194972121 0) +(7.8024601 1.248723516 0) +(7.91803475 1.303940684 0) +(8.033219796 1.359658582 0) +(8.147739014 1.416222454 0) +(8.261220139 1.474061999 0) +(8.373743668 1.533046834 0) +(8.487517089 1.590522765 0) +(8.605783021 1.641938987 0) +(8.732430939 1.67772568 0) +(8.865689679 1.690273691 0) +(9 1.69075811 0) +(0 1.838664482 0) +(0.1336791969 1.838233196 0) +(0.2664204808 1.827063354 0) +(0.3932835404 1.795215544 0) +(0.5126854346 1.74945543 0) +(0.6280863096 1.698300011 0) +(0.7423727486 1.645800904 0) +(0.8575125093 1.594321452 0) +(0.9735768871 1.543977755 0) +(1.090236224 1.494388065 0) +(1.207239833 1.445243439 0) +(1.325219696 1.397402191 0) +(1.44533793 1.352628989 0) +(1.568816847 1.313402713 0) +(1.696159065 1.282155113 0) +(1.826904695 1.260805034 0) +(1.95992688 1.251101691 0) +(2.093608901 1.250640017 0) +(2.227297195 1.250640017 0) +(2.360985716 1.250640017 0) +(2.494674093 1.250640017 0) +(2.628362355 1.250640017 0) +(2.762050824 1.250640017 0) +(2.895739354 1.250640017 0) +(3.029427615 1.250640017 0) +(3.163116022 1.250640017 0) +(3.296804456 1.250640017 0) +(3.430493087 1.250640017 0) +(3.564181253 1.250640017 0) +(3.697869764 1.250640017 0) +(3.831559729 1.250640017 0) +(3.965246854 1.250640017 0) +(4.098936014 1.250640017 0) +(4.232623161 1.250640017 0) +(4.366311293 1.250640017 0) +(4.500000243 1.250640017 0) +(4.633689193 1.250640017 0) +(4.767377325 1.250640017 0) +(4.901064475 1.250640017 0) +(5.034753636 1.250640017 0) +(5.168440761 1.250640017 0) +(5.302130725 1.250640017 0) +(5.435819139 1.250640017 0) +(5.569509068 1.250640017 0) +(5.703196629 1.250640017 0) +(5.836883375 1.250640017 0) +(5.970571986 1.250640017 0) +(6.104260375 1.250640017 0) +(6.237949621 1.250640017 0) +(6.371638307 1.250640017 0) +(6.505326996 1.250640017 0) +(6.639013975 1.250640017 0) +(6.772701875 1.250640017 0) +(6.906391689 1.250640017 0) +(7.040073611 1.251101714 0) +(7.173095961 1.26080446 0) +(7.303842832 1.282153546 0) +(7.431183307 1.313403446 0) +(7.554659839 1.352631946 0) +(7.674782761 1.397400647 0) +(7.792763461 1.445240939 0) +(7.909767382 1.494385812 0) +(8.026424546 1.543976349 0) +(8.1424891 1.594319827 0) +(8.257629721 1.64579869 0) +(8.371918057 1.698296896 0) +(8.487318832 1.749452134 0) +(8.606718071 1.795214054 0) +(8.733577521 1.827065244 0) +(8.866320789 1.838233336 0) +(9 1.838664482 0) +(0 2.017857143 0) +(0.1329145883 2.017490418 0) +(0.2650316647 2.007992649 0) +(0.3921504589 1.980912304 0) +(0.5129249889 1.942002262 0) +(0.6302974332 1.898504566 0) +(0.7467222671 1.853864325 0) +(0.8638726843 1.810091102 0) +(0.9818093086 1.767283616 0) +(1.100251829 1.725117268 0) +(1.218987085 1.683329358 0) +(1.338552455 1.642649718 0) +(1.459936093 1.604578851 0) +(1.584177334 1.571224561 0) +(1.711703559 1.544654579 0) +(1.842123721 1.526500505 0) +(1.974479649 1.518249706 0) +(2.107396639 1.517857143 0) +(2.240318963 1.517857143 0) +(2.373241479 1.517857143 0) +(2.506163873 1.517857143 0) +(2.63908617 1.517857143 0) +(2.772008642 1.517857143 0) +(2.904931166 1.517857143 0) +(3.037853461 1.517857143 0) +(3.170775881 1.517857143 0) +(3.303698324 1.517857143 0) +(3.436620934 1.517857143 0) +(3.569543149 1.517857143 0) +(3.702465657 1.517857143 0) +(3.8353894 1.517857143 0) +(3.968310732 1.517857143 0) +(4.101233789 1.517857143 0) +(4.234155139 1.517857143 0) +(4.367077325 1.517857143 0) +(4.500000207 1.517857143 0) +(4.632923089 1.517857143 0) +(4.765845275 1.517857143 0) +(4.898766625 1.517857143 0) +(5.031689682 1.517857143 0) +(5.164611014 1.517857143 0) +(5.297534761 1.517857143 0) +(5.430457186 1.517857143 0) +(5.563380896 1.517857143 0) +(5.696302596 1.517857143 0) +(5.829223607 1.517857143 0) +(5.962146196 1.517857143 0) +(6.095068604 1.517857143 0) +(6.227991736 1.517857143 0) +(6.360914393 1.517857143 0) +(6.493837054 1.517857143 0) +(6.626758257 1.517857143 0) +(6.759680246 1.517857143 0) +(6.892603861 1.517857143 0) +(7.025520768 1.518249726 0) +(7.157876836 1.526500018 0) +(7.288298054 1.544653247 0) +(7.4158228 1.571225185 0) +(7.540062011 1.604581365 0) +(7.661449632 1.642648405 0) +(7.781015718 1.683327233 0) +(7.899751236 1.725115352 0) +(8.018191911 1.767282421 0) +(8.136128686 1.81008972 0) +(8.253279832 1.853862443 0) +(8.369706282 1.898501917 0) +(8.487078639 1.941999459 0) +(8.607850911 1.980911038 0) +(8.734966636 2.007994255 0) +(8.8670854 2.017490537 0) +(9 2.017857143 0) +(0 2.197049804 0) +(0.1321499796 2.19674764 0) +(0.2636428485 2.188921943 0) +(0.3910173775 2.166609064 0) +(0.5131645432 2.134549093 0) +(0.6325085564 2.09870912 0) +(0.7510717857 2.061927746 0) +(0.8702328596 2.025860752 0) +(0.9900417296 1.990589479 0) +(1.110267433 1.95584647 0) +(1.230734337 1.921415278 0) +(1.351885214 1.887897244 0) +(1.474534255 1.856528713 0) +(1.599537821 1.82904641 0) +(1.727248053 1.807154045 0) +(1.857342748 1.792195976 0) +(1.989032419 1.785397722 0) +(2.121184376 1.785074269 0) +(2.25334073 1.785074269 0) +(2.385497242 1.785074269 0) +(2.517653654 1.785074269 0) +(2.649809985 1.785074269 0) +(2.78196646 1.785074269 0) +(2.914122979 1.785074269 0) +(3.046279308 1.785074269 0) +(3.178435741 1.785074269 0) +(3.310592192 1.785074269 0) +(3.442748781 1.785074269 0) +(3.574905046 1.785074269 0) +(3.70706155 1.785074269 0) +(3.839219071 1.785074269 0) +(3.971374607 1.785074269 0) +(4.103531568 1.785074269 0) +(4.235687118 1.785074269 0) +(4.367843357 1.785074269 0) +(4.500000171 1.785074269 0) +(4.632156982 1.785074269 0) +(4.764313225 1.785074269 0) +(4.896468775 1.785074269 0) +(5.028625732 1.785074269 0) +(5.160781268 1.785074269 0) +(5.292938793 1.785074269 0) +(5.425095229 1.785074269 0) +(5.557252729 1.785074269 0) +(5.689408568 1.785074269 0) +(5.821563836 1.785074269 0) +(5.953720411 1.785074269 0) +(6.085876832 1.785074269 0) +(6.21803385 1.785074269 0) +(6.350190479 1.785074269 0) +(6.482347111 1.785074269 0) +(6.614502543 1.785074269 0) +(6.746658618 1.785074269 0) +(6.878816036 1.785074269 0) +(7.010967925 1.785397738 0) +(7.142657711 1.792195575 0) +(7.272753275 1.807152947 0) +(7.400462289 1.829046924 0) +(7.525464182 1.856530785 0) +(7.648116507 1.887896163 0) +(7.769267971 1.921413526 0) +(7.889735093 1.955844892 0) +(8.009959275 1.990588494 0) +(8.129768268 2.025859614 0) +(8.248929946 2.061926195 0) +(8.367494504 2.098706938 0) +(8.486838446 2.134546784 0) +(8.608983754 2.166608021 0) +(8.73635575 2.188923267 0) +(8.867850011 2.196747739 0) +(9 2.197049804 0) +(0 2.344956176 0) +(0.1315188685 2.344707302 0) +(0.2624965139 2.33826174 0) +(0.3900821275 2.319883948 0) +(0.5133622721 2.293478054 0) +(0.6343336271 2.263958797 0) +(0.7546618964 2.233664164 0) +(0.875482575 2.203957924 0) +(0.9968368046 2.174907072 0) +(1.118534355 2.14629132 0) +(1.240430569 2.117932392 0) +(1.362890129 2.090325579 0) +(1.486583639 2.064489183 0) +(1.612216431 2.041853644 0) +(1.740078543 2.023822203 0) +(1.869904596 2.01150213 0) +(2.001044335 2.005902812 0) +(2.132564833 2.005636403 0) +(2.264088952 2.005636403 0) +(2.3956132 2.005636403 0) +(2.527137366 2.005636403 0) +(2.658661466 2.005636403 0) +(2.790185685 2.005636403 0) +(2.921709939 2.005636403 0) +(3.053234038 2.005636403 0) +(3.184758221 2.005636403 0) +(3.31628242 2.005636403 0) +(3.447806733 2.005636403 0) +(3.579330775 2.005636403 0) +(3.710855018 2.005636403 0) +(3.8423801 2.005636403 0) +(3.973903546 2.005636403 0) +(4.105428164 2.005636403 0) +(4.236951618 2.005636403 0) +(4.368475643 2.005636403 0) +(4.500000139 2.005636403 0) +(4.631524636 2.005636403 0) +(4.763048661 2.005636403 0) +(4.894572118 2.005636403 0) +(5.026096736 2.005636403 0) +(5.157620182 2.005636403 0) +(5.289145264 2.005636403 0) +(5.42066945 2.005636403 0) +(5.552194511 2.005636403 0) +(5.683718204 2.005636403 0) +(5.815241432 2.005636403 0) +(5.946765732 2.005636403 0) +(6.078289904 2.005636403 0) +(6.209814571 2.005636403 0) +(6.341338918 2.005636403 0) +(6.472863261 2.005636403 0) +(6.604386621 2.005636403 0) +(6.735910511 2.005636403 0) +(6.867435507 2.005636403 0) +(6.99895595 2.005902825 0) +(7.130095782 2.011501799 0) +(7.25992255 2.023821299 0) +(7.387783657 2.041854066 0) +(7.513415071 2.06449089 0) +(7.637111286 2.090324688 0) +(7.759571332 2.117930949 0) +(7.881467725 2.14629002 0) +(8.003164021 2.174906261 0) +(8.124518354 2.203956986 0) +(8.245339529 2.233662887 0) +(8.365668893 2.263957 0) +(8.486640189 2.293476151 0) +(8.609918804 2.319883088 0) +(8.737502332 2.33826283 0) +(8.868481125 2.344707383 0) +(9 2.344956176 0) +(0 2.467038715 0) +(0.1309979467 2.466833826 0) +(0.2615503245 2.461527434 0) +(0.3893101682 2.446397677 0) +(0.5135254786 2.424658683 0) +(0.6358400479 2.400356573 0) +(0.7576251886 2.375416123 0) +(0.8798157118 2.350960075 0) +(1.002445488 2.327043585 0) +(1.125357908 2.303485296 0) +(1.248433878 2.280138441 0) +(1.371973633 2.257410774 0) +(1.496529251 2.236140626 0) +(1.622681409 2.217505624 0) +(1.750668884 2.202661007 0) +(1.880273198 2.192518348 0) +(2.010959021 2.187908636 0) +(2.14195831 2.187689311 0) +(2.272960579 2.187689311 0) +(2.403962955 2.187689311 0) +(2.534965263 2.187689311 0) +(2.665967516 2.187689311 0) +(2.796969868 2.187689311 0) +(2.927972248 2.187689311 0) +(3.0589745 2.187689311 0) +(3.189976823 2.187689311 0) +(3.320979158 2.187689311 0) +(3.451981586 2.187689311 0) +(3.582983793 2.187689311 0) +(3.713986164 2.187689311 0) +(3.844989225 2.187689311 0) +(3.975990939 2.187689311 0) +(4.106993621 2.187689311 0) +(4.237995343 2.187689311 0) +(4.368997536 2.187689311 0) +(4.500000114 2.187689311 0) +(4.631002696 2.187689311 0) +(4.762004889 2.187689311 0) +(4.893006611 2.187689311 0) +(5.024009293 2.187689311 0) +(5.155011004 2.187689311 0) +(5.286014068 2.187689311 0) +(5.417016393 2.187689311 0) +(5.548019436 2.187689311 0) +(5.679021357 2.187689311 0) +(5.810022893 2.187689311 0) +(5.941025311 2.187689311 0) +(6.072027625 2.187689311 0) +(6.203030343 2.187689311 0) +(6.3340328 2.187689311 0) +(6.465035254 2.187689311 0) +(6.5960369 2.187689311 0) +(6.727038979 2.187689311 0) +(6.858041971 2.187689311 0) +(6.989041211 2.187908647 0) +(7.119727114 2.192518075 0) +(7.249332018 2.202660263 0) +(7.377318664 2.217505973 0) +(7.503469689 2.236142031 0) +(7.628027532 2.25741004 0) +(7.751567686 2.280137253 0) +(7.874643804 2.303484225 0) +(7.997555193 2.327042917 0) +(8.120185054 2.350959304 0) +(8.242375986 2.375415071 0) +(8.364162029 2.400355093 0) +(8.48647655 2.424657117 0) +(8.610690596 2.44639697 0) +(8.738448725 2.461528331 0) +(8.869002046 2.466833893 0) +(9 2.467038715 0) +(0 2.567806153 0) +(0.1305679757 2.56763757 0) +(0.2607693358 2.563271453 0) +(0.3886729896 2.55082264 0) +(0.51366019 2.532935724 0) +(0.6370834539 2.512939867 0) +(0.7600711025 2.492418783 0) +(0.8833923014 2.472296266 0) +(1.007074919 2.452617699 0) +(1.130990096 2.433233861 0) +(1.255039844 2.414023992 0) +(1.379471194 2.395323593 0) +(1.504738401 2.377822445 0) +(1.631319246 2.362489505 0) +(1.759410195 2.350275304 0) +(1.888831485 2.341929891 0) +(2.019142645 2.338137005 0) +(2.149711725 2.337956544 0) +(2.280283256 2.337956544 0) +(2.410854877 2.337956544 0) +(2.541426441 2.337956544 0) +(2.67199796 2.337956544 0) +(2.80256956 2.337956544 0) +(2.933141184 2.337956544 0) +(3.063712702 2.337956544 0) +(3.194284278 2.337956544 0) +(3.324855865 2.337956544 0) +(3.455427528 2.337956544 0) +(3.585999011 2.337956544 0) +(3.716570625 2.337956544 0) +(3.847142811 2.337956544 0) +(3.977713886 2.337956544 0) +(4.108285754 2.337956544 0) +(4.238856839 2.337956544 0) +(4.369428307 2.337956544 0) +(4.500000096 2.337956544 0) +(4.630571882 2.337956544 0) +(4.761143354 2.337956544 0) +(4.891714436 2.337956544 0) +(5.022286307 2.337956544 0) +(5.152857382 2.337956544 0) +(5.283429564 2.337956544 0) +(5.414001143 2.337956544 0) +(5.544573314 2.337956544 0) +(5.675144561 2.337956544 0) +(5.805715486 2.337956544 0) +(5.936287143 2.337956544 0) +(6.066858711 2.337956544 0) +(6.197430614 2.337956544 0) +(6.3280023 2.337956544 0) +(6.458573986 2.337956544 0) +(6.589145004 2.337956544 0) +(6.719716379 2.337956544 0) +(6.850288507 2.337956544 0) +(6.980857546 2.338137014 0) +(7.111168771 2.341929667 0) +(7.240590546 2.350274692 0) +(7.368680814 2.362489791 0) +(7.495260725 2.377823601 0) +(7.620529764 2.39532299 0) +(7.744961443 2.414023015 0) +(7.869011314 2.43323298 0) +(7.992925643 2.45261715 0) +(8.116608329 2.472295631 0) +(8.239929864 2.492417918 0) +(8.362918254 2.512938649 0) +(8.486341479 2.532934435 0) +(8.611327639 2.550822057 0) +(8.739229882 2.563272191 0) +(8.869432018 2.567637625 0) +(9 2.567806153 0) +(0 2.650980018 0) +(0.1302130758 2.650841402 0) +(0.2601247045 2.647251392 0) +(0.3881470596 2.63701544 0) +(0.5137713811 2.622308046 0) +(0.6381097668 2.605866589 0) +(0.7620899704 2.588993268 0) +(0.8863444332 2.572447666 0) +(1.01089607 2.556267099 0) +(1.135638928 2.54032887 0) +(1.260492435 2.524533686 0) +(1.385659713 2.509157411 0) +(1.511514268 2.494767212 0) +(1.638448952 2.482159806 0) +(1.76662531 2.472116763 0) +(1.895895531 2.465254804 0) +(2.025897442 2.46213613 0) +(2.156111426 2.461987747 0) +(2.286327425 2.461987747 0) +(2.416543498 2.461987747 0) +(2.546759524 2.461987747 0) +(2.676975514 2.461987747 0) +(2.80719157 2.461987747 0) +(2.937407645 2.461987747 0) +(3.067623634 2.461987747 0) +(3.19783967 2.461987747 0) +(3.328055715 2.461987747 0) +(3.458271823 2.461987747 0) +(3.588487782 2.461987747 0) +(3.71870385 2.461987747 0) +(3.848920386 2.461987747 0) +(3.979136011 2.461987747 0) +(4.109352289 2.461987747 0) +(4.239567921 2.461987747 0) +(4.369783868 2.461987747 0) +(4.500000079 2.461987747 0) +(4.630216289 2.461987747 0) +(4.760432236 2.461987747 0) +(4.890647868 2.461987747 0) +(5.020864146 2.461987747 0) +(5.151079771 2.461987747 0) +(5.281296307 2.461987747 0) +(5.411512346 2.461987747 0) +(5.541728871 2.461987747 0) +(5.671944632 2.461987747 0) +(5.802160136 2.461987747 0) +(5.932376236 2.461987747 0) +(6.062592268 2.461987747 0) +(6.192808575 2.461987747 0) +(6.3230247 2.461987747 0) +(6.453240825 2.461987747 0) +(6.583456404 2.461987747 0) +(6.713672275 2.461987747 0) +(6.843888764 2.461987747 0) +(6.974102714 2.462136137 0) +(7.104104679 2.46525462 0) +(7.2333753 2.47211626 0) +(7.361551096 2.482160042 0) +(7.488485014 2.494768163 0) +(7.614341075 2.509156915 0) +(7.739508625 2.524532883 0) +(7.864362232 2.540328146 0) +(7.989104389 2.556266647 0) +(8.113656086 2.572447144 0) +(8.237910825 2.588992556 0) +(8.361891636 2.605865588 0) +(8.486229989 2.622306986 0) +(8.611853457 2.637014961 0) +(8.739874654 2.647251999 0) +(8.869786921 2.650841447 0) +(9 2.650980018 0) +(0 2.719632075 0) +(0.12992014 2.719518194 0) +(0.259592623 2.716568785 0) +(0.387712955 2.708159339 0) +(0.5138631589 2.696076335 0) +(0.6389568893 2.682568695 0) +(0.7637563521 2.668706252 0) +(0.888781135 2.655113051 0) +(1.014050064 2.641819747 0) +(1.139476093 2.628725539 0) +(1.264993027 2.615748851 0) +(1.390767742 2.603116321 0) +(1.517107096 2.591293912 0) +(1.644333842 2.580936174 0) +(1.772580696 2.572685214 0) +(1.901726225 2.567047704 0) +(2.03147288 2.564485526 0) +(2.161393766 2.564363621 0) +(2.291316308 2.564363621 0) +(2.42123891 2.564363621 0) +(2.551161474 2.564363621 0) +(2.681084008 2.564363621 0) +(2.811006596 2.564363621 0) +(2.9409292 2.564363621 0) +(3.070851733 2.564363621 0) +(3.200774305 2.564363621 0) +(3.330696884 2.564363621 0) +(3.460619515 2.564363621 0) +(3.590542025 2.564363621 0) +(3.720464621 2.564363621 0) +(3.850387607 2.564363621 0) +(3.980309839 2.564363621 0) +(4.110232611 2.564363621 0) +(4.24015485 2.564363621 0) +(4.37007735 2.564363621 0) +(4.500000064 2.564363621 0) +(4.629922779 2.564363621 0) +(4.759845279 2.564363621 0) +(4.889767518 2.564363621 0) +(5.019690289 2.564363621 0) +(5.149612521 2.564363621 0) +(5.279535507 2.564363621 0) +(5.409458079 2.564363621 0) +(5.539381054 2.564363621 0) +(5.6693034 2.564363621 0) +(5.799225536 2.564363621 0) +(5.929148161 2.564363621 0) +(6.059070729 2.564363621 0) +(6.188993521 2.564363621 0) +(6.318916168 2.564363621 0) +(6.448838814 2.564363621 0) +(6.578761007 2.564363621 0) +(6.708683446 2.564363621 0) +(6.838606389 2.564363621 0) +(6.96852725 2.564485532 0) +(7.09827395 2.567047552 0) +(7.227419804 2.5726848 0) +(7.3556662 2.580936368 0) +(7.482892314 2.591294693 0) +(7.609232907 2.603115913 0) +(7.735007843 2.615748191 0) +(7.860524857 2.628724944 0) +(7.985950314 2.641819376 0) +(8.111219289 2.655112622 0) +(8.2362443 2.668705668 0) +(8.361044264 2.682567872 0) +(8.486137968 2.696075464 0) +(8.612287471 2.708158946 0) +(8.74040685 2.716569284 0) +(8.870079857 2.71951823 0) +(9 2.719632075 0) +(0 2.77629777 0) +(0.1296783495 2.776204304 0) +(0.2591534408 2.773783652 0) +(0.3873546432 2.766881811 0) +(0.5139389125 2.756964989 0) +(0.6396561079 2.745878934 0) +(0.7651317907 2.734501683 0) +(0.8907923993 2.723345405 0) +(1.016653385 2.712435261 0) +(1.142643305 2.701688519 0) +(1.268707834 2.691038229 0) +(1.394983931 2.680670399 0) +(1.52172344 2.670967454 0) +(1.649191254 2.662466601 0) +(1.777496297 2.655694833 0) +(1.906538904 2.651067989 0) +(2.03607487 2.648965146 0) +(2.165753831 2.648865095 0) +(2.295434153 2.648865095 0) +(2.425114523 2.648865095 0) +(2.554794861 2.648865095 0) +(2.684475175 2.648865095 0) +(2.814155534 2.648865095 0) +(2.943835906 2.648865095 0) +(3.07351622 2.648865095 0) +(3.203196565 2.648865095 0) +(3.332876917 2.648865095 0) +(3.462557311 2.648865095 0) +(3.592237604 2.648865095 0) +(3.721917971 2.648865095 0) +(3.851598654 2.648865095 0) +(3.981278721 2.648865095 0) +(4.110959232 2.648865095 0) +(4.240639304 2.648865095 0) +(4.370319589 2.648865095 0) +(4.500000054 2.648865095 0) +(4.629680514 2.648865095 0) +(4.759360804 2.648865095 0) +(4.889040875 2.648865095 0) +(5.018721382 2.648865095 0) +(5.14840145 2.648865095 0) +(5.278082136 2.648865095 0) +(5.407762482 2.648865095 0) +(5.537443157 2.648865095 0) +(5.667123318 2.648865095 0) +(5.796803304 2.648865095 0) +(5.926483693 2.648865095 0) +(6.056164036 2.648865095 0) +(6.185844561 2.648865095 0) +(6.315524968 2.648865095 0) +(6.445205375 2.648865095 0) +(6.574885411 2.648865095 0) +(6.704565646 2.648865095 0) +(6.834246296 2.648865095 0) +(6.963925236 2.648965151 0) +(7.093461239 2.651067865 0) +(7.222504114 2.655694494 0) +(7.350808779 2.66246676 0) +(7.478276075 2.670968095 0) +(7.6050166 2.680670064 0) +(7.731292879 2.691037688 0) +(7.857357475 2.701688031 0) +(7.983346925 2.712434956 0) +(8.10920795 2.723345053 0) +(8.234868746 2.734501203 0) +(8.360344839 2.745878259 0) +(8.486062011 2.756964275 0) +(8.612645707 2.766881488 0) +(8.740846125 2.773784061 0) +(8.870321646 2.776204335 0) +(9 2.77629777 0) +(0 2.823069871 0) +(0.1294787746 2.822993258 0) +(0.258790938 2.821009043 0) +(0.3870588911 2.815351584 0) +(0.51400144 2.807222739 0) +(0.6402332461 2.79813547 0) +(0.7662670832 2.788809507 0) +(0.892452505 2.779664676 0) +(1.018802176 2.770721601 0) +(1.145257536 2.761912469 0) +(1.271774052 2.753182397 0) +(1.39846399 2.744683859 0) +(1.52553379 2.736730329 0) +(1.653200583 2.729762157 0) +(1.781553654 2.724211321 0) +(1.910511309 2.720418684 0) +(2.039873371 2.718694978 0) +(2.169352648 2.718612966 0) +(2.298833039 2.718612966 0) +(2.428313469 2.718612966 0) +(2.557793875 2.718612966 0) +(2.68727426 2.718612966 0) +(2.816754681 2.718612966 0) +(2.946235114 2.718612966 0) +(3.075715499 2.718612966 0) +(3.205195909 2.718612966 0) +(3.334676325 2.718612966 0) +(3.464156775 2.718612966 0) +(3.593637143 2.718612966 0) +(3.723117571 2.718612966 0) +(3.852598261 2.718612966 0) +(3.982078443 2.718612966 0) +(4.111558986 2.718612966 0) +(4.241039175 2.718612966 0) +(4.370519536 2.718612966 0) +(4.500000043 2.718612966 0) +(4.62948055 2.718612966 0) +(4.758960911 2.718612966 0) +(4.8884411 2.718612966 0) +(5.017921643 2.718612966 0) +(5.147401829 2.718612966 0) +(5.276882514 2.718612966 0) +(5.406362925 2.718612966 0) +(5.535843607 2.718612966 0) +(5.665323868 2.718612966 0) +(5.794803982 2.718612966 0) +(5.924284429 2.718612966 0) +(6.053764839 2.718612966 0) +(6.183245396 2.718612966 0) +(6.312725857 2.718612966 0) +(6.442206318 2.718612966 0) +(6.571686475 2.718612966 0) +(6.701166796 2.718612966 0) +(6.830647457 2.718612966 0) +(6.960126714 2.718694982 0) +(7.089488807 2.720418582 0) +(7.218446682 2.724211043 0) +(7.346799446 2.729762287 0) +(7.474465814 2.736730854 0) +(7.601536446 2.744683584 0) +(7.728226532 2.753181953 0) +(7.854743104 2.761912069 0) +(7.981198079 2.770721351 0) +(8.107547782 2.779664388 0) +(8.233733357 2.788809114 0) +(8.359767529 2.798134916 0) +(8.485999318 2.807222154 0) +(8.612941396 2.81535132 0) +(8.741208707 2.821009378 0) +(8.870521221 2.822993283 0) +(9 2.823069871 0) +(0 2.86167576 0) +(0.1293140447 2.861613055 0) +(0.2584917266 2.859989077 0) +(0.3868147761 2.855358739 0) +(0.5140530504 2.848705696 0) +(0.6407096182 2.841268234 0) +(0.7672041586 2.833635412 0) +(0.8938227632 2.826150838 0) +(1.020575797 2.818831391 0) +(1.147415332 2.811621569 0) +(1.274304921 2.804476454 0) +(1.401336446 2.797520836 0) +(1.528678869 2.791011281 0) +(1.6565099 2.78530819 0) +(1.784902614 2.780765116 0) +(1.913790149 2.777661038 0) +(2.04300867 2.776250273 0) +(2.172323126 2.776183151 0) +(2.301638493 2.776183151 0) +(2.430953894 2.776183151 0) +(2.560269273 2.776183151 0) +(2.689584635 2.776183151 0) +(2.818900028 2.776183151 0) +(2.94821543 2.776183151 0) +(3.077530792 2.776183151 0) +(3.206846176 2.776183151 0) +(3.336161564 2.776183151 0) +(3.46547698 2.776183151 0) +(3.594792329 2.776183151 0) +(3.724107729 2.776183151 0) +(3.853423339 2.776183151 0) +(3.982738536 2.776183151 0) +(4.112054029 2.776183151 0) +(4.241369229 2.776183151 0) +(4.370684571 2.776183151 0) +(4.500000036 2.776183151 0) +(4.629315496 2.776183151 0) +(4.758630843 2.776183151 0) +(4.887946043 2.776183151 0) +(5.017261536 2.776183151 0) +(5.146576732 2.776183151 0) +(5.275892343 2.776183151 0) +(5.405207729 2.776183151 0) +(5.534523332 2.776183151 0) +(5.663838593 2.776183151 0) +(5.793153736 2.776183151 0) +(5.92246915 2.776183151 0) +(6.051784532 2.776183151 0) +(6.181100036 2.776183151 0) +(6.310415461 2.776183151 0) +(6.439730886 2.776183151 0) +(6.569046061 2.776183151 0) +(6.698361371 2.776183151 0) +(6.827676961 2.776183151 0) +(6.9569914 2.776250277 0) +(7.086209946 2.777660955 0) +(7.215097661 2.780764889 0) +(7.343490121 2.785308297 0) +(7.471320807 2.791011711 0) +(7.598663911 2.797520612 0) +(7.725695557 2.80447609 0) +(7.852585193 2.811621241 0) +(7.979424411 2.818831186 0) +(8.106177471 2.826150602 0) +(8.2327962 2.83363509 0) +(8.359291018 2.841267781 0) +(8.485947571 2.848705217 0) +(8.613185457 2.855358522 0) +(8.741507982 2.859989352 0) +(8.870685954 2.861613076 0) +(9 2.86167576 0) +(0 2.893541222 0) +(0.1291780759 2.893489998 0) +(0.2582447563 2.892163361 0) +(0.3866132825 2.888380811 0) +(0.5140956496 2.882945903 0) +(0.6411028175 2.876870197 0) +(0.7679776246 2.870634902 0) +(0.89495378 2.864520711 0) +(1.022039752 2.858541413 0) +(1.149196386 2.852651668 0) +(1.27639391 2.846814783 0) +(1.403707384 2.841132699 0) +(1.53127483 2.835815006 0) +(1.659241423 2.831156119 0) +(1.787666859 2.827444856 0) +(1.916496516 2.824909116 0) +(2.04559656 2.823756655 0) +(2.174774971 2.823701822 0) +(2.303954127 2.823701822 0) +(2.43313331 2.823701822 0) +(2.562312477 2.823701822 0) +(2.691491629 2.823701822 0) +(2.820670806 2.823701822 0) +(2.949849991 2.823701822 0) +(3.079029143 2.823701822 0) +(3.208208313 2.823701822 0) +(3.337387486 2.823701822 0) +(3.466566683 2.823701822 0) +(3.595745825 2.823701822 0) +(3.724925007 2.823701822 0) +(3.854104361 2.823701822 0) +(3.983283379 2.823701822 0) +(4.112462636 2.823701822 0) +(4.241641657 2.823701822 0) +(4.370820796 2.823701822 0) +(4.500000029 2.823701822 0) +(4.629179264 2.823701822 0) +(4.7583584 2.823701822 0) +(4.887537421 2.823701822 0) +(5.016716679 2.823701822 0) +(5.145895696 2.823701822 0) +(5.275075054 2.823701822 0) +(5.404254221 2.823701822 0) +(5.533433575 2.823701822 0) +(5.662612643 2.823701822 0) +(5.791791614 2.823701822 0) +(5.920970811 2.823701822 0) +(6.050149979 2.823701822 0) +(6.179329246 2.823701822 0) +(6.30850845 2.823701822 0) +(6.437687654 2.823701822 0) +(6.566866654 2.823701822 0) +(6.696045761 2.823701822 0) +(6.8252251 2.823701822 0) +(6.9544035 2.823756658 0) +(7.083503561 2.824909049 0) +(7.212333364 2.82744467 0) +(7.340758596 2.831156206 0) +(7.468724904 2.835815358 0) +(7.596292907 2.841132516 0) +(7.723606482 2.846814486 0) +(7.850804043 2.8526514 0) +(7.977960418 2.858541246 0) +(8.105046411 2.864520518 0) +(8.232022668 2.870634639 0) +(8.3588977 2.876869827 0) +(8.485904857 2.882945511 0) +(8.613386907 2.888380634 0) +(8.741755007 2.892163586 0) +(8.870821921 2.893490015 0) +(9 2.893541222 0) +(0 2.919843108 0) +(0.1290658467 2.91980136 0) +(0.258040906 2.91872015 0) +(0.3864469689 2.915637368 0) +(0.5141308114 2.911207913 0) +(0.6414273661 2.906256207 0) +(0.7686160464 2.901174436 0) +(0.8958873261 2.896191364 0) +(1.023248106 2.891318231 0) +(1.150666476 2.886518083 0) +(1.278118171 2.881761016 0) +(1.405664365 2.877130113 0) +(1.533417547 2.872796189 0) +(1.661496034 2.868999191 0) +(1.789948479 2.865974508 0) +(1.918730364 2.863907878 0) +(2.047732614 2.862968621 0) +(2.176798734 2.862923932 0) +(2.305865461 2.862923932 0) +(2.43493221 2.862923932 0) +(2.563998946 2.862923932 0) +(2.69306567 2.862923932 0) +(2.822132414 2.862923932 0) +(2.951199164 2.862923932 0) +(3.080265889 2.862923932 0) +(3.209332627 2.862923932 0) +(3.338399368 2.862923932 0) +(3.467466128 2.862923932 0) +(3.596532843 2.862923932 0) +(3.725599589 2.862923932 0) +(3.854666479 2.862923932 0) +(3.983733093 2.862923932 0) +(4.112799904 2.862923932 0) +(4.241866521 2.862923932 0) +(4.370933232 2.862923932 0) +(4.500000025 2.862923932 0) +(4.629066814 2.862923932 0) +(4.758133525 2.862923932 0) +(4.887200143 2.862923932 0) +(5.016266954 2.862923932 0) +(5.145333568 2.862923932 0) +(5.274400457 2.862923932 0) +(5.403467196 2.862923932 0) +(5.532534082 2.862923932 0) +(5.661600736 2.862923932 0) +(5.790667314 2.862923932 0) +(5.919734071 2.862923932 0) +(6.048800811 2.862923932 0) +(6.177867629 2.862923932 0) +(6.306934393 2.862923932 0) +(6.436001161 2.862923932 0) +(6.565067761 2.862923932 0) +(6.69413445 2.862923932 0) +(6.823201321 2.862923932 0) +(6.952267432 2.862968623 0) +(7.0812697 2.863907823 0) +(7.210051704 2.865974356 0) +(7.338503982 2.868999262 0) +(7.466582236 2.872796475 0) +(7.594335871 2.877129964 0) +(7.721882146 2.881760774 0) +(7.849333871 2.886517865 0) +(7.976752032 2.891318095 0) +(8.104112829 2.896191207 0) +(8.231384193 2.901174221 0) +(8.358573057 2.906255905 0) +(8.4858696 2.911207594 0) +(8.613553186 2.915637224 0) +(8.7419589 2.918720333 0) +(8.870934154 2.919801374 0) +(9 2.919843108 0) +(0 2.941552794 0) +(0.1289732123 2.941518869 0) +(0.2578726471 2.940640234 0) +(0.3863096932 2.938135044 0) +(0.5141598343 2.934535494 0) +(0.64169525 2.930511543 0) +(0.7691430029 2.926381895 0) +(0.8966578789 2.922332454 0) +(1.024245486 2.918372354 0) +(1.151879895 2.914471564 0) +(1.279541383 2.910605784 0) +(1.407279666 2.906842529 0) +(1.535186155 2.903320611 0) +(1.663357 2.900235021 0) +(1.791831737 2.897777045 0) +(1.920574191 2.89609762 0) +(2.049495722 2.895334342 0) +(2.178469156 2.895298026 0) +(2.307443084 2.895298026 0) +(2.43641703 2.895298026 0) +(2.565390965 2.895298026 0) +(2.69436489 2.895298026 0) +(2.823338831 2.895298026 0) +(2.952312778 2.895298026 0) +(3.081286703 2.895298026 0) +(3.21026064 2.895298026 0) +(3.339234579 2.895298026 0) +(3.468208533 2.895298026 0) +(3.59718245 2.895298026 0) +(3.726156396 2.895298026 0) +(3.855130454 2.895298026 0) +(3.984104289 2.895298026 0) +(4.113078286 2.895298026 0) +(4.242052125 2.895298026 0) +(4.371026039 2.895298026 0) +(4.500000018 2.895298026 0) +(4.628974 2.895298026 0) +(4.757947914 2.895298026 0) +(4.88692175 2.895298026 0) +(5.015895746 2.895298026 0) +(5.144869582 2.895298026 0) +(5.273843643 2.895298026 0) +(5.402817579 2.895298026 0) +(5.531791636 2.895298026 0) +(5.660765507 2.895298026 0) +(5.789739314 2.895298026 0) +(5.918713264 2.895298026 0) +(6.0476872 2.895298026 0) +(6.176661204 2.895298026 0) +(6.305635161 2.895298026 0) +(6.434609121 2.895298026 0) +(6.563582946 2.895298026 0) +(6.692556843 2.895298026 0) +(6.821530889 2.895298026 0) +(6.950504318 2.895334344 0) +(7.079425861 2.896097574 0) +(7.208168411 2.897776921 0) +(7.336643011 2.900235079 0) +(7.464813668 2.903320844 0) +(7.592720529 2.906842408 0) +(7.720458875 2.910605587 0) +(7.848120389 2.914471387 0) +(7.975754625 2.918372243 0) +(8.103342246 2.922332326 0) +(8.230857193 2.92638172 0) +(8.358305093 2.930511298 0) +(8.4858405 2.934535235 0) +(8.613690432 2.938134927 0) +(8.742127196 2.940640383 0) +(8.871026786 2.94151888 0) +(9 2.941552794 0) +(0 2.95947206 0) +(0.1288967514 2.959444591 0) +(0.2577337655 2.958733164 0) +(0.386196385 2.95670472 0) +(0.5141837896 2.953790177 0) +(0.6419163621 2.950531998 0) +(0.7695779546 2.947188237 0) +(0.8972938964 2.943909419 0) +(1.025068729 2.94070294 0) +(1.152881455 2.937544484 0) +(1.280716109 2.934414376 0) +(1.408612941 2.931367282 0) +(1.536645971 2.928515597 0) +(1.664893049 2.926017206 0) +(1.793386186 2.924026991 0) +(1.922096094 2.922667167 0) +(2.050950999 2.922049144 0) +(2.17984793 2.922019739 0) +(2.308745261 2.922019739 0) +(2.437642606 2.922019739 0) +(2.566539943 2.922019739 0) +(2.695437271 2.922019739 0) +(2.824334613 2.922019739 0) +(2.953231959 2.922019739 0) +(3.082129288 2.922019739 0) +(3.211026626 2.922019739 0) +(3.339923965 2.922019739 0) +(3.468821318 2.922019739 0) +(3.597718639 2.922019739 0) +(3.726615986 2.922019739 0) +(3.855513421 2.922019739 0) +(3.984410679 2.922019739 0) +(4.113308064 2.922019739 0) +(4.242205321 2.922019739 0) +(4.371102643 2.922019739 0) +(4.500000014 2.922019739 0) +(4.628897389 2.922019739 0) +(4.757794707 2.922019739 0) +(4.886691968 2.922019739 0) +(5.015589354 2.922019739 0) +(5.144486607 2.922019739 0) +(5.273384046 2.922019739 0) +(5.402281386 2.922019739 0) +(5.531178818 2.922019739 0) +(5.660076104 2.922019739 0) +(5.788973336 2.922019739 0) +(5.917870686 2.922019739 0) +(6.046768025 2.922019739 0) +(6.175665414 2.922019739 0) +(6.304562771 2.922019739 0) +(6.433460129 2.922019739 0) +(6.562357375 2.922019739 0) +(6.691254679 2.922019739 0) +(6.820152107 2.922019739 0) +(6.949049032 2.922049145 0) +(7.077903946 2.92266713 0) +(7.206613936 2.924026891 0) +(7.335106961 2.926017253 0) +(7.463353886 2.928515786 0) +(7.591387214 2.931367184 0) +(7.7192841 2.934414217 0) +(7.847118775 2.937544341 0) +(7.974931364 2.94070285 0) +(8.102706207 2.943909315 0) +(8.230422204 2.947188096 0) +(8.358083914 2.9505318 0) +(8.485816482 2.953789968 0) +(8.613803718 2.956704625 0) +(8.742266107 2.958733284 0) +(8.871103246 2.9594446 0) +(9 2.95947206 0) +(0 2.974262697 0) +(0.1288336403 2.974240557 0) +(0.257619132 2.973667143 0) +(0.38610286 2.972032209 0) +(0.5142035625 2.969683073 0) +(0.6420988693 2.967056966 0) +(0.7699369657 2.964361879 0) +(0.8978188679 2.961719136 0) +(1.025748236 2.959134699 0) +(1.153708147 2.956588969 0) +(1.281685732 2.954066088 0) +(1.409713433 2.951610115 0) +(1.53785091 2.949311644 0) +(1.66616091 2.947297929 0) +(1.794669236 2.945693807 0) +(1.923352279 2.944597782 0) +(2.052152191 2.944099653 0) +(2.180985976 2.944075952 0) +(2.309820083 2.944075952 0) +(2.438654202 2.944075952 0) +(2.567488314 2.944075952 0) +(2.69632242 2.944075952 0) +(2.825156536 2.944075952 0) +(2.953990655 2.944075952 0) +(3.082824761 2.944075952 0) +(3.211658874 2.944075952 0) +(3.340492988 2.944075952 0) +(3.469327113 2.944075952 0) +(3.598161214 2.944075952 0) +(3.726995332 2.944075952 0) +(3.855829525 2.944075952 0) +(3.984663571 2.944075952 0) +(4.113497725 2.944075952 0) +(4.242331771 2.944075952 0) +(4.371165871 2.944075952 0) +(4.500000014 2.944075952 0) +(4.628834154 2.944075952 0) +(4.757668254 2.944075952 0) +(4.8865023 2.944075952 0) +(5.015336454 2.944075952 0) +(5.1441705 2.944075952 0) +(5.273004693 2.944075952 0) +(5.401838807 2.944075952 0) +(5.530672996 2.944075952 0) +(5.659507068 2.944075952 0) +(5.788341096 2.944075952 0) +(5.917175218 2.944075952 0) +(6.046009332 2.944075952 0) +(6.174843486 2.944075952 0) +(6.303677614 2.944075952 0) +(6.432511743 2.944075952 0) +(6.561345782 2.944075952 0) +(6.690179868 2.944075952 0) +(6.819014054 2.944075952 0) +(6.947847836 2.944099654 0) +(7.076647754 2.944597753 0) +(7.205330861 2.945693726 0) +(7.3338391 2.947297967 0) +(7.462148975 2.949311796 0) +(7.590286693 2.951610036 0) +(7.718314436 2.954065959 0) +(7.846292039 2.956588854 0) +(7.974251836 2.959134627 0) +(8.102181214 2.961719053 0) +(8.230063161 2.964361765 0) +(8.357901354 2.967056806 0) +(8.485796657 2.969682904 0) +(8.613897221 2.972032132 0) +(8.742380764 2.97366724 0) +(8.871166361 2.974240564 0) +(9 2.974262697 0) +(0 2.986470951 0) +(0.1287815481 2.986453209 0) +(0.257524513 2.985993713 0) +(0.3860256639 2.984683581 0) +(0.5142198832 2.982801136 0) +(0.6422495114 2.980696743 0) +(0.770233295 2.978537074 0) +(0.8982521814 2.976419351 0) +(1.026309105 2.97434835 0) +(1.154390503 2.972308367 0) +(1.282486063 2.970286692 0) +(1.410621783 2.968318635 0) +(1.538845471 2.966476789 0) +(1.667207408 2.964863128 0) +(1.79572827 2.963577687 0) +(1.924389139 2.962699404 0) +(2.053143659 2.962300235 0) +(2.181925324 2.962281243 0) +(2.310707246 2.962281243 0) +(2.439489178 2.962281243 0) +(2.568271104 2.962281243 0) +(2.697053024 2.962281243 0) +(2.825834954 2.962281243 0) +(2.954616886 2.962281243 0) +(3.083398807 2.962281243 0) +(3.212180734 2.962281243 0) +(3.340962662 2.962281243 0) +(3.469744598 2.962281243 0) +(3.598526514 2.962281243 0) +(3.727308446 2.962281243 0) +(3.856090439 2.962281243 0) +(3.984872311 2.962281243 0) +(4.113654271 2.962281243 0) +(4.242436146 2.962281243 0) +(4.371218061 2.962281243 0) +(4.500000011 2.962281243 0) +(4.628781961 2.962281243 0) +(4.757563875 2.962281243 0) +(4.88634575 2.962281243 0) +(5.015127707 2.962281243 0) +(5.143909582 2.962281243 0) +(5.272691575 2.962281243 0) +(5.4014735 2.962281243 0) +(5.530255489 2.962281243 0) +(5.659037382 2.962281243 0) +(5.787819243 2.962281243 0) +(5.916601175 2.962281243 0) +(6.045383104 2.962281243 0) +(6.174165064 2.962281243 0) +(6.302947004 2.962281243 0) +(6.431728943 2.962281243 0) +(6.560510811 2.962281243 0) +(6.689292714 2.962281243 0) +(6.8180747 2.962281243 0) +(6.946856361 2.962300236 0) +(7.075610889 2.96269938 0) +(7.204271807 2.963577623 0) +(7.3327926 2.964863158 0) +(7.461154436 2.96647691 0) +(7.589378318 2.968318571 0) +(7.717514071 2.970286589 0) +(7.845609646 2.972308274 0) +(7.973690954 2.974348293 0) +(8.101747886 2.976419285 0) +(8.229766807 2.978536983 0) +(8.357750668 2.980696615 0) +(8.485780293 2.982801001 0) +(8.613974404 2.98468352 0) +(8.742475404 2.98599379 0) +(8.87121845 2.986453215 0) +(9 2.986470951 0) +(0 2.996547695 0) +(0.128738551 2.996533584 0) +(0.2574464142 2.996168115 0) +(0.3859619461 2.995126078 0) +(0.5142333543 2.99362884 0) +(0.6423738521 2.991955073 0) +(0.7704778861 2.99023734 0) +(0.8986098404 2.98855297 0) +(1.026772048 2.986905762 0) +(1.154953721 2.985283224 0) +(1.283146659 2.983675248 0) +(1.41137154 2.982109917 0) +(1.539666386 2.98064497 0) +(1.668071191 2.979361516 0) +(1.796602401 2.978339117 0) +(1.925244968 2.977640558 0) +(2.053962022 2.977323072 0) +(2.182700665 2.977307966 0) +(2.311439514 2.977307966 0) +(2.44017837 2.977307966 0) +(2.568917221 2.977307966 0) +(2.697656069 2.977307966 0) +(2.826394923 2.977307966 0) +(2.95513378 2.977307966 0) +(3.083872627 2.977307966 0) +(3.21261148 2.977307966 0) +(3.341350333 2.977307966 0) +(3.470089193 2.977307966 0) +(3.598828036 2.977307966 0) +(3.727566893 2.977307966 0) +(3.856305796 2.977307966 0) +(3.985044607 2.977307966 0) +(4.113783482 2.977307966 0) +(4.242522293 2.977307966 0) +(4.371261139 2.977307966 0) +(4.500000007 2.977307966 0) +(4.628738879 2.977307966 0) +(4.757477721 2.977307966 0) +(4.886216532 2.977307966 0) +(5.014955411 2.977307966 0) +(5.143694221 2.977307966 0) +(5.272433125 2.977307966 0) +(5.401171975 2.977307966 0) +(5.529910879 2.977307966 0) +(5.658649704 2.977307966 0) +(5.7873885 2.977307966 0) +(5.916127361 2.977307966 0) +(6.044866211 2.977307966 0) +(6.173605093 2.977307966 0) +(6.302343954 2.977307966 0) +(6.431082814 2.977307966 0) +(6.559821621 2.977307966 0) +(6.688560457 2.977307966 0) +(6.817299354 2.977307966 0) +(6.946037993 2.977323073 0) +(7.074755054 2.977640539 0) +(7.203397661 2.978339066 0) +(7.331928814 2.97936154 0) +(7.460333543 2.980645067 0) +(7.588628539 2.982109866 0) +(7.71685345 2.983675165 0) +(7.845046396 2.98528315 0) +(7.973228 2.986905716 0) +(8.101390211 2.988552917 0) +(8.229522193 2.990237268 0) +(8.357626289 2.991954971 0) +(8.485766786 2.993628733 0) +(8.614038107 2.995126029 0) +(8.742553521 2.996168176 0) +(8.87126145 2.996533588 0) +(9 2.996547695 0) +(0 3.004865081 0) +(0.128703061 3.004853967 0) +(0.257381951 3.004566109 0) +(0.3859093532 3.003745358 0) +(0.5142444736 3.002566073 0) +(0.6424764832 3.001247745 0) +(0.7706797729 2.999894789 0) +(0.8989050536 2.99856811 0) +(1.027154163 2.997270701 0) +(1.155418604 2.995992724 0) +(1.283691918 2.994726217 0) +(1.411990391 2.993493299 0) +(1.540343973 2.992339447 0) +(1.668784162 2.991328546 0) +(1.797323913 2.990523263 0) +(1.925951372 2.989973049 0) +(2.054637501 2.989722984 0) +(2.183340635 2.989711086 0) +(2.312043931 2.989711086 0) +(2.440747232 2.989711086 0) +(2.56945053 2.989711086 0) +(2.698153824 2.989711086 0) +(2.826857124 2.989711086 0) +(2.955560426 2.989711086 0) +(3.08426372 2.989711086 0) +(3.212967019 2.989711086 0) +(3.341670318 2.989711086 0) +(3.470373622 2.989711086 0) +(3.599076914 2.989711086 0) +(3.727780214 2.989711086 0) +(3.856483554 2.989711086 0) +(3.985186818 2.989711086 0) +(4.113890136 2.989711086 0) +(4.242593404 2.989711086 0) +(4.371296693 2.989711086 0) +(4.500000007 2.989711086 0) +(4.628703318 2.989711086 0) +(4.757406611 2.989711086 0) +(4.886109875 2.989711086 0) +(5.014813193 2.989711086 0) +(5.143516461 2.989711086 0) +(5.272219796 2.989711086 0) +(5.400923096 2.989711086 0) +(5.529626432 2.989711086 0) +(5.658329711 2.989711086 0) +(5.787032964 2.989711086 0) +(5.915736268 2.989711086 0) +(6.044439568 2.989711086 0) +(6.173142886 2.989711086 0) +(6.301846193 2.989711086 0) +(6.4305495 2.989711086 0) +(6.559252761 2.989711086 0) +(6.687956046 2.989711086 0) +(6.816659379 2.989711086 0) +(6.945362511 2.989722985 0) +(7.074048643 2.989973035 0) +(7.202676136 2.990523223 0) +(7.331215843 2.991328565 0) +(7.459655971 2.992339523 0) +(7.588009671 2.993493259 0) +(7.716308168 2.994726153 0) +(7.844581489 2.995992666 0) +(7.972845875 2.997270665 0) +(8.101094989 2.998568069 0) +(8.229320289 2.999894732 0) +(8.357523629 3.001247665 0) +(8.485755636 3.002565988 0) +(8.614090689 3.003745319 0) +(8.742617996 3.004566157 0) +(8.871296939 3.00485397 0) +(9 3.004865081 0) +(0 3.011730287 0) +(0.1286737674 3.011721646 0) +(0.2573287429 3.011497848 0) +(0.3858659429 3.010859748 0) +(0.5142536511 3.009942901 0) +(0.6425611957 3.008917955 0) +(0.7708464111 3.007866087 0) +(0.8991487239 3.006834649 0) +(1.027469562 3.005825966 0) +(1.155802321 3.004832391 0) +(1.284141978 3.003847733 0) +(1.412501194 3.00288919 0) +(1.540903255 3.001992117 0) +(1.669372651 3.001206183 0) +(1.797919451 3.000580108 0) +(1.926534442 3.000152339 0) +(2.055195045 2.999957924 0) +(2.183868869 2.999948674 0) +(2.312542819 2.999948674 0) +(2.441216773 2.999948674 0) +(2.569890725 2.999948674 0) +(2.698564674 2.999948674 0) +(2.827238627 2.999948674 0) +(2.955912581 2.999948674 0) +(3.08458653 2.999948674 0) +(3.213260482 2.999948674 0) +(3.341934435 2.999948674 0) +(3.470608391 2.999948674 0) +(3.599282339 2.999948674 0) +(3.727956293 2.999948674 0) +(3.856630275 2.999948674 0) +(3.985304204 2.999948674 0) +(4.113978168 2.999948674 0) +(4.242652096 2.999948674 0) +(4.371326043 2.999948674 0) +(4.500000004 2.999948674 0) +(4.628673968 2.999948674 0) +(4.757347914 2.999948674 0) +(4.886021839 2.999948674 0) +(5.014695807 2.999948674 0) +(5.143369736 2.999948674 0) +(5.272043718 2.999948674 0) +(5.400717668 2.999948674 0) +(5.529391654 2.999948674 0) +(5.658065586 2.999948674 0) +(5.786739507 2.999948674 0) +(5.915413461 2.999948674 0) +(6.044087414 2.999948674 0) +(6.172761382 2.999948674 0) +(6.301435339 2.999948674 0) +(6.430109296 2.999948674 0) +(6.558783221 2.999948674 0) +(6.687457161 2.999948674 0) +(6.816131143 2.999948674 0) +(6.944804964 2.999957924 0) +(7.073465571 3.000152328 0) +(7.202080586 3.000580076 0) +(7.330627354 3.001206197 0) +(7.4590967 3.001992176 0) +(7.587498854 3.002889159 0) +(7.715858089 3.003847683 0) +(7.84419775 3.004832346 0) +(7.972530468 3.005825938 0) +(8.100851307 3.006834616 0) +(8.229153639 3.007866043 0) +(8.357438893 3.008917893 0) +(8.485746436 3.009942835 0) +(8.614134089 3.010859718 0) +(8.742671218 3.011497886 0) +(8.871326232 3.011721649 0) +(9 3.011730287 0) +(0 3.017396857 0) +(0.1286495884 3.017390257 0) +(0.2572848247 3.017219335 0) +(0.3858301114 3.016731995 0) +(0.5142612264 3.016031767 0) +(0.6426311175 3.015248979 0) +(0.770983955 3.01444563 0) +(0.8993498504 3.013657884 0) +(1.027729894 3.012887518 0) +(1.156119042 3.012128689 0) +(1.284513458 3.011376671 0) +(1.412922813 3.010644598 0) +(1.54136489 3.009959471 0) +(1.669858392 3.009359225 0) +(1.798411011 3.00888107 0) +(1.92701571 3.008554368 0) +(2.055655244 3.008405886 0) +(2.184304876 3.008398821 0) +(2.312954604 3.008398821 0) +(2.441604334 3.008398821 0) +(2.570254063 3.008398821 0) +(2.69890379 3.008398821 0) +(2.827553521 3.008398821 0) +(2.956203252 3.008398821 0) +(3.084852979 3.008398821 0) +(3.213502708 3.008398821 0) +(3.342152438 3.008398821 0) +(3.470802171 3.008398821 0) +(3.599451896 3.008398821 0) +(3.728101629 3.008398821 0) +(3.856751382 3.008398821 0) +(3.985401089 3.008398821 0) +(4.114050832 3.008398821 0) +(4.242700539 3.008398821 0) +(4.371350268 3.008398821 0) +(4.500000004 3.008398821 0) +(4.628649743 3.008398821 0) +(4.757299468 3.008398821 0) +(4.885949175 3.008398821 0) +(5.014598918 3.008398821 0) +(5.143248629 3.008398821 0) +(5.271898379 3.008398821 0) +(5.400548111 3.008398821 0) +(5.529197861 3.008398821 0) +(5.657847579 3.008398821 0) +(5.786497282 3.008398821 0) +(5.915147014 3.008398821 0) +(6.043796743 3.008398821 0) +(6.172446486 3.008398821 0) +(6.301096221 3.008398821 0) +(6.429745954 3.008398821 0) +(6.558395661 3.008398821 0) +(6.687045382 3.008398821 0) +(6.815695132 3.008398821 0) +(6.944344764 3.008405886 0) +(7.0729843 3.008554359 0) +(7.201589018 3.008881046 0) +(7.330141611 3.009359236 0) +(7.458635075 3.009959517 0) +(7.587077225 3.010644574 0) +(7.715486593 3.011376633 0) +(7.843881014 3.012128655 0) +(7.972270129 3.012887496 0) +(8.100650175 3.01365786 0) +(8.229016082 3.014445596 0) +(8.35736895 3.015248932 0) +(8.485738839 3.016031716 0) +(8.614169914 3.016731972 0) +(8.742715146 3.017219364 0) +(8.871350411 3.017390259 0) +(9 3.017396857 0) +(0 3.022074067 0) +(0.1286296309 3.022069153 0) +(0.2572485744 3.021941874 0) +(0.3858005364 3.021578972 0) +(0.5142674793 3.021057542 0) +(0.6426888311 3.020474633 0) +(0.7710974843 3.019876413 0) +(0.8995158607 3.019289811 0) +(1.027944773 3.018716152 0) +(1.156380465 3.018151084 0) +(1.28482008 3.017591088 0) +(1.413270819 3.017045943 0) +(1.541745925 3.016535759 0) +(1.670259325 3.016088781 0) +(1.798816747 3.015732719 0) +(1.92741295 3.015489438 0) +(2.056035094 3.015378869 0) +(2.184664758 3.015373609 0) +(2.313294492 3.015373609 0) +(2.441924229 3.015373609 0) +(2.570553965 3.015373609 0) +(2.699183699 3.015373609 0) +(2.827813435 3.015373609 0) +(2.956443173 3.015373609 0) +(3.085072907 3.015373609 0) +(3.213702643 3.015373609 0) +(3.342332379 3.015373609 0) +(3.470962117 3.015373609 0) +(3.59959185 3.015373609 0) +(3.728221586 3.015373609 0) +(3.856851339 3.015373609 0) +(3.985481061 3.015373609 0) +(4.114110807 3.015373609 0) +(4.242740529 3.015373609 0) +(4.371370261 3.015373609 0) +(4.500000004 3.015373609 0) +(4.628629746 3.015373609 0) +(4.757259479 3.015373609 0) +(4.8858892 3.015373609 0) +(5.014518943 3.015373609 0) +(5.143148664 3.015373609 0) +(5.271778418 3.015373609 0) +(5.400408154 3.015373609 0) +(5.529037907 3.015373609 0) +(5.657667632 3.015373609 0) +(5.78629735 3.015373609 0) +(5.914927089 3.015373609 0) +(6.043556825 3.015373609 0) +(6.172186571 3.015373609 0) +(6.300816307 3.015373609 0) +(6.429446046 3.015373609 0) +(6.558075768 3.015373609 0) +(6.686705496 3.015373609 0) +(6.81533525 3.015373609 0) +(6.943964911 3.015378869 0) +(7.072587057 3.015489431 0) +(7.201183275 3.015732701 0) +(7.329740679 3.016088789 0) +(7.45825405 3.016535793 0) +(7.586729207 3.017045926 0) +(7.715179957 3.017591059 0) +(7.843619575 3.018151059 0) +(7.972055243 3.018716136 0) +(8.100484157 3.019289793 0) +(8.228902543 3.019876388 0) +(8.357311218 3.020474598 0) +(8.485732568 3.021057504 0) +(8.614199482 3.021578955 0) +(8.742751404 3.021941895 0) +(8.871370368 3.022069154 0) +(9 3.022074067 0) +(0 3.025934656 0) +(0.1286131579 3.025931132 0) +(0.2572186533 3.025839877 0) +(0.385776125 3.025579688 0) +(0.5142726404 3.025205838 0) +(0.6427364686 3.024787909 0) +(0.7711911918 3.024359003 0) +(0.8996528868 3.023938428 0) +(1.028122135 3.023527131 0) +(1.156596245 3.023121994 0) +(1.285073167 3.022720494 0) +(1.413558065 3.022329641 0) +(1.542060433 3.021963854 0) +(1.670590256 3.021643384 0) +(1.799151643 3.021388098 0) +(1.927740834 3.021213673 0) +(2.056348624 3.021134399 0) +(2.184961805 3.021130627 0) +(2.313575038 3.021130627 0) +(2.442188271 3.021130627 0) +(2.570801504 3.021130627 0) +(2.699414736 3.021130627 0) +(2.82802797 3.021130627 0) +(2.956641204 3.021130627 0) +(3.085254436 3.021130627 0) +(3.213867669 3.021130627 0) +(3.342480903 3.021130627 0) +(3.471094138 3.021130627 0) +(3.599707368 3.021130627 0) +(3.728320604 3.021130627 0) +(3.85693385 3.021130627 0) +(3.985547071 3.021130627 0) +(4.114160311 3.021130627 0) +(4.242773532 3.021130627 0) +(4.371386764 3.021130627 0) +(4.500000004 3.021130627 0) +(4.628613239 3.021130627 0) +(4.757226471 3.021130627 0) +(4.885839693 3.021130627 0) +(5.014452932 3.021130627 0) +(5.143066154 3.021130627 0) +(5.2716794 3.021130627 0) +(5.400292636 3.021130627 0) +(5.528905879 3.021130627 0) +(5.657519107 3.021130627 0) +(5.786132325 3.021130627 0) +(5.914745561 3.021130627 0) +(6.043358793 3.021130627 0) +(6.171972032 3.021130627 0) +(6.300585268 3.021130627 0) +(6.429198504 3.021130627 0) +(6.557811725 3.021130627 0) +(6.686424954 3.021130627 0) +(6.8150382 3.021130627 0) +(6.943651379 3.021134399 0) +(7.072259171 3.021213668 0) +(7.200848371 3.021388085 0) +(7.329409746 3.02164339 0) +(7.45793955 3.021963878 0) +(7.586441954 3.022329629 0) +(7.714926861 3.022720473 0) +(7.843403786 3.023121976 0) +(7.971877875 3.023527119 0) +(8.100347125 3.023938414 0) +(8.228808829 3.024358985 0) +(8.357263568 3.024787884 0) +(8.485727393 3.025205811 0) +(8.614223889 3.025579675 0) +(8.742781332 3.025839893 0) +(8.871386843 3.025931133 0) +(9 3.025934656 0) +(0 3.029121202 0) +(0.128599561 3.029118826 0) +(0.2571939562 3.029057305 0) +(0.3857559754 3.028881895 0) +(0.5142769004 3.028629858 0) +(0.6427757886 3.028348106 0) +(0.7712685386 3.028058952 0) +(0.8997659882 3.027775415 0) +(1.028268531 3.027498133 0) +(1.15677435 3.027225004 0) +(1.285282066 3.026954326 0) +(1.413795159 3.026690828 0) +(1.542320029 3.026444226 0) +(1.670863409 3.026228177 0) +(1.799428067 3.026056072 0) +(1.928011471 3.025938481 0) +(2.056607413 3.025885037 0) +(2.18520699 3.025882494 0) +(2.313806601 3.025882494 0) +(2.442406213 3.025882494 0) +(2.571005825 3.025882494 0) +(2.699605436 3.025882494 0) +(2.828205048 3.025882494 0) +(2.95680466 3.025882494 0) +(3.085404271 3.025882494 0) +(3.214003883 3.025882494 0) +(3.342603495 3.025882494 0) +(3.471203108 3.025882494 0) +(3.599802718 3.025882494 0) +(3.728402332 3.025882494 0) +(3.85700195 3.025882494 0) +(3.985601557 3.025882494 0) +(4.114201171 3.025882494 0) +(4.242800775 3.025882494 0) +(4.371400386 3.025882494 0) +(4.5 3.025882494 0) +(4.628599618 3.025882494 0) +(4.757199225 3.025882494 0) +(4.885798832 3.025882494 0) +(5.014398446 3.025882494 0) +(5.14299805 3.025882494 0) +(5.271597671 3.025882494 0) +(5.400197282 3.025882494 0) +(5.528796904 3.025882494 0) +(5.657396511 3.025882494 0) +(5.785996114 3.025882494 0) +(5.914595725 3.025882494 0) +(6.043195339 3.025882494 0) +(6.171794954 3.025882494 0) +(6.300394568 3.025882494 0) +(6.428994182 3.025882494 0) +(6.557593786 3.025882494 0) +(6.686193393 3.025882494 0) +(6.814793014 3.025882494 0) +(6.943392589 3.025885037 0) +(7.071988532 3.025938478 0) +(7.200571943 3.026056064 0) +(7.329136593 3.026228181 0) +(7.457679961 3.026444243 0) +(7.586204854 3.026690819 0) +(7.714717954 3.026954313 0) +(7.843225668 3.027224992 0) +(7.971731479 3.027498125 0) +(8.100234021 3.027775406 0) +(8.228731475 3.02805894 0) +(8.357224236 3.028348089 0) +(8.485723121 3.02862984 0) +(8.614244032 3.028881887 0) +(8.742806032 3.029057316 0) +(8.871400439 3.029118827 0) +(9 3.029121202 0) +(0 3.03175139 0) +(0.1285883381 3.031749963 0) +(0.2571735712 3.031712984 0) +(0.3857393443 3.03160755 0) +(0.5142804164 3.031456059 0) +(0.6428082432 3.031286707 0) +(0.7713323807 3.031112906 0) +(0.8998593429 3.03094248 0) +(1.028389366 3.030775815 0) +(1.156921359 3.030611646 0) +(1.285454492 3.03044895 0) +(1.413990857 3.030290569 0) +(1.5425343 3.030142345 0) +(1.67108887 3.030012484 0) +(1.799656229 3.029909038 0) +(1.928234856 3.029838357 0) +(2.056821019 3.029806234 0) +(2.185409366 3.029804705 0) +(2.313997734 3.029804705 0) +(2.442586103 3.029804705 0) +(2.571174472 3.029804705 0) +(2.69976284 3.029804705 0) +(2.828351209 3.029804705 0) +(2.956939578 3.029804705 0) +(3.085527946 3.029804705 0) +(3.214116314 3.029804705 0) +(3.342704683 3.029804705 0) +(3.471293053 3.029804705 0) +(3.599881421 3.029804705 0) +(3.728469789 3.029804705 0) +(3.857058164 3.029804705 0) +(3.985646529 3.029804705 0) +(4.1142349 3.029804705 0) +(4.242823264 3.029804705 0) +(4.371411632 3.029804705 0) +(4.5 3.029804705 0) +(4.628588371 3.029804705 0) +(4.757176739 3.029804705 0) +(4.885765104 3.029804705 0) +(5.014353475 3.029804705 0) +(5.142941839 3.029804705 0) +(5.271530211 3.029804705 0) +(5.400118582 3.029804705 0) +(5.528706954 3.029804705 0) +(5.657295321 3.029804705 0) +(5.785883682 3.029804705 0) +(5.914472054 3.029804705 0) +(6.043060421 3.029804705 0) +(6.171648793 3.029804705 0) +(6.300237161 3.029804705 0) +(6.428825532 3.029804705 0) +(6.557413896 3.029804705 0) +(6.686002264 3.029804705 0) +(6.814590636 3.029804705 0) +(6.943178982 3.029806234 0) +(7.071765146 3.029838355 0) +(7.200343779 3.029909032 0) +(7.328911132 3.030012487 0) +(7.457465693 3.030142355 0) +(7.58600915 3.030290564 0) +(7.714545518 3.030448941 0) +(7.843078654 3.030611638 0) +(7.971610639 3.03077581 0) +(8.100140661 3.030942475 0) +(8.228667629 3.031112898 0) +(8.357191771 3.031286696 0) +(8.485719596 3.031456048 0) +(8.614260661 3.031607546 0) +(8.742826421 3.031712991 0) +(8.871411661 3.031749963 0) +(9 3.03175139 0) +(0 3.033922359 0) +(0.1285790746 3.033921714 0) +(0.2571567453 3.033904993 0) +(0.3857256164 3.033857318 0) +(0.5142833186 3.033788818 0) +(0.6428350318 3.03371224 0) +(0.7713850761 3.033633651 0) +(0.8999363982 3.033556589 0) +(1.028489104 3.033481227 0) +(1.157042701 3.033406994 0) +(1.285596813 3.033333426 0) +(1.414152387 3.03326181 0) +(1.542711161 3.033194787 0) +(1.671274966 3.033136067 0) +(1.799844555 3.033089291 0) +(1.928419238 3.033057331 0) +(2.056997329 3.033042806 0) +(2.185576408 3.033042114 0) +(2.314155497 3.033042114 0) +(2.442734585 3.033042114 0) +(2.571313674 3.033042114 0) +(2.699892762 3.033042114 0) +(2.82847185 3.033042114 0) +(2.957050939 3.033042114 0) +(3.085630027 3.033042114 0) +(3.214209116 3.033042114 0) +(3.342788204 3.033042114 0) +(3.471367293 3.033042114 0) +(3.599946382 3.033042114 0) +(3.728525468 3.033042114 0) +(3.857104561 3.033042114 0) +(3.985683646 3.033042114 0) +(4.114262736 3.033042114 0) +(4.242841821 3.033042114 0) +(4.371420911 3.033042114 0) +(4.5 3.033042114 0) +(4.628579089 3.033042114 0) +(4.757158179 3.033042114 0) +(4.885737264 3.033042114 0) +(5.014316354 3.033042114 0) +(5.142895439 3.033042114 0) +(5.271474532 3.033042114 0) +(5.400053618 3.033042114 0) +(5.528632711 3.033042114 0) +(5.657211796 3.033042114 0) +(5.785790882 3.033042114 0) +(5.914369971 3.033042114 0) +(6.042949061 3.033042114 0) +(6.17152815 3.033042114 0) +(6.300107239 3.033042114 0) +(6.428686329 3.033042114 0) +(6.557265414 3.033042114 0) +(6.685844504 3.033042114 0) +(6.814423593 3.033042114 0) +(6.943002671 3.033042806 0) +(7.071580764 3.03305733 0) +(7.200155446 3.033089289 0) +(7.328725032 3.033136068 0) +(7.457288836 3.033194791 0) +(7.585847618 3.033261808 0) +(7.714403193 3.033333423 0) +(7.842957304 3.03340699 0) +(7.971510896 3.033481225 0) +(8.100063604 3.033556587 0) +(8.228614929 3.033633648 0) +(8.357164975 3.033712235 0) +(8.485716689 3.033788813 0) +(8.614274386 3.033857316 0) +(8.74284325 3.033904996 0) +(8.871420925 3.033921714 0) +(9 3.033922359 0) +(0 3.035714286 0) +(0.1285714286 3.035714286 0) +(0.2571428571 3.035714286 0) +(0.3857142857 3.035714286 0) +(0.5142857143 3.035714286 0) +(0.6428571429 3.035714286 0) +(0.7714285714 3.035714286 0) +(0.9 3.035714286 0) +(1.028571429 3.035714286 0) +(1.157142857 3.035714286 0) +(1.285714286 3.035714286 0) +(1.414285714 3.035714286 0) +(1.542857143 3.035714286 0) +(1.671428571 3.035714286 0) +(1.8 3.035714286 0) +(1.928571429 3.035714286 0) +(2.057142857 3.035714286 0) +(2.185714286 3.035714286 0) +(2.314285714 3.035714286 0) +(2.442857143 3.035714286 0) +(2.571428571 3.035714286 0) +(2.7 3.035714286 0) +(2.828571429 3.035714286 0) +(2.957142857 3.035714286 0) +(3.085714286 3.035714286 0) +(3.214285714 3.035714286 0) +(3.342857143 3.035714286 0) +(3.471428571 3.035714286 0) +(3.6 3.035714286 0) +(3.728571429 3.035714286 0) +(3.857142857 3.035714286 0) +(3.985714286 3.035714286 0) +(4.114285714 3.035714286 0) +(4.242857143 3.035714286 0) +(4.371428571 3.035714286 0) +(4.5 3.035714286 0) +(4.628571429 3.035714286 0) +(4.757142857 3.035714286 0) +(4.885714286 3.035714286 0) +(5.014285714 3.035714286 0) +(5.142857143 3.035714286 0) +(5.271428571 3.035714286 0) +(5.4 3.035714286 0) +(5.528571429 3.035714286 0) +(5.657142857 3.035714286 0) +(5.785714286 3.035714286 0) +(5.914285714 3.035714286 0) +(6.042857143 3.035714286 0) +(6.171428571 3.035714286 0) +(6.3 3.035714286 0) +(6.428571429 3.035714286 0) +(6.557142857 3.035714286 0) +(6.685714286 3.035714286 0) +(6.814285714 3.035714286 0) +(6.942857143 3.035714286 0) +(7.071428571 3.035714286 0) +(7.2 3.035714286 0) +(7.328571429 3.035714286 0) +(7.457142857 3.035714286 0) +(7.585714286 3.035714286 0) +(7.714285714 3.035714286 0) +(7.842857143 3.035714286 0) +(7.971428571 3.035714286 0) +(8.1 3.035714286 0) +(8.228571429 3.035714286 0) +(8.357142857 3.035714286 0) +(8.485714286 3.035714286 0) +(8.614285714 3.035714286 0) +(8.742857143 3.035714286 0) +(8.871428571 3.035714286 0) +(9 3.035714286 0) +(0 1 0.1) +(0.1372577479 0.9992665507 0.1) +(0.2729204722 0.9802710121 0.1) +(0.3985866321 0.9261103225 0.1) +(0.5115642636 0.8482902379 0.1) +(0.6177377232 0.7612948461 0.1) +(0.7220159629 0.6720143639 0.1) +(0.8277453689 0.5844679179 0.1) +(0.9350471886 0.4988529475 0.1) +(1.0433608 0.4145202496 0.1) +(1.152259884 0.3309444311 0.1) +(1.262819195 0.2495851497 0.1) +(1.377015043 0.1734434155 0.1) +(1.496926096 0.1067348369 0.1) +(1.623407117 0.05359487214 0.1) +(1.755676014 0.01728672395 0.1) +(1.891816441 0.0007851267468 0.1) +(2.029078991 0 0.1) +(2.166352211 0 0.1) +(2.303625815 0 0.1) +(2.440899175 0 0.1) +(2.57817234 0 0.1) +(2.715445856 0 0.1) +(2.852719475 0 0.1) +(2.989992637 0 0.1) +(3.127266048 0 0.1) +(3.264539505 0 0.1) +(3.401813297 0 0.1) +(3.539086298 0 0.1) +(3.676359882 0 0.1) +(3.813635943 0 0.1) +(3.950907179 0 0.1) +(4.088181868 0 0.1) +(4.225453136 0 0.1) +(4.362726082 0 0.1) +(4.500000414 0 0.1) +(4.63727475 0 0.1) +(4.774547693 0 0.1) +(4.911818964 0 0.1) +(5.049093654 0 0.1) +(5.186364886 0 0.1) +(5.323640946 1.268826314e-16 0.1) +(5.460914368 0 0.1) +(5.598190368 0 0.1) +(5.735462336 0 0.1) +(5.872732929 0 0.1) +(6.010006682 0 0.1) +(6.147280064 0 0.1) +(6.2845549 0 0.1) +(6.421828786 0 0.1) +(6.559102675 0 0.1) +(6.696373657 0 0.1) +(6.833646207 0 0.1) +(6.970922011 0 0.1) +(7.108184396 0.0007851658393 0.1) +(7.244325104 0.01728574934 0.1) +(7.376596107 0.053592208 0.1) +(7.503074168 0.106736084 0.1) +(7.622981161 0.1734484452 0.1) +(7.737184979 0.2495825239 0.1) +(7.847745718 0.3309401793 0.1) +(7.956645329 0.4145164179 0.1) +(8.06495525 0.4988505571 0.1) +(8.172257368 0.5844651546 0.1) +(8.277988239 0.6720106 0.1) +(8.382269707 0.7612895482 0.1) +(8.488442993 0.8482846311 0.1) +(8.601416111 0.9261077889 0.1) +(8.727076129 0.980274225 0.1) +(8.862742229 0.9992667886 0.1) +(9 1 0.1) +(0 1.001791927 0.1) +(0.1372501019 1.001059123 0.1) +(0.272906584 0.982080305 0.1) +(0.3985753014 0.92796729 0.1) +(0.5115666593 0.8502157061 0.1) +(0.6177598343 0.7632968918 0.1) +(0.7220594579 0.6740949982 0.1) +(0.8278089707 0.5866256143 0.1) +(0.9351295125 0.5010860061 0.1) +(1.043460956 0.4168275418 0.1) +(1.152377357 0.3333252903 0.1) +(1.262952523 0.252037625 0.1) +(1.377161024 0.1759629142 0.1) +(1.497079701 0.1093130554 0.1) +(1.623562562 0.05621986682 0.1) +(1.755828204 0.01994367867 0.1) +(1.891961969 0.003456606901 0.1) +(2.029216869 0.002672171259 0.1) +(2.166482429 0.002672171259 0.1) +(2.303748373 0.002672171259 0.1) +(2.441014073 0.002672171259 0.1) +(2.578279578 0.002672171259 0.1) +(2.715545434 0.002672171259 0.1) +(2.852811393 0.002672171259 0.1) +(2.990076896 0.002672171259 0.1) +(3.127342647 0.002672171259 0.1) +(3.264608444 0.002672171259 0.1) +(3.401874576 0.002672171259 0.1) +(3.539139917 0.002672171259 0.1) +(3.676405843 0.002672171259 0.1) +(3.813674239 0.002672171259 0.1) +(3.950937818 0.002672171259 0.1) +(4.088204846 0.002672171259 0.1) +(4.225468454 0.002672171259 0.1) +(4.362733743 0.002672171259 0.1) +(4.500000414 0.002672171259 0.1) +(4.637267089 0.002672171259 0.1) +(4.774532371 0.002672171259 0.1) +(4.911795986 0.002672171259 0.1) +(5.049063014 0.002672171259 0.1) +(5.186326589 0.002672171259 0.1) +(5.323594986 0.002672171259 0.1) +(5.46086075 0.002672171259 0.1) +(5.598129086 0.002672171259 0.1) +(5.735393396 0.002672171259 0.1) +(5.872656332 0.002672171259 0.1) +(6.009922425 0.002672171259 0.1) +(6.147188146 0.002672171259 0.1) +(6.284455321 0.002672171259 0.1) +(6.421721546 0.002672171259 0.1) +(6.558987775 0.002672171259 0.1) +(6.6962511 0.002672171259 0.1) +(6.833515989 0.002672171259 0.1) +(6.970784132 0.002672171259 0.1) +(7.108038868 0.00345664596 0.1) +(7.244172911 0.0199427049 0.1) +(7.376440657 0.056217205 0.1) +(7.502920564 0.1093143014 0.1) +(7.622835182 0.1759679394 0.1) +(7.73705165 0.2520350014 0.1) +(7.847628243 0.3333210422 0.1) +(7.956545168 0.4168237132 0.1) +(8.064872921 0.5010836179 0.1) +(8.172193764 0.5866228536 0.1) +(8.277944739 0.6740912375 0.1) +(8.382247589 0.7632915986 0.1) +(8.488440589 0.8502101043 0.1) +(8.601427439 0.9279647589 0.1) +(8.727090021 0.982083515 0.1) +(8.862749875 1.001059361 0.1) +(9 1.001791927 0.1) +(0 1.003962895 0.1) +(0.1372408384 1.003230874 0.1) +(0.2728897581 0.9842723136 0.1) +(0.3985615739 0.9302170579 0.1) +(0.5115695614 0.8525484643 0.1) +(0.6177866229 0.7657224254 0.1) +(0.7221121536 0.6766157439 0.1) +(0.8278860261 0.5892397236 0.1) +(0.9352292507 0.5037914186 0.1) +(1.043582298 0.41962289 0.1) +(1.152519678 0.336209767 0.1) +(1.263114053 0.2550088666 0.1) +(1.377337885 0.1790153564 0.1) +(1.497265798 0.1124366384 0.1) +(1.623750888 0.05940012046 0.1) +(1.756012586 0.02316265279 0.1) +(1.89213828 0.006693179 0.1) +(2.029383911 0.005909580646 0.1) +(2.166640191 0.005909580646 0.1) +(2.303896855 0.005909580646 0.1) +(2.441153275 0.005909580646 0.1) +(2.5784095 0.005909580646 0.1) +(2.715666076 0.005909580646 0.1) +(2.852922755 0.005909580646 0.1) +(2.990178977 0.005909580646 0.1) +(3.127435448 0.005909580646 0.1) +(3.264691965 0.005909580646 0.1) +(3.401948816 0.005909580646 0.1) +(3.539204878 0.005909580646 0.1) +(3.676461521 0.005909580646 0.1) +(3.813720636 0.005909580646 0.1) +(3.950974936 0.005909580646 0.1) +(4.088232682 0.005909580646 0.1) +(4.225487014 0.005909580646 0.1) +(4.362743021 0.005909580646 0.1) +(4.500000414 0.005909580646 0.1) +(4.637257807 0.005909580646 0.1) +(4.774513811 0.005909580646 0.1) +(4.911768146 0.005909580646 0.1) +(5.049025893 0.005909580646 0.1) +(5.186280193 0.005909580646 0.1) +(5.323539307 0.005909580646 0.1) +(5.460795789 0.005909580646 0.1) +(5.598054839 0.005909580646 0.1) +(5.735309875 0.005909580646 0.1) +(5.872563529 0.005909580646 0.1) +(6.009820343 0.005909580646 0.1) +(6.147076786 0.005909580646 0.1) +(6.284334679 0.005909580646 0.1) +(6.421591625 0.005909580646 0.1) +(6.558848571 0.005909580646 0.1) +(6.696102621 0.005909580646 0.1) +(6.833358229 0.005909580646 0.1) +(6.970617089 0.005909580646 0.1) +(7.107862557 0.006693218014 0.1) +(7.243988529 0.02316168006 0.1) +(7.376252329 0.05939746146 0.1) +(7.502734468 0.1124378831 0.1) +(7.622658329 0.1790203763 0.1) +(7.736890114 0.2550062459 0.1) +(7.847485914 0.3362055235 0.1) +(7.956423821 0.4196190654 0.1) +(8.064773182 0.5037890325 0.1) +(8.172116707 0.5892369657 0.1) +(8.277892039 0.6766119875 0.1) +(8.382220793 0.7657171375 0.1) +(8.488437682 0.8525428686 0.1) +(8.601441164 0.9302145289 0.1) +(8.72710685 0.98427552 0.1) +(8.862759139 1.003231111 0.1) +(9 1.003962895 0.1) +(0 1.006593084 0.1) +(0.1372296155 1.00586201 0.1) +(0.2728693731 0.9869279921 0.1) +(0.3985449425 0.9329427132 0.1) +(0.5115730779 0.8553746654 0.1) +(0.6178190779 0.7686610261 0.1) +(0.7221759957 0.6796696975 0.1) +(0.8279793804 0.5924067886 0.1) +(0.9353500861 0.5070691004 0.1) +(1.043729307 0.4230095314 0.1) +(1.152692104 0.3397043904 0.1) +(1.263309751 0.258608608 0.1) +(1.377552156 0.1827134746 0.1) +(1.497491259 0.1162209456 0.1) +(1.62397905 0.06325308568 0.1) +(1.756235971 0.02706252897 0.1) +(1.892351885 0.01061437561 0.1) +(2.029586288 0.009831791664 0.1) +(2.166831325 0.009831791664 0.1) +(2.304076745 0.009831791664 0.1) +(2.441321922 0.009831791664 0.1) +(2.578566904 0.009831791664 0.1) +(2.715812237 0.009831791664 0.1) +(2.853057672 0.009831791664 0.1) +(2.990302651 0.009831791664 0.1) +(3.12754788 0.009831791664 0.1) +(3.264793153 0.009831791664 0.1) +(3.402038761 0.009831791664 0.1) +(3.53928358 0.009831791664 0.1) +(3.676528982 0.009831791664 0.1) +(3.81377685 0.009831791664 0.1) +(3.951019907 0.009831791664 0.1) +(4.088266411 0.009831791664 0.1) +(4.225509504 0.009831791664 0.1) +(4.362754264 0.009831791664 0.1) +(4.500000414 0.009831791664 0.1) +(4.637246561 0.009831791664 0.1) +(4.774491325 0.009831791664 0.1) +(4.911734418 0.009831791664 0.1) +(5.048980921 0.009831791664 0.1) +(5.186223979 0.009831791664 0.1) +(5.323471846 0.009831791664 0.1) +(5.460717086 0.009831791664 0.1) +(5.597964893 0.009831791664 0.1) +(5.735208682 0.009831791664 0.1) +(5.8724511 0.009831791664 0.1) +(6.009696668 0.009831791664 0.1) +(6.146941868 0.009831791664 0.1) +(6.284188518 0.009831791664 0.1) +(6.421434218 0.009831791664 0.1) +(6.558679925 0.009831791664 0.1) +(6.695922732 0.009831791664 0.1) +(6.833167096 0.009831791664 0.1) +(6.970414711 0.009831791664 0.1) +(7.10764895 0.01061441458 0.1) +(7.243765143 0.0270615575 0.1) +(7.376024164 0.06325043014 0.1) +(7.502509004 0.1162221887 0.1) +(7.622444061 0.182718488 0.1) +(7.736694411 0.2586059906 0.1) +(7.847313482 0.3397001524 0.1) +(7.956276804 0.4230057118 0.1) +(8.064652343 0.5070667175 0.1) +(8.17202335 0.5924040346 0.1) +(8.277828193 0.6796659457 0.1) +(8.382188329 0.7686557454 0.1) +(8.488434157 0.8553690768 0.1) +(8.601457789 0.9329401882 0.1) +(8.727127239 0.9869311946 0.1) +(8.862770361 1.005862247 0.1) +(9 1.006593084 0.1) +(0 1.00977963 0.1) +(0.1372160186 1.009049704 0.1) +(0.2728446761 0.9901454207 0.1) +(0.3985247932 0.9362449207 0.1) +(0.5115773375 0.8587986861 0.1) +(0.6178583975 0.7722212225 0.1) +(0.7222533425 0.6833696464 0.1) +(0.8280924821 0.5962437761 0.1) +(0.9354964814 0.5110401025 0.1) +(1.043907412 0.4271125414 0.1) +(1.152901003 0.3439382233 0.1) +(1.263546845 0.2629697943 0.1) +(1.377811753 0.1871938472 0.1) +(1.497764411 0.1208057385 0.1) +(1.624255475 0.06792105964 0.1) +(1.756506608 0.03178733683 0.1) +(1.892610674 0.01536501377 0.1) +(2.029831472 0.01458365879 0.1) +(2.167062888 0.01458365879 0.1) +(2.304294687 0.01458365879 0.1) +(2.441526242 0.01458365879 0.1) +(2.578757604 0.01458365879 0.1) +(2.715989315 0.01458365879 0.1) +(2.853221128 0.01458365879 0.1) +(2.990452487 0.01458365879 0.1) +(3.127684093 0.01458365879 0.1) +(3.264915745 0.01458365879 0.1) +(3.402147731 0.01458365879 0.1) +(3.539378929 0.01458365879 0.1) +(3.676610711 0.01458365879 0.1) +(3.81384495 0.01458365879 0.1) +(3.951074393 0.01458365879 0.1) +(4.088307271 0.01458365879 0.1) +(4.225536746 0.01458365879 0.1) +(4.362767889 0.01458365879 0.1) +(4.500000414 0.01458365879 0.1) +(4.637232939 0.01458365879 0.1) +(4.774464079 0.01458365879 0.1) +(4.911693554 0.01458365879 0.1) +(5.048926436 0.01458365879 0.1) +(5.186155875 0.01458365879 0.1) +(5.323390118 0.01458365879 0.1) +(5.460621736 0.01458365879 0.1) +(5.597855914 0.01458365879 0.1) +(5.735086089 0.01458365879 0.1) +(5.872314889 0.01458365879 0.1) +(6.009546836 0.01458365879 0.1) +(6.146778414 0.01458365879 0.1) +(6.284011439 0.01458365879 0.1) +(6.421243518 0.01458365879 0.1) +(6.5584756 0.01458365879 0.1) +(6.695704789 0.01458365879 0.1) +(6.832935536 0.01458365879 0.1) +(6.970169525 0.01458365879 0.1) +(7.107390161 0.01536505267 0.1) +(7.243494504 0.03178636689 0.1) +(7.375747732 0.06791840825 0.1) +(7.502235854 0.1208069796 0.1) +(7.622184471 0.1871988527 0.1) +(7.736457311 0.262967181 0.1) +(7.847104575 0.3439339919 0.1) +(7.956098689 0.4271087279 0.1) +(8.064505943 0.5110377236 0.1) +(8.171910243 0.5962410261 0.1) +(8.277750839 0.6833659004 0.1) +(8.382148996 0.77221595 0.1) +(8.488429886 0.8587931061 0.1) +(8.601477936 0.9362423993 0.1) +(8.727151939 0.9901486182 0.1) +(8.862783961 1.009049941 0.1) +(9 1.00977963 0.1) +(0 1.013640219 0.1) +(0.1371995456 1.012911684 0.1) +(0.272814755 0.9940434243 0.1) +(0.3985003818 0.9402456361 0.1) +(0.5115824986 0.8629469818 0.1) +(0.617906035 0.7765344989 0.1) +(0.72234705 0.6878522368 0.1) +(0.8282295082 0.6008923921 0.1) +(0.9356738436 0.5158510814 0.1) +(1.044123192 0.4320834514 0.1) +(1.15315409 0.3490676289 0.1) +(1.26383409 0.268253492 0.1) +(1.378126261 0.1926219424 0.1) +(1.498095343 0.1263603418 0.1) +(1.62459037 0.07357643921 0.1) +(1.756834492 0.03751157221 0.1) +(1.892924204 0.02112054329 0.1) +(2.03012852 0.02034067725 0.1) +(2.167343434 0.02034067725 0.1) +(2.304558729 0.02034067725 0.1) +(2.441773782 0.02034067725 0.1) +(2.578988641 0.02034067725 0.1) +(2.716203849 0.02034067725 0.1) +(2.85341916 0.02034067725 0.1) +(2.990634016 0.02034067725 0.1) +(3.12784912 0.02034067725 0.1) +(3.265064269 0.02034067725 0.1) +(3.402279751 0.02034067725 0.1) +(3.539494448 0.02034067725 0.1) +(3.676709725 0.02034067725 0.1) +(3.813927461 0.02034067725 0.1) +(3.9511404 0.02034067725 0.1) +(4.088356775 0.02034067725 0.1) +(4.22556975 0.02034067725 0.1) +(4.362784393 0.02034067725 0.1) +(4.500000411 0.02034067725 0.1) +(4.637216432 0.02034067725 0.1) +(4.774431071 0.02034067725 0.1) +(4.91164405 0.02034067725 0.1) +(5.048860425 0.02034067725 0.1) +(5.186073364 0.02034067725 0.1) +(5.3232911 0.02034067725 0.1) +(5.460506214 0.02034067725 0.1) +(5.597723889 0.02034067725 0.1) +(5.734937561 0.02034067725 0.1) +(5.872149864 0.02034067725 0.1) +(6.009365307 0.02034067725 0.1) +(6.146580382 0.02034067725 0.1) +(6.283796904 0.02034067725 0.1) +(6.421012479 0.02034067725 0.1) +(6.558228057 0.02034067725 0.1) +(6.69544075 0.02034067725 0.1) +(6.832654993 0.02034067725 0.1) +(6.969872475 0.02034067725 0.1) +(7.107076629 0.02112058212 0.1) +(7.243166618 0.03751060414 0.1) +(7.375412832 0.07357379286 0.1) +(7.501904921 0.1263615806 0.1) +(7.621869968 0.1926269384 0.1) +(7.736170057 0.2682508838 0.1) +(7.846851475 0.3490634056 0.1) +(7.955882896 0.432079645 0.1) +(8.064328579 0.5158487068 0.1) +(8.171773211 0.6008896475 0.1) +(8.277657125 0.6878484982 0.1) +(8.382101343 0.7765292364 0.1) +(8.488424711 0.8629414125 0.1) +(8.601502343 0.9402431196 0.1) +(8.727181868 0.9940466154 0.1) +(8.862800432 1.01291192 0.1) +(9 1.013640219 0.1) +(0 1.018317429 0.1) +(0.1371795881 1.017590579 0.1) +(0.2727785047 0.9987659632 0.1) +(0.3984708064 0.9450926136 0.1) +(0.5115887514 0.8679727568 0.1) +(0.6179637486 0.7817601525 0.1) +(0.7224605793 0.6932830193 0.1) +(0.8283955186 0.6065243193 0.1) +(0.9358887229 0.5216797154 0.1) +(1.044384615 0.4381058464 0.1) +(1.153460712 0.3552820457 0.1) +(1.264182096 0.274654838 0.1) +(1.378507296 0.1991982299 0.1) +(1.498496275 0.1330898974 0.1) +(1.624996106 0.08042808796 0.1) +(1.757231733 0.04444664175 0.1) +(1.893304054 0.02809352649 0.1) +(2.030488401 0.02731546434 0.1) +(2.167683323 0.02731546434 0.1) +(2.304878624 0.02731546434 0.1) +(2.442073684 0.02731546434 0.1) +(2.57926855 0.02731546434 0.1) +(2.716463764 0.02731546434 0.1) +(2.85365908 0.02731546434 0.1) +(2.990853944 0.02731546434 0.1) +(3.128049054 0.02731546434 0.1) +(3.26524421 0.02731546434 0.1) +(3.402439698 0.02731546434 0.1) +(3.539634402 0.02731546434 0.1) +(3.676829686 0.02731546434 0.1) +(3.814027421 0.02731546434 0.1) +(3.951220371 0.02731546434 0.1) +(4.08841675 0.02731546434 0.1) +(4.225609736 0.02731546434 0.1) +(4.362804386 0.02731546434 0.1) +(4.500000411 0.02731546434 0.1) +(4.637196436 0.02731546434 0.1) +(4.774391086 0.02731546434 0.1) +(4.911584071 0.02731546434 0.1) +(5.04878045 0.02731546434 0.1) +(5.185973404 0.02731546434 0.1) +(5.323171139 0.02731546434 0.1) +(5.460366261 0.02731546434 0.1) +(5.597563932 0.02731546434 0.1) +(5.734757614 0.02731546434 0.1) +(5.871949932 0.02731546434 0.1) +(6.009145382 0.02731546434 0.1) +(6.146340464 0.02731546434 0.1) +(6.283536986 0.02731546434 0.1) +(6.420732568 0.02731546434 0.1) +(6.55792815 0.02731546434 0.1) +(6.695120854 0.02731546434 0.1) +(6.832315111 0.02731546434 0.1) +(6.969512589 0.02731546434 0.1) +(7.106696775 0.02809356523 0.1) +(7.242769375 0.04444567589 0.1) +(7.375007089 0.08042544775 0.1) +(7.501503986 0.1330911333 0.1) +(7.621488943 0.1992032143 0.1) +(7.735822043 0.2746522359 0.1) +(7.846544843 0.3552778322 0.1) +(7.955621461 0.4381020486 0.1) +(8.064113693 0.5216773464 0.1) +(8.171607196 0.6065215811 0.1) +(8.277543586 0.6932792893 0.1) +(8.382043614 0.7817549025 0.1) +(8.488418439 0.8679672004 0.1) +(8.601531911 0.9450901029 0.1) +(8.727218125 0.9987691471 0.1) +(8.862820389 1.017590815 0.1) +(9 1.018317429 0.1) +(0 1.023983999 0.1) +(0.1371554091 1.02325919 0.1) +(0.2727345864 1.00448745 0.1) +(0.3984349754 0.9509648607 0.1) +(0.5115963268 0.8740616221 0.1) +(0.6180336704 0.7880911764 0.1) +(0.7225981232 0.6998625625 0.1) +(0.828596645 0.6133475546 0.1) +(0.936149055 0.5287412668 0.1) +(1.044701336 0.4454021443 0.1) +(1.153832193 0.3628109836 0.1) +(1.264603715 0.2824102458 0.1) +(1.37896893 0.2071655841 0.1) +(1.498982017 0.1412429402 0.1) +(1.625487666 0.08872904993 0.1) +(1.757713 0.05284867029 0.1) +(1.893764254 0.0365414885 0.1) +(2.030924408 0.03576561182 0.1) +(2.168095107 0.03576561182 0.1) +(2.305266185 0.03576561182 0.1) +(2.442437022 0.03576561182 0.1) +(2.579607666 0.03576561182 0.1) +(2.716778658 0.03576561182 0.1) +(2.853949751 0.03576561182 0.1) +(2.991120393 0.03576561182 0.1) +(3.12829128 0.03576561182 0.1) +(3.265462214 0.03576561182 0.1) +(3.402633478 0.03576561182 0.1) +(3.53980396 0.03576561182 0.1) +(3.676975021 0.03576561182 0.1) +(3.814148525 0.03576561182 0.1) +(3.951317261 0.03576561182 0.1) +(4.088489414 0.03576561182 0.1) +(4.225658182 0.03576561182 0.1) +(4.362828611 0.03576561182 0.1) +(4.500000411 0.03576561182 0.1) +(4.637172211 0.03576561182 0.1) +(4.774342636 0.03576561182 0.1) +(4.911511407 0.03576561182 0.1) +(5.048683561 0.03576561182 0.1) +(5.185852296 0.03576561182 0.1) +(5.3230258 0.03576561182 0.1) +(5.4601967 0.03576561182 0.1) +(5.597370143 0.03576561182 0.1) +(5.734539607 0.03576561182 0.1) +(5.871707707 0.03576561182 0.1) +(6.008878932 0.03576561182 0.1) +(6.146049793 0.03576561182 0.1) +(6.283222089 0.03576561182 0.1) +(6.420393446 0.03576561182 0.1) +(6.557564807 0.03576561182 0.1) +(6.694733296 0.03576561182 0.1) +(6.831903329 0.03576561182 0.1) +(6.969076582 0.03576561182 0.1) +(7.106236575 0.03654152714 0.1) +(7.242288104 0.05284770714 0.1) +(7.374515518 0.08872641714 0.1) +(7.501018243 0.1412441726 0.1) +(7.621027318 0.2071705545 0.1) +(7.735400411 0.2824076509 0.1) +(7.846173346 0.3628067818 0.1) +(7.955304721 0.4453983575 0.1) +(8.063853354 0.5287389046 0.1) +(8.171406061 0.6133448243 0.1) +(8.277406029 0.6998588429 0.1) +(8.381973671 0.7880859411 0.1) +(8.488410843 0.8740560814 0.1) +(8.601567736 0.9509623568 0.1) +(8.727262054 1.004490625 0.1) +(8.862844568 1.023259425 0.1) +(9 1.023983999 0.1) +(0 1.030849204 0.1) +(0.1371261155 1.030126869 0.1) +(0.2726813783 1.011419189 0.1) +(0.3983915646 0.9580792504 0.1) +(0.5116055046 0.8814384511 0.1) +(0.6181183829 0.7957613871 0.1) +(0.7227647611 0.7078338607 0.1) +(0.8288403154 0.6216140932 0.1) +(0.9364644543 0.5372965318 0.1) +(1.045085053 0.4542418111 0.1) +(1.154282252 0.3719325 0.1) +(1.265114518 0.2918061368 0.1) +(1.379528213 0.2168182541 0.1) +(1.499570506 0.1511205769 0.1) +(1.626083205 0.09878589493 0.1) +(1.75829607 0.06302796021 0.1) +(1.894321797 0.04677642814 0.1) +(2.031452642 0.04600319921 0.1) +(2.168593995 0.04600319921 0.1) +(2.305735726 0.04600319921 0.1) +(2.442877217 0.04600319921 0.1) +(2.580018516 0.04600319921 0.1) +(2.71716016 0.04600319921 0.1) +(2.854301906 0.04600319921 0.1) +(2.991443203 0.04600319921 0.1) +(3.128584744 0.04600319921 0.1) +(3.26572633 0.04600319921 0.1) +(3.402868247 0.04600319921 0.1) +(3.540009384 0.04600319921 0.1) +(3.677151096 0.04600319921 0.1) +(3.814295246 0.04600319921 0.1) +(3.951434643 0.04600319921 0.1) +(4.088577446 0.04600319921 0.1) +(4.225716875 0.04600319921 0.1) +(4.362857957 0.04600319921 0.1) +(4.500000407 0.04600319921 0.1) +(4.637142857 0.04600319921 0.1) +(4.774283939 0.04600319921 0.1) +(4.911423371 0.04600319921 0.1) +(5.048566175 0.04600319921 0.1) +(5.185705571 0.04600319921 0.1) +(5.322849721 0.04600319921 0.1) +(5.459991271 0.04600319921 0.1) +(5.597135361 0.04600319921 0.1) +(5.734275486 0.04600319921 0.1) +(5.871414246 0.04600319921 0.1) +(6.008556125 0.04600319921 0.1) +(6.145697639 0.04600319921 0.1) +(6.282840586 0.04600319921 0.1) +(6.419982593 0.04600319921 0.1) +(6.557124607 0.04600319921 0.1) +(6.694263757 0.04600319921 0.1) +(6.831404446 0.04600319921 0.1) +(6.968548343 0.04600319921 0.1) +(7.105679029 0.04677646664 0.1) +(7.241705029 0.06302700036 0.1) +(7.373919968 0.09878327114 0.1) +(7.500429754 0.1511218051 0.1) +(7.62046805 0.2168232075 0.1) +(7.734889593 0.2918035508 0.1) +(7.845723268 0.3719283125 0.1) +(7.954920986 0.4542380371 0.1) +(8.063537946 0.5372941775 0.1) +(8.171162382 0.6216113718 0.1) +(8.277239379 0.7078301539 0.1) +(8.381888932 0.7957561693 0.1) +(8.488401643 0.8814329293 0.1) +(8.601611136 0.9580767554 0.1) +(8.727315275 1.011422353 0.1) +(8.862873864 1.030127104 0.1) +(9 1.030849204 0.1) +(0 1.039166591 0.1) +(0.1370906255 1.038447253 0.1) +(0.2726169152 1.019817183 0.1) +(0.3983389718 0.9666985304 0.1) +(0.5116166236 0.8903756832 0.1) +(0.6182210139 0.8050540593 0.1) +(0.7229666479 0.7174913093 0.1) +(0.8291355286 0.6316292332 0.1) +(0.9368465693 0.5476614714 0.1) +(1.045549936 0.4649513121 0.1) +(1.154827511 0.3829834693 0.1) +(1.26573337 0.3031895186 0.1) +(1.3802058 0.2285127308 0.1) +(1.500283476 0.1630876071 0.1) +(1.626804716 0.1109700408 0.1) +(1.759002474 0.07536045154 0.1) +(1.894997277 0.05917634061 0.1) +(2.032092612 0.05840631946 0.1) +(2.169198412 0.05840631946 0.1) +(2.306304589 0.05840631946 0.1) +(2.443410525 0.05840631946 0.1) +(2.580516271 0.05840631946 0.1) +(2.717622361 0.05840631946 0.1) +(2.854728553 0.05840631946 0.1) +(2.991834296 0.05840631946 0.1) +(3.128940283 0.05840631946 0.1) +(3.266046315 0.05840631946 0.1) +(3.403152676 0.05840631946 0.1) +(3.540258261 0.05840631946 0.1) +(3.677364418 0.05840631946 0.1) +(3.814473004 0.05840631946 0.1) +(3.951576857 0.05840631946 0.1) +(4.0886841 0.05840631946 0.1) +(4.225787982 0.05840631946 0.1) +(4.362893514 0.05840631946 0.1) +(4.500000407 0.05840631946 0.1) +(4.6371073 0.05840631946 0.1) +(4.774212829 0.05840631946 0.1) +(4.911316714 0.05840631946 0.1) +(5.048423957 0.05840631946 0.1) +(5.185527811 0.05840631946 0.1) +(5.322636396 0.05840631946 0.1) +(5.459742393 0.05840631946 0.1) +(5.596850918 0.05840631946 0.1) +(5.733955493 0.05840631946 0.1) +(5.871058714 0.05840631946 0.1) +(6.008165036 0.05840631946 0.1) +(6.145270996 0.05840631946 0.1) +(6.282378379 0.05840631946 0.1) +(6.419484832 0.05840631946 0.1) +(6.556591289 0.05840631946 0.1) +(6.693694896 0.05840631946 0.1) +(6.830800036 0.05840631946 0.1) +(6.967908371 0.05840631946 0.1) +(7.105003543 0.05917637893 0.1) +(7.240998621 0.07535949568 0.1) +(7.373198446 0.1109674279 0.1) +(7.499716782 0.1630888302 0.1) +(7.619790479 0.2285176636 0.1) +(7.734270725 0.3031869433 0.1) +(7.845177986 0.3829792993 0.1) +(7.954456075 0.4649475539 0.1) +(8.063155821 0.5476591271 0.1) +(8.170867157 0.6316265232 0.1) +(8.277037471 0.7174876179 0.1) +(8.381786271 0.8050488632 0.1) +(8.488390493 0.8903701843 0.1) +(8.601663718 0.9666960457 0.1) +(8.72737975 1.019820334 0.1) +(8.862909354 1.038447486 0.1) +(9 1.039166591 0.1) +(0 1.049243335 0.1) +(0.1370476284 1.048527627 0.1) +(0.2725388163 1.029991585 0.1) +(0.3982752539 0.9771410268 0.1) +(0.5116300946 0.9012033871 0.1) +(0.6183453546 0.8163123886 0.1) +(0.7232112393 0.7291915754 0.1) +(0.8294931875 0.6437628521 0.1) +(0.9373095125 0.5602188829 0.1) +(1.046113155 0.4779261686 0.1) +(1.155488107 0.3963720246 0.1) +(1.266483126 0.3169808005 0.1) +(1.381026715 0.2426809127 0.1) +(1.50114726 0.1775859951 0.1) +(1.627678848 0.1257314706 0.1) +(1.759858303 0.09030160589 0.1) +(1.895815639 0.0741991775 0.1) +(2.032867954 0.07343304275 0.1) +(2.16993068 0.07343304275 0.1) +(2.306993781 0.07343304275 0.1) +(2.444056643 0.07343304275 0.1) +(2.581119316 0.07343304275 0.1) +(2.718182331 0.07343304275 0.1) +(2.855245446 0.07343304275 0.1) +(2.992308116 0.07343304275 0.1) +(3.129371029 0.07343304275 0.1) +(3.266433986 0.07343304275 0.1) +(3.40349727 0.07343304275 0.1) +(3.540559783 0.07343304275 0.1) +(3.677622864 0.07343304275 0.1) +(3.814688364 0.07343304275 0.1) +(3.95174915 0.07343304275 0.1) +(4.088813311 0.07343304275 0.1) +(4.225874132 0.07343304275 0.1) +(4.362936593 0.07343304275 0.1) +(4.500000404 0.07343304275 0.1) +(4.637064218 0.07343304275 0.1) +(4.774126675 0.07343304275 0.1) +(4.911187496 0.07343304275 0.1) +(5.048251661 0.07343304275 0.1) +(5.185312446 0.07343304275 0.1) +(5.322377943 0.07343304275 0.1) +(5.459440868 0.07343304275 0.1) +(5.596506304 0.07343304275 0.1) +(5.733567811 0.07343304275 0.1) +(5.870627971 0.07343304275 0.1) +(6.007691218 0.07343304275 0.1) +(6.144754104 0.07343304275 0.1) +(6.281818407 0.07343304275 0.1) +(6.418881782 0.07343304275 0.1) +(6.555945164 0.07343304275 0.1) +(6.693005707 0.07343304275 0.1) +(6.830067775 0.07343304275 0.1) +(6.967133025 0.07343304275 0.1) +(7.104185179 0.07419921564 0.1) +(7.240142786 0.09030065486 0.1) +(7.372324296 0.1257288709 0.1) +(7.498852996 0.177587212 0.1) +(7.618969582 0.2426858207 0.1) +(7.733520946 0.3169782382 0.1) +(7.844517361 0.3963678757 0.1) +(7.953892829 0.4779224293 0.1) +(8.062692864 0.5602165504 0.1) +(8.170509486 0.6437601561 0.1) +(8.276792861 0.7291879025 0.1) +(8.381661893 0.8163072189 0.1) +(8.488376986 0.9011979161 0.1) +(8.601727421 0.9771385546 0.1) +(8.727457868 1.02999472 0.1) +(8.86295235 1.048527859 0.1) +(9 1.049243335 0.1) +(0 1.061451589 0.1) +(0.1369955362 1.060740279 0.1) +(0.2724441974 1.042318154 0.1) +(0.3981980579 0.9897923996 0.1) +(0.5116464154 0.91432145 0.1) +(0.6184959968 0.8299521661 0.1) +(0.7235075686 0.7433667711 0.1) +(0.8299265011 0.6584630675 0.1) +(0.9378703807 0.5754325343 0.1) +(1.04679551 0.4936455661 0.1) +(1.156288438 0.4125926293 0.1) +(1.267391477 0.33368932 0.1) +(1.382021276 0.259846057 0.1) +(1.502193758 0.1951511932 0.1) +(1.628737882 0.143615351 0.1) +(1.760895164 0.1084032276 0.1) +(1.896807108 0.09239975993 0.1) +(2.033807301 0.09163833361 0.1) +(2.170817843 0.09163833361 0.1) +(2.307828756 0.09163833361 0.1) +(2.444839433 0.09163833361 0.1) +(2.581849921 0.09163833361 0.1) +(2.718860749 0.09163833361 0.1) +(2.855871677 0.09163833361 0.1) +(2.992882162 0.09163833361 0.1) +(3.129892889 0.09163833361 0.1) +(3.26690366 0.09163833361 0.1) +(3.403914756 0.09163833361 0.1) +(3.540925084 0.09163833361 0.1) +(3.677935979 0.09163833361 0.1) +(3.814949275 0.09163833361 0.1) +(3.951957889 0.09163833361 0.1) +(4.088969857 0.09163833361 0.1) +(4.225978507 0.09163833361 0.1) +(4.362988782 0.09163833361 0.1) +(4.500000404 0.09163833361 0.1) +(4.637012025 0.09163833361 0.1) +(4.7740223 0.09163833361 0.1) +(4.911030946 0.09163833361 0.1) +(5.048042914 0.09163833361 0.1) +(5.185051529 0.09163833361 0.1) +(5.322064825 0.09163833361 0.1) +(5.459075561 0.09163833361 0.1) +(5.596088796 0.09163833361 0.1) +(5.733098129 0.09163833361 0.1) +(5.870106118 0.09163833361 0.1) +(6.007117179 0.09163833361 0.1) +(6.144127875 0.09163833361 0.1) +(6.281139986 0.09163833361 0.1) +(6.418151171 0.09163833361 0.1) +(6.555162361 0.09163833361 0.1) +(6.692170736 0.09163833361 0.1) +(6.829180621 0.09163833361 0.1) +(6.966193671 0.09163833361 0.1) +(7.103193704 0.09239979782 0.1) +(7.239105918 0.1084022824 0.1) +(7.371265243 0.1436127673 0.1) +(7.4978065 0.1951524026 0.1) +(7.617975043 0.2598509348 0.1) +(7.732612571 0.3336867734 0.1) +(7.843716996 0.4125885061 0.1) +(7.953210436 0.49364185 0.1) +(8.062131982 0.5754302161 0.1) +(8.170076154 0.6584603879 0.1) +(8.276496507 0.7433631207 0.1) +(8.381511207 0.8299470282 0.1) +(8.488360621 0.9143160129 0.1) +(8.6018046 0.9897899429 0.1) +(8.727552507 1.04232127 0.1) +(8.863004443 1.06074051 0.1) +(9 1.061451589 0.1) +(0 1.076242226 0.1) +(0.1369324251 1.075536246 0.1) +(0.2723295639 1.057252134 0.1) +(0.3981045329 1.005119888 0.1) +(0.5116661882 0.9302143461 0.1) +(0.6186785039 0.8464771339 0.1) +(0.7238665796 0.7605404129 0.1) +(0.8304514725 0.6762727846 0.1) +(0.9385498882 0.5938642936 0.1) +(1.047622202 0.5126900511 0.1) +(1.157258061 0.4322443407 0.1) +(1.268491968 0.3539321535 0.1) +(1.383226214 0.280642104 0.1) +(1.503461619 0.2164319165 0.1) +(1.630020931 0.1652821668 0.1) +(1.762151348 0.130333843 0.1) +(1.8980083 0.1144502689 0.1) +(2.034945347 0.113694547 0.1) +(2.171892665 0.113694547 0.1) +(2.308840352 0.113694547 0.1) +(2.445787804 0.113694547 0.1) +(2.582735069 0.113694547 0.1) +(2.719682671 0.113694547 0.1) +(2.856630373 0.113694547 0.1) +(2.993577635 0.113694547 0.1) +(3.130525137 0.113694547 0.1) +(3.267472683 0.113694547 0.1) +(3.404420551 0.113694547 0.1) +(3.541367658 0.113694547 0.1) +(3.678315329 0.113694547 0.1) +(3.815265379 0.113694547 0.1) +(3.952210786 0.113694547 0.1) +(4.089159518 0.113694547 0.1) +(4.226104957 0.113694547 0.1) +(4.363052011 0.113694547 0.1) +(4.5000004 0.113694547 0.1) +(4.636948789 0.113694547 0.1) +(4.773895843 0.113694547 0.1) +(4.910841282 0.113694547 0.1) +(5.047790014 0.113694547 0.1) +(5.184735421 0.113694547 0.1) +(5.321685471 0.113694547 0.1) +(5.458632986 0.113694547 0.1) +(5.595582975 0.113694547 0.1) +(5.732529089 0.113694547 0.1) +(5.869473879 0.113694547 0.1) +(6.006421707 0.113694547 0.1) +(6.143369182 0.113694547 0.1) +(6.280318057 0.113694547 0.1) +(6.417266014 0.113694547 0.1) +(6.554213979 0.113694547 0.1) +(6.691159143 0.113694547 0.1) +(6.828105811 0.113694547 0.1) +(6.965055618 0.113694547 0.1) +(7.101992507 0.1144503066 0.1) +(7.237849725 0.1303329049 0.1) +(7.369982171 0.1652796024 0.1) +(7.496538636 0.2164331169 0.1) +(7.616770132 0.2806469453 0.1) +(7.73151205 0.353929626 0.1) +(7.842747332 0.4322402482 0.1) +(7.9523837 0.5126863625 0.1) +(8.061452457 0.5938619929 0.1) +(8.169551164 0.676270125 0.1) +(8.276137464 0.76053679 0.1) +(8.381328646 0.8464720343 0.1) +(8.488340796 0.9302089496 0.1) +(8.601898107 1.005117449 0.1) +(8.727667164 1.057255227 0.1) +(8.863067554 1.075536475 0.1) +(9 1.076242226 0.1) +(0 1.094161492 0.1) +(0.1368559643 1.093461968 0.1) +(0.2721906823 1.075345064 0.1) +(0.397991225 1.023689564 0.1) +(0.5116901439 0.9494690293 0.1) +(0.6188996161 0.8664975893 0.1) +(0.7243015314 0.781346755 0.1) +(0.83108749 0.6978497496 0.1) +(0.9393731304 0.6161948796 0.1) +(1.048623763 0.5357629714 0.1) +(1.158432787 0.4560529329 0.1) +(1.269825244 0.3784569061 0.1) +(1.38468603 0.3058370902 0.1) +(1.504997668 0.2422141014 0.1) +(1.63157538 0.1915321134 0.1) +(1.763673251 0.1569033901 0.1) +(1.899463576 0.1411650705 0.1) +(2.036324121 0.1404162596 0.1) +(2.173194841 0.1404162596 0.1) +(2.310065928 0.1404162596 0.1) +(2.446936782 0.1404162596 0.1) +(2.58380745 0.1404162596 0.1) +(2.720678453 0.1404162596 0.1) +(2.857549554 0.1404162596 0.1) +(2.99442022 0.1404162596 0.1) +(3.131291123 0.1404162596 0.1) +(3.268162069 0.1404162596 0.1) +(3.405033335 0.1404162596 0.1) +(3.541903847 0.1404162596 0.1) +(3.678774918 0.1404162596 0.1) +(3.815648346 0.1404162596 0.1) +(3.952517171 0.1404162596 0.1) +(4.089389296 0.1404162596 0.1) +(4.226258154 0.1404162596 0.1) +(4.363128614 0.1404162596 0.1) +(4.500000396 0.1404162596 0.1) +(4.636872179 0.1404162596 0.1) +(4.773742636 0.1404162596 0.1) +(4.910611496 0.1404162596 0.1) +(5.047483621 0.1404162596 0.1) +(5.184352446 0.1404162596 0.1) +(5.321225875 0.1404162596 0.1) +(5.458096789 0.1404162596 0.1) +(5.594970157 0.1404162596 0.1) +(5.731839689 0.1404162596 0.1) +(5.8687079 0.1404162596 0.1) +(6.005579129 0.1404162596 0.1) +(6.142450007 0.1404162596 0.1) +(6.279322268 0.1404162596 0.1) +(6.416193625 0.1404162596 0.1) +(6.553064982 0.1404162596 0.1) +(6.689933571 0.1404162596 0.1) +(6.82680365 0.1404162596 0.1) +(6.963676836 0.1404162596 0.1) +(7.100537221 0.1411651078 0.1) +(7.236327814 0.1569024606 0.1) +(7.368427693 0.1915295724 0.1) +(7.495002586 0.2422152908 0.1) +(7.61531035 0.3058418872 0.1) +(7.730178739 0.3784544018 0.1) +(7.841572557 0.4560488775 0.1) +(7.951382082 0.5357593168 0.1) +(8.060629193 0.6161926 0.1) +(8.168915121 0.6978471143 0.1) +(8.275702475 0.7813431654 0.1) +(8.381107468 0.8664925364 0.1) +(8.488316779 0.9494636821 0.1) +(8.602011389 1.023687148 0.1) +(8.727806075 1.075348128 0.1) +(8.863144014 1.093462195 0.1) +(9 1.094161492 0.1) +(0 1.115871178 0.1) +(0.1367633298 1.115179476 0.1) +(0.2720224234 1.097265148 0.1) +(0.3978539489 1.04618724 0.1) +(0.5117191664 0.9727966107 0.1) +(0.6191675 0.890752925 0.1) +(0.7248284879 0.8065542139 0.1) +(0.8318580429 0.7239908396 0.1) +(0.9403705111 0.6432490025 0.1) +(1.049837181 0.5637164525 0.1) +(1.159855999 0.4848977004 0.1) +(1.271440545 0.4081693221 0.1) +(1.386454638 0.3363615129 0.1) +(1.506858633 0.2734499315 0.1) +(1.633458639 0.2233346497 0.1) +(1.765517078 0.1890931314 0.1) +(1.901226685 0.1735307915 0.1) +(2.037994543 0.1727903535 0.1) +(2.174772464 0.1727903535 0.1) +(2.311550748 0.1727903535 0.1) +(2.448328801 0.1727903535 0.1) +(2.58510667 0.1727903535 0.1) +(2.72188487 0.1727903535 0.1) +(2.858663168 0.1727903535 0.1) +(2.995441034 0.1727903535 0.1) +(3.132219136 0.1727903535 0.1) +(3.268997281 0.1727903535 0.1) +(3.405775741 0.1727903535 0.1) +(3.542553456 0.1727903535 0.1) +(3.679331721 0.1727903535 0.1) +(3.816112321 0.1727903535 0.1) +(3.952888368 0.1727903535 0.1) +(4.089667679 0.1727903535 0.1) +(4.226443757 0.1727903535 0.1) +(4.363221421 0.1727903535 0.1) +(4.500000393 0.1727903535 0.1) +(4.636779364 0.1727903535 0.1) +(4.773557025 0.1727903535 0.1) +(4.910333107 0.1727903535 0.1) +(5.047112414 0.1727903535 0.1) +(5.183888461 0.1727903535 0.1) +(5.320669061 0.1727903535 0.1) +(5.457447171 0.1727903535 0.1) +(5.594227714 0.1727903535 0.1) +(5.731004457 0.1727903535 0.1) +(5.8677799 0.1727903535 0.1) +(6.004558321 0.1727903535 0.1) +(6.141336396 0.1727903535 0.1) +(6.278115843 0.1727903535 0.1) +(6.414894393 0.1727903535 0.1) +(6.551672946 0.1727903535 0.1) +(6.688448757 0.1727903535 0.1) +(6.825226043 0.1727903535 0.1) +(6.9620064 0.1727903535 0.1) +(7.098774104 0.1735308283 0.1) +(7.234483975 0.1890922122 0.1) +(7.3665444 0.2233321372 0.1) +(7.493141618 0.2734511076 0.1) +(7.613541782 0.3363662562 0.1) +(7.728563393 0.4081668461 0.1) +(7.840149286 0.4848936907 0.1) +(7.9501686 0.5637128386 0.1) +(8.059631786 0.6432467482 0.1) +(8.168144539 0.7239882336 0.1) +(8.275175475 0.8065506643 0.1) +(8.380839507 0.8907479286 0.1) +(8.488287679 0.9727913232 0.1) +(8.602148636 1.046184851 0.1) +(8.727974371 1.097268178 0.1) +(8.86323665 1.115179701 0.1) +(9 1.115871178 0.1) +(0 1.142173064 0.1) +(0.1366511006 1.141490838 0.1) +(0.271818573 1.123821936 0.1) +(0.3976876354 1.073443797 0.1) +(0.5117543282 1.00105862 0.1) +(0.6194920486 0.9201389346 0.1) +(0.7254669096 0.8370937479 0.1) +(0.8327915889 0.7556614929 0.1) +(0.9415788654 0.6760258207 0.1) +(1.051307271 0.5975828679 0.1) +(1.16158026 0.5198439343 0.1) +(1.273397526 0.4441667364 0.1) +(1.388597355 0.373342695 0.1) +(1.509113244 0.3112930036 0.1) +(1.635740258 0.2618643021 0.1) +(1.767750926 0.2280918931 0.1) +(1.903362739 0.2127427576 0.1) +(2.040018306 0.2120124636 0.1) +(2.176683799 0.2120124636 0.1) +(2.313349648 0.2120124636 0.1) +(2.45001527 0.2120124636 0.1) +(2.586680711 0.2120124636 0.1) +(2.723346478 0.2120124636 0.1) +(2.860012341 0.2120124636 0.1) +(2.99667778 0.2120124636 0.1) +(3.13334345 0.2120124636 0.1) +(3.270009162 0.2120124636 0.1) +(3.406675186 0.2120124636 0.1) +(3.543340474 0.2120124636 0.1) +(3.680006307 0.2120124636 0.1) +(3.816674439 0.2120124636 0.1) +(3.953338086 0.2120124636 0.1) +(4.090004943 0.2120124636 0.1) +(4.226668621 0.2120124636 0.1) +(4.363333857 0.2120124636 0.1) +(4.500000386 0.2120124636 0.1) +(4.636666914 0.2120124636 0.1) +(4.77333215 0.2120124636 0.1) +(4.909995829 0.2120124636 0.1) +(5.046662689 0.2120124636 0.1) +(5.183326332 0.2120124636 0.1) +(5.319994464 0.2120124636 0.1) +(5.456660146 0.2120124636 0.1) +(5.593328221 0.2120124636 0.1) +(5.72999255 0.2120124636 0.1) +(5.8666556 0.2120124636 0.1) +(6.003321586 0.2120124636 0.1) +(6.139987229 0.2120124636 0.1) +(6.276654225 0.2120124636 0.1) +(6.413320336 0.2120124636 0.1) +(6.549986454 0.2120124636 0.1) +(6.686649864 0.2120124636 0.1) +(6.823314729 0.2120124636 0.1) +(6.959982625 0.2120124636 0.1) +(7.096638039 0.212742794 0.1) +(7.232250114 0.2280909866 0.1) +(7.364262739 0.261861824 0.1) +(7.490887 0.3112941636 0.1) +(7.611399114 0.3733473736 0.1) +(7.726606357 0.4441642939 0.1) +(7.838424954 0.5198399793 0.1) +(7.948698432 0.5975793036 0.1) +(8.0584234 0.6760235971 0.1) +(8.167210957 0.7556589229 0.1) +(8.274537 0.8370902468 0.1) +(8.380514861 0.9201340068 0.1) +(8.488252421 1.001053405 0.1) +(8.602314914 1.07344144 0.1) +(8.728178264 1.123824925 0.1) +(8.863348879 1.141491059 0.1) +(9 1.142173064 0.1) +(0 1.174038526 0.1) +(0.1365151318 1.173367781 0.1) +(0.2715716027 1.15599622 0.1) +(0.3974861418 1.10646587 0.1) +(0.5117969275 1.035298827 0.1) +(0.6198852479 0.9557408982 0.1) +(0.7262403757 0.8740932375 0.1) +(0.8339226057 0.7940313657 0.1) +(0.9430428196 0.7157358425 0.1) +(1.053088325 0.6386129671 0.1) +(1.163669249 0.5621822632 0.1) +(1.275768463 0.4877785989 0.1) +(1.391193316 0.4181464204 0.1) +(1.511844768 0.3571409321 0.1) +(1.638504504 0.3085440416 0.1) +(1.770457294 0.2753399718 0.1) +(1.905950628 0.2602491391 0.1) +(2.042470151 0.2595311349 0.1) +(2.178999433 0.2595311349 0.1) +(2.315529065 0.2595311349 0.1) +(2.452058474 0.2595311349 0.1) +(2.588587705 0.2595311349 0.1) +(2.725117256 0.2595311349 0.1) +(2.861646903 0.2595311349 0.1) +(2.998176131 0.2595311349 0.1) +(3.134705587 0.2595311349 0.1) +(3.271235084 0.2595311349 0.1) +(3.407764889 0.2595311349 0.1) +(3.544293969 0.2595311349 0.1) +(3.680823586 0.2595311349 0.1) +(3.817355464 0.2595311349 0.1) +(3.953882929 0.2595311349 0.1) +(4.090413554 0.2595311349 0.1) +(4.22694105 0.2595311349 0.1) +(4.363470079 0.2595311349 0.1) +(4.500000379 0.2595311349 0.1) +(4.636530679 0.2595311349 0.1) +(4.773059707 0.2595311349 0.1) +(4.909587207 0.2595311349 0.1) +(5.046117832 0.2595311349 0.1) +(5.182645296 0.2595311349 0.1) +(5.319177175 0.2595311349 0.1) +(5.455706639 0.2595311349 0.1) +(5.592238461 0.2595311349 0.1) +(5.7287666 0.2595311349 0.1) +(5.865293479 0.2595311349 0.1) +(6.001823246 0.2595311349 0.1) +(6.138352675 0.2595311349 0.1) +(6.274883436 0.2595311349 0.1) +(6.411413325 0.2595311349 0.1) +(6.547943218 0.2595311349 0.1) +(6.684470454 0.2595311349 0.1) +(6.820999121 0.2595311349 0.1) +(6.957530764 0.2595311349 0.1) +(7.094050139 0.2602491749 0.1) +(7.229543729 0.2753390804 0.1) +(7.361498443 0.3085416052 0.1) +(7.488155475 0.3571420726 0.1) +(7.608803211 0.41815102 0.1) +(7.724235354 0.4877761975 0.1) +(7.836335875 0.5621783746 0.1) +(7.946917282 0.6386094625 0.1) +(8.056959411 0.7157336564 0.1) +(8.166079896 0.7940288386 0.1) +(8.273763468 0.8740897954 0.1) +(8.380121546 0.9557360532 0.1) +(8.488209707 1.0352937 0.1) +(8.602516364 1.106463553 0.1) +(8.728425289 1.155999159 0.1) +(8.863484846 1.173367999 0.1) +(9 1.174038526 0.1) +(0 1.212644414 0.1) +(0.1363504019 1.211987579 0.1) +(0.2712723914 1.194976255 0.1) +(0.3972420268 1.146473024 0.1) +(0.5118485379 1.076781784 0.1) +(0.62036162 0.9988736621 0.1) +(0.7271774511 0.9189191425 0.1) +(0.8352928639 0.8405175275 0.1) +(0.9448164411 0.7638456318 0.1) +(1.055246121 0.6883220668 0.1) +(1.166200118 0.6134763196 0.1) +(1.278640919 0.5406155768 0.1) +(1.394338395 0.4724273725 0.1) +(1.515154085 0.4126869657 0.1) +(1.641853463 0.3650978371 0.1) +(1.773736134 0.3325823258 0.1) +(1.909085927 0.3178044343 0.1) +(2.04544063 0.3171013195 0.1) +(2.181804888 0.3171013195 0.1) +(2.318169489 0.3171013195 0.1) +(2.454533872 0.3171013195 0.1) +(2.59089808 0.3171013195 0.1) +(2.727262603 0.3171013195 0.1) +(2.863627218 0.3171013195 0.1) +(2.999991424 0.3171013195 0.1) +(3.136355853 0.3171013195 0.1) +(3.272720323 0.3171013195 0.1) +(3.409085093 0.3171013195 0.1) +(3.545449155 0.3171013195 0.1) +(3.681813739 0.3171013195 0.1) +(3.818180539 0.3171013195 0.1) +(3.954543021 0.3171013195 0.1) +(4.090908593 0.3171013195 0.1) +(4.227271104 0.3171013195 0.1) +(4.363635118 0.3171013195 0.1) +(4.500000371 0.3171013195 0.1) +(4.636365625 0.3171013195 0.1) +(4.772729639 0.3171013195 0.1) +(4.90909215 0.3171013195 0.1) +(5.045457725 0.3171013195 0.1) +(5.181820204 0.3171013195 0.1) +(5.318187004 0.3171013195 0.1) +(5.454551443 0.3171013195 0.1) +(5.590918189 0.3171013195 0.1) +(5.727281325 0.3171013195 0.1) +(5.863643229 0.3171013195 0.1) +(6.000007964 0.3171013195 0.1) +(6.136372368 0.3171013195 0.1) +(6.272738075 0.3171013195 0.1) +(6.409102929 0.3171013195 0.1) +(6.545467786 0.3171013195 0.1) +(6.681830039 0.3171013195 0.1) +(6.818193696 0.3171013195 0.1) +(6.954560268 0.3171013195 0.1) +(7.090914821 0.3178044693 0.1) +(7.226264864 0.3325814529 0.1) +(7.358149425 0.3650954514 0.1) +(7.484846154 0.4126880825 0.1) +(7.605658207 0.4724318768 0.1) +(7.721362821 0.5406132254 0.1) +(7.8338049 0.6134725118 0.1) +(7.944759368 0.688318635 0.1) +(8.055185743 0.7638434911 0.1) +(8.164709589 0.8405150529 0.1) +(8.272826311 0.9189157718 0.1) +(8.379645032 0.9988689175 0.1) +(8.488157961 1.076776763 0.1) +(8.602760429 1.146470755 0.1) +(8.728724564 1.194979133 0.1) +(8.863649579 1.211987792 0.1) +(9 1.212644414 0.1) +(0 1.259416516 0.1) +(0.136150827 1.258776532 0.1) +(0.2709098885 1.242201646 0.1) +(0.3969462746 1.194942798 0.1) +(0.5119110654 1.127039535 0.1) +(0.6209387582 1.051130198 0.1) +(0.7283127436 0.9732269664 0.1) +(0.8369529696 0.8968367982 0.1) +(0.9469652325 0.8221319725 0.1) +(1.057860352 0.7485460161 0.1) +(1.169266336 0.6756204875 0.1) +(1.282120979 0.6046290368 0.1) +(1.398148745 0.5381902475 0.1) +(1.519163413 0.4799825214 0.1) +(1.645910821 0.4336143246 0.1) +(1.777708539 0.4019330211 0.1) +(1.912884429 0.3875342664 0.1) +(2.049039446 0.3868491904 0.1) +(2.185203773 0.3868491904 0.1) +(2.321368436 0.3868491904 0.1) +(2.457532885 0.3868491904 0.1) +(2.593697165 0.3868491904 0.1) +(2.72986175 0.3868491904 0.1) +(2.866026426 0.3868491904 0.1) +(3.002190703 0.3868491904 0.1) +(3.138355197 0.3868491904 0.1) +(3.274519731 0.3868491904 0.1) +(3.410684558 0.3868491904 0.1) +(3.546848694 0.3868491904 0.1) +(3.683013339 0.3868491904 0.1) +(3.819180146 0.3868491904 0.1) +(3.955342739 0.3868491904 0.1) +(4.09150835 0.3868491904 0.1) +(4.227670975 0.3868491904 0.1) +(4.363835064 0.3868491904 0.1) +(4.500000361 0.3868491904 0.1) +(4.636165661 0.3868491904 0.1) +(4.77232975 0.3868491904 0.1) +(4.908492375 0.3868491904 0.1) +(5.044657986 0.3868491904 0.1) +(5.180820579 0.3868491904 0.1) +(5.316987386 0.3868491904 0.1) +(5.453151889 0.3868491904 0.1) +(5.589318639 0.3868491904 0.1) +(5.725481875 0.3868491904 0.1) +(5.861643911 0.3868491904 0.1) +(5.997808704 0.3868491904 0.1) +(6.133973171 0.3868491904 0.1) +(6.270138911 0.3868491904 0.1) +(6.406303818 0.3868491904 0.1) +(6.542468729 0.3868491904 0.1) +(6.678631104 0.3868491904 0.1) +(6.814794846 0.3868491904 0.1) +(6.950961429 0.3868491904 0.1) +(7.087116304 0.3875343004 0.1) +(7.222292436 0.4019321704 0.1) +(7.354091993 0.433612 0.1) +(7.480836818 0.4799836096 0.1) +(7.601847943 0.5381946364 0.1) +(7.717882664 0.6046267457 0.1) +(7.830738554 0.6756167775 0.1) +(7.942144996 0.7485426725 0.1) +(8.053036893 0.8221298868 0.1) +(8.163049418 0.8968343875 0.1) +(8.271690921 0.9732236825 0.1) +(8.379067725 1.051125575 0.1) +(8.488095268 1.127034642 0.1) +(8.603056118 1.194940587 0.1) +(8.729087146 1.242204449 0.1) +(8.863849154 1.25877674 0.1) +(9 1.259416516 0.1) +(0 1.316082211 0.1) +(0.1359090365 1.315462643 0.1) +(0.2704707063 1.299416512 0.1) +(0.3965879629 1.253665269 0.1) +(0.5119868193 1.187928189 0.1) +(0.6216379768 1.114440437 0.1) +(0.7296881821 1.039022398 0.1) +(0.8389642339 0.9650691529 0.1) +(0.9495685525 0.8927474864 0.1) +(1.061027564 0.8215089964 0.1) +(1.172981143 0.7509098661 0.1) +(1.286337168 0.6821831143 0.1) +(1.402765089 0.6178637896 0.1) +(1.524020826 0.5615129489 0.1) +(1.650826421 0.5166239443 0.1) +(1.782521218 0.4859533061 0.1) +(1.917486419 0.4720138864 0.1) +(2.053399511 0.471350665 0.1) +(2.189321618 0.471350665 0.1) +(2.325244049 0.471350665 0.1) +(2.461166273 0.471350665 0.1) +(2.597088333 0.471350665 0.1) +(2.733010689 0.471350665 0.1) +(2.868933132 0.471350665 0.1) +(3.00485519 0.471350665 0.1) +(3.140777458 0.471350665 0.1) +(3.276699764 0.471350665 0.1) +(3.412622353 0.471350665 0.1) +(3.548544274 0.471350665 0.1) +(3.684466689 0.471350665 0.1) +(3.820391193 0.471350665 0.1) +(3.956311625 0.471350665 0.1) +(4.092234971 0.471350665 0.1) +(4.228155429 0.471350665 0.1) +(4.364077304 0.471350665 0.1) +(4.50000035 0.471350665 0.1) +(4.635923396 0.471350665 0.1) +(4.771845271 0.471350665 0.1) +(4.907765729 0.471350665 0.1) +(5.043689079 0.471350665 0.1) +(5.179609507 0.471350665 0.1) +(5.315534011 0.471350665 0.1) +(5.451456289 0.471350665 0.1) +(5.587380743 0.471350665 0.1) +(5.723301793 0.471350665 0.1) +(5.859221679 0.471350665 0.1) +(5.995144236 0.471350665 0.1) +(6.131066479 0.471350665 0.1) +(6.26698995 0.471350665 0.1) +(6.402912618 0.471350665 0.1) +(6.538835289 0.471350665 0.1) +(6.674755507 0.471350665 0.1) +(6.810677046 0.471350665 0.1) +(6.946601336 0.471350665 0.1) +(7.082514289 0.4720139196 0.1) +(7.217479725 0.4859524829 0.1) +(7.3491763 0.5166216939 0.1) +(7.475979396 0.5615140025 0.1) +(7.597231704 0.6178680382 0.1) +(7.713666361 0.6821808964 0.1) +(7.827023589 0.7509062743 0.1) +(7.938977614 0.8215057593 0.1) +(8.050433507 0.8927454671 0.1) +(8.161038079 0.9650668186 0.1) +(8.270315368 1.039019218 0.1) +(8.3783683 1.114435962 0.1) +(8.488019311 1.187923453 0.1) +(8.603414354 1.253663129 0.1) +(8.729526421 1.299419226 0.1) +(8.864090946 1.315462844 0.1) +(9 1.316082211 0.1) +(0 1.384734268 0.1) +(0.1356161007 1.384139434 0.1) +(0.2699386249 1.368733906 0.1) +(0.3961538582 1.324809168 0.1) +(0.5120785968 1.261696478 0.1) +(0.6224850993 1.191142543 0.1) +(0.7313545639 1.118735382 0.1) +(0.8414009357 1.047734538 0.1) +(0.9527225471 0.9783001346 0.1) +(1.06486473 0.909905665 0.1) +(1.177481735 0.8421250304 0.1) +(1.291445197 0.7761420243 0.1) +(1.408357918 0.7143904893 0.1) +(1.529905715 0.6602893168 0.1) +(1.656781808 0.6171923946 0.1) +(1.788351911 0.5877462057 0.1) +(1.923061856 0.5743632829 0.1) +(2.058681851 0.5737265389 0.1) +(2.1943105 0.5737265389 0.1) +(2.32993946 0.5737265389 0.1) +(2.465568223 0.5737265389 0.1) +(2.601196826 0.5737265389 0.1) +(2.736825715 0.5737265389 0.1) +(2.872454687 0.5737265389 0.1) +(3.008083289 0.5737265389 0.1) +(3.143712093 0.5737265389 0.1) +(3.279340934 0.5737265389 0.1) +(3.414970046 0.5737265389 0.1) +(3.550598517 0.5737265389 0.1) +(3.686227461 0.5737265389 0.1) +(3.821858414 0.5737265389 0.1) +(3.957485454 0.5737265389 0.1) +(4.093115293 0.5737265389 0.1) +(4.228742357 0.5737265389 0.1) +(4.364370786 0.5737265389 0.1) +(4.500000336 0.5737265389 0.1) +(4.635629889 0.5737265389 0.1) +(4.771258314 0.5737265389 0.1) +(4.906885382 0.5737265389 0.1) +(5.042515221 0.5737265389 0.1) +(5.178142261 0.5737265389 0.1) +(5.313773211 0.5737265389 0.1) +(5.449402025 0.5737265389 0.1) +(5.585032925 0.5737265389 0.1) +(5.720660561 0.5737265389 0.1) +(5.856287079 0.5737265389 0.1) +(5.991916157 0.5737265389 0.1) +(6.127544939 0.5737265389 0.1) +(6.2631749 0.5737265389 0.1) +(6.398804086 0.5737265389 0.1) +(6.534433279 0.5737265389 0.1) +(6.670060114 0.5737265389 0.1) +(6.805688218 0.5737265389 0.1) +(6.941318961 0.5737265389 0.1) +(7.076938821 0.5743633146 0.1) +(7.211648993 0.5877454154 0.1) +(7.343220807 0.6171902339 0.1) +(7.4700945 0.6602903279 0.1) +(7.591639004 0.7143945686 0.1) +(7.708558189 0.7761398946 0.1) +(7.822522811 0.8421215821 0.1) +(7.935140243 0.9099025571 0.1) +(8.047279429 0.9782981961 0.1) +(8.158601286 1.047732296 0.1) +(8.268648843 1.118732329 0.1) +(8.377520925 1.191138246 0.1) +(8.487927289 1.261691931 0.1) +(8.603848364 1.324807113 0.1) +(8.730058618 1.368736511 0.1) +(8.864383882 1.384139627 0.1) +(9 1.384734268 0.1) +(0 1.467908133 0.1) +(0.1352612008 1.467343266 0.1) +(0.2692939935 1.452713845 0.1) +(0.3956279286 1.411001969 0.1) +(0.5121897882 1.3510688 0.1) +(0.6235114121 1.284069265 0.1) +(0.7333734314 1.215309867 0.1) +(0.8443530675 1.147885937 0.1) +(0.9565436986 1.081949534 0.1) +(1.069513561 1.017000674 0.1) +(1.182934326 0.9526347246 0.1) +(1.297633716 0.8899758425 0.1) +(1.415133784 0.8313352561 0.1) +(1.537035422 0.7799596182 0.1) +(1.663996922 0.7390338536 0.1) +(1.795415957 0.7110711189 0.1) +(1.929816654 0.6983624075 0.1) +(2.065081553 0.6977577418 0.1) +(2.200354669 0.6977577418 0.1) +(2.335628081 0.6977577418 0.1) +(2.470901306 0.6977577418 0.1) +(2.60617438 0.6977577418 0.1) +(2.741447725 0.6977577418 0.1) +(2.876721149 0.6977577418 0.1) +(3.011994221 0.6977577418 0.1) +(3.147267485 0.6977577418 0.1) +(3.282540784 0.6977577418 0.1) +(3.417814341 0.6977577418 0.1) +(3.553087289 0.6977577418 0.1) +(3.688360686 0.6977577418 0.1) +(3.823635989 0.6977577418 0.1) +(3.958907579 0.6977577418 0.1) +(4.094181825 0.6977577418 0.1) +(4.229453439 0.6977577418 0.1) +(4.364726346 0.6977577418 0.1) +(4.500000321 0.6977577418 0.1) +(4.635274293 0.6977577418 0.1) +(4.7705472 0.6977577418 0.1) +(4.905818814 0.6977577418 0.1) +(5.041093061 0.6977577418 0.1) +(5.17636465 0.6977577418 0.1) +(5.311639954 0.6977577418 0.1) +(5.446913225 0.6977577418 0.1) +(5.582188482 0.6977577418 0.1) +(5.717460636 0.6977577418 0.1) +(5.852731729 0.6977577418 0.1) +(5.988005254 0.6977577418 0.1) +(6.123278496 0.6977577418 0.1) +(6.258552857 0.6977577418 0.1) +(6.393826486 0.6977577418 0.1) +(6.529100121 0.6977577418 0.1) +(6.664371514 0.6977577418 0.1) +(6.799644111 0.6977577418 0.1) +(6.934919218 0.6977577418 0.1) +(7.070183993 0.6983624375 0.1) +(7.204584904 0.7110703682 0.1) +(7.336005561 0.7390318018 0.1) +(7.462964782 0.7799605786 0.1) +(7.584863293 0.8313391296 0.1) +(7.7023695 0.88997382 0.1) +(7.817069989 0.9526314504 0.1) +(7.930491161 1.016997723 0.1) +(8.043458179 1.081947693 0.1) +(8.155649039 1.147883809 0.1) +(8.266629804 1.215306968 0.1) +(8.376494311 1.284065185 0.1) +(8.4878158 1.351064482 0.1) +(8.604374182 1.411000018 0.1) +(8.730703389 1.452716319 0.1) +(8.864738782 1.46734345 0.1) +(9 1.467908133 0.1) +(0 1.568675571 0.1) +(0.1348312298 1.56814701 0.1) +(0.2685130049 1.554457864 0.1) +(0.39499075 1.515426931 0.1) +(0.5123244993 1.45934584 0.1) +(0.6247548182 1.39665256 0.1) +(0.7358193457 1.332312527 0.1) +(0.8479296571 1.269222128 0.1) +(0.9611731289 1.207523649 0.1) +(1.07514575 1.14674924 0.1) +(1.189540292 1.086520276 0.1) +(1.305131277 1.027888661 0.1) +(1.423342934 0.9730170754 0.1) +(1.545673258 0.9249434982 0.1) +(1.672738234 0.8866481511 0.1) +(1.803974245 0.8604826625 0.1) +(1.938000277 0.8485907764 0.1) +(2.072834968 0.8480249743 0.1) +(2.207677347 0.8480249743 0.1) +(2.342520004 0.8480249743 0.1) +(2.477362484 0.8480249743 0.1) +(2.612204824 0.8480249743 0.1) +(2.747047417 0.8480249743 0.1) +(2.881890085 0.8480249743 0.1) +(3.016732423 0.8480249743 0.1) +(3.15157494 0.8480249743 0.1) +(3.286417491 0.8480249743 0.1) +(3.421260283 0.8480249743 0.1) +(3.556102504 0.8480249743 0.1) +(3.690945146 0.8480249743 0.1) +(3.825789575 0.8480249743 0.1) +(3.960630521 0.8480249743 0.1) +(4.095473961 0.8480249743 0.1) +(4.230314936 0.8480249743 0.1) +(4.365157118 0.8480249743 0.1) +(4.5000003 0.8480249743 0.1) +(4.634843482 0.8480249743 0.1) +(4.769685664 0.8480249743 0.1) +(4.904526636 0.8480249743 0.1) +(5.039370075 0.8480249743 0.1) +(5.174211025 0.8480249743 0.1) +(5.30905545 0.8480249743 0.1) +(5.443897975 0.8480249743 0.1) +(5.578742357 0.8480249743 0.1) +(5.713583836 0.8480249743 0.1) +(5.848424321 0.8480249743 0.1) +(5.983267086 0.8480249743 0.1) +(6.118109582 0.8480249743 0.1) +(6.252953129 0.8480249743 0.1) +(6.387795989 0.8480249743 0.1) +(6.52263885 0.8480249743 0.1) +(6.657479618 0.8480249743 0.1) +(6.792321511 0.8480249743 0.1) +(6.927165754 0.8480249743 0.1) +(7.062000325 0.8485908046 0.1) +(7.196026561 0.86048196 0.1) +(7.327264089 0.8866462311 0.1) +(7.454326932 0.9249443971 0.1) +(7.576654332 0.9730207 0.1) +(7.694871732 1.027886769 0.1) +(7.810463746 1.086517212 0.1) +(7.924858668 1.146746478 0.1) +(8.038828629 1.207521926 0.1) +(8.152072318 1.269220137 0.1) +(8.264183682 1.332309814 0.1) +(8.375250536 1.396648741 0.1) +(8.487680729 1.4593418 0.1) +(8.605011225 1.515425105 0.1) +(8.731484546 1.55446018 0.1) +(8.865168754 1.568147182 0.1) +(9 1.568675571 0.1) +(0 1.69075811 0.1) +(0.134310308 1.690273534 0.1) +(0.2675668154 1.677723558 0.1) +(0.3942187907 1.641940661 0.1) +(0.5124877057 1.59052647 0.1) +(0.6262612389 1.533050335 0.1) +(0.7387826379 1.474064485 0.1) +(0.8522627939 1.41622428 0.1) +(0.9667818125 1.359660161 0.1) +(1.081969302 1.303943216 0.1) +(1.197543601 1.248726325 0.1) +(1.31421478 1.194973856 0.1) +(1.433288546 1.144668518 0.1) +(1.556138236 1.100595479 0.1) +(1.683328574 1.065486955 0.1) +(1.814342846 1.04149888 0.1) +(1.947914963 1.030596601 0.1) +(2.082228444 1.030077883 0.1) +(2.216548974 1.030077883 0.1) +(2.350869758 1.030077883 0.1) +(2.48519038 1.030077883 0.1) +(2.619510874 1.030077883 0.1) +(2.7538316 1.030077883 0.1) +(2.888152393 1.030077883 0.1) +(3.022472885 1.030077883 0.1) +(3.156793542 1.030077883 0.1) +(3.291114228 1.030077883 0.1) +(3.425435136 1.030077883 0.1) +(3.559755521 1.030077883 0.1) +(3.694076293 1.030077883 0.1) +(3.8283987 1.030077883 0.1) +(3.962717918 1.030077883 0.1) +(4.097039418 1.030077883 0.1) +(4.231358661 1.030077883 0.1) +(4.365679007 1.030077883 0.1) +(4.500000275 1.030077883 0.1) +(4.634321539 1.030077883 0.1) +(4.768641889 1.030077883 0.1) +(4.902961129 1.030077883 0.1) +(5.037282632 1.030077883 0.1) +(5.17160185 1.030077883 0.1) +(5.305924254 1.030077883 0.1) +(5.440244918 1.030077883 0.1) +(5.574567286 1.030077883 0.1) +(5.708886989 1.030077883 0.1) +(5.843205782 1.030077883 0.1) +(5.977526664 1.030077883 0.1) +(6.111847304 1.030077883 0.1) +(6.2461689 1.030077883 0.1) +(6.380489871 1.030077883 0.1) +(6.514810843 1.030077883 0.1) +(6.649129896 1.030077883 0.1) +(6.783449982 1.030077883 0.1) +(6.917772218 1.030077883 0.1) +(7.052085589 1.030596626 0.1) +(7.185657889 1.041498236 0.1) +(7.316673557 1.065485195 0.1) +(7.443861939 1.100596303 0.1) +(7.566708946 1.144671841 0.1) +(7.685787979 1.194972121 0.1) +(7.8024601 1.248723516 0.1) +(7.91803475 1.303940684 0.1) +(8.033219796 1.359658582 0.1) +(8.147739014 1.416222454 0.1) +(8.261220139 1.474061999 0.1) +(8.373743668 1.533046834 0.1) +(8.487517089 1.590522765 0.1) +(8.605783021 1.641938987 0.1) +(8.732430939 1.67772568 0.1) +(8.865689679 1.690273691 0.1) +(9 1.69075811 0.1) +(0 1.838664482 0.1) +(0.1336791969 1.838233196 0.1) +(0.2664204808 1.827063354 0.1) +(0.3932835404 1.795215544 0.1) +(0.5126854346 1.74945543 0.1) +(0.6280863096 1.698300011 0.1) +(0.7423727486 1.645800904 0.1) +(0.8575125093 1.594321452 0.1) +(0.9735768871 1.543977755 0.1) +(1.090236224 1.494388065 0.1) +(1.207239833 1.445243439 0.1) +(1.325219696 1.397402191 0.1) +(1.44533793 1.352628989 0.1) +(1.568816847 1.313402713 0.1) +(1.696159065 1.282155113 0.1) +(1.826904695 1.260805034 0.1) +(1.95992688 1.251101691 0.1) +(2.093608901 1.250640017 0.1) +(2.227297195 1.250640017 0.1) +(2.360985716 1.250640017 0.1) +(2.494674093 1.250640017 0.1) +(2.628362355 1.250640017 0.1) +(2.762050824 1.250640017 0.1) +(2.895739354 1.250640017 0.1) +(3.029427615 1.250640017 0.1) +(3.163116022 1.250640017 0.1) +(3.296804456 1.250640017 0.1) +(3.430493087 1.250640017 0.1) +(3.564181253 1.250640017 0.1) +(3.697869764 1.250640017 0.1) +(3.831559729 1.250640017 0.1) +(3.965246854 1.250640017 0.1) +(4.098936014 1.250640017 0.1) +(4.232623161 1.250640017 0.1) +(4.366311293 1.250640017 0.1) +(4.500000243 1.250640017 0.1) +(4.633689193 1.250640017 0.1) +(4.767377325 1.250640017 0.1) +(4.901064475 1.250640017 0.1) +(5.034753636 1.250640017 0.1) +(5.168440761 1.250640017 0.1) +(5.302130725 1.250640017 0.1) +(5.435819139 1.250640017 0.1) +(5.569509068 1.250640017 0.1) +(5.703196629 1.250640017 0.1) +(5.836883375 1.250640017 0.1) +(5.970571986 1.250640017 0.1) +(6.104260375 1.250640017 0.1) +(6.237949621 1.250640017 0.1) +(6.371638307 1.250640017 0.1) +(6.505326996 1.250640017 0.1) +(6.639013975 1.250640017 0.1) +(6.772701875 1.250640017 0.1) +(6.906391689 1.250640017 0.1) +(7.040073611 1.251101714 0.1) +(7.173095961 1.26080446 0.1) +(7.303842832 1.282153546 0.1) +(7.431183307 1.313403446 0.1) +(7.554659839 1.352631946 0.1) +(7.674782761 1.397400647 0.1) +(7.792763461 1.445240939 0.1) +(7.909767382 1.494385812 0.1) +(8.026424546 1.543976349 0.1) +(8.1424891 1.594319827 0.1) +(8.257629721 1.64579869 0.1) +(8.371918057 1.698296896 0.1) +(8.487318832 1.749452134 0.1) +(8.606718071 1.795214054 0.1) +(8.733577521 1.827065244 0.1) +(8.866320789 1.838233336 0.1) +(9 1.838664482 0.1) +(0 2.017857143 0.1) +(0.1329145883 2.017490418 0.1) +(0.2650316647 2.007992649 0.1) +(0.3921504589 1.980912304 0.1) +(0.5129249889 1.942002262 0.1) +(0.6302974332 1.898504566 0.1) +(0.7467222671 1.853864325 0.1) +(0.8638726843 1.810091102 0.1) +(0.9818093086 1.767283616 0.1) +(1.100251829 1.725117268 0.1) +(1.218987085 1.683329358 0.1) +(1.338552455 1.642649718 0.1) +(1.459936093 1.604578851 0.1) +(1.584177334 1.571224561 0.1) +(1.711703559 1.544654579 0.1) +(1.842123721 1.526500505 0.1) +(1.974479649 1.518249706 0.1) +(2.107396639 1.517857143 0.1) +(2.240318963 1.517857143 0.1) +(2.373241479 1.517857143 0.1) +(2.506163873 1.517857143 0.1) +(2.63908617 1.517857143 0.1) +(2.772008642 1.517857143 0.1) +(2.904931166 1.517857143 0.1) +(3.037853461 1.517857143 0.1) +(3.170775881 1.517857143 0.1) +(3.303698324 1.517857143 0.1) +(3.436620934 1.517857143 0.1) +(3.569543149 1.517857143 0.1) +(3.702465657 1.517857143 0.1) +(3.8353894 1.517857143 0.1) +(3.968310732 1.517857143 0.1) +(4.101233789 1.517857143 0.1) +(4.234155139 1.517857143 0.1) +(4.367077325 1.517857143 0.1) +(4.500000207 1.517857143 0.1) +(4.632923089 1.517857143 0.1) +(4.765845275 1.517857143 0.1) +(4.898766625 1.517857143 0.1) +(5.031689682 1.517857143 0.1) +(5.164611014 1.517857143 0.1) +(5.297534761 1.517857143 0.1) +(5.430457186 1.517857143 0.1) +(5.563380896 1.517857143 0.1) +(5.696302596 1.517857143 0.1) +(5.829223607 1.517857143 0.1) +(5.962146196 1.517857143 0.1) +(6.095068604 1.517857143 0.1) +(6.227991736 1.517857143 0.1) +(6.360914393 1.517857143 0.1) +(6.493837054 1.517857143 0.1) +(6.626758257 1.517857143 0.1) +(6.759680246 1.517857143 0.1) +(6.892603861 1.517857143 0.1) +(7.025520768 1.518249726 0.1) +(7.157876836 1.526500018 0.1) +(7.288298054 1.544653247 0.1) +(7.4158228 1.571225185 0.1) +(7.540062011 1.604581365 0.1) +(7.661449632 1.642648405 0.1) +(7.781015718 1.683327233 0.1) +(7.899751236 1.725115352 0.1) +(8.018191911 1.767282421 0.1) +(8.136128686 1.81008972 0.1) +(8.253279832 1.853862443 0.1) +(8.369706282 1.898501917 0.1) +(8.487078639 1.941999459 0.1) +(8.607850911 1.980911038 0.1) +(8.734966636 2.007994255 0.1) +(8.8670854 2.017490537 0.1) +(9 2.017857143 0.1) +(0 2.197049804 0.1) +(0.1321499796 2.19674764 0.1) +(0.2636428485 2.188921943 0.1) +(0.3910173775 2.166609064 0.1) +(0.5131645432 2.134549093 0.1) +(0.6325085564 2.09870912 0.1) +(0.7510717857 2.061927746 0.1) +(0.8702328596 2.025860752 0.1) +(0.9900417296 1.990589479 0.1) +(1.110267433 1.95584647 0.1) +(1.230734337 1.921415278 0.1) +(1.351885214 1.887897244 0.1) +(1.474534255 1.856528713 0.1) +(1.599537821 1.82904641 0.1) +(1.727248053 1.807154045 0.1) +(1.857342748 1.792195976 0.1) +(1.989032419 1.785397722 0.1) +(2.121184376 1.785074269 0.1) +(2.25334073 1.785074269 0.1) +(2.385497242 1.785074269 0.1) +(2.517653654 1.785074269 0.1) +(2.649809985 1.785074269 0.1) +(2.78196646 1.785074269 0.1) +(2.914122979 1.785074269 0.1) +(3.046279308 1.785074269 0.1) +(3.178435741 1.785074269 0.1) +(3.310592192 1.785074269 0.1) +(3.442748781 1.785074269 0.1) +(3.574905046 1.785074269 0.1) +(3.70706155 1.785074269 0.1) +(3.839219071 1.785074269 0.1) +(3.971374607 1.785074269 0.1) +(4.103531568 1.785074269 0.1) +(4.235687118 1.785074269 0.1) +(4.367843357 1.785074269 0.1) +(4.500000171 1.785074269 0.1) +(4.632156982 1.785074269 0.1) +(4.764313225 1.785074269 0.1) +(4.896468775 1.785074269 0.1) +(5.028625732 1.785074269 0.1) +(5.160781268 1.785074269 0.1) +(5.292938793 1.785074269 0.1) +(5.425095229 1.785074269 0.1) +(5.557252729 1.785074269 0.1) +(5.689408568 1.785074269 0.1) +(5.821563836 1.785074269 0.1) +(5.953720411 1.785074269 0.1) +(6.085876832 1.785074269 0.1) +(6.21803385 1.785074269 0.1) +(6.350190479 1.785074269 0.1) +(6.482347111 1.785074269 0.1) +(6.614502543 1.785074269 0.1) +(6.746658618 1.785074269 0.1) +(6.878816036 1.785074269 0.1) +(7.010967925 1.785397738 0.1) +(7.142657711 1.792195575 0.1) +(7.272753275 1.807152947 0.1) +(7.400462289 1.829046924 0.1) +(7.525464182 1.856530785 0.1) +(7.648116507 1.887896163 0.1) +(7.769267971 1.921413526 0.1) +(7.889735093 1.955844892 0.1) +(8.009959275 1.990588494 0.1) +(8.129768268 2.025859614 0.1) +(8.248929946 2.061926195 0.1) +(8.367494504 2.098706938 0.1) +(8.486838446 2.134546784 0.1) +(8.608983754 2.166608021 0.1) +(8.73635575 2.188923267 0.1) +(8.867850011 2.196747739 0.1) +(9 2.197049804 0.1) +(0 2.344956176 0.1) +(0.1315188685 2.344707302 0.1) +(0.2624965139 2.33826174 0.1) +(0.3900821275 2.319883948 0.1) +(0.5133622721 2.293478054 0.1) +(0.6343336271 2.263958797 0.1) +(0.7546618964 2.233664164 0.1) +(0.875482575 2.203957924 0.1) +(0.9968368046 2.174907072 0.1) +(1.118534355 2.14629132 0.1) +(1.240430569 2.117932392 0.1) +(1.362890129 2.090325579 0.1) +(1.486583639 2.064489183 0.1) +(1.612216431 2.041853644 0.1) +(1.740078543 2.023822203 0.1) +(1.869904596 2.01150213 0.1) +(2.001044335 2.005902812 0.1) +(2.132564833 2.005636403 0.1) +(2.264088952 2.005636403 0.1) +(2.3956132 2.005636403 0.1) +(2.527137366 2.005636403 0.1) +(2.658661466 2.005636403 0.1) +(2.790185685 2.005636403 0.1) +(2.921709939 2.005636403 0.1) +(3.053234038 2.005636403 0.1) +(3.184758221 2.005636403 0.1) +(3.31628242 2.005636403 0.1) +(3.447806733 2.005636403 0.1) +(3.579330775 2.005636403 0.1) +(3.710855018 2.005636403 0.1) +(3.8423801 2.005636403 0.1) +(3.973903546 2.005636403 0.1) +(4.105428164 2.005636403 0.1) +(4.236951618 2.005636403 0.1) +(4.368475643 2.005636403 0.1) +(4.500000139 2.005636403 0.1) +(4.631524636 2.005636403 0.1) +(4.763048661 2.005636403 0.1) +(4.894572118 2.005636403 0.1) +(5.026096736 2.005636403 0.1) +(5.157620182 2.005636403 0.1) +(5.289145264 2.005636403 0.1) +(5.42066945 2.005636403 0.1) +(5.552194511 2.005636403 0.1) +(5.683718204 2.005636403 0.1) +(5.815241432 2.005636403 0.1) +(5.946765732 2.005636403 0.1) +(6.078289904 2.005636403 0.1) +(6.209814571 2.005636403 0.1) +(6.341338918 2.005636403 0.1) +(6.472863261 2.005636403 0.1) +(6.604386621 2.005636403 0.1) +(6.735910511 2.005636403 0.1) +(6.867435507 2.005636403 0.1) +(6.99895595 2.005902825 0.1) +(7.130095782 2.011501799 0.1) +(7.25992255 2.023821299 0.1) +(7.387783657 2.041854066 0.1) +(7.513415071 2.06449089 0.1) +(7.637111286 2.090324688 0.1) +(7.759571332 2.117930949 0.1) +(7.881467725 2.14629002 0.1) +(8.003164021 2.174906261 0.1) +(8.124518354 2.203956986 0.1) +(8.245339529 2.233662887 0.1) +(8.365668893 2.263957 0.1) +(8.486640189 2.293476151 0.1) +(8.609918804 2.319883088 0.1) +(8.737502332 2.33826283 0.1) +(8.868481125 2.344707383 0.1) +(9 2.344956176 0.1) +(0 2.467038715 0.1) +(0.1309979467 2.466833826 0.1) +(0.2615503245 2.461527434 0.1) +(0.3893101682 2.446397677 0.1) +(0.5135254786 2.424658683 0.1) +(0.6358400479 2.400356573 0.1) +(0.7576251886 2.375416123 0.1) +(0.8798157118 2.350960075 0.1) +(1.002445488 2.327043585 0.1) +(1.125357908 2.303485296 0.1) +(1.248433878 2.280138441 0.1) +(1.371973633 2.257410774 0.1) +(1.496529251 2.236140626 0.1) +(1.622681409 2.217505624 0.1) +(1.750668884 2.202661007 0.1) +(1.880273198 2.192518348 0.1) +(2.010959021 2.187908636 0.1) +(2.14195831 2.187689311 0.1) +(2.272960579 2.187689311 0.1) +(2.403962955 2.187689311 0.1) +(2.534965263 2.187689311 0.1) +(2.665967516 2.187689311 0.1) +(2.796969868 2.187689311 0.1) +(2.927972248 2.187689311 0.1) +(3.0589745 2.187689311 0.1) +(3.189976823 2.187689311 0.1) +(3.320979158 2.187689311 0.1) +(3.451981586 2.187689311 0.1) +(3.582983793 2.187689311 0.1) +(3.713986164 2.187689311 0.1) +(3.844989225 2.187689311 0.1) +(3.975990939 2.187689311 0.1) +(4.106993621 2.187689311 0.1) +(4.237995343 2.187689311 0.1) +(4.368997536 2.187689311 0.1) +(4.500000114 2.187689311 0.1) +(4.631002696 2.187689311 0.1) +(4.762004889 2.187689311 0.1) +(4.893006611 2.187689311 0.1) +(5.024009293 2.187689311 0.1) +(5.155011004 2.187689311 0.1) +(5.286014068 2.187689311 0.1) +(5.417016393 2.187689311 0.1) +(5.548019436 2.187689311 0.1) +(5.679021357 2.187689311 0.1) +(5.810022893 2.187689311 0.1) +(5.941025311 2.187689311 0.1) +(6.072027625 2.187689311 0.1) +(6.203030343 2.187689311 0.1) +(6.3340328 2.187689311 0.1) +(6.465035254 2.187689311 0.1) +(6.5960369 2.187689311 0.1) +(6.727038979 2.187689311 0.1) +(6.858041971 2.187689311 0.1) +(6.989041211 2.187908647 0.1) +(7.119727114 2.192518075 0.1) +(7.249332018 2.202660263 0.1) +(7.377318664 2.217505973 0.1) +(7.503469689 2.236142031 0.1) +(7.628027532 2.25741004 0.1) +(7.751567686 2.280137253 0.1) +(7.874643804 2.303484225 0.1) +(7.997555193 2.327042917 0.1) +(8.120185054 2.350959304 0.1) +(8.242375986 2.375415071 0.1) +(8.364162029 2.400355093 0.1) +(8.48647655 2.424657117 0.1) +(8.610690596 2.44639697 0.1) +(8.738448725 2.461528331 0.1) +(8.869002046 2.466833893 0.1) +(9 2.467038715 0.1) +(0 2.567806153 0.1) +(0.1305679757 2.56763757 0.1) +(0.2607693358 2.563271453 0.1) +(0.3886729896 2.55082264 0.1) +(0.51366019 2.532935724 0.1) +(0.6370834539 2.512939867 0.1) +(0.7600711025 2.492418783 0.1) +(0.8833923014 2.472296266 0.1) +(1.007074919 2.452617699 0.1) +(1.130990096 2.433233861 0.1) +(1.255039844 2.414023992 0.1) +(1.379471194 2.395323593 0.1) +(1.504738401 2.377822445 0.1) +(1.631319246 2.362489505 0.1) +(1.759410195 2.350275304 0.1) +(1.888831485 2.341929891 0.1) +(2.019142645 2.338137005 0.1) +(2.149711725 2.337956544 0.1) +(2.280283256 2.337956544 0.1) +(2.410854877 2.337956544 0.1) +(2.541426441 2.337956544 0.1) +(2.67199796 2.337956544 0.1) +(2.80256956 2.337956544 0.1) +(2.933141184 2.337956544 0.1) +(3.063712702 2.337956544 0.1) +(3.194284278 2.337956544 0.1) +(3.324855865 2.337956544 0.1) +(3.455427528 2.337956544 0.1) +(3.585999011 2.337956544 0.1) +(3.716570625 2.337956544 0.1) +(3.847142811 2.337956544 0.1) +(3.977713886 2.337956544 0.1) +(4.108285754 2.337956544 0.1) +(4.238856839 2.337956544 0.1) +(4.369428307 2.337956544 0.1) +(4.500000096 2.337956544 0.1) +(4.630571882 2.337956544 0.1) +(4.761143354 2.337956544 0.1) +(4.891714436 2.337956544 0.1) +(5.022286307 2.337956544 0.1) +(5.152857382 2.337956544 0.1) +(5.283429564 2.337956544 0.1) +(5.414001143 2.337956544 0.1) +(5.544573314 2.337956544 0.1) +(5.675144561 2.337956544 0.1) +(5.805715486 2.337956544 0.1) +(5.936287143 2.337956544 0.1) +(6.066858711 2.337956544 0.1) +(6.197430614 2.337956544 0.1) +(6.3280023 2.337956544 0.1) +(6.458573986 2.337956544 0.1) +(6.589145004 2.337956544 0.1) +(6.719716379 2.337956544 0.1) +(6.850288507 2.337956544 0.1) +(6.980857546 2.338137014 0.1) +(7.111168771 2.341929667 0.1) +(7.240590546 2.350274692 0.1) +(7.368680814 2.362489791 0.1) +(7.495260725 2.377823601 0.1) +(7.620529764 2.39532299 0.1) +(7.744961443 2.414023015 0.1) +(7.869011314 2.43323298 0.1) +(7.992925643 2.45261715 0.1) +(8.116608329 2.472295631 0.1) +(8.239929864 2.492417918 0.1) +(8.362918254 2.512938649 0.1) +(8.486341479 2.532934435 0.1) +(8.611327639 2.550822057 0.1) +(8.739229882 2.563272191 0.1) +(8.869432018 2.567637625 0.1) +(9 2.567806153 0.1) +(0 2.650980018 0.1) +(0.1302130758 2.650841402 0.1) +(0.2601247045 2.647251392 0.1) +(0.3881470596 2.63701544 0.1) +(0.5137713811 2.622308046 0.1) +(0.6381097668 2.605866589 0.1) +(0.7620899704 2.588993268 0.1) +(0.8863444332 2.572447666 0.1) +(1.01089607 2.556267099 0.1) +(1.135638928 2.54032887 0.1) +(1.260492435 2.524533686 0.1) +(1.385659713 2.509157411 0.1) +(1.511514268 2.494767212 0.1) +(1.638448952 2.482159806 0.1) +(1.76662531 2.472116763 0.1) +(1.895895531 2.465254804 0.1) +(2.025897442 2.46213613 0.1) +(2.156111426 2.461987747 0.1) +(2.286327425 2.461987747 0.1) +(2.416543498 2.461987747 0.1) +(2.546759524 2.461987747 0.1) +(2.676975514 2.461987747 0.1) +(2.80719157 2.461987747 0.1) +(2.937407645 2.461987747 0.1) +(3.067623634 2.461987747 0.1) +(3.19783967 2.461987747 0.1) +(3.328055715 2.461987747 0.1) +(3.458271823 2.461987747 0.1) +(3.588487782 2.461987747 0.1) +(3.71870385 2.461987747 0.1) +(3.848920386 2.461987747 0.1) +(3.979136011 2.461987747 0.1) +(4.109352289 2.461987747 0.1) +(4.239567921 2.461987747 0.1) +(4.369783868 2.461987747 0.1) +(4.500000079 2.461987747 0.1) +(4.630216289 2.461987747 0.1) +(4.760432236 2.461987747 0.1) +(4.890647868 2.461987747 0.1) +(5.020864146 2.461987747 0.1) +(5.151079771 2.461987747 0.1) +(5.281296307 2.461987747 0.1) +(5.411512346 2.461987747 0.1) +(5.541728871 2.461987747 0.1) +(5.671944632 2.461987747 0.1) +(5.802160136 2.461987747 0.1) +(5.932376236 2.461987747 0.1) +(6.062592268 2.461987747 0.1) +(6.192808575 2.461987747 0.1) +(6.3230247 2.461987747 0.1) +(6.453240825 2.461987747 0.1) +(6.583456404 2.461987747 0.1) +(6.713672275 2.461987747 0.1) +(6.843888764 2.461987747 0.1) +(6.974102714 2.462136137 0.1) +(7.104104679 2.46525462 0.1) +(7.2333753 2.47211626 0.1) +(7.361551096 2.482160042 0.1) +(7.488485014 2.494768163 0.1) +(7.614341075 2.509156915 0.1) +(7.739508625 2.524532883 0.1) +(7.864362232 2.540328146 0.1) +(7.989104389 2.556266647 0.1) +(8.113656086 2.572447144 0.1) +(8.237910825 2.588992556 0.1) +(8.361891636 2.605865588 0.1) +(8.486229989 2.622306986 0.1) +(8.611853457 2.637014961 0.1) +(8.739874654 2.647251999 0.1) +(8.869786921 2.650841447 0.1) +(9 2.650980018 0.1) +(0 2.719632075 0.1) +(0.12992014 2.719518194 0.1) +(0.259592623 2.716568785 0.1) +(0.387712955 2.708159339 0.1) +(0.5138631589 2.696076335 0.1) +(0.6389568893 2.682568695 0.1) +(0.7637563521 2.668706252 0.1) +(0.888781135 2.655113051 0.1) +(1.014050064 2.641819747 0.1) +(1.139476093 2.628725539 0.1) +(1.264993027 2.615748851 0.1) +(1.390767742 2.603116321 0.1) +(1.517107096 2.591293912 0.1) +(1.644333842 2.580936174 0.1) +(1.772580696 2.572685214 0.1) +(1.901726225 2.567047704 0.1) +(2.03147288 2.564485526 0.1) +(2.161393766 2.564363621 0.1) +(2.291316308 2.564363621 0.1) +(2.42123891 2.564363621 0.1) +(2.551161474 2.564363621 0.1) +(2.681084008 2.564363621 0.1) +(2.811006596 2.564363621 0.1) +(2.9409292 2.564363621 0.1) +(3.070851733 2.564363621 0.1) +(3.200774305 2.564363621 0.1) +(3.330696884 2.564363621 0.1) +(3.460619515 2.564363621 0.1) +(3.590542025 2.564363621 0.1) +(3.720464621 2.564363621 0.1) +(3.850387607 2.564363621 0.1) +(3.980309839 2.564363621 0.1) +(4.110232611 2.564363621 0.1) +(4.24015485 2.564363621 0.1) +(4.37007735 2.564363621 0.1) +(4.500000064 2.564363621 0.1) +(4.629922779 2.564363621 0.1) +(4.759845279 2.564363621 0.1) +(4.889767518 2.564363621 0.1) +(5.019690289 2.564363621 0.1) +(5.149612521 2.564363621 0.1) +(5.279535507 2.564363621 0.1) +(5.409458079 2.564363621 0.1) +(5.539381054 2.564363621 0.1) +(5.6693034 2.564363621 0.1) +(5.799225536 2.564363621 0.1) +(5.929148161 2.564363621 0.1) +(6.059070729 2.564363621 0.1) +(6.188993521 2.564363621 0.1) +(6.318916168 2.564363621 0.1) +(6.448838814 2.564363621 0.1) +(6.578761007 2.564363621 0.1) +(6.708683446 2.564363621 0.1) +(6.838606389 2.564363621 0.1) +(6.96852725 2.564485532 0.1) +(7.09827395 2.567047552 0.1) +(7.227419804 2.5726848 0.1) +(7.3556662 2.580936368 0.1) +(7.482892314 2.591294693 0.1) +(7.609232907 2.603115913 0.1) +(7.735007843 2.615748191 0.1) +(7.860524857 2.628724944 0.1) +(7.985950314 2.641819376 0.1) +(8.111219289 2.655112622 0.1) +(8.2362443 2.668705668 0.1) +(8.361044264 2.682567872 0.1) +(8.486137968 2.696075464 0.1) +(8.612287471 2.708158946 0.1) +(8.74040685 2.716569284 0.1) +(8.870079857 2.71951823 0.1) +(9 2.719632075 0.1) +(0 2.77629777 0.1) +(0.1296783495 2.776204304 0.1) +(0.2591534408 2.773783652 0.1) +(0.3873546432 2.766881811 0.1) +(0.5139389125 2.756964989 0.1) +(0.6396561079 2.745878934 0.1) +(0.7651317907 2.734501683 0.1) +(0.8907923993 2.723345405 0.1) +(1.016653385 2.712435261 0.1) +(1.142643305 2.701688519 0.1) +(1.268707834 2.691038229 0.1) +(1.394983931 2.680670399 0.1) +(1.52172344 2.670967454 0.1) +(1.649191254 2.662466601 0.1) +(1.777496297 2.655694833 0.1) +(1.906538904 2.651067989 0.1) +(2.03607487 2.648965146 0.1) +(2.165753831 2.648865095 0.1) +(2.295434153 2.648865095 0.1) +(2.425114523 2.648865095 0.1) +(2.554794861 2.648865095 0.1) +(2.684475175 2.648865095 0.1) +(2.814155534 2.648865095 0.1) +(2.943835906 2.648865095 0.1) +(3.07351622 2.648865095 0.1) +(3.203196565 2.648865095 0.1) +(3.332876917 2.648865095 0.1) +(3.462557311 2.648865095 0.1) +(3.592237604 2.648865095 0.1) +(3.721917971 2.648865095 0.1) +(3.851598654 2.648865095 0.1) +(3.981278721 2.648865095 0.1) +(4.110959232 2.648865095 0.1) +(4.240639304 2.648865095 0.1) +(4.370319589 2.648865095 0.1) +(4.500000054 2.648865095 0.1) +(4.629680514 2.648865095 0.1) +(4.759360804 2.648865095 0.1) +(4.889040875 2.648865095 0.1) +(5.018721382 2.648865095 0.1) +(5.14840145 2.648865095 0.1) +(5.278082136 2.648865095 0.1) +(5.407762482 2.648865095 0.1) +(5.537443157 2.648865095 0.1) +(5.667123318 2.648865095 0.1) +(5.796803304 2.648865095 0.1) +(5.926483693 2.648865095 0.1) +(6.056164036 2.648865095 0.1) +(6.185844561 2.648865095 0.1) +(6.315524968 2.648865095 0.1) +(6.445205375 2.648865095 0.1) +(6.574885411 2.648865095 0.1) +(6.704565646 2.648865095 0.1) +(6.834246296 2.648865095 0.1) +(6.963925236 2.648965151 0.1) +(7.093461239 2.651067865 0.1) +(7.222504114 2.655694494 0.1) +(7.350808779 2.66246676 0.1) +(7.478276075 2.670968095 0.1) +(7.6050166 2.680670064 0.1) +(7.731292879 2.691037688 0.1) +(7.857357475 2.701688031 0.1) +(7.983346925 2.712434956 0.1) +(8.10920795 2.723345053 0.1) +(8.234868746 2.734501203 0.1) +(8.360344839 2.745878259 0.1) +(8.486062011 2.756964275 0.1) +(8.612645707 2.766881488 0.1) +(8.740846125 2.773784061 0.1) +(8.870321646 2.776204335 0.1) +(9 2.77629777 0.1) +(0 2.823069871 0.1) +(0.1294787746 2.822993258 0.1) +(0.258790938 2.821009043 0.1) +(0.3870588911 2.815351584 0.1) +(0.51400144 2.807222739 0.1) +(0.6402332461 2.79813547 0.1) +(0.7662670832 2.788809507 0.1) +(0.892452505 2.779664676 0.1) +(1.018802176 2.770721601 0.1) +(1.145257536 2.761912469 0.1) +(1.271774052 2.753182397 0.1) +(1.39846399 2.744683859 0.1) +(1.52553379 2.736730329 0.1) +(1.653200583 2.729762157 0.1) +(1.781553654 2.724211321 0.1) +(1.910511309 2.720418684 0.1) +(2.039873371 2.718694978 0.1) +(2.169352648 2.718612966 0.1) +(2.298833039 2.718612966 0.1) +(2.428313469 2.718612966 0.1) +(2.557793875 2.718612966 0.1) +(2.68727426 2.718612966 0.1) +(2.816754681 2.718612966 0.1) +(2.946235114 2.718612966 0.1) +(3.075715499 2.718612966 0.1) +(3.205195909 2.718612966 0.1) +(3.334676325 2.718612966 0.1) +(3.464156775 2.718612966 0.1) +(3.593637143 2.718612966 0.1) +(3.723117571 2.718612966 0.1) +(3.852598261 2.718612966 0.1) +(3.982078443 2.718612966 0.1) +(4.111558986 2.718612966 0.1) +(4.241039175 2.718612966 0.1) +(4.370519536 2.718612966 0.1) +(4.500000043 2.718612966 0.1) +(4.62948055 2.718612966 0.1) +(4.758960911 2.718612966 0.1) +(4.8884411 2.718612966 0.1) +(5.017921643 2.718612966 0.1) +(5.147401829 2.718612966 0.1) +(5.276882514 2.718612966 0.1) +(5.406362925 2.718612966 0.1) +(5.535843607 2.718612966 0.1) +(5.665323868 2.718612966 0.1) +(5.794803982 2.718612966 0.1) +(5.924284429 2.718612966 0.1) +(6.053764839 2.718612966 0.1) +(6.183245396 2.718612966 0.1) +(6.312725857 2.718612966 0.1) +(6.442206318 2.718612966 0.1) +(6.571686475 2.718612966 0.1) +(6.701166796 2.718612966 0.1) +(6.830647457 2.718612966 0.1) +(6.960126714 2.718694982 0.1) +(7.089488807 2.720418582 0.1) +(7.218446682 2.724211043 0.1) +(7.346799446 2.729762287 0.1) +(7.474465814 2.736730854 0.1) +(7.601536446 2.744683584 0.1) +(7.728226532 2.753181953 0.1) +(7.854743104 2.761912069 0.1) +(7.981198079 2.770721351 0.1) +(8.107547782 2.779664388 0.1) +(8.233733357 2.788809114 0.1) +(8.359767529 2.798134916 0.1) +(8.485999318 2.807222154 0.1) +(8.612941396 2.81535132 0.1) +(8.741208707 2.821009378 0.1) +(8.870521221 2.822993283 0.1) +(9 2.823069871 0.1) +(0 2.86167576 0.1) +(0.1293140447 2.861613055 0.1) +(0.2584917266 2.859989077 0.1) +(0.3868147761 2.855358739 0.1) +(0.5140530504 2.848705696 0.1) +(0.6407096182 2.841268234 0.1) +(0.7672041586 2.833635412 0.1) +(0.8938227632 2.826150838 0.1) +(1.020575797 2.818831391 0.1) +(1.147415332 2.811621569 0.1) +(1.274304921 2.804476454 0.1) +(1.401336446 2.797520836 0.1) +(1.528678869 2.791011281 0.1) +(1.6565099 2.78530819 0.1) +(1.784902614 2.780765116 0.1) +(1.913790149 2.777661038 0.1) +(2.04300867 2.776250273 0.1) +(2.172323126 2.776183151 0.1) +(2.301638493 2.776183151 0.1) +(2.430953894 2.776183151 0.1) +(2.560269273 2.776183151 0.1) +(2.689584635 2.776183151 0.1) +(2.818900028 2.776183151 0.1) +(2.94821543 2.776183151 0.1) +(3.077530792 2.776183151 0.1) +(3.206846176 2.776183151 0.1) +(3.336161564 2.776183151 0.1) +(3.46547698 2.776183151 0.1) +(3.594792329 2.776183151 0.1) +(3.724107729 2.776183151 0.1) +(3.853423339 2.776183151 0.1) +(3.982738536 2.776183151 0.1) +(4.112054029 2.776183151 0.1) +(4.241369229 2.776183151 0.1) +(4.370684571 2.776183151 0.1) +(4.500000036 2.776183151 0.1) +(4.629315496 2.776183151 0.1) +(4.758630843 2.776183151 0.1) +(4.887946043 2.776183151 0.1) +(5.017261536 2.776183151 0.1) +(5.146576732 2.776183151 0.1) +(5.275892343 2.776183151 0.1) +(5.405207729 2.776183151 0.1) +(5.534523332 2.776183151 0.1) +(5.663838593 2.776183151 0.1) +(5.793153736 2.776183151 0.1) +(5.92246915 2.776183151 0.1) +(6.051784532 2.776183151 0.1) +(6.181100036 2.776183151 0.1) +(6.310415461 2.776183151 0.1) +(6.439730886 2.776183151 0.1) +(6.569046061 2.776183151 0.1) +(6.698361371 2.776183151 0.1) +(6.827676961 2.776183151 0.1) +(6.9569914 2.776250277 0.1) +(7.086209946 2.777660955 0.1) +(7.215097661 2.780764889 0.1) +(7.343490121 2.785308297 0.1) +(7.471320807 2.791011711 0.1) +(7.598663911 2.797520612 0.1) +(7.725695557 2.80447609 0.1) +(7.852585193 2.811621241 0.1) +(7.979424411 2.818831186 0.1) +(8.106177471 2.826150602 0.1) +(8.2327962 2.83363509 0.1) +(8.359291018 2.841267781 0.1) +(8.485947571 2.848705217 0.1) +(8.613185457 2.855358522 0.1) +(8.741507982 2.859989352 0.1) +(8.870685954 2.861613076 0.1) +(9 2.86167576 0.1) +(0 2.893541222 0.1) +(0.1291780759 2.893489998 0.1) +(0.2582447563 2.892163361 0.1) +(0.3866132825 2.888380811 0.1) +(0.5140956496 2.882945903 0.1) +(0.6411028175 2.876870197 0.1) +(0.7679776246 2.870634902 0.1) +(0.89495378 2.864520711 0.1) +(1.022039752 2.858541413 0.1) +(1.149196386 2.852651668 0.1) +(1.27639391 2.846814783 0.1) +(1.403707384 2.841132699 0.1) +(1.53127483 2.835815006 0.1) +(1.659241423 2.831156119 0.1) +(1.787666859 2.827444856 0.1) +(1.916496516 2.824909116 0.1) +(2.04559656 2.823756655 0.1) +(2.174774971 2.823701822 0.1) +(2.303954127 2.823701822 0.1) +(2.43313331 2.823701822 0.1) +(2.562312477 2.823701822 0.1) +(2.691491629 2.823701822 0.1) +(2.820670806 2.823701822 0.1) +(2.949849991 2.823701822 0.1) +(3.079029143 2.823701822 0.1) +(3.208208313 2.823701822 0.1) +(3.337387486 2.823701822 0.1) +(3.466566683 2.823701822 0.1) +(3.595745825 2.823701822 0.1) +(3.724925007 2.823701822 0.1) +(3.854104361 2.823701822 0.1) +(3.983283379 2.823701822 0.1) +(4.112462636 2.823701822 0.1) +(4.241641657 2.823701822 0.1) +(4.370820796 2.823701822 0.1) +(4.500000029 2.823701822 0.1) +(4.629179264 2.823701822 0.1) +(4.7583584 2.823701822 0.1) +(4.887537421 2.823701822 0.1) +(5.016716679 2.823701822 0.1) +(5.145895696 2.823701822 0.1) +(5.275075054 2.823701822 0.1) +(5.404254221 2.823701822 0.1) +(5.533433575 2.823701822 0.1) +(5.662612643 2.823701822 0.1) +(5.791791614 2.823701822 0.1) +(5.920970811 2.823701822 0.1) +(6.050149979 2.823701822 0.1) +(6.179329246 2.823701822 0.1) +(6.30850845 2.823701822 0.1) +(6.437687654 2.823701822 0.1) +(6.566866654 2.823701822 0.1) +(6.696045761 2.823701822 0.1) +(6.8252251 2.823701822 0.1) +(6.9544035 2.823756658 0.1) +(7.083503561 2.824909049 0.1) +(7.212333364 2.82744467 0.1) +(7.340758596 2.831156206 0.1) +(7.468724904 2.835815358 0.1) +(7.596292907 2.841132516 0.1) +(7.723606482 2.846814486 0.1) +(7.850804043 2.8526514 0.1) +(7.977960418 2.858541246 0.1) +(8.105046411 2.864520518 0.1) +(8.232022668 2.870634639 0.1) +(8.3588977 2.876869827 0.1) +(8.485904857 2.882945511 0.1) +(8.613386907 2.888380634 0.1) +(8.741755007 2.892163586 0.1) +(8.870821921 2.893490015 0.1) +(9 2.893541222 0.1) +(0 2.919843108 0.1) +(0.1290658467 2.91980136 0.1) +(0.258040906 2.91872015 0.1) +(0.3864469689 2.915637368 0.1) +(0.5141308114 2.911207913 0.1) +(0.6414273661 2.906256207 0.1) +(0.7686160464 2.901174436 0.1) +(0.8958873261 2.896191364 0.1) +(1.023248106 2.891318231 0.1) +(1.150666476 2.886518083 0.1) +(1.278118171 2.881761016 0.1) +(1.405664365 2.877130113 0.1) +(1.533417547 2.872796189 0.1) +(1.661496034 2.868999191 0.1) +(1.789948479 2.865974508 0.1) +(1.918730364 2.863907878 0.1) +(2.047732614 2.862968621 0.1) +(2.176798734 2.862923932 0.1) +(2.305865461 2.862923932 0.1) +(2.43493221 2.862923932 0.1) +(2.563998946 2.862923932 0.1) +(2.69306567 2.862923932 0.1) +(2.822132414 2.862923932 0.1) +(2.951199164 2.862923932 0.1) +(3.080265889 2.862923932 0.1) +(3.209332627 2.862923932 0.1) +(3.338399368 2.862923932 0.1) +(3.467466128 2.862923932 0.1) +(3.596532843 2.862923932 0.1) +(3.725599589 2.862923932 0.1) +(3.854666479 2.862923932 0.1) +(3.983733093 2.862923932 0.1) +(4.112799904 2.862923932 0.1) +(4.241866521 2.862923932 0.1) +(4.370933232 2.862923932 0.1) +(4.500000025 2.862923932 0.1) +(4.629066814 2.862923932 0.1) +(4.758133525 2.862923932 0.1) +(4.887200143 2.862923932 0.1) +(5.016266954 2.862923932 0.1) +(5.145333568 2.862923932 0.1) +(5.274400457 2.862923932 0.1) +(5.403467196 2.862923932 0.1) +(5.532534082 2.862923932 0.1) +(5.661600736 2.862923932 0.1) +(5.790667314 2.862923932 0.1) +(5.919734071 2.862923932 0.1) +(6.048800811 2.862923932 0.1) +(6.177867629 2.862923932 0.1) +(6.306934393 2.862923932 0.1) +(6.436001161 2.862923932 0.1) +(6.565067761 2.862923932 0.1) +(6.69413445 2.862923932 0.1) +(6.823201321 2.862923932 0.1) +(6.952267432 2.862968623 0.1) +(7.0812697 2.863907823 0.1) +(7.210051704 2.865974356 0.1) +(7.338503982 2.868999262 0.1) +(7.466582236 2.872796475 0.1) +(7.594335871 2.877129964 0.1) +(7.721882146 2.881760774 0.1) +(7.849333871 2.886517865 0.1) +(7.976752032 2.891318095 0.1) +(8.104112829 2.896191207 0.1) +(8.231384193 2.901174221 0.1) +(8.358573057 2.906255905 0.1) +(8.4858696 2.911207594 0.1) +(8.613553186 2.915637224 0.1) +(8.7419589 2.918720333 0.1) +(8.870934154 2.919801374 0.1) +(9 2.919843108 0.1) +(0 2.941552794 0.1) +(0.1289732123 2.941518869 0.1) +(0.2578726471 2.940640234 0.1) +(0.3863096932 2.938135044 0.1) +(0.5141598343 2.934535494 0.1) +(0.64169525 2.930511543 0.1) +(0.7691430029 2.926381895 0.1) +(0.8966578789 2.922332454 0.1) +(1.024245486 2.918372354 0.1) +(1.151879895 2.914471564 0.1) +(1.279541383 2.910605784 0.1) +(1.407279666 2.906842529 0.1) +(1.535186155 2.903320611 0.1) +(1.663357 2.900235021 0.1) +(1.791831737 2.897777045 0.1) +(1.920574191 2.89609762 0.1) +(2.049495722 2.895334342 0.1) +(2.178469156 2.895298026 0.1) +(2.307443084 2.895298026 0.1) +(2.43641703 2.895298026 0.1) +(2.565390965 2.895298026 0.1) +(2.69436489 2.895298026 0.1) +(2.823338831 2.895298026 0.1) +(2.952312778 2.895298026 0.1) +(3.081286703 2.895298026 0.1) +(3.21026064 2.895298026 0.1) +(3.339234579 2.895298026 0.1) +(3.468208533 2.895298026 0.1) +(3.59718245 2.895298026 0.1) +(3.726156396 2.895298026 0.1) +(3.855130454 2.895298026 0.1) +(3.984104289 2.895298026 0.1) +(4.113078286 2.895298026 0.1) +(4.242052125 2.895298026 0.1) +(4.371026039 2.895298026 0.1) +(4.500000018 2.895298026 0.1) +(4.628974 2.895298026 0.1) +(4.757947914 2.895298026 0.1) +(4.88692175 2.895298026 0.1) +(5.015895746 2.895298026 0.1) +(5.144869582 2.895298026 0.1) +(5.273843643 2.895298026 0.1) +(5.402817579 2.895298026 0.1) +(5.531791636 2.895298026 0.1) +(5.660765507 2.895298026 0.1) +(5.789739314 2.895298026 0.1) +(5.918713264 2.895298026 0.1) +(6.0476872 2.895298026 0.1) +(6.176661204 2.895298026 0.1) +(6.305635161 2.895298026 0.1) +(6.434609121 2.895298026 0.1) +(6.563582946 2.895298026 0.1) +(6.692556843 2.895298026 0.1) +(6.821530889 2.895298026 0.1) +(6.950504318 2.895334344 0.1) +(7.079425861 2.896097574 0.1) +(7.208168411 2.897776921 0.1) +(7.336643011 2.900235079 0.1) +(7.464813668 2.903320844 0.1) +(7.592720529 2.906842408 0.1) +(7.720458875 2.910605587 0.1) +(7.848120389 2.914471387 0.1) +(7.975754625 2.918372243 0.1) +(8.103342246 2.922332326 0.1) +(8.230857193 2.92638172 0.1) +(8.358305093 2.930511298 0.1) +(8.4858405 2.934535235 0.1) +(8.613690432 2.938134927 0.1) +(8.742127196 2.940640383 0.1) +(8.871026786 2.94151888 0.1) +(9 2.941552794 0.1) +(0 2.95947206 0.1) +(0.1288967514 2.959444591 0.1) +(0.2577337655 2.958733164 0.1) +(0.386196385 2.95670472 0.1) +(0.5141837896 2.953790177 0.1) +(0.6419163621 2.950531998 0.1) +(0.7695779546 2.947188237 0.1) +(0.8972938964 2.943909419 0.1) +(1.025068729 2.94070294 0.1) +(1.152881455 2.937544484 0.1) +(1.280716109 2.934414376 0.1) +(1.408612941 2.931367282 0.1) +(1.536645971 2.928515597 0.1) +(1.664893049 2.926017206 0.1) +(1.793386186 2.924026991 0.1) +(1.922096094 2.922667167 0.1) +(2.050950999 2.922049144 0.1) +(2.17984793 2.922019739 0.1) +(2.308745261 2.922019739 0.1) +(2.437642606 2.922019739 0.1) +(2.566539943 2.922019739 0.1) +(2.695437271 2.922019739 0.1) +(2.824334613 2.922019739 0.1) +(2.953231959 2.922019739 0.1) +(3.082129288 2.922019739 0.1) +(3.211026626 2.922019739 0.1) +(3.339923965 2.922019739 0.1) +(3.468821318 2.922019739 0.1) +(3.597718639 2.922019739 0.1) +(3.726615986 2.922019739 0.1) +(3.855513421 2.922019739 0.1) +(3.984410679 2.922019739 0.1) +(4.113308064 2.922019739 0.1) +(4.242205321 2.922019739 0.1) +(4.371102643 2.922019739 0.1) +(4.500000014 2.922019739 0.1) +(4.628897389 2.922019739 0.1) +(4.757794707 2.922019739 0.1) +(4.886691968 2.922019739 0.1) +(5.015589354 2.922019739 0.1) +(5.144486607 2.922019739 0.1) +(5.273384046 2.922019739 0.1) +(5.402281386 2.922019739 0.1) +(5.531178818 2.922019739 0.1) +(5.660076104 2.922019739 0.1) +(5.788973336 2.922019739 0.1) +(5.917870686 2.922019739 0.1) +(6.046768025 2.922019739 0.1) +(6.175665414 2.922019739 0.1) +(6.304562771 2.922019739 0.1) +(6.433460129 2.922019739 0.1) +(6.562357375 2.922019739 0.1) +(6.691254679 2.922019739 0.1) +(6.820152107 2.922019739 0.1) +(6.949049032 2.922049145 0.1) +(7.077903946 2.92266713 0.1) +(7.206613936 2.924026891 0.1) +(7.335106961 2.926017253 0.1) +(7.463353886 2.928515786 0.1) +(7.591387214 2.931367184 0.1) +(7.7192841 2.934414217 0.1) +(7.847118775 2.937544341 0.1) +(7.974931364 2.94070285 0.1) +(8.102706207 2.943909315 0.1) +(8.230422204 2.947188096 0.1) +(8.358083914 2.9505318 0.1) +(8.485816482 2.953789968 0.1) +(8.613803718 2.956704625 0.1) +(8.742266107 2.958733284 0.1) +(8.871103246 2.9594446 0.1) +(9 2.95947206 0.1) +(0 2.974262697 0.1) +(0.1288336403 2.974240557 0.1) +(0.257619132 2.973667143 0.1) +(0.38610286 2.972032209 0.1) +(0.5142035625 2.969683073 0.1) +(0.6420988693 2.967056966 0.1) +(0.7699369657 2.964361879 0.1) +(0.8978188679 2.961719136 0.1) +(1.025748236 2.959134699 0.1) +(1.153708147 2.956588969 0.1) +(1.281685732 2.954066088 0.1) +(1.409713433 2.951610115 0.1) +(1.53785091 2.949311644 0.1) +(1.66616091 2.947297929 0.1) +(1.794669236 2.945693807 0.1) +(1.923352279 2.944597782 0.1) +(2.052152191 2.944099653 0.1) +(2.180985976 2.944075952 0.1) +(2.309820083 2.944075952 0.1) +(2.438654202 2.944075952 0.1) +(2.567488314 2.944075952 0.1) +(2.69632242 2.944075952 0.1) +(2.825156536 2.944075952 0.1) +(2.953990655 2.944075952 0.1) +(3.082824761 2.944075952 0.1) +(3.211658874 2.944075952 0.1) +(3.340492988 2.944075952 0.1) +(3.469327113 2.944075952 0.1) +(3.598161214 2.944075952 0.1) +(3.726995332 2.944075952 0.1) +(3.855829525 2.944075952 0.1) +(3.984663571 2.944075952 0.1) +(4.113497725 2.944075952 0.1) +(4.242331771 2.944075952 0.1) +(4.371165871 2.944075952 0.1) +(4.500000014 2.944075952 0.1) +(4.628834154 2.944075952 0.1) +(4.757668254 2.944075952 0.1) +(4.8865023 2.944075952 0.1) +(5.015336454 2.944075952 0.1) +(5.1441705 2.944075952 0.1) +(5.273004693 2.944075952 0.1) +(5.401838807 2.944075952 0.1) +(5.530672996 2.944075952 0.1) +(5.659507068 2.944075952 0.1) +(5.788341096 2.944075952 0.1) +(5.917175218 2.944075952 0.1) +(6.046009332 2.944075952 0.1) +(6.174843486 2.944075952 0.1) +(6.303677614 2.944075952 0.1) +(6.432511743 2.944075952 0.1) +(6.561345782 2.944075952 0.1) +(6.690179868 2.944075952 0.1) +(6.819014054 2.944075952 0.1) +(6.947847836 2.944099654 0.1) +(7.076647754 2.944597753 0.1) +(7.205330861 2.945693726 0.1) +(7.3338391 2.947297967 0.1) +(7.462148975 2.949311796 0.1) +(7.590286693 2.951610036 0.1) +(7.718314436 2.954065959 0.1) +(7.846292039 2.956588854 0.1) +(7.974251836 2.959134627 0.1) +(8.102181214 2.961719053 0.1) +(8.230063161 2.964361765 0.1) +(8.357901354 2.967056806 0.1) +(8.485796657 2.969682904 0.1) +(8.613897221 2.972032132 0.1) +(8.742380764 2.97366724 0.1) +(8.871166361 2.974240564 0.1) +(9 2.974262697 0.1) +(0 2.986470951 0.1) +(0.1287815481 2.986453209 0.1) +(0.257524513 2.985993713 0.1) +(0.3860256639 2.984683581 0.1) +(0.5142198832 2.982801136 0.1) +(0.6422495114 2.980696743 0.1) +(0.770233295 2.978537074 0.1) +(0.8982521814 2.976419351 0.1) +(1.026309105 2.97434835 0.1) +(1.154390503 2.972308367 0.1) +(1.282486063 2.970286692 0.1) +(1.410621783 2.968318635 0.1) +(1.538845471 2.966476789 0.1) +(1.667207408 2.964863128 0.1) +(1.79572827 2.963577687 0.1) +(1.924389139 2.962699404 0.1) +(2.053143659 2.962300235 0.1) +(2.181925324 2.962281243 0.1) +(2.310707246 2.962281243 0.1) +(2.439489178 2.962281243 0.1) +(2.568271104 2.962281243 0.1) +(2.697053024 2.962281243 0.1) +(2.825834954 2.962281243 0.1) +(2.954616886 2.962281243 0.1) +(3.083398807 2.962281243 0.1) +(3.212180734 2.962281243 0.1) +(3.340962662 2.962281243 0.1) +(3.469744598 2.962281243 0.1) +(3.598526514 2.962281243 0.1) +(3.727308446 2.962281243 0.1) +(3.856090439 2.962281243 0.1) +(3.984872311 2.962281243 0.1) +(4.113654271 2.962281243 0.1) +(4.242436146 2.962281243 0.1) +(4.371218061 2.962281243 0.1) +(4.500000011 2.962281243 0.1) +(4.628781961 2.962281243 0.1) +(4.757563875 2.962281243 0.1) +(4.88634575 2.962281243 0.1) +(5.015127707 2.962281243 0.1) +(5.143909582 2.962281243 0.1) +(5.272691575 2.962281243 0.1) +(5.4014735 2.962281243 0.1) +(5.530255489 2.962281243 0.1) +(5.659037382 2.962281243 0.1) +(5.787819243 2.962281243 0.1) +(5.916601175 2.962281243 0.1) +(6.045383104 2.962281243 0.1) +(6.174165064 2.962281243 0.1) +(6.302947004 2.962281243 0.1) +(6.431728943 2.962281243 0.1) +(6.560510811 2.962281243 0.1) +(6.689292714 2.962281243 0.1) +(6.8180747 2.962281243 0.1) +(6.946856361 2.962300236 0.1) +(7.075610889 2.96269938 0.1) +(7.204271807 2.963577623 0.1) +(7.3327926 2.964863158 0.1) +(7.461154436 2.96647691 0.1) +(7.589378318 2.968318571 0.1) +(7.717514071 2.970286589 0.1) +(7.845609646 2.972308274 0.1) +(7.973690954 2.974348293 0.1) +(8.101747886 2.976419285 0.1) +(8.229766807 2.978536983 0.1) +(8.357750668 2.980696615 0.1) +(8.485780293 2.982801001 0.1) +(8.613974404 2.98468352 0.1) +(8.742475404 2.98599379 0.1) +(8.87121845 2.986453215 0.1) +(9 2.986470951 0.1) +(0 2.996547695 0.1) +(0.128738551 2.996533584 0.1) +(0.2574464142 2.996168115 0.1) +(0.3859619461 2.995126078 0.1) +(0.5142333543 2.99362884 0.1) +(0.6423738521 2.991955073 0.1) +(0.7704778861 2.99023734 0.1) +(0.8986098404 2.98855297 0.1) +(1.026772048 2.986905762 0.1) +(1.154953721 2.985283224 0.1) +(1.283146659 2.983675248 0.1) +(1.41137154 2.982109917 0.1) +(1.539666386 2.98064497 0.1) +(1.668071191 2.979361516 0.1) +(1.796602401 2.978339117 0.1) +(1.925244968 2.977640558 0.1) +(2.053962022 2.977323072 0.1) +(2.182700665 2.977307966 0.1) +(2.311439514 2.977307966 0.1) +(2.44017837 2.977307966 0.1) +(2.568917221 2.977307966 0.1) +(2.697656069 2.977307966 0.1) +(2.826394923 2.977307966 0.1) +(2.95513378 2.977307966 0.1) +(3.083872627 2.977307966 0.1) +(3.21261148 2.977307966 0.1) +(3.341350333 2.977307966 0.1) +(3.470089193 2.977307966 0.1) +(3.598828036 2.977307966 0.1) +(3.727566893 2.977307966 0.1) +(3.856305796 2.977307966 0.1) +(3.985044607 2.977307966 0.1) +(4.113783482 2.977307966 0.1) +(4.242522293 2.977307966 0.1) +(4.371261139 2.977307966 0.1) +(4.500000007 2.977307966 0.1) +(4.628738879 2.977307966 0.1) +(4.757477721 2.977307966 0.1) +(4.886216532 2.977307966 0.1) +(5.014955411 2.977307966 0.1) +(5.143694221 2.977307966 0.1) +(5.272433125 2.977307966 0.1) +(5.401171975 2.977307966 0.1) +(5.529910879 2.977307966 0.1) +(5.658649704 2.977307966 0.1) +(5.7873885 2.977307966 0.1) +(5.916127361 2.977307966 0.1) +(6.044866211 2.977307966 0.1) +(6.173605093 2.977307966 0.1) +(6.302343954 2.977307966 0.1) +(6.431082814 2.977307966 0.1) +(6.559821621 2.977307966 0.1) +(6.688560457 2.977307966 0.1) +(6.817299354 2.977307966 0.1) +(6.946037993 2.977323073 0.1) +(7.074755054 2.977640539 0.1) +(7.203397661 2.978339066 0.1) +(7.331928814 2.97936154 0.1) +(7.460333543 2.980645067 0.1) +(7.588628539 2.982109866 0.1) +(7.71685345 2.983675165 0.1) +(7.845046396 2.98528315 0.1) +(7.973228 2.986905716 0.1) +(8.101390211 2.988552917 0.1) +(8.229522193 2.990237268 0.1) +(8.357626289 2.991954971 0.1) +(8.485766786 2.993628733 0.1) +(8.614038107 2.995126029 0.1) +(8.742553521 2.996168176 0.1) +(8.87126145 2.996533588 0.1) +(9 2.996547695 0.1) +(0 3.004865081 0.1) +(0.128703061 3.004853967 0.1) +(0.257381951 3.004566109 0.1) +(0.3859093532 3.003745358 0.1) +(0.5142444736 3.002566073 0.1) +(0.6424764832 3.001247745 0.1) +(0.7706797729 2.999894789 0.1) +(0.8989050536 2.99856811 0.1) +(1.027154163 2.997270701 0.1) +(1.155418604 2.995992724 0.1) +(1.283691918 2.994726217 0.1) +(1.411990391 2.993493299 0.1) +(1.540343973 2.992339447 0.1) +(1.668784162 2.991328546 0.1) +(1.797323913 2.990523263 0.1) +(1.925951372 2.989973049 0.1) +(2.054637501 2.989722984 0.1) +(2.183340635 2.989711086 0.1) +(2.312043931 2.989711086 0.1) +(2.440747232 2.989711086 0.1) +(2.56945053 2.989711086 0.1) +(2.698153824 2.989711086 0.1) +(2.826857124 2.989711086 0.1) +(2.955560426 2.989711086 0.1) +(3.08426372 2.989711086 0.1) +(3.212967019 2.989711086 0.1) +(3.341670318 2.989711086 0.1) +(3.470373622 2.989711086 0.1) +(3.599076914 2.989711086 0.1) +(3.727780214 2.989711086 0.1) +(3.856483554 2.989711086 0.1) +(3.985186818 2.989711086 0.1) +(4.113890136 2.989711086 0.1) +(4.242593404 2.989711086 0.1) +(4.371296693 2.989711086 0.1) +(4.500000007 2.989711086 0.1) +(4.628703318 2.989711086 0.1) +(4.757406611 2.989711086 0.1) +(4.886109875 2.989711086 0.1) +(5.014813193 2.989711086 0.1) +(5.143516461 2.989711086 0.1) +(5.272219796 2.989711086 0.1) +(5.400923096 2.989711086 0.1) +(5.529626432 2.989711086 0.1) +(5.658329711 2.989711086 0.1) +(5.787032964 2.989711086 0.1) +(5.915736268 2.989711086 0.1) +(6.044439568 2.989711086 0.1) +(6.173142886 2.989711086 0.1) +(6.301846193 2.989711086 0.1) +(6.4305495 2.989711086 0.1) +(6.559252761 2.989711086 0.1) +(6.687956046 2.989711086 0.1) +(6.816659379 2.989711086 0.1) +(6.945362511 2.989722985 0.1) +(7.074048643 2.989973035 0.1) +(7.202676136 2.990523223 0.1) +(7.331215843 2.991328565 0.1) +(7.459655971 2.992339523 0.1) +(7.588009671 2.993493259 0.1) +(7.716308168 2.994726153 0.1) +(7.844581489 2.995992666 0.1) +(7.972845875 2.997270665 0.1) +(8.101094989 2.998568069 0.1) +(8.229320289 2.999894732 0.1) +(8.357523629 3.001247665 0.1) +(8.485755636 3.002565988 0.1) +(8.614090689 3.003745319 0.1) +(8.742617996 3.004566157 0.1) +(8.871296939 3.00485397 0.1) +(9 3.004865081 0.1) +(0 3.011730287 0.1) +(0.1286737674 3.011721646 0.1) +(0.2573287429 3.011497848 0.1) +(0.3858659429 3.010859748 0.1) +(0.5142536511 3.009942901 0.1) +(0.6425611957 3.008917955 0.1) +(0.7708464111 3.007866087 0.1) +(0.8991487239 3.006834649 0.1) +(1.027469562 3.005825966 0.1) +(1.155802321 3.004832391 0.1) +(1.284141978 3.003847733 0.1) +(1.412501194 3.00288919 0.1) +(1.540903255 3.001992117 0.1) +(1.669372651 3.001206183 0.1) +(1.797919451 3.000580108 0.1) +(1.926534442 3.000152339 0.1) +(2.055195045 2.999957924 0.1) +(2.183868869 2.999948674 0.1) +(2.312542819 2.999948674 0.1) +(2.441216773 2.999948674 0.1) +(2.569890725 2.999948674 0.1) +(2.698564674 2.999948674 0.1) +(2.827238627 2.999948674 0.1) +(2.955912581 2.999948674 0.1) +(3.08458653 2.999948674 0.1) +(3.213260482 2.999948674 0.1) +(3.341934435 2.999948674 0.1) +(3.470608391 2.999948674 0.1) +(3.599282339 2.999948674 0.1) +(3.727956293 2.999948674 0.1) +(3.856630275 2.999948674 0.1) +(3.985304204 2.999948674 0.1) +(4.113978168 2.999948674 0.1) +(4.242652096 2.999948674 0.1) +(4.371326043 2.999948674 0.1) +(4.500000004 2.999948674 0.1) +(4.628673968 2.999948674 0.1) +(4.757347914 2.999948674 0.1) +(4.886021839 2.999948674 0.1) +(5.014695807 2.999948674 0.1) +(5.143369736 2.999948674 0.1) +(5.272043718 2.999948674 0.1) +(5.400717668 2.999948674 0.1) +(5.529391654 2.999948674 0.1) +(5.658065586 2.999948674 0.1) +(5.786739507 2.999948674 0.1) +(5.915413461 2.999948674 0.1) +(6.044087414 2.999948674 0.1) +(6.172761382 2.999948674 0.1) +(6.301435339 2.999948674 0.1) +(6.430109296 2.999948674 0.1) +(6.558783221 2.999948674 0.1) +(6.687457161 2.999948674 0.1) +(6.816131143 2.999948674 0.1) +(6.944804964 2.999957924 0.1) +(7.073465571 3.000152328 0.1) +(7.202080586 3.000580076 0.1) +(7.330627354 3.001206197 0.1) +(7.4590967 3.001992176 0.1) +(7.587498854 3.002889159 0.1) +(7.715858089 3.003847683 0.1) +(7.84419775 3.004832346 0.1) +(7.972530468 3.005825938 0.1) +(8.100851307 3.006834616 0.1) +(8.229153639 3.007866043 0.1) +(8.357438893 3.008917893 0.1) +(8.485746436 3.009942835 0.1) +(8.614134089 3.010859718 0.1) +(8.742671218 3.011497886 0.1) +(8.871326232 3.011721649 0.1) +(9 3.011730287 0.1) +(0 3.017396857 0.1) +(0.1286495884 3.017390257 0.1) +(0.2572848247 3.017219335 0.1) +(0.3858301114 3.016731995 0.1) +(0.5142612264 3.016031767 0.1) +(0.6426311175 3.015248979 0.1) +(0.770983955 3.01444563 0.1) +(0.8993498504 3.013657884 0.1) +(1.027729894 3.012887518 0.1) +(1.156119042 3.012128689 0.1) +(1.284513458 3.011376671 0.1) +(1.412922813 3.010644598 0.1) +(1.54136489 3.009959471 0.1) +(1.669858392 3.009359225 0.1) +(1.798411011 3.00888107 0.1) +(1.92701571 3.008554368 0.1) +(2.055655244 3.008405886 0.1) +(2.184304876 3.008398821 0.1) +(2.312954604 3.008398821 0.1) +(2.441604334 3.008398821 0.1) +(2.570254063 3.008398821 0.1) +(2.69890379 3.008398821 0.1) +(2.827553521 3.008398821 0.1) +(2.956203252 3.008398821 0.1) +(3.084852979 3.008398821 0.1) +(3.213502708 3.008398821 0.1) +(3.342152438 3.008398821 0.1) +(3.470802171 3.008398821 0.1) +(3.599451896 3.008398821 0.1) +(3.728101629 3.008398821 0.1) +(3.856751382 3.008398821 0.1) +(3.985401089 3.008398821 0.1) +(4.114050832 3.008398821 0.1) +(4.242700539 3.008398821 0.1) +(4.371350268 3.008398821 0.1) +(4.500000004 3.008398821 0.1) +(4.628649743 3.008398821 0.1) +(4.757299468 3.008398821 0.1) +(4.885949175 3.008398821 0.1) +(5.014598918 3.008398821 0.1) +(5.143248629 3.008398821 0.1) +(5.271898379 3.008398821 0.1) +(5.400548111 3.008398821 0.1) +(5.529197861 3.008398821 0.1) +(5.657847579 3.008398821 0.1) +(5.786497282 3.008398821 0.1) +(5.915147014 3.008398821 0.1) +(6.043796743 3.008398821 0.1) +(6.172446486 3.008398821 0.1) +(6.301096221 3.008398821 0.1) +(6.429745954 3.008398821 0.1) +(6.558395661 3.008398821 0.1) +(6.687045382 3.008398821 0.1) +(6.815695132 3.008398821 0.1) +(6.944344764 3.008405886 0.1) +(7.0729843 3.008554359 0.1) +(7.201589018 3.008881046 0.1) +(7.330141611 3.009359236 0.1) +(7.458635075 3.009959517 0.1) +(7.587077225 3.010644574 0.1) +(7.715486593 3.011376633 0.1) +(7.843881014 3.012128655 0.1) +(7.972270129 3.012887496 0.1) +(8.100650175 3.01365786 0.1) +(8.229016082 3.014445596 0.1) +(8.35736895 3.015248932 0.1) +(8.485738839 3.016031716 0.1) +(8.614169914 3.016731972 0.1) +(8.742715146 3.017219364 0.1) +(8.871350411 3.017390259 0.1) +(9 3.017396857 0.1) +(0 3.022074067 0.1) +(0.1286296309 3.022069153 0.1) +(0.2572485744 3.021941874 0.1) +(0.3858005364 3.021578972 0.1) +(0.5142674793 3.021057542 0.1) +(0.6426888311 3.020474633 0.1) +(0.7710974843 3.019876413 0.1) +(0.8995158607 3.019289811 0.1) +(1.027944773 3.018716152 0.1) +(1.156380465 3.018151084 0.1) +(1.28482008 3.017591088 0.1) +(1.413270819 3.017045943 0.1) +(1.541745925 3.016535759 0.1) +(1.670259325 3.016088781 0.1) +(1.798816747 3.015732719 0.1) +(1.92741295 3.015489438 0.1) +(2.056035094 3.015378869 0.1) +(2.184664758 3.015373609 0.1) +(2.313294492 3.015373609 0.1) +(2.441924229 3.015373609 0.1) +(2.570553965 3.015373609 0.1) +(2.699183699 3.015373609 0.1) +(2.827813435 3.015373609 0.1) +(2.956443173 3.015373609 0.1) +(3.085072907 3.015373609 0.1) +(3.213702643 3.015373609 0.1) +(3.342332379 3.015373609 0.1) +(3.470962117 3.015373609 0.1) +(3.59959185 3.015373609 0.1) +(3.728221586 3.015373609 0.1) +(3.856851339 3.015373609 0.1) +(3.985481061 3.015373609 0.1) +(4.114110807 3.015373609 0.1) +(4.242740529 3.015373609 0.1) +(4.371370261 3.015373609 0.1) +(4.500000004 3.015373609 0.1) +(4.628629746 3.015373609 0.1) +(4.757259479 3.015373609 0.1) +(4.8858892 3.015373609 0.1) +(5.014518943 3.015373609 0.1) +(5.143148664 3.015373609 0.1) +(5.271778418 3.015373609 0.1) +(5.400408154 3.015373609 0.1) +(5.529037907 3.015373609 0.1) +(5.657667632 3.015373609 0.1) +(5.78629735 3.015373609 0.1) +(5.914927089 3.015373609 0.1) +(6.043556825 3.015373609 0.1) +(6.172186571 3.015373609 0.1) +(6.300816307 3.015373609 0.1) +(6.429446046 3.015373609 0.1) +(6.558075768 3.015373609 0.1) +(6.686705496 3.015373609 0.1) +(6.81533525 3.015373609 0.1) +(6.943964911 3.015378869 0.1) +(7.072587057 3.015489431 0.1) +(7.201183275 3.015732701 0.1) +(7.329740679 3.016088789 0.1) +(7.45825405 3.016535793 0.1) +(7.586729207 3.017045926 0.1) +(7.715179957 3.017591059 0.1) +(7.843619575 3.018151059 0.1) +(7.972055243 3.018716136 0.1) +(8.100484157 3.019289793 0.1) +(8.228902543 3.019876388 0.1) +(8.357311218 3.020474598 0.1) +(8.485732568 3.021057504 0.1) +(8.614199482 3.021578955 0.1) +(8.742751404 3.021941895 0.1) +(8.871370368 3.022069154 0.1) +(9 3.022074067 0.1) +(0 3.025934656 0.1) +(0.1286131579 3.025931132 0.1) +(0.2572186533 3.025839877 0.1) +(0.385776125 3.025579688 0.1) +(0.5142726404 3.025205838 0.1) +(0.6427364686 3.024787909 0.1) +(0.7711911918 3.024359003 0.1) +(0.8996528868 3.023938428 0.1) +(1.028122135 3.023527131 0.1) +(1.156596245 3.023121994 0.1) +(1.285073167 3.022720494 0.1) +(1.413558065 3.022329641 0.1) +(1.542060433 3.021963854 0.1) +(1.670590256 3.021643384 0.1) +(1.799151643 3.021388098 0.1) +(1.927740834 3.021213673 0.1) +(2.056348624 3.021134399 0.1) +(2.184961805 3.021130627 0.1) +(2.313575038 3.021130627 0.1) +(2.442188271 3.021130627 0.1) +(2.570801504 3.021130627 0.1) +(2.699414736 3.021130627 0.1) +(2.82802797 3.021130627 0.1) +(2.956641204 3.021130627 0.1) +(3.085254436 3.021130627 0.1) +(3.213867669 3.021130627 0.1) +(3.342480903 3.021130627 0.1) +(3.471094138 3.021130627 0.1) +(3.599707368 3.021130627 0.1) +(3.728320604 3.021130627 0.1) +(3.85693385 3.021130627 0.1) +(3.985547071 3.021130627 0.1) +(4.114160311 3.021130627 0.1) +(4.242773532 3.021130627 0.1) +(4.371386764 3.021130627 0.1) +(4.500000004 3.021130627 0.1) +(4.628613239 3.021130627 0.1) +(4.757226471 3.021130627 0.1) +(4.885839693 3.021130627 0.1) +(5.014452932 3.021130627 0.1) +(5.143066154 3.021130627 0.1) +(5.2716794 3.021130627 0.1) +(5.400292636 3.021130627 0.1) +(5.528905879 3.021130627 0.1) +(5.657519107 3.021130627 0.1) +(5.786132325 3.021130627 0.1) +(5.914745561 3.021130627 0.1) +(6.043358793 3.021130627 0.1) +(6.171972032 3.021130627 0.1) +(6.300585268 3.021130627 0.1) +(6.429198504 3.021130627 0.1) +(6.557811725 3.021130627 0.1) +(6.686424954 3.021130627 0.1) +(6.8150382 3.021130627 0.1) +(6.943651379 3.021134399 0.1) +(7.072259171 3.021213668 0.1) +(7.200848371 3.021388085 0.1) +(7.329409746 3.02164339 0.1) +(7.45793955 3.021963878 0.1) +(7.586441954 3.022329629 0.1) +(7.714926861 3.022720473 0.1) +(7.843403786 3.023121976 0.1) +(7.971877875 3.023527119 0.1) +(8.100347125 3.023938414 0.1) +(8.228808829 3.024358985 0.1) +(8.357263568 3.024787884 0.1) +(8.485727393 3.025205811 0.1) +(8.614223889 3.025579675 0.1) +(8.742781332 3.025839893 0.1) +(8.871386843 3.025931133 0.1) +(9 3.025934656 0.1) +(0 3.029121202 0.1) +(0.128599561 3.029118826 0.1) +(0.2571939562 3.029057305 0.1) +(0.3857559754 3.028881895 0.1) +(0.5142769004 3.028629858 0.1) +(0.6427757886 3.028348106 0.1) +(0.7712685386 3.028058952 0.1) +(0.8997659882 3.027775415 0.1) +(1.028268531 3.027498133 0.1) +(1.15677435 3.027225004 0.1) +(1.285282066 3.026954326 0.1) +(1.413795159 3.026690828 0.1) +(1.542320029 3.026444226 0.1) +(1.670863409 3.026228177 0.1) +(1.799428067 3.026056072 0.1) +(1.928011471 3.025938481 0.1) +(2.056607413 3.025885037 0.1) +(2.18520699 3.025882494 0.1) +(2.313806601 3.025882494 0.1) +(2.442406213 3.025882494 0.1) +(2.571005825 3.025882494 0.1) +(2.699605436 3.025882494 0.1) +(2.828205048 3.025882494 0.1) +(2.95680466 3.025882494 0.1) +(3.085404271 3.025882494 0.1) +(3.214003883 3.025882494 0.1) +(3.342603495 3.025882494 0.1) +(3.471203108 3.025882494 0.1) +(3.599802718 3.025882494 0.1) +(3.728402332 3.025882494 0.1) +(3.85700195 3.025882494 0.1) +(3.985601557 3.025882494 0.1) +(4.114201171 3.025882494 0.1) +(4.242800775 3.025882494 0.1) +(4.371400386 3.025882494 0.1) +(4.5 3.025882494 0.1) +(4.628599618 3.025882494 0.1) +(4.757199225 3.025882494 0.1) +(4.885798832 3.025882494 0.1) +(5.014398446 3.025882494 0.1) +(5.14299805 3.025882494 0.1) +(5.271597671 3.025882494 0.1) +(5.400197282 3.025882494 0.1) +(5.528796904 3.025882494 0.1) +(5.657396511 3.025882494 0.1) +(5.785996114 3.025882494 0.1) +(5.914595725 3.025882494 0.1) +(6.043195339 3.025882494 0.1) +(6.171794954 3.025882494 0.1) +(6.300394568 3.025882494 0.1) +(6.428994182 3.025882494 0.1) +(6.557593786 3.025882494 0.1) +(6.686193393 3.025882494 0.1) +(6.814793014 3.025882494 0.1) +(6.943392589 3.025885037 0.1) +(7.071988532 3.025938478 0.1) +(7.200571943 3.026056064 0.1) +(7.329136593 3.026228181 0.1) +(7.457679961 3.026444243 0.1) +(7.586204854 3.026690819 0.1) +(7.714717954 3.026954313 0.1) +(7.843225668 3.027224992 0.1) +(7.971731479 3.027498125 0.1) +(8.100234021 3.027775406 0.1) +(8.228731475 3.02805894 0.1) +(8.357224236 3.028348089 0.1) +(8.485723121 3.02862984 0.1) +(8.614244032 3.028881887 0.1) +(8.742806032 3.029057316 0.1) +(8.871400439 3.029118827 0.1) +(9 3.029121202 0.1) +(0 3.03175139 0.1) +(0.1285883381 3.031749963 0.1) +(0.2571735712 3.031712984 0.1) +(0.3857393443 3.03160755 0.1) +(0.5142804164 3.031456059 0.1) +(0.6428082432 3.031286707 0.1) +(0.7713323807 3.031112906 0.1) +(0.8998593429 3.03094248 0.1) +(1.028389366 3.030775815 0.1) +(1.156921359 3.030611646 0.1) +(1.285454492 3.03044895 0.1) +(1.413990857 3.030290569 0.1) +(1.5425343 3.030142345 0.1) +(1.67108887 3.030012484 0.1) +(1.799656229 3.029909038 0.1) +(1.928234856 3.029838357 0.1) +(2.056821019 3.029806234 0.1) +(2.185409366 3.029804705 0.1) +(2.313997734 3.029804705 0.1) +(2.442586103 3.029804705 0.1) +(2.571174472 3.029804705 0.1) +(2.69976284 3.029804705 0.1) +(2.828351209 3.029804705 0.1) +(2.956939578 3.029804705 0.1) +(3.085527946 3.029804705 0.1) +(3.214116314 3.029804705 0.1) +(3.342704683 3.029804705 0.1) +(3.471293053 3.029804705 0.1) +(3.599881421 3.029804705 0.1) +(3.728469789 3.029804705 0.1) +(3.857058164 3.029804705 0.1) +(3.985646529 3.029804705 0.1) +(4.1142349 3.029804705 0.1) +(4.242823264 3.029804705 0.1) +(4.371411632 3.029804705 0.1) +(4.5 3.029804705 0.1) +(4.628588371 3.029804705 0.1) +(4.757176739 3.029804705 0.1) +(4.885765104 3.029804705 0.1) +(5.014353475 3.029804705 0.1) +(5.142941839 3.029804705 0.1) +(5.271530211 3.029804705 0.1) +(5.400118582 3.029804705 0.1) +(5.528706954 3.029804705 0.1) +(5.657295321 3.029804705 0.1) +(5.785883682 3.029804705 0.1) +(5.914472054 3.029804705 0.1) +(6.043060421 3.029804705 0.1) +(6.171648793 3.029804705 0.1) +(6.300237161 3.029804705 0.1) +(6.428825532 3.029804705 0.1) +(6.557413896 3.029804705 0.1) +(6.686002264 3.029804705 0.1) +(6.814590636 3.029804705 0.1) +(6.943178982 3.029806234 0.1) +(7.071765146 3.029838355 0.1) +(7.200343779 3.029909032 0.1) +(7.328911132 3.030012487 0.1) +(7.457465693 3.030142355 0.1) +(7.58600915 3.030290564 0.1) +(7.714545518 3.030448941 0.1) +(7.843078654 3.030611638 0.1) +(7.971610639 3.03077581 0.1) +(8.100140661 3.030942475 0.1) +(8.228667629 3.031112898 0.1) +(8.357191771 3.031286696 0.1) +(8.485719596 3.031456048 0.1) +(8.614260661 3.031607546 0.1) +(8.742826421 3.031712991 0.1) +(8.871411661 3.031749963 0.1) +(9 3.03175139 0.1) +(0 3.033922359 0.1) +(0.1285790746 3.033921714 0.1) +(0.2571567453 3.033904993 0.1) +(0.3857256164 3.033857318 0.1) +(0.5142833186 3.033788818 0.1) +(0.6428350318 3.03371224 0.1) +(0.7713850761 3.033633651 0.1) +(0.8999363982 3.033556589 0.1) +(1.028489104 3.033481227 0.1) +(1.157042701 3.033406994 0.1) +(1.285596813 3.033333426 0.1) +(1.414152387 3.03326181 0.1) +(1.542711161 3.033194787 0.1) +(1.671274966 3.033136067 0.1) +(1.799844555 3.033089291 0.1) +(1.928419238 3.033057331 0.1) +(2.056997329 3.033042806 0.1) +(2.185576408 3.033042114 0.1) +(2.314155497 3.033042114 0.1) +(2.442734585 3.033042114 0.1) +(2.571313674 3.033042114 0.1) +(2.699892762 3.033042114 0.1) +(2.82847185 3.033042114 0.1) +(2.957050939 3.033042114 0.1) +(3.085630027 3.033042114 0.1) +(3.214209116 3.033042114 0.1) +(3.342788204 3.033042114 0.1) +(3.471367293 3.033042114 0.1) +(3.599946382 3.033042114 0.1) +(3.728525468 3.033042114 0.1) +(3.857104561 3.033042114 0.1) +(3.985683646 3.033042114 0.1) +(4.114262736 3.033042114 0.1) +(4.242841821 3.033042114 0.1) +(4.371420911 3.033042114 0.1) +(4.5 3.033042114 0.1) +(4.628579089 3.033042114 0.1) +(4.757158179 3.033042114 0.1) +(4.885737264 3.033042114 0.1) +(5.014316354 3.033042114 0.1) +(5.142895439 3.033042114 0.1) +(5.271474532 3.033042114 0.1) +(5.400053618 3.033042114 0.1) +(5.528632711 3.033042114 0.1) +(5.657211796 3.033042114 0.1) +(5.785790882 3.033042114 0.1) +(5.914369971 3.033042114 0.1) +(6.042949061 3.033042114 0.1) +(6.17152815 3.033042114 0.1) +(6.300107239 3.033042114 0.1) +(6.428686329 3.033042114 0.1) +(6.557265414 3.033042114 0.1) +(6.685844504 3.033042114 0.1) +(6.814423593 3.033042114 0.1) +(6.943002671 3.033042806 0.1) +(7.071580764 3.03305733 0.1) +(7.200155446 3.033089289 0.1) +(7.328725032 3.033136068 0.1) +(7.457288836 3.033194791 0.1) +(7.585847618 3.033261808 0.1) +(7.714403193 3.033333423 0.1) +(7.842957304 3.03340699 0.1) +(7.971510896 3.033481225 0.1) +(8.100063604 3.033556587 0.1) +(8.228614929 3.033633648 0.1) +(8.357164975 3.033712235 0.1) +(8.485716689 3.033788813 0.1) +(8.614274386 3.033857316 0.1) +(8.74284325 3.033904996 0.1) +(8.871420925 3.033921714 0.1) +(9 3.033922359 0.1) +(0 3.035714286 0.1) +(0.1285714286 3.035714286 0.1) +(0.2571428571 3.035714286 0.1) +(0.3857142857 3.035714286 0.1) +(0.5142857143 3.035714286 0.1) +(0.6428571429 3.035714286 0.1) +(0.7714285714 3.035714286 0.1) +(0.9 3.035714286 0.1) +(1.028571429 3.035714286 0.1) +(1.157142857 3.035714286 0.1) +(1.285714286 3.035714286 0.1) +(1.414285714 3.035714286 0.1) +(1.542857143 3.035714286 0.1) +(1.671428571 3.035714286 0.1) +(1.8 3.035714286 0.1) +(1.928571429 3.035714286 0.1) +(2.057142857 3.035714286 0.1) +(2.185714286 3.035714286 0.1) +(2.314285714 3.035714286 0.1) +(2.442857143 3.035714286 0.1) +(2.571428571 3.035714286 0.1) +(2.7 3.035714286 0.1) +(2.828571429 3.035714286 0.1) +(2.957142857 3.035714286 0.1) +(3.085714286 3.035714286 0.1) +(3.214285714 3.035714286 0.1) +(3.342857143 3.035714286 0.1) +(3.471428571 3.035714286 0.1) +(3.6 3.035714286 0.1) +(3.728571429 3.035714286 0.1) +(3.857142857 3.035714286 0.1) +(3.985714286 3.035714286 0.1) +(4.114285714 3.035714286 0.1) +(4.242857143 3.035714286 0.1) +(4.371428571 3.035714286 0.1) +(4.5 3.035714286 0.1) +(4.628571429 3.035714286 0.1) +(4.757142857 3.035714286 0.1) +(4.885714286 3.035714286 0.1) +(5.014285714 3.035714286 0.1) +(5.142857143 3.035714286 0.1) +(5.271428571 3.035714286 0.1) +(5.4 3.035714286 0.1) +(5.528571429 3.035714286 0.1) +(5.657142857 3.035714286 0.1) +(5.785714286 3.035714286 0.1) +(5.914285714 3.035714286 0.1) +(6.042857143 3.035714286 0.1) +(6.171428571 3.035714286 0.1) +(6.3 3.035714286 0.1) +(6.428571429 3.035714286 0.1) +(6.557142857 3.035714286 0.1) +(6.685714286 3.035714286 0.1) +(6.814285714 3.035714286 0.1) +(6.942857143 3.035714286 0.1) +(7.071428571 3.035714286 0.1) +(7.2 3.035714286 0.1) +(7.328571429 3.035714286 0.1) +(7.457142857 3.035714286 0.1) +(7.585714286 3.035714286 0.1) +(7.714285714 3.035714286 0.1) +(7.842857143 3.035714286 0.1) +(7.971428571 3.035714286 0.1) +(8.1 3.035714286 0.1) +(8.228571429 3.035714286 0.1) +(8.357142857 3.035714286 0.1) +(8.485714286 3.035714286 0.1) +(8.614285714 3.035714286 0.1) +(8.742857143 3.035714286 0.1) +(8.871428571 3.035714286 0.1) +(9 3.035714286 0.1) +) + + +// ************************************************************************* // diff --git a/PeriodicHill/constant/transportProperties b/PeriodicHill/constant/transportProperties new file mode 100644 index 00000000..e44bd9bb --- /dev/null +++ b/PeriodicHill/constant/transportProperties @@ -0,0 +1,23 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +transportModel Newtonian; +rho 1; +nu 5e-06; +Pr 0.7; +Prt 1.0; + +// ************************************************************************* // diff --git a/PeriodicHill/constant/turbulenceProperties b/PeriodicHill/constant/turbulenceProperties new file mode 100644 index 00000000..d4b81bc0 --- /dev/null +++ b/PeriodicHill/constant/turbulenceProperties @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + RASModel SpalartAllmaras; + + turbulence on; + + printCoeffs on; +} + +// ************************************************************************* // diff --git a/PeriodicHill/paraview.foam b/PeriodicHill/paraview.foam new file mode 100644 index 00000000..e69de29b diff --git a/PeriodicHill/preProcessing.sh b/PeriodicHill/preProcessing.sh new file mode 100755 index 00000000..cf660eab --- /dev/null +++ b/PeriodicHill/preProcessing.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Check if the OpenFOAM enviroments are loaded +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# copy initial and boundary condition files +cp -r 0.orig 0 diff --git a/PeriodicHill/runScript.py b/PeriodicHill/runScript.py new file mode 100755 index 00000000..8834672f --- /dev/null +++ b/PeriodicHill/runScript.py @@ -0,0 +1,190 @@ +#!/usr/bin/env python +""" +DAFoam run script for the field inversion of PH case +""" + +# ============================================================================= +# Imports +# ============================================================================= +import os +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic + + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= +U0 = 0.028 +nuTilda0 = 1e-4 +J0 = 0.0479729567 # this is the baseline L2 norm +nCells = 3500 +dp0 = 6.634074021107811e-06 + +# Input parameters for DAFoam +daOptions = { + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1e5, + "fvSource": { + "gradP":{ + "type": "uniformPressureGradient", + "value": dp0, + "direction": [1.0, 0.0, 0.0], + }, + }, + "function": { + "UFieldVar": { + "type": "variance", + "source": "allCells", + "scale": 1.0, + "mode": "field", + "varName": "U", + "varType": "vector", + "indices": [0, 1], + "timeDependentRefData": False, + }, + "betaVar": { + "type": "variance", + "source": "allCells", + "scale": 1.0, + "mode": "field", + "varName": "betaFINuTilda", + "varType": "scalar", + "timeDependentRefData": False, + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": {"gmresRelTol": 1.0e-8, "pcFillLevel": 1, "jacMatReOrdering": "natural"}, + "normalizeStates": { + "U": U0, + "p": U0 * U0 / 2.0, + "nuTilda": nuTilda0 * 10.0, + "phi": 1.0, + }, + "inputInfo": { + "beta": { + "type": "field", + "fieldName": "betaFINuTilda", + "fieldType": "scalar", + "distributed": False, + "components": ["solver", "function"], + }, + }, +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(options=daOptions, mesh_options=None, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # setup a composite objective + self.add_subsystem("obj", om.ExecComp("val=error+regulation")) + + def configure(self): + # add the design variables to the dvs component's output + self.dvs.add_output("beta", val=np.ones(nCells), distributed=False) + self.connect("beta", "scenario1.beta") + + # define the design variables to the top level + self.add_design_var("beta", lower=-5.0, upper=10.0, scaler=1.0) + + # add objective and constraints to the top level + # we can connect any function in daOption to obj's terms + self.connect("scenario1.aero_post.UFieldVar", "obj.error") + self.connect("scenario1.aero_post.betaVar", "obj.regulation") + self.add_objective("obj.val", scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-6, + "Major optimality tolerance": 1.0e-6, + "Minor feasibility tolerance": 1.0e-6, + "Verify level": -1, + "Function precision": 1.0e-6, + "Major iterations limit": 50, + "Linesearch tolerance": 0.999, + "Hessian updates": 50, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 50, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/PeriodicHill/system/controlDict b/PeriodicHill/system/controlDict new file mode 100644 index 00000000..6d7e4d21 --- /dev/null +++ b/PeriodicHill/system/controlDict @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 4000; +deltaT 1; +writeControl timeStep; +writeInterval 4000; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression off; +timeFormat general; +timePrecision 16; +runTimeModifiable true; +DebugSwitches +{ + SolverPerformance 0; +} +// ************************************************************************* // diff --git a/PeriodicHill/system/decomposeParDict b/PeriodicHill/system/decomposeParDict new file mode 100644 index 00000000..742e5222 --- /dev/null +++ b/PeriodicHill/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/PeriodicHill/system/fvOptions b/PeriodicHill/system/fvOptions new file mode 100644 index 00000000..f18d3db5 --- /dev/null +++ b/PeriodicHill/system/fvOptions @@ -0,0 +1,34 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvOptions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +/* +momentumSource +{ + type meanVelocityForce; + active yes; //on/off switch + + meanVelocityForceCoeffs + { + selectionMode all; //cellSet // points //cellZone + + fields (U); + Ubar (0.020188 0 0 ); + relaxation 1.0; + } +} +*/ + +// ************************************************************************* // diff --git a/PeriodicHill/system/fvSchemes b/PeriodicHill/system/fvSchemes new file mode 100644 index 00000000..66952566 --- /dev/null +++ b/PeriodicHill/system/fvSchemes @@ -0,0 +1,64 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; + grad(p) Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; + nRequired yes; +} + + +// ************************************************************************* // diff --git a/PeriodicHill/system/fvSolution b/PeriodicHill/system/fvSolution new file mode 100644 index 00000000..18653230 --- /dev/null +++ b/PeriodicHill/system/fvSolution @@ -0,0 +1,71 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + } + Phi + { + $p; + relTol 0; + tolerance 1e-6; + } + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + nSweeps 1; + } +} + + +SIMPLE +{ + nNonOrthogonalCorrectors 0; + consistent no; + pRefCell 0; + pRefValue 0; +} + +relaxationFactors +{ + fields + { + "(p|p_rgh)" 0.30; + } + equations + { + "(U|T|e|h|nuTilda|k|epsilon|omega)" 0.70; + } +} + +potentialFlow +{ + nNonOrthogonalCorrectors 20; +} + + +// ************************************************************************* // diff --git a/PlateHole_Structure/runScript.py b/PlateHole_Structure/runScript.py index 0f91ee3f..215b354a 100755 --- a/PlateHole_Structure/runScript.py +++ b/PlateHole_Structure/runScript.py @@ -1,31 +1,28 @@ #!/usr/bin/env python -""" -DAFoam run script for the Onera M4 wing at subsonic speed -""" - # ============================================================================= # Imports # ============================================================================= import os import argparse -from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT import numpy as np +import json +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP + # ============================================================================= # Input Parameters # ============================================================================= parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="ipopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") args = parser.parse_args() -gcomm = MPI.COMM_WORLD vms0 = 2.9e4 @@ -36,63 +33,146 @@ "designSurfaces": ["hole", "wallx", "wally"], "primalMinResTol": 1e-10, "primalMinResTolDiff": 1e10, - "objFunc": { + "function": { "VMS": { - "part1": { - "type": "vonMisesStressKS", - "source": "boxToCell", - "min": [-10.0, -10.0, -10.0], - "max": [10.0, 10.0, 10.0], - "scale": 1.0, - "coeffKS": 2.0e-3, - "addToAdjoint": True, - } + "type": "vonMisesStressKS", + "source": "allCells", + "scale": 1.0, + "coeffKS": 2.0e-3, }, "M": { - "part1": { - "type": "mass", - "source": "boxToCell", - "min": [-10.0, -10.0, -10.0], - "max": [10.0, 10.0, 10.0], - "scale": 1.0, - "addToAdjoint": True, - } + "type": "variableVolSum", + "source": "allCells", + "varName": "solid:rho", + "varType": "scalar", + "index": 0, + "isSquare": 0, + "multiplyVol": 1, + "divByTotalVol": 0, + "scale": 1.0, }, }, "normalizeStates": {"D": 1.0e-7}, - "adjPartDerivFDStep": {"State": 1e-5, "FFD": 1e-3}, "adjEqnOption": {"gmresRelTol": 1.0e-10, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, "adjPCLag": 20, # Design variable setup - "designVar": {"shapey": {"designVarType": "FFD"}, "shapex": {"designVarType": "FFD"}}, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + }, } # mesh warping parameters, users need to manually specify the symmetry plane meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", + "fileType": "OpenFOAM", # point and normal for the symmetry plane "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.1], [0.0, 0.0, 1.0]]], } + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/plateFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # use the shape function to define shape variables for 2D airfoil + pts = self.geometry.DVGeo.getLocalIndex(0) + dir_x = np.array([1.0, 0.0, 0.0]) + dir_y = np.array([0.0, 1.0, 0.0]) + shapesX = [] + shapesY = [] + for i in range(2, 5): + for j in [2, 4]: + # k=0 and k=1 move together to ensure symmetry + shapesY.append({pts[i, j, 0]: dir_y, pts[i, j, 1]: dir_y}) + self.geometry.nom_addShapeFunctionDV(dvName="shapeY", shapes=shapesY) + for i in [2, 4]: + for j in range(2, 5): + # k=0 and k=1 move together to ensure symmetry + shapesX.append({pts[i, j, 0]: dir_x, pts[i, j, 1]: dir_x}) + self.geometry.nom_addShapeFunctionDV(dvName="shapeX", shapes=shapesX) + + # add the design variables to the dvs component's output + self.dvs.add_output("shapeX", val=np.array([0] * len(shapesX))) + self.dvs.add_output("shapeY", val=np.array([0] * len(shapesY))) + # manually connect the dvs output to the geometry and scenario1 + self.connect("shapeX", "geometry.shapeX") + self.connect("shapeY", "geometry.shapeY") + + # define the design variables to the top level + self.add_design_var("shapeX", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("shapeY", lower=-1.0, upper=1.0, scaler=10.0) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.M", scaler=1.0) + self.add_constraint("scenario1.aero_post.VMS", upper=vms0, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer # options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 50, + "Function precision": 1.0e-5, + "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", "Summary file": "opt_SNOPT_summary.txt", } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", "mu_strategy": "adaptive", @@ -101,147 +181,36 @@ "alpha_for_y": "full", "recalc_y": "yes", } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } else: - print("opt arg not valid!") - exit(0) - -# ============================================================================= -# Design variable setup -# ============================================================================= -# DVGeo -FFDFile = "./FFD/plateFFD.xyz" -DVGeo = DVGeometry(FFDFile) -# select points -pts = DVGeo.getLocalIndex(0) -indexList1 = pts[2:5, 2, :].flatten() -indexList2 = pts[2:5, 4, :].flatten() -indexList = np.concatenate([indexList1, indexList2]) -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal("shapey", lower=-1.0, upper=1.0, axis="y", scale=1.0, pointSelect=PS, config="configy") -indexList1 = pts[2, 2:5, :].flatten() -indexList2 = pts[4, 2:5, :].flatten() -indexList = np.concatenate([indexList1, indexList2]) -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal("shapex", lower=-1.0, upper=1.0, axis="x", scale=1.0, pointSelect=PS, config="configx") - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -leList = [[-0.5 + 1e-3, 0.0, 0.0 + 1e-3], [-0.5 + 1e-3, 0.0, 0.1 - 1e-3]] -teList = [[0.5 - 1e-3, 0.0, 0.0 + 1e-3], [0.5 - 1e-3, 0.0, 0.1 - 1e-3]] - -# volume constraint -# DVCon.addVolumeConstraint(leList, teList, nSpan=2, nChord=10, lower=1.0, upper=3, scaled=True) - -# thickness constraint -# DVCon.addThicknessConstraints2D(leList, teList, nSpan=2, nChord=10, lower=0.8, upper=3.0, scaled=True) - -# Create linear constraints to link the shape change between k=0 and k=1 -indSetA = [] -indSetB = [] -for i in [2, 4]: - for j in range(2, 5): - indSetA.append(pts[i, j, 0]) - indSetB.append(pts[i, j, 1]) -DVCon.addLinearConstraintsShape(indSetA, indSetB, factorA=1.0, factorB=-1.0, lower=0.0, upper=0.0, config="configx") - -indSetA = [] -indSetB = [] -for i in range(2, 5): - for j in [2, 4]: - indSetA.append(pts[i, j, 0]) - indSetB.append(pts[i, j, 1]) -DVCon.addLinearConstraintsShape(indSetA, indSetB, factorA=1.0, factorB=-1.0, lower=0.0, upper=0.0, config="configy") - -# Create linear constraints to link the shape change between j=2 and j=4 -indSetA = [] -indSetB = [] -for i in range(2, 5): - indSetA.append(pts[i, 2, 0]) - indSetB.append(pts[i, 4, 0]) -DVCon.addLinearConstraintsShape(indSetA, indSetB, factorA=1.0, factorB=1.0, lower=0.0, upper=0.0, config="configy") - -# Create linear constraints to link the shape change between i=2 and i=4 -indSetA = [] -indSetB = [] -for j in range(2, 5): - indSetA.append(pts[2, j, 0]) - indSetB.append(pts[4, j, 0]) -DVCon.addLinearConstraintsShape(indSetA, indSetB, factorA=1.0, factorB=1.0, lower=0.0, upper=0.0, config="configx") - -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - optProb.addObj("M", scale=1.0) - # Add physical constraints - optProb.addCon("VMS", upper=vms0, scale=1.0) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "verifySens": - - optFuncs.verifySens() - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/Prowim_Wing_Propeller/deformGeo.sh b/Prowim_Wing_Propeller/deformGeo.sh deleted file mode 100755 index 3d616954..00000000 --- a/Prowim_Wing_Propeller/deformGeo.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -if [ -z "$WM_PROJECT" ]; then - echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" - exit -fi - -# Generate Input Geometry -echo "Generating Input Geometry..." -(cd deformGeo && python generate_wing.py) - - -# Copy Necessary Files -echo "Copying Files..." -cp ./deformGeo/wing.igs . -cp ./deformGeo/OptRef_Example.json . - -# Run Script to Deform the Geometry -echo "Deforming Geometry..." -python runScript.py --task=deformGeo - -echo "Geometry Deformation... Done!" \ No newline at end of file diff --git a/Prowim_Wing_Propeller/deformGeo/NACA642A015.dat b/Prowim_Wing_Propeller/deformIGS/NACA642A015.dat similarity index 100% rename from Prowim_Wing_Propeller/deformGeo/NACA642A015.dat rename to Prowim_Wing_Propeller/deformIGS/NACA642A015.dat diff --git a/Prowim_Wing_Propeller/deformGeo/OptRef_Example.json b/Prowim_Wing_Propeller/deformIGS/OptRef_Example.json similarity index 100% rename from Prowim_Wing_Propeller/deformGeo/OptRef_Example.json rename to Prowim_Wing_Propeller/deformIGS/OptRef_Example.json diff --git a/Prowim_Wing_Propeller/deformGeo/generate_wing.py b/Prowim_Wing_Propeller/deformIGS/generate_wing.py similarity index 100% rename from Prowim_Wing_Propeller/deformGeo/generate_wing.py rename to Prowim_Wing_Propeller/deformIGS/generate_wing.py diff --git a/Prowim_Wing_Propeller/deformSTL/deformed_opt_stl.py b/Prowim_Wing_Propeller/deformSTL/deformed_opt_stl.py new file mode 100755 index 00000000..778471ba --- /dev/null +++ b/Prowim_Wing_Propeller/deformSTL/deformed_opt_stl.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python +""" +Deform the STL based on the optimized design vars +""" + +import sys +from stl import mesh +import numpy as np +from pygeo import DVGeometry, geo_utils +import json + +# read in the FFD +DVGeo = DVGeometry("wingFFD.xyz") + +# read in the stl file +myMesh = mesh.Mesh.from_file("wing.stl") + +# parse the point cloud in the stl +nFaces = len(myMesh.x) +surfaceCoordinates = [] +for i in range(nFaces): + for j in range(3): + coords = [myMesh.x[i][j], myMesh.y[i][j], myMesh.z[i][j]] + surfaceCoordinates.append(coords) + +# add the STL point cloud to pyGeo +DVGeo.addPointSet(surfaceCoordinates, "surfacePoints") + +# Shape design variables setup. NOTE: this needs to be EXACTLY same as the runScript.py, including the scaling +# --------- +# nTwists is the number of FFD points in the spanwise direction +nTwists = DVGeo.addRefAxis("bodyAxis", xFraction=0.25, alignIndex="k") +# twist function, we keep the root twist constant so the first +# element in the twist design variable is the twist at the 2nd +# spanwise location +def twist(val, geo): + for i in range(1, nTwists): + geo.rot_z["bodyAxis"].coef[i] = val[i - 1] + +# select points +pts = DVGeo.getLocalIndex(0) +indexList = pts[:, :, :].flatten() +PS = geo_utils.PointSelect("list", indexList) +# shape +DVGeo.addLocalDV("shapey", lower=-1.0, upper=1.0, axis="y", scale=1.0, pointSelect=PS) +# twist +DVGeo.addGlobalDV("twist", np.zeros(nTwists - 1), twist, lower=-10.0, upper=10.0, scale=1.0) + +# NO need to add the alpha variable because it does not impact the shape + +# read in the design variable json file +# (NOTE: the design variable values can be from a DAFoam optimization log) +with open("./designVars.json") as f: + dvs = json.load(f) + +print("Deforming the stl with new pyGeo DVs:", dvs) + +# set the dv values in the json file to the pyGeo obj and update the point cloud +DVGeo.setDesignVars(dvs) +newSurfaceCoordinates = DVGeo.update("surfacePoints") + +# get the new surface point cloud and assign it to the deformed stl file +counterI = 0 +for i in range(nFaces): + for j in range(3): + myMesh.x[i][j] = newSurfaceCoordinates[counterI][0] + myMesh.y[i][j] = newSurfaceCoordinates[counterI][1] + myMesh.z[i][j] = newSurfaceCoordinates[counterI][2] + counterI += 1 + +myMesh.save("deformed.stl") + +print("Done. File saved to deformed.stl") diff --git a/Prowim_Wing_Propeller/deformSTL/designVars.json b/Prowim_Wing_Propeller/deformSTL/designVars.json new file mode 100644 index 00000000..11d979c8 --- /dev/null +++ b/Prowim_Wing_Propeller/deformSTL/designVars.json @@ -0,0 +1,131 @@ +{ + "twist":[ + 0.0000225167540632, + 0.0000517292576052, + 0.000078131135538, + 0.0000901492588406, + 0.0000540263479719 + ], + "shapey":[ + 0.0031621840423969, + 0.0046913195070353, + 0.0054624366613953, + 0.0052882868207217, + 0.0043574282221828, + 0.0029432213874709, + -0.0031621840423969, + -0.0046913195070353, + -0.0054624366613953, + -0.0052882868207217, + -0.0043574282221828, + -0.0029432213874709, + 0.0027381505081988, + 0.0043100012831353, + 0.0049466464667137, + 0.0041670291515154, + 0.0030276463377308, + 0.0025606248730119, + 0.0048959889560678, + 0.0063821609212247, + 0.0061144915085401, + 0.0047602933194406, + 0.0029699953444871, + 0.0001556619674135, + 0.0029443590916089, + 0.0039844368612002, + 0.0038129372526151, + 0.0026898949540303, + 0.0012978126139614, + 0.0008693868850101, + 0.0092765304474822, + 0.012200454543121, + 0.0121671814684168, + 0.0105992876686274, + 0.0080234008193412, + 0.0036805264994199, + 0.0029357280900538, + 0.0042357121603593, + 0.004466744346522, + 0.0033682471501613, + 0.0017428606456422, + 0.001121532921418, + 0.0029245773067851, + 0.0033904175653596, + 0.0028214930604256, + 0.0020097378503329, + 0.0011181203448261, + -0.0002252834764423, + 0.0063264026972303, + 0.0075368032074373, + 0.0072742549270352, + 0.0060674112538545, + 0.0047022226111105, + 0.0032917992190863, + 0.0006491154205672, + 0.0029334666738317, + 0.003758592683945, + 0.0022771472214161, + -0.0008475299041679, + -0.0024719801951951, + 0.0008904266192069, + 0.0006432058874014, + -0.0002396273459254, + -0.0013644071951279, + -0.0023334884333606, + -0.0015840872240112, + 0.0000888302174322, + -0.0009349841588495, + -0.0025156962754785, + -0.0033787335175212, + -0.0033290116548748, + -0.0025146732365516, + 0.0034331645402152, + 0.0039804239887803, + 0.0025900401645486, + 0.0002828697903428, + -0.002032205755787, + -0.0019183192374002, + 0.0047630882893069, + 0.0061570801863116, + 0.0053647100447781, + 0.0030610239445468, + 0.0000060420142736, + -0.001780804666159, + 0.00480615781965, + 0.0052102498415003, + 0.0029351383475233, + -0.0004694815906738, + -0.0037566728723073, + -0.0036505357431949, + 0.0060639590081921, + 0.0070302908352356, + 0.0052302831663626, + 0.001891871684268, + -0.0019474090375506, + -0.0031597175436283, + 0.0047671585222773, + 0.0056861409499543, + 0.0043743576624723, + 0.0017909818047593, + -0.0010914909603679, + -0.0019119777246302, + 0.0037793095625657, + 0.0042819513128694, + 0.0029412456666102, + 0.00064471893123, + -0.0018479279300947, + -0.0024086890890645, + 0.0007340259767912, + 0.0010843221851187, + 0.0012368132309435, + 0.0011831258030574, + 0.0009962202112306, + 0.0006642942544048, + -0.0007340259767912, + -0.0010843221851187, + -0.0012368132309435, + -0.0011831258030574, + -0.0009962202112306, + -0.0006642942544048 + ] +} \ No newline at end of file diff --git a/Prowim_Wing_Propeller/deformSTL/wing.stl b/Prowim_Wing_Propeller/deformSTL/wing.stl new file mode 100644 index 00000000..f8220bf1 Binary files /dev/null and b/Prowim_Wing_Propeller/deformSTL/wing.stl differ diff --git a/Prowim_Wing_Propeller/deformSTL/wingFFD.xyz b/Prowim_Wing_Propeller/deformSTL/wingFFD.xyz new file mode 100755 index 00000000..bede53c4 --- /dev/null +++ b/Prowim_Wing_Propeller/deformSTL/wingFFD.xyz @@ -0,0 +1,5 @@ +1 +10 2 6 +-0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 -0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 -0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 -0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 -0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 -0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 -0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 -0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 -0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 -0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 -0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 -0.010000 0.018889 0.047778 0.076667 0.105556 0.134444 0.163333 0.192222 0.221111 0.250000 +-0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 -0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 0.025000 +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.130000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.260000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.390000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.520000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 0.650000 \ No newline at end of file diff --git a/Prowim_Wing_Propeller/preProcessing.sh b/Prowim_Wing_Propeller/preProcessing.sh index fffdc4b1..119d5046 100755 --- a/Prowim_Wing_Propeller/preProcessing.sh +++ b/Prowim_Wing_Propeller/preProcessing.sh @@ -6,23 +6,20 @@ if [ -z "$WM_PROJECT" ]; then fi # pre-processing - -if [ -f "prowim_wing_surface_mesh.cgns.tar.gz" ]; then - echo "Surface mesh prowim_wing_surface_mesh.cgns.tar.gz already exists." +if [ -f "triSurface.tar.gz" ]; then + echo "Surface geometry triSurface.tar.gz already exists." else - echo "Downloading surface mesh prowim_wing_surface_mesh.cgns.tar.gz" - wget https://github.com/dafoam/files/releases/download/v1.0.0/prowim_wing_surface_mesh.cgns.tar.gz + echo "Downloading surface geometry triSurface.tar.gz" + wget https://github.com/dafoam/files/releases/download/v1.0.0/Prowim_Wing_triSurface.tar.gz fi -rm prowim_wing_surface_mesh.cgns -tar -xvf prowim_wing_surface_mesh.cgns.tar.gz -# coarsen the surface mesh three times -cgns_utils coarsen prowim_wing_surface_mesh.cgns surfaceMesh.cgns -cgns_utils coarsen surfaceMesh.cgns +tar -xvf triSurface.tar.gz +mv triSurface constant/ + # generate mesh echo "Generating mesh.." -python genWingMesh.py &> logMeshGeneration.txt -plot3dToFoam -noBlank volumeMesh.xyz >> logMeshGeneration.txt -autoPatch 60 -overwrite >> logMeshGeneration.txt +blockMesh &> logMeshGeneration.txt +surfaceFeatureExtract >> logMeshGeneration.txt +snappyHexMesh -overwrite >> logMeshGeneration.txt createPatch -overwrite >> logMeshGeneration.txt renumberMesh -overwrite >> logMeshGeneration.txt echo "Generating mesh.. Done!" diff --git a/Prowim_Wing_Propeller/runScript.py b/Prowim_Wing_Propeller/runScript.py index 250203b9..abb312d3 100755 --- a/Prowim_Wing_Propeller/runScript.py +++ b/Prowim_Wing_Propeller/runScript.py @@ -1,32 +1,25 @@ #!/usr/bin/env python -""" -DAFoam run script for the Prowim wing-propeller case -""" - -# ============================================================================= -# Imports -# ============================================================================= import os import argparse -from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT import numpy as np -import json +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() # ============================================================================= # Input Parameters # ============================================================================= -parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="ipopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") -args = parser.parse_args() -gcomm = MPI.COMM_WORLD # global parameters U0 = 100.0 @@ -34,15 +27,14 @@ nuTilda0 = 4.5e-5 T0 = 300.0 CL_target = 0.5 -alpha0 = 3.0 +aoa0 = 3.0 A0 = 0.1536 -rho0 = 1.0 # density for normalizing CD and CL +rho0 = p0 / T0 / 287.0 + -# Set the parameters for optimization daOptions = { "designSurfaces": ["wing"], "solverName": "DARhoSimpleFoam", - "useAD": {"mode": "reverse"}, "primalMinResTol": 1.0e-8, "primalBC": { "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0.0, 0.0]}, @@ -51,16 +43,23 @@ "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, "useWallFunction": True, }, - # variable bounds for compressible flow conditions - "primalVarBounds": { - "UMax": 1000.0, - "UMin": -1000.0, - "pMax": 500000.0, - "pMin": 20000.0, - "eMax": 500000.0, - "eMin": 100000.0, - "rhoMax": 5.0, - "rhoMin": 0.2, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "patchVelocityInputName": "patchV", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, }, "fvSource": { "disk1": { @@ -76,67 +75,187 @@ "eps": 0.04, # eps should be of cell size "expM": 1.0, "expN": 0.5, + "adjustThrust": 1, + "targetThrust": 55.0, }, }, - "objFunc": { - "CD": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "parallelToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "adjEqnOption": { + "gmresRelTol": 1.0e-6, + "pcFillLevel": 1, + "jacMatReOrdering": "rcm", + "gmresMaxIters": 1000, + "gmresRestart": 1000, + }, + "normalizeStates": { + "U": U0, + "p": p0, + "T": T0, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + "patchV": { + "type": "patchVelocity", + "patches": ["inout"], + "flowAxis": "x", + "normalAxis": "y", + "components": ["solver", "function"], }, - "CL": { - "part1": { - "type": "force", - "source": "patchToFace", - "patches": ["wing"], - "directionMode": "normalToFlow", - "alphaName": "alpha", - "scale": 1.0 / (0.5 * rho0 * U0 * U0 * A0), - "addToAdjoint": True, - } + "actuator_disk": { + "type": "fvSourcePar", + "fvSourceName": "disk1", + "indices": [2], # z location + "components": ["solver", "function"], }, }, - "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, - # transonic preconditioner to speed up the adjoint convergence - "normalizeStates": {"U": U0, "p": p0, "nuTilda": nuTilda0 * 10.0, "phi": 1.0, "T": T0}, - "adjPartDerivFDStep": {"State": 1e-6, "FFD": 1e-3}, - "adjPCLag": 2, - "designVar": {}, } -# mesh warping parameters, users need to manually specify the symmetry plane +# Mesh deformation setup meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", - "useRotations": False, + "fileType": "OpenFOAM", # point and normal for the symmetry plane "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]]], } + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # Create reference axis for the twist variable + nRefAxPts = self.geometry.nom_addRefAxis(name="wingAxis", xFraction=0.25, alignIndex="k") + + # Set up global design variables. We dont change the root twist + def twist(val, geo): + for i in range(1, nRefAxPts): + geo.rot_z["wingAxis"].coef[i] = -val[i - 1] + + # add twist variable + self.geometry.nom_addGlobalDV(dvName="twist", value=np.array([0] * (nRefAxPts - 1)), func=twist) + + # select the FFD points to move + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = pts[:, :, :].flatten() + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shape", pointSelect=PS) + + # setup the volume and thickness constraints + leList = [[0.005, 0.0, 1e-3], [0.005, 0.0, 0.63]] + teList = [[0.235, 0.0, 1e-3], [0.235, 0.0, 0.63]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=10, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=10, nChord=10) + # add the LE/TE constraints + self.geometry.nom_add_LETEConstraint("lecon", volID=0, faceID="iLow") + self.geometry.nom_add_LETEConstraint("tecon", volID=0, faceID="iHigh") + # LE radius constraint + self.geometry.nom_addLERadiusConstraints("radius", leList, nSpan=10, axis=[0, 1, 0], chordDir=[-1, 0, 0]) + # wing surface spanwise curvature constraint + self.geometry.nom_addCurvatureConstraint1D( + "curvature1", + start=[0.12, 0, 0.02], + end=[0.12, 0, 0.6], + nPts=20, + axis=[0, 1, 0], + curvatureType="mean", + scaled=False, + ) + + # add the design variables to the dvs component's output + self.dvs.add_output("twist", val=np.array([0] * (nRefAxPts - 1))) + self.dvs.add_output("shape", val=np.array([0] * nShapes)) + self.dvs.add_output("patchV", val=np.array([U0, aoa0])) + self.dvs.add_output("actuator_disk", val=np.array([0.3])) + # manually connect the dvs output to the geometry and scenario1 + self.connect("twist", "geometry.twist") + self.connect("shape", "geometry.shape") + self.connect("patchV", "scenario1.patchV") + self.connect("actuator_disk", "scenario1.actuator_disk") + + # define the design variables + self.add_design_var("twist", lower=-10.0, upper=10.0, scaler=0.1) + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("patchV", lower=[U0, 0.0], upper=[U0, 10.0], scaler=0.1) + self.add_design_var("actuator_disk", lower=0.2, upper=0.6, scaler=1.0) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.tecon", equals=0.0, scaler=1.0, linear=True) + self.add_constraint("geometry.lecon", equals=0.0, scaler=1.0, linear=True) + self.add_constraint("geometry.radius", lower=1.0, upper=3.0, scaler=1.0) + self.add_constraint("geometry.curvature1", lower=0.0, upper=0.1, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer # options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 50, + "Function precision": 1.0e-5, + "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", "Summary file": "opt_SNOPT_summary.txt", } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", "mu_strategy": "adaptive", @@ -145,161 +264,39 @@ "alpha_for_y": "full", "recalc_y": "yes", } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } else: - print("opt arg not valid!") - exit(0) - - -# ============================================================================= -# Design variable setup -# ============================================================================= -DVGeo = DVGeometry("./FFD/wingFFD.xyz") - -# nTwists is the number of FFD points in the spanwise direction -nTwists = DVGeo.addRefAxis("bodyAxis", xFraction=0.25, alignIndex="k") - -# twist function, we keep the root twist constant so the first -# element in the twist design variable is the twist at the 2nd -# spanwise location -def twist(val, geo): - for i in range(1, nTwists): - geo.rot_z["bodyAxis"].coef[i] = val[i - 1] - - -# angle of attack -def alpha(val, geo): - aoa = val[0] * np.pi / 180.0 - inletU = [float(U0 * np.cos(aoa)), float(U0 * np.sin(aoa)), 0] - DASolver.setOption("primalBC", {"U0": {"variable": "U", "patches": ["inout"], "value": inletU}}) - DASolver.updateDAOption() - - -# select points -pts = DVGeo.getLocalIndex(0) - -# print(pts) -indexList = pts[:, :, :].flatten() -PS = geo_utils.PointSelect("list", indexList) -# shape -DVGeo.addGeoDVLocal("shapey", lower=-1.0, upper=1.0, axis="y", scale=1.0, pointSelect=PS) -daOptions["designVar"]["shapey"] = {"designVarType": "FFD"} -# twist -DVGeo.addGeoDVGlobal("twist", np.zeros(nTwists - 1), twist, lower=-10.0, upper=10.0, scale=1.0) -daOptions["designVar"]["twist"] = {"designVarType": "FFD"} -# alpha -DVGeo.addGeoDVGlobal("alpha", [alpha0], alpha, lower=0.0, upper=10.0, scale=1.0) -daOptions["designVar"]["alpha"] = {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "y"} - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -# NOTE: the LE and TE lists are not parallel lines anymore, these two lists define lines that -# are close to the leading and trailing edges while being completely within the wing surface -leList = [[0.01, 0.0, 1e-3], [0.01, 0.0, 0.63]] -teList = [[0.235, 0.0, 1e-3], [0.235, 0.0, 0.63]] - -# volume constraint -DVCon.addVolumeConstraint(leList, teList, nSpan=10, nChord=10, lower=1.0, upper=3, scaled=True) - -# thickness constraint -DVCon.addThicknessConstraints2D(leList, teList, nSpan=10, nChord=10, lower=0.8, upper=3.0, scaled=True) - -# Le/Te constraints -DVCon.addLeTeConstraints(0, "iLow") -DVCon.addLeTeConstraints(0, "iHigh") - -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - alpha4CLTarget = optFuncs.solveCL(CL_target, "alpha", "CL") - alpha([alpha4CLTarget], None) - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - # Add objective - optProb.addObj("CD", scale=1) - # Add physical constraints - optProb.addCon("CL", lower=CL_target, upper=CL_target, scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "runForwardAD": - - optFuncs.runForwardAD("shapey", 0) - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - -elif args.task == "deformGeo": - # Import Optimization Values Dictionary - with open("./OptRef_Example.json") as f: - optRef = json.load(f) - - # Import IGES file as geometry object - geo = pyGeo(fileName="./wing.igs", initType="iges") - geo.doConnectivity() - - # Update Design Variables - DVGeo.setDesignVars(optRef) - - # Deform Geometry and Output - DVGeo.updatePyGeo(geo, "iges", "wingNew", nRefU=10, nRefV=10) - + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["patchV"], targets=[CL_target], designVarsComp=[1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/Prowim_Wing_Propeller/system/blockMeshDict b/Prowim_Wing_Propeller/system/blockMeshDict index 7c837f75..d49f2e21 100755 --- a/Prowim_Wing_Propeller/system/blockMeshDict +++ b/Prowim_Wing_Propeller/system/blockMeshDict @@ -14,10 +14,10 @@ FoamFile object blockMeshDict; } -L1 20; -L2 -20; -N 20; -M 10; +L1 12; +L2 -12; +N 8; +M 4; convertToMeters 1; diff --git a/Prowim_Wing_Propeller/system/controlDict b/Prowim_Wing_Propeller/system/controlDict index f0523a90..93533e54 100755 --- a/Prowim_Wing_Propeller/system/controlDict +++ b/Prowim_Wing_Propeller/system/controlDict @@ -18,16 +18,16 @@ FoamFile startFrom startTime; startTime 0; stopAt endTime; -endTime 3000; +endTime 2000; deltaT 1; writeControl timeStep; -writeInterval 3000; +writeInterval 2000; purgeWrite 0; writeFormat ascii; -writePrecision 16; +writePrecision 10; writeCompression on; timeFormat general; -timePrecision 16; +timePrecision 10; runTimeModifiable true; DebugSwitches diff --git a/Prowim_Wing_Propeller/system/createPatchDict b/Prowim_Wing_Propeller/system/createPatchDict index 34b399b0..07922362 100755 --- a/Prowim_Wing_Propeller/system/createPatchDict +++ b/Prowim_Wing_Propeller/system/createPatchDict @@ -19,21 +19,6 @@ pointSync false; // Patches to create. patches ( - { - // Name of new patch - name wing; - - // Dictionary to construct new patch from - patchInfo - { - type wall; - } - - // How to construct: either from 'patches' or 'set' - constructFrom patches; - patches ( "wing_.*" auto0 auto3 ); - } - { // Name of new patch name inout; @@ -46,9 +31,8 @@ patches // How to construct: either from 'patches' or 'set' constructFrom patches; - patches ( "farfield_.*" auto2); + patches ( "farfield_.*"); } - { // Name of new patch name sym; diff --git a/Prowim_Wing_Propeller/system/fvSchemes b/Prowim_Wing_Propeller/system/fvSchemes index 627c1c0a..68080727 100755 --- a/Prowim_Wing_Propeller/system/fvSchemes +++ b/Prowim_Wing_Propeller/system/fvSchemes @@ -58,7 +58,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Prowim_Wing_Propeller/system/snappyHexMeshDict b/Prowim_Wing_Propeller/system/snappyHexMeshDict new file mode 100644 index 00000000..c21567ef --- /dev/null +++ b/Prowim_Wing_Propeller/system/snappyHexMeshDict @@ -0,0 +1,225 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location system; + object snappyHexMeshDict; +} + + castellatedMesh true; + snap true; + addLayers true; + geometry + { + wing_lower.stl + { + type triSurfaceMesh; + name wing_lower; + } + wing_upper.stl + { + type triSurfaceMesh; + name wing_upper; + } + wing_tip.stl + { + type triSurfaceMesh; + name wing_tip; + } + wing_te.stl + { + type triSurfaceMesh; + name wing_te; + } + + propeller + { + type searchableBox; + min (-0.25 -0.25 0.0); + max ( 0.00 0.25 0.8); + } + + wake + { + type searchableBox; + min (-0.3 -0.3 0.0); + max ( 1.0 0.3 0.9); + } + wake1 + { + type searchableBox; + min (-0.5 -0.5 0.0); + max (3.0 0.5 1.5); + + } + + wake2 + { + type searchableBox; + min (-1.0 -0.8 0.0); + max (10.0 0.8 2.0); + + } + } + + castellatedMeshControls + { + features + ( + { + file "wing_lower.eMesh"; + level 11; + } + + { + file "wing_upper.eMesh"; + level 11; + } + + { + file "wing_tip.eMesh"; + level 10; + } + + { + file "wing_te.eMesh"; + level 12; + } + ); + refinementSurfaces + { + wing_upper + { + level ( 9 9 ); + } + + wing_lower + { + level ( 9 9 ); + } + + wing_te + { + level ( 12 12 ); + } + + wing_tip + { + level ( 9 9 ); + } + + } + + refinementRegions + { + + propeller + { + mode inside; + levels ((8 8)); + } + wake + { + mode inside; + levels ((6 6)); + } + wake1 + { + mode inside; + levels ((5 5)); + } + + wake1 + { + mode inside; + levels ((4 4)); + } + } + + locationInMesh ( 5 5 5 ); + maxLocalCells 10000000; + maxGlobalCells 200000000; + minRefinementCells 0; + nCellsBetweenLevels 5; + resolveFeatureAngle 10; + allowFreeStandingZoneFaces true; + planarAngle 30; + maxLoadUnbalance 0.10; + } + + snapControls + { + nSolveIter 50; + nSmoothPatch 3; + tolerance 2.0; + nRelaxIter 5; + nFeatureSnapIter 10; + implicitFeatureSnap false; + explicitFeatureSnap true; + multiRegionFeatureSnap false; + } + + addLayersControls + { + layers + { + "wing.*" + {nSurfaceLayers 4;} + } + + relativeSizes true; + expansionRatio 1.3; + finalLayerThickness 0.5; + minThickness 0.001; + nGrow 0; + featureAngle 180; + slipFeatureAngle 80; + nRelaxIter 5; + nSmoothSurfaceNormals 1; + nSmoothNormals 3; + nSmoothThickness 10; + maxFaceThicknessRatio 0.5; + maxThicknessToMedialRatio 0.3; + minMedialAxisAngle 90; + nBufferCellsNoExtrude 0; + nLayerIter 50; + nRelaxedIter 20; + writeVTK false; + noErrors false; + layerRecovery 1; + growZoneLayers false; + projectGrownUp 0.0; + } + + meshQualityControls + { + maxNonOrtho 60; + maxBoundarySkewness 4; + maxInternalSkewness 4; + maxConcave 80; + minFlatness 0.5; + minVol 1.00E-13; + minTetQuality -1e30; + minArea -1; + minTwist 0.03; + minDeterminant 0.01; + minFaceWeight 0.03; + minVolRatio 0.01; + minTriangleTwist -1; + nSmoothScale 4; + errorReduction 0.75; + relaxed {maxNonOrtho 65; maxBoundarySkewness 5; } + + } + + debug 0; + mergeTolerance 1E-6; + autoBlockMesh false; diff --git a/Prowim_Wing_Propeller/system/surfaceFeatureExtractDict b/Prowim_Wing_Propeller/system/surfaceFeatureExtractDict new file mode 100644 index 00000000..b691e3c8 --- /dev/null +++ b/Prowim_Wing_Propeller/system/surfaceFeatureExtractDict @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object surfaceFeatureExtractDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +wing_upper.stl +{ + extractionMethod extractFromSurface; + includedAngle 150; + geometricTestOnly yes; + intersectionMethod none; + // Tolerance for surface intersections + // tolerance 1e-3; + writeObj no; +} + +wing_lower.stl +{ + extractionMethod extractFromSurface; + includedAngle 150; + geometricTestOnly yes; + intersectionMethod none; + // Tolerance for surface intersections + // tolerance 1e-3; + writeObj no; +} + +wing_tip.stl +{ + extractionMethod extractFromSurface; + includedAngle 150; + geometricTestOnly yes; + intersectionMethod none; + // Tolerance for surface intersections + // tolerance 1e-3; + writeObj no; +} + +wing_te.stl +{ + extractionMethod extractFromSurface; + includedAngle 150; + geometricTestOnly yes; + intersectionMethod none; + // Tolerance for surface intersections + // tolerance 1e-3; + writeObj no; +} diff --git a/RAE2822_Airfoil/0_orig/T b/RAE2822_Airfoil/0_orig/T new file mode 100755 index 00000000..ae3a9095 --- /dev/null +++ b/RAE2822_Airfoil/0_orig/T @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#include "include/freestreamConditions" +dimensions [0 0 0 1 0 0 0]; + +internalField uniform $T; + +boundaryField +{ + "wing.*" + { + type characteristicWallTemperature; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type characteristicFarfieldTemperature; + #include "include/freestreamConditions" + value $internalField; + //type inletOutlet; + //inletValue $internalField; + //value $internalField; + } +} + + +// ************************************************************************* // diff --git a/RAE2822_Airfoil/0_orig/U b/RAE2822_Airfoil/0_orig/U new file mode 100755 index 00000000..5122babe --- /dev/null +++ b/RAE2822_Airfoil/0_orig/U @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "include/freestreamConditions" + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform $U; + +boundaryField +{ + "wing.*" + { + type boundaryCorrectedFixedValue; + value uniform (0 0 0); + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type characteristicFarfieldVelocity; + #include "include/freestreamConditions" + value uniform (0 0 0); + //type inletOutlet; + //inletValue $internalField; + //value $internalField; + } +} + + +// ************************************************************************* // diff --git a/RAE2822_Airfoil/0_orig/alphat b/RAE2822_Airfoil/0_orig/alphat new file mode 100755 index 00000000..fdddca53 --- /dev/null +++ b/RAE2822_Airfoil/0_orig/alphat @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + "wing.*" + { + type boundaryCorrectedFixedValue; + value uniform 0; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/RAE2822_Airfoil/0_orig/include/freestreamConditions b/RAE2822_Airfoil/0_orig/include/freestreamConditions new file mode 100755 index 00000000..9c4419a0 --- /dev/null +++ b/RAE2822_Airfoil/0_orig/include/freestreamConditions @@ -0,0 +1,14 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| | +| HiSA: High Speed Aerodynamic solver | +| Copyright (C) 2014-2017 Johan Heyns - CSIR, South Africa | +| Copyright (C) 2014-2017 Oliver Oxtoby - CSIR, South Africa | +| | +\*---------------------------------------------------------------------------*/ + +U (248 0 0); +p 101325.0; +T 300.0; +#inputMode merge + +// ************************************************************************* // diff --git a/RAE2822_Airfoil/0_orig/nuTilda b/RAE2822_Airfoil/0_orig/nuTilda new file mode 100755 index 00000000..b6e139bb --- /dev/null +++ b/RAE2822_Airfoil/0_orig/nuTilda @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5e-05; + +boundaryField +{ + "wing.*" + { + type boundaryCorrectedFixedValue; + value uniform 0.0; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/RAE2822_Airfoil/0_orig/nut b/RAE2822_Airfoil/0_orig/nut new file mode 100755 index 00000000..9590a53c --- /dev/null +++ b/RAE2822_Airfoil/0_orig/nut @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + "wing.*" + { + type boundaryCorrectedNutLowReWallFunction; + value uniform 0; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/RAE2822_Airfoil/0_orig/p b/RAE2822_Airfoil/0_orig/p new file mode 100755 index 00000000..0a2fb934 --- /dev/null +++ b/RAE2822_Airfoil/0_orig/p @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#include "include/freestreamConditions" + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform $p; + +boundaryField +{ + "wing.*" + { + type characteristicWallPressure; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type characteristicFarfieldPressure; + #include "include/freestreamConditions" + value $internalField; + + //type outletInlet; + //outletValue $internalField; + //value $internalField; + } +} + + +// ************************************************************************* // diff --git a/RAE2822_Airfoil/Allclean.sh b/RAE2822_Airfoil/Allclean.sh new file mode 100755 index 00000000..8bfb3cd0 --- /dev/null +++ b/RAE2822_Airfoil/Allclean.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf 0 + rm -rf postProcessing + rm -rf constant/extendedFeatureEdgeMesh + rm -rf constant/triSurface + rm -rf constant/polyMesh/ + rm -rf *.bin *.info *.dat *.xyz *.stl *.txt + rm -rf processor* 0.0000* + rm -rf {1..9}* + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/RAE2822_Airfoil/FFD/genFFD.py b/RAE2822_Airfoil/FFD/genFFD.py new file mode 100755 index 00000000..b35e34df --- /dev/null +++ b/RAE2822_Airfoil/FFD/genFFD.py @@ -0,0 +1,99 @@ +import numpy as np +import sys + +def writeFFDFile(fileName,nBlocks,nx,ny,nz,points): + ''' + Take in a set of points and write the plot 3dFile + ''' + + f = open(fileName,'w') + + f.write('%d\n'%nBlocks) + for i in range(nBlocks): + f.write('%d %d %d '%(nx[i],ny[i],nz[i])) + # end + f.write('\n') + for block in range(nBlocks): + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,0]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,1]) + # end + # end + # end + f.write('\n') + + for k in range(nz[block]): + for j in range(ny[block]): + for i in range(nx[block]): + f.write('%f '%points[block][i,j,k,2]) + # end + # end + # end + # end + f.close() + return + +def returnBlockPoints(corners,nx,ny,nz): + ''' + corners needs to be 8 x 3 + ''' + points = np.zeros([nx,ny,nz,3]) + + # points 1 - 4 are the iMin face + # points 5 - 8 are the iMax face + + for idim in range(3): + edge1 = np.linspace(corners[0][idim],corners[4][idim],nx) + edge2 = np.linspace(corners[1][idim],corners[5][idim],nx) + edge3 = np.linspace(corners[2][idim],corners[6][idim],nx) + edge4 = np.linspace(corners[3][idim],corners[7][idim],nx) + + for i in range(nx): + edge5 = np.linspace(edge1[i],edge3[i],ny) + edge6 = np.linspace(edge2[i],edge4[i],ny) + for j in range(ny): + edge7 = np.linspace(edge5[j],edge6[j],nz) + points[i,j,:,idim] = edge7 + # end + # end + # end + + return points + +################ FFD ############## +nBlocks = 1 + +nx = [8] +ny = [2] +nz = [2] + +corners = np.zeros([nBlocks,8,3]) + +corners[0,0,:] = [-0.010,-.0700,0.0] +corners[0,1,:] = [-0.010,-0.0700,0.01] +corners[0,2,:] = [-0.010,0.0700,0.0] +corners[0,3,:] = [-0.010,0.0700,0.01] +corners[0,4,:] = [ 1.01,-.07,0.0] +corners[0,5,:] = [ 1.01,-.07,0.010] +corners[0,6,:] = [ 1.01,0.07,0.0] +corners[0,7,:] = [ 1.01,0.07,0.01] + + +points = [] +for block in range(nBlocks): + points.append(returnBlockPoints(corners[block],nx[block],ny[block],nz[block])) + +#print points +fileName = 'wingFFD.xyz' +writeFFDFile(fileName,nBlocks,nx,ny,nz,points) + diff --git a/RAE2822_Airfoil/FFD/wingFFD.xyz b/RAE2822_Airfoil/FFD/wingFFD.xyz new file mode 100755 index 00000000..26f05584 --- /dev/null +++ b/RAE2822_Airfoil/FFD/wingFFD.xyz @@ -0,0 +1,5 @@ +1 +8 2 2 +-0.010000 0.135714 0.281429 0.427143 0.572857 0.718571 0.864286 1.010000 -0.010000 0.135714 0.281429 0.427143 0.572857 0.718571 0.864286 1.010000 -0.010000 0.135714 0.281429 0.427143 0.572857 0.718571 0.864286 1.010000 -0.010000 0.135714 0.281429 0.427143 0.572857 0.718571 0.864286 1.010000 +-0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 -0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 0.070000 +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 \ No newline at end of file diff --git a/RAE2822_Airfoil/constant/thermophysicalProperties b/RAE2822_Airfoil/constant/thermophysicalProperties new file mode 100755 index 00000000..c4a3e4c5 --- /dev/null +++ b/RAE2822_Airfoil/constant/thermophysicalProperties @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| | +| HiSA: High Speed Aerodynamic solver | +| Copyright (C) 2014-2017 Johan Heyns - CSIR, South Africa | +| Copyright (C) 2014-2017 Oliver Oxtoby - CSIR, South Africa | +| | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type hePsiThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState perfectGas; + specie specie; + energy sensibleInternalEnergy; +} + + +mixture +{ + specie + { + nMoles 1; + molWeight 28.966; + } + thermodynamics + { + Cp 1005; + Hf 0; + } + transport + { + mu 1.8e-5; + Pr 0.700000; + TRef 300.000000; + } +} + +// ************************************************************************* // diff --git a/RAE2822_Airfoil/constant/turbulenceProperties b/RAE2822_Airfoil/constant/turbulenceProperties new file mode 100755 index 00000000..9aab251e --- /dev/null +++ b/RAE2822_Airfoil/constant/turbulenceProperties @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| | +| HiSA: High Speed Aerodynamic solver | +| Copyright (C) 2014-2017 Johan Heyns - CSIR, South Africa | +| Copyright (C) 2014-2017 Oliver Oxtoby - CSIR, South Africa | +| | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + RASModel SpalartAllmaras; + + turbulence on; + + printCoeffs on; +Prt 0.85; +} + + +// ************************************************************************* // diff --git a/RAE2822_Airfoil/genAirFoilMesh.py b/RAE2822_Airfoil/genAirFoilMesh.py new file mode 100755 index 00000000..4b9bae1d --- /dev/null +++ b/RAE2822_Airfoil/genAirFoilMesh.py @@ -0,0 +1,269 @@ +#!/usr/bin/env python +""" +This script reads a coarse airfoil profile, refine the profile using spline function, +and outputs it as surfaceMesh.xyz. Then it generate a 3D volume mesh with nSpan layers +in the z direction using pyHyp, available at https://github.com/mdolab/pyhyp +Note: the airfoil data should be seperated into PS and SS surfaces, they should start from the +LE and ends at TE. We use blunt TE so truncate the PS and SS data at about 99.8% of the chord. +""" + +from pyhyp import pyHyp +import numpy +from pyspline import * + +########## user input ################ +# 2D +prefix = "./profiles/" +airfoilProfilePS = prefix + "RAE2822PS.profile" +airfoilProfileSS = prefix + "RAE2822SS.profile" +ZSpan = 0.01 # width in the z direction +nSpan = 2 # how many points in z +# PS parameters +dX1PS = 0.0025 # first dx from the LE +Alpha1PS = 1.2 # clustering from the LE +dX2PS = 5e-4 # first dx from the TE +Alpha2PS = 1.2 # clustering from the TE +dXMaxPS = 0.015 # max dx for PS +# SS parameters +dX1SS = 0.0025 # first dx from the LE +Alpha1SS = 1.2 # clustering from the LE +dX2SS = 5e-4 # first dx from the TE +Alpha2SS = 1.2 # clustering from the TE +dXMaxSS = 0.015 # max dx for SS +# TE parameters +NpTE = 5 # number of points for blunt TE +# 3D +NpExtrude = 65 # how many points to extrude for the 3D volume mesh in y +yWall = 1e-5 # first layer mesh length +marchDist = 30.0 # march distance for extruding +########## user input ################ + +# read profiles +fPS = open(airfoilProfilePS, "r") +linesPS = fPS.readlines() +fPS.close() +xPS = [] +yPS = [] +zPS = [] +for line in linesPS: + cols = line.split() + xPS.append(float(cols[0])) + yPS.append(float(cols[1])) + +for i in range(len(xPS)): + zPS.append(0.0) + +fSS = open(airfoilProfileSS, "r") +linesSS = fSS.readlines() +fSS.close() +xSS = [] +ySS = [] +zSS = [] +for line in linesSS: + cols = line.split() + xSS.append(float(cols[0])) + ySS.append(float(cols[1])) +for i in range(len(xSS)): + zSS.append(0.0) + +# ------------PS +# first compute how many stretching points do we need for both ends +tmp = dX1PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch1PS = i + break + else: + tmp = tmp * Alpha1PS +# print (nStretch1PS) +tmp = dX2PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch2PS = i + break + else: + tmp = tmp * Alpha2PS +# print (nStretch2PS) + +# now compute how much length does these two stretching end and the constant portion have +xLPSConst = xPS[-1] +xLPS1 = 0 +xLPS2 = 0 +for i in range(nStretch1PS): + xLPS1 += dX1PS * (Alpha1PS ** i) + xLPSConst -= dX1PS * (Alpha1PS ** i) +for i in range(nStretch2PS): + xLPS2 += dX2PS * (Alpha2PS ** i) + xLPSConst -= dX2PS * (Alpha2PS ** i) +# print xLPS1,xLPS2,xLPSConst +# update dXMax, we just want to make sure these three portion add up +nXConstPS = int(xLPSConst / dXMaxPS) +dXMaxPS = xLPSConst / nXConstPS +# print(dXMaxPS) + +# now we can add these three portions together +xInterpPS = [0] +tmp = dX1PS +for i in range(nStretch1PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp = tmp * Alpha1PS +for i in range(nXConstPS): + xInterpPS.append(xInterpPS[-1] + dXMaxPS) +tmp = dX2PS * (Alpha2PS ** (nStretch2PS - 1)) +for i in range(nStretch2PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp /= Alpha2PS +# print xInterpPS +# Finally, we interpolate the refined stretch stuff +c1PS = Curve(x=xPS, y=yPS, z=zPS, k=3) +XPS = c1PS(xInterpPS) +c2PS = Curve(X=XPS, k=3) +x1PS = c2PS.X[:, 0] +y1PS = c2PS.X[:, 1] + + +# ------------SS +# first compute how many stretching points do we need for both ends +tmp = dX1SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch1SS = i + break + else: + tmp = tmp * Alpha1SS +# print (nStretch1SS) +tmp = dX2SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch2SS = i + break + else: + tmp = tmp * Alpha2SS +# print (nStretch2SS) + +# now compute how much length does these two stretching end and the constant portion have +xLSSConst = xSS[-1] +xLSS1 = 0 +xLSS2 = 0 +for i in range(nStretch1SS): + xLSS1 += dX1SS * (Alpha1SS ** i) + xLSSConst -= dX1SS * (Alpha1SS ** i) +for i in range(nStretch2SS): + xLSS2 += dX2SS * (Alpha2SS ** i) + xLSSConst -= dX2SS * (Alpha2SS ** i) +# print xLSS1,xLSS2,xLSSConst +# update dXMax, we just want to make sure these three portion add up +nXConstSS = int(xLSSConst / dXMaxSS) +dXMaxSS = xLSSConst / nXConstSS +# print(dXMaxSS) + +# now we can add these three portions together +xInterpSS = [0] +tmp = dX1SS +for i in range(nStretch1SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp = tmp * Alpha1SS +for i in range(nXConstSS): + xInterpSS.append(xInterpSS[-1] + dXMaxSS) +tmp = dX2SS * (Alpha2SS ** (nStretch2SS - 1)) +for i in range(nStretch2SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp /= Alpha2SS +# print xInterpSS +# Finally, we interpolate the refined stretch stuff +c1SS = Curve(x=xSS, y=ySS, z=zSS, k=3) +XSS = c1SS(xInterpSS) +c2SS = Curve(X=XSS, k=3) +x1SS = c2SS.X[:, 0] +y1SS = c2SS.X[:, 1] + +# Since the TE is open we need to close it. Close it multiple linear segments. +delta_y = numpy.linspace(y1PS[-1], y1SS[-1], NpTE, "d") +delta_y = delta_y[1:] +delta_x = numpy.ones_like(delta_y, "d") +for i in range(len(delta_x)): + delta_x[i] = x1SS[-1] + +x1SS_Flip = x1SS[::-1] # reverse the array #numpy.flip(x1SS,axis=0) +xAll = numpy.append(x1SS_Flip, x1PS[1:]) +xAll = numpy.append(xAll, delta_x) + +y1SS_Flip = y1SS[::-1] # reverse the array # numpy.flip(y1SS,axis=0) +yAll = numpy.append(y1SS_Flip, y1PS[1:]) +yAll = numpy.append(yAll, delta_y) + + +# print mesh statistics +print("nPoints for PS: ", nStretch1PS + nStretch2PS + nXConstPS) +print("nPoints for SS: ", nStretch1SS + nStretch2SS + nXConstSS) +print("nPoints for TE: ", NpTE) +print("nPoints Total: ", nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE) +print( + "Mesh cells: ", + (nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE - 1) + * (NpExtrude - 1) + * (nSpan - 1), +) + +# plt.plot(xPS,yPS,'-k',linewidth=1) +# plt.plot(xAll,yAll,'ro',markersize=2) +# plt.plot(xSS,ySS,'-k',linewidth=1) +# plt.gca().set_aspect('equal', adjustable='box') +# plt.show() +# plt.savefig('figure.png',bbox_inches='tight') # save the figure to file +# plt.close() # close the figure + + +# Write the plot3d input file: +f = open("surfaceMesh.xyz", "w") +f.write("1\n") +f.write("%d %d %d\n" % (len(xAll), nSpan, 1)) +for iDim in range(3): + for z in numpy.linspace(0.0, ZSpan, nSpan): + for i in range(len(xAll)): + if iDim == 0: + f.write("%20.16f\n" % xAll[i]) + elif iDim == 1: + f.write("%20.16f\n" % yAll[i]) + else: + f.write("%20.16f\n" % z) +f.close() + +options = { + # --------------------------- + # Input Parameters + # --------------------------- + "inputFile": "surfaceMesh.xyz", + "unattachedEdgesAreSymmetry": False, + "outerFaceBC": "farfield", + "autoConnect": True, + "BC": {1: {"jLow": "zSymm", "jHigh": "zSymm"}}, + "families": "wall", + # --------------------------- + # Grid Parameters + # --------------------------- + "N": NpExtrude, + "s0": yWall, + "marchDist": marchDist, + # --------------------------- + # Pseudo Grid Parameters + # --------------------------- + "ps0": -1.0, + "pGridRatio": -1.0, + "cMax": 1.0, + # --------------------------- + # Smoothing parameters + # --------------------------- + "epsE": 2.0, + "epsI": 4.0, + "theta": 2.0, + "volCoef": 0.20, + "volBlend": 0.0005, + "volSmoothIter": 20, +} + + +hyp = pyHyp(options=options) +hyp.run() +# hyp.writeCGNS('volumeMesh.cgns') +hyp.writePlot3D("volumeMesh.xyz") diff --git a/RAE2822_Airfoil/paraview.foam b/RAE2822_Airfoil/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/RAE2822_Airfoil/preProcessing.sh b/RAE2822_Airfoil/preProcessing.sh new file mode 100755 index 00000000..2d4744c0 --- /dev/null +++ b/RAE2822_Airfoil/preProcessing.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# pre-processing + +# generate mesh +echo "Generating mesh.." +python genAirFoilMesh.py &> logMeshGeneration.txt +plot3dToFoam -noBlank volumeMesh.xyz >> logMeshGeneration.txt +autoPatch 45 -overwrite >> logMeshGeneration.txt +createPatch -overwrite >> logMeshGeneration.txt +renumberMesh -overwrite >> logMeshGeneration.txt +echo "Generating mesh.. Done!" + +# copy initial and boundary condition files +cp -r 0_orig 0 diff --git a/RAE2822_Airfoil/profiles/RAE2822PS.profile b/RAE2822_Airfoil/profiles/RAE2822PS.profile new file mode 100755 index 00000000..bddfd795 --- /dev/null +++ b/RAE2822_Airfoil/profiles/RAE2822PS.profile @@ -0,0 +1,63 @@ + 0.000000 0.000000 + 0.000602 -.003160 + 0.002408 -.006308 + 0.005412 -.009443 + 0.009607 -.012559 + 0.014984 -.015649 + 0.021530 -.018707 + 0.029228 -.021722 + 0.038060 -.024685 + 0.048005 -.027586 + 0.059039 -.030416 + 0.071136 -.033170 + 0.084265 -.035843 + 0.098396 -.038431 + 0.113495 -.040929 + 0.129524 -.043326 + 0.146447 -.045610 + 0.164221 -.047773 + 0.182803 -.049805 + 0.202150 -.051694 + 0.222215 -.053427 + 0.242949 -.054994 + 0.264302 -.056376 + 0.286222 -.057547 + 0.308658 -.058459 + 0.331555 -.059046 + 0.354858 -.059236 + 0.378510 -.058974 + 0.402455 -.058224 + 0.426635 -.056979 + 0.450991 -.055257 + 0.475466 -.053099 + 0.500000 -.050563 + 0.524534 -.047719 + 0.549009 -.044642 + 0.573365 -.041397 + 0.597545 -.038043 + 0.621490 -.034631 + 0.645142 -.031207 + 0.668445 -.027814 + 0.691342 -.024495 + 0.713778 -.021289 + 0.735698 -.018232 + 0.757051 -.015357 + 0.777785 -.012690 + 0.797850 -.010244 + 0.817197 -.008027 + 0.835779 -.006048 + 0.853553 -.004314 + 0.870476 -.002829 + 0.886505 -.001592 + 0.901604 -.000600 + 0.915735 0.000157 + 0.928864 0.000694 + 0.940961 0.001033 + 0.951995 0.001197 + 0.961940 0.001212 + 0.970772 0.001112 + 0.978470 0.000935 + 0.985016 0.000719 + 0.990393 0.000497 + 0.994588 0.000296 + 0.997592 0.000137 \ No newline at end of file diff --git a/RAE2822_Airfoil/profiles/RAE2822SS.profile b/RAE2822_Airfoil/profiles/RAE2822SS.profile new file mode 100755 index 00000000..bc472c99 --- /dev/null +++ b/RAE2822_Airfoil/profiles/RAE2822SS.profile @@ -0,0 +1,63 @@ + 0.000000 0.000000 + 0.000602 0.003165 + 0.002408 0.006306 + 0.005412 0.009416 + 0.009607 0.012480 + 0.014984 0.015489 + 0.021530 0.018441 + 0.029228 0.021348 + 0.038060 0.024219 + 0.048005 0.027062 + 0.059039 0.029874 + 0.071136 0.032644 + 0.084265 0.035360 + 0.098396 0.038011 + 0.113495 0.040585 + 0.129524 0.043071 + 0.146447 0.045457 + 0.164221 0.047729 + 0.182803 0.049874 + 0.202150 0.051885 + 0.222215 0.053753 + 0.242949 0.055470 + 0.264302 0.057026 + 0.286222 0.058414 + 0.308658 0.059629 + 0.331555 0.060660 + 0.354858 0.061497 + 0.378510 0.062133 + 0.402455 0.062562 + 0.426635 0.062779 + 0.450991 0.062774 + 0.475466 0.062530 + 0.500000 0.062029 + 0.524534 0.061254 + 0.549009 0.060194 + 0.573365 0.058845 + 0.597545 0.057218 + 0.621490 0.055344 + 0.645142 0.053258 + 0.668445 0.050993 + 0.691342 0.048575 + 0.713778 0.046029 + 0.735698 0.043377 + 0.757051 0.040641 + 0.777785 0.037847 + 0.797850 0.035017 + 0.817197 0.032176 + 0.835779 0.029347 + 0.853553 0.026554 + 0.870476 0.023817 + 0.886505 0.021153 + 0.901604 0.018580 + 0.915735 0.016113 + 0.928864 0.013769 + 0.940961 0.011562 + 0.951995 0.009508 + 0.961940 0.007622 + 0.970772 0.005915 + 0.978470 0.004401 + 0.985016 0.003092 + 0.990393 0.002001 + 0.994588 0.001137 + 0.997592 0.000510 \ No newline at end of file diff --git a/RAE2822_Airfoil/runScript.py b/RAE2822_Airfoil/runScript.py new file mode 100755 index 00000000..af0db005 --- /dev/null +++ b/RAE2822_Airfoil/runScript.py @@ -0,0 +1,266 @@ +#!/usr/bin/env python +""" +DAFoam run script for the RAE2822 airfoil at transonic conditions +""" + +# ============================================================================= +# Imports +# ============================================================================= +import os +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= +U0 = 248.0 +p0 = 101325.0 +T0 = 300.0 +nuTilda0 = 4.5e-5 +CL_target = 0.7 +twist0 = 2.52517169 +A0 = 0.01 +# rho is used for normalizing CD and CL +rho0 = p0 / T0 / 287 + +# Input parameters for DAFoam +daOptions = { + "designSurfaces": ["wing"], + "solverName": "DAHisaFoam", + # "primalInitCondition": {"U": [Ux, Uy, 0.0], "p": p0, "T": T0}, + # "primalBC": { + # "U0": {"variable": "U", "patches": ["inout"], "value": [Ux, Uy, 0.0]}, + # "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + # "T0": {"variable": "T", "patches": ["inout"], "value": [T0]}, + # "useWallFunction": True, + # }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "fixedDirection", + "direction": [0.0, 1.0, 0.0], + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": { + "gmresRelTol": 1.0e-6, + "pcFillLevel": 1, + "jacMatReOrdering": "natural", + "gmresMaxIters": 2000, + "gmresRestart": 2000, + }, + "normalizeStates": { + "U": U0, + "p": p0, + "T": T0, + "nuTilda": nuTilda0 * 10.0, + }, + "checkMeshThreshold": {"maxNonOrth": 70.0, "maxSkewness": 6.0, "maxAspectRatio": 5000.0}, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + }, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + "useRotations": False, + # point and normal for the symmetry plane + "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.01], [0.0, 0.0, 1.0]]], +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/wingFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the scenario1 + # scenario group + self.connect("geometry.x_aero0", "scenario1.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # Create reference axis for the twist variable + self.geometry.nom_addRefAxis(name="wingAxis", xFraction=0.25, alignIndex="k") + + # use the shape function to define shape variables for 2D airfoil + pts = self.geometry.DVGeo.getLocalIndex(0) + dir_y = np.array([0.0, 1.0, 0.0]) + shapes = [] + for i in range(1, pts.shape[0] - 1): + for j in range(pts.shape[1]): + # k=0 and k=1 move together to ensure symmetry + shapes.append({pts[i, j, 0]: dir_y, pts[i, j, 1]: dir_y}) + # LE/TE shape, the j=0 and j=1 move in opposite directions so that + # the LE/TE are fixed + for i in [0, pts.shape[0] - 1]: + shapes.append({pts[i, 0, 0]: dir_y, pts[i, 0, 1]: dir_y, pts[i, 1, 0]: -dir_y, pts[i, 1, 1]: -dir_y}) + self.geometry.nom_addShapeFunctionDV(dvName="shape", shapes=shapes) + + # Set up global design variables. We dont change the root twist + def twist(val, geo): + for i in range(2): + geo.rot_z["wingAxis"].coef[i] = -val[0] + + self.geometry.nom_addGlobalDV(dvName="twist", value=np.ones(1) * twist0, func=twist) + + # setup the volume and thickness constraints + leList = [[1e-3, 0.0, 1e-3], [1e-3, 0.0, 0.01 - 1e-3]] + teList = [[0.961, 0.005, 1e-3], [0.961, 0.005, 0.01 - 1e-3]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=2, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=2, nChord=10) + self.geometry.nom_addLERadiusConstraints("rcon", leList, 2, [0.0, 1.0, 0.0], [-1.0, 0.0, 0.0]) + # NOTE: we no longer need to define the sym and LE/TE constraints + # because these constraints are defined in the above shape function + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * len(shapes))) + self.dvs.add_output("twist", val=np.ones(1) * twist0) + + # manually connect the dvs output to the geometry and scenario1 + + self.connect("shape", "geometry.shape") + self.connect("twist", "geometry.twist") + + # define the design variables to the top level + self.add_design_var("shape", lower=-1.0, upper=1.0, scaler=10.0) + self.add_design_var("twist", lower=-10.0, upper=10.0, scaler=0.1) + + # add objective and constraints to the top level + self.add_objective("scenario1.aero_post.CD", scaler=1.0) + self.add_constraint("scenario1.aero_post.CL", equals=CL_target, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.5, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=1.0, scaler=1.0) + self.add_constraint("geometry.rcon", lower=0.8, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # solve CL + optFuncs.findFeasibleDesign(["scenario1.aero_post.CL"], ["twist"], targets=[CL_target], designVarsComp=[0], epsFD=[1e-1]) + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/RAE2822_Airfoil/system/controlDict b/RAE2822_Airfoil/system/controlDict new file mode 100755 index 00000000..9ee733ea --- /dev/null +++ b/RAE2822_Airfoil/system/controlDict @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +application hisa; +startFrom latestTime; +startTime 0; +stopAt endTime; +endTime 8000; +deltaT 1; +writeControl timeStep; +writeInterval 8000; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable false; +HiSAPrint 0; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/RAE2822_Airfoil/system/createPatchDict b/RAE2822_Airfoil/system/createPatchDict new file mode 100755 index 00000000..5e2c4077 --- /dev/null +++ b/RAE2822_Airfoil/system/createPatchDict @@ -0,0 +1,82 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +pointSync false; + +// Patches to create. +patches +( + { + // Name of new patch + name symmetry1; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto0); + } + { + // Name of new patch + name symmetry2; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto1); + } + + { + // Name of new patch + name wing; + + // Dictionary to construct new patch from + patchInfo + { + type wall; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto2 auto3); + } + + { + // Name of new patch + name inout; + + // Dictionary to construct new patch from + patchInfo + { + type patch; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto4); + } +); + +// ************************************************************************* // diff --git a/RAE2822_Airfoil/system/decomposeParDict b/RAE2822_Airfoil/system/decomposeParDict new file mode 100755 index 00000000..a378d83d --- /dev/null +++ b/RAE2822_Airfoil/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 8; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/RAE2822_Airfoil/system/fvSchemes b/RAE2822_Airfoil/system/fvSchemes new file mode 100755 index 00000000..f39c0a30 --- /dev/null +++ b/RAE2822_Airfoil/system/fvSchemes @@ -0,0 +1,69 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| | +| HiSA: High Speed Aerodynamic solver | +| Copyright (C) 2014-2017 Johan Heyns - CSIR, South Africa | +| Copyright (C) 2014-2017 Oliver Oxtoby - CSIR, South Africa | +| | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +fluxScheme JST; // AUSMPlusUp; +jst_k2 0.5; +jst_k4 0.02; +sensorName pressure; +lowMachAusm false; + +ddtSchemes +{ + default bounded dualTime rPseudoDeltaT steadyState; +} + +gradSchemes +{ + default faceLeastSquares linear; + grad(nuTilda) Gauss linear; +} + +divSchemes +{ + default none; + div(tauMC) Gauss linear; + div(phi,nuTilda) bounded Gauss upwind; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; + laplacian(muEff,U) Gauss linear compact; + laplacian(alphaEff,e) Gauss linear compact; +} + +interpolate wVanLeer; +interpolationSchemes +{ + default linear; + reconstruct(rho) $interpolate; + reconstruct(U) $interpolate; + reconstruct(T) $interpolate; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/RAE2822_Airfoil/system/fvSolution b/RAE2822_Airfoil/system/fvSolution new file mode 100755 index 00000000..8b726584 --- /dev/null +++ b/RAE2822_Airfoil/system/fvSolution @@ -0,0 +1,74 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| | +| HiSA: High Speed Aerodynamic solver | +| Copyright (C) 2014-2017 Johan Heyns - CSIR, South Africa | +| Copyright (C) 2014-2017 Oliver Oxtoby - CSIR, South Africa | +| | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + nuTilda + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 0; + relTol 1e-1; + minIter 1; + } + + yPsi + { + solver GAMG; + smoother GaussSeidel; + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + tolerance 0; + relTol 0; + } +} + +relaxationFactors +{ + equations + { + nuTilda 0.5; + yWall 0.7; + } +} + +flowSolver +{ + solver GMRES; + GMRES + { + inviscidJacobian LaxFriedrich; + viscousJacobian laplacian; + preconditioner LUSGS; + + maxIter 20; + nKrylov 8; + solverTolRel 1e-1 (1e-1 1e-1 1e-1) 1e-1; + } +} + +pseudoTime +{ + pseudoTol 1e-8 (1e-8 1e-8 1e-8) 1e-8; + pseudoCoNum 1.0; + pseudoCoNumMax 10.0; + localTimestepping true; +} + +// ************************************************************************* // diff --git a/README.md b/README.md index fc70952a..ba1934e8 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # DAFoam Tutorials -[![API Test](https://github.com/DAFoam/tutorials/actions/workflows/reg_tests.yml/badge.svg)](https://github.com/DAFoam/tutorials/actions/workflows/reg_tests.yml) +[![api_tests](https://github.com/DAFoam/tutorials/actions/workflows/api_tests.yml/badge.svg)](https://github.com/DAFoam/tutorials/actions/workflows/api_tests.yml) This tutorial uses the latest version of [DAFoam](https://github.com/mdolab/dafoam) diff --git a/Ramp/steady/predict/Allclean.sh b/Ramp/steady/predict/Allclean.sh new file mode 100755 index 00000000..07c025aa --- /dev/null +++ b/Ramp/steady/predict/Allclean.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf */processor* + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/Ramp/steady/predict/Allrun.sh b/Ramp/steady/predict/Allrun.sh new file mode 100755 index 00000000..1d8ae23e --- /dev/null +++ b/Ramp/steady/predict/Allrun.sh @@ -0,0 +1,6 @@ +#!/bin/bash +cd baseline && mpirun -np 2 python runScript.py && cd .. +cd reference && mpirun -np 2 python runScript.py && cd .. +cd trained && mpirun -np 2 python runScript.py && cd .. + + diff --git a/Ramp/steady/predict/baseline/0/U b/Ramp/steady/predict/baseline/0/U new file mode 100755 index 00000000..49255e15 --- /dev/null +++ b/Ramp/steady/predict/baseline/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform (5 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (5 0 0); + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + "(bot)" + { + type noSlip; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/baseline/0/betaFINuTildaData b/Ramp/steady/predict/baseline/0/betaFINuTildaData new file mode 100644 index 00000000..5ec56390 --- /dev/null +++ b/Ramp/steady/predict/baseline/0/betaFINuTildaData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFINuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + bot + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + top + { + type symmetry; + } + sym1 + { + type symmetry; + } + sym2 + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/baseline/0/k b/Ramp/steady/predict/baseline/0/k new file mode 100755 index 00000000..7dd4e274 --- /dev/null +++ b/Ramp/steady/predict/baseline/0/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type fixedValue; + value uniform 1e-14; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/baseline/0/nuTilda b/Ramp/steady/predict/baseline/0/nuTilda new file mode 100755 index 00000000..2eb9b19f --- /dev/null +++ b/Ramp/steady/predict/baseline/0/nuTilda @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5e-04; + +boundaryField +{ + "(bot)" + { + type fixedValue; + value uniform 1e-14; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/baseline/0/nut b/Ramp/steady/predict/baseline/0/nut new file mode 100755 index 00000000..95b5ca1e --- /dev/null +++ b/Ramp/steady/predict/baseline/0/nut @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5E-4; + +boundaryField +{ + "(bot)" + { + type nutLowReWallFunction; + value $internalField; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/baseline/0/omega b/Ramp/steady/predict/baseline/0/omega new file mode 100755 index 00000000..44418b36 --- /dev/null +++ b/Ramp/steady/predict/baseline/0/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 30; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type omegaWallFunction; + value $internalField; + blended true; + } + +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/baseline/0/p b/Ramp/steady/predict/baseline/0/p new file mode 100755 index 00000000..0cf3dd94 --- /dev/null +++ b/Ramp/steady/predict/baseline/0/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 0; + } + "(sym.*|top)" + { + type symmetry; + } + + "(bot)" + { + type zeroGradient; + } + + +} + +// ************************************************************************* // diff --git a/Ramp/steady/predict/baseline/constant/polyMesh/boundary b/Ramp/steady/predict/baseline/constant/polyMesh/boundary new file mode 100644 index 00000000..709e6217 --- /dev/null +++ b/Ramp/steady/predict/baseline/constant/polyMesh/boundary @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + inlet + { + type patch; + nFaces 50; + startFace 9850; + } + bot + { + type wall; + inGroups 1(wall); + nFaces 100; + startFace 9900; + } + outlet + { + type patch; + nFaces 50; + startFace 10000; + } + top + { + type symmetry; + inGroups 1(symmetry); + nFaces 100; + startFace 10050; + } + sym1 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 10150; + } + sym2 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 15150; + } +) + +// ************************************************************************* // diff --git a/Ramp/steady/predict/baseline/constant/polyMesh/faces.gz b/Ramp/steady/predict/baseline/constant/polyMesh/faces.gz new file mode 100644 index 00000000..1f70ec0e Binary files /dev/null and b/Ramp/steady/predict/baseline/constant/polyMesh/faces.gz differ diff --git a/Ramp/steady/predict/baseline/constant/polyMesh/neighbour.gz b/Ramp/steady/predict/baseline/constant/polyMesh/neighbour.gz new file mode 100644 index 00000000..fdbe7109 Binary files /dev/null and b/Ramp/steady/predict/baseline/constant/polyMesh/neighbour.gz differ diff --git a/Ramp/steady/predict/baseline/constant/polyMesh/owner.gz b/Ramp/steady/predict/baseline/constant/polyMesh/owner.gz new file mode 100644 index 00000000..7fa34392 Binary files /dev/null and b/Ramp/steady/predict/baseline/constant/polyMesh/owner.gz differ diff --git a/Ramp/steady/predict/baseline/constant/polyMesh/points.gz b/Ramp/steady/predict/baseline/constant/polyMesh/points.gz new file mode 100644 index 00000000..89e10ea4 Binary files /dev/null and b/Ramp/steady/predict/baseline/constant/polyMesh/points.gz differ diff --git a/Ramp/steady/predict/baseline/constant/transportProperties b/Ramp/steady/predict/baseline/constant/transportProperties new file mode 100755 index 00000000..76d23b9c --- /dev/null +++ b/Ramp/steady/predict/baseline/constant/transportProperties @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1e-05; + +Pr 0.7; + +// ************************************************************************* // diff --git a/Ramp/steady/predict/baseline/constant/turbulenceProperties b/Ramp/steady/predict/baseline/constant/turbulenceProperties new file mode 100755 index 00000000..57bfc6ee --- /dev/null +++ b/Ramp/steady/predict/baseline/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmega; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/predict/baseline/paraview.foam b/Ramp/steady/predict/baseline/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Ramp/steady/predict/baseline/runScript.py b/Ramp/steady/predict/baseline/runScript.py new file mode 100755 index 00000000..802f09f2 --- /dev/null +++ b/Ramp/steady/predict/baseline/runScript.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +from mpi4py import MPI +from dafoam import PYDAFOAM, optFuncs + +gcomm = MPI.COMM_WORLD + +U0 = 15.0 + +# Set the parameters for optimization +daOptions = { + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-12, + "primalMinResTolDiff": 1e10, + "primalBC": {"U0": {"variable": "U", "patches": ["inlet"], "value": [U0, 0, 0]}, "useWallFunction": True}, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + }, + }, +} + +DASolver = PYDAFOAM(options=daOptions, comm=gcomm) +DASolver() diff --git a/Ramp/steady/predict/baseline/system/controlDict b/Ramp/steady/predict/baseline/system/controlDict new file mode 100755 index 00000000..53670340 --- /dev/null +++ b/Ramp/steady/predict/baseline/system/controlDict @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 2000; + +deltaT 1; + +writeControl timeStep; + +writeInterval 2000; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/steady/predict/baseline/system/decomposeParDict b/Ramp/steady/predict/baseline/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/Ramp/steady/predict/baseline/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/predict/baseline/system/fvSchemes b/Ramp/steady/predict/baseline/system/fvSchemes new file mode 100755 index 00000000..a08ac728 --- /dev/null +++ b/Ramp/steady/predict/baseline/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/Ramp/steady/predict/baseline/system/fvSolution b/Ramp/steady/predict/baseline/system/fvSolution new file mode 100755 index 00000000..7b6bd8f7 --- /dev/null +++ b/Ramp/steady/predict/baseline/system/fvSolution @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.1; + smoother GaussSeidel; + maxIter 50; + minIter 1; + } + + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 0; + relTol 0.1; + maxIter 50; + minIter 1; + } + +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/0/U b/Ramp/steady/predict/reference/0/U new file mode 100755 index 00000000..49255e15 --- /dev/null +++ b/Ramp/steady/predict/reference/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform (5 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (5 0 0); + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + "(bot)" + { + type noSlip; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/0/betaFINuTildaData b/Ramp/steady/predict/reference/0/betaFINuTildaData new file mode 100644 index 00000000..5ec56390 --- /dev/null +++ b/Ramp/steady/predict/reference/0/betaFINuTildaData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFINuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + bot + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + top + { + type symmetry; + } + sym1 + { + type symmetry; + } + sym2 + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/0/k b/Ramp/steady/predict/reference/0/k new file mode 100755 index 00000000..7dd4e274 --- /dev/null +++ b/Ramp/steady/predict/reference/0/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type fixedValue; + value uniform 1e-14; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/0/nuTilda b/Ramp/steady/predict/reference/0/nuTilda new file mode 100755 index 00000000..2eb9b19f --- /dev/null +++ b/Ramp/steady/predict/reference/0/nuTilda @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5e-04; + +boundaryField +{ + "(bot)" + { + type fixedValue; + value uniform 1e-14; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/0/nut b/Ramp/steady/predict/reference/0/nut new file mode 100755 index 00000000..95b5ca1e --- /dev/null +++ b/Ramp/steady/predict/reference/0/nut @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5E-4; + +boundaryField +{ + "(bot)" + { + type nutLowReWallFunction; + value $internalField; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/0/omega b/Ramp/steady/predict/reference/0/omega new file mode 100755 index 00000000..44418b36 --- /dev/null +++ b/Ramp/steady/predict/reference/0/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 30; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type omegaWallFunction; + value $internalField; + blended true; + } + +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/0/p b/Ramp/steady/predict/reference/0/p new file mode 100755 index 00000000..0cf3dd94 --- /dev/null +++ b/Ramp/steady/predict/reference/0/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 0; + } + "(sym.*|top)" + { + type symmetry; + } + + "(bot)" + { + type zeroGradient; + } + + +} + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/constant/polyMesh/boundary b/Ramp/steady/predict/reference/constant/polyMesh/boundary new file mode 100644 index 00000000..709e6217 --- /dev/null +++ b/Ramp/steady/predict/reference/constant/polyMesh/boundary @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + inlet + { + type patch; + nFaces 50; + startFace 9850; + } + bot + { + type wall; + inGroups 1(wall); + nFaces 100; + startFace 9900; + } + outlet + { + type patch; + nFaces 50; + startFace 10000; + } + top + { + type symmetry; + inGroups 1(symmetry); + nFaces 100; + startFace 10050; + } + sym1 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 10150; + } + sym2 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 15150; + } +) + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/constant/polyMesh/faces.gz b/Ramp/steady/predict/reference/constant/polyMesh/faces.gz new file mode 100644 index 00000000..1f70ec0e Binary files /dev/null and b/Ramp/steady/predict/reference/constant/polyMesh/faces.gz differ diff --git a/Ramp/steady/predict/reference/constant/polyMesh/neighbour.gz b/Ramp/steady/predict/reference/constant/polyMesh/neighbour.gz new file mode 100644 index 00000000..fdbe7109 Binary files /dev/null and b/Ramp/steady/predict/reference/constant/polyMesh/neighbour.gz differ diff --git a/Ramp/steady/predict/reference/constant/polyMesh/owner.gz b/Ramp/steady/predict/reference/constant/polyMesh/owner.gz new file mode 100644 index 00000000..7fa34392 Binary files /dev/null and b/Ramp/steady/predict/reference/constant/polyMesh/owner.gz differ diff --git a/Ramp/steady/predict/reference/constant/polyMesh/points.gz b/Ramp/steady/predict/reference/constant/polyMesh/points.gz new file mode 100644 index 00000000..89e10ea4 Binary files /dev/null and b/Ramp/steady/predict/reference/constant/polyMesh/points.gz differ diff --git a/Ramp/steady/predict/reference/constant/transportProperties b/Ramp/steady/predict/reference/constant/transportProperties new file mode 100755 index 00000000..76d23b9c --- /dev/null +++ b/Ramp/steady/predict/reference/constant/transportProperties @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1e-05; + +Pr 0.7; + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/constant/turbulenceProperties b/Ramp/steady/predict/reference/constant/turbulenceProperties new file mode 100755 index 00000000..421431b1 --- /dev/null +++ b/Ramp/steady/predict/reference/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmegaSST; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/predict/reference/paraview.foam b/Ramp/steady/predict/reference/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Ramp/steady/predict/reference/runScript.py b/Ramp/steady/predict/reference/runScript.py new file mode 100755 index 00000000..802f09f2 --- /dev/null +++ b/Ramp/steady/predict/reference/runScript.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +from mpi4py import MPI +from dafoam import PYDAFOAM, optFuncs + +gcomm = MPI.COMM_WORLD + +U0 = 15.0 + +# Set the parameters for optimization +daOptions = { + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-12, + "primalMinResTolDiff": 1e10, + "primalBC": {"U0": {"variable": "U", "patches": ["inlet"], "value": [U0, 0, 0]}, "useWallFunction": True}, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + }, + }, +} + +DASolver = PYDAFOAM(options=daOptions, comm=gcomm) +DASolver() diff --git a/Ramp/steady/predict/reference/system/controlDict b/Ramp/steady/predict/reference/system/controlDict new file mode 100755 index 00000000..53670340 --- /dev/null +++ b/Ramp/steady/predict/reference/system/controlDict @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 2000; + +deltaT 1; + +writeControl timeStep; + +writeInterval 2000; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/system/decomposeParDict b/Ramp/steady/predict/reference/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/Ramp/steady/predict/reference/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/predict/reference/system/fvSchemes b/Ramp/steady/predict/reference/system/fvSchemes new file mode 100755 index 00000000..a08ac728 --- /dev/null +++ b/Ramp/steady/predict/reference/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/Ramp/steady/predict/reference/system/fvSolution b/Ramp/steady/predict/reference/system/fvSolution new file mode 100755 index 00000000..7b6bd8f7 --- /dev/null +++ b/Ramp/steady/predict/reference/system/fvSolution @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.1; + smoother GaussSeidel; + maxIter 50; + minIter 1; + } + + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 0; + relTol 0.1; + maxIter 50; + minIter 1; + } + +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/0/U b/Ramp/steady/predict/trained/0/U new file mode 100755 index 00000000..49255e15 --- /dev/null +++ b/Ramp/steady/predict/trained/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform (5 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (5 0 0); + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + "(bot)" + { + type noSlip; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/0/betaFINuTildaData b/Ramp/steady/predict/trained/0/betaFINuTildaData new file mode 100644 index 00000000..5ec56390 --- /dev/null +++ b/Ramp/steady/predict/trained/0/betaFINuTildaData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFINuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + bot + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + top + { + type symmetry; + } + sym1 + { + type symmetry; + } + sym2 + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/0/k b/Ramp/steady/predict/trained/0/k new file mode 100755 index 00000000..7dd4e274 --- /dev/null +++ b/Ramp/steady/predict/trained/0/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type fixedValue; + value uniform 1e-14; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/0/nuTilda b/Ramp/steady/predict/trained/0/nuTilda new file mode 100755 index 00000000..2eb9b19f --- /dev/null +++ b/Ramp/steady/predict/trained/0/nuTilda @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5e-04; + +boundaryField +{ + "(bot)" + { + type fixedValue; + value uniform 1e-14; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/0/nut b/Ramp/steady/predict/trained/0/nut new file mode 100755 index 00000000..95b5ca1e --- /dev/null +++ b/Ramp/steady/predict/trained/0/nut @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5E-4; + +boundaryField +{ + "(bot)" + { + type nutLowReWallFunction; + value $internalField; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + +} + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/0/omega b/Ramp/steady/predict/trained/0/omega new file mode 100755 index 00000000..44418b36 --- /dev/null +++ b/Ramp/steady/predict/trained/0/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 30; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type omegaWallFunction; + value $internalField; + blended true; + } + +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/0/p b/Ramp/steady/predict/trained/0/p new file mode 100755 index 00000000..0cf3dd94 --- /dev/null +++ b/Ramp/steady/predict/trained/0/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 0; + } + "(sym.*|top)" + { + type symmetry; + } + + "(bot)" + { + type zeroGradient; + } + + +} + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/constant/polyMesh/boundary b/Ramp/steady/predict/trained/constant/polyMesh/boundary new file mode 100644 index 00000000..709e6217 --- /dev/null +++ b/Ramp/steady/predict/trained/constant/polyMesh/boundary @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + inlet + { + type patch; + nFaces 50; + startFace 9850; + } + bot + { + type wall; + inGroups 1(wall); + nFaces 100; + startFace 9900; + } + outlet + { + type patch; + nFaces 50; + startFace 10000; + } + top + { + type symmetry; + inGroups 1(symmetry); + nFaces 100; + startFace 10050; + } + sym1 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 10150; + } + sym2 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 15150; + } +) + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/constant/polyMesh/faces.gz b/Ramp/steady/predict/trained/constant/polyMesh/faces.gz new file mode 100644 index 00000000..1f70ec0e Binary files /dev/null and b/Ramp/steady/predict/trained/constant/polyMesh/faces.gz differ diff --git a/Ramp/steady/predict/trained/constant/polyMesh/neighbour.gz b/Ramp/steady/predict/trained/constant/polyMesh/neighbour.gz new file mode 100644 index 00000000..fdbe7109 Binary files /dev/null and b/Ramp/steady/predict/trained/constant/polyMesh/neighbour.gz differ diff --git a/Ramp/steady/predict/trained/constant/polyMesh/owner.gz b/Ramp/steady/predict/trained/constant/polyMesh/owner.gz new file mode 100644 index 00000000..7fa34392 Binary files /dev/null and b/Ramp/steady/predict/trained/constant/polyMesh/owner.gz differ diff --git a/Ramp/steady/predict/trained/constant/polyMesh/points.gz b/Ramp/steady/predict/trained/constant/polyMesh/points.gz new file mode 100644 index 00000000..89e10ea4 Binary files /dev/null and b/Ramp/steady/predict/trained/constant/polyMesh/points.gz differ diff --git a/Ramp/steady/predict/trained/constant/transportProperties b/Ramp/steady/predict/trained/constant/transportProperties new file mode 100755 index 00000000..76d23b9c --- /dev/null +++ b/Ramp/steady/predict/trained/constant/transportProperties @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1e-05; + +Pr 0.7; + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/constant/turbulenceProperties b/Ramp/steady/predict/trained/constant/turbulenceProperties new file mode 100755 index 00000000..57bfc6ee --- /dev/null +++ b/Ramp/steady/predict/trained/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmega; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/predict/trained/designVariable.json b/Ramp/steady/predict/trained/designVariable.json new file mode 100644 index 00000000..5bc01786 --- /dev/null +++ b/Ramp/steady/predict/trained/designVariable.json @@ -0,0 +1 @@ +{"parameter1": [0.0010414264954178624, 0.004299656854142048, 0.00205526765759448, 0.0008976636984979747, -0.0015288355644417536, 0.0025258889138631523, -0.0012483995558018079, 0.007835402892684983, 0.009037014839139308, -0.0023313175467071646, 0.00623382326684047, 0.0005777766805387706, 0.0013609127965501487, 0.008752934393246726, -0.008579394421668643, -0.008782474561292164, -0.009595568506549383, 0.006652340273286789, 0.0052494546511970795, 0.007400282580866662, 0.009775719422557094, 0.005983145840919121, -0.0007704126042573476, 0.005610631620189653, -0.007634535793559563, 0.0024357927714687574, -0.007110054515168251, 0.0088933441038086, 0.00021930546989989565, -0.001696114112366814, -0.004095014454879841, 0.0054463545534683255, -0.0008768114833020052, 0.0017339096889001772, -0.009642027068576267, 0.0019079929966599842, 0.0022701204465066013, 0.002338622953972482, 0.008607023853208154, 0.00364958764191375, -0.0035642714904992436, -0.0012118336386597649, 0.003952429882262473, -0.009246666616495118, 0.003357627526299014, 0.0013017732161416794, -0.005672542882131831, -0.007920445478997519, -0.0049551365179675375, -0.00267657900293055, 0.001403938069819731, -0.0012279359716617902, 0.00976747732647417, -0.007959101598640281, -0.005822431966937823, -0.006773681388098576, 0.003062261265906829, -0.004934161262397495, -0.000673759984125812, -0.005111394215614107, -0.005421351949725311, -0.007872612447353567, 0.0034573642650100617, -0.006400774969424151, -0.006101606519742364, -0.0032058680617668106, 0.006456289803373835, -0.008058040396489434, 0.006411878827068894, -0.008061009406170203, 0.010637881127403465, -0.000690047016357357, 0.009797375151117812, 0.0027573996960317663, 0.004759302828026334, -0.008510688382744231, -0.00434375346570562, -0.007595857916754514, -0.003656943276663932, -0.007625329899885675, -0.0025453290317210856, -0.0017762259662829458, -0.008458376620004471, 0.0045024766146241225, 0.0013071508729325318, -0.004025256608234736, 0.00046497866789841535, -0.008121001247888298, 0.0019157727543674518, 0.00858594455727883, -0.003430377838108273, 0.003335686445436126, -0.007364039067130591, 0.004445942169247457, -0.004217710575498066, -0.005732639748473068, 0.0017302614036277088, -0.009597773955196807, 0.006940067989638971, -0.009906082790360357, 0.0035563342326854993, -0.004599830116870818, 0.004703889435377311, 0.009243763814052562, -0.005024900514311145, 0.0015231462505454505, 0.0018408273742468366, 0.0014450537471201964, -0.005538372087101521, 0.009054976660692089, -0.0010574967591782903, 0.006928158293676981, 0.00398953751093063, -0.004051262036214445, 0.0062760002774392455, -0.002069940233728462, 0.007622059410211688, 0.0016254574822247348, 0.00763470303803964, 0.003850615472536443, 0.0043989286154840325, 2.6477492545176903e-05, 0.008865234483912986, 0.002599186189289677, -0.001522865008242951, 0.0018202311543759257, -0.009616199103961184, -0.003968447762308367, 0.0030083437060148374, -0.004198248985944229, 0.002360307626977058, -0.0014246161445331995, -0.00708573380940895, -0.003796478938680286, 0.0013992984969384318, 0.001501322889096977, 0.001803088687293544, 0.0030640617048948277, 0.0030422321917868743, -0.001371596589744744, 0.007931014762940159, -0.0020791535730075956, -0.0012827407541299433, 0.007276482784307678, 0.005509383847656738, 0.004077944291218814, -0.008674454390463094, 0.008085904988930522, 0.004506999704509305, 0.009549343044559028, -0.006627414848694765, 0.00736250917382779, -0.00675013083258919, 0.002759967452969071, -0.006993713472579406, 0.006960162597128728, 0.0054467316461184745, 0.002084629717012043, -0.0018561057543484683, -0.00829593422227145, 0.0039487601069924895, -0.0006838071477969266, 0.005694646419084961, 0.007327637804663507, 0.00976373572946224, 0.0073930423862153235, -0.009765684230250305, -0.0024966133481938626, 0.004599896260738639, -0.006567391327938739, 0.0004209040573438822, -0.008913409990229347, -0.006000037331824038, -0.009629546903884772, 0.005671718547323488, -0.0057563640697589425, -0.0030929542260309485, 0.008873810937570802, 0.0037756955867626497, -0.009363220045417082, -0.006706296112475712, 0.00242957568533977, 0.0015445802392742057, -0.0058130919845788805, 0.00868424008862456, 0.0017011582721564824, 8.047956410792567e-05, 0.0017983759581957778, 0.0039038257107079006, -0.004073584594798482, -0.0018070196707074078, -0.006248031534653672, -0.00588147593570404, 0.008887431825010844, 0.004791026235403253, 0.00027086994777116816, -0.004906431900785178, -0.0049128724867090415, -0.00955931579817779, -0.0005886826065853364, -0.0037638479829876846, 0.0042568213548120765, -0.002444773805058869, -0.006155434168274566, -0.008222143423912143, -0.008655011198871599, 0.0035876689420855524, -0.0009262596775972475, 0.0007315927523935747, 0.00793319945070517, 0.009806750465051434, -0.005662025465231705, 0.003261490775768351, -0.0047335000667743455, -0.009586980589088138, 0.005167577070731724, -0.0035995841783568387, -0.002183811240383757, 0.0017663424499854059, 0.006426020199154034, 0.0027750036168766264, 0.007453025848461838, -0.0045291267413842, 0.005960945747678425, -0.006287238196295311, 0.009411402813021942, 0.0037497641904793728, -0.0056898469423274575, 0.008947411143675388, 0.004617123832687325, -0.004921174258444811, -0.005733756754309989, 0.00036401958718881725, -0.009486751636169419, -0.005850597097399202, -0.0015062846576195993, -0.002516596427728556, -0.0007284848868096242, -0.004447409290447074, 0.0017356884322151387, 0.007277100433802701, -0.0076493449711496474, 0.00034758286869459736, -0.007358639148041218, 0.004337194963663798, -0.002078797117190031, 0.0012296132480827452, -0.00633437877748668, -0.0066026654748887244, 0.00030826277831521334, -0.0028877816792215105, 0.009408407498005995, 0.005576748877809586, 0.004775475595328483, 0.008455100559703593, -0.008673114514741615, 0.0010438745737229242, 0.0016895248217993263, 0.008839168044944236, -0.004629405415284631, -0.0051834173624296905, -0.007371149991401395, -0.010297021353858488, 0.008590393179267387, 0.003112755629820584, 0.005702995678814672, -0.004583851921775263, 0.0006122743437952375, -0.008720929787225964, -0.0007756182072272753, 0.009016125913991058, 0.00753016681823759, -0.003821967635073424, 0.008967768707117735, -0.00536572829664826, 0.008614938536704312, 0.009160787389996955, 0.005984042241461706, 0.0026089688375540224, 0.007875590086447535, -0.003678737956842369, 0.0069788696203729825, 0.0017497477665153343, -0.009124886877100126, -0.0030551303517662477, -0.006758587702792421, 0.009636661140276163, -0.0002245937862339217, 0.001034893671878026, 0.002789452386444516, -0.002628351421719896, -0.00726204087364051, 0.006442342527372065, -0.0063276723950019265, 0.00022636754399694295, -0.005513666119501741, -0.008043103815397865, 0.007243828363790687, 0.009458379217768062, 0.009216687318284966, 0.008131101966327074, 0.005577360626592472, -0.0033371021735228027, -0.00850603257235736, -0.001726949326804697, -0.005355317781398861, -0.007350236406422443, -0.008931458291357048, 0.0045118752669321294, -0.00954150970325172, 0.005411582533019299, -0.0076222090497218365, -0.009023128723837774, -0.008207782771053773, 0.0027629348942727642, -0.005395951838837874, -0.001367388525316127, 0.0007204289050150402, 0.007594067423058993, 0.0045408626554780075, -0.004593440859918628, -0.006922258375984978, -0.008363347855763455, -0.0039680327082002, -0.005456300019013004, -0.00017554754584194813, 0.003665848129914583, 0.0042327562657518405, -0.00432944606945983, -0.002156439279536973, -0.0051279316232747205, 0.005770906086086287, -0.008863250353565362, 0.0037429240768972988, 0.005573916893773372, 0.005331983475412096, -0.004811581514812934, -0.002523698655978234, 0.001751910625564507, -0.004543502821125038, -0.0025829447820274955, -0.0060589101117502235, -0.0008028007925545563, -0.008940465974880686, 0.005995917836850513, -0.008683010613270377, 0.0005991616297342851, -0.003863783806568676, 0.0015508962608992893, 0.00918867679657164, 0.0029114520561740803, -0.00889514869427209, -0.0013919485853921693, 0.00020040987998873482, 0.0007237244451204771, 0.0036278478256722953, -0.004447880177619639, -0.007422762017217185, -0.002146498148178357, 0.009128175835428635, -0.006257415746591903, 0.008079680193547342, 0.0008761164962516388, -0.000861832510583278, 0.007640745004028414, -0.0008279206026016971, 0.0044835571944173815, -0.002194081034672289, 0.008080877527897727, 0.0038004705775831348, 0.003992437148585228, -0.003445625148678173, 0.004822519314628759, 0.0027212240538073374, -0.005466887290050634, -0.007081722461592389, 0.005927811782249879, 0.008862714006332826, -0.0008374004993945356, 0.0018197136447370527, 0.006951099556892567, -0.000855342803258806, 0.009037466080947939, 0.001515015679079121, 0.006628763228988263, 0.008424741596570298, 0.006310468181210848, -0.007141162530020938, 0.0029078632365491628, -0.0020312868860264607, -0.008745556694659642, -0.0015193573987566397, -0.004826297137570466, 0.007581907046400153, -0.009333940054438113, 0.008838221891736284, -0.0032659511722004852, -0.0028658125438999647, -0.01008271126886913, -0.0062955567129320805, -0.00197471472045921, 0.008326232708988501, -0.007774816708638018, 0.008906030179521695, 0.0073897855409704545, -0.0006440832153741146, -0.003143561767007987, -0.005345114269471594, 0.0018687022320042165, -0.008911106113387557, -0.00968780297724258, -0.0014238646447077067, -0.008638470294991572, -0.0049609676914219615, -0.0048201270179105095, -0.004936198998944467, -0.007834637728569682, -0.010257598177050969, -0.007690279552938732, 0.0018233389686207154, 0.009238988830701823, 0.00980710275909645, -0.0021656636832207135, -0.006429817624973892, 0.002775212850156178, -0.00019389603181953644, 0.010152112851914362, -0.008263697179112003, 0.005664682634302578, -0.0047994277205891936, -0.004601288892595933, 0.003250267898857288, -0.004818847157591884, 0.003317239947580099, 0.00034638659748336027, -0.0005018775069730661, 0.0010937681002310836, -0.004258922309967778, 0.004131538137175205, -0.0017028872238733358, -0.0027890111845081307, 0.0065731367875340296, 0.008499312212574184, -0.00907979107069934, -0.005347493995684308, -0.0030296222560525095, 0.006299314858054831, 0.00970976656258902, 0.009379327334370323, 0.008098960549939839, -0.004068765349403308, 0.009840089580567942, -0.005011614285351263, -0.007881876381557856, 0.009019037934597617, -0.005331656458010169, 0.0035995452035280833, -0.008832869051472004, 0.00483921106541301, 0.007880457196434074, -0.004551268726675332, -0.0021489011452055598, -0.002514018471950142, 0.004975722456270955, -0.005072489790009412, -0.006563109561791086, -0.0010141649757748055, -0.003910635294257957, 0.0067835694580980705, -0.005454069980474665, 4.7789579840321746e-05, 0.009129089053534215, 0.0024021440682910574, 0.007345751348275406, 0.008804130200773077, 0.005015286889497747, 0.003991450910542511, 0.00886141774038324, 0.009888013902206226, -0.0007558013518991013, -0.0083554270013657, -0.00414410784597009, -0.006703883717797098, -0.0016502101493898582, -0.007374210454701868, 0.002082519970795519, -0.0023438939439403787, 0.007907733963115702, 0.009355896477730349, 0.0009375291209834096, -0.004503717298659338, 0.0018446138798859973, 0.008191109351508465, -0.002121567201065286, 0.0010415583034548476, -0.004567008905402948, -0.0008911155443139623, -0.00196572371253329, -0.005498525443284708, 0.00011735505600959825, -0.003264540987300189, -0.001962141961279456, 0.0004992689293949931, 0.005649693608152121, -0.0030445478251642575, 0.008274524071946749, 0.0076479752955238576, -0.00938650582342595, -0.004927124728046702, -0.0010772884889961238, -0.008328936824298852, -0.003528249649993036, 0.004801957147782709, 0.004267500578737825, 0.0017876768711580775, 0.004210362805374157, -0.006202773429866161, -0.0031662007820601, 0.0032943635497807793, 0.006409789183855079, -0.00022544442780373224, -0.0027347015586647403, -0.007935927757239081, 0.007415097179309068, -0.008221060627272613, -0.0016844285577916505, 0.0015246489885264202, 0.008836193777095, -0.006712605284643315, -0.0031067086503875395, -0.009053862466699944, -0.0019616579552403884, 0.0017456548332416043, -0.00624366291023604, -0.0033134376570283035, -0.007952859654066937, -0.0010203092650177817, 0.002906511188764059, 0.0045576238702213275, 0.009046274966815274, -0.1631556110254066], "parameter2": [0.004298560854326959, 0.001997866731510016, 0.0020272290479707187, 0.009676941331737307, -0.009616302744479045, 0.0034475264069684978, 0.006273553954443402, 0.00019610522547738171, -0.003320878888184553, 0.005816781684827175, -0.007591595160905768, -0.0011592589159427286, 0.00039908659506553205, 0.0038792088856398166, -0.008182254606574062, -0.005444719733495465, -0.0017939328948202065, 0.002465897771715114, 0.007739229232190676, 0.0023765594521723667, -0.00711912252596584, 0.009611667403953895, 0.0074357263453214825, 5.445936324788794e-05, 0.008447027483638089, 0.0011805698964566177, 0.00846604019876697, 0.006597946633604663, 0.009365756000422826, 0.008395580816552575, -0.009186919849803112, -0.00650571231844416, -0.002217303492537797, 0.009042859670993763, -0.003996713550848561, -0.0080395900829676, 0.007735403055277441, -0.001305130904927164, 0.007768687070663952, -0.006837924077941409, 0.0022860706429531537, -0.001194726074214186, -0.008470469089517433, 0.003639687522814319, -0.005052033812108381, -0.009455601937891168, -0.00880104648097351, -0.00877842847486555, 0.008154666351986587, 0.004797725336823618, 0.006978797648306854, 0.0034516349811649287, 0.000578582388469292, -0.0042156314703474616, 0.009925879575962708, -0.0037655425761167535, -0.0005796320708112022, -0.0024353135758846457, 0.009276192321482836, -0.0065413214826565225, -0.004503416277545584, 0.003614659024251408, -0.008934099384004376, 0.001816554418738502, -0.0004834956967432674, -0.003684452679456027, -0.005231739901885264, 0.00029031431980378373, -0.002445186099449952, -0.0008696071530691587, -0.003635964171726535, 0.009409967212308568, -0.007331210433168587, -0.008063949327390876, -0.0031320783885675947, 0.0015084983918500433, 0.003183498592179373, -0.002054877209249753, 0.009985512322613351, -0.0029621725332256237, 0.005081988559538901, 0.002751560704782499, 0.006261127770419068, 0.009727317770054287, 0.007795790361093513, 0.0041521890961696084, 0.003973365151565667, -0.00350242283552193, -0.007400002725423211, -0.008786166511007635, -0.00496666409588591, -0.001356842458397544, 0.00043992470067246787, 0.005461664170942673, 0.009180508290392981, -0.007440616121400778, -0.007859882860057395, 0.0017939045630178919, 0.004908000265795238, 0.006963043017585943, 0.008716641062852715, 0.009668506484543773, -0.0020039505362129282, -0.0023932944942880612, -0.0070438433075427995, 0.003698663649715081, 0.0031352609148108425, 0.007241258796798276, -0.008054835824368974, -4.444939768286233e-05, 0.0016216161293418358, -0.005168848993897873, -0.006619490464458784, 0.007191626325639628, -0.008829301436071892, -0.0005875838165328854, -0.00768333790551471, -0.0008588233839806693, 0.00959924264039356, -0.0015258655350542372, 0.007442369573424894, -0.007324242239364144, -0.004574718511669258, -0.0023237522148931255, -0.002003832939493855, 0.0031021222915231434, -0.002810434127117325, 0.0038804433120270265, 0.002517312330590515, -0.0020166013314585683, -0.0018183405188110472, 0.002697253720845897, -0.008599162960185204, 0.006196722707299811, 0.002784194232670466, 0.004113035341220673, 0.0009873368520583793, -0.007290630750415374, -0.0018992163217194053, -0.0018927213678019432, -0.0038878056811329376, -0.007473821908057034, 0.005069956720052046, -0.007804116534887234, 0.0017321481558690533, 0.004064286185919478, 0.0023746870111717145, 0.009473912945784814, -0.008323396644200544, 0.007080644036219096, -0.009416016275824505, 0.0002511404033338137, -0.0015141253851168864, 0.00048368628683752703, -0.0029459116082054928, -0.0064689125708734165, -0.010025604330067928, 0.0006084078124863174, 0.007348385829612137, -0.0025356085653404923, -0.0055429208306636965, -0.008693708250906325, -0.006395216312667634, -0.005572071316619055, -0.00799972463840089, -0.004699198879533617, -0.008677010076134023, -0.00868790382010399, 0.007125515618102422, -0.0067575870365017944, 0.001193649272428928, 0.005469111172273225, -0.0008718026512111007, -0.006932634294815904, -0.006008075818204468, -0.0013403153455091312, 0.0005646865682604859, -0.003011193723996612, 0.0056295911387934175, 0.0050204250673923706, 0.008544236246034623, -0.009420949316274262, 0.007913829635853716, -0.002189669995021524, 0.0078447389424701, 0.0038158690642814937, 0.009410393595177693, 0.005185592626030727, -0.002983346176240818, 0.0002699022369678252, -0.0028048233725148745, -0.0029261744143346787, -0.004781842199912151, -0.00046261235415774745, 0.003977349725801573, -0.004453190493609452, 0.0002758225489304563, -0.007891608479867852, -0.007151673365904075, -0.00885423381695815, 0.009835634935171643, -0.009922731530592447, -0.0064285678632784735, 0.001997556469848051, -0.006750697277374177, 0.007930930840687899, 0.004392561230071573, 0.008972360264882032, 0.00015265790836809014, -0.004281489400087567, 0.001252594619155673, 0.008265124636178628, 0.00017829937955685338, -0.004655784433916162, 0.007144652359546768, -0.002199870682951352, -0.009972319818243492, -0.005269889684854646, -0.003888084596333015, 0.0068075126985821, -0.0006084286496420792, -0.0006636816981013538, -0.003277888678790381, 0.007613381836405089, 0.008626044372768777, 0.011552961298064502, -0.002769477179886637, 0.009322792815742591, 0.006206712326797654, 0.003513835949522547, -0.004801479381534207, -0.005943546245006724, -0.00631427808424813, 0.00870118743349228, -0.0041185456399805784, -0.0005192553470318163, -0.0004965192246143411, 0.005563412539524217, 0.007116907977583533, -0.006956053454386209, -0.0010796827671518993, 0.006627047715743622, 0.005898968111607674, -0.007951793731849666, -0.006872144127829885, -0.0036309614139323327, -0.010273147462250533, -0.0017458071197539303, -0.007847718493534474, 0.0016502314149549999, -0.00506881141167652, 0.002164906659229661, -0.007858955283728097, 0.009799788912080982, 0.008651435143922671, -0.0021641191008241177, -0.004827058706279775, -0.00528737516417701, -0.0003321322138318478, -0.00919994488601968, 0.0030003475893394067, -0.0015334102587183436, -0.0024520758289946374, 0.005828970040293558, 0.004180667878115058, 0.009086736152516563, -0.002737298470217056, 0.006552386133083449, 0.005630885106079528, -0.0028514356508262655, 0.0021564311993866846, -0.004228636603675513, 0.00725919275252279, -0.0075485784115434254, -0.006024540063410918, -0.006339538985825619, -0.0019394240356120657, 0.004585661736036547, 0.0008241922523295909, -0.0002464708405578431, -0.009989273664271344, -0.0016917173937560034, -0.009019994990121282, -0.005834733870630056, 0.008994928142211138, -0.005691995930733953, 0.007166694973543744, 0.005840944328437384, -0.005462468955302105, 0.002441110130033891, -0.007686592757334342, 0.004161264494340201, 0.00274918806780365, 0.00591573212808512, -0.0001194006264014678, 0.007905439689104274, -0.009277554725853223, -0.004142045115100664, 0.0038511163877160927, -0.0012342770539933705, -0.0065409529368487965, -0.008105219754649597, 0.006064818354055173, -0.0009477198716844226, 0.00789278415686744, 0.005161718160896578, -0.0018054019704622029, -0.002529982281916397, 6.552600449394636e-06, 0.009693360242028607, 0.004456513470423205, -0.009897063832882426, 0.0042337520670048985, 0.008390191977620842, 0.0044948000462295785, -0.006718869767675266, 1.681828147715055e-05, -0.006959957339806542, -0.0028201727063545175, 0.009140196567239169, 0.008109292294282271, -0.004343291209736286, -0.0029868045993850707, 0.00225336991157558, 0.00962702600160766, -0.007262488234774751, -0.005300194769313311, 0.0074710699641531405, -0.00016197185354434573, 0.00824999315176623, -0.007978778735387616, 0.0006535274003803516, -0.00347457155581329, -0.003669357207977108, -0.001062467772977355, -0.001338610509095897, -0.0028529942114436644, 0.008299210068811442, 0.004634832538433663, 0.004550949886474166, -0.0044034662919243935, 0.0015544051619385906, 0.005583590320544899, 0.005911758921411137, -0.003109459239410043, 0.005417248636895399, 0.0047179332629571505, -0.0069503909516890365, 0.007318919696196488, -0.001173597336433473, -0.00027186055726605493, -0.00017458928315071653, 0.001566723766977183, 0.002423474694497158, -0.0002871190212818344, 0.007335731964323186, 0.0023473842144565785, -0.001971190414417611, -0.0019135713954373328, 0.0062165765206490566, -0.003036125402560176, -0.006059975572462822, -0.008557844929748797, 0.007520532354627402, 0.00837075031159533, -0.007597831831498164, -0.0035740621565400563, -0.006492368146632427, -0.007367533671330698, 0.007997370070165202, -0.008862503194611418, 0.009413140959919804, -0.006842683439088702, 0.007269361534527146, 0.00133011746899876, -0.0026414828132172935, -0.003153152647992507, 0.005147343960337408, -0.0037085789135467818, 0.003146541987893548, 0.00034656149180954226, -0.0003006966713478668, 0.008023435684429004, 0.0010927290000927493, 0.006537229264549259, 0.004511498679222589, -0.009228804094970223, 0.005462377672380971, -0.0056626277278817375, 0.008062789126755043, -0.009141525397768038, -0.0033385511777898206, -0.008005287280060716, -0.001226246388637199, 0.006659145818988857, -0.004036193052387534, -0.007290631651595377, -0.0033947083172655426, 0.006021947794156405, -0.006960346684480523, -0.0057630688698891075, -0.00883232195552341, 0.0041142659868816, -0.0024517296747792205, -0.0034636051300650094, 0.004372537042779789, -0.0034780228074412717, 0.0043322622803249975, 0.0059787813422820775, -0.005451166459485915, 0.009869160512380822, -0.0067527955632508295, -0.004183249613040578, -0.006646447833212991, -0.001576545064211522, -0.00039861799367323135, 0.00044353563930050934, 0.00707192351786736, 0.007788958840286996, -0.005598102397745965, 0.002457926061809135, -0.007770270761257019, -0.0008206487738318404, -0.003553298098430202, -0.0038830903845257117, -0.00034811366039592576, 0.004596560437050463, -0.008616394897665816, 0.0075834096407407315, 0.004696059371224332, -0.00646996033272505, 0.009015062539928509, 0.0001262560142903899, 0.009996140335116413, -0.006054968088944615, 0.0016039661549861013, -0.0045113025972301395, -0.003916732604618415, 0.0022049000044609855, 0.008434447168917262, 0.006417809160172675, 0.004195463810410395, 0.0015625405679050885, 0.008701723988957091, -0.00015294418394584284, 0.007912015453653441, 0.0062892361580534455, -0.005723296908960779, 0.005665856618403588, -0.009483955088064933, -0.0031461567072424926, -0.005647562526025522, -0.0003425417668629074, 0.0047369934825325245, -0.008046283041148653, 0.0005947443766498305, 0.006919435624920425, -0.005427095793636476, 0.003542809890844659, 0.001857671122572769, -0.009798723076814848, -0.0004834499057631722, 0.004175366693815849, -0.00912042623100613, 0.007590454872948546, 0.0004016250077032727, -0.009386709284541458, -0.005511798991242073, 0.009073513670697395, 0.0016464009485127361, -0.007850510707316096, -0.004249054876361255, -0.000865956021419112, -0.009581074681150737, -0.0017676935077160423, -0.00021082653291174355, -0.005126405997406049, 0.0012307017639784327, 0.0050648028537720515, -0.005283299954194555, 0.0024099804195040343, 0.002792443435318676, 0.008970813058463216, 0.00556554455874, 0.006966885785566427, -0.00019160731635799936, -0.006293029292105613, 0.00991629476888471, -0.007412863808498746, -0.0005708607342170275, -0.00863813911560479, 0.008877008467712978, 0.009298498328272398, 0.004387784843755781, -0.0030001235385518103, -0.004912352632340843, -0.00469393254465075, -0.007454126306045382, 0.00043781241133917316, -0.007163654139048286, -0.003665375140503518, 0.0025340888926686156, 0.004550869582641581, -0.009514546234612769, -0.0013976467745515236, 0.0030424513404259325, 0.007064916362401199, -0.0004935037099094847, 0.009384076119580196, -0.004687303933033499, -0.00972982611887839, -0.000324945131479504, -0.0048777369466546, 0.0064743237584445204, -0.005344538225313722, -0.0037873694641446785, 0.005824549475370335, 0.0043028646116023885, 0.0011610137014789286, 0.0044876146067748994, -0.0033467544680317795, -0.006844992054504026, -0.009401049576200301, -0.00048705456145318375, -0.00755878835053367, -0.009530933343540887, 0.010406470768521615, 0.006237044574341516, -0.005976556199091108, -0.011046991204983399, 0.011464459720703443, -0.00376063524863831, -0.003848068427777477, 0.003876195204512089, -0.007915665472568065, -0.005203720091363411, 0.008238865073074527, 0.002008227751004722, 0.001830319691337132, -0.0012317475416600417, -0.17326577653134598]} diff --git a/Ramp/steady/predict/trained/paraview.foam b/Ramp/steady/predict/trained/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Ramp/steady/predict/trained/runScript.py b/Ramp/steady/predict/trained/runScript.py new file mode 100755 index 00000000..33253fed --- /dev/null +++ b/Ramp/steady/predict/trained/runScript.py @@ -0,0 +1,135 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +import argparse +import numpy as np +import json, copy +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder +from mphys.scenario_aerodynamic import ScenarioAerodynamic + +# ============================================================================= +# Input Parameters +# ============================================================================= + +with open("./designVariable.json") as f: + parameter0 = json.load(f) + + +U0 = 15.0 + +# Input parameters for DAFoam +daOptions = { + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1e3, + "primalBC": { + "U0": {"variable": "U", "patches": ["inlet"], "value": [U0, 0, 0]}, + "useWallFunction": True, + }, + "primalVarBounds": {"omegaMin": -1e16}, + "regressionModel": { + "active": True, + "model1": { + "modelType": "neuralNetwork", + "inputNames": ["PoD", "VoS", "PSoSS", "KoU2"], + "outputName": "betaFIK", + "hiddenLayerNeurons": [20, 20], + "inputShift": [0.0, 0.0, 0.0, 0.0], + "inputScale": [1.0, 1.0, 1.0, 1.0], + "outputShift": 1.0, + "outputScale": 1.0, + "activationFunction": "tanh", + "printInputInfo": True, + "defaultOutputValue": 1.0, + "outputUpperBound": 1e1, + "outputLowerBound": -1e1, + "writeFeatures": True, + }, + "model2": { + "modelType": "neuralNetwork", + "inputNames": ["PoD", "VoS", "PSoSS", "KoU2"], + "outputName": "betaFIOmega", + "hiddenLayerNeurons": [20, 20], + "inputShift": [0.0, 0.0, 0.0, 0.0], + "inputScale": [1.0, 1.0, 1.0, 1.0], + "outputShift": 1.0, + "outputScale": 1.0, + "activationFunction": "tanh", + "printInputInfo": True, + "defaultOutputValue": 1.0, + "outputUpperBound": 1e1, + "outputLowerBound": -1e1, + "writeFeatures": True, + }, + }, + "function": { + "CD": { + "part1": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + } + }, + }, + "inputInfo": { + "model1": { + "type": "field", + "fieldName": "betaFIK", + "fieldType": "scalar", + "distributed": False, + "components": ["solver", "function"], + }, + "model2": { + "type": "field", + "fieldName": "betaFIOmega", + "fieldType": "scalar", + "distributed": False, + "components": ["solver", "function"], + }, + }, +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builders to initialize the DASolvers + + builder = DAFoamBuilder(options=daOptions, mesh_options=None, scenario="aerodynamic") + builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + self.mphys_add_scenario("c1", ScenarioAerodynamic(aero_builder=builder)) + + def configure(self): + # configure and setup perform a similar function, i.e., initialize the optimization. + # But configure will be run after setup + self.dvs.add_output("parameter1", val=parameter0["parameter1"]) + self.dvs.add_output("parameter2", val=parameter0["parameter2"]) + + self.connect("parameter1", "c1.model1") + self.connect("parameter2", "c1.model2") + + # define the design variables to the top level + self.add_design_var("parameter1", lower=-10.0, upper=10.0, scaler=1.0) + self.add_design_var("parameter2", lower=-10.0, upper=10.0, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +prob.run_model() diff --git a/Ramp/steady/predict/trained/system/controlDict b/Ramp/steady/predict/trained/system/controlDict new file mode 100755 index 00000000..53670340 --- /dev/null +++ b/Ramp/steady/predict/trained/system/controlDict @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 2000; + +deltaT 1; + +writeControl timeStep; + +writeInterval 2000; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/system/decomposeParDict b/Ramp/steady/predict/trained/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/Ramp/steady/predict/trained/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/predict/trained/system/fvSchemes b/Ramp/steady/predict/trained/system/fvSchemes new file mode 100755 index 00000000..a08ac728 --- /dev/null +++ b/Ramp/steady/predict/trained/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/Ramp/steady/predict/trained/system/fvSolution b/Ramp/steady/predict/trained/system/fvSolution new file mode 100755 index 00000000..7b6bd8f7 --- /dev/null +++ b/Ramp/steady/predict/trained/system/fvSolution @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.1; + smoother GaussSeidel; + maxIter 50; + minIter 1; + } + + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 0; + relTol 0.1; + maxIter 50; + minIter 1; + } + +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/train/Allclean.sh b/Ramp/steady/train/Allclean.sh new file mode 100755 index 00000000..13f5cb31 --- /dev/null +++ b/Ramp/steady/train/Allclean.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf */0 + rm -rf */*.bin */*.info */*.xyz */*.txt + rm -rf */processor* */0.00* + rm -rf */{1..9}* + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/Ramp/steady/train/c1/0_orig/U b/Ramp/steady/train/c1/0_orig/U new file mode 100755 index 00000000..49255e15 --- /dev/null +++ b/Ramp/steady/train/c1/0_orig/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform (5 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (5 0 0); + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + "(bot)" + { + type noSlip; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/0_orig/betaFIKData b/Ramp/steady/train/c1/0_orig/betaFIKData new file mode 100644 index 00000000..1d3cd7fa --- /dev/null +++ b/Ramp/steady/train/c1/0_orig/betaFIKData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFIKData; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + bot + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + top + { + type symmetry; + } + sym1 + { + type symmetry; + } + sym2 + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/0_orig/betaFIOmegaData b/Ramp/steady/train/c1/0_orig/betaFIOmegaData new file mode 100644 index 00000000..e34602f3 --- /dev/null +++ b/Ramp/steady/train/c1/0_orig/betaFIOmegaData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFIOmegaData; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + bot + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + top + { + type symmetry; + } + sym1 + { + type symmetry; + } + sym2 + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/0_orig/k b/Ramp/steady/train/c1/0_orig/k new file mode 100755 index 00000000..7dd4e274 --- /dev/null +++ b/Ramp/steady/train/c1/0_orig/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type fixedValue; + value uniform 1e-14; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/0_orig/nuTilda b/Ramp/steady/train/c1/0_orig/nuTilda new file mode 100755 index 00000000..2eb9b19f --- /dev/null +++ b/Ramp/steady/train/c1/0_orig/nuTilda @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5e-04; + +boundaryField +{ + "(bot)" + { + type fixedValue; + value uniform 1e-14; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/0_orig/nut b/Ramp/steady/train/c1/0_orig/nut new file mode 100755 index 00000000..95b5ca1e --- /dev/null +++ b/Ramp/steady/train/c1/0_orig/nut @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5E-4; + +boundaryField +{ + "(bot)" + { + type nutLowReWallFunction; + value $internalField; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/0_orig/omega b/Ramp/steady/train/c1/0_orig/omega new file mode 100755 index 00000000..44418b36 --- /dev/null +++ b/Ramp/steady/train/c1/0_orig/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 30; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type omegaWallFunction; + value $internalField; + blended true; + } + +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/0_orig/p b/Ramp/steady/train/c1/0_orig/p new file mode 100755 index 00000000..0cf3dd94 --- /dev/null +++ b/Ramp/steady/train/c1/0_orig/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 0; + } + "(sym.*|top)" + { + type symmetry; + } + + "(bot)" + { + type zeroGradient; + } + + +} + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/constant/polyMesh/boundary b/Ramp/steady/train/c1/constant/polyMesh/boundary new file mode 100644 index 00000000..709e6217 --- /dev/null +++ b/Ramp/steady/train/c1/constant/polyMesh/boundary @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + inlet + { + type patch; + nFaces 50; + startFace 9850; + } + bot + { + type wall; + inGroups 1(wall); + nFaces 100; + startFace 9900; + } + outlet + { + type patch; + nFaces 50; + startFace 10000; + } + top + { + type symmetry; + inGroups 1(symmetry); + nFaces 100; + startFace 10050; + } + sym1 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 10150; + } + sym2 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 15150; + } +) + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/constant/polyMesh/faces.gz b/Ramp/steady/train/c1/constant/polyMesh/faces.gz new file mode 100644 index 00000000..1f70ec0e Binary files /dev/null and b/Ramp/steady/train/c1/constant/polyMesh/faces.gz differ diff --git a/Ramp/steady/train/c1/constant/polyMesh/neighbour.gz b/Ramp/steady/train/c1/constant/polyMesh/neighbour.gz new file mode 100644 index 00000000..fdbe7109 Binary files /dev/null and b/Ramp/steady/train/c1/constant/polyMesh/neighbour.gz differ diff --git a/Ramp/steady/train/c1/constant/polyMesh/owner.gz b/Ramp/steady/train/c1/constant/polyMesh/owner.gz new file mode 100644 index 00000000..7fa34392 Binary files /dev/null and b/Ramp/steady/train/c1/constant/polyMesh/owner.gz differ diff --git a/Ramp/steady/train/c1/constant/polyMesh/points.gz b/Ramp/steady/train/c1/constant/polyMesh/points.gz new file mode 100644 index 00000000..89e10ea4 Binary files /dev/null and b/Ramp/steady/train/c1/constant/polyMesh/points.gz differ diff --git a/Ramp/steady/train/c1/constant/transportProperties b/Ramp/steady/train/c1/constant/transportProperties new file mode 100755 index 00000000..76d23b9c --- /dev/null +++ b/Ramp/steady/train/c1/constant/transportProperties @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1e-05; + +Pr 0.7; + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/constant/turbulenceProperties b/Ramp/steady/train/c1/constant/turbulenceProperties new file mode 100755 index 00000000..57bfc6ee --- /dev/null +++ b/Ramp/steady/train/c1/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmega; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/train/c1/constant/turbulenceProperties_KW b/Ramp/steady/train/c1/constant/turbulenceProperties_KW new file mode 100755 index 00000000..57bfc6ee --- /dev/null +++ b/Ramp/steady/train/c1/constant/turbulenceProperties_KW @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmega; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/train/c1/constant/turbulenceProperties_SST b/Ramp/steady/train/c1/constant/turbulenceProperties_SST new file mode 100755 index 00000000..421431b1 --- /dev/null +++ b/Ramp/steady/train/c1/constant/turbulenceProperties_SST @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmegaSST; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/train/c1/paraview.foam b/Ramp/steady/train/c1/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Ramp/steady/train/c1/runPrimal.py b/Ramp/steady/train/c1/runPrimal.py new file mode 100755 index 00000000..2f1dd282 --- /dev/null +++ b/Ramp/steady/train/c1/runPrimal.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +from mpi4py import MPI +from dafoam import PYDAFOAM +import argparse + +parser = argparse.ArgumentParser() +parser.add_argument("-augmented", help="whether to use augumented model", type=bool, default=False) +args = parser.parse_args() + +gcomm = MPI.COMM_WORLD + +U0 = 10.0 + +# Set the parameters for optimization +daOptions = { + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1e8, + "primalBC": {"U0": {"variable": "U", "patches": ["inlet"], "value": [U0, 0, 0]}, "useWallFunction": True}, + "primalVarBounds": {"omegaMin": -1e16}, + "regressionModel": { + "active": args.augmented, + "model": { + "writeFeatures": True, + "modelType": "externalTensorFlow", + "inputNames": ["PoD", "VoS", "PSoSS", "KoU2"], + "outputName": "betaFIOmega", + "hiddenLayerNeurons": [20, 20], + "inputShift": [0.0, 0.0, 0.0, 0.0], + "inputScale": [1.0, 1.0, 1.0, 0.1], + "outputShift": 1.0, + "outputScale": 1.0, + "activationFunction": "tanh", + "printInputInfo": True, + "defaultOutputValue": 1.0, + "outputUpperBound": 1e1, + "outputLowerBound": -1e1, + "writeFeatures": True, + } + }, + "tensorflow": { + "active": args.augmented, + "model": { + "predictBatchSize": 10000, + "nInputs": 4, + }, + }, + "function": { + "drag": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + }, + }, +} + +DASolver = PYDAFOAM(options=daOptions, comm=gcomm) +DASolver() diff --git a/Ramp/steady/train/c1/system/controlDict b/Ramp/steady/train/c1/system/controlDict new file mode 100755 index 00000000..d0a55462 --- /dev/null +++ b/Ramp/steady/train/c1/system/controlDict @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 5000; + +deltaT 1; + +writeControl timeStep; + +writeInterval 5000; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/system/decomposeParDict b/Ramp/steady/train/c1/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/Ramp/steady/train/c1/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/train/c1/system/fvSchemes b/Ramp/steady/train/c1/system/fvSchemes new file mode 100755 index 00000000..a08ac728 --- /dev/null +++ b/Ramp/steady/train/c1/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/Ramp/steady/train/c1/system/fvSolution b/Ramp/steady/train/c1/system/fvSolution new file mode 100755 index 00000000..7b6bd8f7 --- /dev/null +++ b/Ramp/steady/train/c1/system/fvSolution @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.1; + smoother GaussSeidel; + maxIter 50; + minIter 1; + } + + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 0; + relTol 0.1; + maxIter 50; + minIter 1; + } + +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/0_orig/U b/Ramp/steady/train/c2/0_orig/U new file mode 100755 index 00000000..49255e15 --- /dev/null +++ b/Ramp/steady/train/c2/0_orig/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform (5 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (5 0 0); + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + "(bot)" + { + type noSlip; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/0_orig/betaFIKData b/Ramp/steady/train/c2/0_orig/betaFIKData new file mode 100644 index 00000000..1d3cd7fa --- /dev/null +++ b/Ramp/steady/train/c2/0_orig/betaFIKData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFIKData; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + bot + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + top + { + type symmetry; + } + sym1 + { + type symmetry; + } + sym2 + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/0_orig/betaFIOmegaData b/Ramp/steady/train/c2/0_orig/betaFIOmegaData new file mode 100644 index 00000000..e34602f3 --- /dev/null +++ b/Ramp/steady/train/c2/0_orig/betaFIOmegaData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFIOmegaData; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + bot + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + top + { + type symmetry; + } + sym1 + { + type symmetry; + } + sym2 + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/0_orig/k b/Ramp/steady/train/c2/0_orig/k new file mode 100755 index 00000000..7dd4e274 --- /dev/null +++ b/Ramp/steady/train/c2/0_orig/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type fixedValue; + value uniform 1e-14; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/0_orig/nuTilda b/Ramp/steady/train/c2/0_orig/nuTilda new file mode 100755 index 00000000..2eb9b19f --- /dev/null +++ b/Ramp/steady/train/c2/0_orig/nuTilda @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5e-04; + +boundaryField +{ + "(bot)" + { + type fixedValue; + value uniform 1e-14; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/0_orig/nut b/Ramp/steady/train/c2/0_orig/nut new file mode 100755 index 00000000..95b5ca1e --- /dev/null +++ b/Ramp/steady/train/c2/0_orig/nut @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5E-4; + +boundaryField +{ + "(bot)" + { + type nutLowReWallFunction; + value $internalField; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/0_orig/omega b/Ramp/steady/train/c2/0_orig/omega new file mode 100755 index 00000000..44418b36 --- /dev/null +++ b/Ramp/steady/train/c2/0_orig/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 30; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type omegaWallFunction; + value $internalField; + blended true; + } + +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/0_orig/p b/Ramp/steady/train/c2/0_orig/p new file mode 100755 index 00000000..0cf3dd94 --- /dev/null +++ b/Ramp/steady/train/c2/0_orig/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 0; + } + "(sym.*|top)" + { + type symmetry; + } + + "(bot)" + { + type zeroGradient; + } + + +} + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/constant/polyMesh/boundary b/Ramp/steady/train/c2/constant/polyMesh/boundary new file mode 100644 index 00000000..709e6217 --- /dev/null +++ b/Ramp/steady/train/c2/constant/polyMesh/boundary @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + inlet + { + type patch; + nFaces 50; + startFace 9850; + } + bot + { + type wall; + inGroups 1(wall); + nFaces 100; + startFace 9900; + } + outlet + { + type patch; + nFaces 50; + startFace 10000; + } + top + { + type symmetry; + inGroups 1(symmetry); + nFaces 100; + startFace 10050; + } + sym1 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 10150; + } + sym2 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 15150; + } +) + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/constant/polyMesh/faces.gz b/Ramp/steady/train/c2/constant/polyMesh/faces.gz new file mode 100644 index 00000000..1f70ec0e Binary files /dev/null and b/Ramp/steady/train/c2/constant/polyMesh/faces.gz differ diff --git a/Ramp/steady/train/c2/constant/polyMesh/neighbour.gz b/Ramp/steady/train/c2/constant/polyMesh/neighbour.gz new file mode 100644 index 00000000..fdbe7109 Binary files /dev/null and b/Ramp/steady/train/c2/constant/polyMesh/neighbour.gz differ diff --git a/Ramp/steady/train/c2/constant/polyMesh/owner.gz b/Ramp/steady/train/c2/constant/polyMesh/owner.gz new file mode 100644 index 00000000..7fa34392 Binary files /dev/null and b/Ramp/steady/train/c2/constant/polyMesh/owner.gz differ diff --git a/Ramp/steady/train/c2/constant/polyMesh/points.gz b/Ramp/steady/train/c2/constant/polyMesh/points.gz new file mode 100644 index 00000000..89e10ea4 Binary files /dev/null and b/Ramp/steady/train/c2/constant/polyMesh/points.gz differ diff --git a/Ramp/steady/train/c2/constant/transportProperties b/Ramp/steady/train/c2/constant/transportProperties new file mode 100755 index 00000000..76d23b9c --- /dev/null +++ b/Ramp/steady/train/c2/constant/transportProperties @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1e-05; + +Pr 0.7; + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/constant/turbulenceProperties b/Ramp/steady/train/c2/constant/turbulenceProperties new file mode 100755 index 00000000..57bfc6ee --- /dev/null +++ b/Ramp/steady/train/c2/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmega; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/train/c2/constant/turbulenceProperties_KW b/Ramp/steady/train/c2/constant/turbulenceProperties_KW new file mode 100755 index 00000000..57bfc6ee --- /dev/null +++ b/Ramp/steady/train/c2/constant/turbulenceProperties_KW @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmega; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/train/c2/constant/turbulenceProperties_SST b/Ramp/steady/train/c2/constant/turbulenceProperties_SST new file mode 100755 index 00000000..421431b1 --- /dev/null +++ b/Ramp/steady/train/c2/constant/turbulenceProperties_SST @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmegaSST; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/train/c2/paraview.foam b/Ramp/steady/train/c2/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Ramp/steady/train/c2/runPrimal.py b/Ramp/steady/train/c2/runPrimal.py new file mode 100755 index 00000000..1daedf24 --- /dev/null +++ b/Ramp/steady/train/c2/runPrimal.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +from mpi4py import MPI +from dafoam import PYDAFOAM +import argparse + +parser = argparse.ArgumentParser() +parser.add_argument("-augmented", help="whether to use augumented model", type=bool, default=False) +args = parser.parse_args() + +gcomm = MPI.COMM_WORLD + +U0 = 20.0 + +# Set the parameters for optimization +daOptions = { + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1e8, + "primalBC": {"U0": {"variable": "U", "patches": ["inlet"], "value": [U0, 0, 0]}, "useWallFunction": True}, + "primalVarBounds": {"omegaMin": -1e16}, + "regressionModel": { + "active": args.augmented, + "model": { + "writeFeatures": True, + "modelType": "externalTensorFlow", + "inputNames": ["PoD", "VoS", "PSoSS", "KoU2"], + "outputName": "betaFIOmega", + "hiddenLayerNeurons": [20, 20], + "inputShift": [0.0, 0.0, 0.0, 0.0], + "inputScale": [1.0, 1.0, 1.0, 0.1], + "outputShift": 1.0, + "outputScale": 1.0, + "activationFunction": "tanh", + "printInputInfo": True, + "defaultOutputValue": 1.0, + "outputUpperBound": 1e1, + "outputLowerBound": -1e1, + "writeFeatures": True, + } + }, + "tensorflow": { + "active": args.augmented, + "model": { + "predictBatchSize": 10000, + "nInputs": 4, + }, + }, + "function": { + "drag": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + }, + }, +} + +DASolver = PYDAFOAM(options=daOptions, comm=gcomm) +DASolver() diff --git a/Ramp/steady/train/c2/system/controlDict b/Ramp/steady/train/c2/system/controlDict new file mode 100755 index 00000000..d0a55462 --- /dev/null +++ b/Ramp/steady/train/c2/system/controlDict @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 5000; + +deltaT 1; + +writeControl timeStep; + +writeInterval 5000; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/system/decomposeParDict b/Ramp/steady/train/c2/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/Ramp/steady/train/c2/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/train/c2/system/fvSchemes b/Ramp/steady/train/c2/system/fvSchemes new file mode 100755 index 00000000..a08ac728 --- /dev/null +++ b/Ramp/steady/train/c2/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/Ramp/steady/train/c2/system/fvSolution b/Ramp/steady/train/c2/system/fvSolution new file mode 100755 index 00000000..7b6bd8f7 --- /dev/null +++ b/Ramp/steady/train/c2/system/fvSolution @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.1; + smoother GaussSeidel; + maxIter 50; + minIter 1; + } + + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 0; + relTol 0.1; + maxIter 50; + minIter 1; + } + +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/train/designVariable.json b/Ramp/steady/train/designVariable.json new file mode 100644 index 00000000..d6a85d2d --- /dev/null +++ b/Ramp/steady/train/designVariable.json @@ -0,0 +1 @@ +{"parameter1": [0.0010414264954178624, 0.004299656854142048, 0.00205526765759448, 0.0008976636984979747, -0.0015288355644417536, 0.0025258889138631523, -0.0012483995558018079, 0.007835402892684983, 0.009037014839139308, -0.0023313175467071646, 0.00623382326684047, 0.0005777766805387706, 0.0013609127965501487, 0.008752934393246726, -0.008579394421668643, -0.008782474561292164, -0.009595568506549383, 0.006652340273286789, 0.0052494546511970795, 0.007400282580866662, 0.009775719422557094, 0.005983145840919121, -0.0007704126042573476, 0.005610631620189653, -0.007634535793559563, 0.0024357927714687574, -0.007110054515168251, 0.0088933441038086, 0.00021930546989989565, -0.001696114112366814, -0.004095014454879841, 0.0054463545534683255, -0.0008768114833020052, 0.0017339096889001772, -0.009642027068576267, 0.0019079929966599842, 0.0022701204465066013, 0.002338622953972482, 0.008607023853208154, 0.00364958764191375, -0.0035642714904992436, -0.0012118336386597649, 0.003952429882262473, -0.009246666616495118, 0.003357627526299014, 0.0013017732161416794, -0.005672542882131831, -0.007920445478997519, -0.0049551365179675375, -0.00267657900293055, 0.001403938069819731, -0.0012279359716617902, 0.00976747732647417, -0.007959101598640281, -0.005822431966937823, -0.006773681388098576, 0.003062261265906829, -0.004934161262397495, -0.000673759984125812, -0.005111394215614107, -0.005421351949725311, -0.007872612447353567, 0.0034573642650100617, -0.006400774969424151, -0.006101606519742364, -0.0032058680617668106, 0.006456289803373835, -0.008058040396489434, 0.006411878827068894, -0.008061009406170203, 0.010637881127403465, -0.000690047016357357, 0.009797375151117812, 0.0027573996960317663, 0.004759302828026334, -0.008510688382744231, -0.00434375346570562, -0.007595857916754514, -0.003656943276663932, -0.007625329899885675, -0.0025453290317210856, -0.0017762259662829458, -0.008458376620004471, 0.0045024766146241225, 0.0013071508729325318, -0.004025256608234736, 0.00046497866789841535, -0.008121001247888298, 0.0019157727543674518, 0.00858594455727883, -0.003430377838108273, 0.003335686445436126, -0.007364039067130591, 0.004445942169247457, -0.004217710575498066, -0.005732639748473068, 0.0017302614036277088, -0.009597773955196807, 0.006940067989638971, -0.009906082790360357, 0.0035563342326854993, -0.004599830116870818, 0.004703889435377311, 0.009243763814052562, -0.005024900514311145, 0.0015231462505454505, 0.0018408273742468366, 0.0014450537471201964, -0.005538372087101521, 0.009054976660692089, -0.0010574967591782903, 0.006928158293676981, 0.00398953751093063, -0.004051262036214445, 0.0062760002774392455, -0.002069940233728462, 0.007622059410211688, 0.0016254574822247348, 0.00763470303803964, 0.003850615472536443, 0.0043989286154840325, 2.6477492545176903e-05, 0.008865234483912986, 0.002599186189289677, -0.001522865008242951, 0.0018202311543759257, -0.009616199103961184, -0.003968447762308367, 0.0030083437060148374, -0.004198248985944229, 0.002360307626977058, -0.0014246161445331995, -0.00708573380940895, -0.003796478938680286, 0.0013992984969384318, 0.001501322889096977, 0.001803088687293544, 0.0030640617048948277, 0.0030422321917868743, -0.001371596589744744, 0.007931014762940159, -0.0020791535730075956, -0.0012827407541299433, 0.007276482784307678, 0.005509383847656738, 0.004077944291218814, -0.008674454390463094, 0.008085904988930522, 0.004506999704509305, 0.009549343044559028, -0.006627414848694765, 0.00736250917382779, -0.00675013083258919, 0.002759967452969071, -0.006993713472579406, 0.006960162597128728, 0.0054467316461184745, 0.002084629717012043, -0.0018561057543484683, -0.00829593422227145, 0.0039487601069924895, -0.0006838071477969266, 0.005694646419084961, 0.007327637804663507, 0.00976373572946224, 0.0073930423862153235, -0.009765684230250305, -0.0024966133481938626, 0.004599896260738639, -0.006567391327938739, 0.0004209040573438822, -0.008913409990229347, -0.006000037331824038, -0.009629546903884772, 0.005671718547323488, -0.0057563640697589425, -0.0030929542260309485, 0.008873810937570802, 0.0037756955867626497, -0.009363220045417082, -0.006706296112475712, 0.00242957568533977, 0.0015445802392742057, -0.0058130919845788805, 0.00868424008862456, 0.0017011582721564824, 8.047956410792567e-05, 0.0017983759581957778, 0.0039038257107079006, -0.004073584594798482, -0.0018070196707074078, -0.006248031534653672, -0.00588147593570404, 0.008887431825010844, 0.004791026235403253, 0.00027086994777116816, -0.004906431900785178, -0.0049128724867090415, -0.00955931579817779, -0.0005886826065853364, -0.0037638479829876846, 0.0042568213548120765, -0.002444773805058869, -0.006155434168274566, -0.008222143423912143, -0.008655011198871599, 0.0035876689420855524, -0.0009262596775972475, 0.0007315927523935747, 0.00793319945070517, 0.009806750465051434, -0.005662025465231705, 0.003261490775768351, -0.0047335000667743455, -0.009586980589088138, 0.005167577070731724, -0.0035995841783568387, -0.002183811240383757, 0.0017663424499854059, 0.006426020199154034, 0.0027750036168766264, 0.007453025848461838, -0.0045291267413842, 0.005960945747678425, -0.006287238196295311, 0.009411402813021942, 0.0037497641904793728, -0.0056898469423274575, 0.008947411143675388, 0.004617123832687325, -0.004921174258444811, -0.005733756754309989, 0.00036401958718881725, -0.009486751636169419, -0.005850597097399202, -0.0015062846576195993, -0.002516596427728556, -0.0007284848868096242, -0.004447409290447074, 0.0017356884322151387, 0.007277100433802701, -0.0076493449711496474, 0.00034758286869459736, -0.007358639148041218, 0.004337194963663798, -0.002078797117190031, 0.0012296132480827452, -0.00633437877748668, -0.0066026654748887244, 0.00030826277831521334, -0.0028877816792215105, 0.009408407498005995, 0.005576748877809586, 0.004775475595328483, 0.008455100559703593, -0.008673114514741615, 0.0010438745737229242, 0.0016895248217993263, 0.008839168044944236, -0.004629405415284631, -0.0051834173624296905, -0.007371149991401395, -0.010297021353858488, 0.008590393179267387, 0.003112755629820584, 0.005702995678814672, -0.004583851921775263, 0.0006122743437952375, -0.008720929787225964, -0.0007756182072272753, 0.009016125913991058, 0.00753016681823759, -0.003821967635073424, 0.008967768707117735, -0.00536572829664826, 0.008614938536704312, 0.009160787389996955, 0.005984042241461706, 0.0026089688375540224, 0.007875590086447535, -0.003678737956842369, 0.0069788696203729825, 0.0017497477665153343, -0.009124886877100126, -0.0030551303517662477, -0.006758587702792421, 0.009636661140276163, -0.0002245937862339217, 0.001034893671878026, 0.002789452386444516, -0.002628351421719896, -0.00726204087364051, 0.006442342527372065, -0.0063276723950019265, 0.00022636754399694295, -0.005513666119501741, -0.008043103815397865, 0.007243828363790687, 0.009458379217768062, 0.009216687318284966, 0.008131101966327074, 0.005577360626592472, -0.0033371021735228027, -0.00850603257235736, -0.001726949326804697, -0.005355317781398861, -0.007350236406422443, -0.008931458291357048, 0.0045118752669321294, -0.00954150970325172, 0.005411582533019299, -0.0076222090497218365, -0.009023128723837774, -0.008207782771053773, 0.0027629348942727642, -0.005395951838837874, -0.001367388525316127, 0.0007204289050150402, 0.007594067423058993, 0.0045408626554780075, -0.004593440859918628, -0.006922258375984978, -0.008363347855763455, -0.0039680327082002, -0.005456300019013004, -0.00017554754584194813, 0.003665848129914583, 0.0042327562657518405, -0.00432944606945983, -0.002156439279536973, -0.0051279316232747205, 0.005770906086086287, -0.008863250353565362, 0.0037429240768972988, 0.005573916893773372, 0.005331983475412096, -0.004811581514812934, -0.002523698655978234, 0.001751910625564507, -0.004543502821125038, -0.0025829447820274955, -0.0060589101117502235, -0.0008028007925545563, -0.008940465974880686, 0.005995917836850513, -0.008683010613270377, 0.0005991616297342851, -0.003863783806568676, 0.0015508962608992893, 0.00918867679657164, 0.0029114520561740803, -0.00889514869427209, -0.0013919485853921693, 0.00020040987998873482, 0.0007237244451204771, 0.0036278478256722953, -0.004447880177619639, -0.007422762017217185, -0.002146498148178357, 0.009128175835428635, -0.006257415746591903, 0.008079680193547342, 0.0008761164962516388, -0.000861832510583278, 0.007640745004028414, -0.0008279206026016971, 0.0044835571944173815, -0.002194081034672289, 0.008080877527897727, 0.0038004705775831348, 0.003992437148585228, -0.003445625148678173, 0.004822519314628759, 0.0027212240538073374, -0.005466887290050634, -0.007081722461592389, 0.005927811782249879, 0.008862714006332826, -0.0008374004993945356, 0.0018197136447370527, 0.006951099556892567, -0.000855342803258806, 0.009037466080947939, 0.001515015679079121, 0.006628763228988263, 0.008424741596570298, 0.006310468181210848, -0.007141162530020938, 0.0029078632365491628, -0.0020312868860264607, -0.008745556694659642, -0.0015193573987566397, -0.004826297137570466, 0.007581907046400153, -0.009333940054438113, 0.008838221891736284, -0.0032659511722004852, -0.0028658125438999647, -0.01008271126886913, -0.0062955567129320805, -0.00197471472045921, 0.008326232708988501, -0.007774816708638018, 0.008906030179521695, 0.0073897855409704545, -0.0006440832153741146, -0.003143561767007987, -0.005345114269471594, 0.0018687022320042165, -0.008911106113387557, -0.00968780297724258, -0.0014238646447077067, -0.008638470294991572, -0.0049609676914219615, -0.0048201270179105095, -0.004936198998944467, -0.007834637728569682, -0.010257598177050969, -0.007690279552938732, 0.0018233389686207154, 0.009238988830701823, 0.00980710275909645, -0.0021656636832207135, -0.006429817624973892, 0.002775212850156178, -0.00019389603181953644, 0.010152112851914362, -0.008263697179112003, 0.005664682634302578, -0.0047994277205891936, -0.004601288892595933, 0.003250267898857288, -0.004818847157591884, 0.003317239947580099, 0.00034638659748336027, -0.0005018775069730661, 0.0010937681002310836, -0.004258922309967778, 0.004131538137175205, -0.0017028872238733358, -0.0027890111845081307, 0.0065731367875340296, 0.008499312212574184, -0.00907979107069934, -0.005347493995684308, -0.0030296222560525095, 0.006299314858054831, 0.00970976656258902, 0.009379327334370323, 0.008098960549939839, -0.004068765349403308, 0.009840089580567942, -0.005011614285351263, -0.007881876381557856, 0.009019037934597617, -0.005331656458010169, 0.0035995452035280833, -0.008832869051472004, 0.00483921106541301, 0.007880457196434074, -0.004551268726675332, -0.0021489011452055598, -0.002514018471950142, 0.004975722456270955, -0.005072489790009412, -0.006563109561791086, -0.0010141649757748055, -0.003910635294257957, 0.0067835694580980705, -0.005454069980474665, 4.7789579840321746e-05, 0.009129089053534215, 0.0024021440682910574, 0.007345751348275406, 0.008804130200773077, 0.005015286889497747, 0.003991450910542511, 0.00886141774038324, 0.009888013902206226, -0.0007558013518991013, -0.0083554270013657, -0.00414410784597009, -0.006703883717797098, -0.0016502101493898582, -0.007374210454701868, 0.002082519970795519, -0.0023438939439403787, 0.007907733963115702, 0.009355896477730349, 0.0009375291209834096, -0.004503717298659338, 0.0018446138798859973, 0.008191109351508465, -0.002121567201065286, 0.0010415583034548476, -0.004567008905402948, -0.0008911155443139623, -0.00196572371253329, -0.005498525443284708, 0.00011735505600959825, -0.003264540987300189, -0.001962141961279456, 0.0004992689293949931, 0.005649693608152121, -0.0030445478251642575, 0.008274524071946749, 0.0076479752955238576, -0.00938650582342595, -0.004927124728046702, -0.0010772884889961238, -0.008328936824298852, -0.003528249649993036, 0.004801957147782709, 0.004267500578737825, 0.0017876768711580775, 0.004210362805374157, -0.006202773429866161, -0.0031662007820601, 0.0032943635497807793, 0.006409789183855079, -0.00022544442780373224, -0.0027347015586647403, -0.007935927757239081, 0.007415097179309068, -0.008221060627272613, -0.0016844285577916505, 0.0015246489885264202, 0.008836193777095, -0.006712605284643315, -0.0031067086503875395, -0.009053862466699944, -0.0019616579552403884, 0.0017456548332416043, -0.00624366291023604, -0.0033134376570283035, -0.007952859654066937, -0.0010203092650177817, 0.002906511188764059, 0.0045576238702213275, 0.009046274966815274, -0.1631556110254066], "parameter2": [0.004298560854326959, 0.001997866731510016, 0.0020272290479707187, 0.009676941331737307, -0.009616302744479045, 0.0034475264069684978, 0.006273553954443402, 0.00019610522547738171, -0.003320878888184553, 0.005816781684827175, -0.007591595160905768, -0.0011592589159427286, 0.00039908659506553205, 0.0038792088856398166, -0.008182254606574062, -0.005444719733495465, -0.0017939328948202065, 0.002465897771715114, 0.007739229232190676, 0.0023765594521723667, -0.00711912252596584, 0.009611667403953895, 0.0074357263453214825, 5.445936324788794e-05, 0.008447027483638089, 0.0011805698964566177, 0.00846604019876697, 0.006597946633604663, 0.009365756000422826, 0.008395580816552575, -0.009186919849803112, -0.00650571231844416, -0.002217303492537797, 0.009042859670993763, -0.003996713550848561, -0.0080395900829676, 0.007735403055277441, -0.001305130904927164, 0.007768687070663952, -0.006837924077941409, 0.0022860706429531537, -0.001194726074214186, -0.008470469089517433, 0.003639687522814319, -0.005052033812108381, -0.009455601937891168, -0.00880104648097351, -0.00877842847486555, 0.008154666351986587, 0.004797725336823618, 0.006978797648306854, 0.0034516349811649287, 0.000578582388469292, -0.0042156314703474616, 0.009925879575962708, -0.0037655425761167535, -0.0005796320708112022, -0.0024353135758846457, 0.009276192321482836, -0.0065413214826565225, -0.004503416277545584, 0.003614659024251408, -0.008934099384004376, 0.001816554418738502, -0.0004834956967432674, -0.003684452679456027, -0.005231739901885264, 0.00029031431980378373, -0.002445186099449952, -0.0008696071530691587, -0.003635964171726535, 0.009409967212308568, -0.007331210433168587, -0.008063949327390876, -0.0031320783885675947, 0.0015084983918500433, 0.003183498592179373, -0.002054877209249753, 0.009985512322613351, -0.0029621725332256237, 0.005081988559538901, 0.002751560704782499, 0.006261127770419068, 0.009727317770054287, 0.007795790361093513, 0.0041521890961696084, 0.003973365151565667, -0.00350242283552193, -0.007400002725423211, -0.008786166511007635, -0.00496666409588591, -0.001356842458397544, 0.00043992470067246787, 0.005461664170942673, 0.009180508290392981, -0.007440616121400778, -0.007859882860057395, 0.0017939045630178919, 0.004908000265795238, 0.006963043017585943, 0.008716641062852715, 0.009668506484543773, -0.0020039505362129282, -0.0023932944942880612, -0.0070438433075427995, 0.003698663649715081, 0.0031352609148108425, 0.007241258796798276, -0.008054835824368974, -4.444939768286233e-05, 0.0016216161293418358, -0.005168848993897873, -0.006619490464458784, 0.007191626325639628, -0.008829301436071892, -0.0005875838165328854, -0.00768333790551471, -0.0008588233839806693, 0.00959924264039356, -0.0015258655350542372, 0.007442369573424894, -0.007324242239364144, -0.004574718511669258, -0.0023237522148931255, -0.002003832939493855, 0.0031021222915231434, -0.002810434127117325, 0.0038804433120270265, 0.002517312330590515, -0.0020166013314585683, -0.0018183405188110472, 0.002697253720845897, -0.008599162960185204, 0.006196722707299811, 0.002784194232670466, 0.004113035341220673, 0.0009873368520583793, -0.007290630750415374, -0.0018992163217194053, -0.0018927213678019432, -0.0038878056811329376, -0.007473821908057034, 0.005069956720052046, -0.007804116534887234, 0.0017321481558690533, 0.004064286185919478, 0.0023746870111717145, 0.009473912945784814, -0.008323396644200544, 0.007080644036219096, -0.009416016275824505, 0.0002511404033338137, -0.0015141253851168864, 0.00048368628683752703, -0.0029459116082054928, -0.0064689125708734165, -0.010025604330067928, 0.0006084078124863174, 0.007348385829612137, -0.0025356085653404923, -0.0055429208306636965, -0.008693708250906325, -0.006395216312667634, -0.005572071316619055, -0.00799972463840089, -0.004699198879533617, -0.008677010076134023, -0.00868790382010399, 0.007125515618102422, -0.0067575870365017944, 0.001193649272428928, 0.005469111172273225, -0.0008718026512111007, -0.006932634294815904, -0.006008075818204468, -0.0013403153455091312, 0.0005646865682604859, -0.003011193723996612, 0.0056295911387934175, 0.0050204250673923706, 0.008544236246034623, -0.009420949316274262, 0.007913829635853716, -0.002189669995021524, 0.0078447389424701, 0.0038158690642814937, 0.009410393595177693, 0.005185592626030727, -0.002983346176240818, 0.0002699022369678252, -0.0028048233725148745, -0.0029261744143346787, -0.004781842199912151, -0.00046261235415774745, 0.003977349725801573, -0.004453190493609452, 0.0002758225489304563, -0.007891608479867852, -0.007151673365904075, -0.00885423381695815, 0.009835634935171643, -0.009922731530592447, -0.0064285678632784735, 0.001997556469848051, -0.006750697277374177, 0.007930930840687899, 0.004392561230071573, 0.008972360264882032, 0.00015265790836809014, -0.004281489400087567, 0.001252594619155673, 0.008265124636178628, 0.00017829937955685338, -0.004655784433916162, 0.007144652359546768, -0.002199870682951352, -0.009972319818243492, -0.005269889684854646, -0.003888084596333015, 0.0068075126985821, -0.0006084286496420792, -0.0006636816981013538, -0.003277888678790381, 0.007613381836405089, 0.008626044372768777, 0.011552961298064502, -0.002769477179886637, 0.009322792815742591, 0.006206712326797654, 0.003513835949522547, -0.004801479381534207, -0.005943546245006724, -0.00631427808424813, 0.00870118743349228, -0.0041185456399805784, -0.0005192553470318163, -0.0004965192246143411, 0.005563412539524217, 0.007116907977583533, -0.006956053454386209, -0.0010796827671518993, 0.006627047715743622, 0.005898968111607674, -0.007951793731849666, -0.006872144127829885, -0.0036309614139323327, -0.010273147462250533, -0.0017458071197539303, -0.007847718493534474, 0.0016502314149549999, -0.00506881141167652, 0.002164906659229661, -0.007858955283728097, 0.009799788912080982, 0.008651435143922671, -0.0021641191008241177, -0.004827058706279775, -0.00528737516417701, -0.0003321322138318478, -0.00919994488601968, 0.0030003475893394067, -0.0015334102587183436, -0.0024520758289946374, 0.005828970040293558, 0.004180667878115058, 0.009086736152516563, -0.002737298470217056, 0.006552386133083449, 0.005630885106079528, -0.0028514356508262655, 0.0021564311993866846, -0.004228636603675513, 0.00725919275252279, -0.0075485784115434254, -0.006024540063410918, -0.006339538985825619, -0.0019394240356120657, 0.004585661736036547, 0.0008241922523295909, -0.0002464708405578431, -0.009989273664271344, -0.0016917173937560034, -0.009019994990121282, -0.005834733870630056, 0.008994928142211138, -0.005691995930733953, 0.007166694973543744, 0.005840944328437384, -0.005462468955302105, 0.002441110130033891, -0.007686592757334342, 0.004161264494340201, 0.00274918806780365, 0.00591573212808512, -0.0001194006264014678, 0.007905439689104274, -0.009277554725853223, -0.004142045115100664, 0.0038511163877160927, -0.0012342770539933705, -0.0065409529368487965, -0.008105219754649597, 0.006064818354055173, -0.0009477198716844226, 0.00789278415686744, 0.005161718160896578, -0.0018054019704622029, -0.002529982281916397, 6.552600449394636e-06, 0.009693360242028607, 0.004456513470423205, -0.009897063832882426, 0.0042337520670048985, 0.008390191977620842, 0.0044948000462295785, -0.006718869767675266, 1.681828147715055e-05, -0.006959957339806542, -0.0028201727063545175, 0.009140196567239169, 0.008109292294282271, -0.004343291209736286, -0.0029868045993850707, 0.00225336991157558, 0.00962702600160766, -0.007262488234774751, -0.005300194769313311, 0.0074710699641531405, -0.00016197185354434573, 0.00824999315176623, -0.007978778735387616, 0.0006535274003803516, -0.00347457155581329, -0.003669357207977108, -0.001062467772977355, -0.001338610509095897, -0.0028529942114436644, 0.008299210068811442, 0.004634832538433663, 0.004550949886474166, -0.0044034662919243935, 0.0015544051619385906, 0.005583590320544899, 0.005911758921411137, -0.003109459239410043, 0.005417248636895399, 0.0047179332629571505, -0.0069503909516890365, 0.007318919696196488, -0.001173597336433473, -0.00027186055726605493, -0.00017458928315071653, 0.001566723766977183, 0.002423474694497158, -0.0002871190212818344, 0.007335731964323186, 0.0023473842144565785, -0.001971190414417611, -0.0019135713954373328, 0.0062165765206490566, -0.003036125402560176, -0.006059975572462822, -0.008557844929748797, 0.007520532354627402, 0.00837075031159533, -0.007597831831498164, -0.0035740621565400563, -0.006492368146632427, -0.007367533671330698, 0.007997370070165202, -0.008862503194611418, 0.009413140959919804, -0.006842683439088702, 0.007269361534527146, 0.00133011746899876, -0.0026414828132172935, -0.003153152647992507, 0.005147343960337408, -0.0037085789135467818, 0.003146541987893548, 0.00034656149180954226, -0.0003006966713478668, 0.008023435684429004, 0.0010927290000927493, 0.006537229264549259, 0.004511498679222589, -0.009228804094970223, 0.005462377672380971, -0.0056626277278817375, 0.008062789126755043, -0.009141525397768038, -0.0033385511777898206, -0.008005287280060716, -0.001226246388637199, 0.006659145818988857, -0.004036193052387534, -0.007290631651595377, -0.0033947083172655426, 0.006021947794156405, -0.006960346684480523, -0.0057630688698891075, -0.00883232195552341, 0.0041142659868816, -0.0024517296747792205, -0.0034636051300650094, 0.004372537042779789, -0.0034780228074412717, 0.0043322622803249975, 0.0059787813422820775, -0.005451166459485915, 0.009869160512380822, -0.0067527955632508295, -0.004183249613040578, -0.006646447833212991, -0.001576545064211522, -0.00039861799367323135, 0.00044353563930050934, 0.00707192351786736, 0.007788958840286996, -0.005598102397745965, 0.002457926061809135, -0.007770270761257019, -0.0008206487738318404, -0.003553298098430202, -0.0038830903845257117, -0.00034811366039592576, 0.004596560437050463, -0.008616394897665816, 0.0075834096407407315, 0.004696059371224332, -0.00646996033272505, 0.009015062539928509, 0.0001262560142903899, 0.009996140335116413, -0.006054968088944615, 0.0016039661549861013, -0.0045113025972301395, -0.003916732604618415, 0.0022049000044609855, 0.008434447168917262, 0.006417809160172675, 0.004195463810410395, 0.0015625405679050885, 0.008701723988957091, -0.00015294418394584284, 0.007912015453653441, 0.0062892361580534455, -0.005723296908960779, 0.005665856618403588, -0.009483955088064933, -0.0031461567072424926, -0.005647562526025522, -0.0003425417668629074, 0.0047369934825325245, -0.008046283041148653, 0.0005947443766498305, 0.006919435624920425, -0.005427095793636476, 0.003542809890844659, 0.001857671122572769, -0.009798723076814848, -0.0004834499057631722, 0.004175366693815849, -0.00912042623100613, 0.007590454872948546, 0.0004016250077032727, -0.009386709284541458, -0.005511798991242073, 0.009073513670697395, 0.0016464009485127361, -0.007850510707316096, -0.004249054876361255, -0.000865956021419112, -0.009581074681150737, -0.0017676935077160423, -0.00021082653291174355, -0.005126405997406049, 0.0012307017639784327, 0.0050648028537720515, -0.005283299954194555, 0.0024099804195040343, 0.002792443435318676, 0.008970813058463216, 0.00556554455874, 0.006966885785566427, -0.00019160731635799936, -0.006293029292105613, 0.00991629476888471, -0.007412863808498746, -0.0005708607342170275, -0.00863813911560479, 0.008877008467712978, 0.009298498328272398, 0.004387784843755781, -0.0030001235385518103, -0.004912352632340843, -0.00469393254465075, -0.007454126306045382, 0.00043781241133917316, -0.007163654139048286, -0.003665375140503518, 0.0025340888926686156, 0.004550869582641581, -0.009514546234612769, -0.0013976467745515236, 0.0030424513404259325, 0.007064916362401199, -0.0004935037099094847, 0.009384076119580196, -0.004687303933033499, -0.00972982611887839, -0.000324945131479504, -0.0048777369466546, 0.0064743237584445204, -0.005344538225313722, -0.0037873694641446785, 0.005824549475370335, 0.0043028646116023885, 0.0011610137014789286, 0.0044876146067748994, -0.0033467544680317795, -0.006844992054504026, -0.009401049576200301, -0.00048705456145318375, -0.00755878835053367, -0.009530933343540887, 0.010406470768521615, 0.006237044574341516, -0.005976556199091108, -0.011046991204983399, 0.011464459720703443, -0.00376063524863831, -0.003848068427777477, 0.003876195204512089, -0.007915665472568065, -0.005203720091363411, 0.008238865073074527, 0.002008227751004722, 0.001830319691337132, -0.0012317475416600417, -0.17326577653134598]} \ No newline at end of file diff --git a/Ramp/steady/train/preProcessing.sh b/Ramp/steady/train/preProcessing.sh new file mode 100755 index 00000000..00fbcdf5 --- /dev/null +++ b/Ramp/steady/train/preProcessing.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# the script will exit if there is any error +set -e + +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit 1 +fi + +# for the remove command +shopt -s extglob + +function preProcess() +{ + # run full primal using SST as reference data + cp constant/turbulenceProperties_SST constant/turbulenceProperties + cp -r 0_orig 0 + mpirun -np 2 python runPrimal.py + reconstructPar + rm -rf processor* + + # rename U to UData + getFIData -refFieldName U -refFieldType vector -time 9999 + getFIData -refFieldName p -refFieldType scalar -time 9999 + + cp -rf */*Data.gz 0/ + rm -rf {1..9}* + + # get ready for the KW run + cp constant/turbulenceProperties_KW constant/turbulenceProperties +} + +cd c1 +preProcess +cd ../c2 +preProcess +cd .. + diff --git a/Ramp/steady/train/probePointCoords.json b/Ramp/steady/train/probePointCoords.json new file mode 100755 index 00000000..addeb232 --- /dev/null +++ b/Ramp/steady/train/probePointCoords.json @@ -0,0 +1,54 @@ +{ + "probePointCoords": [ + [1.7813, -0.4998, 0.0250], + [1.7814, -0.4994, 0.0250], + [1.7814, -0.4988, 0.0250], + [1.7814, -0.4982, 0.0250], + [1.7815, -0.4974, 0.0250], + [1.7815, -0.4965, 0.0250], + [1.7816, -0.4954, 0.0250], + [1.7817, -0.4941, 0.0250], + [1.7818, -0.4925, 0.0250], + [1.7819, -0.4906, 0.0250], + [1.7821, -0.4884, 0.0250], + [1.7822, -0.4857, 0.0250], + [1.7824, -0.4824, 0.0250], + [1.7827, -0.4785, 0.0250], + [1.7830, -0.4738, 0.0250], + [1.7833, -0.4681, 0.0250], + [1.7838, -0.4613, 0.0250], + [1.7843, -0.4532, 0.0250], + [1.7849, -0.4434, 0.0250], + [1.7857, -0.4317, 0.0250], + [1.7866, -0.4177, 0.0250], + [1.7876, -0.4008, 0.0250], + [1.7889, -0.3805, 0.0250], + [1.7905, -0.3563, 0.0250], + [1.7923, -0.3271, 0.0250], + [1.7944, -0.2950, 0.0250], + [1.7964, -0.2625, 0.0250], + [1.7985, -0.2301, 0.0250], + [1.8006, -0.1976, 0.0250], + [1.8026, -0.1652, 0.0250], + [1.8047, -0.1327, 0.0250], + [1.8068, -0.1003, 0.0250], + [1.8088, -0.0678, 0.0250], + [1.8109, -0.0354, 0.0250], + [1.8130, -0.0029, 0.0250], + [1.8150, 0.0295, 0.0250], + [1.8171, 0.0619, 0.0250], + [1.8192, 0.0944, 0.0250], + [1.8212, 0.1268, 0.0250], + [1.8233, 0.1593, 0.0250], + [1.8254, 0.1917, 0.0250], + [1.8274, 0.2242, 0.0250], + [1.8295, 0.2566, 0.0250], + [1.8316, 0.2891, 0.0250], + [1.8336, 0.3215, 0.0250], + [1.8357, 0.3540, 0.0250], + [1.8378, 0.3864, 0.0250], + [1.8398, 0.4189, 0.0250], + [1.8419, 0.4513, 0.0250], + [1.8440, 0.4838, 0.0250] + ] +} \ No newline at end of file diff --git a/Ramp/steady/train/runScript.py b/Ramp/steady/train/runScript.py new file mode 100755 index 00000000..ca47103b --- /dev/null +++ b/Ramp/steady/train/runScript.py @@ -0,0 +1,307 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +import argparse +import numpy as np +import json, copy +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder +from mphys.scenario_aerodynamic import ScenarioAerodynamic + +np.set_printoptions(precision=8, threshold=10000) + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +# which case to run +parser.add_argument("-index", help="which case index to run", type=int, default=0) +args = parser.parse_args() + + +# ============================================================================= +# Input Parameters +# ============================================================================= + +np.random.seed(1) + +cases = ["c1", "c2"] +U0 = [10, 20.0] +CDData = np.array([0.1683, 0.7101]) + + +with open("./probePointCoords.json") as f: + probePointCoords = json.load(f) + +# Input parameters for DAFoam +daOptions = { + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1e3, + "primalBC": { + "U0": {"variable": "U", "patches": ["inlet"], "value": [U0[0], 0, 0]}, + "useWallFunction": True, + }, + "primalVarBounds": {"omegaMin": -1e16}, + "regressionModel": { + "active": True, + "model1": { + "modelType": "neuralNetwork", + "inputNames": ["PoD", "VoS", "PSoSS", "KoU2"], + "outputName": "betaFIK", + "hiddenLayerNeurons": [20, 20], + "inputShift": [0.0, 0.0, 0.0, 0.0], + "inputScale": [1.0, 1.0, 1.0, 1.0], + "outputShift": 1.0, + "outputScale": 1.0, + "activationFunction": "tanh", + "printInputInfo": True, + "defaultOutputValue": 1.0, + "outputUpperBound": 1e1, + "outputLowerBound": -1e1, + "writeFeatures": True, + }, + "model2": { + "modelType": "neuralNetwork", + "inputNames": ["PoD", "VoS", "PSoSS", "KoU2"], + "outputName": "betaFIOmega", + "hiddenLayerNeurons": [20, 20], + "inputShift": [0.0, 0.0, 0.0, 0.0], + "inputScale": [1.0, 1.0, 1.0, 1.0], + "outputShift": 1.0, + "outputScale": 1.0, + "activationFunction": "tanh", + "printInputInfo": True, + "defaultOutputValue": 1.0, + "outputUpperBound": 1e1, + "outputLowerBound": -1e1, + "writeFeatures": True, + }, + }, + "function": { + "pVar": { + "type": "variance", + "source": "patchToFace", + "patches": ["bot"], + "scale": 1.0, + "mode": "surface", + "varName": "p", + "varType": "scalar", + "timeDependentRefData": False, + }, + "UFieldVar": { + "type": "variance", + "source": "boxToCell", + "min": [-10.0, -10.0, -10.0], + "max": [10.0, 10.0, 10.0], + "scale": 0.1, + "mode": "field", + "varName": "U", + "varType": "vector", + "indices": [0, 1], + "timeDependentRefData": False, + }, + "UProbeVar": { + "type": "variance", + "source": "allCells", + "scale": 1.0, + "mode": "probePoint", + "probePointCoords": probePointCoords["probePointCoords"], + "varName": "U", + "varType": "vector", + "indices": [0, 1], + "timeDependentRefData": False, + }, + "CDError": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + "calcRefVar": True, + "ref": [0.0], # we will assign this laterbecause each case has a different ref + }, + "betaKVar": { + "type": "variance", + "source": "allCells", + "scale": 0.01, + "mode": "field", + "varName": "betaFIK", + "varType": "scalar", + "timeDependentRefData": False, + }, + "betaOmegaVar": { + "type": "variance", + "source": "allCells", + "scale": 0.01, + "mode": "field", + "varName": "betaFIOmega", + "varType": "scalar", + "timeDependentRefData": False, + }, + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": { + "gmresRelTol": 1.0e-6, + "pcFillLevel": 1, + "jacMatReOrdering": "natural", + }, + "normalizeStates": { + "U": U0[0], + "p": U0[0] * U0[0] / 2.0, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "inputInfo": { + "model1": { + "type": "regressionPar", + "components": ["solver", "function"], + }, + "model2": { + "type": "regressionPar", + "components": ["solver", "function"], + }, + }, +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builders to initialize the DASolvers + builders = {} + for idxI, case in enumerate(cases): + options = copy.deepcopy(daOptions) + options["primalBC"]["U0"]["value"] = [U0[idxI], 0.0, 0.0] + options["function"]["CDError"]["ref"] = [float(CDData[idxI])] + builders[case] = DAFoamBuilder( + options=options, mesh_options=None, scenario="aerodynamic", run_directory=case + ) + builders[case].initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # initialize scenarios + self.scenarios = {} + for case in cases: + self.scenarios[case] = self.mphys_add_scenario(case, ScenarioAerodynamic(aero_builder=builders[case])) + + self.add_subsystem("obj", om.ExecComp("value=c1+c2")) + + def configure(self): + # configure and setup perform a similar function, i.e., initialize the optimization. + # But configure will be run after setup + + # setup dv for the idv component + nParameters1 = self.c1.coupling.solver.DASolver.getNRegressionParameters("model1") + parameter01 = (np.random.rand(nParameters1) - 0.5) * 0.02 + self.dvs.add_output("parameter1", val=parameter01) + + nParameters2 = self.c1.coupling.solver.DASolver.getNRegressionParameters("model2") + parameter02 = (np.random.rand(nParameters2) - 0.5) * 0.02 + self.dvs.add_output("parameter2", val=parameter02) + + # manually connect the dvs output to the geometry and cruise + for case in cases: + self.connect("parameter1", "%s.model1" % case) + self.connect("parameter2", "%s.model2" % case) + self.connect("%s.aero_post.pVar" % case, "obj.%s" % case) + + # define the design variables to the top level + self.add_design_var("parameter1", lower=-10.0, upper=10.0, scaler=1.0) + self.add_design_var("parameter2", lower=-10.0, upper=10.0, scaler=1.0) + + # add objective and constraints to the top level + self.add_objective("obj.value", scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() + opt_dv = { + "parameter1": prob.get_val("parameter1").tolist(), + "parameter2": prob.get_val("parameter2").tolist(), + } + with open("designVariable.json", "w") as f: + json.dump(opt_dv, f) +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/Ramp/steady/train/runScript_FI.py b/Ramp/steady/train/runScript_FI.py new file mode 100755 index 00000000..ae747a95 --- /dev/null +++ b/Ramp/steady/train/runScript_FI.py @@ -0,0 +1,261 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +import argparse +import numpy as np +import json, copy +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder +from mphys.scenario_aerodynamic import ScenarioAerodynamic + + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +# which case to run +parser.add_argument("-index", help="which case index to run", type=int, default=0) +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= + +idxI = args.index +cases = ["c1", "c2"] +U0s = [10.0, 20.0] +dragRefs = [0.1683459472347049, 0.7101215345814689] +dragRef = dragRefs[idxI] +U0 = U0s[idxI] +case = cases[idxI] +nCells = 5000 + +np.random.seed(0) + +with open("./probePointCoords.json") as f: + probePointCoords = json.load(f) + +# Input parameters for DAFoam +daOptions = { + "solverName": "DASimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1e3, + "primalBC": { + "U0": {"variable": "U", "patches": ["inlet"], "value": [U0, 0, 0]}, + "useWallFunction": True, + }, + "primalVarBounds": {"omegaMin": -1e16}, + "regressionModel": { + "active": True, + "model": { + "modelType": "neuralNetwork", + "inputNames": ["PoD", "VoS", "PSoSS", "KoU2"], + "outputName": "dummy", + "hiddenLayerNeurons": [20, 20], + "inputShift": [0.0, 0.0, 0.0, 0.0], + "inputScale": [1.0, 1.0, 1.0, 1.0], + "outputShift": 1.0, + "outputScale": 1.0, + "activationFunction": "tanh", + "printInputInfo": True, + "defaultOutputValue": 1.0, + "outputUpperBound": 1e1, + "outputLowerBound": -1e1, + "writeFeatures": True, + } + }, + "function": { + "pVar": { + "type": "variance", + "source": "patchToFace", + "patches": ["bot"], + "scale": 1.0, + "mode": "surface", + "varName": "p", + "varType": "scalar", + "timeDependentRefData": False, + }, + "UFieldVar": { + "type": "variance", + "source": "boxToCell", + "min": [-10.0, -10.0, -10.0], + "max": [10.0, 10.0, 10.0], + "scale": 0.1, + "mode": "field", + "varName": "U", + "varType": "vector", + "indices": [0, 1], + "timeDependentRefData": False, + }, + "UProbeVar": { + "type": "variance", + "source": "allCells", + "scale": 1.0, + "mode": "probePoint", + "probePointCoords": probePointCoords["probePointCoords"], + "varName": "U", + "varType": "vector", + "indices": [0, 1], + "timeDependentRefData": False, + }, + "dragVar": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + "calcRefVar": True, + "ref": [dragRef], + }, + "betaVar": { + "type": "variance", + "source": "allCells", + "scale": 1.0, + "mode": "field", + "varName": "betaFIOmega", + "varType": "scalar", + "timeDependentRefData": False, + }, + "drag": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": { + "gmresRelTol": 1.0e-6, + "pcFillLevel": 1, + "jacMatReOrdering": "natural", + }, + "normalizeStates": { + "U": U0, + "p": U0 * U0 / 2.0, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "inputInfo": { + "beta": { + "type": "field", + "fieldName": "betaFIOmega", + "fieldType": "scalar", + "distributed": False, + "components": ["solver", "function"], + }, + }, +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(options=daOptions, mesh_options=None, scenario="aerodynamic", run_directory=case) + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # setup a composite objective + self.add_subsystem("obj", om.ExecComp("val=error1+error2+regulation")) + + def configure(self): + # add the design variables to the dvs component's output + self.dvs.add_output("beta", val=np.ones(nCells), distributed=False) + self.connect("beta", "scenario1.beta") + + # define the design variables to the top level + self.add_design_var("beta", lower=-5.0, upper=10.0, scaler=1.0) + + # add objective and constraints to the top level + # we can connect any function in daOption to obj's terms + self.connect("scenario1.aero_post.UFieldVar", "obj.error1") + self.connect("scenario1.aero_post.dragVar", "obj.error2") + self.connect("scenario1.aero_post.betaVar", "obj.regulation") + self.add_objective("obj.val", scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-6, + "Major optimality tolerance": 1.0e-6, + "Minor feasibility tolerance": 1.0e-6, + "Verify level": -1, + "Function precision": 1.0e-6, + "Major iterations limit": 50, + "Linesearch tolerance": 0.999, + "Hessian updates": 50, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 50, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/Ramp/steady/train/tf_training/0/U b/Ramp/steady/train/tf_training/0/U new file mode 100755 index 00000000..49255e15 --- /dev/null +++ b/Ramp/steady/train/tf_training/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform (5 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (5 0 0); + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + "(bot)" + { + type noSlip; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/tf_training/0/k b/Ramp/steady/train/tf_training/0/k new file mode 100755 index 00000000..7dd4e274 --- /dev/null +++ b/Ramp/steady/train/tf_training/0/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type fixedValue; + value uniform 1e-14; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/train/tf_training/0/nuTilda b/Ramp/steady/train/tf_training/0/nuTilda new file mode 100755 index 00000000..2eb9b19f --- /dev/null +++ b/Ramp/steady/train/tf_training/0/nuTilda @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5e-04; + +boundaryField +{ + "(bot)" + { + type fixedValue; + value uniform 1e-14; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/tf_training/0/nut b/Ramp/steady/train/tf_training/0/nut new file mode 100755 index 00000000..95b5ca1e --- /dev/null +++ b/Ramp/steady/train/tf_training/0/nut @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5E-4; + +boundaryField +{ + "(bot)" + { + type nutLowReWallFunction; + value $internalField; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + +} + + +// ************************************************************************* // diff --git a/Ramp/steady/train/tf_training/0/omega b/Ramp/steady/train/tf_training/0/omega new file mode 100755 index 00000000..44418b36 --- /dev/null +++ b/Ramp/steady/train/tf_training/0/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 30; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type omegaWallFunction; + value $internalField; + blended true; + } + +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/train/tf_training/0/p b/Ramp/steady/train/tf_training/0/p new file mode 100755 index 00000000..0cf3dd94 --- /dev/null +++ b/Ramp/steady/train/tf_training/0/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 0; + } + "(sym.*|top)" + { + type symmetry; + } + + "(bot)" + { + type zeroGradient; + } + + +} + +// ************************************************************************* // diff --git a/Ramp/steady/train/tf_training/constant/polyMesh/boundary b/Ramp/steady/train/tf_training/constant/polyMesh/boundary new file mode 100644 index 00000000..709e6217 --- /dev/null +++ b/Ramp/steady/train/tf_training/constant/polyMesh/boundary @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + inlet + { + type patch; + nFaces 50; + startFace 9850; + } + bot + { + type wall; + inGroups 1(wall); + nFaces 100; + startFace 9900; + } + outlet + { + type patch; + nFaces 50; + startFace 10000; + } + top + { + type symmetry; + inGroups 1(symmetry); + nFaces 100; + startFace 10050; + } + sym1 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 10150; + } + sym2 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 15150; + } +) + +// ************************************************************************* // diff --git a/Ramp/steady/train/tf_training/constant/polyMesh/faces.gz b/Ramp/steady/train/tf_training/constant/polyMesh/faces.gz new file mode 100644 index 00000000..1f70ec0e Binary files /dev/null and b/Ramp/steady/train/tf_training/constant/polyMesh/faces.gz differ diff --git a/Ramp/steady/train/tf_training/constant/polyMesh/neighbour.gz b/Ramp/steady/train/tf_training/constant/polyMesh/neighbour.gz new file mode 100644 index 00000000..fdbe7109 Binary files /dev/null and b/Ramp/steady/train/tf_training/constant/polyMesh/neighbour.gz differ diff --git a/Ramp/steady/train/tf_training/constant/polyMesh/owner.gz b/Ramp/steady/train/tf_training/constant/polyMesh/owner.gz new file mode 100644 index 00000000..7fa34392 Binary files /dev/null and b/Ramp/steady/train/tf_training/constant/polyMesh/owner.gz differ diff --git a/Ramp/steady/train/tf_training/constant/polyMesh/points.gz b/Ramp/steady/train/tf_training/constant/polyMesh/points.gz new file mode 100644 index 00000000..89e10ea4 Binary files /dev/null and b/Ramp/steady/train/tf_training/constant/polyMesh/points.gz differ diff --git a/Ramp/steady/train/tf_training/constant/transportProperties b/Ramp/steady/train/tf_training/constant/transportProperties new file mode 100755 index 00000000..76d23b9c --- /dev/null +++ b/Ramp/steady/train/tf_training/constant/transportProperties @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1e-05; + +Pr 0.7; + +// ************************************************************************* // diff --git a/Ramp/steady/train/tf_training/constant/turbulenceProperties b/Ramp/steady/train/tf_training/constant/turbulenceProperties new file mode 100755 index 00000000..57bfc6ee --- /dev/null +++ b/Ramp/steady/train/tf_training/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmega; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/train/tf_training/paraview.foam b/Ramp/steady/train/tf_training/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Ramp/steady/train/tf_training/system/controlDict b/Ramp/steady/train/tf_training/system/controlDict new file mode 100755 index 00000000..581d3856 --- /dev/null +++ b/Ramp/steady/train/tf_training/system/controlDict @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 5000; + +deltaT 1; + +writeControl timeStep; + +writeInterval 200; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/steady/train/tf_training/system/decomposeParDict b/Ramp/steady/train/tf_training/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/Ramp/steady/train/tf_training/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/steady/train/tf_training/system/fvSchemes b/Ramp/steady/train/tf_training/system/fvSchemes new file mode 100755 index 00000000..a08ac728 --- /dev/null +++ b/Ramp/steady/train/tf_training/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/Ramp/steady/train/tf_training/system/fvSolution b/Ramp/steady/train/tf_training/system/fvSolution new file mode 100755 index 00000000..7b6bd8f7 --- /dev/null +++ b/Ramp/steady/train/tf_training/system/fvSolution @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.1; + smoother GaussSeidel; + maxIter 50; + minIter 1; + } + + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 0; + relTol 0.1; + maxIter 50; + minIter 1; + } + +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/steady/train/tf_training/trainModel.py b/Ramp/steady/train/tf_training/trainModel.py new file mode 100644 index 00000000..e15e55a3 --- /dev/null +++ b/Ramp/steady/train/tf_training/trainModel.py @@ -0,0 +1,99 @@ +import numpy as np +from mpi4py import MPI +from pyofm import PYOFM +import tensorflow as tf +from tensorflow.keras import layers +import os + +print(tf.__version__) + +# Make NumPy printouts easier to read. +np.set_printoptions(precision=6, suppress=False) + +np.random.seed(0) + +# Initialize pyOFM +nCells = 5000 +ofm = PYOFM(comm=MPI.COMM_WORLD) + + +# read the data +cases = ["c1_data", "c2_data"] +features = ["PoD", "VoS", "PSoSS", "KoU2"] +inputs = None +outputs = None +for case in cases: + input = [] + output = [] + # read inputs + for feature in features: + field = np.zeros(nCells) + ofm.readField(feature, "volScalarField", case, field) + input.append(field) + input = np.asarray(input) + input = input.transpose() + + # read outputs + field = np.zeros(nCells) + ofm.readField("betaFIOmega", "volScalarField", case, field) + output.append(field) + output = np.asarray(output) + output = output.transpose() + + if inputs is None: + inputs = np.copy(input) + else: + inputs = np.concatenate((inputs, input), axis=0) + if outputs is None: + outputs = np.copy(output) + else: + outputs = np.concatenate((outputs, output), axis=0) + + +print(inputs) +print(outputs) + +# NN traning +normalizer = layers.Normalization( + input_shape=[ + len(features), + ], + axis=None, +) +normalizer.adapt(inputs) + +model = tf.keras.Sequential( + [ + normalizer, + layers.Dense(units=50, activation="relu"), + layers.Dense(units=50, activation="relu"), + layers.Dense(units=1), + ] +) + +model.summary() + +model.compile( + optimizer=tf.optimizers.Adam(learning_rate=0.001), + loss="mean_squared_error", +) + +model.fit(inputs, outputs, epochs=500, batch_size=500, validation_split=0.2) + +# verify if the mse is consistent with training +outputs_v = model.predict(inputs, verbose=0)[:, 0] +s = (outputs - outputs_v) ** 2 +mse = np.mean(s) +print("mse ", mse) + +# save the model coeffs to files +model.save("model") + + +outputs_out = np.zeros_like(outputs_v, dtype="d") +for idx, v in enumerate(outputs_v): + outputs_out[idx] = v + +# save the predicted beta from NN for debugging +ofm.writeField("betaFIOmegaNN_C1", "volScalarField", outputs_out[:nCells]) +ofm.writeField("betaFIOmegaNN_C2", "volScalarField", outputs_out[nCells:]) diff --git a/Ramp/unsteady/predict/Allclean.sh b/Ramp/unsteady/predict/Allclean.sh new file mode 100755 index 00000000..07c025aa --- /dev/null +++ b/Ramp/unsteady/predict/Allclean.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf */processor* + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/Ramp/unsteady/predict/Allrun.sh b/Ramp/unsteady/predict/Allrun.sh new file mode 100755 index 00000000..3f66b755 --- /dev/null +++ b/Ramp/unsteady/predict/Allrun.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cd baseline && mpirun --oversubscribe -np 4 python runScript.py && cd .. +cd reference && mpirun --oversubscribe -np 4 python runScript.py && cd .. +cd trained && mpirun --oversubscribe -np 4 python runScript.py && cd .. + + diff --git a/Ramp/unsteady/predict/baseline/0/U b/Ramp/unsteady/predict/baseline/0/U new file mode 100755 index 00000000..49255e15 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform (5 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (5 0 0); + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + "(bot)" + { + type noSlip; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/0/betaFINuTildaData b/Ramp/unsteady/predict/baseline/0/betaFINuTildaData new file mode 100644 index 00000000..5ec56390 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/0/betaFINuTildaData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFINuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + bot + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + top + { + type symmetry; + } + sym1 + { + type symmetry; + } + sym2 + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/0/k b/Ramp/unsteady/predict/baseline/0/k new file mode 100755 index 00000000..7dd4e274 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/0/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type fixedValue; + value uniform 1e-14; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/0/nuTilda b/Ramp/unsteady/predict/baseline/0/nuTilda new file mode 100755 index 00000000..2eb9b19f --- /dev/null +++ b/Ramp/unsteady/predict/baseline/0/nuTilda @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5e-04; + +boundaryField +{ + "(bot)" + { + type fixedValue; + value uniform 1e-14; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/0/nut b/Ramp/unsteady/predict/baseline/0/nut new file mode 100755 index 00000000..95b5ca1e --- /dev/null +++ b/Ramp/unsteady/predict/baseline/0/nut @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5E-4; + +boundaryField +{ + "(bot)" + { + type nutLowReWallFunction; + value $internalField; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/0/omega b/Ramp/unsteady/predict/baseline/0/omega new file mode 100755 index 00000000..44418b36 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/0/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 30; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type omegaWallFunction; + value $internalField; + blended true; + } + +} + + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/0/p b/Ramp/unsteady/predict/baseline/0/p new file mode 100755 index 00000000..0cf3dd94 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/0/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 0; + } + "(sym.*|top)" + { + type symmetry; + } + + "(bot)" + { + type zeroGradient; + } + + +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/constant/polyMesh/boundary b/Ramp/unsteady/predict/baseline/constant/polyMesh/boundary new file mode 100644 index 00000000..709e6217 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/constant/polyMesh/boundary @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + inlet + { + type patch; + nFaces 50; + startFace 9850; + } + bot + { + type wall; + inGroups 1(wall); + nFaces 100; + startFace 9900; + } + outlet + { + type patch; + nFaces 50; + startFace 10000; + } + top + { + type symmetry; + inGroups 1(symmetry); + nFaces 100; + startFace 10050; + } + sym1 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 10150; + } + sym2 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 15150; + } +) + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/constant/polyMesh/faces.gz b/Ramp/unsteady/predict/baseline/constant/polyMesh/faces.gz new file mode 100644 index 00000000..1f70ec0e Binary files /dev/null and b/Ramp/unsteady/predict/baseline/constant/polyMesh/faces.gz differ diff --git a/Ramp/unsteady/predict/baseline/constant/polyMesh/neighbour.gz b/Ramp/unsteady/predict/baseline/constant/polyMesh/neighbour.gz new file mode 100644 index 00000000..fdbe7109 Binary files /dev/null and b/Ramp/unsteady/predict/baseline/constant/polyMesh/neighbour.gz differ diff --git a/Ramp/unsteady/predict/baseline/constant/polyMesh/owner.gz b/Ramp/unsteady/predict/baseline/constant/polyMesh/owner.gz new file mode 100644 index 00000000..7fa34392 Binary files /dev/null and b/Ramp/unsteady/predict/baseline/constant/polyMesh/owner.gz differ diff --git a/Ramp/unsteady/predict/baseline/constant/polyMesh/points.gz b/Ramp/unsteady/predict/baseline/constant/polyMesh/points.gz new file mode 100644 index 00000000..89e10ea4 Binary files /dev/null and b/Ramp/unsteady/predict/baseline/constant/polyMesh/points.gz differ diff --git a/Ramp/unsteady/predict/baseline/constant/transportProperties b/Ramp/unsteady/predict/baseline/constant/transportProperties new file mode 100755 index 00000000..781cc786 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/constant/transportProperties @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1e-04; + +Pr 0.7; + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/constant/turbulenceProperties b/Ramp/unsteady/predict/baseline/constant/turbulenceProperties new file mode 100755 index 00000000..e6152958 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmaras; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/unsteady/predict/baseline/paraview.foam b/Ramp/unsteady/predict/baseline/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Ramp/unsteady/predict/baseline/probePointCoords.json b/Ramp/unsteady/predict/baseline/probePointCoords.json new file mode 100755 index 00000000..addeb232 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/probePointCoords.json @@ -0,0 +1,54 @@ +{ + "probePointCoords": [ + [1.7813, -0.4998, 0.0250], + [1.7814, -0.4994, 0.0250], + [1.7814, -0.4988, 0.0250], + [1.7814, -0.4982, 0.0250], + [1.7815, -0.4974, 0.0250], + [1.7815, -0.4965, 0.0250], + [1.7816, -0.4954, 0.0250], + [1.7817, -0.4941, 0.0250], + [1.7818, -0.4925, 0.0250], + [1.7819, -0.4906, 0.0250], + [1.7821, -0.4884, 0.0250], + [1.7822, -0.4857, 0.0250], + [1.7824, -0.4824, 0.0250], + [1.7827, -0.4785, 0.0250], + [1.7830, -0.4738, 0.0250], + [1.7833, -0.4681, 0.0250], + [1.7838, -0.4613, 0.0250], + [1.7843, -0.4532, 0.0250], + [1.7849, -0.4434, 0.0250], + [1.7857, -0.4317, 0.0250], + [1.7866, -0.4177, 0.0250], + [1.7876, -0.4008, 0.0250], + [1.7889, -0.3805, 0.0250], + [1.7905, -0.3563, 0.0250], + [1.7923, -0.3271, 0.0250], + [1.7944, -0.2950, 0.0250], + [1.7964, -0.2625, 0.0250], + [1.7985, -0.2301, 0.0250], + [1.8006, -0.1976, 0.0250], + [1.8026, -0.1652, 0.0250], + [1.8047, -0.1327, 0.0250], + [1.8068, -0.1003, 0.0250], + [1.8088, -0.0678, 0.0250], + [1.8109, -0.0354, 0.0250], + [1.8130, -0.0029, 0.0250], + [1.8150, 0.0295, 0.0250], + [1.8171, 0.0619, 0.0250], + [1.8192, 0.0944, 0.0250], + [1.8212, 0.1268, 0.0250], + [1.8233, 0.1593, 0.0250], + [1.8254, 0.1917, 0.0250], + [1.8274, 0.2242, 0.0250], + [1.8295, 0.2566, 0.0250], + [1.8316, 0.2891, 0.0250], + [1.8336, 0.3215, 0.0250], + [1.8357, 0.3540, 0.0250], + [1.8378, 0.3864, 0.0250], + [1.8398, 0.4189, 0.0250], + [1.8419, 0.4513, 0.0250], + [1.8440, 0.4838, 0.0250] + ] +} \ No newline at end of file diff --git a/Ramp/unsteady/predict/baseline/runScript.py b/Ramp/unsteady/predict/baseline/runScript.py new file mode 100755 index 00000000..6c9c0309 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/runScript.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +from mpi4py import MPI +from dafoam import PYDAFOAM + +gcomm = MPI.COMM_WORLD + +# Set the parameters for optimization +daOptions = { + "solverName": "DAPimpleFoam", + "primalBC": {"useWallFunction": False}, + "printIntervalUnsteady": 1, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + "timeOp": "average" + }, + }, +} + +DASolver = PYDAFOAM(options=daOptions, comm=gcomm) +DASolver() diff --git a/Ramp/unsteady/predict/baseline/system/blockMeshDict b/Ramp/unsteady/predict/baseline/system/blockMeshDict new file mode 100755 index 00000000..623e57a4 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/system/blockMeshDict @@ -0,0 +1,95 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1.0; + +vertices +( + (0. 0 0.) + (10. 0 0.) + (10. 3 0.) + (0. 3 0.) + (0. 0 0.1) + (10. 0 0.1) + (10. 3 0.1) + (0. 3 0.1) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (100 50 1) + simpleGrading + ( + 1 10 1 + ) +); + +edges +( + +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (1 5 6 2) + ); + } + sym + { + type symmetry; + faces + ( + (0 1 2 3) + (4 5 6 7) + ); + } + top + { + type patch; + faces + ( + (3 7 6 2) + ); + } + + bot + { + type wall; + faces + ( + (0 4 5 1) + ); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/system/controlDict b/Ramp/unsteady/predict/baseline/system/controlDict new file mode 100755 index 00000000..f1cd9439 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/system/controlDict @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 2; + +deltaT 0.02; + +writeControl timeStep; + +writeInterval 5; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/system/decomposeParDict b/Ramp/unsteady/predict/baseline/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/unsteady/predict/baseline/system/fvSchemes b/Ramp/unsteady/predict/baseline/system/fvSchemes new file mode 100755 index 00000000..2159392f --- /dev/null +++ b/Ramp/unsteady/predict/baseline/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default backward; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/baseline/system/fvSolution b/Ramp/unsteady/predict/baseline/system/fvSolution new file mode 100755 index 00000000..1f3758d6 --- /dev/null +++ b/Ramp/unsteady/predict/baseline/system/fvSolution @@ -0,0 +1,83 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.001; + smoother GaussSeidel; + maxIter 50; + minIter 1; + } + + "(p|p_rgh|G)Final" + { + $p; + tolerance 1e-8; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 1e-8; + relTol 0; + maxIter 50; + minIter 1; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)Final" + { + $U; + //relTol 0; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + +PIMPLE +{ + nNonOrthogonalCorrectors 0; + nCorrectors 2; + nOuterCorrectors 100; + + residualControl + { + "(U|T|e|h|nuTilda|k|omega|epsilon|p|p_rgh|G)" + { + tolerance 1e-8; + relTol 1e-8; + } + } +} + + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/0/U b/Ramp/unsteady/predict/reference/0/U new file mode 100755 index 00000000..49255e15 --- /dev/null +++ b/Ramp/unsteady/predict/reference/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform (5 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (5 0 0); + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + "(bot)" + { + type noSlip; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/0/betaFINuTildaData b/Ramp/unsteady/predict/reference/0/betaFINuTildaData new file mode 100644 index 00000000..5ec56390 --- /dev/null +++ b/Ramp/unsteady/predict/reference/0/betaFINuTildaData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFINuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + bot + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + top + { + type symmetry; + } + sym1 + { + type symmetry; + } + sym2 + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/0/k b/Ramp/unsteady/predict/reference/0/k new file mode 100755 index 00000000..7dd4e274 --- /dev/null +++ b/Ramp/unsteady/predict/reference/0/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type fixedValue; + value uniform 1e-14; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/0/nuTilda b/Ramp/unsteady/predict/reference/0/nuTilda new file mode 100755 index 00000000..2eb9b19f --- /dev/null +++ b/Ramp/unsteady/predict/reference/0/nuTilda @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5e-04; + +boundaryField +{ + "(bot)" + { + type fixedValue; + value uniform 1e-14; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/0/nut b/Ramp/unsteady/predict/reference/0/nut new file mode 100755 index 00000000..95b5ca1e --- /dev/null +++ b/Ramp/unsteady/predict/reference/0/nut @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5E-4; + +boundaryField +{ + "(bot)" + { + type nutLowReWallFunction; + value $internalField; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/0/omega b/Ramp/unsteady/predict/reference/0/omega new file mode 100755 index 00000000..44418b36 --- /dev/null +++ b/Ramp/unsteady/predict/reference/0/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 30; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type omegaWallFunction; + value $internalField; + blended true; + } + +} + + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/0/p b/Ramp/unsteady/predict/reference/0/p new file mode 100755 index 00000000..0cf3dd94 --- /dev/null +++ b/Ramp/unsteady/predict/reference/0/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 0; + } + "(sym.*|top)" + { + type symmetry; + } + + "(bot)" + { + type zeroGradient; + } + + +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/constant/polyMesh/boundary b/Ramp/unsteady/predict/reference/constant/polyMesh/boundary new file mode 100644 index 00000000..709e6217 --- /dev/null +++ b/Ramp/unsteady/predict/reference/constant/polyMesh/boundary @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + inlet + { + type patch; + nFaces 50; + startFace 9850; + } + bot + { + type wall; + inGroups 1(wall); + nFaces 100; + startFace 9900; + } + outlet + { + type patch; + nFaces 50; + startFace 10000; + } + top + { + type symmetry; + inGroups 1(symmetry); + nFaces 100; + startFace 10050; + } + sym1 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 10150; + } + sym2 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 15150; + } +) + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/constant/polyMesh/faces.gz b/Ramp/unsteady/predict/reference/constant/polyMesh/faces.gz new file mode 100644 index 00000000..1f70ec0e Binary files /dev/null and b/Ramp/unsteady/predict/reference/constant/polyMesh/faces.gz differ diff --git a/Ramp/unsteady/predict/reference/constant/polyMesh/neighbour.gz b/Ramp/unsteady/predict/reference/constant/polyMesh/neighbour.gz new file mode 100644 index 00000000..fdbe7109 Binary files /dev/null and b/Ramp/unsteady/predict/reference/constant/polyMesh/neighbour.gz differ diff --git a/Ramp/unsteady/predict/reference/constant/polyMesh/owner.gz b/Ramp/unsteady/predict/reference/constant/polyMesh/owner.gz new file mode 100644 index 00000000..7fa34392 Binary files /dev/null and b/Ramp/unsteady/predict/reference/constant/polyMesh/owner.gz differ diff --git a/Ramp/unsteady/predict/reference/constant/polyMesh/points.gz b/Ramp/unsteady/predict/reference/constant/polyMesh/points.gz new file mode 100644 index 00000000..89e10ea4 Binary files /dev/null and b/Ramp/unsteady/predict/reference/constant/polyMesh/points.gz differ diff --git a/Ramp/unsteady/predict/reference/constant/transportProperties b/Ramp/unsteady/predict/reference/constant/transportProperties new file mode 100755 index 00000000..781cc786 --- /dev/null +++ b/Ramp/unsteady/predict/reference/constant/transportProperties @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1e-04; + +Pr 0.7; + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/constant/turbulenceProperties b/Ramp/unsteady/predict/reference/constant/turbulenceProperties new file mode 100755 index 00000000..421431b1 --- /dev/null +++ b/Ramp/unsteady/predict/reference/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmegaSST; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/unsteady/predict/reference/paraview.foam b/Ramp/unsteady/predict/reference/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Ramp/unsteady/predict/reference/probePointCoords.json b/Ramp/unsteady/predict/reference/probePointCoords.json new file mode 100755 index 00000000..addeb232 --- /dev/null +++ b/Ramp/unsteady/predict/reference/probePointCoords.json @@ -0,0 +1,54 @@ +{ + "probePointCoords": [ + [1.7813, -0.4998, 0.0250], + [1.7814, -0.4994, 0.0250], + [1.7814, -0.4988, 0.0250], + [1.7814, -0.4982, 0.0250], + [1.7815, -0.4974, 0.0250], + [1.7815, -0.4965, 0.0250], + [1.7816, -0.4954, 0.0250], + [1.7817, -0.4941, 0.0250], + [1.7818, -0.4925, 0.0250], + [1.7819, -0.4906, 0.0250], + [1.7821, -0.4884, 0.0250], + [1.7822, -0.4857, 0.0250], + [1.7824, -0.4824, 0.0250], + [1.7827, -0.4785, 0.0250], + [1.7830, -0.4738, 0.0250], + [1.7833, -0.4681, 0.0250], + [1.7838, -0.4613, 0.0250], + [1.7843, -0.4532, 0.0250], + [1.7849, -0.4434, 0.0250], + [1.7857, -0.4317, 0.0250], + [1.7866, -0.4177, 0.0250], + [1.7876, -0.4008, 0.0250], + [1.7889, -0.3805, 0.0250], + [1.7905, -0.3563, 0.0250], + [1.7923, -0.3271, 0.0250], + [1.7944, -0.2950, 0.0250], + [1.7964, -0.2625, 0.0250], + [1.7985, -0.2301, 0.0250], + [1.8006, -0.1976, 0.0250], + [1.8026, -0.1652, 0.0250], + [1.8047, -0.1327, 0.0250], + [1.8068, -0.1003, 0.0250], + [1.8088, -0.0678, 0.0250], + [1.8109, -0.0354, 0.0250], + [1.8130, -0.0029, 0.0250], + [1.8150, 0.0295, 0.0250], + [1.8171, 0.0619, 0.0250], + [1.8192, 0.0944, 0.0250], + [1.8212, 0.1268, 0.0250], + [1.8233, 0.1593, 0.0250], + [1.8254, 0.1917, 0.0250], + [1.8274, 0.2242, 0.0250], + [1.8295, 0.2566, 0.0250], + [1.8316, 0.2891, 0.0250], + [1.8336, 0.3215, 0.0250], + [1.8357, 0.3540, 0.0250], + [1.8378, 0.3864, 0.0250], + [1.8398, 0.4189, 0.0250], + [1.8419, 0.4513, 0.0250], + [1.8440, 0.4838, 0.0250] + ] +} \ No newline at end of file diff --git a/Ramp/unsteady/predict/reference/runScript.py b/Ramp/unsteady/predict/reference/runScript.py new file mode 100755 index 00000000..6c9c0309 --- /dev/null +++ b/Ramp/unsteady/predict/reference/runScript.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +from mpi4py import MPI +from dafoam import PYDAFOAM + +gcomm = MPI.COMM_WORLD + +# Set the parameters for optimization +daOptions = { + "solverName": "DAPimpleFoam", + "primalBC": {"useWallFunction": False}, + "printIntervalUnsteady": 1, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + "timeOp": "average" + }, + }, +} + +DASolver = PYDAFOAM(options=daOptions, comm=gcomm) +DASolver() diff --git a/Ramp/unsteady/predict/reference/system/blockMeshDict b/Ramp/unsteady/predict/reference/system/blockMeshDict new file mode 100755 index 00000000..623e57a4 --- /dev/null +++ b/Ramp/unsteady/predict/reference/system/blockMeshDict @@ -0,0 +1,95 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1.0; + +vertices +( + (0. 0 0.) + (10. 0 0.) + (10. 3 0.) + (0. 3 0.) + (0. 0 0.1) + (10. 0 0.1) + (10. 3 0.1) + (0. 3 0.1) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (100 50 1) + simpleGrading + ( + 1 10 1 + ) +); + +edges +( + +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (1 5 6 2) + ); + } + sym + { + type symmetry; + faces + ( + (0 1 2 3) + (4 5 6 7) + ); + } + top + { + type patch; + faces + ( + (3 7 6 2) + ); + } + + bot + { + type wall; + faces + ( + (0 4 5 1) + ); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/system/controlDict b/Ramp/unsteady/predict/reference/system/controlDict new file mode 100755 index 00000000..f1cd9439 --- /dev/null +++ b/Ramp/unsteady/predict/reference/system/controlDict @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 2; + +deltaT 0.02; + +writeControl timeStep; + +writeInterval 5; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/system/decomposeParDict b/Ramp/unsteady/predict/reference/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/Ramp/unsteady/predict/reference/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/unsteady/predict/reference/system/fvSchemes b/Ramp/unsteady/predict/reference/system/fvSchemes new file mode 100755 index 00000000..2159392f --- /dev/null +++ b/Ramp/unsteady/predict/reference/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default backward; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/reference/system/fvSolution b/Ramp/unsteady/predict/reference/system/fvSolution new file mode 100755 index 00000000..1f3758d6 --- /dev/null +++ b/Ramp/unsteady/predict/reference/system/fvSolution @@ -0,0 +1,83 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.001; + smoother GaussSeidel; + maxIter 50; + minIter 1; + } + + "(p|p_rgh|G)Final" + { + $p; + tolerance 1e-8; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 1e-8; + relTol 0; + maxIter 50; + minIter 1; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)Final" + { + $U; + //relTol 0; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + +PIMPLE +{ + nNonOrthogonalCorrectors 0; + nCorrectors 2; + nOuterCorrectors 100; + + residualControl + { + "(U|T|e|h|nuTilda|k|omega|epsilon|p|p_rgh|G)" + { + tolerance 1e-8; + relTol 1e-8; + } + } +} + + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/0/U b/Ramp/unsteady/predict/trained/0/U new file mode 100755 index 00000000..49255e15 --- /dev/null +++ b/Ramp/unsteady/predict/trained/0/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform (5 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (5 0 0); + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + "(bot)" + { + type noSlip; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/0/betaFINuTildaData b/Ramp/unsteady/predict/trained/0/betaFINuTildaData new file mode 100644 index 00000000..5ec56390 --- /dev/null +++ b/Ramp/unsteady/predict/trained/0/betaFINuTildaData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFINuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + bot + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + top + { + type symmetry; + } + sym1 + { + type symmetry; + } + sym2 + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/0/k b/Ramp/unsteady/predict/trained/0/k new file mode 100755 index 00000000..7dd4e274 --- /dev/null +++ b/Ramp/unsteady/predict/trained/0/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type fixedValue; + value uniform 1e-14; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/0/nuTilda b/Ramp/unsteady/predict/trained/0/nuTilda new file mode 100755 index 00000000..2eb9b19f --- /dev/null +++ b/Ramp/unsteady/predict/trained/0/nuTilda @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5e-04; + +boundaryField +{ + "(bot)" + { + type fixedValue; + value uniform 1e-14; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/0/nut b/Ramp/unsteady/predict/trained/0/nut new file mode 100755 index 00000000..95b5ca1e --- /dev/null +++ b/Ramp/unsteady/predict/trained/0/nut @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5E-4; + +boundaryField +{ + "(bot)" + { + type nutLowReWallFunction; + value $internalField; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/0/omega b/Ramp/unsteady/predict/trained/0/omega new file mode 100755 index 00000000..44418b36 --- /dev/null +++ b/Ramp/unsteady/predict/trained/0/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 30; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type omegaWallFunction; + value $internalField; + blended true; + } + +} + + + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/0/p b/Ramp/unsteady/predict/trained/0/p new file mode 100755 index 00000000..0cf3dd94 --- /dev/null +++ b/Ramp/unsteady/predict/trained/0/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 0; + } + "(sym.*|top)" + { + type symmetry; + } + + "(bot)" + { + type zeroGradient; + } + + +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/constant/polyMesh/boundary b/Ramp/unsteady/predict/trained/constant/polyMesh/boundary new file mode 100644 index 00000000..709e6217 --- /dev/null +++ b/Ramp/unsteady/predict/trained/constant/polyMesh/boundary @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + inlet + { + type patch; + nFaces 50; + startFace 9850; + } + bot + { + type wall; + inGroups 1(wall); + nFaces 100; + startFace 9900; + } + outlet + { + type patch; + nFaces 50; + startFace 10000; + } + top + { + type symmetry; + inGroups 1(symmetry); + nFaces 100; + startFace 10050; + } + sym1 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 10150; + } + sym2 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 15150; + } +) + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/constant/polyMesh/faces.gz b/Ramp/unsteady/predict/trained/constant/polyMesh/faces.gz new file mode 100644 index 00000000..1f70ec0e Binary files /dev/null and b/Ramp/unsteady/predict/trained/constant/polyMesh/faces.gz differ diff --git a/Ramp/unsteady/predict/trained/constant/polyMesh/neighbour.gz b/Ramp/unsteady/predict/trained/constant/polyMesh/neighbour.gz new file mode 100644 index 00000000..fdbe7109 Binary files /dev/null and b/Ramp/unsteady/predict/trained/constant/polyMesh/neighbour.gz differ diff --git a/Ramp/unsteady/predict/trained/constant/polyMesh/owner.gz b/Ramp/unsteady/predict/trained/constant/polyMesh/owner.gz new file mode 100644 index 00000000..7fa34392 Binary files /dev/null and b/Ramp/unsteady/predict/trained/constant/polyMesh/owner.gz differ diff --git a/Ramp/unsteady/predict/trained/constant/polyMesh/points.gz b/Ramp/unsteady/predict/trained/constant/polyMesh/points.gz new file mode 100644 index 00000000..89e10ea4 Binary files /dev/null and b/Ramp/unsteady/predict/trained/constant/polyMesh/points.gz differ diff --git a/Ramp/unsteady/predict/trained/constant/transportProperties b/Ramp/unsteady/predict/trained/constant/transportProperties new file mode 100755 index 00000000..781cc786 --- /dev/null +++ b/Ramp/unsteady/predict/trained/constant/transportProperties @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1e-04; + +Pr 0.7; + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/constant/turbulenceProperties b/Ramp/unsteady/predict/trained/constant/turbulenceProperties new file mode 100755 index 00000000..e6152958 --- /dev/null +++ b/Ramp/unsteady/predict/trained/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmaras; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/unsteady/predict/trained/designVariable.json b/Ramp/unsteady/predict/trained/designVariable.json new file mode 100644 index 00000000..dba56b8a --- /dev/null +++ b/Ramp/unsteady/predict/trained/designVariable.json @@ -0,0 +1,3 @@ +{ + "parameter": [ 1.278818023817347e-01, 2.063830885124163e-03, -3.789985148320009e-02, 6.720976668048063e-02, -8.403841293048608e-03, -5.066236146740065e-01, 5.037789980779452e-03, 3.904039983742035e-01, -6.084601385735850e-02, 1.482373027176203e-02, -1.054142852021090e-02, -1.189315444713644e-04, 8.506816014501978e-02, 6.317711728129152e-02, -2.084696968983616e-02, -4.333442345947901e-01, -4.086675134975043e-03, 2.381402992564889e-01, -1.327615471372926e-01, 4.084721240422660e-02, 2.081927632065108e-01, 3.847170822362335e-03, -1.672425949665040e-01, 4.741847324629098e-02, -2.060317097379086e-02, -4.419315151569478e-01, -1.445729883375618e-02, 2.798388897787639e-01, -1.123090084668093e-01, 1.328280439110627e-02, 1.300384265544317e-01, 1.007393092381498e-02, -1.219128551575613e-01, 2.134777694214896e-02, -2.539899393715171e-02, -3.607065577696265e-01, 1.965274183356705e-03, 1.613356778420394e-01, -9.820231737409910e-02, 2.252212007864433e-02, -2.819162846254584e-01, -2.987135142566902e-03, 1.382740203467604e-01, -1.151117368824028e-01, 1.717364522860795e-02, -1.471965990195153e-01, 4.707599821870760e-02, -8.163221694375861e-02, -1.896440624661050e-01, 3.291479778191708e-02, -3.352538065630469e-01, -8.129531560113475e-03, 2.821024298593983e-01, -5.167025720122943e-02, -3.337438103600156e-03, 6.350446165783437e-02, 1.123904973964282e-02, -8.899085137990899e-02, -8.223225879501238e-03, -1.530417175423726e-02, 1.776026341533551e-01, -4.030786114747386e-02, 1.884774888721854e-02, 1.127627940588106e-01, -3.896373814879763e-02, -9.194490634714567e-02, 3.118067750382882e-02, -5.956798989079103e-02, -7.692441994092424e-02, -9.488397835877602e-03, -1.174849648338189e-01, -2.072997232157290e-02, 2.702902904090443e-01, 8.840162142395550e-02, 6.304367443709742e-03, 3.632665678007787e-01, 1.709757503621004e-03, -1.917670545851931e-01, 8.773402068641532e-02, -3.221827900753251e-02, 5.043243331422670e-01, -4.521669124223229e-03, -3.443340519914860e-01, 1.165193394678842e-01, -1.422169761277733e-02, 5.032079840033667e-01, 9.902231111955518e-04, -3.367298996112654e-01, 1.171863343292335e-01, 2.826574382885391e-03, 1.770776949599319e-01, 1.797903517792910e-02, -1.784348688876088e-01, 9.136973478594610e-03, -1.221258908815161e-02, 4.122630411608214e-01, 1.485745337851354e-02, -2.230388288075665e-01, 1.363282699460376e-01, -3.645414511595107e-02, 5.920596899950117e-02, -8.636775033721883e-02, 3.077139172351841e-02, -7.209126899415226e-02, 1.680340624880632e-02, -7.936864638659796e-02, 2.994196656091093e-02, -7.889659582573690e-02, -7.833563534393231e-02, -1.101780966870085e-01, -3.163431020901463e-02, 1.873506281324477e-02, 1.017871921929571e-01, -7.701974547027254e-02, 5.781599565659613e-02, 6.127035416914370e-02, 1.043460522007897e-01, 9.462326208157187e-02, 2.317363432802410e-02, 9.311779396105557e-02, 2.687637869553802e-02, 5.280231185809536e-02, -3.315218793592437e-02, 2.573389030441323e-02, -7.798225166718634e-02, 2.871314795970399e-02, -9.043339457689034e-02, 1.800178594152047e-02, -6.365846575950664e-02, -6.445929362160090e-02, -1.407136713492894e-01, -1.554667922914391e-02, -2.053207806475865e-02, 8.295583560001432e-02, -6.934126426355926e-02, 5.597622846044414e-02, 5.498390426593809e-02, 7.464285594274460e-02, 8.210256963231385e-02, -9.118887482381117e-03, 8.686945567813496e-02, 1.513549892745598e-02, -7.889281380717462e-02, 1.880693606419331e-01, -2.048649449205191e-02, 2.217551383293128e-01, -8.548338557187461e-02, 1.986749723331716e-01, -2.228300533475926e-02, 1.843981210030519e-01, 1.155304095382707e-01, 2.034467145418725e-01, 7.196194185576728e-02, -3.739365506607680e-03, -1.628751753784397e-01, 1.111303230537099e-01, -3.356225028637033e-02, -1.393727131994756e-01, -1.899688813788685e-01, -2.089154970027843e-01, -1.964080325917237e-02, -1.794649096891646e-01, 2.138391404824596e-02, -3.203785751930913e-02, 7.015144252050302e-02, 1.957942329158385e-03, 3.728087617980990e-02, -2.506406952957086e-02, 6.783337594502616e-02, -4.431516072084212e-02, 6.483020175979658e-02, 2.331681401428047e-02, 1.300272389817375e-01, -2.039144798088970e-02, 1.744757224051474e-02, -1.040942112547512e-01, 6.358188245638646e-02, -2.952688668681270e-02, -3.299533568013464e-02, -7.980314755507492e-02, -8.144619210492106e-02, 1.570459089819167e-02, -5.291387242684652e-02, -3.140730553689661e-02, 2.261565346456353e-02, 4.922649071128120e-02, -1.785276568842242e-03, 5.394517470884099e-02, -5.785619649867579e-03, 3.084912888556096e-02, -1.614829232484092e-03, 1.342140016178320e-02, 1.220828453319319e-02, 2.828409255952186e-04, 5.127831622594230e-02, -7.635802898694477e-03, -1.407205478728149e-02, -2.066683457418012e-02, -5.734947249612790e-03, -3.899822036250290e-02, -5.290594817736031e-02, -2.890274858991356e-02, -2.833199804999142e-02, -5.610082765585155e-02, -1.977234979345289e-02, -1.251454877021293e-01, 1.894426159923076e-01, -4.226983207496883e-02, 2.280920162654481e-01, -4.699367571204842e-02, 2.201752754129893e-01, -6.500246175867898e-02, 1.949163720092261e-01, 1.354601038903211e-01, 2.471086314125681e-01, 9.102316279628678e-02, -1.669962311585852e-02, -2.019946188480398e-01, 1.403307436018237e-01, -6.232472263929097e-02, -1.510976805685272e-01, -1.830510753277274e-01, -2.224096834645174e-01, -3.046675273890802e-03, -2.108997980104153e-01, 8.294568168890435e-04, -1.207700102121934e-02, 1.760739805660913e-02, 1.516894868113354e-02, 5.129396573432724e-02, -2.373505060118127e-02, 2.085515516412578e-02, -1.034536789788809e-02, 1.140924950746982e-02, 1.195939442474516e-02, 5.428834556186744e-02, 5.096168899907344e-03, -2.822830561794125e-03, -5.144566614843397e-02, 3.329307039236915e-02, 6.483375168170788e-04, -4.746578758325872e-02, -3.510418395528769e-02, -5.701671712694524e-02, 9.555179803129799e-03, -4.029365577900289e-02, -5.683502351250652e-03, 6.793246288845230e-02, -1.883126274287016e-01, 3.288731569914165e-02, -2.178120537946595e-01, 8.305670741620221e-02, -1.675693864527546e-01, 5.240738061691343e-02, -1.471487668120935e-01, -1.542458388525585e-01, -2.115716849973054e-01, -7.783999188773993e-02, 3.371473415606564e-02, 1.534804060092151e-01, -1.207182607337634e-01, 3.608454243645132e-02, 1.237419352353054e-01, 2.091373883045926e-01, 2.017358707119572e-01, 3.899174030799053e-02, 1.694903575179824e-01, 1.250202469651804e-02, -1.250375540424920e-01, 1.937547645663160e-01, -2.276655734845871e-02, 2.672777685376977e-01, -8.598148385948934e-02, 2.326299450506693e-01, -6.083240023948855e-02, 2.168714545712592e-01, 1.822553270997780e-01, 2.776821332932228e-01, 9.880007876884010e-02, 1.139525282125854e-02, -2.025942396541014e-01, 1.494045988959980e-01, -7.160528988673266e-02, -1.904579811142812e-01, -2.250451704586029e-01, -2.408650832362292e-01, -6.305904637778660e-04, -2.106044904298487e-01, 1.690637826756409e-02, -2.777617266794780e-02, 3.915823238480818e-02, -3.313578117361659e-02, 7.674755362783692e-02, -3.707852531151254e-02, 5.313698272255512e-02, -3.049432914995315e-02, 3.304823605588553e-02, 6.154973063843011e-02, 1.128062333999847e-01, 4.109065487792141e-02, 2.132842015974485e-02, -4.513678320938265e-02, 3.710643330802931e-02, -5.252513237233398e-02, -4.574488901484423e-02, -6.711227521866206e-02, -7.533734814583486e-02, -2.419176711858968e-02, -4.226711309537493e-02, -3.237390394070802e-02, 1.131958763345049e-01, -1.192751228084547e-01, 1.216906329498111e-02, -1.547246063946105e-01, 4.979848248569778e-02, -1.339018839872959e-01, 4.983888068103384e-02, -1.295338371321851e-01, -7.983661516924218e-02, -2.697253923231078e-01, -2.943044648598873e-02, -2.287830508677289e-02, 1.545295478962476e-01, -1.486527769957814e-01, 8.601092278511747e-02, 9.120965257993854e-02, 1.308895826045902e-01, 1.467597422344772e-01, -2.406117059389065e-02, 1.159278880106714e-01, 2.895327340340437e-02, 1.233027824385418e-01, -1.775964220991289e-01, 4.917517908674543e-02, -1.838454525663190e-01, 7.280483709366176e-02, -1.858960942061895e-01, 4.949505517466352e-02, -1.699581752166819e-01, -1.453987120799821e-01, -3.004557688681141e-01, -7.008180931936729e-02, 6.624770670993430e-04, 1.784285665140702e-01, -1.318518238671603e-01, 7.200505827441346e-02, 1.395574281439720e-01, 1.680444421924264e-01, 1.944727028244713e-01, 2.746248557487058e-02, 1.815125604226719e-01, 1.447075735163633e-02, 4.662007872847942e-02, -8.168616966824117e-02, 2.091307498337168e-02, -9.416667772400492e-02, 2.021857183996225e-02, -1.085252153986947e-01, 1.953950086867026e-02, -6.448851521766533e-02, -8.428136198237569e-02, -1.103830916016929e-01, -3.256585824688107e-02, 7.223558024362671e-04, 1.121501435063318e-01, -6.793337762009355e-02, 5.054600052390796e-02, 6.753929168152312e-02, 1.126819169816548e-01, 1.068200091226576e-01, 1.733179879994408e-02, 8.149470272525092e-02, 2.743302806371169e-02, 1.047985710039895e-02, 1.344156701370615e-02, -1.980863814097239e-02, 4.546605573247672e-02, 9.748213085612058e-03, 2.212864149693395e-02, 9.349002936904089e-03, 3.264060903372760e-02, 1.570350373735045e-02, -4.965081903583563e-03, 3.273965339104849e-02, 1.171797181358515e-02, 2.920188494624007e-02, 4.360125619758484e-03, -2.954559218769093e-03, -1.464055611759234e-02, -3.134167552037627e-02, -4.389585560083210e-02, -2.092596712155771e-02, -3.617174244702698e-02, 1.470297141808321e-02, -1.422959120916586e-01, 2.224587169630295e-01, -5.669428653927768e-02, 2.479488565868015e-01, -1.026475258043522e-01, 2.025133684084905e-01, -6.228574133795371e-02, 2.305007349861469e-01, 1.477328189712046e-01, 3.331767895735616e-01, 1.037842733433064e-01, -8.102625354783607e-03, -2.297962844268569e-01, 1.424390132617797e-01, -8.956670388241780e-02, -1.968834950111877e-01, -2.495172947570019e-01, -2.386684824806292e-01, -3.930316385429256e-02, -2.311135200957523e-01, -1.095083214138653e-02, 6.805835337424011e-02, -9.852039686703663e-02, 5.452296402182691e-04, -1.238067227036401e-01, 3.649859954692244e-02, -7.176487320658258e-02, 6.902226655735995e-02, -1.101540898151250e-01, -9.300268530331553e-02, -2.228571806021592e-01, -1.169987501337466e-02, 2.136389925669369e-02, 1.230265617101347e-01, -9.884856824581779e-02, 6.809932473588820e-02, 6.104194792121950e-02, 1.039540168448796e-01, 9.613626244797971e-02, -3.956584915696472e-03, 9.665145525509654e-02, 3.388783274432876e-02, 1.392990157400756e-02, -3.329398928668637e-02, 1.564095886981303e-02, -3.271597642524934e-02, 3.058196412531210e-03, -7.823446448764945e-03, 2.623653483797680e-02, -4.492920905101475e-02, -3.228734336339805e-02, -3.292199724279594e-02, 3.025886563055938e-03, 2.528421723907856e-02, 4.272534717893665e-02, 6.898131455977051e-03, -2.880024289476967e-03, 4.415848147240801e-02, 1.256636408449350e-02, 5.730419908802620e-03, 2.704314898909419e-02, 1.099875705220132e-02, 1.245693521543034e-02, 9.238710316079528e-02, -1.646015361689597e-01, 6.508630243700823e-02, -2.378504761828205e-01, 6.315789343748418e-02, -2.017534083585754e-01, 6.857733768497389e-02, -2.046943524945355e-01, -1.680096810444493e-01, -3.060655578543264e-01, -7.917671404626009e-02, 2.027823651951996e-02, 1.981629726380220e-01, -1.520140261346932e-01, 1.187888029664413e-01, 1.620825920626387e-01, 2.192280279742670e-01, 2.340025037374197e-01, 2.291509922945732e-02, 2.064642376631999e-01, 3.312386266234567e-02, 1.035626397355451e-02, -8.101184670346361e-03, -2.678028335743597e-02, -1.255200993515636e-02, -1.868783578182730e-02, -5.139892800049897e-03, -2.658656985126793e-02, 1.092887578589623e-02, -2.510959956165161e-03, 6.422224041737530e-02, 1.073801813101703e-02, 7.249573817028516e-03, -3.176137620368527e-02, 2.631753203732904e-02, -1.810873553567122e-03, -1.233257616681520e-03, 4.766464291471923e-03, -1.244517006107798e-02, 8.115672317754887e-03, -4.737866527776234e-03, -1.499797500735247e-02, 2.355629877214514e-02, -8.479829229708911e-02, 6.154298510408875e-03, -8.966652719640728e-02, 4.163065775396410e-02, -8.489553588289338e-02, 2.996463563796851e-02, -4.685925713795185e-02, -7.863748462766358e-02, -5.791223708225666e-02, -5.144396290191185e-02, -1.270264003988407e-02, 3.792310240139574e-02, -1.298402695152067e-02, 1.517361912587119e-02, 7.041422332524019e-02, 9.108997142701143e-02, 6.412461647964411e-02, 1.346114885633778e-02, 8.540240232024796e-02, 2.099360862160322e-02, 1.250752537585845e-01, 3.556049139161943e-02, -6.252607990555128e-01, 7.175367377142114e-02, -2.674742012159111e-01, -3.199011740858087e-01, -1.230815120044725e-02, 3.555576544917368e-01, -6.949751659268336e-01, -1.761350667870664e-01, -3.756940638353056e-02, 1.526472845712520e-01, 1.442185768508887e-01, -2.614725335793867e-01, -5.328954602388851e-01, -1.133290521210824e-01, 9.222671463997324e-02, 3.904234939803386e-01, 1.453774726525174e-02, 3.083697703226512e-01, -1.218573877303700e-01 ] +} diff --git a/Ramp/unsteady/predict/trained/paraview.foam b/Ramp/unsteady/predict/trained/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Ramp/unsteady/predict/trained/probePointCoords.json b/Ramp/unsteady/predict/trained/probePointCoords.json new file mode 100755 index 00000000..addeb232 --- /dev/null +++ b/Ramp/unsteady/predict/trained/probePointCoords.json @@ -0,0 +1,54 @@ +{ + "probePointCoords": [ + [1.7813, -0.4998, 0.0250], + [1.7814, -0.4994, 0.0250], + [1.7814, -0.4988, 0.0250], + [1.7814, -0.4982, 0.0250], + [1.7815, -0.4974, 0.0250], + [1.7815, -0.4965, 0.0250], + [1.7816, -0.4954, 0.0250], + [1.7817, -0.4941, 0.0250], + [1.7818, -0.4925, 0.0250], + [1.7819, -0.4906, 0.0250], + [1.7821, -0.4884, 0.0250], + [1.7822, -0.4857, 0.0250], + [1.7824, -0.4824, 0.0250], + [1.7827, -0.4785, 0.0250], + [1.7830, -0.4738, 0.0250], + [1.7833, -0.4681, 0.0250], + [1.7838, -0.4613, 0.0250], + [1.7843, -0.4532, 0.0250], + [1.7849, -0.4434, 0.0250], + [1.7857, -0.4317, 0.0250], + [1.7866, -0.4177, 0.0250], + [1.7876, -0.4008, 0.0250], + [1.7889, -0.3805, 0.0250], + [1.7905, -0.3563, 0.0250], + [1.7923, -0.3271, 0.0250], + [1.7944, -0.2950, 0.0250], + [1.7964, -0.2625, 0.0250], + [1.7985, -0.2301, 0.0250], + [1.8006, -0.1976, 0.0250], + [1.8026, -0.1652, 0.0250], + [1.8047, -0.1327, 0.0250], + [1.8068, -0.1003, 0.0250], + [1.8088, -0.0678, 0.0250], + [1.8109, -0.0354, 0.0250], + [1.8130, -0.0029, 0.0250], + [1.8150, 0.0295, 0.0250], + [1.8171, 0.0619, 0.0250], + [1.8192, 0.0944, 0.0250], + [1.8212, 0.1268, 0.0250], + [1.8233, 0.1593, 0.0250], + [1.8254, 0.1917, 0.0250], + [1.8274, 0.2242, 0.0250], + [1.8295, 0.2566, 0.0250], + [1.8316, 0.2891, 0.0250], + [1.8336, 0.3215, 0.0250], + [1.8357, 0.3540, 0.0250], + [1.8378, 0.3864, 0.0250], + [1.8398, 0.4189, 0.0250], + [1.8419, 0.4513, 0.0250], + [1.8440, 0.4838, 0.0250] + ] +} \ No newline at end of file diff --git a/Ramp/unsteady/predict/trained/runScript.py b/Ramp/unsteady/predict/trained/runScript.py new file mode 100755 index 00000000..c42a4035 --- /dev/null +++ b/Ramp/unsteady/predict/trained/runScript.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python + +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +import argparse +import numpy as np +from mpi4py import MPI +import json +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys.mphys_dafoam import DAFoamBuilderUnsteady + +np.set_printoptions(precision=8, threshold=10000) + +# ============================================================================= +# Input Parameters +# ============================================================================= + +with open("./designVariable.json") as f: + dv = json.load(f) +parameter0 = dv["parameter"] + +# Set the parameters for optimization +daOptions = { + "solverName": "DAPimpleFoam", + "primalBC": {"useWallFunction": False}, + "printIntervalUnsteady": 1, + "regressionModel": { + "active": True, + "reg_model1": { + "modelType": "neuralNetwork", + "inputNames": ["PoD", "VoS", "chiSA", "PSoSS"], + "outputName": "betaFINuTilda", + "hiddenLayerNeurons": [20, 20], + "inputShift": [0.0, 0.0, 0.0, 0.0], + "inputScale": [1.0, 1.0, 1.0, 1.0], + "outputShift": 1.0, + "outputScale": 1.0, + "activationFunction": "tanh", + "printInputInfo": True, + "defaultOutputValue": 1.0, + "outputUpperBound": 1e1, + "outputLowerBound": -1e1, + }, + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + "timeOp": "average", + }, + }, + "inputInfo": { + "reg_model1": {"type": "regressionPar", "components": ["solver", "function"]}, + }, +} + + +class Top(Multipoint): + def setup(self): + + # ivc to keep the top level DVs + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + self.add_subsystem( + "scenario1", + DAFoamBuilderUnsteady(solver_options=daOptions, mesh_options=None), + promotes=["*"], + ) + + def configure(self): + + self.dvs.add_output("reg_model1", val=parameter0) + + # define the design variables to the top level + self.add_design_var("reg_model1", lower=-100.0, upper=100.0, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +prob.run_model() diff --git a/Ramp/unsteady/predict/trained/system/blockMeshDict b/Ramp/unsteady/predict/trained/system/blockMeshDict new file mode 100755 index 00000000..623e57a4 --- /dev/null +++ b/Ramp/unsteady/predict/trained/system/blockMeshDict @@ -0,0 +1,95 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1.0; + +vertices +( + (0. 0 0.) + (10. 0 0.) + (10. 3 0.) + (0. 3 0.) + (0. 0 0.1) + (10. 0 0.1) + (10. 3 0.1) + (0. 3 0.1) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (100 50 1) + simpleGrading + ( + 1 10 1 + ) +); + +edges +( + +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (1 5 6 2) + ); + } + sym + { + type symmetry; + faces + ( + (0 1 2 3) + (4 5 6 7) + ); + } + top + { + type patch; + faces + ( + (3 7 6 2) + ); + } + + bot + { + type wall; + faces + ( + (0 4 5 1) + ); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/system/controlDict b/Ramp/unsteady/predict/trained/system/controlDict new file mode 100755 index 00000000..f1cd9439 --- /dev/null +++ b/Ramp/unsteady/predict/trained/system/controlDict @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 2; + +deltaT 0.02; + +writeControl timeStep; + +writeInterval 5; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/system/decomposeParDict b/Ramp/unsteady/predict/trained/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/Ramp/unsteady/predict/trained/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/unsteady/predict/trained/system/fvSchemes b/Ramp/unsteady/predict/trained/system/fvSchemes new file mode 100755 index 00000000..2159392f --- /dev/null +++ b/Ramp/unsteady/predict/trained/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default backward; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/predict/trained/system/fvSolution b/Ramp/unsteady/predict/trained/system/fvSolution new file mode 100755 index 00000000..1f3758d6 --- /dev/null +++ b/Ramp/unsteady/predict/trained/system/fvSolution @@ -0,0 +1,83 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.001; + smoother GaussSeidel; + maxIter 50; + minIter 1; + } + + "(p|p_rgh|G)Final" + { + $p; + tolerance 1e-8; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 1e-8; + relTol 0; + maxIter 50; + minIter 1; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)Final" + { + $U; + //relTol 0; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + +PIMPLE +{ + nNonOrthogonalCorrectors 0; + nCorrectors 2; + nOuterCorrectors 100; + + residualControl + { + "(U|T|e|h|nuTilda|k|omega|epsilon|p|p_rgh|G)" + { + tolerance 1e-8; + relTol 1e-8; + } + } +} + + + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/0_orig/U b/Ramp/unsteady/train/0_orig/U new file mode 100755 index 00000000..8bdf2881 --- /dev/null +++ b/Ramp/unsteady/train/0_orig/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform (10 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (10 0 0); + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + "(bot)" + { + type noSlip; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/0_orig/betaFINuTildaData b/Ramp/unsteady/train/0_orig/betaFINuTildaData new file mode 100644 index 00000000..5ec56390 --- /dev/null +++ b/Ramp/unsteady/train/0_orig/betaFINuTildaData @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFINuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + + +internalField uniform 1.0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + bot + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + top + { + type symmetry; + } + sym1 + { + type symmetry; + } + sym2 + { + type symmetry; + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/0_orig/k b/Ramp/unsteady/train/0_orig/k new file mode 100755 index 00000000..7dd4e274 --- /dev/null +++ b/Ramp/unsteady/train/0_orig/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.015; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type fixedValue; + value uniform 1e-14; + } +} + + + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/0_orig/nuTilda b/Ramp/unsteady/train/0_orig/nuTilda new file mode 100755 index 00000000..2eb9b19f --- /dev/null +++ b/Ramp/unsteady/train/0_orig/nuTilda @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5e-04; + +boundaryField +{ + "(bot)" + { + type fixedValue; + value uniform 1e-14; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/0_orig/nut b/Ramp/unsteady/train/0_orig/nut new file mode 100755 index 00000000..95b5ca1e --- /dev/null +++ b/Ramp/unsteady/train/0_orig/nut @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 5E-4; + +boundaryField +{ + "(bot)" + { + type nutLowReWallFunction; + value $internalField; + } + "(sym.*|top)" + { + type symmetry; + } + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + +} + + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/0_orig/omega b/Ramp/unsteady/train/0_orig/omega new file mode 100755 index 00000000..44418b36 --- /dev/null +++ b/Ramp/unsteady/train/0_orig/omega @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 30; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type zeroGradient; + } + "(sym.*|top)" + { + type symmetry; + } + bot + { + type omegaWallFunction; + value $internalField; + blended true; + } + +} + + + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/0_orig/p b/Ramp/unsteady/train/0_orig/p new file mode 100755 index 00000000..0cf3dd94 --- /dev/null +++ b/Ramp/unsteady/train/0_orig/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 0; + } + "(sym.*|top)" + { + type symmetry; + } + + "(bot)" + { + type zeroGradient; + } + + +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/Allclean.sh b/Ramp/unsteady/train/Allclean.sh new file mode 100755 index 00000000..07c801a8 --- /dev/null +++ b/Ramp/unsteady/train/Allclean.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf 0 + rm -rf *.bin *.info *.hst *.txt + rm -rf processor* 0.00* + rm -rf {1..9}* 0_SA 0_SST + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/Ramp/unsteady/train/constant/polyMesh/boundary b/Ramp/unsteady/train/constant/polyMesh/boundary new file mode 100644 index 00000000..709e6217 --- /dev/null +++ b/Ramp/unsteady/train/constant/polyMesh/boundary @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + inlet + { + type patch; + nFaces 50; + startFace 9850; + } + bot + { + type wall; + inGroups 1(wall); + nFaces 100; + startFace 9900; + } + outlet + { + type patch; + nFaces 50; + startFace 10000; + } + top + { + type symmetry; + inGroups 1(symmetry); + nFaces 100; + startFace 10050; + } + sym1 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 10150; + } + sym2 + { + type symmetry; + inGroups 1(symmetry); + nFaces 5000; + startFace 15150; + } +) + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/constant/polyMesh/faces.gz b/Ramp/unsteady/train/constant/polyMesh/faces.gz new file mode 100644 index 00000000..1f70ec0e Binary files /dev/null and b/Ramp/unsteady/train/constant/polyMesh/faces.gz differ diff --git a/Ramp/unsteady/train/constant/polyMesh/neighbour.gz b/Ramp/unsteady/train/constant/polyMesh/neighbour.gz new file mode 100644 index 00000000..fdbe7109 Binary files /dev/null and b/Ramp/unsteady/train/constant/polyMesh/neighbour.gz differ diff --git a/Ramp/unsteady/train/constant/polyMesh/owner.gz b/Ramp/unsteady/train/constant/polyMesh/owner.gz new file mode 100644 index 00000000..7fa34392 Binary files /dev/null and b/Ramp/unsteady/train/constant/polyMesh/owner.gz differ diff --git a/Ramp/unsteady/train/constant/polyMesh/points.gz b/Ramp/unsteady/train/constant/polyMesh/points.gz new file mode 100644 index 00000000..89e10ea4 Binary files /dev/null and b/Ramp/unsteady/train/constant/polyMesh/points.gz differ diff --git a/Ramp/unsteady/train/constant/transportProperties b/Ramp/unsteady/train/constant/transportProperties new file mode 100755 index 00000000..781cc786 --- /dev/null +++ b/Ramp/unsteady/train/constant/transportProperties @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1e-04; + +Pr 0.7; + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/constant/turbulenceProperties b/Ramp/unsteady/train/constant/turbulenceProperties new file mode 100755 index 00000000..e6152958 --- /dev/null +++ b/Ramp/unsteady/train/constant/turbulenceProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmaras; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/unsteady/train/constant/turbulenceProperties_SA b/Ramp/unsteady/train/constant/turbulenceProperties_SA new file mode 100755 index 00000000..e6152958 --- /dev/null +++ b/Ramp/unsteady/train/constant/turbulenceProperties_SA @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmaras; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/unsteady/train/constant/turbulenceProperties_SST b/Ramp/unsteady/train/constant/turbulenceProperties_SST new file mode 100755 index 00000000..421431b1 --- /dev/null +++ b/Ramp/unsteady/train/constant/turbulenceProperties_SST @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmegaSST; + turbulence on; + printCoeffs off; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/unsteady/train/paraview.foam b/Ramp/unsteady/train/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/Ramp/unsteady/train/preProcessing.sh b/Ramp/unsteady/train/preProcessing.sh new file mode 100755 index 00000000..61448579 --- /dev/null +++ b/Ramp/unsteady/train/preProcessing.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit 1 +fi + +# spin up the flow for 0.1 s +# spin up SST +cp constant/turbulenceProperties_SST constant/turbulenceProperties +cp system/controlDict_spinup system/controlDict +rm -rf 0 +cp -rf 0_orig 0 +mpirun -np 2 python runPrimal.py +reconstructPar +rm -rf 0.1/polyMesh 0.1/uniform +cp 0_orig/betaFINuTildaData 0.1/ +mv 0.1 0_SST +rm -rf processor* +# spin up SA +cp constant/turbulenceProperties_SA constant/turbulenceProperties +cp system/controlDict_spinup system/controlDict +rm -rf 0 +cp -rf 0_orig 0 +mpirun -np 2 python runPrimal.py +reconstructPar +rm -rf 0.1/polyMesh 0.1/uniform +cp 0_orig/betaFINuTildaData 0.1/ +mv 0.1 0_SA +rm -rf processor* + +# run full primal using SST as reference data +cp constant/turbulenceProperties_SST constant/turbulenceProperties +cp system/controlDict_full system/controlDict +rm -rf 0 +cp -rf 0_SST 0 +mpirun -np 2 python runPrimal.py 2>&1 | tee sst-ref.txt +reconstructPar +rm -rf processor* + +# rename U to UData +getFIData -refFieldName U -refFieldType vector +getFIData -refFieldName p -refFieldType scalar + +rm -rf 0 +cp -rf 0_SA 0 + +# decompose all times +#decomposePar -time '0:' + +#rm -rf 0.* 1 1.* + +# get ready for the SA run +cp constant/turbulenceProperties_SA constant/turbulenceProperties diff --git a/Ramp/unsteady/train/probePointCoords.json b/Ramp/unsteady/train/probePointCoords.json new file mode 100755 index 00000000..addeb232 --- /dev/null +++ b/Ramp/unsteady/train/probePointCoords.json @@ -0,0 +1,54 @@ +{ + "probePointCoords": [ + [1.7813, -0.4998, 0.0250], + [1.7814, -0.4994, 0.0250], + [1.7814, -0.4988, 0.0250], + [1.7814, -0.4982, 0.0250], + [1.7815, -0.4974, 0.0250], + [1.7815, -0.4965, 0.0250], + [1.7816, -0.4954, 0.0250], + [1.7817, -0.4941, 0.0250], + [1.7818, -0.4925, 0.0250], + [1.7819, -0.4906, 0.0250], + [1.7821, -0.4884, 0.0250], + [1.7822, -0.4857, 0.0250], + [1.7824, -0.4824, 0.0250], + [1.7827, -0.4785, 0.0250], + [1.7830, -0.4738, 0.0250], + [1.7833, -0.4681, 0.0250], + [1.7838, -0.4613, 0.0250], + [1.7843, -0.4532, 0.0250], + [1.7849, -0.4434, 0.0250], + [1.7857, -0.4317, 0.0250], + [1.7866, -0.4177, 0.0250], + [1.7876, -0.4008, 0.0250], + [1.7889, -0.3805, 0.0250], + [1.7905, -0.3563, 0.0250], + [1.7923, -0.3271, 0.0250], + [1.7944, -0.2950, 0.0250], + [1.7964, -0.2625, 0.0250], + [1.7985, -0.2301, 0.0250], + [1.8006, -0.1976, 0.0250], + [1.8026, -0.1652, 0.0250], + [1.8047, -0.1327, 0.0250], + [1.8068, -0.1003, 0.0250], + [1.8088, -0.0678, 0.0250], + [1.8109, -0.0354, 0.0250], + [1.8130, -0.0029, 0.0250], + [1.8150, 0.0295, 0.0250], + [1.8171, 0.0619, 0.0250], + [1.8192, 0.0944, 0.0250], + [1.8212, 0.1268, 0.0250], + [1.8233, 0.1593, 0.0250], + [1.8254, 0.1917, 0.0250], + [1.8274, 0.2242, 0.0250], + [1.8295, 0.2566, 0.0250], + [1.8316, 0.2891, 0.0250], + [1.8336, 0.3215, 0.0250], + [1.8357, 0.3540, 0.0250], + [1.8378, 0.3864, 0.0250], + [1.8398, 0.4189, 0.0250], + [1.8419, 0.4513, 0.0250], + [1.8440, 0.4838, 0.0250] + ] +} \ No newline at end of file diff --git a/Ramp/unsteady/train/runPrimal.py b/Ramp/unsteady/train/runPrimal.py new file mode 100755 index 00000000..b2da46ea --- /dev/null +++ b/Ramp/unsteady/train/runPrimal.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +from mpi4py import MPI +from dafoam import PYDAFOAM + +gcomm = MPI.COMM_WORLD + +# Set the parameters for optimization +daOptions = { + "solverName": "DAPimpleFoam", + "primalBC": {"useWallFunction": False}, + "printIntervalUnsteady": 1, + "unsteadyAdjoint": { + "mode": "timeAccurate", + }, + "function": { + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + "timeOp": "average", + } + }, +} + +DASolver = PYDAFOAM(options=daOptions, comm=gcomm) +DASolver() diff --git a/Ramp/unsteady/train/runScript.py b/Ramp/unsteady/train/runScript.py new file mode 100755 index 00000000..ba44e692 --- /dev/null +++ b/Ramp/unsteady/train/runScript.py @@ -0,0 +1,203 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +import argparse +import numpy as np +from mpi4py import MPI +import json +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys.mphys_dafoam import DAFoamBuilderUnsteady + +np.set_printoptions(precision=8, threshold=10000) + +# ============================================================================= +# Input Parameters +# ============================================================================= +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +# which case to run +parser.add_argument("-index", help="which case index to run", type=int, default=0) +args = parser.parse_args() + +np.random.seed(0) + +# Set the parameters for optimization +daOptions = { + "solverName": "DAPimpleFoam", + "unsteadyAdjoint": { + "mode": "timeAccurate", + "PCMatPrecomputeInterval": 50, + "PCMatUpdateInterval": 1, + "reduceIO": True, + }, + "primalBC": {"useWallFunction": False}, + "printIntervalUnsteady": 1, + "regressionModel": { + "active": True, + "reg_model1": { + "modelType": "neuralNetwork", + "inputNames": ["PoD", "VoS", "chiSA", "PSoSS"], + "outputName": "betaFINuTilda", + "hiddenLayerNeurons": [20, 20], + "inputShift": [0.0, 0.0, 0.0, 0.0], + "inputScale": [1.0, 1.0, 1.0, 1.0], + "outputShift": 1.0, + "outputScale": 1.0, + "activationFunction": "tanh", + "printInputInfo": True, + "defaultOutputValue": 1.0, + "outputUpperBound": 1e1, + "outputLowerBound": -1e1, + }, + }, + "function": { + "pVar": { + "type": "variance", + "source": "patchToFace", + "patches": ["bot"], + "scale": 0.02, + "mode": "surface", + "varName": "p", + "varType": "scalar", + "timeDependentRefData": True, + "timeOp": "average", + }, + "betaVar": { + "type": "variance", + "source": "allCells", + "scale": 0.01, + "mode": "field", + "varName": "betaFINuTilda", + "varType": "scalar", + "timeDependentRefData": False, + "timeOp": "average", + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": { + "gmresRelTol": 1.0e-10, + "gmresAbsTol": 1.0e-6, + "pcFillLevel": 1, + "jacMatReOrdering": "rcm", + }, + "normalizeStates": { + "U": 10, + "p": 50, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "inputInfo": { + "reg_model1": {"type": "regressionPar", "components": ["solver", "function"]}, + }, + "unsteadyCompOutput": { + "obj": ["pVar", "betaVar"], + }, + "decomposeParDict": {"args": ["-time", "0:"],} +} + + +class Top(Multipoint): + def setup(self): + + # ivc to keep the top level DVs + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + self.add_subsystem( + "scenario1", + DAFoamBuilderUnsteady(solver_options=daOptions, mesh_options=None), + promotes=["*"], + ) + + def configure(self): + + nParameters = self.scenario1.solver.DASolver.getNRegressionParameters("reg_model1") + parameter0 = (np.random.rand(nParameters) - 0.5) * 0.05 + self.dvs.add_output("reg_model1", val=parameter0) + + # define the design variables to the top level + self.add_design_var("reg_model1", lower=-100.0, upper=100.0, scaler=1.0) + # add the objective + self.add_objective("obj", scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-6, + "Major optimality tolerance": 1.0e-6, + "Minor feasibility tolerance": 1.0e-6, + "Verify level": -1, + "Function precision": 1.0e-6, + "Major iterations limit": 50, + "Linesearch tolerance": 0.999, + "Hessian updates": 50, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 50, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() + opt_dv = { + "reg_model1": prob.get_val("reg_model1").tolist(), + } + with open("designVariable.json", "w") as f: + json.dump(opt_dv, f) +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/Ramp/unsteady/train/runScript_FI.py b/Ramp/unsteady/train/runScript_FI.py new file mode 100644 index 00000000..be1c8c7b --- /dev/null +++ b/Ramp/unsteady/train/runScript_FI.py @@ -0,0 +1,208 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys.mphys_dafoam import DAFoamBuilderUnsteady + +np.set_printoptions(precision=8, threshold=10000) + +# ============================================================================= +# Input Parameters +# ============================================================================= +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SNOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +# which case to run +parser.add_argument("-index", help="which case index to run", type=int, default=0) +args = parser.parse_args() + +np.random.seed(0) + +U0 = 10.0 +A0 = 0.1 +LRef = 1.0 +n = 100 +nCells = 5000 +nFields = 3 + +#with open("./probePointCoords.json") as f: + #probePointCoords = json.load(f) + +f=open('sst-ref.txt','r') +lines=f.readlines() +f.close() + +CD_ref=[] + +for line in lines: + if "CD:" in line: + cols=line.split() + CD_ref.append(float(cols[1])) + +# Set the parameters for optimization +daOptions = { + "solverName": "DAPimpleFoam", + "useAD": {"mode": "reverse", "seedIndex": 0, "dvName": "beta"}, + "primalBC": { + "useWallFunction": False, + }, + "unsteadyAdjoint": { + "mode": "timeAccurate", + "PCMatPrecomputeInterval": 5, + "PCMatUpdateInterval": 1, + "readZeroFields": True, + "additionalOutput": ["betaFINuTilda"], + "reduceIO": True, + }, + "function": { + "CDVar": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + "addToAdjoint": True, + "calcRefVar": True, + "timeOp": "average", + "ref": CD_ref[0:n] + }, + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["bot"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": 1.0, + "addToAdjoint": False, + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": { + "gmresRelTol": 1.0e-10, + "gmresAbsTol": 1.0e-6, + "pcFillLevel": 1, + "jacMatReOrdering": "rcm", + }, + "normalizeStates": {"U": U0, "p": U0 * U0 / 2.0, "phi": 1.0, "nuTilda": 1e-3}, + "inputInfo": { + "beta": { + "type": "fieldUnsteady", + "fieldName": "betaFINuTilda", + "fieldType": "scalar", + "stepInterval": 50, + "components": ["solver", "function"], + "distributed": 0, + }, + }, + "unsteadyCompOutput": { + "obj": ["CDVar"], + }, +} + + +class Top(Multipoint): + def setup(self): + + # ivc to keep the top level DVs + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + self.add_subsystem( + "scenario", + DAFoamBuilderUnsteady(solver_options=daOptions, mesh_options=None), + promotes=["*"], + ) + + + def configure(self): + + # add the design variables to the dvs component's output + beta0 = np.ones(nCells * nFields) + + self.dvs.add_output("beta", val=beta0) + + # define the design variables to the top level + self.add_design_var("beta", lower=-3.0, upper=3.0, scaler=1.0) + + # add the objective + self.add_objective("obj", scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-6, + "Major optimality tolerance": 1.0e-6, + "Minor feasibility tolerance": 1.0e-6, + "Verify level": -1, + "Function precision": 1.0e-6, + "Major iterations limit": 50, + "Linesearch tolerance": 0.999, + "Hessian updates": 50, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 50, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/Ramp/unsteady/train/system/blockMeshDict b/Ramp/unsteady/train/system/blockMeshDict new file mode 100755 index 00000000..623e57a4 --- /dev/null +++ b/Ramp/unsteady/train/system/blockMeshDict @@ -0,0 +1,95 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1.0; + +vertices +( + (0. 0 0.) + (10. 0 0.) + (10. 3 0.) + (0. 3 0.) + (0. 0 0.1) + (10. 0 0.1) + (10. 3 0.1) + (0. 3 0.1) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (100 50 1) + simpleGrading + ( + 1 10 1 + ) +); + +edges +( + +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (1 5 6 2) + ); + } + sym + { + type symmetry; + faces + ( + (0 1 2 3) + (4 5 6 7) + ); + } + top + { + type patch; + faces + ( + (3 7 6 2) + ); + } + + bot + { + type wall; + faces + ( + (0 4 5 1) + ); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/system/controlDict b/Ramp/unsteady/train/system/controlDict new file mode 100755 index 00000000..60970c39 --- /dev/null +++ b/Ramp/unsteady/train/system/controlDict @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 1; + +deltaT 0.01; + +writeControl timeStep; + +writeInterval 1; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/system/controlDict_full b/Ramp/unsteady/train/system/controlDict_full new file mode 100755 index 00000000..60970c39 --- /dev/null +++ b/Ramp/unsteady/train/system/controlDict_full @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 1; + +deltaT 0.01; + +writeControl timeStep; + +writeInterval 1; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/system/controlDict_spinup b/Ramp/unsteady/train/system/controlDict_spinup new file mode 100755 index 00000000..1da07d94 --- /dev/null +++ b/Ramp/unsteady/train/system/controlDict_spinup @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 0.1; + +deltaT 0.01; + +writeControl timeStep; + +writeInterval 20; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 16; + +writeCompression on; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable no; + +adjustTimeStep no; + +maxCo 5; + +DebugSwitches +{ + SolverPerformance 0; +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/system/decomposeParDict b/Ramp/unsteady/train/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/Ramp/unsteady/train/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/Ramp/unsteady/train/system/fvSchemes b/Ramp/unsteady/train/system/fvSchemes new file mode 100755 index 00000000..2159392f --- /dev/null +++ b/Ramp/unsteady/train/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default backward; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,T) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// ************************************************************************* // diff --git a/Ramp/unsteady/train/system/fvSolution b/Ramp/unsteady/train/system/fvSolution new file mode 100755 index 00000000..ec76f351 --- /dev/null +++ b/Ramp/unsteady/train/system/fvSolution @@ -0,0 +1,83 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|p_rgh|G)" + { + solver GAMG; + tolerance 0; + relTol 0.001; + smoother GaussSeidel; + maxIter 50; + minIter 1; + } + + "(p|p_rgh|G)Final" + { + $p; + tolerance 1e-8; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + tolerance 1e-8; + relTol 0; + maxIter 50; + minIter 1; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)Final" + { + $U; + //relTol 0; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|G)" 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|omega|epsilon)" 0.7; + } +} + +PIMPLE +{ + nNonOrthogonalCorrectors 0; + nCorrectors 2; + nOuterCorrectors 10; + + residualControl + { + "(U|T|e|h|nuTilda|k|omega|epsilon|p|p_rgh|G)" + { + tolerance 1e-8; + relTol 1e-8; + } + } +} + + + +// ************************************************************************* // diff --git a/Rotor37_Compressor/0.orig/T b/Rotor37_Compressor/0.orig/T index d620de09..8e1d2673 100755 --- a/Rotor37_Compressor/0.orig/T +++ b/Rotor37_Compressor/0.orig/T @@ -43,8 +43,10 @@ boundaryField } inlet { - type fixedValue; + type totalTemperature; + T0 $internalField; value $internalField; + gamma 1.4; } outlet { diff --git a/Rotor37_Compressor/0.orig/p b/Rotor37_Compressor/0.orig/p index 7d3db2d4..c23fbd01 100755 --- a/Rotor37_Compressor/0.orig/p +++ b/Rotor37_Compressor/0.orig/p @@ -28,13 +28,14 @@ boundaryField } inlet { - type fixedValue; + type totalPressure; + p0 uniform 101325; value uniform 101325; } outlet { type fixedValue; - value uniform 105000; + value uniform 104000; } shroud { diff --git a/Rotor37_Compressor/constant/turbulenceProperties b/Rotor37_Compressor/constant/turbulenceProperties index 5f585153..83570853 100755 --- a/Rotor37_Compressor/constant/turbulenceProperties +++ b/Rotor37_Compressor/constant/turbulenceProperties @@ -18,7 +18,7 @@ FoamFile simulationType RAS; RAS { - RASModel SpalartAllmaras; + RASModel SpalartAllmarasFv3; turbulence on; diff --git a/Rotor37_Compressor/runScript.py b/Rotor37_Compressor/runScript.py index ff7327dc..6c0aa62a 100755 --- a/Rotor37_Compressor/runScript.py +++ b/Rotor37_Compressor/runScript.py @@ -1,133 +1,183 @@ #!/usr/bin/env python -""" -DAFoam run script for the Rotor 37 case -""" - -# ============================================================================= -# Imports -# ============================================================================= import os import argparse -from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + -# ============================================================================= -# Input Parameters -# ============================================================================= parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="ipopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SLSQP") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") args = parser.parse_args() -gcomm = MPI.COMM_WORLD +# ============================================================================= +# Input Parameters +# ============================================================================= -TPR_target = 1.4 -MFR_target = 0.7 +TPR0 = 1.5927 +MFR0 = 0.59763 -# Set the parameters for optimization +# Input parameters for DAFoam daOptions = { "solverName": "DATurboFoam", - "useAD": {"mode": "reverse"}, "designSurfaces": ["blade"], "primalMinResTol": 1e-8, - "primalVarBounds": { - "UMax": 800.0, - "UMin": -800.0, - "pMax": 1000000.0, - "pMin": 20000.0, - "hMax": 500000.0, - "hMin": 50000.0, - "rhoMax": 10.0, - "rhoMin": 0.2, - }, - "objFunc": { + "primalMinResTolDiff": 1e4, + "maxCorrectBCCalls": 10, + "function": { "TPR": { - "part1": { - "type": "totalPressureRatio", - "source": "patchToFace", - "patches": ["inlet", "outlet"], - "inletPatches": ["inlet"], - "outletPatches": ["outlet"], - "scale": 1.0, - "addToAdjoint": True, - } + "type": "totalPressureRatio", + "source": "patchToFace", + "patches": ["inlet", "outlet"], + "inletPatches": ["inlet"], + "outletPatches": ["outlet"], + "scale": 1.0, }, "TTR": { - "part1": { - "type": "totalTemperatureRatio", - "source": "patchToFace", - "patches": ["inlet", "outlet"], - "inletPatches": ["inlet"], - "outletPatches": ["outlet"], - "scale": 1.0, - "addToAdjoint": False, - } + "type": "totalTemperatureRatio", + "source": "patchToFace", + "patches": ["inlet", "outlet"], + "inletPatches": ["inlet"], + "outletPatches": ["outlet"], + "scale": 1.0, }, "MFR": { - "part1": { - "type": "massFlowRate", - "source": "patchToFace", - "patches": ["inlet"], - "scale": -1.0, - "addToAdjoint": True, - } + "type": "massFlowRate", + "source": "patchToFace", + "patches": ["inlet"], + "scale": -1.0, }, "CMZ": { - "part1": { - "type": "moment", - "source": "patchToFace", - "patches": ["blade"], - "axis": [0.0, 0.0, 1.0], - "center": [0.0, 0.0, 0.0], - "scale": 1.0, - "addToAdjoint": True, - } + "type": "moment", + "source": "patchToFace", + "patches": ["blade"], + "axis": [0.0, 0.0, 1.0], + "center": [0.0, 0.0, 0.0], + "scale": 1.0, }, }, "normalizeStates": {"U": 100.0, "p": 100000.0, "nuTilda": 1e-3, "phi": 1.0, "T": 300.0}, - "adjPartDerivFDStep": {"State": 1e-6, "FFD": 1e-3}, - "adjEqnOption": {"gmresRelTol": 1.0e-5, "pcFillLevel": 1, "jacMatReOrdering": "rcm", "gmresMaxIters": 2000, "gmresRestart": 2000}, - "checkMeshThreshold": {"maxAspectRatio": 2000.0, "maxNonOrth": 75.0, "maxSkewness": 8.0}, + "adjEqnOption": { + "gmresRelTol": 1.0e-5, + "pcFillLevel": 1, + "jacMatReOrdering": "rcm", + "gmresMaxIters": 2000, + "gmresRestart": 2000, + }, + "checkMeshThreshold": {"maxAspectRatio": 2000.0, "maxNonOrth": 78.0, "maxSkewness": 5.0}, "transonicPCOption": 1, "adjPCLag": 1, - # Design variable setup - "designVar": {"shapey": {"designVarType": "FFD"}, "shapez": {"designVarType": "FFD"}}, + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver", "function"]}, + }, "decomposeParDict": {"preservePatches": ["per1", "per2"]}, } -# mesh warping parameters, users need to manually specify the symmetry plane +# Mesh deformation setup meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", + "fileType": "OpenFOAM", # point and normal for the symmetry plane "symmetryPlanes": [], } + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the mesh component + self.add_subsystem("mesh", dafoam_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/localFFD.xyz", type="ffd")) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("cruise", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the cruise + # scenario group + self.connect("geometry.x_aero0", "cruise.x_aero") + + def configure(self): + + # get the surface coordinates from the mesh component + points = self.mesh.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # select the FFD points to move + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = pts[1:4, :, :].flatten() + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shapey", axis="y", pointSelect=PS) + self.geometry.nom_addLocalDV(dvName="shapez", axis="z", pointSelect=PS) + # add the design variables to the dvs component's output + self.dvs.add_output("shapey", val=np.array([0] * nShapes)) + self.dvs.add_output("shapez", val=np.array([0] * nShapes)) + # manually connect the dvs output to the geometry and cruise + self.connect("shapey", "geometry.shapey") + self.connect("shapez", "geometry.shapez") + # define the design variables to the top level + self.add_design_var("shapey", lower=-0.002, upper=0.002, scaler=1000.0) + self.add_design_var("shapez", lower=-0.002, upper=0.002, scaler=1000.0) + + # add objective and constraints to the top level + self.add_objective("cruise.aero_post.CMZ", scaler=1.0) + self.add_constraint("cruise.aero_post.MFR", equals=MFR0, scaler=1.0) + self.add_constraint("cruise.aero_post.TPR", lower=TPR0, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer # options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 50, + "Function precision": 1.0e-5, + "Major iterations limit": 100, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", "Summary file": "opt_SNOPT_summary.txt", } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, "print_level": 5, "output_file": "opt_IPOPT.txt", "mu_strategy": "adaptive", @@ -136,102 +186,37 @@ "alpha_for_y": "full", "recalc_y": "yes", } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } else: - print("opt arg not valid!") - exit(0) - - -# ============================================================================= -# Design variable setup -# ============================================================================= -FFDFile = "./FFD/localFFD.xyz" -DVGeo = DVGeometry(FFDFile) -# select points -pts = DVGeo.getLocalIndex(0) -indexList = pts[1:4, :, :].flatten() -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal("shapey", lower=-0.01, upper=0.01, axis="y", scale=1.0, pointSelect=PS) -DVGeo.addGeoDVLocal("shapez", lower=-0.01, upper=0.01, axis="z", scale=1.0, pointSelect=PS) - - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - # Add objective - optProb.addObj("CMZ", scale=1) - # Add physical constraints - optProb.addCon("TPR", lower=TPR_target, upper=TPR_target, scale=1) - optProb.addCon("MFR", lower=MFR_target, upper=MFR_target, scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "runForwardAD": - - optFuncs.runForwardAD("shapey", 0) - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/Rotor37_Compressor/system/controlDict b/Rotor37_Compressor/system/controlDict index 2a284804..102dd999 100755 --- a/Rotor37_Compressor/system/controlDict +++ b/Rotor37_Compressor/system/controlDict @@ -18,10 +18,10 @@ FoamFile startFrom startTime; startTime 0; stopAt endTime; -endTime 5000; +endTime 3000; deltaT 1; writeControl timeStep; -writeInterval 5000; +writeInterval 3000; purgeWrite 0; writeFormat ascii; writePrecision 16; diff --git a/Rotor37_Compressor/system/decomposeParDict b/Rotor37_Compressor/system/decomposeParDict index 36ff80b1..16a0958a 100755 --- a/Rotor37_Compressor/system/decomposeParDict +++ b/Rotor37_Compressor/system/decomposeParDict @@ -15,7 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -numberOfSubdomains 2; +numberOfSubdomains 18; method scotch; diff --git a/Rotor37_Compressor/system/fvSchemes b/Rotor37_Compressor/system/fvSchemes index ac24215c..05f531c2 100755 --- a/Rotor37_Compressor/system/fvSchemes +++ b/Rotor37_Compressor/system/fvSchemes @@ -59,7 +59,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/S809_Airfoil/0.orig/T b/S809_Airfoil/0.orig/T new file mode 100755 index 00000000..5b770950 --- /dev/null +++ b/S809_Airfoil/0.orig/T @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 300.0; + +boundaryField +{ + "wing.*" + { + type zeroGradient; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/0.orig/U b/S809_Airfoil/0.orig/U new file mode 100755 index 00000000..0f8e4e35 --- /dev/null +++ b/S809_Airfoil/0.orig/U @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (68 0 0); + +boundaryField +{ + "wing.*" + { + type fixedValue; + value uniform (0 0 0); + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/0.orig/alphat b/S809_Airfoil/0.orig/alphat new file mode 100755 index 00000000..d641c321 --- /dev/null +++ b/S809_Airfoil/0.orig/alphat @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 1e-4; + +boundaryField +{ + "wing.*" + { + type compressible::alphatWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/0.orig/betaFIKData b/S809_Airfoil/0.orig/betaFIKData new file mode 100755 index 00000000..30902a14 --- /dev/null +++ b/S809_Airfoil/0.orig/betaFIKData @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFIKData; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1.0; + +boundaryField +{ + "(wing.*)" + { + type zeroGradient; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type zeroGradient; + } + +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/0.orig/betaFINuTildaData b/S809_Airfoil/0.orig/betaFINuTildaData new file mode 100755 index 00000000..cd60dab9 --- /dev/null +++ b/S809_Airfoil/0.orig/betaFINuTildaData @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFINuTildaData; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1.0; + +boundaryField +{ + "(wing.*)" + { + type zeroGradient; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type zeroGradient; + } + +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/0.orig/betaFIOmegaData b/S809_Airfoil/0.orig/betaFIOmegaData new file mode 100755 index 00000000..91204136 --- /dev/null +++ b/S809_Airfoil/0.orig/betaFIOmegaData @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object betaFIOmegaData; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1.0; + +boundaryField +{ + "(wing.*)" + { + type zeroGradient; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type zeroGradient; + } + +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/0.orig/epsilon b/S809_Airfoil/0.orig/epsilon new file mode 100755 index 00000000..68b8f8bf --- /dev/null +++ b/S809_Airfoil/0.orig/epsilon @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 64; + +boundaryField +{ + "(wing|wingte)" + { + type epsilonWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/0.orig/k b/S809_Airfoil/0.orig/k new file mode 100755 index 00000000..314fdc6e --- /dev/null +++ b/S809_Airfoil/0.orig/k @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.7; + +boundaryField +{ + "(wing.*)" + { + type kqRWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/0.orig/nuTilda b/S809_Airfoil/0.orig/nuTilda new file mode 100755 index 00000000..4a6adb30 --- /dev/null +++ b/S809_Airfoil/0.orig/nuTilda @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 8e-05; + +boundaryField +{ + "wing.*" + { + type fixedValue; + value uniform 0.0; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/0.orig/nut b/S809_Airfoil/0.orig/nut new file mode 100755 index 00000000..9dc96eaf --- /dev/null +++ b/S809_Airfoil/0.orig/nut @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 4.5E-5; + +boundaryField +{ + "wing.*" + { + type nutUSpaldingWallFunction; + value $internalField; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type calculated; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/0.orig/omega b/S809_Airfoil/0.orig/omega new file mode 100755 index 00000000..ad9a9465 --- /dev/null +++ b/S809_Airfoil/0.orig/omega @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 1000; + +boundaryField +{ + "(wing|wingte)" + { + type omegaWallFunction; + value $internalField; + blended true; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/0.orig/p b/S809_Airfoil/0.orig/p new file mode 100755 index 00000000..48b48461 --- /dev/null +++ b/S809_Airfoil/0.orig/p @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + "wing.*" + { + type zeroGradient; + } + symmetry1 + { + type symmetry; + } + symmetry2 + { + type symmetry; + } + inout + { + type outletInlet; + outletValue $internalField; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/S809_Airfoil/Allclean.sh b/S809_Airfoil/Allclean.sh new file mode 100755 index 00000000..6e64b065 --- /dev/null +++ b/S809_Airfoil/Allclean.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf 0 + rm -rf postProcessing + rm -rf constant/extendedFeatureEdgeMesh + rm -rf constant/triSurface + rm -rf constant/polyMesh/ + rm -rf *.bin *.info *.dat *.xyz *.stl + rm -rf processor* 0.0000* + rm -rf {1..9}* + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done + diff --git a/S809_Airfoil/constant/thermophysicalProperties b/S809_Airfoil/constant/thermophysicalProperties new file mode 100755 index 00000000..e301a88b --- /dev/null +++ b/S809_Airfoil/constant/thermophysicalProperties @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + mixture pureMixture; + specie specie; + equationOfState perfectGas; + energy sensibleInternalEnergy; + thermo hConst; + type hePsiThermo; + transport const; +} + +mixture +{ + specie + { + molWeight 28.970000; + } + thermodynamics + { + Cp 1005.000000; + Hf 0.000000; + } + transport + { + mu 0.00004; + Pr 0.70000; + TRef 300.000000; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/S809_Airfoil/constant/turbulenceProperties b/S809_Airfoil/constant/turbulenceProperties new file mode 100755 index 00000000..09d6f0a4 --- /dev/null +++ b/S809_Airfoil/constant/turbulenceProperties @@ -0,0 +1,27 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmaras; + turbulence on; + printCoeffs off; + Prt 1.0; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/S809_Airfoil/constant/turbulenceProperties_SA b/S809_Airfoil/constant/turbulenceProperties_SA new file mode 100755 index 00000000..09d6f0a4 --- /dev/null +++ b/S809_Airfoil/constant/turbulenceProperties_SA @@ -0,0 +1,27 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmaras; + turbulence on; + printCoeffs off; + Prt 1.0; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/S809_Airfoil/constant/turbulenceProperties_SST b/S809_Airfoil/constant/turbulenceProperties_SST new file mode 100755 index 00000000..442e813d --- /dev/null +++ b/S809_Airfoil/constant/turbulenceProperties_SST @@ -0,0 +1,27 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel kOmegaSST; + turbulence on; + printCoeffs off; + Prt 1.0; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/S809_Airfoil/genAirFoilMesh.py b/S809_Airfoil/genAirFoilMesh.py new file mode 100755 index 00000000..13d34850 --- /dev/null +++ b/S809_Airfoil/genAirFoilMesh.py @@ -0,0 +1,267 @@ +#!/usr/bin/env python +""" +This script reads a coarse airfoil profile, refine the profile using spline function, +and outputs it as surfaceMesh.xyz. Then it generate a 3D volume mesh with nSpan layers +in the z direction using pyHyp, available at https://github.com/mdolab/pyhyp +Note: the airfoil data should be seperated into PS and SS surfaces, they should start from the +LE and ends at TE. We use blunt TE so truncate the PS and SS data at about 99.8% of the chord. +""" + +from pyhyp import pyHyp +import numpy +from pyspline import * + +########## user input ################ +# 2D +prefix = "./profiles/" +airfoilProfilePS = prefix + "lower.dat" +airfoilProfileSS = prefix + "upper.dat" +ZSpan = 0.01 # width in the z direction +nSpan = 2 # how many points in z +# PS parameters +dX1PS = 0.002 # first dx from the LE +Alpha1PS = 1.1 # clustering from the LE +dX2PS = 0.2e-3 # first dx from the TE +Alpha2PS = 1.1 # clustering from the TE +dXMaxPS = 0.01 # max dx for PS +# SS parameters +dX1SS = 0.002 # first dx from the LE +Alpha1SS = 1.1 # clustering from the LE +dX2SS = 0.2e-3 # first dx from the TE +Alpha2SS = 1.1 # clustering from the TE +dXMaxSS = 0.005 # max dx for SS +# TE parameters +NpTE = 9 # number of points for blunt TE +# 3D +NpExtrude = 85 # how many points to extrude for the 3D volume mesh in y +yWall = 1e-5 # first layer mesh length +marchDist = 20.0 # march distance for extruding +########## user input ################ + +# read profiles +fPS = open(airfoilProfilePS, "r") +linesPS = fPS.readlines() +fPS.close() +xPS = [] +yPS = [] +zPS = [] +for line in linesPS: + cols = line.split() + xPS.append(float(cols[0])) + yPS.append(float(cols[1])) + +for i in range(len(xPS)): + zPS.append(0.0) + +fSS = open(airfoilProfileSS, "r") +linesSS = fSS.readlines() +fSS.close() +xSS = [] +ySS = [] +zSS = [] +for line in linesSS: + cols = line.split() + xSS.append(float(cols[0])) + ySS.append(float(cols[1])) +for i in range(len(xSS)): + zSS.append(0.0) + +# ------------PS +# first compute how many stretching points do we need for both ends +tmp = dX1PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch1PS = i + break + else: + tmp = tmp * Alpha1PS +# print (nStretch1PS) +tmp = dX2PS +for i in range(1000): + if tmp > dXMaxPS: + nStretch2PS = i + break + else: + tmp = tmp * Alpha2PS +# print (nStretch2PS) + +# now compute how much length does these two stretching end and the constant portion have +xLPSConst = xPS[-1] +xLPS1 = 0 +xLPS2 = 0 +for i in range(nStretch1PS): + xLPS1 += dX1PS * (Alpha1PS ** i) + xLPSConst -= dX1PS * (Alpha1PS ** i) +for i in range(nStretch2PS): + xLPS2 += dX2PS * (Alpha2PS ** i) + xLPSConst -= dX2PS * (Alpha2PS ** i) +# print xLPS1,xLPS2,xLPSConst +# update dXMax, we just want to make sure these three portion add up +nXConstPS = int(xLPSConst / dXMaxPS) +dXMaxPS = xLPSConst / nXConstPS +# print(dXMaxPS) + +# now we can add these three portions together +xInterpPS = [0] +tmp = dX1PS +for i in range(nStretch1PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp = tmp * Alpha1PS +for i in range(nXConstPS): + xInterpPS.append(xInterpPS[-1] + dXMaxPS) +tmp = dX2PS * (Alpha2PS ** (nStretch2PS - 1)) +for i in range(nStretch2PS): + xInterpPS.append(xInterpPS[-1] + tmp) + tmp /= Alpha2PS +# print xInterpPS +# Finally, we interpolate the refined stretch stuff +c1PS = Curve(x=xPS, y=yPS, z=zPS, k=3) +XPS = c1PS(xInterpPS) +c2PS = Curve(X=XPS, k=3) +x1PS = c2PS.X[:, 0] +y1PS = c2PS.X[:, 1] + + +# ------------SS +# first compute how many stretching points do we need for both ends +tmp = dX1SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch1SS = i + break + else: + tmp = tmp * Alpha1SS +# print (nStretch1SS) +tmp = dX2SS +for i in range(1000): + if tmp > dXMaxSS: + nStretch2SS = i + break + else: + tmp = tmp * Alpha2SS +# print (nStretch2SS) + +# now compute how much length does these two stretching end and the constant portion have +xLSSConst = xSS[-1] +xLSS1 = 0 +xLSS2 = 0 +for i in range(nStretch1SS): + xLSS1 += dX1SS * (Alpha1SS ** i) + xLSSConst -= dX1SS * (Alpha1SS ** i) +for i in range(nStretch2SS): + xLSS2 += dX2SS * (Alpha2SS ** i) + xLSSConst -= dX2SS * (Alpha2SS ** i) +# print xLSS1,xLSS2,xLSSConst +# update dXMax, we just want to make sure these three portion add up +nXConstSS = int(xLSSConst / dXMaxSS) +dXMaxSS = xLSSConst / nXConstSS +# print(dXMaxSS) + +# now we can add these three portions together +xInterpSS = [0] +tmp = dX1SS +for i in range(nStretch1SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp = tmp * Alpha1SS +for i in range(nXConstSS): + xInterpSS.append(xInterpSS[-1] + dXMaxSS) +tmp = dX2SS * (Alpha2SS ** (nStretch2SS - 1)) +for i in range(nStretch2SS): + xInterpSS.append(xInterpSS[-1] + tmp) + tmp /= Alpha2SS +# print xInterpSS +# Finally, we interpolate the refined stretch stuff +c1SS = Curve(x=xSS, y=ySS, z=zSS, k=3) +XSS = c1SS(xInterpSS) +c2SS = Curve(X=XSS, k=3) +x1SS = c2SS.X[:, 0] +y1SS = c2SS.X[:, 1] + +# Since the TE is open we need to close it. Close it multiple linear segments. +delta_y = numpy.linspace(y1PS[-1], y1SS[-1], NpTE, "d") +delta_x = numpy.linspace(x1PS[-1], x1SS[-1], NpTE, "d") +delta_y = delta_y[1:] +delta_x = delta_x[1:] + +x1SS_Flip = x1SS[::-1] # reverse the array #numpy.flip(x1SS,axis=0) +xAll = numpy.append(x1SS_Flip, x1PS[1:]) +xAll = numpy.append(xAll, delta_x) + +y1SS_Flip = y1SS[::-1] # reverse the array # numpy.flip(y1SS,axis=0) +yAll = numpy.append(y1SS_Flip, y1PS[1:]) +yAll = numpy.append(yAll, delta_y) + + +# print mesh statistics +print("nPoints for PS: ", nStretch1PS + nStretch2PS + nXConstPS) +print("nPoints for SS: ", nStretch1SS + nStretch2SS + nXConstSS) +print("nPoints for TE: ", NpTE) +print("nPoints Total: ", nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE) +print( + "Mesh cells: ", + (nStretch1PS + nStretch2PS + nXConstPS + nStretch1SS + nStretch2SS + nXConstSS + NpTE - 1) + * (NpExtrude - 1) + * (nSpan - 1), +) + +# plt.plot(xPS,yPS,'-k',linewidth=1) +# plt.plot(xAll,yAll,'ro',markersize=2) +# plt.plot(xSS,ySS,'-k',linewidth=1) +# plt.gca().set_aspect('equal', adjustable='box') +# plt.show() +# plt.savefig('figure.png',bbox_inches='tight') # save the figure to file +# plt.close() # close the figure + + +# Write the plot3d input file: +f = open("surfaceMesh.xyz", "w") +f.write("1\n") +f.write("%d %d %d\n" % (len(xAll), nSpan, 1)) +for iDim in range(3): + for z in numpy.linspace(0.0, ZSpan, nSpan): + for i in range(len(xAll)): + if iDim == 0: + f.write("%20.16f\n" % xAll[i]) + elif iDim == 1: + f.write("%20.16f\n" % yAll[i]) + else: + f.write("%20.16f\n" % z) +f.close() + +options = { + # --------------------------- + # Input Parameters + # --------------------------- + "inputFile": "surfaceMesh.xyz", + "unattachedEdgesAreSymmetry": False, + "outerFaceBC": "farfield", + "autoConnect": True, + "BC": {1: {"jLow": "zSymm", "jHigh": "zSymm"}}, + "families": "wall", + # --------------------------- + # Grid Parameters + # --------------------------- + "N": NpExtrude, + "s0": yWall, + "marchDist": marchDist, + # --------------------------- + # Pseudo Grid Parameters + # --------------------------- + "ps0": -1.0, + "pGridRatio": -1.0, + "cMax": 1.0, + # --------------------------- + # Smoothing parameters + # --------------------------- + "epsE": 2.0, + "epsI": 4.0, + "theta": 2.0, + "volCoef": 0.20, + "volBlend": 0.0005, + "volSmoothIter": 20, +} + + +hyp = pyHyp(options=options) +hyp.run() +hyp.writePlot3D("volumeMesh.xyz") diff --git a/S809_Airfoil/paraview.foam b/S809_Airfoil/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/S809_Airfoil/preProcessing.sh b/S809_Airfoil/preProcessing.sh new file mode 100755 index 00000000..244dd8a2 --- /dev/null +++ b/S809_Airfoil/preProcessing.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# Check if the OpenFOAM enviroments are loaded +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# generate mesh + +echo "Generating mesh.." +python genAirFoilMesh.py &> logMeshGeneration.txt +plot3dToFoam -noBlank volumeMesh.xyz >> logMeshGeneration.txt +autoPatch 45 -overwrite >> logMeshGeneration.txt +createPatch -overwrite >> logMeshGeneration.txt +renumberMesh -overwrite >> logMeshGeneration.txt +echo "Generating mesh.. Done!" +# copy initial and boundary condition files +cp -r 0.orig 0 + diff --git a/S809_Airfoil/profiles/lower.dat b/S809_Airfoil/profiles/lower.dat new file mode 100755 index 00000000..00aadd5f --- /dev/null +++ b/S809_Airfoil/profiles/lower.dat @@ -0,0 +1,33 @@ +0 0 +0.000000 -0.000020 +0.000213 -0.001794 +0.001045 -0.003477 +0.001208 -0.003724 +0.002398 -0.005266 +0.009313 -0.011499 +0.023230 -0.020399 +0.042320 -0.030269 +0.065877 -0.040821 +0.093426 -0.051923 +0.124111 -0.063082 +0.157653 -0.073730 +0.193738 -0.083567 +0.231914 -0.092442 +0.271438 -0.099905 +0.311968 -0.105281 +0.353370 -0.108181 +0.395329 -0.108011 +0.438273 -0.104552 +0.481920 -0.097347 +0.527928 -0.086571 +0.576211 -0.073979 +0.626092 -0.060644 +0.676744 -0.047441 +0.727211 -0.035100 +0.776432 -0.024204 +0.823285 -0.015163 +0.866630 -0.008204 +0.905365 -0.003363 +0.938474 -0.000487 +0.965086 0.000743 +0.984478 0.000775 \ No newline at end of file diff --git a/S809_Airfoil/profiles/upper.dat b/S809_Airfoil/profiles/upper.dat new file mode 100755 index 00000000..eb70d07b --- /dev/null +++ b/S809_Airfoil/profiles/upper.dat @@ -0,0 +1,31 @@ +0 0 +0.000204 0.001942 +0.000658 0.003723 +0.006026 0.012615 +0.01659 0.02229 +0.03191 0.032299 +0.051823 0.042352 +0.076035 0.052224 +0.104263 0.061697 +0.136174 0.07058 +0.171409 0.078687 +0.209576 0.085851 +0.250247 0.091908 +0.29297 0.096703 +0.33726 0.10007 +0.382612 0.10184 +0.428461 0.10176 +0.474243 0.099392 +0.519832 0.093268 +0.56783 0.084095 +0.617331 0.074214 +0.667064 0.064353 +0.715952 0.054872 +0.763042 0.045974 +0.80747 0.037766 +0.848455 0.03028 +0.885293 0.023458 +0.917488 0.017033 +0.945073 0.011024 +0.967844 0.00596 +0.98519 0.002373 \ No newline at end of file diff --git a/S809_Airfoil/runScript.py b/S809_Airfoil/runScript.py new file mode 100755 index 00000000..c45c2251 --- /dev/null +++ b/S809_Airfoil/runScript.py @@ -0,0 +1,233 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder +from mphys.scenario_aerodynamic import ScenarioAerodynamic + + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="IPOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") +# which case to run +parser.add_argument("-index", help="which case index to run", type=int, default=0) +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= + +nCells = 31080 + +U0 = 68.0 +p0 = 101325.0 +T0 = 288.0 +rho0 = p0 / T0 / 287.0 +nuTilda0 = 1e-4 +k0 = 0.2 +omega0 = 1000.0 +A0 = 0.01 + +aoa = 14.0 # [4.0, 14.0, 20.0] +CLData = 1.0478 # [0.6035, 1.0478, 0.9219] + +aoaRad = aoa * np.pi / 180.0 +inletU = [float(U0 * np.cos(aoaRad)), float(U0 * np.sin(aoaRad)), 0] +flowDir = [float(np.cos(aoaRad)), float(np.sin(aoaRad)), 0.0] +normalDir = [-float(np.sin(aoaRad)), float(np.cos(aoaRad)), 0.0] + +# Input parameters for DAFoam +daOptions = { + "designSurfaces": ["wing"], + "solverName": "DARhoSimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1e6, + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": inletU}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "T0": {"variable": "T", "patches": ["inout"], "value": [T0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "k0": {"variable": "k", "patches": ["inout"], "value": [k0]}, + "omega0": {"variable": "omega", "patches": ["inout"], "value": [omega0]}, + "thermo:mu": 3.4e-5, + "useWallFunction": False, + }, + "primalVarBounds": {"omegaMin": -1e16}, + "function": { + "CLError": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "fixedDirection", + "direction": normalDir, + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + "calcRefVar": True, + "ref": [CLData], + }, + "betaVar": { + "type": "variance", + "source": "boxToCell", + "min": [-100.0, -100.0, -100.0], + "max": [100.0, 100.0, 100.0], + "scale": 1.0, + "mode": "field", + "varName": "betaFINuTilda", + "varType": "scalar", + "timeDependentRefData": False, + }, + "CD": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "fixedDirection", + "direction": flowDir, + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + "CL": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "fixedDirection", + "direction": normalDir, + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": { + "gmresRelTol": 1.0e-6, + "pcFillLevel": 2, + "jacMatReOrdering": "natural", + "gmresMaxIters": 3000, + "gmresRestart": 3000, + }, + "normalizeStates": { + "U": U0, + "p": p0, + "T": T0, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "checkMeshThreshold": {"maxAspectRatio": 10000.0}, + "inputInfo": { + "beta": { + "type": "field", + "fieldName": "betaFINuTilda", + "fieldType": "scalar", + "distributed": False, + "components": ["solver", "function"], + }, + }, +} + + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(options=daOptions, mesh_options=None, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # setup a composite objective + self.add_subsystem("obj", om.ExecComp("val=error+regulation")) + + def configure(self): + # add the design variables to the dvs component's output + self.dvs.add_output("beta", val=np.ones(nCells), distributed=False) + self.connect("beta", "scenario1.beta") + + # define the design variables to the top level + self.add_design_var("beta", lower=-5.0, upper=10.0, scaler=1.0) + + # add objective and constraints to the top level + # we can connect any function in daOption to obj's terms + self.connect("scenario1.aero_post.CLError", "obj.error") + self.connect("scenario1.aero_post.betaVar", "obj.regulation") + self.add_objective("obj.val", scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-6, + "Major optimality tolerance": 1.0e-6, + "Minor feasibility tolerance": 1.0e-6, + "Verify level": -1, + "Function precision": 1.0e-6, + "Major iterations limit": 200, + "Linesearch tolerance": 0.999, + "Hessian updates": 200, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") +else: + print("task arg not found!") + exit(1) diff --git a/S809_Airfoil/sweepAOA_not_working.py b/S809_Airfoil/sweepAOA_not_working.py new file mode 100755 index 00000000..b1acc8e3 --- /dev/null +++ b/S809_Airfoil/sweepAOA_not_working.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python + +# ============================================================================= +# Imports +# ============================================================================= +from mpi4py import MPI +from dafoam import PYDAFOAM +import numpy as np +import json +import sys + +gcomm = MPI.COMM_WORLD + +U0 = 68.0 +p0 = 101325.0 +T0 = 288.0 +rho0 = p0 / T0 / 287.0 +nuTilda0 = 1e-4 +k0 = 0.2 +omega0 = 1000.0 +A0 = 0.01 + +outputFile = sys.argv[1] + +aoas = [4.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0] + +# Set the parameters for optimization +daOptions = { + "solverName": "DARhoSimpleFoam", + "primalBC": { + "U0": {"variable": "U", "patches": ["inout"], "value": [U0, 0, 0]}, + "p0": {"variable": "p", "patches": ["inout"], "value": [p0]}, + "T0": {"variable": "T", "patches": ["inout"], "value": [T0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inout"], "value": [nuTilda0]}, + "k0": {"variable": "k", "patches": ["inout"], "value": [k0]}, + "omega0": {"variable": "omega", "patches": ["inout"], "value": [omega0]}, + "thermo:mu": 3.4e-5, + "useWallFunction": False, + }, + "primalMinResTol": 1.0e0, + "primalVarBounds": {"omegaMin": -1e16}, + "function": { + "CD": { + "part1": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "parallelToFlow", + "alphaName": "aoa", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + "addToAdjoint": True, + } + }, + "CL": { + "part1": { + "type": "force", + "source": "patchToFace", + "patches": ["wing"], + "directionMode": "normalToFlow", + "alphaName": "aoa", + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0), + "addToAdjoint": True, + } + }, + "CM": { + "part1": { + "type": "moment", + "source": "patchToFace", + "patches": ["wing"], + "axis": [0.0, 0.0, 1.0], + "center": [0.25, 0.0, 0.05], + "scale": 1.0 / (0.5 * U0 * U0 * A0 * rho0 * 1.0), + "addToAdjoint": True, + } + }, + }, + "designVar": { + "aoa": {"designVarType": "AOA", "patches": ["inout"], "flowAxis": "x", "normalAxis": "y"}, + }, + "checkMeshThreshold": {"maxAspectRatio": 10000.0}, +} + + +def aoa(val, DASolver): + aoa = val[0] * np.pi / 180.0 + inletU = [float(U0 * np.cos(aoa)), float(U0 * np.sin(aoa)), 0] + DASolver.setOption("primalBC", {"U0": {"variable": "U", "patches": ["inout"], "value": inletU}}) + DASolver.updateDAOption() + + +xDV = {} +xDV["aoa"] = [0.0] + +DASolver = PYDAFOAM(options=daOptions, comm=gcomm) +DASolver.addInternalDV("aoa", [0.0], aoa, lower=-50, upper=50, scale=1.0) + +outputDict = {} +outputDict["CD"] = [] +outputDict["CL"] = [] +outputDict["CM"] = [] + +for angle in aoas: + if gcomm.rank == 0: + print("AOA: ", angle) + + xDV["aoa"] = [angle] + DASolver.setInternalDesignVars(xDV) + + DASolver() + funcs = {} + DASolver.evalFunctions(funcs, evalFuncs=["CD", "CL", "CM"]) + outputDict["CD"].append(funcs["CD"]) + outputDict["CL"].append(funcs["CL"]) + outputDict["CM"].append(funcs["CM"]) + +outputDict["AOA"] = aoas + +if gcomm.rank == 0: + with open(outputFile, "w") as fp: + json.dump(outputDict, fp) diff --git a/S809_Airfoil/system/blockMeshDict b/S809_Airfoil/system/blockMeshDict new file mode 100755 index 00000000..1e001064 --- /dev/null +++ b/S809_Airfoil/system/blockMeshDict @@ -0,0 +1,165 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| o | | +| o o | HELYX-OS | +| o O o | Version: v2.3.1 | +| o o | Web: http://www.engys.com | +| o | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} + +convertToMeters 1; + +MeshCross 10; +MeshInout 14; +MeshBend 8; + +ratio1 0.1; +ratio2 10.0; + +vertices +( + ( 0 0.0195 0) + ( 0 0.0945 0) + ( 0 0.0195 0.075) + ( 0 0.0945 0.075) + + ( 0.75 0.0195 0) + ( 0.75 0.0945 0) + ( 0.75 0.0195 0.075) + ( 0.75 0.0945 0.075) + + ( 0 -0.0195 0) + ( 0 -0.0945 0) + ( 0 -0.0195 0.075) + ( 0 -0.0945 0.075) + + ( 0.75 -0.0195 0) + ( 0.75 -0.0945 0) + ( 0.75 -0.0195 0.075) + ( 0.75 -0.0945 0.075) + + ( 0.7695 0 0) + ( 0.7695 0 0.075) + ( 0.8445 0 0) + ( 0.8445 0 0.075) + +); + +edges +( + arc 4 16 ( 0.76378858223313767673 0.01378858223313767673 0) + arc 6 17 ( 0.76378858223313767673 0.01378858223313767673 0.075) + + arc 12 16 ( 0.76378858223313767673 -0.01378858223313767673 0) + arc 14 17 ( 0.76378858223313767673 -0.01378858223313767673 0.075) + + arc 5 18 ( 0.81682159082212874106 0.06682159082212874106 0) + arc 7 19 ( 0.81682159082212874106 0.06682159082212874106 0.075) + + arc 13 18 ( 0.81682159082212874106 -0.06682159082212874106 0) + arc 15 19 ( 0.81682159082212874106 -0.06682159082212874106 0.075) +); + +blocks +( + + hex (0 4 5 1 2 6 7 3) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (4 16 18 5 6 17 19 7) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + + hex (13 18 16 12 15 19 17 14) ($MeshBend $MeshCross $MeshCross) + simpleGrading + ( + 1.0 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + hex (9 13 12 8 11 15 14 10) ($MeshInout $MeshCross $MeshCross) + simpleGrading + ( + 0.04 + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ( + (0.5 0.5 $ratio2) + (0.5 0.5 $ratio1) + ) + ) + +); + + +patches +( + + patch inlet + ( + (0 1 3 2) + ) + patch outlet + ( + (9 8 10 11) + ) + wall ubend + ( + (0 4 5 1) + (0 4 6 2) + (1 5 7 3) + (2 3 7 6) + (4 16 18 5) + (4 16 17 6) + (6 17 19 7) + (5 18 19 7) + (13 18 16 12) + (13 15 19 18) + (12 16 17 14) + (14 17 19 15) + (9 13 12 8) + (9 11 15 13) + (8 12 14 10) + (11 15 14 10) + + ) +); + +mergePatchPairs +( +); diff --git a/S809_Airfoil/system/controlDict b/S809_Airfoil/system/controlDict new file mode 100755 index 00000000..1b66a498 --- /dev/null +++ b/S809_Airfoil/system/controlDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 3000; +deltaT 1; +writeControl timeStep; +writeInterval 3000; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 16; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/S809_Airfoil/system/createPatchDict b/S809_Airfoil/system/createPatchDict new file mode 100755 index 00000000..5e2c4077 --- /dev/null +++ b/S809_Airfoil/system/createPatchDict @@ -0,0 +1,82 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +pointSync false; + +// Patches to create. +patches +( + { + // Name of new patch + name symmetry1; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto0); + } + { + // Name of new patch + name symmetry2; + + // Dictionary to construct new patch from + patchInfo + { + type symmetry; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto1); + } + + { + // Name of new patch + name wing; + + // Dictionary to construct new patch from + patchInfo + { + type wall; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto2 auto3); + } + + { + // Name of new patch + name inout; + + // Dictionary to construct new patch from + patchInfo + { + type patch; + } + + // How to construct: either from 'patches' or 'set' + constructFrom patches; + patches (auto4); + } +); + +// ************************************************************************* // diff --git a/S809_Airfoil/system/decomposeParDict b/S809_Airfoil/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/S809_Airfoil/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/S809_Airfoil/system/fvSchemes b/S809_Airfoil/system/fvSchemes new file mode 100755 index 00000000..68080727 --- /dev/null +++ b/S809_Airfoil/system/fvSchemes @@ -0,0 +1,64 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,e) bounded Gauss upwind; + div(phi,h) bounded Gauss upwind; + div(pc) bounded Gauss upwind; + div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div(phi,K) bounded Gauss upwind; + div(phi,Ekp) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/S809_Airfoil/system/fvSolution b/S809_Airfoil/system/fvSolution new file mode 100755 index 00000000..2e409505 --- /dev/null +++ b/S809_Airfoil/system/fvSolution @@ -0,0 +1,69 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +SIMPLE +{ + nNonOrthogonalCorrectors 0; +} + +solvers +{ + "(p|p_rgh|G)" + { + + solver GAMG; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + } + Phi + { + $p; + relTol 0; + tolerance 1e-6; + } + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + nSweeps 1; + } +} + +relaxationFactors +{ + fields + { + p 0.30; + rho 0.1; + } + equations + { + "(U|T|e|h|nuTilda|k|epsilon|omega)" 0.70; + } + +} + +potentialFlow +{ + nNonOrthogonalCorrectors 20; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UAV_Propeller/0.orig/T b/UAV_Propeller/0.orig/T new file mode 100755 index 00000000..2082b1e4 --- /dev/null +++ b/UAV_Propeller/0.orig/T @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + + +internalField uniform 288.15; + +boundaryField +{ + "(blade|spinner)" + { + type zeroGradient; + } + "(inlet|outlet|outer|inout)" + { + type totalTemperature; + T0 $internalField; + value $internalField; + gamma 1.4; + } + "cyc.*" + { + type cyclic; + } +} + + +// ************************************************************************* // diff --git a/UAV_Propeller/0.orig/U b/UAV_Propeller/0.orig/U new file mode 100755 index 00000000..5d7a3c59 --- /dev/null +++ b/UAV_Propeller/0.orig/U @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + + +internalField uniform (5 0 0); + +boundaryField +{ + "(blade|spinner)" + { + type fixedValue; + value uniform (0 0 0); + } + "(inlet|outlet|outer|inout)" + { + type pressureInletOutletVelocity; + value uniform (5 0 0); + } + "cyc.*" + { + type cyclic; + } +} + + +// ************************************************************************* // diff --git a/UAV_Propeller/0.orig/alphat b/UAV_Propeller/0.orig/alphat new file mode 100755 index 00000000..5040c153 --- /dev/null +++ b/UAV_Propeller/0.orig/alphat @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + + +internalField uniform 0.001; + +boundaryField +{ + "(blade|spinner)" + { + type compressible::alphatWallFunction; + value uniform 0.001; + } + "(inlet|outlet|outer|inout)" + { + type calculated; + value uniform 0.001; + } + "cyc.*" + { + type cyclic; + } +} + + +// ************************************************************************* // diff --git a/UAV_Propeller/0.orig/epsilon b/UAV_Propeller/0.orig/epsilon new file mode 100755 index 00000000..a82be5cb --- /dev/null +++ b/UAV_Propeller/0.orig/epsilon @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + + +internalField uniform 0.135; + +boundaryField +{ + "(blade|spinner)" + { + type epsilonWallFunction; + value uniform 0.1; + } + "(inlet|outlet|outer|inout)" + { + type inletOutlet; + inletValue uniform 0.135; + value uniform 0.135; + } + "cyc.*" + { + type cyclic; + } + +} + + +// ************************************************************************* // diff --git a/UAV_Propeller/0.orig/k b/UAV_Propeller/0.orig/k new file mode 100755 index 00000000..21cf2f7f --- /dev/null +++ b/UAV_Propeller/0.orig/k @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + + +internalField uniform 0.015; + +boundaryField +{ + "(blade|spinner)" + { + type kqRWallFunction; + value uniform 0.015; + } + "(inlet|outlet|outer|inout)" + { + type inletOutlet; + inletValue uniform 0.015; + value uniform 0.015; + } + "cyc.*" + { + type cyclic; + } +} + + +// ************************************************************************* // diff --git a/UAV_Propeller/0.orig/nuTilda b/UAV_Propeller/0.orig/nuTilda new file mode 100755 index 00000000..0623fd02 --- /dev/null +++ b/UAV_Propeller/0.orig/nuTilda @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + + +internalField uniform 0.00015; + +boundaryField +{ + "(blade|spinner)" + { + type fixedValue; + value uniform 0; + } + "(inlet|outlet|outer|inout)" + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + "cyc.*" + { + type cyclic; + } +} + + +// ************************************************************************* // diff --git a/UAV_Propeller/0.orig/nut b/UAV_Propeller/0.orig/nut new file mode 100755 index 00000000..f7f2b8cf --- /dev/null +++ b/UAV_Propeller/0.orig/nut @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + + +internalField uniform 0.0015; + +boundaryField +{ + "(blade|spinner)" + { + type nutUSpaldingWallFunction; + value uniform 0.0015; + } + "(inlet|outlet|outer|inout)" + { + type calculated; + value uniform 0.0015; + } + "cyc.*" + { + type cyclic; + } +} + + +// ************************************************************************* // diff --git a/UAV_Propeller/0.orig/omega b/UAV_Propeller/0.orig/omega new file mode 100755 index 00000000..69ad98c8 --- /dev/null +++ b/UAV_Propeller/0.orig/omega @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + + +internalField uniform 100; + +boundaryField +{ + "(blade|spinner)" + { + type omegaWallFunction; + value uniform 100; + blended true; + } + "(inlet|outlet|outer|inout)" + { + type inletOutlet; + inletValue uniform 100; + value uniform 100; + } + "cyc.*" + { + type cyclic; + } +} + + +// ************************************************************************* // diff --git a/UAV_Propeller/0.orig/p b/UAV_Propeller/0.orig/p new file mode 100755 index 00000000..19cd33c2 --- /dev/null +++ b/UAV_Propeller/0.orig/p @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + + +internalField uniform 101325; + +boundaryField +{ + "(blade|spinner)" + { + type zeroGradient; + } + "(inlet|outlet|outer|inout)" + { + type totalPressure; + p0 $internalField; + value $internalField; + } + "cyc.*" + { + type cyclic; + } +} + + +// ************************************************************************* // diff --git a/UAV_Propeller/Allclean.sh b/UAV_Propeller/Allclean.sh new file mode 100644 index 00000000..b217d823 --- /dev/null +++ b/UAV_Propeller/Allclean.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +while true +do + read -p "Delete everything and resume to the default setup (y/n)?" yn + case $yn in + [Yy]* ) + # clean everyting + echo "Cleaning..." + rm -rf 0 + rm -rf postProcessing + rm -rf constant/extendedFeatureEdgeMesh + rm -rf constant/triSurface + rm -rf constant/polyMesh + rm -rf *.bin *.info *.dat *.xyz *.stl *.txt *.html + rm -rf processor* 0.0000* + rm -rf {1..9}* + exit + ;; + [Nn]* ) exit;; + * ) echo "Please answer yes or no.";; + esac +done diff --git a/UAV_Propeller/README.md b/UAV_Propeller/README.md new file mode 100644 index 00000000..b54eaac9 --- /dev/null +++ b/UAV_Propeller/README.md @@ -0,0 +1,12 @@ +# Propeller_Benchmark + +This repo can be run in two modes: hover or forward + +To run the hover mode, delete the originnal "0" folder and copy "0_hover" to "0" +To run the hover mode, delete the originnal "0" folder and copy "0_forward" to "0" + +To change the incoming velocity for the forward mode, delete the originnal "0" folder, go to the 0_forward/U file and change the default U value (5 m/s in the x direction) from "internalField uniform (5 0 0);" to your desired value, and the copy "0_forward" to "0". + +To submit a job, run this command: `sbatch myJob.sh`. The default runtime is 1 hour and the default run mode is runPrimal. You may need to change these. + + diff --git a/UAV_Propeller/constant/MRFProperties b/UAV_Propeller/constant/MRFProperties new file mode 100755 index 00000000..6d9f8afb --- /dev/null +++ b/UAV_Propeller/constant/MRFProperties @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object MRFProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +MRF +{ + active true; + selectoinMode cellZone; + cellZone region0; + nonRotatingPatches (cyc1 cyc2 inlet outlet outer); + axis (1.000000 0.000000 0.000000); + origin (0 0 0); + omega 532.6; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UAV_Propeller/constant/thermophysicalProperties b/UAV_Propeller/constant/thermophysicalProperties new file mode 100755 index 00000000..95f9269d --- /dev/null +++ b/UAV_Propeller/constant/thermophysicalProperties @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + mixture pureMixture; + specie specie; + equationOfState perfectGas; + energy sensibleEnthalpy; + thermo hConst; + type hePsiThermo; + transport const; +} + +mixture +{ + specie + { + molWeight 28.970000; + } + thermodynamics + { + Cp 1005.000000; + Hf 0.000000; + } + transport + { + mu 0.000018; + Pr 0.700000; + TRef 300.000000; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UAV_Propeller/constant/turbulenceProperties b/UAV_Propeller/constant/turbulenceProperties new file mode 100755 index 00000000..e9c246af --- /dev/null +++ b/UAV_Propeller/constant/turbulenceProperties @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmarasFv3; + turbulence on; + printCoeffs off; + nuTildaMin 1e-16; + Prt 1.0; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UAV_Propeller/paraview.foam b/UAV_Propeller/paraview.foam new file mode 100755 index 00000000..e69de29b diff --git a/UAV_Propeller/preProcessing.sh b/UAV_Propeller/preProcessing.sh new file mode 100644 index 00000000..c0a8c79c --- /dev/null +++ b/UAV_Propeller/preProcessing.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Check if the OpenFOAM enviroments are loaded +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +if [ -f "constant/polyMesh" ]; then + echo "Mesh already exists." +else + echo "Downloading mesh polyMesh_UAV_Propeller.tar" + wget https://github.com/dafoam/files/releases/download/v1.0.0/polyMesh_UAV_Propeller.tar +fi +tar -xvf polyMesh_UAV_Propeller.tar +mv polyMesh constant/ + +if [ -f "Structure.bdf" ]; then + echo "Mesh already exists." +else + echo "Downloading mesh Structure.bdf.tar.gz" + wget https://github.com/dafoam/files/releases/download/v1.0.0/Structure.pdf.tar.gz +fi + +echo "Generating mesh.. Done!" + +# copy initial and boundary condition files +cp -r 0.orig 0 diff --git a/UAV_Propeller/runScriptAero.py b/UAV_Propeller/runScriptAero.py new file mode 100755 index 00000000..152a93a0 --- /dev/null +++ b/UAV_Propeller/runScriptAero.py @@ -0,0 +1,379 @@ +#!/usr/bin/env python +import os +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + +import tacsSetup + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SNOPT") +# which task to run. Options are: opt (default), runPrimal, runAdjoint, checkTotals +parser.add_argument("-task", help="type of run to do", type=str, default="opt") +# which case to opt. Options are: 1 - twist +parser.add_argument("-case", help="which case to optimize", type=int, default=1) +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= +omega0 = 523.6 +thrust_target = 6.5 +m0 = 0.02824 + +if args.case == 1: + # twist only + DVDict = { + "twist": {"designVarType": "FFD"}, + "MRF": {"designVarType": "BC"}, + } +elif args.case == 2: + # twist and shape + DVDict = { + "twist": {"designVarType": "FFD"}, + "shape": {"designVarType": "FFD"}, + "MRF": {"designVarType": "BC"}, + } +elif args.case == 3: + # twist, shape, and chord + DVDict = { + "twist": {"designVarType": "FFD"}, + "shape": {"designVarType": "FFD"}, + "chord": {"designVarType": "FFD"}, + "MRF": {"designVarType": "BC"}, + } +elif args.case == 4: + # twist, shape, chord, and span + DVDict = { + "twist": {"designVarType": "FFD"}, + "shape": {"designVarType": "FFD"}, + "chord": {"designVarType": "FFD"}, + "span": {"designVarType": "FFD"}, + "MRF": {"designVarType": "BC"}, + } +else: + print("case not valid!") + exit(1) + +daOptions = { + "designSurfaces": ["blade"], + "solverName": "DARhoSimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1.0e4, + # set it to True for hover case + "hasIterativeBC": True, + "useConstrainHbyA": True, + "primalBC": { + "MRF": omega0, + "useWallFunction": False, + }, + "primalVarBounds": { + "omegaMin": -1e16, + }, + "objFunc": { + "power": { + "part1": { + "type": "power", + "source": "patchToFace", + "patches": ["blade"], + "axis": [1.0, 0.0, 0.0], + "center": [0.0, 0.0, 0.0], + "scale": -2.0, + "addToAdjoint": True, + } + }, + "thrust": { + "part1": { + "type": "force", + "source": "patchToFace", + "patches": ["blade"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": -2.0, + "addToAdjoint": True, + } + }, + "skewness": { + "part1": { + "type": "meshQualityKS", + "source": "boxToCell", + "min": [-10.0, -10.0, -10.0], + "max": [10.0, 10.0, 10.0], + "coeffKS": 20.0, + "metric": "faceSkewness", + "scale": 1.0, + "addToAdjoint": True, + }, + }, + "nonOrtho": { + "part1": { + "type": "meshQualityKS", + "source": "boxToCell", + "min": [-10.0, -10.0, -10.0], + "max": [10.0, 10.0, 10.0], + "coeffKS": 1.0, + "metric": "nonOrthoAngle", + "scale": 1.0, + "addToAdjoint": True, + }, + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": { + "gmresRelTol": 1.0e-3, + "pcFillLevel": 1, + "jacMatReOrdering": "natural", + "gmresMaxIters": 1000, + "gmresRestart": 1000, + "useNonZeroInitGuess": True, + }, + "adjPCLag": 1, + "normalizeStates": { + "U": 50.0, + "p": 101325.0, + "T": 300.0, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "checkMeshThreshold": { + "maxNonOrth": 89.0, + "maxSkewness": 5.0, + }, + "designVar": DVDict, + "decomposeParDict": {"preservePatches": ["cyc1", "cyc2"]}, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + "useRotations": False, + # point and normal for the symmetry plane + "symmetryPlanes": [], +} + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + aero_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerodynamic") + aero_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the aerodynamic mesh component + self.add_subsystem("mesh_aero", aero_builder.get_mesh_coordinate_subsystem()) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/FFD.xyz", type="ffd")) + + self.mphys_add_scenario("hover", ScenarioAerodynamic(aero_builder=aero_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + # here x_aero0 means the surface coordinates of structurally undeformed mesh + self.connect("mesh_aero.x_aero0", "geometry.x_aero_in") + # need to manually connect the x_aero0 between the geometry component and the hover + # scenario group + self.connect("geometry.x_aero0", "hover.x_aero") + + def configure(self): + + # configure and setup perform a similar function, i.e., initialize the optimization. + # But configure will be run after setup + + # add the objective function to the hover scenario + self.hover.aero_post.mphys_add_funcs() + + # get the surface coordinates from the mesh component + points = self.mesh_aero.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh_aero.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # we don't change the first 3 FFD layers from the root + shapeStartIdx = 3 + + # select the FFD points to move + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = pts[:, :, shapeStartIdx:].flatten() + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shape", axis="x", pointSelect=PS) + + # Create reference axis for the twist variable + nRefAxPts = self.geometry.nom_addRefAxis(name="bladeAxis", yFraction=0.5, alignIndex="k", volumes=[0]) + + # Set up global design variables. We dont change the root twist + def twist(val, geo): + for i in range(shapeStartIdx, nRefAxPts): + geo.rot_z["bladeAxis"].coef[i] = val[i - shapeStartIdx] + + self.geometry.nom_addGlobalDV(dvName="twist", value=np.array([0] * (nRefAxPts - shapeStartIdx)), func=twist) + + # Set up the span variable, here val[0] is the span change in m + def span(val, geo): + # coordinates for the reference axis + refAxisCoef = geo.extractCoef("bladeAxis") + # the relative location of a point in the ref axis + # refAxisS[0] = 0, and refAxisS[-1] = 1 + refAxisS = geo.refAxis.curves[0].s + deltaSpan = val[0] + # linearly change the refAxis coef along the span + for i in range(shapeStartIdx, nRefAxPts): + refAxisCoef[i, 2] += refAxisS[i - shapeStartIdx] * deltaSpan + geo.restoreCoef(refAxisCoef, "bladeAxis") + + self.geometry.nom_addGlobalDV(dvName="span", value=np.array([0]), func=span) + + # chord var + def chord(val, geo): + for i in range(shapeStartIdx, nRefAxPts): + geo.scale_y["bladeAxis"].coef[i] = val[i - shapeStartIdx] + + self.geometry.nom_addGlobalDV(dvName="chord", value=np.array([1] * (nRefAxPts - shapeStartIdx)), func=chord) + + def MRF(val, DASolver): + omega = float(val[0]) + # we need to update the U value only + DASolver.setOption("primalBC", {"MRF": omega}) + DASolver.updateDAOption() + + self.hover.coupling.solver.add_dv_func("MRF", MRF) + self.hover.aero_post.add_dv_func("MRF", MRF) + + # setup the volume and thickness constraints + leList = [[-0.0034, -0.013, 0.03], [-0.0034, -0.013, 0.148]] + teList = [[0.00355, 0.0133, 0.03], [0.00355, 0.0133, 0.148]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=20, nChord=10) + self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=20, nChord=10) + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * nShapes)) + self.dvs.add_output("MRF", val=np.array([omega0])) + self.dvs.add_output("twist", val=np.array([0] * (nRefAxPts - shapeStartIdx))) + self.dvs.add_output("chord", val=np.array([1] * (nRefAxPts - shapeStartIdx))) + self.dvs.add_output("span", val=np.array([0])) + # manually connect the dvs output to the geometry and hover + self.connect("shape", "geometry.shape") + self.connect("MRF", "hover.MRF") + self.connect("twist", "geometry.twist") + self.connect("span", "geometry.span") + self.connect("chord", "geometry.chord") + + # define the design variables + self.add_design_var("MRF", lower=0.8 * omega0, upper=1.2 * omega0, scaler=0.1) + if args.case >= 1: + self.add_design_var("twist", lower=-50.0, upper=50.0, scaler=0.1) + if args.case >= 2: + self.add_design_var("shape", lower=-0.05, upper=0.05, scaler=100.0) + if args.case >= 3: + self.add_design_var("chord", lower=0.5, upper=2.0, scaler=1) + if args.case >= 4: + self.add_design_var("span", lower=-0.1, upper=0.1, scaler=100) + + # add objective and constraints to the top level + self.add_objective("hover.aero_post.power", scaler=1.0) + self.add_constraint("hover.aero_post.thrust", equals=thrust_target, scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.8, upper=3.0, scaler=1.0) + self.add_constraint("geometry.volcon", lower=-100, upper=1.1, scaler=1.0) + self.add_constraint("hover.aero_post.skewness", upper=4.0, scaler=1.0) + self.add_constraint("hover.aero_post.nonOrtho", upper=80.0, scaler=0.1) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys_aero.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Linesearch tolerance": 0.99, + "Hessian updates": 10000, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +# prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "opt": + # solve CL + optFuncs.findFeasibleDesign( + ["hover.aero_post.functionals.thrust"], ["MRF"], targets=[thrust_target], epsFD=[1e-2], tol=1e-3 + ) + # run the optimization + prob.run_driver() +elif args.task == "runPrimal": + # just run the primal once + prob.run_model() +elif args.task == "runAdjoint": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "checkTotals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals( + # of=["hover.aero_post.functionals.power", "hover.aero_post.functionals.thrust"], + wrt=["span"], + compact_print=False, + step=1e-3, + form="central", + step_calc="abs", + ) +else: + print("task arg not found!") + exit(1) diff --git a/UAV_Propeller/runScriptAeroStruct.py b/UAV_Propeller/runScriptAeroStruct.py new file mode 100755 index 00000000..8f57d6e4 --- /dev/null +++ b/UAV_Propeller/runScriptAeroStruct.py @@ -0,0 +1,503 @@ +#!/usr/bin/env python +import os +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from tacs.mphys import TacsBuilder +from funtofem.mphys import MeldBuilder +from mphys.scenario_aerostructural import ScenarioAeroStructural +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils +import json + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SNOPT") +# which task to run. Options are: opt (default), runPrimal, runAdjoint, checkTotals +parser.add_argument("-task", help="type of run to do", type=str, default="opt") +# which case to opt. Options are: 1 - twist +parser.add_argument("-case", help="which case to optimize", type=int, default=1) +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= +omega0 = 523.6 +ct_target = 0.09646 +m0 = 0.02824 + +omegaUpper = omega0 +omegaLower = omega0 + +import tacsSetup + +if args.case == 1: + # twist only + DVDict = { + "twist": {"designVarType": "FFD"}, + } +elif args.case == 2: + # twist and shape + DVDict = { + "twist": {"designVarType": "FFD"}, + "shape": {"designVarType": "FFD"}, + } +elif args.case == 3: + # twist, shape, and chord + DVDict = { + "twist": {"designVarType": "FFD"}, + "shape": {"designVarType": "FFD"}, + "chord": {"designVarType": "FFD"}, + } +elif args.case == 4: + # twist, shape, chord, and span + DVDict = { + "twist": {"designVarType": "FFD"}, + "shape": {"designVarType": "FFD"}, + "chord": {"designVarType": "FFD"}, + "span": {"designVarType": "FFD"}, + } + omegaUpper = omega0 * 1.2 + omegaLower = omega0 * 0.8 +else: + print("case not valid!") + exit(1) + +# always use MRF as dv +DVDict["MRF"] = {"designVarType": "BC"} + +daOptions = { + "designSurfaces": ["blade"], + "solverName": "DARhoSimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1.0e4, + "writeDeformedFFDs": True, + "writeDeformedConstraints": True, + # set it to True for hover case + "hasIterativeBC": True, + "useConstrainHbyA": True, + "couplingInfo": { + "aerostructural": { + "active": True, + "pRef": 101325.0, + "propMovement": False, + "couplingSurfaceGroups": {"bladeGroup": ["blade"]}, + } + }, # set the ref pressure for computing force for FSI + "primalBC": { + "MRF": omega0, + "useWallFunction": False, + }, + "primalVarBounds": { + "omegaMin": -1e16, + }, + "objFunc": { + "power": { + "part1": { + "type": "power", + "source": "patchToFace", + "patches": ["blade"], + "axis": [1.0, 0.0, 0.0], + "center": [0.0, 0.0, 0.0], + "scale": -2.0, + "addToAdjoint": True, + } + }, + "thrust": { + "part1": { + "type": "force", + "source": "patchToFace", + "patches": ["blade"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": -2.0, + "addToAdjoint": True, + } + }, + "r1": { + "part1": { + "type": "location", + "source": "patchToFace", + "patches": ["blade"], + "axis": [1.0, 0.0, 0.0], + "center": [0.0, 0.0, 0.0], + "mode": "maxRadius", + "scale": 1.0, + "addToAdjoint": True, + } + }, + "skewness": { + "part1": { + "type": "meshQualityKS", + "source": "boxToCell", + "min": [-10.0, -10.0, -10.0], + "max": [10.0, 10.0, 10.0], + "coeffKS": 20.0, + "metric": "faceSkewness", + "scale": 1.0, + "addToAdjoint": True, + }, + }, + "nonOrtho": { + "part1": { + "type": "meshQualityKS", + "source": "boxToCell", + "min": [-10.0, -10.0, -10.0], + "max": [10.0, 10.0, 10.0], + "coeffKS": 1.0, + "metric": "nonOrthoAngle", + "scale": 1.0, + "addToAdjoint": True, + }, + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": { + "gmresRelTol": 1.0e-3, + "pcFillLevel": 1, + "jacMatReOrdering": "natural", + "gmresMaxIters": 1000, + "gmresRestart": 1000, + "useNonZeroInitGuess": True, + }, + "adjPCLag": 1, + "normalizeStates": { + "U": 50.0, + "p": 101325.0, + "T": 300.0, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "checkMeshThreshold": { + "maxNonOrth": 89.0, + "maxSkewness": 5.0, + }, + "designVar": DVDict, + "decomposeParDict": {"preservePatches": ["cyc1", "cyc2"]}, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + "useRotations": False, + # point and normal for the symmetry plane + "symmetryPlanes": [], +} + +# TACS Setup +tacsOptions = { + "element_callback": tacsSetup.element_callback, + "problem_setup": tacsSetup.problem_setup, + "mesh_file": "./StructMesh.bdf", +} + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + aero_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerostructural") + aero_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the aerodynamic mesh component + self.add_subsystem("mesh_aero", aero_builder.get_mesh_coordinate_subsystem()) + + # create the builder to initialize TACS + struct_builder = TacsBuilder(tacsOptions) + struct_builder.initialize(self.comm) + + # add the structure mesh component + self.add_subsystem("mesh_struct", struct_builder.get_mesh_coordinate_subsystem()) + + # load and displacement transfer builder (meld), isym sets the symmetry plan axis (k) + xfer_builder = MeldBuilder(aero_builder, struct_builder, isym=-1, check_partials=False) + xfer_builder.initialize(self.comm) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/FFD.xyz", type="ffd")) + + # primal and adjoint solution options, i.e., nonlinear block Gauss-Seidel for aerostructural analysis + # and linear block Gauss-Seidel for the coupled adjoint + nonlinear_solver = om.NonlinearBlockGS(maxiter=10, iprint=2, use_aitken=True, rtol=1e-6, atol=100.0) + linear_solver = om.LinearBlockGS(maxiter=5, iprint=2, use_aitken=True, rtol=1e-5, atol=1e0) + # add the coupling aerostructural scenario + self.mphys_add_scenario( + "hover", + ScenarioAeroStructural( + aero_builder=aero_builder, struct_builder=struct_builder, ldxfer_builder=xfer_builder + ), + nonlinear_solver, + linear_solver, + ) + + # need to manually connect the vars in the geo component to hover + for discipline in ["aero"]: + self.connect("geometry.x_%s0" % discipline, "hover.x_%s0_masked" % discipline) + for discipline in ["struct"]: + self.connect("geometry.x_%s0" % discipline, "hover.x_%s0" % discipline) + + # more manual connection + self.connect("mesh_aero.x_aero0", "geometry.x_aero_in") + self.connect("mesh_struct.x_struct0", "geometry.x_struct_in") + + self.add_subsystem("CT", om.ExecComp("value=T/1.178/((omega/2/3.14159)**2*(R*2)**4)")) + self.add_subsystem("CP", om.ExecComp("value=P/1.178/((omega/2/3.14159)**3*(R*2)**5)")) + + def configure(self): + + # configure and setup perform a similar function, i.e., initialize the optimization. + # But configure will be run after setup + + # call this to configure the coupling solver + super().configure() + + # add the objective function to the hover scenario + self.hover.aero_post.mphys_add_funcs() + + # get the surface coordinates from the mesh component + points = self.mesh_aero.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + self.geometry.nom_add_discipline_coords("struct") + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh_aero.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # add the dv_geo object to the builder solver. This will be used to write deformed FFDs + self.hover.coupling.aero.solver.add_dvgeo(self.geometry.DVGeo) + + # add the dv_con object to the builder solver. This will be used to write deformed constraints + self.hover.coupling.aero.solver.add_dvcon(self.geometry.DVCon) + + # we don't change the first 3 FFD layers from the root + shapeStartIdx = 3 + + # select the FFD points to move + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = pts[:, :, shapeStartIdx:].flatten() + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shape", axis="x", pointSelect=PS) + + # Create reference axis for the twist variable + nRefAxPts = self.geometry.nom_addRefAxis(name="bladeAxis", yFraction=0.5, alignIndex="k", volumes=[0]) + + # Set up global design variables. We dont change the root twist + def twist(val, geo): + for i in range(shapeStartIdx, nRefAxPts): + geo.rot_z["bladeAxis"].coef[i] = val[i - shapeStartIdx] + + self.geometry.nom_addGlobalDV(dvName="twist", value=np.array([0] * (nRefAxPts - shapeStartIdx)), func=twist) + + # Set up the span variable, here val[0] is the span change in m + def span(val, geo): + # coordinates for the reference axis + refAxisCoef = geo.extractCoef("bladeAxis") + # the relative location of a point in the ref axis + # refAxisS[0] = 0, and refAxisS[-1] = 1 + refAxisS = geo.refAxis.curves[0].s + deltaSpan = val[0] + # linearly change the refAxis coef along the span + for i in range(shapeStartIdx, nRefAxPts): + refAxisCoef[i, 2] += refAxisS[i - shapeStartIdx] * deltaSpan + geo.restoreCoef(refAxisCoef, "bladeAxis") + + self.geometry.nom_addGlobalDV(dvName="span", value=np.array([0]), func=span) + + # chord var + def chord(val, geo): + for i in range(shapeStartIdx, nRefAxPts): + geo.scale_y["bladeAxis"].coef[i] = val[i - shapeStartIdx] + + self.geometry.nom_addGlobalDV(dvName="chord", value=np.array([1] * (nRefAxPts - shapeStartIdx)), func=chord) + + def MRF(val, DASolver): + omega = float(val[0]) + # we need to update the U value only + DASolver.setOption("primalBC", {"MRF": omega}) + DASolver.updateDAOption() + + self.hover.coupling.aero.solver.add_dv_func("MRF", MRF) + self.hover.aero_post.add_dv_func("MRF", MRF) + + # setup the volume and thickness constraints + leList = [[-0.0034, -0.013, 0.03], [-0.0034, -0.013, 0.148]] + teList = [[0.00355, 0.0133, 0.03], [0.00355, 0.0133, 0.148]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=20, nChord=10) + # self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=20, nChord=10) + + self.geometry.nom_addCurvatureConstraint1D( + "curvature1", + start=[0, 0, 0.02], + end=[0, 0, 0.149], + nPts=50, + axis=[1, 0, 0], + curvatureType="mean", + scaled=True, + ) + + self.geometry.nom_addCurvatureConstraint1D( + "curvature2", + start=[0, 0, 0.02], + end=[0, 0, 0.149], + nPts=50, + axis=[-1, 0, 0], + curvatureType="mean", + scaled=True, + ) + + leRList = [[-0.003564, -0.013675, 0.035], [-0.003564, -0.013675, 0.145]] + + self.geometry.nom_addLERadiusConstraints("leradius", leRList, nSpan=10, axis=[1, 0, 0], chordDir=[0, -1, 0]) + + # add the design variables to the dvs component's output + self.dvs.add_output("MRF", val=np.array([omega0])) + self.dvs.add_output("shape", val=np.array([0] * nShapes)) + self.dvs.add_output("twist", val=np.array([0] * (nRefAxPts - shapeStartIdx))) + self.dvs.add_output("chord", val=np.array([1] * (nRefAxPts - shapeStartIdx))) + self.dvs.add_output("span", val=np.array([0])) + # manually connect the dvs output to the geometry and hover + self.connect("MRF", "hover.MRF") + self.connect("shape", "geometry.shape") + self.connect("twist", "geometry.twist") + self.connect("span", "geometry.span") + self.connect("chord", "geometry.chord") + + self.add_design_var("MRF", lower=omegaLower, upper=omegaUpper, scaler=0.1) + # define the design variables + if args.case >= 1: + self.add_design_var("twist", lower=-50.0, upper=50.0, scaler=0.1) + if args.case >= 2: + self.add_design_var("shape", lower=-0.05, upper=0.05, scaler=100.0) + if args.case >= 3: + self.add_design_var("chord", lower=0.5, upper=2.0, scaler=1) + if args.case >= 4: + self.add_design_var("span", lower=-0.1, upper=0.1, scaler=100) + + # add objective and constraints to the top level + + # objective function + self.add_objective("CP.value", scaler=10.0) + self.connect("hover.aero_post.power", "CP.P") + self.connect("MRF", "CP.omega") + self.connect("hover.aero_post.r1", "CP.R") + + # constraints + self.add_constraint("CT.value", equals=ct_target, scaler=10.0) + self.connect("hover.aero_post.thrust", "CT.T") + self.connect("MRF", "CT.omega") + self.connect("hover.aero_post.r1", "CT.R") + + self.add_constraint("geometry.thickcon", lower=0.8, upper=3.0, scaler=1.0) + # self.add_constraint("geometry.volcon", lower=-100, upper=1.1, scaler=1.0) + self.add_constraint("hover.aero_post.skewness", upper=4.0, scaler=1.0) + self.add_constraint("hover.aero_post.nonOrtho", upper=80.0, scaler=0.1) + self.add_constraint("hover.ks_vmfailure", lower=-100.0, upper=0.5, scaler=1.0) + self.add_constraint("hover.mass", lower=-100.0, upper=m0 * 1.1, scaler=10.0) + self.add_constraint("geometry.curvature1", upper=1.5, scaler=1.0) + self.add_constraint("geometry.curvature2", upper=1.5, scaler=1.0) + self.add_constraint("geometry.leradius", lower=0.8, upper=3.0, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys_aero_struct.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Linesearch tolerance": 0.99, + "Hessian updates": 10000, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +# prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "opt": + # solve CL + # optFuncs.findFeasibleDesign( + # ["hover.aero_post.functionals.thrust"], ["MRF"], targets=[thrust_target], epsFD=[1e-2], tol=1e-3 + # ) + # run the optimization + prob.run_driver() +elif args.task == "runPrimal": + # just run the primal once + prob.run_model() +elif args.task == "runPrimalDeformed": + # Import the design variable json file + with open("./designVariables.json") as f: + dvDict = json.load(f) + # assign the loaded design var to the OM prob + for dvName in dvDict: + prob.set_val(dvName, dvDict[dvName]) + # just run the primal once + prob.run_model() +elif args.task == "runAdjoint": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "checkTotals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals( + # of=["hover.aero_post.functionals.power", "hover.aero_post.functionals.thrust"], + wrt=["span"], + compact_print=False, + step=1e-3, + form="central", + step_calc="abs", + ) +else: + print("task arg not found!") + exit(1) diff --git a/UAV_Propeller/runScriptMultipoint.py b/UAV_Propeller/runScriptMultipoint.py new file mode 100755 index 00000000..b0e86cf7 --- /dev/null +++ b/UAV_Propeller/runScriptMultipoint.py @@ -0,0 +1,510 @@ +#!/usr/bin/env python +import os +import argparse +import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from tacs.mphys import TacsBuilder +from funtofem.mphys import MeldBuilder +from mphys.scenario_aerostructural import ScenarioAeroStructural +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils + +import tacsSetup + +parser = argparse.ArgumentParser() +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SNOPT") +# which task to run. Options are: opt (default), runPrimal, runAdjoint, checkTotals +parser.add_argument("-task", help="type of run to do", type=str, default="opt") +# which case to opt. Options are: 1 - twist +parser.add_argument("-case", help="which case to optimize", type=int, default=1) +args = parser.parse_args() + +# ============================================================================= +# Input Parameters +# ============================================================================= +omega0 = [463.2, 576.5, 523.8] +thrust_target = [5.0, 8.0, 6.5] +m0 = 0.02824 + +fc0 = {"primalBC": {"MRF": omega0[0]}} +fc1 = {"primalBC": {"MRF": omega0[1]}} +fc2 = {"primalBC": {"MRF": omega0[2]}} + +if args.case == 1: + # twist only + DVDict = { + "twist": {"designVarType": "FFD"}, + } +elif args.case == 2: + # twist and shape + DVDict = { + "twist": {"designVarType": "FFD"}, + "shape": {"designVarType": "FFD"}, + } +elif args.case == 3: + # twist, shape, and chord + DVDict = { + "twist": {"designVarType": "FFD"}, + "shape": {"designVarType": "FFD"}, + "chord": {"designVarType": "FFD"}, + } +elif args.case == 4: + # twist, shape, chord, and span + DVDict = { + "twist": {"designVarType": "FFD"}, + "shape": {"designVarType": "FFD"}, + "chord": {"designVarType": "FFD"}, + "span": {"designVarType": "FFD"}, + } +else: + print("case not valid!") + exit(1) + +# always use MRF as dv +DVDict["MRF"] = {"designVarType": "BC"} + +daOptions = { + "designSurfaces": ["blade"], + "solverName": "DARhoSimpleFoam", + "primalMinResTol": 1.0e-8, + "primalMinResTolDiff": 1.0e4, + # set it to True for hover case + "hasIterativeBC": True, + "useConstrainHbyA": True, + "couplingInfo": { + "aerostructural": { + "active": True, + "pRef": 101325.0, + "propMovement": False, + "couplingSurfaceGroups": {"bladeGroup": ["blade"]}, + } + }, # set the ref pressure for computing force for FSI + "primalBC": { + "MRF": omega0[0], + "useWallFunction": False, + }, + "primalVarBounds": { + "omegaMin": -1e16, + }, + "objFunc": { + "power": { + "part1": { + "type": "power", + "source": "patchToFace", + "patches": ["blade"], + "axis": [1.0, 0.0, 0.0], + "center": [0.0, 0.0, 0.0], + "scale": -2.0, + "addToAdjoint": True, + } + }, + "thrust": { + "part1": { + "type": "force", + "source": "patchToFace", + "patches": ["blade"], + "directionMode": "fixedDirection", + "direction": [1.0, 0.0, 0.0], + "scale": -2.0, + "addToAdjoint": True, + } + }, + "skewness": { + "part1": { + "type": "meshQualityKS", + "source": "boxToCell", + "min": [-10.0, -10.0, -10.0], + "max": [10.0, 10.0, 10.0], + "coeffKS": 20.0, + "metric": "faceSkewness", + "scale": 1.0, + "addToAdjoint": True, + }, + }, + "nonOrtho": { + "part1": { + "type": "meshQualityKS", + "source": "boxToCell", + "min": [-10.0, -10.0, -10.0], + "max": [10.0, 10.0, 10.0], + "coeffKS": 1.0, + "metric": "nonOrthoAngle", + "scale": 1.0, + "addToAdjoint": True, + }, + }, + }, + "adjStateOrdering": "cell", + "adjEqnOption": { + "gmresRelTol": 1.0e-3, + "pcFillLevel": 1, + "jacMatReOrdering": "natural", + "gmresMaxIters": 1000, + "gmresRestart": 1000, + "useNonZeroInitGuess": True, + }, + "adjPCLag": 1, + "normalizeStates": { + "U": 50.0, + "p": 101325.0, + "T": 300.0, + "nuTilda": 1e-3, + "phi": 1.0, + }, + "checkMeshThreshold": { + "maxNonOrth": 89.0, + "maxSkewness": 5.0, + }, + "designVar": DVDict, + "decomposeParDict": {"preservePatches": ["cyc1", "cyc2"]}, +} + +# Mesh deformation setup +meshOptions = { + "gridFile": os.getcwd(), + "fileType": "OpenFOAM", + "useRotations": False, + # point and normal for the symmetry plane + "symmetryPlanes": [], +} + +# TACS Setup +tacsOptions = { + "element_callback": tacsSetup.element_callback, + "problem_setup": tacsSetup.problem_setup, + "mesh_file": "./StructMesh.bdf", +} + +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + aero_builder = DAFoamBuilder(daOptions, meshOptions, scenario="aerostructural") + aero_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add the aerodynamic mesh component + self.add_subsystem("mesh_aero", aero_builder.get_mesh_coordinate_subsystem()) + + # create the builder to initialize TACS + struct_builder = TacsBuilder(tacsOptions) + struct_builder.initialize(self.comm) + + # add the structure mesh component + self.add_subsystem("mesh_struct", struct_builder.get_mesh_coordinate_subsystem()) + + # load and displacement transfer builder (meld), isym sets the symmetry plan axis (k) + xfer_builder = MeldBuilder(aero_builder, struct_builder, isym=-1, check_partials=False) + xfer_builder.initialize(self.comm) + + # add the geometry component (FFD) + self.add_subsystem("geometry", OM_DVGEOCOMP(file="FFD/FFD.xyz", type="ffd")) + + # primal and adjoint solution options, i.e., nonlinear block Gauss-Seidel for aerostructural analysis + # and linear block Gauss-Seidel for the coupled adjoint + nonlinear_solver0 = om.NonlinearBlockGS(maxiter=10, iprint=2, use_aitken=True, rtol=1e-6, atol=100.0) + linear_solver0 = om.LinearBlockGS(maxiter=5, iprint=2, use_aitken=True, rtol=1e-5, atol=1e0) + # add the coupling aerostructural scenario + self.mphys_add_scenario( + "hover0", + ScenarioAeroStructural( + aero_builder=aero_builder, struct_builder=struct_builder, ldxfer_builder=xfer_builder + ), + nonlinear_solver0, + linear_solver0, + ) + + nonlinear_solver1 = om.NonlinearBlockGS(maxiter=10, iprint=2, use_aitken=True, rtol=1e-6, atol=100.0) + linear_solver1 = om.LinearBlockGS(maxiter=5, iprint=2, use_aitken=True, rtol=1e-5, atol=1e0) + self.mphys_add_scenario( + "hover1", + ScenarioAeroStructural( + aero_builder=aero_builder, struct_builder=struct_builder, ldxfer_builder=xfer_builder + ), + nonlinear_solver1, + linear_solver1, + ) + + nonlinear_solver2 = om.NonlinearBlockGS(maxiter=10, iprint=2, use_aitken=True, rtol=1e-6, atol=100.0) + linear_solver2 = om.LinearBlockGS(maxiter=5, iprint=2, use_aitken=True, rtol=1e-5, atol=1e0) + self.mphys_add_scenario( + "hover2", + ScenarioAeroStructural( + aero_builder=aero_builder, struct_builder=struct_builder, ldxfer_builder=xfer_builder + ), + nonlinear_solver2, + linear_solver2, + ) + + # need to manually connect the vars in the geo component to hover + for discipline in ["aero"]: + self.connect("geometry.x_%s0" % discipline, "hover0.x_%s0_masked" % discipline) + self.connect("geometry.x_%s0" % discipline, "hover1.x_%s0_masked" % discipline) + self.connect("geometry.x_%s0" % discipline, "hover2.x_%s0_masked" % discipline) + for discipline in ["struct"]: + self.connect("geometry.x_%s0" % discipline, "hover0.x_%s0" % discipline) + self.connect("geometry.x_%s0" % discipline, "hover1.x_%s0" % discipline) + self.connect("geometry.x_%s0" % discipline, "hover2.x_%s0" % discipline) + + # more manual connection + self.connect("mesh_aero.x_aero0", "geometry.x_aero_in") + self.connect("mesh_struct.x_struct0", "geometry.x_struct_in") + + # add an exec comp to average obj + self.add_subsystem("obj", om.ExecComp("value=0.5*power0+0.25*power1+0.25*power2")) + + def configure(self): + + # configure and setup perform a similar function, i.e., initialize the optimization. + # But configure will be run after setup + + # call this to configure the coupling solver + super().configure() + + self.hover0.coupling.aero.mphys_set_options(fc0) + self.hover1.coupling.aero.mphys_set_options(fc1) + self.hover2.coupling.aero.mphys_set_options(fc2) + + self.hover0.aero_post.mphys_set_options(fc0) + self.hover1.aero_post.mphys_set_options(fc1) + self.hover2.aero_post.mphys_set_options(fc2) + + # add the objective function to the hover scenario + self.hover0.aero_post.mphys_add_funcs() + self.hover1.aero_post.mphys_add_funcs() + self.hover2.aero_post.mphys_add_funcs() + + # get the surface coordinates from the mesh component + points = self.mesh_aero.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry.nom_add_discipline_coords("aero", points) + self.geometry.nom_add_discipline_coords("struct") + + # set the triangular points to the geometry component for geometric constraints + tri_points = self.mesh_aero.mphys_get_triangulated_surface() + self.geometry.nom_setConstraintSurface(tri_points) + + # we don't change the first 3 FFD layers from the root + shapeStartIdx = 3 + + # select the FFD points to move + pts = self.geometry.DVGeo.getLocalIndex(0) + indexList = pts[:, :, shapeStartIdx:].flatten() + PS = geo_utils.PointSelect("list", indexList) + nShapes = self.geometry.nom_addLocalDV(dvName="shape", axis="x", pointSelect=PS) + + # Create reference axis for the twist variable + nRefAxPts = self.geometry.nom_addRefAxis(name="bladeAxis", yFraction=0.5, alignIndex="k", volumes=[0]) + + # Set up global design variables. We dont change the root twist + def twist(val, geo): + for i in range(shapeStartIdx, nRefAxPts): + geo.rot_z["bladeAxis"].coef[i] = val[i - shapeStartIdx] + + self.geometry.nom_addGlobalDV(dvName="twist", value=np.array([0] * (nRefAxPts - shapeStartIdx)), func=twist) + + # Set up the span variable, here val[0] is the span change in m + def span(val, geo): + # coordinates for the reference axis + refAxisCoef = geo.extractCoef("bladeAxis") + # the relative location of a point in the ref axis + # refAxisS[0] = 0, and refAxisS[-1] = 1 + refAxisS = geo.refAxis.curves[0].s + deltaSpan = val[0] + # linearly change the refAxis coef along the span + for i in range(shapeStartIdx, nRefAxPts): + refAxisCoef[i, 2] += refAxisS[i - shapeStartIdx] * deltaSpan + geo.restoreCoef(refAxisCoef, "bladeAxis") + + self.geometry.nom_addGlobalDV(dvName="span", value=np.array([0]), func=span) + + # chord var + def chord(val, geo): + for i in range(shapeStartIdx, nRefAxPts): + geo.scale_y["bladeAxis"].coef[i] = val[i - shapeStartIdx] + + self.geometry.nom_addGlobalDV(dvName="chord", value=np.array([1] * (nRefAxPts - shapeStartIdx)), func=chord) + + def MRF(val, DASolver): + omega = float(val[0]) + # we need to update the U value only + DASolver.setOption("primalBC", {"MRF": omega}) + DASolver.updateDAOption() + + self.hover0.coupling.aero.solver.add_dv_func("MRF", MRF) + self.hover0.aero_post.add_dv_func("MRF", MRF) + + self.hover1.coupling.aero.solver.add_dv_func("MRF", MRF) + self.hover1.aero_post.add_dv_func("MRF", MRF) + + self.hover2.coupling.aero.solver.add_dv_func("MRF", MRF) + self.hover2.aero_post.add_dv_func("MRF", MRF) + + # setup the volume and thickness constraints + leList = [[-0.0034, -0.013, 0.03], [-0.0034, -0.013, 0.148]] + teList = [[0.00355, 0.0133, 0.03], [0.00355, 0.0133, 0.148]] + self.geometry.nom_addThicknessConstraints2D("thickcon", leList, teList, nSpan=20, nChord=10) + # self.geometry.nom_addVolumeConstraint("volcon", leList, teList, nSpan=20, nChord=10) + + self.geometry.nom_addCurvatureConstraint1D( + "curvature1", + start=[0, 0, 0.02], + end=[0, 0, 0.149], + nPts=50, + axis=[1, 0, 0], + curvatureType="mean", + scaled=True, + ) + + self.geometry.nom_addCurvatureConstraint1D( + "curvature2", + start=[0, 0, 0.02], + end=[0, 0, 0.149], + nPts=50, + axis=[-1, 0, 0], + curvatureType="mean", + scaled=True, + ) + + # add the design variables to the dvs component's output + self.dvs.add_output("shape", val=np.array([0] * nShapes)) + self.dvs.add_output("MRF0", val=np.array([omega0[0]])) + self.dvs.add_output("MRF1", val=np.array([omega0[1]])) + self.dvs.add_output("MRF2", val=np.array([omega0[2]])) + self.dvs.add_output("twist", val=np.array([0] * (nRefAxPts - shapeStartIdx))) + self.dvs.add_output("chord", val=np.array([1] * (nRefAxPts - shapeStartIdx))) + self.dvs.add_output("span", val=np.array([0])) + # manually connect the dvs output to the geometry and hover + self.connect("shape", "geometry.shape") + self.connect("MRF0", "hover0.MRF") + self.connect("MRF1", "hover1.MRF") + self.connect("MRF2", "hover2.MRF") + self.connect("twist", "geometry.twist") + self.connect("span", "geometry.span") + self.connect("chord", "geometry.chord") + + # define the design variables + self.add_design_var("MRF0", lower=0.8 * omega0[0], upper=1.2 * omega0[0], scaler=0.1) + self.add_design_var("MRF1", lower=0.8 * omega0[1], upper=1.2 * omega0[1], scaler=0.1) + self.add_design_var("MRF2", lower=0.8 * omega0[2], upper=1.2 * omega0[2], scaler=0.1) + if args.case >= 1: + self.add_design_var("twist", lower=-50.0, upper=50.0, scaler=0.1) + if args.case >= 2: + self.add_design_var("shape", lower=-0.05, upper=0.05, scaler=100.0) + if args.case >= 3: + self.add_design_var("chord", lower=0.5, upper=2.0, scaler=1) + if args.case >= 4: + self.add_design_var("span", lower=-0.1, upper=0.1, scaler=100) + + # add objective and constraints to the top level + self.add_objective("obj.value", scaler=1.0) + self.connect("hover0.aero_post.power", "obj.power0") + self.connect("hover1.aero_post.power", "obj.power1") + self.connect("hover2.aero_post.power", "obj.power2") + + self.add_constraint("hover0.aero_post.thrust", equals=thrust_target[0], scaler=1.0) + self.add_constraint("hover1.aero_post.thrust", equals=thrust_target[1], scaler=1.0) + self.add_constraint("hover2.aero_post.thrust", equals=thrust_target[2], scaler=1.0) + self.add_constraint("geometry.thickcon", lower=0.8, upper=3.0, scaler=1.0) + # self.add_constraint("geometry.volcon", lower=-100, upper=1.1, scaler=1.0) + self.add_constraint("hover0.aero_post.skewness", upper=4.0, scaler=1.0) + self.add_constraint("hover0.aero_post.nonOrtho", upper=80.0, scaler=0.1) + self.add_constraint("hover2.ks_vmfailure", lower=-100.0, upper=0.5, scaler=1.0) + self.add_constraint("hover0.mass", lower=-100.0, upper=m0 * 1.1, scaler=10.0) + self.add_constraint("geometry.curvature1", upper=1.5, scaler=1.0) + self.add_constraint("geometry.curvature2", upper=1.5, scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys_aero_struct.html") + +# initialize the optimization function +optFuncs = OptFuncs(daOptions, prob) + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer +# options for optimizers +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-5, + "Major optimality tolerance": 1.0e-5, + "Minor feasibility tolerance": 1.0e-5, + "Verify level": -1, + "Function precision": 1.0e-5, + "Major iterations limit": 100, + "Linesearch tolerance": 0.99, + "Hessian updates": 10000, + "Nonderivative linesearch": None, + "Print file": "opt_SNOPT_print.txt", + "Summary file": "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, + "max_iter": 100, + "print_level": 5, + "output_file": "opt_IPOPT.txt", + "mu_strategy": "adaptive", + "limited_memory_max_history": 10, + "nlp_scaling_method": "none", + "alpha_for_y": "full", + "recalc_y": "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, + "IFILE": "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +# prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + + +if args.task == "opt": + # solve CL + # optFuncs.findFeasibleDesign( + # ["hover.aero_post.functionals.thrust"], ["MRF"], targets=[thrust_target], epsFD=[1e-2], tol=1e-3 + # ) + # run the optimization + prob.run_driver() +elif args.task == "runPrimal": + # just run the primal once + prob.run_model() +elif args.task == "runAdjoint": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "checkTotals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals( + # of=["hover.aero_post.functionals.power", "hover.aero_post.functionals.thrust"], + wrt=["span"], + compact_print=False, + step=1e-3, + form="central", + step_calc="abs", + ) +else: + print("task arg not found!") + exit(1) diff --git a/UAV_Propeller/system/controlDict b/UAV_Propeller/system/controlDict new file mode 100755 index 00000000..e1847d90 --- /dev/null +++ b/UAV_Propeller/system/controlDict @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 2000; +deltaT 1; +writeControl timeStep; +writeInterval 2000; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 8; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} diff --git a/UAV_Propeller/system/createPatchDict b/UAV_Propeller/system/createPatchDict new file mode 100755 index 00000000..0015181b --- /dev/null +++ b/UAV_Propeller/system/createPatchDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object createPatchDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// Do a synchronisation of coupled points after creation of any patches. +// Note: this does not work with points that are on multiple coupled patches +// with transformations (i.e. cyclics). +pointSync false; + +// Patches to create. +patches +( + + { + //- Master side patch + name cyc1; + patchInfo + { + type cyclic; + matchTolerance 0.01; + neighbourPatch cyc2; + transform rotational; + rotationAxis (1 0 0); + rotationCentre (0 0 0); + } + constructFrom patches; + patches (per1); + } + + { + //- Slave side patch + name cyc2; + patchInfo + { + type cyclic; + matchTolerance 0.01; + neighbourPatch cyc1; + transform rotational; + rotationAxis (1 0 0); + rotationCentre (0 0 0); + } + constructFrom patches; + patches (per2); + } + +); + +// ************************************************************************* // diff --git a/UAV_Propeller/system/decomposeParDict b/UAV_Propeller/system/decomposeParDict new file mode 100755 index 00000000..742e5222 --- /dev/null +++ b/UAV_Propeller/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UAV_Propeller/system/fvSchemes b/UAV_Propeller/system/fvSchemes new file mode 100755 index 00000000..7dff6a0c --- /dev/null +++ b/UAV_Propeller/system/fvSchemes @@ -0,0 +1,66 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwindV grad(U); + div(phi,e) bounded Gauss upwind; + div(phi,h) bounded Gauss upwind; + div(pc) bounded Gauss upwind; + div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; + div(phi,K) bounded Gauss upwind; + div(phi,Ekp) bounded Gauss upwind; + div((p*(U-URel))) Gauss linear; + div((-devRhoReff.T()&U)) Gauss linear; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UAV_Propeller/system/fvSolution b/UAV_Propeller/system/fvSolution new file mode 100755 index 00000000..700bd411 --- /dev/null +++ b/UAV_Propeller/system/fvSolution @@ -0,0 +1,69 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +SIMPLE +{ + nNonOrthogonalCorrectors 0; +} + +solvers +{ + "(p|p_rgh|G)" + { + + solver GAMG; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + maxIter 20; + } + Phi + { + $p; + relTol 0; + tolerance 1e-6; + } + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + maxIter 20; + } +} + +relaxationFactors +{ + fields + { + "(p|p_rgh)" 0.3; + rho 0.3; + } + equations + { + "(U|T|e|h|nuTilda|k|epsilon|omega)" 0.70; + } +} + +potentialFlow +{ + nNonOrthogonalCorrectors 20; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UAV_Propeller/system/topoSetDict b/UAV_Propeller/system/topoSetDict new file mode 100755 index 00000000..57727ccf --- /dev/null +++ b/UAV_Propeller/system/topoSetDict @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +actions +( + { + name region0; + type cellSet; + action new; + source cylinderToCell; + p1 (-0.5 0 0); + p2 (0.5 0 0); + radius 0.5; + } + { + name region0; + type cellZoneSet; + action new; + source setToCellZone; + set region0; + } +); diff --git a/UAV_Propeller/tacsSetup.py b/UAV_Propeller/tacsSetup.py new file mode 100644 index 00000000..84dada5d --- /dev/null +++ b/UAV_Propeller/tacsSetup.py @@ -0,0 +1,46 @@ +from __future__ import print_function +import os + +# ============================================================================== +# External Python modules +# ============================================================================== +from pprint import pprint + +import numpy as np +from tacs import functions, constitutive, elements + +# Material properties +rho = 1170 # density, kg/m^3 +E = 2.5e9 # elastic modulus, Pa +nu = 0.33 # poisson's ratio +ys = 70e6 # yield stress, Pa + +# Rotational velocity vector (rad/s) +omega = np.array([523.6, 0.0, 0.0]) +# Rotation center (center of disk +rotCenter = np.zeros(3) + +def element_callback(dvNum, compID, compDescript, elemDescripts, specialDVs, **kwargs): + # Setup (isotropic) property and constitutive objects + prop = constitutive.MaterialProperties(rho=rho, E=E, nu=nu, ys=ys) + con = constitutive.SolidConstitutive(prop, t=1.0, tNum=dvNum) + + model = elements.LinearElasticity3D(con) + basis = elements.LinearTetrahedralBasis() + elem = elements.Element3D(model, basis) + + return elem + + +def problem_setup(scenario_name, fea_assembler, problem): + """ + Helper function to add fixed forces and eval functions + to structural problems used in tacs builder + """ + # Add TACS Functions + # Only include mass from elements that belong to pytacs components (i.e. skip concentrated masses) + problem.addFunction("mass", functions.StructuralMass) + problem.addFunction("ks_vmfailure", functions.KSFailure, safetyFactor=0.5, ksWeight=1000.0) + + # Add centrifugal load + # problem.addCentrifugalLoad(omega, rotCenter) diff --git a/UBend_CHT/Allclean.sh b/UBend_CHT/Allclean.sh new file mode 100644 index 00000000..3882ab94 --- /dev/null +++ b/UBend_CHT/Allclean.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +echo "Cleaning..." + +rm -rf log-* +rm -rf opt_SNOPT_* +rm -rf OptView.hst +rm -rf n2.html +rm -rf OptView.hst +rm -rf Opt.txt +rm -rf log.meshGeneration + +cd aero +rm -rf 0 +rm -rf postProcessing +rm -rf constant/extendedFeatureEdgeMesh +rm -rf constant/triSurface +rm -rf *.bin *.info *.dat *.xyz *.stl +rm -rf processor* 0.00* +rm -rf {1..9}* + +cd ../thermal +rm -rf 0 +rm -rf postProcessing +rm -rf constant/extendedFeatureEdgeMesh +rm -rf constant/triSurface +rm -rf *.bin *.info *.dat *.xyz *.stl +rm -rf processor* 0.00* +rm -rf {1..9}* + +echo "Done!" \ No newline at end of file diff --git a/UBend_CHT/aero/0.orig/T b/UBend_CHT/aero/0.orig/T new file mode 100644 index 00000000..a91d08cd --- /dev/null +++ b/UBend_CHT/aero/0.orig/T @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 290; + +boundaryField +{ + + inlet + { + type fixedValue; + value uniform 310; + } + + farfield_inlet + { + type fixedValue; + value $internalField; + } + + "(outlet|farfield_outlet|farfield_top|farfield_right|farfield_left|farfield_bottom)" + { + type zeroGradient; + } + + "(ubend_inner|ubend_outer)" + { + type mixed; + refValue uniform 300; + refGradient uniform 0; + valueFraction uniform 1; + } + +} + +// ************************************************************************* // diff --git a/UBend_CHT/aero/0.orig/U b/UBend_CHT/aero/0.orig/U new file mode 100644 index 00000000..d9ee01b8 --- /dev/null +++ b/UBend_CHT/aero/0.orig/U @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 -5.0); + +boundaryField +{ + + inlet + { + type fixedValue; + value uniform (0 5 0); + } + + farfield_inlet + { + type fixedValue; + value $internalField; + } + + "(outlet|farfield_outlet)" + { + type zeroGradient; + } + + "(ubend_inner|ubend_outer|farfield_top|farfield_right|farfield_left|farfield_bottom)" + { + type fixedValue; + value uniform (0 0 0); + } + +} + + +// ************************************************************************* // diff --git a/UBend_CHT/aero/0.orig/alphat b/UBend_CHT/aero/0.orig/alphat new file mode 100644 index 00000000..22f12f9b --- /dev/null +++ b/UBend_CHT/aero/0.orig/alphat @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 1.7e-3; + +boundaryField +{ + + "(inlet|farfield_inlet|outlet|farfield_outlet)" + { + type calculated; + value $internalField; + } + + "(ubend_inner|ubend_outer|farfield_top|farfield_right|farfield_left|farfield_bottom)" + { + type incompressible::alphatWallFunction; + Prt 1.0; + value uniform 0; + } + +} +// ************************************************************************* // diff --git a/UBend_CHT/aero/0.orig/nuTilda b/UBend_CHT/aero/0.orig/nuTilda new file mode 100644 index 00000000..76e8fa42 --- /dev/null +++ b/UBend_CHT/aero/0.orig/nuTilda @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 1.5e-4; + +boundaryField +{ + + "(inlet|farfield_inlet)" + { + type fixedValue; + value $internalField; + } + + "(outlet|farfield_outlet)" + { + type zeroGradient; + } + + "(ubend_inner|ubend_outer|farfield_top|farfield_right|farfield_left|farfield_bottom)" + { + type fixedValue; + value uniform 0; + } + +} + + +// ************************************************************************* // diff --git a/UBend_CHT/aero/0.orig/nut b/UBend_CHT/aero/0.orig/nut new file mode 100644 index 00000000..e8eb77f5 --- /dev/null +++ b/UBend_CHT/aero/0.orig/nut @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 1.5e-3; + +boundaryField +{ + + "(inlet|farfield_inlet|outlet|farfield_outlet)" + { + type calculated; + value $internalField; + } + + "(ubend_inner|ubend_outer|farfield_top|farfield_right|farfield_left|farfield_bottom)" + { + type nutLowReWallFunction; + value $internalField; + } + +} + + +// ************************************************************************* // diff --git a/UBend_CHT/aero/0.orig/p b/UBend_CHT/aero/0.orig/p new file mode 100644 index 00000000..12edaed0 --- /dev/null +++ b/UBend_CHT/aero/0.orig/p @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + + "(inlet|farfield_inlet)" + { + type zeroGradient; + } + + "(outlet|farfield_outlet)" + { + type fixedValue; + value $internalField; + } + + "(ubend_inner|ubend_outer|farfield_top|farfield_right|farfield_left|farfield_bottom)" + { + type zeroGradient; + } + +} + +// ************************************************************************* // diff --git a/UBend_CHT/aero/FFD/UBendFFD.xyz b/UBend_CHT/aero/FFD/UBendFFD.xyz new file mode 100644 index 00000000..718a2316 --- /dev/null +++ b/UBend_CHT/aero/FFD/UBendFFD.xyz @@ -0,0 +1,5 @@ + 1 + 23 2 2 +0.048 0.048 0.048 0.048 0.048 0.048 0.048 0.048 0.048 0.04807179676972449 0.051 0.055 0.059 0.06192820323027551 0.062 0.062 0.062 0.062 0.062 0.062 0.062 0.062 0.062 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.038530743608719394 0.0009999999999999757 0.05499999999999996 0.10899999999999996 0.14853074360871935 0.162 0.162 0.162 0.162 0.162 0.162 0.162 0.162 0.162 0.048 0.048 0.048 0.048 0.048 0.048 0.048 0.048 0.048 0.04807179676972449 0.051 0.055 0.059 0.06192820323027551 0.062 0.062 0.062 0.062 0.062 0.062 0.062 0.062 0.062 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.052000000000000005 -0.038530743608719394 0.0009999999999999757 0.05499999999999996 0.10899999999999996 0.14853074360871935 0.162 0.162 0.162 0.162 0.162 0.162 0.162 0.162 0.162 +-0.001 0.1 0.2 0.30000000000000004 0.4 0.5 0.6000000000000001 0.7000000000000001 0.75 0.754 0.7569282032302755 0.758 0.7569282032302755 0.754 0.75 0.7000000000000001 0.6000000000000001 0.5 0.4 0.30000000000000004 0.2 0.1 -0.001 -0.001 0.1 0.2 0.30000000000000004 0.4 0.5 0.6000000000000001 0.7000000000000001 0.75 0.804 0.8435307436087194 0.858 0.8435307436087194 0.804 0.75 0.7000000000000001 0.6000000000000001 0.5 0.4 0.30000000000000004 0.2 0.1 -0.001 -0.001 0.1 0.2 0.30000000000000004 0.4 0.5 0.6000000000000001 0.7000000000000001 0.75 0.754 0.7569282032302755 0.758 0.7569282032302755 0.754 0.75 0.7000000000000001 0.6000000000000001 0.5 0.4 0.30000000000000004 0.2 0.1 -0.001 -0.001 0.1 0.2 0.30000000000000004 0.4 0.5 0.6000000000000001 0.7000000000000001 0.75 0.804 0.8435307436087194 0.858 0.8435307436087194 0.804 0.75 0.7000000000000001 0.6000000000000001 0.5 0.4 0.30000000000000004 0.2 0.1 -0.001 +0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 \ No newline at end of file diff --git a/UBend_CHT/aero/FFD/genFFD.py b/UBend_CHT/aero/FFD/genFFD.py new file mode 100644 index 00000000..57ef7b16 --- /dev/null +++ b/UBend_CHT/aero/FFD/genFFD.py @@ -0,0 +1,302 @@ +#Chris Psenica +#UBend (C) FFD + Rotation Code +#12/06/2023 + +#--------------- Imports --------------- +import numpy as np +import sys +import os + +#--------------- Parameters --------------- +x , y , z = [] , [] , [] # Initiate matrices to store all x , y , and z coordinates +nRings = 23 # Total number of rings that make up the geometry of the UBend channel +i = 1 # Counter +UBend_Xoffset = -0.003 # This is an adjustment to the x coordinates for the UBend. It will help create a better fit for the FFD points +alpha = -150.0 * (np.pi / 180.0) # Rotation of points in radians for UBend portion +filename = "UBendFFD.xyz" +Leg_XOffset = 0.002 +solid_expansion = 0.003 # Additional x & z needed for adding the solid domain + +#--------------- Leg 1 --------------- +x.append(0.047 - Leg_XOffset + solid_expansion) +y.append(-0.001) +z.append(0.047 + solid_expansion) + +x.append(-0.047 - Leg_XOffset - solid_expansion) +y.append(-0.001) +z.append(0.047 + solid_expansion) + +x.append(-0.047 - Leg_XOffset - solid_expansion) +y.append(-0.001) +z.append(-0.047 - solid_expansion) + +x.append(0.047 - Leg_XOffset + solid_expansion) +y.append(-0.001) +z.append(-0.047 - solid_expansion) + +for b in range(7): + x.append(0.047 - Leg_XOffset + solid_expansion) + y.append(i* 0.1) + z.append(0.047 + solid_expansion) + + x.append(-0.047 - Leg_XOffset - solid_expansion) + y.append(i* 0.1) + z.append(0.047 + solid_expansion) + + x.append(-0.047 - Leg_XOffset - solid_expansion) + y.append(i* 0.1) + z.append(-0.047 - solid_expansion) + + x.append(0.047 - Leg_XOffset + solid_expansion) + y.append(i* 0.1) + z.append(-0.047 - solid_expansion) + + i = i + 1 + +x.append(0.047 - Leg_XOffset + solid_expansion) +y.append(0.75) +z.append(0.047 + solid_expansion) + +x.append(-0.047 - Leg_XOffset - solid_expansion) +y.append(0.75) +z.append(0.047 + solid_expansion) + +x.append(-0.047 - Leg_XOffset - solid_expansion) +y.append(0.75) +z.append(-0.047 - solid_expansion) + +x.append(0.047 - Leg_XOffset + solid_expansion) +y.append(0.75) +z.append(-0.047 - solid_expansion) + +#--------------- Rotation Of UBend (External Points) --------------- + +#These coordinates will be derived from the very last set of x,y,z points in the last for loop. An offset of x = -0.002 will be applied for a better fit. + + +for i in range (5): + + x.append(((0.058 - (((-(0.058 - (x[32] + Leg_XOffset))) * np.cos(alpha)))) + UBend_Xoffset)) + y.append(((-(0.058 - (x[32] + Leg_XOffset))) * np.sin(alpha))+ 0.75) + z.append(z[32]) + + x.append(((0.058 - (((-(0.058 - (x[33] + Leg_XOffset))) * np.cos(alpha)))) + UBend_Xoffset)) + y.append(((-(0.058 - (x[33] + Leg_XOffset))) * np.sin(alpha))+ 0.75) + z.append(z[33]) + + x.append(((0.058 - (((-(0.058 - (x[34] + Leg_XOffset))) * np.cos(alpha)))) + UBend_Xoffset)) + y.append(((-(0.058 - (x[34] + Leg_XOffset))) * np.sin(alpha))+ 0.75) + z.append(z[34]) + + x.append(((0.058 - (((-(0.058 - (x[35] + Leg_XOffset))) * np.cos(alpha)))) + UBend_Xoffset)) + y.append(((-(0.058 - (x[35] + Leg_XOffset))) * np.sin(alpha)) + 0.75) + z.append(z[35]) + + alpha = alpha + (30.0 * (np.pi / 180.0)) + +#--------------- Leg 2 --------------- +s = 35 +for i in range (36): + + x.append(x[s] + 0.11 + (2 * Leg_XOffset)) + y.append(y[s]) + z.append(z[s]) + s = s - 1 + +#--------------- Reorder FFD Points --------------- +# These coordinates will be subscripted with an 'n' for 'new' +xn = [] # Initiate matrix for new x coordinates +yn = [] # Initiate matrix for new y coordinates +zn = [] # Initiate matrix for new z coordinates + +s = 0 +for i in range (14): + xn.append(x[s]) + yn.append(y[s]) + zn.append(z[s]) + + s = s + 4 + +s = 58 +for i in range (9): + xn.append(x[s]) + yn.append(y[s]) + zn.append(z[s]) + + s = s + 4 + +s = 1 +for i in range (14): + xn.append(x[s]) + yn.append(y[s]) + zn.append(z[s]) + + s = s + 4 + +s = 59 +for i in range (9): + xn.append(x[s]) + yn.append(y[s]) + zn.append(z[s]) + + s = s + 4 + + + + + +s = 3 +for i in range (14): + xn.append(x[s]) + yn.append(y[s]) + zn.append(z[s]) + + s = s + 4 + +s = 57 +for i in range (9): + xn.append(x[s]) + yn.append(y[s]) + zn.append(z[s]) + + s = s + 4 + +s = 2 +for i in range (14): + xn.append(x[s]) + yn.append(y[s]) + zn.append(z[s]) + + s = s + 4 + +s = 56 +for i in range (9): + xn.append(x[s]) + yn.append(y[s]) + zn.append(z[s]) + + s = s + 4 +''' +#--------------- Write MAPDL Code For Keypoints (For Testing Purposes Only) --------------- +#os.remove("channel/pipe/FFD/MAPDL_UBendFFD.txt") +f = open("MAPDL_UBendFFD.txt" , 'a') +b = 1 +f.write('/cle') +f.write('\n') +f.write('/prep7') +f.write('\n') + +for i in range (92): + f.write('k,') + f.write(str(b)) + f.write(',') + f.write(str(xn[i])) + f.write(',') + f.write(str(yn[i])) + f.write(',') + f.write(str(zn[i])) + f.write('\n') + b = b + 1 + +f.close() +''' + +#--------------- Write Points To .xyz File --------------- +#os.remove("channel/pipe/FFD/UBendFFD.xyz") +f = open(filename,'a') + +f.write(' 1') +f.write('\n') +f.write(' 23 2 2') +f.write('\n') + +for i in range (92): + + f.write(str(xn[i])) + f.write(' ') + + +f.write('\n') + +for i in range (92): + + f.write(str(yn[i])) + f.write(' ') + +f.write('\n') + +for i in range (92): + + f.write(str(zn[i])) + f.write(' ') + + +f.close() + +''' +#--------------- Original UBend FFD Points --------------- +x = [-5.00000000000000010E-003, 9.58333333333333398E-002, 0.19666666666666668, 0.29749999999999993, 0.39833333333333337, 0.49916666666666665, 0.59999999999999998, 0.69999999999999996, 0.75000000000000000, 0.75922163287388700, 0.76598118424787454, 0.76850001700000004, 0.76598118381389524, 0.75922163212639660, 0.75000000000000000, 0.69999999999999996 , 0.59999999999999998 , 0.49916666666666665 , 0.39833333333333332 , 0.29749999999999993 , 0.19666666666666668 , 9.58333333333333398E-002 ,-5.00000000000000010E-003, -5.00000000000000010E-003 , 9.58333333333333121E-002 , 0.19666666666666663 , 0.29749999999999982 , 0.39833333333333326 , 0.49916666666666654 , 0.59999999999999976 , 0.69999999999999996 , 0.74999999999999989 , 0.78000393380946176 , 0.80196716564029824 , 0.81000000849999998 , 0.80196716373241106 , 0.78000393094044207 , 0.74999999999999989 , 0.69999999999999996 , 0.59999999999999976 , 0.49916666666666654 , 0.39833333333333326 , 0.29749999999999982 , 0.19666666666666663 , 9.58333333333333121E-002, -5.00000000000000010E-003 ,-5.00000000000000010E-003, 9.58333333333333398E-002 , 0.19666666666666668 , 0.29749999999999993 , 0.39833333333333337, 0.49916666666666665 , 0.59999999999999998 , 0.69999999999999996 , 0.75000000000000000 , 0.80078623474503652 , 0.83795314703272261 , 0.85150000000000003 , 0.83795314365092743 , 0.80078622975448754 , 0.75000000000000000 , 0.69999999999999996 , 0.59999999999999998 , 0.49916666666666665 , 0.39833333333333332 , 0.29749999999999993 , 0.19666666666666668 , 9.58333333333333398E-002, -5.00000000000000010E-003 ,-5.00000000000000010E-003, 9.58333333333333398E-002 , 0.19666666666666668 , 0.29749999999999993 , 0.39833333333333337 , 0.49916666666666665 , 0.59999999999999998, 0.69999999999999996 , 0.75000000000000000 , 0.75922163287388700 , 0.76598118424787454 , 0.76850001700000004 , 0.76598118381389524 , 0.75922163212639660 , 0.75000000000000000 , 0.69999999999999996 , 0.59999999999999998 , 0.49916666666666665 , 0.39833333333333332 , 0.29749999999999993 , 0.19666666666666668 , 9.58333333333333398E-002 ,-5.00000000000000010E-003 ,-5.00000000000000010E-003 , 9.58333333333333398E-002 , 0.19666666666666668 , 0.29749999999999993 , 0.39833333333333337 , 0.49916666666666665 , 0.59999999999999998 , 0.69999999999999996 , 0.75000000000000000 , 0.78000393380946176 , 0.80196716564029868 , 0.81000000850000009 , 0.80196716373241150 , 0.78000393094044218 , 0.75000000000000000 , 0.70000000000000007 , 0.59999999999999998 , 0.49916666666666665 , 0.39833333333333326 , 0.29749999999999993 , 0.19666666666666668 , 9.58333333333333398E-002 ,-5.00000000000000010E-003, -5.00000000000000010E-003 , 9.58333333333333398E-002 , 0.19666666666666668 , 0.29749999999999993, 0.39833333333333337 , 0.49916666666666665 , 0.59999999999999998 , 0.69999999999999996 , 0.75000000000000000 , 0.80078623474503652 , 0.83795314703272261 , 0.85150000000000003 , 0.83795314365092743 , 0.80078622975448754 , 0.75000000000000000 , 0.69999999999999996 , 0.59999999999999998 , 0.49916666666666665 , 0.39833333333333332 , 0.29749999999999993 , 0.19666666666666668 , 9.58333333333333398E-002, -5.00000000000000010E-003 ,-5.00000000000000010E-003 , 9.58333333333333398E-002 , 0.19666666666666668 , 0.29749999999999993 , 0.39833333333333337 , 0.49916666666666665 , 0.59999999999999998 , 0.69999999999999996 , 0.75000000000000000 , 0.75922163288434774 , 0.76598118430926043 , 0.76850001720000005 , 0.76598118387528047 , 0.75922163213685434 , 0.75000000000000000 , 0.69999999999999996 , 0.59999999999999998 , 0.49916666666666665 , 0.39833333333333332 , 0.29749999999999993 , 0.19666666666666668 , 9.58333333333333398E-002 ,-5.00000000000000010E-003, -5.00000000000000010E-003 , 9.58333333333333121E-002, 0.19666666666666663 , 0.29749999999999982 , 0.39833333333333326 , 0.49916666666666654 , 0.59999999999999976 , 0.69999999999999996 , 0.74999999999999989 , 0.78000393381469191 , 0.80196716567099147 , 0.81000000859999999 , 0.80196716376310384 , 0.78000393094567100 , 0.74999999999999989 , 0.70000000000000007 , 0.59999999999999976 , 0.49916666666666654 , 0.39833333333333326 , 0.29749999999999982 , 0.19666666666666663 , 9.58333333333333121E-002, -5.00000000000000010E-003, -5.00000000000000010E-003, 9.58333333333333398E-002, 0.19666666666666668, 0.29749999999999993, 0.39833333333333337 , 0.49916666666666665 , 0.59999999999999998 , 0.69999999999999996 , 0.75000000000000000 , 0.80078623474503652 , 0.83795314703272261 , 0.85150000000000003 , 0.83795314365092743 , 0.80078622975448754 , 0.75000000000000000 , 0.69999999999999996 , 0.59999999999999998 , 0.49916666666666665 , 0.39833333333333332 , 0.29749999999999993 , 0.19666666666666668 , 9.58333333333333398E-002, -5.00000000000000010E-003] +y = [1.85000004000000010E-002, 1.85000004000000010E-002 , 1.85000004000000010E-002 , 1.85000004000000010E-002 ,1.85000004000000010E-002, 1.85000004000000010E-002 , 1.85000004000000010E-002 , 1.85000004000000010E-002 , 1.85000004000000010E-002 , 1.59811754884366802E-002 , 9.22162986625986968E-003 , 0.0000000000000000 , -9.22163061374972268E-003 ,-1.59811759224153180E-002 ,-1.85000004000000010E-002, -1.85000004000000010E-002 ,-1.85000004000000010E-002 ,-1.85000004000000010E-002 ,-1.85000004000000010E-002 ,-1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002 , 6.00000017000000066E-002, 6.00000016999999997E-002, 6.00000016999999997E-002, 6.00000016999999997E-002 , 6.00000016999999997E-002 , 6.00000017000000135E-002, 6.00000016999999997E-002 , 6.00000016999999997E-002 , 6.00000017000000066E-002 , 5.19671604450294630E-002, 3.00039297925696370E-002 ,-7.54939999499998975E-010 ,-3.00039330976152874E-002 ,-5.19671621011613821E-002, -6.00000017000000066E-002 ,-6.00000016999999997E-002, -6.00000016999999997E-002, -6.00000017000000135E-002, -6.00000016999999997E-002, -6.00000016999999997E-002 ,-6.00000016999999997E-002, -6.00000016999999997E-002, -6.00000017000000066E-002 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 8.79531454016222874E-002, 5.07862297188794512E-002, -1.50987999900000002E-009, -5.07862355814808833E-002, -8.79531482799074671E-002 ,-0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , 1.85000004000000010E-002 , 1.85000004000000010E-002 , 1.85000004000000010E-002 , 1.85000004000000010E-002, 1.85000004000000010E-002, 1.85000004000000010E-002 , 1.85000004000000010E-002 , 1.85000004000000010E-002 , 1.85000004000000010E-002 , 1.59811754884366802E-002 , 9.22162986625986968E-003, 0.0000000000000000 , -9.22163061374972268E-003, -1.59811759224153180E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002 , 6.00000017000000066E-002, 6.00000017000000135E-002, 6.00000016999999997E-002, 6.00000017000000135E-002 , 6.00000017000000135E-002 , 6.00000017000000135E-002 , 6.00000017000000135E-002 , 6.00000017000000135E-002, 6.00000017000000135E-002, 5.19671604450295047E-002 , 3.00039297925696821E-002, -7.54939999500001043E-010, -3.00039330976153290E-002, -5.19671621011614238E-002, -6.00000017000000135E-002, -6.00000017000000135E-002, -6.00000017000000135E-002, -6.00000017000000135E-002 ,-6.00000017000000135E-002, -6.00000017000000135E-002, -6.00000017000000135E-002, -6.00000017000000135E-002 ,-6.00000017000000066E-002 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 8.79531454016222874E-002 , 5.07862297188794512E-002, -1.50987999900000002E-009 ,-5.07862355814808833E-002, -8.79531482799074671E-002, -0.10150000300000001 , -0.10150000300000001, -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , 1.85000004000000010E-002 , 1.85000004000000010E-002 , 1.85000004000000010E-002, 1.85000004000000010E-002, 1.85000004000000010E-002, 1.85000004000000010E-002, 1.85000004000000010E-002, 1.85000004000000010E-002, 1.85000004000000010E-002 , 1.59811754495162578E-002 , 9.22162984949068641E-003 , 0.0000000000000000 , -9.22163059698169821E-003, -1.59811758834966199E-002, -1.85000004000000010E-002 ,-1.85000004000000010E-002 ,-1.85000004000000010E-002 ,-1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, -1.85000004000000010E-002, 6.00000017000000066E-002, 6.00000016999999997E-002 , 6.00000016999999997E-002 , 6.00000016999999997E-002 , 6.00000016999999997E-002 , 6.00000017000000135E-002 , 6.00000016999999997E-002 , 6.00000016999999997E-002 ,6.00000017000000066E-002, 5.19671604255692587E-002 , 3.00039297841850454E-002, -7.54939999499998975E-010, -3.00039330892312682E-002, -5.19671620817020244E-002, -6.00000017000000066E-002 ,-6.00000016999999997E-002 ,-6.00000016999999997E-002 ,-6.00000017000000135E-002, -6.00000017000000135E-002, -6.00000016999999997E-002, -6.00000016999999997E-002, -6.00000016999999997E-002, -6.00000017000000066E-002 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 0.10150000300000001 , 8.79531454016222874E-002 , 5.07862297188794512E-002, -1.50987999900000002E-009 ,-5.07862355814808833E-002, -8.79531482799074671E-002, -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001 , -0.10150000300000001] +z = [-1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008 ,-1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, -1.00000000000000002E-008, 1.00000000000000002E-002, 1.00000000000000002E-002, 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002, 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 9.99999999999999847E-003, 1.00000000000000002E-002, 1.00000000000000002E-002 , 1.00000000000000002E-002, 1.00000000000000002E-002 , 1.00000000000000002E-002, 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002, 9.99999999999999674E-003 , 9.99999999999999674E-003 , 9.99999999999999674E-003 , 9.99999999999999674E-003 , 9.99999999999999847E-003 , 9.99999999999999674E-003, 9.99999999999999674E-003, 9.99999999999999847E-003 , 9.99999999999999674E-003 , 9.99999999999999674E-003 , 9.99999999999999847E-003 ,9.99999999999999674E-003 , 9.99999999999999674E-003 , 9.99999999999999674E-003 , 9.99999999999999674E-003, 1.00000000000000002E-002, 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002, 1.00000000000000002E-002, 1.00000000000000002E-002 , 1.00000000000000002E-002, 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002, 1.00000000000000002E-002, 1.00000000000000002E-002, 1.00000000000000002E-002 , 1.00000000000000002E-002, 1.00000000000000002E-002, 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002, 1.00000000000000002E-002, 1.00000000000000002E-002, 1.00000000000000002E-002, 9.99999999999999847E-003, 1.00000000000000002E-002 , 1.00000000000000002E-002 , 1.00000000000000002E-002, 1.00000000000000002E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002, 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002, 3.79999999999999991E-002, 3.79999999999999991E-002, 3.79999999999999991E-002 , 3.79999999999999991E-002, 3.79999999999999991E-002, 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002, 3.79999999999999991E-002 , 3.80000000000000060E-002 , 3.79999999999999991E-002, 3.79999999999999991E-002 , 3.79999999999999991E-002 ,3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 ,3.79999999999999991E-002 , 3.79999999999999991E-002, 3.79999999999999991E-002, 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999921E-002, 3.79999999999999991E-002 , 3.79999999999999991E-002, 3.80000000000000060E-002, 3.79999999999999991E-002, 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002, 3.79999999999999991E-002, 3.79999999999999991E-002, 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002, 3.79999999999999991E-002, 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002, 3.79999999999999991E-002 , 3.79999999999999991E-002 ,3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 ,3.80000000000000060E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002 , 3.79999999999999991E-002] + +#os.remove("Original_UBendFFD.txt") +f = open("Original_UBendFFD.txt" , 'a') +b = 1 +f.write('/cle') +f.write('\n') +f.write('/prep7') +f.write('\n') + +for i in range (207): + f.write('k,') + f.write(str(b)) + f.write(',') + f.write(str(x[i])) + f.write(',') + f.write(str(y[i])) + f.write(',') + f.write(str(z[i])) + f.write('\n') + b = b + 1 + +f.close() + +#--------------- Write Points To .xyz File --------------- +#os.remove("Original_UBendFFD.xyz") +f = open("Original_UBendFFD.xyz" , 'a') + +f.write(' 1') +f.write('\n') +f.write(' 23 3 3') +f.write('\n') + +for i in range (207): + + f.write(str(x[i])) + f.write(' ') + + +f.write('\n') + +for i in range (207): + + f.write(str(y[i])) + f.write(' ') + +f.write('\n') + +for i in range (207): + + f.write(str(z[i])) + f.write(' ') + + +f.close() +''' + + + + + + + diff --git a/UBend_CHT/aero/constant/transportProperties b/UBend_CHT/aero/constant/transportProperties new file mode 100644 index 00000000..efe02a45 --- /dev/null +++ b/UBend_CHT/aero/constant/transportProperties @@ -0,0 +1,24 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 1.5e-5; +Pr 0.7; +Prt 0.85; +Cp 1004; +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UBend_CHT/aero/constant/turbulenceProperties b/UBend_CHT/aero/constant/turbulenceProperties new file mode 100644 index 00000000..8739b85d --- /dev/null +++ b/UBend_CHT/aero/constant/turbulenceProperties @@ -0,0 +1,27 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +RAS +{ + RASModel SpalartAllmarasFv3; + turbulence on; + printCoeffs off; + nuTildaMin 1e-16; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UBend_CHT/aero/paraview.foam b/UBend_CHT/aero/paraview.foam new file mode 100644 index 00000000..e69de29b diff --git a/UBend_CHT/aero/system/controlDict b/UBend_CHT/aero/system/controlDict new file mode 100644 index 00000000..c3e1125b --- /dev/null +++ b/UBend_CHT/aero/system/controlDict @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 5000; +deltaT 1; +writeControl timeStep; +writeInterval 5000; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 16; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} \ No newline at end of file diff --git a/UBend_CHT/aero/system/decomposeParDict b/UBend_CHT/aero/system/decomposeParDict new file mode 100644 index 00000000..742e5222 --- /dev/null +++ b/UBend_CHT/aero/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UBend_CHT/aero/system/fvSchemes b/UBend_CHT/aero/system/fvSchemes new file mode 100644 index 00000000..3d26086e --- /dev/null +++ b/UBend_CHT/aero/system/fvSchemes @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss upwind; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(pc) bounded Gauss upwind; + div(phi,nuTilda) bounded Gauss upwind; + div(phi,T) bounded Gauss upwind; + div(phi,k) bounded Gauss upwind; + div(phi,omega) bounded Gauss upwind; + div(phi,epsilon) bounded Gauss upwind; +} + +interpolationSchemes +{ + default linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +snGradSchemes +{ + default corrected; +} + +wallDist +{ + method meshWave; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UBend_CHT/aero/system/fvSolution b/UBend_CHT/aero/system/fvSolution new file mode 100644 index 00000000..f87c6df4 --- /dev/null +++ b/UBend_CHT/aero/system/fvSolution @@ -0,0 +1,78 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +SIMPLE +{ + consistent false; + nNonOrthogonalCorrectors 0; +} + +solvers +{ + + "(p|p_rgh|G)" + { + + solver GAMG; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + } + + Phi + { + $p; + relTol 0; + tolerance 1e-6; + } + + "(U|T|e|h|nuTilda|k|omega|epsilon)" + { + solver smoothSolver; + smoother GaussSeidel; + relTol 0.1; + tolerance 0; + nSweeps 1; + } + +} + +relaxationFactors +{ + fields + { + "(p|p_rgh|rho)" 0.30; + } + + equations + { + "(U|T|e|h|nuTilda|k|epsilon|omega)" 0.70; + } + +} + +potentialFlow +{ + + nNonOrthogonalCorrectors 20; + PhiRefCell 0; + PhiRefValue 0; + +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UBend_CHT/preProcessing.sh b/UBend_CHT/preProcessing.sh new file mode 100644 index 00000000..a695c3c4 --- /dev/null +++ b/UBend_CHT/preProcessing.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# check if openfoam environment is loaded +if [ -z "$WM_PROJECT" ]; then + echo "OpenFOAM environment not found, forgot to source the OpenFOAM bashrc?" + exit +fi + +# generate mesh +echo "Generating mesh.." + +if [ -f "CHT_ubend_mesh.zip" ]; then + echo "UBend mesh already exists." +else + echo "Downloading UBend Mesh" + wget https://github.com/dafoam/files/releases/download/v1.0.0/CHT_ubend_mesh.zip +fi + +gunzip CHT_ubend_mesh.zip + +cp -r fluidMesh aero/constant/polyMesh +cp -r solidMesh thermal/constant/polyMesh + +echo "Generating mesh.. Done!" + +# copy initial and boundary condition files +cd aero +cp -r 0.orig 0 + +cd ../thermal +cp -r 0.orig 0 diff --git a/UBend_CHT/runScript.py b/UBend_CHT/runScript.py new file mode 100644 index 00000000..7056a687 --- /dev/null +++ b/UBend_CHT/runScript.py @@ -0,0 +1,444 @@ +#!/usr/bin/env python + +# Spring 2025 +# Ubend Channel runScript With Solid Domain -> Full Pipe Version -> DAFoam v4.0.0 +# Chris Psenica - Iowa State University - i-Design Lab + +# ============================================================================= +# Imports +# ============================================================================= +import argparse +from mpi4py import MPI +import os +import numpy as np +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder +from funtofem.mphys import MeldThermalBuilder +from pygeo import geo_utils +from mphys.scenario_aerothermal import ScenarioAeroThermal +from pygeo.mphys import OM_DVGEOCOMP + +# ============================================================================= +# Input Parameters +# ============================================================================= +parser = argparse.ArgumentParser() +parser.add_argument("-optimizer" , help = "optimizer to use" , type = str , default = "IPOPT") +parser.add_argument("-task" , help = "type of run to do" , type = str , default = "run_driver") +args = parser.parse_args() +gcomm = MPI.COMM_WORLD + +# ============================================================================= +# Set The Parameters For The Optimization +# ============================================================================= +#---------- Flow Conditions ---------- +U = 5.0 # Fluid flow (m/s) inside the pipe +Uf = 5.0 # Fluid flow (m/s) of the far field +nuTilda0 = 1.5e-4 +p0 = 0.0 + +#---------- Obj. Function Weights ---------- +TMweight = 0.9 +TM_baseline = 305.5 ; PL_baseline = 35.07 - 12.76 +scaleTM = TMweight / TM_baseline ; scalePL = (1 - TMweight) / PL_baseline +HFX_baseline = -122.85 + +# ============================================================================= +# DaOptions Aero Setup +# ============================================================================= +daOptionsAero = { + #---------- DaOptions Parameters ---------- + "solverName" : "DASimpleFoam", + "designSurfaces" : ["ubend_inner" , "ubend_outer"], + "useAD" : {"mode": "reverse"}, + "primalMinResTol" : 1e-12, + "primalMinResTolDiff" : 1e11, + "wallDistanceMethod" : "daCustom", + + "primalBC" : { + "U0": {"variable": "U" , "patches": ["inlet"] , "value": [0.0 , U , 0.0]}, + "U1": {"variable": "U" , "patches": ["farfield_inlet"] , "value": [0.0 , 0.0 , -Uf]}, + "p0": {"variable": "p" , "patches": ["outlet"], "value": [p0]}, + "p1": {"variable": "p" , "patches": ["farfield_outlet"], "value": [p0]}, + "nuTilda0": {"variable": "nuTilda", "patches": ["inlet"], "value": [nuTilda0]}, + "nuTilda1": {"variable": "nuTilda", "patches": ["farfield_inlet"], "value": [nuTilda0]}, + "useWallFunction": True, + }, + + #---------- Objective Function ---------- + "function": { + + "TP1": { + "type" : "totalPressure", + "source" : "patchToFace", + "patches" : ["inlet"], + "scale" : 1.0, + "addToAdjoint" : True, + }, + + "TP2": { + "type" : "totalPressure", + "source" : "patchToFace", + "patches" : ["outlet"], + "scale" : 1.0, + "addToAdjoint" : True, + }, + + "Tmean": { + "type" : "patchMean", + "source" : "patchToFace", + "patches" : ["outlet"], + "varName" : "T", + "varType" : "scalar", + "component" : 0, + "scale" : 1.0, + "addToAdjoint" : True, + }, + + "HFX": { + "type" : "wallHeatFlux", + "source" : "patchToFace", + "byUnitArea" : False, + "patches" : ["ubend_inner"], + "scale" : 1.0, + "addToAdjoint" : False, + }, + + }, + + #---------- Optimization Parameters ---------- + "adjStateOrdering" : "cell", + + "normalizeStates": {"U" : U , + "p" : (U * U) / 2. , + "nuTilda" : 1.5e-3 , + "phi" : 1.0 , + "T" : 300}, + + "adjEqnOption": {"gmresRelTol" : 1.0e-2, + "gmresTolDiff" : 1.0e2, + "pcFillLevel" : 2, + "jacMatReOrdering" : "natural", + "gmresMaxIters" : 2000, + "gmresRestart" : 2000, + "dynAdjustTol" : True, + "useNonZeroInitGuess" : True}, + + #---------- Coupling Info ---------- + "inputInfo": { + "aero_vol_coords" : {"type": "volCoord", "components": ["solver", "function"]}, + "T_convect": { + "type" : "thermalCouplingInput", + "patches" : ["ubend_inner" , "ubend_outer"], + "components" : ["solver" , "function"], + }, + }, + + "outputInfo": { + "q_convect": { + "type" : "thermalCouplingOutput", + "patches" : ["ubend_inner" , "ubend_outer"], + "components" : ["thermalCoupling"], + }, + }, +} + +# ============================================================================= +# DaOptions Thermal Setup +# ============================================================================= +daOptionsThermal = { + #---------- DaOptions Parameters ---------- + "designSurfaces" : ["ubend_inner_solid" , "ubend_outer_solid"], + "solverName" : "DAHeatTransferFoam", + "primalMinResTol" : 1.0e-12, + "primalMinResTolDiff" : 1.0e11, + "wallDistanceMethod" : "daCustom", + "discipline" : "thermal", + + #---------- Objective Function ---------- + "function": { + + "HFXsolid": { + "type" : "wallHeatFlux", + "source" : "patchToFace", + "byUnitArea" : False, + "patches" : ["ubend_inner_solid"], + "scale" : 1.0, + "addToAdjoint" : False, + }, + + }, + + #---------- Optimization Parameters ---------- + "adjStateOrdering" : "cell", + + "adjEqnOption": {"gmresRelTol" : 1.0e-3, + "gmresTolDiff" : 1e2, + "pcFillLevel" : 1, + "jacMatReOrdering" : "natural", + "gmresMaxIters" : 1000, + "gmresRestart" : 1000, + "dynAdjustTol" : True, + "useNonZeroInitGuess" : True}, + + "normalizeStates": {"T" : 300}, + + #---------- Coupling Info ---------- + "inputInfo": { + "thermal_vol_coords" : {"type": "volCoord", "components": ["solver", "function"]}, + "q_conduct": { + "type" : "thermalCouplingInput", + "patches" : ["ubend_inner_solid" , "ubend_outer_solid"], + "components" : ["solver"], + }, + }, + + "outputInfo": { + "T_conduct": { + "type" : "thermalCouplingOutput", + "patches" : ["ubend_inner_solid" , "ubend_outer_solid"], + "components" : ["thermalCoupling"], + }, + }, +} + +# ============================================================================= +# Mesh Setup +# ============================================================================= +meshOptions = { + "gridFile" : os.getcwd(), + "fileType" : "OpenFOAM", + "symmetryPlanes" : [], +} + +# ============================================================================= +# Top class To Setup The Optimization Problem +# ============================================================================= +class Top(Multipoint): + + def setup(self): + + #---------- Initialize Builders ---------- + dafoam_builder_aero = DAFoamBuilder(daOptionsAero , meshOptions , scenario = "aerothermal" , run_directory = "aero") + dafoam_builder_aero.initialize(self.comm) + + dafoam_builder_thermal = DAFoamBuilder(daOptionsThermal , meshOptions , scenario = "aerothermal" , run_directory = "thermal") + dafoam_builder_thermal.initialize(self.comm) + + thermalxfer_builder = MeldThermalBuilder(dafoam_builder_aero , dafoam_builder_thermal , n = 1 , beta = 0.5) + thermalxfer_builder.initialize(self.comm) + + #---------- Add Design Variable Component And Promote To Top Level ---------- + self.add_subsystem("dvs" , om.IndepVarComp() , promotes = ["*"]) + + #---------- Add Mesh Component ---------- + self.add_subsystem("mesh_aero" , dafoam_builder_aero.get_mesh_coordinate_subsystem()) + self.add_subsystem("mesh_thermal" , dafoam_builder_thermal.get_mesh_coordinate_subsystem()) + + #---------- Add Geometry Component ---------- + self.add_subsystem("geometry_aero" , OM_DVGEOCOMP(file = "aero/FFD/UBendFFD.xyz" , type = "ffd")) + self.add_subsystem("geometry_thermal" , OM_DVGEOCOMP(file = "aero/FFD/UBendFFD.xyz" , type = "ffd")) + + #---------- Add Scenario (Flow Condition) For Optimization ---------- + ''' + For no thermal (solid) use ScenarioAerodynamic, for thermal (solid) use ScenarioAerothermal + we pass the builder to the scenario to actually run the flow and adjoint + ''' + self.mphys_add_scenario( + "scenario" , + ScenarioAeroThermal(aero_builder = dafoam_builder_aero , thermal_builder = dafoam_builder_thermal , thermalxfer_builder = thermalxfer_builder), + om.NonlinearBlockGS(maxiter = 30 , iprint = 2 , use_aitken = True , rtol = 1e-7 , atol = 2e-2), + om.LinearBlockGS(maxiter = 30 , iprint = 2 , use_aitken = True , rtol = 1e-6 , atol = 1e-2), + ) + + #---------- Manually Connect Aero & Thermal Between The Mesh & Geometry Components ---------- + self.connect("mesh_aero.x_aero0" , "geometry_aero.x_aero_in") + self.connect("geometry_aero.x_aero0" , "scenario.x_aero") + + self.connect("mesh_thermal.x_thermal0" , "geometry_thermal.x_thermal_in") + self.connect("geometry_thermal.x_thermal0" , "scenario.x_thermal") + + #---------- Add Objective Function Component ---------- + self.add_subsystem("OBJ" , om.ExecComp("val = scalePL * (TP1 - TP2) + (scaleTM * Tmean)" , scalePL = {'val' : scalePL , 'constant' : True} , scaleTM = {'val' : scaleTM , 'constant' : True})) + + def configure(self): + + #---------- Initialize The Optimization ---------- + super().configure() + + #---------- Get Surface Coordinates From Mesh Component ---------- + points_aero = self.mesh_aero.mphys_get_surface_mesh() + points_thermal = self.mesh_thermal.mphys_get_surface_mesh() + + #---------- Add Pointset To The Geometry Component ---------- + self.geometry_aero.nom_add_discipline_coords("aero" , points_aero) + self.geometry_thermal.nom_add_discipline_coords("thermal" , points_thermal) + + #---------- Create Design Variables And Assign Them To FFD Points ---------- + # get FFD points + pts = self.geometry_aero.nom_getDVGeo().getLocalIndex(0) + + # shapex + indexList = [] + indexList.extend(pts[7:16 , 1 , :].flatten()) + PS = geo_utils.PointSelect("list" , indexList) + shapexUpper = self.geometry_aero.nom_addLocalDV(dvName = "shapexUpper" , pointSelect = PS , axis = "x") + shapexUpper = self.geometry_thermal.nom_addLocalDV(dvName = "shapexUpper" , pointSelect = PS , axis = "x") + + # shapey + indexList = [] + indexList.extend(pts[7:16 , 1 , :].flatten()) + PS = geo_utils.PointSelect("list" , indexList) + shapeyUpper = self.geometry_aero.nom_addLocalDV(dvName = "shapeyUpper" , pointSelect = PS , axis = "y") + shapeyUpper = self.geometry_thermal.nom_addLocalDV(dvName = "shapeyUpper" , pointSelect = PS , axis = "y") + + # shapez + indexList = [] + indexList.extend(pts[7:16 , 1 , :].flatten()) + PS = geo_utils.PointSelect("list", indexList) + shapezUpper = self.geometry_aero.nom_addLocalDV(dvName = "shapezUpper" , pointSelect = PS , axis = "z") + shapezUpper = self.geometry_thermal.nom_addLocalDV(dvName = "shapezUpper" , pointSelect = PS , axis = "z") + + # shapex + indexList = [] + indexList.extend(pts[7:16 , 0 , :].flatten()) + PS = geo_utils.PointSelect("list" , indexList) + shapexLower = self.geometry_aero.nom_addLocalDV(dvName = "shapexLower" , pointSelect = PS , axis = "x") + shapexLower = self.geometry_thermal.nom_addLocalDV(dvName = "shapexLower" , pointSelect = PS , axis = "x") + + # shapey + indexList = [] + indexList.extend(pts[7:16 , 0 , :].flatten()) + PS = geo_utils.PointSelect("list" , indexList) + shapeyLower = self.geometry_aero.nom_addLocalDV(dvName = "shapeyLower" , pointSelect = PS , axis = "y") + shapeyLower = self.geometry_thermal.nom_addLocalDV(dvName = "shapeyLower" , pointSelect = PS , axis = "y") + + # shapez + indexList = [] + indexList.extend(pts[7:16 , 0 , :].flatten()) + PS = geo_utils.PointSelect("list", indexList) + shapezLower = self.geometry_aero.nom_addLocalDV(dvName = "shapezLower" , pointSelect = PS , axis = "z") + shapezLower = self.geometry_thermal.nom_addLocalDV(dvName = "shapezLower" , pointSelect = PS , axis = "z") + + #---------- Add Outputs For The DVs ---------- + self.dvs.add_output("shapexUpper" , val = np.array([0]*shapexUpper)) + self.dvs.add_output("shapeyUpper" , val = np.array([0]*shapeyUpper)) + self.dvs.add_output("shapezUpper" , val = np.array([0]*shapezUpper)) + + self.dvs.add_output("shapexLower" , val = np.array([0]*shapexLower)) + self.dvs.add_output("shapeyLower" , val = np.array([0]*shapeyLower)) + self.dvs.add_output("shapezLower" , val = np.array([0]*shapezLower)) + + #---------- Connect The Design Variables To The Geometry ---------- + self.connect("shapexUpper" , "geometry_aero.shapexUpper") + self.connect("shapeyUpper" , "geometry_aero.shapeyUpper") + self.connect("shapezUpper" , "geometry_aero.shapezUpper") + self.connect("shapexLower" , "geometry_aero.shapexLower") + self.connect("shapeyLower" , "geometry_aero.shapeyLower") + self.connect("shapezLower" , "geometry_aero.shapezLower") + + self.connect("shapexUpper" , "geometry_thermal.shapexUpper") + self.connect("shapeyUpper" , "geometry_thermal.shapeyUpper") + self.connect("shapezUpper" , "geometry_thermal.shapezUpper") + self.connect("shapexLower" , "geometry_thermal.shapexLower") + self.connect("shapeyLower" , "geometry_thermal.shapeyLower") + self.connect("shapezLower" , "geometry_thermal.shapezLower") + + #---------- Define The Design Variables To The Top Level ---------- + self.add_design_var("shapexUpper" , lower = -0.04 , upper = 0.04 , scaler = 10.0) + self.add_design_var("shapeyUpper" , lower = -0.04 , upper = 0.04 , scaler = 10.0) + self.add_design_var("shapezUpper" , lower = -0.04 , upper = 0.04 , scaler = 10.0) + self.add_design_var("shapexLower" , lower = -0.01 , upper = 0.01 , scaler = 40.0) + self.add_design_var("shapeyLower" , lower = -0.01 , upper = 0.01 , scaler = 40.0) + self.add_design_var("shapezLower" , lower = -0.01 , upper = 0.01 , scaler = 40.0) + + #---------- Add Objective And Constraints ---------- + self.connect("scenario.aero_post.TP1" , "OBJ.TP1") + self.connect("scenario.aero_post.TP2" , "OBJ.TP2") + self.connect("scenario.aero_post.Tmean" , "OBJ.Tmean") + self.add_objective("OBJ.val" , scaler = 1.0) + +# ============================================================================= +# OpenMDAO Setup +# ============================================================================= +#---------- OpenMDAO Parameters ---------- +prob = om.Problem(reports = None) +prob.model = Top() +prob.setup(mode = "rev") +om.n2(prob , show_browser = False , outfile = "n2.html") + +#---------- Use Pyoptsparse To Setup The Optimization ---------- +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer + +#---------- Optimizer Parameters ---------- +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance" : 1.0e-5, + "Major optimality tolerance" : 1.0e-5, + "Minor feasibility tolerance" : 1.0e-5, + "Verify level" : -1, + "Function precision" : 1.0e-5, + "Major iterations limit" : 1000, + "Nonderivative linesearch" : None, + "Print file" : "opt_SNOPT_print.txt", + "Summary file" : "opt_SNOPT_summary.txt", + } + +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol" : 1.0e-5, + "constr_viol_tol" : 1.0e-5, + "max_iter" : 100, + "print_level" : 5, + "output_file" : "opt_IPOPT.txt", + "mu_strategy" : "adaptive", + "limited_memory_max_history" : 10, + "nlp_scaling_method" : "none", + "alpha_for_y" : "full", + "recalc_y" : "yes", + } + +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC" : 1.0e-5, + "MAXIT" : 100, + "IFILE" : "opt_SLSQP.txt", + } + +else: + print("opt arg not valid!") + exit(0) + +prob.driver.options["debug_print"] = ["nl_cons" , "objs" , "desvars" , "totals"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +#---------- Run Task Parameters ---------- +if args.task == "run_driver": + prob.run_driver() + +elif args.task == "run_model": + prob.run_model() + +elif args.task == "compute_totals": + prob.run_model() + totals = prob.compute_totals() + + if MPI.COMM_WORLD.rank == 0: + print(totals) + +elif args.task == "check_totals": + prob.run_model() + results = prob.check_totals( + of = ["OBJ.val"], + wrt = ["shapexUpper" , "shapeyUpper" , "shapezUpper" , "shapexLower" , "shapeyLower" , "shapezLower"], + compact_print = False, + step = 1e-3, + form = "central", + step_calc = "abs", +) + +else: + print("task arg not found!") + exit(1) diff --git a/UBend_CHT/thermal/0.orig/T b/UBend_CHT/thermal/0.orig/T new file mode 100644 index 00000000..573ca9f8 --- /dev/null +++ b/UBend_CHT/thermal/0.orig/T @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + + +internalField uniform 300; + +boundaryField +{ + + "(ubend_inner_solid|ubend_outer_solid)" + { + type mixed; + refValue uniform 300; + refGradient uniform 0; + valueFraction uniform 1; + } + + "(inlet_solid|outlet_solid)" + { + type zeroGradient; + } + +} + +// ************************************************************************* // diff --git a/UBend_CHT/thermal/constant/solidProperties b/UBend_CHT/thermal/constant/solidProperties new file mode 100644 index 00000000..7df94787 --- /dev/null +++ b/UBend_CHT/thermal/constant/solidProperties @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +k 200; + + +// ************************************************************************* // diff --git a/UBend_CHT/thermal/paraview.foam b/UBend_CHT/thermal/paraview.foam new file mode 100644 index 00000000..e69de29b diff --git a/UBend_CHT/thermal/system/controlDict b/UBend_CHT/thermal/system/controlDict new file mode 100644 index 00000000..fa1de540 --- /dev/null +++ b/UBend_CHT/thermal/system/controlDict @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +startFrom startTime; +startTime 0; +stopAt endTime; +endTime 2000; +deltaT 1; +writeControl timeStep; +writeInterval 2000; +purgeWrite 0; +writeFormat ascii; +writePrecision 16; +writeCompression on; +timeFormat general; +timePrecision 16; +runTimeModifiable true; + +DebugSwitches +{ + SolverPerformance 0; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // \ No newline at end of file diff --git a/UBend_CHT/thermal/system/decomposeParDict b/UBend_CHT/thermal/system/decomposeParDict new file mode 100644 index 00000000..742e5222 --- /dev/null +++ b/UBend_CHT/thermal/system/decomposeParDict @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*---------------------------------*\ +| ======== | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: v1812 | +| \ / A nd | Web: www.OpenFOAM.com | +| \/ M anipulation | | +\*--------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method scotch; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +distributed false; + +roots(); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/UBend_CHT/thermal/system/fvSchemes b/UBend_CHT/thermal/system/fvSchemes new file mode 100644 index 00000000..c1f70bf3 --- /dev/null +++ b/UBend_CHT/thermal/system/fvSchemes @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; + grad(T) Gauss linear; +} + +divSchemes +{ + default none; +} + +laplacianSchemes +{ + default none; + laplacian(k,T) Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + + +// ************************************************************************* // \ No newline at end of file diff --git a/UBend_CHT/thermal/system/fvSolution b/UBend_CHT/thermal/system/fvSolution new file mode 100644 index 00000000..cf9248be --- /dev/null +++ b/UBend_CHT/thermal/system/fvSolution @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v1812 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + T + { + solver PCG; + preconditioner DIC; + tolerance 1e-16; + relTol 1e-4; + maxIter 3000; + } +} + +SIMPLE +{ + nNonOrthogonalCorrectors 0; +} + + +// ************************************************************************* // \ No newline at end of file diff --git a/UBend_Channel/runScript.py b/UBend_Channel/runScript.py index 8e28ddfe..20f644b0 100755 --- a/UBend_Channel/runScript.py +++ b/UBend_Channel/runScript.py @@ -1,335 +1,303 @@ #!/usr/bin/env python """ -DAFoam run script for the U bend channel case +DAFoam run script for the U bend channel case v4 """ # ============================================================================= # Imports # ============================================================================= -import os import argparse from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import * -from pyoptsparse import Optimization, OPT +import os import numpy as np +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder +from mphys.scenario_aerodynamic import ScenarioAerodynamic +from pygeo.mphys import OM_DVGEOCOMP +from pygeo import geo_utils # ============================================================================= # Input Parameters # ============================================================================= parser = argparse.ArgumentParser() -# which optimizer to use. Options are: slsqp (default), snopt, or ipopt -parser.add_argument("--opt", help="optimizer to use", type=str, default="ipopt") -# which task to run. Options are: opt (default), run, testSensShape, or solveCL -parser.add_argument("--task", help="type of run to do", type=str, default="opt") +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SLSQP") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") args = parser.parse_args() gcomm = MPI.COMM_WORLD -HFL0 = 241.3 -HFL_weight = -0.5 -CPL0 = 40.26 -CPL_weight = 0.5 - -# Set the parameters for optimization -daOptions = { - "solverName": "DASimpleTFoam", +# ============================================================================= +# daOptions Setup +# ============================================================================= +CPL_weight = 0.50 # Weight of pressure loss (PL) in Obj. Function +HFX_weight = CPL_weight - 1.0 # Weight of heat flux (HFX) in obj. Function +HFX0 = 305 # HFX value for baseline design +CPL0 = 85.23 - 35.62 # PL value for baseline design +U0 = 8.4 # Fluid flow (m/s) in x-direction + +daOptionsAero = { + "solverName": "DASimpleFoam", + "designSurfaces": ["ubend"], "useAD": {"mode": "reverse"}, - "designSurfaces": ["ubend", "ubendup"], "primalMinResTol": 1e-8, - "primalMinResTolDiff": 1e5, - "objFunc": { - "obj": { - "part1": { + "primalMinResTolDiff": 1e7, + "writeMinorIterations": True, + "wallDistanceMethod": "daCustom", + "primalBC" : { + "useWallFunction": True, + }, + + "function": { + + "TP1": { "type": "totalPressure", "source": "patchToFace", "patches": ["inlet"], - "scale": 1.0 / CPL0 * CPL_weight, + "scale": 1.0, "addToAdjoint": True, }, - "part2": { + + "TP2": { "type": "totalPressure", "source": "patchToFace", "patches": ["outlet"], - "scale": -1.0 / CPL0 * CPL_weight, + "scale": 1.0, "addToAdjoint": True, }, - "part3": { + + "HFX": { "type": "wallHeatFlux", "source": "patchToFace", - "patches": ["ubendup"], - "scale": 1.0 / HFL0 * HFL_weight, + "patches": ["ubend"], + "scale": 1.0, "addToAdjoint": True, - } - }, - }, - "normalizeStates": {"U": 10.0, "p": 30.0, "nuTilda": 1e-3, "phi": 1.0, "T": 300.0}, - "adjPartDerivFDStep": {"State": 1e-6, "FFD": 1e-3}, - "adjEqnOption": {"gmresRelTol": 1.0e-6, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, - "adjPCLag": 5, - # Design variable setup - "designVar": { - "shapez": {"designVarType": "FFD"}, - "shapeyouter": {"designVarType": "FFD"}, - "shapeyinner": {"designVarType": "FFD"}, - "shapexinner": {"designVarType": "FFD"}, - "shapexouter1": {"designVarType": "FFD"}, - "shapexouter2": {"designVarType": "FFD"}, + }, + }, -} -# mesh warping parameters, users need to manually specify the symmetry plane -meshOptions = { - "gridFile": os.getcwd(), - "fileType": "openfoam", - # point and normal for the symmetry plane - "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, -1.0]]], -} + "adjStateOrdering": "cell", -# options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, - "Verify level": -1, - "Function precision": 1.0e-7, - "Major iterations limit": 50, - "Nonderivative linesearch": None, - "Print file": "opt_SNOPT_print.txt", - "Summary file": "opt_SNOPT_summary.txt", - } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, - "max_iter": 50, - "print_level": 5, - "output_file": "opt_IPOPT.txt", - "mu_strategy": "adaptive", - "limited_memory_max_history": 10, - "nlp_scaling_method": "none", - "alpha_for_y": "full", - "recalc_y": "yes", - } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, - "IFILE": "opt_SLSQP.txt", - } -else: - print("opt arg not valid!") - exit(0) + "adjEqnOption": {"gmresRelTol" : 1e-5, + "gmresTolDiff" : 1e4, + "pcFillLevel" : 2, + "jacMatReOrdering" : "natural", + "gmresMaxIters" : 3000, + "gmresRestart" : 3000}, + "normalizeStates": {"U" : U0, + "p" : (U0 * U0) / 2., + "nuTilda" : 1e-3, + "phi" : 1.0, + "T" : 300}, -# ============================================================================= -# Design variable setup -# ============================================================================= -DVGeo = DVGeometry("./FFD/UBendDuctFFDSym.xyz") -# Select points -pts = DVGeo.getLocalIndex(0) -# shapez -indexList = [] -indexList.extend(pts[7:16, :, -1].flatten()) -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal("shapez", lower=-0.04, upper=0.0077, axis="z", scale=1.0, pointSelect=PS, config="configz") -# shapeyouter -indexList = [] -indexList.extend(pts[7:16, -1, :].flatten()) -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal("shapeyouter", lower=-0.02, upper=0.02, axis="y", scale=1.0, pointSelect=PS, config="configyouter") -# shapeyinner -indexList = [] -indexList.extend(pts[7:16, 0, :].flatten()) -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal("shapeyinner", lower=-0.04, upper=0.04, axis="y", scale=1.0, pointSelect=PS, config="configyinner") -# shapexinner -indexList = [] -indexList.extend(pts[7:16, 0, :].flatten()) -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal("shapexinner", lower=-0.04, upper=0.04, axis="x", scale=1.0, pointSelect=PS, config="configxinner") - -# shapexouter1 -indexList = [] -indexList.extend(pts[9, -1, :].flatten()) -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal( - "shapexouter1", lower=-0.05, upper=0.05, axis="x", scale=1.0, pointSelect=PS, config="configxouter1" -) - -# shapexouter2 -indexList = [] -indexList.extend(pts[10, -1, :].flatten()) -PS = geo_utils.PointSelect("list", indexList) -DVGeo.addGeoDVLocal("shapexouter2", lower=-0.05, upper=0.0, axis="x", scale=1.0, pointSelect=PS, config="configxouter2") + "inputInfo": { + "aero_vol_coords": {"type": "volCoord", "components": ["solver" , "function"]}, + }, + "outputInfo": { + "q_convect": { + "type" : "thermalCouplingOutput", + "patches" : ["ubend"], + "components" : ["thermalCoupling"], + }, + }, -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) +} # ============================================================================= -# Constraint setup +# Mesh Setup # ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) - -if args.task == "opt": - # Create a linear constraint so that the curvature at the symmetry plane is zero - indSetA = [] - indSetB = [] - for i in range(7, 16, 1): - indSetA.append(pts[i, 0, 0]) - indSetB.append(pts[i, 0, 1]) - DVCon.addLinearConstraintsShape( - indSetA, indSetB, factorA=1.0, factorB=-1.0, lower=0.0, upper=0.0, config="configyinner" - ) - - indSetA = [] - indSetB = [] - for i in range(7, 16, 1): - indSetA.append(pts[i, -1, 0]) - indSetB.append(pts[i, -1, 1]) - DVCon.addLinearConstraintsShape( - indSetA, indSetB, factorA=1.0, factorB=-1.0, lower=0.0, upper=0.0, config="configyouter" - ) - - indSetA = [] - indSetB = [] - for i in range(7, 16, 1): - indSetA.append(pts[i, 0, 0]) - indSetB.append(pts[i, 0, 1]) - DVCon.addLinearConstraintsShape( - indSetA, indSetB, factorA=1.0, factorB=-1.0, lower=0.0, upper=0.0, config="configxinner" - ) - - indSetA = [] - indSetB = [] - for i in [9]: - indSetA.append(pts[i, -1, 0]) - indSetB.append(pts[i, -1, 1]) - DVCon.addLinearConstraintsShape( - indSetA, indSetB, factorA=1.0, factorB=-1.0, lower=0.0, upper=0.0, config="configxouter1" - ) - - indSetA = [] - indSetB = [] - for i in [10]: - indSetA.append(pts[i, -1, 0]) - indSetB.append(pts[i, -1, 1]) - DVCon.addLinearConstraintsShape( - indSetA, indSetB, factorA=1.0, factorB=-1.0, lower=0.0, upper=0.0, config="configxouter2" - ) - # linear constraint to make sure the inner bend does not intersect - minInnerBend = 0.005 - indSetA = [] - indSetB = [] - for k in range(3): - indSetA.append(pts[8, 0, k]) - indSetB.append(pts[14, 0, k]) - DVCon.addLinearConstraintsShape( - indSetA, - indSetB, - factorA=1.0, - factorB=-1.0, - lower=-0.03300 + minInnerBend, - upper=0.03300 - minInnerBend, - config="configyinner", - ) - indSetA = [] - indSetB = [] - for k in range(3): - indSetA.append(pts[9, 0, k]) - indSetB.append(pts[13, 0, k]) - DVCon.addLinearConstraintsShape( - indSetA, - indSetB, - factorA=1.0, - factorB=-1.0, - lower=-0.02853 + minInnerBend, - upper=0.02853 - minInnerBend, - config="configyinner", - ) - indSetA = [] - indSetB = [] - for k in range(3): - indSetA.append(pts[10, 0, k]) - indSetB.append(pts[12, 0, k]) - DVCon.addLinearConstraintsShape( - indSetA, - indSetB, - factorA=1.0, - factorB=-1.0, - lower=-0.01635 + minInnerBend, - upper=0.01635 - minInnerBend, - config="configyinner", - ) - -DVCon.writeTecplot("DVConstraints.dat") +meshOptions = { + "gridFile" : os.getcwd(), + "fileType" : "OpenFOAM", + "symmetryPlanes" : [], +} # ============================================================================= -# Initialize optFuncs for optimization +# Top class To Setup The Optimization Problem # ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm +class Top(Multipoint): + def setup(self): + + # initialize builders + dafoam_builder = DAFoamBuilder(daOptionsAero , meshOptions , scenario = "aerodynamic") + dafoam_builder.initialize(self.comm) + + # add design variable component and promote to top level + self.add_subsystem("dvs" , om.IndepVarComp() , promotes = ["*"]) + + # add mesh component + self.add_subsystem("mesh_aero" , dafoam_builder.get_mesh_coordinate_subsystem()) + + # add geometry component + self.add_subsystem("geometry_aero" , OM_DVGEOCOMP(file = "FFD/testFFD.xyz" , type = "ffd")) + + # add a scenario (flow condition) for optimization. For no themal (solid) use ScenarioAerodynamic, for thermal (solid) use ScenarioAerothermal + self.mphys_add_scenario("scenario" , ScenarioAerodynamic(aero_builder = dafoam_builder)) + + # need to manually connect the x_aero0 between the mesh and geometry components + self.connect("mesh_aero.x_aero0" , "geometry_aero.x_aero_in") + self.connect("geometry_aero.x_aero0" , "scenario.x_aero") + + # add obj val for PL + self.add_subsystem("OBJ" , om.ExecComp("val = scalePL * (TP1 - TP2) + (scaleHFX * HFX)" , scalePL = {'val' : CPL_weight / CPL0 , 'constant' : True} , scaleHFX = {'val' : HFX_weight / HFX0 , 'constant' : True})) + + def configure(self): + + # initialize the optimization + super().configure() + + # get surface coordinates from mesh component + points_aero = self.mesh_aero.mphys_get_surface_mesh() + + # add pointset to the geometry component + self.geometry_aero.nom_add_discipline_coords("aero" , points_aero) + + # get FFD points + pts = self.geometry_aero.nom_getDVGeo().getLocalIndex(0) + + #---------- setup DVs ---------- + # shapex + indexList = [] + indexList.extend(pts[7:16 , 1 , :].flatten()) + PS = geo_utils.PointSelect("list" , indexList) + shapexUpper = self.geometry_aero.nom_addLocalDV(dvName = "shapexUpper" , pointSelect = PS , axis = "x") + + # shapey + indexList = [] + indexList.extend(pts[7:16 , 1 , :].flatten()) + PS = geo_utils.PointSelect("list" , indexList) + shapeyUpper = self.geometry_aero.nom_addLocalDV(dvName = "shapeyUpper" , pointSelect = PS , axis = "y") + + # shapez + indexList = [] + indexList.extend(pts[7:16 , 1 , :].flatten()) + PS = geo_utils.PointSelect("list", indexList) + shapezUpper = self.geometry_aero.nom_addLocalDV(dvName = "shapezUpper" , pointSelect = PS , axis = "z") + + # shapex + indexList = [] + indexList.extend(pts[7:16 , 0 , :].flatten()) + PS = geo_utils.PointSelect("list" , indexList) + shapexLower = self.geometry_aero.nom_addLocalDV(dvName = "shapexLower" , pointSelect = PS , axis = "x") + + # shapey + indexList = [] + indexList.extend(pts[7:16 , 0 , :].flatten()) + PS = geo_utils.PointSelect("list" , indexList) + shapeyLower = self.geometry_aero.nom_addLocalDV(dvName = "shapeyLower" , pointSelect = PS , axis = "y") + + # shapez + indexList = [] + indexList.extend(pts[7:16 , 0 , :].flatten()) + PS = geo_utils.PointSelect("list", indexList) + shapezLower = self.geometry_aero.nom_addLocalDV(dvName = "shapezLower" , pointSelect = PS , axis = "z") + + #---------- Add Outputs For The DVs ---------- + self.dvs.add_output("shapexUpper" , val = np.array([0]*shapexUpper)) + self.dvs.add_output("shapeyUpper" , val = np.array([0]*shapeyUpper)) + self.dvs.add_output("shapezUpper" , val = np.array([0]*shapezUpper)) + + self.dvs.add_output("shapexLower" , val = np.array([0]*shapexLower)) + self.dvs.add_output("shapeyLower" , val = np.array([0]*shapeyLower)) + self.dvs.add_output("shapezLower" , val = np.array([0]*shapezLower)) + + #---------- Connect The Design Variables To The Geometry ---------- + self.connect("shapexUpper" , "geometry_aero.shapexUpper") + self.connect("shapeyUpper" , "geometry_aero.shapeyUpper") + self.connect("shapezUpper" , "geometry_aero.shapezUpper") + + self.connect("shapexLower" , "geometry_aero.shapexLower") + self.connect("shapeyLower" , "geometry_aero.shapeyLower") + self.connect("shapezLower" , "geometry_aero.shapezLower") + + #---------- Define The Design Variables To The Top Level ---------- + self.add_design_var("shapexUpper" , lower = -0.04 , upper = 0.04 , scaler = 25.0) + self.add_design_var("shapeyUpper" , lower = -0.04 , upper = 0.04 , scaler = 25.0) + self.add_design_var("shapezUpper" , lower = -0.04 , upper = 0.04 , scaler = 25.0) + self.add_design_var("shapexLower" , lower = -0.04 , upper = 0.04 , scaler = 25.0) + self.add_design_var("shapeyLower" , lower = -0.04 , upper = 0.04 , scaler = 25.0) + self.add_design_var("shapezLower" , lower = -0.04 , upper = 0.04 , scaler = 25.0) + + # add objective and constraints + self.connect("scenario.aero_post.TP1" , "OBJ.TP1") + self.connect("scenario.aero_post.TP2" , "OBJ.TP2") + self.connect("scenario.aero_post.HFX" , "OBJ.HFX") + self.add_objective("OBJ.val" , scaler = 1.0) # ============================================================================= -# Task +# Problem Setup # ============================================================================= -if args.task == "opt": - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - # Add objective - optProb.addObj("obj", scale=1) - # Add physical constraints - #optProb.addCon("HFL", lower=HFL_target, upper=HFL_target, scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": +prob = om.Problem(reports = None) +prob.model = Top() +prob.setup(mode = "rev") +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer + +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance" : 1.0e-5, + "Major optimality tolerance" : 1.0e-5, + "Minor feasibility tolerance" : 1.0e-5, + "Verify level" : -1, + "Function precision" : 1.0e-5, + "Major iterations limit" : 100, + "Nonderivative linesearch" : None, + "Print file" : "opt_SNOPT_print.txt", + "Summary file" : "opt_SNOPT_summary.txt", + } +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol" : 1.0e-5, + "constr_viol_tol" : 1.0e-5, + "max_iter" : 100, + "print_level" : 5, + "output_file" : "opt_IPOPT.txt", + "mu_strategy" : "adaptive", + "limited_memory_max_history" : 10, + "nlp_scaling_method" : "none", + "alpha_for_y" : "full", + "recalc_y" : "yes", + } +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC" : 1.0e-5, + "MAXIT" : 100, + "IFILE" : "opt_SLSQP.txt", + } +else: + print("optimizer arg not valid!") + exit(1) - optFuncs.runPrimal() +prob.driver.options["debug_print"] = ["nl_cons" , "objs" , "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" -elif args.task == "runAdjoint": +if args.task == "run_driver": + prob.run_driver() - optFuncs.runAdjoint() +elif args.task == "run_model": + prob.run_model() -elif args.task == "runForwardAD": +elif args.task == "compute_totals": + prob.run_model() + totals = prob.compute_totals() - optFuncs.runForwardAD("shapez", 0) + if MPI.COMM_WORLD.rank == 0: + print(totals) -elif args.task == "testAPI": +elif args.task == "check_totals": + prob.run_model() - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() + prob.check_totals( + compact_print = False, + step = 1e-4, + form = "central", + step_calc = "abs", + ) else: print("task arg not found!") - exit(0) + exit(1) \ No newline at end of file diff --git a/UBend_Channel/runScript_meshQualityConstraint.py b/UBend_Channel/runScript_meshQualityConstraint_v2.py similarity index 96% rename from UBend_Channel/runScript_meshQualityConstraint.py rename to UBend_Channel/runScript_meshQualityConstraint_v2.py index b02035c2..32555494 100755 --- a/UBend_Channel/runScript_meshQualityConstraint.py +++ b/UBend_Channel/runScript_meshQualityConstraint_v2.py @@ -104,7 +104,7 @@ # mesh warping parameters, users need to manually specify the symmetry plane meshOptions = { "gridFile": os.getcwd(), - "fileType": "openfoam", + "fileType": "OpenFOAM", # point and normal for the symmetry plane "symmetryPlanes": [[[0.0, 0.0, 0.0], [0.0, 0.0, -1.0]]], } @@ -162,7 +162,6 @@ DASolver = PYDAFOAM(options=daOptions, comm=gcomm) DASolver.setDVGeo(DVGeo) mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) DASolver.printFamilyList() DASolver.setMesh(mesh) evalFuncs = [] @@ -173,7 +172,7 @@ # ============================================================================= DVCon = DVConstraints() DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) +DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.designSurfacesGroup)) """ if args.task == "opt": @@ -235,12 +234,6 @@ optFuncs.runForwardAD("shape", 0) -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-2) - DASolver.updateDAOption() - optFuncs.runPrimal() - else: print("task arg not found!") exit(0) diff --git a/UBend_Channel/system/fvSchemes b/UBend_Channel/system/fvSchemes index 4c7bae2a..a2c9be0f 100755 --- a/UBend_Channel/system/fvSchemes +++ b/UBend_Channel/system/fvSchemes @@ -55,7 +55,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/pitzDaily/runScript.py b/pitzDaily/runScript.py index 8b9b3f7a..f54aa9e9 100755 --- a/pitzDaily/runScript.py +++ b/pitzDaily/runScript.py @@ -8,23 +8,21 @@ # ============================================================================= import os import argparse -from mpi4py import MPI -from dafoam import PYDAFOAM, optFuncs -from pygeo import * -from pyspline import * -from idwarp import USMesh -from pyoptsparse import Optimization, OPT import numpy as np +from mpi4py import MPI +import openmdao.api as om +from mphys.multipoint import Multipoint +from dafoam.mphys import DAFoamBuilder, OptFuncs +from mphys.scenario_aerodynamic import ScenarioAerodynamic -# ============================================================================= -# Input Parameters -# ============================================================================= parser = argparse.ArgumentParser() -parser.add_argument("--opt", help="optimizer to use", type=str, default="snopt") -parser.add_argument("--task", help="type of run to do", type=str, default="opt") +# which optimizer to use. Options are: IPOPT (default), SLSQP, and SNOPT +# NOTE: this case works only with SNOPT +parser.add_argument("-optimizer", help="optimizer to use", type=str, default="SNOPT") +# which task to run. Options are: run_driver (default), run_model, compute_totals, check_totals +parser.add_argument("-task", help="type of run to do", type=str, default="run_driver") args = parser.parse_args() -gcomm = MPI.COMM_WORLD # Define the global parameters here U0 = 40.0 @@ -36,7 +34,6 @@ daOptions = { "designSurfaces": ["upperWall"], "solverName": "DASimpleFoam", - "useAD": {"mode": "reverse"}, "primalMinResTol": 1.0e-6, "primalMinResTolDiff": 1.0e4, "primalBC": { @@ -45,25 +42,27 @@ "nuTilda0": {"variable": "nuTilda", "patches": ["inlet"], "value": [nuTilda0]}, "useWallFunction": True, }, - "objFunc": { - "PL": { - "part1": { - "type": "totalPressure", - "source": "patchToFace", - "patches": ["inlet"], - "scale": 1.0 / (0.5 * U0 * U0), - "addToAdjoint": True, - }, - "part2": { - "type": "totalPressure", - "source": "patchToFace", - "patches": ["outlet"], - "scale": -1.0 / (0.5 * U0 * U0), - "addToAdjoint": True, - } - } + "function": { + "TPIn": { + "type": "totalPressure", + "source": "patchToFace", + "patches": ["inlet"], + "scale": 1.0 / (0.5 * U0 * U0), + }, + "TPOut": { + "type": "totalPressure", + "source": "patchToFace", + "patches": ["outlet"], + "scale": -1.0 / (0.5 * U0 * U0), + }, + }, + "adjEqnOption": { + "gmresRelTol": 1.0e-6, + "gmresMaxIters": 2000, + "gmresRestart": 2000, + "pcFillLevel": 1, + "jacMatReOrdering": "rcm", }, - "adjEqnOption": {"gmresRelTol": 1.0e-6, "gmresMaxIters": 2000, "gmresRestart": 2000, "pcFillLevel": 1, "jacMatReOrdering": "rcm"}, "normalizeStates": { "U": U0, "p": U0 * U0 / 2.0, @@ -71,139 +70,118 @@ "phi": 1.0, }, "adjPCLag": 5, - "designVar": {}, + "inputInfo": { + "alpha": { + "type": "field", + "fieldName": "alphaPorosity", + "fieldType": "scalar", + "distributed": False, + "components": ["solver", "function"], + }, + }, } -# mesh warping parameters, users need to manually specify the symmetry plane and their normals -meshOptions = { - "gridFile": os.getcwd(), - "fileType": "openfoam", - # point and normal for the symmetry plane - "symmetryPlanes": [[[0.0, 0.0, -0.0005], [0.0, 0.0, 1.0]], [[0.0, 0.0, 0.0005], [0.0, 0.0, 1.0]]], -} +# Top class to setup the optimization problem +class Top(Multipoint): + def setup(self): + + # create the builder to initialize the DASolvers + dafoam_builder = DAFoamBuilder(options=daOptions, mesh_options=None, scenario="aerodynamic") + dafoam_builder.initialize(self.comm) + + # add the design variable component to keep the top level design variables + self.add_subsystem("dvs", om.IndepVarComp(), promotes=["*"]) + + # add a scenario (flow condition) for optimization, we pass the builder + # to the scenario to actually run the flow and adjoint + self.mphys_add_scenario("scenario1", ScenarioAerodynamic(aero_builder=dafoam_builder)) + + # setup a composite objective + self.add_subsystem("obj", om.ExecComp("val=TPIn-TPOut")) + + def configure(self): + # add the design variables to the dvs component's output + self.dvs.add_output("alpha", val=np.zeros(nCells), distributed=False) + self.connect("alpha", "scenario1.alpha") + + # define the design variables to the top level + self.add_design_var("alpha", lower=0.0, upper=1e4, scaler=1e-4) + + # add objective and constraints to the top level + # we can connect any function in daOption to obj's terms + self.connect("scenario1.aero_post.TPIn", "obj.TPIn") + self.connect("scenario1.aero_post.TPOut", "obj.TPOut") + self.add_objective("obj.val", scaler=1.0) + + +# OpenMDAO setup +prob = om.Problem() +prob.model = Top() +prob.setup(mode="rev") +om.n2(prob, show_browser=False, outfile="mphys.html") + +# use pyoptsparse to setup optimization +prob.driver = om.pyOptSparseDriver() +prob.driver.options["optimizer"] = args.optimizer # options for optimizers -if args.opt == "snopt": - optOptions = { - "Major feasibility tolerance": 1.0e-7, - "Major optimality tolerance": 1.0e-7, - "Minor feasibility tolerance": 1.0e-7, +if args.optimizer == "SNOPT": + prob.driver.opt_settings = { + "Major feasibility tolerance": 1.0e-6, + "Major optimality tolerance": 1.0e-6, + "Minor feasibility tolerance": 1.0e-6, "Verify level": -1, - "Function precision": 1.0e-5, - "Hessian updates": 20, + "Function precision": 1.0e-6, + "Major iterations limit": 50, + "Linesearch tolerance": 0.999, + "Hessian updates": 50, "Nonderivative linesearch": None, "Print file": "opt_SNOPT_print.txt", "Summary file": "opt_SNOPT_summary.txt", } -elif args.opt == "ipopt": - optOptions = { - "tol": 1.0e-7, - "constr_viol_tol": 1.0e-7, +elif args.optimizer == "IPOPT": + prob.driver.opt_settings = { + "tol": 1.0e-5, + "constr_viol_tol": 1.0e-5, "max_iter": 50, "print_level": 5, "output_file": "opt_IPOPT.txt", "mu_strategy": "adaptive", - "limited_memory_max_history": 25, + "limited_memory_max_history": 10, "nlp_scaling_method": "none", "alpha_for_y": "full", "recalc_y": "yes", } -elif args.opt == "slsqp": - optOptions = { - "ACC": 1.0e-7, - "MAXIT": 50, +elif args.optimizer == "SLSQP": + prob.driver.opt_settings = { + "ACC": 1.0e-5, + "MAXIT": 100, "IFILE": "opt_SLSQP.txt", } else: - print("opt arg not valid!") - exit(0) - - -# ============================================================================= -# Design variable setup -# ============================================================================= -def alphaPorosity(val, geo): - for idxI, v in enumerate(val): - DASolver.setFieldValue4GlobalCellI(b"alphaPorosity", v, idxI) - DASolver.updateBoundaryConditions(b"alphaPorosity", b"scalar") - -DVGeo = DVGeometry("./FFD/dummyFFD.xyz") -# We need to add a dummy ref axis for defining GeoDVGlobal -DVGeo.addRefAxis("dummyAxis", xFraction=0.25, alignIndex="k") - -alphaPorosity0 = np.zeros(nCells, dtype="d") -# modify one alpha value. This can be used to verify the adjoint derivative with the finite-difference method -#alphaPorosity0[4521] = 1e-5 -DVGeo.addGeoDVGlobal("alphaPorosity", value=alphaPorosity0, func=alphaPorosity, lower=0, upper=1e4, scale=1e-4) -daOptions["designVar"]["alphaPorosity"] = {"designVarType": "Field", "fieldName": "alphaPorosity", "fieldType": "scalar"} - -# ============================================================================= -# DAFoam initialization -# ============================================================================= -DASolver = PYDAFOAM(options=daOptions, comm=gcomm) -DASolver.setDVGeo(DVGeo) -mesh = USMesh(options=meshOptions, comm=gcomm) -DASolver.addFamilyGroup(DASolver.getOption("designSurfaceFamily"), DASolver.getOption("designSurfaces")) -DASolver.printFamilyList() -DASolver.setMesh(mesh) -evalFuncs = [] -DASolver.setEvalFuncs(evalFuncs) - -# ============================================================================= -# Constraint setup -# ============================================================================= -DVCon = DVConstraints() -DVCon.setDVGeo(DVGeo) -DVCon.setSurface(DASolver.getTriangulatedMeshSurface(groupName=DASolver.getOption("designSurfaceFamily"))) -# ============================================================================= -# Initialize optFuncs for optimization -# ============================================================================= -optFuncs.DASolver = DASolver -optFuncs.DVGeo = DVGeo -optFuncs.DVCon = DVCon -optFuncs.evalFuncs = evalFuncs -optFuncs.gcomm = gcomm - -# ============================================================================= -# Task -# ============================================================================= -if args.task == "opt": - - optProb = Optimization("opt", objFun=optFuncs.calcObjFuncValues, comm=gcomm) - DVGeo.addVariablesPyOpt(optProb) - DVCon.addConstraintsPyOpt(optProb) - - optProb.addObj("PL", scale=1) - - if gcomm.rank == 0: - print(optProb) - - DASolver.runColoring() - - opt = OPT(args.opt, options=optOptions) - histFile = "./%s_hist.hst" % args.opt - sol = opt(optProb, sens=optFuncs.calcObjFuncSens, storeHistory=histFile) - if gcomm.rank == 0: - print(sol) - -elif args.task == "runPrimal": - - optFuncs.runPrimal() - -elif args.task == "runAdjoint": - - optFuncs.runAdjoint() - -elif args.task == "runForwardAD": - - optFuncs.runForwardAD("alphaPorosity", 0) - -elif args.task == "testAPI": - - DASolver.setOption("primalMinResTol", 1e-1) - DASolver.updateDAOption() - optFuncs.runPrimal() - + print("optimizer arg not valid!") + exit(1) + +prob.driver.options["debug_print"] = ["nl_cons", "objs", "desvars"] +prob.driver.options["print_opt_prob"] = True +prob.driver.hist_file = "OptView.hst" + +if args.task == "run_driver": + # run the optimization + prob.run_driver() +elif args.task == "run_model": + # just run the primal once + prob.run_model() +elif args.task == "compute_totals": + # just run the primal and adjoint once + prob.run_model() + totals = prob.compute_totals() + if MPI.COMM_WORLD.rank == 0: + print(totals) +elif args.task == "check_totals": + # verify the total derivatives against the finite-difference + prob.run_model() + prob.check_totals(compact_print=False, step=1e-3, form="central", step_calc="abs") else: print("task arg not found!") - exit(0) + exit(1) diff --git a/pitzDaily/system/fvSchemes b/pitzDaily/system/fvSchemes index 9fda8118..65c9021a 100755 --- a/pitzDaily/system/fvSchemes +++ b/pitzDaily/system/fvSchemes @@ -54,7 +54,7 @@ snGradSchemes wallDist { - method meshWaveFrozen; + method meshWave; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //